{"version":3,"sources":["webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/es6.math.fround.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/core-js/modules/es6.math.log1p.js","webpack:///./node_modules/survey-creator/survey-creator.js","webpack:///./node_modules/core-js/modules/es6.number.parse-int.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/modules/_to-index.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/es6.math.sign.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/es6.object.freeze.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/core-js/modules/_typed.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/web.immediate.js","webpack:///./node_modules/core-js/modules/es6.string.strike.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/es6.string.repeat.js","webpack:///./node_modules/core-js/modules/es6.typed.int16-array.js","webpack:///./node_modules/core-js/modules/es6.object.is-extensible.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/survey-vue/survey-vue.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/es6.function.has-instance.js","webpack:///./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/es6.string.sup.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/core-js/modules/es6.math.cosh.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./node_modules/core-js/modules/_math-expm1.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_string-pad.js","webpack:///./node_modules/core-js/modules/es6.number.epsilon.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/es6.math.clz32.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/core-js/modules/_parse-int.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/es7.object.define-getter.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./node_modules/core-js/modules/es6.string.bold.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/es6.typed.float64-array.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/es6.math.asinh.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/core-js/modules/es6.string.from-code-point.js","webpack:///./node_modules/core-js/modules/es6.object.is-sealed.js","webpack:///./node_modules/vue2-editor/dist/vue2-editor.esm.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/es6.number.parse-float.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/modules/es6.typed.float32-array.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/es7.object.lookup-setter.js","webpack:///./node_modules/core-js/modules/es6.object.is-frozen.js","webpack:///./node_modules/core-js/modules/es6.string.sub.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/knockout/build/output/knockout-latest.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es6.math.sinh.js","webpack:///./node_modules/core-js/modules/es6.string.fontcolor.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/es6.array.copy-within.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/es6.math.log10.js","webpack:///./node_modules/core-js/modules/es6.string.raw.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/es6.number.is-integer.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/es6.math.acosh.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_date-to-primitive.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/es6.string.anchor.js","webpack:///./node_modules/core-js/modules/es6.math.trunc.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.reflect.define-property.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/core-js/modules/_math-fround.js","webpack:///./node_modules/core-js/modules/es6.reflect.set.js","webpack:///./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/_math-sign.js","webpack:///./node_modules/core-js/modules/_string-repeat.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_is-integer.js","webpack:///./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/es6.string.big.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/es6.string.fontsize.js","webpack:///./node_modules/core-js/modules/es6.math.expm1.js","webpack:///./node_modules/vue/dist/vue.esm.js","webpack:///./node_modules/core-js/modules/es6.string.code-point-at.js","webpack:///./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/es6.math.log2.js","webpack:///./node_modules/vue-axios/dist/vue-axios.min.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/es6.string.ends-with.js","webpack:///./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack:///./node_modules/survey-knockout/survey.ko.js","webpack:///./node_modules/core-js/modules/es6.typed.int8-array.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/core-js/modules/es6.typed.int32-array.js","webpack:///./node_modules/core-js/modules/es7.object.lookup-getter.js","webpack:///./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/_array-copy-within.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/es6.weak-set.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/core-js/modules/_object-forced-pam.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack:///./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/es6.math.hypot.js","webpack:///./node_modules/core-js/modules/es6.math.tanh.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/es6.date.to-primitive.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///Vuetify/webpack/universalModuleDefinition","webpack:///Vuetify/webpack/bootstrap","webpack:///Vuetify/src/components/VAlert/VAlert.ts","webpack:///Vuetify/src/components/VAlert/index.ts","webpack:///Vuetify/src/components/VApp/VApp.ts","webpack:///Vuetify/src/components/VApp/index.ts","webpack:///Vuetify/src/components/VAppBar/VAppBar.ts","webpack:///Vuetify/src/components/VAppBar/VAppBarNavIcon.ts","webpack:///Vuetify/src/components/VAppBar/VAppBarTitle.ts","webpack:///Vuetify/src/components/VAppBar/index.ts","webpack:///Vuetify/src/components/VAutocomplete/VAutocomplete.ts","webpack:///Vuetify/src/components/VAutocomplete/index.ts","webpack:///Vuetify/src/components/VAvatar/VAvatar.ts","webpack:///Vuetify/src/components/VAvatar/index.ts","webpack:///Vuetify/src/components/VBadge/VBadge.ts","webpack:///Vuetify/src/components/VBadge/index.ts","webpack:///Vuetify/src/components/VBanner/VBanner.ts","webpack:///Vuetify/src/components/VBanner/index.ts","webpack:///Vuetify/src/components/VBottomNavigation/VBottomNavigation.ts","webpack:///Vuetify/src/components/VBottomNavigation/index.ts","webpack:///Vuetify/src/components/VBottomSheet/VBottomSheet.ts","webpack:///Vuetify/src/components/VBottomSheet/index.ts","webpack:///Vuetify/src/components/VBreadcrumbs/VBreadcrumbs.ts","webpack:///Vuetify/src/components/VBreadcrumbs/VBreadcrumbsDivider.ts","webpack:///Vuetify/src/components/VBreadcrumbs/VBreadcrumbsItem.ts","webpack:///Vuetify/src/components/VBreadcrumbs/index.ts","webpack:///Vuetify/src/components/VBtn/VBtn.ts","webpack:///Vuetify/src/components/VBtn/index.ts","webpack:///Vuetify/src/components/VBtnToggle/VBtnToggle.ts","webpack:///Vuetify/src/components/VBtnToggle/index.ts","webpack:///Vuetify/src/components/VCalendar/VCalendar.ts","webpack:///Vuetify/src/components/VCalendar/VCalendarCategory.ts","webpack:///Vuetify/src/components/VCalendar/VCalendarDaily.ts","webpack:///Vuetify/src/components/VCalendar/VCalendarMonthly.ts","webpack:///Vuetify/src/components/VCalendar/VCalendarWeekly.ts","webpack:///Vuetify/src/components/VCalendar/index.ts","webpack:///Vuetify/src/components/VCalendar/mixins/calendar-base.ts","webpack:///Vuetify/src/components/VCalendar/mixins/calendar-with-events.ts","webpack:///Vuetify/src/components/VCalendar/mixins/calendar-with-intervals.ts","webpack:///Vuetify/src/components/VCalendar/mixins/times.ts","webpack:///Vuetify/src/components/VCalendar/modes/column.ts","webpack:///Vuetify/src/components/VCalendar/modes/common.ts","webpack:///Vuetify/src/components/VCalendar/modes/index.ts","webpack:///Vuetify/src/components/VCalendar/modes/stack.ts","webpack:///Vuetify/src/components/VCalendar/util/events.ts","webpack:///Vuetify/src/components/VCalendar/util/parser.ts","webpack:///Vuetify/src/components/VCalendar/util/props.ts","webpack:///Vuetify/src/components/VCalendar/util/timestamp.ts","webpack:///Vuetify/src/components/VCard/VCard.ts","webpack:///Vuetify/src/components/VCard/index.ts","webpack:///Vuetify/src/components/VCarousel/VCarousel.ts","webpack:///Vuetify/src/components/VCarousel/VCarouselItem.ts","webpack:///Vuetify/src/components/VCarousel/index.ts","webpack:///Vuetify/src/components/VCheckbox/VCheckbox.ts","webpack:///Vuetify/src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///Vuetify/src/components/VCheckbox/index.ts","webpack:///Vuetify/src/components/VChip/VChip.ts","webpack:///Vuetify/src/components/VChip/index.ts","webpack:///Vuetify/src/components/VChipGroup/VChipGroup.ts","webpack:///Vuetify/src/components/VChipGroup/index.ts","webpack:///Vuetify/src/components/VColorPicker/VColorPicker.ts","webpack:///Vuetify/src/components/VColorPicker/VColorPickerCanvas.ts","webpack:///Vuetify/src/components/VColorPicker/VColorPickerEdit.ts","webpack:///Vuetify/src/components/VColorPicker/VColorPickerPreview.ts","webpack:///Vuetify/src/components/VColorPicker/VColorPickerSwatches.ts","webpack:///Vuetify/src/components/VColorPicker/index.ts","webpack:///Vuetify/src/components/VColorPicker/util/index.ts","webpack:///Vuetify/src/components/VCombobox/VCombobox.ts","webpack:///Vuetify/src/components/VCombobox/index.ts","webpack:///Vuetify/src/components/VContent/VContent.ts","webpack:///Vuetify/src/components/VContent/index.ts","webpack:///Vuetify/src/components/VCounter/VCounter.ts","webpack:///Vuetify/src/components/VCounter/index.ts","webpack:///Vuetify/src/components/VData/VData.ts","webpack:///Vuetify/src/components/VData/index.ts","webpack:///Vuetify/src/components/VDataIterator/VDataFooter.ts","webpack:///Vuetify/src/components/VDataIterator/VDataIterator.ts","webpack:///Vuetify/src/components/VDataIterator/index.ts","webpack:///Vuetify/src/components/VDataTable/MobileRow.ts","webpack:///Vuetify/src/components/VDataTable/Row.ts","webpack:///Vuetify/src/components/VDataTable/RowGroup.ts","webpack:///Vuetify/src/components/VDataTable/VDataTable.ts","webpack:///Vuetify/src/components/VDataTable/VDataTableHeader.ts","webpack:///Vuetify/src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack:///Vuetify/src/components/VDataTable/VDataTableHeaderMobile.ts","webpack:///Vuetify/src/components/VDataTable/VEditDialog.ts","webpack:///Vuetify/src/components/VDataTable/VSimpleTable.ts","webpack:///Vuetify/src/components/VDataTable/VVirtualTable.ts","webpack:///Vuetify/src/components/VDataTable/index.ts","webpack:///Vuetify/src/components/VDataTable/mixins/header.ts","webpack:///Vuetify/src/components/VDatePicker/VDatePicker.ts","webpack:///Vuetify/src/components/VDatePicker/VDatePickerDateTable.ts","webpack:///Vuetify/src/components/VDatePicker/VDatePickerHeader.ts","webpack:///Vuetify/src/components/VDatePicker/VDatePickerMonthTable.ts","webpack:///Vuetify/src/components/VDatePicker/VDatePickerTitle.ts","webpack:///Vuetify/src/components/VDatePicker/VDatePickerYears.ts","webpack:///Vuetify/src/components/VDatePicker/index.ts","webpack:///Vuetify/src/components/VDatePicker/mixins/date-picker-table.ts","webpack:///Vuetify/src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack:///Vuetify/src/components/VDatePicker/util/eventHelpers.ts","webpack:///Vuetify/src/components/VDatePicker/util/index.ts","webpack:///Vuetify/src/components/VDatePicker/util/isDateAllowed.ts","webpack:///Vuetify/src/components/VDatePicker/util/monthChange.ts","webpack:///Vuetify/src/components/VDatePicker/util/pad.ts","webpack:///Vuetify/src/components/VDatePicker/util/sanitizeDateString.ts","webpack:///Vuetify/src/components/VDialog/VDialog.ts","webpack:///Vuetify/src/components/VDialog/index.ts","webpack:///Vuetify/src/components/VDivider/VDivider.ts","webpack:///Vuetify/src/components/VDivider/index.ts","webpack:///Vuetify/src/components/VExpansionPanel/VExpansionPanel.ts","webpack:///Vuetify/src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///Vuetify/src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///Vuetify/src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///Vuetify/src/components/VExpansionPanel/index.ts","webpack:///Vuetify/src/components/VFileInput/VFileInput.ts","webpack:///Vuetify/src/components/VFileInput/index.ts","webpack:///Vuetify/src/components/VFooter/VFooter.ts","webpack:///Vuetify/src/components/VFooter/index.ts","webpack:///Vuetify/src/components/VForm/VForm.ts","webpack:///Vuetify/src/components/VForm/index.ts","webpack:///Vuetify/src/components/VGrid/VCol.ts","webpack:///Vuetify/src/components/VGrid/VContainer.ts","webpack:///Vuetify/src/components/VGrid/VFlex.ts","webpack:///Vuetify/src/components/VGrid/VLayout.ts","webpack:///Vuetify/src/components/VGrid/VRow.ts","webpack:///Vuetify/src/components/VGrid/VSpacer.ts","webpack:///Vuetify/src/components/VGrid/grid.ts","webpack:///Vuetify/src/components/VGrid/index.ts","webpack:///Vuetify/src/components/VHover/VHover.ts","webpack:///Vuetify/src/components/VHover/index.ts","webpack:///Vuetify/src/components/VIcon/VIcon.ts","webpack:///Vuetify/src/components/VIcon/index.ts","webpack:///Vuetify/src/components/VImg/VImg.ts","webpack:///Vuetify/src/components/VImg/index.ts","webpack:///Vuetify/src/components/VInput/VInput.ts","webpack:///Vuetify/src/components/VInput/index.ts","webpack:///Vuetify/src/components/VItemGroup/VItem.ts","webpack:///Vuetify/src/components/VItemGroup/VItemGroup.ts","webpack:///Vuetify/src/components/VItemGroup/index.ts","webpack:///Vuetify/src/components/VLabel/VLabel.ts","webpack:///Vuetify/src/components/VLabel/index.ts","webpack:///Vuetify/src/components/VLazy/VLazy.ts","webpack:///Vuetify/src/components/VLazy/index.ts","webpack:///Vuetify/src/components/VList/VList.ts","webpack:///Vuetify/src/components/VList/VListGroup.ts","webpack:///Vuetify/src/components/VList/VListItem.ts","webpack:///Vuetify/src/components/VList/VListItemAction.ts","webpack:///Vuetify/src/components/VList/VListItemAvatar.ts","webpack:///Vuetify/src/components/VList/VListItemGroup.ts","webpack:///Vuetify/src/components/VList/VListItemIcon.ts","webpack:///Vuetify/src/components/VList/index.ts","webpack:///Vuetify/src/components/VMain/VMain.ts","webpack:///Vuetify/src/components/VMain/index.ts","webpack:///Vuetify/src/components/VMenu/VMenu.ts","webpack:///Vuetify/src/components/VMenu/index.ts","webpack:///Vuetify/src/components/VMessages/VMessages.ts","webpack:///Vuetify/src/components/VMessages/index.ts","webpack:///Vuetify/src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///Vuetify/src/components/VNavigationDrawer/index.ts","webpack:///Vuetify/src/components/VOtpInput/VOtpInput.ts","webpack:///Vuetify/src/components/VOtpInput/index.ts","webpack:///Vuetify/src/components/VOverflowBtn/VOverflowBtn.ts","webpack:///Vuetify/src/components/VOverflowBtn/index.ts","webpack:///Vuetify/src/components/VOverlay/VOverlay.ts","webpack:///Vuetify/src/components/VOverlay/index.ts","webpack:///Vuetify/src/components/VPagination/VPagination.ts","webpack:///Vuetify/src/components/VPagination/index.ts","webpack:///Vuetify/src/components/VParallax/VParallax.ts","webpack:///Vuetify/src/components/VParallax/index.ts","webpack:///Vuetify/src/components/VPicker/VPicker.ts","webpack:///Vuetify/src/components/VPicker/index.ts","webpack:///Vuetify/src/components/VProgressCircular/VProgressCircular.ts","webpack:///Vuetify/src/components/VProgressCircular/index.ts","webpack:///Vuetify/src/components/VProgressLinear/VProgressLinear.ts","webpack:///Vuetify/src/components/VProgressLinear/index.ts","webpack:///Vuetify/src/components/VRadioGroup/VRadio.ts","webpack:///Vuetify/src/components/VRadioGroup/VRadioGroup.ts","webpack:///Vuetify/src/components/VRadioGroup/index.ts","webpack:///Vuetify/src/components/VRangeSlider/VRangeSlider.ts","webpack:///Vuetify/src/components/VRangeSlider/index.ts","webpack:///Vuetify/src/components/VRating/VRating.ts","webpack:///Vuetify/src/components/VRating/index.ts","webpack:///Vuetify/src/components/VResponsive/VResponsive.ts","webpack:///Vuetify/src/components/VResponsive/index.ts","webpack:///Vuetify/src/components/VSelect/VSelect.ts","webpack:///Vuetify/src/components/VSelect/VSelectList.ts","webpack:///Vuetify/src/components/VSelect/index.ts","webpack:///Vuetify/src/components/VSheet/VSheet.ts","webpack:///Vuetify/src/components/VSheet/index.ts","webpack:///Vuetify/src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///Vuetify/src/components/VSkeletonLoader/index.ts","webpack:///Vuetify/src/components/VSlideGroup/VSlideGroup.ts","webpack:///Vuetify/src/components/VSlideGroup/VSlideItem.ts","webpack:///Vuetify/src/components/VSlideGroup/index.ts","webpack:///Vuetify/src/components/VSlider/VSlider.ts","webpack:///Vuetify/src/components/VSlider/index.ts","webpack:///Vuetify/src/components/VSnackbar/VSnackbar.ts","webpack:///Vuetify/src/components/VSnackbar/index.ts","webpack:///Vuetify/src/components/VSparkline/VSparkline.ts","webpack:///Vuetify/src/components/VSparkline/helpers/core.ts","webpack:///Vuetify/src/components/VSparkline/helpers/math.ts","webpack:///Vuetify/src/components/VSparkline/helpers/path.ts","webpack:///Vuetify/src/components/VSparkline/index.ts","webpack:///Vuetify/src/components/VSpeedDial/VSpeedDial.ts","webpack:///Vuetify/src/components/VSpeedDial/index.ts","webpack:///Vuetify/src/components/VStepper/VStepper.ts","webpack:///Vuetify/src/components/VStepper/VStepperContent.ts","webpack:///Vuetify/src/components/VStepper/VStepperStep.ts","webpack:///Vuetify/src/components/VStepper/index.ts","webpack:///Vuetify/src/components/VSubheader/VSubheader.ts","webpack:///Vuetify/src/components/VSubheader/index.ts","webpack:///Vuetify/src/components/VSwitch/VSwitch.ts","webpack:///Vuetify/src/components/VSwitch/index.ts","webpack:///Vuetify/src/components/VSystemBar/VSystemBar.ts","webpack:///Vuetify/src/components/VSystemBar/index.ts","webpack:///Vuetify/src/components/VTabs/VTab.ts","webpack:///Vuetify/src/components/VTabs/VTabItem.ts","webpack:///Vuetify/src/components/VTabs/VTabs.ts","webpack:///Vuetify/src/components/VTabs/VTabsBar.ts","webpack:///Vuetify/src/components/VTabs/VTabsItems.ts","webpack:///Vuetify/src/components/VTabs/VTabsSlider.ts","webpack:///Vuetify/src/components/VTabs/index.ts","webpack:///Vuetify/src/components/VTextField/VTextField.ts","webpack:///Vuetify/src/components/VTextField/index.ts","webpack:///Vuetify/src/components/VTextarea/VTextarea.ts","webpack:///Vuetify/src/components/VTextarea/index.ts","webpack:///Vuetify/src/components/VThemeProvider/VThemeProvider.ts","webpack:///Vuetify/src/components/VThemeProvider/index.ts","webpack:///Vuetify/src/components/VTimePicker/SelectingTimes.ts","webpack:///Vuetify/src/components/VTimePicker/VTimePicker.ts","webpack:///Vuetify/src/components/VTimePicker/VTimePickerClock.ts","webpack:///Vuetify/src/components/VTimePicker/VTimePickerTitle.ts","webpack:///Vuetify/src/components/VTimePicker/index.ts","webpack:///Vuetify/src/components/VTimeline/VTimeline.ts","webpack:///Vuetify/src/components/VTimeline/VTimelineItem.ts","webpack:///Vuetify/src/components/VTimeline/index.ts","webpack:///Vuetify/src/components/VToolbar/VToolbar.ts","webpack:///Vuetify/src/components/VToolbar/index.ts","webpack:///Vuetify/src/components/VTooltip/VTooltip.ts","webpack:///Vuetify/src/components/VTooltip/index.ts","webpack:///Vuetify/src/components/VTreeview/VTreeview.ts","webpack:///Vuetify/src/components/VTreeview/VTreeviewNode.ts","webpack:///Vuetify/src/components/VTreeview/index.ts","webpack:///Vuetify/src/components/VTreeview/util/filterTreeItems.ts","webpack:///Vuetify/src/components/VVirtualScroll/VVirtualScroll.ts","webpack:///Vuetify/src/components/VVirtualScroll/index.ts","webpack:///Vuetify/src/components/VWindow/VWindow.ts","webpack:///Vuetify/src/components/VWindow/VWindowItem.ts","webpack:///Vuetify/src/components/VWindow/index.ts","webpack:///Vuetify/src/components/index.ts","webpack:///Vuetify/src/components/transitions/createTransition.ts","webpack:///Vuetify/src/components/transitions/expand-transition.ts","webpack:///Vuetify/src/components/transitions/index.ts","webpack:///Vuetify/src/directives/click-outside/index.ts","webpack:///Vuetify/src/directives/index.ts","webpack:///Vuetify/src/directives/intersect/index.ts","webpack:///Vuetify/src/directives/mutate/index.ts","webpack:///Vuetify/src/directives/resize/index.ts","webpack:///Vuetify/src/directives/ripple/index.ts","webpack:///Vuetify/src/directives/scroll/index.ts","webpack:///Vuetify/src/directives/touch/index.ts","webpack:///Vuetify/src/framework.ts","webpack:///Vuetify/src/index.ts","webpack:///Vuetify/src/install.ts","webpack:///Vuetify/src/locale/af.ts","webpack:///Vuetify/src/locale/ar.ts","webpack:///Vuetify/src/locale/az.ts","webpack:///Vuetify/src/locale/bg.ts","webpack:///Vuetify/src/locale/ca.ts","webpack:///Vuetify/src/locale/ckb.ts","webpack:///Vuetify/src/locale/cs.ts","webpack:///Vuetify/src/locale/da.ts","webpack:///Vuetify/src/locale/de.ts","webpack:///Vuetify/src/locale/el.ts","webpack:///Vuetify/src/locale/en.ts","webpack:///Vuetify/src/locale/es.ts","webpack:///Vuetify/src/locale/et.ts","webpack:///Vuetify/src/locale/fa.ts","webpack:///Vuetify/src/locale/fi.ts","webpack:///Vuetify/src/locale/fr.ts","webpack:///Vuetify/src/locale/he.ts","webpack:///Vuetify/src/locale/hr.ts","webpack:///Vuetify/src/locale/hu.ts","webpack:///Vuetify/src/locale/id.ts","webpack:///Vuetify/src/locale/index.ts","webpack:///Vuetify/src/locale/it.ts","webpack:///Vuetify/src/locale/ja.ts","webpack:///Vuetify/src/locale/ko.ts","webpack:///Vuetify/src/locale/lt.ts","webpack:///Vuetify/src/locale/lv.ts","webpack:///Vuetify/src/locale/nl.ts","webpack:///Vuetify/src/locale/no.ts","webpack:///Vuetify/src/locale/pl.ts","webpack:///Vuetify/src/locale/pt.ts","webpack:///Vuetify/src/locale/ro.ts","webpack:///Vuetify/src/locale/ru.ts","webpack:///Vuetify/src/locale/sk.ts","webpack:///Vuetify/src/locale/sl.ts","webpack:///Vuetify/src/locale/sr-Cyrl.ts","webpack:///Vuetify/src/locale/sr-Latn.ts","webpack:///Vuetify/src/locale/sv.ts","webpack:///Vuetify/src/locale/th.ts","webpack:///Vuetify/src/locale/tr.ts","webpack:///Vuetify/src/locale/uk.ts","webpack:///Vuetify/src/locale/vi.ts","webpack:///Vuetify/src/locale/zh-Hans.ts","webpack:///Vuetify/src/locale/zh-Hant.ts","webpack:///Vuetify/src/mixins/activatable/index.ts","webpack:///Vuetify/src/mixins/applicationable/index.ts","webpack:///Vuetify/src/mixins/binds-attrs/index.ts","webpack:///Vuetify/src/mixins/bootable/index.ts","webpack:///Vuetify/src/mixins/button-group/index.ts","webpack:///Vuetify/src/mixins/colorable/index.ts","webpack:///Vuetify/src/mixins/comparable/index.ts","webpack:///Vuetify/src/mixins/delayable/index.ts","webpack:///Vuetify/src/mixins/dependent/index.ts","webpack:///Vuetify/src/mixins/detachable/index.ts","webpack:///Vuetify/src/mixins/elevatable/index.ts","webpack:///Vuetify/src/mixins/filterable/index.ts","webpack:///Vuetify/src/mixins/groupable/index.ts","webpack:///Vuetify/src/mixins/intersectable/index.ts","webpack:///Vuetify/src/mixins/loadable/index.ts","webpack:///Vuetify/src/mixins/localable/index.ts","webpack:///Vuetify/src/mixins/measurable/index.ts","webpack:///Vuetify/src/mixins/menuable/index.ts","webpack:///Vuetify/src/mixins/mobile/index.ts","webpack:///Vuetify/src/mixins/mouse/index.ts","webpack:///Vuetify/src/mixins/overlayable/index.ts","webpack:///Vuetify/src/mixins/picker-button/index.ts","webpack:///Vuetify/src/mixins/picker/index.ts","webpack:///Vuetify/src/mixins/positionable/index.ts","webpack:///Vuetify/src/mixins/proxyable/index.ts","webpack:///Vuetify/src/mixins/registrable/index.ts","webpack:///Vuetify/src/mixins/returnable/index.ts","webpack:///Vuetify/src/mixins/rippleable/index.ts","webpack:///Vuetify/src/mixins/roundable/index.ts","webpack:///Vuetify/src/mixins/routable/index.ts","webpack:///Vuetify/src/mixins/scrollable/index.ts","webpack:///Vuetify/src/mixins/selectable/index.ts","webpack:///Vuetify/src/mixins/sizeable/index.ts","webpack:///Vuetify/src/mixins/ssr-bootable/index.ts","webpack:///Vuetify/src/mixins/stackable/index.ts","webpack:///Vuetify/src/mixins/themeable/index.ts","webpack:///Vuetify/src/mixins/toggleable/index.ts","webpack:///Vuetify/src/mixins/transitionable/index.ts","webpack:///Vuetify/src/mixins/translatable/index.ts","webpack:///Vuetify/src/mixins/validatable/index.ts","webpack:///Vuetify/src/presets/default/index.ts","webpack:///Vuetify/src/services/application/index.ts","webpack:///Vuetify/src/services/breakpoint/index.ts","webpack:///Vuetify/src/services/goto/easing-patterns.ts","webpack:///Vuetify/src/services/goto/index.ts","webpack:///Vuetify/src/services/goto/util.ts","webpack:///Vuetify/src/services/icons/index.ts","webpack:///Vuetify/src/services/icons/presets/fa-svg.ts","webpack:///Vuetify/src/services/icons/presets/fa.ts","webpack:///Vuetify/src/services/icons/presets/fa4.ts","webpack:///Vuetify/src/services/icons/presets/index.ts","webpack:///Vuetify/src/services/icons/presets/md.ts","webpack:///Vuetify/src/services/icons/presets/mdi-svg.ts","webpack:///Vuetify/src/services/icons/presets/mdi.ts","webpack:///Vuetify/src/services/index.ts","webpack:///Vuetify/src/services/lang/index.ts","webpack:///Vuetify/src/services/presets/index.ts","webpack:///Vuetify/src/services/service/index.ts","webpack:///Vuetify/src/services/theme/index.ts","webpack:///Vuetify/src/services/theme/utils.ts","webpack:///Vuetify/src/util/color/transformCIELAB.ts","webpack:///Vuetify/src/util/color/transformSRGB.ts","webpack:///Vuetify/src/util/colorUtils.ts","webpack:///Vuetify/src/util/colors.ts","webpack:///Vuetify/src/util/console.ts","webpack:///Vuetify/src/util/dateTimeUtils.ts","webpack:///Vuetify/src/util/dedupeModelListeners.ts","webpack:///Vuetify/src/util/dom.ts","webpack:///Vuetify/src/util/helpers.ts","webpack:///Vuetify/src/util/mergeData.ts","webpack:///Vuetify/src/util/mixins.ts","webpack:///Vuetify/src/util/rebuildFunctionalSlots.ts","webpack:///Vuetify/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"amd\":\"vue\",\"root\":\"Vue\"}","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/core-js/modules/es6.object.seal.js","webpack:///./node_modules/core-js/modules/es6.array.species.js","webpack:///./node_modules/core-js/modules/es6.string.italics.js","webpack:///./node_modules/core-js/modules/es6.reflect.get.js","webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_math-log1p.js","webpack:///./node_modules/core-js/modules/_parse-float.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/core-js/modules/es6.math.atanh.js","webpack:///./node_modules/core-js/modules/es6.object.is.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/es6.reflect.apply.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/modules/es6.array.of.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/_typed-array.js","webpack:///./node_modules/core-js/modules/_typed-buffer.js","webpack:///./node_modules/core-js/modules/es7.string.pad-end.js","webpack:///./node_modules/core-js/modules/es6.number.is-nan.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/core-js/modules/es6.string.small.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.math.imul.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/core-js/modules/es7.string.pad-start.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/es6.reflect.has.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/es6.math.cbrt.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/es6.string.blink.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/es6.number.is-finite.js","webpack:///./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./node_modules/core-js/modules/es7.object.define-setter.js","webpack:///./node_modules/core-js/modules/es7.object.entries.js"],"names":["LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","FF_ITERATOR","KEYS","VALUES","returnThis","this","module","exports","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","key","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","prototype","$native","$default","$entries","undefined","$anyNative","entries","call","Object","name","values","P","F","toInteger","defined","TO_STRING","that","pos","a","b","s","String","i","l","length","charCodeAt","charAt","slice","at","S","index","unicode","fround","obj","constructor","isBuffer","log1p","root","factory","__WEBPACK_EXTERNAL_MODULE_knockout__","__WEBPACK_EXTERNAL_MODULE_survey_knockout__","modules","installedModules","__webpack_require__","moduleId","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","bind","n","object","property","hasOwnProperty","p","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","e","apply","f","self","window","document","postMessage","IS_PAPA_WORKER","u","parse","dynamicTyping","J","dynamicTypingFunction","transform","worker","WORKERS_SUPPORTED","URL","webkitURL","toString","BLOB_URL","createObjectURL","Blob","type","Worker","onmessage","_","id","userStep","step","userChunk","chunk","userComplete","complete","userError","error","input","config","workerId","NODE_STREAM_INPUT","download","readable","read","on","g","File","stream","unparse","y","delimiter","BAD_DELIMITERS","filter","indexOf","quotes","Array","isArray","skipEmptyLines","newline","quoteChar","header","columns","Error","escapeChar","escapeFormulae","RegExp","Q","JSON","h","data","fields","meta","v","join","trim","push","Date","stringify","test","replace","RECORD_SEP","fromCharCode","UNIT_SEP","BYTE_ORDER_MARK","LocalChunkSize","RemoteChunkSize","DefaultDelimiter","Parser","E","ParserHandle","NetworkStreamer","FileStreamer","StringStreamer","ReadableStreamStreamer","jQuery","fn","each","prop","toUpperCase","attr","toLowerCase","FileReader","files","file","inputElem","instanceConfig","extend","before","action","reason","splice","_handle","_finished","_completed","_halted","_input","_baseIndex","_partialLine","_rowCount","_start","_nextChunk","isFirstChunk","_completeResults","errors","w","chunkSize","parseInt","streamer","_config","parseChunk","beforeFirstChunk","paused","aborted","cursor","substring","preview","results","WORKER_ID","finished","concat","_sendError","_readChunk","_chunkLoaded","XMLHttpRequest","withCredentials","onload","onerror","_chunkError","open","downloadRequestBody","downloadRequestHeaders","setRequestHeader","send","message","status","readyState","responseText","getResponseHeader","lastIndexOf","statusText","webkitSlice","mozSlice","FileReaderSync","Math","min","size","readAsText","encoding","target","result","pause","arguments","resume","_streamData","_streamEnd","_streamError","_checkIsFinished","shift","_streamCleanUp","removeListener","pow","abort","k","forEach","transformHeader","map","parseFloat","code","row","split","comments","abs","successful","bestDelimiter","delimitersToGuess","getCharIndex","setTimeout","j","z","M","U","q","N","B","fastMode","K","W","H","L","includes","I","R","C","D","T","O","A","substr","x","linebreak","truncated","terminate","__webpack_exports__","is","addClass","el","cls","arr","className","removeClass","RModal","opts","this$1","opened","bodyClass","dialogClass","dialogOpenClass","dialogCloseClass","focus","focusElements","escapeClose","content","closeTimeout","overlay","dialog","querySelector","beforeOpen","_doOpen","body","style","display","focusOutElement","activeElement","afterOpen","close","beforeClose","_doClose","afterClose","html","innerHTML","elements","selector","fallback","navigator","appVersion","querySelectorAll","element","getComputedStyle","visibility","offsetParent","firstChild","keydown","ev","stopEvent","preventDefault","stopPropagation","which","contains","first","last","shiftKey","version","FlowPanelActionsAdorner","flowpanelActionsAdorner","tslib__WEBPACK_IMPORTED_MODULE_0__","knockout__WEBPACK_IMPORTED_MODULE_1__","_surveyjsObjects__WEBPACK_IMPORTED_MODULE_2__","_question_actions__WEBPACK_IMPORTED_MODULE_4__","templateHtml","_super","question","editor","adornerElement","_this","createWrappingFunction","survey","parentElement","getElementsByTagName","tag","selection","getSelection","rangeCount","selectedText","actions","text","localize","onClick","title","hasTitle","template","availableTypes","onAddQuestion","event","questionType","newElelentName","getNewName","addNewQuestion","register","viewModel","createViewModel","params","componentInfo","getMarkerClass","model","getType","getElementName","afterRender","decoration","createElement","appendChild","onAdornerRenderedCallback","imageItemsAdorner","addImageItemAdorner","knockout__WEBPACK_IMPORTED_MODULE_0__","survey_knockout__WEBPACK_IMPORTED_MODULE_1__","_editorLocalization__WEBPACK_IMPORTED_MODULE_3__","_vendor_sortable__WEBPACK_IMPORTED_MODULE_4__","_vendor_sortable__WEBPACK_IMPORTED_MODULE_4___default","_item_editor__WEBPACK_IMPORTED_MODULE_5__","_utils_utils__WEBPACK_IMPORTED_MODULE_6__","_image__WEBPACK_IMPORTED_MODULE_8__","ImageItemInplaceEditor","item","rootElement","itemsRoot","imageChosen","valueChanged","deleteItem","choices","findProperty","allowDelete","onCollectionItemDeletingCallback","onQuestionEditorChanged","configurable","chooseImage","fileInput","getElementsByClassName","chooseFiles","getLocString","str","getString","uploadFiles","link","options","propertyName","newValue","doValidation","onValueChangingCallback","onPropertyValueChanged","onclick","handle","draggable","animation","onEnd","evt","choice","oldIndex","newIndex","addItemElement","itemText","nextValue","itemValue","locOwner","getLocale","getMarkdownHtml","getProcessedText","onItemValueAddedCallback","width","height","lineHeight","createImageFileChooser","imageAdorner","contentMode","accept","position","opacity","overflow","ImageInplaceEditor","deleteImage","setValue","ItemInplaceEditor","itemAdorner","createAddItemHandler","createAddItemElement","createCustomElement","itemDraggableAdorner","survey_knockout__WEBPACK_IMPORTED_MODULE_2__","_surveyjsObjects__WEBPACK_IMPORTED_MODULE_3__","_editorLocalization__WEBPACK_IMPORTED_MODULE_4__","_vendor_sortable__WEBPACK_IMPORTED_MODULE_5__","_vendor_sortable__WEBPACK_IMPORTED_MODULE_5___default","_title_editor__WEBPACK_IMPORTED_MODULE_6__","_utils_utils__WEBPACK_IMPORTED_MODULE_7__","_surveyHelper__WEBPACK_IMPORTED_MODULE_8__","focusAfterChange","renderedElement","focusables","_allowAddRemoveItems","addEventListener","keyCode","altKey","moveItemInArray","isEditing","startEdit","editorOptions","allowAddRemoveItems","allowRemoveAllItems","onSetPropertyEditorOptionsCallback","needRemove","otherItem","hasOther","inplaceEditForValues","parent","choicesFromQuestion","rows","onItemAdded","onItemAdding","choiceItem","handler","addNew","onkeyup","tabIndex","setAttribute","svgElem","createElementNS","useElem","setAttributeNS","titleEl","classList","remove","itemRoot","group","hasColumns","columnContent","itemBefore","undoRedoManager","startTransaction","stopTransaction","raiseChangingEvent","raiseChangedEvent","canShowObjectProperty","hasNone","labelAdorner","QuestionActionsAdorner","questionActionsAdorner","panelActionsAdorner","_surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__","_editorLocalization__WEBPACK_IMPORTED_MODULE_2__","surveyForDesigner","getMenuItems","getStyle","icon","entryString","isPanel","isPage","ratingItemAdorner","_title_editor__WEBPACK_IMPORTED_MODULE_5__","RatingItemEditor","rateValues","visibleRateValues","rateMax","rateStep","dispose","renderDisplayMode","_editorLocalization__WEBPACK_IMPORTED_MODULE_1__","_select_items__WEBPACK_IMPORTED_MODULE_3__","isExpanded","otherText","toggle","renderEditableItems","_vendor_sortable__WEBPACK_IMPORTED_MODULE_2__","_vendor_sortable__WEBPACK_IMPORTED_MODULE_2___default","_item_editor__WEBPACK_IMPORTED_MODULE_4__","_select_items__WEBPACK_IMPORTED_MODULE_5__","noneText","sortableElement","sortable","valueName","showOther","addOther","showNone","addNone","addItem","choicesRendered","destroy","newChoices","otherValueChanged","noneValueChanged","selectItemsAdorner","_adorners_select_items_display__WEBPACK_IMPORTED_MODULE_0__","_adorners_select_items_editor__WEBPACK_IMPORTED_MODULE_1__","_surveyHelper__WEBPACK_IMPORTED_MODULE_2__","isCanModifyProperty","renderReadOnly","TitleActionsViewModel","allowImageChooser","getEditor","logo","logoPosition","visible","koShowHeader","isLogoImageChoosen","allowControlSurveyTitleVisibility","headerContainer","add","getIcon","TitleInplaceEditor","titleAdorner","itemTitleAdorner","descriptionAdorner","cachedCanvas","survey_knockout__WEBPACK_IMPORTED_MODULE_4__","_utils_utils__WEBPACK_IMPORTED_MODULE_5__","FRIENDLY_PADDING","resizeInput","computedStyle","getTextWidth","fontSize","fontFamily","font","canvas","context","getContext","metrics","measureText","placeholder","editingName","prevName","_needSelectTargetOnStartEdit","onValidateSelectedElement","creator","hasErrors","hideEditor","forNeibours","dataset","readOnly","isCompositionSessionOpen","shouldCloseCompositionSession","selectFromStringEditor","selectedElement","updatePrevName","inputElement","getInputElement","draggableElement","findDraggableElement","onblur","onfocus","callback","onTitleInplaceEditorStartEdit","select","postEdit","cancelEdit","compositionStart","compositionEnd","nameEditorKeypress","nameEditorKeydown","ctrlKey","_valueSubscription","serializationProperty","koRenderedHtml","onpointerdown","func","holder","children","maxLength","onIsPropertyReadOnlyCallback","errorText","isRequired","onGetErrorTextOnValidationCallback","parentNode","oldValue","onPropertyChanged","domNodeDisposal","addDisposeCallback","surveyTitleEditable","pageTitleEditable","inplaceEditForNames","items","surveyDescriptionEditable","pageDescriptionEditable","titleImageAdorner","ignoreHiddenLogoProperty","onRegister","isTitleLogoEditable","onUnregister","Commands","commands","undo","hotKey","macOsHotkey","toolbar","iconName","koIsShowDesigner","enabled","koCanUndo","tooltip","redo","koCanRedo","surveySettings","showQuestionEditor","toolbarOptions","koShowOptions","css","koGenerateValidJSON","generateValidJSONClick","generateReadableJSONClick","surveyTest","koViewType","koTestSurveyWidth","save","koShowSaveButton","saveButtonClick","innerCss","state","koShowState","koState","getCommands","ElementSelectorViewModel","koValue","optionsCaption","koHasFocus","koElements","PagesEditorViewModel","_entries__WEBPACK_IMPORTED_MODULE_1__","_stylesmanager__WEBPACK_IMPORTED_MODULE_3__","pageSelectionChanged","updateScroller","isNeedAutoScroll","scrollToSelectedPage","pagesElement","pages","selectedPage","pageElement","scrollLeft","offsetLeft","offsetWidth","updateMenuPosition","getPageClass","page","getPageMenuIconClass","baseIconName","currentTheme","isActive","onPageClick","pageModel","movingPage","movedFrom","hasScroller","setInterval","scrollWidth","moveLeft","moveRight","onWheel","originalEvent","delta","deltaY","detail","wheelDelta","returnValue","menuElements","left","onStart","blockPagesRebuilt","movePage","onUpdate","itemV","removeChild","clearInterval","pagesEditorModel","SurveyResultsModel","rowTemplateHtml","koResultViewType","koResultText","koResultData","addCollapsed","isNode","collapsed","plainData","getPlainData","includeEmpty","selectTableClick","selectJsonClick","SurveySimulatorComponent","DEFAULT_MONITOR_DPI","simulatorDevices","_toolbarHolder","_options","landscape","device","simulatorOptions","orientation","considerDPI","_simulatorEnabled","_simulatorScaleEnabled","koDevices","subscribe","simulator","koHasFrame","activeDevice","simulatorEnabled","deviceType","koSimulatorFrame","scale","ppi","deviceWidth","landscapeOrientation","cssPixelRatio","deviceHeight","deviceLandscapedFrameWidth","frameHeight","frameWidth","deviceLandscapedFrameHeight","simulatorScaleEnabled","landscapedFrameWidth","landscapedFrameHeight","cssClass","koSurvey","showSimulator","toolbarItems","component","write","val","set","setIsMobile","isLanscape","devicePixelRatio","desktop","iPhone5","iPhone6","iPhone6plus","iPhone8","iPhone8plus","iPhoneX","iPhoneXmax","iPad","iPadMini","iPadPro","iPadPro13","androidPhone","androidTablet","win10Phone","msSurface","genericPhone","Toolbar","ToolboxItemViewModel","_creator","click","clickToolboxItem","dragstart","draggingToolboxItem","dragend","dragEnd","ToolboxViewModel","_toolbox_item__WEBPACK_IMPORTED_MODULE_1__","itemsProvider","toolbox","CreatorBaseEvent","CreatorBase","_questionconverter__WEBPACK_IMPORTED_MODULE_4__","_textWorker__WEBPACK_IMPORTED_MODULE_5__","_surveyHelper__WEBPACK_IMPORTED_MODULE_6__","_json5__WEBPACK_IMPORTED_MODULE_7__","_tabs_logic__WEBPACK_IMPORTED_MODULE_8__","_settings__WEBPACK_IMPORTED_MODULE_9__","_propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_10__","showDesignerTabValue","showJSONEditorTabValue","showTestSurveyTabValue","showEmbeddedSurveyTabValue","showTranslationTabValue","showLogicTabValue","isRTLValue","haveCommercialLicenseValue","alwaySaveTextInPropertyEditorsValue","showDropdownPageSelectorValue","surveyValue","newQuestions","newPanels","koAutoSave","onElementDeleting","onGetPropertyReadOnly","onSurveyInstanceCreated","onGetObjectDisplayName","onDefineElementMenuItems","onShowingProperty","onCanShowProperty","onCanDeleteItem","onCollectionItemDeleting","onItemValueAdded","onMatrixColumnAdded","onSetPropertyEditorOptions","onGenerateNewName","onPropertyValidationCustomError","onPropertyValueChanging","onConditionQuestionsGetList","onTranslationStringVisibility","onTranslationLocaleInitiallySelected","useTabsInElementEditor","maxLogicItemsInCondition","showObjectTitles","showTitlesInExpressions","allowEditExpressionsInTextEditor","maximumColumnsCount","showPagesInTestSurveyTab","showSimulatorInTestSurveyTab","allowModifyPages","showDefaultLanguageInTestSurveyTab","showInvisibleElementsInTestSurveyTab","showPageSelectorInToolbar","tabs","showErrorOnFailedSave","koReadOnly","setOptions","initTabs","showEmbeddedSurveyTab","newVal","onSetReadOnly","checker","makeNewViewActive","viewName","canSwitchViewType","onViewTypeChanged","newType","showDesignerTab","showTestSurveyTab","showLogicTab","showJSONEditorTab","showTranslationTab","getOptions","generateValidJSON","showEmbededSurveyTab","haveCommercialLicense","showState","showOptions","isAutoSave","isRTL","showDropdownPageSelector","parentObj","parentProperty","proposedValue","isEmpty","fire","getSurveyTextFromDesigner","json","toJSON","indent","jsonEditor","indentation","setTextValue","setSurveyJSONTextCallback","changeText","clearState","getSurveyJSONTextCallback","getSurveyJSON","toJsonObject","surveyJsonText","textWorker","isJsonCorrect","getObjectDisplayName","displayName","getObjectName","createSurvey","surveyType","locale","currentLocale","setModified","convertCurrentObject","newQuestion","convertObject","stopTransation","initSurveyWithJSON","doClickQuestionCore","modifiedType","currentPage","elElement","addElement","setNewNames","newQuestionChangedNames","setNewNamesCore","updateNewElementExpressions","setDesignMode","addPage","addNewPage","logic","renameQuestion","getAllQuestions","addElements","getAllPanels","getElements","getNewPageName","getNewPanelName","getNewQuestionName","elType","newName","panel","createNewElement","newElement","createClass","toObject","copyElement","fastCopyQuestion","deleteElement","deleteObject","deleteObjectCore","objType","getObjectType","Page","removePage","deletePanelOrQuestion","updateConditionsOnRemove","elementType","allowing","Question","questions","isQuestion","removeQuestion","getValueName","selectElement","objIndex","onCanShowObjectProperty","showMode","canShow","canDeleteItem","canDelete","getErrorOnPropertyChanging","generateUniqueName","isUnique","generateNewName","isNameUnique","oldName","isNameUniqueInArray","getOriginalObject","doPropertyGridChanged","onCanShowPropertyCallback","onCanDeleteItemCallback","collection","itemValues","newItem","onMatrixDropdownColumnAddedCallback","matrix","column","newColumn","onGetElementEditorTitleCallback","onConditionQuestionsGetListCallback","list","startUndoRedoTransaction","stopUndoRedoTransaction","DragDropTargetElement","DragDropHelper","useOnlyNativeEvents","source","nestedPanelDepth","dragDropStart","moveTo","destination","isBottom","isEdge","dragDropMoveTo","doDrop","clearCore","dragDropFinish","clear","onModifiedCallback","scrollableElement","ddTarget","counter","isScrollStop","prevCoordinates","attachToElement","domElement","surveyElement","isFlowPanel","getChildrenLayoutType","isFlowPanelInChrome","koIsDragging","allowingOptions","allowDragging","onpaste","clipData","getData","selObj","selRange","getRangeAt","deleteContents","insertNode","createTextNode","clipboardData","execCommand","ondragover","dragDropHelper","doDragDropOverFlow","doDragDropOver","ondrop","helper","isLayoutTypeSupported","dataTransfer","dropRange","caretRangeFromPoint","clientX","clientY","removeAllRanges","addRange","ondragstart","isDragStarted","startDragQuestion","cancelBubble","ondragend","end","prepareData","startDragToolboxItem","elementName","elementJson","isSurveyDragging","dataStart","isCanDragContinue","bottomInfo","lastEl","isBottomThanElement","getEvent","isSameCoordinates","checkScrollY","isSamePlace","clearData","prevedDefault","moveToParent","moveToIndex","updateElementCss","notifySubscribers","doLeavePage","createTargetElement","targetElement","renderWidth","currentTarget","offsetY","edgeHeight","elY","offsetTop","clientHeight","res","pageX","pageY","prev","prevEvent","getScrollableElementPosY","ScrollOffset","doScrollY","scrollY","scrollTop","ScrollDelay","getY","clientTop","setData","effectAllowed","dragData","CreatorEvent","SurveyCreator","SurveyEditor","_surveyObjects__WEBPACK_IMPORTED_MODULE_3__","_questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_5__","_textWorker__WEBPACK_IMPORTED_MODULE_6__","_undoredomanager__WEBPACK_IMPORTED_MODULE_7__","_dragdrophelper__WEBPACK_IMPORTED_MODULE_9__","_toolbox__WEBPACK_IMPORTED_MODULE_10__","_json5__WEBPACK_IMPORTED_MODULE_11__","survey_knockout__WEBPACK_IMPORTED_MODULE_12__","_surveyjsObjects__WEBPACK_IMPORTED_MODULE_13__","_stylesmanager__WEBPACK_IMPORTED_MODULE_14__","_adorners_item_editor__WEBPACK_IMPORTED_MODULE_15__","_tabs_test__WEBPACK_IMPORTED_MODULE_16__","_tabs_logic__WEBPACK_IMPORTED_MODULE_17__","_commands__WEBPACK_IMPORTED_MODULE_18__","_pages_editor__WEBPACK_IMPORTED_MODULE_19__","_utils_utils__WEBPACK_IMPORTED_MODULE_20__","_creator_base__WEBPACK_IMPORTED_MODULE_21__","_propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_22__","templateEditorHtml","Instance","unregisterElement","stateValue","closeModalOutsideValue","pageEditModeValue","showApplyButtonValue","scrollToNewElement","surveyId","surveyPostId","onNotify","onBeforeUndo","onBeforeRedo","onAfterUndo","onAfterRedo","onSelectedElementChanging","onSelectedElementChanged","onEditorTabRendered","onActiveTabChanged","onCustomSortProperty","onPropertyAfterRender","onQuestionAdded","onElementDoubleClick","onPanelAdded","onPageAdded","onModified","onElementNameChanged","onDesignerSurveyCreated","onTestSurveyCreated","onPropertyEditorObjectAssign","onConditionValueSurveyCreated","onPropertyEditorKeyDown","onElementAllowOperations","onShowPropertyModalEditorDescription","onGetObjectTextInPropertyGrid","onCustomElementAddingIntoToolbox","onCustomElementAddedIntoToolbox","onClearFile","onUploadFile","onOpenFileChooser","onTranslationImported","onTranslateItemAfterRender","onDragDropAllow","onAdornerRendered","onElementEditorClosed","onEditorAfterRenderCallback","htmlElement","propertyEditor","themeCss","autoSaveDelay","autoSaveTimerId","saveNo","doUndoClick","doRedoClick","_showExternalHelpLink","_placeholderHtml","leftContainerVisible","leftContainerActiveItem","rightContainerVisible","rightContainerActiveItem","layoutChangedIndicator","deletePage","deleteCurrentObject","indexFrom","indexTo","disableSurveySelectedElementChanging","onClose","showModalOnElementEditing","hideAdvancedSettings","setNewObjToPropertyGrid","propertyGridObjectEditorModel","focusEditor","showModalElementEditor","dirtyPageUpdate","selectedObject","copyPage","newPage","addPageToUI","onEditorTabRenderedCallback","tabName","tabData","koCanDeleteObject","toolboxValue","questionTypes","surveyLive","logicValue","applyTheme","doSave","koObjects","koSelectedObject","selectedObjectChanged","generateValidJSONChangedCallback","surveyObjects","getItemTextCallback","showElementEditorAsPropertyGrid","koIsOldTableAppearance","koShowElementEditorAsPropertyGrid","onAfterRenderCallback","onSortPropertyCallback","property1","property2","onCustomSortPropertyObjectProperty","onPropertyCorrectValueBeforeSet","questionEditorWindow","deleteObjectClick","doDraggingToolboxItem","doClickToolboxItem","canUndo","canRedo","render","addToolbarItems","koShowPropertyGrid","koHideAdvancedSettings","_topContainer","hideExpressionHeaderValue","koShowToolbox","_leftContainer","_rightContainer","koAllowControlSurveyTitleVisibility","koDesignerHeight","koShowSurveyTitle","koShowPagesToolbox","showPropertyGrid","designerHeight","objectsIntend","intend","closeModalOutside","pageEditMode","hideExpressionHeader","showToolbox","showPagesToolbox","showSurveyTitle","updateKoCanUndoRedo","command","toolbarItem","execute","update","getElementById","applyBinding","loadSurvey","success","response","initSurvey","showDesigner","setUndoRedoCurrentState","translationValue","copiedItemMaxCount","setState","notify","msg","alert","doAutoSave","clearTimeout","saveSurveyFunc","no","isSuccess","isProcessingUndoRedo","saveSurveyFuncValue","isCopyObject","isPropertyVisible","doOnQuestionAdded","parentPanel","isMoving","getPageByElement","addingObject","doOnElementRemoved","removeObject","doOnPanelAdded","doOnPageAdded","updateObjectTextInPropertyGrid","nameChanged","getPageByName","objectChanged","newObj","isModified","showJsonEditor","showTestSurvey","showEmbedEditor","showTranslationEditor","showLogicEditor","getSelectedObjectPage","selectObject","validateSelectedElement","isValid","newSelectedElement","canDeleteObject","Panel","scrollIntoViewIfNeeded","$creator","runEarly","surveyjs","onkeydown","selectQuestion","container","onKeyDownHandler","initSurveyOnRender","getDefaultSurveyJson","defaultNewSurveyText","evtobj","metaKey","onSurveyPropertyValueChangedCallback","sender","arrayChanges","updateConditionsOnQuestionNameChanged","isObjQuestion","updateConditions","isDescendantOf","updateChoicesFromQuestionOnColumnNameChanged","classInfo","findClass","parentName","newSurvey","optionValue","showValue","locTitle","locLogo","isReadOnly","emptyPageTemplate","emptyPageTemplateData","onPropertyValueChangedCallback","canUndoRedoCallback","changesFinishedCallback","changes","setJsonObject","onUpdateElementAllowingOptions","afterRenderElementHandler","afterRenderElementPageHandler","afterRenderHeaderHandler","onAfterRenderPage","onAfterRenderQuestion","onAfterRenderPanel","pnlEl","emptyElement","addEmptyPanelElement","onAfterRenderHeader","onGetMenuItems","allowShowEditor","deleteLocaleName","allowShowHideTitle","titleLocation","isShowTitle","allowChangeRequired","allowCopy","allowAddToToolbox","addCustomToolboxQuestion","allowChangeType","currentType","convertClasses","getConvertToClasses","itemNames","createTypeByClass","onConvertType","needFocus","onEditButtonClick","onProcessHtml","processHtml","onQuestionRemoved","onPanelRemoved","hasObject","scriptRegEx","dragOverQuestionsEditor","dropOnQuestionsEditor","deleteQuestion","getSelectedObjAsQuestion","isUp","selectNextQuestion","showElementEditor","elWindow","isCanceled","oldValueName","show","itemOptions","addCopiedItem","onIsEditorReadOnlyCallback","onPropertyEditorKeyDownCallback","onPropertyEditorObjectSetCallback","onPropertyEditorModalShowDescriptionCallback","htmlTop","htmlBottom","top","bottom","onConditionValueSurveyCreatedCallBack","valueQuestionName","adorner","clearFiles","clearCallback","uploadingCallback","fileReader_1","readAsDataURL","onFilesChosen","onchange","getAccordionTabs","aTabs","koElementEditor","koTabs","koEditor","collapseAllPropertyTabs","tab","collapse","expandAllPropertyTabs","expand","expandPropertyTab","collapsePropertyTab","eDiv","eSpan","textContent","getEditorLocString","editorLocalization","defaultStrings","_localization_english__WEBPACK_IMPORTED_MODULE_0__","camelCaseBreaking","locales","strName","loc","defaultLocale","path","hasString","getLocaleName","localeNames","getPropertyName","defaultName","getProperty","getAutoPropertyName","getPropertyTitle","getPropertyNameInEditor","propName","getPropertyValue","getValueInternal","getValidatorName","getTriggerName","prefix","getLocales","__assign","__extends","thisClass","baseClass","__","Version","survey_knockout__WEBPACK_IMPORTED_MODULE_5__","_localization_english__WEBPACK_IMPORTED_MODULE_6__","_editorLocalization__WEBPACK_IMPORTED_MODULE_7__","_settings__WEBPACK_IMPORTED_MODULE_8__","_propertyEditors_surveyElementSelector__WEBPACK_IMPORTED_MODULE_11__","_propertyEditors_propertyEditorBase__WEBPACK_IMPORTED_MODULE_12__","_propertyEditors_propertyCustomEditor__WEBPACK_IMPORTED_MODULE_13__","_propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_14__","_propertyEditors_propertyTextItemsEditor__WEBPACK_IMPORTED_MODULE_15__","_propertyEditors_propertyItemsEditor__WEBPACK_IMPORTED_MODULE_16__","_propertyEditors_propertyItemValuesEditor__WEBPACK_IMPORTED_MODULE_17__","_propertyEditors_propertyMultipleValuesEditor__WEBPACK_IMPORTED_MODULE_18__","_propertyEditors_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_19__","_propertyEditors_propertyPagesEditor__WEBPACK_IMPORTED_MODULE_20__","_propertyEditors_propertyMatrixDropdownColumnsEditor__WEBPACK_IMPORTED_MODULE_21__","_propertyEditors_propertyModalEditor__WEBPACK_IMPORTED_MODULE_22__","_propertyEditors_propertyConditionEditor__WEBPACK_IMPORTED_MODULE_23__","_propertyEditors_propertyRestfullEditor__WEBPACK_IMPORTED_MODULE_24__","_propertyEditors_propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_25__","_propertyEditors_propertyTriggersEditor__WEBPACK_IMPORTED_MODULE_26__","_propertyEditors_propertyHtmlConditionEditor__WEBPACK_IMPORTED_MODULE_27__","_propertyEditors_propertyUrlConditionEditor__WEBPACK_IMPORTED_MODULE_28__","_propertyEditors_propertyCalculatedValues__WEBPACK_IMPORTED_MODULE_29__","_propertyEditors_propertyValidatorsEditor__WEBPACK_IMPORTED_MODULE_30__","_propertyEditors_propertyCellsEditor__WEBPACK_IMPORTED_MODULE_31__","_propertyEditors_propertyBindingsEditor__WEBPACK_IMPORTED_MODULE_32__","_surveyObjects__WEBPACK_IMPORTED_MODULE_33__","_questionEditors_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_34__","_questionEditors_properties__WEBPACK_IMPORTED_MODULE_35__","_questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_36__","_components_toolbox__WEBPACK_IMPORTED_MODULE_37__","_toolbox__WEBPACK_IMPORTED_MODULE_38__","_objectProperty__WEBPACK_IMPORTED_MODULE_39__","_components_pages_editor__WEBPACK_IMPORTED_MODULE_40__","_components_element_selector__WEBPACK_IMPORTED_MODULE_41__","_components_toolbar__WEBPACK_IMPORTED_MODULE_42__","_textWorker__WEBPACK_IMPORTED_MODULE_43__","_surveyHelper__WEBPACK_IMPORTED_MODULE_44__","_tabs_test__WEBPACK_IMPORTED_MODULE_45__","_tabs_embed__WEBPACK_IMPORTED_MODULE_46__","_questionconverter__WEBPACK_IMPORTED_MODULE_47__","_tabs_json_editor__WEBPACK_IMPORTED_MODULE_48__","_tabs_logic__WEBPACK_IMPORTED_MODULE_49__","_surveyjsObjects__WEBPACK_IMPORTED_MODULE_50__","_extentions__WEBPACK_IMPORTED_MODULE_51__","_editor__WEBPACK_IMPORTED_MODULE_52__","_stylesmanager__WEBPACK_IMPORTED_MODULE_53__","_tabs_translation__WEBPACK_IMPORTED_MODULE_81__","_adorners_title_editor__WEBPACK_IMPORTED_MODULE_82__","_adorners_item_editor__WEBPACK_IMPORTED_MODULE_83__","_adorners_label_editor__WEBPACK_IMPORTED_MODULE_84__","_adorners_question_actions__WEBPACK_IMPORTED_MODULE_85__","_adorners_select_items__WEBPACK_IMPORTED_MODULE_86__","_adorners_rating_item_editor__WEBPACK_IMPORTED_MODULE_87__","_adorners_image_items__WEBPACK_IMPORTED_MODULE_88__","_adorners_flowpanel_actions__WEBPACK_IMPORTED_MODULE_89__","_adorners_image__WEBPACK_IMPORTED_MODULE_90__","_adorners_title_image__WEBPACK_IMPORTED_MODULE_91__","_adorners_title_actions__WEBPACK_IMPORTED_MODULE_92__","_utils_accordion__WEBPACK_IMPORTED_MODULE_93__","_utils_button__WEBPACK_IMPORTED_MODULE_94__","_utils_dropdown__WEBPACK_IMPORTED_MODULE_95__","_utils_boolean__WEBPACK_IMPORTED_MODULE_96__","_utils_svg_icon__WEBPACK_IMPORTED_MODULE_97__","_utils_survey_widget__WEBPACK_IMPORTED_MODULE_98__","_utils_splitter__WEBPACK_IMPORTED_MODULE_99__","_utils_designer_container__WEBPACK_IMPORTED_MODULE_100__","_utils_designer_h_container__WEBPACK_IMPORTED_MODULE_101__","_propertyEditors_propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_102__","_property_grid_property_grid__WEBPACK_IMPORTED_MODULE_103__","_property_grid_object_editor__WEBPACK_IMPORTED_MODULE_104__","_property_grid_object_editor_content__WEBPACK_IMPORTED_MODULE_105__","_property_grid_object_editor_tab__WEBPACK_IMPORTED_MODULE_106__","_property_grid_object_editor_old_table_content__WEBPACK_IMPORTED_MODULE_107__","_property_editors_property_editor__WEBPACK_IMPORTED_MODULE_108__","_property_editors_error__WEBPACK_IMPORTED_MODULE_109__","_property_editors_string__WEBPACK_IMPORTED_MODULE_110__","_property_editors_dropdown__WEBPACK_IMPORTED_MODULE_111__","_property_editors_boolean__WEBPACK_IMPORTED_MODULE_112__","_property_editors_switch__WEBPACK_IMPORTED_MODULE_113__","_property_editors_number__WEBPACK_IMPORTED_MODULE_114__","_property_editors_color__WEBPACK_IMPORTED_MODULE_115__","_property_editors_modal__WEBPACK_IMPORTED_MODULE_116__","_property_editors_modal_content__WEBPACK_IMPORTED_MODULE_117__","_property_editors_text__WEBPACK_IMPORTED_MODULE_118__","_property_editors_strings__WEBPACK_IMPORTED_MODULE_119__","_property_editors_condition__WEBPACK_IMPORTED_MODULE_120__","_property_editors_cells__WEBPACK_IMPORTED_MODULE_121__","_property_editors_expression__WEBPACK_IMPORTED_MODULE_122__","_property_editors_html_pe__WEBPACK_IMPORTED_MODULE_123__","_property_editors_item_values__WEBPACK_IMPORTED_MODULE_124__","_property_editors_default_value__WEBPACK_IMPORTED_MODULE_125__","_property_editors_one_selected__WEBPACK_IMPORTED_MODULE_126__","_property_editors_restfull__WEBPACK_IMPORTED_MODULE_127__","_property_editors_multiple_values__WEBPACK_IMPORTED_MODULE_128__","_property_editors_nested_items__WEBPACK_IMPORTED_MODULE_129__","_property_editors_nested_item__WEBPACK_IMPORTED_MODULE_130__","_property_editors_nested__WEBPACK_IMPORTED_MODULE_131__","_property_editors_custom__WEBPACK_IMPORTED_MODULE_132__","_property_editors_bindings__WEBPACK_IMPORTED_MODULE_133__","_property_editors_file__WEBPACK_IMPORTED_MODULE_134__","_components_simulator__WEBPACK_IMPORTED_MODULE_135__","ExpressionToDisplayText","ExpressionRemoveVariable","survey_knockout__WEBPACK_IMPORTED_MODULE_0__","toDisplayText","expression","showTitles","parser","node","parseExpression","toDisplayTextCore","variables","setVariables","replaceVariables","currentQuestion","isRoot","strFunc","op","locIsRoot","getQuestionText","getDisplayText","proceedBinary","getDisplayBinary","getDisplayUnary","getQuestionByName","variable","getDisplayValue","correctValue","getDisplayOperand","getDisplayOperator","operator","operatorText","leftOperand","rightOperand","exp","isArithmetic","isConjunction","getQuestionFromOperands","op1","op2","op2Type","replaceVariable","getQuestionByValueName","less","lessorequal","greater","greaterorequal","equal","notequal","plus","minus","mul","div","power","mod","negate","wasRemoved","processOperand","processVariable","processUnary","right","Extentions","_propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_0__","registerCustomPropertyEditor","widgetJSON","registerCustomEditor","unregisterCustomPropertyEditor","unregisterCustomEditor","registerPropertyEditor","registerEditor","SurveyJSON5","parseType","reviver","startFrom","endAt","ch","white","walk","SyntaxError","chartAt","peek","identifier","number","sign","string","base","word","isNaN","isFinite","hex","delim","uffff","escapee","inlineComment","blockComment","comment","ws","Infinity","NaN","array","start","isFirstProperty","positionName","valueStart","valueEnd","replacer","space","indentStr","getIndent","objStack","topLevelHolder","getReplacedValueOrUndefined","internalStringify","makeIndent","isTopLevel","isWordChar","char","isWordStart","isWord","isDate","checkForCircular","TypeError","num","noNewLine","escapeString","escapable","lastIndex","buffer","obj_part","valueOf","pop","nonEmpty","propKey","cx","_editorLocalization__WEBPACK_IMPORTED_MODULE_0__","arabicStrings","edit","externalHelpLink","externalHelpLinkUrl","dropQuestion","addLogicItem","copy","duplicate","settings","addToToolbox","deletePanel","convertTo","drag","license","qt","default","checkbox","imagepicker","ranking","image","dropdown","matrixdropdown","matrixdynamic","multipletext","paneldynamic","radiogroup","rating","boolean","signaturepad","buttongroup","flowpanel","ed","settingsTooltip","showPanel","hidePanel","prevSelected","nextSelected","surveyTypeName","pageTypeName","panelTypeName","questionTypeName","columnTypeName","editPage","newPageName","newQuestionName","newPanelName","newTextItemName","testSurvey","testSurveyAgain","testSurveyWidth","navigateToMsg","embedSurvey","translation","saveSurvey","saveSurveyTooltip","designer","jsonHideErrors","jsonShowErrors","undoTooltip","redoTooltip","cut","paste","copyTooltip","cutTooltip","pasteTooltip","generateReadableJSON","propertyGridFilteredTextPlaceholder","toolboxGeneralCategory","correctJSON","surveyResults","surveyResultsTable","surveyResultsJson","resultsTitle","resultsName","resultsValue","resultsDisplayValue","modified","saving","saved","propertyEditorError","saveError","translationPropertyGridTitle","translationLanguages","translationAddLanguage","translationShowAllStrings","translationShowAllPages","translationNoStrings","translationExportToSCVButton","translationImportFromSCVButton","translationMergeLocaleWithDefault","translationPlaceHolder","bold","italic","underline","fpAddQuestion","selectPage","chooseElement","htmlPlaceHolder","signHere","panelPlaceHolder","addNewTypeQuestion","chooseLogoPlaceholder","lg","addNewItem","empty_tab","page_visibilityName","panel_visibilityName","panel_enableName","question_visibilityName","question_enableName","question_requireName","trigger_completeName","trigger_setvalueName","trigger_copyvalueName","trigger_skipName","trigger_runExpressionName","completedHtmlOnConditionName","page_visibilityDescription","panel_visibilityDescription","panel_enableDescription","question_visibilityDescription","question_enableDescription","question_requireDescription","trigger_completeDescription","trigger_setvalueDescription","trigger_copyvalueDescription","trigger_skipDescription","trigger_runExpressionDescription","completedHtmlOnConditionDescription","itemExpressionText","itemEmptyExpressionText","page_visibilityText","panel_visibilityText","panel_enableText","question_visibilityText","question_enableText","question_requireText","trigger_completeText","trigger_setvalueText","trigger_copyvalueText","trigger_skipText","trigger_runExpressionText1","trigger_runExpressionText2","completedHtmlOnConditionText","showAllQuestions","showAllActionTypes","conditions","expressionEditorTitle","actionsEditorTitle","deleteAction","addNewAction","selectedActionCaption","expressionInvalid","noActionError","actionInvalid","expressionSetup","actionsSetup","pe","ok","saveTooltip","cancel","reset","change","refresh","delete","removeItem","dragItem","addSelectAll","removeAll","back","backTooltip","saveAndBack","saveAndBackTooltip","doneEditing","editChoices","showChoices","move","empty","emptyValue","fastEntry","fastEntryNonUniqueError","fastEntryChoicesCountError","formEntry","testService","itemSelectorEmpty","conditionActionEmpty","conditionSelectQuestion","conditionSelectPage","conditionSelectPanel","conditionValueQuestionTitle","expressionHelp","aceEditorHelp","aceEditorRowTitle","aceEditorPanelTitle","showMore","assistantTitle","cellsEmptyRowsColumns","propertyIsEmpty","propertyIsNoUnique","propertyNameIsNotUnique","listIsEmpty","expressionIsEmpty","rowid","imageLink","columnEdit","itemEdit","url","titleName","imageLinkName","allowEmptyResponse","titlePlaceholder","surveyTitlePlaceholder","pageTitlePlaceholder","descriptionPlaceholder","surveyDescriptionPlaceholder","pageDescriptionPlaceholder","showOtherItem","showNoneItem","hasSelectAll","selectAllText","choicesMin","choicesMax","choicesStep","cellType","colCount","choicesOrder","isAllRowRequired","requiredErrorText","startWithNewLine","cols","placeHolder","showPreview","storeDataAsText","maxSize","imageHeight","imageWidth","rowCount","columnLayout","addRowLocation","addRowText","removeRowText","rateMin","minRateDescription","maxRateDescription","inputType","showOptionsCaption","defaultValue","cellsDefaultRow","surveyEditorTitle","qEditorTitle","buildExpression","editExpression","and","or","addCondition","if","then","setToName","fromName","ruleIsNotSet","showTitle","expandCollapseTitle","portraitOrientation","clearInvisibleValues","cookieName","sendResultOnPageNext","storeOthersAsComment","showPageTitles","showPageNumbers","pagePrevText","pageNextText","completeText","previewText","editText","startSurveyText","showNavigationButtons","showPrevButton","firstPageIsStarted","showCompletedPage","goNextPageAutomatic","showProgressBar","questionTitleLocation","requiredText","questionStartIndex","showQuestionNumbers","questionTitleTemplate","questionErrorLocation","focusFirstQuestionAutomatic","questionsOrder","maxTimeToFinish","maxTimeToFinishPage","showTimerPanel","showTimerPanelMode","renderMode","allowAddPanel","allowRemovePanel","panelAddText","panelRemoveText","isSinglePage","minValue","maxValue","minLength","allowDigits","minCount","maxCount","regex","totalText","totalType","totalExpression","totalDisplayStyle","totalCurrency","totalFormat","addLogo","changeLogo","logoPositions","none","general","fileOptions","visibleIf","enableIf","requiredIf","choicesByUrl","matrixChoices","multipleTextItems","numbering","validators","navigation","completedHtml","completedHtmlOnCondition","loadingHtml","timer","calculatedValues","triggers","templateTitle","totals","layout","validation","cells","showOnCompleted","slider","others","editProperty","enterNewValue","noquestions","createtrigger","titleKeyboardAdornerTip","keyboardAdornerTip","triggerOn","triggerMakePagesVisible","triggerMakeQuestionsVisible","triggerCompleteText","triggerNotSet","triggerRunIf","triggerSetToName","triggerFromName","triggerRunExpression","triggerSetValue","triggerGotoName","triggerIsVariable","triggerRunExpressionEmpty","noFile","pv","auto","static","responsive","contain","cover","fill","onBlur","onTyping","video","true","false","inherit","initial","random","expanded","asc","desc","indeterminate","decimal","currency","percent","firstExpanded","off","onPanel","onSurvey","progressTop","progressBottom","progressTopBottom","horizontal","vertical","topBottom","both","color","date","datetime","email","month","password","range","tel","time","week","hidden","onPage","onComplete","onHidden","onHiddenContainer","all","onNextPage","onValueChanging","onValueChanged","singlePage","standard","questionPerPage","noPreview","showAnsweredQuestions","requiredQuestions","correctQuestions","buttons","underInput","underTitle","notempty","notcontains","anyof","allof","ew","angular","jquery","knockout","react","vue","bootstrap","modern","orange","darkblue","darkrose","stone","winter","winterstone","showOnPage","showInWindow","loadFromServer","titleScript","titleHtml","titleJavaScript","ts","showInvisibleElements","answercountvalidator","emailvalidator","expressionvalidator","numericvalidator","regexvalidator","textvalidator","completetrigger","setvaluetrigger","copyvaluetrigger","skiptrigger","runexpressiontrigger","visibletrigger","pehelp","navigationButtonsVisibility","description","innerIndent","commentText","correctAnswer","showCommentArea","otherErrorText","label","valueTrue","valueFalse","format","displayStyle","useGrouping","allowMultiple","horizontalScroll","columnsLayout","columnColCount","columnMinWidth","minRowCount","maxRowCount","keyName","keyDuplicationError","confirmDelete","confirmDeleteText","itemSize","templateDescription","panelCount","minPanelCount","maxPanelCount","panelsState","panelPrevText","panelNextText","showRangeInProgress","templateTitleLocation","completedBeforeHtml","checkErrorsMode","defaultPanelValue","defaultRowValue","multiSelect","showLabel","logoWidth","logoHeight","logoFit","focusOnFirstError","includeIntoResult","navigateToUrl","navigateToUrlOnCondition","questionDescriptionLocation","progressBarType","maxTextLength","maxOthersLength","textUpdateMode","autoGrowComment","questionTitlePattern","questionsOnPageMode","showPreviewBeforeComplete","widthMode","showNumber","navigationTitle","navigationDescription","useDisplayValuesInDynamicTexts","setDefaultValue","setCorrectValue","minWidth","maxWidth","descriptionLocation","hideNumber","defaultValueExpression","bindings","columnsVisibleIf","rowsVisibleIf","showHeader","detailPanelMode","rowTitleWidth","allowAddRows","allowRemoveRows","defaultValueFromLastRow","hideColumnsIfEmpty","emptyRowsText","detailPanelShowOnAdding","allowRowsDragAndDrop","rowsOrder","hideIfRowsEmpty","maximumFractionDigits","minimumFractionDigits","choicesFromQuestionMode","hideIfChoicesEmpty","choicesVisibleIf","choicesEnableIf","otherPlaceHolder","maxSelectedChoices","showClearButton","imageFit","autocomplete","max","minValueExpression","maxValueExpression","minErrorText","maxErrorText","dataList","autoGrow","multiLine","allowImagesPreview","acceptedTypes","waitForUpload","needConfirmRemoveFile","labelTrue","labelFalse","allowClear","penColor","backgroundColor","dataFormat","defaultValueFromLastPanel","panelRemoveButtonLocation","showCaption","iconSize","hrStrings","hasComment","czStrings","itemView","keyboardMoveItemsTip","view","danishStrings","editSurvey","delSelObject","editSelObject","pel","itemValueEdit","notEmpty","conditionButtonAdd","conditionButtonReplace","conditionHelp","conditionShowMoreUrl","nlStrings","questionTitle","enStrings","page_enableName","rateDescriptionLocation","leftRight","noEntriesText","fiStrings","frenchTranslation","opjectPropertiesHeader","showObjectProperties","hideObjectProperties","completedHtmlOnConditionItemText","germanTranslation","ge_visibilityName","maxOtherLength","choicesEnabledIf","runExpression","gotoName","runExpressionEmpty","huStrings","indonesianStrings","emptySurveyText","italianTranslation","jaStrings","koreanStrings","columnsLocation","msStrings","mnStrings","tagbox","surveySettingsTooltip","defaultV2Theme","modernTheme","defaultTheme","showMoreChoices","showLessChoices","toolboxChoiceCategory","toolboxTextCategory","toolboxContainersCategory","toolboxMatrixCategory","toolboxMiscCategory","translationShowUsedStringsOnly","surveyPlaceHolder","choices_Item","column_visibilityName","column_enableName","column_requireName","column_visibilityText","column_enableText","column_requireText","uncompletedRule_title","uncompletedRule_text","uncompletedRule_apply","uncompletedRule_cancel","fastEntryPlaceholder","choicesbyurl","showSelectAllItem","emptyLogicPopupMessage","responsiveImageSizeHelp","minImageWidth","maxImageWidth","minImageHeight","maxImageHeight","surveyvalidator","separateSpecialChoices","commentPlaceholder","displayRateDescriptionsAsExtremeItems","itemvalue","columnsEnableIf","rowsEnableIf","emptyExpressionPlaceHolder","clearIfInvisible","valuePropertyName","searchEnabled","hideSelectedItems","closeOnSelect","signatureWidth","signatureHeight","verticalAlign","alternateRows","otherPlaceholder","onpanel","underRow","underRowSingle","youtube","displayMode","hideInvisibleElements","tabAlign","surveyShowDataSaving","showTOC","tocLocation","showBrandInfo","renderAs","attachOriginalItems","cellHint","showInMultipleColumns","totalMaximumFractionDigits","totalMinimumFractionDigits","detailElements","allowAdaptiveActions","choicesLazyLoadEnabled","choicesLazyLoadPageSize","inputFieldComponent","itemComponent","longTap","acceptCarriageReturn","rateType","altText","templateElements","isVariable","nbStrings","persianStrings","polishStrings","Survey","page_title","portugueseTranslation","ruStrings","HTML","flowPanel","deleteOperation","addNewOperation","noOperationError","operationInvalid","ColCount","PlaceHolder","MaxSize","ImageHeight","ImageWidth","DefaultValue","RenderMode","mINLENGTH","EmailValidator","simplifiedChineseTranslation","trigger","defaultVaule","skStrings","spanishTranslation","svStrings","tgStrings","Addnew","traditionalChineseTranslation","survey_title","turkishStrings","SurveyObjectProperty","_propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_2__","propertyEditorOptions","isCellEditor","getObjectPropertyByName","isHiddenValue","disabled","onItemChanged","onEditorValueChanged","createEditor","onChanged","onGetLocale","doOnGetLocale","editorType","editorTypeTemplate","koVisible","isVisible","koText","koIsDefault","objectValue","setup","updateDependedProperties","updateDynamicProperties","beforeShow","hasError","applyToObj","isTwoValueEquals","isInPropertyGrid","updateValue","isHidden","getLayoutType","onCorrectValueBeforeSet","updatePropertyValue","props","getDependedProperties","PagesEditor","_surveyHelper__WEBPACK_IMPORTED_MODULE_1__","prevPagesForSelector","_selectedPage","_readOnly","isSelectingPage","canSelectObj","showActions","hasDropdownSelector","pagesForSelection","selectionSubscription","addPageSelectorIntoToolbar","unshift","isAllowedForSelectedPage","what","updateElementAllowingOptions","isLastPage","showPageSettings","PropertyEditorBindingsViewModel","koAfterRender","PropertyEditorBooleanViewModel","isDisplayNameVisible","PropertyEditorCellsViewModel","koCanEdit","koColumns","koRows","PropertyEditorColorViewModel","koMaxValue","koMinValue","PropertyEditorConditionViewModel","koShowExpressionHeader","onShowHideEditor","koConditionDisplayText","koIsEditorShowing","koIsEditorHidingDisabled","koShowTabs","koCanParseExpression","koActiveView","onChangeViewClick","koSetupText","koIsWideMode","koEditorItems","koCanAddItem","onRemoveConditionClick","removeConditionText","addConditionText","hasAceEditor","koTextValue","availableQuestions","editingObject","PropertyEditorCustomViewModel","PropertyEditorValueViewModel","resetValue","resetText","refreshSurvey","refreshText","PropertyEditorDropdownViewModel","koChoices","PropertyEditorErrorViewModel","koDisplayError","koErrorText","PropertyEditorExpressionViewModel","showHelpText","SurveyFilePropertyEditor","PropertyEditorFileViewModel","_propertyEditors_propertyEditorBase__WEBPACK_IMPORTED_MODULE_2__","_propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__","_editorLocalization__WEBPACK_IMPORTED_MODULE_5__","chooseFile","nextElementSibling","deleteFile","PropertyEditorHTMLViewModel","PropertyEditorItemValuesViewModel","koIsList","koShowTextView","changeToFormViewClick","changeToTextViewClick","koItemsText","PropertyEditorModalContent","koHtmlTop","koHtmlBottom","PropertyEditorModalViewModel","isEditable","onShowModal","modalNameTarget","modalName","koIsShowingModal","onResetClick","koTitleCaption","koShowApplyButton","onApplyClick","onOkClick","PropertyEditorMultipleValuesViewModel","koCategories","createviewModel","PropertyEditorNestedItemViewModel","koCanDeleteItem","dragIcon","deleteIcon","koHasDetails","originalValue","onEditItemClick","createColumns","createItemViewModel","nextSibling","PropertyEditorNestedItemsViewModel","sortableOptions","koAllowAddRemoveItems","onAddClick","onClearClick","koAllowRemoveAllItems","addItemText","PropertyEditorNestedViewModel","_onReturnToListClick","koEditorName","koEditItem","onReturnToListClick","PropertyEditorNumberViewModel","PropertyEditorOneSelectedViewModel","koAvailableClasses","koSelected","getItemText","koChangeCounter","onDeleteClick","setupAvailableClassesContainer","availableClassesContainer","toggleClassesContainer","relatedTarget","selectedObjectEditor","activeClassName","blur","PropertyEditorViewModel","showDisplayNameOnTop","contentTemplateName","helpText","toggleShowHelpText","propertyHelpText","PropertyEditorRestfullViewModel","koContentEditor","PropertyEditorStringViewModel","koInputType","koMaxLength","listName","onKeydown","onInputKeydown","PropertyEditorStringsViewModel","PropertyEditorSwitchViewModel","PropertyEditorTextViewModel","onFocus","ObjectEditorContentViewModel","koActiveTab","onTabClick","elementEditorContent","ObjectEditorOldTableContentViewModel","koProperties","koTab","ObjectEditorTabViewModel","editorProperties","koAfterRenderProperty","ObjectEditorViewModel","koHasObject","PropertyGridViewModel","EditableObject","objValue","editableObjValue","createEditableObj","getSurvey","getOriginalSurvey","colOwner","owner","errorOwner","original","isPropertyChanged","editableObj","dest","src","setJson","getJson","applyPages","assignProperties","applyAll","excludedProps","getProperties","newJSON","getObjJson","oldJSON","jsonObj","lightSerializing","editablePages","editablePage","originalObj","isPageOrderChagned","currentPageNo","SurveyPropertyBindingsItem","SurveyPropertyBindingsEditor","_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_2__","_propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__","_surveyElementSelector__WEBPACK_IMPORTED_MODULE_4__","_editableObject__WEBPACK_IMPORTED_MODULE_5__","elementSelector","setElementSelector","elementSelectorValue","getValueNameByPropertyName","onValueChangedCallback","setBinding","beforeShowCore","fillBindingItems","getPropertyDisplayName","names","getNames","SurveyPropertyCalculatedValueEditor","_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_2__","_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__","_surveyHelper__WEBPACK_IMPORTED_MODULE_4__","getEditorName","createNewItem","getColumnsProperties","getPropertiesNames","getPropertiesByNames","objs","ValueBaseName","SurveyPropertyCellsEditor","_propertyModalEditor__WEBPACK_IMPORTED_MODULE_2__","_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__","getValueText","setupCells","isBeforeShowCalled","getCellText","rowIndex","columnIndex","getDefaultCellText","canEdit","createRow","rowText","koCells","createCellText","colIndex","colValue","setDefaultCellText","setCellText","ConditionEditorItem","SurveyPropertyConditionEditor","doGetCompletions","insertMatch","_expressionToDisplayText__WEBPACK_IMPORTED_MODULE_6__","_propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_7__","_editorLocalization__WEBPACK_IMPORTED_MODULE_8__","_surveyHelper__WEBPACK_IMPORTED_MODULE_9__","rebuildQuestionValue","setOperator","rebuildQuestionValueOnOperandChanging","onConditionItemChanged","updateOperatorEnables","setupSurvey","getSurveyValue","setSurveyValue","conjunctionQuestion","updateQuestionsWidth","questionName","isValueRequired","isValueEmpty","isReady","getQuestionValueByName","getOperatorText","valueQuestion","questionConjunction","nameQuestion","getChoices","allConditionQuestions","operatorQuestion","getOperators","updateSurveyStyle","conjunction","getValue","clearValue","getQuestionValueJSON","updateQuestionJson","oldQuestion","removeElement","canShowQuestionValue","isKeepQuestonValueOnSameLine","isWideMode","isClassContains","isWide","paddingRight","isValueSameLine","isFirst","valToText","isNumeric","isQuote","qType","questionOperator","isCurrentOperatorEnabled","setIsEnabled","isOperatorEnabled","getOperatorType","isEnabled","getFirstEnabledOperator","operators","types","operatorTypes","notContains","name_1","_type","syntaxCheckMethodName","addConditionQuestionsHash","addConditionCalculatedValuesHash","conditionEditorItem","updateEditorItemsVisibilities","removeCondition","resetAllConditionQuestions","onkoTextValueChanged","beforeShowModal","isEditorShowing","isEditorHidingDisabled","allConditionQuestionsValue","getConditionQuestions","sort","localeCompare","isConditionItemsBuilding","getConditionDisplayText","koIsTextConditionValid","buildEditorsItemsOnShowing","newView","getPropertyHelpLocName","locName","editablePropertyName","addConditionObjectsByContext","addCalculatedValues","getQuestionConditionJson","convertOnAnyOf","getConditionJson","canShowValueByOperator","ace","require","operand","conditionParser","rebuildEditorItems","conditionText","buildEditorItems","buildEditorItemsCore","parentConjunction","buildEditorItemsAddUnaryOperand","buildEditorItemsAddConjunction","buildEditorItemsAddBinaryOperand","conjunctionIndex","variableOperand","getOperandByType","arrayValue","getArrayValueFromOperand","constOperand","isVariableInSurvey","getOppositeOperator","arrayOperand","valuesOperand","opConst","opType","registerTypeForCellEditing","operations","createAnnotations","condition","annotations","toErrorSubstring","annotation","match","ID_REGEXP","prevIdentifier","completer","completions","usableQuestions","some","identifierRegex","operationsFiltered","questionsFiltered","filterText","allRanges","getAllRanges","rangeIndex","rangeText","session","getTextRange","extRange","clone","aceEditor","init","configs","langTools","langUtils","objectEditor","isUpdating","setOption","renderer","setShowGutter","setHighlightActiveLine","getSession","setAnnotations","setReadOnly","updateCallback","valueSubscription","visibilitySubscription","resize","identifierRegexps","getCompletions","retrievePrecedingIdentifier","getLine","getDocTooltip","docHTML","setCompleters","enableBasicAutocompletion","enableLiveAutocompletion","SurveyPropertyCustomEditor","_propertyEditorBase__WEBPACK_IMPORTED_MODULE_1__","isValueChanging","widgetJSONValue","doAfterRender","checkForErrors","widgetValidate","validate","widgetRender","SurveyPropertyDefaultValueEditor","SurveyPropertyTriggerValueEditor","SurveyPropertyDefaultRowValueEditorBase","SurveyPropertyDefaultRowValueEditor","SurveyPropertyDefaultPanelValueEditor","SurveyPropertySetEditor","_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__","_editableObject__WEBPACK_IMPORTED_MODULE_6__","_surveyHelper__WEBPACK_IMPORTED_MODULE_7__","createJsonFromQuestion","qjson","defaultQuestionName","filterJsonProperties","properties","skipPropertyNames","createSurveyFromJsonQuestion","questionJson","surveyName","mainRoot","buildQuestionJson","getSurveyInitialValue","getSurveyResult","currentObject","getObject","getDependOnPropName","getPropertiesByObj","dps","hasTagbox","getPropertyChoices","setChoices","SurveyPropertyEditorBase","_editableObject__WEBPACK_IMPORTED_MODULE_3__","_utils_utils__WEBPACK_IMPORTED_MODULE_4__","parentReadOnlyValue","valueUpdatingCounter","optionsValue","isRequiredValue","showDisplayNameValue","_displayNameValue","isInplaceProperty","isInPropertyGridValue","iskoValueChanging","property_","onkoValueChanged","isDefaultValue","koHasError","setIsRequired","setTitleAndDisplayName","getReadOnly","parentReadOnly","titleValue","showDisplayName","isShowingModal","displayNameValue","canShowDisplayNameOnTop","classNames","getHelpPropertyClassNames","locName_1","hasLocString","typeInfo","find","isModal","setObjectCore","parentListValue","getOriginalValue","registerFunctionOnPropertyValueChanged","setObject","checkForItemValue","er","checkErrorOnUnique","parentList","propVal","toLocaleLowerCase","performApply","getRenderer","getRendererContext","locStr","onOptionsChanged","createEditorOptions","onSetEditorOptions","getCorrectedValue","beginValueUpdating","endValueUpdating","onValueUpdated","copiedValue","getUnbindValue","doOnChanged","keyDownHandler","surveyEditor","SurveyPropertyEditorFactory","SurveyStringPropertyEditor","SurveyDropdownPropertyEditor","SurveyQuestionPropertyEditor","SurveyQuestionSelectBasePropertyEditor","SurveyQuestionCarryForwardPropertyEditor","SurveyQuestionValuePropertyEditor","SurveyBooleanPropertyEditor","SurveySwitchPropertyEditor","SurveyNumberPropertyEditor","SurveyColorPropertyEditor","_propertyEditorBase__WEBPACK_IMPORTED_MODULE_3__","_propertyCustomEditor__WEBPACK_IMPORTED_MODULE_4__","_settings__WEBPACK_IMPORTED_MODULE_7__","ops","typeName","cellTypeName","cellTypes","editableClassName","creatorList","creatorByClassList","widgetRegisterList","isDropdownEditor","defaultEditor","createCustomEditor","findParentCreator","jsonClass","listNameValue","getListName","dataListNumber","updateChoices","makeChoicesLocalizable","opt","getQuestions","qItems","renderedHtml","getItemValue","el1","el2","isQuestionFit","isValueArray","Number","SurveyPropertyHtmlConditionEditor","SurveyPropertyItemValuesEditor","_questionEditors_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_6__","_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_7__","_entries__WEBPACK_IMPORTED_MODULE_8__","optionsShowTextView","isUpdatingItemText","isUpdatingOnTyping","detailDefinition","definition","getItemValueClassName","koItemsTextDelayed","rateLimit","method","timeout","updateItemsTextOnTyping","updateItems","updateItemsText","idCounter","updateShowTextViewVisibility","getDefinedProperties","getDefaultListProperties","getDefinedListProperties","showTextView","itemsEntryType","itemValuesEditorEntryType","getBaseValue","createEditorItemValueCore","getItemClassName","isTextLocalized","locText","getItemsText","onListDetailViewChanged","convertTextToItemValues","updateArrayValue","applyItemValueArray","convertMatrixRowsToText","isValuePropertyVisible","hasVisibleIfOrEnableIf","hasMultipleLanguage","hasNonDefaultText","valueProp","hasDetailsProperties","SurveyPropertyItemsEditor","viewItems","startDragItem","endDragItem","onDeletingItem","_notifyPropertyValueChanged","len","customLocStrName","createEditorItemCore","onItemDeleted","deleteViewItemIndex","createEditorItem","disableSelectingObj","enableSelectingObj","editorItem","onCreated","SurveyPropertyDropdownColumnsEditor","_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_3__","getColumnNames","orgColumns","updateCanAddColumn","SurveyPropertyModalEditorCustomWidget","SurveyPropertyModalEditor","SurveyPropertyTextEditor","SurveyPropertyHtmlEditor","SurveyPropertyStringsEditor","_propertyEditorBase__WEBPACK_IMPORTED_MODULE_2__","rmodal__WEBPACK_IMPORTED_MODULE_6__","_editableObject__WEBPACK_IMPORTED_MODULE_7__","customWidgetName","customWidgetId","isBeforeShowCalledValue","onHideModal","modal","beforeCloseModal","registerCustomWidget","customWidgets","getCustomWidget","modalEditableObject","showApplyButtonInEditors","modalEditor","customWidget","tEl","nodeName","isSettingInitialValue","onTextValueChanged","SurveyPropertyMultipleValuesEditor","isEditingValueSetting","koEditingValue","getTextByItemValue","setEditingValue","getBackgroundCls","setCategories","ca","category","cb","buildCategories","curCategory","itemCategory","koTitleVisible","koCategory","koItems","SurveyNestedPropertyEditor","SurveyNestedPropertyEditorItem","SurveyNestedPropertyEditorColumn","SurveyNestedPropertyEditorEditorCell","_propertyItemsEditor__WEBPACK_IMPORTED_MODULE_3__","_questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_4__","_objectProperty__WEBPACK_IMPORTED_MODULE_6__","koColumnsValue","editItem","itemEditor","hideItemEditor","canShowHeader","defaultNames","getTabs","isPropertyShownInList","getColumns","koCellsValue","dragIconName","deleteIconName","getClassName","itemEditorValue","updateValues","createSurveyQuestionEditor","setParentList","firstCell","listObj","objectPropertyValue","objectProperty","SurveyPropertyOneSelectedEditor","getAvailableClasses","createSelectedObjEditor","getObjClassName","currentObjClassName","selectNewItem","onCreateEditor","isNew","SurveyPropertyPagesEditor","_surveyHelper__WEBPACK_IMPORTED_MODULE_5__","propertyNames","SurveyPropertyResultfullEditor","SurveyPropertyResultfullEditorItem","_questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_6__","setTestQuestionProperties","contentEditor","changeChoicesByUrlProp","run","isSetttingValue","SurveyPropertyTextItemsEditor","_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_4__","SurveyPropertyTriggersEditor","SurveyPropertySelectItemsEditor","SurveyPropertySelectPagesEditor","SurveyPropertySelectQuestionsEditor","_propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_3__","_propertyEditorBase__WEBPACK_IMPORTED_MODULE_4__","_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_6__","_expressionToDisplayText__WEBPACK_IMPORTED_MODULE_7__","_surveyElementSelector__WEBPACK_IMPORTED_MODULE_8__","_editableObject__WEBPACK_IMPORTED_MODULE_9__","classes","getChildrenClasses","expressionEditor","getPropertyEditorByName","koItemSelector","koSelectedForDelete","koDummy","deleteItems","resetItems","itemSelectorValue","getElementType","SurveyPropertyUrlConditionEditor","SurveyPropertyValidatorsEditor","_propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_2__","getValidatorTypes","getSupportedValidators","SurveyElementSelector","_editableObject__WEBPACK_IMPORTED_MODULE_2__","optionsCaptionName","disableCallback","selectedValues","optionsCaptionValue","getOptionsText","buildElements","findItemByName","findItemByElement","disabledPropertyName","koDisabled","SurveyCreatorProperties","creatorProperties","_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_0__","instanceValue","hideCategory","categoryName","def","getTabFromElementDef","hideProperty","showProperty","moveProperty","changeProperty","elDef","instance","PropertyGridObjectEditorModel","SurveyElementEditorContentModel","SurveyElementEditorOldTableContentModel","SurveyElementEditorTabModel","SurveyPropertyEditorShowWindow","SurveyQuestionEditorPropertyDefinition","SurveyQuestionEditorTabDefinition","SurveyQuestionProperties","SurveyQuestionEditor","_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_3__","rmodal__WEBPACK_IMPORTED_MODULE_5__","_propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_8__","_objectProperty__WEBPACK_IMPORTED_MODULE_9__","selectedObjectValue","elementEditor","createSurveyElementEditor","useAsPropertyGrid","setOriginalObjValue","buildTabs","assignPropertiesToEditors","getTabByName","edProperties","getAllEditorProperties","originalObjValue","addPropertiesTabs","assignPropertiesToEditor","propEditor","tabItems","tabItem","createNewTab","propertyTab","firstProperty","createdFromTabName","firstEditor","getObjectProperties","sortEvent","tabProperties","_name","editorPropertiesValue","htmlElements","buildEditorProperties","con","afterRenderProperty","doSetup","onExpand","doOnExpanded","onCollapse","isError","performForAllProperties","onClosed","fadeElement","outOfModalClickHandler","onHideWindow","removeEventListener","showModeValue","fillPropertiesHash","propertiesHash","isJSONPropertyVisible","definitions","getAllDefinitionsByClass","addedProperties","defItem","addPropertyIntoTab","movePropertiesToNextProperties","sortProperties","defProperty","isTab","tab_1","getTabOrCreate","isString","propRes","propertyDefinition","newTab","getTabByPropertyName","nextToProperty","getPropertyByNameInTab","curClassName","usedProperties","hasNonTabProperties","metaClass","classRes","jsonProp","jsonPropertyCategory","getJsonPropertyCategory","addNonTabProperties","jsonProperty","tabNames","propCategory","categoryIndex","visibleIndex","curIndex","koTitle","doCloseWindow","getTitle","editableObject","isCancel","appliedSuccesfull","isFirstError","tabRes","SurveyQuestionEditorDefinition","matrixdropdownbase","selectbase","matrixdropdowncolumn","multipletextitem","calculatedvalue","panelbase","QuestionConverter","addConvertInfo","convertToClassName","convertInfo","convertToClass","fromJSON","onSurveyLoad","createDefaultQuestionConverterItems","EmptySurveyCreatorOptions","traslation","sortByName","exportPrefix","StylesManager","themeName","theme","ThemeColors","colorVariableName","cssVariableName","ThemeVariablesMap","setProperty","ObjType","SurveyHelper","baseName","hash","Unknown","getObjectTypeStr","showObjectTitle","includeHidden","getElementsInDesign","scrollIntoView","rect","getBoundingClientRect","scrollableDiv","getScrollableDiv","insertedArray","hasText","deleteConditionProperties","cell","Separator","convertItemValuesToText","pureText","texts","valueItem","SurveyObjectItem","SurveyObjects","level","rebuild","getItemIndex","parentIndex","elementIndex","prevElement","getAllElementCount","createItem","countToRemove","getText","getSelectedQuestion","itemIndex","newItemIndex","pageItem","parentItem","SurveyEvent","SurveyForDesigner","createAfterRenderHandler","createAfterRenderPageHandler","createAfterRenderHeaderHandler","registerAdorner","removeAdorners","addAdornerMarkerClasses","applyAdornerClass","_stylesmanager__WEBPACK_IMPORTED_MODULE_5__","editQuestionClick","onUpdateQuestionCssClasses","onUpdatePanelCssClasses","onUpdatePageCssClasses","surveyCss","selectedElementValue","selectedElementInDesign","oldElement","doElementDoubleClick","_hasLogo","_isLogoBefore","_isLogoAfter","panelBaseOnCreating","disableDesignActions","dragEnterCounter","pageOnCreating","allowAdd","allowEdit","elementOnCreating","dragDropHelperValue","koIsSelected","disable","isRowLayout","selectedOnClick","childs","childNodes","pointerEvents","addAdorner","tabindex","svdInfo","ondblclick","setTabIndex","sel","adornersConfig","adorners","cssClasses","classesElementName","adornerMarkerClass","adornerClass","filterNestedQuestions","rootQuestionNode","targetElements","questionElement","filterPageElements","elementClass","temp","isDesignMode","ondragenter","ondragleave","questionPrototype","pagePrototype","updateTriggerFunction","locStrsChanged","SurveyEmbedingWindow","_json5__WEBPACK_IMPORTED_MODULE_2__","surveyJSVersion","surveyCDNPath","platformCompleteCode","platformJSonPage","platformJSonWindow","platformHtmlonPage","platformHtmlonWindow","koLibraryVersion","koShowAsWindow","koThemeName","koHasIds","koLoadSurvey","koHeadText","koJavaText","koBodyText","koVisibleHtml","setHeadText","setJavaTest","setBodyText","surveyEmbedingHead","jsonValue","surveyEmbedingBody","surveyEmbedingJava","setTextToEditor","platformFileName","platform","cssFileName","cdnPath","headText","getJavaText","setTheme","setMode","setShowPrintMargin","isOnPage","getSaveFunc","strCode","replacedCompleteCode","jsonText","getJsonText","getSetCss","getSaveFuncCode","subscrViewType","viewType","SurveyJSONEditor","_textWorker__WEBPACK_IMPORTED_MODULE_1__","isProcessingImmediately","aceCanUndo","aceCanRedo","isJSONChanged","isInitialJSON","timeoutId","koErrors","onJsonEditorChanged","showToolbar","updateUndoRedoState","getCopyText","clipboard","writeText","readText","editorElement","aceBasePath","_a","getUndoManager","markClean","isClean","setUseWorker","newLineChar","doc","getNewLineCharacter","updateFull","processJson","undoManager","hasUndo","hasRedo","updateTextTimeout","subscrReadOnly","SurveyLogicEvent","SurveyLogicType","SurveyLogicAction","SurveyLogicItem","SurveyLogic","_propertyEditors_propertyConditionEditor__WEBPACK_IMPORTED_MODULE_3__","_propertyEditors_surveyElementSelector__WEBPACK_IMPORTED_MODULE_4__","_questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_7__","getLogicString","logicType","expressionToDisplayText","isTrigger","templateName","showInUI","showIf","canCreateNewElement","createItemSelector","hasItemSelector","showTitlesInExpression","createTriggerElement","saveElement","saveTriggerElement","createTemplateObject","createTriggerTemplateObject","isUniqueItem","questionNames","getDisplayTextName","formatElName","formatExpression","hasThisAction","setOwner","templateObject","edObj","isNewTrigger","koLogicType","koTemplate","koElement","koTemplateObject","koLogicTypes","onLogicTypeChanged","doLogicTypeChanged","isRenaming","equals","itemSelector","removedActions","koActions","getExpressionAsDisplayText","removeAction","removeSameActions","removeActions","applyExpression","renameQuestionInExpression","removeQuestionInExpression","newExpression","expR","invisibleItems","onLogicItemSaved","onLogicItemValidation","onLogicItemRemoving","onLogicItemRemoved","createExpressionPropertyEditor","koMode","koAddNew","koRemoveItem","koShowView","koSaveAndShowView","saveEditableItem","koSaveEditableItem","koAddNewAction","koRemoveAction","koEditableItem","getTypeByName","logicTypes","createLogicTypes","updateVisibleItems","buildItems","editableItem","changeType","onChangedCallback","renameQuestionCore","removeQuestionCore","isExpressionValid","usedNamesInExpression","getVariables","oldMode","lgAddNewItem","logicItem","createNewAction","eventOptions","allowRemove","addAction","lt","updateLogicTypesInActions","createLogicTypesInActions","isLogicTypeVisibleInAction","curAction","updateLogicTypesInAction","getAllElements","buildItemsByElement","AddElements","getMatrixColumns","getValidators","getItemValues","getElementAllTypes","getExpressionHashKey","cl","visActions","visibleActions","getExpressionProperty","addProperty","isSerializable","expressionSetupText","formatStr","subscribeViewType","surveyCreatedHandler","SurveyLiveTester","_components_simulator__WEBPACK_IMPORTED_MODULE_4__","_components_results__WEBPACK_IMPORTED_MODULE_5__","surveyProvider","koIsRunning","koPages","koActivePage","koShowInvisibleElements","koShowPagesInTestSurveyTab","koShowDefaultLanguageInTestSurveyTab","koShowInvisibleElementsInTestSurveyTab","selectTestClick","testAgain","selectPageClick","setPageDisable","option","koLanguages","getLanguages","koActiveLanguage","updatingLanguages","localeText","setJSON","onSurveyCreatedCallback","onStarted","setActivePageItem","onCurrentPageChanged","newCurrentPage","oldCurrentPage","onPageVisibleChanged","updatePageItem","getPageItemByPage","koActive","setDefaultLanguageOption","vis","getUsedLocales","usedLanguages","koEventAfterRender","surveyLiveTester","updateTestTab","subscr","TranslationItemBase","TranslationItem","TranslationGroup","Translation","TranslationViewModel","papaparse__WEBPACK_IMPORTED_MODULE_3__","_settings__WEBPACK_IMPORTED_MODULE_5__","groupTemplateHtml","fillLocales","mergeLocaleWithDefault","locString","translateItemAfterRender","customText","localizableName","getLocText","getLocaleText","setLocText","setLocaleText","tranlationChangedCallback","getKeys","isRootValue","koExpanded","setAsRoot","getItemByName","koLocales","count","localeCount","floor","fillItems","showAllStrings","locItems","groups","hasItems","isItemValueArray","createItemValues","getLocalizedProperties","createTranslationItem","getArrayProperties","createGroups","sortItems","keepOnGroupExpanded","gr","expandAll","expandCollapseAll","collapseAll","isExpand","isLocalizable","getDefaultValue","canShowProperty","onGetTextCallback","canAdd","addCustomPropertiesForItemValue","textItem","locProperties","onLocaleSelected","koEnabled","koRoot","koShowAllStrings","koIsEmpty","koAvailableLanguages","koSelectedLanguageToAdd","koFilteredPage","koCanMergeLocaleWithDefault","koMergeLocaleWithDefaultText","koFilteredPages","showAllPagesText","addLocale","koExportToCSVFile","exportToSCVFile","koImportFromCSVFile","importFromCSVFile","koMergeLocaleWithDefault","selectLanguageOptionsCaption","ariaLabel","showAllStringsText","updateFilteredPages","rootValue","rootObj","filteredPage","rootName","resetLocales","hasLocale","locs","setLocales","getSelectedLocales","setSelectedLocales","selectedLocales","isLocaleEnabled","translationStringVisibilityCallback","exportToCSV","headerRow","visibleLocales","getVisibleLocales","itemsHash","fillItemsHash","csvDelimiter","newLineDelimiter","importFromNestedArray","updateItemWithStrings","importFinishedCallback","fileName","blob","elem","href","translateItemAfterRenderCallback","tagName","selected","updateAvailableTranlations","supported","supportedLocales","availableTranlationsChangedCallback","isSelected","onDestroyCallback","SurveyTextWorker","_json5__WEBPACK_IMPORTED_MODULE_1__","SurveyForTextWorker","process","updateJsonPositions","pureJsonValue","jsonErrors","getFullDescription","createSurveyObjects","setEditorPositionByChartAt","objects","atObjectsArray","getAtArray","startAt","getPostionByChartAt","startPosition","curChar","QuestionToolbox","supportedQuestions","_orderedQuestions","_questionDefaultSettings","allowExpandMultipleCategoriesValue","keepAllCategoriesExpandedValue","itemsValue","koActiveCategory","koHasCategories","koCanCollapseCategories","createDefaultItems","koCollapsed","reorderItems","onItemsChanged","copiedItems","newItems","clearCopiedItems","isCopied","addItems","clearAll","clearItems","getQuestionJSON","replaceItem","copied","correctItem","removedItems","updateCategoriesState","keepAllCategoriesExpanded","noActive","allowExpandMultipleCategories","activeCategory","expandAllCategories","changeCategory","changeCategories","changedItems","toolboxItem","doCategoryClick","getCategoryByName","expandCategory","collapseCategory","expandCollapseAllCategories","collapseAllCategories","isCollapsed","categories","categoriesHash","prevActiveCategory","i1","i2","index1","MAX_VALUE","index2","getQuestionTypes","registerCustomWidgets","registerComponentQuestions","inst","getActivatedBy","widgets","widgetJson","widgetIsLoaded","addItemFromJSON","getComponentItems","instanceOwner","showInToolbox","defaultJSON","defaultSettings","allTypes","getAllTypes","orderedQuestions","name_2","UndoRedoManager","Transaction","UndoRedoAction","Action","ArrayAction","_propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_1__","_ignoreChanges","_preparingTransaction","_transactions","_currentTransactionIndex","transactionCounter","hasPropertyInSerializer","transaction","_addTransaction","_cutOffTail","_getCurrentTransaction","currentTransaction","_getNextTransaction","nextTransaction","notifyChangesFinished","rollback","_actions","_propertyName","_oldValue","_newValue","_sender","_index","_itemsToAdd","_deletedItems","itemsToAdd","deletedItems","deleteCount","AccordionItemModel","AccordionViewModel","BooleanViewModel","ButtonViewModel","DesignerContainerViewModel","surfaceEl","_prevWidth","_element","_prevSurfaceWidth","flexBasis","activeTab","isOpen","changed","_changedSubscription","iconRightOpenName","iconRightCloseName","iconLeftOpenName","iconLeftCloseName","DesignerHContainerViewModel","DropdownViewModel","optionsText","valueAllowUnset","hasFocus","select3","valueAccessor","allBindingsAccessor","$objectSelector","sel_evt","subscription","innerText","SplitterComponentViewModel","splitterElement","onChange","siblings","minLeft","minRight","splitterElementIndex","leftElement","rightElement","startX","isInChangeWidth","isRtl","conputedStyles","direction","offsetDelta","totalWidth","newLeft","newRight","leftWidth","ceil","clientWidth","rightWidth","updateWidth","onmousemove","screenX","onmouseup","onmousedown","updateSplitter","SurveyWidgetBinding","SVGIconBinding","getNextValue","findParentNode","focusFirstControl","getFirstNonTextElement","getNodesFromKoComponentInfo","createKey2click","propertyExists","trimValue","getNumericFromString","opositeValues","True","TRUE","False","FALSE","yes","Yes","YES","No","NO","getOpositValue","hasValueInArray","search","oposite","baseValue","numStr","numStrIndex","isNumber","newNum","sourceNode","renderedElements","preventScroll","nodeType","koRef","sortableRef","ko","Sortable","amdSortableRef","amdKnockout","allBindings","bindingContext","buildOptions","eventHandlers","eventType","parentVM","parentBindings","itemVM","dataFor","utils","peekObservable","bindingHandlerBinding","foreach","bindingHandlers","handlers","moveOperations","tryMoveOperation","currentOperation","existingOperation","removeOperation","addOperation","moveItem","from","to","fromArray","originalIndex","previousElementSibling","valueHasMutated","tasks","onRemove","onAdd","bindingOptions","merge","into","unwrappedOptions","pull","put","dragEl","parentEl","ghostEl","cloneEl","rootEl","nextEl","lastDownEl","scrollEl","scrollParentEl","scrollCustomFn","lastCSS","lastParentCSS","activeGroup","putSortable","tapEvt","touchEvt","moved","autoScroll","R_SPACE","R_FLOAT","expando","getTime","win","$","Zepto","Polymer","captureMode","supportDraggable","supportCssPointerEvents","userAgent","cssText","_silent","savedInputChecked","touchDragOverListeners","_autoScroll","_throttle","scroll","vx","vy","scrollOffsetX","scrollOffsetY","sens","scrollSensitivity","speed","scrollSpeed","winWidth","innerWidth","winHeight","innerHeight","scrollFn","offsetHeight","scrollHeight","pid","scrollTo","pageXOffset","pageYOffset","_prepareGroup","toFn","fromGroup","originalGroup","checkPull","checkPut","revertClone","_extend","defaults","store","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delay","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","nativeDraggable","_on","_onTapStart","_onDragOver","_cloneHide","lastPullMode","_css","insertBefore","_animate","_closest","ctx","_matches","_getParentOrHost","host","_globalDragOver","dropEffect","_off","_toggleClass","defaultView","currentStyle","_find","iterator","_dispatchEvent","targetEl","fromEl","startIndex","createEvent","onName","initEvent","dispatchEvent","_onMove","toEl","dragRect","targetRect","originalEvt","willInsertAfter","retVal","onMoveFn","onMove","dragged","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","lastElementChild","_generateId","sum","re","ms","args","dst","_clone","dom","cloneNode","_saveInputCheckedState","inputs","idx","checked","touch","touches","originalTarget","shadowRoot","button","criteria","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_disableDelayedDrag","_triggerDragStart","_onDrop","_dragStartTimer","pointerType","_onDragStart","err","_dragStarted","active","_nulling","_emulateDragOver","elementFromPoint","_onTouchMove","dx","dy","translate3d","_appendGhost","ghostRect","marginTop","marginLeft","useFallback","_offUpEvents","_loopId","revert","activeSortable","isOwner","isMovingBetweenSortable","canSort","animated","floating","cssFloat","isLong","halfway","after","elTop","tgTop","moveVector","prevRect","currentRect","handleEvent","toArray","order","getAttribute","closest","removeAttribute","capture","passive","throttle","toggleClass","$parseInt","core","global","speciesConstructor","promiseResolve","onFinally","Promise","isFunction","toLength","it","RangeError","InterceptorManager","dispatchRequest","Axios","interceptors","request","chain","promise","resolve","interceptor","fulfilled","rejected","IObject","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","anObject","ignoreCase","multiline","sticky","$keys","enumBugKeys","isObject","onFreeze","$freeze","Typed","uid","TYPED","VIEW","ABV","ArrayBuffer","DataView","CONSTR","TypedArrayConstructors","InternalMap","assign","weak","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","ufstore","wrapper","_i","$WeakMap","getConstructor","NEED","_f","cof","arg","pIE","createDesc","toIObject","toPrimitive","has","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","$task","G","setImmediate","clearImmediate","createHTML","dP","defineProperties","Properties","repeat","byteOffset","$isExtensible","defer","channel","port","invoke","cel","setTask","clearTask","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","listener","Function","nextTick","now","port2","port1","importScripts","__WEBPACK_EXTERNAL_MODULE_2__","__decorate","__spreadArrays","decorators","Reflect","decorate","il","jl","__WEBPACK_IMPORTED_MODULE_0__localization_english__","surveyLocalization","surveyStrings","currentLocaleValue","defaultLocaleValue","_interopDefault","ex","Vue","VueClassComponent","VueClassComponent__default","Inject","createDecorator","componentOptions","inject","Model","makePropDecorator","metadata","getMetadata","Prop","Watch","deep","_b","immediate","watch","Component","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","_injectStyles","originalRender","existing","beforeCreate","__WEBPACK_IMPORTED_MODULE_0_tslib__","__WEBPACK_IMPORTED_MODULE_1__helpers__","JsonObjectProperty","CustomPropertiesCollection","JsonMetadataClass","JsonMetadata","JsonError","JsonUnknownPropertyError","JsonMissingTypeErrorBase","JsonMissingTypeError","JsonIncorrectTypeError","JsonRequiredPropertyError","JsonObject","Serializer","typeValue","choicesValue","readOnlyValue","visibleValue","isLocalizableValue","choicesfunc","dependedProperties","isLightSerializable","isCustom","isDynamicChoices","alternativeName","classNamePart","baseClassName","defaultValueValue","onGetValue","onSetValue","getItemValuesDefaultValue","metaData","jsonConv","getObjType","choicesCallback","valueFunc","setBaseValue","isLayout","mergeWith","valuesNames","mergableValues","mergeValue","addDependedProperty","removeProperty","parentClassName","parentClasses","createProperties","createPropertiesCore","createPropertiesInObj","parentClass","createPropertyInObj","createCustomLocalizableObj","locDesc","getLocalizableString","getLocalizableStringText","setLocalizableStringText","createNewArray","setPropertyValue","createProperty","propInfo","propertyType","typeIndex","typeSymbol","getIsPropertyNameRequired","choicesFunc","dependsOn","addDependsOnProperties","addDependsOnProperty","requiredSymbol","alternativeNames","childrenClasses","classProperties","classHashProperties","metaDataClass","overrideClassCreatore","overrideClassCreator","fillPropertiesForClass","getHashProperties","hashProperties","fillProperties","getDynamicProperties","getDynamicType","findProperties","dynamicProps","createCustomType","customTypeName","customTemplateName","getTemplate","canBeCreated","fillChildrenClasses","getRequiredProperties","addProperties","propertiesInfos","addCustomPropertyCore","propertyInfo","addPropertyToClass","emptyClassPropertiesHash","removePropertyFromClass","childClasses","ancestorClassName","class_","addAlterNativeClassName","addPropertyCore","metaDataValue","storeDefaults","toJsonObjectCore","toObjectCore","getRequiredError","addNewError","needAddErrors","startLoadingFromJson","addDynamicProperties","typePropertyName","positionPropertyName","valueToObj","endLoadingFromJson","propertiesToJson","getDynamicPropertyName","dynamicPropName","dynamicProperties","valueToJson","arrValue","hasValue","removePos","hasToUseSetValue","valueToArray","createNewObj","removePosFromObj","checkNewObjectOnErrors","requiredProperties","Helpers","isArrayContainsEqual","isArraysEqual","ignoreOrder","xSorted","ySorted","isConvertibleToNumber","randomizeArray","createCopy","getMaxLength","surveyLength","__WEBPACK_IMPORTED_MODULE_0__surveyStrings__","__WEBPACK_IMPORTED_MODULE_1__jsonobject__","QuestionFactory","ElementFactory","creatorHash","colName","rowName","registerQuestion","questionCreator","createQuestion","registerElement","elementCreator","removeFromSerializer","__WEBPACK_IMPORTED_MODULE_1__localizablestring__","__WEBPACK_IMPORTED_MODULE_2__helpers__","__WEBPACK_IMPORTED_MODULE_3__jsonobject__","__WEBPACK_IMPORTED_MODULE_4__settings__","SurveyError","SurveyElement","Event","propertyHash","isLoadingFromJsonValue","commentPrefix","IsPropertyEmpty","arraysInfo","isItemValues","itemValueLocStrChanged","localizableStrings","strChanged","getPropertyValueCore","serValue","getPropertyValueCoreHandler","geValueFromHash","setPropertyValueCore","setPropertyValueCoreHandler","iteratePropertiesHash","arrayInfo","setArray","onPush","propertyValueChanged","isLoadingFromJson","onPropChangeFunctions","registerFunctionOnPropertiesValueChanged","unRegisterFunctionOnPropertyValueChanged","unRegisterFunctionOnPropertiesValueChanged","createLocalizableString","useMarkDown","defaultStr","addUsedLocales","AddLocStringToUsedLocales","notifyArrayChanged","ar","onArrayChanged","newArray","getItemValueType","createItemValue","caseInSensitive","getValueInLowCase","locTextValue","getDefaultText","getErrorCustomText","getErrorType","selectedElementInDesignValue","onReadOnlyChanged","ScrollElementToTop","elementId","elemTop","GetFirstNonTextElement","FocusElement","setSurveyImpl","surveyImplValue","surveyDataValue","geSurveyData","textProcessorValue","getTextProcessor","onSetData","areInvisibleElementsShowing","readOnlyChangedCallback","onNameChanged","updateContainsErrors","getContainsErrors","updateCustomWidgets","onFirstRendering","setVisibleIndex","removeSelfFromList","getProcessedHtml","textProcessor","processText","getPage","moveToBase","setPage","oldPage","copyObject","copyCssClasses","callbacks","hasFunc","__WEBPACK_IMPORTED_MODULE_1_vue__","__WEBPACK_IMPORTED_MODULE_1_vue___default","__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__","QuestionVue","innerValue","changeQuestion","new_val","old_val","webserviceEncodeParameters","surveyServiceUrl","itemValueSeparator","defaultLocaleName","matrixDefaultRowName","matrixDefaultCellType","matrixTotalValuePostFix","matrixMaximumRowCount","panelMaximumPanelCount","ratingMaximumRateValueCount","disableOnGettingChoicesFromWeb","__WEBPACK_IMPORTED_MODULE_2__jsonobject__","__WEBPACK_IMPORTED_MODULE_3__base__","__WEBPACK_IMPORTED_MODULE_4__surveyStrings__","__WEBPACK_IMPORTED_MODULE_5__error__","__WEBPACK_IMPORTED_MODULE_6__validator__","__WEBPACK_IMPORTED_MODULE_7__textPreProcessor__","__WEBPACK_IMPORTED_MODULE_8__localizablestring__","__WEBPACK_IMPORTED_MODULE_9__conditions__","__WEBPACK_IMPORTED_MODULE_10__defaultCss_cssstandard__","__WEBPACK_IMPORTED_MODULE_11__questionCustomWidgets__","conditionRunner","isCustomWidgetRequested","customWidgetData","isNeedRender","isReadyValue","onReadyChanged","_displayValue","isRunningValidatorsValue","isValueChangedInSurvey","locNotificationInData","getQuestionId","onCreating","validator","locTitleValue","calcFullTitle","getUpdatedQuestionTitle","locProcessedTitle","sharedData","locCommentText","elementWidthChanged","onIndentChanged","initCommentFromSurvey","questionCounter","onValueNameChanged","questionRenamed","initDataFromSurvey","choicesLoaded","getPanel","layoutType","onVisibleChanged","questionVisibilityChanged","runConditions","runCondition","getDataFilteredValues","getDataFilteredProperties","getFilteredValues","getFilteredProperties","onParentChanged","getTitleLocation","isVisibilityChanged","isFlowLayout","location","getTitleLocationCore","isAllowTitleLeft","getQuestionTitleLocation","getDescriptionLocation","getAllErrors","customWidgetValue","updateCustomWidget","textOrHtml","getQuestionTitleTemplate","questionTitleTemplateCallback","titleTemplate","textPreProcessor","onProcess","textValue","getProcessedTextValue","useDisplayValuesInTitle","updateCssClasses","updateQuestionCssClasses","flowRoot","titleLeftRoot","getRootCss","required","objCss","titleRequired","getCss","paddingLeft","getIndentSize","rightIndent","onError","getFirstErrorInputElementId","getFirstInputElementId","fireCallback","focusCallback","getOthersMaxLength","inputId","isExists","TextPreprocessorValuesMap","supportComment","supportOther","hasOtherChanged","isParentReadOnly","isSurveyReadOnly","isDisplayMode","runVisibleIfCondition","runEnableIfCondition","runRequiredIfCondition","onRunComplete","conditionEnabelRunner","conditionRequiredRunner","surveyLoadCallback","updateValueWithDefaults","updateDisplayValue","onSurveyValueChanged","updateValueFromSurvey","requireUpdateCommentValue","updateCommentFromSurvey","getComment","commentChangedCallback","getValueCore","setNewValue","createValueCopy","canClearValueAsInvisible","isParentVisible","isStarted","hasVisibleQuestionByValueName","clearValueIfInvisible","keysAsText","getDisplayValueCore","keyAsText","questionPlainData","displayValue","calculations","calculation","hasInput","getQuizQuestionCount","getCorrectAnswerCount","isAnswerCorrect","correctAnswerCount","quizQuestionCount","isDefaultValueEmpty","getQuestionFromArray","setComment","questionComment","setNewComment","updateIsAnswered","getIsAnswered","addConditionNames","processedTitle","rec","beforeSettingQuestionErrors","addError","removeError","qErrors","collectErrors","onCheckForErrors","runValidators","fireSurveyValidation","validateValueCallback","validateQuestion","hasRequiredError","getIsRunningValidators","validatorRunner","onAsyncCompleted","doOnAsyncCompleted","raiseOnCompletedAsyncValidators","onCompletedAsyncValidators","isRunningValidators","setNewValueInData","isTextValue","isUpdateValueTextOnTyping","getDataLocNotification","isInputTextUpdate","isSurveyInputTextUpdate","valueToData","setValueCore","questionValue","setQuestionValue","valueFromData","valueChangedCallback","supportGoNextPageAutomatic","clearIncorrectValues","clearErrors","clearUnusedValues","onAnyValueChanged","getSurveyMarkdownHtml","getValidatorTitle","getAllValues","defaultStandardCss","bodyEmpty","footer","navigationButton","completedPage","progress","progressBar","progressTextInBar","pageTitle","pageDescription","headerLeft","contentLeft","formGroup","titleExpandable","iconExpanded","locationTop","locationBottom","control","itemChecked","itemIndeterminate","itemDisabled","switch","disabledLabel","itemInline","labelChecked","itemControl","itemDecorator","controlLabel","materialDecorator","other","selectWrapper","cellText","cellTextSelected","cellLabel","buttonAdd","buttonRemove","iconAdd","iconRemove","buttonPrev","buttonNext","progressContainer","progressText","itemTitle","clearButton","minText","maxText","placeholderInput","removeButton","removeFile","removeFileSvg","fileDecorator","fileSignBottom","removeButtonBottom","saveData","saveAgainButton","buttonExpanded","buttonCollapsed","__WEBPACK_IMPORTED_MODULE_1__conditionProcessValue__","__WEBPACK_IMPORTED_MODULE_2__conditionsParser__","ConditionRunner","ExpressionRunner","ExpressionRunnerBase","processValue","isAsyncValue","hasFunctionValue","expressionValue","canRun","hasFunction","hasAsyncFunction","runCore","isAsync","runValues","asyncFuncList","addToAsyncList","onAsyncReady","doAsyncFunctionReady","evaluateAsync","evaluate","doOnComplete","__WEBPACK_IMPORTED_MODULE_1__surveyStrings__","__WEBPACK_IMPORTED_MODULE_2__base__","AnswerRequiredError","OneAnswerRequiredError","RequreNumericError","ExceedSizeError","WebRequestError","WebRequestEmptyError","OtherEmptyError","UploadingFileError","RequiredInAllRowsError","MinRowCountError","KeyDuplicationError","CustomError","getTextSize","sizes","fixed","log","toFixed","__WEBPACK_IMPORTED_MODULE_3__helpers__","__WEBPACK_IMPORTED_MODULE_4__conditions__","__WEBPACK_IMPORTED_MODULE_5__base__","__WEBPACK_IMPORTED_MODULE_6__settings__","ItemValue","visibleIfValue","isVisibleValue","txt","isValueItemEmpty","createArray","setupArray","getItemByValue","getTextOrHtmlByValue","runConditionsForItems","filteredItems","runner","useItemExpression","runConditionsForItemsCore","runEnabledConditionsForItems","choiceValue","hasChanded","itemRunner","getConditionRunner","setIsVisible","calculatedText","newText","jsoObj","getVisibleConditionRunner","getEnableConditionRunner","visibleConditionRunner","enableConditionRunner","__WEBPACK_IMPORTED_MODULE_0__helpers__","ProcessValue","getFirstName","getFirstPropertyName","nonNestedObj","getNonNestedObject","curValue","getObjectValue","curName","objInArray","getObjInArray","getIntValue","__WEBPACK_IMPORTED_MODULE_2__settings__","LocalizableString","useMarkdown","htmlValues","renderedText","calculatedTextValue","calText","hasHtmlValue","hasHtml","getHtmlValue","getValuesKeys","deleteValuesEqualsToDefault","deleteValue","onStrChanged","__WEBPACK_IMPORTED_MODULE_2__survey__","__WEBPACK_IMPORTED_MODULE_3__surveyWindow__","__WEBPACK_IMPORTED_MODULE_4__defaultCss_cssstandard__","VueSurveyModel","VueSurveyWindowModel","updatePropertiesHash","renderCallback","onLoadSurveyFromService","onLoadingSurveyFromService","mergeValues","setDataValueCore","valuesHash","deleteDataValueCore","questionAdded","rootPanel","matrixCellCreated","cellQuestion","doAfterRenderSurvey","afterRenderSurvey","panelAdded","initialModel","__WEBPACK_IMPORTED_MODULE_2__question__","__WEBPACK_IMPORTED_MODULE_3__itemvalue__","__WEBPACK_IMPORTED_MODULE_4__helpers__","__WEBPACK_IMPORTED_MODULE_5__surveyStrings__","__WEBPACK_IMPORTED_MODULE_6__error__","__WEBPACK_IMPORTED_MODULE_7__choicesRestfull__","__WEBPACK_IMPORTED_MODULE_8__conditions__","__WEBPACK_IMPORTED_MODULE_9__settings__","QuestionSelectBase","QuestionCheckboxBase","filteredChoicesValue","otherItemValue","choicesFromUrl","cachedValueForUrlRequests","isChoicesLoaded","enableOnLoadingChoices","isSettingDefaultValue","isSettingComment","isFirstLoadChoicesFromUrl","filterItems","onVisibleChoicesChanged","updateVisibilityBasedOnChoices","createRestfull","locOtherText","beforeSendRequestCallback","onBeforeSendRequest","getResultCallback","onLoadChoicesFromUrl","updateResultCallback","serverResult","updateChoicesFromServer","getHasOther","renderedValue","runItemsEnableCondition","runItemsCondition","hasUnknownValue","setConditionalChoicesRunner","hasChanges","activeChoices","setConditionalEnableChoicesRunner","hasChanged","conditionChoicesEnableIfRunner","clearDisabledValues","conditionChoicesVisibleIfRunner","filteredChoices","rendredValueToDataCore","commentValue","getStoreOthersAsComment","isOtherSelected","isRenderedValueSetting","rendredValueToData","rendredValueFromData","isOtherSel","prevCommentValue","oldComment","isRunning","isWaitingForParameters","choiceitem","renderedValueFromDataCore","includeOther","isValueDisabled","visibleChoices","updateVisibleChoices","calcValue","calcVisibleChoices","canUseFilteredChoices","sortVisibleChoices","addToVisibleChoices","dataValue","choiceDataItem","getChoicesDisplayValue","runChoicesByUrl","processor","surveyImpl","checkCachedValuesOnExisting","cachedValues","createCachedValueForUrlRequests","updateCachedValueForUrlRequests","checkOnExisting","updatedValue","sortArray","mult","keepIncorrectValues","questionCountByValueName","clearIncorrectValuesCallback","clearIncorrectValuesCore","clearValueOnDisableItems","clearDisabledValuesCore","canClearValueAnUnknow","getColumnClass","columnClass","getLabelClass","isChecked","labelClass","getControlLabelClass","controlLabelClass","controlLabelChecked","oldIsReady","olsIsReady","colCountChangedCallback","TextPreProcessor","TextPreProcessorItem","TextPreProcessorValue","returnDisplayValue","canProcess","doEncoding","hasAllValuesOnLastRunValue","getItems","getName","replacedValue","encodeURIComponent","__WEBPACK_IMPORTED_MODULE_3__conditions__","__WEBPACK_IMPORTED_MODULE_4__questionfactory__","__WEBPACK_IMPORTED_MODULE_5__defaultCss_cssstandard__","__WEBPACK_IMPORTED_MODULE_7__settings__","DragDropInfo","QuestionRowModel","PanelModelBase","PanelModel","updateVisible","calcVisible","setWidth","visCount","visibleElements","isQuestionsReady","questionsValue","conditionVersion","elementsValue","onAddElement","onRemoveElement","getPanelId","panelCounter","markQuestionListDirty","onRowsChanged","depth","updatePanelCssClasses","qs","getElementByName","pnl","getComments","containsElement","focuseOnFirstError","firstErrorQuestion","hasErrorsCore","hasErrorsInPanels","customError","validatePanel","visQuestions","addQuestionsToList","containsErrors","updateElementVisibility","getFirstQuestionToFocus","withError","currentErrorCount","focusFirstQuestion","focusFirstErrorQuestion","visibleOnly","includingDesignTime","addElementsToList","addPanelsIntoList","addElementsToListCore","onGetQuestionTitleLocation","childVisibilityChanged","newIsVisibleValue","getIsPageVisible","oldIsVisibleValue","onElementVisibilityChanged","buildRows","updateRowsOnElementAdded","addElementCallback","onElementStartWithNewLineChanged","updateRowsOnElementRemoved","panelRemoved","questionRemoved","removeElementCallback","updateRowsVisibility","canBuildRows","isNewRow","dragDropInfo","dragDropAddTargetToRow","updateRowsRemoveElementFromRow","findRowByElement","elIndex","getRenderedTitle","exceptionQuestion","canAddElement","addQuestion","addPanel","addNewPanel","createNewPanel","runVisibleCondition","runEnableCondition","dragDropAddTarget","prevRow","dragDropFindRow","findElement","dragDropAddTargetToEmptyPanel","destRow","dragDropAddTargetToNewRow","dragDropAddTargetToExistingRow","dragDropAddTargetToEmptyPanelCore","prevRowIndex","srcRow","targetRow","dragDropMoveElement","targetIndex","srcIndex","stateChangedCallback","innerPaddingLeft","panelVisibilityChanged","__WEBPACK_IMPORTED_MODULE_2__functionsfactory__","__WEBPACK_IMPORTED_MODULE_3__conditionProcessValue__","Operand","BinaryOperand","UnaryOperand","ArrayOperand","Const","Variable","FunctionOperand","OperandMaker","operatorName","isArithmeticOp","isArithmeticValue","consumer","binaryFunctions","throwInvalidOperatorError","evaluateParam","safeToString","operatorToString","unaryFunctions","getCorrectValue","isBooleanValue","variableName","origionalValue","parameters","asyncProcessValue","returnResult","asynResult","evaluateCore","isAsyncFunction","toOperandString","isSpaceString","opStr","signs","arithmeticOp","containsCore","isContains","found","rightArray","rIndex","FunctionFactory","registerFunction","functionHash","isAsyncHash","unregister","getAll","classRunner","getParamsAsArray","avg","getInArrayParams","calcInArray","sumInArray","minInArray","maxInArray","countInArray","avgInArray","iif","getDate","age","birthDay","ageDifMs","ageDate","getUTCFullYear","isContainerReady","getPanelByName","currentDate","__WEBPACK_IMPORTED_MODULE_2__martixBase__","__WEBPACK_IMPORTED_MODULE_4__base__","__WEBPACK_IMPORTED_MODULE_5__textPreProcessor__","__WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__","__WEBPACK_IMPORTED_MODULE_7__surveyStrings__","__WEBPACK_IMPORTED_MODULE_8__questionfactory__","__WEBPACK_IMPORTED_MODULE_9__localizablestring__","__WEBPACK_IMPORTED_MODULE_10__question_expression__","__WEBPACK_IMPORTED_MODULE_11__functionsfactory__","__WEBPACK_IMPORTED_MODULE_12__settings__","onUpdateSelectBaseCellQuestion","matrixDropdownColumnTypes","MatrixDropdownColumn","MatrixDropdownCell","MatrixDropdownRowModelBase","QuestionMatrixDropdownModelBase","onCellQuestionUpdate","locOptionsCaption","colOwnerValue","indexValue","_isVisible","_hasVisibleCell","doColumnPropertiesChanged","updateTemplateQuestion","getColumnTypes","calcCellQuestionType","qDefinition","templateQuestion","setIndex","templateQuestionValue","locRequiredErrorText","createCellQuestion","createNewQuestion","updateCellQuestion","setQuestionProperties","defaultCellTypeChanged","getCellType","prevCellType","curCellType","removeProperties","onColumnPropertiesChanged","qDef","validateCell","MatrixDropdownTotalCell","locCalculation","getTotalExpression","unlocCalculation","funName","isSettingValue","idValue","getId","allValues","OwnerVariableName","IndexVariableName","RowVariableName","getDataValueCore","getQuestionByColumnName","newColumnValue","changedValue","changedQuestion","changingValue","onRowChanging","onRowChanged","getVariable","setVariable","locNotification","getQuestionByColumn","columnName","getSharedQuestionByName","qVal","updateCellQuestionOnColumnChanged","updateCellOnColumnChanged","onQuestionReadOnlyChanged","parentIsReadOnly","buildCells","createCell","getRowIndex","firstName","processTextEx","hasAllValuesOnLastRun","MatrixDropdownTotalRowModel","onTotalValueChanged","prevValue","QuestionMatrixDropdownRenderedCell","QuestionMatrixDropdownRenderedRow","QuestionMatrixDropdownRenderedTable","build","hasFooter","isColumnLayoutHorizontal","footerRow","hasRemoveRowsValue","isRequireReset","hasRemoveRows","canRemoveRows","headerRowValue","footerRowValue","visibleRows","buildHeader","buildFooter","onAddedRow","createHorizontalRow","onRemovedRow","colHeaders","isShown","hasRowText","createHeaderCell","visibleColumns","hasVisibleCell","createTextCell","getFooterText","showFooter","visibleTotalRow","createEditCell","buildHorizontalRows","buildVerticalRows","canRemoveRow","renderedRows","createRemoveRowCell","createVerticalRow","createVerticalRemoveRow","hasTotal","getColumnWidth","isRemoveRow","isRowChanging","lockResetRenderedTable","isDoingonAnyValueChanged","newColumns","updateColumnsIndexes","generatedVisibleRows","generatedTotalRow","resetRenderedTable","columnsChangedCallback","columnLayoutChangedCallback","addDefaultColumns","colNames","DefaultColums","addColumn","createColumnValues","onStartRowAddingRemoving","onEndRowAdding","renderedTable","onEndRowRemoving","renderedTableValue","onRenderedTableResetCallback","createRenderedTable","onRenderedTableCreatedCallback","onMatrixRowCreated","rowValue","updateColumnsCellType","updateCellsCallback","getRequiredText","updateHasFooter","getColumnByName","getRowValue","runCellsCondition","runTotalsCondition","shouldRunColumnExpression","hasCellsCondition","newValues","getRowConditionValues","checkColumnsVisibility","isColumnVisibilityChanged","curVis","hasVisCell","hasCondition","getColumnName","getVisibleRows","generateRows","updateValueOnRowsGeneration","createNewValue","rValue","getNewValueOnRowChanged","getVisibleTotalRow","generateTotalRow","visRows","getRowValueCore","setRowValue","nullOnEmpty","isMatrixValueEmpty","getRowDisplayValue","rowDataItem","onBeforeValueChanged","onSetQuestionValue","checkForAnswersOrErrors","isAnswered","predicate","every","errosInColumns","hasErrorInColumns","getFirstCellQuestion","createQuestionCore","deleteRowValue","totalRow","getOnCellValueChangedOptions","getQuestion","getCellQuestion","onCellValueChanged","matrixCellValueChanged","matrixCellValidate","oldRowValue","matrixCellValueChanging","newRowValue","isDeletingValue","combine","getQuestionByValueNameFromArray","totalValue","__WEBPACK_IMPORTED_MODULE_0__defaultCss_cssstandard__","sheet","Enabled","findSheet","SurveyJSStylesSheetId","createSheet","initializeStyles","styleSheetId","styleSheets","ownerNode","head","themeSelector","ThemeCss","sheet_1","theme_1","cssRuleText","insertRule","Styles","Media","media","bootstrapmaterial","modernThemeCss","bootstrapThemeCss","bootstrapmaterialThemeCss","__WEBPACK_IMPORTED_MODULE_4__page__","__WEBPACK_IMPORTED_MODULE_7__dxSurveyService__","__WEBPACK_IMPORTED_MODULE_8__surveyStrings__","__WEBPACK_IMPORTED_MODULE_9__error__","__WEBPACK_IMPORTED_MODULE_10__localizablestring__","__WEBPACK_IMPORTED_MODULE_11__stylesmanager__","__WEBPACK_IMPORTED_MODULE_12__surveytimer__","__WEBPACK_IMPORTED_MODULE_13__conditions__","__WEBPACK_IMPORTED_MODULE_14__settings__","SurveyModel","variablesHash","localeValue","completedStateValue","completedStateTextValue","isTimerStarted","onCompleting","onPartialSend","onCurrentPageChanging","onPanelVisibleChanged","onValidateQuestion","onSettingQuestionErrors","onServerValidateQuestions","onValidatePanel","onErrorCustomText","onValidatedErrorsOnCurrentPage","onGetQuestionTitle","onTextMarkdown","onSendResult","onGetResult","onUploadFiles","onDownloadFile","onClearFiles","onLoadChoicesFromServer","onProcessTextValue","onAfterRenderSurvey","onMatrixRowAdded","onMatrixBeforeRowAdded","onMatrixRowRemoved","onMatrixAllowRemoveRow","onMatrixCellCreated","onMatrixAfterCellRender","onMatrixCellValueChanged","onMatrixCellValueChanging","onMatrixCellValidate","onDynamicPanelAdded","onDynamicPanelRemoved","onTimer","onTimerPanelInfoText","onDynamicPanelItemValueChanged","onIsAnswerCorrect","hideRequiredErrors","questionTitleTemplateCache","_isDesignMode","ignoreValidation","origionalPages","isEndLoadingFromJson","questionHashes","namesInsensitive","valueNames","valueNamesInsensitive","timerFunc","timeSpent","stylesManager","pagesValue","onFirstPageIsStartedChanged","onIsSinglePageChanged","onModeChanged","onBeforeCreating","clientId","loadSurveyFromService","onLocaleChanged","defaultLoc","defIndex","noIndex","prevBrIndex","nextBrIndex","locQuestionTitleTemplate","updateVisibleIndexes","calValue","updateAllQuestionsValue","notifyAllQuestionsOnValueChanged","notifyElementsOnAnyValueOrVariableChanged","resultItem","pageCount","visiblePages","vPages","currentPageValue","getPageByObject","currentPageChanging","setWasShown","currentPageChanged","scrollToTop","scrollToTopOnPageChange","isLoading","isCompleted","isCompletedBefore","isEditMode","isStartedState","startedPage","setCompletedState","gotoFirstPage","visiblePageCount","updateValuesWithDefaults","allowChanging","getProgress","answeredQuestionsCount","reduce","correctAnswersCount","getCorrectedAnswerCount","visPages","updateAllElementsVisibility","cookies","cookie","setCookie","deleteCookie","nextPage","doCurrentPageComplete","hasErrorsOnNavigate","doComplete","isCurrentPageHasErrors","checkForAsyncQuestionValidation","clearAsyncValidationQuesitons","onCompletedAsyncQuestionValidators","asyncValidationQuesitons","asynQuestions","doCurrentPageCompleteCore","checkIsCurrentPageHasErrors","firstErrorPage","isFocuseOnFirstError","fireValidatedErrorsOnCurrentPage","questionsOnPage","prevPage","isFirstPage","completeLastPage","doServerValidation","doNextPage","isPageStarted","pageVisibilityChanged","questionHashesClear","createSinglePage","deletedLen","doElementsOnLoad","single","createNewPage","getPageMaxTimeToFinish","onCompletingOptions","allowComplete","previousCookie","hasCookie","stopTimer","setCompleted","onCompleteOptions","showDataSaving","showDataSavingError","showDataSavingSuccess","showDataSavingClear","sendResult","startTimerFromUI","setIsValidatingOnServer","isValidatingOnServer","onIsValidatingOnServerChanged","completeServerValidation","checkOnPageTriggers","renderedCompletedHtml","afterRenderPage","afterRenderQuestion","afterRenderPanel","matrixBeforeRowAdded","matrixRowAdded","getQuestionsByValueNameCore","matrixRowRemoved","matrixAllowRemoveRow","allow","matrixAfterCellRender","dynamicPanelAdded","dynamicPanelRemoved","panelIndex","dynamicPanelItemValueChanged","dragAndDropAllow","uploadFilesCore","downloadFile","fileValue","createSurveyService","responses","sendFile","caseInsensitive","getQuestionsByNames","getPageByQuestion","getPagesByNames","getQuizQuestions","panels","panelName","questionOnValueChanging","updateQuestionValue","notifyQuestionOnValueChanged","oldErrorCount","valName","getCurrentPageQuestions","checkTriggers","isOnNextPage","checkExpression","postId","isPartialCompleted","getResult","resultId","cliendId","getSurveyJsonAndIsCompleted","loadSurveyFromServiceJson","updatePageVisibleIndexes","showIndex","jsonConverter","getProcessedTextValueCore","wasEmpty","getInCorrectedAnswerCount","clearInvisibleQuestionValues","newQuestionValue","isValueEqual","triggerKeys","tryGoNextPageAutomatic","questionHashesPanelAdded","allowCompleteSurveyAutomatic","commentName","questionHashesAdded","questionHashesRemoved","questionHashAddedCore","questionHashRemovedCore","processTextCore","getCorrectedAnswerCountCore","isCorrect","correctAnswers","incorrectAnswers","addCount","getCorrectedAnswers","getInCorrectedAnswers","getTimerInfoText","pageSpent","getDisplayTime","surveySpent","pageLimitSec","pageLimit","surveyLimit","getTimerInfoPageText","getTimerInfoSurveyText","pageText","surveyText","sec","startTimer","doTimer","stop","getObjects","setTriggerValue","copyTriggerValue","focusQuestion","__WEBPACK_IMPORTED_MODULE_1__base__","__WEBPACK_IMPORTED_MODULE_2__error__","__WEBPACK_IMPORTED_MODULE_3__surveyStrings__","__WEBPACK_IMPORTED_MODULE_4__jsonobject__","__WEBPACK_IMPORTED_MODULE_5__conditions__","__WEBPACK_IMPORTED_MODULE_6__helpers__","ValidatorResult","SurveyValidator","ValidatorRunner","NumericValidator","TextValidator","AnswerCountValidator","RegexValidator","ExpressionValidator","getErrorText","getDefaultErrorText","createCustomError","prepareAsyncValidators","asyncResults","isValidateAllValues","asyncValidators","validatorResult","validatedValue","vName","reg","isRunningValue","ensureConditionRunner","generateError","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","noop","browser","env","argv","versions","addListener","once","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","__WEBPACK_IMPORTED_MODULE_3__question__","Boolean","checkedValue","isDisabled","itemClass","Checkbox","getItemClass","isItemSelected","allowHover","itemHover","CheckboxItem","isAllSelected","Comment","keyup","CustomWidget","isDefaultRender","hasVueComponent","htmlTemplate","components","mounted","$el","updated","beforeDestroy","willUnmount","Dropdown","SurveyElementVue","getWidgetComponentName","getRootClass","rootClass","cssMainRoot","small","getContentClass","contentClass","hasTitleOnLeft","ElementHeader","getTitleClass","titleClass","titleOnError","titleOnAnswer","getHeaderClass","headerClass","hasTitleOnTop","headerTop","hasTitleOnBottom","headerBottom","Empty","Errors","additionalClasses","Expression","__WEBPACK_IMPORTED_MODULE_4__utils_utils__","onDragOver","onDrop","doChange","srcElement","doClean","isConfirmed","confirmRemoveAllMessage","doRemoveFile","getConfirmRemoveMessage","getPlaceholderClass","allowCount","loadFiles","FlowPanel","isCollapsedValue","rootNodeValue","beforeMount","onCustomHtmlProducing","onGetHtmlForQuestion","renderQuestion","setRootNode","produceHtml","DOMParser","parseFromString","changeExpanded","getTitleStyle","FlowPanelElement","nodes","FlowPanelElement_1","fontWeight","fontStyle","textDecoration","elementIdValue","hasTextChildNodesOnly","getChildDomNodes","domNodes","Html","ImagePicker","Matrix","cellDisabledClass","hasCellText","cellTextDisabled","cellSelectedClass","itemHoverClass","cellClass","cellClick","MatrixCell","getHeaders","getCellClass","asCell","removeRowClick","removeRowUI","hasQuestion","onVisibilityChanged","MatrixDropdown","MatrixDynamic","addRowClick","addRow","MatrixTable","MultipleText","OtherChoice","isCurrentPageChanged","$nextTick","PanelDynamic","isRenderModeList","currentPanel","removePanelClick","removePanelUI","addPanelClick","getButtonAddCss","btnClasses","PanelDynamicProgress","addPanelUI","prevPanelClick","goToPrevPanel","nextPanelClick","goToNextPanel","changeRange","currentIndex","getButtonPrevCss","isPrevButtonShowing","getButtonNextCss","isNextButtonShowing","rangeMax","Progress","Radiogroup","RadiogroupItem","Rating","__WEBPACK_IMPORTED_MODULE_3__surveyModel__","Row","SurveyString","__WEBPACK_IMPORTED_MODULE_3__defaultCss_cssstandard__","__WEBPACK_IMPORTED_MODULE_4__stylesmanager__","forceUpdate","$forceUpdate","getNavBtnClasses","btnType","btnClass","getCompletedPageClasses","getCompletedStateClasses","completedState","doTrySaveAgain","Text","TimerPanel","timerInfoText","__WEBPACK_IMPORTED_MODULE_4__surveyModel__","Window","surveyWindow","isexpanded","closeOnCompleteTimeout","isShowing","closeWindowOnCompleteCallback","doHide","doExpand","__WEBPACK_IMPORTED_MODULE_2__itemvalue__","__WEBPACK_IMPORTED_MODULE_4__error__","__WEBPACK_IMPORTED_MODULE_5__settings__","ChoicesRestfull","XmlParser","assignValue","xml2Json","xmlNode","childNode","childObject","parseXmlString","xmlString","xmlRoot","lastObjHash","processedUrl","processedPath","clearCache","itemsResult","addSameRequest","objHash","sendingSameRequests","unregisterSameRequests","getCachedItemsResult","processedText","doEmptyResultCallback","useChangedItemsResults","sendRequest","pUrl","pPath","parseResponse","parsedResponse","xhr","onLoad","beforeSendRequest","getCustomPropertiesNames","getCustomProperties","getCustomPropertyName","itemValueType","updatedResult","getResultAfterPath","getItemValueCallback","setCustomProperties","getPropertyBinding","pathes","getPathes","__WEBPACK_IMPORTED_MODULE_0__expressions_expressionParser__","ConditionsParser","ConditionsParserError","patchExpression","createCondition","parserCache","conditionError","offset","__WEBPACK_IMPORTED_MODULE_0__settings__","dxSurveyService","serviceUrl","surveyJson","surveyResult","dataStringify","onSendFile","formData","FormData","append","QuestionResult","onIsCompleted","englishStrings","otherItemText","noneItemText","selectAllItemText","panelDynamicProgressText","questionsProgressText","emptySurvey","completingSurvey","completingSurveyBefore","loadingSurvey","requiredError","requiredErrorInPanel","requiredInAllRowsError","numericError","textMinLength","textMaxLength","textMinMaxLength","minRowCountError","minSelectError","maxSelectError","numericMinMax","numericMin","numericMax","invalidEmail","invalidExpression","urlRequestError","urlGetChoicesError","exceedMaxSize","otherRequiredError","uploadingFile","loadingFile","noFileChosen","removeRow","removePanel","matrix_column","matrix_row","savingData","savingDataError","savingDataSuccess","timerMin","timerSec","timerSpentAll","timerSpentPage","timerSpentSurvey","timerLimitAll","timerLimitPage","timerLimitSurvey","cleanCaption","clearCaption","chooseFileCaption","removeFileCaption","booleanCheckedLabel","booleanUncheckedLabel","confirmRemoveFile","confirmRemoveAllFiles","__WEBPACK_IMPORTED_MODULE_1__itemvalue__","__WEBPACK_IMPORTED_MODULE_5__helpers__","QuestionMatrixBaseModel","filteredRows","filteredColumns","newRows","processRowsOnSet","onColumnsChanged","visibleRowsChangedCallback","hasRowsAsItems","oldVisibleRows","runConditionsForRows","runConditionsForColumns","restoreNewVisibleRowsValues","isChanged","clearInvisibleValuesInRows","newData","__WEBPACK_IMPORTED_MODULE_4__panel__","PageModel","hasShownValue","isRandomizing","wasShown","onNumChanged","areQuestionsRandomized","randomizeElements","oldElements","newElements","getPanels","correctDragDropInfo","dragDropCanDropTagert","dragDropCanDropSource","dragDropAllowFromSurvey","insertAfter","dragDropGetElementIndex","isSamePanel","dragDropCanDropCore","dragDropCanDropNotNext","dragDropIsSameElement","destIndex","__WEBPACK_IMPORTED_MODULE_0__base__","QuestionCustomWidget","CustomWidgetCollection","isFit","isLibraryLoaded","activatedByChanged","activatedBy","pdfQuestionType","pdfRender","widgetsValues","widgetsActivatedBy","onCustomWidgetAdded","addCustomWidget","widgetName","setActivatedBy","widget","getCustomWidgetByName","__WEBPACK_IMPORTED_MODULE_2__questionfactory__","__WEBPACK_IMPORTED_MODULE_3__question_baseselect__","__WEBPACK_IMPORTED_MODULE_5__itemvalue__","QuestionDropdownModel","minMaxChoices","DefaultChoices","QuestionExpressionModel","getCurrecyCodes","expressionRunner","expressionIsRunning","getValueAsStr","toLocaleDateString","toLocaleString","__WEBPACK_IMPORTED_MODULE_1__questionfactory__","__WEBPACK_IMPORTED_MODULE_5__validator__","QuestionTextModel","correctValueType","__WEBPACK_IMPORTED_MODULE_1__question__","QuestionNonValue","SurveyWindowModel","windowElement","onSurveyComplete","showingChangedCallback","expandedChangedCallback","expandcollapse","closeWindowOnComplete","timerId","surveyElementName","SurveyTimer","surveyTimerFunctions","listenerCounter","__WEBPACK_IMPORTED_MODULE_0__cssstandard__","defaultBootstrapCss","progressTextUnderBar","descriptionUnderInput","defaultBootstrapMaterialCss","modernCss","separator","tableWrapper","headerCell","fileSign","__WEBPACK_IMPORTED_MODULE_0__main_scss__","__WEBPACK_IMPORTED_MODULE_1__modern_scss__","__WEBPACK_IMPORTED_MODULE_4__validator__","__WEBPACK_IMPORTED_MODULE_6__base__","__WEBPACK_IMPORTED_MODULE_7__calculatedValue__","__WEBPACK_IMPORTED_MODULE_8__error__","__WEBPACK_IMPORTED_MODULE_10__htmlConditionItem__","__WEBPACK_IMPORTED_MODULE_11__choicesRestfull__","__WEBPACK_IMPORTED_MODULE_12__functionsfactory__","__WEBPACK_IMPORTED_MODULE_14__expressions_expressions__","__WEBPACK_IMPORTED_MODULE_15__conditionsParser__","__WEBPACK_IMPORTED_MODULE_16__conditionProcessValue__","__WEBPACK_IMPORTED_MODULE_17__jsonobject__","__WEBPACK_IMPORTED_MODULE_18__question_matrixdropdownbase__","__WEBPACK_IMPORTED_MODULE_19__question_matrixdropdown__","__WEBPACK_IMPORTED_MODULE_20__question_matrixdynamic__","__WEBPACK_IMPORTED_MODULE_21__question_matrix__","__WEBPACK_IMPORTED_MODULE_22__question_multipletext__","__WEBPACK_IMPORTED_MODULE_23__panel__","__WEBPACK_IMPORTED_MODULE_24__flowpanel__","__WEBPACK_IMPORTED_MODULE_25__page__","__WEBPACK_IMPORTED_MODULE_26__question__","__WEBPACK_IMPORTED_MODULE_27__questionnonvalue__","__WEBPACK_IMPORTED_MODULE_28__question_empty__","__WEBPACK_IMPORTED_MODULE_29__question_baseselect__","__WEBPACK_IMPORTED_MODULE_30__question_checkbox__","__WEBPACK_IMPORTED_MODULE_31__question_comment__","__WEBPACK_IMPORTED_MODULE_32__question_dropdown__","__WEBPACK_IMPORTED_MODULE_33__questionfactory__","__WEBPACK_IMPORTED_MODULE_34__question_file__","__WEBPACK_IMPORTED_MODULE_35__question_html__","__WEBPACK_IMPORTED_MODULE_36__question_radiogroup__","__WEBPACK_IMPORTED_MODULE_37__question_rating__","__WEBPACK_IMPORTED_MODULE_38__question_expression__","__WEBPACK_IMPORTED_MODULE_39__question_text__","__WEBPACK_IMPORTED_MODULE_40__question_boolean__","__WEBPACK_IMPORTED_MODULE_41__question_imagepicker__","__WEBPACK_IMPORTED_MODULE_42__question_paneldynamic__","__WEBPACK_IMPORTED_MODULE_43__surveytimer__","__WEBPACK_IMPORTED_MODULE_44__survey__","__WEBPACK_IMPORTED_MODULE_45__trigger__","__WEBPACK_IMPORTED_MODULE_46__surveyWindow__","__WEBPACK_IMPORTED_MODULE_47__textPreProcessor__","__WEBPACK_IMPORTED_MODULE_48__dxSurveyService__","__WEBPACK_IMPORTED_MODULE_49__localization_english__","__WEBPACK_IMPORTED_MODULE_50__surveyStrings__","__WEBPACK_IMPORTED_MODULE_51__questionCustomWidgets__","__WEBPACK_IMPORTED_MODULE_52__stylesmanager__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_boolean_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1edb9dd6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_boolean_vue__","__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__","__vue_template_functional__","__vue_styles__","__vue_scopeId__","__vue_module_identifier__","__file","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_cad276f6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkboxitem_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c58c80d0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkboxitem_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_comment_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_099c2c8d_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_comment_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_customwidget_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1e61a7b7_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_customwidget_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6b3215d3_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_element_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_973472ac_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_element_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_elementheader_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_27adc537_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_elementheader_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_empty_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_05052c0a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_empty_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_errors_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5682e6ad_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_errors_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_expression_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1d20865a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_expression_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_file_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_20f70284_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_file_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_flowpanel_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_96ae1a78_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_flowpanel_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_flowpanelelement_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9d992c30_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_flowpanelelement_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_html_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0742e16d_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_html_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_imagepicker_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_153fe052_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_imagepicker_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrix_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7fa2f403_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrix_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixcell_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3ca54ee5_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixcell_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixdropdown_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b4da6d8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixdropdown_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixdynamic_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9a0b88e8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixdynamic_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixtable_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_fa197e4a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixtable_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_multipletext_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_93fe4c02_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_multipletext_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_otherChoice_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2ed776ff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_otherChoice_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_page_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4e962a51_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_page_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_panel_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c78899c_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_panel_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paneldynamic_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9dda5d06_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paneldynamic_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paneldynamicprogress_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_742bffac_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paneldynamicprogress_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_27e325ef_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radiogroup_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_06c6d526_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radiogroup_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radiogroupitem_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5bbe97b9_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radiogroupitem_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_rating_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7092bfdf_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_rating_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_row_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7cc0bd88_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_row_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_string_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d3a3d75a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_string_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_survey_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6874e1c8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_survey_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_text_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_40ece422_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_text_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_timerpanel_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0d2abe21_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_timerpanel_vue__","__WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_window_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_62f588b2_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_window_vue__","exporter","makeExporter","previous","writable","hasOwn","supportsSymbol","toPrimitiveSymbol","iteratorSymbol","supportsCreate","supportsProto","__proto__","downLevel","HashMap","MakeDictionary","functionPrototype","usePolyfill","_Map","Map","CreateMapPolyfill","_Set","Set","CreateSetPolyfill","_WeakMap","WeakMap","CreateWeakMapPolyfill","Metadata","propertyKey","attributes","IsUndefined","IsArray","IsConstructor","DecorateConstructor","IsObject","IsNull","ToPropertyKey","DecorateProperty","metadataKey","metadataValue","decorator","IsPropertyKey","OrdinaryDefineOwnMetadata","defineMetadata","hasMetadata","OrdinaryHasMetadata","hasOwnMetadata","OrdinaryHasOwnMetadata","OrdinaryGetMetadata","getOwnMetadata","OrdinaryGetOwnMetadata","getMetadataKeys","OrdinaryMetadataKeys","getOwnMetadataKeys","OrdinaryOwnMetadataKeys","deleteMetadata","metadataMap","GetOrCreateMetadataMap","targetMetadata","decorated","descriptor","Create","MetadataKey","OrdinaryGetPrototypeOf","ToBoolean","MetadataValue","ownKeys","parentKeys","ownKeys_1","hasKey","parentKeys_1","keysObj","GetIterator","IteratorStep","IteratorValue","IteratorClose","Type","IsSymbol","ToPrimitive","PreferredType","hint","exoticToPrim","GetMethod","OrdinaryToPrimitive","toString_1","IsCallable","toString_2","argument","ToString","V","iterResult","done","prototypeProto","cacheSentinel","arraySentinel","MapIterator","_keys","_values","_selector","throw","return","_cacheKey","_cacheIndex","getKey","getEntry","insert","_map","UUID_SIZE","rootKey","CreateUniqueKey","_key","table","GetOrCreateWeakMapTable","CreateUUID","FillRandomBytes","GenRandomBytes","Uint8Array","crypto","getRandomValues","msCrypto","byte","CalculatedValue","rerunExpression","canRunExpression","__WEBPACK_IMPORTED_MODULE_1__expressions__","expected","captureStackTrace","buildMessage","literalEscape","classEscape","describeExpectation","expectation","escapedParts","parts","part","inverted","describeExpected","expected1","descriptions","describeFound","found1","peg$parse","peg$result","peg$FAILED","peg$startRuleFunctions","peg$parseExpression","peg$startRuleFunction","peg$c0","tail","buildBinaryOperand","peg$c1","peg$c2","peg$literalExpectation","peg$c3","peg$c4","peg$c5","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","peg$c73","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","peg$c79","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","expr","peg$c85","peg$c86","peg$c87","peg$c88","peg$c89","peg$c90","peg$c91","peg$c92","peg$c93","peg$c94","peg$c95","peg$c96","peg$c97","peg$c98","peg$c99","peg$c100","peg$c101","peg$c102","peg$c103","peg$c104","peg$c105","peg$c106","peg$c107","peg$c108","peg$c109","peg$c110","peg$c111","peg$c112","peg$c113","peg$c114","peg$c115","peg$c116","peg$c117","peg$c118","sequence","peg$c119","peg$c120","peg$c121","flatten","flattenArray","peg$c122","peg$c123","peg$c124","peg$c125","peg$c126","peg$c127","peg$c128","peg$c129","peg$c130","peg$c131","peg$c132","peg$classExpectation","peg$c133","peg$c134","peg$c135","peg$c136","peg$c137","peg$c138","peg$c139","peg$c140","peg$c141","chars","peg$c142","peg$c143","peg$c144","peg$c145","peg$c146","peg$c147","peg$c148","peg$c149","peg$c150","peg$c151","peg$c152","peg$c153","peg$c154","peg$c155","peg$c156","peg$c157","peg$c158","peg$c159","peg$otherExpectation","peg$c160","peg$c161","peg$currPos","peg$savedPos","peg$posDetailsCache","line","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$resultsCache","startRule","text1","peg$endExpectation","peg$computePosDetails","details","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","peg$fail","peg$buildStructuredError","location1","s0","s1","s2","s3","s4","s5","s6","s7","s8","cached","nextPos","peg$parse_","peg$parseLogicOr","peg$parseOrSign","peg$parseLogicAnd","peg$parseAndSign","peg$parseCompOps","peg$parseComparableOperators","peg$parsePlusMinusOps","peg$parsePlusMinusSigns","peg$parseMulDivOps","peg$parseMulDivSigns","peg$parseBinaryFuncOp","peg$parsePowerSigns","peg$parseFactor","peg$parseBinFunctions","peg$parseFunctionOp","peg$parseUnaryFunctionOp","peg$parseAtom","peg$parseArrayOp","peg$parseLettersAndDigits","peg$parseSequence","peg$parseUnFunctions","peg$parseConstValue","peg$parseValueInput","peg$parseLogicValue","peg$parseArithmeticValue","peg$parseAnyInput","peg$parseDigits","peg$parseNumber","peg$parseNonZeroDigits","peg$parseValueCharacters","peg$parseAnyCharacters","peg$parseLetters","__WEBPACK_IMPORTED_MODULE_2__panel__","FlowPanelModel","onContentChanged","contentChangedCallback","regEx","exec","getQuestionFromText","getHtmlForQuestion","contentElementNamePrefix","getQuestionHtmlId","addElementToContent","searchStr","getElementContentText","insertTextAtCursor","getContent","HtmlConditionItem","arabicSurveyStrings","bulgarianStrings","catalanSurveyStrings","choices_firstItem","choices_secondItem","choices_thirdItem","czechSurveyStrings","danishSurveyStrings","dutchSurveyStrings","finnishSurveyStrings","frenchSurveyStrings","georgianSurveyStrings","otherRequiredEror","germanSurveyStrings","greekSurveyStrings","hebrewSurveyStrings","hungarianSurveyStrings","icelandicSurveyStrings","italianSurveyStrings","japaneseSurveyStrings","latvianSurveyStrings","lithuaniaSurveyStrings","norwegianSurveyStrings","persianSurveyStrings","polishSurveyStrings","portugueseSurveyStrings","romanianSurveyStrings","russianSurveyStrings","simplifiedChineseSurveyStrings","spanishSurveyStrings","swedishSurveyStrings","traditionalChineseSurveyStrings","turkishSurveyStrings","ukrainianSurveyStrings","QuestionBooleanModel","getValueTrue","getValueFalse","locLabel","__WEBPACK_IMPORTED_MODULE_6__surveyStrings__","QuestionCheckboxModel","noneItemValue","selectAllItemValue","selectAllItem","noneItem","allItemCount","selectedCount","selectAll","toggleSelectAll","prevNoneIndex","noneIndexInArray","newNoneIndex","noneValue","valStr","clearIncorrectAndDisabledValues","clearDisabled","setDefaultValueWithOthers","__WEBPACK_IMPORTED_MODULE_3__questionfactory__","QuestionCommentModel","QuestionEmptyModel","QuestionFileModel","isUploading","onStateChanged","previewValue","currentState","doneCallback","allFilesOk","stateChanged","loadFilesProc","fileReader","canPreviewImage","fileItem","isFileImage","errorLength","imagePrefix","subStr","__WEBPACK_IMPORTED_MODULE_1__questionnonvalue__","QuestionHtmlModel","locHtml","QuestionImagePickerModel","__WEBPACK_IMPORTED_MODULE_3__martixBase__","__WEBPACK_IMPORTED_MODULE_7__questionfactory__","__WEBPACK_IMPORTED_MODULE_9__question_dropdown__","__WEBPACK_IMPORTED_MODULE_10__settings__","MatrixRowModel","MartrixCells","QuestionMatrixModel","fullName","onMatrixRowChanged","cellsOwner","getCellRowColumnValue","createString","getCellLocText","getDefaultCellLocText","getCellDisplayLocText","getCellDisplayText","getRows","resRow","rowValues","col","emptyLocalizableString","cellsValue","createMatrixRow","sortVisibleRows","hasValuesInAllRows","hasErrorInRows","rowVal","newKey","hasRows","DefaultRows","__WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__","MatrixDropdownRowModel","QuestionMatrixDropdownModel","locTotalText","displayRowValue","hasContext","prefixName","prefixTitle","fullTitle","MatrixDynamicRowModel","QuestionMatrixDynamicModel","rowCounter","rowCountValue","newRow","canAddRow","addRowCore","prevRowCount","getDefaultRowValue","isRowAdded","isRequireConfirmOnRowDelete","confirm","removeRowCore","defaultLocName","isDuplicated","isValueDuplicated","setRowCount","keyValues","isValueDuplicatedInRow","getRowValueByIndex","newRowCount","__WEBPACK_IMPORTED_MODULE_3__question_text__","__WEBPACK_IMPORTED_MODULE_5__questionfactory__","MultipleTextItemModel","QuestionMultipleTextModel","editorValue","getItemDefaultValue","locPlaceHolder","getMultipleTextValue","setMultipleTextValue","isMultipleItemValueChanging","editorsOnSurveyLoad","createTextItem","onItemValueChanged","getIsRequiredText","__WEBPACK_IMPORTED_MODULE_2__surveyStrings__","__WEBPACK_IMPORTED_MODULE_3__textPreProcessor__","__WEBPACK_IMPORTED_MODULE_4__conditionProcessValue__","__WEBPACK_IMPORTED_MODULE_5__question__","__WEBPACK_IMPORTED_MODULE_6__panel__","__WEBPACK_IMPORTED_MODULE_7__jsonobject__","QuestionPanelDynamicItem","QuestionPanelDynamicModel","panelValue","setPanelItemData","getPanelItemData","surveyValues","getRootData","ItemVariableName","getSharedQuestionFromArray","QuestionPanelDynamicTemplateSurveyImpl","loadingPanelCount","currentIndexValue","isAddingNewPanels","templateValue","createAndSetupNewPanelObject","addOnPropertyChangedCallback","rebuildPanels","setPanelsState","setTemplatePanelSurveyImpl","setPanelsSurveyImpl","assignOnPropertyChangedToTemplate","onTemplateElementPropertyChanged","locDescription","currentIndexChangedCallback","prepareValueForPanelCreating","addingNewPanelsValue","isNewPanelsValueChanged","setValueAfterPanelsCreating","isValueChangingInternally","setValueBasedOnPanelCount","reRunCondition","panelCountChangedCallback","renderModeChangedCallback","setPanelVisibleIndex","isRowEmpty","canAddPanel","newPanel","hasModified","copyValue","canRemovePanel","getPanelIndex","clearIncorrectValuesInPanel","panelNames","prefixText","panelObjs","runPanelsCondition","panelValues","hasKeysDuplicated","updatePanelsContainsErrors","changingValueQuestion","errosInPanels","hasErrorInPanels","visibleQuestions","getPanelDisplayValue","setOnCompleteAsyncInPanel","pnlError","createNewPanelObject","getTemplateQuestionTitleLocation","setPanelCountBasedOnValue","newPanelCount","panelUpdateValueFromSurvey","panelSurveyValueChanged","qValue","panelDataItem","QuestionRadiogroupModel","QuestionRatingModel","rates","rateValuesChangedCallback","locMinRateDescriptionValue","locMaxRateDescriptionValue","__WEBPACK_IMPORTED_MODULE_5__expressions_expressions__","Trigger","SurveyTrigger","SurveyTriggerVisible","SurveyTriggerComplete","SurveyTriggerSetValue","SurveyTriggerRunExpression","SurveyTriggerCopyValue","usedNames","oldPropertiesChanged","onExpressionChanged","operatorsValue","expectedValue","isCheckRequired","perform","check","triggerResult","onSuccess","onFailure","isRequireValue","buildUsedNames","onTrigger","onItemSuccess","onItemFailure","SurveyTriggerSkip","onCompleteRunExpression","confirmAction","$decoratorQueue","warn","console","collectDataFromConstructor","vm","_init","getOwnPropertyNames","NODE_ENV","$internalHooks","componentFactory","_componentTag","computed","mixins","superProto","Super","registerHooks","Component$1","_vm","_h","$createElement","_c","_self","_withStripped","class","attrs","_v","_l","_e","canShowClearButton","clearButtonCaption","domProps","_s","readonly","maxlength","overflowX","rootStyle","directives","rawName","showIcon","iconCss","staticStyle","$event","$$a","$$el","$$c","$$v","$$i","_q","objectFit","alt","customHtml","hasDefaultRender","componentName","isIndeterminate","locLabelFalse","locLabelTrue","multiple","inputTitle","drop","dragover","for","chooseButtonCaption","noFileChosenCaption","cleanButtonCaption","viewBox","hasDescriptionUnderTitle","role","staticClass","commentClass","headers","hasErrorsOnTop","hasErrorsOnBottom","isShow","cy","windowSurvey","expandedCss","isExpandedSurvey","float","onsubmit","isNavigationButtonsShowing","isShowProgressBarOnTop","isTimerPanelShowingOnTop","isShowPrevButton","isTimerPanelShowingOnBottom","isShowProgressBarOnBottom","hasCompletedPage","processedCompletedHtml","completedStateText","processedCompletedBeforeHtml","processedLoadingHtml","_value","locMinRateDescription","locMaxRateDescription","points","isRangeShowing","rowindex","rootNode","hasTitleOnLeftTop","hasDescriptionUnderInput","isAddRowOnTop","isAddRowOnBottom","elNode","isProgressTopShowing","renderedPanels","isProgressBottomShowing","cellIndex","eval","__WEBPACK_IMPORTED_MODULE_0__chunks_model__","__WEBPACK_IMPORTED_MODULE_2__chunks_helpers__","__WEBPACK_IMPORTED_MODULE_4__defaultCss_cssbootstrap__","__WEBPACK_IMPORTED_MODULE_5__defaultCss_cssbootstrapmaterial__","__WEBPACK_IMPORTED_MODULE_6__defaultCss_cssmodern__","__WEBPACK_IMPORTED_MODULE_7__vue_surveyModel__","__WEBPACK_IMPORTED_MODULE_8__vue_survey_vue__","__WEBPACK_IMPORTED_MODULE_9__vue_customwidget_vue__","__WEBPACK_IMPORTED_MODULE_10__vue_string_vue__","__WEBPACK_IMPORTED_MODULE_11__vue_element_vue__","__WEBPACK_IMPORTED_MODULE_12__vue_window_vue__","__WEBPACK_IMPORTED_MODULE_13__vue_page_vue__","__WEBPACK_IMPORTED_MODULE_14__vue_radiogroup_vue__","__WEBPACK_IMPORTED_MODULE_15__vue_radiogroupitem_vue__","__WEBPACK_IMPORTED_MODULE_16__vue_otherChoice_vue__","__WEBPACK_IMPORTED_MODULE_17__vue_rating_vue__","__WEBPACK_IMPORTED_MODULE_18__vue_comment_vue__","__WEBPACK_IMPORTED_MODULE_19__vue_checkbox_vue__","__WEBPACK_IMPORTED_MODULE_20__vue_checkboxitem_vue__","__WEBPACK_IMPORTED_MODULE_21__vue_text_vue__","__WEBPACK_IMPORTED_MODULE_22__vue_boolean_vue__","__WEBPACK_IMPORTED_MODULE_23__vue_empty_vue__","__WEBPACK_IMPORTED_MODULE_24__vue_multipletext_vue__","__WEBPACK_IMPORTED_MODULE_25__vue_matrix_vue__","__WEBPACK_IMPORTED_MODULE_26__vue_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_27__vue_file_vue__","__WEBPACK_IMPORTED_MODULE_28__vue_matrixcell_vue__","__WEBPACK_IMPORTED_MODULE_29__vue_matrixtable_vue__","__WEBPACK_IMPORTED_MODULE_30__vue_matrixdropdown_vue__","__WEBPACK_IMPORTED_MODULE_31__vue_matrixdynamic_vue__","__WEBPACK_IMPORTED_MODULE_32__vue_errors_vue__","__WEBPACK_IMPORTED_MODULE_33__vue_html_vue__","__WEBPACK_IMPORTED_MODULE_34__vue_expression_vue__","__WEBPACK_IMPORTED_MODULE_35__vue_imagepicker_vue__","__WEBPACK_IMPORTED_MODULE_36__vue_paneldynamic_vue__","__WEBPACK_IMPORTED_MODULE_37__vue_paneldynamicprogress_vue__","__WEBPACK_IMPORTED_MODULE_38__vue_progress_vue__","__WEBPACK_IMPORTED_MODULE_39__vue_timerpanel_vue__","__WEBPACK_IMPORTED_MODULE_40__vue_panel_vue__","__WEBPACK_IMPORTED_MODULE_41__vue_flowpanel_vue__","__WEBPACK_IMPORTED_MODULE_42__vue_flowpanelelement_vue__","__WEBPACK_IMPORTED_MODULE_43__vue_row_vue__","__WEBPACK_IMPORTED_MODULE_44__vue_elementheader_vue__","isArrayIter","getIterFn","iter","arrayLike","aLen","mapfn","mapping","iterFn","thisArg","ret","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","curByte","tripletToBase64","encodeChunk","uint8","output","extraBytes","maxChunkLength","len2","$find","KEY","forced","findIndex","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","HAS_INSTANCE","FunctionProto","aFunction","rConstruct","construct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","ARG","tryGet","callee","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","getDefaultAdapter","adapter","transformRequest","isFormData","isArrayBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","common","cosh","getOwnPropertySymbols","classof","getIteratorMethod","isRegExp","advanceStringIndex","callRegExpExec","$min","$push","$SPLIT","LENGTH","LAST_INDEX","MAX_UINT32","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","limit","lastLength","flags","lastLastIndex","splitLimit","separatorCopy","splitter","rx","unicodeMatching","lim","SRC","$toString","TPL","inspectSource","safe","dPs","IE_PROTO","PROTOTYPE","createDict","iframeDocument","iframe","gt","contentWindow","USE_SYMBOL","$exports","getProto","$expm1","expm1","enhanceError","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","EPSILON","__CANCEL__","applyMixin","mixin","vuexInit","$store","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","devtoolPlugin","_devtoolHook","targetState","replaceState","mutation","prepend","subscribeAction","deepCopy","cache","hit","forEachValue","isPromise","partial","Module","rawModule","runtime","_children","_rawModule","rawState","prototypeAccessors","namespaced","addChild","getChild","hasChild","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","targetModule","newModule","getNamespace","namespace","rawChildModule","child","isRegistered","Store","install","plugins","strict","_committing","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","ref","dispatch","commit","payload","installModule","resetStoreVM","plugin","useDevtools","devtools","prototypeAccessors$1","genericSubscribe","subs","resetStore","hot","oldVm","wrappedGetters","silent","$$state","enableStrictMode","_withCommit","_data","$destroy","rootState","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","registerGetter","noNamespace","_payload","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","entry","rootGetters","catch","rawGetter","$watch","sync","_Vue","sub","reject","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","logger","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","startMessage","endMessage","formattedAction","groupCollapsed","groupEnd","pad","getHours","getMinutes","getSeconds","getMilliseconds","times","INCLUDES","searchString","encode","paramsSerializer","serializedParams","toISOString","un","clz32","LOG2E","ArrayProto","toAbsoluteIndex","quot","attribute","p1","sameValue","regExpExec","SEARCH","$search","previousLastIndex","ObjectProto","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","protocol","hostname","pathname","requestURL","parsed","wksExt","$Symbol","inheritIfRequired","gOPN","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","$trim","radix","$defineProperty","__defineGetter__","bitmap","createError","MSIE","wrap","boundArgs","MATCH","$match","fullUnicode","matchStr","BREAK","RETURN","iterable","strong","SET","DESCRIPTORS","isEnum","isEntries","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","PATCH","reCopy","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","cancelToken","throwIfRequested","baseURL","propertyIsEnumerable","$asinh","asinh","sqrt","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","task","microtask","newPromiseCapabilityModule","PROMISE","v8","$Promise","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","_n","reaction","exited","fail","domain","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","onrejectionhandled","$reject","_d","_w","$resolve","executor","onFulfilled","onRejected","capability","$$reject","remaining","$index","alreadyCalled","race","SHARED","copyright","$sort","comparefn","$fromCodePoint","fromCodePoint","$isSealed","defaultToolbar","align","background","oldApi","customModules","registerCustomModules","Quill","customModule","alias","_typeof","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","setPrototypeOf","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","mergeDeep","targetValue","sourceValue","BlockEmbed","import","HorizontalRule","_BlockEmbed","blotName","MarkdownShortcuts","quill","ignoreTags","matches","pattern","formatLine","deleteText","_text","_selection","lineStart","annotatedText","matchedText","insertText","strike","insertEmbed","sources","USER","SILENT","setSelection","_pattern","hrefLink","hrefText","_oldContents","_source","onSpace","onEnter","_this$quill$getLine","_this$quill$getLine2","domNode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_this$quill$getLine3","_this$quill$getLine4","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","script","editorToolbar","useCustomImageHandler","useMarkdownShortcuts","enable","registerPrototypes","initializeEditor","setupQuillEditor","checkForCustomImageHandler","handleInitialContent","registerEditorEventListeners","$emit","editorConfig","debug","setModules","prepareEditorConfig","$refs","quillContainer","getHTML","getWordCount","handleTextChange","handleSelectionChange","listenForEditorEvent","_len","oldRange","oldContents","editorContent","handleImageRemoved","_this2","currrentContents","getContents","deletedContents","diff","operation","setupCustomImageHandler","getModule","addHandler","customImageHandler","emitImageInfo","resetUploader","uploader","Editor","cursorLocation","isFunctionalTemplate","createInjector","createInjectorSSR","createInjectorShadow","HEAD","normalizeComponent_1","isOldIE","addStyle","styles","ids","btoa","unescape","styleSheet","textNode","__vue_script__","__vue_render__","_t","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_is_functional_template__","VueEditor","installed","VPlugin","GlobalVue","use","own","out","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","SAFE_CLOSING","riter","skipClosing","$parseFloat","$at","iterated","point","builtinExec","shared","webpackPolyfill","deprecate","paths","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","ADDER","__lookupSetter__","$isFrozen","$includes","META","setDesc","FREEZE","preventExtensions","setMeta","fastKey","X","Y","Z","pc","gb","qc","aa","ba","qd","ra","Qb","mb","uc","da","$c","Ja","gd","deferUpdates","foreachHidesDestroyed","Na","MouseEvents","propertychange","Jc","Lb","Pa","wc","Mb","jb","Nb","bc","Ba","Ab","Ga","Tb","removeNode","Yb","la","oa","Ca","va","Xc","Ua","Zc","Db","Ud","vd","compareDocumentPosition","Sb","documentElement","kd","Ac","Gc","attachEvent","za","detachEvent","Fb","fireEvent","Eb","baseVal","Bb","Ad","Yc","mergeAttributes","zoom","wd","Pd","Da","Zd","$d","Lc","Nd","hc","Od","includeFields","submitter","submit","Ub","cleanExternalData","1","8","9","yb","cleanData","thead","tbody","tfoot","tr","td","th","optgroup","ua","parseHTML","clean","parentWindow","innerShiv","lastChild","Md","fc","Uc","nodeValue","ud","Kd","Xb","bd","cd","na","MutationObserver","observe","onreadystatechange","scheduler","zb","resetForTesting","Sd","Ta","throttleEvaluation","Hb","ub","deferred","equalityComparer","ic","lc","mc","Ib","fb","Jb","qb","sc","hb","Qa","Gb","Wa","xc","ob","Dd","nc","sb","rc","Bd","Qc","cc","od","pd","fd","qa","Va","Ya","Yd","ta","ya","xa","Ma","Za","Nc","Ha","trackArrayChanges","_destroy","destroyAll","sorted","reversed","reverse","zc","Pc","Pb","Ob","sparse","Kc","nb","ka","Xa","ha","sa","rb","jc","wb","Wc","disposeWhenNodeIsRemoved","Sa","disposeWhen","Rb","Ic","pure","deferEvaluation","ea","ja","Ka","Vb","La","Ia","Jd","Rd","Hc","zd","yd","Oc","Fd","xb","ad","Wd","ma","__ko__hasDomDataOptionValue__","$b","getAttributeNode","specified","selectedIndex","unknown","Ra","wa","ac","vb","getBindingHandler","preprocess","valueAccessors","bindingParams","Id","eb","createComment","ul","ol","Ea","Vc","Wb","Cd","Vd","Sc","ga","nd","nodeHasBindings","getComponentNameForNode","getBindings","getBindingsString","parseBindingsString","tc","getBindingAccessors","Tc","yc","kb","Kb","preprocessNode","bindingContextForDescendants","Mc","hd","Zb","Ec","pa","Cb","$data","controlsDescendantBindings","shouldBindDescendants","fa","textarea","$parents","$rawData","dataDependency","exportDependencies","createChildContext","as","noChildContext","$parentContext","$parent","sd","Cc","Fa","notifyImmediately","Td","ib","ld","Oa","vc","Dc","synchronous","Gd","loaders","suppressLoaderExceptions","Bc","oc","DocumentFragment","Xd","tb","Fc","getConfig","loadComponent","loadTemplate","HTMLElement","loadViewModel","dd","$raw","createDocumentFragment","templateNodes","$component","$componentTemplateNodes","koDescendantsComplete","lookupNamespaceURI","removeAttributeNS","uniqueName","__ko__cssValue","Rc","includeDestroyed","afterAdd","beforeRemove","beforeMove","afterMove","templateEngine","hasfocus","__ko_hasfocusUpdating","__ko_hasfocusLastValue","let","ec","selectedOptions","opera","textInput","textinput","rd","using","form","renderTemplateSource","createJavaScriptEvaluatorBlock","makeTemplateSource","ia","renderTemplate","isTemplateRewritten","allowTemplateRewriting","rewriteTemplate","kc","xd","Ld","md","ab","lb","jd","bb","previousSibling","gc","dc","Qd","ifnot","dontLimitMoves","Aa","pb","_countWaitingForRemove","Ed","$a","Hd","tmpl","koBindingContext","templateOptions","appendTo","fragments","addTemplate","ko_code","ko_with","define","sinh","gOPS","$assign","getSymbols","copyWithin","__g","log10","LOG10E","raw","callSite","tpl","Cancel","expires","secure","toGMTString","decodeURIComponent","windowNames","getWindowNames","isInteger","stat","$acosh","acosh","LN2","FProto","nameRE","macrotask","Observer","WebKitMutationObserver","flush","standalone","characterData","__e","NUMBER","trunc","$values","Attributes","MAX_SAFE_INTEGER","$fails","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","sym","_k","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","$replacer","buggy","encodeReserveRE","encodeReserveReplacer","commaRE","decode","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","param","stringifyQuery","val2","trailingSlashRE","createRoute","record","redirectedFrom","router","route","fullPath","getFullPath","matched","formatMatch","freeze","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bKey","bVal","isIncludedRoute","current","queryIncludes","handleRouteEntered","instances","cbs","enteredCbs","i$1","_isBeingDestroyed","View","routerView","$route","_routerViewCache","inactive","_routerRoot","vnodeData","keepAlive","_directInactive","_inactive","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","prepatch","vnode","componentInstance","propsToPass","resolveProps","resolvePath","relative","firstChar","stack","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","escaped","modifier","asterisk","optional","escapeGroup","encodeURIComponentPretty","encodeURI","encodeAsterisk","pretty","token","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","_normalized","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","Link","custom","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","this$1$1","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","$scopedSlots","$hasNormal","navigate","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","defaultPrevented","isDef","registerInstance","callVal","_parentVnode","_router","util","defineReactive","history","destroyed","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","compileRouteRegex","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","performance","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","handlePopState","handleScroll","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","supportsPushState","pushState","NavigationFailureType","redirected","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isNavigationFailure","errorType","runQueue","resolveAsyncComponents","hasAsync","pending","flatMapComponents","cid","resolvedDef","isESModule","resolved","comp","hasSymbol","called","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","activated","deactivated","extractGuards","records","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","transitionTo","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathLowerCase","baseLowerCase","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","pushHash","getUrl","AbstractHistory","VueRouter","apps","matcher","$once","handleInitialScroll","routeOrError","beforeEach","registerHook","beforeResolve","afterEach","forward","getMatchedComponents","createHref","normalizedTo","VueRouter$1","START_LOCATION","CancelToken","resolvePromise","getOwnPropertyDescriptors","getDesc","hiddenKeys","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","EPSILON32","MAX32","MIN32","roundTiesToEven","$abs","$sign","existingDescriptor","receiver","ownDesc","setProto","MIN_SAFE_INTEGER","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","Container","Format","Leaf","Embed","Scroll","Block","Inline","Attributor","Attribute","Class","Style","extendStatics","ParchmentError","tags","BlotClass","Node","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","Definitions","Definition","attrName","tagNames","NULL_CHARACTER","Delta","newOp","retain","lastOp","chop","partition","passed","failed","changeLength","hasNext","nextOp","compose","thisIter","otherIter","firstOther","firstLeft","peekType","peekLength","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","priority","transformPosition","nextType","toStr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","copyIsArray","bubbleFormats","_get","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text2","NEWLINE_LENGTH","_Parchment$Embed","formats","BLOCK_ATTRIBUTE","endsWith","block","insertAt","BLOCK_BLOT","_Parchment$Block","descendants","leaf","lines","force","statics","defaultChild","allowedChildren","overload","expandConfig","sliceIterator","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","__quill","addContainer","scrollingContainer","emitter","whitelist","keyboard","addModule","events","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","lastRange","modify","contents","convert","setContents","imports","overwrite","startsWith","refNode","setRange","_this3","_overload","_overload2","_this4","API","formatText","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getLength","_overload7","_overload8","getFormat","getRange","_overload9","_overload10","embed","_this7","_this8","_overload11","_overload12","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","_overload15","_overload16","Range","_this11","userConfig","DEFAULTS","themeConfig","moduleNames","moduleConfig","moduleClass","oldDelta","shiftRange","_emitter","_emitter2","_map2","_map3","_map4","_Parchment$Inline","compare","BLOT","isolate","moveChildren","selfIndex","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","_len2","_key2","_ref","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","levels","_console","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","objEquiv","isUndefinedOrNull","attributeBit","ATTRIBUTE","Code","_block","_block2","_Inline","CodeBlock","_Block","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","optimize","unwrap","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone2","_deepEqual","_deepEqual2","ASCII","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","CONTENTS","oldText","diffDelta","combined","merged","bullet","_toConsumableArray","arr2","Selection","composing","mouseDown","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","normalizeNative","info","normalized","normalizedToRange","positions","indexes","_position","startContainer","endContainer","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","scrollBounds","rangeToNative","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","lengthLeft","detach","childBlot","refBlot","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","replaceChild","FormatBlot","replaceWith","replacement","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","circular","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","__isArray","__isRegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","entryChild","symbols","symbol","allPropertyNames","__objToStr","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","Keyboard","_Module","addBinding","ENTER","handleEnter","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","normalize","_quill$getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","suffixText","curContext","prevented","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","togglePicker","escape","hasAttribute","selectItem","buildItem","buildLabel","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","ClassAttributor","camelize","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","lastRecorded","ignoreChange","userOnly","changeDelta","undoDelta","timestamp","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","textbox","pickers","picker","extendToolbar","icons","selects","fillSelect","formula","reader","_Tooltip","boundsContainer","linkRange","restoreFocus","extractVideoUrl","LinkedList","cur","curNode","curLength","OBSERVER_CONFIG","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","disconnect","mark","markParent","grandChild","isEqual","obj1","obj2","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","subjectString","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","unsupported","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","matchVisual","addMatcher","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","pair","_pair","applyFormat","computeStyle","endText","childrenDelta","nodeHeight","marginBottom","textIndent","whiteSpace","Bold","addControls","_ret","controls","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","addSelect","ColorPicker","_Picker","colorLabel","stroke","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","Op","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","skipTempReset","rootEntry","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","$preventExtensions","UNSCOPABLES","emptyObject","isUndef","isTrue","isFalse","isPrimitive","_toString","isValidArrayIndex","__v_isRef","toNumber","makeMap","expectsLowerCase","isBuiltInTag","isReservedAttribute","remove$2","camelizeRE","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","nativeBind","bind$1","_from","identity","genStaticKeys$1","staticKeys","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysA","keysB","looseIndexOf","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","productionTip","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","hasProto","UA","isIE","isIE9","isIOS","_isServer","isFF","nativeWatch","supportsPassive","isServerRendering","VUE_ENV","isNative","Ctor","currentInstance","getCurrentInstance","setCurrentInstance","_scope","VNode","elm","asyncFactory","fnContext","fnOptions","fnScopeId","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","cloned","SuppressedError","uid$2","pendingCleanupDeps","cleanupDeps","dep","_pending","Dep","addSub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","arrayProto","arrayMethods","methodsToPatch","inserted","__ob__","observeArray","arrayKeys","NO_INITIAL_VALUE","shouldObserve","toggleObserving","mockDep","shallow","mock","vmCount","ssrMockReactivity","__v_skip","isRef","customSetter","observeEvenIfShallow","childOb","dependArray","isReadonly","_isVue","del","reactive","makeReactive","shallowReactive","isReactive","isShallow","__v_isShallow","__v_isReadonly","isProxy","toRaw","observed","markRaw","RefFlag","ref$1","createRef","shallowRef","rawValue","triggerRef","unref","proxyRefs","objectWithRefs","proxyWithRefUnwrap","customRef","toRefs","toRef","rawToReadonlyFlag","rawToShallowReadonlyFlag","createReadonly","existingFlag","existingProxy","defineReadonlyProperty","shallowReadonly","getterOrOptions","debugOptions","onlyGetter","watcher","Watcher","lazy","effect","dirty","normalizeEvent","createFnInvoker","invoker","invokeWithErrorHandling","updateListeners","oldOn","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","extractPropsFromVNodeData","propOptions","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","createElement$1","normalizationType","alwaysNormalize","_createElement","scopedSlots","pre","resolveAsset","createComponent","applyNS","registerDeepBindings","renderList","renderSlot","fallbackRender","bindObject","scopedSlotFn","slot","resolveFilter","isKeyNotMatch","expect","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","_loop_1","camelizedKey","hyphenatedKey","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic$1","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","$stable","$key","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","_o","_m","_u","_g","_p","resolveSlots","slots","isWhitespace","normalizeScopedSlots","ownerVm","normalSlots","prevScopedSlots","hasNormalSlots","isStable","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","initSetup","_setupContext","createSetupContext","setupResult","_props","_setupState","__sfc","_setupProxy","_attrsProxy","syncSetupProxy","$attrs","_listenersProxy","$listeners","initSlotsProxy","expose","exposed","defineProxyAttr","_slotsProxy","syncSetupSlots","useSlots","useAttrs","useListeners","mergeDefaults","initRender","_vnode","parentVnode","renderContext","_renderChildren","parentData","_parentListeners","target$1","activeEffectScope","currentRenderingInstance","renderMixin","_render","_isMounted","prevInst","prevRenderInst","handleError","ensureCtor","createAsyncPlaceholder","resolveAsyncComponent","baseCtor","errorComp","owners","loading","loadingComp","owners_1","sync_1","timerLoading_1","timerTimeout_1","$on","forceRender_1","renderCompleted","reject_1","res_1","getFirstComponentChild","initEvents","_hasHookEvent","updateComponentListeners","add$1","remove$1","$off","createOnceHandler$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","i_1","EffectScope","detached","effects","cleanups","scopes","currentEffectScope","fromParent","effectScope","recordEffectScope","getCurrentScope","onScopeDispose","activeInstance","setActiveInstance","prevActiveInstance","initLifecycle","abstract","$children","_provided","_watcher","_isDestroyed","lifecycleMixin","_update","hydrating","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","callHook$1","mountComponent","updateComponent","watcherOptions","preWatchers","_preWatchers","updateChildComponent","propsData","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","prevVNode","prevListeners","propKeys","_propKeys","validateProp","isInInactiveTree","activateChildComponent","direct","deactivateChildComponent","setContext","prevScope","activatedChildren","waiting","flushing","index$1","resetSchedulerState","currentFlushTimestamp","getNow","performance_1","timeStamp","sortCompareFn","post","flushSchedulerQueue","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueActivatedComponent","queueWatcher","noRecurse","WATCHER","WATCHER_CB","WATCHER_GETTER","WATCHER_CLEANUP","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","onTrack","cleanup","forceTrigger","isMultiSource","onCleanup","baseGetter_1","onStop","provide","resolveProvided","parentProvides","treatDefaultAsFactory","provides","hooks","errorCaptured","globalHandleError","_handled","logError","isUsingMicroTask","flushCallbacks","copies","p_1","counter_1","textNode_1","_resolve","useCssModule","useCssVars","vars","defineAsyncComponent","loader","loadingComponent","errorComponent","userOnError","suspensible","pendingRequest","retries","retry","load","thisRequest","userRetry","userFail","createLifeCycle","hookName","injectHook","mergeLifecycleHook","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onActivated","onDeactivated","onServerPrefetch","onRenderTracked","onRenderTriggered","injectErrorCapturedHook","onErrorCaptured","defineComponent","seenObjects","_traverse","seen","isA","isFrozen","depId","uid$1","expOrFn","isRenderWatcher","user","deps","newDeps","depIds","newDepIds","sharedPropertyDefinition","sourceKey","initState","initProps$1","initMethods","initData","initComputed$1","initWatch","propsOptions","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","stateMixin","dataDef","propsDef","$delete","initProvide","provideOption","provided","initInjections","resolveInject","provideKey","provideDefault","initMixin$1","_uid","_isComponent","initInternalComponent","mergeOptions","resolveConstructorOptions","$mount","vnodeComponentOptions","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","latest","sealed","sealedOptions","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","createFunctionalComponent","mergeProps","cloneAndMarkFunctionalResult","vnodes","getComponentName","__name","componentVNodeHooks","mountedNode","createComponentInstanceForVnode","oldVnode","hooksToMerge","transformModel","nativeOn","installComponentHooks","inlineTemplate","toMerge","_merged","mergeHook","f1","f2","warn$2","mergeData","recursive","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","parent_1","defaultStrat","normalizeProps","normalizeInject","normalizeDirectives$1","dirs","extends","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","functionTypeCheckRE","isSameType","expectedTypes","initUse","installedPlugins","_installedPlugins","initMixin","initExtend","SuperId","cachedCtors","_Ctor","Sub","initProps","initComputed","Comp","initAssetRegisters","_getComponentName","pruneCache","keepAliveInstance","pruneCacheEntry","patternTypes","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","builtInComponents","initGlobalAPI","configDef","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","isPreTag","unknownElementCache","HTMLUnknownElement","isTextInputType","newNode","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refValue","$refsValue","isFor","refInFor","_isString","_isRef","refs","setSetupRef","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","i_2","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","i_3","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","i_5","hydrate","postpatch","invokeInsertHook","i_6","isRenderedModule","inVPre","hasChildNodes","childrenMatch","i_7","fullInvoke","isInitialPatch","isRealElement","oldElm","_leaveCb","patchable","i_8","i_9","insert_1","i_10","directives$1","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","setupDef","baseModules","updateAttrs","inheritAttrs","oldAttrs","_v_attr_proxy","setAttr","isInPre","baseSetAttr","__ieph","blocker_1","stopImmediatePropagation","updateClass","oldData","transitionClass","_transitionClasses","_prevClass","chr","expressionPos","expressionEndPos","klass$1","validDivisionCharRE","parseFilters","filters","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","baseWarn","pluckModuleFunction","addProp","dynamic","rangeSetItem","plain","addAttr","dynamicAttrs","addRawAttr","attrsMap","attrsList","addDirective","isDynamicArg","prependModifierMarker","important","middle","nativeEvents","newHandler","getRawBindingAttr","rawAttrsMap","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","getAndRemoveAttrByRegex","genComponentModel","baseValueExpression","valueExpression","assignment","genAssignmentCode","parseModel","eof","isStringStart","parseString","parseBracket","inBracket","stringQuote","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","model$1","_warn","genSelect","genCheckboxModel","genRadioModel","genDefaultModel","valueBinding","trueValueBinding","falseValueBinding","selectedVal","needCompositionGuard","normalizeEvents","event_1","useMicrotaskFix","attachedTimestamp_1","original_1","_wrapper","updateDOMListeners","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","bindingStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","style$1","whitespaceRE$1","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","toggleDisplay","_enterCb","appearClass","appearToClass","appearActiveClass","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","modules$1","patch","vmodel","directive","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions_1","curOptions_1","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","locateNode","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave_1","moveClass","TransitionGroup","kept","prevChildren","rawChildren","transitionData","removed","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","el_1","WebkitTransform","transitionDuration","_moveCb","_hasMove","newPos","oldPos","platformComponents","defaultTagRE","regexEscapeRE","buildRegex","delimiters","parseText","tagRE","tokenValue","rawTokens","transformNode$1","classBinding","genData$2","klass","transformNode","genData","styleBinding","genData$1","decoder","he","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","dynamicArgAttribute","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","conditionalComment","isPlainTextElement","reCache","decodingMap","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","lastTag","expectHTML","endTagLength_1","stackedTag_1","reStackedTag","parseEndTag","textEnd","commentEnd","shouldKeepComment","advance","conditionalEnd","doctypeMatch","endTagMatch","startTagMatch","parseStartTag","handleStartTag","state_1","unarySlash","unary","shouldDecodeNewlinesForHref","lowerCasedTag","lowerCasedTagName","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","dynamicArgRE","argRE","bindRE","modifierRE","slotRE","lineBreakRE","whitespaceRE","decodeHTMLCached","emptySlotScopeToken","createASTElement","makeAttrsMap","currentParent","preserveWhitespace","whitespaceOption","whitespace","inPre","closeElement","trimEndingWhitespace","processed","processElement","elseif","else","addIfCondition","forbidden","processIfConditions","slotScope","slotTarget","lastNode","outputSourceRange","guardIESVGBug","isForbiddenTag","processPre","processRawAttrs","processFor","processIf","processOnce","isTextTag","processKey","processRef","processSlotContent","processSlotOutlet","processComponent","processAttrs","checkInFor","parseFor","inMatch","iteratorMatch","iterator1","iterator2","findPrevElement","ifConditions","slotTargetDynamic","slotBinding","getSlotName","name_3","slotContainer_1","slotName","syncGen","isDynamic","hasBindings","parseModifiers","camel","argMatch","ret_1","ieNSBug","ieNSPrefix","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","cloneASTElement","branch1","branch2","isStaticKey","isPlatformReservedTag","baseOptions","genStaticKeysCached","genStaticKeys","markStatic","markStaticRoots","staticInFor","staticRoot","isDirectChildOfTemplateFor","fnExpRE","fnInvokeRE","simplePathRE","esc","up","down","keyNames","genGuard","modifierCode","prevent","ctrl","genHandlers","staticHandlers","dynamicHandlers","handlerCode","genHandler","isMethodPath","isFunctionExpression","isFunctionInvocation","genModifierCode","modifiers_1","keyModifier","genKeyFilter","genFilterCode","keyVal","wrapListeners","wrapData","baseDirectives","cloak","CodegenState","dataGenFns","maybeComponent","onceId","generate","ast","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genSlot","genComponent","__isScriptSetup","checkBindingType","genChildren","camelName","PascalName","checkType","fromConst","fromMaybeRef","originalPreState","altGen","altEmpty","genIfConditions","genTernaryExp","altHelper","genDirectives","genProps","genScopedSlots","genInlineTemplate","needRuntime","hasRuntime","gen","inlineRenderFns","containsSlotChild","needsKey","parent_2","generatedSlots","genScopedSlot","isLegacySyntax","reverseProxy","checkSkip","altGenElement","altGenNode","normalizationType_1","getNormalizationType","gen_1","genNode","needsNormalization","genComment","genText","transformSpecialNewlines","createFunction","createCompileToFunctionFn","compiled","fnGenErrors","createCompilerCreator","baseCompile","finalOptions","tips","tip","compileToFunctions","createCompiler","getShouldDecode","idToTemplate","mount","getOuterHTML","outerHTML","codePointAt","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","PromiseCapability","$$resolve","log2","axios","$http","spaces","non","ltrim","rtrim","ALIAS","FORCE","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","ENDS_WITH","$endsWith","endPosition","SignaturePad","Point","pressure","distanceTo","Bezier","widths","c2","calculateControlPoints","c3","c1","dx1","dy1","dx2","dy2","m1","m2","l1","l2","dxm","dym","cm","tx","ty","startPoint","control2","control1","endPoint","startWidth","endWidth","steps","px","py","xdiff","ydiff","SignatureEventTarget","_et","EventTarget","wait","storedContext","storedArgs","later","_drawingStroke","_isEmpty","_lastPoints","_lastVelocity","_lastWidth","_handleMouseDown","_strokeBegin","_handleMouseMove","_strokeMoveUpdate","_handleMouseUp","_strokeEnd","_handleTouchStart","cancelable","targetTouches","changedTouches","_handleTouchMove","_handleTouchEnd","wasCanvasTouched","_handlePointerStart","_handlePointerMove","_handlePointerEnd","velocityFilterWeight","minDistance","dotSize","compositeOperation","canvasContextOptions","_strokeUpdate","_ctx","fillStyle","clearRect","fillRect","_reset","_getPointGroupOptions","dataUrl","ratio","xOffset","yOffset","drawImage","crossOrigin","encoderOptions","toSVG","toDataURL","touchAction","msTouchAction","userSelect","PointerEvent","_handlePointerEvents","_handleMouseEvents","_handleTouchEvents","pointGroups","_fromData","_drawCurve","_drawDot","CustomEvent","pointGroupOptions","newPointGroup","_createPoint","lastPointGroup","lastPoints","lastPoint","isLastPointTooClose","curve","_addPoint","globalCompositeOperation","_calculateCurveWidths","fromPoints","velocity","velocityFrom","newWidth","_strokeWidth","arc","PI","widthDelta","drawSteps","beginPath","tt","ttt","uu","uuu","_drawCurveSegment","closePath","drawCurve","drawDot","basicPoint","includeBackgroundColor","minX","minY","maxX","maxY","circle","createDropdownActionModel","createDropdownActionModelAdvanced","getActionDropdownButtonTarget","BaseAction","ActionDropdownViewModel","_base__WEBPACK_IMPORTED_MODULE_0__","_surveyStrings__WEBPACK_IMPORTED_MODULE_1__","_jsonobject__WEBPACK_IMPORTED_MODULE_2__","_list__WEBPACK_IMPORTED_MODULE_3__","_popup__WEBPACK_IMPORTED_MODULE_4__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__","_container__WEBPACK_IMPORTED_MODULE_6__","actionOptions","dropdownOptions","listOptions","popupOptions","listModel","newAction","onSelectionChanged","innerPopupModel","toggleVisibility","allowSelection","selectedItem","setOnFilterStringChangedCallback","onFilterStringChangedCallback","onDispose","newActionOptions","popupModel","isUserAction","isFocusedContent","showFilter","scrollToSelectedItem","rendredIdValue","getNextRendredId","renderedId","ownerValue","getVisible","setVisible","getEnabled","setEnabled","getComponent","setComponent","getLocTitle","setLocTitle","setTitle","cssClassesValue","getActionBarItemTitleCss","itemTitleWithIcon","getActionBarItemCss","itemWithTitle","itemAsIcon","itemActive","itemPressed","pressed","getActionRootCss","needSpace","getTooltip","getIsTrusted","isTrusted","innerItem","locTitleChanged","locTitleName","raiseUpdate","locStrChangedInPopupModel","isResetInitialized","createLocTitle","onStringChanged","_title","localizationName","locTooltipChanged","contentComponentData","locTooltipName","_visible","_enabled","enabledIf","_component","onSet","funcKey","setupPopupCallbacks","registerPropertyChangedHandlers","removePopupCallbacks","unregisterPropertyChangedHandlers","AdaptiveActionContainer","_utils_responsivity_manager__WEBPACK_IMPORTED_MODULE_0__","_action__WEBPACK_IMPORTED_MODULE_1__","_container__WEBPACK_IMPORTED_MODULE_2__","_surveyStrings__WEBPACK_IMPORTED_MODULE_3__","minVisibleItemsCount","isResponsivenessDisabled","dotsItem","ContainerID","hiddenItemSelected","hideItemsGreaterN","visibleItemsCount","actionsToHide","getActionsToHide","hiddenItems","removePriority","hiddenItemsListModel","setItems","disableHide","getVisibleItemsCount","availableSize","minDimension","itemsSizes","currSize","updateItemMode","itemsSize","disableShrink","maxDimension","hidableItems","getRenderedActions","fit","dimension","dotsItemSize","minSize","setActionsMode","initResponsivityManager","delayedUpdateFunction","responsivityManager","resetResponsivityManager","defaultActionBarCss","ActionContainer","_jsonobject__WEBPACK_IMPORTED_MODULE_0__","_base__WEBPACK_IMPORTED_MODULE_1__","_action__WEBPACK_IMPORTED_MODULE_2__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__","defaultSizeMode","smallSizeMode","itemIcon","sizeMode","setActionCssClasses","sizeModeClass","containerCss","getDefaultCssClasses","createAction","sortByVisibleIndex","firstItem","secondItem","getActionById","Bindings","Dependencies","ComputedUpdater","ArrayChanges","EventBase","_localizablestring__WEBPACK_IMPORTED_MODULE_0__","_helpers__WEBPACK_IMPORTED_MODULE_1__","_settings__WEBPACK_IMPORTED_MODULE_3__","_conditions__WEBPACK_IMPORTED_MODULE_4__","_surveyStrings__WEBPACK_IMPORTED_MODULE_5__","_console_warnings__WEBPACK_IMPORTED_MODULE_6__","__spreadArray","onChangedJSON","clearBinding","getPropertiesByValueName","objProperties","isBindable","onBindingChanged","currentDependency","dependencies","DependenciesCount","addDependency","dependency","_updater","ComputedUpdaterType","setDependencies","clearDependencies","getDependencies","createPropertiesHash","eventList","loadingOwner","addEvent","onItemValuePropertyChanged","isCreating","animationAllowedLock","bindingsValue","onBaseCreating","finishCollectDependencies","currentDependencis","startCollectDependencies","updater","collectDependency","commentSuffix","trimString","isDisposed","equalsCore","isPropertyEmpty","isDisposedValue","isLive","supportCreatorV2","checkBindings","updateBindings","updateBindingValue","getIsLoadingFromJson","clonedObj","getPropertyByName","classMetaData","createProgressInfo","questionCount","answeredQuestionCount","requiredQuestionCount","requiredAnsweredQuestionCount","getProgressInfo","localeChanged","getPropertyValueWithoutDefault","propDefaultValue","getDefaultPropertyValue","dValue","getLocalizationString","hasDefaultPropertyValue","resetPropertyValue","disposedObjectChangedProperty","isEditingSurveyElement","settingValue","setArrayPropertyDirectly","setPropertyValueDirectly","sendNotification","clearPropertyValue","itemValuePropertyChanged","ownerPropertyName","doPropertyValueChangedCallback","checkConditionPropertyChanged","isInternal","notifier","addExpressionProperty","onExecute","expressionInfo","runConditionCore","runConditionItemCore","canRunConditions","createExpressionRunner","doBeforeAsynRun","asynExpressionHash","isAsyncExpressionRunning","onAsyncRunningChanged","doAfterAsynRun","onBeforeAsyncRun","onAfterAsyncRun","getLocalizationFormatString","disableLocalization","searchText","founded","strs","getSearchableLocalizedStrings","setFindText","keys_1","getSearchableLocKeys","getSearchableItemValueKeys","createNewArrayCore","createArrayCoreHandler","ensureArray","getIsAnimationAllowed","animationEnabled","blockAnimations","releaseAnimations","fireByCreatingOptions","createOptions","fireCallbackChanged","onCallbacksChanged","_helpers__WEBPACK_IMPORTED_MODULE_0__","_conditions__WEBPACK_IMPORTED_MODULE_2__","_jsonobject__WEBPACK_IMPORTED_MODULE_3__","isCalculated","live","resetCalculation","doCalculation","runExpressionCore","ensureExpression","runDependentExpressions","calcItem","ChoicesRestful","_itemvalue__WEBPACK_IMPORTED_MODULE_1__","_error__WEBPACK_IMPORTED_MODULE_3__","_settings__WEBPACK_IMPORTED_MODULE_4__","isUsingCacheFromUrl","web","encodeUrlParams","isUsingCache","onBeforeRequestChoices","cacheLoadedChoices","getIsRunning","urlText","cacheText","noCacheText","onProcessedUrlCallback","loadingObjHash","beforeLoadRequest","originalItem","getImageLink","callResultCallback","EncodeParameters","surveyBuiltInVarible","getValueInfo","valueInfo","getValueFromPath","sctrictCompare","isAnyKeyChanged","keyValue","getValueFromSurvey","ind_name","getQuestionDirectly","requireStrictCompare","getValueFromValues","getBuiltInVariableValue","createPath","checkedKeys","getNonNestedObjectCore","createProp","nameInLow","ind","ExpressionExecutor","_conditionProcessValue__WEBPACK_IMPORTED_MODULE_0__","_console_warnings__WEBPACK_IMPORTED_MODULE_1__","_conditionsParser__WEBPACK_IMPORTED_MODULE_2__","setExpression","createExpressionExecutor","_id","IdCounter","expressionExecutor","containsFunc","_expressions_expressionParser__WEBPACK_IMPORTED_MODULE_0__","ConsoleWarnings","inCorrectQuestionValue","_defaultV2Css__WEBPACK_IMPORTED_MODULE_0__","timerRoot","headerClose","bodyContainer","logoImage","headerText","titleExpanded","titleCollapsed","buttonRemoveRight","buttonPrevDisabled","buttonNextDisabled","panelWrapper","panelWrapperInRow","progressBtnIcon","progressButtonsContainerCenter","progressButtonsContainer","progressButtonsImageButtonLeft","progressButtonsImageButtonRight","progressButtonsImageButtonHidden","progressButtonsListContainer","progressButtonsList","progressButtonsListElementPassed","progressButtonsListElementCurrent","progressButtonsListElementNonClickable","progressButtonsPageTitle","progressButtonsPageDescription","answered","itemSelectAll","itemNone","itemSvgIconId","rootMobileMod","rootDragMod","rootDisabled","rootDragHandleAreaIcon","rootSelectToRankMod","rootSelectToRankAlignVertical","rootSelectToRankAlignHorizontal","itemContent","itemIndexEmptyMode","itemGhostNode","itemIconContainer","itemIconHoverMod","itemIconFocusMod","itemGhostMod","itemDragMod","containerEmptyMode","containerFromMode","containerToMode","containerPlaceholder","containersDivider","itemCaption","itemSelected","rootRadio","sliderGhost","rootCheckbox","checkboxItem","checkboxItemChecked","controlCheckbox","checkboxControlLabel","checkboxItemIndeterminate","checkboxItemDisabled","checkboxMaterialDecorator","checkboxItemDecorator","indeterminatePath","svgIconCheckedId","svgIconUncheckedId","svgIconIndId","remainingCharacterCounter","itemLabel","popup","cleanButton","cleanButtonSvg","cleanButtonIconId","filterStringInput","controlValue","controlInputFieldComponent","hintPrefix","hintSuffix","cleanItemButton","cleanItemButtonSvg","cleanItemButtonIconId","controlEmpty","rowError","cellResponsiveTitle","rowTextCell","rowAdditional","detailRow","detailRowText","detailCell","choiceCell","detailButton","detailButtonExpanded","detailIcon","detailIconExpanded","detailPanelCell","actionsCell","iconDrag","emptyRowsSection","emptyRowsButton","ghostRow","itemSmiley","itemStar","itemSmileySelected","itemStarSelected","previewItem","controlDisabled","removeFileSvgIconId","dragAreaPlaceholder","fileList","backgroundImage","rootWithButtons","shown","rootCollapsedMod","rootFullScreenMode","rootContent","buttonsContainer","collapseButton","closeButton","fullScreenButton","mobileWidth","themeMark","noImage","noImageSvgIconId","headerTab","itemNoImage","itemNoImageSvgIcon","itemNoImageSvgIconId","itemFixedSize","hintSuffixWrapper","defaultV2Css","defaultV2ThemeName","getAvailableThemes","rootMobile","rootAnimationDisabled","rootReadOnly","rootCompact","rootFitToContainer","rootWrapper","rootWrapperFixed","rootBackgroundImage","bodyWithTimer","clockTimerRoot","clockTimerRootTop","clockTimerRootBottom","clockTimerProgress","clockTimerProgressAnimation","clockTimerTextContainer","clockTimerMinorText","clockTimerMajorText","bodyLoading","bodyNavigationButton","completedBeforePage","contentFadeIn","contentFadeOut","fadeIn","fadeOut","asPage","titleNumInline","titleDisabled","titleOnExpand","titleBar","withFrame","expandable","expandableAnimating","invisible","errorsContainer","panelFooter","footerButtonsContainer","panelsContainer","panelWrapperFadeIn","panelWrapperFadeOut","panelWrapperList","noEntriesPlaceholder","tabsRoot","tabsLeft","tabsRight","tabsCenter","progressButtonsRoot","progressButtonsNumbered","progressButtonsFitSurveyWidth","progressButtonsConnector","progressButtonsButton","progressButtonsButtonBackground","progressButtonsButtonContent","progressButtonsHeader","progressButtonsFooter","emptyHeaderRoot","rowMultiple","rowCompact","rowFadeIn","rowFadeOut","pageRow","contentSupportContainerQueries","titleTopRoot","descriptionUnderInputRoot","titleBottomRoot","titleEmpty","titleReadOnly","commentArea","hasErrorTop","hasErrorBottom","composite","errorsContainerTop","errorsContainerBottom","adaptive","rootRow","rootMultiColumn","itemOnError","itemReadOnly","itemPreview","itemPreviewSvgIconId","itemExchanged","labelReadOnly","labelPreview","sliderText","radioItem","radioItemChecked","radioItemDisabled","radioItemReadOnly","radioItemPreview","radioLabel","radioControlLabel","radioFieldset","itemRadioDecorator","materialRadioDecorator","itemRadioControl","checkboxLabel","checkboxItemOnError","checkboxItemReadOnly","checkboxItemPreview","controlReadOnly","controlPreview","constrolWithCharacterCounter","characterCounterBig","itemLabelReadOnly","itemLabelDisabled","itemLabelPreview","itemLabelOnError","itemLabelAllowFocus","itemLabelAnswered","itemWithCharacterCounter","cellError","cellErrorTop","cellErrorBottom","chevronButton","chevronButtonSvg","chevronButtonIconId","rootColumn","imageContainer","checkedItemDecorator","checkedItemSvgIcon","checkedItemSvgIconId","columnsAutoWidth","noHeader","rootVerticalAlignTop","rootVerticalAlignMiddle","rootAlternateRows","rowDisabled","rowReadOnly","rootScroll","errorsCell","errorsCellTop","errorsCellBottom","itemCell","expandedRow","rowHasPanel","rowHasEndActions","footerCell","footerTotalCell","columnTitleCell","cellRequiredText","detailIconId","detailIconExpandedId","detailRowCell","actionsCellPrefix","actionsCellDrag","emptyCell","verticalCell","cellQuestionWrapper","dragElementDecorator","iconDragElement","rootDropdown","rootWrappable","rootLabelsTop","rootLabelsBottom","rootLabelsDiagonal","itemStarOnError","itemStarHover","itemStarDisabled","itemStarReadOnly","itemStarPreview","itemStarHighlighted","itemStarUnhighlighted","itemStarSmall","itemSmileyOnError","itemSmileyHover","itemSmileyDisabled","itemSmileyReadOnly","itemSmileyPreview","itemSmileyHighlighted","itemSmileyScaleColored","itemSmileyRateColored","itemSmileySmall","itemSmall","rootDragging","rootAnswered","rootPreview","dragArea","dragAreaActive","fileDecoratorDrag","chooseFileAsText","chooseFileAsTextDisabled","chooseFileAsIcon","chooseFileIconId","removeButtonIconId","defaultImage","defaultImageIconId","leftIconId","rightIconId","removeFileButton","imageWrapper","imageWrapperDefaultImage","singleImage","mobile","videoContainer","contextButton","actionsContainer","closeCameraButton","changeCameraButton","takePictureButton","loadingIndicator","clearButtonIconId","rootDesignMode","rootSelectToRankEmptyValueMod","itemBody","itemFocused","actionBar","controlValueItems","controlEditable","DefaultTitleModel","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_0__","getIconCss","DragDropPageHelperV1","_drag_drop_helper_v1__WEBPACK_IMPORTED_MODULE_0__","getDragDropInfo","toElement","draggedElement","fromElement","elementsToSetSWNL","elementsToResetSWNL","isDesignModeV2","startMovingQuestion","stopMovingQuestion","rowSource","rowDestination","DragDropPanelHelperV1","thisElement","createRowAndSetLazy","setIsLazyRendering","DragDropChoices","_core__WEBPACK_IMPORTED_MODULE_0__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_1__","doDragOver","domAdapter","draggedElementShortcut","doBanDropHere","createDraggedElementShortcut","draggedElementNode","createImagePickerShortcut","isDeepClone","removeIcon","isDragDropMoveDown","isDragDropMoveUp","shortcutXOffset","shortcutYOffset","itemValueNode","imagepickerControlsNode","imageContainerNode","imageNode","borderRadius","getDropTargetByDataAttributeValue","dataAttributeValue","dragOverChoice","getVisibleChoices","selectToRankEnabled","rankingChoices","isDropTargetValid","dropTarget","dropTargetNode","dropTargetIndex","draggedElementIndex","calculateIsBottom","afterDragOver","isDropTargetDoesntChanged","ghostPositionChanged","updateRankingChoices","DragDropCore","_dom_adapter__WEBPACK_IMPORTED_MODULE_1__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_2__","_isBottom","onGhostPositionChanged","onDragStart","onDragEnd","onBeforeDrop","onAfterDrop","prevDropTarget","allowDropHere","banDropHere","fitToContainer","draggedElementType","startDrag","preventSaveTargetNode","rootContainer","getRootElement","dragInit","shortcutText","getShortcutText","onStartDrag","newIsBottom","getDraggedElementClass","findDropTargetNodeFromPoint","displayProp","isAvailable","dragOverNode","documentOrShadowRoot","findDropTargetNodeByDragOverNode","getDataAttributeValueByNode","datasetName","words","capitalizeFirstLetter","getDropTargetByNode","calculateVerticalMiddleOfHTMLElement","calculateHorizontalMiddleOfHTMLElement","dropTargetDataAttributeName","dragOver","DragDropDOMAdapter","_utils_utils__WEBPACK_IMPORTED_MODULE_0__","_utils_devices__WEBPACK_IMPORTED_MODULE_1__","_settings__WEBPACK_IMPORTED_MODULE_2__","PreventScrolling","scrollIntervalId","stopLongTapIfMoveEnough","pointerMoveEvent","currentX","currentY","isMicroMovement","returnUserSelectBack","stopLongTap","timeoutID","handlePointerCancel","handleEscapeButton","onContextMenu","moveShortcutElement","cancelAnimationFrame","savedTargetNode","insertNodeToParentAtIndex","savedTargetNodeParent","savedTargetNodeIndex","environment","diffX","diffY","startY","startLongTapProcessing","doStartDrag","getNodeIndexInParent","rootElementX","rootElementY","rootElementScrollLeft","rootElementScrollTop","doScroll","shortcutHeight","shortcutWidth","documentBottom","documentRight","shortcutBottomCoordinate","getShortcutBottomCoordinate","shortcutRightCoordinate","getShortcutRightCoordinate","scrollByDrag","scrollableParentNode","startScrollBoundary","isTop","isLeft","isRight","DragDropMatrixRows","_global_variables_utils__WEBPACK_IMPORTED_MODULE_0__","_core__WEBPACK_IMPORTED_MODULE_1__","fromIndex","toIndex","moveRowByIndex","_body","getBody","restoreUserSelectValue","renderedRow","isGhostRow","dropTargetRenderedRow","canInsertIntoThisRow","lockedRows","lockedRowCount","rendreredRows","rendredRow","draggedRenderedRow","clearOnDrop","DragDropRankingChoices","_choices__WEBPACK_IMPORTED_MODULE_0__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_1__","_utils_devices__WEBPACK_IMPORTED_MODULE_2__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_3__","isDragOverRootNode","shortcutClass","useFullItemSizeForShortcut","getIsDragOverRootNode","dropTargetNodeMove","updateDraggedElementShortcut","newIndexText","indexNode","currentDropTarget","DragDropRankingSelectToRank","_itemvalue__WEBPACK_IMPORTED_MODULE_0__","_ranking_choices__WEBPACK_IMPORTED_MODULE_1__","selectToRank","questionModel","unRankingChoices","unselectFromRank","reorderRankedItem","isValueSetByUser","doUIEffects","toContainer","fromContainer","isDraggedElementUnranked","isDropTargetRanked","doRankBetween","isDraggedElementRanked","fromChoicesArray","toChoicesArray","rankFunction","getIndixies","length_1","isDropToEmptyRankedContainer","isNeedToShowIndexAtShortcut","isDropTargetUnranked","shortcutIndex","updateUnRankingChoices","rankingChoicesAnimation","unRankingChoicesAnimation","DropdownListModel","_itemvalue__WEBPACK_IMPORTED_MODULE_2__","_list__WEBPACK_IMPORTED_MODULE_4__","_popup__WEBPACK_IMPORTED_MODULE_5__","_question_dropdown__WEBPACK_IMPORTED_MODULE_6__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_8__","_utils_devices__WEBPACK_IMPORTED_MODULE_9__","_utils_utils__WEBPACK_IMPORTED_MODULE_10__","minPageSize","loadingItemHeight","_markdownMode","selectedItemSelector","itemsSettings","skip","take","totalCount","isRunningLoadQuestionChoices","popupCssClasses","listModelFilterStringChanged","filterString","qustionPropertyChangedHandler","onPropertyChangedHandler","htmlCleanerElement","showInputFieldComponent","createListModel","updateAfterListModelCreated","setChoicesLazyLoadEnabled","setSearchEnabled","setTextWrapEnabled","textWrapEnabled","createPopup","resetItemsSettings","getFocusFirstInputSelector","isAllDataLoaded","updateQuestionChoices","callbackAfterItemsLoaded","isUpdate","loadQuestionChoices","popupRecalculatePosition","updatePopupFocusFirstInputSelector","_popupModel","focusFirstInputSelector","verticalPosition","horizontalPosition","showPointer","positionMode","isFocusedContainer","setWidthByTarget","renderElements","onOpenedCallBack","onHidePopup","processPopupVisiblilityChanged","setFilterStringToListModel","resetFocusedItem","focusedItem","getAvailableItems","selectedValue","isItemVisible","focusFirstVisibleItem","isResetHeight","recalculatePosition","resetFilterString","suggestedItem","setOnTextSearchCallbackForListModel","setOnTextSearchCallback","textToSearch","textInLow","comparator","normalizeTextCallback","searchMode","visibleItems","_onSelectionChanged","applyInputString","listElementId","forceShowFilter","areSameItemsCallback","item1","item2","hasScroll","disableTabStop","popupCssClass","listCssClasses","inputString","hintString","onSetFilterString","onChoicesSearch","updateAfterFilterStringChanged","focused","inputFieldComponentName","cleanHtml","fixInputCase","hintStringMiddle","applyHintString","readOnlyText","hintStringLC","inputStringLC","isInputReadOnly","showSearchClearButton","focusItemOnClickAndPopup","chevronPointerDown","changeSelectionWithKeyboard","onClear","getSelectedAction","focusPrevVisibleItem","focusNextVisibleItem","beforeScrollToFocusedItem","scrollToFocusedItem","afterScrollToFocusedItem","ariaActivedescendant","keyHandler","onEscape","processEsc","selectFocusedItem","questionEditFinishCallback","onScroll","setInputStringFromSelectedItem","inputHasValue","addScrollEventListener","removeScrollEventListener","DropdownMultiSelectListModel","_dropdownListModel__WEBPACK_IMPORTED_MODULE_1__","_multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__","_utils_devices__WEBPACK_IMPORTED_MODULE_5__","setHideSelectedItems","syncFilterStringPlaceholder","updateListState","updateState","selectedActions","getSelectedActions","selectedItems","filterStringPlaceholder","selectAllItems","selectNoneItem","deselectItem","onFooterActionsCreated","shouldResetAfterCancel","doneButtonCaption","previousValue","onCancel","removeLastSelectedItem","inputKeyHandler","localizable","_settings__WEBPACK_IMPORTED_MODULE_0__","surveyIOSite","surveyIOMaxPostSize","canSendResult","isSurveJSIOService","sendResultCore","ElementHelper","focusElement","getNextElementPreorder","firstElementChild","getNextElementPostorder","hasHorizontalScroller","hasVerticalScroller","ReleaseDate","checkLibraryVersion","setLicenseKey","slk","hasLicense","_settings__WEBPACK_IMPORTED_MODULE_1__","_helpers__WEBPACK_IMPORTED_MODULE_2__","_validator__WEBPACK_IMPORTED_MODULE_3__","_itemvalue__WEBPACK_IMPORTED_MODULE_4__","_base__WEBPACK_IMPORTED_MODULE_5__","_survey_error__WEBPACK_IMPORTED_MODULE_6__","_survey_element__WEBPACK_IMPORTED_MODULE_7__","_calculatedValue__WEBPACK_IMPORTED_MODULE_8__","_error__WEBPACK_IMPORTED_MODULE_9__","_localizablestring__WEBPACK_IMPORTED_MODULE_10__","_expressionItems__WEBPACK_IMPORTED_MODULE_11__","_choicesRestful__WEBPACK_IMPORTED_MODULE_12__","_functionsfactory__WEBPACK_IMPORTED_MODULE_13__","_conditions__WEBPACK_IMPORTED_MODULE_14__","_expressions_expressions__WEBPACK_IMPORTED_MODULE_15__","_conditionsParser__WEBPACK_IMPORTED_MODULE_16__","_conditionProcessValue__WEBPACK_IMPORTED_MODULE_17__","_jsonobject__WEBPACK_IMPORTED_MODULE_18__","_question_matrixdropdownbase__WEBPACK_IMPORTED_MODULE_19__","_question_matrixdropdowncolumn__WEBPACK_IMPORTED_MODULE_20__","_question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_21__","_question_matrixdropdown__WEBPACK_IMPORTED_MODULE_22__","_question_matrixdynamic__WEBPACK_IMPORTED_MODULE_23__","_question_matrix__WEBPACK_IMPORTED_MODULE_24__","_martixBase__WEBPACK_IMPORTED_MODULE_25__","_question_multipletext__WEBPACK_IMPORTED_MODULE_26__","_panel__WEBPACK_IMPORTED_MODULE_27__","_flowpanel__WEBPACK_IMPORTED_MODULE_28__","_page__WEBPACK_IMPORTED_MODULE_29__","_defaultTitle__WEBPACK_IMPORTED_MODULE_31__","_question__WEBPACK_IMPORTED_MODULE_32__","_questionnonvalue__WEBPACK_IMPORTED_MODULE_33__","_question_empty__WEBPACK_IMPORTED_MODULE_34__","_question_baseselect__WEBPACK_IMPORTED_MODULE_35__","_question_checkbox__WEBPACK_IMPORTED_MODULE_36__","_question_tagbox__WEBPACK_IMPORTED_MODULE_37__","_question_ranking__WEBPACK_IMPORTED_MODULE_38__","_question_comment__WEBPACK_IMPORTED_MODULE_39__","_question_dropdown__WEBPACK_IMPORTED_MODULE_40__","_questionfactory__WEBPACK_IMPORTED_MODULE_41__","_question_file__WEBPACK_IMPORTED_MODULE_42__","_question_html__WEBPACK_IMPORTED_MODULE_43__","_question_radiogroup__WEBPACK_IMPORTED_MODULE_44__","_question_rating__WEBPACK_IMPORTED_MODULE_45__","_question_expression__WEBPACK_IMPORTED_MODULE_46__","_question_textbase__WEBPACK_IMPORTED_MODULE_47__","_question_text__WEBPACK_IMPORTED_MODULE_48__","_question_boolean__WEBPACK_IMPORTED_MODULE_49__","_question_imagepicker__WEBPACK_IMPORTED_MODULE_50__","_question_image__WEBPACK_IMPORTED_MODULE_51__","_question_signaturepad__WEBPACK_IMPORTED_MODULE_52__","_question_paneldynamic__WEBPACK_IMPORTED_MODULE_53__","_surveytimer__WEBPACK_IMPORTED_MODULE_54__","_surveyTimerModel__WEBPACK_IMPORTED_MODULE_55__","_surveyToc__WEBPACK_IMPORTED_MODULE_56__","_surveyProgress__WEBPACK_IMPORTED_MODULE_57__","_progress_buttons__WEBPACK_IMPORTED_MODULE_58__","_survey__WEBPACK_IMPORTED_MODULE_60__","_trigger__WEBPACK_IMPORTED_MODULE_62__","_popup_survey__WEBPACK_IMPORTED_MODULE_63__","_textPreProcessor__WEBPACK_IMPORTED_MODULE_64__","_notifier__WEBPACK_IMPORTED_MODULE_65__","_header__WEBPACK_IMPORTED_MODULE_66__","_dxSurveyService__WEBPACK_IMPORTED_MODULE_67__","_localization_english__WEBPACK_IMPORTED_MODULE_68__","_surveyStrings__WEBPACK_IMPORTED_MODULE_69__","_questionCustomWidgets__WEBPACK_IMPORTED_MODULE_70__","_question_custom__WEBPACK_IMPORTED_MODULE_71__","_stylesmanager__WEBPACK_IMPORTED_MODULE_72__","_list__WEBPACK_IMPORTED_MODULE_73__","_multiSelectListModel__WEBPACK_IMPORTED_MODULE_74__","_popup__WEBPACK_IMPORTED_MODULE_75__","_popup_view_model__WEBPACK_IMPORTED_MODULE_76__","_popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_77__","_popup_modal_view_model__WEBPACK_IMPORTED_MODULE_78__","_popup_utils__WEBPACK_IMPORTED_MODULE_79__","_dropdownListModel__WEBPACK_IMPORTED_MODULE_80__","_dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_81__","_question_buttongroup__WEBPACK_IMPORTED_MODULE_82__","_utils_devices__WEBPACK_IMPORTED_MODULE_83__","_utils_utils__WEBPACK_IMPORTED_MODULE_84__","_mask_mask_base__WEBPACK_IMPORTED_MODULE_85__","_mask_mask_pattern__WEBPACK_IMPORTED_MODULE_86__","_mask_mask_numeric__WEBPACK_IMPORTED_MODULE_87__","_mask_mask_datetime__WEBPACK_IMPORTED_MODULE_88__","_mask_mask_currency__WEBPACK_IMPORTED_MODULE_89__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_90__","_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_91__","_dragdrop_core__WEBPACK_IMPORTED_MODULE_92__","_dragdrop_choices__WEBPACK_IMPORTED_MODULE_93__","_dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_94__","ver","libraryName","_slk","lic","lh","en","c_1","checkPrefix","ds","hn","_chunks_model__WEBPACK_IMPORTED_MODULE_0__","_defaultCss_cssstandard__WEBPACK_IMPORTED_MODULE_1__","_defaultCss_cssmodern__WEBPACK_IMPORTED_MODULE_2__","_svgbundle__WEBPACK_IMPORTED_MODULE_3__","_rendererFactory__WEBPACK_IMPORTED_MODULE_4__","_utils_responsivity_manager__WEBPACK_IMPORTED_MODULE_5__","_actions_action__WEBPACK_IMPORTED_MODULE_7__","_utils_animation__WEBPACK_IMPORTED_MODULE_8__","_actions_adaptive_container__WEBPACK_IMPORTED_MODULE_9__","_actions_container__WEBPACK_IMPORTED_MODULE_10__","_utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__","_core_wo_model__WEBPACK_IMPORTED_MODULE_0__","_survey__WEBPACK_IMPORTED_MODULE_1__","_knockout_kosurvey__WEBPACK_IMPORTED_MODULE_0__","_knockout_koPopupSurvey__WEBPACK_IMPORTED_MODULE_1__","_knockout_kobase__WEBPACK_IMPORTED_MODULE_2__","_knockout_kopage__WEBPACK_IMPORTED_MODULE_3__","_knockout_koflowpanel__WEBPACK_IMPORTED_MODULE_4__","_knockout_koquestion__WEBPACK_IMPORTED_MODULE_5__","_knockout_koquestion_baseselect__WEBPACK_IMPORTED_MODULE_6__","_knockout_koquestion_checkbox__WEBPACK_IMPORTED_MODULE_7__","_knockout_koquestion_tagbox__WEBPACK_IMPORTED_MODULE_8__","_knockout_koquestion_ranking__WEBPACK_IMPORTED_MODULE_9__","_knockout_koquestion_comment__WEBPACK_IMPORTED_MODULE_10__","_knockout_koquestion_dropdown__WEBPACK_IMPORTED_MODULE_11__","_knockout_koquestion_file__WEBPACK_IMPORTED_MODULE_12__","_knockout_koquestion_html__WEBPACK_IMPORTED_MODULE_13__","_knockout_koquestion_matrix__WEBPACK_IMPORTED_MODULE_14__","_knockout_koquestion_matrixdropdown__WEBPACK_IMPORTED_MODULE_15__","_knockout_koquestion_matrixdynamic__WEBPACK_IMPORTED_MODULE_16__","_knockout_koquestion_paneldynamic__WEBPACK_IMPORTED_MODULE_17__","_knockout_koquestion_multipletext__WEBPACK_IMPORTED_MODULE_18__","_knockout_koquestion_radiogroup__WEBPACK_IMPORTED_MODULE_19__","_knockout_koquestion_rating__WEBPACK_IMPORTED_MODULE_20__","_knockout_koquestion_text__WEBPACK_IMPORTED_MODULE_21__","_knockout_koquestion_boolean__WEBPACK_IMPORTED_MODULE_22__","_knockout_koquestion_empty__WEBPACK_IMPORTED_MODULE_23__","_knockout_koquestion_expression__WEBPACK_IMPORTED_MODULE_24__","_knockout_koquestion_imagepicker__WEBPACK_IMPORTED_MODULE_25__","_knockout_templateText__WEBPACK_IMPORTED_MODULE_26__","_knockout_koquestion_image__WEBPACK_IMPORTED_MODULE_27__","_knockout_koquestion_signaturepad__WEBPACK_IMPORTED_MODULE_28__","_knockout_koquestion_custom__WEBPACK_IMPORTED_MODULE_29__","_knockout_koquestion_buttongroup__WEBPACK_IMPORTED_MODULE_30__","_knockout_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_31__","_knockout_components_boolean_checkbox_boolean_checkbox__WEBPACK_IMPORTED_MODULE_32__","_knockout_components_boolean_radio_boolean_radio__WEBPACK_IMPORTED_MODULE_33__","_knockout_components_panel_panel__WEBPACK_IMPORTED_MODULE_34__","_knockout_components_popup_popup__WEBPACK_IMPORTED_MODULE_35__","_knockout_components_progress_buttons__WEBPACK_IMPORTED_MODULE_36__","_knockout_components_progress_progress__WEBPACK_IMPORTED_MODULE_37__","_knockout_components_components_container_components_container__WEBPACK_IMPORTED_MODULE_39__","_knockout_components_title_title_element__WEBPACK_IMPORTED_MODULE_41__","_knockout_components_title_title_content__WEBPACK_IMPORTED_MODULE_42__","_knockout_components_title_title_actions__WEBPACK_IMPORTED_MODULE_43__","_knockout_components_string_editor_string_editor__WEBPACK_IMPORTED_MODULE_44__","_knockout_components_string_viewer_string_viewer__WEBPACK_IMPORTED_MODULE_45__","_knockout_components_logo_image_logo_image__WEBPACK_IMPORTED_MODULE_46__","_knockout_components_skeleton_skeleton__WEBPACK_IMPORTED_MODULE_47__","_knockout_components_character_counter_character_counter__WEBPACK_IMPORTED_MODULE_48__","_knockout_components_rating_dropdown_rating_dropdown__WEBPACK_IMPORTED_MODULE_49__","_knockout_components_rating_rating_item__WEBPACK_IMPORTED_MODULE_50__","_knockout_components_rating_rating_item_star__WEBPACK_IMPORTED_MODULE_51__","_knockout_components_rating_rating_item_smiley__WEBPACK_IMPORTED_MODULE_52__","_knockout_components_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_53__","_knockout_components_dropdown_select_dropdown_select__WEBPACK_IMPORTED_MODULE_54__","_knockout_components_tagbox_tagbox_item__WEBPACK_IMPORTED_MODULE_55__","_knockout_components_tagbox_tagbox__WEBPACK_IMPORTED_MODULE_56__","_knockout_components_file_file_preview__WEBPACK_IMPORTED_MODULE_59__","_knockout_components_list_list__WEBPACK_IMPORTED_MODULE_60__","_knockout_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_61__","_knockout_components_matrix_actions_remove_button_remove_button__WEBPACK_IMPORTED_MODULE_62__","_knockout_components_matrix_actions_detail_button_detail_button__WEBPACK_IMPORTED_MODULE_63__","_knockout_components_matrix_actions_drag_drop_icon_drag_drop_icon__WEBPACK_IMPORTED_MODULE_64__","_knockout_components_button_group_button_group_item__WEBPACK_IMPORTED_MODULE_65__","_knockout_components_survey_actions_survey_nav_button__WEBPACK_IMPORTED_MODULE_66__","_knockout_components_paneldynamic_actions_paneldynamic_actions__WEBPACK_IMPORTED_MODULE_67__","_knockout_components_brand_info_brand_info__WEBPACK_IMPORTED_MODULE_68__","_knockout_components_question_error_question_error__WEBPACK_IMPORTED_MODULE_69__","_knockout_components_notifier_notifier__WEBPACK_IMPORTED_MODULE_70__","_knockout_components_loading_indicator_loading_indicator__WEBPACK_IMPORTED_MODULE_71__","knockout__WEBPACK_IMPORTED_MODULE_73__","survey_core__WEBPACK_IMPORTED_MODULE_74__","_plugins__WEBPACK_IMPORTED_MODULE_1__","_knockout_ui_model__WEBPACK_IMPORTED_MODULE_3__","_plugins_themes_bootstrap_cssbootstrap__WEBPACK_IMPORTED_MODULE_0__","_plugins_themes_bootstrapmaterial_cssbootstrapmaterial__WEBPACK_IMPORTED_MODULE_1__","_plugins_themes_bootstrap_theme_settings__WEBPACK_IMPORTED_MODULE_2__","_plugins_themes_bootstrapmaterial_theme_settings__WEBPACK_IMPORTED_MODULE_3__","EachRowUniqueError","_surveyStrings__WEBPACK_IMPORTED_MODULE_0__","_survey_error__WEBPACK_IMPORTED_MODULE_1__","ExpressionItem","UrlConditionItem","_expressions__WEBPACK_IMPORTED_MODULE_0__","peg$c162","peg$c163","peg$c164","peg$c165","peg$c166","peg$c167","peg$c168","peg$c169","_functionsfactory__WEBPACK_IMPORTED_MODULE_1__","_conditionProcessValue__WEBPACK_IMPORTED_MODULE_2__","isContentEqual","areOperatorsEquals","getIsOperandRequireStrict","bOp","uOp","aOp","cOp","useValueAsItIs","DisableConversionChar","expressionDisableConversionChar","vOp","fOp","countDecimals","plusMinus","digitsA","digitsB","digits","convertValForDateCompare","second","setHours","convertForArithmeticOp","sumAnyValues","correctAfterPlusMinis","correctAfterMultiple","strictCompare","_panel__WEBPACK_IMPORTED_MODULE_1__","textElement","_console_warnings__WEBPACK_IMPORTED_MODULE_2__","getNumber","min_max","isMin","convertToNumber","processItemInArray","needToConvert","birthDate","today","getFullYear","getMonth","isContainerReadyCore","localization","useLocalTimeZone","setUTCHours","setDate","getYear","currentYear","diffDays","date1","date2","diffTime","dateFromFirstParameterOrToday","year","day","weekday","getDay","getQuestionValueByContext","propertyValue","substring_","DomWindowHelper","DomDocumentHelper","isFileReaderAvailable","getVisualViewport","visualViewport","getInnerWidth","getInnerHeight","getWindow","getDocumentElement","getDocument","getCookie","newCookie","activeElementBlur","elt","CoverCell","Cover","_jsonobject__WEBPACK_IMPORTED_MODULE_1__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__","_utils_utils__WEBPACK_IMPORTED_MODULE_3__","positionX","positionY","calcRow","calcColumn","calcAlignItems","calcAlignText","calcJustifyContent","CLASSNAME","hasLogo","logoPositionX","logoPositionY","titlePositionX","titlePositionY","renderedHasDescription","descriptionPositionX","descriptionPositionY","textAreaWidth","calcBackgroundSize","backgroundImageFit","updateHeaderClasses","headerClasses","titleColor","descriptionColor","overlapEnabled","updateContentClasses","surveyWidthMode","calculateWidthMode","inheritWidthFrom","renderedWidth","contentClasses","updateBackgroundImageClasses","backgroundImageClasses","fromTheme","cssVariables","renderBackgroundImage","isMobile","actualHeight","_survey","backgroundImageOpacity","backgroundSize","calculateActualHeight","titleHeight","descriptionHeight","positionsY","logoIndex","titleIndex","descriptionIndex","positionsX","logoIndexX","titleIndexX","descriptionIndexX","heights","total","rowArr","processResponsiveness","logoEl","descriptionEl","isValueObject","trimStrings","compareStrings","digitIndex","isCharDigit","nX","getNumberFromStr","nY","excludeArray","prepareStringToNumber","getRemainingCharacterCounterText","showMaxLengthIndicator","getNumberByIndex","startIndexStr","postfix","strIndex","hasDigit","checkLetter","isCharNotLetterAndDigit","newPostfix","nStr","convertArrayValueToObject","findObjByPropValue","convertArrayObjectToValue","itemVal","convertDateToString","convertDateTimeToString","convertValToQuestionVal","compareVerions","ver1","ver2","ver1Ar","ver2Ar","len1","str1","str2","webpackContext","req","webpackContextResolve","_conditions__WEBPACK_IMPORTED_MODULE_3__","_base__WEBPACK_IMPORTED_MODULE_4__","_actions_action__WEBPACK_IMPORTED_MODULE_6__","_question__WEBPACK_IMPORTED_MODULE_7__","itemType","valIsEmpty","onItemCallBack","isGhost","_locOwner","canSerializeValue","canSerializeVal","canSerializeAsContant","serialization","itemValueSerializeAsObject","itemValueSerializeDisplayText","funcName","componentValue","propertyArray","JsonRequiredArrayPropertyError","JsonIncorrectPropertyValueError","ensureLocString","getLocStringValue","processComputedUpdater","defaultVal","isUniqueValue","classInfoValue","Index","resetAllProperties","uniquePropertyValue","defaultValueFunc","isDefaultValueByObj","getSerializableValue","onSerializeValue","onSettingValue","validateValue","isEnable","getOriginalObj","orjObj","isAvailableInVersion","isAvailableInVersionCore","getSerializedName","getSerializedProperty","dataListValue","schemaType","schemaRef","removeAllProperties","checkIsPropertyExists","isArrayProp","onExecuteExpression","isCustomValue","makeParentRegularClass","fillAllProperties","getAllProperties","allProperties","localProperties","parentProperties","overridedProp","addPropCore","isOverridedProp","hasRegularChildClass","defaultFunc","overridingProperty","uniqueProperty","uniquePropertyName","onPropertyEditorUpdate","dynamicPropsCache","getObjPropertyValue","isObjWrapper","isNeedUseObjWrapper","orignalObj","prop_1","getObjPropertyValueCore","setObjPropertyValue","getDynamicPropertiesByObj","addDynamicPropertiesIntoObj","addDynamicPropertyIntoObj","dynamicType","dType","getDynamicPropertiesByTypes","invalidNames","cacheType","dProp","hasOriginalProperty","getOriginalProperty","newProp","getAllPropertiesByName","getAllClasses","clearDynamicPropsCache","generateSchema","$schema","locstring","generateLocStrClass","generateSchemaProperties","locProp","$id","classSchema","schemaDef","schemaProperties","requiredProps","generateSchemaProperty","oneOf","getChemeRefName","propType","refType","hasChoices","enumRes","enum","getChoicesValues","$ref","generateChemaClass","usedClasses","anyOf","hasParent","chemaProps","allOf","valueToJsonCore","serProp","onSerializingProperty","removePosOnValueToJson","validatePropertyValues","getClassNameForNewObj","posObj","valueRes","addValuesIntoArray","ActionBarItemDropdownViewModel","survey_core__WEBPACK_IMPORTED_MODULE_1__","getTarget","ActionBarItemViewModel","ActionBarSeparatorViewModel","ActionContainerImplementor","_kobase__WEBPACK_IMPORTED_MODULE_1__","_action_bar_item__WEBPACK_IMPORTED_MODULE_3__","_action_bar_item_dropdown__WEBPACK_IMPORTED_MODULE_4__","_action_bar_separator__WEBPACK_IMPORTED_MODULE_5__","handleClick","itemsSubscription","renderedActions","stateItem","CheckboxViewModel","registerRenderer","BooleanRadioItemViewModel","handleChange","booleanValue","BooleanRadioViewModel","_boolean_radio_item__WEBPACK_IMPORTED_MODULE_2__","BrandInfoComponent","ButtonGroupItemViewModel","CharacterCounterComponent","ComponentsContainer","needRenderWrapper","getContainerContent","DropdownSelectViewModel","survey_core__WEBPACK_IMPORTED_MODULE_2__","onKeyUp","dropdownListModel","keyhandler","SurveyNavigationButton","SurveyFilePreview","ListItemViewComponent","itemClick","onItemClick","ListViewComponent","_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__","_list_item__WEBPACK_IMPORTED_MODULE_2__","_implementor","initListContainerHtmlElement","afterItemRender","onLastItemRended","LoadingIndicatorViewModel","LogoImageViewModel","SurveyQuestionMatrixDetailButton","SurveyQuestionMatrixDynamicDragDropIcon","SurveyQuestionMatrixDynamicRemoveButton","NotifierViewModel","PanelViewModel","SurveyQuestionPaneldynamicActioons","addBtnTemplate","nextBtnTemplate","prevBtnTemplate","progressTextTemplate","removeBtnTemplate","getPaneldynamicActionViewModel","PopupViewModel","showModal","showDialog","_kobase__WEBPACK_IMPORTED_MODULE_2__","popupViewModel","visibilityChangedHandler","updateOnShowing","_popupModelImplementor","_popupImplementor","resetComponentElement","onApply","dialogOptions","onVisibilityChangedCallback","COMMENT_NODE","setComponentElement","ProgressButtonsViewModel","canShowFooter","canShowItemTitles","respManager","onResize","onUpdateScroller","onUpdateSettings","showItemTitles","getScrollButtonCss","isLeftScroll","clickScrollButton","listContainerElement","ProgressViewModel","getProgressTextInBarCss","getProgressTextUnderBarCss","getProgressCssClasses","templateBridge","tocModel","QuestionErrorComponent","RatingItemViewComponent","RatingDropdownViewModel","_rating_dropdown_item__WEBPACK_IMPORTED_MODULE_2__","RatingItemSmileyViewModel","RatingItemStarViewModel","RatingItemViewModel","Skeleton","StringEditorViewModel","koHasHtml","searchElement","onInput","editValue","onSearchChanged","getSearchElement","resetLocalizationSpan","applyLocStrOnSearchChanged","highlightDiv","rng","surroundContents","editableRenderer","StringViewerViewModel","SvgIconViewModel","hasIcon","TagboxViewComponent","TagboxViewModel","TemplateRendererComponentName","TitleActionViewModel","getTitleToolbar","TitleContentViewModel","TitleElementViewModel","titleTagName","ariaLabelAttr","titleAriaLabel","hasTitleEvents","dummyNode","PopupSurveyImplementor","PopupSurvey","SurveyWindow","doShowingChanged","changeExpandCollapse","toggleFullScreen","implementor","ImplementorBase","implementedMark","doIterateProperties","koElementType","koElementAfterRender","elementAfterRender","isOnFocus","wasChanged","isContentUpdating","updateContent","deletedName","cps","mutationsList","QuestionRow","PanelImplementorBase","nName","setWrapperElement","rowAfterRender","rowContainerDiv","setRootElement","timer_1","startLazyRendering","stopLazyRendering","isLazyRendering","QuestionImplementor","_koValue","disposedObjects","callBackFunctions","isSynchronizing","setKoValue","getKoValue","setObservaleObj","getTemplateName","setCallbackFunc","koQuestionAfterRender","onMouseDown","addToQuestion","getQuestionTemplate","getNo","updateKoDummy","afterRenderQuestionElement","beforeDestroyQuestionElement","QuestionSelectBaseImplementor","QuestionCheckboxBaseImplementor","_koquestion__WEBPACK_IMPORTED_MODULE_0__","QuestionBoolean","survey_core__WEBPACK_IMPORTED_MODULE_0__","_koquestion__WEBPACK_IMPORTED_MODULE_1__","onSwitchClick","onSwitchClickModel","onTrueLabelClick","onLabelClick","swapOrder","onFalseLabelClick","onKeyDown","onKeyDownCore","QuestionButtonGroup","_koquestion_baseselect__WEBPACK_IMPORTED_MODULE_1__","QuestionCheckboxImplementor","QuestionCheckbox","_koquestion_baseselect__WEBPACK_IMPORTED_MODULE_0__","_selectAllItemImpl","_otherItemImpl","QuestionComment","QuestionCustom","QuestionComposite","questionJSON","onCreateCustom","onCreateComposite","QuestionDropdown","_koquestion_baseselect__WEBPACK_IMPORTED_MODULE_2__","QuestionDropdownImplementor","koDisableOption","QuestionEmpty","QuestionExpression","QuestionFile","_koquestion__WEBPACK_IMPORTED_MODULE_2__","QuestionFileImplementor","koRecalc","koHasValue","getChooseFileCss","chooseButtonText","onDragEnter","onDragLeave","doDownloadFile","onUploadStateChanged","QuestionHtml","QuestionImage","QuestionImagePicker","QuestionImagePickerImplementor","QuestionMatrix","_kobase__WEBPACK_IMPORTED_MODULE_3__","koVisibleRows","koVisibleColumns","QuestionMatrixBaseImplementor","QuestionMatrixDropdown","KoQuestionMatrixDropdownRenderedTable","_tableImplementor","onAddColumn","cellAfterRender","cellQuestionAfterRender","panelAfterRender","afterRenderCore","isAddRowTop","isAddRowBottom","createRenderedRow","isDetailRow","createErrorRenderedRow","QuestionMatrixDynamicImplementor","QuestionMatrixDynamic","_koquestion_matrixdropdown__WEBPACK_IMPORTED_MODULE_2__","getKoPopupIsVisible","addRowUI","isDetailPanelShowing","koMultipleTextEditorModel","MultipleTextItem","QuestionMultipleTextImplementor","QuestionMultipleText","_koquestion_text__WEBPACK_IMPORTED_MODULE_3__","_kobase__WEBPACK_IMPORTED_MODULE_4__","getItemCss","getItemTitleCss","onRowCreated","addDefaultItems","QuestionPanelDynamicImplementor","QuestionPanelDynamic","isPrevButtonVisible","isNextButtonVisible","koRangeValue","visiblePanelCount","getAddButtonCss","getPrevButtonCss","getNextButtonCss","onPanelCountChanged","onRenderModeChanged","onCurrentIndexChanged","QuestionRadiogroup","QuestionRanking","koHandleKeydown","handleKeydown","koHandlePointerDown","handlePointerDown","koHandlePointerUp","handlePointerUp","QuestionRatingImplementor","QuestionRating","QuestionSignaturePad","koOnBlur","QuestionTagbox","isAllSelectedUpdating","koAllSelected","updateAllSelected","QuestionTextImplementor","QuestionText","onCompositionUpdate","inputValue","SurveyImplementor","registerTemplateEngine","_templateText__WEBPACK_IMPORTED_MODULE_2__","replaceText","valueHashGetDataCallback","valueHashSetDataCallback","valueHashDeleteDataCallback","afterRenderHeader","locCompletedHtml","disposeCallback","timerModel","activePage","getHtmlTemplate","ensureSurvey","surveyRoot","unwrapObservable","propValue","surveyTemplateEngine","nativeTemplateEngine","templateDocument","templateElementRoot","templateSources","anonymousTemplate","surveyTemplateEngineInstance","setTemplateEngine","iconsRenderedHtml","SurveyTemplateText","addText","posId","endString","defaultListCss","ListModel","_actions_container__WEBPACK_IMPORTED_MODULE_1__","_actions_action__WEBPACK_IMPORTED_MODULE_2__","_element_helper__WEBPACK_IMPORTED_MODULE_4__","_settings__WEBPACK_IMPORTED_MODULE_6__","searchClearButtonIcon","itemWithIcon","itemTextWrap","itemSeparator","itemsContainer","itemsContainerFiltering","filterIcon","filterInput","emptyContainer","emptyText","isItemDisabled","areSameItems","isItemFocused","getListClass","getItemIndent","INDENT","filterStringInLow","onTextSearchCallback","shouldProcessFilter","onFilterStringChanged","scrollToItem","listContainerHtmlElement","inline","MINELEMENTCOUNT","loadingText","loadingIndicatorValue","goToItems","currentElement","listElement","onMouseMove","onPointerDown","onClickSearchClearButton","focusLastVisibleItem","initFocusedItem","currentFocusedItemIndex","nextItem","prevItem","scrollableContainer","scrollHandler","LocalizableStrings","_base__WEBPACK_IMPORTED_MODULE_3__","_jsonobject__WEBPACK_IMPORTED_MODULE_4__","_survey_element__WEBPACK_IMPORTED_MODULE_5__","_allowLineBreaks","_localizationName","getIsMultiple","searchableText","calcText","dialect","getRootDialect","getLocalizationName","getLocalizationStr","onGetLocalizationTextCallback","getLocaleTextCore","isLocaleTextEqualsWithDefault","clearLocale","getValueLoc","storeDefaultText","storeDuplicatedTranslations","curLoc","curLocale","canRemoveLocValue","fireStrChanged","dl","oldValue_1","dialectVal","localizableStringSerializeAsObject","defaultRenderer","setHtmlValue","SerializeAsObject","useDefault","defLoc","refuseItemText","dontKnowItemText","indexText","panelDynamicTabTextFormat","ratingOptionsCaption","eachRowUniqueError","minError","maxError","noUploadFilesHandler","filePlaceholder","showDetails","hideDetails","multipletext_itemname","savingExceedSize","signaturePlaceHolder","signaturePlaceHolderReadOnly","takePhotoCaption","photoPlaceholder","fileOrPhotoPlaceholder","replaceFileCaption","questionTitlePatternText","modalCancelButtonText","modalApplyButtonText","emptyMessage","noEntriesReadonlyText","more","tagboxDoneButtonCaption","selectToRankEmptyRankedAreaText","selectToRankEmptyUnrankedAreaText","basqueSurveyStrings","croatianStrings","estonianSurveyStrings","hindiStrings","kazakhStrings","macedonianSurveyStrings","malaySurveyStrings","_dutch__WEBPACK_IMPORTED_MODULE_1__","portugueseBrSurveyStrings","serbianStrings","slovakSurveyStrings","swahiliStrings","tajikSurveyStrings","teluguStrings","thaiStrings","vietnameseSurveyStrings","welshSurveyStrings","_question__WEBPACK_IMPORTED_MODULE_1__","_helpers__WEBPACK_IMPORTED_MODULE_4__","updateVisibilityBasedOnRows","hasColumnsChanged","isClearValueOnHidden","clearGeneratedRows","showInvisibile","useColumnsExpression","needResponsiveWidth","getTableCss","showAddRowOnBottom","getCellAriaLabel","rowTitle","columnTitle","InputElementAdapter","inputMaskInstance","prevUnmaskedValue","inputMaskInstancePropertyChangedHandler","maskedValue","getMaskedValue","clickHandler","setSelectionRange","beforeInputHandler","createArgs","processInput","caretPosition","cancelPreventDefault","addInputEventListener","insertedChars","selectionStart","selectionEnd","inputDirection","removeInputEventListener","InputMaskBase","currentValue","getUnmaskedValue","getTextAlignment","InputMaskCurrency","_mask_numeric__WEBPACK_IMPORTED_MODULE_1__","wrapText","prefixValue","suffixValue","unwrapInputArgs","preffixPadding","getDateTimeLexems","InputMaskDateTime","_mask_pattern__WEBPACK_IMPORTED_MODULE_1__","_mask_utils__WEBPACK_IMPORTED_MODULE_2__","getMaxCountLexem","currentLexemType","trimDatePart","lexem","getDefaultYearForValidation","minYear","maxYear","prevLexemType","createOrUpdateLexem","currentChar","upperCase","defaultDate","turnOfTheCentury","twelve","lexems","inputDateTimeData","validBeginningOfNumbers","hour","hourU","minute","updateLiterals","leaveOnlyNumbers","getMaskedStrFromISO","initInputDateTimeData","hasDatePart","inputData","is12Hours","getFormatedString","getISO_8601Format","dateTime","getPlaceholder","isYearValid","minYearPart","maxYearPart","createIDateTimeCompositionWithDefaults","isUpperLimit","getMaxDateForMonth","isDateValid","monthIndex","dateH","lexemLength","paddingsLength","paddings","isDateValid12","dateTime12","timeMarker","updateTimeMarkerInputDateTimeData","tempDateTime","updateInputDateTimeData","firstDigit","validBeginningOfNumber","checkValidationDateTimePart","tempValue","getCorrectDatePartFormat","matchWholeMask","dataStr","zeroPaddings","createIDateTimeComposition","isoMin","isoMax","parseTwoDigitYear","prevSeparator","prevIsCompleted","lastItemWithDataIndex","_matchWholeMask","cleanTimeMarker","setInputDateTimeData","numberParts","numberPartsArrayIndex","currentPart","_getMaskedValue","inputParts","getParts","itemData","lexemsWithValue","separators","curPart","foundSeparator","foundPseudoSeparator","inputChar","idtd","uncompleted","leftPart","rightPart","splitString","InputMaskNumeric","_mask_base__WEBPACK_IMPORTED_MODULE_1__","calccaretPosition","leftPartMaskedLength","displayNumber","parseNumber","validCharIndex","isDeleteKeyOperation","thousandsSeparator","parsedNumber","insertThousandsSeparator","displayIntegralPart","integralPart","displayFractionalPart","fractionalPart","minusSign","isNegative","displayDecimalSeparator","hasDecimalSeparator","decimalSeparator","precision","convertNumber","validateNumber","minusCharCount","inputIndex","allowNegativeValues","getNumberMaskedValue","displayText","getNumberUnmaskedValue","getLiterals","getMaskedValueByPattern","getUnmaskedValueByPattern","InputMaskPattern","_mask_base__WEBPACK_IMPORTED_MODULE_2__","prevCharIsEscaped","definitionsKeys","maskSettings","patternDefinitions","patternEscapeChar","getFirstMatch","literal","currentDefinition","literals","maskIndex","patternPlaceholderChar","skipFixedChar","_getUnmaskedValue","leftPartUnmasked","rightPartUnmasked","numberDefinition","MultiSelectListModel","_list__WEBPACK_IMPORTED_MODULE_1__","setSelectedItems","updateItemState","Notifier","_actions_container__WEBPACK_IMPORTED_MODULE_4__","notifications","lifetime","actionsVisibility","getCssClass","updateActionsVisibility","waitUserAction","isDisplayed","notificationType","_drag_drop_page_helper_v1__WEBPACK_IMPORTED_MODULE_3__","canShowPageNumber","dragDropPageHelper","canShowTitle","navigationLocStrChanged","locNavigationTitle","locNavigationDescription","removeFromParent","canRenderFirstRows","isStartPage","calcCssClasses","rowFadeOutActive","updatePageCssClasses","renderedHasHeader","isStaring","getCssError","els","scrollElementToTop","ensureRowsVisibility","_base__WEBPACK_IMPORTED_MODULE_2__","_survey_element__WEBPACK_IMPORTED_MODULE_3__","_question__WEBPACK_IMPORTED_MODULE_4__","_questionfactory__WEBPACK_IMPORTED_MODULE_5__","_error__WEBPACK_IMPORTED_MODULE_6__","_utils_utils__WEBPACK_IMPORTED_MODULE_8__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__","_drag_drop_panel_helper_v1__WEBPACK_IMPORTED_MODULE_10__","_utils_animation__WEBPACK_IMPORTED_MODULE_11__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_12__","_page__WEBPACK_IMPORTED_MODULE_13__","_scrollableParent","_updateVisibility","visibleElementsAnimation","getVisibleElementsAnimationOptions","getRowId","findScrollableContainer","isRowContainerDivVisible","ensureVisibility","isLazyRenderingValue","animationAllowed","beforeRunAnimation","isAnimationEnabled","getAnimatedElement","getWrapperElement","getLeaveOptions","onBeforeRunAnimation","getEnterOptions","onVisibleChangedCallback","visElements","isSingleInRow","preSetWidthElements","getElementWidth","getRenderedWidthFromWidth","isDefaultV2Theme","parentQuestion","getRenderedCalcWidth","calcWidthEl","getRowCss","showPanelAsPage","rowsAnimation","getRowsAnimationOptions","locCountRowUpdates","onAddRow","onRemoveRow","dragDropPanelHelper","onRowVisibleChanged","isLight","updateDescriptionVisibility","designMode","showEmptyTitles","doDispose","hasDescription","showDescription","showEmptyDescriptions","titlePattern","canRandomize","isRandom","updateRows","includeNested","res2","getNestedQuestions","nQ","getValidName","collectValues","panelData","validateContainerOnly","beforeSettingPanelErrors","getSurveyErrorCustomText","ignoreCollapseState","getStartIndex","getQuestionStartIndex","getProgressInfoByElements","isLazyRenderInRow","blockRowsUpdates","releaseRowsUpdates","updateRowsBeforeElementRemoved","elementRow","elementRowIndex","elementIndexInRow","createRowAtIndex","updateRow","removedElements","targetRowIndex","targetElementIndexInRow","lazyRenderingFirstBatchSize","onHidingContent","getQuestionClearIfInvisible","notifyStateChanged","q_1","getIsContentVisible","resetVisibleIndexes","lastVisibleIndex","beforeSetVisibleIndex","panelStartIndex","getPanelStartIndex","isContinueNumbering","reNew","wasRendered","insertElement","insertElementAfter","insertElementBefore","getQuestionErrorLocation","getTitleOwner","notifySurveyOnVisibilityChanged","setNo","createLocTitleProperty","clearOnDeletingContainer","getFooterToolbar","footerToolbarValue","footerActions","hasEditButton","locEditText","cssNavigationEdit","cancelPreview","onGetFooterActionsCallback","getUpdatedPanelFooterActions","createActionContainer","footerCss","onGetFooterToolbarCssCallback","cancelPreviewByPage","getCssTitle","builder","focusIn","whenPanelFocusIn","getHasFrameV2","getIsNested","originalPage","isShowingPreview","getCssRoot","getContainerCss","defaultCss","checkedPath","uncheckedPath","bootstrapThemeName","bootstrapThemeColors","bootstrapThemeCssRules","_common_theme_settings__WEBPACK_IMPORTED_MODULE_1__","_cssbootstrap__WEBPACK_IMPORTED_MODULE_2__","bootstrapMaterialThemeName","bootstrapMaterialThemeColors","bootstrapMaterialThemeCssRules","_cssbootstrapmaterial__WEBPACK_IMPORTED_MODULE_2__","setMediaStyles","setStyles","PopupDropdownViewModel","_utils_popup__WEBPACK_IMPORTED_MODULE_1__","_popup_view_model__WEBPACK_IMPORTED_MODULE_2__","_utils_devices__WEBPACK_IMPORTED_MODULE_3__","_survey__WEBPACK_IMPORTED_MODULE_5__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__","scrollEventCallBack","isOverlay","hidePopup","resizeEventCallback","resizeWindowCallback","updatePosition","isTablet","touchStartEventCallback","touchMoveEventCallback","preventScrollOuside","onRecalculatePosition","recalculatePositionHandler","calculateIsTablet","windowWidth","windowHeight","tabletSizeBreakpoint","_updatePosition","targetElementRect","popupContainer","containerSelector","fixedPopupContainer","scrollContent","scrollingContentSelector","popupComputedStyle","marginRight","actualHorizontalPosition","getActualHorizontalPosition","heightValues","updateVerticalPosition","popupDirection","calculatePopupDirection","calculatePosition","newVerticalDimensions","getCorrectedVerticalDimensions","newHorizontalDimensions","updateHorizontalDimensions","pointerTarget","calculatePointerTarget","getStyleClass","overlayDisplayMode","getShowHeader","getPopupHeaderTemplate","componentRoot","prevActiveElement","resetDimensionsAndPositionStyleProperties","switchFocus","shouldCreateResizeCallback","_isPositionSetValue","isDelayUpdating","updateOnHiding","onModelChanging","newModel","PopupModalViewModel","_popup_view_model__WEBPACK_IMPORTED_MODULE_0__","onScrollOutsideCallback","getShowFooter","createFooterActionBar","applyButtonText","clickOutside","PopupSurveyModel","onExpandedChanged","updateCss","setCssRoot","isFullScreen","updateCssButton","cssWindow","cssHeader","setCssButton","createPopupModalViewModel","createPopupViewModel","_popup__WEBPACK_IMPORTED_MODULE_1__","_popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_2__","_popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__","initializePopupContainer","FOCUS_INPUT_SELECTOR","PopupBaseViewModel","_actions_container__WEBPACK_IMPORTED_MODULE_3__","_utils_animation__WEBPACK_IMPORTED_MODULE_6__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__","popupSelector","visibilityAnimation","updateIsVisible","onModelIsVisibleChangedCallback","getAnimationContainer","containerElement","createdContainer","footerToolbar","cancelButtonText","updateFooterActions","nullableValue","setupModel","_model","contentComponentName","trapFocus","focusableElements","firstFocusableElement","lastFocusableElement","focusFirstInput","focusContainer","popupMountContainer","overflowY","PopupModel","createDialogOptions","option1","option2","onHide","onShow","refreshInnerModel","innerModel","ProgressButtons","ProgressButtonsResponsivityManager","_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__","_page__WEBPACK_IMPORTED_MODULE_2__","isListElementClickable","showItemNumbers","isFitToSurveyWidth","getListElementCss","clickListElement","tryNavigateToPage","isListContainerHasScroller","isCanShowItemTitles","expectedElementWidth","clearConnectorsWidth","listContainerElements","adjustConnectors","circleWidth","connectorWidth","progressBarInheritWidthFrom","progressBarShowPageNumbers","progressBarShowPageTitles","getItemNumber","renderedNavigationTitle","criticalProperties","prevWidth","_survey_element__WEBPACK_IMPORTED_MODULE_2__","_validator__WEBPACK_IMPORTED_MODULE_4__","_localizablestring__WEBPACK_IMPORTED_MODULE_5__","_conditions__WEBPACK_IMPORTED_MODULE_6__","_questionCustomWidgets__WEBPACK_IMPORTED_MODULE_7__","_rendererFactory__WEBPACK_IMPORTED_MODULE_9__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__","_utils_utils__WEBPACK_IMPORTED_MODULE_11__","_console_warnings__WEBPACK_IMPORTED_MODULE_12__","_conditionProcessValue__WEBPACK_IMPORTED_MODULE_13__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_14__","TriggerExpressionInfo","runSecondCheck","hasCssErrorCallback","dependedQuestions","triggersInfo","allowNotifyValueChanged","addTriggerInfo","setValueIfInfo","runSetValueExpression","checkExpressionIf","updateQuestionCss","clearCssClasses","onMobileChanged","isReadOnlyRenderDiv","commentRenderMode","allowMobileInDesignMode","updateIsMobileFromSurvey","_isMobile","themeChanged","getDefaultTitle","onGetSurvey","updateIsReady","getIsQuestionReady","getIsReadyDependsOn","setIsReady","getAreNestedQuestionsReady","getIsReadyNestedQuestions","getIsReadyDependends","getIsReadyDependendCore","isDependOn","questionsByValueName","resetDependedQuestions","addDependedQuestion","removeDependedQuestion","updateDependedQuestions","updateDependedQuestion","resetDependedQuestion","notifySurveyVisibilityChanged","updateIsVisibleProp","getUseDisplayValuesInDynamicTexts","areEmptyElementsHidden","isVisibleCore","ensureSetValueExpressionRunner","setValueExpressionRunner","setValueExpression","runTriggerInfo","runTriggers","isSettingQuestionValue","questionCreated","calcRenderedCommentPlaceholder","getIsTitleRenderedAsString","notifySurveyOnChildrenVisibilityChanged","isClearOnHidden","clearValueOnHidding","isVisibleInSurvey","getErrorLocation","errorLocation","getChildErrorLocation","getDefaultTitleValue","getDefaultTitleTagName","titleTags","needClickTitleFunction","processTitleClick","commentPlaceHolder","getErrorByType","localeChangedCallback","updateCommentElements","commentElements","onCommentInput","onCommentChange","hasSingleInput","afterRenderQuestionInput","afterRenderQuestionCallback","getCommentElementsId","checkForResponsiveness","commentId","onUpdateCssClassesCallback","ensureElementCss","hasCssError","setCssHeader","getCssHeader","supportContainerQueries","setCssContent","getCssContent","setCssTitle","setCssDescription","getCssDescription","showErrorOnCore","showErrorsAboveQuestion","showErrorsBelowQuestion","showErrorsOutsideQuestion","setCssError","showErrorOnTop","showErrorOnBottom","cssRoot","isReadOnlyStyle","isDisabledStyle","isPreviewStyle","getQuestionRootCss","updateElementCssCore","getCssType","titleBuilder","rootBuilder","scrollIfVisible","shouldChangePage","focusQuestionByInstance","focuscore","expandAllParents","isContainer","whenQuestionFocusIn","isPareQuestionReadOnly","forceIsInputReadOnly","surveyChoiceItemVisibilityChange","isValueChangedDirectly","defaultValueRunner","getDefaultRunner","runDefaultValueExpression","calcNo","getUpdatedQuestionNo","allowResizeComment","getFilteredValue","getFilteredName","valueToDataCallback","setValueChangedDirectly","unbindValue","initDataUI","isValueSurveyElement","clearIf","getClearIfInvisible","clearValueIfInvisibleCore","calcDisplayValue","getQuestionDisplayValue","displayValueCallback","allowSpaceAsAnswer","getDisplayValueEmpty","isValueExpression","convertDefaultValue","includeQuestionTypes","getPlainDataCalculatedValue","checkIfAnswerCorrect","getAnswerCorrectIgnoreOrder","correct","onCorrectQuestionAnswer","isContentElement","setDefaultValueCore","setValueAndRunExpression","setFunc","runExpressionSetValue","convertFuncValuetoQuestionValue","isChangingViaDefaultValue","getQuestionComment","trimmedValue","setQuestionComment","getCommentAreaCss","isOther","oldVal","classValidators","supportedValidators","collectNestedQuestions","collectNestedQuestionsCore","isOnValueChanged","newError","addCustomError","canCollectErrors","enableValidation","canRunValidators","isOldAnswered","onUpdateErrorTextCallback","isNewValueEqualsToValue","checkIsValueCorrect","isNewValueCorrect","isObj","canSetValueToSurvey","valueForSurvey","isMouseDown","convertToCorrectValue","setCommentIntoData","makeNameValid","valueFromDataCallback","updateValueFromSurveyCore","viaDefaultVal","onChangeQuestionValue","setValueChangedDirectlyCallback","isParentChangingViaDefaultValue","includeQuestionsWithHiddenTitle","includeQuestionsWithHiddenNumber","supportGoNextPageError","getRendererByQuestion","isDefaultRendering","processPopupVisiblityChanged","onTextKeyDownHandler","transformToMobileView","transformToDesktopView","supportResponsiveness","needResponsiveness","initResponsiveness","getObservedElementSelector","onMobileChangedCallback","triggerResponsiveness","hard","triggerResponsivenessCallback","destroyResizeObserver","scrollableSelector_1","defaultRootEl","isProcessed_1","requiredWidth_1","resizeObserver","ResizeObserver","getCompactRenderAs","getDesktopRenderAs","requiredWidth","availableWidth","round","oldRenderAs","isNewA11yStructure","ariaTitleId","ariaDescriptionId","numberingAllowedByParent","_question__WEBPACK_IMPORTED_MODULE_2__","_itemvalue__WEBPACK_IMPORTED_MODULE_3__","_surveyStrings__WEBPACK_IMPORTED_MODULE_4__","_error__WEBPACK_IMPORTED_MODULE_5__","_choicesRestful__WEBPACK_IMPORTED_MODULE_6__","_conditions__WEBPACK_IMPORTED_MODULE_7__","_helpers__WEBPACK_IMPORTED_MODULE_8__","isRunningChoices","isUpdatingChoicesDependedQuestions","headItemsCount","footItemsCount","prevIsOtherSelected","createDefaultItem","refuseItemValue","dontKnowItemValue","setNewRestfulProperty","hasChoicesUrl","getQuestionWithChoices","otherId","carryForwardQuestionType","setCarryForwardQuestionType","selBaseQuestion","arrayQuestion","updateIsUsingRestful","otherValue","otherValueCore","setOtherValueInternally","getIsItemValue","prevOtherValue","prevComment","setOtherValueIntoValue","getIsMultipleValue","onEnableItemCallBack","onAfterRunItemsEnableCondition","onSelectedItemValuesChangedHandler","loadedChoicesFromServer","getItemIfChoicesNotContainThisValue","waitingChoicesByURL","getSingleSelectedItem","selectedItemValues","onGetSingleSelectedItem","updateSelectedItemValues","selectedItemByValue","getMultipleSelectedItems","canSurveyChangeItemVisibility","canChangeChoiceItemsVisibility","changeItemVisibility","getChoiceItemVisibility","calcVisibility","getFilteredChoices","createRestful","selectOtherValueFromComment","onUpdateCommentOnAutoOtherMode","updateChoicesDependedQuestions","autoOtherMode","updateComment","oldOtherValue","makeCommentEmpty","needConvertRenderedOtherToDataValue","waitingGetChoiceDisplayValueResponse","valueArray","hasItemWithoutValues","getChoiceDisplayValue","displayValues","customValues","setCustomValuesIntoItems","customValue","vals","isFilteredChoices","checkEmptyValue","hasUnknownValueItem","showRefuseItem","refuseItem","showDontKnowItem","dontKnowItem","isLockVisibleChoices","isAddDefaultItems","setCanShowOptionItemCallback","canShowOptionItemCallback","newItemValue","isAddAll","isEmptyActiveChoicesInDesign","addNewItemToVisibleChoices","dict","addNonChoicesItems","isUsingCarryForward","canShowOptionItem","supportNone","addNonChoiceItem","specialChoicesOrder","supportRefuse","supportDontKnow","showItem","hasItem","calc","isItemInList","showDefaultItemsInCreatorV2","selItem","getDisplayArrayValue","onGetValueCallback","getItemDisplayValue","getCarryForwardQuestion","getChoicesFromSelectQuestion","getChoicesFromArrayQuestion","isMessagePanelVisible","findCarryForwardQuestion","getQuestionWithChoicesCore","getQuestionWithArrayValue","carryForwardQuestion","findQuestionByName","getValueKeyName","choiceTextsFromQuestion","choiceValuesFromQuestion","isBuiltInChoice","itemsSelected","copyChoiceItem","isNoneItem","getNoneItems","isSupportProperty","otherEmptyError","setSurveyCore","chQuestion","newComment","getCommentFromValue","onOtherValueInput","onOtherValueChange","disableQuestionWhileLoadingChoices","setChoicesFromUrl","canAvoidSettChoicesFromUrl","chocesAreEmpty","visibleChoicesChangedCallback","superVal","hasValueToClearIncorrectValues","canClearIncorrectValues","isItemSelectedCore","canClearValueAnUnknown","getItemClassCore","updateChoiceItemCss","getCurrentColCount","readOnlyStyles","getIsDisableAndReadOnlyStyles","isNone","hasHeadItems","hasFootItems","dataChoices","headItems","footItems","choicesToBuildColumns","showItemsInOrder","prevIndex","leftElementsCount","loadedChoicesFromServerCallback","getItemValueWrapperComponentName","getItemValueWrapperComponentData","ariaItemChecked","isOtherItem","getSelectBaseRootCss","rowLayout","getAriaItemLabel","getItemId","getItemEnabled","focusOtherComment","commentEl","getDefaultItemComponent","onParentQuestionChanged","checkCopyPropVisibility","_questionfactory__WEBPACK_IMPORTED_MODULE_0__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_5__","setBooleanValue","booleanValueRendered","updateThumbMargin","isLabelRendered","leftAnswerElement","thumbMargin","isDefaultValueSet","defaultValueCheck","valueTrueOrFalse","getItemCssValue","isDeterminated","getCheckboxItemCss","itemDisable","getLabelCss","svgIconId","getCheckedLabel","allowClick","calculateBooleanValueByEvent","isRightClick","offsetX","getRadioItemClass","ButtonGroupItemValue","QuestionButtonGroupModel","ButtonGroupItemModel","_question_baseselect__WEBPACK_IMPORTED_MODULE_2__","caption","_questionfactory__WEBPACK_IMPORTED_MODULE_1__","_helpers__WEBPACK_IMPORTED_MODULE_3__","invisibleOldValues","isChangingValueOnClearIncorrect","noneItems","getVisibleEnableItems","rVal","getRealValue","clickItemHandler","visChoices","allChoices","defaultSelectedItemValues","validateItemValues","selectedChoices","hasFilteredValue","minSelectedChoices","checkMinSelectedChoicesUnreached","updateSelectAllItemProps","shouldCheckMaxSelectedChoices","getSelectAllEnabled","isSelectAllItem","addIntoInvisibleOldValues","removeNoneItemsValues","getFirstUnknownIndex","noneValues","prevNone","newNone","prevNewNone","convertValueToObject","supportSelectAll","valuePropName","restoredValues","restoreValuesFromInvisible","rItemVal","isUnkown","visItems","convertValueFromObject","hasActiveChoices","rendVal","_question_textbase__WEBPACK_IMPORTED_MODULE_2__","allowResize","renderedAllowResize","updateElement","updateRemainingCharacterCounter","onKeyDownPreprocess","getValueSeparator","getControlClass","ComponentQuestionJSON","ComponentCollection","QuestionCustomModelBase","QuestionCustomModel","QuestionCompositeModel","_question__WEBPACK_IMPORTED_MODULE_0__","_textPreProcessor__WEBPACK_IMPORTED_MODULE_4__","_console_warnings__WEBPACK_IMPORTED_MODULE_7__","onInit","onLoaded","onAfterRender","onAfterRenderContentElement","onGetErrorText","defaultQuestionTitle","setValueToQuestion","converter","valueToQuestion","getValueFromQuestion","valueFromQuestion","elementsJSON","createElements","calcDynamicProperties","baseProps","inheritBaseProps","props_1","customQuestionValues","getCustomQuestionByName","customQuestion","onAddingJson","isComposite","getCustomQuestionIndex","removeByIndex","includeInternal","internal","createCompositeModel","createCustomModel","CreateDisabledDesignElements","locQuestionTitle","createWrapper","getElement","initElement","isSettingValOnLoading","getSurveyData","convertDataName","convertDataValue","getContentDisplayValueCore","questionWrapper","createDynamicProperties","getDynamicProperty","contentQuestion","hasJSONTitle","checkCreatedQuestion","getContentQuestionValue","setContentQuestionValue","isSettingValueChanged","QuestionCompositeTextProcessor","contentPanel","settingNewValue","textProcessing","createPanel","setAfterRenderCallbacks","setIsContentElement","getContentPanelValue","oldComposite","setNewValueIntoQuestion","maxTimes","updateValueCoreWithPanelValue","runPanelTriggers","getValueForContentPanel","setValuesIntoQuestions","oldSettingNewValue","_dropdownListModel__WEBPACK_IMPORTED_MODULE_4__","lastSelectedItemValue","onOpened","updateReadOnlyText","isNoneSelected","selectedItemText","selectedItemLocText","canShowSelectedItem","dropdownListModelValue","getInputId","_questionfactory__WEBPACK_IMPORTED_MODULE_3__","createRunner","updateFormatedValue","runIfReadOnly","roundValue","runIfReadOnlyValue","getExpressionDisplayValue","dataUrl2File","QuestionFileModelBase","FileLoader","_questionfactory__WEBPACK_IMPORTED_MODULE_2__","_error__WEBPACK_IMPORTED_MODULE_4__","_actions_container__WEBPACK_IMPORTED_MODULE_7__","_actions_action__WEBPACK_IMPORTED_MODULE_8__","_helpers__WEBPACK_IMPORTED_MODULE_9__","_utils_camera__WEBPACK_IMPORTED_MODULE_10__","_settings__WEBPACK_IMPORTED_MODULE_11__","atob","arg1","setValueFromResult","isDragging","fileNavigator","canFlipCameraValue","prevPreviewLength","calcAvailableItemsCount","itemWidth","gap","itemsCount","dragCounter","canDragDrop","clearFilesCore","fileIndexAction","getFileIndexCaption","prevFileAction","indexToShow","pagesCount","nextFileAction","takePictureAction","locTakePhotoCaption","snapPicture","closeCameraAction","stopVideo","changeCameraAction","canFlipCamera","flipCamera","chooseFileAction","startCameraAction","startVideo","cleanAction","locClearButtonCaption","isPlayingVideo","containsMultipleFiles","containsMultiplyFiles","needToShowFileNavigator","pageSize","currentMode","setIsPlayingVideo","startVideoInCamera","camera","videoId","videoStream","closeVideoStream","blobCallback","snap","canFlip","flip","getTracks","track","updateFileNavigator","previewValueChanged","calculatedGapBetweenItems","calculatedItemWidth","_width","isPreviewVisible","isFileNavigatorVisible","fileNavigatorVisible","confirmRemoveMessage","locRenderedPlaceholderValue","renderedPlaceholder","hasFileUI","sourceType","hasVideoUI","locNoFileChosenCaption","locFileOrPhotoPlaceholder","locFilePlaceholder","locPhotoPlaceholder","updateCurrentMode","hasCamera","loadingFileTitle","chooseFileTitle","replaceButtonCaption","allowCameraAccess","showLoadingIndicator","isShowLoadingIndicator","showRemoveButtonCore","removeFileByContent","cameraValue","loadPreview","_previewLoader","isFileLoading","loaded","isFileLoadingValue","getImageWrapperCss","getActionsContainerCss","actionsContainerAnswered","getRemoveButtonCss","getReadOnlyFileCss","getFileDecoratorCss","getFileListSelector","fileListSelector","fileListElement","firstVisibleItem","removeFileCore","previewIndex","fileQuestion","downloadedCount","_questionnonvalue__WEBPACK_IMPORTED_MODULE_0__","ignoreHtmlProgressing","QuestionImageModel","youtubeTags","videoSuffics","youtubeUrl","youtubeEmbed","isUrlYoutubeVideo","locImageLink","getCorrectImageLink","calculateRenderedMode","getImageCss","imageHeightProperty","imageWidthProperty","isDefaultSize","onLoadHandler","contentNotLoaded","onErrorHandler","setRenderedMode","isYoutubeVideo","isVideo","ImageItemValue","_global_variables_utils__WEBPACK_IMPORTED_MODULE_8__","imageNotLoaded","videoNotLoaded","isResponsiveValue","onContentLoaded","videoWidth","videoHeight","naturalWidth","naturalHeight","calcIsResponsive","imageItemValue","convertValToArrayForMultSelect","isResponsive","responsiveImageHeight","responsiveImageWidth","exactSizesAreEmpty","responsiveColCount","calcAvailableColumnsCount","itemsInRow","width_1","gapBetweenItems","maxHeight","minHeight","availableColumnsCount","height_1","MIN_VALUE","tempHeight","oldResponsiveImageWidth","oldResponsiveImageHeight","reCalcGapBetweenItemsCallback","observedElement","MatrixCells","_martixBase__WEBPACK_IMPORTED_MODULE_2__","_questionfactory__WEBPACK_IMPORTED_MODULE_7__","_localizablestring__WEBPACK_IMPORTED_MODULE_8__","_question_dropdown__WEBPACK_IMPORTED_MODULE_9__","_settings__WEBPACK_IMPORTED_MODULE_10__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__","setValueDirectly","hasErrorInRow","getCorrectedRowValue","valuesChanged","onValuesChanged","defaultRowName","updateHasCellText","eachRowUnique","cellTextReadOnly","cellTextPreview","rowsErrors","noValue","isNotUnique","checkErrorsAllRows","modifyErrors","allRowsRequired","rowsRequired","rowsUnique","errorsInRow","addErrorIntoRow","refreshRowsErrors","getColumnHeaderWrapperComponentName","getElementWrapperComponentName","getColumnHeaderWrapperComponentData","getElementWrapperComponentData","getRowHeaderWrapperComponentName","getRowHeaderWrapperComponentData","_question_matrixdropdownbase__WEBPACK_IMPORTED_MODULE_0__","getRowTitleWidth","getConditionObjectRowName","getConditionObjectRowText","getConditionObjectsRowIndeces","updateProgressInfoByValues","updateProgressInfoByRow","_martixBase__WEBPACK_IMPORTED_MODULE_1__","_survey_element__WEBPACK_IMPORTED_MODULE_4__","_textPreProcessor__WEBPACK_IMPORTED_MODULE_5__","_itemvalue__WEBPACK_IMPORTED_MODULE_6__","_functionsfactory__WEBPACK_IMPORTED_MODULE_8__","_error__WEBPACK_IMPORTED_MODULE_10__","_question_matrixdropdowncolumn__WEBPACK_IMPORTED_MODULE_12__","_question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_13__","_utils_utils__WEBPACK_IMPORTED_MODULE_14__","updateCellQuestionTitleDueToAccessebility","getAccessbilityText","getQuestionWrapperClassName","alignment","totalAlignment","MatrixDropdownRowTextProcessor","parentTextProcessor","getParentTextProcessor","getValues","onCustomProcessText","RowValueVariableName","detailPanelValue","isCreatingDetailPanel","subscribeToChanges","showHideDetailPanelClick","showHideDetailPanel","getCellValue","hasDetailPanel","detailPanel","getIsDetailPanelShowing","setIsDetailPanelShowing","onDetailPanelShowingChanged","hideDetailPanel","showDetailPanel","ensureDetailPanel","destroyPanel","hasPanel","createRowDetailPanel","editingObj","validationValues","newProps","updateQuestionsValue","changedName","isValidateOnValueChanging","hasQuestonError","isDeleting","colQuestion","detailQuestion","isColQuestion","getCellByColumnName","checkIfValueInRowDuplicated","getCellByColumn","detailQuestions","getQuestionsByName","totalsSuffix","updateCellQuestionOnColumnItemValueChanged","updateCellOnColumnItemValueChanged","panelHasError","hideErroredPanel","isSingleDetailPanel","cellValue","commentKey","val1","editingObjValue","onEditingObjPropertyChanged","updateOnSetValue","createNewDetailPanel","isInteractiveDesignElement","updateColumnsAndRows","clearRowsAndResetRenderedTable","defaultCellType","matrixColumnAdded","onRemoveColumn","beginUpdate","endUpdate","transposeData","errLocation","detailErrorLocation","cellErrorLocation","isUniqueCaseSensitiveValue","pointerDownEvent","isUpdateLocked","onCellCreatedCallback","onColumnPropertyChanged","onColumnItemValuePropertyChanged","onShowInMultipleColumnsChanged","resetTableAndRows","onColumnVisibilityChanged","onColumnCellTypeChanged","getAddRowLocation","getShowColumnsIfEmpty","updateShowTableAndAddRow","getCustomCellType","matrixCellCreating","runFuncForCellQuestions","prevTotalValue","checkColumnsRenderedRequired","isFilteredMultipleColumns","updateIsRenderedRequired","isColumnVisible","isMultipleColumnsVisibility","curVisibleChoices","getVisibleChoicesInCell","newVisibleChoices","updateNewVisibleChoices","setVisibleChoicesInCell","IsMultiplyColumn","isShowInMultipleColumns","columnWidthsByType","checkedRow","isUniqueCaseSensitive","addDuplicationError","getRowObj","displayvalue","prevData","dataName","rowsIndeces","hasQuestionPrefix","dot","collectNestedQuestonsInRows","getCellQuestions","errosInRows","getUniqueColumns","isValueInColumnDuplicated","keyError","setParentQuestion","inMatrixMode","onCellValueChangedCallback","cellValueChangingCallback","rowObj","columnValue","onHasDetailPanelCallback","updateDetailPanelButtonCss","onDetailPanelChangeVisibility","matrixDetailPanelVisibleChanged","getDetailPanelButtonCss","getDetailPanelIconCss","getDetailPanelIconId","isPanelShowing","iconBuilder","buttonBuilder","onCreateDetailPanelCallback","isSett","getCellTemplateData","getMatrixCellTemplateData","getCellWrapperComponentName","getCellWrapperComponentData","_question_expression__WEBPACK_IMPORTED_MODULE_2__","onUpdateSelectDropdownCellQuestion","locPlaceholder","previousChoicesId","doShowInMultipleColumnsChanged","doColumnVisibilityChanged","getClassNameProperty","setParentQuestionToTemplate","getVisibleMultipleChoices","_visiblechoices","isRenderedRequired","resetValueIf","setValueIf","isSupportMultipleColumns","callOnCellQuestionUpdate","onUpdateJson","getDefaultCellQuestionType","newCellType","doItemValuePropertyChanged","isEditableTemplateElement","QuestionMatrixDropdownRenderedErrorRow","_actions_action__WEBPACK_IMPORTED_MODULE_3__","_actions_adaptive_container__WEBPACK_IMPORTED_MODULE_4__","_actions_container__WEBPACK_IMPORTED_MODULE_6__","colSpans","isActionsCell","isErrorsCell","isDragHandlerCell","isDetailRowCell","classNameValue","hideCaption","isChoice","isOtherChoice","isItemChoice","choiceIndex","locCellHint","calculateFinalClassName","matrixCssClasses","questionCss","hasEndActions","isErrorsRow","isAdditionalClasses","errorRow","onAfterCreated","hasVisibleErrors","renderedRowsChangedCallback","_renderedRows","renderedRowsAnimation","getRenderedRowsAnimationOptions","hasActionCellInRowsValues","beforeAnimationRun","updateRenderedRows","isRowsDragAndDrop","buildRowsActions","showTable","showAddRow","showAddRowOnTop","getRenderedDataRowCount","getRenderedRowIndexByIndex","rowsActions","buildRowActions","addHorizontalRow","dataRowIndex","getRenderedRowIndex","removeCount","showCellErrorsBottom","showCellErrorsTop","panelRowIndex","createDetailPanelRow","hasActionCellInRows","createMutlipleColumnsHeader","setHeaderCellCssClasses","cell_1","createMutlipleColumnsFooter","editCell","setHeaderCellWidth","hasActionsCellInLocaltion","getRowActions","useAsHeader","createErrorRow","getRowDragCell","getActionsCellClassName","classBuilder","getRowActionsCell","rowActions","actionContainer","setDefaultRowActions","getUpdatedMatrixRowActions","renderRemoveAsIcon","showRemoveButtonAsIcon","isFirstChoice","createErrorCell","createEmptyCell","addRowActionsCell","renderedCell","createMutlipleEditCells","panelFullWidth","buttonCell","onCreateDetailPanelRenderedRowCallback","createMutlipleVerticalRows","createEndVerticalActionRow","getMultipleColumnChoices","lTitle","hCell","rChoice","rChoiceIndex","rCell","rRow","isFooter","setItemCellCssClasses","radioCell","isRadio","checkboxCell","isCheckbox","setHeaderCell","_question_matrixdropdownbase__WEBPACK_IMPORTED_MODULE_2__","_dragdrop_matrix_rows__WEBPACK_IMPORTED_MODULE_6__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__","_question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_8__","_utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_9__","questionValue1","questionValue0","initialRowCount","setRowCountValueFromData","startDragMatrixRow","dragDropMatrixRows","draggedRow","locAddRowText","defaultAddRowText","dragOrClickHelper","isBanStartDrag","isDragHandleAreaValid","matrixDragHandleArea","movableRow","getValueForNewRow","onGetValueForNewRowCallBack","QuestionMatrixDynamicRenderedTable","canRemoveRowsCallback","getQuestionToFocusOnAddingRow","setFocus","oldRowCount","newAllow","removeRowAsync","matrixRowRemoving","maxRowCountInCondition","hasErrorInMinRows","getInsertedDeletedIndex","isEditingObjectValueChanged","lastDelRow","lastDeletedRow","isRendredTableCreated","getAddRowButtonCss","isEmptySection","getRemoveRowButtonCss","MultipleTextEditorModel","MutlipleTextRow","MutlipleTextErrorRow","MultipleTextCell","MultipleTextErrorCell","_survey_element__WEBPACK_IMPORTED_MODULE_1__","_question_text__WEBPACK_IMPORTED_MODULE_3__","_helpers__WEBPACK_IMPORTED_MODULE_6__","maskType","inputTextAlignment","multipleTextItemAdded","calcVisibleRows","updateItemsSize","DefaultMutlipleTextItems","performForEveryEditor","updateInputSize","itemErrorLocation","showItemErrorOnTop","itemName","getItemLabelCss","showItemErrorOnBottom","inputTypes","_localizablestring__WEBPACK_IMPORTED_MODULE_2__","_textPreProcessor__WEBPACK_IMPORTED_MODULE_3__","_jsonobject__WEBPACK_IMPORTED_MODULE_5__","_questionfactory__WEBPACK_IMPORTED_MODULE_6__","_error__WEBPACK_IMPORTED_MODULE_7__","_utils_utils__WEBPACK_IMPORTED_MODULE_9__","_actions_action__WEBPACK_IMPORTED_MODULE_11__","_base__WEBPACK_IMPORTED_MODULE_12__","_actions_adaptive_container__WEBPACK_IMPORTED_MODULE_13__","_utils_animation__WEBPACK_IMPORTED_MODULE_14__","QuestionPanelDynamicItemTextProcessor","panelItem","sharedQuestions","getVisibleItemIndex","qName","getQuestionDisplayText","VisibleIndexVariableName","visiblePanelIndex","ParentItemVariableName","oldItemData","triggerName","indexStr","visibleIndexStr","_renderedPanels","isPanelsAnimationRunning","isSetPanelItemData","updateNoEntriesTextDefaultLoc","visiblePanelsCore","useTemplatePanel","panelsCore","locTemplateTabTitle","buildPanelsFirstTime","canBuildPanels","onPanelRemovedCore","addTabFromToolbar","updateRenderedPanels","visPanels","removeTabFromToolbar","curPanel","updateTabToolbarItemsPressedState","dynamicPanelCurrentIndexChanged","visiblePanels","panelsAnimation","getPanelsAnimationOptions","getDirectionCssClass","isRemoving","leavingPanel","leavingPanelIndex","removedPanelIndex","focusNewPanelCallback","cssContent","contentSelector","scolledElement","ScrollElementToViewCore","disablePanelsAnimations","enablePanelsAnimations","updatePanelsAnimation","_panelsAnimations","isTempUpdate","focusNewPanel","wasNotRenderedInSurvey","isRenderModeTab","additionalTitleToolbar","getAdditionalTitleToolbarCss","onSurveyNumbering","legacyNavigation","newPanelPosition","updateTabToolbar","canLeaveCurrentPanel","updateValueOnAddingPanel","isRequireConfirmOnDelete","getVisualPanelIndex","visIndex","dynamicPanelRemoving","getPanelIndexById","iscorrectValueWithPostPrefix","postPrefix","maxPanelCountInCondition","hasPanelBuildFirstTime","isBuildingPanelsFirstTime","clearValueInPanelsIfInvisible","panelReason","maxCheckCount","getPanelActions","templateErrorLocation","settingPanelCountBasedOnValue","isAllPanelsEmpty","getShowNoEntriesPlaceholder","showTab","getPanelWrapperCss","getPanelRemoveButtonCss","getAdditionalTitleToolbar","additionalTitleToolbarValue","initFooterToolbar","updateFooterActionsCallback","prevTextBtn","nextTextBtn","addBtn","prevBtnIcon","nextBtnIcon","isLegacyNavigation","showNavigation","showLegacyNavigation","createTabByPanel","visPanelIndex","dynamicPanelGetTabTitle","this_1","removedItem","showSeparator","getDefaultTitleActions","clearAction","QuestionRankingModel","_dragdrop_ranking_choices__WEBPACK_IMPORTED_MODULE_0__","_dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_1__","_questionfactory__WEBPACK_IMPORTED_MODULE_4__","_question_checkbox__WEBPACK_IMPORTED_MODULE_5__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__","_utils_devices__WEBPACK_IMPORTED_MODULE_7__","_src_settings__WEBPACK_IMPORTED_MODULE_9__","_utils_animation__WEBPACK_IMPORTED_MODULE_10__","carryForwardStartUnranked","updateRankingChoicesSync","addToValueByVisibleChoices","removeFromValueByVisibleChoices","_rankingChoicesAnimation","getChoicesAnimation","_unRankingChoicesAnimation","isDragStartNodeValid","allowStartDrag","canStartDragDueMaxSelectedChoices","canStartDragDueItemEnabled","draggedChoise","draggedTargetNode","dragDropRankingChoices","handleKeydownSelectToRank","handleArrowKeys","isDown","focusItem","itemsNodes","setDragDropRankingChoices","getItemTabIndex","isMobileMode","rankingDragHandleArea","renderedSelectToRankAreasLayout","unrankedItemIndex","isDrop","getContainerClasses","containerType","isToContainer","isFromContainer","isItemCurrentDropTarget","ghostPosition","dragDropGhostPositionTop","dragDropGhostPositionBottom","getItemIndexClasses","noNumber","isRankingChoices","updateRankingChoicesSelectToRankMode","newRankingChoices","rankingChoice","createDragDropRankingChoices","checkMaxSelectedChoicesUnreached","movedElement","hardKey","isNeedFocus","dnd","isMovedElementRanked","setValueAfterKeydown","getIconHoverCss","getIconFocusCss","selectToRankAreasLayout","dragDropSvgIconId","arrowsSvgIconId","dashSvgIconId","RenderedRatingItem","_base__WEBPACK_IMPORTED_MODULE_7__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_10__","onStringChangedCallback","RatingItemValue","_syncPropertiesChanging","createRenderedRateItems","setIconsToRateValues","updateRateCount","registerSychProperties","autoGenerate","updateColors","themeVariables","updateRateMax","initPropertyDependencies","getItemSmiley","hasMinRateDescription","hasMaxRateDescription","rateCount","updateRateMin","useRateValues","newCount","rateDisplayMode","getRGBColor","colorName","varName","canvasElement","newStr","colorMode","colorsCalculated","badColor","normalColor","goodColor","badColorLight","normalColorLight","goodColorLight","renderedRateItems","createRateValues","renderedItem","fr","isStar","isSmiley","setValueFromClick","onItemMouseIn","high","onItemMouseOut","rateSize","baseClassModifier","rootClassModifier","hasMaxLabel","hasMinLabel","itemSmallMode","itemStarIcon","selectedPriority","selectedIcons","getItemSmileyIconName","getItemClassByText","getRenderedItemColor","light","startColor","endColor","normalIndex","middleColor","curColor","getItemStyle","scaleColorMode","rateColorMode","borderColor","colorLight","isHighlighted","isUnhighlighted","itemSelectedClass","itemDisabledClass","itemReadOnlyClass","itemPreviewClass","itemitemOnErrorClass","itemHighlightedClass","itemUnhighlightedClass","itemScaleColoredClass","itemRateColoredClass","itemSmallClass","hasFixedSize","QuestionSignaturePadModel","signature_pad__WEBPACK_IMPORTED_MODULE_2__","_console_warnings__WEBPACK_IMPORTED_MODULE_4__","_question_file__WEBPACK_IMPORTED_MODULE_5__","defaultWidth","defaultHeight","valueIsUpdatingInternally","updateValueHandler","scaleCanvas","refreshCanvas","valueWasChangedFromLastUpload","signaturePad","correctFormatData","getPenColorFromTheme","penColorFromTheme","penColorProperty","backgroundColorProperty","backgroundColorFromTheme","initSignaturePad","destroySignaturePad","resizeCanvas","containerWidth","containerHeight","renderedCanvasWidth","penMinWidth","penMaxWidth","fromDataUrl","fromDataURL","fromUrl","img","dataURL","isDrawingValue","propertyChangedHandler","signatureAutoScaleEnabled","hasSignature","nothingIsDrawn","locPlaceholderReadOnly","isDrawing","needShowPlaceholder","showPlaceholder","uploadResultItemToValue","QuestionTagboxModel","_question_checkbox__WEBPACK_IMPORTED_MODULE_3__","_dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_4__","itemDisplayNameMap","createDropdownListModel","updateItemDisplayNameMap","itemValueValues","iV","tagboxCloseOnSelect","isMinMaxType","_question_textbase__WEBPACK_IMPORTED_MODULE_7__","_mask_input_element_adapter__WEBPACK_IMPORTED_MODULE_8__","_isWaitingForEnter","updateValueOnEvent","elementIsFocused","setNewMaskSettingsProperty","locDataListValue","setRenderedMinMax","calcRenderedPlaceholder","createMaskAdapter","maskTypeIsEmpty","maskInputAdapter","maskInstance","deleteMaskAdapter","updateMaskAdapter","onSetMaskType","createMaskSettings","maskClassName","inputMask","isTextInput","_inputValue","saveMaskedValue","updateInputValue","isValueLessMin","getMinMaxErrorText","getCalculatedMinMax","renderedMin","isValueGreaterMax","renderedMax","emailValidator","validateResult","isValidateOnValueChanged","errorValue","toDateString","minMax","isDateInputType","minValueRunner","minDate","maxValueRunner","maxDate","locDataList","hasPlaceholder","getControlCssClassBuilder","textRenderMode","inputWidth","updateTextAlign","textAlign","HTMLInputElement","minMaxTypes","getWeekTimeNumber","isMinBiggerWeekTime","minStr","maxStr","getCorrectMinMax","isMax","isMonth","dMin","dMax","propertyEditorMinMaxUpdate","CharacterCounter","QuestionTextBase","characterCounter","setRenderedPlaceholder","_question_custom__WEBPACK_IMPORTED_MODULE_2__","registerCustomQuestion","compJSON","RendererFactory","renderersHash","defaultHash","unregisterRenderer","rendererAs","useAsDefault","qHash","dVal","_utils_utils__WEBPACK_IMPORTED_MODULE_1__","defaultEnvironment","_rootElement","_popupMountContainer","svgMountContainer","stylesSheetsMountContainer","changeNavigationButtonsOnComplete","executeCompleteOnValueChanged","executeSkipOnValueChanged","lazyRender","firstBatchSize","enterKeyAction","confirmActionFunc","confirmActionAsync","applyTitle","maxConditionRunCountOnValueChanged","autoAdvanceDelay","customIcons","legacyProgressBarView","modernThemeColors","defaultThemeColors","orangeThemeColors","darkblueThemeColors","darkroseThemeColors","stoneThemeColors","winterThemeColors","winterstoneThemeColors","_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_0__","setCssVariables","sassVarName","autoApplyTheme","includedThemeCss","getIncludedThemeCss","themeMapper","styles_1","Logger","themeCss_1","insertStylesRulesIntoDocument","currentThemeSelector_1","ThemeSelector","themeColors_1","sheet_2","SurveyElementCore","DragTypeOverMeEnum","_actions_adaptive_container__WEBPACK_IMPORTED_MODULE_2__","_actions_container__WEBPACK_IMPORTED_MODULE_5__","_utils_animation__WEBPACK_IMPORTED_MODULE_7__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_9__","newDescription","property_1","getElementTitleTagName","hasTitleActions","toggleState","isTitleOwner","parentQuestionValue","_renderedIsExpanded","_isAnimatingCollapseExpand","animationCollapsed","getExpandCollapseAnimationOptions","isAnimatingCollapseExpand","renderedIsExpanded","updateVisibleErrors","childInfo","checkLeft","scrollIntoViewOptions","needScroll","elLeft","removeSpaces","focusElementCore","getSkeletonComponentNameCore","getSkeletonComponentName","elementContentVisibilityChanged","titleToolbarValue","getTitleActions","isTitleActionRequested","updateTitleActions","titleActions","getUpdatedElementTitleActions","__setData","surveyChangedCallback","ensureCssClassesValue","wasRenderedValue","getRendererForString","getRendererContextForString","shouldAddRunnerStyles","canHaveFrameStyles","isExpanadable","isCompact","getRootStyle","allowRootStyle","isContainsSelection","elementWithSelection","_document","isExpandable","numInlineLimit","isPreview","isDisableStyle","updateText","wrapperElement","afterRunAnimation","onAfterRunAnimation","locStrName","_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_4__","_conditionProcessValue__WEBPACK_IMPORTED_MODULE_6__","_dxSurveyService__WEBPACK_IMPORTED_MODULE_7__","_surveyStrings__WEBPACK_IMPORTED_MODULE_8__","_stylesmanager__WEBPACK_IMPORTED_MODULE_11__","_surveyTimerModel__WEBPACK_IMPORTED_MODULE_12__","_conditions__WEBPACK_IMPORTED_MODULE_13__","_settings__WEBPACK_IMPORTED_MODULE_14__","_utils_utils__WEBPACK_IMPORTED_MODULE_15__","_actions_action__WEBPACK_IMPORTED_MODULE_16__","_actions_container__WEBPACK_IMPORTED_MODULE_17__","_utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__","_notifier__WEBPACK_IMPORTED_MODULE_19__","_header__WEBPACK_IMPORTED_MODULE_20__","_surveytimer__WEBPACK_IMPORTED_MODULE_21__","_surveyTaskManager__WEBPACK_IMPORTED_MODULE_22__","_progress_buttons__WEBPACK_IMPORTED_MODULE_23__","_surveyToc__WEBPACK_IMPORTED_MODULE_24__","_global_variables_utils__WEBPACK_IMPORTED_MODULE_25__","onTriggerExecuted","onShowingPreview","onNavigateToUrl","onVariableChanged","onQuestionVisibleChanged","onQuestionCreated","onGetQuestionDisplayValue","onGetTitleTagName","onGetQuestionNo","onProgressText","onTextRenderAs","onLoadedSurveyFromService","onUpdateChoiceItemCss","onAfterRenderQuestionInput","onFocusInQuestion","onFocusInPanel","onShowingChoiceItem","onChoicesLazyLoad","onGetChoiceDisplayValue","onMatrixRowAdding","onMatrixRowRemoving","onMatrixRenderRemoveButton","onMatrixDetailPanelVisibleChanged","onMatrixCellCreating","onAfterRenderMatrixCell","onMultipleTextItemAdded","onDynamicPanelRemoving","onGetDynamicPanelTabTitle","onDynamicPanelCurrentIndexChanged","onScrollingElementToTop","onLocaleChangedEvent","onGetQuestionTitleActions","onGetPanelTitleActions","onGetPageTitleActions","onGetPanelFooterActions","onGetMatrixRowActions","onElementContentVisibilityChanged","onGetExpressionDisplayValue","onPopupVisibleChanged","cssValue","_isCompact","validationEnabled","validationAllowSwitchPages","validationAllowComplete","isNavigationButtonPressed","mouseDownPage","isCalculatingProgressText","isFirstPageRendering","isCurrentPageRendering","isTriggerIsRunning","triggerValues","conditionValues","isValueChangedOnRunningCondition","conditionRunnerCounter","conditionUpdateVisibleIndexes","conditionNotifyElementsOnAnyValueOrVariableChanged","needRenderIcons","skippedPages","skeletonComponentName","taskManager","questionErrorComponent","htmlCallBack","createHtmlLocString","timerModelValue","doOnPageRemoved","onSurveyLocaleChanged","updateProgressText","onStateAndCurrentPageChanged","updateHasLogo","updateRenderBackgroundImage","updateBackgroundImageStyle","updateButtonsVisibility","rebuildQuestionChoices","navigationBarValue","createNavigationBar","navigationBar","setCalculatedWidthModeUpdater","createTryAgainAction","onScrollCallback","progressBarValue","layoutElements","addLayoutElement","titleIsEmpty","processClosedPopup","saveDataOnComplete","onQuestionsOnPageModeChanged","updateSurvey","funcBody_1","updateCompletedPageCss","completedCss","completedBeforeCss","loadingBodyCss","rootCss","updateNavigationCss","updateWrapperFormCss","setCss","needMerge","getNavigationCss","cssSurveyNavigationButton","calculatedWidthMode","insertAdvancedHeader","advHeader","main","btn","lazyRenderingValue","lazyRendering","lazyRenderingFirstBatchSizeValue","updateLazyRenderingRowsOnRemovingElements","getNavigateToUrl","getExpressionItemOnRunCondition","navigateTo","makeRequiredErrorsInvisible","erType","removeNonExistingRootKeys","getCalculatedValueByName","isClearingUnsedValues","isShowStartingPage","getBuiltInRendererForString","renderedHasLogo","logoClasses","renderedHasTitle","backgroundImageStyle","backgroundOpacity","backgroundAttachment","backgroundImageAttachment","wrapperFormCss","addNavigationItem","getQuestionTitlePatternOptions","getNewTitlePattern","getNewQuestionTitleElement","actualProgressBarType","isStrCiEqual","canShowProresBar","getProgressTypeComponent","setCalculatedValuesIntoResult","setDataCore","getStructuredData","includePages","pageValues","setStructuredData","doMerge","collectDataFromPanel","includeValues","questionValueNames","addCalculatedValuesIntoFilteredValues","caclValues","getDataFromValueHash","setDataToValueHash","deleteDataFromValueHash","isPageInVisibleList","isCurrentPageAvailable","isValidateOnComplete","page_1","updateCurrentPage","firstVisiblePage","isPageExistsInSurvey","onContainsPageCallback","updateActivePage","focusingQuestionInfo","calcState","onShowingPreviewChanged","goToFirstPage","completedByTriggers","spent","createPageChangeEventOptions","notifyQuestionsOnHidingContent","isNextPage","isPrevPage","isGoingForward","isGoingBackward","isAfterPreview","changeCurrentPageFromPreview","getIsNavigationButtonsShowingOn","buttonPosition","isAnyQuestionAnswered","skipValidation","validateCurrentPage","_loop_2","this_2","hasCurrentPageErrors","onAsyncValidation","hasPageErrors","validatePage","checkIsPageHasErrors","ensureUniqueNames","ensureUniqueName","ensureUniquePageName","ensureUniquePanelName","ensureUniqueQuestionName","ensureUniqueElementName","existingElement","fireValidatedErrorsOnPage","resetNavigationButton","skipped","sp","navigationMouseDown","nextPageUIClick","nextPageMouseDown","showPreviewCore","allowShowPreview","gotoPageFromPreview","canBeCompletedByTrigger","completedTrigger","runningPages","setupPagesForPageModes","restoreOriginalPages","curPage","isFirstLoad","originalPages","getPageStartIndex","isLockingUpdateOnPageModes","newPages","createPagesForQuestionOnPageMode","createPagesForEveryQuestion","originalElement","pageJson","updateIsFirstLastPageState","calcIsShowPrevButton","calcIsShowNextButton","calcIsCompleteButtonVisible","calcIsPreviewButtonVisible","calcIsCancelPreviewButtonVisible","lastVisiblePage","isShowPreviewBeforeComplete","showCompleteButton","isCompleteOnTrigger","completeTrigger","checkOnCompletingEvent","showSaveInProgress","savingDataStarted","showSaveError","showSaveSuccess","clearSaveMessages","createServerValidationOptions","isFunc","serverValidationEventCount","hasToFocus","canBeCompleted","prevCanBeCompleted","pageId","locCompletedBeforeHtml","locLoadingHtml","getProgressText","getProgressTextCore","mobileWidth_1","isMobileChanged","layoutElement","doScroll_1","focusQuestionInfo","getQuestionsByValueName","getUpdatedPageTitleActions","getUpdatedPanelTitleActions","getUpdatedQuestionTitleActions","runTask","includeDesignTime","checkQuestionErrorOnValueChanged","checkQuestionErrorOnValueChangedCore","isCheckErrorOnChanged","checkErrorsOnValueChanging","checkElementsBindings","isRunningElementsBindings","updateVisibleIndexAfterBindings","isRunningConditions","isOnComplete","includeInvsible","isQuestionInvalid","hasRequiredValidQuestionTrigger","requireValidQuestion","runExpressions","oldCurrentPageIndex","runConditionsCore","checkIfNewPagesBecomeVisible","runConditionOnValueChanged","runQuestionsTriggers","newCurrentPageIndex","isPartial","service","showSaving","isPageVisible","updateNavigationBarCss","updateNavigationItemCssCallback","createNavigationActions","defaultComponent","navStart","locStartSurveyText","navPrev","locPagePrevText","navNext","isShowNextButton","locPageNextText","navPreview","isPreviewButtonVisible","locPreviewText","navComplete","isCompleteButtonVisible","locCompleteText","waitAndExecute","cssNavigationStart","cssNavigationPrev","cssNavigationNext","cssNavigationPreview","cssNavigationComplete","builtInVar","questionUseDisplayText","getProcessedValuesWithoutQuestion","reduceFirstName","pos1","pos2","getVariableNames","isValueEmpyOnSetValue","goNextPage","safeTimeOut","questionClearIf","resetIndexes","canFireAddElement","isMovingQuestion","textPreProcessorValue","getInCorrectAnswerCount","correctCount","calculatedWidthModeUpdater","isResponsive_1","getTimerInfo","major","minor","minorSpent","minorLimit","getDisplayClockTime","majorText","minorText","secStr","copyDisplayValue","triggerExecuted","isNeedWaitForPageRendered","allQuestions","questionIndex","getQuestionContentWrapperComponentName","getRowWrapperComponentName","getRowWrapperComponentData","existingLayoutElement","removeLayoutElement","findLayoutElement","layoutElementId","layoutElementIndex","containerLayoutElements","progressBarComponentName","headerLayoutElement","isBelowHeader","hasBackground","SurveyProgressModel","getLocaleStrings","addLocaleCore","onGetExternalString","removeDefaultLoc","SurveyTaskManagerModel","SurveyTaskModel","taskList","onAllTasksCompleted","hasActiveTasks","taskFinished","SurveyTimerModel","_surveytimer__WEBPACK_IMPORTED_MODULE_1__","setIsRunning","updateProgress","timerInfo","timerClock","clockMajorText","clockMinorText","getProgressCss","tryFocusPage","createTOCListModel","getTocRootCss","TOCModel","_actions_action__WEBPACK_IMPORTED_MODULE_0__","_page__WEBPACK_IMPORTED_MODULE_4__","onAction","pagesSource","togglePopup","SvgIconRegistry","SvgRegistry","SvgBundleViewModel","SvgIconData","iconPrefix","processId","iconId","registerIconFromSymbol","iconSymbolSvg","registerIconFromSvgViaElement","iconSvg","divSvg","registerIconFromSvg","startStr","endStr","registerIconsFromFolder","pathSmiley","QuestionTextProcessor","_conditionProcessValue__WEBPACK_IMPORTED_MODULE_1__","_unObservableValues","_expressions_expressions__WEBPACK_IMPORTED_MODULE_4__","_conditionProcessValue__WEBPACK_IMPORTED_MODULE_5__","canBeExecuted","canBeExecutedOnComplete","isExecutingOnNextPage","canSuccessOnEmptyExpression","onSuccessExecuted","createConditionRunner","getUsedVariables","isRealExecution","AnimationUtils","AnimationPropertyUtils","AnimationGroupUtils","AnimationProperty","AnimationBoolean","AnimationGroup","AnimationTab","_taskmanager__WEBPACK_IMPORTED_MODULE_1__","cancelQueue","getMsFromRule","reflow","getAnimationsCount","animationName","getAnimationDuration","addCancelCallback","removeCancelCallback","onAnimationEnd","cancelTimeout","animationsCount","onEndCallback","onAnimationEndCallback","getCssClasses","runAnimation","clearHtmlElement","onNextRender","cancelCallback_1","latestRAF_1","enterOptions","onLeave","leaveOptions","runGroupAnimation","addedElements","addedHtmlElements","removedHtmlElements","animationOptions","getCurrentValue","_debouncedSync","_sync","Camera","canFlipValue","cameraList","cameraIndex","setCameraList","getDeviceType","lbl","lblA","lblB","iA","iB","mediaDevicesCallback","devicesCallback","devices","setVideoInputs","hasCameraCallback","mediaDevices","enumerateDevices","updateCanFlipValue","getMediaConstraints","videoSize","selDevice","videoConstraints","deviceId","facingMode","cameraFacingMode","ideal","audio","videoElementId","videoEl","mediaConstraints","getUserMedia","srcObject","getCapabilities","canSwitchFacingMode","play","getImageSize","canvasEl","imageSize","toBlob","onCanFlipChangedCallback","CssClassBuilder","IsMobile","mouseInfo","IsTouch","_setIsTouch","vendor","maxTouchPoints","_IPad","hasMouse","hasTouchEvent","pointerMatches","matchMedia","isTouch","DragOrClickHelper","_devices__WEBPACK_IMPORTED_MODULE_0__","dragHandler","onPointerUp","pointerUpEvent","clearListeners","tryToStartDrag","itemModel","PopupUtils","currentLeft","currentTop","newHeight","bottomIndent","margins","deltaTop","deltaBottom","targetPos","ResponsivityManager","VerticalResponsivityManager","_utils__WEBPACK_IMPORTED_MODULE_1__","itemsSelector","isInitialized","minDimensionConst","separatorSize","separatorAddConst","paddingSizeConst","dotsSizeConst","recalcMinDimensionConst","getDimensions","getAvailableSpace","boxSizing","calcItemSize","calcMinDimension","currentAction","canShrink","needSeparator","getRenderedVisibleActionsCount","calcItemsSizes","_items","calcActionDimensions","isContainerVisible","processResponsiveness_1","dotsItemElement","queueMicrotask","paddingTop","paddingBottom","Task","TaskManger","debounce","_isCompleted","discard","tick","newTasks","schedule","funcArgs","isSheduled","getRenderedSize","getRenderedStyleSize","doKey2ClickBlur","doKey2ClickUp","doKey2ClickDown","sanitizeEditableContent","showConfirmDialog","configConfirmDialog","classesToSelector","compareVersions","detectIEOrEdge","detectIEBrowser","loadFileFromBase64","isShadowDOM","isElementVisible","findScrollableParent","scrollElementByChildId","wrapUrlForBackgroundImage","createSvg","getIconNameFromProxy","increaseHeightByContent","getOriginalEvent","preventDefaults","findParentByClassNames","getFirstVisibleChild","_surveyStrings__WEBPACK_IMPORTED_MODULE_2__","regExStrip0","segmentsA","segmentsB","funcOnYes","funcOnNo","callbackFunc","oldIe","elevenIe","isIEOrEdge","trident","edge","b64Data","byteString","mimeString","threshold","elementRect","viewHeight","topWin","bottomWin","topEl","bottomEl","maxTop","minBottom","scrollableEl","proxyName","realIconName","titleElement","keyFocusedClassName","__keyDownReceived","supportedCodes","borderTopWidth","borderBottomWidth","getClientRects","cleanLineBreaks","setEndAfter","tail_len","selLen","_result","applyBtn","cancelBtn","_error__WEBPACK_IMPORTED_MODULE_1__","createRegExp","insensitive","isSafeInteger","settle","buildURL","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","username","Authorization","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","ontimeout","xsrfValue","onDownloadProgress","onUploadProgress","upload","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","fromArrayBuffer","fromString","fromObject","assertSize","alloc","isEncoding","fromArrayLike","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","MAX_ARGUMENTS_LENGTH","codePoints","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","__lookupGetter__","deleteProperty","inc","promiseCapability","WEAK_SET","$iterDefine","setSpecies","SIZE","setStrong","ignoreDuplicateOf","IS_INCLUDES","pipe","URLSearchParams","product","__defineSetter__","$Number","BROKEN_COF","TRIM","third","maxCode","$typed","$ArrayBuffer","$DataView","$isView","$slice","ARRAY_BUFFER","fin","viewS","viewT","setUint8","getUint8","hypot","value1","value2","larg","tanh","addToUnscopables","Arguments","_typeof2","__WEBPACK_EXTERNAL_MODULE_vue__","_util_mixins__WEBPACK_IMPORTED_MODULE_7__","_VSheet__WEBPACK_IMPORTED_MODULE_1__","_mixins_toggleable__WEBPACK_IMPORTED_MODULE_4__","_mixins_transitionable__WEBPACK_IMPORTED_MODULE_6__","border","closeLabel","coloredBorder","dense","dismissible","closeIcon","outlined","prominent","__cachedBorder","setBackgroundColor","computedColor","__cachedDismissible","iconColor","_VBtn__WEBPACK_IMPORTED_MODULE_2__","$vuetify","lang","_VIcon__WEBPACK_IMPORTED_MODULE_3__","__cachedIcon","computedIcon","hasColoredIcon","isDark","_mixins_themeable__WEBPACK_IMPORTED_MODULE_5__","_util_console__WEBPACK_IMPORTED_MODULE_8__","genWrapper","_util_helpers__WEBPACK_IMPORTED_MODULE_9__","genContent","genAlert","listeners$","setColor","setTextColor","origin","_VAlert__WEBPACK_IMPORTED_MODULE_0__","_util_mixins__WEBPACK_IMPORTED_MODULE_2__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_1__","dark","_util_helpers__WEBPACK_IMPORTED_MODULE_3__","rtl","themeClasses","_VApp__WEBPACK_IMPORTED_MODULE_0__","baseMixins","_util_mixins__WEBPACK_IMPORTED_MODULE_8__","_VToolbar_VToolbar__WEBPACK_IMPORTED_MODULE_1__","_mixins_scrollable__WEBPACK_IMPORTED_MODULE_4__","_mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_5__","_mixins_toggleable__WEBPACK_IMPORTED_MODULE_6__","_mixins_applicationable__WEBPACK_IMPORTED_MODULE_3__","_directives_scroll__WEBPACK_IMPORTED_MODULE_2__","VAppBar","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","applicationProperty","canScroll","isBooted","absolute","hideShadow","currentScroll","scrollRatio","computedScrollThreshold","computedContentHeight","computedOriginalHeight","computedFontSize","isProminent","computedLeft","application","computedMarginTop","bar","computedOpacity","isExtended","extensionHeight","computedRight","scrollThreshold","computedTransform","computedHeight","_util_helpers__WEBPACK_IMPORTED_MODULE_7__","callUpdate","genBackground","updateApplication","thresholdMet","isScrollingUp","currentThreshold","savedScroll","scrollTarget","vue__WEBPACK_IMPORTED_MODULE_2___default","defaultSlot","_VBtn_VBtn__WEBPACK_IMPORTED_MODULE_1__","_VIcon__WEBPACK_IMPORTED_MODULE_0__","_mixins_registrable__WEBPACK_IMPORTED_MODULE_0__","_util_helpers__WEBPACK_IMPORTED_MODULE_1__","_services_goto_easing_patterns__WEBPACK_IMPORTED_MODULE_2__","contentWidth","updateDimensions","dimensions","_VAppBar__WEBPACK_IMPORTED_MODULE_0__","_VAppBarNavIcon__WEBPACK_IMPORTED_MODULE_1__","_VAppBarTitle__WEBPACK_IMPORTED_MODULE_2__","$_vuetify_subcomponents","VAppBarNavIcon","VAppBarTitle","defaultMenuProps","_VSelect_VSelect__WEBPACK_IMPORTED_MODULE_1__","offsetOverflow","autoSelectFirst","queryText","hideNoData","menuProps","noFilter","searchInput","lazySearch","computedItems","hasDisplayedItems","hideSelected","currentRange","isSearching","internalSearch","allItems","_util_helpers__WEBPACK_IMPORTED_MODULE_4__","isAnyValueAllowed","isDirty","searchIsDirty","menuCanShow","isFocused","$_menuProps","valueComparator","internalValue","listData","virtualizedItems","onCopy","updateSelf","isMenuActive","hasSlot","activateMenu","setSearch","onFilteredItemsChanged","preSelectedItem_1","menu","listIndex","setMenuIndex","getTiles","onInternalSearchChanged","updateMenuDimensions","changeSelectedIndex","backspace","deleteCurrentItem","curItem","isInteractive","getDisabled","nextIndex","clearableCallback","genInput","_VTextField_VTextField__WEBPACK_IMPORTED_MODULE_2__","_util_mergeData__WEBPACK_IMPORTED_MODULE_3__","genInputSlot","genSelections","isAppendInner","badInput","validity","home","onSpaceDown","onTabDown","onUpDown","currentItem","currentItemText","_VAutocomplete__WEBPACK_IMPORTED_MODULE_0__","_util_mixins__WEBPACK_IMPORTED_MODULE_5__","_mixins_colorable__WEBPACK_IMPORTED_MODULE_1__","_mixins_measurable__WEBPACK_IMPORTED_MODULE_2__","_mixins_roundable__WEBPACK_IMPORTED_MODULE_3__","roundedClasses","measurableStyles","_VAvatar__WEBPACK_IMPORTED_MODULE_0__","_mixins_colorable__WEBPACK_IMPORTED_MODULE_2__","_mixins_positionable__WEBPACK_IMPORTED_MODULE_6__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_3__","_mixins_transitionable__WEBPACK_IMPORTED_MODULE_5__","avatar","bordered","overlap","tile","computedBottom","computedYOffset","computedXOffset","computedTop","calcPosition","_util_helpers__WEBPACK_IMPORTED_MODULE_8__","genBadge","badge","genBadgeContent","_VIcon_VIcon__WEBPACK_IMPORTED_MODULE_1__","genBadgeWrapper","__rest","_VBadge__WEBPACK_IMPORTED_MODULE_0__","_mixins_mobile__WEBPACK_IMPORTED_MODULE_5__","singleLine","isSticky","zIndex","iconClick","genIcon","_VAvatar__WEBPACK_IMPORTED_MODULE_2__","genActions","dismiss","attrs$","_transitions__WEBPACK_IMPORTED_MODULE_4__","_VBanner__WEBPACK_IMPORTED_MODULE_0__","_util_mixins__WEBPACK_IMPORTED_MODULE_9__","_mixins_applicationable__WEBPACK_IMPORTED_MODULE_1__","_mixins_colorable__WEBPACK_IMPORTED_MODULE_3__","_mixins_measurable__WEBPACK_IMPORTED_MODULE_4__","_mixins_toggleable__WEBPACK_IMPORTED_MODULE_8__","_mixins_proxyable__WEBPACK_IMPORTED_MODULE_5__","_mixins_scrollable__WEBPACK_IMPORTED_MODULE_6__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_7__","grow","mandatory","_util_console__WEBPACK_IMPORTED_MODULE_10__","_mixins_button_group__WEBPACK_IMPORTED_MODULE_2__","_util_helpers__WEBPACK_IMPORTED_MODULE_11__","_VBottomNavigation__WEBPACK_IMPORTED_MODULE_0__","_VDialog_VDialog__WEBPACK_IMPORTED_MODULE_1__","inset","_VBottomSheet__WEBPACK_IMPORTED_MODULE_0__","_util_mixins__WEBPACK_IMPORTED_MODULE_4__","divider","large","genDivider","_VBreadcrumbsDivider__WEBPACK_IMPORTED_MODULE_2__","genItems","_VBreadcrumbsItem__WEBPACK_IMPORTED_MODULE_1__","_util_helpers__WEBPACK_IMPORTED_MODULE_5__","_util_helpers__WEBPACK_IMPORTED_MODULE_0__","_util_mixins__WEBPACK_IMPORTED_MODULE_1__","_mixins_routable__WEBPACK_IMPORTED_MODULE_0__","ripple","generateRouteLink","isLink","_util_helpers__WEBPACK_IMPORTED_MODULE_2__","_VBreadcrumbs__WEBPACK_IMPORTED_MODULE_0__","VBreadcrumbs","VBreadcrumbsItem","VBreadcrumbsDivider","_mixins_routable__WEBPACK_IMPORTED_MODULE_7__","_mixins_sizeable__WEBPACK_IMPORTED_MODULE_8__","_mixins_groupable__WEBPACK_IMPORTED_MODULE_3__","btnToggle","depressed","fab","retainFocusOnClick","rounded","proxyClass","isElevated","hasBg","isRound","groupClasses","elevationClasses","sizeableClasses","computedElevation","_mixins_elevatable__WEBPACK_IMPORTED_MODULE_5__","computedRipple","defaultRipple","elevation","breakingProps","__read","genLoader","_VProgressCircular__WEBPACK_IMPORTED_MODULE_2__","_VBtn__WEBPACK_IMPORTED_MODULE_0__","_util_mixins__WEBPACK_IMPORTED_MODULE_3__","_mixins_button_group__WEBPACK_IMPORTED_MODULE_1__","borderless","shaped","_VBtnToggle__WEBPACK_IMPORTED_MODULE_0__","_mixins_calendar_with_events__WEBPACK_IMPORTED_MODULE_0__","_util_props__WEBPACK_IMPORTED_MODULE_1__","calendar","weeks","intervals","lastStart","lastEnd","parsedValue","_util_timestamp__WEBPACK_IMPORTED_MODULE_2__","parsedStart","parsedCategoryDays","categoryDays","renderProps","around","maxDays","weekdays","parsedWeekdays","parsedCategories","_VCalendarMonthly__WEBPACK_IMPORTED_MODULE_3__","_VCalendarDaily__WEBPACK_IMPORTED_MODULE_4__","getStartOfWeek","getEndOfWeek","_VCalendarWeekly__WEBPACK_IMPORTED_MODULE_5__","parsedEnd","days","_VCalendarCategory__WEBPACK_IMPORTED_MODULE_6__","getCategoryList","eventWeekdays","categoryMode","spanYears","spanMonths","monthShortFormatter","monthLongFormatter","getFormatter","timeZone","_util_parser__WEBPACK_IMPORTED_MODULE_7__","categoryText","updateEventVisibility","checkChange","amount","mover","timeToY","clamp","timeDelta","minutesToPixels","minutes","scrollToTime","parseTimestamp","timestampToDate","noEvents","categoryMap_1","categoryHideDynamic","categoryShowAll","categoryLength_1","parsedEvents","categoryForInvalid","$props","quiet","getScopedSlots","_VCalendarDaily__WEBPACK_IMPORTED_MODULE_1__","_util_props__WEBPACK_IMPORTED_MODULE_3__","_util_parser__WEBPACK_IMPORTED_MODULE_4__","genDayHeader","genDayHeaderCategory","getCategoryScope","cat","headerTitle","getDefaultMouseEventHandlers","getSlotScope","genDayHeaderCategoryTitle","genDays","genDay","getRelativeClasses","getTimestampAtEvent","genDayIntervals","genDayBody","genDayInterval","intervalHeight","styler","intervalStyle","intervalStyleDefault","genDayBodyCategory","_mixins_calendar_with_intervals__WEBPACK_IMPORTED_MODULE_3__","Resize","_directives_resize__WEBPACK_IMPORTED_MODULE_1__","scrollPush","getScrollPush","area","scrollArea","pane","genHead","genHeadIntervals","genHeadDays","intervalWidth","genHeadDay","nativeEvent","genHeadWeekday","genHeadDayLabel","present","weekdayFormatter","shortWeekdays","genHeadDayButton","getMouseEventHandlers","dayFormatter","genBody","genScrollArea","genPane","bodyHeight","genDayContainer","genBodyIntervals","genIntervalLabels","genIntervalLabel","short","shortIntervals","shower","showIntervalLabel","showIntervalLabelDefault","intervalFormatter","hideHeader","_VCalendarWeekly__WEBPACK_IMPORTED_MODULE_1__","_mixins_calendar_base__WEBPACK_IMPORTED_MODULE_2__","_util_props__WEBPACK_IMPORTED_MODULE_5__","parsedMinWeeks","minWeeks","minDays","_util_timestamp__WEBPACK_IMPORTED_MODULE_6__","weekdaySkips","todayWeek","monthFormatter","monthFormat","longOptions","shortOptions","_tms","isOutside","dayIdentifier","showWeek","outside","genWeeks","weekDays","genWeek","getWeekNumber","weekNumber","weekNodes","genWeekNumber","determineDay","_util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_4__","localeFirstDayOfYear","genDayLabel","genDayLabelButton","hasMonth","showMonthOnFirst","_VBtn__WEBPACK_IMPORTED_MODULE_1__","shortMonths","genDayMonth","_VCalendar__WEBPACK_IMPORTED_MODULE_0__","_VCalendarWeekly__WEBPACK_IMPORTED_MODULE_2__","_VCalendarCategory__WEBPACK_IMPORTED_MODULE_4__","VCalendar","VCalendarCategory","VCalendarDaily","VCalendarWeekly","VCalendarMonthly","_util_mixins__WEBPACK_IMPORTED_MODULE_0__","_mixins_localable__WEBPACK_IMPORTED_MODULE_2__","_mixins_mouse__WEBPACK_IMPORTED_MODULE_3__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_4__","_times__WEBPACK_IMPORTED_MODULE_5__","_directives_resize__WEBPACK_IMPORTED_MODULE_6__","_util_props__WEBPACK_IMPORTED_MODULE_7__","_util_timestamp__WEBPACK_IMPORTED_MODULE_8__","weekdaySkipsReverse","dayFormat","_short","weekdayFormat","past","future","WIDTH_FULL","WIDTH_START","MINUTES_IN_DAY","_calendar_base__WEBPACK_IMPORTED_MODULE_2__","_directives_ripple__WEBPACK_IMPORTED_MODULE_1__","parseEvent","parsedEventOverlapThreshold","eventOverlapThreshold","eventTimedFunction","eventTimed","eventCategoryFunction","eventCategory","eventTextColorFunction","eventTextColor","eventNameFunction","timedEvent","eventModeFunction","eventOverlapMode","_modes__WEBPACK_IMPORTED_MODULE_4__","eventColorFunction","eventColor","_util_events__WEBPACK_IMPORTED_MODULE_6__","eventStart","eventEnd","formatTime","withTime","ampm","formatter","eventMore","eventHeight","eventsMap","getEventsMap","parentBounds","eventsSorted","eventMoreText","genDayEvent","eventMarginBottom","_util_timestamp__WEBPACK_IMPORTED_MODULE_5__","startIdentifier","endIdentifier","weekdayIdentifier","eventParsed","timed","genEvent","genTimedEvent","scopeInput","overlapsNoon","singline","timeSummary","eventSummary","hasTime","eventRipple","genName","genPlaceholder","genMore","getVisibleEvents","isEventForCategory","getEventsForDay","firstWeekday","getEventsForDayAll","allDay","getEventsForDayTimed","getSlotChildren","mapper","visuals","visual","mapped","slotDay","slotDayHeader","slotDayBody","_day","_calendar_base__WEBPACK_IMPORTED_MODULE_0__","parsedFirstInterval","firstInterval","parsedIntervalMinutes","intervalMinutes","parsedIntervalCount","intervalCount","parsedIntervalHeight","parsedFirstTime","firstTime","firstMinute","intervalFormat","shortHourOptions","tms","_interval","baseMinutes","touchEvent","mouseEvent","addIntervals","addMinutes","vue__WEBPACK_IMPORTED_MODULE_0__","vue__WEBPACK_IMPORTED_MODULE_0___default","_util_timestamp__WEBPACK_IMPORTED_MODULE_1__","parsedNow","updateTimes","setPresent","updateDay","updateTime","_common__WEBPACK_IMPORTED_MODULE_0__","FULL_WIDTH","overlapThreshold","dayEvents","getVisuals","columnCount","MILLIS_IN_DAY","_getVisuals","minStart","startTimestampIdentifier","endTimestampIdentifier","hasOverlap","e0","e1","setColumnCount","groupVisual","getDayRange","getNormalizedRange","dayStart","getOpenGroup","intersected","groupStart","getOverlapGroupHandler","_util_timestamp__WEBPACK_IMPORTED_MODULE_0__","targetGroup","CalendarEventOverlapModes","_stack__WEBPACK_IMPORTED_MODULE_0__","_column__WEBPACK_IMPORTED_MODULE_1__","DEFAULT_OFFSET","WIDTH_MULTIPLIER","getGroups","groups_1","__values","groups_1_1","e_2","getNode","getNextIndex","getParent","sibling","addTime","getOverlappingRange","children_1","e_3","children_1_1","grand","grandNext","calculateBounds","nodes_1","nodes_1_1","getMaxChildIndex","spaceLeft","spaceWidth","columnWidthMultiplier","getColumnWidthMultiplier","columnOffset","columnWidth","hasFullWidth","maxColumn","minColumn","getOverlappingIndices","indices","nodes_2","nodes_2_1","indexMin","indexMax","returnFirstColumn","overlapping","nodes_3","nodes_3_1","first_1","nodes_4","nodes_4_1","nodes_5","nodes_5_1","visuals_1","visuals_1_1","added","groups_2","e_10","groups_2_1","childMax","removeMinutes","totalMinutes","addHours","isEventOn","isEventHiddenOn","isEventStart","isEventOverlapping","_timestamp__WEBPACK_IMPORTED_MODULE_0__","startProperty","endProperty","startInput","endInput","startParsed","endParsed","parsedCategoryText","getParsedCategories","validateWeekdays","_modes__WEBPACK_IMPORTED_MODULE_1__","ints","visited","wrapped","PARSE_REGEX","PARSE_TIME","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP","DAYS_IN_MONTH_MIN","DAYS_IN_MONTH_MAX","MONTH_MAX","MONTH_MIN","DAY_MIN","DAYS_IN_WEEK","MINUTES_IN_HOUR","MINUTE_MAX","HOURS_IN_DAY","HOUR_MAX","FIRST_HOUR","OFFSET_YEAR","OFFSET_MONTH","OFFSET_HOUR","OFFSET_TIME","copyTimestamp","findWeekday","prevDay","updateFormatted","updateRelative","getStartOfMonth","updateWeekday","getEndOfMonth","daysInMonth","validateTime","parseTime","validateTimestamp","parseDate","hasDay","getDayIdentifier","getTimeIdentifier","getTimestampIdentifier","isTimedless","updateHasTime","updateMinutes","getWeekday","_util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_0__","padNumber","padded","nextMinutes","nextDay","relativeDays","diffMinutes","getWeekdaySkips","skips","filled","createDayList","currentIdentifier","stopped","createIntervalList","mins","int","createNativeLocaleFormatter","emptyFormatter","Intl","DateTimeFormat","intlFormatter","_mixins_loadable__WEBPACK_IMPORTED_MODULE_2__","_mixins_routable__WEBPACK_IMPORTED_MODULE_3__","flat","hover","loaderHeight","raised","isClickable","genProgress","VCardActions","VCardSubtitle","VCardText","VCardTitle","_VCard__WEBPACK_IMPORTED_MODULE_0__","VCard","_VWindow_VWindow__WEBPACK_IMPORTED_MODULE_1__","continuous","cycle","delimiterIcon","hideDelimiters","hideDelimiterBackground","progressColor","showArrows","verticalDelimiters","parentTheme","internalHeight","slideTimeout","isVertical","restartTimeout","_util_console__WEBPACK_IMPORTED_MODULE_7__","startTimeout","genControlIcons","genDelimiters","_mixins_button_group__WEBPACK_IMPORTED_MODULE_5__","_VProgressLinear__WEBPACK_IMPORTED_MODULE_4__","internalIndex","_util_helpers__WEBPACK_IMPORTED_MODULE_6__","_VWindow_VWindowItem__WEBPACK_IMPORTED_MODULE_0__","_mixins_routable__WEBPACK_IMPORTED_MODULE_4__","genDefaultSlot","_VImg__WEBPACK_IMPORTED_MODULE_1__","windowGroup","genWindowItem","_VCarousel__WEBPACK_IMPORTED_MODULE_0__","_VCarouselItem__WEBPACK_IMPORTED_MODULE_1__","VCarousel","VCarouselItem","_mixins_selectable__WEBPACK_IMPORTED_MODULE_4__","indeterminateIcon","offIcon","onIcon","inputIndeterminate","_VInput__WEBPACK_IMPORTED_MODULE_3__","validationState","shouldValidate","hasSuccess","hasColor","genCheckbox","checkboxAttrs","_VIcon__WEBPACK_IMPORTED_MODULE_2__","genRipple","rippleState","genLabel","Ripple","_mixins_colorable__WEBPACK_IMPORTED_MODULE_4__","center","_util_mergeData__WEBPACK_IMPORTED_MODULE_6__","_VCheckbox__WEBPACK_IMPORTED_MODULE_0__","_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_1__","VCheckbox","VSimpleCheckbox","_mixins_sizeable__WEBPACK_IMPORTED_MODULE_9__","_mixins_routable__WEBPACK_IMPORTED_MODULE_8__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_6__","_mixins_groupable__WEBPACK_IMPORTED_MODULE_5__","_mixins_toggleable__WEBPACK_IMPORTED_MODULE_7__","chipGroup","pill","textColor","hasClose","genFilter","_transitions__WEBPACK_IMPORTED_MODULE_2__","genClose","_VChip__WEBPACK_IMPORTED_MODULE_0__","_VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_1__","scrollOffset","_VChipGroup__WEBPACK_IMPORTED_MODULE_0__","_mixins_elevatable__WEBPACK_IMPORTED_MODULE_9__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_10__","canvasHeight","hideCanvas","hideSliders","hideInputs","hideModeSwitch","_VColorPickerEdit__WEBPACK_IMPORTED_MODULE_4__","showSwatches","swatches","swatchesMaxHeight","_util__WEBPACK_IMPORTED_MODULE_6__","hideAlpha","updateColor","genCanvas","_VColorPickerCanvas__WEBPACK_IMPORTED_MODULE_3__","genControls","genPreview","genEdit","_VColorPickerPreview__WEBPACK_IMPORTED_MODULE_2__","genSwatches","_VColorPickerSwatches__WEBPACK_IMPORTED_MODULE_5__","_VSheet_VSheet__WEBPACK_IMPORTED_MODULE_1__","_util__WEBPACK_IMPORTED_MODULE_2__","vue__WEBPACK_IMPORTED_MODULE_3__","vue__WEBPACK_IMPORTED_MODULE_3___default","boundingRect","hsva","updateCanvas","emitColor","hue","alpha","saturationGradient","createLinearGradient","addColorStop","valueGradient","handleMouseDown","handleMouseMove","handleMouseUp","genDot","radius","mousedown","modes","rgba","_util__WEBPACK_IMPORTED_MODULE_5__","hsla","hexa","vue__WEBPACK_IMPORTED_MODULE_4___default","internalMode","_mode","parseValue","changeMode","newMode","genInputs","_util_colorUtils__WEBPACK_IMPORTED_MODULE_3__","genSwitch","genAlpha","genTrack","thumbColor","_util_colorUtils__WEBPACK_IMPORTED_MODULE_2__","_util__WEBPACK_IMPORTED_MODULE_4__","genSliders","genHue","_VSlider_VSlider__WEBPACK_IMPORTED_MODULE_1__","_VIcon__WEBPACK_IMPORTED_MODULE_1__","_util_colors__WEBPACK_IMPORTED_MODULE_2__","_util__WEBPACK_IMPORTED_MODULE_3__","_util_colorUtils__WEBPACK_IMPORTED_MODULE_7__","parseDefaultColors","colors","darken4","darken3","darken2","darken1","lighten1","lighten2","lighten3","lighten4","lighten5","black","transparent","genColor","swatch","_VColorPicker__WEBPACK_IMPORTED_MODULE_0__","_VColorPickerSwatches__WEBPACK_IMPORTED_MODULE_1__","_VColorPickerCanvas__WEBPACK_IMPORTED_MODULE_2__","fromHSVA","_util_colorUtils__WEBPACK_IMPORTED_MODULE_0__","fromHSLA","fromRGBA","fromHexa","fromHex","parseColor","oldColor","stripAlpha","extractColor","shouldStrip","hasAlpha","_VAutocomplete_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__","returnObject","editingIndex","computedCounterValue","updateTags","genChipSelection","chip","dblclick","onChipInput","onEnterDown","getMenuIndex","updateEditing","updateCombobox","isUsingSlot","hasChips","menuIndex","itemToSelect","pastedItemText","findExistingIndex","_VCombobox__WEBPACK_IMPORTED_MODULE_0__","_VMain_VMain__WEBPACK_IMPORTED_MODULE_0__","_util_console__WEBPACK_IMPORTED_MODULE_1__","_VContent__WEBPACK_IMPORTED_MODULE_0__","isGreater","_VCounter__WEBPACK_IMPORTED_MODULE_0__","vue__WEBPACK_IMPORTED_MODULE_1___default","sortBy","sortDesc","customSort","mustSort","multiSort","itemsPerPage","groupBy","groupDesc","customGroup","disableSort","disablePagination","disableFiltering","customFilter","serverItemsLength","internalOptions","sortDiff","groupDiff","itemsLength","pageStart","pageStop","isGrouped","pagination","paginateItems","groupedItems","groupItems","scopedProps","updateOptions","originalItemsLength","computedOptions","_page","_itemsPerPage","_sortBy","_sortDesc","_groupBy","_groupDesc","_multiSort","_mustSort","oldBy","oldDesc","by","byIndex","_VData__WEBPACK_IMPORTED_MODULE_0__","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","disableNextPageIcon","computedDataItemsPerPageOptions","genDataItemsPerPageOption","onFirstPage","onPreviousPage","onLastPage","onChangeItemsPerPage","genItemsPerPageSelect","computedIPPO","ippo","genPaginationInfo","_VBtn__WEBPACK_IMPORTED_MODULE_3__","genIcons","_mixins_mobile__WEBPACK_IMPORTED_MODULE_2__","itemKey","singleSelect","mobileBreakpoint","singleExpand","noResultsText","noDataText","hideDefaultFooter","footerProps","selectableKey","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","someItems","sanitizedFooterProps","isSelectable","_util_console__WEBPACK_IMPORTED_MODULE_6__","removedProps","lastEntryKey","lastEntryKeySelected","multipleSelect","createItemProps","genEmptyWrapper","genEmpty","filteredItemsLength","noData","noResults","genFooter","_VDataFooter__WEBPACK_IMPORTED_MODULE_1__","genDefaultScopedSlot","outerProps","_VDataIterator__WEBPACK_IMPORTED_MODULE_0__","VDataIterator","VDataFooter","hideDefaultHeader","computedSlots","regularSlot","mobileRowChildren","needsTd","summaryClass","filterFn","_util_helpers__WEBPACK_IMPORTED_MODULE_15__","searchTableItems","headersWithCustomFilters","headersWithoutCustomFilters","filterMode","matchesColumnFilters","matchesSearchTerm","_util_mixins__WEBPACK_IMPORTED_MODULE_14__","_VDataIterator__WEBPACK_IMPORTED_MODULE_2__","_mixins_loadable__WEBPACK_IMPORTED_MODULE_11__","_mixins_mouse__WEBPACK_IMPORTED_MODULE_12__","_directives_ripple__WEBPACK_IMPORTED_MODULE_13__","showSelect","checkboxColor","showExpand","showGroupBy","headerProps","calculateWidths","fixedHeader","headersLength","expandIcon","itemStyle","internalGroupBy","openCache","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","acc","filterable","sanitizedHeaderProps","computedItemsPerPage","firstOption","groupByText","_util_console__WEBPACK_IMPORTED_MODULE_16__","calcWidths","customFilterWithColumns","customSortWithHeaders","genCaption","genColgroup","genLoading","genHeaders","_VDataTableHeader__WEBPACK_IMPORTED_MODULE_4__","genGroupedRows","genRows","genDefaultGroupedRow","toggleFn","removeFn","_VIcon__WEBPACK_IMPORTED_MODULE_5__","_RowGroup__WEBPACK_IMPORTED_MODULE_7__","genScopedRows","genDefaultRows","genDefaultExpandedRow","genDefaultSimpleRow","slot_1","_VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_8__","slot_2","_MobileRow__WEBPACK_IMPORTED_MODULE_10__","_Row__WEBPACK_IMPORTED_MODULE_6__","_util_mergeData__WEBPACK_IMPORTED_MODULE_17__","genFoot","foot","genFooters","simpleProps","_VSimpleTable__WEBPACK_IMPORTED_MODULE_9__","proxySlot","_VData__WEBPACK_IMPORTED_MODULE_1__","vue__WEBPACK_IMPORTED_MODULE_7___default","_mixins_header__WEBPACK_IMPORTED_MODULE_3__","_util_dedupeModelListeners__WEBPACK_IMPORTED_MODULE_4__","_util_rebuildFunctionalSlots__WEBPACK_IMPORTED_MODULE_6__","_util_mergeData__WEBPACK_IMPORTED_MODULE_5__","_VDataTableHeaderMobile__WEBPACK_IMPORTED_MODULE_1__","_VDataTableHeaderDesktop__WEBPACK_IMPORTED_MODULE_2__","_mixins_header__WEBPACK_IMPORTED_MODULE_1__","genGroupByToggle","getAria","beingSorted","isDesc","$t","ariaSort","genHeader","genSelectAll","sortIndex","genSortIcon","groupable","sortByText","genSortChip","_VChip__WEBPACK_IMPORTED_MODULE_2__","genSortSelect","closeOnContentClick","sortHeaders","_mixins_returnable__WEBPACK_IMPORTED_MODULE_1__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_2__","_VBtn__WEBPACK_IMPORTED_MODULE_4__","_VMenu__WEBPACK_IMPORTED_MODULE_5__","_util_mixins__WEBPACK_IMPORTED_MODULE_6__","cancelText","eager","persistent","saveText","genButton","closeOnClick","activator","_VSimpleTable__WEBPACK_IMPORTED_MODULE_1__","headerHeight","rowHeight","oldChunk","scrollDebounce","invalidateCache","totalHeight","topIndex","chunkIndex","stopIndex","offsetBottom","cachedItems","createStyleHeight","genTable","VTableOverflow","_VDataTable__WEBPACK_IMPORTED_MODULE_1__","_VDataTableHeader__WEBPACK_IMPORTED_MODULE_2__","_VEditDialog__WEBPACK_IMPORTED_MODULE_3__","_VSimpleTable__WEBPACK_IMPORTED_MODULE_4__","_VVirtualTable__WEBPACK_IMPORTED_MODULE_5__","VDataTable","VDataTableHeader","VEditDialog","VSimpleTable","VVirtualTable","_directives_ripple__WEBPACK_IMPORTED_MODULE_2__","sortIcon","_VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_1__","_mixins_localable__WEBPACK_IMPORTED_MODULE_5__","_mixins_picker__WEBPACK_IMPORTED_MODULE_6__","activePicker","allowedDates","firstDayOfWeek","headerDateFormat","nextMonthAriaLabel","nextYearAriaLabel","pickerDate","prevMonthAriaLabel","prevYearAriaLabel","scrollable","showCurrent","selectedItemsText","showAdjacentMonths","titleDateFormat","yearFormat","yearIcon","internalActivePicker","inputDay","inputMonth","inputYear","isReversing","tableDate","multipleValue","_util__WEBPACK_IMPORTED_MODULE_12__","lastValue","selectedMonths","inputDate","tableMonth","tableYear","minMonth","maxMonth","formatters","titleDate","defaultTitleMultipleDateFormatter","defaultTitleDateFormatter","dates","titleFormats","titleDateFormatter","landscapeFormatter","nonDigit","digit","sanitizeType","checkMultipleProp","setInputDate","isDateAllowed","emitInput","newInput","output_1","valueType","_util_console__WEBPACK_IMPORTED_MODULE_11__","_util_isDateAllowed__WEBPACK_IMPORTED_MODULE_7__","yearClick","monthClick","_VCalendar_util_timestamp__WEBPACK_IMPORTED_MODULE_10__","dateClick","genPickerTitle","_VDatePickerTitle__WEBPACK_IMPORTED_MODULE_0__","selectingYear","genTableHeader","_VDatePickerHeader__WEBPACK_IMPORTED_MODULE_1__","nextAriaLabel","prevAriaLabel","genDateTable","_VDatePickerDateTable__WEBPACK_IMPORTED_MODULE_2__","genMonthTable","_VDatePickerMonthTable__WEBPACK_IMPORTED_MODULE_3__","genYears","_VDatePickerYears__WEBPACK_IMPORTED_MODULE_4__","genPickerBody","genPicker","_mixins_date_picker_table__WEBPACK_IMPORTED_MODULE_0__","_util_dateTimeUtils__WEBPACK_IMPORTED_MODULE_1__","calculateTableDate","genTHead","genTR","weekDaysBeforeFirstDayOfTheMonth","firstDayOfTheMonth","displayedYear","displayedMonth","weekDay","getUTCDay","dayInMonth","padStart","genTBody","prevMonthYear","prevMonth","firstDayFromPreviousMonth","cellsInRow","nextMonthYear","nextMonth","nextMonthDay","_mixins_localable__WEBPACK_IMPORTED_MODULE_4__","genBtn","ariaLabelId","calculateChange","_util__WEBPACK_IMPORTED_MODULE_1__","tds","_mixins_picker_button__WEBPACK_IMPORTED_MODULE_2__","computedTransition","genYearIcon","getYearBtn","genPickerButton","genTitleText","genTitleDate","_util_mergeData__WEBPACK_IMPORTED_MODULE_4__","defaultColor","activeItem","genYearItem","formatted","genYearItems","selectedYear","_VDatePicker__WEBPACK_IMPORTED_MODULE_0__","_VDatePickerTitle__WEBPACK_IMPORTED_MODULE_1__","_VDatePickerHeader__WEBPACK_IMPORTED_MODULE_2__","_VDatePickerDateTable__WEBPACK_IMPORTED_MODULE_3__","_VDatePickerMonthTable__WEBPACK_IMPORTED_MODULE_4__","_VDatePickerYears__WEBPACK_IMPORTED_MODULE_5__","VDatePicker","VDatePickerTitle","VDatePickerHeader","VDatePickerDateTable","VDatePickerMonthTable","VDatePickerYears","_mixins_localable__WEBPACK_IMPORTED_MODULE_3__","Touch","_directives_touch__WEBPACK_IMPORTED_MODULE_1__","wheelThrottle","wheel","genButtonClasses","isAllowed","isFloating","isCurrent","isLast","genButtonEvents","mouseEventType","_util_mergeData__WEBPACK_IMPORTED_MODULE_7__","isOtherMonth","_util_isDateAllowed__WEBPACK_IMPORTED_MODULE_6__","genEvents","getEventColors","eventData","arrayize","eventColors","isValidScroll","touchDirective","substrOptions","makeIsoString","dateString","_pad__WEBPACK_IMPORTED_MODULE_0__","intlFormatter_1","createItemTypeNativeListeners","itemTypeSuffix","createItemTypeListeners","_eventHelpers__WEBPACK_IMPORTED_MODULE_0__","_createNativeLocaleFormatter__WEBPACK_IMPORTED_MODULE_1__","_monthChange__WEBPACK_IMPORTED_MODULE_2__","_sanitizeDateString__WEBPACK_IMPORTED_MODULE_3__","_pad__WEBPACK_IMPORTED_MODULE_4__","allowedFn","targetLength","padString","_mixins_dependent__WEBPACK_IMPORTED_MODULE_3__","_mixins_detachable__WEBPACK_IMPORTED_MODULE_4__","_mixins_overlayable__WEBPACK_IMPORTED_MODULE_5__","_mixins_returnable__WEBPACK_IMPORTED_MODULE_6__","_mixins_stackable__WEBPACK_IMPORTED_MODULE_7__","_mixins_activatable__WEBPACK_IMPORTED_MODULE_2__","ClickOutside","_directives_click_outside__WEBPACK_IMPORTED_MODULE_8__","fullscreen","noClickAnimation","retainFocus","animate","animateTimeout","stackMinZIndex","previousActiveElement","hasActivator","hideScroll","removeOverlay","showScroll","genOverlay","animateClick","closeConditional","activeZIndex","getMaxZIndex","hideOverlay","onFocusin","onClickOutside","getOpenDependents","activator_1","getActivator","getOpenDependentElements","focusable","showLazyContent","_VThemeProvider__WEBPACK_IMPORTED_MODULE_1__","getScopeIdAttrs","genTransition","genInnerContent","transformOrigin","getContentSlot","genActivator","_VDialog__WEBPACK_IMPORTED_MODULE_0__","_VDivider__WEBPACK_IMPORTED_MODULE_0__","_mixins_groupable__WEBPACK_IMPORTED_MODULE_0__","_mixins_registrable__WEBPACK_IMPORTED_MODULE_1__","nextIsActive","expansionPanels","registerContent","unregisterContent","registerHeader","unregisterHeader","_transitions__WEBPACK_IMPORTED_MODULE_0__","_mixins_bootable__WEBPACK_IMPORTED_MODULE_1__","_mixins_registrable__WEBPACK_IMPORTED_MODULE_3__","parentIsActive","expansionPanel","_directives_ripple__WEBPACK_IMPORTED_MODULE_4__","disableIconRotate","hideActions","hasMousedown","mouseup","_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_1__","accordion","popout","_util_console__WEBPACK_IMPORTED_MODULE_2__","updateItem","toggleMethod","_VExpansionPanels__WEBPACK_IMPORTED_MODULE_0__","_VExpansionPanel__WEBPACK_IMPORTED_MODULE_1__","_VExpansionPanelContent__WEBPACK_IMPORTED_MODULE_2__","_VExpansionPanelHeader__WEBPACK_IMPORTED_MODULE_3__","VExpansionPanels","VExpansionPanel","VExpansionPanelHeader","VExpansionPanelContent","_VTextField__WEBPACK_IMPORTED_MODULE_1__","chips","clearable","counterSizeString","counterString","hideInput","prependIcon","showSize","smallChips","truncateLength","fileCount","lazyValue","internalArrayValue","isLabelActive","persistentPlaceholder","hasLabel","truncatedText","truncateText","_util_console__WEBPACK_IMPORTED_MODULE_4__","genChips","genControl","genPrependSlot","genSelectionText","genTextFieldSlot","initialValue","charsKeepOneSide","_VFileInput__WEBPACK_IMPORTED_MODULE_0__","_mixins_applicationable__WEBPACK_IMPORTED_MODULE_2__","_mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_3__","padless","isPositioned","_VFooter__WEBPACK_IMPORTED_MODULE_0__","_mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_1__","_mixins_registrable__WEBPACK_IMPORTED_MODULE_2__","lazyValidation","errorBag","watchInput","valid","resetErrorBag","resetValidation","unwatch","novalidate","_VForm__WEBPACK_IMPORTED_MODULE_0__","breakpoints","breakpointProps","offsetProps","orderProps","propMap","breakpointClass","breakpoint","alignSelf","cacheKey","type_1","hasColClasses","_util_mergeData__WEBPACK_IMPORTED_MODULE_2__","_grid__WEBPACK_IMPORTED_MODULE_2__","fluid","_grid__WEBPACK_IMPORTED_MODULE_1__","ALIGNMENT","makeProps","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","justify","alignContent","classMap","noGutters","VGrid","_VContainer__WEBPACK_IMPORTED_MODULE_0__","_VCol__WEBPACK_IMPORTED_MODULE_1__","_VRow__WEBPACK_IMPORTED_MODULE_2__","_VSpacer__WEBPACK_IMPORTED_MODULE_3__","_VLayout__WEBPACK_IMPORTED_MODULE_4__","_VFlex__WEBPACK_IMPORTED_MODULE_5__","VContainer","VCol","VRow","VSpacer","VLayout","VFlex","_mixins_delayable__WEBPACK_IMPORTED_MODULE_0__","_mixins_toggleable__WEBPACK_IMPORTED_MODULE_1__","_util_console__WEBPACK_IMPORTED_MODULE_3__","onMouseEnter","runDelay","onMouseLeave","mouseenter","mouseleave","_VHover__WEBPACK_IMPORTED_MODULE_0__","SIZE_MAP","isFontAwesome5","iconType","isSvgPath","VIcon","_mixins_sizeable__WEBPACK_IMPORTED_MODULE_3__","medium","hasClickListener","getSize","xSmall","xLarge","explicitSize","getDefaultData","getSvgWrapperData","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","xmlns","renderSvgIconComponent","vue__WEBPACK_IMPORTED_MODULE_6___default","$_wrapperFor","hasIntersect","_VResponsive__WEBPACK_IMPORTED_MODULE_2__","intersect","_directives_intersect__WEBPACK_IMPORTED_MODULE_1__","gradient","lazySrc","rootMargin","srcset","currentSrc","calculatedAspectRatio","computedAspectRatio","normalisedSrc","aspect","aspectRatio","__cachedImage","backgroundPosition","loadImage","isIntersecting","lazyImg","pollForSize","getSrc","poll","__genPlaceholder","__cachedSizer","_VImg__WEBPACK_IMPORTED_MODULE_0__","_mixins_binds_attrs__WEBPACK_IMPORTED_MODULE_4__","_mixins_validatable__WEBPACK_IMPORTED_MODULE_5__","appendIcon","hideSpinButtons","persistentHint","hasMouseDown","hasState","computedId","hasDetails","messagesToDisplay","hasHint","hasMessages","$_modelEvent","validations","validationResult","genAppendSlot","genMessages","extraData","hasListener","localeKey","prependInner","appendOuter","onMouseUp","_VLabel__WEBPACK_IMPORTED_MODULE_2__","_VMessages__WEBPACK_IMPORTED_MODULE_3__","_VInput__WEBPACK_IMPORTED_MODULE_0__","BaseItem","_mixins_groupable__WEBPACK_IMPORTED_MODULE_1__","BaseItemGroup","_mixins_comparable__WEBPACK_IMPORTED_MODULE_1__","_mixins_proxyable__WEBPACK_IMPORTED_MODULE_2__","internalLazyValue","intern","_util_console__WEBPACK_IMPORTED_MODULE_5__","updateInternalValue","updateMandatory","valueIndex","updateItemsState","updateMultiple","updateSingle","isSame","itemGroup","_VItem__WEBPACK_IMPORTED_MODULE_0__","_VItemGroup__WEBPACK_IMPORTED_MODULE_1__","VItem","VItemGroup","_VLabel__WEBPACK_IMPORTED_MODULE_0__","_mixins_measurable__WEBPACK_IMPORTED_MODULE_0__","_directives_intersect__WEBPACK_IMPORTED_MODULE_2__","onObserve","_VLazy__WEBPACK_IMPORTED_MODULE_0__","isInList","isInMenu","isInNav","nav","subheader","threeLine","twoLine","listClick","_util_mixins__WEBPACK_IMPORTED_MODULE_11__","_mixins_bootable__WEBPACK_IMPORTED_MODULE_5__","_mixins_colorable__WEBPACK_IMPORTED_MODULE_6__","_mixins_registrable__WEBPACK_IMPORTED_MODULE_8__","_directives_ripple__WEBPACK_IMPORTED_MODULE_9__","noAction","subGroup","genAppendIcon","_util_helpers__WEBPACK_IMPORTED_MODULE_12__","_VListItemIcon__WEBPACK_IMPORTED_MODULE_3__","_VListItem__WEBPACK_IMPORTED_MODULE_2__","genPrependIcon","onRouteChange","_transitions__WEBPACK_IMPORTED_MODULE_10__","_mixins_routable__WEBPACK_IMPORTED_MODULE_2__","_mixins_toggleable__WEBPACK_IMPORTED_MODULE_5__","_directives_ripple__WEBPACK_IMPORTED_MODULE_6__","isInGroup","listItemGroup","selectable","genAttrs","filteredChild","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","_VList__WEBPACK_IMPORTED_MODULE_1__","_VListGroup__WEBPACK_IMPORTED_MODULE_2__","_VListItem__WEBPACK_IMPORTED_MODULE_3__","_VListItemGroup__WEBPACK_IMPORTED_MODULE_4__","_VListItemAction__WEBPACK_IMPORTED_MODULE_5__","_VListItemAvatar__WEBPACK_IMPORTED_MODULE_6__","_VListItemIcon__WEBPACK_IMPORTED_MODULE_7__","VList","VListGroup","VListItem","VListItemAction","VListItemAvatar","VListItemGroup","VListItemIcon","_mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_1__","insetFooter","_VMain__WEBPACK_IMPORTED_MODULE_0__","_mixins_dependent__WEBPACK_IMPORTED_MODULE_4__","_mixins_delayable__WEBPACK_IMPORTED_MODULE_3__","_mixins_roundable__WEBPACK_IMPORTED_MODULE_7__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_8__","_mixins_menuable__WEBPACK_IMPORTED_MODULE_5__","_directives_click_outside__WEBPACK_IMPORTED_MODULE_9__","_directives_resize__WEBPACK_IMPORTED_MODULE_10__","disableKeys","openOnHover","contentProps","calculatedTopAuto","defaultOffset","hasJustFocused","resizeTimeout","tiles","activeTile","calculatedLeft","menuWidth","calculatedMinWidth","_util_helpers__WEBPACK_IMPORTED_MODULE_13__","calcXOverflow","calcLeftAuto","calcLeft","calculatedMaxHeight","calculatedMaxWidth","nudgeWidth","pageWidth","calculatedTop","calcYOverflow","calcTop","hasClickableTiles","isContentActive","contentHeight","_services_goto__WEBPACK_IMPORTED_MODULE_14__","appOffset","_util_console__WEBPACK_IMPORTED_MODULE_12__","callActivate","startTransition","calcTopAuto","calcScrollPosition","maxScrollTop","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","nextTile","prevTile","lastTile","firstTile","genActivatorAttributes","genActivatorListeners","rootThemeClasses","activatorFixed","menuable__content__active","mouseEnterHandler","mouseLeaveHandler","callDeactivate","_VMenu__WEBPACK_IMPORTED_MODULE_0__","genMessage","_VMessages__WEBPACK_IMPORTED_MODULE_0__","_util_mixins__WEBPACK_IMPORTED_MODULE_13__","_mixins_overlayable__WEBPACK_IMPORTED_MODULE_6__","_mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_7__","_directives_touch__WEBPACK_IMPORTED_MODULE_11__","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","miniVariant","miniVariantWidth","permanent","stateless","temporary","touchless","isMouseover","touchArea","isMiniVariant","computedMaxHeight","hasApp","computedWidth","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","translate","updateMiniVariant","calculateTouchArea","parentRect","genAppend","genPosition","_VImg_VImg__WEBPACK_IMPORTED_MODULE_1__","swipeLeft","swipeRight","genListeners","transitionend","resizeEvent","initUIEvent","genPrepend","genBorder","touchendX","touchstartX","_VNavigationDrawer__WEBPACK_IMPORTED_MODULE_0__","_VInput__WEBPACK_IMPORTED_MODULE_2__","otp","_VTextField_VTextField__WEBPACK_IMPORTED_MODULE_3__","otpIdx","genFieldset","genLegend","span","maxCursor","inputDataArray","newOtp","appIdx","onCompleted","clearFocus","changeFocus","eventKey","rsp","_VOtpInput__WEBPACK_IMPORTED_MODULE_0__","_VAutocomplete__WEBPACK_IMPORTED_MODULE_2__","editable","segmented","isSingle","labelValue","genCommaSelection","genSegmentedBtn","itemObj","_VOverflowBtn__WEBPACK_IMPORTED_MODULE_0__","_mixins_toggleable__WEBPACK_IMPORTED_MODULE_3__","__scrim","_VOverlay__WEBPACK_IMPORTED_MODULE_0__","_mixins_intersectable__WEBPACK_IMPORTED_MODULE_4__","onVisible","_directives_resize__WEBPACK_IMPORTED_MODULE_2__","navigationColor","navigationTextColor","totalVisible","pageAriaLabel","currentPageAriaLabel","previousAriaLabel","wrapperAriaLabel","maxButtons","even","lastItem","beforeLastItem","genItem","isCurrentPage","genList","_VPagination__WEBPACK_IMPORTED_MODULE_0__","_mixins_translatable__WEBPACK_IMPORTED_MODULE_1__","parallax","objHeight","imgData","_VParallax__WEBPACK_IMPORTED_MODULE_0__","_mixins_elevatable__WEBPACK_IMPORTED_MODULE_3__","fullWidth","noTitle","computedTitleColor","defaultTitleColor","genTitle","genBodyTransition","_VPicker__WEBPACK_IMPORTED_MODULE_0__","rotate","calculatedSize","circumference","normalizedValue","strokeDashArray","strokeDashOffset","strokeWidth","viewBoxSize","svgStyles","genCircle","genSvg","genInfo","_VProgressCircular__WEBPACK_IMPORTED_MODULE_0__","_mixins_positionable__WEBPACK_IMPORTED_MODULE_4__","bufferValue","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedIndeterminate","__cachedDeterminate","__cachedBuffer","genProgressBar","__cachedStream","normalizedBuffer","isReversed","_transitions__WEBPACK_IMPORTED_MODULE_1__","_VProgressLinear__WEBPACK_IMPORTED_MODULE_0__","_mixins_colorable__WEBPACK_IMPORTED_MODULE_5__","_mixins_rippleable__WEBPACK_IMPORTED_MODULE_7__","_mixins_groupable__WEBPACK_IMPORTED_MODULE_6__","_mixins_selectable__WEBPACK_IMPORTED_MODULE_9__","radioGroup","computedName","_VLabel__WEBPACK_IMPORTED_MODULE_1__","_util_helpers__WEBPACK_IMPORTED_MODULE_10__","genRadio","radioAttrs","_util_mergeData__WEBPACK_IMPORTED_MODULE_12__","_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_3__","_VRadioGroup__WEBPACK_IMPORTED_MODULE_0__","_VRadio__WEBPACK_IMPORTED_MODULE_1__","VRadioGroup","VRadio","_VSlider__WEBPACK_IMPORTED_MODULE_1__","activeThumb","toFocus","getTrackStyle","startLength","endLength","startPadding","endPadding","startDir","endDir","trackTransition","getIndexOfClosestValue","genTrackContainer","padding","sections","computedTrackColor","computedTrackFillColor","section","genSteps","valueWidth","genThumbContainer","reevaluateSelected","refName","thumbRef","onSliderMouseDown","parseMouseMove","thumbPressed","domRect","mouseTimeout","mouseUpOptions","mouseMoveOptions","isTouchEvent","onSliderMouseUp","onSliderClick","noClick","setInternalValue","parseKeyDown","_VRangeSlider__WEBPACK_IMPORTED_MODULE_0__","_mixins_sizeable__WEBPACK_IMPORTED_MODULE_4__","_mixins_rippleable__WEBPACK_IMPORTED_MODULE_5__","emptyIcon","fullIcon","halfIcon","halfIncrements","iconLabel","hoverIndex","iconProps","isHovering","createClickFn","genHoverIndex","createProps","isFilled","isHovered","isHalfHovered","isHalfFilled","isHalf","isHalfEvent","getIconName","isFull","getColor","mousemove","_VRating__WEBPACK_IMPORTED_MODULE_0__","_mixins_measurable__WEBPACK_IMPORTED_MODULE_1__","aspectStyle","_VResponsive__WEBPACK_IMPORTED_MODULE_0__","openOnClick","_VTextField_VTextField__WEBPACK_IMPORTED_MODULE_6__","_mixins_comparable__WEBPACK_IMPORTED_MODULE_7__","_mixins_dependent__WEBPACK_IMPORTED_MODULE_8__","_mixins_filterable__WEBPACK_IMPORTED_MODULE_9__","_directives_click_outside__WEBPACK_IMPORTED_MODULE_10__","cacheItems","deletableChips","disableLookup","itemColor","openOnClear","menuIsBooted","keyboardLookupPrefix","keyboardLookupLastTime","filterDuplicates","computedOwns","counterValue","dynamicHeight","staticList","_util_console__WEBPACK_IMPORTED_MODULE_13__","_VSelectList__WEBPACK_IMPORTED_MODULE_4__","normalisedProps","nudgeBottom","onMenuActiveChange","uniqueValues","selections","genAffix","genClearIcon","genIconSlot","genHiddenInput","genMenu","_VInput__WEBPACK_IMPORTED_MODULE_5__","_util_mergeData__WEBPACK_IMPORTED_MODULE_11__","keypress","onKeyPress","genListWithSlot","_VMenu__WEBPACK_IMPORTED_MODULE_3__","genSelection","genSlotSelection","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","showMoreItems","index_1","values_1","values_1_1","appendInner","parsedItems","tileActiveClass","staticNoDataTile","_VList__WEBPACK_IMPORTED_MODULE_3__","genTileContent","genAction","_VCheckbox_VSimpleCheckbox__WEBPACK_IMPORTED_MODULE_0__","_VDivider__WEBPACK_IMPORTED_MODULE_1__","genFilteredText","getMaskedCharacters","genHighlight","_VSubheader__WEBPACK_IMPORTED_MODULE_2__","genTile","needsTile","_VSelect__WEBPACK_IMPORTED_MODULE_0__","_mixins_roundable__WEBPACK_IMPORTED_MODULE_5__","_VSheet__WEBPACK_IMPORTED_MODULE_0__","_mixins_elevatable__WEBPACK_IMPORTED_MODULE_1__","boilerplate","rootTypes","article","card","heading","paragraph","sentences","genBone","genBones","bone","genStructure","mapBones","genSkeleton","resetStyles","onBeforeEnter","onBeforeLeave","bones","_initialStyle","_VSkeletonLoader__WEBPACK_IMPORTED_MODULE_0__","bias","calculateUpdatedOffset","currentScrollOffset","itemOffset","additionalOffset","calculateCenteredOffset","offsetCentered","BaseSlideGroup","_mixins_mobile__WEBPACK_IMPORTED_MODULE_4__","_directives_resize__WEBPACK_IMPORTED_MODULE_5__","_directives_touch__WEBPACK_IMPORTED_MODULE_6__","centerActive","isOverflowing","isSwipingHorizontal","isSwiping","canTouch","__cachedNext","__cachedPrev","hasAffixes","hasPrev","obs_1","itemsLength_1","setWidths","genNext","onAffixClick","focusin","upperLocation","hasAffix","genPrev","overflowCheck","onTouchStart","onTouchMove","onTouchEnd","calculateNewOffset","newAbosluteOffset","touchmoveX","touchmoveY","touchstartY","maxScrollOffset","lastItemPosition","wrapperPosition","slideGroup","_VItemGroup_VItem__WEBPACK_IMPORTED_MODULE_0__","_VSlideGroup__WEBPACK_IMPORTED_MODULE_0__","_VSlideItem__WEBPACK_IMPORTED_MODULE_1__","VSlideGroup","VSlideItem","_VInput__WEBPACK_IMPORTED_MODULE_1__","_mixins_loadable__WEBPACK_IMPORTED_MODULE_4__","_directives_click_outside__WEBPACK_IMPORTED_MODULE_5__","inverseLabel","thumbLabel","thumbSize","tickLabels","ticks","tickSize","trackColor","trackFillColor","showTicks","stepNumeric","trackFillStyles","valueDir","trackStyles","numTicks","showThumbLabel","computedThumbColor","genSlider","touchstart","offsetDirection","genThumb","thumbLabelContent","genThumbLabelContent","genThumbLabel","getThumbContainerStyles","thumb","trackStart","trackLength","clickOffset","clickPos","pageup","pagedown","increase","multiplier","trimmedStep","decimals","_VSlider__WEBPACK_IMPORTED_MODULE_0__","_mixins_positionable__WEBPACK_IMPORTED_MODULE_5__","centered","activeTimeout","pointerenter","pointerleave","_VSnackbar__WEBPACK_IMPORTED_MODULE_0__","_mixins_colorable__WEBPACK_IMPORTED_MODULE_0__","autoDraw","autoDrawDuration","autoDrawEasing","autoLineWidth","gradientDirection","labels","labelSize","lineWidth","showLabels","smooth","parsedPadding","parsedWidth","parsedHeight","parsedLabelSize","hasLabels","_lineWidth","totalValues","totalPadding","boundary","parsedLabels","normalizedValues","_helpers_core__WEBPACK_IMPORTED_MODULE_2__","textY","_radius","getTotalLength","strokeDasharray","strokeDashoffset","genGradient","stops","gradientUnits","genG","textAnchor","dominantBaseline","genPath","_helpers_path__WEBPACK_IMPORTED_MODULE_3__","genLabels","genBars","bars","genClipPath","rounding","ry","attributeName","dur","genTrend","genPoints","gridX","gridY","horizonY","checkCollinear","p0","p2","getDistance","vector","unitVector","_math__WEBPACK_IMPORTED_MODULE_0__","isCollinear","isTooCloseForRadius","radiusForPoint","_VSparkline__WEBPACK_IMPORTED_MODULE_0__","_mixins_positionable__WEBPACK_IMPORTED_MODULE_2__","_mixins_transitionable__WEBPACK_IMPORTED_MODULE_3__","_directives_click_outside__WEBPACK_IMPORTED_MODULE_4__","btnCount_1","transitionDelay","_VSpeedDial__WEBPACK_IMPORTED_MODULE_0__","_mixins_proxyable__WEBPACK_IMPORTED_MODULE_3__","stepClick","altLabels","nonLinear","isReverse","updateView","isVerticalProvided","onTransition","stepper","contentData","_directives_ripple__WEBPACK_IMPORTED_MODULE_3__","completeIcon","editIcon","errorIcon","rules","isInactive","genStep","genStepContent","keyboardClick","VStepperHeader","VStepperItems","_VStepper__WEBPACK_IMPORTED_MODULE_1__","_VStepperStep__WEBPACK_IMPORTED_MODULE_2__","_VStepperContent__WEBPACK_IMPORTED_MODULE_3__","VStepper","VStepperContent","VStepperStep","_VSubheader__WEBPACK_IMPORTED_MODULE_0__","_mixins_selectable__WEBPACK_IMPORTED_MODULE_2__","_directives_touch__WEBPACK_IMPORTED_MODULE_4__","switchData","switchAttrs","onSwipeLeft","onSwipeRight","_transitions__WEBPACK_IMPORTED_MODULE_5__","_VProgressCircular_VProgressCircular__WEBPACK_IMPORTED_MODULE_6__","_VSwitch__WEBPACK_IMPORTED_MODULE_0__","lightsOut","_VSystemBar__WEBPACK_IMPORTED_MODULE_0__","_mixins_routable__WEBPACK_IMPORTED_MODULE_1__","tabValue","tabsBar","_directives_resize__WEBPACK_IMPORTED_MODULE_7__","alignWithTitle","fixedTabs","hideSlider","iconsAndText","sliderColor","sliderSize","transitionTime","sliderStyles","appIsDark","callSlider","genBar","_VTabsBar__WEBPACK_IMPORTED_MODULE_1__","_VTabsItems__WEBPACK_IMPORTED_MODULE_2__","_VTabsSlider__WEBPACK_IMPORTED_MODULE_3__","parseNodes","_VSlideGroup_VSlideGroup__WEBPACK_IMPORTED_MODULE_0__","_mixins_ssr_bootable__WEBPACK_IMPORTED_MODULE_2__","newPath","oldPath","hasNew","hasOld","items_1","items_1_1","_VWindow_VWindow__WEBPACK_IMPORTED_MODULE_0__","rootIsDark","_VTabs__WEBPACK_IMPORTED_MODULE_0__","_VTab__WEBPACK_IMPORTED_MODULE_1__","_VTabItem__WEBPACK_IMPORTED_MODULE_3__","_VTabsSlider__WEBPACK_IMPORTED_MODULE_4__","VTabs","VTab","VTabsItems","VTabItem","VTabsSlider","_util_mixins__WEBPACK_IMPORTED_MODULE_12__","_mixins_loadable__WEBPACK_IMPORTED_MODULE_5__","dirtyTypes","_directives_ripple__WEBPACK_IMPORTED_MODULE_8__","appendOuterIcon","autofocus","clearIcon","prependInnerIcon","solo","soloInverted","labelWidth","prefixWidth","prependWidth","isClearing","isSolo","isEnclosed","_mixins_validatable__WEBPACK_IMPORTED_MODULE_6__","hasCounter","labelPosition","setLabelWidth","setPrefixWidth","tryAutofocus","genPrependInnerSlot","genCounter","_VCounter__WEBPACK_IMPORTED_MODULE_2__","_VLabel__WEBPACK_IMPORTED_MODULE_3__","inputAttrs","messagesNode","counterNode","_util_dom__WEBPACK_IMPORTED_MODULE_9__","setPrependWidth","_VTextField__WEBPACK_IMPORTED_MODULE_0__","_VTextField_VTextField__WEBPACK_IMPORTED_MODULE_1__","noResize","noResizeHandle","calculateInputHeight","_VTextarea__WEBPACK_IMPORTED_MODULE_0__","_mixins_themeable__WEBPACK_IMPORTED_MODULE_0__","_VThemeProvider__WEBPACK_IMPORTED_MODULE_0__","SelectingTimes","rangeHours24","rangeHours12am","rangeHours12pm","range60","selectingNames","2","3","_mixins_picker__WEBPACK_IMPORTED_MODULE_2__","_mixins_picker_button__WEBPACK_IMPORTED_MODULE_3__","allowedHours","allowedMinutes","allowedSeconds","useSeconds","ampmInTitle","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","period","selecting","_SelectingTimes__WEBPACK_IMPORTED_MODULE_7__","Hour","selectingHour","selectingMinute","Minute","selectingSecond","Second","isAllowedHourCb","minHour","maxHour","isAllowedMinuteCb","isHourAllowed","minMinute","maxMinute","minTime","maxTime","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","setInputData","setPeriod","genValue","_VDatePicker_util_pad__WEBPACK_IMPORTED_MODULE_5__","emitValue","emitPicker","setPicker","newHour","firstAllowed","convert12to24","convert24to12","emitChange","genClock","_VTimePickerClock__WEBPACK_IMPORTED_MODULE_1__","allowedValues","double","genClockAmPm","_VTimePickerTitle__WEBPACK_IMPORTED_MODULE_0__","ampmReadonly","valueOnMouseDown","valueOnMouseUp","degreesPerUnit","roundCount","degrees","displayedValue","innerRadiusScale","isInner","handScale","genValues","getTransform","genHand","angle","getPosition","rotateRadians","sin","cos","onDragMove","clock","innerClock","coords","handAngle","insideClick","euclidean","checksCount","angleToValue","setMouseDownValue","atan2","touchend","touchmove","_mixins_picker_button__WEBPACK_IMPORTED_MODULE_1__","_VDatePicker_util__WEBPACK_IMPORTED_MODULE_2__","_SelectingTimes__WEBPACK_IMPORTED_MODULE_4__","genTime","displayedHour","displayedMinute","titleContent","displayedSecond","genAmPm","_VTimePicker__WEBPACK_IMPORTED_MODULE_0__","_VTimePickerTitle__WEBPACK_IMPORTED_MODULE_2__","VTimePicker","VTimePickerClock","VTimePickerTitle","timeline","alignTop","fillDot","hideDot","genInnerDot","genOpposite","opposite","_VTimeline__WEBPACK_IMPORTED_MODULE_0__","_VTimelineItem__WEBPACK_IMPORTED_MODULE_1__","VTimeline","VTimelineItem","extended","smAndDown","_VImg_VImg__WEBPACK_IMPORTED_MODULE_2__","genExtension","extension","VToolbarItems","VToolbarTitle","_VToolbar__WEBPACK_IMPORTED_MODULE_0__","VToolbar","_mixins_activatable__WEBPACK_IMPORTED_MODULE_1__","closeDelay","openDelay","openOnFocus","closeDependents","activatorLeft","nudgeLeft","nudgeRight","activatorTop","nudgeTop","deactivate","_VTooltip__WEBPACK_IMPORTED_MODULE_0__","treeview","hoverable","multipleActive","openAll","_VTreeviewNode__WEBPACK_IMPORTED_MODULE_1__","activeCache","selectedCache","excludedItems","excluded","_util_filterTreeItems__WEBPACK_IMPORTED_MODULE_7__","itemChildren","oldKeys","newKeys","oldSelectedCache","buildTree","emitSelected","handleNodeCacheWatcher","updateActive","emitActive","updateSelected","updateOpen","emitOpen","updateAll","oldNode","selectionType","calculateState","updateVnodeState","counts","emitNodeCache","updateFn","emitFn","getDescendants","getParents","parents","isParent","isForced","calculated","calculated_1","_j","hasLoaded","checkChildren","isExcluded","genChild","VTreeviewNodeProps","activatable","disablePerNode","loadChildren","loadingIcon","selectedColor","VTreeviewNode","parentIsDisabled","hasChildren","genToggle","genLevel","genChildrenWrapper","_VTreeview__WEBPACK_IMPORTED_MODULE_0__","VTreeview","filterTreeItem","filterTreeItems","textKey","idKey","childrenKey","bench","itemHeight","__bench","__itemHeight","firstToRender","lastToRender","getLast","getChildren","getFirst","_VVirtualScroll__WEBPACK_IMPORTED_MODULE_0__","_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_4__","showArrowsOnHover","changedByDelimiters","transitionHeight","transitionCount","axis","internalReverse","hasActiveItems","updateReverse","genContainer","_click","getPrevIndex","_mixins_bootable__WEBPACK_IMPORTED_MODULE_0__","_directives_touch__WEBPACK_IMPORTED_MODULE_2__","reverseTransition","inTransition","onAfterTransition","onBeforeTransition","onTransitionCancelled","_VWindow__WEBPACK_IMPORTED_MODULE_0__","_VWindowItem__WEBPACK_IMPORTED_MODULE_1__","VWindow","VWindowItem","_VAppBar__WEBPACK_IMPORTED_MODULE_1__","_VAlert__WEBPACK_IMPORTED_MODULE_2__","_VAutocomplete__WEBPACK_IMPORTED_MODULE_3__","_VAvatar__WEBPACK_IMPORTED_MODULE_4__","_VBadge__WEBPACK_IMPORTED_MODULE_5__","_VBanner__WEBPACK_IMPORTED_MODULE_6__","_VBottomNavigation__WEBPACK_IMPORTED_MODULE_7__","_VBottomSheet__WEBPACK_IMPORTED_MODULE_8__","_VBreadcrumbs__WEBPACK_IMPORTED_MODULE_9__","_VBtn__WEBPACK_IMPORTED_MODULE_10__","_VBtnToggle__WEBPACK_IMPORTED_MODULE_11__","_VCalendar__WEBPACK_IMPORTED_MODULE_12__","_VCard__WEBPACK_IMPORTED_MODULE_13__","_VCarousel__WEBPACK_IMPORTED_MODULE_14__","_VCheckbox__WEBPACK_IMPORTED_MODULE_15__","_VChip__WEBPACK_IMPORTED_MODULE_16__","_VChipGroup__WEBPACK_IMPORTED_MODULE_17__","_VColorPicker__WEBPACK_IMPORTED_MODULE_18__","_VContent__WEBPACK_IMPORTED_MODULE_19__","_VCombobox__WEBPACK_IMPORTED_MODULE_20__","_VCounter__WEBPACK_IMPORTED_MODULE_21__","_VData__WEBPACK_IMPORTED_MODULE_22__","_VDataIterator__WEBPACK_IMPORTED_MODULE_23__","_VDataTable__WEBPACK_IMPORTED_MODULE_24__","_VDatePicker__WEBPACK_IMPORTED_MODULE_25__","_VDialog__WEBPACK_IMPORTED_MODULE_26__","_VDivider__WEBPACK_IMPORTED_MODULE_27__","_VExpansionPanel__WEBPACK_IMPORTED_MODULE_28__","_VFileInput__WEBPACK_IMPORTED_MODULE_29__","_VFooter__WEBPACK_IMPORTED_MODULE_30__","_VForm__WEBPACK_IMPORTED_MODULE_31__","_VGrid__WEBPACK_IMPORTED_MODULE_32__","_VHover__WEBPACK_IMPORTED_MODULE_33__","_VIcon__WEBPACK_IMPORTED_MODULE_34__","_VImg__WEBPACK_IMPORTED_MODULE_35__","_VInput__WEBPACK_IMPORTED_MODULE_36__","_VItemGroup__WEBPACK_IMPORTED_MODULE_37__","_VLabel__WEBPACK_IMPORTED_MODULE_38__","_VLazy__WEBPACK_IMPORTED_MODULE_39__","_VList__WEBPACK_IMPORTED_MODULE_40__","_VMain__WEBPACK_IMPORTED_MODULE_41__","_VMenu__WEBPACK_IMPORTED_MODULE_42__","_VMessages__WEBPACK_IMPORTED_MODULE_43__","_VNavigationDrawer__WEBPACK_IMPORTED_MODULE_44__","_VOtpInput__WEBPACK_IMPORTED_MODULE_45__","_VOverflowBtn__WEBPACK_IMPORTED_MODULE_46__","_VOverlay__WEBPACK_IMPORTED_MODULE_47__","_VPagination__WEBPACK_IMPORTED_MODULE_48__","_VSheet__WEBPACK_IMPORTED_MODULE_49__","_VParallax__WEBPACK_IMPORTED_MODULE_50__","_VPicker__WEBPACK_IMPORTED_MODULE_51__","_VProgressCircular__WEBPACK_IMPORTED_MODULE_52__","_VProgressLinear__WEBPACK_IMPORTED_MODULE_53__","_VRadioGroup__WEBPACK_IMPORTED_MODULE_54__","_VRangeSlider__WEBPACK_IMPORTED_MODULE_55__","_VRating__WEBPACK_IMPORTED_MODULE_56__","_VResponsive__WEBPACK_IMPORTED_MODULE_57__","_VSelect__WEBPACK_IMPORTED_MODULE_58__","_VSkeletonLoader__WEBPACK_IMPORTED_MODULE_59__","_VSlider__WEBPACK_IMPORTED_MODULE_60__","_VSlideGroup__WEBPACK_IMPORTED_MODULE_61__","_VSnackbar__WEBPACK_IMPORTED_MODULE_62__","_VSparkline__WEBPACK_IMPORTED_MODULE_63__","_VSpeedDial__WEBPACK_IMPORTED_MODULE_64__","_VStepper__WEBPACK_IMPORTED_MODULE_65__","_VSubheader__WEBPACK_IMPORTED_MODULE_66__","_VSwitch__WEBPACK_IMPORTED_MODULE_67__","_VSystemBar__WEBPACK_IMPORTED_MODULE_68__","_VTabs__WEBPACK_IMPORTED_MODULE_69__","_VTextarea__WEBPACK_IMPORTED_MODULE_70__","_VTextField__WEBPACK_IMPORTED_MODULE_71__","_VThemeProvider__WEBPACK_IMPORTED_MODULE_72__","_VTimeline__WEBPACK_IMPORTED_MODULE_73__","_VTimePicker__WEBPACK_IMPORTED_MODULE_74__","_VToolbar__WEBPACK_IMPORTED_MODULE_75__","_VTooltip__WEBPACK_IMPORTED_MODULE_76__","_VTreeview__WEBPACK_IMPORTED_MODULE_77__","_VVirtualScroll__WEBPACK_IMPORTED_MODULE_78__","_VWindow__WEBPACK_IMPORTED_MODULE_79__","_transitions__WEBPACK_IMPORTED_MODULE_80__","mergeTransitions","transitions","createSimpleTransition","hideOnLeave","leaveAbsolute","webkitTransformOrigin","_transitionInitialStyles","_util_mergeData__WEBPACK_IMPORTED_MODULE_0__","createJavascriptTransition","functions","expandedParentClass","sizeProperty","offsetProperty","_parent","initialStyle","VCarouselTransition","VCarouselReverseTransition","VTabTransition","VTabReverseTransition","VMenuTransition","VFabTransition","VDialogTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","VExpandXTransition","_createTransition__WEBPACK_IMPORTED_MODULE_0__","_expand_transition__WEBPACK_IMPORTED_MODULE_1__","defaultConditional","checkEvent","checkIsActive","_util_dom__WEBPACK_IMPORTED_MODULE_0__","ShadowRoot","_clickOutside","lastMousedownWasOutside","handleShadow","onMousedown","_click_outside__WEBPACK_IMPORTED_MODULE_0__","_intersect__WEBPACK_IMPORTED_MODULE_1__","_mutate__WEBPACK_IMPORTED_MODULE_2__","_resize__WEBPACK_IMPORTED_MODULE_3__","_ripple__WEBPACK_IMPORTED_MODULE_4__","_scroll__WEBPACK_IMPORTED_MODULE_5__","_touch__WEBPACK_IMPORTED_MODULE_6__","IntersectionObserver","_observe","unobserve","Intersect","modifierKeys","hasModifiers","_mutate","Mutate","_onResize","DELAY_RIPPLE","webkitTransform","isKeyboardEvent","calculate","localX","localY","_ripple","centerX","centerY","ripples","previousPosition","isHiding","isRippleEnabled","rippleShow","touched","rippleStop","showTimerCommit","showTimer","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","wasEnabled","removeListeners","_onScroll","handleGesture","touchendY","dirRatio","_touchstart","_touchend","_touchmove","createHandlers","_touchHandlers","_install__WEBPACK_IMPORTED_MODULE_0__","_services__WEBPACK_IMPORTED_MODULE_1__","Vuetify","userPreset","framework","isHydrating","preset","Service","_framework__WEBPACK_IMPORTED_MODULE_2__","_components__WEBPACK_IMPORTED_MODULE_0__","_directives__WEBPACK_IMPORTED_MODULE_1__","registerComponents","$_vuetify_installed","vuetify","$ssrContext","dataIterator","dataTable","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","dataFooter","itemsPerPageAll","firstPage","lastPage","datePicker","carousel","moreEvents","prependAction","appendAction","counterSize","timePicker","am","pm","_af__WEBPACK_IMPORTED_MODULE_0__","_ar__WEBPACK_IMPORTED_MODULE_1__","_bg__WEBPACK_IMPORTED_MODULE_2__","_ca__WEBPACK_IMPORTED_MODULE_3__","_ckb__WEBPACK_IMPORTED_MODULE_4__","_cs__WEBPACK_IMPORTED_MODULE_5__","_da__WEBPACK_IMPORTED_MODULE_6__","_de__WEBPACK_IMPORTED_MODULE_7__","_el__WEBPACK_IMPORTED_MODULE_8__","_en__WEBPACK_IMPORTED_MODULE_9__","_es__WEBPACK_IMPORTED_MODULE_10__","_et__WEBPACK_IMPORTED_MODULE_11__","_fa__WEBPACK_IMPORTED_MODULE_12__","_fi__WEBPACK_IMPORTED_MODULE_13__","_fr__WEBPACK_IMPORTED_MODULE_14__","_hr__WEBPACK_IMPORTED_MODULE_15__","_hu__WEBPACK_IMPORTED_MODULE_16__","_he__WEBPACK_IMPORTED_MODULE_17__","_id__WEBPACK_IMPORTED_MODULE_18__","_it__WEBPACK_IMPORTED_MODULE_19__","_ja__WEBPACK_IMPORTED_MODULE_20__","_ko__WEBPACK_IMPORTED_MODULE_21__","_lv__WEBPACK_IMPORTED_MODULE_22__","_lt__WEBPACK_IMPORTED_MODULE_23__","_nl__WEBPACK_IMPORTED_MODULE_24__","_no__WEBPACK_IMPORTED_MODULE_25__","_pl__WEBPACK_IMPORTED_MODULE_26__","_pt__WEBPACK_IMPORTED_MODULE_27__","_ro__WEBPACK_IMPORTED_MODULE_28__","_ru__WEBPACK_IMPORTED_MODULE_29__","_sk__WEBPACK_IMPORTED_MODULE_30__","_sl__WEBPACK_IMPORTED_MODULE_31__","_sr_Cyrl__WEBPACK_IMPORTED_MODULE_32__","_sr_Latn__WEBPACK_IMPORTED_MODULE_33__","_sv__WEBPACK_IMPORTED_MODULE_34__","_th__WEBPACK_IMPORTED_MODULE_35__","_tr__WEBPACK_IMPORTED_MODULE_36__","_az__WEBPACK_IMPORTED_MODULE_37__","_uk__WEBPACK_IMPORTED_MODULE_38__","_vi__WEBPACK_IMPORTED_MODULE_39__","_zh_Hans__WEBPACK_IMPORTED_MODULE_40__","_zh_Hant__WEBPACK_IMPORTED_MODULE_41__","_delayable__WEBPACK_IMPORTED_MODULE_0__","_toggleable__WEBPACK_IMPORTED_MODULE_1__","internalActivator","activatorElement","activatorNode","slotType","addActivatorEvents","removeActivatorEvents","keys_1_1","getValueProxy","keys_2","keys_2_1","resetActivator","applicationable","_positionable__WEBPACK_IMPORTED_MODULE_0__","removeApplication","makeWatcher","_util_console__WEBPACK_IMPORTED_MODULE_0__","vue__WEBPACK_IMPORTED_MODULE_1__","hasContent","_components_VItemGroup_VItemGroup__WEBPACK_IMPORTED_MODULE_0__","colorModifier","openTimeout","clearDelay","searchChildren","isDependent","openDependents","getClickableDependentElements","validateAttachTarget","removeActivator","_bootable__WEBPACK_IMPORTED_MODULE_0__","hasDetached","initDetach","isConnected","observer_1","_registrable__WEBPACK_IMPORTED_MODULE_0__","Groupable","intersectable","_directives_intersect__WEBPACK_IMPORTED_MODULE_0__","vue__WEBPACK_IMPORTED_MODULE_2__","_components_VProgressLinear__WEBPACK_IMPORTED_MODULE_1__","_stackable__WEBPACK_IMPORTED_MODULE_0__","_positionable__WEBPACK_IMPORTED_MODULE_1__","_activatable__WEBPACK_IMPORTED_MODULE_2__","_detachable__WEBPACK_IMPORTED_MODULE_3__","allowOverflow","absoluteX","absoluteY","relativeYOffset","hasWindow","inputActivator","stackClass","absoluteYOffset","absolutePosition","xOverflow","getOffsetLeft","documentHeight","toTop","checkForPageYOffset","getOffsetTop","checkActivatorFixed","getRoundedBoundedClientRect","measure","sneakPeek","offsetRect","eventFirst","classSeparator_1","eventTargetClasses_1","currentTargets","elementsFromPoint","isSameNode","TouchEvent","_components_VOverlay__WEBPACK_IMPORTED_MODULE_0__","overlayColor","overlayOpacity","animationFrame","createOverlay","scrollListener","isContentEditable","checkPath","hasScrollbar","alreadyAtStart","alreadyAtEnd","deltaX","scrollingUp","scrollingDown","isInside","anchorNode","_colorable__WEBPACK_IMPORTED_MODULE_0__","_components_VPicker__WEBPACK_IMPORTED_MODULE_0__","_colorable__WEBPACK_IMPORTED_MODULE_1__","_mixins_elevatable__WEBPACK_IMPORTED_MODULE_2__","_themeable__WEBPACK_IMPORTED_MODULE_3__","headerColor","genPickerActionsSlot","availableProps","Proxyable","generateWarning","defaultImpl","_directives_ripple__WEBPACK_IMPORTED_MODULE_0__","nuxt","_directives__WEBPACK_IMPORTED_MODULE_0__","previousScroll","_components_VInput__WEBPACK_IMPORTED_MODULE_0__","_rippleable__WEBPACK_IMPORTED_MODULE_1__","_comparable__WEBPACK_IMPORTED_MODULE_2__","falseValue","trueValue","stackElement","stackExclude","zis","activeElements","Themeable","themeableProvide","functionalThemeClasses","Toggleable","elOffsetTop","parallaxDist","percentScrolled","windowBottom","imgHeight","calcDimensions","_registrable__WEBPACK_IMPORTED_MODULE_2__","_themeable__WEBPACK_IMPORTED_MODULE_1__","errorCount","errorMessages","messages","successMessages","validateOnBlur","errorBucket","hasFocused","isResetting","internalErrorMessages","internalSuccessMessages","externalError","validationTarget","genInternalMessages","internalMessages","rule","_locale__WEBPACK_IMPORTED_MODULE_1__","scrollBarWidth","thresholds","xs","sm","iconfont","cspNonce","customProperties","minifyTheme","themeCache","variations","primary","secondary","accent","warning","Application","_service__WEBPACK_IMPORTED_MODULE_0__","Breakpoint","xl","xsOnly","smOnly","smAndUp","mdOnly","mdAndDown","mdAndUp","lgOnly","lgAndDown","lgAndUp","xlOnly","ssr","getClientHeight","getClientWidth","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","goTo","_settings","scrollingElement","easing","isDrawer","isClipped","targetLocation","startTime","startLocation","ease","_easing_patterns__WEBPACK_IMPORTED_MODULE_1__","currentTime","timeElapsed","reachBottom","Goto","getOffset","totalOffset","getContainer","Icons","_presets__WEBPACK_IMPORTED_MODULE_2__","convertToComponentDeclarations","_fa__WEBPACK_IMPORTED_MODULE_0__","iconSet","checkboxOn","checkboxOff","checkboxIndeterminate","subgroup","radioOn","radioOff","ratingEmpty","ratingFull","ratingHalf","unfold","_mdi_svg__WEBPACK_IMPORTED_MODULE_0__","_md__WEBPACK_IMPORTED_MODULE_1__","_mdi__WEBPACK_IMPORTED_MODULE_2__","_fa__WEBPACK_IMPORTED_MODULE_3__","_fa4__WEBPACK_IMPORTED_MODULE_4__","_fa_svg__WEBPACK_IMPORTED_MODULE_5__","mdiSvg","mdi","fa4","faSvg","_application__WEBPACK_IMPORTED_MODULE_0__","_breakpoint__WEBPACK_IMPORTED_MODULE_1__","_goto__WEBPACK_IMPORTED_MODULE_2__","_icons__WEBPACK_IMPORTED_MODULE_3__","_lang__WEBPACK_IMPORTED_MODULE_4__","_presets__WEBPACK_IMPORTED_MODULE_5__","_theme__WEBPACK_IMPORTED_MODULE_6__","LANG_PREFIX","getTranslation","usingDefault","Lang","translator","defaultTranslator","Presets","parentPreset","defaultPreset","_presets_default__WEBPACK_IMPORTED_MODULE_0__","globalPreset","_service__WEBPACK_IMPORTED_MODULE_3__","vueMeta","fillVariant","isVueMeta23","applyVueMeta23","checkOrCreateStyleElement","styleEl","oldDark","clearCss","generatedStyles","$meta","initVueMeta","initSSR","initTheme","resetThemes","genStyleElement","metaKeyName","metaInfo","vuetifyStylesheet","nonce","addApp","obs","parsedTheme","isItem","variant","_util_colorUtils__WEBPACK_IMPORTED_MODULE_1__","genVariations","genBaseColor","genVariantColor","genColorVariableName","genColorVariable","genStyles","cssVar","variablesCss","aColor","variants","variant_1","variantValue","lighten","darken","lab","_util_color_transformCIELAB__WEBPACK_IMPORTED_MODULE_3__","_util_color_transformSRGB__WEBPACK_IMPORTED_MODULE_2__","fromXYZ","toXYZ","cielabForwardTransform","cbrt","cielabReverseTransform","xyz","transformedY","Ln","srgbForwardMatrix","srgbForwardTransform","srgbReverseMatrix","srgbReverseTransform","rgb","isCssColor","colorToInt","_console__WEBPACK_IMPORTED_MODULE_0__","classToHex","hexColor","intToHex","colorToHex","HSVAtoRGBA","RGBAtoHSVA","hsv","HSVAtoHSLA","sprime","HSLAtoHSVA","hsl","RGBAtoCSS","RGBtoCSS","RGBAtoHex","HexToRGBA","HexToHSVA","HSVAtoHex","parseHex","parseGradient","RGBtoInt","contrastRatio","_color_transformSRGB__WEBPACK_IMPORTED_MODULE_2__","red","accent1","accent2","accent3","accent4","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","deepOrange","brown","blueGrey","grey","shades","consoleInfo","consoleWarn","consoleError","breaking","_framework__WEBPACK_IMPORTED_MODULE_0__","createMessage","$_alreadyWarned","generateComponentTrace","newMessage","classifyRE","classify","formatComponentName","includeFile","currentRecursiveSequence","createUTCDate","UTC","setUTCFullYear","firstWeekOffset","firstDayOfYear","firstWeekDayInFirstWeek","firstWeekDayOfYear","dayOfYear","isLeapYear","weeksInYear","weekOffset","weekOffsetNext","daysInYear","dedupeModelListeners","attachedRoot","getRootNode","composed","createSimpleFunctional","directiveConfig","addOnceEventListener","passiveSupported","testListenerOpts","addPassiveEventListener","getNestedValue","getObjectValueByPath","getPropertyFromItem","getZIndex","filterObjectOnKeys","filtered","convertToUnit","unit","kebabCase","remapInternalIcon","iconPath","override","arrayDiff","upperFirst","wrapInArray","customSorters","stringCollator","Collator","sensitivity","usage","sortKey","sortA","sortB","customResult","defaultFilter","searchItems","getSlotType","throttling","getPrefixedScopedSlots","getSlot","kebabName","padEnd","chunked","humanReadableFileSize","binary","camelizeObjectKeys","sourceProperty","targetProperty","fillArray","composedPath","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","rebuildFunctionalSlots","createInstance","defaultConfig","promises","spread","$seal","$atanh","atanh","rApply","fApply","thisArgument","argumentsList","$iterDetect","IS_WEAK","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","$getPrototypeOf","relativeURL","of","$buffer","propertyDesc","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","SHARED_BUFFER","BYTES_PER_ELEMENT","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayEntries","arrayLastIndexOf","arrayReduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","arraySlice","arrayToString","arrayToLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","WRONG_LENGTH","$map","allocate","LITTLE_ENDIAN","Uint16Array","FORCED_SET","toOffset","BYTES","speciesFromList","fromList","addGetter","$from","$of","TO_LOCALE_BUG","$toLocaleString","begin","$begin","isTAIndex","$getDesc","$setDesc","$TypedArrayPrototype$","CLAMPED","GETTER","SETTER","TypedArray","TAC","TypedArrayPrototype","$offset","$length","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","DATA_VIEW","WRONG_INDEX","BaseBuffer","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","packIEEE754","unpackIEEE754","unpackI32","packI8","packI16","packI32","packF64","packF32","isLittleEndian","numIndex","intIndex","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","bufferLength","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","$pad","WEBKIT_BUG","factories","partArgs","bound","MAP","$imul","imul","UINT16","xn","yn","yl","STARTS_WITH","$startsWith","forbiddenField","eject","_isFinite"],"mappings":"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MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGRnlD,EAA0C,KAAsBjuI,SAAS,aAAc,CACnF,wBACA,CAAE5R,KAAM,SAAU8nB,sBAAuB,aACzC,CACI9nB,KAAM,eACNgtD,QAAS,OACTxzC,QAAS,CAAC,OAAQ,UAAW,WAAY,UAAW,SAExD,CACIxZ,KAAM,WACNwZ,QAAS,WACL,OAAOwrL,KAEXh4I,QAAS,OAEb,CAAEhtD,KAAM,+BAAgCgtD,SAAU,GAClD,CAAEhtD,KAAM,+BAAgCgtD,SAAU,GAClD,CAAEhtD,KAAM,sBAAuBgtD,SAAS,GACxC,CAAEhtD,KAAM,cAAemkB,SAAS,GAChC,CAAEnkB,KAAM,WAAYmkB,SAAS,GAC7B,CAAEnkB,KAAM,aAAcmkB,SAAS,GAC/B,CAAEnkB,KAAM,WAAYmkB,SAAS,GAC7B,CAAEnkB,KAAM,oBAAqBmkB,SAAS,GACtC,CAAEnkB,KAAM,aAAcmkB,SAAS,GAC/B,CAAEnkB,KAAM,eAAgBmkB,SAAS,GACj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B,IAEZ,OAAIvrD,KAAKo1Z,UAAY,EACVvhY,EACN2sU,EAAsC,WAAWviO,SAASpqG,GAExD3iB,WAAW2iB,EAAIolI,QAAQj5J,KAAKo1Z,YADxBvhY,GAGf8yK,EAAwBxlM,UAAU4lM,cAAgB,SAAUlzK,GACxD,GAAyB,QAArB7zB,KAAKsrE,aAAwB,CAC7B,IAAIpnE,EAAI,IAAIkG,KAAKypB,GACjB,GAAM3vB,GAAOA,EAAE8iM,mBACX,OAAO9iM,EAAE8iM,qBAEjB,GAAyB,QAArBhnM,KAAKsrE,cAA0Bk1R,EAAsC,WAAWviO,SAASpqG,GAAM,CAC/F,IAAI8I,EAAS38B,KAAKud,YACbof,IACDA,EAAS,MACb,IAAIxgB,EAAU,CACVlH,MAAOjV,KAAKsrE,aACZ5F,SAAU1lE,KAAK0lE,SACf6F,YAAavrE,KAAKurE,aAQtB,OANIvrE,KAAK8vE,uBAAyB,IAC9B3zD,EAAQ,yBAA2Bnc,KAAK8vE,uBAExC9vE,KAAK+vE,uBAAyB,IAC9B5zD,EAAQ,yBAA2Bnc,KAAK+vE,uBAErCl8C,EAAIozK,eAAetqK,EAAQxgB,GAEtC,OAAO0X,EAAIjtB,YAER+/L,EA7RiC,CA8R1CglN,EAAuC,aAEzC,SAAS/kN,IACL,MAAO,CACH,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MA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","file":"js/chunk-vendors.201ca7c4.js","sourcesContent":["'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","/*!\n * SurveyJS Creator v1.10.3\n * (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/\n * Github: https://github.com/surveyjs/survey-creator\n * License: https://surveyjs.io/Licenses#SurveyCreator\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"knockout\"), require(\"survey-knockout\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"SurveyCreator\", [\"knockout\", \"survey-knockout\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SurveyCreator\"] = factory(require(\"knockout\"), require(\"survey-knockout\"));\n\telse\n\t\troot[\"SurveyCreator\"] = factory(root[\"ko\"], root[\"Survey\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_knockout__, __WEBPACK_EXTERNAL_MODULE_survey_knockout__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./src/entries/index.ts\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/flowpanel-actions.html\":\n/*!**************************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/flowpanel-actions.html ***!\n \\**************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/image-items.html\":\n/*!********************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/image-items.html ***!\n \\********************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/image.html\":\n/*!**************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/image.html ***!\n \\**************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/item-editor.html\":\n/*!********************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/item-editor.html ***!\n \\********************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/question-actions.html\":\n/*!*************************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/question-actions.html ***!\n \\*************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/rating-item-editor.html\":\n/*!***************************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/rating-item-editor.html ***!\n \\***************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/select-items-display.html\":\n/*!*****************************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/select-items-display.html ***!\n \\*****************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/select-items-editor.html\":\n/*!****************************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/select-items-editor.html ***!\n \\****************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n
\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/title-actions.html\":\n/*!**********************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/title-actions.html ***!\n \\**********************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/title-editor.html\":\n/*!*********************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/adorners/title-editor.html ***!\n \\*********************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/components/pages-editor.html\":\n/*!***********************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/components/pages-editor.html ***!\n \\***********************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\\n\\n\\n \\n \\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\\n\\n \\n \\n \\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n \\n\\n\\n\\n \\n \\n \\n\\n\\n\\n \\n \\n \\n \\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/components/toolbox-item.html\":\n/*!***********************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/components/toolbox-item.html ***!\n \\***********************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n
\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/components/toolbox.html\":\n/*!******************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/components/toolbox.html ***!\n \\******************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/templates/entry.html\":\n/*!***************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/templates/entry.html ***!\n \\***************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = \"\" + __webpack_require__(/*! ./index.html */ \"./src/templates/index.html\") + \" \" + __webpack_require__(/*! ./questionEditors/questioneditor.html */ \"./src/templates/questionEditors/questioneditor.html\") + \"\\n\" + __webpack_require__(/*! ./propertyEditors/propertyeditor-triggersitems.html */ \"./src/templates/propertyEditors/propertyeditor-triggersitems.html\") + \"\\n\" + __webpack_require__(/*! ./toolbar.html */ \"./src/templates/toolbar.html\") + \" \" + __webpack_require__(/*! ./convert-action.html */ \"./src/templates/convert-action.html\") + \"\\n\" + __webpack_require__(/*! ../svgbundle.html */ \"./src/svgbundle.html\") + \" \" + __webpack_require__(/*! ./tabs.html */ \"./src/templates/tabs.html\") + \"\\n\" + __webpack_require__(/*! ./design-surface.html */ \"./src/templates/design-surface.html\") + \"\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/utils/accordion.html\":\n/*!***************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/utils/accordion.html ***!\n \\***************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/utils/designer-container.html\":\n/*!************************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/utils/designer-container.html ***!\n \\************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n \\n \\n \\n\\n \\n \\n\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\";\n\n/***/ }),\n\n/***/ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/utils/designer-h-container.html\":\n/*!**************************************************************************************************************!*\\\n !*** ./node_modules/html-loader?interpolate!./node_modules/val-loader!./src/utils/designer-h-container.html ***!\n \\**************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./node_modules/papaparse/papaparse.min.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/papaparse/papaparse.min.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* @license\nPapa Parse\nv5.4.1\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n!function(e,t){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (t),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):undefined}(this,function s(){\"use strict\";var f=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=f.IS_PAPA_WORKER||!1,a={},u=0,b={parse:function(e,t){var r=(t=t||{}).dynamicTyping||!1;J(r)&&(t.dynamicTypingFunction=r,r={});if(t.dynamicTyping=r,t.transform=!!J(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var i=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(r=f.URL||f.webkitURL||null,i=s.toString(),b.BLOB_URL||(b.BLOB_URL=r.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",i,\")();\"],{type:\"text/javascript\"})))),t=new f.Worker(e);var r,i;return t.onmessage=_,t.id=u++,a[t.id]=t}();return i.userStep=t.step,i.userChunk=t.chunk,i.userComplete=t.complete,i.userError=t.error,t.step=J(t.step),t.chunk=J(t.chunk),t.complete=J(t.complete),t.error=J(t.error),delete t.worker,void i.postMessage({input:e,config:t,workerId:i.id})}var n=null;b.NODE_STREAM_INPUT,\"string\"==typeof e?(e=function(e){if(65279===e.charCodeAt(0))return e.slice(1);return e}(e),n=t.download?new l(t):new p(t)):!0===e.readable&&J(e.read)&&J(e.on)?n=new g(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var n=!1,_=!0,m=\",\",y=\"\\r\\n\",s='\"',a=s+s,r=!1,i=null,o=!1;!function(){if(\"object\"!=typeof t)return;\"string\"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter);(\"boolean\"==typeof t.quotes||\"function\"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes);\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(r=t.skipEmptyLines);\"string\"==typeof t.newline&&(y=t.newline);\"string\"==typeof t.quoteChar&&(s=t.quoteChar);\"boolean\"==typeof t.header&&(_=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");i=t.columns}void 0!==t.escapeChar&&(a=t.escapeChar+s);(\"boolean\"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(o=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\\-@\\t\\r].*$/)}();var u=new RegExp(Q(s),\"g\");\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return h(null,e,r);if(\"object\"==typeof e[0])return h(i||Object.keys(e[0]),e,r)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||i),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),h(e.fields||[],e.data||[],r);throw new Error(\"Unable to serialize unrecognized input\");function h(e,t,r){var i=\"\";\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0=this._config.preview;if(o)f.postMessage({results:n,workerId:b.WORKER_ID,finished:a});else if(J(this._config.chunk)&&!t){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);n=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!J(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){J(this._config.error)?this._config.error(e):o&&this._config.error&&f.postMessage({workerId:b.WORKER_ID,error:e,finished:!1})}}function l(e){var i;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize),h.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(i=new XMLHttpRequest,this._config.withCredentials&&(i.withCredentials=this._config.withCredentials),n||(i.onload=v(this._chunkLoaded,this),i.onerror=v(this._chunkError,this)),i.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)i.setRequestHeader(t,e[t])}if(this._config.chunkSize){var r=this._start+this._config.chunkSize-1;i.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+r)}try{i.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===i.status&&this._chunkError()}},this._chunkLoaded=function(){4===i.readyState&&(i.status<200||400<=i.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:i.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader(\"Content-Range\");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf(\"/\")+1))}(i),this.parseChunk(i.responseText)))},this._chunkError=function(e){var t=i.statusText||e;this._sendError(new Error(t))}}function c(e){var i,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize),h.call(this,e);var s=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,s?((i=new FileReader).onload=v(this._chunkLoaded,this),i.onerror=v(this._chunkError,this)):i=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(i.error)}}function p(e){var r;h.call(this,e=e||{}),this.stream=function(e){return r=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,t=this._config.chunkSize;return t?(e=r.substring(0,t),r=r.substring(t)):(e=r,r=\"\"),this._finished=!r,this.parseChunk(e)}}}function g(e){h.call(this,e=e||{});var t=[],r=!0,i=!1;this.pause=function(){h.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){h.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){i&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):r=!0},this._streamData=v(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),r&&(r=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=v(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=v(function(){this._streamCleanUp(),i=!0,this._streamData(\"\")},this),this._streamCleanUp=v(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function r(m){var a,o,u,i=Math.pow(2,53),n=-i,s=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,h=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,t=this,r=0,f=0,d=!1,e=!1,l=[],c={data:[],errors:[],meta:{}};if(J(m.step)){var p=m.step;m.step=function(e){if(c=e,_())g();else{if(g(),0===c.data.length)return;r+=e.data.length,m.preview&&r>m.preview?o.abort():(c.data=c.data[0],p(c,t))}}}function y(e){return\"greedy\"===m.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){return c&&u&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+b.DefaultDelimiter+\"'\"),u=!1),m.skipEmptyLines&&(c.data=c.data.filter(function(e){return!y(e)})),_()&&function(){if(!c)return;function e(e,t){J(m.transformHeader)&&(e=m.transformHeader(e,t)),l.push(e)}if(Array.isArray(c.data[0])){for(var t=0;_()&&t=l.length?\"__parsed_extra\":l[r]),m.transform&&(s=m.transform(s,n)),s=v(n,s),\"__parsed_extra\"===n?(i[n]=i[n]||[],i[n].push(s)):i[n]=s}return m.header&&(r>l.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+l.length+\" fields but parsed \"+r,f+t):r=i.length/2?\"\\r\\n\":\"\\r\"}(e,i)),u=!1,m.delimiter)J(m.delimiter)&&(m.delimiter=m.delimiter(e),c.meta.delimiter=m.delimiter);else{var n=function(e,t,r,i,n){var s,a,o,u;n=n||[\",\",\"\\t\",\"|\",\";\",b.RECORD_SEP,b.UNIT_SEP];for(var h=0;h=N)return L(!0)}else for(S=W,W++;;){if(-1===(S=i.indexOf(z,S+1)))return r||h.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:u.length,index:W}),T();if(S===n-1)return T(i.substring(W,S).replace(C,z));if(z!==K||i[S+1]!==K){if(z===K||0===S||i[S-1]!==K){-1!==w&&w=N)return L(!0);break}h.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:u.length,index:W}),S++}}else S++}return T();function I(e){u.push(e),d=W}function A(e){var t=0;if(-1!==e){var r=i.substring(S+1,e);r&&\"\"===r.trim()&&(t=r.length)}return t}function T(e){return r||(void 0===e&&(e=i.substring(W)),f.push(e),W=n,I(f),o&&F()),L()}function D(e){W=e,I(f),f=[],R=i.indexOf(P,W)}function L(e){return{data:u,errors:h,meta:{delimiter:M,linebreak:P,aborted:H,truncated:!!e,cursor:d+(t||0)}}}function F(){q(L()),u=[],h=[]}},this.abort=function(){H=!0},this.getCharIndex=function(){return W}}function _(e){var t=e.data,r=a[t.workerId],i=!1;if(t.error)r.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){i=!0,m(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:y,resume:y};if(J(r.userStep)){for(var s=0;s -1;\n selector = is(selector, 'array') ? selector.join(',') : selector;\n\n return [].filter.call(\n this.dialog.querySelectorAll(selector)\n , function (element) {\n if (fallback) {\n var style = window.getComputedStyle(element);\n return style.display !== 'none' && style.visibility !== 'hidden';\n }\n\n return element.offsetParent !== null;\n }\n );\n};\n\nRModal.prototype.focus = function focus (el) {\n el = el || this.elements(this.opts.focusElements)[0] || this.dialog.firstChild;\n\n if (el && is(el.focus, 'function')) {\n el.focus();\n }\n};\n\nRModal.prototype.keydown = function keydown (ev) {\n if (this.opts.escapeClose && ev.which == 27) {\n this.close();\n }\n\n function stopEvent() {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n if (this.opened && ev.which == 9 && this.dialog.contains(ev.target)) {\n var elements = this.elements(this.opts.focusElements)\n , first = elements[0]\n , last = elements[elements.length - 1];\n\n if (first == last) {\n stopEvent();\n }\n else if (ev.target == first && ev.shiftKey) {\n stopEvent();\n last.focus();\n }\n else if (ev.target == last && !ev.shiftKey) {\n stopEvent();\n first.focus();\n }\n }\n};\n\nRModal.prototype.version = '1.0.31';\nRModal.version = '1.0.31';\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RModal);\n//# sourceMappingURL=index.es.js.map\n\n\n/***/ }),\n\n/***/ \"./src/adorners/flowpanel-actions.scss\":\n/*!*********************************************!*\\\n !*** ./src/adorners/flowpanel-actions.scss ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/flowpanel-actions.ts\":\n/*!*******************************************!*\\\n !*** ./src/adorners/flowpanel-actions.ts ***!\n \\*******************************************/\n/*! exports provided: FlowPanelActionsAdorner, flowpanelActionsAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowPanelActionsAdorner\", function() { return FlowPanelActionsAdorner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowpanelActionsAdorner\", function() { return flowpanelActionsAdorner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _flowpanel_actions_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./flowpanel-actions.scss */ \"./src/adorners/flowpanel-actions.scss\");\n/* harmony import */ var _flowpanel_actions_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_flowpanel_actions_scss__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _question_actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./question-actions */ \"./src/adorners/question-actions.ts\");\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./flowpanel-actions.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/flowpanel-actions.html\");\n\n//import { Survey } from 'survey-knockout';\nvar FlowPanelActionsAdorner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FlowPanelActionsAdorner, _super);\n function FlowPanelActionsAdorner(question, editor, adornerElement) {\n var _this = _super.call(this, question, editor) || this;\n _this.adornerElement = adornerElement;\n var self = _this;\n var surveyForDesgner = editor.survey;\n var fPanel = self.adornerElement.parentElement.parentElement.getElementsByTagName(\"f-panel\")[0];\n var createWrappingFunction = function (tag) { return function () {\n var selection = document.getSelection();\n if (!!selection && selection.rangeCount > 0) {\n var selectedText = selection.toString();\n if (!!selectedText) {\n question.content = question.content.replace(selectedText, \"<\" + tag + \">\" + selectedText + \"\");\n // var range = selection.getRangeAt(0);\n // range.deleteContents();\n // range.insertNode(\n // document.createTextNode(\n // \"<\" + tag + \">\" + selectedText + \"\"\n // )\n // );\n }\n }\n }; };\n _this.actions.splice(0, 0, {\n name: \"bold\",\n text: _this.localize(\"ed.bold\") || \"B\",\n onClick: createWrappingFunction(\"b\")\n });\n _this.actions.splice(1, 0, {\n name: \"italic\",\n text: _this.localize(\"ed.italic\") || \"I\",\n onClick: createWrappingFunction(\"i\")\n });\n _this.actions.splice(2, 0, {\n name: \"underline\",\n text: _this.localize(\"ed.underline\") || \"U\",\n onClick: createWrappingFunction(\"u\")\n });\n _this.actions.splice(3, 0, {\n name: \"fpAddQuestion\",\n text: _this.localize(\"ed.fpAddQuestion\"),\n title: _this.localize(\"ed.fpAddQuestion\"),\n hasTitle: true,\n template: \"fp-add-question\",\n availableTypes: [\"text\", \"boolean\", \"radiogroup\", \"checkbox\"],\n onAddQuestion: (function (data, event) {\n var questionType = event.target.value;\n if (!!questionType) {\n var newElelentName = editor.getNewName(questionType);\n question.addNewQuestion(questionType, newElelentName);\n // question.content += \"{\" + newElelentName + \"}\";\n // var selection = document.getSelection();\n // if (!!selection) {\n // var range = new Range();\n // selection.addRange(range);\n // range.insertNode(\n // document.createTextNode(\"{\" + newElelentName + \"}\")\n // );\n // }\n event.target.value = \"\";\n }\n })\n });\n _this.actions.splice(4, 0, { template: \"action-separator\" });\n return _this;\n }\n return FlowPanelActionsAdorner;\n}(_question_actions__WEBPACK_IMPORTED_MODULE_4__[\"QuestionActionsAdorner\"]));\n\nknockout__WEBPACK_IMPORTED_MODULE_1__[\"components\"].register(\"flowpanel-actions\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return new FlowPanelActionsAdorner(params.question, params.editor, (componentInfo.element));\n }\n },\n template: templateHtml\n});\nvar flowpanelActionsAdorner = {\n getMarkerClass: function (model) {\n return model.getType() === \"flowpanel\" ? \"panel_actions\" : \"\";\n },\n getElementName: function (model) { return \"container\"; },\n afterRender: function (elements, model, editor) {\n var decoration = document.createElement(\"div\");\n decoration.className = \"svda-question-actions\";\n decoration.innerHTML =\n \"\";\n elements[0].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"applyBindings\"]({ model: model, editor: editor }, decoration);\n editor.onAdornerRenderedCallback(model, \"flowpanel-actions\", decoration);\n }\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_2__[\"registerAdorner\"])(\"flowpanel-actions\", flowpanelActionsAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/image-items.scss\":\n/*!***************************************!*\\\n !*** ./src/adorners/image-items.scss ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/image-items.ts\":\n/*!*************************************!*\\\n !*** ./src/adorners/image-items.ts ***!\n \\*************************************/\n/*! exports provided: imageItemsAdorner, addImageItemAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"imageItemsAdorner\", function() { return imageItemsAdorner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addImageItemAdorner\", function() { return addImageItemAdorner; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _vendor_sortable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor/sortable */ \"./vendor/sortable.js\");\n/* harmony import */ var _vendor_sortable__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_vendor_sortable__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _item_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./item-editor */ \"./src/adorners/item-editor.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _image_items_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./image-items.scss */ \"./src/adorners/image-items.scss\");\n/* harmony import */ var _image_items_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_image_items_scss__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./image */ \"./src/adorners/image.ts\");\n\n\n\n\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./image-items.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/image-items.html\");\nvar ImageItemInplaceEditor = /** @class */ (function () {\n function ImageItemInplaceEditor(name, question, item, rootElement, editor, itemsRoot) {\n var _this = this;\n this.name = name;\n this.question = question;\n this.item = item;\n this.rootElement = rootElement;\n this.editor = editor;\n this.itemsRoot = itemsRoot;\n this.imageChosen = function (files) {\n _this.valueChanged && _this.valueChanged(files);\n };\n }\n ImageItemInplaceEditor.prototype.deleteItem = function (model, event) {\n if (model.question.choices.length > 1) {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findProperty(model.question.getType(), \"choices\");\n var allowDelete = this.editor.onCollectionItemDeletingCallback(model.question, property, model.question.choices, model.item);\n if (allowDelete) {\n var index = model.question.choices.indexOf(model.item);\n model.question.choices.splice(index, 1);\n this.editor.onQuestionEditorChanged(this.question);\n }\n }\n };\n Object.defineProperty(ImageItemInplaceEditor.prototype, \"isLastItem\", {\n get: function () {\n return this.question.choices.length === 1;\n },\n enumerable: false,\n configurable: true\n });\n ImageItemInplaceEditor.prototype.chooseImage = function (model, event) {\n var fileInput = this.itemsRoot.getElementsByClassName(\"svda-choose-file\")[0];\n this.editor.chooseFiles(fileInput, this.imageChosen);\n };\n ImageItemInplaceEditor.prototype.getLocString = function (str) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getString(str);\n };\n return ImageItemInplaceEditor;\n}());\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"image-item-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = new ImageItemInplaceEditor(params.target[params.name], params.question, params.item, componentInfo.element, params.editor, params.itemsRoot);\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findProperty(\"imageitemvalue\", //params.target.getType(),\n params.name);\n model.valueChanged = function (files) {\n if (!files[0])\n return;\n params.editor.uploadFiles(files, function (_, link) {\n var options = {\n propertyName: property.name,\n obj: params.item,\n value: link,\n newValue: null,\n doValidation: false\n };\n params.editor.onValueChangingCallback(options);\n link = options.newValue === null ? options.value : options.newValue;\n params.target[params.name] = link;\n params.editor.onPropertyValueChanged(property, params.target, link);\n params.editor.onQuestionEditorChanged(params.question);\n });\n };\n return model;\n }\n },\n template: templateHtml\n});\nvar imageItemsAdorner = {\n getMarkerClass: function (model) {\n return typeof model.getType === \"function\" &&\n model.getType() === \"imagepicker\"\n ? \"image_item_editable\"\n : \"\";\n },\n getElementName: function (model) { return \"item\"; },\n afterRender: function (elements, model, editor) {\n var itemsRoot = elements[0].parentElement;\n for (var i = 0; i < elements.length; i++) {\n elements[i].onclick = function (e) { return e.preventDefault(); };\n var decoration = document.createElement(\"span\");\n decoration.className = \"svda-adorner-root\";\n decoration.innerHTML =\n \"\";\n elements[i].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({\n item: model.choices[i],\n question: model,\n target: model.choices[i],\n editor: editor,\n itemsRoot: itemsRoot\n }, decoration);\n editor.onAdornerRenderedCallback(model, \"image-items\", decoration, model.choices[i]);\n }\n var sortable = _vendor_sortable__WEBPACK_IMPORTED_MODULE_4___default.a.create(itemsRoot, {\n handle: \".svda-drag-handle\",\n draggable: \".image_item_editable\",\n animation: 150,\n onEnd: function (evt) {\n var choices = model.choices;\n var choice = choices[evt.oldIndex];\n choices.splice(evt.oldIndex, 1);\n choices.splice(evt.newIndex, 0, choice);\n editor.onQuestionEditorChanged(model);\n }\n });\n var input = Object(_image__WEBPACK_IMPORTED_MODULE_8__[\"createImageFileChooser\"])(model[\"contentMode\"]);\n itemsRoot.appendChild(input);\n }\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_2__[\"registerAdorner\"])(\"image-items\", imageItemsAdorner);\nvar addImageItemAdorner = {\n getMarkerClass: function (model) {\n return typeof model.getType === \"function\" &&\n model.getType() === \"imagepicker\"\n ? \"sv_imagepicker_root\"\n : \"\";\n },\n getElementName: function (model) { return \"root\"; },\n afterRender: function (elements, model, editor) {\n var itemsRoot = elements[0];\n var addItemElement = Object(_item_editor__WEBPACK_IMPORTED_MODULE_5__[\"createAddItemElement\"])(function () {\n var fileInput = (itemsRoot.getElementsByClassName(\"svda-choose-file\")[0]);\n editor.chooseFiles(fileInput, function (files) {\n var itemText = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"surveyLocalization\"].getString(\"choices_Item\");\n var nextValue = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__[\"getNextValue\"])(itemText, (model.choices || []).map(function (c) { return c.value; }));\n var itemValue = new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"ItemValue\"](nextValue, undefined, \"imageitemvalue\");\n itemValue.locOwner = {\n getLocale: function () {\n if (!!model[\"getLocale\"])\n return model.getLocale();\n return \"\";\n },\n getMarkdownHtml: function (text) {\n return text;\n },\n getProcessedText: function (text) {\n return text;\n }\n };\n model.choices = model.choices.concat([itemValue]);\n itemValue = model.choices[model.choices.length - 1];\n editor.onQuestionEditorChanged(model);\n editor.onItemValueAddedCallback(model, \"choices\", itemValue, model.choices);\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findProperty(\"imageitemvalue\", \"imageLink\");\n editor.uploadFiles(files, function (_, link) {\n var options = {\n propertyName: property.name,\n obj: itemValue,\n value: link,\n newValue: null,\n doValidation: false\n };\n editor.onValueChangingCallback(options);\n link = options.newValue === null ? options.value : options.newValue;\n itemValue[\"imageLink\"] = link;\n editor.onPropertyValueChanged(property, itemValue, link);\n editor.onQuestionEditorChanged(model);\n });\n });\n });\n addItemElement.style.width = (model[\"imageWidth\"] || 200) + 10 + \"px\";\n addItemElement.style.height = (model[\"imageHeight\"] || 150) + 10 + \"px\";\n addItemElement.style.lineHeight = addItemElement.style.height;\n itemsRoot.appendChild(addItemElement);\n var input = Object(_image__WEBPACK_IMPORTED_MODULE_8__[\"createImageFileChooser\"])(model[\"contentMode\"]);\n itemsRoot.appendChild(input);\n }\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_2__[\"registerAdorner\"])(\"add-image-item\", addImageItemAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/image.scss\":\n/*!*********************************!*\\\n !*** ./src/adorners/image.scss ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/image.ts\":\n/*!*******************************!*\\\n !*** ./src/adorners/image.ts ***!\n \\*******************************/\n/*! exports provided: createImageFileChooser, imageAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createImageFileChooser\", function() { return createImageFileChooser; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"imageAdorner\", function() { return imageAdorner; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _image_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./image.scss */ \"./src/adorners/image.scss\");\n/* harmony import */ var _image_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_image_scss__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./image.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/image.html\");\nfunction createImageFileChooser(contentMode) {\n var input = document.createElement(\"input\");\n input.type = \"file\";\n if (!!contentMode) {\n input.accept = contentMode === \"video\" ? \"video/*\" : \"image/*\";\n }\n input.className = \"svda-choose-file\";\n input.style.position = \"absolute\";\n input.style.opacity = \"0\";\n input.style.width = \"1px\";\n input.style.height = \"1px\";\n input.style.overflow = \"hidden\";\n return input;\n}\nvar ImageInplaceEditor = /** @class */ (function () {\n function ImageInplaceEditor(input, allowDelete, editor) {\n var _this = this;\n if (allowDelete === void 0) { allowDelete = false; }\n this.input = input;\n this.allowDelete = allowDelete;\n this.editor = editor;\n this.imageChosen = function (files) {\n _this.valueChanged && _this.valueChanged(files);\n };\n }\n ImageInplaceEditor.prototype.chooseImage = function (model, event) {\n this.editor.chooseFiles(model.input, model.imageChosen);\n };\n ImageInplaceEditor.prototype.deleteImage = function (model, event) {\n model.valueChanged && model.valueChanged(undefined);\n };\n ImageInplaceEditor.prototype.getLocString = function (str) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getString(str);\n };\n return ImageInplaceEditor;\n}());\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"image-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = new ImageInplaceEditor(params.input, params.allowDelete, params.editor);\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findProperty(params.target.getType(), params.name);\n var setValue = function (link) {\n var options = {\n propertyName: property.name,\n obj: params.item,\n value: link,\n newValue: null,\n doValidation: false,\n };\n params.editor.onValueChangingCallback(options);\n link = options.newValue === null ? options.value : options.newValue;\n params.target[params.name] = link;\n params.editor.onPropertyValueChanged(property, params.target, link);\n params.editor.onQuestionEditorChanged(params.question);\n };\n model.valueChanged = function (files) {\n if (files === undefined) {\n setValue(undefined);\n return;\n }\n if (!files[0])\n return;\n params.editor.uploadFiles(files, function (_, link) { return setValue(link); });\n };\n return model;\n },\n },\n template: templateHtml,\n});\nvar imageAdorner = {\n getMarkerClass: function (model) {\n return typeof model.getType === \"function\" && model.getType() === \"image\"\n ? \"image_editable\"\n : \"\";\n },\n getElementName: function (model) { return \"root\"; },\n afterRender: function (elements, model, editor) {\n var itemsRoot = elements[0];\n for (var i = 0; i < elements.length; i++) {\n elements[i].onclick = function (e) { return e.preventDefault(); };\n var decoration = document.createElement(\"span\");\n decoration.className = \"svda-adorner-root\";\n decoration.innerHTML =\n \"\";\n elements[i].appendChild(decoration);\n var input = createImageFileChooser(model.contentMode);\n itemsRoot.parentElement.appendChild(input);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({\n question: model,\n target: model,\n editor: editor,\n input: input,\n }, decoration);\n editor.onAdornerRenderedCallback(model, \"image\", decoration, model);\n }\n },\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_2__[\"registerAdorner\"])(\"image\", imageAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/item-editor.scss\":\n/*!***************************************!*\\\n !*** ./src/adorners/item-editor.scss ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/item-editor.ts\":\n/*!*************************************!*\\\n !*** ./src/adorners/item-editor.ts ***!\n \\*************************************/\n/*! exports provided: ItemInplaceEditor, itemAdorner, createAddItemHandler, createAddItemElement, createCustomElement, itemDraggableAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ItemInplaceEditor\", function() { return ItemInplaceEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"itemAdorner\", function() { return itemAdorner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAddItemHandler\", function() { return createAddItemHandler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAddItemElement\", function() { return createAddItemElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createCustomElement\", function() { return createCustomElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"itemDraggableAdorner\", function() { return itemDraggableAdorner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _vendor_sortable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../vendor/sortable */ \"./vendor/sortable.js\");\n/* harmony import */ var _vendor_sortable__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_vendor_sortable__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _title_editor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./title-editor */ \"./src/adorners/title-editor.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony import */ var _item_editor_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./item-editor.scss */ \"./src/adorners/item-editor.scss\");\n/* harmony import */ var _item_editor_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_item_editor_scss__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./item-editor.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/item-editor.html\");\nfunction focusAfterChange(question, index) {\n if (index === void 0) { index = 0; }\n setTimeout(function () {\n if (question.renderedElement && index >= -1) {\n if (index === -1) {\n index = 0;\n }\n var focusables = ((question.renderedElement.getElementsByClassName(\"svda-focusable\")));\n if (focusables.length > 0 && index <= focusables.length) {\n if (index >= focusables.length) {\n index = focusables.length - 1;\n }\n focusables[index].focus && focusables[index].focus();\n }\n }\n }, 10);\n}\nvar ItemInplaceEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ItemInplaceEditor, _super);\n function ItemInplaceEditor(target, name, question, item, rootElement, editor) {\n var _this = _super.call(this, target, name, rootElement, null, editor) || this;\n _this.question = question;\n _this.item = item;\n _this._allowAddRemoveItems = true;\n rootElement.addEventListener(\"keydown\", function (event) {\n if (event.keyCode == 38 && event.altKey) {\n _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].moveItemInArray(_this.question.choices, _this.item, (_this.question.choices.indexOf(_this.item) -\n 1 +\n _this.question.choices.length) %\n _this.question.choices.length);\n event.stopPropagation();\n return false;\n }\n if (event.keyCode == 40 && event.altKey) {\n _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].moveItemInArray(_this.question.choices, _this.item, (_this.question.choices.indexOf(_this.item) + 1) %\n _this.question.choices.length);\n event.stopPropagation();\n return false;\n }\n });\n rootElement.addEventListener(\"keyup\", function (event) {\n if (!_this.isEditing() && event.keyCode === 13) {\n _this.startEdit(_this, event);\n return;\n }\n if (event.keyCode === 46 && question.choices.length != 1) {\n _this.deleteItem(_this, event);\n return;\n }\n });\n var editorOptions = {\n allowAddRemoveItems: true,\n allowRemoveAllItems: true,\n };\n _this.editor.onSetPropertyEditorOptionsCallback(\"choices\", _this.question, editorOptions);\n _this._allowAddRemoveItems = editorOptions.allowAddRemoveItems;\n return _this;\n }\n ItemInplaceEditor.prototype.deleteItem = function (model, event) {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(model.question.getType(), \"choices\");\n var allowDelete = this.editor.onCollectionItemDeletingCallback(model.question, property, model.question.choices, model.item);\n if (allowDelete) {\n var index = -2;\n var needRemove = false;\n if (this.question.otherItem === this.item) {\n this.question.hasOther = false;\n index = model.question.choices.length;\n }\n else if (this.question[\"selectAllItem\"] === this.item) {\n this.question[\"showSelectAllItem\"] = false;\n index = 0;\n }\n else if (this.question[\"noneItem\"] === this.item) {\n this.question[\"showNoneItem\"] = false;\n index = model.question.choices.length;\n }\n else {\n needRemove = true;\n index = model.question.choices.indexOf(model.item);\n }\n focusAfterChange(this.question, index);\n if (needRemove) {\n model.question.choices.splice(index, 1);\n }\n this.editor.onQuestionEditorChanged(this.question);\n }\n };\n Object.defineProperty(ItemInplaceEditor.prototype, \"isDraggable\", {\n get: function () {\n return (this.question.otherItem !== this.item &&\n this.question[\"selectAllItem\"] !== this.item &&\n this.question[\"noneItem\"] !== this.item);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ItemInplaceEditor.prototype, \"isLastItem\", {\n get: function () {\n return this.question.choices.length === 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ItemInplaceEditor.prototype, \"allowAddRemoveItems\", {\n get: function () {\n return this._allowAddRemoveItems;\n },\n enumerable: false,\n configurable: true\n });\n return ItemInplaceEditor;\n}(_title_editor__WEBPACK_IMPORTED_MODULE_6__[\"TitleInplaceEditor\"]));\n\nknockout__WEBPACK_IMPORTED_MODULE_1__[\"components\"].register(\"item-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = new ItemInplaceEditor(params.target, params.name, params.question, params.item, componentInfo.element, params.editor);\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(params.target.getType(), params.name);\n model.valueChanged = function (newValue) {\n var options = {\n propertyName: property.name,\n obj: params.item,\n value: newValue,\n newValue: null,\n doValidation: false,\n };\n params.editor.onValueChangingCallback(options);\n newValue = options.newValue === null ? options.value : options.newValue;\n if (!newValue && params.name == \"value\") {\n newValue = params.item.value;\n }\n params.target[params.name] = newValue;\n params.editor.onPropertyValueChanged(property, params.target, newValue);\n !!params.valueChanged &&\n params.valueChanged(params.target, property.name, newValue);\n return \"\";\n };\n return model;\n },\n },\n template: templateHtml,\n});\nvar itemAdorner = {\n inplaceEditForValues: false,\n getMarkerClass: function (model) {\n return !!model.parent &&\n !!model.choices &&\n typeof model.getType === \"function\" &&\n model.getType() !== \"imagepicker\" &&\n !model.choicesFromQuestion &&\n !model.rows\n ? \"item_editable\"\n : \"\";\n },\n getElementName: function (model) { return \"controlLabel\"; },\n afterRender: function (elements, model, editor) {\n for (var i = 0; i < elements.length; i++) {\n elements[i].onclick = function (e) { return e.preventDefault(); };\n var decoration = document.createElement(\"span\");\n decoration.className = \"svda-adorner-root\";\n var itemValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"dataFor\"](elements[i]);\n if (!itemValue) {\n continue;\n }\n var propertyName = itemAdorner.inplaceEditForValues ? \"value\" : \"text\";\n var target = itemValue;\n if (itemValue === model[\"selectAllItem\"]) {\n target = model;\n propertyName = \"selectAllText\";\n }\n if (itemValue === model[\"noneItemValue\"]) {\n target = model;\n propertyName = \"noneText\";\n }\n if (itemValue === model[\"otherItemValue\"]) {\n target = model;\n propertyName = \"otherText\";\n }\n decoration.innerHTML =\n \"\";\n elements[i].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"applyBindings\"]({\n item: itemValue,\n question: model,\n target: target,\n editor: editor,\n }, decoration);\n editor.onAdornerRenderedCallback(model, \"choices-label\", decoration, itemValue);\n }\n },\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_3__[\"registerAdorner\"])(\"choices-label\", itemAdorner);\nvar createAddItemHandler = function (question, onItemAdded, onItemAdding) {\n if (onItemAdding === void 0) { onItemAdding = null; }\n return function () {\n var nextValue = null;\n var values = question.choices.map(function (item) {\n return item.value;\n });\n var itemText = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"surveyLocalization\"].getString(\"choices_Item\");\n nextValue = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_7__[\"getNextValue\"])(itemText, values);\n var itemValue = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ItemValue\"](nextValue);\n itemValue.locOwner = {\n getLocale: function () {\n if (!!question[\"getLocale\"])\n return question.getLocale();\n return \"\";\n },\n getMarkdownHtml: function (text) {\n return text;\n },\n getProcessedText: function (text) {\n return text;\n },\n };\n !!onItemAdding && onItemAdding(itemValue);\n question.choices.push(itemValue);\n itemValue = question.choices.filter(function (choiceItem) { return choiceItem.value === itemValue.value; })[0];\n !!onItemAdded && onItemAdded(itemValue);\n focusAfterChange(question, question.choices.indexOf(itemValue));\n };\n};\nvar createAddItemElement = function (handler) {\n var addNew = document.createElement(\"div\");\n addNew.title = _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.addItem\");\n addNew.className =\n \"sv_technical svda-add-new-item svd-primary-icon svda-add-custom-item\";\n addNew.onclick = handler;\n addNew.onkeyup = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_7__[\"createKey2click\"])(addNew);\n addNew.tabIndex = 0;\n addNew.setAttribute(\"role\", \"button\");\n var svgElem = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svgElem.setAttribute(\"class\", \"svd-svg-icon\");\n svgElem.style.width = \"12px\";\n svgElem.style.height = \"12px\";\n var useElem = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n useElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", \"#icon-inplaceplus\");\n svgElem.appendChild(useElem);\n addNew.appendChild(svgElem);\n // var title = document.createElement(\"span\");\n // title.innerHTML = addNew.title;\n // addNew.appendChild(title);\n return addNew;\n};\nvar createCustomElement = function (title, handler) {\n var element = document.createElement(\"div\");\n element.title = title;\n element.className = \"sv_technical svda-add-new-item svda-add-custom-item\";\n element.onclick = handler;\n element.onkeyup = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_7__[\"createKey2click\"])(element);\n element.tabIndex = 0;\n element.setAttribute(\"role\", \"button\");\n var titleEl = document.createElement(\"span\");\n titleEl.innerHTML = element.title;\n element.appendChild(titleEl);\n return element;\n};\nvar itemDraggableAdorner = {\n getMarkerClass: function (model) {\n return !!model.parent &&\n !!model.choices &&\n typeof model.getType === \"function\" &&\n model.getType() !== \"imagepicker\" &&\n !model.choicesFromQuestion\n ? \"item_draggable\"\n : \"\";\n },\n getElementName: function (model) { return \"item\"; },\n afterRender: function (elements, model, editor) {\n var itemsRoot = [];\n for (var i = 0; i < elements.length; i++) {\n if (itemsRoot.indexOf(elements[i].parentElement) === -1) {\n itemsRoot.push(elements[i].parentElement);\n }\n }\n for (var i = 0; i < elements.length; i++) {\n var itemValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"dataFor\"](elements[i]);\n if (!itemValue) {\n continue;\n }\n if (itemValue === model[\"selectAllItemValue\"] ||\n itemValue === model[\"noneItemValue\"] ||\n itemValue === model[\"otherItemValue\"]) {\n elements[i].classList.remove(\"item_draggable\");\n }\n }\n itemsRoot.forEach(function (itemRoot) {\n return _vendor_sortable__WEBPACK_IMPORTED_MODULE_5___default.a.create(itemRoot, {\n handle: \".svda-drag-handle\",\n group: model.id,\n draggable: \".item_draggable\",\n animation: 150,\n onEnd: function (evt) {\n var oldIndex = evt.oldIndex;\n var newIndex = evt.newIndex;\n var choices = model.choices;\n var choice = choices[evt.oldIndex];\n if (model.hasColumns) {\n choice = knockout__WEBPACK_IMPORTED_MODULE_1__[\"dataFor\"](evt.item);\n var columnContent = knockout__WEBPACK_IMPORTED_MODULE_1__[\"dataFor\"](evt.item.parentElement);\n var itemBefore = columnContent && columnContent[newIndex];\n oldIndex = choices.indexOf(choice);\n newIndex = choices.indexOf(itemBefore);\n }\n editor.undoRedoManager.startTransaction(\"move choice items\");\n choices.splice(oldIndex, 1);\n choices.splice(newIndex, 0, choice);\n editor.undoRedoManager.stopTransaction();\n editor.onQuestionEditorChanged(model);\n },\n });\n });\n var editorOptions = {\n allowAddRemoveItems: true,\n allowRemoveAllItems: true,\n };\n editor.onSetPropertyEditorOptionsCallback(\"choices\", model, editorOptions);\n if (editorOptions.allowAddRemoveItems) {\n var addNew = createAddItemElement(createAddItemHandler(model, function (itemValue) {\n editor.onQuestionEditorChanged(model);\n }, function (itemValue) {\n editor.onItemValueAddedCallback(model, \"choices\", itemValue, model.choices);\n }));\n itemsRoot[0].appendChild(addNew);\n }\n var raiseChangingEvent = function (target, propertyName, newValue) {\n var options = {\n propertyName: propertyName,\n obj: target,\n value: newValue,\n newValue: null,\n doValidation: false,\n };\n editor.onValueChangingCallback(options);\n newValue = options.newValue === null ? options.value : options.newValue;\n return newValue;\n };\n var raiseChangedEvent = function (target, propertyName, newValue) {\n if (typeof target.getType === \"function\") {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(target.getType(), propertyName);\n editor.onPropertyValueChanged(property, target, newValue);\n }\n };\n if (editor.canShowObjectProperty(model, \"showOtherItem\") &&\n model.hasOther !== true) {\n itemsRoot[0].appendChild(createCustomElement(_editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.addOther\"), function () {\n var newValue = !model.hasOther;\n newValue = raiseChangingEvent(model, \"showOtherItem\", newValue);\n model.hasOther = newValue;\n raiseChangedEvent(model, \"showOtherItem\", newValue);\n focusAfterChange(model, model.choices.length + 1);\n }));\n }\n if (model[\"showSelectAllItem\"] !== undefined &&\n model[\"showSelectAllItem\"] !== true &&\n editor.canShowObjectProperty(model, \"showSelectAllItem\")) {\n itemsRoot[0].appendChild(createCustomElement(_editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.addSelectAll\"), function () {\n var newValue = !model[\"showSelectAllItem\"];\n newValue = raiseChangingEvent(model, \"showSelectAllItem\", newValue);\n model[\"showSelectAllItem\"] = newValue;\n raiseChangedEvent(model, \"showSelectAllItem\", newValue);\n focusAfterChange(model, 0);\n }));\n }\n if (model.hasNone !== undefined &&\n model.hasNone !== true &&\n editor.canShowObjectProperty(model, \"showNoneItem\")) {\n itemsRoot[0].appendChild(createCustomElement(_editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.addNone\"), function () {\n var newValue = !model.hasNone;\n newValue = raiseChangingEvent(model, \"showNoneItem\", newValue);\n model.hasNone = newValue;\n raiseChangedEvent(model, \"showNoneItem\", newValue);\n focusAfterChange(model, model.choices.length);\n }));\n }\n editor.onAdornerRenderedCallback(model, \"choices-draggable\", itemsRoot[0], itemsRoot);\n },\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_3__[\"registerAdorner\"])(\"choices-draggable\", itemDraggableAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/label-editor.scss\":\n/*!****************************************!*\\\n !*** ./src/adorners/label-editor.scss ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/label-editor.ts\":\n/*!**************************************!*\\\n !*** ./src/adorners/label-editor.ts ***!\n \\**************************************/\n/*! exports provided: labelAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labelAdorner\", function() { return labelAdorner; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _label_editor_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./label-editor.scss */ \"./src/adorners/label-editor.scss\");\n/* harmony import */ var _label_editor_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_label_editor_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar labelAdorner = {\n getMarkerClass: function (model) {\n if (model.getType() === \"boolean\") {\n return \"label_editable\";\n }\n return \"\";\n },\n getElementName: function (model) { return \"label\"; },\n afterRender: function (elements, model, editor) {\n var decoration = document.createElement(\"span\");\n decoration.innerHTML =\n \"\";\n elements[0].onclick = function (e) { return e.preventDefault(); };\n elements[0].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({ model: model, editor: editor }, decoration);\n editor.onAdornerRenderedCallback(model, \"label\", decoration);\n }\n};\n//registerAdorner(\"label\", labelAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/question-actions.scss\":\n/*!********************************************!*\\\n !*** ./src/adorners/question-actions.scss ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/question-actions.ts\":\n/*!******************************************!*\\\n !*** ./src/adorners/question-actions.ts ***!\n \\******************************************/\n/*! exports provided: QuestionActionsAdorner, questionActionsAdorner, panelActionsAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionActionsAdorner\", function() { return QuestionActionsAdorner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"questionActionsAdorner\", function() { return questionActionsAdorner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panelActionsAdorner\", function() { return panelActionsAdorner; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _question_actions_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./question-actions.scss */ \"./src/adorners/question-actions.scss\");\n/* harmony import */ var _question_actions_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_question_actions_scss__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./question-actions.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/question-actions.html\");\nvar QuestionActionsAdorner = /** @class */ (function () {\n function QuestionActionsAdorner(question, editor) {\n this.question = question;\n this.editor = editor;\n this.actions = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n var surveyForDesigner = editor.survey;\n this.actions(surveyForDesigner.getMenuItems(question));\n }\n QuestionActionsAdorner.prototype.getStyle = function (model) {\n if (!!model.icon) {\n return knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](model.icon);\n }\n return \"icon-action\" + model.name;\n };\n QuestionActionsAdorner.prototype.localize = function (entryString) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(entryString);\n };\n return QuestionActionsAdorner;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"question-actions\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = new QuestionActionsAdorner(params.question, params.editor);\n return model;\n }\n },\n template: templateHtml\n});\nvar questionActionsAdorner = {\n getMarkerClass: function (model) {\n return !model.isPanel && !model.isPage ? \"question_actions\" : \"\";\n },\n getElementName: function (model) { return \"mainRoot\"; },\n afterRender: function (elements, model, editor) {\n var decoration = document.createElement(\"div\");\n decoration.className = \"svda-question-actions\";\n decoration.innerHTML =\n \"\";\n elements[0].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({ model: model, editor: editor }, decoration);\n editor.onAdornerRenderedCallback(model, \"question-actions\", decoration);\n }\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__[\"registerAdorner\"])(\"question-actions\", questionActionsAdorner);\nvar panelActionsAdorner = {\n getMarkerClass: function (model) {\n return !!model.isPanel &&\n !!model.parent &&\n model.getType() !== \"flowpanel\" &&\n model.getType() !== \"page\"\n ? \"panel_actions\"\n : \"\";\n },\n getElementName: function (model) { return \"container\"; },\n afterRender: questionActionsAdorner.afterRender\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__[\"registerAdorner\"])(\"panel-actions\", panelActionsAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/rating-item-editor.scss\":\n/*!**********************************************!*\\\n !*** ./src/adorners/rating-item-editor.scss ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/rating-item-editor.ts\":\n/*!********************************************!*\\\n !*** ./src/adorners/rating-item-editor.ts ***!\n \\********************************************/\n/*! exports provided: ratingItemAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ratingItemAdorner\", function() { return ratingItemAdorner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _title_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./title-editor */ \"./src/adorners/title-editor.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _rating_item_editor_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./rating-item-editor.scss */ \"./src/adorners/rating-item-editor.scss\");\n/* harmony import */ var _rating_item_editor_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_rating_item_editor_scss__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./rating-item-editor.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/rating-item-editor.html\");\nvar RatingItemEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RatingItemEditor, _super);\n function RatingItemEditor(target, name, question, item, rootElement, editor) {\n var _this = _super.call(this, target, name, rootElement, null, editor) || this;\n _this.question = question;\n _this.item = item;\n return _this;\n }\n RatingItemEditor.prototype.deleteItem = function (model, event) {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(model.question.getType(), \"rateValues\");\n var allowDelete = this.editor.onCollectionItemDeletingCallback(model.question, property, model.question.rateValues, model.item);\n if (allowDelete) {\n var question = model.question;\n var index = question.visibleRateValues\n .map(function (item) { return item.value; })\n .indexOf(model.item.value);\n if (question.rateValues.length === 0 &&\n index === question.visibleRateValues.length - 1) {\n question.rateMax -= question.rateStep;\n }\n else {\n if (question.rateValues.length === 0) {\n question.rateValues = question.visibleRateValues;\n }\n question.rateValues.splice(index, 1);\n }\n model.editor.onQuestionEditorChanged(question);\n }\n };\n Object.defineProperty(RatingItemEditor.prototype, \"isLastItem\", {\n get: function () {\n return this.question.visibleRateValues.length === 1;\n },\n enumerable: false,\n configurable: true\n });\n RatingItemEditor.prototype.dispose = function () {\n this.valueChanged = undefined;\n };\n return RatingItemEditor;\n}(_title_editor__WEBPACK_IMPORTED_MODULE_5__[\"TitleInplaceEditor\"]));\nknockout__WEBPACK_IMPORTED_MODULE_1__[\"components\"].register(\"rating-item-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = new RatingItemEditor(params.target, params.name, params.question, params.item, componentInfo.element, params.editor);\n var question = params.question;\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(params.target.getType(), params.name);\n model.valueChanged = function (newValue) {\n if (question.rateValues.length === 0) {\n var rateValues = question.visibleRateValues;\n var index = rateValues\n .map(function (item) { return item.value; })\n .indexOf(params.item.value);\n rateValues[index][params.name] = newValue;\n question.rateValues = rateValues;\n }\n else {\n params.target[params.name] = newValue;\n }\n params.editor.onQuestionEditorChanged(question);\n return \"\";\n };\n return model;\n },\n },\n template: templateHtml,\n});\nvar createAddItemHandler = function (question, onItemAdded, onItemAdding) {\n if (onItemAdding === void 0) { onItemAdding = null; }\n return function () {\n if (question.rateValues.length === 0) {\n question.rateMax += question.rateStep;\n }\n else {\n var nextValue = null;\n var values = question.rateValues.map(function (item) {\n return item.value;\n });\n var itemText = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"surveyLocalization\"].getString(\"choices_Item\");\n nextValue = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__[\"getNextValue\"])(itemText, values);\n var itemValue = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ItemValue\"](nextValue);\n !!onItemAdding && onItemAdding(itemValue);\n itemValue.locOwner = {\n getLocale: function () {\n if (!!question[\"getLocale\"])\n return question.getLocale();\n return \"\";\n },\n getMarkdownHtml: function (text) {\n return text;\n },\n getProcessedText: function (text) {\n return text;\n },\n };\n question.rateValues = question.rateValues.concat([itemValue]);\n }\n !!onItemAdded && onItemAdded(itemValue);\n };\n};\nvar ratingItemAdorner = {\n getMarkerClass: function (model) {\n return !!model.parent && !!model.visibleRateValues ? \"item_editable\" : \"\";\n },\n getElementName: function (model) { return \"itemText\"; },\n afterRender: function (elements, model, editor) {\n for (var i = 0; i < elements.length; i++) {\n elements[i].onclick = function (e) { return e.preventDefault(); };\n var decoration = document.createElement(\"span\");\n decoration.innerHTML =\n \"\";\n elements[i].appendChild(decoration);\n var item = model.visibleRateValues[i];\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"applyBindings\"]({\n item: item,\n question: model,\n target: item,\n editor: editor,\n }, decoration);\n editor.onAdornerRenderedCallback(model, \"rating-item\", decoration, item);\n }\n var addNew = document.createElement(\"span\");\n addNew.title = _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.addItem\");\n addNew.className =\n \"svda-add-new-rating-item icon-inplace-add-item svd-primary-icon\";\n addNew.onclick = createAddItemHandler(model, function (itemValue) {\n editor.onQuestionEditorChanged(model);\n editor.onItemValueAddedCallback(model, \"rateValues\", itemValue, model.visibleRateValues);\n }, function (itemValue) {\n editor.onItemValueAddedCallback(model, \"rateValues\", itemValue, model.visibleRateValues);\n });\n var svgElem = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svgElem.setAttribute(\"class\", \"svd-svg-icon\");\n svgElem.style.width = \"12px\";\n svgElem.style.height = \"12px\";\n var useElem = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n useElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", \"#icon-inplaceplus\");\n svgElem.appendChild(useElem);\n addNew.appendChild(svgElem);\n var parent = elements[0].parentElement.parentElement;\n parent.appendChild(addNew);\n },\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_3__[\"registerAdorner\"])(\"rating-item\", ratingItemAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/select-items-display.ts\":\n/*!**********************************************!*\\\n !*** ./src/adorners/select-items-display.ts ***!\n \\**********************************************/\n/*! exports provided: renderDisplayMode */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderDisplayMode\", function() { return renderDisplayMode; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _select_items_editor_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./select-items-editor.scss */ \"./src/adorners/select-items-editor.scss\");\n/* harmony import */ var _select_items_editor_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_select_items_editor_scss__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _select_items__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./select-items */ \"./src/adorners/select-items.ts\");\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./select-items-display.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/select-items-display.html\");\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"select-items-display\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var isExpanded = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](_select_items__WEBPACK_IMPORTED_MODULE_3__[\"selectItemsAdorner\"].isExpanded);\n var choices = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"](params.question.choices);\n var otherText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](params.question.otherText);\n return {\n choices: choices,\n question: params.question,\n editor: params.editor,\n isExpanded: isExpanded,\n toggle: function () { return isExpanded(!isExpanded()); },\n getLocString: function (str) { return _editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"editorLocalization\"].getString(str); },\n otherText: otherText\n };\n }\n },\n template: templateHtml\n});\nvar renderDisplayMode = function (elements, model, editor) {\n elements[0].onclick = function (e) { return e.preventDefault(); };\n var decoration = document.createElement(\"div\");\n decoration.innerHTML =\n \"\";\n elements[0].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({\n question: model,\n editor: editor\n }, decoration);\n editor.onAdornerRenderedCallback(model, \"select-choices\", decoration);\n};\n\n\n/***/ }),\n\n/***/ \"./src/adorners/select-items-editor.scss\":\n/*!***********************************************!*\\\n !*** ./src/adorners/select-items-editor.scss ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/select-items-editor.ts\":\n/*!*********************************************!*\\\n !*** ./src/adorners/select-items-editor.ts ***!\n \\*********************************************/\n/*! exports provided: renderEditableItems */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderEditableItems\", function() { return renderEditableItems; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_sortable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vendor/sortable */ \"./vendor/sortable.js\");\n/* harmony import */ var _vendor_sortable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_vendor_sortable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _item_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./item-editor */ \"./src/adorners/item-editor.ts\");\n/* harmony import */ var _select_items__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./select-items */ \"./src/adorners/select-items.ts\");\n/* harmony import */ var _select_items_editor_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./select-items-editor.scss */ \"./src/adorners/select-items-editor.scss\");\n/* harmony import */ var _select_items_editor_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_select_items_editor_scss__WEBPACK_IMPORTED_MODULE_6__);\n\n\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./select-items-editor.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/select-items-editor.html\");\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"select-items-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var isExpanded = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](_select_items__WEBPACK_IMPORTED_MODULE_5__[\"selectItemsAdorner\"].isExpanded);\n var choices = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { choices(params.question.choices); });\n var otherText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](params.question.otherText);\n var noneText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](params.question.noneText);\n var sortableElement = componentInfo.element.parentElement.getElementsByClassName(\"svda-select-items-collection\")[0];\n var sortable = null;\n // var property = Survey.Serializer.findProperty(\n // params.question.getType(),\n // \"choices\"\n // );\n var raiseChangingEvent = function (target, propertyName, newValue) {\n var options = {\n propertyName: propertyName,\n obj: target,\n value: newValue,\n newValue: null,\n doValidation: false\n };\n params.editor.onValueChangingCallback(options);\n newValue = options.newValue === null ? options.value : options.newValue;\n return newValue;\n };\n var raiseChangedEvent = function (target, propertyName, newValue) {\n if (typeof target.getType === \"function\") {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findProperty(target.getType(), propertyName);\n params.editor.onPropertyValueChanged(property, target, newValue);\n }\n };\n return {\n choices: choices,\n valueName: params.valueName,\n question: params.question,\n editor: params.editor,\n isExpanded: isExpanded,\n toggle: function () { return isExpanded(!isExpanded()); },\n showOther: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return params.editor.canShowObjectProperty(params.question, \"showOtherItem\") &&\n params.question.hasOther !== true;\n }),\n addOther: function () {\n var newValue = !params.question.hasOther;\n newValue = raiseChangingEvent(params.question, \"showOtherItem\", newValue);\n params.question.hasOther = newValue;\n raiseChangedEvent(params.question, \"showOtherItem\", newValue);\n },\n showNone: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return params.editor.canShowObjectProperty(params.question, \"showNoneItem\") &&\n params.question.hasNone !== true;\n }),\n addNone: function () {\n var newValue = !params.question.hasNone;\n newValue = raiseChangingEvent(params.question, \"showNoneItem\", newValue);\n params.question.hasNone = newValue;\n raiseChangedEvent(params.question, \"showNoneItem\", newValue);\n },\n addItem: Object(_item_editor__WEBPACK_IMPORTED_MODULE_4__[\"createAddItemHandler\"])(params.question, function (itemValue) {\n // var options = {\n // propertyName: \"choices\",\n // obj: params.question,\n // value: params.question.choices,\n // newValue: null,\n // doValidation: false\n // };\n // params.editor.onValueChangingCallback(options);\n //choices(params.question.choices);\n }, function (itemValue) {\n params.editor.onItemValueAddedCallback(params.question, \"choices\", itemValue, params.question.choices);\n // params.editor.onPropertyValueChanged(\n // property,\n // params.question,\n // params.question.choices\n // );\n params.editor.onQuestionEditorChanged(params.question);\n }),\n getLocString: function (str) { return _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getString(str); },\n choicesRendered: function () {\n if (sortable) {\n sortable.destroy();\n }\n sortable = _vendor_sortable__WEBPACK_IMPORTED_MODULE_2___default.a.create(sortableElement, {\n handle: \".svda-drag-handle\",\n draggable: \".item_draggable\",\n animation: 150,\n onEnd: function (evt) {\n var newChoices = [].concat(params.question.choices);\n var choice = newChoices[evt.oldIndex];\n newChoices.splice(evt.oldIndex, 1);\n newChoices.splice(evt.newIndex, 0, choice);\n params.question.choices = newChoices;\n //choices(newChoices);\n }\n });\n },\n valueChanged: function (itemValue, propertyName, newValue) {\n var newChoices = [].concat(params.question.choices);\n choices([]);\n choices(newChoices);\n params.editor.onAdornerRenderedCallback(params.question, \"select-choices\", componentInfo.element);\n },\n otherText: otherText,\n otherValueChanged: function (itemValue, propertyName, newValue) {\n otherText(params.question.otherText);\n },\n noneText: noneText,\n noneValueChanged: function (itemValue, propertyName, newValue) {\n noneText(params.question.noneText);\n }\n };\n }\n },\n template: templateHtml\n});\nvar renderEditableItems = function (elements, model, editor) {\n elements[0].onclick = function (e) { return e.preventDefault(); };\n var decoration = document.createElement(\"div\");\n decoration.innerHTML =\n \"\";\n elements[0].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({\n question: model,\n editor: editor\n }, decoration);\n editor.onAdornerRenderedCallback(model, \"select-choices\", decoration);\n};\n\n\n/***/ }),\n\n/***/ \"./src/adorners/select-items.ts\":\n/*!**************************************!*\\\n !*** ./src/adorners/select-items.ts ***!\n \\**************************************/\n/*! exports provided: selectItemsAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectItemsAdorner\", function() { return selectItemsAdorner; });\n/* harmony import */ var _adorners_select_items_display__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../adorners/select-items-display */ \"./src/adorners/select-items-display.ts\");\n/* harmony import */ var _adorners_select_items_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../adorners/select-items-editor */ \"./src/adorners/select-items-editor.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _select_items_editor_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./select-items-editor.scss */ \"./src/adorners/select-items-editor.scss\");\n/* harmony import */ var _select_items_editor_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_select_items_editor_scss__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nvar selectItemsAdorner = {\n getMarkerClass: function (model) {\n return !!model.parent && !!model.choices ? \"select_items_common\" : \"\";\n },\n getElementName: function (model) { return \"selectWrapper\"; },\n afterRender: function (elements, model, editor) {\n if (_surveyHelper__WEBPACK_IMPORTED_MODULE_2__[\"SurveyHelper\"].isCanModifyProperty(model, \"choices\", editor))\n Object(_adorners_select_items_editor__WEBPACK_IMPORTED_MODULE_1__[\"renderEditableItems\"])(elements, model, editor);\n else\n Object(_adorners_select_items_display__WEBPACK_IMPORTED_MODULE_0__[\"renderDisplayMode\"])(elements, model, editor);\n },\n renderReadOnly: _adorners_select_items_display__WEBPACK_IMPORTED_MODULE_0__[\"renderDisplayMode\"],\n isExpanded: true\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_3__[\"registerAdorner\"])(\"select-choices\", selectItemsAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/title-actions.scss\":\n/*!*****************************************!*\\\n !*** ./src/adorners/title-actions.scss ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/title-actions.ts\":\n/*!***************************************!*\\\n !*** ./src/adorners/title-actions.ts ***!\n \\***************************************/\n/*! exports provided: TitleActionsViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TitleActionsViewModel\", function() { return TitleActionsViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _title_actions_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./title-actions.scss */ \"./src/adorners/title-actions.scss\");\n/* harmony import */ var _title_actions_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_title_actions_scss__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./title-actions.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/title-actions.html\");\nvar TitleActionsViewModel = /** @class */ (function () {\n function TitleActionsViewModel(survey, input, rootElement, allowImageChooser) {\n var _this = this;\n if (allowImageChooser === void 0) { allowImageChooser = true; }\n this.survey = survey;\n this.input = input;\n this.rootElement = rootElement;\n this.uploadFiles = function (files) {\n if (!files[0])\n return;\n _this.survey.getEditor().uploadFiles(files, function (_, link) {\n _this.survey.logo = link;\n if (_this.survey.logoPosition === \"none\") {\n _this.survey.logoPosition = \"left\";\n }\n });\n };\n this.actions = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n if (allowImageChooser) {\n this.actions.push({\n name: \"editelement\",\n visible: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return survey.koShowHeader(); }),\n text: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return _this.getLocString(survey.isLogoImageChoosen() ? \"pe.changeLogo\" : \"pe.addLogo\");\n }),\n hasTitle: true,\n onClick: function () {\n _this.survey.getEditor().chooseFiles(_this.input, _this.uploadFiles);\n },\n });\n this.actions.push({\n name: \"setLogoPosition\",\n text: this.getLocString(\"pe.logoPosition\"),\n visible: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return survey.koShowHeader() && survey.isLogoImageChoosen(); }),\n value: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return survey.logoPosition; }),\n template: \"choice-action\",\n choices: [\n { value: \"none\", text: this.getLocString(\"pe.logoPositions.none\") },\n { value: \"left\", text: this.getLocString(\"pe.logoPositions.left\") },\n { value: \"right\", text: this.getLocString(\"pe.logoPositions.right\") },\n { value: \"top\", text: this.getLocString(\"pe.logoPositions.top\") },\n { value: \"bottom\", text: this.getLocString(\"pe.logoPositions.bottom\") },\n ],\n onClick: function (data, event) {\n var newValue = event.target.value;\n survey.logoPosition = newValue;\n if (newValue === \"none\") {\n survey.logo = undefined;\n }\n },\n });\n }\n if (survey.getEditor().allowControlSurveyTitleVisibility) {\n if (allowImageChooser) {\n this.actions.push({\n visible: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return survey.koShowHeader(); }),\n template: \"action-separator\",\n });\n }\n this.actions.push({\n name: \"showSurveyTitle\",\n visible: true,\n text: this.getLocString(\"pe.expandCollapseTitle\"),\n className: \"svda-title-action__show-hide\",\n icon: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n if (!survey.koShowHeader()) {\n return \"icon-arrow_down_10x10\";\n }\n return \"icon-arrow_up_10x10\";\n }),\n onClick: function () {\n survey.koShowHeader(!survey.koShowHeader());\n },\n });\n }\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n var headerContainer = _this.rootElement.parentElement\n .parentElement;\n if (survey.koShowHeader()) {\n headerContainer.classList.remove(\"svd_survey_header--hidden\");\n }\n else {\n headerContainer.classList.add(\"svd_survey_header--hidden\");\n }\n });\n }\n TitleActionsViewModel.prototype.getLocString = function (str) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"editorLocalization\"].getString(str);\n };\n TitleActionsViewModel.prototype.getStyle = function (model) {\n return knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](model.className) || \"\";\n };\n TitleActionsViewModel.prototype.getIcon = function (model) {\n if (!!model.icon) {\n return knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](model.icon);\n }\n return \"icon-action\" + model.name;\n };\n return TitleActionsViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"title-actions\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = new TitleActionsViewModel(params.survey, params.input, componentInfo.element, params.allowImageChooser);\n return model;\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/adorners/title-editor.scss\":\n/*!****************************************!*\\\n !*** ./src/adorners/title-editor.scss ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/adorners/title-editor.ts\":\n/*!**************************************!*\\\n !*** ./src/adorners/title-editor.ts ***!\n \\**************************************/\n/*! exports provided: TitleInplaceEditor, titleAdorner, itemTitleAdorner, descriptionAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TitleInplaceEditor\", function() { return TitleInplaceEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"titleAdorner\", function() { return titleAdorner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"itemTitleAdorner\", function() { return itemTitleAdorner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"descriptionAdorner\", function() { return descriptionAdorner; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _title_editor_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./title-editor.scss */ \"./src/adorners/title-editor.scss\");\n/* harmony import */ var _title_editor_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_title_editor_scss__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./title-editor.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/adorners/title-editor.html\");\nvar FRIENDLY_PADDING = 42;\nfunction resizeInput(target) {\n if (!target.style)\n return;\n var computedStyle = window.getComputedStyle(target);\n target.style.width =\n getTextWidth(target.value, computedStyle.fontSize + \" \" + computedStyle.fontFamily) +\n FRIENDLY_PADDING +\n \"px\";\n}\n/**\n * Uses canvas.measureText to compute and return the width of the given text of given font in pixels.\n *\n * @param {String} text The text to be rendered.\n * @param {String} font The css font descriptor that text is to be rendered with (e.g. \"bold 14px verdana\").\n *\n * @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393\n */\nvar cachedCanvas;\nfunction getTextWidth(text, font) {\n // re-use canvas object for better performance\n var canvas = cachedCanvas || (cachedCanvas = document.createElement(\"canvas\"));\n var context = canvas.getContext(\"2d\");\n context.font = font;\n var metrics = context.measureText(text);\n return metrics.width;\n}\nvar TitleInplaceEditor = /** @class */ (function () {\n function TitleInplaceEditor(target, name, rootElement, placeholder, editor) {\n var _this = this;\n if (placeholder === void 0) { placeholder = \"\"; }\n this.target = target;\n this.name = name;\n this.rootElement = rootElement;\n this.placeholder = placeholder;\n this.editor = editor;\n this.editingName = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]();\n this.prevName = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]();\n this.isEditing = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this._needSelectTargetOnStartEdit = false;\n this.onValidateSelectedElement = function (creator, options) {\n if (_this.hasErrors()) {\n options.errors.push(_this.error());\n }\n };\n this.error = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"\");\n this.hideEditor = function () {\n _this.isEditing(false);\n _this.forNeibours(function (element, index) {\n if (index === 0 && typeof element.focus === \"function\") {\n element.focus();\n }\n element.style.display = element.dataset[\"sjsOldDisplay\"];\n });\n };\n this.startEdit = function (model, event) {\n if (_this.readOnly) {\n return;\n }\n _this.isCompositionSessionOpen = false;\n _this.shouldCloseCompositionSession = false;\n _this.editor.selectFromStringEditor = true;\n if (_this._needSelectTargetOnStartEdit) {\n _this.editor.selectedElement = _this.target;\n }\n _this.updatePrevName();\n _this.editingName(_this.prevName());\n _this.isEditing(true);\n _this.forNeibours(function (element) {\n element.dataset[\"sjsOldDisplay\"] = element.style.display;\n element.style.display = \"none\";\n });\n var inputElement = _this.getInputElement();\n _this.draggableElement = _this.findDraggableElement(inputElement);\n if (!!_this.draggableElement) {\n _this.draggableElement.draggable = false;\n }\n inputElement.onblur = function () {\n if (!!_this.draggableElement) {\n _this.draggableElement.draggable = true;\n }\n };\n inputElement.onfocus = function () {\n var callback = model.editor.onTitleInplaceEditorStartEdit;\n if (!!callback) {\n callback(inputElement);\n return;\n }\n this.select();\n };\n resizeInput(inputElement);\n setTimeout(function () {\n inputElement.focus();\n }, 10);\n };\n this.postEdit = function () {\n _this.error(\"\");\n if (_this.readOnly) {\n _this.cancelEdit();\n return;\n }\n if (_this.prevName() !== _this.editingName()) {\n if (_this.hasErrors()) {\n return;\n }\n if (!!_this.valueChanged) {\n _this.valueChanged(_this.editingName());\n }\n _this.prevName(_this.editingName());\n }\n _this.hideEditor();\n };\n this.isCompositionSessionOpen = false;\n this.shouldCloseCompositionSession = false;\n this.cancelEdit = function () {\n _this.editingName(_this.prevName());\n _this.hideEditor();\n };\n this.compositionStart = function (model, event) {\n _this.isCompositionSessionOpen = true;\n _this.shouldCloseCompositionSession = false;\n };\n this.compositionEnd = function (model, event) {\n _this.shouldCloseCompositionSession = true;\n };\n this.nameEditorKeypress = function (model, event) {\n resizeInput(event.target);\n switch (event.keyCode) {\n case 13:\n if (_this.isCompositionSessionOpen) {\n if (_this.shouldCloseCompositionSession) {\n _this.isCompositionSessionOpen = false;\n _this.shouldCloseCompositionSession = false;\n }\n return true;\n }\n _this.postEdit();\n event.stopPropagation();\n return false;\n case 27:\n _this.cancelEdit();\n break;\n case 46:\n event.stopPropagation();\n }\n };\n this.nameEditorKeydown = function (model, event) {\n if (event.ctrlKey && (event.keyCode == 90 || event.keyCode == 89)) {\n event.stopPropagation();\n }\n return true;\n };\n if (typeof target.getType === \"function\") {\n this.property = survey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findProperty(target.getType(), name);\n this._needSelectTargetOnStartEdit = target.getType() === \"survey\";\n }\n this._valueSubscription = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n //TO REVIEW THIS CRUTCH\n if (_this.property.serializationProperty !== _this.property.name &&\n !!target[_this.property.serializationProperty]) {\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](target[_this.property.serializationProperty].koRenderedHtml);\n }\n _this.prevName(knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](target[name]));\n _this.editingName(knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](target[name]));\n });\n if (!!editor && !!editor.onValidateSelectedElement) {\n editor.onValidateSelectedElement.add(this.onValidateSelectedElement);\n }\n this.forNeibours(function (element, index) {\n element.tabIndex = 0;\n element.onkeyup = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"createKey2click\"])(element);\n element.setAttribute(\"aria-label\", _this.getLocString(\"pe.titleKeyboardAdornerTip\"));\n element.setAttribute(\"role\", \"textbox\");\n element.onpointerdown = function (e) {\n _this.startEdit(_this, e);\n e.preventDefault();\n };\n });\n }\n TitleInplaceEditor.prototype.forNeibours = function (func) {\n if (!this.rootElement ||\n !this.rootElement.parentElement ||\n !this.rootElement.parentElement.parentElement)\n return;\n var holder = this.rootElement.parentElement.parentElement;\n for (var i = 0; i < holder.children.length - 1; i++) {\n var element = holder.children[i];\n if (element.className.indexOf(\"svda-custom-content\") === -1) {\n func(element, i);\n }\n }\n };\n TitleInplaceEditor.prototype.getInputElement = function () {\n return this.rootElement.getElementsByTagName(\"input\")[0];\n };\n Object.defineProperty(TitleInplaceEditor.prototype, \"maxLength\", {\n get: function () {\n if (!!this.property &&\n this.property.maxLength &&\n this.property.maxLength >= 0) {\n return this.property.maxLength;\n }\n return \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TitleInplaceEditor.prototype, \"readOnly\", {\n get: function () {\n if (!!this.property && !!this.editor) {\n return this.editor.onIsPropertyReadOnlyCallback(this.target, this.property, this.property.readOnly, undefined, undefined);\n }\n return false;\n },\n enumerable: false,\n configurable: true\n });\n TitleInplaceEditor.prototype.getLocString = function (str) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(str);\n };\n TitleInplaceEditor.prototype.updatePrevName = function () {\n this.prevName(this.target[this.name]);\n };\n TitleInplaceEditor.prototype.hasErrors = function () {\n var errorText = \"\";\n var newValue = this.editingName();\n if (this.property.isRequired && !newValue) {\n errorText = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"pe.propertyIsEmpty\");\n }\n if (!errorText &&\n !!this.editor &&\n !!this.editor.onGetErrorTextOnValidationCallback) {\n errorText = this.editor.onGetErrorTextOnValidationCallback(this.property.name, this.target, newValue);\n }\n this.error(errorText);\n return !!errorText;\n };\n TitleInplaceEditor.prototype.findDraggableElement = function (el) {\n while (el) {\n if (el.draggable)\n return el;\n el = el.parentNode;\n }\n return null;\n };\n TitleInplaceEditor.prototype.dispose = function () {\n this.forNeibours(function (element) {\n element.onpointerdown = undefined;\n element.onkeyup = undefined;\n });\n this._valueSubscription.dispose();\n if (!!this.editor && !!this.editor.onValidateSelectedElement) {\n this.editor.onValidateSelectedElement.remove(this.onValidateSelectedElement);\n }\n };\n return TitleInplaceEditor;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"title-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = new TitleInplaceEditor(params.model, params.name, componentInfo.element, params.placeholder, params.editor);\n model.valueChanged = function (newValue) {\n var options = {\n propertyName: model.property.name,\n obj: params.model,\n value: newValue,\n newValue: null,\n doValidation: false,\n };\n params.editor.onValueChangingCallback(options);\n newValue = options.newValue === null ? options.value : options.newValue;\n var oldValue = params.model[params.name];\n params.model[params.name] = newValue;\n params.editor.onPropertyChanged(params.model, model.property, oldValue);\n params.editor.onPropertyValueChanged(model.property, params.model, newValue);\n return \"\";\n };\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"utils\"].domNodeDisposal.addDisposeCallback(componentInfo.element, function () {\n model.valueChanged = undefined;\n model.dispose();\n });\n return model;\n },\n },\n template: templateHtml,\n});\nvar titleAdorner = {\n surveyTitleEditable: true,\n pageTitleEditable: true,\n getMarkerClass: function (model) {\n if (typeof model.getType === \"function\" &&\n ((model.getType() === \"page\" && !titleAdorner.pageTitleEditable) ||\n (model.getType() === \"survey\" && !titleAdorner.surveyTitleEditable) ||\n !survey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findProperty(model.getType(), \"title\"))) {\n return \"\";\n }\n return \"title_editable\";\n },\n getElementName: function (model) { return \"title\"; },\n afterRender: function (elements, model, editor) {\n var placeholder = \"\";\n if (model.getType() === \"survey\") {\n placeholder = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"pe.surveyTitlePlaceholder\");\n }\n if (model.getType() === \"page\") {\n placeholder = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"pe.pageTitlePlaceholder\");\n }\n var decoration = document.createElement(\"span\");\n decoration.innerHTML = \"\");\n elements[0].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({ model: model, editor: editor }, decoration);\n editor.onAdornerRenderedCallback(model, \"title\", decoration);\n },\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__[\"registerAdorner\"])(\"title\", titleAdorner);\nvar itemTitleAdorner = {\n inplaceEditForNames: false,\n getMarkerClass: function (model) {\n return !!model.items ? \"item_title_editable title_editable\" : \"\";\n },\n getElementName: function (model) { return \"itemTitle\"; },\n afterRender: function (elements, model, editor) {\n var propertyName = itemTitleAdorner.inplaceEditForNames ? \"name\" : \"title\";\n for (var i = 0; i < elements.length; i++) {\n var decoration = document.createElement(\"span\");\n decoration.innerHTML =\n \"\";\n elements[i].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({ model: model.items[i], editor: editor }, decoration);\n editor.onAdornerRenderedCallback(model, \"item-title\", decoration, model.items[i]);\n }\n },\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__[\"registerAdorner\"])(\"item-title\", itemTitleAdorner);\nvar descriptionAdorner = {\n surveyDescriptionEditable: true,\n pageDescriptionEditable: true,\n getMarkerClass: function (model) {\n if (typeof model.getType === \"function\" &&\n ((model.getType() === \"page\" &&\n !descriptionAdorner.pageDescriptionEditable) ||\n (model.getType() === \"survey\" &&\n !descriptionAdorner.surveyDescriptionEditable) ||\n !survey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findProperty(model.getType(), \"description\"))) {\n return \"\";\n }\n return \"description_editable\";\n },\n getElementName: function (model) { return \"description\"; },\n afterRender: function (elements, model, editor) {\n var placeholder = \"\";\n if (model.getType() === \"survey\") {\n placeholder = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"pe.surveyDescriptionPlaceholder\");\n }\n if (model.getType() === \"page\") {\n placeholder = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"pe.pageDescriptionPlaceholder\");\n }\n var decoration = document.createElement(\"span\");\n decoration.innerHTML = \"\");\n elements[0].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({ model: model, editor: editor }, decoration);\n editor.onAdornerRenderedCallback(model, \"description\", decoration);\n },\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__[\"registerAdorner\"])(\"description\", descriptionAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/adorners/title-image.ts\":\n/*!*************************************!*\\\n !*** ./src/adorners/title-image.ts ***!\n \\*************************************/\n/*! exports provided: titleImageAdorner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"titleImageAdorner\", function() { return titleImageAdorner; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n\n\nvar titleImageAdorner = {\n ignoreHiddenLogoProperty: false,\n onRegister: function () {\n _surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__[\"SurveyForDesigner\"].isTitleLogoEditable(true);\n },\n onUnregister: function () {\n _surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__[\"SurveyForDesigner\"].isTitleLogoEditable(false);\n },\n getMarkerClass: function (model) {\n return typeof model.getType === \"function\" && model.getType() === \"survey\"\n ? \"image_editable\"\n : \"\";\n },\n getElementName: function (model) { return \"logo\"; },\n afterRender: function (elements, model, editor) {\n if (editor.readOnly) {\n return;\n }\n var allowImageChooser = titleImageAdorner.ignoreHiddenLogoProperty ||\n editor.canShowObjectProperty(model, \"logo\");\n if (allowImageChooser) {\n var itemsRoot = elements[0];\n var input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = \"image/*\";\n input.className = \"svda-choose-file\";\n input.style.position = \"absolute\";\n input.style.opacity = \"0\";\n input.style.width = \"1px\";\n input.style.height = \"1px\";\n input.style.overflow = \"hidden\";\n itemsRoot.parentElement.appendChild(input);\n for (var i = 0; i < elements.length; i++) {\n elements[i].onclick = function (e) { return e.preventDefault(); };\n var decoration = document.createElement(\"span\");\n decoration.className = \"svda-adorner-root\";\n decoration.innerHTML =\n \"\";\n elements[i].appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({\n question: model,\n target: model,\n editor: editor,\n input: input,\n }, decoration);\n editor.onAdornerRenderedCallback(model, \"title-image\", decoration, model);\n }\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n if (elements.length !== 2)\n return;\n var position = model.logoPosition;\n elements[0].style.display = \"none\";\n elements[1].style.display = \"none\";\n if (!model.isLogoImageChoosen() || position === \"none\")\n return;\n if (position === \"left\" || position === \"top\") {\n elements[0].style.display = \"\";\n }\n else {\n elements[1].style.display = \"\";\n }\n });\n }\n else {\n elements[0].style.display = \"none\";\n elements[1].style.display = \"none\";\n }\n var decoration = document.createElement(\"span\");\n decoration.className = \"svda-title-actions\";\n decoration.innerHTML =\n \"\";\n elements[0].parentElement.appendChild(decoration);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindings\"]({ model: model, input: input, allowImageChooser: allowImageChooser }, decoration);\n editor.onAdornerRenderedCallback(model, \"title-actions\", decoration, model);\n },\n};\nObject(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_1__[\"registerAdorner\"])(\"title-image\", titleImageAdorner);\n\n\n/***/ }),\n\n/***/ \"./src/commands.ts\":\n/*!*************************!*\\\n !*** ./src/commands.ts ***!\n \\*************************/\n/*! exports provided: Commands */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Commands\", function() { return Commands; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n\nvar Commands = /** @class */ (function () {\n function Commands(creator) {\n var _this = this;\n this.creator = creator;\n this.commands = {\n undo: {\n name: \"undo\",\n hotKey: {\n ctrlKey: true,\n keyCode: 90,\n },\n macOsHotkey: {\n keyCode: 90,\n },\n toolbar: {\n id: \"svd-undo\",\n iconName: \"icon-actionundo\",\n visible: this.creator.koIsShowDesigner,\n enabled: this.creator.koCanUndo,\n title: this.creator.getLocString(\"ed.undo\"),\n tooltip: this.creator.getLocString(\"ed.undoTooltip\"),\n },\n },\n redo: {\n name: \"redo\",\n hotKey: {\n ctrlKey: true,\n keyCode: 89,\n },\n macOsHotkey: {\n shiftKey: true,\n keyCode: 90,\n },\n toolbar: {\n id: \"svd-redo\",\n iconName: \"icon-actionredo\",\n visible: this.creator.koIsShowDesigner,\n enabled: this.creator.koCanRedo,\n title: this.creator.getLocString(\"ed.redo\"),\n tooltip: this.creator.getLocString(\"ed.redoTooltip\"),\n },\n },\n surveySettings: {\n toolbar: {\n id: \"svd-survey-settings\",\n iconName: \"icon-actionsettings\",\n visible: this.creator.koIsShowDesigner,\n enabled: true,\n action: function () {\n _this.creator.selectedElement = _this.creator.survey;\n _this.creator.showQuestionEditor(_this.creator.survey);\n },\n title: this.creator.getLocString(\"ed.settings\"),\n tooltip: this.creator.getLocString(\"ed.settingsTooltip\"),\n },\n },\n toolbarOptions: {\n toolbar: {\n id: \"svd-options\",\n visible: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return _this.creator.koIsShowDesigner() && _this.creator.koShowOptions(); }),\n title: this.creator.getLocString(\"ed.options\"),\n template: \"svd-toolbar-options\",\n items: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]([\n {\n id: \"svd-valid-json\",\n visible: true,\n css: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return _this.creator.koGenerateValidJSON() ? \"active\" : \"\";\n }),\n action: this.creator.generateValidJSONClick,\n title: this.creator.getLocString(\"ed.generateValidJSON\"),\n },\n {\n id: \"svd-readable-json\",\n visible: true,\n css: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return !_this.creator.koGenerateValidJSON() ? \"active\" : \"\";\n }),\n action: this.creator.generateReadableJSONClick,\n title: this.creator.getLocString(\"ed.generateReadableJSON\"),\n },\n ]),\n },\n },\n surveyTest: {\n toolbar: {\n id: \"svd-test\",\n visible: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return _this.creator.koViewType() === \"test\"; }),\n title: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return _this.creator.getLocString(\"ed.testSurveyWidth\") +\n \" \" +\n _this.creator.koTestSurveyWidth();\n }),\n template: \"svd-toolbar-options\",\n items: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]([\n {\n id: \"svd-100-json\",\n visible: true,\n action: function () { return _this.creator.koTestSurveyWidth(\"100%\"); },\n title: \"100%\",\n },\n {\n id: \"svd-1200px-json\",\n visible: true,\n action: function () { return _this.creator.koTestSurveyWidth(\"1200px\"); },\n title: \"1200px\",\n },\n {\n id: \"svd-1000px-json\",\n visible: true,\n action: function () { return _this.creator.koTestSurveyWidth(\"1000px\"); },\n title: \"1000px\",\n },\n {\n id: \"svd-800px-json\",\n visible: true,\n action: function () { return _this.creator.koTestSurveyWidth(\"800px\"); },\n title: \"800px\",\n },\n {\n id: \"svd-600px-json\",\n visible: true,\n action: function () { return _this.creator.koTestSurveyWidth(\"600px\"); },\n title: \"600px\",\n },\n {\n id: \"svd-400px-json\",\n visible: true,\n action: function () { return _this.creator.koTestSurveyWidth(\"400px\"); },\n title: \"400px\",\n },\n ]),\n },\n },\n save: {\n toolbar: {\n id: \"svd-save\",\n visible: this.creator.koShowSaveButton,\n action: this.creator.saveButtonClick,\n innerCss: \"svd_save_btn\",\n title: this.creator.getLocString(\"ed.saveSurvey\"),\n tooltip: this.creator.getLocString(\"ed.saveSurveyTooltip\"),\n },\n },\n state: {\n toolbar: {\n id: \"svd-state\",\n visible: this.creator.koShowState,\n css: \"svd_state\",\n innerCss: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return \"icon-\" + _this.creator.koState(); }),\n title: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return _this.creator.getLocString(\"ed.\" + _this.creator.koState());\n }),\n template: \"svd-toolbar-state\",\n },\n },\n };\n }\n Commands.prototype.getCommands = function () {\n return this.commands;\n };\n return Commands;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/components/element-selector.html\":\n/*!**********************************************!*\\\n !*** ./src/components/element-selector.html ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n
\\n \\n \\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/components/element-selector.scss\":\n/*!**********************************************!*\\\n !*** ./src/components/element-selector.scss ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/components/element-selector.ts\":\n/*!********************************************!*\\\n !*** ./src/components/element-selector.ts ***!\n \\********************************************/\n/*! exports provided: ElementSelectorViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ElementSelectorViewModel\", function() { return ElementSelectorViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _element_selector_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./element-selector.scss */ \"./src/components/element-selector.scss\");\n/* harmony import */ var _element_selector_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_element_selector_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./element-selector.html */ \"./src/components/element-selector.html\");\nvar ElementSelectorViewModel = /** @class */ (function () {\n function ElementSelectorViewModel(model, koValue, optionsCaption, koHasFocus, koElements) {\n this.model = model;\n this.koValue = koValue;\n this.optionsCaption = optionsCaption;\n this.koHasFocus = koHasFocus;\n this.koElements = koElements;\n }\n return ElementSelectorViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-element-selector\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new ElementSelectorViewModel(model, model.koValue, model.optionsCaption, model.koHasFocus, model.koElements);\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/components/pages-editor.scss\":\n/*!******************************************!*\\\n !*** ./src/components/pages-editor.scss ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/components/pages-editor.ts\":\n/*!****************************************!*\\\n !*** ./src/components/pages-editor.ts ***!\n \\****************************************/\n/*! exports provided: PagesEditorViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PagesEditorViewModel\", function() { return PagesEditorViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _entries__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../entries */ \"./src/entries/index.ts\");\n/* harmony import */ var _pages_editor_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pages-editor.scss */ \"./src/components/pages-editor.scss\");\n/* harmony import */ var _pages_editor_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_pages_editor_scss__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _stylesmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../stylesmanager */ \"./src/stylesmanager.ts\");\n\n\n\n\nvar template = __webpack_require__(/*! html-loader?interpolate!val-loader!./pages-editor.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/components/pages-editor.html\");\nvar PagesEditorViewModel = /** @class */ (function () {\n function PagesEditorViewModel(model, element) {\n var _this = this;\n this.model = model;\n this.element = element;\n this.pageSelectionChanged = undefined;\n this.updateScroller = undefined;\n this.isNeedAutoScroll = true;\n this.scrollToSelectedPage = function () {\n var pagesElement = _this.element.querySelector(\".svd-pages\");\n if (!pagesElement)\n return;\n var index = _this.model.pages.indexOf(_this.model.selectedPage());\n var pageElement = pagesElement.children[index];\n if (!pageElement)\n return;\n pagesElement.scrollLeft =\n pageElement.offsetLeft -\n pagesElement.offsetLeft -\n pagesElement.offsetWidth / 2;\n _this.updateMenuPosition();\n };\n this.getPageClass = function (page) {\n var result = page === _this.model.selectedPage()\n ? \"svd_selected_page svd-light-bg-color\"\n : \"\";\n if (_this.model.pages.indexOf(page) !== _this.model.pages.length - 1) {\n result += \" svd-border-right-none\";\n }\n return result;\n };\n this.getPageMenuIconClass = function (page) {\n var baseIconName = _stylesmanager__WEBPACK_IMPORTED_MODULE_3__[\"StylesManager\"].currentTheme() === \"modern\" ? \"dots\" : \"gear\";\n return page === _this.model.selectedPage() && _this.model.isActive()\n ? \"icon-\" + baseIconName + \"active\"\n : \"icon-\" + baseIconName;\n };\n this.onPageClick = function (pageModel, event) {\n _this.isNeedAutoScroll = false;\n _this.model.selectedPage(pageModel);\n event.stopPropagation();\n _this.updateMenuPosition();\n };\n this.movingPage = null;\n this.movedFrom = -1;\n this.hasScroller = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n if (!!this.element && typeof this.element.querySelector === \"function\") {\n this.updateScroller = setInterval(function () {\n var pagesElement = _this.element.querySelector(\".svd-pages\");\n if (!!pagesElement) {\n _this.hasScroller(pagesElement.scrollWidth > pagesElement.offsetWidth);\n }\n }, 100);\n this.pageSelectionChanged = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n if (model.selectedPage() && _this.isNeedAutoScroll) {\n _this.scrollToSelectedPage();\n }\n else {\n _this.isNeedAutoScroll = true;\n }\n });\n }\n }\n PagesEditorViewModel.prototype.moveLeft = function (model, event) {\n var pagesElement = this.element.querySelector(\".svd-pages\");\n pagesElement.scrollLeft -= 50;\n this.updateMenuPosition();\n };\n PagesEditorViewModel.prototype.moveRight = function (model, event) {\n var pagesElement = this.element.querySelector(\".svd-pages\");\n pagesElement.scrollLeft += 50;\n this.updateMenuPosition();\n };\n PagesEditorViewModel.prototype.onWheel = function (model, event) {\n var pagesElement = model.element.querySelector(\".svd-pages\");\n event = event || window.event;\n if (!!event.originalEvent) {\n event = event.originalEvent;\n }\n var delta = event.deltaY || event.detail || event.wheelDelta;\n pagesElement.scrollLeft -= delta;\n event.preventDefault ? event.preventDefault() : (event.returnValue = false);\n this.updateMenuPosition();\n };\n PagesEditorViewModel.prototype.updateMenuPosition = function () {\n var pagesElement = this.element.querySelector(\".svd-pages\");\n var menuElements = pagesElement.getElementsByClassName(\"svd-page-actions\");\n for (var i = 0; i < menuElements.length; i++) {\n menuElements[i].style.left =\n menuElements[i].parentElement.offsetLeft -\n pagesElement.scrollLeft +\n \"px\";\n }\n };\n PagesEditorViewModel.prototype.getLocString = function (str) {\n return _entries__WEBPACK_IMPORTED_MODULE_1__[\"editorLocalization\"].getString(str);\n };\n Object.defineProperty(PagesEditorViewModel.prototype, \"sortableOptions\", {\n get: function () {\n var _this = this;\n return {\n handle: \".svd-page-name\",\n animation: 150,\n onStart: function () {\n _this.movingPage = null;\n _this.movedFrom = -1;\n _this.model.creator.undoRedoManager.startTransaction(\"pages drag drop transaction\");\n _this.model.blockPagesRebuilt(true);\n },\n onEnd: function (evt) {\n _this.isNeedAutoScroll = false;\n _this.model.blockPagesRebuilt(false);\n _this.model.creator.undoRedoManager.stopTransaction();\n if (!!_this.movingPage) {\n _this.model.movePage(_this.movingPage, _this.movedFrom);\n }\n },\n onUpdate: function (evt, itemV) {\n _this.movingPage = itemV;\n if (_this.movedFrom < 0) {\n _this.movedFrom = _this.model.pages.indexOf(_this.movingPage);\n }\n if (_entries__WEBPACK_IMPORTED_MODULE_1__[\"SurveyHelper\"].moveItemInArray(_this.model.pages, itemV, evt.newIndex)) {\n // Remove sortables \"unbound\" element\n evt.item.parentNode.removeChild(evt.item);\n }\n return true;\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n PagesEditorViewModel.prototype.dispose = function () {\n this.pageSelectionChanged.dispose();\n if (!!this.updateScroller) {\n clearInterval(this.updateScroller);\n this.updateScroller = undefined;\n }\n };\n return PagesEditorViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-pages-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.editor.pagesEditorModel || params.item.data;\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"utils\"].domNodeDisposal.addDisposeCallback(componentInfo.element, function () {\n model.dispose();\n });\n return new PagesEditorViewModel(model, componentInfo.element);\n },\n },\n template: template,\n});\n\n\n/***/ }),\n\n/***/ \"./src/components/results-table-row.html\":\n/*!***********************************************!*\\\n !*** ./src/components/results-table-row.html ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n\\n\\n\\n\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/components/results.html\":\n/*!*************************************!*\\\n !*** ./src/components/results.html ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n

\\n
\\n
    \\n
  • \\n \\n
  • \\n
  • \\n \\n
  • \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\";\n\n/***/ }),\n\n/***/ \"./src/components/results.scss\":\n/*!*************************************!*\\\n !*** ./src/components/results.scss ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/components/results.ts\":\n/*!***********************************!*\\\n !*** ./src/components/results.ts ***!\n \\***********************************/\n/*! exports provided: SurveyResultsModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyResultsModel\", function() { return SurveyResultsModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _results_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./results.scss */ \"./src/components/results.scss\");\n/* harmony import */ var _results_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_results_scss__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar templateHtml = __webpack_require__(/*! ./results.html */ \"./src/components/results.html\");\nvar rowTemplateHtml = __webpack_require__(/*! ./results-table-row.html */ \"./src/components/results-table-row.html\");\nvar SurveyResultsModel = /** @class */ (function () {\n function SurveyResultsModel(survey) {\n this.survey = survey;\n this.koResultViewType = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"table\");\n this.koResultText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"\");\n this.koResultData = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n this.koResultText(JSON.stringify(survey.data, null, 4));\n var addCollapsed = function (items) {\n items.forEach(function (item) {\n if (!!item && item.isNode) {\n item.collapsed = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n item.data = addCollapsed(item.data || []);\n }\n });\n return items.filter(function (item) { return !!item; });\n };\n var plainData = survey.getPlainData({ includeEmpty: false });\n plainData = addCollapsed(plainData);\n this.koResultData(plainData);\n }\n SurveyResultsModel.prototype.getLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"editorLocalization\"].getString(name);\n };\n Object.defineProperty(SurveyResultsModel.prototype, \"surveyResultsText\", {\n get: function () {\n return this.getLocString(\"ed.surveyResults\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyResultsModel.prototype, \"resultsTitle\", {\n get: function () {\n return this.getLocString(\"ed.resultsTitle\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyResultsModel.prototype, \"resultsName\", {\n get: function () {\n return this.getLocString(\"ed.resultsName\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyResultsModel.prototype, \"resultsValue\", {\n get: function () {\n return this.getLocString(\"ed.resultsValue\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyResultsModel.prototype, \"resultsDisplayValue\", {\n get: function () {\n return this.getLocString(\"ed.resultsDisplayValue\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyResultsModel.prototype.selectTableClick = function (model) {\n model.koResultViewType(\"table\");\n };\n SurveyResultsModel.prototype.selectJsonClick = function (model) {\n model.koResultViewType(\"text\");\n };\n return SurveyResultsModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"survey-results\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return new SurveyResultsModel(params.survey);\n }\n },\n template: templateHtml,\n});\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"survey-results-table-row\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return model;\n }\n },\n template: rowTemplateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/components/simulator.html\":\n/*!***************************************!*\\\n !*** ./src/components/simulator.html ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n
\";\n\n/***/ }),\n\n/***/ \"./src/components/simulator.scss\":\n/*!***************************************!*\\\n !*** ./src/components/simulator.scss ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/components/simulator.ts\":\n/*!*************************************!*\\\n !*** ./src/components/simulator.ts ***!\n \\*************************************/\n/*! exports provided: SurveySimulatorComponent, DEFAULT_MONITOR_DPI, simulatorDevices */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveySimulatorComponent\", function() { return SurveySimulatorComponent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_MONITOR_DPI\", function() { return DEFAULT_MONITOR_DPI; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"simulatorDevices\", function() { return simulatorDevices; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _simulator_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./simulator.scss */ \"./src/components/simulator.scss\");\n/* harmony import */ var _simulator_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_simulator_scss__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar templateHtml = __webpack_require__(/*! ./simulator.html */ \"./src/components/simulator.html\");\nvar SurveySimulatorComponent = /** @class */ (function () {\n function SurveySimulatorComponent(_toolbarHolder, _options) {\n var _this = this;\n if (_options === void 0) { _options = {\n landscape: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true),\n device: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"desktop\"),\n survey: undefined\n }; }\n this._toolbarHolder = _toolbarHolder;\n this._options = _options;\n this.simulatorOptions = {\n device: \"desktop\",\n orientation: \"l\",\n // scale: 1,\n considerDPI: true\n };\n this._simulatorEnabled = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this._simulatorScaleEnabled = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.koDevices = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"](Object.keys(simulatorDevices)\n .filter(function (key) { return !!simulatorDevices[key].title; })\n .map(function (key) {\n return {\n text: simulatorDevices[key].title,\n value: key,\n };\n }));\n this._options.device.subscribe(function (newValue) {\n if (!!_this.simulator) {\n _this.simulatorOptions.device = newValue || \"desktop\";\n _this.simulator.options(_this.simulatorOptions);\n }\n });\n this._options.landscape.subscribe(function (newValue) {\n if (!!_this.simulator) {\n _this.simulatorOptions.orientation = newValue ? \"l\" : \"p\";\n _this.simulator.options(_this.simulatorOptions);\n }\n });\n this.koHasFrame = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n var device = simulatorDevices[_this.activeDevice];\n return _this.simulatorEnabled && device.deviceType !== \"desktop\";\n });\n this.koSimulatorFrame = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n if (!_this.koHasFrame) {\n return undefined;\n }\n var device = simulatorDevices[_this.activeDevice];\n var scale = DEFAULT_MONITOR_DPI / device.ppi;\n var deviceWidth = (_this.landscapeOrientation ? device.height : device.width) / device.cssPixelRatio;\n var deviceHeight = (_this.landscapeOrientation ? device.width : device.height) / device.cssPixelRatio;\n var deviceLandscapedFrameWidth = (_this.landscapeOrientation ? device.frameHeight : device.frameWidth);\n var deviceLandscapedFrameHeight = (_this.landscapeOrientation ? device.frameWidth : device.frameHeight);\n var frameWidth = deviceLandscapedFrameWidth * scale;\n var frameHeight = deviceLandscapedFrameHeight * scale;\n return {\n scale: _this.simulatorScaleEnabled ? scale * device.cssPixelRatio : 1,\n frameWidth: frameWidth,\n frameHeight: frameHeight,\n landscapedFrameWidth: _this.landscapeOrientation ? frameHeight : frameWidth,\n landscapedFrameHeight: _this.landscapeOrientation ? frameWidth : frameHeight,\n deviceWidth: deviceWidth,\n deviceHeight: deviceHeight,\n cssClass: device.cssClass +\n (_this.landscapeOrientation ? \" svd-simulator-frame-landscape\" : \"\"),\n };\n });\n if (!!_toolbarHolder) {\n this._options.survey = this._toolbarHolder.koSurvey;\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n _this.simulatorEnabled = _toolbarHolder.showSimulator();\n });\n _toolbarHolder.toolbarItems.push({\n id: \"svd-test-simulator\",\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"pe.simulator\"),\n visible: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return _this.simulatorEnabled; }),\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"pe.simulator\"),\n component: \"svd-dropdown\",\n action: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"]({\n read: function () { return _this.activeDevice; },\n write: function (val) { return _this.activeDevice = val; }\n }),\n items: this.koDevices\n });\n _toolbarHolder.toolbarItems.push({\n id: \"svd-test-simulator-orientation\",\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"pe.landscapeOrientation\"),\n visible: this.koHasFrame,\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"pe.landscapeOrientation\"),\n component: \"svd-boolean\",\n action: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"]({\n read: function () { return _this.landscapeOrientation; },\n write: function (val) { return _this.landscapeOrientation = val; }\n })\n });\n }\n }\n Object.defineProperty(SurveySimulatorComponent.prototype, \"survey\", {\n get: function () {\n return this._options.survey();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveySimulatorComponent.prototype, \"simulatorEnabled\", {\n get: function () {\n return this._simulatorEnabled();\n },\n set: function (value) {\n this._simulatorEnabled(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveySimulatorComponent.prototype, \"simulatorScaleEnabled\", {\n get: function () {\n return this._simulatorScaleEnabled();\n },\n set: function (value) {\n this._simulatorScaleEnabled(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveySimulatorComponent.prototype, \"activeDevice\", {\n get: function () {\n return this._options.device();\n },\n set: function (device) {\n if (this.survey && typeof this.survey.setIsMobile === \"function\") {\n this.survey.setIsMobile(device !== \"desktop\");\n }\n this._options.device(device);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveySimulatorComponent.prototype, \"landscapeOrientation\", {\n get: function () {\n return this._options.landscape();\n },\n set: function (isLanscape) {\n this._options.landscape(isLanscape);\n },\n enumerable: false,\n configurable: true\n });\n return SurveySimulatorComponent;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"survey-simulator\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return new SurveySimulatorComponent(params.model, params.options);\n }\n },\n template: templateHtml,\n});\nvar DEFAULT_MONITOR_DPI = (typeof window !== \"undefined\" ? window.devicePixelRatio : 1) * 96;\nvar simulatorDevices = {\n desktop: {\n deviceType: \"desktop\",\n title: \"Desktop\",\n },\n // desktop_1280x720: {\n // cssPixelRatio: 1,\n // ppi: DEFAULT_MONITOR_DPI,\n // width: 720,\n // height: 1280,\n // deviceType: \"desktop\",\n // title: \"Desktop 1280x720\"\n // },\n // desktop_1440x900: {\n // cssPixelRatio: 1,\n // ppi: DEFAULT_MONITOR_DPI,\n // width: 900,\n // height: 1440,\n // deviceType: \"desktop\",\n // title: \"Desktop 1440x900\"\n // },\n // desktop_1920x1080: {\n // cssPixelRatio: 1,\n // ppi: DEFAULT_MONITOR_DPI,\n // width: 1080,\n // height: 1920,\n // deviceType: \"desktop\",\n // title: \"Desktop 1920x1080\"\n // },\n // iPhone: {\n // cssPixelRatio: 2,\n // ppi: 326,\n // width: 640,\n // height: 960,\n // frameWidth: 730,\n // frameHeight: 1340,\n // deviceType: \"phone\",\n // title: \"iPhone\",\n // cssClass: \"svd-simulator-iphone4\"\n // },\n iPhone5: {\n cssPixelRatio: 2,\n ppi: 326,\n width: 640,\n height: 1136,\n frameWidth: 750,\n frameHeight: 1500,\n deviceType: \"phone\",\n title: \"iPhone 5\",\n cssClass: \"svd-simulator-iphone5\"\n },\n iPhone6: {\n cssPixelRatio: 2,\n ppi: 326,\n width: 750,\n height: 1334,\n frameWidth: 960,\n frameHeight: 1750,\n deviceType: \"phone\",\n title: \"iPhone 6\",\n cssClass: \"svd-simulator-iphone6\"\n },\n iPhone6plus: {\n cssPixelRatio: 2.6,\n ppi: 401,\n width: 1080,\n height: 1920,\n frameWidth: 1330,\n frameHeight: 2550,\n deviceType: \"phone\",\n title: \"iPhone 6 Plus\",\n cssClass: \"svd-simulator-iphone6plus\"\n },\n iPhone8: {\n cssPixelRatio: 2,\n ppi: 326,\n width: 750,\n height: 1334,\n frameWidth: 990,\n frameHeight: 1860,\n deviceType: \"phone\",\n title: \"iPhone 8\",\n cssClass: \"svd-simulator-iphone8\"\n },\n iPhone8plus: {\n cssPixelRatio: 3,\n ppi: 401,\n width: 1080,\n height: 1920,\n frameWidth: 1330,\n frameHeight: 2550,\n deviceType: \"phone\",\n title: \"iPhone 8 Plus\",\n cssClass: \"svd-simulator-iphone8plus\"\n },\n iPhoneX: {\n cssPixelRatio: 3,\n ppi: 458,\n width: 1125,\n height: 2436,\n frameWidth: 1330,\n frameHeight: 2680,\n deviceType: \"phone\",\n title: \"iPhone X\",\n cssClass: \"svd-simulator-iphonex\"\n },\n iPhoneXmax: {\n cssPixelRatio: 3,\n ppi: 458,\n width: 1242,\n height: 2688,\n frameWidth: 1410,\n frameHeight: 2980,\n deviceType: \"phone\",\n title: \"iPhone X Max\",\n cssClass: \"svd-simulator-iphonexmax\"\n },\n iPad: {\n cssPixelRatio: 2,\n ppi: 264,\n width: 1536,\n height: 2048,\n frameWidth: 1837,\n frameHeight: 2563,\n deviceType: \"tablet\",\n title: \"iPad\",\n cssClass: \"svd-simulator-ipad\"\n },\n iPadMini: {\n cssPixelRatio: 2,\n ppi: 163,\n width: 768,\n height: 1024,\n frameWidth: 945,\n frameHeight: 1300,\n deviceType: \"tablet\",\n title: \"iPad Mini\",\n cssClass: \"svd-simulator-ipadmini\"\n },\n iPadPro: {\n cssPixelRatio: 2,\n ppi: 264,\n width: 1688,\n height: 2388,\n frameWidth: 2008,\n frameHeight: 2980,\n deviceType: \"tablet\",\n title: 'iPad Pro 11\"',\n cssClass: \"svd-simulator-ipadpro\"\n },\n iPadPro13: {\n cssPixelRatio: 2,\n ppi: 264,\n width: 2048,\n height: 2732,\n frameWidth: 2360,\n frameHeight: 3300,\n deviceType: \"tablet\",\n title: 'iPad Pro 12,9\"',\n cssClass: \"svd-simulator-ipadpro13\"\n },\n androidPhone: {\n cssPixelRatio: 2,\n ppi: 316,\n width: 720,\n height: 1280,\n frameWidth: 850,\n frameHeight: 1630,\n deviceType: \"phone\",\n title: \"Android Phone\",\n cssClass: \"svd-simulator-androidphone\"\n },\n androidTablet: {\n cssPixelRatio: 1.5,\n ppi: 149,\n width: 800,\n height: 1280,\n frameWidth: 1070,\n frameHeight: 1480,\n deviceType: \"tablet\",\n title: \"Android Tablet\",\n cssClass: \"svd-simulator-androidtablet\"\n },\n win10Phone: {\n cssPixelRatio: 1,\n ppi: 152,\n width: 330,\n height: 568,\n frameWidth: 480,\n frameHeight: 846,\n deviceType: \"phone\",\n title: \"Windows 10 Phone\",\n cssClass: \"svd-simulator-win10phone\"\n },\n msSurface: {\n cssPixelRatio: 1,\n ppi: 148,\n width: 768,\n height: 1366,\n frameWidth: 1040,\n frameHeight: 1620,\n deviceType: \"tablet\",\n title: \"MS Surface\",\n cssClass: \"svd-simulator-mssurface\"\n },\n genericPhone: {\n cssPixelRatio: 1,\n deviceType: \"phone\",\n title: \"\",\n cssClass: \"svd-simulator-genphone\"\n },\n};\n\n\n/***/ }),\n\n/***/ \"./src/components/toolbar.html\":\n/*!*************************************!*\\\n !*** ./src/components/toolbar.html ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\";\n\n/***/ }),\n\n/***/ \"./src/components/toolbar.scss\":\n/*!*************************************!*\\\n !*** ./src/components/toolbar.scss ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/components/toolbar.ts\":\n/*!***********************************!*\\\n !*** ./src/components/toolbar.ts ***!\n \\***********************************/\n/*! exports provided: Toolbar */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Toolbar\", function() { return Toolbar; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _toolbar_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toolbar.scss */ \"./src/components/toolbar.scss\");\n/* harmony import */ var _toolbar_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_toolbar_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar template = __webpack_require__(/*! ./toolbar.html */ \"./src/components/toolbar.html\");\nvar Toolbar = /** @class */ (function () {\n function Toolbar(items) {\n this.items = items;\n }\n Object.defineProperty(Toolbar.prototype, \"hasItems\", {\n get: function () {\n return (knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](this.items) || []).length > 0;\n },\n enumerable: false,\n configurable: true\n });\n return Toolbar;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-toolbar\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return new Toolbar(params.items);\n },\n },\n template: template,\n});\n\n\n/***/ }),\n\n/***/ \"./src/components/toolbox-item.scss\":\n/*!******************************************!*\\\n !*** ./src/components/toolbox-item.scss ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/components/toolbox-item.ts\":\n/*!****************************************!*\\\n !*** ./src/components/toolbox-item.ts ***!\n \\****************************************/\n/*! exports provided: ToolboxItemViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ToolboxItemViewModel\", function() { return ToolboxItemViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _toolbox_item_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toolbox-item.scss */ \"./src/components/toolbox-item.scss\");\n/* harmony import */ var _toolbox_item_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_toolbox_item_scss__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar template = __webpack_require__(/*! html-loader?interpolate!val-loader!./toolbox-item.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/components/toolbox-item.html\");\nvar ToolboxItemViewModel = /** @class */ (function () {\n function ToolboxItemViewModel(item, _creator) {\n var _this = this;\n this.item = item;\n this._creator = _creator;\n this.click = function () { _this._creator.clickToolboxItem(_this.item); };\n this.dragstart = function (el, e) { _this._creator.draggingToolboxItem(_this.item, e); return true; };\n this.dragend = function (el, e) { _this._creator.dragEnd(); };\n }\n Object.defineProperty(ToolboxItemViewModel.prototype, \"ariaLabel\", {\n get: function () { return this.item.tooltip + \" \" + Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"toolbox\") + \" item\"; },\n enumerable: false,\n configurable: true\n });\n return ToolboxItemViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-toolbox-item\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var item = params.item;\n var creator = params.creator;\n return new ToolboxItemViewModel(item, creator);\n }\n },\n template: template\n});\n\n\n/***/ }),\n\n/***/ \"./src/components/toolbox.scss\":\n/*!*************************************!*\\\n !*** ./src/components/toolbox.scss ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/components/toolbox.ts\":\n/*!***********************************!*\\\n !*** ./src/components/toolbox.ts ***!\n \\***********************************/\n/*! exports provided: ToolboxItemViewModel, ToolboxViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ToolboxViewModel\", function() { return ToolboxViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _toolbox_item__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toolbox-item */ \"./src/components/toolbox-item.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ToolboxItemViewModel\", function() { return _toolbox_item__WEBPACK_IMPORTED_MODULE_1__[\"ToolboxItemViewModel\"]; });\n\n/* harmony import */ var _toolbox_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toolbox.scss */ \"./src/components/toolbox.scss\");\n/* harmony import */ var _toolbox_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_toolbox_scss__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar template = __webpack_require__(/*! html-loader?interpolate!val-loader!./toolbox.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/components/toolbox.html\");\nvar ToolboxViewModel;\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-toolbox\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var creator = params.itemsProvider;\n // let toolbox = new QuestionToolbox(creator.toolboxItems, creator);\n // ko.utils.domNodeDisposal.addDisposeCallback(componentInfo.element, () => {\n // creator.toolbox.dispose();\n // creator.toolbox = undefined;\n // });\n // creator.toolbox = toolbox;\n // return toolbox;\n return creator.toolbox;\n }\n },\n template: template\n});\n\n\n/***/ }),\n\n/***/ \"./src/creator-base.ts\":\n/*!*****************************!*\\\n !*** ./src/creator-base.ts ***!\n \\*****************************/\n/*! exports provided: CreatorBaseEvent, CreatorBase */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CreatorBaseEvent\", function() { return CreatorBaseEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CreatorBase\", function() { return CreatorBase; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _questionconverter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./questionconverter */ \"./src/questionconverter.ts\");\n/* harmony import */ var _textWorker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./textWorker */ \"./src/textWorker.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony import */ var _json5__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./json5 */ \"./src/json5.ts\");\n/* harmony import */ var _tabs_logic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./tabs/logic */ \"./src/tabs/logic.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\n/* harmony import */ var _propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./propertyEditors/editableObject */ \"./src/propertyEditors/editableObject.ts\");\n\n\n\n\n\n\n\n\n\n\n\nvar CreatorBaseEvent = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CreatorBaseEvent, _super);\n function CreatorBaseEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return CreatorBaseEvent;\n}(survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"EventBase\"]));\n\n/**\n * Base class for Survey Creator.\n */\nvar CreatorBase = /** @class */ (function () {\n function CreatorBase(options) {\n this.options = options;\n this.showDesignerTabValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.showJSONEditorTabValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.showTestSurveyTabValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.showEmbeddedSurveyTabValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.showTranslationTabValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.showLogicTabValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.isRTLValue = false;\n this.haveCommercialLicenseValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.alwaySaveTextInPropertyEditorsValue = false;\n this.showDropdownPageSelectorValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n this.surveyValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]();\n this.newQuestions = [];\n this.newPanels = [];\n this.koAutoSave = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.koShowOptions = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]();\n this.koGenerateValidJSON = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n this.koShowState = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.koViewType = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"designer\");\n /**\n * The event is called on deleting an element (question/panel/page) from the survey. Typically, when a user click the delete from the element menu.\n *
sender the survey creator object that fires the event\n *
options.element an instance of the deleting element\n *
options.elementType the type of the element: 'question', 'panel' or 'page'.\n *
options.allowing set it to false to cancel the element deleting\n */\n this.onElementDeleting = new CreatorBaseEvent();\n /**\n * The event is called on setting a readOnly property of the property editor. By default the property.readOnly property is used.\n * You may changed it and make the property editor read only or enabled for a particular object.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object, Survey, Page, Panel or Question\n *
options.property the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties.\n *
options.readOnly a boolean value. It has value equals to options.readOnly property by default. You may change it.\n *
options.parentObj the parent object. It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is a question (dropdown, radigroup, checkbox, matrices and so on).\n *
options.parentProperty the parent property (Survey.JsonObjectProperty object). It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is choices, columns, rows, triggers and so on.\n */\n this.onGetPropertyReadOnly = new CreatorBaseEvent();\n /**\n * The event is fired when the survey creator creates a survey object (Survey.Survey).\n *
sender the survey creator object that fires the event\n *
options.survey the survey object showing in the creator.\n *
options.reason indicates what component of the creator requests the survey. There are several reason types: \"designer\" - survey for designer survey, \"test\" - survey for \"Test Survey\" tab and \"conditionEditor\", \"defaultValueEditor\", \"restfulEditor\" - surveys for different property editors.\n */\n this.onSurveyInstanceCreated = new CreatorBaseEvent();\n /**\n * The event allows to display the custom name for objects: questions, pages and panels. By default the object name is using. You may show object title by setting showObjectTitles property to true.\n * Use this event, if you want custom display name for objects.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object, Survey, Page, Panel or Question\n *
options.reason the name of the UI that requests the object display name\n *
options.displayName change this property to show your custom display name for the object\n * @see showObjectTitles\n */\n this.onGetObjectDisplayName = new CreatorBaseEvent();\n /**\n * Use this event to add/remove/modify the element (question/panel) menu items.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.items the list of menu items. It has two required fields: text and onClick: function(obj: Survey.Base) {} and optional name field.\n * @see onElementAllowOperations\n */\n this.onDefineElementMenuItems = new CreatorBaseEvent();\n /**\n * The event is called before showing a property in the Properties Grid or in the Question Editor.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object, Survey, Page, Panel or Question\n *
options.property the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties.\n *
options.canShow a boolean value. It is true by default. Set it false to hide the property from the Properties Grid and in the Question Editor.\n *
options.parentObj the parent object. It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is a question (dropdown, radigroup, checkbox, matrices and so on).\n *
options.parentProperty the parent property (Survey.JsonObjectProperty object). It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is choices, columns, rows, triggers and so on.\n *
\n *
[Example: Hide a category in the Properties Grid](https://surveyjs.io/Examples/Survey-Creator?id=hidecategoryinpropertiesgrid)\n */\n this.onShowingProperty = new CreatorBaseEvent();\n /**\n * @Deprecated Obsolete, please use onShowingProperty event.\n * The event is called before showing a property in the Property Grid or in Question Editor.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object, Survey, Page, Panel or Question\n *
options.property the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties.\n *
options.canShow a boolean value. It is true by default. Set it false to hide the property from the Property Grid or in Question Editor\n *
options.parentObj the parent object. It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is a question (dropdown, radigroup, checkbox, matrices and so on).\n *
options.parentProperty the parent property (Survey.JsonObjectProperty object). It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is choices, columns, rows, triggers and so on.\n */\n this.onCanShowProperty = this.onShowingProperty;\n /**\n * The event is called before rendering a delete button in the Property Grid or in Question Editor.\n *
sender the survey creator object that fires the event\n *
options.obj the survey Question\n *
options.item the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties\n *
options.canDelete a boolean value. It is true by default. Set it false to remove delete button from the Property Grid or in Question Editor\n */\n this.onCanDeleteItem = new CreatorBaseEvent();\n /**\n * The event is called on deleting a collection item from the Property Editor. For example: column in columns editor or item in choices and so on.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object: Question, Panel, Page or Survey\n *
options.property the collection property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties\n *
options.propertyName the collection property name\n *
options.collection the editing collection where deleting item is located. It is can be columns in the matrices or choices in dropdown question and so on.\n *
options.item the collection item that we are going to delete\n *
options.allowDelete a boolean value. It is true by default. Set it false to abondome the element removing from the collection\n */\n this.onCollectionItemDeleting = new CreatorBaseEvent();\n /**\n * The event is called on adding a new Survey.ItemValue object. It uses as an element in choices array in Radiogroup, checkbox and dropdown questions or Matrix columns and rows properties.\n * Use this event, to set ItemValue.value and ItemValue.text properties by default or set a value to the custom property.\n *
sender the survey creator object that fires the event\n *
options.obj the object that contains the itemsValues array, for example selector, rating and single choice matrix questions.\n *
options.propertyName the object property Name. It can be \"choices\" for selector questions or rateValues for rating question or columns/rows for single choice matrix.\n *
options.newItem a new created Survey.ItemValue object.\n *
options.itemValues an editing Survey.ItemValue array. newItem object is not added yet into this array.\n */\n this.onItemValueAdded = new CreatorBaseEvent();\n /**\n * The event is called when a user adds a new column into MatrixDropdown or MatrixDynamic questions. Use it to set some properties of Survey.MatrixDropdownColumn by default, for example name or a custom property.\n *
sender the survey creator object that fires the event\n *
options.matrix a matrix question where column is located, matrix.columns.\n *
options.newColumn a new created Survey.MatrixDropdownColumn object.\n *
options.columns editable columns objects. They can be different from options.matrix.columns. options.columns and options.matrix.columns are equal after user press Apply or Cancel and options.columns will be set to options.matrix.columns or reset to initial state.\n */\n this.onMatrixColumnAdded = new CreatorBaseEvent();\n /**\n * Use this event to control Property Editors UI.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.propertyName the name of the edited property.\n *
options.editorOptions options that can be changed.\n *
options.editorOptions.allowAddRemoveItems a boolean property, true by default. Set it false to disable add/remove items in array properties. For example 'choices', 'columns', 'rows'.\n *
options.editorOptions.allowRemoveAllItems a boolean property, true by default. Set it false to disable remove all items in array properties. For example 'choices', 'columns', 'rows'.\n *
options.editorOptions.showTextView a boolean property, true by default. Set it false to disable \"Fast Entry\" tab for \"choices\" property.\n *
options.editorOptions.itemsEntryType a string property, 'form' by default. Set it 'fast' to show \"Fast Entry\" tab for \"choices\" property by default.\n */\n this.onSetPropertyEditorOptions = new CreatorBaseEvent();\n /**\n * The event is called on generation a new name for a new created element.\n *
sender the survey creator object that fires the event\n *
options.element a new created survey element. It can be question, panel or page\n *
options.name a new suggested name, that is unique for the current survey. You can suggest your own name. If it is unique, creator will assign it to the element.\n *
options.isUnique a boolean property, set this property to false, if you want to ask Creator to generate another name\n */\n this.onGenerateNewName = new CreatorBaseEvent();\n /**\n * Use this event to show a custom error in the Question Editor on pressing Apply or OK buttons, if the values are not set correctly. The error will be displayed under the property editor.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.propertyName the name of the edited property.\n *
options.value the property value.\n *
options.error the error you want to display. Set the empty string (the default value) or null if there is no errors.\n * @see onPropertyValueChanging\n */\n this.onPropertyValidationCustomError = new CreatorBaseEvent();\n /**\n * Use this event to change the value entered in the property editor. You may call a validation, so an end user sees the error immediately\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.propertyName the name of the edited property.\n *
options.value the property value.\n *
options.newValue set the corrected value into this property. Leave it null if you are ok with the entered value.\n *
options.doValidation set the value to true to call the property validation. If there is an error, the user sees it immediately.\n * @see onPropertyValidationCustomError\n */\n this.onPropertyValueChanging = new CreatorBaseEvent();\n /**\n * Use this event to modify the list (name and titles) of the questions available in a condition editor.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.propertyName the name of the edited property.\n *
options.editor the instance of Property Editor.\n *
options.list the list of the questions available for condition\n */\n this.onConditionQuestionsGetList = new CreatorBaseEvent();\n /**\n * Use this event to modify the list of the strings available in the Translation tab.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.obj` - A survey object instance (survey, page, panel, question) whose string translations are being edited in the Translation tab.\n * - `options.propertyName` - The name of a property being translated.\n * - `options.visible` - A Boolean value that specifies the property visibility. Set it to `false` to hide the property.\n */\n this.onTranslationStringVisibility = new CreatorBaseEvent();\n /**\n * Use this event to define is the locale initially selected (default value) and ready for translaion or it is unselected.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.locale` - the locale name, like 'en', 'de' and so on.\n * - `options.isSelected` - it is true by default. Set it to false to make the translation unselected.\n */\n this.onTranslationLocaleInitiallySelected = new CreatorBaseEvent();\n /**\n * You need to set this property to true if you want to use tabs instead of accordion in the popup element's editor.\n */\n this.useTabsInElementEditor = false;\n /**\n * You need to set this property to value bigger than 0 to disable adding more logic items in condition than this value.\n */\n this.maxLogicItemsInCondition = -1;\n /**\n * You need to set this property to true if you want to show titles instead of names in pages editor and object selector.\n * @see onShowObjectDisplayName\n */\n this.showObjectTitles = false;\n /**\n * You need to set this property to true if you want to show titles instead of names in expression editor.\n */\n this.showTitlesInExpressions = false;\n /**\n * You need to set this property to false to allow your users build expressions visually only, without editing them in text editor.\n */\n this.allowEditExpressionsInTextEditor = true;\n /**\n * You need to set this property to number more than 0 to limit the number of columns that users can create for matrix dynamic/matrix dropdown questions.\n */\n this.maximumColumnsCount = 0;\n /**\n * Set this property to false to hide the pages selector in the Test Survey Tab\n */\n this.showPagesInTestSurveyTab = true;\n /**\n * Set this property to false to hide the device simulator in the Test Survey Tab\n */\n this.showSimulatorInTestSurveyTab = true;\n /**\n * Set this property to false to disable pages adding, editing and deleting\n */\n this.allowModifyPages = true;\n /**\n * The default value is _\"auto\"_. It shows the language selector if there are more than two languages are using in the survey.\n * It shows only used languages in the survey.\n * Set this property to _false_ to hide the default language selector in the Test Survey Tab.\n * Set it to _true_ to show this selector even if there is only one language in the survey\n * Set it to _all_ to show the selector with all available languages (30+)\n */\n this.showDefaultLanguageInTestSurveyTab = \"auto\";\n /**\n * Set this property to false to hide the show invisible element checkbox in the Test Survey Tab\n */\n this.showInvisibleElementsInTestSurveyTab = true;\n /**\n * Set this property to true if you want to show \"page selector\" in the toolabar instead of \"pages editor\"\n */\n this.showPageSelectorInToolbar = false;\n this.tabs = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n /**\n * Set it to false to suppress an alert message about error on saving the survey into database.\n */\n this.showErrorOnFailedSave = true;\n this.koReadOnly = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.setOptions(options);\n this.initTabs();\n }\n /**\n * Returns the localized string by its id\n * @param str the string id.\n */\n CreatorBase.prototype.getLocString = function (str) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getString(str);\n };\n Object.defineProperty(CreatorBase.prototype, \"showDesignerTab\", {\n /**\n * Set it to true to show \"JSON Editor\" tab and to false to hide the tab\n */\n get: function () {\n return this.showDesignerTabValue();\n },\n set: function (value) {\n this.showDesignerTabValue(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"showJSONEditorTab\", {\n /**\n * Set it to true to show \"JSON Editor\" tab and to false to hide the tab\n */\n get: function () {\n return this.showJSONEditorTabValue();\n },\n set: function (value) {\n this.showJSONEditorTabValue(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"showTestSurveyTab\", {\n /**\n * Set it to true to show \"Test Survey\" tab and to false to hide the tab\n */\n get: function () {\n return this.showTestSurveyTabValue();\n },\n set: function (value) {\n this.showTestSurveyTabValue(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"showEmbededSurveyTab\", {\n /**\n * @Deprecated Obsolete, use showEmbeddedSurveyTab\n */\n get: function () {\n return this.showEmbeddedSurveyTab;\n },\n set: function (value) {\n this.showEmbeddedSurveyTab = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"showEmbeddedSurveyTab\", {\n /**\n * Set it to true to show \"Embed Survey\" tab and to false to hide the tab\n */\n get: function () {\n return this.showEmbeddedSurveyTabValue();\n },\n set: function (value) {\n this.showEmbeddedSurveyTabValue(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"showLogicTab\", {\n /**\n * Set it to true to show \"Logic\" tab and to false to hide the tab\n */\n get: function () {\n return this.showLogicTabValue();\n },\n set: function (value) {\n this.showLogicTabValue(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"showTranslationTab\", {\n /**\n * Set it to true to show \"Translation\" tab and to false to hide the tab\n */\n get: function () {\n return this.showTranslationTabValue();\n },\n set: function (value) {\n this.showTranslationTabValue(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"isAutoSave\", {\n /**\n * A boolean property, false by default. Set it to true to call protected doSave method automatically on survey changing.\n */\n get: function () {\n return this.koAutoSave();\n },\n set: function (newVal) {\n this.koAutoSave(newVal);\n },\n enumerable: false,\n configurable: true\n });\n CreatorBase.prototype.onSetReadOnly = function (newVal) { };\n Object.defineProperty(CreatorBase.prototype, \"readOnly\", {\n /**\n * A boolean property, false by default. Set it to true to deny editing.\n */\n get: function () {\n return this.koReadOnly();\n },\n set: function (newVal) {\n var text = this.text;\n this.koReadOnly(newVal);\n this.onSetReadOnly(newVal);\n this.text = text;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"haveCommercialLicense\", {\n /**\n * You have right to set this property to true if you have bought the commercial licence only.\n * It will remove the text about non-commerical usage on the top of the widget.\n * Setting this property true without having a commercial licence is illegal.\n * @see haveCommercialLicense\n */\n get: function () {\n var checker = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"hasLicense\"];\n if (!!checker && checker(1))\n return true;\n return this.haveCommercialLicenseValue();\n },\n set: function (val) {\n this.haveCommercialLicenseValue(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"isRTL\", {\n /**\n * Set it to true to activate RTL support\n */\n get: function () {\n return this.isRTLValue;\n },\n set: function (value) {\n this.isRTLValue = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"showState\", {\n get: function () {\n return this.koShowState();\n },\n set: function (newVal) {\n this.koShowState(newVal);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Change the active view/tab. It will return false if it can't change the current tab.\n * @param viewName name of new active view (tab). The following values are available: \"designer\", \"editor\", \"test\", \"embed\" and \"translation\".\n */\n CreatorBase.prototype.makeNewViewActive = function (viewName) {\n if (!this.canSwitchViewType(viewName))\n return false;\n this.onViewTypeChanged(viewName);\n this.koViewType(viewName);\n return true;\n };\n CreatorBase.prototype.onViewTypeChanged = function (newType) { };\n CreatorBase.prototype.canSwitchViewType = function (newType) {\n return true;\n };\n CreatorBase.prototype.initTabs = function () {\n var _this = this;\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n _this.tabs([]);\n if (_this.showDesignerTab) {\n _this.tabs.push({\n name: \"designer\",\n title: _this.getLocString(\"ed.designer\"),\n template: \"se-tab-designer\",\n data: _this,\n action: function () { return _this.makeNewViewActive(\"designer\"); },\n });\n }\n if (_this.showTestSurveyTab) {\n _this.tabs.push({\n name: \"test\",\n title: _this.getLocString(\"ed.testSurvey\"),\n template: \"se-tab-test\",\n data: _this,\n action: function () { return _this.makeNewViewActive(\"test\"); },\n });\n }\n if (_this.showLogicTab) {\n _this.tabs.push({\n name: \"logic\",\n title: _this.getLocString(\"ed.logic\"),\n template: \"se-tab-logic\",\n data: _this,\n action: function () { return _this.makeNewViewActive(\"logic\"); },\n });\n }\n if (_this.showJSONEditorTab) {\n _this.tabs.push({\n name: \"editor\",\n title: _this.getLocString(\"ed.jsonEditor\"),\n template: \"se-tab-json-editor\",\n data: _this,\n action: function () { return _this.makeNewViewActive(\"editor\"); },\n });\n }\n if (_this.showEmbeddedSurveyTab) {\n _this.tabs.push({\n name: \"embed\",\n title: _this.getLocString(\"ed.embedSurvey\"),\n template: \"se-tab-embed\",\n data: _this,\n action: function () { return _this.makeNewViewActive(\"embed\"); },\n });\n }\n if (_this.showTranslationTab) {\n _this.tabs.push({\n name: \"translation\",\n title: _this.getLocString(\"ed.translation\"),\n template: \"se-tab-translation\",\n data: _this,\n action: function () { return _this.makeNewViewActive(\"translation\"); },\n });\n }\n if (_this.tabs().length > 0) {\n _this.koViewType(_this.tabs()[0].name);\n }\n });\n };\n CreatorBase.prototype.getOptions = function () {\n return this.options || {};\n };\n CreatorBase.prototype.setOptions = function (options) {\n if (!options)\n options = {};\n if (!options.hasOwnProperty(\"generateValidJSON\"))\n options.generateValidJSON = true;\n this.options = options;\n this.showDesignerTabValue(typeof options.showDesignerTab !== \"undefined\"\n ? options.showDesignerTab\n : true);\n this.showLogicTabValue(typeof options.showLogicTab !== \"undefined\" ? options.showLogicTab : false);\n this.showJSONEditorTabValue(typeof options.showJSONEditorTab !== \"undefined\"\n ? options.showJSONEditorTab\n : true);\n this.showTestSurveyTabValue(typeof options.showTestSurveyTab !== \"undefined\"\n ? options.showTestSurveyTab\n : true);\n this.showEmbeddedSurveyTabValue(typeof options.showEmbeddedSurveyTab !== \"undefined\"\n ? options.showEmbeddedSurveyTab\n : typeof options.showEmbededSurveyTab !== \"undefined\"\n ? options.showEmbededSurveyTab\n : false);\n this.showTranslationTabValue(typeof options.showTranslationTab !== \"undefined\"\n ? options.showTranslationTab\n : false);\n this.showLogicTabValue(typeof options.showLogicTab !== \"undefined\" ? options.showLogicTab : false);\n this.haveCommercialLicense =\n typeof options.haveCommercialLicense !== \"undefined\"\n ? options.haveCommercialLicense\n : false;\n this.showObjectTitles =\n typeof options.showObjectTitles !== \"undefined\"\n ? options.showObjectTitles\n : false;\n this.showTitlesInExpressions =\n typeof options.showTitlesInExpressions !== \"undefined\"\n ? options.showTitlesInExpressions\n : false;\n this.allowEditExpressionsInTextEditor =\n typeof options.allowEditExpressionsInTextEditor !== \"undefined\"\n ? options.allowEditExpressionsInTextEditor\n : true;\n if (typeof options.maximumColumnsCount !== \"undefined\") {\n this.maximumColumnsCount = options.maximumColumnsCount;\n }\n this.useTabsInElementEditor =\n typeof options.useTabsInElementEditor !== \"undefined\"\n ? options.useTabsInElementEditor\n : false;\n this.maxLogicItemsInCondition =\n typeof options.maxLogicItemsInCondition !== \"undefined\"\n ? options.maxLogicItemsInCondition\n : -1;\n this.showState =\n typeof options.showState !== \"undefined\" ? options.showState : false;\n this.koShowOptions(typeof options.showOptions !== \"undefined\" ? options.showOptions : false);\n this.koGenerateValidJSON(this.options.generateValidJSON);\n this.isAutoSave =\n typeof options.isAutoSave !== \"undefined\" ? options.isAutoSave : false;\n this.showErrorOnFailedSave =\n typeof options.showErrorOnFailedSave !== \"undefined\"\n ? options.showErrorOnFailedSave\n : true;\n this.isRTLValue =\n typeof options.isRTL !== \"undefined\" ? options.isRTL : false;\n if (typeof options.readOnly !== \"undefined\") {\n this.koReadOnly(options.readOnly);\n }\n if (typeof options.showPagesInTestSurveyTab !== \"undefined\") {\n this.showPagesInTestSurveyTab = options.showPagesInTestSurveyTab;\n }\n if (typeof options.showSimulatorInTestSurveyTab !== \"undefined\") {\n this.showSimulatorInTestSurveyTab = options.showSimulatorInTestSurveyTab;\n }\n if (typeof options.showDefaultLanguageInTestSurveyTab !== \"undefined\") {\n this.showDefaultLanguageInTestSurveyTab =\n options.showDefaultLanguageInTestSurveyTab;\n }\n if (typeof options.showInvisibleElementsInTestSurveyTab !== \"undefined\") {\n this.showInvisibleElementsInTestSurveyTab =\n options.showInvisibleElementsInTestSurveyTab;\n }\n if (typeof options.allowModifyPages !== \"undefined\") {\n this.allowModifyPages = options.allowModifyPages;\n }\n if (this.options.showPageSelectorInToolbar) {\n this.showPageSelectorInToolbar = true;\n this.showDropdownPageSelectorValue(false);\n }\n if (typeof options.showDropdownPageSelector !== \"undefined\") {\n this.showDropdownPageSelectorValue(options.showDropdownPageSelector);\n }\n };\n CreatorBase.prototype.onIsPropertyReadOnlyCallback = function (obj, property, readOnly, parentObj, parentProperty) {\n var proposedValue = this.readOnly || readOnly;\n if (this.onGetPropertyReadOnly.isEmpty)\n return proposedValue;\n var options = {\n obj: obj,\n property: property,\n readOnly: proposedValue,\n propertyName: property.name,\n parentObj: parentObj,\n parentProperty: parentProperty,\n };\n this.onGetPropertyReadOnly.fire(this, options);\n return options.readOnly;\n };\n Object.defineProperty(CreatorBase.prototype, \"survey\", {\n /**\n * The editing survey object (Survey.Survey)\n */\n get: function () {\n return this.surveyValue();\n },\n enumerable: false,\n configurable: true\n });\n CreatorBase.prototype.getSurveyTextFromDesigner = function () {\n var json = this.survey.toJSON();\n var indent = _settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].jsonEditor.indentation;\n if (this.options && this.options.generateValidJSON) {\n return JSON.stringify(json, null, indent);\n }\n return new _json5__WEBPACK_IMPORTED_MODULE_7__[\"SurveyJSON5\"]().stringify(json, null, indent);\n };\n CreatorBase.prototype.setTextValue = function (value) {\n if (!!this.setSurveyJSONTextCallback) {\n this.setSurveyJSONTextCallback(value);\n }\n };\n /**\n * Set JSON as text into survey. Clear undo/redo states optionally.\n * @param value JSON as text\n * @param clearState default false. Set this parameter to true to clear undo/redo states.\n */\n CreatorBase.prototype.changeText = function (value, clearState) {\n if (clearState === void 0) { clearState = false; }\n this.setTextValue(value);\n };\n Object.defineProperty(CreatorBase.prototype, \"text\", {\n /**\n * The Survey JSON as a text. Use it to get Survey JSON or change it.\n * @see JSON\n */\n get: function () {\n if (!!this.getSurveyJSONTextCallback) {\n return this.getSurveyJSONTextCallback().text;\n }\n return this.getSurveyTextFromDesigner();\n },\n set: function (value) {\n this.changeText(value, true);\n },\n enumerable: false,\n configurable: true\n });\n CreatorBase.prototype.getSurveyJSON = function () {\n if (this.koViewType() != \"editor\") {\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"JsonObject\"]().toJsonObject(this.survey);\n }\n var surveyJsonText = this.text;\n var textWorker = new _textWorker__WEBPACK_IMPORTED_MODULE_5__[\"SurveyTextWorker\"](surveyJsonText);\n if (textWorker.isJsonCorrect) {\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"JsonObject\"]().toJsonObject(textWorker.survey);\n }\n return null;\n };\n CreatorBase.prototype.getObjectDisplayName = function (obj, reason, displayName) {\n if (displayName === void 0) { displayName = undefined; }\n if (!displayName) {\n displayName = _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].getObjectName(obj, this.showObjectTitles);\n }\n var options = { obj: obj, displayName: displayName, reason: reason };\n this.onGetObjectDisplayName.fire(this, options);\n return options.displayName;\n };\n CreatorBase.prototype.createSurvey = function (json, reason, surveyType) {\n if (json === void 0) { json = {}; }\n if (reason === void 0) { reason = \"designer\"; }\n if (surveyType === void 0) { surveyType = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Survey\"]; }\n var survey = new surveyType(json);\n if (reason != \"designer\" && reason != \"test\") {\n survey.locale = _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].currentLocale;\n }\n this.onSurveyInstanceCreated.fire(this, { survey: survey, reason: reason });\n return survey;\n };\n CreatorBase.prototype.setModified = function (options) {\n if (options === void 0) { options = null; }\n };\n CreatorBase.prototype.convertCurrentObject = function (obj, className) {\n this.startTransaction(\"Convert question to: \" + className);\n var newQuestion = _questionconverter__WEBPACK_IMPORTED_MODULE_4__[\"QuestionConverter\"].convertObject(obj, className);\n this.stopTransation();\n this.setModified({\n type: \"QUESTION_CONVERTED\",\n className: className,\n oldValue: obj,\n newValue: newQuestion,\n });\n };\n CreatorBase.prototype.initSurveyWithJSON = function (json, clearState) { };\n Object.defineProperty(CreatorBase.prototype, \"JSON\", {\n /**\n * The Survey JSON. Use it to get Survey JSON or change it.\n * @see text\n */\n get: function () {\n if (!this.survey)\n return {};\n return this.survey.toJSON();\n },\n set: function (val) {\n if (this.koViewType() == \"editor\") {\n this.setTextValue(JSON.stringify(val));\n }\n else {\n this.initSurveyWithJSON(val, true);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CreatorBase.prototype, \"showDropdownPageSelector\", {\n /**\n * Set it to false hide the dropdown page selector in the page editor above the design surface\n */\n get: function () {\n return this.showDropdownPageSelectorValue();\n },\n enumerable: false,\n configurable: true\n });\n CreatorBase.prototype.doClickQuestionCore = function (element, modifiedType) {\n if (modifiedType === void 0) { modifiedType = \"ADDED_FROM_TOOLBOX\"; }\n var parent = this.survey.currentPage;\n var index = -1;\n var elElement = this.survey.selectedElement;\n if (elElement && elElement.parent) {\n parent = elElement.parent;\n index = parent.elements.indexOf(this.survey.selectedElement);\n if (index > -1)\n index++;\n }\n parent.addElement(element, index);\n this.setModified({ type: modifiedType, question: element });\n };\n CreatorBase.prototype.setNewNames = function (element) {\n this.newQuestions = [];\n this.newPanels = [];\n this.newQuestionChangedNames = {};\n this.setNewNamesCore(element);\n this.updateNewElementExpressions(element);\n };\n CreatorBase.prototype.updateNewElementExpressions = function (element) {\n var survey = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"SurveyModel\"]();\n survey.setDesignMode(true);\n if (element.isPage) {\n survey.addPage(element);\n }\n else {\n survey.addNewPage(\"p1\");\n survey.pages[0].addElement(element);\n }\n var logic = new _tabs_logic__WEBPACK_IMPORTED_MODULE_8__[\"SurveyLogic\"](survey);\n for (var key in this.newQuestionChangedNames) {\n logic.renameQuestion(key, this.newQuestionChangedNames[key]);\n }\n };\n CreatorBase.prototype.getAllQuestions = function () {\n var result = [];\n for (var i = 0; i < this.survey.pages.length; i++) {\n this.addElements(this.survey.pages[i].elements, false, result);\n }\n this.addElements(this.newPanels, false, result);\n this.addElements(this.newQuestions, false, result);\n return result;\n };\n CreatorBase.prototype.getAllPanels = function () {\n var result = [];\n for (var i = 0; i < this.survey.pages.length; i++) {\n this.addElements(this.survey.pages[i].elements, true, result);\n }\n this.addElements(this.newPanels, true, result);\n this.addElements(this.newQuestions, true, result);\n return result;\n };\n CreatorBase.prototype.addElements = function (elements, isPanel, result) {\n for (var i = 0; i < elements.length; i++) {\n if (elements[i].isPanel === isPanel) {\n result.push(elements[i]);\n }\n this.addElements(_surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].getElements(elements[i]), isPanel, result);\n }\n };\n CreatorBase.prototype.getNewName = function (type) {\n if (type == \"page\")\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].getNewPageName(this.survey.pages);\n return type == \"panel\" || type == \"flowpanel\"\n ? this.getNewPanelName()\n : this.getNewQuestionName();\n };\n CreatorBase.prototype.getNewQuestionName = function () {\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].getNewQuestionName(this.getAllQuestions());\n };\n CreatorBase.prototype.getNewPanelName = function () {\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].getNewPanelName(this.getAllPanels());\n };\n CreatorBase.prototype.setNewNamesCore = function (element) {\n var elType = element[\"getType\"]();\n var newName = this.getNewName(elType);\n if (newName != element.name) {\n this.newQuestionChangedNames[element.name] = newName;\n element.name = newName;\n }\n if (element.isPanel || elType == \"page\") {\n if (element.isPanel) {\n this.newPanels.push(element);\n }\n var panel = element;\n for (var i = 0; i < panel.elements.length; i++) {\n this.setNewNamesCore(panel.elements[i]);\n }\n }\n else {\n this.newQuestions.push(element);\n }\n };\n CreatorBase.prototype.createNewElement = function (json) {\n var newElement = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].createClass(json[\"type\"]);\n new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"JsonObject\"]().toObject(json, newElement);\n this.setNewNames(newElement);\n return newElement;\n };\n CreatorBase.prototype.copyElement = function (element) {\n var json = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"JsonObject\"]().toJsonObject(element);\n json.type = element.getType();\n return this.createNewElement(json);\n };\n /**\n * Copy a question to the active page\n * @param question A copied Survey.Question\n */\n CreatorBase.prototype.fastCopyQuestion = function (question) {\n var newElement = this.copyElement(question);\n this.doClickQuestionCore(newElement, \"ELEMENT_COPIED\");\n };\n /**\n * Delete an element in the survey. It can be a question, a panel or a page.\n * @param element a survey element.\n */\n CreatorBase.prototype.deleteElement = function (element) {\n this.deleteObject(element);\n };\n CreatorBase.prototype.deleteObjectCore = function (obj) {\n var objType = _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].getObjectType(obj);\n if (objType == _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"ObjType\"].Page) {\n this.survey.removePage(obj);\n }\n else {\n this.deletePanelOrQuestion(obj, objType);\n }\n this.setModified({\n type: \"OBJECT_DELETED\",\n target: obj,\n });\n this.updateConditionsOnRemove(obj);\n };\n CreatorBase.prototype.deleteObject = function (obj) {\n var options = {\n element: obj,\n elementType: _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].getObjectType(obj),\n allowing: true,\n };\n this.onElementDeleting.fire(this, options);\n if (!options.allowing)\n return;\n this.deleteObjectCore(obj);\n };\n CreatorBase.prototype.updateConditionsOnRemove = function (obj) {\n var objType = _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].getObjectType(obj);\n var questions;\n if (objType == _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"ObjType\"].Question) {\n questions = [obj];\n }\n else {\n var questions = obj.questions;\n }\n if (!questions)\n return;\n // TODO: remove SurveyLogic call here\n var logic = new _tabs_logic__WEBPACK_IMPORTED_MODULE_8__[\"SurveyLogic\"](this.survey, this);\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].isQuestion) {\n logic.removeQuestion(questions[i].getValueName());\n }\n }\n };\n CreatorBase.prototype.selectElement = function (element) { };\n CreatorBase.prototype.deletePanelOrQuestion = function (obj, objType) {\n var _this = this;\n var parent = obj[\"parent\"];\n var elements = parent.elements;\n var objIndex = elements.indexOf(obj);\n if (objIndex == elements.length - 1) {\n objIndex--;\n }\n if (obj[\"questions\"]) {\n obj[\"questions\"].forEach(function (q) { return _this.updateConditionsOnRemove(q); });\n }\n obj[\"delete\"]();\n this.selectElement(objIndex > -1 ? elements[objIndex] : parent);\n };\n CreatorBase.prototype.onCanShowObjectProperty = function (object, property, showMode, parentObj, parentProperty) {\n var options = {\n obj: object,\n property: property,\n canShow: true,\n showMode: showMode,\n parentObj: parentObj,\n parentProperty: parentProperty,\n };\n this.onCanShowProperty.fire(this, options);\n return options.canShow;\n };\n CreatorBase.prototype.canDeleteItem = function (object, item, allowDelete) {\n var options = { obj: object, item: item, canDelete: allowDelete };\n this.onCanDeleteItem.fire(this, options);\n return options.canDelete;\n };\n CreatorBase.prototype.getErrorOnPropertyChanging = function (obj, propertyName, value) {\n if (propertyName !== \"name\")\n return null;\n var newName = this.generateUniqueName(obj, value);\n if (newName !== value)\n return this.getLocString(\"pe.propertyNameIsNotUnique\");\n return null;\n };\n CreatorBase.prototype.generateUniqueName = function (el, newName) {\n var options = { element: el, name: newName, isUnique: true };\n do {\n if (!options.isUnique) {\n options.name = _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].generateNewName(options.name);\n }\n while (!this.isNameUnique(el, options.name)) {\n options.name = _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].generateNewName(options.name);\n }\n options.isUnique = true;\n var oldName = options.name;\n this.onGenerateNewName.fire(this, options);\n if (oldName != options.name) {\n options.isUnique = this.isNameUnique(el, options.name);\n }\n } while (!options.isUnique);\n return options.name;\n };\n CreatorBase.prototype.isNameUnique = function (el, newName) {\n if (!this.isNameUniqueInArray(this.survey.pages, el, newName))\n return false;\n if (!this.isNameUniqueInArray(this.survey.getAllPanels(), el, newName))\n return false;\n return this.isNameUniqueInArray(this.survey.getAllQuestions(), el, newName);\n };\n CreatorBase.prototype.isNameUniqueInArray = function (elements, el, newName) {\n el = _propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_10__[\"EditableObject\"].getOriginalObject(el);\n newName = newName.toLowerCase();\n for (var i = 0; i < elements.length; i++) {\n if (elements[i] != el && elements[i].name.toLowerCase() == newName)\n return false;\n }\n return true;\n };\n CreatorBase.prototype.doPropertyGridChanged = function () { };\n Object.defineProperty(CreatorBase.prototype, \"alwaySaveTextInPropertyEditors\", {\n //implements ISurveyCreatorOptions\n get: function () {\n return this.alwaySaveTextInPropertyEditorsValue;\n },\n set: function (value) {\n this.alwaySaveTextInPropertyEditorsValue = value;\n },\n enumerable: false,\n configurable: true\n });\n CreatorBase.prototype.onCanShowPropertyCallback = function (object, property, showMode, parentObj, parentProperty) {\n if (showMode === void 0) { showMode = null; }\n return this.onCanShowObjectProperty(object, property, showMode, parentObj, parentProperty);\n };\n CreatorBase.prototype.onCanDeleteItemCallback = function (object, item, allowDelete) {\n return this.canDeleteItem(object, item, allowDelete);\n };\n CreatorBase.prototype.onCollectionItemDeletingCallback = function (obj, property, collection, item) {\n if (this.onCollectionItemDeleting.isEmpty)\n return true;\n var options = {\n obj: obj,\n property: property,\n propertyName: property.name,\n collection: collection,\n item: item,\n allowDelete: true,\n };\n this.onCollectionItemDeleting.fire(this, options);\n return options.allowDelete;\n };\n CreatorBase.prototype.onItemValueAddedCallback = function (obj, propertyName, itemValue, itemValues) {\n var options = {\n obj: obj,\n propertyName: propertyName,\n newItem: itemValue,\n itemValues: itemValues,\n };\n this.onItemValueAdded.fire(this, options);\n };\n CreatorBase.prototype.onMatrixDropdownColumnAddedCallback = function (matrix, column, columns) {\n var options = { newColumn: column, matrix: matrix, columns: columns };\n this.onMatrixColumnAdded.fire(this, options);\n };\n CreatorBase.prototype.onSetPropertyEditorOptionsCallback = function (propertyName, obj, editorOptions) {\n var options = {\n propertyName: propertyName,\n obj: obj,\n editorOptions: editorOptions,\n };\n this.onSetPropertyEditorOptions.fire(this, options);\n };\n CreatorBase.prototype.onGetErrorTextOnValidationCallback = function (propertyName, obj, value) {\n var error = this.getErrorOnPropertyChanging(obj, propertyName, value);\n if (!!error)\n return error;\n var options = {\n propertyName: propertyName,\n obj: obj,\n value: value,\n error: \"\",\n };\n this.onPropertyValidationCustomError.fire(this, options);\n return options.error;\n };\n CreatorBase.prototype.onValueChangingCallback = function (options) {\n this.onPropertyValueChanging.fire(this, options);\n };\n CreatorBase.prototype.onPropertyValueChanged = function (property, obj, newValue) {\n var oldValue = obj[property.name];\n this.setModified({\n type: \"PROPERTY_CHANGED\",\n name: property.name,\n target: obj,\n oldValue: oldValue,\n newValue: newValue,\n });\n //TODO add a flag to a property, may change other properties\n if (property.name == \"hasComment\" ||\n property.name == \"hasNone\" ||\n property.name == \"hasOther\" ||\n property.name == \"hasSelectAll\" ||\n property.name == \"showCommentArea\" ||\n property.name == \"showNoneItem\" ||\n property.name == \"showOtherItem\" ||\n property.name == \"showSelectAllItem\" ||\n property.name == \"locale\") {\n this.doPropertyGridChanged();\n }\n return null;\n };\n CreatorBase.prototype.onGetElementEditorTitleCallback = function (obj, title) {\n return title;\n };\n CreatorBase.prototype.onConditionQuestionsGetListCallback = function (propertyName, obj, editor, list) {\n var options = {\n propertyName: propertyName,\n obj: obj,\n editor: editor,\n list: list,\n };\n this.onConditionQuestionsGetList.fire(this, options);\n if (options.list !== list) {\n list.splice(0, list.length);\n for (var i = 0; i < options.list.length; i++) {\n list.push(options.list[i]);\n }\n }\n };\n CreatorBase.prototype.startUndoRedoTransaction = function () {\n //TODO\n };\n CreatorBase.prototype.stopUndoRedoTransaction = function () {\n //TODO\n };\n CreatorBase.prototype.startTransaction = function (name) {\n };\n CreatorBase.prototype.stopTransation = function () { };\n return CreatorBase;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/dragdrophelper.ts\":\n/*!*******************************!*\\\n !*** ./src/dragdrophelper.ts ***!\n \\*******************************/\n/*! exports provided: DragDropTargetElement, DragDropHelper */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DragDropTargetElement\", function() { return DragDropTargetElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DragDropHelper\", function() { return DragDropHelper; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n\n\nif (!!knockout__WEBPACK_IMPORTED_MODULE_0__[\"options\"]) {\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"options\"].useOnlyNativeEvents = true;\n}\nvar DragDropTargetElement = /** @class */ (function () {\n function DragDropTargetElement(page, target, source, nestedPanelDepth, undoRedoManager) {\n if (nestedPanelDepth === void 0) { nestedPanelDepth = -1; }\n this.page = page;\n this.target = target;\n this.source = source;\n this.undoRedoManager = undoRedoManager;\n page.dragDropStart(source, target, nestedPanelDepth);\n }\n DragDropTargetElement.prototype.moveTo = function (destination, isBottom, isEdge) {\n if (isEdge === void 0) { isEdge = false; }\n //console.log(!!destination ? destination.name : \"null\");\n return this.page.dragDropMoveTo(destination, isBottom, isEdge);\n };\n DragDropTargetElement.prototype.doDrop = function () {\n var result;\n this.clearCore();\n this.undoRedoManager.startTransaction(\"drag drop\");\n result = this.page.dragDropFinish();\n this.undoRedoManager.stopTransaction();\n return result;\n };\n DragDropTargetElement.prototype.clear = function () {\n this.clearCore();\n this.page.dragDropFinish(true);\n };\n DragDropTargetElement.prototype.clearCore = function () {\n if (!!this.target) {\n this.target[\"koIsDragging\"](false);\n }\n };\n return DragDropTargetElement;\n}());\n\nvar DragDropHelper = /** @class */ (function () {\n function DragDropHelper(data, onModifiedCallback, parent, undoRedoManager) {\n if (parent === void 0) { parent = null; }\n this.data = data;\n this.undoRedoManager = undoRedoManager;\n this.scrollableElement = null;\n this.ddTarget = null;\n this.id = DragDropHelper.counter++;\n this.isScrollStop = true;\n this.readOnly = false;\n this.onModifiedCallback = onModifiedCallback;\n this.scrollableElement =\n parent && parent.querySelector(\"#scrollableDiv\");\n this.prevCoordinates = { x: -1, y: -1 };\n }\n DragDropHelper.prototype.attachToElement = function (domElement, surveyElement) {\n var isFlowPanel = surveyElement.isPanel &&\n typeof surveyElement.getChildrenLayoutType === \"function\" &&\n surveyElement.getChildrenLayoutType() === \"flow\";\n var isFlowPanelInChrome = isFlowPanel && !!window[\"chrome\"];\n domElement.style.opacity = surveyElement.koIsDragging() ? 0.4 : 1;\n domElement.draggable =\n surveyElement.allowingOptions.allowDragging && !isFlowPanel;\n if (isFlowPanelInChrome) {\n domElement.onpaste = function doPaste(e, el) {\n e.preventDefault();\n var clipData = window[\"clipboardData\"];\n if (!!clipData) {\n var content = clipData.getData(\"text\");\n if (window.getSelection) {\n var selObj = window.getSelection();\n var selRange = selObj.getRangeAt(0);\n selRange.deleteContents();\n selRange.insertNode(document.createTextNode(content));\n }\n }\n else if ((e.originalEvent || e).clipboardData) {\n content = (e.originalEvent || e).clipboardData.getData(\"text/plain\");\n document.execCommand(\"insertText\", false, content);\n }\n return true;\n };\n }\n domElement.ondragover = function (e) {\n if (!surveyElement.allowingOptions.allowDragging)\n return false;\n if (isFlowPanel)\n return surveyElement\n .dragDropHelper()\n .doDragDropOverFlow(e, surveyElement);\n if (!e[\"markEvent\"]) {\n e[\"markEvent\"] = true;\n surveyElement.dragDropHelper().doDragDropOver(e, surveyElement, true);\n return false;\n }\n };\n domElement.ondrop = function (e) {\n var helper = surveyElement.dragDropHelper();\n var preventDefault = !(isFlowPanel &&\n !!helper.ddTarget &&\n !!helper.ddTarget.source &&\n helper.ddTarget.source.parent == surveyElement);\n //Fix the bug for chrome in contenteditable\n if (isFlowPanelInChrome &&\n (!helper.ddTarget ||\n !helper.ddTarget.destination ||\n helper.ddTarget.destination.isLayoutTypeSupported(\"flow\"))) {\n var content = e.dataTransfer.getData(\"text\");\n var dropRange = null;\n if (!!document.caretRangeFromPoint) {\n dropRange = document.caretRangeFromPoint(e.clientX, e.clientY);\n }\n else {\n if (!!document[\"caretPositionFromPoint\"]) {\n dropRange = document[\"caretPositionFromPoint\"](e.clientX, e.clientY);\n }\n }\n if (!!dropRange) {\n preventDefault = true;\n e.preventDefault();\n if (surveyElement[\"isDragStarted\"]) {\n var selObj = window.getSelection();\n if (!!selObj && selObj.rangeCount > 0) {\n var selRange = selObj.getRangeAt(0);\n if (!!selRange) {\n selRange.deleteContents();\n }\n }\n }\n dropRange.insertNode(document.createTextNode(content));\n var selection = window.getSelection();\n if (!!selection) {\n selection.removeAllRanges();\n selection.addRange(dropRange);\n }\n }\n }\n if (!e[\"markEvent\"]) {\n e[\"markEvent\"] = true;\n helper.doDrop(e, preventDefault);\n }\n };\n if (!isFlowPanel) {\n domElement.ondragstart = function (e) {\n // var target: any = e.target || e.srcElement;\n // if (\n // !!target &&\n // !!target.contains &&\n // target !== document.activeElement &&\n // target.contains(document.activeElement)\n // ) {\n // e.preventDefault();\n // return false;\n // }\n if (!surveyElement.allowingOptions.allowDragging)\n return false;\n if (!e[\"markEvent\"]) {\n e[\"markEvent\"] = true;\n surveyElement.dragDropHelper().startDragQuestion(e, surveyElement);\n }\n e.cancelBubble = true;\n return true;\n };\n }\n else {\n domElement.ondragstart = function (e) {\n surveyElement.isDragStarted = true;\n if (!e[\"markEvent\"]) {\n e[\"markEvent\"] = true;\n if (!surveyElement.dragDropHelper().getData(e).text) {\n surveyElement.dragDropHelper().startDragQuestion(e, surveyElement);\n }\n }\n };\n }\n domElement.ondragend = function (e) {\n delete surveyElement[\"isDragStarted\"];\n surveyElement.dragDropHelper().end();\n };\n };\n Object.defineProperty(DragDropHelper.prototype, \"survey\", {\n get: function () {\n return this.data;\n },\n enumerable: false,\n configurable: true\n });\n DragDropHelper.prototype.startDragQuestion = function (event, element) {\n var json = new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"JsonObject\"]().toJsonObject(element);\n json[\"type\"] = element.getType();\n this.prepareData(event, element.name, json, element);\n };\n DragDropHelper.prototype.startDragToolboxItem = function (event, elementName, elementJson) {\n this.prepareData(event, elementName, elementJson, null);\n event.cancelBubble = true;\n };\n DragDropHelper.prototype.isSurveyDragging = function (event) {\n if (!event)\n return false;\n var data = this.getData(event).text;\n return data && data.indexOf(DragDropHelper.dataStart) == 0;\n };\n DragDropHelper.prototype.doDragDropOver = function (event, element, isEdge) {\n if (isEdge === void 0) { isEdge = false; }\n event = this.isCanDragContinue(event, element);\n if (!event)\n return;\n var bottomInfo = this.isBottom(event);\n if (element.isPage && element.elements.length > 0) {\n var lastEl = element.elements[element.elements.length - 1];\n if (!this.isBottomThanElement(event, lastEl))\n return;\n element = lastEl;\n isEdge = true;\n bottomInfo.isEdge = true;\n bottomInfo.isBottom = true;\n }\n isEdge = element.isPanel ? isEdge && bottomInfo.isEdge : true;\n if (element.isPanel && !isEdge && element.elements.length > 0)\n return;\n this.ddTarget.moveTo(element, bottomInfo.isBottom, isEdge);\n };\n DragDropHelper.prototype.doDragDropOverFlow = function (event, element) {\n if (!!this.ddTarget) {\n event = this.isCanDragContinue(event, element);\n if (!event)\n return true;\n var bottomInfo = this.isBottom(event);\n return this.ddTarget.moveTo(element, bottomInfo.isBottom, bottomInfo.isEdge);\n }\n return true;\n };\n DragDropHelper.prototype.isCanDragContinue = function (event, element) {\n event = this.getEvent(event);\n if (this.isSameCoordinates(event))\n return null;\n this.checkScrollY(event);\n if (!element ||\n !this.isSurveyDragging(event) ||\n this.isSamePlace(event, element))\n return null;\n return event;\n };\n DragDropHelper.prototype.end = function () {\n if (this.ddTarget) {\n this.ddTarget.clear();\n }\n this.isScrollStop = true;\n this.clearData();\n };\n Object.defineProperty(DragDropHelper.prototype, \"isMoving\", {\n get: function () {\n return this.ddTarget && this.ddTarget.source;\n },\n enumerable: false,\n configurable: true\n });\n DragDropHelper.prototype.doDrop = function (event, prevedDefault) {\n if (prevedDefault === void 0) { prevedDefault = true; }\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n if (this.isSurveyDragging(event)) {\n if (prevedDefault) {\n event.preventDefault();\n }\n if (!this.readOnly) {\n var newElement = this.ddTarget.doDrop();\n if (this.onModifiedCallback)\n this.onModifiedCallback({\n type: \"DO_DROP\",\n page: this.ddTarget.page,\n source: this.ddTarget.source,\n target: this.ddTarget.target,\n newElement: this.ddTarget.source ? null : newElement,\n moveToParent: newElement.parent,\n moveToIndex: !!newElement.parent\n ? newElement.parent.elements.indexOf(newElement)\n : -1\n });\n newElement.updateElementCss && newElement.updateElementCss();\n newElement[\"koElementType\"] && newElement[\"koElementType\"].notifySubscribers();\n }\n }\n this.end();\n };\n DragDropHelper.prototype.doLeavePage = function (event) {\n if (!!this.ddTarget) {\n this.ddTarget.moveTo(null, false);\n }\n };\n DragDropHelper.prototype.createTargetElement = function (elementName, json) {\n if (!elementName || !json)\n return null;\n var targetElement = null;\n targetElement = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].createClass(json[\"type\"]);\n new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"JsonObject\"]().toObject(json, targetElement);\n targetElement.name = elementName;\n if (targetElement[\"setSurveyImpl\"]) {\n targetElement[\"setSurveyImpl\"](this.survey);\n }\n else {\n targetElement[\"setData\"](this.survey);\n }\n targetElement.renderWidth = \"100%\";\n targetElement[\"koIsDragging\"](true);\n return targetElement;\n };\n DragDropHelper.prototype.isBottom = function (event) {\n event = this.getEvent(event);\n var height = event.currentTarget[\"clientHeight\"];\n var y = event.offsetY;\n if (event.hasOwnProperty(\"layerX\")) {\n y = event[\"layerY\"] - event.currentTarget[\"offsetTop\"];\n }\n return {\n isBottom: y > height / 2,\n isEdge: y <= DragDropHelper.edgeHeight ||\n height - y <= DragDropHelper.edgeHeight\n };\n };\n DragDropHelper.prototype.isBottomThanElement = function (event, lastEl) {\n var el = lastEl.renderedElement;\n if (!el)\n return false;\n event = this.getEvent(event);\n var elY = el.offsetTop + el.clientHeight;\n var y = event.offsetY;\n if (event.hasOwnProperty(\"layerX\")) {\n y = event[\"layerY\"] - event.currentTarget[\"offsetTop\"];\n }\n return y > elY;\n };\n DragDropHelper.prototype.isSameCoordinates = function (event) {\n var res = Math.abs(event.pageX - this.prevCoordinates.x) > 5 ||\n Math.abs(event.pageY - this.prevCoordinates.y) > 5;\n if (res) {\n this.prevCoordinates.x = event.pageX;\n this.prevCoordinates.y = event.pageY;\n }\n return !res;\n };\n DragDropHelper.prototype.isSamePlace = function (event, element) {\n var prev = DragDropHelper.prevEvent;\n if (prev.element != element ||\n Math.abs(event.clientX - prev.x) > 5 ||\n Math.abs(event.clientY - prev.y) > 5) {\n prev.element = element;\n prev.x = event.clientX;\n prev.y = event.clientY;\n return false;\n }\n return true;\n };\n DragDropHelper.prototype.checkScrollY = function (e) {\n if (!this.scrollableElement)\n return;\n var y = this.getScrollableElementPosY(e);\n if (y < 0)\n return;\n this.isScrollStop = true;\n var height = this.scrollableElement[\"clientHeight\"];\n if (y < DragDropHelper.ScrollOffset && y >= 0) {\n this.isScrollStop = false;\n this.doScrollY(-1);\n }\n if (height - y < DragDropHelper.ScrollOffset && height >= y) {\n this.isScrollStop = false;\n this.doScrollY(1);\n }\n };\n DragDropHelper.prototype.doScrollY = function (step) {\n var el = this.scrollableElement;\n var scrollY = el.scrollTop + step;\n if (scrollY < 0) {\n this.isScrollStop = true;\n return;\n }\n el.scrollTop = scrollY;\n var self = this;\n if (!this.isScrollStop) {\n setTimeout(function () {\n self.doScrollY(step);\n }, DragDropHelper.ScrollDelay);\n }\n };\n DragDropHelper.prototype.getScrollableElementPosY = function (e) {\n if (!this.scrollableElement || !e.currentTarget)\n return -1;\n var el = e.currentTarget;\n var offsetTop = 0;\n while (el && el != this.scrollableElement) {\n offsetTop += el[\"offsetTop\"];\n el = el[\"offsetParent\"];\n }\n return (e.offsetY +\n e.currentTarget[\"offsetTop\"] -\n this.scrollableElement.offsetTop -\n this.scrollableElement.scrollTop);\n };\n DragDropHelper.prototype.getEvent = function (event) {\n return event[\"originalEvent\"] ? event[\"originalEvent\"] : event;\n };\n DragDropHelper.prototype.getY = function (element) {\n var result = 0;\n while (element) {\n result += element.offsetTop - element.scrollTop + element.clientTop;\n element = element.offsetParent;\n }\n return result;\n };\n DragDropHelper.prototype.prepareData = function (event, elementName, json, source) {\n var str = DragDropHelper.dataStart + elementName + \"}\";\n this.setData(event, str);\n var targetElement = this.createTargetElement(elementName, json);\n this.ddTarget = new DragDropTargetElement(this.survey.currentPage, targetElement, source, DragDropHelper.nestedPanelDepth, this.undoRedoManager);\n };\n DragDropHelper.prototype.setData = function (event, text) {\n if (event[\"originalEvent\"]) {\n event = event[\"originalEvent\"];\n }\n if (event.dataTransfer) {\n event.dataTransfer.setData(\"Text\", text);\n event.dataTransfer.effectAllowed = \"copy\";\n }\n DragDropHelper.dragData = { text: text };\n };\n DragDropHelper.prototype.getData = function (event) {\n if (event[\"originalEvent\"]) {\n event = event[\"originalEvent\"];\n }\n if (event.dataTransfer) {\n var text = event.dataTransfer.getData(\"Text\");\n if (text) {\n DragDropHelper.dragData.text = text;\n }\n }\n return DragDropHelper.dragData;\n };\n DragDropHelper.prototype.clearData = function () {\n this.ddTarget = null; // We should reset ddTarget to null due to the https://surveyjs.answerdesk.io/ticket/details/T1003 - onQuestionAdded not fired after D&D\n DragDropHelper.dragData = { text: \"\", json: null };\n var prev = DragDropHelper.prevEvent;\n prev.element = null;\n prev.x = -1;\n prev.y = -1;\n this.prevCoordinates.x = -1;\n this.prevCoordinates.y = -1;\n };\n DragDropHelper.edgeHeight = 20;\n DragDropHelper.nestedPanelDepth = -1;\n DragDropHelper.dataStart = \"{element:\";\n DragDropHelper.dragData = { text: \"\", json: null };\n DragDropHelper.prevEvent = { element: null, x: -1, y: -1 };\n DragDropHelper.counter = 1;\n DragDropHelper.ScrollDelay = 30;\n DragDropHelper.ScrollOffset = 100;\n return DragDropHelper;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/editor.ts\":\n/*!***********************!*\\\n !*** ./src/editor.ts ***!\n \\***********************/\n/*! exports provided: CreatorEvent, SurveyCreator, SurveyEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CreatorEvent\", function() { return CreatorEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyCreator\", function() { return SurveyCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyEditor\", function() { return SurveyEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _surveyObjects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./surveyObjects */ \"./src/surveyObjects.ts\");\n/* harmony import */ var _questionconverter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./questionconverter */ \"./src/questionconverter.ts\");\n/* harmony import */ var _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./questionEditors/questionEditor */ \"./src/questionEditors/questionEditor.ts\");\n/* harmony import */ var _textWorker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./textWorker */ \"./src/textWorker.ts\");\n/* harmony import */ var _undoredomanager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./undoredomanager */ \"./src/undoredomanager.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony import */ var _dragdrophelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./dragdrophelper */ \"./src/dragdrophelper.ts\");\n/* harmony import */ var _toolbox__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./toolbox */ \"./src/toolbox.ts\");\n/* harmony import */ var _json5__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./json5 */ \"./src/json5.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony import */ var _stylesmanager__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./stylesmanager */ \"./src/stylesmanager.ts\");\n/* harmony import */ var _adorners_item_editor__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adorners/item-editor */ \"./src/adorners/item-editor.ts\");\n/* harmony import */ var _tabs_test__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./tabs/test */ \"./src/tabs/test.ts\");\n/* harmony import */ var _tabs_logic__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tabs/logic */ \"./src/tabs/logic.ts\");\n/* harmony import */ var _commands__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./commands */ \"./src/commands.ts\");\n/* harmony import */ var _pages_editor__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./pages-editor */ \"./src/pages-editor.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _creator_base__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./creator-base */ \"./src/creator-base.ts\");\n/* harmony import */ var _propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./propertyEditors/editableObject */ \"./src/propertyEditors/editableObject.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar templateEditorHtml = __webpack_require__(/*! html-loader?interpolate!val-loader!./templates/entry.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/templates/entry.html\");\n\n\n\n\n\n\n\n\n\n\n\nsurvey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"Serializer\"].removeClass(\"tagbox\"); // remove after tagbox implemented\nsurvey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"QuestionFactory\"].Instance.unregisterElement(\"tagbox\");\n/**\n * Survey Creator is WYSIWYG editor.\n */\nvar CreatorEvent = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CreatorEvent, _super);\n function CreatorEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return CreatorEvent;\n}(survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"EventBase\"]));\n\nvar SurveyCreator = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyCreator, _super);\n /**\n * The Survey Creator constructor.\n * @param renderedElement HtmlElement or html element id where survey creator will be rendered\n * @param options survey creator options. The following options are available:\n * showDesignerTab, showJSONEditorTab, showTestSurveyTab, showEmbeddedSurveyTab, showTranslationTab, showLogicTab,\n * showOptions, showPropertyGrid, showToolbox,\n * allowModifyPages, pageEditingMode, showDropdownPageSelector, readOnly,\n * questionTypes, generateValidJSON, isAutoSave, designerHeight, showErrorOnFailedSave, closeModalOutside, useTabsInElementEditor,\n * showObjectTitles, inplaceEditForValues, showTitlesInExpressions, allowEditExpressionsInTextEditor,\n * showPagesInTestSurveyTab, showDefaultLanguageInTestSurveyTab, showInvisibleElementsInTestSurveyTab, showSimulatorInTestSurveyTab,\n * showSurveyTitle, allowControlSurveyTitleVisibility, hideExpressionHeaderInLogicTab,\n * maxLogicItemsInCondition\n */\n function SurveyCreator(renderedElement, options) {\n if (renderedElement === void 0) { renderedElement = null; }\n if (options === void 0) { options = null; }\n var _this = _super.call(this, options) || this;\n _this.stateValue = \"\";\n _this.dragDropHelper = null;\n _this.closeModalOutsideValue = \"off\";\n _this.pageEditModeValue = \"standard\";\n _this.showApplyButtonValue = true;\n /**\n * If set to true (default value) the creator scrolls to a new element. A new element can be added from Toolbox or by copying.\n */\n _this.scrollToNewElement = true;\n /**\n * This property is assign to the survey.surveyId property on showing in the \"Embed Survey\" tab.\n * @see showEmbeddedSurveyTab\n */\n _this.surveyId = null;\n /**\n * This property is assign to the survey.surveyPostId property on showing in the \"Embed Survey\" tab.\n * @see showEmbeddedSurveyTab\n */\n _this.surveyPostId = null;\n /**\n * The event is called in case of UI notifications. By default all notifications are done via built-in alert () function.\n * In case of any subscriptions to this event all notifications will be redirected into the event handler.\n *
options.message is a message to show.\n */\n _this.onNotify = new CreatorEvent();\n /**\n * The event is called before undo happens.\n *
options.canUndo a boolean value. It is true by default. Set it false to hide prevent undo operation.\n */\n _this.onBeforeUndo = new CreatorEvent();\n /**\n * The event is called before redo happens.\n *
options.canRedo a boolean value. It is true by default. Set it false to hide prevent redo operation.\n */\n _this.onBeforeRedo = new CreatorEvent();\n /**\n * The event is called after undo happens.\n *
options.state is an undo/redo item.\n */\n _this.onAfterUndo = new CreatorEvent();\n /**\n * The event is called after redo happens.\n *
options.state is an undo/redo item.\n */\n _this.onAfterRedo = new CreatorEvent();\n /**\n * The event is called on changing the selected element. You may change the new selected element by changing the property options.newSelectedElement to your own\n *
options.newSelectedElement the element that is going to be selected in the survey desiger: question, panel, page or survey.\n */\n _this.onSelectedElementChanging = new CreatorEvent();\n /**\n * The event is called after the selected element is changed.\n *
options.newSelectedElement the new selected element in the survey desiger: question, panel, page or survey.\n */\n _this.onSelectedElementChanged = new CreatorEvent();\n /**\n * The event is called when creator tab has been rendered.\n *
sender the survey creator object that fires the event\n *
options.tabName the name of the rendered tab\n *
options.elements the rendered elements\n *
options.model current context model\n *
options.tabData the data of the rendered tab\n */\n _this.onEditorTabRendered = new CreatorEvent();\n /**\n * The event is called when creator active tab is changed.\n *
sender the survey creator object that fires the event\n *
options.tabName the name of new active tab\n */\n _this.onActiveTabChanged = new CreatorEvent();\n /**\n * The event allows you to custom sort properties in the Property Grid. It is a compare function. You should set options.result to -1 or 1 by comparing options.property1 and options.property2.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object, Survey, Page, Panel or Question\n *
options.property1 the left object property (Survey.JsonObjectProperty object).\n *
options.property2 the right object property (Survey.JsonObjectProperty object).\n *
options.result the result of comparing. It can be 0 (use default behavior), -1 options.property1 is less than options.property2 or 1 options.property1 is more than options.property2\n */\n _this.onCustomSortProperty = new CreatorEvent();\n /**\n * The event allows you modify DOM element for a property in the Property Grid. For example, you may change its styles.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object, Survey, Page, Panel or Question\n *
options.htmlElement the html element that renders the property display name and its editor.\n *
options.property object property (Survey.JsonObjectProperty object).\n *
options.propertyEditor the property Editor.\n */\n _this.onPropertyAfterRender = new CreatorEvent();\n /**\n * The event is called on adding a new question into the survey. Typically, when a user dropped a Question from the Question Toolbox into designer Survey area.\n *
sender the survey creator object that fires the event\n *
options.question a new added survey question. Survey.Question object\n *
options.page the survey Page object where question has been added.\n */\n _this.onQuestionAdded = new CreatorEvent();\n /**\n * The event is called when an end-user double click on an element (question/panel).\n *
sender the survey creator object that fires the event\n *
options.element an instance of the element\n */\n _this.onElementDoubleClick = new CreatorEvent();\n /**\n * The event is called on adding a new panel into the survey. Typically, when a user dropped a Panel from the Question Toolbox into designer Survey area.\n *
sender the survey creator object that fires the event\n *
options.panel a new added survey panel. Survey.Panel object\n *
options.page the survey Page object where question has been added.\n */\n _this.onPanelAdded = new CreatorEvent();\n /**\n * The event is called on adding a new page into the survey.\n *
sender the survey creator object that fires the event\n *
options.page the new survey Page object.\n */\n _this.onPageAdded = new CreatorEvent();\n /**\n * The event is called when a survey is changed in the designer. A new page/question/page is added or existing is removed, a property is changed and so on.\n *
sender the survey creator object that fires the event\n *
options object contains the information about certain modifications\n *
options.type contains string constant describing certain modification\n *
Available values:\n *
\n *
options.type: \"ADDED_FROM_TOOLBOX\"\n *
options.question: newly added question\n *
\n *
options.type: \"PAGE_ADDED\"\n *
options.newValue: newly created page\n *
\n *
options.type: \"PAGE_MOVED\"\n *
options.page: page has been moved\n *
options.indexFrom: pevious index\n *
options.indexTo: new index\n *
\n *
options.type: \"QUESTION_CONVERTED\"\n *
options.className: the converted class name\n *
options.oldValue: pevious object\n *
options.newValue: the new object, converted from oldVale to the given class name\n *
\n *
options.type: \"QUESTION_CHANGED_BY_EDITOR\"\n *
options.question: question has been edited in the popup question editor\n *
\n *
options.type: \"PROPERTY_CHANGED\"\n *
options.name: the name of the property has been changed\n *
options.target: the object containing the changed property\n *
options.oldValue: the previous value of the changed property\n *
options.newValue: the new value of the changed property\n *
\n *
options.type: \"OBJECT_DELETED\"\n *
options.target: deleted object\n *
\n *
options.type: \"VIEW_TYPE_CHANGED\"\n *
options.newType: new type of the creator view: editor or designer\n *
\n *
options.type: \"DO_DROP\"\n *
options.page: the page of the drap/drop operation\n *
options.source: the source dragged object\n *
options.target: the drop target\n *
options.newElement: a new element. It is defined if a user drops question or panel from the toolbox\n *
\n *
options.type: \"TRANSLATIONS_CHANGED\"\n */\n _this.onModified = new CreatorEvent();\n /**\n * The event is fired on changing question, panel or page name.\n *
sender the survey creator object that fires the event\n *
options.obj the object (question, panel or page)\n *
options.oldName the previous name of the element\n *
options.newName the new name of the element\n */\n _this.onElementNameChanged = new CreatorEvent();\n /**\n * The event is fired when the survey creator is initialized and a survey object (Survey.Survey) is created.\n *
sender the survey creator object that fires the event\n *
options.survey the survey object showing in the creator.\n */\n _this.onDesignerSurveyCreated = new CreatorEvent();\n /**\n * The event is fired when the survey creator runs the survey in the test mode.\n *
sender the survey creator object that fires the event\n *
options.survey the survey object showing in the \"Test survey\" tab.\n */\n _this.onTestSurveyCreated = new CreatorEvent();\n /**\n * Use this event to show a check and custom error in property grid and adorners of the selected elements.\n * Returns true if selected element is null or there is no errors.\n *
options.errors an array of error messages if any.\n */\n _this.onValidateSelectedElement = new CreatorEvent();\n /**\n * Use this event to change the value entered in the property editor. You may call a validation, so an end user sees the error immediately\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.propertyName the name of the edited property.\n *
options.editor the instance of Property Editor.\n * @see onPropertyValueChanging\n */\n _this.onPropertyEditorObjectAssign = new CreatorEvent();\n /**\n * Use this event to modify the survey that used on setting value for condition/expression properties, like visibleIf, enableIf and so on.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.propertyName the name of the edited property.\n *
options.editor the instance of Property Editor.\n *
options.valueQuestionName the name of the question that shows in the survey for choosing the value\n *
options.survey the instance of the survey that allows to choose the value. You may modify it before it shows to the end-user\n */\n _this.onConditionValueSurveyCreated = new CreatorEvent();\n /**\n * Use this event to process key down event in a property editor\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.propertyName the name of the edited property.\n *
options.editor the instance of Property Editor.\n *
options.event the instance of mouse event.\n */\n _this.onPropertyEditorKeyDown = new CreatorEvent();\n /**\n * Use this event to disable user interactions with a question or panel on the design surface.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender`- A Survey Creator instance that raised the event.\n * - `options.obj` - A survey element instance (question or panel) for which you can disable user interactions.\n * - `options.allowAddToToolbox` - Allows users to save the current survey element configuration in the Toolbox.\n * - `options.allowChangeRequired` - Allows users to make the survey element required.\n * - `options.allowChangeType` - Allows users to change the survey element type.\n * - `options.allowCopy` - Allows users to duplicate the survey element.\n * - `options.allowDelete` - Allows users to delete the survey element.\n * - `options.allowDragging` - Allows users to drag and drop the survey element.\n * - `options.allowEdit` - Allows users to edit survey element properties on the design surface. If you disable this property, users can edit the properties only in the Property Grid.\n * - `options.allowShowHideTitle` - Specifies whether users can change the `titleLocation` property to \"hidden\" or \"default\".\n *\n * To disable a user interaction, set the correponding `allow...` property to `false`.\n */\n _this.onElementAllowOperations = new CreatorEvent();\n /**\n * Use this event to show the description on the top or/and bottom of the property modal editor.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object which property is edited in the Property Editor.\n *
options.propertyName the property name\n *
options.htmlTop the html that you want to see on the top of the modal window\n *
options.htmlBottom the html that you want to see on the bottom of the modal window\n */\n _this.onShowPropertyModalEditorDescription = new CreatorEvent();\n /**\n * @Deprecated Obsolete, please use onGetObjectDisplayName event\n * Use this event to change the text showing in the dropdown of the property grid.\n *
sender the survey creator object that fires the event\n *
options.obj the survey object.\n *
options.text the current object text, commonly it is a name. You must change this attribute\n * @see onGetObjectDisplayName\n */\n _this.onGetObjectTextInPropertyGrid = new CreatorEvent();\n /**\n * The event is called when end-user addes new element (question or panel) into the survey toolbox.\n * It calls before adding the element into toolbox and it allows to change the toolbox item attributes using options.itemOptions parameter\n *
sender the survey creator object that fires the event\n *
options.element is a new added element\n *
options.itemOptions a json object that allows you to override question properties. Attributes are: name, title, isCopied, iconName, json and category.\n * @see onCustomElementAddedIntoToolbox\n */\n _this.onCustomElementAddingIntoToolbox = new CreatorEvent();\n /**\n * The event is called when end-user addes new element (question or panel) into the survey toolbox.\n *
sender the survey creator object that fires the event\n *
options.element is a new added element\n * @see onCustomElementAddingIntoToolbox\n */\n _this.onCustomElementAddedIntoToolbox = new CreatorEvent();\n /**\n * The event is fired on clearing the files.\n *
sender the survey creator object that fires the event\n *
There are following properties in options:\n *
files - value to clear (it can be a byte array or an URI of a resource)\n *
callback - called on clear complete\n * @see clearFiles\n */\n _this.onClearFile = new CreatorEvent();\n /**\n * The event is fired on uploading the files.\n *
sender the survey creator object that fires the event\n *
There are two properties in options:\n *
files the Javascript File objects array\n *
callback called on upload complete\n * @see uploadFile\n */\n _this.onUploadFile = new CreatorEvent();\n /**\n * The event is fired then one need to choose files.\n *
sender the survey creator object that fires the event\n *
input file input HTML element\n *
callback need to be called after files has been chosen\n * @see uploadFile\n */\n _this.onOpenFileChooser = new CreatorEvent();\n /**\n * The method is called when the translation from csv file is imported.\n * @see translation\n * @see showTranslationTab\n */\n _this.onTranslationImported = new CreatorEvent();\n /**\n * The method is called on after render translation item. You can modify the html element using this event\n *
options.item - translation item\n *
options.htmlElement - text area for editing\n *
options.locale - the name of the editing locale\n *
options.onDestroyCallback - a function callback that is called on remove htmlElement from DOM.\n * @see translation\n * @see showTranslationTab\n */\n _this.onTranslateItemAfterRender = new CreatorEvent();\n /**\n * Use this event to control drag&drop operations.\n *
sender the survey creator object that fires the event.\n *
options.survey the editing survey object.\n *
options.allow set it to false to disable dragging.\n *
options.target a target element that is dragging.\n *
options.source a source element. It can be null, if it is a new element, dragging from toolbox.\n *
options.parent a page or panel where target element is dragging.\n *
options.insertBefore an element before the target element is dragging. It can be null if parent container (page or panel) is empty or dragging an element under the last element of the container.\n *
options.insertAfter an element after the target element is dragging. It can be null if parent container (page or panel) is empty or dragging element to the top of the parent container.\n */\n _this.onDragDropAllow = new CreatorEvent();\n /**\n * Use this event to get access rendered adorder.\n *
sender the survey creator object that fires the event.\n *
options.survey the editing survey object.\n *
options.question the survey element of the adorner.\n *
options.adorner the adorner id.\n *
options.element a root adorner element.\n *
options.context a context for adorner element, e.g. current item of a select base question.\n */\n _this.onAdornerRendered = new CreatorEvent();\n /**\n * The event is called after user closes the popup element editor.\n *
options.element the edited element.\n *
options.isCanceled indicated user clicked Cancel.\n */\n _this.onElementEditorClosed = new CreatorEvent();\n _this.koState = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n _this.onEditorAfterRenderCallback = function (obj, htmlElement, prop) {\n if (_this.onPropertyAfterRender.isEmpty) {\n return;\n }\n var options = {\n obj: obj,\n htmlElement: htmlElement,\n property: prop.property,\n propertyEditor: prop.editor,\n };\n _this.onPropertyAfterRender.fire(_this, options);\n };\n // get toolboxItems() {\n // return this.options && this.options.questionTypes\n // ? this.options.questionTypes\n // : null;\n // }\n _this.themeCss = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n return [\"bootstrap\", \"bootstrapmaterial\", \"modern\"].indexOf(_stylesmanager__WEBPACK_IMPORTED_MODULE_14__[\"StylesManager\"].currentTheme()) === -1\n ? \"sv_default_css\"\n : \"sv_\" + _stylesmanager__WEBPACK_IMPORTED_MODULE_14__[\"StylesManager\"].currentTheme() + \"_css\";\n });\n // public set logic(logic: SurveyLogic) {\n // this.logicValue = logic;\n // }\n /**\n * The list of toolbar items. You may add/remove/replace them.\n * @see IAction\n */\n _this.toolbarItems = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n /**\n * The delay on saving survey JSON on autoSave in ms. It is 500 ms by default.\n * If during this period of time an end-user modify survey, then the last version will be saved only. Set to 0 to save immediately.\n * @see isAutoSave\n */\n _this.autoSaveDelay = 500;\n _this.autoSaveTimerId = null;\n _this.saveNo = 0;\n /**\n * Undo the latest user operation. Returns true if it performes successful.\n */\n _this.undo = function () {\n _this.doUndoClick();\n };\n /**\n * Redo the latest undo operation. Returns true if it performes successful.\n */\n _this.redo = function () {\n _this.doRedoClick();\n };\n _this._showExternalHelpLink = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this._placeholderHtml = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n _this.leftContainerVisible = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.leftContainerActiveItem = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"toolbox\");\n _this.rightContainerVisible = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.rightContainerActiveItem = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"property-grid\");\n _this.layoutChangedIndicator = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](0);\n /**\n * Add a new page into the editing survey. Returns the new created page instance\n */\n _this.addPage = function () {\n var name = _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].getNewPageName(_this.survey.pages);\n var page = _this.survey.addNewPage(name);\n _this.selectedElement = page;\n return page;\n };\n _this.deletePage = function () {\n _this.deleteCurrentObject();\n };\n _this.movePage = function (page, indexFrom) {\n var indexTo = _this.survey.pages.indexOf(page);\n _this.setModified({\n type: \"PAGE_MOVED\",\n page: page,\n indexFrom: indexFrom,\n indexTo: indexTo,\n });\n };\n _this.disableSurveySelectedElementChanging = false;\n _this.showQuestionEditor = function (element, onClose) {\n if (onClose === void 0) { onClose = null; }\n if (!_this.showModalOnElementEditing) {\n _this.hideAdvancedSettings = false;\n _this.setNewObjToPropertyGrid(element);\n _this.leftContainerActiveItem(\"property-grid\");\n _this.rightContainerActiveItem(\"property-grid\");\n _this.propertyGridObjectEditorModel.focusEditor();\n return;\n }\n _this.showModalElementEditor(element, onClose);\n };\n //TODO why this is need ? (ko problem)\n _this.dirtyPageUpdate = function () {\n var selectedObject = _this.selectedElement;\n if (!selectedObject)\n return;\n if (_surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].getObjectType(selectedObject) !== _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"ObjType\"].Page) {\n if (_surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].getObjectType(selectedObject) === _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"ObjType\"].Question &&\n !!selectedObject[\"koElementType\"]) {\n selectedObject[\"koElementType\"].notifySubscribers();\n }\n return;\n }\n _this.selectedElement = selectedObject;\n };\n /**\n * Create a new page with the same elements and place it next to the current one. It returns the new created Survey.Page\n * @param page A copied Survey.Page\n */\n _this.copyPage = function (page) {\n var newPage = _this.copyElement(page);\n var index = _this.survey.pages.indexOf(page);\n if (index > -1) {\n _this.survey.pages.splice(index + 1, 0, newPage);\n }\n else {\n _this.survey.pages.push(newPage);\n }\n _this.addPageToUI(newPage);\n return newPage;\n };\n _this.onEditorTabRenderedCallback = function (tabName, elements, model, tabData) {\n _this.onEditorTabRendered.fire(_this, {\n tabName: tabName,\n elements: elements,\n model: model,\n tabData: tabData,\n });\n };\n _this.koCanDeleteObject = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this.koCanUndo = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this.koCanRedo = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this.toolboxValue = new _toolbox__WEBPACK_IMPORTED_MODULE_10__[\"QuestionToolbox\"](_this.options && _this.options.questionTypes\n ? _this.options.questionTypes\n : null, _this);\n _this.surveyLive = new _tabs_test__WEBPACK_IMPORTED_MODULE_16__[\"SurveyLiveTester\"](_this);\n _this.logicValue = new _tabs_logic__WEBPACK_IMPORTED_MODULE_17__[\"SurveyLogic\"](_this.createSurvey({}, \"logic\"), _this);\n var self = _this;\n _stylesmanager__WEBPACK_IMPORTED_MODULE_14__[\"StylesManager\"].applyTheme(_stylesmanager__WEBPACK_IMPORTED_MODULE_14__[\"StylesManager\"].currentTheme());\n self.onTitleInplaceEditorStartEdit = null;\n _this.koShowSaveButton = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this.koTestSurveyWidth = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"100%\");\n _this.saveButtonClick = function () {\n self.doSave();\n };\n _this.koObjects = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n window[\"sel\"] = _this.koSelectedObject;\n _this.koSelectedObject.subscribe(function (newValue) {\n self.selectedObjectChanged(!!newValue ? newValue.value : null);\n });\n _this.koGenerateValidJSON.subscribe(function (newValue) {\n if (!self.options)\n self.options = {};\n self.options.generateValidJSON = newValue;\n if (self.generateValidJSONChangedCallback)\n self.generateValidJSONChangedCallback(newValue);\n });\n _this.surveyObjects = new _surveyObjects__WEBPACK_IMPORTED_MODULE_3__[\"SurveyObjects\"](_this.koObjects, _this.koSelectedObject, function (obj) {\n return self.getObjectDisplayName(obj, \"property-grid\");\n });\n _this.surveyObjects.getItemTextCallback = function (obj, text) {\n var options = { obj: obj, text: text };\n self.onGetObjectTextInPropertyGrid.fire(self, options);\n return options.text;\n };\n _this.propertyGridObjectEditorModel = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_5__[\"PropertyGridObjectEditorModel\"](_this);\n if (_this.showElementEditorAsPropertyGrid) {\n _this.propertyGridObjectEditorModel.koIsOldTableAppearance(false);\n }\n else {\n self.propertyGridObjectEditorModel.koIsOldTableAppearance(true);\n }\n _this.koShowElementEditorAsPropertyGrid.subscribe(function (newValue) {\n if (newValue) {\n self.propertyGridObjectEditorModel.koIsOldTableAppearance(false);\n }\n else {\n self.propertyGridObjectEditorModel.koIsOldTableAppearance(true);\n }\n });\n _this.propertyGridObjectEditorModel.onAfterRenderCallback =\n _this.onEditorAfterRenderCallback;\n _this.propertyGridObjectEditorModel.onSortPropertyCallback = function (obj, property1, property2) {\n return self.onCustomSortPropertyObjectProperty(obj, property1, property2);\n };\n _this.propertyGridObjectEditorModel.onPropertyChanged = function (obj, prop, oldValue) {\n self.onPropertyChanged(obj, prop, oldValue);\n };\n _this.propertyGridObjectEditorModel[\"onCorrectValueBeforeSet\"] = function (obj, prop, newValue) {\n return self.onPropertyCorrectValueBeforeSet(obj, prop, newValue);\n };\n _this.questionEditorWindow = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorShowWindow\"]();\n _this.koViewType.subscribe(function (newValue) {\n self.onActiveTabChanged.fire(self, { tabName: newValue });\n });\n _this.koIsShowDesigner = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n return self.koViewType() == \"designer\";\n });\n _this.generateValidJSONClick = function () {\n self.koGenerateValidJSON(true);\n };\n _this.generateReadableJSONClick = function () {\n self.koGenerateValidJSON(false);\n };\n _this.deleteObjectClick = function () {\n self.deleteCurrentObject();\n };\n _this.draggingToolboxItem = function (item, e) {\n if (!this.readOnly) {\n self.doDraggingToolboxItem(item.json, e);\n }\n };\n _this.clickToolboxItem = function (item) {\n self.doClickToolboxItem(item.json);\n };\n _this.dragEnd = function (item, e) {\n self.dragDropHelper.end();\n };\n _this.doUndoClick = function () {\n var options = { canUndo: true };\n self.onBeforeUndo.fire(self, options);\n if (options.canUndo) {\n var item = self.undoRedoManager.undo();\n // self.doUndoRedo(item); TODO undoredo\n self.onAfterUndo.fire(self, { state: item });\n }\n };\n _this.doRedoClick = function () {\n var options = { canRedo: true };\n self.onBeforeRedo.fire(self, options);\n if (options.canRedo) {\n var item = self.undoRedoManager.redo();\n // self.doUndoRedo(item);\n self.onAfterRedo.fire(self, { state: item });\n }\n };\n _this.text = \"\";\n _this.pagesEditorModel = new _pages_editor__WEBPACK_IMPORTED_MODULE_19__[\"PagesEditor\"](_this);\n if (renderedElement) {\n _this.render(renderedElement);\n }\n var commands = new _commands__WEBPACK_IMPORTED_MODULE_18__[\"Commands\"](self);\n self.commands = commands.getCommands();\n _this.addToolbarItems();\n return _this;\n }\n Object.defineProperty(SurveyCreator.prototype, \"inplaceEditForValues\", {\n /**\n * You need to set this property to true if you want to inplace edit item values instead of texts.\n * @see inplaceEditForValues\n */\n get: function () {\n return _adorners_item_editor__WEBPACK_IMPORTED_MODULE_15__[\"itemAdorner\"].inplaceEditForValues;\n },\n set: function (val) {\n _adorners_item_editor__WEBPACK_IMPORTED_MODULE_15__[\"itemAdorner\"].inplaceEditForValues = val;\n },\n enumerable: false,\n configurable: true\n });\n SurveyCreator.prototype.onSetReadOnly = function (newVal) {\n _super.prototype.onSetReadOnly.call(this, newVal);\n this.render(null, this.options);\n };\n SurveyCreator.prototype.setOptions = function (options) {\n this.koShowPropertyGrid = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n this.koShowElementEditorAsPropertyGrid = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.koHideAdvancedSettings = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this._topContainer = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]([\n \"toolbar\",\n \"pages-editor\",\n ]);\n this.hideExpressionHeaderValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.koShowToolbox = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n this._leftContainer = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]([\"toolbox\"]);\n this._rightContainer = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]([\"property-grid\"]);\n this.koSelectedObject = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]();\n this.koAllowControlSurveyTitleVisibility = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n this.koDesignerHeight = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"1000px\");\n this.koShowSurveyTitle = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"ifentered\");\n this.koShowPagesToolbox = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _super.prototype.setOptions.call(this, options);\n options = this.options;\n this.inplaceEditForValues =\n typeof options.inplaceEditForValues !== \"undefined\"\n ? options.inplaceEditForValues\n : false;\n this.showPropertyGrid =\n typeof options.showPropertyGrid !== \"undefined\"\n ? options.showPropertyGrid\n : true;\n this.koShowElementEditorAsPropertyGrid(typeof options.showElementEditorAsPropertyGrid !== \"undefined\"\n ? options.showElementEditorAsPropertyGrid\n : true);\n this.scrollToNewElement =\n typeof options.scrollToNewElement !== \"undefined\"\n ? options.scrollToNewElement\n : true;\n if (options.designerHeight !== undefined) {\n this.koDesignerHeight(options.designerHeight);\n }\n if (options.objectsIntend) {\n _surveyObjects__WEBPACK_IMPORTED_MODULE_3__[\"SurveyObjects\"].intend = options.objectsIntend;\n }\n if (typeof options.closeModalOutside !== \"undefined\") {\n this.closeModalOutsideValue = options.closeModalOutside;\n }\n if (typeof options.pageEditMode !== \"undefined\") {\n this.pageEditModeValue = options.pageEditMode;\n if (this.pageEditModeValue === \"single\") {\n this._topContainer.remove(\"pages-editor\");\n survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"Serializer\"].findProperty(\"question\", \"page\").visible = false;\n survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"Serializer\"].findProperty(\"panel\", \"page\").visible = false;\n this.showJSONEditorTab = false;\n }\n }\n this.hideExpressionHeaderValue(options.hideExpressionHeader === true);\n this.showToolbox =\n typeof options.showToolbox !== \"undefined\" ? options.showToolbox : true;\n if (typeof options.showPagesToolbox !== \"undefined\") {\n this.koShowPagesToolbox(options.showPagesToolbox);\n }\n if (typeof options.showSurveyTitle === \"string\") {\n this.showSurveyTitle = options.showSurveyTitle;\n }\n if (typeof options.allowControlSurveyTitleVisibility !== \"undefined\") {\n this.allowControlSurveyTitleVisibility =\n !!options.allowControlSurveyTitleVisibility;\n }\n };\n SurveyCreator.prototype.updateKoCanUndoRedo = function () {\n this.koCanUndo(!this.readOnly && this.undoRedoManager.canUndo());\n this.koCanRedo(!this.readOnly && this.undoRedoManager.canRedo());\n };\n SurveyCreator.prototype.addToolbarItems = function () {\n var _this = this;\n var commands = this.commands;\n Object.keys(commands).forEach(function (key) {\n var command = commands[key];\n var toolbarItem = command.toolbar;\n if (!toolbarItem)\n return;\n if (!toolbarItem.action) {\n toolbarItem.action = function () {\n if (_this.readOnly)\n return;\n _this.execute(command);\n };\n }\n _this.toolbarItems.push(toolbarItem);\n });\n };\n /**\n * Use this method to force update this element in editor.\n * @param element Survey.Question is element to update\n */\n SurveyCreator.prototype.update = function (element) {\n element[\"koElementType\"].notifySubscribers();\n };\n /**\n * Call this method to render the Survey Creator.\n * @param element HtmlElement or html element id where survey creator will be rendered\n * @param options survey creator options. The following options are available: showJSONEditorTab, showTestSurveyTab, showEmbeddedSurveyTab,\n * showTranslationTab, showLogicTab, showOptions, generateValidJSON, isAutoSave, designerHeight.\n */\n SurveyCreator.prototype.render = function (element, options) {\n if (element === void 0) { element = null; }\n if (options === void 0) { options = null; }\n if (options)\n this.setOptions(options);\n var self = this;\n if (element && typeof element == \"string\") {\n element = document.getElementById(element);\n }\n if (element) {\n this.renderedElement = element;\n }\n element = this.renderedElement;\n if (!element)\n return;\n element.innerHTML = templateEditorHtml;\n self.applyBinding();\n };\n SurveyCreator.prototype.loadSurvey = function (surveyId) {\n var self = this;\n new survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"dxSurveyService\"]().loadSurvey(surveyId, function (success, result, response) {\n if (success && result) {\n self.text = JSON.stringify(result);\n }\n });\n };\n /**\n * Set JSON as text into survey. Clear undo/redo states optionally.\n * @param value JSON as text\n * @param clearState default false. Set this parameter to true to clear undo/redo states.\n */\n SurveyCreator.prototype.changeText = function (value, clearState) {\n if (clearState === void 0) { clearState = false; }\n _super.prototype.changeText.call(this, value, clearState);\n var textWorker = new _textWorker__WEBPACK_IMPORTED_MODULE_6__[\"SurveyTextWorker\"](value);\n if (textWorker.isJsonCorrect) {\n this.initSurveyWithJSON(textWorker.survey.toJSON(), clearState);\n }\n else {\n this.koViewType(\"editor\");\n }\n };\n SurveyCreator.prototype.initSurveyWithJSON = function (json, clearState) {\n this.initSurvey(json);\n if (this.showDesignerTab) {\n this.showDesigner();\n }\n this.setUndoRedoCurrentState(clearState);\n };\n Object.defineProperty(SurveyCreator.prototype, \"surveyLiveTester\", {\n get: function () {\n return this.surveyLive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"toolbox\", {\n /**\n * Toolbox object. Contains information about Question toolbox items.\n * @see QuestionToolbox\n */\n get: function () {\n return this.toolboxValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"translation\", {\n // public set toolbox(newValue: QuestionToolbox) {\n // this.toolboxValue = newValue;\n // }\n /**\n * Return the translation mode object.\n * @see showTranslationTab\n */\n get: function () {\n return this.translationValue;\n },\n set: function (newValue) {\n this.translationValue = newValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"logic\", {\n /**\n * Return the logic mode object.\n * @see showLogicTab\n */\n get: function () {\n return this.logicValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"customToolboxQuestionMaxCount\", {\n /**\n * Get and set the maximum of copied questions/panels in the toolbox. The default value is 3\n */\n get: function () {\n return this.toolbox.copiedItemMaxCount;\n },\n set: function (value) {\n this.toolbox.copiedItemMaxCount = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"state\", {\n /**\n * Returns the creator state. It may return empty string or \"saving\" and \"saved\".\n */\n get: function () {\n return this.stateValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyCreator.prototype.setState = function (value) {\n this.stateValue = value;\n this.koState(this.state);\n };\n /**\n * This function triggers user notification (via the alert() function if no onNotify event handler added).\n * @see onNotify\n */\n SurveyCreator.prototype.notify = function (msg) {\n if (this.onNotify.isEmpty) {\n alert(msg);\n }\n else {\n this.onNotify.fire(this, { message: msg });\n }\n };\n SurveyCreator.prototype.doAutoSave = function () {\n if (this.autoSaveDelay <= 0) {\n this.doSave();\n return;\n }\n if (!!this.autoSaveTimerId) {\n clearTimeout(this.autoSaveTimerId);\n }\n var self = this;\n this.autoSaveTimerId = setTimeout(function () {\n clearTimeout(self.autoSaveTimerId);\n self.autoSaveTimerId = null;\n self.doSave();\n }, this.autoSaveDelay);\n };\n SurveyCreator.prototype.doSave = function () {\n var _this = this;\n this.setState(\"saving\");\n if (this.saveSurveyFunc) {\n this.saveNo++;\n this.saveSurveyFunc(this.saveNo, function (no, isSuccess) {\n if (_this.saveNo !== no)\n return;\n if (isSuccess) {\n _this.setState(\"saved\");\n }\n else {\n if (_this.showErrorOnFailedSave) {\n _this.notify(_this.getLocString(\"ed.saveError\"));\n }\n _this.setState(\"modified\");\n }\n });\n }\n };\n SurveyCreator.prototype.setModified = function (options) {\n if (options === void 0) { options = null; }\n _super.prototype.setModified.call(this, options); // TODO: move to super class\n this.setState(\"modified\");\n this.setUndoRedoCurrentState();\n this.onModified.fire(this, options);\n this.isAutoSave && this.doAutoSave();\n };\n Object.defineProperty(SurveyCreator.prototype, \"isProcessingUndoRedo\", {\n /**\n * Returns true if Creator is currently doing undo or redo opertaions\n */\n get: function () {\n return this.undoRedoManager.isProcessingUndoRedo;\n },\n enumerable: false,\n configurable: true\n });\n SurveyCreator.prototype.setUndoRedoCurrentState = function (clearState) {\n if (clearState === void 0) { clearState = false; }\n // if (clearState) { TODO undoredo\n // this.undoRedoManager.clear();\n // }\n // var selObj = this.koSelectedObject() ? this.koSelectedObject().value : null;\n // this.undoRedoManager.setCurrent(this.surveyValue(), selObj ? selObj.name : null);\n };\n Object.defineProperty(SurveyCreator.prototype, \"saveSurveyFunc\", {\n /**\n * Assign to this property a function that will be called on clicking the 'Save' button or on any change if isAutoSave equals true.\n * @see isAutoSave\n */\n get: function () {\n return this.saveSurveyFuncValue;\n },\n set: function (value) {\n this.saveSurveyFuncValue = value;\n this.koShowSaveButton(value != null && !this.isAutoSave);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"showOptions\", {\n /**\n * Set it to true to show \"Options\" menu and to false to hide the menu\n */\n get: function () {\n return this.koShowOptions();\n },\n set: function (value) {\n this.koShowOptions(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"showPropertyGrid\", {\n /**\n * Set it to false to completely hide the Property Grid on the right. It allows to edit the properties of the selected object (question/panel/page/survey).\n */\n get: function () {\n return (this.koShowPropertyGrid() !== false &&\n this.koShowPropertyGrid() !== \"none\");\n },\n set: function (value) {\n if (this.koShowPropertyGrid() != value) {\n this._leftContainer.remove(\"property-grid\");\n this._rightContainer.remove(\"property-grid\");\n if (value === \"right\" || value === true) {\n this._rightContainer.push(\"property-grid\");\n }\n if (value === \"left\") {\n this._leftContainer.push(\"property-grid\");\n }\n this.koShowPropertyGrid(value);\n this.koHideAdvancedSettings(!this.showPropertyGrid);\n if (value !== false && value !== \"none\" && !!this.selectedElement) {\n this.setNewObjToPropertyGrid(this.selectedElement);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"showSurveyTitle\", {\n /**\n * Set it to \"always\", \"never\" or \"ifentered\". The \"ifentered\" is the default value means show survey title only in case of user entered it.\n */\n get: function () {\n return this.koShowSurveyTitle();\n },\n set: function (value) {\n this.koShowSurveyTitle(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"allowControlSurveyTitleVisibility\", {\n /**\n * Set it to false if you want to deny user to hide/show survey title.\n */\n get: function () {\n return this.koAllowControlSurveyTitleVisibility();\n },\n set: function (value) {\n this.koAllowControlSurveyTitleVisibility(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"showPagesToolbox\", {\n /**\n * Set it to false to hide the pages toolbox on the top.\n */\n get: function () {\n return (this.koShowPagesToolbox() !== false &&\n this.koShowPagesToolbox() !== \"none\");\n },\n set: function (value) {\n this.koShowPagesToolbox(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"showElementEditorAsPropertyGrid\", {\n /**\n * You have to set this property to false via options on creating SurveyJS Creator to use popup editor and old property grid.\n */\n get: function () {\n return this.koShowElementEditorAsPropertyGrid();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"showToolbox\", {\n /**\n * Set it to false to hide the question toolbox on the left.\n */\n get: function () {\n return this.koShowToolbox() !== false && this.koShowToolbox() !== \"none\";\n },\n set: function (value) {\n if (this.koShowToolbox() != value) {\n this._leftContainer.remove(\"toolbox\");\n this._rightContainer.remove(\"toolbox\");\n if (value === \"left\" || value === true) {\n this._leftContainer.push(\"toolbox\");\n }\n if (value === \"right\") {\n this._rightContainer.push(\"toolbox\");\n }\n this.koShowToolbox(value);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"hideAdvancedSettings\", {\n /**\n * @Deprecated Obsolete from v1.5.1\n * Set it to false to temporary hide the Property Grid on the right side of the creator. User will be able to show the Property Grid again via the click on the 'Advanced' label. It allows to edit the properties of the selected object (question/panel/page/survey).\n */\n get: function () {\n return this.koHideAdvancedSettings();\n },\n set: function (value) {\n this.koHideAdvancedSettings(value);\n if (this.koShowPropertyGrid() === \"right\" ||\n this.koShowPropertyGrid() === true) {\n if (this._rightContainer().length === 1 ||\n (this._rightContainer().length > 1 && !value)) {\n this.rightContainerVisible(!value);\n }\n }\n if (this.koShowPropertyGrid() === \"left\") {\n if (this._leftContainer().length === 1 ||\n (this._leftContainer().length > 1 && !value)) {\n this.leftContainerVisible(!value);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"showExternalHelpLink\", {\n get: function () {\n return this._showExternalHelpLink();\n },\n set: function (value) {\n this._showExternalHelpLink(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"placeholderHtml\", {\n get: function () {\n return this._placeholderHtml();\n },\n set: function (value) {\n this._placeholderHtml(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"hideExpressionHeader\", {\n get: function () {\n return this.hideExpressionHeaderValue();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"closeModalOutside\", {\n /**\n * Set it to \"cancel\" or \"apply\" to enable closing modal windows by clicking outside popup.\n * If \"apply\" is set, then changes will be saved, otherwise not. By default value is \"off\"\n */\n get: function () {\n return this.closeModalOutsideValue;\n },\n set: function (value) {\n this.closeModalOutsideValue = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"pageEditMode\", {\n /**\n * Set it to \"single\" to design surface in single page mode. By default value is \"standard\"\n */\n get: function () {\n return this.pageEditModeValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"leftContainer\", {\n get: function () {\n return this._leftContainer();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"rightContainer\", {\n get: function () {\n return this._rightContainer();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyCreator.prototype, \"topContainer\", {\n get: function () {\n return this._topContainer();\n },\n enumerable: false,\n configurable: true\n });\n SurveyCreator.prototype.canShowObjectProperty = function (object, propertyName) {\n if (!object || !object.getType) {\n return true;\n }\n if (_propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_22__[\"EditableObject\"].isCopyObject(object) && propertyName === \"page\")\n return false;\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"Serializer\"].findProperty(object.getType(), propertyName);\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].isPropertyVisible(object, property, this);\n };\n SurveyCreator.prototype.onCustomSortPropertyObjectProperty = function (object, property1, property2) {\n if (this.onCustomSortProperty.isEmpty)\n return 0;\n var options = {\n obj: object,\n property1: property1,\n property2: property2,\n result: 0,\n };\n this.onCustomSortProperty.fire(this, options);\n return options.result;\n };\n SurveyCreator.prototype.addPageToUI = function (page) {\n this.surveyObjects.addPage(page);\n };\n SurveyCreator.prototype.doOnQuestionAdded = function (question, parentPanel) {\n if (!this.dragDropHelper.isMoving) {\n question.name = this.generateUniqueName(question, question.name);\n var page = this.getPageByElement(question);\n var options = { question: question, page: page };\n this.addingObject = question;\n this.onQuestionAdded.fire(this, options);\n this.addingObject = null;\n }\n if (parentPanel.elements.indexOf(question) !== -1) {\n this.surveyObjects.addElement(question, parentPanel);\n }\n };\n SurveyCreator.prototype.doOnElementRemoved = function (element) {\n this.surveyObjects.removeObject(element);\n };\n SurveyCreator.prototype.doOnPanelAdded = function (panel, parentPanel) {\n if (!this.dragDropHelper.isMoving) {\n var page = this.getPageByElement(panel);\n var options = { panel: panel, page: page };\n this.addingObject = panel;\n this.onPanelAdded.fire(this, options);\n this.addingObject = null;\n }\n if (parentPanel.elements.indexOf(panel) !== -1) {\n this.surveyObjects.addElement(panel, parentPanel);\n }\n };\n SurveyCreator.prototype.doOnPageAdded = function (page) {\n var options = { page: page };\n this.addingObject = page;\n this.onPageAdded.fire(this, options);\n this.addingObject = null;\n };\n SurveyCreator.prototype.updateObjectTextInPropertyGrid = function (obj) {\n if (!!this.surveyObjects) {\n this.surveyObjects.nameChanged(obj);\n }\n };\n SurveyCreator.prototype.onPropertyChanged = function (obj, property, oldValue) {\n var value = obj[property.name];\n if (property.name == \"name\") {\n this.onElementNameChanged.fire(this, {\n obj: obj,\n oldName: oldValue,\n newName: value,\n });\n }\n if (property.name == \"name\" ||\n property.name == \"title\" ||\n !this.onGetObjectTextInPropertyGrid.isEmpty ||\n !this.onGetObjectDisplayName.isEmpty) {\n this.surveyObjects.nameChanged(obj);\n }\n if (property.name === \"name\") {\n this.dirtyPageUpdate(); //TODO why this is need ? (ko problem)\n }\n else if (property.name === \"page\") {\n this.selectedElement = value;\n this.selectedElement = obj;\n }\n };\n SurveyCreator.prototype.onPropertyCorrectValueBeforeSet = function (obj, property, newValue) {\n if (property.name === \"page\" && typeof newValue === \"string\") {\n return obj.survey.getPageByName(newValue);\n }\n return newValue;\n };\n SurveyCreator.prototype.doPropertyGridChanged = function () {\n if (!this.showPropertyGrid)\n return;\n this.propertyGridObjectEditorModel.objectChanged();\n };\n SurveyCreator.prototype.setNewObjToPropertyGrid = function (newObj) {\n if (!this.showPropertyGrid)\n return;\n this.propertyGridObjectEditorModel.selectedObject = newObj;\n };\n SurveyCreator.prototype.canSwitchViewType = function (newType) {\n if (newType && this.koViewType() == newType)\n return false;\n if ((this.koViewType() == \"translation\" || this.koViewType() == \"logic\") &&\n newType == \"designer\") {\n this.survey.render();\n }\n if (this.koViewType() != \"editor\")\n return true;\n var textWorker = new _textWorker__WEBPACK_IMPORTED_MODULE_6__[\"SurveyTextWorker\"](this.text);\n if (!textWorker.isJsonCorrect) {\n this.notify(this.getLocString(\"ed.correctJSON\"));\n return false;\n }\n if (!this.readOnly &&\n !!this.getSurveyJSONTextCallback &&\n this.getSurveyJSONTextCallback().isModified) {\n this.initSurvey(new survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"JsonObject\"]().toJsonObject(textWorker.survey));\n this.setModified({ type: \"VIEW_TYPE_CHANGED\", newType: newType });\n }\n return true;\n };\n Object.defineProperty(SurveyCreator.prototype, \"showingViewName\", {\n /**\n * Returns the current show view name. The possible returns values are:\n * \"designer\", \"editor\", \"test\", \"embed\", \"logic\" and \"translation\".\n * @see showDesigner\n * @see showTestSurvey\n * @see showJsonEditor\n * @see showLogicEditor\n * @see showTranslationEditor\n * @see showEmbedEditor\n */\n get: function () {\n return this.koViewType();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Make a \"Survey Designer\" tab active.\n */\n SurveyCreator.prototype.showDesigner = function () {\n this.makeNewViewActive(\"designer\");\n };\n /**\n * Make a \"JSON Editor\" tab active.\n */\n SurveyCreator.prototype.showJsonEditor = function () {\n this.makeNewViewActive(\"editor\");\n };\n /**\n * Make a \"Test Survey\" tab active.\n */\n SurveyCreator.prototype.showTestSurvey = function () {\n this.makeNewViewActive(\"test\");\n };\n /**\n * Make a \"Embed Survey\" tab active.\n */\n SurveyCreator.prototype.showEmbedEditor = function () {\n this.makeNewViewActive(\"embed\");\n };\n /**\n * Make a \"Translation\" tab active.\n */\n SurveyCreator.prototype.showTranslationEditor = function () {\n this.makeNewViewActive(\"translation\");\n };\n /**\n * Make a \"Logic\" tab active.\n */\n SurveyCreator.prototype.showLogicEditor = function () {\n if (!this.canSwitchViewType(\"logic\"))\n return;\n this.koViewType(\"logic\");\n };\n SurveyCreator.prototype.getPageByElement = function (obj) {\n var page = this.survey.getPageByElement(obj);\n if (page)\n return page;\n return this.surveyObjects.getSelectedObjectPage(obj);\n };\n Object.defineProperty(SurveyCreator.prototype, \"selectedElement\", {\n /**\n * Get or set the current selected object in the Creator. It can be a question, panel, page or survey itself.\n */\n get: function () {\n return !!this.koSelectedObject() ? this.koSelectedObject().value : null;\n },\n set: function (val) {\n if (this.selectedElement !== val) {\n this.surveyObjects.selectObject(val);\n }\n },\n enumerable: false,\n configurable: true\n });\n SurveyCreator.prototype.selectElement = function (element) {\n this.selectedElement = element;\n };\n /**\n * Check for errors in property grid and adorners of the selected elements.\n * Returns true if selected element is null or there is no errors.\n */\n SurveyCreator.prototype.validateSelectedElement = function () {\n var isValid = true;\n if (!this.selectedElement)\n return isValid;\n if (!!this.propertyGridObjectEditorModel) {\n isValid = !this.propertyGridObjectEditorModel.hasErrors();\n }\n var options = { errors: [] };\n this.onValidateSelectedElement.fire(this, options);\n return isValid && options.errors.length == 0;\n };\n SurveyCreator.prototype.selectedObjectChanged = function (obj) {\n var options = { newSelectedElement: obj };\n this.onSelectedElementChanging.fire(this, options);\n if (obj != options.newSelectedElement) {\n this.selectedElement = options.newSelectedElement;\n return;\n }\n var canDeleteObject = false;\n this.setNewObjToPropertyGrid(obj);\n var objType = _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].getObjectType(obj);\n if (objType == _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"ObjType\"].Page) {\n this.survey.currentPage = obj;\n canDeleteObject = this.survey.pages.length > 1;\n }\n if (objType == _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"ObjType\"].Question || objType == _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"ObjType\"].Panel) {\n this.survey.selectedElement = obj;\n canDeleteObject = true;\n this.survey.currentPage = this.getPageByElement(obj);\n var id = obj[\"id\"];\n if (this.renderedElement &&\n id &&\n this.survey.currentPage &&\n !obj[\"selectedOnClick\"]) {\n var el = this.renderedElement.querySelector(\"#\" + id);\n _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].scrollIntoViewIfNeeded(el);\n }\n }\n else {\n this.disableSurveySelectedElementChanging = true;\n this.survey.selectedElement = null;\n this.disableSurveySelectedElementChanging = false;\n }\n this.koCanDeleteObject(canDeleteObject);\n this.onSelectedElementChanged.fire(this, options);\n };\n SurveyCreator.prototype.applyBinding = function () {\n var _this = this;\n if (this.renderedElement == null)\n return;\n var self = this;\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"cleanNode\"](this.renderedElement);\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"applyBindings\"](this, this.renderedElement, function (context) { return (context.$creator = _this); });\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"tasks\"].runEarly();\n var surveyjs = (this.renderedElement.querySelector(\".svd_surveyjs_designer_container\"));\n if (surveyjs) {\n surveyjs.onkeydown = function (e) {\n if (self.readOnly)\n return;\n if (!e)\n return;\n // if (e.keyCode == 46) self.deleteQuestion();\n if (e.keyCode == 38 || e.keyCode == 40) {\n self.selectQuestion(e.keyCode == 38);\n }\n };\n }\n var container = self.renderedElement.querySelector(\".svd_container\");\n container[\"onkeydown\"] = function (e) {\n self.onKeyDownHandler(e, self);\n };\n this.initSurveyOnRender();\n this.setUndoRedoCurrentState(true);\n };\n SurveyCreator.prototype.initSurveyOnRender = function () {\n var json = this.JSON;\n if (!json || Object.keys(json).length === 0) {\n json = this.getDefaultSurveyJson();\n }\n this.initSurvey(json);\n };\n SurveyCreator.prototype.getDefaultSurveyJson = function () {\n var json = new _json5__WEBPACK_IMPORTED_MODULE_11__[\"SurveyJSON5\"]().parse(SurveyCreator.defaultNewSurveyText);\n if (json[\"pages\"] &&\n json[\"pages\"][\"length\"] > 0 &&\n json[\"pages\"][0][\"name\"]) {\n json[\"pages\"][0][\"name\"] =\n _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"ed.newPageName\") + \"1\";\n }\n return json;\n };\n /**\n * Use this method to create keyboard shortcuts\n * @param e keydown event\n * @param creator creator instance\n */\n SurveyCreator.prototype.onKeyDownHandler = function (e, creator) {\n var evtobj = window.event ? event : e;\n var commands = creator.commands;\n var command, hotKey;\n Object.keys(creator.commands || {}).forEach(function (key) {\n command = commands[key];\n hotKey = evtobj.metaKey ? command.macOsHotkey : command.hotKey;\n if (!hotKey)\n return;\n if (!!hotKey.ctrlKey !== evtobj.ctrlKey)\n return;\n if (!!hotKey.shiftKey !== evtobj.shiftKey)\n return;\n if (hotKey.keyCode !== evtobj.keyCode)\n return;\n creator.execute(command);\n });\n };\n SurveyCreator.prototype.execute = function (command) {\n var name = command.name;\n if (!command || !name || !this[name] || typeof this[name] !== \"function\")\n return;\n return this[name].apply(this, [].slice.call(arguments, 1));\n };\n SurveyCreator.prototype.onSurveyPropertyValueChangedCallback = function (name, oldValue, newValue, sender, arrayChanges) {\n if (this.addingObject == sender)\n return;\n this.undoRedoManager.startTransaction(name + \" changed\");\n this.undoRedoManager.onPropertyValueChanged(name, oldValue, newValue, sender, arrayChanges);\n this.updateConditionsOnQuestionNameChanged(sender, name, oldValue);\n this.undoRedoManager.stopTransaction();\n };\n SurveyCreator.prototype.updateConditionsOnQuestionNameChanged = function (obj, propertyName, oldValue) {\n if (!this.isObjQuestion(obj))\n return;\n if (propertyName === \"name\" && !obj[\"valueName\"]) {\n this.updateConditions(oldValue, obj[\"name\"]);\n }\n if (propertyName === \"valueName\") {\n var oldName = !!oldValue ? oldValue : obj[\"name\"];\n var newName = !!obj[\"valueName\"] ? obj[\"valueName\"] : obj[\"name\"];\n this.updateConditions(oldName, newName);\n }\n if (propertyName === \"name\" && obj.isDescendantOf(\"selectbase\")) {\n this.updateChoicesFromQuestionOnColumnNameChanged(oldValue, obj[\"name\"]);\n }\n };\n SurveyCreator.prototype.isObjQuestion = function (obj) {\n var classInfo = survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"Serializer\"].findClass(obj.getType());\n while (!!classInfo && !!classInfo.parentName) {\n if (classInfo.name === \"question\")\n return true;\n classInfo = survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"Serializer\"].findClass(classInfo.parentName);\n }\n return !!classInfo && classInfo.name === \"question\";\n };\n SurveyCreator.prototype.initSurvey = function (json) {\n var _this = this;\n var self = this;\n var newSurvey = (this.createSurvey({}, \"designer\", _surveyjsObjects__WEBPACK_IMPORTED_MODULE_13__[\"SurveyForDesigner\"]));\n this.undoRedoManager = new _undoredomanager__WEBPACK_IMPORTED_MODULE_7__[\"UndoRedoManager\"]();\n newSurvey.getEditor = function () { return self; };\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n var optionValue = _this.showSurveyTitle;\n var showValue = optionValue !== \"never\";\n if (showValue) {\n showValue =\n optionValue === \"always\" ||\n (optionValue === \"ifentered\" &&\n newSurvey.locTitle[\"koRenderedHtml\"]()) ||\n newSurvey.locLogo[\"koRenderedHtml\"]();\n }\n newSurvey.koShowHeader(showValue);\n });\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n newSurvey.isReadOnly(_this.readOnly);\n });\n newSurvey.emptyPageTemplate = \"se-empty-placeholder\";\n newSurvey.emptyPageTemplateData = this;\n newSurvey.onPropertyValueChangedCallback = function (name, oldValue, newValue, sender, arrayChanges) {\n _this.onSurveyPropertyValueChangedCallback(name, oldValue, newValue, sender, arrayChanges);\n };\n this.undoRedoManager.canUndoRedoCallback = function () {\n _this.updateKoCanUndoRedo();\n };\n this.undoRedoManager.changesFinishedCallback = function (changes) {\n _this.setModified({\n type: \"PROPERTY_CHANGED\",\n name: changes.propertyName,\n target: changes.object,\n oldValue: changes.oldValue,\n newValue: changes.newValue,\n });\n };\n this.updateKoCanUndoRedo();\n this.dragDropHelper = new _dragdrophelper__WEBPACK_IMPORTED_MODULE_9__[\"DragDropHelper\"](newSurvey, function (options) {\n self.setModified(options);\n }, this.renderedElement, this.undoRedoManager);\n this.dragDropHelper.readOnly = this.readOnly;\n newSurvey.setJsonObject(json);\n if (newSurvey.isEmpty) {\n newSurvey.setJsonObject(this.getDefaultSurveyJson());\n }\n survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"surveyLocalization\"].currentLocale = newSurvey[\"locale\"];\n newSurvey.dragDropHelper = this.dragDropHelper;\n newSurvey.onUpdateElementAllowingOptions = function (options) {\n self.onElementAllowOperations.fire(self, options);\n };\n var afterRenderElementHandler = Object(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_13__[\"createAfterRenderHandler\"])(this, newSurvey);\n var afterRenderElementPageHandler = Object(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_13__[\"createAfterRenderPageHandler\"])(this, newSurvey);\n var afterRenderHeaderHandler = Object(_surveyjsObjects__WEBPACK_IMPORTED_MODULE_13__[\"createAfterRenderHeaderHandler\"])(this, newSurvey);\n newSurvey.onAfterRenderPage.add(function (sender, options) {\n afterRenderElementPageHandler(options.htmlElement, options.page);\n });\n newSurvey.onAfterRenderQuestion.add(function (sender, options) {\n afterRenderElementHandler(options.htmlElement, options.question, false, true);\n });\n newSurvey.onAfterRenderPanel.add(function (sender, options) {\n if (options.panel.getType() === \"flowpanel\") {\n afterRenderElementHandler(options.htmlElement, options.panel, true, options.panel.koIsDragging());\n var pnlEl = options.htmlElement.querySelector(\"f-panel\");\n if (!!pnlEl) {\n if (!!pnlEl.className) {\n pnlEl.className += \" svd_flowpanel\";\n }\n else {\n pnlEl.className = \"svd_flowpanel\";\n }\n }\n }\n else {\n options.panel.emptyElement = addEmptyPanelElement(newSurvey, options.htmlElement, options.panel.dragDropHelper(), options.panel);\n if (options.panel.elements.length > 0) {\n options.panel.emptyElement.style.display = \"none\";\n }\n afterRenderElementHandler(options.htmlElement, options.panel, true, options.panel.koIsDragging());\n }\n });\n newSurvey.onAfterRenderHeader.add(function (sender, options) {\n afterRenderHeaderHandler(options.htmlElement, sender);\n });\n newSurvey.onDragDropAllow.add(function (sender, options) {\n options.survey = sender;\n self.onDragDropAllow.fire(self, options);\n });\n newSurvey.onGetMenuItems.add(function (sender, options) {\n if (_this.readOnly) {\n return;\n }\n var opts = options.obj.allowingOptions;\n if (!opts)\n opts = {};\n if (_this.showModalOnElementEditing && opts.allowShowEditor) {\n options.items.push({\n name: \"editelement\",\n text: _this.getLocString(\"survey.edit\"),\n hasTitle: true,\n onClick: function (question) { return _this.showQuestionEditor(question); },\n });\n }\n if (opts.allowDelete) {\n var deleteLocaleName = options.obj.isPanel\n ? \"survey.deletePanel\"\n : \"survey.deleteQuestion\";\n options.items.push({\n name: \"delete\",\n text: self.getLocString(deleteLocaleName),\n onClick: function (selObj) {\n self.deleteObject(selObj);\n },\n });\n }\n if (opts.allowShowHideTitle &&\n typeof options.obj.titleLocation !== \"undefined\" &&\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_20__[\"isPropertyVisible\"])(options.obj, \"title\")) {\n var isShowTitle = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](options.obj.titleLocation !== \"hidden\");\n options.items.push({\n name: \"showtitle\",\n text: _this.getLocString(\"pe.showTitle\"),\n icon: knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n if (isShowTitle()) {\n return \"icon-actionshowtitle\";\n }\n return \"icon-actionhidetitle\";\n }),\n onClick: function (question) {\n if (question.titleLocation !== \"hidden\") {\n question.titleLocation = \"hidden\";\n if (question.getType() === \"boolean\") {\n question[\"showTitle\"] = false;\n }\n }\n else {\n question.titleLocation = \"default\";\n if (question.getType() === \"boolean\") {\n question[\"showTitle\"] = true;\n }\n }\n isShowTitle(question.titleLocation !== \"hidden\");\n },\n });\n }\n if (opts.allowChangeRequired &&\n typeof options.obj.isRequired !== \"undefined\" &&\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_20__[\"isPropertyVisible\"])(options.obj, \"isRequired\")) {\n var isRequired = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () { return options.obj.isRequired; });\n options.items.push({\n name: \"isrequired\",\n text: _this.getLocString(\"pe.isRequired\"),\n icon: knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n if (isRequired()) {\n return \"icon-actionisrequired\";\n }\n return \"icon-actionnotrequired\";\n }),\n onClick: function (question) {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_12__[\"Serializer\"].findProperty(question.getType(), \"isRequired\");\n if (!property ||\n !_this.onIsPropertyReadOnlyCallback(question, property, property.readOnly, undefined, undefined)) {\n question.isRequired = !question.isRequired;\n }\n },\n });\n }\n if (options.items.length > 0) {\n options.items.push({ template: \"action-separator\" });\n }\n if (opts.allowCopy) {\n options.items.push({\n name: \"copy\",\n text: self.getLocString(\"survey.copy\"),\n onClick: function (selObj) {\n self.fastCopyQuestion(selObj);\n },\n });\n }\n if (opts.allowAddToToolbox) {\n options.items.push({\n name: \"addtotoolbox\",\n text: self.getLocString(\"survey.addToToolbox\"),\n onClick: function (selObj) {\n self.addCustomToolboxQuestion(selObj);\n },\n });\n }\n if (opts.allowChangeType) {\n if (options.items.length > 0) {\n options.items.push({ template: \"action-separator\" });\n }\n var currentType = options.obj.getType();\n var convertClasses = _questionconverter__WEBPACK_IMPORTED_MODULE_4__[\"QuestionConverter\"].getConvertToClasses(currentType, _this.toolbox.itemNames);\n var allowChangeType = convertClasses.length > 0;\n var createTypeByClass = function (className) {\n return {\n name: _this.getLocString(\"qt.\" + className),\n value: className,\n };\n };\n var availableTypes = [createTypeByClass(currentType)];\n for (var i = 0; i < convertClasses.length; i++) {\n var className = convertClasses[i];\n availableTypes.push(createTypeByClass(className));\n }\n options.items.push({\n text: _this.getLocString(\"qt.\" + currentType),\n title: _this.getLocString(\"survey.convertTo\"),\n type: currentType,\n allowChangeType: allowChangeType,\n template: \"convert-action\",\n availableTypes: availableTypes,\n onConvertType: function (data, event) {\n var newType = event.target.value;\n _this.convertCurrentObject(options.obj, newType);\n },\n });\n }\n if (!_this.showModalOnElementEditing && opts.allowShowEditor) {\n options.items.push({\n name: \"editelement\",\n text: _this.getLocString(\"ed.property-grid\"),\n template: \"sca-show-property-grid\",\n hasTitle: true,\n onClick: function (question) { return _this.showQuestionEditor(question); },\n });\n }\n if (opts.allowDragging) {\n options.items.push({\n name: \"dragelement\",\n needFocus: false,\n text: self.getLocString(\"survey.drag\"),\n onClick: function (selObj) { },\n });\n }\n self.onDefineElementMenuItems.fire(self, options);\n });\n this.onDesignerSurveyCreated.fire(this, { survey: newSurvey });\n // this.survey.render(this.surveyjs);\n newSurvey.onSelectedElementChanged.add(function (sender, options) {\n if (self.disableSurveySelectedElementChanging)\n return;\n self.selectedElement = sender[\"selectedElement\"];\n });\n newSurvey.onEditButtonClick.add(function (sender) {\n self.showQuestionEditor(self.selectedElement);\n });\n newSurvey.onElementDoubleClick.add(function (sender, options) {\n self.onElementDoubleClick.fire(self, options);\n });\n newSurvey.onProcessHtml.add(function (sender, options) {\n options.html = self.processHtml(options.html);\n });\n newSurvey.onQuestionAdded.add(function (sender, options) {\n self.doOnQuestionAdded(options.question, options.parentPanel);\n });\n newSurvey.onQuestionRemoved.add(function (sender, options) {\n self.doOnElementRemoved(options.question);\n });\n newSurvey.onPanelAdded.add(function (sender, options) {\n self.doOnPanelAdded(options.panel, options.parentPanel);\n });\n newSurvey.onPanelRemoved.add(function (sender, options) {\n self.doOnElementRemoved(options.panel);\n });\n newSurvey.onPageAdded.add(function (sender, options) {\n if (self.surveyObjects.hasObject(options.page))\n return;\n self.doOnPageAdded(options.page);\n self.addPageToUI(options.page);\n self.setModified({ type: \"PAGE_ADDED\", newValue: options.page });\n });\n this.surveyValue(newSurvey);\n this.surveyObjects.survey = newSurvey;\n this.selectedElement = newSurvey;\n };\n SurveyCreator.prototype.processHtml = function (html) {\n if (!html)\n return html;\n var scriptRegEx = /)<[^<]*)*<\\/script>/gi;\n while (scriptRegEx.test(html)) {\n html = html.replace(scriptRegEx, \"\");\n }\n return html;\n };\n SurveyCreator.prototype.doDraggingToolboxItem = function (json, e) {\n var newElement = this.createNewElement(json);\n json = newElement.toJSON();\n json[\"type\"] = newElement.getType();\n this.dragDropHelper.startDragToolboxItem(e, newElement.name, json);\n };\n SurveyCreator.prototype.doClickToolboxItem = function (json) {\n if (!this.readOnly) {\n var newElement = this.createNewElement(json);\n this.doClickQuestionCore(newElement);\n }\n };\n SurveyCreator.prototype.dragOverQuestionsEditor = function (data, e) {\n data.survey.dragDropHelper.doDragDropOver(e, data.survey.currentPage);\n return false;\n };\n SurveyCreator.prototype.dropOnQuestionsEditor = function (data, e) {\n data.survey.dragDropHelper.doDrop(e);\n };\n SurveyCreator.prototype.doClickQuestionCore = function (element, modifiedType) {\n if (modifiedType === void 0) { modifiedType = \"ADDED_FROM_TOOLBOX\"; }\n _super.prototype.doClickQuestionCore.call(this, element, modifiedType);\n if (this.renderedElement && this.scrollToNewElement) {\n _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].scrollIntoViewIfNeeded(this.renderedElement.querySelector(\"#\" + element[\"id\"]));\n }\n };\n SurveyCreator.prototype.deleteQuestion = function () {\n var question = this.getSelectedObjAsQuestion();\n if (question) {\n this.deleteCurrentObject();\n }\n };\n SurveyCreator.prototype.selectQuestion = function (isUp) {\n var question = this.getSelectedObjAsQuestion();\n if (question) {\n this.surveyObjects.selectNextQuestion(isUp);\n }\n };\n SurveyCreator.prototype.getSelectedObjAsQuestion = function () {\n var obj = this.selectedElement;\n if (!obj)\n return null;\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].getObjectType(obj) == _surveyHelper__WEBPACK_IMPORTED_MODULE_8__[\"ObjType\"].Question\n ? obj\n : null;\n };\n SurveyCreator.prototype.deleteCurrentObject = function () {\n this.deleteObject(this.selectedElement);\n };\n /**\n * Show the creator dialog. The element can be a question, panel, page or survey. If property grid is used instead of dialog window (default behavior), then focus goes into the property grid.\n * @param element The survey element\n * @see showModalElementEditor\n */\n SurveyCreator.prototype.showElementEditor = function (element, onClose) {\n this.showQuestionEditor(element, onClose);\n };\n SurveyCreator.prototype.updateConditions = function (oldName, newName) {\n if (oldName === newName)\n return;\n new _tabs_logic__WEBPACK_IMPORTED_MODULE_17__[\"SurveyLogic\"](this.survey, this).renameQuestion(oldName, newName);\n };\n SurveyCreator.prototype.updateChoicesFromQuestionOnColumnNameChanged = function (oldName, newName) {\n var questions = this.survey.getAllQuestions();\n questions.forEach(function (q) {\n if (q.choicesFromQuestion === oldName) {\n q.choicesFromQuestion = newName;\n }\n });\n };\n Object.defineProperty(SurveyCreator.prototype, \"showModalOnElementEditing\", {\n get: function () {\n return !this.showElementEditorAsPropertyGrid || !this.showPropertyGrid;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Show the creator dialog. The element can be a question, panel, page or survey.\n * @param element The survey element\n * @param onClose Callback function on closing dialog window. It has isCanceled boolean paratemer. It is true if a user cancel changes.\n * @see onElementEditorClosed\n */\n SurveyCreator.prototype.showModalElementEditor = function (element, onClose) {\n if (onClose === void 0) { onClose = null; }\n var self = this;\n var elWindow = this.renderedElement\n ? (this.renderedElement.querySelector(\"#surveyquestioneditorwindow\"))\n : null;\n var isCanceled = true;\n var oldName = element[\"name\"];\n var oldValueName = element[\"valueName\"];\n this.questionEditorWindow.show(element, elWindow, function (question) {\n self.onQuestionEditorChanged(question);\n isCanceled = false;\n if (oldName !== question[\"name\"]) {\n self.updateConditionsOnQuestionNameChanged(question, \"name\", oldName);\n self.onElementNameChanged.fire(self, {\n obj: question,\n oldName: oldName,\n newName: question[\"name\"],\n });\n }\n if (oldValueName !== question[\"valueName\"]) {\n self.updateConditionsOnQuestionNameChanged(question, \"valueName\", oldValueName);\n }\n }, this, function () {\n if (onClose)\n onClose(isCanceled);\n self.onElementEditorClosed.fire(self, {\n isCanceled: isCanceled,\n element: element,\n });\n }, this.onEditorAfterRenderCallback);\n };\n SurveyCreator.prototype.onQuestionEditorChanged = function (question) {\n if (!!question.name && !this.isNameUnique(question, question.name)) {\n question.name = this.generateUniqueName(question, question.name);\n }\n this.surveyObjects.nameChanged(question);\n this.doPropertyGridChanged();\n this.dirtyPageUpdate(); //TODO why this is need ? (ko problem)\n this.setModified({\n type: \"QUESTION_CHANGED_BY_EDITOR\",\n question: question,\n });\n };\n /**\n * Add a question into Toolbox object\n * @param question an added Survey.Question\n * @see toolbox\n */\n SurveyCreator.prototype.addCustomToolboxQuestion = function (question) {\n var options = {};\n this.onCustomElementAddingIntoToolbox.fire(this, {\n element: question,\n itemOptions: options,\n });\n this.toolbox.addCopiedItem(question, options);\n this.onCustomElementAddedIntoToolbox.fire(this, { element: question });\n };\n SurveyCreator.prototype.deleteObjectCore = function (obj) {\n this.surveyObjects.removeObject(obj);\n _super.prototype.deleteObjectCore.call(this, obj);\n };\n Object.defineProperty(SurveyCreator.prototype, \"showApplyButtonInEditors\", {\n //implements ISurveyObjectEditorOptions\n get: function () {\n return this.showApplyButtonValue;\n },\n set: function (value) {\n this.showApplyButtonValue = value;\n },\n enumerable: false,\n configurable: true\n });\n SurveyCreator.prototype.onIsEditorReadOnlyCallback = function (obj, editor, readOnly) {\n return this.onIsPropertyReadOnlyCallback(obj, editor.property, readOnly, editor.parentObj, editor.parentProperty);\n };\n SurveyCreator.prototype.onTitleInplaceEditorStartEdit = function (inputElem) { };\n SurveyCreator.prototype.onPropertyEditorKeyDownCallback = function (propertyName, obj, editor, event) {\n var options = {\n propertyName: propertyName,\n obj: obj,\n editor: editor,\n event: event,\n };\n this.onPropertyEditorKeyDown.fire(this, options);\n };\n SurveyCreator.prototype.onPropertyEditorObjectSetCallback = function (propertyName, obj, editor) {\n var options = { propertyName: propertyName, obj: obj, editor: editor };\n this.onPropertyEditorObjectAssign.fire(this, options);\n };\n SurveyCreator.prototype.onPropertyEditorModalShowDescriptionCallback = function (propertyName, obj) {\n var options = {\n obj: obj,\n propertyName: propertyName,\n htmlTop: \"\",\n htmlBottom: \"\",\n };\n this.onShowPropertyModalEditorDescription.fire(this, options);\n var res = { top: options.htmlTop, bottom: options.htmlBottom };\n return res;\n };\n SurveyCreator.prototype.onConditionValueSurveyCreatedCallBack = function (valueQuestionName, propertyName, obj, editor, survey) {\n var options = {\n valueQuestionName: valueQuestionName,\n propertyName: propertyName,\n obj: obj,\n editor: editor,\n survey: survey,\n };\n this.onConditionValueSurveyCreated.fire(this, options);\n };\n SurveyCreator.prototype.startUndoRedoTransaction = function () {\n this.undoRedoManager.startTransaction(\"Edit Element in Modal Window\");\n };\n SurveyCreator.prototype.stopUndoRedoTransaction = function () {\n this.undoRedoManager.stopTransaction();\n };\n SurveyCreator.prototype.startTransaction = function (name) {\n this.undoRedoManager.startTransaction(name);\n };\n SurveyCreator.prototype.stopTransation = function () {\n this.undoRedoManager.stopTransaction();\n };\n SurveyCreator.prototype.onAdornerRenderedCallback = function (question, adorner, element, context) {\n var _this = this;\n if (!this.onAdornerRendered.isEmpty) {\n setTimeout(function () {\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"tasks\"].runEarly();\n var options = {\n survey: _this.survey,\n question: question,\n adorner: adorner,\n element: element,\n context: context,\n };\n _this.onAdornerRendered.fire(_this, options);\n }, 1);\n }\n };\n /**\n * Clear the files on a server\n * @param files files data (byte array or URI) to clear\n * @param clearCallback a call back function to get the status on removed the files\n */\n SurveyCreator.prototype.clearFiles = function (files, clearCallback) {\n if (this.onClearFile.isEmpty) {\n clearCallback(\"success\", null);\n }\n else {\n this.onClearFile.fire(this, {\n files: files || [],\n callback: clearCallback,\n });\n }\n };\n /**\n * Upload the files on a server\n * @param files files to upload\n * @param uploadingCallback a call back function to get the status on uploading the file and operation result - URI of the uploaded file\n */\n SurveyCreator.prototype.uploadFiles = function (files, uploadingCallback) {\n if (this.onUploadFile.isEmpty) {\n var fileReader_1 = new FileReader();\n fileReader_1.onload = function (e) {\n uploadingCallback(\"success\", fileReader_1.result);\n };\n fileReader_1.readAsDataURL(files[0]);\n }\n else {\n this.onUploadFile.fire(this, {\n files: files || [],\n callback: uploadingCallback,\n });\n }\n };\n /**\n * Open file chooser dialog\n * @param input file input element\n * @param onFilesChosen a call back function to process chosen files\n */\n SurveyCreator.prototype.chooseFiles = function (input, onFilesChosen) {\n if (this.onOpenFileChooser.isEmpty) {\n if (!window[\"FileReader\"])\n return;\n input.value = \"\";\n input.onchange = function (event) {\n if (!window[\"FileReader\"])\n return;\n if (!input || !input.files || input.files.length < 1)\n return;\n var files = [];\n for (var i = 0; i < input.files.length; i++) {\n files.push(input.files[i]);\n }\n onFilesChosen(files);\n };\n input.click();\n }\n else {\n this.onOpenFileChooser.fire(this, {\n input: input,\n callback: onFilesChosen,\n });\n }\n };\n SurveyCreator.prototype.getAccordionTabs = function () {\n var aTabs;\n if (this.showElementEditorAsPropertyGrid) {\n aTabs = this.propertyGridObjectEditorModel.koElementEditor().koTabs();\n }\n else if (this.useTabsInElementEditor) {\n aTabs = [];\n }\n else {\n aTabs = this.questionEditorWindow.koEditor().koTabs();\n }\n return aTabs;\n };\n /**\n * Collapse all property editor tabs (accordions) in properties panel\n */\n SurveyCreator.prototype.collapseAllPropertyTabs = function () {\n this.getAccordionTabs().forEach(function (tab) {\n tab.collapse();\n });\n };\n /**\n * Expand all property editor tabs (accordions) in properties panel\n */\n SurveyCreator.prototype.expandAllPropertyTabs = function () {\n this.getAccordionTabs().forEach(function (tab) {\n tab.expand();\n });\n };\n /**\n * Expand certain property editor tab (accordion) in properties panel\n * name - tab category name\n */\n SurveyCreator.prototype.expandPropertyTab = function (name) {\n this.getAccordionTabs().forEach(function (tab) {\n if (tab.name !== name)\n return;\n tab.expand();\n });\n };\n /**\n * Collapse certain property editor tab (accordion) in properties panel\n * name - tab category name\n */\n SurveyCreator.prototype.collapsePropertyTab = function (name) {\n this.getAccordionTabs().forEach(function (tab) {\n if (tab.name === name)\n tab.collapse();\n });\n };\n SurveyCreator.defaultNewSurveyText = \"{ pages: [ { name: 'page1'}] }\";\n return SurveyCreator;\n}(_creator_base__WEBPACK_IMPORTED_MODULE_21__[\"CreatorBase\"]));\n\nvar SurveyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyEditor, _super);\n function SurveyEditor(renderedElement, options) {\n if (renderedElement === void 0) { renderedElement = null; }\n if (options === void 0) { options = null; }\n return _super.call(this, renderedElement, options) || this;\n }\n return SurveyEditor;\n}(SurveyCreator));\n\nfunction addEmptyPanelElement(survey, root, dragDropHelper, panel) {\n var eDiv = document.createElement(\"div\");\n eDiv.className = \"well card card-block svd-empty-panel\";\n eDiv.ondragover = function (e) {\n dragDropHelper.doDragDropOver(e, panel);\n };\n var eSpan = document.createElement(\"span\");\n eSpan.textContent = survey.getEditorLocString(\"survey.dropQuestion\");\n eDiv.appendChild(eSpan);\n root.appendChild(eDiv);\n return eDiv;\n}\n\n\n/***/ }),\n\n/***/ \"./src/editorLocalization.ts\":\n/*!***********************************!*\\\n !*** ./src/editorLocalization.ts ***!\n \\***********************************/\n/*! exports provided: editorLocalization, getLocString, defaultStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"editorLocalization\", function() { return editorLocalization; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocString\", function() { return getLocString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultStrings\", function() { return defaultStrings; });\n/* harmony import */ var _localization_english__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./localization/english */ \"./src/localization/english.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar editorLocalization = {\n camelCaseBreaking: true,\n currentLocale: \"\",\n locales: {},\n getString: function (strName, locale) {\n if (locale === void 0) { locale = null; }\n var loc = this.getLocale(locale);\n var defaultLocale = this.getLocale(\"en\");\n var path = strName.split(\".\");\n var obj = loc;\n for (var i = 0; i < path.length; i++) {\n obj = obj[path[i]];\n if (!obj && obj !== \"\") {\n if (loc === defaultLocale)\n return path[i];\n return this.getString(strName, \"en\");\n }\n }\n return obj;\n },\n hasString: function (strName, locale) {\n if (locale === void 0) { locale = null; }\n var loc = this.getLocale(locale);\n var path = strName.split(\".\");\n var obj = loc;\n for (var i = 0; i < path.length; i++) {\n obj = obj[path[i]];\n if (!obj && obj !== \"\")\n return false;\n }\n return true;\n },\n getLocaleName: function (loc, defaultLocale) {\n if (defaultLocale === void 0) { defaultLocale = null; }\n var localeNames = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"surveyLocalization\"][\"localeNames\"];\n if (!defaultLocale) {\n defaultLocale = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"surveyLocalization\"].defaultLocale;\n }\n return !!loc\n ? localeNames[loc]\n : editorLocalization\n .getString(\"ed.defaultLocale\")[\"format\"](localeNames[defaultLocale]);\n },\n getPropertyName: function (strName, defaultName) {\n if (defaultName === void 0) { defaultName = null; }\n var obj = this.getProperty(strName, defaultName);\n var name = obj[\"name\"];\n if (!!name) {\n if (name != strName)\n return name;\n return this.getAutoPropertyName(name, defaultName);\n }\n return obj;\n },\n getPropertyTitle: function (strName) {\n var obj = this.getProperty(strName);\n if (obj[\"title\"])\n return obj[\"title\"];\n return \"\";\n },\n getPropertyNameInEditor: function (strName, defaultName) {\n if (defaultName === void 0) { defaultName = null; }\n var obj = this.getString(\"pe.\" + strName);\n if (obj !== strName)\n return obj;\n return this.getPropertyName(strName, defaultName);\n },\n getProperty: function (strName, defaultName) {\n if (defaultName === void 0) { defaultName = null; }\n var obj = this.getString(\"p.\" + strName);\n if (obj !== strName)\n return obj;\n var pos = strName.indexOf(\"_\");\n if (pos < -1)\n return this.getAutoPropertyName(obj, defaultName);\n strName = strName.substr(pos + 1);\n obj = this.getString(\"p.\" + strName);\n if (obj !== strName)\n return obj;\n return this.getAutoPropertyName(obj, defaultName);\n },\n getAutoPropertyName: function (propName, defaultName) {\n if (defaultName === void 0) { defaultName = null; }\n if (!!defaultName)\n return defaultName;\n if (!propName || !this.camelCaseBreaking)\n return propName;\n var res = propName[0].toUpperCase();\n for (var i = 1; i < propName.length; i++) {\n if (propName[i] === propName[i].toUpperCase()) {\n res += \" \";\n }\n res += propName[i].toLowerCase();\n }\n return res;\n },\n getPropertyValue: function (value, locale) {\n if (locale === void 0) { locale = null; }\n return this.getValueInternal(value, \"pv\", locale);\n },\n getValidatorName: function (name, locale) {\n if (locale === void 0) { locale = null; }\n return this.getValueInternal(name, \"validators\", locale);\n },\n getTriggerName: function (name, locale) {\n if (locale === void 0) { locale = null; }\n return this.getValueInternal(name, \"triggers\", locale);\n },\n getLocale: function (locale) {\n if (!locale)\n locale = this.currentLocale;\n var loc = locale ? this.locales[locale] : defaultStrings;\n if (!loc)\n loc = defaultStrings;\n return loc;\n },\n getValueInternal: function (value, prefix, locale) {\n if (locale === void 0) { locale = null; }\n if (value === \"\" || value === null || value === undefined)\n return \"\";\n value = value.toString();\n var loc = this.getLocale(locale);\n var res = loc[prefix] ? loc[prefix][value] : null;\n if (!res)\n res = defaultStrings[prefix][value];\n return res ? res : value;\n },\n getLocales: function () {\n var res = [];\n res.push(\"\");\n for (var key in this.locales) {\n res.push(key);\n }\n return res;\n },\n};\nfunction getLocString(strName, locale) {\n if (locale === void 0) { locale = null; }\n return editorLocalization.getString(strName, locale);\n}\nvar defaultStrings = _localization_english__WEBPACK_IMPORTED_MODULE_0__[\"enStrings\"];\n\n\n/***/ }),\n\n/***/ \"./src/entries/helpers.ts\":\n/*!********************************!*\\\n !*** ./src/entries/helpers.ts ***!\n \\********************************/\n/*! exports provided: __assign, __extends */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\nvar __assign = Object[\"assign\"] ||\n function (target) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n target[p] = s[p];\n }\n return target;\n };\nfunction __extends(thisClass, baseClass) {\n for (var p in baseClass)\n if (baseClass.hasOwnProperty(p))\n thisClass[p] = baseClass[p];\n function __() {\n this.constructor = thisClass;\n }\n thisClass.prototype =\n baseClass === null\n ? Object.create(baseClass)\n : ((__.prototype = baseClass.prototype), new __());\n}\n\n\n/***/ }),\n\n/***/ \"./src/entries/index.ts\":\n/*!******************************!*\\\n !*** ./src/entries/index.ts ***!\n \\******************************/\n/*! exports provided: Version, enStrings, editorLocalization, defaultStrings, localization, settings, DragDropHelper, EditableObject, SurveyElementSelector, SurveyPropertyEditorBase, SurveyPropertyCustomEditor, SurveyPropertyEditorFactory, SurveyStringPropertyEditor, SurveyDropdownPropertyEditor, SurveyBooleanPropertyEditor, SurveyNumberPropertyEditor, SurveyPropertyTextItemsEditor, SurveyPropertyItemsEditor, SurveyPropertyItemValuesEditor, SurveyPropertyMultipleValuesEditor, SurveyNestedPropertyEditor, SurveyNestedPropertyEditorItem, SurveyPropertyPagesEditor, SurveyPropertyDropdownColumnsEditor, SurveyPropertyModalEditor, SurveyPropertyTextEditor, SurveyPropertyHtmlEditor, SurveyPropertyConditionEditor, SurveyPropertyResultfullEditor, SurveyPropertyDefaultValueEditor, SurveyPropertyDefaultRowValueEditor, SurveyPropertyDefaultPanelValueEditor, SurveyPropertySetEditor, SurveyPropertyTriggersEditor, SurveyPropertyHtmlConditionEditor, SurveyPropertyUrlConditionEditor, SurveyPropertyCalculatedValueEditor, SurveyPropertyValidatorsEditor, SurveyPropertyCellsEditor, SurveyPropertyBindingsEditor, SurveyObjects, SurveyQuestionEditorDefinition, SurveyCreatorProperties, creatorProperties, SurveyPropertyEditorShowWindow, SurveyQuestionEditor, SurveyElementEditorTabModel, ToolboxItemViewModel, ToolboxViewModel, QuestionToolbox, SurveyObjectProperty, PagesEditorViewModel, ElementSelectorViewModel, Toolbar, SurveyTextWorker, ObjType, SurveyHelper, SurveyLiveTester, SurveyEmbedingWindow, QuestionConverter, SurveyJSONEditor, SurveyLogic, SurveyForDesigner, registerAdorner, removeAdorners, Extentions, SurveyEditor, SurveyCreator, StylesManager, Translation, TranslationGroup, TranslationItem, TranslationItemBase, titleAdorner, itemTitleAdorner, descriptionAdorner, itemAdorner, itemDraggableAdorner, labelAdorner, questionActionsAdorner, panelActionsAdorner, selectItemsAdorner, ratingItemAdorner, imageItemsAdorner, addImageItemAdorner, flowpanelActionsAdorner, imageAdorner, titleImageAdorner, TitleActionsViewModel, AccordionItemModel, AccordionViewModel, ButtonViewModel, DropdownViewModel, BooleanViewModel, SVGIconBinding, SurveyWidgetBinding, SplitterComponentViewModel, DesignerContainerViewModel, DesignerHContainerViewModel, SurveyPropertyOneSelectedEditor, PropertyGridViewModel, ObjectEditorViewModel, ObjectEditorContentViewModel, ObjectEditorTabViewModel, ObjectEditorOldTableContentViewModel, PropertyEditorViewModel, PropertyEditorErrorViewModel, PropertyEditorStringViewModel, PropertyEditorDropdownViewModel, PropertyEditorBooleanViewModel, PropertyEditorSwitchViewModel, PropertyEditorNumberViewModel, PropertyEditorColorViewModel, PropertyEditorModalViewModel, PropertyEditorModalContent, PropertyEditorTextViewModel, PropertyEditorStringsViewModel, PropertyEditorConditionViewModel, PropertyEditorCellsViewModel, PropertyEditorExpressionViewModel, PropertyEditorHTMLViewModel, PropertyEditorItemValuesViewModel, PropertyEditorValueViewModel, PropertyEditorOneSelectedViewModel, PropertyEditorRestfullViewModel, PropertyEditorMultipleValuesViewModel, PropertyEditorNestedItemsViewModel, PropertyEditorNestedItemViewModel, PropertyEditorNestedViewModel, PropertyEditorCustomViewModel, PropertyEditorBindingsViewModel, SurveyFilePropertyEditor, simulatorDevices */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Version\", function() { return Version; });\n/* harmony import */ var _utils_custom_checkbox_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/custom-checkbox.scss */ \"./src/utils/custom-checkbox.scss\");\n/* harmony import */ var _utils_custom_checkbox_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_utils_custom_checkbox_scss__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_custom_select_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/custom-select.scss */ \"./src/utils/custom-select.scss\");\n/* harmony import */ var _utils_custom_select_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_utils_custom_select_scss__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_ddmenu_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/ddmenu.scss */ \"./src/utils/ddmenu.scss\");\n/* harmony import */ var _utils_ddmenu_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils_ddmenu_scss__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _main_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../main.scss */ \"./src/main.scss\");\n/* harmony import */ var _main_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_main_scss__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _vendor_knockout_sortable_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor/knockout-sortable.js */ \"./vendor/knockout-sortable.js\");\n/* harmony import */ var _vendor_knockout_sortable_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_vendor_knockout_sortable_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _localization_english__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../localization/english */ \"./src/localization/english.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"enStrings\", function() { return _localization_english__WEBPACK_IMPORTED_MODULE_6__[\"enStrings\"]; });\n\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"editorLocalization\", function() { return _editorLocalization__WEBPACK_IMPORTED_MODULE_7__[\"editorLocalization\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultStrings\", function() { return _editorLocalization__WEBPACK_IMPORTED_MODULE_7__[\"defaultStrings\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"localization\", function() { return _editorLocalization__WEBPACK_IMPORTED_MODULE_7__[\"editorLocalization\"]; });\n\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../settings */ \"./src/settings.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"settings\", function() { return _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"]; });\n\n/* harmony import */ var _dragdrophelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../dragdrophelper */ \"./src/dragdrophelper.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DragDropHelper\", function() { return _dragdrophelper__WEBPACK_IMPORTED_MODULE_9__[\"DragDropHelper\"]; });\n\n/* harmony import */ var _propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../propertyEditors/editableObject */ \"./src/propertyEditors/editableObject.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EditableObject\", function() { return _propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_10__[\"EditableObject\"]; });\n\n/* harmony import */ var _propertyEditors_surveyElementSelector__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../propertyEditors/surveyElementSelector */ \"./src/propertyEditors/surveyElementSelector.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyElementSelector\", function() { return _propertyEditors_surveyElementSelector__WEBPACK_IMPORTED_MODULE_11__[\"SurveyElementSelector\"]; });\n\n/* harmony import */ var _propertyEditors_propertyEditorBase__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../propertyEditors/propertyEditorBase */ \"./src/propertyEditors/propertyEditorBase.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyEditorBase\", function() { return _propertyEditors_propertyEditorBase__WEBPACK_IMPORTED_MODULE_12__[\"SurveyPropertyEditorBase\"]; });\n\n/* harmony import */ var _propertyEditors_propertyCustomEditor__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../propertyEditors/propertyCustomEditor */ \"./src/propertyEditors/propertyCustomEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyCustomEditor\", function() { return _propertyEditors_propertyCustomEditor__WEBPACK_IMPORTED_MODULE_13__[\"SurveyPropertyCustomEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../propertyEditors/propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyEditorFactory\", function() { return _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_14__[\"SurveyPropertyEditorFactory\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyStringPropertyEditor\", function() { return _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_14__[\"SurveyStringPropertyEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyDropdownPropertyEditor\", function() { return _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_14__[\"SurveyDropdownPropertyEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyBooleanPropertyEditor\", function() { return _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_14__[\"SurveyBooleanPropertyEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyNumberPropertyEditor\", function() { return _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_14__[\"SurveyNumberPropertyEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyTextItemsEditor__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../propertyEditors/propertyTextItemsEditor */ \"./src/propertyEditors/propertyTextItemsEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyTextItemsEditor\", function() { return _propertyEditors_propertyTextItemsEditor__WEBPACK_IMPORTED_MODULE_15__[\"SurveyPropertyTextItemsEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyItemsEditor__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../propertyEditors/propertyItemsEditor */ \"./src/propertyEditors/propertyItemsEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyItemsEditor\", function() { return _propertyEditors_propertyItemsEditor__WEBPACK_IMPORTED_MODULE_16__[\"SurveyPropertyItemsEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyItemValuesEditor__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../propertyEditors/propertyItemValuesEditor */ \"./src/propertyEditors/propertyItemValuesEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyItemValuesEditor\", function() { return _propertyEditors_propertyItemValuesEditor__WEBPACK_IMPORTED_MODULE_17__[\"SurveyPropertyItemValuesEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyMultipleValuesEditor__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../propertyEditors/propertyMultipleValuesEditor */ \"./src/propertyEditors/propertyMultipleValuesEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyMultipleValuesEditor\", function() { return _propertyEditors_propertyMultipleValuesEditor__WEBPACK_IMPORTED_MODULE_18__[\"SurveyPropertyMultipleValuesEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../propertyEditors/propertyNestedPropertyEditor */ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyNestedPropertyEditor\", function() { return _propertyEditors_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_19__[\"SurveyNestedPropertyEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyNestedPropertyEditorItem\", function() { return _propertyEditors_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_19__[\"SurveyNestedPropertyEditorItem\"]; });\n\n/* harmony import */ var _propertyEditors_propertyPagesEditor__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../propertyEditors/propertyPagesEditor */ \"./src/propertyEditors/propertyPagesEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyPagesEditor\", function() { return _propertyEditors_propertyPagesEditor__WEBPACK_IMPORTED_MODULE_20__[\"SurveyPropertyPagesEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyMatrixDropdownColumnsEditor__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../propertyEditors/propertyMatrixDropdownColumnsEditor */ \"./src/propertyEditors/propertyMatrixDropdownColumnsEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDropdownColumnsEditor\", function() { return _propertyEditors_propertyMatrixDropdownColumnsEditor__WEBPACK_IMPORTED_MODULE_21__[\"SurveyPropertyDropdownColumnsEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyModalEditor__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../propertyEditors/propertyModalEditor */ \"./src/propertyEditors/propertyModalEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyModalEditor\", function() { return _propertyEditors_propertyModalEditor__WEBPACK_IMPORTED_MODULE_22__[\"SurveyPropertyModalEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyTextEditor\", function() { return _propertyEditors_propertyModalEditor__WEBPACK_IMPORTED_MODULE_22__[\"SurveyPropertyTextEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyHtmlEditor\", function() { return _propertyEditors_propertyModalEditor__WEBPACK_IMPORTED_MODULE_22__[\"SurveyPropertyHtmlEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyConditionEditor__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../propertyEditors/propertyConditionEditor */ \"./src/propertyEditors/propertyConditionEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyConditionEditor\", function() { return _propertyEditors_propertyConditionEditor__WEBPACK_IMPORTED_MODULE_23__[\"SurveyPropertyConditionEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyRestfullEditor__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../propertyEditors/propertyRestfullEditor */ \"./src/propertyEditors/propertyRestfullEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyResultfullEditor\", function() { return _propertyEditors_propertyRestfullEditor__WEBPACK_IMPORTED_MODULE_24__[\"SurveyPropertyResultfullEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../propertyEditors/propertyDefaultValueEditor */ \"./src/propertyEditors/propertyDefaultValueEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDefaultValueEditor\", function() { return _propertyEditors_propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_25__[\"SurveyPropertyDefaultValueEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDefaultRowValueEditor\", function() { return _propertyEditors_propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_25__[\"SurveyPropertyDefaultRowValueEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDefaultPanelValueEditor\", function() { return _propertyEditors_propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_25__[\"SurveyPropertyDefaultPanelValueEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertySetEditor\", function() { return _propertyEditors_propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_25__[\"SurveyPropertySetEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyTriggersEditor__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../propertyEditors/propertyTriggersEditor */ \"./src/propertyEditors/propertyTriggersEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyTriggersEditor\", function() { return _propertyEditors_propertyTriggersEditor__WEBPACK_IMPORTED_MODULE_26__[\"SurveyPropertyTriggersEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyHtmlConditionEditor__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../propertyEditors/propertyHtmlConditionEditor */ \"./src/propertyEditors/propertyHtmlConditionEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyHtmlConditionEditor\", function() { return _propertyEditors_propertyHtmlConditionEditor__WEBPACK_IMPORTED_MODULE_27__[\"SurveyPropertyHtmlConditionEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyUrlConditionEditor__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../propertyEditors/propertyUrlConditionEditor */ \"./src/propertyEditors/propertyUrlConditionEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyUrlConditionEditor\", function() { return _propertyEditors_propertyUrlConditionEditor__WEBPACK_IMPORTED_MODULE_28__[\"SurveyPropertyUrlConditionEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyCalculatedValues__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../propertyEditors/propertyCalculatedValues */ \"./src/propertyEditors/propertyCalculatedValues.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyCalculatedValueEditor\", function() { return _propertyEditors_propertyCalculatedValues__WEBPACK_IMPORTED_MODULE_29__[\"SurveyPropertyCalculatedValueEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyValidatorsEditor__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../propertyEditors/propertyValidatorsEditor */ \"./src/propertyEditors/propertyValidatorsEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyValidatorsEditor\", function() { return _propertyEditors_propertyValidatorsEditor__WEBPACK_IMPORTED_MODULE_30__[\"SurveyPropertyValidatorsEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyCellsEditor__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../propertyEditors/propertyCellsEditor */ \"./src/propertyEditors/propertyCellsEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyCellsEditor\", function() { return _propertyEditors_propertyCellsEditor__WEBPACK_IMPORTED_MODULE_31__[\"SurveyPropertyCellsEditor\"]; });\n\n/* harmony import */ var _propertyEditors_propertyBindingsEditor__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../propertyEditors/propertyBindingsEditor */ \"./src/propertyEditors/propertyBindingsEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyBindingsEditor\", function() { return _propertyEditors_propertyBindingsEditor__WEBPACK_IMPORTED_MODULE_32__[\"SurveyPropertyBindingsEditor\"]; });\n\n/* harmony import */ var _surveyObjects__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../surveyObjects */ \"./src/surveyObjects.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyObjects\", function() { return _surveyObjects__WEBPACK_IMPORTED_MODULE_33__[\"SurveyObjects\"]; });\n\n/* harmony import */ var _questionEditors_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../questionEditors/questionEditorDefinition */ \"./src/questionEditors/questionEditorDefinition.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionEditorDefinition\", function() { return _questionEditors_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_34__[\"SurveyQuestionEditorDefinition\"]; });\n\n/* harmony import */ var _questionEditors_properties__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../questionEditors/properties */ \"./src/questionEditors/properties.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyCreatorProperties\", function() { return _questionEditors_properties__WEBPACK_IMPORTED_MODULE_35__[\"SurveyCreatorProperties\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"creatorProperties\", function() { return _questionEditors_properties__WEBPACK_IMPORTED_MODULE_35__[\"creatorProperties\"]; });\n\n/* harmony import */ var _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../questionEditors/questionEditor */ \"./src/questionEditors/questionEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyEditorShowWindow\", function() { return _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_36__[\"SurveyPropertyEditorShowWindow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionEditor\", function() { return _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_36__[\"SurveyQuestionEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyElementEditorTabModel\", function() { return _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_36__[\"SurveyElementEditorTabModel\"]; });\n\n/* harmony import */ var _components_toolbox__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../components/toolbox */ \"./src/components/toolbox.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ToolboxItemViewModel\", function() { return _components_toolbox__WEBPACK_IMPORTED_MODULE_37__[\"ToolboxItemViewModel\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ToolboxViewModel\", function() { return _components_toolbox__WEBPACK_IMPORTED_MODULE_37__[\"ToolboxViewModel\"]; });\n\n/* harmony import */ var _toolbox__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../toolbox */ \"./src/toolbox.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QuestionToolbox\", function() { return _toolbox__WEBPACK_IMPORTED_MODULE_38__[\"QuestionToolbox\"]; });\n\n/* harmony import */ var _objectProperty__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../objectProperty */ \"./src/objectProperty.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyObjectProperty\", function() { return _objectProperty__WEBPACK_IMPORTED_MODULE_39__[\"SurveyObjectProperty\"]; });\n\n/* harmony import */ var _components_pages_editor__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../components/pages-editor */ \"./src/components/pages-editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PagesEditorViewModel\", function() { return _components_pages_editor__WEBPACK_IMPORTED_MODULE_40__[\"PagesEditorViewModel\"]; });\n\n/* harmony import */ var _components_element_selector__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../components/element-selector */ \"./src/components/element-selector.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ElementSelectorViewModel\", function() { return _components_element_selector__WEBPACK_IMPORTED_MODULE_41__[\"ElementSelectorViewModel\"]; });\n\n/* harmony import */ var _components_toolbar__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../components/toolbar */ \"./src/components/toolbar.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Toolbar\", function() { return _components_toolbar__WEBPACK_IMPORTED_MODULE_42__[\"Toolbar\"]; });\n\n/* harmony import */ var _textWorker__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../textWorker */ \"./src/textWorker.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyTextWorker\", function() { return _textWorker__WEBPACK_IMPORTED_MODULE_43__[\"SurveyTextWorker\"]; });\n\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjType\", function() { return _surveyHelper__WEBPACK_IMPORTED_MODULE_44__[\"ObjType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyHelper\", function() { return _surveyHelper__WEBPACK_IMPORTED_MODULE_44__[\"SurveyHelper\"]; });\n\n/* harmony import */ var _tabs_test__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../tabs/test */ \"./src/tabs/test.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyLiveTester\", function() { return _tabs_test__WEBPACK_IMPORTED_MODULE_45__[\"SurveyLiveTester\"]; });\n\n/* harmony import */ var _tabs_embed__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../tabs/embed */ \"./src/tabs/embed.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyEmbedingWindow\", function() { return _tabs_embed__WEBPACK_IMPORTED_MODULE_46__[\"SurveyEmbedingWindow\"]; });\n\n/* harmony import */ var _questionconverter__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../questionconverter */ \"./src/questionconverter.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QuestionConverter\", function() { return _questionconverter__WEBPACK_IMPORTED_MODULE_47__[\"QuestionConverter\"]; });\n\n/* harmony import */ var _tabs_json_editor__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../tabs/json-editor */ \"./src/tabs/json-editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyJSONEditor\", function() { return _tabs_json_editor__WEBPACK_IMPORTED_MODULE_48__[\"SurveyJSONEditor\"]; });\n\n/* harmony import */ var _tabs_logic__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../tabs/logic */ \"./src/tabs/logic.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyLogic\", function() { return _tabs_logic__WEBPACK_IMPORTED_MODULE_49__[\"SurveyLogic\"]; });\n\n/* harmony import */ var _surveyjsObjects__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../surveyjsObjects */ \"./src/surveyjsObjects.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyForDesigner\", function() { return _surveyjsObjects__WEBPACK_IMPORTED_MODULE_50__[\"SurveyForDesigner\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerAdorner\", function() { return _surveyjsObjects__WEBPACK_IMPORTED_MODULE_50__[\"registerAdorner\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"removeAdorners\", function() { return _surveyjsObjects__WEBPACK_IMPORTED_MODULE_50__[\"removeAdorners\"]; });\n\n/* harmony import */ var _extentions__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../extentions */ \"./src/extentions.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Extentions\", function() { return _extentions__WEBPACK_IMPORTED_MODULE_51__[\"Extentions\"]; });\n\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../editor */ \"./src/editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyEditor\", function() { return _editor__WEBPACK_IMPORTED_MODULE_52__[\"SurveyEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyCreator\", function() { return _editor__WEBPACK_IMPORTED_MODULE_52__[\"SurveyCreator\"]; });\n\n/* harmony import */ var _stylesmanager__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../stylesmanager */ \"./src/stylesmanager.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StylesManager\", function() { return _stylesmanager__WEBPACK_IMPORTED_MODULE_53__[\"StylesManager\"]; });\n\n/* harmony import */ var _localization_arabic__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../localization/arabic */ \"./src/localization/arabic.ts\");\n/* harmony import */ var _localization_croatian__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../localization/croatian */ \"./src/localization/croatian.ts\");\n/* harmony import */ var _localization_czech__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../localization/czech */ \"./src/localization/czech.ts\");\n/* harmony import */ var _localization_danish__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../localization/danish */ \"./src/localization/danish.ts\");\n/* harmony import */ var _localization_dutch__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../localization/dutch */ \"./src/localization/dutch.ts\");\n/* harmony import */ var _localization_finnish__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../localization/finnish */ \"./src/localization/finnish.ts\");\n/* harmony import */ var _localization_french__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../localization/french */ \"./src/localization/french.ts\");\n/* harmony import */ var _localization_german__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../localization/german */ \"./src/localization/german.ts\");\n/* harmony import */ var _localization_hungarian__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../localization/hungarian */ \"./src/localization/hungarian.ts\");\n/* harmony import */ var _localization_indonesian__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../localization/indonesian */ \"./src/localization/indonesian.ts\");\n/* harmony import */ var _localization_italian__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../localization/italian */ \"./src/localization/italian.ts\");\n/* harmony import */ var _localization_japanese__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../localization/japanese */ \"./src/localization/japanese.ts\");\n/* harmony import */ var _localization_korean__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../localization/korean */ \"./src/localization/korean.ts\");\n/* harmony import */ var _localization_malay__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../localization/malay */ \"./src/localization/malay.ts\");\n/* harmony import */ var _localization_mongolian__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../localization/mongolian */ \"./src/localization/mongolian.ts\");\n/* harmony import */ var _localization_norwegian__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../localization/norwegian */ \"./src/localization/norwegian.ts\");\n/* harmony import */ var _localization_persian__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../localization/persian */ \"./src/localization/persian.ts\");\n/* harmony import */ var _localization_polish__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../localization/polish */ \"./src/localization/polish.ts\");\n/* harmony import */ var _localization_portuguese__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../localization/portuguese */ \"./src/localization/portuguese.ts\");\n/* harmony import */ var _localization_russian__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../localization/russian */ \"./src/localization/russian.ts\");\n/* harmony import */ var _localization_simplified_chinese__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../localization/simplified-chinese */ \"./src/localization/simplified-chinese.ts\");\n/* harmony import */ var _localization_slovak__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../localization/slovak */ \"./src/localization/slovak.ts\");\n/* harmony import */ var _localization_spanish__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../localization/spanish */ \"./src/localization/spanish.ts\");\n/* harmony import */ var _localization_swedish__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../localization/swedish */ \"./src/localization/swedish.ts\");\n/* harmony import */ var _localization_tajik__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../localization/tajik */ \"./src/localization/tajik.ts\");\n/* harmony import */ var _localization_traditional_chinese__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../localization/traditional-chinese */ \"./src/localization/traditional-chinese.ts\");\n/* harmony import */ var _localization_turkish__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../localization/turkish */ \"./src/localization/turkish.ts\");\n/* harmony import */ var _tabs_translation__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../tabs/translation */ \"./src/tabs/translation.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Translation\", function() { return _tabs_translation__WEBPACK_IMPORTED_MODULE_81__[\"Translation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TranslationGroup\", function() { return _tabs_translation__WEBPACK_IMPORTED_MODULE_81__[\"TranslationGroup\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TranslationItem\", function() { return _tabs_translation__WEBPACK_IMPORTED_MODULE_81__[\"TranslationItem\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TranslationItemBase\", function() { return _tabs_translation__WEBPACK_IMPORTED_MODULE_81__[\"TranslationItemBase\"]; });\n\n/* harmony import */ var _adorners_title_editor__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../adorners/title-editor */ \"./src/adorners/title-editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"titleAdorner\", function() { return _adorners_title_editor__WEBPACK_IMPORTED_MODULE_82__[\"titleAdorner\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"itemTitleAdorner\", function() { return _adorners_title_editor__WEBPACK_IMPORTED_MODULE_82__[\"itemTitleAdorner\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"descriptionAdorner\", function() { return _adorners_title_editor__WEBPACK_IMPORTED_MODULE_82__[\"descriptionAdorner\"]; });\n\n/* harmony import */ var _adorners_item_editor__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../adorners/item-editor */ \"./src/adorners/item-editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"itemAdorner\", function() { return _adorners_item_editor__WEBPACK_IMPORTED_MODULE_83__[\"itemAdorner\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"itemDraggableAdorner\", function() { return _adorners_item_editor__WEBPACK_IMPORTED_MODULE_83__[\"itemDraggableAdorner\"]; });\n\n/* harmony import */ var _adorners_label_editor__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../adorners/label-editor */ \"./src/adorners/label-editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"labelAdorner\", function() { return _adorners_label_editor__WEBPACK_IMPORTED_MODULE_84__[\"labelAdorner\"]; });\n\n/* harmony import */ var _adorners_question_actions__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../adorners/question-actions */ \"./src/adorners/question-actions.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"questionActionsAdorner\", function() { return _adorners_question_actions__WEBPACK_IMPORTED_MODULE_85__[\"questionActionsAdorner\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"panelActionsAdorner\", function() { return _adorners_question_actions__WEBPACK_IMPORTED_MODULE_85__[\"panelActionsAdorner\"]; });\n\n/* harmony import */ var _adorners_select_items__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../adorners/select-items */ \"./src/adorners/select-items.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"selectItemsAdorner\", function() { return _adorners_select_items__WEBPACK_IMPORTED_MODULE_86__[\"selectItemsAdorner\"]; });\n\n/* harmony import */ var _adorners_rating_item_editor__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../adorners/rating-item-editor */ \"./src/adorners/rating-item-editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ratingItemAdorner\", function() { return _adorners_rating_item_editor__WEBPACK_IMPORTED_MODULE_87__[\"ratingItemAdorner\"]; });\n\n/* harmony import */ var _adorners_image_items__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../adorners/image-items */ \"./src/adorners/image-items.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"imageItemsAdorner\", function() { return _adorners_image_items__WEBPACK_IMPORTED_MODULE_88__[\"imageItemsAdorner\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addImageItemAdorner\", function() { return _adorners_image_items__WEBPACK_IMPORTED_MODULE_88__[\"addImageItemAdorner\"]; });\n\n/* harmony import */ var _adorners_flowpanel_actions__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ../adorners/flowpanel-actions */ \"./src/adorners/flowpanel-actions.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flowpanelActionsAdorner\", function() { return _adorners_flowpanel_actions__WEBPACK_IMPORTED_MODULE_89__[\"flowpanelActionsAdorner\"]; });\n\n/* harmony import */ var _adorners_image__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../adorners/image */ \"./src/adorners/image.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"imageAdorner\", function() { return _adorners_image__WEBPACK_IMPORTED_MODULE_90__[\"imageAdorner\"]; });\n\n/* harmony import */ var _adorners_title_image__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../adorners/title-image */ \"./src/adorners/title-image.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"titleImageAdorner\", function() { return _adorners_title_image__WEBPACK_IMPORTED_MODULE_91__[\"titleImageAdorner\"]; });\n\n/* harmony import */ var _adorners_title_actions__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../adorners/title-actions */ \"./src/adorners/title-actions.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TitleActionsViewModel\", function() { return _adorners_title_actions__WEBPACK_IMPORTED_MODULE_92__[\"TitleActionsViewModel\"]; });\n\n/* harmony import */ var _utils_accordion__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../utils/accordion */ \"./src/utils/accordion.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AccordionItemModel\", function() { return _utils_accordion__WEBPACK_IMPORTED_MODULE_93__[\"AccordionItemModel\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AccordionViewModel\", function() { return _utils_accordion__WEBPACK_IMPORTED_MODULE_93__[\"AccordionViewModel\"]; });\n\n/* harmony import */ var _utils_button__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../utils/button */ \"./src/utils/button.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ButtonViewModel\", function() { return _utils_button__WEBPACK_IMPORTED_MODULE_94__[\"ButtonViewModel\"]; });\n\n/* harmony import */ var _utils_dropdown__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../utils/dropdown */ \"./src/utils/dropdown.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DropdownViewModel\", function() { return _utils_dropdown__WEBPACK_IMPORTED_MODULE_95__[\"DropdownViewModel\"]; });\n\n/* harmony import */ var _utils_boolean__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ../utils/boolean */ \"./src/utils/boolean.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BooleanViewModel\", function() { return _utils_boolean__WEBPACK_IMPORTED_MODULE_96__[\"BooleanViewModel\"]; });\n\n/* harmony import */ var _utils_svg_icon__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ../utils/svg-icon */ \"./src/utils/svg-icon.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SVGIconBinding\", function() { return _utils_svg_icon__WEBPACK_IMPORTED_MODULE_97__[\"SVGIconBinding\"]; });\n\n/* harmony import */ var _utils_survey_widget__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ../utils/survey-widget */ \"./src/utils/survey-widget.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyWidgetBinding\", function() { return _utils_survey_widget__WEBPACK_IMPORTED_MODULE_98__[\"SurveyWidgetBinding\"]; });\n\n/* harmony import */ var _utils_splitter__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ../utils/splitter */ \"./src/utils/splitter.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SplitterComponentViewModel\", function() { return _utils_splitter__WEBPACK_IMPORTED_MODULE_99__[\"SplitterComponentViewModel\"]; });\n\n/* harmony import */ var _utils_designer_container__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ../utils/designer-container */ \"./src/utils/designer-container.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DesignerContainerViewModel\", function() { return _utils_designer_container__WEBPACK_IMPORTED_MODULE_100__[\"DesignerContainerViewModel\"]; });\n\n/* harmony import */ var _utils_designer_h_container__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ../utils/designer-h-container */ \"./src/utils/designer-h-container.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DesignerHContainerViewModel\", function() { return _utils_designer_h_container__WEBPACK_IMPORTED_MODULE_101__[\"DesignerHContainerViewModel\"]; });\n\n/* harmony import */ var _propertyEditors_propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ../propertyEditors/propertyOneSelectedEditor */ \"./src/propertyEditors/propertyOneSelectedEditor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyOneSelectedEditor\", function() { return _propertyEditors_propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_102__[\"SurveyPropertyOneSelectedEditor\"]; });\n\n/* harmony import */ var _property_grid_property_grid__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ../property-grid/property-grid */ \"./src/property-grid/property-grid.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyGridViewModel\", function() { return _property_grid_property_grid__WEBPACK_IMPORTED_MODULE_103__[\"PropertyGridViewModel\"]; });\n\n/* harmony import */ var _property_grid_object_editor__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ../property-grid/object-editor */ \"./src/property-grid/object-editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjectEditorViewModel\", function() { return _property_grid_object_editor__WEBPACK_IMPORTED_MODULE_104__[\"ObjectEditorViewModel\"]; });\n\n/* harmony import */ var _property_grid_object_editor_content__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ../property-grid/object-editor-content */ \"./src/property-grid/object-editor-content.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjectEditorContentViewModel\", function() { return _property_grid_object_editor_content__WEBPACK_IMPORTED_MODULE_105__[\"ObjectEditorContentViewModel\"]; });\n\n/* harmony import */ var _property_grid_object_editor_tab__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ../property-grid/object-editor-tab */ \"./src/property-grid/object-editor-tab.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjectEditorTabViewModel\", function() { return _property_grid_object_editor_tab__WEBPACK_IMPORTED_MODULE_106__[\"ObjectEditorTabViewModel\"]; });\n\n/* harmony import */ var _property_grid_object_editor_old_table_content__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ../property-grid/object-editor-old-table-content */ \"./src/property-grid/object-editor-old-table-content.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjectEditorOldTableContentViewModel\", function() { return _property_grid_object_editor_old_table_content__WEBPACK_IMPORTED_MODULE_107__[\"ObjectEditorOldTableContentViewModel\"]; });\n\n/* harmony import */ var _property_editors_property_editor__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ../property-editors/property-editor */ \"./src/property-editors/property-editor.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorViewModel\", function() { return _property_editors_property_editor__WEBPACK_IMPORTED_MODULE_108__[\"PropertyEditorViewModel\"]; });\n\n/* harmony import */ var _property_editors_error__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ../property-editors/error */ \"./src/property-editors/error.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorErrorViewModel\", function() { return _property_editors_error__WEBPACK_IMPORTED_MODULE_109__[\"PropertyEditorErrorViewModel\"]; });\n\n/* harmony import */ var _property_editors_string__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ../property-editors/string */ \"./src/property-editors/string.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorStringViewModel\", function() { return _property_editors_string__WEBPACK_IMPORTED_MODULE_110__[\"PropertyEditorStringViewModel\"]; });\n\n/* harmony import */ var _property_editors_dropdown__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ../property-editors/dropdown */ \"./src/property-editors/dropdown.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorDropdownViewModel\", function() { return _property_editors_dropdown__WEBPACK_IMPORTED_MODULE_111__[\"PropertyEditorDropdownViewModel\"]; });\n\n/* harmony import */ var _property_editors_boolean__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ../property-editors/boolean */ \"./src/property-editors/boolean.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorBooleanViewModel\", function() { return _property_editors_boolean__WEBPACK_IMPORTED_MODULE_112__[\"PropertyEditorBooleanViewModel\"]; });\n\n/* harmony import */ var _property_editors_switch__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ../property-editors/switch */ \"./src/property-editors/switch.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorSwitchViewModel\", function() { return _property_editors_switch__WEBPACK_IMPORTED_MODULE_113__[\"PropertyEditorSwitchViewModel\"]; });\n\n/* harmony import */ var _property_editors_number__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ../property-editors/number */ \"./src/property-editors/number.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorNumberViewModel\", function() { return _property_editors_number__WEBPACK_IMPORTED_MODULE_114__[\"PropertyEditorNumberViewModel\"]; });\n\n/* harmony import */ var _property_editors_color__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ../property-editors/color */ \"./src/property-editors/color.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorColorViewModel\", function() { return _property_editors_color__WEBPACK_IMPORTED_MODULE_115__[\"PropertyEditorColorViewModel\"]; });\n\n/* harmony import */ var _property_editors_modal__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ../property-editors/modal */ \"./src/property-editors/modal.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorModalViewModel\", function() { return _property_editors_modal__WEBPACK_IMPORTED_MODULE_116__[\"PropertyEditorModalViewModel\"]; });\n\n/* harmony import */ var _property_editors_modal_content__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ../property-editors/modal-content */ \"./src/property-editors/modal-content.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorModalContent\", function() { return _property_editors_modal_content__WEBPACK_IMPORTED_MODULE_117__[\"PropertyEditorModalContent\"]; });\n\n/* harmony import */ var _property_editors_text__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ../property-editors/text */ \"./src/property-editors/text.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorTextViewModel\", function() { return _property_editors_text__WEBPACK_IMPORTED_MODULE_118__[\"PropertyEditorTextViewModel\"]; });\n\n/* harmony import */ var _property_editors_strings__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ../property-editors/strings */ \"./src/property-editors/strings.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorStringsViewModel\", function() { return _property_editors_strings__WEBPACK_IMPORTED_MODULE_119__[\"PropertyEditorStringsViewModel\"]; });\n\n/* harmony import */ var _property_editors_condition__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ../property-editors/condition */ \"./src/property-editors/condition.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorConditionViewModel\", function() { return _property_editors_condition__WEBPACK_IMPORTED_MODULE_120__[\"PropertyEditorConditionViewModel\"]; });\n\n/* harmony import */ var _property_editors_cells__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ../property-editors/cells */ \"./src/property-editors/cells.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorCellsViewModel\", function() { return _property_editors_cells__WEBPACK_IMPORTED_MODULE_121__[\"PropertyEditorCellsViewModel\"]; });\n\n/* harmony import */ var _property_editors_expression__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ../property-editors/expression */ \"./src/property-editors/expression.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorExpressionViewModel\", function() { return _property_editors_expression__WEBPACK_IMPORTED_MODULE_122__[\"PropertyEditorExpressionViewModel\"]; });\n\n/* harmony import */ var _property_editors_html_pe__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ../property-editors/html-pe */ \"./src/property-editors/html-pe.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorHTMLViewModel\", function() { return _property_editors_html_pe__WEBPACK_IMPORTED_MODULE_123__[\"PropertyEditorHTMLViewModel\"]; });\n\n/* harmony import */ var _property_editors_item_values__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ../property-editors/item-values */ \"./src/property-editors/item-values.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorItemValuesViewModel\", function() { return _property_editors_item_values__WEBPACK_IMPORTED_MODULE_124__[\"PropertyEditorItemValuesViewModel\"]; });\n\n/* harmony import */ var _property_editors_default_value__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ../property-editors/default-value */ \"./src/property-editors/default-value.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorValueViewModel\", function() { return _property_editors_default_value__WEBPACK_IMPORTED_MODULE_125__[\"PropertyEditorValueViewModel\"]; });\n\n/* harmony import */ var _property_editors_one_selected__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ../property-editors/one-selected */ \"./src/property-editors/one-selected.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorOneSelectedViewModel\", function() { return _property_editors_one_selected__WEBPACK_IMPORTED_MODULE_126__[\"PropertyEditorOneSelectedViewModel\"]; });\n\n/* harmony import */ var _property_editors_restfull__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ../property-editors/restfull */ \"./src/property-editors/restfull.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorRestfullViewModel\", function() { return _property_editors_restfull__WEBPACK_IMPORTED_MODULE_127__[\"PropertyEditorRestfullViewModel\"]; });\n\n/* harmony import */ var _property_editors_multiple_values__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ../property-editors/multiple-values */ \"./src/property-editors/multiple-values.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorMultipleValuesViewModel\", function() { return _property_editors_multiple_values__WEBPACK_IMPORTED_MODULE_128__[\"PropertyEditorMultipleValuesViewModel\"]; });\n\n/* harmony import */ var _property_editors_nested_items__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ../property-editors/nested-items */ \"./src/property-editors/nested-items.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorNestedItemsViewModel\", function() { return _property_editors_nested_items__WEBPACK_IMPORTED_MODULE_129__[\"PropertyEditorNestedItemsViewModel\"]; });\n\n/* harmony import */ var _property_editors_nested_item__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ../property-editors/nested-item */ \"./src/property-editors/nested-item.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorNestedItemViewModel\", function() { return _property_editors_nested_item__WEBPACK_IMPORTED_MODULE_130__[\"PropertyEditorNestedItemViewModel\"]; });\n\n/* harmony import */ var _property_editors_nested__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ../property-editors/nested */ \"./src/property-editors/nested.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorNestedViewModel\", function() { return _property_editors_nested__WEBPACK_IMPORTED_MODULE_131__[\"PropertyEditorNestedViewModel\"]; });\n\n/* harmony import */ var _property_editors_custom__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ../property-editors/custom */ \"./src/property-editors/custom.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorCustomViewModel\", function() { return _property_editors_custom__WEBPACK_IMPORTED_MODULE_132__[\"PropertyEditorCustomViewModel\"]; });\n\n/* harmony import */ var _property_editors_bindings__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ../property-editors/bindings */ \"./src/property-editors/bindings.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorBindingsViewModel\", function() { return _property_editors_bindings__WEBPACK_IMPORTED_MODULE_133__[\"PropertyEditorBindingsViewModel\"]; });\n\n/* harmony import */ var _property_editors_file__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ../property-editors/file */ \"./src/property-editors/file.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyFilePropertyEditor\", function() { return _property_editors_file__WEBPACK_IMPORTED_MODULE_134__[\"SurveyFilePropertyEditor\"]; });\n\n/* harmony import */ var _components_simulator__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ../components/simulator */ \"./src/components/simulator.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"simulatorDevices\", function() { return _components_simulator__WEBPACK_IMPORTED_MODULE_135__[\"simulatorDevices\"]; });\n\n// styles\n\n\n\n\n\nvar Version;\nVersion = \"\".concat(\"1.10.3\");\n\nsurvey_knockout__WEBPACK_IMPORTED_MODULE_5__[\"Serializer\"].removeClass(\"tagbox\"); // remove after tagbox implemented\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//localization\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//adorners\n\n\n\n\n\n// export\n\n\n\n\n\n\n// ui components\n\n\n\n\n\n\n\n\n\n\n// property grid\n\n\n\n\n\n// property editors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./src/expressionToDisplayText.ts\":\n/*!****************************************!*\\\n !*** ./src/expressionToDisplayText.ts ***!\n \\****************************************/\n/*! exports provided: ExpressionToDisplayText, ExpressionRemoveVariable */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpressionToDisplayText\", function() { return ExpressionToDisplayText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpressionRemoveVariable\", function() { return ExpressionRemoveVariable; });\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editorLocalization */ \"./src/editorLocalization.ts\");\n\n\nvar ExpressionToDisplayText = /** @class */ (function () {\n function ExpressionToDisplayText(survey, options) {\n if (options === void 0) { options = null; }\n this.survey = survey;\n this.options = options;\n }\n ExpressionToDisplayText.prototype.toDisplayText = function (expression) {\n if (!this.survey)\n return expression;\n this.showTitles =\n !!this.options && this.options.showTitlesInExpressions == true;\n var parser = new survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"ConditionsParser\"]();\n var node = parser.parseExpression(expression);\n if (!node)\n return expression;\n if (!!node[\"getType\"])\n return this.toDisplayTextCore(node);\n if (!this.showTitles)\n return expression;\n var variables = [];\n node.setVariables(variables);\n return this.replaceVariables(expression, variables);\n };\n ExpressionToDisplayText.prototype.toDisplayTextCore = function (node) {\n this.currentQuestion = null;\n var self = this;\n var isRoot = true;\n var strFunc = function (op) {\n var locIsRoot = isRoot;\n isRoot = false;\n if (self.showTitles && op.getType() == \"variable\") {\n return self.getQuestionText(op);\n }\n if (self.showTitles && op.getType() == \"const\") {\n return self.getDisplayText(op);\n }\n if (op.getType() == \"binary\") {\n self.proceedBinary(op);\n return self.getDisplayBinary(op, locIsRoot, strFunc);\n }\n if (op.getType() == \"unary\") {\n return self.getDisplayUnary(op, strFunc);\n }\n return undefined;\n };\n return node.toString(strFunc);\n };\n ExpressionToDisplayText.prototype.getQuestionText = function (op) {\n var question = this.getQuestionByName(op.variable);\n if (!question || !question.title)\n return undefined;\n return \"{\" + question.title + \"}\";\n };\n ExpressionToDisplayText.prototype.getDisplayText = function (op) {\n if (!this.currentQuestion)\n return undefined;\n var res = this.currentQuestion.getDisplayValue(true, op.correctValue);\n return !!res ? new survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"Const\"](res).toString() : undefined;\n };\n ExpressionToDisplayText.prototype.getDisplayOperand = function (op, func) {\n return !!op ? op.toString(func) : \"\";\n };\n ExpressionToDisplayText.prototype.getDisplayOperator = function (operator) {\n var res = ExpressionToDisplayText.operatorText[operator];\n if (!!res)\n return res;\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"editorLocalization\"].getString(\"op.\" + operator);\n };\n ExpressionToDisplayText.prototype.getDisplayBinary = function (op, isRoot, func) {\n return ((isRoot ? \"\" : \"(\") +\n this.getDisplayOperand(op.leftOperand, func) +\n \" \" +\n this.getDisplayOperator(op.operator) +\n \" \" +\n this.getDisplayOperand(op.rightOperand, func) +\n (isRoot ? \"\" : \")\"));\n };\n ExpressionToDisplayText.prototype.getDisplayUnary = function (op, func) {\n var exp = op.expression.toString(func);\n var operator = this.getDisplayOperator(op.operator);\n if (op.operator == \"empty\" || op.operator == \"notempty\")\n return exp + \" \" + operator;\n return operator + \" \" + exp;\n };\n ExpressionToDisplayText.prototype.proceedBinary = function (op) {\n if (op.isArithmetic || op.isConjunction) {\n this.currentQuestion = null;\n return;\n }\n this.currentQuestion = this.getQuestionFromOperands(op.leftOperand, op.rightOperand);\n if (!this.currentQuestion) {\n this.currentQuestion = this.getQuestionFromOperands(op.rightOperand, op.leftOperand);\n }\n };\n ExpressionToDisplayText.prototype.getQuestionFromOperands = function (op1, op2) {\n if (!op1 || !op2)\n return null;\n if (op1.getType() != \"variable\")\n return null;\n var op2Type = op2.getType();\n if (op2Type != \"const\" && op2Type != \"function\" && op2Type != \"array\")\n return null;\n return this.getQuestionByName(op1.variable);\n };\n ExpressionToDisplayText.prototype.replaceVariables = function (expression, variables) {\n for (var i = 0; i < variables.length; i++) {\n expression = this.replaceVariable(expression, variables[i]);\n }\n return expression;\n };\n ExpressionToDisplayText.prototype.replaceVariable = function (expression, variable) {\n var question = this.getQuestionByName(variable);\n if (!question || !question.title)\n return expression;\n return expression.replace(\"{\" + variable + \"}\", \"{\" + question.title + \"}\");\n };\n ExpressionToDisplayText.prototype.getQuestionByName = function (name) {\n return this.survey.getQuestionByValueName(name);\n };\n ExpressionToDisplayText.operatorText = {\n less: \"<\",\n lessorequal: \"<=\",\n greater: \">\",\n greaterorequal: \">=\",\n equal: \"==\",\n notequal: \"!=\",\n plus: \"+\",\n minus: \"-\",\n mul: \"*\",\n div: \"/\",\n power: \"^\",\n mod: \"%\",\n negate: \"!\",\n };\n return ExpressionToDisplayText;\n}());\n\nvar ExpressionRemoveVariable = /** @class */ (function () {\n function ExpressionRemoveVariable() {\n }\n ExpressionRemoveVariable.prototype.remove = function (expression, variable) {\n var parser = new survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"ConditionsParser\"]();\n var node = parser.parseExpression(expression);\n if (!node)\n return expression;\n this.wasRemoved = false;\n if (!!node[\"getType\"]) {\n var op = this.processOperand(node, variable);\n if (!this.wasRemoved)\n return expression;\n return !!op ? op.toString() : \"\";\n }\n return expression;\n };\n ExpressionRemoveVariable.prototype.processOperand = function (op, variable) {\n if (!op)\n return null;\n if (op.getType() == \"variable\") {\n return this.processVariable(op, variable);\n }\n if (op.getType() == \"unary\") {\n return this.processUnary(op, variable);\n }\n if (op.getType() == \"binary\") {\n return this.proceedBinary(op, variable);\n }\n return op;\n };\n ExpressionRemoveVariable.prototype.processVariable = function (op, variable) {\n if (op.variable !== variable)\n return op;\n this.wasRemoved = true;\n return null;\n };\n ExpressionRemoveVariable.prototype.processUnary = function (op, variable) {\n var expression = this.processOperand(op.expression, variable);\n if (!!expression)\n return op;\n this.wasRemoved = true;\n return null;\n };\n ExpressionRemoveVariable.prototype.proceedBinary = function (op, variable) {\n var left = this.processOperand(op.leftOperand, variable);\n var right = this.processOperand(op.rightOperand, variable);\n if (!!left && !!right) {\n if (left !== op.leftOperand || right !== op.rightOperand)\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"BinaryOperand\"](op.operator, left, right, op.isArithmetic);\n return op;\n }\n if (!left && !right)\n return null;\n var res = !!left ? left : right;\n return res.getType() == \"binary\" ? res : null;\n };\n return ExpressionRemoveVariable;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/extentions.ts\":\n/*!***************************!*\\\n !*** ./src/extentions.ts ***!\n \\***************************/\n/*! exports provided: Extentions */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Extentions\", function() { return Extentions; });\n/* harmony import */ var _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./propertyEditors/propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n\nvar Extentions = /** @class */ (function () {\n function Extentions() {\n }\n Extentions.registerCustomPropertyEditor = function (name, widgetJSON) {\n _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_0__[\"SurveyPropertyEditorFactory\"].registerCustomEditor(name, widgetJSON);\n };\n Extentions.unregisterCustomPropertyEditor = function (name) {\n _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_0__[\"SurveyPropertyEditorFactory\"].unregisterCustomEditor(name);\n };\n Extentions.registerPropertyEditor = function (name, creator) {\n _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_0__[\"SurveyPropertyEditorFactory\"].registerEditor(name, creator);\n };\n return Extentions;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/images/YouTube.png\":\n/*!********************************!*\\\n !*** ./src/images/YouTube.png ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE8AAAASCAYAAAAaJIOvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3RUUwNDQ4NjRERjExRTlBMTJBODcxOUEzRjhEQ0E1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQ3RUUwNDQ5NjRERjExRTlBMTJBODcxOUEzRjhEQ0E1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDdFRTA0NDY2NERGMTFFOUExMkE4NzE5QTNGOERDQTUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDdFRTA0NDc2NERGMTFFOUExMkE4NzE5QTNGOERDQTUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4EgFyAAAAHNUlEQVR42rxY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\"\n\n/***/ }),\n\n/***/ \"./src/images/start-designing-form.svg\":\n/*!*********************************************!*\\\n !*** ./src/images/start-designing-form.svg ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjAuMiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgMzAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzFDQjM5NDt9Cgkuc3Qxe29wYWNpdHk6MC4zO30KCS5zdDJ7ZmlsbDojMDEwMTAxO30KCS5zdDN7ZmlsbDojRkZGRkZGO30KCS5zdDR7ZmlsbDojRDZENUQ1O30KCS5zdDV7b3BhY2l0eTowLjM7ZmlsbDojMDEwMTAxO30KCS5zdDZ7ZmlsbDojRjg5ODFGO30KPC9zdHlsZT4KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMTUwLjk0IiBjeT0iMTQ5LjM1IiByPSIxMzQuMzMiLz4KPGc+Cgk8Zz4KCQk8ZyBjbGFzcz0ic3QxIj4KCQkJPHBvbHlnb24gY2xhc3M9InN0MiIgcG9pbnRzPSIxMjYuOCw3MyAxMjYuOCw3MyA4OC40NCw3MyA4OC40NCwyMDggMTk0LjQ0LDIwOCAxOTQuNDQsNzMgCQkJIi8+CgkJPC9nPgoJCTxyZWN0IHg9IjkzLjQ0IiB5PSI2OCIgY2xhc3M9InN0MyIgd2lkdGg9IjEwNiIgaGVpZ2h0PSIxMzUiLz4KCQk8Zz4KCQkJPGc+CgkJCQk8Zz4KCQkJCQk8cmVjdCB4PSIxMzUuNDQiIHk9IjE0MiIgY2xhc3M9InN0NCIgd2lkdGg9IjE3IiBoZWlnaHQ9IjQiLz4KCQkJCTwvZz4KCQkJCTxnPgoJCQkJCTxjaXJjbGUgY2xhc3M9InN0MyIgY3g9IjEyNC45NiIgY3k9IjE0My42NCIgcj0iNC42NCIvPgoJCQkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMjQuODIsMTQ5LjM1Yy0zLjA0LDAtNS41MS0yLjQ4LTUuNTEtNS41MWMwLTMuMDQsMi40OC01LjUxLDUuNTEtNS41MWMzLjA0LDAsNS41MSwyLjQ4LDUuNTEsNS41MQoJCQkJCQlDMTMwLjMzLDE0Ni44OCwxMjcuODYsMTQ5LjM1LDEyNC44MiwxNDkuMzV6IE0xMjQuODIsMTM5Ljk4Yy0yLjEzLDAtMy44NiwxLjczLTMuODYsMy44NnMxLjczLDMuODYsMy44NiwzLjg2CgkJCQkJCXMzLjg2LTEuNzMsMy44Ni0zLjg2QzEyOC42OCwxNDEuNzEsMTI2Ljk1LDEzOS45OCwxMjQuODIsMTM5Ljk4eiIvPgoJCQkJPC9nPgoJCQkJPGc+CgkJCQkJPGc+CgkJCQkJCTxjaXJjbGUgY2xhc3M9InN0MyIgY3g9IjEyNC44MiIgY3k9IjE0My44NCIgcj0iMC44MyIvPgoJCQkJCTwvZz4KCQkJCQk8Zz4KCQkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNC44MiwxNDMuODRMMTI0LjgyLDE0My44NEwxMjQuODIsMTQzLjg0IE0xMjQuODIsMTQyLjE4Yy0wLjkyLDAtMS42NSwwLjc0LTEuNjUsMS42NQoJCQkJCQkJYzAsMC45MiwwLjc0LDEuNjUsMS42NSwxLjY1YzAuOTIsMCwxLjY1LTAuNzQsMS42NS0xLjY1QzEyNi40NywxNDIuOTIsMTI1LjczLDE0Mi4xOCwxMjQuODIsMTQyLjE4TDEyNC44MiwxNDIuMTh6Ii8+CgkJCQkJPC9nPgoJCQkJPC9nPgoJCQk8L2c+CgkJCTxnPgoJCQkJPGc+CgkJCQkJPHJlY3QgeD0iMTc0LjQ0IiB5PSIxNDIiIGNsYXNzPSJzdDQiIHdpZHRoPSIxNyIgaGVpZ2h0PSI0Ii8+CgkJCQk8L2c+CgkJCQk8Zz4KCQkJCQk8Y2lyY2xlIGNsYXNzPSJzdDMiIGN4PSIxNjQuMzIiIGN5PSIxNDMuNjQiIHI9IjQuNjQiLz4KCQkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTY0LjI1LDE0OS4zNWMtMy4wNCwwLTUuNTEtMi40OC01LjUxLTUuNTFjMC0zLjA0LDIuNDgtNS41MSw1LjUxLTUuNTFjMy4wNCwwLDUuNTEsMi40OCw1LjUxLDUuNTEKCQkJCQkJQzE2OS43NywxNDYuODgsMTY3LjMsMTQ5LjM1LDE2NC4yNSwxNDkuMzV6IE0xNjQuMjUsMTM5Ljk4Yy0yLjEzLDAtMy44NiwxLjczLTMuODYsMy44NnMxLjczLDMuODYsMy44NiwzLjg2CgkJCQkJCXMzLjg2LTEuNzMsMy44Ni0zLjg2QzE2OC4xMiwxNDEuNzEsMTY2LjM5LDEzOS45OCwxNjQuMjUsMTM5Ljk4eiIvPgoJCQkJPC9nPgoJCQkJPGc+CgkJCQkJPGc+CgkJCQkJCTxjaXJjbGUgY2xhc3M9InN0MyIgY3g9IjE2NC4yNSIgY3k9IjE0My44NCIgcj0iMC44MyIvPgoJCQkJCTwvZz4KCQkJCQk8Zz4KCQkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE2NC4yNSwxNDMuODRMMTY0LjI1LDE0My44NEwxNjQuMjUsMTQzLjg0IE0xNjQuMjUsMTQyLjE4Yy0wLjkyLDAtMS42NSwwLjc0LTEuNjUsMS42NQoJCQkJCQkJYzAsMC45MiwwLjc0LDEuNjUsMS42NSwxLjY1YzAuOTIsMCwxLjY1LTAuNzQsMS42NS0xLjY1QzE2NS45MSwxNDIuOTIsMTY1LjE3LDE0Mi4xOCwxNjQuMjUsMTQyLjE4TDE2NC4yNSwxNDIuMTh6Ii8+CgkJCQkJPC9nPgoJCQkJPC9nPgoJCQk8L2c+CgkJCTxnPgoJCQkJPGc+CgkJCQkJPHJlY3QgeD0iMTc0LjQ0IiB5PSIxNTciIGNsYXNzPSJzdDQiIHdpZHRoPSIxNyIgaGVpZ2h0PSI0Ii8+CgkJCQk8L2c+CgkJCQk8Zz4KCQkJCQk8Y2lyY2xlIGNsYXNzPSJzdDMiIGN4PSIxNjQuMzIiIGN5PSIxNTkuMTEiIHI9IjQuNjQiLz4KCQkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTY0LjI1LDE2NC44Yy0zLjA0LDAtNS41MS0yLjQ4LTUuNTEtNS41MWMwLTMuMDQsMi40OC01LjUxLDUuNTEtNS41MWMzLjA0LDAsNS41MSwyLjQ4LDUuNTEsNS41MQoJCQkJCQlTMTY3LjMsMTY0LjgsMTY0LjI1LDE2NC44eiBNMTY0LjI1LDE1NS40MmMtMi4xMywwLTMuODYsMS43My0zLjg2LDMuODZzMS43MywzLjg2LDMuODYsMy44NnMzLjg2LTEuNzMsMy44Ni0zLjg2CgkJCQkJCUMxNjguMTIsMTU3LjE1LDE2Ni4zOSwxNTUuNDIsMTY0LjI1LDE1NS40MnoiLz4KCQkJCTwvZz4KCQkJCTxnPgoJCQkJCTxnPgoJCQkJCQk8Y2lyY2xlIGNsYXNzPSJzdDMiIGN4PSIxNjQuMjUiIGN5PSIxNTkuMjgiIHI9IjAuODMiLz4KCQkJCQk8L2c+CgkJCQkJPGc+CgkJCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjQuMjUsMTU5LjI4TDE2NC4yNSwxNTkuMjhMMTY0LjI1LDE1OS4yOCBNMTY0LjI1LDE1Ny42MmMtMC45MiwwLTEuNjUsMC43NC0xLjY1LDEuNjUKCQkJCQkJCWMwLDAuOTIsMC43NCwxLjY1LDEuNjUsMS42NWMwLjkyLDAsMS42NS0wLjc0LDEuNjUtMS42NUMxNjUuOTEsMTU4LjM3LDE2NS4xNywxNTcuNjIsMTY0LjI1LDE1Ny42MkwxNjQuMjUsMTU3LjYyeiIvPgoJCQkJCTwvZz4KCQkJCTwvZz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxnPgoJCQkJCTxyZWN0IHg9IjEzNS40NCIgeT0iMTU3IiBjbGFzcz0ic3Q0IiB3aWR0aD0iMTciIGhlaWdodD0iNCIvPgoJCQkJPC9nPgoJCQkJPGc+CgkJCQkJPGNpcmNsZSBjbGFzcz0ic3QzIiBjeD0iMTI0Ljk2IiBjeT0iMTU5LjExIiByPSI0LjY0Ii8+CgkJCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEyNC44MiwxNjQuOGMtMy4wNCwwLTUuNTEtMi40OC01LjUxLTUuNTFjMC0zLjA0LDIuNDgtNS41MSw1LjUxLTUuNTFjMy4wNCwwLDUuNTEsMi40OCw1LjUxLDUuNTEKCQkJCQkJQzEzMC4zMywxNjIuMzIsMTI3Ljg2LDE2NC44LDEyNC44MiwxNjQuOHogTTEyNC44MiwxNTUuNDJjLTIuMTMsMC0zLjg2LDEuNzMtMy44NiwzLjg2czEuNzMsMy44NiwzLjg2LDMuODYKCQkJCQkJczMuODYtMS43MywzLjg2LTMuODZDMTI4LjY4LDE1Ny4xNSwxMjYuOTUsMTU1LjQyLDEyNC44MiwxNTUuNDJ6Ii8+CgkJCQk8L2c+CgkJCQk8Zz4KCQkJCQk8Zz4KCQkJCQkJPGNpcmNsZSBjbGFzcz0ic3QzIiBjeD0iMTI0LjgyIiBjeT0iMTU5LjI4IiByPSIwLjgzIi8+CgkJCQkJPC9nPgoJCQkJCTxnPgoJCQkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTI0LjgyLDE1OS4yOEwxMjQuODIsMTU5LjI4TDEyNC44MiwxNTkuMjggTTEyNC44MiwxNTcuNjJjLTAuOTIsMC0xLjY1LDAuNzQtMS42NSwxLjY1CgkJCQkJCQljMCwwLjkyLDAuNzQsMS42NSwxLjY1LDEuNjVjMC45MiwwLDEuNjUtMC43NCwxLjY1LTEuNjVTMTI1LjczLDE1Ny42MiwxMjQuODIsMTU3LjYyTDEyNC44MiwxNTcuNjJ6Ii8+CgkJCQkJPC9nPgoJCQkJPC9nPgoJCQk8L2c+CgkJPC9nPgoJCTxnPgoJCQk8Zz4KCQkJCTxnPgoJCQkJCTxyZWN0IHg9IjEyMC40NCIgeT0iODMiIGNsYXNzPSJzdDMiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiLz4KCQkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTI5LjQ0LDg0djhoLTh2LThIMTI5LjQ0IE0xMzEuNDQsODJoLTEydjEyaDEyVjgyTDEzMS40NCw4MnoiLz4KCQkJCTwvZz4KCQkJCTxyZWN0IHg9IjEzNy40NCIgeT0iODIiIGNsYXNzPSJzdDQiIHdpZHRoPSI1NCIgaGVpZ2h0PSI0Ii8+CgkJCQk8cmVjdCB4PSIxMzcuNDQiIHk9IjkwIiBjbGFzcz0ic3Q0IiB3aWR0aD0iNTQiIGhlaWdodD0iNCIvPgoJCQkJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIxMzIuMTEsODQuNzUgMTMyLjExLDg0Ljc1IDEzMS4xMyw4My43OCAxMjYuMTcsODguNzQgMTIzLjg2LDg2LjQyIDEyMi44OCw4Ny4zOSAxMjYuMTcsOTAuNjkgCQkJCQoJCQkJCSIvPgoJCQkJPGc+CgkJCQkJPHJlY3QgeD0iMTIwLjQ0IiB5PSIxMDAiIGNsYXNzPSJzdDMiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiLz4KCQkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTI5LjQ0LDEwMXY4aC04di04SDEyOS40NCBNMTMxLjQ0LDk5aC0xMnYxMmgxMlY5OUwxMzEuNDQsOTl6Ii8+CgkJCQk8L2c+CgkJCQk8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjEzMi4xMSwxMDEuNzUgMTMyLjExLDEwMS43NSAxMzEuMTMsMTAwLjc4IDEyNi4xNywxMDUuNzQgMTIzLjg2LDEwMy40MiAxMjIuODgsMTA0LjM5IAoJCQkJCTEyNi4xNywxMDcuNjkgCQkJCSIvPgoJCQkJPGc+CgkJCQkJPHJlY3QgeD0iMTIwLjQ0IiB5PSIxMTciIGNsYXNzPSJzdDMiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiLz4KCQkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTI5LjQ0LDExOHY4aC04di04SDEyOS40NCBNMTMxLjQ0LDExNmgtMTJ2MTJoMTJWMTE2TDEzMS40NCwxMTZ6Ii8+CgkJCQk8L2c+CgkJCQk8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjEzMi4xMSwxMTguNzUgMTMyLjExLDExOC43NSAxMzEuMTMsMTE3Ljc4IDEyNi4xNywxMjIuNzQgMTIzLjg2LDEyMC40MiAxMjIuODgsMTIxLjM5IAoJCQkJCTEyNi4xNywxMjQuNjkgCQkJCSIvPgoJCQkJPGc+CgkJCQkJPHJlY3QgeD0iMTM3LjQ0IiB5PSIxMDMiIGNsYXNzPSJzdDQiIHdpZHRoPSI1NCIgaGVpZ2h0PSI0Ii8+CgkJCQk8L2c+CgkJCQk8Zz4KCQkJCQk8cmVjdCB4PSIxMzcuNDQiIHk9IjExNiIgY2xhc3M9InN0NCIgd2lkdGg9IjU0IiBoZWlnaHQ9IjQiLz4KCQkJCQk8cmVjdCB4PSIxMzcuNDQiIHk9IjEyNCIgY2xhc3M9InN0NCIgd2lkdGg9IjI3IiBoZWlnaHQ9IjQiLz4KCQkJCTwvZz4KCQkJPC9nPgoJCTwvZz4KCQk8Zz4KCQkJPHBhdGggY2xhc3M9InN0NCIgZD0iTTEwNC40NCw5M2gtMnYtOC4xYy0wLjg1LDAuNzMtMS44NSwxLjI4LTMsMS42M3YtMS43NWMwLjU3LTAuMTgsMS4xOS0wLjUyLDEuODYtMS4wMgoJCQkJYzAuNjctMC41LDEuMTMtMS4wOCwxLjM3LTEuNzVoMS43N1Y5M3oiLz4KCQkJPHBhdGggY2xhc3M9InN0NCIgZD0iTTEwOC40NCw5M3YtMmgydjJIMTA4LjQ0eiIvPgoJCTwvZz4KCQk8Zz4KCQkJPHBhdGggY2xhc3M9InN0NCIgZD0iTTEwNi40NCwxNDd2Mkg5OC45YzAuMDgtMC43NiwwLjMzLTEuNDcsMC43NC0yLjE1YzAuNDEtMC42OCwxLjIyLTEuNTcsMi40Mi0yLjY5CgkJCQljMC45Ny0wLjksMS41Ny0xLjUyLDEuNzktMS44NGMwLjMtMC40NCwwLjQ0LTAuODgsMC40NC0xLjMyYzAtMC40OC0wLjEzLTAuODUtMC4zOS0xLjExYy0wLjI2LTAuMjYtMC42MS0wLjM5LTEuMDctMC4zOQoJCQkJYy0wLjQ1LDAtMC44MSwwLjE0LTEuMDcsMC40MWMtMC4yNywwLjI3LTAuNDIsMC43Mi0wLjQ2LDEuMzVsLTIuMTUtMC4yMWMwLjEzLTEuMTksMC41My0yLjA0LDEuMi0yLjU1CgkJCQljMC42Ny0wLjUyLDEuNTItMC43NywyLjUzLTAuNzdjMS4xMSwwLDEuOTgsMC4zLDIuNjEsMC45YzAuNjMsMC42LDAuOTUsMS4zNCwwLjk1LDIuMjNjMCwwLjUxLTAuMDksMC45OS0wLjI3LDEuNDQKCQkJCWMtMC4xOCwwLjQ2LTAuNDcsMC45NC0wLjg2LDEuNDRjLTAuMjYsMC4zMy0wLjczLDAuODEtMS40MSwxLjQzYy0wLjY4LDAuNjItMS4xMSwxLjA0LTEuMjksMS4yNGMtMC4xOCwwLjItMC4zMywwLjQtMC40NCwwLjYKCQkJCUgxMDYuNDR6Ii8+CgkJCTxwYXRoIGNsYXNzPSJzdDQiIGQ9Ik0xMDguNDQsMTQ5di0yaDJ2MkgxMDguNDR6Ii8+CgkJPC9nPgoJCTxnPgoJCQk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNOTguODMsMTg1LjIxbDIuMDgtMC4yNWMwLjA3LDAuNTMsMC4yNCwwLjk0LDAuNTQsMS4yMmMwLjI5LDAuMjgsMC42NCwwLjQyLDEuMDYsMC40MgoJCQkJYzAuNDQsMCwwLjgyLTAuMTcsMS4xMi0wLjVjMC4zLTAuMzQsMC40Ni0wLjc5LDAuNDYtMS4zNmMwLTAuNTQtMC4xNS0wLjk3LTAuNDQtMS4yOWMtMC4yOS0wLjMyLTAuNjUtMC40Ny0xLjA2LTAuNDcKCQkJCWMtMC4yOCwwLTAuNiwwLjA1LTAuOTksMC4xNmwwLjI0LTEuNzVjMC41OCwwLjAyLDEuMDMtMC4xMSwxLjMzLTAuMzhjMC4zMS0wLjI3LDAuNDYtMC42MiwwLjQ2LTEuMDdjMC0wLjM4LTAuMTEtMC42OC0wLjM0LTAuOQoJCQkJYy0wLjIyLTAuMjItMC41Mi0wLjM0LTAuOS0wLjM0Yy0wLjM3LDAtMC42OCwwLjEzLTAuOTQsMC4zOGMtMC4yNiwwLjI2LTAuNDIsMC42My0wLjQ3LDEuMTJsLTEuOTgtMC4zNAoJCQkJYzAuMTQtMC42OCwwLjM1LTEuMjIsMC42Mi0xLjYzYzAuMjgtMC40MSwwLjY3LTAuNzIsMS4xNi0wLjk2YzAuNS0wLjIzLDEuMDUtMC4zNSwxLjY3LTAuMzVjMS4wNiwwLDEuOSwwLjM0LDIuNTQsMS4wMQoJCQkJYzAuNTMsMC41NSwwLjc5LDEuMTcsMC43OSwxLjg3YzAsMC45OC0wLjU0LDEuNzctMS42MSwyLjM2YzAuNjQsMC4xNCwxLjE2LDAuNDUsMS41NCwwLjkzYzAuMzksMC40OCwwLjU4LDEuMDYsMC41OCwxLjc0CgkJCQljMCwwLjk4LTAuMzYsMS44Mi0xLjA4LDIuNTJjLTAuNzIsMC42OS0xLjYxLDEuMDQtMi42OSwxLjA0Yy0xLjAyLDAtMS44Ni0wLjI5LTIuNTMtMC44OFM5OC45NCwxODYuMTYsOTguODMsMTg1LjIxeiIvPgoJCQk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNMTA4LjQ0LDE4OHYtMmgydjJIMTA4LjQ0eiIvPgoJCTwvZz4KCQk8cmVjdCB4PSIxMTkuNDQiIHk9IjE3NyIgY2xhc3M9InN0NCIgd2lkdGg9IjcyIiBoZWlnaHQ9IjExIi8+CgkJPGNpcmNsZSBjbGFzcz0ic3Q1IiBjeD0iMTk4LjYiIGN5PSIyMDYuMjQiIHI9IjM1LjE1Ii8+CgkJPGc+CgkJCTxjaXJjbGUgY2xhc3M9InN0NiIgY3g9IjIwMy40NCIgY3k9IjIwMyIgcj0iMzUiLz4KCQkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTIwMy40NCwyMjZMMjAzLjQ0LDIyNmMtMi4yLDAtNC0xLjgtNC00di0zOGMwLTIuMiwxLjgtNCw0LTRsMCwwYzIuMiwwLDQsMS44LDQsNHYzOAoJCQkJQzIwNy40NCwyMjQuMiwyMDUuNjQsMjI2LDIwMy40NCwyMjZ6Ii8+CgkJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xODAuNDQsMjAzTDE4MC40NCwyMDNjMC0yLjIsMS44LTQsNC00aDM4YzIuMiwwLDQsMS44LDQsNGwwLDBjMCwyLjItMS44LDQtNCw0aC0zOAoJCQkJQzE4Mi4yNCwyMDcsMTgwLjQ0LDIwNS4yLDE4MC40NCwyMDN6Ii8+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=\"\n\n/***/ }),\n\n/***/ \"./src/json5.ts\":\n/*!**********************!*\\\n !*** ./src/json5.ts ***!\n \\**********************/\n/*! exports provided: SurveyJSON5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyJSON5\", function() { return SurveyJSON5; });\n// This file is based on JSON5, http://json5.org/\n// The modification for getting object and properties location 'at' were maden.\nvar SurveyJSON5 = /** @class */ (function () {\n function SurveyJSON5(parseType) {\n if (parseType === void 0) { parseType = 0; }\n this.parseType = parseType;\n }\n SurveyJSON5.prototype.parse = function (source, reviver, startFrom, endAt) {\n if (reviver === void 0) { reviver = null; }\n if (startFrom === void 0) { startFrom = 0; }\n if (endAt === void 0) { endAt = -1; }\n var result;\n this.text = String(source);\n this.at = startFrom;\n this.endAt = endAt;\n this.ch = \" \";\n result = this.value();\n this.white();\n if (this.ch) {\n this.error(\"Syntax error\");\n }\n // If there is a reviver function, we recursively walk the new structure,\n // passing each name/value pair to the reviver function for possible\n // transformation, starting with a temporary root object that holds the result\n // in an empty key. If there is not a reviver function, we simply return the\n // result.\n return typeof reviver === \"function\"\n ? (function walk(holder, key) {\n var k, v, value = holder[key];\n if (value && typeof value === \"object\") {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n }\n else {\n delete value[k];\n }\n }\n }\n }\n return reviver.call(holder, key, value);\n })({ \"\": result }, \"\")\n : result;\n };\n SurveyJSON5.prototype.error = function (m) {\n // Call error when something is wrong.\n var error = new SyntaxError();\n error.message = m;\n error[\"at\"] = this.at;\n throw error;\n };\n SurveyJSON5.prototype.next = function (c) {\n if (c === void 0) { c = null; }\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== this.ch) {\n this.error(\"Expected '\" + c + \"' instead of '\" + this.ch + \"'\");\n }\n // Get the this.next character. When there are no more characters,\n // return the empty string.\n this.ch = this.chartAt();\n this.at += 1;\n return this.ch;\n };\n SurveyJSON5.prototype.peek = function () {\n // Get the this.next character without consuming it or\n // assigning it to the this.ch varaible.\n return this.chartAt();\n };\n SurveyJSON5.prototype.chartAt = function () {\n if (this.endAt > -1 && this.at >= this.endAt)\n return \"\";\n return this.text.charAt(this.at);\n };\n SurveyJSON5.prototype.identifier = function () {\n // Parse an identifier. Normally, reserved words are disallowed here, but we\n // only use this for unquoted object keys, where reserved words are allowed,\n // so we don't check for those here. References:\n // - http://es5.github.com/#x7.6\n // - https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Variables\n // - http://docstore.mik.ua/orelly/webprog/jscript/ch02_07.htm\n // TODO Identifiers can have Unicode \"letters\" in them; add support for those.\n var key = this.ch;\n // Identifiers must start with a letter, _ or $.\n if (this.ch !== \"_\" &&\n this.ch !== \"$\" &&\n (this.ch < \"a\" || this.ch > \"z\") &&\n (this.ch < \"A\" || this.ch > \"Z\")) {\n this.error(\"Bad identifier\");\n }\n // Subsequent characters can contain digits.\n while (this.next() &&\n (this.ch === \"_\" ||\n this.ch === \"$\" ||\n (this.ch >= \"a\" && this.ch <= \"z\") ||\n (this.ch >= \"A\" && this.ch <= \"Z\") ||\n (this.ch >= \"0\" && this.ch <= \"9\"))) {\n key += this.ch;\n }\n return key;\n };\n SurveyJSON5.prototype.number = function () {\n // Parse a number value.\n var number, sign = \"\", string = \"\", base = 10;\n if (this.ch === \"-\" || this.ch === \"+\") {\n sign = this.ch;\n this.next(this.ch);\n }\n // support for Infinity (could tweak to allow other words):\n if (this.ch === \"I\") {\n number = this.word();\n if (typeof number !== \"number\" || isNaN(number)) {\n this.error(\"Unexpected word for number\");\n }\n return sign === \"-\" ? -number : number;\n }\n // support for NaN\n if (this.ch === \"N\") {\n number = this.word();\n if (!isNaN(number)) {\n this.error(\"expected word to be NaN\");\n }\n // ignore sign as -NaN also is NaN\n return number;\n }\n if (this.ch === \"0\") {\n string += this.ch;\n this.next();\n if (this.ch === \"x\" || this.ch === \"X\") {\n string += this.ch;\n this.next();\n base = 16;\n }\n else if (this.ch >= \"0\" && this.ch <= \"9\") {\n this.error(\"Octal literal\");\n }\n }\n switch (base) {\n case 10:\n while (this.ch >= \"0\" && this.ch <= \"9\") {\n string += this.ch;\n this.next();\n }\n if (this.ch === \".\") {\n string += \".\";\n while (this.next() && this.ch >= \"0\" && this.ch <= \"9\") {\n string += this.ch;\n }\n }\n if (this.ch === \"e\" || this.ch === \"E\") {\n string += this.ch;\n this.next();\n if (this.ch === \"-\" || this.ch === \"+\") {\n string += this.ch;\n this.next();\n }\n while (this.ch >= \"0\" && this.ch <= \"9\") {\n string += this.ch;\n this.next();\n }\n }\n break;\n case 16:\n while ((this.ch >= \"0\" && this.ch <= \"9\") ||\n (this.ch >= \"A\" && this.ch <= \"F\") ||\n (this.ch >= \"a\" && this.ch <= \"f\")) {\n string += this.ch;\n this.next();\n }\n break;\n }\n if (sign === \"-\") {\n number = -string;\n }\n else {\n number = +string;\n }\n if (!isFinite(number)) {\n this.error(\"Bad number\");\n }\n else {\n return number;\n }\n };\n SurveyJSON5.prototype.string = function () {\n // Parse a string value.\n var hex, i, string = \"\", delim, // double quote or single quote\n uffff;\n // When parsing for string values, we must look for ' or \" and \\ characters.\n if (this.ch === '\"' || this.ch === \"'\") {\n delim = this.ch;\n while (this.next()) {\n if (this.ch === delim) {\n this.next();\n return string;\n }\n else if (this.ch === \"\\\\\") {\n this.next();\n if (this.ch === \"u\") {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(this.next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n }\n else if (this.ch === \"\\r\") {\n if (this.peek() === \"\\n\") {\n this.next();\n }\n }\n else if (typeof SurveyJSON5.escapee[this.ch] === \"string\") {\n string += SurveyJSON5.escapee[this.ch];\n }\n else {\n break;\n }\n }\n else if (this.ch === \"\\n\") {\n // unescaped newlines are invalid; see:\n // https://github.com/aseemk/json5/issues/24\n // TODO this feels special-cased; are there other\n // invalid unescaped chars?\n break;\n }\n else {\n string += this.ch;\n }\n }\n }\n this.error(\"Bad string\");\n };\n SurveyJSON5.prototype.inlineComment = function () {\n // Skip an inline comment, assuming this is one. The current character should\n // be the second / character in the // pair that begins this inline comment.\n // To finish the inline comment, we look for a newline or the end of the text.\n if (this.ch !== \"/\") {\n this.error(\"Not an inline comment\");\n }\n do {\n this.next();\n if (this.ch === \"\\n\" || this.ch === \"\\r\") {\n this.next();\n return;\n }\n } while (this.ch);\n };\n SurveyJSON5.prototype.blockComment = function () {\n // Skip a block comment, assuming this is one. The current character should be\n // the * character in the /* pair that begins this block comment.\n // To finish the block comment, we look for an ending */ pair of characters,\n // but we also watch for the end of text before the comment is terminated.\n if (this.ch !== \"*\") {\n this.error(\"Not a block comment\");\n }\n do {\n this.next();\n while (this.ch === \"*\") {\n this.next(\"*\");\n if (this.ch === \"/\") {\n this.next(\"/\");\n return;\n }\n }\n } while (this.ch);\n this.error(\"Unterminated block comment\");\n };\n SurveyJSON5.prototype.comment = function () {\n // Skip a comment, whether inline or block-level, assuming this is one.\n // Comments always begin with a / character.\n if (this.ch !== \"/\") {\n this.error(\"Not a comment\");\n }\n this.next(\"/\");\n if (this.ch === \"/\") {\n this.inlineComment();\n }\n else if (this.ch === \"*\") {\n this.blockComment();\n }\n else {\n this.error(\"Unrecognized comment\");\n }\n };\n SurveyJSON5.prototype.white = function () {\n // Skip whitespace and comments.\n // Note that we're detecting comments by only a single / character.\n // This works since regular expressions are not valid JSON(5), but this will\n // break if there are other valid values that begin with a / character!\n while (this.ch) {\n if (this.ch === \"/\") {\n this.comment();\n }\n else if (SurveyJSON5.ws.indexOf(this.ch) >= 0) {\n this.next();\n }\n else {\n return;\n }\n }\n };\n SurveyJSON5.prototype.word = function () {\n // true, false, or null.\n switch (this.ch) {\n case \"t\":\n this.next(\"t\");\n this.next(\"r\");\n this.next(\"u\");\n this.next(\"e\");\n return true;\n case \"f\":\n this.next(\"f\");\n this.next(\"a\");\n this.next(\"l\");\n this.next(\"s\");\n this.next(\"e\");\n return false;\n case \"n\":\n this.next(\"n\");\n this.next(\"u\");\n this.next(\"l\");\n this.next(\"l\");\n return null;\n case \"I\":\n this.next(\"I\");\n this.next(\"n\");\n this.next(\"f\");\n this.next(\"i\");\n this.next(\"n\");\n this.next(\"i\");\n this.next(\"t\");\n this.next(\"y\");\n return Infinity;\n case \"N\":\n this.next(\"N\");\n this.next(\"a\");\n this.next(\"N\");\n return NaN;\n }\n this.error(\"Unexpected '\" + this.ch + \"'\");\n };\n SurveyJSON5.prototype.array = function () {\n // Parse an array value.\n var array = [];\n if (this.ch === \"[\") {\n this.next(\"[\");\n this.white();\n while (this.ch) {\n if (this.ch === \"]\") {\n this.next(\"]\");\n return array; // Potentially empty array\n }\n // ES5 allows omitting elements in arrays, e.g. [,] and\n // [,null]. We don't allow this in JSON5.\n if (this.ch === \",\") {\n this.error(\"Missing array element\");\n }\n else {\n array.push(this.value());\n }\n this.white();\n // If there's no comma after this value, this needs to\n // be the end of the array.\n if (this.ch !== \",\") {\n this.next(\"]\");\n return array;\n }\n this.next(\",\");\n this.white();\n }\n }\n this.error(\"Bad array\");\n };\n SurveyJSON5.prototype.object = function () {\n // Parse an object value.\n var key, start, isFirstProperty = true, object = {};\n if (this.parseType > 0) {\n object[SurveyJSON5.positionName] = { start: this.at - 1 };\n }\n if (this.ch === \"{\") {\n this.next(\"{\");\n this.white();\n start = this.at - 1;\n while (this.ch) {\n if (this.ch === \"}\") {\n if (this.parseType > 0) {\n object[SurveyJSON5.positionName].end = start;\n }\n this.next(\"}\");\n return object; // Potentially empty object\n }\n // Keys can be unquoted. If they are, they need to be\n // valid JS identifiers.\n if (this.ch === '\"' || this.ch === \"'\") {\n key = this.string();\n }\n else {\n key = this.identifier();\n }\n this.white();\n if (this.parseType > 1) {\n object[SurveyJSON5.positionName][key] = {\n start: start,\n valueStart: this.at\n };\n }\n this.next(\":\");\n object[key] = this.value();\n if (this.parseType > 1) {\n start = this.at - 1;\n object[SurveyJSON5.positionName][key].valueEnd = start;\n object[SurveyJSON5.positionName][key].end = start;\n }\n this.white();\n // If there's no comma after this pair, this needs to be\n // the end of the object.\n if (this.ch !== \",\") {\n if (this.parseType > 1) {\n object[SurveyJSON5.positionName][key].valueEnd--;\n object[SurveyJSON5.positionName][key].end--;\n }\n if (this.parseType > 0) {\n object[SurveyJSON5.positionName].end = this.at - 1;\n }\n this.next(\"}\");\n return object;\n }\n if (this.parseType > 1) {\n object[SurveyJSON5.positionName][key].valueEnd--;\n if (!isFirstProperty) {\n object[SurveyJSON5.positionName][key].end--;\n }\n }\n this.next(\",\");\n this.white();\n isFirstProperty = false;\n }\n }\n this.error(\"Bad object\");\n };\n SurveyJSON5.prototype.value = function () {\n // Parse a JSON value. It could be an object, an array, a string, a number,\n // or a word.\n this.white();\n switch (this.ch) {\n case \"{\":\n return this.object();\n case \"[\":\n return this.array();\n case '\"':\n case \"'\":\n return this.string();\n case \"-\":\n case \"+\":\n case \".\":\n return this.number();\n default:\n return this.ch >= \"0\" && this.ch <= \"9\" ? this.number() : this.word();\n }\n };\n SurveyJSON5.prototype.stringify = function (obj, replacer, space) {\n if (replacer === void 0) { replacer = null; }\n if (space === void 0) { space = null; }\n if (replacer &&\n (typeof replacer !== \"function\" && !this.isArray(replacer))) {\n throw new Error(\"Replacer must be a function or an array\");\n }\n this.replacer = replacer;\n this.indentStr = this.getIndent(space);\n this.objStack = [];\n // special case...when undefined is used inside of\n // a compound object/array, return null.\n // but when top-level, return undefined\n var topLevelHolder = { \"\": obj };\n if (obj === undefined) {\n return this.getReplacedValueOrUndefined(topLevelHolder, \"\", true);\n }\n return this.internalStringify(topLevelHolder, \"\", true);\n };\n SurveyJSON5.prototype.getIndent = function (space) {\n if (space) {\n if (typeof space === \"string\") {\n return space;\n }\n else if (typeof space === \"number\" && space >= 0) {\n return this.makeIndent(\" \", space, true);\n }\n }\n return \"\";\n };\n SurveyJSON5.prototype.getReplacedValueOrUndefined = function (holder, key, isTopLevel) {\n var value = holder[key];\n // Replace the value with its toJSON value first, if possible\n if (value && value.toJSON && typeof value.toJSON === \"function\") {\n value = value.toJSON();\n }\n // If the user-supplied replacer if a function, call it. If its an array, check objects' string keys for\n // presence in the array (removing the key/value pair from the resulting JSON if the key is missing).\n if (typeof this.replacer === \"function\") {\n return this.replacer.call(holder, key, value);\n }\n else if (this.replacer) {\n if (isTopLevel ||\n this.isArray(holder) ||\n this.replacer.indexOf(key) >= 0) {\n return value;\n }\n else {\n return undefined;\n }\n }\n else {\n return value;\n }\n };\n SurveyJSON5.prototype.isWordChar = function (char) {\n return ((char >= \"a\" && char <= \"z\") ||\n (char >= \"A\" && char <= \"Z\") ||\n (char >= \"0\" && char <= \"9\") ||\n char === \"_\" ||\n char === \"$\");\n };\n SurveyJSON5.prototype.isWordStart = function (char) {\n return ((char >= \"a\" && char <= \"z\") ||\n (char >= \"A\" && char <= \"Z\") ||\n char === \"_\" ||\n char === \"$\");\n };\n SurveyJSON5.prototype.isWord = function (key) {\n if (typeof key !== \"string\") {\n return false;\n }\n if (!this.isWordStart(key[0])) {\n return false;\n }\n var i = 1, length = key.length;\n while (i < length) {\n if (!this.isWordChar(key[i])) {\n return false;\n }\n i++;\n }\n return true;\n };\n // polyfills\n SurveyJSON5.prototype.isArray = function (obj) {\n if (Array.isArray) {\n return Array.isArray(obj);\n }\n else {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }\n };\n SurveyJSON5.prototype.isDate = function (obj) {\n return Object.prototype.toString.call(obj) === \"[object Date]\";\n };\n SurveyJSON5.prototype.isNaN = function (val) {\n return typeof val === \"number\" && val !== val;\n };\n SurveyJSON5.prototype.checkForCircular = function (obj) {\n for (var i = 0; i < this.objStack.length; i++) {\n if (this.objStack[i] === obj) {\n throw new TypeError(\"Converting circular structure to JSON\");\n }\n }\n };\n SurveyJSON5.prototype.makeIndent = function (str, num, noNewLine) {\n if (noNewLine === void 0) { noNewLine = false; }\n if (!str) {\n return \"\";\n }\n // indentation no more than 10 chars\n if (str.length > 10) {\n str = str.substring(0, 10);\n }\n var indent = noNewLine ? \"\" : \"\\n\";\n for (var i = 0; i < num; i++) {\n indent += str;\n }\n return indent;\n };\n SurveyJSON5.prototype.escapeString = function (str) {\n // If the string contains no control characters, no quote characters, and no\n // backslash characters, then we can safely slap some quotes around it.\n // Otherwise we must also replace the offending characters with safe escape\n // sequences.\n SurveyJSON5.escapable.lastIndex = 0;\n return SurveyJSON5.escapable.test(str)\n ? '\"' +\n str.replace(SurveyJSON5.escapable, function (a) {\n var c = SurveyJSON5.meta[a];\n return typeof c === \"string\"\n ? c\n : \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n }) +\n '\"'\n : '\"' + str + '\"';\n };\n // End\n SurveyJSON5.prototype.internalStringify = function (holder, key, isTopLevel) {\n var buffer, res;\n // Replace the value, if necessary\n var obj_part = this.getReplacedValueOrUndefined(holder, key, isTopLevel);\n if (obj_part && !this.isDate(obj_part)) {\n // unbox objects\n // don't unbox dates, since will turn it into number\n obj_part = obj_part.valueOf();\n }\n switch (typeof obj_part) {\n case \"boolean\":\n return obj_part.toString();\n case \"number\":\n if (isNaN(obj_part) || !isFinite(obj_part)) {\n return \"null\";\n }\n return obj_part.toString();\n case \"string\":\n return this.escapeString(obj_part.toString());\n case \"object\":\n if (obj_part === null) {\n return \"null\";\n }\n else if (this.isArray(obj_part)) {\n this.checkForCircular(obj_part);\n buffer = \"[\";\n this.objStack.push(obj_part);\n for (var i = 0; i < obj_part.length; i++) {\n res = this.internalStringify(obj_part, i, false);\n buffer += this.makeIndent(this.indentStr, this.objStack.length);\n if (res === null || typeof res === \"undefined\") {\n buffer += \"null\";\n }\n else {\n buffer += res;\n }\n if (i < obj_part.length - 1) {\n buffer += \",\";\n }\n else if (this.indentStr) {\n buffer += \"\\n\";\n }\n }\n this.objStack.pop();\n buffer +=\n this.makeIndent(this.indentStr, this.objStack.length, true) + \"]\";\n }\n else {\n this.checkForCircular(obj_part);\n buffer = \"{\";\n var nonEmpty = false;\n this.objStack.push(obj_part);\n for (var prop in obj_part) {\n if (obj_part.hasOwnProperty(prop)) {\n var value = this.internalStringify(obj_part, prop, false);\n isTopLevel = false;\n if (typeof value !== \"undefined\" && value !== null) {\n buffer += this.makeIndent(this.indentStr, this.objStack.length);\n nonEmpty = true;\n var propKey = this.isWord(prop)\n ? prop\n : this.escapeString(prop);\n buffer +=\n propKey + \":\" + (this.indentStr ? \" \" : \"\") + value + \",\";\n }\n }\n }\n this.objStack.pop();\n if (nonEmpty) {\n buffer =\n buffer.substring(0, buffer.length - 1) +\n this.makeIndent(this.indentStr, this.objStack.length) +\n \"}\";\n }\n else {\n buffer = \"{}\";\n }\n }\n return buffer;\n default:\n // functions and undefined should be ignored\n return undefined;\n }\n };\n SurveyJSON5.positionName = \"pos\";\n SurveyJSON5.escapee = {\n \"'\": \"'\",\n '\"': '\"',\n \"\\\\\": \"\\\\\",\n \"/\": \"/\",\n \"\\n\": \"\",\n b: \"\\b\",\n f: \"\\f\",\n n: \"\\n\",\n r: \"\\r\",\n t: \"\\t\"\n };\n SurveyJSON5.ws = [\" \", \"\\t\", \"\\r\", \"\\n\", \"\\v\", \"\\f\", \"\\xA0\", \"\\uFEFF\"];\n // Copied from Crokford's implementation of JSON\n // See https://github.com/douglascrockford/JSON-js/blob/e39db4b7e6249f04a195e7dd0840e610cc9e941e/json2.js#L195\n // Begin\n // eslint-disable-next-line\n SurveyJSON5.cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n // eslint-disable-next-line\n SurveyJSON5.escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n SurveyJSON5.meta = {\n // table of character substitutions\n \"\\b\": \"\\\\b\",\n \"\\t\": \"\\\\t\",\n \"\\n\": \"\\\\n\",\n \"\\f\": \"\\\\f\",\n \"\\r\": \"\\\\r\",\n '\"': '\\\\\"',\n \"\\\\\": \"\\\\\\\\\"\n };\n return SurveyJSON5;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/localization/arabic.ts\":\n/*!************************************!*\\\n !*** ./src/localization/arabic.ts ***!\n \\************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n//Uncomment this line on creating a translation file\n\nvar arabicStrings = {\n //survey templates\n survey: {\n edit: \"تعديل\",\n externalHelpLink: \"شاهد وتعلم كيف يتم إنشاء إستبيان\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"الرجاء إفلات السؤال هنا من صندوق الأدوات\",\n addLogicItem: \".قم بإنشاء قاعدة لتخصيص تدفق الإستبيان\",\n copy: \"نسخ\",\n duplicate: \"نسخة طبق الأصل\",\n settings: \"الإعدادات\",\n addToToolbox: \"إضافة إلى صندوق الأدوات\",\n deletePanel: \"حذف لوحة\",\n deleteQuestion: \"حذف سؤال\",\n convertTo: \"تحويل إلى\",\n drag: \"إسحب العنصر\",\n license: \"الرجاء شراء ترخيص مطور SurveyJS Creator لاستخدامه في تطبيقك\"\n },\n //questionTypes\n qt: {\n default: \"الإفتراضي\",\n checkbox: \"إختيار من متعدد\",\n comment: \"تعليق\",\n imagepicker: \"إنتقاء الصور\",\n ranking: \"تصنيف\",\n image: \"صورة\",\n dropdown: \"قائمة منسدلة\",\n file: \"ملف\",\n html: \"لغة ترميز النصوص HTML\",\n matrix: \"مصفوفة (إختيار واحد)\",\n matrixdropdown: \"مصفوفة (إختيار متعدد)\",\n matrixdynamic: \"مصفوفة (صفوف ديناميكية)\",\n multipletext: \"مدخل متعدد\",\n panel: \"لوحة\",\n paneldynamic: \"لوحة ديناميكية\",\n radiogroup: \"إختيار فردي\",\n rating: \"تقييم\",\n text: \"مٌدخل فردي\",\n boolean: \"قيمة منطقية\",\n expression: \"عملية حسابية (للقرائة فقط)\",\n signaturepad: \"لوحة توقيع\",\n buttongroup: \"Button group\",\n flowpanel: \"Flow Panel\"\n },\n //Strings in SurveyJS Creator\n ed: {\n defaultLocale: \"اللغة الافتراضية {0}\",\n survey: \"الاستبيان1\",\n settings: \"إعدادات الاستبيان\",\n settingsTooltip: \"فتح إعدادات الاستبيان\",\n //opjectPropertiesHeader: \"Advanced\",\n //showObjectProperties: \"Show Object Properties\",\n //hideObjectProperties: \"Hide Object Properties\",\n showPanel: \"إظهار اللوحة\",\n hidePanel: \"إخفاء اللوحة\",\n prevSelected: \"اختر السابق\",\n nextSelected: \"اختر التالي\",\n //editSurvey: \"Edit Survey\",\n surveyTypeName: \"الإستبيان\",\n pageTypeName: \"الصفحة\",\n panelTypeName: \"اللوحة\",\n questionTypeName: \"السؤال\",\n columnTypeName: \"عمود\",\n addNewPage: \"إضافة صفحة جديدة\",\n moveRight: \"انتقل إلى اليمين\",\n moveLeft: \"انتقل إلى اليسار\",\n deletePage: \"حذف الصفحة\",\n editPage: \"تعديل الصفحة\",\n edit: \"التعديل\",\n newPageName: \"الصفحة\",\n newQuestionName: \"السؤال\",\n newPanelName: \"اللوحة\",\n newTextItemName: \"النص\",\n testSurvey: \"تجربة الاستبيان\",\n testSurveyAgain: \"اختبر الاستبيان مرة أخرى\",\n testSurveyWidth: \"عرض الاستبيان: \",\n navigateToMsg: \"يجب عليك الانتقال الي: \",\n logic: \"منطق الاستبيان\",\n embedSurvey: \"اربط الاستبيان\",\n translation: \"الترجمة\",\n saveSurvey: \"حفظ الاستبيان\",\n saveSurveyTooltip: \"حفظ الاستبيان\",\n designer: \"المصمم\",\n jsonEditor: \"محرر JSON\",\n jsonHideErrors: \"إخفاء الأخطاء\",\n jsonShowErrors: \"إظهار الأخطاء\",\n undo: \"تراجع\",\n redo: \"إعادة\",\n undoTooltip: \"راجع اخر تعديل\",\n redoTooltip: \"إعادة التغيير\",\n copy: \"نسخ\",\n cut: \"قص\",\n paste: \"لصق\",\n copyTooltip: \"نسخ المحدد إلى الحافظة\",\n cutTooltip: \"قص المحدد إلى الحافظة\",\n pasteTooltip: \"لصق من الحافظة\",\n options: \"الخيارات\",\n generateValidJSON: \"إنشاء JSON صالح\",\n generateReadableJSON: \"إنشاء JSON قابل للقراءة\",\n toolbox: \"صندوق الأدوات\",\n \"property-grid\": \"Properties\",\n propertyGridFilteredTextPlaceholder: \"اكتب للبحث...\",\n toolboxGeneralCategory: \"قائمة العام\",\n //delSelObject: \"Delete selected object\",\n //editSelObject: \"Edit selected object\",\n correctJSON: \"الرجاء إدخال بيانات JSON صحيحة\",\n surveyResults: \"نتايج الاستبيان: \",\n surveyResultsTable: \"Table\",\n surveyResultsJson: \"JSON\",\n resultsTitle: \"عنوان السؤال\",\n resultsName: \"اسم السؤال\",\n resultsValue: \"قيمة الاجابة\",\n resultsDisplayValue: \"اعرض القيمة\",\n modified: \"تم تعديلة\",\n saving: \"جاري الحفظ\",\n saved: \"تم حفظة\",\n propertyEditorError: \"خطأ\",\n saveError: \"خطأ| لا يمكن حفظ محتوي المحرر\",\n translationPropertyGridTitle: \"اعدادات الترجمة\",\n translationLanguages: \"اللغات\",\n translationAddLanguage: \"اختر اللغة التي تريد ترجمتها\",\n translationShowAllStrings: \"إظهار جميع النصوص\",\n translationShowAllPages: \"إظهار جميع الصفحات\",\n translationNoStrings: \"لا توجد نصوص للترجمة. من فضلك ، قم بتغيير الفلتر.\",\n translationExportToSCVButton: \"تصدير الي CSV\",\n translationImportFromSCVButton: \"استيراد من CSV\",\n translationMergeLocaleWithDefault: \"دمج {0} باللغة الافتراضية\",\n translationPlaceHolder: \"ترجم...\",\n bold: \"عريض\",\n italic: \"مائل\",\n underline: \"تحتها خط\",\n fpAddQuestion: \"إضافة سؤال..\",\n selectPage: \"اختر الصفحة...\",\n chooseElement: \"اختر عنصر....\",\n htmlPlaceHolder: \"محتوى HTML سيكون هنا\",\n signHere: \"التوقيع هنا\",\n panelPlaceHolder: \"قم بإسقاط السؤال من صندوق الأدوات إلى هنا\",\n addNewQuestion: \"أضف سؤال\",\n addNewTypeQuestion: \"إضافة {0}\",\n chooseLogoPlaceholder: \"[الشعار]\",\n //completedHtmlOnConditionItemText: \"Show if:\",\n lg: {\n addNewItem: \"إضافة عنصر جديد\",\n //Logic tab strings\n empty_tab: \"قم بإنشاء قاعدة لتخصيص تدفق الاستبيان\",\n page_visibilityName: \"أظهر (اخفي) الصفحة\",\n panel_visibilityName: \"أظهر (اخفي) اللوحة\",\n panel_enableName: \"تمكين (تعطيل) لوحة\",\n question_visibilityName: \"أظهر (اخفي) السؤال\",\n question_enableName: \"تمكين (تعطيل) السؤال\",\n question_requireName: \"اجعل السؤال مطلوبًا\",\n trigger_completeName: \"استبيان كامل\",\n trigger_setvalueName: \"تعيين قيمة السؤال\",\n trigger_copyvalueName: \"نسخ قيمة السؤال\",\n trigger_skipName: \"تخطى السؤال\",\n trigger_runExpressionName: \"قم بتشغيل العملية الحسابية\",\n completedHtmlOnConditionName: \"نص مخصص 'صفحة الشكر'\",\n page_visibilityDescription: \"اجعل الصفحة مرئية عندما يعود العملية الحسابية صحيحًا. وإلا فابقه غير مرئي.\",\n panel_visibilityDescription: \"اجعل اللوحة مرئية عندما يعود العملية الحسابية صحيحًا. وإلا فابقه غير مرئي.\",\n panel_enableDescription: \"اجعل اللوحة وجميع العناصر الموجودة بداخلها ممكنة عندما يعود العملية الحسابية صحيحًا. وإلا احتفظ بها معطلة.\",\n question_visibilityDescription: \"اجعل السؤال مرئيًا عندما يعود العملية الحسابية صحيحًا. وإلا فابقه غير مرئي.\",\n question_enableDescription: \"اجعل السؤال ممكّنًا عندما يعود العملية الحسابية صحيحًا. وإلا أبقها معطلة.\",\n question_requireDescription: \"يصبح السؤال مطلوبًا عندما يعود العملية الحسابية صحيحًا.\",\n trigger_completeDescription: \"عندما يعود العملية الحسابية صحيحًا ، يكتمل الاستطلاع ويرى المستخدم النهائي 'صفحة شكرًا لك'.\",\n trigger_setvalueDescription: \"عندما يتم تغيير قيم السؤال ، التي يتم استخدامها في العملية الحسابية ، ويعود العملية الحسابية إلى القيمة الصحيحة ، يتم تعيين القيمة على السؤال المحدد.\",\n trigger_copyvalueDescription: \"عندما يتم تغيير قيم السؤال ، التي يتم استخدامها في العملية الحسابية ، ويعود العملية الحسابية إلى القيمة الصحيحة ، يتم نسخ قيمة أحد الأسئلة المحددة إلى سؤال آخر محدد\",\n trigger_skipDescription: \"عندما يعود العملية الحسابية صحيحًا ، يتخطى الاستطلاع / يركز على السؤال المحدد.\",\n trigger_runExpressionDescription: \"عندما يعود العملية الحسابية صحيحًا ، يتم تنفيذ العملية الحسابية المخصص. يمكنك اختياريا تعيين نتيجة هذا العملية الحسابية في السؤال المحدد\",\n completedHtmlOnConditionDescription: \"إذا كان العملية الحسابية صحيحًا ، فسيتم تغيير النص الافتراضي لصفحة 'شكرًا لك' إلى النص المحدد.\",\n itemExpressionText: \"العملية الحسابية {0} نشط\",\n itemEmptyExpressionText: \"لم يتم تعيين قاعدة جديدة\",\n page_visibilityText: \"اجعل الصفحة {0} مرئية\",\n panel_visibilityText: \"اجعل اللوحة {0} مرئية\",\n panel_enableText: \"اجعل اللوحة {0} ممكنة\",\n question_visibilityText: \"اجعل السؤال {0} مرئيًا\",\n question_enableText: \"اجعل السؤال {0} ممكنًا\",\n question_requireText: \"اجعل السؤال {0} مطلوبًا\",\n trigger_completeText: \"اصبح الاستطلاع كاملًا\",\n trigger_setvalueText: \"تعيين القيمة {0} إلى السؤال {1}\",\n trigger_copyvalueText: \"نسخ إلى السؤال: {0} القيمة من السؤال {1}\",\n trigger_skipText: \"تخطي الاستبيان إلى السؤال {0}\",\n trigger_runExpressionText1: \"تشيغل العملية الحسابية: {0}\",\n trigger_runExpressionText2: \" ووضع نتيجتها موضع تساؤل: {0}\",\n completedHtmlOnConditionText: \"أضهر النص المخصص ل 'صفحة الشكر'\",\n showAllQuestions: \"إظهار كل الأسئلة\",\n showAllActionTypes: \"إظهار كل أنواع الإجراءات\",\n conditions: \"الشرط/الشروط\",\n actions: \"الاجراءات {0}\",\n expressionEditorTitle: \"حدد الشرط/الشروط\",\n actionsEditorTitle: \"حدد إجراء/اجراءات\",\n deleteAction: \"حذف الإجراء\",\n addNewAction: \"إضافة إجراء جديد\",\n selectedActionCaption: \"حدد إجراء لإضافته ...\",\n expressionInvalid: \"العملية الحسابية فارغ أو غير صالح. يرجى تصحيح ذلك.\",\n noActionError: \"من فضلك اختر إجراء واحد على الأقل.\",\n actionInvalid: \"من فضلك اصلح الإجراء {0}\",\n expressionSetup: \"إعداد العملية الحسابية\",\n actionsSetup: \"إعداد الإجراء\"\n }\n },\n //Property names in table headers\n // pel: {\n // isRequired: \"Required?\"\n // },\n //Property Editors\n pe: {\n apply: \"تطبيق\",\n ok: \"موافق\",\n save: \"حفظ\",\n clear: \"مسح\",\n saveTooltip: \"حفظ\",\n cancel: \"إلغاء\",\n set: \"تثبيت\",\n reset: \"إعادة تعيين\",\n change: \"تغيير\",\n refresh: \"تحديث\",\n close: \"إغلاق\",\n delete: \"حذف\",\n add: \"إضافة\",\n addNew: \"إضافة جديد\",\n addItem: \"اضغط لاضافة عنصر..\",\n removeItem: \"إزالة العنصر\",\n dragItem: \"سحب العنصر للحفظ\",\n addOther: \"آخري\",\n addSelectAll: \"Select All\",\n addNone: \"لا شيء\",\n removeAll: \"إزالة الكل\",\n edit: \"التعديل\",\n back: \"رجوع بدون حفظ\",\n backTooltip: \"رجوع بدون حفظ\",\n saveAndBack: \"حفظ ورجوع\",\n saveAndBackTooltip: \"حفظ ورجوع\",\n doneEditing: \"تم\",\n // itemValueEdit: \"Visible If\",\n editChoices: \"تعديل الخيارات\",\n showChoices: \"عرض الخيارات\",\n move: \"نقل\",\n empty: \"<فارغ>\",\n emptyValue: \"القيمة فارغة\",\n fastEntry: \"Fast Entry\",\n fastEntryNonUniqueError: \"Value '{0}' is not unique\",\n fastEntryChoicesCountError: \"Please limit the number of items from {0} to {1}\",\n formEntry: \"إدخال النموذج\",\n testService: \"اختبر الخدمة\",\n itemSelectorEmpty: \"Please select the element\",\n conditionActionEmpty: \"من فضلك قم باختيار إجراء\",\n conditionSelectQuestion: \"إختر السؤال...\",\n conditionSelectPage: \"اختر صفحة..\",\n conditionSelectPanel: \"اختر لوحة..\",\n conditionValueQuestionTitle: \"من فضلك ادخل القيمة\",\n // conditionHelp:\n // \"Please enter a boolean expression. It should return true to keep the question/page visible. For example: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"You can use curly brackets to get access to the question values: {question1} + {question2}, ({price}*{quantity}) * (100 - {discount}). You can use functions as: iif(), today(), age(), min(), max(), count(), avg() and others.\",\n aceEditorHelp: \"اضغط CTRL+SPACE للحصول علي ملحوظة تكملة العملية الحسابية\",\n aceEditorRowTitle: \"الصف الحالي\",\n aceEditorPanelTitle: \"اللوحة الحالية\",\n showMore: \"لمزيد من التفاصيل, من فضلك ادخل علي الوثيقة الرسيمة\",\n // conditionShowMoreUrl:\n // \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"الاسئلة المتاحة:\",\n cellsEmptyRowsColumns: \"يجب ان يكون علي الاقل هناك صف او عمود واحد\",\n propertyIsEmpty: \"من فضلك ادخل قيمة\",\n propertyIsNoUnique: \"من فضلك ادخل قيمة فريدة\",\n propertyNameIsNotUnique: \"من فضلك ادخل اسم فريد\",\n listIsEmpty: \"إضافة عنصر جديد\",\n expressionIsEmpty: \"العملية الحسابية فارغة\",\n value: \"القيمة\",\n text: \"النص\",\n rowid: \"رقم الصف\",\n imageLink: \"رابط الصورة\",\n columnEdit: \"تعديل العمود: {0}\",\n itemEdit: \"Edit item: {0}\",\n url: \"رابط إلكتروني URL\",\n path: \"المسار\",\n valueName: \"اسم القيمة\",\n titleName: \"اسم العنوان\",\n imageLinkName: \"اسم رابط الصورة\",\n allowEmptyResponse: \"السماح بجواب فارغ\",\n titlePlaceholder: \"ادخل العنوان\",\n surveyTitlePlaceholder: \"أدخل عنوان الإستبيان هنا\",\n pageTitlePlaceholder: \"أدخل عنوان الصفحة هنا\",\n descriptionPlaceholder: \"ادخل الوصف\",\n surveyDescriptionPlaceholder: \"أدخل وصف للإستبيان\",\n pageDescriptionPlaceholder: \"أدخل وصف للصفحة\",\n showOtherItem: \"هل هناك خيار أخرى\",\n otherText: \"نص خيار أخرى\",\n showNoneItem: \"هل هناك خيار بلا\",\n noneText: \"نص خيار بلا\",\n hasSelectAll: \"هل هناك خيار إختيار الكل\",\n selectAllText: \"نص خيار إختر الكل\",\n choicesMin: \"الحد الأدنى لقيمة العناصر التي تم إنشاؤها تلقائيًا\",\n choicesMax: \"الحد الأقصى لقيمة العناصر التي تم إنشاؤها تلقائيًا\",\n choicesStep: \"الفرق بين العناصر التي تم إنشاؤها تلقائيًا\",\n name: \"الإسم\",\n title: \"العنوان\",\n cellType: \"نوع الخلية\",\n colCount: \"عدد الأعمدة\",\n choicesOrder: \"إختر ترتيب الإختيارات\",\n visible: \"مرئي؟\",\n isRequired: \"مطلوب؟\",\n isAllRowRequired: \"المطالبة بالأجوبة لكل الصفوف\",\n requiredErrorText: \"نص خطأ إلزامي السؤال\",\n startWithNewLine: \"إظهار السؤال في صف جديد\",\n rows: \"عدد الصفوف\",\n cols: \"عدد الأعمدة\",\n placeHolder: \"نص حامل خانة الإدخال\",\n showPreview: \"عرض منطقة المعاينة\",\n storeDataAsText: \"تخزين محتويات ملف JSON كنص\",\n maxSize: \"أقصى حجم للملف بالبايت\",\n imageHeight: \"طول الصورة\",\n imageWidth: \"عرض الصورة\",\n rowCount: \"عدد الصفوف\",\n columnLayout: \"تخطيط الأعمدة\",\n addRowLocation: \"موقع زر إضافة صف\",\n addRowText: \"نص زر إضافة صف\",\n removeRowText: \"نص زر حذف صف\",\n rateMin: \"أصغر معدل\",\n rateMax: \"أكبر معدل\",\n rateStep: \"خطوات المعدل\",\n minRateDescription: \"وصف أصغر معدل\",\n maxRateDescription: \"وصف أكبر معدل\",\n inputType: \"نوع المدخل\",\n optionsCaption: \"خيارات الشرح\",\n showOptionsCaption: \"عرض خيارات الوصف\",\n defaultValue: \"القيمة الإفتراضية\",\n cellsDefaultRow: \"نصوص الخلاية الافتراضي\",\n surveyEditorTitle: \"تعديل اعدادات الاستبيان\",\n qEditorTitle: \"تعديل: {0}\",\n maxLength: \"أقصى طول\",\n buildExpression: \"بناء\",\n editExpression: \"التعديل\",\n and: \"أو\",\n or: \"و\",\n remove: \"Remove\",\n addCondition: \"أضف الشرط\",\n if: \"إذا قيمة\",\n then: \"من ثم\",\n setToName: \"إلى\",\n fromName: \"من\",\n ruleIsNotSet: \"القاعدة غير صحيحة\",\n //survey\n showTitle: \"إظهار/إخفاء العنوان\",\n expandCollapseTitle: \"توسيع/طي العنوان\",\n locale: \"اللغة الإفتراضية\",\n simulator: \"Choose device\",\n landscapeOrientation: \"أفقي\",\n portraitOrientation: \"عمودي\",\n mode: \"النمط (التعديل، القرائة فقط)\",\n clearInvisibleValues: \"إمسح القيم الغير مرئية\",\n cookieName: \"أدخل إسم ملف تعريف الإرتباط (لتعطيل المشاركة بالإستبيان أكثر من مرة)\",\n sendResultOnPageNext: \"إرسال نتائج الإستبيان على الصفحة التالية\",\n storeOthersAsComment: \"تخزين قيمة 'أخرى' في حقل منفصل\",\n showPageTitles: \"عرض عنوان الصفحات\",\n showPageNumbers: \"عرض أرقام الصفحات\",\n pagePrevText: \"نص زر الإنتقال للصفحة السابقة\",\n pageNextText: \"نص زر الإنتقال للصفحة التالية\",\n completeText: \"نص زر إنهاء الإستبيان\",\n previewText: \"نص زر المعاينة\",\n editText: \"نص زر التعديل\",\n startSurveyText: \"نص زر بدء المشاركة بالإستبيان\",\n showNavigationButtons: \"إظهار أزرار الإنتقال (التنقل الإفتراضي)\",\n showPrevButton: \"إظهار زر التنقل السابق (السماح للمستخدم من العودة للصفحة السابقة في الإستبيان)\",\n firstPageIsStarted: \"الصفحة الأولى في الإستبيان هي صفحة البدء\",\n showCompletedPage: \"إظهار الصفحة المكتملة في النهاية (صفحة ويب مكتملة)\",\n goNextPageAutomatic: \"عند الإجابة على جميع الأسئلة، إنتقل إلى الصفحة التالية تلقائياً\",\n showProgressBar: \"إظهار شريط التقدم\",\n questionTitleLocation: \"موقع عنوان السؤال\",\n requiredText: \"رمز السؤال مطلوب\",\n questionStartIndex: \"فهرس بداية الأسئلة (1،2 أو 'أ' ، 'ب')\",\n showQuestionNumbers: \"إظهار أرقام الأسئلة\",\n questionTitleTemplate: \"Question title template, default is: '{no}. {require} {title}'\",\n questionErrorLocation: \"موقع خطأ في السؤال\",\n focusFirstQuestionAutomatic: \"ركز المؤشر على السؤال الأول عند تغير الصفحة\",\n questionsOrder: \"ترتيب العناصر على الصفحة\",\n maxTimeToFinish: \"أقصى وقت لإنهاء الإستبيان\",\n maxTimeToFinishPage: \"أقصى وقت لإنهاء الصفحة في الإستبيان\",\n showTimerPanel: \"إظهار لوحة المؤقت\",\n showTimerPanelMode: \"إظهار نمط لوحة المؤقت\",\n renderMode: \"نمط العرض\",\n allowAddPanel: \"السماح بإضافة لوحة\",\n allowRemovePanel: \"السماح بإزالة لوحة\",\n panelAddText: \"نص إضافة لوحة\",\n panelRemoveText: \"نص إزالة لوحة\",\n isSinglePage: \"Show all elements on one page\",\n html: \"صفحة ويب HTML\",\n expression: \"عملية حسابية\",\n minValue: \"الحد الأدنى للقيمة\",\n maxValue: \"الحد الأقصى للقيمة\",\n minLength: \"الحد الأدنى لطول النص\",\n allowDigits: \"السماح بالأرقام\",\n minCount: \"الحد الأدنى لعدد\",\n maxCount: \"Maximum count\",\n regex: \"التعابير النمطية\",\n totalText: \"إجمالي النص\",\n totalType: \"إجمالي النوع\",\n totalExpression: \"إجمالي العمليات الحسابية\",\n totalDisplayStyle: \"إجمالي نمط العرض\",\n totalCurrency: \"مجموع العملات\",\n totalFormat: \"إجمالي التنسيق\",\n // Header adorner\n logoPosition: \"موقع الشعار\",\n addLogo: \"إضافة شعار...\",\n changeLogo: \"تغيير الشعار...\",\n logoPositions: {\n none: \"حذف الشعار\",\n left: \"يسار\",\n right: \"يمين\",\n top: \"في الأعلى\",\n bottom: \"في الأسفل\"\n },\n tabs: {\n general: \"عام\",\n fileOptions: \"الخيارات\",\n html: \"Html Editor\",\n columns: \"الأعمدة\",\n rows: \"الصفوف\",\n choices: \"الخيارات\",\n items: \"العناصر\",\n visibleIf: \"مرئي عندما\",\n enableIf: \"مفعل عندما\",\n requiredIf: \"مطلوب عندما\",\n rateValues: \"قيم التقييم\",\n choicesByUrl: \"خيارات من الإنترنت\",\n matrixChoices: \"Default Choices\",\n multipleTextItems: \"Text Inputs\",\n numbering: \"الترقيم\",\n validators: \"المدققات\",\n navigation: \"التنقل\",\n question: \"السؤال\",\n pages: \"الصفحات\",\n completedHtml: \"صفحة الويب المكتملة\",\n completedHtmlOnCondition: \"صفحة ويب مكتملة بشرط\",\n loadingHtml: \"Loading Html\",\n timer: \"مؤقت/إختبار قصير\",\n calculatedValues: \"Calculated Values\",\n triggers: \"Triggers\",\n templateTitle: \"عنوان القالب\",\n totals: \"Totals\",\n logic: \"المنطق\",\n layout: \"التنسيق\",\n data: \"البيانات\",\n validation: \"التحقق\",\n cells: \"الخلايا\",\n showOnCompleted: \"عند الإنتهاء من الإستبيان\",\n logo: \"الشعار في عنوان الإستبيان\",\n slider: \"Slider\",\n others: \"غير ذلك\"\n },\n editProperty: \"تعديل الخاصية {0}:\",\n items: \"[ Items: {0} ]\",\n enterNewValue: \"من فضلك ادخل القيمة الجديدة\",\n noquestions: \"لا توجد أسئلة في هذا الاستبيان\",\n createtrigger: \"Please create a trigger\",\n titleKeyboardAdornerTip: \"أضغط زرار Enter للتعديل\",\n keyboardAdornerTip: \"Press enter button to edit item, press delete button to delete item, press alt plus arrow up or arrow down to move item\",\n triggerOn: \"On \",\n triggerMakePagesVisible: \"جعل الصفحات مرئية\",\n triggerMakeQuestionsVisible: \"جعل الأسئلة مرئية\",\n triggerCompleteText: \"أكمل الاستبيان اذا تم بنجاح\",\n triggerNotSet: \"The trigger is not set\",\n triggerRunIf: \"Run if\",\n triggerSetToName: \"Change value of: \",\n triggerFromName: \"انسخ القيمة من: \",\n triggerRunExpression: \"احسب العملية الحسابية\",\n triggerSetValue: \"to: \",\n triggerGotoName: \"أذهب الي السؤال: \",\n triggerIsVariable: \"لا تضع المتغير في نتائج الاستبيان\",\n triggerRunExpressionEmpty: \"من فضلك ادخل عملية حسابية صحيحة\",\n noFile: \"لم تقم باختيار ملف\"\n },\n //Property values\n pv: {\n auto: \"تلقائي\",\n static: \"ثابتة\",\n responsive: \"متجاوب\",\n contain: \"إحتواء\",\n cover: \"تغطية\",\n fill: \"ملئ\",\n onBlur: \"عند الطمس\",\n onTyping: \"عند الكتابة\",\n video: \"فيديو\",\n image: \"صور\",\n true: \"صحيح\",\n false: \"خطأ\",\n inherit: \"يَرث\",\n show: \"إظهار\",\n hide: \"إخفاء\",\n initial: \"مبدئي\",\n random: \"عشوائي\",\n collapsed: \"مقلص\",\n expanded: \"موسع\",\n none: \"بلا\",\n asc: \"تصاعدي\",\n desc: \"تنازلي\",\n indeterminate: \"غير محدد\",\n decimal: \"رقم عشري\",\n currency: \"العملة\",\n percent: \"النسبة المئوية\",\n firstExpanded: \"توسيع أول لوح\",\n off: \"إيقاف\",\n onPanel: \"على اللوحة\",\n onSurvey: \"على الإستبيان\",\n list: \"قائمة\",\n progressTop: \"التقدم بالأعلى\",\n progressBottom: \"التقدم بالأسف\",\n progressTopBottom: \"التقدم بالأعلى والأسفل معاً\",\n horizontal: \"عرضي\",\n vertical: \"عمودي\",\n default: \"الإفتراضي\",\n top: \"الأعلى\",\n bottom: \"الأسفل\",\n topBottom: \"الأعلى والأسفل\",\n both: \"الكل\",\n left: \"يسار\",\n right: \"يمين\",\n color: \"لون\",\n date: \"تاريخ\",\n datetime: \"تاريخ ووقت\",\n \"datetime-local\": \"تاريخ ووقت محلي\",\n email: \"بريد إلكتروني\",\n month: \"شهر\",\n number: \"أرقام\",\n password: \"كلمة سر\",\n range: \"نطاق\",\n tel: \"رقم هاتف\",\n text: \"نص\",\n time: \"وقت\",\n url: \"رابط إلكتروني URL\",\n week: \"إسبوع\",\n hidden: \"مخفي\",\n on: \"تشغيل\",\n onPage: \"على الصفحة\",\n edit: \"التعديل\",\n display: \"العرض\",\n onComplete: \"عند الإنتهاء\",\n onHidden: \"عند الإخفال\",\n onHiddenContainer: \"عند إخفاء الحاوية\",\n all: \"الكل\",\n page: \"الصفحة\",\n survey: \"الإستبيان\",\n onNextPage: \"عند الإنتقال للصفحة التالية\",\n onValueChanging: \"عند تغيير القيمة\",\n onValueChanged: \"إذا تغيرت القيمة\",\n singlePage: \"صفحة واحدة\",\n standard: \"أساسي\",\n questionPerPage: \"سؤال لكل صفحة\",\n noPreview: \"بلا عرض\",\n showAllQuestions: \"المعاينة مع جميع الأسئلة\",\n showAnsweredQuestions: \"المعاينة مع الأسئلة المجٌابة\",\n pages: \"الصفحات\",\n questions: \"الأسئلة\",\n requiredQuestions: \"الأسئلة المطلوبة\",\n correctQuestions: \"الإجابات الصحيحة\",\n buttons: \"الأزرار\",\n underInput: \"أسفل خانة الإدخال\",\n underTitle: \"أعلى العنوان\",\n },\n //Operators\n op: {\n empty: \"فارغة\",\n notempty: \"ليست فارغة\",\n equal: \"تساوي\",\n notequal: \"لا تساوي\",\n contains: \"تحتوي\",\n notcontains: \"لا تحتوي\",\n anyof: \"أي من\",\n allof: \"كلاً من\",\n greater: \"أكبر\",\n less: \"أقل\",\n greaterorequal: \"أكبر أو يساوي\",\n lessorequal: \"أقل أو يساوي\",\n and: \"و\",\n or: \"أو\",\n },\n //Embed window\n ew: {\n angular: \"Use Angular version\",\n jquery: \"Use jQuery version\",\n knockout: \"Use Knockout version\",\n react: \"Use React version\",\n vue: \"Use Vue version\",\n bootstrap: \"For bootstrap framework\",\n modern: \"Modern theme\",\n default: \"Default theme\",\n orange: \"Orange theme\",\n darkblue: \"Darkblue theme\",\n darkrose: \"Darkrose theme\",\n stone: \"Stone theme\",\n winter: \"Winter theme\",\n winterstone: \"Winter-Stone theme\",\n showOnPage: \"Show survey on a page\",\n showInWindow: \"Show survey in a window\",\n loadFromServer: \"Load Survey JSON from server\",\n titleScript: \"Scripts and styles\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"اختر هذة الصفحة لاختبارها\",\n showInvisibleElements: \"إظهار العناصر الغير مرئية\"\n },\n validators: {\n answercountvalidator: \"عدد الاجابات\",\n emailvalidator: \"بريد إلكتروني\",\n expressionvalidator: \"عملية حسابية\",\n numericvalidator: \"رقمية\",\n regexvalidator: \"تعبير رياضي\",\n textvalidator: \"النص\",\n },\n triggers: {\n completetrigger: \"إنهاء الإستبيان\",\n setvaluetrigger: \"تحديد قيمة\",\n copyvaluetrigger: \"نسخ قيمة\",\n skiptrigger: \"الإنتقال إلى سؤال\",\n runexpressiontrigger: \"تشغيل العملية الحسابية\",\n visibletrigger: \"تغيير الرؤية (مهمل)\",\n },\n pehelp: {\n //expression:\n },\n //Properties\n p: {\n name: \"name\",\n title: {\n name: \"title\",\n title: \"Leave it empty, if it is the same as 'Name'\",\n },\n navigationButtonsVisibility: \"رؤية أزرار التنقل\",\n questionsOrder: \"ترتيب الأسئلة\",\n maxTimeToFinish: \"الحد الأقصى للوقت للإنهاء\",\n visible: \"مرئي\",\n visibleIf: \"مرئي عندما\",\n questionTitleLocation: \"موقع عنوان السؤال\",\n description: \"الوصف\",\n state: \"الحالة\",\n isRequired: \"مطلوب؟\",\n requiredIf: \"مطلوب عندما\",\n indent: \"المسافة البادئة\",\n requiredErrorText: \"نص الخطأ عند الإفادة\",\n startWithNewLine: \"البدء بسطر جديد\",\n innerIndent: \"المسافة البادئة الداخلية\",\n page: \"الصفحة\",\n width: \"العرض\",\n commentText: \"نص التعليق\",\n valueName: \"اسم القيمة\",\n enableIf: \"فعال عندما\",\n defaultValue: \"القيمة الإفتراضية\",\n correctAnswer: \"الإجابة الصحيحة\",\n readOnly: \"للقرائة فقط\",\n validators: \"المدققات\",\n titleLocation: \"موقع عنوان السؤال\",\n showCommentArea: \"هل هناك تعليق؟\",\n showOtherItem: \"لدية آخر\",\n choices: \"الإختيارات\",\n choicesOrder: \"ترتيب الخيارات\",\n choicesByUrl: \"خيار عن طريق رابط إلكتروني URL\",\n otherText: \"نص الآخري\",\n otherErrorText: \"نص الخطأ عند الآخري\",\n storeOthersAsComment: \"حفظ الآخري كتعليق\",\n label: \"المسمى\",\n showTitle: \"إظهار العنوان\",\n valueTrue: \"قيمة صحيح\",\n valueFalse: \"قيمة خطأ\",\n cols: \"الأعمدة\",\n rows: \"الصفوف\",\n placeHolder: \"placeHolder\",\n optionsCaption: \"إختيارات الإختصار\",\n expression: \"عملية حسابية\",\n format: \"الصيغة\",\n displayStyle: \"أسلوب العرض\",\n currency: \"العملة\",\n useGrouping: \"إستخدام التجميع\",\n showPreview: \"إظهار المعاينة\",\n allowMultiple: \"السماح بالمتعدد\",\n imageHeight: \"ارتفاع الصورة\",\n imageWidth: \"عرض الصورة\",\n storeDataAsText: \"حفظ البيانات كنص\",\n maxSize: \"الحد الأقصى لحجم الملف\",\n html: \"صفحة ويب HTML\",\n columns: \"الأعمدة\",\n cells: \"الخليات\",\n isAllRowRequired: \"هل يتوفر على جميع الصفوف على الإجابة؟\",\n horizontalScroll: \"تمرير أٌفقي بالمؤشر\",\n cellType: \"نوع الخلية\",\n columnsLayout: \"تخطيط الأعمدة\",\n columnColCount: \"عدد تقسيم العمود\",\n columnMinWidth: \"أقل عرض للعمود\",\n rowCount: \"عدد الصفوف\",\n minRowCount: \"أقل عدد للصفوف\",\n maxRowCount: \"أكبر عدد للصفوف\",\n keyName: \"إسم المفتاح\",\n keyDuplicationError: \"خطأ تكرار المفتاح\",\n confirmDelete: \"رسالة تأكيد الحذف\",\n confirmDeleteText: \"نص رسالة تأكيد الحذف\",\n addRowLocation: \"أضف صف جديد\",\n addRowText: \"نص إضافة صف جديد\",\n removeRowText: \"نص إزالة صف جديد\",\n items: \"العناصر\",\n itemSize: \"حجم العنصر\",\n colCount: \"عدد الأعمدة\",\n templateTitle: \"عنوان القالب\",\n templateDescription: \"وصف القالب\",\n allowAddPanel: \"السماح بإضافة لوحة\",\n allowRemovePanel: \"السماح بحذف لوحة\",\n panelCount: \"عدد اللوحات\",\n minPanelCount: \"أقل عدد للوحات\",\n maxPanelCount: \"أعلى عدد للوحات\",\n panelsState: \"حالة الوحة\",\n panelAddText: \"نص إضافة لوحة\",\n panelRemoveText: \"نص حذف لوحة\",\n panelPrevText: \"نص اللوحة السابقة\",\n panelNextText: \"نص اللوحة التالية\",\n showQuestionNumbers: \"إظهار أرقام الأسئلة\",\n showRangeInProgress: \"عرض نطاق القيد التقدم\",\n renderMode: \"نمط العرض\",\n templateTitleLocation: \"موقع عنوان القالب\",\n rateValues: \"قييم التقييم\",\n rateMin: \"أدنى قيمة\",\n rateMax: \"أعلى قيمة\",\n rateStep: \"خطوة التقييم\",\n minRateDescription: \"الوصف الأدنى للتقييم\",\n maxRateDescription: \"الوصف الأقصى للتقييم\",\n inputType: \"نوع الإدخال\",\n size: \"الحجم\",\n locale: \"اللغة\",\n focusFirstQuestionAutomatic: \"التركيز على السؤال الأول تلقائياً\",\n completedBeforeHtml: \"الإنتهاء قبل HTML\",\n loadingHtml: \"تحميل HTML\",\n triggers: \"المحفزات\",\n cookieName: \"اسم ملفات الارتباط\",\n sendResultOnPageNext: \"إرسال النتائج عند الذهاب إلى الصفحة التالية\",\n showNavigationButtons: \"إظهار أزرار التنقل\",\n showPrevButton: \"إظهار زر الرجوع\",\n showPageTitles: \"إظهار عناوين الصفحة\",\n showCompletedPage: \"إظهار الصفحة المكتملة\",\n showPageNumbers: \"إظهار أرقام الصفحة\",\n questionErrorLocation: \"موقع خطأ الأسئلة\",\n showProgressBar: \"إظهار شريط التقدم\",\n mode: \"وضع\",\n goNextPageAutomatic: \"الذهاب إلى الصفحة التالية تلقائياً\",\n checkErrorsMode: \"نمط التحقق من الأخطاء\",\n clearInvisibleValues: \"إزالة القيم الخاصة بالغير مرئية\",\n startSurveyText: \"نص البدء\",\n pagePrevText: \"نص الصفحة السابقة\",\n pageNextText: \"نص الصفحة التالية\",\n completeText: \"نص الاكمال\",\n requiredText: \"نص الحقل المطلوب\",\n questionStartIndex: \"مؤشر الأسئلة\",\n questionTitleTemplate: \"نمط عنوان الأسئلة\",\n firstPageIsStarted: \"ابدأ الصفحة الأولى\",\n isSinglePage: \"هل يتوفر على صفحة واحدة؟\",\n maxTimeToFinishPage: \"الحد الأقصى للوقت للانتهاء للصفحة\",\n showTimerPanel: \"إظهار لوحة الوقت\",\n showTimerPanelMode: \"وضع لوحة الوقت\",\n defaultPanelValue: \"القيمة الإفتراضية للوحة\",\n defaultRowValue: \"قيمة الصف الإفتراضية\",\n showNoneItem: \"لدية لا شيء\",\n noneText: \"نص لا شيء\",\n text: \"نص\",\n multiSelect: \"متعدد الإختيار\",\n showLabel: \"عرض الملصق\",\n logo: \"الشعار\",\n logoWidth: \"عٌرض الشعار\",\n logoHeight: \"طول الشعار\",\n logoFit: \"تناسب الشعار\",\n focusOnFirstError: \"تركيز المؤشر على أول خطأ\",\n pages: \"الصفحات\",\n calculatedValues: \"القيم المحسوبة\",\n includeIntoResult: \"الإضافة إلى النتائج\",\n navigateToUrl: \"الإنتقال إلى رابط URL\",\n completedHtml: \"صفحة الويب المكتملة\",\n completedHtmlOnCondition: \"صفحة ويب مكتملة بشرط\",\n navigateToUrlOnCondition: \"الإنتقال إلى رابط إلكتروني بشرط\",\n questionDescriptionLocation: \"موقع وصف السؤال\",\n progressBarType: \"نوع شريط التقدم\",\n maxTextLength: \"أقصى طٌول للنص\",\n maxOthersLength: \"أقصى طول لخيار 'أخرى'\",\n textUpdateMode: \"نمط تحديث النص\",\n autoGrowComment: \"نمو تلقائي للسؤال من نوع تعليق\",\n questionTitlePattern: \"تنسيق عنوان السؤال\",\n questionsOnPageMode: \"الأسئلة في الصفحات\",\n showPreviewBeforeComplete: \"المعاينة قبل الإنتهاء من الإستبيان\",\n widthMode: \"نمط عٌرض الشاشة\",\n showNumber: \"عرض الرقم\",\n navigationTitle: \"عنوان التنقل\",\n navigationDescription: \"الوصف للتنقل\",\n useDisplayValuesInDynamicTexts: \"إستخدم عرض القيم في العنوان\",\n setDefaultValue: \"تثبيت قيمة إفتراضية\",\n setCorrectValue: \"تثبيت إجابة صحيحة\",\n minWidth: \"أقل عرض\",\n maxWidth: \"أعلى عرض\",\n descriptionLocation: \"موقع وصف السؤال\",\n hideNumber: \"إخفاء رقم السؤال\",\n defaultValueExpression: \"العملية الحسابية الإفتراضية\",\n bindings: \"الإرتباطات\",\n value: \"القيمة\",\n columnsVisibleIf: \"أظهر الأعمدة إذا\",\n rowsVisibleIf: \"أظهر الصفوف إذا\",\n showHeader: \"عرض رأس المصفوفة\",\n detailPanelMode: \"نمط تفاصيل اللوحة\",\n rowTitleWidth: \"عرض عنوان الصف\",\n allowAddRows: \"السماح إضافة صفوف\",\n allowRemoveRows: \"السماح لإزالة صفوف\",\n defaultValueFromLastRow: \"القيمة الإفتراضية تكون من الصف الأخير\",\n hideColumnsIfEmpty: \"إخفاء في حالة كان العمود فارغ\",\n emptyRowsText: \"نص الصفوف فارغة\",\n detailPanelShowOnAdding: \"إظهار لوحة التفاصيل عند الإضافة\",\n allowRowsDragAndDrop: \"السماح للسحب والإدراج للصفوف\",\n rowsOrder: \"ترتيب الصفوف\",\n hideIfRowsEmpty: \"إخفاء إذا كان الصف فارغ\",\n maximumFractionDigits: \"الحد الأقصى للكسور\",\n minimumFractionDigits: \"الحد الأدنى للكسور\",\n choicesFromQuestion: \"الإختيارات من الأسئلة\",\n choicesFromQuestionMode: \"اختر من السؤال\",\n hideIfChoicesEmpty: \"إخفاء عندما تكون الخيارات فارغة\",\n choicesVisibleIf: \"الإختيارات مرئية عندما\",\n choicesEnableIf: \"الإختيارات مفعلة عندما\",\n otherPlaceHolder: \"حامل نص لخيار الأخرى\",\n maxSelectedChoices: \"أقصى عدد للإختيار\",\n showClearButton: \"إظهار زر الإزالة\",\n contentMode: \"نمط عرض المحتوى\",\n imageFit: \"إحتواء الصورة\",\n autocomplete: \"الإكمال التلقائي\",\n min: \"الحد الأدنى\",\n max: \"الحد الأقصى\",\n minValueExpression: \"الحد الأدنى للعملية حسابية\",\n maxValueExpression: \"الحد الأقصى للعملية حسابية\",\n minErrorText: \"الحد الأدنى للقيمة\",\n maxErrorText: \"الحد الأقصى للقيمة\",\n step: \"خطوة\",\n dataList: \"قائمة البيانات\",\n autoGrow: \"تمدد تلقائي\",\n multiLine: \"متعدد الأسطر\",\n allowImagesPreview: \"السماح بعرض الصور\",\n acceptedTypes: \"الأنواع المسموح بها\",\n waitForUpload: \"الإنتظار للرفع\",\n needConfirmRemoveFile: \"سؤال تأكيد لحذف الملف\",\n labelTrue: \"ملصق صحيح\",\n labelFalse: \"ملصق خطأ\",\n height: \"الارتفاع\",\n allowClear: \"السماح بإزالة\",\n penColor: \"لون القلم\",\n backgroundColor: \"لون الخلفية\",\n dataFormat: \"صيغة البيانات\",\n defaultValueFromLastPanel: \"القيمة الإفتراضية من أخر لوحة\",\n panelRemoveButtonLocation: \"موقع زر حذف اللوحة\",\n showCaption: \"إظهار الشرح\",\n iconName: \"اسم الأيقونة\",\n iconSize: \"حجم الأيقونة\"\n },\n};\n//Uncomment this line on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"ar\"] = arabicStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/croatian.ts\":\n/*!**************************************!*\\\n !*** ./src/localization/croatian.ts ***!\n \\**************************************/\n/*! exports provided: hrStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hrStrings\", function() { return hrStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar hrStrings = {\n //survey templates\n survey: {\n edit: \"Uređivanje\",\n externalHelpLink: \"Gledajte i saznajte kako stvoriti ankete\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Molimo ispustite pitanje ovdje iz Toolbox.\",\n addLogicItem: \"Izradite pravilo za prilagodbu tijeka ankete.\",\n copy: \"Kopirati\",\n duplicate: \"Duplikata\",\n addToToolbox: \"Dodaj u Toolbox\",\n deletePanel: \"Brisanje ploče\",\n deleteQuestion: \"Izbriši pitanje\",\n convertTo: \"Pretvorite u\",\n drag: \"Povucite element\",\n },\n //questionTypes\n qt: {\n default: \"Zadani\",\n checkbox: \"Ček\",\n comment: \"Komentar\",\n imagepicker: \"Berač slika\",\n image: \"Slike\",\n dropdown: \"Padajući\",\n file: \"Datoteku\",\n html: \"Html\",\n matrix: \"Matrica (jedan izbor)\",\n matrixdropdown: \"Matrica (višestruki izbor)\",\n matrixdynamic: \"Matrica (dinamički redovi)\",\n multipletext: \"Više teksta\",\n panel: \"Ploča\",\n paneldynamic: \"Ploča (dinamički paneli)\",\n radiogroup: \"Radiogrupa\",\n rating: \"Ocjena\",\n text: \"Jedan ulaz\",\n boolean: \"Booleova\",\n expression: \"Izraz (samo za čitanje)\",\n signaturepad: \"Jastučić za potpis\",\n flowpanel: \"Ploča protoka\",\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Zadani ({0})\",\n survey: \"Anketa\",\n settings: \"Postavke ankete\",\n settingsTooltip: \"Otvaranje postavki ankete\",\n //opjectPropertiesHeader: \"Advanced\",\n //showObjectProperties: \"Show Object Properties\",\n //hideObjectProperties: \"Hide Object Properties\",\n showPanel: \"Pokaži ploču\",\n hidePanel: \"Sakrij ploču\",\n //editSurvey: \"Edit Survey\",\n addNewPage: \"Dodavanje nove stranice\",\n moveRight: \"Pomicanje udesno\",\n moveLeft: \"Pomicanje ulijevo\",\n deletePage: \"Brisanje stranice\",\n editPage: \"Uređivanje stranice\",\n edit: \"Uređivanje\",\n newPageName: \"stranica\",\n newQuestionName: \"pitanje\",\n newPanelName: \"ploča\",\n newTextItemName: \"tekst\",\n testSurvey: \"Ispitna anketa\",\n testSurveyAgain: \"Ponovno probna anketa\",\n testSurveyWidth: \"Širina ankete: \",\n navigateToMsg: \"Morao si navigirati do:\",\n logic: \"Logika ankete\",\n embedSurvey: \"Ugrađena anketa\",\n translation: \"Prijevod\",\n saveSurvey: \"Spremi anketu\",\n saveSurveyTooltip: \"Spremi anketu\",\n designer: \"Dizajner ankete\",\n jsonEditor: \"JSON urednik\",\n undo: \"Poništiti\",\n redo: \"Ponoviti\",\n undoTooltip: \"Poništi posljednju promjenu\",\n redoTooltip: \"Preusmjeti promjenu\",\n copy: \"Kopirati\",\n cut: \"Izrezati\",\n paste: \"Zalijepite\",\n copyTooltip: \"Kopiranje odabira u međuspremnik\",\n cutTooltip: \"Izrežite odabir na međuspremnik\",\n pasteTooltip: \"Pasta iz međuspremnika\",\n options: \"Mogućnosti\",\n generateValidJSON: \"Generiranje valjanog JSON\",\n generateReadableJSON: \"Generiranje čitljivog JSON\",\n toolbox: \"Alatni okvir\",\n \"property-grid\": \"Svojstva\",\n toolboxGeneralCategory: \"Općenito\",\n //delSelObject: \"Delete selected object\",\n //editSelObject: \"Edit selected object\",\n correctJSON: \"Ispravite JSON.\",\n surveyResults: \"Rezultat ankete: \",\n surveyResultsTable: \"Kao tablica\",\n surveyResultsJson: \"Kao JSON\",\n resultsTitle: \"Naslov pitanja\",\n resultsName: \"Naziv pitanja\",\n resultsValue: \"Vrijednost odgovora\",\n resultsDisplayValue: \"Vrijednost prikaza\",\n modified: \"Izmjena\",\n saving: \"Spremanje\",\n saved: \"Spremiti\",\n propertyEditorError: \"Pogreška:\",\n saveError: \"Pogreška! Sadržaj urednika nije spremljen.\",\n translationAddLanguage: \"Odaberite jezik za prevođenje\",\n translationShowAllStrings: \"Pokažite sve žice\",\n translationShowAllPages: \"Pokažite sve stranice\",\n translationNoStrings: \"Nema žica za prevođenje. Promijenite filtar.\",\n translationExportToSCVButton: \"Izvoz u CSV\",\n translationImportFromSCVButton: \"Uvoz iz CSV\",\n translationMergeLocaleWithDefault: \"Spajanje {0} sa zadanim lokalomwith default locale.\",\n bold: \"podebljano\",\n italic: \"kurziv\",\n underline: \"podcrtavanje\",\n fpAddQuestion: \"Dodaj pitanje...\",\n selectPage: \"Odaberite stranicu...\",\n chooseElement: \"Odaberite element...\",\n //completedHtmlOnConditionItemText: \"Show if:\",\n lg: {\n addNewItem: \"\",\n //Logic tab strings\n page_visibilityName: \"Vidljivost stranice\",\n panel_visibilityName: \"Vidljivost panela\",\n panel_enableName: \"Omogući/onemogući panel\",\n question_visibilityName: \"Vidljivost pitanja\",\n question_enableName: \"Pitanje omogućuje/onesposobljava\",\n question_requireName: \"Pitanje nije obavezno\",\n trigger_completeName: \"Potpuna anketa\",\n trigger_setvalueName: \"Postavite vrijednost pitanja\",\n trigger_copyvalueName: \"Kopiranje vrijednosti pitanja\",\n trigger_skipName: \"Prijeđite na pitanje\",\n trigger_runExpressionName: \"Pokretanje prilagođenog izraza\",\n completedHtmlOnConditionName: \"Prilagođeni 'Thank you page' tekst\",\n page_visibilityDescription: \"Učinite stranicu vidljivom kada se logička ekspresija vrati istinitom. Inače neka bude nevidljivo.\",\n panel_visibilityDescription: \"Učinite ploču vidljivom kada se logička ekspresija vrati istinitom. Inače ga držati nevidljivim.\",\n panel_enableDescription: \"Učinite ploču i sve elemente unutar nje omogućite kada se logička ekspresija vrati istinita. Inače ih držite onesposobljenima.\",\n question_visibilityDescription: \"Učinite pitanje vidljivim kada se logička ekspresija vrati istinita. Inače ga držati nevidljivim.\",\n question_enableDescription: \"Omogućite pitanje kada se logička ekspresija vrati istinita. Inače ga držati onemogućen.\",\n question_requireDescription: \"Pitanje postaje potrebno kada se logička ekspresija vrati istinita.\",\n trigger_completeDescription: \"Kada se logička ekspresija vrati istinita, anketa postaje dovršena i krajnji korisnik vidi 'Thank you page'.\",\n trigger_setvalueDescription: \"Kada se vrijednosti pitanja, koje se koriste u logičkom izrazu, mijenjaju i logička ekspresija se vraća istinita, tada se vrijednost postavlja na odabrano pitanje.\",\n trigger_copyvalueDescription: \"Kada se vrijednosti pitanja, koje se koriste u logičkoj ekspresiji, mijenjaju i logička ekspresija se vraća istinita, tada se vrijednost jednog odabranog pitanja kopira na drugo odabrano pitanje.\",\n trigger_skipDescription: \"Kada se logička ekspresija vrati istinita, anketa preskače na / fokusira odabrano pitanje.\",\n trigger_runExpressionDescription: \"Kada se logička ekspresija vrati istinita, tada se izvodi prilagođeni izraz. Taj rezultat izraza možete neobavezno postaviti u odabrano pitanje.\",\n completedHtmlOnConditionDescription: \"Ako se logička ekspresija vrati istinita, zadani tekst za 'Thank you page' mijenja se u zadani.\",\n itemExpressionText: \"Kada se izraz '{0}' vrati istinit\",\n page_visibilityText: \"Učinite stranicu {0} vidljivom\",\n panel_visibilityText: \"Učinite ploču {0} vidljivom\",\n panel_enableText: \"Omogući panel x {0}\",\n question_visibilityText: \"Učinite pitanje {0} vidljivim\",\n question_enableText: \"Omogući pitanje {0}\",\n question_requireText: \"Neka pitanje {0} bude potrebno\",\n trigger_completeText: \"Anketa se dovrša\",\n trigger_setvalueText: \"Postavljeno u pitanje: {0} vrijednost {1}\",\n trigger_copyvalueText: \"Kopirajte u pitanje: {0} vrijednost od pitanja {1}\",\n trigger_skipText: \"Anketa preskače na pitanje {0}\",\n trigger_runExpressionText1: \"Pokretanje izraza: '{0}'\",\n trigger_runExpressionText2: \" i dovela u pitanje svoj rezultat: {0}\",\n completedHtmlOnConditionText: \"Prikazati prilagođeni tekst za 'Thank you page'.\",\n conditions: \"Stanje/Stanja\",\n actions: \"Akcije\",\n expressionEditorTitle: \"Definiranje uvjeta\",\n actionsEditorTitle: \"Definiranje radnji\",\n deleteAction: \"Brisanje radnje\",\n addNewAction: \"Dodavanje nove akcije\",\n selectedActionCaption: \"Odaberite radnju za dodavanje...\",\n expressionInvalid: \"Logička ekspresija je prazna ili nevažeća. Molim vas, ispravite to.\",\n noActionError: \"Molim vas, dodajte barem jednu akciju.\",\n actionInvalid: \"Molimo vas da riješite probleme u svojoj akciji.\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n },\n //Property names in table headers\n // pel: {\n // isRequired: \"Required?\"\n // },\n //Property Editors\n pe: {\n apply: \"Primijeniti\",\n ok: \"OK\",\n save: \"Spremiti\",\n saveTooltip: \"Spremiti\",\n cancel: \"Otkazati\",\n reset: \"Resetirati\",\n refresh: \"Osvježi\",\n // close: \"Close\",\n delete: \"Izbrisati\",\n add: \"Dodati\",\n addNew: \"Dodaj novo\",\n addItem: \"Kliknite da biste dodali stavku...\",\n addOther: \"Drugih\",\n addSelectAll: \"Odaberite sve\",\n addNone: \"Nitko\",\n removeAll: \"Uklonite sve\",\n edit: \"Uređivanje\",\n back: \"Povratak bez uštede\",\n backTooltip: \"Povratak bez uštede\",\n saveAndBack: \"Spremanje i vraćanje\",\n saveAndBackTooltip: \"Spremanje i vraćanje\",\n // itemValueEdit: \"Visible If\",\n editChoices: \"Uređivanje izbora\",\n showChoices: \"Pokažite izbore\",\n move: \"Premjestiti\",\n empty: \"\",\n // notEmpty: \"\",\n fastEntry: \"Brzi unos\",\n formEntry: \"Unos obrasca\",\n testService: \"Testirajte uslugu\",\n itemSelectorEmpty: \"Odaberite element\",\n conditionActionEmpty: \"Odaberite radnju\",\n conditionSelectQuestion: \"Odaberite pitanje...\",\n conditionSelectPage: \"Odaberite stranicu...\",\n conditionSelectPanel: \"Odabir ploče...\",\n conditionValueQuestionTitle: \"Unesite/odaberite vrijednost\",\n // conditionHelp:\n // \"Please enter a boolean expression. It should return true to keep the question/page visible. For example: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"Možete koristiti kovrčave nosače kako biste dobili pristup vrijednostima pitanja: {question1} + {question2}, ({price}*{quantity}) * (100 - {discount}). Funkcije možete koristiti kao: iif(), today(), age(), min(), max(), count(), avg() and others.\",\n aceEditorHelp: \"Pritisnite ctrl + prostor kako biste dobili savjet o završetku ekspresije\",\n aceEditorRowTitle: \"Trenutni redk\",\n aceEditorPanelTitle: \"Trenutna ploča\",\n showMore: \"Više detalja potražite u dokumentaciji\",\n // conditionShowMoreUrl:\n // \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Dostupna pitanja:\",\n cellsEmptyRowsColumns: \"Trebao bi postojati barem jedan stupac ili red\",\n propertyIsEmpty: \"Unesite vrijednost\",\n propertyIsNoUnique: \"Unesite jedinstvenu vrijednost\",\n propertyNameIsNotUnique: \"Unesite jedinstveno ime\",\n listIsEmpty: \"Dodavanje nove stavke\",\n expressionIsEmpty: \"Izraz je prazan\",\n value: \"Vrijednost\",\n text: \"tekst\",\n rowid: \"ID redaka\",\n imageLink: \"Veza slike\",\n columnEdit: \"Uređivanje stupca: {0}\",\n itemEdit: \"Uređivanje stavke: {0}\",\n url: \"Url\",\n path: \"Put\",\n valueName: \"Naziv vrijednosti\",\n titleName: \"Naziv naslova\",\n titlePlaceholder: \"Ulazni naslov ovdje\",\n surveyTitlePlaceholder: \"Naslov ulazne ankete ovdje\",\n pageTitlePlaceholder: \"Naslov ulazne stranice ovdje\",\n descriptionPlaceholder: \"Unesite opis\",\n surveyDescriptionPlaceholder: \"Unesite opis ankete\",\n pageDescriptionPlaceholder: \"Unesite opis stranice\",\n showOtherItem: \"Ima i drugu stavku\",\n otherText: \"Tekst druge stavke\",\n showNoneItem: \"Nema stavku\",\n noneText: \"Nijedan tekst stavke\",\n hasSelectAll: \"Sadrži odaberite sve stavke\",\n selectAllText: \"Odaberite sve stavke tekst\",\n choicesMin: \"Minimalna vrijednost za automatski generirane stavke\",\n choicesMax: \"Maksimalna vrijednost za automatski generirane stavke\",\n choicesStep: \"Razlika između automatski generiranih stavki\",\n name: \"Ime\",\n title: \"Naslov\",\n cellType: \"Vrsta ćelije\",\n colCount: \"Broj stupaca\",\n choicesOrder: \"Odaberite redoslijed izbora\",\n visible: \"Je li vidljivo?\",\n isRequired: \"Je potrebno?\",\n isAllRowRequired: \"Zahtijevati odgovor za sve redove\",\n requiredErrorText: \"Potreban tekst pogreške\",\n startWithNewLine: \"Počinje li s novom linijom?\",\n rows: \"Broj redaka\",\n cols: \"Broj stupaca\",\n placeholder: \"Držač ulaznog mjesta\",\n showPreview: \"Prikaz područja pretpregleda\",\n storeDataAsText: \"Pohranite sadržaj datoteke u rezultat JSON kao tekst\",\n maxSize: \"Maksimalna veličina datoteke u bytes\",\n imageHeight: \"Visina slike\",\n imageWidth: \"Širina slike\",\n rowCount: \"Broj redaka\",\n columnLayout: \"Raspored stupaca\",\n addRowLocation: \"Dodavanje lokacije gumba redaka\",\n addRowText: \"Dodavanje teksta gumba redak\",\n removeRowText: \"Uklanjanje teksta gumba redaka\",\n rateMin: \"Minimalna stopa\",\n rateMax: \"Maksimalna stopa\",\n rateStep: \"Korak stope\",\n minRateDescription: \"Opis minimalne stope\",\n maxRateDescription: \"Opis maksimalne stope\",\n inputType: \"Vrsta unosa\",\n optionsCaption: \"Opis opcija\",\n defaultValue: \"Zadana vrijednost\",\n cellsDefaultRow: \"Zadani tekstovi ćelija\",\n surveyEditorTitle: \"Uređivanje postavki ankete\",\n qEditorTitle: \"Uređivanje: {0}\",\n maxLength: \"Maksimalna duljina\",\n buildExpression: \"Graditi\",\n editExpression: \"Uređivanje\",\n and: \"I\",\n or: \"Ili\",\n remove: \"Ukloniti\",\n addCondition: \"Dodavanje stanja\",\n //survey\n showTitle: \"Pokaži/sakrij naslov\",\n expandCollapseTitle: \"Naslov proširenja/kolapsa\",\n locale: \"Zadani jezik\",\n simulator: \"Odaberite uređaj\",\n landscapeOrientation: \"Krajolik\",\n mode: \"Način rada (samo uređivanje/čitanje)\",\n clearInvisibleValues: \"Jasne nevidljive vrijednosti\",\n cookieName: \"Naziv kolačića (onemogućiti anketu dva puta lokalno)\",\n sendResultOnPageNext: \"Pošaljite rezultate ankete na sljedeću stranicu\",\n storeOthersAsComment: \"Pohranite vrijednost 'others' u zasebnom polju\",\n showPageTitles: \"Prikazate naslove stranica\",\n showPageNumbers: \"Prikazate brojeve stranica\",\n pagePrevText: \"Tekst prethodnog gumba stranice\",\n pageNextText: \"Tekst sljedećeg gumba stranice\",\n completeText: \"Complete button text\",\n previewText: \"Tekst gumba za pretpregled\",\n editText: \"Uređivanje teksta gumba\",\n startSurveyText: \"Tekst gumba za pokretanje\",\n showNavigationButtons: \"Prikakanje navigacijskih tipki (zadana navigacija)\",\n showPrevButton: \"Prikagnite prethodni gumb (korisnik se može vratiti na prethodnu stranicu)\",\n firstPageIsStarted: \"Prva stranica u anketi je početna stranica.\",\n showCompletedPage: \"Prikagušite dovršenu stranicu na kraju (completedHtml)\",\n goNextPageAutomatic: \"Kada odgovarate na sva pitanja, idite automatski na sljedeću stranicu\",\n showProgressBar: \"Pokaži traku napretka\",\n questionTitleLocation: \"Lokacija naslova pitanja\",\n requiredText: \"Pitanje je zahtijevalo simbole\",\n questionStartIndex: \"Indeks pokretanja pitanja (1, 2 ili 'A', 'a')\",\n showQuestionNumbers: \"Prikazate brojeve pitanja\",\n questionTitleTemplate: \"Predložak naslova pitanja, zadano je: '{no}. {require} {title}'\",\n questionErrorLocation: \"Mjesto pogreške u pitanju\",\n focusFirstQuestionAutomatic: \"Usredotočite prvo pitanje na promjenu stranice\",\n questionsOrder: \"Redoslijed elemenata na stranici\",\n maxTimeToFinish: \"Maksimalno vrijeme za dovršaje ankete\",\n maxTimeToFinishPage: \"Maksimalno vrijeme za dovršanje stranice u anketi\",\n showTimerPanel: \"Pokaži ploču timera\",\n showTimerPanelMode: \"Prikazate način rada timer panela\",\n renderMode: \"Način prikaza\",\n allowAddPanel: \"Dopustite dodavanje ploče\",\n allowRemovePanel: \"Dopustite uklanjanje ploče\",\n panelAddText: \"Dodavanje teksta panela\",\n panelRemoveText: \"Removing panel text\",\n isSinglePage: \"Uklanjanje teksta ploče\",\n html: \"Html\",\n expression: \"Izraz\",\n minValue: \"Minimalna vrijednost\",\n maxValue: \"Maksimalna vrijednost\",\n minLength: \"Minimalna duljina\",\n allowDigits: \"Dopustite znamenke\",\n minCount: \"Minimalno brojanje\",\n maxCount: \"Maksimalni broj\",\n regex: \"Redoviti izraz\",\n totalText: \"Ukupan tekst\",\n totalType: \"Ukupna vrsta\",\n totalExpression: \"Ukupni izraz\",\n totalDisplayStyle: \"Ukupan stil prikaza\",\n totalCurrency: \"Ukupna valuta\",\n totalFormat: \"Ukupan format\",\n // Header adorner\n logoPosition: \"Položaj logotipa\",\n addLogo: \"Dodavanje logotipa...\",\n changeLogo: \"Promjena logotipa...\",\n logoPositions: {\n none: \"Uklanjanje logotipa\",\n left: \"Lijevo\",\n right: \"Desno\",\n top: \"Na vrhu\",\n bottom: \"Na dnu\",\n },\n tabs: {\n general: \"Općenito\",\n fileOptions: \"Mogućnosti\",\n html: \"Html Editor\",\n columns: \"Stupce\",\n rows: \"Redaka\",\n choices: \"Izbora\",\n items: \"Stavke\",\n visibleIf: \"Vidljivo ako\",\n enableIf: \"Omogući ako\",\n requiredIf: \"Potrebno ako\",\n rateValues: \"Vrijednosti cijena\",\n choicesByUrl: \"Izbori s weba\",\n matrixChoices: \"Zadani izbori\",\n multipleTextItems: \"Unosi teksta\",\n numbering: \"Numeriranje\",\n validators: \"Validatori\",\n navigation: \"Navigacija\",\n question: \"Pitanje\",\n pages: \"Stranice\",\n completedHtml: \"Završio Html\",\n completedHtmlOnCondition: \"Završeno Html pod uvjetom\",\n loadingHtml: \"Učitavanje Html\",\n timer: \"Timer/Kviz\",\n calculatedValues: \"Izračunate vrijednosti\",\n triggers: \"Aktivira\",\n templateTitle: \"Naslov predloška\",\n totals: \"Zbrojeve\",\n logic: \"Logika\",\n layout: \"Izgled\",\n data: \"Podataka\",\n validation: \"Provjera valjanosti\",\n cells: \"Ćelije\",\n showOnCompleted: \"Prikazuje se na dovršenom\",\n logo: \"Logotip u naslovu ankete\",\n slider: \"Klizač\",\n others: \"Drugi\",\n },\n editProperty: \"Uređivanje objekta '{0}'\",\n items: \"[ Stavke: {0} ]\",\n enterNewValue: \"Unesite vrijednost.\",\n noquestions: \"U anketi nema nikakvog pitanja.\",\n createtrigger: \"Izradite okidač\",\n titleKeyboardAdornerTip: \"Pritisnite gumb za unos za uređivanje\",\n keyboardAdornerTip: \"Pritisnite gumb enter za uređivanje stavke, pritisnite gumb za brisanje stavke, pritisnite alt plus strelica prema gore ili strelica prema dolje za pomicanje stavke.\",\n triggerOn: \"Na \",\n triggerMakePagesVisible: \"Učinite stranice vidljivima:\",\n triggerMakeQuestionsVisible: \"Učinite elemente vidljivima:\",\n triggerCompleteText: \"Dovršite anketu ako uspijete.\",\n triggerNotSet: \"Okidač nije postavljen\",\n triggerRunIf: \"Trčanje ako\",\n triggerSetToName: \"Promjena vrijednosti: \",\n triggerFromName: \"Vrijednost kopiranja iz: \",\n triggerRunExpression: \"Postisni ovaj izraz:\",\n triggerSetValue: \"za: \",\n triggerGotoName: \"Idi na pitanje:\",\n triggerIsVariable: \"Ne stavljajte varijablu u rezultat ankete.\",\n triggerRunExpressionEmpty: \"Unesite valjani izraz\",\n noFile: \"Nema odabira datoteke\",\n },\n //Property values\n pv: {\n true: \"istina\",\n false: \"lažne\",\n inherit: \"naslijediti\",\n show: \"pokazati\",\n hide: \"sakrij\",\n default: \"zadani\",\n initial: \"početni\",\n random: \"slučajan\",\n collapsed: \"srušio\",\n expanded: \"proširio\",\n none: \"nitko\",\n asc: \"uzlazno\",\n desc: \"silazno\",\n indeterminate: \"neodređeno\",\n decimal: \"decimalna\",\n currency: \"valute\",\n percent: \"posto\",\n firstExpanded: \"firstExpanded\",\n off: \"isključeno\",\n onPanel: \"onPanel\",\n onSurvey: \"onSurvey\",\n list: \"popis\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n top: \"top\",\n bottom: \"bottom\",\n topBottom: \"top and bottom\",\n both: \"oba\",\n left: \"lijevo\",\n color: \"boja\",\n date: \"datum\",\n datetime: \"datetime\",\n \"datetime-local\": \"datetime-local\",\n email: \"email\",\n month: \"month\",\n number: \"number\",\n password: \"password\",\n range: \"range\",\n tel: \"tel\",\n text: \"text\",\n time: \"time\",\n url: \"url\",\n week: \"week\",\n hidden: \"hidden\",\n on: \"on\",\n onPage: \"onPage\",\n edit: \"edit\",\n display: \"display\",\n onComplete: \"onComplete\",\n onHidden: \"onHidden\",\n all: \"all\",\n page: \"page\",\n survey: \"survey\",\n onNextPage: \"onNextPage\",\n onValueChanged: \"onValueChanged\",\n singlePage: \"single page\",\n standard: \"standard\",\n questionPerPage: \"question per page\",\n noPreview: \"no preview\",\n showAllQuestions: \"show preview with all questions\",\n showAnsweredQuestions: \"show preview with answered questions\",\n },\n //Operators\n op: {\n empty: \"is empty\",\n notempty: \"is not empty\",\n equal: \"equals\",\n notequal: \"not equals\",\n contains: \"contains\",\n notcontains: \"not contains\",\n anyof: \"any of\",\n allof: \"all of\",\n greater: \"greater\",\n less: \"less\",\n greaterorequal: \"greater or equals\",\n lessorequal: \"less or equals\",\n and: \"and\",\n or: \"or\",\n },\n //Embed window\n ew: {\n angular: \"Koristite kutnu verziju\",\n jquery: \"Koristite jQuery verziju\",\n knockout: \"Korištenje nokaut verzije\",\n react: \"Korištenje verzije React\",\n vue: \"Koristite Vue verziju\",\n bootstrap: \"Za bootstrap okvir\",\n modern: \"Moderna tema\",\n default: \"Zadana tema\",\n orange: \"Narančasta tema\",\n darkblue: \"Darkblue tema\",\n darkrose: \"Darkrose tema\",\n stone: \"Kamena tema\",\n winter: \"Zimska tema\",\n winterstone: \"Tema Zimsko-kamen\",\n showOnPage: \"Pokažite anketu na stranici\",\n showInWindow: \"Pokažite anketu u prozoru\",\n loadFromServer: \"Učitavanje Survey JSON s poslužitelja\",\n titleScript: \"Skripte i stilovi\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Odaberite stranicu da biste je testirali:\",\n showInvisibleElements: \"Pokaži nevidljive elemente\",\n },\n validators: {\n answercountvalidator: \"broj odgovora\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"expression\",\n numericvalidator: \"numeric\",\n regexvalidator: \"regex\",\n textvalidator: \"text\",\n },\n triggers: {\n completetrigger: \"potpuna anketa\",\n setvaluetrigger: \"postavljena vrijednost\",\n copyvaluetrigger: \"vrijednost kopiranja\",\n skiptrigger: \"preskočiti na pitanje\",\n runexpressiontrigger: \"pokrenuti izraz\",\n visibletrigger: \"promjena vidljivosti (amortizirati)\",\n },\n pehelp: {\n //expression:\n },\n //Properties\n p: {\n name: \"name\",\n title: {\n name: \"title\",\n title: \"Ostavite prazno, ako je isto kao 'Name'\",\n },\n navigationButtonsVisibility: \"navigationButtonsVisibility\",\n questionsOrder: \"questionsOrder\",\n maxTimeToFinish: \"maxTimeToFinish\",\n visible: \"visible\",\n visibleIf: \"visibleIf\",\n questionTitleLocation: \"questionTitleLocation\",\n description: \"description\",\n state: \"state\",\n isRequired: \"isRequired\",\n requiredIf: \"requiredIf\",\n indent: \"indent\",\n requiredErrorText: \"requiredErrorText\",\n startWithNewLine: \"startWithNewLine\",\n innerIndent: \"innerIndent\",\n page: \"page\",\n width: \"width\",\n commentText: \"commentText\",\n valueName: \"valueName\",\n enableIf: \"enableIf\",\n defaultValue: \"defaultValue\",\n correctAnswer: \"correctAnswer\",\n readOnly: \"readOnly\",\n validators: \"validators\",\n titleLocation: \"titleLocation\",\n hasComment: \"hasComment\",\n showOtherItem: \"hasOther\",\n choices: \"choices\",\n choicesOrder: \"choicesOrder\",\n choicesByUrl: \"choicesByUrl\",\n otherText: \"otherText\",\n otherErrorText: \"otherErrorText\",\n storeOthersAsComment: \"storeOthersAsComment\",\n label: \"label\",\n showTitle: \"showTitle\",\n valueTrue: \"valueTrue\",\n valueFalse: \"valueFalse\",\n cols: \"cols\",\n rows: \"rows\",\n optionsCaption: \"optionsCaption\",\n expression: \"expression\",\n format: \"format\",\n displayStyle: \"displayStyle\",\n currency: \"currency\",\n useGrouping: \"useGrouping\",\n showPreview: \"showPreview\",\n allowMultiple: \"allowMultiple\",\n imageHeight: \"imageHeight\",\n imageWidth: \"imageWidth\",\n storeDataAsText: \"storeDataAsText\",\n maxSize: \"maxSize\",\n html: \"html\",\n columns: \"columns\",\n cells: \"cells\",\n isAllRowRequired: \"isAllRowRequired\",\n horizontalScroll: \"horizontalScroll\",\n cellType: \"cellType\",\n columnsLayout: \"columnsLayout\",\n columnColCount: \"columnColCount\",\n columnMinWidth: \"columnMinWidth\",\n rowCount: \"rowCount\",\n minRowCount: \"minRowCount\",\n maxRowCount: \"maxRowCount\",\n keyName: \"keyName\",\n keyDuplicationError: \"keyDuplicationError\",\n confirmDelete: \"confirmDelete\",\n confirmDeleteText: \"confirmDeleteText\",\n addRowLocation: \"addRowLocation\",\n addRowText: \"addRowText\",\n removeRowText: \"removeRowText\",\n items: \"items\",\n itemSize: \"itemSize\",\n colCount: \"colCount\",\n templateTitle: \"templateTitle\",\n templateDescription: \"templateDescription\",\n allowAddPanel: \"allowAddPanel\",\n allowRemovePanel: \"allowRemovePanel\",\n panelCount: \"panelCount\",\n minPanelCount: \"minPanelCount\",\n maxPanelCount: \"maxPanelCount\",\n panelsState: \"panelsState\",\n panelAddText: \"panelAddText\",\n panelRemoveText: \"panelRemoveText\",\n panelPrevText: \"panelPrevText\",\n panelNextText: \"panelNextText\",\n showQuestionNumbers: \"showQuestionNumbers\",\n showRangeInProgress: \"showRangeInProgress\",\n renderMode: \"renderMode\",\n templateTitleLocation: \"templateTitleLocation\",\n rateValues: \"rateValues\",\n rateMin: \"rateMin\",\n rateMax: \"rateMax\",\n rateStep: \"rateStep\",\n minRateDescription: \"minRateDescription\",\n maxRateDescription: \"maxRateDescription\",\n inputType: \"inputType\",\n size: \"size\",\n locale: \"locale\",\n focusFirstQuestionAutomatic: \"focusFirstQuestionAutomatic\",\n completedHtml: \"completedHtml\",\n completedBeforeHtml: \"completedBeforeHtml\",\n loadingHtml: \"loadingHtml\",\n triggers: \"triggers\",\n cookieName: \"cookieName\",\n sendResultOnPageNext: \"sendResultOnPageNext\",\n showNavigationButtons: \"showNavigationButtons\",\n showPrevButton: \"showPrevButton\",\n showPageTitles: \"showPageTitles\",\n showCompletedPage: \"showCompletedPage\",\n showPageNumbers: \"showPageNumbers\",\n questionErrorLocation: \"questionErrorLocation\",\n showProgressBar: \"showProgressBar\",\n mode: \"mode\",\n goNextPageAutomatic: \"goNextPageAutomatic\",\n checkErrorsMode: \"checkErrorsMode\",\n clearInvisibleValues: \"clearInvisibleValues\",\n startSurveyText: \"startSurveyText\",\n pagePrevText: \"pagePrevText\",\n pageNextText: \"pageNextText\",\n completeText: \"completeText\",\n requiredText: \"requiredText\",\n questionStartIndex: \"questionStartIndex\",\n questionTitleTemplate: \"questionTitleTemplate\",\n firstPageIsStarted: \"firstPageIsStarted\",\n isSinglePage: \"isSinglePage\",\n maxTimeToFinishPage: \"maxTimeToFinishPage\",\n showTimerPanel: \"showTimerPanel\",\n showTimerPanelMode: \"showTimerPanelMode\",\n defaultPanelValue: \"defaultPanelValue\",\n defaultRowValue: \"defaultRowValue\",\n showNoneItem: \"hasNone\",\n noneText: \"noneText\",\n text: \"text\",\n },\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"hr\"] = hrStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/czech.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/czech.ts ***!\n \\***********************************/\n/*! exports provided: czStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"czStrings\", function() { return czStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar czStrings = {\n ed: {\n addNewPage: \"Přidat novou stránku\",\n bold: \"Tučně\",\n chooseElement: \"Vybrat dokument...\",\n copy: \"Kopírovat\",\n copyTooltip: \"Zkopírovat výběr do schránky\",\n correctJSON: \"Opravte JSON.\",\n cut: \"Vyjmout\",\n cutTooltip: \"Vyjmout výběr do schránky\",\n defaultLocale: \"Výchozí ({0})\",\n deletePage: \"Smazat stránku\",\n designer: \"Návrhář průzkumů\",\n edit: \"Upravit\",\n editPage: \"Upravit stránku\",\n embedSurvey: \"Vložit průzkum\",\n fpAddQuestion: \"Přidat otázku...\",\n generateReadableJSON: \"Generovat čitelný JSON\",\n generateValidJSON: \"Generovat platný JSON\",\n hidePanel: \"Skrýt panel\",\n italic: \"Kurzíva\",\n jsonEditor: \"Editor JSON\",\n lg: {\n actionInvalid: \"Opravte prosím problémy v akcích.\",\n actions: \"Akce\",\n actionsEditorTitle: \"Definovat akce\",\n addNewAction: \"Přidat novou akci\",\n addNewItem: \"Přidat nové pravidlo\",\n completedHtmlOnConditionDescription: \"Pokud logický výraz vrátí hodnotu true, změní se výchozí text stránky s poděkováním na zadaný text.\",\n completedHtmlOnConditionName: \"Vlastní text stránky s poděkováním\",\n completedHtmlOnConditionText: \"Zobrazit vlastní text pro stránku s poděkováním.\",\n conditions: \"Podmínky\",\n deleteAction: \"Smazat akci\",\n expressionEditorTitle: \"Definovat podmínky\",\n expressionInvalid: \"Logický výraz je prázdný nebo neplatný. Opravte jej.\",\n itemExpressionText: \"Pokud výraz „{0}“ vrátí hodnotu true:\",\n noActionError: \"Přidejte alespoň jednu akci.\",\n page_visibilityDescription: \"Zobrazení stránky, když se logický výraz vrátí jako true. V opačném případě zůstane neviditelná.\",\n page_visibilityName: \"Viditelnost stránky\",\n page_visibilityText: \"Zobrazit stránku {0}\",\n panel_enableDescription: \"Panel a všechny prvky v něm se aktivují, když logický výraz vrátí hodnotu true. V opačném případě je nechte vypnuté.\",\n panel_enableName: \"Zapnutí/vypnutí panelu\",\n panel_enableText: \"Povolit panel {0}\",\n panel_visibilityDescription: \"Zobrazení panel, když se logický výraz vrátí jako true. V opačném případě zůstane neviditelný.\",\n panel_visibilityName: \"Viditelnost panelu\",\n panel_visibilityText: \"Zobrazit panel {0}\",\n question_enableDescription: \"Povolit otázku, když logický výraz vrátí hodnotu true. V opačném případě zůstane neviditelná.\",\n question_enableName: \"Zapnutí/vypnutí otázky\",\n question_enableText: \"Povolit otázku {0}\",\n question_requireDescription: \"Otázka se stává povinnou, když logický výraz vrátí hodnotu true.\",\n question_requireName: \"Otázka nepovinná vyžadována\",\n question_requireText: \"Otázka {0} je povinná\",\n question_visibilityDescription: \"Zobrazit otázku, když logický výraz vrátí hodnotu true. V opačném případě zůstane neviditelná.\",\n question_visibilityName: \"Viditelnost otázky\",\n question_visibilityText: \"Zobrazit otázku {0}\",\n selectedActionCaption: \"Vyberte akci, kterou chcete přidat...\",\n trigger_completeDescription: \"Když logický výraz vrátí hodnotu true, průzkum je dokončen a koncovému uživateli se zobrazí stránka s poděkováním.\",\n trigger_completeName: \"Dokončení průzkumu\",\n trigger_completeText: \"Průzkum se stává dokončeným\",\n trigger_copyvalueDescription: \"Pokud se změní hodnoty otázek, které jsou použity v logickém výrazu, a logický výraz vrátí hodnotu true, pak se hodnota jedné vybrané otázky zkopíruje do jiné vybrané otázky.\",\n trigger_copyvalueName: \"Kopírovat hodnotu otázky\",\n trigger_copyvalueText: \"Kopírovat do otázky: {0} hodnota z otázky {1}\",\n trigger_runExpressionDescription: \"Pokud logický výraz vrátí hodnotu true, provede se vlastní výraz. Výsledek tohoto výrazu můžete volitelně nastavit do vybrané otázky.\",\n trigger_runExpressionName: \"Spuštění vlastního výrazu\",\n trigger_runExpressionText1: \"Spustit výraz: „{0}“\",\n trigger_runExpressionText2: \" a zpochybnit jeho výsledek: {0}\",\n trigger_setvalueDescription: \"Pokud se změní hodnoty otázek, které jsou použity v logickém výrazu, a logický výraz vrátí hodnotu true, nastaví se hodnota na vybranou otázku.\",\n trigger_setvalueName: \"Nastavení hodnoty otázky\",\n trigger_setvalueText: \"Zpochybnit: {0} hodnota {1}\",\n trigger_skipDescription: \"Pokud logický výraz vrátí hodnotu true, průzkum přejde na vybranou otázku/zaměří se na ni.\",\n trigger_skipName: \"Přeskočit na otázku\",\n trigger_skipText: \"Průzkum přeskočí na otázku {0}\"\n },\n logic: \"Logika průzkumu\",\n modified: \"Upraveno\",\n moveLeft: \"Přejděte doleva\",\n moveRight: \"Přejděte doprava\",\n navigateToMsg: \"Museli jste přejít na:\",\n newPageName: \"stránka\",\n newPanelName: \"panel\",\n newQuestionName: \"otázka\",\n newTextItemName: \"text\",\n options: \"Možnosti\",\n paste: \"Vložit\",\n pasteTooltip: \"Vložit ze schránky\",\n \"property-grid\": \"Vlastnosti\",\n propertyEditorError: \"Chyba:\",\n redo: \"Opětovně vrátit\",\n redoTooltip: \"Znovu provést změnu\",\n resultsDisplayValue: \"Hodnota zobrazení\",\n resultsName: \"Název otázky\",\n resultsTitle: \"Nadpis otázky\",\n resultsValue: \"Hodnota odpovědi\",\n saved: \"Uloženo\",\n saveError: \"Chyba! Obsah editoru není uložen.\",\n saveSurvey: \"Uložit průzkum\",\n saveSurveyTooltip: \"Uložit průzkum\",\n saving: \"Ukládání\",\n selectPage: \"Vyberte stránku...\",\n settings: \"Nastavení průzkumu\",\n settingsTooltip: \"Otevřít nastavení průzkumu\",\n showPanel: \"Zobrazit panel\",\n survey: \"Průzkum\",\n surveyResults: \"Výsledek průzkumu: \",\n surveyResultsJson: \"Jako JSON\",\n surveyResultsTable: \"Jako tabulka\",\n testSurvey: \"Otestovat průzkum\",\n testSurveyAgain: \"Znovu otestovat průzkum\",\n testSurveyWidth: \"Šířka průzkumu: \",\n toolbox: \"Sada nástrojů\",\n toolboxGeneralCategory: \"Obecné\",\n translation: \"Překlad\",\n translationAddLanguage: \"Vyberte jazyk pro překlad\",\n translationExportToSCVButton: \"Export do CSV\",\n translationImportFromSCVButton: \"Import z CSV\",\n translationMergeLocaleWithDefault: \"Sloučit {0} s výchozím lokálem\",\n translationNoStrings: \"Žádné řetězce k překladu. Změňte filtr.\",\n translationShowAllPages: \"Zobrazit všechny stránky\",\n translationShowAllStrings: \"Zobrazit všechny řetězce\",\n underline: \"Podtržení\",\n undo: \"Zrušit\",\n undoTooltip: \"Vrátit poslední změnu\"\n },\n ew: {\n angular: \"Použít verzi Angular\",\n bootstrap: \"Pro framework bootstrap\",\n darkblue: \"Tmavěmodrý motiv\",\n darkrose: \"Tmavěrůžový motiv\",\n default: \"Výchozí motiv\",\n jquery: \"Použít verzi jQuery\",\n knockout: \"Použít verzi Knockout\",\n loadFromServer: \"Načíst průzkum JSON ze serveru\",\n modern: \"Moderní motiv\",\n orange: \"Oranžový motiv\",\n react: \"Použít verzi React\",\n showInWindow: \"Zobrazit průzkum v okně\",\n showOnPage: \"Zobrazit průzkum na stránce\",\n stone: \"Kamenný motiv\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n titleScript: \"Skripty a styly\",\n vue: \"Použít verzi Vue\",\n winter: \"Zimní motiv\",\n winterstone: \"Téma zima-kámen\"\n },\n op: {\n allof: \"všechny\",\n and: \"a\",\n anyof: \"žádný z\",\n contains: \"obsahuje\",\n empty: \"je prázdný\",\n equal: \"rovná se\",\n greater: \"větší\",\n greaterorequal: \"větší nebo se rovná\",\n less: \"nižší\",\n lessorequal: \"nižší nebo se rovná\",\n notcontains: \"neobsahuje\",\n notempty: \"není prázdný\",\n notequal: \"nerovná se\",\n or: \"nebo\"\n },\n p: {\n title: {\n title: \"Nechte pole prázdné, pokud je stejné jako „Název”\"\n }\n },\n pe: {\n aceEditorHelp: \"Stisknutím kláves ctrl+mezerník získáte nápovědu k dokončení výrazu\",\n aceEditorPanelTitle: \"Aktuální panel\",\n aceEditorRowTitle: \"Aktuální řádek\",\n add: \"Přidat\",\n addCondition: \"Přidat podmínku\",\n addItem: \"Kliknutím přidáte položku...\",\n addLogo: \"Přidat logo...\",\n addNew: \"Přidat novou\",\n addNone: \"Žádné\",\n addOther: \"Ostatní\",\n addRowLocation: \"Přidat umístění tlačítka řádku\",\n addRowText: \"Přidat text tlačítka řádku\",\n addSelectAll: \"Vybrat vše\",\n allowAddPanel: \"Povolit přidání panelu\",\n allowDigits: \"Povolit číslice\",\n allowEmptyResponse: \"Povolit prázdnou odpověď\",\n allowRemovePanel: \"Povolit odstranění panelu\",\n and: \"A\",\n apply: \"Použít\",\n assistantTitle: \"Dostupné otázky:\",\n back: \"Návrat bez uložení\",\n backTooltip: \"Návrat bez uložení\",\n buildExpression: \"Vytvořit\",\n cancel: \"Zrušit\",\n cellsDefaultRow: \"Výchozí texty buněk\",\n cellsEmptyRowsColumns: \"Měl by existovat alespoň jeden sloupec nebo řádek.\",\n cellType: \"Typ buňky\",\n changeLogo: \"Změnit logo...\",\n choicesMax: \"Maximální hodnota pro automaticky generované položky\",\n choicesMin: \"Minimální hodnota pro automaticky generované položky\",\n choicesOrder: \"Vyberte pořadí voleb\",\n choicesStep: \"Rozdíl mezi automaticky generovanými položkami\",\n clearInvisibleValues: \"Vymazat neviditelné hodnoty\",\n colCount: \"Počet sloupců\",\n cols: \"Počet sloupců\",\n columnEdit: \"Upravit sloupec: {0}\",\n columnLayout: \"Rozložení sloupců\",\n completeText: \"Úplný text tlačítka\",\n conditionActionEmpty: \"Vyberte akci\",\n conditionSelectPage: \"Vyberte stránku...\",\n conditionSelectPanel: \"Vyberte panel...\",\n conditionSelectQuestion: \"Vyberte otázku...\",\n conditionValueQuestionTitle: \"Zadejte/vyberte hodnotu\",\n cookieName: \"Název souboru cookie (pro zakázání dvojího lokálního spuštění průzkumu)\",\n createtrigger: \"Vytvořte spouštěč\",\n defaultValue: \"Výchozí hodnota\",\n delete: \"Smazat\",\n descriptionPlaceholder: \"Zadejte popis\",\n edit: \"Upravit\",\n editChoices: \"Upravit volby\",\n editExpression: \"Upravit\",\n editProperty: \"Upravit vlastnost „{0}“\",\n editText: \"Text tlačítka úpravy\",\n enterNewValue: \"Zadejte hodnotu.\",\n expandCollapseTitle: \"Rozbalit/sbalit název\",\n expression: \"Výraz\",\n expressionHelp: \"Pro přístup k hodnotám otázek můžete použít složené závorky: {otázka1} + {otázka2}, ({cena}*{množství}) * (100 - {sleva}). Můžete použít funkce jako: iif(), today(), age(), min(), max(), count(), avg() a další.\",\n expressionIsEmpty: \"Výraz je prázdný\",\n fastEntry: \"Rychlý vstup\",\n firstPageIsStarted: \"První stránka průzkumu je úvodní stránka.\",\n focusFirstQuestionAutomatic: \"Zaměřte se na první otázku týkající se změny stránky\",\n formEntry: \"Vstupní formulář\",\n goNextPageAutomatic: \"Po zodpovězení všech otázek automaticky přejít na další stránku\",\n showNoneItem: \"Nemá žádnou položku\",\n showOtherItem: \"Má jinou položku\",\n hasSelectAll: \"Vybral/a všechny položky\",\n html: \"HTML\",\n imageHeight: \"Výška obrázku\",\n imageLink: \"Odkaz na obrázek\",\n imageWidth: \"Šířka obrázku\",\n inputType: \"Typ vstupu\",\n isAllRowRequired: \"Požadovat odpověď pro všechny řádky\",\n isRequired: \"Je vyžadovaný?\",\n isSinglePage: \"Zobrazit všechny prvky na jedné stránce\",\n itemEdit: \"Upravit položku: {0}\",\n items: \"[ Položky: {0} ]\",\n itemSelectorEmpty: \"Vyberte prvek\",\n itemView: \"Zobrazit položku: {0}\",\n keyboardAdornerTip: \"Stisknutím klávesy enter upravíte položku, stisknutím klávesy delete položku odstraníte, stisknutím klávesy alt plus šipky nahoru nebo šipky dolů položku přesunete.\",\n keyboardMoveItemsTip: \"Stisknutím klávesy alt a šipky nahoru nebo šipky dolů přesunete položku\",\n landscapeOrientation: \"Na šířku\",\n listIsEmpty: \"Přidat novou položku\",\n locale: \"Výchozí jazyk\",\n logoPosition: \"Pozice loga\",\n logoPositions: {\n bottom: \"Dole\",\n left: \"Vlevo\",\n none: \"Odstranit logo\",\n right: \"Vpravo\",\n top: \"Nahoře\"\n },\n maxCount: \"Maximální počet\",\n maxLength: \"Maximální délka\",\n maxRateDescription: \"Popis maximální sazby\",\n maxSize: \"Maximální velikost souboru v bajtech\",\n maxTimeToFinish: \"Maximální doba pro dokončení průzkumu\",\n maxTimeToFinishPage: \"Maximální doba pro dokončení stránky v průzkumu\",\n maxValue: \"Maximální hodnota\",\n minCount: \"Minimální počet\",\n minLength: \"Minimální délka\",\n minRateDescription: \"Popis minimální frekvence\",\n minValue: \"Minimální hodnota\",\n mode: \"Režim (pouze pro úpravy/čtení)\",\n move: \"Přesunout\",\n name: \"Název\",\n noFile: \"Nebyl vybrán žádný soubor\",\n noneText: \"Žádný text položky\",\n noquestions: \"V průzkumu není žádná otázka.\",\n ok: \"OK\",\n optionsCaption: \"Popisek možností\",\n or: \"Nebo\",\n otherText: \"Další text položky\",\n pageDescriptionPlaceholder: \"Zadejte popis stránky\",\n pageNextText: \"Text tlačítka další stránky\",\n pagePrevText: \"Text tlačítka předchozí stránky\",\n pageTitlePlaceholder: \"Sem zadejte název stránky\",\n panelAddText: \"Přidávání textu na panel\",\n panelRemoveText: \"Odstraňování textu panelu\",\n path: \"Cesta\",\n placeholder: \"Vstupní zástupný symbol\",\n previewText: \"Text tlačítka náhledu\",\n propertyIsEmpty: \"Zadejte hodnotu\",\n propertyIsNoUnique: \"Zadejte jedinečnou hodnotu\",\n propertyNameIsNotUnique: \"Zadejte jedinečný název\",\n qEditorTitle: \"Upravit: {0}\",\n questionErrorLocation: \"Umístění chyby v otázce\",\n questionsOrder: \"Pořadí prvků na stránce\",\n questionStartIndex: \"Index začátku otázky (1, 2 nebo A, a)\",\n questionTitleLocation: \"Umístění názvu otázky\",\n questionTitleTemplate: \"Šablona názvu otázky, výchozí je: „{no}. {require} {title}“\",\n rateMax: \"Maximální frekvence\",\n rateMin: \"Minimální frekvence\",\n rateStep: \"Krok frekvence\",\n refresh: \"Obnovit\",\n regex: \"Pravidelný výraz\",\n remove: \"Odebrat\",\n removeAll: \"Odstranit vše\",\n removeRowText: \"Odebrat text tlačítka řádku\",\n renderMode: \"Režim vykreslování\",\n requiredErrorText: \"Požadovaný text chyby\",\n requiredText: \"Požadované symboly otázky\",\n reset: \"Resetovat\",\n rowCount: \"Počet řádků\",\n rowid: \"ID řady\",\n rows: \"Počet řádků\",\n save: \"Uložit\",\n saveAndBack: \"Uložit a vrátit\",\n saveAndBackTooltip: \"Uložit a vrátit\",\n saveTooltip: \"Uložit\",\n selectAllText: \"Vyberte veškerý text položky\",\n sendResultOnPageNext: \"Odeslání výsledků průzkumu na další straně\",\n showChoices: \"Zobrazit volby\",\n showCompletedPage: \"Zobrazení dokončené stránky na konci (completedHtml)\",\n showMore: \"Další podrobnosti naleznete v dokumentaci\",\n showNavigationButtons: \"Zobrazit navigační tlačítka (výchozí navigace)\",\n showOptionsCaption: \"Zobrazit popisek možností\",\n showPageNumbers: \"Zobrazit čísla stránek\",\n showPageTitles: \"Zobrazit názvy stránek\",\n showPrevButton: \"Zobrazit předchozí tlačítko (uživatel se může vrátit na předchozí stránku)\",\n showPreview: \"Zobrazit oblast náhledu\",\n showProgressBar: \"Zobrazit ukazatel průběhu\",\n showQuestionNumbers: \"Zobrazit čísla otázek\",\n showTimerPanel: \"Zobrazit panel časovače\",\n showTimerPanelMode: \"Zobrazit režim panelu časovače\",\n showTitle: \"Zobrazit/skrýt název\",\n simulator: \"Vybrat zařízení\",\n startSurveyText: \"Text tlačítka zahájení\",\n startWithNewLine: \"Začátek s novým řádkem?\",\n storeDataAsText: \"Uložit obsah souboru ve výsledku JSON jako text\",\n storeOthersAsComment: \"Uložení hodnoty „others“ do samostatného pole\",\n surveyDescriptionPlaceholder: \"Zadejte popis průzkumu\",\n surveyEditorTitle: \"Upravit nastavení průzkumu\",\n surveyTitlePlaceholder: \"Sem zadejte název průzkumu\",\n tabs: {\n calculatedValues: \"Vypočítané hodnoty\",\n cells: \"Buňky\",\n choices: \"Volby\",\n choicesByUrl: \"Volby z webu\",\n columns: \"Sloupce\",\n completedHtml: \"Dokončené HTML\",\n completedHtmlOnCondition: \"Dokončeno HTML na podmínku\",\n data: \"Data\",\n enableIf: \"Povolené, pokud\",\n fileOptions: \"Možnosti\",\n general: \"Obecné\",\n html: \"Editor HTML\",\n items: \"Položky\",\n layout: \"Rozložení\",\n loadingHtml: \"Načítání HTML\",\n logic: \"Logika\",\n logo: \"Logo v názvu průzkumu\",\n matrixChoices: \"Výchozí volby\",\n multipleTextItems: \"Textové vstupy\",\n navigation: \"Navigace\",\n numbering: \"Číslování\",\n others: \"Ostatní\",\n pages: \"Stránky\",\n question: \"Otázka\",\n rateValues: \"Hodnoty sazeb\",\n requiredIf: \"Vyžadované, pokud\",\n rows: \"Řádky\",\n showOnCompleted: \"Zobrazit na stránce Dokončeno\",\n slider: \"Posuvník\",\n templateTitle: \"Název šablony\",\n timer: \"Časovač/kvíz\",\n totals: \"Součty\",\n triggers: \"Spouštěče\",\n validation: \"Ověřování\",\n validators: \"Validátory\",\n visibleIf: \"Viditelné, pokud\"\n },\n testService: \"Testování služby\",\n text: \"Text\",\n title: \"Titul\",\n titleKeyboardAdornerTip: \"Zadejte tlačítko k úpravě\",\n titleName: \"Název titulu\",\n titlePlaceholder: \"Sem zadejte název\",\n totalCurrency: \"Celková měna\",\n totalDisplayStyle: \"Celkový styl zobrazení\",\n totalExpression: \"Celkový výraz\",\n totalFormat: \"Celkový formát\",\n totalText: \"Celkový text\",\n totalType: \"Celkový typ\",\n triggerCompleteText: \"Vyplňte průzkum, pokud se vám to podaří.\",\n triggerFromName: \"Zkopírovat hodnotu z: \",\n triggerGotoName: \"Přejít na otázku:\",\n triggerIsVariable: \"Nevkládejte proměnnou do výsledku průzkumu.\",\n triggerMakePagesVisible: \"Zobrazit stránky:\",\n triggerMakeQuestionsVisible: \"Zobrazit prvky:\",\n triggerNotSet: \"Spouštěč není nastaven\",\n triggerOn: \"Zapnout \",\n triggerRunExpression: \"Spustit tento výraz:\",\n triggerRunExpressionEmpty: \"Zadejte platný výraz\",\n triggerRunIf: \"Spustit, pokud\",\n triggerSetToName: \"Změnit hodnotu: \",\n triggerSetValue: \"do: \",\n url: \"URL\",\n value: \"Hodnota\",\n valueName: \"Název hodnoty\",\n view: \"Zobrazit\",\n visible: \"Je viditelný?\"\n },\n pv: {\n all: \"vše\",\n asc: \"vzestupný\",\n both: \"obě\",\n bottom: \"dole\",\n buttons: \"tlačítka\",\n collapsed: \"sbalený\",\n color: \"barva\",\n correctQuestions: \"správné otázky\",\n currency: \"měna\",\n date: \"datum\",\n datetime: \"datumčas\",\n \"datetime-local\": \"datumčas-místní\",\n decimal: \"desetinné číslo\",\n default: \"výchozí\",\n desc: \"sestupný\",\n display: \"zobrazit\",\n edit: \"upravit\",\n email: \"e-mail\",\n expanded: \"rozbalený\",\n false: \"nepravdivé\",\n firstExpanded: \"firstExpanded\",\n hidden: \"skrytý\",\n hide: \"skrýt\",\n horizontal: \"horizontální\",\n indeterminate: \"neurčitý\",\n inherit: \"zdědit\",\n initial: \"úvodní\",\n left: \"vlevo\",\n list: \"seznam\",\n month: \"měsíc\",\n none: \"žádný\",\n noPreview: \"bez náhledu\",\n number: \"číslo\",\n off: \"vypnout\",\n on: \"zapnout\",\n onComplete: \"onComplete\",\n onHidden: \"onHidden\",\n onNextPage: \"onNextPage\",\n onPage: \"onPage\",\n onPanel: \"onPanel\",\n onSurvey: \"onSurvey\",\n onValueChanged: \"onValueChanged\",\n page: \"stránka\",\n pages: \"stránky\",\n password: \"heslo\",\n percent: \"procenta\",\n progressBottom: \"progressBottom\",\n progressTop: \"progressTop\",\n progressTopBottom: \"progressTopBottom\",\n questionPerPage: \"otázka na stránku\",\n questions: \"otázky\",\n random: \"náhodný\",\n range: \"rozsah\",\n requiredQuestions: \"povinné otázky\",\n show: \"zobrazit\",\n showAllQuestions: \"zobrazit náhled se všemi otázkami\",\n showAnsweredQuestions: \"zobrazit náhled se zodpovězenými otázkami\",\n singlePage: \"jedna stránka\",\n standard: \"standardní\",\n survey: \"průzkum\",\n tel: \"tel\",\n text: \"text\",\n time: \"čas\",\n top: \"nahoře\",\n topBottom: \"nahoře a dole\",\n true: \"pravdivé\",\n underInput: \"pod vstupem\",\n underTitle: \"pod nadpisem\",\n url: \"URL\",\n vertical: \"vertikální\",\n week: \"týden\"\n },\n qt: {\n boolean: \"Boolean\",\n checkbox: \"Zaškrtávací pole\",\n comment: \"Komentář\",\n default: \"Výchozí\",\n dropdown: \"Rozbalovací nabídka\",\n expression: \"Výraz (pouze pro čtení)\",\n file: \"Soubor\",\n flowpanel: \"Panel průběhu\",\n html: \"HTML\",\n image: \"Obrázek\",\n imagepicker: \"Nástroj pro výběr obrázku\",\n matrix: \"Matrix (jedna volba)\",\n matrixdropdown: \"Matrix (výběr z více možností)\",\n matrixdynamic: \"Matice (dynamické řádky)\",\n multipletext: \"Více textů\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dynamické panely)\",\n radiogroup: \"Radiogroup\",\n ranking: \"Pořadí\",\n rating: \"Hodnocení\",\n signaturepad: \"Podpisová podložka\",\n text: \"Jeden vstup\"\n },\n survey: {\n addLogicItem: \"Vytvořte pravidlo pro přizpůsobení průběhu průzkumu.\",\n addToToolbox: \"Přidat do sady nástrojů\",\n convertTo: \"Převést na\",\n copy: \"Kopírovat\",\n deletePanel: \"Odstranit panel\",\n deleteQuestion: \"Odstranit otázku\",\n drag: \"Přetáhnout prvek\",\n dropQuestion: \"Sem napište otázku ze sady nástrojů.\",\n duplicate: \"Duplikovat\",\n edit: \"Upravit\",\n externalHelpLink: \"Podívejte se a naučte se vytvářet průzkumy\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\"\n },\n triggers: {\n completetrigger: \"dokončit průzkum\",\n copyvaluetrigger: \"zkopírovat hodnotu\",\n runexpressiontrigger: \"spustit výraz\",\n setvaluetrigger: \"nastavit hodnotu\",\n skiptrigger: \"přeskočit na otázku\",\n visibletrigger: \"změnit viditelnost (zastaralé)\"\n },\n ts: {\n selectPage: \"Vyberte stránku a otestujte ji:\",\n showInvisibleElements: \"Zobrazit neviditelné prvky\"\n },\n validators: {\n answercountvalidator: \"počet odpovědí\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"výraz\",\n numericvalidator: \"číselné\",\n regexvalidator: \"regex\",\n textvalidator: \"text\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"cs\"] = czStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/danish.ts\":\n/*!************************************!*\\\n !*** ./src/localization/danish.ts ***!\n \\************************************/\n/*! exports provided: danishStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"danishStrings\", function() { return danishStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar danishStrings = {\n //survey templates\n survey: {\n edit: \"Rediger\",\n dropQuestion: \"Træk et spørgsmål hertil fra paletten til venstre.\",\n copy: \"Kopier\",\n addToToolbox: \"Tilføj til paletten\",\n deletePanel: \"Slet panel\",\n deleteQuestion: \"Slet spørgsmål\",\n convertTo: \"Konverter til\",\n drag: \"Træk element\"\n },\n //questionTypes\n qt: {\n default: \"Standard\",\n checkbox: \"Afkrydsningsfelt\",\n comment: \"Kommentar\",\n imagepicker: \"Billedvælger\",\n dropdown: \"Dropdown\",\n file: \"Fil\",\n html: \"Html\",\n matrix: \"Matrice (ét valg)\",\n matrixdropdown: \"Matrice (flere valg)\",\n matrixdynamic: \"Matrice (dynamiske rækker)\",\n multipletext: \"Flere tekstfelter\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dynamiske paneler)\",\n radiogroup: \"Alternativknap\",\n rating: \"Vurdering\",\n text: \"Tekstfelt\",\n boolean: \"Sandt/falsk\",\n expression: \"Udtryk\"\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Standard ({0})\",\n survey: \"Undersøgelse\",\n settings: \"Indstillinger for undersøgelse\",\n editSurvey: \"Rediger undersøgelse\",\n addNewPage: \"Tilføj ny side\",\n moveRight: \"Gå til højre\",\n moveLeft: \"Gå til venstre\",\n deletePage: \"Slet side\",\n editPage: \"Rediger side\",\n edit: \"Rediger\",\n newPageName: \"side\",\n newQuestionName: \"spørgsmål\",\n newPanelName: \"panel\",\n testSurvey: \"Afprøv undersøgelse\",\n testSurveyAgain: \"Afprøv undersøgelse igen\",\n testSurveyWidth: \"Bredde af undersøgelse: \",\n embedSurvey: \"Indlejr undersøgelse\",\n translation: \"Oversættelse\",\n saveSurvey: \"Gem undersøgelse\",\n designer: \"Undersøgelsesdesigner\",\n jsonEditor: \"JSON Editor\",\n undo: \"Fortryd\",\n redo: \"Annuller fortryd\",\n options: \"Indstillinger\",\n generateValidJSON: \"Generer gylding JSON\",\n generateReadableJSON: \"Generer læsbar JSON\",\n toolbox: \"Værktøjskasse\",\n toolboxGeneralCategory: \"Generelt\",\n delSelObject: \"Slet valgt objekt\",\n editSelObject: \"Rediger valgt objekt\",\n correctJSON: \"Ret venligst JSON.\",\n surveyResults: \"Undersøgelsesresultat: \",\n modified: \"Ændret\",\n saving: \"Gemmer\",\n saved: \"Gemt\",\n saveError: \"Fejl! Undersøgelsen er ikke blevet gemt.\",\n translationAddLanguage: \"Vælg et sprog at oversætte\",\n translationShowAllStrings: \"Vis alle tekststrenge\",\n translationShowAllPages: \"Vis alle sider\",\n translationNoStrings: \"Ingen tekststrenge at oversætte. Ret filteret.\",\n translationExportToSCVButton: \"Eksporter til CSV\",\n translationImportFromSCVButton: \"Importer fra CSV\",\n translationMergeLocaleWithDefault: \"Flet {0} med standardsprog\"\n },\n //Property names in table headers\n pel: {\n isRequired: \"Påkrævet?\"\n },\n //Property Editors\n pe: {\n apply: \"Anvend\",\n ok: \"OK\",\n cancel: \"Annuller\",\n reset: \"Nulstil\",\n close: \"Luk\",\n delete: \"Slet\",\n addNew: \"Tilføj ny\",\n addItem: \"Klik for at tilføje...\",\n removeAll: \"Fjern alle\",\n edit: \"Rediger\",\n itemValueEdit: \"Synlig hvis\",\n editChoices: \"Rediger valgmuligheder\",\n move: \"Flyt\",\n empty: \"\",\n notEmpty: \"\",\n fastEntry: \"Fast Entry\",\n formEntry: \"Form Entry\",\n testService: \"Test the service\",\n conditionSelectQuestion: \"Vælg spørgsmål...\",\n conditionValueQuestionTitle: \"Indtast/vælg værdi\",\n conditionButtonAdd: \"Tilføj\",\n conditionButtonReplace: \"Erstat\",\n conditionHelp: \"Indtast et boolsk udtryk. Det skal returnere true for at holde spørgsmålet/siden synlig. For eksempel: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"Indtast et udtryk. Du kan bruge krølle-parenteser for at få adgang til svarene: '{question1} + {question2}', '({price}*{quantity}) * (100 - {discount})'\",\n aceEditorHelp: \"Tast ctrl+space for hjælp til at afslutte udtrykket\",\n aceEditorRowTitle: \"Aktuel række\",\n aceEditorPanelTitle: \"Aktuelt panel\",\n showMore: \"Se dokumentationen for flere informationer\",\n conditionShowMoreUrl: \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Tilgængelige spørgsmål:\",\n cellsEmptyRowsColumns: \"Der skal være mindst én kolonne eller række\",\n propertyIsEmpty: \"Indtast en værdi\",\n value: \"Værdi\",\n text: \"Tekst\",\n rowid: \"Række ID\",\n imageLink: \"Billedlink\",\n columnEdit: \"Rediger kolonne: {0}\",\n itemEdit: \"Redigér: {0}\",\n url: \"URL\",\n path: \"Sti\",\n valueName: \"Værdiens navn\",\n titleName: \"Titelnavn\",\n showOtherItem: \"Har andet element\",\n otherText: \"Andet element tekst\",\n name: \"Navn\",\n title: \"Titel\",\n cellType: \"Celletype\",\n colCount: \"Antal kolonner\",\n choicesOrder: \"Vælg rækkefølge på valg\",\n visible: \"Er synlig?\",\n isRequired: \"Er påkrævet?\",\n startWithNewLine: \"Skal starte med ny linie?\",\n rows: \"Antal rækker\",\n placeholder: \"Hint-tekst\",\n showPreview: \"Vises forhåndsvisning af billeder?\",\n storeDataAsText: \"Gem filindhold i JSON-resultat som tekst\",\n maxSize: \"Maksimal filstørrelse i bytes\",\n imageHeight: \"Billedhøjde\",\n imageWidth: \"Billedbredde\",\n rowCount: \"Antal rækker\",\n columnLayout: \"Kolonnelayout\",\n addRowLocation: \"Tilføj række knapplacering\",\n addRowText: \"Tilføj række knaptekst\",\n removeRowText: \"Fjern række knaptekst\",\n minRateDescription: \"Beskriv laveste vurdering\",\n maxRateDescription: \"Beskriv højeste vurdering\",\n inputType: \"Inputtype\",\n optionsCaption: \"Muligheder tekst\",\n defaultValue: \"Standardværdi\",\n cellsDefaultRow: \"Standard celletekst\",\n surveyEditorTitle: \"Rediger undersøgelsesindstillinger\",\n qEditorTitle: \"Redigér: {0}\",\n maxLength: \"Maximal længde\",\n //survey\n showTitle: \"Vis/skjul titel\",\n locale: \"Standardsprog\",\n mode: \"Mode (rediger/skrivebeskyttet)\",\n clearInvisibleValues: \"Fjern usynlige værdier\",\n cookieName: \"Cookienavn (for at undgå at afvikle undersøgelsen to gange lokalt)\",\n sendResultOnPageNext: \"Send undersøgelsesresultatet ved næste side\",\n storeOthersAsComment: \"Gem 'others' værdien i et seperat felt\",\n showPageTitles: \"Vis sidetitler\",\n showPageNumbers: \"Vis sidenumre\",\n pagePrevText: \"Forrige side knaptekst\",\n pageNextText: \"Næste side knaptekst\",\n completeText: \"Færdig knaptekst\",\n startSurveyText: \"Start knaptekst\",\n showNavigationButtons: \"Vis navigationsknapper (standard navigation)\",\n showPrevButton: \"Vis forrige knap (brugeren må gå tilbage til forrige side)\",\n firstPageIsStarted: \"Den første side in undersøgelsen er starten på undersøgelsen.\",\n showCompletedPage: \"Vis afslutningssiden til slut (completedHtml)\",\n goNextPageAutomatic: \"Gå til næste side automatisk når alle spørgsmål er besvaret\",\n showProgressBar: \"Vis fremdriftslinje\",\n questionTitleLocation: \"Spørgsmålstitel placering\",\n requiredText: \"Påkrævet spørgsmålssymbol(er)\",\n questionStartIndex: \"Spørgsmål startindex (1, 2 eller 'A', 'a')\",\n showQuestionNumbers: \"Vis spørgsmålsnumre\",\n questionTitleTemplate: \"Spørgsmålstitel template, standard er: '{no}. {require} {title}'\",\n questionErrorLocation: \"Spørgsmålsfejl placering\",\n focusFirstQuestionAutomatic: \"Fokusér første spørgsmål ved sideskift\",\n questionsOrder: \"Rækkefølge af spørgsmål på siden\",\n maxTimeToFinish: \"Maximal tid til at gennemføre undersøgelsen\",\n maxTimeToFinishPage: \"Maximal tid til at gennemføre en side i undersøgelsen\",\n showTimerPanel: \"Vis tidspanel\",\n showTimerPanelMode: \"Vis tidspanel tilstand\",\n renderMode: \"Renderingstilstand\",\n allowAddPanel: \"Tillad at tilføje et panel\",\n allowRemovePanel: \"Tillad at fjerne et panel\",\n panelAddText: \"Tilføj panel tekst\",\n panelRemoveText: \"Fjern panel tekst\",\n isSinglePage: \"Vis alle elementer på én side\",\n tabs: {\n general: \"Generelt\",\n fileOptions: \"Indstillinger\",\n html: \"Html-editor\",\n columns: \"Kolonner\",\n rows: \"Rækker\",\n choices: \"Valgmuligheder\",\n items: \"Elementer\",\n visibleIf: \"Synlig hvis\",\n enableIf: \"Aktiv hvis\",\n rateValues: \"Bedøm-værdier\",\n choicesByUrl: \"Valgmuligheder fra Web\",\n matrixChoices: \"Standard valgmuligheder\",\n multipleTextItems: \"Tekst inputmuligheder\",\n validators: \"Valideringer\",\n navigation: \"Navigation\",\n question: \"Spørgsmål\",\n completedHtml: \"Færdig Html\",\n loadingHtml: \"Indlæser Html\",\n timer: \"Tid/Quiz\",\n triggers: \"Triggere\",\n templateTitle: \"Skabelon titel\"\n },\n editProperty: \"Rediger egenskab '{0}'\",\n items: \"[ Element: {0} ]\",\n enterNewValue: \"Indtast værdien.\",\n noquestions: \"Der er ingen spørgsmål i undersøgelsen.\",\n createtrigger: \"Opret en trigger\",\n triggerOn: \"På \",\n triggerMakePagesVisible: \"Gør sider synlige:\",\n triggerMakeQuestionsVisible: \"Gør spørgsmål synlige:\",\n triggerCompleteText: \"Aflslut spørgeskema ved at fortsætte.\",\n triggerNotSet: \"Triggerer er ikke sat\",\n triggerRunIf: \"Afvikl hvis\",\n triggerSetToName: \"Ændr værdien af: \",\n triggerFromName: \"Kopier værdi fra: \",\n triggerRunExpression: \"Afvikl dette udtryk:\",\n triggerSetValue: \"til: \",\n triggerIsVariable: \"Gem ikke variablen i undersøgelsesresultatet.\"\n },\n //Property values\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"inherit\",\n show: \"show\",\n hide: \"hide\",\n default: \"default\",\n initial: \"initial\",\n random: \"random\",\n collapsed: \"collapsed\",\n expanded: \"expanded\",\n none: \"none\",\n asc: \"ascending\",\n desc: \"descending\",\n indeterminate: \"indeterminate\",\n decimal: \"decimal\",\n currency: \"currency\",\n percent: \"percent\",\n firstExpanded: \"firstExpanded\",\n off: \"off\",\n onPanel: \"onPanel\",\n onSurvey: \"onSurvey\",\n list: \"list\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n top: \"top\",\n bottom: \"bottom\",\n topBottom: \"top and bottom\",\n left: \"left\",\n color: \"color\",\n date: \"date\",\n datetime: \"datetime\",\n \"datetime-local\": \"datetime-local\",\n email: \"email\",\n month: \"month\",\n number: \"number\",\n password: \"password\",\n range: \"range\",\n tel: \"tel\",\n text: \"text\",\n time: \"time\",\n url: \"url\",\n week: \"week\",\n hidden: \"hidden\",\n on: \"on\",\n onPage: \"onPage\",\n edit: \"edit\",\n display: \"display\",\n onComplete: \"onComplete\",\n onHidden: \"onHidden\",\n all: \"all\",\n page: \"page\",\n survey: \"survey\",\n onNextPage: \"onNextPage\",\n onValueChanged: \"onValueChanged\"\n },\n //Operators\n op: {\n empty: \"is empty\",\n notempty: \"is not empty\",\n equal: \"equals\",\n notequal: \"not equals\",\n contains: \"contains\",\n notcontains: \"not contains\",\n greater: \"greater\",\n less: \"less\",\n greaterorequal: \"greater or equals\",\n lessorequal: \"less or equals\"\n },\n //Embed window\n ew: {\n angular: \"Benyt Angular version\",\n jquery: \"Benyt jQuery version\",\n knockout: \"Benyt Knockout version\",\n react: \"Benyt React version\",\n vue: \"Benyt Vue version\",\n bootstrap: \"For bootstrap framework\",\n standard: \"Ingen bootstrap\",\n showOnPage: \"Vis undersøgelsen på en side\",\n showInWindow: \"Vis undersøgelsen i et vindue\",\n loadFromServer: \"Hent undersøgelsen som JSON fra serveren\",\n titleScript: \"Scripts og styles\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n //Test Survey\n ts: {\n selectPage: \"Vælg siden for at teste den:\"\n },\n validators: {\n answercountvalidator: \"answer count\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"expression\",\n numericvalidator: \"numeric\",\n regexvalidator: \"regex\",\n textvalidator: \"text\"\n },\n triggers: {\n completetrigger: \"undersøgelse gennemført\",\n setvaluetrigger: \"sæt værdi\",\n copyvaluetrigger: \"kopiér værdi\",\n runexpressiontrigger: \"afvikl udtry\",\n visibletrigger: \"skift synlighed\"\n },\n //Properties\n p: {\n name: \"navn\",\n title: {\n name: \"titel\",\n title: \"Lad den være tom hvis det er det samme som 'Navn'\"\n },\n navigationButtonsVisibility: \"navigationButtonsVisibility\",\n questionsOrder: \"questionsOrder\",\n maxTimeToFinish: \"maxTimeToFinish\",\n visible: \"visible\",\n visibleIf: \"visibleIf\",\n questionTitleLocation: \"questionTitleLocation\",\n description: \"description\",\n state: \"state\",\n isRequired: \"isRequired\",\n indent: \"indent\",\n requiredErrorText: \"requiredErrorText\",\n startWithNewLine: \"startWithNewLine\",\n innerIndent: \"innerIndent\",\n page: \"page\",\n width: \"width\",\n commentText: \"commentText\",\n valueName: \"valueName\",\n enableIf: \"enableIf\",\n defaultValue: \"defaultValue\",\n correctAnswer: \"correctAnswer\",\n readOnly: \"readOnly\",\n validators: \"validators\",\n titleLocation: \"titleLocation\",\n hasComment: \"hasComment\",\n showOtherItem: \"hasOther\",\n choices: \"choices\",\n choicesOrder: \"choicesOrder\",\n choicesByUrl: \"choicesByUrl\",\n otherText: \"otherText\",\n otherErrorText: \"otherErrorText\",\n storeOthersAsComment: \"storeOthersAsComment\",\n label: \"label\",\n showTitle: \"showTitle\",\n valueTrue: \"valueTrue\",\n valueFalse: \"valueFalse\",\n cols: \"cols\",\n rows: \"rows\",\n optionsCaption: \"optionsCaption\",\n expression: \"expression\",\n format: \"format\",\n displayStyle: \"displayStyle\",\n currency: \"currency\",\n useGrouping: \"useGrouping\",\n showPreview: \"showPreview\",\n allowMultiple: \"allowMultiple\",\n imageHeight: \"imageHeight\",\n imageWidth: \"imageWidth\",\n storeDataAsText: \"storeDataAsText\",\n maxSize: \"maxSize\",\n html: \"html\",\n columns: \"columns\",\n cells: \"cells\",\n isAllRowRequired: \"isAllRowRequired\",\n horizontalScroll: \"horizontalScroll\",\n cellType: \"cellType\",\n columnsLayout: \"columnsLayout\",\n columnColCount: \"columnColCount\",\n columnMinWidth: \"columnMinWidth\",\n rowCount: \"rowCount\",\n minRowCount: \"minRowCount\",\n maxRowCount: \"maxRowCount\",\n keyName: \"keyName\",\n keyDuplicationError: \"keyDuplicationError\",\n confirmDelete: \"confirmDelete\",\n confirmDeleteText: \"confirmDeleteText\",\n addRowLocation: \"addRowLocation\",\n addRowText: \"addRowText\",\n removeRowText: \"removeRowText\",\n items: \"items\",\n itemSize: \"itemSize\",\n colCount: \"colCount\",\n templateTitle: \"templateTitle\",\n templateDescription: \"templateDescription\",\n allowAddPanel: \"allowAddPanel\",\n allowRemovePanel: \"allowRemovePanel\",\n panelCount: \"panelCount\",\n minPanelCount: \"minPanelCount\",\n maxPanelCount: \"maxPanelCount\",\n panelsState: \"panelsState\",\n panelAddText: \"panelAddText\",\n panelRemoveText: \"panelRemoveText\",\n panelPrevText: \"panelPrevText\",\n panelNextText: \"panelNextText\",\n showQuestionNumbers: \"showQuestionNumbers\",\n showRangeInProgress: \"showRangeInProgress\",\n renderMode: \"renderMode\",\n templateTitleLocation: \"templateTitleLocation\",\n rateValues: \"rateValues\",\n rateMin: \"rateMin\",\n rateMax: \"rateMax\",\n rateStep: \"rateStep\",\n minRateDescription: \"minRateDescription\",\n maxRateDescription: \"maxRateDescription\",\n inputType: \"inputType\",\n size: \"size\",\n locale: \"locale\",\n focusFirstQuestionAutomatic: \"focusFirstQuestionAutomatic\",\n completedHtml: \"completedHtml\",\n completedBeforeHtml: \"completedBeforeHtml\",\n loadingHtml: \"loadingHtml\",\n triggers: \"triggers\",\n cookieName: \"cookieName\",\n sendResultOnPageNext: \"sendResultOnPageNext\",\n showNavigationButtons: \"showNavigationButtons\",\n showPrevButton: \"showPrevButton\",\n showPageTitles: \"showPageTitles\",\n showCompletedPage: \"showCompletedPage\",\n showPageNumbers: \"showPageNumbers\",\n questionErrorLocation: \"questionErrorLocation\",\n showProgressBar: \"showProgressBar\",\n mode: \"mode\",\n goNextPageAutomatic: \"goNextPageAutomatic\",\n checkErrorsMode: \"checkErrorsMode\",\n clearInvisibleValues: \"clearInvisibleValues\",\n startSurveyText: \"startSurveyText\",\n pagePrevText: \"pagePrevText\",\n pageNextText: \"pageNextText\",\n completeText: \"completeText\",\n requiredText: \"requiredText\",\n questionStartIndex: \"questionStartIndex\",\n questionTitleTemplate: \"questionTitleTemplate\",\n firstPageIsStarted: \"firstPageIsStarted\",\n isSinglePage: \"isSinglePage\",\n maxTimeToFinishPage: \"maxTimeToFinishPage\",\n showTimerPanel: \"showTimerPanel\",\n showTimerPanelMode: \"showTimerPanelMode\",\n defaultPanelValue: \"defaultPanelValue\",\n defaultRowValue: \"defaultRowValue\",\n showNoneItem: \"hasNone\",\n noneText: \"noneText\",\n text: \"text\",\n minValue: \"minimum value\",\n maxValue: \"maximum value\",\n minLength: \"minumum length\",\n maxLength: \"maximum length\",\n allowDigits: \"allow digits\",\n minCount: \"minumum count\",\n maxCount: \"maximum count\",\n regex: \"regular expression\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"da\"] = danishStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/dutch.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/dutch.ts ***!\n \\***********************************/\n/*! exports provided: nlStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nlStrings\", function() { return nlStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n//Uncomment this line on creating a translation file\n\nvar nlStrings = {\n //survey templates\n survey: {\n edit: \"Bewerk\",\n externalHelpLink: \"Bekijk en leer hoe u enquêtes maakt\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Stel hier een vraag vanuit de Toolbox.\",\n addLogicItem: \"Maak een regel om de stroom van de enquête aan te passen.\",\n copy: \"Kopiëren\",\n addToToolbox: \"Toevoegen aan toolbox\",\n deletePanel: \"Paneel verwijderen\",\n deleteQuestion: \"Vraag verwijderen\",\n convertTo: \"Omzetten naar\",\n drag: \"Sleep element\",\n },\n //questionTypes\n qt: {\n default: \"Standaard\",\n checkbox: \"Selectievakje\",\n comment: \"Commentaar\",\n imagepicker: \"Afbeelingsvraag\",\n image: \"Afbeelding\",\n dropdown: \"Keuzelijst\",\n file: \"Bestandsupload\",\n html: \"Html\",\n matrix: \"Matrix (enkele keuze)\",\n matrixdropdown: \"Matrix (meerkeuze)\",\n matrixdynamic: \"Matrix (dynamische rijen)\",\n multipletext: \"Meervoudige tekstvak\",\n panel: \"Paneel\",\n paneldynamic: \"Paneel (dynamische panelen)\",\n radiogroup: \"Meerkeuzevraag\",\n rating: \"Beoordeling\",\n text: \"Tekstvak\",\n boolean: \"Boolean\",\n expression: \"Berekening\",\n signaturepad: \"Handtekening\",\n flowpanel: \"Stroompaneel\",\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Standaard ({0})\",\n survey: \"Enquête\",\n settings: \"Enquête-instellingen\",\n settingsTooltip: \"Open enquête-instellingen\",\n //opjectPropertiesHeader: \"Geavanceerd\",\n //showObjectProperties: \"Objecteigenschappen weergeven\",\n //hideObjectProperties: \"Verberg objecteigenschappen\",\n showPanel: \"Toon paneel\",\n hidePanel: \"Verberg paneel\",\n //editSurvey: \"Enquête bewerken\",\n addNewPage: \"Pagina toevoegen\",\n moveRight: \"Scroll naar rechts\",\n moveLeft: \"Scroll naar links\",\n deletePage: \"Pagina verwijderen\",\n editPage: \"Pagina aanpassen\",\n edit: \"Bewerk\",\n newPageName: \"Pagina\",\n newQuestionName: \"Vraag\",\n newPanelName: \"Paneel\",\n newTextItemName: \"Tekst\",\n testSurvey: \"Test de enquête\",\n testSurveyAgain: \"Test de enquête opnieuw\",\n testSurveyWidth: \"Onderzoeksbreedte: \",\n navigateToMsg: \"Je moest navigeren naar:\",\n logic: \"Onderzoekslogica\",\n embedSurvey: \"Enquête insluiten\",\n translation: \"Vertaling\",\n saveSurvey: \"Enquête opslaan\",\n saveSurveyTooltip: \"Enquête opslaan\",\n designer: \"Enquête-ontwerper\",\n jsonEditor: \"JSON-editor\",\n undo: \"Ongedaan maken\",\n redo: \"Opnieuw uitvoeren\",\n undoTooltip: \"Maak de laatste wijziging ongedaan\",\n redoTooltip: \"Voer de wijziging opnieuw uit\",\n copy: \"Kopiëren\",\n cut: \"Besnoeiing\",\n paste: \"Plakken\",\n copyTooltip: \"Kopieer selectie naar klembord\",\n cutTooltip: \"Knip de selectie naar het klembord\",\n pasteTooltip: \"Plakken vanaf klembord\",\n options: \"Opties\",\n generateValidJSON: \"Genereer geldige JSON\",\n generateReadableJSON: \"Genereer leesbare JSON\",\n toolbox: \"Gereedschap\",\n \"property-grid\": \"Eigenschappen\",\n toolboxGeneralCategory: \"Algemeen\",\n //delSelObject: \"Verwijder het geselecteerde object\",\n //editSelObject: \"Bewerk het geselecteerde object\",\n correctJSON: \"Corrigeer JSON.\",\n surveyResults: \"Enquêteresultaat: \",\n surveyResultsTable: \"Als tabel\",\n surveyResultsJson: \"Als JSON\",\n resultsTitle: \"Vraag titel\",\n resultsName: \"Vraag naam\",\n resultsValue: \"Antwoordwaarde\",\n resultsDisplayValue: \"Waarde weergeven\",\n modified: \"Gewijzigd\",\n saving: \"Besparing\",\n saved: \"Opgeslagen\",\n propertyEditorError: \"Fout:\",\n saveError: \"Fout! De inhoud van de editor wordt niet opgeslagen.\",\n translationAddLanguage: \"Selecteer de taal om te vertalen\",\n translationShowAllStrings: \"Toon alle snaren\",\n translationShowAllPages: \"Toon alle paginas\",\n translationNoStrings: \"Geen verplichtingen om te vertalen. Vervang alstublieft het filter.\",\n translationExportToSCVButton: \"Exporteren naar CSV\",\n translationImportFromSCVButton: \"Importeren vanuit CSV\",\n translationMergeLocaleWithDefault: \"Voeg {0} samen met de standaardlandinstelling\",\n bold: \"Vetgedrukt\",\n italic: \"Cursief\",\n underline: \"Onderstrepen\",\n fpAddQuestion: \"Vraag toevoegen...\",\n selectPage: \"Selecteer pagina...\",\n chooseElement: \"Kies element...\",\n //completedHtmlOnConditionItemText: \"Laat zien of:\",\n lg: {\n addNewItem: \"\",\n //Logic tab strings\n page_visibilityName: \"Pagina zichtbaarheid\",\n panel_visibilityName: \"Paneel zichtbaarheid\",\n panel_enableName: \"Paneel inschakelen/uitschakelen\",\n question_visibilityName: \"Vraag zichtbaarheid\",\n question_enableName: \"Vraag inschakelen/uitschakelen\",\n question_requireName: \"Vraag optioneel vereist\",\n trigger_completeName: \"Volledige enquête\",\n trigger_setvalueName: \"Stel vraagwaarde in\",\n trigger_copyvalueName: \"Kopieer de vraagwaarde\",\n trigger_skipName: \"Ga naar de vraag\",\n trigger_runExpressionName: \"Voer een aangepaste expressie uit\",\n completedHtmlOnConditionName: \"Aangepaste 'Bedanktpagina'-tekst\",\n page_visibilityDescription: \"Maak de pagina zichtbaar wanneer de logische uitdrukking true retourneert. Houd het anders onzichtbaar.\",\n panel_visibilityDescription: \"Maak het paneel zichtbaar wanneer de logische uitdrukking true retourneert. Houd het anders onzichtbaar.\",\n panel_enableDescription: \"Zorg ervoor dat het paneel en alle elementen erin worden ingeschakeld wanneer de logische uitdrukking true retourneert. Houd ze anders uitgeschakeld.\",\n question_visibilityDescription: \"Maak de vraag zichtbaar wanneer de logische uitdrukking true retourneert. Houd het anders onzichtbaar.\",\n question_enableDescription: \"Schakel de vraag in wanneer de logische uitdrukking true retourneert. Houd het anders uitgeschakeld.\",\n question_requireDescription: \"Vraag wordt vereist wanneer de logische uitdrukking true retourneert.\",\n trigger_completeDescription: \"Wanneer de logische uitdrukking true retourneert, wordt de enquête voltooid en ziet een eindgebruiker de 'Bedankpagina'.\",\n trigger_setvalueDescription: \"Wanneer vraagwaarden, die worden gebruikt in de logische uitdrukking, worden gewijzigd en de logische uitdrukking true retourneert, wordt de waarde ingesteld op de geselecteerde vraag.\",\n trigger_copyvalueDescription: \"Wanneer vraagwaarden, die worden gebruikt in de logische uitdrukking, worden gewijzigd en de logische uitdrukking true retourneert, wordt de waarde van een geselecteerde vraag gekopieerd naar een andere geselecteerde vraag.\",\n trigger_skipDescription: \"Als de logische uitdrukking true retourneert, gaat de enquête naar/focust de geselecteerde vraag.\",\n trigger_runExpressionDescription: \"Wanneer de logische expressie true retourneert, wordt de aangepaste expressie uitgevoerd. U kunt dit expressieresultaat optioneel instellen voor de geselecteerde vraag\",\n completedHtmlOnConditionDescription: \"Als de logische uitdrukking true retourneert, wordt de standaardtekst voor de 'Bedankpagina' gewijzigd in de opgegeven tekst.\",\n itemExpressionText: \"Wanneer expressie: '{0}' true retourneert:\",\n page_visibilityText: \"Maak pagina {0} zichtbaar\",\n panel_visibilityText: \"Maak paneel {0} zichtbaar\",\n panel_enableText: \"Schakel paneel {0} in\",\n question_visibilityText: \"Maak vraag {0} zichtbaar\",\n question_enableText: \"Schakel vraag {0} in\",\n question_requireText: \"Stel vraag {0} verplicht\",\n trigger_completeText: \"Enquête wordt voltooid\",\n trigger_setvalueText: \"Stel de vraag: {0} waarde {1}\",\n trigger_copyvalueText: \"Kopieer naar vraag: {0} waarde uit vraag {1}\",\n trigger_skipText: \"Enquête ga verder met de vraag {0}\",\n trigger_runExpressionText1: \"Uitdrukking uitvoeren: '{0}'\",\n trigger_runExpressionText2: \" en stel het resultaat in vraag: {0}\",\n completedHtmlOnConditionText: \"Toon aangepaste tekst voor de 'Bedankpagina'.\",\n conditions: \"Voorwaard(en)\",\n actions: \"Actie(s)\",\n expressionEditorTitle: \"Definieer conditie(s)\",\n actionsEditorTitle: \"Definieer actie(s)\",\n deleteAction: \"Actie verwijderen\",\n addNewAction: \"Voeg nieuwe actie toe\",\n selectedActionCaption: \"Selecteer een actie om toe te voegen...\",\n expressionInvalid: \"De logische uitdrukking is leeg of ongeldig. Verbeter dit alstublieft.\",\n noActionError: \"Voeg ten minste één actie toe.\",\n actionInvalid: \"Los problemen in uw actie(s) op.\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n },\n //Property names in table headers\n // pel: {\n // isRequired: \"Verplicht?\"\n // },\n //Property Editors\n pe: {\n apply: \"Van toepassing zijn\",\n ok: \"OK\",\n save: \"Opslaan\",\n saveTooltip: \"Opslaan\",\n cancel: \"Annuleren\",\n reset: \"Resetten\",\n refresh: \"Opslaan\",\n // close: \"Dichtbij\",\n delete: \"Verwijderen\",\n add: \"Toevoegen\",\n addNew: \"Nieuwe toevoegen\",\n addItem: \"Klik om een item toe te voegen...\",\n addOther: \"Andere\",\n addSelectAll: \"Selecteer alles\",\n addNone: \"Geen\",\n removeAll: \"Verwijder alles\",\n edit: \"Bewerk\",\n back: \"Keer terug zonder op te slaan\",\n backTooltip: \"Keer terug zonder op te slaan\",\n saveAndBack: \"Bewaar en keer terug\",\n saveAndBackTooltip: \"Bewaar en keer terug\",\n // itemValueEdit: \"Zichtbaar als\",\n editChoices: \"Keuzes bewerken\",\n showChoices: \"Toon keuzes\",\n move: \"Bewegen\",\n empty: \"\",\n // notEmpty: \"\",\n fastEntry: \"Snelle toegang\",\n formEntry: \"Formulierinvoer\",\n testService: \"Test de service\",\n itemSelectorEmpty: \"Selecteer het element\",\n conditionActionEmpty: \"Selecteer de actie\",\n conditionSelectQuestion: \"Selecteer vraag...\",\n conditionSelectPage: \"Selecteer pagina...\",\n conditionSelectPanel: \"Selecteer paneel...\",\n conditionValueQuestionTitle: \"Voer/selecteer de waarde\",\n // conditionHelp:\n // \"Voer een booleaanse uitdrukking in. Het moet true retourneren om de vraag/pagina zichtbaar te houden. Bijvoorbeeld: {vraag1} = 'waarde1' of ({vraag2} * {vraag4}> 20 en {vraag3} <5)\",\n expressionHelp: \"U kunt accolades gebruiken om toegang te krijgen tot de vraagwaarden: {vraag1} + {vraag2}, ({prijs} * {aantal}) * (100 - {korting}). U kunt functies gebruiken als: iif(), today(), age(), min(), max(), count(), avg() en anderen.\",\n aceEditorHelp: \"Druk op Ctrl+spatiebalk om een hint voor het voltooien van een uitdrukking te krijgen\",\n aceEditorRowTitle: \"Huidige rij\",\n aceEditorPanelTitle: \"Huidig paneel\",\n showMore: \"Raadpleeg de documentatie voor meer details\",\n // conditionShowMoreUrl:\n // \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Beschikbare vragen:\",\n cellsEmptyRowsColumns: \"Er moet minimaal één kolom of rij zijn\",\n propertyIsEmpty: \"Voer alstublieft een waarde in\",\n propertyNameIsNotUnique: \"Voer een unieke naam in\",\n listIsEmpty: \"Voeg een nieuw item toe\",\n expressionIsEmpty: \"Expressie is leeg\",\n value: \"Waarde\",\n text: \"Tekst\",\n rowid: \"Rij-ID\",\n imageLink: \"Afbeeldingslink\",\n columnEdit: \"Kolom bewerken: {0}\",\n itemEdit: \"Bewerk item: {0}\",\n url: \"URL\",\n path: \"Pad\",\n valueName: \"Waardenaam\",\n titleName: \"Titel\",\n titlePlaceholder: \"Voer hier de titel in\",\n surveyTitlePlaceholder: \"Voer de enquêtetitel hier in\",\n pageTitlePlaceholder: \"Voer hier de paginatitel in\",\n descriptionPlaceholder: \"Voer een omschrijving in\",\n surveyDescriptionPlaceholder: \"Voer een onderzoeksbeschrijving in\",\n pageDescriptionPlaceholder: \"Voer een paginabeschrijving in\",\n showOtherItem: \"De optie 'Anders' tonen\",\n otherText: \"Titel 'Anders:'-optie\",\n showNoneItem: \"De optie 'Geen' tonen\",\n noneText: \"Titel 'Geen'-optie\",\n hasSelectAll: \"Heeft de 'Alles selecteren'-optie\",\n selectAllText: \"Titel 'Alles selecteren'-optie\",\n allowEmptyResponse: \"Leeg respons toestaan\",\n choicesMin: \"Minimumwaarde voor automatisch gegenereerde items\",\n choicesMax: \"Maximale waarde voor automatisch gegenereerde items\",\n choicesStep: \"Het verschil tussen automatisch gegenereerde items\",\n name: \"Naam\",\n title: \"Titel\",\n cellType: \"Celtype\",\n colCount: \"Kolom tellen\",\n choicesOrder: \"Volgorde opties\",\n visible: \"Zichtbaar\",\n isRequired: \"Verplicht\",\n defaultValueExpression: \"Expressie standaardwaarde\",\n isAllRowRequired: \"Antwoord vereisen voor alle rijen\",\n requiredErrorText: \"Tekst bij niet-ingevulde verplichte vraag\",\n startWithNewLine: \"Beginnen met een nieuwe regel?\",\n rows: \"Aantal rijen\",\n cols: \"Kolom tellen\",\n placeholder: \"Hulptekst\",\n showPreview: \"Toon voorbeeldgebied\",\n showPreviewBeforeComplete: \"Voorbeeldweergave voor afronden\",\n storeDataAsText: \"Bewaar bestandsinhoud in JSON-resultaat als tekst\",\n maxSize: \"Maximale bestandsgrootte in bytes\",\n imageHeight: \"Afbeelding hoogte\",\n imageWidth: \"Afbeelding breedte\",\n rowCount: \"Aantal rijen\",\n columnLayout: \"Kolommen layout\",\n addRowLocation: \"Voeg de locatie van de rijknop toe\",\n addRowText: \"Voeg tekst van de rijknop toe\",\n removeRowText: \"Verwijder de tekst van de rijknop\",\n rateMin: \"Minimumtarief\",\n rateMax: \"Maximaal tarief\",\n rateStep: \"Beoordeel stap\",\n minRateDescription: \"Beschrijving minimumtarief\",\n maxRateDescription: \"Maximale tariefomschrijving\",\n inputType: \"Invoertype\",\n optionsCaption: \"Bijschrift opties\",\n defaultValue: \"Standaardwaarde\",\n cellsDefaultRow: \"Standaard celteksten\",\n surveyEditorTitle: \"Bewerk enquête-instellingen\",\n qEditorTitle: \"Bewerken: {0}\",\n maxLength: \"Maximale lengte\",\n buildExpression: \"Bouwen\",\n editExpression: \"Bewerk\",\n and: \"En\",\n or: \"Of\",\n remove: \"Verwijderen\",\n addCondition: \"Voorwaarde toevoegen\",\n //survey\n showTitle: \"Titel weergeven/verbergen\",\n expandCollapseTitle: \"Titel uitvouwen/samenvouwen\",\n locale: \"Standaardtaal\",\n simulator: \"Kies apparaat\",\n landscapeOrientation: \"Landschap\",\n mode: \"Modus (bewerken/alleen lezen)\",\n clearInvisibleValues: \"Wis onzichtbare waarden\",\n cookieName: \"Cookienaam (zodat enquête slechts éénmalig wordt ingevuld)\",\n sendResultOnPageNext: \"Antwoorden opslaan bij pagina-overgang\",\n storeOthersAsComment: \"Sla de waarde van 'anderen' op in een apart veld\",\n showPageTitles: \"Toon paginatitels\",\n showPageNumbers: \"Toon paginanummers\",\n pagePrevText: \"Knoptitel 'Vorige pagina'\",\n pageNextText: \"Knoptitel 'Volgende pagina'\",\n completeText: \"Knoptitel 'Afronden'\",\n previewText: \"Knoptitel 'Voorbeeldweergave'\",\n editText: \"Knoptitel 'Bewerken'\",\n startSurveyText: \"Knoptitel 'Starten'\",\n showNavigationButtons: \"Navigatieknoppen weergeven (standaardnavigatie)\",\n showPrevButton: \"Toon knop 'Vorige pagina' (gebruiker kan terugkeren)\",\n firstPageIsStarted: \"De eerste pagina in de enquête is een startpagina\",\n showCompletedPage: \"Toon bij afronden deze HTML-code\",\n goNextPageAutomatic: \"Na alle vragen automatisch naar volgende pagina gaan\",\n focusOnFirstError: \"Focus op eerste fout zetten\",\n showProgressBar: \"Toon voortgangsbalk\",\n questionTitleLocation: \"Plek vraagtitel\",\n questionTitlePattern: \"Patroon vraagtitel\",\n questionTitle: \"Vraagtitel\",\n requiredText: \"Symbool(en) verplichte vraag\",\n questionStartIndex: \"Eerste vraag (1, 2 or 'A', 'a')\",\n showQuestionNumbers: \"Toon vraagnummers\",\n textUpdateMode: \"Modus tekstvernieuwing\",\n questionTitleTemplate: \"Vraagtitelsjabloon, standaard is: '{no}. {vereisen} {titel}'\",\n questionErrorLocation: \"Plek vraagfoutmelding\",\n focusFirstQuestionAutomatic: \"Op volgende pagina focus op de eerste vraag zetten\",\n questionsOrder: \"Volgorde elementen op pagina\",\n maxTextLength: \"Maximale tekstlengte\",\n maxOthersLength: \"Maximale tekstlengte optie 'Anders:'\",\n maxTimeToFinish: \"Maximale tijd om de enquête te voltooien\",\n maxTimeToFinishPage: \"Maximale tijd om een pagina in de enquête te voltooien\",\n showTimerPanel: \"Toon timerpaneel\",\n showTimerPanelMode: \"Modus timerpaneel\",\n renderMode: \"Render-modus\",\n allowAddPanel: \"Sta het toevoegen van een paneel toe\",\n allowRemovePanel: \"Laat het verwijderen van het paneel toe\",\n panelAddText: \"Paneeltekst toevoegen\",\n panelRemoveText: \"Paneeltekst verwijderen\",\n isSinglePage: \"Toon alle elementen op één pagina\",\n html: \"Html\",\n expression: \"Uitdrukking\",\n minValue: \"Minimale waarde\",\n maxValue: \"Maximale waarde\",\n minLength: \"Minimale lengte\",\n allowDigits: \"Cijfers toestaan\",\n minCount: \"Minimum aantal\",\n maxCount: \"Maximale telling\",\n regex: \"Reguliere expressie\",\n totalText: \"Totale tekst\",\n totalType: \"Totaal type\",\n totalExpression: \"Totale expressie\",\n totalDisplayStyle: \"Totale weergavestijl\",\n totalCurrency: \"Totale valuta\",\n totalFormat: \"Totaal formaat\",\n // Header adorner\n logoPosition: \"Positie logo\",\n addLogo: \"Logo toevoegen...\",\n changeLogo: \"Logo wijzigen...\",\n logoWidth: \"Breedte logo\",\n logoHeight: \"Hoogte logo\",\n logoFit: \"Passend maken logo\",\n logoPositions: {\n none: \"Logo verwijderen\",\n left: \"Links\",\n right: \"Rechtsaf\",\n top: \"Bovenop\",\n bottom: \"Onder aan\",\n },\n tabs: {\n general: \"Algemeen\",\n fileOptions: \"Opties\",\n html: \"Html-editor\",\n columns: \"Kolommen\",\n rows: \"Rijen\",\n choices: \"Keuzes\",\n items: \"Artikelen\",\n visibleIf: \"Zichtbaar als\",\n enableIf: \"Schakel If in\",\n requiredIf: \"Vereist als\",\n rateValues: \"Beoordeel waarden\",\n choicesByUrl: \"Keuzes van internet\",\n matrixChoices: \"Standaardkeuzes\",\n multipleTextItems: \"Tekstinvoer\",\n numbering: \"Nummering\",\n validators: \"Validators\",\n navigation: \"Navigatie\",\n question: \"Vraag\",\n pages: \"Pagina's\",\n completedHtml: \"HTML bij afronden\",\n completedHtmlOnCondition: \"Voltooide html op voorwaarde\",\n loadingHtml: \"Html laden\",\n timer: \"Timer/Quiz\",\n calculatedValues: \"Berekende waardes\",\n triggers: \"Triggers\",\n templateTitle: \"Sjabloontitel\",\n totals: \"Totalen\",\n logic: \"Logica\",\n layout: \"Indeling\",\n data: \"Gegevens\",\n validation: \"Validatie\",\n cells: \"Cellen\",\n showOnCompleted: \"Weergeven bij afronden\",\n logo: \"Logo in enquêtetitel\",\n slider: \"Schuifregelaar\",\n others: \"Anderen\",\n },\n editProperty: \"Eigenschap '{0}' bewerken\",\n items: \"[ Items: {0} ]\",\n enterNewValue: \"Voer de waarde in.\",\n noquestions: \"Er is geen enkele vraag in de enquête.\",\n createtrigger: \"Maak een trigger\",\n titleKeyboardAdornerTip: \"Druk op de enter-knop om te bewerken\",\n keyboardAdornerTip: \"Druk op de enter-knop om het item te bewerken, druk op de delete-knop om het item te verwijderen, druk op alt plus pijl omhoog of pijl omlaag om item te verplaatsen\",\n triggerOn: \"Aan \",\n triggerMakePagesVisible: \"Maak pagina's zichtbaar:\",\n triggerMakeQuestionsVisible: \"Maak elementen zichtbaar:\",\n triggerCompleteText: \"Vul de enquête in als dit lukt.\",\n triggerNotSet: \"De trigger is niet ingesteld\",\n triggerRunIf: \"Voer als\",\n triggerSetToName: \"Verander waarde van: \",\n triggerFromName: \"Waarde kopiëren van: \",\n triggerRunExpression: \"Voer deze expressie uit:\",\n triggerSetValue: \"naar: \",\n triggerGotoName: \"Ga naar de vraag:\",\n triggerIsVariable: \"Zet de variabele niet in het onderzoeksresultaat.\",\n triggerRunExpressionEmpty: \"Voer een geldige uitdrukking in\",\n noFile: \"Geen bestand gekozen\",\n },\n //Property values\n pv: {\n true: \"Waar\",\n false: \"False\",\n inherit: \"Erven\",\n show: \"Tonen\",\n hide: \"Zich verstoppen\",\n default: \"Standaard\",\n initial: \"Standaard\",\n random: \"Willekeurig\",\n collapsed: \"Ingestort\",\n expanded: \"Uitgebreid\",\n none: \"Geen\",\n asc: \"Oplopend\",\n desc: \"Aflopend\",\n indeterminate: \"Onbepaald\",\n decimal: \"Decimale\",\n currency: \"Valuta\",\n percent: \"Procent\",\n firstExpanded: \"Eerste uitgevouwen\",\n off: \"Uit\",\n onPanel: \"Op paneel\",\n onSurvey: \"Op enquête\",\n list: \"Lijst\",\n progressTop: \"Voortgang top\",\n progressBottom: \"Voortgang bodem\",\n progressTopBottom: \"Voortgang top bodem\",\n horizontal: \"Horizontaal\",\n vertical: \"Verticaal\",\n top: \"Top\",\n bottom: \"Beneden\",\n topBottom: \"Top en beneden\",\n both: \"Beide\",\n left: \"Links\",\n right: \"Rechts\",\n color: \"Kleur\",\n date: \"Datum\",\n datetime: \"Datum/tijd\",\n \"datetime-local\": \"Datum/tijd lokaal\",\n email: \"E-mail\",\n month: \"Maand\",\n number: \"Nummer\",\n password: \"Wachtwoord\",\n range: \"Bereik\",\n tel: \"Tel\",\n text: \"Tekst\",\n time: \"Tijd\",\n url: \"URL\",\n week: \"Week\",\n hidden: \"Verborgen\",\n on: \"Aan\",\n onPage: \"Op pagina\",\n underTitle: \"Onder de titel\",\n underInput: \"Onder het invoerveld\",\n edit: \"Bewerk\",\n display: \"Scherm\",\n onComplete: \"Bij afronden\",\n onHidden: \"Bij verbergen\",\n onBlur: \"Bij verliezen focus\",\n onTyping: \"Tijdens het typen\",\n all: \"Alle\",\n page: \"Pagina\",\n survey: \"Enquête\",\n onNextPage: \"Bij pagina-overgang\",\n onValueChanged: \"Bij waardeverandering\",\n singlePage: \"Enkele pagina\",\n standard: \"Standaard\",\n questionPerPage: \"Vraag per pagina\",\n noPreview: \"Geen preview\",\n showAllQuestions: \"Toon voorbeeld met alle vragen\",\n showAnsweredQuestions: \"Toon voorbeeld met beantwoorde vragen\",\n image: \"Beeld\",\n video: \"Video\",\n contain: \"Inperken\",\n cover: \"Bedekken\",\n fill: \"Opvullen\"\n },\n //Operators\n op: {\n empty: \"is leeg\",\n notempty: \"is niet leeg\",\n equal: \"gelijk is\",\n notequal: \"niet gelijk\",\n contains: \"bevat\",\n notcontains: \"bevat niet\",\n anyof: \"een van\",\n allof: \"alles van\",\n greater: \"groter\",\n less: \"minder\",\n greaterorequal: \"groter of gelijk aan\",\n lessorequal: \"minder of gelijk aan\",\n and: \"en\",\n or: \"of\",\n },\n //Embed window\n ew: {\n angular: \"Gebruik de Angular-versie\",\n jquery: \"Gebruik de jQuery-versie\",\n knockout: \"Gebruik de Knockout-versie\",\n react: \"Gebruik de React-versie\",\n vue: \"Gebruik de Vue-versie\",\n bootstrap: \"Voor bootstrap-framework\",\n modern: \"Modern thema\",\n default: \"Standaard thema\",\n orange: \"Oranje thema\",\n darkblue: \"Donkerblauw thema\",\n darkrose: \"Donkereroos thema\",\n stone: \"Stenen thema\",\n winter: \"Winter thema\",\n winterstone: \"Wintersteen thema\",\n showOnPage: \"Toon enquête op een pagina\",\n showInWindow: \"Toon enquête in een venster\",\n loadFromServer: \"Laad Survey JSON vanaf de server\",\n titleScript: \"Scripts en stijlen\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Selecteer de pagina om deze te testen:\",\n showInvisibleElements: \"Toon onzichtbare elementen\",\n },\n validators: {\n answercountvalidator: \"Aantal antwoorden\",\n emailvalidator: \"E-mail\",\n expressionvalidator: \"Uitdrukking\",\n numericvalidator: \"Numeriek\",\n regexvalidator: \"Regex\",\n textvalidator: \"Tekst\",\n },\n triggers: {\n completetrigger: \"Volledige enquête\",\n setvaluetrigger: \"Ingestelde waarde\",\n copyvaluetrigger: \"Kopie waarde\",\n skiptrigger: \"Ga naar de vraag\",\n runexpressiontrigger: \"Run expressie\",\n visibletrigger: \"Zichtbaarheid wijzigen (verouderd)\",\n },\n //Properties\n p: {\n name: \"Naam\",\n title: {\n name: \"Titel\",\n title: \"Laat het leeg als het hetzelfde is als 'Naam'\",\n },\n navigationButtonsVisibility: \"Navigatie Knoppen zichtbaarheid\",\n questionsOrder: \"Vragen volgorde\",\n maxTimeToFinish: \"Maximale tijd om te voltooien\",\n visible: \"Zichtbaar\",\n visibleIf: \"Zichtbaar als\",\n questionTitleLocation: \"Plek vraagtitel\",\n questionDescriptionLocation: \"Plek vraagomschrijving\",\n description: \"Omschrijving\",\n state: \"Staat\",\n isRequired: \"Verplicht\",\n requiredIf: \"Vereist als\",\n indent: \"Inspringen\",\n requiredErrorText: \"Vereiste fouttekst\",\n startWithNewLine: \"Begin met nieuwe regel\",\n innerIndent: \"Innerlijke inspringing\",\n page: \"Pagina\",\n width: \"Breedte\",\n commentText: \"Commentaar tekst\",\n valueName: \"Waarde naam\",\n enableIf: \"Inschakelen als\",\n defaultValue: \"Standaardwaarde\",\n correctAnswer: \"Goed antwoord\",\n readOnly: \"Alleen-lezen\",\n validators: \"Validators\",\n titleLocation: \"Plek titel\",\n descriptionLocation: \"Plek omschrijving\",\n minWidth: \"Minimale breedte\",\n maxWidth: \"Maximale breedte\",\n useDisplayValuesInDynamicTexts: \"Waardes in titel gebruiken\",\n hasComment: \"Heeft commentaar\",\n showOtherItem: \"Heeft andere\",\n choices: \"Keuzes\",\n choicesOrder: \"Keuzes bestellen\",\n choicesByUrl: \"Keuzes per url\",\n otherText: \"Andere tekst\",\n otherErrorText: \"Andere fouttekst\",\n storeOthersAsComment: \"Sla anderen op als commentaar\",\n label: \"Etiket\",\n showTitle: \"Laat de titel zien\",\n valueTrue: \"Waarde waar\",\n valueFalse: \"Waarde false\",\n cols: \"Kolommen\",\n rows: \"Rijen\",\n placeholder: \"Tijdelijke aanduiding\",\n optionsCaption: \"Bijschrift opties\",\n expression: \"Uitdrukking\",\n format: \"Formaat\",\n displayStyle: \"Weergavestijl\",\n currency: \"Valuta\",\n useGrouping: \"Gebruik groepering\",\n showPreview: \"Toon voorbeeld\",\n allowMultiple: \"Meerdere toestaan\",\n imageHeight: \"Afbeelding hoogte\",\n imageWidth: \"Afbeelding breedte\",\n storeDataAsText: \"Gegevens opslaan als tekst\",\n maxSize: \"Maximale grootte\",\n html: \"HTML\",\n columns: \"Kolommen\",\n cells: \"Cellen\",\n isAllRowRequired: \"Zijn alle rijen vereist\",\n horizontalScroll: \"Horizontale scroll\",\n cellType: \"Celtype\",\n columnsLayout: \"Kolommen layout\",\n columnColCount: \"Aantal kolommen\",\n columnMinWidth: \"Kolom min breedte\",\n rowCount: \"Rijen tellen\",\n minRowCount: \"Min rijen tellen\",\n maxRowCount: \"Max aantal rijen\",\n keyName: \"Sleutel naam\",\n keyDuplicationError: \"Key duplicatie fout\",\n confirmDelete: \"Bevestig verwijderen\",\n confirmDeleteText: \"Bevestigen verwijder tekst\",\n addRowLocation: \"Rijlocatie toevoegen\",\n addRowText: \"Rij tekst toevoegen\",\n removeRowText: \"Rij-tekst verwijderen\",\n items: \"Artikelen\",\n itemSize: \"Item grootte\",\n colCount: \"Kolommen tellen\",\n templateTitle: \"Sjabloontitel\",\n templateDescription: \"Sjabloonbeschrijving\",\n allowAddPanel: \"Toestaan om paneel toe te voegen\",\n allowRemovePanel: \"Laat het paneel verwijderen\",\n panelCount: \"Aantal panelen\",\n minPanelCount: \"Min paneel aantal\",\n maxPanelCount: \"Max aantal panelen\",\n panelsState: \"Panelen staat\",\n panelAddText: \"Paneel tekst toevoegen\",\n panelRemoveText: \"Paneel verwijder tekst\",\n panelPrevText: \"Paneel vorige tekst\",\n panelNextText: \"Paneel volgende tekst\",\n showQuestionNumbers: \"Toon vraagnummers\",\n textUpdateMode: \"Modus tekstvernieuwing\",\n showRangeInProgress: \"Toon lopende reeks\",\n renderMode: \"Render-modus\",\n templateTitleLocation: \"Sjabloon titel locatie\",\n rateValues: \"Tarief waarden\",\n rateMin: \"Tarief min\",\n rateMax: \"Tarief max\",\n rateStep: \"Tariefstap\",\n minRateDescription: \"Min tarief beschrijving\",\n maxRateDescription: \"Max tarief beschrijving\",\n inputType: \"Invoertype\",\n size: \"Grootte\",\n locale: \"Locale\",\n focusFirstQuestionAutomatic: \"Focus eerste vraag automatisch\",\n completedHtml: \"Voltooide html\",\n completedBeforeHtml: \"HTML bij tweede poging invullen\",\n loadingHtml: \"HTML te tonen bij opstarten\",\n triggers: \"Triggers\",\n cookieName: \"Cookie naam\",\n sendResultOnPageNext: \"Verzend resultaat op volgende pagina\",\n showNavigationButtons: \"Tonen navigatieknoppen\",\n showPrevButton: \"Toon vorige knop\",\n showPageTitles: \"Toon paginatitels\",\n navigateToUrl: \"Naar URL doorsturen\",\n navigateToUrlOnCondition: \"Conditie om naar URL door te sturen\",\n completedHtmlOnCondition: \"Conditie om HTML bij afronden te tonen\",\n showCompletedPage: \"Toon voltooide pagina\",\n showPageNumbers: \"Toon paginanummers\",\n questionErrorLocation: \"Vraag foutlocatie\",\n showProgressBar: \"Toon voortgangsbalk\",\n progressBarType: \"Type voortgangsbalk\",\n questionsOnPageMode: \"Vragen per pagina\",\n mode: \"Modus\",\n goNextPageAutomatic: \"Ga automatisch naar de volgende pagina\",\n checkErrorsMode: \"Modus foutcontrole\",\n clearInvisibleValues: \"Verwijder onzichtbare waarden\",\n startSurveyText: \"Start enquêtetekst\",\n pagePrevText: \"Pagina vorige tekst\",\n pageNextText: \"Pagina volgende tekst\",\n completeText: \"Volledige tekst\",\n requiredText: \"Vereiste tekst\",\n questionStartIndex: \"Vraag start index\",\n questionTitleTemplate: \"Vraag titel sjabloon\",\n firstPageIsStarted: \"Eerste pagina is gestart\",\n isSinglePage: \"Is één pagina\",\n maxTimeToFinishPage: \"Maximale tijd om pagina te voltooien\",\n showTimerPanel: \"Toon timer paneel\",\n showTimerPanelMode: \"Toon timer paneelmodus\",\n defaultPanelValue: \"Standaard paneelwaarde\",\n defaultRowValue: \"Standaard rijwaarde\",\n showNoneItem: \"Heeft er geen\",\n noneText: \"Geen tekst\",\n text: \"Tekst\",\n },\n};\n//Uncomment this line on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"nl\"] = nlStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/english.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/english.ts ***!\n \\*************************************/\n/*! exports provided: enStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"enStrings\", function() { return enStrings; });\n// Uncomment the line below if you create a custom dictionary\n// import { editorLocalization, defaultStrings } from \"../editorLocalization\";\nvar enStrings = {\n //survey templates\n survey: {\n edit: \"Edit\",\n externalHelpLink: \"Watch and learn how to create surveys\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Please drop a question here from the Toolbox.\",\n addLogicItem: \"Create a rule to customize the flow of the survey.\",\n copy: \"Copy\",\n duplicate: \"Duplicate\",\n addToToolbox: \"Add to toolbox\",\n deletePanel: \"Delete Panel\",\n deleteQuestion: \"Delete Question\",\n convertTo: \"Convert to\",\n drag: \"Drag element\",\n },\n //questionTypes\n qt: {\n default: \"Default\",\n checkbox: \"Checkbox\",\n comment: \"Comment\",\n imagepicker: \"Image picker\",\n ranking: \"Ranking\",\n image: \"Image\",\n dropdown: \"Dropdown\",\n file: \"File\",\n html: \"Html\",\n matrix: \"Matrix (single choice)\",\n matrixdropdown: \"Matrix (multiple choice)\",\n matrixdynamic: \"Matrix (dynamic rows)\",\n multipletext: \"Multiple Text\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dynamic panels)\",\n radiogroup: \"Radiogroup\",\n rating: \"Rating\",\n text: \"Single Input\",\n boolean: \"Boolean\",\n expression: \"Expression (read-only)\",\n signaturepad: \"Signature pad\",\n flowpanel: \"Flow Panel\",\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Default ({0})\",\n survey: \"Survey\",\n settings: \"Survey Settings\",\n settingsTooltip: \"Open survey settings\",\n //opjectPropertiesHeader: \"Advanced\",\n //showObjectProperties: \"Show Object Properties\",\n //hideObjectProperties: \"Hide Object Properties\",\n showPanel: \"Show Panel\",\n hidePanel: \"Hide Panel\",\n //editSurvey: \"Edit Survey\",\n addNewPage: \"Add New Page\",\n moveRight: \"Scroll to the Right\",\n moveLeft: \"Scroll to the Left\",\n deletePage: \"Delete Page\",\n editPage: \"Edit Page\",\n edit: \"Edit\",\n newPageName: \"page\",\n newQuestionName: \"question\",\n newPanelName: \"panel\",\n newTextItemName: \"text\",\n testSurvey: \"Test Survey\",\n testSurveyAgain: \"Test Survey Again\",\n testSurveyWidth: \"Survey width: \",\n navigateToMsg: \"You had to navigate to:\",\n logic: \"Survey Logic\",\n embedSurvey: \"Embed Survey\",\n translation: \"Translation\",\n saveSurvey: \"Save Survey\",\n saveSurveyTooltip: \"Save Survey\",\n designer: \"Survey Designer\",\n jsonEditor: \"JSON Editor\",\n undo: \"Undo\",\n redo: \"Redo\",\n undoTooltip: \"Undo last change\",\n redoTooltip: \"Redo the change\",\n copy: \"Copy\",\n cut: \"Cut\",\n paste: \"Paste\",\n copyTooltip: \"Copy selection to clipboard\",\n cutTooltip: \"Cut selection to clipboard\",\n pasteTooltip: \"Paste from clipboard\",\n options: \"Options\",\n generateValidJSON: \"Generate Valid JSON\",\n generateReadableJSON: \"Generate Readable JSON\",\n toolbox: \"Toolbox\",\n \"property-grid\": \"Properties\",\n toolboxGeneralCategory: \"General\",\n //delSelObject: \"Delete selected object\",\n //editSelObject: \"Edit selected object\",\n correctJSON: \"Please correct JSON.\",\n surveyResults: \"Survey Result: \",\n surveyResultsTable: \"As Table\",\n surveyResultsJson: \"As JSON\",\n resultsTitle: \"Question Title\",\n resultsName: \"Question Name\",\n resultsValue: \"Answer Value\",\n resultsDisplayValue: \"Display Value\",\n modified: \"Modified\",\n saving: \"Saving\",\n saved: \"Saved\",\n propertyEditorError: \"Error:\",\n saveError: \"Error! Editor content is not saved.\",\n translationAddLanguage: \"Select language to translate\",\n translationShowAllStrings: \"Show all strings\",\n translationShowAllPages: \"Show all pages\",\n translationNoStrings: \"No strings to translate. Please, change the filter.\",\n translationExportToSCVButton: \"Export to CSV\",\n translationImportFromSCVButton: \"Import from CSV\",\n translationMergeLocaleWithDefault: \"Merge {0} with default locale\",\n bold: \"Bold\",\n italic: \"Italic\",\n underline: \"Underline\",\n fpAddQuestion: \"Add question...\",\n selectPage: \"Select page...\",\n chooseElement: \"Choose element...\",\n //completedHtmlOnConditionItemText: \"Show if:\",\n lg: {\n addNewItem: \"\",\n //Logic tab strings\n page_visibilityName: \"Page visibility\",\n page_enableName: \"Page enable/disable\",\n panel_visibilityName: \"Panel visibility\",\n panel_enableName: \"Panel enable/disable\",\n question_visibilityName: \"Question visibility\",\n question_enableName: \"Question enable/disable\",\n question_requireName: \"Question optional required\",\n trigger_completeName: \"Complete survey\",\n trigger_setvalueName: \"Set question value\",\n trigger_copyvalueName: \"Copy question value\",\n trigger_skipName: \"Skip to question\",\n trigger_runExpressionName: \"Run custom expression\",\n completedHtmlOnConditionName: \"Custom 'Thank you page' text\",\n page_visibilityDescription: \"Make the page visible when the logic expression returns true. Otherwise keep it invisible.\",\n panel_visibilityDescription: \"Make the panel visible when the logic expression returns true. Otherwise keep it invisible.\",\n panel_enableDescription: \"Make the panel, and all elements inside it, enable when the logic expression returns true. Otherwise keep them disabled.\",\n question_visibilityDescription: \"Make the question visible when the logic expression returns true. Otherwise keep it invisible.\",\n question_enableDescription: \"Make the question enable when the logic expression returns true. Otherwise keep it disabled.\",\n question_requireDescription: \"Question becomes required when the logic expression returns true.\",\n trigger_completeDescription: \"When the logic expression returns true then the survey becomes completed and an end-user see the 'Thank you page'.\",\n trigger_setvalueDescription: \"When question values, that are used in the logic expression, are changed and the logic expression returns true, then the value is set to the selected question.\",\n trigger_copyvalueDescription: \"When question values, that are used in the logic expression, are changed and the logic expression returns true, then the value of one selected question is copied to another selected question.\",\n trigger_skipDescription: \"When the logic expression returns true then the survey skip to / focus the selected question.\",\n trigger_runExpressionDescription: \"When the logic expression returns true, then the custom expression is performed. You may optionally set this expression result into the selected question\",\n completedHtmlOnConditionDescription: \"If the logic expression returns true, then the default text for the 'Thank you page' is changed to the given one.\",\n itemExpressionText: \"When expression: '{0}' returns true:\",\n page_visibilityText: \"Make page {0} visible\",\n panel_visibilityText: \"Make panel {0} visible\",\n panel_enableText: \"Make panel {0} enable\",\n question_visibilityText: \"Make question {0} visible\",\n question_enableText: \"Make question {0} enable\",\n question_requireText: \"Make question {0} required\",\n trigger_completeText: \"Survey becomes completed\",\n trigger_setvalueText: \"Set into question: {0} value {1}\",\n trigger_copyvalueText: \"Copy into question: {0} value from question {1}\",\n trigger_skipText: \"Survey skip to the question {0}\",\n trigger_runExpressionText1: \"Run expression: '{0}'\",\n trigger_runExpressionText2: \" and set its result into question: {0}\",\n completedHtmlOnConditionText: \"Show custom text for the 'Thank you page'.\",\n conditions: \"Condition(s)\",\n actions: \"Action(s)\",\n expressionEditorTitle: \"Define condition(s)\",\n actionsEditorTitle: \"Define action(s)\",\n deleteAction: \"Delete action\",\n addNewAction: \"Add new action\",\n selectedActionCaption: \"Select an action to add...\",\n expressionInvalid: \"The logic expression is empty or invalid. Please correct it.\",\n noActionError: \"Please, add at least one action.\",\n actionInvalid: \"Please, fix problems in your action(s).\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n },\n //Property names in table headers\n // pel: {\n // isRequired: \"Required?\"\n // },\n //Property Editors\n pe: {\n apply: \"Apply\",\n ok: \"OK\",\n save: \"Save\",\n saveTooltip: \"Save\",\n cancel: \"Cancel\",\n reset: \"Reset\",\n refresh: \"Refresh\",\n // close: \"Close\",\n delete: \"Delete\",\n add: \"Add\",\n addNew: \"Add New\",\n addItem: \"Click to add an item...\",\n addOther: \"Other\",\n addSelectAll: \"Select All\",\n addNone: \"None\",\n removeAll: \"Remove All\",\n edit: \"Edit\",\n view: \"View\",\n back: \"Return without saving\",\n backTooltip: \"Return without saving\",\n saveAndBack: \"Save and return\",\n saveAndBackTooltip: \"Save and return\",\n // itemValueEdit: \"Visible If\",\n editChoices: \"Edit Choices\",\n showChoices: \"Show Choices\",\n move: \"Move\",\n empty: \"\",\n // notEmpty: \"\",\n fastEntry: \"Fast Entry\",\n formEntry: \"Form Entry\",\n testService: \"Test the service\",\n itemSelectorEmpty: \"Please select the element\",\n conditionActionEmpty: \"Please select the action\",\n conditionSelectQuestion: \"Select question...\",\n conditionSelectPage: \"Select page...\",\n conditionSelectPanel: \"Select panel...\",\n conditionValueQuestionTitle: \"Please enter/select the value\",\n // conditionHelp:\n // \"Please enter a boolean expression. It should return true to keep the question/page visible. For example: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"You can use curly brackets to get access to the question values: {question1} + {question2}, ({price}*{quantity}) * (100 - {discount}). You can use functions as: iif(), today(), age(), min(), max(), count(), avg() and others.\",\n aceEditorHelp: \"Press ctrl+space to get expression completion hint\",\n aceEditorRowTitle: \"Current row\",\n aceEditorPanelTitle: \"Current panel\",\n showMore: \"For more details please check the documentation\",\n // conditionShowMoreUrl:\n // \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Available questions:\",\n cellsEmptyRowsColumns: \"There is should be at least one column or row\",\n propertyIsEmpty: \"Please enter a value\",\n propertyIsNoUnique: \"Please enter a unique value\",\n propertyNameIsNotUnique: \"Please enter a unique name\",\n listIsEmpty: \"Add a new item\",\n expressionIsEmpty: \"Expression is empty\",\n value: \"Value\",\n text: \"Text\",\n rowid: \"Row ID\",\n imageLink: \"Image (video) link\",\n columnEdit: \"Edit column: {0}\",\n itemEdit: \"Edit item: {0}\",\n itemView: \"View item: {0}\",\n url: \"URL\",\n path: \"Path\",\n valueName: \"Value name\",\n titleName: \"Title name\",\n allowEmptyResponse: \"Allow empty respose\",\n titlePlaceholder: \"Input title here\",\n surveyTitlePlaceholder: \"Input survey title here\",\n pageTitlePlaceholder: \"Input page title here\",\n descriptionPlaceholder: \"Enter a description\",\n surveyDescriptionPlaceholder: \"Enter a survey description\",\n pageDescriptionPlaceholder: \"Enter a page description\",\n showOtherItem: \"Has other item\",\n otherText: \"Other item text\",\n showNoneItem: \"Has none item\",\n noneText: \"None item text\",\n hasSelectAll: \"Has select all item\",\n selectAllText: \"Select all item text\",\n choicesMin: \"Minimum value for auto generated items\",\n choicesMax: \"Maximum value for auto generated items\",\n choicesStep: \"The difference between auto generated items\",\n name: \"Name\",\n title: \"Title\",\n cellType: \"Cell type\",\n colCount: \"Column count\",\n choicesOrder: \"Select choices order\",\n visible: \"Is visible?\",\n isRequired: \"Is required?\",\n isAllRowRequired: \"Require answer for all rows\",\n requiredErrorText: \"Required error text\",\n startWithNewLine: \"Is start with new line?\",\n rows: \"Row count\",\n cols: \"Column count\",\n placeholder: \"Input place holder\",\n showPreview: \"Show preview area\",\n storeDataAsText: \"Store file content in JSON result as text\",\n maxSize: \"Maximum file size in bytes\",\n imageHeight: \"Image height\",\n imageWidth: \"Image width\",\n rowCount: \"Row count\",\n columnLayout: \"Columns layout\",\n addRowLocation: \"Add row button location\",\n addRowText: \"Add row button text\",\n removeRowText: \"Remove row button text\",\n rateMin: \"Minimum rate\",\n rateMax: \"Maximum rate\",\n rateStep: \"Rate step\",\n minRateDescription: \"Minimum rate description\",\n maxRateDescription: \"Maximum rate description\",\n rateDescriptionLocation: \"Rate description alignment\",\n inputType: \"Input type\",\n optionsCaption: \"Options caption\",\n showOptionsCaption: \"Show options caption\",\n defaultValue: \"Default value\",\n cellsDefaultRow: \"Default cells texts\",\n surveyEditorTitle: \"Edit survey settings\",\n qEditorTitle: \"Edit: {0}\",\n maxLength: \"Maximum length\",\n buildExpression: \"Build\",\n editExpression: \"Edit\",\n and: \"And\",\n or: \"Or\",\n remove: \"Remove\",\n addCondition: \"Add condition\",\n //survey\n showTitle: \"Show/hide title\",\n expandCollapseTitle: \"Expand/collapse title\",\n locale: \"Default language\",\n simulator: \"Choose device\",\n landscapeOrientation: \"Landscape\",\n mode: \"Mode (edit/read only)\",\n clearInvisibleValues: \"Clear invisible values\",\n cookieName: \"Cookie name (to disable run survey two times locally)\",\n sendResultOnPageNext: \"Send survey results on page next\",\n storeOthersAsComment: \"Store 'others' value in separate field\",\n showPageTitles: \"Show page titles\",\n showPageNumbers: \"Show page numbers\",\n pagePrevText: \"Page previous button text\",\n pageNextText: \"Page next button text\",\n completeText: \"Complete button text\",\n previewText: \"Preview button text\",\n editText: \"Edit button text\",\n startSurveyText: \"Start button text\",\n showNavigationButtons: \"Show navigation buttons (default navigation)\",\n showPrevButton: \"Show previous button (user may return on previous page)\",\n firstPageIsStarted: \"The first page in the survey is a started page.\",\n showCompletedPage: \"Show the completed page at the end (completedHtml)\",\n goNextPageAutomatic: \"On answering all questions, go to the next page automatically\",\n showProgressBar: \"Show progress bar\",\n questionTitleLocation: \"Question title location\",\n requiredText: \"The question required symbol(s)\",\n questionStartIndex: \"Question start index (1, 2 or 'A', 'a')\",\n showQuestionNumbers: \"Show question numbers\",\n questionTitleTemplate: \"Question title template, default is: '{no}. {require} {title}'\",\n questionErrorLocation: \"Question error location\",\n focusFirstQuestionAutomatic: \"Focus first question on changing the page\",\n questionsOrder: \"Elements order on the page\",\n maxTimeToFinish: \"Maximum time to finish the survey\",\n maxTimeToFinishPage: \"Maximum time to finish a page in the survey\",\n showTimerPanel: \"Show timer panel\",\n showTimerPanelMode: \"Show timer panel mode\",\n renderMode: \"Render mode\",\n allowAddPanel: \"Allow adding a panel\",\n allowRemovePanel: \"Allow removing the panel\",\n panelAddText: \"Adding panel text\",\n panelRemoveText: \"Removing panel text\",\n isSinglePage: \"Show all elements on one page\",\n html: \"Html\",\n expression: \"Expression\",\n minValue: \"Minimum value\",\n maxValue: \"Maximum value\",\n minLength: \"Minimum length\",\n allowDigits: \"Allow digits\",\n minCount: \"Minimum count\",\n maxCount: \"Maximum count\",\n regex: \"Regular expression\",\n totalText: \"Total text\",\n totalType: \"Total type\",\n totalExpression: \"Total expression\",\n totalDisplayStyle: \"Total display style\",\n totalCurrency: \"Total currency\",\n totalFormat: \"Total format\",\n // Header adorner\n logoPosition: \"Logo position\",\n addLogo: \"Add logo...\",\n changeLogo: \"Change logo...\",\n logoPositions: {\n none: \"Remove logo\",\n left: \"Left\",\n right: \"Right\",\n top: \"On the top\",\n bottom: \"In the bottom\",\n },\n tabs: {\n general: \"General\",\n fileOptions: \"Options\",\n html: \"Html Editor\",\n columns: \"Columns\",\n rows: \"Rows\",\n choices: \"Choices\",\n items: \"Items\",\n visibleIf: \"Visible If\",\n enableIf: \"Enable If\",\n requiredIf: \"Required If\",\n rateValues: \"Rate Values\",\n choicesByUrl: \"Choices from Web\",\n matrixChoices: \"Default Choices\",\n multipleTextItems: \"Text Inputs\",\n numbering: \"Numbering\",\n validators: \"Validators\",\n navigation: \"Navigation\",\n question: \"Question\",\n pages: \"Pages\",\n completedHtml: \"Completed Html\",\n completedHtmlOnCondition: \"Completed Html on Condition\",\n loadingHtml: \"Loading Html\",\n timer: \"Timer/Quiz\",\n calculatedValues: \"Calculated Values\",\n triggers: \"Triggers\",\n templateTitle: \"Template title\",\n totals: \"Totals\",\n logic: \"Logic\",\n layout: \"Layout\",\n data: \"Data\",\n validation: \"Validation\",\n cells: \"Cells\",\n showOnCompleted: \"Show on Completed\",\n logo: \"Logo in Survey Title\",\n slider: \"Slider\",\n others: \"Others\",\n },\n editProperty: \"Edit property '{0}'\",\n items: \"[ Items: {0} ]\",\n enterNewValue: \"Please, enter the value.\",\n noquestions: \"There is no any question in the survey.\",\n createtrigger: \"Please create a trigger\",\n titleKeyboardAdornerTip: \"Press enter button to edit\",\n keyboardAdornerTip: \"Press enter button to edit item, press delete button to delete item, press alt plus arrow up or arrow down to move item\",\n keyboardMoveItemsTip: \"Press alt plus arrow up or arrow down to move item\",\n triggerOn: \"On \",\n triggerMakePagesVisible: \"Make pages visible:\",\n triggerMakeQuestionsVisible: \"Make elements visible:\",\n triggerCompleteText: \"Complete the survey if succeed.\",\n triggerNotSet: \"The trigger is not set\",\n triggerRunIf: \"Run if\",\n triggerSetToName: \"Change value of: \",\n triggerFromName: \"Copy value from: \",\n triggerRunExpression: \"Run this Expression:\",\n triggerSetValue: \"to: \",\n triggerGotoName: \"Go to the question:\",\n triggerIsVariable: \"Do not put the variable into the survey result.\",\n triggerRunExpressionEmpty: \"Please enter a valid expression\",\n noFile: \"No file choosen\",\n },\n //Property values\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"inherit\",\n show: \"show\",\n hide: \"hide\",\n default: \"default\",\n initial: \"initial\",\n random: \"random\",\n collapsed: \"collapsed\",\n expanded: \"expanded\",\n none: \"none\",\n asc: \"ascending\",\n desc: \"descending\",\n indeterminate: \"indeterminate\",\n decimal: \"decimal\",\n currency: \"currency\",\n percent: \"percent\",\n firstExpanded: \"firstExpanded\",\n off: \"off\",\n onPanel: \"onPanel\",\n onSurvey: \"onSurvey\",\n list: \"list\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n top: \"top\",\n bottom: \"bottom\",\n topBottom: \"top and bottom\",\n both: \"both\",\n left: \"left\",\n right: \"right\",\n leftRight: \"left and right\",\n color: \"color\",\n date: \"date\",\n datetime: \"datetime\",\n \"datetime-local\": \"datetime-local\",\n email: \"email\",\n month: \"month\",\n number: \"number\",\n password: \"password\",\n range: \"range\",\n tel: \"tel\",\n text: \"text\",\n time: \"time\",\n url: \"url\",\n week: \"week\",\n hidden: \"hidden\",\n on: \"on\",\n onPage: \"onPage\",\n edit: \"edit\",\n display: \"display\",\n onComplete: \"onComplete\",\n onHidden: \"onHidden\",\n all: \"all\",\n page: \"page\",\n survey: \"survey\",\n onNextPage: \"onNextPage\",\n onValueChanged: \"onValueChanged\",\n singlePage: \"single page\",\n standard: \"standard\",\n questionPerPage: \"question per page\",\n noPreview: \"no preview\",\n showAllQuestions: \"show preview with all questions\",\n showAnsweredQuestions: \"show preview with answered questions\",\n pages: \"pages\",\n questions: \"questions\",\n requiredQuestions: \"required questions\",\n correctQuestions: \"correct questions\",\n buttons: \"buttons\",\n underInput: \"under input\",\n underTitle: \"under title\"\n },\n //Operators\n op: {\n empty: \"is empty\",\n notempty: \"is not empty\",\n equal: \"equals\",\n notequal: \"not equals\",\n contains: \"contains\",\n notcontains: \"not contains\",\n anyof: \"any of\",\n allof: \"all of\",\n greater: \"greater\",\n less: \"less\",\n greaterorequal: \"greater or equals\",\n lessorequal: \"less or equals\",\n and: \"and\",\n or: \"or\",\n },\n //Embed window\n ew: {\n angular: \"Use Angular version\",\n jquery: \"Use jQuery version\",\n knockout: \"Use Knockout version\",\n react: \"Use React version\",\n vue: \"Use Vue version\",\n bootstrap: \"For bootstrap framework\",\n modern: \"Modern theme\",\n default: \"Default theme\",\n orange: \"Orange theme\",\n darkblue: \"Darkblue theme\",\n darkrose: \"Darkrose theme\",\n stone: \"Stone theme\",\n winter: \"Winter theme\",\n winterstone: \"Winter-Stone theme\",\n showOnPage: \"Show survey on a page\",\n showInWindow: \"Show survey in a window\",\n loadFromServer: \"Load Survey JSON from server\",\n titleScript: \"Scripts and styles\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Select the page to test it:\",\n showInvisibleElements: \"Show invisible elements\",\n },\n validators: {\n answercountvalidator: \"answer count\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"expression\",\n numericvalidator: \"numeric\",\n regexvalidator: \"regex\",\n textvalidator: \"text\",\n },\n triggers: {\n completetrigger: \"complete survey\",\n setvaluetrigger: \"set value\",\n copyvaluetrigger: \"copy value\",\n skiptrigger: \"skip to question\",\n runexpressiontrigger: \"run expression\",\n visibletrigger: \"change visibility (deprecated)\",\n },\n pehelp: {\n //expression:\n },\n //Properties\n p: {\n name: \"name\",\n title: {\n name: \"title\",\n title: \"Leave it empty, if it is the same as 'Name'\",\n },\n navigationButtonsVisibility: \"navigationButtonsVisibility\",\n questionsOrder: \"questionsOrder\",\n maxTimeToFinish: \"maxTimeToFinish\",\n visible: \"visible\",\n visibleIf: \"visibleIf\",\n questionTitleLocation: \"questionTitleLocation\",\n description: \"description\",\n state: \"state\",\n isRequired: \"isRequired\",\n requiredIf: \"requiredIf\",\n indent: \"indent\",\n requiredErrorText: \"requiredErrorText\",\n startWithNewLine: \"startWithNewLine\",\n innerIndent: \"innerIndent\",\n page: \"page\",\n width: \"width\",\n commentText: \"commentText\",\n valueName: \"valueName\",\n enableIf: \"enableIf\",\n defaultValue: \"defaultValue\",\n correctAnswer: \"correctAnswer\",\n readOnly: \"readOnly\",\n validators: \"validators\",\n titleLocation: \"titleLocation\",\n hasComment: \"hasComment\",\n showOtherItem: \"hasOther\",\n choices: \"choices\",\n choicesOrder: \"choicesOrder\",\n choicesByUrl: \"choicesByUrl\",\n otherText: \"otherText\",\n otherErrorText: \"otherErrorText\",\n storeOthersAsComment: \"storeOthersAsComment\",\n label: \"label\",\n showTitle: \"showTitle\",\n valueTrue: \"valueTrue\",\n valueFalse: \"valueFalse\",\n cols: \"cols\",\n rows: \"rows\",\n placeholder: \"placeholder\",\n optionsCaption: \"optionsCaption\",\n expression: \"expression\",\n format: \"format\",\n displayStyle: \"displayStyle\",\n currency: \"currency\",\n useGrouping: \"useGrouping\",\n showPreview: \"showPreview\",\n allowMultiple: \"allowMultiple\",\n imageHeight: \"imageHeight\",\n imageWidth: \"imageWidth\",\n storeDataAsText: \"storeDataAsText\",\n maxSize: \"maxSize\",\n html: \"html\",\n columns: \"columns\",\n cells: \"cells\",\n isAllRowRequired: \"isAllRowRequired\",\n horizontalScroll: \"horizontalScroll\",\n cellType: \"cellType\",\n columnsLayout: \"columnsLayout\",\n columnColCount: \"columnColCount\",\n columnMinWidth: \"columnMinWidth\",\n rowCount: \"rowCount\",\n minRowCount: \"minRowCount\",\n maxRowCount: \"maxRowCount\",\n keyName: \"keyName\",\n keyDuplicationError: \"keyDuplicationError\",\n confirmDelete: \"confirmDelete\",\n confirmDeleteText: \"confirmDeleteText\",\n addRowLocation: \"addRowLocation\",\n addRowText: \"addRowText\",\n removeRowText: \"removeRowText\",\n items: \"items\",\n itemSize: \"itemSize\",\n colCount: \"colCount\",\n templateTitle: \"templateTitle\",\n templateDescription: \"templateDescription\",\n allowAddPanel: \"allowAddPanel\",\n allowRemovePanel: \"allowRemovePanel\",\n noEntriesText: \"Empty entries text\",\n panelCount: \"panelCount\",\n minPanelCount: \"minPanelCount\",\n maxPanelCount: \"maxPanelCount\",\n panelsState: \"panelsState\",\n panelAddText: \"panelAddText\",\n panelRemoveText: \"panelRemoveText\",\n panelPrevText: \"panelPrevText\",\n panelNextText: \"panelNextText\",\n showQuestionNumbers: \"showQuestionNumbers\",\n showRangeInProgress: \"showRangeInProgress\",\n renderMode: \"renderMode\",\n templateTitleLocation: \"templateTitleLocation\",\n rateValues: \"rateValues\",\n rateMin: \"rateMin\",\n rateMax: \"rateMax\",\n rateStep: \"rateStep\",\n minRateDescription: \"minRateDescription\",\n maxRateDescription: \"maxRateDescription\",\n inputType: \"inputType\",\n size: \"size\",\n locale: \"locale\",\n focusFirstQuestionAutomatic: \"focusFirstQuestionAutomatic\",\n completedHtml: \"completedHtml\",\n completedBeforeHtml: \"completedBeforeHtml\",\n loadingHtml: \"loadingHtml\",\n triggers: \"triggers\",\n cookieName: \"cookieName\",\n sendResultOnPageNext: \"sendResultOnPageNext\",\n showNavigationButtons: \"showNavigationButtons\",\n showPrevButton: \"showPrevButton\",\n showPageTitles: \"showPageTitles\",\n showCompletedPage: \"showCompletedPage\",\n showPageNumbers: \"showPageNumbers\",\n questionErrorLocation: \"questionErrorLocation\",\n showProgressBar: \"showProgressBar\",\n mode: \"mode\",\n goNextPageAutomatic: \"goNextPageAutomatic\",\n checkErrorsMode: \"checkErrorsMode\",\n clearInvisibleValues: \"clearInvisibleValues\",\n startSurveyText: \"startSurveyText\",\n pagePrevText: \"pagePrevText\",\n pageNextText: \"pageNextText\",\n completeText: \"completeText\",\n requiredText: \"requiredText\",\n questionStartIndex: \"questionStartIndex\",\n questionTitleTemplate: \"questionTitleTemplate\",\n firstPageIsStarted: \"firstPageIsStarted\",\n isSinglePage: \"isSinglePage\",\n maxTimeToFinishPage: \"maxTimeToFinishPage\",\n showTimerPanel: \"showTimerPanel\",\n showTimerPanelMode: \"showTimerPanelMode\",\n defaultPanelValue: \"defaultPanelValue\",\n defaultRowValue: \"defaultRowValue\",\n showNoneItem: \"hasNone\",\n noneText: \"noneText\",\n text: \"text\",\n multiSelect: \"Multi select\",\n showLabel: \"Show label\",\n logo: \"logo\",\n logoWidth: \"logoWidth\",\n logoHeight: \"logoHeight\",\n logoFit: \"logoFit\",\n focusOnFirstError: \"focusOnFirstError\",\n completedHtmlOnCondition: \"completedHtmlOnCondition\",\n pages: \"pages\",\n calculatedValues: \"calculatedValues\",\n navigateToUrl: \"navigateToUrl\",\n navigateToUrlOnCondition: \"navigateToUrlOnCondition\",\n questionDescriptionLocation: \"questionDescriptionLocation\",\n progressBarType: \"progressBarType\",\n maxTextLength: \"maxTextLength\",\n maxOthersLength: \"maxOthersLength\",\n textUpdateMode: \"textUpdateMode\",\n autoGrowComment: \"autoGrowComment\",\n questionTitlePattern: \"questionTitlePattern\",\n questionsOnPageMode: \"questionsOnPageMode\",\n showPreviewBeforeComplete: \"showPreviewBeforeComplete\",\n widthMode: \"widthMode\",\n showNumber: \"showNumber\",\n navigationTitle: \"navigationTitle\",\n navigationDescription: \"navigationDescription\",\n useDisplayValuesInDynamicTexts: \"useDisplayValuesInDynamicTexts\",\n minWidth: \"minWidth\",\n maxWidth: \"maxWidth\",\n descriptionLocation: \"descriptionLocation\",\n hideNumber: \"hideNumber\",\n defaultValueExpression: \"defaultValueExpression\",\n bindings: \"bindings\",\n columnsVisibleIf: \"columnsVisibleIf\",\n rowsVisibleIf: \"rowsVisibleIf\",\n showHeader: \"showHeader\",\n detailPanelMode: \"detailPanelMode\",\n rowTitleWidth: \"rowTitleWidth\",\n allowAddRows: \"allowAddRows\",\n allowRemoveRows: \"allowRemoveRows\",\n defaultValueFromLastRow: \"defaultValueFromLastRow\",\n hideColumnsIfEmpty: \"hideColumnsIfEmpty\",\n emptyRowsText: \"emptyRowsText\",\n detailPanelShowOnAdding: \"detailPanelShowOnAdding\",\n allowRowsDragAndDrop: \"allowRowsDragAndDrop\",\n rowsOrder: \"rowsOrder\",\n hideIfRowsEmpty: \"hideIfRowsEmpty\",\n maximumFractionDigits: \"maximumFractionDigits\",\n minimumFractionDigits: \"minimumFractionDigits\",\n choicesFromQuestion: \"choicesFromQuestion\",\n choicesFromQuestionMode: \"choicesFromQuestionMode\",\n hideIfChoicesEmpty: \"hideIfChoicesEmpty\",\n choicesVisibleIf: \"choicesVisibleIf\",\n choicesEnableIf: \"choicesEnableIf\",\n otherPlaceHolder: \"otherPlaceHolder\",\n maxSelectedChoices: \"maxSelectedChoices\",\n showClearButton: \"showClearButton\",\n contentMode: \"contentMode\",\n imageFit: \"imageFit\",\n autocomplete: \"autocomplete\",\n min: \"min\",\n max: \"max\",\n minValueExpression: \"minValueExpression\",\n maxValueExpression: \"maxValueExpression\",\n minErrorText: \"minErrorText\",\n maxErrorText: \"maxErrorText\",\n step: \"step\",\n dataList: \"dataList\",\n autoGrow: \"autoGrow\",\n multiLine: \"multiLine\",\n allowImagesPreview: \"allowImagesPreview\",\n acceptedTypes: \"acceptedTypes\",\n waitForUpload: \"waitForUpload\",\n needConfirmRemoveFile: \"needConfirmRemoveFile\",\n labelTrue: \"labelTrue\",\n labelFalse: \"labelFalse\",\n height: \"height\",\n allowClear: \"allowClear\",\n penColor: \"penColor\",\n backgroundColor: \"backgroundColor\",\n dataFormat: \"dataFormat\",\n defaultValueFromLastPanel: \"defaultValueFromLastPanel\",\n panelRemoveButtonLocation: \"panelRemoveButtonLocation\",\n showCaption: \"showCaption\",\n iconName: \"iconName\",\n iconSize: \"iconSize\"\n },\n};\n// Uncomment the line below if you create a custom dictionary.\n// Replace \"en\" with a custom locale code (for example, \"fr\" or \"de\"),\n// Replace `enStrings` with the name of the variable that contains the custom dictionary.\n// editorLocalization.locales[\"en\"] = enStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/finnish.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/finnish.ts ***!\n \\*************************************/\n/*! exports provided: fiStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fiStrings\", function() { return fiStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n//Uncomment this line on creating a translation file\n\nvar fiStrings = {\n //survey templates\n survey: {\n edit: \"Muokkaa\",\n externalHelpLink: \"Katso ja opi luomaan kyselyjä\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Pudota kysymys Työkalupakista tähän.\",\n addLogicItem: \"Luo sääntö mukauttamaan kyselyn kulkua.\",\n copy: \"Kopioi\",\n duplicate: \"Monista\",\n addToToolbox: \"Lisää Työkalupakkiin\",\n deletePanel: \"Poista Paneeli\",\n deleteQuestion: \"Poista Kysymys\",\n convertTo: \"Konvertoi\",\n drag: \"Vedä elementtiä\",\n },\n //questionTypes\n qt: {\n default: \"Oletusarvo\",\n checkbox: \"Valintaruutu\",\n comment: \"Kommentti\",\n imagepicker: \"Kuvanvalitsin\",\n ranking: \"Sijoitus\",\n image: \"Kuva\",\n dropdown: \"Pudotusvalikko\",\n file: \"Tiedosto\",\n html: \"Html\",\n matrix: \"Matrix (yksi valinta)\",\n matrixdropdown: \"Matrix (monivalinta)\",\n matrixdynamic: \"Matrix (dynaamiset rivit)\",\n multipletext: \"Useita tekstejä\",\n panel: \"Paneeli\",\n paneldynamic: \"Paneeli (dynaamiset paneelit)\",\n radiogroup: \"Radiopainikeryhmä\",\n rating: \"Luokitus\",\n text: \"Teksti\",\n boolean: \"Totuusarvomuuttuja\",\n expression: \"Lauseke(vain luku)\",\n signaturepad: \"Allekirjoitusalusta\",\n // flowpanel: \"Sujuva Paneeli\",\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Vakio ({0})\",\n survey: \"Kysely\",\n settings: \"Kyselyn asetukset\",\n settingsTooltip: \"Avaa kyselyn asetukset\",\n //opjectPropertiesHeader: \"Edeistynyt\",\n //showObjectProperties: \"Näytä objektin ominaisuudet\",\n //hideObjectProperties: \"Piilota objektin ominaisuudet\",\n showPanel: \"Näytä Paneeli\",\n hidePanel: \"Piilota Paneeli\",\n editSurvey: \"Muokkaa kyselyä\",\n addNewPage: \"Lisää uusi sivu\",\n moveRight: \"Selaa oikealle\",\n moveLeft: \"Selaa vasemmalle\",\n deletePage: \"Poista sivu\",\n editPage: \"Muokkaa sivua\",\n edit: \"Muokkaa\",\n newPageName: \"sivu\",\n newQuestionName: \"kysymys\",\n newPanelName: \"paneeli\",\n newTextItemName: \"teksti\",\n testSurvey: \"Testaa kyselyä\",\n testSurveyAgain: \"Testaa kysely uudestaan\",\n testSurveyWidth: \"Kyselyn laajuus: \",\n navigateToMsg: \"Sinun piti navigoida:\",\n logic: \"Kysely logiikka\",\n embedSurvey: \"Upota kysely\",\n translation: \"Käännökset\",\n saveSurvey: \"Tallenna kysely\",\n saveSurveyTooltip: \"Tallenna kysely\",\n designer: \"Kysely\",\n jsonEditor: \"JSON Editori\",\n undo: \"Kumoa\",\n redo: \"Tee uudelleen\",\n undoTooltip: \"Kumoa viimeinen muutos\",\n redoTooltip: \"Tee muutos uudelleen\",\n copy: \"Kopioi\",\n cut: \"Leikkaa\",\n paste: \"Liitä\",\n copyTooltip: \"Kopioi valinta leikepöydälle\",\n cutTooltip: \"Leikkaa valinta leikepöydälle\",\n pasteTooltip: \"Liitä leikepöydältä\",\n options: \"Vaihtoehdot\",\n generateValidJSON: \"Luo kelvollinen JSON\",\n generateReadableJSON: \"Luo luettava JSON\",\n toolbox: \"Työkalupakki\",\n \"property-grid\": \"Asetukset\",\n toolboxGeneralCategory: \"Yleinen\",\n delSelObject: \"Poista valittu objekti\",\n editSelObject: \"Muokkaa valittua objektia\",\n correctJSON: \"Korjaa JSON.\",\n surveyResults: \"Kyselyn tulos:\",\n surveyResultsTable: \"Taulukossa\",\n surveyResultsJson: \"JSON:ssa\",\n resultsTitle: \"Kysymyksen otsikko\",\n resultsName: \"Kysymyksen nimi\",\n resultsValue: \"Vastauksen arvo\",\n resultsDisplayValue: \"Näytä arvo\",\n modified: \"Muokattu\",\n saving: \"Tallentaa\",\n saved: \"Tallennettu\",\n propertyEditorError: \"Virhe:\",\n saveError: \"Virhe! Editorin sisältöä ei ole tallennettu.\",\n translationAddLanguage: \"Valitse käännettävä kieli\",\n translationShowAllStrings: \"Näytä kaikki merkkijonot\",\n translationShowAllPages: \"Näytä kaikki sivut\",\n translationNoStrings: \"Ei merkkijonoja käännettäväksi. Vaihda suodatin.\",\n translationExportToSCVButton: \"Vie (CSV)\",\n translationImportFromSCVButton: \"Tuo (CSV)\",\n translationMergeLocaleWithDefault: \"Yhdistä {0} oletuskielellä\",\n bold: \"Lihavoitu\",\n italic: \"Kursiivi\",\n underline: \"Alleviivaa\",\n fpAddQuestion: \"Lisää kysymys...\",\n selectPage: \"Valitse sivu...\",\n chooseElement: \"Valitse elementti...\",\n //completedHtmlOnConditionItemText: \"Näytä jos:\",\n lg: {\n addNewItem: \"\",\n //Logic tab strings\n page_visibilityName: \"Sivun näkyvyys\",\n panel_visibilityName: \"Panelin näkyvyys\",\n panel_enableName: \"Paneeli käytössä/Ei käytössä\",\n question_visibilityName: \"Kysymyksen näkyvyys\",\n question_enableName: \"Kysymys käytössä/Ei käytössä\",\n question_requireName: \"Kysymys valinnainen vaaditaan\",\n trigger_completeName: \"Valmis kysely\",\n trigger_setvalueName: \"Aseta kysymyksen arvo\",\n trigger_copyvalueName: \"Kopioi kysymyksen arvo\",\n trigger_skipName: \"Ohita kysymys\",\n trigger_runExpressionName: \"Suorita mukautettu lauseke\",\n completedHtmlOnConditionName: \"Mukautettu Kiitos -sivuteksti\",\n page_visibilityDescription: \"Tee sivusta näkyvä, kun looginen lauseke palauttaa arvon tosi. Muuten pidä se näkymättömänä.\",\n panel_visibilityDescription: \"Tee paneelista näkyvä, kun looginen lauseke palauttaa arvon tosi. Muuten pidä se näkymättömänä.\",\n panel_enableDescription: \"Ota paneeli ja kaikki sen sisällä olevat elementit käyttöön, kun looginen lauseke palauttaa arvon tosi. Muuten pidä ne poissa käytöstä.\",\n question_visibilityDescription: \"Tee kysymyksestä näkyvä, kun looginen lauseke palauttaa arvon tosi. Muuten pidä se näkymättömänä.\",\n question_enableDescription: \"Ota kysymys käyttöön, kun looginen lauseke palauttaa arvon tosi. Muussa tapauksessa pidä se poissa käytöstä.\",\n question_requireDescription: \"Kysymys tulee pakolliseksi, kun looginen lauseke palauttaa arvon tosi.\",\n trigger_completeDescription: \"Kun looginen lauseke palauttaa arvon tosi, kysely valmistuu ja loppukäyttäjä näkee Kiitos -sivun.\",\n trigger_setvalueDescription: \"Kun loogisessa lausekkeessa käytettyjä kysymysarvoja muutetaan ja looginen lauseke palauttaa arvon tosi, arvo asetetaan valitulle kysymykselle.\",\n trigger_copyvalueDescription: \"Kun loogisessa lausekkeessa käytettyjä kysymysarvoja muutetaan ja looginen lauseke palauttaa arvon tosi, yhden valitun kysymyksen arvo kopioidaan toiseen valittuun kysymykseen.\",\n trigger_skipDescription: \"Kun looginen lauseke palauttaa arvon tosi, kysely siirtyy valittuun kysymykseen / kohdista valittu kysymys.\",\n trigger_runExpressionDescription: \"When the logic expression returns true, then the custom expression is performed. You may optionally set this expression result into the selected question\",\n completedHtmlOnConditionDescription: \"If the logic expression returns true, then the default text for the 'Thank you page' is changed to the given one.\",\n itemExpressionText: \"Kun lauseke: '{0}' palauttaa arvon tosi:\",\n page_visibilityText: \"Tee sivu {0} näkyväksi\",\n panel_visibilityText: \"Tee paneelista {0} näkyvä\",\n panel_enableText: \"Ota paneeli {0} käyttöön\",\n question_visibilityText: \"Tee kysymys {0} näkyväksi\",\n question_enableText: \"Ota kysymys {0} käyttöön\",\n question_requireText: \"Tee kysymyksestä {0} pakollinen\",\n trigger_completeText: \"Kyselystä tulee täytetty\",\n trigger_setvalueText: \"Laita arvo {1} kysymykseen {0}\",\n trigger_copyvalueText: \"Kopioi kysymykseen: {0} arvo kysymyksestä {1}\",\n trigger_skipText: \"Siirry kyselyn kysymykseen {0}\",\n trigger_runExpressionText1: \"Suorita lauseke: '{0}'\",\n trigger_runExpressionText2: \" ja aseta sen tulos kysymykseen: {0}\",\n completedHtmlOnConditionText: \"Näytä mukautettu teksti Kiitos -sivulle.\",\n conditions: \"Ehdot\",\n actions: \"Toiminnot\",\n expressionEditorTitle: \"Määritä olosuhteet\",\n actionsEditorTitle: \"Määritä toiminnot\",\n deleteAction: \"Poista toiminto\",\n addNewAction: \"Lisää uusi toiminto\",\n selectedActionCaption: \"Valitse lisättävä toiminto ...\",\n expressionInvalid: \"Looginen lauseke on tyhjä tai virheellinen. Korjaa se.\",\n noActionError: \"Lisää ainakin yksi toiminto.\",\n actionInvalid: \"Korjaa ongelmat toiminnoissa.\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n },\n //Property names in table headers\n // pel: {\n // isRequired: \"Vaadittu?\"\n // },\n //Property Editors\n pe: {\n apply: \"Käytä\",\n ok: \"OK\",\n save: \"Tallenna\",\n saveTooltip: \"Tallenna\",\n cancel: \"Peruuta\",\n reset: \"Nollaa\",\n refresh: \"Päivitä\",\n // close: \"Sulje\",\n delete: \"Poista\",\n add: \"Lisää\",\n addNew: \"Lisää uusi\",\n addItem: \"Klikkaa lisätäksesi uusi kohde...\",\n addOther: \"Muu\",\n addSelectAll: \"Valitse kaikki\",\n addNone: \"Ei mitään\",\n removeAll: \"Poista kaikki\",\n edit: \"Muokkaa\",\n back: \"Palaa tallentamatta\",\n backTooltip: \"Palaa tallentamatta\",\n saveAndBack: \"Tallenna ja palaa\",\n saveAndBackTooltip: \"Tallenna ja palaa\",\n // itemValueEdit: \"Näkyvä jos\",\n editChoices: \"Muokkaa valintoja\",\n showChoices: \"Näytä valinnat\",\n move: \"Siirrä\",\n empty: \"\",\n // notEmpty: \"\",\n fastEntry: \"Nopea pääsy\",\n formEntry: \"Lomakkeen pääsy\",\n testService: \"Testaa palvelu\",\n itemSelectorEmpty: \"Valitse elementti\",\n conditionActionEmpty: \"Valitse toiminto\",\n conditionSelectQuestion: \"Valitse kysymys...\",\n conditionSelectPage: \"Valitse sivu...\",\n conditionSelectPanel: \"Valitse paneeli...\",\n conditionValueQuestionTitle: \"Syötä / valitse arvo\",\n conditionHelp: \"Anna looginen lauseke. Sen pitäisi palauttaa arvo tosi pitääkseen kysymys / sivu näkyvissä. Esimerkiksi: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"Voit käyttää aalto ​​sulkeita päästäksesi kysymysarvoihin: {question1} + {question2}, ({price}*{quantity}) * (100 - {discount}). Voit käyttää funktioita: iif(), today(), age(), min(), max(), count(), avg() ja muita.\",\n aceEditorHelp: \"Paina ctrl + välilyönti saadaksesi lausekkeen täydennysvihje\",\n aceEditorRowTitle: \"Nykyinen rivi\",\n aceEditorPanelTitle: \"Nykyinen paneeli\",\n showMore: \"Katso lisätietoja dokumentaatiosta\",\n // conditionShowMoreUrl:\n // \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Saatavilla olevat kysymykset:\",\n cellsEmptyRowsColumns: \"Sarakkeita tai rivejä on oltava vähintään yksi\",\n propertyIsEmpty: \"Anna arvo\",\n propertyIsNoUnique: \"Anna yksilöllinen arvo\",\n propertyNameIsNotUnique: \"Anna yksilöllinen nimi\",\n listIsEmpty: \"Lisää uusi kohde\",\n expressionIsEmpty: \"Lauseke on tyhjä\",\n value: \"Arvo\",\n text: \"Teksti\",\n rowid: \"Rivi ID\",\n imageLink: \"Kuvalinkki\",\n columnEdit: \"Muokkaa saraketta: {0}\",\n itemEdit: \"Muokkaa kohdetta: {0}\",\n url: \"URL\",\n path: \"Polku\",\n valueName: \"Arvon nimi\",\n titleName: \"Otsikon nimi\",\n titlePlaceholder: \"Syötä otsikko tähän\",\n surveyTitlePlaceholder: \"Syötä kyselyn otsikko tähän\",\n pageTitlePlaceholder: \"Syötä sivun otsikko tähän\",\n descriptionPlaceholder: \"Lisää kuvaus\",\n surveyDescriptionPlaceholder: \"Lisää kyselyn kuvaus\",\n pageDescriptionPlaceholder: \"Lisää sivun kuvaus\",\n showOtherItem: \"On muu\",\n otherText: \"Muu teksti\",\n showNoneItem: \"Ei mitään\",\n noneText: \"Ei mitään tekstiä\",\n hasSelectAll: \"On valinnut kaikki\",\n selectAllText: \"Valitse kaikki tekstit\",\n choicesMin: \"Automaattisesti luotujen valintojen vähimmäisarvo\",\n choicesMax: \"Automaattisesti luotujen valintojen enimmäisarvo\",\n choicesStep: \"Automaattisesti luotujen valintojen ero\",\n name: \"Nimi\",\n title: \"Otsikko\",\n cellType: \"Solutyyppi\",\n colCount: \"Sarakemäärä\",\n choicesOrder: \"Valitse valintojen järjestys\",\n visible: \"On näkyvä?\",\n isRequired: \"On vaadittu?\",\n isAllRowRequired: \"Vaadi vastaus kaikille riveille\",\n requiredErrorText: \"Vaadittu virheteksti\",\n startWithNewLine: \"Onko aloitus uudella rivillä?\",\n rows: \"Rivit\",\n cols: \"Sarakeet\",\n placeholder: \"Syötä paikkamerkintä\",\n showPreview: \"Näytä esikatselu\",\n storeDataAsText: \"Tallenna tiedostosisältö JSON-tulokseen tekstinä\",\n maxSize: \"Tiedoston enimmäiskoko tavuina\",\n imageHeight: \"Kuvan korkeus\",\n imageWidth: \"Kuvan leveys\",\n rowCount: \"Rivien määrä\",\n columnLayout: \"Sarakkeiden asettelu\",\n addRowLocation: \"Lisää rivipainikkeen sijainti\",\n addRowText: \"Lisää rivipainikkeen teksti\",\n removeRowText: \"Poista rivipainikkeen teksti\",\n rateMin: \"Vähimmäismäärä\",\n rateMax: \"Enimmäismäärä\",\n rateStep: \"Arvostele askel\",\n minRateDescription: \"Vähimmäismäärän kuvaus\",\n maxRateDescription: \"Enimmäismäärän kuvaus\",\n inputType: \"Syötä tyyppi\",\n optionsCaption: \"Vaihtoehdot kuvateksti\",\n defaultValue: \"Oletusarvo\",\n cellsDefaultRow: \"Oletussolutekstit\",\n surveyEditorTitle: \"Muokkaa kyselyn asetuksia\",\n qEditorTitle: \"Muokkaa: {0}\",\n maxLength: \"Enimmäispituus\",\n buildExpression: \"Luo\",\n editExpression: \"Muokkaa\",\n and: \"Ja\",\n or: \"Tai\",\n remove: \"Poista\",\n addCondition: \"Lisää ehto\",\n //survey\n showTitle: \"Näytä/piilota otsikko\",\n expandCollapseTitle: \"Laajenna / tiivistä otsikkoa\",\n locale: \"Oletus kieli\",\n simulator: \"Valitse laite\",\n landscapeOrientation: \"Vaakasuunta\",\n mode: \"Tila (vain muokkaus / vain luku)\",\n clearInvisibleValues: \"Tyhjennä näkymättömät arvot\",\n cookieName: \"Evästeen nimi (poistaaksesi kysely käytöstä suorita kysely kaksi kertaa paikallisesti)\",\n sendResultOnPageNext: \"Lähetä kyselyn tulokset seuraavalla sivulla\",\n storeOthersAsComment: \"Tallenna 'muut' arvo erilliseen kenttään\",\n showPageTitles: \"Näytä sivun otsikot\",\n showPageNumbers: \"Näytä sivunumerot\",\n pagePrevText: \"Edellinen sivu -painikkeen teksti\",\n pageNextText: \"Seuraava sivu -painikkeen teksti\",\n completeText: \"Valmis -painikkeen teksti\",\n previewText: \"Esikatsele -painikkeen teksti\",\n editText: \"Muokkaa -painikkeen teksti\",\n startSurveyText: \"Aloita -painikkeen teksti\",\n showNavigationButtons: \"Näytä navigointipainikkeet (oletusnavigointi)\",\n showPrevButton: \"Näytä edellinen -painike (käyttäjä voi palata edelliselle sivulle)\",\n firstPageIsStarted: \"Kyselyn ensimmäinen sivu on aloitussivu.\",\n showCompletedPage: \"Näytä valmis sivu lopussa (completeHtml)\",\n goNextPageAutomatic: \"Kun vastaat kaikkiin kysymyksiin, siirry seuraavalle sivulle automaattisesti\",\n showProgressBar: \"Näytä edistymispalkki\",\n questionTitleLocation: \"Kysymyksen otsikon sijainti\",\n requiredText: \"Kysymys vaadittu symboli (t)\",\n questionStartIndex: \"Kysymyksen aloitus indeksi (1, 2 or 'A', 'a')\",\n showQuestionNumbers: \"Näytä kysymysnumerot\",\n questionTitleTemplate: \"Kysymyksen otsikkomalli, oletusarvo: '{no}. {require} {title}'\",\n questionErrorLocation: \"Kysymyksen virheen sijainti\",\n focusFirstQuestionAutomatic: \"Fokusoi ensimmäiseen kysymykseen sivun vaihtuessa\",\n questionsOrder: \"Elementtien järjestys sivulla\",\n maxTimeToFinish: \"Enimmäisaika saada kysely täytettyä\",\n maxTimeToFinishPage: \"Enimmäisaika kyselyn sivun täyttämiseen\",\n showTimerPanel: \"Näytä ajastus -paneeli\",\n showTimerPanelMode: \"Näytä ajastus -paneelin tila\",\n renderMode: \"Renderöinnin tila\",\n allowAddPanel: \"Salli paneelin lisääminen\",\n allowRemovePanel: \"Salli paneelin poistaminen\",\n panelAddText: \"Paneelin tekstin lisääminen\",\n panelRemoveText: \"Paneelin tekstin poistaminen\",\n isSinglePage: \"Näytä kaikki elementit yhdellä sivulla\",\n html: \"Html\",\n expression: \"Lauseke\",\n minValue: \"Vähimmäisarvo\",\n maxValue: \"Suurin arvo\",\n minLength: \"Vähimmäispituus\",\n allowDigits: \"Salli numerot\",\n minCount: \"Vähimmäismäärä\",\n maxCount: \"Enimmäismäärä\",\n regex: \"Regular expression\",\n // totalText: \"Koko teksti\",\n // totalType: \"Koko tyyppi\",\n // totalExpression: \"Kokonaislauseke\",\n // totalDisplayStyle: \"Kokonaisnäyttötyyli\",\n // totalCurrency: \"Valuutta yhteensä\",\n // totalFormat: \"Kokonaismuoto\",\n // Header adorner\n logoPosition: \"Logo sijainti\",\n addLogo: \"Lisää logo...\",\n changeLogo: \"Muuta logo...\",\n logoPositions: {\n none: \"Poista logo\",\n left: \"Vasen\",\n right: \"Oikea\",\n top: \"Päällä\",\n bottom: \"Alla\",\n },\n tabs: {\n general: \"Yleinen\",\n fileOptions: \"Vaihtoehdot\",\n html: \"Html Editori\",\n columns: \"Sarakkeet\",\n rows: \"Rivit\",\n choices: \"Valinnat\",\n items: \"Kohteet\",\n visibleIf: \"Näkyvä jos\",\n enableIf: \"Käytössä jos\",\n requiredIf: \"Vaadittu jos\",\n rateValues: \"Järjestä arvot\",\n choicesByUrl: \"Valintoja verkosta\",\n matrixChoices: \"Oletus valinnat\",\n multipleTextItems: \"Tekstinsyötöt\",\n numbering: \"Numerointi\",\n validators: \"Validattorit\",\n navigation: \"Navigointi\",\n question: \"Kysymys\",\n pages: \"Sivut\",\n completedHtml: \"Valmis Html\",\n completedHtmlOnCondition: \"Valmis Html ehdolla\",\n loadingHtml: \"Lataa Html\",\n timer: \"Ajastin / tietovisa\",\n calculatedValues: \"Lasketut arvot\",\n triggers: \"Triggerit\",\n templateTitle: \"Mallin otsikko\",\n totals: \"Yhteensä\",\n logic: \"Logiikka\",\n layout: \"Layout\",\n data: \"Data\",\n validation: \"Validointi\",\n cells: \"Solut\",\n showOnCompleted: \"Näytä kun valmis\",\n logo: \"Logo kyselyn otsikossa\",\n slider: \"Liukusäädin\",\n others: \"Muut\",\n },\n editProperty: \"Muokkaa ominaisuutta'{0}'\",\n items: \"[ Kohteet: {0} ]\",\n enterNewValue: \"Anna arvo.\",\n noquestions: \"Kyselyssä ei ole yhtään kysymystä.\",\n createtrigger: \"Luo triggeri\",\n titleKeyboardAdornerTip: \"Paina Enter -painiketta muokataksesi\",\n keyboardAdornerTip: \"Voit muokata kohdetta painamalla Enter -painiketta, poistaa kohteen painamalla poistopainiketta, siirtää kohdetta painamalla Alt plus nuoli ylös tai nuoli alas\",\n keyboardMoveItemsTip: \"Paina Alt plus nuoli ylös tai nuoli alas siirtääksesi kohdetta\",\n triggerOn: \"Päällä \",\n triggerMakePagesVisible: \"Tee sivuista näkyviä:\",\n triggerMakeQuestionsVisible: \"Tee elementit näkyviksi:\",\n triggerCompleteText: \"Valmista kysely, jos se on onnistunut.\",\n triggerNotSet: \"Triggeriä ei ole asetettu\",\n triggerRunIf: \"Suorita jos\",\n triggerSetToName: \"Muuta arvoa: \",\n triggerFromName: \"Kopioi arvo kohteesta: \",\n triggerRunExpression: \"Suorita tämä lauseke:\",\n triggerSetValue: \"kohtaan: \",\n triggerGotoName: \"Siirry kysymykseen:\",\n triggerIsVariable: \"Älä lisää muuttujaa kyselyn tulokseen.\",\n triggerRunExpressionEmpty: \"Anna kelvollinen lauseke\",\n noFile: \"Tiedostoa ei ole valittuna\",\n },\n //Property values\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"inherit\",\n show: \"show\",\n hide: \"hide\",\n default: \"default\",\n initial: \"initial\",\n random: \"random\",\n collapsed: \"collapsed\",\n expanded: \"expanded\",\n none: \"none\",\n asc: \"ascending\",\n desc: \"descending\",\n indeterminate: \"indeterminate\",\n decimal: \"decimal\",\n currency: \"currency\",\n percent: \"percent\",\n firstExpanded: \"firstExpanded\",\n off: \"off\",\n onPanel: \"onPanel\",\n onSurvey: \"onSurvey\",\n list: \"list\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n top: \"top\",\n bottom: \"bottom\",\n topBottom: \"top and bottom\",\n both: \"both\",\n left: \"left\",\n color: \"color\",\n date: \"date\",\n datetime: \"datetime\",\n \"datetime-local\": \"datetime-local\",\n email: \"email\",\n month: \"month\",\n number: \"number\",\n password: \"password\",\n range: \"range\",\n tel: \"tel\",\n text: \"text\",\n time: \"time\",\n url: \"url\",\n week: \"week\",\n hidden: \"hidden\",\n on: \"on\",\n onPage: \"onPage\",\n edit: \"edit\",\n display: \"display\",\n onComplete: \"onComplete\",\n onHidden: \"onHidden\",\n all: \"all\",\n page: \"page\",\n survey: \"survey\",\n onNextPage: \"onNextPage\",\n onValueChanged: \"onValueChanged\",\n singlePage: \"single page\",\n standard: \"standard\",\n questionPerPage: \"question per page\",\n noPreview: \"no preview\",\n showAllQuestions: \"show preview with all questions\",\n showAnsweredQuestions: \"show preview with answered questions\",\n },\n //Operators\n op: {\n empty: \"on tyhjä\",\n notempty: \"ei ole tyhjä\",\n equal: \"yhtäsuurikuin\",\n notequal: \"ei ole yhtäsuurikuin\",\n contains: \"sisältää\",\n notcontains: \"ei sisällä\",\n anyof: \"mikä tahansa\",\n allof: \"kaikki\",\n greater: \"suurempi\",\n less: \"vähemmän\",\n greaterorequal: \"suurempi tai yhtäsuurikuin\",\n lessorequal: \"vähemmän tai yhtäsuurikuin\",\n and: \"ja\",\n or: \"tai\",\n },\n //Embed window\n ew: {\n angular: \"Käytä Angular versiota\",\n jquery: \"Käytä jQuery versiota\",\n knockout: \"Käytä Knockout versiota\",\n react: \"Käytä React versiota\",\n vue: \"Käytä Vue versiota\",\n bootstrap: \"Bootstrap työkalulle\",\n modern: \"Moderni teema\",\n default: \"Oletus teema\",\n orange: \"Oranssi teema\",\n darkblue: \"Tummansininen teema\",\n darkrose: \"Tumma ruusu teema\",\n stone: \"Kiviteema\",\n winter: \"Talvi teema\",\n winterstone: \"Talvi-kivi-teema\",\n showOnPage: \"Näytä kysely sivulla\",\n showInWindow: \"Näytä kysely ikkunassa\",\n loadFromServer: \"Lataa kysely palvelimelta JSON muodossa\",\n titleScript: \"Skriptit ja tyylit\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Valitse sivu testataksesi sitä:\",\n showInvisibleElements: \"Näytä näkymätön elementti\",\n },\n validators: {\n answercountvalidator: \"vastausten määrä\",\n emailvalidator: \"sähköposti\",\n expressionvalidator: \"lauseke\",\n numericvalidator: \"lukumääräinen\",\n regexvalidator: \"säännöllinen lauseke\",\n textvalidator: \"teksti\",\n },\n triggers: {\n completetrigger: \"valmis kysely\",\n setvaluetrigger: \"aseta arvo\",\n copyvaluetrigger: \"kopioi arvo\",\n skiptrigger: \"siirry kysymykseen\",\n runexpressiontrigger: \"suorita lauseke\",\n visibletrigger: \"muuta näkyvyyttä (vanhentunut)\",\n },\n pehelp: {\n //expression:\n },\n //Properties\n p: {\n name: \"nimi\",\n title: {\n name: \"otsikko\",\n title: \"Jätä se tyhjäksi, jos se on sama kuin 'Nimi'\",\n },\n navigationButtonsVisibility: \"navigationButtonsVisibility\",\n questionsOrder: \"questionsOrder\",\n maxTimeToFinish: \"maxTimeToFinish\",\n visible: \"visible\",\n visibleIf: \"visibleIf\",\n questionTitleLocation: \"questionTitleLocation\",\n description: \"kuvaus\",\n state: \"state\",\n isRequired: \"isRequired\",\n requiredIf: \"requiredIf\",\n indent: \"indent\",\n requiredErrorText: \"requiredErrorText\",\n startWithNewLine: \"startWithNewLine\",\n innerIndent: \"innerIndent\",\n page: \"page\",\n width: \"width\",\n commentText: \"commentText\",\n valueName: \"valueName\",\n enableIf: \"enableIf\",\n defaultValue: \"defaultValue\",\n correctAnswer: \"correctAnswer\",\n readOnly: \"readOnly\",\n validators: \"validators\",\n titleLocation: \"titleLocation\",\n hasComment: \"hasComment\",\n showOtherItem: \"hasOther\",\n choices: \"choices\",\n choicesOrder: \"choicesOrder\",\n choicesByUrl: \"choicesByUrl\",\n otherText: \"otherText\",\n otherErrorText: \"otherErrorText\",\n storeOthersAsComment: \"storeOthersAsComment\",\n label: \"label\",\n showTitle: \"showTitle\",\n valueTrue: \"valueTrue\",\n valueFalse: \"valueFalse\",\n cols: \"cols\",\n rows: \"rows\",\n optionsCaption: \"optionsCaption\",\n expression: \"expression\",\n format: \"format\",\n displayStyle: \"displayStyle\",\n currency: \"currency\",\n useGrouping: \"useGrouping\",\n showPreview: \"showPreview\",\n allowMultiple: \"allowMultiple\",\n imageHeight: \"imageHeight\",\n imageWidth: \"imageWidth\",\n storeDataAsText: \"storeDataAsText\",\n maxSize: \"maxSize\",\n html: \"html\",\n columns: \"columns\",\n cells: \"cells\",\n isAllRowRequired: \"isAllRowRequired\",\n horizontalScroll: \"horizontalScroll\",\n cellType: \"cellType\",\n columnsLayout: \"columnsLayout\",\n columnColCount: \"columnColCount\",\n columnMinWidth: \"columnMinWidth\",\n rowCount: \"rowCount\",\n minRowCount: \"minRowCount\",\n maxRowCount: \"maxRowCount\",\n keyName: \"keyName\",\n keyDuplicationError: \"keyDuplicationError\",\n confirmDelete: \"confirmDelete\",\n confirmDeleteText: \"confirmDeleteText\",\n addRowLocation: \"addRowLocation\",\n addRowText: \"addRowText\",\n removeRowText: \"removeRowText\",\n items: \"items\",\n itemSize: \"itemSize\",\n colCount: \"colCount\",\n templateTitle: \"templateTitle\",\n templateDescription: \"templateDescription\",\n allowAddPanel: \"allowAddPanel\",\n allowRemovePanel: \"allowRemovePanel\",\n panelCount: \"panelCount\",\n minPanelCount: \"minPanelCount\",\n maxPanelCount: \"maxPanelCount\",\n panelsState: \"panelsState\",\n panelAddText: \"panelAddText\",\n panelRemoveText: \"panelRemoveText\",\n panelPrevText: \"panelPrevText\",\n panelNextText: \"panelNextText\",\n showQuestionNumbers: \"showQuestionNumbers\",\n showRangeInProgress: \"showRangeInProgress\",\n renderMode: \"renderMode\",\n templateTitleLocation: \"templateTitleLocation\",\n rateValues: \"rateValues\",\n rateMin: \"rateMin\",\n rateMax: \"rateMax\",\n rateStep: \"rateStep\",\n minRateDescription: \"minRateDescription\",\n maxRateDescription: \"maxRateDescription\",\n inputType: \"inputType\",\n size: \"size\",\n locale: \"locale\",\n focusFirstQuestionAutomatic: \"focusFirstQuestionAutomatic\",\n completedHtml: \"completedHtml\",\n completedBeforeHtml: \"completedBeforeHtml\",\n loadingHtml: \"loadingHtml\",\n triggers: \"triggers\",\n cookieName: \"cookieName\",\n sendResultOnPageNext: \"sendResultOnPageNext\",\n showNavigationButtons: \"showNavigationButtons\",\n showPrevButton: \"showPrevButton\",\n showPageTitles: \"showPageTitles\",\n showCompletedPage: \"showCompletedPage\",\n showPageNumbers: \"showPageNumbers\",\n questionErrorLocation: \"questionErrorLocation\",\n showProgressBar: \"showProgressBar\",\n mode: \"mode\",\n goNextPageAutomatic: \"goNextPageAutomatic\",\n checkErrorsMode: \"checkErrorsMode\",\n clearInvisibleValues: \"clearInvisibleValues\",\n startSurveyText: \"startSurveyText\",\n pagePrevText: \"pagePrevText\",\n pageNextText: \"pageNextText\",\n completeText: \"completeText\",\n requiredText: \"requiredText\",\n questionStartIndex: \"questionStartIndex\",\n questionTitleTemplate: \"questionTitleTemplate\",\n firstPageIsStarted: \"firstPageIsStarted\",\n isSinglePage: \"isSinglePage\",\n maxTimeToFinishPage: \"maxTimeToFinishPage\",\n showTimerPanel: \"showTimerPanel\",\n showTimerPanelMode: \"showTimerPanelMode\",\n defaultPanelValue: \"defaultPanelValue\",\n defaultRowValue: \"defaultRowValue\",\n showNoneItem: \"hasNone\",\n noneText: \"noneText\",\n text: \"text\",\n },\n};\n// Uncomment this line on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"fi\"] = fiStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/french.ts\":\n/*!************************************!*\\\n !*** ./src/localization/french.ts ***!\n \\************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar frenchTranslation = {\n //Survey templates\n survey: {\n edit: \"Éditer\",\n dropQuestion: \"Déposer votre question ici.\",\n copy: \"Copier\",\n addToToolbox: \"Ajouter à la boîte à outils\",\n deletePanel: \"Supprimer le panneau\",\n deleteQuestion: \"Supprimer la question\",\n convertTo: \"Convertir en\",\n },\n //questionTypes\n qt: {\n default: \"Par défaut\",\n checkbox: \"Cases à cocher\",\n comment: \"Commentaire\",\n imagepicker: \"Choix d'image\",\n dropdown: \"Liste déroulante\",\n file: \"Fichier\",\n html: \"HTML\",\n matrix: \"Matrice (choix unique)\",\n matrixdropdown: \"Matrice (choix multiples)\",\n matrixdynamic: \"Matrice (lignes dynamiques)\",\n multipletext: \"Champ multilignes\",\n panel: \"Panneau\",\n paneldynamic: \"Panneau (panneaux dynamiques)\",\n radiogroup: \"Boutons radio\",\n rating: \"Évaluation\",\n text: \"Champ texte\",\n boolean: \"Booléen\",\n expression: \"Expression\",\n },\n //Strings in Editor\n ed: {\n survey: \"Questionnaire\",\n editSurvey: \"Éditer le questionnaire\",\n settings: \"Configuration du questionnaire\",\n opjectPropertiesHeader: \"Propriétés\",\n showObjectProperties: \"Afficher les propriétés\",\n hideObjectProperties: \"Cacher les propriétés\",\n addNewPage: \"Ajouter une page\",\n moveRight: \"Défiler à droite\",\n moveLeft: \"Défiler à gauche\",\n deletePage: \"Supprimer une page\",\n editPage: \"Éditer une page\",\n edit: \"Éditer\",\n newPageName: \"page\",\n newQuestionName: \"question\",\n newPanelName: \"panneau\",\n newTextItemName: \"texte\",\n testSurvey: \"Tester le questionnaire\",\n testSurveyAgain: \"Tester à nouveau le questionnaire\",\n testSurveyWidth: \"Largeur du questionnaire : \",\n embedSurvey: \"Intégrer le questionnaire\",\n translation: \"Traduction\",\n saveSurvey: \"Sauvegarder le questionnaire\",\n designer: \"Éditeur de questionnaire\",\n jsonEditor: \"Éditer JSON\",\n undo: \"Annuler\",\n redo: \"Rétablir\",\n options: \"Options\",\n generateValidJSON: \"Générer un JSON valide\",\n generateReadableJSON: \"Générer un JSON lisible\",\n toolbox: \"Boîte à outils\",\n \"property-grid\": \"Propriétés\",\n toolboxGeneralCategory: \"Général\",\n delSelObject: \"Supprimer l'objet sélectionné\",\n editSelObject: \"Éditer l'objet sélectionné\",\n correctJSON: \"SVP corrigez le JSON\",\n surveyResults: \"Résultat du questionnaire : \",\n surveyResultsTable: \"Comme tableau\",\n surveyResultsJson: \"Comme JSON\",\n resultsTitle: \"Titre de la question\",\n resultsName: \"Nom de la question\",\n resultsValue: \"Valeur de la réponse\",\n resultsDisplayValue: \"Valeur affichée\",\n modified: \"Modifié\",\n saving: \"Sauvegarde en cours\",\n saved: \"Sauvegardé\",\n saveError: \"Erreur! Le contenu de l'éditeur n'a pas été sauvegardé.\",\n translationAddLanguage: \"Choisir langue à traduire\",\n translationShowAllStrings: \"Afficher tous les termes\",\n translationShowAllPages: \"Afficher toutes les pages\",\n translationNoStrings: \"Aucun terme à traduire. Veuillez modifier le filtre.\",\n translationExportToSCVButton: \"Exporter en CSV\",\n translationImportFromSCVButton: \"Importer d'un CSV\",\n translationMergeLocaleWithDefault: \"Fusionner {0} avec langue par défaut\",\n bold: \"Gras\",\n italic: \"Italique\",\n underline: \"Souligné\",\n fpAddQuestion: \"Ajouter question...\",\n completedHtmlOnConditionItemText: \"Afficher si :\",\n lg: {\n //Logic tab strings\n page_visibilityName: \"Visibilité de la page\",\n panel_visibilityName: \"Visibilité du panneau\",\n panel_enableName: \"Activer/désactiver le panneau\",\n question_visibilityName: \"Visibilité de la question\",\n question_enableName: \"Activer/désactiver la question\",\n question_requireName: \"Question facultative requise\",\n trigger_completeName: \"Compléter le questionnaire\",\n trigger_setvalueName: \"Définir la valeur de la question\",\n trigger_copyvalueName: \"Copier la valeur de la question\",\n trigger_skipName: \"Passer à la question\",\n trigger_runExpressionName: \"Exécuter une expression personnalisée\",\n completedHtmlOnConditionName: \"Personnaliser le texte de la page de remerciements\",\n page_visibilityDescription: \"Rendre la page visible lorsque l'expression logique renvoie 'vrai'. Sinon, la rendre invisible.\",\n panel_visibilityDescription: \"Rendre le panneau visible lorsque l'expression logique renvoie 'vrai'. Sinon, le rendre invisible.\",\n panel_enableDescription: \"Activez le panneau et tous les éléments qu'il contient lorsque l'expression logique renvoie 'vrai'. Sinon, le laisser désactivé.\",\n question_visibilityDescription: \"Rendez la question visible lorsque l'expression logique renvoie 'vrai'. Sinon, la rendre invisible.\",\n question_enableDescription: \"Activez la question lorsque l'expression logique renvoie 'vrai'. Sinon, la laisser désactivée.\",\n question_requireDescription: \"La question devient requise lorsque l'expression logique renvoie 'vrai'.\",\n trigger_completeDescription: \"Lorsque l'expression logique renvoie 'vrai', l'enquête est alors terminée et un utilisateur voit la page de remerciements.\",\n trigger_setvalueDescription: \"When question values, that are used in the logic expression, are changed and the logic expression returns true, then the value is set to the selected question.\",\n trigger_copyvalueDescription: \"Lorsque les valeurs de question, qui sont utilisées dans l'expression logique, sont modifiées et que l'expression logique renvoie 'vrai', la valeur d'une question sélectionnée est copiée dans une autre question sélectionnée.\",\n trigger_skipDescription: \"Lorsque l'expression logique renvoie 'vrai', l'enquête passe à la question sélectionnée.\",\n trigger_runExpressionDescription: \"Lorsque l'expression logique renvoie 'vrai', alors l'expression personnalisée est exécutée. Vous pouvez éventuellement définir ce résultat d'expression dans la question sélectionnée.\",\n completedHtmlOnConditionDescription: \"Si l'expression logique renvoie 'vrai', le texte par défaut de la page de remerciements est remplacé par celui que vous avez défini.\",\n itemExpressionText: \"Lorsque l'expression: '{0}' renvoie 'vrai':\",\n page_visibilityText: \"Rendre la page {0} visible\",\n panel_visibilityText: \"Rendre le panneau {0} visible\",\n panel_enableText: \"Activer le panneau {0}\",\n question_visibilityText: \"Rendre la question {0} visible\",\n question_enableText: \"Activer la question {0}\",\n question_requireText: \"Rendre la question {0} obligatoire\",\n trigger_completeText: \"Le questionnaire devient complété.\",\n trigger_setvalueText: \"Définir dans la question: {0} valeur {1}\",\n trigger_copyvalueText: \"Copier dans la question: {0} valeur de la question {1}\",\n trigger_skipText: \"Dans le questionnaire, passez à la question {0}\",\n trigger_runExpressionText1: \"Exécuter l'expression: '{0}'\",\n trigger_runExpressionText2: \" et définissez son résultat dans la question: {0}\",\n completedHtmlOnConditionText: \"Affichez un texte personnalisé pour la page de remerciements.\",\n conditions: \"Condition(s)\",\n actions: \"Action(s)\",\n expressionEditorTitle: \"Définissez le(s) condition(s)\",\n actionsEditorTitle: \"Définissez le(s) action(s)\",\n deleteAction: \"Détruire l'action\",\n addNewAction: \"Ajouter une nouvelle action\",\n selectedActionCaption: \"Sélectionnez une action à ajouter …\",\n expressionInvalid: \"L'expression logique est vide ou non valide. Corrigez s'il-vous-plaît.\",\n noActionError: \"Veuillez ajouter au moins une action.\",\n actionInvalid: \"Veuillez corriger les problèmes dans vos actions.\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n },\n //Property names in table headers\n pel: {\n isRequired: \"Obligatoire ?\",\n },\n //Property Editors\n pe: {\n apply: \"Appliquer\",\n ok: \"OK\",\n save: \"Enregistrer\",\n cancel: \"Annuler\",\n reset: \"Réinitialiser\",\n close: \"Fermer\",\n delete: \"Supprimer\",\n addNew: \"Ajouter un nouvel élément\",\n addItem: \"Cliquer pour ajouter un item...\",\n addOther: \"Autre\",\n addSelectAll: \"Tout sélectionner\",\n addNone: \"Aucun\",\n removeAll: \"Tout supprimer\",\n edit: \"Éditer\",\n back: \"Retourner sans enregistrer\",\n backTooltip: \"Retourner sans enregistrer\",\n saveAndBack: \"Enregistrer et retourner\",\n saveAndBackTooltip: \"Enregistrer et retourner\",\n move: \"Déplacer\",\n empty: \"\",\n notEmpty: \"<éditer la valeur>\",\n editChoices: \"Editer les choix\",\n fastEntry: \"Ajout rapide\",\n formEntry: \"Ajout via formulaire\",\n testService: \"Tester le service\",\n conditionSelectQuestion: \"Sélectionner une question...\",\n conditionValueQuestionTitle: \"Sélectionner ou saisir la valeur\",\n conditionButtonAdd: \"Ajouter\",\n conditionButtonReplace: \"Remplacer\",\n conditionHelp: 'Veuillez entrer une expression booléenne. Elle doit retourner Vrai(true) pour garder la question/page visible. Par exemple: {question1} = \"valeur1\" or ({question2} = 3 and {question3} < 5)',\n expressionHelp: \"Veuillez entrer une expression. Vous pouvez utiliser des accolades pour accéder aux valeurs des questions '{question1} + {question2}', '({prix}*{quantite}) * (100 - {remise})'\",\n aceEditorHelp: \"Appuyer sur Ctrl + espace pour obtenir une aide pour la saisie d'expression\",\n aceEditorRowTitle: \"Ligne courante\",\n aceEditorPanelTitle: \"Panneau courant\",\n showMore: \"Pour plus d'informations, veuillez vous référer à la documentation\",\n assistantTitle: \"Questions disponibles :\",\n cellsEmptyRowsColumns: \"Il faut au minimum une ligne ou une colonne\",\n propertyIsEmpty: \"Veuillez entrer une valeur pour la propriété\",\n listIsEmpty: \"Ajouter un nouvel élément\",\n expressionIsEmpty: \"L'expression est vide\",\n value: \"Valeur\",\n text: \"Texte\",\n rowid: \"ID Ligne\",\n imageLink: \"URL de l'image\",\n columnEdit: \"Éditer la colonne: {0}\",\n itemEdit: \"Éditer l'item: {0}\",\n url: \"URL\",\n path: \"Chemin\",\n valueName: \"Nom de la valeur\",\n titleName: \"Nom du titre\",\n titlePlaceholder: \"Titre de la page\",\n descriptionPlaceholder: \"Entrer une description\",\n surveyTitlePlaceholder: \"Saisissez le titre de l'enquête\",\n pageTitlePlaceholder: \"Saisissez le titre de la page\",\n pageDescriptionPlaceholder: \"Entrer une description pour la page\",\n surveyDescriptionPlaceholder: \"Entrer une description pour l'enquête\",\n showOtherItem: 'Contient un item \"Autre\"',\n otherText: 'Texte item \"Autre\"',\n showNoneItem: 'Contient un item \"Aucun\"',\n noneText: 'Texte item \"Aucun\"',\n hasSelectAll: 'Contient un item \"Tout sélectionner\"',\n selectAllText: 'Texte item \"Tout sélectionner\"',\n choicesMin: \"Valeur minimum pour les items générés automatiquement\",\n choicesMax: \"Valeur maximum pour les items générés automatiquement\",\n choicesStep: \"Différence entre items générés automatiquement\",\n name: \"Nom\",\n title: \"Titre\",\n cellType: \"Type de cellule\",\n colCount: \"Nombre de colonnes\",\n choicesOrder: \"Sélectionner l'ordre des choix\",\n visible: \"Est visible ?\",\n isRequired: \"Est obligatoire ?\",\n isAllRowRequired: \"Réponse obligatoire pour toutes les lignes\",\n requiredErrorText: \"Message d'erreur lorsque obligatoire\",\n startWithNewLine: \"Commencer avec une nouvelle ligne ?\",\n rows: \"Nombre de lignes\",\n placeholder: \"Placeholder (indice dans le champ)\",\n showPreview: \"L'aperçu d'image est-il affiché ?\",\n storeDataAsText: \"Stocker le contenu du fichier dans le résultat JSON sous forme de texte\",\n maxSize: \"Taille maximum du fichier en octets\",\n imageHeight: \"Hauteur de l'image\",\n imageWidth: \"Largeur de l'image\",\n rowCount: \"Nombre de lignes\",\n columnLayout: \"Inverser les lignes et les colonnes\",\n addRowLocation: 'Emplacement bouton \"Ajouter une ligne\"',\n addRowText: 'Texte bouton \"Ajouter une ligne\"',\n removeRowText: 'Texte bouton \"Supprimer une ligne\"',\n rateMin: \"Note minimum\",\n rateMax: \"Note maximum\",\n rateStep: \"Intervalle des notes\",\n minRateDescription: \"Description note minimum\",\n maxRateDescription: \"Description note maximum\",\n inputType: \"Type de champ\",\n optionsCaption: \"Texte par défaut\",\n defaultValue: \"Valeur par défaut\",\n cellsDefaultRow: \"Texte de cellule par défaut\",\n surveyEditorTitle: \"Éditer les préférences du questionnaire\",\n qEditorTitle: \"Éditer la question: {0}\",\n maxLength: \"Longueur maximum\",\n buildExpression: \"Construire\",\n editExpression: \"Editer\",\n and: \"Et\",\n or: \"Ou\",\n remove: \"Enlever\",\n addCondition: \"Ajouter une condition\",\n //survey\n showTitle: \"Afficher/cacher le titre\",\n locale: \"Langue par défaut\",\n simulator: \"Choisir l'appareil\",\n landscapeOrientation: \"Paysage\",\n mode: \"Mode (édition/lecture seule)\",\n clearInvisibleValues: \"Effacer les valeurs invisibles\",\n cookieName: \"Nom du cookie (pour empêcher de compléter 2 fois le questionnaire localement)\",\n sendResultOnPageNext: \"Envoyer les résultats au changement de page\",\n storeOthersAsComment: 'Sauvegarder la valeur \"Autres\" dans un champ séparé',\n showPageTitles: \"Afficher les titres de pages\",\n showPageNumbers: \"Afficher les numéros de pages\",\n pagePrevText: \"Texte bouton page précédente\",\n pageNextText: \"Texte bouton page suivante\",\n completeText: \"Texte bouton terminer\",\n startSurveyText: \"Texte bouton commencer\",\n showNavigationButtons: \"Afficher les boutons de navigation (navigation par défaut)\",\n showPrevButton: \"Afficher le bouton précédent (l'utilisateur pourra retourner sur la page précédente)\",\n firstPageIsStarted: \"La première page du questionnaire est une page de démarrage.\",\n showCompletedPage: 'Afficher la page \"terminé\" à la fin (completedHtml)',\n goNextPageAutomatic: \"Aller à la page suivante automatiquement pour toutes les questions\",\n showProgressBar: \"Afficher la barre de progression\",\n questionTitleLocation: \"Emplacement du titre de la question\",\n requiredText: \"La question requiert un/des symbole(s)\",\n questionStartIndex: \"Index de départ de la question (1, 2 ou 'A', 'a')\",\n showQuestionNumbers: \"Afficher les numéros de questions\",\n questionTitleTemplate: \"Gabarit du titre de question, par défaut : '{no}. {require} {title}'\",\n questionErrorLocation: \"Emplacement de l'erreur\",\n focusFirstQuestionAutomatic: \"Focus sur la première question au changement de page\",\n questionsOrder: \"Ordre des éléments sur la page\",\n maxTimeToFinish: \"Temps maximum pour terminer le questionnaire\",\n maxTimeToFinishPage: \"Temps maximum pour terminer une page\",\n showTimerPanel: \"Afficher le panneau chronomètre\",\n showTimerPanelMode: \"Mode d'affichage du panneau chronomètre\",\n renderMode: \"Mode de rendu\",\n allowAddPanel: \"Autoriser l'ajout du panneau\",\n allowRemovePanel: \"Autoriser la suppression du panneau\",\n panelAddText: \"Ajouter un panneau texte\",\n panelRemoveText: \"Supprimer le panneau texte\",\n isSinglePage: \"Afficher tous les éléments sur une seule page\",\n expression: \"Expression\",\n minValue: \"Valeur minimum\",\n maxValue: \"Valeur maximum\",\n minLength: \"Longueur minimum\",\n allowDigits: \"Permettre chiffres\",\n minCount: \"Nombre minimum\",\n maxCount: \"Nombre maximum\",\n regex: \"Expression régulière\",\n totalText: \"Texte pour le total\",\n totalType: \"Type de total\",\n totalExpression: \"Expression de calcul\",\n totalDisplayStyle: \"Format d'affichage\",\n totalCurrency: \"Monnaie\",\n totalFormat: \"Format du total\",\n logoPosition: \"Position du logo\",\n addLogo: \"Ajouter un logo...\",\n changeLogo: \"Changer le logo...\",\n logoPositions: {\n none: \"Retirer le logo\",\n left: \"Gauche\",\n right: \"Droite\",\n top: \"Au dessus\",\n bottom: \"En dessous\",\n },\n tabs: {\n general: \"Général\",\n fileOptions: \"Options\",\n html: \"Éditeur HTML\",\n columns: \"Colonnes\",\n rows: \"Lignes\",\n choices: \"Choix\",\n visibleIf: \"Visible si\",\n enableIf: \"Actif si\",\n requiredIf: \"Obligatoire si\",\n rateValues: \"Barème\",\n choicesByUrl: \"Choix depuis API web\",\n matrixChoices: \"Choix par défaut\",\n multipleTextItems: \"Champs texte multiples\",\n validators: \"Validateurs\",\n navigation: \"Navigation\",\n question: \"Question\",\n completedHtml: \"HTML de fin\",\n completedHtmlOnCondition: \"Html de fin (page 'terminé') sur condition\",\n loadingHtml: \"HTML de chargement\",\n timer: \"Chronomètre/Quiz\",\n calculatedValues: \"Valeurs calculées\",\n triggers: \"Déclencheurs\",\n templateTitle: \"Titre de gabarit\",\n totals: \"Totaux\",\n logic: \"Conditions\",\n layout: \"Disposition\",\n data: \"Données\",\n validation: \"Validateurs\",\n cells: \"Cellules\",\n logo: \"Logo dans le titre de l'enquête\",\n others: \"Autres\",\n },\n editProperty: 'Éditer la propriété \"{0}\"',\n items: \"[ Éléments: {0} ]\",\n enterNewValue: \"Veuillez saisir la valeur.\",\n noquestions: \"Il n'y a aucune question dans le questionnaire.\",\n createtrigger: \"Veuillez créer un déclencheur\",\n triggerOn: \"Quand \",\n triggerMakePagesVisible: \"Rendre les pages visibles :\",\n triggerMakeQuestionsVisible: \"Rendre les questions visibles :\",\n triggerCompleteText: \"Terminer le questionnaire en cas de succès.\",\n triggerNotSet: \"Le déclencheur n'est pas défini\",\n triggerRunIf: \"Exécuter si\",\n triggerSetToName: \"Changer la valeur de : \",\n triggerFromName: \"Copier la valeur de : \",\n triggerRunExpression: \"Exécuter cette expression :\",\n triggerSetValue: \"à : \",\n triggerGotoName: \"Aller à la question :\",\n triggerIsVariable: \"Ne placez pas la variable dans le résultat du questionnaire.\",\n triggerRunExpressionEmpty: \"Veuillez entrer une expression valide\",\n },\n //Property values\n pv: {\n true: \"vrai\",\n false: \"faux\",\n inherit: \"hérité\",\n show: \"afficher\",\n hide: \"masquer\",\n default: \"par défaut\",\n initial: \"initial\",\n random: \"aléatoire\",\n collapsed: \"replié\",\n expanded: \"déployé\",\n none: \"aucun\",\n asc: \"ascendant\",\n desc: \"descendant\",\n indeterminate: \"indeterminé\",\n decimal: \"décimal\",\n currency: \"monnaie\",\n percent: \"pourcentage\",\n firstExpanded: \"déployé en premier\",\n off: \"désactivé\",\n onPanel: \"panneau\",\n onSurvey: \"questionnaire\",\n list: \"liste\",\n progressTop: \"Progression en haut\",\n progressBottom: \"Progression en bas\",\n progressTopBottom: \"Progression en haut et en bas\",\n top: \"haut\",\n bottom: \"bas\",\n topBottom: \"haut et bas\",\n both: \"les deux\",\n left: \"gauche\",\n color: \"couleur\",\n date: \"date\",\n datetime: \"heure\",\n \"datetime-local\": \"heure locale\",\n email: \"email\",\n month: \"mois\",\n number: \"nombre\",\n password: \"mot de passe\",\n range: \"jauge\",\n tel: \"tél.\",\n text: \"texte\",\n time: \"heure\",\n url: \"URL\",\n week: \"semaine\",\n hidden: \"masqué\",\n on: \"activé\",\n onPage: \"page\",\n edit: \"éditer\",\n display: \"affichage\",\n onComplete: \"Quand terminé\",\n onHidden: \"Quand caché\",\n all: \"tous\",\n page: \"page\",\n survey: \"questionnaire\",\n },\n //Operators\n op: {\n empty: \"est vide\",\n notempty: \"n'est pas vide\",\n equal: \"égal\",\n notequal: \"n'est pas égal\",\n contains: \"contient\",\n notcontains: \"ne contient pas\",\n anyof: \"n'importe quel de\",\n allof: \"tous parmi\",\n greater: \"supérieur\",\n less: \"inférieur\",\n greaterorequal: \"supérieur ou égal\",\n lessorequal: \"inférieur ou égal\",\n },\n //Embed window\n ew: {\n angular: \"Utiliser la version Angular\",\n jquery: \"Utiliser la version jQuery\",\n knockout: \"Utiliser la version Knockout\",\n react: \"Utiliser la version React\",\n vue: \"Utiliser la version Vue\",\n bootstrap: \"Pour le framework Bootstrap\",\n standard: \"Sans Bootstrap\",\n showOnPage: \"Afficher le questionnaire dans une page\",\n showInWindow: \"Afficher le questionnaire dans une fenêtre\",\n loadFromServer: \"Charger le JSON du questionnaire depuis un serveur\",\n titleScript: \"Scripts et styles\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Sélectionner une page pour la tester\",\n showInvisibleElements: \"Afficher les éléments invisibles\",\n },\n //Validators\n validators: {\n answercountvalidator: \"total de réponses\",\n emailvalidator: \"e-mail\",\n numericvalidator: \"numérique\",\n regexvalidator: \"regex\",\n textvalidator: \"texte\",\n },\n //Triggers\n triggers: {\n completetrigger: \"terminer le questionnaire\",\n setvaluetrigger: \"définir la valeur\",\n copyvaluetrigger: \"copier la valeur\",\n skiptrigger: \"sauter à la question\",\n runexpressiontrigger: \"exécuter expression\",\n visibletrigger: \"modifier la visibilité\",\n },\n //Properties\n p: {\n name: \"Nom\",\n title: {\n name: \"Titre\",\n title: 'Laissez vide, si même texte que le \"Nom\"',\n },\n navigationButtonsVisibility: \"Visibilité des boutons de navigation\",\n questionsOrder: \"Ordre des questions\",\n maxTimeToFinish: \"Temps maximum pour terminer\",\n visible: \"Visible\",\n visibleIf: \"Visible si \",\n questionTitleLocation: \"Emplacement titre question\",\n description: \"Description\",\n state: \"État\",\n isRequired: \"Obligatoire ?\",\n requiredErrorText: \"Message d'erreur text obligatoire\",\n startWithNewLine: \"Commencer avec une nouvelle ligne\",\n innerIndent: \"Indentation\",\n page: \"page\",\n width: \"largeur\",\n commentText: \"Description champ commentaire\",\n valueName: \"Nom de la valeur\",\n enableIf: \"Activer si\",\n defaultValue: \"Valeur par défaut\",\n correctAnswer: \"Bonne réponse\",\n readOnly: \"Lecture seule\",\n validators: \"Validateurs\",\n titleLocation: \"Emplacement du titre\",\n hasComment: \"Champ commentaire ?\",\n showOtherItem: \"Choix autre ?\",\n choices: \"Choix\",\n choicesOrder: \"Ordre des choix\",\n choicesByUrl: \"Choix par API\",\n otherText: \"Autre texte\",\n otherErrorText: 'Texte d\\'erreur champ \"Autre\"',\n storeOthersAsComment: \"Sauvegarder choix autre comme commentaire\",\n label: \"Intitulé\",\n showTitle: \"Afficher le titre\",\n valueTrue: \"Valeur vrai\",\n valueFalse: \"Valeur faux\",\n cols: \"Colonnes\",\n rows: \"Nombre de lignes\",\n placeholder: \"Placeholder (indice dans le champ)\",\n optionsCaption: \"Texte par défaut\",\n expression: \"Expression\",\n format: \"Format\",\n displayStyle: \"Style d'affichage\",\n currency: \"Monnaie\",\n useGrouping: \"Utiliser les groupes\",\n showPreview: \"Voir la prévisualisation\",\n allowMultiple: \"Autoriser multiples\",\n imageHeight: \"Hauteur de l'image\",\n imageWidth: \"Largeur de l'image\",\n storeDataAsText: \"Stocker les données comme du texte\",\n maxSize: \"Taille maximum\",\n html: \"HTML\",\n columns: \"Colonnes\",\n cells: \"Cellules\",\n horizontalScroll: \"Scroll horizontal\",\n cellType: \"Type de cellule\",\n columnColCount: \"Nombre de colonnes\",\n columnMinWidth: \"Largeur minimale des colonnes\",\n rowCount: \"Nombre de lignes\",\n minRowCount: \"Nombre de lignes minimum\",\n maxRowCount: \"Nombre de lignes maximum\",\n keyName: \"Nom de la clé\",\n keyDuplicationError: \"Erreur de clés multiples\",\n confirmDelete: \"Confirmation de suppression\",\n confirmDeleteText: \"Texte de confirmation de suppression\",\n addRowText: \"Bouton ajouter une ligne\",\n removeRowText: \"Bouton supprimer une ligne\",\n items: \"Items\",\n itemSize: \"Nombre maximum de caractères\",\n colCount: \"Nombre de colonnes\",\n templateTitle: \"Titre de gabarit\",\n templateDescription: \"Description du gabarit\",\n allowAddPanel: \"Autoriser l'ajout de panneau\",\n allowRemovePanel: \"Autoriser la suppression de panneau\",\n panelCount: \"Nombre de panneaux\",\n minPanelCount: \"Nombre minimum de panneaux\",\n maxPanelCount: \"Nombre maximum de panneaux\",\n panelsState: \"État des panneaux\",\n panelAddText: \"Texte d'ajout des panneaux\",\n panelRemoveText: \"Texte de suppression des panneaux\",\n panelPrevText: \"Texte panneau précédent\",\n panelNextText: \"Texte panneau suivant\",\n showQuestionNumbers: \"Numérotation des questions\",\n showRangeInProgress: \"Afficher la progression\",\n renderMode: \"Mode de rendu\",\n templateTitleLocation: \"Emplacement du titre de gabarit\",\n rateValues: \"Barème\",\n rateMin: \"Valeur minimum\",\n rateMax: \"Valeur maximum\",\n rateStep: \"Pas\",\n minRateDescription: \"Description note minimum\",\n maxRateDescription: \"Description note maximum\",\n inputType: \"Type de champ\",\n size: \"Nombre maximum de caractères\",\n focusFirstQuestionAutomatic: \"Focus automatique sur la première question\",\n completedHtml: \"HTML questionnaire finalisé\",\n completedBeforeHtml: \"HTML avant complétion du questionnaire\",\n loadingHtml: \"HTML de chargement\",\n triggers: \"Déclencheurs\",\n cookieName: \"Nom du cookie\",\n sendResultOnPageNext: \"Envoyer les résultats au changement de page\",\n showNavigationButtons: \"Boutons de navigation\",\n showPrevButton: \"Afficher le bouton précédent\",\n showPageTitles: \"Titre des pages\",\n showCompletedPage: \"Voir la page formulaire complété ?\",\n showPageNumbers: \"Numérotation des pages\",\n questionErrorLocation: \"Emplacement des erreurs\",\n showProgressBar: \"Barre de progression\",\n mode: \"Mode d'affichage\",\n goNextPageAutomatic: \"Aller à la page suivante automatiquement\",\n clearInvisibleValues: \"Cacher les valeurs invisibles\",\n startSurveyText: \"Texte de démarrage du questionnaire\",\n pagePrevText: \"Bouton page précédente\",\n pageNextText: \"Bouton page suivante\",\n completeText: \"Texte questionnaire finalisé\",\n requiredText: \"Texte pour les champs obligatoires\",\n questionStartIndex: \"Index de numérotation des questions\",\n questionTitleTemplate: \"Template d'affichage des questions\",\n firstPageIsStarted: \"Commence à la première page\",\n isSinglePage: \"Affiché sur une page\",\n maxTimeToFinishPage: \"Temps maximum pour finir la page\",\n showTimerPanel: \"Afficher le panneau chronomètre\",\n showTimerPanelMode: \"Mode d'affichage du panneau chronomètre\",\n indent: \"Indentation\",\n isAllRowRequired: \"Toutes les lignes sont-elle obligatoires ?\",\n locale: \"Langue\",\n },\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"fr\"] = frenchTranslation;\n\n\n/***/ }),\n\n/***/ \"./src/localization/german.ts\":\n/*!************************************!*\\\n !*** ./src/localization/german.ts ***!\n \\************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar germanTranslation = {\n //survey templates\n survey: {\n edit: \"Bearbeiten\",\n externalHelpLink: \"Schauen Sie sich an, wie Sie Umfragen erstellen können\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Frage bitte hier platzieren.\",\n addLogicItem: \"Eine Regel erstellen, um den Fluss der Umfrage anzupassen.\",\n copy: \"Kopieren\",\n addToToolbox: \"Zur Werkzeugleiste hinzufügen\",\n deletePanel: \"Panel löschen\",\n deleteQuestion: \"Frage löschen\",\n convertTo: \"Konvertieren zu\",\n drag: \"Element ziehen\",\n },\n //questionTypes\n qt: {\n default: \"Standard\",\n checkbox: \"Auswahl\",\n comment: \"Kommentar\",\n imagepicker: \"Bildauswahl\",\n image: \"Bild\",\n dropdown: \"Dropdown\",\n file: \"Datei\",\n html: \"HTML\",\n matrix: \"Matrix (einfache Auswahl)\",\n matrixdropdown: \"Matrix (mehrfache Auswahl)\",\n matrixdynamic: \"Matrix (dynamische Zeilen)\",\n multipletext: \"Text (mehrzeilig)\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dynamisch)\",\n radiogroup: \"Option\",\n rating: \"Bewertung\",\n text: \"Text\",\n boolean: \"Wahrheitswert\",\n expression: \"Ausdruck (schreibgeschützt)\",\n signaturepad: \"Unterschrift\",\n flowpanel: \"Panel (fließend)\",\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Standard ({0})\",\n survey: \"Umfrage\",\n settings: \"Umfrageeinstellungen\",\n settingsTooltip: \"Umfrageeinstellungen öffnen\",\n opjectPropertiesHeader: \"Erweitert\",\n showObjectProperties: \"Objekteigenschaften anzeigen\",\n hideObjectProperties: \"Objekteigenschaften verstecken\",\n showPanel: \"Panel anzeigen\",\n hidePanel: \"Panel verstecken\",\n editSurvey: \"Umfrage bearbeiten\",\n addNewPage: \"Neue Seite hinzufügen\",\n moveRight: \"Nach rechts scrollen\",\n moveLeft: \"Nach links scrollen\",\n deletePage: \"Seite löschen\",\n editPage: \"Seite bearbeiten\",\n edit: \"Bearbeiten\",\n newPageName: \"Seite\",\n newQuestionName: \"Frage\",\n newPanelName: \"Panel\",\n newTextItemName: \"Text\",\n testSurvey: \"Umfrage testen\",\n testSurveyAgain: \"Testumfrage wiederholen\",\n testSurveyWidth: \"Umfragebreite: \",\n navigateToMsg: \"Sie werden weitergeleitet: \",\n logic: \"Umfragelogik\",\n embedSurvey: \"Umfrage einfügen\",\n translation: \"Übersetzungen\",\n saveSurvey: \"Umfrage speichern\",\n saveSurveyTooltip: \"Umfrage speichern\",\n designer: \"Umfrage entwerfen\",\n jsonEditor: \"JSON\",\n undo: \"Rückgängig\",\n redo: \"Wiederherstellen\",\n undoTooltip: \"Letzte Änderung rückgängig machen\",\n redoTooltip: \"Letzte Änderung wiederherstellen\",\n copy: \"Kopieren\",\n cut: \"Ausschneiden\",\n paste: \"Einfügen\",\n copyTooltip: \"Auswahl in die Zwischenablage kopieren\",\n cutTooltip: \"Auswahl ausschneiden\",\n pasteTooltip: \"Aus der Zwischenablage einfügen\",\n options: \"Optionen\",\n generateValidJSON: \"Generiere gültiges JSON\",\n generateReadableJSON: \"Generiere lesbares JSON\",\n toolbox: \"Werkzeugleiste\",\n \"property-grid\": \"Eigenschaften\",\n toolboxGeneralCategory: \"Allgemein\",\n delSelObject: \"Lösche markiertes Objekt\",\n editSelObject: \"Bearbeite markiertes Objekt\",\n correctJSON: \"Bitte JSON korrigieren.\",\n surveyResults: \"Umfrageergebnis: \",\n surveyResultsTable: \"Als Tabelle\",\n surveyResultsJson: \"Als JSON\",\n resultsTitle: \"Titel der Frage\",\n resultsName: \"Name der Frage\",\n resultsValue: \"Wert der Antwort\",\n resultsDisplayValue: \"Anzeigewert\",\n modified: \"Modifiziert\",\n saving: \"Speichern\",\n saved: \"Gespeichert\",\n propertyEditorError: \"Fehler:\",\n saveError: \"Fehler! Der Inhalt des Editors wurde nicht gespeichert.\",\n translationAddLanguage: \"Wählen Sie eine Sprache aus\",\n translationShowAllStrings: \"Alle Texte anzeigen\",\n translationShowAllPages: \"Alle Seiten anzeigen\",\n translationNoStrings: \"Keine Texte zum Übersetzen. Bitte den Filter anpassen.\",\n translationExportToSCVButton: \"Export (CSV)\",\n translationImportFromSCVButton: \"Import (CSV)\",\n translationMergeLocaleWithDefault: \"Verschmelze {0} mit der Standardsprache\",\n bold: \"Fett\",\n italic: \"Kursiv\",\n underline: \"Unterstrichen\",\n fpAddQuestion: \"Frage hinzufügen ...\",\n completedHtmlOnConditionItemText: \"Zeige wenn:\",\n },\n lg: {\n //Logic tab strings\n ge_visibilityName: \"Seitensichtbarkeit\",\n panel_visibilityName: \"Panelsichtbarkeit\",\n panel_enableName: \"Panel aktivieren/deaktivieren\",\n question_visibilityName: \"Fragensichtbarkeit\",\n question_enableName: \"Frage aktivieren/deaktivieren\",\n question_requireName: \"Frage optional/erforderlich\",\n trigger_completeName: \"Umfrage abschließen\",\n trigger_setvalueName: \"Setze Fragenwert\",\n trigger_copyvalueName: \"Kopiere Fragenwert\",\n trigger_skipName: \"Gehe zur nächsten Frage\",\n trigger_runExpressionName: \"Benutzerdefinierten Ausdruck ausführen\",\n completedHtmlOnConditionName: \"Benutzerdefinierte Seite nach Abschluss der Umfrage\",\n page_visibilityDescription: \"Mache die Seite sichtbar, wenn der logische Ausdruck wahr ergibt. Andernfalls lass sie unsichtbar.\",\n panel_visibilityDescription: \"Mache das Panel sichtbar, wenn der logische Ausdruck wahr ergibt. Andernfalls lass es unsichtbar.\",\n panel_enableDescription: \"Aktiviere das Panel zusammen mit all seinen Elementen, wenn der logische Ausdruck wahr ergibt. Andernfalls lass sie deaktiviert.\",\n question_visibilityDescription: \"Mache die Frage sichtbar, wenn der logische Ausdruck wahr ergibt. Andernfalls lass sie unsichtbar.\",\n question_enableDescription: \"Aktiviere die Frage, wenn der logische Ausdruck wahr ergibt. Andernfalls lass sie deaktiviert.\",\n question_requireDescription: \"Frage wird erforderlich, wenn der logische Ausdruck wahr ergibt.\",\n trigger_completeDescription: \"Wenn der logische Ausdruck wahr ergibt, wir die Umfrage abgeschlossen und der Benutzer sieht die Abschlussseite der Umfrage.\",\n trigger_setvalueDescription: \"Wenn Werte, die im logischen Ausdruck verwendet werden, geändert werden und der logische Ausdruck wahr ergibt, dann wird der Wert in die ausgewählte Frage eingesetzt.\",\n trigger_copyvalueDescription: \"Wenn Werte, die im logischen Ausdruck verwendet werden, geändert werden und der logische Ausdruck wahr ergibt, dann wird der Wert einer ausgewählte Fragen kopiert und in eine andere ausgewählte Frage eingesetzt.\",\n trigger_skipDescription: \"Wenn der logische Ausdruck wahr ergibt, springt die Umfrage zur ausgewählten Frage.\",\n trigger_runExpressionDescription: \"Wenn der logische Ausdruck wahr ergibt, wird die benutzerdefinierte Anweisung ausgeführt. Sie können optional das Ergebnis der Anweisung in die ausgewählte Frage einsetzen.\",\n completedHtmlOnConditionDescription: \"Wenn der logische Ausdruck wahr ergibt, dann wird der Standardtext der Abschlussseite der Umfrage mit dem gegebenen Text ersetzt.\",\n itemExpressionText: \"Wenn der Ausdruck '{0}' wahr ergibt:\",\n page_visibilityText: \"Mache die Seite {0} sichtbar\",\n panel_visibilityText: \"Mache das Panel {0} sichtbar\",\n panel_enableText: \"Aktiviere das Panel {0}\",\n question_visibilityText: \"Mache die Frage {0} sichtbar\",\n question_enableText: \"Aktiviere die Frage {0}\",\n question_requireText: \"Mache die Frage {0} erforderlich\",\n trigger_completeText: \"Umfrage abschließen\",\n trigger_setvalueText: \"Setze in Frage {0} den Wert {1} ein\",\n trigger_copyvalueText: \"Kopiere in Frage {0} den Wert von Frage {1}\",\n trigger_skipText: \"Gehe zu Frage {0}\",\n trigger_runExpressionText1: \"Führe folgenden Ausdruck aus: '{0}'\",\n trigger_runExpressionText2: \" und setze das Ergebnis in Frage {0} ein\",\n completedHtmlOnConditionText: \"Zeigen Sie einen benutzerdefinierten Text auf der Abschlussseite der Umfrage an.\",\n conditions: \"Bedingungen\",\n actions: \"Aktionen\",\n expressionEditorTitle: \"Definiere Bedingungen\",\n actionsEditorTitle: \"Definiere Aktionen\",\n deleteAction: \"Aktion löschen\",\n addNewAction: \"Aktion hinzufügen\",\n selectedActionCaption: \"Aktion zum Hinzufügen auswählen ...\",\n expressionInvalid: \"Der logische Ausdruck ist leer oder ungültig. Bitte korrigieren Sie ihn.\",\n noActionError: \"Bitte fügen Sie mindestens eine Aktion hinzu.\",\n actionInvalid: \"Bitte beheben Sie die bestehenden Probleme in Ihren Aktionen.\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n //Property names in table headers\n pel: {\n isRequired: \"Erforderlich?\",\n },\n //Property Editors\n pe: {\n apply: \"Anwenden\",\n ok: \"OK\",\n save: \"Speichern\",\n saveTooltip: \"Speichern\",\n cancel: \"Abbrechen\",\n reset: \"Zurücksetzen\",\n refresh: \"Neu laden\",\n close: \"Schliessen\",\n delete: \"Löschen\",\n add: \"Hinzufügen\",\n addNew: \"Neues Element hinzufügen\",\n addItem: \"Klicken, um ein Element hinzuzufügen ...\",\n addOther: \"Weiteres Element\",\n addSelectAll: \"Alle Elemente auswählen hinzufügen\",\n addNone: \"Alle Elemente abwählen hinzufügen\",\n removeAll: \"Alle löschen\",\n edit: \"Bearbeiten\",\n back: \"Zurück ohne zu speichern\",\n backTooltip: \"Zurück ohne zu speichern\",\n saveAndBack: \"Speichern und zurück\",\n saveAndBackTooltip: \"Speichern und zurück\",\n itemValueEdit: \"Sichtbar wenn\",\n editChoices: \"Auswahlmöglichkeiten bearbeiten\",\n showChoices: \"Auswahlmöglichkeiten anzeigen\",\n move: \"Verschieben\",\n empty: \"\",\n notEmpty: \"\",\n fastEntry: \"Schnelleintrag\",\n formEntry: \"Formulareintrag\",\n testService: \"Service testen\",\n itemSelectorEmpty: \"Bitte ein Element auswählen\",\n conditionActionEmpty: \"Bitte eine Aktion auswählen\",\n conditionSelectQuestion: \"Frage auswählen ...\",\n conditionSelectPage: \"Seite auswählen ...\",\n conditionSelectPanel: \"Panel auswählen ...\",\n conditionValueQuestionTitle: \"Bitte den Wert eingeben oder auswählen\",\n conditionHelp: \"Bitte geben Sie einen booleschen Ausdruck ein. Dieser muss 'true' zurückgeben, um die Frage/Seite anzuzeigen. Beispiel: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: 'Bitte geben Sie eine Anweisung ein. Sie können geschweifte Klammern verwenden, um Zugriff auf die Werte der Fragen zu bekommen: \"{question1} + {question2}\", \"({price} * {quantity}) * (100 - {discount})\"',\n aceEditorHelp: \"Bitte drücken Sie Strg+Leertaste, um Vervollständigungsvorschläge für den Ausdruck zu erhalten\",\n aceEditorRowTitle: \"Aktuelle Zeile\",\n aceEditorPanelTitle: \"Aktuelles Panel\",\n showMore: \"Weitere Informationen finden Sie in der Dokumentation\",\n conditionShowMoreUrl: \"https://surveyjs.io/Documentation/LibraryParameter?id=QuestionBase¶meter=visibleIf\",\n assistantTitle: \"Verfügbare Fragen:\",\n cellsEmptyRowsColumns: \"Es sollte mindestens eine Spalte oder Zeile geben\",\n propertyIsEmpty: \"Bitte geben Sie einen Wert ein\",\n propertyNameIsNotUnique: \"Bitte geben Sie einen eindeutigen Wert ein\",\n listIsEmpty: \"Neues Element hinzufügen\",\n expressionIsEmpty: \"Ausdruck ist leer\",\n value: \"Wert\",\n text: \"Text\",\n rowid: \"Zeilen-ID\",\n imageLink: \"Link auf das Bild\",\n columnEdit: \"Spalte bearbeiten: {0}\",\n itemEdit: \"Element bearbeiten: {0}\",\n url: \"URL\",\n path: \"Pfad\",\n valueName: \"Name der Antwort\",\n titleName: \"Name des Titels\",\n titlePlaceholder: \"Titel eingeben\",\n surveyTitlePlaceholder: \"Umfragetitel hier eingeben\",\n pageTitlePlaceholder: \"Seitenbeschreibung hier eingeben\",\n descriptionPlaceholder: \"Beschreibung eingeben\",\n surveyDescriptionPlaceholder: \"Umfragebeschreibung eingeben\",\n pageDescriptionPlaceholder: \"Seitenbeschreibung eingeben\",\n showOtherItem: \"Sonstiges auswählbar?\",\n otherText: \"Text für Sonstiges\",\n otherPlaceHolder: \"Platzhalter für Sonstiges\",\n showClearButton: \"Button anzeigen, der es erlaubt die Auswahl zu leeren\",\n allowEmptyResponse: \"Keine Antwort erlauben\",\n showNoneItem: \"Alle Elemente abwählbar?\",\n noneText: \"Text für die Abwahl aller Elemente\",\n hasSelectAll: \"Alle Elemente auswählbar?\",\n selectAllText: \"Text für die Auswahl aller Elemente\",\n choicesMin: \"Minimaler Wert für automatisch erzeugte Elemente\",\n choicesMax: \"Maximaler Wert für automatisch erzeugte Elemente\",\n choicesStep: \"Schrittgröße für automatisch erzeugte Elemente\",\n showOptionsCaption: \"Überschrift der Auswahlmöglichkeiten anzeigen\",\n name: \"Name\",\n title: \"Titel\",\n cellType: \"Zellentyp\",\n colCount: \"Spaltenanzahl\",\n choicesOrder: \"Auswahlreihenfolge\",\n visible: \"Sichtbar?\",\n isRequired: \"Erforderlich?\",\n isAllRowRequired: \"Ist eine Antwort für alle Zeilen erforderlich?\",\n requiredErrorText: \"Fehlermeldung bei nicht beantworteten erforderlichen Fragen\",\n startWithNewLine: \"In neuer Zeile beginnen?\",\n rows: \"Zeilenanzahl\",\n cols: \"Spaltenanzahl\",\n placeholder: \"Platzhalter\",\n showPreview: \"Wird eine Bildvorschau angezeigt?\",\n storeDataAsText: \"Speicher Dateininhalt des JSON-Resultats als Text\",\n maxSize: \"Maximale Dateigröße in Bytes\",\n imageHeight: \"Bildhöhe\",\n imageWidth: \"Bildbreite\",\n rowCount: \"Zeilenanzahl\",\n columnLayout: \"Spaltenlayout\",\n addRowLocation: \"Zeilenknopfposition hinzufügen\",\n addRowText: \"Zeilenknopftext hinzufügen\",\n removeRowText: \"Zeilenknopftext löschen\",\n rateMin: \"Minimal\",\n rateMax: \"Maximal\",\n rateStep: \"Bewertungsschritte\",\n minRateDescription: \"Bewertungsbeschreibung für minimale Bewertung\",\n maxRateDescription: \"Bewertungsbeschreibung für maximale Bewertung\",\n inputType: \"Eingabetyp\",\n optionsCaption: \"Auswahlbeschriftung\",\n defaultValue: \"Standardantwort\",\n cellsDefaultRow: \"Standardzellentext\",\n surveyEditorTitle: \"Umfrageeinstellungen bearbeiten\",\n qEditorTitle: \"Frage bearbeiten: {0}\",\n maxLength: \"Maximale Länge\",\n buildExpression: \"Baukasten\",\n editExpression: \"Bearbeiten\",\n and: \"und\",\n or: \"oder\",\n remove: \"Entfernen\",\n addCondition: \"Bedingung hinzufügen\",\n showTitle: \"Titel anzeigen\",\n locale: \"Standardsprache\",\n simulator: \"Gerät auswählen\",\n landscapeOrientation: \"Querformat\",\n mode: \"Modus (editierbar/schreibgeschützt)\",\n clearInvisibleValues: \"Alle unsichtbaren Werte leeren\",\n cookieName: \"Cookie-Name (um zu unterdrücken, dass die Umfrage lokal zwei Mal ausgefüllt werden kann)\",\n sendResultOnPageNext: \"Sende Umfrageergebnisse beim Betreten der nächsten Seite\",\n storeOthersAsComment: \"Speichere andere Werte als Kommentar\",\n showPageTitles: \"Seitenbeschreibung anzeigen\",\n showPageNumbers: \"Seitennummern anzeigen\",\n pagePrevText: \"Text des Buttons für die vorherige Seite\",\n pageNextText: \"Text des Buttons für die nächste Seite\",\n completeText: \"Text des Abschließenbuttons\",\n previewText: \"Text des Vorschaubuttons\",\n editText: \"Text des Bearbeitenbuttons\",\n startSurveyText: \"Text des Startbuttons\",\n showNavigationButtons: \"Anzeige der Navigationsbuttons\",\n showPrevButton: \"Button für die vorherige Seite anzeigen (Benutzer können auf die vorherige Seite zurückkehren)\",\n firstPageIsStarted: \"Die erste Seite der Umfrage ist die Startseite\",\n showCompletedPage: \"Nach Abschluss die ausgefüllte Umfrage anzeigen\",\n goNextPageAutomatic: \"Wenn alle Fragen auf einer Seite beantwortet sind, gehe automatisch zur nächsten Seiten\",\n showProgressBar: \"Fortschrittsbalken anzeigen\",\n questionTitleLocation: \"Position des Fragentitels\",\n requiredText: \"Symbol für erforderliche Fragen\",\n questionStartIndex: 'Startindex der Fragen (bspw. \"1\", \"A\", \"a\", ...)',\n showQuestionNumbers: \"Fragennummern anzeigen\",\n textUpdateMode: \"Text aktualisieren\",\n questionTitleTemplate: 'Template für den Fragentitel. Standard ist: \"{no}. {require} {title}\"',\n questionErrorLocation: \"Position der Fehlermeldungen\",\n focusFirstQuestionAutomatic: \"Fokussiere die erste Frage, wenn die Seite verändert wird\",\n questionsOrder: \"Reihenfolge der Elemente auf der Seite\",\n maxTextLength: \"Maximale Textlänge\",\n maxOtherLength: \"Maximale weitere Länge\",\n maxOthersLength: \"Maximale weitere Länge\",\n maxTimeToFinish: \"Maximale Zeit, um die Umfrage zu beenden\",\n maxTimeToFinishPage: \"Maximale Zeit, um eine Seite der Umfrage zu beenden\",\n showTimerPanel: \"Position des Timers\",\n showTimerPanelMode: \"Modus des Timers\",\n renderMode: \"Anzeigemodus\",\n allowAddPanel: \"Erlaube das Hinzufügen eines Paneltexts\",\n allowRemovePanel: \"Erlaube das Entfernen eines Paneltexts\",\n panelAddText: \"Paneltext hinzufügen\",\n panelRemoveText: \"Paneltext entfernen\",\n isSinglePage: \"Alle Elemente auf einer Seite anzeigen\",\n html: \"HTML\",\n expression: \"Ausdruck\",\n minValue: \"Minimaler Wert\",\n maxValue: \"Maximaler Wert\",\n minLength: \"Minimale Länge\",\n allowDigits: \"Ziffern erlaubt\",\n minCount: \"Minimale Anzahl\",\n maxCount: \"Maximale Anzahl\",\n regex: \"Regulärer Ausdruck\",\n totalText: \"Text (total)\",\n totalType: \"Typ (total)\",\n totalExpression: \"Ausdruck (total)\",\n totalDisplayStyle: \"Anzeigestil (total)\",\n totalCurrency: \"Währung (total)\",\n totalFormat: \"Format (total)\",\n logoPosition: \"Logoposition\",\n addLogo: \"Logo hinzufügen ...\",\n changeLogo: \"Logo bearbeiten ...\",\n logoPositions: {\n none: \"ausblenden\",\n left: \"links\",\n right: \"rechts\",\n top: \"oben\",\n bottom: \"unten\",\n },\n tabs: {\n general: \"Allgemein\",\n fileOptions: \"Optionen\",\n html: \"Html Editor\",\n columns: \"Spalten\",\n rows: \"Zeilen\",\n choices: \"Auswahlmöglichkeiten\",\n items: \"Elemente\",\n visibleIf: \"Sichtbar wenn ...\",\n enableIf: \"Aktiviert wenn ...\",\n requiredIf: \"Erforderlich wenn ...\",\n hideIfChoicesEmpty: \"Verstecken, wenn Auswahlmöglichkeiten leer sind\",\n choicesVisibleIf: \"Auswahlmöglichkeiten sichtbar wenn ...\",\n choicesEnableIf: \"Auswahlmöglichkeiten aktiviert wenn ...\",\n choicesEnabledIf: \"Auswahlmöglichkeiten aktiviert wenn ...\",\n rateValues: \"Bewertungsskala\",\n choicesByUrl: \"Auswahlmöglichkeiten aus dem Internet\",\n matrixChoices: \"Standardauswahl\",\n multipleTextItems: \"Texteingabe\",\n numbering: \"Nummerierung\",\n validators: \"Überprüfung\",\n navigation: \"Navigation\",\n question: \"Fragen\",\n completedHtml: \"Benutzerdefinierte Seite nach Abschluss der Umfrage\",\n completedHtmlOnCondition: \"Bedingung dafür, dass eine benutzerdefiniterte Seite nach Abschluss der Umfrage angezeigt wird\",\n loadingHtml: \"Wird geladen\",\n timer: \"Timer\",\n calculatedValues: \"Berechnete Werte\",\n triggers: \"Trigger\",\n templateTitle: \"Titeltemplate\",\n totals: \"Summen\",\n logic: \"Logik\",\n layout: \"Layout\",\n data: \"Daten\",\n validation: \"Validierung\",\n cells: \"Zellen\",\n showOnCompleted: \"Abschluss\",\n logo: \"Logo im Umfragetitel\",\n others: \"Weiteres\",\n },\n editProperty: \"Eigenschaft bearbeiten '{0}'\",\n items: \"[ Gegenstand: {0} ]\",\n enterNewValue: \"Bitte einen Wert eingeben.\",\n noquestions: \"Die Umfrage enthält keine Frage.\",\n createtrigger: \"Bitte einen Trigger eingeben.\",\n keyboardAdornerTip: \"Drücken Sie ENTER, um das Element zu bearbeiten, ENTFERNEN, um das Element zu entfernen, STRG + PFEIL NACH OBEN/UNTEN, um das Element zu verschieben\",\n triggerOn: \"Ein\",\n triggerMakePagesVisible: \"Seiten sichtbar machen:\",\n triggerMakeQuestionsVisible: \"Elemente sichtbar machen:\",\n triggerCompleteText: \"Bei Erfolg die Umfrage abschliessen.\",\n triggerNotSet: \"Trigger ist nicht gesetzt\",\n triggerRunIf: \"Ausführen wenn ...\",\n setToName: \"Setze den Wert von ...\",\n fromName: \"als Kopie von ...\",\n runExpression: \"Anweisung\",\n setValue: \"auf ...\",\n gotoName: \"Gehe zu Frage ...\",\n triggerIsVariable: \"Variable nicht im Umfrageergebnis einbinden.\",\n runExpressionEmpty: \"Bitte geben Sie einen gültigen Ausdruck ein\",\n },\n //Property values\n pv: {\n true: \"wahr\",\n false: \"falsch\",\n inherit: \"vererbt\",\n show: \"anzeigen\",\n hide: \"verstecken\",\n default: \"Standard\",\n initial: \"initial\",\n random: \"zufällig\",\n collapsed: \"eingeklappt\",\n expanded: \"ausgeklappt\",\n none: \"/\",\n asc: \"aufsteigend\",\n desc: \"absteigend\",\n indeterminate: \"unentschieden\",\n decimal: \"Dezimal\",\n currency: \"Währung\",\n percent: \"Prozent\",\n firstExpanded: \"ausgeklappt (erstes Element)\",\n off: \"aus\",\n onPanel: \"Panel\",\n onSurvey: \"Umfrage\",\n list: \"Liste\",\n progressTop: \"oben (Fortschritt)\",\n progressBottom: \"unten (Fortschritt)\",\n progressTopBottom: \"oben und unten (Fortschritt)\",\n horizontal: \"horizontal\",\n vertical: \"vertikal\",\n top: \"oben\",\n bottom: \"unten\",\n topBottom: \"oben und unten\",\n both: \"beides\",\n left: \"links\",\n color: \"Farbe\",\n date: \"Datum\",\n datetime: \"Datum und Uhrzeit\",\n \"datetime-local\": \"Datum und Uhrzeit (lokal)\",\n email: \"E-Mail\",\n month: \"Monat\",\n number: \"Nummer\",\n password: \"Passwort\",\n range: \"Spanne\",\n tel: \"Telefonnummer\",\n text: \"Text\",\n time: \"Uhrzeit\",\n url: \"URL\",\n week: \"Woche\",\n hidden: \"versteckt\",\n on: \"an\",\n onPage: \"an (unabhängig für jede Seite)\",\n underTitle: \"Unterhalb des Titels\",\n underInput: \"Unterhalb des Eingabefelds\",\n edit: \"Bearbeiten\",\n display: \"Anzeigen\",\n onComplete: \"Wenn die Umfrage abgeschlossen wurde\",\n onHidden: \"Wenn die Umfrage versteckt wurde\",\n onBlur: \"Wenn das Eingabefeld verlassen wird\",\n onTyping: \"Wenn in das Eingabefeld getippt wird\",\n all: \"Alle\",\n page: \"Seite\",\n pages: \"Seiten\",\n questions: \"Fragen\",\n correctQuestions: \"Richtig beantwortete Fragen\",\n survey: \"Umfrage\",\n onNextPage: \"Wenn die Seite gewechselt wurde\",\n onValueChanged: \"Wenn ein Wert geändert wurde\",\n singlePage: \"Alle Fragen auf eine Seite\",\n standard: \"Standard\",\n questionPerPage: \"Alle Fragen auf eine eigene Seite\",\n noPreview: \"Keine Vorschau\",\n showAllQuestions: \"Vorschau mit allen Fragen anzeigen\",\n showAnsweredQuestions: \"Vorschau mit beantworteten Fragen anzeigen\",\n image: \"Bild\",\n video: \"Video\",\n contain: \"beinhalten\",\n cover: \"bedecken\",\n fill: \"füllen\",\n },\n //Operators\n op: {\n empty: \"ist leer\",\n notempty: \"ist nicht leer\",\n equal: \"ist gleich\",\n notequal: \"ist ungleich\",\n contains: \"enthält\",\n notcontains: \"enthält nicht\",\n anyof: \"eins aus\",\n allof: \"alle aus\",\n greater: \"größer als\",\n less: \"kleiner als\",\n greaterorequal: \"größer oder gleich als\",\n lessorequal: \"kleiner oder gleich als\",\n and: \"und\",\n or: \"oder\",\n },\n //Embed window\n ew: {\n angular: \"Angular-Version benutzen\",\n jquery: \"jQuery-Version benutzen\",\n knockout: \"Knockout-Version benutzen\",\n react: \"React-Version benutzen\",\n vue: \"Vue-Version benutzen\",\n bootstrap: \"Als Bootstrap Framework\",\n standard: \"Kein Bootstrap\",\n showOnPage: \"Umfrage auf Seite anzeigen\",\n showInWindow: \"Umfrage als Fenster anzeigen\",\n loadFromServer: \"Lade Umfrage als JSON vom Server\",\n titleScript: \"Skripte und Styles\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Seite:\",\n showInvisibleElements: \"Unsichtbare Elemente anzeigen\",\n },\n validators: {\n answercountvalidator: \"Antwortanzahl\",\n emailvalidator: \"E-Mail\",\n expressionvalidator: \"Ausdruck\",\n numericvalidator: \"Zahl\",\n regexvalidator: \"Regulärer Ausdruck\",\n textvalidator: \"Text\",\n },\n triggers: {\n completetrigger: \"Umfrage abschließen\",\n setvaluetrigger: \"Wert setzen\",\n copyvaluetrigger: \"Wert kopieren\",\n skiptrigger: \"Frage wechseln\",\n runexpressiontrigger: \"Anweisung ausführen\",\n visibletrigger: \"Sichtbarkeit ändern (deprecated)\",\n },\n //Properties\n p: {\n name: \"Name\",\n title: {\n name: \"Titel\",\n title: 'Bitte leer lassen, falls gleich wie \"Name\"',\n },\n navigationButtonsVisibility: \"Sichtbarkeit der Navigationsbuttons\",\n questionsOrder: \"Reihenfolge der Fragen\",\n maxTimeToFinish: \"Maximale Zeit, um die Umfrage abzuschließen\",\n visible: \"Sichtbar\",\n visibleIf: \"Sichtbar wenn ...\",\n questionTitleLocation: \"Position der Fragentitel\",\n questionDescriptionLocation: \"Position der Fragenbeschreibung\",\n description: \"Beschreibung\",\n state: \"Status\",\n isRequired: \"Ist erforderlich\",\n requiredIf: \"Erforderlich wenn ...\",\n choicesVisibleIf: \"Auswahlmöglichkeiten sichtbar wenn ...\",\n choicesEnableIf: \"Auswahlmöglichkeiten aktiviert wenn ...\",\n choicesEnabledIf: \"Auswahlmöglichkeiten aktiviert wenn ...\",\n rowsVisibleIf: \"Zeilen sichtbar wenn ...\",\n columnsVisibleIf: \"Spalten sichtbar wenn ...\",\n indent: \"Einzug\",\n requiredErrorText: \"Fehlermeldung bei nicht beantworteten erforderlichen Fragen\",\n startWithNewLine: \"Starte mit neuer Zeile\",\n innerIndent: \"Innerer Einzug\",\n page: \"Seite\",\n width: \"Breite\",\n commentText: \"Kommentarbeschreibung\",\n valueName: \"Name der Antwort\",\n enableIf: \"Aktiviert wenn ...\",\n defaultValue: \"Standardantwort\",\n correctAnswer: \"Richtige Antwort\",\n readOnly: \"Schreibgeschützt?\",\n validators: \"Validierungen\",\n titleLocation: \"Position des Titels\",\n descriptionLocation: \"Position der Beschreibung\",\n useDisplayValuesInDynamicTexts: \"Verwende Anzeigewerte im Titel\",\n hasComment: \"Kommentare erlaubt?\",\n showOtherItem: \"Sonstiges auswählbar?\",\n selectAllText: \"Text für die Auswahl aller Elemente\",\n choices: \"Auswahlmöglichkeiten\",\n choicesOrder: \"Auswahlreihenfolge\",\n choicesByUrl: \"Auswahlreihenfolge nach URL\",\n otherText: \"Text\",\n otherPlaceHolder: \"Platzhalter\",\n otherErrorText: \"Fehlermeldung\",\n storeOthersAsComment: \"Speichere andere Werte als Kommentar\",\n label: \"Label\",\n labelTrue: 'Anzeigewert für \"Ja\"',\n labelFalse: 'Anzeigewert für \"Nein\"',\n showTitle: \"Titel anzeigen\",\n showHeader: \"Spaltennamen anzeigen\",\n valueTrue: 'Wert für \"Ja\"',\n valueFalse: 'Wert für \"Nein\"',\n multiSelect: \"Mehrfachauswahl\",\n contentMode: \"Modus\",\n imageFit: \"Bilddarstellung\",\n showLabel: \"Wert anzeigen\",\n cols: \"Spalten\",\n rows: \"Zeilen\",\n placeholder: \"Platzhalter\",\n optionsCaption: \"Auswahlbeschriftung\",\n expression: \"Ausdruck\",\n format: \"Format\",\n displayStyle: \"Anzeigestil\",\n currency: \"Währung\",\n useGrouping: \"Gruppierung verwenden\",\n showPreview: \"Vorschau anzeigen\",\n allowMultiple: \"Mehrere Antworten erlauben\",\n imageHeight: \"Bildhöhe\",\n imageWidth: \"Bildbreite\",\n storeDataAsText: \"Daten als Text speichern\",\n maxSize: \"Maximale Größe\",\n html: \"HTML\",\n columns: \"Spalten\",\n cells: \"Zellen\",\n isAllRowRequired: \"Sind alle Zeilen erforderlich?\",\n horizontalScroll: \"Horizontales Scrollen\",\n cellType: \"Zelltyp\",\n columnsLayout: \"Spaltenlayout\",\n columnColCount: \"Spaltenanzahl\",\n columnMinWidth: \"Minimale Spaltenbreite\",\n rowCount: \"Zeilenanzahl\",\n minRowCount: \"Minimale Zeilenanzahl\",\n maxRowCount: \"Maximale Spaltenanzahl\",\n keyName: \"Schlüsselname\",\n keyDuplicationError: \"Fehlermeldung für doppelten Schlüssel\",\n confirmDelete: \"Bestätigung der Löschung\",\n confirmDeleteText: \"Text für Bestätigung der Löschung\",\n addRowLocation: \"Zeilenknopfposition hinzufügen\",\n addRowText: \"Zeilenknopftext hinzufügen\",\n removeRowText: \"Zeilenknopftext löschen\",\n items: \"Elemente\",\n itemSize: \"Elementgröße\",\n colCount: \"Spaltenanzahl\",\n templateTitle: \"Template für den Titel\",\n templateDescription: \"Template für die Beschreibung\",\n allowAddPanel: \"Erlaube das Hinzufügen eines Paneltexts\",\n allowRemovePanel: \"Erlaube das Entfernen eines Paneltexts\",\n panelCount: \"Panelanzahl\",\n minPanelCount: \"Minimale Panelanzahl\",\n maxPanelCount: \"Maximale Panelanzahl\",\n panelsState: \"Panelzustand\",\n panelAddText: \"Text für das Hinzufügen eines Panels\",\n panelRemoveText: \"Text für das Entfernen eines Panels\",\n panelPrevText: \"Text für die Navigation zum vorherigen Panel\",\n panelNextText: \"Text für die Navigation zum nächsten Panel\",\n showQuestionNumbers: \"Fragenummern anzeigen\",\n textUpdateMode: \"Text aktualisieren\",\n showRangeInProgress: \"Fortschrittsbalken anzeigen\",\n renderMode: \"Anzeigemodus\",\n templateTitleLocation: \"Template für die Titelposition\",\n rateValues: \"Bewertungsskala\",\n rateMin: \"Minimal\",\n rateMax: \"Maximal\",\n rateStep: \"Bewertungsschritte\",\n minRateDescription: \"Bewertungsbeschreibung für minimale Bewertung\",\n maxRateDescription: \"Bewertungsbeschreibung für maximale Bewertung\",\n inputType: \"Eingabetyp\",\n size: \"Größe\",\n locale: \"Sprache\",\n focusFirstQuestionAutomatic: \"Fokussiere automatisch die erste Frage\",\n completedHtml: \"Inhalt, der nach Abschluss der Umfrage angezeigt wird (HTML)\",\n completedBeforeHtml: \"Inhalt, der vor Abschluss der Umfrage angezeigt wird (HTML)\",\n loadingHtml: \"Inhalt, der beim Laden der Umfrage angezeigt wird (HTML)\",\n triggers: \"Trigger\",\n calculatedValues: \"Berechnete Werte\",\n includeIntoResult: \"Variable im Umfrageergebnis einbinden\",\n cookieName: \"Cookiename\",\n sendResultOnPageNext: \"Sende Umfrageergebnisse beim Betreten der nächsten Seite\",\n showNavigationButtons: \"Anzeige der Navigationsbuttons\",\n showPrevButton: \"Button für die vorherige Seite anzeigen (Benutzer können auf die vorherige Seite zurückkehren)\",\n showPageTitles: \"Seitenbeschreibung anzeigen\",\n navigateToUrl: \"Weiterleitung (URL)\",\n navigateToUrlOnCondition: \"Bedingte Weiterleitung (URL)\",\n showCompletedPage: \"Nach Abschluss die ausgefüllte Umfrage anzeigen\",\n showPageNumbers: \"Seitennummern anzeigen\",\n questionErrorLocation: \"Position der Fehlermeldungen\",\n showProgressBar: \"Fortschrittsbalken anzeigen\",\n progressBarType: \"Fortschrittsbalkentyp\",\n questionsOnPageMode: \"Aufteilung auf Seiten\",\n mode: \"Modus (editierbar/schreibgeschützt)\",\n goNextPageAutomatic: \"Wenn alle Fragen auf einer Seite beantwortet sind, gehe automatisch zur nächsten Seiten\",\n focusOnFirstError: \"Fokussiere den ersten Fehler\",\n checkErrorsMode: \"Wann werden Fehler überprüft?\",\n clearInvisibleValues: \"Alle unsichtbaren Werte leeren\",\n startSurveyText: \"Text des Startbuttons\",\n pagePrevText: \"Text des Buttons für die vorherige Seite\",\n pageNextText: \"Text des Buttons für die nächste Seite\",\n completeText: \"Text des Abschließenbuttons\",\n requiredText: \"Symbol für erforderliche Fragen\",\n questionStartIndex: 'Startindex der Fragen (bspw. \"1\", \"A\", \"a\", ...)',\n questionTitleTemplate: 'Template für den Fragentitel. Standard ist: \"{no}. {require} {title}\"',\n firstPageIsStarted: \"Die erste Seite der Umfrage ist die Startseite\",\n isSinglePage: \"Alle Elemente auf einer Seite anzeigen\",\n maxTimeToFinishPage: \"Maximale Zeit, um eine Seite der Umfrage zu beenden\",\n showTimerPanel: \"Timerpanelposition\",\n showTimerPanelMode: \"Timerpanelmodus\",\n hideIfChoicesEmpty: \"Verstecken, wenn Auswahlmöglichkeiten leer sind\",\n defaultPanelValue: \"Standardwert für Panels\",\n defaultRowValue: \"Standardwert für Zeilen\",\n defaultValueFromLastPanel: \"Standardwert vom letzten Panel\",\n showNoneItem: \"Alle Elemente abwählbar?\",\n noneText: \"Text\",\n rowsOrder: \"Zeilensortierung\",\n text: \"Text\",\n },\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"de\"] = germanTranslation;\n\n\n/***/ }),\n\n/***/ \"./src/localization/hungarian.ts\":\n/*!***************************************!*\\\n !*** ./src/localization/hungarian.ts ***!\n \\***************************************/\n/*! exports provided: huStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"huStrings\", function() { return huStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar huStrings = {\n //survey templates\n survey: {\n edit: \"Szerkesztés\",\n externalHelpLink: \"Nézze meg, hogyan kell kérdőíveket készíteni.\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Kérem dobjon ide egy kérdést a bal oldali menüből.\",\n copy: \"Másolás\",\n addToToolbox: \"Hozzáadás az eszköztárhoz\",\n deletePanel: \"Panel eltávolítása\",\n deleteQuestion: \"Kérdés eltávolítása\",\n convertTo: \"Konvertálás\",\n drag: \"Elem mozgatása\"\n },\n //questionTypes\n qt: {\n default: \"Alapértelmezett\",\n checkbox: \"Jelölőnégyzet\",\n comment: \"Megjegyzés\",\n imagepicker: \"Képválasztó\",\n dropdown: \"Legördülő\",\n file: \"Állomány\",\n html: \"HTML\",\n matrix: \"Mátrix (egyválasztós)\",\n matrixdropdown: \"Mátrix (többválasztós)\",\n matrixdynamic: \"Mátrix (dinamikus)\",\n multipletext: \"Többsoros szöveg\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dinamikus)\",\n radiogroup: \"Választógomb\",\n rating: \"Értékelés\",\n text: \"Egysoros szöveg\",\n boolean: \"Igaz-hamis\",\n expression: \"Kifejezés (csak olvasható)\",\n flowpanel: \"Folyamat\"\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Alapértelmezett ({0})\",\n survey: \"Kérdőív\",\n settings: \"Kérdőívbeállítások\",\n opjectPropertiesHeader: \"Haladó\",\n showObjectProperties: \"Tulajdonságok mutatása\",\n hideObjectProperties: \"Tulajdonságok elrejtése\",\n editSurvey: \"Kérdőív szerkesztése\",\n addNewPage: \"Új lap felvétele\",\n moveRight: \"Görgetés jobbra\",\n moveLeft: \"Görgetés balra\",\n deletePage: \"Lap eltávolítása\",\n editPage: \"Lap szerkesztése\",\n edit: \"Szerkesztés\",\n newPageName: \"lap\",\n newQuestionName: \"kérdés\",\n newPanelName: \"panel\",\n newTextItemName: \"szöveg\",\n testSurvey: \"Próba\",\n testSurveyAgain: \"Próba ismét\",\n testSurveyWidth: \"Kérdőív szélessége: \",\n embedSurvey: \"Kérdőív beágyazása\",\n translation: \"Fordítás\",\n saveSurvey: \"Kérdőív mentése\",\n designer: \"Kérdőívtervező\",\n jsonEditor: \"JSON szerkesztő\",\n undo: \"Mégse\",\n redo: \"Ismét\",\n options: \"Beállítások\",\n generateValidJSON: \"Érvényes JSON generálása\",\n generateReadableJSON: \"Olvasható JSON generálása\",\n toolbox: \"Eszköztár\",\n toolboxGeneralCategory: \"Általános\",\n delSelObject: \"Kijelölt elem eltávolítása\",\n editSelObject: \"Kijelölt elem szerkesztése\",\n correctJSON: \"Kérem javítsa a JSON-t.\",\n surveyResults: \"Kérdőív eredménye: \",\n surveyResultsTable: \"Táblaként\",\n surveyResultsJson: \"JSON-ként\",\n resultsTitle: \"Kérdés címe\",\n resultsName: \"Kérdés megnevezése\",\n resultsValue: \"Válasz értéke\",\n resultsDisplayValue: \"Kijelzett értéke\",\n modified: \"Módosított\",\n saving: \"Mentés folyamatban\",\n saved: \"Mentve\",\n saveError: \"Hiba! A szerkesztő értéke nem került mentésre.\",\n translationAddLanguage: \"Válasszon egy nyelvet a fordításhoz.\",\n translationShowAllStrings: \"Összes szöveg mutatása\",\n translationShowAllPages: \"Összes lap mutatása\",\n translationNoStrings: \"Nincs fordítható szöveg. Kérem változtasson a szűrési feltételeken.\",\n translationExportToSCVButton: \"Mentés CSV-ként\",\n translationImportFromSCVButton: \"Betöltés CSV-ből.\",\n translationMergeLocaleWithDefault: \"{0} összefűzése az alapértelmezett szöveggel.\",\n bold: \"Félkövér\",\n italic: \"Dőlt\",\n underline: \"Aláhúzott\",\n fpAddQuestion: \"Kérdés felvétele...\",\n completedHtmlOnConditionItemText: \"Mutatás ha:\"\n },\n //Property names in table headers\n pel: {\n isRequired: \"Kötelező?\"\n },\n //Property Editors\n pe: {\n apply: \"Alkalmaz\",\n ok: \"OK\",\n cancel: \"Mégsem\",\n reset: \"Visszaállítás\",\n close: \"Bezárás\",\n delete: \"Eltávolítás\",\n addNew: \"Új felvétele\",\n addItem: \"Kattintson egy elem felvételéhez...\",\n addOther: \"Egyéb\",\n addSelectAll: \"Összes kijelölése\",\n addNone: \"Semmi\",\n removeAll: \"Összes eltávolítása\",\n edit: \"Szerkesztés\",\n itemValueEdit: \"Látható ha\",\n editChoices: \"Lehetőségek szerkesztése\",\n move: \"Mozgatás\",\n empty: \"<üres>\",\n notEmpty: \"<érték szerkesztése>\",\n fastEntry: \"Gyors felvétel\",\n formEntry: \"Felvétel űrlappal\",\n testService: \"Szolgáltatás tesztelése\",\n conditionSelectQuestion: \"Válasszon kérdést...\",\n conditionValueQuestionTitle: \"Kérem adjon meg, vagy válasszon értéket\",\n conditionButtonAdd: \"Felvétel\",\n conditionButtonReplace: \"Csere\",\n conditionHelp: \"Kérem adjon meg egy igaz-hamis kifejezést. Igaz visszatérési értékkel kell rendelkeznie, hogy a kérdés vagy a lap látható maradjon. Például: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"Kérem adjon meg egy kifejezést. Használjon kapcsos zárójeleket, hogy elérje a kérdések aktuális értékét. Például: '{question1} + {question2}', '({price}*{quantity}) * (100 - {discount})'\",\n aceEditorHelp: \"Nyomja meg a ctrl+space billentyűkombinációt a kifejezés befejezésére vonatkozó segítségért.\",\n aceEditorRowTitle: \"Jelenlegi sor\",\n aceEditorPanelTitle: \"Jelenlegi panel\",\n showMore: \"További információért kérem tekintse meg a dokumentációt\",\n conditionShowMoreUrl: \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Elérhető kérdések:\",\n cellsEmptyRowsColumns: \"Legalább egy sornak vagy egy oszlopnak lennie kell\",\n propertyIsEmpty: \"Kérem adjon meg egy értéket\",\n value: \"Érték\",\n text: \"Szöveg\",\n rowid: \"Sor ID\",\n imageLink: \"Kép URL\",\n columnEdit: \"Oszlop szerkesztése: {0}\",\n itemEdit: \"Elem szerkesztése: {0}\",\n url: \"URL\",\n path: \"Útvonal\",\n valueName: \"Érték megnevezése\",\n titleName: \"Cím megnevezése\",\n showOtherItem: \"Rendelkezik egyéb értékkel\",\n otherText: \"Az egyéb érték szövege\",\n name: \"Megnevezés\",\n title: \"Cím\",\n cellType: \"Cellatípus\",\n colCount: \"Oszlopok száma\",\n choicesOrder: \"Válassza ki a lehetőséget rendezését\",\n visible: \"Látható?\",\n isRequired: \"Kötelező?\",\n startWithNewLine: \"Új sorban kezdődik?\",\n rows: \"Sorok száma\",\n placeholder: \"Mező kitöltőszövege\",\n showPreview: \"A kép előnézete látható?\",\n storeDataAsText: \"Az állomány tartalmát tárolja a JSON-ben, szövegként\",\n maxSize: \"Maximális állományméret byte-ban\",\n imageHeight: \"Kép magassága\",\n imageWidth: \"Kép szélessége\",\n rowCount: \"Sorok száma\",\n columnLayout: \"Oszlopok elrendezése\",\n addRowLocation: \"'Új sor felvétele' gomb elhelyezése\",\n addRowText: \"'Új sor felvétele' gomb szövege\",\n removeRowText: \"'Sor eltávolítása' gomb szövege\",\n rateMin: \"Legkisebb szorzó\",\n rateMax: \"Legnagyobb szorzó\",\n rateStep: \"Szorzó lépésköze\",\n minRateDescription: \"Legkisebb szorzó leírása\",\n maxRateDescription: \"Legnagyobb szorzó leírása\",\n inputType: \"Mező típusa\",\n optionsCaption: \"Beállítások felirata\",\n defaultValue: \"Alapértelmezett érték\",\n cellsDefaultRow: \"Cellák alapértelmezett szövege\",\n surveyEditorTitle: \"Kérdőív beállításainak módosítása\",\n qEditorTitle: \"Szerkesztés: {0}\",\n maxLength: \"Maximális hossz\",\n //survey\n showTitle: \"Cím mutatása/elrejtése\",\n locale: \"Alapértelmezett nyelv\",\n mode: \"Mód (szerkesztés/megtekintés)\",\n clearInvisibleValues: \"Nemlátható értékek törlése\",\n cookieName: \"Süti megnevezése (a kérdőív csak egyszer kitölthető)\",\n sendResultOnPageNext: \"Kérdőív értékének küldése a következő lapra lépéskor\",\n storeOthersAsComment: \"Az 'egyéb' mező értékének tárolása külön mezőben\",\n showPageTitles: \"Lapok címének mutatása\",\n showPageNumbers: \"Lapok számának mutatása\",\n pagePrevText: \"'Előző lap' gomb felirata\",\n pageNextText: \"'Következő lap' gomb felirata\",\n completeText: \"'Befejezés' gomb felirata\",\n startSurveyText: \"'Kezdés' gomb felirata\",\n showNavigationButtons: \"Navigációs gombok mutatása (alapértelmezett navigáció)\",\n showPrevButton: \"'Előző lap' gomb mutatása\",\n firstPageIsStarted: \"Az megkezdett lap a kérdőív első oldala.\",\n showCompletedPage: \"Befejező szöveg mutatása a kérdőív befejezésekor\",\n goNextPageAutomatic: \"Minden kérdés megválaszolásakor automatikusan a következő lapra lépés\",\n showProgressBar: \"Előrehaladás-mutató megjelenítése\",\n questionTitleLocation: \"Kérdés címének helye\",\n requiredText: \"Kötelező szimbólum\",\n questionStartIndex: \"Kérdés kezdőindexe (1, 2 vagy 'A', 'a')\",\n showQuestionNumbers: \"Kérdés számának mutatása\",\n questionTitleTemplate: \"Kérdés címének sablonja: '{szám}. {kötelező} {cím}'\",\n questionErrorLocation: \"Kérdés hibaüzenetének helyzete\",\n focusFirstQuestionAutomatic: \"Első kérdés automatikus kijelölése lapváltás esetén\",\n questionsOrder: \"Elemek rendezése a lapon\",\n maxTimeToFinish: \"A kérdőív kitöltésére fordítható maximális idő\",\n maxTimeToFinishPage: \"Egy lap kitöltésére fordítható maximális idő\",\n showTimerPanel: \"Időzító mutatása\",\n showTimerPanelMode: \"Időzító módja\",\n renderMode: \"Megjelenítés módja\",\n allowAddPanel: \"Új panel hozzáadásának engedélyezése\",\n allowRemovePanel: \"Panel eltávolításának engedélyezése\",\n panelAddText: \"'Új panel felvétele' gomb szövege\",\n panelRemoveText: \"'Panel eltávolítása' gomb szövege\",\n isSinglePage: \"Minden elem mutatása egy lapon\",\n html: \"HTML\",\n expression: \"Kifejezés\",\n minValue: \"Minimális érték\",\n maxValue: \"Maximális érték\",\n minLength: \"Minimális hossz\",\n allowDigits: \"Számjegyek engedélyezése\",\n minCount: \"Minimális darabszám\",\n maxCount: \"Maximális darabszám\",\n regex: \"Reguláris kifejezés\",\n tabs: {\n general: \"Általános\",\n fileOptions: \"Beállítások\",\n html: \"HTML szerkesztő\",\n columns: \"Oszlopok\",\n rows: \"Sorok\",\n choices: \"Lehetőségek\",\n items: \"Elemek\",\n visibleIf: \"Látható ha\",\n enableIf: \"Engedélyezve ha\",\n requiredIf: \"Kötelező ha\",\n rateValues: \"Szorzó értékek\",\n choicesByUrl: \"Lehetőségek a webről\",\n matrixChoices: \"Alapértelmezett lehetőségek\",\n multipleTextItems: \"Szövegmezők\",\n validators: \"Validátorok\",\n navigation: \"Navigáció\",\n question: \"Kérdés\",\n completedHtml: \"Befejező szöveg (HTML)\",\n completedHtmlOnCondition: \"Befejző szöveg mutatásának feltétele\",\n loadingHtml: \"Betöltő szöveg (HTML)\",\n timer: \"Időzítő/Kvíz\",\n triggers: \"Eseményvezérlők\",\n templateTitle: \"Sablon címe\"\n },\n editProperty: \"Tulajdonság szerkesztése '{0}'\",\n items: \"[ Elemek: {0} ]\",\n enterNewValue: \"Kérem, adja meg az értéket.\",\n noquestions: \"Nincsenek kérdések a kérdőívben.\",\n createtrigger: \"Kérem hozzon létre egy eseményvezérlőt\",\n triggerOn: \"Be \",\n triggerMakePagesVisible: \"Lapok láthatóvá tétele:\",\n triggerMakeQuestionsVisible: \"Elemek láthatóvá tétele:\",\n triggerCompleteText: \"Kérdőív befejezése, ha sikeres.\",\n triggerNotSet: \"Nincs eseménykezelő beállítva\",\n triggerRunIf: \"Futtatás ha\",\n triggerSetToName: \"A következő értékének cseréje: \",\n triggerFromName: \"A következő értékének másolása: \",\n triggerRunExpression: \"A következő kifejezés futtatása:\",\n triggerSetValue: \"erre: \",\n triggerIsVariable: \"Ne mentse az eredményt a kérdőív eredményébe.\"\n },\n //Property values\n pv: {\n true: \"igaz\",\n false: \"hamis\",\n inherit: \"öröklött\",\n show: \"mutatás\",\n hide: \"elrejtés\",\n default: \"alapértelmezett\",\n initial: \"kezdeti\",\n random: \"véletlen\",\n collapsed: \"csukott\",\n expanded: \"nyitott\",\n none: \"semmi\",\n asc: \"növekvő\",\n desc: \"csökkenő\",\n indeterminate: \"határozatlan\",\n decimal: \"deimális\",\n currency: \"pénz\",\n percent: \"százalék\",\n firstExpanded: \"első nyitva\",\n off: \"ki\",\n onPanel: \"a panelen\",\n onSurvey: \"a kérdőíven\",\n list: \"lista\",\n progressTop: \"felül\",\n progressBottom: \"alul\",\n progressTopBottom: \"alül és felül\",\n horizontal: \"horizontális\",\n vertical: \"vertikális\",\n top: \"fent\",\n bottom: \"lent\",\n topBottom: \"fent és lent\",\n left: \"bal\",\n color: \"szín\",\n date: \"dátum\",\n datetime: \"dátum és idő\",\n \"datetime-local\": \"helyi dátum és idő\",\n email: \"email\",\n month: \"hónap\",\n number: \"szám\",\n password: \"jelszó\",\n range: \"intervallum\",\n tel: \"telefon\",\n text: \"szöveg\",\n time: \"idő\",\n url: \"URL\",\n week: \"hét\",\n hidden: \"rejtett\",\n on: \"be\",\n onPage: \"a lapon\",\n edit: \"szerkesztés\",\n display: \"mutatás\",\n onComplete: \"befejezéskor\",\n onHidden: \"eltűnéskor\",\n all: \"összes\",\n page: \"lap\",\n survey: \"kérdőív\",\n onNextPage: \"a következő lapra lépéskor\",\n onValueChanged: \"az érték változásakor\"\n },\n //Operators\n op: {\n empty: \"üres\",\n notempty: \"nem üres\",\n equal: \"megegyezik\",\n notequal: \"nem egyezik meg\",\n contains: \"tartalmazza\",\n notcontains: \"nem tartalmazza\",\n greater: \"nagyobb mint\",\n less: \"kisebb mint\",\n greaterorequal: \"nagyobb vagy egyenlő\",\n lessorequal: \"kisebb vagy egyenlő\"\n },\n //Embed window\n ew: {\n angular: \"Angular verzió használata\",\n jquery: \"jQuery verzió használata\",\n knockout: \"Knockout verzió használata\",\n react: \"React verzió használata\",\n vue: \"Vue verzió használata\",\n bootstrap: \"Használat Bootstrap frameworkkel\",\n standard: \"Használat Bootstrap framework nélkül\",\n showOnPage: \"Kérdőív mutatása a lapon\",\n showInWindow: \"Kérdőív mutatása egy ablakban\",\n loadFromServer: \"Kérdőív JSON betöltése a szerverről\",\n titleScript: \"Szkriptek és stíluslapok\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n //Test Survey\n ts: {\n selectPage: \"Válassza ki a tesztelni kívánt lapot:\",\n showInvisibleElements: \"Nemlátható elemek megjelnítése\"\n },\n validators: {\n answercountvalidator: \"válaszok száma\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"kifejezés\",\n numericvalidator: \"szám\",\n regexvalidator: \"reguláris kifejezés\",\n textvalidator: \"szöveg\"\n },\n triggers: {\n completetrigger: \"kérdőív befejezése\",\n setvaluetrigger: \"érték beállítása\",\n copyvaluetrigger: \"érték másolása\",\n runexpressiontrigger: \"kifejezés futtatása\",\n visibletrigger: \"láthatóság megváltoztatása (már nincs használatban)\"\n },\n //Properties\n p: {\n name: \"Megnevezés\",\n title: {\n name: \"Cím\",\n title: \"Hagyja üresen, ha megegyezik a 'Megnevezés'-el\"\n },\n navigationButtonsVisibility: \"Navigációs gombok láthatósága\",\n questionsOrder: \"Kérdések rendezése\",\n maxTimeToFinish: \"Kitöltése fordítható maximális idő\",\n visible: \"Látható\",\n visibleIf: \"Látható ha\",\n questionTitleLocation: \"Kérdés címének elhelyezése\",\n description: \"Leírás\",\n state: \"Állapot\",\n isRequired: \"Kötelező\",\n requiredIf: \"Kötelező ha\",\n indent: \"Bekezdés\",\n requiredErrorText: \"Kötelező hibaüzenet\",\n startWithNewLine: \"Új sorban kezdődik\",\n innerIndent: \"Belső bekezdés\",\n page: \"Lap\",\n width: \"Szélesség\",\n commentText: \"Megjegyzés szövege\",\n valueName: \"Érték megnevezése\",\n enableIf: \"Engedélyezve ha\",\n defaultValue: \"Alapértelmezett érték\",\n correctAnswer: \"Helyes érték\",\n readOnly: \"Csak olvasható\",\n validators: \"Validátorok\",\n titleLocation: \"Cím elhelyezése\",\n hasComment: \"Van megjegyzés\",\n showOtherItem: \"Van 'egyéb'\",\n choices: \"Lehetőségek\",\n choicesOrder: \"Lehetőségek rendezése\",\n choicesByUrl: \"Lehetőségek a webről\",\n otherText: \"'Egyéb' szöveg\",\n otherErrorText: \"'Egyéb' hibaüzenet\",\n storeOthersAsComment: \"'Egyéb' tárolása megjegyzésként\",\n label: \"Cimke\",\n showTitle: \"Cím mutatása\",\n valueTrue: \"Érték igaz\",\n valueFalse: \"Érték hamis\",\n cols: \"Oszlopok\",\n rows: \"Sorok\",\n placeholder: \"Helykitöltő\",\n optionsCaption: \"'Beállítások' felirata\",\n expression: \"Kifejezés\",\n format: \"Formátum\",\n displayStyle: \"Megjelenítés stílusa\",\n currency: \"Pénz\",\n useGrouping: \"Csoportosítás\",\n showPreview: \"Előnézet mutatása\",\n allowMultiple: \"Több engedélyezése\",\n imageHeight: \"Kép magassága\",\n imageWidth: \"Kép szélessége\",\n storeDataAsText: \"'Egyéb' tárolása szövegként\",\n maxSize: \"Maximális méret\",\n html: \"HTML\",\n columns: \"Oszlopok\",\n cells: \"Cellák\",\n isAllRowRequired: \"Minden sor kötelező\",\n horizontalScroll: \"Horizontális görgetés\",\n cellType: \"Cellatípus\",\n columnsLayout: \"Oszlopok elrendezése\",\n columnColCount: \"Oszlopok száma\",\n columnMinWidth: \"Oszlop minimális szélessége\",\n rowCount: \"Sorok száma\",\n minRowCount: \"Sorok minimális száma\",\n maxRowCount: \"Sorok maximális száma\",\n keyName: \"Kulcs megnevezése\",\n keyDuplicationError: \"Kulcs duplikációs hibaüzenete\",\n confirmDelete: \"Eltávolítás megerősítése\",\n confirmDeleteText: \"Eltávolíáts megerősítése kérdés\",\n addRowLocation: \"'Új sor felvétele' gomb elhelyezése\",\n addRowText: \"'Új sor felvétele' gomb szövege\",\n removeRowText: \"'Sor eltávolítása' gomb szövege\",\n items: \"Elemek\",\n itemSize: \"Elem mérete\",\n colCount: \"Oszlopok száma\",\n templateTitle: \"Sablon címe\",\n templateDescription: \"Sablon leírása\",\n allowAddPanel: \"Új panel felvételének engedélyezése\",\n allowRemovePanel: \"Panel eltávolításának engedélyezése\",\n panelCount: \"Panelek száma\",\n minPanelCount: \"Panelek minimális száma\",\n maxPanelCount: \"Panelek maximális száma\",\n panelsState: \"Panelek állapota\",\n panelAddText: \"'Új panel felvétele' gomb szövege\",\n panelRemoveText: \"'Panel eltávolítása' gomb szövege\",\n panelPrevText: \"'Előző panel' gomb szövege\",\n panelNextText: \"'Következő panel' szövege\",\n showQuestionNumbers: \"Kérdés számának mutatása\",\n showRangeInProgress: \"Előrehaladás-mutató \",\n renderMode: \"Megjelenítés módja\",\n templateTitleLocation: \"Sablon címének elhelyezése\",\n rateValues: \"Szorzó értékek\",\n rateMin: \"Legkisebb szorzó\",\n rateMax: \"Legnagyobb szorzó\",\n rateStep: \"Szorzó lépésköze\",\n minRateDescription: \"Legkisebb szorzó leírása\",\n maxRateDescription: \"Legnagyobb szorzó leírása\",\n inputType: \"Mező típusa\",\n size: \"Méret\",\n locale: \"Alapértelmezett nyelv\",\n focusFirstQuestionAutomatic: \"Első kérdés automatikus kijelölése lapváltás esetén\",\n completedHtml: \"Befejező szöveg (HTML)\",\n completedBeforeHtml: \"Befejezés előtti szöveg (HTML)\",\n loadingHtml: \"Betöltő szöveg (HTML)\",\n triggers: \"Eseményvezérlők\",\n cookieName: \"Süti megnevezése\",\n sendResultOnPageNext: \"Kérdőív értékének küldése a következő lapra lépéskor\",\n showNavigationButtons: \"Navigációs gombok mutatása (alapértelmezett navigáció)\",\n showPrevButton: \"'Előző lap' gomb mutatása\",\n showPageTitles: \"Lapok címének mutatása\",\n showCompletedPage: \"Befejező szöveg mutatása a kérdőív befejezésekor\",\n showPageNumbers: \"Lapok számának mutatása\",\n questionErrorLocation: \"Kérdés hibaüzenetének helyzete\",\n showProgressBar: \"Előrehaladás-mutató megjelenítése\",\n mode: \"Mód (szerkesztés/megtekintés)\",\n goNextPageAutomatic: \"Minden kérdés megválaszolásakor automatikusan a következő lapra lépés\",\n checkErrorsMode: \"Hibavizsgálat\",\n clearInvisibleValues: \"Nemlátható értékek törlése\",\n startSurveyText: \"'Kezdés' gomb felirata\",\n pagePrevText: \"'Előző lap' gomb felirata\",\n pageNextText: \"'Következő lap' gomb felirata\",\n completeText: \"'Befejezés' gomb felirata\",\n requiredText: \"Kötelező szimbólum\",\n questionStartIndex: \"Kérdés kezdőindexe (1, 2 vagy 'A', 'a')\",\n questionTitleTemplate: \"Kérdés címének sablonja: '{szám}. {kötelező} {cím}'\",\n firstPageIsStarted: \"Az megkezdett lap a kérdőív első oldala.\",\n isSinglePage: \"Minden elem mutatása egy lapon\",\n maxTimeToFinishPage: \"Egy lap kitöltésére fordítható maximális idő\",\n showTimerPanel: \"Időzítő mutatása\",\n showTimerPanelMode: \"Időzítő módja\",\n defaultPanelValue: \"Panel alapértelmezett értéke\",\n defaultRowValue: \"Sor alapértelmezett értéke\",\n showNoneItem: \"Lehet üres\",\n noneText: \"Üres szöveg\",\n text: \"Szöveg\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"hu\"] = huStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/indonesian.ts\":\n/*!****************************************!*\\\n !*** ./src/localization/indonesian.ts ***!\n \\****************************************/\n/*! exports provided: indonesianStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"indonesianStrings\", function() { return indonesianStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar indonesianStrings = {\n //survey templates\n survey: {\n edit: \"Ubah\",\n externalHelpLink: \"Tonton dan pelajari cara membuat survei\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Silahkan letakkan pertanyaan di sini dari Kotak Perkakas di sebelah kiri.\",\n copy: \"Salin\",\n addToToolbox: \"Tambahkan ke Kotak Perkakas\",\n deletePanel: \"Hapus Panel\",\n deleteQuestion: \"Hapus Pertanyaan\",\n convertTo: \"Mengubah ke\",\n drag: \"Tarik elemen\"\n },\n //questionTypes\n qt: {\n default: \"Default\",\n checkbox: \"Kotak Centang\",\n comment: \"Komentar\",\n imagepicker: \"Gambar\",\n dropdown: \"Kotak Kombo\",\n file: \"Berkas\",\n html: \"Html\",\n matrix: \"Matriks (pilihan tunggal)\",\n matrixdropdown: \"Matriks (pilihan ganda)\",\n matrixdynamic: \"Matriks (baris dinamis)\",\n multipletext: \"Teks Ganda\",\n panel: \"Panel\",\n paneldynamic: \"Panel (panel dinamis)\",\n radiogroup: \"Pilihan Ganda\",\n rating: \"Peringkat\",\n text: \"Input Tunggal\",\n boolean: \"Boolean\",\n expression: \"Ekspresi (dibaca saja)\",\n flowpanel: \"Panel Aliran\"\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Default ({0})\",\n survey: \"Survei\",\n settings: \"Pengaturan Survei\",\n opjectPropertiesHeader: \"Lanjutan\",\n showObjectProperties: \"Tampilkan Properti Obyek\",\n hideObjectProperties: \"Sembunyikan Properti Obyek\",\n editSurvey: \"Ubah Survei\",\n addNewPage: \"Tambah Halaman Baru\",\n moveRight: \"Geser ke Kanan\",\n moveLeft: \"Geser ke Kiri\",\n deletePage: \"Hapus Halaman\",\n editPage: \"Ubah Halaman\",\n edit: \"Ubah\",\n newPageName: \"halaman\",\n newQuestionName: \"pertanyaan\",\n newPanelName: \"panel\",\n testSurvey: \"Coba Survei\",\n testSurveyAgain: \"Coba Survei Lagi\",\n testSurveyWidth: \"Lebar survei: \",\n embedSurvey: \"Embed Survei\",\n translation: \"Terjemahan\",\n saveSurvey: \"Simpan Survei\",\n designer: \"Rancangan Survei\",\n jsonEditor: \"Pengubah JSON\",\n undo: \"Urungkan\",\n redo: \"Ulangi\",\n options: \"Pilihan\",\n generateValidJSON: \"Hasilkan JSON yang Valid\",\n generateReadableJSON: \"Hasilkan JSON yang dapat dibaca\",\n toolbox: \"Kotak Perkakas\",\n toolboxGeneralCategory: \"Umum\",\n delSelObject: \"Hapus objek yang dipilih\",\n editSelObject: \"Ubah objek yang dipilih\",\n correctJSON: \"Please correct JSON.\",\n surveyResults: \"Hasil survei: \",\n surveyResultsTable: \"Sebagai tabel\",\n surveyResultsJson: \"Sebagai JSON\",\n resultsTitle: \"Judul Pertanyaan\",\n resultsName: \"Nama Pertanyaan\",\n resultsValue: \"Nilai Jawaban\",\n resultsDisplayValue: \"Tampilkan Nilai\",\n modified: \"Dimodifikasi\",\n saving: \"Menyimpan\",\n saved: \"Tersimpan\",\n saveError: \"Error! Konten editor tidak berhasil disimpan.\",\n translationAddLanguage: \"Pilih bahasa untuk terjemahan\",\n translationShowAllStrings: \"Tampilkan seluruh string\",\n translationShowAllPages: \"Tampilkan seluruh halaman\",\n translationNoStrings: \"Tidak ada string diterjemahkan. Silahkan ganti penyaring.\",\n translationExportToSCVButton: \"Eksport ke CSV\",\n translationImportFromSCVButton: \"Import dari CSV\",\n translationMergeLocaleWithDefault: \"Gabungkan {0} dengan default locale\",\n bold: \"Tebal\",\n italic: \"Miring\",\n underline: \"Garis Bawah\",\n fpAddQuestion: \"Tambah pertanyaan...\",\n completedHtmlOnConditionItemText: \"Tampilkan jika:\"\n },\n //Property names in table headers\n pel: {\n isRequired: \"Wajib?\"\n },\n //Property Editors\n pe: {\n apply: \"Terapkan\",\n ok: \"OK\",\n cancel: \"Batal\",\n reset: \"Reset\",\n close: \"Tutup\",\n delete: \"Hapus\",\n addNew: \"Tambahkan Baru\",\n addItem: \"Klik untuk menambahkan sebuah item...\",\n removeAll: \"Hapus Semua\",\n edit: \"Ubah\",\n itemValueEdit: \"Ditampilkan Jika\",\n editChoices: \"Ubah Pilihan\",\n move: \"Pindah\",\n empty: \"\",\n notEmpty: \"\",\n fastEntry: \"Entri Cepat\",\n formEntry: \"Entri Form\",\n testService: \"Coba layanan\",\n conditionSelectQuestion: \"Pilih pertanyaan...\",\n conditionValueQuestionTitle: \"Silahkan masukkan/pilih nilai\",\n conditionButtonAdd: \"Tambah\",\n conditionButtonReplace: \"Ganti\",\n conditionHelp: \"Silahkan masukkan ekspresi boolean. Harus mengembalikan 'benar' agar pertanyaan dapat terlihat. Contoh: {question1} = 'nilai1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"Silahkan masukan sebuah ekspresi. Anda dapat menggunakan kurung kurawal untuk mendapatkan akses pada nilai pertanyaan: '{question1} + {question2}', '({price}*{quantity}) * (100 - {discount})'\",\n aceEditorHelp: \"Tekan ctrl+spasi untuk mendapatkan petunjuk penyelesaian ekspresi\",\n aceEditorRowTitle: \"Baris saat ini\",\n aceEditorPanelTitle: \"Panel saat ini\",\n showMore: \"Untuk detil selanjutnya silahkan periksa dokumentasi\",\n conditionShowMoreUrl: \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Pertanyaan tersedia:\",\n cellsEmptyRowsColumns: \"Harus ada setidaknya satu kolom atau baris\",\n propertyIsEmpty: \"Silahkan masukkan nilai\",\n value: \"Nilai\",\n text: \"Teks\",\n rowid: \"ID baris\",\n imageLink: \"Link Gambar\",\n columnEdit: \"Ubah kolom: {0}\",\n itemEdit: \"Ubah item: {0}\",\n url: \"URL\",\n path: \"Path\",\n valueName: \"Nama nilai\",\n titleName: \"Nama judul\",\n showOtherItem: \"Memiliki item lain\",\n otherText: \"Teks item lain\",\n name: \"Nama\",\n title: \"Judul\",\n cellType: \"Jenis sel\",\n colCount: \"Jumlah kolom\",\n choicesOrder: \"Tentukan urutan pilihan\",\n visible: \"Terlihat?\",\n isRequired: \"Wajib?\",\n startWithNewLine: \"Mulai dengan baris baru?\",\n rows: \"Jumlah baris\",\n placeholder: \"Masukkan placeholder\",\n showPreview: \"Tunjukkan tinjauan gambar?\",\n storeDataAsText: \"Simpan konten berkas dalam hasil JSON sebagai teks\",\n maxSize: \"Ukuran maksimum berkas dalam byte\",\n imageHeight: \"Tinggi gambar\",\n imageWidth: \"Lebar gambar\",\n rowCount: \"Jumlah baris\",\n columnLayout: \"Tata letak kolom\",\n addRowLocation: \"Tambah lokasi tombol baris\",\n addRowText: \"Teks tambah tombol baris\",\n removeRowText: \"Teks hapus tombol baris\",\n minRateDescription: \"Deskripsi nilai minimum\",\n maxRateDescription: \"Deskripsi nilai maksimum\",\n inputType: \"Jenis masukan\",\n optionsCaption: \"Keterangan pilihan\",\n defaultValue: \"Nilai standar\",\n cellsDefaultRow: \"Teks sel standar\",\n surveyEditorTitle: \"Ubah pengaturan survei\",\n qEditorTitle: \"Ubah: {0}\",\n maxLength: \"Panjang maksimum\",\n //survey\n showTitle: \"Tampilkan/sembunyikan judul\",\n locale: \"Bahasa standar\",\n mode: \"Mode (ubah/baca saja)\",\n clearInvisibleValues: \"Bersihkan nilai tak terlihat\",\n cookieName: \"Nama cookie (untuk menonaktifkan menjalankan survei dua kali secara lokal)\",\n sendResultOnPageNext: \"Kirim hasil survei pada halaman selanjutnya\",\n storeOthersAsComment: \"Simpan nilai 'lainnya' pada bidang lainnya\",\n showPageTitles: \"Tampilkan judul halaman\",\n showPageNumbers: \"Tampilkan nomor halaman\",\n pagePrevText: \"Teks halaman tombol sebelumnya\",\n pageNextText: \"Teks halaman tombol selanjutnya\",\n completeText: \"Teks tombol selesai\",\n startSurveyText: \"Teks tombol mulai\",\n showNavigationButtons: \"Tampilkan tombol navigasi (navigasi standar)\",\n showPrevButton: \"Tampilkan tombol sebelumnya (pengguna mungkin kembali ke halaman sebelumnya)\",\n firstPageIsStarted: \"Halaman pertama pada survei adalah halaman yang telah dimulai.\",\n showCompletedPage: \"Tampilkan keseluruhan halaman di akhir (completedHtml)\",\n goNextPageAutomatic: \"Setelah menjawa seluruh pertanyaan, pergi ke halaman berikutnya secara otomatis\",\n showProgressBar: \"Tampilkan progress bar\",\n questionTitleLocation: \"Lokasi judul pertanyaan\",\n requiredText: \"Simbil pertanyaan wajib\",\n questionStartIndex: \"Indeks mulai pertanyaan (1, 2 atau 'A', 'a')\",\n showQuestionNumbers: \"Tampilkan nomor pertanyaan\",\n questionTitleTemplate: \"Template Judul Pertanyaan, default adalah: '{no}. {require} {title}'\",\n questionErrorLocation: \"Lokasi Pertanyaan Error\",\n focusFirstQuestionAutomatic: \"Fokus ke pertanyaan pertama saat pergantian halaman\",\n questionsOrder: \"Urutakan elemen pada halaan\",\n maxTimeToFinish: \"Waktu maksimum untuk menyelesaikan survei\",\n maxTimeToFinishPage: \"Waktu maksimum untuk menyelesaikan suatu halaman\",\n showTimerPanel: \"Tampilkan panel pengatur waktu\",\n showTimerPanelMode: \"Tampilkan mode panel pengatur waktu\",\n renderMode: \"Mode render\",\n allowAddPanel: \"Bolehkan penambahan panel\",\n allowRemovePanel: \"Bolehkan penghapusan panel\",\n panelAddText: \"Teks tambah panel\",\n panelRemoveText: \"Teks hapus panel\",\n isSinglePage: \"Tampilkan seluruh elemen pada halaman\",\n html: \"Html\",\n expression: \"Ekspresi\",\n minValue: \"Nilai minimum\",\n maxValue: \"Nilai maksimum\",\n minLength: \"Panjang minimum\",\n allowDigits: \"Bolehkan angka\",\n minCount: \"Hitungan minimum\",\n maxCount: \"Hitungan maksimum\",\n regex: \"Ekspresi reguler\",\n totalText: \"Total teks\",\n totalType: \"Total jenis\",\n totalExpression: \"Total ekspresi\",\n totalDisplayStyle: \"Total gaya tampilan\",\n totalCurrency: \"Total mata uang\",\n totalFormat: \"Total format\",\n tabs: {\n general: \"Umum\",\n fileOptions: \"Pilihan berkas\",\n html: \"Editor Html\",\n columns: \"Kolom\",\n rows: \"Baris\",\n choices: \"Pilihan\",\n items: \"Barang\",\n visibleIf: \"Terlihat Jika\",\n enableIf: \"Memungkinkan Jika\",\n requiredIf: \"Wajib Jika\",\n rateValues: \"Nilai Tingkat\",\n choicesByUrl: \"Pilih dari Web\",\n matrixChoices: \"Pilihan Standar\",\n multipleTextItems: \"Masukan Teks\",\n validators: \"Validator\",\n navigation: \"Navigasi\",\n question: \"Pertanyaan\",\n completedHtml: \"Html Selesai\",\n loadingHtml: \"Memuat Html\",\n timer: \"Pengatur Waktu/Kuis\",\n triggers: \"Trigger\",\n templateTitle: \"Judul templat\",\n totals: \"Total\"\n },\n editProperty: \"Ubah properti '{0}'\",\n items: \"[ Barang: {0} ]\",\n enterNewValue: \"Silahkan masukkan nilai\",\n noquestions: \"Tidak ada pertanyaan dalam survei.\",\n createtrigger: \"Silahkan buat sebuah trigger\",\n triggerOn: \"On \",\n triggerMakePagesVisible: \"Buat halaman terlihat:\",\n triggerMakeQuestionsVisible: \"Buat elemen terlihat:\",\n triggerCompleteText: \"Selesaikan survei jika sukses.\",\n triggerNotSet: \"Trigger belum diatur\",\n triggerRunIf: \"Berjalan jika\",\n triggerSetToName: \"Ubah nilai dari: \",\n triggerFromName: \"Salin nilai dari: \",\n triggerRunExpression: \"Jalankan ekspresi ini:\",\n triggerSetValue: \"ke: \",\n triggerIsVariable: \"Jangan meletakkan variabel ke hasil survey.\"\n },\n //Property values\n pv: {\n true: \"benar\",\n false: \"salah\",\n inherit: \"inherit\",\n show: \"tampilkan\",\n hide: \"sembunyikan\",\n default: \"standar\",\n initial: \"inisial\",\n random: \"acak\",\n collapsed: \"dilipat\",\n expanded: \"direntangkan\",\n none: \"tidak ada\",\n asc: \"naik\",\n desc: \"turun\",\n indeterminate: \"tidak tentu\",\n decimal: \"desimal\",\n currency: \"mata uang\",\n percent: \"persen\",\n firstExpanded: \"perluasanPertama\",\n off: \"mati\",\n onPanel: \"pada Panel\",\n onSurvey: \"pada Survei\",\n list: \"daftar\",\n progressTop: \"progress atas\",\n progressBottom: \"progress bawah\",\n progressTopBottom: \"progress atas bawah\",\n horizontal: \"horizontal\",\n vertical: \"vertikal\",\n top: \"atas\",\n bottom: \"bawah\",\n topBottom: \"atas dan bawah\",\n left: \"kiri\",\n color: \"warna\",\n date: \"tanggal\",\n datetime: \"tanggal&waktu\",\n \"datetime-local\": \"tanggal&waktu-lokal\",\n email: \"surel\",\n month: \"bulan\",\n number: \"nomor\",\n password: \"kata sandi\",\n range: \"rentang\",\n tel: \"telepon\",\n text: \"teks\",\n time: \"waktu\",\n url: \"url\",\n week: \"minggu\",\n hidden: \"tersembunyi\",\n on: \"nyala\",\n onPage: \"pada halaman\",\n edit: \"ubah\",\n display: \"tampilan\",\n onComplete: \"saat selesai\",\n onHidden: \"saat tersembunyi\",\n all: \"semua\",\n page: \"halaman\",\n survey: \"survei\",\n onNextPage: \"pada halaman selanjutnya\",\n onValueChanged: \"saat nilai berubah\"\n },\n //Operators\n op: {\n empty: \"kosong\",\n notempty: \"tidak kosong\",\n equal: \"sama dengan\",\n notequal: \"tidak sama dengan\",\n contains: \"mengandung\",\n notcontains: \"tidak mengandung\",\n greater: \"lebih besar\",\n less: \"lebih kecil\",\n greaterorequal: \"lebih besar atau sama dengan\",\n lessorequal: \"lebih kecil atau sama dengan\"\n },\n //Embed window\n ew: {\n angular: \"Gunakan versi Angular\",\n jquery: \"Gunakan versi JQuery\",\n knockout: \"Gunakan versi Knockout\",\n react: \"Gunakan versi React\",\n vue: \"Gunakan versi Vue\",\n bootstrap: \"Untuk framework bootstrap\",\n standard: \"Tidak ada bootstrap\",\n showOnPage: \"Tampilkan survei pada sebuah halaman\",\n showInWindow: \"Tampilkan survei pada sebuah jendela\",\n loadFromServer: \"Muat survei JSON dari server\",\n titleScript: \"Skrip dan gaya\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n //Test Survey\n ts: {\n selectPage: \"Pilih halaman untuk dicoba:\",\n showInvisibleElements: \"Tampilkan elemen tak terlihat\",\n emptySurveyText: \"Tidak ada halaman atau pertanyaan yang tersedia di survei ini.\"\n },\n validators: {\n answercountvalidator: \"jumlah jawaban\",\n emailvalidator: \"surel\",\n expressionvalidator: \"ekspresi\",\n numericvalidator: \"numerik\",\n regexvalidator: \"ekspresi reguler\",\n textvalidator: \"teks\"\n },\n triggers: {\n completetrigger: \"selesaikan survei\",\n setvaluetrigger: \"atur nilai\",\n copyvaluetrigger: \"salin nilai\",\n runexpressiontrigger: \"jalankan ekspresi\",\n visibletrigger: \"ubah visibilitas\"\n },\n //Properties\n p: {\n name: \"nama\",\n title: {\n name: \"judul\",\n title: \"Biarkan kosong, jika sama dengan 'Nama'\"\n },\n navigationButtonsVisibility: \"visibilitas tombol navigasi\",\n questionsOrder: \"urutan pertanyaan\",\n maxTimeToFinish: \"waktu maks untuk menyelesaikan\",\n visible: \"terlihat\",\n visibleIf: \"terlihat jika\",\n questionTitleLocation: \"lokasi judul pertanyaan\",\n description: \"deskripsi\",\n state: \"keadaan\",\n isRequired: \"wajib\",\n requiredIf: \"wajib jika\",\n indent: \"indentansi\",\n requiredErrorText: \"teks error wajib\",\n startWithNewLine: \"mulai dengan baris baru\",\n innerIndent: \"inden dalam\",\n page: \"halaman\",\n width: \"lebar\",\n commentText: \"teks komentar\",\n valueName: \"nama nilai\",\n enableIf: \"aktif jika\",\n defaultValue: \"nilai default\",\n correctAnswer: \"jawaban benar\",\n readOnly: \"baca saja\",\n validators: \"validator\",\n titleLocation: \"lokasi judul\",\n hasComment: \"memiliki komentar\",\n showOtherItem: \"memiliki lainnya\",\n choices: \"pilihan\",\n choicesOrder: \"urutkan pilihan\",\n choicesByUrl: \"pilihan dari URL\",\n otherText: \"teks lainnya\",\n otherErrorText: \"teks error lainnya\",\n storeOthersAsComment: \"simpan lainnnya sebagai komentar\",\n label: \"label\",\n showTitle: \"tampilkan judul\",\n valueTrue: \"nilai benar\",\n valueFalse: \"nilai salah\",\n cols: \"kolom\",\n rows: \"baris\",\n optionsCaption: \"keterangan pilihan\",\n expression: \"ekspresi\",\n format: \"format\",\n displayStyle: \"gaya tampilan\",\n currency: \"mata uang\",\n useGrouping: \"gunakan kelompok\",\n showPreview: \"tampilkan pratinjau\",\n allowMultiple: \"bolehkan ganda\",\n imageHeight: \"tinggi gambar\",\n imageWidth: \"lebar gambar\",\n storeDataAsText: \"simpan data sebagai teks\",\n maxSize: \"ukuran maks\",\n html: \"html\",\n columns: \"kolom\",\n cells: \"sel\",\n isAllRowRequired: \"semuaBarisWajib\",\n horizontalScroll: \"horizontalScroll\",\n cellType: \"jenisSel\",\n columnsLayout: \"tataLetakKolom\",\n columnColCount: \"jumlahKolom\",\n columnMinWidth: \"lebarMinimalKolom\",\n rowCount: \"jumlahBaris\",\n minRowCount: \"jumlahBarisMin\",\n maxRowCount: \"jumlahBarisMaks\",\n keyName: \"namaKunci\",\n keyDuplicationError: \"kesalahanDuplikasiKunci \",\n confirmDelete: \"konfirmasiHapus\",\n confirmDeleteText: \"teksKonfirmasiHapus\",\n addRowLocation: \"tambahLokasiBaris\",\n addRowText: \"teksTambahBaris\",\n removeRowText: \"teksHapusBaris\",\n items: \"items\",\n itemSize: \"ukuranBarang\",\n colCount: \"jumlahKolom\",\n templateTitle: \"judulTemplat\",\n templateDescription: \"deskripsiTemplat\",\n allowAddPanel: \"bolehkanTambahPanel\",\n allowRemovePanel: \"bolehkanHapusPanel\",\n panelCount: \"jumlahPanel\",\n minPanelCount: \"jumlahMinimumPanel\",\n maxPanelCount: \"jumlahMaksimumPanel\",\n panelsState: \"keadaanPanel\",\n panelAddText: \"teksTambahPanel\",\n panelRemoveText: \"teksHapusPanel\",\n panelPrevText: \"teksPanelSebelumnya\",\n panelNextText: \"teksPanelSelanjutnya\",\n showQuestionNumbers: \"tampilkanNomorPertanyaan\",\n showRangeInProgress: \"tampilkanRentangBerlangsung\",\n renderMode: \"modeRender\",\n templateTitleLocation: \"lokasiJudulTemplat\",\n rateValues: \"nilaiTingkat\",\n rateMin: \"tingkatMinimum\",\n rateMax: \"tingkatMaksimum\",\n rateStep: \"langkahTingkat\",\n minRateDescription: \"deskripsiTingkatMinimum\",\n maxRateDescription: \"deskripsiTingkatMaksimum\",\n inputType: \"jenisMasukan\",\n size: \"ukuran\",\n locale: \"Lokal\",\n focusFirstQuestionAutomatic: \"focusFirstQuestionAutomatic\",\n completedHtml: \"HtmlSelesai\",\n completedBeforeHtml: \"completedBeforeHtml\",\n loadingHtml: \"loadingHtml\",\n triggers: \"Trigger\",\n cookieName: \"namaCookie\",\n sendResultOnPageNext: \"Kirim hasil ke halaman selanjutnya\",\n showNavigationButtons: \"Tampilkan Tombol Navigasi\",\n showPrevButton: \"Tampilkan Tombol Sebelumnya\",\n showPageTitles: \"Tampilkan Judul Halaman\",\n showCompletedPage: \"Tampilkan Keseluruhan Halaman\",\n showPageNumbers: \"Tampilkan Nomor Halaman\",\n questionErrorLocation: \"Lokasi Pertanyaan Error\",\n showProgressBar: \"Tampilkan progress bar\",\n mode: \"mode\",\n goNextPageAutomatic: \"Ke Halaman Selanjutnya Otomatis\",\n checkErrorsMode: \"Mode Periksa Error\",\n clearInvisibleValues: \"Bersihkan Nilai Tak Terlihat\",\n startSurveyText: \"teksMulaiSurvei\",\n pagePrevText: \"teksHalamanSebelumnya\",\n pageNextText: \"teksHalamanSelanjutnya\",\n completeText: \"teksSelesai\",\n requiredText: \"teksWajib\",\n questionStartIndex: \"Index Mulai Pertanyaan\",\n questionTitleTemplate: \"Template Judul Pertanyaan\",\n firstPageIsStarted: \"Halaman Pertama Dimulai\",\n isSinglePage: \"Halaman Tunggal?\",\n maxTimeToFinishPage: \"Waktu Maks untuk Menyelesaikan Halaman\",\n showTimerPanel: \"Tampilkan Panel Pengatur Waktu\",\n showTimerPanelMode: \"Tampilkan showTimerPanelMode\",\n defaultPanelValue: \"nilai panel default\",\n defaultRowValue: \"nilai baris default\",\n showNoneItem: \"Memiliki None\",\n noneText: \"Non-teks\",\n text: \"teks\",\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"id\"] = indonesianStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/italian.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/italian.ts ***!\n \\*************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar italianTranslation = {\n // strings for survey templates\n survey: {\n edit: \"Modifica\",\n dropQuestion: \"Aggiungi una domanda qui\",\n copy: \"Copia\",\n addToToolbox: \"Aggiungi alla toolbox\",\n deletePanel: \"Elimina pannello\",\n deleteQuestion: \"Elimina domanda\",\n convertTo: \"Converti a\"\n },\n // strings for question types\n qt: {\n checkbox: \"Casella di controllo \",\n comment: \"Commento\",\n dropdown: \"Combo\",\n file: \"Archivio\",\n html: \"Html\",\n matrix: \"Matrice (unica opzione)\",\n matrixdropdown: \"Matrice (opzioni multiple)\",\n matrixdynamic: \"Matrice (dinamica)\",\n multipletext: \"Testo multiplo\",\n panel: \"Pannello\",\n paneldynamic: \"Pannello (dinamico)\",\n radiogroup: \"Opzione multipla\",\n rating: \"Valutazione\",\n text: \"Testo semplice\",\n expression: \"Espressione\"\n },\n // strings for editor\n ed: {\n defaultLocale: \"Default ({0})\",\n survey: \"Questionario\",\n settings: \"Impostazioni Questionario\",\n editSurvey: \"Modifica Questionario\",\n addNewPage: \"Aggiungi Nuova Pagina\",\n deletePage: \"Elimina Pagina\",\n editPage: \"Modifica Pagina\",\n newPageName: \"pagina\",\n newQuestionName: \"domanda\",\n newPanelName: \"pannello\",\n testSurvey: \"Testa questionario\",\n testSurveyAgain: \"Testa questionario di nuovo\",\n testSurveyWidth: \"Larghezza questionario:\",\n embedSurvey: \"Includi questionario\",\n saveSurvey: \"Salva questionario\",\n designer: \"Disegna\",\n jsonEditor: \"Modifica JSON\",\n undo: \"Annulla\",\n redo: \"Ripeti\",\n options: \"Opzioni\",\n generateValidJSON: \"Genera JSON valido\",\n generateReadableJSON: \"Genera JSON leggibile\",\n toolbox: \"Strumenti\",\n delSelObject: \"Elimina oggetto selezionato\",\n editSelObject: \"Modifica oggetto selezionato\",\n correctJSON: \"Per favore, correggi il tuo JSON\",\n surveyResults: \"Risultati del questionario: \",\n modified: \"Modificato\",\n saving: \"Salvataggio\",\n saved: \"Salvato\"\n },\n //Property names in table headers\n pel: {\n isRequired: \"Richiesto\"\n },\n // strings for property editors\n pe: {\n apply: \"Applica\",\n ok: \"Accetta\",\n cancel: \"Annulla\",\n reset: \"Reimposta\",\n close: \"Chiudi\",\n delete: \"Elimina\",\n addNew: \"Nuovo\",\n removeAll: \"Elimina tutto\",\n edit: \"Modifica\",\n empty: \"\",\n notEmpty: \"\",\n fastEntry: \"Inserimento rapido\",\n formEntry: \"Inserimento con dati \",\n testService: \"Test del servizio\",\n conditionSelectQuestion: \"Seleziona domanda...\",\n conditionButtonAdd: \"Aggiungi\",\n conditionButtonReplace: \"Sostituisci\",\n conditionHelp: \"Per favore, inserire una espressione booleana. Dovrebbe restituire true per mantenere la domanda/pagina visibile. Ad esempio: {domanda1} = 'valore1' or ({domanda2} * {domanda4} > 20 and {domanda3} < 5)\",\n expressionHelp: \"Per favore inserire una espressione. Puoi usare parentesi graffe per ottenere l'accesso ai valori delle domande: '{domanda1} + {domanda2}', '({prezzo}*{qta}) * (100 - {sconto})'\",\n aceEditorHelp: \"Premi ctrl+space per ottenere un suggerimento sul completamento dell'espressione\",\n aceEditorRowTitle: \"Riga corrente\",\n aceEditorPanelTitle: \"Pannello Corrente\",\n showMore: \"Per favore, per maggiori dettagli guardare la documentazione\",\n assistantTitle: \"Domande disponibili:\",\n cellsEmptyRowsColumns: \"Dovrebbe esserci almeno una colonna o riga\",\n propertyIsEmpty: \"Per favore, inserire un valore per la propietà\",\n value: \"Valore\",\n text: \"Testo\",\n columnEdit: \"Modifica colonna: {0}\",\n itemEdit: \"Modifica elemento: {0}\",\n url: \"URL\",\n path: \"Percorso\",\n valueName: \"Nome Valore\",\n titleName: \"Nome Titolo\",\n showOtherItem: \"Altri elementi\",\n otherText: \"Testo altri elementi\",\n name: \"Nome\",\n title: \"Titolo\",\n cellType: \"Tipo di cella\",\n colCount: \"Numero di colonne\",\n choicesOrder: \"Seleziona altre opzioni\",\n visible: \"Visibile\",\n isRequired: \"Richiesto\",\n startWithNewLine: \"Nuova linea\",\n rows: \"Numero di righe\",\n placeholder: \"Testo di riferimento\",\n showPreview: \"Mostra anteprima\",\n storeDataAsText: \"Vedi il contenuto JSON come testo\",\n maxSize: \"Dimensione massima in bytes\",\n imageHeight: \"Altezza immagine\",\n imageWidth: \"Larghezza immagine\",\n rowCount: \"Numero delle righe\",\n addRowText: \"Testo del pulsante per aggiungere una nuova righa\",\n removeRowText: \"Testo del pulsante per eliminare una righa\",\n minRateDescription: \"Descrizione del valore minimo\",\n maxRateDescription: \"Descrizione del valore massimo\",\n inputType: \"Tipo di inserimento\",\n optionsCaption: \"Titolo dell'opzione\",\n defaultValue: \"Valore default\",\n cellsDefaultRow: \"Valore default celle\",\n surveyEditorTitle: \"Edit survey settings\",\n qEditorTitle: \"Modifica domanda: {0}\",\n //survey\n showTitle: \"Mostra/nascondi titolo\",\n locale: \"Lingua Default\",\n mode: \"Modalità (modifica/sola lettura)\",\n clearInvisibleValues: \"Pulischi valori non visibili\",\n cookieName: \"Nome cookie (per disabilitare esegui il questionario due volte in locale)\",\n sendResultOnPageNext: \"Invia i risultati del sondaggio alla pagina successiva\",\n storeOthersAsComment: \"Memorizza il valore 'altri' in campi separati\",\n showPageTitles: \"Visualizza titoli pagina\",\n showPageNumbers: \"Visualizza numeri pagina\",\n pagePrevText: \"Testo bottone pagina precedente\",\n pageNextText: \"Testo bottone pagina successiva\",\n completeText: \"Testo bottone Completato\",\n startSurveyText: \"Testo bottone Inizia\",\n showNavigationButtons: \"Visualizza bottoni di navigazione (navigazione di default)\",\n showPrevButton: \"Visualizza bottone precedente(l'utente può tornare alla pagina precedente)\",\n firstPageIsStarted: \"La prima pagina nel questionario è la pagina iniziale.\",\n showCompletedPage: \"Visualizza la pagina completata alla fine del questionario (completedHtml)\",\n goNextPageAutomatic: \"Rispondendo a tutte le domande, vai alla pagina successiva in automatico.\",\n showProgressBar: \"Visualizza barra di avanzamento\",\n questionTitleLocation: \"Posizione titolo domanda\",\n requiredText: \"Simbolo domanda obbligatoria, esempio (*)\",\n questionStartIndex: \"La domanda inizia con l'indice (1, 2 oppure 'A', 'a')\",\n showQuestionNumbers: \"Visualizza i numeri di domanda\",\n questionTitleTemplate: \"Template titolo della domanda, il default è: '{no}. {require} {title}'\",\n questionErrorLocation: \"Posizione notifica errore sulla domanda\",\n focusFirstQuestionAutomatic: \"Sul cambio pagina, posiziona il cursore sulla prima domanda\",\n questionsOrder: \"Ordine di elementi sulla pagina\",\n maxTimeToFinish: \"Tempo massimo per terminare il sondaggio\",\n maxTimeToFinishPage: \"Tempo massimo per terminare una pagina del sondaggio\",\n showTimerPanel: \"Visualizza pannello timer\",\n showTimerPanelMode: \"Visualizza modalità timer pannello\",\n renderMode: \"Modalità di rendering\",\n allowAddPanel: \"Consenti l'aggiunta di un pannello\",\n allowRemovePanel: \"Consenti la rimozione di un pannello\",\n panelAddText: \"Aggiungi testo pannello\",\n panelRemoveText: \"Remuovi testo pannello\",\n isSinglePage: \"Visualizza tutti gli elementi su una pagina\",\n tabs: {\n general: \"Generale\",\n fileOptions: \"Opzioni\",\n html: \"Modifica Html\",\n columns: \"Colonne\",\n rows: \"Righe\",\n choices: \"Scelte\",\n visibleIf: \"Visibile se\",\n rateValues: \"Valori della classifica\",\n choicesByUrl: \"Opzioni dal Web\",\n matrixChoices: \"Opzioni predefinite\",\n multipleTextItems: \"Voci di testo\",\n validators: \"Validazioni\",\n navigation: \"Navigazione\",\n question: \"Domanda\",\n completedHtml: \"Html questionario completato\",\n loadingHtml: \"Html caricamento questionario\",\n timer: \"Timer/Quiz\",\n triggers: \"Triggers\",\n templateTitle: \"Template titolo\"\n },\n editProperty: \"Modifca propietà '{0}'\",\n items: \"[ Elemento: {0} ]\",\n enterNewValue: \"Si prega di inserire il valore.\",\n noquestions: \"Non c'è alcun dubbio nel questionario.\",\n createtrigger: \"Si prega di creare un trigger\",\n triggerOn: \"Attivazione \",\n triggerMakePagesVisible: \"Rendere visibili le pagine:\",\n triggerMakeQuestionsVisible: \"Rendere visibili le domande:\",\n triggerCompleteText: \"Completare il questionario, in caso di successo.\",\n triggerNotSet: \"Non impostato\",\n triggerRunIf: \"Esegui se\",\n triggerSetToName: \"Cambia il valore a: \",\n triggerSetValue: \"a: \",\n triggerIsVariable: \"Non posizionare la variabile del risultato del questionario\"\n },\n // strings for operators\n op: {\n empty: \"è vuoto\",\n notempty: \"non è vuoto \",\n equal: \"è uguale a\",\n notequal: \"non è uguale a\",\n contains: \"contiene\",\n notcontains: \"non contiene\",\n greater: \"maggiore\",\n less: \"minore\",\n greaterorequal: \"maggiore o uguale\",\n lessorequal: \"minore o uguale\"\n },\n // strings for embed window\n ew: {\n angular: \"Versione per Angular\",\n jquery: \"Versione per jQuery\",\n knockout: \"Versione per Knockout\",\n react: \"Versione per React\",\n vue: \"Versione per Vue\",\n bootstrap: \"Per framework bootstrap\",\n standard: \"No bootstrap\",\n showOnPage: \"Visualizza in questa pagina\",\n showInWindow: \"Visualizza in una finestra\",\n loadFromServer: \"Carica JSON dal server\",\n titleScript: \"Scripts e stili\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n //Test Survey\n ts: {\n selectPage: \"Seleziona la pagina da testare:\",\n showInvisibleElements: \"Mostra elementi nascosti\"\n },\n validators: {\n answercountvalidator: \"numero risposte\",\n emailvalidator: \"e-mail\",\n numericvalidator: \"numerico\",\n regexvalidator: \"regex\",\n textvalidator: \"testo\"\n },\n triggers: {\n completetrigger: \"completa questionario\",\n setvaluetrigger: \"setta valore\",\n visibletrigger: \"cambia visibilità\"\n },\n //Properties\n p: {\n name: \"Nome\",\n title: {\n name: \"Titolo\",\n title: \"Lascialo vuoto, se è uguale a 'Nome'\"\n },\n visible: \"Visibile\",\n visibleIf: \"Visibile Se\",\n description: \"Descrizione\",\n isRequired: \"Richiesto\",\n requiredIf: \"Richiesto Se\",\n page: \"Pagina\",\n width: \"Larghezza\",\n enableIf: \"Abilitato se\",\n defaultValue: \"Valore di default\",\n readOnly: \"Sola Lettura\",\n hasComment: \"Ha un commento\",\n showOtherItem: \"Ha altro\",\n choices: \"Scelte\",\n choicesOrder: \"Ordine Scelte\",\n choicesByUrl: \"Url Scelte\",\n label: \"label\",\n showTitle: \"Mostra Titolo\",\n valueTrue: \"Valore True\",\n valueFalse: \"Valore False\",\n cols: \"Colonne\",\n rows: \"Righe\",\n currency: \"Valuta\",\n showPreview: \"Visualizza Anteprima\",\n html: \"html\",\n rateValues: \"Valori della classifica\",\n size: \"Dimensione\",\n locale: \"locale\",\n minValue: \"Valore minimo\",\n maxValue: \"Valore massimo\",\n minLength: \"Lunghezza minima\",\n maxLength: \"Lunghezza massima\",\n allowDigits: \"Consenti cifre\",\n regex: \"Espressione regolare\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"it\"] = italianTranslation;\n\n\n/***/ }),\n\n/***/ \"./src/localization/japanese.ts\":\n/*!**************************************!*\\\n !*** ./src/localization/japanese.ts ***!\n \\**************************************/\n/*! exports provided: jaStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"jaStrings\", function() { return jaStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar jaStrings = {\n ed: {\n addNewPage: \"新規ページを追加する\",\n bold: \"太字\",\n chooseElement: \"要素を選択…\",\n copy: \"コピー\",\n copyTooltip: \"選択範囲をクリップボードにコピーする\",\n correctJSON: \"JSONを修正してください。\",\n cut: \"カット\",\n cutTooltip: \"選択範囲をクリップボードにカットする\",\n defaultLocale: \"デフォルト({0})\",\n deletePage: \"ページを削除する\",\n designer: \"アンケートの設計者\",\n edit: \"編集\",\n editPage: \"ページを編集する\",\n embedSurvey: \"アンケートを埋め込む\",\n fpAddQuestion: \"質問を追加…\",\n generateReadableJSON: \"読み取り可能なJSONを生成する\",\n generateValidJSON: \"有効なJSONを生成する\",\n hidePanel: \"パネルを非表示にする\",\n italic: \"イタリック\",\n jsonEditor: \"JSONエディタ\",\n lg: {\n actionInvalid: \"アクションの問題を解決してください。\",\n actions: \"アクション\",\n actionsEditorTitle: \"アクションを定義する\",\n addNewAction: \"新しいアクションを追加する\",\n addNewItem: \"新しいルールを追加\",\n completedHtmlOnConditionDescription: \"論理式がtrue(真)を返した場合、「サンキューページ」のデフォルトテキストは指定されたものに変更されます。\",\n completedHtmlOnConditionName: \"カスタムの「サンキューページ」テキスト\",\n completedHtmlOnConditionText: \"「サンキューページ」のカスタムテキストを表示します。\",\n conditions: \"条件\",\n deleteAction: \"アクションを削除する\",\n expressionEditorTitle: \"条件を定義する\",\n expressionInvalid: \"論理式が空または無効です。修正してください。\",\n itemExpressionText: \"式:「{0}」がtrue(真)を返した場合:\",\n noActionError: \"少なくとも1つのアクションを追加してください。\",\n page_visibilityDescription: \"論理式がtrue(真)を返した場合、ページを表示にします。それ以外の場合は、非表示にしておきます。\",\n page_visibilityName: \"ページの可視性\",\n page_visibilityText: \"ページ{0}を表示にする\",\n panel_enableDescription: \"論理式がtrue(真)を返した場合、パネルとその中のすべての要素を有効にします。それ以外の場合は、無効にしておきます。\",\n panel_enableName: \"パネルの有効化/無効化\",\n panel_enableText: \"パネル{0}を有効にする\",\n panel_visibilityDescription: \"論理式がtrue(真)を返した場合、パネルを表示にします。それ以外の場合は、非表示にしておきます。\",\n panel_visibilityName: \"パネルの可視性\",\n panel_visibilityText: \"パネル{0}を表示にする\",\n question_enableDescription: \"論理式がtrue(真)を返した場合、質問を有効にします。それ以外の場合は、無効にしておきます。\",\n question_enableName: \"質問の有効化/無効化\",\n question_enableText: \"質問{0}を有効にする\",\n question_requireDescription: \"論理式がtrue(真)を返した場合、質問が必須になります。\",\n question_requireName: \"質問オプションが必要\",\n question_requireText: \"質問{0}を必須にする\",\n question_visibilityDescription: \"論理式がtrue(真)を返した場合、質問を表示にします。それ以外の場合は、非表示にしておきます。\",\n question_visibilityName: \"質問の可視性\",\n question_visibilityText: \"質問{0}を表示にする\",\n selectedActionCaption: \"追加するアクションを選択…\",\n trigger_completeDescription: \"論理式がtrue(真)を返した場合、アンケートが完了し、エンドユーザーに「サンキューページ」が表示されます。\",\n trigger_completeName: \"アンケートを完了する\",\n trigger_completeText: \"アンケートが完了する\",\n trigger_copyvalueDescription: \"論理式で使用される質問の値が変更され、論理式がtrue(真)を返した場合、選択された1つの質問の値が別の選択された質問にコピーされます。\",\n trigger_copyvalueName: \"質問の値をコピーする\",\n trigger_copyvalueText: \"質問{1}から質問:{0}値にコピーする\",\n trigger_runExpressionDescription: \"論理式がtrue(真)を返した場合、カスタム式が実行されます。オプションで、この式の結果を選択した質問に設定することができます。\",\n trigger_runExpressionName: \"カスタム式を実行する\",\n trigger_runExpressionText1: \"式:「{0}」を実行する\",\n trigger_runExpressionText2: \" そして、その結果を質問:{0}に設定する\",\n trigger_setvalueDescription: \"論理式で使用される質問の値が変更され、論理式がtrue(真)を返した場合、その値は選択された質問に設定されます。\",\n trigger_setvalueName: \"質問の値を設定する\",\n trigger_setvalueText: \"質問:{0}値{1}に設定する\",\n trigger_skipDescription: \"論理式がtrue(真)を返した場合、アンケートは選択された質問にスキップ/フォーカスされます。\",\n trigger_skipName: \"質問にスキップする\",\n trigger_skipText: \"アンケートは質問{0}にスキップする\"\n },\n logic: \"アンケートのロジック\",\n modified: \"修正済み\",\n moveLeft: \"左にスクロールする\",\n moveRight: \"右にスクロールする\",\n navigateToMsg: \"次の場所に移動する必要がありました:\",\n newPageName: \"ページ\",\n newPanelName: \"パネル\",\n newQuestionName: \"質問\",\n newTextItemName: \"テキスト\",\n options: \"オプション\",\n paste: \"貼り付ける\",\n pasteTooltip: \"クリップボードから貼り付ける\",\n \"property-grid\": \"プロパティ\",\n propertyEditorError: \"エラー:\",\n redo: \"やり直す\",\n redoTooltip: \"変更をやり直す\",\n resultsDisplayValue: \"表示値\",\n resultsName: \"質問名\",\n resultsTitle: \"質問のタイトル\",\n resultsValue: \"回答値\",\n saved: \"保存済み\",\n saveError: \"エラー! エディタのコンテンツは保存されません。\",\n saveSurvey: \"アンケートを保存する\",\n saveSurveyTooltip: \"アンケートを保存する\",\n saving: \"保存\",\n selectPage: \"ページを選択...\",\n settings: \"アンケートの設定\",\n settingsTooltip: \"アンケートの設定を開く\",\n showPanel: \"パネルを表示する\",\n survey: \"アンケート\",\n surveyResults: \"アンケート結果: \",\n surveyResultsJson: \"JSONとして\",\n surveyResultsTable: \"表として\",\n testSurvey: \"アンケートをテストする\",\n testSurveyAgain: \"アンケートを再度テストする\",\n testSurveyWidth: \"アンケートの幅: \",\n toolbox: \"ツールボックス\",\n toolboxGeneralCategory: \"一般\",\n translation: \"翻訳\",\n translationAddLanguage: \"翻訳する言語を選択する\",\n translationExportToSCVButton: \"CSVにエクスポートする\",\n translationImportFromSCVButton: \"CSVからインポートする\",\n translationMergeLocaleWithDefault: \"{0}をデフォルトのロケールにマージする\",\n translationNoStrings: \"翻訳する文字列がありません。フィルターを変更してください。\",\n translationShowAllPages: \"すべてのページを表示する\",\n translationShowAllStrings: \"すべての文字列を表示する\",\n underline: \"下線\",\n undo: \"元に戻す\",\n undoTooltip: \"最後の変更を元に戻す\"\n },\n ew: {\n angular: \"Angularバージョンを使用\",\n bootstrap: \"Bootstrapフレームワーク向け\",\n darkblue: \"ダークブルーテーマ\",\n darkrose: \"ダークローズテーマ\",\n default: \"デフォルトテーマ\",\n jquery: \"jQueryバージョンを使用\",\n knockout: \"Knockoutバージョンを使用\",\n loadFromServer: \"サーバーからアンケートのJSONファイルを読み込む\",\n modern: \"モダンテーマ\",\n orange: \"オレンジテーマ\",\n react: \"Reactバージョンを使用\",\n showInWindow: \"1つのウィンドウにアンケートを表示\",\n showOnPage: \"1つのページにアンケートを表示\",\n stone: \"ストーンテーマ\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n titleScript: \"スクリプトとスタイル\",\n vue: \"Vueバージョンを使用\",\n winter: \"ウィンターテーマ\",\n winterstone: \"ウィンターストーンテーマ\"\n },\n op: {\n allof: \"次のすべて\",\n and: \"および\",\n anyof: \"次のいずれか\",\n contains: \"含む\",\n empty: \"は空白です\",\n equal: \"等しい\",\n greater: \"より大きい\",\n greaterorequal: \"等しいかより大きい\",\n less: \"より小さい\",\n lessorequal: \"等しいかより小さい\",\n notcontains: \"含まない\",\n notempty: \"は空白ではありません\",\n notequal: \"等しくない\",\n or: \"または\"\n },\n p: {\n title: {\n title: \"「名前」と同じ場合は空白のままにしてください\"\n }\n },\n pe: {\n aceEditorHelp: \"表現の補完のヒントを取得するには「ctrl+space」を押してください\",\n aceEditorPanelTitle: \"現在のパネル\",\n aceEditorRowTitle: \"現在の行\",\n add: \"追加\",\n addCondition: \"条件を追加する\",\n addItem: \"クリックしてアイテムを追加…\",\n addLogo: \"ロゴを追加...\",\n addNew: \"新規追加:\",\n addNone: \"なし\",\n addOther: \"その他\",\n addRowLocation: \"列ボタンのロケーションを追加\",\n addRowText: \"行ボタンのテキストを追加\",\n addSelectAll: \"すべて選択\",\n allowAddPanel: \"パネルの追加を許可\",\n allowDigits: \"数字を許可\",\n allowEmptyResponse: \"空の応答を許可\",\n allowRemovePanel: \"パネルの削除を許可\",\n and: \"および\",\n apply: \"適用\",\n assistantTitle: \"利用できる質問:\",\n back: \"保存せずに戻る\",\n backTooltip: \"保存せずに戻る\",\n buildExpression: \"構築する\",\n cancel: \"キャンセル\",\n cellsDefaultRow: \"デフォルトのセルテキスト\",\n cellsEmptyRowsColumns: \"少なくとも1つの列または行を含む必要があります\",\n cellType: \"セルタイプ\",\n changeLogo: \"ロゴを変更...\",\n choicesMax: \"自動生成アイテムの最大値\",\n choicesMin: \"自動生成アイテムの最小値\",\n choicesOrder: \"選択順\",\n choicesStep: \"自動生成アイテムの差\",\n clearInvisibleValues: \"非表示の値をクリアする\",\n colCount: \"行の数\",\n cols: \"行の数\",\n columnEdit: \"行編集: {0}\",\n columnLayout: \"行のレイアウト\",\n completeText: \"「完了」ボタンのテキスト\",\n conditionActionEmpty: \"アクションを選択してください\",\n conditionSelectPage: \"ページを選択...\",\n conditionSelectPanel: \"パネルを選択...\",\n conditionSelectQuestion: \"質問を選択...\",\n conditionValueQuestionTitle: \"値を入力/選択してください\",\n cookieName: \"Cookie名(ローカルで2回アンケートを実行しないようにするため)\",\n createtrigger: \"トリガーを作成してください。\",\n defaultValue: \"デフォルト値\",\n delete: \"削除\",\n descriptionPlaceholder: \"詳細を入力\",\n edit: \"編集\",\n editChoices: \"選択肢を編集\",\n editExpression: \"編集\",\n editProperty: \"プロパティ'{0}'を編集\",\n editText: \"「編集」ボタンのテキスト\",\n enterNewValue: \"値を入力してください。\",\n expandCollapseTitle: \"タイトルを展開/折りたたむ\",\n expression: \"表現\",\n expressionHelp: \"波括弧を使用して質問の値にアクセスできます: {質問1} + {質問2}, ({値段}*{数量}) * (100 - {割引})。iif(), today(), age(), min(), max(), count(), avg() およびその他の関数を使用できます。\",\n expressionIsEmpty: \"表現が空白です\",\n fastEntry: \"高速入力\",\n firstPageIsStarted: \"アンケートの最初のページは、開始ページです。\",\n focusFirstQuestionAutomatic: \"ページを変える際に最初の質問に焦点を合わせる\",\n formEntry: \"フォーム入力\",\n goNextPageAutomatic: \"すべての質問に回答すると、自動的に次のページに移動します\",\n showNoneItem: \"ノーアイテム\",\n showOtherItem: \"他のアイテム\",\n hasSelectAll: \"アイテムを全て選択\",\n html: \"HTML\",\n imageHeight: \"イメージの高さ\",\n imageLink: \"画像リンク\",\n imageWidth: \"イメージの幅\",\n inputType: \"入力タイプ\",\n isAllRowRequired: \"全ての列で回答必須\",\n isRequired: \"必須\",\n isSinglePage: \"1ページ上にすべてのエレメントを表示\",\n itemEdit: \"アイテム編集: {0}\",\n items: \"[ アイテム: {0} ]\",\n itemSelectorEmpty: \"エレメントを選択してください\",\n itemView: \"アイテム表示: {0}\",\n keyboardAdornerTip: \"アイテムを編集するには「enter」キーを押してください、アイテムを削除するには「delete」キーを押してください、アイテムを移動するには「alt」+上矢印キーまたは「alt」+下矢印キーを押してください\",\n keyboardMoveItemsTip: \"アイテムを移動するには「alt」+上矢印キーまたは「alt」+下矢印キーを押してください\",\n landscapeOrientation: \"横向き\",\n listIsEmpty: \"新しいアイテムを追加\",\n locale: \"デフォルトの言語\",\n logoPosition: \"ロゴの位置\",\n logoPositions: {\n bottom: \"下に\",\n left: \"左\",\n none: \"ロゴを削除\",\n right: \"右\",\n top: \"上に\"\n },\n maxCount: \"最大数\",\n maxLength: \"最大長\",\n maxRateDescription: \"最大レートの説明\",\n maxSize: \"ファイルの最大サイズ(byte)\",\n maxTimeToFinish: \"アンケート終了までの最長時間\",\n maxTimeToFinishPage: \"アンケートの1ページを終了するまでの最長時間\",\n maxValue: \"最大値\",\n minCount: \"最小数\",\n minLength: \"最小長\",\n minRateDescription: \"最小レートの詳細\",\n minValue: \"最小値\",\n mode: \"モード(編集/読み取り専用)\",\n move: \"移動\",\n name: \"名前\",\n noFile: \"ファイルが選択されていません\",\n noneText: \"ノーアイテムのテキスト\",\n noquestions: \"アンケートに質問はありません。\",\n ok: \"OK\",\n optionsCaption: \"オプションのキャプション\",\n or: \"または\",\n otherText: \"他のアイテムのテキスト\",\n pageDescriptionPlaceholder: \"ページの詳細を入力\",\n pageNextText: \"「次のページへ」ボタンのテキスト\",\n pagePrevText: \"「前のページへ」ボタンのテキスト\",\n pageTitlePlaceholder: \"ページタイトルを入力\",\n panelAddText: \"パネルテキストを追加しています\",\n panelRemoveText: \"パネルテキストを削除しています\",\n path: \"パス\",\n placeholder: \"プレースホルダの入力\",\n previewText: \"「プレビュー」ボタンのテキスト\",\n propertyIsEmpty: \"値を入力してください\",\n propertyIsNoUnique: \"固有値を入力してください\",\n propertyNameIsNotUnique: \"固有名を入力してください\",\n qEditorTitle: \"編集: {0}\",\n questionErrorLocation: \"質問エラーの場所\",\n questionsOrder: \"ページ上の要素の順序\",\n questionStartIndex: \"質問開始インデックス(1、2または「A」、「a」)\",\n questionTitleLocation: \"質問のタイトルの場所\",\n questionTitleTemplate: \"質問タイトルのテンプレート、デフォルトは「{no}. {require} {title}」です\",\n rateMax: \"最大レート\",\n rateMin: \"最小レート\",\n rateStep: \"レートステップ\",\n refresh: \"リフレッシュ\",\n regex: \"正規表現\",\n remove: \"削除する\",\n removeAll: \"すべて削除\",\n removeRowText: \"行ボタンのテキストを削除\",\n renderMode: \"レンダーモード\",\n requiredErrorText: \"必要なエラーテキスト\",\n requiredText: \"質問には記号が必要\",\n reset: \"リセット\",\n rowCount: \"列数\",\n rowid: \"行ID\",\n rows: \"列数\",\n save: \"保存\",\n saveAndBack: \"保存して戻る\",\n saveAndBackTooltip: \"保存して戻る\",\n saveTooltip: \"保存\",\n selectAllText: \"アイテムを全て選択のテキスト\",\n sendResultOnPageNext: \"次のページにアンケート結果を送信する\",\n showChoices: \"選択肢を表示\",\n showCompletedPage: \"完了したページを最後に表示する(completedHtml)\",\n showMore: \"詳細は文書をご確認ください\",\n showNavigationButtons: \"ナビゲーションボタンを表示する(デフォルトのナビゲーション)\",\n showOptionsCaption: \"オプションのキャプションを表示する\",\n showPageNumbers: \"ページ番号を表示する\",\n showPageTitles: \"ページタイトルを表示する\",\n showPrevButton: \"「前へ」ボタンを表示する(ユーザーは前のページに戻ることができます)\",\n showPreview: \"プレビューエリア表示\",\n showProgressBar: \"プログレスバーを表示する\",\n showQuestionNumbers: \"質問番号を表示する\",\n showTimerPanel: \"タイマーパネルを表示する\",\n showTimerPanelMode: \"タイマーパネルモードを表示\",\n showTitle: \"タイトルの表示/非表示\",\n simulator: \"デバイスを選択する\",\n startSurveyText: \"「開始」ボタンのテキスト\",\n startWithNewLine: \"ニューラインで開始\",\n storeDataAsText: \"ファイルのコンテンツをテキストとしてJSONの結果に保存\",\n storeOthersAsComment: \"「その他」の値を別のフィールドに保存する\",\n surveyDescriptionPlaceholder: \"調査の詳細を入力\",\n surveyEditorTitle: \"アンケート設定を編集する\",\n surveyTitlePlaceholder: \"調査タイトルを入力\",\n tabs: {\n calculatedValues: \"算出された値\",\n cells: \"セル\",\n choices: \"選択\",\n choicesByUrl: \"ウェブの選択\",\n columns: \"列\",\n completedHtml: \"完了したHTML\",\n completedHtmlOnCondition: \"完成した条件付きHTML\",\n data: \"データ\",\n enableIf: \"以下の場合、有効にする:\",\n fileOptions: \"オプション\",\n general: \"一般\",\n html: \"HTMLエディター\",\n items: \"アイテム\",\n layout: \"レイアウト\",\n loadingHtml: \"HTMLを読み込んでいます\",\n logic: \"ロジック\",\n logo: \"アンケートタイトルのロゴ\",\n matrixChoices: \"デフォルトの選択\",\n multipleTextItems: \"テキスト入力\",\n navigation: \"ナビゲーション\",\n numbering: \"番号付け\",\n others: \"その他\",\n pages: \"ページ\",\n question: \"質問\",\n rateValues: \"レート値\",\n requiredIf: \"以下の場合、必須:\",\n rows: \"行\",\n showOnCompleted: \"完成したものに表示\",\n slider: \"スライダー\",\n templateTitle: \"テンプレートタイトル\",\n timer: \"タイマー/クイズ\",\n totals: \"合計\",\n triggers: \"トリガー\",\n validation: \"検証\",\n validators: \"バリデータ\",\n visibleIf: \"以下の場合、見える:\"\n },\n testService: \"サービスをテスト\",\n text: \"テキスト\",\n title: \"タイトル\",\n titleKeyboardAdornerTip: \"編集するには「enter」キーを押してください\",\n titleName: \"タイトル名\",\n titlePlaceholder: \"タイトルを入力\",\n totalCurrency: \"通貨の合計\",\n totalDisplayStyle: \"表示スタイルの合計\",\n totalExpression: \"表現の合計\",\n totalFormat: \"形式の合計\",\n totalText: \"テキストの合計\",\n totalType: \"タイプの合計\",\n triggerCompleteText: \"うまくいけばアンケートが完了します。\",\n triggerFromName: \"次から値をコピー: \",\n triggerGotoName: \"質問に移動:\",\n triggerIsVariable: \"アンケートの結果に変数を入れないでください。\",\n triggerMakePagesVisible: \"ページを可視化:\",\n triggerMakeQuestionsVisible: \"エレメントを可視化:\",\n triggerNotSet: \"トリガーが設定されていません\",\n triggerOn: \"オン \",\n triggerRunExpression: \"この表現を実行:\",\n triggerRunExpressionEmpty: \"有効な表現を入力してください\",\n triggerRunIf: \"次の場合、実行\",\n triggerSetToName: \"次の値を変更: \",\n triggerSetValue: \"宛先: \",\n url: \"URL\",\n value: \"値\",\n valueName: \"値名\",\n view: \"表示\",\n visible: \"表示\"\n },\n pv: {\n all: \"すべて\",\n asc: \"昇順\",\n both: \"両方\",\n bottom: \"下\",\n buttons: \"ボタン\",\n collapsed: \"折り畳んだ\",\n color: \"色\",\n correctQuestions: \"正しい質問\",\n currency: \"通貨\",\n date: \"日付\",\n datetime: \"日時\",\n \"datetime-local\": \"datetime-local\",\n decimal: \"小数\",\n default: \"デフォルト\",\n desc: \"降順\",\n display: \"表示\",\n edit: \"編集\",\n email: \"メール\",\n expanded: \"展開した\",\n false: \"偽\",\n firstExpanded: \"firstExpanded\",\n hidden: \"非表示\",\n hide: \"非表示にする\",\n horizontal: \"水平\",\n indeterminate: \"不確定\",\n inherit: \"継承する\",\n initial: \"最初の\",\n left: \"左\",\n list: \"リスト\",\n month: \"月\",\n none: \"なし\",\n noPreview: \"プレビューなし\",\n number: \"数字\",\n off: \"オフ\",\n on: \"オン\",\n onComplete: \"onComplete\",\n onHidden: \"onHidden\",\n onNextPage: \"onNextPage\",\n onPage: \"onPage\",\n onPanel: \"onPanel\",\n onSurvey: \"onSurvey\",\n onValueChanged: \"onValueChanged\",\n page: \"ページ\",\n pages: \"ページ\",\n password: \"パスワード\",\n percent: \"パーセント\",\n progressBottom: \"progressBottom\",\n progressTop: \"progressTop\",\n progressTopBottom: \"progressTopBottom\",\n questionPerPage: \"ページあたりの質問\",\n questions: \"質問\",\n random: \"ランダム\",\n range: \"範囲\",\n requiredQuestions: \"必須の質問\",\n show: \"表示する\",\n showAllQuestions: \"すべての質問を含むプレビューを表示\",\n showAnsweredQuestions: \"回答された質問を含むプレビューを表示\",\n singlePage: \"シングルページ\",\n standard: \"スタンダード\",\n survey: \"アンケート\",\n tel: \"電話\",\n text: \"テキスト\",\n time: \"時間\",\n top: \"上\",\n topBottom: \"上と下\",\n true: \"真\",\n underInput: \"インプットの下\",\n underTitle: \"タイトルの下\",\n url: \"URL\",\n vertical: \"垂直\",\n week: \"週\"\n },\n qt: {\n boolean: \"ブール\",\n checkbox: \"チェックボックス\",\n comment: \"コメント\",\n default: \"デフォルト\",\n dropdown: \"ドロップダウン\",\n expression: \"式(読み取り専用)\",\n file: \"ファイル\",\n flowpanel: \"フローパネル\",\n html: \"HTML\",\n image: \"画像\",\n imagepicker: \"画像ピッカー\",\n matrix: \"マトリックス(単一選択)\",\n matrixdropdown: \"マトリックス(多項選択)\",\n matrixdynamic: \"マトリックス(動的行)\",\n multipletext: \"複数のテキスト\",\n panel: \"パネル\",\n paneldynamic: \"パネル(動的パネル)\",\n radiogroup: \"ラジオグループ\",\n ranking: \"ランキング\",\n rating: \"評価\",\n signaturepad: \"署名パッド\",\n text: \"単一入力\"\n },\n survey: {\n addLogicItem: \"アンケートの流れをカスタマイズするルールを作成します。\",\n addToToolbox: \"ツールボックスに追加する\",\n convertTo: \"に変換する\",\n copy: \"コピー\",\n deletePanel: \"パネルを削除する\",\n deleteQuestion: \"質問を削除する\",\n drag: \"要素をドラッグする\",\n dropQuestion: \"ツールボックスからここに質問をドロップしてください。\",\n duplicate: \"複製\",\n edit: \"編集\",\n externalHelpLink: \"アンケートの作成方法を見て学ぶ\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\"\n },\n triggers: {\n completetrigger: \"アンケートを完了\",\n copyvaluetrigger: \"値をコピー\",\n runexpressiontrigger: \"数式を実行\",\n setvaluetrigger: \"値を設定\",\n skiptrigger: \"質問へスキップ\",\n visibletrigger: \"可視性を変更 (非推奨)\"\n },\n ts: {\n selectPage: \"それをテストするためのページを選択:\",\n showInvisibleElements: \"不可視エレメントを表示\"\n },\n validators: {\n answercountvalidator: \"答えの数\",\n emailvalidator: \"メール\",\n expressionvalidator: \"表現\",\n numericvalidator: \"数字の\",\n regexvalidator: \"正規表現\",\n textvalidator: \"テキスト\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"ja\"] = jaStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/korean.ts\":\n/*!************************************!*\\\n !*** ./src/localization/korean.ts ***!\n \\************************************/\n/*! exports provided: koreanStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"koreanStrings\", function() { return koreanStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar koreanStrings = {\n //survey templates\n survey: {\n edit: \"편집\",\n dropQuestion: \"왼쪽 도구상자에서 질문을 여기에 놓으십시오.\",\n copy: \"복사\",\n addToToolbox: \"도구상자에 추가\",\n deletePanel: \"패널 삭제\",\n deleteQuestion: \"질문 삭제\",\n convertTo: \"다음으로 변경\",\n drag: \"항목 끌어오기\"\n },\n //questionTypes\n qt: {\n default: \"기본값\",\n checkbox: \"체크박스\",\n comment: \"설명\",\n dropdown: \"드롭다운\",\n file: \"파일\",\n html: \"HTML\",\n matrix: \"행렬 (단일 선택)\",\n matrixdropdown: \"행렬 (복수 선택)\",\n matrixdynamic: \"행렬 (동적 행)\",\n multipletext: \"텍스트 상자 그룹\",\n panel: \"패널\",\n paneldynamic: \"패널 (동적 패널)\",\n radiogroup: \"라디오 그룹\",\n rating: \"등급\",\n text: \"텍스트 상자\",\n boolean: \"불린(boolean)\",\n expression: \"표현식\"\n },\n //Strings in Editor\n ed: {\n survey: \"설문지\",\n settings: \"설정\",\n editSurvey: \"설문지 편집\",\n addNewPage: \"새 페이지 추가\",\n moveRight: \"오른쪽으로 스크롤\",\n moveLeft: \"왼쪽으로 스크롤\",\n deletePage: \"페이지 삭제\",\n editPage: \"페이지 편집\",\n edit: \"편집\",\n newPageName: \"페이지\",\n newQuestionName: \"질문\",\n newPanelName: \"패널\",\n testSurvey: \"테스트 설문지\",\n testSurveyAgain: \"테스트 설문지 다시하기\",\n testSurveyWidth: \"설문지 너비: \",\n embedSurvey: \"내장 설문지\",\n saveSurvey: \"설문지 저장\",\n designer: \"설문지 디자인\",\n jsonEditor: \"JSON 편집기\",\n undo: \"실행 취소\",\n redo: \"복원\",\n options: \"옵션\",\n generateValidJSON: \"JSON 데이터 생성\",\n generateReadableJSON: \"생성 JSON 데이터 읽기\",\n toolbox: \"도구상자\",\n toolboxGeneralCategory: \"일반\",\n delSelObject: \"선택한 객체 삭제\",\n editSelObject: \"선택한 객체 편집\",\n correctJSON: \"JSON 데이터를 수정하십시오.\",\n surveyResults: \"설문 결과: \",\n modified: \"수정됨\",\n saving: \"저장중\",\n saved: \"저장됨\"\n },\n //Property names in table headers\n pel: {\n isRequired: \"필수입니까?\"\n },\n //Property Editors\n pe: {\n apply: \"적용\",\n ok: \"확인\",\n cancel: \"취소\",\n reset: \"재설정\",\n close: \"닫기\",\n delete: \"삭제\",\n addNew: \"새로 만들기\",\n addItem: \"항목을 추가하려면 클립하십시오.\",\n removeAll: \"모두 삭제\",\n edit: \"편집\",\n itemValueEdit: \"조건 충족 시 보기\",\n editChoices: \"선택사항 편집\",\n move: \"이동\",\n empty: \"<비어있음>\",\n notEmpty: \"<편집 값>\",\n fastEntry: \"빠른 입력\",\n formEntry: \"양식 입력\",\n testService: \"서비스 테스트\",\n conditionSelectQuestion: \"질문 선택...\",\n conditionValueQuestionTitle: \"값을 입력하거나 선택하십시오.\",\n conditionButtonAdd: \"추가\",\n conditionButtonReplace: \"바꾸기\",\n conditionHelp: \"불린 식을 입력하십시오. 질문 혹은 페이지를 계속 볼 수 있게 하려면 참값을 반환해야 합니다. 예를 들면: {질문1} = '값1' or ({질문2} * {질문4} > 20 and {질문3} < 5)\",\n expressionHelp: \"식을 입력하십시오. 다음과 같은 질문 값에 접근하려면 중괄호를 이용하십시오: '{질문1} + {질문2}', '({가격}*{수량}) * (100 - {할인})'\",\n aceEditorHelp: \"ctrl+space를 눌러 완성된 수식에 대한 힌트를 얻으십시오\",\n aceEditorRowTitle: \"현재 행\",\n aceEditorPanelTitle: \"현재 패널\",\n showMore: \"자세한 내용은 설명서를 확인하십시오.\",\n conditionShowMoreUrl: \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"유효 질문:\",\n cellsEmptyRowsColumns: \"최소한 하나의 열 또는 행이 있어야 합니다.\",\n propertyIsEmpty: \"값을 입력하십시오\",\n value: \"값\",\n text: \"텍스트\",\n columnEdit: \"열 편집: {0}\",\n itemEdit: \"항목 편집: {0}\",\n url: \"URL\",\n path: \"경로\",\n valueName: \"값 이름\",\n titleName: \"제목 이름\",\n showOtherItem: \"다른 항목이 있습니다\",\n otherText: \"기타 항목 텍스트\",\n name: \"이름\",\n title: \"제목\",\n cellType: \"셀 유형\",\n colCount: \"열 개수\",\n choicesOrder: \"항목 순서 선택\",\n visible: \"보입니까??\",\n isRequired: \"필수입니까?\",\n startWithNewLine: \"새 줄로 시작하겠습니까?\",\n rows: \"행 수\",\n placeholder: \"입력 자리 표시자 \",\n showPreview: \"이미지 미리보기가 표시됩니까?\",\n storeDataAsText: \"파일 내용을 JSON 결과에 텍스트로 저장\",\n maxSize: \"최대 파일 크기(bytes)\",\n imageHeight: \"이미지 높이\",\n imageWidth: \"이미지 너비\",\n rowCount: \"행 수\",\n columnsLocation: \"열 위치\",\n addRowLocation: \"행 버튼 위치 추가\",\n addRowText: \"행 버튼 텍스트 추가\",\n removeRowText: \"행 버튼 텍스트 제거\",\n minRateDescription: \"최소 설명 길이\",\n maxRateDescription: \"최대 설명 길이\",\n inputType: \"입력 유형\",\n optionsCaption: \"옵션 캡션\",\n defaultValue: \"기본값\",\n cellsDefaultRow: \"기본 셀 텍스트\",\n surveyEditorTitle: \"설문지 설정 편집\",\n qEditorTitle: \"편집: {0}\",\n //survey\n showTitle: \"제목 표시/숨김\",\n locale: \"기본 언어\",\n mode: \"모드(편집/읽기전용)\",\n clearInvisibleValues: \"보이지 않는 값 지우기\",\n cookieName: \"쿠키 이름(로컬에서 설문 조사를 두 번 사용하지 않도록 설정)\",\n sendResultOnPageNext: \"다음 페이지에서 설문 조사 결과 보내기\",\n storeOthersAsComment: \"다른 사용자의 값을 별도의 필드에 저장\",\n showPageTitles: \"페이지 제목 표시\",\n showPageNumbers: \"페이지 번호 표시\",\n pagePrevText: \"이전 페이지 버튼 텍스트\",\n pageNextText: \"다음 페이지 버튼 텍스트\",\n completeText: \"완료 버튼 텍스트\",\n startSurveyText: \"시작 버튼 텍스트\",\n showNavigationButtons: \"탐색 버튼 표시 (기본 탐색)\",\n showPrevButton: \"이전 버튼 표시 (사용자가 이전 페이지로 돌아갈 수 있음)\",\n firstPageIsStarted: \"설문지의 첫 번째 페이지는 시작 페이지입니다\",\n showCompletedPage: \"끝 부분에 완료된 페이지 표시 (완료된 HTML)\",\n goNextPageAutomatic: \"모든 질문에 응답 후 자동으로 다음 페이지로 이동\",\n showProgressBar: \"진행률 막대 표시\",\n questionTitleLocation: \"질문 제목 위치\",\n requiredText: \"질문에 필요한 기호\",\n questionStartIndex: \"질문 시작 색인 (1, 2 또는 'A', 'a')\",\n showQuestionNumbers: \"질문 번호 표시\",\n questionTitleTemplate: \"질문 제목 템플릿입니다. 기본값: '{no}. {require} {title}'\",\n questionErrorLocation: \"질문 위치 오류\",\n focusFirstQuestionAutomatic: \"페이지 변경시 첫 번째 질문에 초점\",\n questionsOrder: \"페이지의 요소 순서\",\n maxTimeToFinish: \"설문 조사를 마칠 수있는 최대 시간\",\n maxTimeToFinishPage: \"설문 조사에서 페이지를 마칠 수있는 최대 시간\",\n showTimerPanel: \"타이머 패널 표시\",\n showTimerPanelMode: \"타이머 패널 모드 표시\",\n renderMode: \"렌더링 모드\",\n allowAddPanel: \"패널 추가 허용\",\n allowRemovePanel: \"패널 제거 허용\",\n panelAddText: \"패널 텍스트 추가\",\n panelRemoveText: \"패널 텍스트 삭제\",\n isSinglePage: \"한 페이지에 모든 요소 표시\",\n tabs: {\n general: \"일반\",\n fileOptions: \"옵션\",\n html: \"Html 편집기\",\n columns: \"열\",\n rows: \"행\",\n choices: \"선택\",\n items: \"항목\",\n visibleIf: \"조건 충족시 보기\",\n enableIf: \"조건 충족시 허용\",\n rateValues: \"길이 값\",\n choicesByUrl: \"웹에서 선택\",\n matrixChoices: \"기본 선택\",\n multipleTextItems: \"텍스트 입력\",\n validators: \"유효성 검사기\",\n navigation: \"탐색\",\n question: \"질문\",\n completedHtml: \"완료된 HTML\",\n loadingHtml: \"HTML 로드 중\",\n timer: \"타이머 / 퀴즈\",\n triggers: \"트리거\",\n templateTitle: \"템플릿 제목\"\n },\n editProperty: \"편집 속성 '{0}'\",\n items: \"[ 항목: {0} ]\",\n enterNewValue: \"값을 입력하십시오.\",\n noquestions: \"설문 조사에는 어떤 질문도 없습니다.\",\n createtrigger: \"트리거를 만드십시오\",\n triggerOn: \"트리거 켜기\",\n triggerMakePagesVisible: \"페이지 표시:\",\n triggerMakeQuestionsVisible: \"요소 표시:\",\n triggerCompleteText: \"조건 충족 시 설문 조사를 작성하십시오.\",\n triggerNotSet: \"트리거가 설정되지 않았습니다.\",\n triggerRunIf: \"다음 조건 충족 시 실행\",\n triggerSetToName: \"다음 값 변경: \",\n triggerSetValue: \"다음으로 수정: \",\n triggerIsVariable: \"변수를 설문 결과에 넣지 마십시오.\"\n },\n //Property values\n pv: {\n true: \"참\",\n false: \"거짓\",\n inherit: \"상속\",\n show: \"보기\",\n hide: \"숨기기\",\n default: \"기본값\",\n initial: \"초기값\",\n random: \"무작위\",\n collapsed: \"축소\",\n expanded: \"확장\",\n none: \"없음\",\n asc: \"오름차순\",\n desc: \"내림차순\",\n indeterminate: \"불확정\",\n decimal: \"진수\",\n currency: \"화폐\",\n percent: \"퍼센트\",\n firstExpanded: \"우선 확장\",\n off: \"꺼짐\",\n onPanel: \"패널에서\",\n onSurvey: \"설문에서\",\n list: \"목록\",\n progressTop: \"상단 진행률\",\n progressBottom: \"하단 진행률\",\n progressTopBottom: \"상하단 진행률\",\n horizontal: \"가로\",\n vertical: \"세로\",\n top: \"위\",\n bottom: \"아래\",\n topBottom: \"위아래\",\n left: \"왼쪽\",\n color: \"색상\",\n date: \"날짜\",\n datetime: \"날짜/시간\",\n \"datetime-local\": \"현지 날짜/시간\",\n email: \"이메일\",\n month: \"월\",\n number: \"숫자\",\n password: \"패스워드\",\n range: \"범위\",\n tel: \"tel\",\n text: \"텍스트\",\n time: \"시간\",\n url: \"URL\",\n week: \"주\",\n hidden: \"숨김\",\n on: \"켜기\",\n onPage: \"페이지 켜기\",\n edit: \"편집\",\n display: \"디스플레이\",\n onComplete: \"완료\",\n onHidden: \"숨김\",\n all: \"모두\",\n page: \"페이지\",\n survey: \"설문지\",\n onNextPage: \"다음 페이지로\",\n onValueChanged: \"값 변경\"\n },\n //Operators\n op: {\n empty: \"비어있습니다\",\n notempty: \"비어있지 않습니다\",\n equal: \"같습니다\",\n notequal: \"같지 않습니다\",\n contains: \"포함합니다\",\n notcontains: \"포함하지 않습니다\",\n greater: \"큰\",\n less: \"작은\",\n greaterorequal: \"크거나 같음\",\n lessorequal: \"작거나 같음\"\n },\n //Embed window\n ew: {\n angular: \"Angular 버전 사용\",\n jquery: \"jQuery 버전 사용\",\n knockout: \"Knockout 버전 사용\",\n react: \"React 버전 사용\",\n vue: \"Vue 버전 사용\",\n bootstrap: \"부트 스트랩 프레임\",\n standard: \"부트 스트랩 없음\",\n showOnPage: \"페이지에서 설문조사 보기\",\n showInWindow: \"윈도우 창에서 설문조사 보기\",\n loadFromServer: \"서버에서 설문조사 JSON 실행\",\n titleScript: \"스크립트 및 스타일\",\n titleHtml: \"HTML\",\n titleJavaScript: \"자바스크립트\"\n },\n //Test Survey\n ts: {\n selectPage: \"테스트 할 페이지를 선택하십시오:\"\n },\n validators: {\n answercountvalidator: \"답 개수\",\n emailvalidator: \"이메일\",\n expressionvalidator: \"표현식\",\n numericvalidator: \"숫자\",\n regexvalidator: \"정규식\",\n textvalidator: \"텍스트\"\n },\n triggers: {\n completetrigger: \"설문 완료\",\n setvaluetrigger: \"값 설정\",\n visibletrigger: \"선명도 변경\"\n },\n //Properties\n p: {\n name: \"이름\",\n title: {\n name: \"제목\",\n title: \"'이름'과 같은 경우 비워 둡니다.\"\n },\n navigationButtonsVisibility: \"탐색 버튼 선명도\",\n questionsOrder: \"질문 순서\",\n maxTimeToFinish: \"최대 완료 시간\",\n visible: \"보기\",\n visibleIf: \"조건 충족시 보기\",\n questionTitleLocation: \"질문 제목 위치\",\n description: \"설명\",\n state: \"state\",\n isRequired: \"필수\",\n indent: \"들여쓰기\",\n requiredErrorText: \"필수 오류 텍스트\",\n startWithNewLine: \"새 줄로 시작\",\n innerIndent: \"안으로 들여쓰기\",\n page: \"페이지\",\n width: \"너비\",\n commentText: \"메모 텍스트\",\n valueName: \"이름값\",\n enableIf: \"조건 충족시 허가\",\n defaultValue: \"기본값\",\n correctAnswer: \"답안 수정\",\n readOnly: \"읽기 전용\",\n validators: \"유효성 검사기\",\n titleLocation: \"제목 위치\",\n hasComment: \"답변\",\n showOtherItem: \"다른 답변 허용\",\n choices: \"선택\",\n choicesOrder: \"기타 선택\",\n choicesByUrl: \"URL을 통한 선택\",\n otherText: \"기타 텍스트\",\n otherErrorText: \"기타 오류 텍스트\",\n storeOthersAsComment: \"기타 답변 저장\",\n label: \"라벨\",\n showTitle: \"제목 표시\",\n valueTrue: \"참값\",\n valueFalse: \"거짓값\",\n cols: \"열\",\n rows: \"행\",\n placeholder: \"자리 표시자\",\n optionsCaption: \"옵션 캡션\",\n expression: \"표현식\",\n format: \"포맷\",\n displayStyle: \"디스플레이 스타일\",\n currency: \"화폐\",\n useGrouping: \"그룹 사용\",\n showPreview: \"미리보기 보기\",\n allowMultiple: \"다수 허용\",\n imageHeight: \"이미지 높이\",\n imageWidth: \"이미지 너비\",\n storeDataAsText: \"텍스트로 데이터 저장\",\n maxSize: \"최대 크기\",\n html: \"HTML\",\n columns: \"열\",\n cells: \"셀\",\n isAllRowRequired: \"모두 필수 행입니까\",\n horizontalScroll: \"가로 스크롤바\",\n cellType: \"셀 유형\",\n columnsLocation: \"열 위치\",\n columnColCount: \"열 개수\",\n columnMinWidth: \"열 최소 너비\",\n rowCount: \"행 수\",\n minRowCount: \"최소 행 개수\",\n maxRowCount: \"최대 행 개수\",\n keyName: \"keyName\",\n keyDuplicationError: \"주요 복제 에러\",\n confirmDelete: \"삭제 확인\",\n confirmDeleteText: \"텍스트 삭제 확인\",\n addRowLocation: \"행 위치 추가\",\n addRowText: \"행 텍스트 추가\",\n removeRowText: \"행 텍스트 제거\",\n items: \"항목\",\n itemSize: \"항목 크기\",\n colCount: \"열 개수\",\n templateTitle: \"템플릿 이름\",\n templateDescription: \"템플릿 설명\",\n allowAddPanel: \"패널 추가 허용\",\n allowRemovePanel: \"패널 제거 허용\",\n panelCount: \"패널 개수\",\n minPanelCount: \"최소 패널 개수\",\n maxPanelCount: \"최대 패널 개수\",\n panelsState: \"panelsState\",\n panelAddText: \"패널 텍스트 추가\",\n panelRemoveText: \"패널 텍스트 제거\",\n panelPrevText: \"이전 패널 텍스트\",\n panelNextText: \"다음 패널 텍스트\",\n showQuestionNumbers: \"질문 개수 보기\",\n showRangeInProgress: \"진행중인 범위 보기\",\n renderMode: \"renderMode\",\n templateTitleLocation: \"템플릿 이름 위치\",\n rateValues: \"길이값\",\n rateMin: \"최소 길이\",\n rateMax: \"최대 길이\",\n rateStep: \"rateStep\",\n minRateDescription: \"최소 설명 길이\",\n maxRateDescription: \"최대 설명 길이\",\n inputType: \"입력 유형\",\n size: \"크기\",\n locale: \"로컬\",\n focusFirstQuestionAutomatic: \"첫 질문 자동 초점\",\n completedHtml: \"완료된 HTML\",\n completedBeforeHtml: \"완료된 이전 HTML\",\n loadingHtml: \"HTML 로드\",\n triggers: \"트리거\",\n cookieName: \"쿠키 이름\",\n sendResultOnPageNext: \"현 페이지로 결과 전송\",\n showNavigationButtons: \"탐색 버튼 보기\",\n showPrevButton: \"뒤로가기 버튼 보기\",\n showPageTitles: \"페이지 제목 보기\",\n showCompletedPage: \"완료 페이지 보기\",\n showPageNumbers: \"페이지 수 보기\",\n questionErrorLocation: \"질문 오류 위치\",\n showProgressBar: \"진행 상태바 보기\",\n mode: \"모드\",\n goNextPageAutomatic: \"다음 페이지로 자동으로 넘어가기\",\n checkErrorsMode: \"오류 모드 확인\",\n clearInvisibleValues: \"보이지 않는 변수 제거\",\n startSurveyText: \"설문 테스트 시작\",\n pagePrevText: \"이전 텍스트 페이지\",\n pageNextText: \"다음 텍스트 페이지\",\n completeText: \"완료 텍스트\",\n requiredText: \"필수 텍스트\",\n questionStartIndex: \"질문 시작 색인\",\n questionTitleTemplate: \"질문 제목 템플릿\",\n firstPageIsStarted: \"첫 페이지에서 시작\",\n isSinglePage: \"단일 페이지\",\n maxTimeToFinishPage: \"페이지 종료 최대 시간\",\n showTimerPanel: \"타이머 패널 보기\",\n showTimerPanelMode: \"타이머 패널 모드 보기\",\n text: \"텍스트\",\n minValue: \"최소값\",\n maxValue: \"최대값\",\n minLength: \"최소 길이\",\n maxLength: \"최대 길이\",\n allowDigits: \"숫자 허용\",\n minCount: \"최소 개수\",\n maxCount: \"최대 개수\",\n regex: \"정규 표현식\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"ko\"] = koreanStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/malay.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/malay.ts ***!\n \\***********************************/\n/*! exports provided: msStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"msStrings\", function() { return msStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar msStrings = {\n survey: {\n edit: \"Edit\",\n externalHelpLink: \"Tonton dan belajar cara mencipta tinjauan\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Sila letakkan soalan di sini daripada Kotak Alat\",\n addLogicItem: \"Cipta peraturan untuk menyesuaikan aliran tinjauan.\",\n copy: \"Salin\",\n duplicate: \"Pendua\",\n addToToolbox: \"Tambahkan kepada kotak alat\",\n deletePanel: \"Padamkan Panel\",\n deleteQuestion: \"Padamkan Soalan\",\n convertTo: \"Tukar kepada\",\n drag: \"Seret unsur\"\n },\n qt: {\n default: \"Lalai\",\n checkbox: \"Kotak semak\",\n comment: \"Komen\",\n imagepicker: \"Pemilih imej\",\n ranking: \"Kedudukan\",\n image: \"Imej\",\n dropdown: \"Juntai bawah\",\n file: \"Fail\",\n html: \"HTML\",\n matrix: \"Matriks (pilihan tunggal)\",\n matrixdropdown: \"Matriks (pilihan berbilang)\",\n matrixdynamic: \"Matriks (baris dinamik)\",\n multipletext: \"Teks Berbilang\",\n panel: \"Panel\",\n paneldynamic: \"Panel (panel dinamik)\",\n radiogroup: \"Kumpulan radio\",\n rating: \"Penarafan\",\n text: \"Input Tunggal\",\n boolean: \"Boolean\",\n expression: \"Ekspresi (baca sahaja)\",\n signaturepad: \"Pad tandatangan\",\n flowpanel: \"Panel Aliran\"\n },\n ed: {\n defaultLocale: \"Lalai ({0})\",\n survey: \"Tinjauan\",\n settings: \"Tetapan Tinjauan\",\n settingsTooltip: \"Buka tetapan tinjauan\",\n showPanel: \"Tunjukkan Panel\",\n hidePanel: \"Sembunyikan Panel\",\n addNewPage: \"Tambahkan Halaman Baharu\",\n moveRight: \"Tatal ke Kanan\",\n moveLeft: \"Tatal ke Kiri\",\n deletePage: \"Padamkan Halaman\",\n editPage: \"Edit Halaman\",\n edit: \"Edit\",\n newPageName: \"halaman\",\n newQuestionName: \"soalan\",\n newPanelName: \"panel\",\n newTextItemName: \"teks\",\n testSurvey: \"Uji Tinjauan\",\n testSurveyAgain: \"Uji Tinjauan Semula\",\n testSurveyWidth: \"Lebar tinjauan: \",\n navigateToMsg: \"Anda perlu navigasi ke:\",\n logic: \"Logik Tinjauan\",\n embedSurvey: \"Benamkan Tinjauan\",\n translation: \"Terjemahan\",\n saveSurvey: \"Simpan Tinjauan\",\n saveSurveyTooltip: \"Simpan Tinjauan\",\n designer: \"Pereka Bentuk Tinjauan\",\n jsonEditor: \"Editor JSON\",\n undo: \"Buat Asal\",\n redo: \"Buat Semula\",\n undoTooltip: \"Buat asal perubahan terakhir\",\n redoTooltip: \"Buat semula perubahan\",\n copy: \"Salin\",\n cut: \"Potong\",\n paste: \"Tampal\",\n copyTooltip: \"Salin pilihan kepada papan klip\",\n cutTooltip: \"Potong pilihan kepada papan klip\",\n pasteTooltip: \"Tampal daripada papan klip\",\n options: \"Pilihan\",\n generateValidJSON: \"Jana JSON yang Sah\",\n generateReadableJSON: \"Jana JSON yang Boleh Dibaca\",\n toolbox: \"Kotak Alat\",\n \"property-grid\": \"Ciri\",\n toolboxGeneralCategory: \"Umum\",\n correctJSON: \"Pilih JSON yang betul.\",\n surveyResults: \"Keputusan Tinjauan: \",\n surveyResultsTable: \"Sebagai Jadual\",\n surveyResultsJson: \"Sebagai JSON\",\n resultsTitle: \"Tajuk Soalan\",\n resultsName: \"Nama Soalan\",\n resultsValue: \"Nilai Jawapan\",\n resultsDisplayValue: \"Nilai Paparan\",\n modified: \"Diubah suai\",\n saving: \"Menyimpan\",\n saved: \"Disimpan\",\n propertyEditorError: \"Ralat:\",\n saveError: \"Ralat! Kandungan editor tidak disimpan.\",\n translationAddLanguage: \"Pilihan bahasa untuk diterjemah\",\n translationShowAllStrings: \"Tunjukkan semua rentetan\",\n translationShowAllPages: \"Tunjukkan semua halaman\",\n translationNoStrings: \"Tiada rentetan untuk diterjemah. Sila ubah penapis.\",\n translationExportToSCVButton: \"Eksport kepada CSV\",\n translationImportFromSCVButton: \"Import daripada CSV\",\n translationMergeLocaleWithDefault: \"Gabung {0} dengan tempatan lalai\",\n bold: \"Tebal\",\n italic: \"Condong\",\n underline: \"Garis bawah\",\n fpAddQuestion: \"Tambahkan soalan...\",\n selectPage: \"Pilih halaman...\",\n chooseElement: \"Pilih elemen...\",\n lg: {\n addNewItem: \"\",\n page_visibilityName: \"Kebolehlihatan halaman\",\n panel_visibilityName: \"Kebolehlihatan panel\",\n panel_enableName: \"Dayakan/Lumpuhkan panel\",\n question_visibilityName: \"Kebolehlihatan soalan\",\n question_enableName: \"Dayakan/Lumpuhkan soalan\",\n question_requireName: \"Pilihan soalan diperlukan\",\n trigger_completeName: \"Lengkapkan tinjauan\",\n trigger_setvalueName: \"Tetapkan nilai soalan\",\n trigger_copyvalueName: \"Salin nilai soalan\",\n trigger_skipName: \"Langkau kepada soalan\",\n trigger_runExpressionName: \"Jalankan ekspresi tersuai\",\n completedHtmlOnConditionName: \"Teks 'Halaman terima kasih' tersuai\",\n page_visibilityDescription: \"Jadikan halaman boleh dilihat apabila ekspresi logik mengembalikan nilai benar. Jika tidak, biarkan tersembunyi.\",\n panel_visibilityDescription: \"Jadikan panel boleh dilihat apabila ekspresi logik mengembalikan nilai benar. Jika tidak, biarkan tersembunyi.\",\n panel_enableDescription: \"Jadikan panel dan semua elemen dalamnya didayakan apabila ekspresi logik mengembalikan nilai benar. Jika tidak, biarkan lumpuh.\",\n question_visibilityDescription: \"Jadikan soalan boleh dilihat apabila ekspresi logik mengembalikan nilai benar. Jika tidak, biarkan tersembunyi.\",\n question_enableDescription: \"Jadikan soalan didayakan apabila ekspresi logik mengembalikan nilai benar. Jika tidak, biarkan lumpuh.\",\n question_requireDescription: \"Soalan diperlukan apabila ekspresi logik mengembalikan nilai benar.\",\n trigger_completeDescription: \"Apabila ekspresi logik mengembalikan nilai benar, maka tinjauan akan lengkap dan pengguna akhir akan melihat 'Halaman terima kasih'.\",\n trigger_setvalueDescription: \"Apabila nilai soalan, yang digunakan dalam ekspresi logik, berubah dan ekspresi logik mengembalikan nilai benar, maka nilai ditetapkan kepada soalan yang dipilih.\",\n trigger_copyvalueDescription: \"Apabila nilai soalan, yang digunakan dalam ekspresi logik, berubah dan ekspresi logik mengembalikan nilai benar, maka nilai salah satu soalan yang dipilih akan disalin kepada satu lagi soalan yang dipilih.\",\n trigger_skipDescription: \"Apabila ekspresi logik mengembalikan nilai benar, maka tinjauan melangkau kepada / fokus pada soalan yang dipilih.\",\n trigger_runExpressionDescription: \"Apabila ekspresi mengembalikan nilai benar, maka ekspresi tersuai akan dilaksanakan. Anda boleh menetapkan keputusan ekspresi ini kepada soalan yang dipilih secara pilihan\",\n completedHtmlOnConditionDescription: \"Apabila ekspresi logik mengembalikan nilai benar, maka teks lalai untuk 'Halaman terima kasih' berubah kepada teks yang diberikan.\",\n itemExpressionText: \"Apabila ekspresi: '{0}' mengembalikan nilai benar:\",\n page_visibilityText: \"Jadikan halaman {0} boleh dilihat\",\n panel_visibilityText: \"Jadikan panel {0} boleh dilihat\",\n panel_enableText: \"Jadikan panel {0} didayakan\",\n question_visibilityText: \"Jadikan soalan {0} boleh dilihat\",\n question_enableText: \"Jadikan soalan {0} didayakan\",\n question_requireText: \"Jadikan soalan {0} diperlukan\",\n trigger_completeText: \"Tinjauan dilengkapkan\",\n trigger_setvalueText: \"Tetapkan kepada soalan: {0} nilai {1}\",\n trigger_copyvalueText: \"Salin kepada soalan: {0} nilai daripada soalan {1}\",\n trigger_skipText: \"Tinjauan melangkau ke soalan {0}\",\n trigger_runExpressionText1: \"Jalankan ekspresi: '{0}'\",\n trigger_runExpressionText2: \" dan tetapkan keputusannya kepada soalan: {0}\",\n completedHtmlOnConditionText: \"Tunjukkan teks tersuai untuk 'Halaman terima kasih'.\",\n conditions: \"Syarat\",\n actions: \"Tindakan\",\n expressionEditorTitle: \"Takrifkan syarat\",\n actionsEditorTitle: \"Takrifkan tindakan\",\n deleteAction: \"Padamkan tindakan\",\n addNewAction: \"Tambahkan tindakan baharu\",\n selectedActionCaption: \"Pilih tindakan untuk ditambahkan...\",\n expressionInvalid: \"Ekspresi logik kosong atau tidak sah. Sila betulkannya.\",\n noActionError: \"Sila tambahkan sekurang-kurangnya satu tindakan.\",\n actionInvalid: \"Sila baiki masalah dalam tindakan anda.\",\n expressionSetup: \"\",\n actionsSetup: \"\"\n }\n },\n pe: {\n apply: \"Guna\",\n ok: \"OK\",\n save: \"Simpan\",\n saveTooltip: \"Simpan\",\n cancel: \"Batal\",\n reset: \"Tetap Semula\",\n refresh: \"Segar semula\",\n delete: \"Padam\",\n add: \"Tambahkan\",\n addNew: \"Tambah Baharu\",\n addItem: \"Klik untuk menambahkan item...\",\n addOther: \"Lain-lain\",\n addSelectAll: \"Pilih Semua\",\n addNone: \"Tiada\",\n removeAll: \"Alih Keluar Semua\",\n edit: \"Edit\",\n view: \"Lihat\",\n back: \"Kembali tanpa menyimpan\",\n backTooltip: \"Kembali tanpa menyimpan\",\n saveAndBack: \"Simpan dan kembali\",\n saveAndBackTooltip: \"Simpan dan kembali\",\n editChoices: \"Edit Pilihan\",\n showChoices: \"Tunjukkan Pilihan\",\n move: \"Alih\",\n empty: \"\",\n fastEntry: \"Entri Pantas\",\n formEntry: \"Entri Borang\",\n testService: \"Uji perkhidmatan\",\n itemSelectorEmpty: \"Sila pilih elemen\",\n conditionActionEmpty: \"Sila pilih tindakan\",\n conditionSelectQuestion: \"Pilih soalan...\",\n conditionSelectPage: \"Pilih halaman...\",\n conditionSelectPanel: \"Pilih panel...\",\n conditionValueQuestionTitle: \"Sila masukkan/pilih nilai\",\n expressionHelp: \"Anda boleh gunakan kurungan kerinting untuk mengakses nilai soalan: {soalan1} + {soalan2}, ({harga}*{kuantiti}) * (100 - {diskaun}). Anda boleh menggunakan fungsi seperti: iif(), today(), age(), min(), max(), count(), avg() dan lain-lain.\",\n aceEditorHelp: \"Tekan ctrl+space untuk mendapatkan petunjuk lengkapan ekspresi\",\n aceEditorRowTitle: \"Baris semasa\",\n aceEditorPanelTitle: \"Panel semasa\",\n showMore: \"Untuk butiran lanjut, sila semak dokumentasi\",\n assistantTitle: \"Soalan tersedia:\",\n cellsEmptyRowsColumns: \"Terdapat sekurang-kurangnya satu lajur atau baris\",\n propertyIsEmpty: \"Sila masukkan nilai\",\n propertyIsNoUnique: \"Sila masukkan nilai unik\",\n propertyNameIsNotUnique: \"Sila masukkan nama unik\",\n listIsEmpty: \"Tambahkan item baharu\",\n expressionIsEmpty: \"Ekspresi kosong\",\n value: \"Nilai\",\n text: \"Teks\",\n rowid: \"ID Baris\",\n imageLink: \"Pautan Imej\",\n columnEdit: \"Edit lajur: {0}\",\n itemEdit: \"Edit item: {0}\",\n itemView: \"Lihat item: {0}\",\n url: \"URL\",\n path: \"Laluan\",\n valueName: \"Nama nilai\",\n titleName: \"Nama tajuk\",\n allowEmptyResponse: \"Benarkan respons kosong\",\n titlePlaceholder: \"Tajuk input di sini\",\n surveyTitlePlaceholder: \"Tajuk tinjauan input di sini\",\n pageTitlePlaceholder: \"Tajuk halaman input di sini\",\n descriptionPlaceholder: \"Masukkan perihalan\",\n surveyDescriptionPlaceholder: \"Masukkan perihalan tinjauan\",\n pageDescriptionPlaceholder: \"Masukkan perihalan halaman\",\n showOtherItem: \"Ada item lain\",\n otherText: \"Teks item lain\",\n showNoneItem: \"Tiada item\",\n noneText: \"Tiada teks item\",\n hasSelectAll: \"Telah pilih semua item\",\n selectAllText: \"Pilih semua teks item\",\n choicesMin: \"Nilai minimum untuk item auto dijana\",\n choicesMax: \"Nilai maksimum untuk item auto dijana\",\n choicesStep: \"Perbezaan antara item auto dijana\",\n name: \"Nama\",\n title: \"Tajuk\",\n cellType: \"Jenis sel\",\n colCount: \"Kiraan lajur\",\n choicesOrder: \"Pilih susunan pilihan\",\n visible: \"Boleh dilihat?\",\n isRequired: \"Diperlukan?\",\n isAllRowRequired: \"Perlukan jawapan untuk semua baris\",\n requiredErrorText: \"Teks ralat diperlukan\",\n startWithNewLine: \"Mulakan dengan baris baharu?\",\n rows: \"Kiraan baris\",\n cols: \"Kiraan lajur\",\n placeholder: \"Ruang letak input\",\n showPreview: \"Tunjukkan kawasan pratonton\",\n storeDataAsText: \"Simpan kandungan fail dalam keputusan JSON sebagai teks\",\n maxSize: \"Maksimum saiz fail dalam bait\",\n imageHeight: \"Tinggi imej\",\n imageWidth: \"Lebar imej\",\n rowCount: \"Kiraan baris\",\n columnLayout: \"Tataletak lajur\",\n addRowLocation: \"Tambahkan lokasi butang baris\",\n addRowText: \"Tambahkan teks butang baris\",\n removeRowText: \"Alih keluar teks butang baris\",\n rateMin: \"Kadar minimum\",\n rateMax: \"Kadar maksimum\",\n rateStep: \"Langkah kadar\",\n minRateDescription: \"Perihalan kadar minimum\",\n maxRateDescription: \"Perihalan kadar maksimum\",\n inputType: \"Jenis input\",\n optionsCaption: \"Kapsyen pilihan\",\n showOptionsCaption: \"Tunjukkan kapsyen pilihan\",\n defaultValue: \"Nilai lalai\",\n cellsDefaultRow: \"Teks sel lalai\",\n surveyEditorTitle: \"Edit tetapan tinjauan\",\n qEditorTitle: \"Edit: {0}\",\n maxLength: \"Panjang maksimum\",\n buildExpression: \"Bina\",\n editExpression: \"Edit\",\n and: \"Dan\",\n or: \"Atau\",\n remove: \"Alih keluar\",\n addCondition: \"Tambahkan syarat\",\n showTitle: \"Tunjukkan/sembunyikan tajuk\",\n expandCollapseTitle: \"Kembangkan/runtuhkan tajuk\",\n locale: \"Bahasa lalai\",\n simulator: \"Pilih peranti\",\n landscapeOrientation: \"Landskap\",\n mode: \"Mod (edit/baca sahaja)\",\n clearInvisibleValues: \"Kosongkan nilai tersembunyi\",\n cookieName: \"Nama kuki (untuk melumpuhkan perlaksanaan tinjauan dua kali secara setempat)\",\n sendResultOnPageNext: \"Hantar keputusan tinjauan pada halaman seterusnya\",\n storeOthersAsComment: \"Simpan nilai 'lain-lain' dalam medan berasingan\",\n showPageTitles: \"Tunjukkan tajuk halaman\",\n showPageNumbers: \"Tunjukkan nombor halaman\",\n pagePrevText: \"Teks butang halaman sebelumnya\",\n pageNextText: \"Teks butang halaman seterusnya\",\n completeText: \"Teks butang lengkapkan\",\n previewText: \"Teks butang pratonton\",\n editText: \"Edit teks butang\",\n startSurveyText: \"Teks butang mulakan\",\n showNavigationButtons: \"Tunjukkan butang navigasi (navigasi lalai)\",\n showPrevButton: \"Tunjukkan butang sebelumnya (pengguna boleh kembali ke halaman seterusnya)\",\n firstPageIsStarted: \"Halaman pertama dalam tinjauan ialah halaman permulaan.\",\n showCompletedPage: \"Tunjukkan halaman lengkap pada hujung (HTML dilengkapkan)\",\n goNextPageAutomatic: \"Selepas menjawab semua soalan, pergi ke halaman seterusnya secara automatik\",\n showProgressBar: \"Tunjukkan bar perkembangan\",\n questionTitleLocation: \"Lokasi tajuk soalan\",\n requiredText: \"Soalan memerlukan simbol\",\n questionStartIndex: \"Indeks mula soalan (1, 2 atau 'A', 'a')\",\n showQuestionNumbers: \"Tunjukkan nombor soalan\",\n questionTitleTemplate: \"Templat tajuk soalan, lalai ialah: '{tidak}. {perlukan} {tajuk}'\",\n questionErrorLocation: \"Lokasi ralat soalan\",\n focusFirstQuestionAutomatic: \"Fokus soalan pertama pada perubahan halaman\",\n questionsOrder: \"Susunan elemen pada halaman\",\n maxTimeToFinish: \"Masa maksimum untuk menyelesaikan tinjauan\",\n maxTimeToFinishPage: \"Masa maksimum untuk menyelesaikan halaman dalam tinjauan\",\n showTimerPanel: \"Tunjukkan panel pemasa\",\n showTimerPanelMode: \"Tunjukkan mod panel pemasa\",\n renderMode: \"Mod penyampaian\",\n allowAddPanel: \"Benarkan menambahkan panel\",\n allowRemovePanel: \"Benarkan alih keluar panel\",\n panelAddText: \"Menambahkan teks panel\",\n panelRemoveText: \"Mengalih keluar teks panel\",\n isSinglePage: \"Tunjukkan semua elemen pada satu halaman\",\n html: \"HTML\",\n expression: \"Ekspresi\",\n minValue: \"Nilai minimum\",\n maxValue: \"Nilai maksimum\",\n minLength: \"Panjang minimum\",\n allowDigits: \"Benarkan digit\",\n minCount: \"Bilangan minimum\",\n maxCount: \"Bilangan maksimum\",\n regex: \"Ekspresi biasa\",\n totalText: \"Jumlah teks\",\n totalType: \"Jumlah jenis\",\n totalExpression: \"Jumlah ekspresi\",\n totalDisplayStyle: \"Jumlah gaya paparan\",\n totalCurrency: \"Jumlah mata wang\",\n totalFormat: \"Jumlah format\",\n logoPosition: \"Kedudukan logo\",\n addLogo: \"Tambahkan logo...\",\n changeLogo: \"Ubah logo...\",\n logoPositions: {\n none: \"Alih keluar logo\",\n left: \"Kiri\",\n right: \"Kanan\",\n top: \"Di atas\",\n bottom: \"Di bawah\"\n },\n tabs: {\n general: \"Umum\",\n fileOptions: \"Pilihan\",\n html: \"Editor HTML\",\n columns: \"Lajur\",\n rows: \"Baris\",\n choices: \"Pilihan\",\n items: \"Item\",\n visibleIf: \"Boleh Dilihat Jika\",\n enableIf: \"Dayakan Jika\",\n requiredIf: \"Diperlukan Jika\",\n rateValues: \"Nilai Kadar\",\n choicesByUrl: \"Pilihan daripada Web\",\n matrixChoices: \"Pilihan Lalai\",\n multipleTextItems: \"Input Teks\",\n numbering: \"Nombor\",\n validators: \"Pengesah\",\n navigation: \"Navigasi\",\n question: \"Soalan\",\n pages: \"Halaman\",\n completedHtml: \"HTML Dilengkapkan\",\n completedHtmlOnCondition: \"HTML Dilengkapkan dengan Syarat\",\n loadingHtml: \"Memuatkan HTML\",\n timer: \"Pemasa/Kuiz\",\n calculatedValues: \"Nilai Dikira\",\n triggers: \"Pencetus\",\n templateTitle: \"Tajuk templat\",\n totals: \"Jumlah\",\n logic: \"Logik\",\n layout: \"Tataletak\",\n data: \"Data\",\n validation: \"Pengesahan\",\n cells: \"Sel\",\n showOnCompleted: \"Tunjukkan pada Dilengkapkan\",\n logo: \"Logo dalam Tajuk Tinjauan\",\n slider: \"Penggelongsor\",\n others: \"Lain-lain\"\n },\n editProperty: \"Edit ciri '{0}'\",\n items: \"[ Item: {0} ]\",\n enterNewValue: \"Sila masukkan nilai.\",\n noquestions: \"Tiada soalan lain dalam tinjauan.\",\n createtrigger: \"Sila cipta pencetus\",\n titleKeyboardAdornerTip: \"Tekan butang enter untuk mengedit\",\n keyboardAdornerTip: \"Tekan butang enter untuk mengedit item, tekan butang padam untuk memadamkan item, tekan butang alt dan anak panah ke atas atau ke bawah untuk menggerakkan item\",\n keyboardMoveItemsTip: \"Tekan butang alt dan anak panah ke atas atau ke bawah untuk menggerakkan item\",\n triggerOn: \"Hidup \",\n triggerMakePagesVisible: \"Jadikan halaman boleh dilihat:\",\n triggerMakeQuestionsVisible: \"Buat elemen boleh dilihat:\",\n triggerCompleteText: \"Lengkapkan tinjauan jika berjaya.\",\n triggerNotSet: \"Pencetus tidak ditetapkan\",\n triggerRunIf: \"Jalankan jika\",\n triggerSetToName: \"Ubah nilai: \",\n triggerFromName: \"Salin nilai daripada: \",\n triggerRunExpression: \"Jalankan Ekspresi ini:\",\n triggerSetValue: \"kepada: \",\n triggerGotoName: \"Pergi kepada soalan:\",\n triggerIsVariable: \"Jangan letakkan pemboleh ubah dalam keputusan tinjauan.\",\n triggerRunExpressionEmpty: \"Sila masukkan ekspresi yang sah\",\n noFile: \"Tiada fail dipilih\"\n },\n pv: {\n true: \"benar\",\n false: \"palsu\",\n inherit: \"warisi\",\n show: \"tunjukkan\",\n hide: \"sembunyikan\",\n default: \"lalai\",\n initial: \"awal\",\n random: \"rawak\",\n collapsed: \"kuncup\",\n expanded: \"kembang\",\n none: \"tiada\",\n asc: \"tertib menaik\",\n desc: \"menurun\",\n indeterminate: \"tidak tentu\",\n decimal: \"perpuluhan\",\n currency: \"mata wang\",\n percent: \"peratus\",\n firstExpanded: \"Pertama dikembangkan\",\n off: \"mati\",\n onPanel: \"Pada panel\",\n onSurvey: \"Pada tinjauan\",\n list: \"senarai\",\n progressTop: \"Perkembangan atas\",\n progressBottom: \"Perkembangan bawah\",\n progressTopBottom: \"Perkembangan atas bawah\",\n horizontal: \"mendatar\",\n vertical: \"menegak\",\n top: \"atas\",\n bottom: \"bawah\",\n topBottom: \"atas dan bawah\",\n both: \"kedua-duanya\",\n left: \"baki\",\n color: \"warna\",\n date: \"tarikh\",\n datetime: \"Tarikh masa\",\n \"datetime-local\": \"Tarikh masa-tempatan\",\n email: \"e-mel\",\n month: \"bulan\",\n number: \"nombor\",\n password: \"kata laluan\",\n range: \"julat\",\n tel: \"tel\",\n text: \"teks\",\n time: \"masa\",\n url: \"URL\",\n week: \"minggu\",\n hidden: \"tersembunyi\",\n on: \"pada\",\n onPage: \"Pada halaman\",\n edit: \"edit\",\n display: \"paparan\",\n onComplete: \"Pada selesai\",\n onHidden: \"Pada tersembunyi\",\n all: \"semua\",\n page: \"halaman\",\n survey: \"tinjauan\",\n onNextPage: \"Pada halaman berikutnya\",\n onValueChanged: \"Pada nilai berubah\",\n singlePage: \"halaman tunggal\",\n standard: \"standard\",\n questionPerPage: \"soalan bagi setiap halaman\",\n noPreview: \"tiada pratonton\",\n showAllQuestions: \"tunjukkan pratonton dengan semua soalan\",\n showAnsweredQuestions: \"tunjukkan pratonton dengan soalan dijawab\",\n pages: \"halaman\",\n questions: \"soalan\",\n requiredQuestions: \"soalan diperlukan\",\n correctQuestions: \"soalan betul\",\n buttons: \"butang\",\n underInput: \"input di bawah\",\n underTitle: \"tajuk di bawah\"\n },\n op: {\n empty: \"kosong\",\n notempty: \"tidak kosong\",\n equal: \"sama dengan\",\n notequal: \"tidak sama dengan\",\n contains: \"mengandungi\",\n notcontains: \"tidak mengandungi\",\n anyof: \"sebarang\",\n allof: \"semua\",\n greater: \"lebih besar\",\n less: \"kurang\",\n greaterorequal: \"lebih besar atau sama dengan\",\n lessorequal: \"kurang atau sama dengan\",\n and: \"dan\",\n or: \"atau\"\n },\n ew: {\n angular: \"Guna versi Angular\",\n jquery: \"Guna versi jQuery\",\n knockout: \"Guna versi Knockout\",\n react: \"Guna versi React\",\n vue: \"Guna versi Vue\",\n bootstrap: \"Untuk kerangka kerja butstrap\",\n modern: \"Tema moden\",\n default: \"Tema lalai\",\n orange: \"Tema oren\",\n darkblue: \"Tema biru gelap\",\n darkrose: \"Tema mawar gelap\",\n stone: \"Tema batu\",\n winter: \"Tema musim sejuk\",\n winterstone: \"Tema batu-musim sejuk\",\n showOnPage: \"Tunjukkan tinjauan pada halaman\",\n showInWindow: \"Tunjukkan tinjauan pada tetingkap\",\n loadFromServer: \"Muatkan Tinjauan JSON daripada pelayan\",\n titleScript: \"Skrip dan gaya\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n ts: {\n selectPage: \"Pilih halaman untuk mengujinya:\",\n showInvisibleElements: \"Pilih elemen tersembunyi\"\n },\n validators: {\n answercountvalidator: \"kiraan jawapan\",\n emailvalidator: \"e-mel\",\n expressionvalidator: \"ekspresi\",\n numericvalidator: \"numerik\",\n regexvalidator: \"regex\",\n textvalidator: \"teks\"\n },\n triggers: {\n completetrigger: \"lengkapkan tinjauan\",\n setvaluetrigger: \"tetapkan nilai\",\n copyvaluetrigger: \"salin nilai\",\n skiptrigger: \"langkau kepada soalan\",\n runexpressiontrigger: \"jalankan ekspresi\",\n visibletrigger: \"ubah kebolehlihatan (tidak digunakan lagi)\"\n },\n p: {\n name: \"nama\",\n title: {\n name: \"tajuk\",\n title: \"Biarkan kosong, jika sama seperti 'Nama'\"\n },\n navigationButtonsVisibility: \"Kebolehlihatan butang navigasi\",\n questionsOrder: \"Susunan soalan\",\n maxTimeToFinish: \"Masa untuk selesai maksimum\",\n visible: \"Boleh dilihat\",\n visibleIf: \"Boleh dilihat jika\",\n questionTitleLocation: \"Lokasi tajuk soalan\",\n description: \"perihalan\",\n state: \"negeri\",\n isRequired: \"Diperlukan\",\n requiredIf: \"Diperlukan jika\",\n indent: \"inden\",\n requiredErrorText: \"Teks ralat diperlukan\",\n startWithNewLine: \"Mulakan dengan baris baharu\",\n innerIndent: \"Inden dalaman\",\n page: \"halaman\",\n width: \"lebar\",\n commentText: \"Teks komen\",\n valueName: \"Nama nilai\",\n enableIf: \"Dayakan jika\",\n defaultValue: \"Nilai lalai\",\n correctAnswer: \"Jawapan betul\",\n readOnly: \"Baca sahaja\",\n validators: \"Pengesah\",\n titleLocation: \"Lokasi tajuk\",\n hasComment: \"Ada komen\",\n showOtherItem: \"Ada lain\",\n choices: \"pilihan\",\n choicesOrder: \"Susunan pilihan\",\n choicesByUrl: \"Pilihan melalui URL\",\n otherText: \"Teks lain\",\n otherErrorText: \"Teks ralat lain\",\n storeOthersAsComment: \"Simpan lain sebagai komen\",\n label: \"label\",\n showTitle: \"Tunjukkan tajuk\",\n valueTrue: \"Nilai benar\",\n valueFalse: \"Nilai palsu\",\n cols: \"lajur\",\n rows: \"baris\",\n placeholder: \"Ruang letak\",\n optionsCaption: \"Kapsyen pilihan\",\n expression: \"ekspresi\",\n format: \"format\",\n displayStyle: \"Paparkan gaya\",\n currency: \"mata wang\",\n useGrouping: \"Guna perkumpulan\",\n showPreview: \"Tunjukkan pratonton\",\n allowMultiple: \"Benarkan berbilang\",\n imageHeight: \"Tinggi imej\",\n imageWidth: \"Lebar imej\",\n storeDataAsText: \"Simpan data sebagai teks\",\n maxSize: \"Saiz maks\",\n html: \"html\",\n columns: \"lajur\",\n cells: \"sel\",\n isAllRowRequired: \"Semua baris diperlukan\",\n horizontalScroll: \"Tatal mendatar\",\n cellType: \"Jenis sel\",\n columnsLayout: \"Tataletak lajur\",\n columnColCount: \"Lajur bilangan lajur\",\n columnMinWidth: \"Lebar min lajur\",\n rowCount: \"Bilangan baris\",\n minRowCount: \"Bilangan baris min\",\n maxRowCount: \"Bilangan baris maks\",\n keyName: \"Nama kunci\",\n keyDuplicationError: \"Ralat pendua kekunci\",\n confirmDelete: \"Sahkan padam\",\n confirmDeleteText: \"Sahkan padamkan teks\",\n addRowLocation: \"Tambah lokasi baris\",\n addRowText: \"Tambah teks baris\",\n removeRowText: \"Alih keluar teks baris\",\n items: \"item\",\n itemSize: \"Saiz item\",\n colCount: \"Bilangan lajur\",\n templateTitle: \"Tajuk templat\",\n templateDescription: \"Perihalan templat\",\n allowAddPanel: \"Benarkan tambahkan panel\",\n allowRemovePanel: \"Benarkan alih keluar panel\",\n panelCount: \"Kiraan panel\",\n minPanelCount: \"Bilangan panel min\",\n maxPanelCount: \"Bilangan panel maks\",\n panelsState: \"Keadaan panel\",\n panelAddText: \"Panel tambah teks\",\n panelRemoveText: \"Panel alih keluar teks\",\n panelPrevText: \"Panel teks sebelumnya\",\n panelNextText: \"Panel teks seterusnya\",\n showQuestionNumbers: \"Tunjukkan nombor soalan\",\n showRangeInProgress: \"Tunjukkan julat sedang berjalan\",\n renderMode: \"Mod penyampaian\",\n templateTitleLocation: \"Templat lokasi tajuk\",\n rateValues: \"Kadar nilai\",\n rateMin: \"Kadar min\",\n rateMax: \"Kadar maks\",\n rateStep: \"Kadar langkah\",\n minRateDescription: \"Perihalan kadar min\",\n maxRateDescription: \"Perihalan kadar maks\",\n inputType: \"Jenis input\",\n size: \"saiz\",\n locale: \"tempatan\",\n focusFirstQuestionAutomatic: \"Fokus soalan pertama secara automatik\",\n completedHtml: \"HTML Dilengkapkan\",\n completedBeforeHtml: \"Lengkapkan sebelum HTML\",\n loadingHtml: \"Memuatkan HTML\",\n triggers: \"pencetus\",\n cookieName: \"Nama kuki\",\n sendResultOnPageNext: \"Hantar keputusan pada halaman seterusnya\",\n showNavigationButtons: \"Tunjukkan butang navigasi\",\n showPrevButton: \"Tunjukkan butang sebelumnya\",\n showPageTitles: \"Tunjukkan tajuk halaman\",\n showCompletedPage: \"Tunjukkan halaman dilengkapkan\",\n showPageNumbers: \"Tunjukkan nombor halaman\",\n questionErrorLocation: \"Soalan lokasi ralat\",\n showProgressBar: \"Tunjukkan bar perkembangan\",\n mode: \"mod\",\n goNextPageAutomatic: \"Pergi halaman seterusnya automatik\",\n checkErrorsMode: \"Semak mod ralat\",\n clearInvisibleValues: \"Kosongkan nilai tersembunyi\",\n startSurveyText: \"Mulakan teks tinjauan\",\n pagePrevText: \"Halaman teks sebelumnya\",\n pageNextText: \"Halaman teks seterusnya\",\n completeText: \"Lengkapkan teks\",\n requiredText: \"Teks diperlukan\",\n questionStartIndex: \"Indeks mula soalan\",\n questionTitleTemplate: \"Templat tajuk soalan\",\n firstPageIsStarted: \"Halaman pertama dimulakan\",\n isSinglePage: \"Ialah halaman tunggal\",\n maxTimeToFinishPage: \"Masa untuk halaman selesai maks\",\n showTimerPanel: \"Tunjukkan panel pemasa\",\n showTimerPanelMode: \"Tunjukkan mod panel pemasa\",\n defaultPanelValue: \"Nilai panel lalai\",\n defaultRowValue: \"Nilai baris lalai\",\n showNoneItem: \"tiada\",\n noneText: \"Tiada teks\",\n text: \"teks\",\n multiSelect: \"Pilih berbilang\",\n showLabel: \"Tunjukkan label\",\n logo: \"logo\",\n logoWidth: \"Lebar logo\",\n logoHeight: \"Tinggi logo\",\n logoFit: \"Muat logo\",\n focusOnFirstError: \"Fokus pada ralat pertama\",\n completedHtmlOnCondition: \"HTML dilengkapkan dengan syarat\",\n pages: \"halaman\",\n calculatedValues: \"Nilai dikira\",\n navigateToUrl: \"Navigasi ke URL\",\n navigateToUrlOnCondition: \"Navigasi ke URL dengan syarat\",\n questionDescriptionLocation: \"Lokasi perihalan soalan\",\n progressBarType: \"Jenis bar perkembangan\",\n maxTextLength: \"Panjang teks maks\",\n maxOthersLength: \"Panjang lain maks\",\n textUpdateMode: \"Mod kemas kini teks\",\n autoGrowComment: \"Auto besarkan komen\",\n questionTitlePattern: \"Corak tajuk soalan\",\n questionsOnPageMode: \"Soalan pada mod halaman\",\n showPreviewBeforeComplete: \"Tunjukkan pratonton sebelum dilengkapkan\",\n widthMode: \"Mod lebar\",\n showNumber: \"Tunjukkan nombor\",\n navigationTitle: \"Tajuk navigasi\",\n navigationDescription: \"Perihalan navigasi\",\n useDisplayValuesInDynamicTexts: \"Guna nilai paparan dalam tajuk\",\n minWidth: \"Lebar min\",\n maxWidth: \"Lebar maks\",\n descriptionLocation: \"Lokasi perihalan\",\n hideNumber: \"Sembunyikan nombor\",\n defaultValueExpression: \"Ekspresi nilai lalai\",\n bindings: \"ikatan\",\n columnsVisibleIf: \"Lajur boleh dilihat jika\",\n rowsVisibleIf: \"Baris boleh dilihat jika\",\n showHeader: \"Tunjukkan pengepala\",\n detailPanelMode: \"Butiran mod panel\",\n rowTitleWidth: \"Lebar tajuk baris\",\n allowAddRows: \"Benarkan tambahkan baris\",\n allowRemoveRows: \"Benarkan alih keluar baris\",\n defaultValueFromLastRow: \"Nilai lalai daripada baris terakhir\",\n hideColumnsIfEmpty: \"Sembunyikan lajur jika kosong\",\n emptyRowsText: \"Kosongkan teks baris\",\n detailPanelShowOnAdding: \"Butiran panel tunjukkan pada penambahan\",\n allowRowsDragAndDrop: \"Benarkan seret dan lepas baris\",\n rowsOrder: \"Susunan baris\",\n hideIfRowsEmpty: \"Sembunyikan jika baris kosong\",\n maximumFractionDigits: \"Digit pecahan maks\",\n minimumFractionDigits: \"Digit pecahan minimum\",\n choicesFromQuestion: \"Pilihan daripada soalan\",\n choicesFromQuestionMode: \"Pilihan daripada mod soalan\",\n hideIfChoicesEmpty: \"Sembunyikan jika pilihan kosong\",\n choicesVisibleIf: \"Pilihan boleh dilihat jika\",\n choicesEnableIf: \"Pilihan didayakan jika\",\n otherPlaceHolder: \"Ruang letak lain\",\n maxSelectedChoices: \"Pilihan dipilih maks\",\n showClearButton: \"Tunjukkan butang kosongkan\",\n contentMode: \"Mod kandungan\",\n imageFit: \"Muat imej\",\n autocomplete: \"Auto lengkap\",\n min: \"min\",\n max: \"maks\",\n minValueExpression: \"Ekspresi nilai min\",\n maxValueExpression: \"Ekspresi nilai maks\",\n minErrorText: \"Teks ralat min\",\n maxErrorText: \"Teks ralat maks\",\n step: \"langkah\",\n dataList: \"Senarai data\",\n autoGrow: \"Auto besarkan\",\n multiLine: \"Berbilang baris\",\n allowImagesPreview: \"Benarkan pratonton imej\",\n acceptedTypes: \"Jenis diterima\",\n waitForUpload: \"Tunggu untuk muat naik\",\n needConfirmRemoveFile: \"Perlu sahkan alih keluar fail\",\n labelTrue: \"Label benar\",\n labelFalse: \"Label palsu\",\n height: \"tinggi\",\n allowClear: \"Benarkan kosongkan\",\n penColor: \"Warna pen\",\n backgroundColor: \"Warna latar belakang\",\n dataFormat: \"Format data\",\n defaultValueFromLastPanel: \"Nilai lalai daripada panel terakhir\",\n panelRemoveButtonLocation: \"Panel lokasi butang alih keluar\",\n showCaption: \"Tunjukkan kapsyen\",\n iconName: \"Nama ikon\",\n iconSize: \"Saiz ikon\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"ms\"] = msStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/mongolian.ts\":\n/*!***************************************!*\\\n !*** ./src/localization/mongolian.ts ***!\n \\***************************************/\n/*! exports provided: mnStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mnStrings\", function() { return mnStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n// Uncomment the line below if you create a custom dictionary\n\nvar mnStrings = {\n // survey templates\n survey: {\n edit: \"Засах\",\n externalHelpLink: \"Санал асуулга үүсгэх заавартай танилцах\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Хэрэглүүрээс асуулт нэмнэ үү\",\n addLogicItem: \"Санал асуулгын урсгалыг өөрчлөх дүрэм үүсгэнэ үү.\",\n copy: \"Хуулах\",\n duplicate: \"Хуулбарлах\",\n addToToolbox: \"Хэрэглүүрт нэмэх\",\n deletePanel: \"Панел устгах\",\n deleteQuestion: \"Асуулт устгах\",\n convertTo: \"Хувиргах\",\n drag: \"Чирэх\",\n license: \"PLEASE PURCHASE A DEVELOPER LICENSE TO BE ABLE TO USE SURVEY CREATOR IN YOUR APP\",\n },\n // Question types\n qt: {\n default: \"Нэг сонголттой\",\n checkbox: \"Олон сонголттой\",\n comment: \"Нээлттэй\",\n imagepicker: \"Зураг сонгох\",\n ranking: \"Дэс дараалалд оруулах\",\n image: \"Зураг\",\n dropdown: \"Сонголттой асуумж\",\n tagbox: \"Tag Box\",\n file: \"Файл\",\n html: \"HTML\",\n matrix: \"Нэг сонголттот матриц\",\n matrixdropdown: \"Олон сонголтот матриц\",\n matrixdynamic: \"Динамик матриц\",\n multipletext: \"Олон бичилт\",\n panel: \"Панел\",\n paneldynamic: \"Динамик панел\",\n radiogroup: \"Radiogroup\",\n rating: \"Үнэлэх\",\n text: \"Богино хариулттай \",\n boolean: \"Тийм/Үгүй\",\n expression: \"Илэрхийлэл (зөвхөн унших)\",\n signaturepad: \"Гарын үсэг\",\n buttongroup: \"Багц товч\",\n },\n // Strings in SurveyJS Creator\n ed: {\n defaultLocale: \"Үндсэн ({0})\",\n survey: \"Санал асуулга\",\n settings: \"Тохиргоо\",\n settingsTooltip: \"Тохиргоог нээх\",\n surveySettings: \"Санал асуулгын тохиргоо\",\n surveySettingsTooltip: \"Санал асуулгын тохиргоог нээх\",\n showPanel: \"Панел харуулах\",\n hidePanel: \"Панел нуух\",\n prevSelected: \"Өмнөхийг сонгох\",\n nextSelected: \"Дараагийнхыг сонгох\",\n surveyTypeName: \"Санал асуулга\",\n pageTypeName: \"Хуудас\",\n panelTypeName: \"Панел\",\n questionTypeName: \"Асуулт\",\n columnTypeName: \"Багана\",\n addNewPage: \"Шинэ хуудас нэмэх\",\n moveRight: \"Баруун тийш гүйлгэх\",\n moveLeft: \"Зүүн тийш гүйлгэх\",\n deletePage: \"Хуудас устгах\",\n editPage: \"Хуудас засварлах\",\n edit: \"Засах\",\n newPageName: \"Хуудас\",\n newQuestionName: \"Асуулт\",\n newPanelName: \"Панелийн нэр\",\n newTextItemName: \"Текст\",\n testSurvey: \"Урьдчилан харах\",\n defaultV2Theme: \"Үндсэн\",\n modernTheme: \"Орчийн үеийн\",\n defaultTheme: \"Үндсэн (legacy)\",\n testSurveyAgain: \"Санал асуулгыг дахин урьдчилан харах\",\n testSurveyWidth: \"Санал асуулгын өргөн: \",\n navigateToMsg: \"You had to navigate to\",\n logic: \"Логик\",\n embedSurvey: \"Санал асуулгыг оруулах\",\n translation: \"Орчуулга\",\n saveSurvey: \"Санал асуулга хадгалах\",\n saveSurveyTooltip: \"Санал асуулга хадгалах\",\n designer: \"Удирдлага\",\n jsonEditor: \"JSON засварлагч\",\n jsonHideErrors: \"Алдааг нуух\",\n jsonShowErrors: \"Алдааг харуулах\",\n undo: \"Буцаах\",\n redo: \"Дахих\",\n undoTooltip: \"Сүүлийн өөрчлөлтийг буцаах\",\n redoTooltip: \"Сүүлин өөрчлөлтийг дахих \",\n showMoreChoices: \"Дэлгэрэнгүй харуулах\",\n showLessChoices: \"Бага мэдээлэл харуулах\",\n copy: \"Хуулах\",\n cut: \"Таслах\",\n paste: \"Буулгах\",\n copyTooltip: \"Самбараас сонгогдсон хэсгийг хуулах\",\n cutTooltip: \"Самбараас сонгогдсон хэсгийг таслах\",\n pasteTooltip: \"Самбараас буулгах\",\n options: \"Тохиргоо\",\n generateValidJSON: \"Бодит JSON үүсгэх\",\n generateReadableJSON: \"Ойлгомжтой JSON үүсгэх\",\n toolbox: \"Хэрэглүүр\",\n \"property-grid\": \"Өмнөх\",\n propertyGridFilteredTextPlaceholder: \"Хайхын тулд бичнэ үү.....\",\n toolboxGeneralCategory: \"Ерөнхий\",\n toolboxChoiceCategory: \"Сонголттой асуултууд\",\n toolboxTextCategory: \"Хариулт бичих асуултууд\",\n toolboxContainersCategory: \"Сав\",\n toolboxMatrixCategory: \"Матрицан асуултууд\",\n toolboxMiscCategory: \"Бусад\",\n correctJSON: \"JSON засна уу.\",\n surveyResults: \"Санал асуулгын хариу\",\n surveyResultsTable: \"Санал асуулгын хариултыг хүснэгтээр харуулах\",\n surveyResultsJson: \"As JSON\",\n resultsTitle: \"Асуултын гарчиг\",\n resultsName: \"Асуултын нэр\",\n resultsValue: \"Хариултын утга\",\n resultsDisplayValue: \"Утга харуулах\",\n modified: \"Өөрчлөлт орсон\",\n saving: \"Хадгалж байна\",\n saved: \"Хадгалсан\",\n propertyEditorError: \"Алдаа\",\n saveError: \"Алдаа! Зассан агуулга хадгалагдаагүй байна.\",\n translationPropertyGridTitle: \"Хэлний тохиргоо\",\n translationLanguages: \"Хэл\",\n translationAddLanguage: \"Орчуулах хэлийг сонгоно уу\",\n translationShowAllStrings: \"Бүх текст\",\n translationShowUsedStringsOnly: \"Зөвхөн байгаа текстүүд\",\n translationShowAllPages: \"Бүх хуудас\",\n translationNoStrings: \"Орчуулах зүйл байхгүй. Шүүлтийг өөрчилнө үү.\",\n translationExportToSCVButton: \"CSV экспорт хийх\",\n translationImportFromSCVButton: \"CSV импорт хийх\",\n translationMergeLocaleWithDefault: \"{0}-г суурь хэлтэй нэгтгэх\",\n translationPlaceHolder: \"Орчуулга...\",\n bold: \"Тод\",\n italic: \"Налуу\",\n underline: \"Доогуур зураас\",\n addNewQuestion: \"Асуулт нэмэх\",\n selectPage: \"Хуудас сонгох...\",\n htmlPlaceHolder: \"HTML агуулга энд байрлана.\",\n panelPlaceHolder: \"Энд хэрэглүүрээс асуулт чирнэ үү.\",\n surveyPlaceHolder: \"Санал асуулга хоосон байна. Хэрэглүүрээс асуулт чирнэ үү эсвэл доорх товчийг дарна уу.\",\n addNewTypeQuestion: \"{0} нэмэх\",\n chooseLogoPlaceholder: \"[Лого]\",\n auto: \"автомат\",\n choices_Item: \"Хэсэг \",\n lg: {\n addNewItem: \"Шинэ дүрэм нэмэх\",\n empty_tab: \"Санал асуулгын урсгалыг өөрчлөх дүрэм үүсгэнэ үү.\",\n page_visibilityName: \"Хуудас харуулах (нуух)\",\n page_enableName: \"Хуудас идэвхжүүлэх (идэвхгүй болгох)\",\n panel_visibilityName: \"Панел (нуух) харуулах\",\n panel_enableName: \"Панел (идэвхгүй болгох) идэвхжүүлэх\",\n question_visibilityName: \"Асуулт харуулах (нуух)\",\n question_enableName: \"Асуулт идэвхжүүлэх (идэвхгүй болгох)\",\n question_requireName: \"Асуултыг заавал бөглөөөөх болгох\",\n column_visibilityName: \"Багана харуулах (нуух).\",\n column_enableName: \"Багана идэвхжүүлэх (идэвхгүй болгох).\",\n column_requireName: \"Баганыг заавал бөглөөөөх болгох\",\n trigger_completeName: \"Санал асуулга дуусгах\",\n trigger_setvalueName: \"Хариулт оруулах\",\n trigger_copyvalueName: \"Хариулт хуулах\",\n trigger_skipName: \"Асуулт руу алгасах\",\n trigger_runExpressionName: \"Илэрхийллийг ажиллуулах\",\n completedHtmlOnConditionName: '\"Санал асуулга амжилттай бөглөгдсөн\" хуудсын тэмдэглэгээг оруулах',\n page_visibilityDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд хуудсыг харуулах. Бусад үед нуух.\",\n panel_visibilityDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд панелийг харуулах. Бусад үед нуух.\",\n panel_enableDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд панел ба түүн доторх бүх элементийг идэвхжүүлэх. Бусад үед бүгдийг идэвхгүй байлгах.\",\n question_visibilityDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд асуултыг харуулах. Бусад үед нуух.\",\n question_enableDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд хуудсыг идэвхжүүлэх. Бусад үед идэвхгүй болгох.\",\n question_requireDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд асуулт нь заавал бөглөх болох.\",\n trigger_completeDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд санал асуулга амжилттай бөглөн хэрэглэгч 'Баярлалаа' хуудсыг харна.\",\n trigger_setvalueDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд сонгосон асуултын утгыг тохируулна.\",\n trigger_copyvalueDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд сонгосон асуултын утгыг өөр сонгосон асуултын хариулт болгон харуулна.\",\n trigger_skipDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд санал асуулга сонгосон асуултыг алгасна / харуулна.\",\n trigger_runExpressionDescription: \"Логик илэрхийлэл биелэгдсэн тохиолдолд хэрэглэгчийн илэрхийллийг ажиллуулна. Та энэ илэрхийллийн үр дүнг сонгосон асуултын хариулт болгоно.\",\n completedHtmlOnConditionDescription: \"Хэрэв логик илэрхийлэл биелэгдсэн тохиолдолд үндсэн 'Баярлалаа' хуудас зааж өгсөн хуудсаар солигдоно.\",\n itemExpressionText: \"Илэрхийлэл: '{0}' биелсэн бол\",\n itemEmptyExpressionText: \"Шинэ дүрэм\",\n page_visibilityText: \"Хуудсыг {0} харагддаг болгох\",\n panel_visibilityText: \"{0} панелийг харагддаг болгох\",\n panel_enableText: \"{0} панелийг идэвхжүүлэх\",\n question_visibilityText: \"{0} асуултыг харагддаг болгох\",\n question_enableText: \"{0} асуултыг идэвхжүүлэх\",\n question_requireText: \"{0} асуултыг заавал бөглөх болгох\",\n column_visibilityText: \"{0} баганын {1} асуултыг харагддаг болгох\",\n column_enableText: \"{0} баганын {1} асуултыг идэвхжүүлэх\",\n column_requireText: \"{0} баганын {1} асуултыг заавал бөглөх болгох\",\n trigger_completeText: \"Санал асуулга амжилттай бөглөсөн.\",\n trigger_setvalueText: \"{0} Асуултад оруулах утга: {1}\",\n trigger_copyvalueText: \"{0} Асуулт руу хуулах утга: {1}\",\n trigger_skipText: \"{0} Санал асуулгын асуулт руу үсрэх\",\n trigger_runExpressionText1: \"'{0}' илэрхийлэлг ажиллуулах: \",\n trigger_runExpressionText2: \" Түүний хариултыг асуултад оруулах: {0}\",\n completedHtmlOnConditionText: \"'Баярлалаа' хуудсанд тусгай текст харуулах.\",\n showAllQuestions: \"Бүх асуулт\",\n showAllActionTypes: \"Бүх үйлдлийн төрлүүд\",\n conditions: \"Нөхцөл(үүд)\",\n actions: \"Үйлдэл(үүд)\",\n expressionEditorTitle: \"Нөхцөл(үүд) тодорхойлох\",\n actionsEditorTitle: \"Үйлдэл(үүд) тодорхойлох\",\n deleteAction: \"Үйлдлийг устгах\",\n addNewAction: \"Үйлдэл нэмэх\",\n selectedActionCaption: \"Үйлдэл сонгох...\",\n expressionInvalid: \"Логик илэрхийлэл хоосон эсвэл алдаатай байна. Засна уу.\",\n noActionError: \"Ядаж нэг үйлдэл оруулна уу.\",\n actionInvalid: \"Үйлдэл(үүд)-ийнхээ асуудлыг шийднэ үү.\",\n uncompletedRule_title: \"Табыг орхих уу?\",\n uncompletedRule_text: \"Нэг эсвэл олон логик дүрэм дутуу бичигдсэн байна. Табыг хаавал, оруулсан засварууд арилна. Та табыг хаахдаа итгэлтэй байна уу?\",\n uncompletedRule_apply: \"Тийм\",\n uncompletedRule_cancel: \"Үгүй, дүрмийг үргэлжлүүлж бичиж дуусгах.\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n },\n // Property Editors\n pe: {\n apply: \"Хэрэгжүүл\",\n ok: \"OK\",\n save: \"Хадгалах\",\n clear: \"Цэвэрлэх\",\n saveTooltip: \"Хадгалах\",\n cancel: \"Болих\",\n set: \"Тааруулах\",\n reset: \"Шинээр тохируулах\",\n change: \"Солих\",\n refresh: \"Шинэчлэх\",\n close: \"Хаах\",\n delete: \"Устгах\",\n add: \"Нэмэх\",\n addNew: \"Нэмэх\",\n addItem: \"Хэсэг нэмэх бол дарах...\",\n removeItem: \"Хэсэг устгах бол дарах...\",\n dragItem: \"Хэсгийг чирэх\",\n addOther: \"Бусад\",\n addSelectAll: \"Бүгдийг сонгох\",\n addNone: \"Аль нь ч биш\",\n removeAll: \"Бүгдийг устгах\",\n edit: \"Засах\",\n back: \"Хадгалахгүйгээр буцах\",\n backTooltip: \"Хадгалахгүйгээр буцах\",\n saveAndBack: \"Хадгалаад буцах\",\n saveAndBackTooltip: \"Хадгалаад буцах\",\n doneEditing: \"Болсон\",\n editChoices: \"Сонголтуудыг засах\",\n showChoices: \"Сонголтуудыг харуулах\",\n move: \"Шилжүүлэх\",\n empty: \"<хоосон>\",\n emptyValue: \"Утга хоосон байна\",\n fastEntry: \"Гараар оруулах\",\n fastEntryNonUniqueError: \"'{0}' утга давтагдаж байна!\",\n fastEntryChoicesCountError: \"Хэсгийг {0}-оос {1} хүртэл хязгаарлах\",\n fastEntryPlaceholder: \"Та дараах форматын дагуу өгөгдлийг оруулж болно:\\nvalue1|text\\nvalue2\",\n formEntry: \"Маягт оруулах\",\n testService: \"Үйлчилгээг турших\",\n itemSelectorEmpty: \"Элемент сонгоно уу\",\n conditionActionEmpty: \"Үйлдэл сонгоно уу\",\n conditionSelectQuestion: \"Асуулт сонгох...\",\n conditionSelectPage: \"Хуудас сонгох...\",\n conditionSelectPanel: \"Панел сонгох...\",\n conditionValueQuestionTitle: \"Утга оруулах/сонгох\",\n expressionHelp: \"Гоё хаалт ашиглан хариулт харах: `{question1} + {question2}`. Мөн томъёо дараах болон бусад функцийг дэмждэг: `iif()`, `today()`, `age()`, `min()`, `max()`, `count()`, `avg()`\",\n aceEditorHelp: \"ctrl+space дарж илэрхийлэл биелэгдэх сануулга харах.\",\n aceEditorRowTitle: \"Тухайн мөр\",\n aceEditorPanelTitle: \"Тухайн панел\",\n showMore: \"Дэлгэрэнгүй мэдээллийг баримт бичгээс авна уу.\",\n assistantTitle: \"Боломжтой асуултууд\",\n cellsEmptyRowsColumns: \"Багадаа нэг багана эсвэл мөр байх ёстой\",\n showPreviewBeforeComplete: \"Санал асуулга явуулхаас өмнө хариултуудыг урьдчилж харах\",\n propertyIsEmpty: \"Утга оруулна уу\",\n propertyIsNoUnique: \"Дахин давтагдахгүй утга оруулна уу\",\n propertyNameIsNotUnique: \"Өөр нэр оруулна уу\",\n listIsEmpty: \"Одоогоор ямар ч зүйл ороогүй байна\",\n \"listIsEmpty@choices\": \"Одоогор ямар ч сонголт ороогүй байна\",\n \"addNew@choices\": \"Сонголт оруулах\",\n expressionIsEmpty: \"Томъёо хоосон байна\",\n value: \"Утга\",\n text: \"Текст\",\n rowid: \"Мөрний ID\",\n imageLink: \"Зураг эсвэл видео линк\",\n columnEdit: \"Багана засах: {0}\",\n itemEdit: \"Зүйл засах: {0}\",\n url: \"Үйлчилгээний линк\",\n path: \"Үйлчилгэний хүрээнд өгөгдөлд хүрэх зам\",\n valueName: \"Хариултыг дараагийн JSON талбарт хадгалах\",\n choicesbyurl: {\n valueName: \"Утгуудыг дарагийн JSON талбараас авах\",\n },\n titleName: \"Үзүүлэн текстүүдийг дараагийн JSON талбараас авах\",\n imageLinkName: \"Зургийн линкийг дараагийн JSON талбараас\",\n allowEmptyResponse: \"Хоосон хариулт зөвшөөрөх\",\n titlePlaceholder: \"Гарчиг\",\n surveyTitlePlaceholder: \"Санал асуулгын гарчиг\",\n pageTitlePlaceholder: \"Хуудас {num}\",\n descriptionPlaceholder: \"Тайлбар\",\n surveyDescriptionPlaceholder: \"Тайлбар\",\n pageDescriptionPlaceholder: \"Тайлбар\",\n showOtherItem: \"Өөр сонголт зөвшөөрөх\",\n otherText: \"Өөр сонголтын текст\",\n showNoneItem: \"None сонголтыг зөвшөөрөх\",\n noneText: \"None сонголтын текст\",\n showSelectAllItem: \"Бүгдийг сонгохыг зөвшөөрөх\",\n selectAllText: \"Бүгдийг сонгох\",\n choicesMin: \"Автоматаар үүсэх элементийн хамгийн бага утга\",\n choicesMax: \"Автоматаар үүсэх элементийн хамгийн их утга\",\n choicesStep: \"Автоматаар үүсэх элементийн алхам\",\n name: \"Нэр\",\n title: \"Гарчиг\",\n cellType: \"Нүдний төрөл\",\n colCount: \"Баганы тоо\",\n choicesOrder: \"Сонголтыг эрэмбэлэх дараалал\",\n visible: \"Харагдана\",\n isRequired: \"Заавал бөглөх\",\n isAllRowRequired: \"Бүх мөрөнд хариулт шаардах\",\n requiredErrorText: \"Заавал бөглөх талбарыг бөглөөгүй байна\",\n startWithNewLine: \"Асуултыг шинэ мөрөнд харуулах\",\n rows: \"Мөр\",\n cols: \"Багана\",\n placeholder: \"Оролтын жишээ утга\",\n showPreview: \"Урьдчилан харах хэсгийг харуулах\",\n storeDataAsText: \"JSON үр дүнд файлын агуулгыг текст хэлбэрээр хадгалах\",\n maxSize: \"Файлын дээд хэмжээ (байтаар)\",\n imageHeight: \"Зургийн өндөр\",\n imageWidth: \"Зургийн өргөн\",\n rowCount: \"Мөрний тоо\",\n columnLayout: \"Баганы зохион байгуулалт\",\n addRowLocation: \"Мөр нэмэх товчны байршил\",\n addRowText: \"Мөр нэмэх\",\n removeRowText: \"Мөр устгах\",\n rateMin: \"Хамгийн бага утга\",\n rateMax: \"Хамгийн их утга\",\n rateStep: \"Алхам\",\n minRateDescription: \"Хамгийн бага утгын тайлбар\",\n maxRateDescription: \"Хамгийн их утгын тайлбар\",\n inputType: \"Оролтын төрөл\",\n optionsCaption: \"Сонголтын талбар\",\n defaultValue: \"Үндсэн хариулт\",\n cellsDefaultRow: \"Үндсэн текст\",\n surveyEditorTitle: \"Санал асуулгын тохиргоог засах\",\n qEditorTitle: \"Засах: {0}\",\n maxLength: \"Дээд урт (тэмдэгтээр)\",\n buildExpression: \"Тооцоол\",\n editExpression: \"Засах\",\n and: \"бас\",\n or: \"эсвэл\",\n remove: \"Устгах\",\n addCondition: \"Нөхцөл нэмэх\",\n emptyLogicPopupMessage: \"Нөхцөл тохируулахын тулд асуултыг сонгоно уу.\",\n if: \"Хэрэв\",\n then: \"бол\",\n setToName: \"Зорилтот асуулт\",\n fromName: \"Хариулт хуулах асуулт\",\n gotoName: \"Үсэрч очих асуулт\",\n ruleIsNotSet: \"Дүрэм буруу байна\",\n includeIntoResult: \"Санал асуулгын үр дүнд оруулах\",\n showTitle: \"Гарчиг харуулах\",\n expandCollapseTitle: \"Гарчиг өргөсгөх/багасгах\",\n locale: \"Санал асуулгын хэл\",\n simulator: \"Төхөөрөмжийн төрөл сонгоно уу\",\n landscapeOrientation: \"Хэвтээ байрлалд шилжих\",\n portraitOrientation: \"Босоо байрлалд шилжих\",\n mode: \"Засах боломжтой эсвэл зөвхөн унших\",\n clearInvisibleValues: \"Харагдахгүй утгыг цэвэрлэх\",\n cookieName: \"Cookie name\",\n sendResultOnPageNext: \"Хэсэгчилсэн санал асуулгын явцыг хадгалах\",\n storeOthersAsComment: \"Бусад утгыг тусдаа талбарт хадгалах\",\n showPageTitles: \"Хуудасны гарчиг харуулах\",\n showPageNumbers: \"Хуудасны тоо харуулах\",\n pagePrevText: \"Өмнөх хуудас - харагдах бичиг\",\n pageNextText: \"Дараагийн хуудас - харагдах бичиг\",\n completeText: \"Санал асуулга амжиллттай бөглөгдсөн - харагдах бичиг\",\n previewText: \"Хариулт урьдчилж харах - харагдах бичиг\",\n editText: \"Хариулт засах харагдах бичиг\",\n startSurveyText: \"Санал асуулга эхлэх үед харагдах бичиг\",\n showNavigationButtons: \"Чиглүүлгийн товчийн байрлал\",\n showPrevButton: \"Өмнөх хуудасны товч харуулах\",\n firstPageIsStarted: \"Эхлэх хуудас нь эхний хуудас байна\",\n showCompletedPage: \"Санал асуулга амжилттай бөглөгдсөн хуудсыг харуулах\",\n goNextPageAutomatic: \"Дараагийн хуудас руу автоматаар шилжих\",\n showProgressBar: \"Явцын мөрний байршил\",\n questionTitleLocation: \"Асуултын гарчгийн байршил\",\n requiredText: \"Шаардлагатай тэмдэг(үүд)\",\n questionStartIndex: \"Эхлэх индекс (тоо эсвэл үсэг)\",\n showQuestionNumbers: \"Асуултын дугаарлалт\",\n questionTitleTemplate: \"Асуултын гарчигны загвар, үндсэн нь: '{үгүй}. {шаардах} {гарчиг}'\",\n questionErrorLocation: \"Алдааны мэдэгдлийн байршил\",\n focusFirstQuestionAutomatic: \"Эхний асуултыг шинэ хуудсанд төвлөрүүлэх\",\n questionsOrder: \"Хуудас дээрх элементийн дараалал\",\n maxTimeToFinish: \"Санал асуулга бөглөж дуусах хугацаа (секундээр)\",\n maxTimeToFinishPage: \"Нэг хуудас бөглөж дуусах хугацаа (секундээр)\",\n image: {\n imageHeight: \"Зургийн өндөр (CSS хүлээн зөвшөөрсөн утга)\",\n imageWidth: \"Зургийн өргөн (CSS хүлээн зөвшөөрсөн утга)\",\n },\n page: {\n maxTimeToFinish: \"Нэг хуудас бөглөж дуусах хугацаа (секундээр)\",\n },\n question: {\n page: \"Эх хуудас\",\n },\n showTimerPanel: \"Тоолуурын байршил\",\n showTimerPanelMode: \"Тоолуурын горим\",\n renderMode: \"Панелийн дэлгэцийн горим\",\n allowAddPanel: \"Панел нэмэхийг зөвшөөрөх\",\n allowRemovePanel: \"Панел хасахыг зөвшөөрөх\",\n noEntriesText: \"Хоосон бичвэрийн текст\",\n panelAddText: \"Панел товчийн текст нэмэх\",\n panelRemoveText: \"Панел товчийн текст хасах\",\n isSinglePage: \"Бүх элементийг нэг хуудас дээр харуулах\",\n html: \"HTML тэмдэглэгээ\",\n expression: \"илэрхийлэл\",\n setValue: \"Хариулт\",\n dataFormat: \"Зургийн формат\",\n allowAddRows: \"Мөр нэмэхийг зөвшөөрөх\",\n allowRemoveRows: \"Мөр хасахыг зөвшөөрөх\",\n allowRowsDragAndDrop: \"Мөр чирэхийг зөвшөөрөх\",\n responsiveImageSizeHelp: \"Зургийн өндөр, өргөнийг зааж өгсөн үед хамаарахгүй.\",\n minImageWidth: \"Зургийн өргөний хамгийн бага хэмжээ\",\n maxImageWidth: \"Зургийн өргөний хамгийн их хэмжээ\",\n minImageHeight: \"Зургийн өндрийн хамгийн бага хэмжээ\",\n maxImageHeight: \"Зургийн өндрийн хамгийн их хэмжээ\",\n minValue: \"Хамгийн бага утга\",\n maxValue: \"Хамгийн их утга\",\n minLength: \"Хамгийн бага урт (тэмдэгтээр)\",\n allowDigits: \"Тоо зөвшөөрөх\",\n minCount: \"Хамгийн бага тоо\",\n maxCount: \"Хамгийн их тоо\",\n regex: \"Тогтмол илэрхийлэл\",\n surveyvalidator: {\n text: \"Алдаа\",\n expression: \"Баталгаажуулах илэрхийлэл\",\n },\n totalText: \"Нийт мөр\",\n totalType: \"Нийт төрөл\",\n totalExpression: \"Нийт илэрхийлэл\",\n totalDisplayStyle: \"Нийт утгыг харуулах загвар\",\n totalCurrency: \"Мөнгөн тэмдэгт\",\n totalFormat: \"Хэлбэржүүлсэн текст\",\n logo: \"Лого (URL эсвэл base64 кодлосон мөр)\",\n questionsOnPageMode: \"Санал асуулгын бүтэц\",\n maxTextLength: \"Хариултын хамгийн их урт(тэмдэгтээр)\",\n maxOthersLength: \"Хариултын хамгийн бага урт(тэмдэгтээр)\",\n autoGrowComment: \"Шаардлагатай үед санал сэтгэгдлийн хэсгийг өргөсгөх\",\n textUpdateMode: \"Текст асуултын утгыг шинэчлэх\",\n focusOnFirstError: \"Анхны буруу хариулт руу чиглүүлэх\",\n checkErrorsMode: \"Баталгаажуулалт ажиллуулах\",\n navigateToUrl: \"URL-рүү чиглүүлэх\",\n navigateToUrlOnCondition: \"Динамик URL\",\n completedBeforeHtml: \"Хэрэглэгч санал асуулгыг бөглөсөн байх үед харуулах тэмдэглэгээ\",\n completedHtml: \"Санал асуулга амжилттай бөглөгдсөн үед харуулах тэмдэглэгээ\",\n completedHtmlOnCondition: \"Санал асуулга амжилттай бөглөгдсөн үед харуулах динамик тэмдэглэгээ\",\n loadingHtml: \"Судалгааны загвар ачааллаж байх үед харуулах тэмдэглэгээ\",\n commentText: \"Санал сэтгэгдлийн хэсгийн текст\",\n autocomplete: \"Автоматаар бөглөх төрөл\",\n labelTrue: '\"Тийм\" шошго',\n labelFalse: '\"Үгүй\" шошго',\n allowClear: \"Цэвэрлэх товч харуулах\",\n displayStyle: \"Утга харуулах хэв маяг\",\n format: \"Хэлбэржүүлсэн текст\",\n maximumFractionDigits: \"Оронгийн нарийвчлалын дээд утга\",\n minimumFractionDigits: \"Оронгийн нарийвчлалын доод утга\",\n useGrouping: \"Бүлэг тусгаарлагчийг харуулах\",\n allowMultiple: \"Олон файл зөвшөөрөх\",\n allowImagesPreview: \"Зургуудыг урьдчилж харах\",\n acceptedTypes: \"Зөвшөөрөгдсөн файлын төрөл\",\n waitForUpload: \"Файл байршуулж дуустал хүлээх\",\n needConfirmRemoveFile: \"Файл устгахыг батлах\",\n detailPanelMode: \"Нарийвчилсан панелийн байршил\",\n minRowCount: \"Хамгийн бага мөрний тоо\",\n maxRowCount: \"Хамгийн их мөрний тоо\",\n confirmDelete: \"Мөр устгахыг батлах\",\n confirmDeleteText: \"Баталгаажуулах мессеж\",\n paneldynamic: {\n confirmDelete: \"Панел устгахыг батлах\",\n },\n panelCount: \"Панелийн эхлэх тоо\",\n minPanelCount: \"Хамгийн бага панелийн тоо\",\n maxPanelCount: \"Хамгийн их панелийн тоо\",\n panelsState: \"Дотоод панелийн өргөссөн төлөв\",\n templateDescription: \"Тайлбарын загвар\",\n templateTitle: \"Гарчгийн загвар\",\n panelPrevText: \"Өмнөх панелийн товч\",\n panelNextText: \"Дараагийн панелийн товч\",\n showRangeInProgress: \"Явцын талбарыг харуулах\",\n templateTitleLocation: \"Асуултын гарчгийн байршил\",\n panelRemoveButtonLocation: \"Панел устгах товчны байршил\",\n hideIfRowsEmpty: \"Мөр байхгүй тохиолдолд асуултыг нуух\",\n hideColumnsIfEmpty: \"Мөр байхгүй тохиолдолд баганыг нуух\",\n rateValues: \"Хэрэглэгчийн үнэлгээний утгууд\",\n hideIfChoicesEmpty: \"Сонголтгүй бол асуултыг нуух\",\n hideNumber: \"Асуултын тоог харуулахгүй байх\",\n minWidth: \"Хамгийн бага өргөн (CSS хүлээн зөвшөөрсөн утга)\",\n maxWidth: \"Хамгийн их өргөн (CSS хүлээн зөвшөөрсөн утга)\",\n width: \"Өргөн (CSS хүлээн зөвшөөрсөн утга)\",\n showHeader: \"Баганы гарчигийг харуулах\",\n horizontalScroll: \"Хэвтээ гүйлгэх мөр харуулах\",\n columnMinWidth: \"Баганы хамгийн бага утга (CSS хүлээн зөвшөөрсөн утга)\",\n rowTitleWidth: \"Мөрийн гарчгийн утга (CSS хүлээн зөвшөөрсөн утга)\",\n valueTrue: \"Үнэн утга\",\n valueFalse: \"Худал утга\",\n minErrorText: \"Хамгийн бага утгаас бага байна! алдааны мэдэгдэл\",\n maxErrorText: \"Хамгийн их утгаас их байна! алдааны мэдэгдэл\",\n otherErrorText: \"Хоосон санал хүсэлт! алдааны мэдэгдэл\",\n keyDuplicationError: \"Давтагдсан утга! алдааны мэдэгдэл\",\n maxSelectedChoices: \"Хамгийн ихдээ сонгох боломжийн тоо\",\n showClearButton: \"Цэвэрлэх товч харуулах\",\n showNumber: \"Панелийн тоо харуулах\",\n logoWidth: \"Логоны өргөн (CSS хүлээн зөвшөөрсөн утга)\",\n logoHeight: \"Логөны өндөр (CSS хүлээн зөвшөөрсөн утга)\",\n readOnly: \"Зөвхөн унших\",\n enableIf: \"Засах боломжтой хэрэв\",\n emptyRowsText: '\"Мөр байхгүй байна!\" мэдэгдэл',\n size: \"Оролтын хэмжээ (тэмдэгтээр)\",\n separateSpecialChoices: \"Тусгай сонголтуудыг салгах (Аль нь ч биш, Бусад, Бүгдийг сонгох)\",\n choicesFromQuestion: \"Дараах асуултаас сонголтуудыг хуулах.\",\n choicesFromQuestionMode: \"Аль сонголтуудыг хуулах вэ?\",\n showCommentArea: \"Санал хүсэлтийн хэсэг харуулах\",\n commentPlaceholder: \"Санал хүсэлтийн хэсэг\",\n displayRateDescriptionsAsExtremeItems: \"Display rate descriptions as extreme values\",\n rowsOrder: \"Мөрний дараалал\",\n columnsLayout: \"Баганы зохион байгуулалт\",\n columnColCount: \"Шаталсан баганын тоо\",\n state: \"Панелийн өргөссөн төлөв\",\n correctAnswer: \"Зөв хариулт\",\n defaultPanelValue: \"Үндсэн утга\",\n cells: \"Нүдний текст\",\n keyName: \"Түлхүүр багана\",\n itemvalue: {\n text: \"Тайлбар\",\n },\n logoPosition: \"Логоны байршил\",\n addLogo: \"Лого нэмэх...\",\n changeLogo: \"Лого солих...\",\n logoPositions: {\n none: \"Лого устгах\",\n left: \"Зүүн\",\n right: \"Баруун\",\n top: \"Дээр\",\n bottom: \"Доор\",\n },\n tabs: {\n general: \"Ерөнхий\",\n fileOptions: \"Сонголт\",\n html: \"HTML засварлагч\",\n columns: \"Багана\",\n rows: \"Мөр\",\n choices: \"Сонголт\",\n items: \"Элемент\",\n visibleIf: \"Харагдана хэрэв\",\n enableIf: \"Засварлаж болно хэрэв\",\n requiredIf: \"Заавал бөглөх болох хэрэв\",\n rateValues: \"Утгыг үнэлэх\",\n choicesByUrl: \"RESTful сервисийн сонголтууд\",\n matrixChoices: \"Үндсэн сонголтууд\",\n multipleTextItems: \"Текст оролт\",\n numbering: \"Дугаарлалт\",\n validators: \"Батлагч\",\n navigation: \"Чиглүүлэгч\",\n question: \"Асуулт\",\n pages: \"Хуудас\",\n timer: \"Тоолуур/Асуулт хариулт\",\n calculatedValues: \"Тооцоолсон утга\",\n triggers: \"Схемүүд\",\n templateTitle: \"Гарчигны загвар\",\n totals: \"Нийт\",\n logic: \"Логик\",\n layout: \"Зохион байгуулалт\",\n data: \"Өгөгдөл\",\n validation: \"Батлах\",\n cells: \"Нүдний текст\",\n showOnCompleted: \"Санал асуулга амжилттай бөглөгдлөө.\",\n logo: \"Санал асуулгын гарчиг дахь лого\",\n slider: \"Гулсуулагч\",\n expression: \"илэрхийлэл\",\n others: \"Бусад\",\n },\n editProperty: \"Шинж чанарыг засварлах '{0}'\",\n items: \"Элементүүд\",\n choicesVisibleIf: \"Сонголтууд харагдана хэрэв\",\n choicesEnableIf: \"Сонголтууд сонгогдоно хэрэв\",\n columnsEnableIf: \"Баганууд харагдана хэрэв\",\n rowsEnableIf: \"Мөрнүүд харагдана хэрэв\",\n indent: \"Догол мөр нэмэх\",\n panel: {\n indent: \"Гаднах догол мөр нэмэх\",\n },\n innerIndent: \"Дотоод догол мөр нэмэх\",\n defaultValueFromLastRow: \"Өмнөх мөрнөөс үндсэн утга авах\",\n defaultValueFromLastPanel: \"Сүүлийн панелаас үндсэн утга авах\",\n enterNewValue: \"Утга оруулна уу.\",\n noquestions: \"Санал асуулгад асуулт оруулна уу.\",\n createtrigger: \"Схем устгана уу.\",\n titleKeyboardAdornerTip: \"Засахын тулд Enter товчийг дарна уу\",\n keyboardAdornerTip: \"Засахын тулд Enter товчийг дарна уу, Устгахын тулд Delete товчийг дарна уу, Хөдөлгөхийн тулд alt + дээш сум эсвэл доош сум дарна уу\",\n triggerOn: \"On \",\n triggerMakePagesVisible: \"Хуудсуудыг харуулах\",\n triggerMakeQuestionsVisible: \"Элементүүдийг харуулах\",\n triggerCompleteText: \"Complete the survey if succeed.\",\n triggerNotSet: \"Схем тохируулагдаагүй байна\",\n triggerRunIf: \"Ажилуулах хэрэв\",\n triggerSetToName: \"Утга өөрчлөх: \",\n triggerFromName: \"Утга хуулах: \",\n triggerRunExpression: \"илэрхийлэлг ажиллуулах\",\n triggerSetValue: \"хүртэл: \",\n triggerGotoName: \"Асуулт руу үсрэх\",\n triggerIsVariable: \"Хувьсагч санал асуулгын үр дүнд оруулахгүй байх.\",\n triggerRunExpressionEmpty: \"Бодит илэрхийлэл оруулна уу.\",\n emptyExpressionPlaceHolder: \"илэрхийлэлг энд бичнэ үү...\",\n noFile: \"Файл сонгоогүй байна.\",\n clearIfInvisible: \"Асуулт нуувал утгыг цэвэрлэх.\",\n valuePropertyName: \"Утгын шинж чанарын нэр\",\n searchEnabled: \"Хайлтыг идэвхжүүлэх\",\n hideSelectedItems: \"Сонгогдсон хэсгийг нуух\",\n closeOnSelect: \"Сонголт хийсэн үед доош буусан сонголтуудыг хаах\",\n signatureWidth: \"Гарын үсгийн өргөн\",\n signatureHeight: \"Гарын үсгийн өндөр\",\n verticalAlign: \"Босоо эгнүүлэх\",\n alternateRows: \"Хувилбар мөрнүүд\",\n columnsVisibleIf: \"Баганууд харагдана хэрэв\",\n rowsVisibleIf: \"Мөрнүүд харагдана хэрэв\",\n otherPlaceholder: \"Санал асуулгын хэсэг\",\n },\n // Property values\n pv: {\n true: \"Үнэн\",\n false: \"Худал\",\n inherit: \"Удамших\",\n show: \"Харагдана\",\n hide: \"Нуусан\",\n default: \"Үндсэн\",\n initial: \"Анхны\",\n random: \"Санамсаргүй\",\n collapsed: \"Багассан\",\n expanded: \"Өргөтгөсөн\",\n none: \"Аль нь ч биш\",\n asc: \"Өгсөж байгаа\",\n desc: \"Буурч байгаа\",\n indeterminate: \"Тодорхойгүй\",\n decimal: \"Бутархай\",\n currency: \"Мөнгөн тэмдэгт\",\n percent: \"Хувь\",\n firstExpanded: \"Эхний панел өргөссөн\",\n off: \"Асуултын тоог нуух\",\n onpanel: \"Панел болгон дээр эхлэх\",\n onPanel: \"Панел болгон дээр эхлэх\",\n onSurvey: \"Санал асуулгын турш үргэлжлэх\",\n list: \"Жагсаалт\",\n progressTop: \"Панел чиглүүлэгч + Явцын мөр дээд хэсэгт байрлах\",\n progressBottom: \"Панел чиглүүлэгч + Явцын мөр доод хэсэгт байрлах\",\n progressTopBottom: \"Панел чиглүүлэгч + Явцын мөр дээд ба доод хэсэгт байрлах\",\n horizontal: \"Хэвтээ\",\n vertical: \"Босоо\",\n top: \"Дээд\",\n bottom: \"Доод\",\n topBottom: \"Дээд ба доод\",\n both: \"Аль аль нь\",\n left: \"Зүүн\",\n right: \"Баруун\",\n color: \"өнгө\",\n date: \"огноо\",\n datetime: \"datetime\",\n \"datetime-local\": \"datetime-local\",\n email: \"цахим шуудан\",\n month: \"сар\",\n number: \"тоо\",\n password: \"нууц үг\",\n range: \"range\",\n tel: \"Дугаар\",\n text: \"Текст\",\n time: \"цаг\",\n url: \"url\",\n week: \"долоо хоног\",\n hidden: \"Нуусан\",\n on: \"Өмнөх хуудаснаас үргэлжлэх\",\n onPage: \"Хуудас болгон дээр эхлэх\",\n edit: \"Засаж болдог\",\n display: \"Зөвхөн унших\",\n onComplete: \"Санал асуулга амжилттай бөглөгдсөн үед.\",\n onHidden: \"Асуулт нуугдсан үед\",\n onHiddenContainer: \"Асуулт, панел эсвэл хуудас нуугдсан үед\",\n clearInvisibleValues: {\n none: \"Хэзээ ч үгүй\",\n },\n all: \"Бүх\",\n page: \"Хуудас\",\n survey: \"Санал асуулга\",\n onNextPage: \"Дараагийн хуудас руу шилжих үед\",\n onValueChanged: \"Асуулт солигдсоны дараа\",\n onValueChanging: \"Асуулт солигдхоос өмнө\",\n standard: \"Анхдагч бүтэц\",\n singlePage: \"Бүх асуулт нэг хуудас дээр\",\n questionPerPage: \"Бүх асуулт бие даасан хуудас дээр\",\n noPreview: \"Урьдчилан харах боломжгүй\",\n showAllQuestions: \"Бүх асуултыг харуулах.\",\n showAnsweredQuestions: \"Зөвхөн хариулсан асуултуудыг харуулах.\",\n pages: \"Бөглөгдсөн хуудсууд\",\n questions: \"Хариулсан асуултууд\",\n requiredQuestions: \"Заавал бөглөх асуултууд\",\n correctQuestions: \"Зөв хариултууд\",\n buttons: \"Бөглөгдсөн хуудсууд (UI товч)\",\n underInput: \"Оролтын доор\",\n underTitle: \"Гарчгийн доор\",\n onBlur: \"Бүдгэрүүлсэн үед\",\n onTyping: \"Бичиж байх үед\",\n underRow: \"Мөрийн доор\",\n underRowSingle: \"Мөрийн доор, зөвхөн ганц панел харагдана\",\n showNavigationButtons: {\n none: \"Нуусан\",\n },\n showProgressBar: {\n off: \"Нуусан\",\n },\n showTimerPanel: {\n none: \"Нуусан\",\n },\n showTimerPanelMode: {\n all: \"Аль аль нь\",\n },\n detailPanelMode: {\n none: \"Нуусан\",\n },\n addRowLocation: {\n default: \"Матрицын загвараас шалтгаалах\",\n },\n panelsState: {\n default: \"Хэрэглэгчид панелийг өргөсгөж багасгаж чадахгүй\",\n collapsed: \"Бүх панел багассан\",\n expanded: \"Бүх панел өргөтгөссөн\",\n },\n widthMode: {\n auto: \"Автомат\",\n static: \"Статик\",\n responsive: \"Уян хатан\",\n },\n imageFit: {\n none: \"Аль нь ч биш\",\n contain: \"Агуулах\",\n cover: \"Халхлах\",\n fill: \"Бөглөх\",\n },\n contentMode: {\n auto: \"Автомат\",\n image: \"Зураг\",\n video: \"Видео\",\n youtube: \"YouTube\",\n },\n displayMode: {\n auto: \"Автомат\",\n buttons: \"Товчнууд\",\n dropdown: \"Доош задрах\",\n },\n },\n // Operators\n op: {\n empty: \"Хоосон\",\n notempty: \"Хоосон биш\",\n equal: \"Тэнцэх\",\n notequal: \"Тэнцэхгүй байх\",\n contains: \"Агуулсан\",\n notcontains: \"Агуулаагүй\",\n anyof: \"Аль нэгийг нь\",\n allof: \"Бүгдийг нь\",\n greater: \"-аас их\",\n less: \"-аас бага\",\n greaterorequal: \"-аас их эсвэл тэнцүү байх\",\n lessorequal: \"-аас бага эсвэл тэнцүү байх\",\n and: \"ба\",\n or: \"эсвэл\",\n },\n // Embed window\n ew: {\n angular: \"Angular хувилбар ашиглах\",\n jquery: \"jQuery хувилбар ашиглах\",\n knockout: \"Knockout хувилбар ашиглах\",\n react: \"React хувилбар ашиглах\",\n vue: \"Vue хувилбар ашиглах\",\n bootstrap: \"bootstrap бүтцэд\",\n modern: \"Орчин үеийн\",\n default: \"Үндсэн\",\n orange: \"Улбар шар\",\n darkblue: \"Хар хөх\",\n darkrose: \"Хүрэн\",\n stone: \"Чулуун\",\n winter: \"Өвлийн\",\n winterstone: \"Өвлийн-чулуун\",\n showOnPage: \"Санал асуулгыг хуудас дээр харуулах\",\n showInWindow: \"Санал асуулгыг цонхонд харуулах\",\n loadFromServer: \"JSON серверээс санал асуулгыг ачааллуулах\",\n titleScript: \"Скрипт ба хэв маяг\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n // Preview (Survey)\n ts: {\n selectPage: \"Тест хийх хуудсыг сонгох.\",\n showInvisibleElements: \"Харагдахгүй элементүүдийг харуулах.\",\n hideInvisibleElements: \"Харагдахгүй элементүүдийг нуух.\",\n },\n validators: {\n answercountvalidator: \"Хариултын тоо\",\n emailvalidator: \"Цахим шууудан\",\n expressionvalidator: \"илэрхийлэл\",\n numericvalidator: \"Тоо\",\n regexvalidator: \"Regex\",\n textvalidator: \"Текст\",\n },\n triggers: {\n completetrigger: \"Санал асуулга дуусгах.\",\n setvaluetrigger: \"Хариулт тавих\",\n copyvaluetrigger: \"Хариулт хуулах\",\n skiptrigger: \"Асуулт руу үсрэх\",\n runexpressiontrigger: \"илэрхийлэл ажлуулах\",\n visibletrigger: \"Харагдах байдлыг өөрчлөх\",\n },\n pehelp: {\n cookieName: \"Хэрэглэгч нэг судалгааг хоёр удаа бөглөхөөс Күүки сэргийлнэ.\",\n format: \"{0} нь тухайн утгын жишээ болно.\",\n totalText: \"Хамгийн багадаа нэг багана Нэмэх төрлийн эвсэл нэмэх үйлдэлтэй үед л харагдах боломжтой.\",\n acceptedTypes: \"Атрибутын талаар нэмэлт мэдээллийг үзэхийн тулд [accept](https://www.w3schools.com/tags/att_input_accept.asp)-лүү хандана уу.\",\n columnColCount: \"Зөвхөн олон сонголттой эсвэл Radiogroup -д ашиглана.\",\n autocomplete: \"Аттрибутын талаар дэлгэрэнгүй мэдээллийг [autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete)-ээс авна уу .\",\n valueName: \"Хэрэв энэ талбарын утгыг оруулаагүй бол хариулт нь автоматаар Нэр талбарт хадгална.\",\n choicesbyurl: {\n valueName: \" \",\n },\n keyName: 'Хэрэв өгөгдсөн багана адил утгатай бол санал асуулга \"Давтагдсан утга\" гэсэн алдааг харуулна.',\n },\n // Properties\n p: {\n title: {\n name: \"Гарчиг\",\n title: \"'Нэр'-тэй адилхан бол хоосон орхих.\",\n },\n multiSelect: \"Олон сонголтыг зөвшөөрөх\",\n showLabel: \"Зургийн тайлбар харуулах\",\n value: \"Утга\",\n tabAlign: \"Хавтас байрлуулах\",\n description: \"Тайлбар\",\n logoFit: \"Лого\",\n pages: \"Хуудаснууд\",\n questions: \"Асуултууд\",\n triggers: \"Схемүүд\",\n calculatedValues: \"Тооцоолсон утгууд\",\n surveyId: \"Санал асуулгын ID\",\n surveyPostId: \"Санал асуулгын нийтлэлийн ID\",\n surveyShowDataSaving: \"Санал асуулга өгөгдөл хадгалж байхад харуулах\",\n questionDescriptionLocation: \"Асуултын тайлбарын байршил\",\n progressBarType: \"Явцын мөрний төрөл\",\n showTOC: \"TOC харуулах\",\n tocLocation: \"Toc байршил\",\n questionTitlePattern: \"Асуултын гарчгийн загвар\",\n widthMode: \"Өргөн горим\",\n showBrandInfo: \"Брэнд мэдээллийг харуулах\",\n useDisplayValuesInDynamicTexts: \"Динамик текстэд харуулах утгыг хэрэглэх\",\n visibleIf: \"Харагдана хэрэв\",\n titleLocation: \"Гарчгийн байршил\",\n descriptionLocation: \"Тайлбарын байршил\",\n defaultValueExpression: \"Үндсэн утгын илэрхийлэл\",\n requiredIf: \"Заавал бөглөх хэрэв\",\n validators: \"Батлагч\",\n bindings: \"Холбогч\",\n renderAs: \"руу хөрвүүлэх\",\n attachOriginalItems: \"Эх элементүүдийг хавсаргах\",\n choices: \"Сонголтууд\",\n choicesByUrl: \"Url сонолтууд\",\n currency: \"Мөнгөн тэмдэгт\",\n cellHint: \"Жишээ утга\",\n isUnique: \"Давтагдахгүй эсэх\",\n showInMultipleColumns: \"Олон баганад харуулах\",\n totalMaximumFractionDigits: \"Нийт хамгийн их бутархай тоонууд\",\n totalMinimumFractionDigits: \"Нийт хамгийн бага бутархай тоонууд\",\n columns: \"Баганууд\",\n detailElements: \"Дэлгэрэнгүй элементүүд\",\n allowAdaptiveActions: \"Дасан зохицох үйлдлийг зөвшөөрөх\",\n defaultRowValue: \"Үндсэн мөрийн утга\",\n detailPanelShowOnAdding: \"Нэмэж байх үед нарийвчилсан панел харуулах\",\n choicesLazyLoadEnabled: \"Choices lazy load enabled\",\n choicesLazyLoadPageSize: \"Choices lazy load page size\",\n inputFieldComponent: \"Оролтын утгын бүрэлдэхүүн\",\n itemComponent: \"Элементийн бүрэлдэхүүн\",\n min: \"Хамгийн бага\",\n max: \"Хамгийн их\",\n minValueExpression: \"Хамгийн бага утгын илэрхийлэл\",\n maxValueExpression: \"Хамгийн их утгын илэрхийлэл\",\n step: \"Алхам\",\n dataList: \"Өгөгдлийн жагсаалт\",\n itemSize: \"Элементийн хэмжээ\",\n elements: \"Элементүүд\",\n content: \"Контент\",\n navigationButtonsVisibility: \"Чиглүүлэх товчны харагдац\",\n navigationTitle: \"Чиглүүлэгчийн гарчиг\",\n navigationDescription: \"Чиглүүлэгчийн тайлбар\",\n longTap: \"Long tap\",\n autoGrow: \"Автоматаар нэмэх\",\n acceptCarriageReturn: \"Accept carriage return\",\n displayMode: \"Дэлгэцийн горим\",\n rateType: \"Дамжуулах хурд\",\n label: \"Шошго\",\n contentMode: \"Контентийн горим\",\n imageFit: \"Зураг багтаах\",\n altText: \"Тайлбар\",\n height: \"Өндөр\",\n penColor: \"Балны өнгө\",\n backgroundColor: \"Дэвсгэр өнгө\",\n templateElements: \"Загварын элементүүд\",\n operator: \"Operator\",\n isVariable: \"Хувьсах чадвартай\",\n runExpression: \"илэрхийлэлг ажиллуулах\",\n showCaption: \"Тайлбар харуулах\",\n iconName: \"Дүрсийн нэр\",\n iconSize: \"Дүрсийн хэмжээ\",\n },\n};\n// Uncomment the line below if you create a custom dictionary.\n// Replace \"en\" with a custom locale code (for example, \"fr\" or \"de\"),\n// Replace `enStrings` with the name of the variable that contains the custom dictionary.\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"mn\"] = mnStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/norwegian.ts\":\n/*!***************************************!*\\\n !*** ./src/localization/norwegian.ts ***!\n \\***************************************/\n/*! exports provided: nbStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nbStrings\", function() { return nbStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n//Uncomment this line on creating a translation file\n\nvar nbStrings = {\n //survey templates\n survey: {\n edit: \"Rediger\",\n externalHelpLink: \"Se og lær hvordan å opprette nye skjema\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Dra og slipp et spørsmål her fra Verktøylisten til venstre.\",\n addLogicItem: \"Opprett en regel for å skreddersy skjemaflyten\",\n copy: \"Kopier\",\n addToToolbox: \"Legg til verktøylisten\",\n deletePanel: \"Slett panel\",\n deleteQuestion: \"Slett spørsmål\",\n convertTo: \"Konverter til\",\n drag: \"Dra element\",\n },\n //questionTypes\n qt: {\n default: \"Standard\",\n checkbox: \"Sjekkboks\",\n comment: \"Kommentar\",\n imagepicker: \"Bildevelger\",\n image: \"Bilde\",\n dropdown: \"Nedtrekksliste\",\n file: \"Fil\",\n html: \"Html\",\n matrix: \"Matrise (enkelvalg)\",\n matrixdropdown: \"Matrise (flervalg)\",\n matrixdynamic: \"Matrise (dynamiske rader)\",\n multipletext: \"Flerlinjetekst\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dynamiske paneler)\",\n radiogroup: \"Radiogruppe\",\n rating: \"Rangering\",\n text: \"Enkel tekst\",\n boolean: \"Boolean\",\n expression: \"Formel\",\n signaturepad: \"Signatur\",\n flowpanel: \"Flytpanel\",\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Standard ({0})\",\n survey: \"Skjema\",\n settings: \"Skjemainnstillinger\",\n settingsTooltip: \"Åpne skjemainnstillinger\",\n //opjectPropertiesHeader: \"Advanced\",\n //showObjectProperties: \"Show Object Properties\",\n //hideObjectProperties: \"Hide Object Properties\",\n showPanel: \"Vis panel\",\n hidePanel: \"Skjul panel\",\n // editSurvey: \"Rediger skjema\",\n addNewPage: \"Legg til ny side\",\n moveRight: \"Bla til høyre\",\n moveLeft: \"Bla til venstre\",\n deletePage: \"Slett side\",\n editPage: \"Rediger side\",\n edit: \"Rediger\",\n newPageName: \"side\",\n newQuestionName: \"spørsmål\",\n newPanelName: \"panel\",\n newTextItemName: \"tekst\",\n testSurvey: \"Test skjema\",\n testSurveyAgain: \"Test skjema igjen\",\n testSurveyWidth: \"Skjemabredde: \",\n navigateToMsg: \"Du måtte navigere til:\",\n logic: \"Skjemalogikk\",\n embedSurvey: \"Integrer skjema\",\n translation: \"Oversettelse\",\n saveSurvey: \"Lagre skjema\",\n saveSurveyTooltip: \"Lagre skjema\",\n designer: \"Skjemadesigner\",\n jsonEditor: \"JSON-redigering\",\n undo: \"Angre\",\n redo: \"Gjenta\",\n undoTooltip: \"Angre siste endring\",\n redoTooltip: \"Gjør om siste endring\",\n copy: \"Kopier\",\n cut: \"Kutt\",\n paste: \"Lim innn\",\n copyTooltip: \"Kopier valgt seksjon inn i utklippstavla\",\n cutTooltip: \"Kutt valgt seksjon inn i utklippstavla\",\n pasteTooltip: \"Lim inn fra utklippstavla\",\n options: \"Alternativer\",\n generateValidJSON: \"Lag gyldig JSON\",\n generateReadableJSON: \"Lag lesbar JSON\",\n toolbox: \"Verktøyliste\",\n \"property-grid\": \"Innstillinger\",\n toolboxGeneralCategory: \"Generelt\",\n // delSelObject: \"Slett valgte elementer\",\n // editSelObject: \"Rediger valgte elementer\",\n correctJSON: \"Vennligst korriger JSON.\",\n surveyResults: \"Skjemaresultat: \",\n surveyResultsTable: \"Som tabell\",\n surveyResultsJson: \"Som JSON\",\n resultsTitle: \"Spørsmålstittel\",\n resultsName: \"Spørsmålsnavn\",\n resultsValue: \"Svar\",\n resultsDisplayValue: \"Vist verdi\",\n modified: \"Endret\",\n saving: \"Lagrer\",\n saved: \"Lagret\",\n propertyEditorError: \"Feil:\",\n saveError: \"Feil! Skjema innhold er ikke lagret.\",\n translationAddLanguage: \"Velg språk for oversetting\",\n translationShowAllStrings: \"Vis alle strenger\",\n translationShowAllPages: \"Vis alle sider\",\n translationNoStrings: \"Ingen strenger å oversette. Vennligst endre filteret.\",\n translationExportToSCVButton: \"Eksporter til CSV\",\n translationImportFromSCVButton: \"Importer fra CSV\",\n translationMergeLocaleWithDefault: \"Flett {0} med standard språk\",\n bold: \"Fet\",\n italic: \"Kursiv\",\n underline: \"Underlinjet\",\n fpAddQuestion: \"Legg til spørsmål...\",\n selectPage: \"Velg side...\",\n chooseElement: \"Velg element...\",\n //completedHtmlOnConditionItemText: \"Show if:\",\n lg: {\n addNewItem: \"\",\n //Logic tab strings\n page_visibilityName: \"Sidesynlighet\",\n panel_visibilityName: \"Panelsynlighet\",\n panel_enableName: \"Panel aktivere/deaktivere\",\n question_visibilityName: \"Spørsmålssynlghet\",\n question_enableName: \"Spørsmål aktivere/deaktivere\",\n question_requireName: \"Spørsmål valgfritt/påkrevd\",\n trigger_completeName: \"Fullfør skjema\",\n trigger_setvalueName: \"Angi spørsmålsnavn\",\n trigger_copyvalueName: \"Kopier spørsmålsverdi\",\n trigger_skipName: \"Hopp til spørsmål\",\n trigger_runExpressionName: \"Kjør tilpasset formel\",\n completedHtmlOnConditionName: \"Tilpasset 'Takk-side' tekst\",\n page_visibilityDescription: \"Gjør siden synlig når formelen evalueres til 'sann', og holder den ellers usynlig.\",\n panel_visibilityDescription: \"Gjør panelet synlig når formelen evalueres til 'sann', og holder den ellers usynlig.\",\n panel_enableDescription: \"Aktiverer panelet, og alle elementer inni, når formelen evalueres til 'sann'. I andre tilfeller holdes de deaktivert.\",\n question_visibilityDescription: \"Gjør spørsmålet synlig når formelen evalueres til 'sann', og holder den ellers usynlig.\",\n question_enableDescription: \"Aktiverer spørsmålet når formelen evalueres til 'sann', og holder den ellers deaktivert.\",\n question_requireDescription: \"Spørmsålet blir påkrevd når formelen evalueres til 'sann'.\",\n trigger_completeDescription: \"Når formelen evalueres til 'sann' fullføres skjemaet og sluttbrukeren ser 'Takk-siden'.\",\n trigger_setvalueDescription: \"Når spørsmålsverdier som er brukt i formelen endres, og formelen evalueres som 'sann', vil verdien settes i det valgte spørsmålet.\",\n trigger_copyvalueDescription: \"Når spørsmålsverdier som er brukt i formelen endres, og formelen evalueres som 'sann', vil verdien i et valgt spørsmål kopieres til et annet valgt spørsmål.\",\n trigger_skipDescription: \"Når formelen evalueres til 'sann' vil skjemaet hoppe til/fokusere på valgt spørsmål.\",\n trigger_runExpressionDescription: \"Når formelen evauleres til 'sann' vil den tilpassede formelen utføres. Du kan valgfritt sette formelens resultat inn i det valgte spørsmålet.\",\n completedHtmlOnConditionDescription: \"Hvis formelen evalueres til 'sann' vil standardteksten på 'Takk siden' endres til den gitte teksten.\",\n itemExpressionText: \"Når formelen: '{0}' evalueres til 'sann':\",\n page_visibilityText: \"Gjøre side {0} synlig\",\n panel_visibilityText: \"Gjør panel {0} synlig\",\n panel_enableText: \"Gjør panel {0} aktivert\",\n question_visibilityText: \"Gjør spørsmål {0} synlig\",\n question_enableText: \"Gjør spørsmål {0} aktivert\",\n question_requireText: \"Gjør spørsmål {0} påkrevd\",\n trigger_completeText: \"Skjemaet blir fullført\",\n trigger_setvalueText: \"Sett inn: {0} verdi {1}\",\n trigger_copyvalueText: \"Kopier inn: {0} verdi fra spørsmål {1}\",\n trigger_skipText: \"Hopp til spørsmål {0}\",\n trigger_runExpressionText1: \"Kjør formel: '{0}'\",\n trigger_runExpressionText2: \" og sett inn resultatet i spørsmål: {0}\",\n completedHtmlOnConditionText: \"Vis tilpasset tekst for 'Takk-siden'.\",\n conditions: \"Vilkår\",\n actions: \"Handling(er)\",\n expressionEditorTitle: \"Definer vilkår\",\n actionsEditorTitle: \"Definer handling(er)\",\n deleteAction: \"Slett handling\",\n addNewAction: \"Legg til handling\",\n selectedActionCaption: \"Velg handling som skal legges til...\",\n expressionInvalid: \"Formelen er tom eller ugyldig. Vennligst korriger den.\",\n noActionError: \"Vennligst legg til minst en handling\",\n actionInvalid: \"Vennligst korriger problemer med handlingen.\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n },\n //Property names in table headers\n // pel: {\n // isRequired: \"Nødvendig?\",\n // },\n //Property Editors\n pe: {\n apply: \"Bruk\",\n ok: \"OK\",\n save: \"Lagre\",\n saveTooltip: \"Lagre\",\n cancel: \"Avbryt\",\n reset: \"Tilbakestill\",\n refresh: \"Last inn på nytt\",\n // close: \"Lukk\",\n delete: \"Slett\",\n add: \"Legg til\",\n addNew: \"Legg til ny\",\n addItem: \"Klikk for å legge til...\",\n addOther: \"Annet\",\n addSelectAll: \"Velg alt\",\n addNone: \"Ingen\",\n removeAll: \"Fjern alt\",\n edit: \"Rediger\",\n back: \"Gå tilbake uten å lagre\",\n backTooltip: \"Gå tilbake uten å lagre\",\n saveAndBack: \"Lagre og gå tilbake\",\n saveAndBackTooltip: \"Lagre og gå tilbake\",\n // itemValueEdit: \"Synlig hvis\",\n editChoices: \"Rediger valg\",\n showChoices: \"Vis valg\",\n move: \"Flytt\",\n empty: \"\",\n // notEmpty: \"\",\n fastEntry: \"Rask innfylling\",\n formEntry: \"Innfylling i skjema\",\n testService: \"Sjekk tjenesten\",\n itemSelectorEmpty: \"Vennligst velg elementet\",\n conditionActionEmpty: \"Velg handlingen\",\n conditionSelectQuestion: \"Velg spørsmål...\",\n conditionSelectPage: \"Velg side...\",\n conditionSelectPanel: \"Velg panel...\",\n conditionValueQuestionTitle: \"Vennligst skriv inn/velg verdi\",\n // conditionHelp: \"Skriv inn en boolsk formel. Det burde returnere SANN for å gjøre spørsmål/side synlig. For eksempel: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"Vennligst skriv inn en formel. Du kan bruke klammeparenteser for å få tilgang til spørsmålsverdiene: '{question1} + {question2}', '({price}*{quantity}) * (100 - {discount})'\",\n aceEditorHelp: \"Trykk ctrl+mellomrom for å få hint til å fullføre formler\",\n aceEditorRowTitle: \"Gjeldende rad\",\n aceEditorPanelTitle: \"Gjeldende panel\",\n showMore: \"For mer detaljer - se dokumentasjonen\",\n // conditionShowMoreUrl: \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Tilgjengelige spørsmål:\",\n cellsEmptyRowsColumns: \"Det må være minst 1 kolonne eller rad\",\n propertyIsEmpty: \"Vennligst fyll inn en verdi\",\n propertyNameIsNotUnique: \"Vennligst fyll inn et unikt navn\",\n listIsEmpty: \"Legg til nytt element\",\n expressionIsEmpty: \"Formelen er tom\",\n value: \"Verdi\",\n text: \"Tekst\",\n rowid: \"Rad-ID\",\n imageLink: \"Bildelenke\",\n columnEdit: \"Rediger kolonne: {0}\",\n itemEdit: \"Rediger element: {0}\",\n url: \"URL\",\n path: \"Sti\",\n valueName: \"Verdinavn\",\n titleName: \"Tittelnavn\",\n titlePlaceholder: \"Skriv tittel her\",\n surveyTitlePlaceholder: \"Skriv skjematittel her\",\n pageTitlePlaceholder: \"Skriv sidetittel her\",\n descriptionPlaceholder: \"Skriv beskrivelse\",\n surveyDescriptionPlaceholder: \"Skriv skjema-beskrivelse\",\n pageDescriptionPlaceholder: \"Skriv side-beskrivelse\",\n showOtherItem: \"Har annet element\",\n otherText: \"Annet element-tekst\",\n showNoneItem: \"Har velg ingen\",\n noneText: \"Velg ingen-tekst\",\n hasSelectAll: \"Har velg alt-element\",\n selectAllText: \"Velg alt elememt-tekst\",\n choicesMin: \"Minsteverdi for auto-genererte elementer\",\n choicesMax: \"Maksverdi for auto-genererte elementer\",\n choicesStep: \"Forskjellene mellom auto-genererte elementer\",\n name: \"Navn\",\n title: \"Tittel\",\n cellType: \"Celletype\",\n colCount: \"Antall kolonner\",\n choicesOrder: \"Velg rekkefølge på valg\",\n visible: \"Er synlig?\",\n isRequired: \"Er nødvendig?\",\n isAllRowRequired: \"Nødvendig svar for alle rader\",\n requiredErrorText: \"Nødvendig feilmelding\",\n startWithNewLine: \"Må starte med ny linje?\",\n rows: \"Antall rader\",\n cols: \"Antall kolonner\",\n placeholder: \"Hjelpetekst\",\n showPreview: \"Er forhåndsvisning av bilde vist?\",\n storeDataAsText: \"Lagre filinnhold i JSON-resultat som tekst\",\n maxSize: \"Maksimum filstørrelse i bytes\",\n imageHeight: \"Bildehøyde\",\n imageWidth: \"Bildebredde\",\n rowCount: \"Antall rader\",\n columnLayout: \"Antall kolonner\",\n addRowLocation: \"Legg til rad knapp-plassering\",\n addRowText: \"Legg til rad knapp-tekst\",\n removeRowText: \"Fjern rad knapp-tekst\",\n rateMin: \"Minimum sats\",\n rateMax: \"Maksimum sats\",\n rateStep: \"Sats steg\",\n minRateDescription: \"Beskrivelse minimumsvudering\",\n maxRateDescription: \"Beskrivelse maksimumsvurdering\",\n inputType: \"Inndata-type\",\n optionsCaption: \"Tekst for alternativer\",\n defaultValue: \"Standardverdi\",\n cellsDefaultRow: \"Standard celletekster\",\n surveyEditorTitle: \"Rediger skjemainnstillinger\",\n qEditorTitle: \"Rediger: {0}\",\n maxLength: \"Maksimum lengde\",\n buildExpression: \"Bygg\",\n editExpression: \"Rediger\",\n and: \"Og\",\n or: \"Eller\",\n remove: \"Fjern\",\n addCondition: \"Legg til\",\n //survey\n showTitle: \"Vis/skjul tittel\",\n expandCollapseTitle: \"Utvid/krymp tittel\",\n locale: \"Standard språk\",\n simulator: \"Velg enhet\",\n landscapeOrientation: \"Liggende\",\n mode: \"Modus (rediger/kun lesbart)\",\n clearInvisibleValues: \"Fjern usynlige verdier\",\n cookieName: \"Informasjonskapsel navn (for å hindre bruk av skjema to ganger lokalt)\",\n sendResultOnPageNext: \"Send skjema resultat ved neste side\",\n storeOthersAsComment: \"Lagre 'andre' verdier i et separat felt\",\n showPageTitles: \"Vis sidetittel\",\n showPageNumbers: \"Vis sidenummer\",\n pagePrevText: \"Forrige side knapp tekst\",\n pageNextText: \"Neste side knapp tekst\",\n completeText: \"Fullfør knapp tekst\",\n previewText: \"Forhåndsvisning knapp tekst\",\n editText: \"Rediger knapp tekst\",\n startSurveyText: \"Start knapp tekst\",\n showNavigationButtons: \"Vis navigasjonsknapper (standard navigering)\",\n showPrevButton: \"Vis forrige knapp (bruker kan gå til forrige side)\",\n firstPageIsStarted: \"Den første siden i skjema er startside.\",\n showCompletedPage: \"Vis ferdigsiden på slutten (completedHtml)\",\n goNextPageAutomatic: \"Når en har svart alle spørsmål, gå til neste side automatisk\",\n showProgressBar: \"Vis fremdriftslinje\",\n questionTitleLocation: \"Spørsmål tittel plassering\",\n requiredText: \"Svar nødvendig symbol(er)\",\n questionStartIndex: \"Spørsmål startindeks (1, 2 eller 'A', 'a')\",\n showQuestionNumbers: \"Vis spørsmålsnummer\",\n questionTitleTemplate: \"Spørsmål tittel mal, standard er: '{no}. {require} {title}'\",\n questionErrorLocation: \"Spørsmål feil plassering\",\n focusFirstQuestionAutomatic: \"Sett fokus på første spørsmål når en endrer side\",\n questionsOrder: \"Rekkefølge på elementer på siden\",\n maxTimeToFinish: \"Maks tid for å gjøre ferdig skjema\",\n maxTimeToFinishPage: \"Maks tid til å gjøre ferdig en side i skjema\",\n showTimerPanel: \"Vis tidtaking\",\n showTimerPanelMode: \"Vis tidtaking-modus\",\n renderMode: \"Gjengivelse modus\",\n allowAddPanel: \"Tillat å legge til panel\",\n allowRemovePanel: \"Tillat å fjerne panel\",\n panelAddText: \"Legg til panel tekst\",\n panelRemoveText: \"Fjern panel tekst\",\n isSinglePage: \"Vis alle elementer på en side\",\n html: \"HTML\",\n expression: \"Formel\",\n minValue: \"Minimumsverdi\",\n maxValue: \"Maksimal verdi\",\n minLength: \"Minimum lengde\",\n allowDigits: \"Tillat tall\",\n minCount: \"Minimum count\",\n maxCount: \"Maximum count\",\n regex: \"Regular expression\",\n totalText: \"Total tekst\",\n totalType: \"Total type\",\n totalExpression: \"Total formel\",\n totalDisplayStyle: \"Total visningsstil\",\n totalCurrency: \"Total valuta\",\n totalFormat: \"Total format\",\n // Header adorner\n logoPosition: \"Logo-posisjon\",\n addLogo: \"Legg til logo...\",\n changeLogo: \"Bytt logo...\",\n logoPositions: {\n none: \"Fjern logo\",\n left: \"Venstre\",\n right: \"Høyre\",\n top: \"Topp\",\n bottom: \"Bunn\",\n },\n tabs: {\n general: \"Generelt\",\n fileOptions: \"Valg\",\n html: \"HTML-editor\",\n columns: \"Kolonner\",\n rows: \"Rader\",\n choices: \"Valg\",\n items: \"Elementer\",\n visibleIf: \"Synlig hvis\",\n enableIf: \"Tilgjengelig hvis\",\n requiredIf: \"Nødvendig hvis\",\n rateValues: \"Rangering verdier\",\n choicesByUrl: \"Valg fra web\",\n matrixChoices: \"Standardvalg\",\n multipleTextItems: \"Tekst inndata\",\n numbering: \"Nummerering\",\n validators: \"Valideringer\",\n navigation: \"Navigering\",\n question: \"Spørsmål\",\n pages: \"Sider\",\n completedHtml: \"Fullført HTML\",\n completedHtmlOnCondition: \"Fullført HTML på betingelse\",\n loadingHtml: \"Laster HTML\",\n timer: \"Tidtaker/Quiz\",\n calculatedValues: \"Beregnede verdier\",\n triggers: \"Triggere\",\n templateTitle: \"Mal-tittel\",\n totals: \"Totaler\",\n logic: \"Logikk\",\n layout: \"Oppsett\",\n data: \"Data\",\n validation: \"Validering\",\n cells: \"Celler\",\n showOnCompleted: \"Vis når ferdig\",\n logo: \"Logo i skjematittel\",\n slider: \"Slider\",\n others: \"Andre\",\n },\n editProperty: \"Rediger verdi '{0}'\",\n items: \"[ Elementer: {0} ]\",\n enterNewValue: \"Vennligst fyll inn verdien.\",\n noquestions: \"Det er ingen spørsmål i skjemaet.\",\n createtrigger: \"Vennligst lag en trigger\",\n titleKeyboardAdornerTip: \"Trykk enter-tasten for å redigere\",\n keyboardAdornerTip: \"Trykk enter-tasten for å redigere elementet, trykk slette-tasten for å slette elementet, trykk Alt + pil opp/ned for å flytte elementet\",\n triggerOn: \"På \",\n triggerMakePagesVisible: \"Gjør sider synlige:\",\n triggerMakeQuestionsVisible: \"Gjør elementer synlige:\",\n triggerCompleteText: \"Fullfør skjema dersom vellykket.\",\n triggerNotSet: \"Trigger er ikke satt\",\n triggerRunIf: \"Kjør dersom\",\n triggerSetToName: \"Endre verdien av: \",\n triggerFromName: \"Kopier verdi fra: \",\n triggerRunExpression: \"Kjør denne formelen:\",\n triggerSetValue: \"til: \",\n triggerGotoName: \"Gå til spørsmål:\",\n triggerIsVariable: \"Ikke legg variabelen i resultatet.\",\n triggerRunExpressionEmpty: \"Vennligst fyll inn en gyldig formel\",\n noFile: \"Ingen fil valgt\",\n },\n //Property values\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"inherit\",\n show: \"show\",\n hide: \"hide\",\n default: \"default\",\n initial: \"initial\",\n random: \"random\",\n collapsed: \"collapsed\",\n expanded: \"expanded\",\n none: \"none\",\n asc: \"ascending\",\n desc: \"descending\",\n indeterminate: \"indeterminate\",\n decimal: \"decimal\",\n currency: \"currency\",\n percent: \"percent\",\n firstExpanded: \"firstExpanded\",\n off: \"off\",\n onPanel: \"onPanel\",\n onSurvey: \"onSurvey\",\n list: \"list\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n top: \"top\",\n bottom: \"bottom\",\n topBottom: \"top and bottom\",\n both: \"both\",\n left: \"left\",\n color: \"color\",\n date: \"date\",\n datetime: \"datetime\",\n \"datetime-local\": \"datetime-local\",\n email: \"email\",\n month: \"month\",\n number: \"number\",\n password: \"password\",\n range: \"range\",\n tel: \"tel\",\n text: \"text\",\n time: \"time\",\n url: \"url\",\n week: \"week\",\n hidden: \"hidden\",\n on: \"on\",\n onPage: \"onPage\",\n edit: \"edit\",\n display: \"display\",\n onComplete: \"onComplete\",\n onHidden: \"onHidden\",\n all: \"all\",\n page: \"page\",\n survey: \"survey\",\n onNextPage: \"onNextPage\",\n onValueChanged: \"onValueChanged\",\n singlePage: \"single page\",\n standard: \"standard\",\n questionPerPage: \"question per page\",\n noPreview: \"no preview\",\n showAllQuestions: \"show preview with all questions\",\n showAnsweredQuestions: \"show preview with answered questions\",\n },\n //Operators\n op: {\n empty: \"er tom\",\n notempty: \"er ikke tom\",\n equal: \"er lik\",\n notequal: \"er ikke lik\",\n contains: \"inneholder\",\n notcontains: \"inneholder ikke\",\n anyof: \"noen av\",\n allof: \"alle av\",\n greater: \"større enn\",\n less: \"mindre enn\",\n greaterorequal: \"større eller lik\",\n lessorequal: \"mindre eller lik\",\n and: \"og\",\n or: \"eller\",\n },\n //Embed window\n ew: {\n angular: \"Bruk Angular-versjon\",\n jquery: \"Bruk jQuery-versjon\",\n knockout: \"Bruk Knockout-versjon\",\n react: \"Bruk React-versjon\",\n vue: \"Bruk Vue-versjon\",\n bootstrap: \"For Bootstrap-rammeverk\",\n standard: \"Ikke Bootstrap\",\n showOnPage: \"Vis skjema på en side\",\n showInWindow: \"Vis skjema i et vindu\",\n loadFromServer: \"Last skjemadefinisjon som JSON fra server\",\n titleScript: \"Skript og stiler\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Velg side:\",\n showInvisibleElements: \"Vis usynlige elementer\",\n },\n validators: {\n answercountvalidator: \"antall svar\",\n emailvalidator: \"e-post\",\n expressionvalidator: \"formel\",\n numericvalidator: \"numerisk\",\n regexvalidator: \"regex\",\n textvalidator: \"tekst\",\n },\n triggers: {\n completetrigger: \"complete skjema\",\n setvaluetrigger: \"set value\",\n copyvaluetrigger: \"copy value\",\n skiptrigger: \"hopp til spørsmål\",\n runexpressiontrigger: \"kjør formel\",\n visibletrigger: \"endre synlighet (deprecated)\",\n },\n //Properties\n p: {\n name: \"name\",\n title: {\n name: \"title\",\n title: \"La den være tom, dersom den skal være samme som navnet\",\n },\n navigationButtonsVisibility: \"navigationButtonsVisibility\",\n questionsOrder: \"questionsOrder\",\n maxTimeToFinish: \"maxTimeToFinish\",\n visible: \"visible\",\n visibleIf: \"visibleIf\",\n questionTitleLocation: \"questionTitleLocation\",\n description: \"description\",\n state: \"state\",\n isRequired: \"isRequired\",\n requiredIf: \"requiredIf\",\n indent: \"indent\",\n requiredErrorText: \"requiredErrorText\",\n startWithNewLine: \"startWithNewLine\",\n innerIndent: \"innerIndent\",\n page: \"page\",\n width: \"width\",\n commentText: \"commentText\",\n valueName: \"valueName\",\n enableIf: \"enableIf\",\n defaultValue: \"defaultValue\",\n correctAnswer: \"correctAnswer\",\n readOnly: \"readOnly\",\n validators: \"validators\",\n titleLocation: \"titleLocation\",\n hasComment: \"hasComment\",\n showOtherItem: \"hasOther\",\n choices: \"choices\",\n choicesOrder: \"choicesOrder\",\n choicesByUrl: \"choicesByUrl\",\n otherText: \"otherText\",\n otherErrorText: \"otherErrorText\",\n storeOthersAsComment: \"storeOthersAsComment\",\n label: \"label\",\n showTitle: \"showTitle\",\n valueTrue: \"valueTrue\",\n valueFalse: \"valueFalse\",\n cols: \"cols\",\n rows: \"rows\",\n optionsCaption: \"optionsCaption\",\n expression: \"expression\",\n format: \"format\",\n displayStyle: \"displayStyle\",\n currency: \"currency\",\n useGrouping: \"useGrouping\",\n showPreview: \"showPreview\",\n allowMultiple: \"allowMultiple\",\n imageHeight: \"imageHeight\",\n imageWidth: \"imageWidth\",\n storeDataAsText: \"storeDataAsText\",\n maxSize: \"maxSize\",\n html: \"html\",\n columns: \"columns\",\n cells: \"cells\",\n isAllRowRequired: \"isAllRowRequired\",\n horizontalScroll: \"horizontalScroll\",\n cellType: \"cellType\",\n columnsLayout: \"columnsLayout\",\n columnColCount: \"columnColCount\",\n columnMinWidth: \"columnMinWidth\",\n rowCount: \"rowCount\",\n minRowCount: \"minRowCount\",\n maxRowCount: \"maxRowCount\",\n keyName: \"keyName\",\n keyDuplicationError: \"keyDuplicationError\",\n confirmDelete: \"confirmDelete\",\n confirmDeleteText: \"confirmDeleteText\",\n addRowLocation: \"addRowLocation\",\n addRowText: \"addRowText\",\n removeRowText: \"removeRowText\",\n items: \"items\",\n itemSize: \"itemSize\",\n colCount: \"colCount\",\n templateTitle: \"templateTitle\",\n templateDescription: \"templateDescription\",\n allowAddPanel: \"allowAddPanel\",\n allowRemovePanel: \"allowRemovePanel\",\n panelCount: \"panelCount\",\n minPanelCount: \"minPanelCount\",\n maxPanelCount: \"maxPanelCount\",\n panelsState: \"panelsState\",\n panelAddText: \"panelAddText\",\n panelRemoveText: \"panelRemoveText\",\n panelPrevText: \"panelPrevText\",\n panelNextText: \"panelNextText\",\n showQuestionNumbers: \"showQuestionNumbers\",\n showRangeInProgress: \"showRangeInProgress\",\n renderMode: \"renderMode\",\n templateTitleLocation: \"templateTitleLocation\",\n rateValues: \"rateValues\",\n rateMin: \"rateMin\",\n rateMax: \"rateMax\",\n rateStep: \"rateStep\",\n minRateDescription: \"minRateDescription\",\n maxRateDescription: \"maxRateDescription\",\n inputType: \"inputType\",\n size: \"size\",\n locale: \"locale\",\n focusFirstQuestionAutomatic: \"focusFirstQuestionAutomatic\",\n completedHtml: \"completedHtml\",\n completedBeforeHtml: \"completedBeforeHtml\",\n loadingHtml: \"loadingHtml\",\n triggers: \"triggers\",\n cookieName: \"cookieName\",\n sendResultOnPageNext: \"sendResultOnPageNext\",\n showNavigationButtons: \"showNavigationButtons\",\n showPrevButton: \"showPrevButton\",\n showPageTitles: \"showPageTitles\",\n showCompletedPage: \"showCompletedPage\",\n showPageNumbers: \"showPageNumbers\",\n questionErrorLocation: \"questionErrorLocation\",\n showProgressBar: \"showProgressBar\",\n mode: \"mode\",\n goNextPageAutomatic: \"goNextPageAutomatic\",\n checkErrorsMode: \"checkErrorsMode\",\n clearInvisibleValues: \"clearInvisibleValues\",\n startSurveyText: \"startSurveyText\",\n pagePrevText: \"pagePrevText\",\n pageNextText: \"pageNextText\",\n completeText: \"completeText\",\n requiredText: \"requiredText\",\n questionStartIndex: \"questionStartIndex\",\n questionTitleTemplate: \"questionTitleTemplate\",\n firstPageIsStarted: \"firstPageIsStarted\",\n isSinglePage: \"isSinglePage\",\n maxTimeToFinishPage: \"maxTimeToFinishPage\",\n showTimerPanel: \"showTimerPanel\",\n showTimerPanelMode: \"showTimerPanelMode\",\n defaultPanelValue: \"defaultPanelValue\",\n defaultRowValue: \"defaultRowValue\",\n showNoneItem: \"hasNone\",\n noneText: \"noneText\",\n text: \"text\",\n },\n};\n//Uncomment this line on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"nb\"] = nbStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/persian.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/persian.ts ***!\n \\*************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar persianStrings = {\n \"survey\": {\n \"edit\": \"ویرایش\",\n \"externalHelpLink\": \"نگاه کنید و ساختن نظرسنجی را آموزش ببینید\",\n \"externalHelpLinkUrl\": \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n \"dropQuestion\": \"لطفا از جعبه ابزار سوالی در اینجا قرار دهید\",\n \"addLogicItem\": \"برای شخصی سازی نظرسنجی خود، قانونی را ایجاد کنید\",\n \"copy\": \"کپی\",\n \"duplicate\": \"کپی کردن\",\n \"addToToolbox\": \"افزودن به جعبه ابزار\",\n \"deletePanel\": \"حذف پنل\",\n \"deleteQuestion\": \"حذف سوال\",\n \"convertTo\": \"تبدیل به\",\n \"drag\": \"المان را بکشید\"\n },\n \"qt\": {\n \"default\": \"پیش فرض\",\n \"checkbox\": \"چند انتخابی\",\n \"comment\": \"نظر\",\n \"imagepicker\": \"انتخاب عکس\",\n \"ranking\": \"رتبه بندی(رنک)\",\n \"image\": \"عکس\",\n \"dropdown\": \"لیست انتخابی\",\n \"file\": \"فایل\",\n \"html\": \"Html\",\n \"matrix\": \"ماتریس (تک انتخابی)\",\n \"matrixdropdown\": \"ماتریس (چند انتخابی)\",\n \"matrixdynamic\": \"ماتریس (سطرهای داینامیک)\",\n \"multipletext\": \"متن چند خطی\",\n \"panel\": \"پنل\",\n \"paneldynamic\": \"پنل (پنل های داینامیک)\",\n \"radiogroup\": \"تک انتخابی\",\n \"rating\": \"رتبه بندی\",\n \"text\": \"متن تک خطی\",\n \"boolean\": \"صحیح و غلط\",\n \"expression\": \"توصیفی\",\n \"signaturepad\": \"قسمت امضا\",\n \"flowpanel\": \"پنل جریان\"\n },\n \"ed\": {\n \"defaultLocale\": \"پیش فرض ({0})\",\n \"survey\": \"نظرسنجی\",\n \"settings\": \"تنظیمات نظرسنجی\",\n \"settingsTooltip\": \"باز کردن تنظیمات نظرسنجی\",\n \"showPanel\": \"نمایش پنل\",\n \"hidePanel\": \"پنهان سازی پنل\",\n \"addNewPage\": \"درج صفحه جدید\",\n \"moveRight\": \"اسکرول به راست\",\n \"moveLeft\": \"اسکرول به چپ\",\n \"deletePage\": \"حذف صفحه\",\n \"editPage\": \"ویرایش صفحه\",\n \"edit\": \"ویرایش\",\n \"newPageName\": \"صفحه\",\n \"newQuestionName\": \"سوال\",\n \"newPanelName\": \"پنل\",\n \"newTextItemName\": \"متن\",\n \"testSurvey\": \"آزمایش نظرسنجی\",\n \"testSurveyAgain\": \"آزمایش دوباره نظرسنجی\",\n \"testSurveyWidth\": \"عرض نظرسنجی: \",\n \"navigateToMsg\": \"شما باید به موارد زیر بروید:\",\n \"logic\": \"منطق نظرسنجی\",\n \"embedSurvey\": \"نظرسنجی توکار\",\n \"translation\": \"ترجمه\",\n \"saveSurvey\": \"ذخیره نظرسنجی\",\n \"saveSurveyTooltip\": \"ذخیره نظرسنجی\",\n \"designer\": \"طراح نظرسنجی\",\n \"jsonEditor\": \"ویرایشگر JSON\",\n \"undo\": \"بازگردانی\",\n \"redo\": \"بازانجام\",\n \"undoTooltip\": \"بازگرداندن آخرین تغییر\",\n \"redoTooltip\": \"انجام دادن تغییر\",\n \"copy\": \"کپی\",\n \"cut\": \"برداشتن\",\n \"paste\": \"چسباندن\",\n \"copyTooltip\": \"کپی متن انتخاب شده در کلیپ بورد\",\n \"cutTooltip\": \"متن انتخابی را از کلیپ بورد برش دهید\",\n \"pasteTooltip\": \"الصاق از کلیپ بورد\",\n \"options\": \"انتخاب ها\",\n \"generateValidJSON\": \"تولید کد معتبر JSON\",\n \"generateReadableJSON\": \"تولید کد خوانا JSON\",\n \"toolbox\": \"جعبه ابزار\",\n \"property-grid\": \"ویژگی ها\",\n \"toolboxGeneralCategory\": \"عمومی\",\n \"correctJSON\": \"لطفا JSON را تصحیح کنید.\",\n \"surveyResults\": \"نتایج نظرسنجی: \",\n \"surveyResultsTable\": \"به صورت جدول\",\n \"surveyResultsJson\": \"به صورت JSON\",\n \"resultsTitle\": \"عنوان سوال\",\n \"resultsName\": \"نام سوال\",\n \"resultsValue\": \"محتوای پاسخ\",\n \"resultsDisplayValue\": \"محتوای نمایشی\",\n \"modified\": \"تغییر داده شده\",\n \"saving\": \"در حال ذخیره\",\n \"saved\": \"ذخیره شد\",\n \"propertyEditorError\": \"خطا:\",\n \"saveError\": \"خطا! محتوای ویرایشگر ذخیره نشده است.\",\n \"translationAddLanguage\": \"زبانی را برای ترجمه انتخاب کنید\",\n \"translationShowAllStrings\": \"نمایش تمام عبارات\",\n \"translationShowAllPages\": \"نمایش تمام صفحات\",\n \"translationNoStrings\": \"هیچ عبارتی برای ترجمه نیست، لطفا فیلتر را عوض کنید.\",\n \"translationExportToSCVButton\": \"برون بری به CSV\",\n \"translationImportFromSCVButton\": \"برون ریزی از CSV\",\n \"translationMergeLocaleWithDefault\": \"ادغام {0} با زبان پیش فرض\",\n \"bold\": \"پررنگ\",\n \"italic\": \"مورب\",\n \"underline\": \"پایین خط\",\n \"fpAddQuestion\": \"اضافه کردن سوال ...\",\n \"selectPage\": \"انتخاب صفحه ...\",\n \"chooseElement\": \"انتخاب بخش ...\",\n \"lg\": {\n \"addNewItem\": \"اضافه کردن آیتم جدید\",\n \"page_visibilityName\": \"قابلیت رویت صفحه \",\n \"panel_visibilityName\": \"قابلیت رویت پنل\",\n \"panel_enableName\": \"فعال/غیرفعال کردن پنل \",\n \"question_visibilityName\": \" قابلیت رویت سوال\",\n \"question_enableName\": \"فعال/غیرفعال کردن سوال \",\n \"question_requireName\": \"سوال اختیاری موردنیاز\",\n \"trigger_completeName\": \"تکمیل نظرسنجی\",\n \"trigger_setvalueName\": \"تنظیم عنوان سوال\",\n \"trigger_copyvalueName\": \"کپی مقدار سوال\",\n \"trigger_skipName\": \"رد کردن سوال \",\n \"trigger_runExpressionName\": \"اجرای متن شفارشی مورد نظر\",\n \"completedHtmlOnConditionName\": \"متن سفارشی صفحه 'تشکر' \",\n \"page_visibilityDescription\": \"زمانی که عبارت منطقی مقدار صحیح برمی گرداند صفحه را قابل مشاهده کنید، در غیراینصورت آن را غیرقابل مشاهده نگه دارید.\",\n \"panel_visibilityDescription\": \"اگر عبارت منطقی مقدار صحیح بر میگرداند، پنل را فعال کنید، در غیر اینصورت آن را غیرقابل مشاهده نگه دارید.\",\n \"panel_enableDescription\": \"یک پنل ایجاد کنید و همه المان های داخل آن را در صورتی که عبارت منطقی مقدار صحیح بر می گرداند را فعال کنید، در غیر اینصورت آن ها را غیرفعال نگه دارید.\",\n \"question_visibilityDescription\": \"زمانی که عبارت منطقی مقدار صحیح را برمی گرداند، سوال را قابل مشاهده کنید، در غیر اینصورت آن را غیرمشاهده نگه دارید.\",\n \"question_enableDescription\": \"زمانی که عبارت منطقی مقدار صحیح برمی گرداند، سوال را فعال کنید، در غیر اینصورت آن را غیرفعال نگه دارید.\",\n \"question_requireDescription\": \"زمانی که عبارت منطقی مقدار صحیح را بر می گرداند، سوال اجبار ی می شود.\",\n \"trigger_completeDescription\": \"زمانی که عبارت منطقی مقدار صحیح را بر می گرداند، و بررسی تکمیل می شود،کاربر نهایی صفحه 'تشکر' را مشاهده می کند.\",\n \"trigger_setvalueDescription\": \"زمانی که مقدار سوالی که در عبارت منطقی استفاده شده است تغییر می یابد و عبارت منطقی مقدار صحیح را بر می گرداند، آنگاه مقدار برای سوال انتخاب شده تنظیم می شود.\",\n \"trigger_copyvalueDescription\": \"زمانی که مقدارهای سوال که در عبارت منطقی استفاده شده اند، تغییر می یابد و عبارت منطقی مقدار صحیح را بر می گرداند، سپس مقدار یکی از سوال های انتخاب شده در سوال دیگر انتخاب شده کپی می شود.\",\n \"trigger_skipDescription\": \"زمانی که عبارت منطقی صحیح برمی گرداند، سپس نظرسنجی به سوال انتخابی می رود.\",\n \"trigger_runExpressionDescription\": \"اگر عبارت منطقی مقدار صحیح برگرداند، آنگاه عبارت سفارشی اجرا می شود. شما ممکن است به طور اختیاری این نتیجه را به سوال انتخاب شده تبدیل کنید.\",\n \"completedHtmlOnConditionDescription\": \" اگر عبارت منطقی مقدار صحیح برگرداند متن صفحه 'تشکر' به متن داده شده تغییر می یابد.\",\n \"itemExpressionText\": \"زمانی که عبارت {0} مقدار صحیح بر می گرداند\",\n \"page_visibilityText\": \"صفحه {0} را قابل مشاهده کنید.\",\n \"panel_visibilityText\": \"پنل {0} را قابل مشاهده کنید.\",\n \"panel_enableText\": \"فعال کردن پنل {0}\",\n \"question_visibilityText\": \"سوال {0} را قابل مشاهده کنید.\",\n \"question_enableText\": \"فعال کردن سوال {0}\",\n \"question_requireText\": \"ایجاد سوال {0} اجباری\",\n \"trigger_completeText\": \"بررسی نظرسنجی تمام شد\",\n \"trigger_setvalueText\": \"در سوال {0} مقدار {1} را قرار دهید\",\n \"trigger_copyvalueText\": \"مقدار سوال {0} را از سوال {1} کپی کنید.\",\n \"trigger_skipText\": \"رد کردن نظرسنجی برای سوال {0}\",\n \"trigger_runExpressionText1\": \"اجرای عبارت '{0}' \",\n \"trigger_runExpressionText2\": \"و نتیجه آن را داخل سوال {0} ذخیره کنید\",\n \"completedHtmlOnConditionText\": \"نمایش متن سفارشی برای صفحه 'تشکر'\",\n \"conditions\": \"شرط(ها)\",\n \"actions\": \"عملکرد(ها)\",\n \"expressionEditorTitle\": \"عبارت منطقی را تنظیم کنید\",\n \"actionsEditorTitle\": \"تعریف کردن عملکرد(ها)\",\n \"deleteAction\": \"حذف عملکرد\",\n \"addNewAction\": \"اضافه کردن سوال (های) جدید\",\n \"selectedActionCaption\": \"یک عملکرد را برای اضافه کردن، انتخاب کنید\",\n \"expressionInvalid\": \"عبارت منطقی خالی یا نادرست است. لطفا آن را تضحیح کنید\",\n \"noActionError\": \"لطفا حداقل یک عملکرد را اضافه نمایید\",\n \"actionInvalid\": \"لطفا مشکلات مربوط به عملکرد(های) خود را برطرف نمایید.\",\n \"expressionSetup\": \"تنظیمات عبارت ها\",\n \"actionsSetup\": \"تنظیمات عملکردها\"\n },\n \"opjectPropertiesHeader\": \"پیشرفته\",\n \"showObjectProperties\": \"نمایش مشخصات بخش مورد نظر\",\n \"hideObjectProperties\": \"پنهان سازی مشخصات بخش مورد نظر\",\n \"editSurvey\": \"ویرایش نظرسنجی\",\n \"delSelObject\": \"حذف مورد انتخابی\",\n \"editSelObject\": \"ویرایش مورد انتخابی\",\n \"completedHtmlOnConditionItemText\": \"نمایش می دهد اگر:\"\n },\n \"pe\": {\n \"apply\": \"اعمال\",\n \"ok\": \"تایید\",\n \"save\": \"ذخیره\",\n \"saveTooltip\": \"ذخیره\",\n \"cancel\": \"لغو\",\n \"reset\": \"بازنشانی\",\n \"refresh\": \"تازه سازی\",\n \"delete\": \"حذف\",\n \"add\": \"افزودن\",\n \"addNew\": \"افزودن\",\n \"addItem\": \"برای اضافه کردن یک آیتم کلیک کنید...\",\n \"addOther\": \"سایر\",\n \"addSelectAll\": \"انتخاب همه\",\n \"addNone\": \"هیچکدام\",\n \"removeAll\": \"حذف همه\",\n \"edit\": \"ویرایش\",\n \"back\": \"بازگشت\",\n \"backTooltip\": \"بازگشت بدون ذخیره\",\n \"saveAndBack\": \"ذخیره و بازگشت\",\n \"saveAndBackTooltip\": \"ذخیره و بازگشت\",\n \"editChoices\": \"ویرایش انتخاب ها\",\n \"showChoices\": \"نمایش انتخاب ها\",\n \"move\": \"جابجایی\",\n \"empty\": \"<خالی>\",\n \"fastEntry\": \"تکمیل سریع\",\n \"formEntry\": \"تکمیل فرم\",\n \"testService\": \"بررسی سرویس\",\n \"itemSelectorEmpty\": \"لطفا یک المان را انتخاب کنید \",\n \"conditionActionEmpty\": \"لطفا عملکرد را انتخاب کنید\",\n \"conditionSelectQuestion\": \"انتخاب سوال...\",\n \"conditionSelectPage\": \"انتخاب صفحه...\",\n \"conditionSelectPanel\": \"انتخاب پنل...\",\n \"conditionValueQuestionTitle\": \"لطفا مقدار را انتخاب / وارد کنید\",\n \"expressionHelp\": \"لطفا یک عبارت توصیفی را وارد کنید. شما ممکن است از کروشه برای دسترسی به مقدار سوالات استفاده کنید. برای مثال: {question1} = 'value1' or ({question2} = 3 and {question3} < 5)\",\n \"aceEditorHelp\": \"برای مشاهده نکات تکمیلی ctrl+space را بفشارید\",\n \"aceEditorRowTitle\": \"سطر فعلی\",\n \"aceEditorPanelTitle\": \"پنل فعلی\",\n \"showMore\": \"برای اطلاعات بیشتر لطفا سند راهنما را مطالعه کنید\",\n \"assistantTitle\": \"سوالات موجود:\",\n \"cellsEmptyRowsColumns\": \"حداقل باید یک سطر یا ستون وجود داشته باشد.\",\n \"propertyIsEmpty\": \"لطفا یک مقدار وارد کنید\",\n \"propertyIsNoUnique\": \"لطفاً یک مقدار منحصر به فرد وارد کنید\",\n \"propertyNameIsNotUnique\": \"لطفاً یک نام منحصر به فرد وارد کنید\",\n \"listIsEmpty\": \"یک آیتم جدید اضافه کنید\",\n \"expressionIsEmpty\": \"عبارت خالی است\",\n \"value\": \"مقدار\",\n \"text\": \"متن\",\n \"rowid\": \"شناسه ی سطر\",\n \"imageLink\": \"لینک تصویر\",\n \"columnEdit\": \"ویرایش ستون: {0}\",\n \"itemEdit\": \"ویرایش آیتم: {0}\",\n \"url\": \"آدرس وب سایت(url)\",\n \"path\": \"آدرس\",\n \"valueName\": \"نام مقدار\",\n \"titleName\": \"نام عنوان\",\n \"titlePlaceholder\": \"عنوان را اینجا وارد کنید\",\n \"surveyTitlePlaceholder\": \"عنوان نظرسنجی را اینجا وارد کنید\",\n \"pageTitlePlaceholder\": \"عنوان صفحه را اینجا وارد کنید\",\n \"descriptionPlaceholder\": \"توضیحات را وارد کنید\",\n \"surveyDescriptionPlaceholder\": \"توضیحات نظرسنجی را وارد کنید\",\n \"pageDescriptionPlaceholder\": \"توضیحات صفحه را وارد کنید\",\n \"hasOther\": \"دارای آیتم دیگر\",\n \"otherText\": \"سایر آیتم های متن\",\n \"hasNone\": \"هیچ آیتمی ندارد\",\n \"noneText\": \"هیچ آیتم متنی وجود ندارد\",\n \"hasSelectAll\": \"همه موارد انتخاب شده است\",\n \"selectAllText\": \"انتخاب همه آیتم های متن\",\n \"choicesMin\": \"حداقل مقدار برای ایجاد خودکار آیتم ها\",\n \"choicesMax\": \"حداکثر مقدار برای ایجاد خود آیتم ها\",\n \"choicesStep\": \"تفاوت بین موارد تولید شده خودکار\",\n \"name\": \"نام\",\n \"title\": \"عنوان\",\n \"cellType\": \"نوع سلول\",\n \"colCount\": \"تعداد ستون\",\n \"choicesOrder\": \"ترتیب گزینه را انتخاب کنید\",\n \"visible\": \"نمایش داده شود؟\",\n \"isRequired\": \"ضروری است؟\",\n \"isAllRowRequired\": \"نیاز به پاسخ برای همه سطرها\",\n \"requiredErrorText\": \"متن خطای موردنیاز\",\n \"startWithNewLine\": \"با سطر جدید شروع شود؟\",\n \"rows\": \"تعداد سطر\",\n \"cols\": \"تعداد ستون\",\n \"placeholder\": \"نگهدارنده متن\",\n \"showPreview\": \"پیش نمایش تصویر نشان داده شود؟\",\n \"storeDataAsText\": \"ذخیره کردن محتوای فایل در JSON به عنوان متن\",\n \"maxSize\": \"حداکثر سایز به بایت\",\n \"imageHeight\": \"ارتفاع تصویر\",\n \"imageWidth\": \"عرض تصویر\",\n \"rowCount\": \"تعداد سطر\",\n \"columnLayout\": \"قالب ستون ها\",\n \"addRowLocation\": \"اضافه کردن موقعیت دکمه سطری\",\n \"addRowText\": \"متن دکمه درج سطر\",\n \"removeRowText\": \"متن دکمه حذف سطر\",\n \"rateMin\": \"حداقل میزان\",\n \"rateMax\": \"حداکثر میزان\",\n \"rateStep\": \"میزان مراحل\",\n \"minRateDescription\": \"توضیح حداقل امتیاز\",\n \"maxRateDescription\": \"توضیح حداکثر امتیاز\",\n \"inputType\": \"نوع ورودی\",\n \"optionsCaption\": \"نوشته انتخاب ها\",\n \"defaultValue\": \"مقدار پیش فرض\",\n \"cellsDefaultRow\": \"متن پیش فرض سلول ها\",\n \"surveyEditorTitle\": \"ویرایش نظرسنجی\",\n \"qEditorTitle\": \"ویرایش سوال: {0}\",\n \"maxLength\": \"ماکزیمم طول\",\n \"buildExpression\": \"ساختن\",\n \"editExpression\": \"ویرایش\",\n \"and\": \"و\",\n \"or\": \"یا\",\n \"remove\": \"حذف\",\n \"addCondition\": \"اضافه کردن شرط\",\n \"showTitle\": \"نمایش/پنهان کردن عنوان\",\n \"expandCollapseTitle\": \"نمایش/پنهان کردن عنوان\",\n \"locale\": \"زبان پیش فرض\",\n \"simulator\": \"انتخاب دستگاه\",\n \"landscapeOrientation\": \"افقی\",\n \"mode\": \"حالت (ویرایش/خواندن)\",\n \"clearInvisibleValues\": \"پاکسازی مقادیر پنهان\",\n \"cookieName\": \"نام کوکی (به منظور جلوگیری از اجرای دوباره نظرسنجی)\",\n \"sendResultOnPageNext\": \"ارسال نتایج نظرسنجی در صفحه بعدی\",\n \"storeOthersAsComment\": \"ذخیره مقدار 'سایر' در فیلد جداگانه\",\n \"showPageTitles\": \"نمایش عنوان صفحات\",\n \"showPageNumbers\": \"نمایش شماره صفحات\",\n \"pagePrevText\": \"متن دکمه صفحه قبلی\",\n \"pageNextText\": \"متن دکمه صفحه بعدی\",\n \"completeText\": \"متن دکمه تکمیل نظرسنجی\",\n \"previewText\": \"پیش نمایش متن دکمه\",\n \"editText\": \"ویرایش متن دکمه\",\n \"startSurveyText\": \"متن دکمه شروع نظرسنجی\",\n \"showNavigationButtons\": \"نمایش دکمه های ناوبری (ناوبری پیش فرض)\",\n \"showPrevButton\": \"نمایش دکمه قبلی (کاربر ممکن است به صفحه قبل برگردد)\",\n \"firstPageIsStarted\": \"صفحه اول در نظرسنجی نقطه آغازین آن است.\",\n \"showCompletedPage\": \"نمایش صفحه اتمام نظرسنجی در پایان (completedHtml)\",\n \"goNextPageAutomatic\": \"با پاسخگویی به تمام سوالات، به صورت اتوماتیک به صفحه بعد برود\",\n \"showProgressBar\": \"نمایش نشانگر پیشرفت\",\n \"questionTitleLocation\": \"محل عنوان سوال\",\n \"requiredText\": \"سوالات نشان دار اجباری هستند\",\n \"questionStartIndex\": \"نمایه شروع سوالات (۱،۲ یا a و b)\",\n \"showQuestionNumbers\": \"نمایش شماره های سوالات\",\n \"questionTitleTemplate\": \"قالب عنوان سوال، به صورت پیش فرض: '{no}. {require} {title}'\",\n \"questionErrorLocation\": \"محل خطای سوال\",\n \"focusFirstQuestionAutomatic\": \"تمرکز بر روی اولین سوال با تغییر صفحه\",\n \"questionsOrder\": \"ترتیب المان ها در صفحه\",\n \"maxTimeToFinish\": \"نهایت زمان برای اتمام نظرسنجی\",\n \"maxTimeToFinishPage\": \"نهایت زمان برای اتمام این صفحه نظرسنجی\",\n \"showTimerPanel\": \"نمایش پنل زمان سنج\",\n \"showTimerPanelMode\": \"نمایش حالت پنل زمان سنج\",\n \"renderMode\": \"حالت رندر\",\n \"allowAddPanel\": \"اجازه افزودن پنل\",\n \"allowRemovePanel\": \"اجازه حذف پنل\",\n \"panelAddText\": \"متن افزودن پنل\",\n \"panelRemoveText\": \"متن حذف پنل\",\n \"isSinglePage\": \"نمایش تمام المان ها در یک صفحه\",\n \"html\": \"Html\",\n \"expression\": \"عبارت\",\n \"minValue\": \"حداقل مقدار\",\n \"maxValue\": \"حداکثر مقدار\",\n \"minLength\": \"حداقل طول\",\n \"allowDigits\": \"امکان ورود اعداد\",\n \"minCount\": \"حداقل تعداد \",\n \"maxCount\": \"حداکثر مقدار\",\n \"regex\": \"فرمت صحیح عبارت \",\n \"totalText\": \"متن کامل\",\n \"totalType\": \"نوع کامل\",\n \"totalExpression\": \"عبارت کامل\",\n \"totalDisplayStyle\": \"سبک نمایش کل\",\n \"totalCurrency\": \"مجموع ارز\",\n \"totalFormat\": \"مجموع فرمت\",\n \"logoPosition\": \"محل قرارگیری لوگو\",\n \"addLogo\": \"اضافه کردن لوگو...\",\n \"changeLogo\": \"تغییر لوگو...\",\n \"logoPositions\": {\n \"none\": \"حذف لوگو\",\n \"left\": \"چپ\",\n \"right\": \"راست\",\n \"top\": \"بخش بالا\",\n \"bottom\": \"بخش پایین\"\n },\n \"tabs\": {\n \"general\": \"عمومی\",\n \"fileOptions\": \"انتخاب ها\",\n \"html\": \"ویرایشگر HTML\",\n \"columns\": \"ستون ها\",\n \"rows\": \"سطرها\",\n \"choices\": \"انتخاب ها\",\n \"items\": \"آیتم ها\",\n \"visibleIf\": \"نمایش در صورت\",\n \"enableIf\": \"فعال اگر\",\n \"requiredIf\": \"مورد نیاز ااگر\",\n \"rateValues\": \"مقادیر رتبه بندی\",\n \"choicesByUrl\": \"انتخاب ها از وب\",\n \"matrixChoices\": \"انتخاب های پیشفرض\",\n \"multipleTextItems\": \"فیلدهای متنی\",\n \"numbering\": \"شماره گذاری\",\n \"validators\": \"اعتبارسنجی ها\",\n \"navigation\": \"ناوبری\",\n \"question\": \"سوال\",\n \"pages\": \"صفحات\",\n \"completedHtml\": \"HTML صفحه تکمیل نظرسنجی\",\n \"completedHtmlOnCondition\": \"Html در شرط کامل شد\",\n \"loadingHtml\": \"HTML بارگزاری\",\n \"timer\": \"زمان سنج/کوئیز\",\n \"calculatedValues\": \"مقادیر محاسبه شد\",\n \"triggers\": \"اجرا کننده\",\n \"templateTitle\": \"عنوان قالب\",\n \"totals\": \"جمع کل\",\n \"logic\": \"منطق\",\n \"layout\": \"چیدمان\",\n \"data\": \"اطلاعات\",\n \"validation\": \"اعتبارسنجی\",\n \"cells\": \"سلول ها\",\n \"showOnCompleted\": \"نمایش بدهید تکمیل شده\",\n \"logo\": \"لوگو در عنوان نظرسنجی\",\n \"slider\": \"اسلایدر\",\n \"others\": \"باقی موارد\"\n },\n \"editProperty\": \"ویرایش خصوصیت '{0}'\",\n \"items\": \"[ آیتم ها: {0} ]\",\n \"enterNewValue\": \"لطفا یک مقدار وارد کنید\",\n \"noquestions\": \"سوالی در پرسشنامه درج نشده\",\n \"createtrigger\": \"اجرا کننده ای بسازید\",\n \"titleKeyboardAdornerTip\": \"برای ویرایش دکمه ی enter را فشار دهید.\",\n \"keyboardAdornerTip\": \"برای ویرایش دکمه ی enter را فشار دهید, برای حذف دکمه ی delete را فشار دهید, برای حرکت دادن یک آیتم، دکمه ی alt + arrow down / alt + arrow up فشار دهید\",\n \"keyboardMoveItemsTip\": \"برای حرکت دادن یک آیتم، دکمه ی alt + arrow down / alt + arrow up فشار دهید\",\n \"triggerOn\": \"در \",\n \"triggerMakePagesVisible\": \"صفحات را قابل نمایش کن:\",\n \"triggerMakeQuestionsVisible\": \"سوالات را قابل نمایش کن:\",\n \"triggerCompleteText\": \"پرسشنامه را تکمیل کن اگر موفق بود.\",\n \"triggerNotSet\": \"اجرا کننده تنظیم نشده.\",\n \"triggerRunIf\": \"اجرا در صورت\",\n \"triggerSetToName\": \"تعییر مقدار از: \",\n \"triggerFromName\": \"کپی مقدار از: \",\n \"triggerRunExpression\": \"اجرای این عبارت\",\n \"triggerSetValue\": \"به: \",\n \"triggerGotoName\": \"به سوال بروید:\",\n \"triggerIsVariable\": \"عدم درج متغییر در نتایج پرسشنامه\",\n \"triggerRunExpressionEmpty\": \"لطفا عبارت معتبری وارد نمایید\",\n \"noFile\": \"هیچ فایلی انتخاب نشده است\",\n \"close\": \"بستن\",\n \"itemValueEdit\": \"قابل مشاهده اگر\",\n \"notEmpty\": \"<ویرایش مقدار>\",\n \"conditionButtonAdd\": \"اضافه\",\n \"conditionButtonReplace\": \"جایگزین\",\n \"conditionHelp\": \"لطفا یک مقدار بولین توصیفی وارد کنید که صحیح یا غلط را برگرداند تا صفحه سوالات نمایش داده شود. برای مثال: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n \"conditionShowMoreUrl\": \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\"\n },\n \"pv\": {\n \"true\": \"صحیح\",\n \"false\": \"غلط\",\n \"inherit\": \"ارث بری\",\n \"show\": \"آشکار\",\n \"hide\": \"پنهان\",\n \"default\": \"پیش فرض\",\n \"initial\": \"اولیه\",\n \"random\": \"تصادفی\",\n \"collapsed\": \"جمع شده\",\n \"expanded\": \"باز شده\",\n \"none\": \"هیچ کدام\",\n \"asc\": \"صعودی\",\n \"desc\": \"نزولی\",\n \"indeterminate\": \"نامشخص\",\n \"decimal\": \"اعشاری\",\n \"currency\": \"ارز\",\n \"percent\": \"درصد\",\n \"firstExpanded\": \"گسترش یافته\",\n \"off\": \"خاموش\",\n \"onPanel\": \"روی پنل\",\n \"onSurvey\": \"روی نظرسنجی\",\n \"list\": \"لیست\",\n \"progressTop\": \"نوار پیشرفت بالا\",\n \"progressBottom\": \"نوار پیشرفت پایین\",\n \"progressTopBottom\": \"نوار پیشرفت در بالا و پایین\",\n \"horizontal\": \"افقی\",\n \"vertical\": \"عمودی\",\n \"top\": \"بالا\",\n \"bottom\": \"پایین\",\n \"topBottom\": \"بالا و پایین\",\n \"both\": \"هر دو\",\n \"left\": \"چپ\",\n \"color\": \"رنگ\",\n \"date\": \"تاریخ\",\n \"datetime\": \"تاریخ و ساعت\",\n \"datetime-local\": \"تاریخ و سوال پیش فرض\",\n \"email\": \"ایمیل\",\n \"month\": \"ماه\",\n \"number\": \"عدد\",\n \"password\": \"رمزعبور\",\n \"range\": \"دامنه\",\n \"tel\": \"تلفن\",\n \"text\": \"متن\",\n \"time\": \"زمان\",\n \"url\": \"آدرس\",\n \"week\": \"هفته\",\n \"hidden\": \"مخفی\",\n \"on\": \"روشن\",\n \"onPage\": \"روی صفحه\",\n \"edit\": \"ویرایش\",\n \"display\": \"نمایش\",\n \"onComplete\": \"به محض تمام شدن\",\n \"onHidden\": \"به محض مخفی شدن\",\n \"all\": \"تمام\",\n \"page\": \"صفحه\",\n \"survey\": \"نظرسنجی\",\n \"onNextPage\": \"به محض صفحه بعدی\",\n \"onValueChanged\": \"به محض تغییر مقدار\",\n \"singlePage\": \"تک صفحه ای\",\n \"standard\": \"استاندارد\",\n \"questionPerPage\": \"سوال در هر صفحه ی مجزا\",\n \"noPreview\": \"پیش نمایش ندارد\",\n \"showAllQuestions\": \"فعال سازی پیش نمایش با تمام سوالات\",\n \"showAnsweredQuestions\": \"فعال سازی پیش نمایش به سوالات پاسخ داده شده\"\n },\n \"op\": {\n \"empty\": \"خالی باشد\",\n \"notempty\": \"خالی نباشد\",\n \"equal\": \"مساوی باشد\",\n \"notequal\": \"مساوی نباشد\",\n \"contains\": \"شامل\",\n \"notcontains\": \"شامل نباشد\",\n \"anyof\": \"هرکدام\",\n \"allof\": \"همه\",\n \"greater\": \"بزرگتر\",\n \"less\": \"کوچکتر\",\n \"greaterorequal\": \"بزرگتر یا مساوی\",\n \"lessorequal\": \"کوچکتر یا مساوی\",\n \"and\": \"و\",\n \"or\": \"یا\"\n },\n \"ew\": {\n \"angular\": \"استفاده از نسخه Angular\",\n \"jquery\": \"استفاده از نسخه jQuery\",\n \"knockout\": \"استفاده از نسخه ناک اوت\",\n \"react\": \"استفاده از نسخه React\",\n \"vue\": \"استفاده از نسخه Vue\",\n \"bootstrap\": \"برای فریم ورک بوتسترپ\",\n \"modern\": \"تم مدرن\",\n \"default\": \"تم پیش فرض\",\n \"orange\": \"تم نارنجی\",\n \"darkblue\": \"تم آبی تیره\",\n \"darkrose\": \"تم صورتی\",\n \"stone\": \"تم سنگی\",\n \"winter\": \"تم زمستانی\",\n \"winterstone\": \"تم زمستانی و سنگی\",\n \"showOnPage\": \"نمایش نظرسنجی در یک صفحه\",\n \"showInWindow\": \"نمایش نظرسنجی در یک پنجره\",\n \"loadFromServer\": \"بارگزاری JSON از سرور\",\n \"titleScript\": \"اسکریپت و شیوه نمایش\",\n \"titleHtml\": \"HTML\",\n \"titleJavaScript\": \"جاوااسکریپت\",\n \"standard\": \"بدون بوتسترپ\"\n },\n \"ts\": {\n \"selectPage\": \"صفحه ای را برای آزمایش انتخاب کنید:\",\n \"showInvisibleElements\": \"نمایش المان های مخفی\"\n },\n \"validators\": {\n \"answercountvalidator\": \"تعداد پاسخ\",\n \"emailvalidator\": \"ایمیل\",\n \"expressionvalidator\": \"عبارت\",\n \"numericvalidator\": \"عدد\",\n \"regexvalidator\": \"regex\",\n \"textvalidator\": \"متن\"\n },\n \"triggers\": {\n \"completetrigger\": \"تکمیل نظرسنجی\",\n \"setvaluetrigger\": \"تنظیم مقدار\",\n \"copyvaluetrigger\": \"کپی مقدار\",\n \"skiptrigger\": \"رد کردن سوال \",\n \"runexpressiontrigger\": \"اجرای عبارت\",\n \"visibletrigger\": \"تغییر وضعیت دیده شدن\"\n },\n \"pehelp\": {},\n \"p\": {\n \"name\": \"نام\",\n \"title\": {\n \"name\": \"عنوان\",\n \"title\": \"اگر خالی باشد مانند نام درج می شود\"\n },\n \"navigationButtonsVisibility\": \"پدیداری دکمه های ناوبری\",\n \"questionsOrder\": \"ترتیب سوالات\",\n \"maxTimeToFinish\": \"حداکثر زمان برای تکمیل\",\n \"visible\": \"آشکار\",\n \"visibleIf\": \"آشکار اگر\",\n \"questionTitleLocation\": \"موقعیت عنوان سوال\",\n \"description\": \"توضیحات\",\n \"state\": \"وضعیت\",\n \"isRequired\": \"اجباری؟\",\n \"requiredIf\": \"اجبار اگر؟\",\n \"indent\": \"indent\",\n \"requiredErrorText\": \"متن خطای اجباری\",\n \"startWithNewLine\": \"شروع با خط جدید \",\n \"innerIndent\": \"تو رفتگی داخلی\",\n \"page\": \"صفحه\",\n \"width\": \"عرض\",\n \"commentText\": \"متن نظر\",\n \"valueName\": \"نام مقدار\",\n \"enableIf\": \"فعال اگر\",\n \"defaultValue\": \"مقدار پیش فرض\",\n \"correctAnswer\": \"پاسخ صحیح\",\n \"readOnly\": \"فقط خوانش\",\n \"validators\": \"اعتبارسنج ها\",\n \"titleLocation\": \"محل قرارگیری عنوان\",\n \"hasComment\": \"نظر دارد؟\",\n \"hasOther\": \"سایر دارد؟\",\n \"choices\": \"گزینه ها\",\n \"choicesOrder\": \"ترتیب گزینه ها\",\n \"choicesByUrl\": \"گزینه ها با لینک\",\n \"otherText\": \"متن سایر\",\n \"otherErrorText\": \"متن خطای سایر\",\n \"storeOthersAsComment\": \"ذخیره سایر به صورت نظر\",\n \"label\": \"برچسب\",\n \"showTitle\": \"نامیش عنوان\",\n \"valueTrue\": \"مقادیر صحیح\",\n \"valueFalse\": \"مقادیر غلط\",\n \"cols\": \"ستون ها\",\n \"rows\": \"سطر ها\",\n \"placeholder\": \"محل نگهدارنده\",\n \"optionsCaption\": \"زیرنویس گزینه ها\",\n \"expression\": \"عبارت\",\n \"format\": \"فرمت\",\n \"displayStyle\": \"سبک نمایش\",\n \"currency\": \"ارز\",\n \"useGrouping\": \"استفاده از گروه بندی\",\n \"showPreview\": \"پیش نمایش\",\n \"allowMultiple\": \"اجازه چند انتخابی\",\n \"imageHeight\": \"طول عکس\",\n \"imageWidth\": \"عرض عکس\",\n \"storeDataAsText\": \"ذخیره داده به صورت متنی\",\n \"maxSize\": \"نهایت حجم\",\n \"html\": \"html\",\n \"columns\": \"ستون ها\",\n \"cells\": \"سلول ها\",\n \"isAllRowRequired\": \"آیا تمام سطرها اجباری اند؟\",\n \"horizontalScroll\": \"اسکرول افقی\",\n \"cellType\": \"نوع سلول\",\n \"columnsLayout\": \"طرح بندی ستون ها\",\n \"columnColCount\": \"تعداد ستون ها\",\n \"columnMinWidth\": \"حداقل عرض ستون\",\n \"rowCount\": \"تعداد سطر\",\n \"minRowCount\": \"حداقل تعداد سطر\",\n \"maxRowCount\": \"حداکثر تعداد سطر\",\n \"keyName\": \"کلید نام\",\n \"keyDuplicationError\": \"کلید ارور کپی \",\n \"confirmDelete\": \"تاییدیه حذف\",\n \"confirmDeleteText\": \"متن تاییدیه حذف\",\n \"addRowLocation\": \"اضافه کردن موقعیت سطر\",\n \"addRowText\": \"افزودن متن سطر\",\n \"removeRowText\": \"حذف متن سطر\",\n \"items\": \"موارد\",\n \"itemSize\": \"ابعاد مورد\",\n \"colCount\": \"تعداد ستون\",\n \"templateTitle\": \"عنوان الگو\",\n \"templateDescription\": \"شرح الگو\",\n \"allowAddPanel\": \"اضافه کردن پنل مجاز است\",\n \"allowRemovePanel\": \"حذف کردن پنل مجاز است\",\n \"panelCount\": \"تعداد پنل\",\n \"minPanelCount\": \"حداقل تعداد پنل\",\n \"maxPanelCount\": \"حداکثر تعداد پنل\",\n \"panelsState\": \"شرح دادن پنل ها\",\n \"panelAddText\": \"اضافه کردن متن به پنل ها\",\n \"panelRemoveText\": \"حذف کردن متن پنل ها\",\n \"panelPrevText\": \"متن قبلی پنل\",\n \"panelNextText\": \"متن بعدی پنل\",\n \"showQuestionNumbers\": \"نمایش تعداد سوالات\",\n \"showRangeInProgress\": \"دامنه مورد نظر در حال انجام است.\",\n \"renderMode\": \"حالت رندر\",\n \"templateTitleLocation\": \"عنوان مکان\",\n \"rateValues\": \"رتبه بندی مقادیر\",\n \"rateMin\": \"حداقل رتبه\",\n \"rateMax\": \"حداکثر رتبه\",\n \"rateStep\": \"مراحل رتبه بندی\",\n \"minRateDescription\": \"مشخصات حداقل رتبه بندی\",\n \"maxRateDescription\": \"مشخصات حداکثر رتبه بندی\",\n \"inputType\": \"نوع ورودی\",\n \"size\": \"حجم\",\n \"locale\": \"زبان\",\n \"focusFirstQuestionAutomatic\": \"پیش فرض سوال اول انتخاب شده باشد.\",\n \"completedHtml\": \"html کامل شده\",\n \"completedBeforeHtml\": \"قبل از html کامل شده\",\n \"loadingHtml\": \"بارگذاری Html\",\n \"triggers\": \"فعال سازی\",\n \"cookieName\": \"نام کوکی\",\n \"sendResultOnPageNext\": \"ارسال نتیجه در صفحه بعدی\",\n \"showNavigationButtons\": \"نمایش دکمه های جهت یابی\",\n \"showPrevButton\": \"نمایش دکمه ی قبلی\",\n \"showPageTitles\": \"نمایش عنوان صفحه\",\n \"showCompletedPage\": \"نمایش صفحه ی کامل\",\n \"showPageNumbers\": \"نمایش شماره ی صفحات\",\n \"questionErrorLocation\": \"موقعیت قرارگیری خطای سوالات\",\n \"showProgressBar\": \"نمایش نوار پیشرفت\",\n \"mode\": \"حالت\",\n \"goNextPageAutomatic\": \"اتوماتیک به صفحه ی بعدی برود\",\n \"checkErrorsMode\": \"حالت خطاها را بررسی کنید\",\n \"clearInvisibleValues\": \"مقادیر نامعلوم را پاک کنید\",\n \"startSurveyText\": \"شروع متن نظرسنجی\",\n \"pagePrevText\": \"متن صفحه ی قبلی\",\n \"pageNextText\": \"متن صفحه ی بعدی\",\n \"completeText\": \"متن کامل\",\n \"requiredText\": \"متن اجباری\",\n \"questionStartIndex\": \"فهرست شروع سوالات\",\n \"questionTitleTemplate\": \"الگوی موضوعات سوالات\",\n \"firstPageIsStarted\": \"صفحه اول شروع می شود\",\n \"isSinglePage\": \"آیا تک صفحه ای است؟\",\n \"maxTimeToFinishPage\": \"حداکثر زمان برای به پایان رساندن صفحه\",\n \"showTimerPanel\": \"نمایش پنل زمان بندی\",\n \"showTimerPanelMode\": \"نمایش حالت پنل زمان بندی\",\n \"defaultPanelValue\": \"مقدار پیش فرض پنل\",\n \"defaultRowValue\": \"مقدار پیش فرض سطر\",\n \"hasNone\": \"موردی ندارد\",\n \"noneText\": \"متنی ندارد\",\n \"text\": \"متن\",\n \"survey_title\": {\n \"name\": \"عنوان\",\n \"title\": \"در تمام صفحات دیده می شود\"\n },\n \"page_title\": {\n \"name\": \"عنوان\",\n \"title\": \"عنوان صفحه\"\n },\n \"minValue\": \"حداقل مقدار\",\n \"maxValue\": \"حداکثر مقدار\",\n \"minLength\": \"حداقل طول\",\n \"maxLength\": \"حداکثر طول\",\n \"allowDigits\": \"اجازه عدد\",\n \"minCount\": \"حداقل تعداد\",\n \"maxCount\": \"حداکثر تعداد\",\n \"regex\": \"عبارت با قاعده\"\n },\n \"pel\": {\n \"isRequired\": \"اجباری؟\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"fa\"] = persianStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/polish.ts\":\n/*!************************************!*\\\n !*** ./src/localization/polish.ts ***!\n \\************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar polishStrings = {\n //survey templates\n survey: {\n edit: \"Edytuj\",\n dropQuestion: \"Przeciągnij pytanie.\",\n copy: \"Kopiuj\",\n addToToolbox: \"Dodaj do palety\",\n deletePanel: \"Usuń panel\",\n deleteQuestion: \"Usuń pytanie\",\n convertTo: \"Konwertuj na\",\n },\n //questionTypes\n qt: {\n checkbox: \"Wielokrotny wybór\",\n comment: \"Komentarz\",\n dropdown: \"Lista wyboru\",\n file: \"Plik\",\n html: \"Html\",\n matrix: \"Macierz (jednokrotny wybór)\",\n matrixdropdown: \"Matrix (wielokrotny wybór)\",\n matrixdynamic: \"Matrix (dynamiczne wiersze)\",\n multipletext: \"Wiele linii tekstu\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dynamiczne panele)\",\n radiogroup: \"Jednokrotny wybór\",\n rating: \"Ocena\",\n text: \"Pojedyncza odpowiedź\",\n boolean: \"Prawda/Fałsz\",\n expression: \"Wyrażenie\",\n },\n //Strings in Editor\n ed: {\n survey: \"Ankieta\",\n Survey: \"Ankieta\",\n editSurvey: \"Edytuj ankietę\",\n addNewPage: \"Dodaj nową sekcję\",\n deletePage: \"Usuń sekcję\",\n editPage: \"Edytuj sekcję\",\n newPageName: \"sekcja\",\n newQuestionName: \"pytanie\",\n newPanelName: \"panel\",\n testSurvey: \"Testuj ankietę\",\n testSurveyAgain: \"Testuj ponownie\",\n testSurveyWidth: \"Szerokość ankiety: \",\n embedSurvey: \"Embed Survey\",\n saveSurvey: \"Zapisz ankietę\",\n designer: \"Projektant ankiety\",\n jsonEditor: \"JSON Editor\",\n undo: \"Cofnij\",\n redo: \"Ponów\",\n options: \"Opcje\",\n generateValidJSON: \"Generate Valid JSON\",\n generateReadableJSON: \"Generate Readable JSON\",\n toolbox: \"Paleta\",\n delSelObject: \"Usuń wybrany element\",\n correctJSON: \"Please correct JSON.\",\n surveyResults: \"Wynik ankiety: \",\n modified: \"Zmodyfikowana\",\n saving: \"Trwa zapis\",\n saved: \"Zapisano\",\n },\n //Property names in table headers\n pel: {\n isRequired: \"Wymagane?\",\n },\n //Property Editors\n pe: {\n apply: \"Zastosuj\",\n ok: \"OK\",\n cancel: \"Anuluj\",\n reset: \"Resetuj\",\n close: \"Zamknij\",\n delete: \"Usuń\",\n addNew: \"Dodaj nową\",\n removeAll: \"Usuń wszystkie\",\n edit: \"Edytuj\",\n empty: \"\",\n fastEntry: \"Szybkie wprowadzanie\",\n formEntry: \"Formularz\",\n testService: \"Testuj usługę\",\n conditionHelp: \"Podaj wyrażenie, które zwróci wartość prawda/fałsz. Jeśli chcesz, aby sekcja lub pytanie pozostały widoczne - powinno zwrócić prawdę. Przykład: {pytanie1} = 'wartość1' or ({pytanie2} * {pytanie4} > 20 and {pytanie3} < 5)\",\n aceEditorHelp: \"Press ctrl+space to get expression completion hint\",\n aceEditorRowTitle: \"Current row\",\n aceEditorPanelTitle: \"Current panel\",\n showMore: \"For more details please check the documentation\",\n assistantTitle: \"Available questions:\",\n propertyIsEmpty: \"Podaj wartość\",\n value: \"Wartość\",\n text: \"Etykieta\",\n columnEdit: \"Edit column: {0}\",\n itemEdit: \"Edit item: {0}\",\n url: \"URL\",\n path: \"Path\",\n valueName: \"Value name\",\n titleName: \"Title name\",\n showOtherItem: \"Czy możliwa własna odpowiedź\",\n otherText: \"Other item text\",\n name: \"Nazwa\",\n title: \"Etykieta\",\n cellType: \"Typ komórki\",\n colCount: \"Liczba kolumn\",\n choicesOrder: \"Kolejność odpowiedzi\",\n visible: \"Czy widoczne?\",\n isRequired: \"Czy wymagalne?\",\n startWithNewLine: \"Czy rozpoczyna się nową linią?\",\n rows: \"Liczba wierszy\",\n placeholder: \"Input place holder\",\n showPreview: \"Show preview area\",\n storeDataAsText: \"Store file content in JSON result as text\",\n maxSize: \"Maximum file size in bytes\",\n imageHeight: \"Image height\",\n imageWidth: \"Image width\",\n rowCount: \"Row count\",\n addRowText: \"Add row button text\",\n removeRowText: \"Remove row button text\",\n minRateDescription: \"Opis najniższej oceny\",\n maxRateDescription: \"Opis najwyższej oceny\",\n inputType: \"Input type\",\n optionsCaption: \"Options caption\",\n defaultValue: \"Default value\",\n surveyEditorTitle: \"Edytuj ankietę\",\n qEditorTitle: \"Edytuj: {0}\",\n //survey\n showTitle: \"Pokaż/ukryj tytuł\",\n locale: \"Domyślny język\",\n mode: \"Tryb (edycja/podgląd)\",\n clearInvisibleValues: \"Usuń niewidoczne odpowiedzi\",\n cookieName: \"Cookie name (to disable run survey two times locally)\",\n sendResultOnPageNext: \"Send survey results on page next\",\n storeOthersAsComment: \"Store 'others' value in separate field\",\n showPageTitles: \"Show page titles\",\n showPageNumbers: \"Show page numbers\",\n pagePrevText: \"Page previous button text\",\n pageNextText: \"Page next button text\",\n completeText: \"Complete button text\",\n startSurveyText: \"Start button text\",\n showNavigationButtons: \"Show navigation buttons (default navigation)\",\n showPrevButton: \"Show previous button (user may return on previous page)\",\n firstPageIsStarted: \"The first page in the survey is a started page.\",\n showCompletedPage: \"Show the completed page at the end (completedHtml)\",\n goNextPageAutomatic: \"On answering all questions, go to the next page automatically\",\n showProgressBar: \"Show progress bar\",\n questionTitleLocation: \"Question title location\",\n requiredText: \"The question required symbol(s)\",\n questionStartIndex: \"Question start index (1, 2 or 'A', 'a')\",\n showQuestionNumbers: \"Show question numbers\",\n questionTitleTemplate: \"Question title template, default is: '{no}. {require} {title}'\",\n questionErrorLocation: \"Question error location\",\n focusFirstQuestionAutomatic: \"Focus first question on changing the page\",\n questionsOrder: \"Elements order on the page\",\n maxTimeToFinish: \"Maximum time to finish the survey\",\n maxTimeToFinishPage: \"Maximum time to finish a page in the survey\",\n showTimerPanel: \"Show timer panel\",\n showTimerPanelMode: \"Show timer panel mode\",\n renderMode: \"Render mode\",\n allowAddPanel: \"Allow adding a panel\",\n allowRemovePanel: \"Allow removing the panel\",\n panelAddText: \"Adding panel text\",\n panelRemoveText: \"Removing panel text\",\n isSinglePage: \"Show all elements on one page\",\n tabs: {\n general: \"Ogólne\",\n fileOptions: \"Options\",\n html: \"Html Editor\",\n columns: \"Kolumny\",\n rows: \"Wiersze\",\n choices: \"Odpowiedzi\",\n visibleIf: \"Widoczne jeśli\",\n enableIf: \"Enable If\",\n rateValues: \"Wartość oceny\",\n choicesByUrl: \"Odpowiedzi z webserwisu\",\n matrixChoices: \"Default Choices\",\n multipleTextItems: \"Text Inputs\",\n validators: \"Validators\",\n navigation: \"Navigation\",\n question: \"Question\",\n completedHtml: \"Completed Html\",\n loadingHtml: \"Loading Html\",\n timer: \"Timer/Quiz\",\n triggers: \"Triggers\",\n templateTitle: \"Template title\",\n },\n editProperty: \"Edit property '{0}'\",\n items: \"[ Items: {0} ]\",\n enterNewValue: \"Please, enter the value.\",\n noquestions: \"There is no any question in the survey.\",\n createtrigger: \"Please create a trigger\",\n triggerOn: \"On \",\n triggerMakePagesVisible: \"Make pages visible:\",\n triggerMakeQuestionsVisible: \"Make elements visible:\",\n triggerCompleteText: \"Complete the survey if succeed.\",\n triggerNotSet: \"The trigger is not set\",\n triggerRunIf: \"Run if\",\n triggerSetToName: \"Change value of: \",\n triggerSetValue: \"to: \",\n triggerIsVariable: \"Do not put the variable into the survey result.\",\n },\n //Property values\n pv: {\n true: \"prawda\",\n false: \"fałsz\",\n },\n //Operators\n op: {\n empty: \"is empty\",\n notempty: \"is not empty\",\n equal: \"equals\",\n notequal: \"not equals\",\n contains: \"contains\",\n notcontains: \"not contains\",\n greater: \"greater\",\n less: \"less\",\n greaterorequal: \"greater or equals\",\n lessorequal: \"Less or Equals\",\n },\n //Embed window\n ew: {\n angular: \"Use Angular version\",\n jquery: \"Use jQuery version\",\n knockout: \"Use Knockout version\",\n react: \"Use React version\",\n vue: \"Use Vue version\",\n bootstrap: \"For bootstrap framework\",\n standard: \"No bootstrap\",\n showOnPage: \"Show survey on a page\",\n showInWindow: \"Show survey in a window\",\n loadFromServer: \"Load Survey JSON from server\",\n titleScript: \"Scripts and styles\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Wybierz stronę, aby ją przetestować:\",\n },\n validators: {\n answercountvalidator: \"answer count\",\n emailvalidator: \"e-mail\",\n numericvalidator: \"numeric\",\n regexvalidator: \"regex\",\n textvalidator: \"text\",\n },\n triggers: {\n completetrigger: \"complete survey\",\n setvaluetrigger: \"set value\",\n visibletrigger: \"change visibility\",\n },\n //Properties\n p: {\n name: \"nazwa\",\n title: {\n name: \"tytuł\",\n title: \"Pozostaw pusty, jeśli ma być taki sam, jak 'Nazwa'\",\n },\n page_title: { name: \"tytuł\", title: \"Tytuł sekcji\" },\n },\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"pl\"] = polishStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/portuguese.ts\":\n/*!****************************************!*\\\n !*** ./src/localization/portuguese.ts ***!\n \\****************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar portugueseTranslation = {\n // survey templates\n survey: {\n edit: \"Editar\",\n externalHelpLink: \"Veja e aprenda a criar questionários\",\n // externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Por favor arraste uma pergunta aqui.\",\n addLogicItem: \"Crie uma regra para configurar o fluxo do questionário.\",\n copy: \"Copiar\",\n duplicate: \"Duplicar\",\n addToToolbox: \"Adicionar às ferramentas\",\n deletePanel: \"Remover Painel\",\n deleteQuestion: \"Remover Pergunta\",\n convertTo: \"Converter para\",\n drag: \"Arrastar elemento\"\n },\n // Question types\n qt: {\n default: \"Padrão\",\n checkbox: \"Caixa de Seleção\",\n comment: \"Comentário\",\n imagepicker: \"Selecionador de imagem\",\n ranking: \"Classificação\",\n image: \"Imagem\",\n dropdown: \"Lista\",\n tagbox: \"Tags\",\n file: \"Arquivo\",\n html: \"Html\",\n matrix: \"Matriz (opção única)\",\n matrixdropdown: \"Matriz (múltiplas opções)\",\n matrixdynamic: \"Matriz (linhas dinâmicas)\",\n multipletext: \"Texto múltiplo\",\n panel: \"Painel\",\n paneldynamic: \"Painel (painéis dinâmicos)\",\n radiogroup: \"Grupo de Opções\",\n rating: \"Avaliação\",\n text: \"Texto único\",\n boolean: \"Boleano\",\n expression: \"Expressão\",\n signaturepad: \"Caixa de Assinatura\",\n buttongroup: \"Grupo de Botões\"\n },\n // Strings in SurveyJS Creator\n ed: {\n defaultLocale: \"Padrão ({0})\",\n survey: \"Pesquisa\",\n settings: \"Configurações da Pesquisa\",\n settingsTooltip: \"Configurações\",\n surveySettings: \"Configurações de Questionários\",\n surveySettingsTooltip: \"Configurações\",\n showPanel: \"Mostrar Painel\",\n hidePanel: \"Esconder Painel\",\n prevSelected: \"Selecionar anterior\",\n nextSelected: \"Selecionar próximo\",\n surveyTypeName: \"Questionário\",\n pageTypeName: \"Página\",\n panelTypeName: \"Painel\",\n questionTypeName: \"Questão\",\n columnTypeName: \"Coluna\",\n addNewPage: \"Adicionar Nova Página\",\n moveRight: \"Mover para direita\",\n moveLeft: \"Mover para esquerda\",\n deletePage: \"Remover Página\",\n editPage: \"Editar Página\",\n edit: \"Editar\",\n newPageName: \"página\",\n newQuestionName: \"pergunta\",\n newPanelName: \"painel\",\n newTextItemName: \"texto\",\n testSurvey: \"Testar pesquisa\",\n defaultV2Theme: \"Padrão\",\n modernTheme: \"Moderno\",\n defaultTheme: \"Tema Pré-definido\",\n testSurveyAgain: \"Testar questionário novamente\",\n testSurveyWidth: \"Tamanho do questionário: \",\n navigateToMsg: \"Tem que navegar para\",\n logic: \"Lógica\",\n embedSurvey: \"Incorporar Questionário\",\n translation: \"Tradução\",\n saveSurvey: \"Salvar Questionário\",\n saveSurveyTooltip: \"Gravar Questionário\",\n designer: \"Designer\",\n jsonEditor: \"Editor de JSON\",\n jsonHideErrors: \"Esconder erros\",\n jsonShowErrors: \"Mostrar erros\",\n undo: \"Desfazer\",\n redo: \"Refazer\",\n undoTooltip: \"Desfazer última alteração\",\n redoTooltip: \"Refazer a alteração\",\n showMoreChoices: \"Mostrar mais\",\n showLessChoices: \"Mostrar menos\",\n copy: \"Copiar\",\n cut: \"Cortar\",\n paste: \"Colar\",\n copyTooltip: \"Copiar seleção para a área de transferência\",\n cutTooltip: \"Cortar seleção para a área de transferência\",\n pasteTooltip: \"Colar da área de transferência\",\n options: \"Opções\",\n generateValidJSON: \"Gerar JSON válido\",\n generateReadableJSON: \"Gerar JSON legível\",\n toolbox: \"Ferramentas\",\n \"property-grid\": \"Propriedades\",\n propertyGridFilteredTextPlaceholder: \"Escreva para pesquisar...\",\n toolboxGeneralCategory: \"Geral\",\n toolboxChoiceCategory: \"Questões de Escolha\",\n toolboxTextCategory: \"Questões de Texto\",\n toolboxContainersCategory: \"Áreas\",\n toolboxMatrixCategory: \"Questões em Matriz\",\n toolboxMiscCategory: \"Diversos\",\n correctJSON: \"Por favor corrija o JSON.\",\n surveyResults: \"Resultado da pesquisa: \",\n surveyResultsTable: \"Como Tabela\",\n surveyResultsJson: \"Como JSON\",\n resultsTitle: \"Título da Pergunta\",\n resultsName: \"Nome da Pergunta\",\n resultsValue: \"Valor da Resposta\",\n resultsDisplayValue: \"Mostrar Valor\",\n modified: \"Modificado\",\n saving: \"A gravar\",\n saved: \"Gravado\",\n propertyEditorError: \"Erro\",\n saveError: \"Erro! Conteúdo do editor não foi salvo.\",\n translationPropertyGridTitle: \"Configurações de Idioma\",\n translationLanguages: \"Idiomas\",\n translationAddLanguage: \"Selecione o idioma para traduzir\",\n translationShowAllStrings: \"Mostrar todos os textos\",\n translationShowUsedStringsOnly: \"Apenas textos utilizados\",\n translationShowAllPages: \"Mostrar todas páginas\",\n translationNoStrings: \"Nenhum texto para traduzir. Por favor, altere o filtro.\",\n translationExportToSCVButton: \"Exportar para CSV\",\n translationImportFromSCVButton: \"Importar de CSV\",\n translationMergeLocaleWithDefault: \"Combinar {0} com o idioma padrão\",\n translationPlaceHolder: \"Tradução...\",\n bold: \"Negrito\",\n italic: \"Itálico\",\n underline: \"Sublinhado\",\n addNewQuestion: \"Adicionar Questão\",\n selectPage: \"Selecionar página...\",\n htmlPlaceHolder: \"O conteúdo HTML ficará aqui.\",\n panelPlaceHolder: \"Arraste uma questão da caixa de ferramentas aqui.\",\n surveyPlaceHolder: \"O questionário está vazio. Arraste um elemento da caixa de ferramentas ou clique no botão abaixo.\",\n addNewTypeQuestion: \"Adicionar {0}\",\n chooseLogoPlaceholder: \"[LOGO]\",\n // auto: \"auto\",\n lg: {\n addNewItem: \"Adicionar nova regra\",\n empty_tab: \"Crie uma regra para personalizar o fluxo do questionário.\",\n page_visibilityName: \"Mostrar (esconder) página\",\n page_enableName: \"Ativar (desativar) página\",\n panel_visibilityName: \"Mostrar (esconder) painel\",\n panel_enableName: \"Ativar (desativar) painel\",\n question_visibilityName: \"Mostrar (esconder) questão\",\n question_enableName: \"Ativar (desativar) questão\",\n question_requireName: \"Tornar a pergunta obrigatória\",\n column_visibilityName: \"Mostrar (esconder) coluna\",\n column_enableName: \"Ativar (desativar) coluna\",\n column_requireName: \"Tornar a coluna obrigatória\",\n trigger_completeName: \"Completar questionário\",\n trigger_setvalueName: \"Definir resposta\",\n trigger_copyvalueName: \"Copiar resposta\",\n trigger_skipName: \"Pular para a pergunta\",\n trigger_runExpressionName: \"Executar expressão\",\n completedHtmlOnConditionName: \"Definir marcação de página de \\\"Questionário Completo\\\"\",\n page_visibilityDescription: \"Torne a página visível quando a expressão lógica estiver ativa. Caso contrário, mantenha-o invisível.\",\n panel_visibilityDescription: \"Torne o painel visível quando a expressão lógica estiver ativa. Caso contrário, mantenha-o invisível.\",\n panel_enableDescription: \"Faça com que o painel e todos os elementos dentro dele sejam ativos quando a expressão lógica estiver ativa. Caso contrário, mantenha-o invisível.\",\n question_visibilityDescription: \"Torne a pergunta visível quando a expressão lógica estiver ativa. Caso contrário, mantenha-a invisível.\",\n question_enableDescription: \"Ative a pergunta quando a expressão lógica estiver ativa. Caso contrário, mantenha-a invisível.\",\n question_requireDescription: \"A pergunta torna-se obrigatória quando a expressão lógica estiver ativa.\",\n trigger_completeDescription: \"Quando a expressão lógica estiver ativa, a pesquisa será concluída e o utilizador verá a 'Página de Agradecimento'.\",\n trigger_setvalueDescription: \"Quando os valores da pergunta, que são usados na expressão lógica, são alterados e a expressão lógica fica ativa, então o valor é definido para a pergunta seleccionada.\",\n trigger_copyvalueDescription: \"Quando os valores das perguntas, que são usados na expressão lógica, são alterados e a expressão lógica fica ativa, então o valor de uma pergunta seleccionada é copiado para outra pergunta seleccionada.\",\n trigger_skipDescription: \"Quando a expressão lógica volta a ser ativa, então o questionário salta para / focaliza a pergunta seleccionada.\",\n trigger_runExpressionDescription: \"Quando a expressão lógica volta a ser ativaa, a expressão personalizada é executada. Opcionalmente, pode definir o resultado desta expressão para a pergunta seleccionada\",\n completedHtmlOnConditionDescription: \"Se a expressão lógica estiver ativa, então o texto padrão para a 'Página de agradecimento' é alterado para a dada.\",\n itemExpressionText: \"Quando a expressão: '{0}' volta a ficar ativa\",\n itemEmptyExpressionText: \"Nova regra\",\n page_visibilityText: \"tornar a página {0} visível\",\n panel_visibilityText: \"tornar painel {0} visível\",\n panel_enableText: \"tornar painel {0} ativa\",\n question_visibilityText: \"torna questão {0} visível\",\n question_enableText: \"tornar questão {0} ativa\",\n question_requireText: \"tornar questão {0} obrigatória\",\n column_visibilityText: \"tornar coluna {0} da questão {1} visível\",\n column_enableText: \"tornar coluna {0} da questão {1} ativa\",\n column_requireText: \"torna coluna {0} da questão {1} obrigatória\",\n trigger_completeText: \"o questionário fica completo\",\n trigger_setvalueText: \"Colocar em questão: {0} valor {1}\",\n trigger_copyvalueText: \"Copiar a questão: {0} valor da questão {1}\",\n trigger_skipText: \"pular para a questão do questionário {0}\",\n trigger_runExpressionText1: \"executar expressão: '{0}'\",\n trigger_runExpressionText2: \" e colocar seu resultado em questão: {0}\",\n completedHtmlOnConditionText: \"mostrar texto costumizado para a 'página de agradecimento'.\",\n showAllQuestions: \"Todas as Questões\",\n showAllActionTypes: \"Todos os Tipos de Questões\",\n conditions: \"Condição(ões)\",\n actions: \"Ação(ões)\",\n expressionEditorTitle: \"Definir condição(ões)\",\n actionsEditorTitle: \"Definir ação(ões)\",\n deleteAction: \"Eliminar Ação\",\n addNewAction: \"Adicionar Ação\",\n selectedActionCaption: \"Selecionar Ação...\",\n expressionInvalid: \"A expressão lógica está vazia ou é inválida. Por favor corrija.\",\n noActionError: \"Por favor, adicione pelo menos uma ação.\",\n actionInvalid: \"Por favor, corrija os problemas nas sua(s) ação(ões).\",\n expressionSetup: \"configuração de expressão\",\n actionsSetup: \"configuração de ação\"\n }\n },\n // Property Editors\n pe: {\n apply: \"Aplicar\",\n ok: \"OK\",\n save: \"Guardar\",\n clear: \"Limpar\",\n saveTooltip: \"Guardar\",\n cancel: \"Cancelar\",\n set: \"Definir\",\n reset: \"Limpar\",\n change: \"Modificar\",\n refresh: \"Recarregar\",\n close: \"Fechar\",\n delete: \"Apagar\",\n add: \"Adicionar\",\n addNew: \"Adicionar Novo\",\n addItem: \"Clique para adicionar o item...\",\n removeItem: \"Clique para remover o item...\",\n dragItem: \"Arraste o item\",\n addOther: \"Outro\",\n addSelectAll: \"Selecionar Todos\",\n addNone: \"Nenhum\",\n removeAll: \"Remover Todos\",\n edit: \"Editar\",\n back: \"Retornar sem guardar\",\n backTooltip: \"Sair sem guardar\",\n saveAndBack: \"Sair e retornar\",\n saveAndBackTooltip: \"Guardar e retornar\",\n doneEditing: \"Terminar\",\n editChoices: \"Editar Opções\",\n showChoices: \"Mostrar Opções\",\n move: \"Mover\",\n empty: \"\",\n emptyValue: \"Valor vazio\",\n fastEntry: \"Entrada Rápida\",\n fastEntryNonUniqueError: \"Valor '{0}' não é o único\",\n fastEntryChoicesCountError: \"Limite o número de itens de {0} a {1}\",\n fastEntryPlaceholder: \"Pode definir dados no seguinte formato:\\nvalor1|texto\\nvalor2\",\n formEntry: \"Entrada com formulário\",\n testService: \"Testar o serviço\",\n itemSelectorEmpty: \"Selecione o elemento\",\n conditionActionEmpty: \"Selecione a ação\",\n conditionSelectQuestion: \"Selecionar pergunta...\",\n conditionSelectPage: \"Selecione a página...\",\n conditionSelectPanel: \"Selecione o painel...\",\n conditionValueQuestionTitle: \"Por favor, entre/selecione o valor\",\n expressionHelp: \"Por favor informe uma expressão boleana. Ela deve retornar verdadeiro para manter a pergunta/página visível. Por exemplo: {´pergunta1} = 'valor1' or ({pergunta2} = 3 and {pergunta3} < 5)\",\n aceEditorHelp: \"Pressione ctrl+space para autocompletar\",\n aceEditorRowTitle: \"Linha atual\",\n aceEditorPanelTitle: \"Painel atual\",\n showMore: \"Para mais detalhes, por favor visite a documentação\",\n assistantTitle: \"Perguntas disponíveis:\",\n cellsEmptyRowsColumns: \"Deve haver ao menos uma coluna ou linha\",\n showPreviewBeforeComplete: \"Visualize as respostas antes de submeter o questionário\",\n propertyIsEmpty: \"Por favor informe um valor na propriedade\",\n propertyIsNoUnique: \"Insira um valor exclusivo.\",\n propertyNameIsNotUnique: \"Insira um nome único\",\n listIsEmpty: \"Nenhum item foi adicionado ainda\",\n \"listIsEmpty@choices\": \"Nenhuma opção foi adicionada ainda\",\n \"addNew@choices\": \"Adicionar uma opção\",\n expressionIsEmpty: \"Expressão está vazia\",\n value: \"Valor\",\n text: \"Texto\",\n rowid: \"ID da Linha\",\n imageLink: \"Link da Imagem\",\n columnEdit: \"Editar coluna: {0}\",\n itemEdit: \"Editar item: {0}\",\n url: \"URL\",\n path: \"Caminho\",\n valueName: \"Nome do valor\",\n choicesbyurl: {\n valueName: \"Obtenha valores do seguinte campo JSON\"\n },\n titleName: \"Nome do título\",\n imageLinkName: \"Obtenha URLs de imagem do seguinte campo JSON\",\n allowEmptyResponse: \"Permitir resposta vazia\",\n titlePlaceholder: \"Título\",\n surveyTitlePlaceholder: \"Título do Questionário\",\n pageTitlePlaceholder: \"Página {num}\",\n descriptionPlaceholder: \"Descrição\",\n surveyDescriptionPlaceholder: \"Descrição\",\n pageDescriptionPlaceholder: \"Descrição\",\n showOtherItem: \"Tem item 'outros'\",\n otherText: \"Texto do item 'outros'\",\n showNoneItem: \"Permitir a opção Nenhum\",\n noneText: \"texto de opção Nenhum\",\n showSelectAllItem: \"Permitir a opção Selecionar tudo\",\n selectAllText: \"texto de opção Selecionar Todos\",\n choicesMin: \"Valor mínimo para itens gerados automaticamente\",\n choicesMax: \"Valor máximo para itens gerados automaticamente\",\n choicesStep: \"Etapa para itens gerados automaticamente\",\n name: \"Nome\",\n title: \"Título\",\n cellType: \"Tipo de célula\",\n colCount: \"Contagem de células\",\n choicesOrder: \"Selecione a ordem das alternativas\",\n visible: \"É visível?\",\n isRequired: \"É obrigatório?\",\n isAllRowRequired: \"Exigir resposta para todas as linhas\",\n requiredErrorText: \"\\\"Obrigatório\\\" mensagem de erro\",\n startWithNewLine: \"Começa com uma nova linha?\",\n rows: \"Contagem de linhas\",\n cols: \"Colunas\",\n placeholder: \"Texto de referência\",\n showPreview: \"Mostra pré-visualização de imagem?\",\n storeDataAsText: \"Gravar conteúdo de arquivo no resultado JSON como texto\",\n maxSize: \"Tamanho máximo de arquivo em bytes\",\n imageHeight: \"Altura da imagem\",\n imageWidth: \"Largura da imagem\",\n rowCount: \"Contagem de linhas\",\n columnLayout: \"Layout das colunas\",\n addRowLocation: \"Localização do botão de adicionar linha\",\n addRowText: \"Texto do botão para adicionar linhas\",\n removeRowText: \"Texto do botão para remover linhas\",\n rateMin: \"Valor mínimo do valor\",\n rateMax: \"Valor máximo do valor\",\n rateStep: \"Etapa de taxa\",\n minRateDescription: \"Descrição de qualificação mínima\",\n maxRateDescription: \"Descrição de qualificação máxima\",\n inputType: \"Tipo de entrada\",\n optionsCaption: \"Título de opção\",\n defaultValue: \"Valor pré-definido\",\n cellsDefaultRow: \"Texto pré-definido das células\",\n surveyEditorTitle: \"Editar configurações da pesquisa\",\n qEditorTitle: \"Editar pergunta: {0}\",\n maxLength: \"Tamanho máximo\",\n buildExpression: \"Construir\",\n editExpression: \"Editar\",\n and: \"e\",\n or: \"ou\",\n remove: \"Remover\",\n addCondition: \"Adicionar Condição\",\n emptyLogicPopupMessage: \"Selecione uma pergunta para começar a configurar as condições.\",\n if: \"Se\",\n then: \"em seguida\",\n setToName: \"Questão alvo\",\n fromName: \"Questão para copiar a resposta de\",\n gotoName: \"Questão para pular para\",\n ruleIsNotSet: \"Regra está incorreta\",\n includeIntoResult: \"Incluir nos resultados da pesquisa\",\n showTitle: \"Mostrar/ocultar título\",\n expandCollapseTitle: \"Expandir/contrair título\",\n locale: \"Idioma pré-definido\",\n simulator: \"Selecione o tipo de dispositivo\",\n landscapeOrientation: \"Alternar para orientação paisagem\",\n portraitOrientation: \"Altrar para orientação de moldura\",\n mode: \"Modo (editável/somente leitura)\",\n clearInvisibleValues: \"Limpar valores invisíveis\",\n cookieName: \"Nome do cookie (para desativar rode a pesquisa duas vezes localmente)\",\n sendResultOnPageNext: \"Enviar resultado da pesquisa na página seguinte\",\n storeOthersAsComment: \"Armazenar 'outros' valores em um campo separado\",\n showPageTitles: \"Mostrar título da página\",\n showPageNumbers: \"Mostrar número da página\",\n pagePrevText: \"Texto para botão de página anterior\",\n pageNextText: \"Texto para botão de página seguinte\",\n completeText: \"Texto para botão de completar\",\n previewText: \"Pré-visualizar o texto do botão Responder\",\n editText: \"Editar o texto do botão Responder Answer button text\",\n startSurveyText: \"Texto para botão de começar\",\n showNavigationButtons: \"Mostrar botões de navegação (navegação padrão)\",\n showPrevButton: \"Mostrar botão de voltar (usuário pode retornar para página anterior)\",\n firstPageIsStarted: \"Primeira página da pesquisa é a página de início.\",\n showCompletedPage: \"Mostrar a página de conclusão no final (completedHtml)\",\n goNextPageAutomatic: \"Ao responder todas as perguntas, ir automaticamente para a próxima página\",\n showProgressBar: \"Mostrar barra de progresso\",\n questionTitleLocation: \"Localização do título da pergunta\",\n requiredText: \"Símbolo(s) para perguntas obrigatórias\",\n questionStartIndex: \"Index das perguntas (1, 2 or 'A', 'a')\",\n showQuestionNumbers: \"Mostrar número das perguntas\",\n questionTitleTemplate: \"Template do título da pergunta, pré-definido é: '{no}. {obrigatório} {título}'\",\n questionErrorLocation: \"Localização do erro da pergunta\",\n focusFirstQuestionAutomatic: \"Focar automaticamente na primeira pergunta ao trocar de página\",\n questionsOrder: \"Ordenar elementos na página\",\n maxTimeToFinish: \"Tempo máximo para finalizar pesquisa\",\n maxTimeToFinishPage: \"Tempo máximo para finalizar página da pesquisa\",\n page: {\n maxTimeToFinish: \"Tempo limite para finalizar esta página (em segundos)\",\n },\n question: {\n page: \"Página principal\",\n },\n showTimerPanel: \"Mostrar o painel de cronômetro\",\n showTimerPanelMode: \"Mostrar painel de modo de cronômetro\",\n renderMode: \"Modo de renderização\",\n allowAddPanel: \"Permitir adicionar painel\",\n allowRemovePanel: \"Permitir remover painel\",\n noEntriesText: \"Entradas de texto vazias\",\n panelAddText: \"Texto de adicionar painel\",\n panelRemoveText: \"Texto de remover painel\",\n isSinglePage: \"Mostrar todos elementos em uma página\",\n html: \"HTML markup\",\n expression: \"Expressão\",\n setValue: \"Responder\",\n dataFormat: \"Formato de imagem\",\n allowAddRows: \"Permitir adicionar linhas\",\n allowRemoveRows: \"Permitir remover linhas\",\n allowRowsDragAndDrop: \"Permitir arrastar e soltar linha\",\n responsiveImageSizeHelp: \"Não se aplica se especificar a largura ou altura exata da imagem.\",\n minImageWidth: \"Largura mínima da imagem\",\n maxImageWidth: \"Largura máxima da imagem\",\n minImageHeight: \"Altura mínima da imagem\",\n maxImageHeight: \"Altura máxima da imagem\",\n minValue: \"Valor mínimo\",\n maxValue: \"Valor máximo.\",\n minLength: \"Comprimento mínimo (em caracteres)\",\n allowDigits: \"Permitir dígitos\",\n minCount: \"Contagem mínima\",\n maxCount: \"Contagem máxima\",\n regex: \"Expressão regular\",\n surveyvalidator: {\n text: \"Mensagem de erro\",\n expression: \"Expressão de validação\"\n },\n totalText: \"Texto total da linha\",\n totalType: \"Tipo total\",\n totalExpression: \"Expressão total\",\n totalDisplayStyle: \"Total value display style\",\n totalCurrency: \"Moeda\",\n totalFormat: \"String formatada\",\n logo: \"Logo (URL ou string codificada em base64)\",\n questionsOnPageMode: \"Estrutura de questionário\",\n maxTextLength: \"Tamanho máximo da resposta (em caracteres)\",\n maxOthersLength: \"Tamanho máximo do comentário (em caracteres)\",\n autoGrowComment: \"Expanda automaticamente a área de comentários, se necessário\",\n textUpdateMode: \"Atualizar valor da pergunta de texto\",\n focusOnFirstError: \"Defina o foco na primeira resposta inválida\",\n checkErrorsMode: \"Executar validação\",\n navigateToUrl: \"Navegar para URL\",\n navigateToUrlOnCondition: \"URL Dinamico\",\n completedBeforeHtml: \"Marcação para mostrar se o utilizador já preencheu este questionário\",\n completedHtml: \"Marcação de página completa do questionário\",\n completedHtmlOnCondition: \"Marcação de página completa de questionário dinâmico\",\n loadingHtml: \"Marcação para mostrar enquanto o modelo de questionário está carregando\",\n commentText: \"Texto da área de comentários\",\n autocomplete: \"Tipo de preenchimento automático\",\n labelTrue: \"\\\"Verdadeiro\\\" rótulo\",\n labelFalse: \"\\\"Falso\\\" rótulo\",\n allowClear: \"Mostrar o botão Limpar\",\n displayStyle: \"Estilo de exibição de valor\",\n format: \"String formatada\",\n maximumFractionDigits: \"Máximo de dígitos fracionários\",\n minimumFractionDigits: \"Mínimo de dígitos fracionários\",\n useGrouping: \"Display grouping separators\",\n allowMultiple: \"Permitir vários arquivos\",\n allowImagesPreview: \"Pré-visualizar imagens\",\n acceptedTypes: \"Tipos de arquivo aceites\",\n waitForUpload: \"Aguarde a conclusão do upload\",\n needConfirmRemoveFile: \"Confirme a eliminação do ficheiro\",\n detailPanelMode: \"Localização do painel de detalhes\",\n minRowCount: \"Contagem mínima de linhas\",\n maxRowCount: \"Contagem máxima de linhas\",\n confirmDelete: \"Confirme a eliminação da linha\",\n confirmDeleteText: \"Mensagem de confirmação\",\n paneldynamic: {\n confirmDelete: \"Confirme a eliminação do painel\"\n },\n panelCount: \"Contagem inicial do painel\",\n minPanelCount: \"Contagem mínima de painéis\",\n maxPanelCount: \"Contagem máxima de painéis\",\n panelsState: \"Estado de expansão do painel interno\",\n templateDescription: \"Modelo de descrição\",\n templateTitle: \"Modelo de título\",\n panelPrevText: \"Dica de ferramenta do botão do painel anterior\",\n panelNextText: \"Dica de ferramenta do botão do painel seguinte\",\n showRangeInProgress: \"MOstrar barra de progresso\",\n templateTitleLocation: \"Localização do título da pergunta\",\n panelRemoveButtonLocation: \"Remover localização do botão do painel\",\n hideIfRowsEmpty: \"Oculte a pergunta se não houver linhas\",\n hideColumnsIfEmpty: \"Ocultar colunas se não houver linhas\",\n rateValues: \"Valores de taxa personalizados\",\n hideIfChoicesEmpty: \"Oculte a pergunta se ela não contiver opções\",\n hideNumber: \"Ocultar número de questão\",\n minWidth: \"Largura mínima (em valores aceitos pelo CSS)\",\n maxWidth: \"Largura máxima (em valores aceitos pelo CSS)\",\n width: \"Largura (em valores aceitos pelo CSS)\",\n showHeader: \"Mostrar cabeçalhos de coluna\",\n horizontalScroll: \"Mostrar barra de scroll horizontal\",\n columnMinWidth: \"Largura mínima da coluna (em valores aceitos pelo CSS)\",\n rowTitleWidth: \"Largura do cabeçalho da linha (em valores aceitos por CSS)\",\n valueTrue: \"\\\"Verdadeiro\\\" valor\",\n valueFalse: \"\\\"Falso\\\" valor\",\n minErrorText: \"\\\"O valor está abaixo do mínimo\\\" mensagem de erro\",\n maxErrorText: \"\\\"O valor excede o máximo\\\" mensagem de erro\",\n otherErrorText: \"\\\"Comentário vazio\\\" mensagem de erro\",\n keyDuplicationError: \"\\\"Valor de chave não exclusivo\\\" mensagem de erro\",\n maxSelectedChoices: \"Máximo de escolhas selecionadas\",\n showClearButton: \"Mostrar o botão Limpar\",\n showNumber: \"Mostrar número do painel\",\n logoWidth: \"Largura do logotipo (em valores aceitos pelo CSS)\",\n logoHeight: \"Altura do logotipo (em valores aceitos pelo CSS)\",\n readOnly: \"Apenas para leitura\",\n enableIf: \"Editável se\",\n emptyRowsText: \"\\\"Sem linhas\\\" mensagem\",\n size: \"Tamanho de entrada (em caracteres)\",\n separateSpecialChoices: \"Escolhas especiais separadas (Nenhuma, Outra, Selecionar Tudo)\",\n choicesFromQuestion: \"Copie as opções da seguinte pergunta\",\n choicesFromQuestionMode: \"Quais as opções pretendem copiar?\",\n showCommentArea: \"Mostrar a área de comentários\",\n commentPlaceholder: \"Espaço reservado para área de comentários\",\n displayRateDescriptionsAsExtremeItems: \"Exibir descrições de taxa como valores extremos\",\n rowsOrder: \"Ordem das linhas\",\n columnsLayout: \"Disposição da coluna\",\n columnColCount: \"Contagem de colunas aninhadas\",\n state: \"Estado de expansão do painel\",\n correctAnswer: \"Resposta correta\",\n defaultPanelValue: \"Valores pré-definidos\",\n cells: \"Textos de Célula\",\n keyName: \"Coluna chave\",\n itemvalue: {\n text: \"Texto alternativo\"\n },\n logoPosition: \"Posição do logo\",\n addLogo: \"Adicionar logo...\",\n changeLogo: \"Alterae logo...\",\n logoPositions: {\n none: \"Remover logo\",\n left: \"Esquerda\",\n right: \"Direita\",\n top: \"No cabeçalho\",\n bottom: \"No rodapé\"\n },\n tabs: {\n general: \"Geral\",\n fileOptions: \"Opções\",\n html: \"Editor Html\",\n columns: \"Colunas\",\n rows: \"Linhas\",\n choices: \"Opções\",\n items: \"Itens\",\n visibleIf: \"Visível se\",\n enableIf: \"Habilitar se\",\n requiredIf: \"Obrigatório se\",\n rateValues: \"Valores de qualificação\",\n choicesByUrl: \"Opções com origem na Web\",\n matrixChoices: \"Opções padrão\",\n multipleTextItems: \"Entradas de texto\",\n numbering: \"Numeração\",\n validators: \"Validadores\",\n navigation: \"Navegação\",\n question: \"Pergunta\",\n pages: \"Páginas\",\n timer: \"Cronômetro/Quiz\",\n calculatedValues: \"Valores Calculados\",\n triggers: \"Triggers\",\n templateTitle: \"Título do template\",\n totals: \"Totais\",\n logic: \"Lógica\",\n layout: \"Disposição\",\n data: \"Data\",\n validation: \"Validação\",\n cells: \"Texto de Células\",\n showOnCompleted: \"Questionário Completo\",\n logo: \"Logo no Título de Questionário\",\n slider: \"Slider\",\n expression: \"Expressão\",\n others: \"Outros\"\n },\n editProperty: \"Editar propriedade '{0}'\",\n items: \"Itens\",\n choicesVisibleIf: \"Escolhas estão visiveis se\",\n choicesEnableIf: \"Escolhas são selecionáveis se\",\n columnsEnableIf: \"Colunas estão visiveis se\",\n rowsEnableIf: \"Linhas estão visiveis se\",\n indent: \"Adicionar recuos\",\n panel: {\n indent: \"Adicionar recuos externos\"\n },\n innerIndent: \"Adicionar recuos internos\",\n defaultValueFromLastRow: \"Utilizar os valores padrão da última linha\",\n defaultValueFromLastPanel: \"Utilizar os valores padrão do último painel\",\n enterNewValue: \"Por favor, informe o valor.\",\n noquestions: \"Não há nenhuma pergunta na pesquisa.\",\n createtrigger: \"Por favor, crie uma condição\",\n titleKeyboardAdornerTip: \"Pressione o botão enter para editar\",\n keyboardAdornerTip: \"Pressione o botão enter para editar o item, pressione o botão delete para excluir o item, pressione alt mais a seta para cima ou a seta para baixo para mover o item\",\n triggerOn: \"Ligado \",\n triggerMakePagesVisible: \"Tornar páginas visíveis:\",\n triggerMakeQuestionsVisible: \"Tornar perguntas visíves:\",\n triggerCompleteText: \"Completar a pesquisa se obtiver êxito.\",\n triggerNotSet: \"A condição não está definida\",\n triggerRunIf: \"Executar se\",\n triggerSetToName: \"Mudar o valor de: \",\n triggerFromName: \"Copiar valor de: \",\n triggerRunExpression: \"Rodar essa expressão:\",\n triggerSetValue: \"para: \",\n triggerGotoName: \"Ir para a questão\",\n triggerIsVariable: \"Não colocar a variável no resultado da pesquisa.\",\n triggerRunExpressionEmpty: \"Introdução uma expressão valida\",\n emptyExpressionPlaceHolder: \"Escreva a expressão aqui...\",\n noFile: \"Nenhum ficheiro selecionado\",\n clearIfInvisible: \"Limpe o valor se a questão for escondida\",\n valuePropertyName: \"Nome da propriedade do valor\",\n searchEnabled: \"Ativar pesquisa\",\n hideSelectedItems: \"Escolher os itens selecionados\",\n signatureWidth: \"Largura da assinatura\",\n signatureHeight: \"Altura da assinatura\",\n verticalAlign: \"Alinhamento vertical\",\n alternateRows: \"Linhas alternativas\",\n columnsVisibleIf: \"Colunas estão visíveis se\",\n rowsVisibleIf: \"As linhas são visíveis se\",\n otherPlaceholder: \"Espaço reservado para área de comentários\"\n },\n // Property values\n pv: {\n true: \"verdadeiro\",\n false: \"falso\",\n inherit: \"herdar\",\n show: \"mostrar\",\n hide: \"ocultar\",\n default: \"padrão\",\n initial: \"inicial\",\n random: \"aleatório\",\n collapsed: \"colapsado\",\n expanded: \"expandido\",\n none: \"nenhum\",\n asc: \"ascendente\",\n desc: \"descendente\",\n indeterminate: \"indeterminado\",\n decimal: \"decimal\",\n currency: \"moeda\",\n percent: \"percentagem\",\n firstExpanded: \"primeiro expandido\",\n off: \"desligado\",\n onpanel: \"Iniciar em cada painel\",\n onPanel: \"no painel\",\n onSurvey: \"na pesquisa\",\n list: \"lista\",\n progressTop: \"progresso superior\",\n progressBottom: \"progresso inferior\",\n progressTopBottom: \"progresso superior inferior\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n top: \"superior\",\n bottom: \"inferior\",\n topBottom: \"superior and bottom\",\n both: \"Ambos\",\n left: \"esquerda\",\n right: \"direita\",\n color: \"cor\",\n date: \"data\",\n datetime: \"data hora\",\n \"datetime-local\": \"data hora-local\",\n email: \"e-mail\",\n month: \"mês\",\n number: \"número\",\n password: \"password\",\n range: \"intervalo\",\n tel: \"tel\",\n text: \"texto\",\n time: \"tempo\",\n url: \"url\",\n week: \"semana\",\n hidden: \"oculto\",\n on: \"ligado\",\n onPage: \"na página\",\n edit: \"editar\",\n display: \"mostrar\",\n onComplete: \"ao completar\",\n onHidden: \"ao ocultar\",\n onHiddenContainer: \"Quando a pergunta ou seu painel/página fica oculto\",\n clearInvisibleValues: {\n none: \"Nunca\"\n },\n all: \"todos\",\n page: \"página\",\n survey: \"pesquisa\",\n onNextPage: \"na página seguinte\",\n onValueChanged: \"ao mudar valor\",\n onValueChanging: \"Antes de uma resposta ser alterada\",\n standard: \"Estrutura original\",\n singlePage: \"Todas as perguntas em uma única página\",\n questionPerPage: \"Cada pergunta em uma página individual\",\n noPreview: \"Sem pré-visualização\",\n showAllQuestions: \"Mostrar todas as questões\",\n showAnsweredQuestions: \"Mostrar apenas perguntas respondidas\",\n pages: \"Páginas completas\",\n questions: \"Questões respondidas\",\n requiredQuestions: \"Perguntas obrigatórias respondidas\",\n correctQuestions: \"Respostas válidas\",\n buttons: \"Páginas concluídas (interface do botão)\",\n underInput: \"Sob a entrada\",\n underTitle: \"Sob o título\",\n onBlur: \"Em desfoque\",\n onTyping: \"Enquanto digita\",\n underRow: \"Sob a linha\",\n underRowSingle: \"Sob a linha, apenas um painel é visível\",\n showNavigationButtons: {\n none: \"Escondido\"\n },\n showProgressBar: {\n off: \"Escondido\"\n },\n showTimerPanel: {\n none: \"Escondido\"\n },\n showTimerPanelMode: {\n all: \"Ambos\"\n },\n detailPanelMode: {\n none: \"Escondido\"\n },\n addRowLocation: {\n default: \"Depende do layout da matriz\"\n },\n panelsState: {\n default: \"Os utilizadores não podem expandir ou recolher painéis\",\n collapsed: \"Todos os painéis estão recolhidos\",\n expanded: \"Todos os painéis estão espandidos\"\n },\n widthMode: {\n auto: \"Auto\",\n static: \"Estático\",\n responsive: \"Responsivo\"\n },\n imageFit: {\n none: \"Nenhum\",\n contain: \"Conter\",\n cover: \"Cobrir\",\n fill: \"Preencher\"\n },\n contentMode: {\n auto: \"Auto\",\n image: \"Imagem\",\n video: \"Video\",\n youtube: \"YouTube\"\n },\n displayMode: {\n auto: \"Auto\",\n buttons: \"Botões\",\n dropdown: \"Suspenso\"\n }\n },\n // Operators\n op: {\n empty: \"está vazio\",\n notempty: \"não está vazio\",\n equal: \"é igual\",\n notequal: \"não é igual\",\n contains: \"contém\",\n notcontains: \"não contém\",\n anyof: \"Nenhum de\",\n allof: \"Todos de\",\n greater: \"maior\",\n less: \"menor\",\n greaterorequal: \"maior ou igual\",\n lessorequal: \"menor ou igual\",\n and: \"e\",\n or: \"ou\"\n },\n // Embed window\n ew: {\n angular: \"Usar versão Angular\",\n jquery: \"Usar versão jQuery\",\n knockout: \"Usar versão Knockout\",\n react: \"Usar versão React\",\n vue: \"Usar versão Vue\",\n bootstrap: \"Para framework bootstrap\",\n modern: \"Tema moderno\",\n default: \"Tema pré-definido\",\n orange: \"Tema laranja\",\n darkblue: \"Tema azul escuro\",\n darkrose: \"Tema rosa escuro\",\n stone: \"Tema pedra\",\n winter: \"Tema inverno\",\n winterstone: \"Tema inverno-pedra\",\n showOnPage: \"Mostrar pesquisa em uma página\",\n showInWindow: \"Mostrar pesquisa em uma janela\",\n loadFromServer: \"Carregar JSON da pesquisa de um servidor\",\n titleScript: \"Scripts e estilos\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n // Preview (Survey)\n ts: {\n selectPage: \"Selecione a página para testar:\",\n showInvisibleElements: \"Mostrar elementos invisíveis\",\n hideInvisibleElements: \"Esconder elementos invisíveis\"\n },\n validators: {\n answercountvalidator: \"contador de respostas\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"expressão\",\n numericvalidator: \"numérico\",\n regexvalidator: \"regex\",\n textvalidator: \"texto\"\n },\n triggers: {\n completetrigger: \"completar pesquisa\",\n setvaluetrigger: \"definir valor\",\n copyvaluetrigger: \"copiar valor\",\n skiptrigger: \"Saltar para questão\",\n runexpressiontrigger: \"rodar expressão\",\n visibletrigger: \"alterar visibilidade\"\n },\n pehelp: {\n cookieName: \"Os cookies impedem que os usuários preencham a mesma pesquisa duas vezes.\",\n format: \"Utilizar {0} como um espaço reservado para o valor real.\",\n totalText: \"Visível apenas quando pelo menos uma coluna tiver tipo total ou expressão total.\",\n acceptedTypes: \"Consulte o [aceitar](https://www.w3schools.com/tags/att_input_accept.asp) descrição do atributo para mais informações.\",\n columnColCount: \"Aplicável apenas aos tipos de célula Grupo de Rádio e Caixa de Seleção.\",\n autocomplete: \"Consulte o [autocompleto](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) descrição do atributo para mais informações.\",\n valueName: \"Se você não definir esta propriedade, a resposta será armazenada em um campo especificado pela propriedade Nome.\",\n choicesbyurl: {\n valueName: \"Nome\"\n },\n keyName: \"Se a coluna especifica contiver valores idênticos, o questionário lançará o \\\"Valor de chave não exclusivo\\\" erro.\"\n },\n // Properties\n p: {\n title: {\n name: \"título\",\n title: \"Deixar vazio se for o mesmo que 'Nome'\"\n },\n multiSelect: \"Permitir escolha múltipla\",\n showLabel: \"Mostrar legenda das imagens\",\n value: \"Valor\",\n visibleIf: \"Visível se\",\n attachOriginalItems: \"anexar itens originais\",\n useDisplayValuesInDynamicTexts: \"Usar valores de exibição em textos dinâmicos\",\n titleLocation: \"Localização do título\",\n description: \"Descrição\",\n descriptionLocation: \"Descrição de localização\",\n defaultValueExpression: \"Valor de expressão pré-definida\",\n requiredIf: \"Obrigatório se\",\n validators: \"Validadores\",\n bindings: \"ligações\",\n renderAs: \"renderizar como\",\n currency: \"Moeda\",\n cellHint: \"Dica de célula\",\n isUnique: \"É único\",\n showInMultipleColumns: \"Mostrar em múltiplas colunas\",\n totalMaximumFractionDigits: \"Total Máximo de Dígitos da Fração\",\n totalMinimumFractionDigits: \"Total Mínimo de Dígitos da Fração\",\n columns: \"Colunas\",\n detailElements: \"Detalhes elementos\",\n choices: \"Opções\",\n allowAdaptiveActions: \"Permitir ações adaptativas\",\n defaultRowValue: \"valor padrão da linha\",\n detailPanelShowOnAdding: \"Mostrar ao adicionar painel de detalhes\",\n logoFit: \"Ajustar o logo\",\n pages: \"páginas\",\n questions: \"questões\",\n triggers: \"Condições\",\n calculatedValues: \"Valores calculados\",\n surveyId: \"Identificação do questionário\",\n surveyPostId: \"Identificação da publicação do questionário\",\n surveyShowDataSaving: \"Mostrar economia de dados do questionário\",\n questionDescriptionLocation: \"Descrição da localização do questionário\",\n progressBarType: \"Tipo de barra de progresso\",\n questionTitlePattern: \"Padrão de título da pergunta\",\n widthMode: \"Modo de largura\",\n showBrandInfo: \"Mostrar informações da marca\",\n choicesByUrl: \"Opções com origem na Web\",\n choicesLazyLoadEnabled: \"Escolha carga lenta habilitada\",\n choicesLazyLoadPageSize: \"Escolha carga lenta tamanho de página\",\n inputFieldComponent: \"Componente de campo de entrada\",\n itemComponent: \"Componente de item\",\n min: \"min\",\n max: \"max\",\n minValueExpression: \"Expressão valor mínimo\",\n maxValueExpression: \"Expressão valor máximo\",\n step: \"passo\",\n dataList: \"Lista\",\n itemSize: \"Tamanho do item\",\n elements: \"elementos\",\n content: \"conteúdo\",\n navigationButtonsVisibility: \"Visibilidade dos botões de navegação\",\n navigationTitle: \"Título de navegação\",\n navigationDescription: \"Descrição de navegação\",\n closeOnSelect: \"Fechar ao selecionar\",\n longTap: \"Toque longo\",\n autoGrow: \"Crescimento automático\",\n acceptCarriageReturn: \"aceitar devolução de conteúdo\",\n displayMode: \"Modo de exibição\",\n label: \"Rótulo\",\n contentMode: \"Modo de conteúdo\",\n imageFit: \"Ajustar imagem\",\n altText: \"Texto alternativo\",\n height: \"altura\",\n penColor: \"Cor de caneta\",\n backgroundColor: \"Cor de fundo\",\n templateElements: \"Modelo de elementos\",\n operator: \"operador\",\n isVariable: \"É variável\",\n runExpression: \"Expressão de execução\",\n showCaption: \"Mostrar descrição\",\n iconName: \"Nome do ícone\",\n iconSize: \"Tamanho do ícone\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"pt\"] = portugueseTranslation;\n\n\n/***/ }),\n\n/***/ \"./src/localization/russian.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/russian.ts ***!\n \\*************************************/\n/*! exports provided: ruStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ruStrings\", function() { return ruStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n//Uncomment this line on creating a translation file\n\nvar ruStrings = {\n // strings for survey templates\n survey: {\n edit: \"Редактировать\",\n externalHelpLink: \"Научиться создавать опросы\",\n externalHelpLinkUrl: \"Https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Пожалуйста, перетяните необходимый элемент из панели слева\",\n copy: \"Копировать\",\n addToToolbox: \"Добавить к инструментам\",\n deletePanel: \"Удалить панель\",\n deleteQuestion: \"Удалить вопрос\",\n convertTo: \"Преобразовать в\",\n drag: \"Перетянуть элемент\"\n },\n // questionTypes\n qt: {\n default: \"По умолчанию\",\n checkbox: \"Множественный выбор\",\n comment: \"Комментарий\",\n imagepicker: \"Выбор изображения\",\n dropdown: \"Выпадающий список\",\n file: \"Загрузка файлов\",\n HTML: \"HTML\",\n matrix: \"Матрица (единичный выбор)\",\n matrixdropdown: \"Матрица (множественный выбор)\",\n matrixdynamic: \"Матрица (динамические ряды)\",\n multipletext: \"Multiple Text\",\n panel: \"Панель (для группы вопросов)\",\n paneldynamic: \"Панель (динамические панели)\",\n radiogroup: \"Единичный выбор\",\n rating: \"Рейтинг (шкала)\",\n text: \"Текстовый ввод\",\n boolean: \"Булиевое значение\",\n expression: \"Выражение (только для чтения)\",\n flowPanel: \"Панель потока\"\n },\n // Strings in Editor\n ed: {\n defaultLocale: \"По умолчанию ({0})\",\n survey: \"Опросник\",\n settings: \"Настройки опросника\",\n opjectPropertiesHeader: \"Дополнительные\",\n showObjectProperties: \"Показать свойства объекта\",\n hideObjectProperties: \"Скрыть свойства объекта\",\n editSurvey: \"Редактировать опросник\",\n addNewPage: \"Добавить новую страницу\",\n moveRight: \"Прокрутить вправо\",\n moveLeft: \"Прокрутить влево\",\n deletePage: \"Удалить страницу\",\n editPage: \"Редактировать страницу\",\n edit: \"Редактировать\",\n newPageName: \"страница\",\n newQuestionName: \"вопрос\",\n newPanelName: \"панель\",\n newTextItemName: \"текст\",\n testSurvey: \"Тестировать опросник\",\n testSurveyAgain: \"Тестировать еще раз\",\n testSurveyWidth: \"Ширина опросника:\",\n logic: \"Логика опросника\",\n embedSurvey: \"Вставить опросник\",\n translation: \"Перевод\",\n \"property-grid\": \"Свойства\",\n saveSurvey: \"Сохранить опросник\",\n designer: \"Обзор конструктора\",\n jsonEditor: \"JSON редактор\",\n undo: \"Отменить\",\n redo: \"Повтор\",\n options: \"Параметры\",\n generateValidJSON: \"Сформировать валидный JSON\",\n generateReadableJSON: \"Сформировать читаемый JSON\",\n toolbox: \"Панель инструментов\",\n toolboxGeneralCategory: \"Общие\",\n delSelObject: \"Удалить выбранный объект\",\n editSelObject: \"Редактировать выбранный объект\",\n correctJSON: \"Пожалуйста, исправьте JSON.\",\n surveyResults: \"Результаты обследования:\",\n surveyResultsTable: \"Как таблица\",\n surveyResultsJson: \"Как JSON\",\n resultsTitle: \"Заголовок вопроса\",\n resultsName: \"Название вопроса\",\n resultsValue: \"Значение ответа\",\n resultsDisplayValue: \"Отображаемое значение\",\n modified: \"Модифицирован\",\n saving: \"Сохранение\",\n saved: \"Сохраненный\",\n saveError: \"Ошибка! Содержание редактора не сохранено.\",\n translationAddLanguage: \"Выберите дополнительный язык опросника\",\n translationShowAllStrings: \"Показывать все строки\",\n translationShowAllPages: \"Показывать все страницы\",\n translationNoStrings: \"Нет строк для перевода. Пожалуйста, измените фильтр.\",\n translationExportToSCVButton: \"Экспорт в CSV\",\n translationImportFromSCVButton: \"Импорт из CSV\",\n translationMergeLocaleWithDefault: \"Объединить {0} с локалью по умолчанию\",\n bold: \"Жирный\",\n italic: \"Курсив\",\n underline: \"Подчеркивание\",\n fpAddQuestion: \"Добавить вопрос...\",\n completedHtmlOnConditionItemText: \"Показывать, если:\",\n lg: {\n //Logic tab strings\n page_visibilityName: \"Видимость страницы\",\n panel_visibilityName: \"Видимость панели\",\n panel_enableName: \"Панель включена/выключена\",\n question_visibilityName: \"Видимость вопроса\",\n question_enableName: \"Вопрос включен/выключен\",\n question_requireName: \"Вопрос необязательный\",\n trigger_completeName: \"Опрос завершен\",\n trigger_setvalueName: \"Установить значение вопроса\",\n trigger_copyvalueName: \"Копировать значение вопроса\",\n trigger_skipName: \"Перейти к вопросу\",\n trigger_runExpressionName: \"Запустить пользовательское выражение\",\n completedHtmlOnConditionName: \"Пользовательский текст 'Страницы благодарности'\",\n page_visibilityDescription: \"Сделать страницу видимой, когда логическое выражение вернет 'true'. В противном случае сделать ее невидимой.\",\n panel_visibilityDescription: \"Сделать панель видимой, когда логическое выражение вернет 'true'. В противном случае сделать ее невидимой.\",\n panel_enableDescription: \"Сделать панель и все элементы внутри нее включенной, когда логическое выражение вернет 'true'. В противном случае оставить их отключенными.\",\n question_visibilityDescription: \"Сделать вопрос видимой, когда логическое выражение вернет 'true'. В противном случае сделать ее невидимой.\",\n question_enableDescription: \"Сделать вопрос включенным, когда логическое выражение вернет 'true'. В противном случае оставить его отключенными.\",\n question_requireDescription: \"Вопрос становится обязательным, когда логическое выражение вернет 'true'.\",\n trigger_completeDescription: \"Когда логическое выражение вернет 'true', то опрос становится завершенным и конечный пользователь видит 'Страницу благодарности'.\",\n trigger_setvalueDescription: \"Когда значения вопросов, которые используются в логическом выражении, изменяются и логическое выражение возвращает значение 'true', тогда на выбранный вопрос устанавливается значение.\",\n trigger_copyvalueDescription: \"Когда значения вопросов, которые используются в логическом выражении, изменяются и логическое выражение возвращает значение 'true', тогда значение одного выбранного вопроса копируется в другой выбранный вопрос.\",\n trigger_skipDescription: \"Когда логическое выражение вернет 'true', тогда опрос переходит к/фокусируется на выбранном вопросе.\",\n trigger_runExpressionDescription: \"Когда логическое выражение возвращает 'true',тогда выполняется пользовательское выражение. Вы можете при желании установить этот результат выражения в выбранный вопрос.\",\n completedHtmlOnConditionDescription: \"Если логическое выражение возвращает 'true', то текст по умолчанию для 'Страницы благодарности' изменяется на заданный.\",\n itemExpressionText: \"Когда выражение: '{0}' возвращает 'true':\",\n page_visibilityText: \"Сделать страницу {0} видимой\",\n panel_visibilityText: \"Сделать панель {0} видимой\",\n panel_enableText: \"Сделать панель {0} включенной\",\n question_visibilityText: \"Сделать вопрос {0} видимым\",\n question_enableText: \"Сделать вопрос {0} включенным\",\n question_requireText: \"Сделать вопрос {0} обязательным\",\n trigger_completeText: \"Опрос становится завершенным\",\n trigger_setvalueText: \"Установить в вопрос: {0} значение {1}\",\n trigger_copyvalueText: \"Копировать в вопрос: {0} значение из вопроса {1}\",\n trigger_skipText: \"Опрос переходит к вопросу {0}\",\n trigger_runExpressionText1: \"Выполнить выражение: '{0}'\",\n trigger_runExpressionText2: \"и установить его результат в вопрос: {0}\",\n completedHtmlOnConditionText: \"Показывать пользовательский текст для 'Страницы благодарности'.\",\n expressionEditorTitle: \"Настройка логики выражения\",\n deleteOperation: \"Удалить операцию\",\n addNewOperation: \"Добавить новую операцию(и)\",\n expressionInvalid: \"Логическое выражение пустое или недействительное. Пожалуйста, исправьте его.\",\n noOperationError: \"Пожалуйста, добавьте хоть одну операцию.\",\n operationInvalid: \"Пожалуйста, исправьте проблемы в вашей операции(ях).\"\n }\n },\n // Property names in table headers\n pel: {\n isRequired: \"Обязательное?\"\n },\n // Property Editors\n pe: {\n apply: \"Применить\",\n ok: \"OK\",\n save: \"Сохранить\",\n cancel: \"Отменить\",\n reset: \"Сброс\",\n close: \"Закрыть\",\n delete: \"Удалить\",\n add: \"Добавить\",\n addNew: \"Добавить новый\",\n addItem: \"Нажмите, чтобы добавить элемент...\",\n addOther: \"Другое\",\n addSelectAll: \"Выбрать все пункты\",\n addNone: \"Ничего\",\n removeAll: \"Удалить все\",\n edit: \"Редактировать\",\n back: \"Вернуться без сохранения\",\n saveAndBack: \"Сохранить и вернуться\",\n itemValueEdit: \"Отображать, если\",\n editChoices: \"Редактировать выбор\",\n move: \"Переместить\",\n empty: \"<пусто>\",\n notEmpty: \"<редактировать значение>\",\n fastEntry: \"Быстрый вход\",\n formEntry: \"Форма входа\",\n testService: \"Тест услуги\",\n itemSelectorEmpty: \"Пожалуйста, выберите элемент\",\n conditionSelectQuestion: \"Выберите вопрос ...\",\n conditionSelectPage: \"Выбрать страницу ...\",\n conditionSelectPanel: \"Выберите панель ...\",\n conditionValueQuestionTitle: \"Пожалуйста, введите/выберите значение\",\n conditionButtonAdd: \"Добавить\",\n conditionButtonReplace: \"Заменить\",\n conditionHelp: \"Пожалуйста, введите логическое выражение. Должно возвращаться значение 'true', чтобы вопрос/страница оставались видимыми, например:.. {Вопрос1} = 'значение1' или ({Вопрос2} * {Вопрос4}> 20 и {Вопрос3} <5)\",\n expressionHelp: \"Пожалуйста, введите выражение. Вы можете использовать фигурные скобки, чтобы получить доступ к значениям вопроса.: '{Вопрос1} + {Вопрос2}', '({цена}*{количество}) * (100 - {скидка}).\",\n aceEditorHelp: \"Нажмите Ctrl+Пробел, чтобы получить подсказки\",\n aceEditorRowTitle: \"Текущая строка\",\n aceEditorPanelTitle: \"Текущая панель\",\n showMore: \"Для получения более подробной информации, пожалуйста, перейдите к документации\",\n conditionShowMoreUrl: \"Https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Доступные вопросы:\",\n cellsEmptyRowsColumns: \"Должен быть хотя бы один столбец или строка\",\n propertyIsEmpty: \"Пожалуйста, введите значение\",\n propertyNameIsNotUnique: \"Пожалуйста, введите уникальное имя\",\n listIsEmpty: \"Добавьте новое условие\",\n expressionIsEmpty: \"Выражение - пустое\",\n value: \"Значение\",\n text: \"Текст\",\n rowid: \"ID строки\",\n imageLink: \"Ссылка на изображение\",\n columnEdit: \"Изменить столбец: {0}\",\n itemEdit: \"Редактировать элемент: {0}\",\n url: \"URL\",\n path: \"Путь\",\n valueName: \"Название пункта\",\n titleName: \"Заголовок пункта\",\n titlePlaceholder: \"Введите заголовок\",\n surveyTitlePlaceholder: \"Введите заголовок опроса\",\n pageTitlePlaceholder: \"Введите заголовок страницы\",\n descriptionPlaceholder: \"Введите описание\",\n surveyDescriptionPlaceholder: \"Введите описание опроса\",\n pageDescriptionPlaceholder: \"Введите описание страницы\",\n showOtherItem: \"Есть пункт 'Другое'\",\n otherText: \"Текст пункта 'Другое'\",\n showNoneItem: \"Нет ни одного пункта\",\n noneText: \"Текст пункта 'Ничего'\",\n hasSelectAll: \"Выбрать все пункты\",\n selectAllText: \"Текст пункта 'Выбрать все пункты'\",\n choicesMin: \"Минимальное значение для автоматически сгенерированных элементов\",\n choicesMax: \"Максимальное значение для автоматически сгенерированных элементов\",\n choicesStep: \"Разница между автоматически сгенерироваными элементами\",\n name: \"Название\",\n title: \"Заголовок\",\n cellType: \"Тип ячейки\",\n ColCount: \"Количество столбцов\",\n choicesOrder: \"Выбрать порядок отбора\",\n visible: \"Отображать?\",\n isRequired: \"Обязательный?\",\n isAllRowRequired: \"Все строки обязательны для заполнения\",\n requiredErrorText: \"Это поле обязательное для заполнения\",\n startWithNewLine: \"Начинать с новой строки?\",\n rows: \"Количество строк\",\n PlaceHolder: \"Плейсхолдер\",\n showPreview: \"Показать предпросмотр?\",\n storeDataAsText: \"Хранить содержимое файла в формате JSON как текст\",\n MaxSize: \"Максимальный размер файла в байтах\",\n ImageHeight: \"Высота изображения\",\n ImageWidth: \"Ширина изображения\",\n rowCount: \"Количество строк\",\n columnLayout: \"Макет столбцов\",\n addRowLocation: \"Добавить расположение кнопки строки\",\n addRowText: \"Добавить текст кнопки строки\",\n removeRowText: \"Удалить кнопку строки текста\",\n rateMin: \"Минимальный рейтинг\",\n rateMax: \"Максимальный рейтинг\",\n rateStep: \"Шаг рейтинга\",\n minRateDescription: \"Описание для минимального рейтинга\",\n maxRateDescription: \"Описание для максимального рейтинга\",\n inputType: \"Тип ввода\",\n optionsCaption: \"Параметры подписи\",\n DefaultValue: \"Значение по умолчанию\",\n cellsDefaultRow: \"Текст ячеек по умолчанию\",\n surveyEditorTitle: \"Настройки опросника\",\n qEditorTitle: \"Изменить: {0}\",\n maxLength: \"Максимальная длина\",\n buildExpression: \"Собрать\",\n editExpression: \"Редактировать\",\n and: \"И\",\n or: \"ИЛИ\",\n remove: \"Переместить\",\n addCondition: \"добавить условие\",\n //survey\n showTitle: \"Показать/скрыть заголовок\",\n locale: \"Язык по умолчанию\",\n simulator: \"Выберите устройство\",\n landscapeOrientation: \"Альбомная\",\n mode: \"Режим (редактирование/просмотр)\",\n clearInvisibleValues: \"Очистить невидимые значения\",\n cookieName: \"Имя Cookie (отключить повторное прохождение опроса локально)\",\n sendResultOnPageNext: \"Показать результаты опроса на странице рядом\",\n storeOthersAsComment: \"Хранить занчение 'Другое' в отдельном поле\",\n showPageTitles: \"Показывать заголовки страниц\",\n showPageNumbers: \"Показывать номера страниц\",\n pagePrevText: \"Текст в кнопке 'Предыдущая страница'\",\n pageNextText: \"Текст в кнопке 'Следующая страница'\",\n completeText: \"Текст в кнопке 'Завершить'\",\n startSurveyText: \"Текст в кнопке 'Начать'\",\n showNavigationButtons: \"Показывать кнопки навигации (навигация по умолчанию)\",\n showPrevButton: \"Показывать кнопки 'Предыдущая страница' (пользователь может вернуться на предыдущую страницу)\",\n firstPageIsStarted: \"Первая страница опросника является стартовой страницей.\",\n showCompletedPage: \"Показывать страницу с текстом по завершению заполнения (HTML финальной страницы)\",\n goNextPageAutomatic: \"Переходить на следующую страницу автоматически при заполнении всех вопросов\",\n showProgressBar: \"Показывать прогресс заполнения\",\n questionTitleLocation: \"Расположение заголовка вопроса\",\n requiredText: \"Символ для обязательного вопроса\",\n questionStartIndex: \"Начальный индекс вопроса (1, 2 или 'A', 'а')\",\n showQuestionNumbers: \"Показывать номера вопросов\",\n questionTitleTemplate: \"Шаблон названия опроса, по умолчанию: {не} {требует} {текста}.\",\n questionErrorLocation: \"Размещение ошибки опроса\",\n focusFirstQuestionAutomatic: \"Фокусирование на первом вопросе при изменении страницы\",\n questionsOrder: \"Сортировка элементов на странице\",\n maxTimeToFinish: \"Максимальное время в секундах, чтобы заполнить опросник\",\n maxTimeToFinishPage: \"Максимальное время в секундах, чтобы заполнить страницу опросника\",\n showTimerPanel: \"Показывать панель таймера\",\n showTimerPanelMode: \"Показывать режим панели таймера\",\n RenderMode: \"Режим визуализации\",\n allowAddPanel: \"Разрешить добавление панели\",\n allowRemovePanel: \"Разрешить удаление панели\",\n panelAddText: \"Добавление текста на панели\",\n panelRemoveText: \"Удаление текста на панели\",\n isSinglePage: \"Показывать все элементы на одной странице\",\n HTML: \"HTML\",\n expression: \"Выражение\",\n minValue: \"Минимальное значение\",\n maxValue: \"Максимальное значение\",\n mINLENGTH: \"Минимальная длина\",\n allowDigits: \"Разрешить цифры\",\n minCount: \"Минимальное количество\",\n maxCount: \"Максимальное количество\",\n regex: \"Регулярное выражение\",\n totalText: \"Общий текст\",\n totalType: \"Общий тип\",\n totalExpression: \"Общее выражение\",\n totalDisplayStyle: \"Общий стиль отображения\",\n totalCurrency: \"Общая валюта\",\n totalFormat: \"Общий формат\",\n // Header adorner\n logoPosition: \"Местоположение логотипа\",\n addLogo: \"Добавить логотип...\",\n changeLogo: \"Изменить логотип...\",\n logoPositions: {\n none: \"Разместить логотип\",\n left: \"Слева\",\n right: \"Справа\",\n top: \"Сверху\",\n bottom: \"Снизу\",\n },\n tabs: {\n general: \"Общие\",\n fileOptions: \"Параметры\",\n HTML: \"Редактор HTML\",\n columns: \"Столбцы\",\n rows: \"Строки\",\n choices: \"Выбор\",\n items: \"Элементы\",\n visibleIf: \"Отображать, если\",\n enableIf: \"Доступен, если\",\n requiredIf: \"Обязателен для заполнения, если\",\n rateValues: \"Оценить важность(вес) вопроса\",\n choicesByUrl: \"Выбор из Интернета\",\n matrixChoices: \"Выбор по умолчанию\",\n multipleTextItems: \"Ввод нескольких текстовых полей\",\n validators: \"Валидаторы\",\n navigation: \"Навигация\",\n question: \"Вопрос\",\n completedHtml: \"HTML финальной страницы\",\n completedHtmlOnCondition: \"HTML финальной страницы при условии\",\n loadingHtml: \"Загрузка HTML\",\n timer: \"Таймер/Викторина\",\n calculatedValues: \"Расчетные значения\",\n triggers: \"Триггеры\",\n templateTitle: \"Название шаблона\",\n totals: \"Итоги\",\n logic: \"Логика\",\n layout: \"Планировка\",\n data: \"Данные\",\n validation: \"Проверка\",\n cells: \"Ячейки\",\n showOnCompleted: \"Показать по завершению\",\n logo: \"Логотип в заголовке опросника\",\n others: \"Другие\",\n },\n editProperty: \"Редактировать свойство '{0}'\",\n items: \"[Элементы: {0}]\",\n enterNewValue: \"Пожалуйста, введите значение.\",\n noquestions: \"В опроснике нет ни одного вопроса\",\n createtrigger: \"Пожалуйста, создайте триггер\",\n triggerOn: \"О\",\n triggerMakePagesVisible: \"Сделать страницы видимыми:\",\n triggerMakeQuestionsVisible: \"Сделать элементы видимыми:\",\n triggerCompleteText: \"Завершить опрос, если все получися.\",\n triggerNotSet: \"Тригер не установлен\",\n triggerRunIf: \"Начать, если\",\n triggerSetToName: \"Изменить значение:\",\n triggerFromName: \"Скопировать значение из:\",\n triggerRunExpression: \"Выполнить это выражение:\",\n triggerSetValue: \"в:\",\n triggerGotoName: \"Перейти к вопросу:\",\n triggerIsVariable: \"Не помещать переменную в результат опросника.\",\n triggerRunExpressionEmpty: \"Пожалуйста, введите корректное выражение\"\n },\n // Property values\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"Наследовать\",\n show: \"Показать\",\n hide: \"Скрыть\",\n default: \"По умолчанию\",\n initial: \"Изначальный порядок\",\n random: \"Случайный порядок\",\n collapsed: \"Прерван\",\n expanded: \"Расширен\",\n none: \"Нет\",\n asc: \"По возрастанию\",\n desc: \"По убыванию\",\n indeterminate: \"Неопределенный\",\n decimal: \"Десятичный\",\n currency: \"Валюта\",\n percent: \"Проценты\",\n firstExpanded: \"Расширен первый\",\n off: \"Выключить\",\n onPanel: \"На панели\",\n onSurvey: \"В опроснике\",\n list: \"Список\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"Горизонтально\",\n vertical: \"Вертикально\",\n top: \"Сверху\",\n bottom: \"Снизу\",\n topBottom: \"Сверху и снизу\",\n left: \"Слева\",\n color: \"Цвет\",\n date: \"Дата\",\n datetime: \"Дата и время\",\n \"datetime-local\": \"Местные дата и время\",\n email: \"Email\",\n month: \"Месяц\",\n number: \"Номер\",\n password: \"Пароль\",\n range: \"Диапазон\",\n tel: \"Телефон\",\n text: \"Текст\",\n time: \"Время\",\n url: \"URL\",\n week: \"Неделя\",\n hidden: \"Скрыт\",\n on: \"Включить\",\n onPage: \"На странице\",\n edit: \"Редактирование\",\n display: \"Просмотр\",\n onComplete: \"По завершению\",\n onHidden: \"По скрытию\",\n all: \"Все\",\n page: \"Страница\",\n survey: \"Опрос\",\n onNextPage: \"При переходе на следующую страницу\",\n onValueChanged: \"При изменении значения\"\n },\n // Operators\n op: {\n empty: \"не заполнено\",\n notempty: \"заполнено\",\n equal: \"равно\",\n notequal: \"не равно\",\n contains: \"содержит\",\n notcontains: \"не содержит\",\n anyof: \"любой из\",\n allof: \"все из\",\n greater: \"больше\",\n less: \"меньше\",\n greaterorequal: \"больше или равно\",\n lessorequal: \"меньше или равно\"\n },\n // Embed window\n ew: {\n angular: \"Используйте версию Angular\",\n jquery: \"Используйте версию jQuery\",\n knockout: \"Используйте версию Knockout\",\n react: \"Используйте версию React\",\n vue: \"Используйте версию Vue\",\n bootstrap: \"Для библиотеки bootstrap\",\n standard: \"Без библиотеки bootstrap\",\n showOnPage: \"Показывать опросник на странице\",\n showInWindow: \"Показывать опросник в модальном окне\",\n loadFromServer: \"Загрузить Json опросника с сервера\",\n titleScript: \"Скрипты и стили\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n // Опрос Тест\n ts: {\n selectPage: \"Выберите страницу, чтобы проверить это:\",\n showInvisibleElements: \"Показывать скрытые элементы\"\n },\n validators: {\n answercountvalidator: \"Количество ответов\",\n EmailValidator: \"Email\",\n expressionvalidator: \"Выражение\",\n numericvalidator: \"Число\",\n regexvalidator: \"Регулярное выражение\",\n textvalidator: \"Текст\"\n },\n triggers: {\n completetrigger: \"Завершить опрос\",\n setvaluetrigger: \"Установить значение\",\n copyvaluetrigger: \"Скопировать значение\",\n skiptrigger: \"Перейти к вопросу\",\n runexpressiontrigger: \"Запустить выражение\",\n visibletrigger: \"Изменить видимость (не рекомендуется)\"\n },\n // Properties\n p: {\n name: \"Название\",\n title: {\n name: \"Название\",\n title: \"Оставьте его пустым, если оно такое же, как 'Название'\"\n },\n navigationButtonsVisibility: \"Отображение навигационных кнопок\",\n questionsOrder: \"Сортировка элементов на странице\",\n maxTimeToFinish: \"Максимальное время для завершения\",\n visible: \"Видимый\",\n visibleIf: \"Отображать, если\",\n questionTitleLocation: \"Расположение заголовка вопроса\",\n description: \"Описание\",\n state: \"Состояние\",\n isRequired: \"Обязателен\",\n requiredIf: \"Обязателен если\",\n indent: \"Отступ\",\n requiredErrorText: \"Это поле обязательное для заполнения\",\n startWithNewLine: \"Начинать с новой строки\",\n innerIndent: \"Внутренний отступ\",\n page: \"Страница\",\n width: \"Ширина\",\n commentText: \"Комментарий\",\n valueName: \"Название значения\",\n enableIf: \"Доступен при условии\",\n defaultValue: \"Значение по умолчанию\",\n correctAnswer: \"Правильный ответ\",\n readOnly: \"Только для чтения\",\n validators: \"Валидаторы\",\n titleLocation: \"Расположение заголовка\",\n hasComment: \"Есть комментарий\",\n showOtherItem: \"Есть значение 'Другое'\",\n choices: \"Выбор\",\n choicesOrder: \"Выбрать порядок выбора\",\n choicesByUrl: \"Выбрать из интернета\",\n otherText: \"Другой текстовый элемент\",\n otherErrorText: \"Текст ошибки поля 'Другое'\",\n storeOthersAsComment: \"Хранить значение поля 'Другое', как комментарий\",\n label: \"Ярлык\",\n showTitle: \"Показывать название\",\n valueTrue: \"Правильно\",\n valueFalse: \"Неправильно\",\n cols: \"Столбцы\",\n rows: \"Строки\",\n placeholder: \"Плейсхолдер\",\n optionsCaption: \"Подпись параметров\",\n expression: \"Выражение\",\n format: \"Формат\",\n displayStyle: \"Стиль отображения\",\n currency: \"Валюта\",\n useGrouping: \"Использовать группировку\",\n showPreview: \"Показывать превью\",\n allowMultiple: \"Выбрать несколько\",\n imageHeight: \"Высота изображения\",\n imageWidth: \"Ширина изображения\",\n storeDataAsText: \"Хранить данные в виде текста\",\n maxSize: \"Максимальный размер\",\n html: \"HTML\",\n columns: \"Столбцы\",\n cells: \"Ячейки\",\n isAllRowRequired: \"Все строки обязательны для заполнения\",\n horizontalScroll: \"Горизонтальный скролл\",\n cellType: \"Тип ячейки\",\n columnsLayout: \"Макет столбцов\",\n columnColCount: \"Количество столбцов\",\n columnMinWidth: \"Минимальная ширина столбца\",\n rowCount: \"Количество строк\",\n minRowCount: \"Минимальное количество строк\",\n maxRowCount: \"Максимальное количество строк\",\n keyName: \"Название ключа\",\n keyDuplicationError: \"Ошибка! Такой ключ уже существует, укажите другое название.\",\n confirmDelete: \"Подтвердить удаление\",\n confirmDeleteText: \"Текст сообщения при подтверждении удаления\",\n addRowLocation: \"Добавить расположение строк\",\n addRowText: \"Добавить кнопку строки текста\",\n removeRowText: \"Удалить кнопку строки текста\",\n items: \"Элементы\",\n itemSize: \"Размер элементов\",\n colCount: \"Количество столбцов\",\n templateTitle: \"Заголовок шаблона\",\n templateDescription: \"Описание шаблона\",\n allowAddPanel: \"Разрешить добавление панели\",\n allowRemovePanel: \"Разрешить удаление панели\",\n panelCount: \"Количество панелей\",\n minPanelCount: \"Минимальное количество панелей\",\n maxPanelCount: \"Максимальное количество панелей\",\n panelsState: \"Состояние панелей\",\n panelAddText: \"Текст сообщения при добавлении панели\",\n panelRemoveText: \"Текст сообщения при удалении панели\",\n panelPrevText: \"Текст сообщения предыдущей панели\",\n panelNextText: \"Текст сообщения следующей панели\",\n showQuestionNumbers: \"Показывать номера вопросов\",\n showRangeInProgress: \"Показывать прогресса заполнения\",\n renderMode: \"Режим отображения\",\n templateTitleLocation: \"Расположение заголовка шаблона\",\n rateValues: \"Оценить важность(вес) опроса\",\n rateMin: \"Минимальный рейтинг\",\n rateMax: \"Максимальный рейтинг\",\n rateStep: \"Шаг рейтинга\",\n minRateDescription: \"Описание для минимального рейтинга\",\n maxRateDescription: \"Описание для максимального рейтинга\",\n inputType: \"Тип ввода\",\n size: \"Размер\",\n locale: \"Локаль\",\n focusFirstQuestionAutomatic: \"Фокусирование на первом вопросе при изменении страницы\",\n completedHtml: \"HTML финальной страницы\",\n completedHtmlOnCondition: \"HTML финальной страницы при условии\",\n loadingHtml: \"Загрузка HTML\",\n triggers: \"триггеры\",\n cookieName: \"имя Cookie\",\n sendResultOnPageNext: \"Показать результаты опроса на странице рядом\",\n showNavigationButtons: \"Показывать кнопки навигации (навигация по умолчанию)\",\n showPrevButton: \"Показывать кнопки 'Предыдущая страница' (пользователь может вернуться на предыдущую страницу)\",\n showPageTitles: \"Показывать название страницы\",\n showCompletedPage: \"Показывать страницу с текстом по завершению заполнения (HTML финальной страницы)\",\n showPageNumbers: \"Показывать номера страниц\",\n questionErrorLocation: \"Размещение ошибки опроса\",\n showProgressBar: \"Показывать прогресс заполнения\",\n mode: \"Режим\",\n goNextPageAutomatic: \"Переходить на следующую страницу автоматически при ответе на все вопросы\",\n checkErrorsMode: \"Режим проверки ошибок\",\n clearInvisibleValues: \"Очистить невидимые значения\",\n startSurveyText: \"Текст в кнопке 'Начать'\",\n pagePrevText: \"Текст в кнопке 'Предыдущая страница'\",\n pageNextText: \"Текст в кнопке 'Следующая страница'\",\n completeText: \"Текст в кнопке 'Завершить'\",\n requiredText: \"Символ для обязательного вопроса\",\n questionStartIndex: \"Начальный индекс в опросе (1, 2 или 'A', 'а')\",\n questionTitleTemplate: \"Шаблон названия опроса, по умолчанию: {не} {требует} {текста}.\",\n firstPageIsStarted: \"Первая страница опросника является стартовой страницей.\",\n isSinglePage: \"Показывать все элементы на одной странице\",\n maxTimeToFinishPage: \"Максимальное время (секунды), чтобы заполнить страницу опросника\",\n showTimerPanel: \"Показывать панель таймера\",\n showTimerPanelMode: \"Показывать режим панели таймера\",\n defaultPanelValue: \"Значение панели по умолчанию\",\n defaultRowValue: \"Значение строки по умолчанию\",\n showNoneItem: \"Нет ни одного пункта\",\n noneText: \"Текст пункта 'Ничего'\",\n text: \"Текст\"\n }\n};\n//Uncomment this line on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"ru\"] = ruStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/simplified-chinese.ts\":\n/*!************************************************!*\\\n !*** ./src/localization/simplified-chinese.ts ***!\n \\************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar simplifiedChineseTranslation = {\n // strings for survey templates\n survey: {\n edit: \"编辑\",\n externalHelpLink: \"教学小片\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"从左侧工具箱拖个问题\",\n copy: \"复制\",\n addToToolbox: \"添加到工具箱\",\n deletePanel: \"删除面板\",\n deleteQuestion: \"删除题目\",\n convertTo: \"转变为\",\n drag: \"拖放元件\"\n },\n // strings for question types\n qt: {\n default: \"默认\",\n checkbox: \"多项选择\",\n comment: \"多行文本\",\n imagepicker: \"选图片\",\n dropdown: \"下拉框\",\n file: \"文件上传\",\n html: \"Html 代码\",\n matrix: \"矩阵 (单选题)\",\n matrixdropdown: \"矩阵 (下拉框)\",\n matrixdynamic: \"矩阵 (动态问题)\",\n multipletext: \"文本框组\",\n panel: \"面板\",\n paneldynamic: \"面板(动态)\",\n radiogroup: \"单项选择\",\n rating: \"评分\",\n text: \"单行文本\",\n boolean: \"逻辑项\",\n expression: \"表达式(只读)\",\n flowpanel: \"流面板\"\n },\n // strings for editor\n ed: {\n defaultLocale: \"默认语言 ({0})\",\n survey: \"调查问卷\",\n settings: \"问卷设置\",\n opjectPropertiesHeader: \"高级\",\n showObjectProperties: \"显示属性\",\n hideObjectProperties: \"隐藏属性\",\n editSurvey: \"修改\",\n addNewPage: \"添加新页面\",\n moveRight: \"滚动到右侧\",\n moveLeft: \"滚动到左侧\",\n deletePage: \"删除页面\",\n editPage: \"编辑页面\",\n edit: \"编辑\",\n newPageName: \"页面\",\n newQuestionName: \"问题\",\n newPanelName: \"面板\",\n newTextItemName: \"文本\",\n testSurvey: \"测试问卷\",\n testSurveyAgain: \"再次测试问卷\",\n testSurveyWidth: \"问卷宽度: \",\n embedSurvey: \"将问卷嵌入网页\",\n translation: \"转换\",\n saveSurvey: \"保存问卷\",\n designer: \"问卷设计器\",\n jsonEditor: \"JSON 编辑器\",\n undo: \"撤销\",\n redo: \"恢复\",\n options: \"选项\",\n generateValidJSON: \"生成 JSON 数据\",\n generateReadableJSON: \"生成易读的 JSON 数据\",\n toolbox: \"工具箱\",\n toolboxGeneralCategory: \"一般\",\n delSelObject: \"删除所选对象\",\n editSelObject: \"编辑所选对象\",\n correctJSON: \"请修正 JSON 数据\",\n surveyResults: \"问卷结果: \",\n surveyResultsTable: \"表格形式\",\n surveyResultsJson: \"JSON形式\",\n resultsTitle: \"问题标题\",\n resultsName: \"问题名称\",\n resultsValue: \"答案名称\",\n resultsDisplayValue: \"显示答案\",\n modified: \"已修改\",\n saving: \"保存中...\",\n saved: \"已保存\",\n saveError: \"错误,未保存\",\n translationAddLanguage: \"语言选择\",\n translationShowAllStrings: \"全部名词\",\n translationShowAllPages: \"全部页面\",\n translationNoStrings: \"未翻译,重新选\",\n translationExportToSCVButton: \"导出CSV\",\n translationImportFromSCVButton: \"导入CSV\",\n translationMergeLocaleWithDefault: \"同默认合并 {0} \",\n bold: \"加粗\",\n italic: \"斜体\",\n underline: \"下划线\",\n fpAddQuestion: \"添加问题\",\n completedHtmlOnConditionItemText: \"显示 if:\"\n },\n //Property names in table headers\n pel: {\n isRequired: \"是否为必填项?\"\n },\n // strings for property editors\n pe: {\n apply: \"应用\",\n ok: \"确定\",\n cancel: \"取消\",\n reset: \"重置\",\n close: \"关闭\",\n delete: \"删除\",\n addNew: \"新建\",\n addItem: \"添加项...\",\n addOther: \"其他\",\n addSelectAll: \"全选\",\n addNone: \"无\",\n removeAll: \"全部删除\",\n edit: \"编辑器\",\n itemValueEdit: \"Visible If\",\n editChoices: \"编辑选项\",\n move: \"移动\",\n empty: \"<空>\",\n notEmpty: \"<编辑值>\",\n fastEntry: \"快速输入\",\n formEntry: \"表单输入\",\n testService: \"测试服务\",\n conditionSelectQuestion: \"选择问题...\",\n conditionValueQuestionTitle: \"选择值\",\n conditionButtonAdd: \"添加\",\n conditionButtonReplace: \"替换\",\n conditionHelp: \"请输入一个布尔表达式。当布尔值为真,问题/页面可见。例如:{question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"请输入一项条件判断。当条件判断为真时问题/页面将可见。例如: {question1} = 'value1' or ({question2} = 3 and {question3} < 5)\",\n aceEditorHelp: \"trl+space公式补完提示\",\n aceEditorRowTitle: \"当前行\",\n aceEditorPanelTitle: \"当前面板\",\n showMore: \"更多细节请查看文档\",\n conditionShowMoreUrl: \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Available questions:\",\n cellsEmptyRowsColumns: \"至少有1行\",\n propertyIsEmpty: \"请为该属性设定一个值\",\n value: \"值\",\n text: \"显示文本\",\n rowid: \"行号\",\n imageLink: \"图片链接\",\n columnEdit: \"编辑列: {0}\",\n itemEdit: \"编辑选项: {0}\",\n url: \"URL\",\n path: \"路径\",\n valueName: \"值名\",\n titleName: \"标题名\",\n showOtherItem: \"可添加其他答案?\",\n otherText: \"其他答案文本\",\n showNoneItem: \"无\",\n noneText: \"无文本\",\n hasSelectAll: \"有全选项\",\n selectAllText: \"选择全部文本\",\n choicesMin: \"选项最小值\",\n choicesMax: \"选项最大值\",\n choicesStep: \"选项间隔\",\n name: \"题目名\",\n title: \"题目文本\",\n cellType: \"单元格类型\",\n colCount: \"列数\",\n choicesOrder: \"设置选项顺序\",\n visible: \"是否可见?\",\n isRequired: \"是否为必填项?\",\n requiredErrorText: \"错误文字\",\n startWithNewLine: \"问题是否新起一行?\",\n rows: \"文本框行数\",\n placeholder: \"占位文本\",\n showPreview: \"是否显示图像预览?\",\n storeDataAsText: \"以 JSON 文本方式存储文件\",\n maxSize: \"文件最大尺寸 (Bytes)\",\n imageHeight: \"图片高度\",\n imageWidth: \"图片宽度\",\n rowCount: \"默认行数\",\n columnLayout: \"列布局\",\n addRowLocation: \"添加行按钮位置\",\n addRowText: \"添加条目按钮文本\",\n removeRowText: \"删除条目按钮文本\",\n rateMin: \"最小评分\",\n rateMax: \"最大评分\",\n rateStep: \"评分间隔\",\n minRateDescription: \"最小值提示\",\n maxRateDescription: \"最大值提示\",\n inputType: \"文本框类型\",\n optionsCaption: \"下拉框提示语\",\n defaultValue: \"默认值\",\n cellsDefaultRow: \"Default cells texts\",\n surveyEditorTitle: \"问卷设置\",\n qEditorTitle: \"编辑问题: {0}\",\n maxLength: \"最大长度\",\n showTitle: \"显示/隐藏 标题\",\n locale: \"默认语言\",\n mode: \"模式 (编辑/只读)\",\n clearInvisibleValues: \"清除隐藏值\",\n cookieName: \"Cookie名,避免多次运行)\",\n sendResultOnPageNext: \"切换页时保存结果\",\n storeOthersAsComment: \"其他值单独储存\",\n showPageTitles: \"显示页面标题\",\n showPageNumbers: \"显示页数\",\n pagePrevText: \"前一页按钮文本\",\n pageNextText: \"后一页按钮文本\",\n completeText: \"完成按钮文本\",\n startSurveyText: \"开始按钮文本\",\n showNavigationButtons: \"显示导航按钮 (默认导航)\",\n showPrevButton: \"显示前一页按钮 (用户可返回至前一页面)\",\n firstPageIsStarted: \"调查的第一页面为起始页.\",\n showCompletedPage: \"结尾展示完成后的页面 (completedHtml)\",\n goNextPageAutomatic: \"回答本页所有问题后,自动跳转到下一页\",\n showProgressBar: \"显示进度条\",\n questionTitleLocation: \"问题的标题位置\",\n requiredText: \"问题必填标志\",\n questionStartIndex: \"问题起始标志 (1, 2 or 'A', 'a')\",\n showQuestionNumbers: \"显示问题编号\",\n questionTitleTemplate: \"问题标题模板, 默认为: '{no}. {require} {title}'\",\n questionErrorLocation: \"问题错误定位\",\n focusFirstQuestionAutomatic: \"改变页面时聚焦在第一个问题\",\n questionsOrder: \"页内问题顺序\",\n maxTimeToFinish: \"完成调查的最长时间\",\n maxTimeToFinishPage: \"完成调查中页面的最长时间\",\n showTimerPanel: \"显示计时器面板\",\n showTimerPanelMode: \"显示计时器面板模式\",\n renderMode: \"渲染模式\",\n allowAddPanel: \"允许添加面板\",\n allowRemovePanel: \"允许删除面板\",\n panelAddText: \"添加面板文本\",\n panelRemoveText: \"删除面板文本\",\n isSinglePage: \"在一个页面上展示所有元素\",\n html: \"Html\",\n expression: \"公式\",\n minValue: \"最小值\",\n maxValue: \"最大值\",\n minLength: \"最小长度\",\n allowDigits: \"允许的位数\",\n minCount: \"最小数量\",\n maxCount: \"最大数量\",\n regex: \"正则表达式\",\n totalText: \"总文本\",\n totalType: \"总类型\",\n totalExpression: \"总公式\",\n totalDisplayStyle: \"总显示风格\",\n totalCurrency: \"总currency\",\n totalFormat: \"总格式\",\n tabs: {\n general: \"一般\",\n navigation: \"导航\",\n question: \"问题\",\n completedHtml: \"完成后的Html\",\n loadingHtml: \"加载中的Html\",\n timer: \"问卷计时器\",\n trigger: \"触发器\",\n fileOptions: \"选项\",\n html: \"HTML 编辑器\",\n columns: \"设置列\",\n rows: \"设置行\",\n choices: \"设置选项\",\n visibleIf: \"设置可见条件\",\n enableIf: \"设置有效条件\",\n rateValues: \"设置评分值\",\n choicesByUrl: \"通过 URL 导入选项\",\n matrixChoices: \"默认选项\",\n multipleTextItems: \"文本输入\",\n validators: \"校验规则\"\n },\n editProperty: \"编辑属性: '{0}'\",\n items: \"[ 项目数量: {0} ]\",\n enterNewValue: \"请设定值\",\n noquestions: \"问卷中还没有创建任何问题\",\n createtrigger: \"请创建触发器\",\n triggerOn: \"当 \",\n triggerMakePagesVisible: \"使页面可见:\",\n triggerMakeQuestionsVisible: \"使问题可见:\",\n triggerCompleteText: \"如果满足条件,则完成问卷\",\n triggerNotSet: \"触发器尚未设置\",\n triggerRunIf: \"满足下列条件时执行\",\n triggerSetToName: \"修改下列问题值: \",\n triggerFromName: \"复制值: \",\n triggerRunExpression: \"运行公式:\",\n triggerSetValue: \"修改为: \",\n triggerIsVariable: \"在问卷提交结果中不要包含该变量\"\n },\n pv: {\n true: \"真\",\n false: \"假\",\n inherit: \"继承\",\n show: \"显示\",\n hide: \"隐藏\",\n default: \"默认\",\n initial: \"初始化\",\n random: \"随机\",\n collapsed: \"折叠\",\n expanded: \"扩展\",\n none: \"无\",\n asc: \"升序\",\n desc: \"降序\",\n indeterminate: \"indeterminate\",\n decimal: \"数字\",\n currency: \"货币\",\n percent: \"百分数\",\n firstExpanded: \"firstExpanded\",\n off: \"关闭\",\n onPanel: \"面板上\",\n onSurvey: \"问卷上\",\n list: \"列表\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"水平\",\n vertical: \"垂直\",\n top: \"顶\",\n bottom: \"底\",\n topBottom: \"顶和底\",\n left: \"左\",\n color: \"颜色\",\n date: \"日期\",\n datetime: \"时间\",\n \"datetime-local\": \"时间格式\",\n email: \"email\",\n month: \"月\",\n number: \"数字\",\n password: \"密码\",\n range: \"范围\",\n tel: \"电话\",\n text: \"text\",\n time: \"时间\",\n url: \"url\",\n week: \"周\",\n hidden: \"隐藏\",\n on: \"开\",\n onPage: \"页面上\",\n edit: \"编辑\",\n display: \"仅显示\",\n onComplete: \"完成时\",\n onHidden: \"隐藏中\",\n all: \"全部\",\n page: \"页\",\n survey: \"问卷\",\n onNextPage: \"下一页时\",\n onValueChanged: \"值变动时\"\n },\n // strings for operators\n op: {\n empty: \"为空\",\n notempty: \"不为空\",\n equal: \"等于\",\n notequal: \"不等于\",\n contains: \"包含\",\n notcontains: \"不包含\",\n anyof: \"任意\",\n allof: \"全部\",\n greater: \"大于\",\n less: \"小于\",\n greaterorequal: \"大于等于\",\n lessorequal: \"小于等于\"\n },\n // strings for embed window\n ew: {\n angular: \"使用 Angular 时\",\n jquery: \"使用 JQuery 时\",\n knockout: \"使用 Knockout 时\",\n react: \"使用 React 时\",\n vue: \"使用 Vue 时\",\n bootstrap: \"使用 Bootstrap 时\",\n standard: \"不使用 Bootstrap 时\",\n showOnPage: \"嵌入页面显示\",\n showInWindow: \"使用单独的问卷窗口\",\n loadFromServer: \"从服务器加载问卷 JSON 数据\",\n titleScript: \"脚本和样式\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n ts: {\n selectPage: \"选择测试页\",\n showInvisibleElements: \"显示隐藏元件\"\n },\n validators: {\n answercountvalidator: \"数量检查\",\n emailvalidator: \"Email\",\n expressionvalidator: \"公式\",\n numericvalidator: \"数字\",\n regexvalidator: \"正则表达式\",\n textvalidator: \"文本\"\n },\n triggers: {\n completetrigger: \"完成问卷\",\n setvaluetrigger: \"设置问题值\",\n copyvaluetrigger: \"复制值\",\n runexpressiontrigger: \"运行公式\",\n visibletrigger: \"修改可见性\"\n },\n // strings of properties\n p: {\n name: \"名字\",\n title: {\n name: \"标题\",\n title: \"如果与名字相同,请设置为空值\"\n },\n navigationButtonsVisibility: \"导航按钮可见\",\n questionsOrder: \"页面中元素的顺序\",\n maxTimeToFinish: \"完成调查的最长时间\",\n visible: \"可见\",\n visibleIf: \"条件可见\",\n questionTitleLocation: \"问题的标题位置\",\n description: \"说明\",\n state: \"状态\",\n isRequired: \"必选\",\n requiredIf: \"是否必选\",\n indent: \"缩进\",\n requiredErrorText: \"必填错误\",\n startWithNewLine: \"允许问题在新行\",\n innerIndent: \"缩进\",\n page: \"所在页面\",\n width: \"宽度\",\n commentText: \"备注文本\",\n valueName: \"值名\",\n enableIf: \"设置有效条件\",\n defaultValue: \"默认值\",\n correctAnswer: \"正确答案\",\n readOnly: \"只读\",\n validators: \"有效性\",\n titleLocation: \"标题位置\",\n hasComment: \"有备注\",\n showOtherItem: \"允许其他答案\",\n choices: \"选项\",\n choicesOrder: \"选项排序\",\n choicesByUrl: \"Url选项\",\n otherText: \"其他答案文本\",\n otherErrorText: \"其他错误\",\n storeOthersAsComment: \"其他值单独储存\",\n label: \"标签\",\n showTitle: \"显示/隐藏 标题\",\n valueTrue: \"选是的值\",\n valueFalse: \"不选的值\",\n cols: \"列\",\n rows: \"行\",\n placeholder: \"占位\",\n optionsCaption: \"optionsCaption\",\n expression: \"公式\",\n format: \"格式\",\n displayStyle: \"显示风格\",\n currency: \"货币\",\n useGrouping: \"useGrouping\",\n showPreview: \"预览\",\n allowMultiple: \"允许多选\",\n imageHeight: \"图高\",\n imageWidth: \"图宽\",\n storeDataAsText: \"文本方式存储文件\",\n maxSize: \"最大号\",\n html: \"html\",\n columns: \"columns\",\n cells: \"单元\",\n isAllRowRequired: \"所有行必填\",\n horizontalScroll: \"滚动\",\n cellType: \"单元格类型\",\n columnsLayout: \"列布局\",\n columnColCount: \"列数\",\n columnMinWidth: \"列最小宽度\",\n rowCount: \"行数\",\n minRowCount: \"最小行数\",\n maxRowCount: \"最大行数\",\n keyName: \"键值名\",\n keyDuplicationError: \"键值重复\",\n confirmDelete: \"确认删除\",\n confirmDeleteText: \"确认删除文本\",\n addRowLocation: \"添加行位置\",\n addRowText: \"添加行文本\",\n removeRowText: \"删除文本\",\n items: \"items\",\n itemSize: \"itemSize\",\n colCount: \"列数\",\n templateTitle: \"模板标题\",\n templateDescription: \"模板描述\",\n allowAddPanel: \"允许添加面板\",\n allowRemovePanel: \"允许删除面板\",\n panelCount: \"面板数\",\n minPanelCount: \"最小面板数\",\n maxPanelCount: \"最大面板数\",\n panelsState: \"panelsState\",\n panelAddText: \"添加面板文本\",\n panelRemoveText: \"删除面板文本\",\n panelPrevText: \"前一项文字\",\n panelNextText: \"下一项文字\",\n showQuestionNumbers: \"显示问题编号\",\n showRangeInProgress: \"showRangeInProgress\",\n renderMode: \"渲染模式\",\n templateTitleLocation: \"模板标题位置\",\n rateValues: \"打分值\",\n rateMin: \"最小分\",\n rateMax: \"最大分\",\n rateStep: \"分值间距\",\n minRateDescription: \"最小分描述\",\n maxRateDescription: \"最大分描述\",\n inputType: \"inputType\",\n size: \"size\",\n locale: \"默认语言\",\n focusFirstQuestionAutomatic: \"改变页面时聚焦在第一个问题\",\n completedHtml: \"完成后的Html\",\n completedBeforeHtml: \"completedBeforeHtml\",\n loadingHtml: \"加载页面\",\n triggers: \"触发器\",\n cookieName: \"Cookie名,避免多次运行)\",\n sendResultOnPageNext: \"切换页时保存结果\",\n showNavigationButtons: \"显示导航按钮 (默认导航)\",\n showPrevButton: \"显示前一页按钮 (用户可返回至前一页面)\",\n showPageTitles: \"显示页面标题\",\n showCompletedPage: \"结尾展示完成后的页面 (completedHtml)\",\n showPageNumbers: \"显示页数\",\n questionErrorLocation: \"问题错误定位\",\n showProgressBar: \"显示进度条\",\n mode: \"模式 (编辑/只读)\",\n goNextPageAutomatic: \"回答本页所有问题后,自动跳转到下一页\",\n checkErrorsMode: \"查错模式\",\n clearInvisibleValues: \"清除隐藏值\",\n startSurveyText: \"开始按钮文本\",\n pagePrevText: \"前一页按钮文本\",\n pageNextText: \"后一页按钮文本\",\n completeText: \"完成按钮文本\",\n requiredText: \"问题必填标志\",\n questionStartIndex: \"问题起始标志 (1, 2 or 'A', 'a')\",\n questionTitleTemplate: \"问题标题模板, 默认为: '{no}. {require} {title}'\",\n firstPageIsStarted: \"调查的第一页面为起始页.\",\n isSinglePage: \"在一个页面上展示所有元素\",\n maxTimeToFinishPage: \"完成调查中页面的最长时间\",\n showTimerPanel: \"显示计时器面板\",\n showTimerPanelMode: \"显示计时器面板模式\",\n defaultPanelValue: \"默认面板值\",\n defaultRowValue: \"默认行值\",\n showNoneItem: \"都不选项\",\n noneText: \"无文本\",\n text: \"文本\",\n defaultVaule: \"默认选项\",\n \"survey_title\": {\n name: \"标题\",\n title: \"问卷标题在每页上都会显示\"\n },\n \"page_title\": {\n name: \"标题\",\n title: \"页面标题\"\n }\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"zh-cn\"] = simplifiedChineseTranslation;\n\n\n/***/ }),\n\n/***/ \"./src/localization/slovak.ts\":\n/*!************************************!*\\\n !*** ./src/localization/slovak.ts ***!\n \\************************************/\n/*! exports provided: skStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skStrings\", function() { return skStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar skStrings = {\n survey: {\n edit: \"Upraviť\",\n externalHelpLink: \"Sledovať a zistiť, ako vytvárať prieskumy\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Sem zadajte otázku zo súpravy nástrojov.\",\n addLogicItem: \"Vytvoriť pravidlo prispôsobenia priebehu prieskumu.\",\n copy: \"Kopírovať\",\n duplicate: \"Duplikovať\",\n addToToolbox: \"Pridať do súpravy nástrojov\",\n deletePanel: \"Odstrániť panel\",\n deleteQuestion: \"Odstrániť otázku\",\n convertTo: \"Konvertovať na\",\n drag: \"Presunúť prvok\"\n },\n qt: {\n default: \"Predvolené\",\n checkbox: \"Začiarkavacie políčko\",\n comment: \"Komentár\",\n imagepicker: \"Nástroj na výber obrázkov\",\n ranking: \"Hodnotenie\",\n image: \"Obrázok\",\n dropdown: \"Rozbaľovací zoznam\",\n file: \"Súbor\",\n html: \"Html\",\n matrix: \"Matica (jedna možnosť)\",\n matrixdropdown: \"Matica (viacero možností)\",\n matrixdynamic: \"Matica (dynamické riadky)\",\n multipletext: \"Text pri viacerých možnostiach\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dynamické panely)\",\n radiogroup: \"Skupina tlačidiel\",\n rating: \"Hodnotenie\",\n text: \"Jeden vstup\",\n boolean: \"Boolean\",\n expression: \"Výraz (iba na čítanie)\",\n signaturepad: \"Priestor na podpis\",\n flowpanel: \"Panel priebehu\"\n },\n ed: {\n defaultLocale: \"Predvolené ({0})\",\n survey: \"Prieskum\",\n settings: \"Nastavenia prieskumu\",\n settingsTooltip: \"Otvoriť nastavenia prieskumu\",\n showPanel: \"Zobraziť panel\",\n hidePanel: \"Skryť panel\",\n addNewPage: \"Pridať novú stranu\",\n moveRight: \"Prejsť vpravo\",\n moveLeft: \"Prejsť vľavo\",\n deletePage: \"Odstrániť stranu\",\n editPage: \"Upraviť stranu\",\n edit: \"Upraviť\",\n newPageName: \"stránka\",\n newQuestionName: \"otázka\",\n newPanelName: \"panel\",\n newTextItemName: \"text\",\n testSurvey: \"Textový prieskum\",\n testSurveyAgain: \"Ďalší textový prieskum\",\n testSurveyWidth: \"Šírka prieskumu: \",\n navigateToMsg: \"Museli ste prejsť na:\",\n logic: \"Logika prieskumu\",\n embedSurvey: \"Začleniť prieskum\",\n translation: \"Preklad\",\n saveSurvey: \"Uložiť prieskum\",\n saveSurveyTooltip: \"Uložiť prieskum\",\n designer: \"Návrhár prieskumov\",\n jsonEditor: \"Editor JSON\",\n undo: \"Späť\",\n redo: \"Opakovať\",\n undoTooltip: \"Zrušiť poslednú zmenu\",\n redoTooltip: \"Opakovať zmenu\",\n copy: \"Kopírovať\",\n cut: \"Vystrihnúť\",\n paste: \"Prilepiť\",\n copyTooltip: \"Kopírovať výber do schránky\",\n cutTooltip: \"Vystrihnúť výber do schránky\",\n pasteTooltip: \"Prilepiť zo schránky\",\n options: \"Možnosti\",\n generateValidJSON: \"Vygenerovať platný JSON\",\n generateReadableJSON: \"Vygenerovať načítateľný JSON\",\n toolbox: \"Súprava nástrojov\",\n \"property-grid\": \"Vlastnosti\",\n toolboxGeneralCategory: \"Všeobecné\",\n correctJSON: \"Opravte JSON.\",\n surveyResults: \"Výsledok prieskumu: \",\n surveyResultsTable: \"Ako tabuľku\",\n surveyResultsJson: \"Ako JSON\",\n resultsTitle: \"Titul otázky\",\n resultsName: \"Názov otázky\",\n resultsValue: \"Hodnota odpovede\",\n resultsDisplayValue: \"Zobraziť hodnotu\",\n modified: \"Upravené\",\n saving: \"Ukladanie\",\n saved: \"Uložené\",\n propertyEditorError: \"Chyba:\",\n saveError: \"Chyba! Obsah editora sa neuložil.\",\n translationAddLanguage: \"Výber jazyka na preklad\",\n translationShowAllStrings: \"Zobraziť všetky reťazce\",\n translationShowAllPages: \"Zobraziť všetky stránky\",\n translationNoStrings: \"Žiadne reťazce na preklad. Zmeňte filter.\",\n translationExportToSCVButton: \"Exportovať do CSV\",\n translationImportFromSCVButton: \"Importovať z CSV\",\n translationMergeLocaleWithDefault: \"Zlúčiť {0} s predvoleným miestnym nastavením\",\n bold: \"Tučné\",\n italic: \"Kurzíva\",\n underline: \"Podčiarknutie\",\n fpAddQuestion: \"Pridať otázku...\",\n selectPage: \"Vybrať stránku...\",\n chooseElement: \"Vybrať prvok...\",\n lg: {\n addNewItem: \"\",\n page_visibilityName: \"Viditeľnosť strany\",\n panel_visibilityName: \"Viditeľnosť panela\",\n panel_enableName: \"Panel povoliť/zakázať\",\n question_visibilityName: \"Viditeľnosť otázky\",\n question_enableName: \"Otázku povoliť/zakázať\",\n question_requireName: \"Vyžaduje sa voliteľná otázka\",\n trigger_completeName: \"Dokončiť prieskum\",\n trigger_setvalueName: \"Nastaviť hodnotu otázky\",\n trigger_copyvalueName: \"Kopírovať hodnotu otázky\",\n trigger_skipName: \"Prejsť na otázku\",\n trigger_runExpressionName: \"Spustiť vlastný výraz\",\n completedHtmlOnConditionName: \"Vlastný text stránky s poďakovaním\",\n page_visibilityDescription: \"Stránka bude viditeľná, keď logický výraz vráti hodnotu true. V opačnom prípade sa nebude zobrazovať.\",\n panel_visibilityDescription: \"Panel bude viditeľný, keď logický výraz vráti hodnotu true. V opačnom prípade sa nebude zobrazovať.\",\n panel_enableDescription: \"Panel a všetky jeho prvky sa povolia, keď logický výraz vráti hodnotu true. V opačnom prípade budú zakázané.\",\n question_visibilityDescription: \"Otázka bude viditeľná, keď logický výraz vráti hodnotu true. V opačnom prípade sa nebude zobrazovať.\",\n question_enableDescription: \"Otázka sa povolí, keď logický výraz vráti hodnotu true. V opačnom prípade zostane zakázaná.\",\n question_requireDescription: \"Otázka bude povinná, keď logický výraz vráti hodnotu true.\",\n trigger_completeDescription: \"Keď logický výraz vráti hodnotu true, prieskum bude dokončený a používateľovi sa zobrazí stránka s poďakovaním.\",\n trigger_setvalueDescription: \"V prípade, že sa zmenia hodnoty, ktoré sa používajú v rámci logického výrazu, a logický výraz vráti hodnotu true, pre vybratú otázku sa nastaví daná hodnota.\",\n trigger_copyvalueDescription: \"V prípade, že sa zmenia hodnoty otázok, ktoré sa používajú v rámci logického výrazu, a logický výraz vráti hodnotu true, hodnota jednej vybratej otázky sa skopíruje na ďalšiu vybratú otázku.\",\n trigger_skipDescription: \"Keď logický výraz vráti hodnotu true, prieskum prejde/nastaví sa na vybratú otázku.\",\n trigger_runExpressionDescription: \"Keď logický výraz vráti hodnotu true, vykoná sa vlastný výraz. Voliteľne môžete nastaviť tento výraz na vybratú otázku.\",\n completedHtmlOnConditionDescription: \"Keď logický výraz vráti hodnotu true, predvolený text na stránke s poďakovaním sa zmení na zadaný text.\",\n itemExpressionText: \"Keď výraz: „{0}“ vráti hodnotu true:\",\n page_visibilityText: \"Stránka {0} bude viditeľná\",\n panel_visibilityText: \"Panel {0} bude viditeľný\",\n panel_enableText: \"Panel {0} bude povolený\",\n question_visibilityText: \"Otázka {0} bude viditeľná\",\n question_enableText: \"Otázka {0} bude povolená\",\n question_requireText: \"Otázka {0} sa bude vyžadovať\",\n trigger_completeText: \"Prieskum bude dokončený\",\n trigger_setvalueText: \"Nastaviť v otázke: {0} hodnotu {1}\",\n trigger_copyvalueText: \"Kopírovať do otázky: {0} hodnotu z otázky {1}\",\n trigger_skipText: \"V prieskume prejsť na otázku {0}\",\n trigger_runExpressionText1: \"Spustiť výraz: „{0}“\",\n trigger_runExpressionText2: \" a nastaviť výsledok v otázke: {0}\",\n completedHtmlOnConditionText: \"Zobraziť vlastný text pre stránku s poďakovaním.\",\n conditions: \"Podmienka(-y)\",\n actions: \"Akcia(-e)\",\n expressionEditorTitle: \"Definovať podmienku(-y)\",\n actionsEditorTitle: \"Definovať akciu(-e)\",\n deleteAction: \"Odstrániť akciu\",\n addNewAction: \"Pridať novú akciu\",\n selectedActionCaption: \"Vybrať akciu na pridanie...\",\n expressionInvalid: \"Logický výraz je prázdny alebo neplatný. Opravte ho.\",\n noActionError: \"Pridajte aspoň jednu akciu.\",\n actionInvalid: \"Odstráňte problémy v akcii(-ách).\",\n expressionSetup: \"\",\n actionsSetup: \"\"\n }\n },\n pe: {\n apply: \"Použiť\",\n ok: \"OK\",\n save: \"Uložiť\",\n saveTooltip: \"Uložiť\",\n cancel: \"Zrušiť\",\n reset: \"Obnovenie pôvodného nastavenia\",\n refresh: \"Obnoviť\",\n delete: \"Vymazať\",\n add: \"Pridať\",\n addNew: \"Pridať nové\",\n addItem: \"Kliknutím pridať položku...\",\n addOther: \"Iné\",\n addSelectAll: \"Vybrať všetky\",\n addNone: \"Žiadne\",\n removeAll: \"Odstrániť všetko\",\n edit: \"Upraviť\",\n view: \"Zobraziť\",\n back: \"Návrat bez uloženia\",\n backTooltip: \"Návrat bez uloženia\",\n saveAndBack: \"Uložiť a vrátiť sa\",\n saveAndBackTooltip: \"Uložiť a vrátiť sa\",\n editChoices: \"Upraviť možnosti\",\n showChoices: \"Zobraziť možnosti\",\n move: \"Presunúť\",\n empty: \"\",\n fastEntry: \"Rýchle zadanie\",\n formEntry: \"Zadanie formulára\",\n testService: \"Test služby\",\n itemSelectorEmpty: \"Vyberte prvok\",\n conditionActionEmpty: \"Vyberte akciu\",\n conditionSelectQuestion: \"Vybrať otázku...\",\n conditionSelectPage: \"Vybrať stránku...\",\n conditionSelectPanel: \"Vybrať panel...\",\n conditionValueQuestionTitle: \"Zadajte/vyberte hodnotu\",\n expressionHelp: \"Pomocou zložených zátvoriek môžete získať prístup k hodnotám otázok: {question1} + {question2}, ({price}*{quantity}) * (100 - {discount}). Môžete používať funkcie ako: iif(), today(), age(), min(), max(), count(), avg() a iné.\",\n aceEditorHelp: \"Klávesovou skratkou ctrl+space získate tip na dokončenie výrazu\",\n aceEditorRowTitle: \"Aktuálny riadok\",\n aceEditorPanelTitle: \"Aktuálny panel\",\n showMore: \"Ďalšie podrobnosti nájdete v dokumentácii\",\n assistantTitle: \"Dostupné otázky:\",\n cellsEmptyRowsColumns: \"K dispozícii má byť aspoň jeden stĺpec alebo riadok\",\n propertyIsEmpty: \"Zadajte hodnotu\",\n propertyIsNoUnique: \"Zadajte jedinečnú hodnotu\",\n propertyNameIsNotUnique: \"Zadajte jedinečný názov\",\n listIsEmpty: \"Pridajte novú položku\",\n expressionIsEmpty: \"Výraz je prázdny\",\n value: \"Hodnota\",\n text: \"Text\",\n rowid: \"ID riadka\",\n imageLink: \"Odkaz na obrázok\",\n columnEdit: \"Upraviť stĺpec: {0}\",\n itemEdit: \"Upraviť položku: {0}\",\n itemView: \"Zobraziť položku: {0}\",\n url: \"URL\",\n path: \"Cesta\",\n valueName: \"Názov hodnoty\",\n titleName: \"Titulný názov\",\n allowEmptyResponse: \"Povoliť prázdnu odozvu\",\n titlePlaceholder: \"Sem zadajte titul\",\n surveyTitlePlaceholder: \"Sem vložte titul prieskumu\",\n pageTitlePlaceholder: \"Sem zadajte titul stránky\",\n descriptionPlaceholder: \"Zadať opis\",\n surveyDescriptionPlaceholder: \"Zadať opis prieskumu\",\n pageDescriptionPlaceholder: \"Zadať opis stránky\",\n showOtherItem: \"Obsahuje inú položku\",\n otherText: \"Text inej položky\",\n showNoneItem: \"Neobsahuje žiadnu položku\",\n noneText: \"Text pri žiadnej položke\",\n hasSelectAll: \"Obsahuje vybraté všetky položky\",\n selectAllText: \"Text pri výbere všetkých položiek\",\n choicesMin: \"Minimálna hodnota pre automaticky vygenerované položky\",\n choicesMax: \"Maximálna hodnota pre automaticky vygenerované položky\",\n choicesStep: \"Rozdiel medzi automaticky vygenerovanými položkami\",\n name: \"Názov\",\n title: \"Titul\",\n cellType: \"Typ bunky\",\n colCount: \"Počet stĺpcov\",\n choicesOrder: \"Poradie vybratých možností\",\n visible: \"Je viditeľné?\",\n isRequired: \"Vyžaduje sa?\",\n isAllRowRequired: \"Vyžadovať odpoveď pre všetky riadky\",\n requiredErrorText: \"Text chyby pri povinných položkách\",\n startWithNewLine: \"Začína sa novým riadkom?\",\n rows: \"Počet riadkov\",\n cols: \"Počet stĺpcov\",\n placeholder: \"Vložiť zástupný symbol\",\n showPreview: \"Zobraziť oblasť náhľadu\",\n storeDataAsText: \"Uložiť obsahu súboru vo výsledku JSON ako text\",\n maxSize: \"Maximálna veľkosť súboru v bajtoch\",\n imageHeight: \"Výška obrázka\",\n imageWidth: \"Šírka obrázka\",\n rowCount: \"Počet riadkov\",\n columnLayout: \"Rozloženie stĺpcov\",\n addRowLocation: \"Poloha tlačidla na pridanie riadka\",\n addRowText: \"Text tlačidla na pridanie riadka\",\n removeRowText: \"Text tlačidla na odstránenie riadka\",\n rateMin: \"Minimálne hodnotenie\",\n rateMax: \"Maximálne hodnotenie\",\n rateStep: \"Krok hodnotenia\",\n minRateDescription: \"Opis minimálneho hodnotenia\",\n maxRateDescription: \"opis maximálneho hodnotenia\",\n inputType: \"Typ vstupu\",\n optionsCaption: \"Titulok možností\",\n showOptionsCaption: \"Zobraziť titulok možností\",\n defaultValue: \"Predvolená hodnota\",\n cellsDefaultRow: \"Predvolené texty buniek\",\n surveyEditorTitle: \"Upraviť nastavenia prieskumu\",\n qEditorTitle: \"Upraviť: {0}\",\n maxLength: \"Maximálna dĺžka\",\n buildExpression: \"Zostaviť\",\n editExpression: \"Upraviť\",\n and: \"A\",\n or: \"Alebo\",\n remove: \"Odstrániť\",\n addCondition: \"Pridať podmienku\",\n showTitle: \"Zobraziť/skryť titul\",\n expandCollapseTitle: \"Rozbaliť/zbaliť titul\",\n locale: \"Predvolený jazyk\",\n simulator: \"Vybrať zariadenie\",\n landscapeOrientation: \"Na šírku\",\n mode: \"Režim (upraviť/iba na čítanie)\",\n clearInvisibleValues: \"Odstrániť neviditeľné hodnoty\",\n cookieName: \"Názov súboru cookie (na zabránenie lokálneho spustenia prieskumu dvakrát)\",\n sendResultOnPageNext: \"Odoslať výsledky prieskumu na ďalšiu stránku\",\n storeOthersAsComment: \"Uložiť hodnotu „iné“ v samostatnom poli\",\n showPageTitles: \"Zobraziť tituly stránok\",\n showPageNumbers: \"Zobraziť čísla stránok\",\n pagePrevText: \"Text tlačidla pre predchádzajúcu stránku\",\n pageNextText: \"Text tlačidla pre ďalšiu stránku\",\n completeText: \"Text tlačidla dokončenia\",\n previewText: \"Text tlačidla ukážky\",\n editText: \"Text tlačidla úpravy\",\n startSurveyText: \"Text tlačidla spustenia\",\n showNavigationButtons: \"Zobraziť navigačné tlačidlá (predvolená navigácia)\",\n showPrevButton: \"Zobraziť tlačidlo predchádzajúce (používateľ sa môže vráiť na predchádzajúcu stránku)\",\n firstPageIsStarted: \"Prvá stránka v prieskume je úvodná stránka.\",\n showCompletedPage: \"Na konci zobraziť stránku s dokončením (completedHtml)\",\n goNextPageAutomatic: \"Po zodpovedaní všetkých otázok prejsť na ďalšiu stránku automaticky\",\n showProgressBar: \"Zobraziť indikátor priebehu\",\n questionTitleLocation: \"Poloha titulu otázky\",\n requiredText: \"Povinný symbol(-y) otázok\",\n questionStartIndex: \"Otázka sa začína indexom (1, 2 alebo „A“, „a“)\",\n showQuestionNumbers: \"Zobraziť čísla otázok\",\n questionTitleTemplate: \"Šablóna titulu otázky, predvolená je: „{no}. {require} {title}“\",\n questionErrorLocation: \"Poloha chyby otázky\",\n focusFirstQuestionAutomatic: \"Prechod na prvú otázku pri zmene stránky\",\n questionsOrder: \"Poradie prvkov na stránke\",\n maxTimeToFinish: \"Maximálny čas na dokončenie prieskumu\",\n maxTimeToFinishPage: \"Maximálny čas na dokončenie stránky v rámci prieskumu\",\n showTimerPanel: \"Zobraziť panel s časovačom\",\n showTimerPanelMode: \"Zobraziť režim panela s časovačom\",\n renderMode: \"Režim vykresľovania\",\n allowAddPanel: \"Povoliť pridanie panela\",\n allowRemovePanel: \"Povoliť odstránenie panela\",\n panelAddText: \"Text pri pridaní panela\",\n panelRemoveText: \"Text pri odstránení panela\",\n isSinglePage: \"Zobraziť všetky prvky na jednej stránke\",\n html: \"Html\",\n expression: \"Výraz\",\n minValue: \"Minimálna hodnota\",\n maxValue: \"Maximálna hodnota\",\n minLength: \"Minimálna dĺžka\",\n allowDigits: \"Povoliť čísla\",\n minCount: \"Minimálny počet\",\n maxCount: \"Maximálny počet\",\n regex: \"Regulárny výraz\",\n totalText: \"Celkom – text\",\n totalType: \"Celkom – typ\",\n totalExpression: \"Celkom – výraz\",\n totalDisplayStyle: \"Celkom – štýl zobrazenia\",\n totalCurrency: \"Celkom – mena\",\n totalFormat: \"Celkom – formát\",\n logoPosition: \"Poloha loga\",\n addLogo: \"Pridať logo...\",\n changeLogo: \"Zmeniť logo...\",\n logoPositions: {\n none: \"Odstrániť logo\",\n left: \"Vľavo\",\n right: \"Vpravo\",\n top: \"V hornej časti\",\n bottom: \"V spodnej časti\"\n },\n tabs: {\n general: \"Všeobecné\",\n fileOptions: \"Možnosti\",\n html: \"Editor Html\",\n columns: \"Stĺpce\",\n rows: \"Riadky\",\n choices: \"Možnosti\",\n items: \"Položky\",\n visibleIf: \"Viditeľné ak\",\n enableIf: \"Povoliť ak\",\n requiredIf: \"Povinné ak\",\n rateValues: \"Hodnoty hodnotenia\",\n choicesByUrl: \"Možnosti z webu\",\n matrixChoices: \"Predvolené možnosti\",\n multipleTextItems: \"Zadania textu\",\n numbering: \"Číslovanie\",\n validators: \"Overovatelia\",\n navigation: \"Navigácia\",\n question: \"Otázka\",\n pages: \"Stránky\",\n completedHtml: \"Dokončené Html\",\n completedHtmlOnCondition: \"Dokončené Html za podmienky\",\n loadingHtml: \"Načítanie Html\",\n timer: \"Časovač/kvíz\",\n calculatedValues: \"Vypočítané hodnoty\",\n triggers: \"Aktivátory\",\n templateTitle: \"Titul šablóny\",\n totals: \"Celkové hodnoty\",\n logic: \"Logický výraz\",\n layout: \"Rozloženie\",\n data: \"Údaje\",\n validation: \"Overenie\",\n cells: \"Bunky\",\n showOnCompleted: \"Zobraziť pri dokončení\",\n logo: \"Logo v titule prieskumu\",\n slider: \"Jazdec\",\n others: \"Iné\"\n },\n editProperty: \"Upraviť vlastnosť „{0}“\",\n items: \"[ Položky: {0} ]\",\n enterNewValue: \"Zadajte hodnotu.\",\n noquestions: \"V prieskume nie je žiadna otázka.\",\n createtrigger: \"Vytvorte aktivátor\",\n titleKeyboardAdornerTip: \"Upraviť stlačením tlačidla Enter\",\n keyboardAdornerTip: \"Stlačením tlačidla Enter položku upravíte, stlačením tlačidla Odstrániť položku odstránite, stlačením tlačidla Alt a šípky nahor alebo šípky nadol položku presuniete\",\n keyboardMoveItemsTip: \"Položku presuňte stlačením tlačidla Alt a šípky nahor alebo nadol\",\n triggerOn: \"Zap. \",\n triggerMakePagesVisible: \"Viditeľnosť stránok:\",\n triggerMakeQuestionsVisible: \"Viditeľnosť prvkov:\",\n triggerCompleteText: \"V prípade úspechu prieskum dokočniť.\",\n triggerNotSet: \"Aktivátor nie je nastavený\",\n triggerRunIf: \"Spustiť ak\",\n triggerSetToName: \"Zmeniť hodnotu: \",\n triggerFromName: \"Kopírovať hodnotu z: \",\n triggerRunExpression: \"Spustiť tento výraz:\",\n triggerSetValue: \"na: \",\n triggerGotoName: \"Prejsť na otázku:\",\n triggerIsVariable: \"Nezaraďujte premennú do výsledku prieskumu.\",\n triggerRunExpressionEmpty: \"Zadajte platný výraz\",\n noFile: \"Nevybratý žiadny súbor\"\n },\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"prevziať\",\n show: \"zobraziť\",\n hide: \"skryť\",\n default: \"predvolené\",\n initial: \"počiatočné\",\n random: \"náhodné\",\n collapsed: \"zbalené\",\n expanded: \"rozbalené\",\n none: \"žiadne\",\n asc: \"vzostupne\",\n desc: \"zostupne\",\n indeterminate: \"nestanovené\",\n decimal: \"desatinné\",\n currency: \"mena\",\n percent: \"percentá\",\n firstExpanded: \"prvý rozbalený\",\n off: \"vyp.\",\n onPanel: \"na paneli\",\n onSurvey: \"v prieskume\",\n list: \"zoznam\",\n progressTop: \"horná časť priebehu\",\n progressBottom: \"spodná časť priebehu\",\n progressTopBottom: \"priebeh –​ horná a spodná časť\",\n horizontal: \"vodorovné\",\n vertical: \"zvislé\",\n top: \"hore\",\n bottom: \"dolu\",\n topBottom: \"hore a dolu\",\n both: \"obidva\",\n left: \"vľavo\",\n color: \"farba\",\n date: \"dátum\",\n datetime: \"dátum a čas\",\n \"datetime-local\": \"miestny dátum a čas\",\n email: \"e-mail\",\n month: \"mesiac\",\n number: \"číslo\",\n password: \"heslo\",\n range: \"rozsah\",\n tel: \"tel\",\n text: \"text\",\n time: \"čas\",\n url: \"url\",\n week: \"týždeň\",\n hidden: \"skryté\",\n on: \"na\",\n onPage: \"na stránke\",\n edit: \"upraviť\",\n display: \"zobraziť\",\n onComplete: \"pri dokončení\",\n onHidden: \"pri skrytí\",\n all: \"všetko\",\n page: \"stránka\",\n survey: \"prieskum\",\n onNextPage: \"na ďalšej stránke\",\n onValueChanged: \"pri zmene hodnoty\",\n singlePage: \"jedna stránka\",\n standard: \"štandard\",\n questionPerPage: \"otázka na stránku\",\n noPreview: \"žiadna ukážka\",\n showAllQuestions: \"zobraziť ukážku so všetkými otázkami\",\n showAnsweredQuestions: \"zobraziť ukážku so zodpovedanými otázkami\",\n pages: \"stránky\",\n questions: \"otázky\",\n requiredQuestions: \"povinné otázky\",\n correctQuestions: \"správne otázky\",\n buttons: \"tlačidlá\",\n underInput: \"v rámci vstupu\",\n underTitle: \"v rámci titulu\"\n },\n op: {\n empty: \"je prázdne\",\n notempty: \"nie je prázdne\",\n equal: \"rovná sa\",\n notequal: \"nerovná sa\",\n contains: \"obsahuje\",\n notcontains: \"neobsahuje\",\n anyof: \"ktorákoľvek\",\n allof: \"všetky\",\n greater: \"väčšie\",\n less: \"menšie\",\n greaterorequal: \"väčšie alebo rovné\",\n lessorequal: \"menšie alebo rovné\",\n and: \"a\",\n or: \"aleb\"\n },\n ew: {\n angular: \"Použiť verziu Angular\",\n jquery: \"Použiť verziu jQuery\",\n knockout: \"Použiť verziu Knockout\",\n react: \"Použiť verziu React\",\n vue: \"Použiť verziu Vue\",\n bootstrap: \"Pre rámec bootstrap\",\n modern: \"Moderný motív\",\n default: \"Predvolený motív\",\n orange: \"Oranžový motív\",\n darkblue: \"Tmavomodrý motív\",\n darkrose: \"Motív Darkrose\",\n stone: \"Motív Stone\",\n winter: \"Motív Winter\",\n winterstone: \"Motív Winter-Stone\",\n showOnPage: \"Zobraziť prieskum na stránke\",\n showInWindow: \"Zobraziť prieskum v okne\",\n loadFromServer: \"Načítať JSON prieskumu zo servera\",\n titleScript: \"Skripty a štýly\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n ts: {\n selectPage: \"Vybrať stránku na testovanie:\",\n showInvisibleElements: \"Zobraziť neviditeľné prvky\"\n },\n validators: {\n answercountvalidator: \"počet odpovedí\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"výraz\",\n numericvalidator: \"číslo\",\n regexvalidator: \"regex\",\n textvalidator: \"text\"\n },\n triggers: {\n completetrigger: \"dokončiť prieskum\",\n setvaluetrigger: \"nastaviť hodnotu\",\n copyvaluetrigger: \"kopírovať hodnotu\",\n skiptrigger: \"prejsť na otázku\",\n runexpressiontrigger: \"spustiť výraz\",\n visibletrigger: \"zmeniť viditeľnosť (zastarané)\"\n },\n p: {\n name: \"názov\",\n title: {\n name: \"titul\",\n title: \"Nechajte prázdne, ak sa zhoduje s menom\"\n },\n navigationButtonsVisibility: \"Viditeľnosť navigačných tlačidiel\",\n questionsOrder: \"Poradie otázok\",\n maxTimeToFinish: \"Max. čas na dokončenie\",\n visible: \"viditeľné\",\n visibleIf: \"Viditeľné ak\",\n questionTitleLocation: \"Poloha titulu otázky\",\n description: \"opis\",\n state: \"stav\",\n isRequired: \"Je povinné\",\n requiredIf: \"Povinné ak\",\n indent: \"vnorenie\",\n requiredErrorText: \"Povinné – text chyby\",\n startWithNewLine: \"Začať novým riadkom\",\n innerIndent: \"Vnútorné vnorenie\",\n page: \"stránka\",\n width: \"šírka\",\n commentText: \"Text komentára\",\n valueName: \"Názov hodnoty\",\n enableIf: \"Povoliť ak\",\n defaultValue: \"Predvolená hodnota\",\n correctAnswer: \"Správna odpoveď\",\n readOnly: \"Iba na čítanie\",\n validators: \"overovatelia\",\n titleLocation: \"Poloha titulu\",\n hasComment: \"Obsahuje komentár\",\n showOtherItem: \"Obsahuje iné\",\n choices: \"možnosti\",\n choicesOrder: \"Poradie možností\",\n choicesByUrl: \"Možnosti podľa URL\",\n otherText: \"Iné – text\",\n otherErrorText: \"Iné – text chyby\",\n storeOthersAsComment: \"Uložiť iné ako komentár\",\n label: \"štítok\",\n showTitle: \"Zobraziť titul\",\n valueTrue: \"Hodnota True\",\n valueFalse: \"Hodnota False\",\n cols: \"stĺpce\",\n rows: \"riadky\",\n placeholder: \"Zástupný symbol\",\n optionsCaption: \"Možnosti – titulok\",\n expression: \"výraz\",\n format: \"formát\",\n displayStyle: \"Štýl zobrazenia\",\n currency: \"mena\",\n useGrouping: \"Použiť zoskupenie\",\n showPreview: \"Zobraziť ukážku\",\n allowMultiple: \"Povoliť väčší počet\",\n imageHeight: \"Výška obrázka\",\n imageWidth: \"Šírka obrázka\",\n storeDataAsText: \"Uložiť údaje ako text\",\n maxSize: \"Max. veľkosť\",\n html: \"html\",\n columns: \"stĺpce\",\n cells: \"bunky\",\n isAllRowRequired: \"Všetky riadky sú povinné\",\n horizontalScroll: \"Prechádzanie vodorovne\",\n cellType: \"Typ bunky\",\n columnsLayout: \"Rozloženie stĺpcov\",\n columnColCount: \"Počet stĺpcov\",\n columnMinWidth: \"Minimálna šírka stĺpcov\",\n rowCount: \"Počet riadkov\",\n minRowCount: \"Minimálny počet riadkov\",\n maxRowCount: \"Maximálny počet riadkov\",\n keyName: \"Názov kľúča\",\n keyDuplicationError: \"Chyba duplikácie kľúča\",\n confirmDelete: \"Potvrdenie odstránenia\",\n confirmDeleteText: \"Text potvrdenia odstránenia\",\n addRowLocation: \"Poloha pridania riadka\",\n addRowText: \"Text pridania riadka\",\n removeRowText: \"Text odstránenia riadka\",\n items: \"položky\",\n itemSize: \"Veľkosť položky\",\n colCount: \"počet stĺpcov\",\n templateTitle: \"Titul šablóny\",\n templateDescription: \"Opis šablóny\",\n allowAddPanel: \"Povoliť pridanie panela\",\n allowRemovePanel: \"Povoliť odstránenie panela\",\n panelCount: \"Počet panelov\",\n minPanelCount: \"Minimálny počet panelov\",\n maxPanelCount: \"Maximálny počet panelov\",\n panelsState: \"Stav panelov\",\n panelAddText: \"Text pridania panela\",\n panelRemoveText: \"Text odstránenia panela\",\n panelPrevText: \"Text predchádzajúceho panela\",\n panelNextText: \"Text ďalšieho panela\",\n showQuestionNumbers: \"Zobraziť čísla otázok\",\n showRangeInProgress: \"Zobraziť prebiehajúci rozsah\",\n renderMode: \"Režim vykreslenia\",\n templateTitleLocation: \"Poloha titulu šablóny\",\n rateValues: \"Hodnoty hodnotenia\",\n rateMin: \"Minimálne hodnotenie\",\n rateMax: \"Maximálne hodnotenie\",\n rateStep: \"Krok hodnotenia\",\n minRateDescription: \"Opis minimálneho hodnotenia\",\n maxRateDescription: \"Opis maximálneho hodnotenia\",\n inputType: \"Typ vstupu\",\n size: \"veľkosť\",\n locale: \"miestne nastavenia\",\n focusFirstQuestionAutomatic: \"Automatický prechod na prvú otázku\",\n completedHtml: \"Dokončené HTML\",\n completedBeforeHtml: \"Dokončené pred limitom HTML\",\n loadingHtml: \"Načítanie HTML\",\n triggers: \"aktivátory\",\n cookieName: \"Názov súboru cookie\",\n sendResultOnPageNext: \"Odoslať výsledok na ďalšiu stránku\",\n showNavigationButtons: \"Zobraziť tlačidlá navigácie\",\n showPrevButton: \"Zobraziť tlačidlo Predchádzajúce\",\n showPageTitles: \"Zobraziť tituly stránok\",\n showCompletedPage: \"Zobraziť stránku Dokončené\",\n showPageNumbers: \"Zobraziť čísla stránok\",\n questionErrorLocation: \"Poloha chyby otázky\",\n showProgressBar: \"Zobraziť indikátor priebehu\",\n mode: \"režim\",\n goNextPageAutomatic: \"Automaticky prejsť na ďalšiu stránku\",\n checkErrorsMode: \"Režim kontroly chýb\",\n clearInvisibleValues: \"Odstrániť neviditeľné hodnoty\",\n startSurveyText: \"Spustenie prieskumu –​ text\",\n pagePrevText: \"Predchádzajúca stránka – text\",\n pageNextText: \"Ďalšia stránka – text\",\n completeText: \"Dokončené – text\",\n requiredText: \"Povinné – text\",\n questionStartIndex: \"Otázka – začiatočný index\",\n questionTitleTemplate: \"Otázka – titul šablóny\",\n firstPageIsStarted: \"Začína sa na prvej stránke\",\n isSinglePage: \"Je to jedna stránka\",\n maxTimeToFinishPage: \"Maximálny čas na dokončenie stránky\",\n showTimerPanel: \"Zobraziť panel časovača\",\n showTimerPanelMode: \"Zobraziť režim panela časovača\",\n defaultPanelValue: \"Predvolená hodnota panela\",\n defaultRowValue: \"Predvolená hodnota riadka\",\n showNoneItem: \"obsahuje žiadne\",\n noneText: \"žiadne – text\",\n text: \"text\",\n multiSelect: \"Výber viacerých možností\",\n showLabel: \"Zobraziť štítok\",\n logo: \"logo\",\n logoWidth: \"šírka loga\",\n logoHeight: \"výška loga\",\n logoFit: \"umiestnenie loga\",\n focusOnFirstError: \"prejsť na prvú chybu\",\n completedHtmlOnCondition: \"dokončené HTML na základe podmienky\",\n pages: \"stránky\",\n calculatedValues: \"vypočítané hodnoty\",\n navigateToUrl: \"prejsť na URL\",\n navigateToUrlOnCondition: \"prejsť na URL na základe podmienky\",\n questionDescriptionLocation: \"otázka – poloha opisu\",\n progressBarType: \"typ indikátora priebehu\",\n maxTextLength: \"maximálna dĺžka textu\",\n maxOthersLength: \"maximálna dĺžka – iné\",\n textUpdateMode: \"režim aktualizovania textu\",\n autoGrowComment: \"automatické pridávanie komentárov\",\n questionTitlePattern: \"otázka – vzor titulu\",\n questionsOnPageMode: \"režim otázok na stránke\",\n showPreviewBeforeComplete: \"zobraziť ukážku pred dokončením\",\n widthMode: \"šírka režimu\",\n showNumber: \"zobraziť číslo\",\n navigationTitle: \"Navigácia –​ titul\",\n navigationDescription: \"Navigácia – opis\",\n useDisplayValuesInDynamicTexts: \"Použiť zobrazené hodnoty v titule\",\n minWidth: \"minimálna šírka\",\n maxWidth: \"maximálna šírka\",\n descriptionLocation: \"poloha opisu\",\n hideNumber: \"skryť číslo\",\n defaultValueExpression: \"predvolený výraz hodnoty\",\n bindings: \"väzby\",\n columnsVisibleIf: \"viditeľné stĺpce ak\",\n rowsVisibleIf: \"viditeľné riadky ak\",\n showHeader: \"zobraziť hlavičku\",\n detailPanelMode: \"režim panela podrobností\",\n rowTitleWidth: \"šírka riadka titulu\",\n allowAddRows: \"povoliť pridávanie riadkov\",\n allowRemoveRows: \"povoliť odstránenie riadkov\",\n defaultValueFromLastRow: \"predvolená hodnota z posledného riadka\",\n hideColumnsIfEmpty: \"skryť stĺpce, ak sú prázdne\",\n emptyRowsText: \"prázdne riadky – text\",\n detailPanelShowOnAdding: \"panel s podrobnosťami – zobrazenie pri pridávaní\",\n allowRowsDragAndDrop: \"povoliť presúvanie riadkov\",\n rowsOrder: \"poradie riadkov\",\n hideIfRowsEmpty: \"skryť, ak sú riadky prázdne\",\n maximumFractionDigits: \"maximálny počet desatinných miest\",\n minimumFractionDigits: \"minimálny počet desatinných miest\",\n choicesFromQuestion: \"možnosti k otázke\",\n choicesFromQuestionMode: \"režim možností k otázke\",\n hideIfChoicesEmpty: \"skryť, ak sú možnosti prázdne\",\n choicesVisibleIf: \"viditeľné možnosti, ak\",\n choicesEnableIf: \"povoliť možnosti, ak\",\n otherPlaceHolder: \"iné – zástupný symbol\",\n maxSelectedChoices: \"maximálny počet vybratých možností\",\n showClearButton: \"zobraziť tlačidlo Vymazať\",\n contentMode: \"režim obsahu\",\n imageFit: \"umiestnenie obrázka\",\n autocomplete: \"automatické dokončenie\",\n min: \"min.\",\n max: \"max.\",\n minValueExpression: \"výraz minimálnej hodnoty\",\n maxValueExpression: \"výraz maximálnej hodnoty\",\n minErrorText: \"min. – text chyby\",\n maxErrorText: \"max. – text chyby\",\n step: \"krok\",\n dataList: \"zoznam údajov\",\n autoGrow: \"automatické rozšírenie\",\n multiLine: \"viaceré riadky\",\n allowImagesPreview: \"povoliť ukážku obrázkov\",\n acceptedTypes: \"akceptované typy\",\n waitForUpload: \"čakanie na odovzdanie\",\n needConfirmRemoveFile: \"vyžadovať potvrdenie pri odstránení súboru\",\n labelTrue: \"štítok true\",\n labelFalse: \"štítok false\",\n height: \"výška\",\n allowClear: \"povoliť vymazanie\",\n penColor: \"farba pera\",\n backgroundColor: \"farba pozadia\",\n dataFormat: \"formát údajov\",\n defaultValueFromLastPanel: \"predvolená hodnota z posledného panela\",\n panelRemoveButtonLocation: \"poloha tlačidla odstránenia panela\",\n showCaption: \"zobraziť titulok\",\n iconName: \"názov ikony\",\n iconSize: \"veľkosť ikony\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"sk\"] = skStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/spanish.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/spanish.ts ***!\n \\*************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar spanishTranslation = {\n survey: {\n edit: \"Editar\",\n externalHelpLink: \"Mira y aprende a crear encuestas\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"¡Arrastra un tipo de pregunta para empezar a diseñar tu encuesta!\",\n addLogicItem: \"Cree una regla para personalizar el flujo de la encuesta\",\n copy: \"Copiar\",\n duplicate: \"Duplicar\",\n addToToolbox: \"Añadir a la caja de herramientas\",\n deletePanel: \"Eliminar panel\",\n deleteQuestion: \"Eliminar pregunta\",\n convertTo: \"Convertir a\",\n drag: \"Elemento de arrastre\",\n },\n qt: {\n default: \"Defecto\",\n checkbox: \"Caja\",\n comment: \"Comentario\",\n imagepicker: \"Selector de imágenes\",\n ranking: \"Ranking\",\n image: \"Imagen\",\n dropdown: \"Desplegable\",\n file: \"Archivo\",\n html: \"Html\",\n matrix: \"Matriz (selección única)\",\n matrixdropdown: \"Matriz (opción múltiple)\",\n matrixdynamic: \"Matriz (filas dinámicas)\",\n multipletext: \"Múltiples textos\",\n panel: \"Panel\",\n paneldynamic: \"Panel (paneles dinámicos)\",\n radiogroup: \"Grupo de radio\",\n rating: \"Clasificación\",\n text: \"Entrada única\",\n boolean: \"Booleano\",\n expression: \"Expresión (solo lectura)\",\n signaturepad: \"Almohadilla de firma\",\n flowpanel: \"Panel de flujo\",\n },\n ed: {\n defaultLocale: \"Predeterminado ({0})\",\n survey: \"Encuesta\",\n settings: \"Configuración de la encuesta\",\n settingsTooltip: \"Configuración de encuesta abierta\",\n opjectPropertiesHeader: \"Avanzada\",\n showObjectProperties: \"Mostrar propiedades del objeto\",\n hideObjectProperties: \"Ocultar propiedades de objetos\",\n showPanel: \"Mostrar panel\",\n hidePanel: \"Ocultar panel\",\n editSurvey: \"Editar encuesta\",\n addNewPage: \"Añadir nueva página\",\n moveRight: \"Desplácese a la derecha\",\n moveLeft: \"Desplácese a la izquierda\",\n deletePage: \"Eliminar página\",\n editPage: \"Editar página\",\n edit: \"Editar\",\n newPageName: \"Página\",\n newQuestionName: \"Pregunta\",\n newPanelName: \"Panel\",\n newTextItemName: \"Texto\",\n testSurvey: \"Encuesta de prueba\",\n testSurveyAgain: \"Encuesta de prueba de nuevo\",\n testSurveyWidth: \"Ancho de la encuesta:\",\n navigateToMsg: \"Tuviste que navegar a:\",\n logic: \"Lógica de la encuesta\",\n embedSurvey: \"Incrustar la encuesta\",\n translation: \"Traducción\",\n saveSurvey: \"Guardar la encuesta\",\n saveSurveyTooltip: \"Guardar la encuesta\",\n designer: \"Diseñador de la encuesta\",\n jsonEditor: \"Editor de JSON\",\n undo: \"Deshacer\",\n redo: \"Rehacer\",\n undoTooltip: \"Deshacer el último cambio\",\n redoTooltip: \"Rehacer el cambio\",\n copy: \"Copiar\",\n cut: \"Cortar\",\n paste: \"Pegar\",\n copyTooltip: \"Copia selección al portapapeles\",\n cutTooltip: \"Corta la selección al portapapeles\",\n pasteTooltip: \"Pega de portapapeles\",\n options: \"Opciones\",\n generateValidJSON: \"Generar un JSON válido\",\n generateReadableJSON: \"Generar JSON legible\",\n toolbox: \"Caja de herramientas\",\n \"property-grid\": \"Propiedades\",\n toolboxGeneralCategory: \"general\",\n delSelObject: \"Eliminar objeto seleccionado\",\n editSelObject: \"Editar objeto seleccionado\",\n correctJSON: \"Por favor, corrija JSON\",\n surveyResults: \"Resultado de la encuesta:\",\n surveyResultsTable: \"Como Tabla\",\n surveyResultsJson: \"Como JSON\",\n resultsTitle: \"Título de la pregunta\",\n resultsName: \"Nombre de la pregunta\",\n resultsValue: \"Valor de respuesta\",\n resultsDisplayValue: \"Valor de visualización\",\n modified: \"Modificada\",\n saving: \"Guardando\",\n saved: \"Guardado\",\n propertyEditorError: \"error:\",\n saveError: \"¡Error!El contenido del editor no se ha guardado\",\n translationAddLanguage: \"Seleccione el idioma para traducir\",\n translationShowAllStrings: \"Mostrar todos los textos\",\n translationShowAllPages: \"Mostrar todas las páginas\",\n translationNoStrings: \"Sin cuerdas para traducir. Por favor, cambie el filtro\",\n translationExportToSCVButton: \"Exportar a CSV\",\n translationImportFromSCVButton: \"Importación de CSV\",\n translationMergeLocaleWithDefault: \"Merge {0} con lugar predeterminado\",\n bold: \"Negrita\",\n italic: \"Itálica\",\n underline: \"Subrayar\",\n fpAddQuestion: \"Añadir pregunta ...\",\n selectPage: \"Seleccionar página ...\",\n chooseElement: \"Elige el elemento ...\",\n completedHtmlOnConditionItemText: \"Mostrar si:\",\n lg: {\n addNewItem: \"\",\n page_visibilityName: \"Visibilidad de la pagina\",\n panel_visibilityName: \"Visibilidad del panel\",\n panel_enableName: \"Panel habilitar / deshabilitar\",\n question_visibilityName: \"Pregunta visibilidad\",\n question_enableName: \"Pregunta habilitar / deshabilitar\",\n question_requireName: \"Pregunta opcional requerida\",\n trigger_completeName: \"Encuesta completa\",\n trigger_setvalueName: \"Establecer valor de la pregunta\",\n trigger_copyvalueName: \"Copiar valor de la pregunta\",\n trigger_skipName: \"Saltar a la pregunta\",\n trigger_runExpressionName: \"Ejecutar la expresión personalizada\",\n completedHtmlOnConditionName: \"Texto personalizado 'Página de agradecimiento'\",\n page_visibilityDescription: \"Haga que la página sea visible cuando la expresión lógica vuelva verdadera. De lo contrario, manténgalo invisible\",\n panel_visibilityDescription: \"Haga que el panel sea visible cuando la expresión lógica vuelva verdadera. De lo contrario, manténgalo invisible\",\n panel_enableDescription: \"Haga el panel, y todos los elementos dentro de él, habiliten cuando la expresión lógica devuelve verdadero. De lo contrario, manténgalos deshabilitados\",\n question_visibilityDescription: \"Haz que la pregunta sea visible cuando la expresión lógica se devuelve 'verdadero'. De lo contrario, se mantiene invisible\",\n question_enableDescription: \"Haz que la pregunta se habilite cuando la expresión lógica devuelve 'verdadero'. De lo contrario, se mantiene deshabilitado\",\n question_requireDescription: \"La pregunta se requiere cuando la expresión lógica devuelve 'verdadero'\",\n trigger_completeDescription: \"Cuando la expresión lógica devuelve 'verdadero', la encuesta se completa y el usuario final ve la 'página de agradecimiento'\",\n trigger_setvalueDescription: \"Cuando se cambian los valores de las preguntas, que se usan en la expresión lógica, se cambian y la expresión lógica devuelve 'verdadero', entonces el valor se establece en la pregunta seleccionada\",\n trigger_copyvalueDescription: \"Cuando se cambian los valores de las preguntas, que se usan en la expresión lógica, se cambian y la expresión lógica devuelve 'verdadero', entonces el valor de una pregunta seleccionada se copia a otra pregunta seleccionada\",\n trigger_skipDescription: \"Cuando la expresión lógica devuelve 'verdadero', la encuesta salta a la pregunta seleccionada\",\n trigger_runExpressionDescription: \"Cuando la expresión lógica devuelve 'verdadero', entonces se realiza la expresión personalizada. Es posible que opcionalmente establezca este resultado de expresión en la pregunta seleccionada\",\n completedHtmlOnConditionDescription: \"Si la expresión lógica devuelve 'verdadero', entonces el texto predeterminado para la 'página de agradecimiento' se cambia por el texto dado\",\n itemExpressionText: \"Cuando la expresión: '{0}' devuelve VERDADERO:\",\n page_visibilityText: \"Hacer la página {0} Visible\",\n panel_visibilityText: \"Hacer panel {0} visible\",\n panel_enableText: \"Hacer panel {0} habilitar\",\n question_visibilityText: \"Hacer Pregunta {0} Visible\",\n question_enableText: \"Hacer Pregunta {0} Habilitar\",\n question_requireText: \"Hacer la pregunta {0} requerida\",\n trigger_completeText: \"La encuesta se completa\",\n trigger_setvalueText: \"En cuestión: {0} valor {1}\",\n trigger_copyvalueText: \"Copiar en cuestión: {0} valor de la pregunta {1}\",\n trigger_skipText: \"Encuesta salta a la pregunta {0}\",\n trigger_runExpressionText1: \"Expresión de ejecución: '{0}'\",\n trigger_runExpressionText2: \"y establecer su resultado en cuestión: {0}\",\n completedHtmlOnConditionText: \"Mostrar texto personalizado para la 'gracias página'\",\n conditions: \"Condición(es)\",\n actions: \"Comportamiento\",\n expressionEditorTitle: \"Definir la(s) condición(es)\",\n actionsEditorTitle: \"Definir la(s) acción(es)\",\n deleteAction: \"Eliminar acción\",\n addNewAction: \"Añadir nueva acción\",\n selectedActionCaption: \"Seleccione una acción para agregar ...\",\n expressionInvalid: \"La expresión lógica está vacía o inválida. Por favor corríjalo\",\n noActionError: \"Por favor, agregue al menos una acción\",\n actionInvalid: \"Por favor, solucione problemas en su(s) acción(es)\",\n expressionSetup: \"\",\n actionsSetup: \" \",\n },\n },\n pel: {\n isRequired: \"¿Requerida?\",\n },\n pe: {\n apply: \"Solicitar\",\n ok: \"ok\",\n save: \"Guardar\",\n saveTooltip: \"Guardar\",\n cancel: \"Cancelar\",\n reset: \"Reiniciar\",\n refresh: \"Actualizar\",\n close: \"Cerrar\",\n delete: \"Borrar\",\n add: \"Agregar\",\n addNew: \"Añadir nuevo\",\n addItem: \"Haga clic para agregar un artículo ...\",\n addOther: \"Otra\",\n addSelectAll: \"Seleccionar todo\",\n addNone: \"Ninguna\",\n removeAll: \"Eliminar todo\",\n edit: \"Editar\",\n back: \"Volver sin guardar\",\n backTooltip: \"Volver sin guardar\",\n saveAndBack: \"Guardar y volver\",\n saveAndBackTooltip: \"Guardar y volver\",\n itemValueEdit: \"Visible si\",\n editChoices: \"Editar opciones\",\n showChoices: \"Mostrar opciones\",\n move: \"Moverse\",\n empty: \"\",\n notEmpty: \"\",\n fastEntry: \"Entrada rápida\",\n formEntry: \"Entrada de forma\",\n testService: \"Probar el servicio\",\n itemSelectorEmpty: \"Por favor seleccione el elemento\",\n conditionActionEmpty: \"Por favor seleccione la acción\",\n conditionSelectQuestion: \"Seleccionar pregunta ...\",\n conditionSelectPage: \"Seleccionar página ...\",\n conditionSelectPanel: \"Seleccionar panel ...\",\n conditionValueQuestionTitle: \"Por favor ingrese / seleccione el valor\",\n conditionHelp: \"Por favor ingrese una expresión booleana.Debe devolverse verdadero para mantener visible la pregunta / página.Por ejemplo: {pregunta1} = 'value1' o ({pregunta2} * {pregunta4}> 20 y {pregunta3} <5)\",\n expressionHelp: \"Puede usar soportes rizados para obtener acceso a los valores de la pregunta: {pregunta1} + {pregunta2}, ({precio} * {cantidad}) * (100 - {descuento}).Puede usar funciones como: IIF (), hoy (), edad (), min (), max (), cuenta (), AVG () y otros\",\n aceEditorHelp: \"Presione CTRL + ESPACIO para obtener sugerencia de completar la expresión\",\n aceEditorRowTitle: \"Fila actual\",\n aceEditorPanelTitle: \"Panel actual\",\n showMore: \"Para más detalles, por favor revise la documentación\",\n conditionShowMoreUrl: \"https://surveyjsIo/documentation/libraryParametro?Id =PreguntaYParámetro =VisibleSi\",\n assistantTitle: \"Preguntas disponibles:\",\n cellsEmptyRowsColumns: \"Debe haber al menos una columna o fila\",\n propertyIsEmpty: \"Porfavor introduzca un valor\",\n propertyIsNoUnique: \"Por favor ingrese un valor único\",\n propertyNameIsNotUnique: \"Por favor ingrese un nombre único\",\n listIsEmpty: \"Añadir un nuevo artículo\",\n expressionIsEmpty: \"La expresión está vacía\",\n value: \"Valor\",\n text: \"Texto\",\n rowid: \"ID de fila\",\n imageLink: \"Enlace de imágen\",\n columnEdit: \"Editar columna: {0}\",\n itemEdit: \"Editar artículo: {0}\",\n url: \"URL\",\n path: \"Camino\",\n valueName: \"Nombre de valor\",\n titleName: \"Nombre del título\",\n allowEmptyResponse: \"Permitir respuestas vacías\",\n titlePlaceholder: \"Título de entrada aquí\",\n surveyTitlePlaceholder: \"Título de la encuesta de entrada aquí\",\n pageTitlePlaceholder: \"Título de la página de entrada aquí\",\n descriptionPlaceholder: \"Ingrese una descripción\",\n surveyDescriptionPlaceholder: \"Ingrese una descripción de la encuesta\",\n pageDescriptionPlaceholder: \"Ingrese una descripción de la página\",\n showOtherItem: \"Tiene opción 'Otro'\",\n otherText: \"Cambiar texto 'Otro'\",\n showNoneItem: \"Tiene opcion 'Ninguno'\",\n noneText: \"Cambiar texto 'Ninguno'\",\n hasSelectAll: \"Tiene opción 'Selecionar todo'\",\n selectAllText: \"Cambiar texto de 'Seleccionar todo'\",\n choicesMin: \"Valor mínimo para artículos generados automáticos\",\n choicesMax: \"Valor máximo para artículos generados automáticos\",\n choicesStep: \"La diferencia entre los artículos generados automáticos\",\n name: \"Nombre\",\n title: \"Título\",\n cellType: \"Tipo de célula\",\n colCount: \"Recuento de columnas\",\n choicesOrder: \"Seleccione el orden de las opciones\",\n visible: \"¿Es visible?\",\n isRequired: \"¿Se requiere?\",\n isAllRowRequired: \"Requerir respuesta para todas las filas\",\n requiredErrorText: \"Texto de error requerido\",\n startWithNewLine: \"¿Empieza con la nueva línea?\",\n rows: \"Número de filas\",\n cols: \"Recuento de columnas\",\n placeholder: \"Placeholder de entrada\",\n showPreview: \"Mostrar área de vista previa\",\n storeDataAsText: \"Tienda el contenido del archivo en el resultado de JSON como texto\",\n maxSize: \"Tamaño máximo de archivo en bytes\",\n imageHeight: \"Altura de imagen\",\n imageWidth: \"Ancho de la imagen\",\n rowCount: \"Número de filas\",\n columnLayout: \"Diseño de columnas\",\n addRowLocation: \"Añadir la ubicación del botón de la fila\",\n addRowText: \"Añadir texto de botón de fila\",\n removeRowText: \"Eliminar el texto del botón de fila\",\n rateMin: \"Valor mínimo\",\n rateMax: \"Valor máximo\",\n rateStep: \"Rango de los valores\",\n minRateDescription: \"Descripción del valor mínimo\",\n maxRateDescription: \"Descripción del valor máximo\",\n inputType: \"Tipo de entrada\",\n optionsCaption: \"Cambie texto de 'Seleccione'\",\n showOptionsCaption: \"Mostrar el título de las opciones\",\n defaultValue: \"Valor por defecto\",\n cellsDefaultRow: \"Textos de celdas predeterminados\",\n surveyEditorTitle: \"Editar configuración de encuesta\",\n qEditorTitle: \"Editar: {0}\",\n maxLength: \"Longitud máxima\",\n buildExpression: \"Construir\",\n editExpression: \"Editar\",\n and: \"Y\",\n or: \"O\",\n remove: \"Eliminar\",\n addCondition: \"Añadir condición\",\n showTitle: \"Mostrar / Ocultar Título\",\n expandCollapseTitle: \"Expandir / Contraer título\",\n locale: \"Idioma predeterminado\",\n simulator: \"Elige dispositivo\",\n landscapeOrientation: \"Orientación horizontal \",\n mode: \"Modo (editar / leer solamente)\",\n clearInvisibleValues: \"Claros valores invisibles\",\n cookieName: \"Nombre de la cookie (para deshabilitar la encuesta de ejecución dos veces localmente)\",\n sendResultOnPageNext: \"Enviar resultados de encuestas en la página Siguiente\",\n storeOthersAsComment: \"Almacenar 'Otros' valor en campo separado\",\n showPageTitles: \"Mostrar descripción de la página\",\n showPageNumbers: \"Mostrar números de página\",\n pagePrevText: \"Página de texto del botón anterior\",\n pageNextText: \"Página Siguiente botón de texto\",\n completeText: \"Texto completo del botón\",\n previewText: \"Vista previa del botón del botón\",\n editText: \"Editar botón de texto\",\n startSurveyText: \"Texto de inicio de la encuesta\",\n showNavigationButtons: \"Mostrar botones de navegación (navegación predeterminada)\",\n showPrevButton: \"Mostrar botón anterior (el usuario puede volver a la página anterior)\",\n firstPageIsStarted: \"La primera página en la encuesta es una página iniciada\",\n showCompletedPage: \"Mostrar la página completa al final (HTML finalizado)\",\n goNextPageAutomatic: \"Al responder todas las preguntas, vaya a la página siguiente automáticamente\",\n showProgressBar: \"Mostrar barra de progreso\",\n questionTitleLocation: \"Ubicación del título de la pregunta\",\n requiredText: \"La pregunta requerida (s) símbolo (s)\",\n questionStartIndex: \"Índice de inicio de la pregunta (1, 2 o 'A', 'A')\",\n showQuestionNumbers: \"Mostrar números de pregunta\",\n questionTitleTemplate: \"Plantilla de título de la pregunta, el valor predeterminado es: '{no}.{requiere} {título} '\",\n questionErrorLocation: \"Ubicación de error de la pregunta\",\n focusFirstQuestionAutomatic: \"Enfoca la primera pregunta al cambiar la página\",\n questionsOrder: \"Orden de elementos en la página\",\n maxTimeToFinish: \"Tiempo máximo para terminar la encuesta\",\n maxTimeToFinishPage: \"Tiempo máximo para terminar una página en la encuesta\",\n showTimerPanel: \"Mostrar panel de temporizador\",\n showTimerPanelMode: \"Mostrar modo de panel del temporizador\",\n renderMode: \"Modo de renderizado\",\n allowAddPanel: \"Permitir agregar un panel\",\n allowRemovePanel: \"Permitir eliminar el panel\",\n panelAddText: \"Añadiendo texto del panel\",\n panelRemoveText: \"Eliminar texto del panel\",\n isSinglePage: \"Mostrar todos los elementos en una página\",\n html: \"Html\",\n expression: \"Expresión\",\n minValue: \"Valor mínimo\",\n maxValue: \"Valor máximo\",\n minLength: \"Longitud mínima\",\n allowDigits: \"Permitir dígitos\",\n minCount: \"Cantidad mínima\",\n maxCount: \"Cantidad máxima\",\n regex: \"Expresión regular\",\n totalText: \"Texto total\",\n totalType: \"Tipo total\",\n totalExpression: \"Expresión total\",\n totalDisplayStyle: \"Estilo de visualización total\",\n totalCurrency: \"Moneda total\",\n totalFormat: \"Formato total\",\n logoPosition: \"Posición del logotipo\",\n addLogo: \"Añadir logo ...\",\n changeLogo: \"Cambiar logo ...\",\n logoPositions: {\n none: \"Eliminar logo\",\n left: \"Izquierda\",\n right: \"Derecha\",\n top: \"En la parte superior\",\n bottom: \"En la parte inferior\",\n },\n tabs: {\n general: \"General\",\n fileOptions: \"Opciones\",\n html: \"Editor HTML\",\n columns: \"Columnas\",\n rows: \"Filas\",\n choices: \"Opciones\",\n items: \"Artículos\",\n visibleIf: \"Visible si\",\n enableIf: \"Habilitar si\",\n requiredIf: \"Requerido si\",\n rateValues: \"Valores de la tasa\",\n choicesByUrl: \"Opciones de la web\",\n matrixChoices: \"Opciones predeterminadas\",\n multipleTextItems: \"Entradas de texto\",\n numbering: \"Numeración\",\n validators: \"Validadores\",\n navigation: \"Navegación\",\n question: \"Pregunta\",\n pages: \"Páginas\",\n completedHtml: \"HTML completado\",\n completedHtmlOnCondition: \"HTML completado en la condición\",\n loadingHtml: \"Cargando HTML\",\n timer: \"Horas / cuestionario\",\n calculatedValues: \"Valores calculados\",\n triggers: \"Disparadores\",\n templateTitle: \"Título de la plantilla\",\n totals: \"Totales\",\n logic: \"Lógica\",\n layout: \"Diseño\",\n data: \"Datos\",\n validation: \"Validación\",\n cells: \"Células\",\n showOnCompleted: \"Mostrar en completado\",\n logo: \"Logo en el título de la encuesta\",\n slider: \"Slider\",\n others: \"Otras\",\n },\n editProperty: \"Editar propiedad '{0}'\",\n items: \"[Artículos: {0}]\",\n enterNewValue: \"Por favor, ingrese el valor\",\n noquestions: \"No hay ninguna pregunta en la encuesta\",\n createtrigger: \"Por favor crea un gatillo\",\n titleKeyboardAdornerTip: \"Presione el botón Entrar para editar\",\n keyboardAdornerTip: \"Presione el botón Entrar para editar el elemento, presione el botón Eliminar para eliminar el elemento, presione ALT Plus Flecha hacia arriba o hacia abajo para mover el elemento\",\n keyboardMoveItemsTip: \"Presione ALT Plus flecha hacia arriba o flecha hacia abajo para mover el artículo\",\n triggerOn: \"En\",\n triggerMakePagesVisible: \"Hacer visibles las páginas:\",\n triggerMakeQuestionsVisible: \"Hacer elementos visibles:\",\n triggerCompleteText: \"Completa la encuesta si tiene éxito\",\n triggerNotSet: \"El gatillo no se establece\",\n triggerRunIf: \"Correr si\",\n triggerSetToName: \"Cambio de valor de:\",\n triggerFromName: \"Copie el valor de:\",\n triggerRunExpression: \"Ejecute esta expresión:\",\n triggerSetValue: \"a:\",\n triggerGotoName: \"Ir a la pregunta:\",\n triggerIsVariable: \"No coloque la variable en el resultado de la encuesta\",\n triggerRunExpressionEmpty: \"Por favor ingrese una expresión válida\",\n noFile: \"Ningún archivo elegido\",\n },\n pv: {\n true: \"cierto\",\n false: \"falsa\",\n inherit: \"heredar\",\n show: \"mostrar\",\n hide: \"esconder\",\n default: \"defecto\",\n initial: \"inicial\",\n random: \"aleatoria\",\n collapsed: \"colapsada\",\n expanded: \"expandida\",\n none: \"ninguna\",\n asc: \"ascendente\",\n desc: \"descendiendo\",\n indeterminate: \"indeterminada\",\n decimal: \"decimal\",\n currency: \"divisa\",\n percent: \"por ciento\",\n firstExpanded: \"Primer Expandido\",\n off: \"no mostrar\",\n onPanel: \"en Panel\",\n onSurvey: \"en Encuesta\",\n list: \"lista\",\n progressTop: \"Progreso superior\",\n progressBottom: \"Progreso inferior\",\n progressTopBottom: \"Progreso inferior/superior\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n top: \"arriba\",\n bottom: \"abajo\",\n topBottom: \"arriba y abajo\",\n both: \"ambas\",\n left: \"izquierda\",\n color: \"color\",\n date: \"fecha\",\n datetime: \"fecha y hora\",\n \"datetime-local\": \"fecha y hora local\",\n email: \"Email\",\n month: \"mes\",\n number: \"número\",\n password: \"contraseña\",\n range: \"distancia\",\n tel: \"tel\",\n text: \"texto\",\n time: \"hora\",\n url: \"URL\",\n week: \"semana\",\n hidden: \"oculta\",\n on: \"mostrar\",\n onPage: \"en la página\",\n edit: \"editar\",\n display: \"mostrar\",\n onComplete: \"Al completarse\",\n onHidden: \"Al ocultarse\",\n all: \"todas\",\n page: \"página\",\n survey: \"encuesta\",\n onNextPage: \"Al cambiar página\",\n onValueChanged: \"Al cambiar valor\",\n singlePage: \"única página\",\n standard: \"estándar\",\n questionPerPage: \"Pregunta por página\",\n noPreview: \"sin vista previa\",\n showAllQuestions: \"Mostrar vista previa con todas las preguntas\",\n showAnsweredQuestions: \"Mostrar vista previa con preguntas contestadas\",\n pages: \"páginas\",\n questions: \"preguntas\",\n requiredQuestions: \"preguntas requeridas\",\n correctQuestions: \"preguntas correctas\",\n buttons: \"botones\",\n underInput: \"debajo de la respuesta\",\n underTitle: \"debajo del título\"\n },\n op: {\n empty: \"esta vacio\",\n notempty: \"no está vacío\",\n equal: \"es igual a\",\n notequal: \"no es igual a\",\n contains: \"contiene\",\n notcontains: \"no contiene\",\n anyof: \"cualquiera de\",\n allof: \"todo\",\n greater: \"mayor que\",\n less: \"menos\",\n greaterorequal: \"Mayor o igual\",\n lessorequal: \"Menos o iguales\",\n and: \"y\",\n or: \"o\",\n },\n ew: {\n angular: \"Usar la versión angular\",\n jquery: \"Usa la versión jQuery\",\n knockout: \"Usa la versión Knockout\",\n react: \"Use la versión de reacción\",\n vue: \"Usa la versión VUE\",\n bootstrap: \"Para marco de bootstrap\",\n modern: \"Tema moderno\",\n default: \"Tema predeterminado\",\n orange: \"Tema naranja\",\n darkblue: \"Tema DarkBlue\",\n darkrose: \"Tema de Darkrose\",\n stone: \"Tema de piedra\",\n winter: \"Tema de invierno\",\n winterstone: \"Tema de piedra de invierno\",\n showOnPage: \"Mostrar encuesta en una página\",\n showInWindow: \"Mostrar encuesta en una ventana\",\n loadFromServer: \"Encuesta de carga JSON del servidor\",\n titleScript: \"Scripts y estilos\",\n titleHtml: \"Html\",\n titleJavaScript: \"Javascript\",\n },\n ts: {\n selectPage: \"Seleccione la página para probarlo:\",\n showInvisibleElements: \"Mostrar elementos invisibles\",\n },\n validators: {\n answercountvalidator: \"Cantidad de respuestas\",\n emailvalidator: \"Email\",\n expressionvalidator: \"expresión\",\n numericvalidator: \"numérica\",\n regexvalidator: \"regex\",\n textvalidator: \"texto\",\n },\n triggers: {\n completetrigger: \"encuesta completa\",\n setvaluetrigger: \"valor ajustado\",\n copyvaluetrigger: \"Valor de copia\",\n skiptrigger: \"Saltar a la pregunta\",\n runexpressiontrigger: \"expresión de ejecución\",\n visibletrigger: \"Cambiar visibilidad\",\n },\n p: {\n name: \"nombre\",\n title: {\n name: \"título\",\n title: \"Dejarlo vacío, si es lo mismo que 'Name'\",\n },\n navigationButtonsVisibility: \"Navegación botones visibilidad\",\n questionsOrder: \"Orden\",\n maxTimeToFinish: \"Tiempo de finalización\",\n visible: \"visible\",\n visibleIf: \"visible si\",\n questionTitleLocation: \"Localización del título\",\n description: \"Descripción\",\n state: \"Expresar\",\n isRequired: \"se requiere\",\n requiredIf: \"Requerido si\",\n indent: \"Indentar\",\n requiredErrorText: \"Requerido\",\n startWithNewLine: \"Comenzar con nueva línea\",\n innerIndent: \"Sangría interior\",\n page: \"página\",\n width: \"Ancho\",\n commentText: \"comentario\",\n valueName: \"Nombre del valor\",\n enableIf: \"Habilitar si\",\n defaultValue: \"valor por defecto\",\n correctAnswer: \"respuesta correcta\",\n readOnly: \"solo lectura\",\n validators: \"Validadores\",\n titleLocation: \"Localización del título\",\n hasComment: \"tiene comentario\",\n showOtherItem: \"otro\",\n choices: \"opciones\",\n choicesOrder: \"orden de opciones\",\n choicesByUrl: \"opciones por URL\",\n otherText: \"otro texto\",\n otherErrorText: \"otro texto de Error\",\n storeOthersAsComment: \"Guardar otras como comentario\",\n label: \"etiqueta\",\n showTitle: \"mostrar título\",\n valueTrue: \"Verdadero\",\n valueFalse: \"Falso\",\n cols: \"columnas\",\n rows: \"filas\",\n placeholder: \"marcador de posición\",\n optionsCaption: \"Texto opciones\",\n expression: \"expresión\",\n format: \"formato\",\n displayStyle: \"Estilo visualización\",\n currency: \"divisa\",\n useGrouping: \"Grupo de uso\",\n showPreview: \"Mostrar vista previa\",\n allowMultiple: \"Permitir múltiples\",\n imageHeight: \"Altura de imagen\",\n imageWidth: \"ancho de la imagen\",\n storeDataAsText: \"Guardar datos como texto\",\n maxSize: \"tamaño máximo\",\n html: \"html\",\n columns: \"columnas\",\n cells: \"células\",\n isAllRowRequired: \"Todas las filas son obligatorias\",\n horizontalScroll: \"Scroll Horizontal\",\n cellType: \"Tipo de célula\",\n columnsLayout: \"Estilo columna\",\n columnColCount: \"Contador columna\",\n columnMinWidth: \"Ancho columna\",\n rowCount: \"número de filas\",\n minRowCount: \"Cantidad mín de filas\",\n maxRowCount: \"Cantidad max de filas\",\n keyName: \"Nombre clave\",\n keyDuplicationError: \"KeyDuplicationError\",\n confirmDelete: \"confirmar borrado\",\n confirmDeleteText: \"texto de confirmación de borrado\",\n addRowLocation: \"Localización añadir fila\",\n addRowText: \"Añadir texto fila\",\n removeRowText: \"Eliminar texto fila\",\n items: \"artículos\",\n itemSize: \"artículos\",\n colCount: \"Contador columna\",\n templateTitle: \"Título template\",\n templateDescription: \"Descripción template\",\n allowAddPanel: \"Permitir añadir panel\",\n allowRemovePanel: \"Permitir eliminar panel\",\n panelCount: \"Contador panel\",\n minPanelCount: \"Mín Contador Panel\",\n maxPanelCount: \"Max Contador Panel\",\n panelsState: \"Estado panel\",\n panelAddText: \"Panel añadir texto\",\n panelRemoveText: \"Panel eliminar texto\",\n panelPrevText: \"panel previo\",\n panelNextText: \"panel siguiente\",\n showQuestionNumbers: \"Mostrar número preguntas\",\n showRangeInProgress: \"Mostrar rango en progresso\",\n renderMode: \"Modo renderización\",\n templateTitleLocation: \"Localización título en template\",\n rateValues: \"Califica valores\",\n rateMin: \"Calificación mínima\",\n rateMax: \"Calificación máxima\",\n rateStep: \"Paso\",\n minRateDescription: \"MinRate Descripción\",\n maxRateDescription: \"MaxRate Descripción\",\n inputType: \"tipo de entrada\",\n size: \"Tamaño\",\n locale: \"lugar\",\n focusFirstQuestionAutomatic: \"Colocarse automáticamente en la primera pregunta\",\n completedHtml: \"HTML completado\",\n completedBeforeHtml: \"HTML completado antes\",\n loadingHtml: \"Cargando HTML\",\n triggers: \"disparadores\",\n cookieName: \"Nombre Cookie\",\n sendResultOnPageNext: \"Enviar resultados en la siguiente página\",\n showNavigationButtons: \"Mostrar botones de navegación\",\n showPrevButton: \"Mostrar botón previo\",\n showPageTitles: \"Mostrar título páginas\",\n showCompletedPage: \"Mostrar página de Completado\",\n showPageNumbers: \"Mostrar Números de Página\",\n questionErrorLocation: \"Localización del error de la pregunta\",\n showProgressBar: \"Mostrar programa\",\n mode: \"modo\",\n goNextPageAutomatic: \"Ir a la siguiente página automáticamente\",\n checkErrorsMode: \"Modo validar errores\",\n clearInvisibleValues: \"Borrar valores invisibles\",\n startSurveyText: \"Texto de inicio de la encuesta\",\n pagePrevText: \"Texto página previa\",\n pageNextText: \"Texto página siguiente\",\n completeText: \"Texto completado\",\n requiredText: \"Texto requerido\",\n questionStartIndex: \"Índice inicial de la pregunta\",\n questionTitleTemplate: \"Título del template de la pregunta\",\n firstPageIsStarted: \"Primera página iniciada\",\n isSinglePage: \"Página única\",\n maxTimeToFinishPage: \"Tiempo máximo para finalizar\",\n showTimerPanel: \"Mostrar temporizador\",\n showTimerPanelMode: \"Mostrar temporizador Modo\",\n defaultPanelValue: \"Valor por defecto Panel\",\n defaultRowValue: \"Valor por defecto Fila\",\n showNoneItem: \"Tiene opción 'Ninguno'\",\n noneText: \"Texto ninguno\",\n text: \"texto\",\n },\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"es\"] = spanishTranslation;\n\n\n/***/ }),\n\n/***/ \"./src/localization/swedish.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/swedish.ts ***!\n \\*************************************/\n/*! exports provided: svStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"svStrings\", function() { return svStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n//Translated by Thomas Borgström\n\nvar svStrings = {\n //survey templates\n locale: \"sv\",\n survey: {\n edit: \"Redigera\",\n dropQuestion: \"Dra och släpp en fråga från Verktygslistan till vänster.\",\n copy: \"Kopiera\",\n addToToolbox: \"Lägg till Verktygslistan\",\n deletePanel: \"Radera Panel\",\n deleteQuestion: \"Radera Fråga\",\n convertTo: \"Konvertera till\",\n drag: \"Dra element\",\n },\n //questionTypes\n qt: {\n default: \"Standard\",\n checkbox: \"Checkbox\",\n comment: \"Kommentar\",\n imagepicker: \"Bild-väljare\",\n dropdown: \"Rullgardinsmeny\",\n file: \"Fil\",\n html: \"Html\",\n matrix: \"Matris (enkel val)\",\n matrixdropdown: \"Matris(flera val)\",\n matrixdynamic: \"Matris (dynamiska rader)\",\n multipletext: \"Flera texter\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dynamisk panel)\",\n radiogroup: \"Radiogrupper\",\n rating: \"Rankning\",\n text: \"Enkel text\",\n boolean: \"Boolean\",\n expression: \"Formel\",\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Standard ({0})\",\n survey: \"Enkät\",\n settings: \"Enkät inställningar\",\n editSurvey: \"Redigera Enkät\",\n addNewPage: \"Lägg till en ny sida\",\n moveRight: \"Scrolla till höger\",\n moveLeft: \"Scrolla till vänster\",\n deletePage: \"Radera sida\",\n editPage: \"Redigera sida\",\n edit: \"Redigera\",\n newPageName: \"sida\",\n newQuestionName: \"fråga\",\n newPanelName: \"panel\",\n testSurvey: \"Test enkät\",\n testSurveyAgain: \"Testa enkät igen\",\n testSurveyWidth: \"Enkät bredd: \",\n embedSurvey: \"Integrerad Enkät\",\n translation: \"Översättning\",\n saveSurvey: \"Spara Enkät\",\n designer: \"Enkät Designer\",\n jsonEditor: \"JSON Redigering\",\n undo: \"Ångra\",\n redo: \"Göra om\",\n options: \"Alternativ\",\n generateValidJSON: \"Generera giltig JSON\",\n generateReadableJSON: \"Generera läsbar JSON\",\n toolbox: \"Verktygslista\",\n toolboxGeneralCategory: \"Generellt\",\n delSelObject: \"Radera valt element\",\n editSelObject: \"Redigera valt element\",\n correctJSON: \"Var vänligen korrigera JSON.\",\n surveyResults: \"Enkät resultat: \",\n surveyResultsTable: \"Som tabell\",\n surveyResultsJson: \"Som JSON\",\n resultsTitle: \"Frågetitel\",\n resultsName: \"Frågenamn\",\n resultsValue: \"Resultat värde\",\n resultsDisplayValue: \"Visnings värde\",\n modified: \"Ändrat\",\n saving: \"Sparar\",\n saved: \"Sparat\",\n saveError: \"Fel! Innehållet i enkäten är inte sparat.\",\n translationAddLanguage: \"Välj språk för oversättning\",\n translationShowAllStrings: \"Visa alla strängar\",\n translationShowAllPages: \"Visa alla sidor\",\n translationNoStrings: \"Inga strängar är översatta. Vänligen ändra filtret.\",\n translationExportToSCVButton: \"Exportera till CSV\",\n translationImportFromSCVButton: \"Importera från CSV\",\n translationMergeLocaleWithDefault: \"Mergea {0} med standard språk\",\n },\n //Property names in table headers\n pel: {\n isRequired: \"Nödvändig?\",\n },\n //Property Editors\n pe: {\n apply: \"Faställ\",\n ok: \"OK\",\n cancel: \"Avbryt\",\n reset: \"Återställ\",\n close: \"Stäng\",\n delete: \"Radera\",\n addNew: \"Lägg till ny\",\n addItem: \"Klicka för att lägga till...\",\n removeAll: \"Ta bort allt\",\n edit: \"Redigera\",\n itemValueEdit: \"Synlig för\",\n editChoices: \"Redigera val\",\n move: \"Flytta\",\n empty: \"\",\n notEmpty: \"\",\n fastEntry: \"Snabb ifyllning\",\n formEntry: \"Ifyllning i enkäten\",\n testService: \"Testa tjänsten\",\n conditionSelectQuestion: \"Välj fråga...\",\n conditionValueQuestionTitle: \"Vänligen skriv in/välj värdet\",\n conditionButtonAdd: \"Lägg till\",\n conditionButtonReplace: \"Ersätt\",\n conditionHelp: \"Skriv in ett boolsk uttryck. Det bör returnera SANT för att göra frågan/sidan synlig. Till exempel: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"Var vänligen skriv in ett uttryck. Du kan använda måsvingar för att få tillgång till det sparade värdet: '{question1} + {question2}', '({price}*{quantity}) * (100 - {discount})'\",\n aceEditorHelp: \"Tryck ctrl+mellanslag för att få en ledtråd\",\n aceEditorRowTitle: \"Nuvarande rad\",\n aceEditorPanelTitle: \"Nuvarande panel\",\n showMore: \"För mer detaljer - se dokumentationen\",\n conditionShowMoreUrl: \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Tillgängliga frågor:\",\n cellsEmptyRowsColumns: \"Det bör vara minst 1 kolumn eller rad\",\n propertyIsEmpty: \"Vänligen fyll i ett värde\",\n value: \"Värde\",\n text: \"Text\",\n rowid: \"Rad ID\",\n imageLink: \"Bild länk\",\n columnEdit: \"Redigera kolumn: {0}\",\n itemEdit: \"Redigera element: {0}\",\n url: \"URL\",\n path: \"Sökväg\",\n valueName: \"Värde namn\",\n titleName: \"Titel namn\",\n showOtherItem: \"Har annat element\",\n otherText: \"Annat\",\n name: \"Namn\",\n title: \"Titel\",\n cellType: \"Cell typ\",\n colCount: \"Antal kolumner\",\n choicesOrder: \"Välj ordning på valet\",\n visible: \"Synlig?\",\n isRequired: \"Nödvändig?\",\n startWithNewLine: \"Starta på en ny rad?\",\n rows: \"Antal rader\",\n placeholder: \"Mata in i fältet\",\n showPreview: \"Förhandsvinsning av bild?\",\n storeDataAsText: \"Lagra filinnehållet i JSON som text\",\n maxSize: \"Max filstorlek i bytes\",\n imageHeight: \"Bild höjd\",\n imageWidth: \"Bild bredd\",\n rowCount: \"Antal rader\",\n columnLayout: \"Stil på kolumn\",\n addRowLocation: \"Lägg till radknapp plats\",\n addRowText: \"Lägg till knapp text\",\n removeRowText: \"Ta bort rad knapp text\",\n minRateDescription: \"Minsta betyg beskrivning\",\n maxRateDescription: \"Maximala betyg beskrivning\",\n inputType: \"Indata typ\",\n optionsCaption: \"Text för alternativ\",\n defaultValue: \"Standard värde\",\n cellsDefaultRow: \"Standard cell texter\",\n surveyEditorTitle: \"Redigera schema inställningar\",\n qEditorTitle: \"Redigera: {0}\",\n maxLength: \"Max längd\",\n //survey\n showTitle: \"Visa/dölj titel\",\n locale: \"Standard språk\",\n mode: \"Läge (redigera/läsa enbart)\",\n clearInvisibleValues: \"Rensa osynliga värden\",\n cookieName: \"Kaknamn (för att inaktivera kör enkäten två gånger lokalt)\",\n sendResultOnPageNext: \"Skicka enkät resultatet till nästa sida\",\n storeOthersAsComment: \"Lagra 'andra' värden i ett separat fält\",\n showPageTitles: \"Visa sidtitel\",\n showPageNumbers: \"Visa sidnummer\",\n pagePrevText: \"Föregående\",\n pageNextText: \"Nästa\",\n completeText: \"Färdig\",\n startSurveyText: \"Start knapp text\",\n showNavigationButtons: \"Visa navigationsknappar (standard navigering)\",\n showPrevButton: \"Visa föregående knapp (användaren kan gå återgå till föregående sida)\",\n firstPageIsStarted: \"Den första sidan i enkäten är startsidan.\",\n showCompletedPage: \"Visa den slutförda sidan på slutet (completedHtml)\",\n goNextPageAutomatic: \"Vid besvarande av alla frågor, gå till nästa sida automatiskt\",\n showProgressBar: \"Visa händelsförlopp\",\n questionTitleLocation: \"Fråga titel placering\",\n requiredText: \"Var vänlig skriv en text\",\n questionStartIndex: \"Fråga start index (1, 2 eller 'A', 'a')\",\n showQuestionNumbers: \"Visa frågenummer\",\n questionTitleTemplate: \"Fråga titel mall, standard är: '{no}. {require} {title}'\",\n questionErrorLocation: \"Fråga fel placerad\",\n focusFirstQuestionAutomatic: \"Fokusera på första frågan vid ändring av sidan\",\n questionsOrder: \"Element ordning på sidan\",\n maxTimeToFinish: \"Max tid för att slutföra enkäten\",\n maxTimeToFinishPage: \"Max tid för att göra färdigt en sida i enkäten\",\n showTimerPanel: \"Visa tidtagning\",\n showTimerPanelMode: \"Visa tidtagning läge\",\n renderMode: \"Rendering läge\",\n allowAddPanel: \"Tillåt att lägga till panel\",\n allowRemovePanel: \"Tillåt att ta bort panel\",\n panelAddText: \"Lägg till panel text\",\n panelRemoveText: \"Ta bort panel text\",\n isSinglePage: \"Visa alla element på en sida\",\n tabs: {\n general: \"Generellt\",\n fileOptions: \"Alternativ\",\n html: \"Html-editor\",\n columns: \"Kolumner\",\n rows: \"Rader\",\n choices: \"Välj\",\n items: \"Element\",\n visibleIf: \"Synlig\",\n enableIf: \"Tillgänlig\",\n rateValues: \"Ordna värden\",\n choicesByUrl: \"Välj från webben\",\n matrixChoices: \"Standard val\",\n multipleTextItems: \"Text indata\",\n validators: \"Valideringar\",\n navigation: \"Navigering\",\n question: \"Fråga\",\n completedHtml: \"Fullförd Html\",\n loadingHtml: \"Laddar Html\",\n timer: \"Tidtagare/Quiz\",\n triggers: \"Triggare\",\n templateTitle: \"Mall titel\",\n },\n editProperty: \"Redigera egenskap '{0}'\",\n items: \"[ Element: {0} ]\",\n enterNewValue: \"Vänligen skriv in ett värde.\",\n noquestions: \"Det finns ingen fråga i enkäten.\",\n createtrigger: \"Vänligen skapa en trigger\",\n triggerOn: \"På \",\n triggerMakePagesVisible: \"Synligör sidor:\",\n triggerMakeQuestionsVisible: \"Synligör element:\",\n triggerCompleteText: \"Avsluta enkät vid verkställ.\",\n triggerNotSet: \"Trigger är inte satt\",\n triggerRunIf: \"Kör \",\n triggerSetToName: \"Ändra värden av: \",\n triggerFromName: \"Kopiera värden från: \",\n triggerRunExpression: \"Kör detta uttryck:\",\n triggerSetValue: \"till: \",\n triggerIsVariable: \"Var vänligen skriv ett giltigt uttryck.\",\n },\n //Property values\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"inherit\",\n show: \"show\",\n hide: \"hide\",\n default: \"default\",\n initial: \"initial\",\n random: \"random\",\n collapsed: \"collapsed\",\n expanded: \"expanded\",\n none: \"none\",\n asc: \"ascending\",\n desc: \"descending\",\n indeterminate: \"indeterminate\",\n decimal: \"decimal\",\n currency: \"currency\",\n percent: \"percent\",\n firstExpanded: \"firstExpanded\",\n off: \"off\",\n onPanel: \"onPanel\",\n onSurvey: \"onSurvey\",\n list: \"list\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n top: \"top\",\n bottom: \"bottom\",\n topBottom: \"top and bottom\",\n left: \"left\",\n color: \"color\",\n date: \"date\",\n datetime: \"datetime\",\n \"datetime-local\": \"datetime-local\",\n email: \"email\",\n month: \"month\",\n number: \"number\",\n password: \"password\",\n range: \"range\",\n tel: \"tel\",\n text: \"text\",\n time: \"time\",\n url: \"url\",\n week: \"week\",\n hidden: \"hidden\",\n on: \"on\",\n onPage: \"onPage\",\n edit: \"edit\",\n display: \"display\",\n onComplete: \"onComplete\",\n onHidden: \"onHidden\",\n all: \"all\",\n page: \"page\",\n survey: \"survey\",\n onNextPage: \"onNextPage\",\n onValueChanged: \"onValueChanged\",\n },\n //Operators\n op: {\n empty: \"is empty\",\n notempty: \"is not empty\",\n equal: \"equals\",\n notequal: \"not equals\",\n contains: \"contains\",\n notcontains: \"not contains\",\n greater: \"greater\",\n less: \"less\",\n greaterorequal: \"greater or equals\",\n lessorequal: \"less or equals\",\n },\n //Embed window\n ew: {\n angular: \"Använd Angular version\",\n jquery: \"Använd jQuery version\",\n knockout: \"Använd Knockout version\",\n react: \"Använd React version\",\n vue: \"Använd Vue version\",\n bootstrap: \"För bootstrap framework\",\n standard: \"Ingen bootstrap\",\n showOnPage: \"Visa enkät på en sida\",\n showInWindow: \"Visa enkäten i ett nytt fönster\",\n loadFromServer: \"Hämta enkäten som JSON från servern\",\n titleScript: \"Scripts och styles\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Välj sida för att testa den:\",\n showInvisibleElements: \"Visa osynliga element\",\n },\n validators: {\n answercountvalidator: \"answer count\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"expression\",\n numericvalidator: \"numeric\",\n regexvalidator: \"regex\",\n textvalidator: \"text\",\n },\n triggers: {\n completetrigger: \"Enkät slutförd\",\n setvaluetrigger: \"Sätt värde\",\n copyvaluetrigger: \"Kopiera värde\",\n runexpressiontrigger: \"Kör uttryck\",\n visibletrigger: \"Ändra synlighet\",\n },\n //Properties\n p: {\n name: \"name\",\n title: {\n name: \"title\",\n title: \"Lämna den tom, ifall det är samma som 'Name'\",\n },\n navigationButtonsVisibility: \"navigationButtonsVisibility\",\n questionsOrder: \"questionsOrder\",\n maxTimeToFinish: \"maxTimeToFinish\",\n visible: \"visible\",\n visibleIf: \"visibleIf\",\n questionTitleLocation: \"questionTitleLocation\",\n description: \"description\",\n state: \"state\",\n isRequired: \"isRequired\",\n indent: \"indent\",\n requiredErrorText: \"requiredErrorText\",\n startWithNewLine: \"startWithNewLine\",\n innerIndent: \"innerIndent\",\n page: \"page\",\n width: \"width\",\n commentText: \"commentText\",\n valueName: \"valueName\",\n enableIf: \"enableIf\",\n defaultValue: \"defaultValue\",\n correctAnswer: \"correctAnswer\",\n readOnly: \"readOnly\",\n validators: \"validators\",\n titleLocation: \"titleLocation\",\n hasComment: \"hasComment\",\n showOtherItem: \"hasOther\",\n choices: \"choices\",\n choicesOrder: \"choicesOrder\",\n choicesByUrl: \"choicesByUrl\",\n otherText: \"otherText\",\n otherErrorText: \"otherErrorText\",\n storeOthersAsComment: \"storeOthersAsComment\",\n label: \"label\",\n showTitle: \"showTitle\",\n valueTrue: \"valueTrue\",\n valueFalse: \"valueFalse\",\n cols: \"cols\",\n rows: \"rows\",\n optionsCaption: \"optionsCaption\",\n expression: \"expression\",\n format: \"format\",\n displayStyle: \"displayStyle\",\n currency: \"currency\",\n useGrouping: \"useGrouping\",\n showPreview: \"showPreview\",\n allowMultiple: \"allowMultiple\",\n imageHeight: \"imageHeight\",\n imageWidth: \"imageWidth\",\n storeDataAsText: \"storeDataAsText\",\n maxSize: \"maxSize\",\n html: \"html\",\n columns: \"columns\",\n cells: \"cells\",\n isAllRowRequired: \"isAllRowRequired\",\n horizontalScroll: \"horizontalScroll\",\n cellType: \"cellType\",\n columnsLayout: \"columnsLayout\",\n columnColCount: \"columnColCount\",\n columnMinWidth: \"columnMinWidth\",\n rowCount: \"rowCount\",\n minRowCount: \"minRowCount\",\n maxRowCount: \"maxRowCount\",\n keyName: \"keyName\",\n keyDuplicationError: \"keyDuplicationError\",\n confirmDelete: \"confirmDelete\",\n confirmDeleteText: \"confirmDeleteText\",\n addRowLocation: \"addRowLocation\",\n addRowText: \"addRowText\",\n removeRowText: \"removeRowText\",\n items: \"items\",\n itemSize: \"itemSize\",\n colCount: \"colCount\",\n templateTitle: \"templateTitle\",\n templateDescription: \"templateDescription\",\n allowAddPanel: \"allowAddPanel\",\n allowRemovePanel: \"allowRemovePanel\",\n panelCount: \"panelCount\",\n minPanelCount: \"minPanelCount\",\n maxPanelCount: \"maxPanelCount\",\n panelsState: \"panelsState\",\n panelAddText: \"panelAddText\",\n panelRemoveText: \"panelRemoveText\",\n panelPrevText: \"panelPrevText\",\n panelNextText: \"panelNextText\",\n showQuestionNumbers: \"showQuestionNumbers\",\n showRangeInProgress: \"showRangeInProgress\",\n renderMode: \"renderMode\",\n templateTitleLocation: \"templateTitleLocation\",\n rateValues: \"rateValues\",\n rateMin: \"rateMin\",\n rateMax: \"rateMax\",\n rateStep: \"rateStep\",\n minRateDescription: \"minRateDescription\",\n maxRateDescription: \"maxRateDescription\",\n inputType: \"inputType\",\n size: \"size\",\n locale: \"locale\",\n focusFirstQuestionAutomatic: \"focusFirstQuestionAutomatic\",\n completedHtml: \"completedHtml\",\n completedBeforeHtml: \"completedBeforeHtml\",\n loadingHtml: \"loadingHtml\",\n triggers: \"triggers\",\n cookieName: \"cookieName\",\n sendResultOnPageNext: \"sendResultOnPageNext\",\n showNavigationButtons: \"showNavigationButtons\",\n showPrevButton: \"showPrevButton\",\n showPageTitles: \"showPageTitles\",\n showCompletedPage: \"showCompletedPage\",\n showPageNumbers: \"showPageNumbers\",\n questionErrorLocation: \"questionErrorLocation\",\n showProgressBar: \"showProgressBar\",\n mode: \"mode\",\n goNextPageAutomatic: \"goNextPageAutomatic\",\n checkErrorsMode: \"checkErrorsMode\",\n clearInvisibleValues: \"clearInvisibleValues\",\n startSurveyText: \"startSurveyText\",\n pagePrevText: \"pagePrevText\",\n pageNextText: \"pageNextText\",\n completeText: \"completeText\",\n requiredText: \"requiredText\",\n questionStartIndex: \"questionStartIndex\",\n questionTitleTemplate: \"questionTitleTemplate\",\n firstPageIsStarted: \"firstPageIsStarted\",\n isSinglePage: \"isSinglePage\",\n maxTimeToFinishPage: \"maxTimeToFinishPage\",\n showTimerPanel: \"showTimerPanel\",\n showTimerPanelMode: \"showTimerPanelMode\",\n defaultPanelValue: \"defaultPanelValue\",\n defaultRowValue: \"defaultRowValue\",\n showNoneItem: \"hasNone\",\n noneText: \"noneText\",\n text: \"text\",\n minValue: \"minimum value\",\n maxValue: \"maximum value\",\n minLength: \"minumum length\",\n maxLength: \"maximum length\",\n allowDigits: \"allow digits\",\n minCount: \"minumum count\",\n maxCount: \"maximum count\",\n regex: \"regular expression\",\n },\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"sv\"] = svStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/tajik.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/tajik.ts ***!\n \\***********************************/\n/*! exports provided: tgStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tgStrings\", function() { return tgStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n//Uncomment this line on creating a translation file\n\nvar tgStrings = {\n // strings for survey templates\n survey: {\n edit: \"Тағйир додан\",\n externalHelpLink: \"Ёд гирифтани ташкил кардани саволномаҳо\",\n externalHelpLinkUrl: \"Https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Илтимос, элементи даркориро аз бастаи чап кашида биёред.\",\n copy: \"Нусхабардорӣ кардан\",\n addToToolbox: \"Илова кардан ба асбобҳо\",\n deletePanel: \"Нест кардани баста\",\n deleteQuestion: \"Нест кардани савол\",\n convertTo: \"Тағйир додани шакл ба\",\n drag: \"Кашидани элемент\"\n },\n // questionTypes\n qt: {\n default: \"Бо нобаёнӣ\",\n checkbox: \"Интихоби бисёр\",\n comment: \"Шарҳ\",\n imagepicker: \"Интихоби сурат\",\n dropdown: \"Рӯйхати таркишӣ\",\n file: \"Боркунии файлҳо\",\n HTML: \"HTML\",\n matrix: \"Матриса (интихоби танҳо)\",\n matrixdropdown: \"Матриса (интихоби бисёр)\",\n matrixdynamic: \"Матриса (сатрҳои динамикӣ)\",\n multipletext: \"Матнҳои бисёр\",\n panel: \"Баста (барои гурӯҳи саволҳо)\",\n paneldynamic: \"Баста (бастаҳои динамикӣ)\",\n radiogroup: \"Интихоби танҳо\",\n rating: \"Рейтинг (миқёс)\",\n text: \"Воридкунии матнӣ\",\n boolean: \"Қиммати булӣ\",\n expression: \"Ифода (танҳо барои хондан)\",\n flowPanel: \"Бастаи селоба\"\n },\n // Strings in Editor\n ed: {\n defaultLocale: \"Бо нобаёнӣ ({0})\",\n survey: \"Саволнома\",\n settings: \"Танзимоти саволнома\",\n opjectPropertiesHeader: \"Иловагӣ\",\n showObjectProperties: \"Нишон додани хусусиятҳои объект\",\n hideObjectProperties: \"Пинҳон додани хусусиятҳои объект\",\n editSurvey: \"Иваз намудани саволнома\",\n addNewPage: \"Сохтани саҳифаи нав\",\n moveRight: \"Ба рост тоб додан\",\n moveLeft: \"Ба чап тоб додан\",\n deletePage: \"Нест кардани саҳифа\",\n editPage: \"Тағйир додани саҳифа\",\n edit: \"Тағйир додан\",\n newPageName: \"саҳифа\",\n newQuestionName: \"савол\",\n newPanelName: \"баста\",\n newTextItemName: \"матн\",\n testSurvey: \"Санҷиши саволнома\",\n testSurveyAgain: \"Боз як бор санҷиш гузаронидан\",\n testSurveyWidth: \"Дарозии саволнома:\",\n logic: \"Мантиқи саволнома\",\n embedSurvey: \"Сабти саволнома\",\n translation: \"Тарҷума\",\n saveSurvey: \"Сабти саволнома\",\n designer: \"Дида баромадани конструктор\",\n jsonEditor: \"Тағйиркунаки JSON\",\n undo: \"Бекор кардан\",\n redo: \"Такрор\",\n options: \"Танзимотҳо\",\n generateValidJSON: \"Сохтани JSON-и дуруст\",\n generateReadableJSON: \"Сохтани JSON-и мехондагӣ\",\n toolbox: \"Бастаи асбобҳо\",\n toolboxGeneralCategory: \"Умумӣ\",\n delSelObject: \"Нест кардани объекти интихобшуда\",\n editSelObject: \"Тағйир додани объекти интихобшуда\",\n correctJSON: \"Илтимос, JSON-ро дуруст кунед.\",\n surveyResults: \"Натиҷаи ташхис:\",\n surveyResultsTable: \"Ҳамчун ҷадвал\",\n surveyResultsJson: \"Ҳамчун JSON\",\n resultsTitle: \"Сарлавҳаи савол\",\n resultsName: \"Мақсади савол\",\n resultsValue: \"Қиммати ҷавоб\",\n resultsDisplayValue: \"Қиммати нишондода\",\n modified: \"Тағйирдодашуда\",\n saving: \"Сабт\",\n saved: \"Сабтшуда\",\n saveError: \"Хатогӣ! Қиммати тағйиркунак сабт нашудааст.\",\n translationAddLanguage: \"Интихоби забон барои тарҷума\",\n translationShowAllStrings: \"Нишон додани ҳамаи сатрҳо\",\n translationShowAllPages: \"Нишон додани ҳамаи саҳифаҳо\",\n translationNoStrings: \"Сатрҳо барои тарҷума вуҷуд надоранд. Илтимос, филтрро тағйир диҳед.\",\n translationExportToSCVButton: \"Экспорт ба CSV\",\n translationImportFromSCVButton: \"Импорт аз CSV\",\n translationMergeLocaleWithDefault: \"Якҷоя кардани {0} бо локали нобаёнӣ\",\n bold: \"Ғавс\",\n italic: \"Қаҷ\",\n underline: \"Зерхат\",\n fpAddQuestion: \"Иловаи савол...\",\n completedHtmlOnConditionItemText: \"Нишон додан, агар:\",\n lg: {\n //Logic tab strings\n page_visibilityName: \"Намоиши саҳифа\",\n panel_visibilityName: \"Намоиши баста\",\n panel_enableName: \"Баста гирон/куштагӣ\",\n question_visibilityName: \"Намоиши савол\",\n question_enableName: \"Савол гирон/куштагӣ\",\n question_requireName: \"Савол ихтиёрӣ аст\",\n trigger_completeName: \"Назарсанҷӣ тамом шуд\",\n trigger_setvalueName: \"Сабти қиммати савол\",\n trigger_copyvalueName: \"Нусхабардорӣ кардани қиммати савол\",\n trigger_skipName: \"Гузаштан ба савол\",\n trigger_runExpressionName: \"Иҷро кардани ифодаи истифодабаранда\",\n completedHtmlOnConditionName: \"Матни истифодабаранда 'Саҳифаи ташаккурӣ'\",\n page_visibilityDescription: \"Саҳифаро намоён кардан, агар ифодаи мантиқӣ 'true' баргардонад. Вагарна онро нонамоён кардан.\",\n panel_visibilityDescription: \"Бастаро намоён кардан, агар ифодаи мантиқӣ 'true' баргардонад. Вагарна онро нонамоён кардан.\",\n panel_enableDescription: \"Бастаро ва ҳамаи элементҳои дохилии онро намоён кардан, агар ифодаи мантиқӣ 'true' баргардонад. Вагарна онро нонамоён кардан.\",\n question_visibilityDescription: \"Саволро намоён кардан, агар ифодаи мантиқӣ 'true' баргардонад. Вагарна онро нонамоён кардан.\",\n question_enableDescription: \"Саволро гирон кардан, агар ифодаи мантиқӣ 'true' баргардонад. Вагарна онро нонамоён кардан.\",\n question_requireDescription: \"Савол ҳатмӣ мешавад, вақте ки ифодаи мантиқӣ 'true' баргардонад.\",\n trigger_completeDescription: \"Вақте, ки ифодаи мантиқӣ 'true' баргардонад, он вақт ӯ ҳамчун тамом шуда ҳисобида мешавад ва истифодабар саҳифаи 'Саҳифаи ташаккурӣ'-ро мебинад.\",\n trigger_setvalueDescription: \"Вақте, ки қиммати саволҳо, ки дар ифодаи мантиқӣ истифода мешавад, тағйир мешаванд ва ифодаи мантиқӣ 'true' бармегардонад, он гоҳ ба саволи интихобшуда қиммат сабт мешавад.\",\n trigger_copyvalueDescription: \"Вақте, ки қимматҳои саволҳо, ки дар ифодаи мантиқӣ истифода мешаванд, тағйир меёбанд ва ифода қиммати 'true' бармегардонад, он гоҳ як қиммати саволи интихобшуда ба дигар савол нусхабардорӣ карда мешавад.\",\n trigger_skipDescription: \"Вақте, ки ифодаи мантиқӣ 'true' бармегардонад, он гоҳ саволнома ба саволи интихобшуда равона мешавад.\",\n trigger_runExpressionDescription: \"Вақте, ки ифодаи мантиқӣ 'true' бармегардонад, он гоҳ ифодаи истифодабар иҷро мешавад. Шумо, бо хоҳиш, метавонед натиҷаи ин ифодаро ба саволи интихобшуда бахшед.\",\n completedHtmlOnConditionDescription: \"Агар ифодаи мантиқӣ 'true' баргардонад, он гоҳ матн бо нобаёнӣ барои 'саҳифаи ташаккурӣ' тағйир мешавад ба ишорашуда.\",\n itemExpressionText: \"Вақте, ки ифода: '{0}' бармегардонад 'true':\",\n page_visibilityText: \"Саҳифаи {0}-ро намоён кардан \",\n panel_visibilityText: \"Бастаи {0}-ро намоён кардан\",\n panel_enableText: \"Бастаи {0}-ро гирон кардан\",\n question_visibilityText: \"Саволи {0}-ро намоён кардан\",\n question_enableText: \"Саволи {0}-ро намоён кардан\",\n question_requireText: \"Саволи {0}-ро ҳатмӣ кардан\",\n trigger_completeText: \"Саволнома ҳамчун анҷомшуда тағйир меёбад\",\n trigger_setvalueText: \"Ба саволи {0} қиммати {1}-ро сабт кардан\",\n trigger_copyvalueText: \"Нусхабардорӣ кардан ба саволи {0} қиммат аз саволи {1}\",\n trigger_skipText: \"Саволнома мегузарад ба саволи {0}\",\n trigger_runExpressionText1: \"Иҷро кардани ифодаи: '{0}'\",\n trigger_runExpressionText2: \"ва натиҷаи онро ба саволи {0} гузоштан\",\n completedHtmlOnConditionText: \"Нишон додани матни истифодабар дар 'Саҳифаи ташаккурӣ'\",\n expressionEditorTitle: \"Танзимоти мантиқи ифода\",\n deleteOperation: \"Нест кардани амалиёт\",\n addNewOperation: \"Илова кардани амалиёти(ҳои) нав\",\n expressionInvalid: \"Ифодаи мантиқӣ холӣ ё беэътибор мебошад. Илтимос, ислоҳ кунед.\",\n noOperationError: \"Илтимос, ақалан як амалиётро илова кунед.\",\n operationInvalid: \"Илтимос, хатогиҳоро дар амалиёт(ҳо)-и худ ислоҳ кунед.\"\n }\n },\n // Property names in table headers\n pel: {\n isRequired: \"Ҳатмӣ?\"\n },\n // Property Editors\n pe: {\n apply: \"Сабт\",\n ok: \"OK\",\n save: \"Сабт кардан\",\n cancel: \"Бекор кардан\",\n reset: \"Партофтан\",\n close: \"Махкам кардан\",\n delete: \"Нест кардан\",\n add: \"Илова кардан\",\n Addnew: \"Илова кардани нав\",\n addItem: \"Пахш кунед, барои илова кардани элемент...\",\n addOther: \"Дигар\",\n addSelectAll: \"Интихоб кардани ҳамаи нуқтаҳо\",\n addNone: \"Ҳичӣ\",\n removeAll: \"Ҳамаро нест кардан\",\n edit: \"Тағйир додан\",\n back: \"Бозгашт бе сабт\",\n saveAndBack: \"Сабт кардан ва бозгаштан\",\n itemValueEdit: \"Нишон додан, агар\",\n editChoices: \"Тағйир додани интихоб\",\n move: \"Ҷойивазкунӣ\",\n empty: \"<холӣ>\",\n notEmpty: \"<тағйир додани қиммат>\",\n fastEntry: \"Даромади тез\",\n formEntry: \"Формаи даромад\",\n testService: \"Тести хизматрасонӣ\",\n itemSelectorEmpty: \"Илтимос, элементро интихоб кунед\",\n conditionSelectQuestion: \"Саволро интихоб кунед ...\",\n conditionSelectPage: \"Саҳифаро интихоб кунед ...\",\n conditionSelectPanel: \"Бастаро интихоб кунед ...\",\n conditionValueQuestionTitle: \"Илтимос, қимматро ворид/интихоб кунед\",\n conditionButtonAdd: \"Илова кардан\",\n conditionButtonReplace: \"Иваз кардан\",\n conditionHelp: \"Илтимос, ифодаи мантиқиро ворид кунед. Бояд қиммати 'true' баргардонад, барои савол/саҳифа нобаён бошад, мисол:.. {Савол1} = 'қиммат1' ё ({Савол2} * {Савол4}> 20 ва {Савол3} <5)\",\n expressionHelp: \"Илтимос, ифодаро ворид кунед. Шумо метавонед қавзҳои ҷингиларо истифода кунед, барои дастрасӣ гирифтан ба қимматҳои савол: '{Савол1} + {Савол2}', '({нарх}*{шумора}) * (100 - {тахфиф}).\",\n aceEditorHelp: \"Тугмаҳои Ctrl+Пробел пахш кунед, барои гирифтани ишораҳои кӯмакӣ\",\n aceEditorRowTitle: \"Сатрҳои ҷорӣ\",\n aceEditorPanelTitle: \"Бастаи ҷорӣ\",\n showMore: \"Барои гирифтани маълумоти мушаххастар, илтимос, ба дастурамал гузаред\",\n conditionShowMoreUrl: \"Https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Саволҳои дастрас:\",\n cellsEmptyRowsColumns: \"Бояд ақалан як сатр ё сутун бошад\",\n propertyIsEmpty: \"Илтимос, қимматро ворид кунед\",\n propertyNameIsNotUnique: \"Лутфан як номи беҳамто ворид кунед\",\n listIsEmpty: \"Ҳолати нав илова кунед\",\n expressionIsEmpty: \"Ибораи холӣ аст\",\n value: \"Қиммат\",\n text: \"Матн\",\n rowid: \"ID-и сатр\",\n imageLink: \"Истинод ба сурат\",\n columnEdit: \"Иваз додани сутун: {0}\",\n itemEdit: \"Тағйир додани элемент: {0}\",\n url: \"URL\",\n path: \"Роҳ\",\n valueName: \"Номи нуқта\",\n titleName: \"Сарлавҳаи нуқта\",\n titlePlaceholder: \"Сарлавҳа ворид кунед\",\n surveyTitlePlaceholder: \"Сарлавҳаи пурсишро ворид кунед\",\n pageTitlePlaceholder: \"Сарлавҳаи саҳифаро ворид кунед\",\n descriptionPlaceholder: \"Тавсифро ворид кунед\",\n surveyDescriptionPlaceholder: \"Тавсифи пурсишро ворид кунед\",\n pageDescriptionPlaceholder: \"Тавсифи саҳифаро ворид кунед\",\n showOtherItem: \"Нуқтаи 'Дигар' вуҷуд аст\",\n otherText: \"Манти нуқтаи 'Дигар'\",\n showNoneItem: \"Ягон нуқта вуҷуд надорад\",\n noneText: \"Матни нуқтаи 'Ҳиҷӣ'\",\n hasSelectAll: \"Ҳамаи нуқтаҳоро интихоб кардан\",\n selectAllText: \"Матни нуқта 'Ҳамаи нуқтаҳоро интихоб кардан'\",\n choicesMin: \"Қиммати минималӣ барои элементҳои сохташуда бо роҳи автоматӣ\",\n choicesMax: \"Қиммати максималӣ барои элементҳои сохташуда бо роҳи автоматӣ\",\n choicesStep: \"Фарқият байни элементҳои сохташуда бо роҳи автоматӣ\",\n name: \"Ном\",\n title: \"Сарлавҳа\",\n cellType: \"Намдуи катакча\",\n ColCount: \"Шумораи сутунҳо\",\n choicesOrder: \"Интихоб кардани фармоиши интихоб\",\n visible: \"Нишон додан?\",\n isRequired: \"Ҳатмӣ?\",\n isAllRowRequired: \"Ҳамаи сатрҳо барои пуркунӣ ҳатмӣ мебошад\",\n requiredErrorText: \"Ин майдон баро пуркунӣ ҳатмист\",\n startWithNewLine: \"Аз сатри нав сар кардан?\",\n rows: \"Шумораи сатрҳо\",\n PlaceHolder: \"Ҷойдор\",\n showPreview: \"Нишон додани пешнамоиш?\",\n storeDataAsText: \"Нигоҳ доштани дохили файл дар формати JSON ҳамчун матн\",\n MaxSize: \"Андозаи максималии файл дар байт\",\n ImageHeight: \"Баландии сурат\",\n ImageWidth: \"Дарозии сурат\",\n rowCount: \"Шумораи сатрҳо\",\n columnLayout: \"Макети сутунҳо\",\n addRowLocation: \"Илова кардани ҷойи тугмаи сатр\",\n addRowText: \"Илова кардани матни тугмаи сатр\",\n removeRowText: \"Нест кардани тугмаи матн\",\n rateMin: \"Рейтинги минималӣ\",\n rateMax: \"Рейтинги максималӣ\",\n rateStep: \"Қадами рейтинг\",\n minRateDescription: \"Маълумот барои рейтинги минималӣ\",\n maxRateDescription: \"Маълумот барои рейтинги максималӣ\",\n inputType: \"Намуди дохилкунӣ\",\n optionsCaption: \"Танзимотҳои имзо\",\n DefaultValue: \"Қиммати нобаён\",\n cellsDefaultRow: \"Матни нобаёни катак\",\n surveyEditorTitle: \"Танзимоти саволнома\",\n qEditorTitle: \"Тағйир додани: {0}\",\n maxLength: \"Шумораи максималӣ\",\n buildExpression: \"Сохтан\",\n editExpression: \"Таҳрир кунед\",\n and: \"ВА\",\n or: \"Ё\",\n remove: \"Ҷойивазкунӣ\",\n addCondition: \"шарт илова кунед\",\n //survey\n showTitle: \"Нишон/пинҳон кардани сарлавҳа\",\n locale: \"Забон ба нобаён\",\n simulator: \"Таҷҳизотро интихоб кунед\",\n landscapeOrientation: \"Манзаравӣ\",\n mode: \"Намуд (тағйирот/намоиш)\",\n clearInvisibleValues: \"Тоза кардани қимматҳои ноёан\",\n cookieName: \"Номи Cookie (куштани такроран локалӣ гузаштани саволнома)\",\n sendResultOnPageNext: \"Нишон додани натиҷаи саволнома дар саҳифаи наздик\",\n storeOthersAsComment: \"Нигоҳ доштани қиммати 'Дигар' дар майдони алоҳида\",\n showPageTitles: \"Нишон додани сарлавҳаи саҳифа\",\n showPageNumbers: \"Нишон додани рақами саҳифа\",\n pagePrevText: \"Матн дар тугмаи 'Саҳифаи пештара'\",\n pageNextText: \"Матн дар тугмаи 'Саҳифаи оянда'\",\n completeText: \"Матн дар тугмаи 'Анҷом додан'\",\n startSurveyText: \"Матн дар тугмаи 'Сар кардан'\",\n showNavigationButtons: \"Нишон додани тугмаҳои новбарӣ (новбарии нобаён)\",\n showPrevButton: \"Нишон додани тугмаи 'Саҳифаи пештара' (истифодабар метавонад ба саҳифаи пештара баргардад)\",\n firstPageIsStarted: \"Саҳифаи якуми саволнома саҳифаи саршаванда мебошад.\",\n showCompletedPage: \"Нишон додани саҳифа бо матн дар анҷоми пуркунӣ (HTML-и саҳифаи анҷом)\",\n goNextPageAutomatic: \"Гузариш ба саҳифаи оянда ба роҳи автоматӣ дар ҳолати пуркунии ҳамаи саволҳо\",\n showProgressBar: \"Нишон додани пешравии пуркунӣ\",\n questionTitleLocation: \"Ҷойгиршавии сарлавҳаи савол\",\n requiredText: \"Аломат барои саволи ҳатмӣ\",\n questionStartIndex: \"Индекси саршавии савол (1, 2 ё 'A', 'а')\",\n showQuestionNumbers: \"Нишон додани номери савол\",\n questionTitleTemplate: \"Намунаи номи саволнома, ҳамчун нобаён: {матнро} {талаб} {намекунад}.\",\n questionErrorLocation: \"Ҷойгиркунии хатогии саволнома\",\n focusFirstQuestionAutomatic: \"Гузариш ба саволи якум дар ивазкунии саҳифа\",\n questionsOrder: \"Мураттабсозии элементҳо дар саҳифа\",\n maxTimeToFinish: \"Вақти максималӣ дар сонияҳо, барои пур кардани саволнома\",\n maxTimeToFinishPage: \"Вақти максималӣ дар сонияҳо, барои пур кардани саҳифаи саволнома\",\n showTimerPanel: \"Нишон додани бастаи вақтсанҷ\",\n showTimerPanelMode: \"Нишон додани ҳолати бастаи таймер\",\n RenderMode: \"Ҳолати визуализатсия\",\n allowAddPanel: \"Иҷозат додан ба илова кардани бастаҳо\",\n allowRemovePanel: \"Иҷозат додан ба нест кардани бастаҳо\",\n panelAddText: \"Иловаи матн ба баста\",\n panelRemoveText: \"Нест кардани матн ба баста\",\n isSinglePage: \"Нишон додани ҳамаи элементҳо дар як саҳифа\",\n HTML: \"HTML\",\n expression: \"Ифода\",\n minValue: \"Қиммати минималӣ\",\n maxValue: \"Қиммати максималӣ\",\n mINLENGTH: \"Дарозии минималӣ\",\n allowDigits: \"Иҷозат додани рақамҳо\",\n minCount: \"Шумораи минималӣ\",\n maxCount: \"Шумораи максималӣ\",\n regex: \"Ифодаи регулярӣ\",\n totalText: \"Тексти умумӣ\",\n totalType: \"Намуди умумӣ\",\n totalExpression: \"Ифодаи умумӣ\",\n totalDisplayStyle: \"Услуби намоиши умумӣ\",\n totalCurrency: \"Асъори умумӣ\",\n totalFormat: \"Намуди умумӣ\",\n // Header adorner\n logoPosition: \"Ҷойгиршавии логотип\",\n addLogo: \"Иловаи логотип...\",\n changeLogo: \"Тағйир додани логотип...\",\n logoPositions: {\n none: \"Разместить логотип\",\n left: \"Аз чап\",\n right: \"Дар тарафи рост\",\n top: \"Аз боло\",\n bottom: \"Аз поён\"\n },\n tabs: {\n general: \"Умумӣ\",\n fileOptions: \"Танзимотҳо\",\n HTML: \"Ивазкунаки HTML\",\n columns: \"Сутунҳо\",\n rows: \"Сатрҳо\",\n choices: \"Интихоб\",\n items: \"Элементҳо\",\n visibleIf: \"Нишон додан, агар\",\n enableIf: \"Дастрас аст, агар\",\n requiredIf: \"Ҳатмӣ барои пуркунӣ, агар\",\n rateValues: \"Баҳодиҳии қимматбаҳои савол\",\n choicesByUrl: \"Интихоб аз интернет\",\n matrixChoices: \"Интихоби нобаён\",\n multipleTextItems: \"Дохилкунии якчанд майдончаҳои матнӣ\",\n validators: \"Валидаторҳо\",\n navigation: \"Новбарӣ\",\n question: \"Савол\",\n completedHtml: \"HTML-и саҳифаи натиҷавӣ\",\n completedHtmlOnCondition: \"HTML-и саҳифаи натиҷавӣ дар шарти\",\n loadingHtml: \"Боркунии HTML\",\n timer: \"Вақтсанҷ/Викторина\",\n calculatedValues: \"Қимматҳои ҳисобкунӣ\",\n triggers: \"Триггерҳо\",\n templateTitle: \"Номи намуна\",\n totals: \"Натиҷаҳо\",\n logic: \"Мантиқ\",\n layout: \"Тарҳ\",\n data: \"Маълумот\",\n validation: \"Санҷед\",\n cells: \"Ҳуҷайраҳо\",\n showOnCompleted: \"Дар охир нишон диҳед\",\n logo: \"Логитип дар сарлавҳаи саволнома\",\n others: \"Дигар\"\n },\n editProperty: \"Тағйири хосияти '{0}'\",\n items: \"[Элементҳо: {0}]\",\n enterNewValue: \"Илтимос, қимматро ворид кунед.\",\n noquestions: \"Дар саволнома ягон савол нест\",\n createtrigger: \"Илтимос, триггерро созед\",\n triggerOn: \"О\",\n triggerMakePagesVisible: \"Саҳифаҳоро намоён кардан:\",\n triggerMakeQuestionsVisible: \"Элементҳоро номаён кардан:\",\n triggerCompleteText: \"Тамом кардани саволнома, агар ҳама иҷро шавад.\",\n triggerNotSet: \"Триггер сабт нашудааст.\",\n triggerRunIf: \"Сар кардан, агар\",\n triggerSetToName: \"Тағйири қиммат:\",\n triggerFromName: \"Нусхабардорӣ кардани қиммат аз:\",\n triggerRunExpression: \"Иҷро кардани ин ифода:\",\n triggerSetValue: \"ба:\",\n triggerGotoName: \"Гузариш ба савол:\",\n triggerIsVariable: \"Тағйирёбандаро ба натиҷаи саволнома нагузоштан.\",\n triggerRunExpressionEmpty: \"Илтимос, қиммати дурустро ворид кунед.\"\n },\n // Property values\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"Меросгирӣ кардан\",\n show: \"Нишон додан\",\n hide: \"Пинҳон кардан\",\n default: \"Нобаёнӣ\",\n initial: \"Тартиботи аввала\",\n random: \"Тартиботи тасодуфӣ\",\n collapsed: \"Қатъ шуд\",\n expanded: \"Зиёд шуд\",\n none: \"Не\",\n asc: \"Ба калоншавӣ\",\n desc: \"Ба камшавӣ\",\n indeterminate: \"Номуайян\",\n decimal: \"Даҳӣ\",\n currency: \"Асъор\",\n percent: \"Фоизҳо\",\n firstExpanded: \"Якум зиёд шудааст\",\n off: \"Куштан\",\n onPanel: \"Дар баста\",\n onSurvey: \"Дар саволнома\",\n list: \"Рӯйхат\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"Уфуқӣ\",\n vertical: \"Амудӣ\",\n top: \"Аз боло\",\n bottom: \"Аз поён\",\n topBottom: \"Аз боло ва поён\",\n left: \"Чап\",\n color: \"Ранг\",\n date: \"Сана\",\n datetime: \"Сана ва вақт\",\n \"datetime-local\": \"Сана ва вақти маҳаллӣ\",\n email: \"Email\",\n month: \"Моҳ\",\n number: \"Рақам\",\n password: \"Рамз\",\n range: \"Диапазон\",\n tel: \"Телефон\",\n text: \"Матн\",\n time: \"Вақт\",\n url: \"URL\",\n week: \"Ҳафта\",\n hidden: \"Пинҳон\",\n on: \"Гирондан\",\n onPage: \"Дар саҳифа\",\n edit: \"Тағйир додан\",\n display: \"Намоиш\",\n onComplete: \"Пас аз анҷом\",\n onHidden: \"Пас аз пинҳон\",\n all: \"Ҳама\",\n page: \"Саҳифа\",\n survey: \"Саволнома\",\n onNextPage: \"Дар гузариш ба саҳифаи оянда\",\n onValueChanged: \"Дар тағйири қиммат\"\n },\n // Operators\n op: {\n empty: \"пур накарда\",\n notempty: \"пур карда\",\n equal: \"баробар\",\n notequal: \"нобаробар\",\n contains: \"дар бар дорад\",\n notcontains: \"дар бар надорад\",\n anyof: \"ҳар як аз\",\n allof: \"ҳама аз\",\n greater: \"зиёдтар\",\n less: \"камтар\",\n greaterorequal: \"калон ё баробар\",\n lessorequal: \"кам ё баробар\"\n },\n // Embed window\n ew: {\n angular: \"Истифода баред версияи Angular\",\n jquery: \"Истифода баред версияи jQuery\",\n knockout: \"Истифода баред версияи Knockout\",\n react: \"Истифода баред версияи React\",\n vue: \"Истифода баред версияи Vue\",\n bootstrap: \"Барои китобхонаи bootstrap\",\n standard: \"Бе китобхонаи bootstrap\",\n showOnPage: \"Нишон додани саволнома дар саҳифа\",\n showInWindow: \"Нишон додани саволнома дар равзанаи модалӣ\",\n loadFromServer: \"Бор кардани Json саволнома аз сервер\",\n titleScript: \"Скриптҳо и услубҳо\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n // Опрос Тест\n ts: {\n selectPage: \"Саҳифаро интихоб кунед, барои санҷидани ин:\",\n showInvisibleElements: \"Нишон додани элементҳои пинҳон\"\n },\n validators: {\n answercountvalidator: \"Шумораи ҷавобҳо\",\n EmailValidator: \"Email\",\n expressionvalidator: \"Ишора\",\n numericvalidator: \"Рақам\",\n regexvalidator: \"Ишораи регулярӣ\",\n textvalidator: \"Матн\"\n },\n triggers: {\n completetrigger: \"Анҷом додани саволнома\",\n setvaluetrigger: \"Гузоштани қиммат\",\n copyvaluetrigger: \"Нусхабардорӣ кардани қиммат\",\n skiptrigger: \"Гузариш ба саволи\",\n runexpressiontrigger: \"Иҷро кардани ишора\",\n visibletrigger: \"Тағйир кардани намоиш (тавсия дода намешавад)\"\n },\n // Properties\n p: {\n name: \"Ном\",\n title: {\n name: \"Ном\",\n title: \"Холӣ гузоред, агар номи ӯ ҳамчун 'Ном' бошад\"\n },\n navigationButtonsVisibility: \"Нишон додани тугмаҳои новбарӣ\",\n questionsOrder: \"Мураттабсозии элементҳо дар саҳифа\",\n maxTimeToFinish: \"Вақти максималӣ барои анҷом додан\",\n visible: \"Аён аст\",\n visibleIf: \"Нишон додан, агар\",\n questionTitleLocation: \"Ҷойгиршавии сарлавҳаи савол\",\n description: \"Шарҳ\",\n state: \"Ҳолат\",\n isRequired: \"Ҳатмӣ\",\n requiredIf: \"Ҳатмист, агар\",\n indent: \"Нишон\",\n requiredErrorText: \"Ин майдон барои пуркунӣ ҳатмист\",\n startWithNewLine: \"Аз сатри нав сар кардан\",\n innerIndent: \"Нишони дарунӣ\",\n page: \"Саҳифа\",\n width: \"Дарозӣ\",\n commentText: \"Шарҳ\",\n valueName: \"Номи қиммат\",\n enableIf: \"Дастрас аст дар шарти\",\n defaultValue: \"Қиммат бо нобаён\",\n correctAnswer: \"Ҷавоби дуруст\",\n readOnly: \"Танҳо барои хониш\",\n validators: \"Валидаторҳо\",\n titleLocation: \"Ҷойгиршавии сарлавҳа\",\n hasComment: \"Шарҳ вуҷуд аст\",\n showOtherItem: \"Қиммати 'Дигар' вуҷуд аст\",\n choices: \"Интихоб\",\n choicesOrder: \"Интихоби фармоиши интихоб\",\n choicesByUrl: \"Интихоб аз интернет\",\n otherText: \"Элементи матнии дигар\",\n otherErrorText: \"Матни хатогии майдони 'Дигар'\",\n storeOthersAsComment: \"Нигоҳ доштани майдони 'Дигар', ҳамчун шарҳ\",\n label: \"Миёнабур\",\n showTitle: \"Нишон додани ном\",\n valueTrue: \"Дуруст\",\n valueFalse: \"Нодуруст\",\n cols: \"Сутунҳо\",\n rows: \"Сатрҳо\",\n placeholder: \"Ҷойдор\",\n optionsCaption: \"Танзимотҳои имзо\",\n expression: \"Ишора\",\n format: \"Намуд\",\n displayStyle: \"Услуби намоиш\",\n currency: \"Асъор\",\n useGrouping: \"Истифодаи гуруҳбандӣ\",\n showPreview: \"Нишон додани пешнамоиш\",\n allowMultiple: \"Интихоби якчанд\",\n imageHeight: \"Баландии сурат\",\n imageWidth: \"Дарозии сурат\",\n storeDataAsText: \"Нигоҳ доштани қиммат ҳамчун матн\",\n maxSize: \"Андозаи максималӣ\",\n html: \"HTML\",\n columns: \"Сутунҳо\",\n cells: \"Майдонҳо\",\n isAllRowRequired: \"Ҳамаи сатрҳо ҳатмист барои пуркунӣ\",\n horizontalScroll: \"Скролли уфуқӣ\",\n cellType: \"Намуди майдонча\",\n columnsLayout: \"Макети сутунҳо\",\n columnColCount: \"Шумораи сутунҳо\",\n columnMinWidth: \"Дарозии минималии сутун\",\n rowCount: \"Шумораи сатрҳо\",\n minRowCount: \"Шумораи минималии сатрҳо\",\n maxRowCount: \"Шумораи максималии сатрҳо\",\n keyName: \"Номи калид\",\n keyDuplicationError: \"Хатогӣ! Ин калид аллакай вуҷуд дорад, номи дигарро ишора кунед.\",\n confirmDelete: \"Несткуниро тасдиқ кунед\",\n confirmDeleteText: \"Матни хат барои тасдиқи несткунӣ\",\n addRowLocation: \"Илова кардани ҷойгиршавии сутунҳо\",\n addRowText: \"Илова кардани тугмаи сатри матн\",\n removeRowText: \"Нест кардани тугмаи сатри матн\",\n items: \"Элементҳо\",\n itemSize: \"Андозаи элементҳо\",\n colCount: \"Шумораи сутунҳо\",\n templateTitle: \"Сарлавҳаи намуна\",\n templateDescription: \"Шарҳи намуна\",\n allowAddPanel: \"Иҷозат додани илова кардани баста\",\n allowRemovePanel: \"Иҷозат додани нест кардани баста\",\n panelCount: \"Шумораи бастаҳо\",\n minPanelCount: \"Шумораи минималии бастаҳо\",\n maxPanelCount: \"Шумораи максималии бастаҳо\",\n panelsState: \"Ҳолати бастаҳо\",\n panelAddText: \"Матни хат дар иловакунии баста\",\n panelRemoveText: \"Матни хат дар несткунии баста\",\n panelPrevText: \"Матни хати бастаи пештара\",\n panelNextText: \"Матни хати бастаи оянда\",\n showQuestionNumbers: \"Нишон додани рақами саволҳо\",\n showRangeInProgress: \"Нишон додани пешравии пуркунӣ\",\n renderMode: \"Намуди аён\",\n templateTitleLocation: \"Ҷойгиршавии сарлавҳаи намуна\",\n rateValues: \"Баҳодиҳии қимматбаҳоии саволнома\",\n rateMin: \"Рейтинги минималӣ\",\n rateMax: \"Рейтинги максималӣ\",\n rateStep: \"Қадами рейтинг\",\n minRateDescription: \"Шарҳ барои рейтинги минималӣ\",\n maxRateDescription: \"Шарҳ барои рейтинги максималӣ\",\n inputType: \"Намуди дохилкунӣ\",\n size: \"Андоза\",\n locale: \"Равия\",\n focusFirstQuestionAutomatic: \"Гузариш ба саволи якум пас аз тағйир додани саҳифа\",\n completedHtml: \"HTML-и саҳифаи охирон\",\n completedHtmlOnCondition: \"HTML-и саҳифаи охирон дар шарти\",\n loadingHtml: \"Боркунии HTML\",\n triggers: \"триггерҳо\",\n cookieName: \"номи Cookie\",\n sendResultOnPageNext: \"Нишон додани натиҷаи саволнома дар саҳифаи наздик\",\n showNavigationButtons: \"Нишон додани тугмаҳои новбарӣ (новбарии нобаён)\",\n showPrevButton: \"Нишон додани тугмаи 'Саҳифаи пештара' (истифодабар метавонад гузаштан ба саҳифаи пештара)\",\n showPageTitles: \"Нишон додани номи саҳифа\",\n showCompletedPage: \"Нишон додани саҳифа бо матн дар анҷом (HTML-и саҳифаи натиҷавӣ)\",\n showPageNumbers: \"Нишон додани рақамҳои саҳифа\",\n questionErrorLocation: \"Гузориши хатогиҳои саволнома\",\n showProgressBar: \"Нишон додани пешравии пуркунӣ\",\n mode: \"Намуд\",\n goNextPageAutomatic: \"Гузариш бо роҳи автоматӣ ба саҳаифаи оянда дар ҳолати ҷавоб додан ба ҳамаи саволҳо\",\n checkErrorsMode: \"Намуди санҷиши хатогиҳо\",\n clearInvisibleValues: \"Тоза кардани қимматҳои ноаён\",\n startSurveyText: \"Матн дар тугмаи 'Сар кардан'\",\n pagePrevText: \"Матн дар тугмаи 'Саҳифаи пештара'\",\n pageNextText: \"Матн дар тугмаи 'Саҳифаи оянда'\",\n completeText: \"Матн дар тугмаи 'Тамом кардан'\",\n requiredText: \"Аломат барои саволи ҳатмӣ\",\n questionStartIndex: \"Индекси саршаванда дар саволнома (1, 2 ё 'A', 'а')\",\n questionTitleTemplate: \"Намунаи номи саволнома, ҳамчун нобаён: {матнро} {талаб} {намекунад}.\",\n firstPageIsStarted: \"Якум саҳифаи саволнома саҳифаи саршаванда мебошад.\",\n isSinglePage: \"Нишон додани ҳамаи элементҳо дар як саҳифа\",\n maxTimeToFinishPage: \"Вақти максималӣ дар сонияҳо, барои пур кардани саҳифаи саволнома\",\n showTimerPanel: \"Нишон додани бастаи вақтсанҷ\",\n showTimerPanelMode: \"Нишон додани намуди бастаи вақтсанҷ\",\n defaultPanelValue: \"Қимматҳои бастаи нобаён\",\n defaultRowValue: \"Қимматҳои сатри нобаён\",\n showNoneItem: \"Ягон нуқта нест\",\n noneText: \"Матни нуқтаи 'Ҳеҷ чиз'\",\n text: \"Матн\"\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"tg\"] = tgStrings;\n\n\n/***/ }),\n\n/***/ \"./src/localization/traditional-chinese.ts\":\n/*!*************************************************!*\\\n !*** ./src/localization/traditional-chinese.ts ***!\n \\*************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar traditionalChineseTranslation = {\n // strings for survey templates\n survey: {\n edit: \"編輯\",\n dropQuestion: \"請將問題放置於此\",\n copy: \"複製\",\n addToToolbox: \"添加到工具箱\",\n deletePanel: \"刪除面板\",\n deleteQuestion: \"刪除題目\",\n convertTo: \"轉變為\"\n },\n // strings for question types\n qt: {\n checkbox: \"多項選擇\",\n comment: \"多行文本框\",\n dropdown: \"下拉框\",\n file: \"文件上傳\",\n html: \"Html 代碼\",\n matrix: \"矩陣 (單選題)\",\n matrixdropdown: \"矩陣 (下拉框)\",\n matrixdynamic: \"矩陣 (動態問題)\",\n multipletext: \"文本框組\",\n panel: \"面板\",\n paneldynamic: \"面板(動態)\",\n radiogroup: \"單項選擇\",\n rating: \"評分\",\n text: \"文本框\",\n boolean: \"布林選項\",\n expression: \"表達式\"\n },\n // strings for editor\n ed: {\n survey: \"調查問卷\",\n editSurvey: \"修改\",\n addNewPage: \"添加新頁面\",\n deletePage: \"刪除頁面\",\n editPage: \"編輯頁面\",\n newPageName: \"頁面\",\n newQuestionName: \"問題\",\n newPanelName: \"面板\",\n testSurvey: \"測試問卷\",\n testSurveyAgain: \"再次測試問卷\",\n testSurveyWidth: \"問卷寬度: \",\n embedSurvey: \"將問卷嵌入網頁\",\n saveSurvey: \"保存問卷\",\n designer: \"問卷設計器\",\n jsonEditor: \"JSON 編輯器\",\n undo: \"還原\",\n redo: \"重做\",\n options: \"選項\",\n generateValidJSON: \"生成 JSON\",\n generateReadableJSON: \"生成易讀的 JSON\",\n toolbox: \"工具箱\",\n delSelObject: \"刪除所選對象\",\n editSelObject: \"編輯所選對象\",\n correctJSON: \"修正 JSON\",\n surveyResults: \"問卷結果: \",\n modified: \"已修改\",\n saving: \"保存中...\",\n saved: \"已保存\"\n },\n //Property names in table headers\n pel: {\n isRequired: \"是否為必填項?\"\n },\n // strings for property editors\n pe: {\n apply: \"應用\",\n ok: \"確定\",\n cancel: \"取消\",\n reset: \"重置\",\n close: \"關閉\",\n delete: \"刪除\",\n addNew: \"新建\",\n removeAll: \"全部刪除\",\n edit: \"編輯器\",\n empty: \"<空>\",\n fastEntry: \"快速輸入\",\n formEntry: \"表單輸入\",\n testService: \"測試服務\",\n showMore: \"更多細節...\",\n conditionHelp: \"請輸入一個布林表達式。當布林值為真,問題/頁面可見。例如:{question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"請輸入一項條件判斷。當條件判斷為真時問題/頁面將可見。例如: {question1} = 'value1' or ({question2} = 3 and {question3} < 5)\",\n propertyIsEmpty: \"請為該屬性設定一個值\",\n value: \"值\",\n text: \"顯示文本\",\n columnEdit: \"編輯列: {0}\",\n itemEdit: \"編輯選項: {0}\",\n showOtherItem: \"可添加其他答案?\",\n otherText: \"其他答案文本\",\n url: \"URL\",\n path: \"Path\",\n valueName: \"Value name\",\n titleName: \"Title name\",\n name: \"題目名\",\n title: \"題目文本\",\n cellType: \"單元格類型\",\n colCount: \"列數\",\n choicesOrder: \"設置選項順序\",\n visible: \"是否可見?\",\n isRequired: \"是否為必填項?\",\n startWithNewLine: \"問題是否新起一行?\",\n rows: \"文本框行數\",\n placeholder: \"占位文本\",\n showPreview: \"是否顯示圖像預覽?\",\n storeDataAsText: \"以 JSON 文本方式存儲文件\",\n maxSize: \"文件最大尺寸 (Bytes)\",\n imageHeight: \"圖片高度\",\n imageWidth: \"圖片寬度\",\n rowCount: \"默認行數\",\n addRowText: \"添加條目按鈕文本\",\n removeRowText: \"刪除條目按鈕文本\",\n minRateDescription: \"最小值提示\",\n maxRateDescription: \"最大值提示\",\n inputType: \"文本框類型\",\n optionsCaption: \"下拉框提示語\",\n qEditorTitle: \"編輯問題: {0}\",\n //survey\n showTitle: \"顯示/隱藏 標題\",\n locale: \"默認語言\",\n mode: \"模式 (編輯/只讀)\",\n clearInvisibleValues: \"清除隱藏值\",\n cookieName: \"Cookie name (to disable run survey two times locally)\",\n sendResultOnPageNext: \"Send survey results on page next\",\n storeOthersAsComment: \"Store 'others' value in separate field\",\n showPageTitles: \"顯示頁面標題\",\n showPageNumbers: \"顯示頁數\",\n pagePrevText: \"前一頁按鈕文本\",\n pageNextText: \"後一頁按鈕文本\",\n completeText: \"完成按鈕文本\",\n startSurveyText: \"開始按鈕文本\",\n showNavigationButtons: \"顯示導航按鈕 (默認導航)\",\n showPrevButton: \"顯示前一頁按鈕 (用戶可返回至前一頁面)\",\n firstPageIsStarted: \"調查的第一頁面為起始頁.\",\n showCompletedPage: \"結尾展示完成後的頁面 (completedHtml)\",\n goNextPageAutomatic: \"回答本頁所有問題後,自動跳轉到下一頁\",\n showProgressBar: \"顯示進度條\",\n questionTitleLocation: \"問題的標題位置\",\n requiredText: \"The question required symbol(s)\",\n questionStartIndex: \"問題起始標誌 (1, 2 or 'A', 'a')\",\n showQuestionNumbers: \"顯示問題編號\",\n questionTitleTemplate: \"問題標題模板, 默認為: '{no}. {require} {title}'\",\n questionErrorLocation: \"問題錯誤定位\",\n focusFirstQuestionAutomatic: \"改變頁面時聚焦在第一個問題\",\n questionsOrder: \"Elements order on the page\",\n maxTimeToFinish: \"完成調查的最長時間\",\n maxTimeToFinishPage: \"完成調查中頁面的最長時間\",\n showTimerPanel: \"顯示計時器面板\",\n showTimerPanelMode: \"顯示計時器面板模式\",\n renderMode: \"渲染模式\",\n allowAddPanel: \"允許添加面板\",\n allowRemovePanel: \"允許刪除面板\",\n panelAddText: \"添加面板文本\",\n panelRemoveText: \"刪除面板文本\",\n isSinglePage: \"在一個頁面上展示所有元素\",\n tabs: {\n general: \"通用項\",\n navigation: \"導航\",\n question: \"問題\",\n completedHtml: \"完成後的Html\",\n loadingHtml: \"加載中的Html\",\n timer: \"問卷計時器\",\n trigger: \"觸發器\",\n fileOptions: \"選項\",\n html: \"HTML 編輯器\",\n columns: \"設置列\",\n rows: \"設置行\",\n choices: \"設置選項\",\n visibleIf: \"設置可見條件\",\n enableIf: \"Enable If\",\n rateValues: \"設置評分值\",\n choicesByUrl: \"通過 URL 導入選項\",\n matrixChoices: \"默認選項\",\n multipleTextItems: \"文本輸入\",\n validators: \"校驗規則\"\n },\n editProperty: \"編輯屬性: '{0}'\",\n items: \"[ 項目數量: {0} ]\",\n enterNewValue: \"請設定值\",\n noquestions: \"問卷中還沒有創建任何問題\",\n createtrigger: \"請創建觸發器\",\n triggerOn: \"當 \",\n triggerMakePagesVisible: \"使頁面可見:\",\n triggerMakeQuestionsVisible: \"使問題可見:\",\n triggerCompleteText: \"如果滿足條件,則完成問卷\",\n triggerNotSet: \"觸發器尚未設置\",\n triggerRunIf: \"滿足下列條件時執行\",\n triggerSetToName: \"修改下列問題值: \",\n triggerSetValue: \"修改為: \",\n triggerIsVariable: \"在問卷提交結果中不要包含該變量\"\n },\n // strings for operators\n op: {\n empty: \"為空\",\n notempty: \"不為空\",\n equal: \"等於\",\n notequal: \"不等於\",\n contains: \"包含\",\n notcontains: \"不包含\",\n greater: \"大於\",\n less: \"小於\",\n greaterorequal: \"大於等於\",\n lessorequal: \"小於等於\"\n },\n // strings for embed window\n ew: {\n angular: \"使用 Angular 時\",\n jquery: \"使用 JQuery 時\",\n knockout: \"使用 Knockout 時\",\n react: \"使用 React 時\",\n vue: \"使用 Vue 時\",\n bootstrap: \"使用 Bootstrap 時\",\n standard: \"不使用 Bootstrap 時\",\n showOnPage: \"嵌入頁面顯示\",\n showInWindow: \"使用單獨的問卷視窗\",\n loadFromServer: \"從服務器加載問卷 JSON 數據\",\n titleScript: \"腳本和樣式\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n validators: {\n answercountvalidator: \"數量檢查\",\n emailvalidator: \"Email\",\n numericvalidator: \"數字\",\n regexvalidator: \"正則表達式\",\n textvalidator: \"文本\"\n },\n triggers: {\n completetrigger: \"完成問卷\",\n setvaluetrigger: \"設置問題值\",\n visibletrigger: \"修改可見性\"\n },\n // strings of properties\n p: {\n commentText: \"備註文本\",\n choices: \"選項\",\n choicesByUrl: \"Url選項\",\n choicesOrder: \"選項排序\",\n colCount: \"列數\",\n correctAnswer: \"正確答案\",\n defaultVaule: \"預設選項\",\n description: \"說明\",\n enableIf: \"允許判斷\",\n hasComment: \"hasComment\",\n showOtherItem: \"允許其他答案\",\n otherText: \"其他答案文本\",\n page: \"所在頁面\",\n readOnly: \"只讀\",\n indent: \"縮排\",\n isRequired: \"必填\",\n requiredErrorText: \"requiredErrorText\",\n otherErrorText: \"requiredErrorText\",\n startWithNewLine: \"允許問題在新行\",\n //survey\n showTitle: \"顯示/隱藏 標題\",\n locale: \"默認語言\",\n mode: \"模式 (編輯/只讀)\",\n clearInvisibleValues: \"清除隱藏值\",\n cookieName: \"Cookie name (to disable run survey two times locally)\",\n sendResultOnPageNext: \"Send survey results on page next\",\n storeOthersAsComment: \"Store 'others' value in separate field\",\n showPageTitles: \"顯示頁面標題\",\n showPageNumbers: \"顯示頁數\",\n pagePrevText: \"前一頁按鈕文本\",\n pageNextText: \"後一頁按鈕文本\",\n completeText: \"完成按鈕文本\",\n startSurveyText: \"開始按鈕文本\",\n showNavigationButtons: \"顯示導航按鈕 (默認導航)\",\n showPrevButton: \"顯示前一頁按鈕 (用戶可返回至前一頁面)\",\n firstPageIsStarted: \"調查的第一頁面為起始頁.\",\n showCompletedPage: \"結尾展示完成後的頁面 (completedHtml)\",\n goNextPageAutomatic: \"回答本頁所有問題後,自動跳轉到下一頁\",\n showProgressBar: \"顯示進度條\",\n questionTitleLocation: \"問題的標題位置\",\n requiredText: \"The question required symbol(s)\",\n questionStartIndex: \"問題起始標志 (1, 2 or 'A', 'a')\",\n showQuestionNumbers: \"顯示問題編號\",\n questionTitleTemplate: \"問題標題模板, 默認為: '{no}. {require} {title}'\",\n questionErrorLocation: \"問題錯誤定位\",\n focusFirstQuestionAutomatic: \"改變頁面時聚焦在第一個問題\",\n questionsOrder: \"頁面中元素的順序\",\n maxTimeToFinish: \"完成調查的最長時間\",\n maxTimeToFinishPage: \"完成調查中頁面的最長時間\",\n showTimerPanel: \"顯示計時器面板\",\n showTimerPanelMode: \"顯示計時器面板模式\",\n renderMode: \"渲染模式\",\n allowAddPanel: \"允許添加面板\",\n allowRemovePanel: \"允許刪除面板\",\n panelAddText: \"添加面板文本\",\n panelRemoveText: \"刪除面板文本\",\n isSinglePage: \"在一個頁面上展示所有元素\",\n name: \"名字\",\n title: {\n name: \"標題\",\n title: \"如果與名字相同,請設置為空值\"\n },\n survey_title: {\n name: \"標題\",\n title: \"問卷標題在每頁上都會顯示\"\n },\n page_title: {\n name: \"標題\",\n title: \"頁面標題\"\n }\n }\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"zh-tw\"] = traditionalChineseTranslation;\n\n\n/***/ }),\n\n/***/ \"./src/localization/turkish.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/turkish.ts ***!\n \\*************************************/\n/*! exports provided: turkishStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"turkishStrings\", function() { return turkishStrings; });\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\nvar turkishStrings = {\n //survey templates\n survey: {\n edit: \"Düzenle\",\n externalHelpLink: \"Nasıl anket oluşturulur izle\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Lütfen araç kutusundan bir soru sürükleyin.\",\n addLogicItem: \"Anket akışını özelleştirmek için bir kural oluşturun.\",\n copy: \"Kopyala\",\n addToToolbox: \"Araç kutusuna ekle\",\n deletePanel: \"Paneli Sil\",\n deleteQuestion: \"Soruyu Sil\",\n convertTo: \"Çevir\",\n drag: \"Nesne sürükleyin\",\n },\n //questionTypes\n qt: {\n default: \"Varsayılan\",\n checkbox: \"Onay Kutusu\",\n comment: \"Yorum\",\n imagepicker: \"Resim seçici\",\n image: \"Resim\",\n dropdown: \"Seçim Kıutusu\",\n file: \"Dosya\",\n html: \"Html\",\n matrix: \"Matrix (tek seçim)\",\n matrixdropdown: \"Matrix (çoklu seçim)\",\n matrixdynamic: \"Matrix (dinamik satır)\",\n multipletext: \"Çoklu Yazı\",\n panel: \"Panel\",\n paneldynamic: \"Panel (dinamik panel)\",\n radiogroup: \"Seçim Grubu\",\n rating: \"Değerlendirme\",\n text: \"Tek Girdi\",\n boolean: \"Mantıksal İfade\",\n expression: \"İfade (düzenlenemez)\",\n signaturepad: \"İmza Defteri\",\n flowpanel: \"Akış Paneli\",\n },\n //Strings in Editor\n ed: {\n defaultLocale: \"Varyayılan ({0})\",\n survey: \"Anket\",\n settings: \"Anket Ayarları\",\n settingsTooltip: \"Anket ayarlarını aç\",\n //opjectPropertiesHeader: \"Gelişmiş\",\n //showObjectProperties: \"Nesne Özelliklerini Göster\",\n //hideObjectProperties: \"Nesne Özelliklerini Gizle\",\n showPanel: \"Paneli Göster\",\n hidePanel: \"Paneli Gizle\",\n //editSurvey: \"Anketi Düzenle\",\n addNewPage: \"Yeni Sayfa Ekle\",\n moveRight: \"Sağa sürükle\",\n moveLeft: \"Sola sürükle\",\n deletePage: \"Sayfayı Sil\",\n editPage: \"Sayfayı Düzenle\",\n edit: \"Düzenle\",\n newPageName: \"Sayfa\",\n newQuestionName: \"Soru\",\n newPanelName: \"Panel\",\n newTextItemName: \"Yazı\",\n testSurvey: \"Anketi Test Et\",\n testSurveyAgain: \"Anketi Tekrar Test Et\",\n testSurveyWidth: \"Anket genişliği: \",\n navigateToMsg: \"Şuraya git:\",\n logic: \"Mantıksal Anket\",\n embedSurvey: \"Gömülü Anket\",\n translation: \"Çeviri\",\n saveSurvey: \"Anketi Kaydet\",\n saveSurveyTooltip: \"Anketi Kaydet\",\n designer: \"Anket Tasarımı\",\n jsonEditor: \"JSON Editor\",\n undo: \"Geri\",\n redo: \"İleri\",\n undoTooltip: \"Son değişikliği geri al\",\n redoTooltip: \"Son değişikliği ileri al\",\n options: \"Seçenekler\",\n generateValidJSON: \"JSON Oluştur\",\n generateReadableJSON: \"Okunabilir JSON oluştur\",\n toolbox: \"Araç Kutusu\",\n \"property-grid\": \"Özellikler\",\n toolboxGeneralCategory: \"Genel\",\n //delSelObject: \"Seçili nesneyi sil\",\n //editSelObject: \"Seçili nesneyi düzenle\",\n correctJSON: \"JSON nesnesini doğrular.\",\n surveyResults: \"Anket Sonucu: \",\n surveyResultsTable: \"Tablo olarak\",\n surveyResultsJson: \"JSON olarak\",\n resultsTitle: \"Soru başlığı\",\n resultsName: \"Soru adı\",\n resultsValue: \"Cevap değeri\",\n resultsDisplayValue: \"Görünen değer\",\n modified: \"Düzenlendi\",\n saving: \"Kaydediliyor\",\n saved: \"Kaydedildi\",\n saveError: \"Hata! Editor içerisi kaydedilmedi.\",\n translationAddLanguage: \"Çeviri için dil seçiniz\",\n translationShowAllStrings: \"Tüm yazıları göster\",\n translationShowAllPages: \"Tüm sayfaları göster\",\n translationNoStrings: \"Çevrilecek yazı yok. Lütfen, filtreyi değiştirin.\",\n translationExportToSCVButton: \"CSV dışa çıkart\",\n translationImportFromSCVButton: \"CSV içe aktar\",\n translationMergeLocaleWithDefault: \"{0} varsayılan çeviri ile sıkıştır\",\n bold: \"Kalın\",\n italic: \"Italik\",\n underline: \"Alt Çizgi\",\n fpAddQuestion: \"Soru Ekle...\",\n //completedHtmlOnConditionItemText: \"Göster Eğer:\",\n lg: {\n //Logic tab strings\n page_visibilityName: \"Sayfa görünürse\",\n panel_visibilityName: \"Panel görünürse\",\n panel_enableName: \"Panel aktif/pasif ise\",\n question_visibilityName: \"Soru görüürse\",\n question_enableName: \"Soru aktif/pasifse\",\n question_requireName: \"Soru isteğe bağlı zorunluysa\",\n trigger_completeName: \"Anketi tamamla\",\n trigger_setvalueName: \"Soru değerini güncelle\",\n trigger_copyvalueName: \"Soru değerini kopyala\",\n trigger_skipName: \"Soruyu atla\",\n trigger_runExpressionName: \"Varsayılan ifadeyi çalıştır\",\n completedHtmlOnConditionName: \"Varyalın 'Teşekkür sayfası' yazısı\",\n page_visibilityDescription: \"Mantıksal sorgu geçerli olduğu zaman sayfayı görünür yap. Aksi takdirde gizle.\",\n panel_visibilityDescription: \"Mantıksal sorgu geçerli olduğu zaman paneli görünür yap. Aksi takdirde gizle.\",\n panel_enableDescription: \"Panel oluştur ve tüm nesneleri panelin içine al. Mantıksal sorgu geçerli olduğunda paneli aktif et. Aksi takdirde tümünü pasifleştir.\",\n question_visibilityDescription: \"Mantıksal sorgu geçerli olduğunda soruyu görünür yap. Aksi takdirde gizle.\",\n question_enableDescription: \"Mantıksal sorgu geçerli olduğunda soruyu aktif yap. Aksi takdirde pasifleştir.\",\n question_requireDescription: \"Mantıksal sorgu geçerli olduğunda soruyu zorunlu olarak düzenle.\",\n trigger_completeDescription: \"Mantıksal sorgu geçerli olduğunda anketi tamamla ve son kullanıya 'Teşekkür sayfası'nı göster.\",\n trigger_setvalueDescription: \"Mantık ifadesinde kullanılan soru değerleri değiştirildiğinde ve mantık ifadesi true değerini döndürdüğünde, değer seçilen soruya ayarlansın.\",\n trigger_copyvalueDescription: \"Mantık ifadesinde kullanılan soru değerleri değiştirildiğinde ve mantık ifadesi true değerini döndürdüğünde, seçilen bir sorunun değeri seçilen başka bir soruya kopyalansın.\",\n trigger_skipDescription: \"Mantıksal ifade geçerli olduğunda anket seçilen soruya atlasın / odaklansın.\",\n trigger_runExpressionDescription: \"Mantksal ifade geçerli olduğunda ve özel ifade gereçli olur. İsteğe bağlı olarak bu ifade sonucunu seçilen soruya ayarlayabilirsiniz.\",\n completedHtmlOnConditionDescription: \"Eğer mantıksa ifade geçerli olursa, varsayılan ''Teşekkürler sayfası' yazısı girilen ile dğeiştirilsin.\",\n itemExpressionText: \"Mantıksal ifade: '{0}' geçerli olsun:\",\n page_visibilityText: \"{0} sayfayı görünür yap\",\n panel_visibilityText: \"{0} paneli görünür yap\",\n panel_enableText: \"{0} panel aktif olur\",\n question_visibilityText: \"{0} soruyu görünür yap\",\n question_enableText: \"{0} soruyu aktif yap\",\n question_requireText: \"{0} cevabı zorunlu yap\",\n trigger_completeText: \"Anket tamamlandı\",\n trigger_setvalueText: \"Sorunun içine: {0} değer {1}\",\n trigger_copyvalueText: \"Sorusundan {1}, {0} değerini, soruya kopyala\",\n trigger_skipText: \"Soruya geç {0}\",\n trigger_runExpressionText1: \"Mantıksal ifadeyi çalıştır: '{0}'\",\n trigger_runExpressionText2: \" ve sonuç değerini soruya ekle: {0}\",\n completedHtmlOnConditionText: \"Özel 'Teşekkürler sayfasını' göster.\",\n conditions: \"Koşul(lar)\",\n actions: \"Olay(lar)\",\n expressionEditorTitle: \"Koşul(ları) tanımla\",\n actionsEditorTitle: \"Olay(ları) tanımla\",\n deleteAction: \"Olayı Sil\",\n addNewAction: \"Yeni olay ekle\",\n selectedActionCaption: \"Eklemek için bir olay seçin...\",\n expressionInvalid: \"Mantıksal ifade boş veya geçersiz. Lütfen düzenleyin.\",\n noActionError: \"Lütfen, En az bir olay seçiniz.\",\n actionInvalid: \"Lütfen, Olay(lar)daki sorunları gideriniz.\",\n expressionSetup: \"\",\n actionsSetup: \"\",\n },\n },\n //Property names in table headers\n // pel: {\n // isRequired: \"Required?\"\n // },\n //Property Editors\n pe: {\n apply: \"Uygula\",\n ok: \"TAMAM\",\n save: \"Kaydet\",\n cancel: \"İptal\",\n reset: \"Sıfırla\",\n refresh: \"Yenile\",\n // close: \"Close\",\n delete: \"Sil\",\n add: \"Ekle\",\n addNew: \"Yeni Ekle\",\n addItem: \"Yeni nesne ekleme için tıklayınız...\",\n addOther: \"Diğer\",\n addSelectAll: \"Tümünü Seç\",\n addNone: \"Hiçbiri\",\n removeAll: \"Tümünü Sil\",\n edit: \"Düzenle\",\n back: \"Kaydetmeden çık\",\n saveAndBack: \"Kaydet ve çık\",\n // itemValueEdit: \"Visible If\",\n editChoices: \"Seçenekleri düzenle\",\n showChoices: \"Seçenekleri göster\",\n move: \"Hareket\",\n empty: \"\",\n // notEmpty: \"\",\n fastEntry: \"Hızlı Giriş\",\n formEntry: \"Form Girişi\",\n testService: \"Servisi test et\",\n itemSelectorEmpty: \"Lütfen nesneyi seçiniz\",\n conditionActionEmpty: \"Lütfen olayı seçiniz\",\n conditionSelectQuestion: \"Soruyu seç...\",\n conditionSelectPage: \"Sayfayı seç...\",\n conditionSelectPanel: \"Paneli seç...\",\n conditionValueQuestionTitle: \"Lütfen değer/seçenek giriniz\",\n // conditionHelp:\n // \"Please enter a boolean expression. It should return true to keep the question/page visible. For example: {question1} = 'value1' or ({question2} * {question4} > 20 and {question3} < 5)\",\n expressionHelp: \"Lütfen mantıksal ifade giriniz. Soru değerlerine erişmek için süslü parantez kullanabilirsiniz: '{question1} + {question2}', '({price}*{quantity}) * (100 - {discount})'\",\n aceEditorHelp: \"Mantıksal ifade kopyası için ctrl+space tuşlarına basınız\",\n aceEditorRowTitle: \"Geçerli satır\",\n aceEditorPanelTitle: \"Geçerli panel\",\n showMore: \"Daha fazla bilgi için dokümantasyonu inceleyiniz\",\n // conditionShowMoreUrl:\n // \"https://surveyjs.io/Documentation/LibraryParameter?id=Question¶meter=visibleIf\",\n assistantTitle: \"Erişilebilir sorular:\",\n cellsEmptyRowsColumns: \"En az bir kolon veya satır olmalı\",\n propertyIsEmpty: \"Lütfen değer giriniz\",\n propertyNameIsNotUnique: \"Lütfen benzersiz bir isim giriniz\",\n listIsEmpty: \"Yeni eleman ekle\",\n expressionIsEmpty: \"Mantıksal ifade boş\",\n value: \"Değer\",\n text: \"Yazı\",\n rowid: \"Satır ID\",\n imageLink: \"Resim linki\",\n columnEdit: \"Kolonu düzenle: {0}\",\n itemEdit: \"Eleman düzenle: {0}\",\n url: \"URL\",\n path: \"Yol\",\n valueName: \"Değer adı\",\n titleName: \"Başlık adı\",\n titlePlaceholder: \"Başlık\",\n surveyTitlePlaceholder: \"Anket başlığı\",\n pageTitlePlaceholder: \"Sayfa başlığı\",\n descriptionPlaceholder: \"Bir açıklama giriniz\",\n surveyDescriptionPlaceholder: \"Anket açıklaması giriniz\",\n pageDescriptionPlaceholder: \"Sayfa açıklaması giriniz\",\n hasComment: \"Yorumu var\",\n showOtherItem: \"Başka bir öğeye sahip\",\n otherText: \"Diğer eleman metni\",\n showClearButton: \"Temizleme butonunu göster\",\n allowEmptyResponse: \"Boş cevaba izin ver\",\n showNoneItem: \"Hiçbir elemana sahip değil\",\n noneText: \"Hiçbir eleman metni\",\n hasSelectAll: \"Tüm elemanlar seçildi\",\n selectAllText: \"Tüm elemanların yazısını seç\",\n choicesMin: \"Otomatik oluşturulan öğeler için minimum değer\",\n choicesMax: \"Otomatik oluşturulan öğeler için maksimum değer\",\n choicesStep: \"Otomatik oluşturulan öğeler arasındaki fark\",\n showOptionsCaption: \"Seçeneklerin başlığını göster\",\n name: \"isim\",\n title: \"Başlık\",\n cellType: \"Hücre tipi\",\n colCount: \"Kolon sayısı\",\n choicesOrder: \"Seçenek sırasını seç\",\n visible: \"Görünür?\",\n isRequired: \"Zorunlu?\",\n defaultValueExpression: \"Varsayılan değer tanımı\",\n isAllRowRequired: \"Tüm satırlar zorunlu\",\n requiredErrorText: \"Zorunlu hata yazısı\",\n startWithNewLine: \"Yeni satırla başla?\",\n rows: \"Satır sayısı\",\n cols: \"Kolon sayısı\",\n placeholder: \"Giriş varsayılan içeriği\",\n showPreview: \"Resim önizleme gösteriliyor mu?\",\n showPreviewBeforeComplete: \"Tamamlanmadan önce önizlemeyi göster\",\n storeDataAsText: \"Dosya içeriğini JSON sonucunda metin olarak depola\",\n maxSize: \"Bayt cinsinden maksimum dosya boyutu\",\n imageHeight: \"Resim yüksekliği\",\n imageWidth: \"Resim genişliği\",\n rowCount: \"Satır sayısı\",\n columnLayout: \"Kolon yerleşimi\",\n addRowLocation: \"Satır butonu konumu ekle\",\n addRowText: \"Satır butonu yazısı ekle\",\n removeRowText: \"Satır butonu yazısını kaldır\",\n rateMin: \"Minimum oran\",\n rateMax: \"Maksimum oran\",\n rateStep: \"Oylama adımı\",\n minRateDescription: \"Minimum oran açıklaması\",\n maxRateDescription: \"Maksimum oran açıklaması\",\n inputType: \"Girdi tipi\",\n optionsCaption: \"Seçenekler başlığı\",\n defaultValue: \"Varsayılan değer\",\n cellsDefaultRow: \"Varsayılan hücre yazısı\",\n surveyEditorTitle: \"Anket ayarlarını düzenle\",\n qEditorTitle: \"Düzenle: {0}\",\n maxLength: \"Maksimum uzunluk\",\n buildExpression: \"Kur\",\n editExpression: \"Düzenle\",\n and: \"Ve\",\n or: \"Veya\",\n remove: \"Kaldır\",\n addCondition: \"Koşul ekle\",\n //survey\n showTitle: \"Başlığı göster/gizle\",\n locale: \"Varsayılan dil\",\n simulator: \"Cihaz seçin\",\n landscapeOrientation: \"Yatay\",\n mode: \"Mod (düzenlebilir/düzenlenemez)\",\n clearInvisibleValues: \"Görünmez değerleri sil\",\n cookieName: \"Çerez adı (anketi yerel olarak iki kez devre dışı bırakmak için)\",\n sendResultOnPageNext: \"Bir sonraki sayfada anket sonuçlarını gönder\",\n storeOthersAsComment: \"'Diğerleri' değerini ayrı alanda depolayın\",\n showPageTitles: \"Sayfa başlıklarını göster\",\n showPageNumbers: \"Sayfa numaralarını göster\",\n pagePrevText: \"Önceki sayfa butonu metni\",\n pageNextText: \"Yeni sayfa butonu metni\",\n completeText: \"Tamamla butonu metni\",\n previewText: \"Önizleme düğmesi metni\",\n editText: \"Düğme metnini düzenle\",\n startSurveyText: \"Başla butonu yazısı\",\n showNavigationButtons: \"Gezinme butonlarını göster (varsayılan gezinme)\",\n showPrevButton: \"Önceki butonu göster (kullanıcı önceki sayfaya dönebilir)\",\n firstPageIsStarted: \"Anketteki ilk sayfa bir başlangıç sayfasıdır.\",\n showCompletedPage: \"Tamamlanan sayfayı en sonunda göster (HTML)\",\n goNextPageAutomatic: \"Tüm soruları cevaplarken otomatik olarak sonraki sayfaya git\",\n focusOnFirstError: \"İlk hataya odaklan\",\n showProgressBar: \"İlerleme çubuğunu göster\",\n questionTitleLocation: \"Soru başlığı konumu\",\n questionTitlePattern: \"Soru başlığı kalıbı\",\n requiredText: \"Zorunlu soru sembolü\",\n questionStartIndex: \"Soru indeksi (1, 2 veya 'A', 'a' gibi)\",\n showQuestionNumbers: \"Soru numarasını göster\",\n questionTitleTemplate: \"Soru başlığı şablonu, varsayılan değer: '{no}. {require} {title}'\",\n questionErrorLocation: \"Soru hatası konumu\",\n focusFirstQuestionAutomatic: \"İlk soruyu sayfayı değiştirmeye odakla\",\n questionsOrder: \"Sayfadaki öğelerin sırası\",\n maxTextLength: \"Maksimum metin uzunluğu\",\n maxOthersLength: \"Maksimum diğerleri uzunluğu\",\n maxTimeToFinish: \"Anketi bitirmek için maksimum süre\",\n maxTimeToFinishPage: \"Ankette bir sayfayı bitirmek için maksimum süre\",\n showTimerPanel: \"Zamanlayıcı panelini göster\",\n showTimerPanelMode: \"Zamanlayıcı paneli modunu göster\",\n renderMode: \"İşleme modu\",\n allowAddPanel: \"Panel eklemeye izin ver\",\n allowRemovePanel: \"Panel silmeye izin ver\",\n panelAddText: \"Panel ekleme metni\",\n panelRemoveText: \"Panel silme metni\",\n isSinglePage: \"Tüm öğeleri tek bir sayfada göster\",\n html: \"Html\",\n expression: \"Mantıksal İfade\",\n minValue: \"Minimum değer\",\n maxValue: \"Maksimum değer\",\n minLength: \"Minimum uzunluk\",\n allowDigits: \"Rakamlara izin ver\",\n minCount: \"Minimum miktar\",\n maxCount: \"Maksimum miktar\",\n regex: \"Düzenli ifade\",\n totalText: \"Toplam metni\",\n totalType: \"Toplam tipi\",\n totalExpression: \"Toplam mantıksal ifade\",\n totalDisplayStyle: \"Toplam görünüm\",\n totalCurrency: \"Toplam para birimi\",\n totalFormat: \"Toplam format\",\n // Header adorner\n logoPosition: \"Logo pozisyonu\",\n addLogo: \"Logo ekle...\",\n changeLogo: \"Logoyu değiştir...\",\n logoWidth: \"Logo genişlik\",\n logoHeight: \"Logo uzunluk\",\n logoFit: \"Logo uygunluğu\",\n logoPositions: {\n none: \"Logoyu kaldır\",\n left: \"Sol\",\n right: \"Sağ\",\n top: \"Üstte\",\n bottom: \"Altta\",\n },\n tabs: {\n general: \"Genel\",\n fileOptions: \"Seçenekler\",\n html: \"Html Editor\",\n columns: \"Kolonlar\",\n rows: \"Satırlar\",\n choices: \"Seçenekler\",\n items: \"Elemanlar\",\n visibleIf: \"Göster eğer\",\n enableIf: \"Pasifleştir Eğer\",\n requiredIf: \"Zorunlu Eğer\",\n rateValues: \"Oran değerleri\",\n choicesByUrl: \"Webten seçenekler\",\n matrixChoices: \"Varsayılan seçenekler\",\n multipleTextItems: \"Yazı girdileri\",\n numbering: \"Rakamlama\",\n validators: \"Doğrulayıcılar\",\n navigation: \"Gezinme\",\n question: \"Soru\",\n pages: \"Sayfalar\",\n completedHtml: \"Tamamlanmış HTML\",\n completedHtmlOnCondition: \"Koşulda HTML tamamlandı\",\n loadingHtml: \"Bekleme HTMLi\",\n timer: \"Zamanlayıcı / Sınav\",\n calculatedValues: \"Hesaplanan Değerler\",\n triggers: \"Tetikleyiciler\",\n templateTitle: \"Şablon başlığı\",\n totals: \"Toplamlar\",\n logic: \"Mantık\",\n layout: \"Şablon\",\n data: \"Veri\",\n validation: \"Doğrulayıcı\",\n cells: \"Hücreler\",\n showOnCompleted: \"Tamamlandı Göster\",\n logo: \"Anket Başlığında Logo\",\n others: \"Diğer\",\n },\n editProperty: \"Özelliği düzenle '{0}'\",\n items: \"[ Elemanlar: {0} ]\",\n enterNewValue: \"Lütfen, değer girin.\",\n noquestions: \"Ankette herhangi bir soru yok.\",\n createtrigger: \"Lütfen bir tetikleyici oluşturun\",\n keyboardAdornerTip: \"Öğeyi düzenlemek için enter butonuna basın, öğeyi silmek için sil butonuna basın, öğeyi taşımak için kontrol artı ok yukarı veya ok tuşuna basın\",\n triggerOn: \"Açık \",\n triggerMakePagesVisible: \"Sayfaları görünür yap:\",\n triggerMakeQuestionsVisible: \"Elemanları görünür yap:\",\n triggerCompleteText: \"Başarılı olursa anketi tamamlayın.\",\n triggerNotSet: \"Tetikleyici ayarlanmadı\",\n triggerRunIf: \"Çalıştır eğer\",\n triggerSetToName: \"Değerini şuradan değiştir: \",\n triggerFromName: \"Değerini şuradan kopyala: \",\n triggerRunExpression: \"Mantıksal ifadeyi çalıştır:\",\n triggerSetValue: \"şuraya: \",\n triggerGotoName: \"Soruya git:\",\n triggerIsVariable: \"Değişkeni anket sonucuna koymayın.\",\n triggerRunExpressionEmpty: \"Lütfen geçerli bir ifade girin\",\n },\n //Property values\n pv: {\n true: \"Doğru\",\n false: \"Yanlış\",\n inherit: \"Başlangıç\",\n show: \"Göster\",\n hide: \"Gizle\",\n default: \"Varsayılan\",\n initial: \"Başlangıç\",\n random: \"Rastgele\",\n collapsed: \"Kapalı\",\n expanded: \"Genişletilmiş\",\n none: \"Yok\",\n asc: \"Artan\",\n desc: \"Azalan\",\n indeterminate: \"Belirsiz\",\n decimal: \"Ondalık\",\n currency: \"Para birimi\",\n percent: \"Yüzde\",\n firstExpanded: \"firstExpanded\",\n off: \"Kapalı\",\n onPanel: \"Panelde\",\n onSurvey: \"Ankette\",\n list: \"Liste\",\n progressTop: \"progressTop\",\n progressBottom: \"progressBottom\",\n progressTopBottom: \"progressTopBottom\",\n horizontal: \"Yatay\",\n vertical: \"Dikey\",\n top: \"Üst\",\n bottom: \"Alt\",\n topBottom: \"Üst ve alt\",\n both: \"Her ikiside\",\n left: \"Sol\",\n color: \"Renk\",\n date: \"Tarih\",\n datetime: \"Saat ile birlikte tarih\",\n \"datetime-local\": \"datetime-local\",\n email: \"Email\",\n month: \"Ay\",\n number: \"Sayı\",\n password: \"Şifre\",\n range: \"Aralık\",\n tel: \"Telefon\",\n text: \"Yazı\",\n time: \"Zaman\",\n url: \"Url\",\n week: \"Hafta\",\n hidden: \"Gizli\",\n on: \"Açık\",\n onPage: \"Sayfada\",\n edit: \"Düzenle\",\n display: \"Görüntüle\",\n onComplete: \"Tamamlandığında\",\n onHidden: \"Gizlendiğinde\",\n all: \"Tümü\",\n page: \"Sayfa\",\n survey: \"Anket\",\n onNextPage: \"Sonraki sayfada\",\n onValueChanged: \"Değer değiştiğinde\",\n singlePage: \"Tek sayfa\",\n standard: \"Standart\",\n questionPerPage: \"Sayfa başına soru\",\n noPreview: \"Önizleme yok\",\n showAllQuestions: \"Tüm soruları göster\",\n showAnsweredQuestions: \"Cevaplanan soruları göster\",\n questions: \"Sorular\",\n requiredQuestions: \"Gerekli sorular\",\n correctQuestions: \"Doğru sorular\",\n buttons: \"Butonlar\",\n underInput: \"Giriş altında\",\n underTitle: \"Başlık altında\",\n image: \"Görsel\",\n contain: \"İçer\",\n cover: \"Kapsa\",\n fill: \"Doldur\"\n },\n //Operators\n op: {\n empty: \"boş\",\n notempty: \"boş değil\",\n equal: \"eşittir\",\n notequal: \"eşit değildir\",\n contains: \"içerir\",\n notcontains: \"içermez\",\n anyof: \"herhangi biri\",\n allof: \"tümü\",\n greater: \"büyüktür\",\n less: \"küçüktür\",\n greaterorequal: \"büyük eşittir\",\n lessorequal: \"küçük eşittir\",\n },\n //Embed window\n ew: {\n angular: \"Angular versiyonu kullan\",\n jquery: \"Jquery versiyonu kullan\",\n knockout: \"Knockout versiyonu kullan\",\n react: \"React versiyonu kullan\",\n vue: \"Vue versiyonu kullan\",\n bootstrap: \"Bootstrap\",\n standard: \"Bootstrapsız\",\n showOnPage: \"Bir sayfada anket göster\",\n showInWindow: \"Anketi bir pencerede göster\",\n loadFromServer: \"Anket JSON'u sunucudan yükle\",\n titleScript: \"Scriptler ve stiller\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\",\n },\n //Test Survey\n ts: {\n selectPage: \"Test edilecek sayfayı seçin:\",\n showInvisibleElements: \"Görünmez öğeleri göster\",\n },\n validators: {\n answercountvalidator: \"cevap sayısı\",\n emailvalidator: \"e-mail\",\n expressionvalidator: \"ifade\",\n numericvalidator: \"numerik\",\n regexvalidator: \"regex\",\n textvalidator: \"text\",\n },\n triggers: {\n completetrigger: \"anketi tamamla\",\n setvaluetrigger: \"değeri ayarla\",\n copyvaluetrigger: \"değeri kopyala\",\n skiptrigger: \"soruyu atla\",\n runexpressiontrigger: \"mantıksal ifadeyi çalıştır\",\n visibletrigger: \"görünürlüğü değiştir (kullanımdan kaldırıldı)\",\n },\n //Properties\n p: {\n name: \"adı\",\n title: {\n name: \"başlık\",\n title: \"'Ad' ile aynıysa boş bırakın\",\n },\n navigationButtonsVisibility: \"Navigasyon butonları görünürlüğü\",\n questionsOrder: \"Soru sırası\",\n maxTimeToFinish: \"Bitirmek için maksimum zaman\",\n visible: \"Görünür\",\n visibleIf: \"Görünür eğer\",\n questionTitleLocation: \"Soru başlığı konumu\",\n questionDescriptionLocation: \"Soru açıklaması konumu\",\n description: \"Açıklama\",\n state: \"Durum\",\n isRequired: \"Gerekli mi?\",\n requiredIf: \"Eğer gerekli mi?\",\n indent: \"Paragraf\",\n requiredErrorText: \"Gerekli hatası yazısı\",\n startWithNewLine: \"Yeni satırla başla\",\n innerIndent: \"İç paragraf\",\n page: \"Sayfa\",\n width: \"Genişlik\",\n commentText: \"Yorum yazısı\",\n valueName: \"Değer adı\",\n enableIf: \"Etkin eğer\",\n defaultValue: \"Varsayılan değer\",\n correctAnswer: \"Doğru cevap\",\n readOnly: \"Sadece okunur\",\n validators: \"Doğrulayıcılar\",\n titleLocation: \"Başlık konumu\",\n descriptionLocation: \"Açıklama konumu\",\n minWidth: \"Minimum genişlik\",\n maxWidth: \"Maksimum genişlik\",\n useDisplayValuesInDynamicTexts: \"Başlıkta görünen değeri kullan\",\n hasComment: \"Yorum var mı?\",\n showOtherItem: \"Diğerleri var mı?\",\n choices: \"Seçenekler\",\n choicesOrder: \"Seçenek sırası\",\n choicesByUrl: \"URL'e göre seçimler\",\n otherText: \"Diğer yazı\",\n otherErrorText: \"Diğer yazı hatası yazısı\",\n storeOthersAsComment: \"Diğerlerini yorum olarak depola\",\n label: \"Başlık\",\n labelTrue: \"Doğru başlık\",\n labelFalse: \"Yanlış başlık\",\n showTitle: \"Başlığı göster\",\n valueTrue: \"Doğru değeri\",\n valueFalse: \"Yanlış değeri\",\n multiSelect: \"Çoklu Seçim\",\n contentMode: \"İçerik modu\",\n imageFit: \"Görsel'u uyumlandır\",\n showLabel: \"Başlığı göster\",\n cols: \"Sütunlar\",\n rows: \"Satırlar\",\n placeholder: \"Yer tutucu\",\n optionsCaption: \"Seçenek başlığı\",\n expression: \"Tanım\",\n format: \"format\",\n displayStyle: \"Görünüm biçimi\",\n currency: \"Para birimi\",\n useGrouping: \"Gruplamayı kullan\",\n showPreview: \"Önizlemeyi göster\",\n allowMultiple: \"Çokluya izin ver\",\n imageHeight: \"Görsel uzunluğu\",\n imageWidth: \"Görsel genişliği\",\n storeDataAsText: \"Verileri yazı olarak depola\",\n maxSize: \"Maksimum büyüklük\",\n html: \"html\",\n columns: \"Sütunlar\",\n cells: \"Hücreler\",\n isAllRowRequired: \"Tüm satırlar gerekli mi?\",\n horizontalScroll: \"Yatay kaydırma\",\n cellType: \"Hücre tipi\",\n columnsLayout: \"Sütün düzeni\",\n columnColCount: \"Sütün Sayısı\",\n columnMinWidth: \"Minimum sütün genişliği\",\n rowCount: \"Satır sayısı\",\n minRowCount: \"Minimum satır sayısı\",\n maxRowCount: \"Maksimum satır sayısı\",\n keyName: \"Anahtar adı\",\n keyDuplicationError: \"Anahtar çoğaltma hatası\",\n confirmDelete: \"Silmeyi onayla\",\n confirmDeleteText: \"Silmeyi onaylama yazısı\",\n addRowLocation: \"Satır ekleme konumu\",\n addRowText: \"Satır ekleme yazısı\",\n removeRowText: \"Satır yazısını kaldır\",\n items: \"Öğeler\",\n itemSize: \"Öğe boyutu\",\n colCount: \"Sütun sayısı\",\n templateTitle: \"Şablon başlığı\",\n templateDescription: \"Şablon açıklaması\",\n allowAddPanel: \"Panel eklemeye izin ver\",\n allowRemovePanel: \"Panel kaldırmaya izin ver\",\n panelCount: \"Panel sayısı\",\n minPanelCount: \"Minimum panel sayısı\",\n maxPanelCount: \"Maksimum panel sayısı\",\n panelsState: \"Panellerin durumu\",\n panelAddText: \"Panel ekleme yazısı\",\n panelRemoveText: \"Panel kaldırma yazısı\",\n panelPrevText: \"Önceki panel yazısı\",\n panelNextText: \"Sonraki panel yazısı\",\n showQuestionNumbers: \"Soru sayısını göster\",\n textUpdateMode: \"Metin güncelleme modu\",\n showRangeInProgress: \"İlerleme durumunu göster\",\n renderMode: \"Render modu\",\n templateTitleLocation: \"Şablon başlık konumu\",\n rateValues: \"Oran değerleri\",\n rateMin: \"Minimum oran\",\n rateMax: \"Maksimum oran\",\n rateStep: \"rateStep\",\n minRateDescription: \"Minimum oran açıklaması\",\n maxRateDescription: \"Maksimum oran açıklaması\",\n inputType: \"Giriş tipi\",\n size: \"Büyüklük\",\n locale: \"lokal\",\n focusFirstQuestionAutomatic: \"Otomatik ilk soruya odakla\",\n completedHtml: \"Tamamlanmış html\",\n completedBeforeHtml: \"Tamamlanmadan önceki html\",\n loadingHtml: \"Html yükleniyor\",\n triggers: \"tetikleyiciler\",\n cookieName: \"cookie adı\",\n sendResultOnPageNext: \"Sonuçları sonraki sayfaya gönder\",\n showNavigationButtons: \"Navigasyon butonlarını göster\",\n showPrevButton: \"Önceki butonunu göster\",\n showPageTitles: \"Sayfa başlığını göster\",\n navigateToUrl: \"URL'ye git\",\n navigateToUrlOnCondition: \"Koşullu olarak url'ye gidin\",\n completedHtmlOnCondition: \"Koşullu html tamamlandı\",\n showCompletedPage: \"Tamamlanmış sayfayı göster\",\n showPageNumbers: \"Sayfa numarasını göster\",\n questionErrorLocation: \"Soru hatası konumu\",\n showProgressBar: \"İlerleme çubuğunu göster\",\n progressBarType: \"İlerleme çubuğu türü\",\n questionsOnPageMode: \"Sayfa modundaki sorular\",\n mode: \"Mod\",\n goNextPageAutomatic: \"Bir sonraki sayfaya otomatik geç\",\n checkErrorsMode: \"Hataları kontrol et modu\",\n clearInvisibleValues: \"Görünmeyen değerleri temizle\",\n startSurveyText: \"Anket yazısını başlat\",\n pagePrevText: \"Önceki sayfa yazısı\",\n pageNextText: \"Sonraki sayfa yazısı\",\n completeText: \"Yazıyı tamamla\",\n requiredText: \"Gerekli yazı\",\n questionStartIndex: \"Soru başlangıç indeksi\",\n questionTitleTemplate: \"Soru başlığı şablonu\",\n firstPageIsStarted: \"İlk sayfa başladı\",\n isSinglePage: \"Tek sayfa mı?\",\n maxTimeToFinishPage: \"Bitirme sayfası için maksimum zaman\",\n showTimerPanel: \"Zamanlama panelini göster\",\n showTimerPanelMode: \"Zamanlama panel modunu göster\",\n defaultPanelValue: \"Varsayılan panel değeri\",\n defaultRowValue: \"Varsayılan satır değeri\",\n showNoneItem: \"hasNone\",\n noneText: \"noneText\",\n text: \"yazı\",\n },\n};\n_editorLocalization__WEBPACK_IMPORTED_MODULE_0__[\"editorLocalization\"].locales[\"tr\"] = turkishStrings;\n\n\n/***/ }),\n\n/***/ \"./src/main.scss\":\n/*!***********************!*\\\n !*** ./src/main.scss ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/objectProperty.ts\":\n/*!*******************************!*\\\n !*** ./src/objectProperty.ts ***!\n \\*******************************/\n/*! exports provided: SurveyObjectProperty */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyObjectProperty\", function() { return SurveyObjectProperty; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyEditors/propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n\n\n\nvar SurveyObjectProperty = /** @class */ (function () {\n function SurveyObjectProperty(property, propertyEditorOptions, isCellEditor) {\n if (propertyEditorOptions === void 0) { propertyEditorOptions = null; }\n if (isCellEditor === void 0) { isCellEditor = false; }\n this.property = property;\n this.propertyEditorOptions = propertyEditorOptions;\n this.getObjectPropertyByName = null;\n this.isHiddenValue = false;\n this.name = this.property.name;\n this.disabled = property.readOnly;\n var self = this;\n var onItemChanged = function (newValue) {\n self.onEditorValueChanged(newValue);\n };\n this.editor = _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_2__[\"SurveyPropertyEditorFactory\"].createEditor(property, isCellEditor);\n this.editor.onChanged = onItemChanged;\n this.editor.onGetLocale = this.doOnGetLocale;\n this.editor.options = propertyEditorOptions;\n this.editorType = this.editor.editorType;\n this.editorTypeTemplate = this.editor.editorTypeTemplate;\n this.koVisible = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](this.isVisible());\n }\n Object.defineProperty(SurveyObjectProperty.prototype, \"displayName\", {\n get: function () {\n return this.editor.displayName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyObjectProperty.prototype, \"title\", {\n get: function () {\n return this.editor.title;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyObjectProperty.prototype, \"koValue\", {\n get: function () {\n return this.editor.koValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyObjectProperty.prototype, \"koText\", {\n get: function () {\n return this.editor.koText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyObjectProperty.prototype, \"koIsDefault\", {\n get: function () {\n return this.editor.koIsDefault;\n },\n enumerable: false,\n configurable: true\n });\n SurveyObjectProperty.prototype.doOnGetLocale = function () {\n if (this.object && this.object[\"getLocale\"])\n return this.object.getLocale();\n return \"\";\n };\n Object.defineProperty(SurveyObjectProperty.prototype, \"object\", {\n get: function () {\n return this.objectValue;\n },\n set: function (value) {\n this.objectValue = value;\n this.editor.object = value;\n this.editor.setup();\n this.updateDependedProperties();\n this.updateDynamicProperties();\n },\n enumerable: false,\n configurable: true\n });\n SurveyObjectProperty.prototype.beforeShow = function () {\n this.editor.beforeShow();\n this.updateDynamicProperties();\n };\n SurveyObjectProperty.prototype.hasError = function () {\n return this.editor.hasError();\n };\n SurveyObjectProperty.prototype.applyToObj = function (obj) {\n if (!!this.object &&\n survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Helpers\"].isTwoValueEquals(obj[this.property.name], this.object[this.property.name]))\n return;\n obj[this.property.name] = this.object[this.property.name];\n };\n Object.defineProperty(SurveyObjectProperty.prototype, \"isInPropertyGrid\", {\n get: function () {\n return this.editor.isInPropertyGrid;\n },\n set: function (val) {\n this.editor.isInPropertyGrid = val;\n },\n enumerable: false,\n configurable: true\n });\n SurveyObjectProperty.prototype.reset = function () {\n if (!this.object)\n return;\n this.editor.koValue(this.property.getPropertyValue(this.object));\n };\n SurveyObjectProperty.prototype.updateDynamicProperties = function () {\n this.koVisible(this.isVisible());\n this.editor.updateDynamicProperties();\n this.editor.updateValue();\n };\n Object.defineProperty(SurveyObjectProperty.prototype, \"isHidden\", {\n get: function () {\n return this.isHiddenValue;\n },\n set: function (val) {\n this.isHiddenValue = val;\n this.koVisible(this.isVisible());\n },\n enumerable: false,\n configurable: true\n });\n SurveyObjectProperty.prototype.isVisible = function () {\n if (!this.object)\n return true;\n if (this.isHidden)\n return false;\n var layout = !!this.object.getLayoutType ? this.object.getLayoutType() : \"\";\n if (!!this.property.isVisible &&\n !this.property[\"isVisible\"](layout, this.object))\n return false;\n return true;\n };\n SurveyObjectProperty.prototype.onEditorValueChanged = function (newValue) {\n this.propertyEditorOptions &&\n this.propertyEditorOptions.startUndoRedoTransaction();\n if (this.object) {\n var oldValue = this.object[this.property.name];\n if (!!this.onCorrectValueBeforeSet) {\n newValue = this.onCorrectValueBeforeSet(this, newValue);\n }\n this.editor.updatePropertyValue(newValue);\n if (this.onChanged)\n this.onChanged(this, oldValue);\n }\n this.updateDependedProperties();\n this.propertyEditorOptions &&\n this.propertyEditorOptions.stopUndoRedoTransaction();\n };\n SurveyObjectProperty.prototype.updateDependedProperties = function () {\n if (!this.object || !this.getObjectPropertyByName)\n return;\n var props = this.property.getDependedProperties();\n if (!props)\n return;\n for (var i = 0; i < props.length; i++) {\n var prop = this.getObjectPropertyByName(props[i]);\n if (!!prop) {\n prop.updateDynamicProperties();\n }\n }\n };\n return SurveyObjectProperty;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/pages-editor.ts\":\n/*!*****************************!*\\\n !*** ./src/pages-editor.ts ***!\n \\*****************************/\n/*! exports provided: PagesEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PagesEditor\", function() { return PagesEditor; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./editorLocalization */ \"./src/editorLocalization.ts\");\n\n\n\nvar PagesEditor = /** @class */ (function () {\n function PagesEditor(creator) {\n var _this = this;\n this.creator = creator;\n this.prevPagesForSelector = [];\n this._selectedPage = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]();\n this._readOnly = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.isSelectingPage = false;\n this.getDisplayText = function (page) {\n return _this.creator.getObjectDisplayName(page, \"page-tabs\");\n };\n this.blockPagesRebuilt = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.addPage = function () {\n return _this.creator.addPage();\n };\n this.copyPage = function (page) {\n _this.creator.copyPage(page);\n };\n this.deletePage = function () {\n _this.creator.deletePage();\n };\n // get canMovePage(): boolean {\n // return this.isAllowedForSelectedPage(\"allowDragging\");\n // }\n this.movePage = function (page, indexFrom) {\n _this.selectedPage(page);\n _this.creator.movePage(page, indexFrom);\n };\n this.selectedPage = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"]({\n read: function () { return _this._selectedPage(); },\n write: function (newPage) {\n if (_this.isSelectingPage || !_surveyHelper__WEBPACK_IMPORTED_MODULE_1__[\"SurveyHelper\"].canSelectObj(newPage))\n return;\n try {\n _this.isSelectingPage = true;\n if (newPage === null) {\n newPage = _this.addPage();\n }\n _this._selectedPage(newPage);\n _this.creator.survey.currentPage = newPage;\n _this.creator.selectedElement = newPage;\n }\n finally {\n _this.isSelectingPage = false;\n }\n },\n });\n this.showActions = function (page) {\n return page === _this.selectedPage() && _this.isActive();\n };\n this.hasDropdownSelector = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.hasDropdownSelector(creator.showDropdownPageSelector);\n this.koSurvey = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](creator.survey);\n creator.onDesignerSurveyCreated.add(function (sender, options) {\n _this.koSurvey(options.survey);\n });\n this.pagesForSelection = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n if (!_this.blockPagesRebuilt()) {\n _this.prevPagesForSelector = _this.pages.map(function (p) {\n return { value: p, text: _this.getDisplayText(p) };\n });\n if (!_this.readOnly) {\n _this.prevPagesForSelector = _this.prevPagesForSelector.concat([\n { value: null, text: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.addNewPage\") },\n ]);\n }\n setTimeout(function () { return _this.selectedPage.notifySubscribers(); }, 1);\n }\n return _this.prevPagesForSelector;\n });\n if (this.pages.length > 0) {\n this._selectedPage(this.pages[0]);\n }\n this.selectionSubscription = this.creator.koSelectedObject.subscribe(function (newVal) {\n if (!_this.isActive()) {\n if (!!creator.survey.currentPage &&\n creator.survey.currentPage != _this._selectedPage()) {\n _this._selectedPage(creator.survey.currentPage);\n }\n return;\n }\n _this._selectedPage(newVal.value);\n });\n this.addPageSelectorIntoToolbar();\n }\n Object.defineProperty(PagesEditor.prototype, \"pages\", {\n get: function () {\n return this.koSurvey().pages;\n },\n enumerable: false,\n configurable: true\n });\n PagesEditor.prototype.addPageSelectorIntoToolbar = function () {\n var item = {\n id: \"svd-toolbar-page-selector\",\n component: \"svd-dropdown\",\n visible: this.creator.showPageSelectorInToolbar,\n enabled: true,\n title: \"\",\n items: this.pagesForSelection,\n action: this.selectedPage,\n };\n this.creator.toolbarItems.unshift(item);\n };\n PagesEditor.prototype.isAllowedForSelectedPage = function (what) {\n this.creator.survey.updateElementAllowingOptions(this._selectedPage());\n var options = this._selectedPage()[\"allowingOptions\"];\n if (!options) {\n return true;\n }\n var value = options[what];\n if (value === undefined) {\n return true;\n }\n return value;\n };\n Object.defineProperty(PagesEditor.prototype, \"canAddPage\", {\n get: function () {\n return this.isAllowedForSelectedPage(\"allowAdd\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PagesEditor.prototype, \"canCopyPage\", {\n get: function () {\n return this.isAllowedForSelectedPage(\"allowCopy\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PagesEditor.prototype, \"canDeletePage\", {\n get: function () {\n return !this.isLastPage() && this.isAllowedForSelectedPage(\"allowDelete\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PagesEditor.prototype, \"canEditPage\", {\n get: function () {\n return this.isAllowedForSelectedPage(\"allowEdit\");\n },\n enumerable: false,\n configurable: true\n });\n PagesEditor.prototype.showPageSettings = function (page) {\n this.creator.showQuestionEditor(page);\n };\n PagesEditor.prototype.isLastPage = function () {\n return this.pages.length === 1;\n };\n PagesEditor.prototype.isActive = function () {\n var selectedObject = this.creator.koSelectedObject();\n if (!selectedObject)\n return;\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_1__[\"SurveyHelper\"].getObjectType(selectedObject.value) === _surveyHelper__WEBPACK_IMPORTED_MODULE_1__[\"ObjType\"].Page;\n };\n Object.defineProperty(PagesEditor.prototype, \"readOnly\", {\n /**\n * A boolean property, false by default. Set it to true to deny pages editing.\n */\n get: function () {\n return (this.creator.readOnly ||\n !this.creator.allowModifyPages ||\n this._readOnly());\n },\n set: function (newVal) {\n this._readOnly(newVal);\n },\n enumerable: false,\n configurable: true\n });\n PagesEditor.prototype.dispose = function () {\n this.selectionSubscription.dispose();\n this.selectionSubscription = undefined;\n this.pagesForSelection.dispose();\n };\n return PagesEditor;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/bindings.html\":\n/*!********************************************!*\\\n !*** ./src/property-editors/bindings.html ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\\n \\n \\n
\\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/bindings.scss\":\n/*!********************************************!*\\\n !*** ./src/property-editors/bindings.scss ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/bindings.ts\":\n/*!******************************************!*\\\n !*** ./src/property-editors/bindings.ts ***!\n \\******************************************/\n/*! exports provided: PropertyEditorBindingsViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorBindingsViewModel\", function() { return PropertyEditorBindingsViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _bindings_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bindings.scss */ \"./src/property-editors/bindings.scss\");\n/* harmony import */ var _bindings_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bindings_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./bindings.html */ \"./src/property-editors/bindings.html\");\nvar PropertyEditorBindingsViewModel = /** @class */ (function () {\n function PropertyEditorBindingsViewModel(items, afterRender) {\n this.items = items;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorBindingsViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-bindings\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorBindingsViewModel(model.items, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/boolean.html\":\n/*!*******************************************!*\\\n !*** ./src/property-editors/boolean.html ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/boolean.scss\":\n/*!*******************************************!*\\\n !*** ./src/property-editors/boolean.scss ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/boolean.ts\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/boolean.ts ***!\n \\*****************************************/\n/*! exports provided: PropertyEditorBooleanViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorBooleanViewModel\", function() { return PropertyEditorBooleanViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _boolean_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./boolean.scss */ \"./src/property-editors/boolean.scss\");\n/* harmony import */ var _boolean_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_boolean_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./boolean.html */ \"./src/property-editors/boolean.html\");\nvar PropertyEditorBooleanViewModel = /** @class */ (function () {\n function PropertyEditorBooleanViewModel(koValue, readOnly, isDisplayNameVisible, displayName, afterRender) {\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.isDisplayNameVisible = isDisplayNameVisible;\n this.displayName = displayName;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorBooleanViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-boolean\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorBooleanViewModel(model.koValue, model.readOnly, model.isDisplayNameVisible, model.displayName, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/cells.html\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/cells.html ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/cells.scss\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/cells.scss ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/cells.ts\":\n/*!***************************************!*\\\n !*** ./src/property-editors/cells.ts ***!\n \\***************************************/\n/*! exports provided: PropertyEditorCellsViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorCellsViewModel\", function() { return PropertyEditorCellsViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _cells_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cells.scss */ \"./src/property-editors/cells.scss\");\n/* harmony import */ var _cells_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_cells_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./cells.html */ \"./src/property-editors/cells.html\");\nvar PropertyEditorCellsViewModel = /** @class */ (function () {\n function PropertyEditorCellsViewModel(koCanEdit, getLocString, koColumns, koRows, afterRender) {\n this.koCanEdit = koCanEdit;\n this.getLocString = getLocString;\n this.koColumns = koColumns;\n this.koRows = koRows;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorCellsViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-cells\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorCellsViewModel(model.koCanEdit, model.getLocString, model.koColumns, model.koRows, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/color.html\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/color.html ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/color.scss\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/color.scss ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/color.ts\":\n/*!***************************************!*\\\n !*** ./src/property-editors/color.ts ***!\n \\***************************************/\n/*! exports provided: PropertyEditorColorViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorColorViewModel\", function() { return PropertyEditorColorViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _color_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.scss */ \"./src/property-editors/color.scss\");\n/* harmony import */ var _color_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_color_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./color.html */ \"./src/property-editors/color.html\");\nvar PropertyEditorColorViewModel = /** @class */ (function () {\n function PropertyEditorColorViewModel(koValue, readOnly, koMaxValue, koMinValue, afterRender) {\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.koMaxValue = koMaxValue;\n this.koMinValue = koMinValue;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorColorViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-color\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorColorViewModel(model.koValue, model.readOnly, model.koMaxValue, model.koMinValue, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/condition.html\":\n/*!*********************************************!*\\\n !*** ./src/property-editors/condition.html ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n\\n \\n \\n \\n
\\n
\\n
\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/condition.scss\":\n/*!*********************************************!*\\\n !*** ./src/property-editors/condition.scss ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/condition.ts\":\n/*!*******************************************!*\\\n !*** ./src/property-editors/condition.ts ***!\n \\*******************************************/\n/*! exports provided: PropertyEditorConditionViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorConditionViewModel\", function() { return PropertyEditorConditionViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _condition_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./condition.scss */ \"./src/property-editors/condition.scss\");\n/* harmony import */ var _condition_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_condition_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./condition.html */ \"./src/property-editors/condition.html\");\nvar PropertyEditorConditionViewModel = /** @class */ (function () {\n function PropertyEditorConditionViewModel(koShowExpressionHeader, onShowHideEditor, koConditionDisplayText, koIsEditorShowing, koIsEditorHidingDisabled, koShowTabs, koCanParseExpression, koActiveView, onChangeViewClick, getLocString, koSetupText, koIsWideMode, koEditorItems, readOnly, koCanAddItem, onRemoveConditionClick, removeConditionText, addCondition, addConditionText, hasAceEditor, koTextValue, availableQuestions, editingObject, model, afterRender) {\n this.koShowExpressionHeader = koShowExpressionHeader;\n this.onShowHideEditor = onShowHideEditor;\n this.koConditionDisplayText = koConditionDisplayText;\n this.koIsEditorShowing = koIsEditorShowing;\n this.koIsEditorHidingDisabled = koIsEditorHidingDisabled;\n this.koShowTabs = koShowTabs;\n this.koCanParseExpression = koCanParseExpression;\n this.koActiveView = koActiveView;\n this.onChangeViewClick = onChangeViewClick;\n this.getLocString = getLocString;\n this.koSetupText = koSetupText;\n this.koIsWideMode = koIsWideMode;\n this.koEditorItems = koEditorItems;\n this.readOnly = readOnly;\n this.koCanAddItem = koCanAddItem;\n this.onRemoveConditionClick = onRemoveConditionClick;\n this.removeConditionText = removeConditionText;\n this.addCondition = addCondition;\n this.addConditionText = addConditionText;\n this.hasAceEditor = hasAceEditor;\n this.koTextValue = koTextValue;\n this.availableQuestions = availableQuestions;\n this.editingObject = editingObject;\n this.model = model;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorConditionViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-condition\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorConditionViewModel(model.koShowExpressionHeader, model.onShowHideEditor, model.koConditionDisplayText, model.koIsEditorShowing, model.koIsEditorHidingDisabled, model.koShowTabs, model.koCanParseExpression, model.koActiveView, model.onChangeViewClick, model.getLocString, model.koSetupText, model.koIsWideMode, model.koEditorItems, model.readOnly, model.koCanAddItem, model.onRemoveConditionClick, model.removeConditionText, model.addCondition, model.addConditionText, model.hasAceEditor, model.koTextValue, model.availableQuestions, model.editingObject, model, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/custom.html\":\n/*!******************************************!*\\\n !*** ./src/property-editors/custom.html ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/custom.scss\":\n/*!******************************************!*\\\n !*** ./src/property-editors/custom.scss ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/custom.ts\":\n/*!****************************************!*\\\n !*** ./src/property-editors/custom.ts ***!\n \\****************************************/\n/*! exports provided: PropertyEditorCustomViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorCustomViewModel\", function() { return PropertyEditorCustomViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _custom_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./custom.scss */ \"./src/property-editors/custom.scss\");\n/* harmony import */ var _custom_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_custom_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./custom.html */ \"./src/property-editors/custom.html\");\nvar PropertyEditorCustomViewModel = /** @class */ (function () {\n function PropertyEditorCustomViewModel(model, afterRender) {\n this.model = model;\n afterRender();\n }\n return PropertyEditorCustomViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-custom\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorCustomViewModel(model, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/default-value.html\":\n/*!*************************************************!*\\\n !*** ./src/property-editors/default-value.html ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n \\n
\\n
\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/default-value.scss\":\n/*!*************************************************!*\\\n !*** ./src/property-editors/default-value.scss ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/default-value.ts\":\n/*!***********************************************!*\\\n !*** ./src/property-editors/default-value.ts ***!\n \\***********************************************/\n/*! exports provided: PropertyEditorValueViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorValueViewModel\", function() { return PropertyEditorValueViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _default_value_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./default-value.scss */ \"./src/property-editors/default-value.scss\");\n/* harmony import */ var _default_value_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_default_value_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./default-value.html */ \"./src/property-editors/default-value.html\");\nvar PropertyEditorValueViewModel = /** @class */ (function () {\n function PropertyEditorValueViewModel(koSurvey, resetValue, resetText, refreshSurvey, refreshText, model, componentInfo, koAfterRender, afterRender) {\n this.koSurvey = koSurvey;\n this.resetValue = resetValue;\n this.resetText = resetText;\n this.refreshSurvey = refreshSurvey;\n this.refreshText = refreshText;\n this.model = model;\n this.componentInfo = componentInfo;\n this.koAfterRender = koAfterRender;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorValueViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-default-value\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorValueViewModel(model.koSurvey, model.resetValue, model.resetText, model.refreshSurvey, model.refreshText, model, //TODO break on props\n componentInfo, model.koAfterRender, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/dropdown.html\":\n/*!********************************************!*\\\n !*** ./src/property-editors/dropdown.html ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/dropdown.scss\":\n/*!********************************************!*\\\n !*** ./src/property-editors/dropdown.scss ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/dropdown.ts\":\n/*!******************************************!*\\\n !*** ./src/property-editors/dropdown.ts ***!\n \\******************************************/\n/*! exports provided: PropertyEditorDropdownViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorDropdownViewModel\", function() { return PropertyEditorDropdownViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dropdown_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dropdown.scss */ \"./src/property-editors/dropdown.scss\");\n/* harmony import */ var _dropdown_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dropdown_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./dropdown.html */ \"./src/property-editors/dropdown.html\");\nvar PropertyEditorDropdownViewModel = /** @class */ (function () {\n function PropertyEditorDropdownViewModel(koValue, readOnly, optionsCaption, koChoices, koHasFocus, displayName, afterRender) {\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.optionsCaption = optionsCaption;\n this.koChoices = koChoices;\n this.koHasFocus = koHasFocus;\n this.displayName = displayName;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorDropdownViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-dropdown\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorDropdownViewModel(model.koValue, model.readOnly, model.optionsCaption, model.koChoices, model.koHasFocus, model.displayName, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/error.html\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/error.html ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n
\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/error.scss\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/error.scss ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/error.ts\":\n/*!***************************************!*\\\n !*** ./src/property-editors/error.ts ***!\n \\***************************************/\n/*! exports provided: PropertyEditorErrorViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorErrorViewModel\", function() { return PropertyEditorErrorViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _error_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./error.scss */ \"./src/property-editors/error.scss\");\n/* harmony import */ var _error_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_error_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./error.html */ \"./src/property-editors/error.html\");\nvar PropertyEditorErrorViewModel = /** @class */ (function () {\n function PropertyEditorErrorViewModel(koDisplayError, getLocString, koErrorText) {\n this.koDisplayError = koDisplayError;\n this.getLocString = getLocString;\n this.koErrorText = koErrorText;\n }\n return PropertyEditorErrorViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-error\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorErrorViewModel(model.koDisplayError, model.getLocString, model.koErrorText);\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/expression.html\":\n/*!**********************************************!*\\\n !*** ./src/property-editors/expression.html ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n
\\n \\n \\n \\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/expression.scss\":\n/*!**********************************************!*\\\n !*** ./src/property-editors/expression.scss ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/expression.ts\":\n/*!********************************************!*\\\n !*** ./src/property-editors/expression.ts ***!\n \\********************************************/\n/*! exports provided: PropertyEditorExpressionViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorExpressionViewModel\", function() { return PropertyEditorExpressionViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _expression_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./expression.scss */ \"./src/property-editors/expression.scss\");\n/* harmony import */ var _expression_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_expression_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./expression.html */ \"./src/property-editors/expression.html\");\nvar PropertyEditorExpressionViewModel = /** @class */ (function () {\n function PropertyEditorExpressionViewModel(hasAceEditor, getLocString, koValue, availableQuestions, editingObject, model, koTextValue, showHelpText, afterRender) {\n this.hasAceEditor = hasAceEditor;\n this.getLocString = getLocString;\n this.koValue = koValue;\n this.availableQuestions = availableQuestions;\n this.editingObject = editingObject;\n this.model = model;\n this.koTextValue = koTextValue;\n this.showHelpText = showHelpText;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorExpressionViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-expression\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorExpressionViewModel(model.hasAceEditor, model.getLocString, model.koValue, model.availableQuestions, model.editingObject, model, model.koTextValue, model.showHelpText, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/file.html\":\n/*!****************************************!*\\\n !*** ./src/property-editors/file.html ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/file.scss\":\n/*!****************************************!*\\\n !*** ./src/property-editors/file.scss ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/file.ts\":\n/*!**************************************!*\\\n !*** ./src/property-editors/file.ts ***!\n \\**************************************/\n/*! exports provided: SurveyFilePropertyEditor, PropertyEditorFileViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyFilePropertyEditor\", function() { return SurveyFilePropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorFileViewModel\", function() { return PropertyEditorFileViewModel; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyEditors_propertyEditorBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../propertyEditors/propertyEditorBase */ \"./src/propertyEditors/propertyEditorBase.ts\");\n/* harmony import */ var _file_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./file.scss */ \"./src/property-editors/file.scss\");\n/* harmony import */ var _file_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_file_scss__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../propertyEditors/propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! ./file.html */ \"./src/property-editors/file.html\");\nvar SurveyFilePropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyFilePropertyEditor, _super);\n function SurveyFilePropertyEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyFilePropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"file\";\n },\n enumerable: false,\n configurable: true\n });\n return SurveyFilePropertyEditor;\n}(_propertyEditors_propertyEditorBase__WEBPACK_IMPORTED_MODULE_2__[\"SurveyPropertyEditorBase\"]));\n\nvar PropertyEditorFileViewModel = /** @class */ (function () {\n function PropertyEditorFileViewModel(rootElement, editor, koValue, readOnly, isDisplayNameVisible, displayName, afterRender) {\n var _this = this;\n this.rootElement = rootElement;\n this.editor = editor;\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.isDisplayNameVisible = isDisplayNameVisible;\n this.displayName = displayName;\n this.afterRender = afterRender;\n this.chooseFile = function (model, event) {\n if (!!knockout__WEBPACK_IMPORTED_MODULE_1__[\"unwrap\"](_this.readOnly)) {\n return;\n }\n var fileInput = _this.rootElement.nextElementSibling.getElementsByClassName(\"svd-choose-file-control\")[0];\n _this.editor.chooseFiles(fileInput, function (files) {\n _this.editor.uploadFiles(files, function (status, data) {\n if (status === \"success\") {\n _this.koValue(data);\n }\n });\n });\n };\n this.deleteFile = function (model, event) {\n if (!!knockout__WEBPACK_IMPORTED_MODULE_1__[\"unwrap\"](_this.readOnly)) {\n return;\n }\n _this.editor.clearFiles(_this.koValue(), function (status, data) {\n if (status === \"success\") {\n _this.koValue(undefined);\n }\n });\n };\n afterRender();\n }\n Object.defineProperty(PropertyEditorFileViewModel.prototype, \"fileContent\", {\n get: function () {\n if (this.koValue()) {\n return this.koValue().substring(0, 45) + \"...\";\n }\n else {\n return this.getLocString(\"pe.noFile\");\n }\n },\n enumerable: false,\n configurable: true\n });\n PropertyEditorFileViewModel.prototype.getLocString = function (str) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(str);\n };\n return PropertyEditorFileViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_1__[\"components\"].register(\"svd-property-editor-file\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorFileViewModel(componentInfo.element, model.options, model.koValue, model.readOnly, model.isDisplayNameVisible, model.displayName, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n_propertyEditors_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerEditor(\"file\", function (property) { return new SurveyFilePropertyEditor(property); });\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/html-pe.html\":\n/*!*******************************************!*\\\n !*** ./src/property-editors/html-pe.html ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/html-pe.scss\":\n/*!*******************************************!*\\\n !*** ./src/property-editors/html-pe.scss ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/html-pe.ts\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/html-pe.ts ***!\n \\*****************************************/\n/*! exports provided: PropertyEditorHTMLViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorHTMLViewModel\", function() { return PropertyEditorHTMLViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _html_pe_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./html-pe.scss */ \"./src/property-editors/html-pe.scss\");\n/* harmony import */ var _html_pe_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_html_pe_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./html-pe.html */ \"./src/property-editors/html-pe.html\");\nvar PropertyEditorHTMLViewModel = /** @class */ (function () {\n function PropertyEditorHTMLViewModel(koValue, readOnly, afterRender) {\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorHTMLViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-html\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorHTMLViewModel(model.koValue, model.readOnly, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/item-values.html\":\n/*!***********************************************!*\\\n !*** ./src/property-editors/item-values.html ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/item-values.scss\":\n/*!***********************************************!*\\\n !*** ./src/property-editors/item-values.scss ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/item-values.ts\":\n/*!*********************************************!*\\\n !*** ./src/property-editors/item-values.ts ***!\n \\*********************************************/\n/*! exports provided: PropertyEditorItemValuesViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorItemValuesViewModel\", function() { return PropertyEditorItemValuesViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _item_values_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./item-values.scss */ \"./src/property-editors/item-values.scss\");\n/* harmony import */ var _item_values_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_item_values_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./item-values.html */ \"./src/property-editors/item-values.html\");\nvar PropertyEditorItemValuesViewModel = /** @class */ (function () {\n function PropertyEditorItemValuesViewModel(koIsList, koShowTextView, koActiveView, changeToFormViewClick, changeToTextViewClick, getLocString, koItemsText, readOnly, model, afterRender) {\n this.koIsList = koIsList;\n this.koShowTextView = koShowTextView;\n this.koActiveView = koActiveView;\n this.changeToFormViewClick = changeToFormViewClick;\n this.changeToTextViewClick = changeToTextViewClick;\n this.getLocString = getLocString;\n this.koItemsText = koItemsText;\n this.readOnly = readOnly;\n this.model = model;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorItemValuesViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-item-values\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorItemValuesViewModel(model.koIsList, model.koShowTextView, model.koActiveView, model.changeToFormViewClick, model.changeToTextViewClick, model.getLocString, model.koItemsText, model.readOnly, model, //TODO break on props\n function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/modal-content.html\":\n/*!*************************************************!*\\\n !*** ./src/property-editors/modal-content.html ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n\\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/modal-content.scss\":\n/*!*************************************************!*\\\n !*** ./src/property-editors/modal-content.scss ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/modal-content.ts\":\n/*!***********************************************!*\\\n !*** ./src/property-editors/modal-content.ts ***!\n \\***********************************************/\n/*! exports provided: PropertyEditorModalContent */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorModalContent\", function() { return PropertyEditorModalContent; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _modal_content_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modal-content.scss */ \"./src/property-editors/modal-content.scss\");\n/* harmony import */ var _modal_content_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_modal_content_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./modal-content.html */ \"./src/property-editors/modal-content.html\");\nvar PropertyEditorModalContent = /** @class */ (function () {\n function PropertyEditorModalContent(koHtmlTop, koHtmlBottom, editorTypeTemplate, model, afterRender) {\n this.koHtmlTop = koHtmlTop;\n this.koHtmlBottom = koHtmlBottom;\n this.editorTypeTemplate = editorTypeTemplate;\n this.model = model;\n this.afterRender = afterRender;\n }\n return PropertyEditorModalContent;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-modal-content\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n var afterRender = params.afterRender;\n return new PropertyEditorModalContent(model.koHtmlTop, model.koHtmlBottom, model.editorTypeTemplate, model, //TODO break on props,\n afterRender);\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/modal.html\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/modal.html ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n \\n

\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/modal.scss\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/modal.scss ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/modal.ts\":\n/*!***************************************!*\\\n !*** ./src/property-editors/modal.ts ***!\n \\***************************************/\n/*! exports provided: PropertyEditorModalViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorModalViewModel\", function() { return PropertyEditorModalViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _modal_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modal.scss */ \"./src/property-editors/modal.scss\");\n/* harmony import */ var _modal_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_modal_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./modal.html */ \"./src/property-editors/modal.html\");\nvar PropertyEditorModalViewModel = /** @class */ (function () {\n function PropertyEditorModalViewModel(isEditable, onShowModal, modalNameTarget, koText, getLocString, koValue, readOnly, modalName, koIsShowingModal, onResetClick, koTitleCaption, koShowApplyButton, onApplyClick, onOkClick, model, afterRender) {\n this.isEditable = isEditable;\n this.onShowModal = onShowModal;\n this.modalNameTarget = modalNameTarget;\n this.koText = koText;\n this.getLocString = getLocString;\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.modalName = modalName;\n this.koIsShowingModal = koIsShowingModal;\n this.onResetClick = onResetClick;\n this.koTitleCaption = koTitleCaption;\n this.koShowApplyButton = koShowApplyButton;\n this.onApplyClick = onApplyClick;\n this.onOkClick = onOkClick;\n this.model = model;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorModalViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-modal\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorModalViewModel(model.isEditable, model.onShowModal, model.modalNameTarget, model.koText, model.getLocString, model.koValue, model.readOnly, model.modalName, model.koIsShowingModal, model.onResetClick, model.koTitleCaption, model.koShowApplyButton, model.onApplyClick, model.onOkClick, model, //TODO need to break on props,\n function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/multiple-values.html\":\n/*!***************************************************!*\\\n !*** ./src/property-editors/multiple-values.html ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/multiple-values.scss\":\n/*!***************************************************!*\\\n !*** ./src/property-editors/multiple-values.scss ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/multiple-values.ts\":\n/*!*************************************************!*\\\n !*** ./src/property-editors/multiple-values.ts ***!\n \\*************************************************/\n/*! exports provided: PropertyEditorMultipleValuesViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorMultipleValuesViewModel\", function() { return PropertyEditorMultipleValuesViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _multiple_values_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multiple-values.scss */ \"./src/property-editors/multiple-values.scss\");\n/* harmony import */ var _multiple_values_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_multiple_values_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./multiple-values.html */ \"./src/property-editors/multiple-values.html\");\nvar PropertyEditorMultipleValuesViewModel = /** @class */ (function () {\n function PropertyEditorMultipleValuesViewModel(koCategories, componentInfo, koAfterRender, afterRender) {\n this.koCategories = koCategories;\n this.componentInfo = componentInfo;\n this.koAfterRender = koAfterRender;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorMultipleValuesViewModel;\n}());\n\nfunction createviewModel(params, componentInfo) {\n var model = params.model;\n return new PropertyEditorMultipleValuesViewModel(model.koCategories, componentInfo, model.koAfterRender, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n}\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-multiple-values\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return createviewModel(params, componentInfo);\n },\n },\n template: templateHtml,\n});\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-multiplevalues\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return createviewModel(params, componentInfo);\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested-item.html\":\n/*!***********************************************!*\\\n !*** ./src/property-editors/nested-item.html ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested-item.scss\":\n/*!***********************************************!*\\\n !*** ./src/property-editors/nested-item.scss ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested-item.ts\":\n/*!*********************************************!*\\\n !*** ./src/property-editors/nested-item.ts ***!\n \\*********************************************/\n/*! exports provided: PropertyEditorNestedItemViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorNestedItemViewModel\", function() { return PropertyEditorNestedItemViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _nested_item_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nested-item.scss */ \"./src/property-editors/nested-item.scss\");\n/* harmony import */ var _nested_item_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_nested_item_scss__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n\n\n\nvar templateHtml = __webpack_require__(/*! ./nested-item.html */ \"./src/property-editors/nested-item.html\");\nvar PropertyEditorNestedItemViewModel = /** @class */ (function () {\n function PropertyEditorNestedItemViewModel(editor, model, koCanDeleteItem, dragIcon, deleteIcon, obj, koHasDetails, rootElement) {\n this.editor = editor;\n this.model = model;\n this.koCanDeleteItem = koCanDeleteItem;\n this.dragIcon = dragIcon;\n this.deleteIcon = deleteIcon;\n this.obj = obj;\n this.koHasDetails = koHasDetails;\n rootElement.addEventListener(\"keydown\", function (event) {\n if (event.keyCode == 38 && event.altKey) {\n _surveyHelper__WEBPACK_IMPORTED_MODULE_2__[\"SurveyHelper\"].moveItemInArray(editor.originalValue, obj, (editor.originalValue.indexOf(obj) - 1 +\n editor.originalValue.length) % editor.originalValue.length);\n event.stopPropagation();\n return false;\n }\n if (event.keyCode == 40 && event.altKey) {\n _surveyHelper__WEBPACK_IMPORTED_MODULE_2__[\"SurveyHelper\"].moveItemInArray(editor.originalValue, obj, (editor.originalValue.indexOf(obj) + 1) % editor.originalValue.length);\n event.stopPropagation();\n return false;\n }\n });\n }\n Object.defineProperty(PropertyEditorNestedItemViewModel.prototype, \"cells\", {\n get: function () {\n return this.model.cells;\n },\n enumerable: false,\n configurable: true\n });\n PropertyEditorNestedItemViewModel.prototype.onEditItemClick = function () {\n this.editor.onEditItemClick(this.model);\n };\n return PropertyEditorNestedItemViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-nested-item\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var editor = params.editor;\n var model;\n if (editor.columns.length === 0)\n editor.createColumns(); //TODO hot fix\n model = editor.createItemViewModel(params.item);\n model[\"editor\"] = editor;\n return new PropertyEditorNestedItemViewModel(editor, model, model.koCanDeleteItem, model.dragIcon, model.deleteIcon, model.obj, model.koHasDetails, componentInfo.element.nextSibling);\n },\n },\n template: templateHtml\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested-items.html\":\n/*!************************************************!*\\\n !*** ./src/property-editors/nested-items.html ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\\n \\n 0\\\"\\n >\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n 0 && koAllowRemoveAllItems(), value: $data.getLocString('pe.removeAll')\\\"\\n />\\n \\n\\n\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested-items.scss\":\n/*!************************************************!*\\\n !*** ./src/property-editors/nested-items.scss ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested-items.ts\":\n/*!**********************************************!*\\\n !*** ./src/property-editors/nested-items.ts ***!\n \\**********************************************/\n/*! exports provided: PropertyEditorNestedItemsViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorNestedItemsViewModel\", function() { return PropertyEditorNestedItemsViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _nested_items_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nested-items.scss */ \"./src/property-editors/nested-items.scss\");\n/* harmony import */ var _nested_items_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_nested_items_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./nested-items.html */ \"./src/property-editors/nested-items.html\");\nvar PropertyEditorNestedItemsViewModel = /** @class */ (function () {\n function PropertyEditorNestedItemsViewModel(koIsList, getLocString, koShowHeader, columns, sortableOptions, model, koAllowAddRemoveItems, readOnly, onAddClick, onClearClick, koAllowRemoveAllItems, koCanAddItem, addItemText, afterRender) {\n this.koIsList = koIsList;\n this.getLocString = getLocString;\n this.koShowHeader = koShowHeader;\n this.columns = columns;\n this.sortableOptions = sortableOptions;\n this.model = model;\n this.koAllowAddRemoveItems = koAllowAddRemoveItems;\n this.readOnly = readOnly;\n this.onAddClick = onAddClick;\n this.onClearClick = onClearClick;\n this.koAllowRemoveAllItems = koAllowRemoveAllItems;\n this.koCanAddItem = koCanAddItem;\n this.addItemText = addItemText;\n this.afterRender = afterRender;\n afterRender();\n }\n Object.defineProperty(PropertyEditorNestedItemsViewModel.prototype, \"originalValue\", {\n get: function () {\n return this.model.originalValue;\n },\n enumerable: false,\n configurable: true\n });\n return PropertyEditorNestedItemsViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-nested-items\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorNestedItemsViewModel(model.koIsList, model.getLocString, model.koShowHeader, model.columns, model.sortableOptions, model, //TODO break on props,\n model.koAllowAddRemoveItems, model.readOnly, model.onAddClick, model.onClearClick, model.koAllowRemoveAllItems, model.koCanAddItem, model.addItemText, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested.html\":\n/*!******************************************!*\\\n !*** ./src/property-editors/nested.html ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n \\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested.scss\":\n/*!******************************************!*\\\n !*** ./src/property-editors/nested.scss ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/nested.ts\":\n/*!****************************************!*\\\n !*** ./src/property-editors/nested.ts ***!\n \\****************************************/\n/*! exports provided: PropertyEditorNestedViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorNestedViewModel\", function() { return PropertyEditorNestedViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _nested_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nested.scss */ \"./src/property-editors/nested.scss\");\n/* harmony import */ var _nested_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_nested_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./nested.html */ \"./src/property-editors/nested.html\");\nvar PropertyEditorNestedViewModel = /** @class */ (function () {\n function PropertyEditorNestedViewModel(_onReturnToListClick, koEditorName, koEditItem, model, afterRender) {\n this._onReturnToListClick = _onReturnToListClick;\n this.koEditorName = koEditorName;\n this.koEditItem = koEditItem;\n this.model = model;\n this.afterRender = afterRender;\n afterRender();\n }\n PropertyEditorNestedViewModel.prototype.onReturnToListClick = function () {\n this._onReturnToListClick(this.model);\n };\n return PropertyEditorNestedViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-nested\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorNestedViewModel(model.onReturnToListClick, model.koEditorName, model.koEditItem, model, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/number.html\":\n/*!******************************************!*\\\n !*** ./src/property-editors/number.html ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/number.scss\":\n/*!******************************************!*\\\n !*** ./src/property-editors/number.scss ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/number.ts\":\n/*!****************************************!*\\\n !*** ./src/property-editors/number.ts ***!\n \\****************************************/\n/*! exports provided: PropertyEditorNumberViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorNumberViewModel\", function() { return PropertyEditorNumberViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _number_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./number.scss */ \"./src/property-editors/number.scss\");\n/* harmony import */ var _number_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_number_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./number.html */ \"./src/property-editors/number.html\");\nvar PropertyEditorNumberViewModel = /** @class */ (function () {\n function PropertyEditorNumberViewModel(koValue, readOnly, koMaxValue, koMinValue, afterRender) {\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.koMaxValue = koMaxValue;\n this.koMinValue = koMinValue;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorNumberViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-number\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorNumberViewModel(model.koValue, model.readOnly, model.koMaxValue, model.koMinValue, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/one-selected.html\":\n/*!************************************************!*\\\n !*** ./src/property-editors/one-selected.html ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n
\\n\\n
    \\n \\n
  • \\n \\n \\n \\n
  • \\n \\n
\\n\\n \\n \\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/one-selected.scss\":\n/*!************************************************!*\\\n !*** ./src/property-editors/one-selected.scss ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/one-selected.ts\":\n/*!**********************************************!*\\\n !*** ./src/property-editors/one-selected.ts ***!\n \\**********************************************/\n/*! exports provided: PropertyEditorOneSelectedViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorOneSelectedViewModel\", function() { return PropertyEditorOneSelectedViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _one_selected_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./one-selected.scss */ \"./src/property-editors/one-selected.scss\");\n/* harmony import */ var _one_selected_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_one_selected_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./one-selected.html */ \"./src/property-editors/one-selected.html\");\nvar PropertyEditorOneSelectedViewModel = /** @class */ (function () {\n function PropertyEditorOneSelectedViewModel(koAvailableClasses, koAllowAddRemoveItems, readOnly, onAddClick, koSelected, getLocString, getItemText, koChangeCounter, model, onDeleteClick, componentInfo, afterRender) {\n var _this = this;\n this.koAvailableClasses = koAvailableClasses;\n this.koAllowAddRemoveItems = koAllowAddRemoveItems;\n this.readOnly = readOnly;\n this.onAddClick = onAddClick;\n this.koSelected = koSelected;\n this.getLocString = getLocString;\n this.getItemText = getItemText;\n this.koChangeCounter = koChangeCounter;\n this.model = model;\n this.onDeleteClick = onDeleteClick;\n this.componentInfo = componentInfo;\n this.afterRender = afterRender;\n this.setupAvailableClassesContainer = function (rootElement) {\n var className = \"svd-available-classes-container\";\n var element = rootElement.querySelector(\".\" + className);\n _this.availableClassesContainer = element;\n element.onfocus = function (event) {\n if (_this.availableClassesContainer.className.indexOf(\"--active\") !== -1)\n return;\n _this.toggleClassesContainer();\n };\n element.onblur = function (event) {\n // https://stackoverflow.com/a/60094794/6623551\n if (_this.availableClassesContainer.className.indexOf(\"--active\") !== -1 &&\n event.relatedTarget &&\n !event.currentTarget[\"contains\"](event.relatedTarget)) {\n _this.toggleClassesContainer();\n }\n else {\n event.relatedTarget && event.relatedTarget[\"focus\"]();\n }\n };\n };\n afterRender();\n this.setupAvailableClassesContainer(componentInfo.element.nextSibling);\n }\n Object.defineProperty(PropertyEditorOneSelectedViewModel.prototype, \"originalValue\", {\n get: function () {\n return this.model.originalValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PropertyEditorOneSelectedViewModel.prototype, \"selectedObjectEditor\", {\n get: function () {\n return this.model.selectedObjectEditor;\n },\n enumerable: false,\n configurable: true\n });\n PropertyEditorOneSelectedViewModel.prototype.toggleClassesContainer = function () {\n var element = this.availableClassesContainer;\n var className = \"svd-available-classes-container\";\n var activeClassName = className + \"--active\";\n if (element.className.indexOf(activeClassName) !== -1) {\n element.className = className;\n this.availableClassesContainer.blur();\n }\n else {\n element.className = className + \" \" + activeClassName;\n this.availableClassesContainer.focus();\n }\n };\n return PropertyEditorOneSelectedViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-one-selected\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorOneSelectedViewModel(model.koAvailableClasses, model.koAllowAddRemoveItems, model.readOnly, model.onAddClick, model.koSelected, model.getLocString, model.getItemText, model.koChangeCounter, model, //TODO break on props\n model.onDeleteClick, componentInfo, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/property-editor.html\":\n/*!***************************************************!*\\\n !*** ./src/property-editors/property-editor.html ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/property-editor.scss\":\n/*!***************************************************!*\\\n !*** ./src/property-editors/property-editor.scss ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/property-editor.ts\":\n/*!*************************************************!*\\\n !*** ./src/property-editors/property-editor.ts ***!\n \\*************************************************/\n/*! exports provided: PropertyEditorViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorViewModel\", function() { return PropertyEditorViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _property_editor_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./property-editor.scss */ \"./src/property-editors/property-editor.scss\");\n/* harmony import */ var _property_editor_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_property_editor_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./property-editor.html */ \"./src/property-editors/property-editor.html\");\nvar PropertyEditorViewModel = /** @class */ (function () {\n function PropertyEditorViewModel(showDisplayNameOnTop, displayName, contentTemplateName, helpText, model, afterRender) {\n var _this = this;\n this.showDisplayNameOnTop = showDisplayNameOnTop;\n this.displayName = displayName;\n this.contentTemplateName = contentTemplateName;\n this.helpText = helpText;\n this.model = model;\n this.afterRender = afterRender;\n this.showHelpText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.toggleShowHelpText = function () {\n _this.showHelpText(!_this.showHelpText());\n };\n }\n return PropertyEditorViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n var afterRender = params.afterRender || model.koAfterRender;\n return new PropertyEditorViewModel(model.showDisplayNameOnTop, model.displayName, model.contentTemplateName, model.propertyHelpText, model, //TODO should transform to separate params\n function () {\n afterRender.call(model, componentInfo, {\n property: model.property,\n editor: model,\n });\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/restfull.html\":\n/*!********************************************!*\\\n !*** ./src/property-editors/restfull.html ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/restfull.scss\":\n/*!********************************************!*\\\n !*** ./src/property-editors/restfull.scss ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/restfull.ts\":\n/*!******************************************!*\\\n !*** ./src/property-editors/restfull.ts ***!\n \\******************************************/\n/*! exports provided: PropertyEditorRestfullViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorRestfullViewModel\", function() { return PropertyEditorRestfullViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _restfull_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./restfull.scss */ \"./src/property-editors/restfull.scss\");\n/* harmony import */ var _restfull_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_restfull_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./restfull.html */ \"./src/property-editors/restfull.html\");\nvar PropertyEditorRestfullViewModel = /** @class */ (function () {\n function PropertyEditorRestfullViewModel(koContentEditor, getLocString, question, componentInfo, koAfterRender, afterRender) {\n this.koContentEditor = koContentEditor;\n this.getLocString = getLocString;\n this.question = question;\n this.componentInfo = componentInfo;\n this.koAfterRender = koAfterRender;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorRestfullViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-restfull\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorRestfullViewModel(model.koContentEditor, model.getLocString, model.question, componentInfo, model.koAfterRender, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/string.html\":\n/*!******************************************!*\\\n !*** ./src/property-editors/string.html ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\\n \\n \\n \\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/string.scss\":\n/*!******************************************!*\\\n !*** ./src/property-editors/string.scss ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/string.ts\":\n/*!****************************************!*\\\n !*** ./src/property-editors/string.ts ***!\n \\****************************************/\n/*! exports provided: PropertyEditorStringViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorStringViewModel\", function() { return PropertyEditorStringViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _string_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./string.scss */ \"./src/property-editors/string.scss\");\n/* harmony import */ var _string_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_string_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./string.html */ \"./src/property-editors/string.html\");\nvar PropertyEditorStringViewModel = /** @class */ (function () {\n function PropertyEditorStringViewModel(koValue, readOnly, koInputType, defaultValue, koMaxLength, displayName, listName, dataList, koDisplayError, getLocString, koErrorText, onKeydown, afterRender) {\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.koInputType = koInputType;\n this.defaultValue = defaultValue;\n this.koMaxLength = koMaxLength;\n this.displayName = displayName;\n this.listName = listName;\n this.dataList = dataList;\n this.koDisplayError = koDisplayError;\n this.getLocString = getLocString;\n this.koErrorText = koErrorText;\n this.onKeydown = onKeydown;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorStringViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-string\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorStringViewModel(model.koValue, model.readOnly, model.koInputType, model.defaultValue, model.koMaxLength, model.displayName, model.listName, model.property.dataList, model.koDisplayError, model.getLocString, model.koErrorText, model.onInputKeydown, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/strings.html\":\n/*!*******************************************!*\\\n !*** ./src/property-editors/strings.html ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/strings.scss\":\n/*!*******************************************!*\\\n !*** ./src/property-editors/strings.scss ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/strings.ts\":\n/*!*****************************************!*\\\n !*** ./src/property-editors/strings.ts ***!\n \\*****************************************/\n/*! exports provided: PropertyEditorStringsViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorStringsViewModel\", function() { return PropertyEditorStringsViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _strings_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./strings.scss */ \"./src/property-editors/strings.scss\");\n/* harmony import */ var _strings_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_strings_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./strings.html */ \"./src/property-editors/strings.html\");\nvar PropertyEditorStringsViewModel = /** @class */ (function () {\n function PropertyEditorStringsViewModel(koTextValue, readOnly, displayName, koDisplayError, koErrorText, onKeydown, afterRender) {\n this.koTextValue = koTextValue;\n this.readOnly = readOnly;\n this.displayName = displayName;\n this.koDisplayError = koDisplayError;\n this.koErrorText = koErrorText;\n this.onKeydown = onKeydown;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorStringsViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-strings\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorStringsViewModel(model.koTextValue, model.readOnly, model.displayName, model.koDisplayError, model.koErrorText, model.onInputKeydown, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/switch.html\":\n/*!******************************************!*\\\n !*** ./src/property-editors/switch.html ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/switch.scss\":\n/*!******************************************!*\\\n !*** ./src/property-editors/switch.scss ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/switch.ts\":\n/*!****************************************!*\\\n !*** ./src/property-editors/switch.ts ***!\n \\****************************************/\n/*! exports provided: PropertyEditorSwitchViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorSwitchViewModel\", function() { return PropertyEditorSwitchViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _switch_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./switch.scss */ \"./src/property-editors/switch.scss\");\n/* harmony import */ var _switch_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_switch_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./switch.html */ \"./src/property-editors/switch.html\");\nvar PropertyEditorSwitchViewModel = /** @class */ (function () {\n function PropertyEditorSwitchViewModel(koValue, readOnly, displayName, afterRender) {\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.displayName = displayName;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorSwitchViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-switch\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorSwitchViewModel(model.koValue, model.readOnly, model.displayName, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-editors/text.html\":\n/*!****************************************!*\\\n !*** ./src/property-editors/text.html ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-editors/text.scss\":\n/*!****************************************!*\\\n !*** ./src/property-editors/text.scss ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-editors/text.ts\":\n/*!**************************************!*\\\n !*** ./src/property-editors/text.ts ***!\n \\**************************************/\n/*! exports provided: PropertyEditorTextViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyEditorTextViewModel\", function() { return PropertyEditorTextViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _text_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text.scss */ \"./src/property-editors/text.scss\");\n/* harmony import */ var _text_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_text_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./text.html */ \"./src/property-editors/text.html\");\nvar PropertyEditorTextViewModel = /** @class */ (function () {\n function PropertyEditorTextViewModel(koValue, readOnly, isDisplayNameVisible, koMaxLength, displayName, onBlur, onFocus, onKeydown, afterRender) {\n this.koValue = koValue;\n this.readOnly = readOnly;\n this.isDisplayNameVisible = isDisplayNameVisible;\n this.koMaxLength = koMaxLength;\n this.displayName = displayName;\n this.onBlur = onBlur;\n this.onFocus = onFocus;\n this.onKeydown = onKeydown;\n this.afterRender = afterRender;\n afterRender();\n }\n return PropertyEditorTextViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-editor-text\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new PropertyEditorTextViewModel(model.koValue, model.readOnly, model.isDisplayNameVisible, model.koMaxLength, model.displayName, model.onBlur, model.onFocus, model.onInputKeydown, function () {\n typeof params.afterRender === \"function\" &&\n params.afterRender.call(model, componentInfo);\n typeof model.koAfterRender === \"function\" &&\n model.koAfterRender.call(model, componentInfo);\n });\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-content.html\":\n/*!******************************************************!*\\\n !*** ./src/property-grid/object-editor-content.html ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n
\\n\\n
\\n \\n
\\n\\n\\n\\n\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-content.scss\":\n/*!******************************************************!*\\\n !*** ./src/property-grid/object-editor-content.scss ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-content.ts\":\n/*!****************************************************!*\\\n !*** ./src/property-grid/object-editor-content.ts ***!\n \\****************************************************/\n/*! exports provided: ObjectEditorContentViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectEditorContentViewModel\", function() { return ObjectEditorContentViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _object_editor_content_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./object-editor-content.scss */ \"./src/property-grid/object-editor-content.scss\");\n/* harmony import */ var _object_editor_content_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_object_editor_content_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./object-editor-content.html */ \"./src/property-grid/object-editor-content.html\");\nvar ObjectEditorContentViewModel = /** @class */ (function () {\n function ObjectEditorContentViewModel(useTabsInElementEditor, koTabs, koActiveTab, onTabClick) {\n this.useTabsInElementEditor = useTabsInElementEditor;\n this.koTabs = koTabs;\n this.koActiveTab = koActiveTab;\n this.onTabClick = onTabClick;\n }\n Object.defineProperty(ObjectEditorContentViewModel.prototype, \"activeTab\", {\n get: function () {\n var tab = this.koActiveTab();\n if (typeof tab === \"undefined\") {\n return this.koTabs()[0].name;\n }\n return tab;\n },\n enumerable: false,\n configurable: true\n });\n return ObjectEditorContentViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-object-editor-content\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n if (!model && typeof params.elementEditorContent === \"function\") {\n model = params.elementEditorContent();\n }\n else if (!model) {\n model = params.elementEditorContent;\n }\n return new ObjectEditorContentViewModel(model.useTabsInElementEditor, model.koTabs, model.koActiveTab, model[\"onTabClick\"] //TODO the property doesn't exist in SurveyElementEditorContentModel but exists in SurveyQuestionEditor\n );\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-old-table-content.html\":\n/*!****************************************************************!*\\\n !*** ./src/property-grid/object-editor-old-table-content.html ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n
\\n \\n \\n \\n\\n \\n \\n \\n
\\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-old-table-content.scss\":\n/*!****************************************************************!*\\\n !*** ./src/property-grid/object-editor-old-table-content.scss ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-old-table-content.ts\":\n/*!**************************************************************!*\\\n !*** ./src/property-grid/object-editor-old-table-content.ts ***!\n \\**************************************************************/\n/*! exports provided: ObjectEditorOldTableContentViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectEditorOldTableContentViewModel\", function() { return ObjectEditorOldTableContentViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _object_editor_old_table_content_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./object-editor-old-table-content.scss */ \"./src/property-grid/object-editor-old-table-content.scss\");\n/* harmony import */ var _object_editor_old_table_content_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_object_editor_old_table_content_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./object-editor-old-table-content.html */ \"./src/property-grid/object-editor-old-table-content.html\");\nvar ObjectEditorOldTableContentViewModel = /** @class */ (function () {\n function ObjectEditorOldTableContentViewModel(koProperties, koTab, componentInfo) {\n this.koProperties = koProperties;\n this.koTab = koTab;\n }\n return ObjectEditorOldTableContentViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-object-editor-old-table-content\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.elementEditorContent();\n return new ObjectEditorOldTableContentViewModel(model.koProperties, model.koTab, componentInfo);\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-tab.html\":\n/*!**************************************************!*\\\n !*** ./src/property-grid/object-editor-tab.html ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-tab.scss\":\n/*!**************************************************!*\\\n !*** ./src/property-grid/object-editor-tab.scss ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor-tab.ts\":\n/*!************************************************!*\\\n !*** ./src/property-grid/object-editor-tab.ts ***!\n \\************************************************/\n/*! exports provided: ObjectEditorTabViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectEditorTabViewModel\", function() { return ObjectEditorTabViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _object_editor_tab_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./object-editor-tab.scss */ \"./src/property-grid/object-editor-tab.scss\");\n/* harmony import */ var _object_editor_tab_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_object_editor_tab_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./object-editor-tab.html */ \"./src/property-grid/object-editor-tab.html\");\nvar ObjectEditorTabViewModel = /** @class */ (function () {\n function ObjectEditorTabViewModel(name, editorProperties, koAfterRenderProperty, afterRender) {\n this.name = name;\n this.editorProperties = editorProperties;\n this.koAfterRenderProperty = koAfterRenderProperty;\n this.afterRender = afterRender;\n }\n return ObjectEditorTabViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-object-editor-tab\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new ObjectEditorTabViewModel(model.name, model.editorProperties, model.koAfterRenderProperty, model.koAfterRender);\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor.html\":\n/*!**********************************************!*\\\n !*** ./src/property-grid/object-editor.html ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\\n \\n \\n \\n\\n \\n \\n \\n
\\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor.scss\":\n/*!**********************************************!*\\\n !*** ./src/property-grid/object-editor.scss ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-grid/object-editor.ts\":\n/*!********************************************!*\\\n !*** ./src/property-grid/object-editor.ts ***!\n \\********************************************/\n/*! exports provided: ObjectEditorViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectEditorViewModel\", function() { return ObjectEditorViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _object_editor_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./object-editor.scss */ \"./src/property-grid/object-editor.scss\");\n/* harmony import */ var _object_editor_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_object_editor_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./object-editor.html */ \"./src/property-grid/object-editor.html\");\nvar ObjectEditorViewModel = /** @class */ (function () {\n function ObjectEditorViewModel(koIsOldTableAppearance, koElementEditor, koHasObject) {\n this.koIsOldTableAppearance = koIsOldTableAppearance;\n this.koElementEditor = koElementEditor;\n this.koHasObject = koHasObject;\n }\n return ObjectEditorViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-object-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return new ObjectEditorViewModel(model.koIsOldTableAppearance, model.koElementEditor, model.koHasObject);\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/property-grid/property-grid.html\":\n/*!**********************************************!*\\\n !*** ./src/property-grid/property-grid.html ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/property-grid/property-grid.scss\":\n/*!**********************************************!*\\\n !*** ./src/property-grid/property-grid.scss ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/property-grid/property-grid.ts\":\n/*!********************************************!*\\\n !*** ./src/property-grid/property-grid.ts ***!\n \\********************************************/\n/*! exports provided: PropertyGridViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyGridViewModel\", function() { return PropertyGridViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _property_grid_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./property-grid.scss */ \"./src/property-grid/property-grid.scss\");\n/* harmony import */ var _property_grid_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_property_grid_scss__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\n\nvar templateHtml = __webpack_require__(/*! ./property-grid.html */ \"./src/property-grid/property-grid.html\");\n\nvar PropertyGridViewModel = /** @class */ (function () {\n function PropertyGridViewModel(koObjects, koSelectedObject, propertyGridObjectEditorModel) {\n this.koObjects = koObjects;\n this.koSelectedObject = koSelectedObject;\n this.propertyGridObjectEditorModel = propertyGridObjectEditorModel;\n }\n PropertyGridViewModel.prototype.getLocString = function (str) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(str);\n };\n return PropertyGridViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-property-grid\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var creator = params.creator;\n return new PropertyGridViewModel(creator.koObjects, creator.koSelectedObject, creator.propertyGridObjectEditorModel);\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/editableObject.ts\":\n/*!***********************************************!*\\\n !*** ./src/propertyEditors/editableObject.ts ***!\n \\***********************************************/\n/*! exports provided: EditableObject */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EditableObject\", function() { return EditableObject; });\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_0__);\n\nvar EditableObject = /** @class */ (function () {\n function EditableObject(obj) {\n this.objValue = obj;\n this.editableObjValue = this.createEditableObj();\n }\n EditableObject.isCopyObject = function (obj) {\n return !!obj && obj[\"isCopy\"];\n };\n EditableObject.getSurvey = function (object) {\n if (object instanceof survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"SurveyModel\"] ||\n (!!object && !!object.getType && object.getType() == \"survey\")) {\n return EditableObject.getOriginalSurvey(object);\n }\n if (object instanceof survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"MatrixDropdownColumn\"] && !!object.colOwner)\n return object.colOwner[\"survey\"];\n if (!!object) {\n if (!!object.survey)\n return EditableObject.getOriginalSurvey(object.survey);\n if (!!object.owner)\n return EditableObject.getSurvey(object.owner);\n if (!!object.errorOwner)\n return EditableObject.getSurvey(object.errorOwner);\n if (!!object.locOwner)\n return EditableObject.getSurvey(object.locOwner);\n }\n var original = EditableObject.getOriginalObject(object);\n if (!!original && original !== object)\n return EditableObject.getSurvey(original);\n return null;\n };\n EditableObject.getOriginalObject = function (object) {\n return !!object && !!object[\"originalObj\"] ? object[\"originalObj\"] : object;\n };\n EditableObject.getOriginalSurvey = function (survey) {\n return EditableObject.getOriginalObject(survey);\n };\n Object.defineProperty(EditableObject.prototype, \"obj\", {\n get: function () {\n return this.objValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EditableObject.prototype, \"editableObj\", {\n get: function () {\n return this.editableObjValue;\n },\n enumerable: false,\n configurable: true\n });\n EditableObject.prototype.isPropertyChanged = function (propertyName) {\n if (propertyName == \"pages\")\n return false; //We update pages in our own way\n return !survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].isTwoValueEquals(this.obj[propertyName], this.editableObj[propertyName]);\n };\n EditableObject.prototype.apply = function (propertyName) {\n if (propertyName == \"pages\") {\n this.applyPages();\n return;\n }\n if (propertyName == \"bindings\") {\n this.obj.bindings.setJson(this.editableObj.bindings.getJson());\n return;\n }\n if (!this.isPropertyChanged(propertyName))\n return;\n if (Array.isArray(this.obj[propertyName]) &&\n Array.isArray(this.editableObj[propertyName])) {\n var dest = this.obj[propertyName];\n var src = this.editableObj[propertyName];\n dest.splice(0, dest.length);\n for (var i = 0; i < src.length; i++) {\n dest.push(src[i]);\n }\n }\n else {\n this.obj[propertyName] = this.editableObj[propertyName];\n }\n };\n EditableObject.prototype.reset = function () {\n this.assignProperties(this.editableObj);\n };\n EditableObject.prototype.applyAll = function (excludedProps) {\n if (excludedProps === void 0) { excludedProps = []; }\n var props = this.getProperties(excludedProps);\n for (var i = 0; i < props.length; i++) {\n this.apply(props[i]);\n }\n };\n EditableObject.prototype.getProperties = function (excludedProps) {\n var props = [];\n var newJSON = this.getObjJson(this.editableObj);\n var oldJSON = this.getObjJson(this.obj);\n for (var key in newJSON) {\n if (excludedProps.indexOf(key) > -1)\n continue;\n props.push(key);\n }\n for (var key in oldJSON) {\n if (excludedProps.indexOf(key) > -1 || props.indexOf(key) > -1)\n continue;\n props.push(key);\n }\n if (!!this.obj[\"page\"] && this.obj[\"page\"] !== this.editableObj[\"page\"]) {\n props.push(\"page\");\n }\n return props;\n };\n EditableObject.prototype.createEditableObj = function () {\n var type = this.obj.getType();\n var res = survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].createClass(type);\n if (res == null && type == \"survey\") {\n res = new survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"Survey\"]();\n }\n this.assignProperties(res);\n if (type == \"matrixdropdowncolumn\") {\n res[\"colOwner\"] = this.obj[\"colOwner\"];\n }\n if (type != \"survey\") {\n if (!!res[\"setSurveyImpl\"]) {\n res[\"setSurveyImpl\"](this.obj[\"survey\"]);\n }\n else {\n if (!!this.obj[\"survey\"] && !res[\"survey\"]) {\n res[\"survey\"] = this.obj[\"survey\"];\n }\n }\n }\n if (!!this.obj[\"parent\"]) {\n res[\"parent\"] = this.obj[\"parent\"];\n }\n if (!!this.obj[\"page\"]) {\n res[\"copyPageValue\"] = this.obj[\"page\"];\n Object.defineProperty(res, \"page\", {\n get: function () { return res[\"copyPageValue\"]; },\n set: function (value) { res[\"copyPageValue\"] = value; }\n });\n }\n res[\"isCopy\"] = true;\n res[\"originalObj\"] = this.obj;\n if (res.getType() == \"survey\") {\n var pages = res.pages;\n for (var i = 0; i < pages.length; i++) {\n pages[i][\"originalObj\"] = this.obj.pages[i];\n }\n }\n return res;\n };\n EditableObject.prototype.assignProperties = function (obj) {\n new survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"JsonObject\"]().toObject(this.getObjJson(), obj);\n };\n EditableObject.prototype.getObjJson = function (obj) {\n if (obj === void 0) { obj = null; }\n if (!obj)\n obj = this.obj;\n var jsonObj = new survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"JsonObject\"]();\n jsonObj.lightSerializing = true;\n return jsonObj.toJsonObject(obj);\n };\n EditableObject.prototype.applyPages = function () {\n var editablePages = this.editableObj.pages;\n var pages = this.obj.pages;\n for (var i = 0; i < editablePages.length; i++) {\n var editablePage = editablePages[i];\n var page = editablePages[i].originalObj;\n if (!!page) {\n page.name = editablePage.name;\n page.title = editablePage.title;\n page.description = editablePage.description;\n }\n else {\n editablePage.originalObj = editablePage;\n pages.splice(i, 0, editablePage);\n }\n }\n if (!this.isPageOrderChagned())\n return;\n Object.getPrototypeOf(pages).splice.call(pages, 0, pages.length);\n for (var i = 0; i < editablePages.length; i++) {\n if (i < editablePages.length - 1) {\n Object.getPrototypeOf(pages).push.call(pages, editablePages[i].originalObj);\n }\n else {\n //send notification about changes\n pages.push(editablePages[i].originalObj);\n }\n }\n this.obj.currentPageNo = 0;\n };\n EditableObject.prototype.isPageOrderChagned = function () {\n var editablePages = this.editableObj.pages;\n var pages = this.obj.pages;\n if (editablePages.length !== pages.length)\n return true;\n for (var i = 0; i < editablePages.length; i++) {\n if (editablePages[i].originalObj !== pages[i])\n return true;\n }\n return false;\n };\n return EditableObject;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyBindingsEditor.ts\":\n/*!*******************************************************!*\\\n !*** ./src/propertyEditors/propertyBindingsEditor.ts ***!\n \\*******************************************************/\n/*! exports provided: SurveyPropertyBindingsItem, SurveyPropertyBindingsEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyBindingsItem\", function() { return SurveyPropertyBindingsItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyBindingsEditor\", function() { return SurveyPropertyBindingsEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyModalEditor */ \"./src/propertyEditors/propertyModalEditor.ts\");\n/* harmony import */ var _surveyElementSelector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./surveyElementSelector */ \"./src/propertyEditors/surveyElementSelector.ts\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n\n\n\n\n\n\nvar SurveyPropertyBindingsItem = /** @class */ (function () {\n function SurveyPropertyBindingsItem(property, displayName, obj) {\n this.property = property;\n this.displayName = displayName;\n this.obj = obj;\n }\n Object.defineProperty(SurveyPropertyBindingsItem.prototype, \"value\", {\n get: function () {\n return !!this.elementSelector ? this.elementSelector.koValue() : \"\";\n },\n set: function (val) {\n if (!!this.elementSelector) {\n this.elementSelector.koValue(val);\n }\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyBindingsItem.prototype.setElementSelector = function (survey, showTitle) {\n var _this = this;\n this.elementSelectorValue = new _surveyElementSelector__WEBPACK_IMPORTED_MODULE_4__[\"SurveyElementSelector\"](survey, \"question\", showTitle);\n this.value = this.obj[\"bindings\"].getValueNameByPropertyName(this.property.name);\n this.elementSelectorValue.onValueChangedCallback = function (val) {\n _this.obj[\"bindings\"].setBinding(_this.property.name, val);\n };\n };\n Object.defineProperty(SurveyPropertyBindingsItem.prototype, \"elementSelector\", {\n get: function () {\n return this.elementSelectorValue;\n },\n enumerable: false,\n configurable: true\n });\n return SurveyPropertyBindingsItem;\n}());\n\nvar SurveyPropertyBindingsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyBindingsEditor, _super);\n function SurveyPropertyBindingsEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.items = [];\n return _this;\n }\n Object.defineProperty(SurveyPropertyBindingsEditor.prototype, \"editorType\", {\n get: function () {\n return \"bindings\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyBindingsEditor.prototype.beforeShowCore = function () {\n _super.prototype.beforeShowCore.call(this);\n if (!!this.object) {\n this.fillBindingItems();\n }\n };\n SurveyPropertyBindingsEditor.prototype.fillBindingItems = function () {\n if (!this.object)\n return;\n var survey = _editableObject__WEBPACK_IMPORTED_MODULE_5__[\"EditableObject\"].getSurvey(this.object);\n if (!survey)\n return;\n var showTitle = !!this.options\n ? this.options.showTitlesInExpressions\n : false;\n var props = this.getProperties();\n for (var i = 0; i < props.length; i++) {\n var item = new SurveyPropertyBindingsItem(props[i], this.getPropertyDisplayName(props[i]), this.object);\n item.setElementSelector(survey, showTitle);\n this.items.push(item);\n }\n };\n ///TODO refactor use only this.object.bindings.getProperties()\n SurveyPropertyBindingsEditor.prototype.getProperties = function () {\n var res = [];\n if (!!this.object.bindings.getProperties)\n return this.object.bindings.getProperties();\n var names = this.object.bindings.getNames();\n for (var i = 0; i < names.length; i++) {\n var prop = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findProperty(this.object.getType(), names[i]);\n if (!!prop)\n res.push(prop);\n }\n return res;\n };\n return SurveyPropertyBindingsEditor;\n}(_propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyModalEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_2__[\"SurveyPropertyEditorFactory\"].registerEditor(\"bindings\", function (property) {\n return new SurveyPropertyBindingsEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyCalculatedValues.ts\":\n/*!*********************************************************!*\\\n !*** ./src/propertyEditors/propertyCalculatedValues.ts ***!\n \\*********************************************************/\n/*! exports provided: SurveyPropertyCalculatedValueEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyCalculatedValueEditor\", function() { return SurveyPropertyCalculatedValueEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyNestedPropertyEditor */ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n\n\n\n\n\nvar SurveyPropertyCalculatedValueEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyCalculatedValueEditor, _super);\n function SurveyPropertyCalculatedValueEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyCalculatedValueEditor.prototype, \"editorType\", {\n get: function () {\n return \"calculated-values\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyCalculatedValueEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"nested-items\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyCalculatedValueEditor.prototype.getEditorName = function () {\n if (!this.koEditItem())\n return \"\";\n return this.koEditItem().name;\n };\n SurveyPropertyCalculatedValueEditor.prototype.createNewItem = function () {\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"CalculatedValue\"](this.getNewName());\n };\n SurveyPropertyCalculatedValueEditor.prototype.getColumnsProperties = function () {\n var names = this.getPropertiesNames(\"calculatedvalue@items\", []);\n return this.getPropertiesByNames(\"calculatedvalue\", names);\n };\n SurveyPropertyCalculatedValueEditor.prototype.getNewName = function () {\n var objs = [];\n var items = this.originalValue;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (!!item) {\n objs.push({ name: item.name });\n }\n }\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_4__[\"SurveyHelper\"].getNewName(objs, SurveyPropertyCalculatedValueEditor.ValueBaseName);\n };\n SurveyPropertyCalculatedValueEditor.ValueBaseName = \"var\";\n return SurveyPropertyCalculatedValueEditor;\n}(_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_2__[\"SurveyNestedPropertyEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorFactory\"].registerEditor(\"calculatedvalues\", function (property) {\n return new SurveyPropertyCalculatedValueEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyCellsEditor.ts\":\n/*!****************************************************!*\\\n !*** ./src/propertyEditors/propertyCellsEditor.ts ***!\n \\****************************************************/\n/*! exports provided: SurveyPropertyCellsEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyCellsEditor\", function() { return SurveyPropertyCellsEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyModalEditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyModalEditor */ \"./src/propertyEditors/propertyModalEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n\n\n\n\n\nvar SurveyPropertyCellsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyCellsEditor, _super);\n function SurveyPropertyCellsEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.koRows = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n _this.koColumns = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n _this.koCanEdit = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n return _this;\n }\n SurveyPropertyCellsEditor.prototype.getValueText = function (value) {\n var strName = !value ? \"empty\" : \"notEmpty\";\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getPropertyNameInEditor(strName);\n };\n SurveyPropertyCellsEditor.prototype.beforeShowCore = function () {\n _super.prototype.beforeShowCore.call(this);\n this.setupCells();\n };\n Object.defineProperty(SurveyPropertyCellsEditor.prototype, \"editorType\", {\n get: function () {\n return \"cells\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyCellsEditor.prototype.onValueChanged = function () {\n if (this.isBeforeShowCalled) {\n this.setupCells();\n }\n };\n Object.defineProperty(SurveyPropertyCellsEditor.prototype, \"canEdit\", {\n get: function () {\n return this.rows.length > 0 && this.columns.length > 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyCellsEditor.prototype, \"rows\", {\n get: function () {\n return this.object && this.object.rows ? this.object.rows : [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyCellsEditor.prototype, \"columns\", {\n get: function () {\n return this.object && this.object.columns ? this.object.columns : [];\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyCellsEditor.prototype.getCellText = function (rowIndex, columnIndex) {\n if (rowIndex < 0)\n return this.object.getDefaultCellText(columnIndex);\n return this.object.getCellText(rowIndex, columnIndex);\n };\n SurveyPropertyCellsEditor.prototype.setupCells = function () {\n this.koRows([]);\n this.koColumns([]);\n this.koCanEdit(this.canEdit);\n if (!this.canEdit)\n return;\n var cols = [];\n for (var i = 0; i < this.columns.length; i++) {\n cols.push(this.columns[i].text);\n }\n var rows = [];\n rows.push(this.createRow(-1, _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getString(\"pe.cellsDefaultRow\")));\n for (var i = 0; i < this.rows.length; i++) {\n rows.push(this.createRow(i, this.rows[i].text));\n }\n this.koColumns(cols);\n this.koRows(rows);\n };\n SurveyPropertyCellsEditor.prototype.createRow = function (rowIndex, rowText) {\n var row = {\n rowIndex: rowIndex,\n rowText: rowText,\n koCells: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"](),\n };\n var cells = [];\n for (var i = 0; i < this.columns.length; i++) {\n cells.push({ text: this.createCellText(rowIndex, i) });\n }\n row.koCells(cells);\n return row;\n };\n SurveyPropertyCellsEditor.prototype.createCellText = function (rowIndex, colIndex) {\n var self = this;\n var text = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](this.getCellText(rowIndex, colIndex));\n var colValue = this.columns[colIndex].value;\n text.subscribe(function (val) {\n if (rowIndex < 0)\n self.originalValue.setDefaultCellText(colValue, val);\n else\n self.originalValue.setCellText(rowIndex, colValue, val);\n });\n return text;\n };\n return SurveyPropertyCellsEditor;\n}(_propertyModalEditor__WEBPACK_IMPORTED_MODULE_2__[\"SurveyPropertyModalEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerEditor(\"cells\", function (property) {\n return new SurveyPropertyCellsEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyConditionEditor.ts\":\n/*!********************************************************!*\\\n !*** ./src/propertyEditors/propertyConditionEditor.ts ***!\n \\********************************************************/\n/*! exports provided: ConditionEditorItem, SurveyPropertyConditionEditor, doGetCompletions, insertMatch */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConditionEditorItem\", function() { return ConditionEditorItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyConditionEditor\", function() { return SurveyPropertyConditionEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"doGetCompletions\", function() { return doGetCompletions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertMatch\", function() { return insertMatch; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyModalEditor */ \"./src/propertyEditors/propertyModalEditor.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n/* harmony import */ var _expressionToDisplayText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../expressionToDisplayText */ \"./src/expressionToDisplayText.ts\");\n/* harmony import */ var _propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./propertyDefaultValueEditor */ \"./src/propertyEditors/propertyDefaultValueEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n\n\n\n\n\n\n\n\n\n\nvar ConditionEditorItem = /** @class */ (function () {\n function ConditionEditorItem(owner) {\n var _this = this;\n this.owner = owner;\n var json = {\n showNavigationButtons: false,\n showPageTitles: false,\n showQuestionNumbers: \"off\",\n textUpdateMode: \"onTyping\",\n requiredText: \"\",\n questions: [\n {\n name: \"conjunction\",\n type: \"dropdown\",\n titleLocation: \"hidden\",\n allowClear: false,\n visible: false,\n choices: [\"and\", \"or\"],\n },\n {\n name: \"questionName\",\n type: \"dropdown\",\n titleLocation: \"hidden\",\n allowClear: false,\n startWithNewLine: false,\n isRequired: true,\n },\n {\n name: \"operator\",\n type: \"dropdown\",\n titleLocation: \"hidden\",\n startWithNewLine: false,\n allowClear: false,\n isRequired: true,\n enableIf: \"{questionName} notempty\",\n },\n ],\n };\n this.survey = !!owner.options\n ? owner.options.createSurvey(json, \"conditionEditor\")\n : new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Survey\"](json);\n if (owner.readOnly()) {\n this.survey.mode = \"display\";\n }\n this.survey.onValueChanged.add(function (sender, options) {\n if (options.name == \"questionName\") {\n _this.rebuildQuestionValue();\n _this.setOperator();\n }\n if (options.name == \"operator\") {\n _this.rebuildQuestionValueOnOperandChanging();\n }\n _this.owner.onConditionItemChanged();\n _this.updateOperatorEnables();\n });\n this.setupSurvey();\n }\n Object.defineProperty(ConditionEditorItem.prototype, \"conjunction\", {\n get: function () {\n return this.getSurveyValue(\"conjunction\");\n },\n set: function (val) {\n this.setSurveyValue(\"conjunction\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"questionName\", {\n get: function () {\n return this.getSurveyValue(\"questionName\");\n },\n set: function (val) {\n this.setSurveyValue(\"questionName\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"operator\", {\n get: function () {\n return this.getSurveyValue(\"operator\");\n },\n set: function (val) {\n this.setSurveyValue(\"operator\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"value\", {\n get: function () {\n return this.getSurveyValue(\"questionValue\");\n },\n set: function (val) {\n this.setSurveyValue(\"questionValue\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"isFirst\", {\n get: function () {\n return !this.conjunctionQuestion.isVisible;\n },\n set: function (val) {\n this.conjunctionQuestion.visible = !val;\n this.updateQuestionsWidth();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"isReady\", {\n get: function () {\n return (!!this.questionName &&\n (!this.isValueRequired || !this.survey.isValueEmpty(this.value)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"conjunctionQuestion\", {\n get: function () {\n return (this.survey.getQuestionByName(\"conjunction\"));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"nameQuestion\", {\n get: function () {\n return (this.survey.getQuestionByName(\"questionName\"));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"operatorQuestion\", {\n get: function () {\n return this.survey.getQuestionByName(\"operator\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConditionEditorItem.prototype, \"valueQuestion\", {\n get: function () {\n return this.survey.getQuestionByName(\"questionValue\");\n },\n enumerable: false,\n configurable: true\n });\n ConditionEditorItem.prototype.toString = function () {\n if (!this.isReady)\n return \"\";\n var text = \"{\" +\n this.getQuestionValueByName(this.questionName) +\n \"} \" +\n this.getOperatorText();\n if (this.isValueRequired) {\n text += \" \" + this.getValueText();\n }\n return text;\n };\n Object.defineProperty(ConditionEditorItem.prototype, \"isValueRequired\", {\n get: function () {\n var question = this.valueQuestion;\n return !!question && !question.isReadOnly;\n },\n enumerable: false,\n configurable: true\n });\n ConditionEditorItem.prototype.getLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_8__[\"editorLocalization\"].getString(name);\n };\n ConditionEditorItem.prototype.setupSurvey = function () {\n var questionConjunction = this.conjunctionQuestion;\n questionConjunction.choices[0].text = this.getLocString(\"pe.and\");\n questionConjunction.choices[1].text = this.getLocString(\"pe.or\");\n var questionName = this.nameQuestion;\n questionName.choices = this.getChoices(this.owner.allConditionQuestions);\n questionName.optionsCaption = this.getLocString(\"pe.conditionSelectQuestion\");\n this.operatorQuestion.choices = this.getChoices(_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].getOperators());\n _propertyDefaultValueEditor__WEBPACK_IMPORTED_MODULE_7__[\"SurveyPropertyDefaultValueEditor\"].updateSurveyStyle(this.survey);\n this.rebuildQuestionValue();\n this.survey.data = { operator: \"equal\", conjunction: \"and\" };\n this.updateQuestionsWidth();\n };\n ConditionEditorItem.prototype.getSurveyValue = function (name) {\n return this.survey.getValue(name);\n };\n ConditionEditorItem.prototype.setSurveyValue = function (name, val) {\n this.survey.setValue(name, val);\n };\n ConditionEditorItem.prototype.rebuildQuestionValue = function () {\n this.survey.clearValue(\"questionValue\");\n var json = this.owner.getQuestionValueJSON(this.questionName, this.operator);\n if (!json) {\n json = {\n type: \"text\",\n };\n }\n json.isRequired = true;\n _surveyHelper__WEBPACK_IMPORTED_MODULE_9__[\"SurveyHelper\"].updateQuestionJson(json);\n json.enableIf =\n \"{questionName} notempty and {operator} != 'empty' and {operator} != 'notempty'\";\n var newQuestion = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].createClass(json.type);\n delete json.type;\n new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"JsonObject\"]().toObject(json, newQuestion);\n if (!newQuestion) {\n newQuestion = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].createClass(\"text\", json);\n }\n var oldQuestion = this.valueQuestion;\n if (!!oldQuestion) {\n this.survey.pages[0].removeElement(oldQuestion);\n }\n if (this.canShowQuestionValue()) {\n newQuestion.name = \"questionValue\";\n newQuestion.title = this.getLocString(\"pe.conditionValueQuestionTitle\");\n newQuestion.description = \"\";\n newQuestion.titleLocation = \"default\";\n newQuestion.hasComment = false;\n if (this.isKeepQuestonValueOnSameLine(newQuestion.getType())) {\n newQuestion.titleLocation = \"hidden\";\n newQuestion.startWithNewLine = false;\n }\n this.survey.pages[0].addElement(newQuestion);\n }\n this.updateQuestionsWidth();\n };\n ConditionEditorItem.prototype.isKeepQuestonValueOnSameLine = function (questionType) {\n if (!this.owner.isWideMode)\n return false;\n return this.owner.isClassContains(questionType, [\"text\", \"dropdown\", \"rating\", \"boolean\"], []);\n };\n ConditionEditorItem.prototype.rebuildQuestionValueOnOperandChanging = function () {\n if (!this.questionName)\n return;\n var json = this.owner.getQuestionValueJSON(this.questionName, this.operator);\n var question = this.valueQuestion;\n if (!!question && question.isReadOnly) {\n this.value = null;\n }\n if (!question || (!!json && json.type == question.getType()))\n return;\n this.rebuildQuestionValue();\n };\n ConditionEditorItem.prototype.updateQuestionsWidth = function () {\n var isWide = this.owner.isWideMode;\n var paddingRight = isWide ? \"20px\" : \"5px\";\n var isValueSameLine = !!this.valueQuestion && !this.valueQuestion.startWithNewLine;\n if (!!this.conjunctionQuestion) {\n this.conjunctionQuestion.minWidth = \"50px\";\n this.conjunctionQuestion.width = this.isFirst ? \"\" : \"100px\";\n this.conjunctionQuestion.paddingRight = paddingRight;\n }\n this.nameQuestion.minWidth = \"50px\";\n this.nameQuestion.width = isWide\n ? this.isFirst\n ? \"40%\"\n : \"25%\"\n : this.isFirst\n ? \"70%\"\n : \"45%\";\n this.nameQuestion.paddingRight = paddingRight;\n this.operatorQuestion.minWidth = \"50px\";\n this.operatorQuestion.width = isWide\n ? isValueSameLine\n ? \"25%\"\n : \"60%\"\n : \"30%\";\n this.operatorQuestion.paddingRight = paddingRight;\n if (!!this.valueQuestion) {\n this.valueQuestion.minWidth = \"50px\";\n this.valueQuestion.width = isValueSameLine ? \"35%\" : \"\";\n this.valueQuestion.paddingRight = paddingRight;\n }\n };\n ConditionEditorItem.prototype.setOperator = function () {\n this.operator = \"equal\";\n };\n ConditionEditorItem.prototype.getChoices = function (arr) {\n var res = [];\n for (var i = 0; i < arr.length; i++) {\n res.push(new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ItemValue\"](arr[i].name, arr[i].text));\n }\n return res;\n };\n ConditionEditorItem.prototype.getQuestionValueByName = function (questionName) {\n var question = this.owner.getQuestionByName(questionName);\n if (question &&\n question.name != question.getValueName() &&\n questionName != question.getValueName()) {\n return questionName.replace(question.name, question.getValueName());\n }\n return questionName;\n };\n ConditionEditorItem.prototype.getValueText = function () {\n var val = this.value;\n if (!val)\n return val;\n if (!Array.isArray(val))\n return this.valToText(val);\n var res = \"[\";\n for (var i = 0; i < val.length; i++) {\n res += this.valToText(val[i]);\n if (i < val.length - 1)\n res += \", \";\n }\n res += \"]\";\n return res;\n };\n ConditionEditorItem.prototype.valToText = function (val) {\n if (val == \"true\" || val == \"false\")\n return val;\n if (this.isNumeric(val))\n return val;\n if (val[0] == \"[\")\n return val.replace(/(?!^)(['])(?!$)/g, \"\\\\$1\");\n if (!this.isQuote(val[0]))\n val = \"'\" + val;\n if (!this.isQuote(val[val.length - 1]))\n val = val + \"'\";\n return val.replace(/(?!^)(['\"])(?!$)/g, \"\\\\$1\");\n };\n ConditionEditorItem.prototype.isNumeric = function (val) {\n if (typeof val === \"string\" &&\n val.length > 1 &&\n val[0] === \"0\" &&\n val[1] !== \"x\")\n return false;\n return !isNaN(val);\n };\n ConditionEditorItem.prototype.isQuote = function (ch) {\n return ch == \"'\" || ch == '\"';\n };\n ConditionEditorItem.prototype.getOperatorText = function () {\n var op = this.operator;\n if (op == \"equal\")\n return \"=\";\n if (op == \"notequal\")\n return \"<>\";\n if (op == \"greater\")\n return \">\";\n if (op == \"less\")\n return \"<\";\n if (op == \"greaterorequal\")\n return \">=\";\n if (op == \"lessorequal\")\n return \"<=\";\n return op;\n };\n ConditionEditorItem.prototype.updateOperatorEnables = function () {\n if (!this.questionName)\n return;\n var json = this.owner.getQuestionValueJSON(this.questionName, \"equal\");\n var qType = !!json ? json.type : null;\n var questionOperator = this.operatorQuestion;\n if (!questionOperator)\n return;\n var choices = questionOperator.choices;\n var isCurrentOperatorEnabled = true;\n var op = this.operator;\n for (var i = 0; i < choices.length; i++) {\n choices[i].setIsEnabled(this.isOperatorEnabled(qType, this.getOperatorType(choices[i].value)));\n if (choices[i].value == op) {\n isCurrentOperatorEnabled = choices[i].isEnabled;\n }\n }\n if (!isCurrentOperatorEnabled) {\n this.operator = this.getFirstEnabledOperator(choices);\n }\n };\n ConditionEditorItem.prototype.getFirstEnabledOperator = function (choices) {\n for (var i = 0; i < choices.length; i++) {\n if (choices[i].isEnabled) {\n return choices[i].value;\n }\n }\n return \"equal\";\n };\n ConditionEditorItem.prototype.canShowQuestionValue = function () {\n var questionOperator = this.operatorQuestion;\n if (!questionOperator)\n return false;\n this.updateOperatorEnables();\n var choices = questionOperator.choices;\n for (var i = 0; i < choices.length; i++) {\n if (!choices[i].isEnabled)\n continue;\n var val = choices[i].value;\n if (val !== \"empty\" && val != \"notempty\")\n return true;\n }\n return false;\n };\n ConditionEditorItem.prototype.getOperatorType = function (operator) {\n var operators = _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].getOperators();\n for (var i = 0; i < operators.length; i++) {\n if (operators[i].name == operator)\n return operators[i].types;\n }\n return [];\n };\n ConditionEditorItem.prototype.isOperatorEnabled = function (qType, operatorTypes) {\n if (!qType)\n return true;\n if (!operatorTypes || operatorTypes.length == 0)\n return true;\n var contains = [];\n var notContains = [];\n for (var i = 0; i < operatorTypes.length; i++) {\n var name_1 = operatorTypes[i];\n if (name_1[0] == \"!\") {\n notContains.push(name_1.substr(1));\n }\n else {\n contains.push(name_1);\n }\n }\n return this.owner.isClassContains(qType, contains, notContains);\n };\n return ConditionEditorItem;\n}());\n\nvar SurveyPropertyConditionEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyConditionEditor, _super);\n function SurveyPropertyConditionEditor(property, _type, syntaxCheckMethodName) {\n if (_type === void 0) { _type = \"condition\"; }\n if (syntaxCheckMethodName === void 0) { syntaxCheckMethodName = \"createCondition\"; }\n var _this = _super.call(this, property) || this;\n _this._type = _type;\n _this.syntaxCheckMethodName = syntaxCheckMethodName;\n _this.addConditionQuestionsHash = {};\n _this.addConditionCalculatedValuesHash = {};\n _this.maxLogicItemsInCondition = 100;\n _this.addCondition = function () {\n var conditionEditorItem = new ConditionEditorItem(_this);\n _this.koEditorItems.push(conditionEditorItem);\n _this.updateEditorItemsVisibilities();\n setTimeout(function () {\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"tasks\"].runEarly();\n conditionEditorItem.conjunctionQuestion.focus();\n }, 1);\n };\n _this.removeCondition = function (item) {\n _this.koEditorItems.remove(item);\n if (_this.koEditorItems().length == 0) {\n _this.addCondition();\n }\n _this.updateEditorItemsVisibilities();\n _this.onConditionItemChanged();\n };\n _this.beforeShowCore = function () {\n _super.prototype.beforeShowCore.call(_this);\n _this.resetAllConditionQuestions();\n _this.onkoTextValueChanged(_this.koValue());\n if (!!_this.options) {\n if (_this.options.maxLogicItemsInCondition > 0) {\n _this.maxLogicItemsInCondition = _this.options.maxLogicItemsInCondition;\n }\n _this.koShowTabs(_this.options.allowEditExpressionsInTextEditor);\n }\n };\n _this.beforeShowModal = function () {\n _super.prototype.beforeShowModal.call(_this);\n _this.isEditorShowing = true;\n _this.isEditorHidingDisabled = true;\n };\n _this.getSurvey = function () {\n return _editableObject__WEBPACK_IMPORTED_MODULE_5__[\"EditableObject\"].getSurvey(_this.object);\n };\n _this.resetAllConditionQuestions = function () {\n _this.addConditionQuestionsHash = {};\n _this.addConditionCalculatedValuesHash = {};\n _this.allConditionQuestionsValue = _this.getConditionQuestions();\n _this.allConditionQuestionsValue.sort(function (a, b) {\n return a.text.localeCompare(b.text);\n });\n };\n _this.isConditionItemsBuilding = false;\n _this.koShowTabs = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.koShowExpressionHeader = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.koSetupText = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n _this.koActiveView = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"form\");\n _this.koTextValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]();\n _this.koEditorItems = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]([]);\n _this.koCanParseExpression = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.koConditionDisplayText = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n if (!!this.koValue())\n return this.getConditionDisplayText();\n return this.getLocString(\"pe.expressionIsEmpty\");\n }, _this);\n _this.koIsWideMode = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this.koIsEditorShowing = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this.koIsEditorHidingDisabled = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this.onShowHideEditor = function () {\n if (_this.koIsEditorHidingDisabled())\n return;\n _this.koIsEditorShowing(!_this.koIsEditorShowing());\n };\n _this.koIsTextConditionValid = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n var self = _this;\n _this.koCanParseExpression.subscribe(function (newValue) {\n if (newValue === false) {\n self.koActiveView(\"text\");\n }\n });\n _this.koIsEditorShowing.subscribe(function (newValue) {\n if (newValue === true) {\n self.buildEditorsItemsOnShowing();\n }\n });\n self.onRemoveConditionClick = function (item) {\n self.removeCondition(item);\n };\n self.onChangeViewClick = function (newView) {\n self.koActiveView(newView);\n };\n _this.koTextValue.subscribe(function (newValue) {\n self.onkoTextValueChanged(newValue);\n });\n _this.koCanAddItem = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n return (!_this.readOnly() &&\n _this.koEditorItems().length < _this.maxLogicItemsInCondition);\n });\n return _this;\n }\n SurveyPropertyConditionEditor.prototype.getPropertyHelpLocName = function () {\n var locName = _super.prototype.getPropertyHelpLocName.call(this);\n if (!locName && this.editorType == \"expression\") {\n locName = \"pe.expressionHelp\";\n }\n return locName;\n };\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"addConditionText\", {\n get: function () {\n return this.getLocString(\"pe.addCondition\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"removeConditionText\", {\n get: function () {\n return this.getLocString(\"pe.remove\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"isEditorShowing\", {\n get: function () {\n return this.koIsEditorShowing();\n },\n set: function (val) {\n this.koIsEditorShowing(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"isEditorHidingDisabled\", {\n get: function () {\n return this.koIsEditorHidingDisabled();\n },\n set: function (val) {\n this.koIsEditorHidingDisabled(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"isWideMode\", {\n get: function () {\n return this.koIsWideMode();\n },\n set: function (val) {\n this.koIsWideMode(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"editorType\", {\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"availableQuestions\", {\n get: function () {\n var survey = this.getSurvey();\n var result = !!survey ? survey.getAllQuestions() : [];\n !!this.options &&\n this.options.onConditionQuestionsGetListCallback(this.editablePropertyName, this.object, this, result);\n return result;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"allConditionQuestions\", {\n get: function () {\n if (!!this.allConditionQuestionsValue)\n return this.allConditionQuestionsValue;\n this.resetAllConditionQuestions();\n return this.allConditionQuestionsValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"isExpressionValid\", {\n get: function () {\n return this.koIsTextConditionValid() && !!this.koTextValue();\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyConditionEditor.prototype.onValueChanged = function () {\n this.koTextValue(this.koValue());\n };\n SurveyPropertyConditionEditor.prototype.getConditionQuestions = function () {\n if (!this.object)\n return [];\n var res = [];\n var questions = this.availableQuestions;\n if (questions.length > 0) {\n for (var i = 0; i < questions.length; i++) {\n if (this.object == questions[i])\n continue;\n questions[i].addConditionObjectsByContext(res, this.object);\n }\n this.addConditionQuestionsHash = {};\n this.addConditionCalculatedValuesHash = {};\n for (var i = 0; i < res.length; i++) {\n if (!this.options || !this.options.showTitlesInExpressions) {\n var name = res[i].name;\n var valueName = res[i].question.valueName;\n if (!!valueName && name.indexOf(valueName) == 0) {\n name = name.replace(valueName, res[i].question.name);\n }\n res[i].text = name;\n }\n this.addConditionQuestionsHash[res[i].name] = res[i].question;\n }\n }\n if (!!this.options) {\n for (var i = 0; i < res.length; i++) {\n res[i].text = this.options.getObjectDisplayName(res[i].question, \"condition\", res[i].text);\n }\n }\n this.addCalculatedValues(res);\n return res;\n };\n SurveyPropertyConditionEditor.prototype.isClassContains = function (qType, contains, notContains) {\n var classInfo = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findClass(qType);\n while (!!classInfo) {\n if (contains.indexOf(classInfo.name) > -1)\n return true;\n if (notContains.indexOf(classInfo.name) > -1)\n return false;\n classInfo = !!classInfo.parentName\n ? survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findClass(classInfo.parentName)\n : null;\n }\n return contains.length == 0;\n };\n SurveyPropertyConditionEditor.prototype.addCalculatedValues = function (res) {\n var survey = this.getSurvey();\n if (!survey)\n return;\n var values = survey.calculatedValues;\n for (var i = 0; i < values.length; i++) {\n var name = values[i].name;\n this.addConditionCalculatedValuesHash[name] = values[i];\n res.push({ name: name, text: name, question: null });\n }\n };\n SurveyPropertyConditionEditor.prototype.getQuestionByName = function (questionName) {\n if (!this.getSurvey())\n return null;\n return this.addConditionQuestionsHash[questionName];\n };\n SurveyPropertyConditionEditor.prototype.getQuestionValueJSON = function (questionName, operator) {\n return this.getQuestionConditionJson(questionName, operator, true);\n };\n SurveyPropertyConditionEditor.prototype.getQuestionConditionJson = function (questionName, operator, convertOnAnyOf) {\n if (convertOnAnyOf === void 0) { convertOnAnyOf = false; }\n var path = \"\";\n var question = this.getQuestionByName(questionName);\n if (!question)\n return null;\n if (questionName.indexOf(question.getValueName()) == 0) {\n path = questionName.substr(question.getValueName().length);\n }\n if (questionName.indexOf(\"row.\") == 0) {\n path = questionName.substr(\"row.\".length);\n }\n if (!path) {\n path = questionName;\n }\n if (!!path && path[0] == \".\") {\n path = path.substr(1);\n }\n var json = question && question.getConditionJson\n ? question.getConditionJson(operator, path)\n : null;\n if (!!json && json.type == \"radiogroup\") {\n json.type = \"dropdown\";\n }\n if (!!json && json.type == \"expression\") {\n json.type = \"text\";\n }\n if (!!json && operator == \"anyof\" && convertOnAnyOf) {\n if (!this.isClassContains(json.type, [\"checkbox\"], [])) {\n json.type = \"checkbox\";\n }\n }\n return !!json ? json : null;\n };\n SurveyPropertyConditionEditor.prototype.canShowValueByOperator = function (operator) {\n return operator != \"empty\" && operator != \"notempty\";\n };\n Object.defineProperty(SurveyPropertyConditionEditor.prototype, \"hasAceEditor\", {\n get: function () {\n return (typeof ace !== \"undefined\" &&\n typeof ace.require(\"ace/ext/language_tools\") !== \"undefined\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyConditionEditor.prototype.onkoTextValueChanged = function (newValue) {\n if (!this.isBeforeShowCalled || this.isConditionItemsBuilding)\n return;\n var isValid = true;\n var operand = null;\n if (!!newValue) {\n var conditionParser = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ConditionsParser\"]();\n operand = conditionParser.parseExpression(newValue);\n isValid = !!operand;\n }\n this.koIsTextConditionValid(isValid);\n if (isValid) {\n this.koValue(newValue);\n }\n this.rebuildEditorItems(operand, isValid);\n };\n SurveyPropertyConditionEditor.prototype.buildEditorsItemsOnShowing = function () {\n var operand = null;\n var conditionText = this.koValue();\n if (!!conditionText) {\n var conditionParser = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ConditionsParser\"]();\n operand = conditionParser.parseExpression(conditionText);\n }\n this.rebuildEditorItems(operand, true);\n };\n SurveyPropertyConditionEditor.prototype.onConditionItemChanged = function () {\n if (this.isConditionItemsBuilding)\n return;\n var text = \"\";\n var items = this.koEditorItems();\n for (var i = 0; i < items.length; i++) {\n var itemText = items[i].toString();\n if (!itemText)\n continue;\n if (!!text) {\n text += \" \" + items[i].conjunction + \" \";\n }\n text += itemText;\n }\n this.isConditionItemsBuilding = true;\n this.koValue(text);\n this.isConditionItemsBuilding = false;\n };\n SurveyPropertyConditionEditor.prototype.rebuildEditorItems = function (operand, isValid) {\n if (!this.isEditorShowing)\n return;\n if (this.isConditionItemsBuilding)\n return;\n if (!isValid) {\n this.koEditorItems([]);\n this.koCanParseExpression(false);\n return;\n }\n if (!operand) {\n this.koEditorItems([]);\n }\n else {\n this.isConditionItemsBuilding = true;\n var items = this.buildEditorItems(operand);\n this.isConditionItemsBuilding = false;\n this.koEditorItems(items);\n }\n this.koCanParseExpression(this.koEditorItems().length > 0 || !operand);\n if (this.koEditorItems().length == 0 && !operand) {\n this.koEditorItems([new ConditionEditorItem(this)]);\n }\n this.updateEditorItemsVisibilities();\n };\n SurveyPropertyConditionEditor.prototype.updateEditorItemsVisibilities = function () {\n var items = this.koEditorItems();\n for (var i = 0; i < items.length; i++) {\n items[i].isFirst = i == 0;\n }\n };\n SurveyPropertyConditionEditor.prototype.buildEditorItems = function (operand) {\n var res = [];\n if (!this.buildEditorItemsCore(operand, res, \"\")) {\n res = [];\n }\n return res;\n };\n SurveyPropertyConditionEditor.prototype.buildEditorItemsCore = function (operand, res, parentConjunction) {\n if (operand.getType() == \"unary\")\n return this.buildEditorItemsAddUnaryOperand(operand, res);\n if (operand.getType() !== \"binary\")\n return false;\n var op = operand;\n if (op.isArithmetic && !op.isConjunction)\n return false;\n if (op.isConjunction)\n return this.buildEditorItemsAddConjunction(op, res, parentConjunction);\n return this.buildEditorItemsAddBinaryOperand(op, res);\n };\n SurveyPropertyConditionEditor.prototype.buildEditorItemsAddConjunction = function (op, res, parentConjunction) {\n var conjunction = op.conjunction;\n if (conjunction == \"or\" &&\n !!parentConjunction &&\n parentConjunction != conjunction)\n return false;\n if (!this.buildEditorItemsCore(op.leftOperand, res, conjunction))\n return false;\n var conjunctionIndex = res.length;\n if (!this.buildEditorItemsCore(op.rightOperand, res, conjunction))\n return false;\n res[conjunctionIndex].conjunction = op.conjunction;\n return true;\n };\n SurveyPropertyConditionEditor.prototype.buildEditorItemsAddBinaryOperand = function (op, res) {\n var variableOperand = (this.getOperandByType(op, \"variable\"));\n var arrayValue = this.getArrayValueFromOperand(op);\n var constOperand = !arrayValue\n ? this.getOperandByType(op, \"const\")\n : null;\n if (!variableOperand ||\n (!constOperand && !arrayValue && this.canShowValueByOperator(op.operator)))\n return false;\n if (!this.isVariableInSurvey(variableOperand.variable))\n return false;\n var item = new ConditionEditorItem(this);\n item.questionName = variableOperand.variable;\n item.operator =\n op.leftOperand !== variableOperand\n ? this.getOppositeOperator(op.operator)\n : op.operator;\n if (!!arrayValue) {\n item.value = arrayValue;\n }\n if (!!constOperand) {\n item.value = constOperand.correctValue;\n }\n res.push(item);\n return true;\n };\n SurveyPropertyConditionEditor.prototype.isVariableInSurvey = function (variable) {\n if (!this.getSurvey())\n return false;\n if (this.getQuestionByName(variable))\n return true;\n return !!this.addConditionCalculatedValuesHash[variable];\n };\n SurveyPropertyConditionEditor.prototype.getArrayValueFromOperand = function (op) {\n var arrayOperand = this.getOperandByType(op, \"array\");\n if (!arrayOperand || !arrayOperand.values)\n return null;\n var valuesOperand = arrayOperand.values;\n if (!Array.isArray(valuesOperand) || valuesOperand.length == 0)\n return null;\n var res = [];\n for (var i = 0; i < valuesOperand.length; i++) {\n var opConst = valuesOperand[i];\n if (!opConst)\n continue;\n if (opConst.getType() != \"const\")\n return null;\n res.push(opConst.correctValue);\n }\n if (res.length == 0)\n return null;\n return res;\n };\n SurveyPropertyConditionEditor.prototype.buildEditorItemsAddUnaryOperand = function (op, res) {\n var operator = op.operator;\n if (operator !== \"empty\" && operator != \"notempty\")\n return false;\n var operand = op.expression;\n if (operand == null || operand.getType() != \"variable\")\n return false;\n var questionName = operand.variable;\n if (!this.isVariableInSurvey(questionName))\n return false;\n var item = new ConditionEditorItem(this);\n item.questionName = questionName;\n item.operator = operator;\n res.push(item);\n return true;\n };\n SurveyPropertyConditionEditor.prototype.getOppositeOperator = function (operator) {\n if (operator == \"less\")\n return \"greater\";\n if (operator == \"greater\")\n return \"less\";\n if (operator == \"lessorequal\")\n return \"greaterorequal\";\n if (operator == \"greaterorequal\")\n return \"lessorequal\";\n return operator;\n };\n SurveyPropertyConditionEditor.prototype.getOperandByType = function (op, opType) {\n if (!op.rightOperand)\n return null;\n if (op.leftOperand.getType() !== opType &&\n op.rightOperand.getType() !== opType)\n return null;\n if (op.leftOperand.getType() == opType &&\n op.rightOperand.getType() == opType)\n return null;\n return op.leftOperand.getType() == opType\n ? op.leftOperand\n : op.rightOperand;\n };\n SurveyPropertyConditionEditor.prototype.getConditionDisplayText = function () {\n var value = this.koIsTextConditionValid()\n ? this.koTextValue()\n : this.koValue();\n return new _expressionToDisplayText__WEBPACK_IMPORTED_MODULE_6__[\"ExpressionToDisplayText\"](this.getSurvey(), this.options).toDisplayText(value);\n };\n return SurveyPropertyConditionEditor;\n}(_propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyTextEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerEditor(\"condition\", function (property) {\n return new SurveyPropertyConditionEditor(property, \"condition\", \"createCondition\");\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerEditor(\"expression\", function (property) {\n return new SurveyPropertyConditionEditor(property, \"expression\", \"parseExpression\");\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerTypeForCellEditing(\"expression\", \"string\");\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerTypeForCellEditing(\"condition\", \"string\");\nvar operations = [\n {\n value: \"and\",\n title: \"logical 'and' operator\",\n },\n {\n value: \"&&\",\n title: \"logical 'and' operator\",\n },\n {\n value: \"or\",\n title: \"logical 'or' operator\",\n },\n {\n value: \"||\",\n title: \"logical 'or' operator\",\n },\n {\n value: \"empty\",\n title: \"returns true if the left operand is empty\t{questionName} empty\",\n },\n {\n value: \"notempty\",\n title: \"returns true if the left operand is not empty\t{questionName} notempty\",\n },\n {\n value: \"=\",\n title: \"returns true if two values are equal\t{questionName} = 5, {questionName} == 'abc', {questionName} equal 124\",\n },\n {\n value: \"==\",\n title: \"returns true if two values are equal\t{questionName} = 5, {questionName} == 'abc', {questionName} equal 124\",\n },\n {\n value: \"equal\",\n title: \"returns true if two values are equal\t{questionName} = 5, {questionName} == 'abc', {questionName} equal 124\",\n },\n {\n value: \"<>\",\n title: \"returns true if two values are not equal\t{questionName} <> 5, {questionName} != 'abc', {questionName} notequal 124\",\n },\n {\n value: \"!=\",\n title: \"returns true if two values are not equal\t{questionName} <> 5, {questionName} != 'abc', {questionName} notequal 124\",\n },\n {\n value: \"notequal\",\n title: \"returns true if two values are not equal\t{questionName} <> 5, {questionName} != 'abc', {questionName} notequal 124\",\n },\n {\n value: \">\",\n title: \"returns true if the left operand greater then the second operand\t{questionName} > 2, {questionName} greater 'a'\",\n },\n {\n value: \"greater\",\n title: \"returns true if the left operand greater then the second operand\t{questionName} > 2, {questionName} greater 'a'\",\n },\n {\n value: \"<\",\n title: \"returns true if the left operand less than the second operand\t{questionName} < 2, {questionName} less 'a'\",\n },\n {\n value: \"less\",\n title: \"returns true if the left operand less than the second operand\t{questionName} < 2, {questionName} less 'a'\",\n },\n {\n value: \">=\",\n title: \"returns true if the left operand equal or greater then the second operand\t{questionName} >= 2, {questionName} greaterorequal 'a'\",\n },\n {\n value: \"greaterorequal\",\n title: \"returns true if the left operand equal or greater then the second operand\t{questionName} >= 2, {questionName} greaterorequal 'a'\",\n },\n {\n value: \"<=\",\n title: \"returns true if the left operand equal or less than the second operand\t{questionName} <= 2, {questionName} lessorequal 'a'\",\n },\n {\n value: \"lessorequal\",\n title: \"returns true if the left operand equal or less than the second operand\t{questionName} <= 2, {questionName} lessorequal 'a'\",\n },\n {\n value: \"contains\",\n title: \"return true if the left operand is an array and it contains a value of the second operand\t{questionName} contains 'a'\",\n },\n {\n value: \"notcontains\",\n title: \"return true if the left operand is an array and it does not contain a value of the second operand\",\n },\n {\n value: \"anyof\",\n title: \"return true if the left operand is an array and it contains any value of the second array operand\",\n },\n {\n value: \"allof\",\n title: \"return true if the left operand is an array and it contains all values of the second array operand\",\n },\n];\nvar createAnnotations = function (condition, syntaxCheckMethodName) {\n condition = condition || \"\";\n var annotations = new Array();\n var conditionParser = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ConditionsParser\"]();\n conditionParser[syntaxCheckMethodName](condition);\n if (!!condition && conditionParser.error) {\n var toErrorSubstring = condition.substring(0, conditionParser.error.at);\n var column = toErrorSubstring.length - toErrorSubstring.lastIndexOf(\"\\n\");\n var annotation = {\n row: condition.match(/\\n/g) ? condition.match(/\\n/g).length : 0,\n column: column,\n text: conditionParser.error.code + \" (\" + column + \")\",\n type: \"error\",\n };\n annotations.push(annotation);\n }\n return annotations;\n};\nvar ID_REGEXP = /[a-zA-Z_0-9{\\*\\/\\<\\>\\=\\!\\$\\.\\-\\u00A2-\\uFFFF]/;\nfunction doGetCompletions(prevIdentifier, prefix, config, completer) {\n if (completer === void 0) { completer = null; }\n var completions = [];\n var currentQuestion = config.question;\n var usableQuestions = (config.questions || []).filter(function (q) { return q !== currentQuestion; });\n if (!!usableQuestions ||\n currentQuestion instanceof survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"MatrixDropdownColumn\"] ||\n currentQuestion.data instanceof survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"QuestionPanelDynamicItem\"]) {\n if (prevIdentifier === \"row\" &&\n currentQuestion instanceof survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"MatrixDropdownColumn\"]) {\n completions = currentQuestion.colOwner[\"columns\"]\n .filter(function (e) { return e.name !== currentQuestion.name; })\n .map(function (column) {\n return {\n name: \"\",\n value: \"{row.\" + column.name + \"}\",\n some: \"\",\n meta: column.title,\n identifierRegex: ID_REGEXP,\n };\n });\n }\n else if (prevIdentifier === \"panel\" &&\n currentQuestion.data instanceof survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"QuestionPanelDynamicItem\"]) {\n var panel = currentQuestion.data.panel;\n completions = panel.elements\n .filter(function (e) { return e.name !== currentQuestion.name; })\n .map(function (element) {\n return {\n name: \"\",\n value: \"{panel.\" + element.name + \"}\",\n some: \"\",\n meta: element.name,\n identifierRegex: ID_REGEXP,\n };\n });\n }\n else {\n var operationsFiltered = operations.filter(function (op) { return !prefix || op.value.indexOf(prefix) !== -1; });\n var questionsFiltered = usableQuestions.filter(function (op) { return !prefix || op.name.indexOf(prefix) !== -1; });\n if (currentQuestion instanceof survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"MatrixDropdownColumn\"]) {\n completions.push({\n name: \"\",\n value: \"{row.\",\n some: \"\",\n meta: _editorLocalization__WEBPACK_IMPORTED_MODULE_8__[\"editorLocalization\"].getString(_editorLocalization__WEBPACK_IMPORTED_MODULE_8__[\"defaultStrings\"].pe.aceEditorRowTitle),\n identifierRegex: ID_REGEXP,\n });\n }\n else if (!!currentQuestion &&\n currentQuestion.data instanceof survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"QuestionPanelDynamicItem\"]) {\n completions.push({\n name: \"\",\n value: \"{panel.\",\n some: \"\",\n meta: _editorLocalization__WEBPACK_IMPORTED_MODULE_8__[\"editorLocalization\"].getString(_editorLocalization__WEBPACK_IMPORTED_MODULE_8__[\"defaultStrings\"].pe.aceEditorPanelTitle),\n identifierRegex: ID_REGEXP,\n });\n }\n completions = completions\n .concat(questionsFiltered.map(function (q) {\n return {\n completer: completer,\n name: \"\",\n value: \"{\" + q.getValueName() + \"}\",\n some: \"\",\n meta: q.title,\n identifierRegex: ID_REGEXP,\n };\n }))\n .concat(operationsFiltered.map(function (op) {\n return {\n name: \"\",\n value: op.value,\n some: \"\",\n meta: op.title,\n identifierRegex: ID_REGEXP,\n };\n }));\n }\n }\n return completions;\n}\nfunction insertMatch(editor, data) {\n if (editor.completer.completions.filterText) {\n var allRanges = editor.selection.getAllRanges();\n for (var rangeIndex = 0, range; (range = allRanges[rangeIndex]); rangeIndex++) {\n range.start.column -= editor.completer.completions.filterText.length;\n var rangeText = editor.session.getTextRange(range);\n if (rangeText.indexOf(\"{\") !== 0) {\n var extRange = range.clone();\n extRange.start.column--;\n if (editor.session.getTextRange(extRange).indexOf(\"{\") === 0) {\n range = extRange;\n }\n }\n editor.session.remove(range);\n }\n }\n editor.execCommand(\"insertstring\", data.value || data);\n}\nknockout__WEBPACK_IMPORTED_MODULE_1__[\"bindingHandlers\"].aceEditor = {\n init: function (element, options) {\n var configs = options();\n var langTools = ace.require(\"ace/ext/language_tools\");\n var langUtils = ace.require(\"ace/autocomplete/util\");\n var editor = ace.edit(element);\n var objectEditor = configs.editor;\n var isUpdating = false;\n editor.setOption(\"useWorker\", false);\n editor.renderer.setShowGutter(false);\n editor.setHighlightActiveLine(false);\n editor.getSession().on(\"change\", function () {\n var errors = createAnnotations(editor.getValue(), objectEditor.syntaxCheckMethodName);\n if (!isUpdating) {\n isUpdating = true;\n objectEditor.koTextValue(editor.getValue());\n isUpdating = false;\n }\n // objectEditor.koHasError(errors.length > 0);\n // if (errors.length > 0) {\n // objectEditor.koErrorText(errors[0].text);\n // }\n editor.getSession().setAnnotations(errors);\n });\n editor.on(\"focus\", function () {\n editor.setReadOnly(objectEditor.readOnly());\n });\n var updateCallback = function () {\n if (!isUpdating) {\n isUpdating = true;\n editor.setValue(objectEditor.koTextValue() || \"\");\n isUpdating = false;\n }\n };\n var valueSubscription = objectEditor.koTextValue.subscribe(updateCallback);\n updateCallback();\n var visibilitySubscription = objectEditor.koActiveView.subscribe(function (newView) {\n if (newView !== \"form\") {\n editor.resize();\n }\n });\n var completer = {\n identifierRegexps: [ID_REGEXP],\n insertMatch: insertMatch,\n getCompletions: function (editor, session, pos, prefix, callback) {\n var prevIdentifier = langUtils.retrievePrecedingIdentifier(session.getLine(pos.row), pos.column - 1);\n var completions = doGetCompletions(prevIdentifier, prefix, configs, completer);\n callback(null, completions);\n },\n getDocTooltip: function (item) {\n item.docHTML =\n \"
\" +\n item.meta +\n \"
\";\n },\n };\n langTools.setCompleters([completer]);\n editor.setOptions({\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n });\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"utils\"].domNodeDisposal.addDisposeCallback(element, function () {\n valueSubscription.dispose();\n visibilitySubscription.dispose();\n editor.destroy();\n });\n editor.focus();\n },\n};\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyCustomEditor.ts\":\n/*!*****************************************************!*\\\n !*** ./src/propertyEditors/propertyCustomEditor.ts ***!\n \\*****************************************************/\n/*! exports provided: SurveyPropertyCustomEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyCustomEditor\", function() { return SurveyPropertyCustomEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var _propertyEditorBase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./propertyEditorBase */ \"./src/propertyEditors/propertyEditorBase.ts\");\n\n\nvar SurveyPropertyCustomEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyCustomEditor, _super);\n function SurveyPropertyCustomEditor(property, widgetJSON) {\n if (widgetJSON === void 0) { widgetJSON = null; }\n var _this = _super.call(this, property) || this;\n _this.isValueChanging = false;\n _this.widgetJSONValue = widgetJSON;\n var self = _this;\n _this[\"koAfterRender\"] = function (componentInfo) {\n var el = componentInfo.element.nextSibling;\n self.doAfterRender(el);\n };\n return _this;\n }\n Object.defineProperty(SurveyPropertyCustomEditor.prototype, \"editorType\", {\n get: function () {\n return \"custom\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyCustomEditor.prototype, \"widgetJSON\", {\n get: function () {\n return this.widgetJSONValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyCustomEditor.prototype.onValueChanged = function () {\n if (this.isValueChanging)\n return;\n this.isValueChanging = true;\n _super.prototype.onValueChanged.call(this);\n if (this.onValueChangedCallback)\n this.onValueChangedCallback(this.koValue());\n this.isValueChanging = false;\n };\n SurveyPropertyCustomEditor.prototype.checkForErrors = function () {\n var res = _super.prototype.checkForErrors.call(this);\n if (!!res)\n return res;\n var errorText = this.widgetValidate();\n if (!!errorText) {\n this.koErrorText(errorText);\n }\n return !!errorText;\n };\n Object.defineProperty(SurveyPropertyCustomEditor.prototype, \"widgetRender\", {\n get: function () {\n return this.widgetJSON ? this.widgetJSON.render : null;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyCustomEditor.prototype.widgetValidate = function () {\n if (this.widgetJSON && this.widgetJSON.validate) {\n return this.widgetJSON.validate(this, this.koValue());\n }\n return null;\n };\n SurveyPropertyCustomEditor.prototype.doAfterRender = function (el) {\n if (!!el && this.widgetRender)\n this.widgetRender(this, el);\n };\n return SurveyPropertyCustomEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_1__[\"SurveyPropertyEditorBase\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyDefaultValueEditor.ts\":\n/*!***********************************************************!*\\\n !*** ./src/propertyEditors/propertyDefaultValueEditor.ts ***!\n \\***********************************************************/\n/*! exports provided: SurveyPropertyDefaultValueEditor, SurveyPropertyTriggerValueEditor, SurveyPropertyDefaultRowValueEditorBase, SurveyPropertyDefaultRowValueEditor, SurveyPropertyDefaultPanelValueEditor, SurveyPropertySetEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDefaultValueEditor\", function() { return SurveyPropertyDefaultValueEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyTriggerValueEditor\", function() { return SurveyPropertyTriggerValueEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDefaultRowValueEditorBase\", function() { return SurveyPropertyDefaultRowValueEditorBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDefaultRowValueEditor\", function() { return SurveyPropertyDefaultRowValueEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDefaultPanelValueEditor\", function() { return SurveyPropertyDefaultPanelValueEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertySetEditor\", function() { return SurveyPropertySetEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyModalEditor */ \"./src/propertyEditors/propertyModalEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n\n\n\n\n\n\n\n\nvar SurveyPropertyDefaultValueEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyDefaultValueEditor, _super);\n function SurveyPropertyDefaultValueEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.koSurvey = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](!!_this.options && _this.options.createSurvey({}, \"defaultValueEditor\"));\n return _this;\n }\n SurveyPropertyDefaultValueEditor.createJsonFromQuestion = function (obj, readOnly) {\n var qjson = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"JsonObject\"]().toJsonObject(obj);\n qjson.name = SurveyPropertyDefaultValueEditor.defaultQuestionName;\n qjson.title = _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.defaultValue\");\n qjson.type = obj.getType();\n if (qjson.type == \"expression\") {\n qjson.type = \"text\";\n }\n if (!!qjson.cellType && qjson.type == \"matrixdropdowncolumn\") {\n qjson.type = qjson.cellType;\n delete qjson[\"cellType\"];\n }\n SurveyPropertyDefaultValueEditor.filterJsonProperties(qjson);\n qjson.titleLocation = \"hidden\";\n //qjson.showClearButton = true;\n qjson.readOnly = readOnly;\n return qjson;\n };\n SurveyPropertyDefaultValueEditor.filterJsonProperties = function (qjson) {\n var properties = SurveyPropertyDefaultValueEditor.skipPropertyNames;\n for (var i = 0; i < properties.length; i++) {\n var name_1 = properties[i];\n if (!!qjson[name_1]) {\n delete qjson[name_1];\n }\n }\n };\n SurveyPropertyDefaultValueEditor.createSurveyFromJsonQuestion = function (questionJson, options, surveyName) {\n var json = {\n questions: [],\n showNavigationButtons: false,\n showQuestionNumbers: \"off\",\n textUpdateMode: \"onTyping\",\n };\n _surveyHelper__WEBPACK_IMPORTED_MODULE_7__[\"SurveyHelper\"].updateQuestionJson(questionJson);\n json.questions.push(questionJson);\n var survey = !!options\n ? options.createSurvey(json, surveyName)\n : new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Survey\"](json);\n SurveyPropertyDefaultValueEditor.updateSurveyStyle(survey);\n return survey;\n };\n SurveyPropertyDefaultValueEditor.updateSurveyStyle = function (survey) {\n survey.css.body += \" svd-property-editor-survey\";\n survey.css.page.root += \" svd-property-editor-survey-page\";\n if (!!survey.css.question) {\n survey.css.question.mainRoot += \" svd-survey-nopadding\";\n }\n };\n SurveyPropertyDefaultValueEditor.prototype.resetText = function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.reset\");\n };\n SurveyPropertyDefaultValueEditor.prototype.refreshText = function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.refresh\");\n };\n SurveyPropertyDefaultValueEditor.prototype.resetValue = function (model) {\n model\n .koSurvey()\n .clearValue(SurveyPropertyDefaultValueEditor.defaultQuestionName);\n };\n SurveyPropertyDefaultValueEditor.prototype.refreshSurvey = function (model) {\n model.createSurvey();\n };\n SurveyPropertyDefaultValueEditor.prototype.getValueText = function (value) {\n if (!value)\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.empty\");\n return JSON.stringify(value);\n };\n SurveyPropertyDefaultValueEditor.prototype.beforeShowCore = function () {\n _super.prototype.beforeShowCore.call(this);\n this.createSurvey();\n };\n Object.defineProperty(SurveyPropertyDefaultValueEditor.prototype, \"editorType\", {\n get: function () {\n return \"default-value\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyDefaultValueEditor.prototype.createSurvey = function () {\n var json = this.buildQuestionJson();\n if (!!json) {\n this.survey = SurveyPropertyDefaultValueEditor.createSurveyFromJsonQuestion(json, this.options, \"defaultValueEditor\");\n this.survey.setValue(SurveyPropertyDefaultValueEditor.defaultQuestionName, this.getSurveyInitialValue());\n var self = this;\n this.survey.onValueChanged.add(function (sender, options) {\n self.koValue(self.getSurveyResult());\n });\n }\n else {\n this.survey = null;\n }\n this.koSurvey(this.survey);\n };\n SurveyPropertyDefaultValueEditor.prototype.buildQuestionJson = function () {\n this.currentObject = this.getObject();\n if (!this.currentObject)\n return null;\n return SurveyPropertyDefaultValueEditor.createJsonFromQuestion(this.currentObject, this.readOnly());\n };\n SurveyPropertyDefaultValueEditor.prototype.getObject = function () {\n return this.object;\n };\n SurveyPropertyDefaultValueEditor.prototype.getSurveyInitialValue = function () {\n return this.koValue();\n };\n SurveyPropertyDefaultValueEditor.prototype.getSurveyResult = function () {\n return this.survey.getValue(SurveyPropertyDefaultValueEditor.defaultQuestionName);\n };\n SurveyPropertyDefaultValueEditor.skipPropertyNames = [\"width\", \"minWidth\", \"maxWidth\"];\n SurveyPropertyDefaultValueEditor.defaultQuestionName = \"question\";\n return SurveyPropertyDefaultValueEditor;\n}(_propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyModalEditor\"]));\n\nvar SurveyPropertyTriggerValueEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyTriggerValueEditor, _super);\n function SurveyPropertyTriggerValueEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyTriggerValueEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"default-value\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyTriggerValueEditor.prototype.updateDynamicProperties = function () {\n _super.prototype.updateDynamicProperties.call(this);\n if (this.currentObject != this.getObject()) {\n this.createSurvey();\n }\n };\n SurveyPropertyTriggerValueEditor.prototype.getObject = function () {\n var survey = _editableObject__WEBPACK_IMPORTED_MODULE_6__[\"EditableObject\"].getSurvey(this.object);\n if (!survey || !this.property)\n return null;\n var propName = this.getDependOnPropName();\n if (!propName)\n return null;\n var questionName = this.object[propName];\n return !!questionName ? survey.getQuestionByName(questionName) : null;\n };\n SurveyPropertyTriggerValueEditor.prototype.getDependOnPropName = function () {\n var properties = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].getPropertiesByObj(this.object);\n for (var i = 0; i < properties.length; i++) {\n var dps = properties[i].getDependedProperties();\n if (!!dps && dps.indexOf(this.property.name) > -1)\n return properties[i].name;\n }\n return \"\";\n };\n return SurveyPropertyTriggerValueEditor;\n}(SurveyPropertyDefaultValueEditor));\n\nvar SurveyPropertyDefaultRowValueEditorBase = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyDefaultRowValueEditorBase, _super);\n function SurveyPropertyDefaultRowValueEditorBase(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyDefaultRowValueEditorBase.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"default-value\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyDefaultRowValueEditorBase.prototype, \"editorType\", {\n get: function () {\n return \"triggervalue\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyDefaultRowValueEditorBase.prototype.getSurveyInitialValue = function () {\n var res = this.koValue();\n if (!res)\n return res;\n if (!Array.isArray(res)) {\n res = [res];\n }\n return res;\n };\n SurveyPropertyDefaultRowValueEditorBase.prototype.getSurveyResult = function () {\n var res = _super.prototype.getSurveyResult.call(this);\n if (res && Array.isArray(res)) {\n if (res.length == 0)\n return null;\n return res[0];\n }\n return res;\n };\n return SurveyPropertyDefaultRowValueEditorBase;\n}(SurveyPropertyDefaultValueEditor));\n\nvar SurveyPropertyDefaultRowValueEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyDefaultRowValueEditor, _super);\n function SurveyPropertyDefaultRowValueEditor(property) {\n return _super.call(this, property) || this;\n }\n SurveyPropertyDefaultRowValueEditor.prototype.buildQuestionJson = function () {\n var qjson = _super.prototype.buildQuestionJson.call(this);\n qjson.rowCount = 1;\n qjson.minRowCount = 1;\n qjson.maxRowCount = 1;\n qjson.columnsLocation = \"vertical\";\n return qjson;\n };\n Object.defineProperty(SurveyPropertyDefaultRowValueEditor.prototype, \"editorType\", {\n get: function () {\n return \"rowvalue\";\n },\n enumerable: false,\n configurable: true\n });\n return SurveyPropertyDefaultRowValueEditor;\n}(SurveyPropertyDefaultRowValueEditorBase));\n\nvar SurveyPropertyDefaultPanelValueEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyDefaultPanelValueEditor, _super);\n function SurveyPropertyDefaultPanelValueEditor(property) {\n return _super.call(this, property) || this;\n }\n SurveyPropertyDefaultPanelValueEditor.prototype.buildQuestionJson = function () {\n var qjson = _super.prototype.buildQuestionJson.call(this);\n qjson.panelCount = 1;\n qjson.minPanelCount = 1;\n qjson.maxPanelCount = 1;\n return qjson;\n };\n Object.defineProperty(SurveyPropertyDefaultPanelValueEditor.prototype, \"editorType\", {\n get: function () {\n return \"panelvalue\";\n },\n enumerable: false,\n configurable: true\n });\n return SurveyPropertyDefaultPanelValueEditor;\n}(SurveyPropertyDefaultRowValueEditorBase));\n\nvar SurveyPropertySetEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertySetEditor, _super);\n function SurveyPropertySetEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertySetEditor.prototype, \"editorType\", {\n get: function () {\n return \"set\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertySetEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"default-value\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertySetEditor.prototype.getSurveyInitialValue = function () {\n var res = this.koValue();\n if (!res)\n return res;\n if (!Array.isArray(res)) {\n res = [res];\n }\n return res;\n };\n SurveyPropertySetEditor.prototype.buildQuestionJson = function () {\n var question = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"QuestionCheckbox\"](\"q1\");\n var hasTagbox = !!survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findClass(\"tagbox\");\n question.hasSelectAll = !hasTagbox;\n if (!!this.property) {\n question.choices = this.getPropertyChoices();\n }\n var json = SurveyPropertyDefaultValueEditor.createJsonFromQuestion(question, this.readOnly());\n if (hasTagbox) {\n json.type = \"tagbox\";\n }\n return json;\n };\n SurveyPropertySetEditor.prototype.setChoices = function (choices) {\n var survey = this.koSurvey();\n if (!survey || survey.getAllQuestions().length > 1)\n return;\n survey.getAllQuestions()[0].choices = choices;\n };\n SurveyPropertySetEditor.prototype.getPropertyChoices = function () {\n if (!this.property)\n return [];\n var self = this;\n return this.property.getChoices(this.object, function (choices) {\n self.setChoices(choices);\n });\n };\n return SurveyPropertySetEditor;\n}(SurveyPropertyDefaultValueEditor));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorFactory\"].registerEditor(\"value\", function (property) {\n return new SurveyPropertyDefaultValueEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorFactory\"].registerEditor(\"triggervalue\", function (property) {\n return new SurveyPropertyTriggerValueEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorFactory\"].registerEditor(\"rowvalue\", function (property) {\n return new SurveyPropertyDefaultRowValueEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorFactory\"].registerEditor(\"panelvalue\", function (property) {\n return new SurveyPropertyDefaultPanelValueEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorFactory\"].registerEditor(\"set\", function (property) {\n return new SurveyPropertySetEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyEditorBase.ts\":\n/*!***************************************************!*\\\n !*** ./src/propertyEditors/propertyEditorBase.ts ***!\n \\***************************************************/\n/*! exports provided: SurveyPropertyEditorBase */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyEditorBase\", function() { return SurveyPropertyEditorBase; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n\n\n\n\n\nvar SurveyPropertyEditorBase = /** @class */ (function () {\n function SurveyPropertyEditorBase(property) {\n var _this = this;\n this.parentReadOnlyValue = false;\n this.valueUpdatingCounter = 0;\n this.optionsValue = null;\n this.isRequiredValue = false;\n this.showDisplayNameValue = true;\n this._displayNameValue = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]();\n this.showHelpText = true;\n this.koValue = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]();\n this.isInplaceProperty = false;\n this.isInPropertyGridValue = false;\n this.iskoValueChanging = false;\n this.element = undefined;\n this.koAfterRender = function (componentInfo) {\n var elements = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__[\"getNodesFromKoComponentInfo\"])(componentInfo);\n _this.element = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__[\"getFirstNonTextElement\"])(elements);\n if (!!_this.element) {\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"utils\"].domNodeDisposal.addDisposeCallback(_this.element, function () {\n _this.element = undefined;\n });\n }\n };\n this.property_ = property;\n var self = this;\n this.koValue.subscribe(function (newValue) {\n self.onkoValueChanged(newValue);\n });\n this.koText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return self.getValueText(self.koValue());\n });\n this.koIsDefault = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return self.property\n ? self.property.isDefaultValue(self.koValue())\n : false;\n });\n this.koHasError = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.koErrorText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"\");\n this.koDisplayError = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return self.koHasError() && !!self.koErrorText();\n });\n this.koMaxLength = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return !!self.property &&\n !!self.property[\"maxLength\"] &&\n self.property[\"maxLength\"] > 0\n ? self.property[\"maxLength\"]\n : 524288;\n });\n this.koMaxValue = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return !!self.property && !self.isValueEmpty(self.property.maxValue)\n ? self.property.maxValue\n : \"\";\n });\n this.koMinValue = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return !!self.property && !self.isValueEmpty(self.property.minValue)\n ? self.property.minValue\n : \"\";\n });\n this.setIsRequired();\n this.setTitleAndDisplayName();\n this.readOnly = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n }\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"displayNameValue\", {\n get: function () {\n return this._displayNameValue();\n },\n set: function (val) {\n this._displayNameValue(val);\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.setup = function () { };\n SurveyPropertyEditorBase.prototype.beforeShow = function () { };\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"editingValue\", {\n get: function () {\n return this.koValue();\n },\n set: function (newValue) {\n this.koValue(newValue);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"editorType\", {\n get: function () {\n throw \"editorType is not defined\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"editorTypeTemplate\", {\n get: function () {\n return this.editorType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"property\", {\n get: function () {\n return this.property_;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"defaultValue\", {\n get: function () {\n return this.property.defaultValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"editablePropertyName\", {\n get: function () {\n return this.property ? this.property.name : \"\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.getReadOnly = function () {\n if (this.parentReadOnly)\n return true;\n var res = this.property ? this.property.readOnly : false;\n if (!!this.options && !!this.property && !!this.object) {\n res = this.options.onIsEditorReadOnlyCallback(this.object, this, res);\n }\n return res;\n };\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"title\", {\n get: function () {\n return this.titleValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"isInPropertyGrid\", {\n get: function () {\n return this.isInPropertyGridValue;\n },\n set: function (val) {\n if (val === this.isInPropertyGridValue)\n return;\n this.isInPropertyGridValue = val;\n this.setTitleAndDisplayName();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"isDisplayNameVisible\", {\n get: function () {\n return (this.showDisplayName &&\n !this.isInPropertyGrid &&\n !this.isShowingModal() &&\n !this.isInplaceProperty &&\n this.displayName !== \".\" &&\n !!this.displayName);\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.isShowingModal = function () {\n return false;\n };\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"displayName\", {\n get: function () {\n return this.displayNameValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"showDisplayName\", {\n get: function () {\n return this.showDisplayNameValue;\n },\n set: function (val) {\n this.showDisplayNameValue = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"showDisplayNameOnTop\", {\n get: function () {\n return this.isDisplayNameVisible && this.canShowDisplayNameOnTop;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"canShowDisplayNameOnTop\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.getPropertyHelpLocName = function () {\n var classNames = this.getHelpPropertyClassNames();\n for (var i = 0; i < classNames.length; i++) {\n var locName_1 = \"pehelp.\" + classNames[i] + \"_\" + this.property.name;\n if (this.hasLocString(locName_1))\n return locName_1;\n }\n var locName = \"pehelp.\" + this.property.name;\n return this.hasLocString(locName) ? locName : \"\";\n };\n SurveyPropertyEditorBase.prototype.getHelpPropertyClassNames = function () {\n if (!this.object)\n return [];\n var type = this.object.getType();\n var res = [];\n var typeInfo = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findClass(type);\n while (!!typeInfo) {\n res.push(typeInfo.name);\n if (typeInfo.find(this.property.name))\n return res;\n typeInfo = !!typeInfo.parentName\n ? survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findClass(typeInfo.parentName)\n : null;\n }\n return res;\n };\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"propertyHelpText\", {\n get: function () {\n if (!this.showHelpText)\n return \"\";\n var locName = this.getPropertyHelpLocName();\n return this.hasLocString(locName) ? this.getLocString(locName) : \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"contentTemplateName\", {\n get: function () {\n var editorType = this.isModal ? \"modal-content\" : this.editorTypeTemplate;\n return \"svd-property-editor-\" + editorType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"isModal\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"originalObject\", {\n get: function () {\n return _editableObject__WEBPACK_IMPORTED_MODULE_3__[\"EditableObject\"].getOriginalObject(this.object);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"object\", {\n get: function () {\n return this.objectValue;\n },\n set: function (value) {\n this.setObjectCore(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"parentList\", {\n get: function () {\n return this.parentListValue;\n },\n set: function (val) {\n this.parentListValue = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"parentReadOnly\", {\n get: function () {\n return this.parentReadOnlyValue;\n },\n set: function (val) {\n if (val == this.parentReadOnly)\n return;\n this.parentReadOnlyValue = val;\n this.readOnly(this.getReadOnly());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"originalValue\", {\n get: function () {\n return this.getOriginalValue();\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.getOriginalValue = function () {\n return !!this.objectValue ? this.objectValue[this.property.name] : null;\n };\n SurveyPropertyEditorBase.prototype.setObjectCore = function (value) {\n var _this = this;\n this.objectValue = value;\n if (typeof value.registerFunctionOnPropertyValueChanged === \"function\") {\n value.registerFunctionOnPropertyValueChanged(this.property.name, function () { return _this.updateValue(); }, this.property.name);\n }\n this.setIsRequired();\n this.setTitleAndDisplayName();\n this.setObject(this.object);\n this.updateValue();\n if (this.options && this.property) {\n this.options.onPropertyEditorObjectSetCallback(this.property.name, this.object, this);\n }\n this.readOnly(this.getReadOnly());\n };\n SurveyPropertyEditorBase.prototype.getValueText = function (value) {\n return value;\n };\n SurveyPropertyEditorBase.prototype.hasError = function () {\n this.koHasError(this.checkForErrors());\n return this.koHasError();\n };\n SurveyPropertyEditorBase.prototype.getLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(name);\n };\n SurveyPropertyEditorBase.prototype.hasLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].hasString(name);\n };\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"isCurrentValueEmpty\", {\n get: function () {\n return this.isValueEmpty(this.koValue());\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.checkForErrors = function () {\n var errorText = \"\";\n if (this.isRequired || this.checkForItemValue()) {\n var er = this.isValueEmpty(Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__[\"trimValue\"])(this.koValue()));\n if (er) {\n errorText = this.getLocString(\"pe.propertyIsEmpty\");\n }\n }\n if (this.checkErrorOnUnique()) {\n errorText = this.getLocString(\"pe.propertyIsNoUnique\");\n }\n if (!errorText &&\n this.property &&\n this.options &&\n this.options.onGetErrorTextOnValidationCallback) {\n errorText = this.options.onGetErrorTextOnValidationCallback(this.property.name, this.object, this.koValue());\n }\n this.koErrorText(errorText);\n return errorText !== \"\";\n };\n SurveyPropertyEditorBase.prototype.checkErrorOnUnique = function () {\n if (!this.property ||\n !this.property.isUnique ||\n !Array.isArray(this.parentList))\n return false;\n var val = this.koValue();\n for (var i = 0; i < this.parentList.length; i++) {\n if (this.parentList[i] === this.object)\n continue;\n var propVal = this.parentList[i][this.property.name];\n if (typeof propVal === \"string\" && typeof val === \"string\"\n && propVal.toLocaleLowerCase() === val.toLocaleLowerCase())\n return true;\n if (propVal == this.koValue())\n return true;\n }\n return false;\n };\n SurveyPropertyEditorBase.prototype.checkForItemValue = function () {\n //TODO Problem is in 882ca3ac commit. ItemValue without value should be invalid. Need to better fix for the problem.\n return (this.property &&\n this.property.name === \"value\" &&\n this.objectValue &&\n typeof this.objectValue.getType === \"function\" &&\n this.objectValue.getType() === \"itemvalue\");\n };\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"isRequired\", {\n get: function () {\n return this.isRequiredValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.setIsRequired = function () {\n this.isRequiredValue = !!this.property ? this.property.isRequired : false;\n };\n SurveyPropertyEditorBase.prototype.setTitleAndDisplayName = function () {\n this.displayNameValue = this.property ? this.property.name : \"\";\n this.titleValue = \"\";\n if (!this.property)\n return;\n var locName = this.property.name;\n this.displayNameValue = this.getPropertyDisplayName(this.property);\n var title = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getPropertyTitle(locName);\n this.titleValue = title;\n };\n SurveyPropertyEditorBase.prototype.getPropertyDisplayName = function (prop) {\n if (!!prop.displayName)\n return prop.displayName;\n var locName = prop.name;\n return this.isInPropertyGridValue\n ? _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getPropertyName(locName)\n : _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getPropertyNameInEditor(locName);\n };\n SurveyPropertyEditorBase.prototype.apply = function () {\n if (this.hasError())\n return false;\n this.performApply();\n return true;\n };\n SurveyPropertyEditorBase.prototype.performApply = function () { };\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"locale\", {\n get: function () {\n if (this.onGetLocale)\n return this.onGetLocale();\n return \"\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.getLocale = function () {\n return this.locale;\n };\n SurveyPropertyEditorBase.prototype.getMarkdownHtml = function (text) {\n return text;\n };\n SurveyPropertyEditorBase.prototype.getProcessedText = function (text) {\n return text;\n };\n SurveyPropertyEditorBase.prototype.getRenderer = function (name) {\n return undefined;\n };\n SurveyPropertyEditorBase.prototype.getRendererContext = function (locStr) {\n return locStr;\n };\n Object.defineProperty(SurveyPropertyEditorBase.prototype, \"options\", {\n get: function () {\n return this.optionsValue;\n },\n set: function (value) {\n this.optionsValue = value;\n this.onOptionsChanged();\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorBase.prototype.onOptionsChanged = function () { };\n SurveyPropertyEditorBase.prototype.setObject = function (value) {\n if (this.options) {\n var editorOptions = this.createEditorOptions();\n this.options.onSetPropertyEditorOptionsCallback(this.editablePropertyName, value, editorOptions);\n this.onSetEditorOptions(editorOptions);\n }\n };\n SurveyPropertyEditorBase.prototype.createEditorOptions = function () {\n return {};\n };\n SurveyPropertyEditorBase.prototype.onSetEditorOptions = function (editorOptions) { };\n SurveyPropertyEditorBase.prototype.onValueChanged = function () { };\n SurveyPropertyEditorBase.prototype.getCorrectedValue = function (value) {\n if (!this.property)\n return value;\n if (!this.isValueEmpty(this.property.minValue)) {\n if (value < this.property.minValue)\n return this.property.minValue;\n }\n if (!this.isValueEmpty(this.property.maxValue)) {\n if (value > this.property.maxValue)\n return this.property.maxValue;\n }\n return value;\n };\n SurveyPropertyEditorBase.prototype.beginValueUpdating = function () {\n this.valueUpdatingCounter++;\n };\n SurveyPropertyEditorBase.prototype.endValueUpdating = function () {\n if (this.valueUpdatingCounter > 0) {\n this.valueUpdatingCounter--;\n }\n };\n SurveyPropertyEditorBase.prototype.updateValue = function () {\n this.beginValueUpdating();\n this.koValue(this.getValue());\n this.koErrorText(\"\");\n this.onValueChanged();\n if (this.onValueUpdated)\n this.onValueUpdated(this.koValue());\n this.endValueUpdating();\n };\n SurveyPropertyEditorBase.prototype.updatePropertyValue = function (newValue) {\n this.object[this.property.name] = newValue;\n if (newValue != this.object[this.property.name]) {\n this.updateValue();\n }\n };\n SurveyPropertyEditorBase.prototype.getValue = function () {\n return this.property && this.object\n ? this.property.getPropertyValue(this.object)\n : null;\n };\n SurveyPropertyEditorBase.prototype.onkoValueChanged = function (newValue) {\n if (this.valueUpdatingCounter > 0 || this.iskoValueChanging)\n return;\n this.iskoValueChanging = true;\n var copiedValue = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Helpers\"].getUnbindValue(newValue);\n newValue = this.getCorrectedValue(newValue);\n if (this.options && this.property && this.object) {\n var options = {\n propertyName: this.property.name,\n obj: this.object,\n value: this.getValue(),\n newValue: newValue,\n doValidation: false,\n };\n this.options.onValueChangingCallback(options);\n newValue = options.newValue;\n }\n if (newValue !== null &&\n newValue !== undefined &&\n !survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Helpers\"].isTwoValueEquals(newValue, copiedValue, false, true, false)) {\n this.koValue(newValue);\n }\n this.onValueChanged();\n this.iskoValueChanging = false;\n if (this.hasError())\n return;\n if (this.property && this.object && this.getValue() == newValue)\n return;\n this.doOnChanged(newValue);\n };\n SurveyPropertyEditorBase.prototype.doOnChanged = function (newValue) {\n if (this.onChanged != null)\n this.onChanged(newValue);\n };\n SurveyPropertyEditorBase.prototype.isValueEmpty = function (val) {\n return survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Helpers\"].isValueEmpty(val);\n };\n SurveyPropertyEditorBase.prototype.updateDynamicProperties = function () {\n if (!this.property ||\n !this.object ||\n !this.property[\"onPropertyEditorUpdate\"])\n return;\n this.property[\"onPropertyEditorUpdate\"](this.object, this);\n };\n SurveyPropertyEditorBase.prototype.keyDownHandler = function (property, event) {\n var surveyEditor = property.editor.options;\n if (!!surveyEditor) {\n surveyEditor.onPropertyEditorKeyDownCallback(property.property.name, property.obj, property.editor, event);\n }\n return true;\n };\n SurveyPropertyEditorBase.prototype.focus = function () {\n if (this.element && typeof this.element.focus === \"function\") {\n // var focusable = this.element.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n this.element.focus();\n }\n };\n SurveyPropertyEditorBase.prototype.onInputKeydown = function (model, event) {\n if (event.ctrlKey && (event.keyCode == 90 || event.keyCode == 89)) {\n event.stopPropagation();\n }\n return true;\n };\n return SurveyPropertyEditorBase;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyEditorFactory.ts\":\n/*!******************************************************!*\\\n !*** ./src/propertyEditors/propertyEditorFactory.ts ***!\n \\******************************************************/\n/*! exports provided: SurveyPropertyEditorFactory, SurveyStringPropertyEditor, SurveyDropdownPropertyEditor, SurveyQuestionPropertyEditor, SurveyQuestionSelectBasePropertyEditor, SurveyQuestionCarryForwardPropertyEditor, SurveyQuestionValuePropertyEditor, SurveyBooleanPropertyEditor, SurveySwitchPropertyEditor, SurveyNumberPropertyEditor, SurveyColorPropertyEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyEditorFactory\", function() { return SurveyPropertyEditorFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyStringPropertyEditor\", function() { return SurveyStringPropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyDropdownPropertyEditor\", function() { return SurveyDropdownPropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionPropertyEditor\", function() { return SurveyQuestionPropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionSelectBasePropertyEditor\", function() { return SurveyQuestionSelectBasePropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionCarryForwardPropertyEditor\", function() { return SurveyQuestionCarryForwardPropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionValuePropertyEditor\", function() { return SurveyQuestionValuePropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyBooleanPropertyEditor\", function() { return SurveyBooleanPropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveySwitchPropertyEditor\", function() { return SurveySwitchPropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyNumberPropertyEditor\", function() { return SurveyNumberPropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyColorPropertyEditor\", function() { return SurveyColorPropertyEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyEditorBase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyEditorBase */ \"./src/propertyEditors/propertyEditorBase.ts\");\n/* harmony import */ var _propertyCustomEditor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyCustomEditor */ \"./src/propertyEditors/propertyCustomEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../settings */ \"./src/settings.ts\");\n\n\n\n\n\n\n\n\nvar SurveyPropertyEditorFactory = /** @class */ (function () {\n function SurveyPropertyEditorFactory() {\n }\n Object.defineProperty(SurveyPropertyEditorFactory, \"operators\", {\n get: function () {\n return _settings__WEBPACK_IMPORTED_MODULE_7__[\"settings\"].operators;\n },\n set: function (value) {\n _settings__WEBPACK_IMPORTED_MODULE_7__[\"settings\"].operators = value;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyEditorFactory.getOperators = function () {\n var result = [];\n var ops = SurveyPropertyEditorFactory.operators;\n for (var name in ops) {\n result.push({\n name: name,\n text: _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"op.\" + name),\n types: ops[name],\n });\n }\n return result;\n };\n SurveyPropertyEditorFactory.registerTypeForCellEditing = function (typeName, cellTypeName) {\n SurveyPropertyEditorFactory.cellTypes[typeName] = cellTypeName;\n };\n SurveyPropertyEditorFactory.registerEditor = function (name, creator, editableClassName) {\n if (editableClassName === void 0) { editableClassName = null; }\n SurveyPropertyEditorFactory.creatorList[name] = creator;\n var className = editableClassName ? editableClassName : name;\n SurveyPropertyEditorFactory.creatorByClassList[className] = creator;\n };\n SurveyPropertyEditorFactory.registerCustomEditor = function (name, widgetJSON) {\n SurveyPropertyEditorFactory.widgetRegisterList[name] = widgetJSON;\n };\n SurveyPropertyEditorFactory.unregisterCustomEditor = function (name) {\n delete SurveyPropertyEditorFactory.widgetRegisterList[name];\n };\n SurveyPropertyEditorFactory.createEditor = function (property, isCellEditor) {\n if (isCellEditor === void 0) { isCellEditor = false; }\n var editorType = property.type;\n if (isCellEditor && !!SurveyPropertyEditorFactory.cellTypes[editorType]) {\n editorType = SurveyPropertyEditorFactory.cellTypes[editorType];\n }\n if (SurveyPropertyEditorFactory.isDropdownEditor(property) &&\n (!editorType || editorType == SurveyPropertyEditorFactory.defaultEditor)) {\n editorType = \"dropdown\";\n }\n var propertyEditor = SurveyPropertyEditorFactory.createCustomEditor(editorType, property);\n if (!propertyEditor) {\n var creator = SurveyPropertyEditorFactory.creatorList[editorType];\n if (creator)\n propertyEditor = creator(property);\n }\n if (!propertyEditor) {\n if (property.isArray &&\n survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].isDescendantOf(property.className, \"itemvalue\")) {\n var creator = SurveyPropertyEditorFactory.creatorList[\"itemvalue[]\"];\n if (creator)\n propertyEditor = creator(property);\n }\n }\n if (!propertyEditor) {\n creator = SurveyPropertyEditorFactory.findParentCreator(editorType);\n propertyEditor = creator(property);\n }\n return propertyEditor;\n };\n SurveyPropertyEditorFactory.isDropdownEditor = function (property) {\n if (property[\"hasChoices\"] !== undefined)\n return property[\"hasChoices\"] === true;\n return property.choices != null;\n };\n SurveyPropertyEditorFactory.createCustomEditor = function (name, property) {\n var widgetJSON = SurveyPropertyEditorFactory.widgetRegisterList[name];\n if (!widgetJSON)\n return null;\n return new _propertyCustomEditor__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyCustomEditor\"](property, widgetJSON);\n };\n SurveyPropertyEditorFactory.findParentCreator = function (name) {\n var jsonClass = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findClass(name);\n while (jsonClass && jsonClass.parentName) {\n var creator = SurveyPropertyEditorFactory.creatorByClassList[jsonClass.parentName];\n if (creator)\n return creator;\n jsonClass = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findClass(jsonClass.parentName);\n }\n return SurveyPropertyEditorFactory.creatorList[SurveyPropertyEditorFactory.defaultEditor];\n };\n SurveyPropertyEditorFactory.defaultEditor = \"string\";\n SurveyPropertyEditorFactory.creatorList = {};\n SurveyPropertyEditorFactory.creatorByClassList = {};\n SurveyPropertyEditorFactory.widgetRegisterList = {};\n SurveyPropertyEditorFactory.cellTypes = {};\n return SurveyPropertyEditorFactory;\n}());\n\nvar SurveyStringPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyStringPropertyEditor, _super);\n function SurveyStringPropertyEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.koInputType = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"text\");\n _this.listNameValue = _this.getListName();\n return _this;\n }\n Object.defineProperty(SurveyStringPropertyEditor.prototype, \"inputType\", {\n get: function () {\n return this.koInputType();\n },\n set: function (val) {\n this.koInputType(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyStringPropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"string\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyStringPropertyEditor.prototype, \"listName\", {\n get: function () {\n return this.listNameValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyStringPropertyEditor.prototype.getListName = function () {\n if (!this.property ||\n !Array.isArray(this.property.dataList) ||\n this.property.dataList.length == 0)\n return \"\";\n return (\"propertyEditorDataList\" +\n (SurveyStringPropertyEditor.dataListNumber++).toString());\n };\n SurveyStringPropertyEditor.dataListNumber = 0;\n return SurveyStringPropertyEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorBase\"]));\n\nvar SurveyDropdownPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyDropdownPropertyEditor, _super);\n function SurveyDropdownPropertyEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.koChoices = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]([]);\n _this.koHasFocus = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n var self = _this;\n _this.koHasFocus.subscribe(function (newValue) {\n //TODO isDynamicChoices obsolete, use dependsOn attribute\n if (newValue && self.property[\"isDynamicChoices\"]) {\n self.updateChoices();\n }\n });\n return _this;\n }\n Object.defineProperty(SurveyDropdownPropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"dropdown\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyDropdownPropertyEditor.prototype.getValueText = function (value) {\n if (this.property.name === \"locale\") {\n var text = _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getLocaleName(value);\n if (text)\n return text;\n }\n if (this.property.name === \"cellType\") {\n var text = _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"qt.\" + value);\n if (text)\n return text;\n }\n if (value === null)\n return null;\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getPropertyValue(value);\n };\n SurveyDropdownPropertyEditor.prototype.setObject = function (value) {\n _super.prototype.setObject.call(this, value);\n this.beginValueUpdating();\n if (this.koChoices().length == 0) {\n this.updateChoices();\n }\n this.endValueUpdating();\n };\n SurveyDropdownPropertyEditor.prototype.updateDynamicProperties = function () {\n _super.prototype.updateDynamicProperties.call(this);\n this.updateChoices();\n };\n SurveyDropdownPropertyEditor.prototype.updateChoices = function () {\n var choices = this.getPropertyChoices();\n this.setChoices(choices);\n };\n Object.defineProperty(SurveyDropdownPropertyEditor.prototype, \"optionsCaption\", {\n get: function () {\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n SurveyDropdownPropertyEditor.prototype.setChoices = function (choices) {\n choices = this.makeChoicesLocalizable(choices);\n if (!!choices && Array.isArray(choices)) {\n this.koChoices(choices);\n }\n };\n SurveyDropdownPropertyEditor.prototype.makeChoicesLocalizable = function (choices) {\n if (!choices)\n return choices;\n var res = new Array();\n survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ItemValue\"].setData(res, choices);\n for (var i = 0; i < res.length; i++) {\n if (!!res[i].text && res[i].text !== res[i].value)\n continue;\n var value = res[i].value;\n var text = this.getValueText(value);\n if (text != value) {\n res[i].text = text;\n }\n }\n return res;\n };\n SurveyDropdownPropertyEditor.prototype.getPropertyChoices = function () {\n if (!this.property)\n return [];\n var self = this;\n return this.property.getChoices(this.object, function (choices) {\n self.setChoices(choices);\n });\n };\n return SurveyDropdownPropertyEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorBase\"]));\n\nvar SurveyQuestionPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyQuestionPropertyEditor, _super);\n function SurveyQuestionPropertyEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SurveyQuestionPropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"question\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyQuestionPropertyEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"dropdown\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyQuestionPropertyEditor.prototype, \"optionsCaption\", {\n get: function () {\n return this.getLocString(\"pe.conditionSelectQuestion\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyQuestionPropertyEditor.prototype.getPropertyChoices = function () {\n var _this = this;\n var opt = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ItemValue\"](\"\", this.optionsCaption);\n var survey = _editableObject__WEBPACK_IMPORTED_MODULE_6__[\"EditableObject\"].getSurvey(this.object);\n if (!survey)\n return [opt];\n var questions = this.getQuestions(survey);\n if (!questions)\n questions = [];\n var showTitles = !!this.options && this.options.showTitlesInExpressions;\n var qItems = questions.map(function (q) {\n var text = showTitles ? q.locTitle.renderedHtml : q.name;\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ItemValue\"](_this.getItemValue(q), text);\n });\n qItems.sort(function (el1, el2) {\n return el1.text.localeCompare(el2.text);\n });\n return qItems;\n };\n SurveyQuestionPropertyEditor.prototype.getItemValue = function (question) {\n return question.name;\n };\n SurveyQuestionPropertyEditor.prototype.getQuestions = function (survey) {\n return survey.getAllQuestions();\n };\n return SurveyQuestionPropertyEditor;\n}(SurveyDropdownPropertyEditor));\n\nvar SurveyQuestionSelectBasePropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyQuestionSelectBasePropertyEditor, _super);\n function SurveyQuestionSelectBasePropertyEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SurveyQuestionSelectBasePropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"question_selectbase\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyQuestionSelectBasePropertyEditor.prototype.getQuestions = function (survey) {\n var questions = survey.getAllQuestions();\n var res = [];\n for (var i = 0; i < questions.length; i++) {\n if (questions[i] === this.object)\n continue;\n if (this.isQuestionFit(questions[i])) {\n res.push(questions[i]);\n }\n }\n return res;\n };\n SurveyQuestionSelectBasePropertyEditor.prototype.isQuestionFit = function (question) {\n return survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].isDescendantOf(question.getType(), \"selectbase\");\n };\n return SurveyQuestionSelectBasePropertyEditor;\n}(SurveyQuestionPropertyEditor));\n\nvar SurveyQuestionCarryForwardPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyQuestionCarryForwardPropertyEditor, _super);\n function SurveyQuestionCarryForwardPropertyEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SurveyQuestionCarryForwardPropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"question_carryforward\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyQuestionCarryForwardPropertyEditor.prototype.isQuestionFit = function (question) {\n return question.isValueArray || _super.prototype.isQuestionFit.call(this, question);\n };\n return SurveyQuestionCarryForwardPropertyEditor;\n}(SurveyQuestionSelectBasePropertyEditor));\n\nvar SurveyQuestionValuePropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyQuestionValuePropertyEditor, _super);\n function SurveyQuestionValuePropertyEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SurveyQuestionValuePropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"questionvalue\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyQuestionValuePropertyEditor.prototype.getItemValue = function (question) {\n return question.getValueName();\n };\n return SurveyQuestionValuePropertyEditor;\n}(SurveyQuestionPropertyEditor));\n\nvar SurveyBooleanPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyBooleanPropertyEditor, _super);\n function SurveyBooleanPropertyEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyBooleanPropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"boolean\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyBooleanPropertyEditor.prototype, \"canShowDisplayNameOnTop\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n SurveyBooleanPropertyEditor.prototype.getValueText = function (value) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getPropertyValue(value);\n };\n return SurveyBooleanPropertyEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorBase\"]));\n\nvar SurveySwitchPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveySwitchPropertyEditor, _super);\n function SurveySwitchPropertyEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveySwitchPropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"switch\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveySwitchPropertyEditor.prototype, \"canShowDisplayNameOnTop\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n SurveySwitchPropertyEditor.prototype.getValueText = function (value) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getPropertyValue(value);\n };\n return SurveySwitchPropertyEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorBase\"]));\n\nvar SurveyNumberPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyNumberPropertyEditor, _super);\n function SurveyNumberPropertyEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyNumberPropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"number\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyNumberPropertyEditor.prototype.getCorrectedValue = function (value) {\n if (!value)\n return value;\n if (typeof value === \"string\" || value instanceof String) {\n value = Number(value);\n if (!value)\n value = 0;\n }\n return _super.prototype.getCorrectedValue.call(this, value);\n };\n return SurveyNumberPropertyEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorBase\"]));\n\nvar SurveyColorPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyColorPropertyEditor, _super);\n function SurveyColorPropertyEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyColorPropertyEditor.prototype, \"editorType\", {\n get: function () {\n return \"color\";\n },\n enumerable: false,\n configurable: true\n });\n return SurveyColorPropertyEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorBase\"]));\n\nSurveyPropertyEditorFactory.registerEditor(\"string\", function (property) {\n return new SurveyStringPropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"dropdown\", function (property) {\n return new SurveyDropdownPropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"question\", function (property) {\n return new SurveyQuestionPropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"question_selectbase\", function (property) {\n return new SurveyQuestionSelectBasePropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"question_carryforward\", function (property) {\n return new SurveyQuestionCarryForwardPropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"questionvalue\", function (property) {\n return new SurveyQuestionValuePropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"boolean\", function (property) {\n return new SurveyBooleanPropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"switch\", function (property) {\n return new SurveySwitchPropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"number\", function (property) {\n return new SurveyNumberPropertyEditor(property);\n});\nSurveyPropertyEditorFactory.registerEditor(\"color\", function (property) {\n return new SurveyColorPropertyEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyHtmlConditionEditor.ts\":\n/*!************************************************************!*\\\n !*** ./src/propertyEditors/propertyHtmlConditionEditor.ts ***!\n \\************************************************************/\n/*! exports provided: SurveyPropertyHtmlConditionEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyHtmlConditionEditor\", function() { return SurveyPropertyHtmlConditionEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyNestedPropertyEditor */ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n\n\n\n\nvar SurveyPropertyHtmlConditionEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyHtmlConditionEditor, _super);\n function SurveyPropertyHtmlConditionEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyHtmlConditionEditor.prototype, \"editorType\", {\n get: function () {\n return \"htmlconditions\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyHtmlConditionEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"nested-items\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyHtmlConditionEditor.prototype.createNewItem = function () {\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"HtmlConditionItem\"]();\n };\n SurveyPropertyHtmlConditionEditor.prototype.getColumnsProperties = function () {\n return this.getPropertiesByNames(\"htmlconditionitem\", [\n \"expression\",\n \"html\"\n ]);\n };\n return SurveyPropertyHtmlConditionEditor;\n}(_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_2__[\"SurveyNestedPropertyEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorFactory\"].registerEditor(\"htmlconditions\", function (property) {\n return new SurveyPropertyHtmlConditionEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyItemValuesEditor.ts\":\n/*!*********************************************************!*\\\n !*** ./src/propertyEditors/propertyItemValuesEditor.ts ***!\n \\*********************************************************/\n/*! exports provided: SurveyPropertyItemValuesEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyItemValuesEditor\", function() { return SurveyPropertyItemValuesEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _questionEditors_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../questionEditors/questionEditorDefinition */ \"./src/questionEditors/questionEditorDefinition.ts\");\n/* harmony import */ var _propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./propertyNestedPropertyEditor */ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\");\n/* harmony import */ var _entries__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../entries */ \"./src/entries/index.ts\");\n\n\n\n\n\n\n\n\n\nvar SurveyPropertyItemValuesEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyItemValuesEditor, _super);\n function SurveyPropertyItemValuesEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.optionsShowTextView = true;\n _this.isUpdatingItemText = false;\n _this.isUpdatingOnTyping = false;\n _this.koShowTextView = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n var self = _this;\n if (property) {\n _this.detailDefinition =\n _questionEditors_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_6__[\"SurveyQuestionEditorDefinition\"].definition[_this.getItemValueClassName()];\n }\n _this.koItemsText = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n _this.koItemsTextDelayed = knockout__WEBPACK_IMPORTED_MODULE_1__[\"pureComputed\"](_this.koItemsText)\n .extend({ rateLimit: { method: \"notifyWhenChangesStop\", timeout: 400 } });\n _this.koItemsTextDelayed.subscribe(function (newValue) {\n self.updateItemsTextOnTyping(newValue);\n });\n _this.koActiveView.subscribe(function (newValue) {\n if (newValue == \"form\")\n self.updateItems(self.koItemsText());\n else\n self.updateItemsText();\n });\n _this.changeToTextViewClick = function () {\n self.koActiveView(\"text\");\n };\n _this.changeToFormViewClick = function () {\n self.koActiveView(\"form\");\n };\n _this.modalName =\n \"modelEditor\" + \"itemvalues\" + _entries__WEBPACK_IMPORTED_MODULE_8__[\"SurveyPropertyModalEditor\"].idCounter;\n _entries__WEBPACK_IMPORTED_MODULE_8__[\"SurveyPropertyModalEditor\"].idCounter++;\n _this.modalNameTarget = \"#\" + _this.modalName;\n return _this;\n }\n Object.defineProperty(SurveyPropertyItemValuesEditor.prototype, \"editorType\", {\n get: function () {\n return \"itemvalue[]\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyItemValuesEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"item-values\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyItemValuesEditor.prototype, \"hasDetailButton\", {\n get: function () {\n return !!this.detailDefinition;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyItemValuesEditor.prototype.getItemValueClassName = function () {\n return this.property ? this.editorType + \"@\" + this.property.name : \"\";\n };\n SurveyPropertyItemValuesEditor.prototype.getEditorName = function () {\n if (!this.koEditItem() || !this.koEditItem().obj)\n return \"\";\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"]\n .getString(this.readOnly() ? \"pe.itemView\" : \"pe.itemEdit\")[\"format\"](this.koEditItem().obj.value);\n };\n SurveyPropertyItemValuesEditor.prototype.beforeShowCore = function () {\n _super.prototype.beforeShowCore.call(this);\n this.updateShowTextViewVisibility();\n };\n SurveyPropertyItemValuesEditor.prototype.getColumnsProperties = function () {\n var props = this.getDefinedProperties();\n if (!!props && props.length > 0)\n return props;\n return this.getDefaultListProperties();\n };\n SurveyPropertyItemValuesEditor.prototype.getDefinedProperties = function () {\n if (!this.property || !this.object || !this.object.getType)\n return [];\n var properties = this.getDefinedListProperties(this.object.getType() + \"@\" + this.property.name);\n var res = [];\n for (var i = 0; i < properties.length; i++) {\n res.push(properties[i].property);\n }\n return res;\n };\n SurveyPropertyItemValuesEditor.prototype.createEditorOptions = function () {\n var options = _super.prototype.createEditorOptions.call(this);\n options.showTextView = true;\n options.itemsEntryType =\n (this.options[\"options\"] &&\n this.options[\"options\"].itemValuesEditorEntryType) ||\n \"form\";\n return options;\n };\n SurveyPropertyItemValuesEditor.prototype.onSetEditorOptions = function (editorOptions) {\n _super.prototype.onSetEditorOptions.call(this, editorOptions);\n this.optionsShowTextView = editorOptions.showTextView;\n this.updateShowTextViewVisibility();\n this.koActiveView(editorOptions.itemsEntryType || \"form\");\n };\n SurveyPropertyItemValuesEditor.prototype.createNewItem = function () {\n var nextValue = null;\n var values = [];\n var items = this.originalValue;\n if (Array.isArray(items)) {\n values = items.map(function (item) {\n return item.value;\n });\n }\n var itemText = this.property.getBaseValue();\n if (!itemText) {\n itemText = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"surveyLocalization\"].getString(\"choices_Item\");\n }\n nextValue = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"getNextValue\"])(itemText, values);\n var itemValue = this.createEditorItemValueCore(nextValue);\n if (this.options) {\n this.options.onItemValueAddedCallback(this.object, this.editablePropertyName, itemValue, values);\n }\n return itemValue;\n };\n SurveyPropertyItemValuesEditor.prototype.getItemClassName = function (item) {\n var className = this.getItemValueClassName();\n return !!className ? className : item.getType();\n };\n SurveyPropertyItemValuesEditor.prototype.createEditorItemValueCore = function (item) {\n var itemValue = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].createClass(this.property.className);\n itemValue.setData(item);\n return itemValue;\n };\n SurveyPropertyItemValuesEditor.prototype.isTextLocalized = function (item) {\n return Object.keys(item.locText.values).length > 1;\n };\n SurveyPropertyItemValuesEditor.prototype.onValueChanged = function () {\n _super.prototype.onValueChanged.call(this);\n if (this.isBeforeShowCalled) {\n if (this.koActiveView() !== \"form\") {\n this.updateItemsText();\n }\n }\n this.updateShowTextViewVisibility();\n };\n SurveyPropertyItemValuesEditor.prototype.updateItemsTextOnTyping = function (newValue) {\n if (this.isUpdatingItemText)\n return;\n this.isUpdatingOnTyping = true;\n this.updateItems(newValue);\n this.isUpdatingOnTyping = false;\n };\n SurveyPropertyItemValuesEditor.prototype.updateItemsText = function () {\n if (this.isUpdatingOnTyping)\n return;\n this.isUpdatingItemText = true;\n this.koItemsText(this.getItemsText());\n this.isUpdatingItemText = false;\n };\n SurveyPropertyItemValuesEditor.prototype.onListDetailViewChanged = function () {\n _super.prototype.onListDetailViewChanged.call(this);\n this.updateShowTextViewVisibility();\n };\n SurveyPropertyItemValuesEditor.prototype.updateItems = function (text) {\n var properties = this.getColumnsProperties();\n var className = this.property.className;\n var items = _entries__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].convertTextToItemValues(text, properties, className);\n this.updateArrayValue(items);\n };\n SurveyPropertyItemValuesEditor.prototype.updateArrayValue = function (items) {\n if (!this.originalValue)\n return;\n if (!items)\n items = [];\n //TODO magic value 20\n if (Math.abs(this.originalValue.length - items.length) > 20) {\n this.object[this.property.name] = items;\n }\n else {\n _entries__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].applyItemValueArray(this.originalValue, items);\n }\n this.doOnChanged(this.originalValue);\n };\n SurveyPropertyItemValuesEditor.prototype.getItemsText = function () {\n var items = [];\n for (var i = 0; i < this.originalValue.length; i++) {\n items.push(this.createItemViewModel(this.originalValue[i]));\n }\n return _entries__WEBPACK_IMPORTED_MODULE_8__[\"SurveyHelper\"].convertMatrixRowsToText(items);\n };\n SurveyPropertyItemValuesEditor.prototype.updateShowTextViewVisibility = function () {\n if (!this.koShowTextView)\n return;\n if (!this.optionsShowTextView || this.columns.length == 0) {\n this.koShowTextView(false);\n return;\n }\n this.koShowTextView(this.isValuePropertyVisible() &&\n !this.hasVisibleIfOrEnableIf() &&\n !this.hasMultipleLanguage());\n };\n SurveyPropertyItemValuesEditor.prototype.hasMultipleLanguage = function () {\n var items = this.originalValue;\n if (!items || !Array.isArray(items))\n return false;\n for (var i = 0; i < items.length; i++) {\n if (items[i].locText.hasNonDefaultText())\n return true;\n }\n return false;\n };\n SurveyPropertyItemValuesEditor.prototype.isValuePropertyVisible = function () {\n var valueProp = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(\"itemvalue\", \"value\");\n return !!valueProp && valueProp.visible && !valueProp.readOnly;\n };\n SurveyPropertyItemValuesEditor.prototype.hasVisibleIfOrEnableIf = function () {\n var items = this.originalValue;\n if (!items || !Array.isArray(items))\n return false;\n for (var i = 0; i < items.length; i++) {\n if (!!items[i].visibleIf || items[i].enableIf)\n return true;\n }\n return false;\n };\n SurveyPropertyItemValuesEditor.prototype.hasDetailsProperties = function () {\n return true;\n };\n return SurveyPropertyItemValuesEditor;\n}(_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_7__[\"SurveyNestedPropertyEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerEditor(\"itemvalue[]\", function (property) {\n return new SurveyPropertyItemValuesEditor(property);\n}, \"itemvalue\");\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyItemsEditor.ts\":\n/*!****************************************************!*\\\n !*** ./src/propertyEditors/propertyItemsEditor.ts ***!\n \\****************************************************/\n/*! exports provided: SurveyPropertyItemsEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyItemsEditor\", function() { return SurveyPropertyItemsEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyModalEditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyModalEditor */ \"./src/propertyEditors/propertyModalEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n\n\n\n\n\nvar SurveyPropertyItemsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyItemsEditor, _super);\n function SurveyPropertyItemsEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.koAllowAddRemoveItems = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.koAllowRemoveAllItems = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.koCanAddItem = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.viewItems = [];\n _this.sortableOptions = {\n handle: \".svd-drag-handle\",\n animation: 150,\n onStart: function () {\n _this.options[\"undoRedoManager\"].startTransaction(\"property items editor drag drop transaction\");\n _this.startDragItem();\n },\n onEnd: function () {\n _this.options[\"undoRedoManager\"].stopTransaction();\n _this.endDragItem();\n },\n onUpdate: function (evt, itemV) {\n if (_surveyHelper__WEBPACK_IMPORTED_MODULE_4__[\"SurveyHelper\"].moveItemInArray(_this.originalValue, itemV.obj, evt.newIndex)) {\n // Remove sortables \"unbound\" element\n evt.item.parentNode.removeChild(evt.item);\n }\n return true;\n },\n };\n var self = _this;\n self.onDeleteClick = function (item) {\n if (!self.onDeletingItem(item.obj))\n return;\n self.deleteItem(item.obj);\n self.doOnChanged(self.originalValue);\n };\n self.onClearClick = function (item) {\n self.originalValue.splice(0, self.originalValue.length);\n self.doOnChanged(self.originalValue);\n };\n self.onAddClick = function () {\n self.addItem();\n self.doOnChanged(self.originalValue);\n };\n return _this;\n }\n SurveyPropertyItemsEditor.prototype._notifyPropertyValueChanged = function () {\n this.options &&\n this.options.onPropertyValueChanged(this.property, this.object, this.originalValue);\n };\n SurveyPropertyItemsEditor.prototype.getValueText = function (value) {\n var len = value ? value.length : 0;\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getString(\"pe.items\")[\"format\"](len);\n };\n Object.defineProperty(SurveyPropertyItemsEditor.prototype, \"addItemText\", {\n get: function () {\n var customLocStrName = \"pe.addNew@\" + this.property.name;\n if (_editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].hasString(customLocStrName))\n return this.getLocString(customLocStrName);\n return this.getLocString(\"pe.addNew\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyItemsEditor.prototype.getCorrectedValue = function (value) {\n if (value == null || !Array.isArray(value))\n value = [];\n return _super.prototype.getCorrectedValue.call(this, value);\n };\n SurveyPropertyItemsEditor.prototype.createEditorOptions = function () {\n return { allowAddRemoveItems: true, allowRemoveAllItems: true };\n };\n SurveyPropertyItemsEditor.prototype.onSetEditorOptions = function (editorOptions) {\n this.koAllowAddRemoveItems(editorOptions.allowAddRemoveItems);\n this.koAllowRemoveAllItems(editorOptions.allowRemoveAllItems);\n };\n SurveyPropertyItemsEditor.prototype.startDragItem = function () { };\n SurveyPropertyItemsEditor.prototype.endDragItem = function () { };\n SurveyPropertyItemsEditor.prototype.addItem = function () {\n this.createEditorItemCore();\n };\n SurveyPropertyItemsEditor.prototype.onDeletingItem = function (obj) {\n if (!this.options)\n return true;\n return this.options.onCollectionItemDeletingCallback(this.object, this.property, this.originalValue, obj);\n };\n SurveyPropertyItemsEditor.prototype.deleteItem = function (obj) {\n if (this.readOnly())\n return;\n var index = this.originalValue.indexOf(obj);\n if (index > -1) {\n this.originalValue.splice(index, 1);\n this.onItemDeleted(obj, index);\n }\n this.deleteViewItemIndex(obj);\n this._notifyPropertyValueChanged();\n };\n SurveyPropertyItemsEditor.prototype.onItemDeleted = function (obj, index) { };\n SurveyPropertyItemsEditor.prototype.hasError = function () {\n for (var i = 0; i < this.viewItems.length; i++) {\n var item = this.viewItems[i];\n if (!!item.hasError && !!item.hasError())\n return true;\n }\n return _super.prototype.hasError.call(this);\n };\n SurveyPropertyItemsEditor.prototype.setup = function () {\n _super.prototype.setup.call(this);\n this.updateValue();\n this.viewItems = [];\n };\n SurveyPropertyItemsEditor.prototype.createItemViewModel = function (obj) {\n this.deleteViewItemIndex(obj);\n var res = this.createEditorItem(obj);\n this.viewItems.push(res);\n return res;\n };\n SurveyPropertyItemsEditor.prototype.deleteViewItemIndex = function (obj) {\n var index = -1;\n for (var i = 0; i < this.viewItems.length; i++) {\n if (this.viewItems[i].obj == obj) {\n index = i;\n break;\n }\n }\n if (index !== -1) {\n this.viewItems.splice(index, 1);\n if (this.viewItems.length > 0) {\n if (index === this.viewItems.length) {\n index--;\n }\n this.viewItems[i] &&\n this.viewItems[i].focus &&\n this.viewItems[i].focus();\n }\n }\n };\n Object.defineProperty(SurveyPropertyItemsEditor.prototype, \"isCurrentValueEmpty\", {\n get: function () {\n return this.originalValue.length == 0;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyItemsEditor.prototype.createEditorItemCore = function (item) {\n if (item === void 0) { item = null; }\n if (!item) {\n item = this.createNewItem();\n _surveyHelper__WEBPACK_IMPORTED_MODULE_4__[\"SurveyHelper\"].disableSelectingObj(item);\n this.originalValue.push(item);\n _surveyHelper__WEBPACK_IMPORTED_MODULE_4__[\"SurveyHelper\"].enableSelectingObj(item);\n }\n var editorItem = this.createEditorItem(item);\n if (!!editorItem.onCreated) {\n editorItem.onCreated();\n }\n return editorItem;\n };\n SurveyPropertyItemsEditor.prototype.createNewItem = function () {\n throw \"Override 'createNewItem' method\";\n };\n SurveyPropertyItemsEditor.prototype.createEditorItem = function (item) {\n return item;\n };\n return SurveyPropertyItemsEditor;\n}(_propertyModalEditor__WEBPACK_IMPORTED_MODULE_2__[\"SurveyPropertyModalEditor\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyMatrixDropdownColumnsEditor.ts\":\n/*!********************************************************************!*\\\n !*** ./src/propertyEditors/propertyMatrixDropdownColumnsEditor.ts ***!\n \\********************************************************************/\n/*! exports provided: SurveyPropertyDropdownColumnsEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyDropdownColumnsEditor\", function() { return SurveyPropertyDropdownColumnsEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyNestedPropertyEditor */ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n\n\n\n\n\n\nvar SurveyPropertyDropdownColumnsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyDropdownColumnsEditor, _super);\n function SurveyPropertyDropdownColumnsEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyDropdownColumnsEditor.prototype, \"editorType\", {\n get: function () {\n return \"matrixdropdowncolumns\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyDropdownColumnsEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"nested-items\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyDropdownColumnsEditor.prototype.getEditorName = function () {\n if (!this.koEditItem())\n return \"\";\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"]\n .getString(\"pe.columnEdit\")[\"format\"](this.koEditItem().obj.name);\n };\n SurveyPropertyDropdownColumnsEditor.prototype.getItemClassName = function (item) {\n var base = \"matrixdropdowncolumn@\";\n if (!item[\"object\"] || item.cellType !== \"default\") {\n return base + item.cellType;\n }\n else {\n return base + item[\"object\"].cellType;\n }\n };\n SurveyPropertyDropdownColumnsEditor.prototype.createNewItem = function () {\n var newName = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"getNextValue\"])(\"column\", this.getColumnNames()).toString();\n var newColumn = new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"MatrixDropdownColumn\"](newName);\n var columns = [];\n var orgColumns = this.originalValue;\n if (Array.isArray(orgColumns)) {\n for (var i = 0; i < orgColumns.length; i++) {\n columns.push(orgColumns[i]);\n }\n }\n columns.push(newColumn);\n if (this.options) {\n this.options.onMatrixDropdownColumnAddedCallback(this.object, newColumn, columns);\n }\n return newColumn;\n };\n SurveyPropertyDropdownColumnsEditor.prototype.addItem = function () {\n _super.prototype.addItem.call(this);\n this.updateCanAddColumn();\n };\n SurveyPropertyDropdownColumnsEditor.prototype.deleteItem = function (obj) {\n _super.prototype.deleteItem.call(this, obj);\n this.updateCanAddColumn();\n };\n SurveyPropertyDropdownColumnsEditor.prototype.updateValue = function () {\n _super.prototype.updateValue.call(this);\n this.updateCanAddColumn();\n };\n SurveyPropertyDropdownColumnsEditor.prototype.getColumnsProperties = function () {\n var names = this.getPropertiesNames(\"matrixdropdowncolumn\", [\n \"isRequired\",\n \"cellType\",\n \"name\",\n \"title\",\n ]);\n return this.getPropertiesByNames(\"matrixdropdowncolumn\", names);\n };\n SurveyPropertyDropdownColumnsEditor.prototype.getColumnNames = function () {\n var res = [];\n var items = this.originalValue;\n if (!Array.isArray(items))\n return;\n for (var i = 0; i < items.length; i++) {\n var name = items[i].name;\n if (!!name) {\n res.push(name);\n }\n }\n return res;\n };\n SurveyPropertyDropdownColumnsEditor.prototype.updateCanAddColumn = function () {\n if (!this.options ||\n this.options.maximumColumnsCount < 1 ||\n !Array.isArray(this.originalValue))\n return;\n this,\n this.koCanAddItem(this.originalValue.length < this.options.maximumColumnsCount);\n };\n return SurveyPropertyDropdownColumnsEditor;\n}(_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyNestedPropertyEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerEditor(\"matrixdropdowncolumns\", function (property) {\n return new SurveyPropertyDropdownColumnsEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyModalEditor.ts\":\n/*!****************************************************!*\\\n !*** ./src/propertyEditors/propertyModalEditor.ts ***!\n \\****************************************************/\n/*! exports provided: SurveyPropertyModalEditorCustomWidget, SurveyPropertyModalEditor, SurveyPropertyTextEditor, SurveyPropertyHtmlEditor, SurveyPropertyStringsEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyModalEditorCustomWidget\", function() { return SurveyPropertyModalEditorCustomWidget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyModalEditor\", function() { return SurveyPropertyModalEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyTextEditor\", function() { return SurveyPropertyTextEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyHtmlEditor\", function() { return SurveyPropertyHtmlEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyStringsEditor\", function() { return SurveyPropertyStringsEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyEditorBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyEditorBase */ \"./src/propertyEditors/propertyEditorBase.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var rmodal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rmodal */ \"./node_modules/rmodal/index.es.js\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n\n\n\n\n\n\n\n\nvar SurveyPropertyModalEditorCustomWidget = /** @class */ (function () {\n function SurveyPropertyModalEditorCustomWidget(json) {\n this.json = json;\n }\n SurveyPropertyModalEditorCustomWidget.prototype.afterRender = function (editor, el) {\n if (this.json && this.json.afterRender) {\n if (!el.id) {\n el.id =\n SurveyPropertyModalEditorCustomWidget.customWidgetName +\n SurveyPropertyModalEditorCustomWidget.customWidgetId;\n SurveyPropertyModalEditorCustomWidget.customWidgetId++;\n }\n this.json.afterRender(editor, el);\n if (this.json.destroy) {\n var self = this;\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"utils\"].domNodeDisposal.addDisposeCallback(el, function () {\n self.destroy(editor, el);\n });\n }\n }\n };\n SurveyPropertyModalEditorCustomWidget.prototype.destroy = function (editor, el) {\n if (this.json && this.json.destroy) {\n this.json.destroy(editor, el);\n }\n };\n SurveyPropertyModalEditorCustomWidget.customWidgetId = 1;\n SurveyPropertyModalEditorCustomWidget.customWidgetName = \"modalEditorCustomWidget\";\n return SurveyPropertyModalEditorCustomWidget;\n}());\n\nvar SurveyPropertyModalEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyModalEditor, _super);\n function SurveyPropertyModalEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.isBeforeShowCalledValue = false;\n _this.koTitleCaption = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n _this.koHtmlTop = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n _this.koHtmlBottom = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n if (_this.property) {\n _this.koTitleCaption(_editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"]\n .getString(\"pe.editProperty\")[\"format\"](_editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getPropertyName(_this.property.name, _this.property.displayName)));\n }\n _this.modalName =\n \"modelEditor\" + _this.editorType + SurveyPropertyModalEditor.idCounter;\n SurveyPropertyModalEditor.idCounter++;\n _this.modalNameTarget = \"#\" + _this.modalName;\n var self = _this;\n _this.koShowApplyButton = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.koIsShowingModal = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n self.onHideModal = function () { };\n self.onApplyClick = function () {\n self.apply();\n };\n self.onOkClick = function () {\n var res = self.apply();\n if (res)\n self.onHideModal();\n };\n self.onResetClick = function () {\n self.updateValue();\n self.onHideModal();\n };\n self.onShowModal = function () {\n self.beforeShowModal();\n self.beforeShow();\n var modal = new rmodal__WEBPACK_IMPORTED_MODULE_6__[\"default\"](document.querySelector(self.modalNameTarget), {\n bodyClass: \"\",\n closeTimeout: 100,\n dialogOpenClass: \"animated fadeInDown\",\n focus: false,\n });\n modal.open();\n document.addEventListener(\"keydown\", function (ev) {\n modal.keydown(ev);\n }, false);\n self.onHideModal = function () {\n self.beforeCloseModal();\n modal.close();\n };\n if (!!this.elements) {\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"focusFirstControl\"])(this.elements);\n }\n };\n self.koAfterRender = function (el) {\n return self.afterRender(el, self);\n };\n return _this;\n }\n SurveyPropertyModalEditor.registerCustomWidget = function (editorType, json) {\n if (!SurveyPropertyModalEditor.customWidgets)\n SurveyPropertyModalEditor.customWidgets = {};\n SurveyPropertyModalEditor.customWidgets[editorType] = new SurveyPropertyModalEditorCustomWidget(json);\n };\n SurveyPropertyModalEditor.getCustomWidget = function (editorType) {\n if (!SurveyPropertyModalEditor.customWidgets)\n return null;\n return SurveyPropertyModalEditor.customWidgets[editorType];\n };\n Object.defineProperty(SurveyPropertyModalEditor.prototype, \"isModal\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyModalEditor.prototype, \"isBeforeShowCalled\", {\n get: function () {\n return this.isBeforeShowCalledValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyModalEditor.prototype.beforeShow = function () {\n if (this.isBeforeShowCalledValue === true)\n return;\n this.isBeforeShowCalledValue = true;\n this.beforeShowCore();\n };\n SurveyPropertyModalEditor.prototype.beforeShowCore = function () {\n this.updateValue();\n };\n SurveyPropertyModalEditor.prototype.updatePropertyValue = function (newValue) {\n var obj = this.object;\n if (!!this.modalEditableObject) {\n obj = this.modalEditableObject.editableObj;\n }\n obj[this.property.name] = newValue;\n };\n SurveyPropertyModalEditor.prototype.getOriginalValue = function () {\n if (!!this.modalEditableObject) {\n return this.modalEditableObject.editableObj[this.property.name];\n }\n return _super.prototype.getOriginalValue.call(this);\n };\n SurveyPropertyModalEditor.prototype.performApply = function () {\n if (!!this.modalEditableObject) {\n this.modalEditableObject.apply(this.property.name);\n }\n else {\n _super.prototype.performApply.call(this);\n }\n };\n SurveyPropertyModalEditor.prototype.beforeShowModal = function () {\n this.modalEditableObject = new _editableObject__WEBPACK_IMPORTED_MODULE_7__[\"EditableObject\"](this.object);\n this.koIsShowingModal(true);\n };\n SurveyPropertyModalEditor.prototype.isShowingModal = function () {\n return this.koIsShowingModal();\n };\n SurveyPropertyModalEditor.prototype.beforeCloseModal = function () {\n this.isBeforeShowCalledValue = false;\n this.koIsShowingModal(false);\n if (!!this.modalEditableObject) {\n this.modalEditableObject.reset();\n }\n this.modalEditableObject = null;\n };\n SurveyPropertyModalEditor.prototype.onOptionsChanged = function () {\n this.koShowApplyButton = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](!this.options || this.options.showApplyButtonInEditors);\n };\n SurveyPropertyModalEditor.prototype.setObject = function (value) {\n this.isBeforeShowCalledValue = false;\n this.editingObject = value;\n _super.prototype.setObject.call(this, value);\n if (this.options && this.property) {\n var html = this.options.onPropertyEditorModalShowDescriptionCallback(this.property.name, value);\n if (html) {\n if (html.top)\n this.koHtmlTop(html.top);\n if (html.bottom)\n this.koHtmlBottom(html.bottom);\n }\n }\n };\n Object.defineProperty(SurveyPropertyModalEditor.prototype, \"isEditable\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyModalEditor.prototype.afterRender = function (componentInfo, modalEditor) {\n var elements = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"getNodesFromKoComponentInfo\"])(componentInfo);\n this.elements = elements;\n var customWidget = SurveyPropertyModalEditor.getCustomWidget(this.editorType);\n if (!!customWidget) {\n var el = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"getFirstNonTextElement\"])(elements);\n var tEl = elements[0];\n if (tEl.nodeName == \"#text\")\n tEl.data = \"\";\n tEl = elements[elements.length - 1];\n if (tEl.nodeName == \"#text\")\n tEl.data = \"\";\n customWidget.afterRender(this, el);\n }\n if (modalEditor.isShowingModal()) {\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"focusFirstControl\"])(elements);\n }\n };\n SurveyPropertyModalEditor.idCounter = 1;\n return SurveyPropertyModalEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_2__[\"SurveyPropertyEditorBase\"]));\n\nvar SurveyPropertyTextEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyTextEditor, _super);\n function SurveyPropertyTextEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.onFocus = function () {\n _this.options[\"undoRedoManager\"].startTransaction(\"textarea property editor transaction\");\n };\n _this.onBlur = function () {\n _this.options[\"undoRedoManager\"].stopTransaction();\n };\n return _this;\n }\n Object.defineProperty(SurveyPropertyTextEditor.prototype, \"editorType\", {\n get: function () {\n return \"text\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyTextEditor.prototype, \"isEditable\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyTextEditor.prototype.getValueText = function (value) {\n if (!value)\n return null;\n var str = value;\n if (str.length > 20) {\n str = str.substr(0, 20) + \"...\";\n }\n return str;\n };\n return SurveyPropertyTextEditor;\n}(SurveyPropertyModalEditor));\n\nvar SurveyPropertyHtmlEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyHtmlEditor, _super);\n function SurveyPropertyHtmlEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyHtmlEditor.prototype, \"editorType\", {\n get: function () {\n return \"html\";\n },\n enumerable: false,\n configurable: true\n });\n return SurveyPropertyHtmlEditor;\n}(SurveyPropertyTextEditor));\n\nvar SurveyPropertyStringsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyStringsEditor, _super);\n function SurveyPropertyStringsEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.isSettingInitialValue = false;\n _this.koTextValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n _this.koTextValue.subscribe(function (newValue) {\n _this.onTextValueChanged(newValue);\n });\n return _this;\n }\n Object.defineProperty(SurveyPropertyStringsEditor.prototype, \"editorType\", {\n get: function () {\n return \"string[]\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyStringsEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"strings\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyStringsEditor.prototype.beforeShowCore = function () {\n _super.prototype.beforeShowCore.call(this);\n var value = this.koValue();\n this.isSettingInitialValue = true;\n if (!value) {\n this.koTextValue(\"\");\n }\n else {\n if (Array.isArray(value)) {\n value = value.join(\"\\n\");\n }\n this.koTextValue(value);\n }\n this.isSettingInitialValue = false;\n };\n SurveyPropertyStringsEditor.prototype.onTextValueChanged = function (newValue) {\n if (this.isSettingInitialValue)\n return;\n this.koValue(!!newValue ? newValue.split(\"\\n\") : []);\n };\n return SurveyPropertyStringsEditor;\n}(SurveyPropertyModalEditor));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorFactory\"].registerEditor(\"text\", function (property) {\n return new SurveyPropertyTextEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorFactory\"].registerEditor(\"html\", function (property) {\n return new SurveyPropertyHtmlEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorFactory\"].registerEditor(\"string[]\", function (property) {\n return new SurveyPropertyStringsEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorFactory\"].registerTypeForCellEditing(\"text\", \"string\");\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorFactory\"].registerTypeForCellEditing(\"html\", \"string\");\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyMultipleValuesEditor.ts\":\n/*!*************************************************************!*\\\n !*** ./src/propertyEditors/propertyMultipleValuesEditor.ts ***!\n \\*************************************************************/\n/*! exports provided: SurveyPropertyMultipleValuesEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyMultipleValuesEditor\", function() { return SurveyPropertyMultipleValuesEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyModalEditor */ \"./src/propertyEditors/propertyModalEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n\n\n\n\n\n\nvar SurveyPropertyMultipleValuesEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyMultipleValuesEditor, _super);\n function SurveyPropertyMultipleValuesEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.items = [];\n _this.isEditingValueSetting = false;\n _this.koEditingValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n var self = _this;\n _this.koEditingValue.subscribe(function (newValue) {\n if (self.isEditingValueSetting)\n return;\n self.koValue([].concat(self.koEditingValue()));\n });\n _this.koCategories = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n _this.koCategories = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n _this.updateChoices();\n return _this;\n }\n SurveyPropertyMultipleValuesEditor.prototype.getValueText = function (value) {\n if (!value)\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.empty\");\n if (!Array.isArray(value))\n value = [value];\n var str = \"[\";\n for (var i = 0; i < value.length; i++) {\n if (i > 0)\n str += \", \";\n str += this.getTextByItemValue(value[i]);\n }\n str += \"]\";\n return str;\n };\n SurveyPropertyMultipleValuesEditor.prototype.setObject = function (value) {\n _super.prototype.setObject.call(this, value);\n this.updateChoices();\n this.setEditingValue();\n };\n SurveyPropertyMultipleValuesEditor.prototype.updateValue = function () {\n _super.prototype.updateValue.call(this);\n this.setEditingValue();\n };\n Object.defineProperty(SurveyPropertyMultipleValuesEditor.prototype, \"editorType\", {\n get: function () {\n return \"multiplevalues\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyMultipleValuesEditor.prototype.getBackgroundCls = function (value) {\n return this.koEditingValue().indexOf(\"\" + value) === -1\n ? \"svd-light-background-color\"\n : \"svd-main-background-color\";\n };\n SurveyPropertyMultipleValuesEditor.prototype.updateDynamicProperties = function () {\n _super.prototype.updateDynamicProperties.call(this);\n this.updateChoices();\n };\n SurveyPropertyMultipleValuesEditor.prototype.setChoices = function (choices) {\n if (!choices || !Array.isArray(choices) || !choices.length)\n return;\n survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ItemValue\"].setData(this.items, choices);\n this.setCategories(choices);\n this.items.sort(function (a, b) {\n var ca = !!a.category ? a.category : \"\";\n var cb = !!b.category ? b.category : \"\";\n if (ca != cb)\n return ca < cb ? -1 : 1;\n ca = !!a.text ? a.text : \"\";\n cb = !!b.text ? b.text : \"\";\n if (ca != cb)\n return ca < cb ? -1 : 1;\n if (ca.value < cb.value)\n return -1;\n if (ca.value > cb.value)\n return 1;\n return 0;\n });\n this.koCategories(this.buildCategories());\n };\n SurveyPropertyMultipleValuesEditor.prototype.updateChoices = function () {\n var self = this;\n var choices = this.property[\"getChoices\"](this.object, function (choices) {\n self.setChoices(choices);\n });\n this.setChoices(choices);\n };\n SurveyPropertyMultipleValuesEditor.prototype.getTextByItemValue = function (val) {\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i].value == val)\n return this.items[i].text;\n }\n return val;\n };\n SurveyPropertyMultipleValuesEditor.prototype.setEditingValue = function () {\n this.isEditingValueSetting = true;\n var val = this.koValue();\n if (val == null || val == undefined)\n val = [];\n if (!Array.isArray(val))\n val = [val];\n this.koEditingValue(val);\n this.isEditingValueSetting = false;\n };\n SurveyPropertyMultipleValuesEditor.prototype.setCategories = function (choices) {\n for (var i = 0; i < this.items.length; i++) {\n var category = choices[i].category;\n if (!!category) {\n this.items[i].category = category;\n }\n }\n };\n SurveyPropertyMultipleValuesEditor.prototype.buildCategories = function () {\n var res = [];\n var curCategory = \"\";\n var category = null;\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n var itemCategory = !!item.category ? item.category : \"\";\n if (category == null || curCategory != itemCategory) {\n curCategory = itemCategory;\n category = {\n koTitleVisible: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](curCategory != \"\"),\n koCategory: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](curCategory),\n koItems: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"](),\n editor: this\n };\n res.push(category);\n }\n category.koItems.push(item);\n }\n return res;\n };\n return SurveyPropertyMultipleValuesEditor;\n}(_propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyModalEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorFactory\"].registerEditor(\"multiplevalues\", function (property) {\n return new SurveyPropertyMultipleValuesEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\":\n/*!*************************************************************!*\\\n !*** ./src/propertyEditors/propertyNestedPropertyEditor.ts ***!\n \\*************************************************************/\n/*! exports provided: SurveyNestedPropertyEditor, SurveyNestedPropertyEditorItem, SurveyNestedPropertyEditorColumn, SurveyNestedPropertyEditorEditorCell */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyNestedPropertyEditor\", function() { return SurveyNestedPropertyEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyNestedPropertyEditorItem\", function() { return SurveyNestedPropertyEditorItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyNestedPropertyEditorColumn\", function() { return SurveyNestedPropertyEditorColumn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyNestedPropertyEditorEditorCell\", function() { return SurveyNestedPropertyEditorEditorCell; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyItemsEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyItemsEditor */ \"./src/propertyEditors/propertyItemsEditor.ts\");\n/* harmony import */ var _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../questionEditors/questionEditor */ \"./src/questionEditors/questionEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _objectProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../objectProperty */ \"./src/objectProperty.ts\");\n\n\n\n\n\n\n\nvar SurveyNestedPropertyEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyNestedPropertyEditor, _super);\n function SurveyNestedPropertyEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.koColumnsValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]([]);\n var self = _this;\n _this.koShowHeader = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.koEditItem = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n _this.koIsList = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.koActiveView = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"form\");\n _this.koEditItem.subscribe(function (newValue) {\n self.koIsList(self.koEditItem() == null);\n self.onListDetailViewChanged();\n });\n _this.onEditItemClick = function (item) {\n self.koEditItem(item);\n };\n _this.onReturnToListClick = function () {\n var editItem = self.koEditItem();\n if (editItem.itemEditor && editItem.itemEditor.hasError())\n return;\n editItem.hideItemEditor();\n self.koEditItem(null);\n };\n _this.koEditorName = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n return self.getEditorName();\n });\n return _this;\n }\n Object.defineProperty(SurveyNestedPropertyEditor.prototype, \"columns\", {\n get: function () {\n return this.koColumnsValue();\n },\n enumerable: false,\n configurable: true\n });\n SurveyNestedPropertyEditor.prototype.beforeShowCore = function () {\n _super.prototype.beforeShowCore.call(this);\n this.createColumns();\n this.koShowHeader(this.canShowHeader());\n this.koEditItem(null);\n };\n SurveyNestedPropertyEditor.prototype.createColumns = function () {\n var result = [];\n var properties = this.getColumnsProperties();\n for (var i = 0; i < properties.length; i++) {\n result.push(new SurveyNestedPropertyEditorColumn(properties[i]));\n }\n this.koColumnsValue(result);\n };\n SurveyNestedPropertyEditor.prototype.canShowHeader = function () {\n return this.koColumnsValue().length > 1;\n };\n SurveyNestedPropertyEditor.prototype.getColumnsProperties = function () {\n return [];\n };\n SurveyNestedPropertyEditor.prototype.getPropertiesNames = function (className, defaultNames) {\n var res = [];\n var properties = this.getDefinedListProperties(className);\n for (var i = 0; i < properties.length; i++) {\n res.push(properties[i].name);\n }\n if (res.length == 0) {\n res = defaultNames;\n }\n return res;\n };\n SurveyNestedPropertyEditor.prototype.getDefinedListProperties = function (className) {\n if (className === void 0) { className = null; }\n if (!this.property)\n return [];\n var obj = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].createClass(this.property.className);\n if (!obj)\n return [];\n var props = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_4__[\"SurveyQuestionProperties\"](obj, this.options, className, \"list\", this.object, this.property);\n if (props.getTabs().length == 0)\n return [];\n return props.getTabs()[0].properties;\n };\n SurveyNestedPropertyEditor.prototype.getDefaultListProperties = function () {\n var properties = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].getProperties(this.property.className);\n var res = [];\n for (var i = 0; i < properties.length; i++) {\n if (!this.isPropertyShownInList(properties[i]))\n continue;\n res.push(properties[i]);\n }\n return res;\n };\n SurveyNestedPropertyEditor.prototype.isPropertyShownInList = function (property) {\n return property.visible && property.showMode !== \"form\";\n };\n SurveyNestedPropertyEditor.prototype.getPropertiesByNames = function (className, names) {\n var res = [];\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n name.name ? name.name : name;\n var prop = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(className, name);\n if (prop && prop.visible) {\n res.push(prop);\n }\n }\n return res;\n };\n SurveyNestedPropertyEditor.prototype.getEditorName = function () {\n return \"\";\n };\n SurveyNestedPropertyEditor.prototype.getItemClassName = function (item) {\n return \"\";\n };\n SurveyNestedPropertyEditor.prototype.canDeleteItem = function (item) {\n return (!this.options ||\n this.options.onCanDeleteItemCallback(this.object, item, true));\n };\n SurveyNestedPropertyEditor.prototype.createEditorItem = function (item) {\n var _this = this;\n return new SurveyNestedPropertyEditorItem(item, function () { return _this.columns; }, this.options, function (item) { return _this.getItemClassName(item); }, this.canDeleteItem(item), this.originalValue, this.readOnly(), this.object, this.property);\n };\n SurveyNestedPropertyEditor.prototype.onListDetailViewChanged = function () { };\n return SurveyNestedPropertyEditor;\n}(_propertyItemsEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyItemsEditor\"]));\n\nvar SurveyNestedPropertyEditorItem = /** @class */ (function () {\n function SurveyNestedPropertyEditorItem(obj, getColumns, options, getItemClassName, canDeleteItem, parentList, isReadOnly, parentObj, parentProperty) {\n var _this = this;\n if (getItemClassName === void 0) { getItemClassName = null; }\n if (canDeleteItem === void 0) { canDeleteItem = true; }\n if (parentList === void 0) { parentList = null; }\n if (isReadOnly === void 0) { isReadOnly = false; }\n if (parentObj === void 0) { parentObj = undefined; }\n if (parentProperty === void 0) { parentProperty = undefined; }\n this.obj = obj;\n this.getColumns = getColumns;\n this.getItemClassName = getItemClassName;\n this.parentList = parentList;\n this.isReadOnly = isReadOnly;\n this.parentObj = parentObj;\n this.parentProperty = parentProperty;\n this.koCellsValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n this.koCanDeleteItem = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](canDeleteItem);\n this.options = options;\n this.koHasDetails = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](this.hasDetailsProperties());\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n var columns = _this.getColumns();\n _this.koCellsValue([]);\n for (var i = 0; i < columns.length; i++) {\n _this.koCellsValue.push(new SurveyNestedPropertyEditorEditorCell(obj, columns[i].property, _this.options, _this.parentList, _this.isReadOnly, _this.parentObj, _this.parentProperty));\n }\n });\n }\n Object.defineProperty(SurveyNestedPropertyEditorItem.prototype, \"dragIcon\", {\n get: function () {\n return SurveyNestedPropertyEditorItem.dragIconName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyNestedPropertyEditorItem.prototype, \"deleteIcon\", {\n get: function () {\n return SurveyNestedPropertyEditorItem.deleteIconName;\n },\n enumerable: false,\n configurable: true\n });\n SurveyNestedPropertyEditorItem.prototype.getClassName = function () {\n if (!this.getItemClassName)\n return \"\";\n return this.getItemClassName(this.obj);\n };\n Object.defineProperty(SurveyNestedPropertyEditorItem.prototype, \"columns\", {\n get: function () {\n return this.getColumns();\n },\n enumerable: false,\n configurable: true\n });\n SurveyNestedPropertyEditorItem.prototype.hasDetailsProperties = function () {\n var properties = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_4__[\"SurveyQuestionProperties\"](this.obj, this.options, this.getClassName());\n return !properties.isEmpty;\n };\n SurveyNestedPropertyEditorItem.prototype.hideItemEditor = function () {\n this.itemEditorValue = null;\n this.updateValues();\n };\n Object.defineProperty(SurveyNestedPropertyEditorItem.prototype, \"itemEditor\", {\n get: function () {\n if (!this.itemEditorValue)\n this.itemEditorValue = this.createSurveyQuestionEditor();\n return this.itemEditorValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyNestedPropertyEditorItem.prototype, \"cells\", {\n get: function () {\n return this.koCellsValue();\n },\n enumerable: false,\n configurable: true\n });\n SurveyNestedPropertyEditorItem.prototype.hasError = function () {\n if (this.itemEditorValue && this.itemEditorValue.hasError())\n return true;\n var res = false;\n for (var i = 0; i < this.cells.length; i++) {\n res = this.cells[i].hasError || res;\n }\n return res;\n };\n SurveyNestedPropertyEditorItem.prototype.updateValues = function () {\n for (var i = 0; i < this.cells.length; i++) {\n this.cells[i].updateValue();\n }\n };\n SurveyNestedPropertyEditorItem.prototype.createSurveyQuestionEditor = function () {\n var res = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_4__[\"SurveyElementEditorContentModel\"](this.obj, this.getClassName(), this.options, true, this.isReadOnly);\n res.setParentList(this.parentList);\n return res;\n };\n SurveyNestedPropertyEditorItem.prototype.focus = function () {\n var _this = this;\n setTimeout(function () {\n var firstCell = _this.cells[0];\n firstCell && firstCell.editor.focus();\n }, 10);\n };\n SurveyNestedPropertyEditorItem.dragIconName = \"icon-drag-item\";\n SurveyNestedPropertyEditorItem.deleteIconName = \"icon-delete-cross\";\n return SurveyNestedPropertyEditorItem;\n}());\n\nvar SurveyNestedPropertyEditorColumn = /** @class */ (function () {\n function SurveyNestedPropertyEditorColumn(property) {\n this.property = property;\n }\n Object.defineProperty(SurveyNestedPropertyEditorColumn.prototype, \"text\", {\n get: function () {\n var text = _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].hasString(\"pel.\" + this.property.name)\n ? _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"pel.\" + this.property.name)\n : _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getPropertyNameInEditor(this.property.name, this.property.displayName);\n return text ? text : this.property.name;\n },\n enumerable: false,\n configurable: true\n });\n return SurveyNestedPropertyEditorColumn;\n}());\n\nvar SurveyNestedPropertyEditorEditorCell = /** @class */ (function () {\n function SurveyNestedPropertyEditorEditorCell(obj, property, options, listObj, parentReadOnly, parentObj, parentProperty) {\n if (options === void 0) { options = null; }\n if (listObj === void 0) { listObj = null; }\n if (parentReadOnly === void 0) { parentReadOnly = false; }\n if (parentObj === void 0) { parentObj = undefined; }\n if (parentProperty === void 0) { parentProperty = undefined; }\n this.obj = obj;\n this.property = property;\n this.parentObj = parentObj;\n this.parentProperty = parentProperty;\n this.options = options;\n this.objectPropertyValue = new _objectProperty__WEBPACK_IMPORTED_MODULE_6__[\"SurveyObjectProperty\"](this.property, this.options, true);\n var editor = this.objectPropertyValue.editor;\n editor.isInplaceProperty = true;\n editor.parentList = listObj;\n editor.parentReadOnly = parentReadOnly;\n editor.parentObj = this.parentObj;\n editor.parentProperty = this.parentProperty;\n this.objectProperty.object = obj;\n }\n Object.defineProperty(SurveyNestedPropertyEditorEditorCell.prototype, \"objectProperty\", {\n get: function () {\n return this.objectPropertyValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyNestedPropertyEditorEditorCell.prototype, \"editor\", {\n get: function () {\n return this.objectProperty.editor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyNestedPropertyEditorEditorCell.prototype, \"koValue\", {\n get: function () {\n return this.objectProperty.editor.koValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyNestedPropertyEditorEditorCell.prototype, \"value\", {\n get: function () {\n return this.koValue();\n },\n set: function (val) {\n this.koValue(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyNestedPropertyEditorEditorCell.prototype, \"hasError\", {\n get: function () {\n return this.editor.hasError();\n },\n enumerable: false,\n configurable: true\n });\n SurveyNestedPropertyEditorEditorCell.prototype.updateValue = function () {\n this.editor.updateValue();\n };\n return SurveyNestedPropertyEditorEditorCell;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyOneSelectedEditor.ts\":\n/*!**********************************************************!*\\\n !*** ./src/propertyEditors/propertyOneSelectedEditor.ts ***!\n \\**********************************************************/\n/*! exports provided: SurveyPropertyOneSelectedEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyOneSelectedEditor\", function() { return SurveyPropertyOneSelectedEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyItemsEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyItemsEditor */ \"./src/propertyEditors/propertyItemsEditor.ts\");\n/* harmony import */ var _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../questionEditors/questionEditor */ \"./src/questionEditors/questionEditor.ts\");\n\n\n\n\n\nvar SurveyPropertyOneSelectedEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyOneSelectedEditor, _super);\n function SurveyPropertyOneSelectedEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.selectedObjectEditor = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n _this.koSelected = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n _this.koChangeCounter = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](0);\n var self = _this;\n _this.koAvailableClasses = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"](_this.getAvailableClasses());\n _this.koSelected.subscribe(function (newValue) {\n if (!newValue) {\n newValue = null;\n }\n else {\n if (Array.isArray(self.originalValue) &&\n self.originalValue.indexOf(newValue) < 0) {\n newValue = null;\n }\n }\n if (newValue == null &&\n Array.isArray(self.originalValue) &&\n self.originalValue.length > 0) {\n self.koSelected(self.originalValue[0]);\n return;\n }\n self.selectedObjectEditor(self.createSelectedObjEditor(newValue));\n });\n _this.onDeleteClick = function () {\n self.deleteItem(self.koSelected());\n };\n _this.onAddClick = function (item) {\n self.addNewItem(!!item ? item.value : null);\n };\n return _this;\n }\n Object.defineProperty(SurveyPropertyOneSelectedEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"one-selected\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyOneSelectedEditor.prototype, \"editorType\", {\n get: function () {\n return \"oneselected\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyOneSelectedEditor.prototype.getItemText = function (item, counter) {\n if (counter === void 0) { counter = null; }\n return item.getType();\n };\n SurveyPropertyOneSelectedEditor.prototype.getObjClassName = function () {\n return this.currentObjClassName;\n };\n SurveyPropertyOneSelectedEditor.prototype.getAvailableClasses = function () {\n return [];\n };\n SurveyPropertyOneSelectedEditor.prototype.addNewItem = function (className) {\n this.currentObjClassName = className;\n this.addItem();\n this.selectNewItem(true);\n };\n SurveyPropertyOneSelectedEditor.prototype.onValueChanged = function () {\n _super.prototype.onValueChanged.call(this);\n this.koAvailableClasses(this.getAvailableClasses());\n this.selectNewItem(false);\n };\n SurveyPropertyOneSelectedEditor.prototype.createSelectedObjEditor = function (item) {\n var _this = this;\n if (!item)\n return null;\n var editor = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_4__[\"SurveyElementEditorContentModel\"](item, null, this.options);\n editor.onPropertyChanged = function (prop) {\n _this.koChangeCounter(_this.koChangeCounter() + 1);\n };\n this.onCreateEditor(editor);\n return editor;\n };\n SurveyPropertyOneSelectedEditor.prototype.onCreateEditor = function (editor) { };\n SurveyPropertyOneSelectedEditor.prototype.onItemDeleted = function (obj, index) {\n if (index >= this.originalValue.length) {\n index = this.originalValue.length - 1;\n }\n this.koSelected(index > -1 ? this.originalValue[index] : null);\n };\n SurveyPropertyOneSelectedEditor.prototype.selectNewItem = function (isNew) {\n if (!this.koSelected || !Array.isArray(this.originalValue))\n return;\n var index = this.originalValue.length - 1;\n if (!isNew) {\n var index = this.originalValue.indexOf(this.koSelected());\n if (index < 0 && this.originalValue.length > 0) {\n index = 0;\n }\n }\n var val = index > -1 ? this.originalValue[index] : null;\n if (val != this.koSelected()) {\n this.koSelected(val);\n }\n };\n SurveyPropertyOneSelectedEditor.prototype.createNewItem = function () {\n return survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].createClass(this.getObjClassName());\n };\n return SurveyPropertyOneSelectedEditor;\n}(_propertyItemsEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyItemsEditor\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyPagesEditor.ts\":\n/*!****************************************************!*\\\n !*** ./src/propertyEditors/propertyPagesEditor.ts ***!\n \\****************************************************/\n/*! exports provided: SurveyPropertyPagesEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyPagesEditor\", function() { return SurveyPropertyPagesEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyNestedPropertyEditor */ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n\n\n\n\n\n\n\nvar SurveyPropertyPagesEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyPagesEditor, _super);\n function SurveyPropertyPagesEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyPagesEditor.prototype, \"editorType\", {\n get: function () {\n return \"surveypages\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyPagesEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"nested-items\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyPagesEditor.prototype.getEditorName = function () {\n if (!this.koEditItem())\n return \"\";\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"]\n .getString(\"pe.columnEdit\")[\"format\"](this.koEditItem().obj.name);\n };\n SurveyPropertyPagesEditor.prototype.getItemClassName = function (item) {\n return \"page\";\n };\n SurveyPropertyPagesEditor.prototype.createNewItem = function () {\n var newName = _surveyHelper__WEBPACK_IMPORTED_MODULE_5__[\"SurveyHelper\"].getNewPageName(this.originalValue);\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Page\"](newName);\n };\n SurveyPropertyPagesEditor.prototype.getColumnsProperties = function () {\n var propertyNames = [\"name\", \"title\"];\n if (!!this.object) {\n propertyNames = this.getPropertiesNames(\"page@\" + this.object.getType(), [\n \"name\",\n \"title\",\n ]);\n }\n return this.getPropertiesByNames(\"page\", propertyNames);\n };\n SurveyPropertyPagesEditor.prototype.createEditorItem = function (item) {\n var res = _super.prototype.createEditorItem.call(this, item);\n res.koHasDetails(false);\n return res;\n };\n SurveyPropertyPagesEditor.prototype.canDeleteItem = function (item) {\n var survey = _editableObject__WEBPACK_IMPORTED_MODULE_6__[\"EditableObject\"].getSurvey(this.object);\n if (!survey)\n return true;\n return (!this.options ||\n this.options.onCanDeleteItemCallback(this.object, item, survey.currentPage !== item));\n };\n SurveyPropertyPagesEditor.prototype.createEditorOptions = function () {\n return { allowAddRemoveItems: true, allowRemoveAllItems: false };\n };\n SurveyPropertyPagesEditor.prototype.startDragItem = function () {\n var survey = _editableObject__WEBPACK_IMPORTED_MODULE_6__[\"EditableObject\"].getSurvey(this.object);\n if (!!survey) {\n survey[\"onContainsPageCallback\"] = function () {\n return true;\n };\n }\n };\n SurveyPropertyPagesEditor.prototype.endDragItem = function () {\n var survey = _editableObject__WEBPACK_IMPORTED_MODULE_6__[\"EditableObject\"].getSurvey(this.object);\n if (!!survey) {\n survey[\"onContainsPageCallback\"] = null;\n }\n };\n return SurveyPropertyPagesEditor;\n}(_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyNestedPropertyEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerEditor(\"surveypages\", function (property) {\n return new SurveyPropertyPagesEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyRestfullEditor.ts\":\n/*!*******************************************************!*\\\n !*** ./src/propertyEditors/propertyRestfullEditor.ts ***!\n \\*******************************************************/\n/*! exports provided: SurveyPropertyResultfullEditor, SurveyPropertyResultfullEditorItem */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyResultfullEditor\", function() { return SurveyPropertyResultfullEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyResultfullEditorItem\", function() { return SurveyPropertyResultfullEditorItem; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyModalEditor */ \"./src/propertyEditors/propertyModalEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../questionEditors/questionEditor */ \"./src/questionEditors/questionEditor.ts\");\n\n\n\n\n\n\n\nvar SurveyPropertyResultfullEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyResultfullEditor, _super);\n function SurveyPropertyResultfullEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.koContentEditor = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n _this.createSurvey();\n return _this;\n }\n Object.defineProperty(SurveyPropertyResultfullEditor.prototype, \"editorType\", {\n get: function () {\n return \"restfull\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyResultfullEditor.prototype.beforeShowCore = function () {\n var _this = this;\n _super.prototype.beforeShowCore.call(this);\n this.setTestQuestionProperties();\n var contentEditor = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_6__[\"SurveyElementEditorContentModel\"](this.originalValue, \"\", this.options);\n contentEditor.onPropertyChanged = function (prop) {\n _this.changeChoicesByUrlProp(prop.name);\n _this.options.onPropertyValueChanged(_this.property, _this.object, _this.object[prop.name]);\n };\n this.koContentEditor(contentEditor);\n };\n Object.defineProperty(SurveyPropertyResultfullEditor.prototype, \"contentEditor\", {\n get: function () {\n return this.koContentEditor();\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyResultfullEditor.prototype.getValueText = function (value) {\n if (!value || !value.url)\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.empty\");\n var str = value.url;\n if (str.length > 20) {\n str = str.substr(0, 20) + \"...\";\n }\n return str;\n };\n SurveyPropertyResultfullEditor.prototype.changeChoicesByUrlProp = function (propName) {\n if (!this.question || !this.originalValue)\n return;\n this.question.choicesByUrl[propName] = this.originalValue[propName];\n this.question.choicesByUrl.run();\n };\n SurveyPropertyResultfullEditor.prototype.setTestQuestionProperties = function () {\n if (!this.question || !this.originalValue)\n return;\n var json = this.originalValue.toJSON();\n new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"JsonObject\"]().toObject(json, this.question.choicesByUrl);\n };\n SurveyPropertyResultfullEditor.prototype.createSurvey = function () {\n this.survey = !!this.options\n ? this.options.createSurvey({}, \"restfulEditor\")\n : new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Survey\"]();\n this.survey.showNavigationButtons = false;\n this.survey.showQuestionNumbers = \"off\";\n var page = this.survey.addNewPage(\"page1\");\n this.question = (page.addNewQuestion(\"dropdown\", \"q1\"));\n this.question.title = _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"pe.testService\");\n this.question.choices = [];\n };\n return SurveyPropertyResultfullEditor;\n}(_propertyModalEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyModalEditor\"]));\n\nvar SurveyPropertyResultfullEditorItem = /** @class */ (function () {\n function SurveyPropertyResultfullEditorItem(name, val, onValueChanged) {\n this.name = name;\n this.onValueChanged = onValueChanged;\n this.isSetttingValue = false;\n this.koValue = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](val ? val : \"\");\n var self = this;\n this.koValue.subscribe(function (newValue) {\n if (!self.isSetttingValue) {\n self.onValueChanged(self);\n }\n });\n }\n SurveyPropertyResultfullEditorItem.prototype.setValue = function (val) {\n this.isSetttingValue = true;\n this.koValue(val);\n this.isSetttingValue = false;\n };\n return SurveyPropertyResultfullEditorItem;\n}());\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorFactory\"].registerEditor(\"restfull\", function (property) {\n return new SurveyPropertyResultfullEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyTextItemsEditor.ts\":\n/*!********************************************************!*\\\n !*** ./src/propertyEditors/propertyTextItemsEditor.ts ***!\n \\********************************************************/\n/*! exports provided: SurveyPropertyTextItemsEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyTextItemsEditor\", function() { return SurveyPropertyTextItemsEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyNestedPropertyEditor */ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n\n\n\n\n\n\nvar SurveyPropertyTextItemsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyTextItemsEditor, _super);\n function SurveyPropertyTextItemsEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyTextItemsEditor.prototype, \"editorType\", {\n get: function () {\n return \"textitem[]\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyTextItemsEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"nested-items\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyTextItemsEditor.prototype.getEditorName = function () {\n if (!this.koEditItem())\n return \"\";\n return this.koEditItem().text;\n };\n SurveyPropertyTextItemsEditor.prototype.createNewItem = function () {\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"MultipleTextItem\"](this.getNewName());\n };\n SurveyPropertyTextItemsEditor.prototype.getItemClassName = function (item) {\n return \"multipletextitem\";\n };\n SurveyPropertyTextItemsEditor.prototype.getColumnsProperties = function () {\n var names = this.getPropertiesNames(\"multipletext@items\", []);\n return this.getPropertiesByNames(\"multipletextitem\", names);\n };\n SurveyPropertyTextItemsEditor.prototype.getNewName = function () {\n var objs = [];\n var items = this.originalValue;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (!!item) {\n objs.push({ name: item.name });\n }\n }\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_2__[\"SurveyHelper\"].getNewName(objs, _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getString(\"ed.newTextItemName\"));\n };\n return SurveyPropertyTextItemsEditor;\n}(_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_4__[\"SurveyNestedPropertyEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_5__[\"SurveyPropertyEditorFactory\"].registerEditor(\"textitem[]\", function (property) {\n return new SurveyPropertyTextItemsEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyTriggersEditor.ts\":\n/*!*******************************************************!*\\\n !*** ./src/propertyEditors/propertyTriggersEditor.ts ***!\n \\*******************************************************/\n/*! exports provided: SurveyPropertyTriggersEditor, SurveyPropertySelectItemsEditor, SurveyPropertySelectPagesEditor, SurveyPropertySelectQuestionsEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyTriggersEditor\", function() { return SurveyPropertyTriggersEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertySelectItemsEditor\", function() { return SurveyPropertySelectItemsEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertySelectPagesEditor\", function() { return SurveyPropertySelectPagesEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertySelectQuestionsEditor\", function() { return SurveyPropertySelectQuestionsEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyOneSelectedEditor */ \"./src/propertyEditors/propertyOneSelectedEditor.ts\");\n/* harmony import */ var _propertyEditorBase__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyEditorBase */ \"./src/propertyEditors/propertyEditorBase.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n/* harmony import */ var _expressionToDisplayText__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../expressionToDisplayText */ \"./src/expressionToDisplayText.ts\");\n/* harmony import */ var _surveyElementSelector__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./surveyElementSelector */ \"./src/propertyEditors/surveyElementSelector.ts\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n\n\n\n\n\n\n\n\n\n\nvar SurveyPropertyTriggersEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyTriggersEditor, _super);\n function SurveyPropertyTriggersEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyTriggersEditor.prototype, \"editorType\", {\n get: function () {\n return \"triggers\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyTriggersEditor.prototype.getItemText = function (item, counter) {\n if (counter === void 0) { counter = null; }\n if (!item.expression)\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"pe.triggerNotSet\");\n var survey = !!this.getSurvey ? this.getSurvey() : null;\n var res = item.expression;\n if (!!survey) {\n res = new _expressionToDisplayText__WEBPACK_IMPORTED_MODULE_7__[\"ExpressionToDisplayText\"](survey, this.options).toDisplayText(item.expression);\n }\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"pe.triggerRunIf\") + \": \" + res;\n };\n SurveyPropertyTriggersEditor.prototype.getAvailableClasses = function () {\n var classes = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].getChildrenClasses(\"surveytrigger\", true);\n var res = [];\n for (var i = 0; i < classes.length; i++) {\n var name = classes[i].name;\n if (name == \"visibletrigger\")\n continue;\n res.push({\n value: name,\n text: _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getTriggerName(name),\n });\n }\n return res;\n };\n SurveyPropertyTriggersEditor.prototype.onCreateEditor = function (editor) {\n var expressionEditor = editor.getPropertyEditorByName(\"expression\");\n if (!!expressionEditor && expressionEditor.editor) {\n expressionEditor.editor[\"isEditorShowing\"] = true;\n }\n };\n SurveyPropertyTriggersEditor.prototype.getSurvey = function () {\n return !!this.object ? this.object : this.editingObject;\n };\n return SurveyPropertyTriggersEditor;\n}(_propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyOneSelectedEditor\"]));\n\nvar SurveyPropertySelectItemsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertySelectItemsEditor, _super);\n function SurveyPropertySelectItemsEditor(property) {\n var _this = _super.call(this, property) || this;\n _this.koItemSelector = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n _this.koSelectedForDelete = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n _this.koDummy = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](0);\n _this.koItems = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n _this.koDummy();\n return _this.originalValue;\n });\n return _this;\n }\n Object.defineProperty(SurveyPropertySelectItemsEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"triggersitems\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertySelectItemsEditor.prototype.deleteItems = function () {\n var items = this.koSelectedForDelete();\n for (var i = 0; i < items.length; i++) {\n this.deleteItem(items[i]);\n }\n this.resetItems();\n };\n SurveyPropertySelectItemsEditor.prototype.addItem = function () {\n if (this.originalValue.indexOf(this.itemSelectorValue.value) > -1)\n return;\n this.originalValue.push(this.itemSelectorValue.value);\n this.itemSelectorValue.value = \"\";\n this.resetItems();\n };\n SurveyPropertySelectItemsEditor.prototype.beforeShow = function () {\n _super.prototype.beforeShow.call(this);\n var survey = _editableObject__WEBPACK_IMPORTED_MODULE_9__[\"EditableObject\"].getSurvey(this.object);\n this.itemSelectorValue = new _surveyElementSelector__WEBPACK_IMPORTED_MODULE_8__[\"SurveyElementSelector\"](survey, this.getElementType(), !!this.options && this.options.showTitlesInExpressions);\n this.koItemSelector(this.itemSelectorValue);\n this.resetItems();\n };\n SurveyPropertySelectItemsEditor.prototype.getElementType = function () {\n return \"question\";\n };\n SurveyPropertySelectItemsEditor.prototype.deleteItem = function (item) {\n if (!Array.isArray(this.originalValue))\n return;\n var index = this.originalValue.indexOf(item);\n if (index >= 0) {\n this.originalValue.splice(index, 1);\n }\n };\n SurveyPropertySelectItemsEditor.prototype.resetItems = function () {\n this.koDummy(this.koDummy() + 1);\n };\n return SurveyPropertySelectItemsEditor;\n}(_propertyEditorBase__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorBase\"]));\n\nvar SurveyPropertySelectPagesEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertySelectPagesEditor, _super);\n function SurveyPropertySelectPagesEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SurveyPropertySelectPagesEditor.prototype, \"editorType\", {\n get: function () {\n return \"pages\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertySelectPagesEditor.prototype.getElementType = function () {\n return \"page\";\n };\n return SurveyPropertySelectPagesEditor;\n}(SurveyPropertySelectItemsEditor));\n\nvar SurveyPropertySelectQuestionsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertySelectQuestionsEditor, _super);\n function SurveyPropertySelectQuestionsEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SurveyPropertySelectQuestionsEditor.prototype, \"editorType\", {\n get: function () {\n return \"questions\";\n },\n enumerable: false,\n configurable: true\n });\n return SurveyPropertySelectQuestionsEditor;\n}(SurveyPropertySelectItemsEditor));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_6__[\"SurveyPropertyEditorFactory\"].registerEditor(\"triggers\", function (property) {\n return new SurveyPropertyTriggersEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_6__[\"SurveyPropertyEditorFactory\"].registerEditor(\"pages\", function (property) {\n return new SurveyPropertySelectPagesEditor(property);\n});\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_6__[\"SurveyPropertyEditorFactory\"].registerEditor(\"questions\", function (property) {\n return new SurveyPropertySelectQuestionsEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyUrlConditionEditor.ts\":\n/*!***********************************************************!*\\\n !*** ./src/propertyEditors/propertyUrlConditionEditor.ts ***!\n \\***********************************************************/\n/*! exports provided: SurveyPropertyUrlConditionEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyUrlConditionEditor\", function() { return SurveyPropertyUrlConditionEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyNestedPropertyEditor */ \"./src/propertyEditors/propertyNestedPropertyEditor.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n\n\n\n\nvar SurveyPropertyUrlConditionEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyUrlConditionEditor, _super);\n function SurveyPropertyUrlConditionEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyUrlConditionEditor.prototype, \"editorType\", {\n get: function () {\n return \"urlconditions\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyPropertyUrlConditionEditor.prototype, \"editorTypeTemplate\", {\n get: function () {\n return \"nested-items\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyUrlConditionEditor.prototype.createNewItem = function () {\n return survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].createClass(\"urlconditionitem\");\n };\n SurveyPropertyUrlConditionEditor.prototype.getColumnsProperties = function () {\n return this.getPropertiesByNames(\"urlconditionitem\", [\"expression\", \"url\"]);\n };\n return SurveyPropertyUrlConditionEditor;\n}(_propertyNestedPropertyEditor__WEBPACK_IMPORTED_MODULE_2__[\"SurveyNestedPropertyEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyEditorFactory\"].registerEditor(\"urlconditions\", function (property) {\n return new SurveyPropertyUrlConditionEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/propertyValidatorsEditor.ts\":\n/*!*********************************************************!*\\\n !*** ./src/propertyEditors/propertyValidatorsEditor.ts ***!\n \\*********************************************************/\n/*! exports provided: SurveyPropertyValidatorsEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyValidatorsEditor\", function() { return SurveyPropertyValidatorsEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./propertyOneSelectedEditor */ \"./src/propertyEditors/propertyOneSelectedEditor.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./propertyEditorFactory */ \"./src/propertyEditors/propertyEditorFactory.ts\");\n\n\n\n\n\nvar SurveyPropertyValidatorsEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyPropertyValidatorsEditor, _super);\n function SurveyPropertyValidatorsEditor(property) {\n return _super.call(this, property) || this;\n }\n Object.defineProperty(SurveyPropertyValidatorsEditor.prototype, \"editorType\", {\n get: function () {\n return \"validators\";\n },\n enumerable: false,\n configurable: true\n });\n SurveyPropertyValidatorsEditor.prototype.getItemText = function (item, counter) {\n if (counter === void 0) { counter = null; }\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getValidatorName(item.getType());\n };\n SurveyPropertyValidatorsEditor.prototype.getAvailableClasses = function () {\n var names = this.getValidatorTypes();\n var res = [];\n for (var i = 0; i < names.length; i++) {\n res.push({\n value: names[i],\n text: _editorLocalization__WEBPACK_IMPORTED_MODULE_3__[\"editorLocalization\"].getValidatorName(names[i])\n });\n }\n return res;\n };\n SurveyPropertyValidatorsEditor.prototype.getValidatorTypes = function () {\n var res = [];\n if (!!this.object && !!this.object.getSupportedValidators) {\n res = this.object.getSupportedValidators();\n for (var i = 0; i < res.length; i++) {\n res[i] = res[i] + \"validator\";\n }\n return res;\n }\n var classes = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].getChildrenClasses(\"surveyvalidator\", true);\n for (var i = 0; i < classes.length; i++) {\n res.push(classes[i].name);\n }\n return res;\n };\n return SurveyPropertyValidatorsEditor;\n}(_propertyOneSelectedEditor__WEBPACK_IMPORTED_MODULE_2__[\"SurveyPropertyOneSelectedEditor\"]));\n\n_propertyEditorFactory__WEBPACK_IMPORTED_MODULE_4__[\"SurveyPropertyEditorFactory\"].registerEditor(\"validators\", function (property) {\n return new SurveyPropertyValidatorsEditor(property);\n});\n\n\n/***/ }),\n\n/***/ \"./src/propertyEditors/surveyElementSelector.ts\":\n/*!******************************************************!*\\\n !*** ./src/propertyEditors/surveyElementSelector.ts ***!\n \\******************************************************/\n/*! exports provided: SurveyElementSelector */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyElementSelector\", function() { return SurveyElementSelector; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _editableObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./editableObject */ \"./src/propertyEditors/editableObject.ts\");\n\n\n\nvar SurveyElementSelector = /** @class */ (function () {\n function SurveyElementSelector(survey, elementType, showTitle, optionsCaptionName) {\n if (elementType === void 0) { elementType = \"question\"; }\n if (showTitle === void 0) { showTitle = false; }\n if (optionsCaptionName === void 0) { optionsCaptionName = \"\"; }\n this.survey = survey;\n this.disableCallback = false;\n this.selectedValues = [];\n this.survey = _editableObject__WEBPACK_IMPORTED_MODULE_2__[\"EditableObject\"].getOriginalSurvey(this.survey);\n this.showTitle = showTitle;\n this.optionsCaptionValue = this.getOptionsText(optionsCaptionName, elementType);\n this.koValue = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"\");\n var self = this;\n this.koValue.subscribe(function (newValue) {\n if (self.disableCallback || !self.onValueChangedCallback)\n return;\n self.onValueChangedCallback(newValue);\n });\n this.koElements = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"](this.buildElements(elementType));\n this.koHasFocus = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.koHasFocus.subscribe(function (newValue) {\n if (newValue) {\n self.updateItems();\n }\n });\n this.koErrorText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"\");\n this.koDisplayError = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return !!self.koErrorText();\n });\n this.koAfterRender = function () { };\n }\n Object.defineProperty(SurveyElementSelector.prototype, \"value\", {\n get: function () {\n return this.koValue();\n },\n set: function (val) {\n this.disableCallback = true;\n this.koValue(val);\n this.selectedValues.push(val);\n this.disableCallback = false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyElementSelector.prototype, \"element\", {\n get: function () {\n var el = this.findItemByName(this.value);\n return !!el ? el.element : null;\n },\n set: function (val) {\n var el = this.findItemByElement(val);\n if (!!el) {\n this.value = el.name;\n }\n },\n enumerable: false,\n configurable: true\n });\n SurveyElementSelector.prototype.findItemByName = function (name) {\n if (!name)\n return null;\n var items = this.koElements();\n for (var i = 0; i < items.length; i++) {\n if (items[i].name == name)\n return items[i];\n }\n return null;\n };\n SurveyElementSelector.prototype.findItemByElement = function (el) {\n if (!el)\n return null;\n var items = this.koElements();\n for (var i = 0; i < items.length; i++) {\n if (items[i].element === el)\n return items[i];\n }\n return null;\n };\n Object.defineProperty(SurveyElementSelector.prototype, \"optionsCaption\", {\n get: function () {\n return this.optionsCaptionValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyElementSelector.prototype.updateItems = function () {\n if (!this.disabledPropertyName)\n return;\n var items = this.koElements();\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var disabled = !!item.element[this.disabledPropertyName] &&\n this.selectedValues.indexOf(item.name) < 0;\n item.koDisabled(disabled);\n }\n };\n SurveyElementSelector.prototype.hasError = function () {\n var text = !this.element ? this.getLocString(\"pe.itemSelectorEmpty\") : \"\";\n this.koErrorText(text);\n return !!text;\n };\n SurveyElementSelector.prototype.getLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"editorLocalization\"].getString(name);\n };\n SurveyElementSelector.prototype.buildElements = function (elementType) {\n var elements = [];\n if (elementType == \"question\") {\n elements = this.survey.getAllQuestions();\n }\n if (elementType == \"page\") {\n elements = this.survey.pages;\n }\n if (elementType == \"panel\") {\n elements = this.survey.getAllPanels();\n }\n var res = [];\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n var text = \"\";\n if (this.showTitle) {\n text = el.locTitle.renderedHtml;\n }\n if (!text)\n text = el.name;\n res.push({\n name: el.name,\n text: text,\n element: el,\n koDisabled: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false),\n });\n }\n res.sort(function (a, b) {\n return a.text.localeCompare(b.text);\n });\n return res;\n };\n SurveyElementSelector.prototype.getOptionsText = function (optionsCaptionName, elementType) {\n if (!optionsCaptionName) {\n optionsCaptionName =\n elementType == \"page\"\n ? \"pe.conditionSelectPage\"\n : elementType == \"panel\"\n ? \"pe.conditionSelectPanel\"\n : \"pe.conditionSelectQuestion\";\n }\n return this.getLocString(optionsCaptionName);\n };\n return SurveyElementSelector;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/questionEditors/properties.ts\":\n/*!*******************************************!*\\\n !*** ./src/questionEditors/properties.ts ***!\n \\*******************************************/\n/*! exports provided: SurveyCreatorProperties, creatorProperties */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyCreatorProperties\", function() { return SurveyCreatorProperties; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"creatorProperties\", function() { return creatorProperties; });\n/* harmony import */ var _questionEditorDefinition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./questionEditorDefinition */ \"./src/questionEditors/questionEditorDefinition.ts\");\n\nvar SurveyCreatorProperties = /** @class */ (function () {\n function SurveyCreatorProperties() {\n }\n Object.defineProperty(SurveyCreatorProperties, \"instance\", {\n get: function () {\n return SurveyCreatorProperties.instanceValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyCreatorProperties.prototype.hideCategory = function (categoryName) {\n var def = _questionEditorDefinition__WEBPACK_IMPORTED_MODULE_0__[\"SurveyQuestionEditorDefinition\"].definition;\n for (var key in def) {\n var tab = this.getTabFromElementDef(def[key], categoryName);\n if (!!tab) {\n tab.visible = false;\n }\n }\n };\n SurveyCreatorProperties.prototype.hideProperty = function (propertyName, objType) {\n if (objType === void 0) { objType = undefined; }\n //Survey.Serializer.fin\n };\n SurveyCreatorProperties.prototype.showProperty = function (propertyName, objType, options) {\n if (objType === void 0) { objType = undefined; }\n if (options === void 0) { options = undefined; }\n };\n SurveyCreatorProperties.prototype.moveProperty = function (propertyName, objType, options) { };\n SurveyCreatorProperties.prototype.changeProperty = function (propertyName, objType, options) { };\n SurveyCreatorProperties.prototype.getTabFromElementDef = function (elDef, tabName) {\n if (!elDef.tabs)\n return null;\n for (var i = 0; i < elDef.tabs.length; i++) {\n if (elDef.tabs[i].name == tabName)\n return elDef.tabs[i];\n }\n return null;\n };\n SurveyCreatorProperties.instanceValue = new SurveyCreatorProperties();\n return SurveyCreatorProperties;\n}());\n\nvar creatorProperties = SurveyCreatorProperties.instance;\n\n\n/***/ }),\n\n/***/ \"./src/questionEditors/questionEditor.ts\":\n/*!***********************************************!*\\\n !*** ./src/questionEditors/questionEditor.ts ***!\n \\***********************************************/\n/*! exports provided: PropertyGridObjectEditorModel, SurveyElementEditorContentModel, SurveyElementEditorOldTableContentModel, SurveyElementEditorTabModel, SurveyPropertyEditorShowWindow, SurveyQuestionEditorPropertyDefinition, SurveyQuestionEditorTabDefinition, SurveyQuestionProperties, SurveyQuestionEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PropertyGridObjectEditorModel\", function() { return PropertyGridObjectEditorModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyElementEditorContentModel\", function() { return SurveyElementEditorContentModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyElementEditorOldTableContentModel\", function() { return SurveyElementEditorOldTableContentModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyElementEditorTabModel\", function() { return SurveyElementEditorTabModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyPropertyEditorShowWindow\", function() { return SurveyPropertyEditorShowWindow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionEditorPropertyDefinition\", function() { return SurveyQuestionEditorPropertyDefinition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionEditorTabDefinition\", function() { return SurveyQuestionEditorTabDefinition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionProperties\", function() { return SurveyQuestionProperties; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionEditor\", function() { return SurveyQuestionEditor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _questionEditorDefinition__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./questionEditorDefinition */ \"./src/questionEditors/questionEditorDefinition.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var rmodal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rmodal */ \"./node_modules/rmodal/index.es.js\");\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../propertyEditors/editableObject */ \"./src/propertyEditors/editableObject.ts\");\n/* harmony import */ var _objectProperty__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../objectProperty */ \"./src/objectProperty.ts\");\n\n\n\n\n\n\n\n\n\n\nvar PropertyGridObjectEditorModel = /** @class */ (function () {\n function PropertyGridObjectEditorModel(propertyEditorOptions) {\n if (propertyEditorOptions === void 0) { propertyEditorOptions = null; }\n this.propertyEditorOptions = propertyEditorOptions;\n this.selectedObjectValue = null;\n this.koElementEditor = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n this.koHasObject = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n // Old - table(old property grid) creator.options.showElementEditorAsPropertyGrid: false;\n // New - accordition or oldest tabs\n this.koIsOldTableAppearance = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n }\n PropertyGridObjectEditorModel.prototype.objectChanged = function () { };\n Object.defineProperty(PropertyGridObjectEditorModel.prototype, \"selectedObject\", {\n get: function () {\n return this.selectedObjectValue;\n },\n set: function (value) {\n var _this = this;\n if (this.selectedObjectValue == value)\n return;\n this.selectedObjectValue = value;\n this.koHasObject(false);\n if (!!value) {\n var elementEditor = this.createSurveyElementEditor(value);\n elementEditor.onAfterRenderCallback = this.onAfterRenderCallback;\n elementEditor.onPropertyChanged = function (prop, oldValue) {\n if (_this.onPropertyChanged)\n _this.onPropertyChanged(_this.selectedObjectValue, prop, oldValue);\n };\n elementEditor.onCorrectValueBeforeSet = function (prop, newValue) {\n if (!_this.onCorrectValueBeforeSet)\n return newValue;\n return _this.onCorrectValueBeforeSet(_this.selectedObjectValue, prop, newValue);\n };\n this.koElementEditor(elementEditor);\n }\n else {\n this.koElementEditor(null);\n }\n this.koHasObject(!!value);\n },\n enumerable: false,\n configurable: true\n });\n PropertyGridObjectEditorModel.prototype.getPropertyEditorByName = function (propertyName) {\n if (!this.koElementEditor())\n return null;\n return this.koElementEditor().getPropertyEditorByName(propertyName);\n };\n PropertyGridObjectEditorModel.prototype.focusEditor = function () {\n if (!!this.koElementEditor()) {\n this.koElementEditor().focusEditor();\n }\n };\n PropertyGridObjectEditorModel.prototype.hasErrors = function () {\n if (!this.koElementEditor())\n return false;\n return this.koElementEditor().hasError();\n };\n PropertyGridObjectEditorModel.prototype.createSurveyElementEditor = function (value) {\n var elementEditor;\n if (this.koIsOldTableAppearance()) {\n elementEditor = new SurveyElementEditorOldTableContentModel(value, \"\", this.propertyEditorOptions, this.onSortPropertyCallback);\n }\n else {\n elementEditor = new SurveyElementEditorContentModel(value, \"\", this.propertyEditorOptions, true);\n }\n return elementEditor;\n };\n return PropertyGridObjectEditorModel;\n}());\n\nvar SurveyElementEditorContentModel = /** @class */ (function () {\n function SurveyElementEditorContentModel(obj, className, options, useAsPropertyGrid, _readOnly) {\n if (className === void 0) { className = null; }\n if (options === void 0) { options = null; }\n if (useAsPropertyGrid === void 0) { useAsPropertyGrid = false; }\n if (_readOnly === void 0) { _readOnly = false; }\n this.className = className;\n this.options = options;\n this.useAsPropertyGrid = useAsPropertyGrid;\n this._readOnly = _readOnly;\n this.koActiveTab = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]();\n this.setOriginalObjValue(obj);\n if (!this.className && this.originalObj.getType) {\n this.className = this.originalObj.getType();\n }\n this.properties = new SurveyQuestionProperties(this.editableObj, this.options, this.className);\n var tabs = this.buildTabs();\n this.koTabs = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"](tabs);\n this.assignPropertiesToEditors();\n var self = this;\n this.koActiveTab.subscribe(function (val) {\n if (!val)\n return;\n var tab = self.getTabByName(val);\n if (!!tab) {\n tab.expand();\n }\n });\n if (tabs.length > 0) {\n this.koActiveTab(tabs[0].name);\n }\n }\n Object.defineProperty(SurveyElementEditorContentModel.prototype, \"readOnly\", {\n get: function () {\n return !!this.options && this.options.readOnly || this._readOnly;\n },\n enumerable: false,\n configurable: true\n });\n SurveyElementEditorContentModel.prototype.getLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(name);\n };\n SurveyElementEditorContentModel.prototype.setParentList = function (parentList) {\n var edProperties = this.getAllEditorProperties();\n for (var i = 0; i < edProperties.length; i++) {\n edProperties[i].editor.parentList = parentList;\n }\n };\n SurveyElementEditorContentModel.prototype.setOriginalObjValue = function (obj) {\n this.originalObjValue = obj;\n };\n Object.defineProperty(SurveyElementEditorContentModel.prototype, \"originalObj\", {\n get: function () {\n return this.originalObjValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyElementEditorContentModel.prototype, \"obj\", {\n get: function () {\n return this.originalObjValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyElementEditorContentModel.prototype, \"editableObj\", {\n get: function () {\n return this.originalObjValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyElementEditorContentModel.prototype.hasError = function () {\n var tabs = this.koTabs();\n for (var i = 0; i < tabs.length; i++) {\n if (tabs[i].hasError()) {\n this.koActiveTab(tabs[i].name);\n return true;\n }\n }\n return false;\n };\n SurveyElementEditorContentModel.prototype.getPropertyEditorByName = function (propertyName) {\n var props = this.getAllEditorProperties();\n for (var i = 0; i < props.length; i++) {\n if (props[i].property.name == propertyName)\n return props[i];\n }\n return null;\n };\n SurveyElementEditorContentModel.prototype.getTabByName = function (tabName) {\n var tabs = this.koTabs();\n for (var i = 0; i < tabs.length; i++) {\n if (tabs[i].name == tabName)\n return tabs[i];\n }\n return null;\n };\n SurveyElementEditorContentModel.prototype.focusEditor = function () {\n if (!!this.koTabs() && this.koTabs().length > 0) {\n this.koTabs()[0].focusEditor();\n }\n };\n SurveyElementEditorContentModel.prototype.getAllEditorProperties = function () {\n var res = [];\n if (!this.koTabs)\n return res;\n var tabs = this.koTabs();\n for (var i = 0; i < tabs.length; i++) {\n var tab = tabs[i];\n var props = tab.editorProperties;\n for (var j = 0; j < props.length; j++) {\n res.push(props[j]);\n }\n }\n return res;\n };\n SurveyElementEditorContentModel.prototype.buildTabs = function () {\n var tabs = [];\n this.addPropertiesTabs(tabs);\n return tabs;\n };\n SurveyElementEditorContentModel.prototype.assignPropertiesToEditors = function () {\n var props = this.getAllEditorProperties();\n for (var i = 0; i < props.length; i++) {\n this.assignPropertiesToEditor(props[i]);\n }\n };\n SurveyElementEditorContentModel.prototype.assignPropertiesToEditor = function (propEditor) {\n var _this = this;\n propEditor.onCorrectValueBeforeSet = function (propEditor, newValue) {\n if (!_this.onCorrectValueBeforeSet)\n return newValue;\n return _this.onCorrectValueBeforeSet(propEditor.property, newValue);\n };\n propEditor.onChanged = function (propEditor, oldValue) {\n if (!!_this.onPropertyChanged)\n _this.onPropertyChanged(propEditor.property, oldValue);\n };\n propEditor.getObjectPropertyByName = function (propertyName) {\n return _this.getPropertyEditorByName(propertyName);\n };\n };\n SurveyElementEditorContentModel.prototype.addPropertiesTabs = function (tabs) {\n var tabItems = this.properties.getTabs();\n for (var i = 0; i < tabItems.length; i++) {\n var tabItem = tabItems[i];\n var properties = this.properties.getProperties(tabItem);\n if (properties.length > 0) {\n tabs.push(this.createNewTab(tabItem, properties));\n }\n }\n };\n SurveyElementEditorContentModel.prototype.createNewTab = function (tabItem, properties) {\n var _this = this;\n var propertyTab = new SurveyElementEditorTabModel(this.editableObj, properties, tabItem.name, this.options, this.readOnly);\n propertyTab.title = tabItem.title;\n var firstProperty = tabItem.properties.length > 0 ? tabItem.properties[0] : null;\n if (!!firstProperty && firstProperty.createdFromTabName) {\n var firstEditor = propertyTab.getPropertyEditorByName(tabItem.name);\n if (!!firstEditor) {\n firstEditor.editor.showDisplayName = false;\n }\n }\n propertyTab.onAfterRenderCallback = function (htmlElement, property) {\n if (!_this.onAfterRenderCallback)\n return;\n _this.onAfterRenderCallback(_this.originalObj, htmlElement, property);\n };\n return propertyTab;\n };\n Object.defineProperty(SurveyElementEditorContentModel.prototype, \"useTabsInElementEditor\", {\n //this.options = creator\n get: function () {\n return (!this.useAsPropertyGrid &&\n !!this.options &&\n this.options.useTabsInElementEditor &&\n this.koTabs().length > 1);\n },\n enumerable: false,\n configurable: true\n });\n return SurveyElementEditorContentModel;\n}());\n\nvar SurveyElementEditorOldTableContentModel = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyElementEditorOldTableContentModel, _super);\n function SurveyElementEditorOldTableContentModel(obj, className, options, onSortPropertyCallback) {\n if (className === void 0) { className = null; }\n if (options === void 0) { options = null; }\n if (onSortPropertyCallback === void 0) { onSortPropertyCallback = null; }\n var _this = _super.call(this, obj, className, options, true) || this;\n _this.className = className;\n _this.options = options;\n _this.onSortPropertyCallback = onSortPropertyCallback;\n _this.koProperties = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n _this.koTab = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](_this.koTabs()[0]);\n _this.koProperties(_this.getObjectProperties());\n _this.koTab().expand();\n return _this;\n }\n SurveyElementEditorOldTableContentModel.prototype.addPropertiesTabs = function (tabs) {\n var properties = this.getProperties();\n var tabItem = new SurveyQuestionEditorTabDefinition();\n tabs.push(this.createNewTab(tabItem, properties));\n };\n SurveyElementEditorOldTableContentModel.prototype.assignPropertiesToEditor = function (propEditor) {\n _super.prototype.assignPropertiesToEditor.call(this, propEditor);\n propEditor.isInPropertyGrid = true;\n };\n SurveyElementEditorOldTableContentModel.prototype.getObjectProperties = function () {\n var res = [];\n var props = this.koTab().editorProperties;\n for (var i = 0; i < props.length; i++) {\n res.push(props[i]);\n }\n var self = this;\n var sortEvent = function (a, b) {\n var res = 0;\n if (self.onSortPropertyCallback) {\n res = self.onSortPropertyCallback(self.originalObj, a.property, b.property);\n }\n if (res)\n return res;\n if (a.displayName == b.displayName)\n return 0;\n if (a.displayName > b.displayName)\n return 1;\n return -1;\n };\n res = res.sort(sortEvent);\n return res;\n };\n SurveyElementEditorOldTableContentModel.prototype.getProperties = function () {\n var res = [];\n var tabItems = this.properties.getTabs();\n for (var i = 0; i < tabItems.length; i++) {\n var tabProperties = this.properties.getProperties(tabItems[i]);\n for (var j = 0; j < tabProperties.length; j++) {\n res.push(tabProperties[j]);\n }\n }\n return res;\n };\n return SurveyElementEditorOldTableContentModel;\n}(SurveyElementEditorContentModel));\n\nvar SurveyElementEditorTabModel = /** @class */ (function () {\n function SurveyElementEditorTabModel(obj, properties, _name, options, _readOnly) {\n if (_readOnly === void 0) { _readOnly = false; }\n this.obj = obj;\n this.properties = properties;\n this._name = _name;\n this.options = options;\n this._readOnly = _readOnly;\n this.editorPropertiesValue = [];\n this.htmlElements = null;\n this.buildEditorProperties();\n var self = this;\n this.koAfterRenderProperty = function (componentInfo, con) {\n self.afterRenderProperty(componentInfo, con);\n };\n this.koAfterRender = function (componentInfo, con) {\n self.afterRender(componentInfo, con);\n };\n }\n SurveyElementEditorTabModel.prototype.expand = function (doSetup) {\n if (doSetup === void 0) { doSetup = true; }\n if (!!this.onExpand)\n this.onExpand();\n this.doOnExpanded(doSetup);\n };\n SurveyElementEditorTabModel.prototype.collapse = function () {\n if (!!this.onCollapse)\n this.onCollapse();\n };\n SurveyElementEditorTabModel.prototype.doOnExpanded = function (doSetup) {\n var _this = this;\n if (doSetup === void 0) { doSetup = true; }\n if (doSetup) {\n this.beforeShow();\n }\n if (this.options && !this.options.selectFromStringEditor) {\n setTimeout(function () {\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"tasks\"].runEarly();\n _this.focusEditor();\n }, 1);\n }\n };\n SurveyElementEditorTabModel.prototype.afterRender = function (elements, context) {\n this.htmlElements = elements;\n this.focusEditor();\n if (this.options)\n this.options.selectFromStringEditor = false;\n };\n SurveyElementEditorTabModel.prototype.focusEditor = function () {\n if (!!this.htmlElements) {\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_7__[\"focusFirstControl\"])(this.htmlElements);\n }\n };\n Object.defineProperty(SurveyElementEditorTabModel.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyElementEditorTabModel.prototype, \"title\", {\n get: function () {\n if (this.titleValue)\n return this.titleValue;\n var str = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"pe.tabs.\" + this.name);\n return str ? str : this.name;\n },\n set: function (value) {\n this.titleValue = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyElementEditorTabModel.prototype, \"editorProperties\", {\n get: function () {\n return this.editorPropertiesValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyElementEditorTabModel.prototype, \"htmlTemplate\", {\n get: function () {\n return \"svd-object-editor-tab\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyElementEditorTabModel.prototype, \"templateObject\", {\n get: function () {\n return this;\n },\n enumerable: false,\n configurable: true\n });\n SurveyElementEditorTabModel.prototype.hasError = function () {\n var isError = false;\n for (var i = 0; i < this.editorProperties.length; i++) {\n isError = this.editorProperties[i].hasError() || isError;\n }\n return isError;\n };\n SurveyElementEditorTabModel.prototype.beforeShow = function () {\n this.performForAllProperties(function (p) { return p.beforeShow(); });\n };\n SurveyElementEditorTabModel.prototype.reset = function () {\n this.performForAllProperties(function (p) { return p.reset(); });\n };\n SurveyElementEditorTabModel.prototype.applyToObj = function (obj) {\n this.performForAllProperties(function (p) { return p.applyToObj(obj); });\n };\n SurveyElementEditorTabModel.prototype.getPropertyEditorByName = function (propertyName) {\n var props = this.editorProperties;\n for (var i = 0; i < props.length; i++) {\n if (props[i].property.name == propertyName)\n return props[i];\n }\n };\n SurveyElementEditorTabModel.prototype.getValue = function (property) {\n return property.getPropertyValue(this.obj);\n };\n SurveyElementEditorTabModel.prototype.afterRenderProperty = function (componentInfo, prop) {\n var elements = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_7__[\"getNodesFromKoComponentInfo\"])(componentInfo);\n if (!this.onAfterRenderCallback)\n return;\n var el = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_7__[\"getFirstNonTextElement\"])(elements);\n var tEl = elements[0];\n if (tEl.nodeName === \"#text\")\n tEl.data = \"\";\n tEl = elements[elements.length - 1];\n if (tEl.nodeName === \"#text\")\n tEl.data = \"\";\n this.onAfterRenderCallback(el.parentElement, prop);\n };\n SurveyElementEditorTabModel.prototype.buildEditorProperties = function () {\n for (var i = 0; i < this.properties.length; i++) {\n var prop = this.properties[i];\n this.createEditor(prop);\n }\n };\n SurveyElementEditorTabModel.prototype.createEditor = function (property) {\n var objectProperty = new _objectProperty__WEBPACK_IMPORTED_MODULE_9__[\"SurveyObjectProperty\"](property, this.options);\n objectProperty.object = this.obj;\n objectProperty.editor.readOnly(objectProperty.editor.readOnly() || this._readOnly);\n this.editorPropertiesValue.push(objectProperty);\n };\n SurveyElementEditorTabModel.prototype.performForAllProperties = function (func) {\n for (var i = 0; i < this.editorPropertiesValue.length; i++) {\n func(this.editorPropertiesValue[i]);\n }\n };\n return SurveyElementEditorTabModel;\n}());\n\nvar SurveyPropertyEditorShowWindow = /** @class */ (function () {\n function SurveyPropertyEditorShowWindow() {\n this.koVisible = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.koEditor = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n }\n SurveyPropertyEditorShowWindow.prototype.show = function (question, elWindow, onChanged, options, onClosed, onEditorAfterRenderCallback) {\n if (options === void 0) { options = null; }\n if (onClosed === void 0) { onClosed = null; }\n if (onEditorAfterRenderCallback === void 0) { onEditorAfterRenderCallback = undefined; }\n var editor = new SurveyQuestionEditor(question, null, options);\n editor.onAfterRenderCallback = onEditorAfterRenderCallback;\n editor.onChanged = onChanged;\n this.koEditor(editor);\n this.koVisible(true);\n var modal = new rmodal__WEBPACK_IMPORTED_MODULE_5__[\"default\"](elWindow, {\n bodyClass: \"\",\n closeTimeout: 100,\n dialogOpenClass: \"animated fadeIn\",\n focus: false,\n afterClose: function () {\n if (onClosed)\n onClosed();\n },\n });\n modal.open();\n if (options.closeModalOutside !== \"off\") {\n var fadeElement = document.getElementById(\"surveyquestioneditorwindow\");\n var outOfModalClickHandler = function (evt) {\n if (evt.target.className === \"modal\") {\n if (options.closeModalOutside === \"apply\") {\n editor.onOkClick();\n }\n else {\n editor.onResetClick();\n }\n }\n };\n fadeElement.addEventListener(\"mousedown\", outOfModalClickHandler);\n }\n document.addEventListener(\"keydown\", function (ev) {\n modal.keydown(ev);\n }, false);\n editor.onHideWindow = function () {\n if (options.closeModalOutside !== \"off\") {\n fadeElement.removeEventListener(\"mousedown\", outOfModalClickHandler);\n }\n modal.close();\n };\n };\n return SurveyPropertyEditorShowWindow;\n}());\n\nvar SurveyQuestionEditorPropertyDefinition = /** @class */ (function () {\n function SurveyQuestionEditorPropertyDefinition() {\n }\n Object.defineProperty(SurveyQuestionEditorPropertyDefinition.prototype, \"name\", {\n get: function () {\n return !!this.property ? this.property.name : \"\";\n },\n enumerable: false,\n configurable: true\n });\n return SurveyQuestionEditorPropertyDefinition;\n}());\n\nvar SurveyQuestionEditorTabDefinition = /** @class */ (function () {\n function SurveyQuestionEditorTabDefinition() {\n this.visible = true;\n this.index = 0;\n this.properties = [];\n }\n return SurveyQuestionEditorTabDefinition;\n}());\n\nvar SurveyQuestionProperties = /** @class */ (function () {\n function SurveyQuestionProperties(obj, options, className, showMode, parentObj, parentProperty) {\n if (options === void 0) { options = null; }\n if (className === void 0) { className = null; }\n if (showMode === void 0) { showMode = null; }\n if (parentObj === void 0) { parentObj = null; }\n if (parentProperty === void 0) { parentProperty = null; }\n this.obj = obj;\n this.options = options;\n this.parentObj = parentObj;\n this.parentProperty = parentProperty;\n this.tabs = [];\n this.showModeValue = showMode;\n this.properties = survey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].getPropertiesByObj(this.obj);\n this.fillPropertiesHash();\n this.buildTabs(className);\n }\n SurveyQuestionProperties.prototype.getProperty = function (propertyName) {\n var res = this.propertiesHash[propertyName];\n return !!res && res.visible ? res.property : null;\n };\n Object.defineProperty(SurveyQuestionProperties.prototype, \"showMode\", {\n get: function () {\n return !!this.showModeValue ? this.showModeValue : \"form\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyQuestionProperties.prototype, \"isEmpty\", {\n get: function () {\n for (var i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].visible && this.tabs[i].properties.length > 0)\n return false;\n }\n return true;\n },\n enumerable: false,\n configurable: true\n });\n SurveyQuestionProperties.prototype.fillPropertiesHash = function () {\n this.propertiesHash = {};\n for (var i = 0; i < this.properties.length; i++) {\n var prop = this.properties[i];\n this.propertiesHash[prop.name] = {\n property: prop,\n visible: _surveyHelper__WEBPACK_IMPORTED_MODULE_6__[\"SurveyHelper\"].isPropertyVisible(this.obj, prop, this.options, this.showMode, this.parentObj, this.parentProperty),\n };\n }\n };\n SurveyQuestionProperties.prototype.isJSONPropertyVisible = function (property) {\n var res = this.propertiesHash[property.name];\n return !!res && res.visible;\n };\n SurveyQuestionProperties.prototype.getTabByName = function (tabName) {\n for (var i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].name == tabName)\n return this.tabs[i];\n }\n return null;\n };\n SurveyQuestionProperties.prototype.getTabs = function () {\n return this.tabs;\n };\n SurveyQuestionProperties.prototype.getProperties = function (tab) {\n var res = [];\n for (var i = 0; i < tab.properties.length; i++) {\n res.push(tab.properties[i].property);\n }\n return res;\n };\n SurveyQuestionProperties.prototype.buildTabs = function (className) {\n if (!className) {\n className = this.obj.getType();\n }\n var definitions = this.getAllDefinitionsByClass(className);\n var addedProperties = [];\n for (var i = definitions.length - 1; i >= 0; i--) {\n var defItem = definitions[i];\n for (var j = !!defItem.tabs ? defItem.tabs.length - 1 : -1; j >= 0; j--) {\n if (addedProperties.indexOf(defItem.tabs[j].name) > -1)\n continue;\n if (this.addPropertyIntoTab(defItem.tabs[j], true)) {\n addedProperties.push(defItem.tabs[j].name);\n }\n }\n for (var j = !!defItem.properties ? defItem.properties.length - 1 : -1; j >= 0; j--) {\n var propertyName = defItem.properties[j][\"name\"] || defItem.properties[j];\n if (addedProperties.indexOf(propertyName) === -1) {\n addedProperties.push(propertyName);\n this.addPropertyIntoTab(defItem.properties[j]);\n }\n }\n }\n for (var i = this.tabs.length - 1; i >= 0; i--) {\n this.movePropertiesToNextProperties(this.tabs[i].properties);\n if (!this.tabs[i].visible) {\n this.tabs.splice(i, 1);\n }\n else {\n this.sortProperties(this.tabs[i].properties);\n }\n }\n this.tabs.sort(function (a, b) {\n return a.index < b.index ? -1 : a.index > b.index ? 1 : 0;\n });\n };\n SurveyQuestionProperties.prototype.addPropertyIntoTab = function (defProperty, isTab) {\n if (isTab === void 0) { isTab = false; }\n if (isTab) {\n var tab_1 = this.getTabOrCreate(defProperty.name);\n if (defProperty.index > 0) {\n tab_1.index = defProperty.index;\n }\n if (defProperty.visible === false) {\n tab_1.visible = false;\n }\n if (!!defProperty.title) {\n tab_1.title = defProperty.title;\n }\n }\n var isString = typeof defProperty == \"string\";\n var name = !isString ? defProperty.name : defProperty;\n var propRes = this.propertiesHash[name];\n if (!propRes)\n return false;\n if (!isString && defProperty.visible === false)\n return false;\n if (!propRes.visible &&\n (isString || (!isString && defProperty.visible !== true)))\n return false;\n var tabName = isTab ? defProperty.name : \"general\";\n if (!isTab && !isString && !!defProperty.tab) {\n tabName = defProperty.tab;\n }\n var propertyDefinition = new SurveyQuestionEditorPropertyDefinition();\n propertyDefinition.property = propRes.property;\n propertyDefinition.category =\n !isString && !!defProperty.category ? defProperty.category : \"\";\n propertyDefinition.title =\n !isString && !!defProperty.title ? defProperty.title : \"\";\n propertyDefinition.createdFromTabName = isTab;\n var tab = this.getTabOrCreate(tabName);\n tab.properties.unshift(propertyDefinition);\n return true;\n };\n SurveyQuestionProperties.prototype.movePropertiesToNextProperties = function (properties) {\n var props = [].concat(properties);\n for (var i = 0; i < props.length; i++) {\n var newTab = this.getTabByPropertyName(props[i].property.nextToProperty);\n if (!!newTab) {\n var prop = this.getPropertyByNameInTab(newTab, props[i].property.nextToProperty);\n var index = newTab.properties.indexOf(prop);\n newTab.properties.splice(index + 1, 0, props[i]);\n properties.splice(properties.indexOf(props[i]), 1);\n }\n }\n };\n SurveyQuestionProperties.prototype.getTabByPropertyName = function (propName) {\n if (!propName)\n return null;\n for (var i = 0; i < this.tabs.length; i++) {\n if (!!this.getPropertyByNameInTab(this.tabs[i], propName))\n return this.tabs[i];\n }\n return null;\n };\n SurveyQuestionProperties.prototype.getPropertyByNameInTab = function (tab, propName) {\n var props = tab.properties;\n for (var i = 0; i < props.length; i++) {\n if (props[i].name == propName)\n return props[i];\n }\n return null;\n };\n SurveyQuestionProperties.prototype.getTabOrCreate = function (tabName) {\n for (var i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].name == tabName)\n return this.tabs[i];\n }\n var res = new SurveyQuestionEditorTabDefinition();\n res.name = tabName;\n //TODO make \"general\" constant\n if (tabName == \"general\") {\n res.index = -1;\n }\n this.tabs.unshift(res);\n return res;\n };\n SurveyQuestionProperties.prototype.getAllDefinitionsByClass = function (className) {\n var result = [];\n if (className.indexOf(\"@\") > -1 &&\n _questionEditorDefinition__WEBPACK_IMPORTED_MODULE_3__[\"SurveyQuestionEditorDefinition\"].definition[className]) {\n var defaultName = className.substring(0, className.indexOf(\"@\") + 1) + \"default\";\n if (defaultName != className &&\n !!_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_3__[\"SurveyQuestionEditorDefinition\"].definition[defaultName]) {\n result.push(_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_3__[\"SurveyQuestionEditorDefinition\"].definition[defaultName]);\n }\n result.push(_questionEditorDefinition__WEBPACK_IMPORTED_MODULE_3__[\"SurveyQuestionEditorDefinition\"].definition[className]);\n return result;\n }\n var curClassName = className;\n var usedProperties = {};\n var hasNonTabProperties = false;\n while (curClassName) {\n var metaClass = (survey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findClass(curClassName));\n if (!metaClass)\n break;\n var classRes = _questionEditorDefinition__WEBPACK_IMPORTED_MODULE_3__[\"SurveyQuestionEditorDefinition\"].definition[metaClass.name];\n if (classRes) {\n if (classRes.properties) {\n var i = 0;\n while (i < classRes.properties.length) {\n var prop = classRes.properties[i];\n var propName = typeof prop == \"string\" ? prop : prop.name;\n var tabName = \"general\";\n if (typeof prop !== \"string\" && !!prop.tab) {\n tabName = prop.tab;\n }\n var jsonProp = !!this.propertiesHash[propName]\n ? this.propertiesHash[propName].property\n : null;\n var jsonPropertyCategory = this.getJsonPropertyCategory(jsonProp);\n if (!!jsonPropertyCategory && jsonPropertyCategory !== tabName) {\n classRes.properties.splice(i, 1);\n }\n else {\n usedProperties[propName] = true;\n i++;\n }\n }\n }\n if (classRes.tabs) {\n for (var i = 0; i < classRes.tabs.length; i++) {\n hasNonTabProperties =\n hasNonTabProperties || classRes.tabs[i].name == \"others\";\n usedProperties[classRes.tabs[i].name] = true;\n }\n }\n result.unshift(classRes);\n }\n curClassName = metaClass.parentName;\n }\n if (!hasNonTabProperties) {\n this.addNonTabProperties(result, usedProperties);\n }\n return result;\n };\n SurveyQuestionProperties.prototype.getJsonPropertyCategory = function (jsonProperty) {\n if (!jsonProperty)\n return null;\n if (!!jsonProperty.category)\n return jsonProperty.category;\n return null;\n };\n SurveyQuestionProperties.prototype.addNonTabProperties = function (tabs, usedProperties) {\n var classRes = { properties: [], tabs: [] };\n var tabNames = [];\n for (var i = 0; i < this.properties.length; i++) {\n var prop = this.properties[i];\n if (!this.isJSONPropertyVisible(prop) || !!usedProperties[prop.name])\n continue;\n var propCategory = this.getJsonPropertyCategory(prop);\n var tabName = !!propCategory\n ? propCategory\n : tabs.length == 0\n ? \"general\"\n : \"others\";\n if (tabNames.indexOf(tabName) < 0 && tabName != \"general\") {\n tabNames.push(tabName);\n classRes.tabs.push({\n name: tabName,\n index: tabName == \"others\" ? 1000 : tabNames.length * 10,\n });\n }\n if (prop.categoryIndex > -1 && tabNames.indexOf(tabName) > -1) {\n for (var j = 0; j < classRes.tabs.length; j++) {\n if (classRes.tabs[j].name == tabName) {\n classRes.tabs[j].index = prop.categoryIndex;\n }\n }\n }\n classRes.properties.push({\n name: this.properties[i].name,\n tab: tabName,\n });\n }\n if (classRes.properties.length > 0) {\n tabs.push(classRes);\n }\n };\n SurveyQuestionProperties.prototype.sortProperties = function (properties) {\n if (!Array.isArray(properties))\n return;\n var props = [].concat(properties);\n for (var i = 0; i < props.length; i++) {\n var index = props[i].property.visibleIndex;\n if (props[i].createdFromTabName) {\n index = 0;\n }\n if (index < 0)\n continue;\n var curIndex = properties.indexOf(props[i]);\n if (curIndex > -1) {\n properties.splice(curIndex, 1);\n }\n if (index < properties.length) {\n properties.splice(index, 0, props[i]);\n }\n else {\n properties.push(props[i]);\n }\n }\n };\n return SurveyQuestionProperties;\n}());\n\nvar SurveyQuestionEditor = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyQuestionEditor, _super);\n function SurveyQuestionEditor(obj, className, options) {\n if (className === void 0) { className = null; }\n if (options === void 0) { options = null; }\n var _this = _super.call(this, obj, className, options, false) || this;\n _this.className = className;\n _this.options = options;\n _this.koActiveTab = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]();\n _this.koTitle = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]();\n var self = _this;\n self.onApplyClick = function () {\n self.apply();\n };\n self.onOkClick = function () {\n self.doCloseWindow(false);\n };\n self.onResetClick = function () {\n self.doCloseWindow(true);\n };\n _this.onTabClick = function (tab) {\n if (!!tab.beforeShow) {\n tab.beforeShow();\n }\n self.koActiveTab(tab.name);\n };\n _this.koShowApplyButton = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](!_this.options || _this.options.showApplyButtonInEditors);\n _this.koTitle(_this.getTitle());\n return _this;\n }\n SurveyQuestionEditor.prototype.setOriginalObjValue = function (obj) {\n _super.prototype.setOriginalObjValue.call(this, obj);\n this.editableObject = new _propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_8__[\"EditableObject\"](obj);\n };\n Object.defineProperty(SurveyQuestionEditor.prototype, \"obj\", {\n get: function () {\n return this.editableObject.obj;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyQuestionEditor.prototype, \"editableObj\", {\n get: function () {\n return this.editableObject.editableObj;\n },\n enumerable: false,\n configurable: true\n });\n SurveyQuestionEditor.prototype.getTitle = function () {\n var res;\n if (this.editableObj[\"name\"]) {\n res = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"]\n .getString(\"pe.qEditorTitle\")[\"format\"](this.editableObj[\"name\"]);\n }\n else {\n res = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"pe.surveyEditorTitle\");\n }\n if (!!this.options && this.options.onGetElementEditorTitleCallback) {\n res = this.options.onGetElementEditorTitleCallback(this.editableObj, res);\n }\n return res;\n };\n SurveyQuestionEditor.prototype.doCloseWindow = function (isCancel) {\n var appliedSuccesfull = false;\n if (!isCancel) {\n appliedSuccesfull = this.apply();\n }\n if (isCancel || appliedSuccesfull) {\n if (this.onHideWindow)\n this.onHideWindow();\n }\n };\n SurveyQuestionEditor.prototype.reset = function () {\n this.editableObject.reset();\n var tabs = this.koTabs();\n for (var i = 0; i < tabs.length; i++) {\n tabs[i].reset();\n }\n };\n SurveyQuestionEditor.prototype.apply = function () {\n var res = true;\n var isFirstError = false;\n var tabs = this.koTabs();\n for (var i = 0; i < tabs.length; i++) {\n var tabRes = tabs[i].hasError();\n if (tabRes) {\n tabs[i].expand(false);\n if (!isFirstError) {\n this.koActiveTab(tabs[i].name);\n isFirstError = true;\n }\n }\n res = !tabRes && res;\n }\n if (res) {\n if (!!this.options) {\n this.options.startUndoRedoTransaction();\n }\n this.editableObject.applyAll();\n if (this.onChanged) {\n this.onChanged(this.obj);\n }\n if (!!this.options) {\n this.options.stopUndoRedoTransaction();\n }\n }\n return res;\n };\n return SurveyQuestionEditor;\n}(SurveyElementEditorContentModel));\n\nsurvey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findProperty(\"rating\", \"rateValues\").visibleIf = null;\nsurvey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findProperty(\"rating\", \"rateMin\").visibleIf = null;\nsurvey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findProperty(\"rating\", \"rateMax\").visibleIf = null;\nsurvey_knockout__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findProperty(\"rating\", \"rateStep\").visibleIf = null;\n\n\n/***/ }),\n\n/***/ \"./src/questionEditors/questionEditorDefinition.ts\":\n/*!*********************************************************!*\\\n !*** ./src/questionEditors/questionEditorDefinition.ts ***!\n \\*********************************************************/\n/*! exports provided: SurveyQuestionEditorDefinition */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyQuestionEditorDefinition\", function() { return SurveyQuestionEditorDefinition; });\nvar SurveyQuestionEditorDefinition = /** @class */ (function () {\n function SurveyQuestionEditorDefinition() {\n }\n SurveyQuestionEditorDefinition.definition = {\n question: {\n properties: [\n \"name\",\n \"title\",\n \"description\",\n \"visible\",\n \"isRequired\",\n \"readOnly\",\n \"showCommentArea\",\n \"commentText\",\n \"commentPlaceholder\",\n { name: \"visibleIf\", tab: \"logic\" },\n { name: \"enableIf\", tab: \"logic\" },\n { name: \"requiredIf\", tab: \"logic\" },\n { name: \"bindings\", tab: \"logic\" },\n { name: \"defaultValueExpression\", tab: \"logic\" },\n { name: \"resetValueIf\", tab: \"logic\" },\n { name: \"setValueIf\", tab: \"logic\" },\n { name: \"setValueExpression\", tab: \"logic\" },\n { name: \"page\", tab: \"layout\" },\n { name: \"startWithNewLine\", tab: \"layout\" },\n { name: \"hideNumber\", tab: \"layout\" },\n { name: \"state\", tab: \"layout\" },\n { name: \"titleLocation\", tab: \"layout\" },\n { name: \"descriptionLocation\", tab: \"layout\" },\n { name: \"errorLocation\", tab: \"layout\" },\n { name: \"indent\", tab: \"layout\" },\n { name: \"width\", tab: \"layout\" },\n { name: \"minWidth\", tab: \"layout\" },\n { name: \"maxWidth\", tab: \"layout\" },\n { name: \"valueName\", tab: \"data\" },\n { name: \"defaultValue\", tab: \"data\" },\n { name: \"correctAnswer\", tab: \"data\" },\n { name: \"useDisplayValuesInDynamicTexts\", tab: \"data\" },\n { name: \"clearIfInvisible\", tab: \"data\" },\n { name: \"requiredErrorText\", tab: \"validation\" },\n { name: \"validators\", tab: \"validation\" },\n ],\n tabs: [\n { name: \"logic\", index: 100 },\n { name: \"layout\", index: 200 },\n { name: \"data\", index: 300 },\n { name: \"validation\", index: 400 },\n ],\n },\n comment: {\n properties: [\n { name: \"rows\", tab: \"layout\" },\n { name: \"cols\", tab: \"layout\" },\n \"placeholder\",\n { name: \"maxLength\", tab: \"validation\" },\n { name: \"textUpdateMode\", tab: \"data\" },\n { name: \"autoGrow\", tab: \"layout\" },\n { name: \"allowResize\", tab: \"layout\" },\n { name: \"multiLine\", tab: \"layout\" },\n ],\n },\n file: {\n properties: [\n \"allowMultiple\",\n \"allowImagesPreview\",\n \"acceptedTypes\",\n { name: \"showPreview\" },\n { name: \"storeDataAsText\" },\n \"maxSize\",\n \"imageHeight\",\n \"imageWidth\",\n \"waitForUpload\",\n \"needConfirmRemoveFile\"\n ],\n },\n html: {\n properties: [\"html\"],\n },\n matrixdropdownbase: {\n properties: [\n \"cellType\",\n \"optionsCaption\",\n \"detailPanelMode\",\n \"detailPanelShowOnAdding\",\n { name: \"showHeader\", tab: \"layout\" },\n { name: \"verticalAlign\", tab: \"layout\" },\n { name: \"alternateRows\", tab: \"layout\" },\n { name: \"showColumnHeader\", tab: \"layout\" },\n { name: \"columnsVisibleIf\", tab: \"logic\" },\n { name: \"columnLayout\", tab: \"layout\" },\n { name: \"transposeData\", tab: \"layout\" },\n { name: \"horizontalScroll\", tab: \"layout\" },\n { name: \"columnColCount\", tab: \"layout\" },\n { name: \"columnMinWidth\", tab: \"layout\" },\n { name: \"cellErrorLocation\", tab: \"layout\" },\n { name: \"detailErrorLocation\", tab: \"layout\" }\n ],\n tabs: [\n { name: \"columns\", index: 10 },\n { name: \"rows\", index: 11 },\n { name: \"choices\", index: 12 },\n ],\n },\n matrixdynamic: {\n properties: [\n \"allowAddRows\",\n \"allowRemoveRows\",\n \"allowRowsDragAndDrop\",\n \"rowCount\",\n \"minRowCount\",\n \"maxRowCount\",\n \"addRowLocation\",\n \"addRowText\",\n \"removeRowText\",\n \"confirmDelete\",\n \"confirmDeleteText\",\n \"placeholder\",\n { name: \"hideColumnsIfEmpty\", tab: \"columns\" },\n { name: \"emptyRowsText\", tab: \"columns\" },\n { name: \"defaultRowValue\", tab: \"data\" },\n { name: \"defaultValueFromLastRow\", tab: \"data\" },\n { name: \"keyName\", tab: \"validation\" },\n { name: \"keyDuplicationError\", tab: \"validation\" },\n ],\n },\n matrixdropdown: {\n properties: [\n \"totalText\",\n \"placeholder\",\n { name: \"hideIfRowsEmpty\", tab: \"rows\" },\n { name: \"hideIfRowsEmpty\", tab: \"rows\" },\n { name: \"rowsVisibleIf\", tab: \"logic\" },\n { name: \"rowTitleWidth\", tab: \"layout\" },\n { name: \"keyDuplicationError\", tab: \"validation\" },\n ],\n },\n matrix: {\n properties: [\n { name: \"isAllRowRequired\", tab: \"validation\" },\n { name: \"showHeader\", tab: \"layout\" },\n { name: \"verticalAlign\", tab: \"layout\" },\n { name: \"alternateRows\", tab: \"layout\" },\n { name: \"showColumnHeader\", tab: \"layout\" },\n { name: \"rowsOrder\", tab: \"rows\" },\n { name: \"hideIfRowsEmpty\", tab: \"rows\" },\n { name: \"columnsVisibleIf\", tab: \"logic\" },\n { name: \"rowsVisibleIf\", tab: \"logic\" },\n { name: \"columnMinWidth\", tab: \"layout\" },\n { name: \"rowTitleWidth\", tab: \"layout\" }\n ],\n tabs: [\n { name: \"columns\", index: 10 },\n { name: \"rows\", index: 11 },\n { name: \"cells\", index: 500 },\n ],\n },\n multipletext: {\n properties: [\n { name: \"colCount\", tab: \"layout\" },\n { name: \"itemSize\", tab: \"layout\" },\n { name: \"itemErrorLocation\", tab: \"layout\" }\n ],\n tabs: [{ name: \"items\", index: 10 }],\n },\n rating: {\n properties: [\n { name: \"displayMode\", tab: \"layout\" },\n { name: \"rateCount\", tab: \"rateValues\" },\n { name: \"rateMin\", tab: \"rateValues\" },\n { name: \"rateMax\", tab: \"rateValues\" },\n { name: \"rateStep\", tab: \"rateValues\" },\n { name: \"minRateDescription\", tab: \"rateValues\" },\n { name: \"maxRateDescription\", tab: \"rateValues\" },\n { name: \"rateDescriptionLocation\", tab: \"rateValues\" },\n { name: \"displayRateDescriptionsAsExtremeItems\", tab: \"rateValues\" },\n ],\n tabs: [{ name: \"rateValues\", index: 10 }],\n },\n selectbase: {\n properties: [\n { name: \"choicesFromQuestion\", tab: \"choices\" },\n { name: \"choicesFromQuestionMode\", tab: \"choices\" },\n { name: \"choiceValuesFromQuestion\", tab: \"choices\" },\n { name: \"choiceTextsFromQuestion\", tab: \"choices\" },\n { name: \"choicesOrder\", tab: \"choices\" },\n { name: \"colCount\", tab: \"layout\" },\n { name: \"showOtherItem\", tab: \"choices\" },\n { name: \"otherText\", tab: \"choices\" },\n { name: \"otherPlaceholder\", tab: \"choices\" },\n { name: \"showNoneItem\", tab: \"choices\" },\n { name: \"noneText\", tab: \"choices\" },\n { name: \"showRefuseItem\", tab: \"choices\" },\n { name: \"refuseText\", tab: \"choices\" },\n { name: \"showDontKnowItem\", tab: \"choices\" },\n { name: \"dontKnowText\", tab: \"choices\" },\n { name: \"hideIfChoicesEmpty\", tab: \"logic\" },\n { name: \"choicesVisibleIf\", tab: \"logic\" },\n { name: \"choicesEnableIf\", tab: \"logic\" },\n { name: \"otherErrorText\", tab: \"validation\" },\n { name: \"separateSpecialChoices\", tab: \"choices\" },\n ],\n tabs: [\n { name: \"choices\", index: 10 },\n { name: \"choicesByUrl\", index: 11 },\n ],\n },\n checkbox: {\n properties: [\n { name: \"showSelectAllItem\", tab: \"choices\" },\n { name: \"selectAllText\", tab: \"choices\" },\n { name: \"minSelectedChoices\", tab: \"choices\" },\n { name: \"maxSelectedChoices\", tab: \"choices\" },\n ],\n },\n ranking: {\n properties: [\n { name: \"selectToRankEnabled\" },\n { name: \"selectToRankAreasLayout\", tab: \"layout\" },\n { name: \"minSelectedChoices\", tab: \"choices\" },\n { name: \"maxSelectedChoices\", tab: \"choices\" }\n ]\n },\n radiogroup: {\n properties: [\n { name: \"showClearButton\", tab: \"choices\" },\n { name: \"separateSpecialChoices\", tab: \"choices\" },\n ]\n },\n dropdown: {\n properties: [\n \"placeholder\",\n \"autocomplete\",\n { name: \"choicesMin\", tab: \"choices\" },\n { name: \"choicesMax\", tab: \"choices\" },\n { name: \"choicesStep\", tab: \"choices\" },\n { name: \"allowClear\", tab: \"choices\" },\n { name: \"textWrapEnabled\", tab: \"choices\" },\n { name: \"searchMode\", tab: \"choices\" }\n ],\n },\n imagepicker: {\n properties: [\n \"multiSelect\",\n \"showLabel\",\n \"contentMode\",\n \"imageFit\",\n \"imageHeight\",\n \"imageWidth\",\n \"minImageWidth\",\n \"maxImageWidth\",\n \"minImageHeight\",\n \"maxImageHeight\",\n ],\n },\n image: {\n properties: [\n \"imageLink\",\n \"contentMode\",\n \"imageFit\",\n \"imageHeight\",\n \"imageWidth\",\n \"text\"\n ],\n },\n \"itemvalue[]@choices\": {\n properties: [{ name: \"visibleIf\" }, { name: \"enableIf\" }],\n tabs: [{ name: \"general\" }],\n },\n \"itemvalue[]@rows\": {\n properties: [{ name: \"visibleIf\" }],\n tabs: [{ name: \"general\" }],\n },\n \"itemvalue[]@columns\": {\n properties: [{ name: \"visibleIf\" }],\n tabs: [{ name: \"general\" }],\n },\n text: {\n properties: [\n \"inputType\",\n \"min\",\n \"max\",\n \"step\",\n \"placeholder\",\n \"autocomplete\",\n \"dataList\",\n { name: \"minValueExpression\", tab: \"logic\" },\n { name: \"maxValueExpression\", tab: \"logic\" },\n { name: \"size\", tab: \"layout\" },\n { name: \"maxLength\", tab: \"validation\" },\n { name: \"minErrorText\", tab: \"validation\" },\n { name: \"maxErrorText\", tab: \"validation\" },\n { name: \"textUpdateMode\", tab: \"data\" },\n { name: \"maskType\", tab: \"mask\" },\n { name: \"maskSettings\", tab: \"mask\" },\n ],\n tabs: [\n { name: \"mask\", index: 250 }\n ]\n },\n boolean: {\n properties: [\n \"label\",\n \"labelTrue\",\n \"labelFalse\",\n \"showTitle\",\n { name: \"valueTrue\", tab: \"data\" },\n { name: \"valueFalse\", tab: \"data\" },\n ],\n },\n expression: {\n properties: [\n \"expression\",\n \"currency\",\n \"displayStyle\",\n \"format\",\n \"maximumFractionDigits\",\n \"minimumFractionDigits\",\n \"useGrouping\",\n ],\n },\n matrixdropdowncolumn: {\n properties: [\"isRequired\", \"cellType\", \"name\", \"title\"],\n },\n \"matrixdropdowncolumn@default\": {\n properties: [\n \"name\",\n \"title\",\n \"visible\",\n \"isRequired\",\n \"isUnique\",\n \"readOnly\",\n \"showInMultipleColumns\",\n \"width\",\n \"minWidth\",\n { name: \"visibleIf\", tab: \"logic\" },\n { name: \"enableIf\", tab: \"logic\" },\n { name: \"requiredIf\", tab: \"logic\" },\n { name: \"defaultValueExpression\", tab: \"logic\" },\n { name: \"resetValueIf\", tab: \"logic\" },\n { name: \"setValueIf\", tab: \"logic\" },\n { name: \"setValueExpression\", tab: \"logic\" },\n { name: \"totalType\", tab: \"totals\" },\n { name: \"totalDisplayStyle\", tab: \"totals\" },\n { name: \"totalCurrency\", tab: \"totals\" },\n { name: \"totalFormat\", tab: \"totals\" },\n { name: \"totalExpression\", tab: \"totals\" },\n ],\n tabs: [\n { name: \"general\", index: 5 },\n { name: \"logic\", index: 20 },\n { name: \"totals\", index: 40 },\n ],\n },\n \"matrixdropdowncolumn@checkbox\": {\n properties: [\n { name: \"showOtherItem\", tab: \"choices\" },\n { name: \"otherText\", tab: \"choices\" },\n { name: \"choicesOrder\", tab: \"choices\" },\n { name: \"colCount\", tab: \"choices\" },\n { name: \"showSelectAllItem\", tab: \"choices\" },\n { name: \"showNoneItem\", tab: \"choices\" },\n { name: \"noneText\", tab: \"choices\" },\n { name: \"minSelectedChoices\", tab: \"choices\" },\n { name: \"maxSelectedChoices\", tab: \"choices\" },\n { name: \"selectAllText\", tab: \"choices\" }\n ],\n tabs: [\n { name: \"choices\", index: 10 },\n { name: \"choicesByUrl\", index: 11 },\n ],\n },\n \"matrixdropdowncolumn@radiogroup\": {\n properties: [\n { name: \"showOtherItem\", tab: \"choices\" },\n { name: \"otherText\", tab: \"choices\" },\n { name: \"choicesOrder\", tab: \"choices\" },\n { name: \"colCount\", tab: \"choices\" },\n { name: \"showSelectAllItem\", tab: \"choices\" },\n { name: \"showNoneItem\", tab: \"choices\" },\n { name: \"noneText\", tab: \"choices\" },\n ],\n tabs: [\n { name: \"choices\", index: 10 },\n { name: \"choicesByUrl\", index: 11 },\n ],\n },\n \"matrixdropdowncolumn@dropdown\": {\n properties: [\n { name: \"showOtherItem\", tab: \"choices\" },\n { name: \"otherText\", tab: \"choices\" },\n { name: \"choicesOrder\", tab: \"choices\" },\n { name: \"placeholder\", tab: \"choices\" },\n { name: \"showNoneItem\", tab: \"choices\" },\n { name: \"noneText\", tab: \"choices\" },\n ],\n tabs: [\n { name: \"choices\", index: 10 },\n { name: \"choicesByUrl\", index: 11 },\n ],\n },\n \"matrixdropdowncolumn@text\": {\n properties: [\n \"inputType\",\n \"min\",\n \"max\",\n \"step\",\n \"placeholder\",\n \"maxLength\",\n ],\n tabs: [{ name: \"validators\", index: 10 }],\n },\n \"matrixdropdowncolumn@comment\": {\n properties: [\"rows\", \"placeholder\", \"maxLength\"],\n tabs: [{ name: \"validators\", index: 10 }],\n },\n \"matrixdropdowncolumn@boolean\": {\n properties: [\n \"defaultValue\",\n \"labelTrue\",\n \"labelFalse\",\n \"valueTrue\",\n \"valueFalse\",\n ],\n },\n \"matrixdropdowncolumn@expression\": {\n properties: [\"displayStyle\", \"currency\"],\n tabs: [{ name: \"expression\", index: 10 }],\n },\n \"matrixdropdowncolumn@rating\": {\n properties: [\n \"rateValues\",\n { name: \"rateMin\", tab: \"rateValues\" },\n { name: \"rateMax\", tab: \"rateValues\" },\n { name: \"rateStep\", tab: \"rateValues\" },\n { name: \"minRateDescription\", tab: \"rateValues\" },\n { name: \"maxRateDescription\", tab: \"rateValues\" },\n { name: \"displayRateDescriptionsAsExtremeItems\", tab: \"rateValues\" },\n ],\n tabs: [{ name: \"rateValues\", index: 5 }],\n },\n multipletextitem: {\n properties: [\n \"inputType\",\n \"name\",\n \"title\",\n \"isRequired\",\n \"maxLength\",\n \"size\",\n \"placeholder\",\n \"requiredErrorText\",\n \"validators\",\n { name: \"defaultValueExpression\", tab: \"logic\" },\n { name: \"minValueExpression\", tab: \"logic\" },\n { name: \"maxValueExpression\", tab: \"logic\" },\n ],\n },\n \"multipletext@items\": {\n properties: [\"isRequired\", \"name\", \"title\"],\n },\n calculatedvalue: {\n properties: [\"name\", \"expression\", \"includeIntoResult\"],\n },\n \"calculatedvalue@items\": {\n properties: [\"name\", \"expression\"],\n },\n paneldynamic: {\n properties: [\n \"renderMode\",\n \"templateTabTitle\",\n \"tabAlign\",\n \"panelCount\",\n \"minPanelCount\",\n \"maxPanelCount\",\n \"panelsState\",\n { name: \"allowAddPanel\" },\n { name: \"allowRemovePanel\" },\n \"panelAddText\",\n \"panelRemoveText\",\n \"templateTitle\",\n \"templateDescription\",\n \"noEntriesText\",\n \"confirmDelete\",\n \"confirmDeleteText\",\n \"panelPrevText\",\n \"panelNextText\",\n \"showQuestionNumbers\",\n \"showRangeInProgress\",\n { name: \"defaultPanelValue\", tab: \"data\" },\n { name: \"defaultValueFromLastPanel\", tab: \"data\" },\n { name: \"templateTitleLocation\", tab: \"layout\" },\n { name: \"templateErrorLocation\", tab: \"layout\" },\n { name: \"panelRemoveButtonLocation\", tab: \"layout\" },\n { name: \"keyName\", tab: \"validation\" },\n { name: \"keyDuplicationError\", tab: \"validation\" },\n ],\n },\n panelbase: {\n properties: [\n \"name\",\n \"title\",\n \"description\",\n \"visible\",\n \"readOnly\",\n { name: \"visibleIf\", tab: \"logic\" },\n { name: \"enableIf\", tab: \"logic\" },\n { name: \"requiredIf\", tab: \"logic\" },\n { name: \"questionTitleLocation\", tab: \"layout\" },\n { name: \"questionErrorLocation\", tab: \"layout\" }\n ],\n tabs: [\n { name: \"logic\", index: 100 },\n { name: \"layout\", index: 200 },\n { name: \"data\", index: 300 },\n { name: \"validation\", index: 400 },\n ],\n },\n panel: {\n properties: [\n \"isRequired\",\n { name: \"requiredErrorText\", tab: \"validation\" },\n { name: \"page\", tab: \"layout\" },\n { name: \"startWithNewLine\", tab: \"layout\" },\n { name: \"state\", tab: \"layout\" },\n { name: \"questionsOrder\", tab: \"layout\" },\n { name: \"indent\", tab: \"layout\" },\n { name: \"innerIndent\", tab: \"layout\" },\n { name: \"width\", tab: \"layout\" },\n { name: \"showNumber\", tab: \"numbering\" },\n { name: \"showQuestionNumbers\", tab: \"numbering\" },\n { name: \"questionStartIndex\", tab: \"numbering\" },\n { name: \"minWidth\", tab: \"layout\" },\n { name: \"maxWidth\", tab: \"layout\" },\n ],\n tabs: [{ name: \"numbering\", index: 350 }],\n },\n page: {\n properties: [\n \"navigationTitle\",\n \"navigationDescription\",\n \"maxTimeToFinish\",\n { name: \"questionsOrder\", tab: \"layout\" },\n { name: \"navigationButtonsVisibility\", tab: \"layout\" },\n ],\n },\n survey: {\n properties: [\n \"title\",\n \"description\",\n \"showTitle\",\n \"locale\",\n \"mode\",\n \"cookieName\",\n \"widthMode\",\n \"width\",\n \"fitToContainer\",\n { name: \"showPreviewBeforeComplete\", tab: \"navigation\" },\n { name: \"pagePrevText\", tab: \"navigation\" },\n { name: \"pageNextText\", tab: \"navigation\" },\n { name: \"completeText\", tab: \"navigation\" },\n { name: \"previewText\", tab: \"navigation\" },\n { name: \"editText\", tab: \"navigation\" },\n { name: \"startSurveyText\", tab: \"navigation\" },\n {\n name: \"showNavigationButtons\",\n tab: \"navigation\",\n },\n { name: \"showPrevButton\", tab: \"navigation\" },\n { name: \"firstPageIsStarted\", tab: \"navigation\" },\n { name: \"goNextPageAutomatic\", tab: \"navigation\" },\n { name: \"allowCompleteSurveyAutomatic\", tab: \"navigation\" },\n { name: \"showProgressBar\", tab: \"navigation\" },\n { name: \"progressBarType\", tab: \"navigation\" },\n { name: \"questionsOnPageMode\", tab: \"navigation\" },\n { name: \"showTOC\", tab: \"navigation\" },\n { name: \"tocLocation\", tab: \"navigation\" },\n { name: \"questionTitleLocation\", tab: \"question\" },\n { name: \"questionDescriptionLocation\", tab: \"question\" },\n { name: \"showQuestionNumbers\", tab: \"question\" },\n { name: \"questionTitlePattern\", tab: \"question\" },\n { name: \"requiredText\", tab: \"question\" },\n { name: \"questionStartIndex\", tab: \"question\" },\n { name: \"questionErrorLocation\", tab: \"question\" },\n {\n name: \"focusFirstQuestionAutomatic\",\n tab: \"question\",\n },\n { name: \"questionsOrder\", tab: \"question\" },\n { name: \"maxTextLength\", tab: \"question\" },\n { name: \"maxOthersLength\", tab: \"question\" },\n { name: \"autoGrowComment\", tab: \"question\" },\n { name: \"allowResizeComment\", tab: \"question\" },\n { name: \"showPageTitles\", tab: \"pages\" },\n { name: \"showPageNumbers\", tab: \"pages\" },\n { name: \"calculatedValues\", tab: \"logic\" },\n { name: \"triggers\", tab: \"logic\" },\n { name: \"clearInvisibleValues\", tab: \"data\" },\n { name: \"textUpdateMode\", tab: \"data\" },\n { name: \"sendResultOnPageNext\", tab: \"data\" },\n { name: \"storeOthersAsComment\", tab: \"data\" },\n { name: \"focusOnFirstError\", tab: \"validation\" },\n { name: \"checkErrorsMode\", tab: \"validation\" },\n { name: \"navigateToUrl\", tab: \"showOnCompleted\" },\n { name: \"showCompletedPage\", tab: \"showOnCompleted\" },\n { name: \"completedHtml\", tab: \"showOnCompleted\" },\n { name: \"navigateToUrlOnCondition\", tab: \"showOnCompleted\" },\n { name: \"completedHtmlOnCondition\", tab: \"showOnCompleted\" },\n { name: \"loadingHtml\", tab: \"showOnCompleted\" },\n { name: \"completedBeforeHtml\", tab: \"showOnCompleted\" },\n { name: \"maxTimeToFinish\", tab: \"timer\" },\n { name: \"maxTimeToFinishPage\", tab: \"timer\" },\n { name: \"showTimerPanel\", tab: \"timer\" },\n { name: \"showTimerPanelMode\", tab: \"timer\" },\n { name: \"logo\", tab: \"logo\" },\n { name: \"logoPosition\", tab: \"logo\" },\n { name: \"logoWidth\", tab: \"logo\" },\n { name: \"logoHeight\", tab: \"logo\" },\n { name: \"logoFit\", tab: \"logo\" },\n ],\n tabs: [\n { name: \"navigation\", index: 100 },\n { name: \"question\", index: 200 },\n { name: \"pages\", index: 250 },\n { name: \"logic\", index: 300 },\n { name: \"data\", index: 400 },\n { name: \"validation\", index: 500 },\n { name: \"showOnCompleted\", index: 600 },\n { name: \"timer\", index: 700 },\n ],\n },\n \"page@survey\": {\n properties: [\"name\", \"title\"],\n },\n };\n return SurveyQuestionEditorDefinition;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/questionconverter.ts\":\n/*!**********************************!*\\\n !*** ./src/questionconverter.ts ***!\n \\**********************************/\n/*! exports provided: QuestionConverter */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionConverter\", function() { return QuestionConverter; });\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_0__);\n\nvar QuestionConverter = /** @class */ (function () {\n function QuestionConverter() {\n }\n QuestionConverter.addConvertInfo = function (className, convertToClassName) {\n if (!QuestionConverter.convertInfo[className]) {\n QuestionConverter.convertInfo[className] = [];\n }\n QuestionConverter.convertInfo[className].push(convertToClassName);\n };\n QuestionConverter.getConvertToClasses = function (className, availableTypes) {\n if (availableTypes === void 0) { availableTypes = null; }\n var res = QuestionConverter.convertInfo[className];\n if (!res)\n return [];\n if (!!availableTypes &&\n Array.isArray(availableTypes) &&\n availableTypes.length > 0) {\n for (var i = res.length - 1; i >= 0; i--) {\n if (availableTypes.indexOf(res[i]) < 0) {\n res.splice(i, 1);\n }\n }\n }\n return !!res ? res : [];\n };\n QuestionConverter.convertObject = function (obj, convertToClass) {\n if (!obj || !obj.parent || convertToClass == obj.getType())\n return null;\n var newQuestion = survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].createClass(convertToClass);\n newQuestion.name = obj.name;\n newQuestion.fromJSON(obj.toJSON());\n var panel = obj.parent;\n var index = panel.elements.indexOf(obj);\n panel.removeElement(obj);\n panel.addElement(newQuestion, index);\n newQuestion.onSurveyLoad();\n return newQuestion;\n };\n QuestionConverter.convertInfo = {};\n return QuestionConverter;\n}());\n\nfunction createDefaultQuestionConverterItems() {\n var classes = survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].getChildrenClasses(\"selectbase\", true);\n for (var i = 0; i < classes.length; i++) {\n for (var j = 0; j < classes.length; j++) {\n if (i == j)\n continue;\n QuestionConverter.addConvertInfo(classes[i].name, classes[j].name);\n }\n }\n QuestionConverter.addConvertInfo(\"text\", \"comment\");\n QuestionConverter.addConvertInfo(\"comment\", \"text\");\n}\ncreateDefaultQuestionConverterItems();\n\n\n/***/ }),\n\n/***/ \"./src/settings.ts\":\n/*!*************************!*\\\n !*** ./src/settings.ts ***!\n \\*************************/\n/*! exports provided: settings, EmptySurveyCreatorOptions */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"settings\", function() { return settings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmptySurveyCreatorOptions\", function() { return EmptySurveyCreatorOptions; });\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_0__);\n\nvar settings = {\n traslation: {\n sortByName: true,\n //Set it to \\xef\\xbb\\xbf; to tell system that it is UTF8 file. You can use other prefix as well\n exportPrefix: \"\",\n },\n operators: {\n empty: [],\n notempty: [],\n equal: [\"!file\"],\n notequal: [\"!file\"],\n contains: [\"checkbox\", \"text\", \"comment\"],\n notcontains: [\"checkbox\", \"text\", \"comment\"],\n anyof: [\"selectbase\"],\n allof: [\"checkbox\"],\n greater: [\"!checkbox\", \"!imagepicker\", \"!boolean\", \"!file\"],\n less: [\"!checkbox\", \"!imagepicker\", \"!boolean\", \"!file\"],\n greaterorequal: [\"!checkbox\", \"!imagepicker\", \"!boolean\", \"!file\"],\n lessorequal: [\"!checkbox\", \"!imagepicker\", \"!boolean\", \"!file\"],\n },\n jsonEditor: {\n indentation: 1\n }\n};\nvar EmptySurveyCreatorOptions = /** @class */ (function () {\n function EmptySurveyCreatorOptions() {\n }\n EmptySurveyCreatorOptions.prototype.getObjectDisplayName = function (obj, reason, displayName) {\n return displayName;\n };\n EmptySurveyCreatorOptions.prototype.onCanShowPropertyCallback = function (object, property, showMode, parentObj, parentProperty) {\n return true;\n };\n EmptySurveyCreatorOptions.prototype.onIsPropertyReadOnlyCallback = function (obj, property, readOnly, parentObj, parentProperty) {\n return true;\n };\n EmptySurveyCreatorOptions.prototype.onCanDeleteItemCallback = function (object, item, allowDelete) {\n return allowDelete;\n };\n EmptySurveyCreatorOptions.prototype.onCollectionItemDeletingCallback = function (obj, property, collection, item) {\n return true;\n };\n EmptySurveyCreatorOptions.prototype.onItemValueAddedCallback = function (obj, propertyName, itemValue, itemValues) { };\n EmptySurveyCreatorOptions.prototype.onMatrixDropdownColumnAddedCallback = function (matrix, column, columns) { };\n EmptySurveyCreatorOptions.prototype.onSetPropertyEditorOptionsCallback = function (propertyName, obj, editorOptions) { };\n EmptySurveyCreatorOptions.prototype.onGetErrorTextOnValidationCallback = function (propertyName, obj, value) {\n return null;\n };\n EmptySurveyCreatorOptions.prototype.onValueChangingCallback = function (options) { };\n EmptySurveyCreatorOptions.prototype.onPropertyValueChanged = function (property, obj, newValue) { };\n EmptySurveyCreatorOptions.prototype.onGetElementEditorTitleCallback = function (obj, title) {\n return title;\n };\n EmptySurveyCreatorOptions.prototype.startUndoRedoTransaction = function () { };\n EmptySurveyCreatorOptions.prototype.stopUndoRedoTransaction = function () { };\n EmptySurveyCreatorOptions.prototype.createSurvey = function (json, reason, surveyType) {\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"SurveyModel\"](json);\n };\n EmptySurveyCreatorOptions.prototype.onConditionQuestionsGetListCallback = function (propertyName, obj, editor, list) { };\n return EmptySurveyCreatorOptions;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/stylesmanager.ts\":\n/*!******************************!*\\\n !*** ./src/stylesmanager.ts ***!\n \\******************************/\n/*! exports provided: StylesManager */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StylesManager\", function() { return StylesManager; });\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar StylesManager = /** @class */ (function () {\n function StylesManager() {\n }\n StylesManager.applyTheme = function (themeName) {\n if (themeName === void 0) { themeName = \"default\"; }\n StylesManager.currentTheme(themeName);\n survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"StylesManager\"].applyTheme(themeName);\n if (!document || !document.body || !document.body.style) {\n return;\n }\n var theme = StylesManager.ThemeColors[themeName] ||\n StylesManager.ThemeColors[\"default\"];\n Object.keys(theme).forEach(function (colorVariableName) {\n var cssVariableName = StylesManager.ThemeVariablesMap[colorVariableName];\n if (!!cssVariableName && theme[colorVariableName]) {\n document.body.style.setProperty(cssVariableName, theme[colorVariableName]);\n }\n });\n // IE 11 polyfill\n // if(!window.MSInputMethodContext && !document[\"documentMode\"]) {\n // document.write('\");\n this.setTextToEditor(this.surveyEmbedingHead, this.koHeadText, headText);\n };\n SurveyEmbedingWindow.prototype.setJavaTest = function () {\n this.setTextToEditor(this.surveyEmbedingJava, this.koJavaText, this.getJavaText());\n };\n SurveyEmbedingWindow.prototype.createEditor = function (elementName) {\n var editor = ace.edit(elementName);\n editor.setTheme(\"ace/theme/monokai\");\n editor.session.setMode(\"ace/mode/json\");\n editor.setShowPrintMargin(false);\n editor.renderer.setShowGutter(false);\n editor.setReadOnly(true);\n return editor;\n };\n SurveyEmbedingWindow.prototype.getJavaText = function () {\n var isOnPage = this.koShowAsWindow() == \"page\";\n var str = !this.koLoadSurvey() ? this.getSaveFunc() + \"\\n\\n\" : \"\";\n var strCode = isOnPage\n ? this.platformJSonPage[this.koLibraryVersion()]\n : this.platformJSonWindow[this.koLibraryVersion()];\n var replacedCompleteCode = !this.koLoadSurvey()\n ? this.platformCompleteCode[this.koLibraryVersion()]\n : \"\";\n strCode = strCode.replace(\"#complete#\", replacedCompleteCode);\n str += strCode;\n var jsonText = \"var surveyJSON = \" + this.getJsonText() + \"\\n\\n\";\n return this.getSetCss() + \"\\n\" + jsonText + str;\n };\n SurveyEmbedingWindow.prototype.getSetCss = function () {\n return 'Survey.StylesManager.applyTheme(\"' + this.koThemeName() + '\");\\n';\n };\n SurveyEmbedingWindow.prototype.getSaveFunc = function () {\n return (\"function sendDataToServer(survey) {\\n\" + this.getSaveFuncCode() + \"\\n}\");\n };\n SurveyEmbedingWindow.prototype.getSaveFuncCode = function () {\n if (this.koHasIds())\n return \" survey.sendResult('\" + this.surveyPostId + \"');\";\n return ' //send Ajax request to your web server.\\n alert(\"The results are:\" + JSON.stringify(survey.data));';\n };\n SurveyEmbedingWindow.prototype.getJsonText = function () {\n if (this.koLoadSurvey()) {\n return (\"{ surveyId: '\" +\n this.surveyId +\n \"', surveyPostId: '\" +\n this.surveyPostId +\n \"'}\");\n }\n if (this.generateValidJSON)\n return JSON.stringify(this.json);\n return new _json5__WEBPACK_IMPORTED_MODULE_2__[\"SurveyJSON5\"]().stringify(this.json);\n };\n SurveyEmbedingWindow.prototype.setTextToEditor = function (editor, koText, text) {\n if (editor)\n editor.setValue(text);\n if (koText)\n koText(text);\n };\n SurveyEmbedingWindow.prototype.dispose = function () { };\n return SurveyEmbedingWindow;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"survey-embed\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var creator = params.creator;\n var model = new SurveyEmbedingWindow();\n var subscrViewType = creator.koViewType.subscribe(function (viewType) {\n if (viewType === \"embed\") {\n var json = creator.getSurveyJSON();\n model.json = json;\n model.surveyId = creator.surveyId;\n model.surveyPostId = creator.surveyPostId;\n model.generateValidJSON = creator.getOptions().generateValidJSON;\n model.show();\n }\n });\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"utils\"].domNodeDisposal.addDisposeCallback(componentInfo.element, function () {\n subscrViewType.dispose();\n model.dispose();\n });\n return model;\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/tabs/json-editor.html\":\n/*!***********************************!*\\\n !*** ./src/tabs/json-editor.html ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n Error: \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\";\n\n/***/ }),\n\n/***/ \"./src/tabs/json-editor.scss\":\n/*!***********************************!*\\\n !*** ./src/tabs/json-editor.scss ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/tabs/json-editor.ts\":\n/*!*********************************!*\\\n !*** ./src/tabs/json-editor.ts ***!\n \\*********************************/\n/*! exports provided: SurveyJSONEditor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyJSONEditor\", function() { return SurveyJSONEditor; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _textWorker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../textWorker */ \"./src/textWorker.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _json_editor_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./json-editor.scss */ \"./src/tabs/json-editor.scss\");\n/* harmony import */ var _json_editor_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_json_editor_scss__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar templateHtml = __webpack_require__(/*! ./json-editor.html */ \"./src/tabs/json-editor.html\");\nvar SurveyJSONEditor = /** @class */ (function () {\n function SurveyJSONEditor() {\n this.isProcessingImmediately = false;\n this.aceCanUndo = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.aceCanRedo = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.isJSONChanged = false;\n this.isInitialJSON = false;\n /**\n * The list of toolbar items. You may add/remove/replace them.\n * @see IAction\n */\n this.toolbarItems = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n this.timeoutId = -1;\n this._readOnly = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.koText = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"\");\n this.koErrors = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n var self = this;\n this.koText.subscribe(function (newValue) {\n self.onJsonEditorChanged();\n });\n }\n SurveyJSONEditor.prototype.addToolbarItems = function () {\n var _this = this;\n if (!this.hasAceEditor)\n return;\n if (!SurveyJSONEditor.showToolbar)\n return;\n var focusEditor = function () { return setTimeout(function () { return _this.aceEditor.focus(); }, 1); };\n var items = [];\n items.push({\n id: \"svd-json-editor-undo\",\n iconName: \"icon-actionundo\",\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.undo\"),\n enabled: this.aceCanUndo,\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.undoTooltip\"),\n action: function () {\n _this.aceEditor.execCommand(\"undo\");\n _this.updateUndoRedoState();\n focusEditor();\n },\n });\n items.push({\n id: \"svd-json-editor-redo\",\n iconName: \"icon-actionredo\",\n enabled: this.aceCanRedo,\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.redo\"),\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.redoTooltip\"),\n action: function () {\n _this.aceEditor.execCommand(\"redo\");\n _this.updateUndoRedoState();\n focusEditor();\n },\n });\n if (window[\"navigator\"]) {\n items.push({\n id: \"svd-copy\",\n iconName: \"icon-actioncopy\",\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.copy\"),\n showTitle: false,\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.copyTooltip\"),\n action: function () {\n var text = _this.aceEditor.getCopyText();\n _this.aceEditor.execCommand(\"copy\");\n navigator.clipboard.writeText(text);\n focusEditor();\n },\n });\n items.push({\n id: \"svd-cut\",\n iconName: \"icon-actioncut\",\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.cut\"),\n showTitle: false,\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.cutTooltip\"),\n action: function () {\n var text = _this.aceEditor.getCopyText();\n _this.aceEditor.execCommand(\"cut\");\n navigator.clipboard.writeText(text);\n _this.updateUndoRedoState();\n focusEditor();\n },\n });\n items.push({\n id: \"svd-paste\",\n iconName: \"icon-actionpaste\",\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.paste\"),\n showTitle: false,\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"getLocString\"])(\"ed.pasteTooltip\"),\n action: function () {\n navigator.clipboard.readText().then(function (text) {\n _this.aceEditor.execCommand(\"paste\", text);\n });\n _this.updateUndoRedoState();\n },\n });\n }\n this.toolbarItems(items);\n };\n SurveyJSONEditor.prototype.init = function (editorElement) {\n if (!this.hasAceEditor)\n return;\n this.aceEditor = ace.edit(editorElement);\n this.aceEditor.setReadOnly(this.readOnly);\n var self = this;\n if (SurveyJSONEditor.aceBasePath) {\n try {\n ace[\"config\"].set(\"basePath\", SurveyJSONEditor.aceBasePath);\n // TODO add event to change ace theme and mode\n // this.aceEditor.setTheme(\"ace/theme/monokai\");\n // this.aceEditor.session.setMode(\"ace/mode/json\");\n this.aceEditor.session.setMode(\"ace/mode/json\");\n }\n catch (_a) { }\n }\n self.aceEditor.setShowPrintMargin(false);\n self.aceEditor.getSession().on(\"change\", function () {\n self.onJsonEditorChanged();\n });\n self.aceEditor.on(\"input\", function () {\n if (self.isInitialJSON) {\n self.isInitialJSON = false;\n self.aceEditor.getSession().getUndoManager().markClean();\n self.updateUndoRedoState();\n return;\n }\n if (self.aceEditor.getSession().getUndoManager().isClean()) {\n self.isJSONChanged = false;\n return;\n }\n self.isJSONChanged = true;\n });\n this.aceEditor.getSession().setUseWorker(true);\n _textWorker__WEBPACK_IMPORTED_MODULE_1__[\"SurveyTextWorker\"].newLineChar =\n this.aceEditor.session.doc.getNewLineCharacter();\n this.addToolbarItems();\n };\n Object.defineProperty(SurveyJSONEditor.prototype, \"hasAceEditor\", {\n get: function () {\n return typeof ace !== \"undefined\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyJSONEditor.prototype, \"text\", {\n get: function () {\n if (!this.hasAceEditor)\n return this.koText();\n return this.aceEditor.getValue();\n },\n set: function (value) {\n this.isProcessingImmediately = true;\n this.koText(value);\n if (this.aceEditor) {\n this.aceEditor.setValue(value);\n this.aceEditor.renderer.updateFull(true);\n this.aceEditor.getSession().getUndoManager().reset();\n }\n this.processJson(value);\n this.isProcessingImmediately = false;\n },\n enumerable: false,\n configurable: true\n });\n SurveyJSONEditor.prototype.show = function (value) {\n this.text = value;\n if (this.aceEditor) {\n this.aceEditor.focus();\n }\n this.isJSONChanged = false;\n };\n Object.defineProperty(SurveyJSONEditor.prototype, \"isJsonCorrect\", {\n get: function () {\n this.textWorker = new _textWorker__WEBPACK_IMPORTED_MODULE_1__[\"SurveyTextWorker\"](this.text);\n return this.textWorker.isJsonCorrect;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyJSONEditor.prototype, \"survey\", {\n get: function () {\n return this.textWorker.survey;\n },\n enumerable: false,\n configurable: true\n });\n SurveyJSONEditor.prototype.updateUndoRedoState = function () {\n if (this.hasAceEditor) {\n var undoManager = this.aceEditor.getSession().getUndoManager();\n this.aceCanUndo(undoManager.hasUndo());\n this.aceCanRedo(undoManager.hasRedo());\n }\n };\n SurveyJSONEditor.prototype.onJsonEditorChanged = function () {\n if (!this.hasAceEditor) {\n this.isJSONChanged = true;\n }\n this.updateUndoRedoState();\n if (this.timeoutId > -1) {\n clearTimeout(this.timeoutId);\n }\n if (this.isProcessingImmediately) {\n this.timeoutId = -1;\n }\n else {\n var self = this;\n this.timeoutId = window.setTimeout(function () {\n self.timeoutId = -1;\n self.processJson(self.text);\n }, SurveyJSONEditor.updateTextTimeout);\n }\n };\n SurveyJSONEditor.prototype.processJson = function (text) {\n this.textWorker = new _textWorker__WEBPACK_IMPORTED_MODULE_1__[\"SurveyTextWorker\"](text);\n if (this.aceEditor) {\n this.aceEditor\n .getSession()\n .setAnnotations(this.createAnnotations(text, this.textWorker.errors));\n }\n else {\n this.koErrors(this.textWorker.errors);\n }\n };\n SurveyJSONEditor.prototype.createAnnotations = function (text, errors) {\n var annotations = new Array();\n for (var i = 0; i < errors.length; i++) {\n var error = errors[i];\n var annotation = {\n row: error.position.start.row,\n column: error.position.start.column,\n text: error.text,\n type: \"error\",\n };\n annotations.push(annotation);\n }\n return annotations;\n };\n Object.defineProperty(SurveyJSONEditor.prototype, \"readOnly\", {\n /**\n * A boolean property, false by default. Set it to true to deny editing.\n */\n get: function () {\n return this._readOnly();\n },\n set: function (newVal) {\n this._readOnly(newVal);\n },\n enumerable: false,\n configurable: true\n });\n SurveyJSONEditor.prototype.dispose = function () { };\n SurveyJSONEditor.updateTextTimeout = 1000;\n SurveyJSONEditor.showToolbar = true;\n SurveyJSONEditor.aceBasePath = \"\";\n return SurveyJSONEditor;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"survey-json-editor\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var creator = params.creator;\n var model = new SurveyJSONEditor();\n creator.setSurveyJSONTextCallback = function (text) {\n model.isInitialJSON = true;\n model.text = text;\n };\n var subscrViewType = creator.koViewType.subscribe(function (viewType) {\n if (viewType === \"editor\") {\n model.isInitialJSON = true;\n model.show(creator.text);\n creator.getSurveyJSONTextCallback = function () {\n return { text: model.text, isModified: model.isJSONChanged };\n };\n }\n else {\n creator.getSurveyJSONTextCallback = undefined;\n }\n });\n var subscrReadOnly = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n model.readOnly = creator.readOnly;\n });\n model.init(componentInfo.element.querySelector(\".svd-json-editor\"));\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"utils\"].domNodeDisposal.addDisposeCallback(componentInfo.element, function () {\n creator.setSurveyJSONTextCallback = undefined;\n creator.getSurveyJSONTextCallback = undefined;\n subscrReadOnly.dispose();\n subscrViewType.dispose();\n model.dispose();\n });\n return model;\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/tabs/logic.html\":\n/*!*****************************!*\\\n !*** ./src/tabs/logic.html ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = \"
\\n \\n
0\\\">\\n

\\n \\n

\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n \\n

\\n

\\n \\n \\n

\\n \\n
\\n
\\n
\\n\\n \\n\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n

\\n

\\n \\n
\\n

\\n

\\n

\\n \\n
\\n
\\n \\n \\n \\n
\\n

\\n \\n \\n
\";\n\n/***/ }),\n\n/***/ \"./src/tabs/logic.scss\":\n/*!*****************************!*\\\n !*** ./src/tabs/logic.scss ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/tabs/logic.ts\":\n/*!***************************!*\\\n !*** ./src/tabs/logic.ts ***!\n \\***************************/\n/*! exports provided: SurveyLogicEvent, SurveyLogicType, SurveyLogicAction, SurveyLogicItem, SurveyLogic */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyLogicEvent\", function() { return SurveyLogicEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyLogicType\", function() { return SurveyLogicType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyLogicAction\", function() { return SurveyLogicAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyLogicItem\", function() { return SurveyLogicItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyLogic\", function() { return SurveyLogic; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _propertyEditors_propertyConditionEditor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../propertyEditors/propertyConditionEditor */ \"./src/propertyEditors/propertyConditionEditor.ts\");\n/* harmony import */ var _propertyEditors_surveyElementSelector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../propertyEditors/surveyElementSelector */ \"./src/propertyEditors/surveyElementSelector.ts\");\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _expressionToDisplayText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../expressionToDisplayText */ \"./src/expressionToDisplayText.ts\");\n/* harmony import */ var _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../questionEditors/questionEditor */ \"./src/questionEditors/questionEditor.ts\");\n/* harmony import */ var _logic_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./logic.scss */ \"./src/tabs/logic.scss\");\n/* harmony import */ var _logic_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_logic_scss__WEBPACK_IMPORTED_MODULE_8__);\n\n\n\n\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! ./logic.html */ \"./src/tabs/logic.html\");\nfunction getLogicString(name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"ed.lg.\" + name);\n}\nvar SurveyLogicEvent = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyLogicEvent, _super);\n function SurveyLogicEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return SurveyLogicEvent;\n}(survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"EventBase\"]));\n\nvar SurveyLogicType = /** @class */ (function () {\n function SurveyLogicType(logicType, survey, options) {\n if (options === void 0) { options = null; }\n this.logicType = logicType;\n this.survey = survey;\n this.options = options;\n }\n SurveyLogicType.expressionToDisplayText = function (survey, options, expression) {\n return new _expressionToDisplayText__WEBPACK_IMPORTED_MODULE_6__[\"ExpressionToDisplayText\"](survey, options).toDisplayText(expression);\n };\n Object.defineProperty(SurveyLogicType.prototype, \"name\", {\n get: function () {\n return this.logicType.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"baseClass\", {\n get: function () {\n return this.logicType.baseClass;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"propertyName\", {\n get: function () {\n return this.logicType.propertyName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"templateName\", {\n get: function () {\n if (this.isTrigger)\n return \"svd-object-editor-content\";\n return !!this.logicType.templateName\n ? this.logicType.templateName\n : \"svd-element-selector\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"visible\", {\n get: function () {\n if (!this.showInUI)\n return false;\n if (!!this.logicType.showIf)\n return this.logicType.showIf(this.survey);\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"showTitlesInExpression\", {\n get: function () {\n return !!this.options && this.options.showTitlesInExpressions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"hasItemSelector\", {\n get: function () {\n return !!this.baseClass && this.showInUI && !this.canCreateNewElement();\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicType.prototype.createItemSelector = function () {\n if (!this.hasItemSelector)\n return null;\n var res = new _propertyEditors_surveyElementSelector__WEBPACK_IMPORTED_MODULE_4__[\"SurveyElementSelector\"](this.survey, this.baseClass, this.showTitlesInExpression);\n res.disabledPropertyName = this.propertyName;\n return res;\n };\n Object.defineProperty(SurveyLogicType.prototype, \"showInUI\", {\n get: function () {\n return this.logicType.showInUI !== false;\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicType.prototype.canCreateNewElement = function () {\n return !!this.logicType.createNewElement || this.isTrigger;\n };\n Object.defineProperty(SurveyLogicType.prototype, \"isTrigger\", {\n get: function () {\n return !!this.baseClass && this.baseClass.indexOf(\"trigger\") > -1;\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicType.prototype.createNewElement = function (survey) {\n if (!!this.logicType.createNewElement)\n return this.logicType.createNewElement(survey);\n if (this.isTrigger)\n return this.createTriggerElement(survey);\n return null;\n };\n SurveyLogicType.prototype.saveElement = function (action) {\n if (!!this.logicType.saveElement) {\n this.logicType.saveElement(this.survey, action);\n }\n if (this.isTrigger) {\n this.saveTriggerElement(action);\n }\n };\n SurveyLogicType.prototype.createTemplateObject = function (element) {\n if (!!this.logicType.createTemplateObject)\n return this.logicType.createTemplateObject(element);\n if (this.isTrigger)\n return this.createTriggerTemplateObject(element);\n return null;\n };\n Object.defineProperty(SurveyLogicType.prototype, \"isUniqueItem\", {\n get: function () {\n return this.logicType.isUniqueItem === true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"questionNames\", {\n get: function () {\n return this.logicType.questionNames;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"displayName\", {\n get: function () {\n return getLogicString(this.name + \"Name\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicType.prototype, \"description\", {\n get: function () {\n return getLogicString(this.name + \"Description\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicType.prototype.getDisplayText = function (element) {\n var str = getLogicString(this.name + \"Text\");\n if (!!this.logicType.getDisplayText)\n return this.logicType.getDisplayText(element, str, this);\n var name = \"\";\n if (!!this.logicType.getDisplayTextName) {\n name = this.logicType.getDisplayTextName(element);\n }\n else {\n if (!!element && !!element[\"name\"]) {\n name = element[\"name\"];\n }\n }\n if (!!name) {\n return str[\"format\"](this.formatElName(name));\n }\n return str;\n };\n SurveyLogicType.prototype.formatElName = function (name) {\n if (this.showTitlesInExpression && !!this.survey) {\n var question = this.survey.getQuestionByName(name);\n if (!!question && !!question.title) {\n name = question.title;\n }\n }\n return \"{\" + name + \"}\";\n };\n SurveyLogicType.prototype.formatExpression = function (expression) {\n return SurveyLogicType.expressionToDisplayText(this.survey, this.options, expression);\n };\n SurveyLogicType.prototype.hasThisAction = function (actions) {\n if (!actions)\n return false;\n for (var i = 0; i < actions.length; i++) {\n if (actions[i].logicType == this)\n return true;\n }\n return false;\n };\n SurveyLogicType.prototype.createTriggerElement = function (survey) {\n var res = (survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].createClass(this.baseClass));\n res[\"survey\"] = survey;\n res.setOwner(survey);\n return res;\n };\n SurveyLogicType.prototype.saveTriggerElement = function (action) {\n if (!!action.templateObject.editableObject) {\n var edObj = action.templateObject.editableObject;\n edObj.applyAll([\"expression\"]);\n }\n else {\n var trigger = action.element;\n var survey = this.survey;\n if (this.isNewTrigger(trigger) && !!trigger.expression) {\n survey.triggers.push(trigger);\n }\n }\n };\n SurveyLogicType.prototype.createTriggerTemplateObject = function (element) {\n var res = null;\n if (this.isNewTrigger(element)) {\n res = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_7__[\"SurveyElementEditorContentModel\"](element, \"\", this.options);\n }\n else {\n res = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_7__[\"SurveyQuestionEditor\"](element, \"\", this.options);\n }\n var expressionEditor = res.getPropertyEditorByName(\"expression\");\n if (!!expressionEditor) {\n expressionEditor.isHidden = true;\n }\n return res;\n };\n SurveyLogicType.prototype.isNewTrigger = function (element) {\n var trigger = element;\n var survey = this.survey;\n return !!survey && survey.triggers.indexOf(trigger) < 0;\n };\n return SurveyLogicType;\n}());\n\nvar SurveyLogicAction = /** @class */ (function () {\n function SurveyLogicAction(logicType, element, survey) {\n this.survey = survey;\n this.itemSelectorValue = null;\n this.koLogicType = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](logicType);\n this.koTemplate = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n this.koElement = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](element);\n this.koErrorText = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n this.koTemplateObject = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n this.koLogicTypes = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n var self = this;\n this.koDisplayError = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n return !!self.koErrorText();\n });\n this.koLogicType.subscribe(function (value) {\n self.element = !!self.logicType\n ? self.logicType.createNewElement(self.survey)\n : null;\n if (!!self.onLogicTypeChanged)\n self.onLogicTypeChanged();\n self.doLogicTypeChanged();\n });\n this.doLogicTypeChanged();\n this.koAfterRender = function () { };\n }\n Object.defineProperty(SurveyLogicAction.prototype, \"logicType\", {\n get: function () {\n return this.koLogicType();\n },\n set: function (val) {\n if (this.koLogicType() == val)\n return;\n this.koLogicType(val);\n this.doLogicTypeChanged();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicAction.prototype, \"template\", {\n get: function () {\n return this.koTemplate();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicAction.prototype, \"templateObject\", {\n get: function () {\n return this.koTemplateObject();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicAction.prototype, \"koTemplateAfterRender\", {\n get: function () {\n if (!this.templateObject || !this.templateObject.editor)\n return undefined;\n return this.templateObject.editor.koAfterRender;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicAction.prototype, \"element\", {\n get: function () {\n return this.koElement();\n },\n set: function (val) {\n this.koElement(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicAction.prototype, \"itemSelector\", {\n get: function () {\n return this.itemSelectorValue;\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicAction.prototype.apply = function (expression, isRenaming) {\n if (isRenaming === void 0) { isRenaming = false; }\n if (!!this.element && !!this.logicType) {\n this.element[this.logicType.propertyName] = expression;\n if (!isRenaming) {\n this.logicType.saveElement(this);\n }\n if (!expression &&\n survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].isDescendantOf(this.element.getType(), \"surveytrigger\")) {\n var index = this.survey.triggers.indexOf(this.element);\n if (index > -1) {\n this.survey.triggers.splice(index, 1);\n }\n }\n }\n };\n SurveyLogicAction.prototype.renameQuestion = function (oldName, newName) {\n if (!this.element)\n return;\n var names = this.questionNames;\n for (var i = 0; i < names.length; i++) {\n var str = this.element[names[i]];\n if (!!str && str.toLowerCase() == oldName.toLowerCase()) {\n this.element[names[i]] = newName;\n }\n }\n };\n SurveyLogicAction.prototype.equals = function (action) {\n return (this.logicType === action.logicType && this.element === action.element);\n };\n Object.defineProperty(SurveyLogicAction.prototype, \"name\", {\n get: function () {\n return !!this.logicType ? this.logicType.displayName : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicAction.prototype, \"logicTypeName\", {\n get: function () {\n return !!this.logicType ? this.logicType.name : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicAction.prototype, \"text\", {\n get: function () {\n return !!this.logicType ? this.logicType.getDisplayText(this.element) : \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicAction.prototype, \"deleteActionText\", {\n get: function () {\n return getLogicString(\"deleteAction\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicAction.prototype.hasError = function () {\n if (!this.logicType) {\n this.errorText = _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"pe.conditionActionEmpty\");\n return true;\n }\n this.errorText = \"\";\n if (!!this.itemSelector)\n return this.itemSelector.hasError();\n if (!!this.templateObject && !!this.templateObject.hasError)\n return this.templateObject.hasError();\n return false;\n };\n Object.defineProperty(SurveyLogicAction.prototype, \"errorText\", {\n get: function () {\n return this.koErrorText();\n },\n set: function (val) {\n this.koErrorText(val);\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicAction.prototype.getLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(name);\n };\n Object.defineProperty(SurveyLogicAction.prototype, \"questionNames\", {\n get: function () {\n if (!this.logicType || !this.logicType.questionNames)\n return [];\n return this.logicType.questionNames;\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicAction.prototype.doLogicTypeChanged = function () {\n this.koErrorText(\"\");\n this.itemSelectorValue = !!this.logicType\n ? this.logicType.createItemSelector()\n : null;\n if (this.itemSelector) {\n var self = this;\n this.itemSelector.element = this.element;\n this.itemSelector.onValueChangedCallback = function (newValue) {\n self.element = self.itemSelector.element;\n };\n }\n var obj = !!this.logicType\n ? this.logicType.createTemplateObject(this.element)\n : null;\n obj = obj || this.itemSelector;\n this.koTemplate(\"\");\n this.koTemplateObject(obj);\n this.koTemplate(!!this.logicType ? this.logicType.templateName : \"\");\n };\n return SurveyLogicAction;\n}());\n\nvar SurveyLogicItem = /** @class */ (function () {\n function SurveyLogicItem(owner, expression) {\n if (expression === void 0) { expression = \"\"; }\n this.owner = owner;\n this.expression = expression;\n this.id = ++SurveyLogicItem.counter;\n this.removedActions = [];\n this.koActions = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n }\n Object.defineProperty(SurveyLogicItem.prototype, \"name\", {\n get: function () {\n return \"logicItem\" + this.id;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicItem.prototype, \"title\", {\n get: function () {\n var res = this.getExpressionAsDisplayText();\n if (!!res && res.length > 50) {\n res = res.substr(1, 50) + \"...\";\n }\n return res;\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicItem.prototype.edit = function () {\n if (!!this.owner) {\n this.owner.editItem(this);\n }\n };\n SurveyLogicItem.prototype.remove = function () {\n if (!!this.owner) {\n this.owner.removeItem(this);\n }\n };\n Object.defineProperty(SurveyLogicItem.prototype, \"isReadOnly\", {\n get: function () {\n return !!this.owner && this.owner.readOnly;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicItem.prototype, \"actions\", {\n get: function () {\n return this.koActions();\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicItem.prototype.addNewAction = function (action) {\n this.koActions.push(action);\n };\n SurveyLogicItem.prototype.removeAction = function (action) {\n this.removedActions.push(action);\n var index = this.koActions().indexOf(action);\n if (index > -1) {\n this.koActions.splice(index, 1);\n if (!!action.logicType && !!action.onLogicTypeChanged) {\n action.onLogicTypeChanged();\n }\n }\n };\n SurveyLogicItem.prototype.apply = function (expression) {\n if (!expression) {\n this.removeActions();\n }\n else {\n this.removeSameActions();\n }\n for (var i = 0; i < this.removedActions.length; i++) {\n this.removedActions[i].apply(\"\");\n }\n this.removedActions = [];\n this.applyExpression(expression, false);\n };\n SurveyLogicItem.prototype.renameQuestion = function (oldName, newName) {\n if (!oldName || !newName)\n return;\n this.renameQuestionInExpression(oldName, newName);\n var ops = this.actions;\n for (var i = 0; i < ops.length; i++) {\n ops[i].renameQuestion(oldName, newName);\n }\n };\n SurveyLogicItem.prototype.removeQuestion = function (name) {\n this.removeQuestionInExpression(name);\n };\n Object.defineProperty(SurveyLogicItem.prototype, \"expressionText\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"]\n .getString(\"ed.lg.itemExpressionText\")[\"format\"](this.getExpressionAsDisplayText());\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicItem.prototype.getExpressionAsDisplayText = function () {\n return !!this.owner\n ? this.owner.getExpressionAsDisplayText(this.expression)\n : this.expression;\n };\n Object.defineProperty(SurveyLogicItem.prototype, \"editText\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"pe.edit\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogicItem.prototype, \"deleteText\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(\"pe.delete\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogicItem.prototype.renameQuestionInExpression = function (oldName, newName) {\n if (!this.expression)\n return;\n var newExpression = this.expression;\n var expression = this.expression.toLocaleLowerCase();\n oldName = \"{\" + oldName.toLowerCase() + \"}\";\n newName = \"{\" + newName + \"}\";\n var index = expression.lastIndexOf(oldName, expression.length);\n while (index > -1) {\n newExpression =\n newExpression.substring(0, index) +\n newName +\n newExpression.substr(index + oldName.length, +newExpression.length);\n expression = expression.substring(0, index);\n index = expression.lastIndexOf(oldName, expression.length);\n }\n if (newExpression != this.expression) {\n this.applyExpression(newExpression, true);\n }\n };\n SurveyLogicItem.prototype.removeQuestionInExpression = function (name) {\n if (!this.expression)\n return;\n var expR = new _expressionToDisplayText__WEBPACK_IMPORTED_MODULE_6__[\"ExpressionRemoveVariable\"]();\n var newExpression = expR.remove(this.expression, name);\n if (newExpression != this.expression) {\n this.applyExpression(newExpression, true);\n }\n };\n SurveyLogicItem.prototype.applyExpression = function (expression, isRenaming) {\n this.expression = expression;\n var ops = this.actions;\n for (var i = 0; i < ops.length; i++) {\n ops[i].apply(expression, isRenaming);\n }\n };\n SurveyLogicItem.prototype.removeActions = function () {\n var ops = this.actions;\n for (var i = ops.length - 1; i >= 0; i--) {\n this.removeAction(ops[i]);\n }\n };\n SurveyLogicItem.prototype.removeSameActions = function () {\n var ops = this.actions;\n for (var i = ops.length - 1; i >= 0; i--) {\n for (var j = i - 1; j >= 0; j--) {\n if (ops[i].equals(ops[j])) {\n this.removeAction(ops[i]);\n break;\n }\n }\n }\n };\n SurveyLogicItem.counter = 0;\n return SurveyLogicItem;\n}());\n\nvar SurveyLogic = /** @class */ (function () {\n function SurveyLogic(survey, options) {\n if (options === void 0) { options = null; }\n this.survey = survey;\n this.options = options;\n this.invisibleItems = [];\n /**\n * The event is called when logic item is saved.\n *
options.item is the saved logic item.\n */\n this.onLogicItemSaved = new SurveyLogicEvent();\n /**\n * The event is called before logic item is saved. You can set options.error to non empty string to show error instead of saving the item.\n * You can use options.item.actions to access actions and optionally set errorText to a particular action.\n *
options.item is the saved logic item.\n *
usedNamesInExpression - the string list of all variables (questions, calculatedValues, and so on) that are used in expression\n *
error - the error string. It is empty by default. You have to set it to non-empty string to show the error on saving.\n */\n this.onLogicItemValidation = new SurveyLogicEvent();\n /**\n * The event is called before logic item is being removed.\n *
options.allowRemove is the option you can set to false and prevent removing.\n *
options.item is the logic item to remove.\n */\n this.onLogicItemRemoving = new SurveyLogicEvent();\n /**\n * The event is called when logic item is removed.\n *
options.item is the removed logic item.\n */\n this.onLogicItemRemoved = new SurveyLogicEvent();\n this._placeholderHtml = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n this.createExpressionPropertyEditor();\n this.hideExpressionHeader = options && options[\"hideExpressionHeader\"];\n this.koItems = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n this.koLogicTypes = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n this.koMode = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"view\");\n this.koReadOnly = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](this.readOnly);\n this.koErrorText = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](\"\");\n var self = this;\n this.koDisplayError = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n return !!self.koErrorText();\n });\n this.koAddNew = function () {\n self.addNew();\n };\n this.koEditItem = function (item) {\n self.editItem(item);\n };\n this.koRemoveItem = function (item) {\n self.removeItem(item);\n };\n this.koShowView = function () {\n self.mode = \"view\";\n };\n this.koSaveAndShowView = function () {\n if (self.saveEditableItem()) {\n self.mode = \"view\";\n }\n };\n this.koSaveEditableItem = function () {\n self.saveEditableItem();\n };\n this.koAddNewAction = function () {\n self.addNewAction();\n };\n this.koRemoveAction = function (action) {\n self.removeAction(action);\n };\n this.koEditableItem = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n this.update();\n this.koAfterRender = function () { };\n }\n Object.defineProperty(SurveyLogic.prototype, \"placeholderHtml\", {\n get: function () {\n return this._placeholderHtml();\n },\n set: function (value) {\n this._placeholderHtml(value);\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogic.prototype.getLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_5__[\"editorLocalization\"].getString(name);\n };\n SurveyLogic.prototype.getTypeByName = function (name) {\n for (var i = 0; i < this.logicTypes.length; i++) {\n if (this.logicTypes[i].name == name)\n return this.logicTypes[i];\n }\n return null;\n };\n SurveyLogic.prototype.update = function (survey, options) {\n if (survey === void 0) { survey = null; }\n if (options === void 0) { options = null; }\n if (!!survey) {\n this.survey = survey;\n }\n if (!!options) {\n this.options = options;\n }\n this.koLogicTypes(this.createLogicTypes());\n this.updateVisibleItems();\n this.invisibleItems = this.buildItems(false);\n this.koReadOnly(this.readOnly);\n this.mode = \"view\";\n this.expressionEditor.object = this.survey;\n this.expressionEditor.options = this.options;\n this.expressionEditor.showDisplayName = false;\n this.expressionEditor.showHelpText = false;\n this.expressionEditor.beforeShow();\n };\n SurveyLogic.prototype.updateVisibleItems = function () {\n this.koItems(this.buildItems(true));\n this.koEditableItem(null);\n this.koErrorText(\"\");\n };\n Object.defineProperty(SurveyLogic.prototype, \"readOnly\", {\n get: function () {\n return !!this.options && this.options.readOnly;\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogic.prototype.saveEditableItem = function () {\n if (!this.editableItem || this.hasError())\n return false;\n !!this.options && this.options.startUndoRedoTransaction();\n this.expressionEditor.apply();\n this.editableItem.apply(this.expressionEditor.koValue());\n var isNew = this.koItems.indexOf(this.editableItem) < 0;\n if (isNew) {\n this.koItems.push(this.editableItem);\n }\n this.onItemChanged(this.editableItem, isNew ? \"new\" : \"modify\");\n !!this.options && this.options.stopUndoRedoTransaction();\n this.onLogicItemSaved.fire(this, { item: this.editableItem });\n return true;\n };\n SurveyLogic.prototype.onItemChanged = function (item, changeType) {\n if (!!this.onChangedCallback) {\n this.onChangedCallback(item, changeType);\n }\n };\n Object.defineProperty(SurveyLogic.prototype, \"items\", {\n get: function () {\n return this.koItems();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogic.prototype, \"logicTypes\", {\n get: function () {\n return this.koLogicTypes();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogic.prototype, \"editableItem\", {\n get: function () {\n return this.koEditableItem();\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogic.prototype.renameQuestion = function (oldName, newName) {\n this.renameQuestionCore(oldName, newName, this.items);\n this.renameQuestionCore(oldName, newName, this.invisibleItems);\n };\n SurveyLogic.prototype.removeQuestion = function (name) {\n this.removeQuestionCore(name, this.items);\n this.removeQuestionCore(name, this.invisibleItems);\n };\n SurveyLogic.prototype.hasError = function () {\n if (!this.editableItem)\n return false;\n var text = \"\";\n if (!this.isExpressionValid) {\n text = getLogicString(\"expressionInvalid\");\n }\n var ops = this.editableItem.actions;\n if (!text && ops.length == 0) {\n text = getLogicString(\"noActionError\");\n }\n if (!text) {\n for (var i = 0; i < ops.length; i++) {\n if (ops[i].hasError()) {\n text = getLogicString(\"actionInvalid\");\n }\n }\n }\n var exp = new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"ExpressionRunner\"](this.expressionEditor.koValue());\n var options = {\n item: this.editableItem,\n error: text,\n usedNamesInExpression: exp.getVariables(),\n };\n this.onLogicItemValidation.fire(this, options);\n text = options.error;\n this.koErrorText(text);\n return !!text;\n };\n Object.defineProperty(SurveyLogic.prototype, \"addNewActionText\", {\n get: function () {\n return getLogicString(\"addNewAction\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogic.prototype, \"selectedActionCaption\", {\n get: function () {\n return getLogicString(\"selectedActionCaption\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogic.prototype, \"expressionSetupText\", {\n get: function () {\n return getLogicString(\"expressionSetup\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogic.prototype, \"actionsSetupText\", {\n get: function () {\n return getLogicString(\"actionsSetup\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogic.prototype, \"isExpressionValid\", {\n get: function () {\n return this.expressionEditor.isExpressionValid;\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogic.prototype.renameQuestionCore = function (oldName, newName, items) {\n for (var i = 0; i < items.length; i++) {\n items[i].renameQuestion(oldName, newName);\n }\n };\n SurveyLogic.prototype.removeQuestionCore = function (name, items) {\n for (var i = 0; i < items.length; i++) {\n items[i].removeQuestion(name);\n }\n };\n Object.defineProperty(SurveyLogic.prototype, \"mode\", {\n /**\n * There are 3 modes: view, new, edit\n */\n get: function () {\n return this.koMode();\n },\n set: function (val) {\n if (val !== \"view\" && val !== \"new\" && val !== \"edit\")\n return;\n if (this.mode == val)\n return;\n var oldMode = this.mode;\n if ((oldMode == \"new\" || oldMode == \"edit\") && val == \"view\") {\n this.updateVisibleItems();\n }\n this.koMode(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLogic.prototype, \"addNewText\", {\n get: function () {\n var lgAddNewItem = this.getLocString(\"ed.lg.addNewItem\");\n return !!lgAddNewItem ? lgAddNewItem : this.getLocString(\"pe.addNew\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogic.prototype.addNew = function () {\n !!this.options && this.options.startUndoRedoTransaction();\n var logicItem = new SurveyLogicItem(this);\n this.koEditableItem(logicItem);\n logicItem.addNewAction(this.createNewAction(null, null));\n this.expressionEditor.koValue(\"\");\n this.mode = \"new\";\n !!this.options && this.options.stopUndoRedoTransaction();\n };\n SurveyLogic.prototype.editItem = function (item) {\n !!this.options && this.options.startUndoRedoTransaction();\n this.koEditableItem(item);\n this.expressionEditor.koValue(item.expression);\n this.mode = \"edit\";\n !!this.options && this.options.stopUndoRedoTransaction();\n };\n SurveyLogic.prototype.removeItem = function (item) {\n var eventOptions = { item: item, allowRemove: true };\n this.onLogicItemRemoving.fire(this, eventOptions);\n if (!eventOptions.allowRemove)\n return;\n !!this.options && this.options.startUndoRedoTransaction();\n item.apply(\"\");\n var index = this.koItems.indexOf(item);\n if (index > -1) {\n this.koItems.splice(index, 1);\n }\n this.onItemChanged(item, \"delete\");\n !!this.options && this.options.stopUndoRedoTransaction();\n this.onLogicItemRemoved.fire(this, { item: item });\n };\n SurveyLogic.prototype.addAction = function (lt, element) {\n if (element === void 0) { element = null; }\n var action = this.createNewAction(lt, element);\n this.editableItem.addNewAction(action);\n if (!!action.logicType) {\n this.updateLogicTypesInActions();\n }\n return action;\n };\n SurveyLogic.prototype.addNewAction = function () {\n return this.addAction(null, null);\n };\n SurveyLogic.prototype.createNewAction = function (lt, element) {\n var _this = this;\n var action = new SurveyLogicAction(lt, element, this.survey);\n action.koLogicTypes(this.createLogicTypesInActions(action));\n action.onLogicTypeChanged = function () {\n _this.updateLogicTypesInActions();\n };\n return action;\n };\n SurveyLogic.prototype.createLogicTypesInActions = function (action) {\n var res = [];\n var logicTypes = this.logicTypes;\n for (var i = 0; i < logicTypes.length; i++) {\n if (logicTypes[i].visible) {\n res.push({\n logicType: logicTypes[i],\n koVisible: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](this.isLogicTypeVisibleInAction(logicTypes[i], action)),\n });\n }\n }\n return res;\n };\n SurveyLogic.prototype.isLogicTypeVisibleInAction = function (lt, action) {\n if (!lt.isUniqueItem || lt == action.logicType)\n return true;\n if (!this.editableItem)\n return true;\n for (var i = 0; i < this.editableItem.actions.length; i++) {\n var curAction = this.editableItem.actions[i];\n if (curAction != action && curAction.logicType == lt)\n return false;\n }\n return true;\n };\n SurveyLogic.prototype.updateLogicTypesInActions = function () {\n if (!this.editableItem)\n return;\n for (var i = 0; i < this.editableItem.actions.length; i++) {\n this.updateLogicTypesInAction(this.editableItem.actions[i]);\n }\n };\n SurveyLogic.prototype.updateLogicTypesInAction = function (action) {\n var logicTypes = action.koLogicTypes();\n for (var i = 0; i < logicTypes.length; i++) {\n var lt = logicTypes[i];\n lt.koVisible(this.isLogicTypeVisibleInAction(lt.logicType, action));\n }\n };\n SurveyLogic.prototype.removeAction = function (action) {\n if (!this.editableItem)\n return;\n this.editableItem.removeAction(action);\n if (this.editableItem.actions.length == 0) {\n this.addNewAction();\n }\n };\n SurveyLogic.prototype.getExpressionAsDisplayText = function (expression) {\n return SurveyLogicType.expressionToDisplayText(this.survey, this.options, expression);\n };\n SurveyLogic.prototype.buildItems = function (showInUI) {\n var res = [];\n var hash = {};\n var elements = this.getAllElements();\n for (var i = 0; i < elements.length; i++) {\n this.buildItemsByElement(elements[i], res, hash, showInUI);\n }\n return res;\n };\n SurveyLogic.prototype.getAllElements = function () {\n var res = [];\n this.AddElements(this.survey.pages, res);\n this.AddElements(this.survey.getAllQuestions(), res);\n this.AddElements(this.survey.getAllPanels(), res);\n this.AddElements(this.survey.triggers, res);\n this.AddElements(this.survey.completedHtmlOnCondition, res);\n this.AddElements(this.survey.calculatedValues, res);\n this.AddElements(this.getMatrixColumns(), res);\n this.AddElements(this.getValidators(), res);\n this.AddElements(this.getItemValues(), res);\n return res;\n };\n SurveyLogic.prototype.getMatrixColumns = function () {\n var res = [];\n var questions = this.survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n var columns = q[\"columns\"];\n if (!columns)\n continue;\n var prop = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(q.getType(), \"columns\");\n if (!prop || prop.className !== \"matrixdropdowncolumn\")\n continue;\n this.AddElements(columns, res);\n }\n return res;\n };\n SurveyLogic.prototype.getValidators = function () {\n var res = [];\n var questions = this.survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n this.AddElements(questions[i].validators, res);\n }\n return res;\n };\n SurveyLogic.prototype.getItemValues = function () {\n var res = [];\n var questions = this.survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n var choices = q[\"choices\"];\n if (!choices)\n continue;\n var prop = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(q.getType(), \"choices\");\n if (!prop || prop.type !== \"itemvalue[]\")\n continue;\n this.AddElements(choices, res);\n }\n return res;\n };\n SurveyLogic.prototype.AddElements = function (src, dest) {\n for (var i = 0; i < src.length; i++) {\n dest.push(src[i]);\n }\n };\n SurveyLogic.prototype.buildItemsByElement = function (element, dest, hash, showInUI) {\n var types = this.getElementAllTypes(element);\n for (var i = 0; i < this.logicTypes.length; i++) {\n var lt = this.logicTypes[i];\n if (lt.showInUI !== showInUI)\n continue;\n var expression = element[lt.propertyName];\n if (types.indexOf(lt.baseClass) > -1 &&\n !survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Helpers\"].isValueEmpty(expression)) {\n var key = this.getExpressionHashKey(expression);\n var item = hash[key];\n if (!item) {\n item = new SurveyLogicItem(this, expression);\n hash[key] = item;\n dest.push(item);\n }\n var action = this.createNewAction(lt, element);\n item.addNewAction(action);\n }\n }\n };\n SurveyLogic.prototype.getExpressionHashKey = function (expression) {\n return expression.replace(\" \", \"\").toLowerCase();\n };\n SurveyLogic.prototype.getElementAllTypes = function (element) {\n var types = [];\n var type = element.getType();\n types.push(type);\n while (!!type && type != \"base\") {\n var cl = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findClass(type);\n if (!cl)\n break;\n type = cl.parentName;\n if (!!type) {\n types.push(type);\n }\n }\n return types;\n };\n SurveyLogic.prototype.createLogicTypes = function () {\n var res = [];\n var visActions = SurveyLogic.visibleActions;\n for (var i = 0; i < SurveyLogic.types.length; i++) {\n if (visActions.length > 0 &&\n visActions.indexOf(SurveyLogic.types[i].name) < 0)\n continue;\n res.push(new SurveyLogicType(SurveyLogic.types[i], this.survey, this.options));\n }\n return res;\n };\n SurveyLogic.prototype.getExpressionProperty = function () {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(\"survey\", \"hiddenLogic\");\n if (!!property)\n return property;\n survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].addProperty(\"survey\", {\n name: \"hiddenLogic:condition\",\n visible: false,\n isSerializable: false,\n });\n return survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].findProperty(\"survey\", \"hiddenLogic\");\n };\n Object.defineProperty(SurveyLogic.prototype, \"hideExpressionHeader\", {\n get: function () {\n return (!!this.expressionEditor && this.expressionEditor.koShowExpressionHeader());\n },\n set: function (val) {\n if (!!this.expressionEditor) {\n this.expressionEditor.koShowExpressionHeader(val);\n }\n },\n enumerable: false,\n configurable: true\n });\n SurveyLogic.prototype.createExpressionPropertyEditor = function () {\n this.expressionEditor = new _propertyEditors_propertyConditionEditor__WEBPACK_IMPORTED_MODULE_3__[\"SurveyPropertyConditionEditor\"](this.getExpressionProperty());\n this.expressionEditor.isEditorShowing = true;\n this.expressionEditor.isWideMode = true;\n this.expressionEditor.object = this.survey;\n this.expressionEditor.options = this.options;\n this.expressionEditor.koSetupText(this.expressionSetupText);\n };\n SurveyLogic.prototype.dispose = function () { };\n SurveyLogic.visibleActions = [];\n SurveyLogic.types = [\n {\n name: \"page_visibility\",\n baseClass: \"page\",\n propertyName: \"visibleIf\",\n showIf: function (survey) {\n return survey.pages.length > 1;\n },\n },\n {\n name: \"page_enable\",\n baseClass: \"page\",\n propertyName: \"enableIf\",\n showIf: function (survey) {\n return survey.pages.length > 1;\n },\n },\n {\n name: \"panel_visibility\",\n baseClass: \"panel\",\n propertyName: \"visibleIf\",\n showIf: function (survey) {\n return survey.getAllPanels().length > 0;\n },\n },\n {\n name: \"panel_enable\",\n baseClass: \"panel\",\n propertyName: \"enableIf\",\n showIf: function (survey) {\n return survey.getAllPanels().length > 0;\n },\n },\n {\n name: \"question_visibility\",\n baseClass: \"question\",\n propertyName: \"visibleIf\",\n showIf: function (survey) {\n return survey.getAllQuestions().length > 0;\n },\n },\n {\n name: \"question_enable\",\n baseClass: \"question\",\n propertyName: \"enableIf\",\n showIf: function (survey) {\n return survey.getAllQuestions().length > 0;\n },\n },\n {\n name: \"question_require\",\n baseClass: \"question\",\n propertyName: \"requiredIf\",\n showIf: function (survey) {\n return survey.getAllQuestions().length > 0;\n },\n },\n {\n name: \"expression_expression\",\n baseClass: \"expression\",\n propertyName: \"expression\",\n showInUI: false,\n },\n {\n name: \"matrixdropdowncolumn_visibleIf\",\n baseClass: \"matrixdropdowncolumn\",\n propertyName: \"visibleIf\",\n showInUI: false,\n },\n {\n name: \"matrixdropdowncolumn_enableIf\",\n baseClass: \"matrixdropdowncolumn\",\n propertyName: \"enableIf\",\n showInUI: false,\n },\n {\n name: \"matrixdropdowncolumn_requiredIf\",\n baseClass: \"matrixdropdowncolumn\",\n propertyName: \"requiredIf\",\n showInUI: false,\n },\n {\n name: \"matrixdropdowncolumn_totalExpression\",\n baseClass: \"matrixdropdowncolumn\",\n propertyName: \"totalExpression\",\n showInUI: false,\n },\n {\n name: \"trigger_complete\",\n baseClass: \"completetrigger\",\n propertyName: \"expression\",\n isUniqueItem: true,\n },\n {\n name: \"trigger_setvalue\",\n baseClass: \"setvaluetrigger\",\n propertyName: \"expression\",\n questionNames: [\"setToName\"],\n getDisplayText: function (element, formatStr, lt) {\n return formatStr[\"format\"](lt.formatElName(element[\"setToName\"]), element[\"setValue\"]);\n },\n },\n {\n name: \"trigger_copyvalue\",\n baseClass: \"copyvaluetrigger\",\n propertyName: \"expression\",\n questionNames: [\"setToName\", \"fromName\"],\n getDisplayText: function (element, formatStr, lt) {\n return formatStr[\"format\"](lt.formatElName(element[\"setToName\"]), lt.formatElName(element[\"fromName\"]));\n },\n },\n {\n name: \"trigger_skip\",\n baseClass: \"skiptrigger\",\n propertyName: \"expression\",\n questionNames: [\"gotoName\"],\n isUniqueItem: true,\n getDisplayTextName: function (element) {\n return element[\"gotoName\"];\n },\n },\n {\n name: \"trigger_runExpression\",\n baseClass: \"runexpressiontrigger\",\n propertyName: \"expression\",\n questionNames: [\"setToName\"],\n getDisplayText: function (element, formatStr, lt) {\n var res = getLogicString(\"trigger_runExpressionText1\");\n res = res[\"format\"](lt.formatExpression(element[\"runExpression\"]));\n var setToName = element[\"setToName\"];\n if (!!setToName) {\n var str = getLogicString(\"trigger_runExpressionText2\");\n res += str[\"format\"](lt.formatElName(element[\"setToName\"]));\n }\n return res;\n },\n },\n {\n name: \"completedHtmlOnCondition\",\n baseClass: \"htmlconditionitem\",\n propertyName: \"expression\",\n isUniqueItem: true,\n templateName: \"svd-property-editor-html\",\n createNewElement: function (survey) {\n return new survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"HtmlConditionItem\"]();\n },\n createTemplateObject: function (element) {\n //var item = element;\n var res = new _questionEditors_questionEditor__WEBPACK_IMPORTED_MODULE_7__[\"SurveyElementEditorContentModel\"](element, \"\", this.options);\n return res.getPropertyEditorByName(\"html\");\n /*\n return {\n koValue: ko.observable(item.html),\n readOnly: false,\n koAfterRender: function () {},\n };*/\n },\n saveElement: function (survey, action) {\n var item = action.element;\n item.html = action.templateObject.koValue();\n if (survey.completedHtmlOnCondition.indexOf(item) < 0) {\n survey.completedHtmlOnCondition.push(item);\n }\n },\n },\n {\n name: \"trigger_runExpression_Expression\",\n baseClass: \"runexpressiontrigger\",\n propertyName: \"runExpression\",\n showInUI: false,\n },\n {\n name: \"question_expressionValidator\",\n baseClass: \"expressionvalidator\",\n propertyName: \"expression\",\n showInUI: false,\n },\n {\n name: \"matrix_rowsVisibleIf\",\n baseClass: \"matrix\",\n propertyName: \"rowsVisibleIf\",\n showInUI: false,\n },\n {\n name: \"matrix_columnsVisibleIf\",\n baseClass: \"matrix\",\n propertyName: \"columnsVisibleIf\",\n showInUI: false,\n },\n {\n name: \"matrixdropdown_rowsVisibleIf\",\n baseClass: \"matrixdropdown\",\n propertyName: \"rowsVisibleIf\",\n showInUI: false,\n },\n {\n name: \"select_choicesVisibleIf\",\n baseClass: \"selectbase\",\n propertyName: \"choicesVisibleIf\",\n showInUI: false,\n },\n {\n name: \"select_choicesEnableIf\",\n baseClass: \"selectbase\",\n propertyName: \"choicesEnableIf\",\n showInUI: false,\n },\n {\n name: \"itemvalue_visibleIf\",\n baseClass: \"itemvalue\",\n propertyName: \"visibleIf\",\n showInUI: false,\n },\n {\n name: \"itemvalue_enableIf\",\n baseClass: \"itemvalue\",\n propertyName: \"enableIf\",\n showInUI: false,\n },\n {\n name: \"calculatedValue\",\n baseClass: \"calculatedvalue\",\n propertyName: \"expression\",\n showInUI: false,\n },\n ];\n return SurveyLogic;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_1__[\"components\"].register(\"survey-logic\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var creator = params.creator;\n // var model = new SurveyLogic(creator.survey, creator);\n // model.update(creator.survey, creator);\n var model = creator.logic;\n var subscribeViewType = creator.koViewType.subscribe(function (viewType) {\n if (viewType === \"logic\") {\n model.update(creator.survey, creator);\n }\n });\n var surveyCreatedHandler = function (creator, options) {\n model.update(options.survey, creator);\n };\n creator.onDesignerSurveyCreated.add(surveyCreatedHandler);\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"utils\"].domNodeDisposal.addDisposeCallback(componentInfo.element, function () {\n subscribeViewType.dispose();\n creator.onDesignerSurveyCreated.remove(surveyCreatedHandler);\n // model.dispose();\n });\n return model;\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/tabs/test.html\":\n/*!****************************!*\\\n !*** ./src/tabs/test.html ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\";\n\n/***/ }),\n\n/***/ \"./src/tabs/test.scss\":\n/*!****************************!*\\\n !*** ./src/tabs/test.scss ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/tabs/test.ts\":\n/*!**************************!*\\\n !*** ./src/tabs/test.ts ***!\n \\**************************/\n/*! exports provided: SurveySimulatorComponent, SurveyResultsModel, SurveyLiveTester */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyLiveTester\", function() { return SurveyLiveTester; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _test_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./test.scss */ \"./src/tabs/test.scss\");\n/* harmony import */ var _test_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_test_scss__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _components_simulator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/simulator */ \"./src/components/simulator.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveySimulatorComponent\", function() { return _components_simulator__WEBPACK_IMPORTED_MODULE_4__[\"SurveySimulatorComponent\"]; });\n\n/* harmony import */ var _components_results__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/results */ \"./src/components/results.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SurveyResultsModel\", function() { return _components_results__WEBPACK_IMPORTED_MODULE_5__[\"SurveyResultsModel\"]; });\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! ./test.html */ \"./src/tabs/test.html\");\n\n\nvar SurveyLiveTester = /** @class */ (function () {\n function SurveyLiveTester(surveyProvider) {\n var _this = this;\n this.surveyProvider = surveyProvider;\n this.koIsRunning = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.koPages = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]([]);\n this.koActivePage = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](null);\n this.koShowInvisibleElements = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.onGetObjectDisplayName = null;\n this.koShowPagesInTestSurveyTab = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.showSimulator = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.koShowDefaultLanguageInTestSurveyTab = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.koShowInvisibleElementsInTestSurveyTab = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n /**\n * The list of toolbar items. You may add/remove/replace them.\n * @see IAction\n */\n this.toolbarItems = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n var self = this;\n this.survey = this.surveyProvider.createSurvey({}, \"test\");\n this.selectTestClick = function () {\n self.testAgain();\n };\n this.selectPageClick = function (pageItem) {\n if (self.survey) {\n if (self.survey.state == \"starting\") {\n self.survey.start();\n }\n self.survey.currentPage = pageItem.page;\n }\n };\n this.koActivePage.subscribe(function (newValue) {\n if (!!newValue) {\n self.survey.currentPage = newValue;\n }\n });\n this.koShowInvisibleElements.subscribe(function (newValue) {\n self.survey.showInvisibleElements = newValue;\n });\n this.setPageDisable = function (option, item) {\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"applyBindingsToNode\"](option, { disable: item.koDisabled }, item);\n };\n this.koLanguages = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](this.getLanguages());\n this.koActiveLanguage = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"\");\n this.koActiveLanguage.subscribe(function (newValue) {\n if (self.updatingLanguages || self.survey.locale == newValue)\n return;\n self.survey.locale = newValue;\n self.koSurvey(self.survey);\n });\n this.koSurvey = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](this.survey);\n this.toolbarItems.push({\n id: \"svd-test-page-selector\",\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"ts.selectPage\"),\n visible: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return _this.koPages().length > 1 && _this.koShowPagesInTestSurveyTab(); }),\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"ts.selectPage\"),\n component: \"svd-dropdown\",\n action: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"]({\n read: function () { return _this.koActivePage(); },\n write: function (val) { return _this.koActivePage(val); },\n }),\n afterRender: this.setPageDisable,\n items: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () { return _this.koPages(); }),\n });\n this.toolbarItems.push({\n id: \"svd-test-locale-selector\",\n title: this.localeText,\n visible: this.koShowDefaultLanguageInTestSurveyTab,\n tooltip: this.localeText,\n component: \"svd-dropdown\",\n action: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"]({\n read: function () { return _this.koActiveLanguage(); },\n write: function (val) { return _this.koActiveLanguage(val); },\n }),\n items: this.koLanguages,\n });\n this.toolbarItems.push({\n id: \"svd-test-show-invisible\",\n title: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"ts.showInvisibleElements\"),\n visible: this.koShowInvisibleElementsInTestSurveyTab,\n tooltip: Object(_editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"getLocString\"])(\"ts.showInvisibleElements\"),\n component: \"svd-boolean\",\n action: knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"]({\n read: function () { return _this.koShowInvisibleElements(); },\n write: function (val) { return _this.koShowInvisibleElements(val); },\n }),\n });\n }\n SurveyLiveTester.prototype.setJSON = function (json) {\n this.json = json;\n if (json != null) {\n if (json.cookieName) {\n delete json.cookieName;\n }\n }\n this.survey = json\n ? this.surveyProvider.createSurvey(json, \"test\")\n : this.surveyProvider.createSurvey({}, \"test\");\n if (this.onSurveyCreatedCallback)\n this.onSurveyCreatedCallback(this.survey);\n var self = this;\n this.survey.onComplete.add(function (sender) {\n self.koIsRunning(false);\n });\n if (!!this.survey[\"onNavigateToUrl\"]) {\n this.survey[\"onNavigateToUrl\"].add(function (sender, options) {\n var url = options.url;\n options.url = \"\";\n if (!!url) {\n var message = self.getLocString(\"ed.navigateToMsg\") + \" '\" + url + \"'.\";\n if (!!this.surveyProvider) {\n this.surveyProvider.notify(message);\n }\n else {\n alert(message);\n }\n }\n });\n }\n this.survey.onStarted.add(function (sender) {\n self.setActivePageItem(self.survey.currentPage, true);\n });\n this.survey.onCurrentPageChanged.add(function (sender, options) {\n self.koActivePage(options.newCurrentPage);\n self.setActivePageItem(options.oldCurrentPage, false);\n self.setActivePageItem(options.newCurrentPage, true);\n });\n this.survey.onPageVisibleChanged.add(function (sender, options) {\n self.updatePageItem(options.page);\n });\n };\n SurveyLiveTester.prototype.updatePageItem = function (page) {\n var item = this.getPageItemByPage(page);\n if (item) {\n item.koVisible(page.isVisible);\n item.koDisabled(!page.isVisible);\n }\n };\n SurveyLiveTester.prototype.show = function (options) {\n if (options === void 0) { options = null; }\n var pages = [];\n for (var i = 0; i < this.survey.pages.length; i++) {\n var page = this.survey.pages[i];\n pages.push({\n page: page,\n value: page,\n text: this.onGetObjectDisplayName\n ? this.onGetObjectDisplayName(page)\n : page.name,\n koVisible: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](page.isVisible),\n koDisabled: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](!page.isVisible),\n koActive: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](this.survey.state == \"running\" && page === this.survey.currentPage),\n });\n }\n if (!!options && options.showSimulatorInTestSurveyTab != undefined) {\n this.showSimulator(options.showSimulatorInTestSurveyTab);\n }\n if (!!options && options.showPagesInTestSurveyTab != undefined) {\n this.koShowPagesInTestSurveyTab(options.showPagesInTestSurveyTab);\n }\n if (!!options && options.showDefaultLanguageInTestSurveyTab != undefined) {\n this.setDefaultLanguageOption(options.showDefaultLanguageInTestSurveyTab);\n }\n if (!!options &&\n options.showInvisibleElementsInTestSurveyTab != undefined) {\n this.koShowInvisibleElementsInTestSurveyTab(options.showInvisibleElementsInTestSurveyTab);\n }\n this.koShowInvisibleElements(false);\n this.koPages(pages);\n this.koSurvey(this.survey);\n this.koActivePage(this.survey.currentPage);\n this.koActiveLanguage(this.survey.locale || survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"surveyLocalization\"].defaultLocale);\n this.koIsRunning(true);\n };\n SurveyLiveTester.prototype.getLocString = function (name) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"editorLocalization\"].getString(name);\n };\n Object.defineProperty(SurveyLiveTester.prototype, \"testSurveyAgainText\", {\n get: function () {\n return this.getLocString(\"ed.testSurveyAgain\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyLiveTester.prototype, \"localeText\", {\n get: function () {\n return this.getLocString(\"pe.locale\");\n },\n enumerable: false,\n configurable: true\n });\n SurveyLiveTester.prototype.testAgain = function () {\n this.setJSON(this.json);\n this.show();\n };\n SurveyLiveTester.prototype.setDefaultLanguageOption = function (opt) {\n var vis = opt === true ||\n opt === \"all\" ||\n (opt === \"auto\" && this.survey.getUsedLocales().length > 1);\n this.koShowDefaultLanguageInTestSurveyTab(vis);\n if (vis) {\n this.updatingLanguages = true;\n this.koLanguages(this.getLanguages(opt !== \"all\" ? this.survey.getUsedLocales() : null));\n this.updatingLanguages = false;\n }\n };\n SurveyLiveTester.prototype.setActivePageItem = function (page, val) {\n var item = this.getPageItemByPage(page);\n if (item) {\n item.koActive(val);\n }\n };\n SurveyLiveTester.prototype.getPageItemByPage = function (page) {\n var items = this.koPages();\n for (var i = 0; i < items.length; i++) {\n if (items[i].page === page)\n return items[i];\n }\n return null;\n };\n SurveyLiveTester.prototype.getLanguages = function (usedLanguages) {\n if (usedLanguages === void 0) { usedLanguages = null; }\n var res = [];\n var locales = !!usedLanguages && usedLanguages.length > 1\n ? usedLanguages\n : survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"surveyLocalization\"].getLocales();\n for (var i = 0; i < locales.length; i++) {\n var loc = locales[i];\n res.push({ value: loc, text: _editorLocalization__WEBPACK_IMPORTED_MODULE_1__[\"editorLocalization\"].getLocaleName(loc) });\n }\n return res;\n };\n SurveyLiveTester.prototype.koEventAfterRender = function (element, survey) {\n survey[\"afterRenderSurvey\"](element);\n };\n SurveyLiveTester.prototype.dispose = function () { };\n return SurveyLiveTester;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"survey-tester\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var creator = params.creator;\n var model = creator.surveyLiveTester || new SurveyLiveTester(creator);\n model.onSurveyCreatedCallback = function (survey) {\n creator.onTestSurveyCreated &&\n creator.onTestSurveyCreated.fire(creator, { survey: survey });\n };\n model.onGetObjectDisplayName = function (obj) {\n return creator.getObjectDisplayName(obj, \"survey-tester\");\n };\n // Test tab updater implicitly depending on observable survey and view type\n var updateTestTab = function (json) {\n if (creator.koViewType() !== \"test\") {\n return;\n }\n var options = {\n showPagesInTestSurveyTab: creator.showPagesInTestSurveyTab,\n showDefaultLanguageInTestSurveyTab: creator.showDefaultLanguageInTestSurveyTab,\n showInvisibleElementsInTestSurveyTab: creator.showInvisibleElementsInTestSurveyTab,\n showSimulatorInTestSurveyTab: creator.showSimulatorInTestSurveyTab,\n };\n model.setJSON(json);\n model.show(options);\n };\n var subscr = creator.koViewType.subscribe(function (viewType) {\n if (viewType === \"test\") {\n updateTestTab(creator.JSON);\n }\n });\n var handler = function (sender, options) { return updateTestTab(options.survey.toJSON()); };\n creator.onDesignerSurveyCreated.add(handler);\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"utils\"].domNodeDisposal.addDisposeCallback(componentInfo.element, function () {\n creator.onDesignerSurveyCreated.remove(handler);\n subscr.dispose();\n model.dispose();\n });\n return model;\n },\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/tabs/translation-group.html\":\n/*!*****************************************!*\\\n !*** ./src/tabs/translation-group.html ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n 0\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/tabs/translation.html\":\n/*!***********************************!*\\\n !*** ./src/tabs/translation.html ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/tabs/translation.scss\":\n/*!***********************************!*\\\n !*** ./src/tabs/translation.scss ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/tabs/translation.ts\":\n/*!*********************************!*\\\n !*** ./src/tabs/translation.ts ***!\n \\*********************************/\n/*! exports provided: TranslationItemBase, TranslationItem, TranslationGroup, Translation, TranslationViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TranslationItemBase\", function() { return TranslationItemBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TranslationItem\", function() { return TranslationItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TranslationGroup\", function() { return TranslationGroup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Translation\", function() { return Translation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TranslationViewModel\", function() { return TranslationViewModel; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! papaparse */ \"./node_modules/papaparse/papaparse.min.js\");\n/* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(papaparse__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../settings */ \"./src/settings.ts\");\n/* harmony import */ var _translation_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./translation.scss */ \"./src/tabs/translation.scss\");\n/* harmony import */ var _translation_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_translation_scss__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _surveyHelper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../surveyHelper */ \"./src/surveyHelper.ts\");\n\n\n\n\n\n\n\n\nvar templateHtml = __webpack_require__(/*! ./translation.html */ \"./src/tabs/translation.html\");\nvar groupTemplateHtml = __webpack_require__(/*! ./translation-group.html */ \"./src/tabs/translation-group.html\");\nvar TranslationItemBase = /** @class */ (function () {\n function TranslationItemBase(name) {\n this.name = name;\n }\n Object.defineProperty(TranslationItemBase.prototype, \"isGroup\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n TranslationItemBase.prototype.fillLocales = function (locales) { };\n TranslationItemBase.prototype.mergeLocaleWithDefault = function (loc) { };\n return TranslationItemBase;\n}());\n\nvar TranslationItem = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TranslationItem, _super);\n function TranslationItem(name, locString, defaultValue, translation, context) {\n if (defaultValue === void 0) { defaultValue = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.locString = locString;\n _this.defaultValue = defaultValue;\n _this.translation = translation;\n _this.context = context;\n _this.koReadOnly = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n if (!!_this.translation) {\n _this.koReadOnly = _this.translation.koReadOnly;\n }\n _this.values = {};\n var self = _this;\n _this.afterRender = function (el, data) {\n if (!!self.translation) {\n self.translation.translateItemAfterRender(self, el, data.locale);\n }\n };\n return _this;\n }\n Object.defineProperty(TranslationItem.prototype, \"text\", {\n get: function () {\n return !!this.customText ? this.customText : this.localizableName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TranslationItem.prototype, \"localizableName\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getPropertyName(this.name);\n },\n enumerable: false,\n configurable: true\n });\n TranslationItem.prototype.getLocText = function (loc) {\n return this.locString.getLocaleText(loc);\n };\n TranslationItem.prototype.setLocText = function (loc, newValue) {\n this.locString.setLocaleText(loc, newValue);\n !!this.translation.tranlationChangedCallback &&\n this.translation.tranlationChangedCallback(loc, this.name, newValue, this.context);\n };\n TranslationItem.prototype.koValue = function (loc) {\n if (!this.values[loc]) {\n var val = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](this.getLocText(loc));\n var self = this;\n val.subscribe(function (newValue) {\n self.setLocText(loc, newValue);\n });\n this.values[loc] = val;\n }\n return this.values[loc];\n };\n TranslationItem.prototype.fillLocales = function (locales) {\n var keys = this.getKeys();\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!!key &&\n locales.indexOf(key) < 0 &&\n key !== survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"LocalizableString\"].defaultLocale) {\n locales.push(key);\n }\n }\n };\n TranslationItem.prototype.getKeys = function () {\n if (this.locString[\"getLocales\"])\n return this.locString[\"getLocales\"]();\n var json = this.locString.getJson();\n if (!json || typeof json === \"string\")\n return [];\n var res = [];\n for (var key in json) {\n res.push(key);\n }\n return res;\n };\n TranslationItem.prototype.mergeLocaleWithDefault = function (loc) {\n var locText = this.locString.getLocaleText(loc);\n if (!locText)\n return;\n this.locString.setLocaleText(\"\", locText);\n this.locString.setLocaleText(loc, null);\n };\n return TranslationItem;\n}(TranslationItemBase));\n\nvar TranslationGroup = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TranslationGroup, _super);\n function TranslationGroup(name, obj, translation, text) {\n if (translation === void 0) { translation = null; }\n if (text === void 0) { text = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.obj = obj;\n _this.translation = translation;\n _this.text = text;\n _this.isRootValue = false;\n if (!_this.text) {\n _this.text = name;\n }\n _this.koExpanded = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n _this.koShowHeader = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n _this.reset();\n return _this;\n }\n Object.defineProperty(TranslationGroup.prototype, \"items\", {\n get: function () {\n return this.itemValues;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TranslationGroup.prototype, \"locItems\", {\n get: function () {\n return this.itemValues.filter(function (item) { return item instanceof TranslationItem; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TranslationGroup.prototype, \"isRoot\", {\n get: function () {\n return this.isRootValue;\n },\n enumerable: false,\n configurable: true\n });\n TranslationGroup.prototype.setAsRoot = function () {\n this.isRootValue = true;\n this.koExpanded(true);\n };\n TranslationGroup.prototype.getItemByName = function (name) {\n for (var i = 0; i < this.itemValues.length; i++) {\n if (this.itemValues[i].name == name)\n return this.itemValues[i];\n }\n return null;\n };\n Object.defineProperty(TranslationGroup.prototype, \"groups\", {\n get: function () {\n return this.itemValues.filter(function (item) { return item instanceof TranslationGroup; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TranslationGroup.prototype, \"isGroup\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TranslationGroup.prototype, \"koLocales\", {\n get: function () {\n return !!this.translation ? this.translation.koLocales : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TranslationGroup.prototype, \"localeCount\", {\n get: function () {\n if (!this.koLocales())\n return 0;\n var locales = this.koLocales();\n var res = 0;\n for (var i = 0; i < locales.length; i++) {\n if (locales[i].koVisible())\n res++;\n }\n return res;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TranslationGroup.prototype, \"locWidth\", {\n get: function () {\n var count = this.localeCount;\n if (count < 2)\n return \"100%\";\n return Math.floor(100 / count).toString() + \"%\";\n },\n enumerable: false,\n configurable: true\n });\n TranslationGroup.prototype.getLocaleName = function (loc) {\n return this.translation\n ? this.translation.getLocaleName(loc)\n : _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getLocaleName(loc);\n };\n TranslationGroup.prototype.reset = function () {\n this.itemValues = [];\n this.fillItems();\n };\n TranslationGroup.prototype.fillLocales = function (locales) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].fillLocales(locales);\n }\n };\n Object.defineProperty(TranslationGroup.prototype, \"showAllStrings\", {\n get: function () {\n return !!this.translation ? this.translation.showAllStrings : true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TranslationGroup.prototype, \"hasItems\", {\n get: function () {\n if (this.locItems.length > 0)\n return true;\n var groups = this.groups;\n for (var i = 0; i < groups.length; i++) {\n if (groups[i].hasItems)\n return true;\n }\n return false;\n },\n enumerable: false,\n configurable: true\n });\n TranslationGroup.prototype.mergeLocaleWithDefault = function (loc) {\n this.itemValues.forEach(function (item) { return item.mergeLocaleWithDefault(loc); });\n };\n TranslationGroup.prototype.fillItems = function () {\n if (this.isItemValueArray(this.obj)) {\n this.createItemValues();\n return;\n }\n if (!this.obj || !this.obj.getType)\n return;\n var properties = this.getLocalizedProperties(this.obj);\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n var item = this.createTranslationItem(this.obj, properties[i]);\n if (!!item) {\n this.itemValues.push(item);\n }\n }\n properties = this.getArrayProperties(this.obj);\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n var value = this.obj[property.name];\n //If ItemValue array?\n if (this.isItemValueArray(value)) {\n var group = new TranslationGroup(property.name, value, this.translation, _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getPropertyName(property.name));\n if (group.hasItems) {\n this.itemValues.push(group);\n }\n }\n else {\n this.createGroups(value, property);\n }\n }\n this.sortItems();\n this.keepOnGroupExpanded();\n };\n TranslationGroup.prototype.keepOnGroupExpanded = function () {\n if (this.items.length == 1 && this.groups.length == 1) {\n var gr = this.groups[0];\n gr.koExpanded(true);\n if (gr.obj.getType() == \"page\") {\n gr.koShowHeader(false);\n }\n }\n };\n TranslationGroup.prototype.expandAll = function () {\n this.expandCollapseAll(true);\n };\n TranslationGroup.prototype.collapseAll = function () {\n this.expandCollapseAll(false);\n };\n TranslationGroup.prototype.expandCollapseAll = function (isExpand) {\n if (!this.isRoot) {\n this.koExpanded(isExpand);\n }\n for (var i = 0; i < this.groups.length; i++) {\n if (isExpand) {\n this.groups[i].expandAll();\n }\n else {\n this.groups[i].collapseAll();\n }\n }\n this.keepOnGroupExpanded();\n };\n TranslationGroup.prototype.sortItems = function () {\n if (!_settings__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].traslation.sortByName)\n return;\n this.itemValues.sort(function (a, b) {\n if (!a.name)\n return -1;\n if (!b.name)\n return 1;\n return a.name.localeCompare(b.name);\n });\n };\n TranslationGroup.prototype.getLocalizedProperties = function (obj) {\n var res = [];\n var properties = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].getPropertiesByObj(obj);\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n if (!property.isSerializable || !property.isLocalizable)\n continue;\n if (property.readOnly || !property.visible)\n continue;\n res.push(property);\n }\n return res;\n };\n TranslationGroup.prototype.getArrayProperties = function (obj) {\n var res = [];\n var properties = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].getPropertiesByObj(obj);\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n if (property.isSerializable === false)\n continue;\n var value = obj[property.name];\n if (!!value && Array.isArray(value) && value.length > 0) {\n res.push(property);\n }\n }\n return res;\n };\n TranslationGroup.prototype.createTranslationItem = function (obj, property) {\n var defaultValue = this.getDefaultValue(obj, property);\n var locStr = obj[property.serializationProperty];\n if (!locStr)\n return null;\n if (!this.showAllStrings && !defaultValue && locStr.isEmpty)\n return null;\n if (!!this.translation && !!this.translation.canShowProperty && !this.translation.canShowProperty(this.obj, property, locStr.isEmpty))\n return null;\n return new TranslationItem(property.name, locStr, defaultValue, this.translation, obj);\n };\n TranslationGroup.prototype.getDefaultValue = function (obj, property) {\n if (property.name == \"title\" &&\n property.isLocalizable &&\n !!property.serializationProperty) {\n var locStr = (obj[property.serializationProperty]);\n if (!!locStr &&\n obj.getType() != \"page\" &&\n (!!locStr.onGetTextCallback || locStr[\"onRenderedHtmlCallback\"]))\n return obj[\"name\"];\n }\n return \"\";\n };\n TranslationGroup.prototype.isItemValueArray = function (val) {\n return (!!val &&\n Array.isArray(val) &&\n val.length > 0 &&\n !!val[0] &&\n !!val[0][\"getType\"] &&\n !!val[0][\"setData\"] &&\n !!val[0][\"setLocText\"]);\n };\n TranslationGroup.prototype.createGroups = function (value, property) {\n for (var i = 0; i < value.length; i++) {\n var obj = value[i];\n if (!!obj && obj.getType) {\n var name = obj[\"name\"];\n var text = _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getPropertyName(name);\n if (!name) {\n var index = \"[\" + i.toString() + \"]\";\n name = property.name + index;\n text = _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getPropertyName(property.name) + index;\n }\n var group = new TranslationGroup(name, obj, this.translation, text);\n if (group.hasItems) {\n this.itemValues.push(group);\n }\n }\n }\n };\n TranslationGroup.prototype.createItemValues = function () {\n for (var i = 0; i < this.obj.length; i++) {\n var val = this.obj[i];\n var canAdd = this.showAllStrings || !val.locText.isEmpty || isNaN(val.value);\n if (!canAdd)\n continue;\n var item = new TranslationItem(val.value, val.locText, val.value, this.translation, val);\n this.itemValues.push(item);\n this.addCustomPropertiesForItemValue(this.obj[i], item);\n }\n };\n TranslationGroup.prototype.addCustomPropertiesForItemValue = function (itemValue, textItem) {\n var locProperties = this.getLocalizedProperties(itemValue);\n for (var i = 0; i < locProperties.length; i++) {\n if (locProperties[i].name == \"text\")\n continue;\n var item = this.createTranslationItem(itemValue, locProperties[i]);\n if (!!item) {\n item.customText = textItem.text + \" (\" + item.localizableName + \")\";\n item.name = itemValue.value + \".\" + item.name;\n this.itemValues.push(item);\n }\n }\n };\n return TranslationGroup;\n}(TranslationItemBase));\n\nvar Translation = /** @class */ (function () {\n function Translation(survey, showAllStrings, koReadOnly, onCanShowProperty, onLocaleSelected) {\n var _this = this;\n if (showAllStrings === void 0) { showAllStrings = false; }\n if (koReadOnly === void 0) { koReadOnly = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () { return false; }); }\n this.koReadOnly = koReadOnly;\n this.onCanShowProperty = onCanShowProperty;\n this.onLocaleSelected = onLocaleSelected;\n /**\n * The list of toolbar items. You may add/remove/replace them.\n * @see IAction\n */\n this.toolbarItems = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n this.koLocales = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]([\n {\n locale: \"\",\n koVisible: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true),\n koEnabled: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true),\n },\n ]);\n this.koRoot = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n this.koShowAllStrings = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](showAllStrings);\n this.koIsEmpty = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true);\n this.koAvailableLanguages = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]();\n this.koSelectedLanguageToAdd = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](null);\n this.koFilteredPage = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"]();\n this.koCanMergeLocaleWithDefault = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](false);\n this.koMergeLocaleWithDefaultText = knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () {\n if (!this.koCanMergeLocaleWithDefault())\n return \"\";\n var locText = this.getLocaleName(this.defaultLocale);\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"ed.translationMergeLocaleWithDefault\")[\"format\"](locText);\n }, this);\n this.koFilteredPages = knockout__WEBPACK_IMPORTED_MODULE_1__[\"observableArray\"]([\n {\n value: null,\n text: this.showAllPagesText,\n },\n ]);\n var self = this;\n this.koSelectedLanguageToAdd.subscribe(function (newValue) {\n if (!!newValue) {\n self.addLocale(newValue);\n }\n });\n this.koShowAllStrings.subscribe(function (newValue) {\n self.reset();\n });\n this.koFilteredPage.subscribe(function (newValue) {\n self.reset();\n });\n this.koExportToCSVFile = function () {\n self.exportToSCVFile(\"survey_translation.csv\");\n };\n this.koImportFromCSVFile = function (el) {\n if (el.files.length < 1)\n return;\n self.importFromCSVFile(el.files[0]);\n el.value = \"\";\n };\n this.koMergeLocaleWithDefault = function () {\n self.mergeLocaleWithDefault();\n };\n this.survey = survey;\n var items = [];\n items.push({\n id: \"svd-translation-language-selector\",\n title: \"\",\n tooltip: this.selectLanguageOptionsCaption,\n ariaLabel: this.selectLanguageOptionsCaption,\n component: \"svd-dropdown\",\n action: knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"]({\n read: function () { return _this.koSelectedLanguageToAdd(); },\n write: function (val) { return _this.koSelectedLanguageToAdd(val); },\n }),\n items: this.koAvailableLanguages,\n });\n items.push({\n id: \"svd-translation-show-all-strings\",\n title: this.showAllStringsText,\n tooltip: this.showAllStringsText,\n component: \"svd-boolean\",\n action: knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"]({\n read: function () { return _this.koShowAllStrings(); },\n write: function (val) { return _this.koShowAllStrings(val); },\n }),\n });\n items.push({\n id: \"svd-translation-pages-selector\",\n title: \"\",\n tooltip: \"\",\n ariaLabel: this.showAllPagesText,\n component: \"svd-dropdown\",\n action: knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"]({\n read: function () { return _this.koFilteredPage(); },\n write: function (val) { return _this.koFilteredPage(val); },\n }),\n items: this.koFilteredPages,\n });\n this.toolbarItems(items);\n }\n Object.defineProperty(Translation.prototype, \"survey\", {\n get: function () {\n return this.surveyValue;\n },\n set: function (val) {\n this.surveyValue = val;\n this.updateFilteredPages();\n this.reset();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Translation.prototype, \"root\", {\n get: function () {\n return this.rootValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Translation.prototype, \"filteredPage\", {\n get: function () {\n return this.koFilteredPage();\n },\n set: function (val) {\n this.koFilteredPage(val);\n },\n enumerable: false,\n configurable: true\n });\n Translation.prototype.reset = function () {\n var rootObj = !!this.filteredPage ? this.filteredPage : this.survey;\n var rootName = !!this.filteredPage ? rootObj[\"name\"] : \"survey\";\n this.rootValue = new TranslationGroup(rootName, rootObj, this);\n this.root.setAsRoot();\n this.root.reset();\n this.resetLocales();\n this.koIsEmpty(!this.root.hasItems);\n this.koRoot(this.root);\n };\n Object.defineProperty(Translation.prototype, \"locales\", {\n get: function () {\n var res = [];\n var locales = this.koLocales();\n for (var i = 0; i < locales.length; i++) {\n res.push(locales[i].locale);\n }\n return res;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Translation.prototype, \"defaultLocale\", {\n get: function () {\n return survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"surveyLocalization\"].defaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n Translation.prototype.getLocaleName = function (loc) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getLocaleName(loc, this.defaultLocale);\n };\n Translation.prototype.hasLocale = function (locale) {\n var locales = this.koLocales();\n for (var i = 0; i < locales.length; i++) {\n if (locales[i].locale == locale)\n return true;\n }\n return false;\n };\n Translation.prototype.addLocale = function (locale) {\n if (!this.hasLocale(locale)) {\n var locs = this.locales;\n locs.push(locale);\n this.setLocales(locs);\n }\n };\n Translation.prototype.resetLocales = function () {\n var locales = [\"\"];\n this.root.fillLocales(locales);\n this.setLocales(locales);\n };\n Translation.prototype.getSelectedLocales = function () {\n var res = [];\n var locs = this.koLocales();\n for (var i = 0; i < locs.length; i++) {\n if (locs[i].koVisible())\n res.push(locs[i].locale);\n }\n return res;\n };\n Translation.prototype.setSelectedLocales = function (selectedLocales) {\n selectedLocales = selectedLocales || [];\n for (var i = 0; i < selectedLocales.length; i++) {\n if (!this.hasLocale(selectedLocales[i])) {\n this.addLocale(selectedLocales[i]);\n }\n }\n var res = [];\n var locs = this.koLocales();\n for (var i = 0; i < locs.length; i++) {\n var enabled = this.isLocaleEnabled(locs[i].locale);\n locs[i].koVisible(enabled && selectedLocales.indexOf(locs[i].locale) > -1);\n locs[i].koEnabled(enabled);\n }\n return res;\n };\n Object.defineProperty(Translation.prototype, \"selectLanguageOptionsCaption\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"ed.translationAddLanguage\");\n },\n enumerable: false,\n configurable: true\n });\n Translation.prototype.canShowProperty = function (obj, prop, isEmpty) {\n var result = !isEmpty || !this.onCanShowProperty || this.onCanShowProperty(obj, prop);\n return this.translationStringVisibilityCallback ? this.translationStringVisibilityCallback(obj, prop.name, result) : result;\n };\n Object.defineProperty(Translation.prototype, \"showAllStrings\", {\n get: function () {\n return this.koShowAllStrings();\n },\n set: function (val) {\n this.koShowAllStrings(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Translation.prototype, \"showAllStringsText\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"ed.translationShowAllStrings\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Translation.prototype, \"showAllPagesText\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"ed.translationShowAllPages\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Translation.prototype, \"noStringsText\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"ed.translationNoStrings\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Translation.prototype, \"exportToCSVText\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"ed.translationExportToSCVButton\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Translation.prototype, \"importFromCSVText\", {\n get: function () {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getString(\"ed.translationImportFromSCVButton\");\n },\n enumerable: false,\n configurable: true\n });\n Translation.prototype.exportToCSV = function () {\n var res = [];\n var headerRow = [];\n var visibleLocales = this.getVisibleLocales();\n headerRow.push(\"description ↓ - language →\");\n for (var i = 0; i < visibleLocales.length; i++) {\n headerRow.push(!!visibleLocales[i] ? visibleLocales[i] : \"default\");\n }\n res.push(headerRow);\n var itemsHash = {};\n this.fillItemsHash(\"\", this.root, itemsHash);\n for (var key in itemsHash) {\n var row = [key];\n var item = itemsHash[key];\n for (var i = 0; i < visibleLocales.length; i++) {\n var val = item.locString.getLocaleText(visibleLocales[i]);\n row.push(!val && i == 0 ? item.defaultValue : val);\n }\n res.push(row);\n }\n var prefix = _settings__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].traslation.exportPrefix;\n if (!prefix)\n prefix = \"\";\n return (prefix +\n Object(papaparse__WEBPACK_IMPORTED_MODULE_3__[\"unparse\"])(res, {\n quoteChar: '\"',\n escapeChar: '\"',\n delimiter: Translation.csvDelimiter,\n header: true,\n newline: Translation.newLineDelimiter,\n skipEmptyLines: false,\n columns: null, //or array of strings\n }));\n };\n Translation.prototype.importFromNestedArray = function (rows) {\n var self = this;\n var locales = rows.shift().slice(1);\n if (locales[0] === \"default\") {\n locales[0] = \"\";\n }\n var translation = new Translation(this.survey, true);\n var itemsHash = {};\n this.fillItemsHash(\"\", translation.root, itemsHash);\n rows.forEach(function (row) {\n var name = row.shift().trim();\n if (!name)\n return;\n var item = itemsHash[name];\n if (!item)\n return;\n self.updateItemWithStrings(item, row, locales);\n });\n this.reset();\n if (this.importFinishedCallback)\n this.importFinishedCallback();\n };\n Translation.prototype.exportToSCVFile = function (fileName) {\n var data = this.exportToCSV();\n var blob = new Blob([data], { type: \"text/csv\" });\n if (window.navigator[\"msSaveOrOpenBlob\"]) {\n window.navigator[\"msSaveBlob\"](blob, fileName);\n }\n else {\n var elem = window.document.createElement(\"a\");\n elem.href = window.URL.createObjectURL(blob);\n elem.download = fileName;\n document.body.appendChild(elem);\n elem.click();\n document.body.removeChild(elem);\n }\n };\n Translation.prototype.importFromCSVFile = function (file) {\n var self = this;\n Object(papaparse__WEBPACK_IMPORTED_MODULE_3__[\"parse\"])(file, {\n complete: function (results, file) {\n self.importFromNestedArray(results.data);\n },\n });\n };\n Translation.prototype.mergeLocaleWithDefault = function () {\n if (!this.hasLocale(this.defaultLocale))\n return;\n this.root.mergeLocaleWithDefault(this.defaultLocale);\n this.koLocales([\n {\n locale: \"\",\n koVisible: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true),\n koEnabled: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](true),\n },\n ]);\n this.reset();\n };\n Translation.prototype.expandAll = function () {\n if (!this.root)\n return;\n this.root.expandAll();\n };\n Translation.prototype.collapseAll = function () {\n if (!this.root)\n return;\n this.root.collapseAll();\n };\n Translation.prototype.translateItemAfterRender = function (item, el, locale) {\n if (!this.translateItemAfterRenderCallback)\n return;\n if (Array.isArray(el)) {\n for (var i = 0; i < el.length; i++) {\n if (el[i].tagName == \"TEXTAREA\") {\n el = el[i];\n break;\n }\n }\n }\n this.translateItemAfterRenderCallback(item, el, locale);\n };\n /**\n * Update a translation item with given values\n */\n Translation.prototype.updateItemWithStrings = function (item, values, locales) {\n for (var i = 0; i < values.length && i < locales.length; i++) {\n var val = values[i].trim();\n if (!val)\n continue;\n item.koValue(locales[i])(val);\n }\n };\n Translation.prototype.getVisibleLocales = function () {\n return this.koLocales()\n .filter(function (locale) { return locale.koVisible(); })\n .map(function (locale) { return locale.locale; });\n };\n Translation.prototype.fillItemsHash = function (parentName, group, itemsHash) {\n var _this = this;\n var name = parentName ? parentName + \".\" + group.name : group.name;\n group.locItems.forEach(function (item) {\n itemsHash[name + \".\" + item.name] = item;\n });\n group.groups.forEach(function (group) { return _this.fillItemsHash(name, group, itemsHash); });\n };\n Translation.prototype.setLocales = function (locs) {\n var locales = this.koLocales();\n for (var i = 0; i < locs.length; i++) {\n var loc = locs[i];\n if (this.hasLocale(loc))\n continue;\n var enabled = this.isLocaleEnabled(loc);\n var selected = enabled && (!this.onLocaleSelected || this.onLocaleSelected(loc));\n locales.push({\n locale: loc,\n koVisible: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](selected),\n koEnabled: knockout__WEBPACK_IMPORTED_MODULE_1__[\"observable\"](enabled),\n });\n }\n this.koLocales(locales);\n this.koCanMergeLocaleWithDefault(this.hasLocale(this.defaultLocale));\n this.updateAvailableTranlations();\n };\n Translation.prototype.isLocaleEnabled = function (locale) {\n if (!locale)\n return true;\n var supported = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"surveyLocalization\"].supportedLocales;\n if (!supported || supported.length <= 0)\n return true;\n return supported.indexOf(locale) > -1;\n };\n Translation.prototype.updateAvailableTranlations = function () {\n var res = [];\n var locales = survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"surveyLocalization\"].getLocales(true);\n for (var i = 0; i < locales.length; i++) {\n var loc = locales[i];\n if (!loc)\n continue;\n if (this.hasLocale(loc))\n continue;\n if (loc == this.defaultLocale)\n continue;\n res.push({ value: loc, text: _editorLocalization__WEBPACK_IMPORTED_MODULE_4__[\"editorLocalization\"].getLocaleName(loc) });\n }\n this.koSelectedLanguageToAdd(null);\n res.unshift({ value: null, text: this.selectLanguageOptionsCaption });\n this.koAvailableLanguages(res);\n !!this.availableTranlationsChangedCallback &&\n this.availableTranlationsChangedCallback();\n };\n Translation.prototype.updateFilteredPages = function () {\n var res = [{ value: null, text: this.showAllPagesText }];\n for (var i = 0; i < this.survey.pages.length; i++) {\n var page = this.survey.pages[i];\n res.push({ value: page, text: page.name });\n }\n this.koFilteredPages(res);\n };\n Translation.prototype.dispose = function () {\n this.importFinishedCallback = undefined;\n this.availableTranlationsChangedCallback = undefined;\n this.tranlationChangedCallback = undefined;\n };\n Translation.csvDelimiter = \",\";\n Translation.newLineDelimiter = \"\\n\";\n return Translation;\n}());\n\nvar TranslationViewModel = /** @class */ (function () {\n function TranslationViewModel(creator) {\n this.model = new Translation(creator.survey, false, knockout__WEBPACK_IMPORTED_MODULE_1__[\"computed\"](function () { return creator.readOnly; }), function (obj, prop) {\n return _surveyHelper__WEBPACK_IMPORTED_MODULE_7__[\"SurveyHelper\"].isPropertyVisible(obj, prop, creator);\n }, function (locale) {\n var options = { locale: locale, isSelected: true };\n creator.onTranslationLocaleInitiallySelected.fire(creator, options);\n return options.isSelected;\n });\n this.model.translationStringVisibilityCallback = function (obj, propertyName, visible) {\n var options = { obj: obj, propertyName: propertyName, visible: visible };\n !creator.onTranslationStringVisibility.isEmpty && creator.onTranslationStringVisibility.fire(creator, options);\n return options.visible;\n };\n this.model.importFinishedCallback = function () {\n creator.onTranslationImported.fire(creator, {});\n };\n this.model.translateItemAfterRenderCallback = function (item, el, locale) {\n if (creator.onTranslateItemAfterRender.isEmpty)\n return;\n var options = {\n item: item,\n htmlElement: el,\n locale: locale,\n onDestroyCallback: undefined,\n };\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"utils\"].domNodeDisposal.addDisposeCallback(el, function () {\n if (!!options.onDestroyCallback) {\n options.onDestroyCallback();\n }\n });\n creator.onTranslateItemAfterRender.fire(creator, options);\n };\n this.model.availableTranlationsChangedCallback = function () {\n creator.setModified({ type: \"TRANSLATIONS_CHANGED\" });\n };\n this.model.tranlationChangedCallback = function (locale, name, value, context) {\n creator.setModified({\n type: \"TRANSLATIONS_CHANGED\",\n locale: locale,\n name: name,\n value: value,\n context: context,\n });\n };\n this.model.reset();\n }\n return TranslationViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_1__[\"components\"].register(\"survey-translation\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var creator = params.creator;\n var viewModel = new TranslationViewModel(creator);\n var subscrViewType = creator.koViewType.subscribe(function (viewType) {\n if (viewType === \"translation\") {\n viewModel.model.survey = creator.survey;\n }\n });\n knockout__WEBPACK_IMPORTED_MODULE_1__[\"utils\"].domNodeDisposal.addDisposeCallback(componentInfo.element, function () {\n subscrViewType.dispose();\n creator.translation.dispose();\n creator.translation = undefined;\n });\n creator.translation = viewModel.model;\n return viewModel.model;\n },\n },\n template: templateHtml,\n});\nknockout__WEBPACK_IMPORTED_MODULE_1__[\"components\"].register(\"svd-translation-group\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.model;\n return model;\n },\n },\n template: groupTemplateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/templates/convert-action.html\":\n/*!*******************************************!*\\\n !*** ./src/templates/convert-action.html ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/templates/design-surface.html\":\n/*!*******************************************!*\\\n !*** ./src/templates/design-surface.html ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\\n\\n\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/templates/index.html\":\n/*!**********************************!*\\\n !*** ./src/templates/index.html ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n Please purchase a SurveyJS Creator developer license to use it\\n in your app.\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/templates/propertyEditors/propertyeditor-triggersitems.html\":\n/*!*************************************************************************!*\\\n !*** ./src/templates/propertyEditors/propertyeditor-triggersitems.html ***!\n \\*************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/templates/questionEditors/questioneditor.html\":\n/*!***********************************************************!*\\\n !*** ./src/templates/questionEditors/questioneditor.html ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/templates/tabs.html\":\n/*!*********************************!*\\\n !*** ./src/templates/tabs.html ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/templates/toolbar.html\":\n/*!************************************!*\\\n !*** ./src/templates/toolbar.html ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/textWorker.ts\":\n/*!***************************!*\\\n !*** ./src/textWorker.ts ***!\n \\***************************/\n/*! exports provided: SurveyTextWorker */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyTextWorker\", function() { return SurveyTextWorker; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./src/entries/helpers.ts\");\n/* harmony import */ var _json5__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./json5 */ \"./src/json5.ts\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar SurveyForTextWorker = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SurveyForTextWorker, _super);\n function SurveyForTextWorker(jsonObj) {\n return _super.call(this, jsonObj) || this;\n }\n Object.defineProperty(SurveyForTextWorker.prototype, \"isDesignMode\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n return SurveyForTextWorker;\n}(survey_knockout__WEBPACK_IMPORTED_MODULE_2__[\"Survey\"]));\nvar SurveyTextWorker = /** @class */ (function () {\n function SurveyTextWorker(text) {\n this.text = text;\n if (!this.text || this.text.trim() == \"\") {\n this.text = \"{}\";\n }\n this.errors = [];\n this.process();\n }\n Object.defineProperty(SurveyTextWorker.prototype, \"survey\", {\n get: function () {\n return this.surveyValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SurveyTextWorker.prototype, \"isJsonCorrect\", {\n get: function () {\n return this.surveyValue != null;\n },\n enumerable: false,\n configurable: true\n });\n SurveyTextWorker.prototype.process = function () {\n try {\n this.jsonValue = new _json5__WEBPACK_IMPORTED_MODULE_1__[\"SurveyJSON5\"](1).parse(this.text);\n }\n catch (error) {\n this.errors.push({\n pos: { start: error.at, end: -1 },\n text: error.message\n });\n }\n if (this.jsonValue != null) {\n this.updateJsonPositions(this.jsonValue);\n var pureJsonValue = new _json5__WEBPACK_IMPORTED_MODULE_1__[\"SurveyJSON5\"]().parse(this.text);\n this.surveyValue = new SurveyForTextWorker(pureJsonValue);\n if (this.surveyValue.jsonErrors != null) {\n for (var i = 0; i < this.surveyValue.jsonErrors.length; i++) {\n var error = this.surveyValue.jsonErrors[i];\n this.errors.push({\n pos: { start: error.at, end: -1 },\n text: error.getFullDescription()\n });\n }\n }\n }\n this.surveyObjects = this.createSurveyObjects();\n this.setEditorPositionByChartAt(this.surveyObjects);\n this.setEditorPositionByChartAt(this.errors);\n };\n SurveyTextWorker.prototype.updateJsonPositions = function (jsonObj) {\n jsonObj[\"pos\"][\"self\"] = jsonObj;\n for (var key in jsonObj) {\n var obj = jsonObj[key];\n if (obj && obj[\"pos\"]) {\n jsonObj[\"pos\"][key] = obj[\"pos\"];\n this.updateJsonPositions(obj);\n }\n }\n };\n SurveyTextWorker.prototype.createSurveyObjects = function () {\n var result = [];\n if (this.surveyValue == null)\n return result;\n for (var i = 0; i < this.surveyValue.pages.length; i++) {\n var page = this.surveyValue.pages[i];\n if (i == 0 && !page[\"pos\"]) {\n page[\"pos\"] = this.surveyValue[\"pos\"];\n }\n result.push(page);\n for (var j = 0; j < page.questions.length; j++) {\n result.push(page.questions[j]);\n }\n }\n return result;\n };\n SurveyTextWorker.prototype.setEditorPositionByChartAt = function (objects) {\n if (objects == null || objects.length == 0)\n return;\n var position = { row: 0, column: 0 };\n var atObjectsArray = this.getAtArray(objects);\n var startAt = 0;\n for (var i = 0; i < atObjectsArray.length; i++) {\n var at = atObjectsArray[i].at;\n position = this.getPostionByChartAt(position, startAt, at);\n var obj = atObjectsArray[i].obj;\n if (!obj.position)\n obj.position = {};\n if (at == obj.pos.start) {\n obj.position.start = position;\n }\n else {\n if (at == obj.pos.end) {\n obj.position.end = position;\n }\n }\n startAt = at;\n }\n };\n SurveyTextWorker.prototype.getPostionByChartAt = function (startPosition, startAt, at) {\n var result = { row: startPosition.row, column: startPosition.column };\n var curChar = startAt;\n while (curChar < at) {\n if (this.text.charAt(curChar) == SurveyTextWorker.newLineChar) {\n result.row++;\n result.column = 0;\n }\n else {\n result.column++;\n }\n curChar++;\n }\n return result;\n };\n SurveyTextWorker.prototype.getAtArray = function (objects) {\n var result = [];\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n var pos = obj.pos;\n if (!pos)\n continue;\n result.push({ at: pos.start, obj: obj });\n if (pos.end > 0) {\n result.push({ at: pos.end, obj: obj });\n }\n }\n return result.sort(function (el1, el2) {\n if (el1.at > el2.at)\n return 1;\n if (el1.at < el2.at)\n return -1;\n return 0;\n });\n };\n return SurveyTextWorker;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/toolbox.ts\":\n/*!************************!*\\\n !*** ./src/toolbox.ts ***!\n \\************************/\n/*! exports provided: QuestionToolbox */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionToolbox\", function() { return QuestionToolbox; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./editorLocalization */ \"./src/editorLocalization.ts\");\n\n\n\n/**\n * The list of Toolbox items.\n */\nvar QuestionToolbox = /** @class */ (function () {\n function QuestionToolbox(supportedQuestions, creator) {\n if (supportedQuestions === void 0) { supportedQuestions = null; }\n if (creator === void 0) { creator = null; }\n this.creator = creator;\n this._orderedQuestions = [\n \"text\",\n \"checkbox\",\n \"radiogroup\",\n \"dropdown\",\n \"comment\",\n \"rating\",\n \"ranking\",\n \"imagepicker\",\n \"boolean\",\n \"image\",\n \"html\",\n \"signaturepad\",\n ];\n this._questionDefaultSettings = {\n imagepicker: function () {\n return {\n choices: [\n {\n value: \"lion\",\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/lion.jpg\",\n },\n {\n value: \"giraffe\",\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/giraffe.jpg\",\n },\n {\n value: \"panda\",\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/panda.jpg\",\n },\n {\n value: \"camel\",\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/camel.jpg\",\n },\n ],\n };\n },\n image: function () {\n return {\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/lion.jpg\",\n };\n },\n };\n /**\n * The maximum number of copied toolbox items. If an user adding copiedItemMaxCount + 1 item, the first added item will be removed.\n */\n this.copiedItemMaxCount = 3;\n this.allowExpandMultipleCategoriesValue = false;\n this.keepAllCategoriesExpandedValue = false;\n this.itemsValue = [];\n this.koItems = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n this.koCategories = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observableArray\"]();\n this.koActiveCategory = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](\"\");\n this.koHasCategories = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](false);\n this.koCanCollapseCategories = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.createDefaultItems(supportedQuestions);\n var self = this;\n this.koActiveCategory.subscribe(function (newValue) {\n for (var i = 0; i < self.koCategories().length; i++) {\n var category = self.koCategories()[i];\n category.koCollapsed(category.name !== newValue);\n }\n });\n }\n Object.defineProperty(QuestionToolbox.prototype, \"orderedQuestions\", {\n /**\n * Modify this array to change the toolbox items order.\n */\n get: function () {\n return this._orderedQuestions;\n },\n set: function (questions) {\n this._orderedQuestions = questions;\n this.reorderItems();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionToolbox.prototype, \"jsonText\", {\n /**\n * The Array of Toolbox items as Text JSON.\n */\n get: function () {\n return JSON.stringify(this.itemsValue);\n },\n set: function (value) {\n this.itemsValue = value ? JSON.parse(value) : [];\n this.onItemsChanged();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionToolbox.prototype, \"copiedJsonText\", {\n /**\n * The Array of copied Toolbox items as Text JSON.\n */\n get: function () {\n return JSON.stringify(this.copiedItems);\n },\n set: function (value) {\n var newItems = value ? JSON.parse(value) : [];\n this.clearCopiedItems();\n for (var i = 0; i < newItems.length; i++) {\n newItems[i].isCopied = true;\n this.addItem(newItems[i]);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionToolbox.prototype, \"items\", {\n /**\n * The Array of Toolbox items.\n */\n get: function () {\n return this.itemsValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionToolbox.prototype, \"itemNames\", {\n get: function () {\n var res = [];\n for (var i = 0; i < this.items.length; i++) {\n res.push(this.items[i].name);\n }\n return res;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionToolbox.prototype, \"copiedItems\", {\n /**\n * The Array of copied Toolbox items\n */\n get: function () {\n var result = [];\n for (var i = 0; i < this.itemsValue.length; i++) {\n if (this.itemsValue[i].isCopied)\n result.push(this.itemsValue[i]);\n }\n return result;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Add toolbox items into the Toolbox\n * @param items the list of new items\n * @param clearAll set it to true to clear all previous items.\n */\n QuestionToolbox.prototype.addItems = function (items, clearAll) {\n if (clearAll === void 0) { clearAll = false; }\n if (clearAll) {\n this.clearItems();\n }\n for (var i = 0; i < items.length; i++) {\n this.itemsValue.push(items[i]);\n }\n this.onItemsChanged();\n };\n /**\n * Add a copied Question into Toolbox\n * @param question a copied Survey.Question\n * @param options a json object that allows you to override question properties. Attributes are: name, title, tooltip, isCopied, iconName, json and category.\n */\n QuestionToolbox.prototype.addCopiedItem = function (question, options) {\n if (options === void 0) { options = null; }\n if (!options)\n options = {};\n var name = !!options.name ? options.name : question.name;\n var title = !!options.title ? options.title : name;\n var tooltip = !!options.tooltip ? options.tooltip : title;\n var item = {\n id: name,\n name: name,\n title: title,\n tooltip: tooltip,\n isCopied: options.isCopied !== false,\n iconName: !!options.iconName ? options.iconName : \"icon-default\",\n json: !!options.json ? options.json : this.getQuestionJSON(question),\n category: !!options.category ? options.category : \"\",\n };\n if (this.replaceItem(item))\n return;\n var copied = this.copiedItems;\n if (this.copiedItemMaxCount > 0 && copied.length == this.copiedItemMaxCount)\n this.removeItem(copied[this.copiedItemMaxCount - 1].name);\n this.addItem(item);\n };\n /**\n * Add a toolbox item\n * @param item the toolbox item description\n * @param index the toolbox index to place the item, the item is added to the end if index not passed\n * @see IQuestionToolboxItem\n */\n QuestionToolbox.prototype.addItem = function (item, index) {\n this.correctItem(item);\n if (index === undefined) {\n this.itemsValue.push(item);\n }\n else {\n this.itemsValue.splice(index, 0, item);\n }\n this.onItemsChanged();\n };\n QuestionToolbox.prototype.correctItem = function (item) {\n if (!item.title)\n item.title = item.name;\n if (!item.tooltip)\n item.tooltip = item.title;\n };\n /**\n * Add a new toolbox item, add delete the old item with the same name\n * @param item the toolbox item description\n * @see IQuestionToolboxItem\n */\n QuestionToolbox.prototype.replaceItem = function (item) {\n this.correctItem(item);\n var index = this.indexOf(item.name);\n if (index < 0)\n return;\n this.itemsValue[index] = item;\n this.onItemsChanged();\n return true;\n };\n /**\n * Remove a toolbox item by its name\n * @param name toolbox item name\n * @see IQuestionToolboxItem\n */\n QuestionToolbox.prototype.removeItem = function (name) {\n var index = this.indexOf(name);\n if (index < 0)\n return false;\n this.itemsValue.splice(index, 1);\n this.onItemsChanged();\n return true;\n };\n /**\n * Remove all toolbox items.\n */\n QuestionToolbox.prototype.clearItems = function () {\n this.itemsValue = [];\n this.onItemsChanged();\n };\n /**\n * Remove all copied toolbox items.\n */\n QuestionToolbox.prototype.clearCopiedItems = function () {\n var removedItems = this.copiedItems;\n for (var i = 0; i < removedItems.length; i++) {\n this.removeItem(removedItems[i].name);\n }\n };\n /**\n * Returns toolbox item by its name. Returns null if there is no toolbox item with this name\n * @param name\n */\n QuestionToolbox.prototype.getItemByName = function (name) {\n var index = this.indexOf(name);\n return index > -1 ? this.itemsValue[index] : null;\n };\n Object.defineProperty(QuestionToolbox.prototype, \"allowExpandMultipleCategories\", {\n /**\n * Set it to true, to allow end-user to expand more than one category. There will no active category in this case\n * @see activeCategory\n */\n get: function () {\n return this.allowExpandMultipleCategoriesValue;\n },\n set: function (val) {\n this.allowExpandMultipleCategoriesValue = val;\n this.updateCategoriesState();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionToolbox.prototype, \"keepAllCategoriesExpanded\", {\n /**\n * Set it to true to expand all categories and hide expand/collapse category buttons\n */\n get: function () {\n return this.keepAllCategoriesExpandedValue;\n },\n set: function (val) {\n this.keepAllCategoriesExpandedValue = val;\n this.koCanCollapseCategories(!this.keepAllCategoriesExpanded);\n this.updateCategoriesState();\n },\n enumerable: false,\n configurable: true\n });\n QuestionToolbox.prototype.updateCategoriesState = function () {\n var noActive = this.allowExpandMultipleCategories || this.keepAllCategoriesExpanded;\n if (noActive) {\n this.activeCategory = \"\";\n if (this.keepAllCategoriesExpanded) {\n this.expandAllCategories();\n }\n }\n else {\n if (this.koCategories().length > 0) {\n this.activeCategory = this.koCategories()[0].name;\n }\n }\n };\n /**\n * Change the category of the toolbox item\n * @param name the toolbox item name\n * @param category new category name\n */\n QuestionToolbox.prototype.changeCategory = function (name, category) {\n this.changeCategories([{ name: name, category: category }]);\n };\n /**\n * Change categories for several toolbox items.\n * @param changedItems the array of objects {name: \"your toolbox item name\", category: \"new category name\"}\n */\n QuestionToolbox.prototype.changeCategories = function (changedItems) {\n for (var i = 0; i < changedItems.length; i++) {\n var item = changedItems[i];\n var toolboxItem = this.getItemByName(item.name);\n if (toolboxItem) {\n toolboxItem.category = item.category;\n }\n }\n this.onItemsChanged();\n };\n Object.defineProperty(QuestionToolbox.prototype, \"activeCategory\", {\n /**\n * Set and get and active category. This property doesn't work if allowExpandMultipleCategories is true. Its default value is empty.\n * @see allowExpandMultipleCategories\n * @see expandCategory\n * @see collapseCategory\n */\n get: function () {\n return this.koActiveCategory();\n },\n set: function (val) {\n this.koActiveCategory(val);\n },\n enumerable: false,\n configurable: true\n });\n QuestionToolbox.prototype.doCategoryClick = function (categoryName) {\n if (this.keepAllCategoriesExpanded)\n return;\n if (this.allowExpandMultipleCategories) {\n var category = this.getCategoryByName(categoryName);\n if (category) {\n category.koCollapsed(!category.koCollapsed());\n }\n }\n else {\n this.activeCategory = categoryName;\n }\n };\n /**\n * Expand a category by its name. If allowExpandMultipleCategories is false (default value), all other categories become collapsed\n * @param categoryName the category name\n * @see allowExpandMultipleCategories\n * @see collapseCategory\n */\n QuestionToolbox.prototype.expandCategory = function (categoryName) {\n if (this.allowExpandMultipleCategories) {\n var category = this.getCategoryByName(categoryName);\n if (category) {\n category.koCollapsed(false);\n }\n }\n else {\n this.activeCategory = categoryName;\n }\n };\n /**\n * Collapse a category by its name. If allowExpandMultipleCategories is false (default value) this function does nothing\n * @param categoryName the category name\n * @see allowExpandMultipleCategories\n */\n QuestionToolbox.prototype.collapseCategory = function (categoryName) {\n if (!this.allowExpandMultipleCategories)\n return;\n var category = this.getCategoryByName(categoryName);\n if (category) {\n category.koCollapsed(true);\n }\n };\n /**\n * Expand all categories. If allowExpandMultipleCategories is false (default value) this function does nothing\n * @see allowExpandMultipleCategories\n */\n QuestionToolbox.prototype.expandAllCategories = function () {\n this.expandCollapseAllCategories(false);\n };\n /**\n * Collapse all categories. If allowExpandMultipleCategories is false (default value) this function does nothing\n * @see allowExpandMultipleCategories\n */\n QuestionToolbox.prototype.collapseAllCategories = function () {\n this.expandCollapseAllCategories(true);\n };\n QuestionToolbox.prototype.expandCollapseAllCategories = function (isCollapsed) {\n var categories = this.koCategories();\n for (var i = 0; i < categories.length; i++) {\n categories[i].koCollapsed(isCollapsed);\n }\n };\n QuestionToolbox.prototype.getCategoryByName = function (categoryName) {\n var categories = this.koCategories();\n for (var i = 0; i < categories.length; i++) {\n var category = categories[i];\n if (category.name === categoryName)\n return category;\n }\n return null;\n };\n QuestionToolbox.prototype.onItemsChanged = function () {\n this.koItems([]);\n this.koItems(this.itemsValue);\n var categories = [];\n var categoriesHash = {};\n var prevActiveCategory = this.koActiveCategory();\n var self = this;\n for (var i = 0; i < this.itemsValue.length; i++) {\n var item = this.itemsValue[i];\n var categoryName = item.category\n ? item.category\n : _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"ed.toolboxGeneralCategory\");\n if (!categoriesHash[categoryName]) {\n var category = {\n name: categoryName,\n items: [],\n koCollapsed: knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](categoryName !== prevActiveCategory &&\n !this.keepAllCategoriesExpanded),\n expand: function () {\n self.doCategoryClick(this.name);\n },\n };\n categoriesHash[categoryName] = category;\n categories.push(category);\n }\n categoriesHash[categoryName].items.push(item);\n }\n this.koCategories(categories);\n if (!this.keepAllCategoriesExpanded) {\n if (!this.allowExpandMultipleCategories) {\n if (prevActiveCategory && categoriesHash[prevActiveCategory]) {\n this.koActiveCategory(prevActiveCategory);\n }\n else {\n this.koActiveCategory(categories.length > 0 ? categories[0].name : \"\");\n }\n }\n else {\n if (categories.length > 0) {\n categories[0].koCollapsed(false);\n }\n }\n }\n this.koHasCategories(categories.length > 1);\n };\n QuestionToolbox.prototype.indexOf = function (name) {\n for (var i = 0; i < this.itemsValue.length; i++) {\n if (this.itemsValue[i].name == name)\n return i;\n }\n return -1;\n };\n QuestionToolbox.prototype.reorderItems = function () {\n var _this = this;\n this.itemsValue.sort(function (i1, i2) {\n var index1 = _this._orderedQuestions.indexOf(i1.name);\n if (index1 === -1)\n index1 = Number.MAX_VALUE;\n var index2 = _this._orderedQuestions.indexOf(i2.name);\n if (index2 === -1)\n index2 = Number.MAX_VALUE;\n return index1 - index2;\n });\n this.onItemsChanged();\n };\n QuestionToolbox.prototype.createDefaultItems = function (supportedQuestions) {\n this.clearItems();\n var questions = this.getQuestionTypes(supportedQuestions);\n for (var i = 0; i < questions.length; i++) {\n var name = questions[i];\n var question = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"ElementFactory\"].Instance.createElement(name, \"q1\");\n if (!question) {\n question = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].createClass(name);\n }\n var json = this.getQuestionJSON(question);\n var title = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"qt.\" + name);\n var item = {\n id: name,\n name: name,\n iconName: \"icon-\" + name,\n title: title,\n tooltip: title,\n json: json,\n isCopied: false,\n category: \"\",\n };\n this.itemsValue.push(item);\n }\n this.registerCustomWidgets();\n this.registerComponentQuestions();\n this.onItemsChanged();\n };\n QuestionToolbox.prototype.registerCustomWidgets = function () {\n var inst = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"CustomWidgetCollection\"].Instance;\n if (!inst.getActivatedBy)\n return;\n var widgets = inst.widgets;\n for (var i = 0; i < widgets.length; i++) {\n if (inst.getActivatedBy(widgets[i].name) != \"customtype\")\n continue;\n var widgetJson = widgets[i].widgetJson;\n if (!widgetJson.widgetIsLoaded || !widgetJson.widgetIsLoaded())\n continue;\n this.addItemFromJSON(widgetJson);\n }\n };\n QuestionToolbox.prototype.registerComponentQuestions = function () {\n var items = this.getComponentItems();\n for (var i = 0; i < items.length; i++) {\n this.addItemFromJSON(items[i].json);\n }\n };\n QuestionToolbox.prototype.getComponentItems = function () {\n var instanceOwner = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"CustomQuestionCollection\"];\n if (!instanceOwner) {\n instanceOwner = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"ComponentCollection\"];\n }\n if (!instanceOwner)\n return [];\n var items = instanceOwner.Instance[\"items\"];\n return !!items ? items : [];\n };\n QuestionToolbox.prototype.addItemFromJSON = function (json) {\n if (json.showInToolbox === false)\n return;\n var iconName = json.iconName ? json.iconName : \"icon-default\";\n var title = _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(\"qt.\" + json.name);\n if (!title || title == json.name) {\n title = json.title;\n }\n if (!title) {\n title = json.name;\n }\n var elementJson = json.defaultJSON ? json.defaultJSON : {};\n if (!elementJson.type) {\n elementJson.type = json.name;\n }\n var category = json.category ? json.category : \"\";\n var item = {\n id: json.name,\n name: json.name,\n iconName: iconName,\n title: title,\n tooltip: title,\n json: elementJson,\n isCopied: false,\n category: category,\n };\n this.itemsValue.push(item);\n };\n QuestionToolbox.prototype.getQuestionJSON = function (question) {\n var json = new survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"JsonObject\"]().toJsonObject(question);\n json.type = question.getType();\n if (!!this._questionDefaultSettings[json.type]) {\n var defaultSettings = this._questionDefaultSettings[json.type]();\n for (var key in defaultSettings) {\n json[key] = defaultSettings[key];\n }\n }\n return json;\n };\n QuestionToolbox.prototype.getQuestionTypes = function (supportedQuestions) {\n var allTypes = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"ElementFactory\"].Instance.getAllTypes();\n if (!supportedQuestions || supportedQuestions.length == 0)\n supportedQuestions = allTypes;\n var questions = [];\n for (var i = 0; i < this.orderedQuestions.length; i++) {\n var name_1 = this.orderedQuestions[i];\n if (supportedQuestions.indexOf(name_1) > -1 && allTypes.indexOf(name_1) > -1)\n questions.push(name_1);\n }\n for (var i = 0; i < supportedQuestions.length; i++) {\n var name_2 = supportedQuestions[i];\n if (questions.indexOf(supportedQuestions[i]) < 0 &&\n allTypes.indexOf(name_2) > -1)\n questions.push(name_2);\n }\n return questions;\n };\n QuestionToolbox.prototype.dispose = function () { };\n return QuestionToolbox;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/undoredomanager.ts\":\n/*!********************************!*\\\n !*** ./src/undoredomanager.ts ***!\n \\********************************/\n/*! exports provided: UndoRedoManager, Transaction, UndoRedoAction, Action, ArrayAction */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UndoRedoManager\", function() { return UndoRedoManager; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Transaction\", function() { return Transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UndoRedoAction\", function() { return UndoRedoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Action\", function() { return Action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ArrayAction\", function() { return ArrayAction; });\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./propertyEditors/editableObject */ \"./src/propertyEditors/editableObject.ts\");\n\n\nvar UndoRedoManager = /** @class */ (function () {\n function UndoRedoManager() {\n this._ignoreChanges = false;\n this._preparingTransaction = null;\n this._transactions = [];\n this._currentTransactionIndex = -1;\n this.transactionCounter = 0;\n }\n UndoRedoManager.prototype.onPropertyValueChanged = function (name, oldValue, newValue, sender, arrayChanges) {\n if (!this.hasPropertyInSerializer(sender, name))\n return;\n if (_propertyEditors_editableObject__WEBPACK_IMPORTED_MODULE_1__[\"EditableObject\"].isCopyObject(sender))\n return;\n if (this._ignoreChanges)\n return;\n var transaction = this._preparingTransaction;\n var action = arrayChanges\n ? new ArrayAction(name, sender, arrayChanges)\n : new Action(name, oldValue, newValue, sender);\n if (!transaction) {\n transaction = new Transaction(name);\n transaction.addAction(action);\n this._addTransaction(transaction);\n return;\n }\n transaction.addAction(action);\n };\n UndoRedoManager.prototype.hasPropertyInSerializer = function (sender, propertyName) {\n return !!survey_knockout__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].findProperty(sender.getType(), propertyName);\n };\n UndoRedoManager.prototype.isCopyObject = function (sender) { };\n UndoRedoManager.prototype._cutOffTail = function () {\n if (this._currentTransactionIndex + 1 !== this._transactions.length) {\n this._transactions.length = this._currentTransactionIndex + 1;\n }\n };\n UndoRedoManager.prototype._addTransaction = function (transaction) {\n if (transaction.isEmpty())\n return;\n this._cutOffTail();\n this._transactions.push(transaction);\n this._currentTransactionIndex++;\n this.canUndoRedoCallback();\n };\n UndoRedoManager.prototype._getCurrentTransaction = function () {\n var index = this._currentTransactionIndex;\n var currentTransaction = this._transactions[index];\n return currentTransaction;\n };\n UndoRedoManager.prototype._getNextTransaction = function () {\n var index = this._currentTransactionIndex;\n var nextTransaction = this._transactions[index + 1];\n return nextTransaction;\n };\n UndoRedoManager.prototype.notifyChangesFinished = function (transaction) {\n if (transaction.actions.length > 0 && transaction.actions[0]) {\n !!this.changesFinishedCallback &&\n this.changesFinishedCallback(transaction.actions[0].changes);\n }\n };\n UndoRedoManager.prototype.canUndoRedoCallback = function () { };\n UndoRedoManager.prototype.startTransaction = function (name) {\n this.transactionCounter++;\n if (this._preparingTransaction)\n return;\n this._preparingTransaction = new Transaction(name);\n };\n UndoRedoManager.prototype.stopTransaction = function () {\n if (this.transactionCounter > 0) {\n this.transactionCounter--;\n }\n if (!this._preparingTransaction || this.transactionCounter > 0)\n return;\n this._addTransaction(this._preparingTransaction);\n if (this.transactionCounter === 0) {\n this.notifyChangesFinished(this._preparingTransaction);\n }\n this._preparingTransaction = null;\n };\n Object.defineProperty(UndoRedoManager.prototype, \"isProcessingUndoRedo\", {\n get: function () {\n return this._ignoreChanges === true;\n },\n enumerable: false,\n configurable: true\n });\n UndoRedoManager.prototype.canUndo = function () {\n return !!this._getCurrentTransaction();\n };\n UndoRedoManager.prototype.undo = function () {\n var currentTransaction = this._getCurrentTransaction();\n if (!this.canUndo())\n return;\n this._ignoreChanges = true;\n currentTransaction.rollback();\n this._ignoreChanges = false;\n this._currentTransactionIndex--;\n this.canUndoRedoCallback();\n this.notifyChangesFinished(currentTransaction);\n };\n UndoRedoManager.prototype.canRedo = function () {\n return !!this._getNextTransaction();\n };\n UndoRedoManager.prototype.redo = function () {\n var nextTransaction = this._getNextTransaction();\n if (!this.canRedo())\n return;\n this._ignoreChanges = true;\n nextTransaction.apply();\n this._ignoreChanges = false;\n this._currentTransactionIndex++;\n this.canUndoRedoCallback();\n this.notifyChangesFinished(nextTransaction);\n };\n return UndoRedoManager;\n}());\n\nvar Transaction = /** @class */ (function () {\n function Transaction(_name) {\n this._name = _name;\n this._actions = [];\n }\n Transaction.prototype.apply = function () {\n var actions = this._actions;\n for (var index = 0; index < actions.length; index++) {\n var action = actions[index];\n action.apply();\n }\n };\n Transaction.prototype.rollback = function () {\n var actions = this._actions;\n for (var index = actions.length - 1; index >= 0; index--) {\n var action = actions[index];\n action.rollback();\n }\n };\n Transaction.prototype.addAction = function (action) {\n this._actions.push(action);\n };\n Transaction.prototype.isEmpty = function () {\n return this._actions.length === 0;\n };\n Object.defineProperty(Transaction.prototype, \"actions\", {\n get: function () {\n return this._actions;\n },\n enumerable: false,\n configurable: true\n });\n return Transaction;\n}());\n\nvar UndoRedoAction = /** @class */ (function () {\n function UndoRedoAction() {\n }\n UndoRedoAction.prototype.apply = function () { };\n UndoRedoAction.prototype.rollback = function () { };\n Object.defineProperty(UndoRedoAction.prototype, \"changes\", {\n get: function () {\n return {};\n },\n enumerable: false,\n configurable: true\n });\n return UndoRedoAction;\n}());\n\nvar Action = /** @class */ (function () {\n function Action(_propertyName, _oldValue, _newValue, _sender) {\n this._propertyName = _propertyName;\n this._oldValue = _oldValue;\n this._newValue = _newValue;\n this._sender = _sender;\n }\n Action.prototype.apply = function () {\n this._sender[this._propertyName] = this._newValue;\n };\n Action.prototype.rollback = function () {\n this._sender[this._propertyName] = this._oldValue;\n };\n Object.defineProperty(Action.prototype, \"changes\", {\n get: function () {\n return {\n object: this._sender,\n propertyName: this._propertyName,\n oldValue: this._oldValue,\n newValue: this._newValue\n };\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}());\n\nvar ArrayAction = /** @class */ (function () {\n function ArrayAction(_propertyName, _sender, arrayChanges) {\n this._propertyName = _propertyName;\n this._sender = _sender;\n this._index = 0;\n this._itemsToAdd = [];\n this._deletedItems = [];\n this._index = arrayChanges.index;\n this._itemsToAdd = arrayChanges.itemsToAdd;\n this._deletedItems = arrayChanges.deletedItems;\n }\n ArrayAction.prototype.apply = function () {\n this.rollback();\n };\n ArrayAction.prototype.rollback = function () {\n var array = this._sender[this._propertyName];\n var index = this._index;\n var deleteCount = this._itemsToAdd.length;\n var itemsToAdd = [].concat(this._deletedItems);\n this._deletedItems = array.splice.apply(array, [index, deleteCount].concat(itemsToAdd));\n this._itemsToAdd = [].concat(itemsToAdd);\n };\n Object.defineProperty(ArrayAction.prototype, \"changes\", {\n get: function () {\n return {\n object: this._sender,\n propertyName: this._propertyName,\n oldValue: this._deletedItems,\n newValue: this._itemsToAdd\n };\n },\n enumerable: false,\n configurable: true\n });\n return ArrayAction;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/utils/accordion.scss\":\n/*!**********************************!*\\\n !*** ./src/utils/accordion.scss ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/accordion.ts\":\n/*!********************************!*\\\n !*** ./src/utils/accordion.ts ***!\n \\********************************/\n/*! exports provided: AccordionItemModel, AccordionViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AccordionItemModel\", function() { return AccordionItemModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AccordionViewModel\", function() { return AccordionViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _accordion_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./accordion.scss */ \"./src/utils/accordion.scss\");\n/* harmony import */ var _accordion_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_accordion_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar template = __webpack_require__(/*! html-loader?interpolate!val-loader!./accordion.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/utils/accordion.html\");\nvar AccordionItemModel = /** @class */ (function () {\n function AccordionItemModel(data) {\n var _this = this;\n this.data = data;\n this.collapsed = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.toggle = function () {\n _this.collapsed(!_this.collapsed());\n if (!_this.collapsed() && !!document) {\n var el = document.getElementById(\"editor_tab_id_\" + _this.data.name);\n if (!!_this.data.doOnExpanded) {\n _this.data.doOnExpanded();\n }\n if (!!el) {\n el.scrollIntoView(false);\n }\n }\n };\n var self = this;\n data.onExpand = function () {\n self.collapsed(false);\n };\n data.onCollapse = function () {\n self.collapsed(true);\n };\n }\n Object.defineProperty(AccordionItemModel.prototype, \"title\", {\n get: function () {\n return this.data.title;\n },\n enumerable: false,\n configurable: true\n });\n return AccordionItemModel;\n}());\n\nvar AccordionViewModel = /** @class */ (function () {\n function AccordionViewModel(params) {\n this.tabs = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n var res = knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](params.tabs)\n .map(function (tabData) { return new AccordionItemModel(tabData); });\n if (res.length > 0) {\n res[0].collapsed(false);\n }\n return res;\n });\n this.showHeader = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n return params.tabs().length > 1;\n });\n }\n return AccordionViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-accordion\", {\n viewModel: AccordionViewModel,\n template: template,\n});\n\n\n/***/ }),\n\n/***/ \"./src/utils/boolean.html\":\n/*!********************************!*\\\n !*** ./src/utils/boolean.html ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/utils/boolean.scss\":\n/*!********************************!*\\\n !*** ./src/utils/boolean.scss ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/boolean.ts\":\n/*!******************************!*\\\n !*** ./src/utils/boolean.ts ***!\n \\******************************/\n/*! exports provided: BooleanViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BooleanViewModel\", function() { return BooleanViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _boolean_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./boolean.scss */ \"./src/utils/boolean.scss\");\n/* harmony import */ var _boolean_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_boolean_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./boolean.html */ \"./src/utils/boolean.html\");\nvar BooleanViewModel;\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-boolean\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.item;\n return model;\n }\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/utils/button.html\":\n/*!*******************************!*\\\n !*** ./src/utils/button.html ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n\";\n\n/***/ }),\n\n/***/ \"./src/utils/button.scss\":\n/*!*******************************!*\\\n !*** ./src/utils/button.scss ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/button.ts\":\n/*!*****************************!*\\\n !*** ./src/utils/button.ts ***!\n \\*****************************/\n/*! exports provided: ButtonViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ButtonViewModel\", function() { return ButtonViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _button_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./button.scss */ \"./src/utils/button.scss\");\n/* harmony import */ var _button_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_button_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./button.html */ \"./src/utils/button.html\");\nvar ButtonViewModel = /** @class */ (function () {\n function ButtonViewModel(item) {\n this.item = item;\n }\n Object.defineProperty(ButtonViewModel.prototype, \"disabled\", {\n get: function () {\n return this.item.enabled !== undefined && !knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](this.item.enabled);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonViewModel.prototype, \"hint\", {\n get: function () {\n return this.item.tooltip || this.item.title;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonViewModel.prototype, \"showTitle\", {\n get: function () {\n return this.item.showTitle === undefined || (!!this.item.iconName && !knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](this.item.showTitle));\n },\n enumerable: false,\n configurable: true\n });\n ButtonViewModel.prototype.action = function (model) {\n if (!model.disabled) {\n model.item.action();\n }\n };\n return ButtonViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-button\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return new ButtonViewModel(params.item);\n }\n },\n template: templateHtml,\n});\n\n\n/***/ }),\n\n/***/ \"./src/utils/custom-checkbox.scss\":\n/*!****************************************!*\\\n !*** ./src/utils/custom-checkbox.scss ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/custom-select.scss\":\n/*!**************************************!*\\\n !*** ./src/utils/custom-select.scss ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/ddmenu.scss\":\n/*!*******************************!*\\\n !*** ./src/utils/ddmenu.scss ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/designer-container.scss\":\n/*!*******************************************!*\\\n !*** ./src/utils/designer-container.scss ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/designer-container.ts\":\n/*!*****************************************!*\\\n !*** ./src/utils/designer-container.ts ***!\n \\*****************************************/\n/*! exports provided: DesignerContainerViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DesignerContainerViewModel\", function() { return DesignerContainerViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _designer_container_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./designer-container.scss */ \"./src/utils/designer-container.scss\");\n/* harmony import */ var _designer_container_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_designer_container_scss__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _editorLocalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editorLocalization */ \"./src/editorLocalization.ts\");\n\n\n\nvar template = __webpack_require__(/*! html-loader?interpolate!val-loader!./designer-container.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/utils/designer-container.html\");\nvar DesignerContainerViewModel = /** @class */ (function () {\n function DesignerContainerViewModel(params, componentInfo) {\n var _this = this;\n this.toggle = function () {\n var surfaceEl = (document.getElementsByClassName(\"svd_editors\")[0]);\n if (_this.visible()) {\n _this._prevWidth = _this._element.style.width;\n _this._prevSurfaceWidth = surfaceEl.style.width;\n surfaceEl.style.width = \"100%\";\n surfaceEl.style.maxWidth = \"none\";\n surfaceEl.style.flexBasis = \"auto\";\n // surfaceEl.style.width = surfaceEl.style.maxWidth = surfaceEl.style.flexBasis = \"\";\n }\n else {\n _this._element.style.width = _this._element.style.maxWidth = _this._element.style.flexBasis = _this._prevWidth;\n // surfaceEl.style.width = surfaceEl.style.maxWidth = surfaceEl.style.flexBasis = this._prevSurfaceWidth;\n }\n _this.visible(!_this.visible());\n };\n this.activeTab = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]();\n this.className = \"svd-designer-container\";\n this.visible = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this.isOpen = knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](true);\n this._element = componentInfo.element;\n this.tabs = params.tabs;\n this.context = params.context;\n var changed = params.changed || knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]();\n componentInfo.element.className += \" \" + params.className;\n if (knockout__WEBPACK_IMPORTED_MODULE_0__[\"isWritableObservable\"](params.visible)) {\n this.visible = params.visible;\n }\n if (knockout__WEBPACK_IMPORTED_MODULE_0__[\"isWritableObservable\"](params.activeTab)) {\n this.activeTab = params.activeTab;\n }\n if (!this.activeTab() && this.tabs.length > 0) {\n this.activeTab(this.tabs[0]);\n }\n this.size = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n var isVisible = _this.visible();\n _this.isOpen(isVisible);\n return isVisible ? \"\" : 0;\n });\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n if (!_this.visible() || componentInfo.element.offsetWidth == 0) {\n componentInfo.element.style.width = _this.size();\n }\n });\n this._changedSubscription = changed.subscribe(function () {\n if (componentInfo.element.offsetParent == null)\n return;\n _this.isOpen(componentInfo.element.offsetWidth > 25);\n _this.visible(_this.isOpen());\n });\n }\n DesignerContainerViewModel.prototype.getLocString = function (str) {\n return _editorLocalization__WEBPACK_IMPORTED_MODULE_2__[\"editorLocalization\"].getString(str);\n };\n DesignerContainerViewModel.prototype.dispose = function () {\n this._changedSubscription.dispose();\n };\n Object.defineProperty(DesignerContainerViewModel.prototype, \"iconRightOpen\", {\n get: function () {\n return DesignerContainerViewModel.iconRightOpenName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DesignerContainerViewModel.prototype, \"iconRightClose\", {\n get: function () {\n return DesignerContainerViewModel.iconRightCloseName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DesignerContainerViewModel.prototype, \"iconLeftOpen\", {\n get: function () {\n return DesignerContainerViewModel.iconLeftOpenName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DesignerContainerViewModel.prototype, \"iconLeftClose\", {\n get: function () {\n return DesignerContainerViewModel.iconLeftCloseName;\n },\n enumerable: false,\n configurable: true\n });\n DesignerContainerViewModel.iconRightOpenName = \"icon-right-open\";\n DesignerContainerViewModel.iconRightCloseName = \"icon-right-close\";\n DesignerContainerViewModel.iconLeftOpenName = \"icon-left-open\";\n DesignerContainerViewModel.iconLeftCloseName = \"icon-left-close\";\n return DesignerContainerViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-designer-container\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return new DesignerContainerViewModel(params, componentInfo);\n }\n },\n template: template\n});\n\n\n/***/ }),\n\n/***/ \"./src/utils/designer-h-container.scss\":\n/*!*********************************************!*\\\n !*** ./src/utils/designer-h-container.scss ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/designer-h-container.ts\":\n/*!*******************************************!*\\\n !*** ./src/utils/designer-h-container.ts ***!\n \\*******************************************/\n/*! exports provided: DesignerHContainerViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DesignerHContainerViewModel\", function() { return DesignerHContainerViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _designer_h_container_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./designer-h-container.scss */ \"./src/utils/designer-h-container.scss\");\n/* harmony import */ var _designer_h_container_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_designer_h_container_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar template = __webpack_require__(/*! html-loader?interpolate!val-loader!./designer-h-container.html */ \"./node_modules/html-loader/index.js?interpolate!./node_modules/val-loader/index.js!./src/utils/designer-h-container.html\");\nvar DesignerHContainerViewModel = /** @class */ (function () {\n function DesignerHContainerViewModel(params, componentInfo) {\n this.className = \"svd-designer-h-container\";\n this.items = knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](params.items);\n this.context = params.context;\n componentInfo.element.className += \" \" + params.className;\n }\n return DesignerHContainerViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-designer-h-container\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return new DesignerHContainerViewModel(params, componentInfo);\n }\n },\n template: template\n});\n\n\n/***/ }),\n\n/***/ \"./src/utils/dropdown.html\":\n/*!*********************************!*\\\n !*** ./src/utils/dropdown.html ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/utils/dropdown.scss\":\n/*!*********************************!*\\\n !*** ./src/utils/dropdown.scss ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/dropdown.ts\":\n/*!*******************************!*\\\n !*** ./src/utils/dropdown.ts ***!\n \\*******************************/\n/*! exports provided: DropdownViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DropdownViewModel\", function() { return DropdownViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dropdown_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dropdown.scss */ \"./src/utils/dropdown.scss\");\n/* harmony import */ var _dropdown_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dropdown_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar templateHtml = __webpack_require__(/*! ./dropdown.html */ \"./src/utils/dropdown.html\");\nvar DropdownViewModel = /** @class */ (function () {\n function DropdownViewModel(items, action, optionsValue, optionsText, afterRender, valueAllowUnset, optionsCaption, ariaLabel, title, disable, hasFocus, select3) {\n if (optionsValue === void 0) { optionsValue = \"value\"; }\n if (optionsText === void 0) { optionsText = \"text\"; }\n if (afterRender === void 0) { afterRender = null; }\n if (valueAllowUnset === void 0) { valueAllowUnset = null; }\n if (optionsCaption === void 0) { optionsCaption = null; }\n if (ariaLabel === void 0) { ariaLabel = null; }\n if (title === void 0) { title = null; }\n if (disable === void 0) { disable = null; }\n if (hasFocus === void 0) { hasFocus = null; }\n this.items = items;\n this.action = action;\n this.optionsValue = optionsValue;\n this.optionsText = optionsText;\n this.afterRender = afterRender;\n this.valueAllowUnset = valueAllowUnset;\n this.optionsCaption = optionsCaption;\n this.ariaLabel = ariaLabel;\n this.title = title;\n this.disable = disable;\n this.hasFocus = hasFocus;\n this.select3 = select3;\n }\n return DropdownViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-dropdown\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n var model = params.item;\n return new DropdownViewModel(model.items, model.action, model.optionsValue, model.optionsText, model.afterRender, model.valueAllowUnset, model.optionsCaption, model.ariaLabel, model.title, model.disable, model.hasFocus, params.select3);\n },\n },\n template: templateHtml,\n});\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"bindingHandlers\"][\"sjsselect3\"] = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n var value = valueAccessor();\n if (value !== undefined && typeof jQuery !== \"undefined\" && jQuery()[\"select2\"]) {\n var options = {\n width: \"100%\",\n };\n // TODO: pass RTL setting\n // if (editor.isRTLValue) {\n // options.dir = \"rtl\";\n // }\n var $objectSelector = jQuery(element);\n $objectSelector[\"select2\"](options);\n $objectSelector.on(\"select2:select\", function (sel_evt) {\n if (knockout__WEBPACK_IMPORTED_MODULE_0__[\"isWriteableObservable\"](value)) {\n value(sel_evt.target.value);\n }\n });\n var subscription = knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n var item = knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](value);\n var el = (element.parentElement && element.parentElement.querySelector(\".select2-selection__rendered\"));\n if (el) {\n if (item && item.text) {\n el.innerText = item.text();\n }\n }\n });\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"utils\"].domNodeDisposal.addDisposeCallback(element, function () {\n subscription.dispose();\n $objectSelector.off(\"select2:select\");\n $objectSelector[\"select2\"](\"destroy\");\n });\n }\n },\n};\n\n\n/***/ }),\n\n/***/ \"./src/utils/splitter.scss\":\n/*!*********************************!*\\\n !*** ./src/utils/splitter.scss ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"./src/utils/splitter.ts\":\n/*!*******************************!*\\\n !*** ./src/utils/splitter.ts ***!\n \\*******************************/\n/*! exports provided: SplitterComponentViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SplitterComponentViewModel\", function() { return SplitterComponentViewModel; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _splitter_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./splitter.scss */ \"./src/utils/splitter.scss\");\n/* harmony import */ var _splitter_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_splitter_scss__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar SplitterComponentViewModel = /** @class */ (function () {\n function SplitterComponentViewModel(params, componentInfo) {\n var _this = this;\n var splitterElement = componentInfo.element;\n var container = componentInfo.element.parentElement;\n var onChange = params.onChange || knockout__WEBPACK_IMPORTED_MODULE_0__[\"observable\"](0);\n var siblings = [];\n var minLeft = params.minLeft || 10;\n var minRight = params.minRight || 10;\n for (var i = 0; i < container.children.length; i++) {\n siblings.push(container.children[i]);\n }\n var splitterElementIndex = siblings.indexOf(splitterElement);\n var leftElement = siblings[splitterElementIndex - 1];\n var rightElement = siblings[splitterElementIndex + 1];\n var startX = 0;\n var isInChangeWidth = false;\n var update = function (delta) {\n if (isInChangeWidth)\n return;\n isInChangeWidth = true;\n try {\n var isRtl = false;\n if (window && typeof window.getComputedStyle === \"function\") {\n var conputedStyles = getComputedStyle(leftElement);\n isRtl = conputedStyles && conputedStyles.direction === \"rtl\";\n }\n var offsetDelta = isRtl ? -delta : delta;\n var totalWidth = leftElement.offsetWidth + rightElement.offsetWidth;\n var newLeft = leftElement.offsetWidth + offsetDelta;\n var newRight = totalWidth - newLeft;\n if (newLeft > minLeft && newRight > minRight) {\n startX += delta;\n var leftWidth = Math.ceil(((newLeft + 1) / container.clientWidth) * 10000) / 100 +\n \"%\";\n var rightWidth = Math.ceil(((newRight + 1) / container.clientWidth) * 10000) / 100 +\n \"%\";\n _this.updateWidth(leftElement, leftWidth);\n _this.updateWidth(rightElement, rightWidth);\n onChange(onChange() + 1);\n }\n }\n finally {\n isInChangeWidth = false;\n }\n };\n var onmousemove = function (event) {\n update(event.screenX - startX);\n };\n var onmouseup = function (event) {\n startX = 0;\n splitterElement.className = splitterElement.className.replace(/\\ssvd-active-splitter/g, \"\");\n document.removeEventListener(\"mousemove\", onmousemove);\n document.removeEventListener(\"mouseleave\", onmouseup);\n document.removeEventListener(\"mouseup\", onmouseup);\n };\n splitterElement.onmousedown = function (event) {\n startX = event.screenX;\n splitterElement.className += \" svd-active-splitter\";\n document.addEventListener(\"mousemove\", onmousemove);\n document.addEventListener(\"mouseleave\", onmouseup);\n document.addEventListener(\"mouseup\", onmouseup);\n };\n setTimeout(function () { return update(0); }, 10);\n }\n SplitterComponentViewModel.prototype.updateWidth = function (el, value) {\n el.style.width = value;\n el.style.maxWidth = value;\n el.style.flexBasis = value;\n };\n SplitterComponentViewModel.prototype.dispose = function () {\n if (!!this.updateSplitter) {\n clearInterval(this.updateSplitter);\n this.updateSplitter = undefined;\n }\n };\n return SplitterComponentViewModel;\n}());\n\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svd-splitter\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n return new SplitterComponentViewModel(params, componentInfo);\n }\n },\n template: '
'\n});\n\n\n/***/ }),\n\n/***/ \"./src/utils/survey-widget.ts\":\n/*!************************************!*\\\n !*** ./src/utils/survey-widget.ts ***!\n \\************************************/\n/*! exports provided: SurveyWidgetBinding */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyWidgetBinding\", function() { return SurveyWidgetBinding; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n\nvar SurveyWidgetBinding;\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"survey-widget\", {\n viewModel: function (params) {\n this.survey = params.survey;\n },\n template: \"\",\n});\n\n\n/***/ }),\n\n/***/ \"./src/utils/svg-icon.ts\":\n/*!*******************************!*\\\n !*** ./src/utils/svg-icon.ts ***!\n \\*******************************/\n/*! exports provided: SVGIconBinding */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVGIconBinding\", function() { return SVGIconBinding; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n\nvar SVGIconBinding;\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"components\"].register(\"svg-icon\", {\n viewModel: {\n createViewModel: function (params, componentInfo) {\n knockout__WEBPACK_IMPORTED_MODULE_0__[\"computed\"](function () {\n var size = knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](params.size);\n var width = knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](params.width);\n var height = knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](params.height);\n var svgElem = componentInfo.element.childNodes[0];\n svgElem.style.width = (size || width || 16) + \"px\";\n svgElem.style.height = (size || height || 16) + \"px\";\n var node = svgElem.childNodes[0];\n node.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", \"#\" + knockout__WEBPACK_IMPORTED_MODULE_0__[\"unwrap\"](params.iconName));\n });\n },\n },\n template: \"\",\n});\n\n\n/***/ }),\n\n/***/ \"./src/utils/utils.ts\":\n/*!****************************!*\\\n !*** ./src/utils/utils.ts ***!\n \\****************************/\n/*! exports provided: getNextValue, findParentNode, focusFirstControl, getFirstNonTextElement, getNodesFromKoComponentInfo, createKey2click, propertyExists, isPropertyVisible, trimValue */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getNextValue\", function() { return getNextValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findParentNode\", function() { return findParentNode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"focusFirstControl\", function() { return focusFirstControl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFirstNonTextElement\", function() { return getFirstNonTextElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getNodesFromKoComponentInfo\", function() { return getNodesFromKoComponentInfo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createKey2click\", function() { return createKey2click; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"propertyExists\", function() { return propertyExists; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPropertyVisible\", function() { return isPropertyVisible; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trimValue\", function() { return trimValue; });\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! knockout */ \"knockout\");\n/* harmony import */ var knockout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(knockout__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-knockout */ \"survey-knockout\");\n/* harmony import */ var survey_knockout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_knockout__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction getNumericFromString(str) {\n if (!str)\n return \"\";\n var num = \"\";\n for (var i = str.length - 1; i >= 0; i--) {\n if (str[i] >= \"0\" && str[i] <= \"9\") {\n num = str[i] + num;\n }\n else {\n if (!!num)\n return num;\n }\n if (num.length == 10)\n break;\n }\n return num;\n}\nvar opositeValues = {\n true: \"false\",\n True: \"False\",\n TRUE: \"FALSE\",\n false: \"true\",\n False: \"True\",\n FALSE: \"TRUE\",\n yes: \"no\",\n Yes: \"No\",\n YES: \"NO\",\n no: \"yes\",\n No: \"Yes\",\n NO: \"YES\",\n};\nfunction getOpositValue(str) {\n if (!!opositeValues[str])\n return opositeValues[str];\n return null;\n}\nfunction hasValueInArray(values, search) {\n for (var i = 0; i < values.length; i++) {\n if (!values[i])\n continue;\n if (values[i].toString() === search)\n return true;\n }\n return false;\n}\nfunction getNextValue(prefix, values) {\n if (values.length > 0)\n var oposite = getOpositValue(values[values.length - 1]);\n if (oposite && values.indexOf(oposite) < 0)\n return oposite;\n var numStr = \"\";\n var baseValue;\n var numStrIndex = -1;\n for (var i = values.length - 1; i >= 0; i--) {\n if (!values[i])\n continue;\n var str = values[i].toString();\n numStr = getNumericFromString(str);\n if (!!numStr) {\n numStrIndex = str.lastIndexOf(numStr);\n baseValue = values[i];\n break;\n }\n }\n if (numStrIndex > -1) {\n var num = parseInt(numStr);\n var isNumber = baseValue === num;\n var newValue;\n do {\n if (isNumber) {\n newValue = ++num;\n }\n else {\n var newNum = (num++).toString();\n while (numStr.length > newNum.length) {\n newNum = \"0\" + newNum;\n }\n newValue = str.substr(0, numStrIndex) + newNum + str.substr(numStrIndex + numStr.length);\n }\n } while (hasValueInArray(values, newValue));\n return newValue;\n }\n return prefix + 1;\n}\nfunction findParentNode(className, sourceNode) {\n var parent = sourceNode;\n while (!!parent && !parent.classList.contains(className)) {\n parent = parent.parentElement;\n }\n return parent;\n}\nfunction focusFirstControl(renderedElements) {\n for (var i = 0; i < renderedElements.length; i++) {\n if (typeof renderedElements[i].getElementsByClassName === \"function\") {\n var elements = (renderedElements[i].getElementsByClassName(\"svd-focusable\"));\n if (elements.length === 0 &&\n renderedElements[i].className.indexOf(\"svd-focusable\") !== -1) {\n elements = [renderedElements[i]];\n }\n if (elements.length > 0) {\n var element = elements[0];\n if (element.tagName.toLowerCase() !== \"a\") {\n element.focus({ preventScroll: true });\n break;\n }\n }\n }\n }\n}\nfunction getFirstNonTextElement(elements) {\n if (!elements || !elements.length)\n return;\n for (var i = 0; i < elements.length; i++) {\n if (elements[i].nodeName != \"#text\" && elements[i].nodeName != \"#comment\")\n return elements[i];\n }\n return null;\n}\n// about compoentInfo: https://knockoutjs.com/documentation/component-registration.html\nfunction getNodesFromKoComponentInfo(componentInfo) {\n // elem.nodeType === 3 // text node\n // elem.nodeType === 8 // comment node\n var element = componentInfo.element;\n var siblings = [];\n if (element.nodeType !== 8) {\n return element.childNodes;\n }\n while ((element = element.nextSibling)) {\n if (element.nodeType === 3)\n continue;\n siblings.push(element);\n }\n return siblings;\n}\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"bindingHandlers\"][\"trueclick\"] = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n element.onclick = function () { return true; };\n },\n};\nfunction createKey2click(element) {\n return function (ev) {\n var char = ev.which || ev.keyCode;\n if (char === 13 || char === 32) {\n element.click();\n }\n else if (char === 27) {\n element.blur();\n }\n };\n}\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"bindingHandlers\"][\"key2click\"] = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n element.onkeyup = createKey2click(element);\n },\n};\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"bindingHandlers\"][\"clickNoFocus\"] = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel) {\n element.onclick = function (ev) {\n valueAccessor().call(viewModel, viewModel, ev);\n };\n },\n};\nknockout__WEBPACK_IMPORTED_MODULE_0__[\"bindingHandlers\"][\"afterRenderParent\"] = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel) {\n element.style.display = \"none\";\n valueAccessor() && valueAccessor()([element.parentElement]);\n },\n};\nfunction propertyExists(obj, propertyName) {\n var result = true;\n if (!!obj && typeof obj.getType === \"function\") {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findProperty(obj.getType(), propertyName);\n result = !!property;\n }\n return result;\n}\nfunction isPropertyVisible(obj, propertyName) {\n var result = true;\n if (!!obj && typeof obj.getType === \"function\") {\n var property = survey_knockout__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findProperty(obj.getType(), propertyName);\n result = !property || property.visible;\n }\n return result;\n}\nfunction trimValue(value) {\n if (!!value && (typeof value === \"string\" || value instanceof String))\n return value.trim();\n return value;\n}\n\n\n/***/ }),\n\n/***/ \"./vendor/knockout-sortable.js\":\n/*!*************************************!*\\\n !*** ./vendor/knockout-sortable.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* fork of the https://github.com/SortableJS/knockout-sortablejs because of es modules build error \n waiting for approve pullrequests:\n * https://github.com/SortableJS/knockout-sortablejs/pull/9)\n * https://github.com/SortableJS/knockout-sortablejs/pull/1/files\n Change line:\n if (handler) handler(e, itemVM, parentVM, collection, bindings);\n to:\n if (handler && handler(e, itemVM, parentVM, collection, bindings)) return;\n*/\n\n/*global ko*/\n\n(function (factory) {\n \"use strict\";\n //get ko ref via global or require\n var koRef;\n if (typeof ko !== \"undefined\") {\n //global ref already defined\n koRef = ko;\n } else if (\n true\n ) {\n //commonjs / node.js\n koRef = __webpack_require__(/*! knockout */ \"knockout\");\n }\n //get sortable ref via global or require\n var sortableRef;\n if (typeof Sortable !== \"undefined\") {\n //global ref already defined\n sortableRef = Sortable;\n } else if (\n true\n ) {\n //commonjs / node.js\n sortableRef = __webpack_require__(/*! ./sortable */ \"./vendor/sortable.js\");\n }\n //use references if we found them\n if (koRef !== undefined && sortableRef !== undefined) {\n factory(koRef, sortableRef);\n } else if (true) {\n //if both references aren't found yet, get via AMD if available\n //we may have a reference to only 1, or none\n if (koRef !== undefined && sortableRef === undefined) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./sortable */ \"./vendor/sortable.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (amdSortableRef) {\n factory(koRef, amdSortableRef);\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (koRef === undefined && sortableRef !== undefined) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! knockout */ \"knockout\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (amdKnockout) {\n factory(amdKnockout, sortableRef);\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (koRef === undefined && sortableRef === undefined) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! knockout */ \"knockout\"), __webpack_require__(/*! ./sortable */ \"./vendor/sortable.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n } else {}\n})(function (ko, Sortable) {\n \"use strict\";\n\n var init = function (\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext,\n sortableOptions\n ) {\n var options = buildOptions(valueAccessor, sortableOptions);\n\n // Its seems that we cannot update the eventhandlers after we've created\n // the sortable, so define them in init instead of update\n [\n \"onStart\",\n \"onEnd\",\n \"onRemove\",\n \"onAdd\",\n \"onUpdate\",\n \"onSort\",\n \"onFilter\",\n \"onMove\",\n \"onClone\"\n ].forEach(function (e) {\n if (options[e] || eventHandlers[e])\n options[e] = function (\n eventType,\n parentVM,\n parentBindings,\n handler,\n e\n ) {\n var itemVM = ko.dataFor(e.item),\n // All of the bindings on the parent element\n bindings = ko.utils.peekObservable(parentBindings()),\n // The binding options for the draggable/sortable binding of the parent element\n bindingHandlerBinding = bindings.sortable || bindings.draggable,\n // The collection that we should modify\n collection =\n bindingHandlerBinding.collection ||\n bindingHandlerBinding.foreach;\n if (handler && handler(e, itemVM, parentVM, collection, bindings))\n return;\n if (eventHandlers[eventType])\n eventHandlers[eventType](\n e,\n itemVM,\n parentVM,\n collection,\n bindings\n );\n }.bind(undefined, e, viewModel, allBindings, options[e]);\n });\n\n var sortableElement = Sortable.create(element, options);\n\n // Destroy the sortable if knockout disposes the element its connected to\n ko.utils.domNodeDisposal.addDisposeCallback(element, function () {\n sortableElement.destroy();\n });\n return ko.bindingHandlers.template.init(element, valueAccessor);\n },\n update = function (\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext,\n sortableOptions\n ) {\n // There seems to be some problems with updating the options of a sortable\n // Tested to change eventhandlers and the group options without any luck\n\n return ko.bindingHandlers.template.update(\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext\n );\n },\n eventHandlers = (function (handlers) {\n var moveOperations = [],\n tryMoveOperation = function (\n e,\n itemVM,\n parentVM,\n collection,\n parentBindings\n ) {\n // A move operation is the combination of a add and remove event,\n // this is to make sure that we have both the target and origin collections\n var currentOperation = {\n event: e,\n itemVM: itemVM,\n parentVM: parentVM,\n collection: collection,\n parentBindings: parentBindings\n },\n existingOperation = moveOperations.filter(function (op) {\n return op.itemVM === currentOperation.itemVM;\n })[0];\n\n if (!existingOperation) {\n moveOperations.push(currentOperation);\n } else {\n // We're finishing the operation and already have a handle on\n // the operation item meaning that its safe to remove it\n moveOperations.splice(moveOperations.indexOf(existingOperation), 1);\n\n var removeOperation =\n currentOperation.event.type === \"remove\"\n ? currentOperation\n : existingOperation,\n addOperation =\n currentOperation.event.type === \"add\"\n ? currentOperation\n : existingOperation;\n\n moveItem(\n itemVM,\n removeOperation.collection,\n addOperation.collection,\n addOperation.event.clone,\n addOperation.event\n );\n }\n },\n // Moves an item from the \"from\" collection to the \"to\" collection, these\n // can be references to the same collection which means its a sort.\n // clone indicates if we should move or copy the item into the new collection\n moveItem = function (itemVM, from, to, clone, e) {\n // Unwrapping this allows us to manipulate the actual array\n var fromArray = from(),\n // Its not certain that the items actual index is the same\n // as the index reported by sortable due to filtering etc.\n originalIndex = fromArray.indexOf(itemVM),\n newIndex = e.newIndex;\n\n // We have to find out the actual desired index of the to array,\n // as this might be a computed array. We could otherwise potentially\n // drop an item above the 3rd visible item, but the 2nd visible item\n // has an actual index of 5.\n if (e.item.previousElementSibling) {\n newIndex = to().indexOf(ko.dataFor(e.item.previousElementSibling));\n newIndex += newIndex > originalIndex ? 0 : 1;\n }\n\n // Remove sortables \"unbound\" element\n e.item.parentNode.removeChild(e.item);\n\n // This splice is necessary for both clone and move/sort\n // In sort/move since it shouldn't be at this index/in this array anymore\n // In clone since we have to work around knockouts valuHasMutated\n // when manipulating arrays and avoid a \"unbound\" item added by sortable\n fromArray.splice(originalIndex, 1);\n // Update the array, this will also remove sortables \"unbound\" clone\n from.valueHasMutated();\n if (clone && from !== to) {\n // Read the item\n fromArray.splice(originalIndex, 0, itemVM);\n // Force knockout to update\n from.valueHasMutated();\n }\n // Force deferred tasks to run now, registering the removal\n !!ko.tasks && ko.tasks.runEarly();\n // Insert the item on its new position\n to().splice(newIndex, 0, itemVM);\n // Make sure to tell knockout that we've modified the actual array.\n to.valueHasMutated();\n };\n\n handlers.onRemove = tryMoveOperation;\n handlers.onAdd = tryMoveOperation;\n handlers.onUpdate = function (\n e,\n itemVM,\n parentVM,\n collection,\n parentBindings\n ) {\n // This will be performed as a sort since the to/from collections\n // reference the same collection and clone is set to false\n moveItem(itemVM, collection, collection, false, e);\n };\n\n return handlers;\n })({}),\n // bindingOptions are the options set in the \"data-bind\" attribute in the ui.\n // options are custom options, for instance draggable/sortable specific options\n buildOptions = function (bindingOptions, options) {\n // deep clone/copy of properties from the \"from\" argument onto\n // the \"into\" argument and returns the modified \"into\"\n var merge = function (into, from) {\n for (var prop in from) {\n if (\n Object.prototype.toString.call(from[prop]) === \"[object Object]\"\n ) {\n if (\n Object.prototype.toString.call(into[prop]) !== \"[object Object]\"\n ) {\n into[prop] = {};\n }\n into[prop] = merge(into[prop], from[prop]);\n } else into[prop] = from[prop];\n }\n\n return into;\n },\n // unwrap the supplied options\n unwrappedOptions =\n ko.utils.peekObservable(bindingOptions()).options || {};\n\n // Make sure that we don't modify the provided settings object\n options = merge({}, options);\n\n // group is handled differently since we should both allow to change\n // a draggable to a sortable (and vice versa), but still be able to set\n // a name on a draggable without it becoming a drop target.\n if (\n unwrappedOptions.group &&\n Object.prototype.toString.call(unwrappedOptions.group) !==\n \"[object Object]\"\n ) {\n // group property is a name string declaration, convert to object.\n unwrappedOptions.group = { name: unwrappedOptions.group };\n }\n\n return merge(options, unwrappedOptions);\n };\n\n ko.bindingHandlers.draggable = {\n sortableOptions: {\n group: { pull: \"clone\", put: false },\n sort: false\n },\n init: function (\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext\n ) {\n return init(\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext,\n ko.bindingHandlers.draggable.sortableOptions\n );\n },\n update: function (\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext\n ) {\n return update(\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext,\n ko.bindingHandlers.draggable.sortableOptions\n );\n }\n };\n\n ko.bindingHandlers.sortable = {\n sortableOptions: {\n group: { pull: true, put: true }\n },\n init: function (\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext\n ) {\n return init(\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext,\n ko.bindingHandlers.sortable.sortableOptions\n );\n },\n update: function (\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext\n ) {\n return update(\n element,\n valueAccessor,\n allBindings,\n viewModel,\n bindingContext,\n ko.bindingHandlers.sortable.sortableOptions\n );\n }\n };\n});\n\n\n/***/ }),\n\n/***/ \"./vendor/sortable.js\":\n/*!****************************!*\\\n !*** ./vendor/sortable.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* fork of the \"sortablejs\": \"1.6.1\" because of https://github.com/surveyjs/survey-creator/issues/3727\n\n nothing changed probaly issue was gone because of import order\n*/\n\n/**!\n * Sortable\n * @author\tRubaXa \n * @license MIT\n */\n\n(function sortableModule(factory) {\n \"use strict\";\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n else {}\n})(function sortableFactory() {\n \"use strict\";\n\n if (typeof window == \"undefined\" || !window.document) {\n return function sortableError() {\n throw new Error(\"Sortable.js requires a window with a document\");\n };\n }\n\n var dragEl,\n parentEl,\n ghostEl,\n cloneEl,\n rootEl,\n nextEl,\n lastDownEl,\n\n scrollEl,\n scrollParentEl,\n scrollCustomFn,\n\n lastEl,\n lastCSS,\n lastParentCSS,\n\n oldIndex,\n newIndex,\n\n activeGroup,\n putSortable,\n\n autoScroll = {},\n\n tapEvt,\n touchEvt,\n\n moved,\n\n /** @const */\n R_SPACE = /\\s+/g,\n R_FLOAT = /left|right|inline/,\n\n expando = 'Sortable' + (new Date).getTime(),\n\n win = window,\n document = win.document,\n parseInt = win.parseInt,\n\n $ = win.jQuery || win.Zepto,\n Polymer = win.Polymer,\n\n captureMode = false,\n\n supportDraggable = !!('draggable' in document.createElement('div')),\n supportCssPointerEvents = (function (el) {\n // false when IE11\n if (!!navigator.userAgent.match(/Trident.*rv[ :]?11\\./)) {\n return false;\n }\n el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n })(),\n\n _silent = false,\n\n abs = Math.abs,\n min = Math.min,\n\n savedInputChecked = [],\n touchDragOverListeners = [],\n\n _autoScroll = _throttle(function (/**Event*/evt, /**Object*/options, /**HTMLElement*/rootEl) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (rootEl && options.scroll) {\n var _this = rootEl[expando],\n el,\n rect,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n\n x = evt.clientX,\n y = evt.clientY,\n\n winWidth = window.innerWidth,\n winHeight = window.innerHeight,\n\n vx,\n vy,\n\n scrollOffsetX,\n scrollOffsetY\n ;\n\n // Delect scrollEl\n if (scrollParentEl !== rootEl) {\n scrollEl = options.scroll;\n scrollParentEl = rootEl;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = rootEl;\n\n do {\n if ((scrollEl.offsetWidth < scrollEl.scrollWidth) ||\n (scrollEl.offsetHeight < scrollEl.scrollHeight)\n ) {\n break;\n }\n /* jshint boss:true */\n } while (scrollEl = scrollEl.parentNode);\n }\n }\n\n if (scrollEl) {\n el = scrollEl;\n rect = scrollEl.getBoundingClientRect();\n vx = (abs(rect.right - x) <= sens) - (abs(rect.left - x) <= sens);\n vy = (abs(rect.bottom - y) <= sens) - (abs(rect.top - y) <= sens);\n }\n\n\n if (!(vx || vy)) {\n vx = (winWidth - x <= sens) - (x <= sens);\n vy = (winHeight - y <= sens) - (y <= sens);\n\n /* jshint expr:true */\n (vx || vy) && (el = win);\n }\n\n\n if (autoScroll.vx !== vx || autoScroll.vy !== vy || autoScroll.el !== el) {\n autoScroll.el = el;\n autoScroll.vx = vx;\n autoScroll.vy = vy;\n\n clearInterval(autoScroll.pid);\n\n if (el) {\n autoScroll.pid = setInterval(function () {\n scrollOffsetY = vy ? vy * speed : 0;\n scrollOffsetX = vx ? vx * speed : 0;\n\n if ('function' === typeof (scrollCustomFn)) {\n return scrollCustomFn.call(_this, scrollOffsetX, scrollOffsetY, evt);\n }\n\n if (el === win) {\n win.scrollTo(win.pageXOffset + scrollOffsetX, win.pageYOffset + scrollOffsetY);\n } else {\n el.scrollTop += scrollOffsetY;\n el.scrollLeft += scrollOffsetX;\n }\n }, 24);\n }\n }\n }\n }, 30),\n\n _prepareGroup = function (options) {\n function toFn(value, pull) {\n if (value === void 0 || value === true) {\n value = group.name;\n }\n\n if (typeof value === 'function') {\n return value;\n } else {\n return function (to, from) {\n var fromGroup = from.options.group.name;\n\n return pull\n ? value\n : value && (value.join\n ? value.indexOf(fromGroup) > -1\n : (fromGroup == value)\n );\n };\n }\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || typeof originalGroup != 'object') {\n originalGroup = { name: originalGroup };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n\n options.group = group;\n }\n ;\n\n\n /**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n function Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw 'Sortable: `el` must be HTMLElement, and not ' + {}.toString.call(el);\n }\n\n this.el = el; // root element\n this.options = options = _extend({}, options);\n\n\n // Export instance\n el[expando] = this;\n\n // Default options\n var defaults = {\n group: Math.random(),\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n draggable: /[uo]l/i.test(el.nodeName) ? 'li' : '>*',\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n setData: function (dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: { x: 0, y: 0 }\n };\n\n\n // Set default options\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options);\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n // Setup drag mode\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n // Bind events\n _on(el, 'mousedown', this._onTapStart);\n _on(el, 'touchstart', this._onTapStart);\n _on(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n _on(el, 'dragover', this);\n _on(el, 'dragenter', this);\n }\n\n touchDragOverListeners.push(this._onDragOver);\n\n // Restore sorting\n options.store && this.sort(options.store.get(this));\n }\n\n\n Sortable.prototype = /** @lends Sortable.prototype */ {\n constructor: Sortable,\n\n _onTapStart: function (/** Event|TouchEvent */evt) {\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0],\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0]) || target,\n filter = options.filter,\n startIndex;\n\n _saveInputCheckedState(el);\n\n\n // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button or enabled\n }\n\n\n target = _closest(target, options.draggable, el);\n\n if (!target) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n }\n\n // Get the index of the dragged element within its parent\n startIndex = _index(target, options.draggable);\n\n // Check filter\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent(_this, originalTarget, 'filter', target, el, startIndex);\n preventOnFilter && evt.preventDefault();\n return; // cancel dnd\n }\n }\n else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = _closest(originalTarget, criteria.trim(), el);\n\n if (criteria) {\n _dispatchEvent(_this, criteria, 'filter', target, el, startIndex);\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !_closest(originalTarget, options.handle, el)) {\n return;\n }\n\n // Prepare `dragstart`\n this._prepareDragStart(evt, touch, target, startIndex);\n },\n\n _prepareDragStart: function (/** Event */evt, /** Touch */touch, /** HTMLElement */target, /** Number */startIndex) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && (target.parentNode === el)) {\n tapEvt = evt;\n\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n oldIndex = startIndex;\n\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n\n dragEl.style['will-change'] = 'transform';\n\n dragStartFn = function () {\n // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n _this._disableDelayedDrag();\n\n // Make the element draggable\n dragEl.draggable = _this.nativeDraggable;\n\n // Chosen item\n _toggleClass(dragEl, options.chosenClass, true);\n\n // Bind the events: dragstart/dragend\n _this._triggerDragStart(evt, touch);\n\n // Drag start event\n _dispatchEvent(_this, rootEl, 'choose', dragEl, rootEl, oldIndex);\n };\n\n // Disable \"draggable\"\n options.ignore.split(',').forEach(function (criteria) {\n _find(dragEl, criteria.trim(), _disableDraggable);\n });\n\n _on(ownerDocument, 'mouseup', _this._onDrop);\n _on(ownerDocument, 'touchend', _this._onDrop);\n _on(ownerDocument, 'touchcancel', _this._onDrop);\n _on(ownerDocument, 'pointercancel', _this._onDrop);\n _on(ownerDocument, 'selectstart', _this);\n\n if (options.delay) {\n // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n _on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n _on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n _on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n _on(ownerDocument, 'mousemove', _this._disableDelayedDrag);\n _on(ownerDocument, 'touchmove', _this._disableDelayedDrag);\n _on(ownerDocument, 'pointermove', _this._disableDelayedDrag);\n\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n\n\n }\n },\n\n _disableDelayedDrag: function () {\n var ownerDocument = this.el.ownerDocument;\n\n clearTimeout(this._dragStartTimer);\n _off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n _off(ownerDocument, 'touchend', this._disableDelayedDrag);\n _off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n _off(ownerDocument, 'mousemove', this._disableDelayedDrag);\n _off(ownerDocument, 'touchmove', this._disableDelayedDrag);\n _off(ownerDocument, 'pointermove', this._disableDelayedDrag);\n },\n\n _triggerDragStart: function (/** Event */evt, /** Touch */touch) {\n touch = touch || (evt.pointerType == 'touch' ? evt : null);\n\n if (touch) {\n // Touch device support\n tapEvt = {\n target: dragEl,\n clientX: touch.clientX,\n clientY: touch.clientY\n };\n\n this._onDragStart(tapEvt, 'touch');\n }\n else if (!this.nativeDraggable) {\n this._onDragStart(tapEvt, true);\n }\n else {\n _on(dragEl, 'dragend', this);\n _on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n setTimeout(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {\n }\n },\n\n _dragStarted: function () {\n if (rootEl && dragEl) {\n var options = this.options;\n\n // Apply effect\n _toggleClass(dragEl, options.ghostClass, true);\n _toggleClass(dragEl, options.dragClass, false);\n\n Sortable.active = this;\n\n // Drag start event\n _dispatchEvent(this, rootEl, 'start', dragEl, rootEl, oldIndex);\n } else {\n this._nulling();\n }\n },\n\n _emulateDragOver: function () {\n if (touchEvt) {\n if (this._lastX === touchEvt.clientX && this._lastY === touchEvt.clientY) {\n return;\n }\n\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n if (!supportCssPointerEvents) {\n _css(ghostEl, 'display', 'none');\n }\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY),\n parent = target,\n i = touchDragOverListeners.length;\n\n if (parent) {\n do {\n if (parent[expando]) {\n while (i--) {\n touchDragOverListeners[i]({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n }\n\n break;\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n if (!supportCssPointerEvents) {\n _css(ghostEl, 'display', '');\n }\n }\n },\n\n\n _onTouchMove: function (/**TouchEvent*/evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n dx = (touch.clientX - tapEvt.clientX) + fallbackOffset.x,\n dy = (touch.clientY - tapEvt.clientY) + fallbackOffset.y,\n translate3d = evt.touches ? 'translate3d(' + dx + 'px,' + dy + 'px,0)' : 'translate(' + dx + 'px,' + dy + 'px)';\n\n // only set the status to dragging, when we are actually dragging\n if (!Sortable.active) {\n if (fallbackTolerance &&\n min(abs(touch.clientX - this._lastX), abs(touch.clientY - this._lastY)) < fallbackTolerance\n ) {\n return;\n }\n\n this._dragStarted();\n }\n\n // as well as creating the ghost element on the document body\n this._appendGhost();\n\n moved = true;\n touchEvt = touch;\n\n _css(ghostEl, 'webkitTransform', translate3d);\n _css(ghostEl, 'mozTransform', translate3d);\n _css(ghostEl, 'msTransform', translate3d);\n _css(ghostEl, 'transform', translate3d);\n\n evt.preventDefault();\n }\n },\n\n _appendGhost: function () {\n if (!ghostEl) {\n var rect = dragEl.getBoundingClientRect(),\n css = _css(dragEl),\n options = this.options,\n ghostRect;\n\n ghostEl = dragEl.cloneNode(true);\n\n _toggleClass(ghostEl, options.ghostClass, false);\n _toggleClass(ghostEl, options.fallbackClass, true);\n _toggleClass(ghostEl, options.dragClass, true);\n\n _css(ghostEl, 'top', rect.top - parseInt(css.marginTop, 10));\n _css(ghostEl, 'left', rect.left - parseInt(css.marginLeft, 10));\n _css(ghostEl, 'width', rect.width);\n _css(ghostEl, 'height', rect.height);\n _css(ghostEl, 'opacity', '0.8');\n _css(ghostEl, 'position', 'fixed');\n _css(ghostEl, 'zIndex', '100000');\n _css(ghostEl, 'pointerEvents', 'none');\n\n options.fallbackOnBody && document.body.appendChild(ghostEl) || rootEl.appendChild(ghostEl);\n\n // Fixing dimensions.\n ghostRect = ghostEl.getBoundingClientRect();\n _css(ghostEl, 'width', rect.width * 2 - ghostRect.width);\n _css(ghostEl, 'height', rect.height * 2 - ghostRect.height);\n }\n },\n\n _onDragStart: function (/**Event*/evt, /**boolean*/useFallback) {\n var dataTransfer = evt.dataTransfer,\n options = this.options;\n\n this._offUpEvents();\n\n if (activeGroup.checkPull(this, this, dragEl, evt)) {\n cloneEl = _clone(dragEl);\n\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n _css(cloneEl, 'display', 'none');\n _toggleClass(cloneEl, this.options.chosenClass, false);\n\n rootEl.insertBefore(cloneEl, dragEl);\n _dispatchEvent(this, rootEl, 'clone', dragEl);\n }\n\n _toggleClass(dragEl, options.dragClass, true);\n\n if (useFallback) {\n if (useFallback === 'touch') {\n // Bind touch events\n _on(document, 'touchmove', this._onTouchMove);\n _on(document, 'touchend', this._onDrop);\n _on(document, 'touchcancel', this._onDrop);\n _on(document, 'pointermove', this._onTouchMove);\n _on(document, 'pointerup', this._onDrop);\n } else {\n // Old brwoser\n _on(document, 'mousemove', this._onTouchMove);\n _on(document, 'mouseup', this._onDrop);\n }\n\n this._loopId = setInterval(this._emulateDragOver, 50);\n }\n else {\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(this, dataTransfer, dragEl);\n }\n\n _on(document, 'drop', this);\n setTimeout(this._dragStarted, 0);\n }\n },\n\n _onDragOver: function (/**Event*/evt) {\n var el = this.el,\n target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = (activeGroup === group),\n isMovingBetweenSortable = false,\n canSort = options.sort;\n\n if (evt.preventDefault !== void 0) {\n evt.preventDefault();\n !options.dragoverBubble && evt.stopPropagation();\n }\n\n if (dragEl.animated) {\n return;\n }\n\n moved = true;\n\n if (activeSortable && !options.disabled &&\n (isOwner\n ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : (\n putSortable === this ||\n (\n (activeSortable.lastPullMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) &&\n group.checkPut(this, activeSortable, dragEl, evt)\n )\n )\n ) &&\n (evt.rootEl === void 0 || evt.rootEl === this.el) // touch fallback\n ) {\n // Smart auto-scrolling\n _autoScroll(evt, options, this.el);\n\n if (_silent) {\n return;\n }\n\n target = _closest(evt.target, options.draggable, el);\n dragRect = dragEl.getBoundingClientRect();\n\n if (putSortable !== this) {\n putSortable = this;\n isMovingBetweenSortable = true;\n }\n\n if (revert) {\n _cloneHide(activeSortable, true);\n parentEl = rootEl; // actualization\n\n if (cloneEl || nextEl) {\n rootEl.insertBefore(dragEl, cloneEl || nextEl);\n }\n else if (!canSort) {\n rootEl.appendChild(dragEl);\n }\n\n return;\n }\n\n\n if ((el.children.length === 0) || (el.children[0] === ghostEl) ||\n (el === evt.target) && (_ghostIsLast(el, evt))\n ) {\n //assign target only if condition is true\n if (el.children.length !== 0 && el.children[0] !== ghostEl && el === evt.target) {\n target = el.lastElementChild;\n }\n\n if (target) {\n if (target.animated) {\n return;\n }\n\n targetRect = target.getBoundingClientRect();\n }\n\n _cloneHide(activeSortable, isOwner);\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt) !== false) {\n if (!dragEl.contains(el)) {\n el.appendChild(dragEl);\n parentEl = el; // actualization\n }\n\n this._animate(dragRect, dragEl);\n target && this._animate(targetRect, target);\n }\n }\n else if (target && !target.animated && target !== dragEl && (target.parentNode[expando] !== void 0)) {\n if (lastEl !== target) {\n lastEl = target;\n lastCSS = _css(target);\n lastParentCSS = _css(target.parentNode);\n }\n\n targetRect = target.getBoundingClientRect();\n\n var width = targetRect.right - targetRect.left,\n height = targetRect.bottom - targetRect.top,\n floating = R_FLOAT.test(lastCSS.cssFloat + lastCSS.display)\n || (lastParentCSS.display == 'flex' && lastParentCSS['flex-direction'].indexOf('row') === 0),\n isWide = (target.offsetWidth > dragEl.offsetWidth),\n isLong = (target.offsetHeight > dragEl.offsetHeight),\n halfway = (floating ? (evt.clientX - targetRect.left) / width : (evt.clientY - targetRect.top) / height) > 0.5,\n nextSibling = target.nextElementSibling,\n after = false\n ;\n\n if (floating) {\n var elTop = dragEl.offsetTop,\n tgTop = target.offsetTop;\n\n if (elTop === tgTop) {\n after = (target.previousElementSibling === dragEl) && !isWide || halfway && isWide;\n }\n else if (target.previousElementSibling === dragEl || dragEl.previousElementSibling === target) {\n after = (evt.clientY - targetRect.top) / height > 0.5;\n } else {\n after = tgTop > elTop;\n }\n } else if (!isMovingBetweenSortable) {\n after = (nextSibling !== dragEl) && !isLong || halfway && isLong;\n }\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = (moveVector === 1);\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n\n _cloneHide(activeSortable, isOwner);\n\n if (!dragEl.contains(el)) {\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n }\n }\n\n parentEl = dragEl.parentNode; // actualization\n\n this._animate(dragRect, dragEl);\n this._animate(targetRect, target);\n }\n }\n }\n },\n\n _animate: function (prevRect, target) {\n var ms = this.options.animation;\n\n if (ms) {\n var currentRect = target.getBoundingClientRect();\n\n if (prevRect.nodeType === 1) {\n prevRect = prevRect.getBoundingClientRect();\n }\n\n _css(target, 'transition', 'none');\n _css(target, 'transform', 'translate3d('\n + (prevRect.left - currentRect.left) + 'px,'\n + (prevRect.top - currentRect.top) + 'px,0)'\n );\n\n target.offsetWidth; // repaint\n\n _css(target, 'transition', 'all ' + ms + 'ms');\n _css(target, 'transform', 'translate3d(0,0,0)');\n\n clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n _css(target, 'transition', '');\n _css(target, 'transform', '');\n target.animated = false;\n }, ms);\n }\n },\n\n _offUpEvents: function () {\n var ownerDocument = this.el.ownerDocument;\n\n _off(document, 'touchmove', this._onTouchMove);\n _off(document, 'pointermove', this._onTouchMove);\n _off(ownerDocument, 'mouseup', this._onDrop);\n _off(ownerDocument, 'touchend', this._onDrop);\n _off(ownerDocument, 'pointerup', this._onDrop);\n _off(ownerDocument, 'touchcancel', this._onDrop);\n _off(ownerDocument, 'pointercancel', this._onDrop);\n _off(ownerDocument, 'selectstart', this);\n },\n\n _onDrop: function (/**Event*/evt) {\n var el = this.el,\n options = this.options;\n\n clearInterval(this._loopId);\n clearInterval(autoScroll.pid);\n clearTimeout(this._dragStartTimer);\n\n // Unbind events\n _off(document, 'mousemove', this._onTouchMove);\n\n if (this.nativeDraggable) {\n _off(document, 'drop', this);\n _off(el, 'dragstart', this._onDragStart);\n }\n\n this._offUpEvents();\n\n if (evt) {\n if (moved) {\n evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || Sortable.active.lastPullMode !== 'clone') {\n // Remove clone\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n _off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n dragEl.style['will-change'] = '';\n\n // Remove class's\n _toggleClass(dragEl, this.options.ghostClass, false);\n _toggleClass(dragEl, this.options.chosenClass, false);\n\n // Drag stop event\n _dispatchEvent(this, rootEl, 'unchoose', dragEl, rootEl, oldIndex);\n\n if (rootEl !== parentEl) {\n newIndex = _index(dragEl, options.draggable);\n\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent(null, parentEl, 'add', dragEl, rootEl, oldIndex, newIndex);\n\n // Remove event\n _dispatchEvent(this, rootEl, 'remove', dragEl, rootEl, oldIndex, newIndex);\n\n // drag from one list and drop into another\n _dispatchEvent(null, parentEl, 'sort', dragEl, rootEl, oldIndex, newIndex);\n _dispatchEvent(this, rootEl, 'sort', dragEl, rootEl, oldIndex, newIndex);\n }\n }\n else {\n if (dragEl.nextSibling !== nextEl) {\n // Get the index of the dragged element within its parent\n newIndex = _index(dragEl, options.draggable);\n\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent(this, rootEl, 'update', dragEl, rootEl, oldIndex, newIndex);\n _dispatchEvent(this, rootEl, 'sort', dragEl, rootEl, oldIndex, newIndex);\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n }\n\n _dispatchEvent(this, rootEl, 'end', dragEl, rootEl, oldIndex, newIndex);\n\n // Save sorting\n this.save();\n }\n }\n\n }\n\n this._nulling();\n },\n\n _nulling: function () {\n rootEl =\n dragEl =\n parentEl =\n ghostEl =\n nextEl =\n cloneEl =\n lastDownEl =\n\n scrollEl =\n scrollParentEl =\n\n tapEvt =\n touchEvt =\n\n moved =\n newIndex =\n\n lastEl =\n lastCSS =\n\n putSortable =\n activeGroup =\n Sortable.active = null;\n\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = 0;\n },\n\n handleEvent: function (/**Event*/evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n break;\n\n case 'dragover':\n case 'dragenter':\n if (dragEl) {\n this._onDragOver(evt);\n _globalDragOver(evt);\n }\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function () {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n if (_closest(el, options.draggable, this.el)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function (order) {\n var items = {}, rootEl = this.el;\n\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (_closest(el, this.options.draggable, rootEl)) {\n items[id] = el;\n }\n }, this);\n\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n\n /**\n * Save the current sorting\n */\n save: function () {\n var store = this.options.store;\n store && store.set(this);\n },\n\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function (el, selector) {\n return _closest(el, selector || this.options.draggable, this.el);\n },\n\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function (name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n options[name] = value;\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n\n /**\n * Destroy\n */\n destroy: function () {\n var el = this.el;\n\n el[expando] = null;\n\n _off(el, 'mousedown', this._onTapStart);\n _off(el, 'touchstart', this._onTapStart);\n _off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n _off(el, 'dragover', this);\n _off(el, 'dragenter', this);\n }\n\n // Remove draggable attributes\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n touchDragOverListeners.splice(touchDragOverListeners.indexOf(this._onDragOver), 1);\n\n this._onDrop();\n\n this.el = el = null;\n }\n };\n\n\n function _cloneHide(sortable, state) {\n if (sortable.lastPullMode !== 'clone') {\n state = true;\n }\n\n if (cloneEl && (cloneEl.state !== state)) {\n _css(cloneEl, 'display', state ? 'none' : '');\n\n if (!state) {\n if (cloneEl.state) {\n if (sortable.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, nextEl);\n sortable._animate(dragEl, cloneEl);\n } else {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n }\n }\n\n cloneEl.state = state;\n }\n }\n\n\n function _closest(/**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if ((selector === '>*' && el.parentNode === ctx) || _matches(el, selector)) {\n return el;\n }\n /* jshint boss:true */\n } while (el = _getParentOrHost(el));\n }\n\n return null;\n }\n\n\n function _getParentOrHost(el) {\n var parent = el.host;\n\n return (parent && parent.nodeType) ? parent : el.parentNode;\n }\n\n\n function _globalDragOver(/**Event*/evt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n evt.preventDefault();\n }\n\n\n function _on(el, event, fn) {\n el.addEventListener(event, fn, captureMode);\n }\n\n\n function _off(el, event, fn) {\n el.removeEventListener(event, fn, captureMode);\n }\n\n\n function _toggleClass(el, name, state) {\n if (el) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n }\n else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n }\n\n\n function _css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n }\n else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n }\n else {\n if (!(prop in style)) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n }\n\n\n function _find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName), i = 0, n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n }\n\n\n\n function _dispatchEvent(sortable, rootEl, name, targetEl, fromEl, startIndex, newIndex) {\n sortable = (sortable || rootEl[expando]);\n\n var evt = document.createEvent('Event'),\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n\n evt.initEvent(name, true, true);\n\n evt.to = rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n\n evt.oldIndex = startIndex;\n evt.newIndex = newIndex;\n\n rootEl && rootEl.dispatchEvent(evt);\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n }\n\n\n function _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvt, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal;\n\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || toEl.getBoundingClientRect();\n evt.willInsertAfter = willInsertAfter;\n\n fromEl && fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvt);\n }\n\n return retVal;\n }\n\n\n function _disableDraggable(el) {\n el.draggable = false;\n }\n\n\n function _unsilent() {\n _silent = false;\n }\n\n\n /** @returns {HTMLElement|false} */\n function _ghostIsLast(el, evt) {\n var lastEl = el.lastElementChild,\n rect = lastEl.getBoundingClientRect();\n\n // 5 — min delta\n // abs — нельзя добавлять, а то глюки при наведении сверху\n return (evt.clientY - (rect.top + rect.height) > 5) ||\n (evt.clientX - (rect.left + rect.width) > 5);\n }\n\n\n /**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n function _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n }\n\n /**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n function _index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n\n while (el && (el = el.previousElementSibling)) {\n if ((el.nodeName.toUpperCase() !== 'TEMPLATE') && (selector === '>*' || _matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n }\n\n function _matches(/**HTMLElement*/el, /**String*/selector) {\n if (el) {\n selector = selector.split('.');\n\n var tag = selector.shift().toUpperCase(),\n re = new RegExp('\\\\s(' + selector.join('|') + ')(?=\\\\s)', 'g');\n\n return (\n (tag === '' || el.nodeName.toUpperCase() == tag) &&\n (!selector.length || ((' ' + el.className + ' ').match(re) || []).length == selector.length)\n );\n }\n\n return false;\n }\n\n function _throttle(callback, ms) {\n var args, _this;\n\n return function () {\n if (args === void 0) {\n args = arguments;\n _this = this;\n\n setTimeout(function () {\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n args = void 0;\n }, ms);\n }\n };\n }\n\n function _extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n }\n\n function _clone(el) {\n return $\n ? $(el).clone(true)[0]\n : (Polymer && Polymer.dom\n ? Polymer.dom(el).cloneNode(true)\n : el.cloneNode(true)\n );\n }\n\n function _saveInputCheckedState(root) {\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n }\n\n // Fixed #973: \n _on(document, 'touchmove', function (evt) {\n if (Sortable.active) {\n evt.preventDefault();\n }\n });\n\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: function () {\n captureMode = {\n capture: false,\n passive: false\n };\n }\n }));\n } catch (err) { }\n\n // Export utils\n Sortable.utils = {\n on: _on,\n off: _off,\n css: _css,\n find: _find,\n is: function (el, selector) {\n return !!_closest(el, selector, el);\n },\n extend: _extend,\n throttle: _throttle,\n closest: _closest,\n toggleClass: _toggleClass,\n clone: _clone,\n index: _index\n };\n\n\n /**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n Sortable.create = function (el, options) {\n return new Sortable(el, options);\n };\n\n\n // Export\n Sortable.version = '1.6.1';\n return Sortable;\n});\n\n\n/***/ }),\n\n/***/ \"knockout\":\n/*!********************************************************************************************!*\\\n !*** external {\"root\":\"ko\",\"commonjs2\":\"knockout\",\"commonjs\":\"knockout\",\"amd\":\"knockout\"} ***!\n \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_knockout__;\n\n/***/ }),\n\n/***/ \"survey-knockout\":\n/*!*********************************************************************************************************************!*\\\n !*** external {\"root\":\"Survey\",\"commonjs2\":\"survey-knockout\",\"commonjs\":\"survey-knockout\",\"amd\":\"survey-knockout\"} ***!\n \\*********************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_survey_knockout__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvZmxvd3BhbmVsLWFjdGlvbnMuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL2ltYWdlLWl0ZW1zLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9hZG9ybmVycy9pbWFnZS5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvaXRlbS1lZGl0b3IuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3F1ZXN0aW9uLWFjdGlvbnMuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3JhdGluZy1pdGVtLWVkaXRvci5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvc2VsZWN0LWl0ZW1zLWRpc3BsYXkuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3NlbGVjdC1pdGVtcy1lZGl0b3IuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3RpdGxlLWFjdGlvbnMuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3RpdGxlLWVkaXRvci5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy9wYWdlcy1lZGl0b3IuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJveC1pdGVtLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9jb21wb25lbnRzL3Rvb2xib3guaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3RlbXBsYXRlcy9lbnRyeS5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvYWNjb3JkaW9uLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy91dGlscy9kZXNpZ25lci1jb250YWluZXIuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL2Rlc2lnbmVyLWgtY29udGFpbmVyLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL25vZGVfbW9kdWxlcy9wYXBhcGFyc2UvcGFwYXBhcnNlLm1pbi5qcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vbm9kZV9tb2R1bGVzL3Jtb2RhbC9pbmRleC5lcy5qcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL2Zsb3dwYW5lbC1hY3Rpb25zLnNjc3M/MmRiYiIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL2Zsb3dwYW5lbC1hY3Rpb25zLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvaW1hZ2UtaXRlbXMuc2Nzcz8zYTU4Iiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvaW1hZ2UtaXRlbXMudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9hZG9ybmVycy9pbWFnZS5zY3NzPzQzNWEiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9hZG9ybmVycy9pbWFnZS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL2l0ZW0tZWRpdG9yLnNjc3M/Y2FjMiIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL2l0ZW0tZWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvbGFiZWwtZWRpdG9yLnNjc3M/MDg3MCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL2xhYmVsLWVkaXRvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3F1ZXN0aW9uLWFjdGlvbnMuc2Nzcz8wNjE2Iiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvcXVlc3Rpb24tYWN0aW9ucy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3JhdGluZy1pdGVtLWVkaXRvci5zY3NzP2FmY2IiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9hZG9ybmVycy9yYXRpbmctaXRlbS1lZGl0b3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9hZG9ybmVycy9zZWxlY3QtaXRlbXMtZGlzcGxheS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3NlbGVjdC1pdGVtcy1lZGl0b3Iuc2Nzcz9mMDY0Iiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvc2VsZWN0LWl0ZW1zLWVkaXRvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3NlbGVjdC1pdGVtcy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3RpdGxlLWFjdGlvbnMuc2Nzcz9mNzk4Iiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvYWRvcm5lcnMvdGl0bGUtYWN0aW9ucy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2Fkb3JuZXJzL3RpdGxlLWVkaXRvci5zY3NzP2EwODQiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9hZG9ybmVycy90aXRsZS1lZGl0b3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9hZG9ybmVycy90aXRsZS1pbWFnZS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2NvbW1hbmRzLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy9lbGVtZW50LXNlbGVjdG9yLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9jb21wb25lbnRzL2VsZW1lbnQtc2VsZWN0b3Iuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2NvbXBvbmVudHMvZWxlbWVudC1zZWxlY3Rvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2NvbXBvbmVudHMvcGFnZXMtZWRpdG9yLnNjc3M/YjEwMCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2NvbXBvbmVudHMvcGFnZXMtZWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy9yZXN1bHRzLXRhYmxlLXJvdy5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy9yZXN1bHRzLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9jb21wb25lbnRzL3Jlc3VsdHMuc2Nzcz85MzA0Iiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy9yZXN1bHRzLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy9zaW11bGF0b3IuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2NvbXBvbmVudHMvc2ltdWxhdG9yLnNjc3M/NTA2ZCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2NvbXBvbmVudHMvc2ltdWxhdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy90b29sYmFyLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIuc2Nzcz9jOTMxIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy90b29sYmFyLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy90b29sYm94LWl0ZW0uc2Nzcz9hYzEyIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy90b29sYm94LWl0ZW0udHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9jb21wb25lbnRzL3Rvb2xib3guc2Nzcz81MzdiIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY29tcG9uZW50cy90b29sYm94LnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvY3JlYXRvci1iYXNlLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvZHJhZ2Ryb3BoZWxwZXIudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9lZGl0b3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9lZGl0b3JMb2NhbGl6YXRpb24udHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9lbnRyaWVzL2hlbHBlcnMudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9lbnRyaWVzL2luZGV4LnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvZXhwcmVzc2lvblRvRGlzcGxheVRleHQudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9leHRlbnRpb25zLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvaW1hZ2VzL1lvdVR1YmUucG5nIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvaW1hZ2VzL3N0YXJ0LWRlc2lnbmluZy1mb3JtLnN2ZyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2pzb241LnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbG9jYWxpemF0aW9uL2FyYWJpYy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9jcm9hdGlhbi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9jemVjaC50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9kYW5pc2gudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vZHV0Y2gudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vZW5nbGlzaC50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9maW5uaXNoLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbG9jYWxpemF0aW9uL2ZyZW5jaC50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9nZXJtYW4udHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vaHVuZ2FyaWFuLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbG9jYWxpemF0aW9uL2luZG9uZXNpYW4udHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vaXRhbGlhbi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9qYXBhbmVzZS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9rb3JlYW4udHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vbWFsYXkudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vbW9uZ29saWFuLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbG9jYWxpemF0aW9uL25vcndlZ2lhbi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9wZXJzaWFuLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbG9jYWxpemF0aW9uL3BvbGlzaC50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9wb3J0dWd1ZXNlLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbG9jYWxpemF0aW9uL3J1c3NpYW4udHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vc2ltcGxpZmllZC1jaGluZXNlLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbG9jYWxpemF0aW9uL3Nsb3Zhay50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi9zcGFuaXNoLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbG9jYWxpemF0aW9uL3N3ZWRpc2gudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vdGFqaWsudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9sb2NhbGl6YXRpb24vdHJhZGl0aW9uYWwtY2hpbmVzZS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL2xvY2FsaXphdGlvbi90dXJraXNoLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvbWFpbi5zY3NzP2Y0MWIiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9vYmplY3RQcm9wZXJ0eS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3BhZ2VzLWVkaXRvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvYmluZGluZ3MuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvYmluZGluZ3Muc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvYmluZGluZ3MudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL2Jvb2xlYW4uaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvYm9vbGVhbi5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9ib29sZWFuLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9jZWxscy5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9jZWxscy5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9jZWxscy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvY29sb3IuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvY29sb3Iuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvY29sb3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL2NvbmRpdGlvbi5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9jb25kaXRpb24uc2Nzcz8wNjk0Iiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9jb25kaXRpb24udHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL2N1c3RvbS5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9jdXN0b20uc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvY3VzdG9tLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9kZWZhdWx0LXZhbHVlLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL2RlZmF1bHQtdmFsdWUuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvZGVmYXVsdC12YWx1ZS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvZHJvcGRvd24uaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvZHJvcGRvd24uc2Nzcz9kNTNlIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9kcm9wZG93bi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvZXJyb3IuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvZXJyb3Iuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvZXJyb3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL2V4cHJlc3Npb24uaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvZXhwcmVzc2lvbi5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9leHByZXNzaW9uLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9maWxlLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL2ZpbGUuc2Nzcz9iYzMwIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9maWxlLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9odG1sLXBlLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL2h0bWwtcGUuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvaHRtbC1wZS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvaXRlbS12YWx1ZXMuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvaXRlbS12YWx1ZXMuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvaXRlbS12YWx1ZXMudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL21vZGFsLWNvbnRlbnQuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvbW9kYWwtY29udGVudC5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9tb2RhbC1jb250ZW50LnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9tb2RhbC5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9tb2RhbC5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9tb2RhbC50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvbXVsdGlwbGUtdmFsdWVzLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL211bHRpcGxlLXZhbHVlcy5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9tdWx0aXBsZS12YWx1ZXMudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL25lc3RlZC1pdGVtLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL25lc3RlZC1pdGVtLnNjc3MiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL25lc3RlZC1pdGVtLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9uZXN0ZWQtaXRlbXMuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvbmVzdGVkLWl0ZW1zLnNjc3MiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL25lc3RlZC1pdGVtcy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvbmVzdGVkLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL25lc3RlZC5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9uZXN0ZWQudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL251bWJlci5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9udW1iZXIuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvbnVtYmVyLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9vbmUtc2VsZWN0ZWQuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvb25lLXNlbGVjdGVkLnNjc3M/ZThjNyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvb25lLXNlbGVjdGVkLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9wcm9wZXJ0eS1lZGl0b3IuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvcHJvcGVydHktZWRpdG9yLnNjc3MiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL3Byb3BlcnR5LWVkaXRvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvcmVzdGZ1bGwuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvcmVzdGZ1bGwuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvcmVzdGZ1bGwudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL3N0cmluZy5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9zdHJpbmcuc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvc3RyaW5nLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy9zdHJpbmdzLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL3N0cmluZ3Muc2NzcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvc3RyaW5ncy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvc3dpdGNoLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL3N3aXRjaC5zY3NzP2YxYjUiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL3N3aXRjaC50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWVkaXRvcnMvdGV4dC5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZWRpdG9ycy90ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1lZGl0b3JzL3RleHQudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1ncmlkL29iamVjdC1lZGl0b3ItY29udGVudC5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yLWNvbnRlbnQuc2Nzcz8zOGYzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yLWNvbnRlbnQudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eS1ncmlkL29iamVjdC1lZGl0b3Itb2xkLXRhYmxlLWNvbnRlbnQuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWdyaWQvb2JqZWN0LWVkaXRvci1vbGQtdGFibGUtY29udGVudC5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yLW9sZC10YWJsZS1jb250ZW50LnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yLXRhYi5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yLXRhYi5zY3NzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yLXRhYi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWdyaWQvb2JqZWN0LWVkaXRvci5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yLnNjc3M/NzE3MiIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWdyaWQvb2JqZWN0LWVkaXRvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLnNjc3M/ZWNkOCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5RWRpdG9ycy9lZGl0YWJsZU9iamVjdC50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUJpbmRpbmdzRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5Q2FsY3VsYXRlZFZhbHVlcy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUNlbGxzRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5Q29uZGl0aW9uRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5Q3VzdG9tRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RGVmYXVsdFZhbHVlRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RWRpdG9yQmFzZS50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckZhY3RvcnkudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlIdG1sQ29uZGl0aW9uRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5SXRlbVZhbHVlc0VkaXRvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUl0ZW1zRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5TWF0cml4RHJvcGRvd25Db2x1bW5zRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5TW9kYWxFZGl0b3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlNdWx0aXBsZVZhbHVlc0VkaXRvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU5lc3RlZFByb3BlcnR5RWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5T25lU2VsZWN0ZWRFZGl0b3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlQYWdlc0VkaXRvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eVJlc3RmdWxsRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5VGV4dEl0ZW1zRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5VHJpZ2dlcnNFZGl0b3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlVcmxDb25kaXRpb25FZGl0b3IudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlWYWxpZGF0b3JzRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcHJvcGVydHlFZGl0b3JzL3N1cnZleUVsZW1lbnRTZWxlY3Rvci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3F1ZXN0aW9uRWRpdG9ycy9wcm9wZXJ0aWVzLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uRWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uRWRpdG9yRGVmaW5pdGlvbi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3F1ZXN0aW9uY29udmVydGVyLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvc2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy9zdHlsZXNtYW5hZ2VyLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvc3VydmV5SGVscGVyLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvc3VydmV5T2JqZWN0cy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3N1cnZleWpzT2JqZWN0cy50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3N2Z2J1bmRsZS5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy9lbWJlZC5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy9lbWJlZC5zY3NzPzMyN2IiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90YWJzL2VtYmVkLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy9qc29uLWVkaXRvci5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy9qc29uLWVkaXRvci5zY3NzPzEzNWUiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90YWJzL2pzb24tZWRpdG9yLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy9sb2dpYy5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy9sb2dpYy5zY3NzPzhiM2YiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90YWJzL2xvZ2ljLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy90ZXN0Lmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90YWJzL3Rlc3Quc2Nzcz81MDg1Iiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy90ZXN0LnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy90cmFuc2xhdGlvbi1ncm91cC5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy90cmFuc2xhdGlvbi5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGFicy90cmFuc2xhdGlvbi5zY3NzPzkyODUiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90YWJzL3RyYW5zbGF0aW9uLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGVtcGxhdGVzL2NvbnZlcnQtYWN0aW9uLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90ZW1wbGF0ZXMvZGVzaWduLXN1cmZhY2UuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3RlbXBsYXRlcy9pbmRleC5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGVtcGxhdGVzL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eWVkaXRvci10cmlnZ2Vyc2l0ZW1zLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90ZW1wbGF0ZXMvcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uZWRpdG9yLmh0bWwiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90ZW1wbGF0ZXMvdGFicy5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdGVtcGxhdGVzL3Rvb2xiYXIuaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3RleHRXb3JrZXIudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy90b29sYm94LnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdW5kb3JlZG9tYW5hZ2VyLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvYWNjb3JkaW9uLnNjc3M/OTQwZSIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL2FjY29yZGlvbi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL2Jvb2xlYW4uaHRtbCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL2Jvb2xlYW4uc2Nzcz9jN2RiIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvYm9vbGVhbi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL2J1dHRvbi5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvYnV0dG9uLnNjc3M/YzU0MyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL2J1dHRvbi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL2N1c3RvbS1jaGVja2JveC5zY3NzPzVkZmUiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy91dGlscy9jdXN0b20tc2VsZWN0LnNjc3M/NGMzOCIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL2RkbWVudS5zY3NzPzYwOTIiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy91dGlscy9kZXNpZ25lci1jb250YWluZXIuc2Nzcz83YjIyIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvZGVzaWduZXItY29udGFpbmVyLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvZGVzaWduZXItaC1jb250YWluZXIuc2Nzcz8wNTQzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvZGVzaWduZXItaC1jb250YWluZXIudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy91dGlscy9kcm9wZG93bi5odG1sIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvZHJvcGRvd24uc2Nzcz80NWRmIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi9zcmMvdXRpbHMvZHJvcGRvd24udHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy91dGlscy9zcGxpdHRlci5zY3NzP2VkYjkiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy91dGlscy9zcGxpdHRlci50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL3N1cnZleS13aWRnZXQudHMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3NyYy91dGlscy9zdmctaWNvbi50cyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yLy4vc3JjL3V0aWxzL3V0aWxzLnRzIiwid2VicGFjazovL1N1cnZleUNyZWF0b3IvLi92ZW5kb3Iva25vY2tvdXQtc29ydGFibGUuanMiLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci8uL3ZlbmRvci9zb3J0YWJsZS5qcyIsIndlYnBhY2s6Ly9TdXJ2ZXlDcmVhdG9yL2V4dGVybmFsIHtcInJvb3RcIjpcImtvXCIsXCJjb21tb25qczJcIjpcImtub2Nrb3V0XCIsXCJjb21tb25qc1wiOlwia25vY2tvdXRcIixcImFtZFwiOlwia25vY2tvdXRcIn0iLCJ3ZWJwYWNrOi8vU3VydmV5Q3JlYXRvci9leHRlcm5hbCB7XCJyb290XCI6XCJTdXJ2ZXlcIixcImNvbW1vbmpzMlwiOlwic3VydmV5LWtub2Nrb3V0XCIsXCJjb21tb25qc1wiOlwic3VydmV5LWtub2Nrb3V0XCIsXCJhbWRcIjpcInN1cnZleS1rbm9ja291dFwifSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsTztRQ1ZBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBOzs7UUFHQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNB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QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHdCQUF3QixFQUFFOztBQUVwRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsd0JBQXdCLEVBQUU7QUFDcEQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRWUscUVBQU0sRUFBQztBQUN0Qjs7Ozs7Ozs7Ozs7O0FDaE1BLHVDOzs7Ozs7Ozs7Ozs7Ozs7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QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQUFTO0FBQzhCO0FBQ0Y7QUFDUDtBQUNSO0FBRXFCO0FBRXBDLElBQUksT0FBZSxDQUFDO0FBQzNCLE9BQU8sR0FBRyxVQUFHLFFBQW1CLENBQUUsQ0FBQztBQUVVO0FBQzdDLDBEQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsa0NBQWtDO0FBRWhCO0FBQ3VCO0FBQ0E7QUFDcEM7QUFFWTtBQUNnQjtBQUNjO0FB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUssSUFBSTtBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYOztBQUVBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHdCQUF3Qjs7QUFFeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGNBQWMsNEJBQTRCO0FBQzFDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtB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QUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7O0FBR0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOzs7QUFHTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw0QkFBNEI7O0FBRTVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBLHlDQUF5Qzs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDJCQUEyQjs7QUFFM0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOzs7QUFHTDtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOzs7QUFHTDtBQUNBO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQTtBQUNBLG9CQUFvQjs7QUFFcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSzs7O0FBR0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7O0FBR0w7QUFDQTtBQUNBLGlCQUFpQixZQUFZO0FBQzdCLGlCQUFpQixPQUFPO0FBQ3hCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxLQUFLOzs7QUFHTDtBQUNBO0FBQ0EsaUJBQWlCLE9BQU87QUFDeEIsaUJBQWlCLEVBQUU7QUFDbkIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7O0FBR0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYyxPQUFPO0FBQ3JCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7Ozs7QUFJQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOzs7QUFHQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0EsZUFBZSxZQUFZO0FBQzNCLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBYyxZQUFZO0FBQzFCLGNBQWMsU0FBUztBQUN2QixjQUFjO0FBQ2Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUE7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0Esa0VBQWtFO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHLGNBQWM7O0FBRWpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSxhQUFhLFlBQVk7QUFDekIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOzs7Ozs7Ozs7Ozs7QUN2OUNELHNEOzs7Ozs7Ozs7OztBQ0FBLDZEIiwiZmlsZSI6InN1cnZleS1jcmVhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwia25vY2tvdXRcIiksIHJlcXVpcmUoXCJzdXJ2ZXkta25vY2tvdXRcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoXCJTdXJ2ZXlDcmVhdG9yXCIsIFtcImtub2Nrb3V0XCIsIFwic3VydmV5LWtub2Nrb3V0XCJdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIlN1cnZleUNyZWF0b3JcIl0gPSBmYWN0b3J5KHJlcXVpcmUoXCJrbm9ja291dFwiKSwgcmVxdWlyZShcInN1cnZleS1rbm9ja291dFwiKSk7XG5cdGVsc2Vcblx0XHRyb290W1wiU3VydmV5Q3JlYXRvclwiXSA9IGZhY3Rvcnkocm9vdFtcImtvXCJdLCByb290W1wiU3VydmV5XCJdKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfa25vY2tvdXRfXywgX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zdXJ2ZXlfa25vY2tvdXRfXykge1xucmV0dXJuICIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBcIi4vc3JjL2VudHJpZXMvaW5kZXgudHNcIik7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdj5cXG4gICAgPCEtLSBrbyBmb3JlYWNoOiBhY3Rpb25zIC0tPlxcbiAgICA8IS0tIGtvIGlmOiAhJGRhdGEudGVtcGxhdGUgLS0+XFxuICAgIDxzcGFuIGNsYXNzPVxcXCJzdmRhX3F1ZXN0aW9uX2FjdGlvbiBzdmQtbWFpbi1jb2xvclxcXCIgZGF0YS1iaW5kPVxcXCJrZXkyY2xpY2ssIGNsaWNrTm9Gb2N1czogZnVuY3Rpb24oKSB7IG9uQ2xpY2soJHBhcmVudC5xdWVzdGlvbik7IH0sIGF0dHI6IHsgdGl0bGU6IHRleHQsIHRhYmluZGV4OiAkZGF0YS5uZWVkRm9jdXMgPT09IHVuZGVmaW5lZCB8fCAhISRkYXRhLm5lZWRGb2N1cyA/IDAgOiB1bmRlZmluZWQgfVxcXCI+XFxuICAgICAgICA8c3Bhbj5cXG4gICAgICAgICAgICA8c3ZnLWljb24gY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiIGRhdGEtYmluZD1cXFwiY3NzOiAkcGFyZW50LmdldFN0eWxlKCRkYXRhKVxcXCIgcGFyYW1zPVxcXCJpY29uTmFtZTogJHBhcmVudC5nZXRTdHlsZSgkZGF0YSlcXFwiPjwvc3ZnLWljb24+XFxuICAgICAgICA8L3NwYW4+XFxuICAgICAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmhhc1RpdGxlID8gdGV4dDogJydcXFwiPjwvc3Bhbj5cXG4gICAgPC9zcGFuPlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPCEtLSBrbyBpZjogISEkZGF0YS50ZW1wbGF0ZSAtLT5cXG4gICAgPCEtLSBrbyB0ZW1wbGF0ZTogdGVtcGxhdGUgLS0+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPCEtLSAva28gLS0+XFxuPC9kaXY+XCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInN2ZGEtY29udGVudFxcXCI+XFxuICA8c3BhbiBjbGFzcz1cXFwic3ZkYS1pbWFnZS1lZGl0b3JcXFwiPlxcbiAgICA8c3BhblxcbiAgICAgIGNsYXNzPVxcXCJlZGl0LWltYWdlLWl0ZW1cXFwiXFxuICAgICAgcm9sZT1cXFwiYnV0dG9uXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IGNob29zZUltYWdlLCBjbGlja0J1YmJsZTogZmFsc2UsIGF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZygncGUuZWRpdCcpLCAnYXJpYS1sYWJlbCc6IGdldExvY1N0cmluZygncGUuZWRpdCcpIH1cXFwiXFxuICAgID5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtcHJpbWFyeS1pY29uXFxcIlxcbiAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZWVkaXQnLCBzaXplOiAxMlxcXCJcXG4gICAgICA+PC9zdmctaWNvbj5cXG4gICAgPC9zcGFuPlxcbiAgPC9zcGFuPlxcbiAgPHNwYW5cXG4gICAgY2xhc3M9XFxcInN2ZGEtZHJhZy1oYW5kbGVcXFwiXFxuICAgIHJvbGU9XFxcImJ1dHRvblxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJhdHRyOiB7IHRpdGxlOiBnZXRMb2NTdHJpbmcoJ3BlLm1vdmUnKSwgJ2FyaWEtbGFiZWwnOiBnZXRMb2NTdHJpbmcoJ3BlLm1vdmUnKSB9XFxcIlxcbiAgPlxcbiAgICA8c3ZnLWljb25cXG4gICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1pbnBsYWNlZHJhZ2dhYmxlJywgc2l6ZTogMTJcXFwiXFxuICAgID48L3N2Zy1pY29uPlxcbiAgPC9zcGFuPlxcbiAgPCEtLSBrbyBpZm5vdDogaXNMYXN0SXRlbSAtLT5cXG4gIDxzcGFuXFxuICAgIGNsYXNzPVxcXCJzdmRhLWRlbGV0ZS1pdGVtXFxcIlxcbiAgICByb2xlPVxcXCJidXR0b25cXFwiXFxuICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IGRlbGV0ZUl0ZW0sIGF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZygncGUuZGVsZXRlJyksICdhcmlhLWxhYmVsJzogZ2V0TG9jU3RyaW5nKCdwZS5kZWxldGUnKSB9XFxcIlxcbiAgPlxcbiAgICA8c3ZnLWljb25cXG4gICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1pbnBsYWNlZGVsZXRlJywgc2l6ZTogMTJcXFwiXFxuICAgID48L3N2Zy1pY29uPlxcbiAgPC9zcGFuPlxcbiAgPCEtLSAva28gLS0+XFxuPC9kaXY+XFxuXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInN2ZGEtY29udGVudFxcXCI+XFxuICA8c3BhbiBjbGFzcz1cXFwic3ZkYS1pbWFnZS1lZGl0b3JcXFwiPlxcbiAgICA8c3BhblxcbiAgICAgIGNsYXNzPVxcXCJlZGl0LWltYWdlLWl0ZW1cXFwiXFxuICAgICAgcm9sZT1cXFwiYnV0dG9uXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IGNob29zZUltYWdlLCBjbGlja0J1YmJsZTogZmFsc2UsIGF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZygncGUuZWRpdCcpLCAnYXJpYS1sYWJlbCc6IGdldExvY1N0cmluZygncGUuZWRpdCcpIH1cXFwiXFxuICAgID5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtcHJpbWFyeS1pY29uXFxcIlxcbiAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZWVkaXQnLCBzaXplOiAxMlxcXCJcXG4gICAgICA+PC9zdmctaWNvbj5cXG4gICAgPC9zcGFuPlxcbiAgPC9zcGFuPlxcbiAgPCEtLSBrbyBpZjogYWxsb3dEZWxldGUgLS0+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwic3ZkYS1kZWxldGUtaXRlbVxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJjbGljazogZGVsZXRlSW1hZ2UsIGF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZygncGUuZGVsZXRlJyksICdhcmlhLWxhYmVsJzogZ2V0TG9jU3RyaW5nKCdwZS5kZWxldGUnKSB9XFxcIlxcbiAgPlxcbiAgICA8c3ZnLWljb25cXG4gICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1pbnBsYWNlZGVsZXRlJywgc2l6ZTogMTJcXFwiXFxuICAgID48L3N2Zy1pY29uPlxcbiAgPC9zcGFuPlxcbiAgPCEtLSAva28gLS0+XFxuPC9kaXY+XFxuXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInN2ZGEtY29udGVudFxcXCI+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwic3ZkYS10aXRsZS1lZGl0b3ItY29udGVudFxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBpc0VkaXRpbmdcXFwiXFxuICAgIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lXFxcIlxcbiAgPlxcbiAgICA8aW5wdXRcXG4gICAgICBkYXRhLXN2ZC1pbmZvPVxcXCJhZG9ybmVyXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwidGV4dElucHV0OiBlZGl0aW5nTmFtZSwgZXZlbnQ6IHsgY29tcG9zaXRpb25zdGFydDogY29tcG9zaXRpb25TdGFydCwga2V5dXA6IG5hbWVFZGl0b3JLZXlwcmVzcywgYmx1cjogcG9zdEVkaXQgfSwgYXR0cjogeyBtYXhMZW5ndGg6IG1heExlbmd0aCwgJ2FyaWEtbGFiZWwnOiBuYW1lIH1cXFwiXFxuICAgICAgc3R5bGU9XFxcIlxcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcXG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xcbiAgICAgICAgb3V0bGluZTogbm9uZTtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgIFxcXCJcXG4gICAgLz5cXG4gICAgPHNwYW5cXG4gICAgICBjbGFzcz1cXFwic3ZkYS1lZGl0LWJ1dHRvblxcXCJcXG4gICAgICByb2xlPVxcXCJidXR0b25cXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogcG9zdEVkaXQsIGVuYWJsZTogZWRpdGluZ05hbWUoKSAhPSAnJ1xcXCJcXG4gICAgPlxcbiAgICAgIDxzdmctaWNvblxcbiAgICAgICAgY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1pbnBsYWNlY2hlY2snLCBzaXplOiAxMlxcXCJcXG4gICAgICA+PC9zdmctaWNvbj5cXG4gICAgPC9zcGFuPlxcbiAgICA8IS0tIDxzcGFuIGNsYXNzPVxcXCJzdmRhLWVkaXQtYnV0dG9uXFxcIiBkYXRhLWJpbmQ9XFxcImNsaWNrOiBjYW5jZWxFZGl0XFxcIj7inJU8L3NwYW4+IC0tPlxcbiAgPC9zcGFuPlxcbiAgPHNwYW5cXG4gICAgY2xhc3M9XFxcInN2ZGEtZm9jdXNhYmxlXFxcIlxcbiAgICB0YWJpbmRleD1cXFwiMFxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJhdHRyOiB7ICdhcmlhLWxhYmVsJzogZ2V0TG9jU3RyaW5nKCdwZS5rZXlib2FyZEFkb3JuZXJUaXAnKSB9XFxcIlxcbiAgPlxcbiAgPC9zcGFuPlxcbiAgPHNwYW5cXG4gICAgY2xhc3M9XFxcInN2ZGEtdGl0bGUtZWRpdG9yLWNvbnRlbnQgc3ZkYS10aXRsZS1lZGl0b3Itc3RhcnRcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTogIWlzRWRpdGluZygpXFxcIlxcbiAgPlxcbiAgICA8c3BhbiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZVxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBlZGl0aW5nTmFtZVxcXCI+PC9zcGFuPlxcbiAgICA8c3BhblxcbiAgICAgIGNsYXNzPVxcXCJlZGl0LXN1cnZleS1uYW1lXFxcIlxcbiAgICAgIHJvbGU9XFxcImJ1dHRvblxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiBzdGFydEVkaXQsIGF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZygncGUuZWRpdCcpLCAnYXJpYS1sYWJlbCc6IGdldExvY1N0cmluZygncGUuZWRpdCcpIH1cXFwiXFxuICAgID5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtcHJpbWFyeS1pY29uXFxcIlxcbiAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZWVkaXQnLCBzaXplOiAxMlxcXCJcXG4gICAgICA+PC9zdmctaWNvbj5cXG4gICAgPC9zcGFuPlxcbiAgPC9zcGFuPlxcbiAgPCEtLSBrbyBpZjogaXNEcmFnZ2FibGUgLS0+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwic3ZkYS1kcmFnLWhhbmRsZVxcXCJcXG4gICAgcm9sZT1cXFwiYnV0dG9uXFxcIlxcbiAgICBkYXRhLWJpbmQ9XFxcImF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZygncGUubW92ZScpLCAnYXJpYS1sYWJlbCc6IGdldExvY1N0cmluZygncGUubW92ZScpIH0sIHZpc2libGU6ICFpc0VkaXRpbmcoKVxcXCJcXG4gID5cXG4gICAgPHN2Zy1pY29uXFxuICAgICAgY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZWRyYWdnYWJsZScsIHNpemU6IDEyXFxcIlxcbiAgICA+PC9zdmctaWNvbj5cXG4gIDwvc3Bhbj5cXG4gIDwhLS0gL2tvIC0tPlxcbiAgPCEtLWtvIGlmOiAhaXNMYXN0SXRlbSAmJiBhbGxvd0FkZFJlbW92ZUl0ZW1zIC0tPlxcbiAgPHNwYW5cXG4gICAgY2xhc3M9XFxcInN2ZGEtZGVsZXRlLWl0ZW1cXFwiXFxuICAgIHJvbGU9XFxcImJ1dHRvblxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJjbGljazogZGVsZXRlSXRlbSwgYXR0cjogeyB0aXRsZTogZ2V0TG9jU3RyaW5nKCdwZS5kZWxldGUnKSwgJ2FyaWEtbGFiZWwnOiBnZXRMb2NTdHJpbmcoJ3BlLmRlbGV0ZScpIH0sIHZpc2libGU6ICFpc0VkaXRpbmcoKVxcXCJcXG4gID5cXG4gICAgPHN2Zy1pY29uXFxuICAgICAgY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZWRlbGV0ZScsIHNpemU6IDEyXFxcIlxcbiAgICA+PC9zdmctaWNvbj5cXG4gIDwvc3Bhbj5cXG4gIDwhLS0gL2tvIC0tPlxcbjwvZGl2PlxcblwiOyIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2PlxcbiAgICA8IS0tIGtvIGZvcmVhY2g6IGFjdGlvbnMgLS0+XFxuICAgIDwhLS0ga28gaWY6ICEkZGF0YS50ZW1wbGF0ZSAtLT5cXG4gICAgPHNwYW4gY2xhc3M9XFxcInN2ZGFfcXVlc3Rpb25fYWN0aW9uIHN2ZC1tYWluLWNvbG9yXFxcIiBkYXRhLWJpbmQ9XFxcImtleTJjbGljaywgY2xpY2tOb0ZvY3VzOiBmdW5jdGlvbigpIHsgb25DbGljaygkcGFyZW50LnF1ZXN0aW9uKTsgfSwgYXR0cjoge3RpdGxlOiB0ZXh0LCAnYXJpYS1sYWJlbCc6IHRleHQsIHJvbGU6ICdidXR0b24nLCB0YWJpbmRleDogJGRhdGEubmVlZEZvY3VzID09PSB1bmRlZmluZWQgfHwgISEkZGF0YS5uZWVkRm9jdXMgPyAwIDogdW5kZWZpbmVkIH1cXFwiPlxcbiAgICAgICAgPHNwYW4+XFxuICAgICAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVxcXCJzdmQtcHJpbWFyeS1pY29uXFxcIiBkYXRhLWJpbmQ9XFxcImNzczogJHBhcmVudC5nZXRTdHlsZSgkZGF0YSlcXFwiIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICRwYXJlbnQuZ2V0U3R5bGUoJGRhdGEpXFxcIj48L3N2Zy1pY29uPlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5oYXNUaXRsZSA/IHRleHQ6ICcnXFxcIj48L3NwYW4+XFxuICAgIDwvc3Bhbj5cXG4gICAgPCEtLSAva28gLS0+XFxuICAgIDwhLS0ga28gaWY6ICEhJGRhdGEudGVtcGxhdGUgLS0+XFxuICAgIDwhLS0ga28gdGVtcGxhdGU6IHRlbXBsYXRlIC0tPlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPCEtLSAva28gLS0+XFxuICAgIDwhLS0gL2tvIC0tPlxcbjwvZGl2PlwiOyIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJzdmRhLWNvbnRlbnRcXFwiPlxcbiAgPHNwYW5cXG4gICAgY2xhc3M9XFxcInN2ZGEtdGl0bGUtZWRpdG9yLWNvbnRlbnRcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTogaXNFZGl0aW5nXFxcIlxcbiAgICBzdHlsZT1cXFwiZGlzcGxheTogbm9uZVxcXCJcXG4gID5cXG4gICAgPGlucHV0XFxuICAgICAgZGF0YS1zdmQtaW5mbz1cXFwiYWRvcm5lclxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcInRleHRJbnB1dDogZWRpdGluZ05hbWUsIGV2ZW50OiB7IGNvbXBvc2l0aW9uc3RhcnQ6IGNvbXBvc2l0aW9uU3RhcnQsIGtleXVwOiBuYW1lRWRpdG9yS2V5cHJlc3MsIGJsdXI6IHBvc3RFZGl0IH1cXFwiXFxuICAgICAgc3R5bGU9XFxcIlxcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcXG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xcbiAgICAgICAgb3V0bGluZTogbm9uZTtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgbWFyZ2luOiAtNnB4O1xcbiAgICAgIFxcXCJcXG4gICAgLz5cXG4gICAgPHNwYW5cXG4gICAgICBjbGFzcz1cXFwic3ZkYS1lZGl0LWJ1dHRvblxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiBwb3N0RWRpdCwgZW5hYmxlOiBlZGl0aW5nTmFtZSgpICE9ICcnXFxcIlxcbiAgICA+XFxuICAgICAgPHN2Zy1pY29uXFxuICAgICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICAgIHJvbGU9XFxcImJ1dHRvblxcXCJcXG4gICAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWlucGxhY2VjaGVjaycsIHNpemU6IDEyXFxcIlxcbiAgICAgID48L3N2Zy1pY29uPlxcbiAgICA8L3NwYW4+XFxuICAgIDwhLS0gPHNwYW4gY2xhc3M9XFxcInN2ZGEtZWRpdC1idXR0b25cXFwiIGRhdGEtYmluZD1cXFwiY2xpY2s6IGNhbmNlbEVkaXRcXFwiPuKclTwvc3Bhbj4gLS0+XFxuICA8L3NwYW4+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwic3ZkYS10aXRsZS1lZGl0b3ItY29udGVudCBzdmRhLXRpdGxlLWVkaXRvci1zdGFydFxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiAhaXNFZGl0aW5nKClcXFwiXFxuICA+XFxuICAgIDxzcGFuIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IGVkaXRpbmdOYW1lXFxcIj48L3NwYW4+XFxuICAgIDxzcGFuXFxuICAgICAgY2xhc3M9XFxcImVkaXQtc3VydmV5LW5hbWVcXFwiXFxuICAgICAgcm9sZT1cXFwiYnV0dG9uXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IHN0YXJ0RWRpdCwgYXR0cjogeyB0aXRsZTogZ2V0TG9jU3RyaW5nKCdwZS5lZGl0JyksICdhcmlhLWxhYmVsJzogZ2V0TG9jU3RyaW5nKCdwZS5lZGl0JykgfVxcXCJcXG4gICAgPlxcbiAgICAgIDxzdmctaWNvblxcbiAgICAgICAgY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1pbnBsYWNlZWRpdCcsIHNpemU6IDEyXFxcIlxcbiAgICAgID48L3N2Zy1pY29uPlxcbiAgICA8L3NwYW4+XFxuICA8L3NwYW4+XFxuICA8IS0ta28gaWZub3Q6IGlzTGFzdEl0ZW0gLS0+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwic3ZkYS1kZWxldGUtaXRlbVxcXCJcXG4gICAgcm9sZT1cXFwiYnV0dG9uXFxcIlxcbiAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiBkZWxldGVJdGVtLCBhdHRyOiB7IHRpdGxlOiBnZXRMb2NTdHJpbmcoJ3BlLmRlbGV0ZScpLCAnYXJpYS1sYWJlbCc6IGdldExvY1N0cmluZygncGUuZGVsZXRlJykgfSwgdmlzaWJsZTogIWlzRWRpdGluZygpXFxcIlxcbiAgPlxcbiAgICA8c3ZnLWljb25cXG4gICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1pbnBsYWNlZGVsZXRlJywgc2l6ZTogMTJcXFwiXFxuICAgID48L3N2Zy1pY29uPlxcbiAgPC9zcGFuPlxcbiAgPCEtLSAva28gLS0+XFxuPC9kaXY+XFxuXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInN2ZGEtc2VsZWN0LWl0ZW1zLWRpc3BsYXlcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzdmRhLXNlbGVjdC1pdGVtcy10aXRsZVxcXCIgZGF0YS1iaW5kPVxcXCJjbGljazogdG9nZ2xlXFxcIj5cXG4gICAgICA8c3BhblxcbiAgICAgICAgY2xhc3M9XFxcInN2ZC1tYWluLWNvbG9yXFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBnZXRMb2NTdHJpbmcoJ3BlLnNob3dDaG9pY2VzJylcXFwiXFxuICAgICAgPjwvc3Bhbj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXZcXG4gICAgICBjbGFzcz1cXFwic3ZkYS1zZWxlY3QtaXRlbXMtY29udGVudCBzdmQtZGFyay1ib3JkZXItY29sb3Igc3ZkLWxpZ2h0LWJnLWNvbG9yXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTogaXNFeHBhbmRlZFxcXCJcXG4gICAgPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZGEtc2VsZWN0LWl0ZW1zLWNvbGxlY3Rpb25cXFwiPlxcbiAgICAgICAgPCEtLSBrbyBmb3JlYWNoOiB7IGRhdGE6IGNob2ljZXMgfSAtLT5cXG4gICAgICAgIDxkaXY+ICBcXG4gICAgICAgICAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6IHRleHRcXFwiPjwvc3Bhbj5cXG4gICAgICAgIDwvZGl2PiAgXFxuICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICA8L2Rpdj5cXG4gICAgICA8IS0tIGtvIGlmOiBxdWVzdGlvbi5oYXNPdGhlciAtLT5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJpdGVtX2VkaXRhYmxlXFxcIj5cXG4gICAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogb3RoZXJUZXh0XFxcIj48L3NwYW4+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICA8IS0tIC9rbyAtLT5cXG4gIDwvZGl2PlxcbiAgXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInN2ZGEtc2VsZWN0LWl0ZW1zLWVkaXRvclxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJzdmRhLXNlbGVjdC1pdGVtcy10aXRsZVxcXCIgZGF0YS1iaW5kPVxcXCJjbGljazogdG9nZ2xlXFxcIj5cXG4gICAgPHNwYW4gY2xhc3M9XFxcInN2ZC1tYWluLWNvbG9yXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IGdldExvY1N0cmluZygncGUuZWRpdENob2ljZXMnKVxcXCI+PC9zcGFuPlxcbiAgPC9kaXY+XFxuICA8ZGl2IGNsYXNzPVxcXCJzdmRhLXNlbGVjdC1pdGVtcy1jb250ZW50IHN2ZC1kYXJrLWJvcmRlci1jb2xvciBzdmQtbGlnaHQtYmctY29sb3JcXFwiIGRhdGEtYmluZD1cXFwidmlzaWJsZTogaXNFeHBhbmRlZFxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZGEtc2VsZWN0LWl0ZW1zLWNvbGxlY3Rpb25cXFwiPlxcbiAgICAgIDwhLS0ga28gZm9yZWFjaDogeyBkYXRhOiBjaG9pY2VzLCBhZnRlclJlbmRlcjogY2hvaWNlc1JlbmRlcmVkIH0gLS0+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiaXRlbV9lZGl0YWJsZSBpdGVtX2RyYWdnYWJsZVxcXCI+XFxuICAgICAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6IGxvY1RleHQua29SZW5kZXJlZEh0bWxcXFwiPjwvc3Bhbj5cXG4gICAgICAgIDxzcGFuPlxcbiAgICAgICAgICA8aXRlbS1lZGl0b3JcXG4gICAgICAgICAgICBwYXJhbXM9XFxcIm5hbWU6ICRwYXJlbnQudmFsdWVOYW1lLCB2YWx1ZUNoYW5nZWQ6ICRwYXJlbnQudmFsdWVDaGFuZ2VkLCB0YXJnZXQ6ICRkYXRhLCBtb2RlbDogJGRhdGEsIGl0ZW06ICRkYXRhLCBxdWVzdGlvbjogJHBhcmVudC5xdWVzdGlvbiwgZWRpdG9yOiAkcGFyZW50LmVkaXRvclxcXCI+XFxuICAgICAgICAgIDwvaXRlbS1lZGl0b3I+XFxuICAgICAgICA8L3NwYW4+XFxuICAgICAgPC9kaXY+XFxuICAgICAgPCEtLSAva28gLS0+XFxuICAgIDwvZGl2PlxcbiAgICA8IS0tIGtvIGlmOiBxdWVzdGlvbi5oYXNOb25lIC0tPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJpdGVtX2VkaXRhYmxlXFxcIj5cXG4gICAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6IG5vbmVUZXh0XFxcIj48L3NwYW4+XFxuICAgICAgPHNwYW4+XFxuICAgICAgICA8aXRlbS1lZGl0b3JcXG4gICAgICAgICAgcGFyYW1zPSduYW1lOiBcXFwibm9uZVRleHRcXFwiLCB0YXJnZXQ6IHF1ZXN0aW9uLCBtb2RlbDogcXVlc3Rpb24sIHZhbHVlQ2hhbmdlZDogbm9uZVZhbHVlQ2hhbmdlZCwgaXRlbTogcXVlc3Rpb24ubm9uZUl0ZW0sIHF1ZXN0aW9uOiBxdWVzdGlvbiwgZWRpdG9yOiBlZGl0b3InPlxcbiAgICAgICAgPC9pdGVtLWVkaXRvcj5cXG4gICAgICA8L3NwYW4+XFxuICAgIDwvZGl2PlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPCEtLSBrbyBpZjogcXVlc3Rpb24uaGFzT3RoZXIgLS0+XFxuICAgIDxkaXYgY2xhc3M9XFxcIml0ZW1fZWRpdGFibGVcXFwiPlxcbiAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogb3RoZXJUZXh0XFxcIj48L3NwYW4+XFxuICAgICAgPHNwYW4+XFxuICAgICAgICA8aXRlbS1lZGl0b3JcXG4gICAgICAgICAgcGFyYW1zPSduYW1lOiBcXFwib3RoZXJUZXh0XFxcIiwgdGFyZ2V0OiBxdWVzdGlvbiwgbW9kZWw6IHF1ZXN0aW9uLCB2YWx1ZUNoYW5nZWQ6IG90aGVyVmFsdWVDaGFuZ2VkLCBpdGVtOiBxdWVzdGlvbi5vdGhlckl0ZW0sIHF1ZXN0aW9uOiBxdWVzdGlvbiwgZWRpdG9yOiBlZGl0b3InPlxcbiAgICAgICAgPC9pdGVtLWVkaXRvcj5cXG4gICAgICA8L3NwYW4+XFxuICAgIDwvZGl2PlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZfdGVjaG5pY2FsIHN2ZGEtYWRkLW5ldy1pdGVtXFxcIiB0YWJpbmRleD1cXFwiMFxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcImtleTJjbGljaywgY2xpY2s6IGFkZEl0ZW0sIGF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZygncGUuYWRkSXRlbScpIH1cXFwiPlxcbiAgICAgIDxzdmctaWNvbiBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCIgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZXBsdXMnLCBzaXplOiAxMlxcXCI+PC9zdmctaWNvbj5cXG4gICAgPC9kaXY+XFxuICAgIDwhLS0ga28gaWY6IHNob3dPdGhlciAtLT5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZfdGVjaG5pY2FsIHN2ZGEtYWRkLW5ldy1pdGVtIHN2ZGEtYWRkLWN1c3RvbS1pdGVtXFxcIiB0YWJpbmRleD1cXFwiMFxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcImtleTJjbGljaywgY2xpY2s6IGFkZE90aGVyLCBhdHRyOiB7IHRpdGxlOiBnZXRMb2NTdHJpbmcoJ3BlLmFkZE90aGVyJykgfVxcXCI+XFxuICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiBnZXRMb2NTdHJpbmcoJ3BlLmFkZE90aGVyJylcXFwiPjwvc3Bhbj5cXG4gICAgPC9kaXY+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgICA8IS0tIGtvIGlmOiBzaG93Tm9uZSAtLT5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZfdGVjaG5pY2FsIHN2ZGEtYWRkLW5ldy1pdGVtIHN2ZGEtYWRkLWN1c3RvbS1pdGVtXFxcIiB0YWJpbmRleD1cXFwiMFxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcImtleTJjbGljaywgY2xpY2s6IGFkZE5vbmUsIGF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZygncGUuYWRkTm9uZScpIH1cXFwiPlxcbiAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogZ2V0TG9jU3RyaW5nKCdwZS5hZGROb25lJylcXFwiPjwvc3Bhbj5cXG4gICAgPC9kaXY+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgPC9kaXY+XFxuPC9kaXY+XCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXY+XFxuICA8IS0tIGtvIGZvcmVhY2g6IGFjdGlvbnMgLS0+XFxuICA8IS0tIGtvIGlmOiAhJGRhdGEudGVtcGxhdGUgLS0+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwic3ZkYV9xdWVzdGlvbl9hY3Rpb24gc3ZkLW1haW4tY29sb3JcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTogdmlzaWJsZSwga2V5MmNsaWNrLCBjbGlja05vRm9jdXM6IG9uQ2xpY2ssIGF0dHI6IHt0aXRsZTogdGV4dCwgJ2FyaWEtbGFiZWwnOiB0ZXh0LCByb2xlOiAnYnV0dG9uJywgdGFiaW5kZXg6ICRkYXRhLm5lZWRGb2N1cyA9PT0gdW5kZWZpbmVkIHx8ICEhJGRhdGEubmVlZEZvY3VzID8gMCA6IHVuZGVmaW5lZCB9XFxcIlxcbiAgPlxcbiAgICA8c3Bhbj5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtcHJpbWFyeS1pY29uXFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJjc3M6ICRwYXJlbnQuZ2V0U3R5bGUoJGRhdGEpXFxcIlxcbiAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJHBhcmVudC5nZXRJY29uKCRkYXRhKVxcXCJcXG4gICAgICA+PC9zdmctaWNvbj5cXG4gICAgPC9zcGFuPlxcbiAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmhhc1RpdGxlID8gdGV4dDogJydcXFwiPjwvc3Bhbj5cXG4gIDwvc3Bhbj5cXG4gIDwhLS0gL2tvIC0tPlxcbiAgPCEtLSBrbyBpZjogISEkZGF0YS50ZW1wbGF0ZSAtLT5cXG4gIDwhLS0ga28gdGVtcGxhdGU6IHRlbXBsYXRlIC0tPlxcbiAgPCEtLSAva28gLS0+XFxuICA8IS0tIC9rbyAtLT5cXG4gIDwhLS0gL2tvIC0tPlxcbjwvZGl2PlxcblwiOyIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJzdmRhLWNvbnRlbnRcXFwiIGRhdGEtYmluZD1cXFwiaWZub3Q6IHJlYWRPbmx5XFxcIj5cXG4gIDxzcGFuIGNsYXNzPVxcXCJzdmRhLXRpdGxlLWVkaXRvci1jb250ZW50XFxcIiBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGlzRWRpdGluZ1xcXCIgc3R5bGU9XFxcImRpc3BsYXk6IG5vbmU7XFxcIj5cXG4gICAgPGlucHV0IGRhdGEtc3ZkLWluZm89XFxcImFkb3JuZXJcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0SW5wdXQ6IGVkaXRpbmdOYW1lLCBldmVudDogeyBjb21wb3NpdGlvbnN0YXJ0OiBjb21wb3NpdGlvblN0YXJ0LCBjb21wb3NpdGlvbmVuZDogY29tcG9zaXRpb25FbmQsIGtleXVwOiBuYW1lRWRpdG9yS2V5cHJlc3MsIGtleWRvd246IG5hbWVFZGl0b3JLZXlkb3duLCBibHVyOiBwb3N0RWRpdCB9LCBhdHRyOiB7IG1heExlbmd0aDogbWF4TGVuZ3RoLCAnYXJpYS1sYWJlbCc6IG5hbWUsICd0aXRsZSc6IGVycm9yLCAncGxhY2Vob2xkZXInOiBlcnJvciB9LCBjc3M6IHsgJ3N2ZGEtdGl0bGUtZWRpdG9yLWVycm9yJzogZXJyb3IgfSwgc3R5bGU6IHsgJ21pbi13aWR0aCc6IGVycm9yKCkgPyAnMTUwcHgnIDogJycgfVxcXCJcXG4gICAgICBzdHlsZT1cXFwiYm9yZGVyLXRvcDogbm9uZTsgYm9yZGVyLWxlZnQ6IG5vbmU7IGJvcmRlci1yaWdodDogbm9uZTsgb3V0bGluZTogbm9uZTsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGRpc3BsYXk6IGlubGluZS1ibG9jaztcXFwiIC8+XFxuICAgIDxzcGFuIHJvbGU9XFxcImJ1dHRvblxcXCIgY2xhc3M9XFxcInN2ZGEtZWRpdC1idXR0b25cXFwiIGRhdGEtYmluZD1cXFwiY2xpY2s6IHBvc3RFZGl0LCBlbmFibGU6IGVkaXRpbmdOYW1lKCkgIT0gJydcXFwiPlxcbiAgICAgIDxzdmctaWNvbiBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCIgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZWNoZWNrJywgc2l6ZTogMTJcXFwiPjwvc3ZnLWljb24+XFxuICAgIDwvc3Bhbj5cXG4gICAgPCEtLSA8c3BhbiBjbGFzcz1cXFwic3ZkYS1lZGl0LWJ1dHRvblxcXCIgZGF0YS1iaW5kPVxcXCJjbGljazogY2FuY2VsRWRpdFxcXCI+4pyVPC9zcGFuPiAtLT5cXG4gIDwvc3Bhbj5cXG4gIDxzcGFuIGNsYXNzPVxcXCJzdmRhLXRpdGxlLWVkaXRvci1mb2N1c2FibGVcXFwiIHRhYmluZGV4PVxcXCIwXFxcIiByb2xlPVxcXCJidXR0b25cXFwiXFxuICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IHN0YXJ0RWRpdCwga2V5MmNsaWNrLCBhdHRyOiB7ICdhcmlhLWxhYmVsJzogZ2V0TG9jU3RyaW5nKCdwZS5lZGl0JykgKyAnICcgKyBuYW1lIH1cXFwiPjwvc3Bhbj5cXG4gIDxzcGFuIGNsYXNzPVxcXCJzdmRhLXRpdGxlLWVkaXRvci1jb250ZW50IHN2ZGEtdGl0bGUtZWRpdG9yLXN0YXJ0XFxcIiBkYXRhLWJpbmQ9XFxcInZpc2libGU6ICFpc0VkaXRpbmcoKVxcXCI+XFxuICAgIDxzcGFuIGNsYXNzPVxcXCJzdmRhLXRpdGxlLWVkaXRvci1wbGFjZWhvbGRlclxcXCIgdGFiaW5kZXg9XFxcIjBcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogc3RhcnRFZGl0LCB0ZXh0OiBwbGFjZWhvbGRlciwgdmlzaWJsZTogIWVkaXRpbmdOYW1lKCkgJiYgcGxhY2Vob2xkZXIsIGtleTJjbGljaywgYXR0cjogeyAnYXJpYS1sYWJlbCc6IG5hbWUsIHJvbGU6ICd0ZXh0Ym94JywgJ2FyaWEtcmVhZG9ubHknOiAnZmFsc2UnIH1cXFwiPjwvc3Bhbj5cXG4gICAgPHNwYW4gcm9sZT1cXFwiYnV0dG9uXFxcIiBjbGFzcz1cXFwic3ZkYS10aXRsZS1lZGl0b3Itc3RhcnQtYnV0dG9uIGVkaXQtc3VydmV5LW5hbWVcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogc3RhcnRFZGl0LCBhdHRyOiB7IHRpdGxlOiBnZXRMb2NTdHJpbmcoJ3BlLmVkaXQnKSB9XFxcIj5cXG4gICAgICA8c3ZnLWljb24gY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWlucGxhY2VlZGl0Jywgc2l6ZTogMTJcXFwiPjwvc3ZnLWljb24+XFxuICAgIDwvc3Bhbj5cXG4gIDwvc3Bhbj5cXG48L2Rpdj5cIjsiLCJtb2R1bGUuZXhwb3J0cyA9IFwiPCEtLSBrbyBpZjogbW9kZWwuaGFzRHJvcGRvd25TZWxlY3RvciAtLT5cXG48c3ZkLWRyb3Bkb3duXFxuICBjbGFzcz1cXFwic3ZkLXBhZ2Utc2VsZWN0b3JcXFwiXFxuICBwYXJhbXM9XFxcIml0ZW06IHsgaXRlbXM6IG1vZGVsLnBhZ2VzRm9yU2VsZWN0aW9uLCBhY3Rpb246IG1vZGVsLnNlbGVjdGVkUGFnZSwgdGl0bGU6ICcnLCBhcmlhTGFiZWw6IGdldExvY1N0cmluZygnZWQuc2VsZWN0UGFnZScpIH1cXFwiXFxuPlxcbjwvc3ZkLWRyb3Bkb3duPlxcbjwhLS0gL2tvIC0tPlxcbjxkaXZcXG4gIHRhYmluZGV4PVxcXCIwXFxcIlxcbiAgY2xhc3M9XFxcInN2ZC1wYWdlLXNjcm9sbGVyLWFycm93XFxcIlxcbiAgZGF0YS1iaW5kPVxcXCJrZXkyY2xpY2ssIGNsaWNrTm9Gb2N1czogbW92ZUxlZnQsIGF0dHI6IHt0aXRsZTogZ2V0TG9jU3RyaW5nKCdlZC5tb3ZlTGVmdCcpfSwgY3NzOiB7J3N2ZC1wYWdlLXNjcm9sbGVyLWFycm93LS12aXNpYmxlJzogaGFzU2Nyb2xsZXIgfVxcXCJcXG4+XFxuICA8c3Bhbj5cXG4gICAgPHN2Zy1pY29uXFxuICAgICAgY2xhc3M9XFxcInN2ZC1zZWNvbmRhcnktaWNvblxcXCJcXG4gICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1sZWZ0J1xcXCJcXG4gICAgPjwvc3ZnLWljb24+XFxuICA8L3NwYW4+XFxuPC9kaXY+XFxuPCEtLSBrbyBpZjogbW9kZWwucmVhZE9ubHkgLS0+XFxuPGRpdlxcbiAgY2xhc3M9XFxcInN2ZC1wYWdlc1xcXCJcXG4gIGRhdGEtYmluZD1cXFwiZXZlbnQ6IHt3aGVlbDogb25XaGVlbH0sIGNzczogeydzdmQtcGFnZXMtLW5vLWRyb3Bkb3duLXNlbGVjdG9yJzogIW1vZGVsLmhhc0Ryb3Bkb3duU2VsZWN0b3IoKSB9XFxcIlxcbj5cXG4gIDwhLS0ga28gZm9yZWFjaDogbW9kZWwucGFnZXMgLS0+XFxuICA8ZGl2XFxuICAgIHRhYmluZGV4PVxcXCIwXFxcIlxcbiAgICBjbGFzcz1cXFwic3ZkLXBhZ2Ugc3ZkLWxpZ2h0LWJvcmRlci1jb2xvclxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJrZXkyY2xpY2ssIGNzczogJHBhcmVudC5nZXRQYWdlQ2xhc3MoJGRhdGEpLCBjbGlja05vRm9jdXM6ICRwYXJlbnQub25QYWdlQ2xpY2tcXFwiXFxuICA+XFxuICAgIDxzcGFuXFxuICAgICAgY2xhc3M9XFxcInN2ZC1wYWdlLW5hbWVcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkcGFyZW50Lm1vZGVsLmdldERpc3BsYXlUZXh0KCRkYXRhKVxcXCJcXG4gICAgPjwvc3Bhbj5cXG4gICAgPHNwYW4gY2xhc3M9XFxcInN2ZC1wYWdlLWFjdGlvbnMtY29udGFpbmVyXFxcIj5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGRhdGEtYmluZD1cXFwiY3NzOiAkcGFyZW50LmdldFBhZ2VNZW51SWNvbkNsYXNzKCRkYXRhKVxcXCJcXG4gICAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICRwYXJlbnQuZ2V0UGFnZU1lbnVJY29uQ2xhc3MoJGRhdGEpLCBzaXplOiAxMlxcXCJcXG4gICAgICA+PC9zdmctaWNvbj5cXG4gICAgPC9zcGFuPlxcbiAgPC9kaXY+XFxuICA8IS0tIC9rbyAtLT5cXG48L2Rpdj5cXG48IS0tIC9rbyAtLT5cXG48IS0tIGtvIGlmbm90OiBtb2RlbC5yZWFkT25seSAtLT5cXG48ZGl2XFxuICBjbGFzcz1cXFwic3ZkLXBhZ2VzXFxcIlxcbiAgZGF0YS1iaW5kPVxcXCJzb3J0YWJsZToge2ZvcmVhY2g6IG1vZGVsLnBhZ2VzLCBvcHRpb25zOiBzb3J0YWJsZU9wdGlvbnN9LCBldmVudDoge3doZWVsOiBvbldoZWVsfSwgY3NzOiB7J3N2ZC1wYWdlcy0tbm8tZHJvcGRvd24tc2VsZWN0b3InOiAhbW9kZWwuaGFzRHJvcGRvd25TZWxlY3RvcigpIH1cXFwiXFxuPlxcbiAgPGRpdlxcbiAgICB0YWJpbmRleD1cXFwiMFxcXCJcXG4gICAgY2xhc3M9XFxcInN2ZC1wYWdlIHN2ZC1saWdodC1ib3JkZXItY29sb3JcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwia2V5MmNsaWNrLCBjc3M6ICRwYXJlbnQuZ2V0UGFnZUNsYXNzKCRkYXRhKSwgY2xpY2tOb0ZvY3VzOiAkcGFyZW50Lm9uUGFnZUNsaWNrXFxcIlxcbiAgPlxcbiAgICA8c3BhblxcbiAgICAgIGNsYXNzPVxcXCJzdmQtcGFnZS1uYW1lXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJHBhcmVudC5tb2RlbC5nZXREaXNwbGF5VGV4dCgkZGF0YSksIGNzczogeydzdmQtcGFnZS1kaXNhYmxlLW1vdmUnOiAhJHBhcmVudC5tb2RlbC5jYW5Nb3ZlfVxcXCJcXG4gICAgPjwvc3Bhbj5cXG4gICAgPHNwYW4gY2xhc3M9XFxcInN2ZC1wYWdlLWFjdGlvbnMtY29udGFpbmVyXFxcIj5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGRhdGEtYmluZD1cXFwiY3NzOiAkcGFyZW50LmdldFBhZ2VNZW51SWNvbkNsYXNzKCRkYXRhKVxcXCJcXG4gICAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICRwYXJlbnQuZ2V0UGFnZU1lbnVJY29uQ2xhc3MoJGRhdGEpLCBzaXplOiAxMlxcXCJcXG4gICAgICA+PC9zdmctaWNvbj5cXG5cXG4gICAgICA8ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogc3RhdGljXFxcIj5cXG4gICAgICAgIDxkaXZcXG4gICAgICAgICAgY2xhc3M9XFxcInN2ZC1wYWdlLWFjdGlvbnMgc3ZkLWRhcmstYm9yZGVyLWNvbG9yIHN2ZC1saWdodC1iZy1jb2xvclxcXCJcXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiAkcGFyZW50Lm1vZGVsLnNob3dBY3Rpb25zKCRkYXRhKVxcXCJcXG4gICAgICAgID5cXG4gICAgICAgICAgPHNwYW5cXG4gICAgICAgICAgICBjbGFzcz1cXFwic3ZkLXBhZ2UtYWN0aW9uXFxcIlxcbiAgICAgICAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IGZ1bmN0aW9uKG1vZGVsLCBldmVudCkgeyRwYXJlbnQubW9kZWwuc2hvd1BhZ2VTZXR0aW5ncygkZGF0YSk7IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO30sIGF0dHI6IHt0aXRsZTogJHBhcmVudC5nZXRMb2NTdHJpbmcoJ2VkLmVkaXRQYWdlJyl9LCB2aXNpYmxlOiAkcGFyZW50Lm1vZGVsLmNhbkVkaXRQYWdlXFxcIlxcbiAgICAgICAgICA+XFxuICAgICAgICAgICAgPHNwYW4+XFxuICAgICAgICAgICAgICA8c3ZnLWljb25cXG4gICAgICAgICAgICAgICAgY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgICAgICAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWFjdGlvbmVkaXRlbGVtZW50J1xcXCJcXG4gICAgICAgICAgICAgID48L3N2Zy1pY29uPlxcbiAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICA8c3BhblxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcInN2ZC1tYWluLWNvbG9yXFxcIlxcbiAgICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkcGFyZW50LmdldExvY1N0cmluZygnZWQuZWRpdCcpXFxcIlxcbiAgICAgICAgICAgID48L3NwYW4+XFxuICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgPHNwYW5cXG4gICAgICAgICAgICBjbGFzcz1cXFwic3ZkLXBhZ2UtYWN0aW9uXFxcIlxcbiAgICAgICAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IGZ1bmN0aW9uKG1vZGVsLCBldmVudCkgeyRwYXJlbnQubW9kZWwuZGVsZXRlUGFnZSgkZGF0YSk7IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO30sIGF0dHI6IHt0aXRsZTogJHBhcmVudC5nZXRMb2NTdHJpbmcoJ2VkLmRlbGV0ZVBhZ2UnKX0sIHZpc2libGU6ICRwYXJlbnQubW9kZWwuY2FuRGVsZXRlUGFnZVxcXCJcXG4gICAgICAgICAgPlxcbiAgICAgICAgICAgIDxzdmctaWNvblxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgICAgICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1hY3Rpb25kZWxldGUnXFxcIlxcbiAgICAgICAgICAgID48L3N2Zy1pY29uPlxcbiAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgIDxzcGFuXFxuICAgICAgICAgICAgY2xhc3M9XFxcInN2ZGFfYWN0aW9uX3NlcGFyYXRvciBzdmQtZGFyay1ib3JkZXItY29sb3JcXFwiXFxuICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiAhJHBhcmVudC5tb2RlbC5pc0xhc3RQYWdlKClcXFwiXFxuICAgICAgICAgID48L3NwYW4+XFxuICAgICAgICAgIDxzcGFuXFxuICAgICAgICAgICAgY2xhc3M9XFxcInN2ZC1wYWdlLWFjdGlvblxcXCJcXG4gICAgICAgICAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiBmdW5jdGlvbihtb2RlbCwgZXZlbnQpIHskcGFyZW50Lm1vZGVsLmNvcHlQYWdlKCRkYXRhKTsgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7fSwgYXR0cjoge3RpdGxlOiAkcGFyZW50LmdldExvY1N0cmluZygnc3VydmV5LkNvcHknKX0sIHZpc2libGU6ICRwYXJlbnQubW9kZWwuY2FuQ29weVBhZ2VcXFwiXFxuICAgICAgICAgID5cXG4gICAgICAgICAgICA8c3ZnLWljb25cXG4gICAgICAgICAgICAgIGNsYXNzPVxcXCJzdmQtcHJpbWFyeS1pY29uXFxcIlxcbiAgICAgICAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24tYWN0aW9uY29weSdcXFwiXFxuICAgICAgICAgICAgPjwvc3ZnLWljb24+XFxuICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L3NwYW4+XFxuICA8L2Rpdj5cXG48L2Rpdj5cXG48IS0tIC9rbyAtLT5cXG48ZGl2XFxuICB0YWJpbmRleD1cXFwiMFxcXCJcXG4gIGNsYXNzPVxcXCJzdmQtcGFnZS1zY3JvbGxlci1hcnJvd1xcXCJcXG4gIGRhdGEtYmluZD1cXFwia2V5MmNsaWNrLCBjbGlja05vRm9jdXM6IG1vdmVSaWdodCwgYXR0cjoge3RpdGxlOiBnZXRMb2NTdHJpbmcoJ2VkLm1vdmVSaWdodCcpfSwgY3NzOiB7J3N2ZC1wYWdlLXNjcm9sbGVyLWFycm93LS12aXNpYmxlJzogaGFzU2Nyb2xsZXIgfVxcXCJcXG4+XFxuICA8c3Bhbj5cXG4gICAgPHN2Zy1pY29uXFxuICAgICAgY2xhc3M9XFxcInN2ZC1zZWNvbmRhcnktaWNvblxcXCJcXG4gICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1yaWdodCdcXFwiXFxuICAgID48L3N2Zy1pY29uPlxcbiAgPC9zcGFuPlxcbjwvZGl2PlxcbjwhLS0ga28gaWZub3Q6IG1vZGVsLnJlYWRPbmx5IC0tPlxcbjxkaXZcXG4gIHRhYmluZGV4PVxcXCIwXFxcIlxcbiAgY2xhc3M9XFxcInN2ZC1wYWdlIHN2ZC1saWdodC1ib3JkZXItY29sb3Igc3ZkLXBhZ2UtYWRkXFxcIlxcbiAgZGF0YS1iaW5kPVxcXCJrZXkyY2xpY2ssIGNsaWNrTm9Gb2N1czogbW9kZWwuYWRkUGFnZSwgYXR0cjoge3RpdGxlOiBnZXRMb2NTdHJpbmcoJ2VkLmFkZE5ld1BhZ2UnKX0sIHZpc2libGU6IG1vZGVsLmNhbkFkZFBhZ2VcXFwiXFxuPlxcbiAgPHNwYW5cXG4gICAgY2xhc3M9XFxcInN2ZC1wYWdlLW5hbWVcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwidGV4dDogZ2V0TG9jU3RyaW5nKCdlZC5hZGROZXdQYWdlJylcXFwiXFxuICA+PC9zcGFuPlxcbiAgPHNwYW4+XFxuICAgIDxzdmctaWNvblxcbiAgICAgIGNsYXNzPVxcXCJzdmQtc2Vjb25kYXJ5LWljb25cXFwiXFxuICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24tYWRkJ1xcXCJcXG4gICAgPjwvc3ZnLWljb24+XFxuICA8L3NwYW4+XFxuPC9kaXY+XFxuPCEtLSAva28gLS0+XFxuXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgdGFiaW5kZXg9XFxcIjBcXFwiIGRyYWdnYWJsZT1cXFwidHJ1ZVxcXCIgY2xhc3M9XFxcInN2ZF90b29sYm94X2l0ZW0gc3ZkLWxpZ2h0LWJvcmRlci1jb2xvclxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJhdHRyOiB7dGl0bGU6IGl0ZW0udG9vbHRpcCwgcm9sZTogJ2J1dHRvbicsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsfSwgY3NzOiAnc3ZkX3Rvb2xib3hfaXRlbV8nICsgaXRlbS5pY29uTmFtZSwga2V5MmNsaWNrLCBjbGlja05vRm9jdXM6IGNsaWNrLCBldmVudDp7ZHJhZ3N0YXJ0OiBkcmFnc3RhcnQsIGRyYWdlbmQ6IGRyYWdlbmR9XFxcIj5cXG4gICAgPHNwYW4+XFxuICAgICAgICA8c3ZnLWljb24gcGFyYW1zPVxcXCJpY29uTmFtZTogaXRlbS5pY29uTmFtZVxcXCI+PC9zdmctaWNvbj5cXG4gICAgPC9zcGFuPlxcbiAgICA8c3BhbiBjbGFzcz1cXFwic3ZkX3Rvb2xib3hfaXRlbV90ZXh0XFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IGl0ZW0udGl0bGVcXFwiPjwvc3Bhbj5cXG48L2Rpdj5cIjsiLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwic3ZkX3Rvb2xib3ggc3ZkLWRhcmstYmctY29sb3JcXFwiPlxcbiAgPCEtLSBrbyBpZjoga29IYXNDYXRlZ29yaWVzIC0tPlxcbiAgPGRpdiBjbGFzcz1cXFwicGFuZWwtZ3JvdXBcXFwiIHJvbGU9XFxcInRhYmxpc3RcXFwiIGRhdGEtYmluZD1cXFwiZm9yZWFjaDoga29DYXRlZ29yaWVzXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicGFuZWwgcGFuZWwtaW5mb1xcXCI+XFxuICAgICAgPGRpdlxcbiAgICAgICAgY2xhc3M9XFxcInN2ZC10b29sYm94LWNhdGVnb3J5LWhlYWRlclxcXCJcXG4gICAgICAgIHJvbGU9XFxcInRhYlxcXCJcXG4gICAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IGV4cGFuZFxcXCJcXG4gICAgICA+XFxuICAgICAgICA8c3BhblxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcImNzczogeyAnc3ZkLW1haW4tY29sb3InOiAha29Db2xsYXBzZWQoKSB9LCB0ZXh0OiBuYW1lXFxcIlxcbiAgICAgICAgPjwvc3Bhbj5cXG4gICAgICAgIDwhLS1rbyBpZjogJHBhcmVudC5rb0NhbkNvbGxhcHNlQ2F0ZWdvcmllcyAtLT5cXG4gICAgICAgIDwhLS0ga28gaWY6IGtvQ29sbGFwc2VkIC0tPlxcbiAgICAgICAgPHN2Zy1pY29uXFxuICAgICAgICAgIGNsYXNzPVxcXCJpY29uLXRvb2xib3gtYXJyb3dcXFwiXFxuICAgICAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWFycm93X2Rvd25fMTB4MTAnLCBzaXplOiAxMFxcXCJcXG4gICAgICAgID48L3N2Zy1pY29uPlxcbiAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICA8IS0tIGtvIGlmbm90OiBrb0NvbGxhcHNlZCAtLT5cXG4gICAgICAgIDxzdmctaWNvblxcbiAgICAgICAgICBjbGFzcz1cXFwiaWNvbi10b29sYm94LWFycm93IHN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWFycm93X3VwXzEweDEwJywgc2l6ZTogMTBcXFwiXFxuICAgICAgICA+PC9zdmctaWNvbj5cXG4gICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgPC9kaXY+XFxuICAgICAgPGRpdlxcbiAgICAgICAgcm9sZT1cXFwidGFicGFuZWxcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImNzczogeyAnc3ZkLXRvb2xib3gtY2F0ZWdvcnktLWNvbGxhcHNlZCBwYW5lbC1jb2xsYXBzZSBjb2xsYXBzZSc6IGtvQ29sbGFwc2VkfVxcXCJcXG4gICAgICA+XFxuICAgICAgICA8IS0tIGtvIGZvcmVhY2g6IGl0ZW1zIC0tPlxcbiAgICAgICAgPHN2ZC10b29sYm94LWl0ZW1cXG4gICAgICAgICAgcGFyYW1zPVxcXCJpdGVtOiAkZGF0YSwgY3JlYXRvcjogJHBhcmVudHNbMV0uY3JlYXRvclxcXCJcXG4gICAgICAgID48L3N2ZC10b29sYm94LWl0ZW0+XFxuICAgICAgICA8IS0tIC9rbyAgLS0+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuICA8IS0tIC9rbyAgLS0+XFxuICA8IS0tIGtvIGlmOiAha29IYXNDYXRlZ29yaWVzKCkgLS0+XFxuICA8IS0tIGtvIGZvcmVhY2g6IGtvSXRlbXMgLS0+XFxuICA8c3ZkLXRvb2xib3gtaXRlbVxcbiAgICBwYXJhbXM9XFxcIml0ZW06ICRkYXRhLCBjcmVhdG9yOiAkcGFyZW50LmNyZWF0b3JcXFwiXFxuICA+PC9zdmQtdG9vbGJveC1pdGVtPlxcbiAgPCEtLSAva28gIC0tPlxcbiAgPCEtLSAva28gIC0tPlxcbjwvZGl2PlxcblwiOyIsIm1vZHVsZS5leHBvcnRzID0gXCJcIiArIHJlcXVpcmUoJy4vaW5kZXguaHRtbCcpICsgXCIgXCIgKyByZXF1aXJlKCcuL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbmVkaXRvci5odG1sJykgKyBcIlxcblwiICsgcmVxdWlyZSgnLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHllZGl0b3ItdHJpZ2dlcnNpdGVtcy5odG1sJykgKyBcIlxcblwiICsgcmVxdWlyZSgnLi90b29sYmFyLmh0bWwnKSArIFwiIFwiICsgcmVxdWlyZSgnLi9jb252ZXJ0LWFjdGlvbi5odG1sJykgKyBcIlxcblwiICsgcmVxdWlyZSgnLi4vc3ZnYnVuZGxlLmh0bWwnKSArIFwiIFwiICsgcmVxdWlyZSgnLi90YWJzLmh0bWwnKSArIFwiXFxuXCIgKyByZXF1aXJlKCcuL2Rlc2lnbi1zdXJmYWNlLmh0bWwnKSArIFwiXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXY+XFxuICA8IS0tIGtvIGZvcmVhY2g6IHRhYnMgLS0+XFxuICA8ZGl2XFxuICAgIGNsYXNzPVxcXCJzdmQtYWNjb3JkaW9uLXRhYi1oZWFkZXJcXFwiXFxuICAgIHJvbGU9XFxcInRhYlxcXCJcXG4gICAgdGFiaW5kZXg9XFxcIjBcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IHRvZ2dsZSwga2V5MmNsaWNrLCB2aXNpYmxlOiAkcGFyZW50LnNob3dIZWFkZXIsIGF0dHI6IHsgJ2RhdGEtdGl0bGUnOiB0aXRsZSB9XFxcIlxcbiAgPlxcbiAgICA8c3BhblxcbiAgICAgIGRhdGEtYmluZD1cXFwiY3NzOiB7ICdzdmQtbWFpbi1jb2xvcic6ICFjb2xsYXBzZWQoKSB9LCB0ZXh0OiB0aXRsZVxcXCJcXG4gICAgPjwvc3Bhbj5cXG4gICAgPCEtLSBrbyBpZjogY29sbGFwc2VkIC0tPlxcbiAgICA8c3ZnLWljb25cXG4gICAgICBjbGFzcz1cXFwiaWNvbi10b29sYm94LWFycm93XFxcIlxcbiAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWFycm93X2Rvd25fMTB4MTAnLCBzaXplOiAxMFxcXCJcXG4gICAgPjwvc3ZnLWljb24+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgICA8IS0tIGtvIGlmbm90OiBjb2xsYXBzZWQgLS0+XFxuICAgIDxzdmctaWNvblxcbiAgICAgIGNsYXNzPVxcXCJpY29uLXRvb2xib3gtYXJyb3cgc3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1hcnJvd191cF8xMHgxMCcsIHNpemU6IDEwXFxcIlxcbiAgICA+PC9zdmctaWNvbj5cXG4gICAgPCEtLSAva28gLS0+XFxuICA8L2Rpdj5cXG4gIDxkaXZcXG4gICAgY2xhc3M9XFxcInN2ZC1hY2NvcmRpb24tdGFiLWNvbnRlbnRcXFwiXFxuICAgIHJvbGU9XFxcInRhYlxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJpZm5vdDogY29sbGFwc2VkXFxcIlxcbiAgPlxcbiAgICA8IS0tIGtvIGNvbXBvbmVudDogeyBuYW1lOiBkYXRhLmh0bWxUZW1wbGF0ZSwgcGFyYW1zOiB7IG1vZGVsOiBkYXRhLnRlbXBsYXRlT2JqZWN0LCBhZnRlclJlbmRlcjogZGF0YS5rb0FmdGVyUmVuZGVyIHx8IGRhdGEuYWZ0ZXJSZW5kZXIgfSB9IC0tPjwhLS0gL2tvIC0tPlxcbiAgPC9kaXY+XFxuICA8IS0tIC9rbyAtLT5cXG48L2Rpdj5cXG5cIjsiLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBkYXRhLWJpbmQ9XFxcImNsaWNrOiB0b2dnbGUsIGF0dHI6IHsgdGl0bGU6IGdldExvY1N0cmluZyh2aXNpYmxlKCkgPyAnZWQuaGlkZVBhbmVsJzonZWQuc2hvd1BhbmVsJykgfVxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJpY29uIHN2ZC1pY29uLWNvbnRhaW5lciBzdmQtaWNvbi1jb250YWluZXItLWxlZnQtb3BlblxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiAhaXNPcGVuKClcXFwiPlxcbiAgICA8c3ZnLWljb24gY2xhc3M9XFxcInN2ZC1zdmctaWNvblxcXCIgcGFyYW1zPVxcXCJpY29uTmFtZTogaWNvbkxlZnRPcGVuLCB3aWR0aDogMTQsIGhlaWdodDogMjRcXFwiPjwvc3ZnLWljb24+XFxuICA8L2Rpdj5cXG4gIDxkaXYgY2xhc3M9XFxcImljb24gc3ZkLWljb24tY29udGFpbmVyIHN2ZC1pY29uLWNvbnRhaW5lci0tbGVmdC1jbG9zZVxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBpc09wZW5cXFwiPlxcbiAgICA8c3ZnLWljb24gY2xhc3M9XFxcInN2ZC1zdmctaWNvblxcXCIgcGFyYW1zPVxcXCJpY29uTmFtZTogaWNvbkxlZnRDbG9zZSwgd2lkdGg6IDE0LCBoZWlnaHQ6IDI0XFxcIj48L3N2Zy1pY29uPlxcbiAgPC9kaXY+XFxuICA8ZGl2IGNsYXNzPVxcXCJpY29uIHN2ZC1pY29uLWNvbnRhaW5lciBzdmQtaWNvbi1jb250YWluZXItLXJpZ2h0LW9wZW5cXFwiIGRhdGEtYmluZD1cXFwidmlzaWJsZTogIWlzT3BlbigpXFxcIj5cXG4gICAgPHN2Zy1pY29uIGNsYXNzPVxcXCJzdmQtc3ZnLWljb25cXFwiIHBhcmFtcz1cXFwiaWNvbk5hbWU6IGljb25SaWdodE9wZW4sIHdpZHRoOiAxNCwgaGVpZ2h0OiAyNFxcXCI+PC9zdmctaWNvbj5cXG4gIDwvZGl2PlxcbiAgPGRpdiBjbGFzcz1cXFwiaWNvbiBzdmQtaWNvbi1jb250YWluZXIgc3ZkLWljb24tY29udGFpbmVyLS1yaWdodC1jbG9zZVxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBpc09wZW5cXFwiPlxcbiAgICA8c3ZnLWljb24gY2xhc3M9XFxcInN2ZC1zdmctaWNvblxcXCIgcGFyYW1zPVxcXCJpY29uTmFtZTogaWNvblJpZ2h0Q2xvc2UsIHdpZHRoOiAxNCwgaGVpZ2h0OiAyNFxcXCI+PC9zdmctaWNvbj5cXG4gIDwvZGl2PlxcbjwvZGl2PlxcblxcbjxkaXYgZGF0YS1iaW5kPVxcXCJjc3M6IGNsYXNzTmFtZVxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19yb3dcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgIDxkaXY+XFxuICAgICAgICAgIDwhLS0ga28gaWY6IHRhYnMoKS5sZW5ndGggPiAxIC0tPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtZGVzaWduZXItdGFiYmVkLWNvbnRhaW5lcl9fdGFiLWhlYWRlci1jb250YWluZXJcXFwiIHJvbGU9XFxcInRhYmxpc3RcXFwiPlxcbiAgICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDogeyBkYXRhOiB0YWJzLCBhczogJ2NvbnRlbnQnIH0gLS0+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLWRlc2lnbmVyLXRhYmJlZC1jb250YWluZXJfX3RhYi1oZWFkZXJcXFwiXFxuICAgICAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRwYXJlbnQuY29udGV4dC5nZXRMb2NTdHJpbmcoJ2VkLicgKyBjb250ZW50KSwgY2xpY2s6IGZ1bmN0aW9uKCkgeyAkcGFyZW50LmFjdGl2ZVRhYihjb250ZW50KTsgfSwgY3NzOiB7ICdzdmQtZGVzaWduZXItdGFiYmVkLWNvbnRhaW5lcl9fdGFiLWhlYWRlci1hY3RpdmUnIDogY29udGVudCA9PT0gJHBhcmVudC5hY3RpdmVUYWIoKSB9LCBrZXkyY2xpY2ssIGF0dHI6IHsgJ2FyaWEtbGFiZWwnOiAkcGFyZW50LmNvbnRleHQuZ2V0TG9jU3RyaW5nKCdlZC4nICsgY29udGVudCksIHJvbGU6ICd0YWInIH1cXFwiXFxuICAgICAgICAgICAgICB0YWJpbmRleD1cXFwiMFxcXCI+PC9kaXY+XFxuICAgICAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICA8IS0tIC9rbyAtLT5cXG5cXG4gICAgICAgICAgPCEtLSBrbyBpZjogdGFicygpLmxlbmd0aCA9PT0gMSAtLT5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLWRlc2lnbmVyLWNvbnRhaW5lcl9faGVhZGVyXFxcIj5cXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwic3ZkLWRlc2lnbmVyLWNvbnRhaW5lcl9faGVhZGVyLXRpdGxlXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IGdldExvY1N0cmluZygnZWQuJyArIHRhYnMoKVswXSlcXFwiPjwvc3Bhbj5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19yb3dcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGwtY29udGVudC1ob2xkZXJcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19jZWxsLWNvbnRlbnRcXFwiPlxcbiAgICAgICAgICAgIDwhLS0ga28gaWY6IHRhYnMoKS5sZW5ndGggPiAxIC0tPlxcbiAgICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDogeyBkYXRhOiB0YWJzLCBhczogJ2NvbnRlbnQnIH0gLS0+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLWRlc2lnbmVyLXRhYmJlZC1jb250YWluZXJfX3RhYi1jb250ZW50XFxcIlxcbiAgICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJjc3M6IHsgJ3N2ZC1kZXNpZ25lci10YWJiZWQtY29udGFpbmVyX190YWItY29udGVudC1hY3RpdmUnIDogY29udGVudCA9PT0gJHBhcmVudC5hY3RpdmVUYWIoKSB9XFxcIj5cXG4gICAgICAgICAgICAgIDwhLS0ga28gdGVtcGxhdGU6IHsgbmFtZTogJ3NlLWNvbXBvbmVudC0nICsgY29udGVudCwgZGF0YTogJHBhcmVudC5jb250ZXh0IH0gLS0+XFxuICAgICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgICAgICA8IS0tIGtvIGlmOiB0YWJzKCkubGVuZ3RoID09PSAxIC0tPlxcbiAgICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDogeyBkYXRhOiB0YWJzLCBhczogJ2NvbnRlbnQnIH0gLS0+XFxuXFxuICAgICAgICAgICAgPCEtLSBrbyB0ZW1wbGF0ZTogeyBuYW1lOiAnc2UtY29tcG9uZW50LScgKyBjb250ZW50LCBkYXRhOiAkcGFyZW50LmNvbnRleHQgfSAtLT5cXG4gICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG5cXG4gICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG48L2Rpdj5cIjsiLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBkYXRhLWJpbmQ9XFxcImNzczogY2xhc3NOYW1lXFxcIj5cXG4gIDwhLS0ga28gZm9yZWFjaDogeyBkYXRhOiBpdGVtcywgYXM6ICdjb250ZW50JyB9IC0tPlxcbiAgPCEtLSBrbyB0ZW1wbGF0ZTogeyBuYW1lOiAnc2UtY29tcG9uZW50LScgKyBjb250ZW50LCBkYXRhOiAkcGFyZW50LmNvbnRleHQgfSAtLT5cXG4gIDwhLS0gL2tvIC0tPlxcbiAgPCEtLSAva28gLS0+XFxuPC9kaXY+XFxuXCI7IiwiLyogQGxpY2Vuc2VcblBhcGEgUGFyc2VcbnY1LjQuMVxuaHR0cHM6Ly9naXRodWIuY29tL21ob2x0L1BhcGFQYXJzZVxuTGljZW5zZTogTUlUXG4qL1xuIWZ1bmN0aW9uKGUsdCl7XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSx0KTpcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz10KCk6ZS5QYXBhPXQoKX0odGhpcyxmdW5jdGlvbiBzKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGY9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjpcInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp2b2lkIDAhPT1mP2Y6e307dmFyIG49IWYuZG9jdW1lbnQmJiEhZi5wb3N0TWVzc2FnZSxvPWYuSVNfUEFQQV9XT1JLRVJ8fCExLGE9e30sdT0wLGI9e3BhcnNlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9KHQ9dHx8e30pLmR5bmFtaWNUeXBpbmd8fCExO0oocikmJih0LmR5bmFtaWNUeXBpbmdGdW5jdGlvbj1yLHI9e30pO2lmKHQuZHluYW1pY1R5cGluZz1yLHQudHJhbnNmb3JtPSEhSih0LnRyYW5zZm9ybSkmJnQudHJhbnNmb3JtLHQud29ya2VyJiZiLldPUktFUlNfU1VQUE9SVEVEKXt2YXIgaT1mdW5jdGlvbigpe2lmKCFiLldPUktFUlNfU1VQUE9SVEVEKXJldHVybiExO3ZhciBlPShyPWYuVVJMfHxmLndlYmtpdFVSTHx8bnVsbCxpPXMudG9TdHJpbmcoKSxiLkJMT0JfVVJMfHwoYi5CTE9CX1VSTD1yLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbXCJ2YXIgZ2xvYmFsID0gKGZ1bmN0aW9uKCkgeyBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7IHJldHVybiBzZWxmOyB9IGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgeyByZXR1cm4gd2luZG93OyB9IGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykgeyByZXR1cm4gZ2xvYmFsOyB9IHJldHVybiB7fTsgfSkoKTsgZ2xvYmFsLklTX1BBUEFfV09SS0VSPXRydWU7IFwiLFwiKFwiLGksXCIpKCk7XCJdLHt0eXBlOlwidGV4dC9qYXZhc2NyaXB0XCJ9KSkpKSx0PW5ldyBmLldvcmtlcihlKTt2YXIgcixpO3JldHVybiB0Lm9ubWVzc2FnZT1fLHQuaWQ9dSsrLGFbdC5pZF09dH0oKTtyZXR1cm4gaS51c2VyU3RlcD10LnN0ZXAsaS51c2VyQ2h1bms9dC5jaHVuayxpLnVzZXJDb21wbGV0ZT10LmNvbXBsZXRlLGkudXNlckVycm9yPXQuZXJyb3IsdC5zdGVwPUoodC5zdGVwKSx0LmNodW5rPUoodC5jaHVuayksdC5jb21wbGV0ZT1KKHQuY29tcGxldGUpLHQuZXJyb3I9Sih0LmVycm9yKSxkZWxldGUgdC53b3JrZXIsdm9pZCBpLnBvc3RNZXNzYWdlKHtpbnB1dDplLGNvbmZpZzp0LHdvcmtlcklkOmkuaWR9KX12YXIgbj1udWxsO2IuTk9ERV9TVFJFQU1fSU5QVVQsXCJzdHJpbmdcIj09dHlwZW9mIGU/KGU9ZnVuY3Rpb24oZSl7aWYoNjUyNzk9PT1lLmNoYXJDb2RlQXQoMCkpcmV0dXJuIGUuc2xpY2UoMSk7cmV0dXJuIGV9KGUpLG49dC5kb3dubG9hZD9uZXcgbCh0KTpuZXcgcCh0KSk6ITA9PT1lLnJlYWRhYmxlJiZKKGUucmVhZCkmJkooZS5vbik/bj1uZXcgZyh0KTooZi5GaWxlJiZlIGluc3RhbmNlb2YgRmlsZXx8ZSBpbnN0YW5jZW9mIE9iamVjdCkmJihuPW5ldyBjKHQpKTtyZXR1cm4gbi5zdHJlYW0oZSl9LHVucGFyc2U6ZnVuY3Rpb24oZSx0KXt2YXIgbj0hMSxfPSEwLG09XCIsXCIseT1cIlxcclxcblwiLHM9J1wiJyxhPXMrcyxyPSExLGk9bnVsbCxvPSExOyFmdW5jdGlvbigpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiB0KXJldHVybjtcInN0cmluZ1wiIT10eXBlb2YgdC5kZWxpbWl0ZXJ8fGIuQkFEX0RFTElNSVRFUlMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybi0xIT09dC5kZWxpbWl0ZXIuaW5kZXhPZihlKX0pLmxlbmd0aHx8KG09dC5kZWxpbWl0ZXIpOyhcImJvb2xlYW5cIj09dHlwZW9mIHQucXVvdGVzfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnF1b3Rlc3x8QXJyYXkuaXNBcnJheSh0LnF1b3RlcykpJiYobj10LnF1b3Rlcyk7XCJib29sZWFuXCIhPXR5cGVvZiB0LnNraXBFbXB0eUxpbmVzJiZcInN0cmluZ1wiIT10eXBlb2YgdC5za2lwRW1wdHlMaW5lc3x8KHI9dC5za2lwRW1wdHlMaW5lcyk7XCJzdHJpbmdcIj09dHlwZW9mIHQubmV3bGluZSYmKHk9dC5uZXdsaW5lKTtcInN0cmluZ1wiPT10eXBlb2YgdC5xdW90ZUNoYXImJihzPXQucXVvdGVDaGFyKTtcImJvb2xlYW5cIj09dHlwZW9mIHQuaGVhZGVyJiYoXz10LmhlYWRlcik7aWYoQXJyYXkuaXNBcnJheSh0LmNvbHVtbnMpKXtpZigwPT09dC5jb2x1bW5zLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJPcHRpb24gY29sdW1ucyBpcyBlbXB0eVwiKTtpPXQuY29sdW1uc312b2lkIDAhPT10LmVzY2FwZUNoYXImJihhPXQuZXNjYXBlQ2hhcitzKTsoXCJib29sZWFuXCI9PXR5cGVvZiB0LmVzY2FwZUZvcm11bGFlfHx0LmVzY2FwZUZvcm11bGFlIGluc3RhbmNlb2YgUmVnRXhwKSYmKG89dC5lc2NhcGVGb3JtdWxhZSBpbnN0YW5jZW9mIFJlZ0V4cD90LmVzY2FwZUZvcm11bGFlOi9eWz0rXFwtQFxcdFxccl0uKiQvKX0oKTt2YXIgdT1uZXcgUmVnRXhwKFEocyksXCJnXCIpO1wic3RyaW5nXCI9PXR5cGVvZiBlJiYoZT1KU09OLnBhcnNlKGUpKTtpZihBcnJheS5pc0FycmF5KGUpKXtpZighZS5sZW5ndGh8fEFycmF5LmlzQXJyYXkoZVswXSkpcmV0dXJuIGgobnVsbCxlLHIpO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBlWzBdKXJldHVybiBoKGl8fE9iamVjdC5rZXlzKGVbMF0pLGUscil9ZWxzZSBpZihcIm9iamVjdFwiPT10eXBlb2YgZSlyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZS5kYXRhJiYoZS5kYXRhPUpTT04ucGFyc2UoZS5kYXRhKSksQXJyYXkuaXNBcnJheShlLmRhdGEpJiYoZS5maWVsZHN8fChlLmZpZWxkcz1lLm1ldGEmJmUubWV0YS5maWVsZHN8fGkpLGUuZmllbGRzfHwoZS5maWVsZHM9QXJyYXkuaXNBcnJheShlLmRhdGFbMF0pP2UuZmllbGRzOlwib2JqZWN0XCI9PXR5cGVvZiBlLmRhdGFbMF0/T2JqZWN0LmtleXMoZS5kYXRhWzBdKTpbXSksQXJyYXkuaXNBcnJheShlLmRhdGFbMF0pfHxcIm9iamVjdFwiPT10eXBlb2YgZS5kYXRhWzBdfHwoZS5kYXRhPVtlLmRhdGFdKSksaChlLmZpZWxkc3x8W10sZS5kYXRhfHxbXSxyKTt0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gc2VyaWFsaXplIHVucmVjb2duaXplZCBpbnB1dFwiKTtmdW5jdGlvbiBoKGUsdCxyKXt2YXIgaT1cIlwiO1wic3RyaW5nXCI9PXR5cGVvZiBlJiYoZT1KU09OLnBhcnNlKGUpKSxcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9SlNPTi5wYXJzZSh0KSk7dmFyIG49QXJyYXkuaXNBcnJheShlKSYmMDxlLmxlbmd0aCxzPSFBcnJheS5pc0FycmF5KHRbMF0pO2lmKG4mJl8pe2Zvcih2YXIgYT0wO2E8ZS5sZW5ndGg7YSsrKTA8YSYmKGkrPW0pLGkrPXYoZVthXSxhKTswPHQubGVuZ3RoJiYoaSs9eSl9Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciB1PW4/ZS5sZW5ndGg6dFtvXS5sZW5ndGgsaD0hMSxmPW4/MD09PU9iamVjdC5rZXlzKHRbb10pLmxlbmd0aDowPT09dFtvXS5sZW5ndGg7aWYociYmIW4mJihoPVwiZ3JlZWR5XCI9PT1yP1wiXCI9PT10W29dLmpvaW4oXCJcIikudHJpbSgpOjE9PT10W29dLmxlbmd0aCYmMD09PXRbb11bMF0ubGVuZ3RoKSxcImdyZWVkeVwiPT09ciYmbil7Zm9yKHZhciBkPVtdLGw9MDtsPHU7bCsrKXt2YXIgYz1zP2VbbF06bDtkLnB1c2godFtvXVtjXSl9aD1cIlwiPT09ZC5qb2luKFwiXCIpLnRyaW0oKX1pZighaCl7Zm9yKHZhciBwPTA7cDx1O3ArKyl7MDxwJiYhZiYmKGkrPW0pO3ZhciBnPW4mJnM/ZVtwXTpwO2krPXYodFtvXVtnXSxwKX1vPHQubGVuZ3RoLTEmJighcnx8MDx1JiYhZikmJihpKz15KX19cmV0dXJuIGl9ZnVuY3Rpb24gdihlLHQpe2lmKG51bGw9PWUpcmV0dXJuXCJcIjtpZihlLmNvbnN0cnVjdG9yPT09RGF0ZSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSkuc2xpY2UoMSwyNSk7dmFyIHI9ITE7byYmXCJzdHJpbmdcIj09dHlwZW9mIGUmJm8udGVzdChlKSYmKGU9XCInXCIrZSxyPSEwKTt2YXIgaT1lLnRvU3RyaW5nKCkucmVwbGFjZSh1LGEpO3JldHVybihyPXJ8fCEwPT09bnx8XCJmdW5jdGlvblwiPT10eXBlb2YgbiYmbihlLHQpfHxBcnJheS5pc0FycmF5KG4pJiZuW3RdfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKC0xPGUuaW5kZXhPZih0W3JdKSlyZXR1cm4hMDtyZXR1cm4hMX0oaSxiLkJBRF9ERUxJTUlURVJTKXx8LTE8aS5pbmRleE9mKG0pfHxcIiBcIj09PWkuY2hhckF0KDApfHxcIiBcIj09PWkuY2hhckF0KGkubGVuZ3RoLTEpKT9zK2krczppfX19O2lmKGIuUkVDT1JEX1NFUD1TdHJpbmcuZnJvbUNoYXJDb2RlKDMwKSxiLlVOSVRfU0VQPVN0cmluZy5mcm9tQ2hhckNvZGUoMzEpLGIuQllURV9PUkRFUl9NQVJLPVwiXFx1ZmVmZlwiLGIuQkFEX0RFTElNSVRFUlM9W1wiXFxyXCIsXCJcXG5cIiwnXCInLGIuQllURV9PUkRFUl9NQVJLXSxiLldPUktFUlNfU1VQUE9SVEVEPSFuJiYhIWYuV29ya2VyLGIuTk9ERV9TVFJFQU1fSU5QVVQ9MSxiLkxvY2FsQ2h1bmtTaXplPTEwNDg1NzYwLGIuUmVtb3RlQ2h1bmtTaXplPTUyNDI4ODAsYi5EZWZhdWx0RGVsaW1pdGVyPVwiLFwiLGIuUGFyc2VyPUUsYi5QYXJzZXJIYW5kbGU9cixiLk5ldHdvcmtTdHJlYW1lcj1sLGIuRmlsZVN0cmVhbWVyPWMsYi5TdHJpbmdTdHJlYW1lcj1wLGIuUmVhZGFibGVTdHJlYW1TdHJlYW1lcj1nLGYualF1ZXJ5KXt2YXIgZD1mLmpRdWVyeTtkLmZuLnBhcnNlPWZ1bmN0aW9uKG8pe3ZhciByPW8uY29uZmlnfHx7fSx1PVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7aWYoIShcIklOUFVUXCI9PT1kKHRoaXMpLnByb3AoXCJ0YWdOYW1lXCIpLnRvVXBwZXJDYXNlKCkmJlwiZmlsZVwiPT09ZCh0aGlzKS5hdHRyKFwidHlwZVwiKS50b0xvd2VyQ2FzZSgpJiZmLkZpbGVSZWFkZXIpfHwhdGhpcy5maWxlc3x8MD09PXRoaXMuZmlsZXMubGVuZ3RoKXJldHVybiEwO2Zvcih2YXIgdD0wO3Q8dGhpcy5maWxlcy5sZW5ndGg7dCsrKXUucHVzaCh7ZmlsZTp0aGlzLmZpbGVzW3RdLGlucHV0RWxlbTp0aGlzLGluc3RhbmNlQ29uZmlnOmQuZXh0ZW5kKHt9LHIpfSl9KSxlKCksdGhpcztmdW5jdGlvbiBlKCl7aWYoMCE9PXUubGVuZ3RoKXt2YXIgZSx0LHIsaSxuPXVbMF07aWYoSihvLmJlZm9yZSkpe3ZhciBzPW8uYmVmb3JlKG4uZmlsZSxuLmlucHV0RWxlbSk7aWYoXCJvYmplY3RcIj09dHlwZW9mIHMpe2lmKFwiYWJvcnRcIj09PXMuYWN0aW9uKXJldHVybiBlPVwiQWJvcnRFcnJvclwiLHQ9bi5maWxlLHI9bi5pbnB1dEVsZW0saT1zLnJlYXNvbix2b2lkKEooby5lcnJvcikmJm8uZXJyb3Ioe25hbWU6ZX0sdCxyLGkpKTtpZihcInNraXBcIj09PXMuYWN0aW9uKXJldHVybiB2b2lkIGgoKTtcIm9iamVjdFwiPT10eXBlb2Ygcy5jb25maWcmJihuLmluc3RhbmNlQ29uZmlnPWQuZXh0ZW5kKG4uaW5zdGFuY2VDb25maWcscy5jb25maWcpKX1lbHNlIGlmKFwic2tpcFwiPT09cylyZXR1cm4gdm9pZCBoKCl9dmFyIGE9bi5pbnN0YW5jZUNvbmZpZy5jb21wbGV0ZTtuLmluc3RhbmNlQ29uZmlnLmNvbXBsZXRlPWZ1bmN0aW9uKGUpe0ooYSkmJmEoZSxuLmZpbGUsbi5pbnB1dEVsZW0pLGgoKX0sYi5wYXJzZShuLmZpbGUsbi5pbnN0YW5jZUNvbmZpZyl9ZWxzZSBKKG8uY29tcGxldGUpJiZvLmNvbXBsZXRlKCl9ZnVuY3Rpb24gaCgpe3Uuc3BsaWNlKDAsMSksZSgpfX19ZnVuY3Rpb24gaChlKXt0aGlzLl9oYW5kbGU9bnVsbCx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9jb21wbGV0ZWQ9ITEsdGhpcy5faGFsdGVkPSExLHRoaXMuX2lucHV0PW51bGwsdGhpcy5fYmFzZUluZGV4PTAsdGhpcy5fcGFydGlhbExpbmU9XCJcIix0aGlzLl9yb3dDb3VudD0wLHRoaXMuX3N0YXJ0PTAsdGhpcy5fbmV4dENodW5rPW51bGwsdGhpcy5pc0ZpcnN0Q2h1bms9ITAsdGhpcy5fY29tcGxldGVSZXN1bHRzPXtkYXRhOltdLGVycm9yczpbXSxtZXRhOnt9fSxmdW5jdGlvbihlKXt2YXIgdD13KGUpO3QuY2h1bmtTaXplPXBhcnNlSW50KHQuY2h1bmtTaXplKSxlLnN0ZXB8fGUuY2h1bmt8fCh0LmNodW5rU2l6ZT1udWxsKTt0aGlzLl9oYW5kbGU9bmV3IHIodCksKHRoaXMuX2hhbmRsZS5zdHJlYW1lcj10aGlzKS5fY29uZmlnPXR9LmNhbGwodGhpcyxlKSx0aGlzLnBhcnNlQ2h1bms9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmlzRmlyc3RDaHVuayYmSih0aGlzLl9jb25maWcuYmVmb3JlRmlyc3RDaHVuaykpe3ZhciByPXRoaXMuX2NvbmZpZy5iZWZvcmVGaXJzdENodW5rKGUpO3ZvaWQgMCE9PXImJihlPXIpfXRoaXMuaXNGaXJzdENodW5rPSExLHRoaXMuX2hhbHRlZD0hMTt2YXIgaT10aGlzLl9wYXJ0aWFsTGluZStlO3RoaXMuX3BhcnRpYWxMaW5lPVwiXCI7dmFyIG49dGhpcy5faGFuZGxlLnBhcnNlKGksdGhpcy5fYmFzZUluZGV4LCF0aGlzLl9maW5pc2hlZCk7aWYoIXRoaXMuX2hhbmRsZS5wYXVzZWQoKSYmIXRoaXMuX2hhbmRsZS5hYm9ydGVkKCkpe3ZhciBzPW4ubWV0YS5jdXJzb3I7dGhpcy5fZmluaXNoZWR8fCh0aGlzLl9wYXJ0aWFsTGluZT1pLnN1YnN0cmluZyhzLXRoaXMuX2Jhc2VJbmRleCksdGhpcy5fYmFzZUluZGV4PXMpLG4mJm4uZGF0YSYmKHRoaXMuX3Jvd0NvdW50Kz1uLmRhdGEubGVuZ3RoKTt2YXIgYT10aGlzLl9maW5pc2hlZHx8dGhpcy5fY29uZmlnLnByZXZpZXcmJnRoaXMuX3Jvd0NvdW50Pj10aGlzLl9jb25maWcucHJldmlldztpZihvKWYucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6bix3b3JrZXJJZDpiLldPUktFUl9JRCxmaW5pc2hlZDphfSk7ZWxzZSBpZihKKHRoaXMuX2NvbmZpZy5jaHVuaykmJiF0KXtpZih0aGlzLl9jb25maWcuY2h1bmsobix0aGlzLl9oYW5kbGUpLHRoaXMuX2hhbmRsZS5wYXVzZWQoKXx8dGhpcy5faGFuZGxlLmFib3J0ZWQoKSlyZXR1cm4gdm9pZCh0aGlzLl9oYWx0ZWQ9ITApO249dm9pZCAwLHRoaXMuX2NvbXBsZXRlUmVzdWx0cz12b2lkIDB9cmV0dXJuIHRoaXMuX2NvbmZpZy5zdGVwfHx0aGlzLl9jb25maWcuY2h1bmt8fCh0aGlzLl9jb21wbGV0ZVJlc3VsdHMuZGF0YT10aGlzLl9jb21wbGV0ZVJlc3VsdHMuZGF0YS5jb25jYXQobi5kYXRhKSx0aGlzLl9jb21wbGV0ZVJlc3VsdHMuZXJyb3JzPXRoaXMuX2NvbXBsZXRlUmVzdWx0cy5lcnJvcnMuY29uY2F0KG4uZXJyb3JzKSx0aGlzLl9jb21wbGV0ZVJlc3VsdHMubWV0YT1uLm1ldGEpLHRoaXMuX2NvbXBsZXRlZHx8IWF8fCFKKHRoaXMuX2NvbmZpZy5jb21wbGV0ZSl8fG4mJm4ubWV0YS5hYm9ydGVkfHwodGhpcy5fY29uZmlnLmNvbXBsZXRlKHRoaXMuX2NvbXBsZXRlUmVzdWx0cyx0aGlzLl9pbnB1dCksdGhpcy5fY29tcGxldGVkPSEwKSxhfHxuJiZuLm1ldGEucGF1c2VkfHx0aGlzLl9uZXh0Q2h1bmsoKSxufXRoaXMuX2hhbHRlZD0hMH0sdGhpcy5fc2VuZEVycm9yPWZ1bmN0aW9uKGUpe0oodGhpcy5fY29uZmlnLmVycm9yKT90aGlzLl9jb25maWcuZXJyb3IoZSk6byYmdGhpcy5fY29uZmlnLmVycm9yJiZmLnBvc3RNZXNzYWdlKHt3b3JrZXJJZDpiLldPUktFUl9JRCxlcnJvcjplLGZpbmlzaGVkOiExfSl9fWZ1bmN0aW9uIGwoZSl7dmFyIGk7KGU9ZXx8e30pLmNodW5rU2l6ZXx8KGUuY2h1bmtTaXplPWIuUmVtb3RlQ2h1bmtTaXplKSxoLmNhbGwodGhpcyxlKSx0aGlzLl9uZXh0Q2h1bms9bj9mdW5jdGlvbigpe3RoaXMuX3JlYWRDaHVuaygpLHRoaXMuX2NodW5rTG9hZGVkKCl9OmZ1bmN0aW9uKCl7dGhpcy5fcmVhZENodW5rKCl9LHRoaXMuc3RyZWFtPWZ1bmN0aW9uKGUpe3RoaXMuX2lucHV0PWUsdGhpcy5fbmV4dENodW5rKCl9LHRoaXMuX3JlYWRDaHVuaz1mdW5jdGlvbigpe2lmKHRoaXMuX2ZpbmlzaGVkKXRoaXMuX2NodW5rTG9hZGVkKCk7ZWxzZXtpZihpPW5ldyBYTUxIdHRwUmVxdWVzdCx0aGlzLl9jb25maWcud2l0aENyZWRlbnRpYWxzJiYoaS53aXRoQ3JlZGVudGlhbHM9dGhpcy5fY29uZmlnLndpdGhDcmVkZW50aWFscyksbnx8KGkub25sb2FkPXYodGhpcy5fY2h1bmtMb2FkZWQsdGhpcyksaS5vbmVycm9yPXYodGhpcy5fY2h1bmtFcnJvcix0aGlzKSksaS5vcGVuKHRoaXMuX2NvbmZpZy5kb3dubG9hZFJlcXVlc3RCb2R5P1wiUE9TVFwiOlwiR0VUXCIsdGhpcy5faW5wdXQsIW4pLHRoaXMuX2NvbmZpZy5kb3dubG9hZFJlcXVlc3RIZWFkZXJzKXt2YXIgZT10aGlzLl9jb25maWcuZG93bmxvYWRSZXF1ZXN0SGVhZGVycztmb3IodmFyIHQgaW4gZSlpLnNldFJlcXVlc3RIZWFkZXIodCxlW3RdKX1pZih0aGlzLl9jb25maWcuY2h1bmtTaXplKXt2YXIgcj10aGlzLl9zdGFydCt0aGlzLl9jb25maWcuY2h1bmtTaXplLTE7aS5zZXRSZXF1ZXN0SGVhZGVyKFwiUmFuZ2VcIixcImJ5dGVzPVwiK3RoaXMuX3N0YXJ0K1wiLVwiK3IpfXRyeXtpLnNlbmQodGhpcy5fY29uZmlnLmRvd25sb2FkUmVxdWVzdEJvZHkpfWNhdGNoKGUpe3RoaXMuX2NodW5rRXJyb3IoZS5tZXNzYWdlKX1uJiYwPT09aS5zdGF0dXMmJnRoaXMuX2NodW5rRXJyb3IoKX19LHRoaXMuX2NodW5rTG9hZGVkPWZ1bmN0aW9uKCl7ND09PWkucmVhZHlTdGF0ZSYmKGkuc3RhdHVzPDIwMHx8NDAwPD1pLnN0YXR1cz90aGlzLl9jaHVua0Vycm9yKCk6KHRoaXMuX3N0YXJ0Kz10aGlzLl9jb25maWcuY2h1bmtTaXplP3RoaXMuX2NvbmZpZy5jaHVua1NpemU6aS5yZXNwb25zZVRleHQubGVuZ3RoLHRoaXMuX2ZpbmlzaGVkPSF0aGlzLl9jb25maWcuY2h1bmtTaXplfHx0aGlzLl9zdGFydD49ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRSZXNwb25zZUhlYWRlcihcIkNvbnRlbnQtUmFuZ2VcIik7aWYobnVsbD09PXQpcmV0dXJuLTE7cmV0dXJuIHBhcnNlSW50KHQuc3Vic3RyaW5nKHQubGFzdEluZGV4T2YoXCIvXCIpKzEpKX0oaSksdGhpcy5wYXJzZUNodW5rKGkucmVzcG9uc2VUZXh0KSkpfSx0aGlzLl9jaHVua0Vycm9yPWZ1bmN0aW9uKGUpe3ZhciB0PWkuc3RhdHVzVGV4dHx8ZTt0aGlzLl9zZW5kRXJyb3IobmV3IEVycm9yKHQpKX19ZnVuY3Rpb24gYyhlKXt2YXIgaSxuOyhlPWV8fHt9KS5jaHVua1NpemV8fChlLmNodW5rU2l6ZT1iLkxvY2FsQ2h1bmtTaXplKSxoLmNhbGwodGhpcyxlKTt2YXIgcz1cInVuZGVmaW5lZFwiIT10eXBlb2YgRmlsZVJlYWRlcjt0aGlzLnN0cmVhbT1mdW5jdGlvbihlKXt0aGlzLl9pbnB1dD1lLG49ZS5zbGljZXx8ZS53ZWJraXRTbGljZXx8ZS5tb3pTbGljZSxzPygoaT1uZXcgRmlsZVJlYWRlcikub25sb2FkPXYodGhpcy5fY2h1bmtMb2FkZWQsdGhpcyksaS5vbmVycm9yPXYodGhpcy5fY2h1bmtFcnJvcix0aGlzKSk6aT1uZXcgRmlsZVJlYWRlclN5bmMsdGhpcy5fbmV4dENodW5rKCl9LHRoaXMuX25leHRDaHVuaz1mdW5jdGlvbigpe3RoaXMuX2ZpbmlzaGVkfHx0aGlzLl9jb25maWcucHJldmlldyYmISh0aGlzLl9yb3dDb3VudDx0aGlzLl9jb25maWcucHJldmlldyl8fHRoaXMuX3JlYWRDaHVuaygpfSx0aGlzLl9yZWFkQ2h1bms9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9pbnB1dDtpZih0aGlzLl9jb25maWcuY2h1bmtTaXplKXt2YXIgdD1NYXRoLm1pbih0aGlzLl9zdGFydCt0aGlzLl9jb25maWcuY2h1bmtTaXplLHRoaXMuX2lucHV0LnNpemUpO2U9bi5jYWxsKGUsdGhpcy5fc3RhcnQsdCl9dmFyIHI9aS5yZWFkQXNUZXh0KGUsdGhpcy5fY29uZmlnLmVuY29kaW5nKTtzfHx0aGlzLl9jaHVua0xvYWRlZCh7dGFyZ2V0OntyZXN1bHQ6cn19KX0sdGhpcy5fY2h1bmtMb2FkZWQ9ZnVuY3Rpb24oZSl7dGhpcy5fc3RhcnQrPXRoaXMuX2NvbmZpZy5jaHVua1NpemUsdGhpcy5fZmluaXNoZWQ9IXRoaXMuX2NvbmZpZy5jaHVua1NpemV8fHRoaXMuX3N0YXJ0Pj10aGlzLl9pbnB1dC5zaXplLHRoaXMucGFyc2VDaHVuayhlLnRhcmdldC5yZXN1bHQpfSx0aGlzLl9jaHVua0Vycm9yPWZ1bmN0aW9uKCl7dGhpcy5fc2VuZEVycm9yKGkuZXJyb3IpfX1mdW5jdGlvbiBwKGUpe3ZhciByO2guY2FsbCh0aGlzLGU9ZXx8e30pLHRoaXMuc3RyZWFtPWZ1bmN0aW9uKGUpe3JldHVybiByPWUsdGhpcy5fbmV4dENodW5rKCl9LHRoaXMuX25leHRDaHVuaz1mdW5jdGlvbigpe2lmKCF0aGlzLl9maW5pc2hlZCl7dmFyIGUsdD10aGlzLl9jb25maWcuY2h1bmtTaXplO3JldHVybiB0PyhlPXIuc3Vic3RyaW5nKDAsdCkscj1yLnN1YnN0cmluZyh0KSk6KGU9cixyPVwiXCIpLHRoaXMuX2ZpbmlzaGVkPSFyLHRoaXMucGFyc2VDaHVuayhlKX19fWZ1bmN0aW9uIGcoZSl7aC5jYWxsKHRoaXMsZT1lfHx7fSk7dmFyIHQ9W10scj0hMCxpPSExO3RoaXMucGF1c2U9ZnVuY3Rpb24oKXtoLnByb3RvdHlwZS5wYXVzZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5faW5wdXQucGF1c2UoKX0sdGhpcy5yZXN1bWU9ZnVuY3Rpb24oKXtoLnByb3RvdHlwZS5yZXN1bWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2lucHV0LnJlc3VtZSgpfSx0aGlzLnN0cmVhbT1mdW5jdGlvbihlKXt0aGlzLl9pbnB1dD1lLHRoaXMuX2lucHV0Lm9uKFwiZGF0YVwiLHRoaXMuX3N0cmVhbURhdGEpLHRoaXMuX2lucHV0Lm9uKFwiZW5kXCIsdGhpcy5fc3RyZWFtRW5kKSx0aGlzLl9pbnB1dC5vbihcImVycm9yXCIsdGhpcy5fc3RyZWFtRXJyb3IpfSx0aGlzLl9jaGVja0lzRmluaXNoZWQ9ZnVuY3Rpb24oKXtpJiYxPT09dC5sZW5ndGgmJih0aGlzLl9maW5pc2hlZD0hMCl9LHRoaXMuX25leHRDaHVuaz1mdW5jdGlvbigpe3RoaXMuX2NoZWNrSXNGaW5pc2hlZCgpLHQubGVuZ3RoP3RoaXMucGFyc2VDaHVuayh0LnNoaWZ0KCkpOnI9ITB9LHRoaXMuX3N0cmVhbURhdGE9dihmdW5jdGlvbihlKXt0cnl7dC5wdXNoKFwic3RyaW5nXCI9PXR5cGVvZiBlP2U6ZS50b1N0cmluZyh0aGlzLl9jb25maWcuZW5jb2RpbmcpKSxyJiYocj0hMSx0aGlzLl9jaGVja0lzRmluaXNoZWQoKSx0aGlzLnBhcnNlQ2h1bmsodC5zaGlmdCgpKSl9Y2F0Y2goZSl7dGhpcy5fc3RyZWFtRXJyb3IoZSl9fSx0aGlzKSx0aGlzLl9zdHJlYW1FcnJvcj12KGZ1bmN0aW9uKGUpe3RoaXMuX3N0cmVhbUNsZWFuVXAoKSx0aGlzLl9zZW5kRXJyb3IoZSl9LHRoaXMpLHRoaXMuX3N0cmVhbUVuZD12KGZ1bmN0aW9uKCl7dGhpcy5fc3RyZWFtQ2xlYW5VcCgpLGk9ITAsdGhpcy5fc3RyZWFtRGF0YShcIlwiKX0sdGhpcyksdGhpcy5fc3RyZWFtQ2xlYW5VcD12KGZ1bmN0aW9uKCl7dGhpcy5faW5wdXQucmVtb3ZlTGlzdGVuZXIoXCJkYXRhXCIsdGhpcy5fc3RyZWFtRGF0YSksdGhpcy5faW5wdXQucmVtb3ZlTGlzdGVuZXIoXCJlbmRcIix0aGlzLl9zdHJlYW1FbmQpLHRoaXMuX2lucHV0LnJlbW92ZUxpc3RlbmVyKFwiZXJyb3JcIix0aGlzLl9zdHJlYW1FcnJvcil9LHRoaXMpfWZ1bmN0aW9uIHIobSl7dmFyIGEsbyx1LGk9TWF0aC5wb3coMiw1Myksbj0taSxzPS9eXFxzKi0/KFxcZCtcXC4/fFxcLlxcZCt8XFxkK1xcLlxcZCspKFtlRV1bLStdP1xcZCspP1xccyokLyxoPS9eKChcXGR7NH0tWzAxXVxcZC1bMC0zXVxcZFRbMC0yXVxcZDpbMC01XVxcZDpbMC01XVxcZFxcLlxcZCsoWystXVswLTJdXFxkOlswLTVdXFxkfFopKXwoXFxkezR9LVswMV1cXGQtWzAtM11cXGRUWzAtMl1cXGQ6WzAtNV1cXGQ6WzAtNV1cXGQoWystXVswLTJdXFxkOlswLTVdXFxkfFopKXwoXFxkezR9LVswMV1cXGQtWzAtM11cXGRUWzAtMl1cXGQ6WzAtNV1cXGQoWystXVswLTJdXFxkOlswLTVdXFxkfFopKSkkLyx0PXRoaXMscj0wLGY9MCxkPSExLGU9ITEsbD1bXSxjPXtkYXRhOltdLGVycm9yczpbXSxtZXRhOnt9fTtpZihKKG0uc3RlcCkpe3ZhciBwPW0uc3RlcDttLnN0ZXA9ZnVuY3Rpb24oZSl7aWYoYz1lLF8oKSlnKCk7ZWxzZXtpZihnKCksMD09PWMuZGF0YS5sZW5ndGgpcmV0dXJuO3IrPWUuZGF0YS5sZW5ndGgsbS5wcmV2aWV3JiZyPm0ucHJldmlldz9vLmFib3J0KCk6KGMuZGF0YT1jLmRhdGFbMF0scChjLHQpKX19fWZ1bmN0aW9uIHkoZSl7cmV0dXJuXCJncmVlZHlcIj09PW0uc2tpcEVtcHR5TGluZXM/XCJcIj09PWUuam9pbihcIlwiKS50cmltKCk6MT09PWUubGVuZ3RoJiYwPT09ZVswXS5sZW5ndGh9ZnVuY3Rpb24gZygpe3JldHVybiBjJiZ1JiYoayhcIkRlbGltaXRlclwiLFwiVW5kZXRlY3RhYmxlRGVsaW1pdGVyXCIsXCJVbmFibGUgdG8gYXV0by1kZXRlY3QgZGVsaW1pdGluZyBjaGFyYWN0ZXI7IGRlZmF1bHRlZCB0byAnXCIrYi5EZWZhdWx0RGVsaW1pdGVyK1wiJ1wiKSx1PSExKSxtLnNraXBFbXB0eUxpbmVzJiYoYy5kYXRhPWMuZGF0YS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXkoZSl9KSksXygpJiZmdW5jdGlvbigpe2lmKCFjKXJldHVybjtmdW5jdGlvbiBlKGUsdCl7SihtLnRyYW5zZm9ybUhlYWRlcikmJihlPW0udHJhbnNmb3JtSGVhZGVyKGUsdCkpLGwucHVzaChlKX1pZihBcnJheS5pc0FycmF5KGMuZGF0YVswXSkpe2Zvcih2YXIgdD0wO18oKSYmdDxjLmRhdGEubGVuZ3RoO3QrKyljLmRhdGFbdF0uZm9yRWFjaChlKTtjLmRhdGEuc3BsaWNlKDAsMSl9ZWxzZSBjLmRhdGEuZm9yRWFjaChlKX0oKSxmdW5jdGlvbigpe2lmKCFjfHwhbS5oZWFkZXImJiFtLmR5bmFtaWNUeXBpbmcmJiFtLnRyYW5zZm9ybSlyZXR1cm4gYztmdW5jdGlvbiBlKGUsdCl7dmFyIHIsaT1tLmhlYWRlcj97fTpbXTtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1yLHM9ZVtyXTttLmhlYWRlciYmKG49cj49bC5sZW5ndGg/XCJfX3BhcnNlZF9leHRyYVwiOmxbcl0pLG0udHJhbnNmb3JtJiYocz1tLnRyYW5zZm9ybShzLG4pKSxzPXYobixzKSxcIl9fcGFyc2VkX2V4dHJhXCI9PT1uPyhpW25dPWlbbl18fFtdLGlbbl0ucHVzaChzKSk6aVtuXT1zfXJldHVybiBtLmhlYWRlciYmKHI+bC5sZW5ndGg/ayhcIkZpZWxkTWlzbWF0Y2hcIixcIlRvb01hbnlGaWVsZHNcIixcIlRvbyBtYW55IGZpZWxkczogZXhwZWN0ZWQgXCIrbC5sZW5ndGgrXCIgZmllbGRzIGJ1dCBwYXJzZWQgXCIrcixmK3QpOnI8bC5sZW5ndGgmJmsoXCJGaWVsZE1pc21hdGNoXCIsXCJUb29GZXdGaWVsZHNcIixcIlRvbyBmZXcgZmllbGRzOiBleHBlY3RlZCBcIitsLmxlbmd0aCtcIiBmaWVsZHMgYnV0IHBhcnNlZCBcIityLGYrdCkpLGl9dmFyIHQ9MTshYy5kYXRhLmxlbmd0aHx8QXJyYXkuaXNBcnJheShjLmRhdGFbMF0pPyhjLmRhdGE9Yy5kYXRhLm1hcChlKSx0PWMuZGF0YS5sZW5ndGgpOmMuZGF0YT1lKGMuZGF0YSwwKTttLmhlYWRlciYmYy5tZXRhJiYoYy5tZXRhLmZpZWxkcz1sKTtyZXR1cm4gZis9dCxjfSgpfWZ1bmN0aW9uIF8oKXtyZXR1cm4gbS5oZWFkZXImJjA9PT1sLmxlbmd0aH1mdW5jdGlvbiB2KGUsdCl7cmV0dXJuIHI9ZSxtLmR5bmFtaWNUeXBpbmdGdW5jdGlvbiYmdm9pZCAwPT09bS5keW5hbWljVHlwaW5nW3JdJiYobS5keW5hbWljVHlwaW5nW3JdPW0uZHluYW1pY1R5cGluZ0Z1bmN0aW9uKHIpKSwhMD09PShtLmR5bmFtaWNUeXBpbmdbcl18fG0uZHluYW1pY1R5cGluZyk/XCJ0cnVlXCI9PT10fHxcIlRSVUVcIj09PXR8fFwiZmFsc2VcIiE9PXQmJlwiRkFMU0VcIiE9PXQmJihmdW5jdGlvbihlKXtpZihzLnRlc3QoZSkpe3ZhciB0PXBhcnNlRmxvYXQoZSk7aWYobjx0JiZ0PGkpcmV0dXJuITB9cmV0dXJuITF9KHQpP3BhcnNlRmxvYXQodCk6aC50ZXN0KHQpP25ldyBEYXRlKHQpOlwiXCI9PT10P251bGw6dCk6dDt2YXIgcn1mdW5jdGlvbiBrKGUsdCxyLGkpe3ZhciBuPXt0eXBlOmUsY29kZTp0LG1lc3NhZ2U6cn07dm9pZCAwIT09aSYmKG4ucm93PWkpLGMuZXJyb3JzLnB1c2gobil9dGhpcy5wYXJzZT1mdW5jdGlvbihlLHQscil7dmFyIGk9bS5xdW90ZUNoYXJ8fCdcIic7aWYobS5uZXdsaW5lfHwobS5uZXdsaW5lPWZ1bmN0aW9uKGUsdCl7ZT1lLnN1YnN0cmluZygwLDEwNDg1NzYpO3ZhciByPW5ldyBSZWdFeHAoUSh0KStcIihbXl0qPylcIitRKHQpLFwiZ21cIiksaT0oZT1lLnJlcGxhY2UocixcIlwiKSkuc3BsaXQoXCJcXHJcIiksbj1lLnNwbGl0KFwiXFxuXCIpLHM9MTxuLmxlbmd0aCYmblswXS5sZW5ndGg8aVswXS5sZW5ndGg7aWYoMT09PWkubGVuZ3RofHxzKXJldHVyblwiXFxuXCI7Zm9yKHZhciBhPTAsbz0wO288aS5sZW5ndGg7bysrKVwiXFxuXCI9PT1pW29dWzBdJiZhKys7cmV0dXJuIGE+PWkubGVuZ3RoLzI/XCJcXHJcXG5cIjpcIlxcclwifShlLGkpKSx1PSExLG0uZGVsaW1pdGVyKUoobS5kZWxpbWl0ZXIpJiYobS5kZWxpbWl0ZXI9bS5kZWxpbWl0ZXIoZSksYy5tZXRhLmRlbGltaXRlcj1tLmRlbGltaXRlcik7ZWxzZXt2YXIgbj1mdW5jdGlvbihlLHQscixpLG4pe3ZhciBzLGEsbyx1O249bnx8W1wiLFwiLFwiXFx0XCIsXCJ8XCIsXCI7XCIsYi5SRUNPUkRfU0VQLGIuVU5JVF9TRVBdO2Zvcih2YXIgaD0wO2g8bi5sZW5ndGg7aCsrKXt2YXIgZj1uW2hdLGQ9MCxsPTAsYz0wO289dm9pZCAwO2Zvcih2YXIgcD1uZXcgRSh7Y29tbWVudHM6aSxkZWxpbWl0ZXI6ZixuZXdsaW5lOnQscHJldmlldzoxMH0pLnBhcnNlKGUpLGc9MDtnPHAuZGF0YS5sZW5ndGg7ZysrKWlmKHImJnkocC5kYXRhW2ddKSljKys7ZWxzZXt2YXIgXz1wLmRhdGFbZ10ubGVuZ3RoO2wrPV8sdm9pZCAwIT09bz8wPF8mJihkKz1NYXRoLmFicyhfLW8pLG89Xyk6bz1ffTA8cC5kYXRhLmxlbmd0aCYmKGwvPXAuZGF0YS5sZW5ndGgtYyksKHZvaWQgMD09PWF8fGQ8PWEpJiYodm9pZCAwPT09dXx8dTxsKSYmMS45OTxsJiYoYT1kLHM9Zix1PWwpfXJldHVybntzdWNjZXNzZnVsOiEhKG0uZGVsaW1pdGVyPXMpLGJlc3REZWxpbWl0ZXI6c319KGUsbS5uZXdsaW5lLG0uc2tpcEVtcHR5TGluZXMsbS5jb21tZW50cyxtLmRlbGltaXRlcnNUb0d1ZXNzKTtuLnN1Y2Nlc3NmdWw/bS5kZWxpbWl0ZXI9bi5iZXN0RGVsaW1pdGVyOih1PSEwLG0uZGVsaW1pdGVyPWIuRGVmYXVsdERlbGltaXRlciksYy5tZXRhLmRlbGltaXRlcj1tLmRlbGltaXRlcn12YXIgcz13KG0pO3JldHVybiBtLnByZXZpZXcmJm0uaGVhZGVyJiZzLnByZXZpZXcrKyxhPWUsbz1uZXcgRShzKSxjPW8ucGFyc2UoYSx0LHIpLGcoKSxkP3ttZXRhOntwYXVzZWQ6ITB9fTpjfHx7bWV0YTp7cGF1c2VkOiExfX19LHRoaXMucGF1c2VkPWZ1bmN0aW9uKCl7cmV0dXJuIGR9LHRoaXMucGF1c2U9ZnVuY3Rpb24oKXtkPSEwLG8uYWJvcnQoKSxhPUoobS5jaHVuayk/XCJcIjphLnN1YnN0cmluZyhvLmdldENoYXJJbmRleCgpKX0sdGhpcy5yZXN1bWU9ZnVuY3Rpb24oKXt0LnN0cmVhbWVyLl9oYWx0ZWQ/KGQ9ITEsdC5zdHJlYW1lci5wYXJzZUNodW5rKGEsITApKTpzZXRUaW1lb3V0KHQucmVzdW1lLDMpfSx0aGlzLmFib3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sdGhpcy5hYm9ydD1mdW5jdGlvbigpe2U9ITAsby5hYm9ydCgpLGMubWV0YS5hYm9ydGVkPSEwLEoobS5jb21wbGV0ZSkmJm0uY29tcGxldGUoYyksYT1cIlwifX1mdW5jdGlvbiBRKGUpe3JldHVybiBlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLFwiXFxcXCQmXCIpfWZ1bmN0aW9uIEUoail7dmFyIHosTT0oaj1qfHx7fSkuZGVsaW1pdGVyLFA9ai5uZXdsaW5lLFU9ai5jb21tZW50cyxxPWouc3RlcCxOPWoucHJldmlldyxCPWouZmFzdE1vZGUsSz16PXZvaWQgMD09PWoucXVvdGVDaGFyfHxudWxsPT09ai5xdW90ZUNoYXI/J1wiJzpqLnF1b3RlQ2hhcjtpZih2b2lkIDAhPT1qLmVzY2FwZUNoYXImJihLPWouZXNjYXBlQ2hhciksKFwic3RyaW5nXCIhPXR5cGVvZiBNfHwtMTxiLkJBRF9ERUxJTUlURVJTLmluZGV4T2YoTSkpJiYoTT1cIixcIiksVT09PU0pdGhyb3cgbmV3IEVycm9yKFwiQ29tbWVudCBjaGFyYWN0ZXIgc2FtZSBhcyBkZWxpbWl0ZXJcIik7ITA9PT1VP1U9XCIjXCI6KFwic3RyaW5nXCIhPXR5cGVvZiBVfHwtMTxiLkJBRF9ERUxJTUlURVJTLmluZGV4T2YoVSkpJiYoVT0hMSksXCJcXG5cIiE9PVAmJlwiXFxyXCIhPT1QJiZcIlxcclxcblwiIT09UCYmKFA9XCJcXG5cIik7dmFyIFc9MCxIPSExO3RoaXMucGFyc2U9ZnVuY3Rpb24oaSx0LHIpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiBpKXRocm93IG5ldyBFcnJvcihcIklucHV0IG11c3QgYmUgYSBzdHJpbmdcIik7dmFyIG49aS5sZW5ndGgsZT1NLmxlbmd0aCxzPVAubGVuZ3RoLGE9VS5sZW5ndGgsbz1KKHEpLHU9W10saD1bXSxmPVtdLGQ9Vz0wO2lmKCFpKXJldHVybiBMKCk7aWYoai5oZWFkZXImJiF0KXt2YXIgbD1pLnNwbGl0KFApWzBdLnNwbGl0KE0pLGM9W10scD17fSxnPSExO2Zvcih2YXIgXyBpbiBsKXt2YXIgbT1sW19dO0ooai50cmFuc2Zvcm1IZWFkZXIpJiYobT1qLnRyYW5zZm9ybUhlYWRlcihtLF8pKTt2YXIgeT1tLHY9cFttXXx8MDtmb3IoMDx2JiYoZz0hMCx5PW0rXCJfXCIrdikscFttXT12KzE7Yy5pbmNsdWRlcyh5KTspeT15K1wiX1wiK3Y7Yy5wdXNoKHkpfWlmKGcpe3ZhciBrPWkuc3BsaXQoUCk7a1swXT1jLmpvaW4oTSksaT1rLmpvaW4oUCl9fWlmKEJ8fCExIT09QiYmLTE9PT1pLmluZGV4T2Yoeikpe2Zvcih2YXIgYj1pLnNwbGl0KFApLEU9MDtFPGIubGVuZ3RoO0UrKyl7aWYoZj1iW0VdLFcrPWYubGVuZ3RoLEUhPT1iLmxlbmd0aC0xKVcrPVAubGVuZ3RoO2Vsc2UgaWYocilyZXR1cm4gTCgpO2lmKCFVfHxmLnN1YnN0cmluZygwLGEpIT09VSl7aWYobyl7aWYodT1bXSxJKGYuc3BsaXQoTSkpLEYoKSxIKXJldHVybiBMKCl9ZWxzZSBJKGYuc3BsaXQoTSkpO2lmKE4mJk48PUUpcmV0dXJuIHU9dS5zbGljZSgwLE4pLEwoITApfX1yZXR1cm4gTCgpfWZvcih2YXIgdz1pLmluZGV4T2YoTSxXKSxSPWkuaW5kZXhPZihQLFcpLEM9bmV3IFJlZ0V4cChRKEspK1EoeiksXCJnXCIpLFM9aS5pbmRleE9mKHosVyk7OylpZihpW1ddIT09eilpZihVJiYwPT09Zi5sZW5ndGgmJmkuc3Vic3RyaW5nKFcsVythKT09PVUpe2lmKC0xPT09UilyZXR1cm4gTCgpO1c9UitzLFI9aS5pbmRleE9mKFAsVyksdz1pLmluZGV4T2YoTSxXKX1lbHNlIGlmKC0xIT09dyYmKHc8Unx8LTE9PT1SKSlmLnB1c2goaS5zdWJzdHJpbmcoVyx3KSksVz13K2Usdz1pLmluZGV4T2YoTSxXKTtlbHNle2lmKC0xPT09UilicmVhaztpZihmLnB1c2goaS5zdWJzdHJpbmcoVyxSKSksRChSK3MpLG8mJihGKCksSCkpcmV0dXJuIEwoKTtpZihOJiZ1Lmxlbmd0aD49TilyZXR1cm4gTCghMCl9ZWxzZSBmb3IoUz1XLFcrKzs7KXtpZigtMT09PShTPWkuaW5kZXhPZih6LFMrMSkpKXJldHVybiByfHxoLnB1c2goe3R5cGU6XCJRdW90ZXNcIixjb2RlOlwiTWlzc2luZ1F1b3Rlc1wiLG1lc3NhZ2U6XCJRdW90ZWQgZmllbGQgdW50ZXJtaW5hdGVkXCIscm93OnUubGVuZ3RoLGluZGV4Old9KSxUKCk7aWYoUz09PW4tMSlyZXR1cm4gVChpLnN1YnN0cmluZyhXLFMpLnJlcGxhY2UoQyx6KSk7aWYoeiE9PUt8fGlbUysxXSE9PUspe2lmKHo9PT1LfHwwPT09U3x8aVtTLTFdIT09Syl7LTEhPT13JiZ3PFMrMSYmKHc9aS5pbmRleE9mKE0sUysxKSksLTEhPT1SJiZSPFMrMSYmKFI9aS5pbmRleE9mKFAsUysxKSk7dmFyIE89QSgtMT09PVI/dzpNYXRoLm1pbih3LFIpKTtpZihpLnN1YnN0cihTKzErTyxlKT09PU0pe2YucHVzaChpLnN1YnN0cmluZyhXLFMpLnJlcGxhY2UoQyx6KSksaVtXPVMrMStPK2VdIT09eiYmKFM9aS5pbmRleE9mKHosVykpLHc9aS5pbmRleE9mKE0sVyksUj1pLmluZGV4T2YoUCxXKTticmVha312YXIgeD1BKFIpO2lmKGkuc3Vic3RyaW5nKFMrMSt4LFMrMSt4K3MpPT09UCl7aWYoZi5wdXNoKGkuc3Vic3RyaW5nKFcsUykucmVwbGFjZShDLHopKSxEKFMrMSt4K3MpLHc9aS5pbmRleE9mKE0sVyksUz1pLmluZGV4T2YoeixXKSxvJiYoRigpLEgpKXJldHVybiBMKCk7aWYoTiYmdS5sZW5ndGg+PU4pcmV0dXJuIEwoITApO2JyZWFrfWgucHVzaCh7dHlwZTpcIlF1b3Rlc1wiLGNvZGU6XCJJbnZhbGlkUXVvdGVzXCIsbWVzc2FnZTpcIlRyYWlsaW5nIHF1b3RlIG9uIHF1b3RlZCBmaWVsZCBpcyBtYWxmb3JtZWRcIixyb3c6dS5sZW5ndGgsaW5kZXg6V30pLFMrK319ZWxzZSBTKyt9cmV0dXJuIFQoKTtmdW5jdGlvbiBJKGUpe3UucHVzaChlKSxkPVd9ZnVuY3Rpb24gQShlKXt2YXIgdD0wO2lmKC0xIT09ZSl7dmFyIHI9aS5zdWJzdHJpbmcoUysxLGUpO3ImJlwiXCI9PT1yLnRyaW0oKSYmKHQ9ci5sZW5ndGgpfXJldHVybiB0fWZ1bmN0aW9uIFQoZSl7cmV0dXJuIHJ8fCh2b2lkIDA9PT1lJiYoZT1pLnN1YnN0cmluZyhXKSksZi5wdXNoKGUpLFc9bixJKGYpLG8mJkYoKSksTCgpfWZ1bmN0aW9uIEQoZSl7Vz1lLEkoZiksZj1bXSxSPWkuaW5kZXhPZihQLFcpfWZ1bmN0aW9uIEwoZSl7cmV0dXJue2RhdGE6dSxlcnJvcnM6aCxtZXRhOntkZWxpbWl0ZXI6TSxsaW5lYnJlYWs6UCxhYm9ydGVkOkgsdHJ1bmNhdGVkOiEhZSxjdXJzb3I6ZCsodHx8MCl9fX1mdW5jdGlvbiBGKCl7cShMKCkpLHU9W10saD1bXX19LHRoaXMuYWJvcnQ9ZnVuY3Rpb24oKXtIPSEwfSx0aGlzLmdldENoYXJJbmRleD1mdW5jdGlvbigpe3JldHVybiBXfX1mdW5jdGlvbiBfKGUpe3ZhciB0PWUuZGF0YSxyPWFbdC53b3JrZXJJZF0saT0hMTtpZih0LmVycm9yKXIudXNlckVycm9yKHQuZXJyb3IsdC5maWxlKTtlbHNlIGlmKHQucmVzdWx0cyYmdC5yZXN1bHRzLmRhdGEpe3ZhciBuPXthYm9ydDpmdW5jdGlvbigpe2k9ITAsbSh0LndvcmtlcklkLHtkYXRhOltdLGVycm9yczpbXSxtZXRhOnthYm9ydGVkOiEwfX0pfSxwYXVzZTp5LHJlc3VtZTp5fTtpZihKKHIudXNlclN0ZXApKXtmb3IodmFyIHM9MDtzPHQucmVzdWx0cy5kYXRhLmxlbmd0aCYmKHIudXNlclN0ZXAoe2RhdGE6dC5yZXN1bHRzLmRhdGFbc10sZXJyb3JzOnQucmVzdWx0cy5lcnJvcnMsbWV0YTp0LnJlc3VsdHMubWV0YX0sbiksIWkpO3MrKyk7ZGVsZXRlIHQucmVzdWx0c31lbHNlIEooci51c2VyQ2h1bmspJiYoci51c2VyQ2h1bmsodC5yZXN1bHRzLG4sdC5maWxlKSxkZWxldGUgdC5yZXN1bHRzKX10LmZpbmlzaGVkJiYhaSYmbSh0LndvcmtlcklkLHQucmVzdWx0cyl9ZnVuY3Rpb24gbShlLHQpe3ZhciByPWFbZV07SihyLnVzZXJDb21wbGV0ZSkmJnIudXNlckNvbXBsZXRlKHQpLHIudGVybWluYXRlKCksZGVsZXRlIGFbZV19ZnVuY3Rpb24geSgpe3Rocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZC5cIil9ZnVuY3Rpb24gdyhlKXtpZihcIm9iamVjdFwiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIHQ9QXJyYXkuaXNBcnJheShlKT9bXTp7fTtmb3IodmFyIHIgaW4gZSl0W3JdPXcoZVtyXSk7cmV0dXJuIHR9ZnVuY3Rpb24gdihlLHQpe3JldHVybiBmdW5jdGlvbigpe2UuYXBwbHkodCxhcmd1bWVudHMpfX1mdW5jdGlvbiBKKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGV9cmV0dXJuIG8mJihmLm9ubWVzc2FnZT1mdW5jdGlvbihlKXt2YXIgdD1lLmRhdGE7dm9pZCAwPT09Yi5XT1JLRVJfSUQmJnQmJihiLldPUktFUl9JRD10LndvcmtlcklkKTtpZihcInN0cmluZ1wiPT10eXBlb2YgdC5pbnB1dClmLnBvc3RNZXNzYWdlKHt3b3JrZXJJZDpiLldPUktFUl9JRCxyZXN1bHRzOmIucGFyc2UodC5pbnB1dCx0LmNvbmZpZyksZmluaXNoZWQ6ITB9KTtlbHNlIGlmKGYuRmlsZSYmdC5pbnB1dCBpbnN0YW5jZW9mIEZpbGV8fHQuaW5wdXQgaW5zdGFuY2VvZiBPYmplY3Qpe3ZhciByPWIucGFyc2UodC5pbnB1dCx0LmNvbmZpZyk7ciYmZi5wb3N0TWVzc2FnZSh7d29ya2VySWQ6Yi5XT1JLRVJfSUQscmVzdWx0czpyLGZpbmlzaGVkOiEwfSl9fSksKGwucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1sLChjLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGgucHJvdG90eXBlKSkuY29uc3RydWN0b3I9YywocC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShwLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPXAsKGcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1nLGJ9KTsiLCJ2YXIgaXMgPSBmdW5jdGlvbiAob2JqLCB0eXBlKSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS50b0xvd2VyQ2FzZSgpID09PSAoXCJbb2JqZWN0IFwiICsgdHlwZSArIFwiXVwiKTsgfTtcblxudmFyIGFkZENsYXNzID0gZnVuY3Rpb24gKGVsLCBjbHMpIHtcbiAgICB2YXIgYXJyID0gZWwuY2xhc3NOYW1lXG4gICAgLnNwbGl0KC9cXHMrLylcbiAgICAuZmlsdGVyKGZ1bmN0aW9uIChjKSB7IHJldHVybiAhIWMgJiYgYyA9PSBjbHM7IH0pO1xuXG4gICAgaWYgKCFhcnIubGVuZ3RoKSB7XG4gICAgICAgIGVsLmNsYXNzTmFtZSArPSBcIiBcIiArIGNscztcbiAgICB9XG59O1xuXG52YXIgcmVtb3ZlQ2xhc3MgPSBmdW5jdGlvbiAoZWwsIGNscykge1xuICAgIGVsLmNsYXNzTmFtZSA9IGVsLmNsYXNzTmFtZVxuICAgIC5zcGxpdCgvXFxzKy8pXG4gICAgLmZpbHRlcihmdW5jdGlvbiAoYykgeyByZXR1cm4gISFjICYmIGMgIT0gY2xzOyB9KVxuICAgIC5qb2luKCcgJyk7XG59O1xuXG52YXIgUk1vZGFsID0gZnVuY3Rpb24gUk1vZGFsKGVsLCBvcHRzKSB7XG4gICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5vcHRzID0ge1xuICAgICAgICBib2R5Q2xhc3M6ICdtb2RhbC1vcGVuJ1xuICAgICAgICAsIGRpYWxvZ0NsYXNzOiAnbW9kYWwtZGlhbG9nJ1xuICAgICAgICAsIGRpYWxvZ09wZW5DbGFzczogJ2JvdW5jZUluRG93bidcbiAgICAgICAgLCBkaWFsb2dDbG9zZUNsYXNzOiAnYm91bmNlT3V0VXAnXG5cbiAgICAgICAgLCBmb2N1czogdHJ1ZVxuICAgICAgICAsIGZvY3VzRWxlbWVudHM6IFtcbiAgICAgICAgICAgICdhW2hyZWZdJywgJ2FyZWFbaHJlZl0nLCAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1oaWRkZW5dKSdcbiAgICAgICAgICAgICwgJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknLCAnc2VsZWN0Om5vdChbZGlzYWJsZWRdKSdcbiAgICAgICAgICAgICwgJ3RleHRhcmVhOm5vdChbZGlzYWJsZWRdKScsICdpZnJhbWUnLCAnb2JqZWN0JywgJ2VtYmVkJ1xuICAgICAgICAgICAgLCAnKlt0YWJpbmRleF0nLCAnKltjb250ZW50ZWRpdGFibGVdJ1xuICAgICAgICBdXG5cbiAgICAgICAgLCBlc2NhcGVDbG9zZTogdHJ1ZVxuICAgICAgICAsIGNvbnRlbnQ6IG51bGxcbiAgICAgICAgLCBjbG9zZVRpbWVvdXQ6IDUwMFxuICAgIH07XG5cbiAgICBPYmplY3Qua2V5cyhvcHRzIHx8IHt9KVxuICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKG9wdHNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzJDEub3B0c1trZXldID0gb3B0c1trZXldO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm92ZXJsYXkgPSBlbDtcbiAgICB0aGlzLmRpYWxvZyA9IGVsLnF1ZXJ5U2VsZWN0b3IoKFwiLlwiICsgKHRoaXMub3B0cy5kaWFsb2dDbGFzcykpKTtcblxuICAgIGlmICh0aGlzLm9wdHMuY29udGVudCkge1xuICAgICAgICB0aGlzLmNvbnRlbnQodGhpcy5vcHRzLmNvbnRlbnQpO1xuICAgIH1cbn07XG5cblJNb2RhbC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uIG9wZW4gKGNvbnRlbnQpIHtcbiAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICB0aGlzLmNvbnRlbnQoY29udGVudCk7XG5cbiAgICBpZiAoIWlzKHRoaXMub3B0cy5iZWZvcmVPcGVuLCAnZnVuY3Rpb24nKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZG9PcGVuKCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRzLmJlZm9yZU9wZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzJDEuX2RvT3BlbigpO1xuICAgIH0pO1xufTtcblxuUk1vZGFsLnByb3RvdHlwZS5fZG9PcGVuID0gZnVuY3Rpb24gX2RvT3BlbiAoKSB7XG4gICAgYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5vcHRzLmJvZHlDbGFzcyk7XG5cbiAgICByZW1vdmVDbGFzcyh0aGlzLmRpYWxvZywgdGhpcy5vcHRzLmRpYWxvZ0Nsb3NlQ2xhc3MpO1xuICAgIGFkZENsYXNzKHRoaXMuZGlhbG9nLCB0aGlzLm9wdHMuZGlhbG9nT3BlbkNsYXNzKTtcblxuICAgIHRoaXMub3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgIGlmICh0aGlzLm9wdHMuZm9jdXMpIHtcbiAgICAgICAgdGhpcy5mb2N1c091dEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgaWYgKGlzKHRoaXMub3B0cy5hZnRlck9wZW4sICdmdW5jdGlvbicpKSB7XG4gICAgICAgIHRoaXMub3B0cy5hZnRlck9wZW4oKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuZWQgPSB0cnVlO1xufTtcblxuUk1vZGFsLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uIGNsb3NlICgpIHtcbiAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICBpZiAoIWlzKHRoaXMub3B0cy5iZWZvcmVDbG9zZSwgJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RvQ2xvc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wdHMuYmVmb3JlQ2xvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzJDEuX2RvQ2xvc2UoKTtcbiAgICB9KTtcbn07XG5cblJNb2RhbC5wcm90b3R5cGUuX2RvQ2xvc2UgPSBmdW5jdGlvbiBfZG9DbG9zZSAoKSB7XG4gICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgcmVtb3ZlQ2xhc3ModGhpcy5kaWFsb2csIHRoaXMub3B0cy5kaWFsb2dPcGVuQ2xhc3MpO1xuICAgIGFkZENsYXNzKHRoaXMuZGlhbG9nLCB0aGlzLm9wdHMuZGlhbG9nQ2xvc2VDbGFzcyk7XG5cbiAgICByZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCB0aGlzLm9wdHMuYm9keUNsYXNzKTtcblxuICAgIGlmICh0aGlzLm9wdHMuZm9jdXMpIHtcbiAgICAgICAgdGhpcy5mb2N1cyh0aGlzLmZvY3VzT3V0RWxlbWVudCk7XG4gICAgfVxuXG4gICAgaWYgKGlzKHRoaXMub3B0cy5hZnRlckNsb3NlLCAnZnVuY3Rpb24nKSkge1xuICAgICAgICB0aGlzLm9wdHMuYWZ0ZXJDbG9zZSgpO1xuICAgIH1cblxuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMkMS5vdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfSwgdGhpcy5vcHRzLmNsb3NlVGltZW91dCk7XG59O1xuXG5STW9kYWwucHJvdG90eXBlLmNvbnRlbnQgPSBmdW5jdGlvbiBjb250ZW50IChodG1sKSB7XG4gICAgaWYgKGh0bWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2cuaW5uZXJIVE1MO1xuICAgIH1cblxuICAgIHRoaXMuZGlhbG9nLmlubmVySFRNTCA9IGh0bWw7XG59O1xuXG5STW9kYWwucHJvdG90eXBlLmVsZW1lbnRzID0gZnVuY3Rpb24gZWxlbWVudHMgKHNlbGVjdG9yLCBmYWxsYmFjaykge1xuICAgIGZhbGxiYWNrID0gZmFsbGJhY2sgfHwgd2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ01TSUUgOS4wJykgPiAtMTtcbiAgICBzZWxlY3RvciA9IGlzKHNlbGVjdG9yLCAnYXJyYXknKSA/IHNlbGVjdG9yLmpvaW4oJywnKSA6IHNlbGVjdG9yO1xuXG4gICAgcmV0dXJuIFtdLmZpbHRlci5jYWxsKFxuICAgICAgICB0aGlzLmRpYWxvZy5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKVxuICAgICAgICAsIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnICYmIHN0eWxlLnZpc2liaWxpdHkgIT09ICdoaWRkZW4nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5vZmZzZXRQYXJlbnQgIT09IG51bGw7XG4gICAgICAgIH1cbiAgICApO1xufTtcblxuUk1vZGFsLnByb3RvdHlwZS5mb2N1cyA9IGZ1bmN0aW9uIGZvY3VzIChlbCkge1xuICAgIGVsID0gZWwgfHwgdGhpcy5lbGVtZW50cyh0aGlzLm9wdHMuZm9jdXNFbGVtZW50cylbMF0gfHwgdGhpcy5kaWFsb2cuZmlyc3RDaGlsZDtcblxuICAgIGlmIChlbCAmJiBpcyhlbC5mb2N1cywgJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgZWwuZm9jdXMoKTtcbiAgICB9XG59O1xuXG5STW9kYWwucHJvdG90eXBlLmtleWRvd24gPSBmdW5jdGlvbiBrZXlkb3duIChldikge1xuICAgIGlmICh0aGlzLm9wdHMuZXNjYXBlQ2xvc2UgJiYgZXYud2hpY2ggPT0gMjcpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0b3BFdmVudCgpIHtcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3BlbmVkICYmIGV2LndoaWNoID09IDkgJiYgdGhpcy5kaWFsb2cuY29udGFpbnMoZXYudGFyZ2V0KSkge1xuICAgICAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzKHRoaXMub3B0cy5mb2N1c0VsZW1lbnRzKVxuICAgICAgICAgICAgLCBmaXJzdCA9IGVsZW1lbnRzWzBdXG4gICAgICAgICAgICAsIGxhc3QgPSBlbGVtZW50c1tlbGVtZW50cy5sZW5ndGggLSAxXTtcblxuICAgICAgICBpZiAoZmlyc3QgPT0gbGFzdCkge1xuICAgICAgICAgICAgc3RvcEV2ZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZXYudGFyZ2V0ID09IGZpcnN0ICYmIGV2LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICBzdG9wRXZlbnQoKTtcbiAgICAgICAgICAgIGxhc3QuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChldi50YXJnZXQgPT0gbGFzdCAmJiAhZXYuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIHN0b3BFdmVudCgpO1xuICAgICAgICAgICAgZmlyc3QuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cblJNb2RhbC5wcm90b3R5cGUudmVyc2lvbiA9ICcxLjAuMzEnO1xuUk1vZGFsLnZlcnNpb24gPSAnMS4wLjMxJztcblxuZXhwb3J0IGRlZmF1bHQgUk1vZGFsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguZXMuanMubWFwXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCB7XG4gIHJlZ2lzdGVyQWRvcm5lcixcbiAgU3VydmV5Rm9yRGVzaWduZXJcbn0gZnJvbSBcIi4uL3N1cnZleWpzT2JqZWN0c1wiO1xuaW1wb3J0IFwiLi9mbG93cGFuZWwtYWN0aW9ucy5zY3NzXCI7XG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcImh0bWwtbG9hZGVyP2ludGVycG9sYXRlIXZhbC1sb2FkZXIhLi9mbG93cGFuZWwtYWN0aW9ucy5odG1sXCIpO1xuaW1wb3J0IHsgUXVlc3Rpb25BY3Rpb25zQWRvcm5lciB9IGZyb20gXCIuL3F1ZXN0aW9uLWFjdGlvbnNcIjtcbi8vaW1wb3J0IHsgU3VydmV5IH0gZnJvbSAnc3VydmV5LWtub2Nrb3V0JztcblxuZXhwb3J0IGNsYXNzIEZsb3dQYW5lbEFjdGlvbnNBZG9ybmVyIGV4dGVuZHMgUXVlc3Rpb25BY3Rpb25zQWRvcm5lciB7XG4gIGNvbnN0cnVjdG9yKHF1ZXN0aW9uLCBlZGl0b3IsIHByaXZhdGUgYWRvcm5lckVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgc3VwZXIocXVlc3Rpb24sIGVkaXRvcik7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBzdXJ2ZXlGb3JEZXNnbmVyOiBTdXJ2ZXlGb3JEZXNpZ25lciA9IGVkaXRvci5zdXJ2ZXk7XG4gICAgdmFyIGZQYW5lbCA9IHNlbGYuYWRvcm5lckVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFxuICAgICAgXCJmLXBhbmVsXCJcbiAgICApWzBdO1xuICAgIHZhciBjcmVhdGVXcmFwcGluZ0Z1bmN0aW9uID0gdGFnID0+ICgpID0+IHtcbiAgICAgIHZhciBzZWxlY3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghIXNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgICAgdmFyIHNlbGVjdGVkVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuICAgICAgICBpZiAoISFzZWxlY3RlZFRleHQpIHtcbiAgICAgICAgICBxdWVzdGlvbi5jb250ZW50ID0gcXVlc3Rpb24uY29udGVudC5yZXBsYWNlKFxuICAgICAgICAgICAgc2VsZWN0ZWRUZXh0LFxuICAgICAgICAgICAgXCI8XCIgKyB0YWcgKyBcIj5cIiArIHNlbGVjdGVkVGV4dCArIFwiPC9cIiArIHRhZyArIFwiPlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgICAvLyB2YXIgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgICAvLyByYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgIC8vIHJhbmdlLmluc2VydE5vZGUoXG4gICAgICAgICAgLy8gICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcbiAgICAgICAgICAvLyAgICAgXCI8XCIgKyB0YWcgKyBcIj5cIiArIHNlbGVjdGVkVGV4dCArIFwiPC9cIiArIHRhZyArIFwiPlwiXG4gICAgICAgICAgLy8gICApXG4gICAgICAgICAgLy8gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5hY3Rpb25zLnNwbGljZSgwLCAwLCB7XG4gICAgICBuYW1lOiBcImJvbGRcIixcbiAgICAgIHRleHQ6IHRoaXMubG9jYWxpemUoXCJlZC5ib2xkXCIpIHx8IFwiQlwiLFxuICAgICAgb25DbGljazogY3JlYXRlV3JhcHBpbmdGdW5jdGlvbihcImJcIilcbiAgICB9KTtcbiAgICB0aGlzLmFjdGlvbnMuc3BsaWNlKDEsIDAsIHtcbiAgICAgIG5hbWU6IFwiaXRhbGljXCIsXG4gICAgICB0ZXh0OiB0aGlzLmxvY2FsaXplKFwiZWQuaXRhbGljXCIpIHx8IFwiSVwiLFxuICAgICAgb25DbGljazogY3JlYXRlV3JhcHBpbmdGdW5jdGlvbihcImlcIilcbiAgICB9KTtcbiAgICB0aGlzLmFjdGlvbnMuc3BsaWNlKDIsIDAsIHtcbiAgICAgIG5hbWU6IFwidW5kZXJsaW5lXCIsXG4gICAgICB0ZXh0OiB0aGlzLmxvY2FsaXplKFwiZWQudW5kZXJsaW5lXCIpIHx8IFwiVVwiLFxuICAgICAgb25DbGljazogY3JlYXRlV3JhcHBpbmdGdW5jdGlvbihcInVcIilcbiAgICB9KTtcbiAgICB0aGlzLmFjdGlvbnMuc3BsaWNlKDMsIDAsIDxhbnk+e1xuICAgICAgbmFtZTogXCJmcEFkZFF1ZXN0aW9uXCIsXG4gICAgICB0ZXh0OiB0aGlzLmxvY2FsaXplKFwiZWQuZnBBZGRRdWVzdGlvblwiKSxcbiAgICAgIHRpdGxlOiB0aGlzLmxvY2FsaXplKFwiZWQuZnBBZGRRdWVzdGlvblwiKSxcbiAgICAgIGhhc1RpdGxlOiB0cnVlLFxuICAgICAgdGVtcGxhdGU6IFwiZnAtYWRkLXF1ZXN0aW9uXCIsXG4gICAgICBhdmFpbGFibGVUeXBlczogW1widGV4dFwiLCBcImJvb2xlYW5cIiwgXCJyYWRpb2dyb3VwXCIsIFwiY2hlY2tib3hcIl0sXG4gICAgICBvbkFkZFF1ZXN0aW9uOiA8YW55PigoZGF0YSwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIHF1ZXN0aW9uVHlwZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgICAgaWYgKCEhcXVlc3Rpb25UeXBlKSB7XG4gICAgICAgICAgdmFyIG5ld0VsZWxlbnROYW1lID0gZWRpdG9yLmdldE5ld05hbWUocXVlc3Rpb25UeXBlKTtcbiAgICAgICAgICBxdWVzdGlvbi5hZGROZXdRdWVzdGlvbihxdWVzdGlvblR5cGUsIG5ld0VsZWxlbnROYW1lKTtcbiAgICAgICAgICAvLyBxdWVzdGlvbi5jb250ZW50ICs9IFwie1wiICsgbmV3RWxlbGVudE5hbWUgKyBcIn1cIjtcbiAgICAgICAgICAvLyB2YXIgc2VsZWN0aW9uID0gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgLy8gaWYgKCEhc2VsZWN0aW9uKSB7XG4gICAgICAgICAgLy8gICB2YXIgcmFuZ2UgPSBuZXcgUmFuZ2UoKTtcbiAgICAgICAgICAvLyAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgICAgICAgLy8gICByYW5nZS5pbnNlcnROb2RlKFxuICAgICAgICAgIC8vICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIntcIiArIG5ld0VsZWxlbnROYW1lICsgXCJ9XCIpXG4gICAgICAgICAgLy8gICApO1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pO1xuICAgIHRoaXMuYWN0aW9ucy5zcGxpY2UoNCwgMCwgPGFueT57IHRlbXBsYXRlOiBcImFjdGlvbi1zZXBhcmF0b3JcIiB9KTtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwiZmxvd3BhbmVsLWFjdGlvbnNcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+XG4gICAgICBuZXcgRmxvd1BhbmVsQWN0aW9uc0Fkb3JuZXIocGFyYW1zLnF1ZXN0aW9uLCBwYXJhbXMuZWRpdG9yLCA8SFRNTEVsZW1lbnQ+KFxuICAgICAgICBjb21wb25lbnRJbmZvLmVsZW1lbnRcbiAgICAgICkpXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWxcbn0pO1xuXG5leHBvcnQgdmFyIGZsb3dwYW5lbEFjdGlvbnNBZG9ybmVyID0ge1xuICBnZXRNYXJrZXJDbGFzczogbW9kZWwgPT4ge1xuICAgIHJldHVybiBtb2RlbC5nZXRUeXBlKCkgPT09IFwiZmxvd3BhbmVsXCIgPyBcInBhbmVsX2FjdGlvbnNcIiA6IFwiXCI7XG4gIH0sXG4gIGdldEVsZW1lbnROYW1lOiBtb2RlbCA9PiBcImNvbnRhaW5lclwiLFxuICBhZnRlclJlbmRlcjogKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCBtb2RlbCwgZWRpdG9yKSA9PiB7XG4gICAgdmFyIGRlY29yYXRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRlY29yYXRpb24uY2xhc3NOYW1lID0gXCJzdmRhLXF1ZXN0aW9uLWFjdGlvbnNcIjtcbiAgICBkZWNvcmF0aW9uLmlubmVySFRNTCA9XG4gICAgICBcIjxmbG93cGFuZWwtYWN0aW9ucyBwYXJhbXM9J3F1ZXN0aW9uOiBtb2RlbCwgZWRpdG9yOiBlZGl0b3InPjwvcXVlc3Rpb24tZmxvd3BhbmVsPlwiO1xuICAgIGVsZW1lbnRzWzBdLmFwcGVuZENoaWxkKGRlY29yYXRpb24pO1xuICAgIGtvLmFwcGx5QmluZGluZ3MoeyBtb2RlbDogbW9kZWwsIGVkaXRvcjogZWRpdG9yIH0sIGRlY29yYXRpb24pO1xuICAgIGVkaXRvci5vbkFkb3JuZXJSZW5kZXJlZENhbGxiYWNrKG1vZGVsLCBcImZsb3dwYW5lbC1hY3Rpb25zXCIsIGRlY29yYXRpb24pO1xuICB9XG59O1xuXG5yZWdpc3RlckFkb3JuZXIoXCJmbG93cGFuZWwtYWN0aW9uc1wiLCBmbG93cGFuZWxBY3Rpb25zQWRvcm5lcik7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQgeyByZWdpc3RlckFkb3JuZXIgfSBmcm9tIFwiLi4vc3VydmV5anNPYmplY3RzXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgU29ydGFibGUgZnJvbSBcIi4uLy4uL3ZlbmRvci9zb3J0YWJsZVwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcbmltcG9ydCB7IGNyZWF0ZUFkZEl0ZW1FbGVtZW50IH0gZnJvbSBcIi4vaXRlbS1lZGl0b3JcIjtcbmltcG9ydCB7IGdldE5leHRWYWx1ZSB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG5pbXBvcnQgXCIuL2ltYWdlLWl0ZW1zLnNjc3NcIjtcbmltcG9ydCB7IFF1ZXN0aW9uU2VsZWN0QmFzZSB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IGNyZWF0ZUltYWdlRmlsZUNob29zZXIgfSBmcm9tIFwiLi9pbWFnZVwiO1xudmFyIHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCJodG1sLWxvYWRlcj9pbnRlcnBvbGF0ZSF2YWwtbG9hZGVyIS4vaW1hZ2UtaXRlbXMuaHRtbFwiKTtcblxuY2xhc3MgSW1hZ2VJdGVtSW5wbGFjZUVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcXVlc3Rpb246IFF1ZXN0aW9uU2VsZWN0QmFzZSxcbiAgICBwcml2YXRlIGl0ZW0sXG4gICAgcHJpdmF0ZSByb290RWxlbWVudCxcbiAgICBwcml2YXRlIGVkaXRvcjogU3VydmV5Q3JlYXRvcixcbiAgICBwcml2YXRlIGl0ZW1zUm9vdFxuICApIHsgfVxuXG4gIGRlbGV0ZUl0ZW0obW9kZWw6IEltYWdlSXRlbUlucGxhY2VFZGl0b3IsIGV2ZW50KSB7XG4gICAgaWYgKG1vZGVsLnF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID4gMSkge1xuICAgICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgICBtb2RlbC5xdWVzdGlvbi5nZXRUeXBlKCksXG4gICAgICAgIFwiY2hvaWNlc1wiXG4gICAgICApO1xuICAgICAgdmFyIGFsbG93RGVsZXRlID0gdGhpcy5lZGl0b3Iub25Db2xsZWN0aW9uSXRlbURlbGV0aW5nQ2FsbGJhY2soXG4gICAgICAgIG1vZGVsLnF1ZXN0aW9uLFxuICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgbW9kZWwucXVlc3Rpb24uY2hvaWNlcyxcbiAgICAgICAgbW9kZWwuaXRlbVxuICAgICAgKTtcbiAgICAgIGlmIChhbGxvd0RlbGV0ZSkge1xuICAgICAgICB2YXIgaW5kZXggPSBtb2RlbC5xdWVzdGlvbi5jaG9pY2VzLmluZGV4T2YobW9kZWwuaXRlbSk7XG4gICAgICAgIG1vZGVsLnF1ZXN0aW9uLmNob2ljZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgdGhpcy5lZGl0b3Iub25RdWVzdGlvbkVkaXRvckNoYW5nZWQodGhpcy5xdWVzdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzTGFzdEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggPT09IDE7XG4gIH1cblxuICBjaG9vc2VJbWFnZShtb2RlbCwgZXZlbnQpIHtcbiAgICB2YXIgZmlsZUlucHV0ID0gdGhpcy5pdGVtc1Jvb3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcbiAgICAgIFwic3ZkYS1jaG9vc2UtZmlsZVwiXG4gICAgKVswXTtcbiAgICB0aGlzLmVkaXRvci5jaG9vc2VGaWxlcyhmaWxlSW5wdXQsIHRoaXMuaW1hZ2VDaG9zZW4pO1xuICB9XG5cbiAgaW1hZ2VDaG9zZW4gPSAoZmlsZXM6IEZpbGVbXSkgPT4ge1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkICYmIHRoaXMudmFsdWVDaGFuZ2VkKGZpbGVzKTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0TG9jU3RyaW5nKHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoc3RyKTtcbiAgfVxuXG4gIHZhbHVlQ2hhbmdlZDogKG5ld1ZhbDogYW55KSA9PiB2b2lkO1xufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwiaW1hZ2UtaXRlbS1lZGl0b3JcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBtb2RlbCA9IG5ldyBJbWFnZUl0ZW1JbnBsYWNlRWRpdG9yKFxuICAgICAgICBwYXJhbXMudGFyZ2V0W3BhcmFtcy5uYW1lXSxcbiAgICAgICAgcGFyYW1zLnF1ZXN0aW9uLFxuICAgICAgICBwYXJhbXMuaXRlbSxcbiAgICAgICAgY29tcG9uZW50SW5mby5lbGVtZW50LFxuICAgICAgICBwYXJhbXMuZWRpdG9yLFxuICAgICAgICBwYXJhbXMuaXRlbXNSb290XG4gICAgICApO1xuICAgICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgICBcImltYWdlaXRlbXZhbHVlXCIsIC8vcGFyYW1zLnRhcmdldC5nZXRUeXBlKCksXG4gICAgICAgIHBhcmFtcy5uYW1lXG4gICAgICApO1xuICAgICAgbW9kZWwudmFsdWVDaGFuZ2VkID0gZmlsZXMgPT4ge1xuICAgICAgICBpZiAoIWZpbGVzWzBdKSByZXR1cm47XG4gICAgICAgIHBhcmFtcy5lZGl0b3IudXBsb2FkRmlsZXMoZmlsZXMsIChfLCBsaW5rKSA9PiB7XG4gICAgICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5Lm5hbWUsXG4gICAgICAgICAgICBvYmo6IHBhcmFtcy5pdGVtLFxuICAgICAgICAgICAgdmFsdWU6IGxpbmssXG4gICAgICAgICAgICBuZXdWYWx1ZTogbnVsbCxcbiAgICAgICAgICAgIGRvVmFsaWRhdGlvbjogZmFsc2VcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBhcmFtcy5lZGl0b3Iub25WYWx1ZUNoYW5naW5nQ2FsbGJhY2sob3B0aW9ucyk7XG4gICAgICAgICAgbGluayA9IG9wdGlvbnMubmV3VmFsdWUgPT09IG51bGwgPyBvcHRpb25zLnZhbHVlIDogb3B0aW9ucy5uZXdWYWx1ZTtcbiAgICAgICAgICBwYXJhbXMudGFyZ2V0W3BhcmFtcy5uYW1lXSA9IGxpbms7XG4gICAgICAgICAgcGFyYW1zLmVkaXRvci5vblByb3BlcnR5VmFsdWVDaGFuZ2VkKHByb3BlcnR5LCBwYXJhbXMudGFyZ2V0LCBsaW5rKTtcbiAgICAgICAgICBwYXJhbXMuZWRpdG9yLm9uUXVlc3Rpb25FZGl0b3JDaGFuZ2VkKHBhcmFtcy5xdWVzdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWxcbn0pO1xuXG5leHBvcnQgdmFyIGltYWdlSXRlbXNBZG9ybmVyID0ge1xuICBnZXRNYXJrZXJDbGFzczogbW9kZWwgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgbW9kZWwuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICBtb2RlbC5nZXRUeXBlKCkgPT09IFwiaW1hZ2VwaWNrZXJcIlxuICAgICAgPyBcImltYWdlX2l0ZW1fZWRpdGFibGVcIlxuICAgICAgOiBcIlwiO1xuICB9LFxuICBnZXRFbGVtZW50TmFtZTogbW9kZWwgPT4gXCJpdGVtXCIsXG4gIGFmdGVyUmVuZGVyOiAoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIG1vZGVsOiBRdWVzdGlvblNlbGVjdEJhc2UsIGVkaXRvcikgPT4ge1xuICAgIHZhciBpdGVtc1Jvb3QgPSBlbGVtZW50c1swXS5wYXJlbnRFbGVtZW50O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGVsZW1lbnRzW2ldLm9uY2xpY2sgPSBlID0+IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHZhciBkZWNvcmF0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgICBkZWNvcmF0aW9uLmNsYXNzTmFtZSA9IFwic3ZkYS1hZG9ybmVyLXJvb3RcIjtcbiAgICAgIGRlY29yYXRpb24uaW5uZXJIVE1MID1cbiAgICAgICAgXCI8aW1hZ2UtaXRlbS1lZGl0b3IgcGFyYW1zPSduYW1lOiBcXFwiaW1hZ2VMaW5rXFxcIiwgdGFyZ2V0OiB0YXJnZXQsIGl0ZW06IGl0ZW0sIHF1ZXN0aW9uOiBxdWVzdGlvbiwgZWRpdG9yOiBlZGl0b3IsIGl0ZW1zUm9vdDogaXRlbXNSb290Jz48L2ltYWdlLWl0ZW0tZWRpdG9yPlwiO1xuICAgICAgZWxlbWVudHNbaV0uYXBwZW5kQ2hpbGQoZGVjb3JhdGlvbik7XG4gICAgICBrby5hcHBseUJpbmRpbmdzKFxuICAgICAgICB7XG4gICAgICAgICAgaXRlbTogbW9kZWwuY2hvaWNlc1tpXSxcbiAgICAgICAgICBxdWVzdGlvbjogbW9kZWwsXG4gICAgICAgICAgdGFyZ2V0OiBtb2RlbC5jaG9pY2VzW2ldLFxuICAgICAgICAgIGVkaXRvcjogZWRpdG9yLFxuICAgICAgICAgIGl0ZW1zUm9vdDogaXRlbXNSb290XG4gICAgICAgIH0sXG4gICAgICAgIGRlY29yYXRpb25cbiAgICAgICk7XG4gICAgICBlZGl0b3Iub25BZG9ybmVyUmVuZGVyZWRDYWxsYmFjayhcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIFwiaW1hZ2UtaXRlbXNcIixcbiAgICAgICAgZGVjb3JhdGlvbixcbiAgICAgICAgbW9kZWwuY2hvaWNlc1tpXVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgc29ydGFibGUgPSBTb3J0YWJsZS5jcmVhdGUoaXRlbXNSb290LCB7XG4gICAgICBoYW5kbGU6IFwiLnN2ZGEtZHJhZy1oYW5kbGVcIixcbiAgICAgIGRyYWdnYWJsZTogXCIuaW1hZ2VfaXRlbV9lZGl0YWJsZVwiLFxuICAgICAgYW5pbWF0aW9uOiAxNTAsXG4gICAgICBvbkVuZDogZXZ0ID0+IHtcbiAgICAgICAgdmFyIGNob2ljZXMgPSBtb2RlbC5jaG9pY2VzO1xuICAgICAgICB2YXIgY2hvaWNlID0gY2hvaWNlc1tldnQub2xkSW5kZXhdO1xuICAgICAgICBjaG9pY2VzLnNwbGljZShldnQub2xkSW5kZXgsIDEpO1xuICAgICAgICBjaG9pY2VzLnNwbGljZShldnQubmV3SW5kZXgsIDAsIGNob2ljZSk7XG4gICAgICAgIGVkaXRvci5vblF1ZXN0aW9uRWRpdG9yQ2hhbmdlZChtb2RlbCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YXIgaW5wdXQgPSBjcmVhdGVJbWFnZUZpbGVDaG9vc2VyKG1vZGVsW1wiY29udGVudE1vZGVcIl0pO1xuICAgIGl0ZW1zUm9vdC5hcHBlbmRDaGlsZChpbnB1dCk7XG4gIH1cbn07XG5cbnJlZ2lzdGVyQWRvcm5lcihcImltYWdlLWl0ZW1zXCIsIGltYWdlSXRlbXNBZG9ybmVyKTtcblxuZXhwb3J0IHZhciBhZGRJbWFnZUl0ZW1BZG9ybmVyID0ge1xuICBnZXRNYXJrZXJDbGFzczogbW9kZWwgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgbW9kZWwuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICBtb2RlbC5nZXRUeXBlKCkgPT09IFwiaW1hZ2VwaWNrZXJcIlxuICAgICAgPyBcInN2X2ltYWdlcGlja2VyX3Jvb3RcIlxuICAgICAgOiBcIlwiO1xuICB9LFxuICBnZXRFbGVtZW50TmFtZTogbW9kZWwgPT4gXCJyb290XCIsXG4gIGFmdGVyUmVuZGVyOiAoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIG1vZGVsOiBRdWVzdGlvblNlbGVjdEJhc2UsIGVkaXRvcikgPT4ge1xuICAgIHZhciBpdGVtc1Jvb3QgPSBlbGVtZW50c1swXTtcbiAgICB2YXIgYWRkSXRlbUVsZW1lbnQgPSBjcmVhdGVBZGRJdGVtRWxlbWVudCgoKSA9PiB7XG4gICAgICB2YXIgZmlsZUlucHV0ID0gPEhUTUxJbnB1dEVsZW1lbnQ+KFxuICAgICAgICBpdGVtc1Jvb3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInN2ZGEtY2hvb3NlLWZpbGVcIilbMF1cbiAgICAgICk7XG4gICAgICBlZGl0b3IuY2hvb3NlRmlsZXMoZmlsZUlucHV0LCAoZmlsZXM6IEZpbGVbXSkgPT4ge1xuICAgICAgICB2YXIgaXRlbVRleHQgPSBTdXJ2ZXkuc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcImNob2ljZXNfSXRlbVwiKTtcbiAgICAgICAgdmFyIG5leHRWYWx1ZSA9IGdldE5leHRWYWx1ZShcbiAgICAgICAgICBpdGVtVGV4dCxcbiAgICAgICAgICAobW9kZWwuY2hvaWNlcyB8fCBbXSkubWFwKGMgPT4gYy52YWx1ZSlcbiAgICAgICAgKTtcbiAgICAgICAgdmFyIGl0ZW1WYWx1ZSA9IG5ldyAoPGFueT5TdXJ2ZXkpW1wiSXRlbVZhbHVlXCJdKFxuICAgICAgICAgIG5leHRWYWx1ZSxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgXCJpbWFnZWl0ZW12YWx1ZVwiXG4gICAgICAgICk7XG4gICAgICAgIGl0ZW1WYWx1ZS5sb2NPd25lciA9IDxhbnk+e1xuICAgICAgICAgIGdldExvY2FsZTogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCEhbW9kZWxbXCJnZXRMb2NhbGVcIl0pIHJldHVybiBtb2RlbC5nZXRMb2NhbGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZ2V0TWFya2Rvd25IdG1sOiAodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldFByb2Nlc3NlZFRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgbW9kZWwuY2hvaWNlcyA9IG1vZGVsLmNob2ljZXMuY29uY2F0KFtpdGVtVmFsdWVdKTtcbiAgICAgICAgaXRlbVZhbHVlID0gbW9kZWwuY2hvaWNlc1ttb2RlbC5jaG9pY2VzLmxlbmd0aCAtIDFdO1xuICAgICAgICBlZGl0b3Iub25RdWVzdGlvbkVkaXRvckNoYW5nZWQobW9kZWwpO1xuICAgICAgICBlZGl0b3Iub25JdGVtVmFsdWVBZGRlZENhbGxiYWNrKFxuICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgIFwiY2hvaWNlc1wiLFxuICAgICAgICAgIGl0ZW1WYWx1ZSxcbiAgICAgICAgICBtb2RlbC5jaG9pY2VzXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgICAgIFwiaW1hZ2VpdGVtdmFsdWVcIixcbiAgICAgICAgICBcImltYWdlTGlua1wiXG4gICAgICAgICk7XG4gICAgICAgIGVkaXRvci51cGxvYWRGaWxlcyhmaWxlcywgKF8sIGxpbmspID0+IHtcbiAgICAgICAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHkubmFtZSxcbiAgICAgICAgICAgIG9iajogaXRlbVZhbHVlLFxuICAgICAgICAgICAgdmFsdWU6IGxpbmssXG4gICAgICAgICAgICBuZXdWYWx1ZTogbnVsbCxcbiAgICAgICAgICAgIGRvVmFsaWRhdGlvbjogZmFsc2VcbiAgICAgICAgICB9O1xuICAgICAgICAgIGVkaXRvci5vblZhbHVlQ2hhbmdpbmdDYWxsYmFjayhvcHRpb25zKTtcbiAgICAgICAgICBsaW5rID0gb3B0aW9ucy5uZXdWYWx1ZSA9PT0gbnVsbCA/IG9wdGlvbnMudmFsdWUgOiBvcHRpb25zLm5ld1ZhbHVlO1xuICAgICAgICAgIGl0ZW1WYWx1ZVtcImltYWdlTGlua1wiXSA9IGxpbms7XG4gICAgICAgICAgZWRpdG9yLm9uUHJvcGVydHlWYWx1ZUNoYW5nZWQocHJvcGVydHksIGl0ZW1WYWx1ZSwgbGluayk7XG4gICAgICAgICAgZWRpdG9yLm9uUXVlc3Rpb25FZGl0b3JDaGFuZ2VkKG1vZGVsKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBhZGRJdGVtRWxlbWVudC5zdHlsZS53aWR0aCA9IChtb2RlbFtcImltYWdlV2lkdGhcIl0gfHwgMjAwKSArIDEwICsgXCJweFwiO1xuICAgIGFkZEl0ZW1FbGVtZW50LnN0eWxlLmhlaWdodCA9IChtb2RlbFtcImltYWdlSGVpZ2h0XCJdIHx8IDE1MCkgKyAxMCArIFwicHhcIjtcbiAgICBhZGRJdGVtRWxlbWVudC5zdHlsZS5saW5lSGVpZ2h0ID0gYWRkSXRlbUVsZW1lbnQuc3R5bGUuaGVpZ2h0O1xuICAgIGl0ZW1zUm9vdC5hcHBlbmRDaGlsZChhZGRJdGVtRWxlbWVudCk7XG5cbiAgICB2YXIgaW5wdXQgPSBjcmVhdGVJbWFnZUZpbGVDaG9vc2VyKG1vZGVsW1wiY29udGVudE1vZGVcIl0pO1xuICAgIGl0ZW1zUm9vdC5hcHBlbmRDaGlsZChpbnB1dCk7XG4gIH1cbn07XG5cbnJlZ2lzdGVyQWRvcm5lcihcImFkZC1pbWFnZS1pdGVtXCIsIGFkZEltYWdlSXRlbUFkb3JuZXIpO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJBZG9ybmVyIH0gZnJvbSBcIi4uL3N1cnZleWpzT2JqZWN0c1wiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG5pbXBvcnQgXCIuL2ltYWdlLnNjc3NcIjtcbmltcG9ydCB7IFF1ZXN0aW9uSW1hZ2VNb2RlbCB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbnZhciB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiaHRtbC1sb2FkZXI/aW50ZXJwb2xhdGUhdmFsLWxvYWRlciEuL2ltYWdlLmh0bWxcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbWFnZUZpbGVDaG9vc2VyKGNvbnRlbnRNb2RlPzogc3RyaW5nKSB7XG4gIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuICBpbnB1dC50eXBlID0gXCJmaWxlXCI7XG4gIGlmKCEhY29udGVudE1vZGUpIHtcbiAgICBpbnB1dC5hY2NlcHQgPSBjb250ZW50TW9kZSA9PT0gXCJ2aWRlb1wiID8gXCJ2aWRlby8qXCIgOiBcImltYWdlLypcIjtcbiAgfVxuICBpbnB1dC5jbGFzc05hbWUgPSBcInN2ZGEtY2hvb3NlLWZpbGVcIjtcbiAgaW5wdXQuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG4gIGlucHV0LnN0eWxlLm9wYWNpdHkgPSBcIjBcIjtcbiAgaW5wdXQuc3R5bGUud2lkdGggPSBcIjFweFwiO1xuICBpbnB1dC5zdHlsZS5oZWlnaHQgPSBcIjFweFwiO1xuICBpbnB1dC5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XG4gIHJldHVybiBpbnB1dDtcbn1cblxuY2xhc3MgSW1hZ2VJbnBsYWNlRWRpdG9yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnB1dCwgcHVibGljIGFsbG93RGVsZXRlID0gZmFsc2UsIHByaXZhdGUgZWRpdG9yKSB7fVxuXG4gIGNob29zZUltYWdlKG1vZGVsLCBldmVudCkge1xuICAgIHRoaXMuZWRpdG9yLmNob29zZUZpbGVzKG1vZGVsLmlucHV0LCBtb2RlbC5pbWFnZUNob3Nlbik7XG4gIH1cblxuICBkZWxldGVJbWFnZShtb2RlbCwgZXZlbnQpIHtcbiAgICBtb2RlbC52YWx1ZUNoYW5nZWQgJiYgbW9kZWwudmFsdWVDaGFuZ2VkKHVuZGVmaW5lZCk7XG4gIH1cblxuICBpbWFnZUNob3NlbiA9IChmaWxlczogRmlsZVtdKSA9PiB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZWQgJiYgdGhpcy52YWx1ZUNoYW5nZWQoZmlsZXMpO1xuICB9O1xuXG4gIHB1YmxpYyBnZXRMb2NTdHJpbmcoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhzdHIpO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2VkOiAobmV3VmFsOiBhbnkpID0+IHZvaWQ7XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJpbWFnZS1lZGl0b3JcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBtb2RlbCA9IG5ldyBJbWFnZUlucGxhY2VFZGl0b3IoXG4gICAgICAgIHBhcmFtcy5pbnB1dCxcbiAgICAgICAgcGFyYW1zLmFsbG93RGVsZXRlLFxuICAgICAgICBwYXJhbXMuZWRpdG9yXG4gICAgICApO1xuICAgICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgICBwYXJhbXMudGFyZ2V0LmdldFR5cGUoKSxcbiAgICAgICAgcGFyYW1zLm5hbWVcbiAgICAgICk7XG4gICAgICB2YXIgc2V0VmFsdWUgPSAobGluaykgPT4ge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5Lm5hbWUsXG4gICAgICAgICAgb2JqOiBwYXJhbXMuaXRlbSxcbiAgICAgICAgICB2YWx1ZTogbGluayxcbiAgICAgICAgICBuZXdWYWx1ZTogbnVsbCxcbiAgICAgICAgICBkb1ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBwYXJhbXMuZWRpdG9yLm9uVmFsdWVDaGFuZ2luZ0NhbGxiYWNrKG9wdGlvbnMpO1xuICAgICAgICBsaW5rID0gb3B0aW9ucy5uZXdWYWx1ZSA9PT0gbnVsbCA/IG9wdGlvbnMudmFsdWUgOiBvcHRpb25zLm5ld1ZhbHVlO1xuICAgICAgICBwYXJhbXMudGFyZ2V0W3BhcmFtcy5uYW1lXSA9IGxpbms7XG4gICAgICAgIHBhcmFtcy5lZGl0b3Iub25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChwcm9wZXJ0eSwgcGFyYW1zLnRhcmdldCwgbGluayk7XG4gICAgICAgIHBhcmFtcy5lZGl0b3Iub25RdWVzdGlvbkVkaXRvckNoYW5nZWQocGFyYW1zLnF1ZXN0aW9uKTtcbiAgICAgIH07XG4gICAgICBtb2RlbC52YWx1ZUNoYW5nZWQgPSAoZmlsZXMpID0+IHtcbiAgICAgICAgaWYgKGZpbGVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZpbGVzWzBdKSByZXR1cm47XG4gICAgICAgIHBhcmFtcy5lZGl0b3IudXBsb2FkRmlsZXMoZmlsZXMsIChfLCBsaW5rKSA9PiBzZXRWYWx1ZShsaW5rKSk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcblxuZXhwb3J0IHZhciBpbWFnZUFkb3JuZXIgPSB7XG4gIGdldE1hcmtlckNsYXNzOiAobW9kZWwpID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIG1vZGVsLmdldFR5cGUgPT09IFwiZnVuY3Rpb25cIiAmJiBtb2RlbC5nZXRUeXBlKCkgPT09IFwiaW1hZ2VcIlxuICAgICAgPyBcImltYWdlX2VkaXRhYmxlXCJcbiAgICAgIDogXCJcIjtcbiAgfSxcbiAgZ2V0RWxlbWVudE5hbWU6IChtb2RlbCkgPT4gXCJyb290XCIsXG4gIGFmdGVyUmVuZGVyOiAoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIG1vZGVsOiBRdWVzdGlvbkltYWdlTW9kZWwsIGVkaXRvcikgPT4ge1xuICAgIHZhciBpdGVtc1Jvb3QgPSBlbGVtZW50c1swXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBlbGVtZW50c1tpXS5vbmNsaWNrID0gKGUpID0+IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHZhciBkZWNvcmF0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgICBkZWNvcmF0aW9uLmNsYXNzTmFtZSA9IFwic3ZkYS1hZG9ybmVyLXJvb3RcIjtcbiAgICAgIGRlY29yYXRpb24uaW5uZXJIVE1MID1cbiAgICAgICAgXCI8aW1hZ2UtZWRpdG9yIHBhcmFtcz0nbmFtZTogXFxcImltYWdlTGlua1xcXCIsIHRhcmdldDogdGFyZ2V0LCBxdWVzdGlvbjogcXVlc3Rpb24sIGVkaXRvcjogZWRpdG9yLCBpbnB1dDogaW5wdXQnPjwvaW1hZ2UtZWRpdG9yPlwiO1xuICAgICAgZWxlbWVudHNbaV0uYXBwZW5kQ2hpbGQoZGVjb3JhdGlvbik7XG5cbiAgICAgIHZhciBpbnB1dCA9IGNyZWF0ZUltYWdlRmlsZUNob29zZXIobW9kZWwuY29udGVudE1vZGUpO1xuICAgICAgaXRlbXNSb290LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaW5wdXQpO1xuXG4gICAgICBrby5hcHBseUJpbmRpbmdzKFxuICAgICAgICB7XG4gICAgICAgICAgcXVlc3Rpb246IG1vZGVsLFxuICAgICAgICAgIHRhcmdldDogbW9kZWwsXG4gICAgICAgICAgZWRpdG9yOiBlZGl0b3IsXG4gICAgICAgICAgaW5wdXQ6IGlucHV0LFxuICAgICAgICB9LFxuICAgICAgICBkZWNvcmF0aW9uXG4gICAgICApO1xuICAgICAgZWRpdG9yLm9uQWRvcm5lclJlbmRlcmVkQ2FsbGJhY2sobW9kZWwsIFwiaW1hZ2VcIiwgZGVjb3JhdGlvbiwgbW9kZWwpO1xuICAgIH1cbiAgfSxcbn07XG5cbnJlZ2lzdGVyQWRvcm5lcihcImltYWdlXCIsIGltYWdlQWRvcm5lcik7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQgeyByZWdpc3RlckFkb3JuZXIgfSBmcm9tIFwiLi4vc3VydmV5anNPYmplY3RzXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgU29ydGFibGUgZnJvbSBcIi4uLy4uL3ZlbmRvci9zb3J0YWJsZVwiO1xuaW1wb3J0IHsgVGl0bGVJbnBsYWNlRWRpdG9yIH0gZnJvbSBcIi4vdGl0bGUtZWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlDcmVhdG9yIH0gZnJvbSBcIi4uL2VkaXRvclwiO1xuaW1wb3J0IHsgZ2V0TmV4dFZhbHVlLCBjcmVhdGVLZXkyY2xpY2sgfSBmcm9tIFwiLi4vdXRpbHMvdXRpbHNcIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciB9IGZyb20gXCIuLi9zdXJ2ZXlIZWxwZXJcIjtcblxuaW1wb3J0IFwiLi9pdGVtLWVkaXRvci5zY3NzXCI7XG5pbXBvcnQgeyBRdWVzdGlvblNlbGVjdEJhc2UgfSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcImh0bWwtbG9hZGVyP2ludGVycG9sYXRlIXZhbC1sb2FkZXIhLi9pdGVtLWVkaXRvci5odG1sXCIpO1xuXG5mdW5jdGlvbiBmb2N1c0FmdGVyQ2hhbmdlKHF1ZXN0aW9uOiBRdWVzdGlvblNlbGVjdEJhc2UsIGluZGV4ID0gMCkge1xuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBpZiAoKDxhbnk+cXVlc3Rpb24pLnJlbmRlcmVkRWxlbWVudCAmJiBpbmRleCA+PSAtMSkge1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBpbmRleCA9IDA7XG4gICAgICB9XG4gICAgICB2YXIgZm9jdXNhYmxlcyA9IDxIVE1MRWxlbWVudFtdPihcbiAgICAgICAgKCg8YW55PnF1ZXN0aW9uKS5yZW5kZXJlZEVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInN2ZGEtZm9jdXNhYmxlXCIpKVxuICAgICAgKTtcbiAgICAgIGlmIChmb2N1c2FibGVzLmxlbmd0aCA+IDAgJiYgaW5kZXggPD0gZm9jdXNhYmxlcy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKGluZGV4ID49IGZvY3VzYWJsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgaW5kZXggPSBmb2N1c2FibGVzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgZm9jdXNhYmxlc1tpbmRleF0uZm9jdXMgJiYgZm9jdXNhYmxlc1tpbmRleF0uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIDEwKTtcbn1cblxuZXhwb3J0IGNsYXNzIEl0ZW1JbnBsYWNlRWRpdG9yIGV4dGVuZHMgVGl0bGVJbnBsYWNlRWRpdG9yIHtcbiAgcHJpdmF0ZSBfYWxsb3dBZGRSZW1vdmVJdGVtcyA9IHRydWU7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHRhcmdldDogYW55LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIHF1ZXN0aW9uOiBRdWVzdGlvblNlbGVjdEJhc2UsXG4gICAgcHJpdmF0ZSBpdGVtLFxuICAgIHJvb3RFbGVtZW50LFxuICAgIGVkaXRvcjogU3VydmV5Q3JlYXRvclxuICApIHtcbiAgICBzdXBlcih0YXJnZXQsIG5hbWUsIHJvb3RFbGVtZW50LCBudWxsLCBlZGl0b3IpO1xuICAgIHJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT0gMzggJiYgZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgIFN1cnZleUhlbHBlci5tb3ZlSXRlbUluQXJyYXkoXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbi5jaG9pY2VzLFxuICAgICAgICAgIHRoaXMuaXRlbSxcbiAgICAgICAgICAodGhpcy5xdWVzdGlvbi5jaG9pY2VzLmluZGV4T2YodGhpcy5pdGVtKSAtXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIHRoaXMucXVlc3Rpb24uY2hvaWNlcy5sZW5ndGgpICVcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSA0MCAmJiBldmVudC5hbHRLZXkpIHtcbiAgICAgICAgU3VydmV5SGVscGVyLm1vdmVJdGVtSW5BcnJheShcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLmNob2ljZXMsXG4gICAgICAgICAgdGhpcy5pdGVtLFxuICAgICAgICAgICh0aGlzLnF1ZXN0aW9uLmNob2ljZXMuaW5kZXhPZih0aGlzLml0ZW0pICsgMSkgJVxuICAgICAgICAgIHRoaXMucXVlc3Rpb24uY2hvaWNlcy5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByb290RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIiwgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNFZGl0aW5nKCkgJiYgZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgICAgdGhpcy5zdGFydEVkaXQodGhpcywgZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gNDYgJiYgcXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggIT0gMSkge1xuICAgICAgICB0aGlzLmRlbGV0ZUl0ZW0odGhpcywgZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGVkaXRvck9wdGlvbnMgPSB7XG4gICAgICBhbGxvd0FkZFJlbW92ZUl0ZW1zOiB0cnVlLFxuICAgICAgYWxsb3dSZW1vdmVBbGxJdGVtczogdHJ1ZSxcbiAgICB9O1xuICAgIHRoaXMuZWRpdG9yLm9uU2V0UHJvcGVydHlFZGl0b3JPcHRpb25zQ2FsbGJhY2soXG4gICAgICBcImNob2ljZXNcIixcbiAgICAgIHRoaXMucXVlc3Rpb24sXG4gICAgICBlZGl0b3JPcHRpb25zXG4gICAgKTtcbiAgICB0aGlzLl9hbGxvd0FkZFJlbW92ZUl0ZW1zID0gZWRpdG9yT3B0aW9ucy5hbGxvd0FkZFJlbW92ZUl0ZW1zO1xuICB9XG5cbiAgZGVsZXRlSXRlbShtb2RlbDogSXRlbUlucGxhY2VFZGl0b3IsIGV2ZW50KSB7XG4gICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgbW9kZWwucXVlc3Rpb24uZ2V0VHlwZSgpLFxuICAgICAgXCJjaG9pY2VzXCJcbiAgICApO1xuICAgIHZhciBhbGxvd0RlbGV0ZSA9IHRoaXMuZWRpdG9yLm9uQ29sbGVjdGlvbkl0ZW1EZWxldGluZ0NhbGxiYWNrKFxuICAgICAgbW9kZWwucXVlc3Rpb24sXG4gICAgICBwcm9wZXJ0eSxcbiAgICAgIG1vZGVsLnF1ZXN0aW9uLmNob2ljZXMsXG4gICAgICBtb2RlbC5pdGVtXG4gICAgKTtcbiAgICBpZiAoYWxsb3dEZWxldGUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0yO1xuICAgICAgdmFyIG5lZWRSZW1vdmUgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLm90aGVySXRlbSA9PT0gdGhpcy5pdGVtKSB7XG4gICAgICAgIHRoaXMucXVlc3Rpb24uaGFzT3RoZXIgPSBmYWxzZTtcbiAgICAgICAgaW5kZXggPSBtb2RlbC5xdWVzdGlvbi5jaG9pY2VzLmxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5xdWVzdGlvbltcInNlbGVjdEFsbEl0ZW1cIl0gPT09IHRoaXMuaXRlbSkge1xuICAgICAgICB0aGlzLnF1ZXN0aW9uW1wic2hvd1NlbGVjdEFsbEl0ZW1cIl0gPSBmYWxzZTtcbiAgICAgICAgaW5kZXggPSAwO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnF1ZXN0aW9uW1wibm9uZUl0ZW1cIl0gPT09IHRoaXMuaXRlbSkge1xuICAgICAgICB0aGlzLnF1ZXN0aW9uW1wic2hvd05vbmVJdGVtXCJdID0gZmFsc2U7XG4gICAgICAgIGluZGV4ID0gbW9kZWwucXVlc3Rpb24uY2hvaWNlcy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZWVkUmVtb3ZlID0gdHJ1ZTtcbiAgICAgICAgaW5kZXggPSBtb2RlbC5xdWVzdGlvbi5jaG9pY2VzLmluZGV4T2YobW9kZWwuaXRlbSk7XG4gICAgICB9XG4gICAgICBmb2N1c0FmdGVyQ2hhbmdlKHRoaXMucXVlc3Rpb24sIGluZGV4KTtcbiAgICAgIGlmIChuZWVkUmVtb3ZlKSB7XG4gICAgICAgIG1vZGVsLnF1ZXN0aW9uLmNob2ljZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZWRpdG9yLm9uUXVlc3Rpb25FZGl0b3JDaGFuZ2VkKHRoaXMucXVlc3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc0RyYWdnYWJsZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5xdWVzdGlvbi5vdGhlckl0ZW0gIT09IHRoaXMuaXRlbSAmJlxuICAgICAgdGhpcy5xdWVzdGlvbltcInNlbGVjdEFsbEl0ZW1cIl0gIT09IHRoaXMuaXRlbSAmJlxuICAgICAgdGhpcy5xdWVzdGlvbltcIm5vbmVJdGVtXCJdICE9PSB0aGlzLml0ZW1cbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzTGFzdEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggPT09IDE7XG4gIH1cblxuICBnZXQgYWxsb3dBZGRSZW1vdmVJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dBZGRSZW1vdmVJdGVtcztcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwiaXRlbS1lZGl0b3JcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBtb2RlbCA9IG5ldyBJdGVtSW5wbGFjZUVkaXRvcihcbiAgICAgICAgcGFyYW1zLnRhcmdldCxcbiAgICAgICAgcGFyYW1zLm5hbWUsXG4gICAgICAgIHBhcmFtcy5xdWVzdGlvbixcbiAgICAgICAgcGFyYW1zLml0ZW0sXG4gICAgICAgIGNvbXBvbmVudEluZm8uZWxlbWVudCxcbiAgICAgICAgcGFyYW1zLmVkaXRvclxuICAgICAgKTtcbiAgICAgIHZhciBwcm9wZXJ0eSA9IFN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShcbiAgICAgICAgcGFyYW1zLnRhcmdldC5nZXRUeXBlKCksXG4gICAgICAgIHBhcmFtcy5uYW1lXG4gICAgICApO1xuICAgICAgbW9kZWwudmFsdWVDaGFuZ2VkID0gKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHkubmFtZSxcbiAgICAgICAgICBvYmo6IHBhcmFtcy5pdGVtLFxuICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICBuZXdWYWx1ZTogbnVsbCxcbiAgICAgICAgICBkb1ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBwYXJhbXMuZWRpdG9yLm9uVmFsdWVDaGFuZ2luZ0NhbGxiYWNrKG9wdGlvbnMpO1xuICAgICAgICBuZXdWYWx1ZSA9IG9wdGlvbnMubmV3VmFsdWUgPT09IG51bGwgPyBvcHRpb25zLnZhbHVlIDogb3B0aW9ucy5uZXdWYWx1ZTtcbiAgICAgICAgaWYgKCFuZXdWYWx1ZSAmJiBwYXJhbXMubmFtZSA9PSBcInZhbHVlXCIpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IHBhcmFtcy5pdGVtLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtcy50YXJnZXRbcGFyYW1zLm5hbWVdID0gbmV3VmFsdWU7XG4gICAgICAgIHBhcmFtcy5lZGl0b3Iub25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChwcm9wZXJ0eSwgcGFyYW1zLnRhcmdldCwgbmV3VmFsdWUpO1xuICAgICAgICAhIXBhcmFtcy52YWx1ZUNoYW5nZWQgJiZcbiAgICAgICAgICBwYXJhbXMudmFsdWVDaGFuZ2VkKHBhcmFtcy50YXJnZXQsIHByb3BlcnR5Lm5hbWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcblxuZXhwb3J0IHZhciBpdGVtQWRvcm5lciA9IHtcbiAgaW5wbGFjZUVkaXRGb3JWYWx1ZXM6IGZhbHNlLFxuICBnZXRNYXJrZXJDbGFzczogKG1vZGVsKSA9PiB7XG4gICAgcmV0dXJuICEhbW9kZWwucGFyZW50ICYmXG4gICAgICAhIW1vZGVsLmNob2ljZXMgJiZcbiAgICAgIHR5cGVvZiBtb2RlbC5nZXRUeXBlID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgIG1vZGVsLmdldFR5cGUoKSAhPT0gXCJpbWFnZXBpY2tlclwiICYmXG4gICAgICAhbW9kZWwuY2hvaWNlc0Zyb21RdWVzdGlvbiAmJlxuICAgICAgIW1vZGVsLnJvd3NcbiAgICAgID8gXCJpdGVtX2VkaXRhYmxlXCJcbiAgICAgIDogXCJcIjtcbiAgfSxcbiAgZ2V0RWxlbWVudE5hbWU6IChtb2RlbCkgPT4gXCJjb250cm9sTGFiZWxcIixcbiAgYWZ0ZXJSZW5kZXI6IChlbGVtZW50czogSFRNTEVsZW1lbnRbXSwgbW9kZWw6IFF1ZXN0aW9uU2VsZWN0QmFzZSwgZWRpdG9yKSA9PiB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgZWxlbWVudHNbaV0ub25jbGljayA9IChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB2YXIgZGVjb3JhdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgZGVjb3JhdGlvbi5jbGFzc05hbWUgPSBcInN2ZGEtYWRvcm5lci1yb290XCI7XG4gICAgICB2YXIgaXRlbVZhbHVlID0ga28uZGF0YUZvcihlbGVtZW50c1tpXSk7XG4gICAgICBpZiAoIWl0ZW1WYWx1ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wZXJ0eU5hbWUgPSBpdGVtQWRvcm5lci5pbnBsYWNlRWRpdEZvclZhbHVlcyA/IFwidmFsdWVcIiA6IFwidGV4dFwiO1xuICAgICAgdmFyIHRhcmdldCA9IGl0ZW1WYWx1ZTtcbiAgICAgIGlmIChpdGVtVmFsdWUgPT09IG1vZGVsW1wic2VsZWN0QWxsSXRlbVwiXSkge1xuICAgICAgICB0YXJnZXQgPSBtb2RlbDtcbiAgICAgICAgcHJvcGVydHlOYW1lID0gXCJzZWxlY3RBbGxUZXh0XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVZhbHVlID09PSBtb2RlbFtcIm5vbmVJdGVtVmFsdWVcIl0pIHtcbiAgICAgICAgdGFyZ2V0ID0gbW9kZWw7XG4gICAgICAgIHByb3BlcnR5TmFtZSA9IFwibm9uZVRleHRcIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtVmFsdWUgPT09IG1vZGVsW1wib3RoZXJJdGVtVmFsdWVcIl0pIHtcbiAgICAgICAgdGFyZ2V0ID0gbW9kZWw7XG4gICAgICAgIHByb3BlcnR5TmFtZSA9IFwib3RoZXJUZXh0XCI7XG4gICAgICB9XG4gICAgICBkZWNvcmF0aW9uLmlubmVySFRNTCA9XG4gICAgICAgIFwiPGl0ZW0tZWRpdG9yIHBhcmFtcz0nbmFtZTogXFxcIlwiICtcbiAgICAgICAgcHJvcGVydHlOYW1lICtcbiAgICAgICAgXCJcXFwiLCB0YXJnZXQ6IHRhcmdldCwgaXRlbTogaXRlbSwgcXVlc3Rpb246IHF1ZXN0aW9uLCBlZGl0b3I6IGVkaXRvcic+PC9pdGVtLWVkaXRvcj5cIjtcbiAgICAgIGVsZW1lbnRzW2ldLmFwcGVuZENoaWxkKGRlY29yYXRpb24pO1xuICAgICAga28uYXBwbHlCaW5kaW5ncyhcbiAgICAgICAge1xuICAgICAgICAgIGl0ZW06IGl0ZW1WYWx1ZSxcbiAgICAgICAgICBxdWVzdGlvbjogbW9kZWwsXG4gICAgICAgICAgdGFyZ2V0OiB0YXJnZXQsXG4gICAgICAgICAgZWRpdG9yOiBlZGl0b3IsXG4gICAgICAgIH0sXG4gICAgICAgIGRlY29yYXRpb25cbiAgICAgICk7XG4gICAgICBlZGl0b3Iub25BZG9ybmVyUmVuZGVyZWRDYWxsYmFjayhcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIFwiY2hvaWNlcy1sYWJlbFwiLFxuICAgICAgICBkZWNvcmF0aW9uLFxuICAgICAgICBpdGVtVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9LFxufTtcblxucmVnaXN0ZXJBZG9ybmVyKFwiY2hvaWNlcy1sYWJlbFwiLCBpdGVtQWRvcm5lcik7XG5cbmV4cG9ydCB2YXIgY3JlYXRlQWRkSXRlbUhhbmRsZXIgPSAoXG4gIHF1ZXN0aW9uOiBTdXJ2ZXkuUXVlc3Rpb25TZWxlY3RCYXNlLFxuICBvbkl0ZW1BZGRlZDogKGl0ZW1WYWx1ZTogU3VydmV5Lkl0ZW1WYWx1ZSkgPT4gdm9pZCxcbiAgb25JdGVtQWRkaW5nOiAoaXRlbVZhbHVlOiBTdXJ2ZXkuSXRlbVZhbHVlKSA9PiB2b2lkID0gbnVsbFxuKSA9PiAoKSA9PiB7XG4gIHZhciBuZXh0VmFsdWUgPSBudWxsO1xuICB2YXIgdmFsdWVzID0gcXVlc3Rpb24uY2hvaWNlcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfSk7XG4gIHZhciBpdGVtVGV4dCA9IFN1cnZleS5zdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiY2hvaWNlc19JdGVtXCIpO1xuICBuZXh0VmFsdWUgPSBnZXROZXh0VmFsdWUoaXRlbVRleHQsIHZhbHVlcyk7XG5cbiAgdmFyIGl0ZW1WYWx1ZSA9IG5ldyBTdXJ2ZXkuSXRlbVZhbHVlKG5leHRWYWx1ZSk7XG4gIGl0ZW1WYWx1ZS5sb2NPd25lciA9IDxhbnk+e1xuICAgIGdldExvY2FsZTogKCkgPT4ge1xuICAgICAgaWYgKCEhcXVlc3Rpb25bXCJnZXRMb2NhbGVcIl0pIHJldHVybiBxdWVzdGlvbi5nZXRMb2NhbGUoKTtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH0sXG4gICAgZ2V0TWFya2Rvd25IdG1sOiAodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9LFxuICAgIGdldFByb2Nlc3NlZFRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH0sXG4gIH07XG4gICEhb25JdGVtQWRkaW5nICYmIG9uSXRlbUFkZGluZyhpdGVtVmFsdWUpO1xuICBxdWVzdGlvbi5jaG9pY2VzLnB1c2goaXRlbVZhbHVlKTtcbiAgaXRlbVZhbHVlID0gcXVlc3Rpb24uY2hvaWNlcy5maWx0ZXIoXG4gICAgKGNob2ljZUl0ZW0pID0+IGNob2ljZUl0ZW0udmFsdWUgPT09IGl0ZW1WYWx1ZS52YWx1ZVxuICApWzBdO1xuICAhIW9uSXRlbUFkZGVkICYmIG9uSXRlbUFkZGVkKGl0ZW1WYWx1ZSk7XG4gIGZvY3VzQWZ0ZXJDaGFuZ2UocXVlc3Rpb24sIHF1ZXN0aW9uLmNob2ljZXMuaW5kZXhPZihpdGVtVmFsdWUpKTtcbn07XG5cbmV4cG9ydCB2YXIgY3JlYXRlQWRkSXRlbUVsZW1lbnQgPSAoaGFuZGxlcikgPT4ge1xuICB2YXIgYWRkTmV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgYWRkTmV3LnRpdGxlID0gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcInBlLmFkZEl0ZW1cIik7XG4gIGFkZE5ldy5jbGFzc05hbWUgPVxuICAgIFwic3ZfdGVjaG5pY2FsIHN2ZGEtYWRkLW5ldy1pdGVtIHN2ZC1wcmltYXJ5LWljb24gc3ZkYS1hZGQtY3VzdG9tLWl0ZW1cIjtcbiAgYWRkTmV3Lm9uY2xpY2sgPSBoYW5kbGVyO1xuICBhZGROZXcub25rZXl1cCA9IGNyZWF0ZUtleTJjbGljayhhZGROZXcpO1xuICBhZGROZXcudGFiSW5kZXggPSAwO1xuICBhZGROZXcuc2V0QXR0cmlidXRlKFwicm9sZVwiLCBcImJ1dHRvblwiKTtcblxuICB2YXIgc3ZnRWxlbTogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgIFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBcInN2Z1wiXG4gICk7XG4gIHN2Z0VsZW0uc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgXCJzdmQtc3ZnLWljb25cIik7XG4gIHN2Z0VsZW0uc3R5bGUud2lkdGggPSBcIjEycHhcIjtcbiAgc3ZnRWxlbS5zdHlsZS5oZWlnaHQgPSBcIjEycHhcIjtcbiAgdmFyIHVzZUVsZW06IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcbiAgICBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgXCJ1c2VcIlxuICApO1xuICB1c2VFbGVtLnNldEF0dHJpYnV0ZU5TKFxuICAgIFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICAgIFwieGxpbms6aHJlZlwiLFxuICAgIFwiI2ljb24taW5wbGFjZXBsdXNcIlxuICApO1xuICBzdmdFbGVtLmFwcGVuZENoaWxkKHVzZUVsZW0pO1xuICBhZGROZXcuYXBwZW5kQ2hpbGQoc3ZnRWxlbSk7XG4gIC8vIHZhciB0aXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAvLyB0aXRsZS5pbm5lckhUTUwgPSBhZGROZXcudGl0bGU7XG4gIC8vIGFkZE5ldy5hcHBlbmRDaGlsZCh0aXRsZSk7XG4gIHJldHVybiBhZGROZXc7XG59O1xuXG5leHBvcnQgdmFyIGNyZWF0ZUN1c3RvbUVsZW1lbnQgPSAodGl0bGUsIGhhbmRsZXIpID0+IHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBlbGVtZW50LnRpdGxlID0gdGl0bGU7XG4gIGVsZW1lbnQuY2xhc3NOYW1lID0gXCJzdl90ZWNobmljYWwgc3ZkYS1hZGQtbmV3LWl0ZW0gc3ZkYS1hZGQtY3VzdG9tLWl0ZW1cIjtcbiAgZWxlbWVudC5vbmNsaWNrID0gaGFuZGxlcjtcbiAgZWxlbWVudC5vbmtleXVwID0gY3JlYXRlS2V5MmNsaWNrKGVsZW1lbnQpO1xuICBlbGVtZW50LnRhYkluZGV4ID0gMDtcbiAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwiYnV0dG9uXCIpO1xuICB2YXIgdGl0bGVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICB0aXRsZUVsLmlubmVySFRNTCA9IGVsZW1lbnQudGl0bGU7XG4gIGVsZW1lbnQuYXBwZW5kQ2hpbGQodGl0bGVFbCk7XG4gIHJldHVybiBlbGVtZW50O1xufTtcblxuZXhwb3J0IHZhciBpdGVtRHJhZ2dhYmxlQWRvcm5lciA9IHtcbiAgZ2V0TWFya2VyQ2xhc3M6IChtb2RlbCkgPT4ge1xuICAgIHJldHVybiAhIW1vZGVsLnBhcmVudCAmJlxuICAgICAgISFtb2RlbC5jaG9pY2VzICYmXG4gICAgICB0eXBlb2YgbW9kZWwuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICBtb2RlbC5nZXRUeXBlKCkgIT09IFwiaW1hZ2VwaWNrZXJcIiAmJlxuICAgICAgIW1vZGVsLmNob2ljZXNGcm9tUXVlc3Rpb25cbiAgICAgID8gXCJpdGVtX2RyYWdnYWJsZVwiXG4gICAgICA6IFwiXCI7XG4gIH0sXG4gIGdldEVsZW1lbnROYW1lOiAobW9kZWwpID0+IFwiaXRlbVwiLFxuICBhZnRlclJlbmRlcjogKFxuICAgIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLFxuICAgIG1vZGVsOiBRdWVzdGlvblNlbGVjdEJhc2UsXG4gICAgZWRpdG9yOiBTdXJ2ZXlDcmVhdG9yXG4gICkgPT4ge1xuICAgIHZhciBpdGVtc1Jvb3QgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoaXRlbXNSb290LmluZGV4T2YoZWxlbWVudHNbaV0ucGFyZW50RWxlbWVudCkgPT09IC0xKSB7XG4gICAgICAgIGl0ZW1zUm9vdC5wdXNoKGVsZW1lbnRzW2ldLnBhcmVudEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbVZhbHVlID0ga28uZGF0YUZvcihlbGVtZW50c1tpXSk7XG4gICAgICBpZiAoIWl0ZW1WYWx1ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgaXRlbVZhbHVlID09PSBtb2RlbFtcInNlbGVjdEFsbEl0ZW1WYWx1ZVwiXSB8fFxuICAgICAgICBpdGVtVmFsdWUgPT09IG1vZGVsW1wibm9uZUl0ZW1WYWx1ZVwiXSB8fFxuICAgICAgICBpdGVtVmFsdWUgPT09IG1vZGVsW1wib3RoZXJJdGVtVmFsdWVcIl1cbiAgICAgICkge1xuICAgICAgICBlbGVtZW50c1tpXS5jbGFzc0xpc3QucmVtb3ZlKFwiaXRlbV9kcmFnZ2FibGVcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGl0ZW1zUm9vdC5mb3JFYWNoKChpdGVtUm9vdCkgPT5cbiAgICAgIFNvcnRhYmxlLmNyZWF0ZShpdGVtUm9vdCwge1xuICAgICAgICBoYW5kbGU6IFwiLnN2ZGEtZHJhZy1oYW5kbGVcIixcbiAgICAgICAgZ3JvdXA6IG1vZGVsLmlkLFxuICAgICAgICBkcmFnZ2FibGU6IFwiLml0ZW1fZHJhZ2dhYmxlXCIsXG4gICAgICAgIGFuaW1hdGlvbjogMTUwLFxuICAgICAgICBvbkVuZDogKGV2dCkgPT4ge1xuICAgICAgICAgIHZhciBvbGRJbmRleCA9IGV2dC5vbGRJbmRleDtcbiAgICAgICAgICB2YXIgbmV3SW5kZXggPSBldnQubmV3SW5kZXg7XG4gICAgICAgICAgdmFyIGNob2ljZXMgPSBtb2RlbC5jaG9pY2VzO1xuICAgICAgICAgIHZhciBjaG9pY2UgPSBjaG9pY2VzW2V2dC5vbGRJbmRleF07XG4gICAgICAgICAgaWYgKG1vZGVsLmhhc0NvbHVtbnMpIHtcbiAgICAgICAgICAgIGNob2ljZSA9IGtvLmRhdGFGb3IoZXZ0Lml0ZW0pO1xuICAgICAgICAgICAgdmFyIGNvbHVtbkNvbnRlbnQgPSBrby5kYXRhRm9yKGV2dC5pdGVtLnBhcmVudEVsZW1lbnQpO1xuICAgICAgICAgICAgdmFyIGl0ZW1CZWZvcmUgPSBjb2x1bW5Db250ZW50ICYmIGNvbHVtbkNvbnRlbnRbbmV3SW5kZXhdO1xuICAgICAgICAgICAgb2xkSW5kZXggPSBjaG9pY2VzLmluZGV4T2YoY2hvaWNlKTtcbiAgICAgICAgICAgIG5ld0luZGV4ID0gY2hvaWNlcy5pbmRleE9mKGl0ZW1CZWZvcmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlZGl0b3IudW5kb1JlZG9NYW5hZ2VyLnN0YXJ0VHJhbnNhY3Rpb24oXCJtb3ZlIGNob2ljZSBpdGVtc1wiKTtcbiAgICAgICAgICBjaG9pY2VzLnNwbGljZShvbGRJbmRleCwgMSk7XG4gICAgICAgICAgY2hvaWNlcy5zcGxpY2UobmV3SW5kZXgsIDAsIGNob2ljZSk7XG4gICAgICAgICAgZWRpdG9yLnVuZG9SZWRvTWFuYWdlci5zdG9wVHJhbnNhY3Rpb24oKTtcbiAgICAgICAgICBlZGl0b3Iub25RdWVzdGlvbkVkaXRvckNoYW5nZWQobW9kZWwpO1xuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICAgIHZhciBlZGl0b3JPcHRpb25zID0ge1xuICAgICAgYWxsb3dBZGRSZW1vdmVJdGVtczogdHJ1ZSxcbiAgICAgIGFsbG93UmVtb3ZlQWxsSXRlbXM6IHRydWUsXG4gICAgfTtcbiAgICBlZGl0b3Iub25TZXRQcm9wZXJ0eUVkaXRvck9wdGlvbnNDYWxsYmFjayhcImNob2ljZXNcIiwgbW9kZWwsIGVkaXRvck9wdGlvbnMpO1xuICAgIGlmIChlZGl0b3JPcHRpb25zLmFsbG93QWRkUmVtb3ZlSXRlbXMpIHtcbiAgICAgIHZhciBhZGROZXcgPSBjcmVhdGVBZGRJdGVtRWxlbWVudChcbiAgICAgICAgY3JlYXRlQWRkSXRlbUhhbmRsZXIoXG4gICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgKGl0ZW1WYWx1ZSkgPT4ge1xuICAgICAgICAgICAgZWRpdG9yLm9uUXVlc3Rpb25FZGl0b3JDaGFuZ2VkKG1vZGVsKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChpdGVtVmFsdWUpID0+IHtcbiAgICAgICAgICAgIGVkaXRvci5vbkl0ZW1WYWx1ZUFkZGVkQ2FsbGJhY2soXG4gICAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgICBcImNob2ljZXNcIixcbiAgICAgICAgICAgICAgaXRlbVZhbHVlLFxuICAgICAgICAgICAgICBtb2RlbC5jaG9pY2VzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGl0ZW1zUm9vdFswXS5hcHBlbmRDaGlsZChhZGROZXcpO1xuICAgIH1cbiAgICB2YXIgcmFpc2VDaGFuZ2luZ0V2ZW50ID0gKFxuICAgICAgdGFyZ2V0OiBhbnksXG4gICAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICAgIG5ld1ZhbHVlOiBhbnlcbiAgICApID0+IHtcbiAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgb2JqOiB0YXJnZXQsXG4gICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgbmV3VmFsdWU6IG51bGwsXG4gICAgICAgIGRvVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICB9O1xuICAgICAgZWRpdG9yLm9uVmFsdWVDaGFuZ2luZ0NhbGxiYWNrKG9wdGlvbnMpO1xuICAgICAgbmV3VmFsdWUgPSBvcHRpb25zLm5ld1ZhbHVlID09PSBudWxsID8gb3B0aW9ucy52YWx1ZSA6IG9wdGlvbnMubmV3VmFsdWU7XG4gICAgICByZXR1cm4gbmV3VmFsdWU7XG4gICAgfTtcbiAgICB2YXIgcmFpc2VDaGFuZ2VkRXZlbnQgPSAoXG4gICAgICB0YXJnZXQ6IGFueSxcbiAgICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgICAgbmV3VmFsdWU6IGFueVxuICAgICkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB0YXJnZXQuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHZhciBwcm9wZXJ0eSA9IFN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShcbiAgICAgICAgICB0YXJnZXQuZ2V0VHlwZSgpLFxuICAgICAgICAgIHByb3BlcnR5TmFtZVxuICAgICAgICApO1xuICAgICAgICBlZGl0b3Iub25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChwcm9wZXJ0eSwgdGFyZ2V0LCBuZXdWYWx1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAoXG4gICAgICBlZGl0b3IuY2FuU2hvd09iamVjdFByb3BlcnR5KG1vZGVsLCBcInNob3dPdGhlckl0ZW1cIikgJiZcbiAgICAgIG1vZGVsLmhhc090aGVyICE9PSB0cnVlXG4gICAgKSB7XG4gICAgICBpdGVtc1Jvb3RbMF0uYXBwZW5kQ2hpbGQoXG4gICAgICAgIGNyZWF0ZUN1c3RvbUVsZW1lbnQoZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcInBlLmFkZE90aGVyXCIpLCAoKSA9PiB7XG4gICAgICAgICAgdmFyIG5ld1ZhbHVlID0gIW1vZGVsLmhhc090aGVyO1xuICAgICAgICAgIG5ld1ZhbHVlID0gcmFpc2VDaGFuZ2luZ0V2ZW50KG1vZGVsLCBcInNob3dPdGhlckl0ZW1cIiwgbmV3VmFsdWUpO1xuICAgICAgICAgIG1vZGVsLmhhc090aGVyID0gbmV3VmFsdWU7XG4gICAgICAgICAgcmFpc2VDaGFuZ2VkRXZlbnQobW9kZWwsIFwic2hvd090aGVySXRlbVwiLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgZm9jdXNBZnRlckNoYW5nZShtb2RlbCwgbW9kZWwuY2hvaWNlcy5sZW5ndGggKyAxKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIG1vZGVsW1wic2hvd1NlbGVjdEFsbEl0ZW1cIl0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgbW9kZWxbXCJzaG93U2VsZWN0QWxsSXRlbVwiXSAhPT0gdHJ1ZSAmJlxuICAgICAgZWRpdG9yLmNhblNob3dPYmplY3RQcm9wZXJ0eShtb2RlbCwgXCJzaG93U2VsZWN0QWxsSXRlbVwiKVxuICAgICkge1xuICAgICAgaXRlbXNSb290WzBdLmFwcGVuZENoaWxkKFxuICAgICAgICBjcmVhdGVDdXN0b21FbGVtZW50KFxuICAgICAgICAgIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJwZS5hZGRTZWxlY3RBbGxcIiksXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdmFyIG5ld1ZhbHVlID0gIW1vZGVsW1wic2hvd1NlbGVjdEFsbEl0ZW1cIl07XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHJhaXNlQ2hhbmdpbmdFdmVudChtb2RlbCwgXCJzaG93U2VsZWN0QWxsSXRlbVwiLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICBtb2RlbFtcInNob3dTZWxlY3RBbGxJdGVtXCJdID0gbmV3VmFsdWU7XG4gICAgICAgICAgICByYWlzZUNoYW5nZWRFdmVudChtb2RlbCwgXCJzaG93U2VsZWN0QWxsSXRlbVwiLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICBmb2N1c0FmdGVyQ2hhbmdlKG1vZGVsLCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIG1vZGVsLmhhc05vbmUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgbW9kZWwuaGFzTm9uZSAhPT0gdHJ1ZSAmJlxuICAgICAgZWRpdG9yLmNhblNob3dPYmplY3RQcm9wZXJ0eShtb2RlbCwgXCJzaG93Tm9uZUl0ZW1cIilcbiAgICApIHtcbiAgICAgIGl0ZW1zUm9vdFswXS5hcHBlbmRDaGlsZChcbiAgICAgICAgY3JlYXRlQ3VzdG9tRWxlbWVudChlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUuYWRkTm9uZVwiKSwgKCkgPT4ge1xuICAgICAgICAgIHZhciBuZXdWYWx1ZSA9ICFtb2RlbC5oYXNOb25lO1xuICAgICAgICAgIG5ld1ZhbHVlID0gcmFpc2VDaGFuZ2luZ0V2ZW50KG1vZGVsLCBcInNob3dOb25lSXRlbVwiLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgbW9kZWwuaGFzTm9uZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgIHJhaXNlQ2hhbmdlZEV2ZW50KG1vZGVsLCBcInNob3dOb25lSXRlbVwiLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgZm9jdXNBZnRlckNoYW5nZShtb2RlbCwgbW9kZWwuY2hvaWNlcy5sZW5ndGgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBlZGl0b3Iub25BZG9ybmVyUmVuZGVyZWRDYWxsYmFjayhcbiAgICAgIG1vZGVsLFxuICAgICAgXCJjaG9pY2VzLWRyYWdnYWJsZVwiLFxuICAgICAgaXRlbXNSb290WzBdLFxuICAgICAgaXRlbXNSb290XG4gICAgKTtcbiAgfSxcbn07XG5cbnJlZ2lzdGVyQWRvcm5lcihcImNob2ljZXMtZHJhZ2dhYmxlXCIsIGl0ZW1EcmFnZ2FibGVBZG9ybmVyKTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJBZG9ybmVyIH0gZnJvbSBcIi4uL3N1cnZleWpzT2JqZWN0c1wiO1xuaW1wb3J0IHsgVGl0bGVJbnBsYWNlRWRpdG9yIH0gZnJvbSBcIi4vdGl0bGUtZWRpdG9yXCI7XG5cbmltcG9ydCBcIi4vbGFiZWwtZWRpdG9yLnNjc3NcIjtcblxuZXhwb3J0IHZhciBsYWJlbEFkb3JuZXIgPSB7XG4gIGdldE1hcmtlckNsYXNzOiBtb2RlbCA9PiB7XG4gICAgaWYgKG1vZGVsLmdldFR5cGUoKSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHJldHVybiBcImxhYmVsX2VkaXRhYmxlXCI7XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9LFxuICBnZXRFbGVtZW50TmFtZTogbW9kZWwgPT4gXCJsYWJlbFwiLFxuICBhZnRlclJlbmRlcjogKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCBtb2RlbCwgZWRpdG9yKSA9PiB7XG4gICAgdmFyIGRlY29yYXRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtcbiAgICBkZWNvcmF0aW9uLmlubmVySFRNTCA9XG4gICAgICBcIjx0aXRsZS1lZGl0b3IgcGFyYW1zPSduYW1lOiBcXFwidGl0bGVcXFwiLCBtb2RlbDogbW9kZWwsIGVkaXRvcjogZWRpdG9yJz48L3RpdGxlLWVkaXRvcj5cIjtcbiAgICBlbGVtZW50c1swXS5vbmNsaWNrID0gZSA9PiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZWxlbWVudHNbMF0uYXBwZW5kQ2hpbGQoZGVjb3JhdGlvbik7XG4gICAga28uYXBwbHlCaW5kaW5ncyh7IG1vZGVsOiBtb2RlbCwgZWRpdG9yOiBlZGl0b3IgfSwgZGVjb3JhdGlvbik7XG4gICAgZWRpdG9yLm9uQWRvcm5lclJlbmRlcmVkQ2FsbGJhY2sobW9kZWwsIFwibGFiZWxcIiwgZGVjb3JhdGlvbik7XG4gIH1cbn07XG5cbi8vcmVnaXN0ZXJBZG9ybmVyKFwibGFiZWxcIiwgbGFiZWxBZG9ybmVyKTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHtcbiAgcmVnaXN0ZXJBZG9ybmVyLFxuICBTdXJ2ZXlGb3JEZXNpZ25lcixcbiAgSVN1cnZleU9iamVjdE1lbnVJdGVtXG59IGZyb20gXCIuLi9zdXJ2ZXlqc09iamVjdHNcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCBcIi4vcXVlc3Rpb24tYWN0aW9ucy5zY3NzXCI7XG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcImh0bWwtbG9hZGVyP2ludGVycG9sYXRlIXZhbC1sb2FkZXIhLi9xdWVzdGlvbi1hY3Rpb25zLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkFjdGlvbnNBZG9ybmVyIHtcbiAgY29uc3RydWN0b3IocHVibGljIHF1ZXN0aW9uLCBwcml2YXRlIGVkaXRvcikge1xuICAgIHZhciBzdXJ2ZXlGb3JEZXNpZ25lcjogU3VydmV5Rm9yRGVzaWduZXIgPSBlZGl0b3Iuc3VydmV5O1xuICAgIHRoaXMuYWN0aW9ucyhzdXJ2ZXlGb3JEZXNpZ25lci5nZXRNZW51SXRlbXMocXVlc3Rpb24pKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpb25zID0ga28ub2JzZXJ2YWJsZUFycmF5PElTdXJ2ZXlPYmplY3RNZW51SXRlbT4oKTtcblxuICBwdWJsaWMgZ2V0U3R5bGUobW9kZWw6IElTdXJ2ZXlPYmplY3RNZW51SXRlbSkge1xuICAgIGlmICghIW1vZGVsLmljb24pIHtcbiAgICAgIHJldHVybiBrby51bndyYXAoPGFueT5tb2RlbC5pY29uKTtcbiAgICB9XG4gICAgcmV0dXJuIFwiaWNvbi1hY3Rpb25cIiArIG1vZGVsLm5hbWU7XG4gIH1cblxuICBwdWJsaWMgbG9jYWxpemUoZW50cnlTdHJpbmcpIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhlbnRyeVN0cmluZyk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInF1ZXN0aW9uLWFjdGlvbnNcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBtb2RlbCA9IG5ldyBRdWVzdGlvbkFjdGlvbnNBZG9ybmVyKHBhcmFtcy5xdWVzdGlvbiwgcGFyYW1zLmVkaXRvcik7XG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfVxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sXG59KTtcblxuZXhwb3J0IHZhciBxdWVzdGlvbkFjdGlvbnNBZG9ybmVyID0ge1xuICBnZXRNYXJrZXJDbGFzczogbW9kZWwgPT4ge1xuICAgIHJldHVybiAhbW9kZWwuaXNQYW5lbCAmJiAhbW9kZWwuaXNQYWdlID8gXCJxdWVzdGlvbl9hY3Rpb25zXCIgOiBcIlwiO1xuICB9LFxuICBnZXRFbGVtZW50TmFtZTogbW9kZWwgPT4gXCJtYWluUm9vdFwiLFxuICBhZnRlclJlbmRlcjogKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCBtb2RlbCwgZWRpdG9yKSA9PiB7XG4gICAgdmFyIGRlY29yYXRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRlY29yYXRpb24uY2xhc3NOYW1lID0gXCJzdmRhLXF1ZXN0aW9uLWFjdGlvbnNcIjtcbiAgICBkZWNvcmF0aW9uLmlubmVySFRNTCA9XG4gICAgICBcIjxxdWVzdGlvbi1hY3Rpb25zIHBhcmFtcz0ncXVlc3Rpb246IG1vZGVsLCBlZGl0b3I6IGVkaXRvcic+PC9xdWVzdGlvbi1hY3Rpb25zPlwiO1xuICAgIGVsZW1lbnRzWzBdLmFwcGVuZENoaWxkKGRlY29yYXRpb24pO1xuICAgIGtvLmFwcGx5QmluZGluZ3MoeyBtb2RlbDogbW9kZWwsIGVkaXRvcjogZWRpdG9yIH0sIGRlY29yYXRpb24pO1xuICAgIGVkaXRvci5vbkFkb3JuZXJSZW5kZXJlZENhbGxiYWNrKG1vZGVsLCBcInF1ZXN0aW9uLWFjdGlvbnNcIiwgZGVjb3JhdGlvbik7XG4gIH1cbn07XG5cbnJlZ2lzdGVyQWRvcm5lcihcInF1ZXN0aW9uLWFjdGlvbnNcIiwgcXVlc3Rpb25BY3Rpb25zQWRvcm5lcik7XG5cbmV4cG9ydCB2YXIgcGFuZWxBY3Rpb25zQWRvcm5lciA9IHtcbiAgZ2V0TWFya2VyQ2xhc3M6IG1vZGVsID0+IHtcbiAgICByZXR1cm4gISFtb2RlbC5pc1BhbmVsICYmXG4gICAgICAhIW1vZGVsLnBhcmVudCAmJlxuICAgICAgbW9kZWwuZ2V0VHlwZSgpICE9PSBcImZsb3dwYW5lbFwiICYmXG4gICAgICBtb2RlbC5nZXRUeXBlKCkgIT09IFwicGFnZVwiXG4gICAgICA/IFwicGFuZWxfYWN0aW9uc1wiXG4gICAgICA6IFwiXCI7XG4gIH0sXG4gIGdldEVsZW1lbnROYW1lOiBtb2RlbCA9PiBcImNvbnRhaW5lclwiLFxuICBhZnRlclJlbmRlcjogcXVlc3Rpb25BY3Rpb25zQWRvcm5lci5hZnRlclJlbmRlclxufTtcblxucmVnaXN0ZXJBZG9ybmVyKFwicGFuZWwtYWN0aW9uc1wiLCBwYW5lbEFjdGlvbnNBZG9ybmVyKTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IHJlZ2lzdGVyQWRvcm5lciB9IGZyb20gXCIuLi9zdXJ2ZXlqc09iamVjdHNcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IFRpdGxlSW5wbGFjZUVkaXRvciB9IGZyb20gXCIuL3RpdGxlLWVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcbmltcG9ydCB7IGdldE5leHRWYWx1ZSwgZmluZFBhcmVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbHMvdXRpbHNcIjtcblxuaW1wb3J0IFwiLi9yYXRpbmctaXRlbS1lZGl0b3Iuc2Nzc1wiO1xuaW1wb3J0IHsgUXVlc3Rpb25TZWxlY3RCYXNlIH0gZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xudmFyIHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCJodG1sLWxvYWRlcj9pbnRlcnBvbGF0ZSF2YWwtbG9hZGVyIS4vcmF0aW5nLWl0ZW0tZWRpdG9yLmh0bWxcIik7XG5cbmNsYXNzIFJhdGluZ0l0ZW1FZGl0b3IgZXh0ZW5kcyBUaXRsZUlucGxhY2VFZGl0b3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICB0YXJnZXQ6IGFueSxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBxdWVzdGlvbjogU3VydmV5LlF1ZXN0aW9uUmF0aW5nLFxuICAgIHByaXZhdGUgaXRlbSxcbiAgICByb290RWxlbWVudCxcbiAgICBlZGl0b3I6IFN1cnZleUNyZWF0b3JcbiAgKSB7XG4gICAgc3VwZXIodGFyZ2V0LCBuYW1lLCByb290RWxlbWVudCwgbnVsbCwgZWRpdG9yKTtcbiAgfVxuXG4gIGRlbGV0ZUl0ZW0obW9kZWw6IFJhdGluZ0l0ZW1FZGl0b3IsIGV2ZW50KSB7XG4gICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgbW9kZWwucXVlc3Rpb24uZ2V0VHlwZSgpLFxuICAgICAgXCJyYXRlVmFsdWVzXCJcbiAgICApO1xuICAgIHZhciBhbGxvd0RlbGV0ZSA9IHRoaXMuZWRpdG9yLm9uQ29sbGVjdGlvbkl0ZW1EZWxldGluZ0NhbGxiYWNrKFxuICAgICAgbW9kZWwucXVlc3Rpb24sXG4gICAgICBwcm9wZXJ0eSxcbiAgICAgIG1vZGVsLnF1ZXN0aW9uLnJhdGVWYWx1ZXMsXG4gICAgICBtb2RlbC5pdGVtXG4gICAgKTtcbiAgICBpZiAoYWxsb3dEZWxldGUpIHtcbiAgICAgIHZhciBxdWVzdGlvbiA9IG1vZGVsLnF1ZXN0aW9uO1xuICAgICAgdmFyIGluZGV4ID0gcXVlc3Rpb24udmlzaWJsZVJhdGVWYWx1ZXNcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSlcbiAgICAgICAgLmluZGV4T2YobW9kZWwuaXRlbS52YWx1ZSk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgcXVlc3Rpb24ucmF0ZVZhbHVlcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgaW5kZXggPT09IHF1ZXN0aW9uLnZpc2libGVSYXRlVmFsdWVzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICBxdWVzdGlvbi5yYXRlTWF4IC09IHF1ZXN0aW9uLnJhdGVTdGVwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHF1ZXN0aW9uLnJhdGVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcXVlc3Rpb24ucmF0ZVZhbHVlcyA9IHF1ZXN0aW9uLnZpc2libGVSYXRlVmFsdWVzO1xuICAgICAgICB9XG4gICAgICAgIHF1ZXN0aW9uLnJhdGVWYWx1ZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIG1vZGVsLmVkaXRvci5vblF1ZXN0aW9uRWRpdG9yQ2hhbmdlZChxdWVzdGlvbik7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzTGFzdEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24udmlzaWJsZVJhdGVWYWx1ZXMubGVuZ3RoID09PSAxO1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZCA9IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwicmF0aW5nLWl0ZW0tZWRpdG9yXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICB2YXIgbW9kZWwgPSBuZXcgUmF0aW5nSXRlbUVkaXRvcihcbiAgICAgICAgcGFyYW1zLnRhcmdldCxcbiAgICAgICAgcGFyYW1zLm5hbWUsXG4gICAgICAgIHBhcmFtcy5xdWVzdGlvbixcbiAgICAgICAgcGFyYW1zLml0ZW0sXG4gICAgICAgIGNvbXBvbmVudEluZm8uZWxlbWVudCxcbiAgICAgICAgcGFyYW1zLmVkaXRvclxuICAgICAgKTtcbiAgICAgIHZhciBxdWVzdGlvbjogU3VydmV5LlF1ZXN0aW9uUmF0aW5nID0gcGFyYW1zLnF1ZXN0aW9uO1xuXG4gICAgICB2YXIgcHJvcGVydHkgPSBTdXJ2ZXkuU2VyaWFsaXplci5maW5kUHJvcGVydHkoXG4gICAgICAgIHBhcmFtcy50YXJnZXQuZ2V0VHlwZSgpLFxuICAgICAgICBwYXJhbXMubmFtZVxuICAgICAgKTtcbiAgICAgIG1vZGVsLnZhbHVlQ2hhbmdlZCA9IChuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBpZiAocXVlc3Rpb24ucmF0ZVZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCByYXRlVmFsdWVzID0gcXVlc3Rpb24udmlzaWJsZVJhdGVWYWx1ZXM7XG4gICAgICAgICAgdmFyIGluZGV4ID0gcmF0ZVZhbHVlc1xuICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSlcbiAgICAgICAgICAgIC5pbmRleE9mKHBhcmFtcy5pdGVtLnZhbHVlKTtcbiAgICAgICAgICByYXRlVmFsdWVzW2luZGV4XVtwYXJhbXMubmFtZV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgICBxdWVzdGlvbi5yYXRlVmFsdWVzID0gcmF0ZVZhbHVlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJhbXMudGFyZ2V0W3BhcmFtcy5uYW1lXSA9IG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtcy5lZGl0b3Iub25RdWVzdGlvbkVkaXRvckNoYW5nZWQocXVlc3Rpb24pO1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH07XG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuXG52YXIgY3JlYXRlQWRkSXRlbUhhbmRsZXIgPSAoXG4gIHF1ZXN0aW9uOiBTdXJ2ZXkuUXVlc3Rpb25SYXRpbmcsXG4gIG9uSXRlbUFkZGVkOiAoaXRlbVZhbHVlOiBTdXJ2ZXkuSXRlbVZhbHVlKSA9PiB2b2lkLFxuICBvbkl0ZW1BZGRpbmc6IChpdGVtVmFsdWU6IFN1cnZleS5JdGVtVmFsdWUpID0+IHZvaWQgPSBudWxsXG4pID0+ICgpID0+IHtcbiAgaWYgKHF1ZXN0aW9uLnJhdGVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcXVlc3Rpb24ucmF0ZU1heCArPSBxdWVzdGlvbi5yYXRlU3RlcDtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbmV4dFZhbHVlID0gbnVsbDtcbiAgICB2YXIgdmFsdWVzID0gcXVlc3Rpb24ucmF0ZVZhbHVlcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICAgIH0pO1xuICAgIHZhciBpdGVtVGV4dCA9IFN1cnZleS5zdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiY2hvaWNlc19JdGVtXCIpO1xuICAgIG5leHRWYWx1ZSA9IGdldE5leHRWYWx1ZShpdGVtVGV4dCwgdmFsdWVzKTtcblxuICAgIHZhciBpdGVtVmFsdWUgPSBuZXcgU3VydmV5Lkl0ZW1WYWx1ZShuZXh0VmFsdWUpO1xuICAgICEhb25JdGVtQWRkaW5nICYmIG9uSXRlbUFkZGluZyhpdGVtVmFsdWUpO1xuICAgIGl0ZW1WYWx1ZS5sb2NPd25lciA9IDxhbnk+e1xuICAgICAgZ2V0TG9jYWxlOiAoKSA9PiB7XG4gICAgICAgIGlmICghIXF1ZXN0aW9uW1wiZ2V0TG9jYWxlXCJdKSByZXR1cm4gcXVlc3Rpb24uZ2V0TG9jYWxlKCk7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfSxcbiAgICAgIGdldE1hcmtkb3duSHRtbDogKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgIH0sXG4gICAgICBnZXRQcm9jZXNzZWRUZXh0OiAodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgfSxcbiAgICB9O1xuICAgIHF1ZXN0aW9uLnJhdGVWYWx1ZXMgPSBxdWVzdGlvbi5yYXRlVmFsdWVzLmNvbmNhdChbaXRlbVZhbHVlXSk7XG4gIH1cbiAgISFvbkl0ZW1BZGRlZCAmJiBvbkl0ZW1BZGRlZChpdGVtVmFsdWUpO1xufTtcblxuZXhwb3J0IHZhciByYXRpbmdJdGVtQWRvcm5lciA9IHtcbiAgZ2V0TWFya2VyQ2xhc3M6IChtb2RlbCkgPT4ge1xuICAgIHJldHVybiAhIW1vZGVsLnBhcmVudCAmJiAhIW1vZGVsLnZpc2libGVSYXRlVmFsdWVzID8gXCJpdGVtX2VkaXRhYmxlXCIgOiBcIlwiO1xuICB9LFxuICBnZXRFbGVtZW50TmFtZTogKG1vZGVsKSA9PiBcIml0ZW1UZXh0XCIsXG4gIGFmdGVyUmVuZGVyOiAoXG4gICAgZWxlbWVudHM6IEhUTUxFbGVtZW50W10sXG4gICAgbW9kZWw6IFN1cnZleS5RdWVzdGlvblJhdGluZyxcbiAgICBlZGl0b3JcbiAgKSA9PiB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgZWxlbWVudHNbaV0ub25jbGljayA9IChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB2YXIgZGVjb3JhdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgZGVjb3JhdGlvbi5pbm5lckhUTUwgPVxuICAgICAgICBcIjxyYXRpbmctaXRlbS1lZGl0b3IgcGFyYW1zPSduYW1lOiBcXFwidGV4dFxcXCIsIHRhcmdldDogdGFyZ2V0LCBpdGVtOiBpdGVtLCBxdWVzdGlvbjogcXVlc3Rpb24sIGVkaXRvcjogZWRpdG9yJz48L3JhdGluZy1pdGVtLWVkaXRvcj5cIjtcbiAgICAgIGVsZW1lbnRzW2ldLmFwcGVuZENoaWxkKGRlY29yYXRpb24pO1xuICAgICAgdmFyIGl0ZW0gPSBtb2RlbC52aXNpYmxlUmF0ZVZhbHVlc1tpXTtcbiAgICAgIGtvLmFwcGx5QmluZGluZ3MoXG4gICAgICAgIHtcbiAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgIHF1ZXN0aW9uOiBtb2RlbCxcbiAgICAgICAgICB0YXJnZXQ6IGl0ZW0sXG4gICAgICAgICAgZWRpdG9yOiBlZGl0b3IsXG4gICAgICAgIH0sXG4gICAgICAgIGRlY29yYXRpb25cbiAgICAgICk7XG4gICAgICBlZGl0b3Iub25BZG9ybmVyUmVuZGVyZWRDYWxsYmFjayhtb2RlbCwgXCJyYXRpbmctaXRlbVwiLCBkZWNvcmF0aW9uLCBpdGVtKTtcbiAgICB9XG5cbiAgICB2YXIgYWRkTmV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgYWRkTmV3LnRpdGxlID0gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcInBlLmFkZEl0ZW1cIik7XG4gICAgYWRkTmV3LmNsYXNzTmFtZSA9XG4gICAgICBcInN2ZGEtYWRkLW5ldy1yYXRpbmctaXRlbSBpY29uLWlucGxhY2UtYWRkLWl0ZW0gc3ZkLXByaW1hcnktaWNvblwiO1xuICAgIGFkZE5ldy5vbmNsaWNrID0gY3JlYXRlQWRkSXRlbUhhbmRsZXIoXG4gICAgICBtb2RlbCxcbiAgICAgIChpdGVtVmFsdWUpID0+IHtcbiAgICAgICAgZWRpdG9yLm9uUXVlc3Rpb25FZGl0b3JDaGFuZ2VkKG1vZGVsKTtcbiAgICAgICAgZWRpdG9yLm9uSXRlbVZhbHVlQWRkZWRDYWxsYmFjayhcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICBcInJhdGVWYWx1ZXNcIixcbiAgICAgICAgICBpdGVtVmFsdWUsXG4gICAgICAgICAgbW9kZWwudmlzaWJsZVJhdGVWYWx1ZXNcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICAoaXRlbVZhbHVlKSA9PiB7XG4gICAgICAgIGVkaXRvci5vbkl0ZW1WYWx1ZUFkZGVkQ2FsbGJhY2soXG4gICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgXCJyYXRlVmFsdWVzXCIsXG4gICAgICAgICAgaXRlbVZhbHVlLFxuICAgICAgICAgIG1vZGVsLnZpc2libGVSYXRlVmFsdWVzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgKTtcbiAgICB2YXIgc3ZnRWxlbTogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgICAgXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgXCJzdmdcIlxuICAgICk7XG4gICAgc3ZnRWxlbS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBcInN2ZC1zdmctaWNvblwiKTtcbiAgICBzdmdFbGVtLnN0eWxlLndpZHRoID0gXCIxMnB4XCI7XG4gICAgc3ZnRWxlbS5zdHlsZS5oZWlnaHQgPSBcIjEycHhcIjtcbiAgICB2YXIgdXNlRWxlbTogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgICAgXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgXCJ1c2VcIlxuICAgICk7XG4gICAgdXNlRWxlbS5zZXRBdHRyaWJ1dGVOUyhcbiAgICAgIFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICAgICAgXCJ4bGluazpocmVmXCIsXG4gICAgICBcIiNpY29uLWlucGxhY2VwbHVzXCJcbiAgICApO1xuICAgIHN2Z0VsZW0uYXBwZW5kQ2hpbGQodXNlRWxlbSk7XG4gICAgYWRkTmV3LmFwcGVuZENoaWxkKHN2Z0VsZW0pO1xuXG4gICAgdmFyIHBhcmVudCA9IGVsZW1lbnRzWzBdLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoYWRkTmV3KTtcbiAgfSxcbn07XG5cbnJlZ2lzdGVyQWRvcm5lcihcInJhdGluZy1pdGVtXCIsIHJhdGluZ0l0ZW1BZG9ybmVyKTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IFwiLi9zZWxlY3QtaXRlbXMtZWRpdG9yLnNjc3NcIjtcbmltcG9ydCB7IFF1ZXN0aW9uU2VsZWN0QmFzZSB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IHNlbGVjdEl0ZW1zQWRvcm5lciB9IGZyb20gXCIuL3NlbGVjdC1pdGVtc1wiO1xuXG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcImh0bWwtbG9hZGVyP2ludGVycG9sYXRlIXZhbC1sb2FkZXIhLi9zZWxlY3QtaXRlbXMtZGlzcGxheS5odG1sXCIpO1xuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic2VsZWN0LWl0ZW1zLWRpc3BsYXlcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBpc0V4cGFuZGVkID0ga28ub2JzZXJ2YWJsZShzZWxlY3RJdGVtc0Fkb3JuZXIuaXNFeHBhbmRlZCk7XG4gICAgICB2YXIgY2hvaWNlcyA9IGtvLm9ic2VydmFibGVBcnJheShwYXJhbXMucXVlc3Rpb24uY2hvaWNlcyk7XG4gICAgICB2YXIgb3RoZXJUZXh0ID0ga28ub2JzZXJ2YWJsZShwYXJhbXMucXVlc3Rpb24ub3RoZXJUZXh0KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNob2ljZXM6IGNob2ljZXMsXG4gICAgICAgIHF1ZXN0aW9uOiBwYXJhbXMucXVlc3Rpb24sXG4gICAgICAgIGVkaXRvcjogcGFyYW1zLmVkaXRvcixcbiAgICAgICAgaXNFeHBhbmRlZDogaXNFeHBhbmRlZCxcbiAgICAgICAgdG9nZ2xlOiAoKSA9PiBpc0V4cGFuZGVkKCFpc0V4cGFuZGVkKCkpLFxuICAgICAgICBnZXRMb2NTdHJpbmc6IHN0ciA9PiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKHN0ciksXG4gICAgICAgIG90aGVyVGV4dDogb3RoZXJUZXh0XG4gICAgICB9O1xuICAgIH1cbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbFxufSk7XG5cbmV4cG9ydCB2YXIgcmVuZGVyRGlzcGxheU1vZGUgPSAoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIG1vZGVsOiBRdWVzdGlvblNlbGVjdEJhc2UsIGVkaXRvcikgPT4ge1xuICBlbGVtZW50c1swXS5vbmNsaWNrID0gZSA9PiBlLnByZXZlbnREZWZhdWx0KCk7XG4gIHZhciBkZWNvcmF0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgZGVjb3JhdGlvbi5pbm5lckhUTUwgPVxuICAgICAgXCI8c2VsZWN0LWl0ZW1zLWRpc3BsYXkgcGFyYW1zPSdxdWVzdGlvbjogcXVlc3Rpb24sIGVkaXRvcjogZWRpdG9yJz48L3NlbGVjdC1pdGVtcy1kaXNwbGF5PlwiO1xuICBlbGVtZW50c1swXS5hcHBlbmRDaGlsZChkZWNvcmF0aW9uKTtcbiAga28uYXBwbHlCaW5kaW5ncyhcbiAgICB7XG4gICAgICBxdWVzdGlvbjogbW9kZWwsXG4gICAgICBlZGl0b3I6IGVkaXRvclxuICAgIH0sXG4gICAgZGVjb3JhdGlvblxuICApO1xuICBlZGl0b3Iub25BZG9ybmVyUmVuZGVyZWRDYWxsYmFjayhtb2RlbCwgXCJzZWxlY3QtY2hvaWNlc1wiLCBkZWNvcmF0aW9uKTtcbn07XG5cbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCBTb3J0YWJsZSBmcm9tIFwiLi4vLi4vdmVuZG9yL3NvcnRhYmxlXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBjcmVhdGVBZGRJdGVtSGFuZGxlciwgaXRlbUFkb3JuZXIgfSBmcm9tIFwiLi9pdGVtLWVkaXRvclwiO1xuaW1wb3J0IHsgc2VsZWN0SXRlbXNBZG9ybmVyIH0gZnJvbSBcIi4vc2VsZWN0LWl0ZW1zXCI7XG5pbXBvcnQgXCIuL3NlbGVjdC1pdGVtcy1lZGl0b3Iuc2Nzc1wiO1xuaW1wb3J0IHsgUXVlc3Rpb25TZWxlY3RCYXNlIH0gZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xudmFyIHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCJodG1sLWxvYWRlcj9pbnRlcnBvbGF0ZSF2YWwtbG9hZGVyIS4vc2VsZWN0LWl0ZW1zLWVkaXRvci5odG1sXCIpO1xuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic2VsZWN0LWl0ZW1zLWVkaXRvclwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgdmFyIGlzRXhwYW5kZWQgPSBrby5vYnNlcnZhYmxlKHNlbGVjdEl0ZW1zQWRvcm5lci5pc0V4cGFuZGVkKTtcbiAgICAgIHZhciBjaG9pY2VzID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gICAgICBrby5jb21wdXRlZCgoKSA9PiB7IGNob2ljZXMocGFyYW1zLnF1ZXN0aW9uLmNob2ljZXMpOyB9KTtcbiAgICAgIHZhciBvdGhlclRleHQgPSBrby5vYnNlcnZhYmxlKHBhcmFtcy5xdWVzdGlvbi5vdGhlclRleHQpO1xuICAgICAgdmFyIG5vbmVUZXh0ID0ga28ub2JzZXJ2YWJsZShwYXJhbXMucXVlc3Rpb24ubm9uZVRleHQpO1xuICAgICAgdmFyIHNvcnRhYmxlRWxlbWVudCA9IGNvbXBvbmVudEluZm8uZWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXG4gICAgICAgIFwic3ZkYS1zZWxlY3QtaXRlbXMtY29sbGVjdGlvblwiXG4gICAgICApWzBdO1xuICAgICAgdmFyIHNvcnRhYmxlID0gbnVsbDtcbiAgICAgIC8vIHZhciBwcm9wZXJ0eSA9IFN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShcbiAgICAgIC8vICAgcGFyYW1zLnF1ZXN0aW9uLmdldFR5cGUoKSxcbiAgICAgIC8vICAgXCJjaG9pY2VzXCJcbiAgICAgIC8vICk7XG4gICAgICB2YXIgcmFpc2VDaGFuZ2luZ0V2ZW50ID0gKFxuICAgICAgICB0YXJnZXQ6IGFueSxcbiAgICAgICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgICAgIG5ld1ZhbHVlOiBhbnlcbiAgICAgICkgPT4ge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBvYmo6IHRhcmdldCxcbiAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgICAgbmV3VmFsdWU6IG51bGwsXG4gICAgICAgICAgZG9WYWxpZGF0aW9uOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICBwYXJhbXMuZWRpdG9yLm9uVmFsdWVDaGFuZ2luZ0NhbGxiYWNrKG9wdGlvbnMpO1xuICAgICAgICBuZXdWYWx1ZSA9IG9wdGlvbnMubmV3VmFsdWUgPT09IG51bGwgPyBvcHRpb25zLnZhbHVlIDogb3B0aW9ucy5uZXdWYWx1ZTtcbiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xuICAgICAgfTtcbiAgICAgIHZhciByYWlzZUNoYW5nZWRFdmVudCA9IChcbiAgICAgICAgdGFyZ2V0OiBhbnksXG4gICAgICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgICAgICBuZXdWYWx1ZTogYW55XG4gICAgICApID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgICAgICAgdGFyZ2V0LmdldFR5cGUoKSxcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcGFyYW1zLmVkaXRvci5vblByb3BlcnR5VmFsdWVDaGFuZ2VkKHByb3BlcnR5LCB0YXJnZXQsIG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNob2ljZXM6IGNob2ljZXMsXG4gICAgICAgIHZhbHVlTmFtZTogcGFyYW1zLnZhbHVlTmFtZSxcbiAgICAgICAgcXVlc3Rpb246IHBhcmFtcy5xdWVzdGlvbixcbiAgICAgICAgZWRpdG9yOiBwYXJhbXMuZWRpdG9yLFxuICAgICAgICBpc0V4cGFuZGVkOiBpc0V4cGFuZGVkLFxuICAgICAgICB0b2dnbGU6ICgpID0+IGlzRXhwYW5kZWQoIWlzRXhwYW5kZWQoKSksXG4gICAgICAgIHNob3dPdGhlcjoga28uY29tcHV0ZWQoXG4gICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIHBhcmFtcy5lZGl0b3IuY2FuU2hvd09iamVjdFByb3BlcnR5KHBhcmFtcy5xdWVzdGlvbiwgXCJzaG93T3RoZXJJdGVtXCIpICYmXG4gICAgICAgICAgICBwYXJhbXMucXVlc3Rpb24uaGFzT3RoZXIgIT09IHRydWVcbiAgICAgICAgKSxcbiAgICAgICAgYWRkT3RoZXI6ICgpID0+IHtcbiAgICAgICAgICB2YXIgbmV3VmFsdWUgPSAhcGFyYW1zLnF1ZXN0aW9uLmhhc090aGVyO1xuICAgICAgICAgIG5ld1ZhbHVlID0gcmFpc2VDaGFuZ2luZ0V2ZW50KHBhcmFtcy5xdWVzdGlvbiwgXCJzaG93T3RoZXJJdGVtXCIsIG5ld1ZhbHVlKTtcbiAgICAgICAgICBwYXJhbXMucXVlc3Rpb24uaGFzT3RoZXIgPSBuZXdWYWx1ZTtcbiAgICAgICAgICByYWlzZUNoYW5nZWRFdmVudChwYXJhbXMucXVlc3Rpb24sIFwic2hvd090aGVySXRlbVwiLCBuZXdWYWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHNob3dOb25lOiBrby5jb21wdXRlZChcbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgcGFyYW1zLmVkaXRvci5jYW5TaG93T2JqZWN0UHJvcGVydHkocGFyYW1zLnF1ZXN0aW9uLCBcInNob3dOb25lSXRlbVwiKSAmJlxuICAgICAgICAgICAgcGFyYW1zLnF1ZXN0aW9uLmhhc05vbmUgIT09IHRydWVcbiAgICAgICAgKSxcbiAgICAgICAgYWRkTm9uZTogKCkgPT4ge1xuICAgICAgICAgIHZhciBuZXdWYWx1ZSA9ICFwYXJhbXMucXVlc3Rpb24uaGFzTm9uZTtcbiAgICAgICAgICBuZXdWYWx1ZSA9IHJhaXNlQ2hhbmdpbmdFdmVudChwYXJhbXMucXVlc3Rpb24sIFwic2hvd05vbmVJdGVtXCIsIG5ld1ZhbHVlKTtcbiAgICAgICAgICBwYXJhbXMucXVlc3Rpb24uaGFzTm9uZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgIHJhaXNlQ2hhbmdlZEV2ZW50KHBhcmFtcy5xdWVzdGlvbiwgXCJzaG93Tm9uZUl0ZW1cIiwgbmV3VmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBhZGRJdGVtOiBjcmVhdGVBZGRJdGVtSGFuZGxlcihcbiAgICAgICAgICBwYXJhbXMucXVlc3Rpb24sXG4gICAgICAgICAgaXRlbVZhbHVlID0+IHtcbiAgICAgICAgICAgIC8vIHZhciBvcHRpb25zID0ge1xuICAgICAgICAgICAgLy8gICBwcm9wZXJ0eU5hbWU6IFwiY2hvaWNlc1wiLFxuICAgICAgICAgICAgLy8gICBvYmo6IHBhcmFtcy5xdWVzdGlvbixcbiAgICAgICAgICAgIC8vICAgdmFsdWU6IHBhcmFtcy5xdWVzdGlvbi5jaG9pY2VzLFxuICAgICAgICAgICAgLy8gICBuZXdWYWx1ZTogbnVsbCxcbiAgICAgICAgICAgIC8vICAgZG9WYWxpZGF0aW9uOiBmYWxzZVxuICAgICAgICAgICAgLy8gfTtcbiAgICAgICAgICAgIC8vIHBhcmFtcy5lZGl0b3Iub25WYWx1ZUNoYW5naW5nQ2FsbGJhY2sob3B0aW9ucyk7XG4gICAgICAgICAgICAvL2Nob2ljZXMocGFyYW1zLnF1ZXN0aW9uLmNob2ljZXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaXRlbVZhbHVlID0+IHtcbiAgICAgICAgICAgIHBhcmFtcy5lZGl0b3Iub25JdGVtVmFsdWVBZGRlZENhbGxiYWNrKFxuICAgICAgICAgICAgICBwYXJhbXMucXVlc3Rpb24sXG4gICAgICAgICAgICAgIFwiY2hvaWNlc1wiLFxuICAgICAgICAgICAgICBpdGVtVmFsdWUsXG4gICAgICAgICAgICAgIHBhcmFtcy5xdWVzdGlvbi5jaG9pY2VzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLy8gcGFyYW1zLmVkaXRvci5vblByb3BlcnR5VmFsdWVDaGFuZ2VkKFxuICAgICAgICAgICAgLy8gICBwcm9wZXJ0eSxcbiAgICAgICAgICAgIC8vICAgcGFyYW1zLnF1ZXN0aW9uLFxuICAgICAgICAgICAgLy8gICBwYXJhbXMucXVlc3Rpb24uY2hvaWNlc1xuICAgICAgICAgICAgLy8gKTtcbiAgICAgICAgICAgIHBhcmFtcy5lZGl0b3Iub25RdWVzdGlvbkVkaXRvckNoYW5nZWQocGFyYW1zLnF1ZXN0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIGdldExvY1N0cmluZzogc3RyID0+IGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoc3RyKSxcbiAgICAgICAgY2hvaWNlc1JlbmRlcmVkOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKHNvcnRhYmxlKSB7XG4gICAgICAgICAgICBzb3J0YWJsZS5kZXN0cm95KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNvcnRhYmxlID0gU29ydGFibGUuY3JlYXRlKHNvcnRhYmxlRWxlbWVudCwge1xuICAgICAgICAgICAgaGFuZGxlOiBcIi5zdmRhLWRyYWctaGFuZGxlXCIsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IFwiLml0ZW1fZHJhZ2dhYmxlXCIsXG4gICAgICAgICAgICBhbmltYXRpb246IDE1MCxcbiAgICAgICAgICAgIG9uRW5kOiBldnQgPT4ge1xuICAgICAgICAgICAgICB2YXIgbmV3Q2hvaWNlcyA9IFtdLmNvbmNhdChwYXJhbXMucXVlc3Rpb24uY2hvaWNlcyk7XG4gICAgICAgICAgICAgIHZhciBjaG9pY2UgPSBuZXdDaG9pY2VzW2V2dC5vbGRJbmRleF07XG4gICAgICAgICAgICAgIG5ld0Nob2ljZXMuc3BsaWNlKGV2dC5vbGRJbmRleCwgMSk7XG4gICAgICAgICAgICAgIG5ld0Nob2ljZXMuc3BsaWNlKGV2dC5uZXdJbmRleCwgMCwgY2hvaWNlKTtcbiAgICAgICAgICAgICAgcGFyYW1zLnF1ZXN0aW9uLmNob2ljZXMgPSBuZXdDaG9pY2VzO1xuICAgICAgICAgICAgICAvL2Nob2ljZXMobmV3Q2hvaWNlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlQ2hhbmdlZDogKGl0ZW1WYWx1ZSwgcHJvcGVydHlOYW1lLCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICAgIHZhciBuZXdDaG9pY2VzID0gW10uY29uY2F0KHBhcmFtcy5xdWVzdGlvbi5jaG9pY2VzKTtcbiAgICAgICAgICBjaG9pY2VzKFtdKTtcbiAgICAgICAgICBjaG9pY2VzKG5ld0Nob2ljZXMpO1xuICAgICAgICAgIHBhcmFtcy5lZGl0b3Iub25BZG9ybmVyUmVuZGVyZWRDYWxsYmFjayhcbiAgICAgICAgICAgIHBhcmFtcy5xdWVzdGlvbixcbiAgICAgICAgICAgIFwic2VsZWN0LWNob2ljZXNcIixcbiAgICAgICAgICAgIGNvbXBvbmVudEluZm8uZWxlbWVudFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIG90aGVyVGV4dDogb3RoZXJUZXh0LFxuICAgICAgICBvdGhlclZhbHVlQ2hhbmdlZDogKGl0ZW1WYWx1ZSwgcHJvcGVydHlOYW1lLCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICAgIG90aGVyVGV4dChwYXJhbXMucXVlc3Rpb24ub3RoZXJUZXh0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbm9uZVRleHQ6IG5vbmVUZXh0LFxuICAgICAgICBub25lVmFsdWVDaGFuZ2VkOiAoaXRlbVZhbHVlLCBwcm9wZXJ0eU5hbWUsIG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgICAgbm9uZVRleHQocGFyYW1zLnF1ZXN0aW9uLm5vbmVUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWxcbn0pO1xuXG5leHBvcnQgdmFyIHJlbmRlckVkaXRhYmxlSXRlbXMgPSAoXG4gIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLFxuICBtb2RlbDogUXVlc3Rpb25TZWxlY3RCYXNlLFxuICBlZGl0b3JcbikgPT4ge1xuICBlbGVtZW50c1swXS5vbmNsaWNrID0gZSA9PiBlLnByZXZlbnREZWZhdWx0KCk7XG4gIHZhciBkZWNvcmF0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgZGVjb3JhdGlvbi5pbm5lckhUTUwgPVxuICAgIFwiPHNlbGVjdC1pdGVtcy1lZGl0b3IgcGFyYW1zPSdxdWVzdGlvbjogcXVlc3Rpb24sIGVkaXRvcjogZWRpdG9yLCB2YWx1ZU5hbWU6IFxcXCJcIiArXG4gICAgKGl0ZW1BZG9ybmVyLmlucGxhY2VFZGl0Rm9yVmFsdWVzID8gXCJ2YWx1ZVwiIDogXCJ0ZXh0XCIpICtcbiAgICBcIlxcXCInPjwvc2VsZWN0LWl0ZW1zLWVkaXRvcj5cIjtcbiAgZWxlbWVudHNbMF0uYXBwZW5kQ2hpbGQoZGVjb3JhdGlvbik7XG4gIGtvLmFwcGx5QmluZGluZ3MoXG4gICAge1xuICAgICAgcXVlc3Rpb246IG1vZGVsLFxuICAgICAgZWRpdG9yOiBlZGl0b3JcbiAgICB9LFxuICAgIGRlY29yYXRpb25cbiAgKTtcbiAgZWRpdG9yLm9uQWRvcm5lclJlbmRlcmVkQ2FsbGJhY2sobW9kZWwsIFwic2VsZWN0LWNob2ljZXNcIiwgZGVjb3JhdGlvbik7XG59O1xuIiwiaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IHJlbmRlckRpc3BsYXlNb2RlIH0gZnJvbSBcIi4uL2Fkb3JuZXJzL3NlbGVjdC1pdGVtcy1kaXNwbGF5XCI7XG5pbXBvcnQgeyByZW5kZXJFZGl0YWJsZUl0ZW1zIH0gZnJvbSBcIi4uL2Fkb3JuZXJzL3NlbGVjdC1pdGVtcy1lZGl0b3JcIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciB9IGZyb20gXCIuLi9zdXJ2ZXlIZWxwZXJcIjtcbmltcG9ydCB7IHJlZ2lzdGVyQWRvcm5lciB9IGZyb20gXCIuLi9zdXJ2ZXlqc09iamVjdHNcIjtcblxuaW1wb3J0IFwiLi9zZWxlY3QtaXRlbXMtZWRpdG9yLnNjc3NcIjtcblxuZXhwb3J0IHZhciBzZWxlY3RJdGVtc0Fkb3JuZXIgPSB7XG4gIGdldE1hcmtlckNsYXNzOiBtb2RlbCA9PiB7XG4gICAgcmV0dXJuICEhbW9kZWwucGFyZW50ICYmICEhbW9kZWwuY2hvaWNlcyA/IFwic2VsZWN0X2l0ZW1zX2NvbW1vblwiIDogXCJcIjtcbiAgfSxcbiAgZ2V0RWxlbWVudE5hbWU6IG1vZGVsID0+IFwic2VsZWN0V3JhcHBlclwiLFxuICBhZnRlclJlbmRlcjogKGVsZW1lbnRzLCBtb2RlbCwgZWRpdG9yKSA9PiB7XG4gICAgaWYoU3VydmV5SGVscGVyLmlzQ2FuTW9kaWZ5UHJvcGVydHkobW9kZWwsIFwiY2hvaWNlc1wiLCBlZGl0b3IpKVxuICAgICAgcmVuZGVyRWRpdGFibGVJdGVtcyhlbGVtZW50cywgbW9kZWwsIGVkaXRvcik7XG4gICAgZWxzZVxuICAgICAgcmVuZGVyRGlzcGxheU1vZGUoZWxlbWVudHMsIG1vZGVsLCBlZGl0b3IpO1xuICB9LFxuICByZW5kZXJSZWFkT25seTogcmVuZGVyRGlzcGxheU1vZGUsXG4gIGlzRXhwYW5kZWQ6IHRydWVcbn07XG5yZWdpc3RlckFkb3JuZXIoXCJzZWxlY3QtY2hvaWNlc1wiLCBzZWxlY3RJdGVtc0Fkb3JuZXIpO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQge1xuICByZWdpc3RlckFkb3JuZXIsXG4gIFN1cnZleUZvckRlc2lnbmVyLFxuICBJU3VydmV5T2JqZWN0TWVudUl0ZW0sXG59IGZyb20gXCIuLi9zdXJ2ZXlqc09iamVjdHNcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vdGl0bGUtYWN0aW9ucy5zY3NzXCI7XG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcImh0bWwtbG9hZGVyP2ludGVycG9sYXRlIXZhbC1sb2FkZXIhLi90aXRsZS1hY3Rpb25zLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBUaXRsZUFjdGlvbnNWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3VydmV5OiBTdXJ2ZXlGb3JEZXNpZ25lcixcbiAgICBwcm90ZWN0ZWQgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsXG4gICAgcHJvdGVjdGVkIHJvb3RFbGVtZW50LFxuICAgIGFsbG93SW1hZ2VDaG9vc2VyID0gdHJ1ZVxuICApIHtcbiAgICBpZiAoYWxsb3dJbWFnZUNob29zZXIpIHtcbiAgICAgIHRoaXMuYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgbmFtZTogXCJlZGl0ZWxlbWVudFwiLFxuICAgICAgICB2aXNpYmxlOiBrby5jb21wdXRlZCgoKSA9PiBzdXJ2ZXkua29TaG93SGVhZGVyKCkpLFxuICAgICAgICB0ZXh0OiBrby5jb21wdXRlZCgoKSA9PlxuICAgICAgICAgIHRoaXMuZ2V0TG9jU3RyaW5nKFxuICAgICAgICAgICAgc3VydmV5LmlzTG9nb0ltYWdlQ2hvb3NlbigpID8gXCJwZS5jaGFuZ2VMb2dvXCIgOiBcInBlLmFkZExvZ29cIlxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgaGFzVGl0bGU6IHRydWUsXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN1cnZleS5nZXRFZGl0b3IoKS5jaG9vc2VGaWxlcyh0aGlzLmlucHV0LCB0aGlzLnVwbG9hZEZpbGVzKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hY3Rpb25zLnB1c2goPGFueT57XG4gICAgICAgIG5hbWU6IFwic2V0TG9nb1Bvc2l0aW9uXCIsXG4gICAgICAgIHRleHQ6IHRoaXMuZ2V0TG9jU3RyaW5nKFwicGUubG9nb1Bvc2l0aW9uXCIpLFxuICAgICAgICB2aXNpYmxlOiBrby5jb21wdXRlZChcbiAgICAgICAgICAoKSA9PiBzdXJ2ZXkua29TaG93SGVhZGVyKCkgJiYgc3VydmV5LmlzTG9nb0ltYWdlQ2hvb3NlbigpXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiBrby5jb21wdXRlZCgoKSA9PiBzdXJ2ZXkubG9nb1Bvc2l0aW9uKSxcbiAgICAgICAgdGVtcGxhdGU6IFwiY2hvaWNlLWFjdGlvblwiLFxuICAgICAgICBjaG9pY2VzOiBbXG4gICAgICAgICAgeyB2YWx1ZTogXCJub25lXCIsIHRleHQ6IHRoaXMuZ2V0TG9jU3RyaW5nKFwicGUubG9nb1Bvc2l0aW9ucy5ub25lXCIpIH0sXG4gICAgICAgICAgeyB2YWx1ZTogXCJsZWZ0XCIsIHRleHQ6IHRoaXMuZ2V0TG9jU3RyaW5nKFwicGUubG9nb1Bvc2l0aW9ucy5sZWZ0XCIpIH0sXG4gICAgICAgICAgeyB2YWx1ZTogXCJyaWdodFwiLCB0ZXh0OiB0aGlzLmdldExvY1N0cmluZyhcInBlLmxvZ29Qb3NpdGlvbnMucmlnaHRcIikgfSxcbiAgICAgICAgICB7IHZhbHVlOiBcInRvcFwiLCB0ZXh0OiB0aGlzLmdldExvY1N0cmluZyhcInBlLmxvZ29Qb3NpdGlvbnMudG9wXCIpIH0sXG4gICAgICAgICAgeyB2YWx1ZTogXCJib3R0b21cIiwgdGV4dDogdGhpcy5nZXRMb2NTdHJpbmcoXCJwZS5sb2dvUG9zaXRpb25zLmJvdHRvbVwiKSB9LFxuICAgICAgICBdLFxuICAgICAgICBvbkNsaWNrOiAoZGF0YSwgZXZlbnQpID0+IHtcbiAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAgICAgc3VydmV5LmxvZ29Qb3NpdGlvbiA9IG5ld1ZhbHVlO1xuICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgIHN1cnZleS5sb2dvID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoc3VydmV5LmdldEVkaXRvcigpLmFsbG93Q29udHJvbFN1cnZleVRpdGxlVmlzaWJpbGl0eSkge1xuICAgICAgaWYgKGFsbG93SW1hZ2VDaG9vc2VyKSB7XG4gICAgICAgIHRoaXMuYWN0aW9ucy5wdXNoKDxhbnk+e1xuICAgICAgICAgIHZpc2libGU6IGtvLmNvbXB1dGVkKCgpID0+IHN1cnZleS5rb1Nob3dIZWFkZXIoKSksXG4gICAgICAgICAgdGVtcGxhdGU6IFwiYWN0aW9uLXNlcGFyYXRvclwiLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aW9ucy5wdXNoKDxhbnk+e1xuICAgICAgICBuYW1lOiBcInNob3dTdXJ2ZXlUaXRsZVwiLFxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICB0ZXh0OiB0aGlzLmdldExvY1N0cmluZyhcInBlLmV4cGFuZENvbGxhcHNlVGl0bGVcIiksXG4gICAgICAgIGNsYXNzTmFtZTogXCJzdmRhLXRpdGxlLWFjdGlvbl9fc2hvdy1oaWRlXCIsXG4gICAgICAgIGljb246IGtvLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXN1cnZleS5rb1Nob3dIZWFkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiaWNvbi1hcnJvd19kb3duXzEweDEwXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBcImljb24tYXJyb3dfdXBfMTB4MTBcIjtcbiAgICAgICAgfSksXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICBzdXJ2ZXkua29TaG93SGVhZGVyKCFzdXJ2ZXkua29TaG93SGVhZGVyKCkpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGtvLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgIHZhciBoZWFkZXJDb250YWluZXI6IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5yb290RWxlbWVudC5wYXJlbnRFbGVtZW50XG4gICAgICAgIC5wYXJlbnRFbGVtZW50O1xuICAgICAgaWYgKHN1cnZleS5rb1Nob3dIZWFkZXIoKSkge1xuICAgICAgICBoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZShcInN2ZF9zdXJ2ZXlfaGVhZGVyLS1oaWRkZW5cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcInN2ZF9zdXJ2ZXlfaGVhZGVyLS1oaWRkZW5cIik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGxvYWRGaWxlcyA9IChmaWxlczogRmlsZVtdKSA9PiB7XG4gICAgaWYgKCFmaWxlc1swXSkgcmV0dXJuO1xuICAgIHRoaXMuc3VydmV5LmdldEVkaXRvcigpLnVwbG9hZEZpbGVzKGZpbGVzLCAoXywgbGluaykgPT4ge1xuICAgICAgdGhpcy5zdXJ2ZXkubG9nbyA9IGxpbms7XG4gICAgICBpZiAodGhpcy5zdXJ2ZXkubG9nb1Bvc2l0aW9uID09PSBcIm5vbmVcIikge1xuICAgICAgICB0aGlzLnN1cnZleS5sb2dvUG9zaXRpb24gPSBcImxlZnRcIjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMb2NTdHJpbmcoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhzdHIpO1xuICB9XG5cbiAgcHVibGljIGdldFN0eWxlKG1vZGVsOiBJU3VydmV5T2JqZWN0TWVudUl0ZW0pIHtcbiAgICByZXR1cm4ga28udW53cmFwKCg8YW55Pm1vZGVsKS5jbGFzc05hbWUpIHx8IFwiXCI7XG4gIH1cblxuICBwdWJsaWMgZ2V0SWNvbihtb2RlbDogSVN1cnZleU9iamVjdE1lbnVJdGVtKSB7XG4gICAgaWYgKCEhbW9kZWwuaWNvbikge1xuICAgICAgcmV0dXJuIGtvLnVud3JhcCg8YW55Pm1vZGVsLmljb24pO1xuICAgIH1cbiAgICByZXR1cm4gXCJpY29uLWFjdGlvblwiICsgbW9kZWwubmFtZTtcbiAgfVxuXG4gIGFjdGlvbnMgPSBrby5vYnNlcnZhYmxlQXJyYXk8SVN1cnZleU9iamVjdE1lbnVJdGVtPigpO1xufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwidGl0bGUtYWN0aW9uc1wiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgdmFyIG1vZGVsID0gbmV3IFRpdGxlQWN0aW9uc1ZpZXdNb2RlbChcbiAgICAgICAgcGFyYW1zLnN1cnZleSxcbiAgICAgICAgcGFyYW1zLmlucHV0LFxuICAgICAgICBjb21wb25lbnRJbmZvLmVsZW1lbnQsXG4gICAgICAgIHBhcmFtcy5hbGxvd0ltYWdlQ2hvb3NlclxuICAgICAgKTtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCB7IHJlZ2lzdGVyQWRvcm5lciB9IGZyb20gXCIuLi9zdXJ2ZXlqc09iamVjdHNcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuaW1wb3J0IFwiLi90aXRsZS1lZGl0b3Iuc2Nzc1wiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleUNyZWF0b3IgfSBmcm9tIFwiLi4vZWRpdG9yXCI7XG5pbXBvcnQgeyBjcmVhdGVLZXkyY2xpY2sgfSBmcm9tIFwiLi4vdXRpbHMvdXRpbHNcIjtcbnZhciB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiaHRtbC1sb2FkZXI/aW50ZXJwb2xhdGUhdmFsLWxvYWRlciEuL3RpdGxlLWVkaXRvci5odG1sXCIpO1xuXG5jb25zdCBGUklFTkRMWV9QQURESU5HID0gNDI7XG5mdW5jdGlvbiByZXNpemVJbnB1dCh0YXJnZXQpIHtcbiAgaWYgKCF0YXJnZXQuc3R5bGUpIHJldHVybjtcbiAgbGV0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpO1xuICB0YXJnZXQuc3R5bGUud2lkdGggPVxuICAgIGdldFRleHRXaWR0aChcbiAgICAgIHRhcmdldC52YWx1ZSxcbiAgICAgIGNvbXB1dGVkU3R5bGUuZm9udFNpemUgKyBcIiBcIiArIGNvbXB1dGVkU3R5bGUuZm9udEZhbWlseVxuICAgICkgK1xuICAgIEZSSUVORExZX1BBRERJTkcgK1xuICAgIFwicHhcIjtcbn1cblxuLyoqXG4gKiBVc2VzIGNhbnZhcy5tZWFzdXJlVGV4dCB0byBjb21wdXRlIGFuZCByZXR1cm4gdGhlIHdpZHRoIG9mIHRoZSBnaXZlbiB0ZXh0IG9mIGdpdmVuIGZvbnQgaW4gcGl4ZWxzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IFRoZSB0ZXh0IHRvIGJlIHJlbmRlcmVkLlxuICogQHBhcmFtIHtTdHJpbmd9IGZvbnQgVGhlIGNzcyBmb250IGRlc2NyaXB0b3IgdGhhdCB0ZXh0IGlzIHRvIGJlIHJlbmRlcmVkIHdpdGggKGUuZy4gXCJib2xkIDE0cHggdmVyZGFuYVwiKS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzExODI0MS9jYWxjdWxhdGUtdGV4dC13aWR0aC13aXRoLWphdmFzY3JpcHQvMjEwMTUzOTMjMjEwMTUzOTNcbiAqL1xubGV0IGNhY2hlZENhbnZhcztcbmZ1bmN0aW9uIGdldFRleHRXaWR0aCh0ZXh0LCBmb250KSB7XG4gIC8vIHJlLXVzZSBjYW52YXMgb2JqZWN0IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2VcbiAgdmFyIGNhbnZhcyA9XG4gICAgY2FjaGVkQ2FudmFzIHx8IChjYWNoZWRDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpKTtcbiAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICBjb250ZXh0LmZvbnQgPSBmb250O1xuICB2YXIgbWV0cmljcyA9IGNvbnRleHQubWVhc3VyZVRleHQodGV4dCk7XG4gIHJldHVybiBtZXRyaWNzLndpZHRoO1xufVxuXG5leHBvcnQgY2xhc3MgVGl0bGVJbnBsYWNlRWRpdG9yIHtcbiAgcHJpdmF0ZSBfdmFsdWVTdWJzY3JpcHRpb246IGtvLkNvbXB1dGVkO1xuICBwcml2YXRlIGRyYWdnYWJsZUVsZW1lbnQ7XG4gIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5O1xuICBlZGl0aW5nTmFtZSA9IGtvLm9ic2VydmFibGU8c3RyaW5nPigpO1xuICBwcmV2TmFtZSA9IGtvLm9ic2VydmFibGU8c3RyaW5nPigpO1xuICBpc0VkaXRpbmcgPSBrby5vYnNlcnZhYmxlPGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIF9uZWVkU2VsZWN0VGFyZ2V0T25TdGFydEVkaXQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZm9yTmVpYm91cnMoZnVuYzogKGVsOiBIVE1MRWxlbWVudCwgaW5kZXg/OiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5yb290RWxlbWVudCB8fFxuICAgICAgIXRoaXMucm9vdEVsZW1lbnQucGFyZW50RWxlbWVudCB8fFxuICAgICAgIXRoaXMucm9vdEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50XG4gICAgKVxuICAgICAgcmV0dXJuO1xuICAgIHZhciBob2xkZXIgPSB0aGlzLnJvb3RFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhvbGRlci5jaGlsZHJlbi5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIHZhciBlbGVtZW50ID0gaG9sZGVyLmNoaWxkcmVuW2ldO1xuICAgICAgaWYgKGVsZW1lbnQuY2xhc3NOYW1lLmluZGV4T2YoXCJzdmRhLWN1c3RvbS1jb250ZW50XCIpID09PSAtMSkge1xuICAgICAgICBmdW5jKGVsZW1lbnQsIGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25WYWxpZGF0ZVNlbGVjdGVkRWxlbWVudCA9IChjcmVhdG9yLCBvcHRpb25zKSA9PiB7XG4gICAgaWYgKHRoaXMuaGFzRXJyb3JzKCkpIHtcbiAgICAgIG9wdGlvbnMuZXJyb3JzLnB1c2godGhpcy5lcnJvcigpKTtcbiAgICB9XG4gIH07XG5cbiAgZ2V0SW5wdXRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnJvb3RFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaW5wdXRcIilbMF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdGFyZ2V0OiBhbnksXG4gICAgcHJvdGVjdGVkIG5hbWU6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcm9vdEVsZW1lbnQsXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlwiLFxuICAgIHB1YmxpYyBlZGl0b3I6IFN1cnZleUNyZWF0b3JcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiB0YXJnZXQuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aGlzLnByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KHRhcmdldC5nZXRUeXBlKCksIG5hbWUpO1xuICAgICAgdGhpcy5fbmVlZFNlbGVjdFRhcmdldE9uU3RhcnRFZGl0ID0gdGFyZ2V0LmdldFR5cGUoKSA9PT0gXCJzdXJ2ZXlcIjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZVN1YnNjcmlwdGlvbiA9IGtvLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgIC8vVE8gUkVWSUVXIFRISVMgQ1JVVENIXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMucHJvcGVydHkuc2VyaWFsaXphdGlvblByb3BlcnR5ICE9PSB0aGlzLnByb3BlcnR5Lm5hbWUgJiZcbiAgICAgICAgISF0YXJnZXRbdGhpcy5wcm9wZXJ0eS5zZXJpYWxpemF0aW9uUHJvcGVydHldXG4gICAgICApIHtcbiAgICAgICAga28udW53cmFwKHRhcmdldFt0aGlzLnByb3BlcnR5LnNlcmlhbGl6YXRpb25Qcm9wZXJ0eV0ua29SZW5kZXJlZEh0bWwpO1xuICAgICAgfVxuICAgICAgdGhpcy5wcmV2TmFtZShrby51bndyYXAodGFyZ2V0W25hbWVdKSk7XG4gICAgICB0aGlzLmVkaXRpbmdOYW1lKGtvLnVud3JhcCh0YXJnZXRbbmFtZV0pKTtcbiAgICB9KTtcblxuICAgIGlmICghIWVkaXRvciAmJiAhIWVkaXRvci5vblZhbGlkYXRlU2VsZWN0ZWRFbGVtZW50KSB7XG4gICAgICBlZGl0b3Iub25WYWxpZGF0ZVNlbGVjdGVkRWxlbWVudC5hZGQodGhpcy5vblZhbGlkYXRlU2VsZWN0ZWRFbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLmZvck5laWJvdXJzKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgZWxlbWVudC50YWJJbmRleCA9IDA7XG4gICAgICBlbGVtZW50Lm9ua2V5dXAgPSBjcmVhdGVLZXkyY2xpY2soZWxlbWVudCk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgXCJhcmlhLWxhYmVsXCIsXG4gICAgICAgIHRoaXMuZ2V0TG9jU3RyaW5nKFwicGUudGl0bGVLZXlib2FyZEFkb3JuZXJUaXBcIilcbiAgICAgICk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcInJvbGVcIiwgXCJ0ZXh0Ym94XCIpO1xuICAgICAgZWxlbWVudC5vbnBvaW50ZXJkb3duID0gKGUpID0+IHtcbiAgICAgICAgdGhpcy5zdGFydEVkaXQodGhpcywgZSk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBnZXQgbWF4TGVuZ3RoKCkge1xuICAgIGlmIChcbiAgICAgICEhdGhpcy5wcm9wZXJ0eSAmJlxuICAgICAgdGhpcy5wcm9wZXJ0eS5tYXhMZW5ndGggJiZcbiAgICAgIHRoaXMucHJvcGVydHkubWF4TGVuZ3RoID49IDBcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5Lm1heExlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBnZXQgcmVhZE9ubHkoKSB7XG4gICAgaWYgKCEhdGhpcy5wcm9wZXJ0eSAmJiAhIXRoaXMuZWRpdG9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5lZGl0b3Iub25Jc1Byb3BlcnR5UmVhZE9ubHlDYWxsYmFjayhcbiAgICAgICAgdGhpcy50YXJnZXQsXG4gICAgICAgIHRoaXMucHJvcGVydHksXG4gICAgICAgIHRoaXMucHJvcGVydHkucmVhZE9ubHksXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdW5kZWZpbmVkXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YWx1ZUNoYW5nZWQ6IChuZXdWYWw6IGFueSkgPT4gc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXRMb2NTdHJpbmcoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhzdHIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVByZXZOYW1lKCkge1xuICAgIHRoaXMucHJldk5hbWUodGhpcy50YXJnZXRbdGhpcy5uYW1lXSk7XG4gIH1cblxuICBlcnJvciA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gIHB1YmxpYyBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgdmFyIGVycm9yVGV4dCA9IFwiXCI7XG4gICAgdmFyIG5ld1ZhbHVlID0gdGhpcy5lZGl0aW5nTmFtZSgpO1xuICAgIGlmICh0aGlzLnByb3BlcnR5LmlzUmVxdWlyZWQgJiYgIW5ld1ZhbHVlKSB7XG4gICAgICBlcnJvclRleHQgPSBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUucHJvcGVydHlJc0VtcHR5XCIpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAhZXJyb3JUZXh0ICYmXG4gICAgICAhIXRoaXMuZWRpdG9yICYmXG4gICAgICAhIXRoaXMuZWRpdG9yLm9uR2V0RXJyb3JUZXh0T25WYWxpZGF0aW9uQ2FsbGJhY2tcbiAgICApIHtcbiAgICAgIGVycm9yVGV4dCA9IHRoaXMuZWRpdG9yLm9uR2V0RXJyb3JUZXh0T25WYWxpZGF0aW9uQ2FsbGJhY2soXG4gICAgICAgIHRoaXMucHJvcGVydHkubmFtZSxcbiAgICAgICAgdGhpcy50YXJnZXQsXG4gICAgICAgIG5ld1ZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmVycm9yKGVycm9yVGV4dCk7XG4gICAgcmV0dXJuICEhZXJyb3JUZXh0O1xuICB9XG5cbiAgaGlkZUVkaXRvciA9ICgpID0+IHtcbiAgICB0aGlzLmlzRWRpdGluZyhmYWxzZSk7XG4gICAgdGhpcy5mb3JOZWlib3VycygoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gMCAmJiB0eXBlb2YgZWxlbWVudC5mb2N1cyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IGVsZW1lbnQuZGF0YXNldFtcInNqc09sZERpc3BsYXlcIl07XG4gICAgfSk7XG4gIH07XG4gIGZpbmREcmFnZ2FibGVFbGVtZW50KGVsOiBhbnkpOiBhbnkge1xuICAgIHdoaWxlIChlbCkge1xuICAgICAgaWYgKGVsLmRyYWdnYWJsZSkgcmV0dXJuIGVsO1xuICAgICAgZWwgPSBlbC5wYXJlbnROb2RlO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBzdGFydEVkaXQgPSAobW9kZWw6IFRpdGxlSW5wbGFjZUVkaXRvciwgZXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQ29tcG9zaXRpb25TZXNzaW9uT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2hvdWxkQ2xvc2VDb21wb3NpdGlvblNlc3Npb24gPSBmYWxzZTtcbiAgICB0aGlzLmVkaXRvci5zZWxlY3RGcm9tU3RyaW5nRWRpdG9yID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5fbmVlZFNlbGVjdFRhcmdldE9uU3RhcnRFZGl0KSB7XG4gICAgICB0aGlzLmVkaXRvci5zZWxlY3RlZEVsZW1lbnQgPSB0aGlzLnRhcmdldDtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcmV2TmFtZSgpO1xuICAgIHRoaXMuZWRpdGluZ05hbWUodGhpcy5wcmV2TmFtZSgpKTtcbiAgICB0aGlzLmlzRWRpdGluZyh0cnVlKTtcbiAgICB0aGlzLmZvck5laWJvdXJzKChlbGVtZW50KSA9PiB7XG4gICAgICBlbGVtZW50LmRhdGFzZXRbXCJzanNPbGREaXNwbGF5XCJdID0gZWxlbWVudC5zdHlsZS5kaXNwbGF5O1xuICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgfSk7XG4gICAgdmFyIGlucHV0RWxlbWVudCA9IHRoaXMuZ2V0SW5wdXRFbGVtZW50KCk7XG4gICAgdGhpcy5kcmFnZ2FibGVFbGVtZW50ID0gdGhpcy5maW5kRHJhZ2dhYmxlRWxlbWVudChpbnB1dEVsZW1lbnQpO1xuICAgIGlmICghIXRoaXMuZHJhZ2dhYmxlRWxlbWVudCkge1xuICAgICAgdGhpcy5kcmFnZ2FibGVFbGVtZW50LmRyYWdnYWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICBpbnB1dEVsZW1lbnQub25ibHVyID0gKCkgPT4ge1xuICAgICAgaWYgKCEhdGhpcy5kcmFnZ2FibGVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuZHJhZ2dhYmxlRWxlbWVudC5kcmFnZ2FibGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH07XG4gICAgaW5wdXRFbGVtZW50Lm9uZm9jdXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IG1vZGVsLmVkaXRvci5vblRpdGxlSW5wbGFjZUVkaXRvclN0YXJ0RWRpdDtcbiAgICAgIGlmICghIWNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrKGlucHV0RWxlbWVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfTtcbiAgICByZXNpemVJbnB1dChpbnB1dEVsZW1lbnQpO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgfSwgMTApO1xuICB9O1xuICBwb3N0RWRpdCA9ICgpID0+IHtcbiAgICB0aGlzLmVycm9yKFwiXCIpO1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICB0aGlzLmNhbmNlbEVkaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJldk5hbWUoKSAhPT0gdGhpcy5lZGl0aW5nTmFtZSgpKSB7XG4gICAgICBpZiAodGhpcy5oYXNFcnJvcnMoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoISF0aGlzLnZhbHVlQ2hhbmdlZCkge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZCh0aGlzLmVkaXRpbmdOYW1lKCkpO1xuICAgICAgfVxuICAgICAgdGhpcy5wcmV2TmFtZSh0aGlzLmVkaXRpbmdOYW1lKCkpO1xuICAgIH1cbiAgICB0aGlzLmhpZGVFZGl0b3IoKTtcbiAgfTtcbiAgaXNDb21wb3NpdGlvblNlc3Npb25PcGVuID0gZmFsc2U7XG4gIHNob3VsZENsb3NlQ29tcG9zaXRpb25TZXNzaW9uID0gZmFsc2U7XG4gIGNhbmNlbEVkaXQgPSAoKSA9PiB7XG4gICAgdGhpcy5lZGl0aW5nTmFtZSh0aGlzLnByZXZOYW1lKCkpO1xuICAgIHRoaXMuaGlkZUVkaXRvcigpO1xuICB9O1xuICBjb21wb3NpdGlvblN0YXJ0ID0gKG1vZGVsLCBldmVudCkgPT4ge1xuICAgIHRoaXMuaXNDb21wb3NpdGlvblNlc3Npb25PcGVuID0gdHJ1ZTtcbiAgICB0aGlzLnNob3VsZENsb3NlQ29tcG9zaXRpb25TZXNzaW9uID0gZmFsc2U7XG4gIH07XG4gIGNvbXBvc2l0aW9uRW5kID0gKG1vZGVsLCBldmVudCkgPT4ge1xuICAgIHRoaXMuc2hvdWxkQ2xvc2VDb21wb3NpdGlvblNlc3Npb24gPSB0cnVlO1xuICB9O1xuICBuYW1lRWRpdG9yS2V5cHJlc3MgPSAobW9kZWwsIGV2ZW50KSA9PiB7XG4gICAgcmVzaXplSW5wdXQoZXZlbnQudGFyZ2V0KTtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgIGNhc2UgMTM6XG4gICAgICAgIGlmICh0aGlzLmlzQ29tcG9zaXRpb25TZXNzaW9uT3Blbikge1xuICAgICAgICAgIGlmICh0aGlzLnNob3VsZENsb3NlQ29tcG9zaXRpb25TZXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ29tcG9zaXRpb25TZXNzaW9uT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zaG91bGRDbG9zZUNvbXBvc2l0aW9uU2Vzc2lvbiA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvc3RFZGl0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBjYXNlIDI3OlxuICAgICAgICB0aGlzLmNhbmNlbEVkaXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQ2OlxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH07XG4gIG5hbWVFZGl0b3JLZXlkb3duID0gKG1vZGVsLCBldmVudCkgPT4ge1xuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC5rZXlDb2RlID09IDkwIHx8IGV2ZW50LmtleUNvZGUgPT0gODkpKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG4gIGRpc3Bvc2UoKSB7XG4gICAgdGhpcy5mb3JOZWlib3VycygoZWxlbWVudCkgPT4ge1xuICAgICAgZWxlbWVudC5vbnBvaW50ZXJkb3duID0gdW5kZWZpbmVkO1xuICAgICAgZWxlbWVudC5vbmtleXVwID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIHRoaXMuX3ZhbHVlU3Vic2NyaXB0aW9uLmRpc3Bvc2UoKTtcbiAgICBpZiAoISF0aGlzLmVkaXRvciAmJiAhIXRoaXMuZWRpdG9yLm9uVmFsaWRhdGVTZWxlY3RlZEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZWRpdG9yLm9uVmFsaWRhdGVTZWxlY3RlZEVsZW1lbnQucmVtb3ZlKFxuICAgICAgICB0aGlzLm9uVmFsaWRhdGVTZWxlY3RlZEVsZW1lbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJ0aXRsZS1lZGl0b3JcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBtb2RlbCA9IG5ldyBUaXRsZUlucGxhY2VFZGl0b3IoXG4gICAgICAgIHBhcmFtcy5tb2RlbCxcbiAgICAgICAgcGFyYW1zLm5hbWUsXG4gICAgICAgIGNvbXBvbmVudEluZm8uZWxlbWVudCxcbiAgICAgICAgcGFyYW1zLnBsYWNlaG9sZGVyLFxuICAgICAgICBwYXJhbXMuZWRpdG9yXG4gICAgICApO1xuICAgICAgbW9kZWwudmFsdWVDaGFuZ2VkID0gKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICAgIHByb3BlcnR5TmFtZTogbW9kZWwucHJvcGVydHkubmFtZSxcbiAgICAgICAgICBvYmo6IHBhcmFtcy5tb2RlbCxcbiAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgICAgbmV3VmFsdWU6IG51bGwsXG4gICAgICAgICAgZG9WYWxpZGF0aW9uOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgcGFyYW1zLmVkaXRvci5vblZhbHVlQ2hhbmdpbmdDYWxsYmFjayhvcHRpb25zKTtcbiAgICAgICAgbmV3VmFsdWUgPSBvcHRpb25zLm5ld1ZhbHVlID09PSBudWxsID8gb3B0aW9ucy52YWx1ZSA6IG9wdGlvbnMubmV3VmFsdWU7XG4gICAgICAgIHZhciBvbGRWYWx1ZSA9IHBhcmFtcy5tb2RlbFtwYXJhbXMubmFtZV07XG4gICAgICAgIHBhcmFtcy5tb2RlbFtwYXJhbXMubmFtZV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgcGFyYW1zLmVkaXRvci5vblByb3BlcnR5Q2hhbmdlZChwYXJhbXMubW9kZWwsIG1vZGVsLnByb3BlcnR5LCBvbGRWYWx1ZSk7XG4gICAgICAgIHBhcmFtcy5lZGl0b3Iub25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcbiAgICAgICAgICBtb2RlbC5wcm9wZXJ0eSxcbiAgICAgICAgICBwYXJhbXMubW9kZWwsXG4gICAgICAgICAgbmV3VmFsdWVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9O1xuXG4gICAgICBrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGNvbXBvbmVudEluZm8uZWxlbWVudCwgKCkgPT4ge1xuICAgICAgICBtb2RlbC52YWx1ZUNoYW5nZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIG1vZGVsLmRpc3Bvc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuXG5leHBvcnQgdmFyIHRpdGxlQWRvcm5lciA9IHtcbiAgc3VydmV5VGl0bGVFZGl0YWJsZTogdHJ1ZSxcbiAgcGFnZVRpdGxlRWRpdGFibGU6IHRydWUsXG4gIGdldE1hcmtlckNsYXNzOiAobW9kZWwpID0+IHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbW9kZWwuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAoKG1vZGVsLmdldFR5cGUoKSA9PT0gXCJwYWdlXCIgJiYgIXRpdGxlQWRvcm5lci5wYWdlVGl0bGVFZGl0YWJsZSkgfHxcbiAgICAgICAgKG1vZGVsLmdldFR5cGUoKSA9PT0gXCJzdXJ2ZXlcIiAmJiAhdGl0bGVBZG9ybmVyLnN1cnZleVRpdGxlRWRpdGFibGUpIHx8XG4gICAgICAgICFTdXJ2ZXkuU2VyaWFsaXplci5maW5kUHJvcGVydHkobW9kZWwuZ2V0VHlwZSgpLCBcInRpdGxlXCIpKVxuICAgICkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHJldHVybiBcInRpdGxlX2VkaXRhYmxlXCI7XG4gIH0sXG4gIGdldEVsZW1lbnROYW1lOiAobW9kZWwpID0+IFwidGl0bGVcIixcbiAgYWZ0ZXJSZW5kZXI6IChlbGVtZW50czogSFRNTEVsZW1lbnRbXSwgbW9kZWwsIGVkaXRvcikgPT4ge1xuICAgIHZhciBwbGFjZWhvbGRlciA9IFwiXCI7XG4gICAgaWYgKG1vZGVsLmdldFR5cGUoKSA9PT0gXCJzdXJ2ZXlcIikge1xuICAgICAgcGxhY2Vob2xkZXIgPSBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUuc3VydmV5VGl0bGVQbGFjZWhvbGRlclwiKTtcbiAgICB9XG4gICAgaWYgKG1vZGVsLmdldFR5cGUoKSA9PT0gXCJwYWdlXCIpIHtcbiAgICAgIHBsYWNlaG9sZGVyID0gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcInBlLnBhZ2VUaXRsZVBsYWNlaG9sZGVyXCIpO1xuICAgIH1cbiAgICB2YXIgZGVjb3JhdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgIGRlY29yYXRpb24uaW5uZXJIVE1MID0gYDx0aXRsZS1lZGl0b3IgcGFyYW1zPSduYW1lOiBcXFwidGl0bGVcXFwiLCBwbGFjZWhvbGRlcjogXCIke3BsYWNlaG9sZGVyLnJlcGxhY2UoXG4gICAgICBcIidcIixcbiAgICAgIFwiJiMzOTtcIlxuICAgICl9XCIsIG1vZGVsOiBtb2RlbCwgZWRpdG9yOiBlZGl0b3InPjwvdGl0bGUtZWRpdG9yPmA7XG4gICAgZWxlbWVudHNbMF0uYXBwZW5kQ2hpbGQoZGVjb3JhdGlvbik7XG4gICAga28uYXBwbHlCaW5kaW5ncyh7IG1vZGVsOiBtb2RlbCwgZWRpdG9yOiBlZGl0b3IgfSwgZGVjb3JhdGlvbik7XG4gICAgZWRpdG9yLm9uQWRvcm5lclJlbmRlcmVkQ2FsbGJhY2sobW9kZWwsIFwidGl0bGVcIiwgZGVjb3JhdGlvbik7XG4gIH0sXG59O1xucmVnaXN0ZXJBZG9ybmVyKFwidGl0bGVcIiwgdGl0bGVBZG9ybmVyKTtcblxuZXhwb3J0IHZhciBpdGVtVGl0bGVBZG9ybmVyID0ge1xuICBpbnBsYWNlRWRpdEZvck5hbWVzOiBmYWxzZSxcbiAgZ2V0TWFya2VyQ2xhc3M6IChtb2RlbCkgPT4ge1xuICAgIHJldHVybiAhIW1vZGVsLml0ZW1zID8gXCJpdGVtX3RpdGxlX2VkaXRhYmxlIHRpdGxlX2VkaXRhYmxlXCIgOiBcIlwiO1xuICB9LFxuICBnZXRFbGVtZW50TmFtZTogKG1vZGVsKSA9PiBcIml0ZW1UaXRsZVwiLFxuICBhZnRlclJlbmRlcjogKFxuICAgIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLFxuICAgIG1vZGVsOiBTdXJ2ZXkuUXVlc3Rpb25NdWx0aXBsZVRleHQsXG4gICAgZWRpdG9yXG4gICkgPT4ge1xuICAgIHZhciBwcm9wZXJ0eU5hbWUgPSBpdGVtVGl0bGVBZG9ybmVyLmlucGxhY2VFZGl0Rm9yTmFtZXMgPyBcIm5hbWVcIiA6IFwidGl0bGVcIjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVjb3JhdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgZGVjb3JhdGlvbi5pbm5lckhUTUwgPVxuICAgICAgICBcIjx0aXRsZS1lZGl0b3IgcGFyYW1zPSduYW1lOiBcXFwiXCIgK1xuICAgICAgICBwcm9wZXJ0eU5hbWUgK1xuICAgICAgICBcIlxcXCIsIG1vZGVsOiBtb2RlbCwgZWRpdG9yOiBlZGl0b3InPjwvdGl0bGUtZWRpdG9yPlwiO1xuICAgICAgZWxlbWVudHNbaV0uYXBwZW5kQ2hpbGQoZGVjb3JhdGlvbik7XG4gICAgICBrby5hcHBseUJpbmRpbmdzKHsgbW9kZWw6IG1vZGVsLml0ZW1zW2ldLCBlZGl0b3I6IGVkaXRvciB9LCBkZWNvcmF0aW9uKTtcbiAgICAgIGVkaXRvci5vbkFkb3JuZXJSZW5kZXJlZENhbGxiYWNrKFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgXCJpdGVtLXRpdGxlXCIsXG4gICAgICAgIGRlY29yYXRpb24sXG4gICAgICAgIG1vZGVsLml0ZW1zW2ldXG4gICAgICApO1xuICAgIH1cbiAgfSxcbn07XG5yZWdpc3RlckFkb3JuZXIoXCJpdGVtLXRpdGxlXCIsIGl0ZW1UaXRsZUFkb3JuZXIpO1xuXG5leHBvcnQgdmFyIGRlc2NyaXB0aW9uQWRvcm5lciA9IHtcbiAgc3VydmV5RGVzY3JpcHRpb25FZGl0YWJsZTogdHJ1ZSxcbiAgcGFnZURlc2NyaXB0aW9uRWRpdGFibGU6IHRydWUsXG4gIGdldE1hcmtlckNsYXNzOiAobW9kZWwpID0+IHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbW9kZWwuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAoKG1vZGVsLmdldFR5cGUoKSA9PT0gXCJwYWdlXCIgJiZcbiAgICAgICAgIWRlc2NyaXB0aW9uQWRvcm5lci5wYWdlRGVzY3JpcHRpb25FZGl0YWJsZSkgfHxcbiAgICAgICAgKG1vZGVsLmdldFR5cGUoKSA9PT0gXCJzdXJ2ZXlcIiAmJlxuICAgICAgICAgICFkZXNjcmlwdGlvbkFkb3JuZXIuc3VydmV5RGVzY3JpcHRpb25FZGl0YWJsZSkgfHxcbiAgICAgICAgIVN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShtb2RlbC5nZXRUeXBlKCksIFwiZGVzY3JpcHRpb25cIikpXG4gICAgKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiZGVzY3JpcHRpb25fZWRpdGFibGVcIjtcbiAgfSxcbiAgZ2V0RWxlbWVudE5hbWU6IChtb2RlbCkgPT4gXCJkZXNjcmlwdGlvblwiLFxuICBhZnRlclJlbmRlcjogKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCBtb2RlbCwgZWRpdG9yKSA9PiB7XG4gICAgdmFyIHBsYWNlaG9sZGVyID0gXCJcIjtcbiAgICBpZiAobW9kZWwuZ2V0VHlwZSgpID09PSBcInN1cnZleVwiKSB7XG4gICAgICBwbGFjZWhvbGRlciA9IGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXG4gICAgICAgIFwicGUuc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlclwiXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAobW9kZWwuZ2V0VHlwZSgpID09PSBcInBhZ2VcIikge1xuICAgICAgcGxhY2Vob2xkZXIgPSBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFxuICAgICAgICBcInBlLnBhZ2VEZXNjcmlwdGlvblBsYWNlaG9sZGVyXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHZhciBkZWNvcmF0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgZGVjb3JhdGlvbi5pbm5lckhUTUwgPSBgPHRpdGxlLWVkaXRvciBwYXJhbXM9J25hbWU6IFxcXCJkZXNjcmlwdGlvblxcXCIsIHBsYWNlaG9sZGVyOiBcIiR7cGxhY2Vob2xkZXIucmVwbGFjZShcbiAgICAgIFwiJ1wiLFxuICAgICAgXCImIzM5O1wiXG4gICAgKX1cIiwgbW9kZWw6IG1vZGVsLCBlZGl0b3I6IGVkaXRvcic+PC90aXRsZS1lZGl0b3I+YDtcbiAgICBlbGVtZW50c1swXS5hcHBlbmRDaGlsZChkZWNvcmF0aW9uKTtcbiAgICBrby5hcHBseUJpbmRpbmdzKHsgbW9kZWw6IG1vZGVsLCBlZGl0b3I6IGVkaXRvciB9LCBkZWNvcmF0aW9uKTtcbiAgICBlZGl0b3Iub25BZG9ybmVyUmVuZGVyZWRDYWxsYmFjayhtb2RlbCwgXCJkZXNjcmlwdGlvblwiLCBkZWNvcmF0aW9uKTtcbiAgfSxcbn07XG5yZWdpc3RlckFkb3JuZXIoXCJkZXNjcmlwdGlvblwiLCBkZXNjcmlwdGlvbkFkb3JuZXIpO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgeyByZWdpc3RlckFkb3JuZXIsIFN1cnZleUZvckRlc2lnbmVyIH0gZnJvbSBcIi4uL3N1cnZleWpzT2JqZWN0c1wiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcbmltcG9ydCB7IFN1cnZleSB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcblxuZXhwb3J0IHZhciB0aXRsZUltYWdlQWRvcm5lciA9IHtcbiAgaWdub3JlSGlkZGVuTG9nb1Byb3BlcnR5OiBmYWxzZSxcbiAgb25SZWdpc3RlcjogKCkgPT4ge1xuICAgIFN1cnZleUZvckRlc2lnbmVyLmlzVGl0bGVMb2dvRWRpdGFibGUodHJ1ZSk7XG4gIH0sXG4gIG9uVW5yZWdpc3RlcjogKCkgPT4ge1xuICAgIFN1cnZleUZvckRlc2lnbmVyLmlzVGl0bGVMb2dvRWRpdGFibGUoZmFsc2UpO1xuICB9LFxuICBnZXRNYXJrZXJDbGFzczogKG1vZGVsKSA9PiB7XG4gICAgcmV0dXJuIHR5cGVvZiBtb2RlbC5nZXRUeXBlID09PSBcImZ1bmN0aW9uXCIgJiYgbW9kZWwuZ2V0VHlwZSgpID09PSBcInN1cnZleVwiXG4gICAgICA/IFwiaW1hZ2VfZWRpdGFibGVcIlxuICAgICAgOiBcIlwiO1xuICB9LFxuICBnZXRFbGVtZW50TmFtZTogKG1vZGVsKSA9PiBcImxvZ29cIixcbiAgYWZ0ZXJSZW5kZXI6IChcbiAgICBlbGVtZW50czogSFRNTEVsZW1lbnRbXSxcbiAgICBtb2RlbDogU3VydmV5Rm9yRGVzaWduZXIsXG4gICAgZWRpdG9yOiBTdXJ2ZXlDcmVhdG9yXG4gICkgPT4ge1xuICAgIGlmIChlZGl0b3IucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGFsbG93SW1hZ2VDaG9vc2VyID1cbiAgICAgIHRpdGxlSW1hZ2VBZG9ybmVyLmlnbm9yZUhpZGRlbkxvZ29Qcm9wZXJ0eSB8fFxuICAgICAgZWRpdG9yLmNhblNob3dPYmplY3RQcm9wZXJ0eShtb2RlbCwgXCJsb2dvXCIpO1xuICAgIGlmIChhbGxvd0ltYWdlQ2hvb3Nlcikge1xuICAgICAgdmFyIGl0ZW1zUm9vdCA9IGVsZW1lbnRzWzBdO1xuICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuICAgICAgaW5wdXQudHlwZSA9IFwiZmlsZVwiO1xuICAgICAgaW5wdXQuYWNjZXB0ID0gXCJpbWFnZS8qXCI7XG4gICAgICBpbnB1dC5jbGFzc05hbWUgPSBcInN2ZGEtY2hvb3NlLWZpbGVcIjtcbiAgICAgIGlucHV0LnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xuICAgICAgaW5wdXQuc3R5bGUub3BhY2l0eSA9IFwiMFwiO1xuICAgICAgaW5wdXQuc3R5bGUud2lkdGggPSBcIjFweFwiO1xuICAgICAgaW5wdXQuc3R5bGUuaGVpZ2h0ID0gXCIxcHhcIjtcbiAgICAgIGlucHV0LnN0eWxlLm92ZXJmbG93ID0gXCJoaWRkZW5cIjtcbiAgICAgIGl0ZW1zUm9vdC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGlucHV0KTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZWxlbWVudHNbaV0ub25jbGljayA9IChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHZhciBkZWNvcmF0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgICAgIGRlY29yYXRpb24uY2xhc3NOYW1lID0gXCJzdmRhLWFkb3JuZXItcm9vdFwiO1xuICAgICAgICBkZWNvcmF0aW9uLmlubmVySFRNTCA9XG4gICAgICAgICAgXCI8aW1hZ2UtZWRpdG9yIHBhcmFtcz0nbmFtZTogXFxcImxvZ29cXFwiLCB0YXJnZXQ6IHRhcmdldCwgcXVlc3Rpb246IHF1ZXN0aW9uLCBlZGl0b3I6IGVkaXRvciwgaW5wdXQ6IGlucHV0LCBhbGxvd0RlbGV0ZTogdHJ1ZSc+PC9pbWFnZS1lZGl0b3I+XCI7XG4gICAgICAgIGVsZW1lbnRzW2ldLmFwcGVuZENoaWxkKGRlY29yYXRpb24pO1xuXG4gICAgICAgIGtvLmFwcGx5QmluZGluZ3MoXG4gICAgICAgICAge1xuICAgICAgICAgICAgcXVlc3Rpb246IG1vZGVsLFxuICAgICAgICAgICAgdGFyZ2V0OiBtb2RlbCxcbiAgICAgICAgICAgIGVkaXRvcjogZWRpdG9yLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVjb3JhdGlvblxuICAgICAgICApO1xuICAgICAgICBlZGl0b3Iub25BZG9ybmVyUmVuZGVyZWRDYWxsYmFjayhcbiAgICAgICAgICA8YW55Pm1vZGVsLFxuICAgICAgICAgIFwidGl0bGUtaW1hZ2VcIixcbiAgICAgICAgICBkZWNvcmF0aW9uLFxuICAgICAgICAgIG1vZGVsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50cy5sZW5ndGggIT09IDIpIHJldHVybjtcbiAgICAgICAgdmFyIHBvc2l0aW9uID0gbW9kZWwubG9nb1Bvc2l0aW9uO1xuICAgICAgICBlbGVtZW50c1swXS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgIGVsZW1lbnRzWzFdLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICAgICAgaWYgKCFtb2RlbC5pc0xvZ29JbWFnZUNob29zZW4oKSB8fCBwb3NpdGlvbiA9PT0gXCJub25lXCIpIHJldHVybjtcbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSBcImxlZnRcIiB8fCBwb3NpdGlvbiA9PT0gXCJ0b3BcIikge1xuICAgICAgICAgIGVsZW1lbnRzWzBdLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsZW1lbnRzWzFdLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudHNbMF0uc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgZWxlbWVudHNbMV0uc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgIH1cblxuICAgIHZhciBkZWNvcmF0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgZGVjb3JhdGlvbi5jbGFzc05hbWUgPSBcInN2ZGEtdGl0bGUtYWN0aW9uc1wiO1xuICAgIGRlY29yYXRpb24uaW5uZXJIVE1MID1cbiAgICAgIFwiPHRpdGxlLWFjdGlvbnMgcGFyYW1zPSdzdXJ2ZXk6IG1vZGVsLCBpbnB1dDogaW5wdXQsIGFsbG93SW1hZ2VDaG9vc2VyOiBhbGxvd0ltYWdlQ2hvb3Nlcic+PC90aXRsZS1hY3Rpb25zPlwiO1xuICAgIGVsZW1lbnRzWzBdLnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZGVjb3JhdGlvbik7XG4gICAga28uYXBwbHlCaW5kaW5ncyhcbiAgICAgIHsgbW9kZWw6IG1vZGVsLCBpbnB1dDogaW5wdXQsIGFsbG93SW1hZ2VDaG9vc2VyOiBhbGxvd0ltYWdlQ2hvb3NlciB9LFxuICAgICAgZGVjb3JhdGlvblxuICAgICk7XG4gICAgZWRpdG9yLm9uQWRvcm5lclJlbmRlcmVkQ2FsbGJhY2soXG4gICAgICA8YW55Pm1vZGVsLFxuICAgICAgXCJ0aXRsZS1hY3Rpb25zXCIsXG4gICAgICBkZWNvcmF0aW9uLFxuICAgICAgbW9kZWxcbiAgICApO1xuICB9LFxufTtcblxucmVnaXN0ZXJBZG9ybmVyKFwidGl0bGUtaW1hZ2VcIiwgdGl0bGVJbWFnZUFkb3JuZXIpO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmV4cG9ydCBjbGFzcyBDb21tYW5kcyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY3JlYXRvcikge31cblxuICBwcml2YXRlIGNvbW1hbmRzOiB7XG4gICAgW2luZGV4OiBzdHJpbmddOiB7XG4gICAgICBuYW1lPzogc3RyaW5nLFxuICAgICAgaG90S2V5PzogeyBjdHJsS2V5OiBib29sZWFuLCBrZXlDb2RlOiBudW1iZXIgfSxcbiAgICAgIG1hY09zSG90a2V5PzogeyBzaGlmdEtleT86IGJvb2xlYW4sIGtleUNvZGU6IG51bWJlciB9LFxuICAgICAgdG9vbGJhcj86IGFueSxcbiAgICB9LFxuICB9ID0ge1xuICAgIHVuZG86IHtcbiAgICAgIG5hbWU6IFwidW5kb1wiLFxuICAgICAgaG90S2V5OiB7XG4gICAgICAgIGN0cmxLZXk6IHRydWUsXG4gICAgICAgIGtleUNvZGU6IDkwLFxuICAgICAgfSxcbiAgICAgIG1hY09zSG90a2V5OiB7XG4gICAgICAgIGtleUNvZGU6IDkwLFxuICAgICAgfSxcbiAgICAgIHRvb2xiYXI6IHtcbiAgICAgICAgaWQ6IFwic3ZkLXVuZG9cIixcbiAgICAgICAgaWNvbk5hbWU6IFwiaWNvbi1hY3Rpb251bmRvXCIsXG4gICAgICAgIHZpc2libGU6IHRoaXMuY3JlYXRvci5rb0lzU2hvd0Rlc2lnbmVyLFxuICAgICAgICBlbmFibGVkOiB0aGlzLmNyZWF0b3Iua29DYW5VbmRvLFxuICAgICAgICB0aXRsZTogdGhpcy5jcmVhdG9yLmdldExvY1N0cmluZyhcImVkLnVuZG9cIiksXG4gICAgICAgIHRvb2x0aXA6IHRoaXMuY3JlYXRvci5nZXRMb2NTdHJpbmcoXCJlZC51bmRvVG9vbHRpcFwiKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZWRvOiB7XG4gICAgICBuYW1lOiBcInJlZG9cIixcbiAgICAgIGhvdEtleToge1xuICAgICAgICBjdHJsS2V5OiB0cnVlLFxuICAgICAgICBrZXlDb2RlOiA4OSxcbiAgICAgIH0sXG4gICAgICBtYWNPc0hvdGtleToge1xuICAgICAgICBzaGlmdEtleTogdHJ1ZSxcbiAgICAgICAga2V5Q29kZTogOTAsXG4gICAgICB9LFxuICAgICAgdG9vbGJhcjoge1xuICAgICAgICBpZDogXCJzdmQtcmVkb1wiLFxuICAgICAgICBpY29uTmFtZTogXCJpY29uLWFjdGlvbnJlZG9cIixcbiAgICAgICAgdmlzaWJsZTogdGhpcy5jcmVhdG9yLmtvSXNTaG93RGVzaWduZXIsXG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuY3JlYXRvci5rb0NhblJlZG8sXG4gICAgICAgIHRpdGxlOiB0aGlzLmNyZWF0b3IuZ2V0TG9jU3RyaW5nKFwiZWQucmVkb1wiKSxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5jcmVhdG9yLmdldExvY1N0cmluZyhcImVkLnJlZG9Ub29sdGlwXCIpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHN1cnZleVNldHRpbmdzOiB7XG4gICAgICB0b29sYmFyOiB7XG4gICAgICAgIGlkOiBcInN2ZC1zdXJ2ZXktc2V0dGluZ3NcIixcbiAgICAgICAgaWNvbk5hbWU6IFwiaWNvbi1hY3Rpb25zZXR0aW5nc1wiLFxuICAgICAgICB2aXNpYmxlOiB0aGlzLmNyZWF0b3Iua29Jc1Nob3dEZXNpZ25lcixcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jcmVhdG9yLnNlbGVjdGVkRWxlbWVudCA9IHRoaXMuY3JlYXRvci5zdXJ2ZXk7XG4gICAgICAgICAgdGhpcy5jcmVhdG9yLnNob3dRdWVzdGlvbkVkaXRvcih0aGlzLmNyZWF0b3Iuc3VydmV5KTtcbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6IHRoaXMuY3JlYXRvci5nZXRMb2NTdHJpbmcoXCJlZC5zZXR0aW5nc1wiKSxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5jcmVhdG9yLmdldExvY1N0cmluZyhcImVkLnNldHRpbmdzVG9vbHRpcFwiKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB0b29sYmFyT3B0aW9uczoge1xuICAgICAgdG9vbGJhcjoge1xuICAgICAgICBpZDogXCJzdmQtb3B0aW9uc1wiLFxuICAgICAgICB2aXNpYmxlOiBrby5jb21wdXRlZChcbiAgICAgICAgICAoKSA9PiB0aGlzLmNyZWF0b3Iua29Jc1Nob3dEZXNpZ25lcigpICYmIHRoaXMuY3JlYXRvci5rb1Nob3dPcHRpb25zKClcbiAgICAgICAgKSxcbiAgICAgICAgdGl0bGU6IHRoaXMuY3JlYXRvci5nZXRMb2NTdHJpbmcoXCJlZC5vcHRpb25zXCIpLFxuICAgICAgICB0ZW1wbGF0ZTogXCJzdmQtdG9vbGJhci1vcHRpb25zXCIsXG4gICAgICAgIGl0ZW1zOiBrby5vYnNlcnZhYmxlQXJyYXkoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcInN2ZC12YWxpZC1qc29uXCIsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgICAgY3NzOiBrby5jb21wdXRlZCgoKSA9PlxuICAgICAgICAgICAgICB0aGlzLmNyZWF0b3Iua29HZW5lcmF0ZVZhbGlkSlNPTigpID8gXCJhY3RpdmVcIiA6IFwiXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBhY3Rpb246IHRoaXMuY3JlYXRvci5nZW5lcmF0ZVZhbGlkSlNPTkNsaWNrLFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMuY3JlYXRvci5nZXRMb2NTdHJpbmcoXCJlZC5nZW5lcmF0ZVZhbGlkSlNPTlwiKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcInN2ZC1yZWFkYWJsZS1qc29uXCIsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgICAgY3NzOiBrby5jb21wdXRlZCgoKSA9PlxuICAgICAgICAgICAgICAhdGhpcy5jcmVhdG9yLmtvR2VuZXJhdGVWYWxpZEpTT04oKSA/IFwiYWN0aXZlXCIgOiBcIlwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgYWN0aW9uOiB0aGlzLmNyZWF0b3IuZ2VuZXJhdGVSZWFkYWJsZUpTT05DbGljayxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLmNyZWF0b3IuZ2V0TG9jU3RyaW5nKFwiZWQuZ2VuZXJhdGVSZWFkYWJsZUpTT05cIiksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSksXG4gICAgICB9LFxuICAgIH0sXG4gICAgc3VydmV5VGVzdDoge1xuICAgICAgdG9vbGJhcjoge1xuICAgICAgICBpZDogXCJzdmQtdGVzdFwiLFxuICAgICAgICB2aXNpYmxlOiBrby5jb21wdXRlZCgoKSA9PiB0aGlzLmNyZWF0b3Iua29WaWV3VHlwZSgpID09PSBcInRlc3RcIiksXG4gICAgICAgIHRpdGxlOiBrby5jb21wdXRlZChcbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgdGhpcy5jcmVhdG9yLmdldExvY1N0cmluZyhcImVkLnRlc3RTdXJ2ZXlXaWR0aFwiKSArXG4gICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICB0aGlzLmNyZWF0b3Iua29UZXN0U3VydmV5V2lkdGgoKVxuICAgICAgICApLFxuICAgICAgICB0ZW1wbGF0ZTogXCJzdmQtdG9vbGJhci1vcHRpb25zXCIsXG4gICAgICAgIGl0ZW1zOiBrby5vYnNlcnZhYmxlQXJyYXkoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcInN2ZC0xMDAtanNvblwiLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5jcmVhdG9yLmtvVGVzdFN1cnZleVdpZHRoKFwiMTAwJVwiKSxcbiAgICAgICAgICAgIHRpdGxlOiBcIjEwMCVcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcInN2ZC0xMjAwcHgtanNvblwiLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5jcmVhdG9yLmtvVGVzdFN1cnZleVdpZHRoKFwiMTIwMHB4XCIpLFxuICAgICAgICAgICAgdGl0bGU6IFwiMTIwMHB4XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogXCJzdmQtMTAwMHB4LWpzb25cIixcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuY3JlYXRvci5rb1Rlc3RTdXJ2ZXlXaWR0aChcIjEwMDBweFwiKSxcbiAgICAgICAgICAgIHRpdGxlOiBcIjEwMDBweFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFwic3ZkLTgwMHB4LWpzb25cIixcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuY3JlYXRvci5rb1Rlc3RTdXJ2ZXlXaWR0aChcIjgwMHB4XCIpLFxuICAgICAgICAgICAgdGl0bGU6IFwiODAwcHhcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcInN2ZC02MDBweC1qc29uXCIsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmNyZWF0b3Iua29UZXN0U3VydmV5V2lkdGgoXCI2MDBweFwiKSxcbiAgICAgICAgICAgIHRpdGxlOiBcIjYwMHB4XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogXCJzdmQtNDAwcHgtanNvblwiLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5jcmVhdG9yLmtvVGVzdFN1cnZleVdpZHRoKFwiNDAwcHhcIiksXG4gICAgICAgICAgICB0aXRsZTogXCI0MDBweFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHNhdmU6IHtcbiAgICAgIHRvb2xiYXI6IHtcbiAgICAgICAgaWQ6IFwic3ZkLXNhdmVcIixcbiAgICAgICAgdmlzaWJsZTogdGhpcy5jcmVhdG9yLmtvU2hvd1NhdmVCdXR0b24sXG4gICAgICAgIGFjdGlvbjogdGhpcy5jcmVhdG9yLnNhdmVCdXR0b25DbGljayxcbiAgICAgICAgaW5uZXJDc3M6IFwic3ZkX3NhdmVfYnRuXCIsXG4gICAgICAgIHRpdGxlOiB0aGlzLmNyZWF0b3IuZ2V0TG9jU3RyaW5nKFwiZWQuc2F2ZVN1cnZleVwiKSxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5jcmVhdG9yLmdldExvY1N0cmluZyhcImVkLnNhdmVTdXJ2ZXlUb29sdGlwXCIpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHN0YXRlOiA8YW55PntcbiAgICAgIHRvb2xiYXI6IHtcbiAgICAgICAgaWQ6IFwic3ZkLXN0YXRlXCIsXG4gICAgICAgIHZpc2libGU6IHRoaXMuY3JlYXRvci5rb1Nob3dTdGF0ZSxcbiAgICAgICAgY3NzOiBcInN2ZF9zdGF0ZVwiLFxuICAgICAgICBpbm5lckNzczoga28uY29tcHV0ZWQoKCkgPT4gXCJpY29uLVwiICsgdGhpcy5jcmVhdG9yLmtvU3RhdGUoKSksXG4gICAgICAgIHRpdGxlOiBrby5jb21wdXRlZCgoKSA9PlxuICAgICAgICAgIHRoaXMuY3JlYXRvci5nZXRMb2NTdHJpbmcoXCJlZC5cIiArIHRoaXMuY3JlYXRvci5rb1N0YXRlKCkpXG4gICAgICAgICksXG4gICAgICAgIHRlbXBsYXRlOiBcInN2ZC10b29sYmFyLXN0YXRlXCIsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgcHVibGljIGdldENvbW1hbmRzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbW1hbmRzO1xuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPHN2ZC1wcm9wZXJ0eS1lZGl0b3ItZXJyb3IgcGFyYW1zPVxcXCJtb2RlbDptb2RlbFxcXCI+PC9zdmQtcHJvcGVydHktZWRpdG9yLWVycm9yPlxcbjxkaXYgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmRfY3VzdG9tX3NlbGVjdFxcXCI+XFxuICA8c2VsZWN0XFxuICAgIG9ubW91c2V3aGVlbD1cXFwicmV0dXJuIGZhbHNlO1xcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJpZjogdHJ1ZSwgdmFsdWU6IGtvVmFsdWUsIG9wdGlvbnNDYXB0aW9uOiBvcHRpb25zQ2FwdGlvbiwgdmFsdWVBbGxvd1Vuc2V0OiB0cnVlLCBoYXNGb2N1czoga29IYXNGb2N1cywgYXR0cjogeyAnYXJpYS1sYWJlbCc6IG9wdGlvbnNDYXB0aW9uIH1cXFwiXFxuICA+XFxuICAgIDxvcHRpb24gdmFsdWU9XFxcIlxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBvcHRpb25zQ2FwdGlvblxcXCI+PC9vcHRpb24+XFxuICAgIDwhLS0ga28gZm9yZWFjaDoga29FbGVtZW50cyAtLT5cXG4gICAgPG9wdGlvblxcbiAgICAgIGRhdGEtYmluZD1cXFwiYXR0cjogeyBkaXNhYmxlZDoga29EaXNhYmxlZCwgdmFsdWU6IG5hbWUgfSwgdGV4dDp0ZXh0XFxcIlxcbiAgICA+PC9vcHRpb24+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgPC9zZWxlY3Q+XFxuPC9kaXY+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vZWxlbWVudC1zZWxlY3Rvci5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlFbGVtZW50U2VsZWN0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3N1cnZleUVsZW1lbnRTZWxlY3RvclwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vZWxlbWVudC1zZWxlY3Rvci5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgRWxlbWVudFNlbGVjdG9yVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vZGVsOiBTdXJ2ZXlFbGVtZW50U2VsZWN0b3IsXG4gICAgcHVibGljIGtvVmFsdWU6IGFueSxcbiAgICBwdWJsaWMgb3B0aW9uc0NhcHRpb246IHN0cmluZyxcbiAgICBwdWJsaWMga29IYXNGb2N1czogYW55LFxuICAgIHB1YmxpYyBrb0VsZW1lbnRzOiBhbnlcbiAgKSB7fVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLWVsZW1lbnQtc2VsZWN0b3JcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlFbGVtZW50U2VsZWN0b3IgPSBwYXJhbXMubW9kZWw7XG4gICAgICByZXR1cm4gbmV3IEVsZW1lbnRTZWxlY3RvclZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIG1vZGVsLmtvVmFsdWUsXG4gICAgICAgIG1vZGVsLm9wdGlvbnNDYXB0aW9uLFxuICAgICAgICBtb2RlbC5rb0hhc0ZvY3VzLFxuICAgICAgICBtb2RlbC5rb0VsZW1lbnRzXG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5SGVscGVyLCBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZW50cmllc1wiO1xuaW1wb3J0IFwiLi9wYWdlcy1lZGl0b3Iuc2Nzc1wiO1xuaW1wb3J0IHsgUGFnZXNFZGl0b3IgfSBmcm9tIFwiLi4vcGFnZXMtZWRpdG9yXCI7XG5pbXBvcnQgeyBTdHlsZXNNYW5hZ2VyIH0gZnJvbSBcIi4uL3N0eWxlc21hbmFnZXJcIjtcblxudmFyIHRlbXBsYXRlID0gcmVxdWlyZShcImh0bWwtbG9hZGVyP2ludGVycG9sYXRlIXZhbC1sb2FkZXIhLi9wYWdlcy1lZGl0b3IuaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFBhZ2VzRWRpdG9yVmlld01vZGVsIHtcbiAgcHJpdmF0ZSBwYWdlU2VsZWN0aW9uQ2hhbmdlZCA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSB1cGRhdGVTY3JvbGxlciA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpc05lZWRBdXRvU2Nyb2xsID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kZWw6IFBhZ2VzRWRpdG9yLCBwcml2YXRlIGVsZW1lbnQ6IGFueSkge1xuICAgIGlmICghIXRoaXMuZWxlbWVudCAmJiB0eXBlb2YgdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhpcy51cGRhdGVTY3JvbGxlciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdmFyIHBhZ2VzRWxlbWVudDogSFRNTERpdkVsZW1lbnQgPSB0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICBcIi5zdmQtcGFnZXNcIlxuICAgICAgICApO1xuICAgICAgICBpZiAoISFwYWdlc0VsZW1lbnQpIHtcbiAgICAgICAgICB0aGlzLmhhc1Njcm9sbGVyKHBhZ2VzRWxlbWVudC5zY3JvbGxXaWR0aCA+IHBhZ2VzRWxlbWVudC5vZmZzZXRXaWR0aCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMCk7XG5cbiAgICAgIHRoaXMucGFnZVNlbGVjdGlvbkNoYW5nZWQgPSBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmIChtb2RlbC5zZWxlY3RlZFBhZ2UoKSAmJiB0aGlzLmlzTmVlZEF1dG9TY3JvbGwpIHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWRQYWdlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc05lZWRBdXRvU2Nyb2xsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbW92ZUxlZnQobW9kZWwsIGV2ZW50KSB7XG4gICAgdmFyIHBhZ2VzRWxlbWVudCA9IHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnN2ZC1wYWdlc1wiKTtcbiAgICBwYWdlc0VsZW1lbnQuc2Nyb2xsTGVmdCAtPSA1MDtcbiAgICB0aGlzLnVwZGF0ZU1lbnVQb3NpdGlvbigpO1xuICB9XG4gIG1vdmVSaWdodChtb2RlbCwgZXZlbnQpIHtcbiAgICB2YXIgcGFnZXNFbGVtZW50ID0gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc3ZkLXBhZ2VzXCIpO1xuICAgIHBhZ2VzRWxlbWVudC5zY3JvbGxMZWZ0ICs9IDUwO1xuICAgIHRoaXMudXBkYXRlTWVudVBvc2l0aW9uKCk7XG4gIH1cbiAgc2Nyb2xsVG9TZWxlY3RlZFBhZ2UgPSAoKSA9PiB7XG4gICAgdmFyIHBhZ2VzRWxlbWVudDogYW55ID0gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc3ZkLXBhZ2VzXCIpO1xuICAgIGlmICghcGFnZXNFbGVtZW50KSByZXR1cm47XG4gICAgdmFyIGluZGV4ID0gdGhpcy5tb2RlbC5wYWdlcy5pbmRleE9mKHRoaXMubW9kZWwuc2VsZWN0ZWRQYWdlKCkpO1xuICAgIHZhciBwYWdlRWxlbWVudCA9IHBhZ2VzRWxlbWVudC5jaGlsZHJlbltpbmRleF07XG4gICAgaWYgKCFwYWdlRWxlbWVudCkgcmV0dXJuO1xuICAgIHBhZ2VzRWxlbWVudC5zY3JvbGxMZWZ0ID1cbiAgICAgIHBhZ2VFbGVtZW50Lm9mZnNldExlZnQgLVxuICAgICAgcGFnZXNFbGVtZW50Lm9mZnNldExlZnQgLVxuICAgICAgcGFnZXNFbGVtZW50Lm9mZnNldFdpZHRoIC8gMjtcbiAgICB0aGlzLnVwZGF0ZU1lbnVQb3NpdGlvbigpO1xuICB9O1xuXG4gIG9uV2hlZWwobW9kZWwsIGV2ZW50KSB7XG4gICAgdmFyIHBhZ2VzRWxlbWVudCA9IG1vZGVsLmVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5zdmQtcGFnZXNcIik7XG4gICAgZXZlbnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7XG4gICAgaWYgKCEhZXZlbnQub3JpZ2luYWxFdmVudCkge1xuICAgICAgZXZlbnQgPSBldmVudC5vcmlnaW5hbEV2ZW50O1xuICAgIH1cbiAgICB2YXIgZGVsdGEgPSBldmVudC5kZWx0YVkgfHwgZXZlbnQuZGV0YWlsIHx8IGV2ZW50LndoZWVsRGVsdGE7XG4gICAgcGFnZXNFbGVtZW50LnNjcm9sbExlZnQgLT0gZGVsdGE7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQgPyBldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogKGV2ZW50LnJldHVyblZhbHVlID0gZmFsc2UpO1xuICAgIHRoaXMudXBkYXRlTWVudVBvc2l0aW9uKCk7XG4gIH1cblxuICB1cGRhdGVNZW51UG9zaXRpb24oKSB7XG4gICAgdmFyIHBhZ2VzRWxlbWVudCA9IHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnN2ZC1wYWdlc1wiKTtcbiAgICB2YXIgbWVudUVsZW1lbnRzID0gcGFnZXNFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJzdmQtcGFnZS1hY3Rpb25zXCIpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVudUVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBtZW51RWxlbWVudHNbaV0uc3R5bGUubGVmdCA9XG4gICAgICAgIG1lbnVFbGVtZW50c1tpXS5wYXJlbnRFbGVtZW50Lm9mZnNldExlZnQgLVxuICAgICAgICBwYWdlc0VsZW1lbnQuc2Nyb2xsTGVmdCArXG4gICAgICAgIFwicHhcIjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TG9jU3RyaW5nKHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoc3RyKTtcbiAgfVxuXG4gIGdldFBhZ2VDbGFzcyA9IChwYWdlKSA9PiB7XG4gICAgdmFyIHJlc3VsdCA9XG4gICAgICBwYWdlID09PSB0aGlzLm1vZGVsLnNlbGVjdGVkUGFnZSgpXG4gICAgICAgID8gXCJzdmRfc2VsZWN0ZWRfcGFnZSBzdmQtbGlnaHQtYmctY29sb3JcIlxuICAgICAgICA6IFwiXCI7XG5cbiAgICBpZiAodGhpcy5tb2RlbC5wYWdlcy5pbmRleE9mKHBhZ2UpICE9PSB0aGlzLm1vZGVsLnBhZ2VzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHJlc3VsdCArPSBcIiBzdmQtYm9yZGVyLXJpZ2h0LW5vbmVcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIGdldFBhZ2VNZW51SWNvbkNsYXNzID0gKHBhZ2UpID0+IHtcbiAgICB2YXIgYmFzZUljb25OYW1lID1cbiAgICAgIFN0eWxlc01hbmFnZXIuY3VycmVudFRoZW1lKCkgPT09IFwibW9kZXJuXCIgPyBcImRvdHNcIiA6IFwiZ2VhclwiO1xuICAgIHJldHVybiBwYWdlID09PSB0aGlzLm1vZGVsLnNlbGVjdGVkUGFnZSgpICYmIHRoaXMubW9kZWwuaXNBY3RpdmUoKVxuICAgICAgPyBcImljb24tXCIgKyBiYXNlSWNvbk5hbWUgKyBcImFjdGl2ZVwiXG4gICAgICA6IFwiaWNvbi1cIiArIGJhc2VJY29uTmFtZTtcbiAgfTtcblxuICBvblBhZ2VDbGljayA9IChwYWdlTW9kZWwsIGV2ZW50KSA9PiB7XG4gICAgdGhpcy5pc05lZWRBdXRvU2Nyb2xsID0gZmFsc2U7XG4gICAgdGhpcy5tb2RlbC5zZWxlY3RlZFBhZ2UocGFnZU1vZGVsKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnVwZGF0ZU1lbnVQb3NpdGlvbigpO1xuICB9O1xuXG4gIHB1YmxpYyBtb3ZpbmdQYWdlID0gbnVsbDtcbiAgcHJpdmF0ZSBtb3ZlZEZyb206IG51bWJlciA9IC0xO1xuICBnZXQgc29ydGFibGVPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBoYW5kbGU6IFwiLnN2ZC1wYWdlLW5hbWVcIixcbiAgICAgIGFuaW1hdGlvbjogMTUwLFxuICAgICAgb25TdGFydDogKCkgPT4ge1xuICAgICAgICB0aGlzLm1vdmluZ1BhZ2UgPSBudWxsO1xuICAgICAgICB0aGlzLm1vdmVkRnJvbSA9IC0xO1xuICAgICAgICB0aGlzLm1vZGVsLmNyZWF0b3IudW5kb1JlZG9NYW5hZ2VyLnN0YXJ0VHJhbnNhY3Rpb24oXG4gICAgICAgICAgXCJwYWdlcyBkcmFnIGRyb3AgdHJhbnNhY3Rpb25cIlxuICAgICAgICApO1xuICAgICAgICB0aGlzLm1vZGVsLmJsb2NrUGFnZXNSZWJ1aWx0KHRydWUpO1xuICAgICAgfSxcbiAgICAgIG9uRW5kOiAoZXZ0KSA9PiB7XG4gICAgICAgIHRoaXMuaXNOZWVkQXV0b1Njcm9sbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGVsLmJsb2NrUGFnZXNSZWJ1aWx0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5tb2RlbC5jcmVhdG9yLnVuZG9SZWRvTWFuYWdlci5zdG9wVHJhbnNhY3Rpb24oKTtcbiAgICAgICAgaWYgKCEhdGhpcy5tb3ZpbmdQYWdlKSB7XG4gICAgICAgICAgdGhpcy5tb2RlbC5tb3ZlUGFnZSh0aGlzLm1vdmluZ1BhZ2UsIHRoaXMubW92ZWRGcm9tKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9uVXBkYXRlOiAoZXZ0LCBpdGVtVikgPT4ge1xuICAgICAgICB0aGlzLm1vdmluZ1BhZ2UgPSBpdGVtVjtcbiAgICAgICAgaWYgKHRoaXMubW92ZWRGcm9tIDwgMCkge1xuICAgICAgICAgIHRoaXMubW92ZWRGcm9tID0gdGhpcy5tb2RlbC5wYWdlcy5pbmRleE9mKHRoaXMubW92aW5nUGFnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIFN1cnZleUhlbHBlci5tb3ZlSXRlbUluQXJyYXkodGhpcy5tb2RlbC5wYWdlcywgaXRlbVYsIGV2dC5uZXdJbmRleClcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gUmVtb3ZlIHNvcnRhYmxlcyBcInVuYm91bmRcIiBlbGVtZW50XG4gICAgICAgICAgZXZ0Lml0ZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChldnQuaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaGFzU2Nyb2xsZXIgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuICBwdWJsaWMgZGlzcG9zZSgpIHtcbiAgICB0aGlzLnBhZ2VTZWxlY3Rpb25DaGFuZ2VkLmRpc3Bvc2UoKTtcbiAgICBpZiAoISF0aGlzLnVwZGF0ZVNjcm9sbGVyKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMudXBkYXRlU2Nyb2xsZXIpO1xuICAgICAgdGhpcy51cGRhdGVTY3JvbGxlciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wYWdlcy1lZGl0b3JcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBQYWdlc0VkaXRvciA9XG4gICAgICAgIHBhcmFtcy5lZGl0b3IucGFnZXNFZGl0b3JNb2RlbCB8fCBwYXJhbXMuaXRlbS5kYXRhO1xuXG4gICAgICBrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGNvbXBvbmVudEluZm8uZWxlbWVudCwgKCkgPT4ge1xuICAgICAgICBtb2RlbC5kaXNwb3NlKCk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG5ldyBQYWdlc0VkaXRvclZpZXdNb2RlbChtb2RlbCwgY29tcG9uZW50SW5mby5lbGVtZW50KTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGUsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8dHIgZGF0YS1iaW5kPVxcXCJjbGljazogZnVuY3Rpb24oKSB7IGlzTm9kZSAmJiBjb2xsYXBzZWQoIWNvbGxhcHNlZCgpKTsgfVxcXCI+XFxuICAgIDx0ZCBjbGFzcz1cXFwic3ZkLWRhcmstYm9yZGVyLWNvbG9yXFxcIj5cXG4gICAgICAgIDwhLS0ga28gaWY6IGlzTm9kZSAtLT5cXG4gICAgICAgIDxzcGFuIGNsYXNzPVxcXCJzdXJ2ZXktcmVzdWx0LW1hcmtlclxcXCIgZGF0YS1iaW5kPVxcXCJjc3M6IHsgJ3N1cnZleS1yZXN1bHQtbWFya2VyLS1leHBhbmRlZCc6ICFjb2xsYXBzZWQoKSB9XFxcIj7ilrY8L3NwYW4+XFxuICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogdGl0bGVcXFwiPjwvc3Bhbj48L3RkPlxcbiAgICA8dGQgY2xhc3M9XFxcInN2ZC1kYXJrLWJvcmRlci1jb2xvclxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBuYW1lXFxcIj48L3RkPlxcbiAgICA8dGQgY2xhc3M9XFxcInN2ZC1kYXJrLWJvcmRlci1jb2xvclxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdXJ2ZXktcmVzdWx0LXZhbHVlXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IGdldFN0cmluZyh2YWx1ZSlcXFwiPjwvZGl2PlxcbiAgICA8L3RkPlxcbiAgICA8dGQgY2xhc3M9XFxcInN2ZC1kYXJrLWJvcmRlci1jb2xvclxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBnZXRTdHJpbmcoZGlzcGxheVZhbHVlKVxcXCI+PC90ZD5cXG48L3RyPlxcbjwhLS0ga28gaWY6IGlzTm9kZSAmJiAhY29sbGFwc2VkKCkgLS0+XFxuPCEtLSBrbyBmb3JlYWNoOiBkYXRhIC0tPlxcbjwhLS0ga28gY29tcG9uZW50OiB7IG5hbWU6ICdzdXJ2ZXktcmVzdWx0cy10YWJsZS1yb3cnLCBwYXJhbXM6IHsgbW9kZWw6ICRkYXRhIH0gfSAtLT5cXG48IS0tIC9rbyAtLT5cXG48IS0tIC9rbyAtLT5cXG48IS0tIC9rbyAtLT5cIjsiLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwic3ZkX3Rlc3RfcmVzdWx0c1xcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZF9yZXN1bHRzX2hlYWRlclxcXCI+XFxuICAgICAgICA8aDIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBzdXJ2ZXlSZXN1bHRzVGV4dFxcXCI+PC9oMj5cXG4gICAgPC9kaXY+XFxuICAgIDx1bCBjbGFzcz1cXFwibmF2YmFyLWRlZmF1bHQgY29udGFpbmVyLWZsdWlkIG5hdiBuYXYtdGFicyBlZGl0b3ItdGFic1xcXCI+XFxuICAgICAgICA8bGkgY2xhc3M9XFxcIm5hdi1pdGVtIGFjdGl2ZVxcXCIgZGF0YS1iaW5kPVxcXCJjc3M6IHthY3RpdmU6IGtvUmVzdWx0Vmlld1R5cGUoKSA9PT0gJ3RhYmxlJ31cXFwiPlxcbiAgICAgICAgICAgIDxhIGNsYXNzPVxcXCJuYXYtbGlua1xcXCIgaHJlZj1cXFwiI1xcXCJcXG4gICAgICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogc2VsZWN0VGFibGVDbGljaywgdGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdlZC5zdXJ2ZXlSZXN1bHRzVGFibGUnKVxcXCI+PC9hPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDxsaSBjbGFzcz1cXFwibmF2LWl0ZW1cXFwiIGRhdGEtYmluZD1cXFwiY3NzOiB7YWN0aXZlOiBrb1Jlc3VsdFZpZXdUeXBlKCkgPT09ICd0ZXh0J31cXFwiPlxcbiAgICAgICAgICAgIDxhIGNsYXNzPVxcXCJuYXYtbGlua1xcXCIgaHJlZj1cXFwiI1xcXCJcXG4gICAgICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogc2VsZWN0SnNvbkNsaWNrLCB0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ2VkLnN1cnZleVJlc3VsdHNKc29uJylcXFwiPjwvYT5cXG4gICAgICAgIDwvbGk+XFxuICAgIDwvdWw+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZF9yZXN1bHRzX3RleHQgc3ZkLWxpZ2h0LWJnLWNvbG9yXFxcIiBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvUmVzdWx0Vmlld1R5cGUoKSA9PT0gJ3RleHQnXFxcIj5cXG4gICAgICAgIDxkaXYgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBrb1Jlc3VsdFRleHRcXFwiPjwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkX3Jlc3VsdHNfdGFibGUgc3ZkLWxpZ2h0LWJnLWNvbG9yXFxcIiBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvUmVzdWx0Vmlld1R5cGUoKSA9PT0gJ3RhYmxlJ1xcXCI+XFxuICAgICAgICA8dGFibGU+XFxuICAgICAgICAgICAgPHRoZWFkPlxcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XFxcInN2ZC1saWdodC1iYWNrZ3JvdW5kLWNvbG9yXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cXFwic3ZkLWRhcmstYm9yZGVyLWNvbG9yXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IHJlc3VsdHNUaXRsZVxcXCI+PC90aD5cXG4gICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cXFwic3ZkLWRhcmstYm9yZGVyLWNvbG9yXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IHJlc3VsdHNOYW1lXFxcIj48L3RoPlxcbiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVxcXCJzdmQtZGFyay1ib3JkZXItY29sb3JcXFwiIGRhdGEtYmluZD1cXFwidGV4dDogcmVzdWx0c1ZhbHVlXFxcIj48L3RoPlxcbiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVxcXCJzdmQtZGFyay1ib3JkZXItY29sb3JcXFwiIGRhdGEtYmluZD1cXFwidGV4dDogcmVzdWx0c0Rpc3BsYXlWYWx1ZVxcXCI+PC90aD5cXG4gICAgICAgICAgICAgICAgPC90cj5cXG4gICAgICAgICAgICA8L3RoZWFkPlxcbiAgICAgICAgICAgIDx0Ym9keT5cXG4gICAgICAgICAgICAgICAgPCEtLSBrbyBmb3JlYWNoOiBrb1Jlc3VsdERhdGEgLS0+XFxuICAgICAgICAgICAgICAgIDwhLS0ga28gY29tcG9uZW50OiB7IG5hbWU6ICdzdXJ2ZXktcmVzdWx0cy10YWJsZS1yb3cnLCBwYXJhbXM6IHsgbW9kZWw6ICRkYXRhIH0gfSAtLT5cXG4gICAgICAgICAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgICAgIDwvdGJvZHk+XFxuICAgICAgICA8L3RhYmxlPlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vcmVzdWx0cy5zY3NzXCI7XG5cbnZhciB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9yZXN1bHRzLmh0bWxcIik7XG52YXIgcm93VGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vcmVzdWx0cy10YWJsZS1yb3cuaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFN1cnZleVJlc3VsdHNNb2RlbCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCkge1xuICAgIHRoaXMua29SZXN1bHRUZXh0KEpTT04uc3RyaW5naWZ5KHN1cnZleS5kYXRhLCBudWxsLCA0KSk7XG4gICAgdmFyIGFkZENvbGxhcHNlZCA9IChpdGVtczogYW55W10pID0+IHtcbiAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBpZiAoISFpdGVtICYmIGl0ZW0uaXNOb2RlKSB7XG4gICAgICAgICAgaXRlbS5jb2xsYXBzZWQgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICAgICAgICAgIGl0ZW0uZGF0YSA9IGFkZENvbGxhcHNlZChpdGVtLmRhdGEgfHwgW10pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+ICEhaXRlbSk7XG4gICAgfTtcbiAgICB2YXIgcGxhaW5EYXRhID0gc3VydmV5LmdldFBsYWluRGF0YSh7IGluY2x1ZGVFbXB0eTogZmFsc2UgfSk7XG4gICAgcGxhaW5EYXRhID0gYWRkQ29sbGFwc2VkKHBsYWluRGF0YSk7XG4gICAgdGhpcy5rb1Jlc3VsdERhdGEocGxhaW5EYXRhKTtcbiAgfVxuXG4gIGtvUmVzdWx0Vmlld1R5cGUgPSBrby5vYnNlcnZhYmxlKFwidGFibGVcIik7XG4gIGtvUmVzdWx0VGV4dCA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gIGtvUmVzdWx0RGF0YSA9IGtvLm9ic2VydmFibGVBcnJheSgpO1xuXG4gIHB1YmxpYyBnZXRMb2NTdHJpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcobmFtZSk7XG4gIH1cbiAgcHVibGljIGdldCBzdXJ2ZXlSZXN1bHRzVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NTdHJpbmcoXCJlZC5zdXJ2ZXlSZXN1bHRzXCIpO1xuICB9XG4gIHB1YmxpYyBnZXQgcmVzdWx0c1RpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcImVkLnJlc3VsdHNUaXRsZVwiKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJlc3VsdHNOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcImVkLnJlc3VsdHNOYW1lXCIpO1xuICB9XG4gIHB1YmxpYyBnZXQgcmVzdWx0c1ZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcImVkLnJlc3VsdHNWYWx1ZVwiKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJlc3VsdHNEaXNwbGF5VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jU3RyaW5nKFwiZWQucmVzdWx0c0Rpc3BsYXlWYWx1ZVwiKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RUYWJsZUNsaWNrKG1vZGVsOiBTdXJ2ZXlSZXN1bHRzTW9kZWwpIHtcbiAgICBtb2RlbC5rb1Jlc3VsdFZpZXdUeXBlKFwidGFibGVcIik7XG4gIH1cbiAgcHVibGljIHNlbGVjdEpzb25DbGljayhtb2RlbDogU3VydmV5UmVzdWx0c01vZGVsKSB7XG4gICAgbW9kZWwua29SZXN1bHRWaWV3VHlwZShcInRleHRcIik7XG4gIH1cblxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3VydmV5LXJlc3VsdHNcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHJldHVybiBuZXcgU3VydmV5UmVzdWx0c01vZGVsKHBhcmFtcy5zdXJ2ZXkpO1xuICAgIH1cbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3VydmV5LXJlc3VsdHMtdGFibGUtcm93XCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICB2YXIgbW9kZWwgPSBwYXJhbXMubW9kZWw7XG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfVxuICB9LFxuICB0ZW1wbGF0ZTogcm93VGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwic3ZkLXNpbXVsYXRvci1tYWluXFxcIj5cXG4gICAgPCEtLSBrbyBpZjoga29IYXNGcmFtZSAtLT5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkLXNpbXVsYXRvci13cmFwcGVyXFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJzdHlsZTogeyB3aWR0aDoga29TaW11bGF0b3JGcmFtZSgpLmZyYW1lV2lkdGggKyAncHgnLCBoZWlnaHQ6IGtvU2ltdWxhdG9yRnJhbWUoKS5mcmFtZUhlaWdodCArICdweCcgfVxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtc2ltdWxhdG9yLWZyYW1lXFxcIlxcbiAgICAgICAgICAgIGRhdGEtYmluZD1cXFwic3R5bGU6IHsgd2lkdGg6IGtvU2ltdWxhdG9yRnJhbWUoKS5sYW5kc2NhcGVkRnJhbWVXaWR0aCArICdweCcsIGhlaWdodDoga29TaW11bGF0b3JGcmFtZSgpLmxhbmRzY2FwZWRGcmFtZUhlaWdodCArICdweCcgfSwgY3NzOiBrb1NpbXVsYXRvckZyYW1lKCkuY3NzQ2xhc3NcXFwiPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtc2ltdWxhdG9yXFxcIlxcbiAgICAgICAgICAgIGRhdGEtYmluZD1cXFwiIGNzczogeyBzdl9tNjAwOiAoa29TaW11bGF0b3JGcmFtZSgpLmRldmljZVdpZHRoIDw9IDYwMCkgfSxcXG4gICAgICAgICAgICBzdHlsZTogeyB3aWR0aDoga29TaW11bGF0b3JGcmFtZSgpLmRldmljZVdpZHRoICsgJ3B4JywgaGVpZ2h0OiBrb1NpbXVsYXRvckZyYW1lKCkuZGV2aWNlSGVpZ2h0ICsgJ3B4JywgdHJhbnNmb3JtOiAnc2NhbGUoJyArIGtvU2ltdWxhdG9yRnJhbWUoKS5zY2FsZSArICcpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKScgfVxcXCI+XFxuICAgICAgICAgICAgPHN1cnZleS13aWRnZXQgY2xhc3M9XFxcInN2ZC1zaW11bGF0b3ItY29udGVudFxcXCIgcGFyYW1zPVxcXCJzdXJ2ZXk6IHN1cnZleVxcXCI+PC9zdXJ2ZXktd2lkZ2V0PlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPCEtLSBrbyBpZm5vdDoga29IYXNGcmFtZSAtLT5cXG4gICAgPHN1cnZleS13aWRnZXQgY2xhc3M9XFxcInN2ZC1zaW11bGF0b3ItY29udGVudFxcXCIgcGFyYW1zPVxcXCJzdXJ2ZXk6IHN1cnZleVxcXCI+PC9zdXJ2ZXktd2lkZ2V0PlxcbiAgICA8IS0tIC9rbyAtLT5cXG48L2Rpdj5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCB7IGdldExvY1N0cmluZyB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuaW1wb3J0IFwiLi9zaW11bGF0b3Iuc2Nzc1wiO1xuXG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vc2ltdWxhdG9yLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlTaW11bGF0b3JDb21wb25lbnQge1xuICBwcml2YXRlIHNpbXVsYXRvcjtcblxuICBwdWJsaWMgc2ltdWxhdG9yT3B0aW9ucyA9IHtcbiAgICBkZXZpY2U6IFwiZGVza3RvcFwiLFxuICAgIG9yaWVudGF0aW9uOiBcImxcIixcbiAgICAvLyBzY2FsZTogMSxcbiAgICBjb25zaWRlckRQSTogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Rvb2xiYXJIb2xkZXI6IGFueSwgcHJpdmF0ZSBfb3B0aW9ucyA9IHtcbiAgICBsYW5kc2NhcGU6IGtvLm9ic2VydmFibGUodHJ1ZSksXG4gICAgZGV2aWNlOiBrby5vYnNlcnZhYmxlKFwiZGVza3RvcFwiKSxcbiAgICBzdXJ2ZXk6IDxrby5PYnNlcnZhYmxlPnVuZGVmaW5lZFxuICB9KSB7XG4gICAgdGhpcy5fb3B0aW9ucy5kZXZpY2Uuc3Vic2NyaWJlKChuZXdWYWx1ZSkgPT4ge1xuICAgICAgaWYgKCEhdGhpcy5zaW11bGF0b3IpIHtcbiAgICAgICAgdGhpcy5zaW11bGF0b3JPcHRpb25zLmRldmljZSA9IG5ld1ZhbHVlIHx8IFwiZGVza3RvcFwiO1xuICAgICAgICB0aGlzLnNpbXVsYXRvci5vcHRpb25zKHRoaXMuc2ltdWxhdG9yT3B0aW9ucyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5fb3B0aW9ucy5sYW5kc2NhcGUuc3Vic2NyaWJlKChuZXdWYWx1ZSkgPT4ge1xuICAgICAgaWYgKCEhdGhpcy5zaW11bGF0b3IpIHtcbiAgICAgICAgdGhpcy5zaW11bGF0b3JPcHRpb25zLm9yaWVudGF0aW9uID0gbmV3VmFsdWUgPyBcImxcIiA6IFwicFwiO1xuICAgICAgICB0aGlzLnNpbXVsYXRvci5vcHRpb25zKHRoaXMuc2ltdWxhdG9yT3B0aW9ucyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmtvSGFzRnJhbWUgPSBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICB2YXIgZGV2aWNlID0gc2ltdWxhdG9yRGV2aWNlc1t0aGlzLmFjdGl2ZURldmljZV07XG4gICAgICByZXR1cm4gdGhpcy5zaW11bGF0b3JFbmFibGVkICYmIGRldmljZS5kZXZpY2VUeXBlICE9PSBcImRlc2t0b3BcIjtcbiAgICB9KTtcblxuICAgIHRoaXMua29TaW11bGF0b3JGcmFtZSA9IGtvLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5rb0hhc0ZyYW1lKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBkZXZpY2UgPSBzaW11bGF0b3JEZXZpY2VzW3RoaXMuYWN0aXZlRGV2aWNlXTtcbiAgICAgIGNvbnN0IHNjYWxlID0gREVGQVVMVF9NT05JVE9SX0RQSSAvIGRldmljZS5wcGk7XG5cbiAgICAgIGNvbnN0IGRldmljZVdpZHRoID0gKHRoaXMubGFuZHNjYXBlT3JpZW50YXRpb24gPyBkZXZpY2UuaGVpZ2h0IDogZGV2aWNlLndpZHRoKSAvIGRldmljZS5jc3NQaXhlbFJhdGlvO1xuICAgICAgY29uc3QgZGV2aWNlSGVpZ2h0ID0gKHRoaXMubGFuZHNjYXBlT3JpZW50YXRpb24gPyBkZXZpY2Uud2lkdGggOiBkZXZpY2UuaGVpZ2h0KSAvIGRldmljZS5jc3NQaXhlbFJhdGlvO1xuICAgICAgY29uc3QgZGV2aWNlTGFuZHNjYXBlZEZyYW1lV2lkdGggPSAodGhpcy5sYW5kc2NhcGVPcmllbnRhdGlvbiA/IGRldmljZS5mcmFtZUhlaWdodCA6IGRldmljZS5mcmFtZVdpZHRoKTtcbiAgICAgIGNvbnN0IGRldmljZUxhbmRzY2FwZWRGcmFtZUhlaWdodCA9ICh0aGlzLmxhbmRzY2FwZU9yaWVudGF0aW9uID8gZGV2aWNlLmZyYW1lV2lkdGggOiBkZXZpY2UuZnJhbWVIZWlnaHQpO1xuICAgICAgY29uc3QgZnJhbWVXaWR0aCA9IGRldmljZUxhbmRzY2FwZWRGcmFtZVdpZHRoICogc2NhbGU7XG4gICAgICBjb25zdCBmcmFtZUhlaWdodCA9IGRldmljZUxhbmRzY2FwZWRGcmFtZUhlaWdodCAqIHNjYWxlO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzY2FsZTogdGhpcy5zaW11bGF0b3JTY2FsZUVuYWJsZWQgPyBzY2FsZSAqIGRldmljZS5jc3NQaXhlbFJhdGlvIDogMSxcbiAgICAgICAgZnJhbWVXaWR0aDogZnJhbWVXaWR0aCxcbiAgICAgICAgZnJhbWVIZWlnaHQ6IGZyYW1lSGVpZ2h0LFxuICAgICAgICBsYW5kc2NhcGVkRnJhbWVXaWR0aDogdGhpcy5sYW5kc2NhcGVPcmllbnRhdGlvbiA/IGZyYW1lSGVpZ2h0IDogZnJhbWVXaWR0aCxcbiAgICAgICAgbGFuZHNjYXBlZEZyYW1lSGVpZ2h0OiB0aGlzLmxhbmRzY2FwZU9yaWVudGF0aW9uID8gZnJhbWVXaWR0aCA6IGZyYW1lSGVpZ2h0LFxuICAgICAgICBkZXZpY2VXaWR0aDogZGV2aWNlV2lkdGgsXG4gICAgICAgIGRldmljZUhlaWdodDogZGV2aWNlSGVpZ2h0LFxuICAgICAgICBjc3NDbGFzczpcbiAgICAgICAgICBkZXZpY2UuY3NzQ2xhc3MgK1xuICAgICAgICAgICh0aGlzLmxhbmRzY2FwZU9yaWVudGF0aW9uID8gXCIgc3ZkLXNpbXVsYXRvci1mcmFtZS1sYW5kc2NhcGVcIiA6IFwiXCIpLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGlmICghIV90b29sYmFySG9sZGVyKSB7XG4gICAgICB0aGlzLl9vcHRpb25zLnN1cnZleSA9IHRoaXMuX3Rvb2xiYXJIb2xkZXIua29TdXJ2ZXk7XG4gICAgICBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2ltdWxhdG9yRW5hYmxlZCA9IF90b29sYmFySG9sZGVyLnNob3dTaW11bGF0b3IoKTtcbiAgICAgIH0pO1xuICAgICAgX3Rvb2xiYXJIb2xkZXIudG9vbGJhckl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogXCJzdmQtdGVzdC1zaW11bGF0b3JcIixcbiAgICAgICAgdGl0bGU6IGdldExvY1N0cmluZyhcInBlLnNpbXVsYXRvclwiKSxcbiAgICAgICAgdmlzaWJsZToga28uY29tcHV0ZWQoKCkgPT4gdGhpcy5zaW11bGF0b3JFbmFibGVkKSxcbiAgICAgICAgdG9vbHRpcDogZ2V0TG9jU3RyaW5nKFwicGUuc2ltdWxhdG9yXCIpLFxuICAgICAgICBjb21wb25lbnQ6IFwic3ZkLWRyb3Bkb3duXCIsXG4gICAgICAgIGFjdGlvbjoga28uY29tcHV0ZWQoe1xuICAgICAgICAgIHJlYWQ6ICgpID0+IHRoaXMuYWN0aXZlRGV2aWNlLFxuICAgICAgICAgIHdyaXRlOiAodmFsOiBhbnkpID0+IHRoaXMuYWN0aXZlRGV2aWNlID0gdmFsXG4gICAgICAgIH0pLFxuICAgICAgICBpdGVtczogPGFueT50aGlzLmtvRGV2aWNlc1xuICAgICAgfSk7XG4gICAgICBfdG9vbGJhckhvbGRlci50b29sYmFySXRlbXMucHVzaCh7XG4gICAgICAgIGlkOiBcInN2ZC10ZXN0LXNpbXVsYXRvci1vcmllbnRhdGlvblwiLFxuICAgICAgICB0aXRsZTogZ2V0TG9jU3RyaW5nKFwicGUubGFuZHNjYXBlT3JpZW50YXRpb25cIiksXG4gICAgICAgIHZpc2libGU6IHRoaXMua29IYXNGcmFtZSxcbiAgICAgICAgdG9vbHRpcDogZ2V0TG9jU3RyaW5nKFwicGUubGFuZHNjYXBlT3JpZW50YXRpb25cIiksXG4gICAgICAgIGNvbXBvbmVudDogXCJzdmQtYm9vbGVhblwiLFxuICAgICAgICBhY3Rpb246IGtvLmNvbXB1dGVkKHtcbiAgICAgICAgICByZWFkOiAoKSA9PiB0aGlzLmxhbmRzY2FwZU9yaWVudGF0aW9uLFxuICAgICAgICAgIHdyaXRlOiAodmFsOiBhbnkpID0+IHRoaXMubGFuZHNjYXBlT3JpZW50YXRpb24gPSB2YWxcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3VydmV5KCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLnN1cnZleSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2ltdWxhdG9yRW5hYmxlZCA9IGtvLm9ic2VydmFibGU8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyBnZXQgc2ltdWxhdG9yRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2ltdWxhdG9yRW5hYmxlZCgpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2ltdWxhdG9yRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3NpbXVsYXRvckVuYWJsZWQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3NpbXVsYXRvclNjYWxlRW5hYmxlZCA9IGtvLm9ic2VydmFibGU8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyBnZXQgc2ltdWxhdG9yU2NhbGVFbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9zaW11bGF0b3JTY2FsZUVuYWJsZWQoKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNpbXVsYXRvclNjYWxlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3NpbXVsYXRvclNjYWxlRW5hYmxlZCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgYWN0aXZlRGV2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmRldmljZSgpO1xuICB9XG4gIHNldCBhY3RpdmVEZXZpY2UoZGV2aWNlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zdXJ2ZXkgJiYgdHlwZW9mIHRoaXMuc3VydmV5LnNldElzTW9iaWxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRoaXMuc3VydmV5LnNldElzTW9iaWxlKGRldmljZSAhPT0gXCJkZXNrdG9wXCIpO1xuICAgIH1cbiAgICB0aGlzLl9vcHRpb25zLmRldmljZShkZXZpY2UpO1xuICB9XG5cbiAga29EZXZpY2VzID0ga28ub2JzZXJ2YWJsZUFycmF5KFxuICAgIE9iamVjdC5rZXlzKHNpbXVsYXRvckRldmljZXMpXG4gICAgICAuZmlsdGVyKChrZXkpID0+ICEhc2ltdWxhdG9yRGV2aWNlc1trZXldLnRpdGxlKVxuICAgICAgLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdGV4dDogc2ltdWxhdG9yRGV2aWNlc1trZXldLnRpdGxlLFxuICAgICAgICAgIHZhbHVlOiBrZXksXG4gICAgICAgIH07XG4gICAgICB9KVxuICApO1xuXG4gIGdldCBsYW5kc2NhcGVPcmllbnRhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5sYW5kc2NhcGUoKTtcbiAgfVxuICBzZXQgbGFuZHNjYXBlT3JpZW50YXRpb24oaXNMYW5zY2FwZTogYm9vbGVhbikge1xuICAgIHRoaXMuX29wdGlvbnMubGFuZHNjYXBlKGlzTGFuc2NhcGUpO1xuICB9XG5cbiAgcHVibGljIGtvSGFzRnJhbWU6IGtvLkNvbXB1dGVkO1xuICBwdWJsaWMga29TaW11bGF0b3JGcmFtZToga28uQ29tcHV0ZWQ7XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdXJ2ZXktc2ltdWxhdG9yXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFN1cnZleVNpbXVsYXRvckNvbXBvbmVudChwYXJhbXMubW9kZWwsIHBhcmFtcy5vcHRpb25zKTtcbiAgICB9XG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcblxuZXhwb3J0IHZhciBERUZBVUxUX01PTklUT1JfRFBJID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA6IDEpICogOTY7XG5leHBvcnQgdmFyIHNpbXVsYXRvckRldmljZXMgPSB7XG4gIGRlc2t0b3A6IHtcbiAgICBkZXZpY2VUeXBlOiBcImRlc2t0b3BcIixcbiAgICB0aXRsZTogXCJEZXNrdG9wXCIsXG4gIH0sXG4gIC8vIGRlc2t0b3BfMTI4MHg3MjA6IHtcbiAgLy8gICBjc3NQaXhlbFJhdGlvOiAxLFxuICAvLyAgIHBwaTogREVGQVVMVF9NT05JVE9SX0RQSSxcbiAgLy8gICB3aWR0aDogNzIwLFxuICAvLyAgIGhlaWdodDogMTI4MCxcbiAgLy8gICBkZXZpY2VUeXBlOiBcImRlc2t0b3BcIixcbiAgLy8gICB0aXRsZTogXCJEZXNrdG9wIDEyODB4NzIwXCJcbiAgLy8gfSxcbiAgLy8gZGVza3RvcF8xNDQweDkwMDoge1xuICAvLyAgIGNzc1BpeGVsUmF0aW86IDEsXG4gIC8vICAgcHBpOiBERUZBVUxUX01PTklUT1JfRFBJLFxuICAvLyAgIHdpZHRoOiA5MDAsXG4gIC8vICAgaGVpZ2h0OiAxNDQwLFxuICAvLyAgIGRldmljZVR5cGU6IFwiZGVza3RvcFwiLFxuICAvLyAgIHRpdGxlOiBcIkRlc2t0b3AgMTQ0MHg5MDBcIlxuICAvLyB9LFxuICAvLyBkZXNrdG9wXzE5MjB4MTA4MDoge1xuICAvLyAgIGNzc1BpeGVsUmF0aW86IDEsXG4gIC8vICAgcHBpOiBERUZBVUxUX01PTklUT1JfRFBJLFxuICAvLyAgIHdpZHRoOiAxMDgwLFxuICAvLyAgIGhlaWdodDogMTkyMCxcbiAgLy8gICBkZXZpY2VUeXBlOiBcImRlc2t0b3BcIixcbiAgLy8gICB0aXRsZTogXCJEZXNrdG9wIDE5MjB4MTA4MFwiXG4gIC8vIH0sXG4gIC8vIGlQaG9uZToge1xuICAvLyAgIGNzc1BpeGVsUmF0aW86IDIsXG4gIC8vICAgcHBpOiAzMjYsXG4gIC8vICAgd2lkdGg6IDY0MCxcbiAgLy8gICBoZWlnaHQ6IDk2MCxcbiAgLy8gICBmcmFtZVdpZHRoOiA3MzAsXG4gIC8vICAgZnJhbWVIZWlnaHQ6IDEzNDAsXG4gIC8vICAgZGV2aWNlVHlwZTogXCJwaG9uZVwiLFxuICAvLyAgIHRpdGxlOiBcImlQaG9uZVwiLFxuICAvLyAgIGNzc0NsYXNzOiBcInN2ZC1zaW11bGF0b3ItaXBob25lNFwiXG4gIC8vIH0sXG4gIGlQaG9uZTU6IHtcbiAgICBjc3NQaXhlbFJhdGlvOiAyLFxuICAgIHBwaTogMzI2LFxuICAgIHdpZHRoOiA2NDAsXG4gICAgaGVpZ2h0OiAxMTM2LFxuICAgIGZyYW1lV2lkdGg6IDc1MCxcbiAgICBmcmFtZUhlaWdodDogMTUwMCxcbiAgICBkZXZpY2VUeXBlOiBcInBob25lXCIsXG4gICAgdGl0bGU6IFwiaVBob25lIDVcIixcbiAgICBjc3NDbGFzczogXCJzdmQtc2ltdWxhdG9yLWlwaG9uZTVcIlxuICB9LFxuICBpUGhvbmU2OiB7XG4gICAgY3NzUGl4ZWxSYXRpbzogMixcbiAgICBwcGk6IDMyNixcbiAgICB3aWR0aDogNzUwLFxuICAgIGhlaWdodDogMTMzNCxcbiAgICBmcmFtZVdpZHRoOiA5NjAsXG4gICAgZnJhbWVIZWlnaHQ6IDE3NTAsXG4gICAgZGV2aWNlVHlwZTogXCJwaG9uZVwiLFxuICAgIHRpdGxlOiBcImlQaG9uZSA2XCIsXG4gICAgY3NzQ2xhc3M6IFwic3ZkLXNpbXVsYXRvci1pcGhvbmU2XCJcbiAgfSxcbiAgaVBob25lNnBsdXM6IHtcbiAgICBjc3NQaXhlbFJhdGlvOiAyLjYsXG4gICAgcHBpOiA0MDEsXG4gICAgd2lkdGg6IDEwODAsXG4gICAgaGVpZ2h0OiAxOTIwLFxuICAgIGZyYW1lV2lkdGg6IDEzMzAsXG4gICAgZnJhbWVIZWlnaHQ6IDI1NTAsXG4gICAgZGV2aWNlVHlwZTogXCJwaG9uZVwiLFxuICAgIHRpdGxlOiBcImlQaG9uZSA2IFBsdXNcIixcbiAgICBjc3NDbGFzczogXCJzdmQtc2ltdWxhdG9yLWlwaG9uZTZwbHVzXCJcbiAgfSxcbiAgaVBob25lODoge1xuICAgIGNzc1BpeGVsUmF0aW86IDIsXG4gICAgcHBpOiAzMjYsXG4gICAgd2lkdGg6IDc1MCxcbiAgICBoZWlnaHQ6IDEzMzQsXG4gICAgZnJhbWVXaWR0aDogOTkwLFxuICAgIGZyYW1lSGVpZ2h0OiAxODYwLFxuICAgIGRldmljZVR5cGU6IFwicGhvbmVcIixcbiAgICB0aXRsZTogXCJpUGhvbmUgOFwiLFxuICAgIGNzc0NsYXNzOiBcInN2ZC1zaW11bGF0b3ItaXBob25lOFwiXG4gIH0sXG4gIGlQaG9uZThwbHVzOiB7XG4gICAgY3NzUGl4ZWxSYXRpbzogMyxcbiAgICBwcGk6IDQwMSxcbiAgICB3aWR0aDogMTA4MCxcbiAgICBoZWlnaHQ6IDE5MjAsXG4gICAgZnJhbWVXaWR0aDogMTMzMCxcbiAgICBmcmFtZUhlaWdodDogMjU1MCxcbiAgICBkZXZpY2VUeXBlOiBcInBob25lXCIsXG4gICAgdGl0bGU6IFwiaVBob25lIDggUGx1c1wiLFxuICAgIGNzc0NsYXNzOiBcInN2ZC1zaW11bGF0b3ItaXBob25lOHBsdXNcIlxuICB9LFxuICBpUGhvbmVYOiB7XG4gICAgY3NzUGl4ZWxSYXRpbzogMyxcbiAgICBwcGk6IDQ1OCxcbiAgICB3aWR0aDogMTEyNSxcbiAgICBoZWlnaHQ6IDI0MzYsXG4gICAgZnJhbWVXaWR0aDogMTMzMCxcbiAgICBmcmFtZUhlaWdodDogMjY4MCxcbiAgICBkZXZpY2VUeXBlOiBcInBob25lXCIsXG4gICAgdGl0bGU6IFwiaVBob25lIFhcIixcbiAgICBjc3NDbGFzczogXCJzdmQtc2ltdWxhdG9yLWlwaG9uZXhcIlxuICB9LFxuICBpUGhvbmVYbWF4OiB7XG4gICAgY3NzUGl4ZWxSYXRpbzogMyxcbiAgICBwcGk6IDQ1OCxcbiAgICB3aWR0aDogMTI0MixcbiAgICBoZWlnaHQ6IDI2ODgsXG4gICAgZnJhbWVXaWR0aDogMTQxMCxcbiAgICBmcmFtZUhlaWdodDogMjk4MCxcbiAgICBkZXZpY2VUeXBlOiBcInBob25lXCIsXG4gICAgdGl0bGU6IFwiaVBob25lIFggTWF4XCIsXG4gICAgY3NzQ2xhc3M6IFwic3ZkLXNpbXVsYXRvci1pcGhvbmV4bWF4XCJcbiAgfSxcbiAgaVBhZDoge1xuICAgIGNzc1BpeGVsUmF0aW86IDIsXG4gICAgcHBpOiAyNjQsXG4gICAgd2lkdGg6IDE1MzYsXG4gICAgaGVpZ2h0OiAyMDQ4LFxuICAgIGZyYW1lV2lkdGg6IDE4MzcsXG4gICAgZnJhbWVIZWlnaHQ6IDI1NjMsXG4gICAgZGV2aWNlVHlwZTogXCJ0YWJsZXRcIixcbiAgICB0aXRsZTogXCJpUGFkXCIsXG4gICAgY3NzQ2xhc3M6IFwic3ZkLXNpbXVsYXRvci1pcGFkXCJcbiAgfSxcbiAgaVBhZE1pbmk6IHtcbiAgICBjc3NQaXhlbFJhdGlvOiAyLFxuICAgIHBwaTogMTYzLFxuICAgIHdpZHRoOiA3NjgsXG4gICAgaGVpZ2h0OiAxMDI0LFxuICAgIGZyYW1lV2lkdGg6IDk0NSxcbiAgICBmcmFtZUhlaWdodDogMTMwMCxcbiAgICBkZXZpY2VUeXBlOiBcInRhYmxldFwiLFxuICAgIHRpdGxlOiBcImlQYWQgTWluaVwiLFxuICAgIGNzc0NsYXNzOiBcInN2ZC1zaW11bGF0b3ItaXBhZG1pbmlcIlxuICB9LFxuICBpUGFkUHJvOiB7XG4gICAgY3NzUGl4ZWxSYXRpbzogMixcbiAgICBwcGk6IDI2NCxcbiAgICB3aWR0aDogMTY4OCxcbiAgICBoZWlnaHQ6IDIzODgsXG4gICAgZnJhbWVXaWR0aDogMjAwOCxcbiAgICBmcmFtZUhlaWdodDogMjk4MCxcbiAgICBkZXZpY2VUeXBlOiBcInRhYmxldFwiLFxuICAgIHRpdGxlOiAnaVBhZCBQcm8gMTFcIicsXG4gICAgY3NzQ2xhc3M6IFwic3ZkLXNpbXVsYXRvci1pcGFkcHJvXCJcbiAgfSxcbiAgaVBhZFBybzEzOiB7XG4gICAgY3NzUGl4ZWxSYXRpbzogMixcbiAgICBwcGk6IDI2NCxcbiAgICB3aWR0aDogMjA0OCxcbiAgICBoZWlnaHQ6IDI3MzIsXG4gICAgZnJhbWVXaWR0aDogMjM2MCxcbiAgICBmcmFtZUhlaWdodDogMzMwMCxcbiAgICBkZXZpY2VUeXBlOiBcInRhYmxldFwiLFxuICAgIHRpdGxlOiAnaVBhZCBQcm8gMTIsOVwiJyxcbiAgICBjc3NDbGFzczogXCJzdmQtc2ltdWxhdG9yLWlwYWRwcm8xM1wiXG4gIH0sXG4gIGFuZHJvaWRQaG9uZToge1xuICAgIGNzc1BpeGVsUmF0aW86IDIsXG4gICAgcHBpOiAzMTYsXG4gICAgd2lkdGg6IDcyMCxcbiAgICBoZWlnaHQ6IDEyODAsXG4gICAgZnJhbWVXaWR0aDogODUwLFxuICAgIGZyYW1lSGVpZ2h0OiAxNjMwLFxuICAgIGRldmljZVR5cGU6IFwicGhvbmVcIixcbiAgICB0aXRsZTogXCJBbmRyb2lkIFBob25lXCIsXG4gICAgY3NzQ2xhc3M6IFwic3ZkLXNpbXVsYXRvci1hbmRyb2lkcGhvbmVcIlxuICB9LFxuICBhbmRyb2lkVGFibGV0OiB7XG4gICAgY3NzUGl4ZWxSYXRpbzogMS41LFxuICAgIHBwaTogMTQ5LFxuICAgIHdpZHRoOiA4MDAsXG4gICAgaGVpZ2h0OiAxMjgwLFxuICAgIGZyYW1lV2lkdGg6IDEwNzAsXG4gICAgZnJhbWVIZWlnaHQ6IDE0ODAsXG4gICAgZGV2aWNlVHlwZTogXCJ0YWJsZXRcIixcbiAgICB0aXRsZTogXCJBbmRyb2lkIFRhYmxldFwiLFxuICAgIGNzc0NsYXNzOiBcInN2ZC1zaW11bGF0b3ItYW5kcm9pZHRhYmxldFwiXG4gIH0sXG4gIHdpbjEwUGhvbmU6IHtcbiAgICBjc3NQaXhlbFJhdGlvOiAxLFxuICAgIHBwaTogMTUyLFxuICAgIHdpZHRoOiAzMzAsXG4gICAgaGVpZ2h0OiA1NjgsXG4gICAgZnJhbWVXaWR0aDogNDgwLFxuICAgIGZyYW1lSGVpZ2h0OiA4NDYsXG4gICAgZGV2aWNlVHlwZTogXCJwaG9uZVwiLFxuICAgIHRpdGxlOiBcIldpbmRvd3MgMTAgUGhvbmVcIixcbiAgICBjc3NDbGFzczogXCJzdmQtc2ltdWxhdG9yLXdpbjEwcGhvbmVcIlxuICB9LFxuICBtc1N1cmZhY2U6IHtcbiAgICBjc3NQaXhlbFJhdGlvOiAxLFxuICAgIHBwaTogMTQ4LFxuICAgIHdpZHRoOiA3NjgsXG4gICAgaGVpZ2h0OiAxMzY2LFxuICAgIGZyYW1lV2lkdGg6IDEwNDAsXG4gICAgZnJhbWVIZWlnaHQ6IDE2MjAsXG4gICAgZGV2aWNlVHlwZTogXCJ0YWJsZXRcIixcbiAgICB0aXRsZTogXCJNUyBTdXJmYWNlXCIsXG4gICAgY3NzQ2xhc3M6IFwic3ZkLXNpbXVsYXRvci1tc3N1cmZhY2VcIlxuICB9LFxuICBnZW5lcmljUGhvbmU6IHtcbiAgICBjc3NQaXhlbFJhdGlvOiAxLFxuICAgIGRldmljZVR5cGU6IFwicGhvbmVcIixcbiAgICB0aXRsZTogXCJcIixcbiAgICBjc3NDbGFzczogXCJzdmQtc2ltdWxhdG9yLWdlbnBob25lXCJcbiAgfSxcbn07XG5cbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGRhdGEtYmluZD1cXFwiaWY6IGhhc0l0ZW1zXFxcIiBjbGFzcz1cXFwic3ZkX3Rvb2xiYXJcXFwiPlxcbiAgPCEtLSBrbyBmb3JlYWNoOiBpdGVtcyAtLT5cXG4gIDxzcGFuIGNsYXNzPVxcXCJzdmRfYWN0aW9uXFxcIlxcbiAgICBkYXRhLWJpbmQ9XFxcImNzczogJGRhdGEuY3NzLCB2aXNpYmxlOiAkZGF0YS52aXNpYmxlID09PSB1bmRlZmluZWQgfHwgISFrby51bndyYXAoJGRhdGEudmlzaWJsZSksIGF0dHI6IHsgaWQ6IGlkIH1cXFwiPlxcbiAgICA8IS0tIGtvIGlmbm90OiAkZGF0YS50ZW1wbGF0ZSAgLS0+XFxuICAgIDwhLS0ga28gY29tcG9uZW50OiB7IG5hbWU6ICRkYXRhLmNvbXBvbmVudCB8fCAnc3ZkLWJ1dHRvbicsIHBhcmFtczogeyBpdGVtOiAkZGF0YSB9IH0gLS0+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPCEtLSBrbyBpZjogJGRhdGEudGVtcGxhdGUgIC0tPlxcbiAgICA8IS0tIGtvIHRlbXBsYXRlOiB7IG5hbWU6ICRkYXRhLnRlbXBsYXRlLCBkYXRhOiAkZGF0YS5kYXRhIHx8ICRkYXRhIH0gLS0+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gIDwvc3Bhbj5cXG4gIDwhLS0gL2tvIC0tPlxcbjwvZGl2PlwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgSUFjdGlvbiB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi90b29sYmFyLnNjc3NcIjtcbnZhciB0ZW1wbGF0ZSA9IHJlcXVpcmUoXCIuL3Rvb2xiYXIuaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFRvb2xiYXIge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaXRlbXM6IGtvLk9ic2VydmFibGVBcnJheTxJQWN0aW9uPiB8IEFycmF5PElBY3Rpb24+KSB7fVxuICBnZXQgaGFzSXRlbXMoKSB7XG4gICAgcmV0dXJuIChrby51bndyYXAodGhpcy5pdGVtcykgfHwgW10pLmxlbmd0aCA+IDA7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC10b29sYmFyXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFRvb2xiYXIocGFyYW1zLml0ZW1zKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGUsXG59KTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgSVF1ZXN0aW9uVG9vbGJveEl0ZW0gfSBmcm9tIFwiLi4vdG9vbGJveFwiO1xuaW1wb3J0IHsgZ2V0TG9jU3RyaW5nIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcblxuaW1wb3J0IFwiLi90b29sYm94LWl0ZW0uc2Nzc1wiO1xudmFyIHRlbXBsYXRlID0gcmVxdWlyZShcImh0bWwtbG9hZGVyP2ludGVycG9sYXRlIXZhbC1sb2FkZXIhLi90b29sYm94LWl0ZW0uaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFRvb2xib3hJdGVtVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IocHVibGljIGl0ZW06IElRdWVzdGlvblRvb2xib3hJdGVtLCBwcml2YXRlIF9jcmVhdG9yOiBTdXJ2ZXlDcmVhdG9yKSB7XG4gIH1cbiAgZ2V0IGFyaWFMYWJlbCgpIHsgcmV0dXJuIHRoaXMuaXRlbS50b29sdGlwICsgXCIgXCIgKyBnZXRMb2NTdHJpbmcoXCJ0b29sYm94XCIpICsgXCIgaXRlbVwiOyB9XG4gIGNsaWNrID0gKCkgPT4geyB0aGlzLl9jcmVhdG9yLmNsaWNrVG9vbGJveEl0ZW0odGhpcy5pdGVtKTsgfVxuICBkcmFnc3RhcnQgPSAoZWwsIGUpID0+IHsgdGhpcy5fY3JlYXRvci5kcmFnZ2luZ1Rvb2xib3hJdGVtKHRoaXMuaXRlbSwgZSk7IHJldHVybiB0cnVlOyB9XG4gIGRyYWdlbmQgPSAoZWwsIGUpID0+IHsgdGhpcy5fY3JlYXRvci5kcmFnRW5kKCk7IH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC10b29sYm94LWl0ZW1cIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBpdGVtOiBJUXVlc3Rpb25Ub29sYm94SXRlbSA9IHBhcmFtcy5pdGVtO1xuICAgICAgdmFyIGNyZWF0b3IgPSBwYXJhbXMuY3JlYXRvcjtcbiAgICAgIHJldHVybiBuZXcgVG9vbGJveEl0ZW1WaWV3TW9kZWwoaXRlbSwgY3JlYXRvcik7XG4gICAgfVxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVcbn0pO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcbmV4cG9ydCB7IFRvb2xib3hJdGVtVmlld01vZGVsIH0gZnJvbSBcIi4vdG9vbGJveC1pdGVtXCI7XG5cbmltcG9ydCBcIi4vdG9vbGJveC5zY3NzXCI7XG52YXIgdGVtcGxhdGUgPSByZXF1aXJlKFwiaHRtbC1sb2FkZXI/aW50ZXJwb2xhdGUhdmFsLWxvYWRlciEuL3Rvb2xib3guaHRtbFwiKTtcblxuZXhwb3J0IHZhciBUb29sYm94Vmlld01vZGVsO1xuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLXRvb2xib3hcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGxldCBjcmVhdG9yOiBTdXJ2ZXlDcmVhdG9yID0gcGFyYW1zLml0ZW1zUHJvdmlkZXI7XG4gICAgICAvLyBsZXQgdG9vbGJveCA9IG5ldyBRdWVzdGlvblRvb2xib3goY3JlYXRvci50b29sYm94SXRlbXMsIGNyZWF0b3IpO1xuICAgICAgLy8ga28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhjb21wb25lbnRJbmZvLmVsZW1lbnQsICgpID0+IHtcbiAgICAgIC8vICAgY3JlYXRvci50b29sYm94LmRpc3Bvc2UoKTtcbiAgICAgIC8vICAgY3JlYXRvci50b29sYm94ID0gdW5kZWZpbmVkO1xuICAgICAgLy8gfSk7XG4gICAgICAvLyBjcmVhdG9yLnRvb2xib3ggPSB0b29sYm94O1xuICAgICAgLy8gcmV0dXJuIHRvb2xib3g7XG4gICAgICByZXR1cm4gY3JlYXRvci50b29sYm94O1xuICAgIH1cbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlXG59KTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25Db252ZXJ0ZXIgfSBmcm9tIFwiLi9xdWVzdGlvbmNvbnZlcnRlclwiO1xuaW1wb3J0IHsgU3VydmV5VGV4dFdvcmtlciB9IGZyb20gXCIuL3RleHRXb3JrZXJcIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciwgT2JqVHlwZSB9IGZyb20gXCIuL3N1cnZleUhlbHBlclwiO1xuaW1wb3J0IHsgU3VydmV5SlNPTjUgfSBmcm9tIFwiLi9qc29uNVwiO1xuaW1wb3J0IHsgU3VydmV5TG9naWMgfSBmcm9tIFwiLi90YWJzL2xvZ2ljXCI7XG5pbXBvcnQgeyBJU3VydmV5Q3JlYXRvck9wdGlvbnMsIHNldHRpbmdzIH0gZnJvbSBcIi4vc2V0dGluZ3NcIjtcbmltcG9ydCB7IEVkaXRhYmxlT2JqZWN0IH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JzL2VkaXRhYmxlT2JqZWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNyZWF0b3JPcHRpb25zIHtcbiAgW2luZGV4OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBDcmVhdG9yQmFzZUV2ZW50PFQ+IGV4dGVuZHMgU3VydmV5LkV2ZW50QmFzZTxDcmVhdG9yQmFzZTxUPiwgYW55PiB7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgU3VydmV5IENyZWF0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBDcmVhdG9yQmFzZTxUIGV4dGVuZHMgeyBbaW5kZXg6IHN0cmluZ106IGFueSB9PiBpbXBsZW1lbnRzIElTdXJ2ZXlDcmVhdG9yT3B0aW9ucyB7XG4gIHByaXZhdGUgc2hvd0Rlc2lnbmVyVGFiVmFsdWUgPSBrby5vYnNlcnZhYmxlPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBzaG93SlNPTkVkaXRvclRhYlZhbHVlID0ga28ub2JzZXJ2YWJsZTxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgc2hvd1Rlc3RTdXJ2ZXlUYWJWYWx1ZSA9IGtvLm9ic2VydmFibGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHNob3dFbWJlZGRlZFN1cnZleVRhYlZhbHVlID0ga28ub2JzZXJ2YWJsZTxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgc2hvd1RyYW5zbGF0aW9uVGFiVmFsdWUgPSBrby5vYnNlcnZhYmxlPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBzaG93TG9naWNUYWJWYWx1ZSA9IGtvLm9ic2VydmFibGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIGlzUlRMVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBoYXZlQ29tbWVyY2lhbExpY2Vuc2VWYWx1ZSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICBwcml2YXRlIGFsd2F5U2F2ZVRleHRJblByb3BlcnR5RWRpdG9yc1ZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc2hvd0Ryb3Bkb3duUGFnZVNlbGVjdG9yVmFsdWUgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuXG4gIHByb3RlY3RlZCBzdXJ2ZXlWYWx1ZSA9IGtvLm9ic2VydmFibGU8VD4oKTtcblxuICBwcml2YXRlIG5ld1F1ZXN0aW9uczogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIG5ld1BhbmVsczogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIG5ld1F1ZXN0aW9uQ2hhbmdlZE5hbWVzOiB7fTtcblxuICBrb0F1dG9TYXZlID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gIGtvU2hvd09wdGlvbnMgPSBrby5vYnNlcnZhYmxlKCk7XG4gIGtvR2VuZXJhdGVWYWxpZEpTT04gPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBrb1Nob3dTdGF0ZSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICBrb1ZpZXdUeXBlID0ga28ub2JzZXJ2YWJsZShcImRlc2lnbmVyXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIG9uIGRlbGV0aW5nIGFuIGVsZW1lbnQgKHF1ZXN0aW9uL3BhbmVsL3BhZ2UpIGZyb20gdGhlIHN1cnZleS4gVHlwaWNhbGx5LCB3aGVuIGEgdXNlciBjbGljayB0aGUgZGVsZXRlIGZyb20gdGhlIGVsZW1lbnQgbWVudS5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5lbGVtZW50IGFuIGluc3RhbmNlIG9mIHRoZSBkZWxldGluZyBlbGVtZW50XG4gICAqIDxici8+IG9wdGlvbnMuZWxlbWVudFR5cGUgdGhlIHR5cGUgb2YgdGhlIGVsZW1lbnQ6ICdxdWVzdGlvbicsICdwYW5lbCcgb3IgJ3BhZ2UnLlxuICAgKiA8YnIvPiBvcHRpb25zLmFsbG93aW5nIHNldCBpdCB0byBmYWxzZSB0byBjYW5jZWwgdGhlIGVsZW1lbnQgZGVsZXRpbmdcbiAgICovXG4gIHB1YmxpYyBvbkVsZW1lbnREZWxldGluZzogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIG9uIHNldHRpbmcgYSByZWFkT25seSBwcm9wZXJ0eSBvZiB0aGUgcHJvcGVydHkgZWRpdG9yLiBCeSBkZWZhdWx0IHRoZSBwcm9wZXJ0eS5yZWFkT25seSBwcm9wZXJ0eSBpcyB1c2VkLlxuICAgKiBZb3UgbWF5IGNoYW5nZWQgaXQgYW5kIG1ha2UgdGhlIHByb3BlcnR5IGVkaXRvciByZWFkIG9ubHkgb3IgZW5hYmxlZCBmb3IgYSBwYXJ0aWN1bGFyIG9iamVjdC5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5vYmogdGhlIHN1cnZleSBvYmplY3QsIFN1cnZleSwgUGFnZSwgUGFuZWwgb3IgUXVlc3Rpb25cbiAgICogPGJyLz4gb3B0aW9ucy5wcm9wZXJ0eSB0aGUgb2JqZWN0IHByb3BlcnR5IChTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5IG9iamVjdCkuIEl0IGhhcyBuYW1lLCBjbGFzc05hbWUsIHR5cGUsIHZpc2libGUsIHJlYWRPbmx5IGFuZCBvdGhlciBwcm9wZXJ0aWVzLlxuICAgKiA8YnIvPiBvcHRpb25zLnJlYWRPbmx5IGEgYm9vbGVhbiB2YWx1ZS4gSXQgaGFzIHZhbHVlIGVxdWFscyB0byBvcHRpb25zLnJlYWRPbmx5IHByb3BlcnR5IGJ5IGRlZmF1bHQuIFlvdSBtYXkgY2hhbmdlIGl0LlxuICAgKiA8YnIvPiBvcHRpb25zLnBhcmVudE9iaiB0aGUgcGFyZW50IG9iamVjdC4gSXQgaXMgbnVsbCBmb3Igbm9uLW5lc3RlZCBwcm9wZXJ0aWVzLiBJdCBpcyBub3QgbnVsbCBmb3IgaXRlbXZhbHVlIG9yIGNvbHVtbiBvYmplY3RzLiBUaGUgcGFyZW50IG9iamVjdCBpcyBhIHF1ZXN0aW9uIChkcm9wZG93biwgcmFkaWdyb3VwLCBjaGVja2JveCwgbWF0cmljZXMgYW5kIHNvIG9uKS5cbiAgICogPGJyLz4gb3B0aW9ucy5wYXJlbnRQcm9wZXJ0eSB0aGUgcGFyZW50IHByb3BlcnR5IChTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5IG9iamVjdCkuIEl0IGlzIG51bGwgZm9yIG5vbi1uZXN0ZWQgcHJvcGVydGllcy4gSXQgaXMgbm90IG51bGwgZm9yIGl0ZW12YWx1ZSBvciBjb2x1bW4gb2JqZWN0cy4gVGhlIHBhcmVudCBvYmplY3QgaXMgY2hvaWNlcywgY29sdW1ucywgcm93cywgdHJpZ2dlcnMgYW5kIHNvIG9uLlxuICAgKi9cbiAgcHVibGljIG9uR2V0UHJvcGVydHlSZWFkT25seTogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgc3VydmV5IGNyZWF0b3IgY3JlYXRlcyBhIHN1cnZleSBvYmplY3QgKFN1cnZleS5TdXJ2ZXkpLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnN1cnZleSB0aGUgc3VydmV5IG9iamVjdCBzaG93aW5nIGluIHRoZSBjcmVhdG9yLlxuICAgKiA8YnIvPiBvcHRpb25zLnJlYXNvbiBpbmRpY2F0ZXMgd2hhdCBjb21wb25lbnQgb2YgdGhlIGNyZWF0b3IgcmVxdWVzdHMgdGhlIHN1cnZleS4gVGhlcmUgYXJlIHNldmVyYWwgcmVhc29uIHR5cGVzOiBcImRlc2lnbmVyXCIgLSBzdXJ2ZXkgZm9yIGRlc2lnbmVyIHN1cnZleSwgXCJ0ZXN0XCIgLSBzdXJ2ZXkgZm9yIFwiVGVzdCBTdXJ2ZXlcIiB0YWIgYW5kIFwiY29uZGl0aW9uRWRpdG9yXCIsIFwiZGVmYXVsdFZhbHVlRWRpdG9yXCIsIFwicmVzdGZ1bEVkaXRvclwiIC0gc3VydmV5cyBmb3IgZGlmZmVyZW50IHByb3BlcnR5IGVkaXRvcnMuXG4gICAqL1xuICBwdWJsaWMgb25TdXJ2ZXlJbnN0YW5jZUNyZWF0ZWQ6IENyZWF0b3JCYXNlRXZlbnQ8VFxuICA+ID0gbmV3IENyZWF0b3JCYXNlRXZlbnQ8VD4oKTtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IGFsbG93cyB0byBkaXNwbGF5IHRoZSBjdXN0b20gbmFtZSBmb3Igb2JqZWN0czogcXVlc3Rpb25zLCBwYWdlcyBhbmQgcGFuZWxzLiBCeSBkZWZhdWx0IHRoZSBvYmplY3QgbmFtZSBpcyB1c2luZy4gWW91IG1heSBzaG93IG9iamVjdCB0aXRsZSBieSBzZXR0aW5nIHNob3dPYmplY3RUaXRsZXMgcHJvcGVydHkgdG8gdHJ1ZS5cbiAgICogVXNlIHRoaXMgZXZlbnQsIGlmIHlvdSB3YW50IGN1c3RvbSBkaXNwbGF5IG5hbWUgZm9yIG9iamVjdHMuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBzdXJ2ZXkgb2JqZWN0LCBTdXJ2ZXksIFBhZ2UsIFBhbmVsIG9yIFF1ZXN0aW9uXG4gICAqIDxici8+IG9wdGlvbnMucmVhc29uIHRoZSBuYW1lIG9mIHRoZSBVSSB0aGF0IHJlcXVlc3RzIHRoZSBvYmplY3QgZGlzcGxheSBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMuZGlzcGxheU5hbWUgY2hhbmdlIHRoaXMgcHJvcGVydHkgdG8gc2hvdyB5b3VyIGN1c3RvbSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBvYmplY3RcbiAgICogQHNlZSBzaG93T2JqZWN0VGl0bGVzXG4gICAqL1xuICBwdWJsaWMgb25HZXRPYmplY3REaXNwbGF5TmFtZTogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBldmVudCB0byBhZGQvcmVtb3ZlL21vZGlmeSB0aGUgZWxlbWVudCAocXVlc3Rpb24vcGFuZWwpIG1lbnUgaXRlbXMuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBzdXJ2ZXkgb2JqZWN0IHdoaWNoIHByb3BlcnR5IGlzIGVkaXRlZCBpbiB0aGUgUHJvcGVydHkgRWRpdG9yLlxuICAgKiA8YnIvPiBvcHRpb25zLml0ZW1zIHRoZSBsaXN0IG9mIG1lbnUgaXRlbXMuIEl0IGhhcyB0d28gcmVxdWlyZWQgZmllbGRzOiB0ZXh0IGFuZCBvbkNsaWNrOiBmdW5jdGlvbihvYmo6IFN1cnZleS5CYXNlKSB7fSBhbmQgb3B0aW9uYWwgbmFtZSBmaWVsZC5cbiAgICogQHNlZSBvbkVsZW1lbnRBbGxvd09wZXJhdGlvbnNcbiAgICovXG4gIHB1YmxpYyBvbkRlZmluZUVsZW1lbnRNZW51SXRlbXM6IENyZWF0b3JCYXNlRXZlbnQ8VFxuICA+ID0gbmV3IENyZWF0b3JCYXNlRXZlbnQ8VD4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgYmVmb3JlIHNob3dpbmcgYSBwcm9wZXJ0eSBpbiB0aGUgUHJvcGVydGllcyBHcmlkIG9yIGluIHRoZSBRdWVzdGlvbiBFZGl0b3IuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBzdXJ2ZXkgb2JqZWN0LCBTdXJ2ZXksIFBhZ2UsIFBhbmVsIG9yIFF1ZXN0aW9uXG4gICAqIDxici8+IG9wdGlvbnMucHJvcGVydHkgdGhlIG9iamVjdCBwcm9wZXJ0eSAoU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSBvYmplY3QpLiBJdCBoYXMgbmFtZSwgY2xhc3NOYW1lLCB0eXBlLCB2aXNpYmxlLCByZWFkT25seSBhbmQgb3RoZXIgcHJvcGVydGllcy5cbiAgICogPGJyLz4gb3B0aW9ucy5jYW5TaG93IGEgYm9vbGVhbiB2YWx1ZS4gSXQgaXMgdHJ1ZSBieSBkZWZhdWx0LiBTZXQgaXQgZmFsc2UgdG8gaGlkZSB0aGUgcHJvcGVydHkgZnJvbSB0aGUgUHJvcGVydGllcyBHcmlkIGFuZCBpbiB0aGUgUXVlc3Rpb24gRWRpdG9yLlxuICAgKiA8YnIvPiBvcHRpb25zLnBhcmVudE9iaiB0aGUgcGFyZW50IG9iamVjdC4gSXQgaXMgbnVsbCBmb3Igbm9uLW5lc3RlZCBwcm9wZXJ0aWVzLiBJdCBpcyBub3QgbnVsbCBmb3IgaXRlbXZhbHVlIG9yIGNvbHVtbiBvYmplY3RzLiBUaGUgcGFyZW50IG9iamVjdCBpcyBhIHF1ZXN0aW9uIChkcm9wZG93biwgcmFkaWdyb3VwLCBjaGVja2JveCwgbWF0cmljZXMgYW5kIHNvIG9uKS5cbiAgICogPGJyLz4gb3B0aW9ucy5wYXJlbnRQcm9wZXJ0eSB0aGUgcGFyZW50IHByb3BlcnR5IChTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5IG9iamVjdCkuIEl0IGlzIG51bGwgZm9yIG5vbi1uZXN0ZWQgcHJvcGVydGllcy4gSXQgaXMgbm90IG51bGwgZm9yIGl0ZW12YWx1ZSBvciBjb2x1bW4gb2JqZWN0cy4gVGhlIHBhcmVudCBvYmplY3QgaXMgY2hvaWNlcywgY29sdW1ucywgcm93cywgdHJpZ2dlcnMgYW5kIHNvIG9uLlxuICAgKiA8YnIvPlxuICAgKiA8YnIvPiBbRXhhbXBsZTogSGlkZSBhIGNhdGVnb3J5IGluIHRoZSBQcm9wZXJ0aWVzIEdyaWRdKGh0dHBzOi8vc3VydmV5anMuaW8vRXhhbXBsZXMvU3VydmV5LUNyZWF0b3I/aWQ9aGlkZWNhdGVnb3J5aW5wcm9wZXJ0aWVzZ3JpZClcbiAgICovXG4gIHB1YmxpYyBvblNob3dpbmdQcm9wZXJ0eTogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuICAvKipcbiAgICogQERlcHJlY2F0ZWQgT2Jzb2xldGUsIHBsZWFzZSB1c2Ugb25TaG93aW5nUHJvcGVydHkgZXZlbnQuXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgYmVmb3JlIHNob3dpbmcgYSBwcm9wZXJ0eSBpbiB0aGUgUHJvcGVydHkgR3JpZCBvciBpbiBRdWVzdGlvbiBFZGl0b3IuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBzdXJ2ZXkgb2JqZWN0LCBTdXJ2ZXksIFBhZ2UsIFBhbmVsIG9yIFF1ZXN0aW9uXG4gICAqIDxici8+IG9wdGlvbnMucHJvcGVydHkgdGhlIG9iamVjdCBwcm9wZXJ0eSAoU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSBvYmplY3QpLiBJdCBoYXMgbmFtZSwgY2xhc3NOYW1lLCB0eXBlLCB2aXNpYmxlLCByZWFkT25seSBhbmQgb3RoZXIgcHJvcGVydGllcy5cbiAgICogPGJyLz4gb3B0aW9ucy5jYW5TaG93IGEgYm9vbGVhbiB2YWx1ZS4gSXQgaXMgdHJ1ZSBieSBkZWZhdWx0LiBTZXQgaXQgZmFsc2UgdG8gaGlkZSB0aGUgcHJvcGVydHkgZnJvbSB0aGUgUHJvcGVydHkgR3JpZCBvciBpbiBRdWVzdGlvbiBFZGl0b3JcbiAgICogPGJyLz4gb3B0aW9ucy5wYXJlbnRPYmogdGhlIHBhcmVudCBvYmplY3QuIEl0IGlzIG51bGwgZm9yIG5vbi1uZXN0ZWQgcHJvcGVydGllcy4gSXQgaXMgbm90IG51bGwgZm9yIGl0ZW12YWx1ZSBvciBjb2x1bW4gb2JqZWN0cy4gVGhlIHBhcmVudCBvYmplY3QgaXMgYSBxdWVzdGlvbiAoZHJvcGRvd24sIHJhZGlncm91cCwgY2hlY2tib3gsIG1hdHJpY2VzIGFuZCBzbyBvbikuXG4gICAqIDxici8+IG9wdGlvbnMucGFyZW50UHJvcGVydHkgdGhlIHBhcmVudCBwcm9wZXJ0eSAoU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSBvYmplY3QpLiBJdCBpcyBudWxsIGZvciBub24tbmVzdGVkIHByb3BlcnRpZXMuIEl0IGlzIG5vdCBudWxsIGZvciBpdGVtdmFsdWUgb3IgY29sdW1uIG9iamVjdHMuIFRoZSBwYXJlbnQgb2JqZWN0IGlzIGNob2ljZXMsIGNvbHVtbnMsIHJvd3MsIHRyaWdnZXJzIGFuZCBzbyBvbi5cbiAgICovXG4gIHB1YmxpYyBvbkNhblNob3dQcm9wZXJ0eTogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSB0aGlzLm9uU2hvd2luZ1Byb3BlcnR5O1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCBiZWZvcmUgcmVuZGVyaW5nIGEgZGVsZXRlIGJ1dHRvbiBpbiB0aGUgUHJvcGVydHkgR3JpZCBvciBpbiBRdWVzdGlvbiBFZGl0b3IuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBzdXJ2ZXkgUXVlc3Rpb25cbiAgICogPGJyLz4gb3B0aW9ucy5pdGVtIHRoZSBvYmplY3QgcHJvcGVydHkgKFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkgb2JqZWN0KS4gSXQgaGFzIG5hbWUsIGNsYXNzTmFtZSwgdHlwZSwgdmlzaWJsZSwgcmVhZE9ubHkgYW5kIG90aGVyIHByb3BlcnRpZXNcbiAgICogPGJyLz4gb3B0aW9ucy5jYW5EZWxldGUgYSBib29sZWFuIHZhbHVlLiBJdCBpcyB0cnVlIGJ5IGRlZmF1bHQuIFNldCBpdCBmYWxzZSB0byByZW1vdmUgZGVsZXRlIGJ1dHRvbiBmcm9tIHRoZSBQcm9wZXJ0eSBHcmlkIG9yIGluIFF1ZXN0aW9uIEVkaXRvclxuICAgKi9cbiAgcHVibGljIG9uQ2FuRGVsZXRlSXRlbTogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCBvbiBkZWxldGluZyBhIGNvbGxlY3Rpb24gaXRlbSBmcm9tIHRoZSBQcm9wZXJ0eSBFZGl0b3IuIEZvciBleGFtcGxlOiBjb2x1bW4gaW4gY29sdW1ucyBlZGl0b3Igb3IgaXRlbSBpbiBjaG9pY2VzIGFuZCBzbyBvbi5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5vYmogdGhlIHN1cnZleSBvYmplY3Q6IFF1ZXN0aW9uLCBQYW5lbCwgUGFnZSBvciBTdXJ2ZXlcbiAgICogPGJyLz4gb3B0aW9ucy5wcm9wZXJ0eSB0aGUgY29sbGVjdGlvbiBwcm9wZXJ0eSAoU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSBvYmplY3QpLiBJdCBoYXMgbmFtZSwgY2xhc3NOYW1lLCB0eXBlLCB2aXNpYmxlLCByZWFkT25seSBhbmQgb3RoZXIgcHJvcGVydGllc1xuICAgKiA8YnIvPiBvcHRpb25zLnByb3BlcnR5TmFtZSB0aGUgY29sbGVjdGlvbiBwcm9wZXJ0eSBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMuY29sbGVjdGlvbiB0aGUgZWRpdGluZyBjb2xsZWN0aW9uIHdoZXJlIGRlbGV0aW5nIGl0ZW0gaXMgbG9jYXRlZC4gSXQgaXMgY2FuIGJlIGNvbHVtbnMgaW4gdGhlIG1hdHJpY2VzIG9yIGNob2ljZXMgaW4gZHJvcGRvd24gcXVlc3Rpb24gYW5kIHNvIG9uLlxuICAgKiA8YnIvPiBvcHRpb25zLml0ZW0gdGhlIGNvbGxlY3Rpb24gaXRlbSB0aGF0IHdlIGFyZSBnb2luZyB0byBkZWxldGVcbiAgICogPGJyLz4gb3B0aW9ucy5hbGxvd0RlbGV0ZSBhIGJvb2xlYW4gdmFsdWUuIEl0IGlzIHRydWUgYnkgZGVmYXVsdC4gU2V0IGl0IGZhbHNlIHRvIGFib25kb21lIHRoZSBlbGVtZW50IHJlbW92aW5nIGZyb20gdGhlIGNvbGxlY3Rpb25cbiAgICovXG4gIHB1YmxpYyBvbkNvbGxlY3Rpb25JdGVtRGVsZXRpbmc6IENyZWF0b3JCYXNlRXZlbnQ8VFxuICA+ID0gbmV3IENyZWF0b3JCYXNlRXZlbnQ8VD4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgb24gYWRkaW5nIGEgbmV3IFN1cnZleS5JdGVtVmFsdWUgb2JqZWN0LiBJdCB1c2VzIGFzIGFuIGVsZW1lbnQgaW4gY2hvaWNlcyBhcnJheSBpbiBSYWRpb2dyb3VwLCBjaGVja2JveCBhbmQgZHJvcGRvd24gcXVlc3Rpb25zIG9yIE1hdHJpeCBjb2x1bW5zIGFuZCByb3dzIHByb3BlcnRpZXMuXG4gICAqIFVzZSB0aGlzIGV2ZW50LCB0byBzZXQgSXRlbVZhbHVlLnZhbHVlIGFuZCBJdGVtVmFsdWUudGV4dCBwcm9wZXJ0aWVzIGJ5IGRlZmF1bHQgb3Igc2V0IGEgdmFsdWUgdG8gdGhlIGN1c3RvbSBwcm9wZXJ0eS5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyIC8+IG9wdGlvbnMub2JqIHRoZSBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgaXRlbXNWYWx1ZXMgYXJyYXksIGZvciBleGFtcGxlIHNlbGVjdG9yLCByYXRpbmcgYW5kIHNpbmdsZSBjaG9pY2UgbWF0cml4IHF1ZXN0aW9ucy5cbiAgICogPGJyLz4gb3B0aW9ucy5wcm9wZXJ0eU5hbWUgIHRoZSBvYmplY3QgcHJvcGVydHkgTmFtZS4gSXQgY2FuIGJlIFwiY2hvaWNlc1wiIGZvciBzZWxlY3RvciBxdWVzdGlvbnMgb3IgcmF0ZVZhbHVlcyBmb3IgcmF0aW5nIHF1ZXN0aW9uIG9yIGNvbHVtbnMvcm93cyBmb3Igc2luZ2xlIGNob2ljZSBtYXRyaXguXG4gICAqIDxici8+IG9wdGlvbnMubmV3SXRlbSBhIG5ldyBjcmVhdGVkIFN1cnZleS5JdGVtVmFsdWUgb2JqZWN0LlxuICAgKiA8YnIvPiBvcHRpb25zLml0ZW1WYWx1ZXMgYW4gZWRpdGluZyBTdXJ2ZXkuSXRlbVZhbHVlIGFycmF5LiBuZXdJdGVtIG9iamVjdCBpcyBub3QgYWRkZWQgeWV0IGludG8gdGhpcyBhcnJheS5cbiAgICovXG4gIHB1YmxpYyBvbkl0ZW1WYWx1ZUFkZGVkOiBDcmVhdG9yQmFzZUV2ZW50PFRcbiAgPiA9IG5ldyBDcmVhdG9yQmFzZUV2ZW50PFQ+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIHdoZW4gYSB1c2VyIGFkZHMgYSBuZXcgY29sdW1uIGludG8gTWF0cml4RHJvcGRvd24gb3IgTWF0cml4RHluYW1pYyBxdWVzdGlvbnMuIFVzZSBpdCB0byBzZXQgc29tZSBwcm9wZXJ0aWVzIG9mIFN1cnZleS5NYXRyaXhEcm9wZG93bkNvbHVtbiBieSBkZWZhdWx0LCBmb3IgZXhhbXBsZSBuYW1lIG9yIGEgY3VzdG9tIHByb3BlcnR5LlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLm1hdHJpeCBhIG1hdHJpeCBxdWVzdGlvbiB3aGVyZSBjb2x1bW4gaXMgbG9jYXRlZCwgbWF0cml4LmNvbHVtbnMuXG4gICAqIDxici8+IG9wdGlvbnMubmV3Q29sdW1uIGEgbmV3IGNyZWF0ZWQgU3VydmV5Lk1hdHJpeERyb3Bkb3duQ29sdW1uIG9iamVjdC5cbiAgICogPGJyLz4gb3B0aW9ucy5jb2x1bW5zIGVkaXRhYmxlIGNvbHVtbnMgb2JqZWN0cy4gVGhleSBjYW4gYmUgZGlmZmVyZW50IGZyb20gb3B0aW9ucy5tYXRyaXguY29sdW1ucy4gb3B0aW9ucy5jb2x1bW5zIGFuZCBvcHRpb25zLm1hdHJpeC5jb2x1bW5zIGFyZSBlcXVhbCBhZnRlciB1c2VyIHByZXNzIEFwcGx5IG9yIENhbmNlbCBhbmQgb3B0aW9ucy5jb2x1bW5zIHdpbGwgYmUgc2V0IHRvIG9wdGlvbnMubWF0cml4LmNvbHVtbnMgb3IgcmVzZXQgdG8gaW5pdGlhbCBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBvbk1hdHJpeENvbHVtbkFkZGVkOiBDcmVhdG9yQmFzZUV2ZW50PFRcbiAgPiA9IG5ldyBDcmVhdG9yQmFzZUV2ZW50PFQ+KCk7XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBldmVudCB0byBjb250cm9sIFByb3BlcnR5IEVkaXRvcnMgVUkuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBzdXJ2ZXkgb2JqZWN0IHdoaWNoIHByb3BlcnR5IGlzIGVkaXRlZCBpbiB0aGUgUHJvcGVydHkgRWRpdG9yLlxuICAgKiA8YnIvPiBvcHRpb25zLnByb3BlcnR5TmFtZSAgdGhlIG5hbWUgb2YgdGhlIGVkaXRlZCBwcm9wZXJ0eS5cbiAgICogPGJyLz4gb3B0aW9ucy5lZGl0b3JPcHRpb25zICBvcHRpb25zIHRoYXQgY2FuIGJlIGNoYW5nZWQuXG4gICAqIDxici8+IG9wdGlvbnMuZWRpdG9yT3B0aW9ucy5hbGxvd0FkZFJlbW92ZUl0ZW1zIGEgYm9vbGVhbiBwcm9wZXJ0eSwgdHJ1ZSBieSBkZWZhdWx0LiBTZXQgaXQgZmFsc2UgdG8gZGlzYWJsZSBhZGQvcmVtb3ZlIGl0ZW1zIGluIGFycmF5IHByb3BlcnRpZXMuIEZvciBleGFtcGxlICdjaG9pY2VzJywgJ2NvbHVtbnMnLCAncm93cycuXG4gICAqIDxici8+IG9wdGlvbnMuZWRpdG9yT3B0aW9ucy5hbGxvd1JlbW92ZUFsbEl0ZW1zIGEgYm9vbGVhbiBwcm9wZXJ0eSwgdHJ1ZSBieSBkZWZhdWx0LiBTZXQgaXQgZmFsc2UgdG8gZGlzYWJsZSByZW1vdmUgYWxsIGl0ZW1zIGluIGFycmF5IHByb3BlcnRpZXMuIEZvciBleGFtcGxlICdjaG9pY2VzJywgJ2NvbHVtbnMnLCAncm93cycuXG4gICAqIDxici8+IG9wdGlvbnMuZWRpdG9yT3B0aW9ucy5zaG93VGV4dFZpZXcgYSBib29sZWFuIHByb3BlcnR5LCB0cnVlIGJ5IGRlZmF1bHQuIFNldCBpdCBmYWxzZSB0byBkaXNhYmxlIFwiRmFzdCBFbnRyeVwiIHRhYiBmb3IgXCJjaG9pY2VzXCIgcHJvcGVydHkuXG4gICAqIDxici8+IG9wdGlvbnMuZWRpdG9yT3B0aW9ucy5pdGVtc0VudHJ5VHlwZSBhIHN0cmluZyBwcm9wZXJ0eSwgJ2Zvcm0nIGJ5IGRlZmF1bHQuIFNldCBpdCAnZmFzdCcgdG8gc2hvdyBcIkZhc3QgRW50cnlcIiB0YWIgZm9yIFwiY2hvaWNlc1wiIHByb3BlcnR5IGJ5IGRlZmF1bHQuXG4gICAqL1xuICBwdWJsaWMgb25TZXRQcm9wZXJ0eUVkaXRvck9wdGlvbnM6IENyZWF0b3JCYXNlRXZlbnQ8VFxuICA+ID0gbmV3IENyZWF0b3JCYXNlRXZlbnQ8VD4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgb24gZ2VuZXJhdGlvbiBhIG5ldyBuYW1lIGZvciBhIG5ldyBjcmVhdGVkIGVsZW1lbnQuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMuZWxlbWVudCBhIG5ldyBjcmVhdGVkIHN1cnZleSBlbGVtZW50LiBJdCBjYW4gYmUgcXVlc3Rpb24sIHBhbmVsIG9yIHBhZ2VcbiAgICogPGJyLz4gb3B0aW9ucy5uYW1lIGEgbmV3IHN1Z2dlc3RlZCBuYW1lLCB0aGF0IGlzIHVuaXF1ZSBmb3IgdGhlIGN1cnJlbnQgc3VydmV5LiBZb3UgY2FuIHN1Z2dlc3QgeW91ciBvd24gbmFtZS4gSWYgaXQgaXMgdW5pcXVlLCBjcmVhdG9yIHdpbGwgYXNzaWduIGl0IHRvIHRoZSBlbGVtZW50LlxuICAgKiA8YnIvPiBvcHRpb25zLmlzVW5pcXVlIGEgYm9vbGVhbiBwcm9wZXJ0eSwgc2V0IHRoaXMgcHJvcGVydHkgdG8gZmFsc2UsIGlmIHlvdSB3YW50IHRvIGFzayBDcmVhdG9yIHRvIGdlbmVyYXRlIGFub3RoZXIgbmFtZVxuICAgKi9cbiAgcHVibGljIG9uR2VuZXJhdGVOZXdOYW1lOiBDcmVhdG9yQmFzZUV2ZW50PFRcbiAgPiA9IG5ldyBDcmVhdG9yQmFzZUV2ZW50PFQ+KCk7XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBldmVudCB0byBzaG93IGEgY3VzdG9tIGVycm9yIGluIHRoZSBRdWVzdGlvbiBFZGl0b3Igb24gcHJlc3NpbmcgQXBwbHkgb3IgT0sgYnV0dG9ucywgaWYgdGhlIHZhbHVlcyBhcmUgbm90IHNldCBjb3JyZWN0bHkuIFRoZSBlcnJvciB3aWxsIGJlIGRpc3BsYXllZCB1bmRlciB0aGUgcHJvcGVydHkgZWRpdG9yLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLm9iaiB0aGUgc3VydmV5IG9iamVjdCB3aGljaCBwcm9wZXJ0eSBpcyBlZGl0ZWQgaW4gdGhlIFByb3BlcnR5IEVkaXRvci5cbiAgICogPGJyLz4gb3B0aW9ucy5wcm9wZXJ0eU5hbWUgIHRoZSBuYW1lIG9mIHRoZSBlZGl0ZWQgcHJvcGVydHkuXG4gICAqIDxici8+IG9wdGlvbnMudmFsdWUgdGhlIHByb3BlcnR5IHZhbHVlLlxuICAgKiA8YnIvPiBvcHRpb25zLmVycm9yIHRoZSBlcnJvciB5b3Ugd2FudCB0byBkaXNwbGF5LiBTZXQgdGhlIGVtcHR5IHN0cmluZyAodGhlIGRlZmF1bHQgdmFsdWUpIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gZXJyb3JzLlxuICAgKiBAc2VlIG9uUHJvcGVydHlWYWx1ZUNoYW5naW5nXG4gICAqL1xuICBwdWJsaWMgb25Qcm9wZXJ0eVZhbGlkYXRpb25DdXN0b21FcnJvcjogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBlbnRlcmVkIGluIHRoZSBwcm9wZXJ0eSBlZGl0b3IuIFlvdSBtYXkgY2FsbCBhIHZhbGlkYXRpb24sIHNvIGFuIGVuZCB1c2VyIHNlZXMgdGhlIGVycm9yIGltbWVkaWF0ZWx5XG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBzdXJ2ZXkgb2JqZWN0IHdoaWNoIHByb3BlcnR5IGlzIGVkaXRlZCBpbiB0aGUgUHJvcGVydHkgRWRpdG9yLlxuICAgKiA8YnIvPiBvcHRpb25zLnByb3BlcnR5TmFtZSAgdGhlIG5hbWUgb2YgdGhlIGVkaXRlZCBwcm9wZXJ0eS5cbiAgICogPGJyLz4gb3B0aW9ucy52YWx1ZSB0aGUgcHJvcGVydHkgdmFsdWUuXG4gICAqIDxici8+IG9wdGlvbnMubmV3VmFsdWUgc2V0IHRoZSBjb3JyZWN0ZWQgdmFsdWUgaW50byB0aGlzIHByb3BlcnR5LiBMZWF2ZSBpdCBudWxsIGlmIHlvdSBhcmUgb2sgd2l0aCB0aGUgZW50ZXJlZCB2YWx1ZS5cbiAgICogPGJyLz4gb3B0aW9ucy5kb1ZhbGlkYXRpb24gc2V0IHRoZSB2YWx1ZSB0byB0cnVlIHRvIGNhbGwgdGhlIHByb3BlcnR5IHZhbGlkYXRpb24uIElmIHRoZXJlIGlzIGFuIGVycm9yLCB0aGUgdXNlciBzZWVzIGl0IGltbWVkaWF0ZWx5LlxuICAgKiBAc2VlIG9uUHJvcGVydHlWYWxpZGF0aW9uQ3VzdG9tRXJyb3JcbiAgICovXG4gIHB1YmxpYyBvblByb3BlcnR5VmFsdWVDaGFuZ2luZzogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gbW9kaWZ5IHRoZSBsaXN0IChuYW1lIGFuZCB0aXRsZXMpIG9mIHRoZSBxdWVzdGlvbnMgYXZhaWxhYmxlIGluIGEgY29uZGl0aW9uIGVkaXRvci5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5vYmogdGhlIHN1cnZleSBvYmplY3Qgd2hpY2ggcHJvcGVydHkgaXMgZWRpdGVkIGluIHRoZSBQcm9wZXJ0eSBFZGl0b3IuXG4gICAqIDxici8+IG9wdGlvbnMucHJvcGVydHlOYW1lICB0aGUgbmFtZSBvZiB0aGUgZWRpdGVkIHByb3BlcnR5LlxuICAgKiA8YnIvPiBvcHRpb25zLmVkaXRvciB0aGUgaW5zdGFuY2Ugb2YgUHJvcGVydHkgRWRpdG9yLlxuICAgKiA8YnIvPiBvcHRpb25zLmxpc3QgdGhlIGxpc3Qgb2YgdGhlIHF1ZXN0aW9ucyBhdmFpbGFibGUgZm9yIGNvbmRpdGlvblxuICAgKi9cbiAgcHVibGljIG9uQ29uZGl0aW9uUXVlc3Rpb25zR2V0TGlzdDogQ3JlYXRvckJhc2VFdmVudDxUXG4gID4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gbW9kaWZ5IHRoZSBsaXN0IG9mIHRoZSBzdHJpbmdzIGF2YWlsYWJsZSBpbiB0aGUgVHJhbnNsYXRpb24gdGFiLlxuICAgKlxuICAgKiBUaGUgZXZlbnQgaGFuZGxlciBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOlxuICAgKlxuICAgKiAtIGBzZW5kZXJgIC0gQSBTdXJ2ZXkgQ3JlYXRvciBpbnN0YW5jZSB0aGF0IHJhaXNlZCB0aGUgZXZlbnQuXG4gICAqIC0gYG9wdGlvbnMub2JqYCAtIEEgc3VydmV5IG9iamVjdCBpbnN0YW5jZSAoc3VydmV5LCBwYWdlLCBwYW5lbCwgcXVlc3Rpb24pIHdob3NlIHN0cmluZyB0cmFuc2xhdGlvbnMgYXJlIGJlaW5nIGVkaXRlZCBpbiB0aGUgVHJhbnNsYXRpb24gdGFiLlxuICAgKiAtIGBvcHRpb25zLnByb3BlcnR5TmFtZWAgLSBUaGUgbmFtZSBvZiBhIHByb3BlcnR5IGJlaW5nIHRyYW5zbGF0ZWQuXG4gICAqIC0gYG9wdGlvbnMudmlzaWJsZWAgLSBBIEJvb2xlYW4gdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHByb3BlcnR5IHZpc2liaWxpdHkuIFNldCBpdCB0byBgZmFsc2VgIHRvIGhpZGUgdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIG9uVHJhbnNsYXRpb25TdHJpbmdWaXNpYmlsaXR5OiBDcmVhdG9yQmFzZUV2ZW50PFQ+ID0gbmV3IENyZWF0b3JCYXNlRXZlbnQ8VD4oKTtcbiAgLyoqXG4gICAqIFVzZSB0aGlzIGV2ZW50IHRvIGRlZmluZSBpcyB0aGUgbG9jYWxlIGluaXRpYWxseSBzZWxlY3RlZCAoZGVmYXVsdCB2YWx1ZSkgYW5kIHJlYWR5IGZvciB0cmFuc2xhaW9uIG9yIGl0IGlzIHVuc2VsZWN0ZWQuXG4gICAqXG4gICAqIFRoZSBldmVudCBoYW5kbGVyIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhcmd1bWVudHM6XG4gICAqXG4gICAqIC0gYHNlbmRlcmAgLSBBIFN1cnZleSBDcmVhdG9yIGluc3RhbmNlIHRoYXQgcmFpc2VkIHRoZSBldmVudC5cbiAgICogLSBgb3B0aW9ucy5sb2NhbGVgIC0gdGhlIGxvY2FsZSBuYW1lLCBsaWtlICdlbicsICdkZScgYW5kIHNvIG9uLlxuICAgKiAtIGBvcHRpb25zLmlzU2VsZWN0ZWRgIC0gaXQgaXMgdHJ1ZSBieSBkZWZhdWx0LiBTZXQgaXQgdG8gZmFsc2UgdG8gbWFrZSB0aGUgdHJhbnNsYXRpb24gdW5zZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyBvblRyYW5zbGF0aW9uTG9jYWxlSW5pdGlhbGx5U2VsZWN0ZWQ6IENyZWF0b3JCYXNlRXZlbnQ8VD4gPSBuZXcgQ3JlYXRvckJhc2VFdmVudDxUPigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGNhbGxiYWNrIGlzIHVzZWQgaW50ZXJuYWxseSBmb3IgcHJvdmlkaW5nIHN1cnZleSBKU09OIHRleHQuXG4gICAqL1xuICBwdWJsaWMgZ2V0U3VydmV5SlNPTlRleHRDYWxsYmFjazogKCkgPT4geyB0ZXh0OiBzdHJpbmcsIGlzTW9kaWZpZWQ6IGJvb2xlYW4gfTtcbiAgLyoqXG4gICAqIFRoaXMgY2FsbGJhY2sgaXMgdXNlZCBpbnRlcm5hbGx5IGZvciBzZXR0aW5nIHN1cnZleSBKU09OIHRleHQuXG4gICAqL1xuICBwdWJsaWMgc2V0U3VydmV5SlNPTlRleHRDYWxsYmFjazogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcblxuICAvKipcbiAgICogWW91IG5lZWQgdG8gc2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSBpZiB5b3Ugd2FudCB0byB1c2UgdGFicyBpbnN0ZWFkIG9mIGFjY29yZGlvbiBpbiB0aGUgcG9wdXAgZWxlbWVudCdzIGVkaXRvci5cbiAgICovXG4gIHB1YmxpYyB1c2VUYWJzSW5FbGVtZW50RWRpdG9yID0gZmFsc2U7XG4gIC8qKlxuICAgKiBZb3UgbmVlZCB0byBzZXQgdGhpcyBwcm9wZXJ0eSB0byB2YWx1ZSBiaWdnZXIgdGhhbiAwIHRvIGRpc2FibGUgYWRkaW5nIG1vcmUgbG9naWMgaXRlbXMgaW4gY29uZGl0aW9uIHRoYW4gdGhpcyB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBtYXhMb2dpY0l0ZW1zSW5Db25kaXRpb246IG51bWJlciA9IC0xO1xuXG4gIC8qKlxuICAgKiBZb3UgbmVlZCB0byBzZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIGlmIHlvdSB3YW50IHRvIHNob3cgdGl0bGVzIGluc3RlYWQgb2YgbmFtZXMgaW4gcGFnZXMgZWRpdG9yIGFuZCBvYmplY3Qgc2VsZWN0b3IuXG4gICAqIEBzZWUgb25TaG93T2JqZWN0RGlzcGxheU5hbWVcbiAgICovXG4gIHB1YmxpYyBzaG93T2JqZWN0VGl0bGVzID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFlvdSBuZWVkIHRvIHNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUgaWYgeW91IHdhbnQgdG8gc2hvdyB0aXRsZXMgaW5zdGVhZCBvZiBuYW1lcyBpbiBleHByZXNzaW9uIGVkaXRvci5cbiAgICovXG4gIHB1YmxpYyBzaG93VGl0bGVzSW5FeHByZXNzaW9ucyA9IGZhbHNlO1xuICAvKipcbiAgICogWW91IG5lZWQgdG8gc2V0IHRoaXMgcHJvcGVydHkgdG8gZmFsc2UgdG8gYWxsb3cgeW91ciB1c2VycyBidWlsZCBleHByZXNzaW9ucyB2aXN1YWxseSBvbmx5LCB3aXRob3V0IGVkaXRpbmcgdGhlbSBpbiB0ZXh0IGVkaXRvci5cbiAgICovXG4gIHB1YmxpYyBhbGxvd0VkaXRFeHByZXNzaW9uc0luVGV4dEVkaXRvciA9IHRydWU7XG4gIC8qKlxuICAgKiBZb3UgbmVlZCB0byBzZXQgdGhpcyBwcm9wZXJ0eSB0byBudW1iZXIgbW9yZSB0aGFuIDAgdG8gbGltaXQgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoYXQgdXNlcnMgY2FuIGNyZWF0ZSBmb3IgbWF0cml4IGR5bmFtaWMvbWF0cml4IGRyb3Bkb3duIHF1ZXN0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBtYXhpbXVtQ29sdW1uc0NvdW50ID0gMDtcblxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gZmFsc2UgdG8gaGlkZSB0aGUgcGFnZXMgc2VsZWN0b3IgaW4gdGhlIFRlc3QgU3VydmV5IFRhYlxuICAgKi9cbiAgcHVibGljIHNob3dQYWdlc0luVGVzdFN1cnZleVRhYiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGZhbHNlIHRvIGhpZGUgdGhlIGRldmljZSBzaW11bGF0b3IgaW4gdGhlIFRlc3QgU3VydmV5IFRhYlxuICAgKi9cbiAgcHVibGljIHNob3dTaW11bGF0b3JJblRlc3RTdXJ2ZXlUYWIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBmYWxzZSB0byBkaXNhYmxlIHBhZ2VzIGFkZGluZywgZWRpdGluZyBhbmQgZGVsZXRpbmdcbiAgICovXG4gIHB1YmxpYyBhbGxvd01vZGlmeVBhZ2VzID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgX1wiYXV0b1wiXy4gSXQgc2hvd3MgdGhlIGxhbmd1YWdlIHNlbGVjdG9yIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gdHdvIGxhbmd1YWdlcyBhcmUgdXNpbmcgaW4gdGhlIHN1cnZleS5cbiAgICogSXQgc2hvd3Mgb25seSB1c2VkIGxhbmd1YWdlcyBpbiB0aGUgc3VydmV5LlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBfZmFsc2VfIHRvIGhpZGUgdGhlIGRlZmF1bHQgbGFuZ3VhZ2Ugc2VsZWN0b3IgaW4gdGhlIFRlc3QgU3VydmV5IFRhYi5cbiAgICogU2V0IGl0IHRvIF90cnVlXyB0byBzaG93IHRoaXMgc2VsZWN0b3IgZXZlbiBpZiB0aGVyZSBpcyBvbmx5IG9uZSBsYW5ndWFnZSBpbiB0aGUgc3VydmV5XG4gICAqIFNldCBpdCB0byBfYWxsXyB0byBzaG93IHRoZSBzZWxlY3RvciB3aXRoIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2VzICgzMCspXG4gICAqL1xuICBwdWJsaWMgc2hvd0RlZmF1bHRMYW5ndWFnZUluVGVzdFN1cnZleVRhYjogYm9vbGVhbiB8IHN0cmluZyA9IFwiYXV0b1wiO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBmYWxzZSB0byBoaWRlIHRoZSBzaG93IGludmlzaWJsZSBlbGVtZW50IGNoZWNrYm94IGluIHRoZSBUZXN0IFN1cnZleSBUYWJcbiAgICovXG4gIHB1YmxpYyBzaG93SW52aXNpYmxlRWxlbWVudHNJblRlc3RTdXJ2ZXlUYWIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIGlmIHlvdSB3YW50IHRvIHNob3cgXCJwYWdlIHNlbGVjdG9yXCIgaW4gdGhlIHRvb2xhYmFyIGluc3RlYWQgb2YgXCJwYWdlcyBlZGl0b3JcIlxuICAgKi9cbiAgcHVibGljIHNob3dQYWdlU2VsZWN0b3JJblRvb2xiYXIgPSBmYWxzZTtcblxuICBwdWJsaWMgdGFicyA9IGtvLm9ic2VydmFibGVBcnJheSgpO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsb2NhbGl6ZWQgc3RyaW5nIGJ5IGl0cyBpZFxuICAgKiBAcGFyYW0gc3RyIHRoZSBzdHJpbmcgaWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0TG9jU3RyaW5nKHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoc3RyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gdHJ1ZSB0byBzaG93IFwiSlNPTiBFZGl0b3JcIiB0YWIgYW5kIHRvIGZhbHNlIHRvIGhpZGUgdGhlIHRhYlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93RGVzaWduZXJUYWIoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0Rlc2lnbmVyVGFiVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNob3dEZXNpZ25lclRhYih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd0Rlc2lnbmVyVGFiVmFsdWUodmFsdWUpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gdHJ1ZSB0byBzaG93IFwiSlNPTiBFZGl0b3JcIiB0YWIgYW5kIHRvIGZhbHNlIHRvIGhpZGUgdGhlIHRhYlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93SlNPTkVkaXRvclRhYigpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93SlNPTkVkaXRvclRhYlZhbHVlKCk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93SlNPTkVkaXRvclRhYih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd0pTT05FZGl0b3JUYWJWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIHRvIHNob3cgXCJUZXN0IFN1cnZleVwiIHRhYiBhbmQgdG8gZmFsc2UgdG8gaGlkZSB0aGUgdGFiXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dUZXN0U3VydmV5VGFiKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dUZXN0U3VydmV5VGFiVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNob3dUZXN0U3VydmV5VGFiKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93VGVzdFN1cnZleVRhYlZhbHVlKHZhbHVlKTtcbiAgfVxuICAvKipcbiAgICogQERlcHJlY2F0ZWQgT2Jzb2xldGUsIHVzZSBzaG93RW1iZWRkZWRTdXJ2ZXlUYWJcbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd0VtYmVkZWRTdXJ2ZXlUYWIoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0VtYmVkZGVkU3VydmV5VGFiO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd0VtYmVkZWRTdXJ2ZXlUYWIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dFbWJlZGRlZFN1cnZleVRhYiA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIHRvIHNob3cgXCJFbWJlZCBTdXJ2ZXlcIiB0YWIgYW5kIHRvIGZhbHNlIHRvIGhpZGUgdGhlIHRhYlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93RW1iZWRkZWRTdXJ2ZXlUYWIoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0VtYmVkZGVkU3VydmV5VGFiVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNob3dFbWJlZGRlZFN1cnZleVRhYih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd0VtYmVkZGVkU3VydmV5VGFiVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIHRvIHNob3cgXCJMb2dpY1wiIHRhYiBhbmQgdG8gZmFsc2UgdG8gaGlkZSB0aGUgdGFiXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dMb2dpY1RhYigpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93TG9naWNUYWJWYWx1ZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd0xvZ2ljVGFiKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93TG9naWNUYWJWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIHRvIHNob3cgXCJUcmFuc2xhdGlvblwiIHRhYiBhbmQgdG8gZmFsc2UgdG8gaGlkZSB0aGUgdGFiXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dUcmFuc2xhdGlvblRhYigpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93VHJhbnNsYXRpb25UYWJWYWx1ZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd1RyYW5zbGF0aW9uVGFiKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93VHJhbnNsYXRpb25UYWJWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQSBib29sZWFuIHByb3BlcnR5LCBmYWxzZSBieSBkZWZhdWx0LiBTZXQgaXQgdG8gdHJ1ZSB0byBjYWxsIHByb3RlY3RlZCBkb1NhdmUgbWV0aG9kIGF1dG9tYXRpY2FsbHkgb24gc3VydmV5IGNoYW5naW5nLlxuICAgKi9cbiAgcHVibGljIGdldCBpc0F1dG9TYXZlKCkge1xuICAgIHJldHVybiB0aGlzLmtvQXV0b1NhdmUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzQXV0b1NhdmUobmV3VmFsKSB7XG4gICAgdGhpcy5rb0F1dG9TYXZlKG5ld1ZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byBmYWxzZSB0byBzdXBwcmVzcyBhbiBhbGVydCBtZXNzYWdlIGFib3V0IGVycm9yIG9uIHNhdmluZyB0aGUgc3VydmV5IGludG8gZGF0YWJhc2UuXG4gICAqL1xuICBwdWJsaWMgc2hvd0Vycm9yT25GYWlsZWRTYXZlOiBib29sZWFuID0gdHJ1ZTtcblxuICBrb1JlYWRPbmx5ID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIG9uU2V0UmVhZE9ubHkobmV3VmFsOiBib29sZWFuKSB7IH1cblxuICAvKipcbiAgICogQSBib29sZWFuIHByb3BlcnR5LCBmYWxzZSBieSBkZWZhdWx0LiBTZXQgaXQgdG8gdHJ1ZSB0byBkZW55IGVkaXRpbmcuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCkge1xuICAgIHJldHVybiB0aGlzLmtvUmVhZE9ubHkoKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlYWRPbmx5KG5ld1ZhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRleHQ7XG4gICAgdGhpcy5rb1JlYWRPbmx5KG5ld1ZhbCk7XG4gICAgdGhpcy5vblNldFJlYWRPbmx5KG5ld1ZhbCk7XG4gICAgdGhpcy50ZXh0ID0gdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBZb3UgaGF2ZSByaWdodCB0byBzZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIGlmIHlvdSBoYXZlIGJvdWdodCB0aGUgY29tbWVyY2lhbCBsaWNlbmNlIG9ubHkuXG4gICAqIEl0IHdpbGwgcmVtb3ZlIHRoZSB0ZXh0IGFib3V0IG5vbi1jb21tZXJpY2FsIHVzYWdlIG9uIHRoZSB0b3Agb2YgdGhlIHdpZGdldC5cbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IHRydWUgd2l0aG91dCBoYXZpbmcgYSBjb21tZXJjaWFsIGxpY2VuY2UgaXMgaWxsZWdhbC5cbiAgICogQHNlZSBoYXZlQ29tbWVyY2lhbExpY2Vuc2VcbiAgICovXG4gIHB1YmxpYyBnZXQgaGF2ZUNvbW1lcmNpYWxMaWNlbnNlKCkge1xuICAgIGNvbnN0IGNoZWNrZXIgPSAoPGFueT5TdXJ2ZXkpLmhhc0xpY2Vuc2U7XG4gICAgaWYgKCEhY2hlY2tlciAmJiBjaGVja2VyKDEpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5oYXZlQ29tbWVyY2lhbExpY2Vuc2VWYWx1ZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgaGF2ZUNvbW1lcmNpYWxMaWNlbnNlKHZhbCkge1xuICAgIHRoaXMuaGF2ZUNvbW1lcmNpYWxMaWNlbnNlVmFsdWUodmFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gdHJ1ZSB0byBhY3RpdmF0ZSBSVEwgc3VwcG9ydFxuICAgKi9cbiAgcHVibGljIGdldCBpc1JUTCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1JUTFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNSVEwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzUlRMVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2hvd1N0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLmtvU2hvd1N0YXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNob3dTdGF0ZShuZXdWYWwpIHtcbiAgICB0aGlzLmtvU2hvd1N0YXRlKG5ld1ZhbCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSBhY3RpdmUgdmlldy90YWIuIEl0IHdpbGwgcmV0dXJuIGZhbHNlIGlmIGl0IGNhbid0IGNoYW5nZSB0aGUgY3VycmVudCB0YWIuXG4gICAqIEBwYXJhbSB2aWV3TmFtZSBuYW1lIG9mIG5ldyBhY3RpdmUgdmlldyAodGFiKS4gVGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIGF2YWlsYWJsZTogXCJkZXNpZ25lclwiLCBcImVkaXRvclwiLCBcInRlc3RcIiwgXCJlbWJlZFwiIGFuZCBcInRyYW5zbGF0aW9uXCIuXG4gICAqL1xuICBwdWJsaWMgbWFrZU5ld1ZpZXdBY3RpdmUodmlld05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5jYW5Td2l0Y2hWaWV3VHlwZSh2aWV3TmFtZSkpIHJldHVybiBmYWxzZTtcbiAgICB0aGlzLm9uVmlld1R5cGVDaGFuZ2VkKHZpZXdOYW1lKTtcbiAgICB0aGlzLmtvVmlld1R5cGUodmlld05hbWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uVmlld1R5cGVDaGFuZ2VkKG5ld1R5cGU6IHN0cmluZykgeyB9XG5cbiAgcHJvdGVjdGVkIGNhblN3aXRjaFZpZXdUeXBlKG5ld1R5cGU6IHN0cmluZykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9wdGlvbnM6IElDcmVhdG9yT3B0aW9ucykge1xuICAgIHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zKTtcbiAgICB0aGlzLmluaXRUYWJzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdFRhYnMoKSB7XG4gICAga28uY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgdGhpcy50YWJzKFtdKTtcbiAgICAgIGlmICh0aGlzLnNob3dEZXNpZ25lclRhYikge1xuICAgICAgICB0aGlzLnRhYnMucHVzaCh7XG4gICAgICAgICAgbmFtZTogXCJkZXNpZ25lclwiLFxuICAgICAgICAgIHRpdGxlOiB0aGlzLmdldExvY1N0cmluZyhcImVkLmRlc2lnbmVyXCIpLFxuICAgICAgICAgIHRlbXBsYXRlOiBcInNlLXRhYi1kZXNpZ25lclwiLFxuICAgICAgICAgIGRhdGE6IHRoaXMsXG4gICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm1ha2VOZXdWaWV3QWN0aXZlKFwiZGVzaWduZXJcIiksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2hvd1Rlc3RTdXJ2ZXlUYWIpIHtcbiAgICAgICAgdGhpcy50YWJzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IFwidGVzdFwiLFxuICAgICAgICAgIHRpdGxlOiB0aGlzLmdldExvY1N0cmluZyhcImVkLnRlc3RTdXJ2ZXlcIiksXG4gICAgICAgICAgdGVtcGxhdGU6IFwic2UtdGFiLXRlc3RcIixcbiAgICAgICAgICBkYXRhOiB0aGlzLFxuICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5tYWtlTmV3Vmlld0FjdGl2ZShcInRlc3RcIiksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2hvd0xvZ2ljVGFiKSB7XG4gICAgICAgIHRoaXMudGFicy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBcImxvZ2ljXCIsXG4gICAgICAgICAgdGl0bGU6IHRoaXMuZ2V0TG9jU3RyaW5nKFwiZWQubG9naWNcIiksXG4gICAgICAgICAgdGVtcGxhdGU6IFwic2UtdGFiLWxvZ2ljXCIsXG4gICAgICAgICAgZGF0YTogdGhpcyxcbiAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMubWFrZU5ld1ZpZXdBY3RpdmUoXCJsb2dpY1wiKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zaG93SlNPTkVkaXRvclRhYikge1xuICAgICAgICB0aGlzLnRhYnMucHVzaCh7XG4gICAgICAgICAgbmFtZTogXCJlZGl0b3JcIixcbiAgICAgICAgICB0aXRsZTogdGhpcy5nZXRMb2NTdHJpbmcoXCJlZC5qc29uRWRpdG9yXCIpLFxuICAgICAgICAgIHRlbXBsYXRlOiBcInNlLXRhYi1qc29uLWVkaXRvclwiLFxuICAgICAgICAgIGRhdGE6IHRoaXMsXG4gICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm1ha2VOZXdWaWV3QWN0aXZlKFwiZWRpdG9yXCIpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnNob3dFbWJlZGRlZFN1cnZleVRhYikge1xuICAgICAgICB0aGlzLnRhYnMucHVzaCh7XG4gICAgICAgICAgbmFtZTogXCJlbWJlZFwiLFxuICAgICAgICAgIHRpdGxlOiB0aGlzLmdldExvY1N0cmluZyhcImVkLmVtYmVkU3VydmV5XCIpLFxuICAgICAgICAgIHRlbXBsYXRlOiBcInNlLXRhYi1lbWJlZFwiLFxuICAgICAgICAgIGRhdGE6IHRoaXMsXG4gICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm1ha2VOZXdWaWV3QWN0aXZlKFwiZW1iZWRcIiksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2hvd1RyYW5zbGF0aW9uVGFiKSB7XG4gICAgICAgIHRoaXMudGFicy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBcInRyYW5zbGF0aW9uXCIsXG4gICAgICAgICAgdGl0bGU6IHRoaXMuZ2V0TG9jU3RyaW5nKFwiZWQudHJhbnNsYXRpb25cIiksXG4gICAgICAgICAgdGVtcGxhdGU6IFwic2UtdGFiLXRyYW5zbGF0aW9uXCIsXG4gICAgICAgICAgZGF0YTogdGhpcyxcbiAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMubWFrZU5ld1ZpZXdBY3RpdmUoXCJ0cmFuc2xhdGlvblwiKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50YWJzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmtvVmlld1R5cGUodGhpcy50YWJzKClbMF0ubmFtZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zIHx8IHt9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldE9wdGlvbnMob3B0aW9uczogSUNyZWF0b3JPcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gICAgaWYgKCFvcHRpb25zLmhhc093blByb3BlcnR5KFwiZ2VuZXJhdGVWYWxpZEpTT05cIikpXG4gICAgICBvcHRpb25zLmdlbmVyYXRlVmFsaWRKU09OID0gdHJ1ZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc2hvd0Rlc2lnbmVyVGFiVmFsdWUoXG4gICAgICB0eXBlb2Ygb3B0aW9ucy5zaG93RGVzaWduZXJUYWIgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgPyBvcHRpb25zLnNob3dEZXNpZ25lclRhYlxuICAgICAgICA6IHRydWVcbiAgICApO1xuICAgIHRoaXMuc2hvd0xvZ2ljVGFiVmFsdWUoXG4gICAgICB0eXBlb2Ygb3B0aW9ucy5zaG93TG9naWNUYWIgIT09IFwidW5kZWZpbmVkXCIgPyBvcHRpb25zLnNob3dMb2dpY1RhYiA6IGZhbHNlXG4gICAgKTtcbiAgICB0aGlzLnNob3dKU09ORWRpdG9yVGFiVmFsdWUoXG4gICAgICB0eXBlb2Ygb3B0aW9ucy5zaG93SlNPTkVkaXRvclRhYiAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICA/IG9wdGlvbnMuc2hvd0pTT05FZGl0b3JUYWJcbiAgICAgICAgOiB0cnVlXG4gICAgKTtcbiAgICB0aGlzLnNob3dUZXN0U3VydmV5VGFiVmFsdWUoXG4gICAgICB0eXBlb2Ygb3B0aW9ucy5zaG93VGVzdFN1cnZleVRhYiAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICA/IG9wdGlvbnMuc2hvd1Rlc3RTdXJ2ZXlUYWJcbiAgICAgICAgOiB0cnVlXG4gICAgKTtcbiAgICB0aGlzLnNob3dFbWJlZGRlZFN1cnZleVRhYlZhbHVlKFxuICAgICAgdHlwZW9mIG9wdGlvbnMuc2hvd0VtYmVkZGVkU3VydmV5VGFiICE9PSBcInVuZGVmaW5lZFwiXG4gICAgICAgID8gb3B0aW9ucy5zaG93RW1iZWRkZWRTdXJ2ZXlUYWJcbiAgICAgICAgOiB0eXBlb2Ygb3B0aW9ucy5zaG93RW1iZWRlZFN1cnZleVRhYiAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICAgID8gb3B0aW9ucy5zaG93RW1iZWRlZFN1cnZleVRhYlxuICAgICAgICAgIDogZmFsc2VcbiAgICApO1xuICAgIHRoaXMuc2hvd1RyYW5zbGF0aW9uVGFiVmFsdWUoXG4gICAgICB0eXBlb2Ygb3B0aW9ucy5zaG93VHJhbnNsYXRpb25UYWIgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgPyBvcHRpb25zLnNob3dUcmFuc2xhdGlvblRhYlxuICAgICAgICA6IGZhbHNlXG4gICAgKTtcbiAgICB0aGlzLnNob3dMb2dpY1RhYlZhbHVlKFxuICAgICAgdHlwZW9mIG9wdGlvbnMuc2hvd0xvZ2ljVGFiICE9PSBcInVuZGVmaW5lZFwiID8gb3B0aW9ucy5zaG93TG9naWNUYWIgOiBmYWxzZVxuICAgICk7XG5cbiAgICB0aGlzLmhhdmVDb21tZXJjaWFsTGljZW5zZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9ucy5oYXZlQ29tbWVyY2lhbExpY2Vuc2UgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgPyBvcHRpb25zLmhhdmVDb21tZXJjaWFsTGljZW5zZVxuICAgICAgICA6IGZhbHNlO1xuXG4gICAgdGhpcy5zaG93T2JqZWN0VGl0bGVzID1cbiAgICAgIHR5cGVvZiBvcHRpb25zLnNob3dPYmplY3RUaXRsZXMgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgPyBvcHRpb25zLnNob3dPYmplY3RUaXRsZXNcbiAgICAgICAgOiBmYWxzZTtcbiAgICB0aGlzLnNob3dUaXRsZXNJbkV4cHJlc3Npb25zID1cbiAgICAgIHR5cGVvZiBvcHRpb25zLnNob3dUaXRsZXNJbkV4cHJlc3Npb25zICE9PSBcInVuZGVmaW5lZFwiXG4gICAgICAgID8gb3B0aW9ucy5zaG93VGl0bGVzSW5FeHByZXNzaW9uc1xuICAgICAgICA6IGZhbHNlO1xuICAgIHRoaXMuYWxsb3dFZGl0RXhwcmVzc2lvbnNJblRleHRFZGl0b3IgPVxuICAgICAgdHlwZW9mIG9wdGlvbnMuYWxsb3dFZGl0RXhwcmVzc2lvbnNJblRleHRFZGl0b3IgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgPyBvcHRpb25zLmFsbG93RWRpdEV4cHJlc3Npb25zSW5UZXh0RWRpdG9yXG4gICAgICAgIDogdHJ1ZTtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMubWF4aW11bUNvbHVtbnNDb3VudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy5tYXhpbXVtQ29sdW1uc0NvdW50ID0gb3B0aW9ucy5tYXhpbXVtQ29sdW1uc0NvdW50O1xuICAgIH1cbiAgICB0aGlzLnVzZVRhYnNJbkVsZW1lbnRFZGl0b3IgPVxuICAgICAgdHlwZW9mIG9wdGlvbnMudXNlVGFic0luRWxlbWVudEVkaXRvciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICA/IG9wdGlvbnMudXNlVGFic0luRWxlbWVudEVkaXRvclxuICAgICAgICA6IGZhbHNlO1xuICAgIHRoaXMubWF4TG9naWNJdGVtc0luQ29uZGl0aW9uID1cbiAgICAgIHR5cGVvZiBvcHRpb25zLm1heExvZ2ljSXRlbXNJbkNvbmRpdGlvbiAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICA/IG9wdGlvbnMubWF4TG9naWNJdGVtc0luQ29uZGl0aW9uXG4gICAgICAgIDogLTE7XG4gICAgdGhpcy5zaG93U3RhdGUgPVxuICAgICAgdHlwZW9mIG9wdGlvbnMuc2hvd1N0YXRlICE9PSBcInVuZGVmaW5lZFwiID8gb3B0aW9ucy5zaG93U3RhdGUgOiBmYWxzZTtcbiAgICB0aGlzLmtvU2hvd09wdGlvbnMoXG4gICAgICB0eXBlb2Ygb3B0aW9ucy5zaG93T3B0aW9ucyAhPT0gXCJ1bmRlZmluZWRcIiA/IG9wdGlvbnMuc2hvd09wdGlvbnMgOiBmYWxzZVxuICAgICk7XG5cbiAgICB0aGlzLmtvR2VuZXJhdGVWYWxpZEpTT04odGhpcy5vcHRpb25zLmdlbmVyYXRlVmFsaWRKU09OKTtcbiAgICB0aGlzLmlzQXV0b1NhdmUgPVxuICAgICAgdHlwZW9mIG9wdGlvbnMuaXNBdXRvU2F2ZSAhPT0gXCJ1bmRlZmluZWRcIiA/IG9wdGlvbnMuaXNBdXRvU2F2ZSA6IGZhbHNlO1xuICAgIHRoaXMuc2hvd0Vycm9yT25GYWlsZWRTYXZlID1cbiAgICAgIHR5cGVvZiBvcHRpb25zLnNob3dFcnJvck9uRmFpbGVkU2F2ZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICA/IG9wdGlvbnMuc2hvd0Vycm9yT25GYWlsZWRTYXZlXG4gICAgICAgIDogdHJ1ZTtcbiAgICB0aGlzLmlzUlRMVmFsdWUgPVxuICAgICAgdHlwZW9mIG9wdGlvbnMuaXNSVEwgIT09IFwidW5kZWZpbmVkXCIgPyBvcHRpb25zLmlzUlRMIDogZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMucmVhZE9ubHkgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMua29SZWFkT25seShvcHRpb25zLnJlYWRPbmx5KTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLnNob3dQYWdlc0luVGVzdFN1cnZleVRhYiAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy5zaG93UGFnZXNJblRlc3RTdXJ2ZXlUYWIgPSBvcHRpb25zLnNob3dQYWdlc0luVGVzdFN1cnZleVRhYjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLnNob3dTaW11bGF0b3JJblRlc3RTdXJ2ZXlUYWIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMuc2hvd1NpbXVsYXRvckluVGVzdFN1cnZleVRhYiA9IG9wdGlvbnMuc2hvd1NpbXVsYXRvckluVGVzdFN1cnZleVRhYjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLnNob3dEZWZhdWx0TGFuZ3VhZ2VJblRlc3RTdXJ2ZXlUYWIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMuc2hvd0RlZmF1bHRMYW5ndWFnZUluVGVzdFN1cnZleVRhYiA9XG4gICAgICAgIG9wdGlvbnMuc2hvd0RlZmF1bHRMYW5ndWFnZUluVGVzdFN1cnZleVRhYjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLnNob3dJbnZpc2libGVFbGVtZW50c0luVGVzdFN1cnZleVRhYiAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy5zaG93SW52aXNpYmxlRWxlbWVudHNJblRlc3RTdXJ2ZXlUYWIgPVxuICAgICAgICBvcHRpb25zLnNob3dJbnZpc2libGVFbGVtZW50c0luVGVzdFN1cnZleVRhYjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLmFsbG93TW9kaWZ5UGFnZXMgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMuYWxsb3dNb2RpZnlQYWdlcyA9IG9wdGlvbnMuYWxsb3dNb2RpZnlQYWdlcztcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucy5zaG93UGFnZVNlbGVjdG9ySW5Ub29sYmFyKSB7XG4gICAgICB0aGlzLnNob3dQYWdlU2VsZWN0b3JJblRvb2xiYXIgPSB0cnVlO1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25QYWdlU2VsZWN0b3JWYWx1ZShmYWxzZSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zaG93RHJvcGRvd25QYWdlU2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duUGFnZVNlbGVjdG9yVmFsdWUob3B0aW9ucy5zaG93RHJvcGRvd25QYWdlU2VsZWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIG9uSXNQcm9wZXJ0eVJlYWRPbmx5Q2FsbGJhY2soXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICByZWFkT25seTogYm9vbGVhbixcbiAgICBwYXJlbnRPYmo6IFN1cnZleS5CYXNlLFxuICAgIHBhcmVudFByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4gICk6IGJvb2xlYW4ge1xuICAgIHZhciBwcm9wb3NlZFZhbHVlID0gdGhpcy5yZWFkT25seSB8fCByZWFkT25seTtcbiAgICBpZiAodGhpcy5vbkdldFByb3BlcnR5UmVhZE9ubHkuaXNFbXB0eSkgcmV0dXJuIHByb3Bvc2VkVmFsdWU7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBvYmo6IG9iaixcbiAgICAgIHByb3BlcnR5OiBwcm9wZXJ0eSxcbiAgICAgIHJlYWRPbmx5OiBwcm9wb3NlZFZhbHVlLFxuICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eS5uYW1lLFxuICAgICAgcGFyZW50T2JqOiBwYXJlbnRPYmosXG4gICAgICBwYXJlbnRQcm9wZXJ0eTogcGFyZW50UHJvcGVydHksXG4gICAgfTtcbiAgICB0aGlzLm9uR2V0UHJvcGVydHlSZWFkT25seS5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLnJlYWRPbmx5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBlZGl0aW5nIHN1cnZleSBvYmplY3QgKFN1cnZleS5TdXJ2ZXkpXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN1cnZleSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXlWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdXJ2ZXlUZXh0RnJvbURlc2lnbmVyKCkge1xuICAgIHZhciBqc29uID0gKDxhbnk+dGhpcy5zdXJ2ZXkpLnRvSlNPTigpO1xuICAgIGNvbnN0IGluZGVudCA9IHNldHRpbmdzLmpzb25FZGl0b3IuaW5kZW50YXRpb247XG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuZ2VuZXJhdGVWYWxpZEpTT04pIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBpbmRlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFN1cnZleUpTT041KCkuc3RyaW5naWZ5KGpzb24sIG51bGwsIGluZGVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0VGV4dFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoISF0aGlzLnNldFN1cnZleUpTT05UZXh0Q2FsbGJhY2spIHtcbiAgICAgIHRoaXMuc2V0U3VydmV5SlNPTlRleHRDYWxsYmFjayh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBKU09OIGFzIHRleHQgIGludG8gc3VydmV5LiBDbGVhciB1bmRvL3JlZG8gc3RhdGVzIG9wdGlvbmFsbHkuXG4gICAqIEBwYXJhbSB2YWx1ZSBKU09OIGFzIHRleHRcbiAgICogQHBhcmFtIGNsZWFyU3RhdGUgZGVmYXVsdCBmYWxzZS4gU2V0IHRoaXMgcGFyYW1ldGVyIHRvIHRydWUgdG8gY2xlYXIgdW5kby9yZWRvIHN0YXRlcy5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VUZXh0KHZhbHVlOiBzdHJpbmcsIGNsZWFyU3RhdGUgPSBmYWxzZSkge1xuICAgIHRoaXMuc2V0VGV4dFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgU3VydmV5IEpTT04gYXMgYSB0ZXh0LiBVc2UgaXQgdG8gZ2V0IFN1cnZleSBKU09OIG9yIGNoYW5nZSBpdC5cbiAgICogQHNlZSBKU09OXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAoISF0aGlzLmdldFN1cnZleUpTT05UZXh0Q2FsbGJhY2spIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFN1cnZleUpTT05UZXh0Q2FsbGJhY2soKS50ZXh0O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRTdXJ2ZXlUZXh0RnJvbURlc2lnbmVyKCk7XG4gIH1cbiAgcHVibGljIHNldCB0ZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNoYW5nZVRleHQodmFsdWUsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGdldFN1cnZleUpTT04oKTogYW55IHtcbiAgICBpZiAodGhpcy5rb1ZpZXdUeXBlKCkgIT0gXCJlZGl0b3JcIikge1xuICAgICAgcmV0dXJuIG5ldyBTdXJ2ZXkuSnNvbk9iamVjdCgpLnRvSnNvbk9iamVjdCh0aGlzLnN1cnZleSk7XG4gICAgfVxuICAgIHZhciBzdXJ2ZXlKc29uVGV4dCA9IHRoaXMudGV4dDtcbiAgICB2YXIgdGV4dFdvcmtlciA9IG5ldyBTdXJ2ZXlUZXh0V29ya2VyKHN1cnZleUpzb25UZXh0KTtcbiAgICBpZiAodGV4dFdvcmtlci5pc0pzb25Db3JyZWN0KSB7XG4gICAgICByZXR1cm4gbmV3IFN1cnZleS5Kc29uT2JqZWN0KCkudG9Kc29uT2JqZWN0KHRleHRXb3JrZXIuc3VydmV5KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0T2JqZWN0RGlzcGxheU5hbWUoXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICByZWFzb246IHN0cmluZyxcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nID0gdW5kZWZpbmVkXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCFkaXNwbGF5TmFtZSkge1xuICAgICAgZGlzcGxheU5hbWUgPSBTdXJ2ZXlIZWxwZXIuZ2V0T2JqZWN0TmFtZShvYmosIHRoaXMuc2hvd09iamVjdFRpdGxlcyk7XG4gICAgfVxuICAgIHZhciBvcHRpb25zID0geyBvYmo6IG9iaiwgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lLCByZWFzb246IHJlYXNvbiB9O1xuICAgIHRoaXMub25HZXRPYmplY3REaXNwbGF5TmFtZS5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLmRpc3BsYXlOYW1lO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZVN1cnZleShcbiAgICBqc29uOiBhbnkgPSB7fSxcbiAgICByZWFzb246IHN0cmluZyA9IFwiZGVzaWduZXJcIixcbiAgICBzdXJ2ZXlUeXBlID0gU3VydmV5LlN1cnZleVxuICApIHtcbiAgICB2YXIgc3VydmV5ID0gbmV3IHN1cnZleVR5cGUoanNvbik7XG4gICAgaWYgKHJlYXNvbiAhPSBcImRlc2lnbmVyXCIgJiYgcmVhc29uICE9IFwidGVzdFwiKSB7XG4gICAgICBzdXJ2ZXkubG9jYWxlID0gZWRpdG9yTG9jYWxpemF0aW9uLmN1cnJlbnRMb2NhbGU7XG4gICAgfVxuICAgIHRoaXMub25TdXJ2ZXlJbnN0YW5jZUNyZWF0ZWQuZmlyZSh0aGlzLCB7IHN1cnZleTogc3VydmV5LCByZWFzb246IHJlYXNvbiB9KTtcbiAgICByZXR1cm4gc3VydmV5O1xuICB9XG5cbiAgcHVibGljIHNldE1vZGlmaWVkKG9wdGlvbnM6IGFueSA9IG51bGwpIHsgfVxuXG4gIHByb3RlY3RlZCBjb252ZXJ0Q3VycmVudE9iamVjdChvYmo6IFN1cnZleS5RdWVzdGlvbiwgY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0YXJ0VHJhbnNhY3Rpb24oXCJDb252ZXJ0IHF1ZXN0aW9uIHRvOiBcIiArIGNsYXNzTmFtZSk7XG4gICAgdmFyIG5ld1F1ZXN0aW9uID0gUXVlc3Rpb25Db252ZXJ0ZXIuY29udmVydE9iamVjdChvYmosIGNsYXNzTmFtZSk7XG4gICAgdGhpcy5zdG9wVHJhbnNhdGlvbigpO1xuICAgIHRoaXMuc2V0TW9kaWZpZWQoe1xuICAgICAgdHlwZTogXCJRVUVTVElPTl9DT05WRVJURURcIixcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgb2xkVmFsdWU6IG9iaixcbiAgICAgIG5ld1ZhbHVlOiBuZXdRdWVzdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0U3VydmV5V2l0aEpTT04oanNvbjogYW55LCBjbGVhclN0YXRlOiBib29sZWFuKSB7IH1cblxuICAvKipcbiAgICogVGhlIFN1cnZleSBKU09OLiBVc2UgaXQgdG8gZ2V0IFN1cnZleSBKU09OIG9yIGNoYW5nZSBpdC5cbiAgICogQHNlZSB0ZXh0XG4gICAqL1xuICBwdWJsaWMgZ2V0IEpTT04oKTogYW55IHtcbiAgICBpZiAoIXRoaXMuc3VydmV5KSByZXR1cm4ge307XG4gICAgcmV0dXJuICg8YW55PnRoaXMuc3VydmV5KS50b0pTT04oKTtcbiAgfVxuICBwdWJsaWMgc2V0IEpTT04odmFsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5rb1ZpZXdUeXBlKCkgPT0gXCJlZGl0b3JcIikge1xuICAgICAgdGhpcy5zZXRUZXh0VmFsdWUoSlNPTi5zdHJpbmdpZnkodmFsKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdFN1cnZleVdpdGhKU09OKHZhbCwgdHJ1ZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gZmFsc2UgaGlkZSB0aGUgZHJvcGRvd24gcGFnZSBzZWxlY3RvciBpbiB0aGUgcGFnZSBlZGl0b3IgYWJvdmUgdGhlIGRlc2lnbiBzdXJmYWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dEcm9wZG93blBhZ2VTZWxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93RHJvcGRvd25QYWdlU2VsZWN0b3JWYWx1ZSgpO1xuICB9XG4gIHByb3RlY3RlZCBkb0NsaWNrUXVlc3Rpb25Db3JlKFxuICAgIGVsZW1lbnQ6IFN1cnZleS5JRWxlbWVudCxcbiAgICBtb2RpZmllZFR5cGU6IHN0cmluZyA9IFwiQURERURfRlJPTV9UT09MQk9YXCJcbiAgKSB7XG4gICAgdmFyIHBhcmVudCA9IHRoaXMuc3VydmV5LmN1cnJlbnRQYWdlO1xuICAgIHZhciBpbmRleCA9IC0xO1xuICAgIHZhciBlbEVsZW1lbnQgPSB0aGlzLnN1cnZleS5zZWxlY3RlZEVsZW1lbnQ7XG4gICAgaWYgKGVsRWxlbWVudCAmJiBlbEVsZW1lbnQucGFyZW50KSB7XG4gICAgICBwYXJlbnQgPSBlbEVsZW1lbnQucGFyZW50O1xuICAgICAgaW5kZXggPSBwYXJlbnQuZWxlbWVudHMuaW5kZXhPZih0aGlzLnN1cnZleS5zZWxlY3RlZEVsZW1lbnQpO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIGluZGV4Kys7XG4gICAgfVxuICAgIHBhcmVudC5hZGRFbGVtZW50KGVsZW1lbnQsIGluZGV4KTtcbiAgICB0aGlzLnNldE1vZGlmaWVkKHsgdHlwZTogbW9kaWZpZWRUeXBlLCBxdWVzdGlvbjogZWxlbWVudCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXROZXdOYW1lcyhlbGVtZW50OiBTdXJ2ZXkuSUVsZW1lbnQpIHtcbiAgICB0aGlzLm5ld1F1ZXN0aW9ucyA9IFtdO1xuICAgIHRoaXMubmV3UGFuZWxzID0gW107XG4gICAgdGhpcy5uZXdRdWVzdGlvbkNoYW5nZWROYW1lcyA9IHt9O1xuICAgIHRoaXMuc2V0TmV3TmFtZXNDb3JlKGVsZW1lbnQpO1xuICAgIHRoaXMudXBkYXRlTmV3RWxlbWVudEV4cHJlc3Npb25zKGVsZW1lbnQpO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlTmV3RWxlbWVudEV4cHJlc3Npb25zKGVsZW1lbnQ6IFN1cnZleS5JU3VydmV5RWxlbWVudCkge1xuICAgIHZhciBzdXJ2ZXkgPSBuZXcgU3VydmV5LlN1cnZleU1vZGVsKCk7XG4gICAgc3VydmV5LnNldERlc2lnbk1vZGUodHJ1ZSk7XG4gICAgaWYgKGVsZW1lbnQuaXNQYWdlKSB7XG4gICAgICBzdXJ2ZXkuYWRkUGFnZSg8U3VydmV5LlBhZ2VNb2RlbD5lbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VydmV5LmFkZE5ld1BhZ2UoXCJwMVwiKTtcbiAgICAgIHN1cnZleS5wYWdlc1swXS5hZGRFbGVtZW50KDxTdXJ2ZXkuSUVsZW1lbnQ+ZWxlbWVudCk7XG4gICAgfVxuICAgIHZhciBsb2dpYyA9IG5ldyBTdXJ2ZXlMb2dpYyhzdXJ2ZXkpO1xuICAgIGZvciAodmFyIGtleSBpbiB0aGlzLm5ld1F1ZXN0aW9uQ2hhbmdlZE5hbWVzKSB7XG4gICAgICBsb2dpYy5yZW5hbWVRdWVzdGlvbihrZXksIHRoaXMubmV3UXVlc3Rpb25DaGFuZ2VkTmFtZXNba2V5XSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEFsbFF1ZXN0aW9ucygpOiBBcnJheTxhbnk+IHtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN1cnZleS5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5hZGRFbGVtZW50cyh0aGlzLnN1cnZleS5wYWdlc1tpXS5lbGVtZW50cywgZmFsc2UsIHJlc3VsdCk7XG4gICAgfVxuICAgIHRoaXMuYWRkRWxlbWVudHModGhpcy5uZXdQYW5lbHMsIGZhbHNlLCByZXN1bHQpO1xuICAgIHRoaXMuYWRkRWxlbWVudHModGhpcy5uZXdRdWVzdGlvbnMsIGZhbHNlLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QWxsUGFuZWxzKCk6IEFycmF5PGFueT4ge1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3VydmV5LnBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmFkZEVsZW1lbnRzKHRoaXMuc3VydmV5LnBhZ2VzW2ldLmVsZW1lbnRzLCB0cnVlLCByZXN1bHQpO1xuICAgIH1cbiAgICB0aGlzLmFkZEVsZW1lbnRzKHRoaXMubmV3UGFuZWxzLCB0cnVlLCByZXN1bHQpO1xuICAgIHRoaXMuYWRkRWxlbWVudHModGhpcy5uZXdRdWVzdGlvbnMsIHRydWUsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRFbGVtZW50cyhcbiAgICBlbGVtZW50czogQXJyYXk8YW55PixcbiAgICBpc1BhbmVsOiBib29sZWFuLFxuICAgIHJlc3VsdDogQXJyYXk8YW55PlxuICApIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZWxlbWVudHNbaV0uaXNQYW5lbCA9PT0gaXNQYW5lbCkge1xuICAgICAgICByZXN1bHQucHVzaChlbGVtZW50c1tpXSk7XG4gICAgICB9XG4gICAgICB0aGlzLmFkZEVsZW1lbnRzKFN1cnZleUhlbHBlci5nZXRFbGVtZW50cyhlbGVtZW50c1tpXSksIGlzUGFuZWwsIHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldE5ld05hbWUodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZSA9PSBcInBhZ2VcIikgcmV0dXJuIFN1cnZleUhlbHBlci5nZXROZXdQYWdlTmFtZSh0aGlzLnN1cnZleS5wYWdlcyk7XG4gICAgcmV0dXJuIHR5cGUgPT0gXCJwYW5lbFwiIHx8IHR5cGUgPT0gXCJmbG93cGFuZWxcIlxuICAgICAgPyB0aGlzLmdldE5ld1BhbmVsTmFtZSgpXG4gICAgICA6IHRoaXMuZ2V0TmV3UXVlc3Rpb25OYW1lKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldE5ld1F1ZXN0aW9uTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdXJ2ZXlIZWxwZXIuZ2V0TmV3UXVlc3Rpb25OYW1lKHRoaXMuZ2V0QWxsUXVlc3Rpb25zKCkpO1xuICB9XG4gIHByb3RlY3RlZCBnZXROZXdQYW5lbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3VydmV5SGVscGVyLmdldE5ld1BhbmVsTmFtZSh0aGlzLmdldEFsbFBhbmVscygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXROZXdOYW1lc0NvcmUoZWxlbWVudDogU3VydmV5LklFbGVtZW50KSB7XG4gICAgdmFyIGVsVHlwZSA9IGVsZW1lbnRbXCJnZXRUeXBlXCJdKCk7XG4gICAgdmFyIG5ld05hbWUgPSB0aGlzLmdldE5ld05hbWUoZWxUeXBlKTtcbiAgICBpZiAobmV3TmFtZSAhPSBlbGVtZW50Lm5hbWUpIHtcbiAgICAgIHRoaXMubmV3UXVlc3Rpb25DaGFuZ2VkTmFtZXNbZWxlbWVudC5uYW1lXSA9IG5ld05hbWU7XG4gICAgICBlbGVtZW50Lm5hbWUgPSBuZXdOYW1lO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5pc1BhbmVsIHx8IGVsVHlwZSA9PSBcInBhZ2VcIikge1xuICAgICAgaWYgKGVsZW1lbnQuaXNQYW5lbCkge1xuICAgICAgICB0aGlzLm5ld1BhbmVscy5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgdmFyIHBhbmVsID0gPFN1cnZleS5QYW5lbE1vZGVsQmFzZT4oPGFueT5lbGVtZW50KTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFuZWwuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5zZXROZXdOYW1lc0NvcmUocGFuZWwuZWxlbWVudHNbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5ld1F1ZXN0aW9ucy5wdXNoKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVOZXdFbGVtZW50KGpzb246IGFueSk6IFN1cnZleS5JRWxlbWVudCB7XG4gICAgdmFyIG5ld0VsZW1lbnQgPSBTdXJ2ZXkuU2VyaWFsaXplci5jcmVhdGVDbGFzcyhqc29uW1widHlwZVwiXSk7XG4gICAgbmV3IFN1cnZleS5Kc29uT2JqZWN0KCkudG9PYmplY3QoanNvbiwgbmV3RWxlbWVudCk7XG4gICAgdGhpcy5zZXROZXdOYW1lcyhuZXdFbGVtZW50KTtcbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5RWxlbWVudChlbGVtZW50OiBTdXJ2ZXkuQmFzZSk6IFN1cnZleS5JRWxlbWVudCB7XG4gICAgdmFyIGpzb24gPSBuZXcgU3VydmV5Lkpzb25PYmplY3QoKS50b0pzb25PYmplY3QoZWxlbWVudCk7XG4gICAganNvbi50eXBlID0gZWxlbWVudC5nZXRUeXBlKCk7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTmV3RWxlbWVudChqc29uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3B5IGEgcXVlc3Rpb24gdG8gdGhlIGFjdGl2ZSBwYWdlXG4gICAqIEBwYXJhbSBxdWVzdGlvbiBBIGNvcGllZCBTdXJ2ZXkuUXVlc3Rpb25cbiAgICovXG4gIHB1YmxpYyBmYXN0Q29weVF1ZXN0aW9uKHF1ZXN0aW9uOiBTdXJ2ZXkuQmFzZSkge1xuICAgIHZhciBuZXdFbGVtZW50ID0gdGhpcy5jb3B5RWxlbWVudChxdWVzdGlvbik7XG4gICAgdGhpcy5kb0NsaWNrUXVlc3Rpb25Db3JlKG5ld0VsZW1lbnQsIFwiRUxFTUVOVF9DT1BJRURcIik7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFuIGVsZW1lbnQgaW4gdGhlIHN1cnZleS4gSXQgY2FuIGJlIGEgcXVlc3Rpb24sIGEgcGFuZWwgb3IgYSBwYWdlLlxuICAgKiBAcGFyYW0gZWxlbWVudCBhIHN1cnZleSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZUVsZW1lbnQoZWxlbWVudDogU3VydmV5LkJhc2UpIHtcbiAgICB0aGlzLmRlbGV0ZU9iamVjdChlbGVtZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWxldGVPYmplY3RDb3JlKG9iajogYW55KSB7XG4gICAgdmFyIG9ialR5cGUgPSBTdXJ2ZXlIZWxwZXIuZ2V0T2JqZWN0VHlwZShvYmopO1xuICAgIGlmIChvYmpUeXBlID09IE9ialR5cGUuUGFnZSkge1xuICAgICAgdGhpcy5zdXJ2ZXkucmVtb3ZlUGFnZShvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlbGV0ZVBhbmVsT3JRdWVzdGlvbihvYmosIG9ialR5cGUpO1xuICAgIH1cbiAgICB0aGlzLnNldE1vZGlmaWVkKHtcbiAgICAgIHR5cGU6IFwiT0JKRUNUX0RFTEVURURcIixcbiAgICAgIHRhcmdldDogb2JqLFxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlQ29uZGl0aW9uc09uUmVtb3ZlKG9iaik7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVsZXRlT2JqZWN0KG9iajogYW55KSB7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBlbGVtZW50OiBvYmosXG4gICAgICBlbGVtZW50VHlwZTogU3VydmV5SGVscGVyLmdldE9iamVjdFR5cGUob2JqKSxcbiAgICAgIGFsbG93aW5nOiB0cnVlLFxuICAgIH07XG4gICAgdGhpcy5vbkVsZW1lbnREZWxldGluZy5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIGlmICghb3B0aW9ucy5hbGxvd2luZykgcmV0dXJuO1xuICAgIHRoaXMuZGVsZXRlT2JqZWN0Q29yZShvYmopO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUNvbmRpdGlvbnNPblJlbW92ZShvYmo6IGFueSkge1xuICAgIHZhciBvYmpUeXBlID0gU3VydmV5SGVscGVyLmdldE9iamVjdFR5cGUob2JqKTtcbiAgICB2YXIgcXVlc3Rpb25zO1xuICAgIGlmIChvYmpUeXBlID09IE9ialR5cGUuUXVlc3Rpb24pIHtcbiAgICAgIHF1ZXN0aW9ucyA9IFtvYmpdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcXVlc3Rpb25zID0gb2JqLnF1ZXN0aW9ucztcbiAgICB9XG4gICAgaWYgKCFxdWVzdGlvbnMpIHJldHVybjtcbiAgICAvLyBUT0RPOiByZW1vdmUgU3VydmV5TG9naWMgY2FsbCBoZXJlXG4gICAgdmFyIGxvZ2ljID0gbmV3IFN1cnZleUxvZ2ljKDxhbnk+dGhpcy5zdXJ2ZXksIDxhbnk+dGhpcyk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChxdWVzdGlvbnNbaV0uaXNRdWVzdGlvbikge1xuICAgICAgICBsb2dpYy5yZW1vdmVRdWVzdGlvbihxdWVzdGlvbnNbaV0uZ2V0VmFsdWVOYW1lKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RFbGVtZW50KGVsZW1lbnQ6IGFueSkgeyB9XG5cbiAgcHJvdGVjdGVkIGRlbGV0ZVBhbmVsT3JRdWVzdGlvbihvYmo6IFN1cnZleS5CYXNlLCBvYmpUeXBlOiBPYmpUeXBlKTogdm9pZCB7XG4gICAgdmFyIHBhcmVudCA9IG9ialtcInBhcmVudFwiXTtcbiAgICB2YXIgZWxlbWVudHMgPSBwYXJlbnQuZWxlbWVudHM7XG4gICAgdmFyIG9iakluZGV4ID0gZWxlbWVudHMuaW5kZXhPZihvYmopO1xuICAgIGlmIChvYmpJbmRleCA9PSBlbGVtZW50cy5sZW5ndGggLSAxKSB7XG4gICAgICBvYmpJbmRleC0tO1xuICAgIH1cbiAgICBpZiAob2JqW1wicXVlc3Rpb25zXCJdKSB7XG4gICAgICBvYmpbXCJxdWVzdGlvbnNcIl0uZm9yRWFjaChxID0+IHRoaXMudXBkYXRlQ29uZGl0aW9uc09uUmVtb3ZlKHEpKTtcbiAgICB9XG4gICAgb2JqW1wiZGVsZXRlXCJdKCk7XG4gICAgdGhpcy5zZWxlY3RFbGVtZW50KG9iakluZGV4ID4gLTEgPyBlbGVtZW50c1tvYmpJbmRleF0gOiBwYXJlbnQpO1xuICB9XG4gIHByb3RlY3RlZCBvbkNhblNob3dPYmplY3RQcm9wZXJ0eShcbiAgICBvYmplY3Q6IGFueSxcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBzaG93TW9kZTogc3RyaW5nLFxuICAgIHBhcmVudE9iajogYW55LFxuICAgIHBhcmVudFByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4gICk6IGJvb2xlYW4ge1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgb2JqOiBvYmplY3QsXG4gICAgICBwcm9wZXJ0eTogcHJvcGVydHksXG4gICAgICBjYW5TaG93OiB0cnVlLFxuICAgICAgc2hvd01vZGU6IHNob3dNb2RlLFxuICAgICAgcGFyZW50T2JqOiBwYXJlbnRPYmosXG4gICAgICBwYXJlbnRQcm9wZXJ0eTogcGFyZW50UHJvcGVydHksXG4gICAgfTtcbiAgICB0aGlzLm9uQ2FuU2hvd1Byb3BlcnR5LmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnMuY2FuU2hvdztcbiAgfVxuICBwcm90ZWN0ZWQgY2FuRGVsZXRlSXRlbShcbiAgICBvYmplY3Q6IGFueSxcbiAgICBpdGVtOiBTdXJ2ZXkuQmFzZSxcbiAgICBhbGxvd0RlbGV0ZTogYm9vbGVhblxuICApOiBib29sZWFuIHtcbiAgICB2YXIgb3B0aW9ucyA9IHsgb2JqOiBvYmplY3QsIGl0ZW06IGl0ZW0sIGNhbkRlbGV0ZTogYWxsb3dEZWxldGUgfTtcbiAgICB0aGlzLm9uQ2FuRGVsZXRlSXRlbS5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLmNhbkRlbGV0ZTtcbiAgfVxuICBwcml2YXRlIGdldEVycm9yT25Qcm9wZXJ0eUNoYW5naW5nKFxuICAgIG9iajogU3VydmV5LkJhc2UsXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IGFueVxuICApOiBzdHJpbmcge1xuICAgIGlmIChwcm9wZXJ0eU5hbWUgIT09IFwibmFtZVwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgbmV3TmFtZSA9IHRoaXMuZ2VuZXJhdGVVbmlxdWVOYW1lKG9iaiwgdmFsdWUpO1xuICAgIGlmIChuZXdOYW1lICE9PSB2YWx1ZSlcbiAgICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcInBlLnByb3BlcnR5TmFtZUlzTm90VW5pcXVlXCIpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBnZW5lcmF0ZVVuaXF1ZU5hbWUoZWw6IFN1cnZleS5CYXNlLCBuZXdOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHZhciBvcHRpb25zID0geyBlbGVtZW50OiBlbCwgbmFtZTogbmV3TmFtZSwgaXNVbmlxdWU6IHRydWUgfTtcbiAgICBkbyB7XG4gICAgICBpZiAoIW9wdGlvbnMuaXNVbmlxdWUpIHtcbiAgICAgICAgb3B0aW9ucy5uYW1lID0gU3VydmV5SGVscGVyLmdlbmVyYXRlTmV3TmFtZShvcHRpb25zLm5hbWUpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCF0aGlzLmlzTmFtZVVuaXF1ZShlbCwgb3B0aW9ucy5uYW1lKSkge1xuICAgICAgICBvcHRpb25zLm5hbWUgPSBTdXJ2ZXlIZWxwZXIuZ2VuZXJhdGVOZXdOYW1lKG9wdGlvbnMubmFtZSk7XG4gICAgICB9XG4gICAgICBvcHRpb25zLmlzVW5pcXVlID0gdHJ1ZTtcbiAgICAgIHZhciBvbGROYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgICAgdGhpcy5vbkdlbmVyYXRlTmV3TmFtZS5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgICAgaWYgKG9sZE5hbWUgIT0gb3B0aW9ucy5uYW1lKSB7XG4gICAgICAgIG9wdGlvbnMuaXNVbmlxdWUgPSB0aGlzLmlzTmFtZVVuaXF1ZShlbCwgb3B0aW9ucy5uYW1lKTtcbiAgICAgIH1cbiAgICB9IHdoaWxlICghb3B0aW9ucy5pc1VuaXF1ZSk7XG4gICAgcmV0dXJuIG9wdGlvbnMubmFtZTtcbiAgfVxuICBwcm90ZWN0ZWQgaXNOYW1lVW5pcXVlKGVsOiBTdXJ2ZXkuQmFzZSwgbmV3TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzTmFtZVVuaXF1ZUluQXJyYXkodGhpcy5zdXJ2ZXkucGFnZXMsIGVsLCBuZXdOYW1lKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghdGhpcy5pc05hbWVVbmlxdWVJbkFycmF5KHRoaXMuc3VydmV5LmdldEFsbFBhbmVscygpLCBlbCwgbmV3TmFtZSkpXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuaXNOYW1lVW5pcXVlSW5BcnJheSh0aGlzLnN1cnZleS5nZXRBbGxRdWVzdGlvbnMoKSwgZWwsIG5ld05hbWUpO1xuICB9XG4gIHByaXZhdGUgaXNOYW1lVW5pcXVlSW5BcnJheShcbiAgICBlbGVtZW50czogQXJyYXk8YW55PixcbiAgICBlbDogU3VydmV5LkJhc2UsXG4gICAgbmV3TmFtZTogc3RyaW5nXG4gICk6IGJvb2xlYW4ge1xuICAgIGVsID0gRWRpdGFibGVPYmplY3QuZ2V0T3JpZ2luYWxPYmplY3QoZWwpO1xuICAgIG5ld05hbWUgPSBuZXdOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGVsZW1lbnRzW2ldICE9IGVsICYmIGVsZW1lbnRzW2ldLm5hbWUudG9Mb3dlckNhc2UoKSA9PSBuZXdOYW1lKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByb3RlY3RlZCBkb1Byb3BlcnR5R3JpZENoYW5nZWQoKSB7IH1cblxuICAvL2ltcGxlbWVudHMgSVN1cnZleUNyZWF0b3JPcHRpb25zXG4gIGdldCBhbHdheVNhdmVUZXh0SW5Qcm9wZXJ0eUVkaXRvcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWx3YXlTYXZlVGV4dEluUHJvcGVydHlFZGl0b3JzVmFsdWU7XG4gIH1cbiAgc2V0IGFsd2F5U2F2ZVRleHRJblByb3BlcnR5RWRpdG9ycyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuYWx3YXlTYXZlVGV4dEluUHJvcGVydHlFZGl0b3JzVmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBvbkNhblNob3dQcm9wZXJ0eUNhbGxiYWNrKFxuICAgIG9iamVjdDogYW55LFxuICAgIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIHNob3dNb2RlOiBzdHJpbmcgPSBudWxsLFxuICAgIHBhcmVudE9iajogYW55LFxuICAgIHBhcmVudFByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9uQ2FuU2hvd09iamVjdFByb3BlcnR5KFxuICAgICAgb2JqZWN0LFxuICAgICAgcHJvcGVydHksXG4gICAgICBzaG93TW9kZSxcbiAgICAgIHBhcmVudE9iaixcbiAgICAgIHBhcmVudFByb3BlcnR5XG4gICAgKTtcbiAgfVxuICBvbkNhbkRlbGV0ZUl0ZW1DYWxsYmFjayhcbiAgICBvYmplY3Q6IGFueSxcbiAgICBpdGVtOiBTdXJ2ZXkuQmFzZSxcbiAgICBhbGxvd0RlbGV0ZTogYm9vbGVhblxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYW5EZWxldGVJdGVtKG9iamVjdCwgaXRlbSwgYWxsb3dEZWxldGUpO1xuICB9XG4gIG9uQ29sbGVjdGlvbkl0ZW1EZWxldGluZ0NhbGxiYWNrKFxuICAgIG9iajogU3VydmV5LkJhc2UsXG4gICAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgY29sbGVjdGlvbjogQXJyYXk8U3VydmV5LkJhc2U+LFxuICAgIGl0ZW06IFN1cnZleS5CYXNlXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm9uQ29sbGVjdGlvbkl0ZW1EZWxldGluZy5pc0VtcHR5KSByZXR1cm4gdHJ1ZTtcbiAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgIG9iajogb2JqLFxuICAgICAgcHJvcGVydHk6IHByb3BlcnR5LFxuICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eS5uYW1lLFxuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbixcbiAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICBhbGxvd0RlbGV0ZTogdHJ1ZSxcbiAgICB9O1xuICAgIHRoaXMub25Db2xsZWN0aW9uSXRlbURlbGV0aW5nLmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnMuYWxsb3dEZWxldGU7XG4gIH1cbiAgb25JdGVtVmFsdWVBZGRlZENhbGxiYWNrKFxuICAgIG9iajogU3VydmV5LkJhc2UsXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgaXRlbVZhbHVlOiBTdXJ2ZXkuSXRlbVZhbHVlLFxuICAgIGl0ZW1WYWx1ZXM6IEFycmF5PFN1cnZleS5JdGVtVmFsdWU+XG4gICkge1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgb2JqOiBvYmosXG4gICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgIG5ld0l0ZW06IGl0ZW1WYWx1ZSxcbiAgICAgIGl0ZW1WYWx1ZXM6IGl0ZW1WYWx1ZXMsXG4gICAgfTtcbiAgICB0aGlzLm9uSXRlbVZhbHVlQWRkZWQuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgfVxuICBvbk1hdHJpeERyb3Bkb3duQ29sdW1uQWRkZWRDYWxsYmFjayhcbiAgICBtYXRyaXg6IFN1cnZleS5RdWVzdGlvbixcbiAgICBjb2x1bW46IFN1cnZleS5NYXRyaXhEcm9wZG93bkNvbHVtbixcbiAgICBjb2x1bW5zOiBBcnJheTxTdXJ2ZXkuTWF0cml4RHJvcGRvd25Db2x1bW4+XG4gICkge1xuICAgIHZhciBvcHRpb25zID0geyBuZXdDb2x1bW46IGNvbHVtbiwgbWF0cml4OiBtYXRyaXgsIGNvbHVtbnM6IGNvbHVtbnMgfTtcbiAgICB0aGlzLm9uTWF0cml4Q29sdW1uQWRkZWQuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgfVxuICBvblNldFByb3BlcnR5RWRpdG9yT3B0aW9uc0NhbGxiYWNrKFxuICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgIG9iajogU3VydmV5LkJhc2UsXG4gICAgZWRpdG9yT3B0aW9uczogYW55XG4gICkge1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICBvYmo6IG9iaixcbiAgICAgIGVkaXRvck9wdGlvbnM6IGVkaXRvck9wdGlvbnMsXG4gICAgfTtcbiAgICB0aGlzLm9uU2V0UHJvcGVydHlFZGl0b3JPcHRpb25zLmZpcmUodGhpcywgb3B0aW9ucyk7XG4gIH1cbiAgb25HZXRFcnJvclRleHRPblZhbGlkYXRpb25DYWxsYmFjayhcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIHZhbHVlOiBhbnlcbiAgKTogc3RyaW5nIHtcbiAgICB2YXIgZXJyb3IgPSB0aGlzLmdldEVycm9yT25Qcm9wZXJ0eUNoYW5naW5nKG9iaiwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7XG4gICAgaWYgKCEhZXJyb3IpIHJldHVybiBlcnJvcjtcbiAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgb2JqOiBvYmosXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlcnJvcjogXCJcIixcbiAgICB9O1xuICAgIHRoaXMub25Qcm9wZXJ0eVZhbGlkYXRpb25DdXN0b21FcnJvci5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLmVycm9yO1xuICB9XG4gIG9uVmFsdWVDaGFuZ2luZ0NhbGxiYWNrKG9wdGlvbnM6IGFueSkge1xuICAgIHRoaXMub25Qcm9wZXJ0eVZhbHVlQ2hhbmdpbmcuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgfVxuICBwdWJsaWMgb25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBvYmo6IGFueSxcbiAgICBuZXdWYWx1ZTogYW55XG4gICkge1xuICAgIHZhciBvbGRWYWx1ZSA9IG9ialtwcm9wZXJ0eS5uYW1lXTtcbiAgICB0aGlzLnNldE1vZGlmaWVkKHtcbiAgICAgIHR5cGU6IFwiUFJPUEVSVFlfQ0hBTkdFRFwiLFxuICAgICAgbmFtZTogcHJvcGVydHkubmFtZSxcbiAgICAgIHRhcmdldDogb2JqLFxuICAgICAgb2xkVmFsdWU6IG9sZFZhbHVlLFxuICAgICAgbmV3VmFsdWU6IG5ld1ZhbHVlLFxuICAgIH0pO1xuICAgIC8vVE9ETyBhZGQgYSBmbGFnIHRvIGEgcHJvcGVydHksIG1heSBjaGFuZ2Ugb3RoZXIgcHJvcGVydGllc1xuICAgIGlmIChcbiAgICAgIHByb3BlcnR5Lm5hbWUgPT0gXCJoYXNDb21tZW50XCIgfHxcbiAgICAgIHByb3BlcnR5Lm5hbWUgPT0gXCJoYXNOb25lXCIgfHxcbiAgICAgIHByb3BlcnR5Lm5hbWUgPT0gXCJoYXNPdGhlclwiIHx8XG4gICAgICBwcm9wZXJ0eS5uYW1lID09IFwiaGFzU2VsZWN0QWxsXCIgfHxcbiAgICAgIHByb3BlcnR5Lm5hbWUgPT0gXCJzaG93Q29tbWVudEFyZWFcIiB8fFxuICAgICAgcHJvcGVydHkubmFtZSA9PSBcInNob3dOb25lSXRlbVwiIHx8XG4gICAgICBwcm9wZXJ0eS5uYW1lID09IFwic2hvd090aGVySXRlbVwiIHx8XG4gICAgICBwcm9wZXJ0eS5uYW1lID09IFwic2hvd1NlbGVjdEFsbEl0ZW1cIiB8fFxuICAgICAgcHJvcGVydHkubmFtZSA9PSBcImxvY2FsZVwiXG4gICAgKSB7XG4gICAgICB0aGlzLmRvUHJvcGVydHlHcmlkQ2hhbmdlZCgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBvbkdldEVsZW1lbnRFZGl0b3JUaXRsZUNhbGxiYWNrKG9iajogU3VydmV5LkJhc2UsIHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aXRsZTtcbiAgfVxuICBvbkNvbmRpdGlvblF1ZXN0aW9uc0dldExpc3RDYWxsYmFjayhcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIGVkaXRvcjogYW55LFxuICAgIGxpc3Q6IGFueVtdXG4gICkge1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICBvYmo6IG9iaixcbiAgICAgIGVkaXRvcjogZWRpdG9yLFxuICAgICAgbGlzdDogbGlzdCxcbiAgICB9O1xuICAgIHRoaXMub25Db25kaXRpb25RdWVzdGlvbnNHZXRMaXN0LmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbnMubGlzdCAhPT0gbGlzdCkge1xuICAgICAgbGlzdC5zcGxpY2UoMCwgbGlzdC5sZW5ndGgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGlzdC5wdXNoKG9wdGlvbnMubGlzdFtpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHN0YXJ0VW5kb1JlZG9UcmFuc2FjdGlvbigpIHtcbiAgICAvL1RPRE9cbiAgfVxuICBzdG9wVW5kb1JlZG9UcmFuc2FjdGlvbigpIHtcbiAgICAvL1RPRE9cbiAgfVxuICBwcm90ZWN0ZWQgc3RhcnRUcmFuc2FjdGlvbihuYW1lOiBzdHJpbmcpIHtcblxuICB9XG4gIHByb3RlY3RlZCBzdG9wVHJhbnNhdGlvbigpIHsgfVxufVxuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgVW5kb1JlZG9NYW5hZ2VyIH0gZnJvbSBcIi4vdW5kb3JlZG9tYW5hZ2VyXCI7XG5cbmlmICghIWtvLm9wdGlvbnMpIHtcbiAga28ub3B0aW9ucy51c2VPbmx5TmF0aXZlRXZlbnRzID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIERyYWdEcm9wVGFyZ2V0RWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwYWdlOiBTdXJ2ZXkuUGFnZSxcbiAgICBwdWJsaWMgdGFyZ2V0OiBhbnksXG4gICAgcHVibGljIHNvdXJjZTogYW55LFxuICAgIG5lc3RlZFBhbmVsRGVwdGg6IG51bWJlciA9IC0xLFxuICAgIHByaXZhdGUgdW5kb1JlZG9NYW5hZ2VyOiBVbmRvUmVkb01hbmFnZXJcbiAgKSB7XG4gICAgcGFnZS5kcmFnRHJvcFN0YXJ0KHNvdXJjZSwgdGFyZ2V0LCBuZXN0ZWRQYW5lbERlcHRoKTtcbiAgfVxuICBwdWJsaWMgbW92ZVRvKFxuICAgIGRlc3RpbmF0aW9uOiBhbnksXG4gICAgaXNCb3R0b206IGJvb2xlYW4sXG4gICAgaXNFZGdlOiBib29sZWFuID0gZmFsc2VcbiAgKTogYm9vbGVhbiB7XG4gICAgLy9jb25zb2xlLmxvZyghIWRlc3RpbmF0aW9uID8gZGVzdGluYXRpb24ubmFtZSA6IFwibnVsbFwiKTtcbiAgICByZXR1cm4gdGhpcy5wYWdlLmRyYWdEcm9wTW92ZVRvKGRlc3RpbmF0aW9uLCBpc0JvdHRvbSwgaXNFZGdlKTtcbiAgfVxuICBwdWJsaWMgZG9Ecm9wKCk6IGFueSB7XG4gICAgdmFyIHJlc3VsdDtcbiAgICB0aGlzLmNsZWFyQ29yZSgpO1xuICAgIHRoaXMudW5kb1JlZG9NYW5hZ2VyLnN0YXJ0VHJhbnNhY3Rpb24oXCJkcmFnIGRyb3BcIik7XG4gICAgcmVzdWx0ID0gdGhpcy5wYWdlLmRyYWdEcm9wRmluaXNoKCk7XG4gICAgdGhpcy51bmRvUmVkb01hbmFnZXIuc3RvcFRyYW5zYWN0aW9uKCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy5jbGVhckNvcmUoKTtcbiAgICB0aGlzLnBhZ2UuZHJhZ0Ryb3BGaW5pc2godHJ1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBjbGVhckNvcmUoKSB7XG4gICAgaWYgKCEhdGhpcy50YXJnZXQpIHtcbiAgICAgIHRoaXMudGFyZ2V0W1wia29Jc0RyYWdnaW5nXCJdKGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyYWdEcm9wSGVscGVyIHtcbiAgcHVibGljIHN0YXRpYyBlZGdlSGVpZ2h0OiBudW1iZXIgPSAyMDtcbiAgcHVibGljIHN0YXRpYyBuZXN0ZWRQYW5lbERlcHRoOiBudW1iZXIgPSAtMTtcbiAgc3RhdGljIGRhdGFTdGFydDogc3RyaW5nID0gXCJ7ZWxlbWVudDpcIjtcbiAgc3RhdGljIGRyYWdEYXRhOiBhbnkgPSB7IHRleHQ6IFwiXCIsIGpzb246IG51bGwgfTtcbiAgc3RhdGljIHByZXZFdmVudCA9IHsgZWxlbWVudDogbnVsbCwgeDogLTEsIHk6IC0xIH07XG4gIHByaXZhdGUgb25Nb2RpZmllZENhbGxiYWNrOiAob3B0aW9ucz86IGFueSkgPT4gYW55O1xuICBwcml2YXRlIHNjcm9sbGFibGVFbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XG4gIHByaXZhdGUgZGRUYXJnZXQ6IERyYWdEcm9wVGFyZ2V0RWxlbWVudCA9IG51bGw7XG4gIHByaXZhdGUgcHJldkNvb3JkaW5hdGVzOiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH07XG4gIHN0YXRpYyBjb3VudGVyOiBudW1iZXIgPSAxO1xuICBwcml2YXRlIGlkOiBudW1iZXIgPSBEcmFnRHJvcEhlbHBlci5jb3VudGVyKys7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkYXRhOiBTdXJ2ZXkuSVN1cnZleSxcbiAgICBvbk1vZGlmaWVkQ2FsbGJhY2s6IChvcHRpb25zPzogYW55KSA9PiBhbnksXG4gICAgcGFyZW50OiBIVE1MRWxlbWVudCA9IG51bGwsXG4gICAgcHJpdmF0ZSB1bmRvUmVkb01hbmFnZXI6IFVuZG9SZWRvTWFuYWdlclxuICApIHtcbiAgICB0aGlzLm9uTW9kaWZpZWRDYWxsYmFjayA9IG9uTW9kaWZpZWRDYWxsYmFjaztcbiAgICB0aGlzLnNjcm9sbGFibGVFbGVtZW50ID1cbiAgICAgIHBhcmVudCAmJiA8SFRNTEVsZW1lbnQ+cGFyZW50LnF1ZXJ5U2VsZWN0b3IoXCIjc2Nyb2xsYWJsZURpdlwiKTtcbiAgICB0aGlzLnByZXZDb29yZGluYXRlcyA9IHsgeDogLTEsIHk6IC0xIH07XG4gIH1cbiAgcHVibGljIGF0dGFjaFRvRWxlbWVudChkb21FbGVtZW50LCBzdXJ2ZXlFbGVtZW50KSB7XG4gICAgdmFyIGlzRmxvd1BhbmVsID1cbiAgICAgIHN1cnZleUVsZW1lbnQuaXNQYW5lbCAmJlxuICAgICAgdHlwZW9mIHN1cnZleUVsZW1lbnQuZ2V0Q2hpbGRyZW5MYXlvdXRUeXBlID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgIHN1cnZleUVsZW1lbnQuZ2V0Q2hpbGRyZW5MYXlvdXRUeXBlKCkgPT09IFwiZmxvd1wiO1xuICAgIHZhciBpc0Zsb3dQYW5lbEluQ2hyb21lID0gaXNGbG93UGFuZWwgJiYgISF3aW5kb3dbXCJjaHJvbWVcIl07XG5cbiAgICBkb21FbGVtZW50LnN0eWxlLm9wYWNpdHkgPSBzdXJ2ZXlFbGVtZW50LmtvSXNEcmFnZ2luZygpID8gMC40IDogMTtcbiAgICBkb21FbGVtZW50LmRyYWdnYWJsZSA9XG4gICAgICBzdXJ2ZXlFbGVtZW50LmFsbG93aW5nT3B0aW9ucy5hbGxvd0RyYWdnaW5nICYmICFpc0Zsb3dQYW5lbDtcbiAgICBpZiAoaXNGbG93UGFuZWxJbkNocm9tZSkge1xuICAgICAgZG9tRWxlbWVudC5vbnBhc3RlID0gZnVuY3Rpb24gZG9QYXN0ZShlLCBlbCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHZhciBjbGlwRGF0YSA9IHdpbmRvd1tcImNsaXBib2FyZERhdGFcIl07XG4gICAgICAgIGlmICghIWNsaXBEYXRhKSB7XG4gICAgICAgICAgdmFyIGNvbnRlbnQgPSBjbGlwRGF0YS5nZXREYXRhKFwidGV4dFwiKTtcbiAgICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICAgICAgdmFyIHNlbE9iaiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIHZhciBzZWxSYW5nZSA9IHNlbE9iai5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgICAgc2VsUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgIHNlbFJhbmdlLmluc2VydE5vZGUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29udGVudCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgoZS5vcmlnaW5hbEV2ZW50IHx8IGUpLmNsaXBib2FyZERhdGEpIHtcbiAgICAgICAgICBjb250ZW50ID0gKGUub3JpZ2luYWxFdmVudCB8fCBlKS5jbGlwYm9hcmREYXRhLmdldERhdGEoXCJ0ZXh0L3BsYWluXCIpO1xuICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiaW5zZXJ0VGV4dFwiLCBmYWxzZSwgY29udGVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgIH1cbiAgICBkb21FbGVtZW50Lm9uZHJhZ292ZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBpZiAoIXN1cnZleUVsZW1lbnQuYWxsb3dpbmdPcHRpb25zLmFsbG93RHJhZ2dpbmcpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmIChpc0Zsb3dQYW5lbClcbiAgICAgICAgcmV0dXJuIHN1cnZleUVsZW1lbnRcbiAgICAgICAgICAuZHJhZ0Ryb3BIZWxwZXIoKVxuICAgICAgICAgIC5kb0RyYWdEcm9wT3ZlckZsb3coZSwgc3VydmV5RWxlbWVudCk7XG4gICAgICBpZiAoIWVbXCJtYXJrRXZlbnRcIl0pIHtcbiAgICAgICAgZVtcIm1hcmtFdmVudFwiXSA9IHRydWU7XG4gICAgICAgIHN1cnZleUVsZW1lbnQuZHJhZ0Ryb3BIZWxwZXIoKS5kb0RyYWdEcm9wT3ZlcihlLCBzdXJ2ZXlFbGVtZW50LCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH07XG4gICAgZG9tRWxlbWVudC5vbmRyb3AgPSBmdW5jdGlvbihlKSB7XG4gICAgICB2YXIgaGVscGVyID0gc3VydmV5RWxlbWVudC5kcmFnRHJvcEhlbHBlcigpO1xuICAgICAgdmFyIHByZXZlbnREZWZhdWx0ID0gIShcbiAgICAgICAgaXNGbG93UGFuZWwgJiZcbiAgICAgICAgISFoZWxwZXIuZGRUYXJnZXQgJiZcbiAgICAgICAgISFoZWxwZXIuZGRUYXJnZXQuc291cmNlICYmXG4gICAgICAgIGhlbHBlci5kZFRhcmdldC5zb3VyY2UucGFyZW50ID09IHN1cnZleUVsZW1lbnRcbiAgICAgICk7XG4gICAgICAvL0ZpeCB0aGUgYnVnIGZvciBjaHJvbWUgaW4gY29udGVudGVkaXRhYmxlXG4gICAgICBpZiAoXG4gICAgICAgIGlzRmxvd1BhbmVsSW5DaHJvbWUgJiZcbiAgICAgICAgKCFoZWxwZXIuZGRUYXJnZXQgfHxcbiAgICAgICAgICAhaGVscGVyLmRkVGFyZ2V0LmRlc3RpbmF0aW9uIHx8XG4gICAgICAgICAgaGVscGVyLmRkVGFyZ2V0LmRlc3RpbmF0aW9uLmlzTGF5b3V0VHlwZVN1cHBvcnRlZChcImZsb3dcIikpXG4gICAgICApIHtcbiAgICAgICAgdmFyIGNvbnRlbnQgPSBlLmRhdGFUcmFuc2Zlci5nZXREYXRhKFwidGV4dFwiKTtcbiAgICAgICAgdmFyIGRyb3BSYW5nZSA9IG51bGw7XG4gICAgICAgIGlmICghIWRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQpIHtcbiAgICAgICAgICBkcm9wUmFuZ2UgPSBkb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KGUuY2xpZW50WCwgZS5jbGllbnRZKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoISFkb2N1bWVudFtcImNhcmV0UG9zaXRpb25Gcm9tUG9pbnRcIl0pIHtcbiAgICAgICAgICAgIGRyb3BSYW5nZSA9IGRvY3VtZW50W1wiY2FyZXRQb3NpdGlvbkZyb21Qb2ludFwiXShlLmNsaWVudFgsIGUuY2xpZW50WSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghIWRyb3BSYW5nZSkge1xuICAgICAgICAgIHByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgaWYgKHN1cnZleUVsZW1lbnRbXCJpc0RyYWdTdGFydGVkXCJdKSB7XG4gICAgICAgICAgICB2YXIgc2VsT2JqID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgaWYgKCEhc2VsT2JqICYmIHNlbE9iai5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgICAgICAgICB2YXIgc2VsUmFuZ2UgPSBzZWxPYmouZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgICAgICAgaWYgKCEhc2VsUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICBzZWxSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGRyb3BSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpKTtcbiAgICAgICAgICBsZXQgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICAgIGlmICghIXNlbGVjdGlvbikge1xuICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKGRyb3BSYW5nZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWVbXCJtYXJrRXZlbnRcIl0pIHtcbiAgICAgICAgZVtcIm1hcmtFdmVudFwiXSA9IHRydWU7XG4gICAgICAgIGhlbHBlci5kb0Ryb3AoZSwgcHJldmVudERlZmF1bHQpO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKCFpc0Zsb3dQYW5lbCkge1xuICAgICAgZG9tRWxlbWVudC5vbmRyYWdzdGFydCA9IGZ1bmN0aW9uKGU6IERyYWdFdmVudCkge1xuICAgICAgICAvLyB2YXIgdGFyZ2V0OiBhbnkgPSBlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQ7XG4gICAgICAgIC8vIGlmIChcbiAgICAgICAgLy8gICAhIXRhcmdldCAmJlxuICAgICAgICAvLyAgICEhdGFyZ2V0LmNvbnRhaW5zICYmXG4gICAgICAgIC8vICAgdGFyZ2V0ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmXG4gICAgICAgIC8vICAgdGFyZ2V0LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpXG4gICAgICAgIC8vICkge1xuICAgICAgICAvLyAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgLy8gICByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8vIH1cbiAgICAgICAgaWYgKCFzdXJ2ZXlFbGVtZW50LmFsbG93aW5nT3B0aW9ucy5hbGxvd0RyYWdnaW5nKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICghZVtcIm1hcmtFdmVudFwiXSkge1xuICAgICAgICAgIGVbXCJtYXJrRXZlbnRcIl0gPSB0cnVlO1xuICAgICAgICAgIHN1cnZleUVsZW1lbnQuZHJhZ0Ryb3BIZWxwZXIoKS5zdGFydERyYWdRdWVzdGlvbihlLCBzdXJ2ZXlFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlLmNhbmNlbEJ1YmJsZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9tRWxlbWVudC5vbmRyYWdzdGFydCA9IGZ1bmN0aW9uKGU6IERyYWdFdmVudCkge1xuICAgICAgICBzdXJ2ZXlFbGVtZW50LmlzRHJhZ1N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICBpZiAoIWVbXCJtYXJrRXZlbnRcIl0pIHtcbiAgICAgICAgICBlW1wibWFya0V2ZW50XCJdID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoIXN1cnZleUVsZW1lbnQuZHJhZ0Ryb3BIZWxwZXIoKS5nZXREYXRhKGUpLnRleHQpIHtcbiAgICAgICAgICAgIHN1cnZleUVsZW1lbnQuZHJhZ0Ryb3BIZWxwZXIoKS5zdGFydERyYWdRdWVzdGlvbihlLCBzdXJ2ZXlFbGVtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGRvbUVsZW1lbnQub25kcmFnZW5kID0gZnVuY3Rpb24oZSkge1xuICAgICAgZGVsZXRlIHN1cnZleUVsZW1lbnRbXCJpc0RyYWdTdGFydGVkXCJdO1xuICAgICAgc3VydmV5RWxlbWVudC5kcmFnRHJvcEhlbHBlcigpLmVuZCgpO1xuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBzdXJ2ZXkoKTogU3VydmV5LlN1cnZleSB7XG4gICAgcmV0dXJuIDxTdXJ2ZXkuU3VydmV5PnRoaXMuZGF0YTtcbiAgfVxuICBwdWJsaWMgc3RhcnREcmFnUXVlc3Rpb24oZXZlbnQ6IERyYWdFdmVudCwgZWxlbWVudDogYW55KSB7XG4gICAgdmFyIGpzb24gPSBuZXcgU3VydmV5Lkpzb25PYmplY3QoKS50b0pzb25PYmplY3QoZWxlbWVudCk7XG4gICAganNvbltcInR5cGVcIl0gPSBlbGVtZW50LmdldFR5cGUoKTtcbiAgICB0aGlzLnByZXBhcmVEYXRhKGV2ZW50LCBlbGVtZW50Lm5hbWUsIGpzb24sIGVsZW1lbnQpO1xuICB9XG4gIHB1YmxpYyBzdGFydERyYWdUb29sYm94SXRlbShcbiAgICBldmVudDogRHJhZ0V2ZW50LFxuICAgIGVsZW1lbnROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudEpzb246IGFueVxuICApIHtcbiAgICB0aGlzLnByZXBhcmVEYXRhKGV2ZW50LCBlbGVtZW50TmFtZSwgZWxlbWVudEpzb24sIG51bGwpO1xuICAgIGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7XG4gIH1cbiAgcHVibGljIGlzU3VydmV5RHJhZ2dpbmcoZXZlbnQ6IERyYWdFdmVudCk6IGJvb2xlYW4ge1xuICAgIGlmICghZXZlbnQpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgZGF0YSA9IHRoaXMuZ2V0RGF0YShldmVudCkudGV4dDtcbiAgICByZXR1cm4gZGF0YSAmJiBkYXRhLmluZGV4T2YoRHJhZ0Ryb3BIZWxwZXIuZGF0YVN0YXJ0KSA9PSAwO1xuICB9XG4gIHB1YmxpYyBkb0RyYWdEcm9wT3ZlcihcbiAgICBldmVudDogRHJhZ0V2ZW50LFxuICAgIGVsZW1lbnQ6IGFueSxcbiAgICBpc0VkZ2U6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBldmVudCA9IHRoaXMuaXNDYW5EcmFnQ29udGludWUoZXZlbnQsIGVsZW1lbnQpO1xuICAgIGlmICghZXZlbnQpIHJldHVybjtcbiAgICB2YXIgYm90dG9tSW5mbyA9IHRoaXMuaXNCb3R0b20oZXZlbnQpO1xuICAgIGlmIChlbGVtZW50LmlzUGFnZSAmJiBlbGVtZW50LmVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBsYXN0RWwgPSBlbGVtZW50LmVsZW1lbnRzW2VsZW1lbnQuZWxlbWVudHMubGVuZ3RoIC0gMV07XG4gICAgICBpZiAoIXRoaXMuaXNCb3R0b21UaGFuRWxlbWVudChldmVudCwgbGFzdEVsKSkgcmV0dXJuO1xuICAgICAgZWxlbWVudCA9IGxhc3RFbDtcbiAgICAgIGlzRWRnZSA9IHRydWU7XG4gICAgICBib3R0b21JbmZvLmlzRWRnZSA9IHRydWU7XG4gICAgICBib3R0b21JbmZvLmlzQm90dG9tID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpc0VkZ2UgPSBlbGVtZW50LmlzUGFuZWwgPyBpc0VkZ2UgJiYgYm90dG9tSW5mby5pc0VkZ2UgOiB0cnVlO1xuICAgIGlmIChlbGVtZW50LmlzUGFuZWwgJiYgIWlzRWRnZSAmJiBlbGVtZW50LmVsZW1lbnRzLmxlbmd0aCA+IDApIHJldHVybjtcbiAgICB0aGlzLmRkVGFyZ2V0Lm1vdmVUbyhlbGVtZW50LCBib3R0b21JbmZvLmlzQm90dG9tLCBpc0VkZ2UpO1xuICB9XG4gIHB1YmxpYyBkb0RyYWdEcm9wT3ZlckZsb3coZXZlbnQ6IERyYWdFdmVudCwgZWxlbWVudDogYW55KSB7XG4gICAgaWYgKCEhdGhpcy5kZFRhcmdldCkge1xuICAgICAgZXZlbnQgPSB0aGlzLmlzQ2FuRHJhZ0NvbnRpbnVlKGV2ZW50LCBlbGVtZW50KTtcbiAgICAgIGlmICghZXZlbnQpIHJldHVybiB0cnVlO1xuICAgICAgdmFyIGJvdHRvbUluZm8gPSB0aGlzLmlzQm90dG9tKGV2ZW50KTtcbiAgICAgIHJldHVybiB0aGlzLmRkVGFyZ2V0Lm1vdmVUbyhcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgYm90dG9tSW5mby5pc0JvdHRvbSxcbiAgICAgICAgYm90dG9tSW5mby5pc0VkZ2VcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByaXZhdGUgaXNDYW5EcmFnQ29udGludWUoZXZlbnQ6IERyYWdFdmVudCwgZWxlbWVudDogYW55KTogRHJhZ0V2ZW50IHtcbiAgICBldmVudCA9IHRoaXMuZ2V0RXZlbnQoZXZlbnQpO1xuICAgIGlmICh0aGlzLmlzU2FtZUNvb3JkaW5hdGVzKGV2ZW50KSkgcmV0dXJuIG51bGw7XG4gICAgdGhpcy5jaGVja1Njcm9sbFkoZXZlbnQpO1xuICAgIGlmIChcbiAgICAgICFlbGVtZW50IHx8XG4gICAgICAhdGhpcy5pc1N1cnZleURyYWdnaW5nKGV2ZW50KSB8fFxuICAgICAgdGhpcy5pc1NhbWVQbGFjZShldmVudCwgZWxlbWVudClcbiAgICApXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gZXZlbnQ7XG4gIH1cbiAgcHVibGljIGVuZCgpIHtcbiAgICBpZiAodGhpcy5kZFRhcmdldCkge1xuICAgICAgdGhpcy5kZFRhcmdldC5jbGVhcigpO1xuICAgIH1cbiAgICB0aGlzLmlzU2Nyb2xsU3RvcCA9IHRydWU7XG4gICAgdGhpcy5jbGVhckRhdGEoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzTW92aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRkVGFyZ2V0ICYmIHRoaXMuZGRUYXJnZXQuc291cmNlO1xuICB9XG4gIHB1YmxpYyBkb0Ryb3AoZXZlbnQ6IERyYWdFdmVudCwgcHJldmVkRGVmYXVsdDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNTdXJ2ZXlEcmFnZ2luZyhldmVudCkpIHtcbiAgICAgIGlmIChwcmV2ZWREZWZhdWx0KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgdmFyIG5ld0VsZW1lbnQgPSB0aGlzLmRkVGFyZ2V0LmRvRHJvcCgpO1xuICAgICAgICBpZiAodGhpcy5vbk1vZGlmaWVkQ2FsbGJhY2spXG4gICAgICAgICAgdGhpcy5vbk1vZGlmaWVkQ2FsbGJhY2soe1xuICAgICAgICAgICAgdHlwZTogXCJET19EUk9QXCIsXG4gICAgICAgICAgICBwYWdlOiB0aGlzLmRkVGFyZ2V0LnBhZ2UsXG4gICAgICAgICAgICBzb3VyY2U6IHRoaXMuZGRUYXJnZXQuc291cmNlLFxuICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmRkVGFyZ2V0LnRhcmdldCxcbiAgICAgICAgICAgIG5ld0VsZW1lbnQ6IHRoaXMuZGRUYXJnZXQuc291cmNlID8gbnVsbCA6IG5ld0VsZW1lbnQsXG4gICAgICAgICAgICBtb3ZlVG9QYXJlbnQ6IG5ld0VsZW1lbnQucGFyZW50LFxuICAgICAgICAgICAgbW92ZVRvSW5kZXg6ICEhbmV3RWxlbWVudC5wYXJlbnRcbiAgICAgICAgICAgICAgPyBuZXdFbGVtZW50LnBhcmVudC5lbGVtZW50cy5pbmRleE9mKG5ld0VsZW1lbnQpXG4gICAgICAgICAgICAgIDogLTFcbiAgICAgICAgICB9KTtcbiAgICAgICAgbmV3RWxlbWVudC51cGRhdGVFbGVtZW50Q3NzICYmIG5ld0VsZW1lbnQudXBkYXRlRWxlbWVudENzcygpO1xuICAgICAgICBuZXdFbGVtZW50W1wia29FbGVtZW50VHlwZVwiXSAmJiBuZXdFbGVtZW50W1wia29FbGVtZW50VHlwZVwiXS5ub3RpZnlTdWJzY3JpYmVycygpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmVuZCgpO1xuICB9XG4gIHB1YmxpYyBkb0xlYXZlUGFnZShldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKCEhdGhpcy5kZFRhcmdldCkge1xuICAgICAgdGhpcy5kZFRhcmdldC5tb3ZlVG8obnVsbCwgZmFsc2UpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGNyZWF0ZVRhcmdldEVsZW1lbnQoZWxlbWVudE5hbWU6IHN0cmluZywganNvbjogYW55KTogYW55IHtcbiAgICBpZiAoIWVsZW1lbnROYW1lIHx8ICFqc29uKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgdGFyZ2V0RWxlbWVudCA9IG51bGw7XG4gICAgdGFyZ2V0RWxlbWVudCA9IFN1cnZleS5TZXJpYWxpemVyLmNyZWF0ZUNsYXNzKGpzb25bXCJ0eXBlXCJdKTtcbiAgICBuZXcgU3VydmV5Lkpzb25PYmplY3QoKS50b09iamVjdChqc29uLCB0YXJnZXRFbGVtZW50KTtcbiAgICB0YXJnZXRFbGVtZW50Lm5hbWUgPSBlbGVtZW50TmFtZTtcbiAgICBpZiAodGFyZ2V0RWxlbWVudFtcInNldFN1cnZleUltcGxcIl0pIHtcbiAgICAgIHRhcmdldEVsZW1lbnRbXCJzZXRTdXJ2ZXlJbXBsXCJdKHRoaXMuc3VydmV5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0RWxlbWVudFtcInNldERhdGFcIl0odGhpcy5zdXJ2ZXkpO1xuICAgIH1cbiAgICB0YXJnZXRFbGVtZW50LnJlbmRlcldpZHRoID0gXCIxMDAlXCI7XG4gICAgdGFyZ2V0RWxlbWVudFtcImtvSXNEcmFnZ2luZ1wiXSh0cnVlKTtcbiAgICByZXR1cm4gdGFyZ2V0RWxlbWVudDtcbiAgfVxuICBwcml2YXRlIGlzQm90dG9tKGV2ZW50OiBEcmFnRXZlbnQpOiBhbnkge1xuICAgIGV2ZW50ID0gdGhpcy5nZXRFdmVudChldmVudCk7XG4gICAgdmFyIGhlaWdodCA9IDxudW1iZXI+ZXZlbnQuY3VycmVudFRhcmdldFtcImNsaWVudEhlaWdodFwiXTtcbiAgICB2YXIgeSA9IGV2ZW50Lm9mZnNldFk7XG4gICAgaWYgKGV2ZW50Lmhhc093blByb3BlcnR5KFwibGF5ZXJYXCIpKSB7XG4gICAgICB5ID0gZXZlbnRbXCJsYXllcllcIl0gLSA8bnVtYmVyPmV2ZW50LmN1cnJlbnRUYXJnZXRbXCJvZmZzZXRUb3BcIl07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpc0JvdHRvbTogeSA+IGhlaWdodCAvIDIsXG4gICAgICBpc0VkZ2U6XG4gICAgICAgIHkgPD0gRHJhZ0Ryb3BIZWxwZXIuZWRnZUhlaWdodCB8fFxuICAgICAgICBoZWlnaHQgLSB5IDw9IERyYWdEcm9wSGVscGVyLmVkZ2VIZWlnaHRcbiAgICB9O1xuICB9XG4gIHByaXZhdGUgaXNCb3R0b21UaGFuRWxlbWVudChldmVudDogRHJhZ0V2ZW50LCBsYXN0RWw6IGFueSk6IGJvb2xlYW4ge1xuICAgIHZhciBlbCA9IGxhc3RFbC5yZW5kZXJlZEVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuIGZhbHNlO1xuICAgIGV2ZW50ID0gdGhpcy5nZXRFdmVudChldmVudCk7XG4gICAgdmFyIGVsWSA9IDxudW1iZXI+ZWwub2Zmc2V0VG9wICsgPG51bWJlcj5lbC5jbGllbnRIZWlnaHQ7XG4gICAgdmFyIHkgPSBldmVudC5vZmZzZXRZO1xuICAgIGlmIChldmVudC5oYXNPd25Qcm9wZXJ0eShcImxheWVyWFwiKSkge1xuICAgICAgeSA9IGV2ZW50W1wibGF5ZXJZXCJdIC0gPG51bWJlcj5ldmVudC5jdXJyZW50VGFyZ2V0W1wib2Zmc2V0VG9wXCJdO1xuICAgIH1cbiAgICByZXR1cm4geSA+IGVsWTtcbiAgfVxuICBwcml2YXRlIGlzU2FtZUNvb3JkaW5hdGVzKGV2ZW50OiBEcmFnRXZlbnQpOiBib29sZWFuIHtcbiAgICB2YXIgcmVzID1cbiAgICAgIE1hdGguYWJzKGV2ZW50LnBhZ2VYIC0gdGhpcy5wcmV2Q29vcmRpbmF0ZXMueCkgPiA1IHx8XG4gICAgICBNYXRoLmFicyhldmVudC5wYWdlWSAtIHRoaXMucHJldkNvb3JkaW5hdGVzLnkpID4gNTtcbiAgICBpZiAocmVzKSB7XG4gICAgICB0aGlzLnByZXZDb29yZGluYXRlcy54ID0gZXZlbnQucGFnZVg7XG4gICAgICB0aGlzLnByZXZDb29yZGluYXRlcy55ID0gZXZlbnQucGFnZVk7XG4gICAgfVxuICAgIHJldHVybiAhcmVzO1xuICB9XG4gIHByaXZhdGUgaXNTYW1lUGxhY2UoZXZlbnQ6IERyYWdFdmVudCwgZWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgdmFyIHByZXYgPSBEcmFnRHJvcEhlbHBlci5wcmV2RXZlbnQ7XG4gICAgaWYgKFxuICAgICAgcHJldi5lbGVtZW50ICE9IGVsZW1lbnQgfHxcbiAgICAgIE1hdGguYWJzKGV2ZW50LmNsaWVudFggLSBwcmV2LngpID4gNSB8fFxuICAgICAgTWF0aC5hYnMoZXZlbnQuY2xpZW50WSAtIHByZXYueSkgPiA1XG4gICAgKSB7XG4gICAgICBwcmV2LmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgcHJldi54ID0gZXZlbnQuY2xpZW50WDtcbiAgICAgIHByZXYueSA9IGV2ZW50LmNsaWVudFk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByaXZhdGUgaXNTY3JvbGxTdG9wOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBzdGF0aWMgU2Nyb2xsRGVsYXk6IG51bWJlciA9IDMwO1xuICBwcml2YXRlIHN0YXRpYyBTY3JvbGxPZmZzZXQ6IG51bWJlciA9IDEwMDtcbiAgcHJpdmF0ZSBjaGVja1Njcm9sbFkoZTogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKCF0aGlzLnNjcm9sbGFibGVFbGVtZW50KSByZXR1cm47XG4gICAgdmFyIHkgPSB0aGlzLmdldFNjcm9sbGFibGVFbGVtZW50UG9zWShlKTtcbiAgICBpZiAoeSA8IDApIHJldHVybjtcbiAgICB0aGlzLmlzU2Nyb2xsU3RvcCA9IHRydWU7XG4gICAgdmFyIGhlaWdodCA9IDxudW1iZXI+dGhpcy5zY3JvbGxhYmxlRWxlbWVudFtcImNsaWVudEhlaWdodFwiXTtcbiAgICBpZiAoeSA8IERyYWdEcm9wSGVscGVyLlNjcm9sbE9mZnNldCAmJiB5ID49IDApIHtcbiAgICAgIHRoaXMuaXNTY3JvbGxTdG9wID0gZmFsc2U7XG4gICAgICB0aGlzLmRvU2Nyb2xsWSgtMSk7XG4gICAgfVxuICAgIGlmIChoZWlnaHQgLSB5IDwgRHJhZ0Ryb3BIZWxwZXIuU2Nyb2xsT2Zmc2V0ICYmIGhlaWdodCA+PSB5KSB7XG4gICAgICB0aGlzLmlzU2Nyb2xsU3RvcCA9IGZhbHNlO1xuICAgICAgdGhpcy5kb1Njcm9sbFkoMSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZG9TY3JvbGxZKHN0ZXA6IG51bWJlcikge1xuICAgIHZhciBlbCA9IHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQ7XG4gICAgdmFyIHNjcm9sbFkgPSBlbC5zY3JvbGxUb3AgKyBzdGVwO1xuICAgIGlmIChzY3JvbGxZIDwgMCkge1xuICAgICAgdGhpcy5pc1Njcm9sbFN0b3AgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbC5zY3JvbGxUb3AgPSBzY3JvbGxZO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBpZiAoIXRoaXMuaXNTY3JvbGxTdG9wKSB7XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLmRvU2Nyb2xsWShzdGVwKTtcbiAgICAgIH0sIERyYWdEcm9wSGVscGVyLlNjcm9sbERlbGF5KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRTY3JvbGxhYmxlRWxlbWVudFBvc1koZTogRHJhZ0V2ZW50KTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQgfHwgIWUuY3VycmVudFRhcmdldCkgcmV0dXJuIC0xO1xuICAgIHZhciBlbCA9IGUuY3VycmVudFRhcmdldDtcbiAgICB2YXIgb2Zmc2V0VG9wID0gMDtcbiAgICB3aGlsZSAoZWwgJiYgZWwgIT0gdGhpcy5zY3JvbGxhYmxlRWxlbWVudCkge1xuICAgICAgb2Zmc2V0VG9wICs9IDxudW1iZXI+ZWxbXCJvZmZzZXRUb3BcIl07XG4gICAgICBlbCA9IGVsW1wib2Zmc2V0UGFyZW50XCJdO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgZS5vZmZzZXRZICtcbiAgICAgIDxudW1iZXI+ZS5jdXJyZW50VGFyZ2V0W1wib2Zmc2V0VG9wXCJdIC1cbiAgICAgIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQub2Zmc2V0VG9wIC1cbiAgICAgIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIGdldEV2ZW50KGV2ZW50OiBEcmFnRXZlbnQpOiBEcmFnRXZlbnQge1xuICAgIHJldHVybiBldmVudFtcIm9yaWdpbmFsRXZlbnRcIl0gPyBldmVudFtcIm9yaWdpbmFsRXZlbnRcIl0gOiBldmVudDtcbiAgfVxuICBwcml2YXRlIGdldFkoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xuICAgIHZhciByZXN1bHQgPSAwO1xuXG4gICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgIHJlc3VsdCArPSBlbGVtZW50Lm9mZnNldFRvcCAtIGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudC5jbGllbnRUb3A7XG4gICAgICBlbGVtZW50ID0gPEhUTUxFbGVtZW50PmVsZW1lbnQub2Zmc2V0UGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHByaXZhdGUgcHJlcGFyZURhdGEoXG4gICAgZXZlbnQ6IERyYWdFdmVudCxcbiAgICBlbGVtZW50TmFtZTogc3RyaW5nLFxuICAgIGpzb246IGFueSxcbiAgICBzb3VyY2U6IFN1cnZleS5JRWxlbWVudFxuICApIHtcbiAgICB2YXIgc3RyID0gRHJhZ0Ryb3BIZWxwZXIuZGF0YVN0YXJ0ICsgZWxlbWVudE5hbWUgKyBcIn1cIjtcbiAgICB0aGlzLnNldERhdGEoZXZlbnQsIHN0cik7XG4gICAgdmFyIHRhcmdldEVsZW1lbnQgPSB0aGlzLmNyZWF0ZVRhcmdldEVsZW1lbnQoZWxlbWVudE5hbWUsIGpzb24pO1xuICAgIHRoaXMuZGRUYXJnZXQgPSBuZXcgRHJhZ0Ryb3BUYXJnZXRFbGVtZW50KFxuICAgICAgPFN1cnZleS5QYWdlPnRoaXMuc3VydmV5LmN1cnJlbnRQYWdlLFxuICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgIHNvdXJjZSxcbiAgICAgIERyYWdEcm9wSGVscGVyLm5lc3RlZFBhbmVsRGVwdGgsXG4gICAgICB0aGlzLnVuZG9SZWRvTWFuYWdlclxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBzZXREYXRhKGV2ZW50OiBEcmFnRXZlbnQsIHRleHQ6IHN0cmluZykge1xuICAgIGlmIChldmVudFtcIm9yaWdpbmFsRXZlbnRcIl0pIHtcbiAgICAgIGV2ZW50ID0gZXZlbnRbXCJvcmlnaW5hbEV2ZW50XCJdO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShcIlRleHRcIiwgdGV4dCk7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9IFwiY29weVwiO1xuICAgIH1cbiAgICBEcmFnRHJvcEhlbHBlci5kcmFnRGF0YSA9IHsgdGV4dDogdGV4dCB9O1xuICB9XG4gIHByaXZhdGUgZ2V0RGF0YShldmVudDogRHJhZ0V2ZW50KTogYW55IHtcbiAgICBpZiAoZXZlbnRbXCJvcmlnaW5hbEV2ZW50XCJdKSB7XG4gICAgICBldmVudCA9IGV2ZW50W1wib3JpZ2luYWxFdmVudFwiXTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgdmFyIHRleHQgPSBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YShcIlRleHRcIik7XG4gICAgICBpZiAodGV4dCkge1xuICAgICAgICBEcmFnRHJvcEhlbHBlci5kcmFnRGF0YS50ZXh0ID0gdGV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIERyYWdEcm9wSGVscGVyLmRyYWdEYXRhO1xuICB9XG4gIHByaXZhdGUgY2xlYXJEYXRhKCkge1xuICAgIHRoaXMuZGRUYXJnZXQgPSBudWxsOyAvLyBXZSBzaG91bGQgcmVzZXQgZGRUYXJnZXQgdG8gbnVsbCBkdWUgdG8gdGhlIGh0dHBzOi8vc3VydmV5anMuYW5zd2VyZGVzay5pby90aWNrZXQvZGV0YWlscy9UMTAwMyAtIG9uUXVlc3Rpb25BZGRlZCBub3QgZmlyZWQgYWZ0ZXIgRCZEXG4gICAgRHJhZ0Ryb3BIZWxwZXIuZHJhZ0RhdGEgPSB7IHRleHQ6IFwiXCIsIGpzb246IG51bGwgfTtcbiAgICB2YXIgcHJldiA9IERyYWdEcm9wSGVscGVyLnByZXZFdmVudDtcbiAgICBwcmV2LmVsZW1lbnQgPSBudWxsO1xuICAgIHByZXYueCA9IC0xO1xuICAgIHByZXYueSA9IC0xO1xuICAgIHRoaXMucHJldkNvb3JkaW5hdGVzLnggPSAtMTtcbiAgICB0aGlzLnByZXZDb29yZGluYXRlcy55ID0gLTE7XG4gIH1cbiAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG59XG4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHtcbiAgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMsXG4gIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbn0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgU3VydmV5T2JqZWN0cyB9IGZyb20gXCIuL3N1cnZleU9iamVjdHNcIjtcbmltcG9ydCB7IFF1ZXN0aW9uQ29udmVydGVyIH0gZnJvbSBcIi4vcXVlc3Rpb25jb252ZXJ0ZXJcIjtcbmltcG9ydCB7XG4gIFByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLFxuICBTdXJ2ZXlQcm9wZXJ0eUVkaXRvclNob3dXaW5kb3csXG4gIFN1cnZleUVsZW1lbnRFZGl0b3JUYWJNb2RlbCxcbn0gZnJvbSBcIi4vcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uRWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlUZXh0V29ya2VyIH0gZnJvbSBcIi4vdGV4dFdvcmtlclwiO1xuaW1wb3J0IHsgVW5kb1JlZG9NYW5hZ2VyLCBJVW5kb1JlZG9DaGFuZ2UgfSBmcm9tIFwiLi91bmRvcmVkb21hbmFnZXJcIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciwgT2JqVHlwZSB9IGZyb20gXCIuL3N1cnZleUhlbHBlclwiO1xuaW1wb3J0IHsgRHJhZ0Ryb3BIZWxwZXIgfSBmcm9tIFwiLi9kcmFnZHJvcGhlbHBlclwiO1xuaW1wb3J0IHsgUXVlc3Rpb25Ub29sYm94IH0gZnJvbSBcIi4vdG9vbGJveFwiO1xuaW1wb3J0IHsgU3VydmV5SlNPTjUgfSBmcm9tIFwiLi9qc29uNVwiO1xudmFyIHRlbXBsYXRlRWRpdG9ySHRtbCA9IHJlcXVpcmUoXCJodG1sLWxvYWRlcj9pbnRlcnBvbGF0ZSF2YWwtbG9hZGVyIS4vdGVtcGxhdGVzL2VudHJ5Lmh0bWxcIik7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHtcbiAgU3VydmV5Rm9yRGVzaWduZXIsXG4gIGNyZWF0ZUFmdGVyUmVuZGVySGFuZGxlcixcbiAgY3JlYXRlQWZ0ZXJSZW5kZXJQYWdlSGFuZGxlcixcbiAgY3JlYXRlQWZ0ZXJSZW5kZXJIZWFkZXJIYW5kbGVyLFxufSBmcm9tIFwiLi9zdXJ2ZXlqc09iamVjdHNcIjtcbmltcG9ydCB7IFN0eWxlc01hbmFnZXIgfSBmcm9tIFwiLi9zdHlsZXNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBpdGVtQWRvcm5lciB9IGZyb20gXCIuL2Fkb3JuZXJzL2l0ZW0tZWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlMaXZlVGVzdGVyIH0gZnJvbSBcIi4vdGFicy90ZXN0XCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbiB9IGZyb20gXCIuL3RhYnMvdHJhbnNsYXRpb25cIjtcbmltcG9ydCB7IFN1cnZleUxvZ2ljIH0gZnJvbSBcIi4vdGFicy9sb2dpY1wiO1xuaW1wb3J0IHsgQ29tbWFuZHMgfSBmcm9tIFwiLi9jb21tYW5kc1wiO1xuXG5pbXBvcnQgeyBQYWdlc0VkaXRvciB9IGZyb20gXCIuL3BhZ2VzLWVkaXRvclwiO1xuaW1wb3J0IHsgaXNQcm9wZXJ0eVZpc2libGUgfSBmcm9tIFwiLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgU3VydmV5T2JqZWN0UHJvcGVydHkgfSBmcm9tIFwiLi9vYmplY3RQcm9wZXJ0eVwiO1xuaW1wb3J0IHsgQ3JlYXRvckJhc2UsIENyZWF0b3JCYXNlRXZlbnQgfSBmcm9tIFwiLi9jcmVhdG9yLWJhc2VcIjtcbmltcG9ydCB7IElBY3Rpb24sIFBhZ2UsIFBhbmVsIH0gZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgRWRpdGFibGVPYmplY3QgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvcnMvZWRpdGFibGVPYmplY3RcIjtcblxudHlwZSBDb250YWluZXJMb2NhdGlvbiA9IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJ0b3BcIiB8IFwibm9uZVwiIHwgYm9vbGVhbjtcblxuU3VydmV5LlNlcmlhbGl6ZXIucmVtb3ZlQ2xhc3MoXCJ0YWdib3hcIik7IC8vIHJlbW92ZSBhZnRlciB0YWdib3ggaW1wbGVtZW50ZWRcblN1cnZleS5RdWVzdGlvbkZhY3RvcnkuSW5zdGFuY2UudW5yZWdpc3RlckVsZW1lbnQoXCJ0YWdib3hcIik7XG5cbi8qKlxuICogU3VydmV5IENyZWF0b3IgaXMgV1lTSVdZRyBlZGl0b3IuXG4gKi9cblxuZXhwb3J0IGNsYXNzIENyZWF0b3JFdmVudCBleHRlbmRzIFN1cnZleS5FdmVudEJhc2U8U3VydmV5Q3JlYXRvcj4ge1xufVxuZXhwb3J0IGNsYXNzIFN1cnZleUNyZWF0b3JcbiAgZXh0ZW5kcyBDcmVhdG9yQmFzZTxTdXJ2ZXlGb3JEZXNpZ25lcj5cbiAgaW1wbGVtZW50cyBJU3VydmV5T2JqZWN0RWRpdG9yT3B0aW9ucyB7XG4gIHB1YmxpYyBzdGF0aWMgZGVmYXVsdE5ld1N1cnZleVRleHQ6IHN0cmluZyA9IFwieyBwYWdlczogWyB7IG5hbWU6ICdwYWdlMSd9XSB9XCI7XG4gIHByaXZhdGUgcmVuZGVyZWRFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHF1ZXN0aW9uRWRpdG9yV2luZG93OiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvclNob3dXaW5kb3c7XG5cbiAgcHJpdmF0ZSBzdXJ2ZXlMaXZlOiBTdXJ2ZXlMaXZlVGVzdGVyO1xuICBwcml2YXRlIHRyYW5zbGF0aW9uVmFsdWU6IFRyYW5zbGF0aW9uO1xuICBwcml2YXRlIGxvZ2ljVmFsdWU6IFN1cnZleUxvZ2ljO1xuICBwcm90ZWN0ZWQgc3VydmV5T2JqZWN0czogU3VydmV5T2JqZWN0cztcbiAgcHJpdmF0ZSB0b29sYm94VmFsdWU6IFF1ZXN0aW9uVG9vbGJveDtcbiAgcHVibGljIHVuZG9SZWRvTWFuYWdlcjogVW5kb1JlZG9NYW5hZ2VyO1xuICBwcml2YXRlIHNhdmVTdXJ2ZXlGdW5jVmFsdWU6IChcbiAgICBubzogbnVtYmVyLFxuICAgIG9uU2F2ZUNhbGxiYWNrOiAobm86IG51bWJlciwgaXNTdWNjZXNzOiBib29sZWFuKSA9PiB2b2lkXG4gICkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBzdGF0ZVZhbHVlOiBzdHJpbmcgPSBcIlwiO1xuICBwcml2YXRlIGRyYWdEcm9wSGVscGVyOiBEcmFnRHJvcEhlbHBlciA9IG51bGw7XG4gIHByaXZhdGUga29TaG93U3VydmV5VGl0bGU6IGtvLk9ic2VydmFibGU8XCJpZmVudGVyZWRcIiB8IFwiYWx3YXlzXCIgfCBcIm5ldmVyXCI+O1xuICBwcml2YXRlIGtvQWxsb3dDb250cm9sU3VydmV5VGl0bGVWaXNpYmlsaXR5OiBrby5PYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIGNsb3NlTW9kYWxPdXRzaWRlVmFsdWU6IFwib2ZmXCIgfCBcImNhbmNlbFwiIHwgXCJhcHBseVwiID0gXCJvZmZcIjtcbiAgcHJpdmF0ZSBwYWdlRWRpdE1vZGVWYWx1ZTogXCJzdGFuZGFyZFwiIHwgXCJzaW5nbGVcIiA9IFwic3RhbmRhcmRcIjtcbiAgcHJpdmF0ZSBzaG93QXBwbHlCdXR0b25WYWx1ZTogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgaGlkZUV4cHJlc3Npb25IZWFkZXJWYWx1ZToga28uT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIHRydWUgKGRlZmF1bHQgdmFsdWUpIHRoZSBjcmVhdG9yIHNjcm9sbHMgdG8gYSBuZXcgZWxlbWVudC4gQSBuZXcgZWxlbWVudCBjYW4gYmUgYWRkZWQgZnJvbSBUb29sYm94IG9yIGJ5IGNvcHlpbmcuXG4gICAqL1xuICBwdWJsaWMgc2Nyb2xsVG9OZXdFbGVtZW50OiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyBhc3NpZ24gdG8gdGhlIHN1cnZleS5zdXJ2ZXlJZCBwcm9wZXJ0eSBvbiBzaG93aW5nIGluIHRoZSBcIkVtYmVkIFN1cnZleVwiIHRhYi5cbiAgICogQHNlZSBzaG93RW1iZWRkZWRTdXJ2ZXlUYWJcbiAgICovXG4gIHB1YmxpYyBzdXJ2ZXlJZDogc3RyaW5nID0gbnVsbDtcbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgYXNzaWduIHRvIHRoZSBzdXJ2ZXkuc3VydmV5UG9zdElkIHByb3BlcnR5IG9uIHNob3dpbmcgaW4gdGhlIFwiRW1iZWQgU3VydmV5XCIgdGFiLlxuICAgKiBAc2VlIHNob3dFbWJlZGRlZFN1cnZleVRhYlxuICAgKi9cbiAgcHVibGljIHN1cnZleVBvc3RJZDogc3RyaW5nID0gbnVsbDtcbiAgLyoqXG4gICAqIFRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkIG9uIGNoYW5naW5nIFwiR2VuZXJhdGUgVmFsaWQgSlNPTlwiIG9wdGlvbi5cbiAgICovXG4gIHB1YmxpYyBnZW5lcmF0ZVZhbGlkSlNPTkNoYW5nZWRDYWxsYmFjazogKGdlbmVyYXRlVmFsaWRKU09OOiBib29sZWFuKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCBpbiBjYXNlIG9mIFVJIG5vdGlmaWNhdGlvbnMuIEJ5IGRlZmF1bHQgYWxsIG5vdGlmaWNhdGlvbnMgYXJlIGRvbmUgdmlhIGJ1aWx0LWluIGFsZXJ0ICgpIGZ1bmN0aW9uLlxuICAgKiBJbiBjYXNlIG9mIGFueSBzdWJzY3JpcHRpb25zIHRvIHRoaXMgZXZlbnQgYWxsIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSByZWRpcmVjdGVkIGludG8gdGhlIGV2ZW50IGhhbmRsZXIuXG4gICAqIDxici8+IG9wdGlvbnMubWVzc2FnZSBpcyBhIG1lc3NhZ2UgdG8gc2hvdy5cbiAgICovXG4gIHB1YmxpYyBvbk5vdGlmeTogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCBiZWZvcmUgdW5kbyBoYXBwZW5zLlxuICAgKiA8YnIvPiBvcHRpb25zLmNhblVuZG8gYSBib29sZWFuIHZhbHVlLiBJdCBpcyB0cnVlIGJ5IGRlZmF1bHQuIFNldCBpdCBmYWxzZSB0byBoaWRlIHByZXZlbnQgdW5kbyBvcGVyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgb25CZWZvcmVVbmRvOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIGJlZm9yZSByZWRvIGhhcHBlbnMuXG4gICAqIDxici8+IG9wdGlvbnMuY2FuUmVkbyBhIGJvb2xlYW4gdmFsdWUuIEl0IGlzIHRydWUgYnkgZGVmYXVsdC4gU2V0IGl0IGZhbHNlIHRvIGhpZGUgcHJldmVudCByZWRvIG9wZXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvbkJlZm9yZVJlZG86IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgYWZ0ZXIgdW5kbyBoYXBwZW5zLlxuICAgKiA8YnIvPiBvcHRpb25zLnN0YXRlIGlzIGFuIHVuZG8vcmVkbyBpdGVtLlxuICAgKi9cbiAgcHVibGljIG9uQWZ0ZXJVbmRvOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIGFmdGVyIHJlZG8gaGFwcGVucy5cbiAgICogPGJyLz4gb3B0aW9ucy5zdGF0ZSBpcyBhbiB1bmRvL3JlZG8gaXRlbS5cbiAgICovXG4gIHB1YmxpYyBvbkFmdGVyUmVkbzogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCBvbiBjaGFuZ2luZyB0aGUgc2VsZWN0ZWQgZWxlbWVudC4gWW91IG1heSBjaGFuZ2UgdGhlIG5ldyBzZWxlY3RlZCBlbGVtZW50IGJ5IGNoYW5naW5nIHRoZSBwcm9wZXJ0eSBvcHRpb25zLm5ld1NlbGVjdGVkRWxlbWVudCB0byB5b3VyIG93blxuICAgKiA8YnIvPiBvcHRpb25zLm5ld1NlbGVjdGVkRWxlbWVudCB0aGUgZWxlbWVudCB0aGF0IGlzIGdvaW5nIHRvIGJlIHNlbGVjdGVkIGluIHRoZSBzdXJ2ZXkgZGVzaWdlcjogcXVlc3Rpb24sIHBhbmVsLCBwYWdlIG9yIHN1cnZleS5cbiAgICovXG4gIHB1YmxpYyBvblNlbGVjdGVkRWxlbWVudENoYW5naW5nOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIGFmdGVyIHRoZSBzZWxlY3RlZCBlbGVtZW50IGlzIGNoYW5nZWQuXG4gICAqIDxici8+IG9wdGlvbnMubmV3U2VsZWN0ZWRFbGVtZW50IHRoZSBuZXcgc2VsZWN0ZWQgZWxlbWVudCBpbiB0aGUgc3VydmV5IGRlc2lnZXI6IHF1ZXN0aW9uLCBwYW5lbCwgcGFnZSBvciBzdXJ2ZXkuXG4gICAqL1xuICBwdWJsaWMgb25TZWxlY3RlZEVsZW1lbnRDaGFuZ2VkOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIHdoZW4gY3JlYXRvciB0YWIgaGFzIGJlZW4gcmVuZGVyZWQuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMudGFiTmFtZSB0aGUgbmFtZSBvZiB0aGUgcmVuZGVyZWQgdGFiXG4gICAqIDxici8+IG9wdGlvbnMuZWxlbWVudHMgdGhlIHJlbmRlcmVkIGVsZW1lbnRzXG4gICAqIDxici8+IG9wdGlvbnMubW9kZWwgY3VycmVudCBjb250ZXh0IG1vZGVsXG4gICAqIDxici8+IG9wdGlvbnMudGFiRGF0YSB0aGUgZGF0YSBvZiB0aGUgcmVuZGVyZWQgdGFiXG4gICAqL1xuICBwdWJsaWMgb25FZGl0b3JUYWJSZW5kZXJlZDogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCB3aGVuIGNyZWF0b3IgYWN0aXZlIHRhYiBpcyBjaGFuZ2VkLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnRhYk5hbWUgdGhlIG5hbWUgb2YgbmV3IGFjdGl2ZSB0YWJcbiAgICovXG4gIHB1YmxpYyBvbkFjdGl2ZVRhYkNoYW5nZWQ6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBhbGxvd3MgeW91IHRvIGN1c3RvbSBzb3J0IHByb3BlcnRpZXMgaW4gdGhlIFByb3BlcnR5IEdyaWQuIEl0IGlzIGEgY29tcGFyZSBmdW5jdGlvbi4gWW91IHNob3VsZCBzZXQgb3B0aW9ucy5yZXN1bHQgdG8gLTEgb3IgMSBieSBjb21wYXJpbmcgb3B0aW9ucy5wcm9wZXJ0eTEgYW5kIG9wdGlvbnMucHJvcGVydHkyLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLm9iaiB0aGUgc3VydmV5IG9iamVjdCwgU3VydmV5LCBQYWdlLCBQYW5lbCBvciBRdWVzdGlvblxuICAgKiA8YnIvPiBvcHRpb25zLnByb3BlcnR5MSB0aGUgbGVmdCBvYmplY3QgcHJvcGVydHkgKFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkgb2JqZWN0KS5cbiAgICogPGJyLz4gb3B0aW9ucy5wcm9wZXJ0eTIgdGhlIHJpZ2h0IG9iamVjdCBwcm9wZXJ0eSAoU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSBvYmplY3QpLlxuICAgKiA8YnIvPiBvcHRpb25zLnJlc3VsdCB0aGUgcmVzdWx0IG9mIGNvbXBhcmluZy4gSXQgY2FuIGJlIDAgKHVzZSBkZWZhdWx0IGJlaGF2aW9yKSwgIC0xIG9wdGlvbnMucHJvcGVydHkxIGlzIGxlc3MgdGhhbiBvcHRpb25zLnByb3BlcnR5MiBvciAxIG9wdGlvbnMucHJvcGVydHkxIGlzIG1vcmUgdGhhbiBvcHRpb25zLnByb3BlcnR5MlxuICAgKi9cbiAgcHVibGljIG9uQ3VzdG9tU29ydFByb3BlcnR5OiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgYWxsb3dzIHlvdSBtb2RpZnkgRE9NIGVsZW1lbnQgZm9yIGEgcHJvcGVydHkgaW4gdGhlIFByb3BlcnR5IEdyaWQuIEZvciBleGFtcGxlLCB5b3UgbWF5IGNoYW5nZSBpdHMgc3R5bGVzLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLm9iaiB0aGUgc3VydmV5IG9iamVjdCwgU3VydmV5LCBQYWdlLCBQYW5lbCBvciBRdWVzdGlvblxuICAgKiA8YnIvPiBvcHRpb25zLmh0bWxFbGVtZW50IHRoZSBodG1sIGVsZW1lbnQgdGhhdCByZW5kZXJzIHRoZSBwcm9wZXJ0eSBkaXNwbGF5IG5hbWUgYW5kIGl0cyBlZGl0b3IuXG4gICAqIDxici8+IG9wdGlvbnMucHJvcGVydHkgb2JqZWN0IHByb3BlcnR5IChTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5IG9iamVjdCkuXG4gICAqIDxici8+IG9wdGlvbnMucHJvcGVydHlFZGl0b3IgdGhlIHByb3BlcnR5IEVkaXRvci5cbiAgICovXG4gIHB1YmxpYyBvblByb3BlcnR5QWZ0ZXJSZW5kZXI6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgb24gYWRkaW5nIGEgbmV3IHF1ZXN0aW9uIGludG8gdGhlIHN1cnZleS4gVHlwaWNhbGx5LCB3aGVuIGEgdXNlciBkcm9wcGVkIGEgUXVlc3Rpb24gZnJvbSB0aGUgUXVlc3Rpb24gVG9vbGJveCBpbnRvIGRlc2lnbmVyIFN1cnZleSBhcmVhLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIGEgbmV3IGFkZGVkIHN1cnZleSBxdWVzdGlvbi4gU3VydmV5LlF1ZXN0aW9uIG9iamVjdFxuICAgKiA8YnIvPiBvcHRpb25zLnBhZ2UgdGhlIHN1cnZleSBQYWdlIG9iamVjdCB3aGVyZSBxdWVzdGlvbiBoYXMgYmVlbiBhZGRlZC5cbiAgICovXG4gIHB1YmxpYyBvblF1ZXN0aW9uQWRkZWQ6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgd2hlbiBhbiBlbmQtdXNlciBkb3VibGUgY2xpY2sgb24gYW4gZWxlbWVudCAocXVlc3Rpb24vcGFuZWwpLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLmVsZW1lbnQgYW4gaW5zdGFuY2Ugb2YgdGhlIGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyBvbkVsZW1lbnREb3VibGVDbGljazogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCBvbiBhZGRpbmcgYSBuZXcgcGFuZWwgaW50byB0aGUgc3VydmV5LiAgVHlwaWNhbGx5LCB3aGVuIGEgdXNlciBkcm9wcGVkIGEgUGFuZWwgZnJvbSB0aGUgUXVlc3Rpb24gVG9vbGJveCBpbnRvIGRlc2lnbmVyIFN1cnZleSBhcmVhLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnBhbmVsIGEgbmV3IGFkZGVkIHN1cnZleSBwYW5lbC4gU3VydmV5LlBhbmVsIG9iamVjdFxuICAgKiA8YnIvPiBvcHRpb25zLnBhZ2UgdGhlIHN1cnZleSBQYWdlIG9iamVjdCB3aGVyZSBxdWVzdGlvbiBoYXMgYmVlbiBhZGRlZC5cbiAgICovXG4gIHB1YmxpYyBvblBhbmVsQWRkZWQ6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgb24gYWRkaW5nIGEgbmV3IHBhZ2UgaW50byB0aGUgc3VydmV5LlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnBhZ2UgdGhlIG5ldyBzdXJ2ZXkgUGFnZSBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgb25QYWdlQWRkZWQ6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgd2hlbiBhIHN1cnZleSBpcyBjaGFuZ2VkIGluIHRoZSBkZXNpZ25lci4gQSBuZXcgcGFnZS9xdWVzdGlvbi9wYWdlIGlzIGFkZGVkIG9yIGV4aXN0aW5nIGlzIHJlbW92ZWQsIGEgcHJvcGVydHkgaXMgY2hhbmdlZCBhbmQgc28gb24uXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBjZXJ0YWluIG1vZGlmaWNhdGlvbnNcbiAgICogPGJyLz4gb3B0aW9ucy50eXBlIGNvbnRhaW5zIHN0cmluZyBjb25zdGFudCBkZXNjcmliaW5nIGNlcnRhaW4gbW9kaWZpY2F0aW9uXG4gICAqIDxici8+IEF2YWlsYWJsZSB2YWx1ZXM6XG4gICAqIDxici8+XG4gICAqIDxici8+IG9wdGlvbnMudHlwZTogXCJBRERFRF9GUk9NX1RPT0xCT1hcIlxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uOiBuZXdseSBhZGRlZCBxdWVzdGlvblxuICAgKiA8YnIvPlxuICAgKiA8YnIvPiBvcHRpb25zLnR5cGU6IFwiUEFHRV9BRERFRFwiXG4gICAqIDxici8+IG9wdGlvbnMubmV3VmFsdWU6IG5ld2x5IGNyZWF0ZWQgcGFnZVxuICAgKiA8YnIvPlxuICAgKiA8YnIvPiBvcHRpb25zLnR5cGU6IFwiUEFHRV9NT1ZFRFwiXG4gICAqIDxici8+IG9wdGlvbnMucGFnZTogcGFnZSBoYXMgYmVlbiBtb3ZlZFxuICAgKiA8YnIvPiBvcHRpb25zLmluZGV4RnJvbTogcGV2aW91cyBpbmRleFxuICAgKiA8YnIvPiBvcHRpb25zLmluZGV4VG86IG5ldyBpbmRleFxuICAgKiA8YnIvPlxuICAgKiA8YnIvPiBvcHRpb25zLnR5cGU6IFwiUVVFU1RJT05fQ09OVkVSVEVEXCJcbiAgICogPGJyLz4gb3B0aW9ucy5jbGFzc05hbWU6IHRoZSBjb252ZXJ0ZWQgY2xhc3MgbmFtZVxuICAgKiA8YnIvPiBvcHRpb25zLm9sZFZhbHVlOiBwZXZpb3VzIG9iamVjdFxuICAgKiA8YnIvPiBvcHRpb25zLm5ld1ZhbHVlOiB0aGUgbmV3IG9iamVjdCwgY29udmVydGVkIGZyb20gb2xkVmFsZSB0byB0aGUgZ2l2ZW4gY2xhc3MgbmFtZVxuICAgKiA8YnIvPlxuICAgKiA8YnIvPiBvcHRpb25zLnR5cGU6IFwiUVVFU1RJT05fQ0hBTkdFRF9CWV9FRElUT1JcIlxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uOiBxdWVzdGlvbiBoYXMgYmVlbiBlZGl0ZWQgaW4gdGhlIHBvcHVwIHF1ZXN0aW9uIGVkaXRvclxuICAgKiA8YnIvPlxuICAgKiA8YnIvPiBvcHRpb25zLnR5cGU6IFwiUFJPUEVSVFlfQ0hBTkdFRFwiXG4gICAqIDxici8+IG9wdGlvbnMubmFtZTogdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGhhcyBiZWVuIGNoYW5nZWRcbiAgICogPGJyLz4gb3B0aW9ucy50YXJnZXQ6IHRoZSBvYmplY3QgY29udGFpbmluZyB0aGUgY2hhbmdlZCBwcm9wZXJ0eVxuICAgKiA8YnIvPiBvcHRpb25zLm9sZFZhbHVlOiB0aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGNoYW5nZWQgcHJvcGVydHlcbiAgICogPGJyLz4gb3B0aW9ucy5uZXdWYWx1ZTogdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY2hhbmdlZCBwcm9wZXJ0eVxuICAgKiA8YnIvPlxuICAgKiA8YnIvPiBvcHRpb25zLnR5cGU6IFwiT0JKRUNUX0RFTEVURURcIlxuICAgKiA8YnIvPiBvcHRpb25zLnRhcmdldDogZGVsZXRlZCBvYmplY3RcbiAgICogPGJyLz5cbiAgICogPGJyLz4gb3B0aW9ucy50eXBlOiBcIlZJRVdfVFlQRV9DSEFOR0VEXCJcbiAgICogPGJyLz4gb3B0aW9ucy5uZXdUeXBlOiBuZXcgdHlwZSBvZiB0aGUgY3JlYXRvciB2aWV3OiBlZGl0b3Igb3IgZGVzaWduZXJcbiAgICogPGJyLz5cbiAgICogPGJyLz4gb3B0aW9ucy50eXBlOiBcIkRPX0RST1BcIlxuICAgKiA8YnIvPiBvcHRpb25zLnBhZ2U6IHRoZSBwYWdlIG9mIHRoZSBkcmFwL2Ryb3Agb3BlcmF0aW9uXG4gICAqIDxici8+IG9wdGlvbnMuc291cmNlOiB0aGUgc291cmNlIGRyYWdnZWQgb2JqZWN0XG4gICAqIDxici8+IG9wdGlvbnMudGFyZ2V0OiB0aGUgZHJvcCB0YXJnZXRcbiAgICogPGJyLz4gb3B0aW9ucy5uZXdFbGVtZW50OiBhIG5ldyBlbGVtZW50LiBJdCBpcyBkZWZpbmVkIGlmIGEgdXNlciBkcm9wcyBxdWVzdGlvbiBvciBwYW5lbCBmcm9tIHRoZSB0b29sYm94XG4gICAqIDxici8+XG4gICAqIDxici8+IG9wdGlvbnMudHlwZTogXCJUUkFOU0xBVElPTlNfQ0hBTkdFRFwiXG4gICAqL1xuICBwdWJsaWMgb25Nb2RpZmllZDogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIG9uIGNoYW5naW5nIHF1ZXN0aW9uLCBwYW5lbCBvciBwYWdlIG5hbWUuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBvYmplY3QgKHF1ZXN0aW9uLCBwYW5lbCBvciBwYWdlKVxuICAgKiA8YnIvPiBvcHRpb25zLm9sZE5hbWUgdGhlIHByZXZpb3VzIG5hbWUgb2YgdGhlIGVsZW1lbnRcbiAgICogPGJyLz4gb3B0aW9ucy5uZXdOYW1lIHRoZSBuZXcgbmFtZSBvZiB0aGUgZWxlbWVudFxuICAgKi9cbiAgcHVibGljIG9uRWxlbWVudE5hbWVDaGFuZ2VkOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgc3VydmV5IGNyZWF0b3IgaXMgaW5pdGlhbGl6ZWQgYW5kIGEgc3VydmV5IG9iamVjdCAoU3VydmV5LlN1cnZleSkgaXMgY3JlYXRlZC5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5zdXJ2ZXkgIHRoZSBzdXJ2ZXkgb2JqZWN0IHNob3dpbmcgaW4gdGhlIGNyZWF0b3IuXG4gICAqL1xuICBwdWJsaWMgb25EZXNpZ25lclN1cnZleUNyZWF0ZWQ6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSBzdXJ2ZXkgY3JlYXRvciBydW5zIHRoZSBzdXJ2ZXkgaW4gdGhlIHRlc3QgbW9kZS5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5zdXJ2ZXkgIHRoZSBzdXJ2ZXkgb2JqZWN0IHNob3dpbmcgaW4gdGhlIFwiVGVzdCBzdXJ2ZXlcIiB0YWIuXG4gICAqL1xuICBwdWJsaWMgb25UZXN0U3VydmV5Q3JlYXRlZDogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gc2hvdyBhIGNoZWNrIGFuZCBjdXN0b20gZXJyb3IgaW4gcHJvcGVydHkgZ3JpZCBhbmQgYWRvcm5lcnMgb2YgdGhlIHNlbGVjdGVkIGVsZW1lbnRzLlxuICAgKiBSZXR1cm5zIHRydWUgaWYgc2VsZWN0ZWQgZWxlbWVudCBpcyBudWxsIG9yIHRoZXJlIGlzIG5vIGVycm9ycy5cbiAgICogPGJyLz4gb3B0aW9ucy5lcnJvcnMgYW4gYXJyYXkgb2YgZXJyb3IgbWVzc2FnZXMgaWYgYW55LlxuICAgKi9cbiAgcHVibGljIG9uVmFsaWRhdGVTZWxlY3RlZEVsZW1lbnQ6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFVzZSB0aGlzIGV2ZW50IHRvIGNoYW5nZSB0aGUgdmFsdWUgZW50ZXJlZCBpbiB0aGUgcHJvcGVydHkgZWRpdG9yLiBZb3UgbWF5IGNhbGwgYSB2YWxpZGF0aW9uLCBzbyBhbiBlbmQgdXNlciBzZWVzIHRoZSBlcnJvciBpbW1lZGlhdGVseVxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLm9iaiB0aGUgc3VydmV5IG9iamVjdCB3aGljaCBwcm9wZXJ0eSBpcyBlZGl0ZWQgaW4gdGhlIFByb3BlcnR5IEVkaXRvci5cbiAgICogPGJyLz4gb3B0aW9ucy5wcm9wZXJ0eU5hbWUgIHRoZSBuYW1lIG9mIHRoZSBlZGl0ZWQgcHJvcGVydHkuXG4gICAqIDxici8+IG9wdGlvbnMuZWRpdG9yIHRoZSBpbnN0YW5jZSBvZiBQcm9wZXJ0eSBFZGl0b3IuXG4gICAqIEBzZWUgb25Qcm9wZXJ0eVZhbHVlQ2hhbmdpbmdcbiAgICovXG4gIHB1YmxpYyBvblByb3BlcnR5RWRpdG9yT2JqZWN0QXNzaWduOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBldmVudCB0byBtb2RpZnkgdGhlIHN1cnZleSB0aGF0IHVzZWQgb24gc2V0dGluZyB2YWx1ZSBmb3IgY29uZGl0aW9uL2V4cHJlc3Npb24gcHJvcGVydGllcywgbGlrZSB2aXNpYmxlSWYsIGVuYWJsZUlmIGFuZCBzbyBvbi5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5vYmogdGhlIHN1cnZleSBvYmplY3Qgd2hpY2ggcHJvcGVydHkgaXMgZWRpdGVkIGluIHRoZSBQcm9wZXJ0eSBFZGl0b3IuXG4gICAqIDxici8+IG9wdGlvbnMucHJvcGVydHlOYW1lICB0aGUgbmFtZSBvZiB0aGUgZWRpdGVkIHByb3BlcnR5LlxuICAgKiA8YnIvPiBvcHRpb25zLmVkaXRvciB0aGUgaW5zdGFuY2Ugb2YgUHJvcGVydHkgRWRpdG9yLlxuICAgKiA8YnIvPiBvcHRpb25zLnZhbHVlUXVlc3Rpb25OYW1lIHRoZSBuYW1lIG9mIHRoZSBxdWVzdGlvbiB0aGF0IHNob3dzIGluIHRoZSBzdXJ2ZXkgZm9yIGNob29zaW5nIHRoZSB2YWx1ZVxuICAgKiA8YnIvPiBvcHRpb25zLnN1cnZleSB0aGUgaW5zdGFuY2Ugb2YgdGhlIHN1cnZleSB0aGF0IGFsbG93cyB0byBjaG9vc2UgdGhlIHZhbHVlLiBZb3UgbWF5IG1vZGlmeSBpdCBiZWZvcmUgaXQgc2hvd3MgdG8gdGhlIGVuZC11c2VyXG4gICAqL1xuICBwdWJsaWMgb25Db25kaXRpb25WYWx1ZVN1cnZleUNyZWF0ZWQ6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFVzZSB0aGlzIGV2ZW50IHRvIHByb2Nlc3Mga2V5IGRvd24gZXZlbnQgaW4gYSBwcm9wZXJ0eSBlZGl0b3JcbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5vYmogdGhlIHN1cnZleSBvYmplY3Qgd2hpY2ggcHJvcGVydHkgaXMgZWRpdGVkIGluIHRoZSBQcm9wZXJ0eSBFZGl0b3IuXG4gICAqIDxici8+IG9wdGlvbnMucHJvcGVydHlOYW1lICB0aGUgbmFtZSBvZiB0aGUgZWRpdGVkIHByb3BlcnR5LlxuICAgKiA8YnIvPiBvcHRpb25zLmVkaXRvciB0aGUgaW5zdGFuY2Ugb2YgUHJvcGVydHkgRWRpdG9yLlxuICAgKiA8YnIvPiBvcHRpb25zLmV2ZW50IHRoZSBpbnN0YW5jZSBvZiBtb3VzZSBldmVudC5cbiAgICovXG4gIHB1YmxpYyBvblByb3BlcnR5RWRpdG9yS2V5RG93bjogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gZGlzYWJsZSB1c2VyIGludGVyYWN0aW9ucyB3aXRoIGEgcXVlc3Rpb24gb3IgcGFuZWwgb24gdGhlIGRlc2lnbiBzdXJmYWNlLlxuICAgKlxuICAgKiBUaGUgZXZlbnQgaGFuZGxlciBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOlxuICAgKlxuICAgKiAtIGBzZW5kZXJgLSBBIFN1cnZleSBDcmVhdG9yIGluc3RhbmNlIHRoYXQgcmFpc2VkIHRoZSBldmVudC5cbiAgICogLSBgb3B0aW9ucy5vYmpgIC0gQSBzdXJ2ZXkgZWxlbWVudCBpbnN0YW5jZSAocXVlc3Rpb24gb3IgcGFuZWwpIGZvciB3aGljaCB5b3UgY2FuIGRpc2FibGUgdXNlciBpbnRlcmFjdGlvbnMuXG4gICAqIC0gYG9wdGlvbnMuYWxsb3dBZGRUb1Rvb2xib3hgIC0gQWxsb3dzIHVzZXJzIHRvIHNhdmUgdGhlIGN1cnJlbnQgc3VydmV5IGVsZW1lbnQgY29uZmlndXJhdGlvbiBpbiB0aGUgVG9vbGJveC5cbiAgICogLSBgb3B0aW9ucy5hbGxvd0NoYW5nZVJlcXVpcmVkYCAtIEFsbG93cyB1c2VycyB0byBtYWtlIHRoZSBzdXJ2ZXkgZWxlbWVudCByZXF1aXJlZC5cbiAgICogLSBgb3B0aW9ucy5hbGxvd0NoYW5nZVR5cGVgIC0gQWxsb3dzIHVzZXJzIHRvIGNoYW5nZSB0aGUgc3VydmV5IGVsZW1lbnQgdHlwZS5cbiAgICogLSBgb3B0aW9ucy5hbGxvd0NvcHlgIC0gQWxsb3dzIHVzZXJzIHRvIGR1cGxpY2F0ZSB0aGUgc3VydmV5IGVsZW1lbnQuXG4gICAqIC0gYG9wdGlvbnMuYWxsb3dEZWxldGVgIC0gQWxsb3dzIHVzZXJzIHRvIGRlbGV0ZSB0aGUgc3VydmV5IGVsZW1lbnQuXG4gICAqIC0gYG9wdGlvbnMuYWxsb3dEcmFnZ2luZ2AgLSBBbGxvd3MgdXNlcnMgdG8gZHJhZyBhbmQgZHJvcCB0aGUgc3VydmV5IGVsZW1lbnQuXG4gICAqIC0gYG9wdGlvbnMuYWxsb3dFZGl0YCAtIEFsbG93cyB1c2VycyB0byBlZGl0IHN1cnZleSBlbGVtZW50IHByb3BlcnRpZXMgb24gdGhlIGRlc2lnbiBzdXJmYWNlLiBJZiB5b3UgZGlzYWJsZSB0aGlzIHByb3BlcnR5LCB1c2VycyBjYW4gZWRpdCB0aGUgcHJvcGVydGllcyBvbmx5IGluIHRoZSBQcm9wZXJ0eSBHcmlkLlxuICAgKiAtIGBvcHRpb25zLmFsbG93U2hvd0hpZGVUaXRsZWAgLSBTcGVjaWZpZXMgd2hldGhlciB1c2VycyBjYW4gY2hhbmdlIHRoZSBgdGl0bGVMb2NhdGlvbmAgcHJvcGVydHkgdG8gXCJoaWRkZW5cIiBvciBcImRlZmF1bHRcIi5cbiAgICpcbiAgICogVG8gZGlzYWJsZSBhIHVzZXIgaW50ZXJhY3Rpb24sIHNldCB0aGUgY29ycmVwb25kaW5nIGBhbGxvdy4uLmAgcHJvcGVydHkgdG8gYGZhbHNlYC5cbiAgICovXG4gIHB1YmxpYyBvbkVsZW1lbnRBbGxvd09wZXJhdGlvbnM6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFVzZSB0aGlzIGV2ZW50IHRvIHNob3cgdGhlIGRlc2NyaXB0aW9uIG9uIHRoZSB0b3Agb3IvYW5kIGJvdHRvbSBvZiB0aGUgcHJvcGVydHkgbW9kYWwgZWRpdG9yLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBjcmVhdG9yIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLm9iaiB0aGUgc3VydmV5IG9iamVjdCB3aGljaCBwcm9wZXJ0eSBpcyBlZGl0ZWQgaW4gdGhlIFByb3BlcnR5IEVkaXRvci5cbiAgICogPGJyLz4gb3B0aW9ucy5wcm9wZXJ0eU5hbWUgdGhlIHByb3BlcnR5IG5hbWVcbiAgICogPGJyLz4gb3B0aW9ucy5odG1sVG9wIHRoZSBodG1sICB0aGF0IHlvdSB3YW50IHRvIHNlZSBvbiB0aGUgdG9wIG9mIHRoZSBtb2RhbCB3aW5kb3dcbiAgICogPGJyLz4gb3B0aW9ucy5odG1sQm90dG9tIHRoZSBodG1sIHRoYXQgeW91IHdhbnQgdG8gc2VlIG9uIHRoZSBib3R0b20gb2YgdGhlIG1vZGFsIHdpbmRvd1xuICAgKi9cbiAgcHVibGljIG9uU2hvd1Byb3BlcnR5TW9kYWxFZGl0b3JEZXNjcmlwdGlvbjogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogQERlcHJlY2F0ZWQgT2Jzb2xldGUsIHBsZWFzZSB1c2Ugb25HZXRPYmplY3REaXNwbGF5TmFtZSBldmVudFxuICAgKiBVc2UgdGhpcyBldmVudCB0byBjaGFuZ2UgdGhlIHRleHQgc2hvd2luZyBpbiB0aGUgZHJvcGRvd24gb2YgdGhlIHByb3BlcnR5IGdyaWQuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMub2JqIHRoZSBzdXJ2ZXkgb2JqZWN0LlxuICAgKiA8YnIvPiBvcHRpb25zLnRleHQgdGhlIGN1cnJlbnQgb2JqZWN0IHRleHQsIGNvbW1vbmx5IGl0IGlzIGEgbmFtZS4gWW91IG11c3QgY2hhbmdlIHRoaXMgYXR0cmlidXRlXG4gICAqIEBzZWUgb25HZXRPYmplY3REaXNwbGF5TmFtZVxuICAgKi9cbiAgcHVibGljIG9uR2V0T2JqZWN0VGV4dEluUHJvcGVydHlHcmlkOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgd2hlbiBlbmQtdXNlciBhZGRlcyBuZXcgZWxlbWVudCAocXVlc3Rpb24gb3IgcGFuZWwpIGludG8gdGhlIHN1cnZleSB0b29sYm94LlxuICAgKiBJdCBjYWxscyBiZWZvcmUgYWRkaW5nIHRoZSBlbGVtZW50IGludG8gdG9vbGJveCBhbmQgaXQgYWxsb3dzIHRvIGNoYW5nZSB0aGUgdG9vbGJveCBpdGVtIGF0dHJpYnV0ZXMgdXNpbmcgb3B0aW9ucy5pdGVtT3B0aW9ucyBwYXJhbWV0ZXJcbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5lbGVtZW50IGlzIGEgbmV3IGFkZGVkIGVsZW1lbnRcbiAgICogPGJyLz4gb3B0aW9ucy5pdGVtT3B0aW9ucyBhIGpzb24gb2JqZWN0IHRoYXQgYWxsb3dzIHlvdSB0byBvdmVycmlkZSBxdWVzdGlvbiBwcm9wZXJ0aWVzLiBBdHRyaWJ1dGVzIGFyZTogbmFtZSwgdGl0bGUsIGlzQ29waWVkLCBpY29uTmFtZSwganNvbiBhbmQgY2F0ZWdvcnkuXG4gICAqIEBzZWUgb25DdXN0b21FbGVtZW50QWRkZWRJbnRvVG9vbGJveFxuICAgKi9cbiAgcHVibGljIG9uQ3VzdG9tRWxlbWVudEFkZGluZ0ludG9Ub29sYm94OiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIHdoZW4gZW5kLXVzZXIgYWRkZXMgbmV3IGVsZW1lbnQgKHF1ZXN0aW9uIG9yIHBhbmVsKSBpbnRvIHRoZSBzdXJ2ZXkgdG9vbGJveC5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5lbGVtZW50IGlzIGEgbmV3IGFkZGVkIGVsZW1lbnRcbiAgICogQHNlZSBvbkN1c3RvbUVsZW1lbnRBZGRpbmdJbnRvVG9vbGJveFxuICAgKi9cbiAgcHVibGljIG9uQ3VzdG9tRWxlbWVudEFkZGVkSW50b1Rvb2xib3g6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBjbGVhcmluZyB0aGUgZmlsZXMuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IFRoZXJlIGFyZSBmb2xsb3dpbmcgcHJvcGVydGllcyBpbiBvcHRpb25zOlxuICAgKiA8YnIvPiBmaWxlcyAtIHZhbHVlIHRvIGNsZWFyIChpdCBjYW4gYmUgYSBieXRlIGFycmF5IG9yIGFuIFVSSSBvZiBhIHJlc291cmNlKVxuICAgKiA8YnIvPiBjYWxsYmFjayAtIGNhbGxlZCBvbiBjbGVhciBjb21wbGV0ZVxuICAgKiBAc2VlIGNsZWFyRmlsZXNcbiAgICovXG4gIHB1YmxpYyBvbkNsZWFyRmlsZTogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIG9uIHVwbG9hZGluZyB0aGUgZmlsZXMuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IFRoZXJlIGFyZSB0d28gcHJvcGVydGllcyBpbiBvcHRpb25zOlxuICAgKiA8YnIvPiBmaWxlcyB0aGUgSmF2YXNjcmlwdCBGaWxlIG9iamVjdHMgYXJyYXlcbiAgICogPGJyLz4gY2FsbGJhY2sgY2FsbGVkIG9uIHVwbG9hZCBjb21wbGV0ZVxuICAgKiBAc2VlIHVwbG9hZEZpbGVcbiAgICovXG4gIHB1YmxpYyBvblVwbG9hZEZpbGU6IENyZWF0b3JFdmVudCA9IG5ldyBDcmVhdG9yRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCB0aGVuIG9uZSBuZWVkIHRvIGNob29zZSBmaWxlcy5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gaW5wdXQgZmlsZSBpbnB1dCBIVE1MIGVsZW1lbnRcbiAgICogPGJyLz4gY2FsbGJhY2sgbmVlZCB0byBiZSBjYWxsZWQgYWZ0ZXIgZmlsZXMgaGFzIGJlZW4gY2hvc2VuXG4gICAqIEBzZWUgdXBsb2FkRmlsZVxuICAgKi9cbiAgcHVibGljIG9uT3BlbkZpbGVDaG9vc2VyOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSB0cmFuc2xhdGlvbiBmcm9tIGNzdiBmaWxlIGlzIGltcG9ydGVkLlxuICAgKiBAc2VlIHRyYW5zbGF0aW9uXG4gICAqIEBzZWUgc2hvd1RyYW5zbGF0aW9uVGFiXG4gICAqL1xuICBwdWJsaWMgb25UcmFuc2xhdGlvbkltcG9ydGVkOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgbWV0aG9kIGlzIGNhbGxlZCBvbiBhZnRlciByZW5kZXIgdHJhbnNsYXRpb24gaXRlbS4gWW91IGNhbiBtb2RpZnkgdGhlIGh0bWwgZWxlbWVudCB1c2luZyB0aGlzIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMuaXRlbSAtIHRyYW5zbGF0aW9uIGl0ZW1cbiAgICogPGJyLz4gb3B0aW9ucy5odG1sRWxlbWVudCAtIHRleHQgYXJlYSBmb3IgZWRpdGluZ1xuICAgKiA8YnIvPiBvcHRpb25zLmxvY2FsZSAtIHRoZSBuYW1lIG9mIHRoZSBlZGl0aW5nIGxvY2FsZVxuICAgKiA8YnIvPiBvcHRpb25zLm9uRGVzdHJveUNhbGxiYWNrIC0gYSBmdW5jdGlvbiBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCBvbiByZW1vdmUgaHRtbEVsZW1lbnQgZnJvbSBET00uXG4gICAqIEBzZWUgdHJhbnNsYXRpb25cbiAgICogQHNlZSBzaG93VHJhbnNsYXRpb25UYWJcbiAgICovXG4gIHB1YmxpYyBvblRyYW5zbGF0ZUl0ZW1BZnRlclJlbmRlcjogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gY29udHJvbCBkcmFnJmRyb3Agb3BlcmF0aW9ucy5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgY3JlYXRvciBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnQuXG4gICAqIDxici8+IG9wdGlvbnMuc3VydmV5IHRoZSBlZGl0aW5nIHN1cnZleSBvYmplY3QuXG4gICAqIDxici8+IG9wdGlvbnMuYWxsb3cgc2V0IGl0IHRvIGZhbHNlIHRvIGRpc2FibGUgZHJhZ2dpbmcuXG4gICAqIDxici8+IG9wdGlvbnMudGFyZ2V0IGEgdGFyZ2V0IGVsZW1lbnQgdGhhdCBpcyBkcmFnZ2luZy5cbiAgICogPGJyLz4gb3B0aW9ucy5zb3VyY2UgYSBzb3VyY2UgZWxlbWVudC4gSXQgY2FuIGJlIG51bGwsIGlmIGl0IGlzIGEgbmV3IGVsZW1lbnQsIGRyYWdnaW5nIGZyb20gdG9vbGJveC5cbiAgICogPGJyLz4gb3B0aW9ucy5wYXJlbnQgYSBwYWdlIG9yIHBhbmVsIHdoZXJlIHRhcmdldCBlbGVtZW50IGlzIGRyYWdnaW5nLlxuICAgKiA8YnIvPiBvcHRpb25zLmluc2VydEJlZm9yZSBhbiBlbGVtZW50IGJlZm9yZSB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgZHJhZ2dpbmcuIEl0IGNhbiBiZSBudWxsIGlmIHBhcmVudCBjb250YWluZXIgKHBhZ2Ugb3IgcGFuZWwpIGlzIGVtcHR5IG9yIGRyYWdnaW5nIGFuIGVsZW1lbnQgdW5kZXIgdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgY29udGFpbmVyLlxuICAgKiA8YnIvPiBvcHRpb25zLmluc2VydEFmdGVyIGFuIGVsZW1lbnQgYWZ0ZXIgdGhlIHRhcmdldCBlbGVtZW50IGlzIGRyYWdnaW5nLiBJdCBjYW4gYmUgbnVsbCBpZiBwYXJlbnQgY29udGFpbmVyIChwYWdlIG9yIHBhbmVsKSBpcyBlbXB0eSBvciBkcmFnZ2luZyBlbGVtZW50IHRvIHRoZSB0b3Agb2YgdGhlIHBhcmVudCBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgb25EcmFnRHJvcEFsbG93OiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBldmVudCB0byBnZXQgYWNjZXNzIHJlbmRlcmVkIGFkb3JkZXIuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IGNyZWF0b3Igb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50LlxuICAgKiA8YnIvPiBvcHRpb25zLnN1cnZleSB0aGUgZWRpdGluZyBzdXJ2ZXkgb2JqZWN0LlxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIHRoZSBzdXJ2ZXkgZWxlbWVudCBvZiB0aGUgYWRvcm5lci5cbiAgICogPGJyLz4gb3B0aW9ucy5hZG9ybmVyIHRoZSBhZG9ybmVyIGlkLlxuICAgKiA8YnIvPiBvcHRpb25zLmVsZW1lbnQgYSByb290IGFkb3JuZXIgZWxlbWVudC5cbiAgICogPGJyLz4gb3B0aW9ucy5jb250ZXh0IGEgY29udGV4dCBmb3IgYWRvcm5lciBlbGVtZW50LCBlLmcuIGN1cnJlbnQgaXRlbSBvZiBhIHNlbGVjdCBiYXNlIHF1ZXN0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uQWRvcm5lclJlbmRlcmVkOiBDcmVhdG9yRXZlbnQgPSBuZXcgQ3JlYXRvckV2ZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgY2FsbGVkIGFmdGVyIHVzZXIgY2xvc2VzIHRoZSBwb3B1cCBlbGVtZW50IGVkaXRvci5cbiAgICogPGJyLz4gb3B0aW9ucy5lbGVtZW50IHRoZSBlZGl0ZWQgZWxlbWVudC5cbiAgICogPGJyLz4gb3B0aW9ucy5pc0NhbmNlbGVkIGluZGljYXRlZCB1c2VyIGNsaWNrZWQgQ2FuY2VsLlxuICAgKi9cbiAgcHVibGljIG9uRWxlbWVudEVkaXRvckNsb3NlZDogQ3JlYXRvckV2ZW50ID0gbmV3IENyZWF0b3JFdmVudCgpO1xuICBzZWxlY3RGcm9tU3RyaW5nRWRpdG9yOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBZb3UgbmVlZCB0byBzZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIGlmIHlvdSB3YW50IHRvIGlucGxhY2UgZWRpdCBpdGVtIHZhbHVlcyBpbnN0ZWFkIG9mIHRleHRzLlxuICAgKiBAc2VlIGlucGxhY2VFZGl0Rm9yVmFsdWVzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlucGxhY2VFZGl0Rm9yVmFsdWVzKCkge1xuICAgIHJldHVybiBpdGVtQWRvcm5lci5pbnBsYWNlRWRpdEZvclZhbHVlcztcbiAgfVxuICBwdWJsaWMgc2V0IGlucGxhY2VFZGl0Rm9yVmFsdWVzKHZhbCkge1xuICAgIGl0ZW1BZG9ybmVyLmlucGxhY2VFZGl0Rm9yVmFsdWVzID0gdmFsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU2V0UmVhZE9ubHkobmV3VmFsOiBib29sZWFuKSB7XG4gICAgc3VwZXIub25TZXRSZWFkT25seShuZXdWYWwpO1xuICAgIHRoaXMucmVuZGVyKG51bGwsIHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMga29DYW5VbmRvOiBhbnk7XG4gIHB1YmxpYyBrb0NhblJlZG86IGFueTtcblxuICBwdWJsaWMgY29tbWFuZHM6IGFueTtcblxuICAvLyBtb2RlbHMgZnJvbSBNVlZNXG4gIHB1YmxpYyBwcm9wZXJ0eUdyaWRPYmplY3RFZGl0b3JNb2RlbDogUHJvcGVydHlHcmlkT2JqZWN0RWRpdG9yTW9kZWw7XG4gIHB1YmxpYyBwYWdlc0VkaXRvck1vZGVsOiBQYWdlc0VkaXRvcjtcbiAgLy8gRU8gbW9kZWxzIGZyb20gTVZWTVxuXG4gIGtvSXNTaG93RGVzaWduZXI6IGFueTtcbiAga29DYW5EZWxldGVPYmplY3Q6IGFueTtcbiAga29PYmplY3RzOiBhbnk7XG4gIGtvU2VsZWN0ZWRPYmplY3Q6IGtvLk9ic2VydmFibGU8YW55PjtcbiAga29TaG93U2F2ZUJ1dHRvbjogYW55O1xuICBrb1Nob3dQcm9wZXJ0eUdyaWQ6IGtvLk9ic2VydmFibGU8Q29udGFpbmVyTG9jYXRpb24+O1xuICBrb1Nob3dUb29sYm94OiBrby5PYnNlcnZhYmxlPENvbnRhaW5lckxvY2F0aW9uPjtcbiAga29TaG93RWxlbWVudEVkaXRvckFzUHJvcGVydHlHcmlkOiBrby5PYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBrb0hpZGVBZHZhbmNlZFNldHRpbmdzOiBrby5PYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBrb1Rlc3RTdXJ2ZXlXaWR0aDogYW55O1xuICBrb0Rlc2lnbmVySGVpZ2h0OiBrby5PYnNlcnZhYmxlPGFueT47XG4gIGtvU2hvd1BhZ2VzVG9vbGJveDoga28uT2JzZXJ2YWJsZTxDb250YWluZXJMb2NhdGlvbj47XG4gIGdlbmVyYXRlVmFsaWRKU09OQ2xpY2s6IGFueTtcbiAgZ2VuZXJhdGVSZWFkYWJsZUpTT05DbGljazogYW55O1xuICBkb1VuZG9DbGljazogYW55O1xuICBkb1JlZG9DbGljazogYW55O1xuICBkZWxldGVPYmplY3RDbGljazogYW55O1xuICBrb1N0YXRlID0ga28ub2JzZXJ2YWJsZShcIlwiKTtcblxuICBzYXZlQnV0dG9uQ2xpY2s6IGFueTtcbiAgZHJhZ2dpbmdUb29sYm94SXRlbTogYW55O1xuICBjbGlja1Rvb2xib3hJdGVtOiBhbnk7XG4gIGRyYWdFbmQ6IGFueTtcbiAgLyoqXG4gICAqIFRoZSBTdXJ2ZXkgQ3JlYXRvciBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHJlbmRlcmVkRWxlbWVudCBIdG1sRWxlbWVudCBvciBodG1sIGVsZW1lbnQgaWQgd2hlcmUgc3VydmV5IGNyZWF0b3Igd2lsbCBiZSByZW5kZXJlZFxuICAgKiBAcGFyYW0gb3B0aW9ucyBzdXJ2ZXkgY3JlYXRvciBvcHRpb25zLiBUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGF2YWlsYWJsZTpcbiAgICogc2hvd0Rlc2lnbmVyVGFiLCBzaG93SlNPTkVkaXRvclRhYiwgc2hvd1Rlc3RTdXJ2ZXlUYWIsIHNob3dFbWJlZGRlZFN1cnZleVRhYiwgc2hvd1RyYW5zbGF0aW9uVGFiLCBzaG93TG9naWNUYWIsXG4gICAqIHNob3dPcHRpb25zLCBzaG93UHJvcGVydHlHcmlkLCBzaG93VG9vbGJveCxcbiAgICogYWxsb3dNb2RpZnlQYWdlcywgcGFnZUVkaXRpbmdNb2RlLCBzaG93RHJvcGRvd25QYWdlU2VsZWN0b3IsIHJlYWRPbmx5LFxuICAgKiBxdWVzdGlvblR5cGVzLCBnZW5lcmF0ZVZhbGlkSlNPTiwgaXNBdXRvU2F2ZSwgZGVzaWduZXJIZWlnaHQsIHNob3dFcnJvck9uRmFpbGVkU2F2ZSwgY2xvc2VNb2RhbE91dHNpZGUsIHVzZVRhYnNJbkVsZW1lbnRFZGl0b3IsXG4gICAqIHNob3dPYmplY3RUaXRsZXMsIGlucGxhY2VFZGl0Rm9yVmFsdWVzLCBzaG93VGl0bGVzSW5FeHByZXNzaW9ucywgYWxsb3dFZGl0RXhwcmVzc2lvbnNJblRleHRFZGl0b3IsXG4gICAqIHNob3dQYWdlc0luVGVzdFN1cnZleVRhYiwgc2hvd0RlZmF1bHRMYW5ndWFnZUluVGVzdFN1cnZleVRhYiwgc2hvd0ludmlzaWJsZUVsZW1lbnRzSW5UZXN0U3VydmV5VGFiLCBzaG93U2ltdWxhdG9ySW5UZXN0U3VydmV5VGFiLFxuICAgKiBzaG93U3VydmV5VGl0bGUsIGFsbG93Q29udHJvbFN1cnZleVRpdGxlVmlzaWJpbGl0eSwgaGlkZUV4cHJlc3Npb25IZWFkZXJJbkxvZ2ljVGFiLFxuICAgKiBtYXhMb2dpY0l0ZW1zSW5Db25kaXRpb25cbiAgICovXG5cbiAgY29uc3RydWN0b3IocmVuZGVyZWRFbGVtZW50OiBhbnkgPSBudWxsLCBvcHRpb25zOiBhbnkgPSBudWxsKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gICAgdGhpcy5rb0NhbkRlbGV0ZU9iamVjdCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAgIHRoaXMua29DYW5VbmRvID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gICAgdGhpcy5rb0NhblJlZG8gPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuICAgIHRoaXMudG9vbGJveFZhbHVlID0gbmV3IFF1ZXN0aW9uVG9vbGJveChcbiAgICAgIHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMucXVlc3Rpb25UeXBlc1xuICAgICAgICA/IHRoaXMub3B0aW9ucy5xdWVzdGlvblR5cGVzXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRoaXNcbiAgICApO1xuICAgIHRoaXMuc3VydmV5TGl2ZSA9IG5ldyBTdXJ2ZXlMaXZlVGVzdGVyKHRoaXMpO1xuICAgIHRoaXMubG9naWNWYWx1ZSA9IG5ldyBTdXJ2ZXlMb2dpYyh0aGlzLmNyZWF0ZVN1cnZleSh7fSwgXCJsb2dpY1wiKSwgdGhpcyk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgU3R5bGVzTWFuYWdlci5hcHBseVRoZW1lKFN0eWxlc01hbmFnZXIuY3VycmVudFRoZW1lKCkpO1xuXG4gICAgc2VsZi5vblRpdGxlSW5wbGFjZUVkaXRvclN0YXJ0RWRpdCA9IG51bGw7XG5cbiAgICB0aGlzLmtvU2hvd1NhdmVCdXR0b24gPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgICB0aGlzLmtvVGVzdFN1cnZleVdpZHRoID0ga28ub2JzZXJ2YWJsZShcIjEwMCVcIik7XG4gICAgdGhpcy5zYXZlQnV0dG9uQ2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLmRvU2F2ZSgpO1xuICAgIH07XG4gICAgdGhpcy5rb09iamVjdHMgPSBrby5vYnNlcnZhYmxlQXJyYXkoKTtcbiAgICB3aW5kb3dbXCJzZWxcIl0gPSB0aGlzLmtvU2VsZWN0ZWRPYmplY3Q7XG4gICAgdGhpcy5rb1NlbGVjdGVkT2JqZWN0LnN1YnNjcmliZShmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIHNlbGYuc2VsZWN0ZWRPYmplY3RDaGFuZ2VkKCEhbmV3VmFsdWUgPyBuZXdWYWx1ZS52YWx1ZSA6IG51bGwpO1xuICAgIH0pO1xuICAgIHRoaXMua29HZW5lcmF0ZVZhbGlkSlNPTi5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICBpZiAoIXNlbGYub3B0aW9ucykgc2VsZi5vcHRpb25zID0ge307XG4gICAgICBzZWxmLm9wdGlvbnMuZ2VuZXJhdGVWYWxpZEpTT04gPSBuZXdWYWx1ZTtcbiAgICAgIGlmIChzZWxmLmdlbmVyYXRlVmFsaWRKU09OQ2hhbmdlZENhbGxiYWNrKVxuICAgICAgICBzZWxmLmdlbmVyYXRlVmFsaWRKU09OQ2hhbmdlZENhbGxiYWNrKG5ld1ZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnN1cnZleU9iamVjdHMgPSBuZXcgU3VydmV5T2JqZWN0cyhcbiAgICAgIHRoaXMua29PYmplY3RzLFxuICAgICAgdGhpcy5rb1NlbGVjdGVkT2JqZWN0LFxuICAgICAgZnVuY3Rpb24gKG9iajogU3VydmV5LkJhc2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2VsZi5nZXRPYmplY3REaXNwbGF5TmFtZShvYmosIFwicHJvcGVydHktZ3JpZFwiKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuc3VydmV5T2JqZWN0cy5nZXRJdGVtVGV4dENhbGxiYWNrID0gZnVuY3Rpb24gKG9iaiwgdGV4dCkge1xuICAgICAgdmFyIG9wdGlvbnMgPSB7IG9iajogb2JqLCB0ZXh0OiB0ZXh0IH07XG4gICAgICBzZWxmLm9uR2V0T2JqZWN0VGV4dEluUHJvcGVydHlHcmlkLmZpcmUoc2VsZiwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gb3B0aW9ucy50ZXh0O1xuICAgIH07XG5cbiAgICB0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsID0gbmV3IFByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsKFxuICAgICAgdGhpc1xuICAgICk7XG5cbiAgICBpZiAodGhpcy5zaG93RWxlbWVudEVkaXRvckFzUHJvcGVydHlHcmlkKSB7XG4gICAgICB0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLmtvSXNPbGRUYWJsZUFwcGVhcmFuY2UoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxmLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLmtvSXNPbGRUYWJsZUFwcGVhcmFuY2UodHJ1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5rb1Nob3dFbGVtZW50RWRpdG9yQXNQcm9wZXJ0eUdyaWQuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICAgIHNlbGYucHJvcGVydHlHcmlkT2JqZWN0RWRpdG9yTW9kZWwua29Jc09sZFRhYmxlQXBwZWFyYW5jZShmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxmLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLmtvSXNPbGRUYWJsZUFwcGVhcmFuY2UodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLm9uQWZ0ZXJSZW5kZXJDYWxsYmFjayA9XG4gICAgICB0aGlzLm9uRWRpdG9yQWZ0ZXJSZW5kZXJDYWxsYmFjaztcbiAgICB0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLm9uU29ydFByb3BlcnR5Q2FsbGJhY2sgPSBmdW5jdGlvbiAoXG4gICAgICBvYmo6IGFueSxcbiAgICAgIHByb3BlcnR5MTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICAgIHByb3BlcnR5MjogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuICAgICk6IG51bWJlciB7XG4gICAgICByZXR1cm4gc2VsZi5vbkN1c3RvbVNvcnRQcm9wZXJ0eU9iamVjdFByb3BlcnR5KG9iaiwgcHJvcGVydHkxLCBwcm9wZXJ0eTIpO1xuICAgIH07XG4gICAgdGhpcy5wcm9wZXJ0eUdyaWRPYmplY3RFZGl0b3JNb2RlbC5vblByb3BlcnR5Q2hhbmdlZCA9IGZ1bmN0aW9uIChcbiAgICAgIG9iajogYW55LFxuICAgICAgcHJvcDogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICAgIG9sZFZhbHVlOiBhbnlcbiAgICApIHtcbiAgICAgIHNlbGYub25Qcm9wZXJ0eUNoYW5nZWQob2JqLCBwcm9wLCBvbGRWYWx1ZSk7XG4gICAgfTtcbiAgICB0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsW1wib25Db3JyZWN0VmFsdWVCZWZvcmVTZXRcIl0gPSBmdW5jdGlvbiAoXG4gICAgICBvYmo6IGFueSxcbiAgICAgIHByb3A6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgICBuZXdWYWx1ZTogYW55XG4gICAgKTogYW55IHtcbiAgICAgIHJldHVybiBzZWxmLm9uUHJvcGVydHlDb3JyZWN0VmFsdWVCZWZvcmVTZXQob2JqLCBwcm9wLCBuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIHRoaXMucXVlc3Rpb25FZGl0b3JXaW5kb3cgPSBuZXcgU3VydmV5UHJvcGVydHlFZGl0b3JTaG93V2luZG93KCk7XG5cbiAgICB0aGlzLmtvVmlld1R5cGUuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgc2VsZi5vbkFjdGl2ZVRhYkNoYW5nZWQuZmlyZShzZWxmLCB7IHRhYk5hbWU6IG5ld1ZhbHVlIH0pO1xuICAgIH0pO1xuICAgIHRoaXMua29Jc1Nob3dEZXNpZ25lciA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBzZWxmLmtvVmlld1R5cGUoKSA9PSBcImRlc2lnbmVyXCI7XG4gICAgfSk7XG4gICAgdGhpcy5nZW5lcmF0ZVZhbGlkSlNPTkNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5rb0dlbmVyYXRlVmFsaWRKU09OKHRydWUpO1xuICAgIH07XG4gICAgdGhpcy5nZW5lcmF0ZVJlYWRhYmxlSlNPTkNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5rb0dlbmVyYXRlVmFsaWRKU09OKGZhbHNlKTtcbiAgICB9O1xuICAgIHRoaXMuZGVsZXRlT2JqZWN0Q2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLmRlbGV0ZUN1cnJlbnRPYmplY3QoKTtcbiAgICB9O1xuICAgIHRoaXMuZHJhZ2dpbmdUb29sYm94SXRlbSA9IGZ1bmN0aW9uIChpdGVtLCBlKSB7XG4gICAgICBpZiAoIXRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgc2VsZi5kb0RyYWdnaW5nVG9vbGJveEl0ZW0oaXRlbS5qc29uLCBlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuY2xpY2tUb29sYm94SXRlbSA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICBzZWxmLmRvQ2xpY2tUb29sYm94SXRlbShpdGVtLmpzb24pO1xuICAgIH07XG4gICAgdGhpcy5kcmFnRW5kID0gZnVuY3Rpb24gKGl0ZW0sIGUpIHtcbiAgICAgIHNlbGYuZHJhZ0Ryb3BIZWxwZXIuZW5kKCk7XG4gICAgfTtcblxuICAgIHRoaXMuZG9VbmRvQ2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IHsgY2FuVW5kbzogdHJ1ZSB9O1xuICAgICAgc2VsZi5vbkJlZm9yZVVuZG8uZmlyZShzZWxmLCBvcHRpb25zKTtcbiAgICAgIGlmIChvcHRpb25zLmNhblVuZG8pIHtcbiAgICAgICAgdmFyIGl0ZW0gPSBzZWxmLnVuZG9SZWRvTWFuYWdlci51bmRvKCk7XG4gICAgICAgIC8vIHNlbGYuZG9VbmRvUmVkbyhpdGVtKTsgVE9ETyB1bmRvcmVkb1xuICAgICAgICBzZWxmLm9uQWZ0ZXJVbmRvLmZpcmUoc2VsZiwgeyBzdGF0ZTogaXRlbSB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuZG9SZWRvQ2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IHsgY2FuUmVkbzogdHJ1ZSB9O1xuICAgICAgc2VsZi5vbkJlZm9yZVJlZG8uZmlyZShzZWxmLCBvcHRpb25zKTtcbiAgICAgIGlmIChvcHRpb25zLmNhblJlZG8pIHtcbiAgICAgICAgdmFyIGl0ZW0gPSBzZWxmLnVuZG9SZWRvTWFuYWdlci5yZWRvKCk7XG4gICAgICAgIC8vIHNlbGYuZG9VbmRvUmVkbyhpdGVtKTtcbiAgICAgICAgc2VsZi5vbkFmdGVyUmVkby5maXJlKHNlbGYsIHsgc3RhdGU6IGl0ZW0gfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMudGV4dCA9IFwiXCI7XG5cbiAgICB0aGlzLnBhZ2VzRWRpdG9yTW9kZWwgPSBuZXcgUGFnZXNFZGl0b3IodGhpcyk7XG5cbiAgICBpZiAocmVuZGVyZWRFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcihyZW5kZXJlZEVsZW1lbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbW1hbmRzID0gbmV3IENvbW1hbmRzKHNlbGYpO1xuICAgIHNlbGYuY29tbWFuZHMgPSBjb21tYW5kcy5nZXRDb21tYW5kcygpO1xuICAgIHRoaXMuYWRkVG9vbGJhckl0ZW1zKCk7XG4gIH1cblxuICBwcml2YXRlIG9uRWRpdG9yQWZ0ZXJSZW5kZXJDYWxsYmFjayA9IChcbiAgICBvYmo6IGFueSxcbiAgICBodG1sRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgcHJvcDogU3VydmV5T2JqZWN0UHJvcGVydHlcbiAgKSA9PiB7XG4gICAgaWYgKHRoaXMub25Qcm9wZXJ0eUFmdGVyUmVuZGVyLmlzRW1wdHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBvYmo6IG9iaixcbiAgICAgIGh0bWxFbGVtZW50OiBodG1sRWxlbWVudCxcbiAgICAgIHByb3BlcnR5OiBwcm9wLnByb3BlcnR5LFxuICAgICAgcHJvcGVydHlFZGl0b3I6IHByb3AuZWRpdG9yLFxuICAgIH07XG4gICAgdGhpcy5vblByb3BlcnR5QWZ0ZXJSZW5kZXIuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgfTtcbiAgc2V0T3B0aW9ucyhvcHRpb25zKSB7XG4gICAgdGhpcy5rb1Nob3dQcm9wZXJ0eUdyaWQgPSBrby5vYnNlcnZhYmxlPENvbnRhaW5lckxvY2F0aW9uPih0cnVlKTtcbiAgICB0aGlzLmtvU2hvd0VsZW1lbnRFZGl0b3JBc1Byb3BlcnR5R3JpZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAgIHRoaXMua29IaWRlQWR2YW5jZWRTZXR0aW5ncyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAgIHRoaXMuX3RvcENvbnRhaW5lciA9IGtvLm9ic2VydmFibGVBcnJheTxzdHJpbmc+KFtcbiAgICAgIFwidG9vbGJhclwiLFxuICAgICAgXCJwYWdlcy1lZGl0b3JcIixcbiAgICBdKTtcbiAgICB0aGlzLmhpZGVFeHByZXNzaW9uSGVhZGVyVmFsdWUgPSBrby5vYnNlcnZhYmxlPGJvb2xlYW4+KGZhbHNlKTtcbiAgICB0aGlzLmtvU2hvd1Rvb2xib3ggPSBrby5vYnNlcnZhYmxlPENvbnRhaW5lckxvY2F0aW9uPih0cnVlKTtcbiAgICB0aGlzLl9sZWZ0Q29udGFpbmVyID0ga28ub2JzZXJ2YWJsZUFycmF5PHN0cmluZz4oW1widG9vbGJveFwiXSk7XG4gICAgdGhpcy5fcmlnaHRDb250YWluZXIgPSBrby5vYnNlcnZhYmxlQXJyYXk8c3RyaW5nPihbXCJwcm9wZXJ0eS1ncmlkXCJdKTtcbiAgICB0aGlzLmtvU2VsZWN0ZWRPYmplY3QgPSBrby5vYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5rb0FsbG93Q29udHJvbFN1cnZleVRpdGxlVmlzaWJpbGl0eSA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gICAgdGhpcy5rb0Rlc2lnbmVySGVpZ2h0ID0ga28ub2JzZXJ2YWJsZTxhbnk+KFwiMTAwMHB4XCIpO1xuICAgIHRoaXMua29TaG93U3VydmV5VGl0bGUgPSBrby5vYnNlcnZhYmxlKFwiaWZlbnRlcmVkXCIpO1xuICAgIHRoaXMua29TaG93UGFnZXNUb29sYm94ID0ga28ub2JzZXJ2YWJsZTxDb250YWluZXJMb2NhdGlvbj4odHJ1ZSk7XG5cbiAgICBzdXBlci5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICB0aGlzLmlucGxhY2VFZGl0Rm9yVmFsdWVzID1cbiAgICAgIHR5cGVvZiBvcHRpb25zLmlucGxhY2VFZGl0Rm9yVmFsdWVzICE9PSBcInVuZGVmaW5lZFwiXG4gICAgICAgID8gb3B0aW9ucy5pbnBsYWNlRWRpdEZvclZhbHVlc1xuICAgICAgICA6IGZhbHNlO1xuXG4gICAgdGhpcy5zaG93UHJvcGVydHlHcmlkID1cbiAgICAgIHR5cGVvZiBvcHRpb25zLnNob3dQcm9wZXJ0eUdyaWQgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgPyBvcHRpb25zLnNob3dQcm9wZXJ0eUdyaWRcbiAgICAgICAgOiB0cnVlO1xuXG4gICAgdGhpcy5rb1Nob3dFbGVtZW50RWRpdG9yQXNQcm9wZXJ0eUdyaWQoXG4gICAgICB0eXBlb2Ygb3B0aW9ucy5zaG93RWxlbWVudEVkaXRvckFzUHJvcGVydHlHcmlkICE9PSBcInVuZGVmaW5lZFwiXG4gICAgICAgID8gb3B0aW9ucy5zaG93RWxlbWVudEVkaXRvckFzUHJvcGVydHlHcmlkXG4gICAgICAgIDogdHJ1ZVxuICAgICk7XG5cbiAgICB0aGlzLnNjcm9sbFRvTmV3RWxlbWVudCA9XG4gICAgICB0eXBlb2Ygb3B0aW9ucy5zY3JvbGxUb05ld0VsZW1lbnQgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgPyBvcHRpb25zLnNjcm9sbFRvTmV3RWxlbWVudFxuICAgICAgICA6IHRydWU7XG4gICAgaWYgKG9wdGlvbnMuZGVzaWduZXJIZWlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5rb0Rlc2lnbmVySGVpZ2h0KG9wdGlvbnMuZGVzaWduZXJIZWlnaHQpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5vYmplY3RzSW50ZW5kKSB7XG4gICAgICBTdXJ2ZXlPYmplY3RzLmludGVuZCA9IG9wdGlvbnMub2JqZWN0c0ludGVuZDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuY2xvc2VNb2RhbE91dHNpZGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMuY2xvc2VNb2RhbE91dHNpZGVWYWx1ZSA9IG9wdGlvbnMuY2xvc2VNb2RhbE91dHNpZGU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLnBhZ2VFZGl0TW9kZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy5wYWdlRWRpdE1vZGVWYWx1ZSA9IG9wdGlvbnMucGFnZUVkaXRNb2RlO1xuICAgICAgaWYgKHRoaXMucGFnZUVkaXRNb2RlVmFsdWUgPT09IFwic2luZ2xlXCIpIHtcbiAgICAgICAgdGhpcy5fdG9wQ29udGFpbmVyLnJlbW92ZShcInBhZ2VzLWVkaXRvclwiKTtcbiAgICAgICAgU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFwicXVlc3Rpb25cIiwgXCJwYWdlXCIpLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFwicGFuZWxcIiwgXCJwYWdlXCIpLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93SlNPTkVkaXRvclRhYiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmhpZGVFeHByZXNzaW9uSGVhZGVyVmFsdWUob3B0aW9ucy5oaWRlRXhwcmVzc2lvbkhlYWRlciA9PT0gdHJ1ZSk7XG5cbiAgICB0aGlzLnNob3dUb29sYm94ID1cbiAgICAgIHR5cGVvZiBvcHRpb25zLnNob3dUb29sYm94ICE9PSBcInVuZGVmaW5lZFwiID8gb3B0aW9ucy5zaG93VG9vbGJveCA6IHRydWU7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuc2hvd1BhZ2VzVG9vbGJveCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy5rb1Nob3dQYWdlc1Rvb2xib3gob3B0aW9ucy5zaG93UGFnZXNUb29sYm94KTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuc2hvd1N1cnZleVRpdGxlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0aGlzLnNob3dTdXJ2ZXlUaXRsZSA9IG9wdGlvbnMuc2hvd1N1cnZleVRpdGxlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuYWxsb3dDb250cm9sU3VydmV5VGl0bGVWaXNpYmlsaXR5ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB0aGlzLmFsbG93Q29udHJvbFN1cnZleVRpdGxlVmlzaWJpbGl0eSA9XG4gICAgICAgICEhb3B0aW9ucy5hbGxvd0NvbnRyb2xTdXJ2ZXlUaXRsZVZpc2liaWxpdHk7XG4gICAgfVxuICB9XG5cbiAgLy8gZ2V0IHRvb2xib3hJdGVtcygpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5xdWVzdGlvblR5cGVzXG4gIC8vICAgICA/IHRoaXMub3B0aW9ucy5xdWVzdGlvblR5cGVzXG4gIC8vICAgICA6IG51bGw7XG4gIC8vIH1cblxuICB0aGVtZUNzcyA9IGtvLmNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gW1wiYm9vdHN0cmFwXCIsIFwiYm9vdHN0cmFwbWF0ZXJpYWxcIiwgXCJtb2Rlcm5cIl0uaW5kZXhPZihcbiAgICAgIFN0eWxlc01hbmFnZXIuY3VycmVudFRoZW1lKClcbiAgICApID09PSAtMVxuICAgICAgPyBcInN2X2RlZmF1bHRfY3NzXCJcbiAgICAgIDogXCJzdl9cIiArIFN0eWxlc01hbmFnZXIuY3VycmVudFRoZW1lKCkgKyBcIl9jc3NcIjtcbiAgfSk7XG5cbiAgcHJpdmF0ZSB1cGRhdGVLb0NhblVuZG9SZWRvKCkge1xuICAgIHRoaXMua29DYW5VbmRvKCF0aGlzLnJlYWRPbmx5ICYmIHRoaXMudW5kb1JlZG9NYW5hZ2VyLmNhblVuZG8oKSk7XG4gICAgdGhpcy5rb0NhblJlZG8oIXRoaXMucmVhZE9ubHkgJiYgdGhpcy51bmRvUmVkb01hbmFnZXIuY2FuUmVkbygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRUb29sYmFySXRlbXMoKSB7XG4gICAgY29uc3QgY29tbWFuZHMgPSB0aGlzLmNvbW1hbmRzO1xuICAgIE9iamVjdC5rZXlzKGNvbW1hbmRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGxldCBjb21tYW5kID0gY29tbWFuZHNba2V5XTtcbiAgICAgIGxldCB0b29sYmFySXRlbSA9IGNvbW1hbmQudG9vbGJhcjtcbiAgICAgIGlmICghdG9vbGJhckl0ZW0pIHJldHVybjtcblxuICAgICAgaWYgKCF0b29sYmFySXRlbS5hY3Rpb24pIHtcbiAgICAgICAgdG9vbGJhckl0ZW0uYWN0aW9uID0gKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSByZXR1cm47XG4gICAgICAgICAgdGhpcy5leGVjdXRlKGNvbW1hbmQpO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRvb2xiYXJJdGVtcy5wdXNoKHRvb2xiYXJJdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gZm9yY2UgdXBkYXRlIHRoaXMgZWxlbWVudCBpbiBlZGl0b3IuXG4gICAqIEBwYXJhbSBlbGVtZW50IFN1cnZleS5RdWVzdGlvbiBpcyBlbGVtZW50IHRvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZShlbGVtZW50OiBTdXJ2ZXkuUXVlc3Rpb24pIHtcbiAgICBlbGVtZW50W1wia29FbGVtZW50VHlwZVwiXS5ub3RpZnlTdWJzY3JpYmVycygpO1xuICB9XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgU3VydmV5IENyZWF0b3IuXG4gICAqIEBwYXJhbSBlbGVtZW50IEh0bWxFbGVtZW50IG9yIGh0bWwgZWxlbWVudCBpZCB3aGVyZSBzdXJ2ZXkgY3JlYXRvciB3aWxsIGJlIHJlbmRlcmVkXG4gICAqIEBwYXJhbSBvcHRpb25zIHN1cnZleSBjcmVhdG9yIG9wdGlvbnMuIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgYXZhaWxhYmxlOiBzaG93SlNPTkVkaXRvclRhYiwgc2hvd1Rlc3RTdXJ2ZXlUYWIsIHNob3dFbWJlZGRlZFN1cnZleVRhYixcbiAgICogc2hvd1RyYW5zbGF0aW9uVGFiLCBzaG93TG9naWNUYWIsIHNob3dPcHRpb25zLCBnZW5lcmF0ZVZhbGlkSlNPTiwgaXNBdXRvU2F2ZSwgZGVzaWduZXJIZWlnaHQuXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyKGVsZW1lbnQ6IGFueSA9IG51bGwsIG9wdGlvbnM6IGFueSA9IG51bGwpIHtcbiAgICBpZiAob3B0aW9ucykgdGhpcy5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBpZiAoZWxlbWVudCAmJiB0eXBlb2YgZWxlbWVudCA9PSBcInN0cmluZ1wiKSB7XG4gICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudCk7XG4gICAgfVxuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcmVkRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfVxuICAgIGVsZW1lbnQgPSB0aGlzLnJlbmRlcmVkRWxlbWVudDtcbiAgICBpZiAoIWVsZW1lbnQpIHJldHVybjtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9IHRlbXBsYXRlRWRpdG9ySHRtbDtcbiAgICBzZWxmLmFwcGx5QmluZGluZygpO1xuICB9XG4gIHB1YmxpYyBsb2FkU3VydmV5KHN1cnZleUlkOiBzdHJpbmcpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgbmV3IFN1cnZleS5keFN1cnZleVNlcnZpY2UoKS5sb2FkU3VydmV5KFxuICAgICAgc3VydmV5SWQsXG4gICAgICBmdW5jdGlvbiAoc3VjY2VzczogYm9vbGVhbiwgcmVzdWx0OiBzdHJpbmcsIHJlc3BvbnNlOiBhbnkpIHtcbiAgICAgICAgaWYgKHN1Y2Nlc3MgJiYgcmVzdWx0KSB7XG4gICAgICAgICAgc2VsZi50ZXh0ID0gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBKU09OIGFzIHRleHQgIGludG8gc3VydmV5LiBDbGVhciB1bmRvL3JlZG8gc3RhdGVzIG9wdGlvbmFsbHkuXG4gICAqIEBwYXJhbSB2YWx1ZSBKU09OIGFzIHRleHRcbiAgICogQHBhcmFtIGNsZWFyU3RhdGUgZGVmYXVsdCBmYWxzZS4gU2V0IHRoaXMgcGFyYW1ldGVyIHRvIHRydWUgdG8gY2xlYXIgdW5kby9yZWRvIHN0YXRlcy5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VUZXh0KHZhbHVlOiBzdHJpbmcsIGNsZWFyU3RhdGUgPSBmYWxzZSkge1xuICAgIHN1cGVyLmNoYW5nZVRleHQodmFsdWUsIGNsZWFyU3RhdGUpO1xuICAgIHZhciB0ZXh0V29ya2VyID0gbmV3IFN1cnZleVRleHRXb3JrZXIodmFsdWUpO1xuICAgIGlmICh0ZXh0V29ya2VyLmlzSnNvbkNvcnJlY3QpIHtcbiAgICAgIHRoaXMuaW5pdFN1cnZleVdpdGhKU09OKHRleHRXb3JrZXIuc3VydmV5LnRvSlNPTigpLCBjbGVhclN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5rb1ZpZXdUeXBlKFwiZWRpdG9yXCIpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgaW5pdFN1cnZleVdpdGhKU09OKGpzb246IGFueSwgY2xlYXJTdGF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5pdFN1cnZleShqc29uKTtcbiAgICBpZiAodGhpcy5zaG93RGVzaWduZXJUYWIpIHtcbiAgICAgIHRoaXMuc2hvd0Rlc2lnbmVyKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0VW5kb1JlZG9DdXJyZW50U3RhdGUoY2xlYXJTdGF0ZSk7XG4gIH1cbiAgcHVibGljIGdldCBzdXJ2ZXlMaXZlVGVzdGVyKCk6IFN1cnZleUxpdmVUZXN0ZXIge1xuICAgIHJldHVybiB0aGlzLnN1cnZleUxpdmU7XG4gIH1cbiAgLyoqXG4gICAqIFRvb2xib3ggb2JqZWN0LiBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBRdWVzdGlvbiB0b29sYm94IGl0ZW1zLlxuICAgKiBAc2VlIFF1ZXN0aW9uVG9vbGJveFxuICAgKi9cbiAgcHVibGljIGdldCB0b29sYm94KCk6IFF1ZXN0aW9uVG9vbGJveCB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJveFZhbHVlO1xuICB9XG4gIC8vIHB1YmxpYyBzZXQgdG9vbGJveChuZXdWYWx1ZTogUXVlc3Rpb25Ub29sYm94KSB7XG4gIC8vICAgdGhpcy50b29sYm94VmFsdWUgPSBuZXdWYWx1ZTtcbiAgLy8gfVxuICAvKipcbiAgICogUmV0dXJuIHRoZSB0cmFuc2xhdGlvbiBtb2RlIG9iamVjdC5cbiAgICogQHNlZSBzaG93VHJhbnNsYXRpb25UYWJcbiAgICovXG4gIHB1YmxpYyBnZXQgdHJhbnNsYXRpb24oKTogVHJhbnNsYXRpb24ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCB0cmFuc2xhdGlvbihuZXdWYWx1ZTogVHJhbnNsYXRpb24pIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uVmFsdWUgPSBuZXdWYWx1ZTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBsb2dpYyBtb2RlIG9iamVjdC5cbiAgICogQHNlZSBzaG93TG9naWNUYWJcbiAgICovXG4gIHB1YmxpYyBnZXQgbG9naWMoKTogU3VydmV5TG9naWMge1xuICAgIHJldHVybiB0aGlzLmxvZ2ljVmFsdWU7XG4gIH1cbiAgLy8gcHVibGljIHNldCBsb2dpYyhsb2dpYzogU3VydmV5TG9naWMpIHtcbiAgLy8gICB0aGlzLmxvZ2ljVmFsdWUgPSBsb2dpYztcbiAgLy8gfVxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgdG9vbGJhciBpdGVtcy4gWW91IG1heSBhZGQvcmVtb3ZlL3JlcGxhY2UgdGhlbS5cbiAgICogQHNlZSBJQWN0aW9uXG4gICAqL1xuICBwdWJsaWMgdG9vbGJhckl0ZW1zID0ga28ub2JzZXJ2YWJsZUFycmF5PElBY3Rpb24+KCk7XG4gIC8qKlxuICAgKiBHZXQgYW5kIHNldCB0aGUgbWF4aW11bSBvZiBjb3BpZWQgcXVlc3Rpb25zL3BhbmVscyBpbiB0aGUgdG9vbGJveC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgM1xuICAgKi9cbiAgcHVibGljIGdldCBjdXN0b21Ub29sYm94UXVlc3Rpb25NYXhDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRvb2xib3guY29waWVkSXRlbU1heENvdW50O1xuICB9XG4gIHB1YmxpYyBzZXQgY3VzdG9tVG9vbGJveFF1ZXN0aW9uTWF4Q291bnQodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMudG9vbGJveC5jb3BpZWRJdGVtTWF4Q291bnQgPSB2YWx1ZTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3JlYXRvciBzdGF0ZS4gSXQgbWF5IHJldHVybiBlbXB0eSBzdHJpbmcgb3IgXCJzYXZpbmdcIiBhbmQgXCJzYXZlZFwiLlxuICAgKi9cbiAgcHVibGljIGdldCBzdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YXRlVmFsdWU7XG4gIH1cbiAgcHJvdGVjdGVkIHNldFN0YXRlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0YXRlVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmtvU3RhdGUodGhpcy5zdGF0ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gdHJpZ2dlcnMgdXNlciBub3RpZmljYXRpb24gKHZpYSB0aGUgYWxlcnQoKSBmdW5jdGlvbiBpZiBubyBvbk5vdGlmeSBldmVudCBoYW5kbGVyIGFkZGVkKS5cbiAgICogQHNlZSBvbk5vdGlmeVxuICAgKi9cbiAgcHVibGljIG5vdGlmeShtc2c6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm9uTm90aWZ5LmlzRW1wdHkpIHtcbiAgICAgIGFsZXJ0KG1zZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25Ob3RpZnkuZmlyZSh0aGlzLCB7IG1lc3NhZ2U6IG1zZyB9KTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBkZWxheSBvbiBzYXZpbmcgc3VydmV5IEpTT04gb24gYXV0b1NhdmUgaW4gbXMuIEl0IGlzIDUwMCBtcyBieSBkZWZhdWx0LlxuICAgKiBJZiBkdXJpbmcgdGhpcyBwZXJpb2Qgb2YgdGltZSBhbiBlbmQtdXNlciBtb2RpZnkgc3VydmV5LCB0aGVuIHRoZSBsYXN0IHZlcnNpb24gd2lsbCBiZSBzYXZlZCBvbmx5LiBTZXQgdG8gMCB0byBzYXZlIGltbWVkaWF0ZWx5LlxuICAgKiBAc2VlIGlzQXV0b1NhdmVcbiAgICovXG4gIHB1YmxpYyBhdXRvU2F2ZURlbGF5OiBudW1iZXIgPSA1MDA7XG4gIHByaXZhdGUgYXV0b1NhdmVUaW1lcklkID0gbnVsbDtcbiAgcHJvdGVjdGVkIGRvQXV0b1NhdmUoKSB7XG4gICAgaWYgKHRoaXMuYXV0b1NhdmVEZWxheSA8PSAwKSB7XG4gICAgICB0aGlzLmRvU2F2ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoISF0aGlzLmF1dG9TYXZlVGltZXJJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b1NhdmVUaW1lcklkKTtcbiAgICB9XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuYXV0b1NhdmVUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2VsZi5hdXRvU2F2ZVRpbWVySWQpO1xuICAgICAgc2VsZi5hdXRvU2F2ZVRpbWVySWQgPSBudWxsO1xuICAgICAgc2VsZi5kb1NhdmUoKTtcbiAgICB9LCB0aGlzLmF1dG9TYXZlRGVsYXkpO1xuICB9XG4gIHNhdmVObzogbnVtYmVyID0gMDtcbiAgcHJvdGVjdGVkIGRvU2F2ZSgpIHtcbiAgICB0aGlzLnNldFN0YXRlKFwic2F2aW5nXCIpO1xuICAgIGlmICh0aGlzLnNhdmVTdXJ2ZXlGdW5jKSB7XG4gICAgICB0aGlzLnNhdmVObysrO1xuICAgICAgdGhpcy5zYXZlU3VydmV5RnVuYyh0aGlzLnNhdmVObywgKG5vOiBudW1iZXIsIGlzU3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAodGhpcy5zYXZlTm8gIT09IG5vKSByZXR1cm47XG4gICAgICAgIGlmIChpc1N1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKFwic2F2ZWRcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuc2hvd0Vycm9yT25GYWlsZWRTYXZlKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeSh0aGlzLmdldExvY1N0cmluZyhcImVkLnNhdmVFcnJvclwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXCJtb2RpZmllZFwiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBzZXRNb2RpZmllZChvcHRpb25zOiBhbnkgPSBudWxsKSB7XG4gICAgc3VwZXIuc2V0TW9kaWZpZWQob3B0aW9ucyk7IC8vIFRPRE86IG1vdmUgdG8gc3VwZXIgY2xhc3NcbiAgICB0aGlzLnNldFN0YXRlKFwibW9kaWZpZWRcIik7XG4gICAgdGhpcy5zZXRVbmRvUmVkb0N1cnJlbnRTdGF0ZSgpO1xuICAgIHRoaXMub25Nb2RpZmllZC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMuaXNBdXRvU2F2ZSAmJiB0aGlzLmRvQXV0b1NhdmUoKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIENyZWF0b3IgaXMgY3VycmVudGx5IGRvaW5nIHVuZG8gb3IgcmVkbyBvcGVydGFpb25zXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzUHJvY2Vzc2luZ1VuZG9SZWRvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVuZG9SZWRvTWFuYWdlci5pc1Byb2Nlc3NpbmdVbmRvUmVkbztcbiAgfVxuICAvKipcbiAgICogVW5kbyB0aGUgbGF0ZXN0IHVzZXIgb3BlcmF0aW9uLiBSZXR1cm5zIHRydWUgaWYgaXQgcGVyZm9ybWVzIHN1Y2Nlc3NmdWwuXG4gICAqL1xuICBwdWJsaWMgdW5kbyA9ICgpID0+IHtcbiAgICB0aGlzLmRvVW5kb0NsaWNrKCk7XG4gIH07XG4gIC8qKlxuICAgKiBSZWRvIHRoZSBsYXRlc3QgdW5kbyBvcGVyYXRpb24uIFJldHVybnMgdHJ1ZSBpZiBpdCBwZXJmb3JtZXMgc3VjY2Vzc2Z1bC5cbiAgICovXG4gIHB1YmxpYyByZWRvID0gKCkgPT4ge1xuICAgIHRoaXMuZG9SZWRvQ2xpY2soKTtcbiAgfTtcbiAgcHJpdmF0ZSBzZXRVbmRvUmVkb0N1cnJlbnRTdGF0ZShjbGVhclN0YXRlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAvLyBpZiAoY2xlYXJTdGF0ZSkgeyBUT0RPIHVuZG9yZWRvXG4gICAgLy8gICB0aGlzLnVuZG9SZWRvTWFuYWdlci5jbGVhcigpO1xuICAgIC8vIH1cbiAgICAvLyB2YXIgc2VsT2JqID0gdGhpcy5rb1NlbGVjdGVkT2JqZWN0KCkgPyB0aGlzLmtvU2VsZWN0ZWRPYmplY3QoKS52YWx1ZSA6IG51bGw7XG4gICAgLy8gdGhpcy51bmRvUmVkb01hbmFnZXIuc2V0Q3VycmVudCh0aGlzLnN1cnZleVZhbHVlKCksIHNlbE9iaiA/IHNlbE9iai5uYW1lIDogbnVsbCk7XG4gIH1cbiAgLyoqXG4gICAqIEFzc2lnbiB0byB0aGlzIHByb3BlcnR5IGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBjbGlja2luZyB0aGUgJ1NhdmUnIGJ1dHRvbiBvciBvbiBhbnkgY2hhbmdlIGlmIGlzQXV0b1NhdmUgZXF1YWxzIHRydWUuXG4gICAqIEBzZWUgaXNBdXRvU2F2ZVxuICAgKi9cbiAgcHVibGljIGdldCBzYXZlU3VydmV5RnVuYygpIHtcbiAgICByZXR1cm4gdGhpcy5zYXZlU3VydmV5RnVuY1ZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgc2F2ZVN1cnZleUZ1bmModmFsdWU6IGFueSkge1xuICAgIHRoaXMuc2F2ZVN1cnZleUZ1bmNWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMua29TaG93U2F2ZUJ1dHRvbih2YWx1ZSAhPSBudWxsICYmICF0aGlzLmlzQXV0b1NhdmUpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gdHJ1ZSB0byBzaG93IFwiT3B0aW9uc1wiIG1lbnUgYW5kIHRvIGZhbHNlIHRvIGhpZGUgdGhlIG1lbnVcbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd09wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMua29TaG93T3B0aW9ucygpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd09wdGlvbnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmtvU2hvd09wdGlvbnModmFsdWUpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gZmFsc2UgdG8gY29tcGxldGVseSBoaWRlIHRoZSBQcm9wZXJ0eSBHcmlkIG9uIHRoZSByaWdodC4gSXQgYWxsb3dzIHRvIGVkaXQgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkIG9iamVjdCAocXVlc3Rpb24vcGFuZWwvcGFnZS9zdXJ2ZXkpLlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93UHJvcGVydHlHcmlkKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmtvU2hvd1Byb3BlcnR5R3JpZCgpICE9PSBmYWxzZSAmJlxuICAgICAgdGhpcy5rb1Nob3dQcm9wZXJ0eUdyaWQoKSAhPT0gXCJub25lXCJcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd1Byb3BlcnR5R3JpZCh2YWx1ZTogQ29udGFpbmVyTG9jYXRpb24pIHtcbiAgICBpZiAodGhpcy5rb1Nob3dQcm9wZXJ0eUdyaWQoKSAhPSB2YWx1ZSkge1xuICAgICAgdGhpcy5fbGVmdENvbnRhaW5lci5yZW1vdmUoXCJwcm9wZXJ0eS1ncmlkXCIpO1xuICAgICAgdGhpcy5fcmlnaHRDb250YWluZXIucmVtb3ZlKFwicHJvcGVydHktZ3JpZFwiKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJyaWdodFwiIHx8IHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuX3JpZ2h0Q29udGFpbmVyLnB1c2goXCJwcm9wZXJ0eS1ncmlkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlID09PSBcImxlZnRcIikge1xuICAgICAgICB0aGlzLl9sZWZ0Q29udGFpbmVyLnB1c2goXCJwcm9wZXJ0eS1ncmlkXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy5rb1Nob3dQcm9wZXJ0eUdyaWQodmFsdWUpO1xuICAgICAgdGhpcy5rb0hpZGVBZHZhbmNlZFNldHRpbmdzKCF0aGlzLnNob3dQcm9wZXJ0eUdyaWQpO1xuICAgICAgaWYgKHZhbHVlICE9PSBmYWxzZSAmJiB2YWx1ZSAhPT0gXCJub25lXCIgJiYgISF0aGlzLnNlbGVjdGVkRWxlbWVudCkge1xuICAgICAgICB0aGlzLnNldE5ld09ialRvUHJvcGVydHlHcmlkKHRoaXMuc2VsZWN0ZWRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byBcImFsd2F5c1wiLCBcIm5ldmVyXCIgb3IgXCJpZmVudGVyZWRcIi4gVGhlIFwiaWZlbnRlcmVkXCIgaXMgdGhlIGRlZmF1bHQgdmFsdWUgbWVhbnMgc2hvdyBzdXJ2ZXkgdGl0bGUgb25seSBpbiBjYXNlIG9mIHVzZXIgZW50ZXJlZCBpdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd1N1cnZleVRpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLmtvU2hvd1N1cnZleVRpdGxlKCk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93U3VydmV5VGl0bGUodmFsdWUpIHtcbiAgICB0aGlzLmtvU2hvd1N1cnZleVRpdGxlKHZhbHVlKTtcbiAgfVxuICAvKipcbiAgICogU2V0IGl0IHRvIGZhbHNlIGlmIHlvdSB3YW50IHRvIGRlbnkgdXNlciB0byBoaWRlL3Nob3cgc3VydmV5IHRpdGxlLlxuICAgKi9cbiAgcHVibGljIGdldCBhbGxvd0NvbnRyb2xTdXJ2ZXlUaXRsZVZpc2liaWxpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMua29BbGxvd0NvbnRyb2xTdXJ2ZXlUaXRsZVZpc2liaWxpdHkoKTtcbiAgfVxuICBwdWJsaWMgc2V0IGFsbG93Q29udHJvbFN1cnZleVRpdGxlVmlzaWJpbGl0eSh2YWx1ZSkge1xuICAgIHRoaXMua29BbGxvd0NvbnRyb2xTdXJ2ZXlUaXRsZVZpc2liaWxpdHkodmFsdWUpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gZmFsc2UgdG8gIGhpZGUgdGhlIHBhZ2VzIHRvb2xib3ggb24gdGhlIHRvcC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd1BhZ2VzVG9vbGJveCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5rb1Nob3dQYWdlc1Rvb2xib3goKSAhPT0gZmFsc2UgJiZcbiAgICAgIHRoaXMua29TaG93UGFnZXNUb29sYm94KCkgIT09IFwibm9uZVwiXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNob3dQYWdlc1Rvb2xib3godmFsdWU6IENvbnRhaW5lckxvY2F0aW9uKSB7XG4gICAgdGhpcy5rb1Nob3dQYWdlc1Rvb2xib3godmFsdWUpO1xuICB9XG4gIC8qKlxuICAgKiBZb3UgaGF2ZSB0byBzZXQgdGhpcyBwcm9wZXJ0eSB0byBmYWxzZSB2aWEgb3B0aW9ucyBvbiBjcmVhdGluZyBTdXJ2ZXlKUyBDcmVhdG9yIHRvIHVzZSBwb3B1cCBlZGl0b3IgYW5kIG9sZCBwcm9wZXJ0eSBncmlkLlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93RWxlbWVudEVkaXRvckFzUHJvcGVydHlHcmlkKCkge1xuICAgIHJldHVybiB0aGlzLmtvU2hvd0VsZW1lbnRFZGl0b3JBc1Byb3BlcnR5R3JpZCgpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gZmFsc2UgdG8gIGhpZGUgdGhlIHF1ZXN0aW9uIHRvb2xib3ggb24gdGhlIGxlZnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dUb29sYm94KCkge1xuICAgIHJldHVybiB0aGlzLmtvU2hvd1Rvb2xib3goKSAhPT0gZmFsc2UgJiYgdGhpcy5rb1Nob3dUb29sYm94KCkgIT09IFwibm9uZVwiO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd1Rvb2xib3godmFsdWU6IENvbnRhaW5lckxvY2F0aW9uKSB7XG4gICAgaWYgKHRoaXMua29TaG93VG9vbGJveCgpICE9IHZhbHVlKSB7XG4gICAgICB0aGlzLl9sZWZ0Q29udGFpbmVyLnJlbW92ZShcInRvb2xib3hcIik7XG4gICAgICB0aGlzLl9yaWdodENvbnRhaW5lci5yZW1vdmUoXCJ0b29sYm94XCIpO1xuICAgICAgaWYgKHZhbHVlID09PSBcImxlZnRcIiB8fCB2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLl9sZWZ0Q29udGFpbmVyLnB1c2goXCJ0b29sYm94XCIpO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlID09PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgdGhpcy5fcmlnaHRDb250YWluZXIucHVzaChcInRvb2xib3hcIik7XG4gICAgICB9XG4gICAgICB0aGlzLmtvU2hvd1Rvb2xib3godmFsdWUpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQERlcHJlY2F0ZWQgT2Jzb2xldGUgZnJvbSB2MS41LjFcbiAgICogU2V0IGl0IHRvIGZhbHNlIHRvIHRlbXBvcmFyeSBoaWRlIHRoZSBQcm9wZXJ0eSBHcmlkIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBjcmVhdG9yLiBVc2VyIHdpbGwgYmUgYWJsZSB0byBzaG93IHRoZSBQcm9wZXJ0eSBHcmlkIGFnYWluIHZpYSB0aGUgY2xpY2sgb24gdGhlICdBZHZhbmNlZCcgbGFiZWwuIEl0IGFsbG93cyB0byBlZGl0IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzZWxlY3RlZCBvYmplY3QgKHF1ZXN0aW9uL3BhbmVsL3BhZ2Uvc3VydmV5KS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGlkZUFkdmFuY2VkU2V0dGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMua29IaWRlQWR2YW5jZWRTZXR0aW5ncygpO1xuICB9XG4gIHB1YmxpYyBzZXQgaGlkZUFkdmFuY2VkU2V0dGluZ3ModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmtvSGlkZUFkdmFuY2VkU2V0dGluZ3ModmFsdWUpO1xuICAgIGlmIChcbiAgICAgIHRoaXMua29TaG93UHJvcGVydHlHcmlkKCkgPT09IFwicmlnaHRcIiB8fFxuICAgICAgdGhpcy5rb1Nob3dQcm9wZXJ0eUdyaWQoKSA9PT0gdHJ1ZVxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLl9yaWdodENvbnRhaW5lcigpLmxlbmd0aCA9PT0gMSB8fFxuICAgICAgICAodGhpcy5fcmlnaHRDb250YWluZXIoKS5sZW5ndGggPiAxICYmICF2YWx1ZSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLnJpZ2h0Q29udGFpbmVyVmlzaWJsZSghdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5rb1Nob3dQcm9wZXJ0eUdyaWQoKSA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5fbGVmdENvbnRhaW5lcigpLmxlbmd0aCA9PT0gMSB8fFxuICAgICAgICAodGhpcy5fbGVmdENvbnRhaW5lcigpLmxlbmd0aCA+IDEgJiYgIXZhbHVlKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubGVmdENvbnRhaW5lclZpc2libGUoIXZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfc2hvd0V4dGVybmFsSGVscExpbmsgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgZ2V0IHNob3dFeHRlcm5hbEhlbHBMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93RXh0ZXJuYWxIZWxwTGluaygpO1xuICB9XG4gIHNldCBzaG93RXh0ZXJuYWxIZWxwTGluayh2YWx1ZSkge1xuICAgIHRoaXMuX3Nob3dFeHRlcm5hbEhlbHBMaW5rKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9wbGFjZWhvbGRlckh0bWwgPSBrby5vYnNlcnZhYmxlKFwiXCIpO1xuICBnZXQgcGxhY2Vob2xkZXJIdG1sKCkge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlckh0bWwoKTtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXJIdG1sKHZhbHVlKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXJIdG1sKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGlkZUV4cHJlc3Npb25IZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGlkZUV4cHJlc3Npb25IZWFkZXJWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBpdCB0byBcImNhbmNlbFwiIG9yIFwiYXBwbHlcIiB0byBlbmFibGUgY2xvc2luZyBtb2RhbCB3aW5kb3dzIGJ5IGNsaWNraW5nIG91dHNpZGUgcG9wdXAuXG4gICAqIElmIFwiYXBwbHlcIiBpcyBzZXQsIHRoZW4gY2hhbmdlcyB3aWxsIGJlIHNhdmVkLCBvdGhlcndpc2Ugbm90LiBCeSBkZWZhdWx0IHZhbHVlIGlzIFwib2ZmXCJcbiAgICovXG4gIHB1YmxpYyBnZXQgY2xvc2VNb2RhbE91dHNpZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvc2VNb2RhbE91dHNpZGVWYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IGNsb3NlTW9kYWxPdXRzaWRlKHZhbHVlOiBcIm9mZlwiIHwgXCJjYW5jZWxcIiB8IFwiYXBwbHlcIikge1xuICAgIHRoaXMuY2xvc2VNb2RhbE91dHNpZGVWYWx1ZSA9IHZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gXCJzaW5nbGVcIiB0byBkZXNpZ24gc3VyZmFjZSBpbiBzaW5nbGUgcGFnZSBtb2RlLiBCeSBkZWZhdWx0IHZhbHVlIGlzIFwic3RhbmRhcmRcIlxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlRWRpdE1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnZUVkaXRNb2RlVmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfbGVmdENvbnRhaW5lcjoga28uT2JzZXJ2YWJsZUFycmF5PHN0cmluZz47XG4gIHB1YmxpYyBnZXQgbGVmdENvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbGVmdENvbnRhaW5lcigpO1xuICB9XG4gIHB1YmxpYyBsZWZ0Q29udGFpbmVyVmlzaWJsZSA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gIHB1YmxpYyBsZWZ0Q29udGFpbmVyQWN0aXZlSXRlbSA9IGtvLm9ic2VydmFibGU8c3RyaW5nPihcInRvb2xib3hcIik7XG4gIHByaXZhdGUgX3JpZ2h0Q29udGFpbmVyOiBrby5PYnNlcnZhYmxlQXJyYXk8c3RyaW5nPjtcbiAgcHVibGljIGdldCByaWdodENvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcmlnaHRDb250YWluZXIoKTtcbiAgfVxuICBwdWJsaWMgcmlnaHRDb250YWluZXJWaXNpYmxlID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcbiAgcHVibGljIHJpZ2h0Q29udGFpbmVyQWN0aXZlSXRlbSA9IGtvLm9ic2VydmFibGU8c3RyaW5nPihcInByb3BlcnR5LWdyaWRcIik7XG4gIHByaXZhdGUgX3RvcENvbnRhaW5lcjoga28uT2JzZXJ2YWJsZUFycmF5PHN0cmluZz47XG4gIHB1YmxpYyBsYXlvdXRDaGFuZ2VkSW5kaWNhdG9yID0ga28ub2JzZXJ2YWJsZSgwKTtcbiAgcHVibGljIGdldCB0b3BDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RvcENvbnRhaW5lcigpO1xuICB9XG4gIHB1YmxpYyBjYW5TaG93T2JqZWN0UHJvcGVydHkob2JqZWN0OiBhbnksIHByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFvYmplY3QgfHwgIW9iamVjdC5nZXRUeXBlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKEVkaXRhYmxlT2JqZWN0LmlzQ29weU9iamVjdChvYmplY3QpICYmIHByb3BlcnR5TmFtZSA9PT0gXCJwYWdlXCIpXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgb2JqZWN0LmdldFR5cGUoKSxcbiAgICAgIHByb3BlcnR5TmFtZVxuICAgICk7XG4gICAgcmV0dXJuIFN1cnZleUhlbHBlci5pc1Byb3BlcnR5VmlzaWJsZShvYmplY3QsIHByb3BlcnR5LCB0aGlzKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25DdXN0b21Tb3J0UHJvcGVydHlPYmplY3RQcm9wZXJ0eShcbiAgICBvYmplY3Q6IGFueSxcbiAgICBwcm9wZXJ0eTE6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgcHJvcGVydHkyOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4gICk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMub25DdXN0b21Tb3J0UHJvcGVydHkuaXNFbXB0eSkgcmV0dXJuIDA7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBvYmo6IG9iamVjdCxcbiAgICAgIHByb3BlcnR5MTogcHJvcGVydHkxLFxuICAgICAgcHJvcGVydHkyOiBwcm9wZXJ0eTIsXG4gICAgICByZXN1bHQ6IDAsXG4gICAgfTtcbiAgICB0aGlzLm9uQ3VzdG9tU29ydFByb3BlcnR5LmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnMucmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBwYWdlIGludG8gdGhlIGVkaXRpbmcgc3VydmV5LiBSZXR1cm5zIHRoZSBuZXcgY3JlYXRlZCBwYWdlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgYWRkUGFnZSA9ICgpOiBTdXJ2ZXkuUGFnZSA9PiB7XG4gICAgdmFyIG5hbWUgPSBTdXJ2ZXlIZWxwZXIuZ2V0TmV3UGFnZU5hbWUodGhpcy5zdXJ2ZXkucGFnZXMpO1xuICAgIHZhciBwYWdlID0gPFN1cnZleS5QYWdlPnRoaXMuc3VydmV5LmFkZE5ld1BhZ2UobmFtZSk7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBwYWdlO1xuICAgIHJldHVybiBwYWdlO1xuICB9O1xuICBwdWJsaWMgZGVsZXRlUGFnZSA9ICgpID0+IHtcbiAgICB0aGlzLmRlbGV0ZUN1cnJlbnRPYmplY3QoKTtcbiAgfTtcbiAgcHVibGljIG1vdmVQYWdlID0gKHBhZ2U6IFN1cnZleS5QYWdlTW9kZWwsIGluZGV4RnJvbTogbnVtYmVyKSA9PiB7XG4gICAgdmFyIGluZGV4VG8gPSB0aGlzLnN1cnZleS5wYWdlcy5pbmRleE9mKHBhZ2UpO1xuICAgIHRoaXMuc2V0TW9kaWZpZWQoe1xuICAgICAgdHlwZTogXCJQQUdFX01PVkVEXCIsXG4gICAgICBwYWdlOiBwYWdlLFxuICAgICAgaW5kZXhGcm9tOiBpbmRleEZyb20sXG4gICAgICBpbmRleFRvOiBpbmRleFRvLFxuICAgIH0pO1xuICB9O1xuICBwdWJsaWMgYWRkUGFnZVRvVUkocGFnZTogU3VydmV5LlBhZ2UpIHtcbiAgICB0aGlzLnN1cnZleU9iamVjdHMuYWRkUGFnZShwYWdlKTtcbiAgfVxuICBwcml2YXRlIGRvT25RdWVzdGlvbkFkZGVkKHF1ZXN0aW9uOiBTdXJ2ZXkuUXVlc3Rpb24sIHBhcmVudFBhbmVsOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuZHJhZ0Ryb3BIZWxwZXIuaXNNb3ZpbmcpIHtcbiAgICAgIHF1ZXN0aW9uLm5hbWUgPSB0aGlzLmdlbmVyYXRlVW5pcXVlTmFtZShxdWVzdGlvbiwgcXVlc3Rpb24ubmFtZSk7XG4gICAgICB2YXIgcGFnZSA9IHRoaXMuZ2V0UGFnZUJ5RWxlbWVudChxdWVzdGlvbik7XG4gICAgICB2YXIgb3B0aW9ucyA9IHsgcXVlc3Rpb246IHF1ZXN0aW9uLCBwYWdlOiBwYWdlIH07XG4gICAgICB0aGlzLmFkZGluZ09iamVjdCA9IHF1ZXN0aW9uO1xuICAgICAgdGhpcy5vblF1ZXN0aW9uQWRkZWQuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkaW5nT2JqZWN0ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHBhcmVudFBhbmVsLmVsZW1lbnRzLmluZGV4T2YocXVlc3Rpb24pICE9PSAtMSkge1xuICAgICAgdGhpcy5zdXJ2ZXlPYmplY3RzLmFkZEVsZW1lbnQocXVlc3Rpb24sIHBhcmVudFBhbmVsKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBkb09uRWxlbWVudFJlbW92ZWQoZWxlbWVudDogU3VydmV5LkJhc2UpIHtcbiAgICB0aGlzLnN1cnZleU9iamVjdHMucmVtb3ZlT2JqZWN0KGVsZW1lbnQpO1xuICB9XG4gIHByaXZhdGUgZG9PblBhbmVsQWRkZWQocGFuZWw6IFN1cnZleS5QYW5lbCwgcGFyZW50UGFuZWw6IGFueSkge1xuICAgIGlmICghdGhpcy5kcmFnRHJvcEhlbHBlci5pc01vdmluZykge1xuICAgICAgdmFyIHBhZ2UgPSB0aGlzLmdldFBhZ2VCeUVsZW1lbnQocGFuZWwpO1xuICAgICAgdmFyIG9wdGlvbnMgPSB7IHBhbmVsOiBwYW5lbCwgcGFnZTogcGFnZSB9O1xuICAgICAgdGhpcy5hZGRpbmdPYmplY3QgPSBwYW5lbDtcbiAgICAgIHRoaXMub25QYW5lbEFkZGVkLmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZGluZ09iamVjdCA9IG51bGw7XG4gICAgfVxuICAgIGlmIChwYXJlbnRQYW5lbC5lbGVtZW50cy5pbmRleE9mKHBhbmVsKSAhPT0gLTEpIHtcbiAgICAgIHRoaXMuc3VydmV5T2JqZWN0cy5hZGRFbGVtZW50KHBhbmVsLCBwYXJlbnRQYW5lbCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZG9PblBhZ2VBZGRlZChwYWdlOiBTdXJ2ZXkuUGFnZSkge1xuICAgIHZhciBvcHRpb25zID0geyBwYWdlOiBwYWdlIH07XG4gICAgdGhpcy5hZGRpbmdPYmplY3QgPSBwYWdlO1xuICAgIHRoaXMub25QYWdlQWRkZWQuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICB0aGlzLmFkZGluZ09iamVjdCA9IG51bGw7XG4gIH1cbiAgcHVibGljIHVwZGF0ZU9iamVjdFRleHRJblByb3BlcnR5R3JpZChvYmo6IFN1cnZleS5CYXNlKSB7XG4gICAgaWYgKCEhdGhpcy5zdXJ2ZXlPYmplY3RzKSB7XG4gICAgICB0aGlzLnN1cnZleU9iamVjdHMubmFtZUNoYW5nZWQob2JqKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBvblByb3BlcnR5Q2hhbmdlZChcbiAgICBvYmo6IGFueSxcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBvbGRWYWx1ZTogYW55XG4gICkge1xuICAgIHZhciB2YWx1ZSA9IG9ialtwcm9wZXJ0eS5uYW1lXTtcbiAgICBpZiAocHJvcGVydHkubmFtZSA9PSBcIm5hbWVcIikge1xuICAgICAgdGhpcy5vbkVsZW1lbnROYW1lQ2hhbmdlZC5maXJlKHRoaXMsIHtcbiAgICAgICAgb2JqOiBvYmosXG4gICAgICAgIG9sZE5hbWU6IG9sZFZhbHVlLFxuICAgICAgICBuZXdOYW1lOiB2YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9wZXJ0eS5uYW1lID09IFwibmFtZVwiIHx8XG4gICAgICBwcm9wZXJ0eS5uYW1lID09IFwidGl0bGVcIiB8fFxuICAgICAgIXRoaXMub25HZXRPYmplY3RUZXh0SW5Qcm9wZXJ0eUdyaWQuaXNFbXB0eSB8fFxuICAgICAgIXRoaXMub25HZXRPYmplY3REaXNwbGF5TmFtZS5pc0VtcHR5XG4gICAgKSB7XG4gICAgICB0aGlzLnN1cnZleU9iamVjdHMubmFtZUNoYW5nZWQob2JqKTtcbiAgICB9XG4gICAgaWYgKHByb3BlcnR5Lm5hbWUgPT09IFwibmFtZVwiKSB7XG4gICAgICB0aGlzLmRpcnR5UGFnZVVwZGF0ZSgpOyAvL1RPRE8gd2h5IHRoaXMgaXMgbmVlZCA/IChrbyBwcm9ibGVtKVxuICAgIH0gZWxzZSBpZiAocHJvcGVydHkubmFtZSA9PT0gXCJwYWdlXCIpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gdmFsdWU7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG9iajtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uUHJvcGVydHlDb3JyZWN0VmFsdWVCZWZvcmVTZXQoXG4gICAgb2JqOiBhbnksXG4gICAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgbmV3VmFsdWU6IGFueVxuICApIHtcbiAgICBpZiAocHJvcGVydHkubmFtZSA9PT0gXCJwYWdlXCIgJiYgdHlwZW9mIG5ld1ZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gb2JqLnN1cnZleS5nZXRQYWdlQnlOYW1lKG5ld1ZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld1ZhbHVlO1xuICB9XG4gIHByb3RlY3RlZCBkb1Byb3BlcnR5R3JpZENoYW5nZWQoKSB7XG4gICAgaWYgKCF0aGlzLnNob3dQcm9wZXJ0eUdyaWQpIHJldHVybjtcbiAgICB0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLm9iamVjdENoYW5nZWQoKTtcbiAgfVxuICBwcml2YXRlIHNldE5ld09ialRvUHJvcGVydHlHcmlkKG5ld09iajogYW55KSB7XG4gICAgaWYgKCF0aGlzLnNob3dQcm9wZXJ0eUdyaWQpIHJldHVybjtcbiAgICB0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLnNlbGVjdGVkT2JqZWN0ID0gbmV3T2JqO1xuICB9XG4gIHByb3RlY3RlZCBjYW5Td2l0Y2hWaWV3VHlwZShuZXdUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAobmV3VHlwZSAmJiB0aGlzLmtvVmlld1R5cGUoKSA9PSBuZXdUeXBlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKFxuICAgICAgKHRoaXMua29WaWV3VHlwZSgpID09IFwidHJhbnNsYXRpb25cIiB8fCB0aGlzLmtvVmlld1R5cGUoKSA9PSBcImxvZ2ljXCIpICYmXG4gICAgICBuZXdUeXBlID09IFwiZGVzaWduZXJcIlxuICAgICkge1xuICAgICAgdGhpcy5zdXJ2ZXkucmVuZGVyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmtvVmlld1R5cGUoKSAhPSBcImVkaXRvclwiKSByZXR1cm4gdHJ1ZTtcbiAgICB2YXIgdGV4dFdvcmtlciA9IG5ldyBTdXJ2ZXlUZXh0V29ya2VyKHRoaXMudGV4dCk7XG4gICAgaWYgKCF0ZXh0V29ya2VyLmlzSnNvbkNvcnJlY3QpIHtcbiAgICAgIHRoaXMubm90aWZ5KHRoaXMuZ2V0TG9jU3RyaW5nKFwiZWQuY29ycmVjdEpTT05cIikpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAhdGhpcy5yZWFkT25seSAmJlxuICAgICAgISF0aGlzLmdldFN1cnZleUpTT05UZXh0Q2FsbGJhY2sgJiZcbiAgICAgIHRoaXMuZ2V0U3VydmV5SlNPTlRleHRDYWxsYmFjaygpLmlzTW9kaWZpZWRcbiAgICApIHtcbiAgICAgIHRoaXMuaW5pdFN1cnZleShuZXcgU3VydmV5Lkpzb25PYmplY3QoKS50b0pzb25PYmplY3QodGV4dFdvcmtlci5zdXJ2ZXkpKTtcbiAgICAgIHRoaXMuc2V0TW9kaWZpZWQoeyB0eXBlOiBcIlZJRVdfVFlQRV9DSEFOR0VEXCIsIG5ld1R5cGU6IG5ld1R5cGUgfSk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNob3cgdmlldyBuYW1lLiBUaGUgcG9zc2libGUgcmV0dXJucyB2YWx1ZXMgYXJlOlxuICAgKiBcImRlc2lnbmVyXCIsIFwiZWRpdG9yXCIsIFwidGVzdFwiLCBcImVtYmVkXCIsIFwibG9naWNcIiBhbmQgXCJ0cmFuc2xhdGlvblwiLlxuICAgKiBAc2VlIHNob3dEZXNpZ25lclxuICAgKiBAc2VlIHNob3dUZXN0U3VydmV5XG4gICAqIEBzZWUgc2hvd0pzb25FZGl0b3JcbiAgICogQHNlZSBzaG93TG9naWNFZGl0b3JcbiAgICogQHNlZSBzaG93VHJhbnNsYXRpb25FZGl0b3JcbiAgICogQHNlZSBzaG93RW1iZWRFZGl0b3JcbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd2luZ1ZpZXdOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMua29WaWV3VHlwZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBcIlN1cnZleSBEZXNpZ25lclwiIHRhYiBhY3RpdmUuXG4gICAqL1xuICBwdWJsaWMgc2hvd0Rlc2lnbmVyKCkge1xuICAgIHRoaXMubWFrZU5ld1ZpZXdBY3RpdmUoXCJkZXNpZ25lclwiKTtcbiAgfVxuICAvKipcbiAgICogTWFrZSBhIFwiSlNPTiBFZGl0b3JcIiB0YWIgYWN0aXZlLlxuICAgKi9cbiAgcHVibGljIHNob3dKc29uRWRpdG9yKCkge1xuICAgIHRoaXMubWFrZU5ld1ZpZXdBY3RpdmUoXCJlZGl0b3JcIik7XG4gIH1cbiAgLyoqXG4gICAqIE1ha2UgYSBcIlRlc3QgU3VydmV5XCIgdGFiIGFjdGl2ZS5cbiAgICovXG4gIHB1YmxpYyBzaG93VGVzdFN1cnZleSgpIHtcbiAgICB0aGlzLm1ha2VOZXdWaWV3QWN0aXZlKFwidGVzdFwiKTtcbiAgfVxuICAvKipcbiAgICogTWFrZSBhIFwiRW1iZWQgU3VydmV5XCIgdGFiIGFjdGl2ZS5cbiAgICovXG4gIHB1YmxpYyBzaG93RW1iZWRFZGl0b3IoKSB7XG4gICAgdGhpcy5tYWtlTmV3Vmlld0FjdGl2ZShcImVtYmVkXCIpO1xuICB9XG4gIC8qKlxuICAgKiBNYWtlIGEgXCJUcmFuc2xhdGlvblwiIHRhYiBhY3RpdmUuXG4gICAqL1xuICBwdWJsaWMgc2hvd1RyYW5zbGF0aW9uRWRpdG9yKCkge1xuICAgIHRoaXMubWFrZU5ld1ZpZXdBY3RpdmUoXCJ0cmFuc2xhdGlvblwiKTtcbiAgfVxuICAvKipcbiAgICogTWFrZSBhIFwiTG9naWNcIiB0YWIgYWN0aXZlLlxuICAgKi9cbiAgcHVibGljIHNob3dMb2dpY0VkaXRvcigpIHtcbiAgICBpZiAoIXRoaXMuY2FuU3dpdGNoVmlld1R5cGUoXCJsb2dpY1wiKSkgcmV0dXJuO1xuICAgIHRoaXMua29WaWV3VHlwZShcImxvZ2ljXCIpO1xuICB9XG4gIHByaXZhdGUgZ2V0UGFnZUJ5RWxlbWVudChvYmo6IFN1cnZleS5CYXNlKTogU3VydmV5LlBhZ2Uge1xuICAgIHZhciBwYWdlID0gdGhpcy5zdXJ2ZXkuZ2V0UGFnZUJ5RWxlbWVudCg8U3VydmV5LklFbGVtZW50Pig8YW55Pm9iaikpO1xuICAgIGlmIChwYWdlKSByZXR1cm4gPFN1cnZleS5QYWdlPnBhZ2U7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5T2JqZWN0cy5nZXRTZWxlY3RlZE9iamVjdFBhZ2Uob2JqKTtcbiAgfVxuICAvKipcbiAgICogR2V0IG9yIHNldCB0aGUgY3VycmVudCBzZWxlY3RlZCBvYmplY3QgaW4gdGhlIENyZWF0b3IuIEl0IGNhbiBiZSBhIHF1ZXN0aW9uLCBwYW5lbCwgcGFnZSBvciBzdXJ2ZXkgaXRzZWxmLlxuICAgKi9cbiAgcHVibGljIGdldCBzZWxlY3RlZEVsZW1lbnQoKTogYW55IHtcbiAgICByZXR1cm4gISF0aGlzLmtvU2VsZWN0ZWRPYmplY3QoKSA/IHRoaXMua29TZWxlY3RlZE9iamVjdCgpLnZhbHVlIDogbnVsbDtcbiAgfVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkRWxlbWVudCh2YWw6IGFueSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRWxlbWVudCAhPT0gdmFsKSB7XG4gICAgICB0aGlzLnN1cnZleU9iamVjdHMuc2VsZWN0T2JqZWN0KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEVsZW1lbnQoZWxlbWVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBlbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGZvciBlcnJvcnMgaW4gcHJvcGVydHkgZ3JpZCBhbmQgYWRvcm5lcnMgb2YgdGhlIHNlbGVjdGVkIGVsZW1lbnRzLlxuICAgKiBSZXR1cm5zIHRydWUgaWYgc2VsZWN0ZWQgZWxlbWVudCBpcyBudWxsIG9yIHRoZXJlIGlzIG5vIGVycm9ycy5cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZVNlbGVjdGVkRWxlbWVudCgpOiBib29sZWFuIHtcbiAgICB2YXIgaXNWYWxpZCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRWxlbWVudCkgcmV0dXJuIGlzVmFsaWQ7XG4gICAgaWYgKCEhdGhpcy5wcm9wZXJ0eUdyaWRPYmplY3RFZGl0b3JNb2RlbCkge1xuICAgICAgaXNWYWxpZCA9ICF0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLmhhc0Vycm9ycygpO1xuICAgIH1cbiAgICB2YXIgb3B0aW9ucyA9IHsgZXJyb3JzOiBbXSB9O1xuICAgIHRoaXMub25WYWxpZGF0ZVNlbGVjdGVkRWxlbWVudC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBpc1ZhbGlkICYmIG9wdGlvbnMuZXJyb3JzLmxlbmd0aCA9PSAwO1xuICB9XG4gIHByaXZhdGUgc2VsZWN0ZWRPYmplY3RDaGFuZ2VkKG9iajogU3VydmV5LkJhc2UpIHtcbiAgICB2YXIgb3B0aW9ucyA9IHsgbmV3U2VsZWN0ZWRFbGVtZW50OiBvYmogfTtcbiAgICB0aGlzLm9uU2VsZWN0ZWRFbGVtZW50Q2hhbmdpbmcuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICBpZiAob2JqICE9IG9wdGlvbnMubmV3U2VsZWN0ZWRFbGVtZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG9wdGlvbnMubmV3U2VsZWN0ZWRFbGVtZW50O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgY2FuRGVsZXRlT2JqZWN0ID0gZmFsc2U7XG4gICAgdGhpcy5zZXROZXdPYmpUb1Byb3BlcnR5R3JpZChvYmopO1xuICAgIHZhciBvYmpUeXBlID0gU3VydmV5SGVscGVyLmdldE9iamVjdFR5cGUob2JqKTtcbiAgICBpZiAob2JqVHlwZSA9PSBPYmpUeXBlLlBhZ2UpIHtcbiAgICAgIHRoaXMuc3VydmV5LmN1cnJlbnRQYWdlID0gPFN1cnZleS5QYWdlPm9iajtcbiAgICAgIGNhbkRlbGV0ZU9iamVjdCA9IHRoaXMuc3VydmV5LnBhZ2VzLmxlbmd0aCA+IDE7XG4gICAgfVxuICAgIGlmIChvYmpUeXBlID09IE9ialR5cGUuUXVlc3Rpb24gfHwgb2JqVHlwZSA9PSBPYmpUeXBlLlBhbmVsKSB7XG4gICAgICB0aGlzLnN1cnZleS5zZWxlY3RlZEVsZW1lbnQgPSBvYmo7XG4gICAgICBjYW5EZWxldGVPYmplY3QgPSB0cnVlO1xuICAgICAgdGhpcy5zdXJ2ZXkuY3VycmVudFBhZ2UgPSB0aGlzLmdldFBhZ2VCeUVsZW1lbnQob2JqKTtcbiAgICAgIHZhciBpZCA9IG9ialtcImlkXCJdO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnJlbmRlcmVkRWxlbWVudCAmJlxuICAgICAgICBpZCAmJlxuICAgICAgICB0aGlzLnN1cnZleS5jdXJyZW50UGFnZSAmJlxuICAgICAgICAhb2JqW1wic2VsZWN0ZWRPbkNsaWNrXCJdXG4gICAgICApIHtcbiAgICAgICAgbGV0IGVsID0gPEhUTUxFbGVtZW50PnRoaXMucmVuZGVyZWRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjXCIgKyBpZCk7XG4gICAgICAgIFN1cnZleUhlbHBlci5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKGVsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNhYmxlU3VydmV5U2VsZWN0ZWRFbGVtZW50Q2hhbmdpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5zdXJ2ZXkuc2VsZWN0ZWRFbGVtZW50ID0gbnVsbDtcbiAgICAgIHRoaXMuZGlzYWJsZVN1cnZleVNlbGVjdGVkRWxlbWVudENoYW5naW5nID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMua29DYW5EZWxldGVPYmplY3QoY2FuRGVsZXRlT2JqZWN0KTtcbiAgICB0aGlzLm9uU2VsZWN0ZWRFbGVtZW50Q2hhbmdlZC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIHByaXZhdGUgYXBwbHlCaW5kaW5nKCkge1xuICAgIGlmICh0aGlzLnJlbmRlcmVkRWxlbWVudCA9PSBudWxsKSByZXR1cm47XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGtvLmNsZWFuTm9kZSh0aGlzLnJlbmRlcmVkRWxlbWVudCk7XG4gICAga28uYXBwbHlCaW5kaW5ncyhcbiAgICAgIHRoaXMsXG4gICAgICB0aGlzLnJlbmRlcmVkRWxlbWVudCxcbiAgICAgIChjb250ZXh0OiBhbnkpID0+IChjb250ZXh0LiRjcmVhdG9yID0gdGhpcylcbiAgICApO1xuICAgIGtvLnRhc2tzLnJ1bkVhcmx5KCk7XG4gICAgdmFyIHN1cnZleWpzID0gPEhUTUxFbGVtZW50PihcbiAgICAgIHRoaXMucmVuZGVyZWRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc3ZkX3N1cnZleWpzX2Rlc2lnbmVyX2NvbnRhaW5lclwiKVxuICAgICk7XG4gICAgaWYgKHN1cnZleWpzKSB7XG4gICAgICBzdXJ2ZXlqcy5vbmtleWRvd24gPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoc2VsZi5yZWFkT25seSkgcmV0dXJuO1xuICAgICAgICBpZiAoIWUpIHJldHVybjtcbiAgICAgICAgLy8gaWYgKGUua2V5Q29kZSA9PSA0Nikgc2VsZi5kZWxldGVRdWVzdGlvbigpO1xuICAgICAgICBpZiAoZS5rZXlDb2RlID09IDM4IHx8IGUua2V5Q29kZSA9PSA0MCkge1xuICAgICAgICAgIHNlbGYuc2VsZWN0UXVlc3Rpb24oZS5rZXlDb2RlID09IDM4KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBzZWxmLnJlbmRlcmVkRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnN2ZF9jb250YWluZXJcIik7XG4gICAgY29udGFpbmVyW1wib25rZXlkb3duXCJdID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHNlbGYub25LZXlEb3duSGFuZGxlcihlLCBzZWxmKTtcbiAgICB9O1xuICAgIHRoaXMuaW5pdFN1cnZleU9uUmVuZGVyKCk7XG4gICAgdGhpcy5zZXRVbmRvUmVkb0N1cnJlbnRTdGF0ZSh0cnVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgaW5pdFN1cnZleU9uUmVuZGVyKCkge1xuICAgIHZhciBqc29uID0gdGhpcy5KU09OO1xuICAgIGlmICghanNvbiB8fCBPYmplY3Qua2V5cyhqc29uKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGpzb24gPSB0aGlzLmdldERlZmF1bHRTdXJ2ZXlKc29uKCk7XG4gICAgfVxuICAgIHRoaXMuaW5pdFN1cnZleShqc29uKTtcbiAgfVxuICBwcml2YXRlIGdldERlZmF1bHRTdXJ2ZXlKc29uKCk6IGFueSB7XG4gICAgdmFyIGpzb24gPSBuZXcgU3VydmV5SlNPTjUoKS5wYXJzZShTdXJ2ZXlDcmVhdG9yLmRlZmF1bHROZXdTdXJ2ZXlUZXh0KTtcbiAgICBpZiAoXG4gICAgICBqc29uW1wicGFnZXNcIl0gJiZcbiAgICAgIGpzb25bXCJwYWdlc1wiXVtcImxlbmd0aFwiXSA+IDAgJiZcbiAgICAgIGpzb25bXCJwYWdlc1wiXVswXVtcIm5hbWVcIl1cbiAgICApIHtcbiAgICAgIGpzb25bXCJwYWdlc1wiXVswXVtcIm5hbWVcIl0gPVxuICAgICAgICBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiZWQubmV3UGFnZU5hbWVcIikgKyBcIjFcIjtcbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIG1ldGhvZCB0byBjcmVhdGUga2V5Ym9hcmQgc2hvcnRjdXRzXG4gICAqIEBwYXJhbSBlIGtleWRvd24gZXZlbnRcbiAgICogQHBhcmFtIGNyZWF0b3IgY3JlYXRvciBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIG9uS2V5RG93bkhhbmRsZXIoZSwgY3JlYXRvcikge1xuICAgIGNvbnN0IGV2dG9iajogS2V5Ym9hcmRFdmVudCA9IHdpbmRvdy5ldmVudCA/IGV2ZW50IDogZTtcbiAgICBjb25zdCBjb21tYW5kcyA9IGNyZWF0b3IuY29tbWFuZHM7XG4gICAgbGV0IGNvbW1hbmQsIGhvdEtleTtcbiAgICBPYmplY3Qua2V5cyhjcmVhdG9yLmNvbW1hbmRzIHx8IHt9KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbW1hbmQgPSBjb21tYW5kc1trZXldO1xuICAgICAgaG90S2V5ID0gZXZ0b2JqLm1ldGFLZXkgPyBjb21tYW5kLm1hY09zSG90a2V5IDogY29tbWFuZC5ob3RLZXk7XG4gICAgICBpZiAoIWhvdEtleSkgcmV0dXJuO1xuXG4gICAgICBpZiAoISFob3RLZXkuY3RybEtleSAhPT0gZXZ0b2JqLmN0cmxLZXkpIHJldHVybjtcbiAgICAgIGlmICghIWhvdEtleS5zaGlmdEtleSAhPT0gZXZ0b2JqLnNoaWZ0S2V5KSByZXR1cm47XG4gICAgICBpZiAoaG90S2V5LmtleUNvZGUgIT09IGV2dG9iai5rZXlDb2RlKSByZXR1cm47XG5cbiAgICAgIGNyZWF0b3IuZXhlY3V0ZShjb21tYW5kKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlKGNvbW1hbmQpIHtcbiAgICBjb25zdCBuYW1lID0gY29tbWFuZC5uYW1lO1xuICAgIGlmICghY29tbWFuZCB8fCAhbmFtZSB8fCAhdGhpc1tuYW1lXSB8fCB0eXBlb2YgdGhpc1tuYW1lXSAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgcmV0dXJuO1xuICAgIHJldHVybiB0aGlzW25hbWVdLmFwcGx5KHRoaXMsIFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSk7XG4gIH1cbiAgcHJpdmF0ZSBhZGRpbmdPYmplY3Q6IFN1cnZleS5CYXNlO1xuICBwcml2YXRlIG9uU3VydmV5UHJvcGVydHlWYWx1ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkVmFsdWU6IGFueSxcbiAgICBuZXdWYWx1ZTogYW55LFxuICAgIHNlbmRlcjogU3VydmV5LkJhc2UsXG4gICAgYXJyYXlDaGFuZ2VzOiBTdXJ2ZXkuQXJyYXlDaGFuZ2VzXG4gICkge1xuICAgIGlmICh0aGlzLmFkZGluZ09iamVjdCA9PSBzZW5kZXIpIHJldHVybjtcbiAgICB0aGlzLnVuZG9SZWRvTWFuYWdlci5zdGFydFRyYW5zYWN0aW9uKG5hbWUgKyBcIiBjaGFuZ2VkXCIpO1xuICAgIHRoaXMudW5kb1JlZG9NYW5hZ2VyLm9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgICBuYW1lLFxuICAgICAgb2xkVmFsdWUsXG4gICAgICBuZXdWYWx1ZSxcbiAgICAgIHNlbmRlcixcbiAgICAgIGFycmF5Q2hhbmdlc1xuICAgICk7XG4gICAgdGhpcy51cGRhdGVDb25kaXRpb25zT25RdWVzdGlvbk5hbWVDaGFuZ2VkKHNlbmRlciwgbmFtZSwgb2xkVmFsdWUpO1xuICAgIHRoaXMudW5kb1JlZG9NYW5hZ2VyLnN0b3BUcmFuc2FjdGlvbigpO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlQ29uZGl0aW9uc09uUXVlc3Rpb25OYW1lQ2hhbmdlZChcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgIG9sZFZhbHVlOiBhbnlcbiAgKSB7XG4gICAgaWYgKCF0aGlzLmlzT2JqUXVlc3Rpb24ob2JqKSkgcmV0dXJuO1xuICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09IFwibmFtZVwiICYmICFvYmpbXCJ2YWx1ZU5hbWVcIl0pIHtcbiAgICAgIHRoaXMudXBkYXRlQ29uZGl0aW9ucyhvbGRWYWx1ZSwgb2JqW1wibmFtZVwiXSk7XG4gICAgfVxuICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09IFwidmFsdWVOYW1lXCIpIHtcbiAgICAgIHZhciBvbGROYW1lID0gISFvbGRWYWx1ZSA/IG9sZFZhbHVlIDogb2JqW1wibmFtZVwiXTtcbiAgICAgIHZhciBuZXdOYW1lID0gISFvYmpbXCJ2YWx1ZU5hbWVcIl0gPyBvYmpbXCJ2YWx1ZU5hbWVcIl0gOiBvYmpbXCJuYW1lXCJdO1xuICAgICAgdGhpcy51cGRhdGVDb25kaXRpb25zKG9sZE5hbWUsIG5ld05hbWUpO1xuICAgIH1cbiAgICBpZiAocHJvcGVydHlOYW1lID09PSBcIm5hbWVcIiAmJiBvYmouaXNEZXNjZW5kYW50T2YoXCJzZWxlY3RiYXNlXCIpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNob2ljZXNGcm9tUXVlc3Rpb25PbkNvbHVtbk5hbWVDaGFuZ2VkKG9sZFZhbHVlLCBvYmpbXCJuYW1lXCJdKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpc09ialF1ZXN0aW9uKG9iajogU3VydmV5LkJhc2UpIHtcbiAgICB2YXIgY2xhc3NJbmZvID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZENsYXNzKG9iai5nZXRUeXBlKCkpO1xuXG4gICAgd2hpbGUgKCEhY2xhc3NJbmZvICYmICEhY2xhc3NJbmZvLnBhcmVudE5hbWUpIHtcbiAgICAgIGlmIChjbGFzc0luZm8ubmFtZSA9PT0gXCJxdWVzdGlvblwiKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGNsYXNzSW5mbyA9IFN1cnZleS5TZXJpYWxpemVyLmZpbmRDbGFzcyhjbGFzc0luZm8ucGFyZW50TmFtZSk7XG4gICAgfVxuICAgIHJldHVybiAhIWNsYXNzSW5mbyAmJiBjbGFzc0luZm8ubmFtZSA9PT0gXCJxdWVzdGlvblwiO1xuICB9XG4gIHByaXZhdGUgZGlzYWJsZVN1cnZleVNlbGVjdGVkRWxlbWVudENoYW5naW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaW5pdFN1cnZleShqc29uOiBhbnkpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIG5ld1N1cnZleSA9IDxTdXJ2ZXlGb3JEZXNpZ25lcj4oXG4gICAgICB0aGlzLmNyZWF0ZVN1cnZleSh7fSwgXCJkZXNpZ25lclwiLCBTdXJ2ZXlGb3JEZXNpZ25lcilcbiAgICApO1xuICAgIHRoaXMudW5kb1JlZG9NYW5hZ2VyID0gbmV3IFVuZG9SZWRvTWFuYWdlcigpO1xuICAgIG5ld1N1cnZleS5nZXRFZGl0b3IgPSAoKSA9PiBzZWxmO1xuICAgIGtvLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgIHZhciBvcHRpb25WYWx1ZSA9IHRoaXMuc2hvd1N1cnZleVRpdGxlO1xuICAgICAgdmFyIHNob3dWYWx1ZSA9IG9wdGlvblZhbHVlICE9PSBcIm5ldmVyXCI7XG4gICAgICBpZiAoc2hvd1ZhbHVlKSB7XG4gICAgICAgIHNob3dWYWx1ZSA9XG4gICAgICAgICAgb3B0aW9uVmFsdWUgPT09IFwiYWx3YXlzXCIgfHxcbiAgICAgICAgICAob3B0aW9uVmFsdWUgPT09IFwiaWZlbnRlcmVkXCIgJiZcbiAgICAgICAgICAgIG5ld1N1cnZleS5sb2NUaXRsZVtcImtvUmVuZGVyZWRIdG1sXCJdKCkpIHx8XG4gICAgICAgICAgbmV3U3VydmV5LmxvY0xvZ29bXCJrb1JlbmRlcmVkSHRtbFwiXSgpO1xuICAgICAgfVxuICAgICAgbmV3U3VydmV5LmtvU2hvd0hlYWRlcihzaG93VmFsdWUpO1xuICAgIH0pO1xuICAgIGtvLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgIG5ld1N1cnZleS5pc1JlYWRPbmx5KHRoaXMucmVhZE9ubHkpO1xuICAgIH0pO1xuICAgIG5ld1N1cnZleS5lbXB0eVBhZ2VUZW1wbGF0ZSA9IFwic2UtZW1wdHktcGxhY2Vob2xkZXJcIjtcbiAgICBuZXdTdXJ2ZXkuZW1wdHlQYWdlVGVtcGxhdGVEYXRhID0gdGhpcztcbiAgICBuZXdTdXJ2ZXkub25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZENhbGxiYWNrID0gKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkVmFsdWU6IGFueSxcbiAgICAgIG5ld1ZhbHVlOiBhbnksXG4gICAgICBzZW5kZXI6IFN1cnZleS5CYXNlLFxuICAgICAgYXJyYXlDaGFuZ2VzOiBTdXJ2ZXkuQXJyYXlDaGFuZ2VzXG4gICAgKSA9PiB7XG4gICAgICB0aGlzLm9uU3VydmV5UHJvcGVydHlWYWx1ZUNoYW5nZWRDYWxsYmFjayhcbiAgICAgICAgbmFtZSxcbiAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgIG5ld1ZhbHVlLFxuICAgICAgICBzZW5kZXIsXG4gICAgICAgIGFycmF5Q2hhbmdlc1xuICAgICAgKTtcbiAgICB9O1xuICAgIHRoaXMudW5kb1JlZG9NYW5hZ2VyLmNhblVuZG9SZWRvQ2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUtvQ2FuVW5kb1JlZG8oKTtcbiAgICB9O1xuICAgIHRoaXMudW5kb1JlZG9NYW5hZ2VyLmNoYW5nZXNGaW5pc2hlZENhbGxiYWNrID0gKFxuICAgICAgY2hhbmdlczogSVVuZG9SZWRvQ2hhbmdlXG4gICAgKSA9PiB7XG4gICAgICB0aGlzLnNldE1vZGlmaWVkKHtcbiAgICAgICAgdHlwZTogXCJQUk9QRVJUWV9DSEFOR0VEXCIsXG4gICAgICAgIG5hbWU6IGNoYW5nZXMucHJvcGVydHlOYW1lLFxuICAgICAgICB0YXJnZXQ6IGNoYW5nZXMub2JqZWN0LFxuICAgICAgICBvbGRWYWx1ZTogY2hhbmdlcy5vbGRWYWx1ZSxcbiAgICAgICAgbmV3VmFsdWU6IGNoYW5nZXMubmV3VmFsdWUsXG4gICAgICB9KTtcbiAgICB9O1xuICAgIHRoaXMudXBkYXRlS29DYW5VbmRvUmVkbygpO1xuICAgIHRoaXMuZHJhZ0Ryb3BIZWxwZXIgPSBuZXcgRHJhZ0Ryb3BIZWxwZXIoXG4gICAgICA8U3VydmV5LklTdXJ2ZXk+bmV3U3VydmV5LFxuICAgICAgZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgc2VsZi5zZXRNb2RpZmllZChvcHRpb25zKTtcbiAgICAgIH0sXG4gICAgICB0aGlzLnJlbmRlcmVkRWxlbWVudCxcbiAgICAgIHRoaXMudW5kb1JlZG9NYW5hZ2VyXG4gICAgKTtcbiAgICB0aGlzLmRyYWdEcm9wSGVscGVyLnJlYWRPbmx5ID0gdGhpcy5yZWFkT25seTtcbiAgICBuZXdTdXJ2ZXkuc2V0SnNvbk9iamVjdChqc29uKTtcbiAgICBpZiAobmV3U3VydmV5LmlzRW1wdHkpIHtcbiAgICAgIG5ld1N1cnZleS5zZXRKc29uT2JqZWN0KHRoaXMuZ2V0RGVmYXVsdFN1cnZleUpzb24oKSk7XG4gICAgfVxuICAgIFN1cnZleS5zdXJ2ZXlMb2NhbGl6YXRpb24uY3VycmVudExvY2FsZSA9IG5ld1N1cnZleVtcImxvY2FsZVwiXTtcbiAgICBuZXdTdXJ2ZXkuZHJhZ0Ryb3BIZWxwZXIgPSB0aGlzLmRyYWdEcm9wSGVscGVyO1xuICAgIG5ld1N1cnZleS5vblVwZGF0ZUVsZW1lbnRBbGxvd2luZ09wdGlvbnMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgc2VsZi5vbkVsZW1lbnRBbGxvd09wZXJhdGlvbnMuZmlyZShzZWxmLCBvcHRpb25zKTtcbiAgICB9O1xuICAgIHZhciBhZnRlclJlbmRlckVsZW1lbnRIYW5kbGVyID0gY3JlYXRlQWZ0ZXJSZW5kZXJIYW5kbGVyKHRoaXMsIG5ld1N1cnZleSk7XG4gICAgdmFyIGFmdGVyUmVuZGVyRWxlbWVudFBhZ2VIYW5kbGVyID0gY3JlYXRlQWZ0ZXJSZW5kZXJQYWdlSGFuZGxlcihcbiAgICAgIHRoaXMsXG4gICAgICBuZXdTdXJ2ZXlcbiAgICApO1xuICAgIHZhciBhZnRlclJlbmRlckhlYWRlckhhbmRsZXIgPSBjcmVhdGVBZnRlclJlbmRlckhlYWRlckhhbmRsZXIoXG4gICAgICB0aGlzLFxuICAgICAgbmV3U3VydmV5XG4gICAgKTtcbiAgICBuZXdTdXJ2ZXkub25BZnRlclJlbmRlclBhZ2UuYWRkKChzZW5kZXIsIG9wdGlvbnMpID0+IHtcbiAgICAgIGFmdGVyUmVuZGVyRWxlbWVudFBhZ2VIYW5kbGVyKG9wdGlvbnMuaHRtbEVsZW1lbnQsIG9wdGlvbnMucGFnZSk7XG4gICAgfSk7XG4gICAgbmV3U3VydmV5Lm9uQWZ0ZXJSZW5kZXJRdWVzdGlvbi5hZGQoKHNlbmRlciwgb3B0aW9ucykgPT4ge1xuICAgICAgYWZ0ZXJSZW5kZXJFbGVtZW50SGFuZGxlcihcbiAgICAgICAgb3B0aW9ucy5odG1sRWxlbWVudCxcbiAgICAgICAgb3B0aW9ucy5xdWVzdGlvbixcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIHRydWVcbiAgICAgICk7XG4gICAgfSk7XG4gICAgbmV3U3VydmV5Lm9uQWZ0ZXJSZW5kZXJQYW5lbC5hZGQoKHNlbmRlciwgb3B0aW9ucykgPT4ge1xuICAgICAgaWYgKG9wdGlvbnMucGFuZWwuZ2V0VHlwZSgpID09PSBcImZsb3dwYW5lbFwiKSB7XG4gICAgICAgIGFmdGVyUmVuZGVyRWxlbWVudEhhbmRsZXIoXG4gICAgICAgICAgb3B0aW9ucy5odG1sRWxlbWVudCxcbiAgICAgICAgICBvcHRpb25zLnBhbmVsLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICAgKDxhbnk+b3B0aW9ucy5wYW5lbCkua29Jc0RyYWdnaW5nKClcbiAgICAgICAgKTtcbiAgICAgICAgdmFyIHBubEVsID0gb3B0aW9ucy5odG1sRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZi1wYW5lbFwiKTtcbiAgICAgICAgaWYgKCEhcG5sRWwpIHtcbiAgICAgICAgICBpZiAoISFwbmxFbC5jbGFzc05hbWUpIHtcbiAgICAgICAgICAgIHBubEVsLmNsYXNzTmFtZSArPSBcIiBzdmRfZmxvd3BhbmVsXCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBubEVsLmNsYXNzTmFtZSA9IFwic3ZkX2Zsb3dwYW5lbFwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKDxhbnk+b3B0aW9ucy5wYW5lbCkuZW1wdHlFbGVtZW50ID0gYWRkRW1wdHlQYW5lbEVsZW1lbnQoXG4gICAgICAgICAgbmV3U3VydmV5LFxuICAgICAgICAgIG9wdGlvbnMuaHRtbEVsZW1lbnQsXG4gICAgICAgICAgKDxhbnk+b3B0aW9ucy5wYW5lbCkuZHJhZ0Ryb3BIZWxwZXIoKSxcbiAgICAgICAgICBvcHRpb25zLnBhbmVsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChvcHRpb25zLnBhbmVsLmVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAoPGFueT5vcHRpb25zLnBhbmVsKS5lbXB0eUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgICB9XG4gICAgICAgIGFmdGVyUmVuZGVyRWxlbWVudEhhbmRsZXIoXG4gICAgICAgICAgb3B0aW9ucy5odG1sRWxlbWVudCxcbiAgICAgICAgICBvcHRpb25zLnBhbmVsLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICAgKDxhbnk+b3B0aW9ucy5wYW5lbCkua29Jc0RyYWdnaW5nKClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBuZXdTdXJ2ZXkub25BZnRlclJlbmRlckhlYWRlci5hZGQoKHNlbmRlciwgb3B0aW9ucykgPT4ge1xuICAgICAgYWZ0ZXJSZW5kZXJIZWFkZXJIYW5kbGVyKG9wdGlvbnMuaHRtbEVsZW1lbnQsIHNlbmRlcik7XG4gICAgfSk7XG4gICAgbmV3U3VydmV5Lm9uRHJhZ0Ryb3BBbGxvdy5hZGQoZnVuY3Rpb24gKHNlbmRlciwgb3B0aW9ucykge1xuICAgICAgKDxhbnk+b3B0aW9ucykuc3VydmV5ID0gc2VuZGVyO1xuICAgICAgc2VsZi5vbkRyYWdEcm9wQWxsb3cuZmlyZShzZWxmLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgICBuZXdTdXJ2ZXkub25HZXRNZW51SXRlbXMuYWRkKChzZW5kZXIsIG9wdGlvbnMpID0+IHtcbiAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IG9wdHMgPSBvcHRpb25zLm9iai5hbGxvd2luZ09wdGlvbnM7XG4gICAgICBpZiAoIW9wdHMpIG9wdHMgPSB7fTtcblxuICAgICAgaWYgKHRoaXMuc2hvd01vZGFsT25FbGVtZW50RWRpdGluZyAmJiBvcHRzLmFsbG93U2hvd0VkaXRvcikge1xuICAgICAgICBvcHRpb25zLml0ZW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IFwiZWRpdGVsZW1lbnRcIixcbiAgICAgICAgICB0ZXh0OiB0aGlzLmdldExvY1N0cmluZyhcInN1cnZleS5lZGl0XCIpLFxuICAgICAgICAgIGhhc1RpdGxlOiB0cnVlLFxuICAgICAgICAgIG9uQ2xpY2s6IChxdWVzdGlvbikgPT4gdGhpcy5zaG93UXVlc3Rpb25FZGl0b3IocXVlc3Rpb24pLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdHMuYWxsb3dEZWxldGUpIHtcbiAgICAgICAgdmFyIGRlbGV0ZUxvY2FsZU5hbWUgPSBvcHRpb25zLm9iai5pc1BhbmVsXG4gICAgICAgICAgPyBcInN1cnZleS5kZWxldGVQYW5lbFwiXG4gICAgICAgICAgOiBcInN1cnZleS5kZWxldGVRdWVzdGlvblwiO1xuICAgICAgICBvcHRpb25zLml0ZW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IFwiZGVsZXRlXCIsXG4gICAgICAgICAgdGV4dDogc2VsZi5nZXRMb2NTdHJpbmcoZGVsZXRlTG9jYWxlTmFtZSksXG4gICAgICAgICAgb25DbGljazogZnVuY3Rpb24gKHNlbE9iaikge1xuICAgICAgICAgICAgc2VsZi5kZWxldGVPYmplY3Qoc2VsT2JqKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBvcHRzLmFsbG93U2hvd0hpZGVUaXRsZSAmJlxuICAgICAgICB0eXBlb2Ygb3B0aW9ucy5vYmoudGl0bGVMb2NhdGlvbiAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgICBpc1Byb3BlcnR5VmlzaWJsZShvcHRpb25zLm9iaiwgXCJ0aXRsZVwiKVxuICAgICAgKSB7XG4gICAgICAgIHZhciBpc1Nob3dUaXRsZSA9IGtvLm9ic2VydmFibGU8Ym9vbGVhbj4oXG4gICAgICAgICAgb3B0aW9ucy5vYmoudGl0bGVMb2NhdGlvbiAhPT0gXCJoaWRkZW5cIlxuICAgICAgICApO1xuICAgICAgICBvcHRpb25zLml0ZW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IFwic2hvd3RpdGxlXCIsXG4gICAgICAgICAgdGV4dDogdGhpcy5nZXRMb2NTdHJpbmcoXCJwZS5zaG93VGl0bGVcIiksXG4gICAgICAgICAgaWNvbjoga28uY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzU2hvd1RpdGxlKCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFwiaWNvbi1hY3Rpb25zaG93dGl0bGVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcImljb24tYWN0aW9uaGlkZXRpdGxlXCI7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgb25DbGljazogKHF1ZXN0aW9uOiBTdXJ2ZXkuUXVlc3Rpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChxdWVzdGlvbi50aXRsZUxvY2F0aW9uICE9PSBcImhpZGRlblwiKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uLnRpdGxlTG9jYXRpb24gPSBcImhpZGRlblwiO1xuICAgICAgICAgICAgICBpZiAocXVlc3Rpb24uZ2V0VHlwZSgpID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgICAgIHF1ZXN0aW9uW1wic2hvd1RpdGxlXCJdID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uLnRpdGxlTG9jYXRpb24gPSBcImRlZmF1bHRcIjtcbiAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLmdldFR5cGUoKSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbltcInNob3dUaXRsZVwiXSA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzU2hvd1RpdGxlKHF1ZXN0aW9uLnRpdGxlTG9jYXRpb24gIT09IFwiaGlkZGVuXCIpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIG9wdHMuYWxsb3dDaGFuZ2VSZXF1aXJlZCAmJlxuICAgICAgICB0eXBlb2Ygb3B0aW9ucy5vYmouaXNSZXF1aXJlZCAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgICBpc1Byb3BlcnR5VmlzaWJsZShvcHRpb25zLm9iaiwgXCJpc1JlcXVpcmVkXCIpXG4gICAgICApIHtcbiAgICAgICAgdmFyIGlzUmVxdWlyZWQgPSBrby5jb21wdXRlZCgoKSA9PiBvcHRpb25zLm9iai5pc1JlcXVpcmVkKTtcbiAgICAgICAgb3B0aW9ucy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBcImlzcmVxdWlyZWRcIixcbiAgICAgICAgICB0ZXh0OiB0aGlzLmdldExvY1N0cmluZyhcInBlLmlzUmVxdWlyZWRcIiksXG4gICAgICAgICAgaWNvbjoga28uY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzUmVxdWlyZWQoKSkge1xuICAgICAgICAgICAgICByZXR1cm4gXCJpY29uLWFjdGlvbmlzcmVxdWlyZWRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcImljb24tYWN0aW9ubm90cmVxdWlyZWRcIjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBvbkNsaWNrOiAocXVlc3Rpb246IFN1cnZleS5RdWVzdGlvbikgPT4ge1xuICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgICAgICAgICBxdWVzdGlvbi5nZXRUeXBlKCksXG4gICAgICAgICAgICAgIFwiaXNSZXF1aXJlZFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhcHJvcGVydHkgfHxcbiAgICAgICAgICAgICAgIXRoaXMub25Jc1Byb3BlcnR5UmVhZE9ubHlDYWxsYmFjayhcbiAgICAgICAgICAgICAgICBxdWVzdGlvbixcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eS5yZWFkT25seSxcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBxdWVzdGlvbi5pc1JlcXVpcmVkID0gIXF1ZXN0aW9uLmlzUmVxdWlyZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb3B0aW9ucy5pdGVtcy5wdXNoKHsgdGVtcGxhdGU6IFwiYWN0aW9uLXNlcGFyYXRvclwiIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0cy5hbGxvd0NvcHkpIHtcbiAgICAgICAgb3B0aW9ucy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBcImNvcHlcIixcbiAgICAgICAgICB0ZXh0OiBzZWxmLmdldExvY1N0cmluZyhcInN1cnZleS5jb3B5XCIpLFxuICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIChzZWxPYmopIHtcbiAgICAgICAgICAgIHNlbGYuZmFzdENvcHlRdWVzdGlvbihzZWxPYmopO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0cy5hbGxvd0FkZFRvVG9vbGJveCkge1xuICAgICAgICBvcHRpb25zLml0ZW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IFwiYWRkdG90b29sYm94XCIsXG4gICAgICAgICAgdGV4dDogc2VsZi5nZXRMb2NTdHJpbmcoXCJzdXJ2ZXkuYWRkVG9Ub29sYm94XCIpLFxuICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIChzZWxPYmopIHtcbiAgICAgICAgICAgIHNlbGYuYWRkQ3VzdG9tVG9vbGJveFF1ZXN0aW9uKHNlbE9iaik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzLmFsbG93Q2hhbmdlVHlwZSkge1xuICAgICAgICBpZiAob3B0aW9ucy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgb3B0aW9ucy5pdGVtcy5wdXNoKHsgdGVtcGxhdGU6IFwiYWN0aW9uLXNlcGFyYXRvclwiIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjdXJyZW50VHlwZSA9IG9wdGlvbnMub2JqLmdldFR5cGUoKTtcbiAgICAgICAgdmFyIGNvbnZlcnRDbGFzc2VzID0gUXVlc3Rpb25Db252ZXJ0ZXIuZ2V0Q29udmVydFRvQ2xhc3NlcyhcbiAgICAgICAgICBjdXJyZW50VHlwZSxcbiAgICAgICAgICB0aGlzLnRvb2xib3guaXRlbU5hbWVzXG4gICAgICAgICk7XG4gICAgICAgIHZhciBhbGxvd0NoYW5nZVR5cGUgPSBjb252ZXJ0Q2xhc3Nlcy5sZW5ndGggPiAwO1xuICAgICAgICB2YXIgY3JlYXRlVHlwZUJ5Q2xhc3MgPSAoY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0TG9jU3RyaW5nKFwicXQuXCIgKyBjbGFzc05hbWUpLFxuICAgICAgICAgICAgdmFsdWU6IGNsYXNzTmFtZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgICAgICB2YXIgYXZhaWxhYmxlVHlwZXMgPSBbY3JlYXRlVHlwZUJ5Q2xhc3MoY3VycmVudFR5cGUpXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb252ZXJ0Q2xhc3Nlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjbGFzc05hbWUgPSBjb252ZXJ0Q2xhc3Nlc1tpXTtcbiAgICAgICAgICBhdmFpbGFibGVUeXBlcy5wdXNoKGNyZWF0ZVR5cGVCeUNsYXNzKGNsYXNzTmFtZSkpO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMuaXRlbXMucHVzaCh7XG4gICAgICAgICAgdGV4dDogdGhpcy5nZXRMb2NTdHJpbmcoXCJxdC5cIiArIGN1cnJlbnRUeXBlKSxcbiAgICAgICAgICB0aXRsZTogdGhpcy5nZXRMb2NTdHJpbmcoXCJzdXJ2ZXkuY29udmVydFRvXCIpLFxuICAgICAgICAgIHR5cGU6IGN1cnJlbnRUeXBlLFxuICAgICAgICAgIGFsbG93Q2hhbmdlVHlwZTogYWxsb3dDaGFuZ2VUeXBlLFxuICAgICAgICAgIHRlbXBsYXRlOiBcImNvbnZlcnQtYWN0aW9uXCIsXG4gICAgICAgICAgYXZhaWxhYmxlVHlwZXM6IGF2YWlsYWJsZVR5cGVzLFxuICAgICAgICAgIG9uQ29udmVydFR5cGU6IChkYXRhLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgdmFyIG5ld1R5cGUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDdXJyZW50T2JqZWN0KG9wdGlvbnMub2JqLCBuZXdUeXBlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnNob3dNb2RhbE9uRWxlbWVudEVkaXRpbmcgJiYgb3B0cy5hbGxvd1Nob3dFZGl0b3IpIHtcbiAgICAgICAgb3B0aW9ucy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBcImVkaXRlbGVtZW50XCIsXG4gICAgICAgICAgdGV4dDogdGhpcy5nZXRMb2NTdHJpbmcoXCJlZC5wcm9wZXJ0eS1ncmlkXCIpLFxuICAgICAgICAgIHRlbXBsYXRlOiBcInNjYS1zaG93LXByb3BlcnR5LWdyaWRcIixcbiAgICAgICAgICBoYXNUaXRsZTogdHJ1ZSxcbiAgICAgICAgICBvbkNsaWNrOiAocXVlc3Rpb24pID0+IHRoaXMuc2hvd1F1ZXN0aW9uRWRpdG9yKHF1ZXN0aW9uKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzLmFsbG93RHJhZ2dpbmcpIHtcbiAgICAgICAgb3B0aW9ucy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBcImRyYWdlbGVtZW50XCIsXG4gICAgICAgICAgbmVlZEZvY3VzOiBmYWxzZSxcbiAgICAgICAgICB0ZXh0OiBzZWxmLmdldExvY1N0cmluZyhcInN1cnZleS5kcmFnXCIpLFxuICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIChzZWxPYmopIHsgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHNlbGYub25EZWZpbmVFbGVtZW50TWVudUl0ZW1zLmZpcmUoc2VsZiwgb3B0aW9ucyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm9uRGVzaWduZXJTdXJ2ZXlDcmVhdGVkLmZpcmUodGhpcywgeyBzdXJ2ZXk6IG5ld1N1cnZleSB9KTtcbiAgICAvLyB0aGlzLnN1cnZleS5yZW5kZXIodGhpcy5zdXJ2ZXlqcyk7XG4gICAgbmV3U3VydmV5Lm9uU2VsZWN0ZWRFbGVtZW50Q2hhbmdlZC5hZGQoKHNlbmRlcjogU3VydmV5LlN1cnZleSwgb3B0aW9ucykgPT4ge1xuICAgICAgaWYgKHNlbGYuZGlzYWJsZVN1cnZleVNlbGVjdGVkRWxlbWVudENoYW5naW5nKSByZXR1cm47XG4gICAgICBzZWxmLnNlbGVjdGVkRWxlbWVudCA9IHNlbmRlcltcInNlbGVjdGVkRWxlbWVudFwiXTtcbiAgICB9KTtcbiAgICBuZXdTdXJ2ZXkub25FZGl0QnV0dG9uQ2xpY2suYWRkKChzZW5kZXI6IFN1cnZleS5TdXJ2ZXkpID0+IHtcbiAgICAgIHNlbGYuc2hvd1F1ZXN0aW9uRWRpdG9yKHNlbGYuc2VsZWN0ZWRFbGVtZW50KTtcbiAgICB9KTtcbiAgICBuZXdTdXJ2ZXkub25FbGVtZW50RG91YmxlQ2xpY2suYWRkKChzZW5kZXI6IFN1cnZleS5TdXJ2ZXksIG9wdGlvbnMpID0+IHtcbiAgICAgIHNlbGYub25FbGVtZW50RG91YmxlQ2xpY2suZmlyZShzZWxmLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgICBuZXdTdXJ2ZXkub25Qcm9jZXNzSHRtbC5hZGQoKHNlbmRlcjogU3VydmV5LlN1cnZleSwgb3B0aW9ucykgPT4ge1xuICAgICAgb3B0aW9ucy5odG1sID0gc2VsZi5wcm9jZXNzSHRtbChvcHRpb25zLmh0bWwpO1xuICAgIH0pO1xuICAgIG5ld1N1cnZleS5vblF1ZXN0aW9uQWRkZWQuYWRkKChzZW5kZXI6IFN1cnZleS5TdXJ2ZXksIG9wdGlvbnMpID0+IHtcbiAgICAgIHNlbGYuZG9PblF1ZXN0aW9uQWRkZWQob3B0aW9ucy5xdWVzdGlvbiwgb3B0aW9ucy5wYXJlbnRQYW5lbCk7XG4gICAgfSk7XG4gICAgbmV3U3VydmV5Lm9uUXVlc3Rpb25SZW1vdmVkLmFkZCgoc2VuZGVyOiBTdXJ2ZXkuU3VydmV5LCBvcHRpb25zKSA9PiB7XG4gICAgICBzZWxmLmRvT25FbGVtZW50UmVtb3ZlZChvcHRpb25zLnF1ZXN0aW9uKTtcbiAgICB9KTtcbiAgICBuZXdTdXJ2ZXkub25QYW5lbEFkZGVkLmFkZCgoc2VuZGVyOiBTdXJ2ZXkuU3VydmV5LCBvcHRpb25zKSA9PiB7XG4gICAgICBzZWxmLmRvT25QYW5lbEFkZGVkKDxQYW5lbD5vcHRpb25zLnBhbmVsLCBvcHRpb25zLnBhcmVudFBhbmVsKTtcbiAgICB9KTtcbiAgICBuZXdTdXJ2ZXkub25QYW5lbFJlbW92ZWQuYWRkKChzZW5kZXI6IFN1cnZleS5TdXJ2ZXksIG9wdGlvbnMpID0+IHtcbiAgICAgIHNlbGYuZG9PbkVsZW1lbnRSZW1vdmVkKG9wdGlvbnMucGFuZWwpO1xuICAgIH0pO1xuICAgIG5ld1N1cnZleS5vblBhZ2VBZGRlZC5hZGQoKHNlbmRlcjogU3VydmV5LlN1cnZleSwgb3B0aW9ucykgPT4ge1xuICAgICAgaWYgKHNlbGYuc3VydmV5T2JqZWN0cy5oYXNPYmplY3Qob3B0aW9ucy5wYWdlKSkgcmV0dXJuO1xuICAgICAgc2VsZi5kb09uUGFnZUFkZGVkKDxQYWdlPm9wdGlvbnMucGFnZSk7XG4gICAgICBzZWxmLmFkZFBhZ2VUb1VJKDxQYWdlPm9wdGlvbnMucGFnZSk7XG4gICAgICBzZWxmLnNldE1vZGlmaWVkKHsgdHlwZTogXCJQQUdFX0FEREVEXCIsIG5ld1ZhbHVlOiBvcHRpb25zLnBhZ2UgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN1cnZleVZhbHVlKG5ld1N1cnZleSk7XG4gICAgdGhpcy5zdXJ2ZXlPYmplY3RzLnN1cnZleSA9IG5ld1N1cnZleTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG5ld1N1cnZleTtcbiAgfVxuICBwcml2YXRlIHByb2Nlc3NIdG1sKGh0bWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFodG1sKSByZXR1cm4gaHRtbDtcbiAgICB2YXIgc2NyaXB0UmVnRXggPSAvPHNjcmlwdFxcYltePF0qKD86KD8hPFxcL3NjcmlwdD4pPFtePF0qKSo8XFwvc2NyaXB0Pi9naTtcbiAgICB3aGlsZSAoc2NyaXB0UmVnRXgudGVzdChodG1sKSkge1xuICAgICAgaHRtbCA9IGh0bWwucmVwbGFjZShzY3JpcHRSZWdFeCwgXCJcIik7XG4gICAgfVxuICAgIHJldHVybiBodG1sO1xuICB9XG4gIHByaXZhdGUgZG9EcmFnZ2luZ1Rvb2xib3hJdGVtKGpzb246IGFueSwgZSkge1xuICAgIHZhciBuZXdFbGVtZW50ID0gdGhpcy5jcmVhdGVOZXdFbGVtZW50KGpzb24pO1xuICAgIGpzb24gPSAoPFN1cnZleS5CYXNlPig8YW55Pm5ld0VsZW1lbnQpKS50b0pTT04oKTtcbiAgICBqc29uW1widHlwZVwiXSA9IG5ld0VsZW1lbnQuZ2V0VHlwZSgpO1xuICAgIHRoaXMuZHJhZ0Ryb3BIZWxwZXIuc3RhcnREcmFnVG9vbGJveEl0ZW0oZSwgbmV3RWxlbWVudC5uYW1lLCBqc29uKTtcbiAgfVxuXG4gIHByaXZhdGUgZG9DbGlja1Rvb2xib3hJdGVtKGpzb246IGFueSkge1xuICAgIGlmICghdGhpcy5yZWFkT25seSkge1xuICAgICAgdmFyIG5ld0VsZW1lbnQgPSB0aGlzLmNyZWF0ZU5ld0VsZW1lbnQoanNvbik7XG4gICAgICB0aGlzLmRvQ2xpY2tRdWVzdGlvbkNvcmUobmV3RWxlbWVudCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBkcmFnT3ZlclF1ZXN0aW9uc0VkaXRvcihkYXRhLCBlKSB7XG4gICAgZGF0YS5zdXJ2ZXkuZHJhZ0Ryb3BIZWxwZXIuZG9EcmFnRHJvcE92ZXIoZSwgZGF0YS5zdXJ2ZXkuY3VycmVudFBhZ2UpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgZHJvcE9uUXVlc3Rpb25zRWRpdG9yKGRhdGEsIGUpIHtcbiAgICBkYXRhLnN1cnZleS5kcmFnRHJvcEhlbHBlci5kb0Ryb3AoZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGRvQ2xpY2tRdWVzdGlvbkNvcmUoXG4gICAgZWxlbWVudDogU3VydmV5LklFbGVtZW50LFxuICAgIG1vZGlmaWVkVHlwZTogc3RyaW5nID0gXCJBRERFRF9GUk9NX1RPT0xCT1hcIlxuICApIHtcbiAgICBzdXBlci5kb0NsaWNrUXVlc3Rpb25Db3JlKGVsZW1lbnQsIG1vZGlmaWVkVHlwZSk7XG4gICAgaWYgKHRoaXMucmVuZGVyZWRFbGVtZW50ICYmIHRoaXMuc2Nyb2xsVG9OZXdFbGVtZW50KSB7XG4gICAgICBTdXJ2ZXlIZWxwZXIuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChcbiAgICAgICAgdGhpcy5yZW5kZXJlZEVsZW1lbnQucXVlcnlTZWxlY3RvcihcIiNcIiArIGVsZW1lbnRbXCJpZFwiXSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVRdWVzdGlvbigpIHtcbiAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLmdldFNlbGVjdGVkT2JqQXNRdWVzdGlvbigpO1xuICAgIGlmIChxdWVzdGlvbikge1xuICAgICAgdGhpcy5kZWxldGVDdXJyZW50T2JqZWN0KCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc2VsZWN0UXVlc3Rpb24oaXNVcDogYm9vbGVhbikge1xuICAgIHZhciBxdWVzdGlvbiA9IHRoaXMuZ2V0U2VsZWN0ZWRPYmpBc1F1ZXN0aW9uKCk7XG4gICAgaWYgKHF1ZXN0aW9uKSB7XG4gICAgICB0aGlzLnN1cnZleU9iamVjdHMuc2VsZWN0TmV4dFF1ZXN0aW9uKGlzVXApO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldFNlbGVjdGVkT2JqQXNRdWVzdGlvbigpOiBTdXJ2ZXkuUXVlc3Rpb24ge1xuICAgIHZhciBvYmogPSB0aGlzLnNlbGVjdGVkRWxlbWVudDtcbiAgICBpZiAoIW9iaikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIFN1cnZleUhlbHBlci5nZXRPYmplY3RUeXBlKG9iaikgPT0gT2JqVHlwZS5RdWVzdGlvblxuICAgICAgPyA8U3VydmV5LlF1ZXN0aW9uPm9ialxuICAgICAgOiBudWxsO1xuICB9XG4gIHB1YmxpYyBkZWxldGVDdXJyZW50T2JqZWN0KCkge1xuICAgIHRoaXMuZGVsZXRlT2JqZWN0KHRoaXMuc2VsZWN0ZWRFbGVtZW50KTtcbiAgfVxuICAvKipcbiAgICogU2hvdyB0aGUgY3JlYXRvciBkaWFsb2cuIFRoZSBlbGVtZW50IGNhbiBiZSBhIHF1ZXN0aW9uLCBwYW5lbCwgcGFnZSBvciBzdXJ2ZXkuIElmIHByb3BlcnR5IGdyaWQgaXMgdXNlZCBpbnN0ZWFkIG9mIGRpYWxvZyB3aW5kb3cgKGRlZmF1bHQgYmVoYXZpb3IpLCB0aGVuIGZvY3VzIGdvZXMgaW50byB0aGUgcHJvcGVydHkgZ3JpZC5cbiAgICogQHBhcmFtIGVsZW1lbnQgVGhlIHN1cnZleSBlbGVtZW50XG4gICAqIEBzZWUgc2hvd01vZGFsRWxlbWVudEVkaXRvclxuICAgKi9cbiAgcHVibGljIHNob3dFbGVtZW50RWRpdG9yKFxuICAgIGVsZW1lbnQ6IFN1cnZleS5CYXNlLFxuICAgIG9uQ2xvc2U6IChpc0NhbmNlbGVkOiBib29sZWFuKSA9PiBhbnlcbiAgKSB7XG4gICAgdGhpcy5zaG93UXVlc3Rpb25FZGl0b3IoZWxlbWVudCwgb25DbG9zZSk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVDb25kaXRpb25zKG9sZE5hbWU6IHN0cmluZywgbmV3TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKG9sZE5hbWUgPT09IG5ld05hbWUpIHJldHVybjtcbiAgICBuZXcgU3VydmV5TG9naWModGhpcy5zdXJ2ZXksIHRoaXMpLnJlbmFtZVF1ZXN0aW9uKG9sZE5hbWUsIG5ld05hbWUpO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlQ2hvaWNlc0Zyb21RdWVzdGlvbk9uQ29sdW1uTmFtZUNoYW5nZWQob2xkTmFtZTogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBxdWVzdGlvbnMgPSB0aGlzLnN1cnZleS5nZXRBbGxRdWVzdGlvbnMoKTtcbiAgICBxdWVzdGlvbnMuZm9yRWFjaChxID0+IHtcbiAgICAgIGlmKHEuY2hvaWNlc0Zyb21RdWVzdGlvbiA9PT0gb2xkTmFtZSkge1xuICAgICAgICBxLmNob2ljZXNGcm9tUXVlc3Rpb24gPSBuZXdOYW1lO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBnZXQgc2hvd01vZGFsT25FbGVtZW50RWRpdGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2hvd0VsZW1lbnRFZGl0b3JBc1Byb3BlcnR5R3JpZCB8fCAhdGhpcy5zaG93UHJvcGVydHlHcmlkO1xuICB9XG4gIHB1YmxpYyBzaG93UXVlc3Rpb25FZGl0b3IgPSAoXG4gICAgZWxlbWVudDogU3VydmV5LkJhc2UsXG4gICAgb25DbG9zZTogKGlzQ2FuY2VsZWQ6IGJvb2xlYW4pID0+IGFueSA9IG51bGxcbiAgKSA9PiB7XG4gICAgaWYgKCF0aGlzLnNob3dNb2RhbE9uRWxlbWVudEVkaXRpbmcpIHtcbiAgICAgIHRoaXMuaGlkZUFkdmFuY2VkU2V0dGluZ3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0TmV3T2JqVG9Qcm9wZXJ0eUdyaWQoZWxlbWVudCk7XG4gICAgICB0aGlzLmxlZnRDb250YWluZXJBY3RpdmVJdGVtKFwicHJvcGVydHktZ3JpZFwiKTtcbiAgICAgIHRoaXMucmlnaHRDb250YWluZXJBY3RpdmVJdGVtKFwicHJvcGVydHktZ3JpZFwiKTtcbiAgICAgIHRoaXMucHJvcGVydHlHcmlkT2JqZWN0RWRpdG9yTW9kZWwuZm9jdXNFZGl0b3IoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zaG93TW9kYWxFbGVtZW50RWRpdG9yKGVsZW1lbnQsIG9uQ2xvc2UpO1xuICB9O1xuICAvKipcbiAgICogU2hvdyB0aGUgY3JlYXRvciBkaWFsb2cuIFRoZSBlbGVtZW50IGNhbiBiZSBhIHF1ZXN0aW9uLCBwYW5lbCwgcGFnZSBvciBzdXJ2ZXkuXG4gICAqIEBwYXJhbSBlbGVtZW50IFRoZSBzdXJ2ZXkgZWxlbWVudFxuICAgKiBAcGFyYW0gb25DbG9zZSBDYWxsYmFjayBmdW5jdGlvbiBvbiBjbG9zaW5nIGRpYWxvZyB3aW5kb3cuIEl0IGhhcyBpc0NhbmNlbGVkIGJvb2xlYW4gcGFyYXRlbWVyLiBJdCBpcyB0cnVlIGlmIGEgdXNlciBjYW5jZWwgY2hhbmdlcy5cbiAgICogQHNlZSBvbkVsZW1lbnRFZGl0b3JDbG9zZWRcbiAgICovXG4gIHB1YmxpYyBzaG93TW9kYWxFbGVtZW50RWRpdG9yKFxuICAgIGVsZW1lbnQ6IFN1cnZleS5CYXNlLFxuICAgIG9uQ2xvc2U6IChpc0NhbmNlbGVkOiBib29sZWFuKSA9PiBhbnkgPSBudWxsXG4gICkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgZWxXaW5kb3cgPSB0aGlzLnJlbmRlcmVkRWxlbWVudFxuICAgICAgPyA8SFRNTEVsZW1lbnQ+KFxuICAgICAgICB0aGlzLnJlbmRlcmVkRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiI3N1cnZleXF1ZXN0aW9uZWRpdG9yd2luZG93XCIpXG4gICAgICApXG4gICAgICA6IG51bGw7XG4gICAgdmFyIGlzQ2FuY2VsZWQgPSB0cnVlO1xuICAgIHZhciBvbGROYW1lID0gZWxlbWVudFtcIm5hbWVcIl07XG4gICAgdmFyIG9sZFZhbHVlTmFtZSA9IGVsZW1lbnRbXCJ2YWx1ZU5hbWVcIl07XG4gICAgdGhpcy5xdWVzdGlvbkVkaXRvcldpbmRvdy5zaG93KFxuICAgICAgZWxlbWVudCxcbiAgICAgIGVsV2luZG93LFxuICAgICAgZnVuY3Rpb24gKHF1ZXN0aW9uKSB7XG4gICAgICAgIHNlbGYub25RdWVzdGlvbkVkaXRvckNoYW5nZWQocXVlc3Rpb24pO1xuICAgICAgICBpc0NhbmNlbGVkID0gZmFsc2U7XG4gICAgICAgIGlmIChvbGROYW1lICE9PSBxdWVzdGlvbltcIm5hbWVcIl0pIHtcbiAgICAgICAgICBzZWxmLnVwZGF0ZUNvbmRpdGlvbnNPblF1ZXN0aW9uTmFtZUNoYW5nZWQocXVlc3Rpb24sIFwibmFtZVwiLCBvbGROYW1lKTtcbiAgICAgICAgICBzZWxmLm9uRWxlbWVudE5hbWVDaGFuZ2VkLmZpcmUoc2VsZiwge1xuICAgICAgICAgICAgb2JqOiBxdWVzdGlvbixcbiAgICAgICAgICAgIG9sZE5hbWU6IG9sZE5hbWUsXG4gICAgICAgICAgICBuZXdOYW1lOiBxdWVzdGlvbltcIm5hbWVcIl0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9sZFZhbHVlTmFtZSAhPT0gcXVlc3Rpb25bXCJ2YWx1ZU5hbWVcIl0pIHtcbiAgICAgICAgICBzZWxmLnVwZGF0ZUNvbmRpdGlvbnNPblF1ZXN0aW9uTmFtZUNoYW5nZWQoXG4gICAgICAgICAgICBxdWVzdGlvbixcbiAgICAgICAgICAgIFwidmFsdWVOYW1lXCIsXG4gICAgICAgICAgICBvbGRWYWx1ZU5hbWVcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdGhpcyxcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKG9uQ2xvc2UpIG9uQ2xvc2UoaXNDYW5jZWxlZCk7XG4gICAgICAgIHNlbGYub25FbGVtZW50RWRpdG9yQ2xvc2VkLmZpcmUoc2VsZiwge1xuICAgICAgICAgIGlzQ2FuY2VsZWQ6IGlzQ2FuY2VsZWQsXG4gICAgICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgdGhpcy5vbkVkaXRvckFmdGVyUmVuZGVyQ2FsbGJhY2tcbiAgICApO1xuICB9XG4gIHB1YmxpYyBvblF1ZXN0aW9uRWRpdG9yQ2hhbmdlZChxdWVzdGlvbjogU3VydmV5LlF1ZXN0aW9uKSB7XG4gICAgaWYgKCEhcXVlc3Rpb24ubmFtZSAmJiAhdGhpcy5pc05hbWVVbmlxdWUocXVlc3Rpb24sIHF1ZXN0aW9uLm5hbWUpKSB7XG4gICAgICBxdWVzdGlvbi5uYW1lID0gdGhpcy5nZW5lcmF0ZVVuaXF1ZU5hbWUocXVlc3Rpb24sIHF1ZXN0aW9uLm5hbWUpO1xuICAgIH1cbiAgICB0aGlzLnN1cnZleU9iamVjdHMubmFtZUNoYW5nZWQocXVlc3Rpb24pO1xuICAgIHRoaXMuZG9Qcm9wZXJ0eUdyaWRDaGFuZ2VkKCk7XG4gICAgdGhpcy5kaXJ0eVBhZ2VVcGRhdGUoKTsgLy9UT0RPIHdoeSB0aGlzIGlzIG5lZWQgPyAoa28gcHJvYmxlbSlcbiAgICB0aGlzLnNldE1vZGlmaWVkKHtcbiAgICAgIHR5cGU6IFwiUVVFU1RJT05fQ0hBTkdFRF9CWV9FRElUT1JcIixcbiAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8vVE9ETyB3aHkgdGhpcyBpcyBuZWVkID8gKGtvIHByb2JsZW0pXG4gIHByaXZhdGUgZGlydHlQYWdlVXBkYXRlID0gKCkgPT4ge1xuICAgIHZhciBzZWxlY3RlZE9iamVjdCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50O1xuICAgIGlmICghc2VsZWN0ZWRPYmplY3QpIHJldHVybjtcbiAgICBpZiAoU3VydmV5SGVscGVyLmdldE9iamVjdFR5cGUoc2VsZWN0ZWRPYmplY3QpICE9PSBPYmpUeXBlLlBhZ2UpIHtcbiAgICAgIGlmIChcbiAgICAgICAgU3VydmV5SGVscGVyLmdldE9iamVjdFR5cGUoc2VsZWN0ZWRPYmplY3QpID09PSBPYmpUeXBlLlF1ZXN0aW9uICYmXG4gICAgICAgICEhc2VsZWN0ZWRPYmplY3RbXCJrb0VsZW1lbnRUeXBlXCJdXG4gICAgICApIHtcbiAgICAgICAgc2VsZWN0ZWRPYmplY3RbXCJrb0VsZW1lbnRUeXBlXCJdLm5vdGlmeVN1YnNjcmliZXJzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gc2VsZWN0ZWRPYmplY3Q7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZCBhIHF1ZXN0aW9uIGludG8gVG9vbGJveCBvYmplY3RcbiAgICogQHBhcmFtIHF1ZXN0aW9uIGFuIGFkZGVkIFN1cnZleS5RdWVzdGlvblxuICAgKiBAc2VlIHRvb2xib3hcbiAgICovXG4gIHB1YmxpYyBhZGRDdXN0b21Ub29sYm94UXVlc3Rpb24ocXVlc3Rpb246IFN1cnZleS5RdWVzdGlvbikge1xuICAgIHZhciBvcHRpb25zID0ge307XG4gICAgdGhpcy5vbkN1c3RvbUVsZW1lbnRBZGRpbmdJbnRvVG9vbGJveC5maXJlKHRoaXMsIHtcbiAgICAgIGVsZW1lbnQ6IHF1ZXN0aW9uLFxuICAgICAgaXRlbU9wdGlvbnM6IG9wdGlvbnMsXG4gICAgfSk7XG4gICAgdGhpcy50b29sYm94LmFkZENvcGllZEl0ZW0ocXVlc3Rpb24sIG9wdGlvbnMpO1xuICAgIHRoaXMub25DdXN0b21FbGVtZW50QWRkZWRJbnRvVG9vbGJveC5maXJlKHRoaXMsIHsgZWxlbWVudDogcXVlc3Rpb24gfSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBwYWdlIHdpdGggdGhlIHNhbWUgZWxlbWVudHMgYW5kIHBsYWNlIGl0IG5leHQgdG8gdGhlIGN1cnJlbnQgb25lLiBJdCByZXR1cm5zIHRoZSBuZXcgY3JlYXRlZCBTdXJ2ZXkuUGFnZVxuICAgKiBAcGFyYW0gcGFnZSBBIGNvcGllZCBTdXJ2ZXkuUGFnZVxuICAgKi9cbiAgcHVibGljIGNvcHlQYWdlID0gKHBhZ2U6IFN1cnZleS5QYWdlTW9kZWwpOiBTdXJ2ZXkuUGFnZU1vZGVsID0+IHtcbiAgICB2YXIgbmV3UGFnZSA9IDxTdXJ2ZXkuUGFnZT4oPGFueT50aGlzLmNvcHlFbGVtZW50KHBhZ2UpKTtcbiAgICB2YXIgaW5kZXggPSB0aGlzLnN1cnZleS5wYWdlcy5pbmRleE9mKHBhZ2UpO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLnN1cnZleS5wYWdlcy5zcGxpY2UoaW5kZXggKyAxLCAwLCBuZXdQYWdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXJ2ZXkucGFnZXMucHVzaChuZXdQYWdlKTtcbiAgICB9XG4gICAgdGhpcy5hZGRQYWdlVG9VSShuZXdQYWdlKTtcbiAgICByZXR1cm4gbmV3UGFnZTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZGVsZXRlT2JqZWN0Q29yZShvYmo6IGFueSkge1xuICAgIHRoaXMuc3VydmV5T2JqZWN0cy5yZW1vdmVPYmplY3Qob2JqKTtcbiAgICBzdXBlci5kZWxldGVPYmplY3RDb3JlKG9iaik7XG4gIH1cblxuICAvL2ltcGxlbWVudHMgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnNcbiAgZ2V0IHNob3dBcHBseUJ1dHRvbkluRWRpdG9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaG93QXBwbHlCdXR0b25WYWx1ZTtcbiAgfVxuICBzZXQgc2hvd0FwcGx5QnV0dG9uSW5FZGl0b3JzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93QXBwbHlCdXR0b25WYWx1ZSA9IHZhbHVlO1xuICB9XG4gIG9uRWRpdG9yVGFiUmVuZGVyZWRDYWxsYmFjayA9IChcbiAgICB0YWJOYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IEhUTUxEaXZFbGVtZW50W10sXG4gICAgbW9kZWw6IGFueSxcbiAgICB0YWJEYXRhOiBhbnlcbiAgKSA9PiB7XG4gICAgdGhpcy5vbkVkaXRvclRhYlJlbmRlcmVkLmZpcmUodGhpcywge1xuICAgICAgdGFiTmFtZSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgbW9kZWwsXG4gICAgICB0YWJEYXRhLFxuICAgIH0pO1xuICB9O1xuICBvbklzRWRpdG9yUmVhZE9ubHlDYWxsYmFjayhcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIGVkaXRvcjogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlLFxuICAgIHJlYWRPbmx5OiBib29sZWFuXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9uSXNQcm9wZXJ0eVJlYWRPbmx5Q2FsbGJhY2soXG4gICAgICBvYmosXG4gICAgICBlZGl0b3IucHJvcGVydHksXG4gICAgICByZWFkT25seSxcbiAgICAgIGVkaXRvci5wYXJlbnRPYmosXG4gICAgICBlZGl0b3IucGFyZW50UHJvcGVydHlcbiAgICApO1xuICB9XG4gIG9uVGl0bGVJbnBsYWNlRWRpdG9yU3RhcnRFZGl0KGlucHV0RWxlbTogSFRNTElucHV0RWxlbWVudCk6IHZvaWQgeyB9XG4gIG9uUHJvcGVydHlFZGl0b3JLZXlEb3duQ2FsbGJhY2soXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBlZGl0b3I6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgICBldmVudDogS2V5Ym9hcmRFdmVudFxuICApIHtcbiAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgb2JqOiBvYmosXG4gICAgICBlZGl0b3I6IGVkaXRvcixcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICB9O1xuICAgIHRoaXMub25Qcm9wZXJ0eUVkaXRvcktleURvd24uZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgfVxuICBvblByb3BlcnR5RWRpdG9yT2JqZWN0U2V0Q2FsbGJhY2soXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBlZGl0b3I6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZVxuICApIHtcbiAgICB2YXIgb3B0aW9ucyA9IHsgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsIG9iajogb2JqLCBlZGl0b3I6IGVkaXRvciB9O1xuICAgIHRoaXMub25Qcm9wZXJ0eUVkaXRvck9iamVjdEFzc2lnbi5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIG9uUHJvcGVydHlFZGl0b3JNb2RhbFNob3dEZXNjcmlwdGlvbkNhbGxiYWNrKFxuICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgIG9iajogU3VydmV5LkJhc2VcbiAgKTogYW55IHtcbiAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgIG9iajogb2JqLFxuICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXG4gICAgICBodG1sVG9wOiBcIlwiLFxuICAgICAgaHRtbEJvdHRvbTogXCJcIixcbiAgICB9O1xuICAgIHRoaXMub25TaG93UHJvcGVydHlNb2RhbEVkaXRvckRlc2NyaXB0aW9uLmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgdmFyIHJlcyA9IHsgdG9wOiBvcHRpb25zLmh0bWxUb3AsIGJvdHRvbTogb3B0aW9ucy5odG1sQm90dG9tIH07XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBvbkNvbmRpdGlvblZhbHVlU3VydmV5Q3JlYXRlZENhbGxCYWNrKFxuICAgIHZhbHVlUXVlc3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBlZGl0b3I6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgICBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlcbiAgKSB7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICB2YWx1ZVF1ZXN0aW9uTmFtZTogdmFsdWVRdWVzdGlvbk5hbWUsXG4gICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgIG9iajogb2JqLFxuICAgICAgZWRpdG9yOiBlZGl0b3IsXG4gICAgICBzdXJ2ZXk6IHN1cnZleSxcbiAgICB9O1xuICAgIHRoaXMub25Db25kaXRpb25WYWx1ZVN1cnZleUNyZWF0ZWQuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgfVxuICBzdGFydFVuZG9SZWRvVHJhbnNhY3Rpb24oKSB7XG4gICAgdGhpcy51bmRvUmVkb01hbmFnZXIuc3RhcnRUcmFuc2FjdGlvbihcIkVkaXQgRWxlbWVudCBpbiBNb2RhbCBXaW5kb3dcIik7XG4gIH1cbiAgc3RvcFVuZG9SZWRvVHJhbnNhY3Rpb24oKSB7XG4gICAgdGhpcy51bmRvUmVkb01hbmFnZXIuc3RvcFRyYW5zYWN0aW9uKCk7XG4gIH1cbiAgcHJvdGVjdGVkIHN0YXJ0VHJhbnNhY3Rpb24obmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy51bmRvUmVkb01hbmFnZXIuc3RhcnRUcmFuc2FjdGlvbihuYW1lKTtcbiAgfVxuICBwcm90ZWN0ZWQgc3RvcFRyYW5zYXRpb24oKSB7XG4gICAgdGhpcy51bmRvUmVkb01hbmFnZXIuc3RvcFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICBvbkFkb3JuZXJSZW5kZXJlZENhbGxiYWNrKFxuICAgIHF1ZXN0aW9uOiBTdXJ2ZXkuUXVlc3Rpb24sXG4gICAgYWRvcm5lcjogc3RyaW5nLFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIGNvbnRleHQ/OiBhbnlcbiAgKSB7XG4gICAgaWYgKCF0aGlzLm9uQWRvcm5lclJlbmRlcmVkLmlzRW1wdHkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBrby50YXNrcy5ydW5FYXJseSgpO1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgICBzdXJ2ZXk6IHRoaXMuc3VydmV5LFxuICAgICAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbixcbiAgICAgICAgICBhZG9ybmVyOiBhZG9ybmVyLFxuICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vbkFkb3JuZXJSZW5kZXJlZC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgICAgfSwgMSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBDbGVhciB0aGUgZmlsZXMgb24gYSBzZXJ2ZXJcbiAgICogQHBhcmFtIGZpbGVzIGZpbGVzIGRhdGEgKGJ5dGUgYXJyYXkgb3IgVVJJKSB0byBjbGVhclxuICAgKiBAcGFyYW0gY2xlYXJDYWxsYmFjayBhIGNhbGwgYmFjayBmdW5jdGlvbiB0byBnZXQgdGhlIHN0YXR1cyBvbiByZW1vdmVkIHRoZSBmaWxlc1xuICAgKi9cbiAgcHVibGljIGNsZWFyRmlsZXMoXG4gICAgZmlsZXM6IGFueVtdLFxuICAgIGNsZWFyQ2FsbGJhY2s6IChzdGF0dXM6IHN0cmluZywgZGF0YTogYW55KSA9PiBhbnlcbiAgKSB7XG4gICAgaWYgKHRoaXMub25DbGVhckZpbGUuaXNFbXB0eSkge1xuICAgICAgY2xlYXJDYWxsYmFjayhcInN1Y2Nlc3NcIiwgbnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DbGVhckZpbGUuZmlyZSh0aGlzLCB7XG4gICAgICAgIGZpbGVzOiBmaWxlcyB8fCBbXSxcbiAgICAgICAgY2FsbGJhY2s6IGNsZWFyQ2FsbGJhY2ssXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFVwbG9hZCB0aGUgZmlsZXMgb24gYSBzZXJ2ZXJcbiAgICogQHBhcmFtIGZpbGVzIGZpbGVzIHRvIHVwbG9hZFxuICAgKiBAcGFyYW0gdXBsb2FkaW5nQ2FsbGJhY2sgYSBjYWxsIGJhY2sgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzdGF0dXMgb24gdXBsb2FkaW5nIHRoZSBmaWxlIGFuZCBvcGVyYXRpb24gcmVzdWx0IC0gVVJJIG9mIHRoZSB1cGxvYWRlZCBmaWxlXG4gICAqL1xuICBwdWJsaWMgdXBsb2FkRmlsZXMoXG4gICAgZmlsZXM6IEZpbGVbXSxcbiAgICB1cGxvYWRpbmdDYWxsYmFjazogKHN0YXR1czogc3RyaW5nLCBkYXRhOiBhbnkpID0+IGFueVxuICApIHtcbiAgICBpZiAodGhpcy5vblVwbG9hZEZpbGUuaXNFbXB0eSkge1xuICAgICAgbGV0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgICB1cGxvYWRpbmdDYWxsYmFjayhcInN1Y2Nlc3NcIiwgZmlsZVJlYWRlci5yZXN1bHQpO1xuICAgICAgfTtcbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlc1swXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25VcGxvYWRGaWxlLmZpcmUodGhpcywge1xuICAgICAgICBmaWxlczogZmlsZXMgfHwgW10sXG4gICAgICAgIGNhbGxiYWNrOiB1cGxvYWRpbmdDYWxsYmFjayxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogT3BlbiBmaWxlIGNob29zZXIgZGlhbG9nXG4gICAqIEBwYXJhbSBpbnB1dCBmaWxlIGlucHV0IGVsZW1lbnRcbiAgICogQHBhcmFtIG9uRmlsZXNDaG9zZW4gYSBjYWxsIGJhY2sgZnVuY3Rpb24gdG8gcHJvY2VzcyBjaG9zZW4gZmlsZXNcbiAgICovXG4gIHB1YmxpYyBjaG9vc2VGaWxlcyhcbiAgICBpbnB1dDogSFRNTElucHV0RWxlbWVudCxcbiAgICBvbkZpbGVzQ2hvc2VuOiAoZmlsZXM6IEZpbGVbXSkgPT4gdm9pZFxuICApIHtcbiAgICBpZiAodGhpcy5vbk9wZW5GaWxlQ2hvb3Nlci5pc0VtcHR5KSB7XG4gICAgICBpZiAoIXdpbmRvd1tcIkZpbGVSZWFkZXJcIl0pIHJldHVybjtcbiAgICAgIGlucHV0LnZhbHVlID0gXCJcIjtcbiAgICAgIGlucHV0Lm9uY2hhbmdlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghd2luZG93W1wiRmlsZVJlYWRlclwiXSkgcmV0dXJuO1xuICAgICAgICBpZiAoIWlucHV0IHx8ICFpbnB1dC5maWxlcyB8fCBpbnB1dC5maWxlcy5sZW5ndGggPCAxKSByZXR1cm47XG4gICAgICAgIGxldCBmaWxlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0LmZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgZmlsZXMucHVzaChpbnB1dC5maWxlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgb25GaWxlc0Nob3NlbihmaWxlcyk7XG4gICAgICB9O1xuICAgICAgaW5wdXQuY2xpY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbk9wZW5GaWxlQ2hvb3Nlci5maXJlKHRoaXMsIHtcbiAgICAgICAgaW5wdXQ6IGlucHV0LFxuICAgICAgICBjYWxsYmFjazogb25GaWxlc0Nob3NlbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWNjb3JkaW9uVGFicygpOiBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWxbXSB7XG4gICAgbGV0IGFUYWJzO1xuXG4gICAgaWYgKHRoaXMuc2hvd0VsZW1lbnRFZGl0b3JBc1Byb3BlcnR5R3JpZCkge1xuICAgICAgYVRhYnMgPSB0aGlzLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLmtvRWxlbWVudEVkaXRvcigpLmtvVGFicygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy51c2VUYWJzSW5FbGVtZW50RWRpdG9yKSB7XG4gICAgICBhVGFicyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICBhVGFicyA9IHRoaXMucXVlc3Rpb25FZGl0b3JXaW5kb3cua29FZGl0b3IoKS5rb1RhYnMoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYVRhYnM7XG4gIH1cblxuICAvKipcbiAgICogQ29sbGFwc2UgYWxsIHByb3BlcnR5IGVkaXRvciB0YWJzIChhY2NvcmRpb25zKSBpbiBwcm9wZXJ0aWVzIHBhbmVsXG4gICAqL1xuICBwdWJsaWMgY29sbGFwc2VBbGxQcm9wZXJ0eVRhYnMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRBY2NvcmRpb25UYWJzKCkuZm9yRWFjaCgodGFiOiBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwpID0+IHtcbiAgICAgIHRhYi5jb2xsYXBzZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZCBhbGwgcHJvcGVydHkgZWRpdG9yIHRhYnMgKGFjY29yZGlvbnMpIGluIHByb3BlcnRpZXMgcGFuZWxcbiAgICovXG4gIHB1YmxpYyBleHBhbmRBbGxQcm9wZXJ0eVRhYnMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRBY2NvcmRpb25UYWJzKCkuZm9yRWFjaCgodGFiOiBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwpID0+IHtcbiAgICAgIHRhYi5leHBhbmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmQgY2VydGFpbiBwcm9wZXJ0eSBlZGl0b3IgdGFiIChhY2NvcmRpb24pIGluIHByb3BlcnRpZXMgcGFuZWxcbiAgICogbmFtZSAtIHRhYiBjYXRlZ29yeSBuYW1lXG4gICAqL1xuICBwdWJsaWMgZXhwYW5kUHJvcGVydHlUYWIobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5nZXRBY2NvcmRpb25UYWJzKCkuZm9yRWFjaCgodGFiOiBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwpID0+IHtcbiAgICAgIGlmICh0YWIubmFtZSAhPT0gbmFtZSkgcmV0dXJuO1xuICAgICAgdGFiLmV4cGFuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbGxhcHNlIGNlcnRhaW4gcHJvcGVydHkgZWRpdG9yIHRhYiAoYWNjb3JkaW9uKSBpbiBwcm9wZXJ0aWVzIHBhbmVsXG4gICAqIG5hbWUgLSB0YWIgY2F0ZWdvcnkgbmFtZVxuICAgKi9cbiAgcHVibGljIGNvbGxhcHNlUHJvcGVydHlUYWIobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5nZXRBY2NvcmRpb25UYWJzKCkuZm9yRWFjaCgodGFiOiBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwpID0+IHtcbiAgICAgIGlmICh0YWIubmFtZSA9PT0gbmFtZSkgdGFiLmNvbGxhcHNlKCk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleUVkaXRvciBleHRlbmRzIFN1cnZleUNyZWF0b3Ige1xuICBjb25zdHJ1Y3RvcihyZW5kZXJlZEVsZW1lbnQ6IGFueSA9IG51bGwsIG9wdGlvbnM6IGFueSA9IG51bGwpIHtcbiAgICBzdXBlcihyZW5kZXJlZEVsZW1lbnQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkZEVtcHR5UGFuZWxFbGVtZW50KFxuICBzdXJ2ZXk6IFN1cnZleUZvckRlc2lnbmVyLFxuICByb290OiBIVE1MRWxlbWVudCxcbiAgZHJhZ0Ryb3BIZWxwZXI6IGFueSxcbiAgcGFuZWw6IGFueVxuKTogSFRNTEVsZW1lbnQge1xuICB2YXIgZURpdjogSFRNTERpdkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBlRGl2LmNsYXNzTmFtZSA9IFwid2VsbCBjYXJkIGNhcmQtYmxvY2sgc3ZkLWVtcHR5LXBhbmVsXCI7XG4gIGVEaXYub25kcmFnb3ZlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgZHJhZ0Ryb3BIZWxwZXIuZG9EcmFnRHJvcE92ZXIoZSwgcGFuZWwpO1xuICB9O1xuICB2YXIgZVNwYW46IEhUTUxTcGFuRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICBlU3Bhbi50ZXh0Q29udGVudCA9IHN1cnZleS5nZXRFZGl0b3JMb2NTdHJpbmcoXCJzdXJ2ZXkuZHJvcFF1ZXN0aW9uXCIpO1xuICBlRGl2LmFwcGVuZENoaWxkKGVTcGFuKTtcbiAgcm9vdC5hcHBlbmRDaGlsZChlRGl2KTtcbiAgcmV0dXJuIGVEaXY7XG59XG4iLCJpbXBvcnQgeyBlblN0cmluZ3MgfSBmcm9tIFwiLi9sb2NhbGl6YXRpb24vZW5nbGlzaFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcblxuZXhwb3J0IHZhciBlZGl0b3JMb2NhbGl6YXRpb24gPSB7XG4gIGNhbWVsQ2FzZUJyZWFraW5nOiB0cnVlLFxuICBjdXJyZW50TG9jYWxlOiBcIlwiLFxuICBsb2NhbGVzOiA8e1tpbmRleDogc3RyaW5nXTogYW55fT57fSxcbiAgZ2V0U3RyaW5nOiBmdW5jdGlvbihzdHJOYW1lOiBzdHJpbmcsIGxvY2FsZTogc3RyaW5nID0gbnVsbCkge1xuICAgIHZhciBsb2MgPSB0aGlzLmdldExvY2FsZShsb2NhbGUpO1xuICAgIHZhciBkZWZhdWx0TG9jYWxlID0gdGhpcy5nZXRMb2NhbGUoXCJlblwiKTtcbiAgICB2YXIgcGF0aCA9IHN0ck5hbWUuc3BsaXQoXCIuXCIpO1xuICAgIHZhciBvYmogPSBsb2M7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICBvYmogPSBvYmpbcGF0aFtpXV07XG4gICAgICBpZiAoIW9iaiAmJiBvYmogIT09IFwiXCIpIHtcbiAgICAgICAgaWYgKGxvYyA9PT0gZGVmYXVsdExvY2FsZSkgcmV0dXJuIHBhdGhbaV07XG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0cmluZyhzdHJOYW1lLCBcImVuXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuICBoYXNTdHJpbmc6IGZ1bmN0aW9uKHN0ck5hbWU6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgdmFyIGxvYyA9IHRoaXMuZ2V0TG9jYWxlKGxvY2FsZSk7XG4gICAgdmFyIHBhdGggPSBzdHJOYW1lLnNwbGl0KFwiLlwiKTtcbiAgICB2YXIgb2JqID0gbG9jO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgb2JqID0gb2JqW3BhdGhbaV1dO1xuICAgICAgaWYgKCFvYmogJiYgb2JqICE9PSBcIlwiKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuICBnZXRMb2NhbGVOYW1lOiBmdW5jdGlvbihsb2M6IHN0cmluZywgZGVmYXVsdExvY2FsZTogc3RyaW5nID0gbnVsbCk6IHN0cmluZyB7XG4gICAgdmFyIGxvY2FsZU5hbWVzID0gU3VydmV5LnN1cnZleUxvY2FsaXphdGlvbltcImxvY2FsZU5hbWVzXCJdO1xuICAgIGlmICghZGVmYXVsdExvY2FsZSkge1xuICAgICAgZGVmYXVsdExvY2FsZSA9IFN1cnZleS5zdXJ2ZXlMb2NhbGl6YXRpb24uZGVmYXVsdExvY2FsZTtcbiAgICB9XG4gICAgcmV0dXJuICEhbG9jXG4gICAgICA/IGxvY2FsZU5hbWVzW2xvY11cbiAgICAgIDogZWRpdG9yTG9jYWxpemF0aW9uXG4gICAgICAgIC5nZXRTdHJpbmcoXCJlZC5kZWZhdWx0TG9jYWxlXCIpXG4gICAgICAgIFtcImZvcm1hdFwiXShsb2NhbGVOYW1lc1tkZWZhdWx0TG9jYWxlXSk7XG4gIH0sXG4gIGdldFByb3BlcnR5TmFtZTogZnVuY3Rpb24oc3RyTmFtZTogc3RyaW5nLCBkZWZhdWx0TmFtZTogc3RyaW5nID0gbnVsbCkge1xuICAgIHZhciBvYmogPSB0aGlzLmdldFByb3BlcnR5KHN0ck5hbWUsIGRlZmF1bHROYW1lKTtcbiAgICB2YXIgbmFtZSA9IG9ialtcIm5hbWVcIl07XG4gICAgaWYgKCEhbmFtZSkge1xuICAgICAgaWYgKG5hbWUgIT0gc3RyTmFtZSkgcmV0dXJuIG5hbWU7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdXRvUHJvcGVydHlOYW1lKG5hbWUsIGRlZmF1bHROYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcbiAgZ2V0UHJvcGVydHlUaXRsZTogZnVuY3Rpb24oc3RyTmFtZTogc3RyaW5nKSB7XG4gICAgdmFyIG9iaiA9IHRoaXMuZ2V0UHJvcGVydHkoc3RyTmFtZSk7XG4gICAgaWYgKG9ialtcInRpdGxlXCJdKSByZXR1cm4gb2JqW1widGl0bGVcIl07XG4gICAgcmV0dXJuIFwiXCI7XG4gIH0sXG4gIGdldFByb3BlcnR5TmFtZUluRWRpdG9yOiBmdW5jdGlvbihcbiAgICBzdHJOYW1lOiBzdHJpbmcsXG4gICAgZGVmYXVsdE5hbWU6IHN0cmluZyA9IG51bGxcbiAgKSB7XG4gICAgdmFyIG9iaiA9IHRoaXMuZ2V0U3RyaW5nKFwicGUuXCIgKyBzdHJOYW1lKTtcbiAgICBpZiAob2JqICE9PSBzdHJOYW1lKSByZXR1cm4gb2JqO1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5TmFtZShzdHJOYW1lLCBkZWZhdWx0TmFtZSk7XG4gIH0sXG4gIGdldFByb3BlcnR5OiBmdW5jdGlvbihzdHJOYW1lOiBzdHJpbmcsIGRlZmF1bHROYW1lOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgdmFyIG9iaiA9IHRoaXMuZ2V0U3RyaW5nKFwicC5cIiArIHN0ck5hbWUpO1xuICAgIGlmIChvYmogIT09IHN0ck5hbWUpIHJldHVybiBvYmo7XG4gICAgdmFyIHBvcyA9IHN0ck5hbWUuaW5kZXhPZihcIl9cIik7XG4gICAgaWYgKHBvcyA8IC0xKSByZXR1cm4gdGhpcy5nZXRBdXRvUHJvcGVydHlOYW1lKG9iaiwgZGVmYXVsdE5hbWUpO1xuICAgIHN0ck5hbWUgPSBzdHJOYW1lLnN1YnN0cihwb3MgKyAxKTtcbiAgICBvYmogPSB0aGlzLmdldFN0cmluZyhcInAuXCIgKyBzdHJOYW1lKTtcbiAgICBpZiAob2JqICE9PSBzdHJOYW1lKSByZXR1cm4gb2JqO1xuICAgIHJldHVybiB0aGlzLmdldEF1dG9Qcm9wZXJ0eU5hbWUob2JqLCBkZWZhdWx0TmFtZSk7XG4gIH0sXG4gIGdldEF1dG9Qcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uKHByb3BOYW1lOiBzdHJpbmcsIGRlZmF1bHROYW1lOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgaWYgKCEhZGVmYXVsdE5hbWUpIHJldHVybiBkZWZhdWx0TmFtZTtcbiAgICBpZiAoIXByb3BOYW1lIHx8ICF0aGlzLmNhbWVsQ2FzZUJyZWFraW5nKSByZXR1cm4gcHJvcE5hbWU7XG4gICAgdmFyIHJlcyA9IHByb3BOYW1lWzBdLnRvVXBwZXJDYXNlKCk7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBwcm9wTmFtZS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHByb3BOYW1lW2ldID09PSBwcm9wTmFtZVtpXS50b1VwcGVyQ2FzZSgpKSB7XG4gICAgICAgIHJlcyArPSBcIiBcIjtcbiAgICAgIH1cbiAgICAgIHJlcyArPSBwcm9wTmFtZVtpXS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9LFxuICBnZXRQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbih2YWx1ZTogYW55LCBsb2NhbGU6IHN0cmluZyA9IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZUludGVybmFsKHZhbHVlLCBcInB2XCIsIGxvY2FsZSk7XG4gIH0sXG4gIGdldFZhbGlkYXRvck5hbWU6IGZ1bmN0aW9uKG5hbWU6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVJbnRlcm5hbChuYW1lLCBcInZhbGlkYXRvcnNcIiwgbG9jYWxlKTtcbiAgfSxcbiAgZ2V0VHJpZ2dlck5hbWU6IGZ1bmN0aW9uKG5hbWU6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVJbnRlcm5hbChuYW1lLCBcInRyaWdnZXJzXCIsIGxvY2FsZSk7XG4gIH0sXG4gIGdldExvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICAgIGlmICghbG9jYWxlKSBsb2NhbGUgPSB0aGlzLmN1cnJlbnRMb2NhbGU7XG4gICAgdmFyIGxvYyA9IGxvY2FsZSA/IHRoaXMubG9jYWxlc1tsb2NhbGVdIDogZGVmYXVsdFN0cmluZ3M7XG4gICAgaWYgKCFsb2MpIGxvYyA9IGRlZmF1bHRTdHJpbmdzO1xuICAgIHJldHVybiBsb2M7XG4gIH0sXG4gIGdldFZhbHVlSW50ZXJuYWwodmFsdWU6IGFueSwgcHJlZml4OiBzdHJpbmcsIGxvY2FsZTogc3RyaW5nID0gbnVsbCkge1xuICAgIGlmICh2YWx1ZSA9PT0gXCJcIiB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gXCJcIjtcbiAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgdmFyIGxvYyA9IHRoaXMuZ2V0TG9jYWxlKGxvY2FsZSk7XG4gICAgdmFyIHJlcyA9IGxvY1twcmVmaXhdID8gbG9jW3ByZWZpeF1bdmFsdWVdIDogbnVsbDtcbiAgICBpZiAoIXJlcykgcmVzID0gZGVmYXVsdFN0cmluZ3NbcHJlZml4XVt2YWx1ZV07XG4gICAgcmV0dXJuIHJlcyA/IHJlcyA6IHZhbHVlO1xuICB9LFxuICBnZXRMb2NhbGVzOiBmdW5jdGlvbigpOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgcmVzLnB1c2goXCJcIik7XG4gICAgZm9yICh2YXIga2V5IGluIHRoaXMubG9jYWxlcykge1xuICAgICAgcmVzLnB1c2goa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NTdHJpbmcoc3RyTmFtZTogc3RyaW5nLCBsb2NhbGU6IHN0cmluZyA9IG51bGwpIHtcbiAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoc3RyTmFtZSwgbG9jYWxlKTtcbn1cblxuZXhwb3J0IHZhciBkZWZhdWx0U3RyaW5ncyA9IGVuU3RyaW5ncztcbiIsImV4cG9ydCB2YXIgX19hc3NpZ24gPVxuICBPYmplY3RbXCJhc3NpZ25cIl0gfHxcbiAgZnVuY3Rpb24odGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgZm9yICh2YXIgcCBpbiBzKVxuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0YXJnZXRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKHRoaXNDbGFzcywgYmFzZUNsYXNzKSB7XG4gIGZvciAodmFyIHAgaW4gYmFzZUNsYXNzKVxuICAgIGlmIChiYXNlQ2xhc3MuaGFzT3duUHJvcGVydHkocCkpIHRoaXNDbGFzc1twXSA9IGJhc2VDbGFzc1twXTtcbiAgZnVuY3Rpb24gX18oKSB7XG4gICAgdGhpcy5jb25zdHJ1Y3RvciA9IHRoaXNDbGFzcztcbiAgfVxuICB0aGlzQ2xhc3MucHJvdG90eXBlID1cbiAgICBiYXNlQ2xhc3MgPT09IG51bGxcbiAgICAgID8gT2JqZWN0LmNyZWF0ZShiYXNlQ2xhc3MpXG4gICAgICA6ICgoX18ucHJvdG90eXBlID0gYmFzZUNsYXNzLnByb3RvdHlwZSksIG5ldyBfXygpKTtcbn1cbiIsIi8vIHN0eWxlc1xuaW1wb3J0IFwiLi4vdXRpbHMvY3VzdG9tLWNoZWNrYm94LnNjc3NcIjtcbmltcG9ydCBcIi4uL3V0aWxzL2N1c3RvbS1zZWxlY3Quc2Nzc1wiO1xuaW1wb3J0IFwiLi4vdXRpbHMvZGRtZW51LnNjc3NcIjtcbmltcG9ydCBcIi4uL21haW4uc2Nzc1wiO1xuXG5pbXBvcnQgXCIuLi8uLi92ZW5kb3Iva25vY2tvdXQtc29ydGFibGUuanNcIjtcblxuZXhwb3J0IGxldCBWZXJzaW9uOiBzdHJpbmc7XG5WZXJzaW9uID0gYCR7cHJvY2Vzcy5lbnYuVkVSU0lPTn1gO1xuXG5pbXBvcnQgeyBTZXJpYWxpemVyIH0gZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuU2VyaWFsaXplci5yZW1vdmVDbGFzcyhcInRhZ2JveFwiKTsgLy8gcmVtb3ZlIGFmdGVyIHRhZ2JveCBpbXBsZW1lbnRlZFxuXG5leHBvcnQgeyBlblN0cmluZ3MgfSBmcm9tIFwiLi4vbG9jYWxpemF0aW9uL2VuZ2xpc2hcIjtcbmV4cG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiwgZGVmYXVsdFN0cmluZ3MgfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5leHBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gYXMgbG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuZXhwb3J0IHsgc2V0dGluZ3MgfSBmcm9tIFwiLi4vc2V0dGluZ3NcIjtcblxuZXhwb3J0IHsgRHJhZ0Ryb3BIZWxwZXIgfSBmcm9tIFwiLi4vZHJhZ2Ryb3BoZWxwZXJcIjtcbmV4cG9ydCB7IEVkaXRhYmxlT2JqZWN0IH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9lZGl0YWJsZU9iamVjdFwiO1xuZXhwb3J0IHsgU3VydmV5RWxlbWVudFNlbGVjdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9zdXJ2ZXlFbGVtZW50U2VsZWN0b3JcIjtcbmV4cG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5leHBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUN1c3RvbUVkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlDdXN0b21FZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeSB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlFZGl0b3JGYWN0b3J5XCI7XG5leHBvcnQge1xuICBTdXJ2ZXlTdHJpbmdQcm9wZXJ0eUVkaXRvcixcbiAgU3VydmV5RHJvcGRvd25Qcm9wZXJ0eUVkaXRvcixcbiAgU3VydmV5Qm9vbGVhblByb3BlcnR5RWRpdG9yLFxuICBTdXJ2ZXlOdW1iZXJQcm9wZXJ0eUVkaXRvcixcbn0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmV4cG9ydCB7IFN1cnZleVByb3BlcnR5VGV4dEl0ZW1zRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eVRleHRJdGVtc0VkaXRvclwiO1xuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlJdGVtc0VkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlJdGVtc0VkaXRvclwiO1xuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlJdGVtVmFsdWVzRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUl0ZW1WYWx1ZXNFZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleVByb3BlcnR5TXVsdGlwbGVWYWx1ZXNFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5TXVsdGlwbGVWYWx1ZXNFZGl0b3JcIjtcbmV4cG9ydCB7XG4gIFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yLFxuICBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckl0ZW0sXG59IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlOZXN0ZWRQcm9wZXJ0eUVkaXRvclwiO1xuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlQYWdlc0VkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlQYWdlc0VkaXRvclwiO1xuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlEcm9wZG93bkNvbHVtbnNFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5TWF0cml4RHJvcGRvd25Db2x1bW5zRWRpdG9yXCI7XG5leHBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU1vZGFsRWRpdG9yXCI7XG5leHBvcnQge1xuICBTdXJ2ZXlQcm9wZXJ0eVRleHRFZGl0b3IsXG4gIFN1cnZleVByb3BlcnR5SHRtbEVkaXRvcixcbn0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU1vZGFsRWRpdG9yXCI7XG5leHBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUNvbmRpdGlvbkVkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlDb25kaXRpb25FZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleVByb3BlcnR5UmVzdWx0ZnVsbEVkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlSZXN0ZnVsbEVkaXRvclwiO1xuZXhwb3J0IHtcbiAgU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IsXG4gIFN1cnZleVByb3BlcnR5RGVmYXVsdFJvd1ZhbHVlRWRpdG9yLFxuICBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRQYW5lbFZhbHVlRWRpdG9yLFxuICBTdXJ2ZXlQcm9wZXJ0eVNldEVkaXRvcixcbn0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvclwiO1xuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlUcmlnZ2Vyc0VkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlUcmlnZ2Vyc0VkaXRvclwiO1xuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlIdG1sQ29uZGl0aW9uRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUh0bWxDb25kaXRpb25FZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleVByb3BlcnR5VXJsQ29uZGl0aW9uRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eVVybENvbmRpdGlvbkVkaXRvclwiO1xuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlDYWxjdWxhdGVkVmFsdWVFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5Q2FsY3VsYXRlZFZhbHVlc1wiO1xuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlWYWxpZGF0b3JzRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eVZhbGlkYXRvcnNFZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleVByb3BlcnR5Q2VsbHNFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5Q2VsbHNFZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleVByb3BlcnR5QmluZGluZ3NFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5QmluZGluZ3NFZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleU9iamVjdHMgfSBmcm9tIFwiLi4vc3VydmV5T2JqZWN0c1wiO1xuZXhwb3J0IHsgU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uIH0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvckRlZmluaXRpb25cIjtcbmV4cG9ydCB7XG4gIFN1cnZleUNyZWF0b3JQcm9wZXJ0aWVzLFxuICBjcmVhdG9yUHJvcGVydGllcyxcbn0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9wcm9wZXJ0aWVzXCI7XG5leHBvcnQge1xuICBTdXJ2ZXlQcm9wZXJ0eUVkaXRvclNob3dXaW5kb3csXG4gIFN1cnZleVF1ZXN0aW9uRWRpdG9yLFxuICBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwsXG59IGZyb20gXCIuLi9xdWVzdGlvbkVkaXRvcnMvcXVlc3Rpb25FZGl0b3JcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4uL2NvbXBvbmVudHMvdG9vbGJveFwiO1xuZXhwb3J0IHsgUXVlc3Rpb25Ub29sYm94IH0gZnJvbSBcIi4uL3Rvb2xib3hcIjtcbmV4cG9ydCB7IFN1cnZleU9iamVjdFByb3BlcnR5IH0gZnJvbSBcIi4uL29iamVjdFByb3BlcnR5XCI7XG5leHBvcnQgeyBQYWdlc0VkaXRvclZpZXdNb2RlbCB9IGZyb20gXCIuLi9jb21wb25lbnRzL3BhZ2VzLWVkaXRvclwiO1xuZXhwb3J0IHsgRWxlbWVudFNlbGVjdG9yVmlld01vZGVsIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZWxlbWVudC1zZWxlY3RvclwiO1xuZXhwb3J0IHsgVG9vbGJhciB9IGZyb20gXCIuLi9jb21wb25lbnRzL3Rvb2xiYXJcIjtcbmV4cG9ydCB7IFN1cnZleVRleHRXb3JrZXIgfSBmcm9tIFwiLi4vdGV4dFdvcmtlclwiO1xuZXhwb3J0IHsgT2JqVHlwZSwgU3VydmV5SGVscGVyIH0gZnJvbSBcIi4uL3N1cnZleUhlbHBlclwiO1xuZXhwb3J0IHsgU3VydmV5TGl2ZVRlc3RlciB9IGZyb20gXCIuLi90YWJzL3Rlc3RcIjtcbmV4cG9ydCB7IFN1cnZleUVtYmVkaW5nV2luZG93IH0gZnJvbSBcIi4uL3RhYnMvZW1iZWRcIjtcbmV4cG9ydCB7IFF1ZXN0aW9uQ29udmVydGVyIH0gZnJvbSBcIi4uL3F1ZXN0aW9uY29udmVydGVyXCI7XG5leHBvcnQgeyBTdXJ2ZXlKU09ORWRpdG9yIH0gZnJvbSBcIi4uL3RhYnMvanNvbi1lZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleUxvZ2ljIH0gZnJvbSBcIi4uL3RhYnMvbG9naWNcIjtcbmV4cG9ydCB7XG4gIFN1cnZleUZvckRlc2lnbmVyLFxuICByZWdpc3RlckFkb3JuZXIsXG4gIHJlbW92ZUFkb3JuZXJzLFxufSBmcm9tIFwiLi4vc3VydmV5anNPYmplY3RzXCI7XG5leHBvcnQgeyBFeHRlbnRpb25zIH0gZnJvbSBcIi4uL2V4dGVudGlvbnNcIjtcbmV4cG9ydCB7IFN1cnZleUVkaXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcbmV4cG9ydCB7IFN1cnZleUNyZWF0b3IgfSBmcm9tIFwiLi4vZWRpdG9yXCI7XG5leHBvcnQgeyBTdHlsZXNNYW5hZ2VyIH0gZnJvbSBcIi4uL3N0eWxlc21hbmFnZXJcIjtcblxuLy9sb2NhbGl6YXRpb25cbmltcG9ydCBcIi4uL2xvY2FsaXphdGlvbi9hcmFiaWNcIjtcbmltcG9ydCBcIi4uL2xvY2FsaXphdGlvbi9jcm9hdGlhblwiO1xuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL2N6ZWNoXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vZGFuaXNoXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vZHV0Y2hcIjtcbmltcG9ydCBcIi4uL2xvY2FsaXphdGlvbi9maW5uaXNoXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vZnJlbmNoXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vZ2VybWFuXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vaHVuZ2FyaWFuXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vaW5kb25lc2lhblwiO1xuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL2l0YWxpYW5cIjtcbmltcG9ydCBcIi4uL2xvY2FsaXphdGlvbi9qYXBhbmVzZVwiO1xuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL2tvcmVhblwiO1xuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL21hbGF5XCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vbW9uZ29saWFuXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vbm9yd2VnaWFuXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vcGVyc2lhblwiO1xuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL3BvbGlzaFwiO1xuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL3BvcnR1Z3Vlc2VcIjtcbmltcG9ydCBcIi4uL2xvY2FsaXphdGlvbi9ydXNzaWFuXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vc2ltcGxpZmllZC1jaGluZXNlXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vc2xvdmFrXCI7XG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vc3BhbmlzaFwiO1xuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL3N3ZWRpc2hcIjtcbmltcG9ydCBcIi4uL2xvY2FsaXphdGlvbi90YWppa1wiO1xuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL3RyYWRpdGlvbmFsLWNoaW5lc2VcIjtcbmltcG9ydCBcIi4uL2xvY2FsaXphdGlvbi90dXJraXNoXCI7XG5cbmV4cG9ydCB7XG4gIFRyYW5zbGF0aW9uLFxuICBUcmFuc2xhdGlvbkdyb3VwLFxuICBUcmFuc2xhdGlvbkl0ZW0sXG4gIFRyYW5zbGF0aW9uSXRlbUJhc2UsXG59IGZyb20gXCIuLi90YWJzL3RyYW5zbGF0aW9uXCI7XG5cbi8vYWRvcm5lcnNcbmV4cG9ydCB7XG4gIHRpdGxlQWRvcm5lcixcbiAgaXRlbVRpdGxlQWRvcm5lcixcbiAgZGVzY3JpcHRpb25BZG9ybmVyLFxufSBmcm9tIFwiLi4vYWRvcm5lcnMvdGl0bGUtZWRpdG9yXCI7XG5leHBvcnQgeyBpdGVtQWRvcm5lciwgaXRlbURyYWdnYWJsZUFkb3JuZXIgfSBmcm9tIFwiLi4vYWRvcm5lcnMvaXRlbS1lZGl0b3JcIjtcbmV4cG9ydCB7IGxhYmVsQWRvcm5lciB9IGZyb20gXCIuLi9hZG9ybmVycy9sYWJlbC1lZGl0b3JcIjtcbmV4cG9ydCB7XG4gIHF1ZXN0aW9uQWN0aW9uc0Fkb3JuZXIsXG4gIHBhbmVsQWN0aW9uc0Fkb3JuZXIsXG59IGZyb20gXCIuLi9hZG9ybmVycy9xdWVzdGlvbi1hY3Rpb25zXCI7XG5leHBvcnQgeyBzZWxlY3RJdGVtc0Fkb3JuZXIgfSBmcm9tIFwiLi4vYWRvcm5lcnMvc2VsZWN0LWl0ZW1zXCI7XG5cbi8vIGV4cG9ydFxuZXhwb3J0IHsgcmF0aW5nSXRlbUFkb3JuZXIgfSBmcm9tIFwiLi4vYWRvcm5lcnMvcmF0aW5nLWl0ZW0tZWRpdG9yXCI7XG5leHBvcnQge1xuICBpbWFnZUl0ZW1zQWRvcm5lcixcbiAgYWRkSW1hZ2VJdGVtQWRvcm5lcixcbn0gZnJvbSBcIi4uL2Fkb3JuZXJzL2ltYWdlLWl0ZW1zXCI7XG5leHBvcnQgeyBmbG93cGFuZWxBY3Rpb25zQWRvcm5lciB9IGZyb20gXCIuLi9hZG9ybmVycy9mbG93cGFuZWwtYWN0aW9uc1wiO1xuZXhwb3J0IHsgaW1hZ2VBZG9ybmVyIH0gZnJvbSBcIi4uL2Fkb3JuZXJzL2ltYWdlXCI7XG5leHBvcnQgeyB0aXRsZUltYWdlQWRvcm5lciB9IGZyb20gXCIuLi9hZG9ybmVycy90aXRsZS1pbWFnZVwiO1xuZXhwb3J0IHsgVGl0bGVBY3Rpb25zVmlld01vZGVsIH0gZnJvbSBcIi4uL2Fkb3JuZXJzL3RpdGxlLWFjdGlvbnNcIjtcblxuLy8gdWkgY29tcG9uZW50c1xuZXhwb3J0IHtcbiAgSUFjY29yZGlvbkl0ZW1EYXRhLFxuICBBY2NvcmRpb25JdGVtTW9kZWwsXG4gIEFjY29yZGlvblZpZXdNb2RlbCxcbn0gZnJvbSBcIi4uL3V0aWxzL2FjY29yZGlvblwiO1xuZXhwb3J0IHsgQnV0dG9uVmlld01vZGVsIH0gZnJvbSBcIi4uL3V0aWxzL2J1dHRvblwiO1xuZXhwb3J0IHsgRHJvcGRvd25WaWV3TW9kZWwgfSBmcm9tIFwiLi4vdXRpbHMvZHJvcGRvd25cIjtcbmV4cG9ydCB7IEJvb2xlYW5WaWV3TW9kZWwgfSBmcm9tIFwiLi4vdXRpbHMvYm9vbGVhblwiO1xuZXhwb3J0IHsgU1ZHSWNvbkJpbmRpbmcgfSBmcm9tIFwiLi4vdXRpbHMvc3ZnLWljb25cIjtcbmV4cG9ydCB7IFN1cnZleVdpZGdldEJpbmRpbmcgfSBmcm9tIFwiLi4vdXRpbHMvc3VydmV5LXdpZGdldFwiO1xuXG5leHBvcnQgeyBTcGxpdHRlckNvbXBvbmVudFZpZXdNb2RlbCB9IGZyb20gXCIuLi91dGlscy9zcGxpdHRlclwiO1xuZXhwb3J0IHsgRGVzaWduZXJDb250YWluZXJWaWV3TW9kZWwgfSBmcm9tIFwiLi4vdXRpbHMvZGVzaWduZXItY29udGFpbmVyXCI7XG5leHBvcnQgeyBEZXNpZ25lckhDb250YWluZXJWaWV3TW9kZWwgfSBmcm9tIFwiLi4vdXRpbHMvZGVzaWduZXItaC1jb250YWluZXJcIjtcblxuZXhwb3J0IHsgU3VydmV5UHJvcGVydHlPbmVTZWxlY3RlZEVkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlPbmVTZWxlY3RlZEVkaXRvclwiO1xuXG4vLyBwcm9wZXJ0eSBncmlkXG5leHBvcnQgeyBQcm9wZXJ0eUdyaWRWaWV3TW9kZWwgfSBmcm9tIFwiLi4vcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkXCI7XG5leHBvcnQgeyBPYmplY3RFZGl0b3JWaWV3TW9kZWwgfSBmcm9tIFwiLi4vcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yXCI7XG5leHBvcnQgeyBPYmplY3RFZGl0b3JDb250ZW50Vmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWdyaWQvb2JqZWN0LWVkaXRvci1jb250ZW50XCI7XG5leHBvcnQgeyBPYmplY3RFZGl0b3JUYWJWaWV3TW9kZWwgfSBmcm9tIFwiLi4vcHJvcGVydHktZ3JpZC9vYmplY3QtZWRpdG9yLXRhYlwiO1xuZXhwb3J0IHsgT2JqZWN0RWRpdG9yT2xkVGFibGVDb250ZW50Vmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWdyaWQvb2JqZWN0LWVkaXRvci1vbGQtdGFibGUtY29udGVudFwiO1xuXG4vLyBwcm9wZXJ0eSBlZGl0b3JzXG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvclZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL3Byb3BlcnR5LWVkaXRvclwiO1xuZXhwb3J0IHsgUHJvcGVydHlFZGl0b3JFcnJvclZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL2Vycm9yXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvclN0cmluZ1ZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL3N0cmluZ1wiO1xuZXhwb3J0IHsgUHJvcGVydHlFZGl0b3JEcm9wZG93blZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL2Ryb3Bkb3duXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvckJvb2xlYW5WaWV3TW9kZWwgfSBmcm9tIFwiLi4vcHJvcGVydHktZWRpdG9ycy9ib29sZWFuXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvclN3aXRjaFZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL3N3aXRjaFwiO1xuZXhwb3J0IHsgUHJvcGVydHlFZGl0b3JOdW1iZXJWaWV3TW9kZWwgfSBmcm9tIFwiLi4vcHJvcGVydHktZWRpdG9ycy9udW1iZXJcIjtcbmV4cG9ydCB7IFByb3BlcnR5RWRpdG9yQ29sb3JWaWV3TW9kZWwgfSBmcm9tIFwiLi4vcHJvcGVydHktZWRpdG9ycy9jb2xvclwiO1xuZXhwb3J0IHsgUHJvcGVydHlFZGl0b3JNb2RhbFZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL21vZGFsXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvck1vZGFsQ29udGVudCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL21vZGFsLWNvbnRlbnRcIjtcbmV4cG9ydCB7IFByb3BlcnR5RWRpdG9yVGV4dFZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL3RleHRcIjtcbmV4cG9ydCB7IFByb3BlcnR5RWRpdG9yU3RyaW5nc1ZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL3N0cmluZ3NcIjtcbmV4cG9ydCB7IFByb3BlcnR5RWRpdG9yQ29uZGl0aW9uVmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWVkaXRvcnMvY29uZGl0aW9uXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvckNlbGxzVmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWVkaXRvcnMvY2VsbHNcIjtcbmV4cG9ydCB7IFByb3BlcnR5RWRpdG9yRXhwcmVzc2lvblZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL2V4cHJlc3Npb25cIjtcbmV4cG9ydCB7IFByb3BlcnR5RWRpdG9ySFRNTFZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL2h0bWwtcGVcIjtcbmV4cG9ydCB7IFByb3BlcnR5RWRpdG9ySXRlbVZhbHVlc1ZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL2l0ZW0tdmFsdWVzXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvclZhbHVlVmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWVkaXRvcnMvZGVmYXVsdC12YWx1ZVwiO1xuZXhwb3J0IHsgUHJvcGVydHlFZGl0b3JPbmVTZWxlY3RlZFZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL29uZS1zZWxlY3RlZFwiO1xuZXhwb3J0IHsgUHJvcGVydHlFZGl0b3JSZXN0ZnVsbFZpZXdNb2RlbCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1lZGl0b3JzL3Jlc3RmdWxsXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvck11bHRpcGxlVmFsdWVzVmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWVkaXRvcnMvbXVsdGlwbGUtdmFsdWVzXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvck5lc3RlZEl0ZW1zVmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWVkaXRvcnMvbmVzdGVkLWl0ZW1zXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvck5lc3RlZEl0ZW1WaWV3TW9kZWwgfSBmcm9tIFwiLi4vcHJvcGVydHktZWRpdG9ycy9uZXN0ZWQtaXRlbVwiO1xuZXhwb3J0IHsgUHJvcGVydHlFZGl0b3JOZXN0ZWRWaWV3TW9kZWwgfSBmcm9tIFwiLi4vcHJvcGVydHktZWRpdG9ycy9uZXN0ZWRcIjtcbmV4cG9ydCB7IFByb3BlcnR5RWRpdG9yQ3VzdG9tVmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWVkaXRvcnMvY3VzdG9tXCI7XG5leHBvcnQgeyBQcm9wZXJ0eUVkaXRvckJpbmRpbmdzVmlld01vZGVsIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWVkaXRvcnMvYmluZGluZ3NcIjtcblxuZXhwb3J0IHsgU3VydmV5RmlsZVByb3BlcnR5RWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5LWVkaXRvcnMvZmlsZVwiO1xuZXhwb3J0IHsgc2ltdWxhdG9yRGV2aWNlcyB9IGZyb20gXCIuLi9jb21wb25lbnRzL3NpbXVsYXRvclwiO1xuIiwiaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgRXhwcmVzc2lvblRvRGlzcGxheVRleHQge1xuICBwcml2YXRlIGN1cnJlbnRRdWVzdGlvbjogU3VydmV5LlF1ZXN0aW9uO1xuICBwcml2YXRlIHNob3dUaXRsZXM6IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCwgcHJpdmF0ZSBvcHRpb25zOiBhbnkgPSBudWxsKSB7fVxuICBwdWJsaWMgdG9EaXNwbGF5VGV4dChleHByZXNzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zdXJ2ZXkpIHJldHVybiBleHByZXNzaW9uO1xuICAgIHRoaXMuc2hvd1RpdGxlcyA9XG4gICAgICAhIXRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuc2hvd1RpdGxlc0luRXhwcmVzc2lvbnMgPT0gdHJ1ZTtcbiAgICB2YXIgcGFyc2VyID0gbmV3IFN1cnZleS5Db25kaXRpb25zUGFyc2VyKCk7XG4gICAgdmFyIG5vZGUgPSBwYXJzZXIucGFyc2VFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xuICAgIGlmICghbm9kZSkgcmV0dXJuIGV4cHJlc3Npb247XG4gICAgaWYgKCEhbm9kZVtcImdldFR5cGVcIl0pIHJldHVybiB0aGlzLnRvRGlzcGxheVRleHRDb3JlKG5vZGUpO1xuICAgIGlmICghdGhpcy5zaG93VGl0bGVzKSByZXR1cm4gZXhwcmVzc2lvbjtcbiAgICB2YXIgdmFyaWFibGVzID0gW107XG4gICAgbm9kZS5zZXRWYXJpYWJsZXModmFyaWFibGVzKTtcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlVmFyaWFibGVzKGV4cHJlc3Npb24sIHZhcmlhYmxlcyk7XG4gIH1cbiAgcHJpdmF0ZSB0b0Rpc3BsYXlUZXh0Q29yZShub2RlOiBTdXJ2ZXkuT3BlcmFuZCk6IHN0cmluZyB7XG4gICAgdGhpcy5jdXJyZW50UXVlc3Rpb24gPSBudWxsO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgaXNSb290ID0gdHJ1ZTtcbiAgICB2YXIgc3RyRnVuYyA9IGZ1bmN0aW9uIChvcDogU3VydmV5Lk9wZXJhbmQpOiBzdHJpbmcge1xuICAgICAgdmFyIGxvY0lzUm9vdCA9IGlzUm9vdDtcbiAgICAgIGlzUm9vdCA9IGZhbHNlO1xuICAgICAgaWYgKHNlbGYuc2hvd1RpdGxlcyAmJiBvcC5nZXRUeXBlKCkgPT0gXCJ2YXJpYWJsZVwiKSB7XG4gICAgICAgIHJldHVybiBzZWxmLmdldFF1ZXN0aW9uVGV4dCg8U3VydmV5LlZhcmlhYmxlPm9wKTtcbiAgICAgIH1cbiAgICAgIGlmIChzZWxmLnNob3dUaXRsZXMgJiYgb3AuZ2V0VHlwZSgpID09IFwiY29uc3RcIikge1xuICAgICAgICByZXR1cm4gc2VsZi5nZXREaXNwbGF5VGV4dCg8U3VydmV5LkNvbnN0Pm9wKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcC5nZXRUeXBlKCkgPT0gXCJiaW5hcnlcIikge1xuICAgICAgICBzZWxmLnByb2NlZWRCaW5hcnkoPFN1cnZleS5CaW5hcnlPcGVyYW5kPm9wKTtcbiAgICAgICAgcmV0dXJuIHNlbGYuZ2V0RGlzcGxheUJpbmFyeShcbiAgICAgICAgICA8U3VydmV5LkJpbmFyeU9wZXJhbmQ+b3AsXG4gICAgICAgICAgbG9jSXNSb290LFxuICAgICAgICAgIHN0ckZ1bmNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcC5nZXRUeXBlKCkgPT0gXCJ1bmFyeVwiKSB7XG4gICAgICAgIHJldHVybiBzZWxmLmdldERpc3BsYXlVbmFyeSg8U3VydmV5LlVuYXJ5T3BlcmFuZD5vcCwgc3RyRnVuYyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gICAgcmV0dXJuIG5vZGUudG9TdHJpbmcoc3RyRnVuYyk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRRdWVzdGlvblRleHQob3A6IFN1cnZleS5WYXJpYWJsZSk6IHN0cmluZyB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5nZXRRdWVzdGlvbkJ5TmFtZShvcC52YXJpYWJsZSk7XG4gICAgaWYgKCFxdWVzdGlvbiB8fCAhcXVlc3Rpb24udGl0bGUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIFwie1wiICsgcXVlc3Rpb24udGl0bGUgKyBcIn1cIjtcbiAgfVxuICBwcml2YXRlIGdldERpc3BsYXlUZXh0KG9wOiBTdXJ2ZXkuQ29uc3QpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jdXJyZW50UXVlc3Rpb24pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgdmFyIHJlcyA9IHRoaXMuY3VycmVudFF1ZXN0aW9uLmdldERpc3BsYXlWYWx1ZSh0cnVlLCBvcC5jb3JyZWN0VmFsdWUpO1xuICAgIHJldHVybiAhIXJlcyA/IG5ldyBTdXJ2ZXkuQ29uc3QocmVzKS50b1N0cmluZygpIDogdW5kZWZpbmVkO1xuICB9XG4gIHByaXZhdGUgZ2V0RGlzcGxheU9wZXJhbmQoXG4gICAgb3A6IGFueSxcbiAgICBmdW5jOiAob3A6IFN1cnZleS5PcGVyYW5kKSA9PiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gISFvcCA/IG9wLnRvU3RyaW5nKGZ1bmMpIDogXCJcIjtcbiAgfVxuICBzdGF0aWMgb3BlcmF0b3JUZXh0ID0ge1xuICAgIGxlc3M6IFwiPFwiLFxuICAgIGxlc3NvcmVxdWFsOiBcIjw9XCIsXG4gICAgZ3JlYXRlcjogXCI+XCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwiPj1cIixcbiAgICBlcXVhbDogXCI9PVwiLFxuICAgIG5vdGVxdWFsOiBcIiE9XCIsXG4gICAgcGx1czogXCIrXCIsXG4gICAgbWludXM6IFwiLVwiLFxuICAgIG11bDogXCIqXCIsXG4gICAgZGl2OiBcIi9cIixcbiAgICBwb3dlcjogXCJeXCIsXG4gICAgbW9kOiBcIiVcIixcbiAgICBuZWdhdGU6IFwiIVwiLFxuICB9O1xuXG4gIHByaXZhdGUgZ2V0RGlzcGxheU9wZXJhdG9yKG9wZXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHZhciByZXMgPSBFeHByZXNzaW9uVG9EaXNwbGF5VGV4dC5vcGVyYXRvclRleHRbb3BlcmF0b3JdO1xuICAgIGlmICghIXJlcykgcmV0dXJuIHJlcztcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm9wLlwiICsgb3BlcmF0b3IpO1xuICB9XG4gIHByaXZhdGUgZ2V0RGlzcGxheUJpbmFyeShcbiAgICBvcDogU3VydmV5LkJpbmFyeU9wZXJhbmQsXG4gICAgaXNSb290OiBib29sZWFuLFxuICAgIGZ1bmM6IChvcDogU3VydmV5Lk9wZXJhbmQpID0+IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICAoaXNSb290ID8gXCJcIiA6IFwiKFwiKSArXG4gICAgICB0aGlzLmdldERpc3BsYXlPcGVyYW5kKG9wLmxlZnRPcGVyYW5kLCBmdW5jKSArXG4gICAgICBcIiBcIiArXG4gICAgICB0aGlzLmdldERpc3BsYXlPcGVyYXRvcihvcC5vcGVyYXRvcikgK1xuICAgICAgXCIgXCIgK1xuICAgICAgdGhpcy5nZXREaXNwbGF5T3BlcmFuZChvcC5yaWdodE9wZXJhbmQsIGZ1bmMpICtcbiAgICAgIChpc1Jvb3QgPyBcIlwiIDogXCIpXCIpXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIGdldERpc3BsYXlVbmFyeShcbiAgICBvcDogU3VydmV5LlVuYXJ5T3BlcmFuZCxcbiAgICBmdW5jOiAob3A6IFN1cnZleS5PcGVyYW5kKSA9PiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICB2YXIgZXhwID0gb3AuZXhwcmVzc2lvbi50b1N0cmluZyhmdW5jKTtcbiAgICB2YXIgb3BlcmF0b3IgPSB0aGlzLmdldERpc3BsYXlPcGVyYXRvcihvcC5vcGVyYXRvcik7XG4gICAgaWYgKG9wLm9wZXJhdG9yID09IFwiZW1wdHlcIiB8fCBvcC5vcGVyYXRvciA9PSBcIm5vdGVtcHR5XCIpXG4gICAgICByZXR1cm4gZXhwICsgXCIgXCIgKyBvcGVyYXRvcjtcbiAgICByZXR1cm4gb3BlcmF0b3IgKyBcIiBcIiArIGV4cDtcbiAgfVxuICBwcml2YXRlIHByb2NlZWRCaW5hcnkob3A6IFN1cnZleS5CaW5hcnlPcGVyYW5kKSB7XG4gICAgaWYgKG9wLmlzQXJpdGhtZXRpYyB8fCBvcC5pc0Nvbmp1bmN0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbiA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFF1ZXN0aW9uID0gdGhpcy5nZXRRdWVzdGlvbkZyb21PcGVyYW5kcyhcbiAgICAgIG9wLmxlZnRPcGVyYW5kLFxuICAgICAgb3AucmlnaHRPcGVyYW5kXG4gICAgKTtcbiAgICBpZiAoIXRoaXMuY3VycmVudFF1ZXN0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbiA9IHRoaXMuZ2V0UXVlc3Rpb25Gcm9tT3BlcmFuZHMoXG4gICAgICAgIG9wLnJpZ2h0T3BlcmFuZCxcbiAgICAgICAgb3AubGVmdE9wZXJhbmRcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0UXVlc3Rpb25Gcm9tT3BlcmFuZHMob3AxOiBTdXJ2ZXkuT3BlcmFuZCwgb3AyOiBTdXJ2ZXkuT3BlcmFuZCkge1xuICAgIGlmICghb3AxIHx8ICFvcDIpIHJldHVybiBudWxsO1xuICAgIGlmIChvcDEuZ2V0VHlwZSgpICE9IFwidmFyaWFibGVcIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIG9wMlR5cGUgPSBvcDIuZ2V0VHlwZSgpO1xuICAgIGlmIChvcDJUeXBlICE9IFwiY29uc3RcIiAmJiBvcDJUeXBlICE9IFwiZnVuY3Rpb25cIiAmJiBvcDJUeXBlICE9IFwiYXJyYXlcIilcbiAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmdldFF1ZXN0aW9uQnlOYW1lKCg8U3VydmV5LlZhcmlhYmxlPm9wMSkudmFyaWFibGUpO1xuICB9XG4gIHByaXZhdGUgcmVwbGFjZVZhcmlhYmxlcyhcbiAgICBleHByZXNzaW9uOiBzdHJpbmcsXG4gICAgdmFyaWFibGVzOiBBcnJheTxzdHJpbmc+XG4gICk6IHN0cmluZyB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YXJpYWJsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLnJlcGxhY2VWYXJpYWJsZShleHByZXNzaW9uLCB2YXJpYWJsZXNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgfVxuICBwcml2YXRlIHJlcGxhY2VWYXJpYWJsZShleHByZXNzaW9uOiBzdHJpbmcsIHZhcmlhYmxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHZhciBxdWVzdGlvbiA9IHRoaXMuZ2V0UXVlc3Rpb25CeU5hbWUodmFyaWFibGUpO1xuICAgIGlmICghcXVlc3Rpb24gfHwgIXF1ZXN0aW9uLnRpdGxlKSByZXR1cm4gZXhwcmVzc2lvbjtcbiAgICByZXR1cm4gZXhwcmVzc2lvbi5yZXBsYWNlKFwie1wiICsgdmFyaWFibGUgKyBcIn1cIiwgXCJ7XCIgKyBxdWVzdGlvbi50aXRsZSArIFwifVwiKTtcbiAgfVxuICBwcml2YXRlIGdldFF1ZXN0aW9uQnlOYW1lKG5hbWU6IHN0cmluZyk6IFN1cnZleS5RdWVzdGlvbiB7XG4gICAgcmV0dXJuIDxTdXJ2ZXkuUXVlc3Rpb24+dGhpcy5zdXJ2ZXkuZ2V0UXVlc3Rpb25CeVZhbHVlTmFtZShuYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwcmVzc2lvblJlbW92ZVZhcmlhYmxlIHtcbiAgcHJpdmF0ZSB3YXNSZW1vdmVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcigpIHt9XG4gIHB1YmxpYyByZW1vdmUoZXhwcmVzc2lvbjogc3RyaW5nLCB2YXJpYWJsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YXIgcGFyc2VyID0gbmV3IFN1cnZleS5Db25kaXRpb25zUGFyc2VyKCk7XG4gICAgdmFyIG5vZGUgPSBwYXJzZXIucGFyc2VFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xuICAgIGlmICghbm9kZSkgcmV0dXJuIGV4cHJlc3Npb247XG4gICAgdGhpcy53YXNSZW1vdmVkID0gZmFsc2U7XG4gICAgaWYgKCEhbm9kZVtcImdldFR5cGVcIl0pIHtcbiAgICAgIHZhciBvcCA9IHRoaXMucHJvY2Vzc09wZXJhbmQobm9kZSwgdmFyaWFibGUpO1xuICAgICAgaWYgKCF0aGlzLndhc1JlbW92ZWQpIHJldHVybiBleHByZXNzaW9uO1xuICAgICAgcmV0dXJuICEhb3AgPyBvcC50b1N0cmluZygpIDogXCJcIjtcbiAgICB9XG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cbiAgcHJpdmF0ZSBwcm9jZXNzT3BlcmFuZChvcDogU3VydmV5Lk9wZXJhbmQsIHZhcmlhYmxlOiBzdHJpbmcpOiBTdXJ2ZXkuT3BlcmFuZCB7XG4gICAgaWYgKCFvcCkgcmV0dXJuIG51bGw7XG4gICAgaWYgKG9wLmdldFR5cGUoKSA9PSBcInZhcmlhYmxlXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NWYXJpYWJsZSg8U3VydmV5LlZhcmlhYmxlPm9wLCB2YXJpYWJsZSk7XG4gICAgfVxuICAgIGlmIChvcC5nZXRUeXBlKCkgPT0gXCJ1bmFyeVwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVW5hcnkoPFN1cnZleS5VbmFyeU9wZXJhbmQ+b3AsIHZhcmlhYmxlKTtcbiAgICB9XG4gICAgaWYgKG9wLmdldFR5cGUoKSA9PSBcImJpbmFyeVwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZWVkQmluYXJ5KDxTdXJ2ZXkuQmluYXJ5T3BlcmFuZD5vcCwgdmFyaWFibGUpO1xuICAgIH1cbiAgICByZXR1cm4gb3A7XG4gIH1cbiAgcHJpdmF0ZSBwcm9jZXNzVmFyaWFibGUoXG4gICAgb3A6IFN1cnZleS5WYXJpYWJsZSxcbiAgICB2YXJpYWJsZTogc3RyaW5nXG4gICk6IFN1cnZleS5PcGVyYW5kIHtcbiAgICBpZiAob3AudmFyaWFibGUgIT09IHZhcmlhYmxlKSByZXR1cm4gb3A7XG4gICAgdGhpcy53YXNSZW1vdmVkID0gdHJ1ZTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwcml2YXRlIHByb2Nlc3NVbmFyeShcbiAgICBvcDogU3VydmV5LlVuYXJ5T3BlcmFuZCxcbiAgICB2YXJpYWJsZTogc3RyaW5nXG4gICk6IFN1cnZleS5PcGVyYW5kIHtcbiAgICB2YXIgZXhwcmVzc2lvbiA9IHRoaXMucHJvY2Vzc09wZXJhbmQob3AuZXhwcmVzc2lvbiwgdmFyaWFibGUpO1xuICAgIGlmICghIWV4cHJlc3Npb24pIHJldHVybiBvcDtcbiAgICB0aGlzLndhc1JlbW92ZWQgPSB0cnVlO1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByaXZhdGUgcHJvY2VlZEJpbmFyeShcbiAgICBvcDogU3VydmV5LkJpbmFyeU9wZXJhbmQsXG4gICAgdmFyaWFibGU6IHN0cmluZ1xuICApOiBTdXJ2ZXkuT3BlcmFuZCB7XG4gICAgdmFyIGxlZnQgPSB0aGlzLnByb2Nlc3NPcGVyYW5kKG9wLmxlZnRPcGVyYW5kLCB2YXJpYWJsZSk7XG4gICAgdmFyIHJpZ2h0ID0gdGhpcy5wcm9jZXNzT3BlcmFuZChvcC5yaWdodE9wZXJhbmQsIHZhcmlhYmxlKTtcbiAgICBpZiAoISFsZWZ0ICYmICEhcmlnaHQpIHtcbiAgICAgIGlmIChsZWZ0ICE9PSBvcC5sZWZ0T3BlcmFuZCB8fCByaWdodCAhPT0gb3AucmlnaHRPcGVyYW5kKVxuICAgICAgICByZXR1cm4gbmV3IFN1cnZleS5CaW5hcnlPcGVyYW5kKFxuICAgICAgICAgIG9wLm9wZXJhdG9yLFxuICAgICAgICAgIGxlZnQsXG4gICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgb3AuaXNBcml0aG1ldGljXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gb3A7XG4gICAgfVxuICAgIGlmICghbGVmdCAmJiAhcmlnaHQpIHJldHVybiBudWxsO1xuICAgIHZhciByZXMgPSAhIWxlZnQgPyBsZWZ0IDogcmlnaHQ7XG4gICAgcmV0dXJuIHJlcy5nZXRUeXBlKCkgPT0gXCJiaW5hcnlcIiA/IHJlcyA6IG51bGw7XG4gIH1cbn1cbiIsImltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlFZGl0b3JGYWN0b3J5XCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5cbmV4cG9ydCBjbGFzcyBFeHRlbnRpb25zIHtcbiAgcHVibGljIHN0YXRpYyByZWdpc3RlckN1c3RvbVByb3BlcnR5RWRpdG9yKG5hbWU6IHN0cmluZywgd2lkZ2V0SlNPTjogYW55KSB7XG4gICAgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyQ3VzdG9tRWRpdG9yKG5hbWUsIHdpZGdldEpTT04pO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgdW5yZWdpc3RlckN1c3RvbVByb3BlcnR5RWRpdG9yKG5hbWU6IHN0cmluZykge1xuICAgIFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS51bnJlZ2lzdGVyQ3VzdG9tRWRpdG9yKG5hbWUpO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgcmVnaXN0ZXJQcm9wZXJ0eUVkaXRvcihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY3JlYXRvcjogKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSA9PiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2VcbiAgKSB7XG4gICAgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKG5hbWUsIGNyZWF0b3IpO1xuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFOEFBQUFTQ0FZQUFBQWFKSU92QUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09rUTNSVVV3TkRRNE5qUkVSakV4UlRsQk1USkJPRGN4T1VFelJqaEVRMEUxSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2tRM1JVVXdORFE1TmpSRVJqRXhSVGxCTVRKQk9EY3hPVUV6UmpoRVEwRTFJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2UkRkRlJUQTBORFkyTkVSR01URkZPVUV4TWtFNE56RTVRVE5HT0VSRFFUVWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZSRGRGUlRBME5EYzJORVJHTVRGRk9VRXhNa0U0TnpFNVFUTkdPRVJEUVRVaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NEVnRnlBQUFBSE5VbEVRVlI0MnJ4WVcyeFVWUlE5YytmT2crS1V2c1lXYVNxbExSWUZVWkVmTkVnRVBreUp0U1lvVVdMQUdKV1lKZ2ppaHlaR05CajFBNFFRVERBSVJPS0hFa1VlTVdvME1WckEyQ2dVYXdRY3BJUlNRSmhTMmpLZDE3MnVkV2VmZXFudFRJdVVrNnlaOHo3N3JMM1BQdnNlajYzNlV6MXdIekFCS0FZS2diR0NBT0FIVE1BQU9Dd0ZKSUE0Y0FYb0JUcUJLTkFCSEFhMmNlTHZRaUZWWDFPaktoSUpaYWZUeWpBTTFkcmE2aXc2ZGVwVVpWbVdBeWFQeDZQY0taVktLYS9YcTJ6YmRzRDJnWDF5SlhkL1BZK3I3WGI4alJmWmYzSDM0N29KeUp5R3pJRkF3SkdSc2hPc002WHZEdUJKZGYzVFN1Q0J5a1FpV3BSTXFpdTJYUk8wN1hVUUxCWU9oMStGNE1ka004OGpQeC8vUjBIV0sxcDQwelFISlVxVDZFb0xnU2VBTkdCcFhnQ3ZLUEtGTERLK0M5UUJSekZuclp0d2dzb2JTbGtrcjJHVWlITU1DMWhkR1k4M1B0alJvYllWRkZ5b05jMDZicjYwdEhRL3RIZU1tb1dHMzRRMlMxRCtqTnAxRStlMmtzRXNTZElqZ3FGU052SXV5LzhsUGJlMk1PWWRDelBOUVFjYU9SYTlIbWsyZitiQThwVGYzMmxiMWs0S2xVd21wOGRpTVI2TEVqU1hpQVZ1b0tCK3Y5ODVNc005aWtqdkFFOER6d0Y5cnRPMEZIaFVLMkRna1pXVTFoNUNrMFZrVWRSVjVGWGszSDZPamVSSTlLSG1IYkN3UWdnRkIva05Od0ROemlKQkVHNDZ0U3crczRsYTF6NXVzT002V0IzUWd1eFdZTFA0WU02N0c2RFAvVnhiOHhEa0cxSTIyUy9iTVIyTXZPS2N2Zkx6bFZxelJxbXFxbXNocndnSVR3WjVGU0FsSFF4K0pUNnJoaFlHUzVzc0JEU0J4QlJRZ1Uyc3g1aUR3QzVhRGpkRFF0Rldqeng5MUFxWmU0cFkzZHRBSHVEVFpNaUZ4N1JjeGp3dUpEVkkrU1VoS2NZZnJCbUJ4ZDBOZWI1Ry9WNVVUZE5IR0xMbElmOGUxajlDQmFQOHNqTVg5SEVTLzdmbU9DT2NIUVlPYzE2MVNxbDE2MFpLSURmNXg3enljdlZUTUtnbWVMMG5RRVlsam00MWhGb0dnVmZpK0M2Qm9OdEJLSDNQT0xGR0ozVjFkVFdnejY1UUtQUUZMT05odVJTODRxdDNTTGN5NEp6NHNCRG1YWUpOYnBlSWdLVCtnUEpzSWFaT3JCWkZ6d1prRzFXR0I5NjZBU0dWYzVXSlQyNEdaZ3c0QWE4Wm9ySHNpWjJQSDg4YzM3VnJsV3JCS1Ztd1lDVGtPV3RVd08vRk1rZHl0MWpCSXZ6ZFMyRkEzRWNncUFHa2pVTjlKNGd0aCtDYlNDSUlmVU9zODArWjcrZ0FaNjhrZEJwNHF0eDlUOG4vYWZrL3JwMlNXTmhFckRrWCtXZUVuRkpZWWhEbGNzZzFBKzE5OFhpY2w5cUxjcEU5YTBqOGxqdTViNXhwMDVUYXMwZXA1bWFsWnM0Y3ptaHFYazJFNWRvZ0E0THM1M0dBVUV1Qit5RlExT2Z6V2NndlpEMkVPNEs2ZHFDWlpjUll0WGw1ZVJ6WE5Zb1gyMzVZVnhPd3orVkxTMUNlTG03bUwxUmZoT1VmRk1VWG1QOXJ1WUtDcTBuTllydU81VEVFQVFuK3ZyNG0zTHE4MWFxb1JWalhidkU3RmZLZm9qK0UwRDRKbm4weVQzdzBXSk9BMkxGVVdKL1BkV0hjeEYwS2VaZEZwdk5pbVQ0T1NBNXJoWlRyVkp5RWUxaThXS25xYXFVT0hCak9hR2VOQ2ZBZlFTQUpxNElBaDEyQjZKZGljVm9UaHBCcXFCdVVJSThoVVlEOTcyRXorNGxFMjJUa3Q2TDlRMmtPbVBKcGxUdmg4OHBKcTFkbmJ0NWtjaVN5T1RkYUdjbUx4MVVmaE13empMMFFoRWNpRGFHK0ZRR3RiR0dKdHVBYm1Od3hTeUZrV2lKNUh1RWVrdGVkYzRwQzNQb2JOeXExWll0U2h3Nk5XS2s2ZW9kblZqNll2bzlXWmxsbmhhQTQvTjBseVh2azN4S25iQTJ4bVJHVGlQbHlqcEd2Q3A4T2tuRWFMTmFKVEMyTVNiVlNLUi9KdTVCejVXN3cyOWg0cmRxTDZqVjZJUWpELzJCR2dERjZYNHlqY0xOMlE5QWVmbUZBWm84RXl5bjVWTElaNXlFZkZPRlRja05lekJMUTJ1N2JGSVFrTXZHKzkvSVFWaDJEdjNQQ0Z5aFRpZi9qYmQ3TlJ3RVNLbUVMRTQvdVJkTjFkUS9QMzQwOG5kRmhCTWxMMEpmOTF5cE1zVFNHRC9PQVdpR2xVZ0xrMDR6ODBaNHZsbENLTXYzaTNDemtHVEtuL2p4aTZCSEFYSE1HV3JVb1lnb1FSdkVoOFgwTWtjN3dBcEUrazZUN2ZMUTlwVjlWOW83aXd3RFR6enB6RGxaRkFvMk01dldYRFMzUTVFMEc0VGREOEdVUWREeHdCZmt4dExqT3pzNE5KSytvcU9oMzJYZ3A2dFBZeENuOWxDVkJNMU5JL3NjYm1iQ29sYzRlL2V0UTdrTzVYZTZoMjNSd0xaWjRNMlE0TDJOb2FSRllHaTAvZ3JvSVRrUVZMSkRqQXhKbWZlQjlYYW5mTVBBZTEyVFhNN1dMWWh5LytuNUppZnAxN0ZoVkRLMkJoSEVTQ2h3Qk1UdUR3V0FpSEE2ZjdlM3RQUXpoeXRCT3F6c0ZJZGUzdGJXOTFkUFR3MlBUZ25odkV1cnlzYmtUYUNjaHZkZzhRNWlQSlpUaFMwNGIydmJ4MVFZNGlENHpBQi9XK1JSNERNZnlMb3hwUmg4K1VoUURaSE01Nm40RTd1UUpRUDlGd045OHZFRDdKMWp6RnRSWG9xNGRjMnlDTWxhNHZTamZ3MmJKUTBHeGFEQW9Yd2VtQk5PRzZ6SFVraEFrS1VMVG5mWElvK0paT2xqNVVPKy9rT3J4YmZ4OUtPU0VMTzRiRlpHN1loQU04bFJIUjRmalgrUmIxbmtPaWtRaUNxUTZmYXNSSHRFSGNWTnNwMzl5TzNIM0N3cm5FU3R4SUQ2dGY0eU9oTndQbi9vQmxtdXdYelFhZGNaQ3VmMWpLQy9iL2hGZ0FJcDMyd3Noak5rdEFBQUFBRWxGVGtTdVFtQ0NcIiIsIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NEtQQ0V0TFNCSFpXNWxjbUYwYjNJNklFRmtiMkpsSUVsc2JIVnpkSEpoZEc5eUlESTBMakF1TWl3Z1UxWkhJRVY0Y0c5eWRDQlFiSFZuTFVsdUlDNGdVMVpISUZabGNuTnBiMjQ2SURZdU1EQWdRblZwYkdRZ01Da2dJQzB0UGdvOGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJa3hoZVdWeVh6RWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWdvSklIWnBaWGRDYjNnOUlqQWdNQ0F6TURBZ016QXdJaUJ6ZEhsc1pUMGlaVzVoWW14bExXSmhZMnRuY205MWJtUTZibVYzSURBZ01DQXpNREFnTXpBd095SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStDZ2t1YzNRd2UyWnBiR3c2SXpGRFFqTTVORHQ5Q2drdWMzUXhlMjl3WVdOcGRIazZNQzR6TzMwS0NTNXpkREo3Wm1sc2JEb2pNREV3TVRBeE8zMEtDUzV6ZERON1ptbHNiRG9qUmtaR1JrWkdPMzBLQ1M1emREUjdabWxzYkRvalJEWkVOVVExTzMwS0NTNXpkRFY3YjNCaFkybDBlVG93TGpNN1ptbHNiRG9qTURFd01UQXhPMzBLQ1M1emREWjdabWxzYkRvalJqZzVPREZHTzMwS1BDOXpkSGxzWlQ0S1BHTnBjbU5zWlNCamJHRnpjejBpYzNRd0lpQmplRDBpTVRVd0xqazBJaUJqZVQwaU1UUTVMak0xSWlCeVBTSXhNelF1TXpNaUx6NEtQR2MrQ2drOFp6NEtDUWs4WnlCamJHRnpjejBpYzNReElqNEtDUWtKUEhCdmJIbG5iMjRnWTJ4aGMzTTlJbk4wTWlJZ2NHOXBiblJ6UFNJeE1qWXVPQ3czTXlBeE1qWXVPQ3czTXlBNE9DNDBOQ3czTXlBNE9DNDBOQ3d5TURnZ01UazBMalEwTERJd09DQXhPVFF1TkRRc056TWdDUWtKSWk4K0Nna0pQQzluUGdvSkNUeHlaV04wSUhnOUlqa3pMalEwSWlCNVBTSTJPQ0lnWTJ4aGMzTTlJbk4wTXlJZ2QybGtkR2c5SWpFd05pSWdhR1ZwWjJoMFBTSXhNelVpTHo0S0NRazhaejRLQ1FrSlBHYytDZ2tKQ1FrOFp6NEtDUWtKQ1FrOGNtVmpkQ0I0UFNJeE16VXVORFFpSUhrOUlqRTBNaUlnWTJ4aGMzTTlJbk4wTkNJZ2QybGtkR2c5SWpFM0lpQm9aV2xuYUhROUlqUWlMejRLQ1FrSkNUd3ZaejRLQ1FrSkNUeG5QZ29KQ1FrSkNUeGphWEpqYkdVZ1kyeGhjM005SW5OME15SWdZM2c5SWpFeU5DNDVOaUlnWTNrOUlqRTBNeTQyTkNJZ2NqMGlOQzQyTkNJdlBnb0pDUWtKQ1R4d1lYUm9JR05zWVhOelBTSnpkRElpSUdROUlrMHhNalF1T0RJc01UUTVMak0xWXkwekxqQTBMREF0TlM0MU1TMHlMalE0TFRVdU5URXROUzQxTVdNd0xUTXVNRFFzTWk0ME9DMDFMalV4TERVdU5URXROUzQxTVdNekxqQTBMREFzTlM0MU1Td3lMalE0TERVdU5URXNOUzQxTVFvSkNRa0pDUWxETVRNd0xqTXpMREUwTmk0NE9Dd3hNamN1T0RZc01UUTVMak0xTERFeU5DNDRNaXd4TkRrdU16VjZJRTB4TWpRdU9ESXNNVE01TGprNFl5MHlMakV6TERBdE15NDROaXd4TGpjekxUTXVPRFlzTXk0NE5uTXhMamN6TERNdU9EWXNNeTQ0Tml3ekxqZzJDZ2tKQ1FrSkNYTXpMamcyTFRFdU56TXNNeTQ0TmkwekxqZzJRekV5T0M0Mk9Dd3hOREV1TnpFc01USTJMamsxTERFek9TNDVPQ3d4TWpRdU9ESXNNVE01TGprNGVpSXZQZ29KQ1FrSlBDOW5QZ29KQ1FrSlBHYytDZ2tKQ1FrSlBHYytDZ2tKQ1FrSkNUeGphWEpqYkdVZ1kyeGhjM005SW5OME15SWdZM2c5SWpFeU5DNDRNaUlnWTNrOUlqRTBNeTQ0TkNJZ2NqMGlNQzQ0TXlJdlBnb0pDUWtKQ1R3dlp6NEtDUWtKQ1FrOFp6NEtDUWtKQ1FrSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTUNJZ1pEMGlUVEV5TkM0NE1pd3hORE11T0RSTU1USTBMamd5TERFME15NDRORXd4TWpRdU9ESXNNVFF6TGpnMElFMHhNalF1T0RJc01UUXlMakU0WXkwd0xqa3lMREF0TVM0Mk5Td3dMamMwTFRFdU5qVXNNUzQyTlFvSkNRa0pDUWtKWXpBc01DNDVNaXd3TGpjMExERXVOalVzTVM0Mk5Td3hMalkxWXpBdU9USXNNQ3d4TGpZMUxUQXVOelFzTVM0Mk5TMHhMalkxUXpFeU5pNDBOeXd4TkRJdU9USXNNVEkxTGpjekxERTBNaTR4T0N3eE1qUXVPRElzTVRReUxqRTRUREV5TkM0NE1pd3hOREl1TVRoNklpOCtDZ2tKQ1FrSlBDOW5QZ29KQ1FrSlBDOW5QZ29KQ1FrOEwyYytDZ2tKQ1R4blBnb0pDUWtKUEdjK0Nna0pDUWtKUEhKbFkzUWdlRDBpTVRjMExqUTBJaUI1UFNJeE5ESWlJR05zWVhOelBTSnpkRFFpSUhkcFpIUm9QU0l4TnlJZ2FHVnBaMmgwUFNJMElpOCtDZ2tKQ1FrOEwyYytDZ2tKQ1FrOFp6NEtDUWtKQ1FrOFkybHlZMnhsSUdOc1lYTnpQU0p6ZERNaUlHTjRQU0l4TmpRdU16SWlJR041UFNJeE5ETXVOalFpSUhJOUlqUXVOalFpTHo0S0NRa0pDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXlJaUJrUFNKTk1UWTBMakkxTERFME9TNHpOV010TXk0d05Dd3dMVFV1TlRFdE1pNDBPQzAxTGpVeExUVXVOVEZqTUMwekxqQTBMREl1TkRndE5TNDFNU3cxTGpVeExUVXVOVEZqTXk0d05Dd3dMRFV1TlRFc01pNDBPQ3cxTGpVeExEVXVOVEVLQ1FrSkNRa0pRekUyT1M0M055d3hORFl1T0Rnc01UWTNMak1zTVRRNUxqTTFMREUyTkM0eU5Td3hORGt1TXpWNklFMHhOalF1TWpVc01UTTVMams0WXkweUxqRXpMREF0TXk0NE5pd3hMamN6TFRNdU9EWXNNeTQ0Tm5NeExqY3pMRE11T0RZc015NDROaXd6TGpnMkNna0pDUWtKQ1hNekxqZzJMVEV1TnpNc015NDROaTB6TGpnMlF6RTJPQzR4TWl3eE5ERXVOekVzTVRZMkxqTTVMREV6T1M0NU9Dd3hOalF1TWpVc01UTTVMams0ZWlJdlBnb0pDUWtKUEM5blBnb0pDUWtKUEdjK0Nna0pDUWtKUEdjK0Nna0pDUWtKQ1R4amFYSmpiR1VnWTJ4aGMzTTlJbk4wTXlJZ1kzZzlJakUyTkM0eU5TSWdZM2s5SWpFME15NDROQ0lnY2owaU1DNDRNeUl2UGdvSkNRa0pDVHd2Wno0S0NRa0pDUWs4Wno0S0NRa0pDUWtKUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRURTJOQzR5TlN3eE5ETXVPRFJNTVRZMExqSTFMREUwTXk0NE5Fd3hOalF1TWpVc01UUXpMamcwSUUweE5qUXVNalVzTVRReUxqRTRZeTB3TGpreUxEQXRNUzQyTlN3d0xqYzBMVEV1TmpVc01TNDJOUW9KQ1FrSkNRa0pZekFzTUM0NU1pd3dMamMwTERFdU5qVXNNUzQyTlN3eExqWTFZekF1T1RJc01Dd3hMalkxTFRBdU56UXNNUzQyTlMweExqWTFRekUyTlM0NU1Td3hOREl1T1RJc01UWTFMakUzTERFME1pNHhPQ3d4TmpRdU1qVXNNVFF5TGpFNFRERTJOQzR5TlN3eE5ESXVNVGg2SWk4K0Nna0pDUWtKUEM5blBnb0pDUWtKUEM5blBnb0pDUWs4TDJjK0Nna0pDVHhuUGdvSkNRa0pQR2MrQ2drSkNRa0pQSEpsWTNRZ2VEMGlNVGMwTGpRMElpQjVQU0l4TlRjaUlHTnNZWE56UFNKemREUWlJSGRwWkhSb1BTSXhOeUlnYUdWcFoyaDBQU0kwSWk4K0Nna0pDUWs4TDJjK0Nna0pDUWs4Wno0S0NRa0pDUWs4WTJseVkyeGxJR05zWVhOelBTSnpkRE1pSUdONFBTSXhOalF1TXpJaUlHTjVQU0l4TlRrdU1URWlJSEk5SWpRdU5qUWlMejRLQ1FrSkNRazhjR0YwYUNCamJHRnpjejBpYzNReUlpQmtQU0pOTVRZMExqSTFMREUyTkM0NFl5MHpMakEwTERBdE5TNDFNUzB5TGpRNExUVXVOVEV0TlM0MU1XTXdMVE11TURRc01pNDBPQzAxTGpVeExEVXVOVEV0TlM0MU1XTXpMakEwTERBc05TNDFNU3d5TGpRNExEVXVOVEVzTlM0MU1Rb0pDUWtKQ1FsVE1UWTNMak1zTVRZMExqZ3NNVFkwTGpJMUxERTJOQzQ0ZWlCTk1UWTBMakkxTERFMU5TNDBNbU10TWk0eE15d3dMVE11T0RZc01TNDNNeTB6TGpnMkxETXVPRFp6TVM0M015d3pMamcyTERNdU9EWXNNeTQ0Tm5NekxqZzJMVEV1TnpNc015NDROaTB6TGpnMkNna0pDUWtKQ1VNeE5qZ3VNVElzTVRVM0xqRTFMREUyTmk0ek9Td3hOVFV1TkRJc01UWTBMakkxTERFMU5TNDBNbm9pTHo0S0NRa0pDVHd2Wno0S0NRa0pDVHhuUGdvSkNRa0pDVHhuUGdvSkNRa0pDUWs4WTJseVkyeGxJR05zWVhOelBTSnpkRE1pSUdONFBTSXhOalF1TWpVaUlHTjVQU0l4TlRrdU1qZ2lJSEk5SWpBdU9ETWlMejRLQ1FrSkNRazhMMmMrQ2drSkNRa0pQR2MrQ2drSkNRa0pDVHh3WVhSb0lHTnNZWE56UFNKemREQWlJR1E5SWsweE5qUXVNalVzTVRVNUxqSTRUREUyTkM0eU5Td3hOVGt1TWpoTU1UWTBMakkxTERFMU9TNHlPQ0JOTVRZMExqSTFMREUxTnk0Mk1tTXRNQzQ1TWl3d0xURXVOalVzTUM0M05DMHhMalkxTERFdU5qVUtDUWtKQ1FrSkNXTXdMREF1T1RJc01DNDNOQ3d4TGpZMUxERXVOalVzTVM0Mk5XTXdMamt5TERBc01TNDJOUzB3TGpjMExERXVOalV0TVM0Mk5VTXhOalV1T1RFc01UVTRMak0zTERFMk5TNHhOeXd4TlRjdU5qSXNNVFkwTGpJMUxERTFOeTQyTWt3eE5qUXVNalVzTVRVM0xqWXllaUl2UGdvSkNRa0pDVHd2Wno0S0NRa0pDVHd2Wno0S0NRa0pQQzluUGdvSkNRazhaejRLQ1FrSkNUeG5QZ29KQ1FrSkNUeHlaV04wSUhnOUlqRXpOUzQwTkNJZ2VUMGlNVFUzSWlCamJHRnpjejBpYzNRMElpQjNhV1IwYUQwaU1UY2lJR2hsYVdkb2REMGlOQ0l2UGdvSkNRa0pQQzluUGdvSkNRa0pQR2MrQ2drSkNRa0pQR05wY21Oc1pTQmpiR0Z6Y3owaWMzUXpJaUJqZUQwaU1USTBMamsySWlCamVUMGlNVFU1TGpFeElpQnlQU0kwTGpZMElpOCtDZ2tKQ1FrSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTWlJZ1pEMGlUVEV5TkM0NE1pd3hOalF1T0dNdE15NHdOQ3d3TFRVdU5URXRNaTQwT0MwMUxqVXhMVFV1TlRGak1DMHpMakEwTERJdU5EZ3ROUzQxTVN3MUxqVXhMVFV1TlRGak15NHdOQ3d3TERVdU5URXNNaTQwT0N3MUxqVXhMRFV1TlRFS0NRa0pDUWtKUXpFek1DNHpNeXd4TmpJdU16SXNNVEkzTGpnMkxERTJOQzQ0TERFeU5DNDRNaXd4TmpRdU9Ib2dUVEV5TkM0NE1pd3hOVFV1TkRKakxUSXVNVE1zTUMwekxqZzJMREV1TnpNdE15NDROaXd6TGpnMmN6RXVOek1zTXk0NE5pd3pMamcyTERNdU9EWUtDUWtKQ1FrSmN6TXVPRFl0TVM0M015d3pMamcyTFRNdU9EWkRNVEk0TGpZNExERTFOeTR4TlN3eE1qWXVPVFVzTVRVMUxqUXlMREV5TkM0NE1pd3hOVFV1TkRKNklpOCtDZ2tKQ1FrOEwyYytDZ2tKQ1FrOFp6NEtDUWtKQ1FrOFp6NEtDUWtKQ1FrSlBHTnBjbU5zWlNCamJHRnpjejBpYzNReklpQmplRDBpTVRJMExqZ3lJaUJqZVQwaU1UVTVMakk0SWlCeVBTSXdMamd6SWk4K0Nna0pDUWtKUEM5blBnb0pDUWtKQ1R4blBnb0pDUWtKQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1F3SWlCa1BTSk5NVEkwTGpneUxERTFPUzR5T0V3eE1qUXVPRElzTVRVNUxqSTRUREV5TkM0NE1pd3hOVGt1TWpnZ1RURXlOQzQ0TWl3eE5UY3VOakpqTFRBdU9USXNNQzB4TGpZMUxEQXVOelF0TVM0Mk5Td3hMalkxQ2drSkNRa0pDUWxqTUN3d0xqa3lMREF1TnpRc01TNDJOU3d4TGpZMUxERXVOalZqTUM0NU1pd3dMREV1TmpVdE1DNDNOQ3d4TGpZMUxURXVOalZUTVRJMUxqY3pMREUxTnk0Mk1pd3hNalF1T0RJc01UVTNMall5VERFeU5DNDRNaXd4TlRjdU5qSjZJaTgrQ2drSkNRa0pQQzluUGdvSkNRa0pQQzluUGdvSkNRazhMMmMrQ2drSlBDOW5QZ29KQ1R4blBnb0pDUWs4Wno0S0NRa0pDVHhuUGdvSkNRa0pDVHh5WldOMElIZzlJakV5TUM0ME5DSWdlVDBpT0RNaUlHTnNZWE56UFNKemRETWlJSGRwWkhSb1BTSTVJaUJvWldsbmFIUTlJamtpTHo0S0NRa0pDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXlJaUJrUFNKTk1USTVMalEwTERnMGRqaG9MVGgyTFRoSU1USTVMalEwSUUweE16RXVORFFzT0RKb0xURXlkakV5YURFeVZqZ3lUREV6TVM0ME5DdzRNbm9pTHo0S0NRa0pDVHd2Wno0S0NRa0pDVHh5WldOMElIZzlJakV6Tnk0ME5DSWdlVDBpT0RJaUlHTnNZWE56UFNKemREUWlJSGRwWkhSb1BTSTFOQ0lnYUdWcFoyaDBQU0kwSWk4K0Nna0pDUWs4Y21WamRDQjRQU0l4TXpjdU5EUWlJSGs5SWprd0lpQmpiR0Z6Y3owaWMzUTBJaUIzYVdSMGFEMGlOVFFpSUdobGFXZG9kRDBpTkNJdlBnb0pDUWtKUEhCdmJIbG5iMjRnWTJ4aGMzTTlJbk4wTUNJZ2NHOXBiblJ6UFNJeE16SXVNVEVzT0RRdU56VWdNVE15TGpFeExEZzBMamMxSURFek1TNHhNeXc0TXk0M09DQXhNall1TVRjc09EZ3VOelFnTVRJekxqZzJMRGcyTGpReUlERXlNaTQ0T0N3NE55NHpPU0F4TWpZdU1UY3NPVEF1TmprZ0NRa0pDUW9KQ1FrSkNTSXZQZ29KQ1FrSlBHYytDZ2tKQ1FrSlBISmxZM1FnZUQwaU1USXdMalEwSWlCNVBTSXhNREFpSUdOc1lYTnpQU0p6ZERNaUlIZHBaSFJvUFNJNUlpQm9aV2xuYUhROUlqa2lMejRLQ1FrSkNRazhjR0YwYUNCamJHRnpjejBpYzNReUlpQmtQU0pOTVRJNUxqUTBMREV3TVhZNGFDMDRkaTA0U0RFeU9TNDBOQ0JOTVRNeExqUTBMRGs1YUMweE1uWXhNbWd4TWxZNU9Vd3hNekV1TkRRc09UbDZJaTgrQ2drSkNRazhMMmMrQ2drSkNRazhjRzlzZVdkdmJpQmpiR0Z6Y3owaWMzUXdJaUJ3YjJsdWRITTlJakV6TWk0eE1Td3hNREV1TnpVZ01UTXlMakV4TERFd01TNDNOU0F4TXpFdU1UTXNNVEF3TGpjNElERXlOaTR4Tnl3eE1EVXVOelFnTVRJekxqZzJMREV3TXk0ME1pQXhNakl1T0Rnc01UQTBMak01SUFvSkNRa0pDVEV5Tmk0eE55d3hNRGN1TmprZ0NRa0pDU0l2UGdvSkNRa0pQR2MrQ2drSkNRa0pQSEpsWTNRZ2VEMGlNVEl3TGpRMElpQjVQU0l4TVRjaUlHTnNZWE56UFNKemRETWlJSGRwWkhSb1BTSTVJaUJvWldsbmFIUTlJamtpTHo0S0NRa0pDUWs4Y0dGMGFDQmpiR0Z6Y3owaWMzUXlJaUJrUFNKTk1USTVMalEwTERFeE9IWTRhQzA0ZGkwNFNERXlPUzQwTkNCTk1UTXhMalEwTERFeE5tZ3RNVEoyTVRKb01USldNVEUyVERFek1TNDBOQ3d4TVRaNklpOCtDZ2tKQ1FrOEwyYytDZ2tKQ1FrOGNHOXNlV2R2YmlCamJHRnpjejBpYzNRd0lpQndiMmx1ZEhNOUlqRXpNaTR4TVN3eE1UZ3VOelVnTVRNeUxqRXhMREV4T0M0M05TQXhNekV1TVRNc01URTNMamM0SURFeU5pNHhOeXd4TWpJdU56UWdNVEl6TGpnMkxERXlNQzQwTWlBeE1qSXVPRGdzTVRJeExqTTVJQW9KQ1FrSkNURXlOaTR4Tnl3eE1qUXVOamtnQ1FrSkNTSXZQZ29KQ1FrSlBHYytDZ2tKQ1FrSlBISmxZM1FnZUQwaU1UTTNMalEwSWlCNVBTSXhNRE1pSUdOc1lYTnpQU0p6ZERRaUlIZHBaSFJvUFNJMU5DSWdhR1ZwWjJoMFBTSTBJaTgrQ2drSkNRazhMMmMrQ2drSkNRazhaejRLQ1FrSkNRazhjbVZqZENCNFBTSXhNemN1TkRRaUlIazlJakV4TmlJZ1kyeGhjM005SW5OME5DSWdkMmxrZEdnOUlqVTBJaUJvWldsbmFIUTlJalFpTHo0S0NRa0pDUWs4Y21WamRDQjRQU0l4TXpjdU5EUWlJSGs5SWpFeU5DSWdZMnhoYzNNOUluTjBOQ0lnZDJsa2RHZzlJakkzSWlCb1pXbG5hSFE5SWpRaUx6NEtDUWtKQ1R3dlp6NEtDUWtKUEM5blBnb0pDVHd2Wno0S0NRazhaejRLQ1FrSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTkNJZ1pEMGlUVEV3TkM0ME5DdzVNMmd0TW5ZdE9DNHhZeTB3TGpnMUxEQXVOek10TVM0NE5Td3hMakk0TFRNc01TNDJNM1l0TVM0M05XTXdMalUzTFRBdU1UZ3NNUzR4T1Mwd0xqVXlMREV1T0RZdE1TNHdNZ29KQ1FrSll6QXVOamN0TUM0MUxERXVNVE10TVM0d09Dd3hMak0zTFRFdU56Vm9NUzQzTjFZNU0zb2lMejRLQ1FrSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTkNJZ1pEMGlUVEV3T0M0ME5DdzVNM1l0TW1neWRqSklNVEE0TGpRMGVpSXZQZ29KQ1R3dlp6NEtDUWs4Wno0S0NRa0pQSEJoZEdnZ1kyeGhjM005SW5OME5DSWdaRDBpVFRFd05pNDBOQ3d4TkRkMk1rZzVPQzQ1WXpBdU1EZ3RNQzQzTml3d0xqTXpMVEV1TkRjc01DNDNOQzB5TGpFMVl6QXVOREV0TUM0Mk9Dd3hMakl5TFRFdU5UY3NNaTQwTWkweUxqWTVDZ2tKQ1Fsak1DNDVOeTB3TGprc01TNDFOeTB4TGpVeUxERXVOemt0TVM0NE5HTXdMak10TUM0ME5Dd3dMalEwTFRBdU9EZ3NNQzQwTkMweExqTXlZekF0TUM0ME9DMHdMakV6TFRBdU9EVXRNQzR6T1MweExqRXhZeTB3TGpJMkxUQXVNall0TUM0Mk1TMHdMak01TFRFdU1EY3RNQzR6T1FvSkNRa0pZeTB3TGpRMUxEQXRNQzQ0TVN3d0xqRTBMVEV1TURjc01DNDBNV010TUM0eU55d3dMakkzTFRBdU5ESXNNQzQzTWkwd0xqUTJMREV1TXpWc0xUSXVNVFV0TUM0eU1XTXdMakV6TFRFdU1Ua3NNQzQxTXkweUxqQTBMREV1TWkweUxqVTFDZ2tKQ1Fsak1DNDJOeTB3TGpVeUxERXVOVEl0TUM0M055d3lMalV6TFRBdU56ZGpNUzR4TVN3d0xERXVPVGdzTUM0ekxESXVOakVzTUM0NVl6QXVOak1zTUM0MkxEQXVPVFVzTVM0ek5Dd3dMamsxTERJdU1qTmpNQ3d3TGpVeExUQXVNRGtzTUM0NU9TMHdMakkzTERFdU5EUUtDUWtKQ1dNdE1DNHhPQ3d3TGpRMkxUQXVORGNzTUM0NU5DMHdMamcyTERFdU5EUmpMVEF1TWpZc01DNHpNeTB3TGpjekxEQXVPREV0TVM0ME1Td3hMalF6WXkwd0xqWTRMREF1TmpJdE1TNHhNU3d4TGpBMExURXVNamtzTVM0eU5HTXRNQzR4T0N3d0xqSXRNQzR6TXl3d0xqUXRNQzQwTkN3d0xqWUtDUWtKQ1VneE1EWXVORFI2SWk4K0Nna0pDVHh3WVhSb0lHTnNZWE56UFNKemREUWlJR1E5SWsweE1EZ3VORFFzTVRRNWRpMHlhREoyTWtneE1EZ3VORFI2SWk4K0Nna0pQQzluUGdvSkNUeG5QZ29KQ1FrOGNHRjBhQ0JqYkdGemN6MGljM1EwSWlCa1BTSk5PVGd1T0RNc01UZzFMakl4YkRJdU1EZ3RNQzR5TldNd0xqQTNMREF1TlRNc01DNHlOQ3d3TGprMExEQXVOVFFzTVM0eU1tTXdMakk1TERBdU1qZ3NNQzQyTkN3d0xqUXlMREV1TURZc01DNDBNZ29KQ1FrSll6QXVORFFzTUN3d0xqZ3lMVEF1TVRjc01TNHhNaTB3TGpWak1DNHpMVEF1TXpRc01DNDBOaTB3TGpjNUxEQXVORFl0TVM0ek5tTXdMVEF1TlRRdE1DNHhOUzB3TGprM0xUQXVORFF0TVM0eU9XTXRNQzR5T1Mwd0xqTXlMVEF1TmpVdE1DNDBOeTB4TGpBMkxUQXVORGNLQ1FrSkNXTXRNQzR5T0N3d0xUQXVOaXd3TGpBMUxUQXVPVGtzTUM0eE5td3dMakkwTFRFdU56VmpNQzQxT0N3d0xqQXlMREV1TURNdE1DNHhNU3d4TGpNekxUQXVNemhqTUM0ek1TMHdMakkzTERBdU5EWXRNQzQyTWl3d0xqUTJMVEV1TURkak1DMHdMak00TFRBdU1URXRNQzQyT0Mwd0xqTTBMVEF1T1FvSkNRa0pZeTB3TGpJeUxUQXVNakl0TUM0MU1pMHdMak0wTFRBdU9TMHdMak0wWXkwd0xqTTNMREF0TUM0Mk9Dd3dMakV6TFRBdU9UUXNNQzR6T0dNdE1DNHlOaXd3TGpJMkxUQXVORElzTUM0Mk15MHdMalEzTERFdU1USnNMVEV1T1RndE1DNHpOQW9KQ1FrSll6QXVNVFF0TUM0Mk9Dd3dMak0xTFRFdU1qSXNNQzQyTWkweExqWXpZekF1TWpndE1DNDBNU3d3TGpZM0xUQXVOeklzTVM0eE5pMHdMamsyWXpBdU5TMHdMakl6TERFdU1EVXRNQzR6TlN3eExqWTNMVEF1TXpWak1TNHdOaXd3TERFdU9Td3dMak0wTERJdU5UUXNNUzR3TVFvSkNRa0pZekF1TlRNc01DNDFOU3d3TGpjNUxERXVNVGNzTUM0M09Td3hMamczWXpBc01DNDVPQzB3TGpVMExERXVOemN0TVM0Mk1Td3lMak0yWXpBdU5qUXNNQzR4TkN3eExqRTJMREF1TkRVc01TNDFOQ3d3TGprell6QXVNemtzTUM0ME9Dd3dMalU0TERFdU1EWXNNQzQxT0N3eExqYzBDZ2tKQ1Fsak1Dd3dMams0TFRBdU16WXNNUzQ0TWkweExqQTRMREl1TlRKakxUQXVOeklzTUM0Mk9TMHhMall4TERFdU1EUXRNaTQyT1N3eExqQTBZeTB4TGpBeUxEQXRNUzQ0Tmkwd0xqSTVMVEl1TlRNdE1DNDRPRk01T0M0NU5Dd3hPRFl1TVRZc09UZ3VPRE1zTVRnMUxqSXhlaUl2UGdvSkNRazhjR0YwYUNCamJHRnpjejBpYzNRMElpQmtQU0pOTVRBNExqUTBMREU0T0hZdE1tZ3lkakpJTVRBNExqUTBlaUl2UGdvSkNUd3ZaejRLQ1FrOGNtVmpkQ0I0UFNJeE1Ua3VORFFpSUhrOUlqRTNOeUlnWTJ4aGMzTTlJbk4wTkNJZ2QybGtkR2c5SWpjeUlpQm9aV2xuYUhROUlqRXhJaTgrQ2drSlBHTnBjbU5zWlNCamJHRnpjejBpYzNRMUlpQmplRDBpTVRrNExqWWlJR041UFNJeU1EWXVNalFpSUhJOUlqTTFMakUxSWk4K0Nna0pQR2MrQ2drSkNUeGphWEpqYkdVZ1kyeGhjM005SW5OME5pSWdZM2c5SWpJd015NDBOQ0lnWTNrOUlqSXdNeUlnY2owaU16VWlMejRLQ1FrSlBIQmhkR2dnWTJ4aGMzTTlJbk4wTXlJZ1pEMGlUVEl3TXk0ME5Dd3lNalpNTWpBekxqUTBMREl5Tm1NdE1pNHlMREF0TkMweExqZ3ROQzAwZGkwek9HTXdMVEl1TWl3eExqZ3ROQ3cwTFRSc01Dd3dZekl1TWl3d0xEUXNNUzQ0TERRc05IWXpPQW9KQ1FrSlF6SXdOeTQwTkN3eU1qUXVNaXd5TURVdU5qUXNNakkyTERJd015NDBOQ3d5TWpaNklpOCtDZ2tKQ1R4d1lYUm9JR05zWVhOelBTSnpkRE1pSUdROUlrMHhPREF1TkRRc01qQXpUREU0TUM0ME5Dd3lNRE5qTUMweUxqSXNNUzQ0TFRRc05DMDBhRE00WXpJdU1pd3dMRFFzTVM0NExEUXNOR3d3TERCak1Dd3lMakl0TVM0NExEUXROQ3cwYUMwek9Bb0pDUWtKUXpFNE1pNHlOQ3d5TURjc01UZ3dMalEwTERJd05TNHlMREU0TUM0ME5Dd3lNRE42SWk4K0Nna0pQQzluUGdvSlBDOW5QZ284TDJjK0Nqd3ZjM1puUGdvPVwiIiwiLy8gVGhpcyBmaWxlIGlzIGJhc2VkIG9uIEpTT041LCBodHRwOi8vanNvbjUub3JnL1xuLy8gVGhlIG1vZGlmaWNhdGlvbiBmb3IgZ2V0dGluZyBvYmplY3QgYW5kIHByb3BlcnRpZXMgbG9jYXRpb24gJ2F0JyB3ZXJlIG1hZGVuLlxuXG5leHBvcnQgY2xhc3MgU3VydmV5SlNPTjUge1xuICBwdWJsaWMgc3RhdGljIHBvc2l0aW9uTmFtZSA9IFwicG9zXCI7XG4gIHByaXZhdGUgc3RhdGljIGVzY2FwZWUgPSB7XG4gICAgXCInXCI6IFwiJ1wiLFxuICAgICdcIic6ICdcIicsXG4gICAgXCJcXFxcXCI6IFwiXFxcXFwiLFxuICAgIFwiL1wiOiBcIi9cIixcbiAgICBcIlxcblwiOiBcIlwiLCAvLyBSZXBsYWNlIGVzY2FwZWQgbmV3bGluZXMgaW4gc3RyaW5ncyB3LyBlbXB0eSBzdHJpbmdcbiAgICBiOiBcIlxcYlwiLFxuICAgIGY6IFwiXFxmXCIsXG4gICAgbjogXCJcXG5cIixcbiAgICByOiBcIlxcclwiLFxuICAgIHQ6IFwiXFx0XCJcbiAgfTtcbiAgcHJpdmF0ZSBzdGF0aWMgd3MgPSBbXCIgXCIsIFwiXFx0XCIsIFwiXFxyXCIsIFwiXFxuXCIsIFwiXFx2XCIsIFwiXFxmXCIsIFwiXFx4QTBcIiwgXCJcXHVGRUZGXCJdO1xuICBwcml2YXRlIGVuZEF0OiBudW1iZXI7XG4gIHByaXZhdGUgYXQ6IG51bWJlcjsgLy8gVGhlIGluZGV4IG9mIHRoZSBjdXJyZW50IGNoYXJhY3RlclxuICBwcml2YXRlIGNoOiBhbnk7IC8vIFRoZSBjdXJyZW50IGNoYXJhY3RlclxuICBwcml2YXRlIHRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBwYXJzZVR5cGU6IG51bWJlcjsgLy8gMCAtIHN0YWRhcmQsIDEgLSBnZXQgaW5mb3JtYXRpb24gYWJvdXQgb2JqZWN0cywgMiAtIGdldCBpbmZvcm1hdGlvbiBhYm91dCBhbGwgcHJvcGVydGllc1xuICBjb25zdHJ1Y3RvcihwYXJzZVR5cGU6IG51bWJlciA9IDApIHtcbiAgICB0aGlzLnBhcnNlVHlwZSA9IHBhcnNlVHlwZTtcbiAgfVxuICBwdWJsaWMgcGFyc2UoXG4gICAgc291cmNlOiBhbnksXG4gICAgcmV2aXZlcjogYW55ID0gbnVsbCxcbiAgICBzdGFydEZyb206IG51bWJlciA9IDAsXG4gICAgZW5kQXQ6IG51bWJlciA9IC0xXG4gICk6IGFueSB7XG4gICAgdmFyIHJlc3VsdDtcblxuICAgIHRoaXMudGV4dCA9IFN0cmluZyhzb3VyY2UpO1xuICAgIHRoaXMuYXQgPSBzdGFydEZyb207XG4gICAgdGhpcy5lbmRBdCA9IGVuZEF0O1xuICAgIHRoaXMuY2ggPSBcIiBcIjtcbiAgICByZXN1bHQgPSB0aGlzLnZhbHVlKCk7XG4gICAgdGhpcy53aGl0ZSgpO1xuICAgIGlmICh0aGlzLmNoKSB7XG4gICAgICB0aGlzLmVycm9yKFwiU3ludGF4IGVycm9yXCIpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGlzIGEgcmV2aXZlciBmdW5jdGlvbiwgd2UgcmVjdXJzaXZlbHkgd2FsayB0aGUgbmV3IHN0cnVjdHVyZSxcbiAgICAvLyBwYXNzaW5nIGVhY2ggbmFtZS92YWx1ZSBwYWlyIHRvIHRoZSByZXZpdmVyIGZ1bmN0aW9uIGZvciBwb3NzaWJsZVxuICAgIC8vIHRyYW5zZm9ybWF0aW9uLCBzdGFydGluZyB3aXRoIGEgdGVtcG9yYXJ5IHJvb3Qgb2JqZWN0IHRoYXQgaG9sZHMgdGhlIHJlc3VsdFxuICAgIC8vIGluIGFuIGVtcHR5IGtleS4gSWYgdGhlcmUgaXMgbm90IGEgcmV2aXZlciBmdW5jdGlvbiwgd2Ugc2ltcGx5IHJldHVybiB0aGVcbiAgICAvLyByZXN1bHQuXG5cbiAgICByZXR1cm4gdHlwZW9mIHJldml2ZXIgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyAoZnVuY3Rpb24gd2Fsayhob2xkZXIsIGtleSkge1xuICAgICAgICB2YXIgayxcbiAgICAgICAgICB2LFxuICAgICAgICAgIHZhbHVlID0gaG9sZGVyW2tleV07XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICBmb3IgKGsgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGspKSB7XG4gICAgICAgICAgICAgIHYgPSB3YWxrKHZhbHVlLCBrKTtcbiAgICAgICAgICAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHZhbHVlW2tdID0gdjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdmFsdWVba107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldml2ZXIuY2FsbChob2xkZXIsIGtleSwgdmFsdWUpO1xuICAgICAgfSkoeyBcIlwiOiByZXN1bHQgfSwgXCJcIilcbiAgICAgIDogcmVzdWx0O1xuICB9XG4gIHByaXZhdGUgZXJyb3IobTogc3RyaW5nKSB7XG4gICAgLy8gQ2FsbCBlcnJvciB3aGVuIHNvbWV0aGluZyBpcyB3cm9uZy5cbiAgICB2YXIgZXJyb3IgPSBuZXcgU3ludGF4RXJyb3IoKTtcbiAgICBlcnJvci5tZXNzYWdlID0gbTtcbiAgICBlcnJvcltcImF0XCJdID0gdGhpcy5hdDtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuICBwcml2YXRlIG5leHQoYzogYW55ID0gbnVsbCkge1xuICAgIC8vIElmIGEgYyBwYXJhbWV0ZXIgaXMgcHJvdmlkZWQsIHZlcmlmeSB0aGF0IGl0IG1hdGNoZXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLlxuICAgIGlmIChjICYmIGMgIT09IHRoaXMuY2gpIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJFeHBlY3RlZCAnXCIgKyBjICsgXCInIGluc3RlYWQgb2YgJ1wiICsgdGhpcy5jaCArIFwiJ1wiKTtcbiAgICB9XG4gICAgLy8gR2V0IHRoZSB0aGlzLm5leHQgY2hhcmFjdGVyLiBXaGVuIHRoZXJlIGFyZSBubyBtb3JlIGNoYXJhY3RlcnMsXG4gICAgLy8gcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgdGhpcy5jaCA9IHRoaXMuY2hhcnRBdCgpO1xuICAgIHRoaXMuYXQgKz0gMTtcbiAgICByZXR1cm4gdGhpcy5jaDtcbiAgfVxuICBwcml2YXRlIHBlZWsoKSB7XG4gICAgLy8gR2V0IHRoZSB0aGlzLm5leHQgY2hhcmFjdGVyIHdpdGhvdXQgY29uc3VtaW5nIGl0IG9yXG4gICAgLy8gYXNzaWduaW5nIGl0IHRvIHRoZSB0aGlzLmNoIHZhcmFpYmxlLlxuICAgIHJldHVybiB0aGlzLmNoYXJ0QXQoKTtcbiAgfVxuICBwcml2YXRlIGNoYXJ0QXQoKSB7XG4gICAgaWYgKHRoaXMuZW5kQXQgPiAtMSAmJiB0aGlzLmF0ID49IHRoaXMuZW5kQXQpIHJldHVybiBcIlwiO1xuICAgIHJldHVybiB0aGlzLnRleHQuY2hhckF0KHRoaXMuYXQpO1xuICB9XG4gIHByaXZhdGUgaWRlbnRpZmllcigpIHtcbiAgICAvLyBQYXJzZSBhbiBpZGVudGlmaWVyLiBOb3JtYWxseSwgcmVzZXJ2ZWQgd29yZHMgYXJlIGRpc2FsbG93ZWQgaGVyZSwgYnV0IHdlXG4gICAgLy8gb25seSB1c2UgdGhpcyBmb3IgdW5xdW90ZWQgb2JqZWN0IGtleXMsIHdoZXJlIHJlc2VydmVkIHdvcmRzIGFyZSBhbGxvd2VkLFxuICAgIC8vIHNvIHdlIGRvbid0IGNoZWNrIGZvciB0aG9zZSBoZXJlLiBSZWZlcmVuY2VzOlxuICAgIC8vIC0gaHR0cDovL2VzNS5naXRodWIuY29tLyN4Ny42XG4gICAgLy8gLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9Db3JlX0phdmFTY3JpcHRfMS41X0d1aWRlL0NvcmVfTGFuZ3VhZ2VfRmVhdHVyZXMjVmFyaWFibGVzXG4gICAgLy8gLSBodHRwOi8vZG9jc3RvcmUubWlrLnVhL29yZWxseS93ZWJwcm9nL2pzY3JpcHQvY2gwMl8wNy5odG1cbiAgICAvLyBUT0RPIElkZW50aWZpZXJzIGNhbiBoYXZlIFVuaWNvZGUgXCJsZXR0ZXJzXCIgaW4gdGhlbTsgYWRkIHN1cHBvcnQgZm9yIHRob3NlLlxuICAgIHZhciBrZXkgPSB0aGlzLmNoO1xuXG4gICAgLy8gSWRlbnRpZmllcnMgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyLCBfIG9yICQuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jaCAhPT0gXCJfXCIgJiZcbiAgICAgIHRoaXMuY2ggIT09IFwiJFwiICYmXG4gICAgICAodGhpcy5jaCA8IFwiYVwiIHx8IHRoaXMuY2ggPiBcInpcIikgJiZcbiAgICAgICh0aGlzLmNoIDwgXCJBXCIgfHwgdGhpcy5jaCA+IFwiWlwiKVxuICAgICkge1xuICAgICAgdGhpcy5lcnJvcihcIkJhZCBpZGVudGlmaWVyXCIpO1xuICAgIH1cblxuICAgIC8vIFN1YnNlcXVlbnQgY2hhcmFjdGVycyBjYW4gY29udGFpbiBkaWdpdHMuXG4gICAgd2hpbGUgKFxuICAgICAgdGhpcy5uZXh0KCkgJiZcbiAgICAgICh0aGlzLmNoID09PSBcIl9cIiB8fFxuICAgICAgICB0aGlzLmNoID09PSBcIiRcIiB8fFxuICAgICAgICAodGhpcy5jaCA+PSBcImFcIiAmJiB0aGlzLmNoIDw9IFwielwiKSB8fFxuICAgICAgICAodGhpcy5jaCA+PSBcIkFcIiAmJiB0aGlzLmNoIDw9IFwiWlwiKSB8fFxuICAgICAgICAodGhpcy5jaCA+PSBcIjBcIiAmJiB0aGlzLmNoIDw9IFwiOVwiKSlcbiAgICApIHtcbiAgICAgIGtleSArPSB0aGlzLmNoO1xuICAgIH1cblxuICAgIHJldHVybiBrZXk7XG4gIH1cbiAgcHJpdmF0ZSBudW1iZXIoKSB7XG4gICAgLy8gUGFyc2UgYSBudW1iZXIgdmFsdWUuXG5cbiAgICB2YXIgbnVtYmVyLFxuICAgICAgc2lnbiA9IFwiXCIsXG4gICAgICBzdHJpbmcgPSBcIlwiLFxuICAgICAgYmFzZSA9IDEwO1xuXG4gICAgaWYgKHRoaXMuY2ggPT09IFwiLVwiIHx8IHRoaXMuY2ggPT09IFwiK1wiKSB7XG4gICAgICBzaWduID0gdGhpcy5jaDtcbiAgICAgIHRoaXMubmV4dCh0aGlzLmNoKTtcbiAgICB9XG5cbiAgICAvLyBzdXBwb3J0IGZvciBJbmZpbml0eSAoY291bGQgdHdlYWsgdG8gYWxsb3cgb3RoZXIgd29yZHMpOlxuICAgIGlmICh0aGlzLmNoID09PSBcIklcIikge1xuICAgICAgbnVtYmVyID0gdGhpcy53b3JkKCk7XG4gICAgICBpZiAodHlwZW9mIG51bWJlciAhPT0gXCJudW1iZXJcIiB8fCBpc05hTihudW1iZXIpKSB7XG4gICAgICAgIHRoaXMuZXJyb3IoXCJVbmV4cGVjdGVkIHdvcmQgZm9yIG51bWJlclwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzaWduID09PSBcIi1cIiA/IC1udW1iZXIgOiBudW1iZXI7XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydCBmb3IgTmFOXG4gICAgaWYgKHRoaXMuY2ggPT09IFwiTlwiKSB7XG4gICAgICBudW1iZXIgPSB0aGlzLndvcmQoKTtcbiAgICAgIGlmICghaXNOYU4obnVtYmVyKSkge1xuICAgICAgICB0aGlzLmVycm9yKFwiZXhwZWN0ZWQgd29yZCB0byBiZSBOYU5cIik7XG4gICAgICB9XG4gICAgICAvLyBpZ25vcmUgc2lnbiBhcyAtTmFOIGFsc28gaXMgTmFOXG4gICAgICByZXR1cm4gbnVtYmVyO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNoID09PSBcIjBcIikge1xuICAgICAgc3RyaW5nICs9IHRoaXMuY2g7XG4gICAgICB0aGlzLm5leHQoKTtcbiAgICAgIGlmICh0aGlzLmNoID09PSBcInhcIiB8fCB0aGlzLmNoID09PSBcIlhcIikge1xuICAgICAgICBzdHJpbmcgKz0gdGhpcy5jaDtcbiAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgICAgIGJhc2UgPSAxNjtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jaCA+PSBcIjBcIiAmJiB0aGlzLmNoIDw9IFwiOVwiKSB7XG4gICAgICAgIHRoaXMuZXJyb3IoXCJPY3RhbCBsaXRlcmFsXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAoYmFzZSkge1xuICAgICAgY2FzZSAxMDpcbiAgICAgICAgd2hpbGUgKHRoaXMuY2ggPj0gXCIwXCIgJiYgdGhpcy5jaCA8PSBcIjlcIikge1xuICAgICAgICAgIHN0cmluZyArPSB0aGlzLmNoO1xuICAgICAgICAgIHRoaXMubmV4dCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNoID09PSBcIi5cIikge1xuICAgICAgICAgIHN0cmluZyArPSBcIi5cIjtcbiAgICAgICAgICB3aGlsZSAodGhpcy5uZXh0KCkgJiYgdGhpcy5jaCA+PSBcIjBcIiAmJiB0aGlzLmNoIDw9IFwiOVwiKSB7XG4gICAgICAgICAgICBzdHJpbmcgKz0gdGhpcy5jaDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2ggPT09IFwiZVwiIHx8IHRoaXMuY2ggPT09IFwiRVwiKSB7XG4gICAgICAgICAgc3RyaW5nICs9IHRoaXMuY2g7XG4gICAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgICAgICAgaWYgKHRoaXMuY2ggPT09IFwiLVwiIHx8IHRoaXMuY2ggPT09IFwiK1wiKSB7XG4gICAgICAgICAgICBzdHJpbmcgKz0gdGhpcy5jaDtcbiAgICAgICAgICAgIHRoaXMubmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAodGhpcy5jaCA+PSBcIjBcIiAmJiB0aGlzLmNoIDw9IFwiOVwiKSB7XG4gICAgICAgICAgICBzdHJpbmcgKz0gdGhpcy5jaDtcbiAgICAgICAgICAgIHRoaXMubmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTY6XG4gICAgICAgIHdoaWxlIChcbiAgICAgICAgICAodGhpcy5jaCA+PSBcIjBcIiAmJiB0aGlzLmNoIDw9IFwiOVwiKSB8fFxuICAgICAgICAgICh0aGlzLmNoID49IFwiQVwiICYmIHRoaXMuY2ggPD0gXCJGXCIpIHx8XG4gICAgICAgICAgKHRoaXMuY2ggPj0gXCJhXCIgJiYgdGhpcy5jaCA8PSBcImZcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgc3RyaW5nICs9IHRoaXMuY2g7XG4gICAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHNpZ24gPT09IFwiLVwiKSB7XG4gICAgICBudW1iZXIgPSAtc3RyaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICBudW1iZXIgPSArc3RyaW5nO1xuICAgIH1cblxuICAgIGlmICghaXNGaW5pdGUobnVtYmVyKSkge1xuICAgICAgdGhpcy5lcnJvcihcIkJhZCBudW1iZXJcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudW1iZXI7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc3RyaW5nKCkge1xuICAgIC8vIFBhcnNlIGEgc3RyaW5nIHZhbHVlLlxuXG4gICAgdmFyIGhleCxcbiAgICAgIGksXG4gICAgICBzdHJpbmcgPSBcIlwiLFxuICAgICAgZGVsaW0sIC8vIGRvdWJsZSBxdW90ZSBvciBzaW5nbGUgcXVvdGVcbiAgICAgIHVmZmZmO1xuXG4gICAgLy8gV2hlbiBwYXJzaW5nIGZvciBzdHJpbmcgdmFsdWVzLCB3ZSBtdXN0IGxvb2sgZm9yICcgb3IgXCIgYW5kIFxcIGNoYXJhY3RlcnMuXG5cbiAgICBpZiAodGhpcy5jaCA9PT0gJ1wiJyB8fCB0aGlzLmNoID09PSBcIidcIikge1xuICAgICAgZGVsaW0gPSB0aGlzLmNoO1xuICAgICAgd2hpbGUgKHRoaXMubmV4dCgpKSB7XG4gICAgICAgIGlmICh0aGlzLmNoID09PSBkZWxpbSkge1xuICAgICAgICAgIHRoaXMubmV4dCgpO1xuICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaCA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgICBpZiAodGhpcy5jaCA9PT0gXCJ1XCIpIHtcbiAgICAgICAgICAgIHVmZmZmID0gMDtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgaGV4ID0gcGFyc2VJbnQodGhpcy5uZXh0KCksIDE2KTtcbiAgICAgICAgICAgICAgaWYgKCFpc0Zpbml0ZShoZXgpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdWZmZmYgPSB1ZmZmZiAqIDE2ICsgaGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUodWZmZmYpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaCA9PT0gXCJcXHJcIikge1xuICAgICAgICAgICAgaWYgKHRoaXMucGVlaygpID09PSBcIlxcblwiKSB7XG4gICAgICAgICAgICAgIHRoaXMubmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIFN1cnZleUpTT041LmVzY2FwZWVbdGhpcy5jaF0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN0cmluZyArPSBTdXJ2ZXlKU09ONS5lc2NhcGVlW3RoaXMuY2hdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaCA9PT0gXCJcXG5cIikge1xuICAgICAgICAgIC8vIHVuZXNjYXBlZCBuZXdsaW5lcyBhcmUgaW52YWxpZDsgc2VlOlxuICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2VlbWsvanNvbjUvaXNzdWVzLzI0XG4gICAgICAgICAgLy8gVE9ETyB0aGlzIGZlZWxzIHNwZWNpYWwtY2FzZWQ7IGFyZSB0aGVyZSBvdGhlclxuICAgICAgICAgIC8vIGludmFsaWQgdW5lc2NhcGVkIGNoYXJzP1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0cmluZyArPSB0aGlzLmNoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZXJyb3IoXCJCYWQgc3RyaW5nXCIpO1xuICB9XG4gIHByaXZhdGUgaW5saW5lQ29tbWVudCgpIHtcbiAgICAvLyBTa2lwIGFuIGlubGluZSBjb21tZW50LCBhc3N1bWluZyB0aGlzIGlzIG9uZS4gVGhlIGN1cnJlbnQgY2hhcmFjdGVyIHNob3VsZFxuICAgIC8vIGJlIHRoZSBzZWNvbmQgLyBjaGFyYWN0ZXIgaW4gdGhlIC8vIHBhaXIgdGhhdCBiZWdpbnMgdGhpcyBpbmxpbmUgY29tbWVudC5cbiAgICAvLyBUbyBmaW5pc2ggdGhlIGlubGluZSBjb21tZW50LCB3ZSBsb29rIGZvciBhIG5ld2xpbmUgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dC5cblxuICAgIGlmICh0aGlzLmNoICE9PSBcIi9cIikge1xuICAgICAgdGhpcy5lcnJvcihcIk5vdCBhbiBpbmxpbmUgY29tbWVudFwiKTtcbiAgICB9XG5cbiAgICBkbyB7XG4gICAgICB0aGlzLm5leHQoKTtcbiAgICAgIGlmICh0aGlzLmNoID09PSBcIlxcblwiIHx8IHRoaXMuY2ggPT09IFwiXFxyXCIpIHtcbiAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IHdoaWxlICh0aGlzLmNoKTtcbiAgfVxuICBwcml2YXRlIGJsb2NrQ29tbWVudCgpIHtcbiAgICAvLyBTa2lwIGEgYmxvY2sgY29tbWVudCwgYXNzdW1pbmcgdGhpcyBpcyBvbmUuIFRoZSBjdXJyZW50IGNoYXJhY3RlciBzaG91bGQgYmVcbiAgICAvLyB0aGUgKiBjaGFyYWN0ZXIgaW4gdGhlIC8qIHBhaXIgdGhhdCBiZWdpbnMgdGhpcyBibG9jayBjb21tZW50LlxuICAgIC8vIFRvIGZpbmlzaCB0aGUgYmxvY2sgY29tbWVudCwgd2UgbG9vayBmb3IgYW4gZW5kaW5nICovIHBhaXIgb2YgY2hhcmFjdGVycyxcbiAgICAvLyBidXQgd2UgYWxzbyB3YXRjaCBmb3IgdGhlIGVuZCBvZiB0ZXh0IGJlZm9yZSB0aGUgY29tbWVudCBpcyB0ZXJtaW5hdGVkLlxuXG4gICAgaWYgKHRoaXMuY2ggIT09IFwiKlwiKSB7XG4gICAgICB0aGlzLmVycm9yKFwiTm90IGEgYmxvY2sgY29tbWVudFwiKTtcbiAgICB9XG5cbiAgICBkbyB7XG4gICAgICB0aGlzLm5leHQoKTtcbiAgICAgIHdoaWxlICh0aGlzLmNoID09PSBcIipcIikge1xuICAgICAgICB0aGlzLm5leHQoXCIqXCIpO1xuICAgICAgICBpZiAodGhpcy5jaCA9PT0gXCIvXCIpIHtcbiAgICAgICAgICB0aGlzLm5leHQoXCIvXCIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gd2hpbGUgKHRoaXMuY2gpO1xuXG4gICAgdGhpcy5lcnJvcihcIlVudGVybWluYXRlZCBibG9jayBjb21tZW50XCIpO1xuICB9XG4gIHByaXZhdGUgY29tbWVudCgpIHtcbiAgICAvLyBTa2lwIGEgY29tbWVudCwgd2hldGhlciBpbmxpbmUgb3IgYmxvY2stbGV2ZWwsIGFzc3VtaW5nIHRoaXMgaXMgb25lLlxuICAgIC8vIENvbW1lbnRzIGFsd2F5cyBiZWdpbiB3aXRoIGEgLyBjaGFyYWN0ZXIuXG5cbiAgICBpZiAodGhpcy5jaCAhPT0gXCIvXCIpIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJOb3QgYSBjb21tZW50XCIpO1xuICAgIH1cblxuICAgIHRoaXMubmV4dChcIi9cIik7XG5cbiAgICBpZiAodGhpcy5jaCA9PT0gXCIvXCIpIHtcbiAgICAgIHRoaXMuaW5saW5lQ29tbWVudCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jaCA9PT0gXCIqXCIpIHtcbiAgICAgIHRoaXMuYmxvY2tDb21tZW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJVbnJlY29nbml6ZWQgY29tbWVudFwiKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSB3aGl0ZSgpIHtcbiAgICAvLyBTa2lwIHdoaXRlc3BhY2UgYW5kIGNvbW1lbnRzLlxuICAgIC8vIE5vdGUgdGhhdCB3ZSdyZSBkZXRlY3RpbmcgY29tbWVudHMgYnkgb25seSBhIHNpbmdsZSAvIGNoYXJhY3Rlci5cbiAgICAvLyBUaGlzIHdvcmtzIHNpbmNlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgYXJlIG5vdCB2YWxpZCBKU09OKDUpLCBidXQgdGhpcyB3aWxsXG4gICAgLy8gYnJlYWsgaWYgdGhlcmUgYXJlIG90aGVyIHZhbGlkIHZhbHVlcyB0aGF0IGJlZ2luIHdpdGggYSAvIGNoYXJhY3RlciFcblxuICAgIHdoaWxlICh0aGlzLmNoKSB7XG4gICAgICBpZiAodGhpcy5jaCA9PT0gXCIvXCIpIHtcbiAgICAgICAgdGhpcy5jb21tZW50KCk7XG4gICAgICB9IGVsc2UgaWYgKFN1cnZleUpTT041LndzLmluZGV4T2YodGhpcy5jaCkgPj0gMCkge1xuICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSB3b3JkKCk6IGFueSB7XG4gICAgLy8gdHJ1ZSwgZmFsc2UsIG9yIG51bGwuXG5cbiAgICBzd2l0Y2ggKHRoaXMuY2gpIHtcbiAgICAgIGNhc2UgXCJ0XCI6XG4gICAgICAgIHRoaXMubmV4dChcInRcIik7XG4gICAgICAgIHRoaXMubmV4dChcInJcIik7XG4gICAgICAgIHRoaXMubmV4dChcInVcIik7XG4gICAgICAgIHRoaXMubmV4dChcImVcIik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSBcImZcIjpcbiAgICAgICAgdGhpcy5uZXh0KFwiZlwiKTtcbiAgICAgICAgdGhpcy5uZXh0KFwiYVwiKTtcbiAgICAgICAgdGhpcy5uZXh0KFwibFwiKTtcbiAgICAgICAgdGhpcy5uZXh0KFwic1wiKTtcbiAgICAgICAgdGhpcy5uZXh0KFwiZVwiKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgdGhpcy5uZXh0KFwiblwiKTtcbiAgICAgICAgdGhpcy5uZXh0KFwidVwiKTtcbiAgICAgICAgdGhpcy5uZXh0KFwibFwiKTtcbiAgICAgICAgdGhpcy5uZXh0KFwibFwiKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBjYXNlIFwiSVwiOlxuICAgICAgICB0aGlzLm5leHQoXCJJXCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJuXCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJmXCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJpXCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJuXCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJpXCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJ0XCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJ5XCIpO1xuICAgICAgICByZXR1cm4gSW5maW5pdHk7XG4gICAgICBjYXNlIFwiTlwiOlxuICAgICAgICB0aGlzLm5leHQoXCJOXCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJhXCIpO1xuICAgICAgICB0aGlzLm5leHQoXCJOXCIpO1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgIH1cbiAgICB0aGlzLmVycm9yKFwiVW5leHBlY3RlZCAnXCIgKyB0aGlzLmNoICsgXCInXCIpO1xuICB9XG4gIHByaXZhdGUgYXJyYXkoKSB7XG4gICAgLy8gUGFyc2UgYW4gYXJyYXkgdmFsdWUuXG5cbiAgICB2YXIgYXJyYXkgPSBbXTtcblxuICAgIGlmICh0aGlzLmNoID09PSBcIltcIikge1xuICAgICAgdGhpcy5uZXh0KFwiW1wiKTtcbiAgICAgIHRoaXMud2hpdGUoKTtcbiAgICAgIHdoaWxlICh0aGlzLmNoKSB7XG4gICAgICAgIGlmICh0aGlzLmNoID09PSBcIl1cIikge1xuICAgICAgICAgIHRoaXMubmV4dChcIl1cIik7XG4gICAgICAgICAgcmV0dXJuIGFycmF5OyAvLyBQb3RlbnRpYWxseSBlbXB0eSBhcnJheVxuICAgICAgICB9XG4gICAgICAgIC8vIEVTNSBhbGxvd3Mgb21pdHRpbmcgZWxlbWVudHMgaW4gYXJyYXlzLCBlLmcuIFssXSBhbmRcbiAgICAgICAgLy8gWyxudWxsXS4gV2UgZG9uJ3QgYWxsb3cgdGhpcyBpbiBKU09ONS5cbiAgICAgICAgaWYgKHRoaXMuY2ggPT09IFwiLFwiKSB7XG4gICAgICAgICAgdGhpcy5lcnJvcihcIk1pc3NpbmcgYXJyYXkgZWxlbWVudFwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhcnJheS5wdXNoKHRoaXMudmFsdWUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53aGl0ZSgpO1xuICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIGNvbW1hIGFmdGVyIHRoaXMgdmFsdWUsIHRoaXMgbmVlZHMgdG9cbiAgICAgICAgLy8gYmUgdGhlIGVuZCBvZiB0aGUgYXJyYXkuXG4gICAgICAgIGlmICh0aGlzLmNoICE9PSBcIixcIikge1xuICAgICAgICAgIHRoaXMubmV4dChcIl1cIik7XG4gICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmV4dChcIixcIik7XG4gICAgICAgIHRoaXMud2hpdGUoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lcnJvcihcIkJhZCBhcnJheVwiKTtcbiAgfVxuICBwcml2YXRlIG9iamVjdCgpIHtcbiAgICAvLyBQYXJzZSBhbiBvYmplY3QgdmFsdWUuXG5cbiAgICB2YXIga2V5LFxuICAgICAgc3RhcnQsXG4gICAgICBpc0ZpcnN0UHJvcGVydHkgPSB0cnVlLFxuICAgICAgb2JqZWN0ID0ge307XG4gICAgaWYgKHRoaXMucGFyc2VUeXBlID4gMCkge1xuICAgICAgb2JqZWN0W1N1cnZleUpTT041LnBvc2l0aW9uTmFtZV0gPSB7IHN0YXJ0OiB0aGlzLmF0IC0gMSB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5jaCA9PT0gXCJ7XCIpIHtcbiAgICAgIHRoaXMubmV4dChcIntcIik7XG4gICAgICB0aGlzLndoaXRlKCk7XG4gICAgICBzdGFydCA9IHRoaXMuYXQgLSAxO1xuICAgICAgd2hpbGUgKHRoaXMuY2gpIHtcbiAgICAgICAgaWYgKHRoaXMuY2ggPT09IFwifVwiKSB7XG4gICAgICAgICAgaWYgKHRoaXMucGFyc2VUeXBlID4gMCkge1xuICAgICAgICAgICAgb2JqZWN0W1N1cnZleUpTT041LnBvc2l0aW9uTmFtZV0uZW5kID0gc3RhcnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubmV4dChcIn1cIik7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdDsgLy8gUG90ZW50aWFsbHkgZW1wdHkgb2JqZWN0XG4gICAgICAgIH1cblxuICAgICAgICAvLyBLZXlzIGNhbiBiZSB1bnF1b3RlZC4gSWYgdGhleSBhcmUsIHRoZXkgbmVlZCB0byBiZVxuICAgICAgICAvLyB2YWxpZCBKUyBpZGVudGlmaWVycy5cbiAgICAgICAgaWYgKHRoaXMuY2ggPT09ICdcIicgfHwgdGhpcy5jaCA9PT0gXCInXCIpIHtcbiAgICAgICAgICBrZXkgPSB0aGlzLnN0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGtleSA9IHRoaXMuaWRlbnRpZmllcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53aGl0ZSgpO1xuICAgICAgICBpZiAodGhpcy5wYXJzZVR5cGUgPiAxKSB7XG4gICAgICAgICAgb2JqZWN0W1N1cnZleUpTT041LnBvc2l0aW9uTmFtZV1ba2V5XSA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIHZhbHVlU3RhcnQ6IHRoaXMuYXRcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmV4dChcIjpcIik7XG4gICAgICAgIG9iamVjdFtrZXldID0gdGhpcy52YWx1ZSgpO1xuICAgICAgICBpZiAodGhpcy5wYXJzZVR5cGUgPiAxKSB7XG4gICAgICAgICAgc3RhcnQgPSB0aGlzLmF0IC0gMTtcbiAgICAgICAgICBvYmplY3RbU3VydmV5SlNPTjUucG9zaXRpb25OYW1lXVtrZXldLnZhbHVlRW5kID0gc3RhcnQ7XG4gICAgICAgICAgb2JqZWN0W1N1cnZleUpTT041LnBvc2l0aW9uTmFtZV1ba2V5XS5lbmQgPSBzdGFydDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndoaXRlKCk7XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gY29tbWEgYWZ0ZXIgdGhpcyBwYWlyLCB0aGlzIG5lZWRzIHRvIGJlXG4gICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIG9iamVjdC5cbiAgICAgICAgaWYgKHRoaXMuY2ggIT09IFwiLFwiKSB7XG4gICAgICAgICAgaWYgKHRoaXMucGFyc2VUeXBlID4gMSkge1xuICAgICAgICAgICAgb2JqZWN0W1N1cnZleUpTT041LnBvc2l0aW9uTmFtZV1ba2V5XS52YWx1ZUVuZC0tO1xuICAgICAgICAgICAgb2JqZWN0W1N1cnZleUpTT041LnBvc2l0aW9uTmFtZV1ba2V5XS5lbmQtLTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMucGFyc2VUeXBlID4gMCkge1xuICAgICAgICAgICAgb2JqZWN0W1N1cnZleUpTT041LnBvc2l0aW9uTmFtZV0uZW5kID0gdGhpcy5hdCAtIDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubmV4dChcIn1cIik7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYXJzZVR5cGUgPiAxKSB7XG4gICAgICAgICAgb2JqZWN0W1N1cnZleUpTT041LnBvc2l0aW9uTmFtZV1ba2V5XS52YWx1ZUVuZC0tO1xuICAgICAgICAgIGlmICghaXNGaXJzdFByb3BlcnR5KSB7XG4gICAgICAgICAgICBvYmplY3RbU3VydmV5SlNPTjUucG9zaXRpb25OYW1lXVtrZXldLmVuZC0tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5leHQoXCIsXCIpO1xuICAgICAgICB0aGlzLndoaXRlKCk7XG4gICAgICAgIGlzRmlyc3RQcm9wZXJ0eSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmVycm9yKFwiQmFkIG9iamVjdFwiKTtcbiAgfVxuICBwcml2YXRlIHZhbHVlKCk6IGFueSB7XG4gICAgLy8gUGFyc2UgYSBKU09OIHZhbHVlLiBJdCBjb3VsZCBiZSBhbiBvYmplY3QsIGFuIGFycmF5LCBhIHN0cmluZywgYSBudW1iZXIsXG4gICAgLy8gb3IgYSB3b3JkLlxuXG4gICAgdGhpcy53aGl0ZSgpO1xuICAgIHN3aXRjaCAodGhpcy5jaCkge1xuICAgICAgY2FzZSBcIntcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0KCk7XG4gICAgICBjYXNlIFwiW1wiOlxuICAgICAgICByZXR1cm4gdGhpcy5hcnJheSgpO1xuICAgICAgY2FzZSAnXCInOlxuICAgICAgY2FzZSBcIidcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nKCk7XG4gICAgICBjYXNlIFwiLVwiOlxuICAgICAgY2FzZSBcIitcIjpcbiAgICAgIGNhc2UgXCIuXCI6XG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlcigpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMuY2ggPj0gXCIwXCIgJiYgdGhpcy5jaCA8PSBcIjlcIiA/IHRoaXMubnVtYmVyKCkgOiB0aGlzLndvcmQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VyOiBhbnk7XG4gIHByaXZhdGUgaW5kZW50U3RyOiBzdHJpbmc7XG4gIHByaXZhdGUgb2JqU3RhY2s7XG5cbiAgcHVibGljIHN0cmluZ2lmeShvYmo6IGFueSwgcmVwbGFjZXI6IGFueSA9IG51bGwsIHNwYWNlOiBhbnkgPSBudWxsKSB7XG4gICAgaWYgKFxuICAgICAgcmVwbGFjZXIgJiZcbiAgICAgICh0eXBlb2YgcmVwbGFjZXIgIT09IFwiZnVuY3Rpb25cIiAmJiAhdGhpcy5pc0FycmF5KHJlcGxhY2VyKSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlcGxhY2VyIG11c3QgYmUgYSBmdW5jdGlvbiBvciBhbiBhcnJheVwiKTtcbiAgICB9XG4gICAgdGhpcy5yZXBsYWNlciA9IHJlcGxhY2VyO1xuICAgIHRoaXMuaW5kZW50U3RyID0gdGhpcy5nZXRJbmRlbnQoc3BhY2UpO1xuICAgIHRoaXMub2JqU3RhY2sgPSBbXTtcbiAgICAvLyBzcGVjaWFsIGNhc2UuLi53aGVuIHVuZGVmaW5lZCBpcyB1c2VkIGluc2lkZSBvZlxuICAgIC8vIGEgY29tcG91bmQgb2JqZWN0L2FycmF5LCByZXR1cm4gbnVsbC5cbiAgICAvLyBidXQgd2hlbiB0b3AtbGV2ZWwsIHJldHVybiB1bmRlZmluZWRcbiAgICB2YXIgdG9wTGV2ZWxIb2xkZXIgPSB7IFwiXCI6IG9iaiB9O1xuICAgIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVwbGFjZWRWYWx1ZU9yVW5kZWZpbmVkKHRvcExldmVsSG9sZGVyLCBcIlwiLCB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTdHJpbmdpZnkodG9wTGV2ZWxIb2xkZXIsIFwiXCIsIHRydWUpO1xuICB9XG4gIHByaXZhdGUgZ2V0SW5kZW50KHNwYWNlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChzcGFjZSkge1xuICAgICAgaWYgKHR5cGVvZiBzcGFjZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gc3BhY2U7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzcGFjZSA9PT0gXCJudW1iZXJcIiAmJiBzcGFjZSA+PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1ha2VJbmRlbnQoXCIgXCIsIHNwYWNlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbiAgcHJpdmF0ZSBnZXRSZXBsYWNlZFZhbHVlT3JVbmRlZmluZWQoXG4gICAgaG9sZGVyOiBhbnksXG4gICAga2V5OiBhbnksXG4gICAgaXNUb3BMZXZlbDogYm9vbGVhblxuICApIHtcbiAgICB2YXIgdmFsdWUgPSBob2xkZXJba2V5XTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIHZhbHVlIHdpdGggaXRzIHRvSlNPTiB2YWx1ZSBmaXJzdCwgaWYgcG9zc2libGVcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUudG9KU09OICYmIHR5cGVvZiB2YWx1ZS50b0pTT04gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b0pTT04oKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdXNlci1zdXBwbGllZCByZXBsYWNlciBpZiBhIGZ1bmN0aW9uLCBjYWxsIGl0LiBJZiBpdHMgYW4gYXJyYXksIGNoZWNrIG9iamVjdHMnIHN0cmluZyBrZXlzIGZvclxuICAgIC8vIHByZXNlbmNlIGluIHRoZSBhcnJheSAocmVtb3ZpbmcgdGhlIGtleS92YWx1ZSBwYWlyIGZyb20gdGhlIHJlc3VsdGluZyBKU09OIGlmIHRoZSBrZXkgaXMgbWlzc2luZykuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnJlcGxhY2VyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlcGxhY2VyLmNhbGwoaG9sZGVyLCBrZXksIHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVwbGFjZXIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgaXNUb3BMZXZlbCB8fFxuICAgICAgICB0aGlzLmlzQXJyYXkoaG9sZGVyKSB8fFxuICAgICAgICB0aGlzLnJlcGxhY2VyLmluZGV4T2Yoa2V5KSA+PSAwXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNXb3JkQ2hhcihjaGFyOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgKGNoYXIgPj0gXCJhXCIgJiYgY2hhciA8PSBcInpcIikgfHxcbiAgICAgIChjaGFyID49IFwiQVwiICYmIGNoYXIgPD0gXCJaXCIpIHx8XG4gICAgICAoY2hhciA+PSBcIjBcIiAmJiBjaGFyIDw9IFwiOVwiKSB8fFxuICAgICAgY2hhciA9PT0gXCJfXCIgfHxcbiAgICAgIGNoYXIgPT09IFwiJFwiXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNXb3JkU3RhcnQoY2hhcjogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChjaGFyID49IFwiYVwiICYmIGNoYXIgPD0gXCJ6XCIpIHx8XG4gICAgICAoY2hhciA+PSBcIkFcIiAmJiBjaGFyIDw9IFwiWlwiKSB8fFxuICAgICAgY2hhciA9PT0gXCJfXCIgfHxcbiAgICAgIGNoYXIgPT09IFwiJFwiXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNXb3JkKGtleTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBrZXkgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzV29yZFN0YXJ0KGtleVswXSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIGkgPSAxLFxuICAgICAgbGVuZ3RoID0ga2V5Lmxlbmd0aDtcbiAgICB3aGlsZSAoaSA8IGxlbmd0aCkge1xuICAgICAgaWYgKCF0aGlzLmlzV29yZENoYXIoa2V5W2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpKys7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8vIHBvbHlmaWxsc1xuICBwcml2YXRlIGlzQXJyYXkob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSkge1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSBcIltvYmplY3QgQXJyYXldXCI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0RhdGUob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09IFwiW29iamVjdCBEYXRlXVwiO1xuICB9XG5cbiAgcHJpdmF0ZSBpc05hTih2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdmFsID09PSBcIm51bWJlclwiICYmIHZhbCAhPT0gdmFsO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZvckNpcmN1bGFyKG9iajogYW55KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9ialN0YWNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5vYmpTdGFja1tpXSA9PT0gb2JqKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09OXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIG1ha2VJbmRlbnQoc3RyOiBzdHJpbmcsIG51bTogbnVtYmVyLCBub05ld0xpbmU6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICghc3RyKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgLy8gaW5kZW50YXRpb24gbm8gbW9yZSB0aGFuIDEwIGNoYXJzXG4gICAgaWYgKHN0ci5sZW5ndGggPiAxMCkge1xuICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAxMCk7XG4gICAgfVxuXG4gICAgdmFyIGluZGVudCA9IG5vTmV3TGluZSA/IFwiXCIgOiBcIlxcblwiO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtOyBpKyspIHtcbiAgICAgIGluZGVudCArPSBzdHI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGVudDtcbiAgfVxuXG4gIC8vIENvcGllZCBmcm9tIENyb2tmb3JkJ3MgaW1wbGVtZW50YXRpb24gb2YgSlNPTlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2RvdWdsYXNjcm9ja2ZvcmQvSlNPTi1qcy9ibG9iL2UzOWRiNGI3ZTYyNDlmMDRhMTk1ZTdkZDA4NDBlNjEwY2M5ZTk0MWUvanNvbjIuanMjTDE5NVxuICAvLyBCZWdpblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgcHJpdmF0ZSBzdGF0aWMgY3ggPSAvW1xcdTAwMDBcXHUwMGFkXFx1MDYwMC1cXHUwNjA0XFx1MDcwZlxcdTE3YjRcXHUxN2I1XFx1MjAwYy1cXHUyMDBmXFx1MjAyOC1cXHUyMDJmXFx1MjA2MC1cXHUyMDZmXFx1ZmVmZlxcdWZmZjAtXFx1ZmZmZl0vZztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIHByaXZhdGUgc3RhdGljIGVzY2FwYWJsZSA9IC9bXFxcXFxcXCJcXHgwMC1cXHgxZlxceDdmLVxceDlmXFx1MDBhZFxcdTA2MDAtXFx1MDYwNFxcdTA3MGZcXHUxN2I0XFx1MTdiNVxcdTIwMGMtXFx1MjAwZlxcdTIwMjgtXFx1MjAyZlxcdTIwNjAtXFx1MjA2ZlxcdWZlZmZcXHVmZmYwLVxcdWZmZmZdL2c7XG4gIHByaXZhdGUgc3RhdGljIG1ldGEgPSB7XG4gICAgLy8gdGFibGUgb2YgY2hhcmFjdGVyIHN1YnN0aXR1dGlvbnNcbiAgICBcIlxcYlwiOiBcIlxcXFxiXCIsXG4gICAgXCJcXHRcIjogXCJcXFxcdFwiLFxuICAgIFwiXFxuXCI6IFwiXFxcXG5cIixcbiAgICBcIlxcZlwiOiBcIlxcXFxmXCIsXG4gICAgXCJcXHJcIjogXCJcXFxcclwiLFxuICAgICdcIic6ICdcXFxcXCInLFxuICAgIFwiXFxcXFwiOiBcIlxcXFxcXFxcXCJcbiAgfTtcbiAgcHJpdmF0ZSBlc2NhcGVTdHJpbmcoc3RyOiBzdHJpbmcpIHtcbiAgICAvLyBJZiB0aGUgc3RyaW5nIGNvbnRhaW5zIG5vIGNvbnRyb2wgY2hhcmFjdGVycywgbm8gcXVvdGUgY2hhcmFjdGVycywgYW5kIG5vXG4gICAgLy8gYmFja3NsYXNoIGNoYXJhY3RlcnMsIHRoZW4gd2UgY2FuIHNhZmVseSBzbGFwIHNvbWUgcXVvdGVzIGFyb3VuZCBpdC5cbiAgICAvLyBPdGhlcndpc2Ugd2UgbXVzdCBhbHNvIHJlcGxhY2UgdGhlIG9mZmVuZGluZyBjaGFyYWN0ZXJzIHdpdGggc2FmZSBlc2NhcGVcbiAgICAvLyBzZXF1ZW5jZXMuXG4gICAgU3VydmV5SlNPTjUuZXNjYXBhYmxlLmxhc3RJbmRleCA9IDA7XG4gICAgcmV0dXJuIFN1cnZleUpTT041LmVzY2FwYWJsZS50ZXN0KHN0cilcbiAgICAgID8gJ1wiJyArXG4gICAgICAgICAgc3RyLnJlcGxhY2UoU3VydmV5SlNPTjUuZXNjYXBhYmxlLCBmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICB2YXIgYyA9IFN1cnZleUpTT041Lm1ldGFbYV07XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyBjXG4gICAgICAgICAgICAgIDogXCJcXFxcdVwiICsgKFwiMDAwMFwiICsgYS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTQpO1xuICAgICAgICAgIH0pICtcbiAgICAgICAgICAnXCInXG4gICAgICA6ICdcIicgKyBzdHIgKyAnXCInO1xuICB9XG4gIC8vIEVuZFxuXG4gIHByaXZhdGUgaW50ZXJuYWxTdHJpbmdpZnkoaG9sZGVyOiBhbnksIGtleTogYW55LCBpc1RvcExldmVsOiBib29sZWFuKSB7XG4gICAgdmFyIGJ1ZmZlciwgcmVzO1xuXG4gICAgLy8gUmVwbGFjZSB0aGUgdmFsdWUsIGlmIG5lY2Vzc2FyeVxuICAgIHZhciBvYmpfcGFydCA9IHRoaXMuZ2V0UmVwbGFjZWRWYWx1ZU9yVW5kZWZpbmVkKGhvbGRlciwga2V5LCBpc1RvcExldmVsKTtcblxuICAgIGlmIChvYmpfcGFydCAmJiAhdGhpcy5pc0RhdGUob2JqX3BhcnQpKSB7XG4gICAgICAvLyB1bmJveCBvYmplY3RzXG4gICAgICAvLyBkb24ndCB1bmJveCBkYXRlcywgc2luY2Ugd2lsbCB0dXJuIGl0IGludG8gbnVtYmVyXG4gICAgICBvYmpfcGFydCA9IG9ial9wYXJ0LnZhbHVlT2YoKTtcbiAgICB9XG4gICAgc3dpdGNoICh0eXBlb2Ygb2JqX3BhcnQpIHtcbiAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgIHJldHVybiBvYmpfcGFydC50b1N0cmluZygpO1xuXG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgIGlmIChpc05hTihvYmpfcGFydCkgfHwgIWlzRmluaXRlKG9ial9wYXJ0KSkge1xuICAgICAgICAgIHJldHVybiBcIm51bGxcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqX3BhcnQudG9TdHJpbmcoKTtcblxuICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICByZXR1cm4gdGhpcy5lc2NhcGVTdHJpbmcob2JqX3BhcnQudG9TdHJpbmcoKSk7XG5cbiAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgaWYgKG9ial9wYXJ0ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIFwibnVsbFwiO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNBcnJheShvYmpfcGFydCkpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrRm9yQ2lyY3VsYXIob2JqX3BhcnQpO1xuICAgICAgICAgIGJ1ZmZlciA9IFwiW1wiO1xuICAgICAgICAgIHRoaXMub2JqU3RhY2sucHVzaChvYmpfcGFydCk7XG5cbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9ial9wYXJ0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICByZXMgPSB0aGlzLmludGVybmFsU3RyaW5naWZ5KG9ial9wYXJ0LCBpLCBmYWxzZSk7XG4gICAgICAgICAgICBidWZmZXIgKz0gdGhpcy5tYWtlSW5kZW50KHRoaXMuaW5kZW50U3RyLCB0aGlzLm9ialN0YWNrLmxlbmd0aCk7XG4gICAgICAgICAgICBpZiAocmVzID09PSBudWxsIHx8IHR5cGVvZiByZXMgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgYnVmZmVyICs9IFwibnVsbFwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYnVmZmVyICs9IHJlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpIDwgb2JqX3BhcnQubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBidWZmZXIgKz0gXCIsXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW5kZW50U3RyKSB7XG4gICAgICAgICAgICAgIGJ1ZmZlciArPSBcIlxcblwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm9ialN0YWNrLnBvcCgpO1xuICAgICAgICAgIGJ1ZmZlciArPVxuICAgICAgICAgICAgdGhpcy5tYWtlSW5kZW50KHRoaXMuaW5kZW50U3RyLCB0aGlzLm9ialN0YWNrLmxlbmd0aCwgdHJ1ZSkgKyBcIl1cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNoZWNrRm9yQ2lyY3VsYXIob2JqX3BhcnQpO1xuICAgICAgICAgIGJ1ZmZlciA9IFwie1wiO1xuICAgICAgICAgIHZhciBub25FbXB0eSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMub2JqU3RhY2sucHVzaChvYmpfcGFydCk7XG4gICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBvYmpfcGFydCkge1xuICAgICAgICAgICAgaWYgKG9ial9wYXJ0Lmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuaW50ZXJuYWxTdHJpbmdpZnkob2JqX3BhcnQsIHByb3AsIGZhbHNlKTtcbiAgICAgICAgICAgICAgaXNUb3BMZXZlbCA9IGZhbHNlO1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IHRoaXMubWFrZUluZGVudCh0aGlzLmluZGVudFN0ciwgdGhpcy5vYmpTdGFjay5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIG5vbkVtcHR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcEtleSA9IHRoaXMuaXNXb3JkKHByb3ApXG4gICAgICAgICAgICAgICAgICA/IHByb3BcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5lc2NhcGVTdHJpbmcocHJvcCk7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9XG4gICAgICAgICAgICAgICAgICBwcm9wS2V5ICsgXCI6XCIgKyAodGhpcy5pbmRlbnRTdHIgPyBcIiBcIiA6IFwiXCIpICsgdmFsdWUgKyBcIixcIjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm9ialN0YWNrLnBvcCgpO1xuICAgICAgICAgIGlmIChub25FbXB0eSkge1xuICAgICAgICAgICAgYnVmZmVyID1cbiAgICAgICAgICAgICAgYnVmZmVyLnN1YnN0cmluZygwLCBidWZmZXIubGVuZ3RoIC0gMSkgK1xuICAgICAgICAgICAgICB0aGlzLm1ha2VJbmRlbnQodGhpcy5pbmRlbnRTdHIsIHRoaXMub2JqU3RhY2subGVuZ3RoKSArXG4gICAgICAgICAgICAgIFwifVwiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBidWZmZXIgPSBcInt9XCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBmdW5jdGlvbnMgYW5kIHVuZGVmaW5lZCBzaG91bGQgYmUgaWdub3JlZFxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy9VbmNvbW1lbnQgdGhpcyBsaW5lIG9uIGNyZWF0aW5nIGEgdHJhbnNsYXRpb24gZmlsZVxuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uLCBkZWZhdWx0U3RyaW5ncyB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxudmFyIGFyYWJpY1N0cmluZ3MgPSB7XG4gIC8vc3VydmV5IHRlbXBsYXRlc1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcItiq2LnYr9mK2YRcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rOiBcIti02KfZh9ivINmI2KrYudmE2YUg2YPZitmBINmK2KrZhSDYpdmG2LTYp9ihINil2LPYqtio2YrYp9mGXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDogXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSDJydTlva0ljb29OWmZwSWJ5cTRxUT92aWV3X2FzPXN1YnNjcmliZXJcIixcbiAgICBkcm9wUXVlc3Rpb246IFwi2KfZhNix2KzYp9ihINil2YHZhNin2Kog2KfZhNiz2KTYp9mEINmH2YbYpyDZhdmGINi12YbYr9mI2YIg2KfZhNij2K/ZiNin2KpcIixcbiAgICBhZGRMb2dpY0l0ZW06IFwiLtmC2YUg2KjYpdmG2LTYp9ihINmC2KfYudiv2Kkg2YTYqtiu2LXZiti1INiq2K/ZgdmCINin2YTYpdiz2KrYqNmK2KfZhlwiLFxuICAgIGNvcHk6IFwi2YbYs9iuXCIsXG4gICAgZHVwbGljYXRlOiBcItmG2LPYrtipINi32KjZgiDYp9mE2KPYtdmEXCIsXG4gICAgc2V0dGluZ3M6IFwi2KfZhNil2LnYr9in2K/Yp9iqXCIsXG4gICAgYWRkVG9Ub29sYm94OiBcItil2LbYp9mB2Kkg2KXZhNmJINi12YbYr9mI2YIg2KfZhNij2K/ZiNin2KpcIixcbiAgICBkZWxldGVQYW5lbDogXCLYrdiw2YEg2YTZiNit2KlcIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCLYrdiw2YEg2LPYpNin2YRcIixcbiAgICBjb252ZXJ0VG86IFwi2KrYrdmI2YrZhCDYpdmE2YlcIixcbiAgICBkcmFnOiBcItil2LPYrdioINin2YTYudmG2LXYsVwiLFxuICAgIGxpY2Vuc2U6IFwi2KfZhNix2KzYp9ihINi02LHYp9ihINiq2LHYrtmK2LUg2YXYt9mI2LEgU3VydmV5SlMgQ3JlYXRvciDZhNin2LPYqtiu2K/Yp9mF2Ycg2YHZiiDYqti32KjZitmC2YNcIlxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcItin2YTYpdmB2KrYsdin2LbZilwiLFxuICAgIGNoZWNrYm94OiBcItil2K7YqtmK2KfYsSDZhdmGINmF2KrYudiv2K9cIixcbiAgICBjb21tZW50OiBcItiq2LnZhNmK2YJcIixcbiAgICBpbWFnZXBpY2tlcjogXCLYpdmG2KrZgtin2KEg2KfZhNi12YjYsVwiLFxuICAgIHJhbmtpbmc6IFwi2KrYtdmG2YrZgVwiLFxuICAgIGltYWdlOiBcIti12YjYsdipXCIsXG4gICAgZHJvcGRvd246IFwi2YLYp9im2YXYqSDZhdmG2LPYr9mE2KlcIixcbiAgICBmaWxlOiBcItmF2YTZgVwiLFxuICAgIGh0bWw6IFwi2YTYutipINiq2LHZhdmK2LIg2KfZhNmG2LXZiNi1IEhUTUxcIixcbiAgICBtYXRyaXg6IFwi2YXYtdmB2YjZgdipICjYpdiu2KrZitin2LEg2YjYp9it2K8pXCIsXG4gICAgbWF0cml4ZHJvcGRvd246IFwi2YXYtdmB2YjZgdipICjYpdiu2KrZitin2LEg2YXYqti52K/YrylcIixcbiAgICBtYXRyaXhkeW5hbWljOiBcItmF2LXZgdmI2YHYqSAo2LXZgdmI2YEg2K/ZitmG2KfZhdmK2YPZitipKVwiLFxuICAgIG11bHRpcGxldGV4dDogXCLZhdiv2K7ZhCDZhdiq2LnYr9ivXCIsXG4gICAgcGFuZWw6IFwi2YTZiNit2KlcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwi2YTZiNit2Kkg2K/ZitmG2KfZhdmK2YPZitipXCIsXG4gICAgcmFkaW9ncm91cDogXCLYpdiu2KrZitin2LEg2YHYsdiv2YpcIixcbiAgICByYXRpbmc6IFwi2KrZgtmK2YrZhVwiLFxuICAgIHRleHQ6IFwi2YXZjNiv2K7ZhCDZgdix2K/ZilwiLFxuICAgIGJvb2xlYW46IFwi2YLZitmF2Kkg2YXZhti32YLZitipXCIsXG4gICAgZXhwcmVzc2lvbjogXCLYudmF2YTZitipINit2LPYp9io2YrYqSAo2YTZhNmC2LHYp9im2Kkg2YHZgti3KVwiLFxuICAgIHNpZ25hdHVyZXBhZDogXCLZhNmI2K3YqSDYqtmI2YLZiti5XCIsXG4gICAgYnV0dG9uZ3JvdXA6IFwiQnV0dG9uIGdyb3VwXCIsXG4gICAgZmxvd3BhbmVsOiBcIkZsb3cgUGFuZWxcIlxuICB9LFxuICAvL1N0cmluZ3MgaW4gU3VydmV5SlMgQ3JlYXRvclxuICBlZDoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwi2KfZhNmE2LrYqSDYp9mE2KfZgdiq2LHYp9i22YrYqSB7MH1cIixcbiAgICBzdXJ2ZXk6IFwi2KfZhNin2LPYqtio2YrYp9mGMVwiLFxuICAgIHNldHRpbmdzOiBcItil2LnYr9in2K/Yp9iqINin2YTYp9iz2KrYqNmK2KfZhlwiLFxuICAgIHNldHRpbmdzVG9vbHRpcDogXCLZgdiq2K0g2KXYudiv2KfYr9in2Kog2KfZhNin2LPYqtio2YrYp9mGXCIsXG4gICAgLy9vcGplY3RQcm9wZXJ0aWVzSGVhZGVyOiBcIkFkdmFuY2VkXCIsXG4gICAgLy9zaG93T2JqZWN0UHJvcGVydGllczogXCJTaG93IE9iamVjdCBQcm9wZXJ0aWVzXCIsXG4gICAgLy9oaWRlT2JqZWN0UHJvcGVydGllczogXCJIaWRlIE9iamVjdCBQcm9wZXJ0aWVzXCIsXG4gICAgc2hvd1BhbmVsOiBcItil2LjZh9in2LEg2KfZhNmE2YjYrdipXCIsXG4gICAgaGlkZVBhbmVsOiBcItil2K7Zgdin2KEg2KfZhNmE2YjYrdipXCIsXG4gICAgcHJldlNlbGVjdGVkOiBcItin2K7YqtixINin2YTYs9in2KjZglwiLFxuICAgIG5leHRTZWxlY3RlZDogXCLYp9iu2KrYsSDYp9mE2KrYp9mE2YpcIixcbiAgICAvL2VkaXRTdXJ2ZXk6IFwiRWRpdCBTdXJ2ZXlcIixcbiAgICBzdXJ2ZXlUeXBlTmFtZTogXCLYp9mE2KXYs9iq2KjZitin2YZcIixcbiAgICBwYWdlVHlwZU5hbWU6IFwi2KfZhNi12YHYrdipXCIsXG4gICAgcGFuZWxUeXBlTmFtZTogXCLYp9mE2YTZiNit2KlcIixcbiAgICBxdWVzdGlvblR5cGVOYW1lOiBcItin2YTYs9ik2KfZhFwiLFxuICAgIGNvbHVtblR5cGVOYW1lOiBcIti52YXZiNivXCIsXG4gICAgYWRkTmV3UGFnZTogXCLYpdi22KfZgdipINi12YHYrdipINis2K/Zitiv2KlcIixcbiAgICBtb3ZlUmlnaHQ6IFwi2KfZhtiq2YLZhCDYpdmE2Ykg2KfZhNmK2YXZitmGXCIsXG4gICAgbW92ZUxlZnQ6IFwi2KfZhtiq2YLZhCDYpdmE2Ykg2KfZhNmK2LPYp9ixXCIsXG4gICAgZGVsZXRlUGFnZTogXCLYrdiw2YEg2KfZhNi12YHYrdipXCIsXG4gICAgZWRpdFBhZ2U6IFwi2KrYudiv2YrZhCDYp9mE2LXZgdit2KlcIixcbiAgICBlZGl0OiBcItin2YTYqti52K/ZitmEXCIsXG4gICAgbmV3UGFnZU5hbWU6IFwi2KfZhNi12YHYrdipXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcItin2YTYs9ik2KfZhFwiLFxuICAgIG5ld1BhbmVsTmFtZTogXCLYp9mE2YTZiNit2KlcIixcbiAgICBuZXdUZXh0SXRlbU5hbWU6IFwi2KfZhNmG2LVcIixcbiAgICB0ZXN0U3VydmV5OiBcItiq2KzYsdio2Kkg2KfZhNin2LPYqtio2YrYp9mGXCIsXG4gICAgdGVzdFN1cnZleUFnYWluOiBcItin2K7Yqtio2LEg2KfZhNin2LPYqtio2YrYp9mGINmF2LHYqSDYo9iu2LHZiVwiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCLYudix2LYg2KfZhNin2LPYqtio2YrYp9mGOiBcIixcbiAgICBuYXZpZ2F0ZVRvTXNnOiBcItmK2KzYqCDYudmE2YrZgyDYp9mE2KfZhtiq2YLYp9mEINin2YTZijogXCIsXG4gICAgbG9naWM6IFwi2YXZhti32YIg2KfZhNin2LPYqtio2YrYp9mGXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwi2KfYsdio2Lcg2KfZhNin2LPYqtio2YrYp9mGXCIsXG4gICAgdHJhbnNsYXRpb246IFwi2KfZhNiq2LHYrNmF2KlcIixcbiAgICBzYXZlU3VydmV5OiBcItit2YHYuCDYp9mE2KfYs9iq2KjZitin2YZcIixcbiAgICBzYXZlU3VydmV5VG9vbHRpcDogXCLYrdmB2Lgg2KfZhNin2LPYqtio2YrYp9mGXCIsXG4gICAgZGVzaWduZXI6IFwi2KfZhNmF2LXZhdmFXCIsXG4gICAganNvbkVkaXRvcjogXCLZhdit2LHYsSBKU09OXCIsXG4gICAganNvbkhpZGVFcnJvcnM6IFwi2KXYrtmB2KfYoSDYp9mE2KPYrti32KfYoVwiLFxuICAgIGpzb25TaG93RXJyb3JzOiBcItil2LjZh9in2LEg2KfZhNij2K7Yt9in2KFcIixcbiAgICB1bmRvOiBcItiq2LHYp9is2LlcIixcbiAgICByZWRvOiBcItil2LnYp9iv2KlcIixcbiAgICB1bmRvVG9vbHRpcDogXCLYsdin2KzYuSDYp9iu2LEg2KrYudiv2YrZhFwiLFxuICAgIHJlZG9Ub29sdGlwOiBcItil2LnYp9iv2Kkg2KfZhNiq2LrZitmK2LFcIixcbiAgICBjb3B5OiBcItmG2LPYrlwiLFxuICAgIGN1dDogXCLZgti1XCIsXG4gICAgcGFzdGU6IFwi2YTYtdmCXCIsXG4gICAgY29weVRvb2x0aXA6IFwi2YbYs9iuINin2YTZhdit2K/YryDYpdmE2Ykg2KfZhNit2KfZgdi42KlcIixcbiAgICBjdXRUb29sdGlwOiBcItmC2LUg2KfZhNmF2K3Yr9ivINil2YTZiSDYp9mE2K3Yp9mB2LjYqVwiLFxuICAgIHBhc3RlVG9vbHRpcDogXCLZhNi12YIg2YXZhiDYp9mE2K3Yp9mB2LjYqVwiLFxuICAgIG9wdGlvbnM6IFwi2KfZhNiu2YrYp9ix2KfYqlwiLFxuICAgIGdlbmVyYXRlVmFsaWRKU09OOiBcItil2YbYtNin2KEgSlNPTiDYtdin2YTYrVwiLFxuICAgIGdlbmVyYXRlUmVhZGFibGVKU09OOiBcItil2YbYtNin2KEgSlNPTiDZgtin2KjZhCDZhNmE2YLYsdin2KHYqVwiLFxuICAgIHRvb2xib3g6IFwi2LXZhtiv2YjZgiDYp9mE2KPYr9mI2KfYqlwiLFxuICAgIFwicHJvcGVydHktZ3JpZFwiOiBcIlByb3BlcnRpZXNcIixcbiAgICBwcm9wZXJ0eUdyaWRGaWx0ZXJlZFRleHRQbGFjZWhvbGRlcjogXCLYp9mD2KrYqCDZhNmE2KjYrdirLi4uXCIsXG4gICAgdG9vbGJveEdlbmVyYWxDYXRlZ29yeTogXCLZgtin2KbZhdipINin2YTYudin2YVcIixcbiAgICAvL2RlbFNlbE9iamVjdDogXCJEZWxldGUgc2VsZWN0ZWQgb2JqZWN0XCIsXG4gICAgLy9lZGl0U2VsT2JqZWN0OiBcIkVkaXQgc2VsZWN0ZWQgb2JqZWN0XCIsXG4gICAgY29ycmVjdEpTT046IFwi2KfZhNix2KzYp9ihINil2K/Yrtin2YQg2KjZitin2YbYp9iqIEpTT04g2LXYrdmK2K3YqVwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwi2YbYqtin2YrYrCDYp9mE2KfYs9iq2KjZitin2YY6IFwiLFxuICAgIHN1cnZleVJlc3VsdHNUYWJsZTogXCJUYWJsZVwiLFxuICAgIHN1cnZleVJlc3VsdHNKc29uOiBcIkpTT05cIixcbiAgICByZXN1bHRzVGl0bGU6IFwi2LnZhtmI2KfZhiDYp9mE2LPYpNin2YRcIixcbiAgICByZXN1bHRzTmFtZTogXCLYp9iz2YUg2KfZhNiz2KTYp9mEXCIsXG4gICAgcmVzdWx0c1ZhbHVlOiBcItmC2YrZhdipINin2YTYp9is2KfYqNipXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCLYp9i52LHYtiDYp9mE2YLZitmF2KlcIixcbiAgICBtb2RpZmllZDogXCLYqtmFINiq2LnYr9mK2YTYqVwiLFxuICAgIHNhdmluZzogXCLYrNin2LHZiiDYp9mE2K3Zgdi4XCIsXG4gICAgc2F2ZWQ6IFwi2KrZhSDYrdmB2LjYqVwiLFxuICAgIHByb3BlcnR5RWRpdG9yRXJyb3I6IFwi2K7Yt9ijXCIsXG4gICAgc2F2ZUVycm9yOiBcItiu2LfYo3wg2YTYpyDZitmF2YPZhiDYrdmB2Lgg2YXYrdiq2YjZiiDYp9mE2YXYrdix2LFcIixcbiAgICB0cmFuc2xhdGlvblByb3BlcnR5R3JpZFRpdGxlOiBcItin2LnYr9in2K/Yp9iqINin2YTYqtix2KzZhdipXCIsXG4gICAgdHJhbnNsYXRpb25MYW5ndWFnZXM6IFwi2KfZhNmE2LrYp9iqXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCLYp9iu2KrYsSDYp9mE2YTYutipINin2YTYqtmKINiq2LHZitivINiq2LHYrNmF2KrZh9inXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsU3RyaW5nczogXCLYpdi42YfYp9ixINis2YXZiti5INin2YTZhti12YjYtVwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcItil2LjZh9in2LEg2KzZhdmK2Lkg2KfZhNi12YHYrdin2KpcIixcbiAgICB0cmFuc2xhdGlvbk5vU3RyaW5nczogXCLZhNinINiq2YjYrNivINmG2LXZiNi1INmE2YTYqtix2KzZhdipLiDZhdmGINmB2LbZhNmDINiMINmC2YUg2KjYqti62YrZitixINin2YTZgdmE2KrYsS5cIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcItiq2LXYr9mK2LEg2KfZhNmKIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCLYp9iz2KrZitix2KfYryDZhdmGIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDogXCLYr9mF2KwgezB9INio2KfZhNmE2LrYqSDYp9mE2KfZgdiq2LHYp9i22YrYqVwiLFxuICAgIHRyYW5zbGF0aW9uUGxhY2VIb2xkZXI6IFwi2KrYsdis2YUuLi5cIixcbiAgICBib2xkOiBcIti52LHZiti2XCIsXG4gICAgaXRhbGljOiBcItmF2KfYptmEXCIsXG4gICAgdW5kZXJsaW5lOiBcItiq2K3YqtmH2Kcg2K7Yt1wiLFxuICAgIGZwQWRkUXVlc3Rpb246IFwi2KXYttin2YHYqSDYs9ik2KfZhC4uXCIsXG4gICAgc2VsZWN0UGFnZTogXCLYp9iu2KrYsSDYp9mE2LXZgdit2KkuLi5cIixcbiAgICBjaG9vc2VFbGVtZW50OiBcItin2K7YqtixINi52YbYtdixLi4uLlwiLFxuICAgIGh0bWxQbGFjZUhvbGRlcjogXCLZhdit2KrZiNmJIEhUTUwg2LPZitmD2YjZhiDZh9mG2KdcIixcbiAgICBzaWduSGVyZTogXCLYp9mE2KrZiNmC2YrYuSDZh9mG2KdcIixcbiAgICBwYW5lbFBsYWNlSG9sZGVyOiBcItmC2YUg2KjYpdiz2YLYp9i3INin2YTYs9ik2KfZhCDZhdmGINi12YbYr9mI2YIg2KfZhNij2K/ZiNin2Kog2KXZhNmJINmH2YbYp1wiLFxuICAgIGFkZE5ld1F1ZXN0aW9uOiBcItij2LbZgSDYs9ik2KfZhFwiLFxuICAgIGFkZE5ld1R5cGVRdWVzdGlvbjogXCLYpdi22KfZgdipIHswfVwiLFxuICAgIGNob29zZUxvZ29QbGFjZWhvbGRlcjogXCJb2KfZhNi02LnYp9ixXVwiLFxuICAgIC8vY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHQ6IFwiU2hvdyBpZjpcIixcbiAgICBsZzoge1xuICAgICAgYWRkTmV3SXRlbTogXCLYpdi22KfZgdipINi52YbYtdixINis2K/ZitivXCIsXG4gICAgICAvL0xvZ2ljIHRhYiBzdHJpbmdzXG4gICAgICBlbXB0eV90YWI6IFwi2YLZhSDYqNil2YbYtNin2KEg2YLYp9i52K/YqSDZhNiq2K7YtdmK2LUg2KrYr9mB2YIg2KfZhNin2LPYqtio2YrYp9mGXCIsXG4gICAgICBwYWdlX3Zpc2liaWxpdHlOYW1lOiBcItij2LjZh9ixICjYp9iu2YHZiikg2KfZhNi12YHYrdipXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5TmFtZTogXCLYo9i42YfYsSAo2KfYrtmB2YopINin2YTZhNmI2K3YqVwiLFxuICAgICAgcGFuZWxfZW5hYmxlTmFtZTogXCLYqtmF2YPZitmGICjYqti52LfZitmEKSDZhNmI2K3YqVwiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eU5hbWU6IFwi2KPYuNmH2LEgKNin2K7ZgdmKKSDYp9mE2LPYpNin2YRcIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZU5hbWU6IFwi2KrZhdmD2YrZhiAo2KrYudi32YrZhCkg2KfZhNiz2KTYp9mEXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlTmFtZTogXCLYp9is2LnZhCDYp9mE2LPYpNin2YQg2YXYt9mE2YjYqNmL2KdcIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVOYW1lOiBcItin2LPYqtio2YrYp9mGINmD2KfZhdmEXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlTmFtZTogXCLYqti52YrZitmGINmC2YrZhdipINin2YTYs9ik2KfZhFwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVOYW1lOiBcItmG2LPYriDZgtmK2YXYqSDYp9mE2LPYpNin2YRcIixcbiAgICAgIHRyaWdnZXJfc2tpcE5hbWU6IFwi2KrYrti32Ykg2KfZhNiz2KTYp9mEXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lOiBcItmC2YUg2KjYqti02LrZitmEINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2KlcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbk5hbWU6IFwi2YbYtSDZhdiu2LXYtSAn2LXZgdit2Kkg2KfZhNi02YPYsSdcIixcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eURlc2NyaXB0aW9uOiBcItin2KzYudmEINin2YTYtdmB2K3YqSDZhdix2KbZitipINi52YbYr9mF2Kcg2YrYudmI2K8g2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSDYtdit2YrYrdmL2KcuINmI2KXZhNinINmB2KfYqNmC2Ycg2LrZitixINmF2LHYptmKLlwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eURlc2NyaXB0aW9uOiBcItin2KzYudmEINin2YTZhNmI2K3YqSDZhdix2KbZitipINi52YbYr9mF2Kcg2YrYudmI2K8g2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSDYtdit2YrYrdmL2KcuINmI2KXZhNinINmB2KfYqNmC2Ycg2LrZitixINmF2LHYptmKLlwiLFxuICAgICAgcGFuZWxfZW5hYmxlRGVzY3JpcHRpb246IFwi2KfYrNi52YQg2KfZhNmE2YjYrdipINmI2KzZhdmK2Lkg2KfZhNi52YbYp9i12LEg2KfZhNmF2YjYrNmI2K/YqSDYqNiv2KfYrtmE2YfYpyDZhdmF2YPZhtipINi52YbYr9mF2Kcg2YrYudmI2K8g2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSDYtdit2YrYrdmL2KcuINmI2KXZhNinINin2K3YqtmB2Lgg2KjZh9inINmF2LnYt9mE2KkuXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb246IFwi2KfYrNi52YQg2KfZhNiz2KTYp9mEINmF2LHYptmK2YvYpyDYudmG2K/ZhdinINmK2LnZiNivINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kkg2LXYrdmK2K3Zi9inLiDZiNil2YTYpyDZgdin2KjZgtmHINi62YrYsSDZhdix2KbZii5cIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uOiBcItin2KzYudmEINin2YTYs9ik2KfZhCDZhdmF2YPZkdmG2YvYpyDYudmG2K/ZhdinINmK2LnZiNivINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kkg2LXYrdmK2K3Zi9inLiDZiNil2YTYpyDYo9io2YLZh9inINmF2LnYt9mE2KkuXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlRGVzY3JpcHRpb246IFwi2YrYtdio2K0g2KfZhNiz2KTYp9mEINmF2LfZhNmI2KjZi9inINi52YbYr9mF2Kcg2YrYudmI2K8g2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSDYtdit2YrYrdmL2KcuXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlRGVzY3JpcHRpb246IFwi2LnZhtiv2YXYpyDZiti52YjYryDYp9mE2LnZhdmE2YrYqSDYp9mE2K3Ys9in2KjZitipINi12K3Zitit2YvYpyDYjCDZitmD2KrZhdmEINin2YTYp9iz2KrYt9mE2KfYuSDZiNmK2LHZiSDYp9mE2YXYs9iq2K7Yr9mFINin2YTZhtmH2KfYptmKICfYtdmB2K3YqSDYtNmD2LHZi9inINmE2YMnLlwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZURlc2NyaXB0aW9uOiBcIti52YbYr9mF2Kcg2YrYqtmFINiq2LrZitmK2LEg2YLZitmFINin2YTYs9ik2KfZhCDYjCDYp9mE2KrZiiDZitiq2YUg2KfYs9iq2K7Yr9in2YXZh9inINmB2Yog2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSDYjCDZiNmK2LnZiNivINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kkg2KXZhNmJINin2YTZgtmK2YXYqSDYp9mE2LXYrdmK2K3YqSDYjCDZitiq2YUg2KrYudmK2YrZhiDYp9mE2YLZitmF2Kkg2LnZhNmJINin2YTYs9ik2KfZhCDYp9mE2YXYrdiv2K8uXCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZURlc2NyaXB0aW9uOiBcIti52YbYr9mF2Kcg2YrYqtmFINiq2LrZitmK2LEg2YLZitmFINin2YTYs9ik2KfZhCDYjCDYp9mE2KrZiiDZitiq2YUg2KfYs9iq2K7Yr9in2YXZh9inINmB2Yog2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSDYjCDZiNmK2LnZiNivINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kkg2KXZhNmJINin2YTZgtmK2YXYqSDYp9mE2LXYrdmK2K3YqSDYjCDZitiq2YUg2YbYs9iuINmC2YrZhdipINij2K3YryDYp9mE2KPYs9im2YTYqSDYp9mE2YXYrdiv2K/YqSDYpdmE2Ykg2LPYpNin2YQg2KLYrtixINmF2K3Yr9ivXCIsXG4gICAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjogXCLYudmG2K/ZhdinINmK2LnZiNivINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kkg2LXYrdmK2K3Zi9inINiMINmK2KrYrti32Ykg2KfZhNin2LPYqti32YTYp9i5IC8g2YrYsdmD2LIg2LnZhNmJINin2YTYs9ik2KfZhCDYp9mE2YXYrdiv2K8uXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25EZXNjcmlwdGlvbjogXCLYudmG2K/ZhdinINmK2LnZiNivINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kkg2LXYrdmK2K3Zi9inINiMINmK2KrZhSDYqtmG2YHZitiwINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kkg2KfZhNmF2K7Ytdi1LiDZitmF2YPZhtmDINin2K7YqtmK2KfYsdmK2Kcg2KrYudmK2YrZhiDZhtiq2YrYrNipINmH2LDYpyDYp9mE2LnZhdmE2YrYqSDYp9mE2K3Ys9in2KjZitipINmB2Yog2KfZhNiz2KTYp9mEINin2YTZhdit2K/Yr1wiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uRGVzY3JpcHRpb246IFwi2KXYsNinINmD2KfZhiDYp9mE2LnZhdmE2YrYqSDYp9mE2K3Ys9in2KjZitipICDYtdit2YrYrdmL2Kcg2Iwg2YHYs9mK2KrZhSDYqti62YrZitixINin2YTZhti1INin2YTYp9mB2KrYsdin2LbZiiDZhNi12YHYrdipICfYtNmD2LHZi9inINmE2YMnINil2YTZiSDYp9mE2YbYtSDYp9mE2YXYrdiv2K8uXCIsXG4gICAgICBpdGVtRXhwcmVzc2lvblRleHQ6IFwi2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSB7MH0g2YbYtNi3XCIsXG4gICAgICBpdGVtRW1wdHlFeHByZXNzaW9uVGV4dDogXCLZhNmFINmK2KrZhSDYqti52YrZitmGINmC2KfYudiv2Kkg2KzYr9mK2K/YqVwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5VGV4dDogXCLYp9is2LnZhCDYp9mE2LXZgdit2KkgezB9INmF2LHYptmK2KlcIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlUZXh0OiBcItin2KzYudmEINin2YTZhNmI2K3YqSB7MH0g2YXYsdim2YrYqVwiLFxuICAgICAgcGFuZWxfZW5hYmxlVGV4dDogXCLYp9is2LnZhCDYp9mE2YTZiNit2KkgezB9INmF2YXZg9mG2KlcIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlUZXh0OiBcItin2KzYudmEINin2YTYs9ik2KfZhCB7MH0g2YXYsdim2YrZi9inXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVUZXh0OiBcItin2KzYudmEINin2YTYs9ik2KfZhCB7MH0g2YXZhdmD2YbZi9inXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlVGV4dDogXCLYp9is2LnZhCDYp9mE2LPYpNin2YQgezB9INmF2LfZhNmI2KjZi9inXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCLYp9i12KjYrSDYp9mE2KfYs9iq2LfZhNin2Lkg2YPYp9mF2YTZi9inXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCLYqti52YrZitmGINin2YTZgtmK2YXYqSB7MH0g2KXZhNmJINin2YTYs9ik2KfZhCB7MX1cIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlVGV4dDogXCLZhtiz2K4g2KXZhNmJINin2YTYs9ik2KfZhDogezB9INin2YTZgtmK2YXYqSDZhdmGINin2YTYs9ik2KfZhCB7MX1cIixcbiAgICAgIHRyaWdnZXJfc2tpcFRleHQ6IFwi2KrYrti32Yog2KfZhNin2LPYqtio2YrYp9mGINil2YTZiSDYp9mE2LPYpNin2YQgezB9XCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MTogXCLYqti02YrYutmEINin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kk6IHswfVwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDI6IFwiINmI2YjYtti5INmG2KrZitis2KrZh9inINmF2YjYtti5INiq2LPYp9ik2YQ6IHswfVwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uVGV4dDogXCLYo9i22YfYsSDYp9mE2YbYtSDYp9mE2YXYrti12LUg2YQgJ9i12YHYrdipINin2YTYtNmD2LEnXCIsXG4gICAgICBzaG93QWxsUXVlc3Rpb25zOiBcItil2LjZh9in2LEg2YPZhCDYp9mE2KPYs9im2YTYqVwiLFxuICAgICAgc2hvd0FsbEFjdGlvblR5cGVzOiBcItil2LjZh9in2LEg2YPZhCDYo9mG2YjYp9i5INin2YTYpdis2LHYp9ih2KfYqlwiLFxuICAgICAgY29uZGl0aW9uczogXCLYp9mE2LTYsdi3L9in2YTYtNix2YjYt1wiLFxuICAgICAgYWN0aW9uczogXCLYp9mE2KfYrNix2KfYodin2KogezB9XCIsXG4gICAgICBleHByZXNzaW9uRWRpdG9yVGl0bGU6IFwi2K3Yr9ivINin2YTYtNix2Lcv2KfZhNi02LHZiNi3XCIsXG4gICAgICBhY3Rpb25zRWRpdG9yVGl0bGU6IFwi2K3Yr9ivINil2KzYsdin2KEv2KfYrNix2KfYodin2KpcIixcbiAgICAgIGRlbGV0ZUFjdGlvbjogXCLYrdiw2YEg2KfZhNil2KzYsdin2KFcIixcbiAgICAgIGFkZE5ld0FjdGlvbjogXCLYpdi22KfZgdipINil2KzYsdin2KEg2KzYr9mK2K9cIixcbiAgICAgIHNlbGVjdGVkQWN0aW9uQ2FwdGlvbjogXCLYrdiv2K8g2KXYrNix2KfYoSDZhNil2LbYp9mB2KrZhyAuLi5cIixcbiAgICAgIGV4cHJlc3Npb25JbnZhbGlkOiBcItin2YTYudmF2YTZitipINin2YTYrdiz2KfYqNmK2Kkg2YHYp9ix2Log2KPZiCDYutmK2LEg2LXYp9mE2K0uINmK2LHYrNmJINiq2LXYrdmK2K0g2LDZhNmDLlwiLFxuICAgICAgbm9BY3Rpb25FcnJvcjogXCLZhdmGINmB2LbZhNmDINin2K7YqtixINil2KzYsdin2KEg2YjYp9it2K8g2LnZhNmJINin2YTYo9mC2YQuXCIsXG4gICAgICBhY3Rpb25JbnZhbGlkOiBcItmF2YYg2YHYttmE2YMg2KfYtdmE2K0g2KfZhNil2KzYsdin2KEgezB9XCIsXG4gICAgICBleHByZXNzaW9uU2V0dXA6IFwi2KXYudiv2KfYryDYp9mE2LnZhdmE2YrYqSDYp9mE2K3Ys9in2KjZitipXCIsXG4gICAgICBhY3Rpb25zU2V0dXA6IFwi2KXYudiv2KfYryDYp9mE2KXYrNix2KfYoVwiXG4gICAgfVxuICB9LFxuICAvL1Byb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgLy8gcGVsOiB7XG4gIC8vICAgaXNSZXF1aXJlZDogXCJSZXF1aXJlZD9cIlxuICAvLyB9LFxuICAvL1Byb3BlcnR5IEVkaXRvcnNcbiAgcGU6IHtcbiAgICBhcHBseTogXCLYqti32KjZitmCXCIsXG4gICAgb2s6IFwi2YXZiNin2YHZglwiLFxuICAgIHNhdmU6IFwi2K3Zgdi4XCIsXG4gICAgY2xlYXI6IFwi2YXYs9itXCIsXG4gICAgc2F2ZVRvb2x0aXA6IFwi2K3Zgdi4XCIsXG4gICAgY2FuY2VsOiBcItil2YTYutin2KFcIixcbiAgICBzZXQ6IFwi2KrYq9io2YrYqlwiLFxuICAgIHJlc2V0OiBcItil2LnYp9iv2Kkg2KrYudmK2YrZhlwiLFxuICAgIGNoYW5nZTogXCLYqti62YrZitixXCIsXG4gICAgcmVmcmVzaDogXCLYqtit2K/ZitirXCIsXG4gICAgY2xvc2U6IFwi2KXYutmE2KfZglwiLFxuICAgIGRlbGV0ZTogXCLYrdiw2YFcIixcbiAgICBhZGQ6IFwi2KXYttin2YHYqVwiLFxuICAgIGFkZE5ldzogXCLYpdi22KfZgdipINis2K/ZitivXCIsXG4gICAgYWRkSXRlbTogXCLYp9i22LrYtyDZhNin2LbYp9mB2Kkg2LnZhti12LEuLlwiLFxuICAgIHJlbW92ZUl0ZW06IFwi2KXYstin2YTYqSDYp9mE2LnZhti12LFcIixcbiAgICBkcmFnSXRlbTogXCLYs9it2Kgg2KfZhNi52YbYtdixINmE2YTYrdmB2LhcIixcbiAgICBhZGRPdGhlcjogXCLYotiu2LHZilwiLFxuICAgIGFkZFNlbGVjdEFsbDogXCJTZWxlY3QgQWxsXCIsXG4gICAgYWRkTm9uZTogXCLZhNinINi02YrYoVwiLFxuICAgIHJlbW92ZUFsbDogXCLYpdiy2KfZhNipINin2YTZg9mEXCIsXG4gICAgZWRpdDogXCLYp9mE2KrYudiv2YrZhFwiLFxuICAgIGJhY2s6IFwi2LHYrNmI2Lkg2KjYr9mI2YYg2K3Zgdi4XCIsXG4gICAgYmFja1Rvb2x0aXA6IFwi2LHYrNmI2Lkg2KjYr9mI2YYg2K3Zgdi4XCIsXG4gICAgc2F2ZUFuZEJhY2s6IFwi2K3Zgdi4INmI2LHYrNmI2LlcIixcbiAgICBzYXZlQW5kQmFja1Rvb2x0aXA6IFwi2K3Zgdi4INmI2LHYrNmI2LlcIixcbiAgICBkb25lRWRpdGluZzogXCLYqtmFXCIsXG4gICAgLy8gaXRlbVZhbHVlRWRpdDogXCJWaXNpYmxlIElmXCIsXG4gICAgZWRpdENob2ljZXM6IFwi2KrYudiv2YrZhCDYp9mE2K7Zitin2LHYp9iqXCIsXG4gICAgc2hvd0Nob2ljZXM6IFwi2LnYsdi2INin2YTYrtmK2KfYsdin2KpcIixcbiAgICBtb3ZlOiBcItmG2YLZhFwiLFxuICAgIGVtcHR5OiBcIjzZgdin2LHYuj5cIixcbiAgICBlbXB0eVZhbHVlOiBcItin2YTZgtmK2YXYqSDZgdin2LHYutipXCIsXG4gICAgZmFzdEVudHJ5OiBcIkZhc3QgRW50cnlcIixcbiAgICBmYXN0RW50cnlOb25VbmlxdWVFcnJvcjogXCJWYWx1ZSAnezB9JyBpcyBub3QgdW5pcXVlXCIsXG4gICAgZmFzdEVudHJ5Q2hvaWNlc0NvdW50RXJyb3I6IFwiUGxlYXNlIGxpbWl0IHRoZSBudW1iZXIgb2YgaXRlbXMgZnJvbSB7MH0gdG8gezF9XCIsXG4gICAgZm9ybUVudHJ5OiBcItil2K/Yrtin2YQg2KfZhNmG2YXZiNiw2KxcIixcbiAgICB0ZXN0U2VydmljZTogXCLYp9iu2KrYqNixINin2YTYrtiv2YXYqVwiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcIlBsZWFzZSBzZWxlY3QgdGhlIGVsZW1lbnRcIixcbiAgICBjb25kaXRpb25BY3Rpb25FbXB0eTogXCLZhdmGINmB2LbZhNmDINmC2YUg2KjYp9iu2KrZitin2LEg2KXYrNix2KfYoVwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcItil2K7YqtixINin2YTYs9ik2KfZhC4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhZ2U6IFwi2KfYrtiq2LEg2LXZgdit2KkuLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhbmVsOiBcItin2K7YqtixINmE2YjYrdipLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwi2YXZhiDZgdi22YTZgyDYp9iv2K7ZhCDYp9mE2YLZitmF2KlcIixcbiAgICAvLyBjb25kaXRpb25IZWxwOlxuICAgIC8vICAgXCJQbGVhc2UgZW50ZXIgYSBib29sZWFuIGV4cHJlc3Npb24uIEl0IHNob3VsZCByZXR1cm4gdHJ1ZSB0byBrZWVwIHRoZSBxdWVzdGlvbi9wYWdlIHZpc2libGUuIEZvciBleGFtcGxlOiB7cXVlc3Rpb24xfSA9ICd2YWx1ZTEnIG9yICh7cXVlc3Rpb24yfSAqIHtxdWVzdGlvbjR9ICA+IDIwIGFuZCB7cXVlc3Rpb24zfSA8IDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcIllvdSBjYW4gdXNlIGN1cmx5IGJyYWNrZXRzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIHF1ZXN0aW9uIHZhbHVlczoge3F1ZXN0aW9uMX0gKyB7cXVlc3Rpb24yfSwgKHtwcmljZX0qe3F1YW50aXR5fSkgKiAoMTAwIC0ge2Rpc2NvdW50fSkuIFlvdSBjYW4gdXNlIGZ1bmN0aW9ucyBhczogaWlmKCksIHRvZGF5KCksIGFnZSgpLCBtaW4oKSwgbWF4KCksIGNvdW50KCksIGF2ZygpIGFuZCBvdGhlcnMuXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCLYp9i22LrYtyBDVFJMK1NQQUNFINmE2YTYrdi12YjZhCDYudmE2Yog2YXZhNit2YjYuNipINiq2YPZhdmE2Kkg2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqVwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcItin2YTYtdmBINin2YTYrdin2YTZilwiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwi2KfZhNmE2YjYrdipINin2YTYrdin2YTZitipXCIsXG4gICAgc2hvd01vcmU6IFwi2YTZhdiy2YrYryDZhdmGINin2YTYqtmB2KfYtdmK2YQsINmF2YYg2YHYttmE2YMg2KfYr9iu2YQg2LnZhNmKINin2YTZiNir2YrZgtipINin2YTYsdiz2YrZhdipXCIsXG4gICAgLy8gY29uZGl0aW9uU2hvd01vcmVVcmw6XG4gICAgLy8gICBcImh0dHBzOi8vc3VydmV5anMuaW8vRG9jdW1lbnRhdGlvbi9MaWJyYXJ5UGFyYW1ldGVyP2lkPVF1ZXN0aW9uJnBhcmFtZXRlcj12aXNpYmxlSWZcIixcbiAgICBhc3Npc3RhbnRUaXRsZTogXCLYp9mE2KfYs9im2YTYqSDYp9mE2YXYqtin2K3YqTpcIixcbiAgICBjZWxsc0VtcHR5Um93c0NvbHVtbnM6IFwi2YrYrNioINin2YYg2YrZg9mI2YYg2LnZhNmKINin2YTYp9mC2YQg2YfZhtin2YMg2LXZgSDYp9mIINi52YXZiNivINmI2KfYrdivXCIsXG4gICAgcHJvcGVydHlJc0VtcHR5OiBcItmF2YYg2YHYttmE2YMg2KfYr9iu2YQg2YLZitmF2KlcIixcbiAgICBwcm9wZXJ0eUlzTm9VbmlxdWU6IFwi2YXZhiDZgdi22YTZgyDYp9iv2K7ZhCDZgtmK2YXYqSDZgdix2YrYr9ipXCIsXG4gICAgcHJvcGVydHlOYW1lSXNOb3RVbmlxdWU6IFwi2YXZhiDZgdi22YTZgyDYp9iv2K7ZhCDYp9iz2YUg2YHYsdmK2K9cIixcbiAgICBsaXN0SXNFbXB0eTogXCLYpdi22KfZgdipINi52YbYtdixINis2K/ZitivXCIsXG4gICAgZXhwcmVzc2lvbklzRW1wdHk6IFwi2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSDZgdin2LHYutipXCIsXG4gICAgdmFsdWU6IFwi2KfZhNmC2YrZhdipXCIsXG4gICAgdGV4dDogXCLYp9mE2YbYtVwiLFxuICAgIHJvd2lkOiBcItix2YLZhSDYp9mE2LXZgVwiLFxuICAgIGltYWdlTGluazogXCLYsdin2KjYtyDYp9mE2LXZiNix2KlcIixcbiAgICBjb2x1bW5FZGl0OiBcItiq2LnYr9mK2YQg2KfZhNi52YXZiNivOiB7MH1cIixcbiAgICBpdGVtRWRpdDogXCJFZGl0IGl0ZW06IHswfVwiLFxuICAgIHVybDogXCLYsdin2KjYtyDYpdmE2YPYqtix2YjZhtmKIFVSTFwiLFxuICAgIHBhdGg6IFwi2KfZhNmF2LPYp9ixXCIsXG4gICAgdmFsdWVOYW1lOiBcItin2LPZhSDYp9mE2YLZitmF2KlcIixcbiAgICB0aXRsZU5hbWU6IFwi2KfYs9mFINin2YTYudmG2YjYp9mGXCIsXG4gICAgaW1hZ2VMaW5rTmFtZTogXCLYp9iz2YUg2LHYp9io2Lcg2KfZhNi12YjYsdipXCIsXG4gICAgYWxsb3dFbXB0eVJlc3BvbnNlOiBcItin2YTYs9mF2KfYrSDYqNis2YjYp9ioINmB2KfYsdi6XCIsXG4gICAgdGl0bGVQbGFjZWhvbGRlcjogXCLYp9iv2K7ZhCDYp9mE2LnZhtmI2KfZhlwiLFxuICAgIHN1cnZleVRpdGxlUGxhY2Vob2xkZXI6IFwi2KPYr9iu2YQg2LnZhtmI2KfZhiDYp9mE2KXYs9iq2KjZitin2YYg2YfZhtinXCIsXG4gICAgcGFnZVRpdGxlUGxhY2Vob2xkZXI6IFwi2KPYr9iu2YQg2LnZhtmI2KfZhiDYp9mE2LXZgdit2Kkg2YfZhtinXCIsXG4gICAgZGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCLYp9iv2K7ZhCDYp9mE2YjYtdmBXCIsXG4gICAgc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCLYo9iv2K7ZhCDZiNi12YEg2YTZhNil2LPYqtio2YrYp9mGXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwi2KPYr9iu2YQg2YjYtdmBINmE2YTYtdmB2K3YqVwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwi2YfZhCDZh9mG2KfZgyDYrtmK2KfYsSDYo9iu2LHZiVwiLFxuICAgIG90aGVyVGV4dDogXCLZhti1INiu2YrYp9ixINij2K7YsdmJXCIsXG4gICAgc2hvd05vbmVJdGVtOiBcItmH2YQg2YfZhtin2YMg2K7Zitin2LEg2KjZhNinXCIsXG4gICAgbm9uZVRleHQ6IFwi2YbYtSDYrtmK2KfYsSDYqNmE2KdcIixcbiAgICBoYXNTZWxlY3RBbGw6IFwi2YfZhCDZh9mG2KfZgyDYrtmK2KfYsSDYpdiu2KrZitin2LEg2KfZhNmD2YRcIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcItmG2LUg2K7Zitin2LEg2KXYrtiq2LEg2KfZhNmD2YRcIixcbiAgICBjaG9pY2VzTWluOiBcItin2YTYrdivINin2YTYo9iv2YbZiSDZhNmC2YrZhdipINin2YTYudmG2KfYtdixINin2YTYqtmKINiq2YUg2KXZhti02KfYpNmH2Kcg2KrZhNmC2KfYptmK2YvYp1wiLFxuICAgIGNob2ljZXNNYXg6IFwi2KfZhNit2K8g2KfZhNij2YLYtdmJINmE2YLZitmF2Kkg2KfZhNi52YbYp9i12LEg2KfZhNiq2Yog2KrZhSDYpdmG2LTYp9ik2YfYpyDYqtmE2YLYp9im2YrZi9inXCIsXG4gICAgY2hvaWNlc1N0ZXA6IFwi2KfZhNmB2LHZgiDYqNmK2YYg2KfZhNi52YbYp9i12LEg2KfZhNiq2Yog2KrZhSDYpdmG2LTYp9ik2YfYpyDYqtmE2YLYp9im2YrZi9inXCIsXG4gICAgbmFtZTogXCLYp9mE2KXYs9mFXCIsXG4gICAgdGl0bGU6IFwi2KfZhNi52YbZiNin2YZcIixcbiAgICBjZWxsVHlwZTogXCLZhtmI2Lkg2KfZhNiu2YTZitipXCIsXG4gICAgY29sQ291bnQ6IFwi2LnYr9ivINin2YTYo9i52YXYr9ipXCIsXG4gICAgY2hvaWNlc09yZGVyOiBcItil2K7YqtixINiq2LHYqtmK2Kgg2KfZhNil2K7YqtmK2KfYsdin2KpcIixcbiAgICB2aXNpYmxlOiBcItmF2LHYptmK2J9cIixcbiAgICBpc1JlcXVpcmVkOiBcItmF2LfZhNmI2KjYn1wiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwi2KfZhNmF2LfYp9mE2KjYqSDYqNin2YTYo9is2YjYqNipINmE2YPZhCDYp9mE2LXZgdmI2YFcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCLZhti1INiu2LfYoyDYpdmE2LLYp9mF2Yog2KfZhNiz2KTYp9mEXCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCLYpdi42YfYp9ixINin2YTYs9ik2KfZhCDZgdmKINi12YEg2KzYr9mK2K9cIixcbiAgICByb3dzOiBcIti52K/YryDYp9mE2LXZgdmI2YFcIixcbiAgICBjb2xzOiBcIti52K/YryDYp9mE2KPYudmF2K/YqVwiLFxuICAgIHBsYWNlSG9sZGVyOiBcItmG2LUg2K3Yp9mF2YQg2K7Yp9mG2Kkg2KfZhNil2K/Yrtin2YRcIixcbiAgICBzaG93UHJldmlldzogXCLYudix2LYg2YXZhti32YLYqSDYp9mE2YXYudin2YrZhtipXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcItiq2K7YstmK2YYg2YXYrdiq2YjZitin2Kog2YXZhNmBIEpTT04g2YPZhti1XCIsXG4gICAgbWF4U2l6ZTogXCLYo9mC2LXZiSDYrdis2YUg2YTZhNmF2YTZgSDYqNin2YTYqNin2YrYqlwiLFxuICAgIGltYWdlSGVpZ2h0OiBcIti32YjZhCDYp9mE2LXZiNix2KlcIixcbiAgICBpbWFnZVdpZHRoOiBcIti52LHYtiDYp9mE2LXZiNix2KlcIixcbiAgICByb3dDb3VudDogXCLYudiv2K8g2KfZhNi12YHZiNmBXCIsXG4gICAgY29sdW1uTGF5b3V0OiBcItiq2K7Yt9mK2Lcg2KfZhNij2LnZhdiv2KlcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCLZhdmI2YLYuSDYstixINil2LbYp9mB2Kkg2LXZgVwiLFxuICAgIGFkZFJvd1RleHQ6IFwi2YbYtSDYstixINil2LbYp9mB2Kkg2LXZgVwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwi2YbYtSDYstixINit2LDZgSDYtdmBXCIsXG4gICAgcmF0ZU1pbjogXCLYo9i12LrYsSDZhdi52K/ZhFwiLFxuICAgIHJhdGVNYXg6IFwi2KPZg9io2LEg2YXYudiv2YRcIixcbiAgICByYXRlU3RlcDogXCLYrti32YjYp9iqINin2YTZhdi52K/ZhFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCLZiNi12YEg2KPYtdi62LEg2YXYudiv2YRcIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwi2YjYtdmBINij2YPYqNixINmF2LnYr9mEXCIsXG4gICAgaW5wdXRUeXBlOiBcItmG2YjYuSDYp9mE2YXYr9iu2YRcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCLYrtmK2KfYsdin2Kog2KfZhNi02LHYrVwiLFxuICAgIHNob3dPcHRpb25zQ2FwdGlvbjogXCLYudix2LYg2K7Zitin2LHYp9iqINin2YTZiNi12YFcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwi2KfZhNmC2YrZhdipINin2YTYpdmB2KrYsdin2LbZitipXCIsXG4gICAgY2VsbHNEZWZhdWx0Um93OiBcItmG2LXZiNi1INin2YTYrtmE2KfZitipINin2YTYp9mB2KrYsdin2LbZilwiLFxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcItiq2LnYr9mK2YQg2KfYudiv2KfYr9in2Kog2KfZhNin2LPYqtio2YrYp9mGXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcItiq2LnYr9mK2YQ6IHswfVwiLFxuICAgIG1heExlbmd0aDogXCLYo9mC2LXZiSDYt9mI2YRcIixcbiAgICBidWlsZEV4cHJlc3Npb246IFwi2KjZhtin2KFcIixcbiAgICBlZGl0RXhwcmVzc2lvbjogXCLYp9mE2KrYudiv2YrZhFwiLFxuICAgIGFuZDogXCLYo9mIXCIsXG4gICAgb3I6IFwi2YhcIixcbiAgICByZW1vdmU6IFwiUmVtb3ZlXCIsXG4gICAgYWRkQ29uZGl0aW9uOiBcItij2LbZgSDYp9mE2LTYsdi3XCIsXG4gICAgaWY6IFwi2KXYsNinINmC2YrZhdipXCIsXG4gICAgdGhlbjogXCLZhdmGINir2YVcIixcbiAgICBzZXRUb05hbWU6IFwi2KXZhNmJXCIsXG4gICAgZnJvbU5hbWU6IFwi2YXZhlwiLFxuICAgIHJ1bGVJc05vdFNldDogXCLYp9mE2YLYp9i52K/YqSDYutmK2LEg2LXYrdmK2K3YqVwiLFxuICAgIC8vc3VydmV5XG4gICAgc2hvd1RpdGxlOiBcItil2LjZh9in2LEv2KXYrtmB2KfYoSDYp9mE2LnZhtmI2KfZhlwiLFxuICAgIGV4cGFuZENvbGxhcHNlVGl0bGU6IFwi2KrZiNiz2YrYuS/Yt9mKINin2YTYudmG2YjYp9mGXCIsXG4gICAgbG9jYWxlOiBcItin2YTZhNi62Kkg2KfZhNil2YHYqtix2KfYttmK2KlcIixcbiAgICBzaW11bGF0b3I6IFwiQ2hvb3NlIGRldmljZVwiLFxuICAgIGxhbmRzY2FwZU9yaWVudGF0aW9uOiBcItij2YHZgtmKXCIsXG4gICAgcG9ydHJhaXRPcmllbnRhdGlvbjogXCLYudmF2YjYr9mKXCIsXG4gICAgbW9kZTogXCLYp9mE2YbZhdi3ICjYp9mE2KrYudiv2YrZhNiMINin2YTZgtix2KfYptipINmB2YLYtylcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCLYpdmF2LPYrSDYp9mE2YLZitmFINin2YTYutmK2LEg2YXYsdim2YrYqVwiLFxuICAgIGNvb2tpZU5hbWU6IFwi2KPYr9iu2YQg2KXYs9mFINmF2YTZgSDYqti52LHZitmBINin2YTYpdix2KrYqNin2LcgKNmE2KrYudi32YrZhCDYp9mE2YXYtNin2LHZg9ipINio2KfZhNil2LPYqtio2YrYp9mGINij2YPYq9ixINmF2YYg2YXYsdipKVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcItil2LHYs9in2YQg2YbYqtin2KbYrCDYp9mE2KXYs9iq2KjZitin2YYg2LnZhNmJINin2YTYtdmB2K3YqSDYp9mE2KrYp9mE2YrYqVwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcItiq2K7YstmK2YYg2YLZitmF2KkgJ9ij2K7YsdmJJyDZgdmKINit2YLZhCDZhdmG2YHYtdmEXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi2LnYsdi2INi52YbZiNin2YYg2KfZhNi12YHYrdin2KpcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwi2LnYsdi2INij2LHZgtin2YUg2KfZhNi12YHYrdin2KpcIixcbiAgICBwYWdlUHJldlRleHQ6IFwi2YbYtSDYstixINin2YTYpdmG2KrZgtin2YQg2YTZhNi12YHYrdipINin2YTYs9in2KjZgtipXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcItmG2LUg2LLYsSDYp9mE2KXZhtiq2YLYp9mEINmE2YTYtdmB2K3YqSDYp9mE2KrYp9mE2YrYqVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLZhti1INiy2LEg2KXZhtmH2KfYoSDYp9mE2KXYs9iq2KjZitin2YZcIixcbiAgICBwcmV2aWV3VGV4dDogXCLZhti1INiy2LEg2KfZhNmF2LnYp9mK2YbYqVwiLFxuICAgIGVkaXRUZXh0OiBcItmG2LUg2LLYsSDYp9mE2KrYudiv2YrZhFwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCLZhti1INiy2LEg2KjYr9ihINin2YTZhdi02KfYsdmD2Kkg2KjYp9mE2KXYs9iq2KjZitin2YZcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwi2KXYuNmH2KfYsSDYo9iy2LHYp9ixINin2YTYpdmG2KrZgtin2YQgKNin2YTYqtmG2YLZhCDYp9mE2KXZgdiq2LHYp9i22YopXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwi2KXYuNmH2KfYsSDYstixINin2YTYqtmG2YLZhCDYp9mE2LPYp9io2YIgKNin2YTYs9mF2KfYrSDZhNmE2YXYs9iq2K7Yr9mFINmF2YYg2KfZhNi52YjYr9ipINmE2YTYtdmB2K3YqSDYp9mE2LPYp9io2YLYqSDZgdmKINin2YTYpdiz2KrYqNmK2KfZhilcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi2KfZhNi12YHYrdipINin2YTYo9mI2YTZiSDZgdmKINin2YTYpdiz2KrYqNmK2KfZhiDZh9mKINi12YHYrdipINin2YTYqNiv2KFcIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCLYpdi42YfYp9ixINin2YTYtdmB2K3YqSDYp9mE2YXZg9iq2YXZhNipINmB2Yog2KfZhNmG2YfYp9mK2KkgKNi12YHYrdipINmI2YrYqCDZhdmD2KrZhdmE2KkpXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCLYudmG2K8g2KfZhNil2KzYp9io2Kkg2LnZhNmJINis2YXZiti5INin2YTYo9iz2KbZhNip2Iwg2KXZhtiq2YLZhCDYpdmE2Ykg2KfZhNi12YHYrdipINin2YTYqtin2YTZitipINiq2YTZgtin2KbZitin2YtcIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwi2KXYuNmH2KfYsSDYtNix2YrYtyDYp9mE2KrZgtiv2YVcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwi2YXZiNmC2Lkg2LnZhtmI2KfZhiDYp9mE2LPYpNin2YRcIixcbiAgICByZXF1aXJlZFRleHQ6IFwi2LHZhdiyINin2YTYs9ik2KfZhCDZhdi32YTZiNioXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcItmB2YfYsdizINio2K/Yp9mK2Kkg2KfZhNij2LPYptmE2KkgKDHYjDIg2KPZiCAn2KMnINiMICfYqCcpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCLYpdi42YfYp9ixINij2LHZgtin2YUg2KfZhNij2LPYptmE2KlcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwiUXVlc3Rpb24gdGl0bGUgdGVtcGxhdGUsIGRlZmF1bHQgaXM6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwi2YXZiNmC2Lkg2K7Yt9ijINmB2Yog2KfZhNiz2KTYp9mEXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcItix2YPYsiDYp9mE2YXYpNi02LEg2LnZhNmJINin2YTYs9ik2KfZhCDYp9mE2KPZiNmEINi52YbYryDYqti62YrYsSDYp9mE2LXZgdit2KlcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCLYqtix2KrZitioINin2YTYudmG2KfYtdixINi52YTZiSDYp9mE2LXZgdit2KlcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwi2KPZgti12Ykg2YjZgtiqINmE2KXZhtmH2KfYoSDYp9mE2KXYs9iq2KjZitin2YZcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcItij2YLYtdmJINmI2YLYqiDZhNil2YbZh9in2KEg2KfZhNi12YHYrdipINmB2Yog2KfZhNil2LPYqtio2YrYp9mGXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwi2KXYuNmH2KfYsSDZhNmI2K3YqSDYp9mE2YXYpNmC2KpcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwi2KXYuNmH2KfYsSDZhtmF2Lcg2YTZiNit2Kkg2KfZhNmF2KTZgtiqXCIsXG4gICAgcmVuZGVyTW9kZTogXCLZhtmF2Lcg2KfZhNi52LHYtlwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwi2KfZhNiz2YXYp9itINio2KXYttin2YHYqSDZhNmI2K3YqVwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwi2KfZhNiz2YXYp9itINio2KXYstin2YTYqSDZhNmI2K3YqVwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCLZhti1INil2LbYp9mB2Kkg2YTZiNit2KlcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwi2YbYtSDYpdiy2KfZhNipINmE2YjYrdipXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIlNob3cgYWxsIGVsZW1lbnRzIG9uIG9uZSBwYWdlXCIsXG4gICAgaHRtbDogXCLYtdmB2K3YqSDZiNmK2KggSFRNTFwiLFxuICAgIGV4cHJlc3Npb246IFwi2LnZhdmE2YrYqSDYrdiz2KfYqNmK2KlcIixcbiAgICBtaW5WYWx1ZTogXCLYp9mE2K3YryDYp9mE2KPYr9mG2Ykg2YTZhNmC2YrZhdipXCIsXG4gICAgbWF4VmFsdWU6IFwi2KfZhNit2K8g2KfZhNij2YLYtdmJINmE2YTZgtmK2YXYqVwiLFxuICAgIG1pbkxlbmd0aDogXCLYp9mE2K3YryDYp9mE2KPYr9mG2Ykg2YTYt9mI2YQg2KfZhNmG2LVcIixcbiAgICBhbGxvd0RpZ2l0czogXCLYp9mE2LPZhdin2K0g2KjYp9mE2KPYsdmC2KfZhVwiLFxuICAgIG1pbkNvdW50OiBcItin2YTYrdivINin2YTYo9iv2YbZiSDZhNi52K/Yr1wiLFxuICAgIG1heENvdW50OiBcIk1heGltdW0gY291bnRcIixcbiAgICByZWdleDogXCLYp9mE2KrYudin2KjZitixINin2YTZhtmF2LfZitipXCIsXG4gICAgdG90YWxUZXh0OiBcItil2KzZhdin2YTZiiDYp9mE2YbYtVwiLFxuICAgIHRvdGFsVHlwZTogXCLYpdis2YXYp9mE2Yog2KfZhNmG2YjYuVwiLFxuICAgIHRvdGFsRXhwcmVzc2lvbjogXCLYpdis2YXYp9mE2Yog2KfZhNi52YXZhNmK2KfYqiDYp9mE2K3Ys9in2KjZitipXCIsXG4gICAgdG90YWxEaXNwbGF5U3R5bGU6IFwi2KXYrNmF2KfZhNmKINmG2YXYtyDYp9mE2LnYsdi2XCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCLZhdis2YXZiNi5INin2YTYudmF2YTYp9iqXCIsXG4gICAgdG90YWxGb3JtYXQ6IFwi2KXYrNmF2KfZhNmKINin2YTYqtmG2LPZitmCXCIsXG4gICAgLy8gSGVhZGVyICBhZG9ybmVyXG4gICAgbG9nb1Bvc2l0aW9uOiBcItmF2YjZgti5INin2YTYtNi52KfYsVwiLFxuICAgIGFkZExvZ286IFwi2KXYttin2YHYqSDYtNi52KfYsS4uLlwiLFxuICAgIGNoYW5nZUxvZ286IFwi2KrYutmK2YrYsSDYp9mE2LTYudin2LEuLi5cIixcbiAgICBsb2dvUG9zaXRpb25zOiB7XG4gICAgICBub25lOiBcItit2LDZgSDYp9mE2LTYudin2LFcIixcbiAgICAgIGxlZnQ6IFwi2YrYs9in2LFcIixcbiAgICAgIHJpZ2h0OiBcItmK2YXZitmGXCIsXG4gICAgICB0b3A6IFwi2YHZiiDYp9mE2KPYudmE2YlcIixcbiAgICAgIGJvdHRvbTogXCLZgdmKINin2YTYo9iz2YHZhFwiXG4gICAgfSxcbiAgICB0YWJzOiB7XG4gICAgICBnZW5lcmFsOiBcIti52KfZhVwiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwi2KfZhNiu2YrYp9ix2KfYqlwiLFxuICAgICAgaHRtbDogXCJIdG1sIEVkaXRvclwiLFxuICAgICAgY29sdW1uczogXCLYp9mE2KPYudmF2K/YqVwiLFxuICAgICAgcm93czogXCLYp9mE2LXZgdmI2YFcIixcbiAgICAgIGNob2ljZXM6IFwi2KfZhNiu2YrYp9ix2KfYqlwiLFxuICAgICAgaXRlbXM6IFwi2KfZhNi52YbYp9i12LFcIixcbiAgICAgIHZpc2libGVJZjogXCLZhdix2KbZiiDYudmG2K/ZhdinXCIsXG4gICAgICBlbmFibGVJZjogXCLZhdmB2LnZhCDYudmG2K/ZhdinXCIsXG4gICAgICByZXF1aXJlZElmOiBcItmF2LfZhNmI2Kgg2LnZhtiv2YXYp1wiLFxuICAgICAgcmF0ZVZhbHVlczogXCLZgtmK2YUg2KfZhNiq2YLZitmK2YVcIixcbiAgICAgIGNob2ljZXNCeVVybDogXCLYrtmK2KfYsdin2Kog2YXZhiDYp9mE2KXZhtiq2LHZhtiqXCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIkRlZmF1bHQgQ2hvaWNlc1wiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwiVGV4dCBJbnB1dHNcIixcbiAgICAgIG51bWJlcmluZzogXCLYp9mE2KrYsdmC2YrZhVwiLFxuICAgICAgdmFsaWRhdG9yczogXCLYp9mE2YXYr9mC2YLYp9iqXCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcItin2YTYqtmG2YLZhFwiLFxuICAgICAgcXVlc3Rpb246IFwi2KfZhNiz2KTYp9mEXCIsXG4gICAgICBwYWdlczogXCLYp9mE2LXZgdit2KfYqlwiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCLYtdmB2K3YqSDYp9mE2YjZitioINin2YTZhdmD2KrZhdmE2KlcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCLYtdmB2K3YqSDZiNmK2Kgg2YXZg9iq2YXZhNipINio2LTYsdi3XCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCJMb2FkaW5nIEh0bWxcIixcbiAgICAgIHRpbWVyOiBcItmF2KTZgtiqL9il2K7Yqtio2KfYsSDZgti12YrYsVwiLFxuICAgICAgY2FsY3VsYXRlZFZhbHVlczogXCJDYWxjdWxhdGVkIFZhbHVlc1wiLFxuICAgICAgdHJpZ2dlcnM6IFwiVHJpZ2dlcnNcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwi2LnZhtmI2KfZhiDYp9mE2YLYp9mE2KhcIixcbiAgICAgIHRvdGFsczogXCJUb3RhbHNcIixcbiAgICAgIGxvZ2ljOiBcItin2YTZhdmG2LfZglwiLFxuICAgICAgbGF5b3V0OiBcItin2YTYqtmG2LPZitmCXCIsXG4gICAgICBkYXRhOiBcItin2YTYqNmK2KfZhtin2KpcIixcbiAgICAgIHZhbGlkYXRpb246IFwi2KfZhNiq2K3ZgtmCXCIsXG4gICAgICBjZWxsczogXCLYp9mE2K7ZhNin2YrYp1wiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcIti52YbYryDYp9mE2KXZhtiq2YfYp9ihINmF2YYg2KfZhNil2LPYqtio2YrYp9mGXCIsXG4gICAgICBsb2dvOiBcItin2YTYtNi52KfYsSDZgdmKINi52YbZiNin2YYg2KfZhNil2LPYqtio2YrYp9mGXCIsXG4gICAgICBzbGlkZXI6IFwiU2xpZGVyXCIsXG4gICAgICBvdGhlcnM6IFwi2LrZitixINiw2YTZg1wiXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwi2KrYudiv2YrZhCDYp9mE2K7Yp9i12YrYqSB7MH06XCIsXG4gICAgaXRlbXM6IFwiWyBJdGVtczogezB9IF1cIixcbiAgICBlbnRlck5ld1ZhbHVlOiBcItmF2YYg2YHYttmE2YMg2KfYr9iu2YQg2KfZhNmC2YrZhdipINin2YTYrNiv2YrYr9ipXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwi2YTYpyDYqtmI2KzYryDYo9iz2KbZhNipINmB2Yog2YfYsNinINin2YTYp9iz2KrYqNmK2KfZhlwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiUGxlYXNlIGNyZWF0ZSBhIHRyaWdnZXJcIixcbiAgICB0aXRsZUtleWJvYXJkQWRvcm5lclRpcDogXCLYo9i22LrYtyDYstix2KfYsSBFbnRlciDZhNmE2KrYudiv2YrZhFwiLFxuICAgIGtleWJvYXJkQWRvcm5lclRpcDogXCJQcmVzcyBlbnRlciBidXR0b24gdG8gZWRpdCBpdGVtLCBwcmVzcyBkZWxldGUgYnV0dG9uIHRvIGRlbGV0ZSBpdGVtLCBwcmVzcyBhbHQgcGx1cyBhcnJvdyB1cCBvciBhcnJvdyBkb3duIHRvIG1vdmUgaXRlbVwiLFxuICAgIHRyaWdnZXJPbjogXCJPbiBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCLYrNi52YQg2KfZhNi12YHYrdin2Kog2YXYsdim2YrYqVwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCLYrNi52YQg2KfZhNij2LPYptmE2Kkg2YXYsdim2YrYqVwiLFxuICAgIHRyaWdnZXJDb21wbGV0ZVRleHQ6IFwi2KPZg9mF2YQg2KfZhNin2LPYqtio2YrYp9mGINin2LDYpyDYqtmFINio2YbYrNin2K1cIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIlRoZSB0cmlnZ2VyIGlzIG5vdCBzZXRcIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiUnVuIGlmXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCJDaGFuZ2UgdmFsdWUgb2Y6IFwiLFxuICAgIHRyaWdnZXJGcm9tTmFtZTogXCLYp9mG2LPYriDYp9mE2YLZitmF2Kkg2YXZhjogXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb246IFwi2KfYrdiz2Kgg2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqVwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCJ0bzogXCIsXG4gICAgdHJpZ2dlckdvdG9OYW1lOiBcItij2LDZh9ioINin2YTZiiDYp9mE2LPYpNin2YQ6IFwiLFxuICAgIHRyaWdnZXJJc1ZhcmlhYmxlOiBcItmE2Kcg2KrYtti5INin2YTZhdiq2LrZitixINmB2Yog2YbYqtin2KbYrCDYp9mE2KfYs9iq2KjZitin2YZcIixcbiAgICB0cmlnZ2VyUnVuRXhwcmVzc2lvbkVtcHR5OiBcItmF2YYg2YHYttmE2YMg2KfYr9iu2YQg2LnZhdmE2YrYqSDYrdiz2KfYqNmK2Kkg2LXYrdmK2K3YqVwiLFxuICAgIG5vRmlsZTogXCLZhNmFINiq2YLZhSDYqNin2K7YqtmK2KfYsSDZhdmE2YFcIlxuICB9LFxuICAvL1Byb3BlcnR5IHZhbHVlc1xuICBwdjoge1xuICAgIGF1dG86IFwi2KrZhNmC2KfYptmKXCIsXG4gICAgc3RhdGljOiBcItir2KfYqNiq2KlcIixcbiAgICByZXNwb25zaXZlOiBcItmF2KrYrNin2YjYqFwiLFxuICAgIGNvbnRhaW46IFwi2KXYrdiq2YjYp9ihXCIsXG4gICAgY292ZXI6IFwi2KrYuti32YrYqVwiLFxuICAgIGZpbGw6IFwi2YXZhNimXCIsXG4gICAgb25CbHVyOiBcIti52YbYryDYp9mE2LfZhdizXCIsXG4gICAgb25UeXBpbmc6IFwi2LnZhtivINin2YTZg9iq2KfYqNipXCIsXG4gICAgdmlkZW86IFwi2YHZitiv2YrZiFwiLFxuICAgIGltYWdlOiBcIti12YjYsVwiLFxuICAgIHRydWU6IFwi2LXYrdmK2K1cIixcbiAgICBmYWxzZTogXCLYrti32KNcIixcbiAgICBpbmhlcml0OiBcItmK2Y7YsdirXCIsXG4gICAgc2hvdzogXCLYpdi42YfYp9ixXCIsXG4gICAgaGlkZTogXCLYpdiu2YHYp9ihXCIsXG4gICAgaW5pdGlhbDogXCLZhdio2K/YptmKXCIsXG4gICAgcmFuZG9tOiBcIti52LTZiNin2KbZilwiLFxuICAgIGNvbGxhcHNlZDogXCLZhdmC2YTYtVwiLFxuICAgIGV4cGFuZGVkOiBcItmF2YjYs9i5XCIsXG4gICAgbm9uZTogXCLYqNmE2KdcIixcbiAgICBhc2M6IFwi2KrYtdin2LnYr9mKXCIsXG4gICAgZGVzYzogXCLYqtmG2KfYstmE2YpcIixcbiAgICBpbmRldGVybWluYXRlOiBcIti62YrYsSDZhdit2K/Yr1wiLFxuICAgIGRlY2ltYWw6IFwi2LHZgtmFINi52LTYsdmKXCIsXG4gICAgY3VycmVuY3k6IFwi2KfZhNi52YXZhNipXCIsXG4gICAgcGVyY2VudDogXCLYp9mE2YbYs9io2Kkg2KfZhNmF2KbZiNmK2KlcIixcbiAgICBmaXJzdEV4cGFuZGVkOiBcItiq2YjYs9mK2Lkg2KPZiNmEINmE2YjYrVwiLFxuICAgIG9mZjogXCLYpdmK2YLYp9mBXCIsXG4gICAgb25QYW5lbDogXCLYudmE2Ykg2KfZhNmE2YjYrdipXCIsXG4gICAgb25TdXJ2ZXk6IFwi2LnZhNmJINin2YTYpdiz2KrYqNmK2KfZhlwiLFxuICAgIGxpc3Q6IFwi2YLYp9im2YXYqVwiLFxuICAgIHByb2dyZXNzVG9wOiBcItin2YTYqtmC2K/ZhSDYqNin2YTYo9i52YTZiVwiLFxuICAgIHByb2dyZXNzQm90dG9tOiBcItin2YTYqtmC2K/ZhSDYqNin2YTYo9iz2YFcIixcbiAgICBwcm9ncmVzc1RvcEJvdHRvbTogXCLYp9mE2KrZgtiv2YUg2KjYp9mE2KPYudmE2Ykg2YjYp9mE2KPYs9mB2YQg2YXYudin2YtcIixcbiAgICBob3Jpem9udGFsOiBcIti52LHYttmKXCIsXG4gICAgdmVydGljYWw6IFwi2LnZhdmI2K/ZilwiLFxuICAgIGRlZmF1bHQ6IFwi2KfZhNil2YHYqtix2KfYttmKXCIsXG4gICAgdG9wOiBcItin2YTYo9i52YTZiVwiLFxuICAgIGJvdHRvbTogXCLYp9mE2KPYs9mB2YRcIixcbiAgICB0b3BCb3R0b206IFwi2KfZhNij2LnZhNmJINmI2KfZhNij2LPZgdmEXCIsXG4gICAgYm90aDogXCLYp9mE2YPZhFwiLFxuICAgIGxlZnQ6IFwi2YrYs9in2LFcIixcbiAgICByaWdodDogXCLZitmF2YrZhlwiLFxuICAgIGNvbG9yOiBcItmE2YjZhlwiLFxuICAgIGRhdGU6IFwi2KrYp9ix2YrYrlwiLFxuICAgIGRhdGV0aW1lOiBcItiq2KfYsdmK2K4g2YjZiNmC2KpcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwi2KrYp9ix2YrYriDZiNmI2YLYqiDZhdit2YTZilwiLFxuICAgIGVtYWlsOiBcItio2LHZitivINil2YTZg9iq2LHZiNmG2YpcIixcbiAgICBtb250aDogXCLYtNmH2LFcIixcbiAgICBudW1iZXI6IFwi2KPYsdmC2KfZhVwiLFxuICAgIHBhc3N3b3JkOiBcItmD2YTZhdipINiz2LFcIixcbiAgICByYW5nZTogXCLZhti32KfZglwiLFxuICAgIHRlbDogXCLYsdmC2YUg2YfYp9iq2YFcIixcbiAgICB0ZXh0OiBcItmG2LVcIixcbiAgICB0aW1lOiBcItmI2YLYqlwiLFxuICAgIHVybDogXCLYsdin2KjYtyDYpdmE2YPYqtix2YjZhtmKIFVSTFwiLFxuICAgIHdlZWs6IFwi2KXYs9io2YjYuVwiLFxuICAgIGhpZGRlbjogXCLZhdiu2YHZilwiLFxuICAgIG9uOiBcItiq2LTYutmK2YRcIixcbiAgICBvblBhZ2U6IFwi2LnZhNmJINin2YTYtdmB2K3YqVwiLFxuICAgIGVkaXQ6IFwi2KfZhNiq2LnYr9mK2YRcIixcbiAgICBkaXNwbGF5OiBcItin2YTYudix2LZcIixcbiAgICBvbkNvbXBsZXRlOiBcIti52YbYryDYp9mE2KXZhtiq2YfYp9ihXCIsXG4gICAgb25IaWRkZW46IFwi2LnZhtivINin2YTYpdiu2YHYp9mEXCIsXG4gICAgb25IaWRkZW5Db250YWluZXI6IFwi2LnZhtivINil2K7Zgdin2KEg2KfZhNit2KfZiNmK2KlcIixcbiAgICBhbGw6IFwi2KfZhNmD2YRcIixcbiAgICBwYWdlOiBcItin2YTYtdmB2K3YqVwiLFxuICAgIHN1cnZleTogXCLYp9mE2KXYs9iq2KjZitin2YZcIixcbiAgICBvbk5leHRQYWdlOiBcIti52YbYryDYp9mE2KXZhtiq2YLYp9mEINmE2YTYtdmB2K3YqSDYp9mE2KrYp9mE2YrYqVwiLFxuICAgIG9uVmFsdWVDaGFuZ2luZzogXCLYudmG2K8g2KrYutmK2YrYsSDYp9mE2YLZitmF2KlcIixcbiAgICBvblZhbHVlQ2hhbmdlZDogXCLYpdiw2Kcg2KrYutmK2LHYqiDYp9mE2YLZitmF2KlcIixcbiAgICBzaW5nbGVQYWdlOiBcIti12YHYrdipINmI2KfYrdiv2KlcIixcbiAgICBzdGFuZGFyZDogXCLYo9iz2KfYs9mKXCIsXG4gICAgcXVlc3Rpb25QZXJQYWdlOiBcItiz2KTYp9mEINmE2YPZhCDYtdmB2K3YqVwiLFxuICAgIG5vUHJldmlldzogXCLYqNmE2Kcg2LnYsdi2XCIsXG4gICAgc2hvd0FsbFF1ZXN0aW9uczogXCLYp9mE2YXYudin2YrZhtipINmF2Lkg2KzZhdmK2Lkg2KfZhNij2LPYptmE2KlcIixcbiAgICBzaG93QW5zd2VyZWRRdWVzdGlvbnM6IFwi2KfZhNmF2LnYp9mK2YbYqSDZhdi5INin2YTYo9iz2KbZhNipINin2YTZhdis2YzYp9io2KlcIixcbiAgICBwYWdlczogXCLYp9mE2LXZgdit2KfYqlwiLFxuICAgIHF1ZXN0aW9uczogXCLYp9mE2KPYs9im2YTYqVwiLFxuICAgIHJlcXVpcmVkUXVlc3Rpb25zOiBcItin2YTYo9iz2KbZhNipINin2YTZhdi32YTZiNio2KlcIixcbiAgICBjb3JyZWN0UXVlc3Rpb25zOiBcItin2YTYpdis2KfYqNin2Kog2KfZhNi12K3Zitit2KlcIixcbiAgICBidXR0b25zOiBcItin2YTYo9iy2LHYp9ixXCIsXG4gICAgdW5kZXJJbnB1dDogXCLYo9iz2YHZhCDYrtin2YbYqSDYp9mE2KXYr9iu2KfZhFwiLFxuICAgIHVuZGVyVGl0bGU6IFwi2KPYudmE2Ykg2KfZhNi52YbZiNin2YZcIixcbiAgfSxcbiAgLy9PcGVyYXRvcnNcbiAgb3A6IHtcbiAgICBlbXB0eTogXCLZgdin2LHYutipXCIsXG4gICAgbm90ZW1wdHk6IFwi2YTZitiz2Kog2YHYp9ix2LrYqVwiLFxuICAgIGVxdWFsOiBcItiq2LPYp9mI2YpcIixcbiAgICBub3RlcXVhbDogXCLZhNinINiq2LPYp9mI2YpcIixcbiAgICBjb250YWluczogXCLYqtit2KrZiNmKXCIsXG4gICAgbm90Y29udGFpbnM6IFwi2YTYpyDYqtit2KrZiNmKXCIsXG4gICAgYW55b2Y6IFwi2KPZiiDZhdmGXCIsXG4gICAgYWxsb2Y6IFwi2YPZhNin2Ysg2YXZhlwiLFxuICAgIGdyZWF0ZXI6IFwi2KPZg9io2LFcIixcbiAgICBsZXNzOiBcItij2YLZhFwiLFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBcItij2YPYqNixINij2Ygg2YrYs9in2YjZilwiLFxuICAgIGxlc3NvcmVxdWFsOiBcItij2YLZhCDYo9mIINmK2LPYp9mI2YpcIixcbiAgICBhbmQ6IFwi2YhcIixcbiAgICBvcjogXCLYo9mIXCIsXG4gIH0sXG4gIC8vRW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCJVc2UgQW5ndWxhciB2ZXJzaW9uXCIsXG4gICAganF1ZXJ5OiBcIlVzZSBqUXVlcnkgdmVyc2lvblwiLFxuICAgIGtub2Nrb3V0OiBcIlVzZSBLbm9ja291dCB2ZXJzaW9uXCIsXG4gICAgcmVhY3Q6IFwiVXNlIFJlYWN0IHZlcnNpb25cIixcbiAgICB2dWU6IFwiVXNlIFZ1ZSB2ZXJzaW9uXCIsXG4gICAgYm9vdHN0cmFwOiBcIkZvciBib290c3RyYXAgZnJhbWV3b3JrXCIsXG4gICAgbW9kZXJuOiBcIk1vZGVybiB0aGVtZVwiLFxuICAgIGRlZmF1bHQ6IFwiRGVmYXVsdCB0aGVtZVwiLFxuICAgIG9yYW5nZTogXCJPcmFuZ2UgdGhlbWVcIixcbiAgICBkYXJrYmx1ZTogXCJEYXJrYmx1ZSB0aGVtZVwiLFxuICAgIGRhcmtyb3NlOiBcIkRhcmtyb3NlIHRoZW1lXCIsXG4gICAgc3RvbmU6IFwiU3RvbmUgdGhlbWVcIixcbiAgICB3aW50ZXI6IFwiV2ludGVyIHRoZW1lXCIsXG4gICAgd2ludGVyc3RvbmU6IFwiV2ludGVyLVN0b25lIHRoZW1lXCIsXG4gICAgc2hvd09uUGFnZTogXCJTaG93IHN1cnZleSBvbiBhIHBhZ2VcIixcbiAgICBzaG93SW5XaW5kb3c6IFwiU2hvdyBzdXJ2ZXkgaW4gYSB3aW5kb3dcIixcbiAgICBsb2FkRnJvbVNlcnZlcjogXCJMb2FkIFN1cnZleSBKU09OIGZyb20gc2VydmVyXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU2NyaXB0cyBhbmQgc3R5bGVzXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiLFxuICB9LFxuICAvL1Rlc3QgU3VydmV5XG4gIHRzOiB7XG4gICAgc2VsZWN0UGFnZTogXCLYp9iu2KrYsSDZh9iw2Kkg2KfZhNi12YHYrdipINmE2KfYrtiq2KjYp9ix2YfYp1wiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCLYpdi42YfYp9ixINin2YTYudmG2KfYtdixINin2YTYutmK2LEg2YXYsdim2YrYqVwiXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCLYudiv2K8g2KfZhNin2KzYp9io2KfYqlwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcItio2LHZitivINil2YTZg9iq2LHZiNmG2YpcIixcbiAgICBleHByZXNzaW9udmFsaWRhdG9yOiBcIti52YXZhNmK2Kkg2K3Ys9in2KjZitipXCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCLYsdmC2YXZitipXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwi2KrYudio2YrYsSDYsdmK2KfYttmKXCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCLYp9mE2YbYtVwiLFxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCLYpdmG2YfYp9ihINin2YTYpdiz2KrYqNmK2KfZhlwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCLYqtit2K/ZitivINmC2YrZhdipXCIsXG4gICAgY29weXZhbHVldHJpZ2dlcjogXCLZhtiz2K4g2YLZitmF2KlcIixcbiAgICBza2lwdHJpZ2dlcjogXCLYp9mE2KXZhtiq2YLYp9mEINil2YTZiSDYs9ik2KfZhFwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcItiq2LTYutmK2YQg2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqVwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcItiq2LrZitmK2LEg2KfZhNix2KTZitipICjZhdmH2YXZhClcIixcbiAgfSxcbiAgcGVoZWxwOiB7XG4gICAgLy9leHByZXNzaW9uOlxuICB9LFxuICAvL1Byb3BlcnRpZXNcbiAgcDoge1xuICAgIG5hbWU6IFwibmFtZVwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcInRpdGxlXCIsXG4gICAgICB0aXRsZTogXCJMZWF2ZSBpdCBlbXB0eSwgaWYgaXQgaXMgdGhlIHNhbWUgYXMgJ05hbWUnXCIsXG4gICAgfSxcbiAgICBuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHk6IFwi2LHYpNmK2Kkg2KPYstix2KfYsSDYp9mE2KrZhtmC2YRcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCLYqtix2KrZitioINin2YTYo9iz2KbZhNipXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcItin2YTYrdivINin2YTYo9mC2LXZiSDZhNmE2YjZgtiqINmE2YTYpdmG2YfYp9ihXCIsXG4gICAgdmlzaWJsZTogXCLZhdix2KbZilwiLFxuICAgIHZpc2libGVJZjogXCLZhdix2KbZiiDYudmG2K/ZhdinXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcItmF2YjZgti5INi52YbZiNin2YYg2KfZhNiz2KTYp9mEXCIsXG4gICAgZGVzY3JpcHRpb246IFwi2KfZhNmI2LXZgVwiLFxuICAgIHN0YXRlOiBcItin2YTYrdin2YTYqVwiLFxuICAgIGlzUmVxdWlyZWQ6IFwi2YXYt9mE2YjYqNifXCIsXG4gICAgcmVxdWlyZWRJZjogXCLZhdi32YTZiNioINi52YbYr9mF2KdcIixcbiAgICBpbmRlbnQ6IFwi2KfZhNmF2LPYp9mB2Kkg2KfZhNio2KfYr9im2KlcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCLZhti1INin2YTYrti32KMg2LnZhtivINin2YTYpdmB2KfYr9ipXCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCLYp9mE2KjYr9ihINio2LPYt9ixINis2K/ZitivXCIsXG4gICAgaW5uZXJJbmRlbnQ6IFwi2KfZhNmF2LPYp9mB2Kkg2KfZhNio2KfYr9im2Kkg2KfZhNiv2KfYrtmE2YrYqVwiLFxuICAgIHBhZ2U6IFwi2KfZhNi12YHYrdipXCIsXG4gICAgd2lkdGg6IFwi2KfZhNi52LHYtlwiLFxuICAgIGNvbW1lbnRUZXh0OiBcItmG2LUg2KfZhNiq2LnZhNmK2YJcIixcbiAgICB2YWx1ZU5hbWU6IFwi2KfYs9mFINin2YTZgtmK2YXYqVwiLFxuICAgIGVuYWJsZUlmOiBcItmB2LnYp9mEINi52YbYr9mF2KdcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwi2KfZhNmC2YrZhdipINin2YTYpdmB2KrYsdin2LbZitipXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCLYp9mE2KXYrNin2KjYqSDYp9mE2LXYrdmK2K3YqVwiLFxuICAgIHJlYWRPbmx5OiBcItmE2YTZgtix2KfYptipINmB2YLYt1wiLFxuICAgIHZhbGlkYXRvcnM6IFwi2KfZhNmF2K/ZgtmC2KfYqlwiLFxuICAgIHRpdGxlTG9jYXRpb246IFwi2YXZiNmC2Lkg2LnZhtmI2KfZhiDYp9mE2LPYpNin2YRcIixcbiAgICBzaG93Q29tbWVudEFyZWE6IFwi2YfZhCDZh9mG2KfZgyDYqti52YTZitmC2J9cIixcbiAgICBzaG93T3RoZXJJdGVtOiBcItmE2K/ZitipINii2K7YsVwiLFxuICAgIGNob2ljZXM6IFwi2KfZhNil2K7YqtmK2KfYsdin2KpcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwi2KrYsdiq2YrYqCDYp9mE2K7Zitin2LHYp9iqXCIsXG4gICAgY2hvaWNlc0J5VXJsOiBcItiu2YrYp9ixINi52YYg2LfYsdmK2YIg2LHYp9io2Lcg2KXZhNmD2KrYsdmI2YbZiiBVUkxcIixcbiAgICBvdGhlclRleHQ6IFwi2YbYtSDYp9mE2KLYrtix2YpcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCLZhti1INin2YTYrti32KMg2LnZhtivINin2YTYotiu2LHZilwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcItit2YHYuCDYp9mE2KLYrtix2Yog2YPYqti52YTZitmCXCIsXG4gICAgbGFiZWw6IFwi2KfZhNmF2LPZhdmJXCIsXG4gICAgc2hvd1RpdGxlOiBcItil2LjZh9in2LEg2KfZhNi52YbZiNin2YZcIixcbiAgICB2YWx1ZVRydWU6IFwi2YLZitmF2Kkg2LXYrdmK2K1cIixcbiAgICB2YWx1ZUZhbHNlOiBcItmC2YrZhdipINiu2LfYo1wiLFxuICAgIGNvbHM6IFwi2KfZhNij2LnZhdiv2KlcIixcbiAgICByb3dzOiBcItin2YTYtdmB2YjZgVwiLFxuICAgIHBsYWNlSG9sZGVyOiBcInBsYWNlSG9sZGVyXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwi2KXYrtiq2YrYp9ix2KfYqiDYp9mE2KXYrtiq2LXYp9ixXCIsXG4gICAgZXhwcmVzc2lvbjogXCLYudmF2YTZitipINit2LPYp9io2YrYqVwiLFxuICAgIGZvcm1hdDogXCLYp9mE2LXZiti62KlcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwi2KPYs9mE2YjYqCDYp9mE2LnYsdi2XCIsXG4gICAgY3VycmVuY3k6IFwi2KfZhNi52YXZhNipXCIsXG4gICAgdXNlR3JvdXBpbmc6IFwi2KXYs9iq2K7Yr9in2YUg2KfZhNiq2KzZhdmK2LlcIixcbiAgICBzaG93UHJldmlldzogXCLYpdi42YfYp9ixINin2YTZhdi52KfZitmG2KlcIixcbiAgICBhbGxvd011bHRpcGxlOiBcItin2YTYs9mF2KfYrSDYqNin2YTZhdiq2LnYr9ivXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwi2KfYsdiq2YHYp9i5INin2YTYtdmI2LHYqVwiLFxuICAgIGltYWdlV2lkdGg6IFwi2LnYsdi2INin2YTYtdmI2LHYqVwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCLYrdmB2Lgg2KfZhNio2YrYp9mG2KfYqiDZg9mG2LVcIixcbiAgICBtYXhTaXplOiBcItin2YTYrdivINin2YTYo9mC2LXZiSDZhNit2KzZhSDYp9mE2YXZhNmBXCIsXG4gICAgaHRtbDogXCLYtdmB2K3YqSDZiNmK2KggSFRNTFwiLFxuICAgIGNvbHVtbnM6IFwi2KfZhNij2LnZhdiv2KlcIixcbiAgICBjZWxsczogXCLYp9mE2K7ZhNmK2KfYqlwiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwi2YfZhCDZitiq2YjZgdixINi52YTZiSDYrNmF2YrYuSDYp9mE2LXZgdmI2YEg2LnZhNmJINin2YTYpdis2KfYqNip2J9cIixcbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcItiq2YXYsdmK2LEg2KPZjNmB2YLZiiDYqNin2YTZhdik2LTYsVwiLFxuICAgIGNlbGxUeXBlOiBcItmG2YjYuSDYp9mE2K7ZhNmK2KlcIixcbiAgICBjb2x1bW5zTGF5b3V0OiBcItiq2K7Yt9mK2Lcg2KfZhNij2LnZhdiv2KlcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCLYudiv2K8g2KrZgtiz2YrZhSDYp9mE2LnZhdmI2K9cIixcbiAgICBjb2x1bW5NaW5XaWR0aDogXCLYo9mC2YQg2LnYsdi2INmE2YTYudmF2YjYr1wiLFxuICAgIHJvd0NvdW50OiBcIti52K/YryDYp9mE2LXZgdmI2YFcIixcbiAgICBtaW5Sb3dDb3VudDogXCLYo9mC2YQg2LnYr9ivINmE2YTYtdmB2YjZgVwiLFxuICAgIG1heFJvd0NvdW50OiBcItij2YPYqNixINi52K/YryDZhNmE2LXZgdmI2YFcIixcbiAgICBrZXlOYW1lOiBcItil2LPZhSDYp9mE2YXZgdiq2KfYrVwiLFxuICAgIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwi2K7Yt9ijINiq2YPYsdin2LEg2KfZhNmF2YHYqtin2K1cIixcbiAgICBjb25maXJtRGVsZXRlOiBcItix2LPYp9mE2Kkg2KrYo9mD2YrYryDYp9mE2K3YsNmBXCIsXG4gICAgY29uZmlybURlbGV0ZVRleHQ6IFwi2YbYtSDYsdiz2KfZhNipINiq2KPZg9mK2K8g2KfZhNit2LDZgVwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcItij2LbZgSDYtdmBINis2K/ZitivXCIsXG4gICAgYWRkUm93VGV4dDogXCLZhti1INil2LbYp9mB2Kkg2LXZgSDYrNiv2YrYr1wiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwi2YbYtSDYpdiy2KfZhNipINi12YEg2KzYr9mK2K9cIixcbiAgICBpdGVtczogXCLYp9mE2LnZhtin2LXYsVwiLFxuICAgIGl0ZW1TaXplOiBcItit2KzZhSDYp9mE2LnZhti12LFcIixcbiAgICBjb2xDb3VudDogXCLYudiv2K8g2KfZhNij2LnZhdiv2KlcIixcbiAgICB0ZW1wbGF0ZVRpdGxlOiBcIti52YbZiNin2YYg2KfZhNmC2KfZhNioXCIsXG4gICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogXCLZiNi12YEg2KfZhNmC2KfZhNioXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCLYp9mE2LPZhdin2K0g2KjYpdi22KfZgdipINmE2YjYrdipXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLYp9mE2LPZhdin2K0g2KjYrdiw2YEg2YTZiNit2KlcIixcbiAgICBwYW5lbENvdW50OiBcIti52K/YryDYp9mE2YTZiNit2KfYqlwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwi2KPZgtmEINi52K/YryDZhNmE2YjYrdin2KpcIixcbiAgICBtYXhQYW5lbENvdW50OiBcItij2LnZhNmJINi52K/YryDZhNmE2YjYrdin2KpcIixcbiAgICBwYW5lbHNTdGF0ZTogXCLYrdin2YTYqSDYp9mE2YjYrdipXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcItmG2LUg2KXYttin2YHYqSDZhNmI2K3YqVwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCLZhti1INit2LDZgSDZhNmI2K3YqVwiLFxuICAgIHBhbmVsUHJldlRleHQ6IFwi2YbYtSDYp9mE2YTZiNit2Kkg2KfZhNiz2KfYqNmC2KlcIixcbiAgICBwYW5lbE5leHRUZXh0OiBcItmG2LUg2KfZhNmE2YjYrdipINin2YTYqtin2YTZitipXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCLYpdi42YfYp9ixINij2LHZgtin2YUg2KfZhNij2LPYptmE2KlcIixcbiAgICBzaG93UmFuZ2VJblByb2dyZXNzOiBcIti52LHYtiDZhti32KfZgiDYp9mE2YLZitivINin2YTYqtmC2K/ZhVwiLFxuICAgIHJlbmRlck1vZGU6IFwi2YbZhdi3INin2YTYudix2LZcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwi2YXZiNmC2Lkg2LnZhtmI2KfZhiDYp9mE2YLYp9mE2KhcIixcbiAgICByYXRlVmFsdWVzOiBcItmC2YrZitmFINin2YTYqtmC2YrZitmFXCIsXG4gICAgcmF0ZU1pbjogXCLYo9iv2YbZiSDZgtmK2YXYqVwiLFxuICAgIHJhdGVNYXg6IFwi2KPYudmE2Ykg2YLZitmF2KlcIixcbiAgICByYXRlU3RlcDogXCLYrti32YjYqSDYp9mE2KrZgtmK2YrZhVwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCLYp9mE2YjYtdmBINin2YTYo9iv2YbZiSDZhNmE2KrZgtmK2YrZhVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCLYp9mE2YjYtdmBINin2YTYo9mC2LXZiSDZhNmE2KrZgtmK2YrZhVwiLFxuICAgIGlucHV0VHlwZTogXCLZhtmI2Lkg2KfZhNil2K/Yrtin2YRcIixcbiAgICBzaXplOiBcItin2YTYrdis2YVcIixcbiAgICBsb2NhbGU6IFwi2KfZhNmE2LrYqVwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCLYp9mE2KrYsdmD2YrYsiDYudmE2Ykg2KfZhNiz2KTYp9mEINin2YTYo9mI2YQg2KrZhNmC2KfYptmK2KfZi1wiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwi2KfZhNil2YbYqtmH2KfYoSDZgtio2YQgSFRNTFwiLFxuICAgIGxvYWRpbmdIdG1sOiBcItiq2K3ZhdmK2YQgSFRNTFwiLFxuICAgIHRyaWdnZXJzOiBcItin2YTZhdit2YHYstin2KpcIixcbiAgICBjb29raWVOYW1lOiBcItin2LPZhSDZhdmE2YHYp9iqINin2YTYp9ix2KrYqNin2LdcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCLYpdix2LPYp9mEINin2YTZhtiq2KfYptisINi52YbYryDYp9mE2LDZh9in2Kgg2KXZhNmJINin2YTYtdmB2K3YqSDYp9mE2KrYp9mE2YrYqVwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCLYpdi42YfYp9ixINij2LLYsdin2LEg2KfZhNiq2YbZgtmEXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwi2KXYuNmH2KfYsSDYstixINin2YTYsdis2YjYuVwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcItil2LjZh9in2LEg2LnZhtin2YjZitmGINin2YTYtdmB2K3YqVwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcItil2LjZh9in2LEg2KfZhNi12YHYrdipINin2YTZhdmD2KrZhdmE2KlcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwi2KXYuNmH2KfYsSDYo9ix2YLYp9mFINin2YTYtdmB2K3YqVwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCLZhdmI2YLYuSDYrti32KMg2KfZhNij2LPYptmE2KlcIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwi2KXYuNmH2KfYsSDYtNix2YrYtyDYp9mE2KrZgtiv2YVcIixcbiAgICBtb2RlOiBcItmI2LbYuVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwi2KfZhNiw2YfYp9ioINil2YTZiSDYp9mE2LXZgdit2Kkg2KfZhNiq2KfZhNmK2Kkg2KrZhNmC2KfYptmK2KfZi1wiLFxuICAgIGNoZWNrRXJyb3JzTW9kZTogXCLZhtmF2Lcg2KfZhNiq2K3ZgtmCINmF2YYg2KfZhNij2K7Yt9in2KFcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCLYpdiy2KfZhNipINin2YTZgtmK2YUg2KfZhNiu2KfYtdipINio2KfZhNi62YrYsSDZhdix2KbZitipXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcItmG2LUg2KfZhNio2K/YoVwiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCLZhti1INin2YTYtdmB2K3YqSDYp9mE2LPYp9io2YLYqVwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCLZhti1INin2YTYtdmB2K3YqSDYp9mE2KrYp9mE2YrYqVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLZhti1INin2YTYp9mD2YXYp9mEXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcItmG2LUg2KfZhNit2YLZhCDYp9mE2YXYt9mE2YjYqFwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCLZhdik2LTYsSDYp9mE2KPYs9im2YTYqVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCLZhtmF2Lcg2LnZhtmI2KfZhiDYp9mE2KPYs9im2YTYqVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCLYp9io2K/YoyDYp9mE2LXZgdit2Kkg2KfZhNij2YjZhNmJXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcItmH2YQg2YrYqtmI2YHYsSDYudmE2Ykg2LXZgdit2Kkg2YjYp9it2K/YqdifXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCLYp9mE2K3YryDYp9mE2KPZgti12Ykg2YTZhNmI2YLYqiDZhNmE2KfZhtiq2YfYp9ihINmE2YTYtdmB2K3YqVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcItil2LjZh9in2LEg2YTZiNit2Kkg2KfZhNmI2YLYqlwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCLZiNi22Lkg2YTZiNit2Kkg2KfZhNmI2YLYqlwiLFxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcItin2YTZgtmK2YXYqSDYp9mE2KXZgdiq2LHYp9i22YrYqSDZhNmE2YjYrdipXCIsXG4gICAgZGVmYXVsdFJvd1ZhbHVlOiBcItmC2YrZhdipINin2YTYtdmBINin2YTYpdmB2KrYsdin2LbZitipXCIsXG4gICAgc2hvd05vbmVJdGVtOiBcItmE2K/ZitipINmE2Kcg2LTZitihXCIsXG4gICAgbm9uZVRleHQ6IFwi2YbYtSDZhNinINi02YrYoVwiLFxuICAgIHRleHQ6IFwi2YbYtVwiLFxuICAgIG11bHRpU2VsZWN0OiBcItmF2KrYudiv2K8g2KfZhNil2K7YqtmK2KfYsVwiLFxuICAgIHNob3dMYWJlbDogXCLYudix2LYg2KfZhNmF2YTYtdmCXCIsXG4gICAgbG9nbzogXCLYp9mE2LTYudin2LFcIixcbiAgICBsb2dvV2lkdGg6IFwi2LnZjNix2LYg2KfZhNi02LnYp9ixXCIsXG4gICAgbG9nb0hlaWdodDogXCLYt9mI2YQg2KfZhNi02LnYp9ixXCIsXG4gICAgbG9nb0ZpdDogXCLYqtmG2KfYs9ioINin2YTYtNi52KfYsVwiLFxuICAgIGZvY3VzT25GaXJzdEVycm9yOiBcItiq2LHZg9mK2LIg2KfZhNmF2KTYtNixINi52YTZiSDYo9mI2YQg2K7Yt9ijXCIsXG4gICAgcGFnZXM6IFwi2KfZhNi12YHYrdin2KpcIixcbiAgICBjYWxjdWxhdGVkVmFsdWVzOiBcItin2YTZgtmK2YUg2KfZhNmF2K3Ys9mI2KjYqVwiLFxuICAgIGluY2x1ZGVJbnRvUmVzdWx0OiBcItin2YTYpdi22KfZgdipINil2YTZiSDYp9mE2YbYqtin2KbYrFwiLFxuICAgIG5hdmlnYXRlVG9Vcmw6IFwi2KfZhNil2YbYqtmC2KfZhCDYpdmE2Ykg2LHYp9io2LcgVVJMXCIsXG4gICAgY29tcGxldGVkSHRtbDogXCLYtdmB2K3YqSDYp9mE2YjZitioINin2YTZhdmD2KrZhdmE2KlcIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwi2LXZgdit2Kkg2YjZitioINmF2YPYqtmF2YTYqSDYqNi02LHYt1wiLFxuICAgIG5hdmlnYXRlVG9VcmxPbkNvbmRpdGlvbjogXCLYp9mE2KXZhtiq2YLYp9mEINil2YTZiSDYsdin2KjYtyDYpdmE2YPYqtix2YjZhtmKINio2LTYsdi3XCIsXG4gICAgcXVlc3Rpb25EZXNjcmlwdGlvbkxvY2F0aW9uOiBcItmF2YjZgti5INmI2LXZgSDYp9mE2LPYpNin2YRcIixcbiAgICBwcm9ncmVzc0JhclR5cGU6IFwi2YbZiNi5INi02LHZiti3INin2YTYqtmC2K/ZhVwiLFxuICAgIG1heFRleHRMZW5ndGg6IFwi2KPZgti12Ykg2LfZjNmI2YQg2YTZhNmG2LVcIixcbiAgICBtYXhPdGhlcnNMZW5ndGg6IFwi2KPZgti12Ykg2LfZiNmEINmE2K7Zitin2LEgJ9ij2K7YsdmJJ1wiLFxuICAgIHRleHRVcGRhdGVNb2RlOiBcItmG2YXYtyDYqtit2K/ZitirINin2YTZhti1XCIsXG4gICAgYXV0b0dyb3dDb21tZW50OiBcItmG2YXZiCDYqtmE2YLYp9im2Yog2YTZhNiz2KTYp9mEINmF2YYg2YbZiNi5INiq2LnZhNmK2YJcIixcbiAgICBxdWVzdGlvblRpdGxlUGF0dGVybjogXCLYqtmG2LPZitmCINi52YbZiNin2YYg2KfZhNiz2KTYp9mEXCIsXG4gICAgcXVlc3Rpb25zT25QYWdlTW9kZTogXCLYp9mE2KPYs9im2YTYqSDZgdmKINin2YTYtdmB2K3Yp9iqXCIsXG4gICAgc2hvd1ByZXZpZXdCZWZvcmVDb21wbGV0ZTogXCLYp9mE2YXYudin2YrZhtipINmC2KjZhCDYp9mE2KXZhtiq2YfYp9ihINmF2YYg2KfZhNil2LPYqtio2YrYp9mGXCIsXG4gICAgd2lkdGhNb2RlOiBcItmG2YXYtyDYudmM2LHYtiDYp9mE2LTYp9i02KlcIixcbiAgICBzaG93TnVtYmVyOiBcIti52LHYtiDYp9mE2LHZgtmFXCIsXG4gICAgbmF2aWdhdGlvblRpdGxlOiBcIti52YbZiNin2YYg2KfZhNiq2YbZgtmEXCIsXG4gICAgbmF2aWdhdGlvbkRlc2NyaXB0aW9uOiBcItin2YTZiNi12YEg2YTZhNiq2YbZgtmEXCIsXG4gICAgdXNlRGlzcGxheVZhbHVlc0luRHluYW1pY1RleHRzOiBcItil2LPYqtiu2K/ZhSDYudix2LYg2KfZhNmC2YrZhSDZgdmKINin2YTYudmG2YjYp9mGXCIsXG4gICAgc2V0RGVmYXVsdFZhbHVlOiBcItiq2KvYqNmK2Kog2YLZitmF2Kkg2KXZgdiq2LHYp9i22YrYqVwiLFxuICAgIHNldENvcnJlY3RWYWx1ZTogXCLYqtir2KjZitiqINil2KzYp9io2Kkg2LXYrdmK2K3YqVwiLFxuICAgIG1pbldpZHRoOiBcItij2YLZhCDYudix2LZcIixcbiAgICBtYXhXaWR0aDogXCLYo9i52YTZiSDYudix2LZcIixcbiAgICBkZXNjcmlwdGlvbkxvY2F0aW9uOiBcItmF2YjZgti5INmI2LXZgSDYp9mE2LPYpNin2YRcIixcbiAgICBoaWRlTnVtYmVyOiBcItil2K7Zgdin2KEg2LHZgtmFINin2YTYs9ik2KfZhFwiLFxuICAgIGRlZmF1bHRWYWx1ZUV4cHJlc3Npb246IFwi2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqSDYp9mE2KXZgdiq2LHYp9i22YrYqVwiLFxuICAgIGJpbmRpbmdzOiBcItin2YTYpdix2KrYqNin2LfYp9iqXCIsXG4gICAgdmFsdWU6IFwi2KfZhNmC2YrZhdipXCIsXG4gICAgY29sdW1uc1Zpc2libGVJZjogXCLYo9i42YfYsSDYp9mE2KPYudmF2K/YqSDYpdiw2KdcIixcbiAgICByb3dzVmlzaWJsZUlmOiBcItij2LjZh9ixINin2YTYtdmB2YjZgSDYpdiw2KdcIixcbiAgICBzaG93SGVhZGVyOiBcIti52LHYtiDYsdij2LMg2KfZhNmF2LXZgdmI2YHYqVwiLFxuICAgIGRldGFpbFBhbmVsTW9kZTogXCLZhtmF2Lcg2KrZgdin2LXZitmEINin2YTZhNmI2K3YqVwiLFxuICAgIHJvd1RpdGxlV2lkdGg6IFwi2LnYsdi2INi52YbZiNin2YYg2KfZhNi12YFcIixcbiAgICBhbGxvd0FkZFJvd3M6IFwi2KfZhNiz2YXYp9itINil2LbYp9mB2Kkg2LXZgdmI2YFcIixcbiAgICBhbGxvd1JlbW92ZVJvd3M6IFwi2KfZhNiz2YXYp9itINmE2KXYstin2YTYqSDYtdmB2YjZgVwiLFxuICAgIGRlZmF1bHRWYWx1ZUZyb21MYXN0Um93OiBcItin2YTZgtmK2YXYqSDYp9mE2KXZgdiq2LHYp9i22YrYqSDYqtmD2YjZhiDZhdmGINin2YTYtdmBINin2YTYo9iu2YrYsVwiLFxuICAgIGhpZGVDb2x1bW5zSWZFbXB0eTogXCLYpdiu2YHYp9ihINmB2Yog2K3Yp9mE2Kkg2YPYp9mGINin2YTYudmF2YjYryDZgdin2LHYulwiLFxuICAgIGVtcHR5Um93c1RleHQ6IFwi2YbYtSDYp9mE2LXZgdmI2YEg2YHYp9ix2LrYqVwiLFxuICAgIGRldGFpbFBhbmVsU2hvd09uQWRkaW5nOiBcItil2LjZh9in2LEg2YTZiNit2Kkg2KfZhNiq2YHYp9i12YrZhCDYudmG2K8g2KfZhNil2LbYp9mB2KlcIixcbiAgICBhbGxvd1Jvd3NEcmFnQW5kRHJvcDogXCLYp9mE2LPZhdin2K0g2YTZhNiz2K3YqCDZiNin2YTYpdiv2LHYp9isINmE2YTYtdmB2YjZgVwiLFxuICAgIHJvd3NPcmRlcjogXCLYqtix2KrZitioINin2YTYtdmB2YjZgVwiLFxuICAgIGhpZGVJZlJvd3NFbXB0eTogXCLYpdiu2YHYp9ihINil2LDYpyDZg9in2YYg2KfZhNi12YEg2YHYp9ix2LpcIixcbiAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IFwi2KfZhNit2K8g2KfZhNij2YLYtdmJINmE2YTZg9iz2YjYsVwiLFxuICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogXCLYp9mE2K3YryDYp9mE2KPYr9mG2Ykg2YTZhNmD2LPZiNixXCIsXG4gICAgY2hvaWNlc0Zyb21RdWVzdGlvbjogXCLYp9mE2KXYrtiq2YrYp9ix2KfYqiDZhdmGINin2YTYo9iz2KbZhNipXCIsXG4gICAgY2hvaWNlc0Zyb21RdWVzdGlvbk1vZGU6IFwi2KfYrtiq2LEg2YXZhiDYp9mE2LPYpNin2YRcIixcbiAgICBoaWRlSWZDaG9pY2VzRW1wdHk6IFwi2KXYrtmB2KfYoSDYudmG2K/ZhdinINiq2YPZiNmGINin2YTYrtmK2KfYsdin2Kog2YHYp9ix2LrYqVwiLFxuICAgIGNob2ljZXNWaXNpYmxlSWY6IFwi2KfZhNil2K7YqtmK2KfYsdin2Kog2YXYsdim2YrYqSDYudmG2K/ZhdinXCIsXG4gICAgY2hvaWNlc0VuYWJsZUlmOiBcItin2YTYpdiu2KrZitin2LHYp9iqINmF2YHYudmE2Kkg2LnZhtiv2YXYp1wiLFxuICAgIG90aGVyUGxhY2VIb2xkZXI6IFwi2K3Yp9mF2YQg2YbYtSDZhNiu2YrYp9ixINin2YTYo9iu2LHZiVwiLFxuICAgIG1heFNlbGVjdGVkQ2hvaWNlczogXCLYo9mC2LXZiSDYudiv2K8g2YTZhNil2K7YqtmK2KfYsVwiLFxuICAgIHNob3dDbGVhckJ1dHRvbjogXCLYpdi42YfYp9ixINiy2LEg2KfZhNil2LLYp9mE2KlcIixcbiAgICBjb250ZW50TW9kZTogXCLZhtmF2Lcg2LnYsdi2INin2YTZhdit2KrZiNmJXCIsXG4gICAgaW1hZ2VGaXQ6IFwi2KXYrdiq2YjYp9ihINin2YTYtdmI2LHYqVwiLFxuICAgIGF1dG9jb21wbGV0ZTogXCLYp9mE2KXZg9mF2KfZhCDYp9mE2KrZhNmC2KfYptmKXCIsXG4gICAgbWluOiBcItin2YTYrdivINin2YTYo9iv2YbZiVwiLFxuICAgIG1heDogXCLYp9mE2K3YryDYp9mE2KPZgti12YlcIixcbiAgICBtaW5WYWx1ZUV4cHJlc3Npb246IFwi2KfZhNit2K8g2KfZhNij2K/ZhtmJINmE2YTYudmF2YTZitipINit2LPYp9io2YrYqVwiLFxuICAgIG1heFZhbHVlRXhwcmVzc2lvbjogXCLYp9mE2K3YryDYp9mE2KPZgti12Ykg2YTZhNi52YXZhNmK2Kkg2K3Ys9in2KjZitipXCIsXG4gICAgbWluRXJyb3JUZXh0OiBcItin2YTYrdivINin2YTYo9iv2YbZiSDZhNmE2YLZitmF2KlcIixcbiAgICBtYXhFcnJvclRleHQ6IFwi2KfZhNit2K8g2KfZhNij2YLYtdmJINmE2YTZgtmK2YXYqVwiLFxuICAgIHN0ZXA6IFwi2K7Yt9mI2KlcIixcbiAgICBkYXRhTGlzdDogXCLZgtin2KbZhdipINin2YTYqNmK2KfZhtin2KpcIixcbiAgICBhdXRvR3JvdzogXCLYqtmF2K/YryDYqtmE2YLYp9im2YpcIixcbiAgICBtdWx0aUxpbmU6IFwi2YXYqti52K/YryDYp9mE2KPYs9i32LFcIixcbiAgICBhbGxvd0ltYWdlc1ByZXZpZXc6IFwi2KfZhNiz2YXYp9itINio2LnYsdi2INin2YTYtdmI2LFcIixcbiAgICBhY2NlcHRlZFR5cGVzOiBcItin2YTYo9mG2YjYp9i5INin2YTZhdiz2YXZiNitINio2YfYp1wiLFxuICAgIHdhaXRGb3JVcGxvYWQ6IFwi2KfZhNil2YbYqti42KfYsSDZhNmE2LHZgdi5XCIsXG4gICAgbmVlZENvbmZpcm1SZW1vdmVGaWxlOiBcItiz2KTYp9mEINiq2KPZg9mK2K8g2YTYrdiw2YEg2KfZhNmF2YTZgVwiLFxuICAgIGxhYmVsVHJ1ZTogXCLZhdmE2LXZgiDYtdit2YrYrVwiLFxuICAgIGxhYmVsRmFsc2U6IFwi2YXZhNi12YIg2K7Yt9ijXCIsXG4gICAgaGVpZ2h0OiBcItin2YTYp9ix2KrZgdin2LlcIixcbiAgICBhbGxvd0NsZWFyOiBcItin2YTYs9mF2KfYrSDYqNil2LLYp9mE2KlcIixcbiAgICBwZW5Db2xvcjogXCLZhNmI2YYg2KfZhNmC2YTZhVwiLFxuICAgIGJhY2tncm91bmRDb2xvcjogXCLZhNmI2YYg2KfZhNiu2YTZgdmK2KlcIixcbiAgICBkYXRhRm9ybWF0OiBcIti12YrYutipINin2YTYqNmK2KfZhtin2KpcIixcbiAgICBkZWZhdWx0VmFsdWVGcm9tTGFzdFBhbmVsOiBcItin2YTZgtmK2YXYqSDYp9mE2KXZgdiq2LHYp9i22YrYqSDZhdmGINij2K7YsSDZhNmI2K3YqVwiLFxuICAgIHBhbmVsUmVtb3ZlQnV0dG9uTG9jYXRpb246IFwi2YXZiNmC2Lkg2LLYsSDYrdiw2YEg2KfZhNmE2YjYrdipXCIsXG4gICAgc2hvd0NhcHRpb246IFwi2KXYuNmH2KfYsSDYp9mE2LTYsditXCIsXG4gICAgaWNvbk5hbWU6IFwi2KfYs9mFINin2YTYo9mK2YLZiNmG2KlcIixcbiAgICBpY29uU2l6ZTogXCLYrdis2YUg2KfZhNij2YrZgtmI2YbYqVwiXG4gIH0sXG59O1xuXG4vL1VuY29tbWVudCB0aGlzIGxpbmUgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlLiBZb3Ugc2hvdWxkIHJlcGxhY2UgXCJlblwiIGFuZCBlblN0cmluZ3Mgd2l0aCB5b3VyIGxvY2FsZSAoXCJmclwiLCBcImRlXCIgYW5kIHNvIG9uKSBhbmQgeW91ciB2YXJpYWJsZS5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wiYXJcIl0gPSBhcmFiaWNTdHJpbmdzOyIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IHZhciBoclN0cmluZ3MgPSB7XG4gIC8vc3VydmV5IHRlbXBsYXRlc1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcIlVyZcSRaXZhbmplXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCJHbGVkYWp0ZSBpIHNhem5hanRlIGtha28gc3R2b3JpdGkgYW5rZXRlXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDpcbiAgICAgIFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0gycnU5b2tJY29vTlpmcElieXE0cVE/dmlld19hcz1zdWJzY3JpYmVyXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIk1vbGltbyBpc3B1c3RpdGUgcGl0YW5qZSBvdmRqZSBpeiBUb29sYm94LlwiLFxuICAgIGFkZExvZ2ljSXRlbTogXCJJenJhZGl0ZSBwcmF2aWxvIHphIHByaWxhZ29kYnUgdGlqZWthIGFua2V0ZS5cIixcbiAgICBjb3B5OiBcIktvcGlyYXRpXCIsXG4gICAgZHVwbGljYXRlOiBcIkR1cGxpa2F0YVwiLFxuICAgIGFkZFRvVG9vbGJveDogXCJEb2RhaiB1IFRvb2xib3hcIixcbiAgICBkZWxldGVQYW5lbDogXCJCcmlzYW5qZSBwbG/EjWVcIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCJJemJyacWhaSBwaXRhbmplXCIsXG4gICAgY29udmVydFRvOiBcIlByZXR2b3JpdGUgdVwiLFxuICAgIGRyYWc6IFwiUG92dWNpdGUgZWxlbWVudFwiLFxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIlphZGFuaVwiLFxuICAgIGNoZWNrYm94OiBcIsSMZWtcIixcbiAgICBjb21tZW50OiBcIktvbWVudGFyXCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwiQmVyYcSNIHNsaWthXCIsXG4gICAgaW1hZ2U6IFwiU2xpa2VcIixcbiAgICBkcm9wZG93bjogXCJQYWRhanXEh2lcIixcbiAgICBmaWxlOiBcIkRhdG90ZWt1XCIsXG4gICAgaHRtbDogXCJIdG1sXCIsXG4gICAgbWF0cml4OiBcIk1hdHJpY2EgKGplZGFuIGl6Ym9yKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIk1hdHJpY2EgKHZpxaFlc3RydWtpIGl6Ym9yKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0cmljYSAoZGluYW1pxI1raSByZWRvdmkpXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcIlZpxaFlIHRla3N0YVwiLFxuICAgIHBhbmVsOiBcIlBsb8SNYVwiLFxuICAgIHBhbmVsZHluYW1pYzogXCJQbG/EjWEgKGRpbmFtacSNa2kgcGFuZWxpKVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwiUmFkaW9ncnVwYVwiLFxuICAgIHJhdGluZzogXCJPY2plbmFcIixcbiAgICB0ZXh0OiBcIkplZGFuIHVsYXpcIixcbiAgICBib29sZWFuOiBcIkJvb2xlb3ZhXCIsXG4gICAgZXhwcmVzc2lvbjogXCJJenJheiAoc2FtbyB6YSDEjWl0YW5qZSlcIixcbiAgICBzaWduYXR1cmVwYWQ6IFwiSmFzdHXEjWnEhyB6YSBwb3RwaXNcIixcbiAgICBmbG93cGFuZWw6IFwiUGxvxI1hIHByb3Rva2FcIixcbiAgfSxcbiAgLy9TdHJpbmdzIGluIEVkaXRvclxuICBlZDoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwiWmFkYW5pICh7MH0pXCIsXG4gICAgc3VydmV5OiBcIkFua2V0YVwiLFxuICAgIHNldHRpbmdzOiBcIlBvc3RhdmtlIGFua2V0ZVwiLFxuICAgIHNldHRpbmdzVG9vbHRpcDogXCJPdHZhcmFuamUgcG9zdGF2a2kgYW5rZXRlXCIsXG4gICAgLy9vcGplY3RQcm9wZXJ0aWVzSGVhZGVyOiBcIkFkdmFuY2VkXCIsXG4gICAgLy9zaG93T2JqZWN0UHJvcGVydGllczogXCJTaG93IE9iamVjdCBQcm9wZXJ0aWVzXCIsXG4gICAgLy9oaWRlT2JqZWN0UHJvcGVydGllczogXCJIaWRlIE9iamVjdCBQcm9wZXJ0aWVzXCIsXG4gICAgc2hvd1BhbmVsOiBcIlBva2HFvmkgcGxvxI11XCIsXG4gICAgaGlkZVBhbmVsOiBcIlNha3JpaiBwbG/EjXVcIixcbiAgICAvL2VkaXRTdXJ2ZXk6IFwiRWRpdCBTdXJ2ZXlcIixcbiAgICBhZGROZXdQYWdlOiBcIkRvZGF2YW5qZSBub3ZlIHN0cmFuaWNlXCIsXG4gICAgbW92ZVJpZ2h0OiBcIlBvbWljYW5qZSB1ZGVzbm9cIixcbiAgICBtb3ZlTGVmdDogXCJQb21pY2FuamUgdWxpamV2b1wiLFxuICAgIGRlbGV0ZVBhZ2U6IFwiQnJpc2FuamUgc3RyYW5pY2VcIixcbiAgICBlZGl0UGFnZTogXCJVcmXEkWl2YW5qZSBzdHJhbmljZVwiLFxuICAgIGVkaXQ6IFwiVXJlxJFpdmFuamVcIixcbiAgICBuZXdQYWdlTmFtZTogXCJzdHJhbmljYVwiLFxuICAgIG5ld1F1ZXN0aW9uTmFtZTogXCJwaXRhbmplXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBsb8SNYVwiLFxuICAgIG5ld1RleHRJdGVtTmFtZTogXCJ0ZWtzdFwiLFxuICAgIHRlc3RTdXJ2ZXk6IFwiSXNwaXRuYSBhbmtldGFcIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwiUG9ub3ZubyBwcm9ibmEgYW5rZXRhXCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIsWgaXJpbmEgYW5rZXRlOiBcIixcbiAgICBuYXZpZ2F0ZVRvTXNnOiBcIk1vcmFvIHNpIG5hdmlnaXJhdGkgZG86XCIsXG4gICAgbG9naWM6IFwiTG9naWthIGFua2V0ZVwiLFxuICAgIGVtYmVkU3VydmV5OiBcIlVncmHEkWVuYSBhbmtldGFcIixcbiAgICB0cmFuc2xhdGlvbjogXCJQcmlqZXZvZFwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwiU3ByZW1pIGFua2V0dVwiLFxuICAgIHNhdmVTdXJ2ZXlUb29sdGlwOiBcIlNwcmVtaSBhbmtldHVcIixcbiAgICBkZXNpZ25lcjogXCJEaXpham5lciBhbmtldGVcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04gdXJlZG5pa1wiLFxuICAgIHVuZG86IFwiUG9uacWhdGl0aVwiLFxuICAgIHJlZG86IFwiUG9ub3ZpdGlcIixcbiAgICB1bmRvVG9vbHRpcDogXCJQb25pxaF0aSBwb3NsamVkbmp1IHByb21qZW51XCIsXG4gICAgcmVkb1Rvb2x0aXA6IFwiUHJldXNtamV0aSBwcm9tamVudVwiLFxuICAgIGNvcHk6IFwiS29waXJhdGlcIixcbiAgICBjdXQ6IFwiSXpyZXphdGlcIixcbiAgICBwYXN0ZTogXCJaYWxpamVwaXRlXCIsXG4gICAgY29weVRvb2x0aXA6IFwiS29waXJhbmplIG9kYWJpcmEgdSBtZcSRdXNwcmVtbmlrXCIsXG4gICAgY3V0VG9vbHRpcDogXCJJenJlxb5pdGUgb2RhYmlyIG5hIG1lxJF1c3ByZW1uaWtcIixcbiAgICBwYXN0ZVRvb2x0aXA6IFwiUGFzdGEgaXogbWXEkXVzcHJlbW5pa2FcIixcbiAgICBvcHRpb25zOiBcIk1vZ3XEh25vc3RpXCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwiR2VuZXJpcmFuamUgdmFsamFub2cgSlNPTlwiLFxuICAgIGdlbmVyYXRlUmVhZGFibGVKU09OOiBcIkdlbmVyaXJhbmplIMSNaXRsaml2b2cgSlNPTlwiLFxuICAgIHRvb2xib3g6IFwiQWxhdG5pIG9rdmlyXCIsXG4gICAgXCJwcm9wZXJ0eS1ncmlkXCI6IFwiU3ZvanN0dmFcIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcIk9wxIdlbml0b1wiLFxuICAgIC8vZGVsU2VsT2JqZWN0OiBcIkRlbGV0ZSBzZWxlY3RlZCBvYmplY3RcIixcbiAgICAvL2VkaXRTZWxPYmplY3Q6IFwiRWRpdCBzZWxlY3RlZCBvYmplY3RcIixcbiAgICBjb3JyZWN0SlNPTjogXCJJc3ByYXZpdGUgSlNPTi5cIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcIlJlenVsdGF0IGFua2V0ZTogXCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIkthbyB0YWJsaWNhXCIsXG4gICAgc3VydmV5UmVzdWx0c0pzb246IFwiS2FvIEpTT05cIixcbiAgICByZXN1bHRzVGl0bGU6IFwiTmFzbG92IHBpdGFuamFcIixcbiAgICByZXN1bHRzTmFtZTogXCJOYXppdiBwaXRhbmphXCIsXG4gICAgcmVzdWx0c1ZhbHVlOiBcIlZyaWplZG5vc3Qgb2Rnb3ZvcmFcIixcbiAgICByZXN1bHRzRGlzcGxheVZhbHVlOiBcIlZyaWplZG5vc3QgcHJpa2F6YVwiLFxuICAgIG1vZGlmaWVkOiBcIkl6bWplbmFcIixcbiAgICBzYXZpbmc6IFwiU3ByZW1hbmplXCIsXG4gICAgc2F2ZWQ6IFwiU3ByZW1pdGlcIixcbiAgICBwcm9wZXJ0eUVkaXRvckVycm9yOiBcIlBvZ3JlxaFrYTpcIixcbiAgICBzYXZlRXJyb3I6IFwiUG9ncmXFoWthISBTYWRyxb5haiB1cmVkbmlrYSBuaWplIHNwcmVtbGplbi5cIixcbiAgICB0cmFuc2xhdGlvbkFkZExhbmd1YWdlOiBcIk9kYWJlcml0ZSBqZXppayB6YSBwcmV2b8SRZW5qZVwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwiUG9rYcW+aXRlIHN2ZSDFvmljZVwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcIlBva2HFvml0ZSBzdmUgc3RyYW5pY2VcIixcbiAgICB0cmFuc2xhdGlvbk5vU3RyaW5nczogXCJOZW1hIMW+aWNhIHphIHByZXZvxJFlbmplLiBQcm9taWplbml0ZSBmaWx0YXIuXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCJJenZveiB1IENTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJVdm96IGl6IENTVlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDpcbiAgICAgIFwiU3BhamFuamUgezB9IHNhIHphZGFuaW0gbG9rYWxvbXdpdGggZGVmYXVsdCBsb2NhbGUuXCIsXG4gICAgYm9sZDogXCJwb2RlYmxqYW5vXCIsXG4gICAgaXRhbGljOiBcImt1cnppdlwiLFxuICAgIHVuZGVybGluZTogXCJwb2RjcnRhdmFuamVcIixcbiAgICBmcEFkZFF1ZXN0aW9uOiBcIkRvZGFqIHBpdGFuamUuLi5cIixcbiAgICBzZWxlY3RQYWdlOiBcIk9kYWJlcml0ZSBzdHJhbmljdS4uLlwiLFxuICAgIGNob29zZUVsZW1lbnQ6IFwiT2RhYmVyaXRlIGVsZW1lbnQuLi5cIixcbiAgICAvL2NvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkl0ZW1UZXh0OiBcIlNob3cgaWY6XCIsXG4gICAgbGc6IHtcbiAgICAgIGFkZE5ld0l0ZW06IFwiXCIsIC8vQnkgZGVmYXVsdCB0aGUgdmFsdWUgaXMgdGFrZW4gZnJvbSBwZS5hZGROZXcgJ0FkZCBOZXcnLCB5b3UgY2FuIHNldCBpdCB0byAnQWRkIE5ldyBSdWxlJyBmb3IgZXhhbXBsZS5cbiAgICAgIC8vTG9naWMgdGFiIHN0cmluZ3NcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eU5hbWU6IFwiVmlkbGppdm9zdCBzdHJhbmljZVwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eU5hbWU6IFwiVmlkbGppdm9zdCBwYW5lbGFcIixcbiAgICAgIHBhbmVsX2VuYWJsZU5hbWU6IFwiT21vZ3XEh2kvb25lbW9ndcSHaSBwYW5lbFwiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eU5hbWU6IFwiVmlkbGppdm9zdCBwaXRhbmphXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVOYW1lOiBcIlBpdGFuamUgb21vZ3XEh3VqZS9vbmVzcG9zb2JsamF2YVwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZU5hbWU6IFwiUGl0YW5qZSBuaWplIG9iYXZlem5vXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlTmFtZTogXCJQb3RwdW5hIGFua2V0YVwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZU5hbWU6IFwiUG9zdGF2aXRlIHZyaWplZG5vc3QgcGl0YW5qYVwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVOYW1lOiBcIktvcGlyYW5qZSB2cmlqZWRub3N0aSBwaXRhbmphXCIsXG4gICAgICB0cmlnZ2VyX3NraXBOYW1lOiBcIlByaWplxJFpdGUgbmEgcGl0YW5qZVwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uTmFtZTogXCJQb2tyZXRhbmplIHByaWxhZ2/EkWVub2cgaXpyYXphXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25OYW1lOiBcIlByaWxhZ2/EkWVuaSAnVGhhbmsgeW91IHBhZ2UnIHRla3N0XCIsXG5cbiAgICAgIHBhZ2VfdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcIlXEjWluaXRlIHN0cmFuaWN1IHZpZGxqaXZvbSBrYWRhIHNlIGxvZ2nEjWthIGVrc3ByZXNpamEgdnJhdGkgaXN0aW5pdG9tLiBJbmHEjWUgbmVrYSBidWRlIG5ldmlkbGppdm8uXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiVcSNaW5pdGUgcGxvxI11IHZpZGxqaXZvbSBrYWRhIHNlIGxvZ2nEjWthIGVrc3ByZXNpamEgdnJhdGkgaXN0aW5pdG9tLiBJbmHEjWUgZ2EgZHLFvmF0aSBuZXZpZGxqaXZpbS5cIixcbiAgICAgIHBhbmVsX2VuYWJsZURlc2NyaXB0aW9uOlxuICAgICAgICBcIlXEjWluaXRlIHBsb8SNdSBpIHN2ZSBlbGVtZW50ZSB1bnV0YXIgbmplIG9tb2d1xIdpdGUga2FkYSBzZSBsb2dpxI1rYSBla3NwcmVzaWphIHZyYXRpIGlzdGluaXRhLiBJbmHEjWUgaWggZHLFvml0ZSBvbmVzcG9zb2JsamVuaW1hLlwiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcIlXEjWluaXRlIHBpdGFuamUgdmlkbGppdmltIGthZGEgc2UgbG9nacSNa2EgZWtzcHJlc2lqYSB2cmF0aSBpc3Rpbml0YS4gSW5hxI1lIGdhIGRyxb5hdGkgbmV2aWRsaml2aW0uXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJPbW9ndcSHaXRlIHBpdGFuamUga2FkYSBzZSBsb2dpxI1rYSBla3NwcmVzaWphIHZyYXRpIGlzdGluaXRhLiBJbmHEjWUgZ2EgZHLFvmF0aSBvbmVtb2d1xIdlbi5cIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJQaXRhbmplIHBvc3RhamUgcG90cmVibm8ga2FkYSBzZSBsb2dpxI1rYSBla3NwcmVzaWphIHZyYXRpIGlzdGluaXRhLlwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIkthZGEgc2UgbG9nacSNa2EgZWtzcHJlc2lqYSB2cmF0aSBpc3Rpbml0YSwgYW5rZXRhIHBvc3RhamUgZG92csWhZW5hIGkga3Jham5qaSBrb3Jpc25payB2aWRpICdUaGFuayB5b3UgcGFnZScuXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlRGVzY3JpcHRpb246XG4gICAgICAgIFwiS2FkYSBzZSB2cmlqZWRub3N0aSBwaXRhbmphLCBrb2plIHNlIGtvcmlzdGUgdSBsb2dpxI1rb20gaXpyYXp1LCBtaWplbmphanUgaSBsb2dpxI1rYSBla3NwcmVzaWphIHNlIHZyYcSHYSBpc3Rpbml0YSwgdGFkYSBzZSB2cmlqZWRub3N0IHBvc3RhdmxqYSBuYSBvZGFicmFubyBwaXRhbmplLlwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJLYWRhIHNlIHZyaWplZG5vc3RpIHBpdGFuamEsIGtvamUgc2Uga29yaXN0ZSB1IGxvZ2nEjWtvaiBla3NwcmVzaWppLCBtaWplbmphanUgaSBsb2dpxI1rYSBla3NwcmVzaWphIHNlIHZyYcSHYSBpc3Rpbml0YSwgdGFkYSBzZSB2cmlqZWRub3N0IGplZG5vZyBvZGFicmFub2cgcGl0YW5qYSBrb3BpcmEgbmEgZHJ1Z28gb2RhYnJhbm8gcGl0YW5qZS5cIixcbiAgICAgIHRyaWdnZXJfc2tpcERlc2NyaXB0aW9uOlxuICAgICAgICBcIkthZGEgc2UgbG9nacSNa2EgZWtzcHJlc2lqYSB2cmF0aSBpc3Rpbml0YSwgYW5rZXRhIHByZXNrYcSNZSBuYSAvIGZva3VzaXJhIG9kYWJyYW5vIHBpdGFuamUuXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25EZXNjcmlwdGlvbjpcbiAgICAgICAgXCJLYWRhIHNlIGxvZ2nEjWthIGVrc3ByZXNpamEgdnJhdGkgaXN0aW5pdGEsIHRhZGEgc2UgaXp2b2RpIHByaWxhZ2/EkWVuaSBpenJhei4gVGFqIHJlenVsdGF0IGl6cmF6YSBtb8W+ZXRlIG5lb2JhdmV6bm8gcG9zdGF2aXRpIHUgb2RhYnJhbm8gcGl0YW5qZS5cIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkRlc2NyaXB0aW9uOlxuICAgICAgICBcIkFrbyBzZSBsb2dpxI1rYSBla3NwcmVzaWphIHZyYXRpIGlzdGluaXRhLCB6YWRhbmkgdGVrc3QgemEgJ1RoYW5rIHlvdSBwYWdlJyBtaWplbmphIHNlIHUgemFkYW5pLlwiLFxuXG4gICAgICBpdGVtRXhwcmVzc2lvblRleHQ6IFwiS2FkYSBzZSBpenJheiAnezB9JyB2cmF0aSBpc3Rpbml0XCIsIC8vezB9IC0gdGhlIGV4cHJlc3Npb25cbiAgICAgIHBhZ2VfdmlzaWJpbGl0eVRleHQ6IFwiVcSNaW5pdGUgc3RyYW5pY3UgezB9IHZpZGxqaXZvbVwiLCAvL3swfSBwYWdlIG5hbWVcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlUZXh0OiBcIlXEjWluaXRlIHBsb8SNdSB7MH0gdmlkbGppdm9tXCIsIC8vezB9IHBhbmVsIG5hbWVcbiAgICAgIHBhbmVsX2VuYWJsZVRleHQ6IFwiT21vZ3XEh2kgcGFuZWwgeCB7MH1cIiwgLy97MH0gcGFuZWwgbmFtZVxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eVRleHQ6IFwiVcSNaW5pdGUgcGl0YW5qZSB7MH0gdmlkbGppdmltXCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZVRleHQ6IFwiT21vZ3XEh2kgcGl0YW5qZSB7MH1cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgcXVlc3Rpb25fcmVxdWlyZVRleHQ6IFwiTmVrYSBwaXRhbmplIHswfSBidWRlIHBvdHJlYm5vXCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHRyaWdnZXJfY29tcGxldGVUZXh0OiBcIkFua2V0YSBzZSBkb3ZyxaFhXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCJQb3N0YXZsamVubyB1IHBpdGFuamU6IHswfSB2cmlqZWRub3N0IHsxfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lLCB7MX0gc2V0VmFsdWVcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlVGV4dDpcbiAgICAgICAgXCJLb3BpcmFqdGUgdSBwaXRhbmplOiB7MH0gdnJpamVkbm9zdCBvZCBwaXRhbmphIHsxfVwiLCAvL3swfSBhbmQgezF9IHF1ZXN0aW9uIG5hbWVzXG4gICAgICB0cmlnZ2VyX3NraXBUZXh0OiBcIkFua2V0YSBwcmVza2HEjWUgbmEgcGl0YW5qZSB7MH1cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDE6IFwiUG9rcmV0YW5qZSBpenJhemE6ICd7MH0nXCIsIC8vezB9IHRoZSBleHByZXNzaW9uXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MjogXCIgaSBkb3ZlbGEgdSBwaXRhbmplIHN2b2ogcmV6dWx0YXQ6IHswfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25UZXh0OlxuICAgICAgICBcIlByaWthemF0aSBwcmlsYWdvxJFlbmkgdGVrc3QgemEgJ1RoYW5rIHlvdSBwYWdlJy5cIixcblxuICAgICAgY29uZGl0aW9uczogXCJTdGFuamUvU3RhbmphXCIsXG4gICAgICBhY3Rpb25zOiBcIkFrY2lqZVwiLFxuICAgICAgZXhwcmVzc2lvbkVkaXRvclRpdGxlOiBcIkRlZmluaXJhbmplIHV2amV0YVwiLFxuICAgICAgYWN0aW9uc0VkaXRvclRpdGxlOiBcIkRlZmluaXJhbmplIHJhZG5qaVwiLFxuXG4gICAgICBkZWxldGVBY3Rpb246IFwiQnJpc2FuamUgcmFkbmplXCIsXG4gICAgICBhZGROZXdBY3Rpb246IFwiRG9kYXZhbmplIG5vdmUgYWtjaWplXCIsXG4gICAgICBzZWxlY3RlZEFjdGlvbkNhcHRpb246IFwiT2RhYmVyaXRlIHJhZG5qdSB6YSBkb2RhdmFuamUuLi5cIixcblxuICAgICAgZXhwcmVzc2lvbkludmFsaWQ6XG4gICAgICAgIFwiTG9nacSNa2EgZWtzcHJlc2lqYSBqZSBwcmF6bmEgaWxpIG5ldmHFvmXEh2EuIE1vbGltIHZhcywgaXNwcmF2aXRlIHRvLlwiLFxuICAgICAgbm9BY3Rpb25FcnJvcjogXCJNb2xpbSB2YXMsIGRvZGFqdGUgYmFyZW0gamVkbnUgYWtjaWp1LlwiLFxuICAgICAgYWN0aW9uSW52YWxpZDogXCJNb2xpbW8gdmFzIGRhIHJpamXFoWl0ZSBwcm9ibGVtZSB1IHN2b2pvaiBha2NpamkuXCIsXG4gICAgICBleHByZXNzaW9uU2V0dXA6IFwiXCIsXG4gICAgICBhY3Rpb25zU2V0dXA6IFwiXCIsXG4gICAgfSxcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBuYW1lcyBpbiB0YWJsZSBoZWFkZXJzXG4gIC8vIHBlbDoge1xuICAvLyAgIGlzUmVxdWlyZWQ6IFwiUmVxdWlyZWQ/XCJcbiAgLy8gfSxcbiAgLy9Qcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwiUHJpbWlqZW5pdGlcIixcbiAgICBvazogXCJPS1wiLFxuICAgIHNhdmU6IFwiU3ByZW1pdGlcIixcbiAgICBzYXZlVG9vbHRpcDogXCJTcHJlbWl0aVwiLFxuICAgIGNhbmNlbDogXCJPdGthemF0aVwiLFxuICAgIHJlc2V0OiBcIlJlc2V0aXJhdGlcIixcbiAgICByZWZyZXNoOiBcIk9zdmplxb5pXCIsXG4gICAgLy8gY2xvc2U6IFwiQ2xvc2VcIixcbiAgICBkZWxldGU6IFwiSXpicmlzYXRpXCIsXG4gICAgYWRkOiBcIkRvZGF0aVwiLFxuICAgIGFkZE5ldzogXCJEb2RhaiBub3ZvXCIsXG4gICAgYWRkSXRlbTogXCJLbGlrbml0ZSBkYSBiaXN0ZSBkb2RhbGkgc3Rhdmt1Li4uXCIsXG4gICAgYWRkT3RoZXI6IFwiRHJ1Z2loXCIsXG4gICAgYWRkU2VsZWN0QWxsOiBcIk9kYWJlcml0ZSBzdmVcIixcbiAgICBhZGROb25lOiBcIk5pdGtvXCIsXG4gICAgcmVtb3ZlQWxsOiBcIlVrbG9uaXRlIHN2ZVwiLFxuICAgIGVkaXQ6IFwiVXJlxJFpdmFuamVcIixcbiAgICBiYWNrOiBcIlBvdnJhdGFrIGJleiB1xaF0ZWRlXCIsXG4gICAgYmFja1Rvb2x0aXA6IFwiUG92cmF0YWsgYmV6IHXFoXRlZGVcIixcbiAgICBzYXZlQW5kQmFjazogXCJTcHJlbWFuamUgaSB2cmHEh2FuamVcIixcbiAgICBzYXZlQW5kQmFja1Rvb2x0aXA6IFwiU3ByZW1hbmplIGkgdnJhxIdhbmplXCIsXG4gICAgLy8gaXRlbVZhbHVlRWRpdDogXCJWaXNpYmxlIElmXCIsXG4gICAgZWRpdENob2ljZXM6IFwiVXJlxJFpdmFuamUgaXpib3JhXCIsXG4gICAgc2hvd0Nob2ljZXM6IFwiUG9rYcW+aXRlIGl6Ym9yZVwiLFxuICAgIG1vdmU6IFwiUHJlbWplc3RpdGlcIixcbiAgICBlbXB0eTogXCI8ZW1wdHk+XCIsXG4gICAgLy8gbm90RW1wdHk6IFwiPGVkaXQgdmFsdWU+XCIsXG4gICAgZmFzdEVudHJ5OiBcIkJyemkgdW5vc1wiLFxuICAgIGZvcm1FbnRyeTogXCJVbm9zIG9icmFzY2FcIixcbiAgICB0ZXN0U2VydmljZTogXCJUZXN0aXJhanRlIHVzbHVndVwiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcIk9kYWJlcml0ZSBlbGVtZW50XCIsXG4gICAgY29uZGl0aW9uQWN0aW9uRW1wdHk6IFwiT2RhYmVyaXRlIHJhZG5qdVwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcIk9kYWJlcml0ZSBwaXRhbmplLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFnZTogXCJPZGFiZXJpdGUgc3RyYW5pY3UuLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYW5lbDogXCJPZGFiaXIgcGxvxI1lLi4uXCIsXG4gICAgY29uZGl0aW9uVmFsdWVRdWVzdGlvblRpdGxlOiBcIlVuZXNpdGUvb2RhYmVyaXRlIHZyaWplZG5vc3RcIixcbiAgICAvLyBjb25kaXRpb25IZWxwOlxuICAgIC8vICAgXCJQbGVhc2UgZW50ZXIgYSBib29sZWFuIGV4cHJlc3Npb24uIEl0IHNob3VsZCByZXR1cm4gdHJ1ZSB0byBrZWVwIHRoZSBxdWVzdGlvbi9wYWdlIHZpc2libGUuIEZvciBleGFtcGxlOiB7cXVlc3Rpb24xfSA9ICd2YWx1ZTEnIG9yICh7cXVlc3Rpb24yfSAqIHtxdWVzdGlvbjR9ICA+IDIwIGFuZCB7cXVlc3Rpb24zfSA8IDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcIk1vxb5ldGUga29yaXN0aXRpIGtvdnLEjWF2ZSBub3NhxI1lIGtha28gYmlzdGUgZG9iaWxpIHByaXN0dXAgdnJpamVkbm9zdGltYSBwaXRhbmphOiB7cXVlc3Rpb24xfSArIHtxdWVzdGlvbjJ9LCAoe3ByaWNlfSp7cXVhbnRpdHl9KSAqICgxMDAgLSB7ZGlzY291bnR9KS4gRnVua2NpamUgbW/FvmV0ZSBrb3Jpc3RpdGkga2FvOiBpaWYoKSwgdG9kYXkoKSwgYWdlKCksIG1pbigpLCBtYXgoKSwgY291bnQoKSwgYXZnKCkgYW5kIG90aGVycy5cIixcbiAgICBhY2VFZGl0b3JIZWxwOlxuICAgICAgXCJQcml0aXNuaXRlIGN0cmwgKyBwcm9zdG9yIGtha28gYmlzdGUgZG9iaWxpIHNhdmpldCBvIHphdnLFoWV0a3UgZWtzcHJlc2lqZVwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcIlRyZW51dG5pIHJlZGtcIixcbiAgICBhY2VFZGl0b3JQYW5lbFRpdGxlOiBcIlRyZW51dG5hIHBsb8SNYVwiLFxuICAgIHNob3dNb3JlOiBcIlZpxaFlIGRldGFsamEgcG90cmHFvml0ZSB1IGRva3VtZW50YWNpamlcIixcbiAgICAvLyBjb25kaXRpb25TaG93TW9yZVVybDpcbiAgICAvLyAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Eb2N1bWVudGF0aW9uL0xpYnJhcnlQYXJhbWV0ZXI/aWQ9UXVlc3Rpb24mcGFyYW1ldGVyPXZpc2libGVJZlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIkRvc3R1cG5hIHBpdGFuamE6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIlRyZWJhbyBiaSBwb3N0b2phdGkgYmFyZW0gamVkYW4gc3R1cGFjIGlsaSByZWRcIixcblxuICAgIHByb3BlcnR5SXNFbXB0eTogXCJVbmVzaXRlIHZyaWplZG5vc3RcIixcbiAgICBwcm9wZXJ0eUlzTm9VbmlxdWU6IFwiVW5lc2l0ZSBqZWRpbnN0dmVudSB2cmlqZWRub3N0XCIsXG4gICAgcHJvcGVydHlOYW1lSXNOb3RVbmlxdWU6IFwiVW5lc2l0ZSBqZWRpbnN0dmVubyBpbWVcIixcbiAgICBsaXN0SXNFbXB0eTogXCJEb2RhdmFuamUgbm92ZSBzdGF2a2VcIixcbiAgICBleHByZXNzaW9uSXNFbXB0eTogXCJJenJheiBqZSBwcmF6YW5cIixcbiAgICB2YWx1ZTogXCJWcmlqZWRub3N0XCIsXG4gICAgdGV4dDogXCJ0ZWtzdFwiLFxuICAgIHJvd2lkOiBcIklEIHJlZGFrYVwiLFxuICAgIGltYWdlTGluazogXCJWZXphIHNsaWtlXCIsXG4gICAgY29sdW1uRWRpdDogXCJVcmXEkWl2YW5qZSBzdHVwY2E6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIlVyZcSRaXZhbmplIHN0YXZrZTogezB9XCIsXG5cbiAgICB1cmw6IFwiVXJsXCIsXG4gICAgcGF0aDogXCJQdXRcIixcbiAgICB2YWx1ZU5hbWU6IFwiTmF6aXYgdnJpamVkbm9zdGlcIixcbiAgICB0aXRsZU5hbWU6IFwiTmF6aXYgbmFzbG92YVwiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwiVWxhem5pIG5hc2xvdiBvdmRqZVwiLFxuICAgIHN1cnZleVRpdGxlUGxhY2Vob2xkZXI6IFwiTmFzbG92IHVsYXpuZSBhbmtldGUgb3ZkamVcIixcbiAgICBwYWdlVGl0bGVQbGFjZWhvbGRlcjogXCJOYXNsb3YgdWxhem5lIHN0cmFuaWNlIG92ZGplXCIsXG4gICAgZGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJVbmVzaXRlIG9waXNcIixcbiAgICBzdXJ2ZXlEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIlVuZXNpdGUgb3BpcyBhbmtldGVcIixcbiAgICBwYWdlRGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJVbmVzaXRlIG9waXMgc3RyYW5pY2VcIixcblxuICAgIHNob3dPdGhlckl0ZW06IFwiSW1hIGkgZHJ1Z3Ugc3Rhdmt1XCIsXG4gICAgb3RoZXJUZXh0OiBcIlRla3N0IGRydWdlIHN0YXZrZVwiLFxuICAgIHNob3dOb25lSXRlbTogXCJOZW1hIHN0YXZrdVwiLFxuICAgIG5vbmVUZXh0OiBcIk5pamVkYW4gdGVrc3Qgc3RhdmtlXCIsXG4gICAgaGFzU2VsZWN0QWxsOiBcIlNhZHLFvmkgb2RhYmVyaXRlIHN2ZSBzdGF2a2VcIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIk9kYWJlcml0ZSBzdmUgc3RhdmtlIHRla3N0XCIsXG4gICAgY2hvaWNlc01pbjogXCJNaW5pbWFsbmEgdnJpamVkbm9zdCB6YSBhdXRvbWF0c2tpIGdlbmVyaXJhbmUgc3RhdmtlXCIsXG4gICAgY2hvaWNlc01heDogXCJNYWtzaW1hbG5hIHZyaWplZG5vc3QgemEgYXV0b21hdHNraSBnZW5lcmlyYW5lIHN0YXZrZVwiLFxuICAgIGNob2ljZXNTdGVwOiBcIlJhemxpa2EgaXptZcSRdSBhdXRvbWF0c2tpIGdlbmVyaXJhbmloIHN0YXZraVwiLFxuICAgIG5hbWU6IFwiSW1lXCIsXG4gICAgdGl0bGU6IFwiTmFzbG92XCIsXG4gICAgY2VsbFR5cGU6IFwiVnJzdGEgxIdlbGlqZVwiLFxuICAgIGNvbENvdW50OiBcIkJyb2ogc3R1cGFjYVwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJPZGFiZXJpdGUgcmVkb3NsaWplZCBpemJvcmFcIixcbiAgICB2aXNpYmxlOiBcIkplIGxpIHZpZGxqaXZvP1wiLFxuICAgIGlzUmVxdWlyZWQ6IFwiSmUgcG90cmVibm8/XCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJaYWh0aWpldmF0aSBvZGdvdm9yIHphIHN2ZSByZWRvdmVcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJQb3RyZWJhbiB0ZWtzdCBwb2dyZcWha2VcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIlBvxI1pbmplIGxpIHMgbm92b20gbGluaWpvbT9cIixcbiAgICByb3dzOiBcIkJyb2ogcmVkYWthXCIsXG4gICAgY29sczogXCJCcm9qIHN0dXBhY2FcIixcbiAgICBwbGFjZWhvbGRlcjogXCJEcsW+YcSNIHVsYXpub2cgbWplc3RhXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwiUHJpa2F6IHBvZHJ1xI1qYSBwcmV0cHJlZ2xlZGFcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwiUG9ocmFuaXRlIHNhZHLFvmFqIGRhdG90ZWtlIHUgcmV6dWx0YXQgSlNPTiBrYW8gdGVrc3RcIixcbiAgICBtYXhTaXplOiBcIk1ha3NpbWFsbmEgdmVsacSNaW5hIGRhdG90ZWtlIHUgYnl0ZXNcIixcbiAgICBpbWFnZUhlaWdodDogXCJWaXNpbmEgc2xpa2VcIixcbiAgICBpbWFnZVdpZHRoOiBcIsWgaXJpbmEgc2xpa2VcIixcbiAgICByb3dDb3VudDogXCJCcm9qIHJlZGFrYVwiLFxuICAgIGNvbHVtbkxheW91dDogXCJSYXNwb3JlZCBzdHVwYWNhXCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiRG9kYXZhbmplIGxva2FjaWplIGd1bWJhIHJlZGFrYVwiLFxuICAgIGFkZFJvd1RleHQ6IFwiRG9kYXZhbmplIHRla3N0YSBndW1iYSByZWRha1wiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiVWtsYW5qYW5qZSB0ZWtzdGEgZ3VtYmEgcmVkYWthXCIsXG4gICAgcmF0ZU1pbjogXCJNaW5pbWFsbmEgc3RvcGFcIixcbiAgICByYXRlTWF4OiBcIk1ha3NpbWFsbmEgc3RvcGFcIixcbiAgICByYXRlU3RlcDogXCJLb3JhayBzdG9wZVwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJPcGlzIG1pbmltYWxuZSBzdG9wZVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJPcGlzIG1ha3NpbWFsbmUgc3RvcGVcIixcbiAgICBpbnB1dFR5cGU6IFwiVnJzdGEgdW5vc2FcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJPcGlzIG9wY2lqYVwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJaYWRhbmEgdnJpamVkbm9zdFwiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJaYWRhbmkgdGVrc3RvdmkgxIdlbGlqYVwiLFxuXG4gICAgc3VydmV5RWRpdG9yVGl0bGU6IFwiVXJlxJFpdmFuamUgcG9zdGF2a2kgYW5rZXRlXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIlVyZcSRaXZhbmplOiB7MH1cIixcblxuICAgIG1heExlbmd0aDogXCJNYWtzaW1hbG5hIGR1bGppbmFcIixcblxuICAgIGJ1aWxkRXhwcmVzc2lvbjogXCJHcmFkaXRpXCIsXG4gICAgZWRpdEV4cHJlc3Npb246IFwiVXJlxJFpdmFuamVcIixcbiAgICBhbmQ6IFwiSVwiLFxuICAgIG9yOiBcIklsaVwiLFxuICAgIHJlbW92ZTogXCJVa2xvbml0aVwiLFxuICAgIGFkZENvbmRpdGlvbjogXCJEb2RhdmFuamUgc3RhbmphXCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCJQb2thxb5pL3Nha3JpaiBuYXNsb3ZcIixcbiAgICBleHBhbmRDb2xsYXBzZVRpdGxlOiBcIk5hc2xvdiBwcm/FoWlyZW5qYS9rb2xhcHNhXCIsXG4gICAgbG9jYWxlOiBcIlphZGFuaSBqZXppa1wiLFxuICAgIHNpbXVsYXRvcjogXCJPZGFiZXJpdGUgdXJlxJFhalwiLFxuICAgIGxhbmRzY2FwZU9yaWVudGF0aW9uOiBcIktyYWpvbGlrXCIsXG4gICAgbW9kZTogXCJOYcSNaW4gcmFkYSAoc2FtbyB1cmXEkWl2YW5qZS/EjWl0YW5qZSlcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJKYXNuZSBuZXZpZGxqaXZlIHZyaWplZG5vc3RpXCIsXG4gICAgY29va2llTmFtZTogXCJOYXppdiBrb2xhxI1pxIdhIChvbmVtb2d1xIdpdGkgYW5rZXR1IGR2YSBwdXRhIGxva2Fsbm8pXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiUG/FoWFsaml0ZSByZXp1bHRhdGUgYW5rZXRlIG5hIHNsamVkZcSHdSBzdHJhbmljdVwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcIlBvaHJhbml0ZSB2cmlqZWRub3N0ICdvdGhlcnMnIHUgemFzZWJub20gcG9sanVcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJQcmlrYXphdGUgbmFzbG92ZSBzdHJhbmljYVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJQcmlrYXphdGUgYnJvamV2ZSBzdHJhbmljYVwiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCJUZWtzdCBwcmV0aG9kbm9nIGd1bWJhIHN0cmFuaWNlXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIlRla3N0IHNsamVkZcSHZWcgZ3VtYmEgc3RyYW5pY2VcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiQ29tcGxldGUgYnV0dG9uIHRleHRcIixcbiAgICBwcmV2aWV3VGV4dDogXCJUZWtzdCBndW1iYSB6YSBwcmV0cHJlZ2xlZFwiLFxuICAgIGVkaXRUZXh0OiBcIlVyZcSRaXZhbmplIHRla3N0YSBndW1iYVwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJUZWtzdCBndW1iYSB6YSBwb2tyZXRhbmplXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIlByaWtha2FuamUgbmF2aWdhY2lqc2tpaCB0aXBraSAoemFkYW5hIG5hdmlnYWNpamEpXCIsXG4gICAgc2hvd1ByZXZCdXR0b246XG4gICAgICBcIlByaWthZ25pdGUgcHJldGhvZG5pIGd1bWIgKGtvcmlzbmlrIHNlIG1vxb5lIHZyYXRpdGkgbmEgcHJldGhvZG51IHN0cmFuaWN1KVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCJQcnZhIHN0cmFuaWNhIHUgYW5rZXRpIGplIHBvxI1ldG5hIHN0cmFuaWNhLlwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlByaWthZ3XFoWl0ZSBkb3ZyxaFlbnUgc3RyYW5pY3UgbmEga3JhanUgKGNvbXBsZXRlZEh0bWwpXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzpcbiAgICAgIFwiS2FkYSBvZGdvdmFyYXRlIG5hIHN2YSBwaXRhbmphLCBpZGl0ZSBhdXRvbWF0c2tpIG5hIHNsamVkZcSHdSBzdHJhbmljdVwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJQb2thxb5pIHRyYWt1IG5hcHJldGthXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIkxva2FjaWphIG5hc2xvdmEgcGl0YW5qYVwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJQaXRhbmplIGplIHphaHRpamV2YWxvIHNpbWJvbGVcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiSW5kZWtzIHBva3JldGFuamEgcGl0YW5qYSAoMSwgMiBpbGkgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJQcmlrYXphdGUgYnJvamV2ZSBwaXRhbmphXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOlxuICAgICAgXCJQcmVkbG/FvmFrIG5hc2xvdmEgcGl0YW5qYSwgemFkYW5vIGplOiAne25vfS4ge3JlcXVpcmV9IHt0aXRsZX0nXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIk1qZXN0byBwb2dyZcWha2UgdSBwaXRhbmp1XCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOlxuICAgICAgXCJVc3JlZG90b8SNaXRlIHBydm8gcGl0YW5qZSBuYSBwcm9tamVudSBzdHJhbmljZVwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIlJlZG9zbGlqZWQgZWxlbWVuYXRhIG5hIHN0cmFuaWNpXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIk1ha3NpbWFsbm8gdnJpamVtZSB6YSBkb3ZyxaFhamUgYW5rZXRlXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJNYWtzaW1hbG5vIHZyaWplbWUgemEgZG92csWhYW5qZSBzdHJhbmljZSB1IGFua2V0aVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIlBva2HFvmkgcGxvxI11IHRpbWVyYVwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJQcmlrYXphdGUgbmHEjWluIHJhZGEgdGltZXIgcGFuZWxhXCIsXG4gICAgcmVuZGVyTW9kZTogXCJOYcSNaW4gcHJpa2F6YVwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiRG9wdXN0aXRlIGRvZGF2YW5qZSBwbG/EjWVcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIkRvcHVzdGl0ZSB1a2xhbmphbmplIHBsb8SNZVwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJEb2RhdmFuamUgdGVrc3RhIHBhbmVsYVwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJSZW1vdmluZyBwYW5lbCB0ZXh0XCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIlVrbGFuamFuamUgdGVrc3RhIHBsb8SNZVwiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIGV4cHJlc3Npb246IFwiSXpyYXpcIixcblxuICAgIG1pblZhbHVlOiBcIk1pbmltYWxuYSB2cmlqZWRub3N0XCIsXG4gICAgbWF4VmFsdWU6IFwiTWFrc2ltYWxuYSB2cmlqZWRub3N0XCIsXG4gICAgbWluTGVuZ3RoOiBcIk1pbmltYWxuYSBkdWxqaW5hXCIsXG4gICAgYWxsb3dEaWdpdHM6IFwiRG9wdXN0aXRlIHpuYW1lbmtlXCIsXG4gICAgbWluQ291bnQ6IFwiTWluaW1hbG5vIGJyb2phbmplXCIsXG4gICAgbWF4Q291bnQ6IFwiTWFrc2ltYWxuaSBicm9qXCIsXG4gICAgcmVnZXg6IFwiUmVkb3ZpdGkgaXpyYXpcIixcblxuICAgIHRvdGFsVGV4dDogXCJVa3VwYW4gdGVrc3RcIixcbiAgICB0b3RhbFR5cGU6IFwiVWt1cG5hIHZyc3RhXCIsXG4gICAgdG90YWxFeHByZXNzaW9uOiBcIlVrdXBuaSBpenJhelwiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcIlVrdXBhbiBzdGlsIHByaWthemFcIixcbiAgICB0b3RhbEN1cnJlbmN5OiBcIlVrdXBuYSB2YWx1dGFcIixcbiAgICB0b3RhbEZvcm1hdDogXCJVa3VwYW4gZm9ybWF0XCIsXG5cbiAgICAvLyBIZWFkZXIgIGFkb3JuZXJcbiAgICBsb2dvUG9zaXRpb246IFwiUG9sb8W+YWogbG9nb3RpcGFcIixcbiAgICBhZGRMb2dvOiBcIkRvZGF2YW5qZSBsb2dvdGlwYS4uLlwiLFxuICAgIGNoYW5nZUxvZ286IFwiUHJvbWplbmEgbG9nb3RpcGEuLi5cIixcbiAgICBsb2dvUG9zaXRpb25zOiB7XG4gICAgICBub25lOiBcIlVrbGFuamFuamUgbG9nb3RpcGFcIixcbiAgICAgIGxlZnQ6IFwiTGlqZXZvXCIsXG4gICAgICByaWdodDogXCJEZXNub1wiLFxuICAgICAgdG9wOiBcIk5hIHZyaHVcIixcbiAgICAgIGJvdHRvbTogXCJOYSBkbnVcIixcbiAgICB9LFxuXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCJPcMSHZW5pdG9cIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIk1vZ3XEh25vc3RpXCIsXG4gICAgICBodG1sOiBcIkh0bWwgRWRpdG9yXCIsXG4gICAgICBjb2x1bW5zOiBcIlN0dXBjZVwiLFxuICAgICAgcm93czogXCJSZWRha2FcIixcbiAgICAgIGNob2ljZXM6IFwiSXpib3JhXCIsXG4gICAgICBpdGVtczogXCJTdGF2a2VcIixcbiAgICAgIHZpc2libGVJZjogXCJWaWRsaml2byBha29cIixcbiAgICAgIGVuYWJsZUlmOiBcIk9tb2d1xIdpIGFrb1wiLFxuICAgICAgcmVxdWlyZWRJZjogXCJQb3RyZWJubyBha29cIixcbiAgICAgIHJhdGVWYWx1ZXM6IFwiVnJpamVkbm9zdGkgY2lqZW5hXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwiSXpib3JpIHMgd2ViYVwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCJaYWRhbmkgaXpib3JpXCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCJVbm9zaSB0ZWtzdGFcIixcbiAgICAgIG51bWJlcmluZzogXCJOdW1lcmlyYW5qZVwiLFxuICAgICAgdmFsaWRhdG9yczogXCJWYWxpZGF0b3JpXCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcIk5hdmlnYWNpamFcIixcbiAgICAgIHF1ZXN0aW9uOiBcIlBpdGFuamVcIixcbiAgICAgIHBhZ2VzOiBcIlN0cmFuaWNlXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sOiBcIlphdnLFoWlvIEh0bWxcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJaYXZyxaFlbm8gSHRtbCBwb2QgdXZqZXRvbVwiLFxuICAgICAgbG9hZGluZ0h0bWw6IFwiVcSNaXRhdmFuamUgSHRtbFwiLFxuICAgICAgdGltZXI6IFwiVGltZXIvS3ZpelwiLFxuICAgICAgY2FsY3VsYXRlZFZhbHVlczogXCJJenJhxI11bmF0ZSB2cmlqZWRub3N0aVwiLFxuICAgICAgdHJpZ2dlcnM6IFwiQWt0aXZpcmFcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiTmFzbG92IHByZWRsb8Wha2FcIixcbiAgICAgIHRvdGFsczogXCJaYnJvamV2ZVwiLFxuICAgICAgbG9naWM6IFwiTG9naWthXCIsXG4gICAgICBsYXlvdXQ6IFwiSXpnbGVkXCIsXG4gICAgICBkYXRhOiBcIlBvZGF0YWthXCIsXG4gICAgICB2YWxpZGF0aW9uOiBcIlByb3ZqZXJhIHZhbGphbm9zdGlcIixcbiAgICAgIGNlbGxzOiBcIsSGZWxpamVcIixcbiAgICAgIHNob3dPbkNvbXBsZXRlZDogXCJQcmlrYXp1amUgc2UgbmEgZG92csWhZW5vbVwiLFxuICAgICAgbG9nbzogXCJMb2dvdGlwIHUgbmFzbG92dSBhbmtldGVcIixcbiAgICAgIHNsaWRlcjogXCJLbGl6YcSNXCIsXG4gICAgICBvdGhlcnM6IFwiRHJ1Z2lcIixcbiAgICB9LFxuICAgIGVkaXRQcm9wZXJ0eTogXCJVcmXEkWl2YW5qZSBvYmpla3RhICd7MH0nXCIsXG4gICAgaXRlbXM6IFwiWyBTdGF2a2U6IHswfSBdXCIsXG5cbiAgICBlbnRlck5ld1ZhbHVlOiBcIlVuZXNpdGUgdnJpamVkbm9zdC5cIixcbiAgICBub3F1ZXN0aW9uczogXCJVIGFua2V0aSBuZW1hIG5pa2Frdm9nIHBpdGFuamEuXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCJJenJhZGl0ZSBva2lkYcSNXCIsXG4gICAgdGl0bGVLZXlib2FyZEFkb3JuZXJUaXA6IFwiUHJpdGlzbml0ZSBndW1iIHphIHVub3MgemEgdXJlxJFpdmFuamVcIixcbiAgICBrZXlib2FyZEFkb3JuZXJUaXA6XG4gICAgICBcIlByaXRpc25pdGUgZ3VtYiBlbnRlciB6YSB1cmXEkWl2YW5qZSBzdGF2a2UsIHByaXRpc25pdGUgZ3VtYiB6YSBicmlzYW5qZSBzdGF2a2UsIHByaXRpc25pdGUgYWx0IHBsdXMgc3RyZWxpY2EgcHJlbWEgZ29yZSBpbGkgc3RyZWxpY2EgcHJlbWEgZG9samUgemEgcG9taWNhbmplIHN0YXZrZS5cIixcbiAgICB0cmlnZ2VyT246IFwiTmEgXCIsXG4gICAgdHJpZ2dlck1ha2VQYWdlc1Zpc2libGU6IFwiVcSNaW5pdGUgc3RyYW5pY2UgdmlkbGppdmltYTpcIixcbiAgICB0cmlnZ2VyTWFrZVF1ZXN0aW9uc1Zpc2libGU6IFwiVcSNaW5pdGUgZWxlbWVudGUgdmlkbGppdmltYTpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIkRvdnLFoWl0ZSBhbmtldHUgYWtvIHVzcGlqZXRlLlwiLFxuICAgIHRyaWdnZXJOb3RTZXQ6IFwiT2tpZGHEjSBuaWplIHBvc3RhdmxqZW5cIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiVHLEjWFuamUgYWtvXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCJQcm9tamVuYSB2cmlqZWRub3N0aTogXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIlZyaWplZG5vc3Qga29waXJhbmphIGl6OiBcIixcbiAgICB0cmlnZ2VyUnVuRXhwcmVzc2lvbjogXCJQb3N0aXNuaSBvdmFqIGl6cmF6OlwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCJ6YTogXCIsXG4gICAgdHJpZ2dlckdvdG9OYW1lOiBcIklkaSBuYSBwaXRhbmplOlwiLFxuICAgIHRyaWdnZXJJc1ZhcmlhYmxlOiBcIk5lIHN0YXZsamFqdGUgdmFyaWphYmx1IHUgcmV6dWx0YXQgYW5rZXRlLlwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uRW1wdHk6IFwiVW5lc2l0ZSB2YWxqYW5pIGl6cmF6XCIsXG5cbiAgICBub0ZpbGU6IFwiTmVtYSBvZGFiaXJhIGRhdG90ZWtlXCIsXG4gIH0sXG4gIC8vUHJvcGVydHkgdmFsdWVzXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCJpc3RpbmFcIixcbiAgICBmYWxzZTogXCJsYcW+bmVcIixcbiAgICBpbmhlcml0OiBcIm5hc2xpamVkaXRpXCIsXG4gICAgc2hvdzogXCJwb2themF0aVwiLFxuICAgIGhpZGU6IFwic2FrcmlqXCIsXG4gICAgZGVmYXVsdDogXCJ6YWRhbmlcIixcbiAgICBpbml0aWFsOiBcInBvxI1ldG5pXCIsXG4gICAgcmFuZG9tOiBcInNsdcSNYWphblwiLFxuICAgIGNvbGxhcHNlZDogXCJzcnXFoWlvXCIsXG4gICAgZXhwYW5kZWQ6IFwicHJvxaFpcmlvXCIsXG4gICAgbm9uZTogXCJuaXRrb1wiLFxuICAgIGFzYzogXCJ1emxhem5vXCIsXG4gICAgZGVzYzogXCJzaWxhem5vXCIsXG4gICAgaW5kZXRlcm1pbmF0ZTogXCJuZW9kcmXEkWVub1wiLFxuICAgIGRlY2ltYWw6IFwiZGVjaW1hbG5hXCIsXG4gICAgY3VycmVuY3k6IFwidmFsdXRlXCIsXG4gICAgcGVyY2VudDogXCJwb3N0b1wiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwiZmlyc3RFeHBhbmRlZFwiLFxuICAgIG9mZjogXCJpc2tsanXEjWVub1wiLFxuICAgIG9uUGFuZWw6IFwib25QYW5lbFwiLFxuICAgIG9uU3VydmV5OiBcIm9uU3VydmV5XCIsXG4gICAgbGlzdDogXCJwb3Bpc1wiLFxuICAgIHByb2dyZXNzVG9wOiBcInByb2dyZXNzVG9wXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwicHJvZ3Jlc3NCb3R0b21cIixcbiAgICBwcm9ncmVzc1RvcEJvdHRvbTogXCJwcm9ncmVzc1RvcEJvdHRvbVwiLFxuICAgIGhvcml6b250YWw6IFwiaG9yaXpvbnRhbFwiLFxuICAgIHZlcnRpY2FsOiBcInZlcnRpY2FsXCIsXG4gICAgdG9wOiBcInRvcFwiLFxuICAgIGJvdHRvbTogXCJib3R0b21cIixcbiAgICB0b3BCb3R0b206IFwidG9wIGFuZCBib3R0b21cIixcbiAgICBib3RoOiBcIm9iYVwiLFxuICAgIGxlZnQ6IFwibGlqZXZvXCIsXG4gICAgY29sb3I6IFwiYm9qYVwiLFxuICAgIGRhdGU6IFwiZGF0dW1cIixcbiAgICBkYXRldGltZTogXCJkYXRldGltZVwiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCJkYXRldGltZS1sb2NhbFwiLFxuICAgIGVtYWlsOiBcImVtYWlsXCIsXG4gICAgbW9udGg6IFwibW9udGhcIixcbiAgICBudW1iZXI6IFwibnVtYmVyXCIsXG4gICAgcGFzc3dvcmQ6IFwicGFzc3dvcmRcIixcbiAgICByYW5nZTogXCJyYW5nZVwiLFxuICAgIHRlbDogXCJ0ZWxcIixcbiAgICB0ZXh0OiBcInRleHRcIixcbiAgICB0aW1lOiBcInRpbWVcIixcbiAgICB1cmw6IFwidXJsXCIsXG4gICAgd2VlazogXCJ3ZWVrXCIsXG4gICAgaGlkZGVuOiBcImhpZGRlblwiLFxuICAgIG9uOiBcIm9uXCIsXG4gICAgb25QYWdlOiBcIm9uUGFnZVwiLFxuICAgIGVkaXQ6IFwiZWRpdFwiLFxuICAgIGRpc3BsYXk6IFwiZGlzcGxheVwiLFxuICAgIG9uQ29tcGxldGU6IFwib25Db21wbGV0ZVwiLFxuICAgIG9uSGlkZGVuOiBcIm9uSGlkZGVuXCIsXG4gICAgYWxsOiBcImFsbFwiLFxuICAgIHBhZ2U6IFwicGFnZVwiLFxuICAgIHN1cnZleTogXCJzdXJ2ZXlcIixcbiAgICBvbk5leHRQYWdlOiBcIm9uTmV4dFBhZ2VcIixcbiAgICBvblZhbHVlQ2hhbmdlZDogXCJvblZhbHVlQ2hhbmdlZFwiLFxuICAgIHNpbmdsZVBhZ2U6IFwic2luZ2xlIHBhZ2VcIixcbiAgICBzdGFuZGFyZDogXCJzdGFuZGFyZFwiLFxuICAgIHF1ZXN0aW9uUGVyUGFnZTogXCJxdWVzdGlvbiBwZXIgcGFnZVwiLFxuICAgIG5vUHJldmlldzogXCJubyBwcmV2aWV3XCIsXG4gICAgc2hvd0FsbFF1ZXN0aW9uczogXCJzaG93IHByZXZpZXcgd2l0aCBhbGwgcXVlc3Rpb25zXCIsXG4gICAgc2hvd0Fuc3dlcmVkUXVlc3Rpb25zOiBcInNob3cgcHJldmlldyB3aXRoIGFuc3dlcmVkIHF1ZXN0aW9uc1wiLFxuICB9LFxuICAvL09wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcImlzIGVtcHR5XCIsXG4gICAgbm90ZW1wdHk6IFwiaXMgbm90IGVtcHR5XCIsXG4gICAgZXF1YWw6IFwiZXF1YWxzXCIsXG4gICAgbm90ZXF1YWw6IFwibm90IGVxdWFsc1wiLFxuICAgIGNvbnRhaW5zOiBcImNvbnRhaW5zXCIsXG4gICAgbm90Y29udGFpbnM6IFwibm90IGNvbnRhaW5zXCIsXG4gICAgYW55b2Y6IFwiYW55IG9mXCIsXG4gICAgYWxsb2Y6IFwiYWxsIG9mXCIsXG4gICAgZ3JlYXRlcjogXCJncmVhdGVyXCIsXG4gICAgbGVzczogXCJsZXNzXCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwiZ3JlYXRlciBvciBlcXVhbHNcIixcbiAgICBsZXNzb3JlcXVhbDogXCJsZXNzIG9yIGVxdWFsc1wiLFxuICAgIGFuZDogXCJhbmRcIixcbiAgICBvcjogXCJvclwiLFxuICB9LFxuICAvL0VtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiS29yaXN0aXRlIGt1dG51IHZlcnppanVcIixcbiAgICBqcXVlcnk6IFwiS29yaXN0aXRlIGpRdWVyeSB2ZXJ6aWp1XCIsXG4gICAga25vY2tvdXQ6IFwiS29yacWhdGVuamUgbm9rYXV0IHZlcnppamVcIixcbiAgICByZWFjdDogXCJLb3JpxaF0ZW5qZSB2ZXJ6aWplIFJlYWN0XCIsXG4gICAgdnVlOiBcIktvcmlzdGl0ZSBWdWUgdmVyemlqdVwiLFxuICAgIGJvb3RzdHJhcDogXCJaYSBib290c3RyYXAgb2t2aXJcIixcbiAgICBtb2Rlcm46IFwiTW9kZXJuYSB0ZW1hXCIsXG4gICAgZGVmYXVsdDogXCJaYWRhbmEgdGVtYVwiLFxuICAgIG9yYW5nZTogXCJOYXJhbsSNYXN0YSB0ZW1hXCIsXG4gICAgZGFya2JsdWU6IFwiRGFya2JsdWUgdGVtYVwiLFxuICAgIGRhcmtyb3NlOiBcIkRhcmtyb3NlIHRlbWFcIixcbiAgICBzdG9uZTogXCJLYW1lbmEgdGVtYVwiLFxuICAgIHdpbnRlcjogXCJaaW1za2EgdGVtYVwiLFxuICAgIHdpbnRlcnN0b25lOiBcIlRlbWEgWmltc2tvLWthbWVuXCIsXG4gICAgc2hvd09uUGFnZTogXCJQb2thxb5pdGUgYW5rZXR1IG5hIHN0cmFuaWNpXCIsXG4gICAgc2hvd0luV2luZG93OiBcIlBva2HFvml0ZSBhbmtldHUgdSBwcm96b3J1XCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiVcSNaXRhdmFuamUgU3VydmV5IEpTT04gcyBwb3NsdcW+aXRlbGphXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU2tyaXB0ZSBpIHN0aWxvdmlcIixcbiAgICB0aXRsZUh0bWw6IFwiSFRNTFwiLFxuICAgIHRpdGxlSmF2YVNjcmlwdDogXCJKYXZhU2NyaXB0XCIsXG4gIH0sXG4gIC8vVGVzdCBTdXJ2ZXlcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcIk9kYWJlcml0ZSBzdHJhbmljdSBkYSBiaXN0ZSBqZSB0ZXN0aXJhbGk6XCIsXG4gICAgc2hvd0ludmlzaWJsZUVsZW1lbnRzOiBcIlBva2HFvmkgbmV2aWRsaml2ZSBlbGVtZW50ZVwiLFxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwiYnJvaiBvZGdvdm9yYVwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcImUtbWFpbFwiLFxuICAgIGV4cHJlc3Npb252YWxpZGF0b3I6IFwiZXhwcmVzc2lvblwiLFxuICAgIG51bWVyaWN2YWxpZGF0b3I6IFwibnVtZXJpY1wiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcInJlZ2V4XCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCJ0ZXh0XCIsXG4gIH0sXG4gIHRyaWdnZXJzOiB7XG4gICAgY29tcGxldGV0cmlnZ2VyOiBcInBvdHB1bmEgYW5rZXRhXCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcInBvc3RhdmxqZW5hIHZyaWplZG5vc3RcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcInZyaWplZG5vc3Qga29waXJhbmphXCIsXG4gICAgc2tpcHRyaWdnZXI6IFwicHJlc2tvxI1pdGkgbmEgcGl0YW5qZVwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcInBva3JlbnV0aSBpenJhelwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcInByb21qZW5hIHZpZGxqaXZvc3RpIChhbW9ydGl6aXJhdGkpXCIsXG4gIH0sXG4gIHBlaGVscDoge1xuICAgIC8vZXhwcmVzc2lvbjpcbiAgfSxcbiAgLy9Qcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICBuYW1lOiBcIm5hbWVcIixcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCJ0aXRsZVwiLFxuICAgICAgdGl0bGU6IFwiT3N0YXZpdGUgcHJhem5vLCBha28gamUgaXN0byBrYW8gJ05hbWUnXCIsXG4gICAgfSxcblxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHlcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJxdWVzdGlvbnNPcmRlclwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJtYXhUaW1lVG9GaW5pc2hcIixcblxuICAgIHZpc2libGU6IFwidmlzaWJsZVwiLFxuICAgIHZpc2libGVJZjogXCJ2aXNpYmxlSWZcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwicXVlc3Rpb25UaXRsZUxvY2F0aW9uXCIsXG4gICAgZGVzY3JpcHRpb246IFwiZGVzY3JpcHRpb25cIixcbiAgICBzdGF0ZTogXCJzdGF0ZVwiLFxuICAgIGlzUmVxdWlyZWQ6IFwiaXNSZXF1aXJlZFwiLFxuICAgIHJlcXVpcmVkSWY6IFwicmVxdWlyZWRJZlwiLFxuICAgIGluZGVudDogXCJpbmRlbnRcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJyZXF1aXJlZEVycm9yVGV4dFwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwic3RhcnRXaXRoTmV3TGluZVwiLFxuICAgIGlubmVySW5kZW50OiBcImlubmVySW5kZW50XCIsXG4gICAgcGFnZTogXCJwYWdlXCIsXG5cbiAgICB3aWR0aDogXCJ3aWR0aFwiLFxuXG4gICAgY29tbWVudFRleHQ6IFwiY29tbWVudFRleHRcIixcbiAgICB2YWx1ZU5hbWU6IFwidmFsdWVOYW1lXCIsXG4gICAgZW5hYmxlSWY6IFwiZW5hYmxlSWZcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiZGVmYXVsdFZhbHVlXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCJjb3JyZWN0QW5zd2VyXCIsXG4gICAgcmVhZE9ubHk6IFwicmVhZE9ubHlcIixcbiAgICB2YWxpZGF0b3JzOiBcInZhbGlkYXRvcnNcIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcInRpdGxlTG9jYXRpb25cIixcblxuICAgIGhhc0NvbW1lbnQ6IFwiaGFzQ29tbWVudFwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwiaGFzT3RoZXJcIixcbiAgICBjaG9pY2VzOiBcImNob2ljZXNcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiY2hvaWNlc09yZGVyXCIsXG4gICAgY2hvaWNlc0J5VXJsOiBcImNob2ljZXNCeVVybFwiLFxuICAgIG90aGVyVGV4dDogXCJvdGhlclRleHRcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCJvdGhlckVycm9yVGV4dFwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcInN0b3JlT3RoZXJzQXNDb21tZW50XCIsXG5cbiAgICBsYWJlbDogXCJsYWJlbFwiLFxuICAgIHNob3dUaXRsZTogXCJzaG93VGl0bGVcIixcbiAgICB2YWx1ZVRydWU6IFwidmFsdWVUcnVlXCIsXG4gICAgdmFsdWVGYWxzZTogXCJ2YWx1ZUZhbHNlXCIsXG5cbiAgICBjb2xzOiBcImNvbHNcIixcbiAgICByb3dzOiBcInJvd3NcIixcblxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIm9wdGlvbnNDYXB0aW9uXCIsXG5cbiAgICBleHByZXNzaW9uOiBcImV4cHJlc3Npb25cIixcbiAgICBmb3JtYXQ6IFwiZm9ybWF0XCIsXG4gICAgZGlzcGxheVN0eWxlOiBcImRpc3BsYXlTdHlsZVwiLFxuICAgIGN1cnJlbmN5OiBcImN1cnJlbmN5XCIsXG4gICAgdXNlR3JvdXBpbmc6IFwidXNlR3JvdXBpbmdcIixcblxuICAgIHNob3dQcmV2aWV3OiBcInNob3dQcmV2aWV3XCIsXG4gICAgYWxsb3dNdWx0aXBsZTogXCJhbGxvd011bHRpcGxlXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiaW1hZ2VIZWlnaHRcIixcbiAgICBpbWFnZVdpZHRoOiBcImltYWdlV2lkdGhcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwic3RvcmVEYXRhQXNUZXh0XCIsXG4gICAgbWF4U2l6ZTogXCJtYXhTaXplXCIsXG5cbiAgICBodG1sOiBcImh0bWxcIixcblxuICAgIGNvbHVtbnM6IFwiY29sdW1uc1wiLFxuICAgIGNlbGxzOiBcImNlbGxzXCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJpc0FsbFJvd1JlcXVpcmVkXCIsXG5cbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcImhvcml6b250YWxTY3JvbGxcIixcbiAgICBjZWxsVHlwZTogXCJjZWxsVHlwZVwiLFxuICAgIGNvbHVtbnNMYXlvdXQ6IFwiY29sdW1uc0xheW91dFwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcImNvbHVtbkNvbENvdW50XCIsXG4gICAgY29sdW1uTWluV2lkdGg6IFwiY29sdW1uTWluV2lkdGhcIixcblxuICAgIHJvd0NvdW50OiBcInJvd0NvdW50XCIsXG4gICAgbWluUm93Q291bnQ6IFwibWluUm93Q291bnRcIixcbiAgICBtYXhSb3dDb3VudDogXCJtYXhSb3dDb3VudFwiLFxuICAgIGtleU5hbWU6IFwia2V5TmFtZVwiLFxuICAgIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwia2V5RHVwbGljYXRpb25FcnJvclwiLFxuICAgIGNvbmZpcm1EZWxldGU6IFwiY29uZmlybURlbGV0ZVwiLFxuICAgIGNvbmZpcm1EZWxldGVUZXh0OiBcImNvbmZpcm1EZWxldGVUZXh0XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiYWRkUm93TG9jYXRpb25cIixcbiAgICBhZGRSb3dUZXh0OiBcImFkZFJvd1RleHRcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcInJlbW92ZVJvd1RleHRcIixcblxuICAgIGl0ZW1zOiBcIml0ZW1zXCIsXG4gICAgaXRlbVNpemU6IFwiaXRlbVNpemVcIixcbiAgICBjb2xDb3VudDogXCJjb2xDb3VudFwiLFxuXG4gICAgdGVtcGxhdGVUaXRsZTogXCJ0ZW1wbGF0ZVRpdGxlXCIsXG4gICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogXCJ0ZW1wbGF0ZURlc2NyaXB0aW9uXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJhbGxvd0FkZFBhbmVsXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJhbGxvd1JlbW92ZVBhbmVsXCIsXG4gICAgcGFuZWxDb3VudDogXCJwYW5lbENvdW50XCIsXG4gICAgbWluUGFuZWxDb3VudDogXCJtaW5QYW5lbENvdW50XCIsXG4gICAgbWF4UGFuZWxDb3VudDogXCJtYXhQYW5lbENvdW50XCIsXG4gICAgcGFuZWxzU3RhdGU6IFwicGFuZWxzU3RhdGVcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwicGFuZWxBZGRUZXh0XCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcInBhbmVsUmVtb3ZlVGV4dFwiLFxuICAgIHBhbmVsUHJldlRleHQ6IFwicGFuZWxQcmV2VGV4dFwiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwicGFuZWxOZXh0VGV4dFwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwic2hvd1F1ZXN0aW9uTnVtYmVyc1wiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwic2hvd1JhbmdlSW5Qcm9ncmVzc1wiLFxuICAgIHJlbmRlck1vZGU6IFwicmVuZGVyTW9kZVwiLFxuICAgIHRlbXBsYXRlVGl0bGVMb2NhdGlvbjogXCJ0ZW1wbGF0ZVRpdGxlTG9jYXRpb25cIixcblxuICAgIHJhdGVWYWx1ZXM6IFwicmF0ZVZhbHVlc1wiLFxuICAgIHJhdGVNaW46IFwicmF0ZU1pblwiLFxuICAgIHJhdGVNYXg6IFwicmF0ZU1heFwiLFxuICAgIHJhdGVTdGVwOiBcInJhdGVTdGVwXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIm1pblJhdGVEZXNjcmlwdGlvblwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJtYXhSYXRlRGVzY3JpcHRpb25cIixcblxuICAgIGlucHV0VHlwZTogXCJpbnB1dFR5cGVcIixcbiAgICBzaXplOiBcInNpemVcIixcblxuICAgIGxvY2FsZTogXCJsb2NhbGVcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljXCIsXG4gICAgY29tcGxldGVkSHRtbDogXCJjb21wbGV0ZWRIdG1sXCIsXG4gICAgY29tcGxldGVkQmVmb3JlSHRtbDogXCJjb21wbGV0ZWRCZWZvcmVIdG1sXCIsXG4gICAgbG9hZGluZ0h0bWw6IFwibG9hZGluZ0h0bWxcIixcbiAgICB0cmlnZ2VyczogXCJ0cmlnZ2Vyc1wiLFxuICAgIGNvb2tpZU5hbWU6IFwiY29va2llTmFtZVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcInNlbmRSZXN1bHRPblBhZ2VOZXh0XCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcInNob3dOYXZpZ2F0aW9uQnV0dG9uc1wiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcInNob3dQcmV2QnV0dG9uXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwic2hvd1BhZ2VUaXRsZXNcIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCJzaG93Q29tcGxldGVkUGFnZVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJzaG93UGFnZU51bWJlcnNcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwicXVlc3Rpb25FcnJvckxvY2F0aW9uXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcInNob3dQcm9ncmVzc0JhclwiLFxuICAgIG1vZGU6IFwibW9kZVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwiZ29OZXh0UGFnZUF1dG9tYXRpY1wiLFxuICAgIGNoZWNrRXJyb3JzTW9kZTogXCJjaGVja0Vycm9yc01vZGVcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJjbGVhckludmlzaWJsZVZhbHVlc1wiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJzdGFydFN1cnZleVRleHRcIixcbiAgICBwYWdlUHJldlRleHQ6IFwicGFnZVByZXZUZXh0XCIsXG4gICAgcGFnZU5leHRUZXh0OiBcInBhZ2VOZXh0VGV4dFwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJjb21wbGV0ZVRleHRcIixcbiAgICByZXF1aXJlZFRleHQ6IFwicmVxdWlyZWRUZXh0XCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcInF1ZXN0aW9uU3RhcnRJbmRleFwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCJxdWVzdGlvblRpdGxlVGVtcGxhdGVcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiZmlyc3RQYWdlSXNTdGFydGVkXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcImlzU2luZ2xlUGFnZVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwibWF4VGltZVRvRmluaXNoUGFnZVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcInNob3dUaW1lclBhbmVsXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcInNob3dUaW1lclBhbmVsTW9kZVwiLFxuXG4gICAgZGVmYXVsdFBhbmVsVmFsdWU6IFwiZGVmYXVsdFBhbmVsVmFsdWVcIixcbiAgICBkZWZhdWx0Um93VmFsdWU6IFwiZGVmYXVsdFJvd1ZhbHVlXCIsXG4gICAgc2hvd05vbmVJdGVtOiBcImhhc05vbmVcIixcbiAgICBub25lVGV4dDogXCJub25lVGV4dFwiLFxuXG4gICAgdGV4dDogXCJ0ZXh0XCIsXG4gIH0sXG59O1xuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJoclwiXSA9IGhyU3RyaW5ncztcbiIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IHZhciBjelN0cmluZ3MgPSB7XG4gIGVkOiB7XG4gICAgYWRkTmV3UGFnZTogXCJQxZlpZGF0IG5vdm91IHN0csOhbmt1XCIsXG4gICAgYm9sZDogXCJUdcSNbsSbXCIsXG4gICAgY2hvb3NlRWxlbWVudDogXCJWeWJyYXQgZG9rdW1lbnQuLi5cIixcbiAgICBjb3B5OiBcIktvcMOtcm92YXRcIixcbiAgICBjb3B5VG9vbHRpcDogXCJaa29ww61yb3ZhdCB2w71ixJtyIGRvIHNjaHLDoW5reVwiLFxuICAgIGNvcnJlY3RKU09OOiBcIk9wcmF2dGUgSlNPTi5cIixcbiAgICBjdXQ6IFwiVnlqbW91dFwiLFxuICAgIGN1dFRvb2x0aXA6IFwiVnlqbW91dCB2w71ixJtyIGRvIHNjaHLDoW5reVwiLFxuICAgIGRlZmF1bHRMb2NhbGU6IFwiVsO9Y2hvesOtICh7MH0pXCIsXG4gICAgZGVsZXRlUGFnZTogXCJTbWF6YXQgc3Ryw6Fua3VcIixcbiAgICBkZXNpZ25lcjogXCJOw6F2cmjDocWZIHByxa96a3Vtxa9cIixcbiAgICBlZGl0OiBcIlVwcmF2aXRcIixcbiAgICBlZGl0UGFnZTogXCJVcHJhdml0IHN0csOhbmt1XCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwiVmxvxb5pdCBwcsWvemt1bVwiLFxuICAgIGZwQWRkUXVlc3Rpb246IFwiUMWZaWRhdCBvdMOhemt1Li4uXCIsXG4gICAgZ2VuZXJhdGVSZWFkYWJsZUpTT046IFwiR2VuZXJvdmF0IMSNaXRlbG7DvSBKU09OXCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwiR2VuZXJvdmF0IHBsYXRuw70gSlNPTlwiLFxuICAgIGhpZGVQYW5lbDogXCJTa3LDvXQgcGFuZWxcIixcbiAgICBpdGFsaWM6IFwiS3VyesOtdmFcIixcbiAgICBqc29uRWRpdG9yOiBcIkVkaXRvciBKU09OXCIsXG4gICAgbGc6IHtcbiAgICAgIGFjdGlvbkludmFsaWQ6IFwiT3ByYXZ0ZSBwcm9zw61tIHByb2Jsw6lteSB2IGFrY8OtY2guXCIsXG4gICAgICBhY3Rpb25zOiBcIkFrY2VcIixcbiAgICAgIGFjdGlvbnNFZGl0b3JUaXRsZTogXCJEZWZpbm92YXQgYWtjZVwiLFxuICAgICAgYWRkTmV3QWN0aW9uOiBcIlDFmWlkYXQgbm92b3UgYWtjaVwiLFxuICAgICAgYWRkTmV3SXRlbTogXCJQxZlpZGF0IG5vdsOpIHByYXZpZGxvXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25EZXNjcmlwdGlvbjogXCJQb2t1ZCBsb2dpY2vDvSB2w71yYXogdnLDoXTDrSBob2Rub3R1IHRydWUsIHptxJtuw60gc2UgdsO9Y2hvesOtIHRleHQgc3Ryw6Fua3kgcyBwb2TEm2tvdsOhbsOtbSBuYSB6YWRhbsO9IHRleHQuXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25OYW1lOiBcIlZsYXN0bsOtIHRleHQgc3Ryw6Fua3kgcyBwb2TEm2tvdsOhbsOtbVwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uVGV4dDogXCJab2JyYXppdCB2bGFzdG7DrSB0ZXh0IHBybyBzdHLDoW5rdSBzIHBvZMSba292w6Fuw61tLlwiLFxuICAgICAgY29uZGl0aW9uczogXCJQb2Rtw61ua3lcIixcbiAgICAgIGRlbGV0ZUFjdGlvbjogXCJTbWF6YXQgYWtjaVwiLFxuICAgICAgZXhwcmVzc2lvbkVkaXRvclRpdGxlOiBcIkRlZmlub3ZhdCBwb2Rtw61ua3lcIixcbiAgICAgIGV4cHJlc3Npb25JbnZhbGlkOiBcIkxvZ2lja8O9IHbDvXJheiBqZSBwcsOhemRuw70gbmVibyBuZXBsYXRuw70uIE9wcmF2dGUgamVqLlwiLFxuICAgICAgaXRlbUV4cHJlc3Npb25UZXh0OiBcIlBva3VkIHbDvXJheiDigJ57MH3igJwgdnLDoXTDrSBob2Rub3R1IHRydWU6XCIsXG4gICAgICBub0FjdGlvbkVycm9yOiBcIlDFmWlkZWp0ZSBhbGVzcG/FiCBqZWRudSBha2NpLlwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5RGVzY3JpcHRpb246IFwiWm9icmF6ZW7DrSBzdHLDoW5reSwga2R5xb4gc2UgbG9naWNrw70gdsO9cmF6IHZyw6F0w60gamFrbyB0cnVlLiBWIG9wYcSNbsOpbSBwxZnDrXBhZMSbIHrFr3N0YW5lIG5ldmlkaXRlbG7DoS5cIixcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eU5hbWU6IFwiVmlkaXRlbG5vc3Qgc3Ryw6Fua3lcIixcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eVRleHQ6IFwiWm9icmF6aXQgc3Ryw6Fua3UgezB9XCIsXG4gICAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjogXCJQYW5lbCBhIHbFoWVjaG55IHBydmt5IHYgbsSbbSBzZSBha3RpdnVqw60sIGtkecW+IGxvZ2lja8O9IHbDvXJheiB2csOhdMOtIGhvZG5vdHUgdHJ1ZS4gViBvcGHEjW7DqW0gcMWZw61wYWTEmyBqZSBuZWNodGUgdnlwbnV0w6kuXCIsXG4gICAgICBwYW5lbF9lbmFibGVOYW1lOiBcIlphcG51dMOtL3Z5cG51dMOtIHBhbmVsdVwiLFxuICAgICAgcGFuZWxfZW5hYmxlVGV4dDogXCJQb3ZvbGl0IHBhbmVsIHswfVwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eURlc2NyaXB0aW9uOiBcIlpvYnJhemVuw60gcGFuZWwsIGtkecW+IHNlIGxvZ2lja8O9IHbDvXJheiB2csOhdMOtIGpha28gdHJ1ZS4gViBvcGHEjW7DqW0gcMWZw61wYWTEmyB6xa9zdGFuZSBuZXZpZGl0ZWxuw70uXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5TmFtZTogXCJWaWRpdGVsbm9zdCBwYW5lbHVcIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlUZXh0OiBcIlpvYnJheml0IHBhbmVsIHswfVwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlRGVzY3JpcHRpb246IFwiUG92b2xpdCBvdMOhemt1LCBrZHnFviBsb2dpY2vDvSB2w71yYXogdnLDoXTDrSBob2Rub3R1IHRydWUuIFYgb3BhxI1uw6ltIHDFmcOtcGFkxJsgesWvc3RhbmUgbmV2aWRpdGVsbsOhLlwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlTmFtZTogXCJaYXBudXTDrS92eXBudXTDrSBvdMOhemt5XCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVUZXh0OiBcIlBvdm9saXQgb3TDoXprdSB7MH1cIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVEZXNjcmlwdGlvbjogXCJPdMOhemthIHNlIHN0w6F2w6EgcG92aW5ub3UsIGtkecW+IGxvZ2lja8O9IHbDvXJheiB2csOhdMOtIGhvZG5vdHUgdHJ1ZS5cIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVOYW1lOiBcIk90w6F6a2EgbmVwb3Zpbm7DoSB2ecW+YWRvdsOhbmFcIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVUZXh0OiBcIk90w6F6a2EgezB9IGplIHBvdmlubsOhXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb246IFwiWm9icmF6aXQgb3TDoXprdSwga2R5xb4gbG9naWNrw70gdsO9cmF6IHZyw6F0w60gaG9kbm90dSB0cnVlLiBWIG9wYcSNbsOpbSBwxZnDrXBhZMSbIHrFr3N0YW5lIG5ldmlkaXRlbG7DoS5cIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlOYW1lOiBcIlZpZGl0ZWxub3N0IG90w6F6a3lcIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlUZXh0OiBcIlpvYnJheml0IG90w6F6a3UgezB9XCIsXG4gICAgICBzZWxlY3RlZEFjdGlvbkNhcHRpb246IFwiVnliZXJ0ZSBha2NpLCBrdGVyb3UgY2hjZXRlIHDFmWlkYXQuLi5cIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVEZXNjcmlwdGlvbjogXCJLZHnFviBsb2dpY2vDvSB2w71yYXogdnLDoXTDrSBob2Rub3R1IHRydWUsIHByxa96a3VtIGplIGRva29uxI1lbiBhIGtvbmNvdsOpbXUgdcW+aXZhdGVsaSBzZSB6b2JyYXrDrSBzdHLDoW5rYSBzIHBvZMSba292w6Fuw61tLlwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZU5hbWU6IFwiRG9rb27EjWVuw60gcHLFr3prdW11XCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCJQcsWvemt1bSBzZSBzdMOhdsOhIGRva29uxI1lbsO9bVwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVEZXNjcmlwdGlvbjogXCJQb2t1ZCBzZSB6bcSbbsOtIGhvZG5vdHkgb3TDoXplaywga3RlcsOpIGpzb3UgcG91xb5pdHkgdiBsb2dpY2vDqW0gdsO9cmF6dSwgYSBsb2dpY2vDvSB2w71yYXogdnLDoXTDrSBob2Rub3R1IHRydWUsIHBhayBzZSBob2Rub3RhIGplZG7DqSB2eWJyYW7DqSBvdMOhemt5IHprb3DDrXJ1amUgZG8gamluw6kgdnlicmFuw6kgb3TDoXpreS5cIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlTmFtZTogXCJLb3DDrXJvdmF0IGhvZG5vdHUgb3TDoXpreVwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVUZXh0OiBcIktvcMOtcm92YXQgZG8gb3TDoXpreTogezB9IGhvZG5vdGEgeiBvdMOhemt5IHsxfVwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uRGVzY3JpcHRpb246IFwiUG9rdWQgbG9naWNrw70gdsO9cmF6IHZyw6F0w60gaG9kbm90dSB0cnVlLCBwcm92ZWRlIHNlIHZsYXN0bsOtIHbDvXJhei4gVsO9c2xlZGVrIHRvaG90byB2w71yYXp1IG3Fr8W+ZXRlIHZvbGl0ZWxuxJsgbmFzdGF2aXQgZG8gdnlicmFuw6kgb3TDoXpreS5cIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbk5hbWU6IFwiU3B1xaF0xJtuw60gdmxhc3Ruw61obyB2w71yYXp1XCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MTogXCJTcHVzdGl0IHbDvXJhejog4oCeezB94oCcXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MjogXCIgYSB6cG9jaHlibml0IGplaG8gdsO9c2xlZGVrOiB7MH1cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjogXCJQb2t1ZCBzZSB6bcSbbsOtIGhvZG5vdHkgb3TDoXplaywga3RlcsOpIGpzb3UgcG91xb5pdHkgdiBsb2dpY2vDqW0gdsO9cmF6dSwgYSBsb2dpY2vDvSB2w71yYXogdnLDoXTDrSBob2Rub3R1IHRydWUsIG5hc3RhdsOtIHNlIGhvZG5vdGEgbmEgdnlicmFub3Ugb3TDoXprdS5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVOYW1lOiBcIk5hc3RhdmVuw60gaG9kbm90eSBvdMOhemt5XCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCJacG9jaHlibml0OiB7MH0gaG9kbm90YSB7MX1cIixcbiAgICAgIHRyaWdnZXJfc2tpcERlc2NyaXB0aW9uOiBcIlBva3VkIGxvZ2lja8O9IHbDvXJheiB2csOhdMOtIGhvZG5vdHUgdHJ1ZSwgcHLFr3prdW0gcMWZZWpkZSBuYSB2eWJyYW5vdSBvdMOhemt1L3phbcSbxZnDrSBzZSBuYSBuaS5cIixcbiAgICAgIHRyaWdnZXJfc2tpcE5hbWU6IFwiUMWZZXNrb8SNaXQgbmEgb3TDoXprdVwiLFxuICAgICAgdHJpZ2dlcl9za2lwVGV4dDogXCJQcsWvemt1bSBwxZllc2tvxI3DrSBuYSBvdMOhemt1IHswfVwiXG4gICAgfSxcbiAgICBsb2dpYzogXCJMb2dpa2EgcHLFr3prdW11XCIsXG4gICAgbW9kaWZpZWQ6IFwiVXByYXZlbm9cIixcbiAgICBtb3ZlTGVmdDogXCJQxZllamTEm3RlIGRvbGV2YVwiLFxuICAgIG1vdmVSaWdodDogXCJQxZllamTEm3RlIGRvcHJhdmFcIixcbiAgICBuYXZpZ2F0ZVRvTXNnOiBcIk11c2VsaSBqc3RlIHDFmWVqw610IG5hOlwiLFxuICAgIG5ld1BhZ2VOYW1lOiBcInN0csOhbmthXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBhbmVsXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcIm90w6F6a2FcIixcbiAgICBuZXdUZXh0SXRlbU5hbWU6IFwidGV4dFwiLFxuICAgIG9wdGlvbnM6IFwiTW/Fvm5vc3RpXCIsXG4gICAgcGFzdGU6IFwiVmxvxb5pdFwiLFxuICAgIHBhc3RlVG9vbHRpcDogXCJWbG/Fvml0IHplIHNjaHLDoW5reVwiLFxuICAgIFwicHJvcGVydHktZ3JpZFwiOiBcIlZsYXN0bm9zdGlcIixcbiAgICBwcm9wZXJ0eUVkaXRvckVycm9yOiBcIkNoeWJhOlwiLFxuICAgIHJlZG86IFwiT3DEm3Rvdm7EmyB2csOhdGl0XCIsXG4gICAgcmVkb1Rvb2x0aXA6IFwiWm5vdnUgcHJvdsOpc3Qgem3Em251XCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCJIb2Rub3RhIHpvYnJhemVuw61cIixcbiAgICByZXN1bHRzTmFtZTogXCJOw6F6ZXYgb3TDoXpreVwiLFxuICAgIHJlc3VsdHNUaXRsZTogXCJOYWRwaXMgb3TDoXpreVwiLFxuICAgIHJlc3VsdHNWYWx1ZTogXCJIb2Rub3RhIG9kcG92xJtkaVwiLFxuICAgIHNhdmVkOiBcIlVsb8W+ZW5vXCIsXG4gICAgc2F2ZUVycm9yOiBcIkNoeWJhISBPYnNhaCBlZGl0b3J1IG5lbsOtIHVsb8W+ZW4uXCIsXG4gICAgc2F2ZVN1cnZleTogXCJVbG/Fvml0IHByxa96a3VtXCIsXG4gICAgc2F2ZVN1cnZleVRvb2x0aXA6IFwiVWxvxb5pdCBwcsWvemt1bVwiLFxuICAgIHNhdmluZzogXCJVa2zDoWTDoW7DrVwiLFxuICAgIHNlbGVjdFBhZ2U6IFwiVnliZXJ0ZSBzdHLDoW5rdS4uLlwiLFxuICAgIHNldHRpbmdzOiBcIk5hc3RhdmVuw60gcHLFr3prdW11XCIsXG4gICAgc2V0dGluZ3NUb29sdGlwOiBcIk90ZXbFmcOtdCBuYXN0YXZlbsOtIHByxa96a3VtdVwiLFxuICAgIHNob3dQYW5lbDogXCJab2JyYXppdCBwYW5lbFwiLFxuICAgIHN1cnZleTogXCJQcsWvemt1bVwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwiVsO9c2xlZGVrIHByxa96a3VtdTogXCIsXG4gICAgc3VydmV5UmVzdWx0c0pzb246IFwiSmFrbyBKU09OXCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIkpha28gdGFidWxrYVwiLFxuICAgIHRlc3RTdXJ2ZXk6IFwiT3Rlc3RvdmF0IHByxa96a3VtXCIsXG4gICAgdGVzdFN1cnZleUFnYWluOiBcIlpub3Z1IG90ZXN0b3ZhdCBwcsWvemt1bVwiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCLFoMOtxZlrYSBwcsWvemt1bXU6IFwiLFxuICAgIHRvb2xib3g6IFwiU2FkYSBuw6FzdHJvasWvXCIsXG4gICAgdG9vbGJveEdlbmVyYWxDYXRlZ29yeTogXCJPYmVjbsOpXCIsXG4gICAgdHJhbnNsYXRpb246IFwiUMWZZWtsYWRcIixcbiAgICB0cmFuc2xhdGlvbkFkZExhbmd1YWdlOiBcIlZ5YmVydGUgamF6eWsgcHJvIHDFmWVrbGFkXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCJFeHBvcnQgZG8gQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25JbXBvcnRGcm9tU0NWQnV0dG9uOiBcIkltcG9ydCB6IENTVlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDogXCJTbG91xI1pdCB7MH0gcyB2w71jaG96w61tIGxva8OhbGVtXCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6IFwixb3DoWRuw6kgxZlldMSbemNlIGsgcMWZZWtsYWR1LiBabcSbxYh0ZSBmaWx0ci5cIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxQYWdlczogXCJab2JyYXppdCB2xaFlY2hueSBzdHLDoW5reVwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwiWm9icmF6aXQgdsWhZWNobnkgxZlldMSbemNlXCIsXG4gICAgdW5kZXJsaW5lOiBcIlBvZHRyxb5lbsOtXCIsXG4gICAgdW5kbzogXCJacnXFoWl0XCIsXG4gICAgdW5kb1Rvb2x0aXA6IFwiVnLDoXRpdCBwb3NsZWRuw60gem3Em251XCJcbiAgfSxcbiAgZXc6IHtcbiAgICBhbmd1bGFyOiBcIlBvdcW+w610IHZlcnppIEFuZ3VsYXJcIixcbiAgICBib290c3RyYXA6IFwiUHJvIGZyYW1ld29yayBib290c3RyYXBcIixcbiAgICBkYXJrYmx1ZTogXCJUbWF2xJttb2Ryw70gbW90aXZcIixcbiAgICBkYXJrcm9zZTogXCJUbWF2xJtyxa/Fvm92w70gbW90aXZcIixcbiAgICBkZWZhdWx0OiBcIlbDvWNob3rDrSBtb3RpdlwiLFxuICAgIGpxdWVyeTogXCJQb3XFvsOtdCB2ZXJ6aSBqUXVlcnlcIixcbiAgICBrbm9ja291dDogXCJQb3XFvsOtdCB2ZXJ6aSBLbm9ja291dFwiLFxuICAgIGxvYWRGcm9tU2VydmVyOiBcIk5hxI3DrXN0IHByxa96a3VtIEpTT04gemUgc2VydmVydVwiLFxuICAgIG1vZGVybjogXCJNb2Rlcm7DrSBtb3RpdlwiLFxuICAgIG9yYW5nZTogXCJPcmFuxb5vdsO9IG1vdGl2XCIsXG4gICAgcmVhY3Q6IFwiUG91xb7DrXQgdmVyemkgUmVhY3RcIixcbiAgICBzaG93SW5XaW5kb3c6IFwiWm9icmF6aXQgcHLFr3prdW0gdiBva27Em1wiLFxuICAgIHNob3dPblBhZ2U6IFwiWm9icmF6aXQgcHLFr3prdW0gbmEgc3Ryw6FuY2VcIixcbiAgICBzdG9uZTogXCJLYW1lbm7DvSBtb3RpdlwiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIixcbiAgICB0aXRsZVNjcmlwdDogXCJTa3JpcHR5IGEgc3R5bHlcIixcbiAgICB2dWU6IFwiUG91xb7DrXQgdmVyemkgVnVlXCIsXG4gICAgd2ludGVyOiBcIlppbW7DrSBtb3RpdlwiLFxuICAgIHdpbnRlcnN0b25lOiBcIlTDqW1hIHppbWEta8OhbWVuXCJcbiAgfSxcbiAgb3A6IHtcbiAgICBhbGxvZjogXCJ2xaFlY2hueVwiLFxuICAgIGFuZDogXCJhXCIsXG4gICAgYW55b2Y6IFwixb7DoWRuw70gelwiLFxuICAgIGNvbnRhaW5zOiBcIm9ic2FodWplXCIsXG4gICAgZW1wdHk6IFwiamUgcHLDoXpkbsO9XCIsXG4gICAgZXF1YWw6IFwicm92bsOhIHNlXCIsXG4gICAgZ3JlYXRlcjogXCJ2xJt0xaHDrVwiLFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBcInbEm3TFocOtIG5lYm8gc2Ugcm92bsOhXCIsXG4gICAgbGVzczogXCJuacW+xaHDrVwiLFxuICAgIGxlc3NvcmVxdWFsOiBcIm5pxb7FocOtIG5lYm8gc2Ugcm92bsOhXCIsXG4gICAgbm90Y29udGFpbnM6IFwibmVvYnNhaHVqZVwiLFxuICAgIG5vdGVtcHR5OiBcIm5lbsOtIHByw6F6ZG7DvVwiLFxuICAgIG5vdGVxdWFsOiBcIm5lcm92bsOhIHNlXCIsXG4gICAgb3I6IFwibmVib1wiXG4gIH0sXG4gIHA6IHtcbiAgICB0aXRsZToge1xuICAgICAgdGl0bGU6IFwiTmVjaHRlIHBvbGUgcHLDoXpkbsOpLCBwb2t1ZCBqZSBzdGVqbsOpIGpha28g4oCeTsOhemV24oCdXCJcbiAgICB9XG4gIH0sXG4gIHBlOiB7XG4gICAgYWNlRWRpdG9ySGVscDogXCJTdGlza251dMOtbSBrbMOhdmVzIGN0cmwrbWV6ZXJuw61rIHrDrXNrw6F0ZSBuw6Fwb3bEm2R1IGsgZG9rb27EjWVuw60gdsO9cmF6dVwiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwiQWt0dcOhbG7DrSBwYW5lbFwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcIkFrdHXDoWxuw60gxZnDoWRla1wiLFxuICAgIGFkZDogXCJQxZlpZGF0XCIsXG4gICAgYWRkQ29uZGl0aW9uOiBcIlDFmWlkYXQgcG9kbcOtbmt1XCIsXG4gICAgYWRkSXRlbTogXCJLbGlrbnV0w61tIHDFmWlkw6F0ZSBwb2xvxb5rdS4uLlwiLFxuICAgIGFkZExvZ286IFwiUMWZaWRhdCBsb2dvLi4uXCIsXG4gICAgYWRkTmV3OiBcIlDFmWlkYXQgbm92b3VcIixcbiAgICBhZGROb25lOiBcIsW9w6FkbsOpXCIsXG4gICAgYWRkT3RoZXI6IFwiT3N0YXRuw61cIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJQxZlpZGF0IHVtw61zdMSbbsOtIHRsYcSNw610a2EgxZnDoWRrdVwiLFxuICAgIGFkZFJvd1RleHQ6IFwiUMWZaWRhdCB0ZXh0IHRsYcSNw610a2EgxZnDoWRrdVwiLFxuICAgIGFkZFNlbGVjdEFsbDogXCJWeWJyYXQgdsWhZVwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiUG92b2xpdCBwxZlpZMOhbsOtIHBhbmVsdVwiLFxuICAgIGFsbG93RGlnaXRzOiBcIlBvdm9saXQgxI3DrXNsaWNlXCIsXG4gICAgYWxsb3dFbXB0eVJlc3BvbnNlOiBcIlBvdm9saXQgcHLDoXpkbm91IG9kcG92xJvEj1wiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiUG92b2xpdCBvZHN0cmFuxJtuw60gcGFuZWx1XCIsXG4gICAgYW5kOiBcIkFcIixcbiAgICBhcHBseTogXCJQb3XFvsOtdFwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIkRvc3R1cG7DqSBvdMOhemt5OlwiLFxuICAgIGJhY2s6IFwiTsOhdnJhdCBiZXogdWxvxb5lbsOtXCIsXG4gICAgYmFja1Rvb2x0aXA6IFwiTsOhdnJhdCBiZXogdWxvxb5lbsOtXCIsXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcIlZ5dHZvxZlpdFwiLFxuICAgIGNhbmNlbDogXCJacnXFoWl0XCIsXG4gICAgY2VsbHNEZWZhdWx0Um93OiBcIlbDvWNob3rDrSB0ZXh0eSBidW7Em2tcIixcbiAgICBjZWxsc0VtcHR5Um93c0NvbHVtbnM6IFwiTcSbbCBieSBleGlzdG92YXQgYWxlc3BvxYggamVkZW4gc2xvdXBlYyBuZWJvIMWZw6FkZWsuXCIsXG4gICAgY2VsbFR5cGU6IFwiVHlwIGJ1xYhreVwiLFxuICAgIGNoYW5nZUxvZ286IFwiWm3Em25pdCBsb2dvLi4uXCIsXG4gICAgY2hvaWNlc01heDogXCJNYXhpbcOhbG7DrSBob2Rub3RhIHBybyBhdXRvbWF0aWNreSBnZW5lcm92YW7DqSBwb2xvxb5reVwiLFxuICAgIGNob2ljZXNNaW46IFwiTWluaW3DoWxuw60gaG9kbm90YSBwcm8gYXV0b21hdGlja3kgZ2VuZXJvdmFuw6kgcG9sb8W+a3lcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiVnliZXJ0ZSBwb8WZYWTDrSB2b2xlYlwiLFxuICAgIGNob2ljZXNTdGVwOiBcIlJvemTDrWwgbWV6aSBhdXRvbWF0aWNreSBnZW5lcm92YW7DvW1pIHBvbG/FvmthbWlcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJWeW1hemF0IG5ldmlkaXRlbG7DqSBob2Rub3R5XCIsXG4gICAgY29sQ291bnQ6IFwiUG/EjWV0IHNsb3VwY8WvXCIsXG4gICAgY29sczogXCJQb8SNZXQgc2xvdXBjxa9cIixcbiAgICBjb2x1bW5FZGl0OiBcIlVwcmF2aXQgc2xvdXBlYzogezB9XCIsXG4gICAgY29sdW1uTGF5b3V0OiBcIlJvemxvxb5lbsOtIHNsb3VwY8WvXCIsXG4gICAgY29tcGxldGVUZXh0OiBcIsOacGxuw70gdGV4dCB0bGHEjcOtdGthXCIsXG4gICAgY29uZGl0aW9uQWN0aW9uRW1wdHk6IFwiVnliZXJ0ZSBha2NpXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFnZTogXCJWeWJlcnRlIHN0csOhbmt1Li4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFuZWw6IFwiVnliZXJ0ZSBwYW5lbC4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcIlZ5YmVydGUgb3TDoXprdS4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCJaYWRlanRlL3Z5YmVydGUgaG9kbm90dVwiLFxuICAgIGNvb2tpZU5hbWU6IFwiTsOhemV2IHNvdWJvcnUgY29va2llIChwcm8gemFrw6F6w6Fuw60gZHZvasOtaG8gbG9rw6FsbsOtaG8gc3B1xaF0xJtuw60gcHLFr3prdW11KVwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiVnl0dm/FmXRlIHNwb3XFoXTEm8SNXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlbDvWNob3rDrSBob2Rub3RhXCIsXG4gICAgZGVsZXRlOiBcIlNtYXphdFwiLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiWmFkZWp0ZSBwb3Bpc1wiLFxuICAgIGVkaXQ6IFwiVXByYXZpdFwiLFxuICAgIGVkaXRDaG9pY2VzOiBcIlVwcmF2aXQgdm9sYnlcIixcbiAgICBlZGl0RXhwcmVzc2lvbjogXCJVcHJhdml0XCIsXG4gICAgZWRpdFByb3BlcnR5OiBcIlVwcmF2aXQgdmxhc3Rub3N0IOKAnnswfeKAnFwiLFxuICAgIGVkaXRUZXh0OiBcIlRleHQgdGxhxI3DrXRrYSDDunByYXZ5XCIsXG4gICAgZW50ZXJOZXdWYWx1ZTogXCJaYWRlanRlIGhvZG5vdHUuXCIsXG4gICAgZXhwYW5kQ29sbGFwc2VUaXRsZTogXCJSb3piYWxpdC9zYmFsaXQgbsOhemV2XCIsXG4gICAgZXhwcmVzc2lvbjogXCJWw71yYXpcIixcbiAgICBleHByZXNzaW9uSGVscDogXCJQcm8gcMWZw61zdHVwIGsgaG9kbm90w6FtIG90w6F6ZWsgbcWvxb5ldGUgcG91xb7DrXQgc2xvxb5lbsOpIHrDoXZvcmt5OiB7b3TDoXprYTF9ICsge290w6F6a2EyfSwgKHtjZW5hfSp7bW5vxb5zdHbDrX0pICogKDEwMCAtIHtzbGV2YX0pLiBNxa/FvmV0ZSBwb3XFvsOtdCBmdW5rY2UgamFrbzogaWlmKCksIHRvZGF5KCksIGFnZSgpLCBtaW4oKSwgbWF4KCksIGNvdW50KCksIGF2ZygpIGEgZGFsxaHDrS5cIixcbiAgICBleHByZXNzaW9uSXNFbXB0eTogXCJWw71yYXogamUgcHLDoXpkbsO9XCIsXG4gICAgZmFzdEVudHJ5OiBcIlJ5Y2hsw70gdnN0dXBcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiUHJ2bsOtIHN0csOhbmthIHByxa96a3VtdSBqZSDDunZvZG7DrSBzdHLDoW5rYS5cIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiWmFtxJvFmXRlIHNlIG5hIHBydm7DrSBvdMOhemt1IHTDvWthasOtY8OtIHNlIHptxJtueSBzdHLDoW5reVwiLFxuICAgIGZvcm1FbnRyeTogXCJWc3R1cG7DrSBmb3JtdWzDocWZXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCJQbyB6b2Rwb3bEm3plbsOtIHbFoWVjaCBvdMOhemVrIGF1dG9tYXRpY2t5IHDFmWVqw610IG5hIGRhbMWhw60gc3Ryw6Fua3VcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiTmVtw6Egxb7DoWRub3UgcG9sb8W+a3VcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIk3DoSBqaW5vdSBwb2xvxb5rdVwiLFxuICAgIGhhc1NlbGVjdEFsbDogXCJWeWJyYWwvYSB2xaFlY2hueSBwb2xvxb5reVwiLFxuICAgIGh0bWw6IFwiSFRNTFwiLFxuICAgIGltYWdlSGVpZ2h0OiBcIlbDvcWha2Egb2Jyw6F6a3VcIixcbiAgICBpbWFnZUxpbms6IFwiT2RrYXogbmEgb2Jyw6F6ZWtcIixcbiAgICBpbWFnZVdpZHRoOiBcIsWgw63FmWthIG9icsOhemt1XCIsXG4gICAgaW5wdXRUeXBlOiBcIlR5cCB2c3R1cHVcIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIlBvxb5hZG92YXQgb2Rwb3bEm8SPIHBybyB2xaFlY2hueSDFmcOhZGt5XCIsXG4gICAgaXNSZXF1aXJlZDogXCJKZSB2ecW+YWRvdmFuw70/XCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIlpvYnJheml0IHbFoWVjaG55IHBydmt5IG5hIGplZG7DqSBzdHLDoW5jZVwiLFxuICAgIGl0ZW1FZGl0OiBcIlVwcmF2aXQgcG9sb8W+a3U6IHswfVwiLFxuICAgIGl0ZW1zOiBcIlsgUG9sb8W+a3k6IHswfSBdXCIsXG4gICAgaXRlbVNlbGVjdG9yRW1wdHk6IFwiVnliZXJ0ZSBwcnZla1wiLFxuICAgIGl0ZW1WaWV3OiBcIlpvYnJheml0IHBvbG/Fvmt1OiB7MH1cIixcbiAgICBrZXlib2FyZEFkb3JuZXJUaXA6IFwiU3Rpc2tudXTDrW0ga2zDoXZlc3kgZW50ZXIgdXByYXbDrXRlIHBvbG/Fvmt1LCBzdGlza251dMOtbSBrbMOhdmVzeSBkZWxldGUgcG9sb8W+a3Ugb2RzdHJhbsOtdGUsIHN0aXNrbnV0w61tIGtsw6F2ZXN5IGFsdCBwbHVzIMWhaXBreSBuYWhvcnUgbmVibyDFoWlwa3kgZG9sxa8gcG9sb8W+a3UgcMWZZXN1bmV0ZS5cIixcbiAgICBrZXlib2FyZE1vdmVJdGVtc1RpcDogXCJTdGlza251dMOtbSBrbMOhdmVzeSBhbHQgYSDFoWlwa3kgbmFob3J1IG5lYm8gxaFpcGt5IGRvbMWvIHDFmWVzdW5ldGUgcG9sb8W+a3VcIixcbiAgICBsYW5kc2NhcGVPcmllbnRhdGlvbjogXCJOYSDFocOtxZlrdVwiLFxuICAgIGxpc3RJc0VtcHR5OiBcIlDFmWlkYXQgbm92b3UgcG9sb8W+a3VcIixcbiAgICBsb2NhbGU6IFwiVsO9Y2hvesOtIGphenlrXCIsXG4gICAgbG9nb1Bvc2l0aW9uOiBcIlBvemljZSBsb2dhXCIsXG4gICAgbG9nb1Bvc2l0aW9uczoge1xuICAgICAgYm90dG9tOiBcIkRvbGVcIixcbiAgICAgIGxlZnQ6IFwiVmxldm9cIixcbiAgICAgIG5vbmU6IFwiT2RzdHJhbml0IGxvZ29cIixcbiAgICAgIHJpZ2h0OiBcIlZwcmF2b1wiLFxuICAgICAgdG9wOiBcIk5haG/FmWVcIlxuICAgIH0sXG4gICAgbWF4Q291bnQ6IFwiTWF4aW3DoWxuw60gcG/EjWV0XCIsXG4gICAgbWF4TGVuZ3RoOiBcIk1heGltw6FsbsOtIGTDqWxrYVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJQb3BpcyBtYXhpbcOhbG7DrSBzYXpieVwiLFxuICAgIG1heFNpemU6IFwiTWF4aW3DoWxuw60gdmVsaWtvc3Qgc291Ym9ydSB2IGJhanRlY2hcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiTWF4aW3DoWxuw60gZG9iYSBwcm8gZG9rb27EjWVuw60gcHLFr3prdW11XCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJNYXhpbcOhbG7DrSBkb2JhIHBybyBkb2tvbsSNZW7DrSBzdHLDoW5reSB2IHByxa96a3VtdVwiLFxuICAgIG1heFZhbHVlOiBcIk1heGltw6FsbsOtIGhvZG5vdGFcIixcbiAgICBtaW5Db3VudDogXCJNaW5pbcOhbG7DrSBwb8SNZXRcIixcbiAgICBtaW5MZW5ndGg6IFwiTWluaW3DoWxuw60gZMOpbGthXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIlBvcGlzIG1pbmltw6FsbsOtIGZyZWt2ZW5jZVwiLFxuICAgIG1pblZhbHVlOiBcIk1pbmltw6FsbsOtIGhvZG5vdGFcIixcbiAgICBtb2RlOiBcIlJlxb5pbSAocG91emUgcHJvIMO6cHJhdnkvxI10ZW7DrSlcIixcbiAgICBtb3ZlOiBcIlDFmWVzdW5vdXRcIixcbiAgICBuYW1lOiBcIk7DoXpldlwiLFxuICAgIG5vRmlsZTogXCJOZWJ5bCB2eWJyw6FuIMW+w6FkbsO9IHNvdWJvclwiLFxuICAgIG5vbmVUZXh0OiBcIsW9w6FkbsO9IHRleHQgcG9sb8W+a3lcIixcbiAgICBub3F1ZXN0aW9uczogXCJWIHByxa96a3VtdSBuZW7DrSDFvsOhZG7DoSBvdMOhemthLlwiLFxuICAgIG9rOiBcIk9LXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiUG9waXNlayBtb8W+bm9zdMOtXCIsXG4gICAgb3I6IFwiTmVib1wiLFxuICAgIG90aGVyVGV4dDogXCJEYWzFocOtIHRleHQgcG9sb8W+a3lcIixcbiAgICBwYWdlRGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJaYWRlanRlIHBvcGlzIHN0csOhbmt5XCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIlRleHQgdGxhxI3DrXRrYSBkYWzFocOtIHN0csOhbmt5XCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIlRleHQgdGxhxI3DrXRrYSBwxZllZGNob3rDrSBzdHLDoW5reVwiLFxuICAgIHBhZ2VUaXRsZVBsYWNlaG9sZGVyOiBcIlNlbSB6YWRlanRlIG7DoXpldiBzdHLDoW5reVwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJQxZlpZMOhdsOhbsOtIHRleHR1IG5hIHBhbmVsXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIk9kc3RyYcWIb3bDoW7DrSB0ZXh0dSBwYW5lbHVcIixcbiAgICBwYXRoOiBcIkNlc3RhXCIsXG4gICAgcGxhY2Vob2xkZXI6IFwiVnN0dXBuw60gesOhc3R1cG7DvSBzeW1ib2xcIixcbiAgICBwcmV2aWV3VGV4dDogXCJUZXh0IHRsYcSNw610a2EgbsOhaGxlZHVcIixcbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwiWmFkZWp0ZSBob2Rub3R1XCIsXG4gICAgcHJvcGVydHlJc05vVW5pcXVlOiBcIlphZGVqdGUgamVkaW5lxI1ub3UgaG9kbm90dVwiLFxuICAgIHByb3BlcnR5TmFtZUlzTm90VW5pcXVlOiBcIlphZGVqdGUgamVkaW5lxI1uw70gbsOhemV2XCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIlVwcmF2aXQ6IHswfVwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJVbcOtc3TEm27DrSBjaHlieSB2IG90w6F6Y2VcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJQb8WZYWTDrSBwcnZrxa8gbmEgc3Ryw6FuY2VcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiSW5kZXggemHEjcOhdGt1IG90w6F6a3kgKDEsIDIgbmVibyBBLCBhKVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJVbcOtc3TEm27DrSBuw6F6dnUgb3TDoXpreVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCLFoGFibG9uYSBuw6F6dnUgb3TDoXpreSwgdsO9Y2hvesOtIGplOiDigJ57bm99LiB7cmVxdWlyZX0ge3RpdGxlfeKAnFwiLFxuICAgIHJhdGVNYXg6IFwiTWF4aW3DoWxuw60gZnJla3ZlbmNlXCIsXG4gICAgcmF0ZU1pbjogXCJNaW5pbcOhbG7DrSBmcmVrdmVuY2VcIixcbiAgICByYXRlU3RlcDogXCJLcm9rIGZyZWt2ZW5jZVwiLFxuICAgIHJlZnJlc2g6IFwiT2Jub3ZpdFwiLFxuICAgIHJlZ2V4OiBcIlByYXZpZGVsbsO9IHbDvXJhelwiLFxuICAgIHJlbW92ZTogXCJPZGVicmF0XCIsXG4gICAgcmVtb3ZlQWxsOiBcIk9kc3RyYW5pdCB2xaFlXCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJPZGVicmF0IHRleHQgdGxhxI3DrXRrYSDFmcOhZGt1XCIsXG4gICAgcmVuZGVyTW9kZTogXCJSZcW+aW0gdnlrcmVzbG92w6Fuw61cIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJQb8W+YWRvdmFuw70gdGV4dCBjaHlieVwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJQb8W+YWRvdmFuw6kgc3ltYm9seSBvdMOhemt5XCIsXG4gICAgcmVzZXQ6IFwiUmVzZXRvdmF0XCIsXG4gICAgcm93Q291bnQ6IFwiUG/EjWV0IMWZw6Fka8WvXCIsXG4gICAgcm93aWQ6IFwiSUQgxZlhZHlcIixcbiAgICByb3dzOiBcIlBvxI1ldCDFmcOhZGvFr1wiLFxuICAgIHNhdmU6IFwiVWxvxb5pdFwiLFxuICAgIHNhdmVBbmRCYWNrOiBcIlVsb8W+aXQgYSB2csOhdGl0XCIsXG4gICAgc2F2ZUFuZEJhY2tUb29sdGlwOiBcIlVsb8W+aXQgYSB2csOhdGl0XCIsXG4gICAgc2F2ZVRvb2x0aXA6IFwiVWxvxb5pdFwiLFxuICAgIHNlbGVjdEFsbFRleHQ6IFwiVnliZXJ0ZSB2ZcWha2Vyw70gdGV4dCBwb2xvxb5reVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIk9kZXNsw6Fuw60gdsO9c2xlZGvFryBwcsWvemt1bXUgbmEgZGFsxaHDrSBzdHJhbsSbXCIsXG4gICAgc2hvd0Nob2ljZXM6IFwiWm9icmF6aXQgdm9sYnlcIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCJab2JyYXplbsOtIGRva29uxI1lbsOpIHN0csOhbmt5IG5hIGtvbmNpIChjb21wbGV0ZWRIdG1sKVwiLFxuICAgIHNob3dNb3JlOiBcIkRhbMWhw60gcG9kcm9ibm9zdGkgbmFsZXpuZXRlIHYgZG9rdW1lbnRhY2lcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwiWm9icmF6aXQgbmF2aWdhxI1uw60gdGxhxI3DrXRrYSAodsO9Y2hvesOtIG5hdmlnYWNlKVwiLFxuICAgIHNob3dPcHRpb25zQ2FwdGlvbjogXCJab2JyYXppdCBwb3Bpc2VrIG1vxb5ub3N0w61cIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwiWm9icmF6aXQgxI3DrXNsYSBzdHLDoW5la1wiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIlpvYnJheml0IG7DoXp2eSBzdHLDoW5la1wiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIlpvYnJheml0IHDFmWVkY2hvesOtIHRsYcSNw610a28gKHXFvml2YXRlbCBzZSBtxa/FvmUgdnLDoXRpdCBuYSBwxZllZGNob3rDrSBzdHLDoW5rdSlcIixcbiAgICBzaG93UHJldmlldzogXCJab2JyYXppdCBvYmxhc3QgbsOhaGxlZHVcIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwiWm9icmF6aXQgdWthemF0ZWwgcHLFr2LEm2h1XCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJab2JyYXppdCDEjcOtc2xhIG90w6F6ZWtcIixcbiAgICBzaG93VGltZXJQYW5lbDogXCJab2JyYXppdCBwYW5lbCDEjWFzb3ZhxI1lXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIlpvYnJheml0IHJlxb5pbSBwYW5lbHUgxI1hc292YcSNZVwiLFxuICAgIHNob3dUaXRsZTogXCJab2JyYXppdC9za3LDvXQgbsOhemV2XCIsXG4gICAgc2ltdWxhdG9yOiBcIlZ5YnJhdCB6YcWZw616ZW7DrVwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJUZXh0IHRsYcSNw610a2EgemFow6FqZW7DrVwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiWmHEjcOhdGVrIHMgbm92w71tIMWZw6Fka2VtP1wiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJVbG/Fvml0IG9ic2FoIHNvdWJvcnUgdmUgdsO9c2xlZGt1IEpTT04gamFrbyB0ZXh0XCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiVWxvxb5lbsOtIGhvZG5vdHkg4oCeb3RoZXJz4oCcIGRvIHNhbW9zdGF0bsOpaG8gcG9sZVwiLFxuICAgIHN1cnZleURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiWmFkZWp0ZSBwb3BpcyBwcsWvemt1bXVcIixcbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCJVcHJhdml0IG5hc3RhdmVuw60gcHLFr3prdW11XCIsXG4gICAgc3VydmV5VGl0bGVQbGFjZWhvbGRlcjogXCJTZW0gemFkZWp0ZSBuw6F6ZXYgcHLFr3prdW11XCIsXG4gICAgdGFiczoge1xuICAgICAgY2FsY3VsYXRlZFZhbHVlczogXCJWeXBvxI3DrXRhbsOpIGhvZG5vdHlcIixcbiAgICAgIGNlbGxzOiBcIkJ1xYhreVwiLFxuICAgICAgY2hvaWNlczogXCJWb2xieVwiLFxuICAgICAgY2hvaWNlc0J5VXJsOiBcIlZvbGJ5IHogd2VidVwiLFxuICAgICAgY29sdW1uczogXCJTbG91cGNlXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sOiBcIkRva29uxI1lbsOpIEhUTUxcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJEb2tvbsSNZW5vIEhUTUwgbmEgcG9kbcOtbmt1XCIsXG4gICAgICBkYXRhOiBcIkRhdGFcIixcbiAgICAgIGVuYWJsZUlmOiBcIlBvdm9sZW7DqSwgcG9rdWRcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIk1vxb5ub3N0aVwiLFxuICAgICAgZ2VuZXJhbDogXCJPYmVjbsOpXCIsXG4gICAgICBodG1sOiBcIkVkaXRvciBIVE1MXCIsXG4gICAgICBpdGVtczogXCJQb2xvxb5reVwiLFxuICAgICAgbGF5b3V0OiBcIlJvemxvxb5lbsOtXCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCJOYcSNw610w6Fuw60gSFRNTFwiLFxuICAgICAgbG9naWM6IFwiTG9naWthXCIsXG4gICAgICBsb2dvOiBcIkxvZ28gdiBuw6F6dnUgcHLFr3prdW11XCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIlbDvWNob3rDrSB2b2xieVwiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwiVGV4dG92w6kgdnN0dXB5XCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcIk5hdmlnYWNlXCIsXG4gICAgICBudW1iZXJpbmc6IFwixIzDrXNsb3bDoW7DrVwiLFxuICAgICAgb3RoZXJzOiBcIk9zdGF0bsOtXCIsXG4gICAgICBwYWdlczogXCJTdHLDoW5reVwiLFxuICAgICAgcXVlc3Rpb246IFwiT3TDoXprYVwiLFxuICAgICAgcmF0ZVZhbHVlczogXCJIb2Rub3R5IHNhemViXCIsXG4gICAgICByZXF1aXJlZElmOiBcIlZ5xb5hZG92YW7DqSwgcG9rdWRcIixcbiAgICAgIHJvd3M6IFwixZjDoWRreVwiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcIlpvYnJheml0IG5hIHN0csOhbmNlIERva29uxI1lbm9cIixcbiAgICAgIHNsaWRlcjogXCJQb3N1dm7DrWtcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiTsOhemV2IMWhYWJsb255XCIsXG4gICAgICB0aW1lcjogXCLEjGFzb3ZhxI0va3bDrXpcIixcbiAgICAgIHRvdGFsczogXCJTb3XEjXR5XCIsXG4gICAgICB0cmlnZ2VyczogXCJTcG91xaF0xJvEjWVcIixcbiAgICAgIHZhbGlkYXRpb246IFwiT3bEm8WZb3bDoW7DrVwiLFxuICAgICAgdmFsaWRhdG9yczogXCJWYWxpZMOhdG9yeVwiLFxuICAgICAgdmlzaWJsZUlmOiBcIlZpZGl0ZWxuw6ksIHBva3VkXCJcbiAgICB9LFxuICAgIHRlc3RTZXJ2aWNlOiBcIlRlc3RvdsOhbsOtIHNsdcW+YnlcIixcbiAgICB0ZXh0OiBcIlRleHRcIixcbiAgICB0aXRsZTogXCJUaXR1bFwiLFxuICAgIHRpdGxlS2V5Ym9hcmRBZG9ybmVyVGlwOiBcIlphZGVqdGUgdGxhxI3DrXRrbyBrIMO6cHJhdsSbXCIsXG4gICAgdGl0bGVOYW1lOiBcIk7DoXpldiB0aXR1bHVcIixcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiBcIlNlbSB6YWRlanRlIG7DoXpldlwiLFxuICAgIHRvdGFsQ3VycmVuY3k6IFwiQ2Vsa292w6EgbcSbbmFcIixcbiAgICB0b3RhbERpc3BsYXlTdHlsZTogXCJDZWxrb3bDvSBzdHlsIHpvYnJhemVuw61cIixcbiAgICB0b3RhbEV4cHJlc3Npb246IFwiQ2Vsa292w70gdsO9cmF6XCIsXG4gICAgdG90YWxGb3JtYXQ6IFwiQ2Vsa292w70gZm9ybcOhdFwiLFxuICAgIHRvdGFsVGV4dDogXCJDZWxrb3bDvSB0ZXh0XCIsXG4gICAgdG90YWxUeXBlOiBcIkNlbGtvdsO9IHR5cFwiLFxuICAgIHRyaWdnZXJDb21wbGV0ZVRleHQ6IFwiVnlwbMWIdGUgcHLFr3prdW0sIHBva3VkIHNlIHbDoW0gdG8gcG9kYcWZw60uXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIlprb3DDrXJvdmF0IGhvZG5vdHUgejogXCIsXG4gICAgdHJpZ2dlckdvdG9OYW1lOiBcIlDFmWVqw610IG5hIG90w6F6a3U6XCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwiTmV2a2zDoWRlanRlIHByb23Em25ub3UgZG8gdsO9c2xlZGt1IHByxa96a3VtdS5cIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCJab2JyYXppdCBzdHLDoW5reTpcIixcbiAgICB0cmlnZ2VyTWFrZVF1ZXN0aW9uc1Zpc2libGU6IFwiWm9icmF6aXQgcHJ2a3k6XCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCJTcG91xaF0xJvEjSBuZW7DrSBuYXN0YXZlblwiLFxuICAgIHRyaWdnZXJPbjogXCJaYXBub3V0IFwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcIlNwdXN0aXQgdGVudG8gdsO9cmF6OlwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uRW1wdHk6IFwiWmFkZWp0ZSBwbGF0bsO9IHbDvXJhelwiLFxuICAgIHRyaWdnZXJSdW5JZjogXCJTcHVzdGl0LCBwb2t1ZFwiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwiWm3Em25pdCBob2Rub3R1OiBcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwiZG86IFwiLFxuICAgIHVybDogXCJVUkxcIixcbiAgICB2YWx1ZTogXCJIb2Rub3RhXCIsXG4gICAgdmFsdWVOYW1lOiBcIk7DoXpldiBob2Rub3R5XCIsXG4gICAgdmlldzogXCJab2JyYXppdFwiLFxuICAgIHZpc2libGU6IFwiSmUgdmlkaXRlbG7DvT9cIlxuICB9LFxuICBwdjoge1xuICAgIGFsbDogXCJ2xaFlXCIsXG4gICAgYXNjOiBcInZ6ZXN0dXBuw71cIixcbiAgICBib3RoOiBcIm9ixJtcIixcbiAgICBib3R0b206IFwiZG9sZVwiLFxuICAgIGJ1dHRvbnM6IFwidGxhxI3DrXRrYVwiLFxuICAgIGNvbGxhcHNlZDogXCJzYmFsZW7DvVwiLFxuICAgIGNvbG9yOiBcImJhcnZhXCIsXG4gICAgY29ycmVjdFF1ZXN0aW9uczogXCJzcHLDoXZuw6kgb3TDoXpreVwiLFxuICAgIGN1cnJlbmN5OiBcIm3Em25hXCIsXG4gICAgZGF0ZTogXCJkYXR1bVwiLFxuICAgIGRhdGV0aW1lOiBcImRhdHVtxI1hc1wiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCJkYXR1bcSNYXMtbcOtc3Ruw61cIixcbiAgICBkZWNpbWFsOiBcImRlc2V0aW5uw6kgxI3DrXNsb1wiLFxuICAgIGRlZmF1bHQ6IFwidsO9Y2hvesOtXCIsXG4gICAgZGVzYzogXCJzZXN0dXBuw71cIixcbiAgICBkaXNwbGF5OiBcInpvYnJheml0XCIsXG4gICAgZWRpdDogXCJ1cHJhdml0XCIsXG4gICAgZW1haWw6IFwiZS1tYWlsXCIsXG4gICAgZXhwYW5kZWQ6IFwicm96YmFsZW7DvVwiLFxuICAgIGZhbHNlOiBcIm5lcHJhdmRpdsOpXCIsXG4gICAgZmlyc3RFeHBhbmRlZDogXCJmaXJzdEV4cGFuZGVkXCIsXG4gICAgaGlkZGVuOiBcInNrcnl0w71cIixcbiAgICBoaWRlOiBcInNrcsO9dFwiLFxuICAgIGhvcml6b250YWw6IFwiaG9yaXpvbnTDoWxuw61cIixcbiAgICBpbmRldGVybWluYXRlOiBcIm5ldXLEjWl0w71cIixcbiAgICBpbmhlcml0OiBcInpkxJtkaXRcIixcbiAgICBpbml0aWFsOiBcIsO6dm9kbsOtXCIsXG4gICAgbGVmdDogXCJ2bGV2b1wiLFxuICAgIGxpc3Q6IFwic2V6bmFtXCIsXG4gICAgbW9udGg6IFwibcSbc8OtY1wiLFxuICAgIG5vbmU6IFwixb7DoWRuw71cIixcbiAgICBub1ByZXZpZXc6IFwiYmV6IG7DoWhsZWR1XCIsXG4gICAgbnVtYmVyOiBcIsSNw61zbG9cIixcbiAgICBvZmY6IFwidnlwbm91dFwiLFxuICAgIG9uOiBcInphcG5vdXRcIixcbiAgICBvbkNvbXBsZXRlOiBcIm9uQ29tcGxldGVcIixcbiAgICBvbkhpZGRlbjogXCJvbkhpZGRlblwiLFxuICAgIG9uTmV4dFBhZ2U6IFwib25OZXh0UGFnZVwiLFxuICAgIG9uUGFnZTogXCJvblBhZ2VcIixcbiAgICBvblBhbmVsOiBcIm9uUGFuZWxcIixcbiAgICBvblN1cnZleTogXCJvblN1cnZleVwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcIm9uVmFsdWVDaGFuZ2VkXCIsXG4gICAgcGFnZTogXCJzdHLDoW5rYVwiLFxuICAgIHBhZ2VzOiBcInN0csOhbmt5XCIsXG4gICAgcGFzc3dvcmQ6IFwiaGVzbG9cIixcbiAgICBwZXJjZW50OiBcInByb2NlbnRhXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwicHJvZ3Jlc3NCb3R0b21cIixcbiAgICBwcm9ncmVzc1RvcDogXCJwcm9ncmVzc1RvcFwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcInByb2dyZXNzVG9wQm90dG9tXCIsXG4gICAgcXVlc3Rpb25QZXJQYWdlOiBcIm90w6F6a2EgbmEgc3Ryw6Fua3VcIixcbiAgICBxdWVzdGlvbnM6IFwib3TDoXpreVwiLFxuICAgIHJhbmRvbTogXCJuw6Fob2Ruw71cIixcbiAgICByYW5nZTogXCJyb3pzYWhcIixcbiAgICByZXF1aXJlZFF1ZXN0aW9uczogXCJwb3Zpbm7DqSBvdMOhemt5XCIsXG4gICAgc2hvdzogXCJ6b2JyYXppdFwiLFxuICAgIHNob3dBbGxRdWVzdGlvbnM6IFwiem9icmF6aXQgbsOhaGxlZCBzZSB2xaFlbWkgb3TDoXprYW1pXCIsXG4gICAgc2hvd0Fuc3dlcmVkUXVlc3Rpb25zOiBcInpvYnJheml0IG7DoWhsZWQgc2Ugem9kcG92xJt6ZW7DvW1pIG90w6F6a2FtaVwiLFxuICAgIHNpbmdsZVBhZ2U6IFwiamVkbmEgc3Ryw6Fua2FcIixcbiAgICBzdGFuZGFyZDogXCJzdGFuZGFyZG7DrVwiLFxuICAgIHN1cnZleTogXCJwcsWvemt1bVwiLFxuICAgIHRlbDogXCJ0ZWxcIixcbiAgICB0ZXh0OiBcInRleHRcIixcbiAgICB0aW1lOiBcIsSNYXNcIixcbiAgICB0b3A6IFwibmFob8WZZVwiLFxuICAgIHRvcEJvdHRvbTogXCJuYWhvxZllIGEgZG9sZVwiLFxuICAgIHRydWU6IFwicHJhdmRpdsOpXCIsXG4gICAgdW5kZXJJbnB1dDogXCJwb2QgdnN0dXBlbVwiLFxuICAgIHVuZGVyVGl0bGU6IFwicG9kIG5hZHBpc2VtXCIsXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHZlcnRpY2FsOiBcInZlcnRpa8OhbG7DrVwiLFxuICAgIHdlZWs6IFwidMO9ZGVuXCJcbiAgfSxcbiAgcXQ6IHtcbiAgICBib29sZWFuOiBcIkJvb2xlYW5cIixcbiAgICBjaGVja2JveDogXCJaYcWha3J0w6F2YWPDrSBwb2xlXCIsXG4gICAgY29tbWVudDogXCJLb21lbnTDocWZXCIsXG4gICAgZGVmYXVsdDogXCJWw71jaG96w61cIixcbiAgICBkcm9wZG93bjogXCJSb3piYWxvdmFjw60gbmFiw61ka2FcIixcbiAgICBleHByZXNzaW9uOiBcIlbDvXJheiAocG91emUgcHJvIMSNdGVuw60pXCIsXG4gICAgZmlsZTogXCJTb3Vib3JcIixcbiAgICBmbG93cGFuZWw6IFwiUGFuZWwgcHLFr2LEm2h1XCIsXG4gICAgaHRtbDogXCJIVE1MXCIsXG4gICAgaW1hZ2U6IFwiT2Jyw6F6ZWtcIixcbiAgICBpbWFnZXBpY2tlcjogXCJOw6FzdHJvaiBwcm8gdsO9YsSbciBvYnLDoXprdVwiLFxuICAgIG1hdHJpeDogXCJNYXRyaXggKGplZG5hIHZvbGJhKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIk1hdHJpeCAodsO9YsSbciB6IHbDrWNlIG1vxb5ub3N0w60pXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCJNYXRpY2UgKGR5bmFtaWNrw6kgxZnDoWRreSlcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwiVsOtY2UgdGV4dMWvXCIsXG4gICAgcGFuZWw6IFwiUGFuZWxcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwiUGFuZWwgKGR5bmFtaWNrw6kgcGFuZWx5KVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwiUmFkaW9ncm91cFwiLFxuICAgIHJhbmtpbmc6IFwiUG/FmWFkw61cIixcbiAgICByYXRpbmc6IFwiSG9kbm9jZW7DrVwiLFxuICAgIHNpZ25hdHVyZXBhZDogXCJQb2RwaXNvdsOhIHBvZGxvxb5rYVwiLFxuICAgIHRleHQ6IFwiSmVkZW4gdnN0dXBcIlxuICB9LFxuICBzdXJ2ZXk6IHtcbiAgICBhZGRMb2dpY0l0ZW06IFwiVnl0dm/FmXRlIHByYXZpZGxvIHBybyBwxZlpenDFr3NvYmVuw60gcHLFr2LEm2h1IHByxa96a3VtdS5cIixcbiAgICBhZGRUb1Rvb2xib3g6IFwiUMWZaWRhdCBkbyBzYWR5IG7DoXN0cm9qxa9cIixcbiAgICBjb252ZXJ0VG86IFwiUMWZZXbDqXN0IG5hXCIsXG4gICAgY29weTogXCJLb3DDrXJvdmF0XCIsXG4gICAgZGVsZXRlUGFuZWw6IFwiT2RzdHJhbml0IHBhbmVsXCIsXG4gICAgZGVsZXRlUXVlc3Rpb246IFwiT2RzdHJhbml0IG90w6F6a3VcIixcbiAgICBkcmFnOiBcIlDFmWV0w6Fobm91dCBwcnZla1wiLFxuICAgIGRyb3BRdWVzdGlvbjogXCJTZW0gbmFwacWhdGUgb3TDoXprdSB6ZSBzYWR5IG7DoXN0cm9qxa8uXCIsXG4gICAgZHVwbGljYXRlOiBcIkR1cGxpa292YXRcIixcbiAgICBlZGl0OiBcIlVwcmF2aXRcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rOiBcIlBvZMOtdmVqdGUgc2UgYSBuYXXEjXRlIHNlIHZ5dHbDocWZZXQgcHLFr3prdW15XCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDogXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSDJydTlva0ljb29OWmZwSWJ5cTRxUT92aWV3X2FzPXN1YnNjcmliZXJcIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJkb2tvbsSNaXQgcHLFr3prdW1cIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcInprb3DDrXJvdmF0IGhvZG5vdHVcIixcbiAgICBydW5leHByZXNzaW9udHJpZ2dlcjogXCJzcHVzdGl0IHbDvXJhelwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCJuYXN0YXZpdCBob2Rub3R1XCIsXG4gICAgc2tpcHRyaWdnZXI6IFwicMWZZXNrb8SNaXQgbmEgb3TDoXprdVwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcInptxJtuaXQgdmlkaXRlbG5vc3QgKHphc3RhcmFsw6kpXCJcbiAgfSxcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcIlZ5YmVydGUgc3Ryw6Fua3UgYSBvdGVzdHVqdGUgamk6XCIsXG4gICAgc2hvd0ludmlzaWJsZUVsZW1lbnRzOiBcIlpvYnJheml0IG5ldmlkaXRlbG7DqSBwcnZreVwiXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCJwb8SNZXQgb2Rwb3bEm2TDrVwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcImUtbWFpbFwiLFxuICAgIGV4cHJlc3Npb252YWxpZGF0b3I6IFwidsO9cmF6XCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCLEjcOtc2VsbsOpXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwicmVnZXhcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRleHRcIlxuICB9XG59O1xuXG5lZGl0b3JMb2NhbGl6YXRpb24ubG9jYWxlc1tcImNzXCJdID0gY3pTdHJpbmdzO1xuIiwiaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG5leHBvcnQgdmFyIGRhbmlzaFN0cmluZ3MgPSB7XG4gIC8vc3VydmV5IHRlbXBsYXRlc1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcIlJlZGlnZXJcIixcbiAgICBkcm9wUXVlc3Rpb246IFwiVHLDpmsgZXQgc3DDuHJnc23DpWwgaGVydGlsIGZyYSBwYWxldHRlbiB0aWwgdmVuc3RyZS5cIixcbiAgICBjb3B5OiBcIktvcGllclwiLFxuICAgIGFkZFRvVG9vbGJveDogXCJUaWxmw7hqIHRpbCBwYWxldHRlblwiLFxuICAgIGRlbGV0ZVBhbmVsOiBcIlNsZXQgcGFuZWxcIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCJTbGV0IHNww7hyZ3Ntw6VsXCIsXG4gICAgY29udmVydFRvOiBcIktvbnZlcnRlciB0aWxcIixcbiAgICBkcmFnOiBcIlRyw6ZrIGVsZW1lbnRcIlxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIlN0YW5kYXJkXCIsXG4gICAgY2hlY2tib3g6IFwiQWZrcnlkc25pbmdzZmVsdFwiLFxuICAgIGNvbW1lbnQ6IFwiS29tbWVudGFyXCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwiQmlsbGVkdsOmbGdlclwiLFxuICAgIGRyb3Bkb3duOiBcIkRyb3Bkb3duXCIsXG4gICAgZmlsZTogXCJGaWxcIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBtYXRyaXg6IFwiTWF0cmljZSAow6l0IHZhbGcpXCIsXG4gICAgbWF0cml4ZHJvcGRvd246IFwiTWF0cmljZSAoZmxlcmUgdmFsZylcIixcbiAgICBtYXRyaXhkeW5hbWljOiBcIk1hdHJpY2UgKGR5bmFtaXNrZSByw6Zra2VyKVwiLFxuICAgIG11bHRpcGxldGV4dDogXCJGbGVyZSB0ZWtzdGZlbHRlclwiLFxuICAgIHBhbmVsOiBcIlBhbmVsXCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIlBhbmVsIChkeW5hbWlza2UgcGFuZWxlcilcIixcbiAgICByYWRpb2dyb3VwOiBcIkFsdGVybmF0aXZrbmFwXCIsXG4gICAgcmF0aW5nOiBcIlZ1cmRlcmluZ1wiLFxuICAgIHRleHQ6IFwiVGVrc3RmZWx0XCIsXG4gICAgYm9vbGVhbjogXCJTYW5kdC9mYWxza1wiLFxuICAgIGV4cHJlc3Npb246IFwiVWR0cnlrXCJcbiAgfSxcbiAgLy9TdHJpbmdzIGluIEVkaXRvclxuICBlZDoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwiU3RhbmRhcmQgKHswfSlcIixcbiAgICBzdXJ2ZXk6IFwiVW5kZXJzw7hnZWxzZVwiLFxuICAgIHNldHRpbmdzOiBcIkluZHN0aWxsaW5nZXIgZm9yIHVuZGVyc8O4Z2Vsc2VcIixcbiAgICBlZGl0U3VydmV5OiBcIlJlZGlnZXIgdW5kZXJzw7hnZWxzZVwiLFxuICAgIGFkZE5ld1BhZ2U6IFwiVGlsZsO4aiBueSBzaWRlXCIsXG4gICAgbW92ZVJpZ2h0OiBcIkfDpSB0aWwgaMO4anJlXCIsXG4gICAgbW92ZUxlZnQ6IFwiR8OlIHRpbCB2ZW5zdHJlXCIsXG4gICAgZGVsZXRlUGFnZTogXCJTbGV0IHNpZGVcIixcbiAgICBlZGl0UGFnZTogXCJSZWRpZ2VyIHNpZGVcIixcbiAgICBlZGl0OiBcIlJlZGlnZXJcIixcbiAgICBuZXdQYWdlTmFtZTogXCJzaWRlXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcInNww7hyZ3Ntw6VsXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBhbmVsXCIsXG4gICAgdGVzdFN1cnZleTogXCJBZnByw7h2IHVuZGVyc8O4Z2Vsc2VcIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwiQWZwcsO4diB1bmRlcnPDuGdlbHNlIGlnZW5cIixcbiAgICB0ZXN0U3VydmV5V2lkdGg6IFwiQnJlZGRlIGFmIHVuZGVyc8O4Z2Vsc2U6IFwiLFxuICAgIGVtYmVkU3VydmV5OiBcIkluZGxlanIgdW5kZXJzw7hnZWxzZVwiLFxuICAgIHRyYW5zbGF0aW9uOiBcIk92ZXJzw6Z0dGVsc2VcIixcbiAgICBzYXZlU3VydmV5OiBcIkdlbSB1bmRlcnPDuGdlbHNlXCIsXG4gICAgZGVzaWduZXI6IFwiVW5kZXJzw7hnZWxzZXNkZXNpZ25lclwiLFxuICAgIGpzb25FZGl0b3I6IFwiSlNPTiBFZGl0b3JcIixcbiAgICB1bmRvOiBcIkZvcnRyeWRcIixcbiAgICByZWRvOiBcIkFubnVsbGVyIGZvcnRyeWRcIixcbiAgICBvcHRpb25zOiBcIkluZHN0aWxsaW5nZXJcIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCJHZW5lcmVyIGd5bGRpbmcgSlNPTlwiLFxuICAgIGdlbmVyYXRlUmVhZGFibGVKU09OOiBcIkdlbmVyZXIgbMOmc2JhciBKU09OXCIsXG4gICAgdG9vbGJveDogXCJWw6Zya3TDuGpza2Fzc2VcIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcIkdlbmVyZWx0XCIsXG4gICAgZGVsU2VsT2JqZWN0OiBcIlNsZXQgdmFsZ3Qgb2JqZWt0XCIsXG4gICAgZWRpdFNlbE9iamVjdDogXCJSZWRpZ2VyIHZhbGd0IG9iamVrdFwiLFxuICAgIGNvcnJlY3RKU09OOiBcIlJldCB2ZW5saWdzdCBKU09OLlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwiVW5kZXJzw7hnZWxzZXNyZXN1bHRhdDogXCIsXG4gICAgbW9kaWZpZWQ6IFwiw4ZuZHJldFwiLFxuICAgIHNhdmluZzogXCJHZW1tZXJcIixcbiAgICBzYXZlZDogXCJHZW10XCIsXG4gICAgc2F2ZUVycm9yOiBcIkZlamwhIFVuZGVyc8O4Z2Vsc2VuIGVyIGlra2UgYmxldmV0IGdlbXQuXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCJWw6ZsZyBldCBzcHJvZyBhdCBvdmVyc8OmdHRlXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsU3RyaW5nczogXCJWaXMgYWxsZSB0ZWtzdHN0cmVuZ2VcIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxQYWdlczogXCJWaXMgYWxsZSBzaWRlclwiLFxuICAgIHRyYW5zbGF0aW9uTm9TdHJpbmdzOiBcIkluZ2VuIHRla3N0c3RyZW5nZSBhdCBvdmVyc8OmdHRlLiBSZXQgZmlsdGVyZXQuXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCJFa3Nwb3J0ZXIgdGlsIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJJbXBvcnRlciBmcmEgQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25NZXJnZUxvY2FsZVdpdGhEZWZhdWx0OiBcIkZsZXQgezB9IG1lZCBzdGFuZGFyZHNwcm9nXCJcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBuYW1lcyBpbiB0YWJsZSBoZWFkZXJzXG4gIHBlbDoge1xuICAgIGlzUmVxdWlyZWQ6IFwiUMOla3LDpnZldD9cIlxuICB9LFxuICAvL1Byb3BlcnR5IEVkaXRvcnNcbiAgcGU6IHtcbiAgICBhcHBseTogXCJBbnZlbmRcIixcbiAgICBvazogXCJPS1wiLFxuICAgIGNhbmNlbDogXCJBbm51bGxlclwiLFxuICAgIHJlc2V0OiBcIk51bHN0aWxcIixcbiAgICBjbG9zZTogXCJMdWtcIixcbiAgICBkZWxldGU6IFwiU2xldFwiLFxuICAgIGFkZE5ldzogXCJUaWxmw7hqIG55XCIsXG4gICAgYWRkSXRlbTogXCJLbGlrIGZvciBhdCB0aWxmw7hqZS4uLlwiLFxuICAgIHJlbW92ZUFsbDogXCJGamVybiBhbGxlXCIsXG4gICAgZWRpdDogXCJSZWRpZ2VyXCIsXG4gICAgaXRlbVZhbHVlRWRpdDogXCJTeW5saWcgaHZpc1wiLFxuICAgIGVkaXRDaG9pY2VzOiBcIlJlZGlnZXIgdmFsZ211bGlnaGVkZXJcIixcbiAgICBtb3ZlOiBcIkZseXRcIixcbiAgICBlbXB0eTogXCI8dG9tPlwiLFxuICAgIG5vdEVtcHR5OiBcIjxyZWRpZ8OpciB2w6ZyZGk+XCIsXG4gICAgZmFzdEVudHJ5OiBcIkZhc3QgRW50cnlcIixcbiAgICBmb3JtRW50cnk6IFwiRm9ybSBFbnRyeVwiLFxuICAgIHRlc3RTZXJ2aWNlOiBcIlRlc3QgdGhlIHNlcnZpY2VcIixcbiAgICBjb25kaXRpb25TZWxlY3RRdWVzdGlvbjogXCJWw6ZsZyBzcMO4cmdzbcOlbC4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCJJbmR0YXN0L3bDpmxnIHbDpnJkaVwiLFxuICAgIGNvbmRpdGlvbkJ1dHRvbkFkZDogXCJUaWxmw7hqXCIsXG4gICAgY29uZGl0aW9uQnV0dG9uUmVwbGFjZTogXCJFcnN0YXRcIixcbiAgICBjb25kaXRpb25IZWxwOlxuICAgICAgXCJJbmR0YXN0IGV0IGJvb2xzayB1ZHRyeWsuIERldCBza2FsIHJldHVybmVyZSB0cnVlIGZvciBhdCBob2xkZSBzcMO4cmdzbcOlbGV0L3NpZGVuIHN5bmxpZy4gRm9yIGVrc2VtcGVsOiB7cXVlc3Rpb24xfSA9ICd2YWx1ZTEnIG9yICh7cXVlc3Rpb24yfSAqIHtxdWVzdGlvbjR9ICA+IDIwIGFuZCB7cXVlc3Rpb24zfSA8IDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcIkluZHRhc3QgZXQgdWR0cnlrLiBEdSBrYW4gYnJ1Z2Uga3LDuGxsZS1wYXJlbnRlc2VyIGZvciBhdCBmw6UgYWRnYW5nIHRpbCBzdmFyZW5lOiAne3F1ZXN0aW9uMX0gKyB7cXVlc3Rpb24yfScsICcoe3ByaWNlfSp7cXVhbnRpdHl9KSAqICgxMDAgLSB7ZGlzY291bnR9KSdcIixcbiAgICBhY2VFZGl0b3JIZWxwOiBcIlRhc3QgY3RybCtzcGFjZSBmb3IgaGrDpmxwIHRpbCBhdCBhZnNsdXR0ZSB1ZHRyeWtrZXRcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCJBa3R1ZWwgcsOma2tlXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCJBa3R1ZWx0IHBhbmVsXCIsXG4gICAgc2hvd01vcmU6IFwiU2UgZG9rdW1lbnRhdGlvbmVuIGZvciBmbGVyZSBpbmZvcm1hdGlvbmVyXCIsXG4gICAgY29uZGl0aW9uU2hvd01vcmVVcmw6XG4gICAgICBcImh0dHBzOi8vc3VydmV5anMuaW8vRG9jdW1lbnRhdGlvbi9MaWJyYXJ5UGFyYW1ldGVyP2lkPVF1ZXN0aW9uJnBhcmFtZXRlcj12aXNpYmxlSWZcIixcbiAgICBhc3Npc3RhbnRUaXRsZTogXCJUaWxnw6ZuZ2VsaWdlIHNww7hyZ3Ntw6VsOlwiLFxuICAgIGNlbGxzRW1wdHlSb3dzQ29sdW1uczogXCJEZXIgc2thbCB2w6ZyZSBtaW5kc3Qgw6luIGtvbG9ubmUgZWxsZXIgcsOma2tlXCIsXG5cbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwiSW5kdGFzdCBlbiB2w6ZyZGlcIixcbiAgICB2YWx1ZTogXCJWw6ZyZGlcIixcbiAgICB0ZXh0OiBcIlRla3N0XCIsXG4gICAgcm93aWQ6IFwiUsOma2tlIElEXCIsXG4gICAgaW1hZ2VMaW5rOiBcIkJpbGxlZGxpbmtcIixcbiAgICBjb2x1bW5FZGl0OiBcIlJlZGlnZXIga29sb25uZTogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwiUmVkaWfDqXI6IHswfVwiLFxuXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHBhdGg6IFwiU3RpXCIsXG4gICAgdmFsdWVOYW1lOiBcIlbDpnJkaWVucyBuYXZuXCIsXG4gICAgdGl0bGVOYW1lOiBcIlRpdGVsbmF2blwiLFxuXG4gICAgc2hvd090aGVySXRlbTogXCJIYXIgYW5kZXQgZWxlbWVudFwiLFxuICAgIG90aGVyVGV4dDogXCJBbmRldCBlbGVtZW50IHRla3N0XCIsXG4gICAgbmFtZTogXCJOYXZuXCIsXG4gICAgdGl0bGU6IFwiVGl0ZWxcIixcbiAgICBjZWxsVHlwZTogXCJDZWxsZXR5cGVcIixcbiAgICBjb2xDb3VudDogXCJBbnRhbCBrb2xvbm5lclwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJWw6ZsZyByw6Zra2Vmw7hsZ2UgcMOlIHZhbGdcIixcbiAgICB2aXNpYmxlOiBcIkVyIHN5bmxpZz9cIixcbiAgICBpc1JlcXVpcmVkOiBcIkVyIHDDpWtyw6Z2ZXQ/XCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCJTa2FsIHN0YXJ0ZSBtZWQgbnkgbGluaWU/XCIsXG4gICAgcm93czogXCJBbnRhbCByw6Zra2VyXCIsXG4gICAgcGxhY2Vob2xkZXI6IFwiSGludC10ZWtzdFwiLFxuICAgIHNob3dQcmV2aWV3OiBcIlZpc2VzIGZvcmjDpW5kc3Zpc25pbmcgYWYgYmlsbGVkZXI/XCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIkdlbSBmaWxpbmRob2xkIGkgSlNPTi1yZXN1bHRhdCBzb20gdGVrc3RcIixcbiAgICBtYXhTaXplOiBcIk1ha3NpbWFsIGZpbHN0w7hycmVsc2UgaSBieXRlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkJpbGxlZGjDuGpkZVwiLFxuICAgIGltYWdlV2lkdGg6IFwiQmlsbGVkYnJlZGRlXCIsXG4gICAgcm93Q291bnQ6IFwiQW50YWwgcsOma2tlclwiLFxuICAgIGNvbHVtbkxheW91dDogXCJLb2xvbm5lbGF5b3V0XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiVGlsZsO4aiByw6Zra2Uga25hcHBsYWNlcmluZ1wiLFxuICAgIGFkZFJvd1RleHQ6IFwiVGlsZsO4aiByw6Zra2Uga25hcHRla3N0XCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJGamVybiByw6Zra2Uga25hcHRla3N0XCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIkJlc2tyaXYgbGF2ZXN0ZSB2dXJkZXJpbmdcIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwiQmVza3JpdiBow7hqZXN0ZSB2dXJkZXJpbmdcIixcbiAgICBpbnB1dFR5cGU6IFwiSW5wdXR0eXBlXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiTXVsaWdoZWRlciB0ZWtzdFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJTdGFuZGFyZHbDpnJkaVwiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJTdGFuZGFyZCBjZWxsZXRla3N0XCIsXG5cbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCJSZWRpZ2VyIHVuZGVyc8O4Z2Vsc2VzaW5kc3RpbGxpbmdlclwiLFxuICAgIHFFZGl0b3JUaXRsZTogXCJSZWRpZ8OpcjogezB9XCIsXG5cbiAgICBtYXhMZW5ndGg6IFwiTWF4aW1hbCBsw6ZuZ2RlXCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCJWaXMvc2tqdWwgdGl0ZWxcIixcbiAgICBsb2NhbGU6IFwiU3RhbmRhcmRzcHJvZ1wiLFxuICAgIG1vZGU6IFwiTW9kZSAocmVkaWdlci9za3JpdmViZXNreXR0ZXQpXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiRmplcm4gdXN5bmxpZ2UgdsOmcmRpZXJcIixcbiAgICBjb29raWVOYW1lOiBcIkNvb2tpZW5hdm4gKGZvciBhdCB1bmRnw6UgYXQgYWZ2aWtsZSB1bmRlcnPDuGdlbHNlbiB0byBnYW5nZSBsb2thbHQpXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiU2VuZCB1bmRlcnPDuGdlbHNlc3Jlc3VsdGF0ZXQgdmVkIG7DpnN0ZSBzaWRlXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiR2VtICdvdGhlcnMnIHbDpnJkaWVuIGkgZXQgc2VwZXJhdCBmZWx0XCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiVmlzIHNpZGV0aXRsZXJcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwiVmlzIHNpZGVudW1yZVwiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCJGb3JyaWdlIHNpZGUga25hcHRla3N0XCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIk7DpnN0ZSBzaWRlIGtuYXB0ZWtzdFwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJGw6ZyZGlnIGtuYXB0ZWtzdFwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJTdGFydCBrbmFwdGVrc3RcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwiVmlzIG5hdmlnYXRpb25za25hcHBlciAoc3RhbmRhcmQgbmF2aWdhdGlvbilcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJWaXMgZm9ycmlnZSBrbmFwIChicnVnZXJlbiBtw6UgZ8OlIHRpbGJhZ2UgdGlsIGZvcnJpZ2Ugc2lkZSlcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiRGVuIGbDuHJzdGUgc2lkZSBpbiB1bmRlcnPDuGdlbHNlbiBlciBzdGFydGVuIHDDpSB1bmRlcnPDuGdlbHNlbi5cIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCJWaXMgYWZzbHV0bmluZ3NzaWRlbiB0aWwgc2x1dCAoY29tcGxldGVkSHRtbClcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOlxuICAgICAgXCJHw6UgdGlsIG7DpnN0ZSBzaWRlIGF1dG9tYXRpc2sgbsOlciBhbGxlIHNww7hyZ3Ntw6VsIGVyIGJlc3ZhcmV0XCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIlZpcyBmcmVtZHJpZnRzbGluamVcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwiU3DDuHJnc23DpWxzdGl0ZWwgcGxhY2VyaW5nXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlDDpWtyw6Z2ZXQgc3DDuHJnc23DpWxzc3ltYm9sKGVyKVwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCJTcMO4cmdzbcOlbCBzdGFydGluZGV4ICgxLCAyIGVsbGVyICdBJywgJ2EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiVmlzIHNww7hyZ3Ntw6Vsc251bXJlXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOlxuICAgICAgXCJTcMO4cmdzbcOlbHN0aXRlbCB0ZW1wbGF0ZSwgc3RhbmRhcmQgZXI6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiU3DDuHJnc23DpWxzZmVqbCBwbGFjZXJpbmdcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiRm9rdXPDqXIgZsO4cnN0ZSBzcMO4cmdzbcOlbCB2ZWQgc2lkZXNraWZ0XCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiUsOma2tlZsO4bGdlIGFmIHNww7hyZ3Ntw6VsIHDDpSBzaWRlblwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJNYXhpbWFsIHRpZCB0aWwgYXQgZ2VubmVtZsO4cmUgdW5kZXJzw7hnZWxzZW5cIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIk1heGltYWwgdGlkIHRpbCBhdCBnZW5uZW1mw7hyZSBlbiBzaWRlIGkgdW5kZXJzw7hnZWxzZW5cIixcbiAgICBzaG93VGltZXJQYW5lbDogXCJWaXMgdGlkc3BhbmVsXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIlZpcyB0aWRzcGFuZWwgdGlsc3RhbmRcIixcbiAgICByZW5kZXJNb2RlOiBcIlJlbmRlcmluZ3N0aWxzdGFuZFwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiVGlsbGFkIGF0IHRpbGbDuGplIGV0IHBhbmVsXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJUaWxsYWQgYXQgZmplcm5lIGV0IHBhbmVsXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIlRpbGbDuGogcGFuZWwgdGVrc3RcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwiRmplcm4gcGFuZWwgdGVrc3RcIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiVmlzIGFsbGUgZWxlbWVudGVyIHDDpSDDqW4gc2lkZVwiLFxuXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCJHZW5lcmVsdFwiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwiSW5kc3RpbGxpbmdlclwiLFxuICAgICAgaHRtbDogXCJIdG1sLWVkaXRvclwiLFxuICAgICAgY29sdW1uczogXCJLb2xvbm5lclwiLFxuICAgICAgcm93czogXCJSw6Zra2VyXCIsXG4gICAgICBjaG9pY2VzOiBcIlZhbGdtdWxpZ2hlZGVyXCIsXG4gICAgICBpdGVtczogXCJFbGVtZW50ZXJcIixcbiAgICAgIHZpc2libGVJZjogXCJTeW5saWcgaHZpc1wiLFxuICAgICAgZW5hYmxlSWY6IFwiQWt0aXYgaHZpc1wiLFxuICAgICAgcmF0ZVZhbHVlczogXCJCZWTDuG0tdsOmcmRpZXJcIixcbiAgICAgIGNob2ljZXNCeVVybDogXCJWYWxnbXVsaWdoZWRlciBmcmEgV2ViXCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIlN0YW5kYXJkIHZhbGdtdWxpZ2hlZGVyXCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCJUZWtzdCBpbnB1dG11bGlnaGVkZXJcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwiVmFsaWRlcmluZ2VyXCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcIk5hdmlnYXRpb25cIixcbiAgICAgIHF1ZXN0aW9uOiBcIlNww7hyZ3Ntw6VsXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sOiBcIkbDpnJkaWcgSHRtbFwiLFxuICAgICAgbG9hZGluZ0h0bWw6IFwiSW5kbMOmc2VyIEh0bWxcIixcbiAgICAgIHRpbWVyOiBcIlRpZC9RdWl6XCIsXG4gICAgICB0cmlnZ2VyczogXCJUcmlnZ2VyZVwiLFxuICAgICAgdGVtcGxhdGVUaXRsZTogXCJTa2FiZWxvbiB0aXRlbFwiXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwiUmVkaWdlciBlZ2Vuc2thYiAnezB9J1wiLFxuICAgIGl0ZW1zOiBcIlsgRWxlbWVudDogezB9IF1cIixcblxuICAgIGVudGVyTmV3VmFsdWU6IFwiSW5kdGFzdCB2w6ZyZGllbi5cIixcbiAgICBub3F1ZXN0aW9uczogXCJEZXIgZXIgaW5nZW4gc3DDuHJnc23DpWwgaSB1bmRlcnPDuGdlbHNlbi5cIixcbiAgICBjcmVhdGV0cmlnZ2VyOiBcIk9wcmV0IGVuIHRyaWdnZXJcIixcbiAgICB0cmlnZ2VyT246IFwiUMOlIFwiLFxuICAgIHRyaWdnZXJNYWtlUGFnZXNWaXNpYmxlOiBcIkfDuHIgc2lkZXIgc3lubGlnZTpcIixcbiAgICB0cmlnZ2VyTWFrZVF1ZXN0aW9uc1Zpc2libGU6IFwiR8O4ciBzcMO4cmdzbcOlbCBzeW5saWdlOlwiLFxuICAgIHRyaWdnZXJDb21wbGV0ZVRleHQ6IFwiQWZsc2x1dCBzcMO4cmdlc2tlbWEgdmVkIGF0IGZvcnRzw6Z0dGUuXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCJUcmlnZ2VyZXIgZXIgaWtrZSBzYXRcIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiQWZ2aWtsIGh2aXNcIixcbiAgICB0cmlnZ2VyU2V0VG9OYW1lOiBcIsOGbmRyIHbDpnJkaWVuIGFmOiBcIixcbiAgICB0cmlnZ2VyRnJvbU5hbWU6IFwiS29waWVyIHbDpnJkaSBmcmE6IFwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcIkFmdmlrbCBkZXR0ZSB1ZHRyeWs6XCIsXG4gICAgdHJpZ2dlclNldFZhbHVlOiBcInRpbDogXCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwiR2VtIGlra2UgdmFyaWFibGVuIGkgdW5kZXJzw7hnZWxzZXNyZXN1bHRhdGV0LlwiXG4gIH0sXG4gIC8vUHJvcGVydHkgdmFsdWVzXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCJ0cnVlXCIsXG4gICAgZmFsc2U6IFwiZmFsc2VcIixcbiAgICBpbmhlcml0OiBcImluaGVyaXRcIixcbiAgICBzaG93OiBcInNob3dcIixcbiAgICBoaWRlOiBcImhpZGVcIixcbiAgICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgICBpbml0aWFsOiBcImluaXRpYWxcIixcbiAgICByYW5kb206IFwicmFuZG9tXCIsXG4gICAgY29sbGFwc2VkOiBcImNvbGxhcHNlZFwiLFxuICAgIGV4cGFuZGVkOiBcImV4cGFuZGVkXCIsXG4gICAgbm9uZTogXCJub25lXCIsXG4gICAgYXNjOiBcImFzY2VuZGluZ1wiLFxuICAgIGRlc2M6IFwiZGVzY2VuZGluZ1wiLFxuICAgIGluZGV0ZXJtaW5hdGU6IFwiaW5kZXRlcm1pbmF0ZVwiLFxuICAgIGRlY2ltYWw6IFwiZGVjaW1hbFwiLFxuICAgIGN1cnJlbmN5OiBcImN1cnJlbmN5XCIsXG4gICAgcGVyY2VudDogXCJwZXJjZW50XCIsXG4gICAgZmlyc3RFeHBhbmRlZDogXCJmaXJzdEV4cGFuZGVkXCIsXG4gICAgb2ZmOiBcIm9mZlwiLFxuICAgIG9uUGFuZWw6IFwib25QYW5lbFwiLFxuICAgIG9uU3VydmV5OiBcIm9uU3VydmV5XCIsXG4gICAgbGlzdDogXCJsaXN0XCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwicHJvZ3Jlc3NUb3BcIixcbiAgICBwcm9ncmVzc0JvdHRvbTogXCJwcm9ncmVzc0JvdHRvbVwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcInByb2dyZXNzVG9wQm90dG9tXCIsXG4gICAgaG9yaXpvbnRhbDogXCJob3Jpem9udGFsXCIsXG4gICAgdmVydGljYWw6IFwidmVydGljYWxcIixcbiAgICB0b3A6IFwidG9wXCIsXG4gICAgYm90dG9tOiBcImJvdHRvbVwiLFxuICAgIHRvcEJvdHRvbTogXCJ0b3AgYW5kIGJvdHRvbVwiLFxuICAgIGxlZnQ6IFwibGVmdFwiLFxuICAgIGNvbG9yOiBcImNvbG9yXCIsXG4gICAgZGF0ZTogXCJkYXRlXCIsXG4gICAgZGF0ZXRpbWU6IFwiZGF0ZXRpbWVcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwiZGF0ZXRpbWUtbG9jYWxcIixcbiAgICBlbWFpbDogXCJlbWFpbFwiLFxuICAgIG1vbnRoOiBcIm1vbnRoXCIsXG4gICAgbnVtYmVyOiBcIm51bWJlclwiLFxuICAgIHBhc3N3b3JkOiBcInBhc3N3b3JkXCIsXG4gICAgcmFuZ2U6IFwicmFuZ2VcIixcbiAgICB0ZWw6IFwidGVsXCIsXG4gICAgdGV4dDogXCJ0ZXh0XCIsXG4gICAgdGltZTogXCJ0aW1lXCIsXG4gICAgdXJsOiBcInVybFwiLFxuICAgIHdlZWs6IFwid2Vla1wiLFxuICAgIGhpZGRlbjogXCJoaWRkZW5cIixcbiAgICBvbjogXCJvblwiLFxuICAgIG9uUGFnZTogXCJvblBhZ2VcIixcbiAgICBlZGl0OiBcImVkaXRcIixcbiAgICBkaXNwbGF5OiBcImRpc3BsYXlcIixcbiAgICBvbkNvbXBsZXRlOiBcIm9uQ29tcGxldGVcIixcbiAgICBvbkhpZGRlbjogXCJvbkhpZGRlblwiLFxuICAgIGFsbDogXCJhbGxcIixcbiAgICBwYWdlOiBcInBhZ2VcIixcbiAgICBzdXJ2ZXk6IFwic3VydmV5XCIsXG4gICAgb25OZXh0UGFnZTogXCJvbk5leHRQYWdlXCIsXG4gICAgb25WYWx1ZUNoYW5nZWQ6IFwib25WYWx1ZUNoYW5nZWRcIlxuICB9LFxuICAvL09wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcImlzIGVtcHR5XCIsXG4gICAgbm90ZW1wdHk6IFwiaXMgbm90IGVtcHR5XCIsXG4gICAgZXF1YWw6IFwiZXF1YWxzXCIsXG4gICAgbm90ZXF1YWw6IFwibm90IGVxdWFsc1wiLFxuICAgIGNvbnRhaW5zOiBcImNvbnRhaW5zXCIsXG4gICAgbm90Y29udGFpbnM6IFwibm90IGNvbnRhaW5zXCIsXG4gICAgZ3JlYXRlcjogXCJncmVhdGVyXCIsXG4gICAgbGVzczogXCJsZXNzXCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwiZ3JlYXRlciBvciBlcXVhbHNcIixcbiAgICBsZXNzb3JlcXVhbDogXCJsZXNzIG9yIGVxdWFsc1wiXG4gIH0sXG4gIC8vRW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCJCZW55dCBBbmd1bGFyIHZlcnNpb25cIixcbiAgICBqcXVlcnk6IFwiQmVueXQgalF1ZXJ5IHZlcnNpb25cIixcbiAgICBrbm9ja291dDogXCJCZW55dCBLbm9ja291dCB2ZXJzaW9uXCIsXG4gICAgcmVhY3Q6IFwiQmVueXQgUmVhY3QgdmVyc2lvblwiLFxuICAgIHZ1ZTogXCJCZW55dCBWdWUgdmVyc2lvblwiLFxuICAgIGJvb3RzdHJhcDogXCJGb3IgYm9vdHN0cmFwIGZyYW1ld29ya1wiLFxuICAgIHN0YW5kYXJkOiBcIkluZ2VuIGJvb3RzdHJhcFwiLFxuICAgIHNob3dPblBhZ2U6IFwiVmlzIHVuZGVyc8O4Z2Vsc2VuIHDDpSBlbiBzaWRlXCIsXG4gICAgc2hvd0luV2luZG93OiBcIlZpcyB1bmRlcnPDuGdlbHNlbiBpIGV0IHZpbmR1ZVwiLFxuICAgIGxvYWRGcm9tU2VydmVyOiBcIkhlbnQgdW5kZXJzw7hnZWxzZW4gc29tIEpTT04gZnJhIHNlcnZlcmVuXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU2NyaXB0cyBvZyBzdHlsZXNcIixcbiAgICB0aXRsZUh0bWw6IFwiSFRNTFwiLFxuICAgIHRpdGxlSmF2YVNjcmlwdDogXCJKYXZhU2NyaXB0XCJcbiAgfSxcbiAgLy9UZXN0IFN1cnZleVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwiVsOmbGcgc2lkZW4gZm9yIGF0IHRlc3RlIGRlbjpcIlxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwiYW5zd2VyIGNvdW50XCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwiZS1tYWlsXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCJleHByZXNzaW9uXCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCJudW1lcmljXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwicmVnZXhcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRleHRcIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJ1bmRlcnPDuGdlbHNlIGdlbm5lbWbDuHJ0XCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcInPDpnQgdsOmcmRpXCIsXG4gICAgY29weXZhbHVldHJpZ2dlcjogXCJrb3Bpw6lyIHbDpnJkaVwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcImFmdmlrbCB1ZHRyeVwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcInNraWZ0IHN5bmxpZ2hlZFwiXG4gIH0sXG4gIC8vUHJvcGVydGllc1xuICBwOiB7XG4gICAgbmFtZTogXCJuYXZuXCIsXG4gICAgdGl0bGU6IHtcbiAgICAgIG5hbWU6IFwidGl0ZWxcIixcbiAgICAgIHRpdGxlOiBcIkxhZCBkZW4gdsOmcmUgdG9tIGh2aXMgZGV0IGVyIGRldCBzYW1tZSBzb20gJ05hdm4nXCJcbiAgICB9LFxuXG4gICAgbmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5OiBcIm5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eVwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcInF1ZXN0aW9uc09yZGVyXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIm1heFRpbWVUb0ZpbmlzaFwiLFxuXG4gICAgdmlzaWJsZTogXCJ2aXNpYmxlXCIsXG4gICAgdmlzaWJsZUlmOiBcInZpc2libGVJZlwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJxdWVzdGlvblRpdGxlTG9jYXRpb25cIixcbiAgICBkZXNjcmlwdGlvbjogXCJkZXNjcmlwdGlvblwiLFxuICAgIHN0YXRlOiBcInN0YXRlXCIsXG4gICAgaXNSZXF1aXJlZDogXCJpc1JlcXVpcmVkXCIsXG4gICAgaW5kZW50OiBcImluZGVudFwiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OiBcInJlcXVpcmVkRXJyb3JUZXh0XCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCJzdGFydFdpdGhOZXdMaW5lXCIsXG4gICAgaW5uZXJJbmRlbnQ6IFwiaW5uZXJJbmRlbnRcIixcbiAgICBwYWdlOiBcInBhZ2VcIixcblxuICAgIHdpZHRoOiBcIndpZHRoXCIsXG5cbiAgICBjb21tZW50VGV4dDogXCJjb21tZW50VGV4dFwiLFxuICAgIHZhbHVlTmFtZTogXCJ2YWx1ZU5hbWVcIixcbiAgICBlbmFibGVJZjogXCJlbmFibGVJZlwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJkZWZhdWx0VmFsdWVcIixcbiAgICBjb3JyZWN0QW5zd2VyOiBcImNvcnJlY3RBbnN3ZXJcIixcbiAgICByZWFkT25seTogXCJyZWFkT25seVwiLFxuICAgIHZhbGlkYXRvcnM6IFwidmFsaWRhdG9yc1wiLFxuICAgIHRpdGxlTG9jYXRpb246IFwidGl0bGVMb2NhdGlvblwiLFxuXG4gICAgaGFzQ29tbWVudDogXCJoYXNDb21tZW50XCIsXG4gICAgc2hvd090aGVySXRlbTogXCJoYXNPdGhlclwiLFxuICAgIGNob2ljZXM6IFwiY2hvaWNlc1wiLFxuICAgIGNob2ljZXNPcmRlcjogXCJjaG9pY2VzT3JkZXJcIixcbiAgICBjaG9pY2VzQnlVcmw6IFwiY2hvaWNlc0J5VXJsXCIsXG4gICAgb3RoZXJUZXh0OiBcIm90aGVyVGV4dFwiLFxuICAgIG90aGVyRXJyb3JUZXh0OiBcIm90aGVyRXJyb3JUZXh0XCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwic3RvcmVPdGhlcnNBc0NvbW1lbnRcIixcblxuICAgIGxhYmVsOiBcImxhYmVsXCIsXG4gICAgc2hvd1RpdGxlOiBcInNob3dUaXRsZVwiLFxuICAgIHZhbHVlVHJ1ZTogXCJ2YWx1ZVRydWVcIixcbiAgICB2YWx1ZUZhbHNlOiBcInZhbHVlRmFsc2VcIixcblxuICAgIGNvbHM6IFwiY29sc1wiLFxuICAgIHJvd3M6IFwicm93c1wiLFxuXG4gICAgb3B0aW9uc0NhcHRpb246IFwib3B0aW9uc0NhcHRpb25cIixcblxuICAgIGV4cHJlc3Npb246IFwiZXhwcmVzc2lvblwiLFxuICAgIGZvcm1hdDogXCJmb3JtYXRcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwiZGlzcGxheVN0eWxlXCIsXG4gICAgY3VycmVuY3k6IFwiY3VycmVuY3lcIixcbiAgICB1c2VHcm91cGluZzogXCJ1c2VHcm91cGluZ1wiLFxuXG4gICAgc2hvd1ByZXZpZXc6IFwic2hvd1ByZXZpZXdcIixcbiAgICBhbGxvd011bHRpcGxlOiBcImFsbG93TXVsdGlwbGVcIixcbiAgICBpbWFnZUhlaWdodDogXCJpbWFnZUhlaWdodFwiLFxuICAgIGltYWdlV2lkdGg6IFwiaW1hZ2VXaWR0aFwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJzdG9yZURhdGFBc1RleHRcIixcbiAgICBtYXhTaXplOiBcIm1heFNpemVcIixcblxuICAgIGh0bWw6IFwiaHRtbFwiLFxuXG4gICAgY29sdW1uczogXCJjb2x1bW5zXCIsXG4gICAgY2VsbHM6IFwiY2VsbHNcIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcImlzQWxsUm93UmVxdWlyZWRcIixcblxuICAgIGhvcml6b250YWxTY3JvbGw6IFwiaG9yaXpvbnRhbFNjcm9sbFwiLFxuICAgIGNlbGxUeXBlOiBcImNlbGxUeXBlXCIsXG4gICAgY29sdW1uc0xheW91dDogXCJjb2x1bW5zTGF5b3V0XCIsXG4gICAgY29sdW1uQ29sQ291bnQ6IFwiY29sdW1uQ29sQ291bnRcIixcbiAgICBjb2x1bW5NaW5XaWR0aDogXCJjb2x1bW5NaW5XaWR0aFwiLFxuXG4gICAgcm93Q291bnQ6IFwicm93Q291bnRcIixcbiAgICBtaW5Sb3dDb3VudDogXCJtaW5Sb3dDb3VudFwiLFxuICAgIG1heFJvd0NvdW50OiBcIm1heFJvd0NvdW50XCIsXG4gICAga2V5TmFtZTogXCJrZXlOYW1lXCIsXG4gICAga2V5RHVwbGljYXRpb25FcnJvcjogXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIsXG4gICAgY29uZmlybURlbGV0ZTogXCJjb25maXJtRGVsZXRlXCIsXG4gICAgY29uZmlybURlbGV0ZVRleHQ6IFwiY29uZmlybURlbGV0ZVRleHRcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJhZGRSb3dMb2NhdGlvblwiLFxuICAgIGFkZFJvd1RleHQ6IFwiYWRkUm93VGV4dFwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwicmVtb3ZlUm93VGV4dFwiLFxuXG4gICAgaXRlbXM6IFwiaXRlbXNcIixcbiAgICBpdGVtU2l6ZTogXCJpdGVtU2l6ZVwiLFxuICAgIGNvbENvdW50OiBcImNvbENvdW50XCIsXG5cbiAgICB0ZW1wbGF0ZVRpdGxlOiBcInRlbXBsYXRlVGl0bGVcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcInRlbXBsYXRlRGVzY3JpcHRpb25cIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcImFsbG93QWRkUGFuZWxcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcImFsbG93UmVtb3ZlUGFuZWxcIixcbiAgICBwYW5lbENvdW50OiBcInBhbmVsQ291bnRcIixcbiAgICBtaW5QYW5lbENvdW50OiBcIm1pblBhbmVsQ291bnRcIixcbiAgICBtYXhQYW5lbENvdW50OiBcIm1heFBhbmVsQ291bnRcIixcbiAgICBwYW5lbHNTdGF0ZTogXCJwYW5lbHNTdGF0ZVwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJwYW5lbEFkZFRleHRcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwicGFuZWxSZW1vdmVUZXh0XCIsXG4gICAgcGFuZWxQcmV2VGV4dDogXCJwYW5lbFByZXZUZXh0XCIsXG4gICAgcGFuZWxOZXh0VGV4dDogXCJwYW5lbE5leHRUZXh0XCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJzaG93UXVlc3Rpb25OdW1iZXJzXCIsXG4gICAgc2hvd1JhbmdlSW5Qcm9ncmVzczogXCJzaG93UmFuZ2VJblByb2dyZXNzXCIsXG4gICAgcmVuZGVyTW9kZTogXCJyZW5kZXJNb2RlXCIsXG4gICAgdGVtcGxhdGVUaXRsZUxvY2F0aW9uOiBcInRlbXBsYXRlVGl0bGVMb2NhdGlvblwiLFxuXG4gICAgcmF0ZVZhbHVlczogXCJyYXRlVmFsdWVzXCIsXG4gICAgcmF0ZU1pbjogXCJyYXRlTWluXCIsXG4gICAgcmF0ZU1heDogXCJyYXRlTWF4XCIsXG4gICAgcmF0ZVN0ZXA6IFwicmF0ZVN0ZXBcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwibWluUmF0ZURlc2NyaXB0aW9uXCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcIm1heFJhdGVEZXNjcmlwdGlvblwiLFxuXG4gICAgaW5wdXRUeXBlOiBcImlucHV0VHlwZVwiLFxuICAgIHNpemU6IFwic2l6ZVwiLFxuXG4gICAgbG9jYWxlOiBcImxvY2FsZVwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCJmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWNcIixcbiAgICBjb21wbGV0ZWRIdG1sOiBcImNvbXBsZXRlZEh0bWxcIixcbiAgICBjb21wbGV0ZWRCZWZvcmVIdG1sOiBcImNvbXBsZXRlZEJlZm9yZUh0bWxcIixcbiAgICBsb2FkaW5nSHRtbDogXCJsb2FkaW5nSHRtbFwiLFxuICAgIHRyaWdnZXJzOiBcInRyaWdnZXJzXCIsXG4gICAgY29va2llTmFtZTogXCJjb29raWVOYW1lXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwic2VuZFJlc3VsdE9uUGFnZU5leHRcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwic2hvd05hdmlnYXRpb25CdXR0b25zXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwic2hvd1ByZXZCdXR0b25cIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJzaG93UGFnZVRpdGxlc1wiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcInNob3dDb21wbGV0ZWRQYWdlXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcInNob3dQYWdlTnVtYmVyc1wiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJxdWVzdGlvbkVycm9yTG9jYXRpb25cIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwic2hvd1Byb2dyZXNzQmFyXCIsXG4gICAgbW9kZTogXCJtb2RlXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCJnb05leHRQYWdlQXV0b21hdGljXCIsXG4gICAgY2hlY2tFcnJvcnNNb2RlOiBcImNoZWNrRXJyb3JzTW9kZVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcImNsZWFySW52aXNpYmxlVmFsdWVzXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcInN0YXJ0U3VydmV5VGV4dFwiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCJwYWdlUHJldlRleHRcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwicGFnZU5leHRUZXh0XCIsXG4gICAgY29tcGxldGVUZXh0OiBcImNvbXBsZXRlVGV4dFwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJyZXF1aXJlZFRleHRcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwicXVlc3Rpb25TdGFydEluZGV4XCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcInF1ZXN0aW9uVGl0bGVUZW1wbGF0ZVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCJmaXJzdFBhZ2VJc1N0YXJ0ZWRcIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiaXNTaW5nbGVQYWdlXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJtYXhUaW1lVG9GaW5pc2hQYWdlXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwic2hvd1RpbWVyUGFuZWxcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwic2hvd1RpbWVyUGFuZWxNb2RlXCIsXG5cbiAgICBkZWZhdWx0UGFuZWxWYWx1ZTogXCJkZWZhdWx0UGFuZWxWYWx1ZVwiLFxuICAgIGRlZmF1bHRSb3dWYWx1ZTogXCJkZWZhdWx0Um93VmFsdWVcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiaGFzTm9uZVwiLFxuICAgIG5vbmVUZXh0OiBcIm5vbmVUZXh0XCIsXG5cbiAgICB0ZXh0OiBcInRleHRcIixcbiAgICBtaW5WYWx1ZTogXCJtaW5pbXVtIHZhbHVlXCIsXG4gICAgbWF4VmFsdWU6IFwibWF4aW11bSB2YWx1ZVwiLFxuICAgIG1pbkxlbmd0aDogXCJtaW51bXVtIGxlbmd0aFwiLFxuICAgIG1heExlbmd0aDogXCJtYXhpbXVtIGxlbmd0aFwiLFxuICAgIGFsbG93RGlnaXRzOiBcImFsbG93IGRpZ2l0c1wiLFxuICAgIG1pbkNvdW50OiBcIm1pbnVtdW0gY291bnRcIixcbiAgICBtYXhDb3VudDogXCJtYXhpbXVtIGNvdW50XCIsXG4gICAgcmVnZXg6IFwicmVndWxhciBleHByZXNzaW9uXCJcbiAgfVxufTtcblxuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJkYVwiXSA9IGRhbmlzaFN0cmluZ3M7XG4iLCIvL1VuY29tbWVudCB0aGlzIGxpbmUgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlXG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24sIGRlZmF1bHRTdHJpbmdzIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG5leHBvcnQgdmFyIG5sU3RyaW5ncyA9IHtcbiAgLy9zdXJ2ZXkgdGVtcGxhdGVzXG4gIHN1cnZleToge1xuICAgIGVkaXQ6IFwiQmV3ZXJrXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCJCZWtpamsgZW4gbGVlciBob2UgdSBlbnF1w6p0ZXMgbWFha3RcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rVXJsOlxuICAgICAgXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSDJydTlva0ljb29OWmZwSWJ5cTRxUT92aWV3X2FzPXN1YnNjcmliZXJcIixcbiAgICBkcm9wUXVlc3Rpb246IFwiU3RlbCBoaWVyIGVlbiB2cmFhZyB2YW51aXQgZGUgVG9vbGJveC5cIixcbiAgICBhZGRMb2dpY0l0ZW06IFwiTWFhayBlZW4gcmVnZWwgb20gZGUgc3Ryb29tIHZhbiBkZSBlbnF1w6p0ZSBhYW4gdGUgcGFzc2VuLlwiLFxuICAgIGNvcHk6IFwiS29wacOrcmVuXCIsXG4gICAgYWRkVG9Ub29sYm94OiBcIlRvZXZvZWdlbiBhYW4gdG9vbGJveFwiLFxuICAgIGRlbGV0ZVBhbmVsOiBcIlBhbmVlbCB2ZXJ3aWpkZXJlblwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcIlZyYWFnIHZlcndpamRlcmVuXCIsXG4gICAgY29udmVydFRvOiBcIk9temV0dGVuIG5hYXJcIixcbiAgICBkcmFnOiBcIlNsZWVwIGVsZW1lbnRcIixcbiAgfSxcbiAgLy9xdWVzdGlvblR5cGVzXG4gIHF0OiB7XG4gICAgZGVmYXVsdDogXCJTdGFuZGFhcmRcIixcbiAgICBjaGVja2JveDogXCJTZWxlY3RpZXZha2plXCIsXG4gICAgY29tbWVudDogXCJDb21tZW50YWFyXCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwiQWZiZWVsaW5nc3ZyYWFnXCIsXG4gICAgaW1hZ2U6IFwiQWZiZWVsZGluZ1wiLFxuICAgIGRyb3Bkb3duOiBcIktldXplbGlqc3RcIixcbiAgICBmaWxlOiBcIkJlc3RhbmRzdXBsb2FkXCIsXG4gICAgaHRtbDogXCJIdG1sXCIsXG4gICAgbWF0cml4OiBcIk1hdHJpeCAoZW5rZWxlIGtldXplKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIk1hdHJpeCAobWVlcmtldXplKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0cml4IChkeW5hbWlzY2hlIHJpamVuKVwiLFxuICAgIG11bHRpcGxldGV4dDogXCJNZWVydm91ZGlnZSB0ZWtzdHZha1wiLFxuICAgIHBhbmVsOiBcIlBhbmVlbFwiLFxuICAgIHBhbmVsZHluYW1pYzogXCJQYW5lZWwgKGR5bmFtaXNjaGUgcGFuZWxlbilcIixcbiAgICByYWRpb2dyb3VwOiBcIk1lZXJrZXV6ZXZyYWFnXCIsXG4gICAgcmF0aW5nOiBcIkJlb29yZGVsaW5nXCIsXG4gICAgdGV4dDogXCJUZWtzdHZha1wiLFxuICAgIGJvb2xlYW46IFwiQm9vbGVhblwiLFxuICAgIGV4cHJlc3Npb246IFwiQmVyZWtlbmluZ1wiLFxuICAgIHNpZ25hdHVyZXBhZDogXCJIYW5kdGVrZW5pbmdcIixcbiAgICBmbG93cGFuZWw6IFwiU3Ryb29tcGFuZWVsXCIsXG4gIH0sXG4gIC8vU3RyaW5ncyBpbiBFZGl0b3JcbiAgZWQ6IHtcbiAgICBkZWZhdWx0TG9jYWxlOiBcIlN0YW5kYWFyZCAoezB9KVwiLFxuICAgIHN1cnZleTogXCJFbnF1w6p0ZVwiLFxuICAgIHNldHRpbmdzOiBcIkVucXXDqnRlLWluc3RlbGxpbmdlblwiLFxuICAgIHNldHRpbmdzVG9vbHRpcDogXCJPcGVuIGVucXXDqnRlLWluc3RlbGxpbmdlblwiLFxuICAgIC8vb3BqZWN0UHJvcGVydGllc0hlYWRlcjogXCJHZWF2YW5jZWVyZFwiLFxuICAgIC8vc2hvd09iamVjdFByb3BlcnRpZXM6IFwiT2JqZWN0ZWlnZW5zY2hhcHBlbiB3ZWVyZ2V2ZW5cIixcbiAgICAvL2hpZGVPYmplY3RQcm9wZXJ0aWVzOiBcIlZlcmJlcmcgb2JqZWN0ZWlnZW5zY2hhcHBlblwiLFxuICAgIHNob3dQYW5lbDogXCJUb29uIHBhbmVlbFwiLFxuICAgIGhpZGVQYW5lbDogXCJWZXJiZXJnIHBhbmVlbFwiLFxuICAgIC8vZWRpdFN1cnZleTogXCJFbnF1w6p0ZSBiZXdlcmtlblwiLFxuICAgIGFkZE5ld1BhZ2U6IFwiUGFnaW5hIHRvZXZvZWdlblwiLFxuICAgIG1vdmVSaWdodDogXCJTY3JvbGwgbmFhciByZWNodHNcIixcbiAgICBtb3ZlTGVmdDogXCJTY3JvbGwgbmFhciBsaW5rc1wiLFxuICAgIGRlbGV0ZVBhZ2U6IFwiUGFnaW5hIHZlcndpamRlcmVuXCIsXG4gICAgZWRpdFBhZ2U6IFwiUGFnaW5hIGFhbnBhc3NlblwiLFxuICAgIGVkaXQ6IFwiQmV3ZXJrXCIsXG4gICAgbmV3UGFnZU5hbWU6IFwiUGFnaW5hXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcIlZyYWFnXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcIlBhbmVlbFwiLFxuICAgIG5ld1RleHRJdGVtTmFtZTogXCJUZWtzdFwiLFxuICAgIHRlc3RTdXJ2ZXk6IFwiVGVzdCBkZSBlbnF1w6p0ZVwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJUZXN0IGRlIGVucXXDqnRlIG9wbmlldXdcIixcbiAgICB0ZXN0U3VydmV5V2lkdGg6IFwiT25kZXJ6b2Vrc2JyZWVkdGU6IFwiLFxuICAgIG5hdmlnYXRlVG9Nc2c6IFwiSmUgbW9lc3QgbmF2aWdlcmVuIG5hYXI6XCIsXG4gICAgbG9naWM6IFwiT25kZXJ6b2Vrc2xvZ2ljYVwiLFxuICAgIGVtYmVkU3VydmV5OiBcIkVucXXDqnRlIGluc2x1aXRlblwiLFxuICAgIHRyYW5zbGF0aW9uOiBcIlZlcnRhbGluZ1wiLFxuICAgIHNhdmVTdXJ2ZXk6IFwiRW5xdcOqdGUgb3BzbGFhblwiLFxuICAgIHNhdmVTdXJ2ZXlUb29sdGlwOiBcIkVucXXDqnRlIG9wc2xhYW5cIixcbiAgICBkZXNpZ25lcjogXCJFbnF1w6p0ZS1vbnR3ZXJwZXJcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04tZWRpdG9yXCIsXG4gICAgdW5kbzogXCJPbmdlZGFhbiBtYWtlblwiLFxuICAgIHJlZG86IFwiT3BuaWV1dyB1aXR2b2VyZW5cIixcbiAgICB1bmRvVG9vbHRpcDogXCJNYWFrIGRlIGxhYXRzdGUgd2lqemlnaW5nIG9uZ2VkYWFuXCIsXG4gICAgcmVkb1Rvb2x0aXA6IFwiVm9lciBkZSB3aWp6aWdpbmcgb3BuaWV1dyB1aXRcIixcbiAgICBjb3B5OiBcIktvcGnDq3JlblwiLFxuICAgIGN1dDogXCJCZXNub2VpaW5nXCIsXG4gICAgcGFzdGU6IFwiUGxha2tlblwiLFxuICAgIGNvcHlUb29sdGlwOiBcIktvcGllZXIgc2VsZWN0aWUgbmFhciBrbGVtYm9yZFwiLFxuICAgIGN1dFRvb2x0aXA6IFwiS25pcCBkZSBzZWxlY3RpZSBuYWFyIGhldCBrbGVtYm9yZFwiLFxuICAgIHBhc3RlVG9vbHRpcDogXCJQbGFra2VuIHZhbmFmIGtsZW1ib3JkXCIsXG4gICAgb3B0aW9uczogXCJPcHRpZXNcIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCJHZW5lcmVlciBnZWxkaWdlIEpTT05cIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJHZW5lcmVlciBsZWVzYmFyZSBKU09OXCIsXG4gICAgdG9vbGJveDogXCJHZXJlZWRzY2hhcFwiLFxuICAgIFwicHJvcGVydHktZ3JpZFwiOiBcIkVpZ2Vuc2NoYXBwZW5cIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcIkFsZ2VtZWVuXCIsXG4gICAgLy9kZWxTZWxPYmplY3Q6IFwiVmVyd2lqZGVyIGhldCBnZXNlbGVjdGVlcmRlIG9iamVjdFwiLFxuICAgIC8vZWRpdFNlbE9iamVjdDogXCJCZXdlcmsgaGV0IGdlc2VsZWN0ZWVyZGUgb2JqZWN0XCIsXG4gICAgY29ycmVjdEpTT046IFwiQ29ycmlnZWVyIEpTT04uXCIsXG4gICAgc3VydmV5UmVzdWx0czogXCJFbnF1w6p0ZXJlc3VsdGFhdDogXCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIkFscyB0YWJlbFwiLFxuICAgIHN1cnZleVJlc3VsdHNKc29uOiBcIkFscyBKU09OXCIsXG4gICAgcmVzdWx0c1RpdGxlOiBcIlZyYWFnIHRpdGVsXCIsXG4gICAgcmVzdWx0c05hbWU6IFwiVnJhYWcgbmFhbVwiLFxuICAgIHJlc3VsdHNWYWx1ZTogXCJBbnR3b29yZHdhYXJkZVwiLFxuICAgIHJlc3VsdHNEaXNwbGF5VmFsdWU6IFwiV2FhcmRlIHdlZXJnZXZlblwiLFxuICAgIG1vZGlmaWVkOiBcIkdld2lqemlnZFwiLFxuICAgIHNhdmluZzogXCJCZXNwYXJpbmdcIixcbiAgICBzYXZlZDogXCJPcGdlc2xhZ2VuXCIsXG4gICAgcHJvcGVydHlFZGl0b3JFcnJvcjogXCJGb3V0OlwiLFxuICAgIHNhdmVFcnJvcjogXCJGb3V0ISBEZSBpbmhvdWQgdmFuIGRlIGVkaXRvciB3b3JkdCBuaWV0IG9wZ2VzbGFnZW4uXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCJTZWxlY3RlZXIgZGUgdGFhbCBvbSB0ZSB2ZXJ0YWxlblwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwiVG9vbiBhbGxlIHNuYXJlblwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcIlRvb24gYWxsZSBwYWdpbmFzXCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6IFwiR2VlbiB2ZXJwbGljaHRpbmdlbiBvbSB0ZSB2ZXJ0YWxlbi4gVmVydmFuZyBhbHN0dWJsaWVmdCBoZXQgZmlsdGVyLlwiLFxuICAgIHRyYW5zbGF0aW9uRXhwb3J0VG9TQ1ZCdXR0b246IFwiRXhwb3J0ZXJlbiBuYWFyIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJJbXBvcnRlcmVuIHZhbnVpdCBDU1ZcIixcbiAgICB0cmFuc2xhdGlvbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQ6IFwiVm9lZyB7MH0gc2FtZW4gbWV0IGRlIHN0YW5kYWFyZGxhbmRpbnN0ZWxsaW5nXCIsXG4gICAgYm9sZDogXCJWZXRnZWRydWt0XCIsXG4gICAgaXRhbGljOiBcIkN1cnNpZWZcIixcbiAgICB1bmRlcmxpbmU6IFwiT25kZXJzdHJlcGVuXCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCJWcmFhZyB0b2V2b2VnZW4uLi5cIixcbiAgICBzZWxlY3RQYWdlOiBcIlNlbGVjdGVlciBwYWdpbmEuLi5cIixcbiAgICBjaG9vc2VFbGVtZW50OiBcIktpZXMgZWxlbWVudC4uLlwiLFxuICAgIC8vY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHQ6IFwiTGFhdCB6aWVuIG9mOlwiLFxuICAgIGxnOiB7XG4gICAgICBhZGROZXdJdGVtOiBcIlwiLCAvL0J5IGRlZmF1bHQgdGhlIHZhbHVlIGlzIHRha2VuIGZyb20gcGUuYWRkTmV3ICdBZGQgTmV3JywgeW91IGNhbiBzZXQgaXQgdG8gJ0FkZCBOZXcgUnVsZScgZm9yIGV4YW1wbGUuXG4gICAgICAvL0xvZ2ljIHRhYiBzdHJpbmdzXG4gICAgICBwYWdlX3Zpc2liaWxpdHlOYW1lOiBcIlBhZ2luYSB6aWNodGJhYXJoZWlkXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5TmFtZTogXCJQYW5lZWwgemljaHRiYWFyaGVpZFwiLFxuICAgICAgcGFuZWxfZW5hYmxlTmFtZTogXCJQYW5lZWwgaW5zY2hha2VsZW4vdWl0c2NoYWtlbGVuXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCJWcmFhZyB6aWNodGJhYXJoZWlkXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVOYW1lOiBcIlZyYWFnIGluc2NoYWtlbGVuL3VpdHNjaGFrZWxlblwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZU5hbWU6IFwiVnJhYWcgb3B0aW9uZWVsIHZlcmVpc3RcIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVOYW1lOiBcIlZvbGxlZGlnZSBlbnF1w6p0ZVwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZU5hbWU6IFwiU3RlbCB2cmFhZ3dhYXJkZSBpblwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVOYW1lOiBcIktvcGllZXIgZGUgdnJhYWd3YWFyZGVcIixcbiAgICAgIHRyaWdnZXJfc2tpcE5hbWU6IFwiR2EgbmFhciBkZSB2cmFhZ1wiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uTmFtZTogXCJWb2VyIGVlbiBhYW5nZXBhc3RlIGV4cHJlc3NpZSB1aXRcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbk5hbWU6IFwiQWFuZ2VwYXN0ZSAnQmVkYW5rdHBhZ2luYSctdGVrc3RcIixcblxuICAgICAgcGFnZV92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiTWFhayBkZSBwYWdpbmEgemljaHRiYWFyIHdhbm5lZXIgZGUgbG9naXNjaGUgdWl0ZHJ1a2tpbmcgdHJ1ZSByZXRvdXJuZWVydC4gSG91ZCBoZXQgYW5kZXJzIG9uemljaHRiYWFyLlwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcIk1hYWsgaGV0IHBhbmVlbCB6aWNodGJhYXIgd2FubmVlciBkZSBsb2dpc2NoZSB1aXRkcnVra2luZyB0cnVlIHJldG91cm5lZXJ0LiBIb3VkIGhldCBhbmRlcnMgb256aWNodGJhYXIuXCIsXG4gICAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJab3JnIGVydm9vciBkYXQgaGV0IHBhbmVlbCBlbiBhbGxlIGVsZW1lbnRlbiBlcmluIHdvcmRlbiBpbmdlc2NoYWtlbGQgd2FubmVlciBkZSBsb2dpc2NoZSB1aXRkcnVra2luZyB0cnVlIHJldG91cm5lZXJ0LiBIb3VkIHplIGFuZGVycyB1aXRnZXNjaGFrZWxkLlwiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcIk1hYWsgZGUgdnJhYWcgemljaHRiYWFyIHdhbm5lZXIgZGUgbG9naXNjaGUgdWl0ZHJ1a2tpbmcgdHJ1ZSByZXRvdXJuZWVydC4gSG91ZCBoZXQgYW5kZXJzIG9uemljaHRiYWFyLlwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlRGVzY3JpcHRpb246XG4gICAgICAgIFwiU2NoYWtlbCBkZSB2cmFhZyBpbiB3YW5uZWVyIGRlIGxvZ2lzY2hlIHVpdGRydWtraW5nIHRydWUgcmV0b3VybmVlcnQuIEhvdWQgaGV0IGFuZGVycyB1aXRnZXNjaGFrZWxkLlwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZURlc2NyaXB0aW9uOlxuICAgICAgICBcIlZyYWFnIHdvcmR0IHZlcmVpc3Qgd2FubmVlciBkZSBsb2dpc2NoZSB1aXRkcnVra2luZyB0cnVlIHJldG91cm5lZXJ0LlwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIldhbm5lZXIgZGUgbG9naXNjaGUgdWl0ZHJ1a2tpbmcgdHJ1ZSByZXRvdXJuZWVydCwgd29yZHQgZGUgZW5xdcOqdGUgdm9sdG9vaWQgZW4gemlldCBlZW4gZWluZGdlYnJ1aWtlciBkZSAnQmVkYW5rcGFnaW5hJy5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJXYW5uZWVyIHZyYWFnd2FhcmRlbiwgZGllIHdvcmRlbiBnZWJydWlrdCBpbiBkZSBsb2dpc2NoZSB1aXRkcnVra2luZywgd29yZGVuIGdld2lqemlnZCBlbiBkZSBsb2dpc2NoZSB1aXRkcnVra2luZyB0cnVlIHJldG91cm5lZXJ0LCB3b3JkdCBkZSB3YWFyZGUgaW5nZXN0ZWxkIG9wIGRlIGdlc2VsZWN0ZWVyZGUgdnJhYWcuXCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIldhbm5lZXIgdnJhYWd3YWFyZGVuLCBkaWUgd29yZGVuIGdlYnJ1aWt0IGluIGRlIGxvZ2lzY2hlIHVpdGRydWtraW5nLCB3b3JkZW4gZ2V3aWp6aWdkIGVuIGRlIGxvZ2lzY2hlIHVpdGRydWtraW5nIHRydWUgcmV0b3VybmVlcnQsIHdvcmR0IGRlIHdhYXJkZSB2YW4gZWVuIGdlc2VsZWN0ZWVyZGUgdnJhYWcgZ2Vrb3BpZWVyZCBuYWFyIGVlbiBhbmRlcmUgZ2VzZWxlY3RlZXJkZSB2cmFhZy5cIixcbiAgICAgIHRyaWdnZXJfc2tpcERlc2NyaXB0aW9uOlxuICAgICAgICBcIkFscyBkZSBsb2dpc2NoZSB1aXRkcnVra2luZyB0cnVlIHJldG91cm5lZXJ0LCBnYWF0IGRlIGVucXXDqnRlIG5hYXIvZm9jdXN0IGRlIGdlc2VsZWN0ZWVyZGUgdnJhYWcuXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25EZXNjcmlwdGlvbjpcbiAgICAgICAgXCJXYW5uZWVyIGRlIGxvZ2lzY2hlIGV4cHJlc3NpZSB0cnVlIHJldG91cm5lZXJ0LCB3b3JkdCBkZSBhYW5nZXBhc3RlIGV4cHJlc3NpZSB1aXRnZXZvZXJkLiBVIGt1bnQgZGl0IGV4cHJlc3NpZXJlc3VsdGFhdCBvcHRpb25lZWwgaW5zdGVsbGVuIHZvb3IgZGUgZ2VzZWxlY3RlZXJkZSB2cmFhZ1wiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwiQWxzIGRlIGxvZ2lzY2hlIHVpdGRydWtraW5nIHRydWUgcmV0b3VybmVlcnQsIHdvcmR0IGRlIHN0YW5kYWFyZHRla3N0IHZvb3IgZGUgJ0JlZGFua3BhZ2luYScgZ2V3aWp6aWdkIGluIGRlIG9wZ2VnZXZlbiB0ZWtzdC5cIixcblxuICAgICAgaXRlbUV4cHJlc3Npb25UZXh0OiBcIldhbm5lZXIgZXhwcmVzc2llOiAnezB9JyB0cnVlIHJldG91cm5lZXJ0OlwiLCAvL3swfSAtIHRoZSBleHByZXNzaW9uXG4gICAgICBwYWdlX3Zpc2liaWxpdHlUZXh0OiBcIk1hYWsgcGFnaW5hIHswfSB6aWNodGJhYXJcIiwgLy97MH0gcGFnZSBuYW1lXG4gICAgICBwYW5lbF92aXNpYmlsaXR5VGV4dDogXCJNYWFrIHBhbmVlbCB7MH0gemljaHRiYWFyXCIsIC8vezB9IHBhbmVsIG5hbWVcbiAgICAgIHBhbmVsX2VuYWJsZVRleHQ6IFwiU2NoYWtlbCBwYW5lZWwgezB9IGluXCIsIC8vezB9IHBhbmVsIG5hbWVcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlUZXh0OiBcIk1hYWsgdnJhYWcgezB9IHppY2h0YmFhclwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBxdWVzdGlvbl9lbmFibGVUZXh0OiBcIlNjaGFrZWwgdnJhYWcgezB9IGluXCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVUZXh0OiBcIlN0ZWwgdnJhYWcgezB9IHZlcnBsaWNodFwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCJFbnF1w6p0ZSB3b3JkdCB2b2x0b29pZFwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZVRleHQ6IFwiU3RlbCBkZSB2cmFhZzogezB9IHdhYXJkZSB7MX1cIiwgLy97MH0gcXVlc3Rpb24gbmFtZSwgezF9IHNldFZhbHVlXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZVRleHQ6IFwiS29waWVlciBuYWFyIHZyYWFnOiB7MH0gd2FhcmRlIHVpdCB2cmFhZyB7MX1cIiwgLy97MH0gYW5kIHsxfSBxdWVzdGlvbiBuYW1lc1xuICAgICAgdHJpZ2dlcl9za2lwVGV4dDogXCJFbnF1w6p0ZSBnYSB2ZXJkZXIgbWV0IGRlIHZyYWFnIHswfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MTogXCJVaXRkcnVra2luZyB1aXR2b2VyZW46ICd7MH0nXCIsIC8vezB9IHRoZSBleHByZXNzaW9uXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MjogXCIgZW4gc3RlbCBoZXQgcmVzdWx0YWF0IGluIHZyYWFnOiB7MH1cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uVGV4dDpcbiAgICAgICAgXCJUb29uIGFhbmdlcGFzdGUgdGVrc3Qgdm9vciBkZSAnQmVkYW5rcGFnaW5hJy5cIixcblxuICAgICAgY29uZGl0aW9uczogXCJWb29yd2FhcmQoZW4pXCIsXG4gICAgICBhY3Rpb25zOiBcIkFjdGllKHMpXCIsXG4gICAgICBleHByZXNzaW9uRWRpdG9yVGl0bGU6IFwiRGVmaW5pZWVyIGNvbmRpdGllKHMpXCIsXG4gICAgICBhY3Rpb25zRWRpdG9yVGl0bGU6IFwiRGVmaW5pZWVyIGFjdGllKHMpXCIsXG5cbiAgICAgIGRlbGV0ZUFjdGlvbjogXCJBY3RpZSB2ZXJ3aWpkZXJlblwiLFxuICAgICAgYWRkTmV3QWN0aW9uOiBcIlZvZWcgbmlldXdlIGFjdGllIHRvZVwiLFxuICAgICAgc2VsZWN0ZWRBY3Rpb25DYXB0aW9uOiBcIlNlbGVjdGVlciBlZW4gYWN0aWUgb20gdG9lIHRlIHZvZWdlbi4uLlwiLFxuXG4gICAgICBleHByZXNzaW9uSW52YWxpZDpcbiAgICAgICAgXCJEZSBsb2dpc2NoZSB1aXRkcnVra2luZyBpcyBsZWVnIG9mIG9uZ2VsZGlnLiBWZXJiZXRlciBkaXQgYWxzdHVibGllZnQuXCIsXG4gICAgICBub0FjdGlvbkVycm9yOiBcIlZvZWcgdGVuIG1pbnN0ZSDDqcOpbiBhY3RpZSB0b2UuXCIsXG4gICAgICBhY3Rpb25JbnZhbGlkOiBcIkxvcyBwcm9ibGVtZW4gaW4gdXcgYWN0aWUocykgb3AuXCIsXG4gICAgICBleHByZXNzaW9uU2V0dXA6IFwiXCIsXG4gICAgICBhY3Rpb25zU2V0dXA6IFwiXCIsXG4gICAgfSxcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBuYW1lcyBpbiB0YWJsZSBoZWFkZXJzXG4gIC8vIHBlbDoge1xuICAvLyAgIGlzUmVxdWlyZWQ6IFwiVmVycGxpY2h0P1wiXG4gIC8vIH0sXG4gIC8vUHJvcGVydHkgRWRpdG9yc1xuICBwZToge1xuICAgIGFwcGx5OiBcIlZhbiB0b2VwYXNzaW5nIHppam5cIixcbiAgICBvazogXCJPS1wiLFxuICAgIHNhdmU6IFwiT3BzbGFhblwiLFxuICAgIHNhdmVUb29sdGlwOiBcIk9wc2xhYW5cIixcbiAgICBjYW5jZWw6IFwiQW5udWxlcmVuXCIsXG4gICAgcmVzZXQ6IFwiUmVzZXR0ZW5cIixcbiAgICByZWZyZXNoOiBcIk9wc2xhYW5cIixcbiAgICAvLyBjbG9zZTogXCJEaWNodGJpalwiLFxuICAgIGRlbGV0ZTogXCJWZXJ3aWpkZXJlblwiLFxuICAgIGFkZDogXCJUb2V2b2VnZW5cIixcbiAgICBhZGROZXc6IFwiTmlldXdlIHRvZXZvZWdlblwiLFxuICAgIGFkZEl0ZW06IFwiS2xpayBvbSBlZW4gaXRlbSB0b2UgdGUgdm9lZ2VuLi4uXCIsXG4gICAgYWRkT3RoZXI6IFwiQW5kZXJlXCIsXG4gICAgYWRkU2VsZWN0QWxsOiBcIlNlbGVjdGVlciBhbGxlc1wiLFxuICAgIGFkZE5vbmU6IFwiR2VlblwiLFxuICAgIHJlbW92ZUFsbDogXCJWZXJ3aWpkZXIgYWxsZXNcIixcbiAgICBlZGl0OiBcIkJld2Vya1wiLFxuICAgIGJhY2s6IFwiS2VlciB0ZXJ1ZyB6b25kZXIgb3AgdGUgc2xhYW5cIixcbiAgICBiYWNrVG9vbHRpcDogXCJLZWVyIHRlcnVnIHpvbmRlciBvcCB0ZSBzbGFhblwiLFxuICAgIHNhdmVBbmRCYWNrOiBcIkJld2FhciBlbiBrZWVyIHRlcnVnXCIsXG4gICAgc2F2ZUFuZEJhY2tUb29sdGlwOiBcIkJld2FhciBlbiBrZWVyIHRlcnVnXCIsXG4gICAgLy8gaXRlbVZhbHVlRWRpdDogXCJaaWNodGJhYXIgYWxzXCIsXG4gICAgZWRpdENob2ljZXM6IFwiS2V1emVzIGJld2Vya2VuXCIsXG4gICAgc2hvd0Nob2ljZXM6IFwiVG9vbiBrZXV6ZXNcIixcbiAgICBtb3ZlOiBcIkJld2VnZW5cIixcbiAgICBlbXB0eTogXCI8bGVlZz5cIixcbiAgICAvLyBub3RFbXB0eTogXCI8d2FhcmRlIGJld2Vya2VuPlwiLFxuICAgIGZhc3RFbnRyeTogXCJTbmVsbGUgdG9lZ2FuZ1wiLFxuICAgIGZvcm1FbnRyeTogXCJGb3JtdWxpZXJpbnZvZXJcIixcbiAgICB0ZXN0U2VydmljZTogXCJUZXN0IGRlIHNlcnZpY2VcIixcbiAgICBpdGVtU2VsZWN0b3JFbXB0eTogXCJTZWxlY3RlZXIgaGV0IGVsZW1lbnRcIixcbiAgICBjb25kaXRpb25BY3Rpb25FbXB0eTogXCJTZWxlY3RlZXIgZGUgYWN0aWVcIixcbiAgICBjb25kaXRpb25TZWxlY3RRdWVzdGlvbjogXCJTZWxlY3RlZXIgdnJhYWcuLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYWdlOiBcIlNlbGVjdGVlciBwYWdpbmEuLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYW5lbDogXCJTZWxlY3RlZXIgcGFuZWVsLi4uXCIsXG4gICAgY29uZGl0aW9uVmFsdWVRdWVzdGlvblRpdGxlOiBcIlZvZXIvc2VsZWN0ZWVyIGRlIHdhYXJkZVwiLFxuICAgIC8vIGNvbmRpdGlvbkhlbHA6XG4gICAgLy8gICBcIlZvZXIgZWVuIGJvb2xlYWFuc2UgdWl0ZHJ1a2tpbmcgaW4uIEhldCBtb2V0IHRydWUgcmV0b3VybmVyZW4gb20gZGUgdnJhYWcvcGFnaW5hIHppY2h0YmFhciB0ZSBob3VkZW4uIEJpanZvb3JiZWVsZDoge3ZyYWFnMX0gPSAnd2FhcmRlMScgb2YgKHt2cmFhZzJ9ICoge3ZyYWFnNH0+IDIwIGVuIHt2cmFhZzN9IDw1KVwiLFxuICAgIGV4cHJlc3Npb25IZWxwOlxuICAgICAgXCJVIGt1bnQgYWNjb2xhZGVzIGdlYnJ1aWtlbiBvbSB0b2VnYW5nIHRlIGtyaWpnZW4gdG90IGRlIHZyYWFnd2FhcmRlbjoge3ZyYWFnMX0gKyB7dnJhYWcyfSwgKHtwcmlqc30gKiB7YWFudGFsfSkgKiAoMTAwIC0ge2tvcnRpbmd9KS4gVSBrdW50IGZ1bmN0aWVzIGdlYnJ1aWtlbiBhbHM6IGlpZigpLCB0b2RheSgpLCBhZ2UoKSwgbWluKCksIG1heCgpLCBjb3VudCgpLCBhdmcoKSBlbiBhbmRlcmVuLlwiLFxuICAgIGFjZUVkaXRvckhlbHA6IFwiRHJ1ayBvcCBDdHJsK3NwYXRpZWJhbGsgb20gZWVuIGhpbnQgdm9vciBoZXQgdm9sdG9vaWVuIHZhbiBlZW4gdWl0ZHJ1a2tpbmcgdGUga3JpamdlblwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcIkh1aWRpZ2UgcmlqXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCJIdWlkaWcgcGFuZWVsXCIsXG4gICAgc2hvd01vcmU6IFwiUmFhZHBsZWVnIGRlIGRvY3VtZW50YXRpZSB2b29yIG1lZXIgZGV0YWlsc1wiLFxuICAgIC8vIGNvbmRpdGlvblNob3dNb3JlVXJsOlxuICAgIC8vICAgXCJodHRwczovL3N1cnZleWpzLmlvL0RvY3VtZW50YXRpb24vTGlicmFyeVBhcmFtZXRlcj9pZD1RdWVzdGlvbiZwYXJhbWV0ZXI9dmlzaWJsZUlmXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwiQmVzY2hpa2JhcmUgdnJhZ2VuOlwiLFxuICAgIGNlbGxzRW1wdHlSb3dzQ29sdW1uczogXCJFciBtb2V0IG1pbmltYWFsIMOpw6luIGtvbG9tIG9mIHJpaiB6aWpuXCIsXG5cbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwiVm9lciBhbHN0dWJsaWVmdCBlZW4gd2FhcmRlIGluXCIsXG4gICAgcHJvcGVydHlOYW1lSXNOb3RVbmlxdWU6IFwiVm9lciBlZW4gdW5pZWtlIG5hYW0gaW5cIixcbiAgICBsaXN0SXNFbXB0eTogXCJWb2VnIGVlbiBuaWV1dyBpdGVtIHRvZVwiLFxuICAgIGV4cHJlc3Npb25Jc0VtcHR5OiBcIkV4cHJlc3NpZSBpcyBsZWVnXCIsXG4gICAgdmFsdWU6IFwiV2FhcmRlXCIsXG4gICAgdGV4dDogXCJUZWtzdFwiLFxuICAgIHJvd2lkOiBcIlJpai1JRFwiLFxuICAgIGltYWdlTGluazogXCJBZmJlZWxkaW5nc2xpbmtcIixcbiAgICBjb2x1bW5FZGl0OiBcIktvbG9tIGJld2Vya2VuOiB7MH1cIixcbiAgICBpdGVtRWRpdDogXCJCZXdlcmsgaXRlbTogezB9XCIsXG5cbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCJQYWRcIixcbiAgICB2YWx1ZU5hbWU6IFwiV2FhcmRlbmFhbVwiLFxuICAgIHRpdGxlTmFtZTogXCJUaXRlbFwiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwiVm9lciBoaWVyIGRlIHRpdGVsIGluXCIsXG4gICAgc3VydmV5VGl0bGVQbGFjZWhvbGRlcjogXCJWb2VyIGRlIGVucXXDqnRldGl0ZWwgaGllciBpblwiLFxuICAgIHBhZ2VUaXRsZVBsYWNlaG9sZGVyOiBcIlZvZXIgaGllciBkZSBwYWdpbmF0aXRlbCBpblwiLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiVm9lciBlZW4gb21zY2hyaWp2aW5nIGluXCIsXG4gICAgc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJWb2VyIGVlbiBvbmRlcnpvZWtzYmVzY2hyaWp2aW5nIGluXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiVm9lciBlZW4gcGFnaW5hYmVzY2hyaWp2aW5nIGluXCIsXG5cbiAgICBzaG93T3RoZXJJdGVtOiBcIkRlIG9wdGllICdBbmRlcnMnIHRvbmVuXCIsXG4gICAgb3RoZXJUZXh0OiBcIlRpdGVsICdBbmRlcnM6Jy1vcHRpZVwiLFxuICAgIHNob3dOb25lSXRlbTogXCJEZSBvcHRpZSAnR2VlbicgdG9uZW5cIixcbiAgICBub25lVGV4dDogXCJUaXRlbCAnR2Vlbictb3B0aWVcIixcbiAgICBoYXNTZWxlY3RBbGw6IFwiSGVlZnQgZGUgJ0FsbGVzIHNlbGVjdGVyZW4nLW9wdGllXCIsXG4gICAgc2VsZWN0QWxsVGV4dDogXCJUaXRlbCAnQWxsZXMgc2VsZWN0ZXJlbictb3B0aWVcIixcbiAgICBhbGxvd0VtcHR5UmVzcG9uc2U6IFwiTGVlZyByZXNwb25zIHRvZXN0YWFuXCIsXG4gICAgY2hvaWNlc01pbjogXCJNaW5pbXVtd2FhcmRlIHZvb3IgYXV0b21hdGlzY2ggZ2VnZW5lcmVlcmRlIGl0ZW1zXCIsXG4gICAgY2hvaWNlc01heDogXCJNYXhpbWFsZSB3YWFyZGUgdm9vciBhdXRvbWF0aXNjaCBnZWdlbmVyZWVyZGUgaXRlbXNcIixcbiAgICBjaG9pY2VzU3RlcDogXCJIZXQgdmVyc2NoaWwgdHVzc2VuIGF1dG9tYXRpc2NoIGdlZ2VuZXJlZXJkZSBpdGVtc1wiLFxuICAgIG5hbWU6IFwiTmFhbVwiLFxuICAgIHRpdGxlOiBcIlRpdGVsXCIsXG4gICAgY2VsbFR5cGU6IFwiQ2VsdHlwZVwiLFxuICAgIGNvbENvdW50OiBcIktvbG9tIHRlbGxlblwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJWb2xnb3JkZSBvcHRpZXNcIixcbiAgICB2aXNpYmxlOiBcIlppY2h0YmFhclwiLFxuICAgIGlzUmVxdWlyZWQ6IFwiVmVycGxpY2h0XCIsXG4gICAgZGVmYXVsdFZhbHVlRXhwcmVzc2lvbjogXCJFeHByZXNzaWUgc3RhbmRhYXJkd2FhcmRlXCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJBbnR3b29yZCB2ZXJlaXNlbiB2b29yIGFsbGUgcmlqZW5cIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJUZWtzdCBiaWogbmlldC1pbmdldnVsZGUgdmVycGxpY2h0ZSB2cmFhZ1wiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiQmVnaW5uZW4gbWV0IGVlbiBuaWV1d2UgcmVnZWw/XCIsXG4gICAgcm93czogXCJBYW50YWwgcmlqZW5cIixcbiAgICBjb2xzOiBcIktvbG9tIHRlbGxlblwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIkh1bHB0ZWtzdFwiLFxuICAgIHNob3dQcmV2aWV3OiBcIlRvb24gdm9vcmJlZWxkZ2ViaWVkXCIsXG4gICAgc2hvd1ByZXZpZXdCZWZvcmVDb21wbGV0ZTogXCJWb29yYmVlbGR3ZWVyZ2F2ZSB2b29yIGFmcm9uZGVuXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIkJld2FhciBiZXN0YW5kc2luaG91ZCBpbiBKU09OLXJlc3VsdGFhdCBhbHMgdGVrc3RcIixcbiAgICBtYXhTaXplOiBcIk1heGltYWxlIGJlc3RhbmRzZ3Jvb3R0ZSBpbiBieXRlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkFmYmVlbGRpbmcgaG9vZ3RlXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJBZmJlZWxkaW5nIGJyZWVkdGVcIixcbiAgICByb3dDb3VudDogXCJBYW50YWwgcmlqZW5cIixcbiAgICBjb2x1bW5MYXlvdXQ6IFwiS29sb21tZW4gbGF5b3V0XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiVm9lZyBkZSBsb2NhdGllIHZhbiBkZSByaWprbm9wIHRvZVwiLFxuICAgIGFkZFJvd1RleHQ6IFwiVm9lZyB0ZWtzdCB2YW4gZGUgcmlqa25vcCB0b2VcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlZlcndpamRlciBkZSB0ZWtzdCB2YW4gZGUgcmlqa25vcFwiLFxuICAgIHJhdGVNaW46IFwiTWluaW11bXRhcmllZlwiLFxuICAgIHJhdGVNYXg6IFwiTWF4aW1hYWwgdGFyaWVmXCIsXG4gICAgcmF0ZVN0ZXA6IFwiQmVvb3JkZWVsIHN0YXBcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiQmVzY2hyaWp2aW5nIG1pbmltdW10YXJpZWZcIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwiTWF4aW1hbGUgdGFyaWVmb21zY2hyaWp2aW5nXCIsXG4gICAgaW5wdXRUeXBlOiBcIkludm9lcnR5cGVcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJCaWpzY2hyaWZ0IG9wdGllc1wiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJTdGFuZGFhcmR3YWFyZGVcIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwiU3RhbmRhYXJkIGNlbHRla3N0ZW5cIixcblxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcIkJld2VyayBlbnF1w6p0ZS1pbnN0ZWxsaW5nZW5cIixcbiAgICBxRWRpdG9yVGl0bGU6IFwiQmV3ZXJrZW46IHswfVwiLFxuXG4gICAgbWF4TGVuZ3RoOiBcIk1heGltYWxlIGxlbmd0ZVwiLFxuXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcIkJvdXdlblwiLFxuICAgIGVkaXRFeHByZXNzaW9uOiBcIkJld2Vya1wiLFxuICAgIGFuZDogXCJFblwiLFxuICAgIG9yOiBcIk9mXCIsXG4gICAgcmVtb3ZlOiBcIlZlcndpamRlcmVuXCIsXG4gICAgYWRkQ29uZGl0aW9uOiBcIlZvb3J3YWFyZGUgdG9ldm9lZ2VuXCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCJUaXRlbCB3ZWVyZ2V2ZW4vdmVyYmVyZ2VuXCIsXG4gICAgZXhwYW5kQ29sbGFwc2VUaXRsZTogXCJUaXRlbCB1aXR2b3V3ZW4vc2FtZW52b3V3ZW5cIixcbiAgICBsb2NhbGU6IFwiU3RhbmRhYXJkdGFhbFwiLFxuICAgIHNpbXVsYXRvcjogXCJLaWVzIGFwcGFyYWF0XCIsXG4gICAgbGFuZHNjYXBlT3JpZW50YXRpb246IFwiTGFuZHNjaGFwXCIsXG4gICAgbW9kZTogXCJNb2R1cyAoYmV3ZXJrZW4vYWxsZWVuIGxlemVuKVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIldpcyBvbnppY2h0YmFyZSB3YWFyZGVuXCIsXG4gICAgY29va2llTmFtZTogXCJDb29raWVuYWFtICh6b2RhdCBlbnF1w6p0ZSBzbGVjaHRzIMOpw6lubWFsaWcgd29yZHQgaW5nZXZ1bGQpXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiQW50d29vcmRlbiBvcHNsYWFuIGJpaiBwYWdpbmEtb3ZlcmdhbmdcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJTbGEgZGUgd2FhcmRlIHZhbiAnYW5kZXJlbicgb3AgaW4gZWVuIGFwYXJ0IHZlbGRcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJUb29uIHBhZ2luYXRpdGVsc1wiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJUb29uIHBhZ2luYW51bW1lcnNcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiS25vcHRpdGVsICdWb3JpZ2UgcGFnaW5hJ1wiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJLbm9wdGl0ZWwgJ1ZvbGdlbmRlIHBhZ2luYSdcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiS25vcHRpdGVsICdBZnJvbmRlbidcIixcbiAgICBwcmV2aWV3VGV4dDogXCJLbm9wdGl0ZWwgJ1Zvb3JiZWVsZHdlZXJnYXZlJ1wiLFxuICAgIGVkaXRUZXh0OiBcIktub3B0aXRlbCAnQmV3ZXJrZW4nXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIktub3B0aXRlbCAnU3RhcnRlbidcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwiTmF2aWdhdGlla25vcHBlbiB3ZWVyZ2V2ZW4gKHN0YW5kYWFyZG5hdmlnYXRpZSlcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJUb29uIGtub3AgJ1ZvcmlnZSBwYWdpbmEnIChnZWJydWlrZXIga2FuIHRlcnVna2VyZW4pXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIkRlIGVlcnN0ZSBwYWdpbmEgaW4gZGUgZW5xdcOqdGUgaXMgZWVuIHN0YXJ0cGFnaW5hXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiVG9vbiBiaWogYWZyb25kZW4gZGV6ZSBIVE1MLWNvZGVcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOlxuICAgICAgXCJOYSBhbGxlIHZyYWdlbiBhdXRvbWF0aXNjaCBuYWFyIHZvbGdlbmRlIHBhZ2luYSBnYWFuXCIsXG4gICAgZm9jdXNPbkZpcnN0RXJyb3I6IFwiRm9jdXMgb3AgZWVyc3RlIGZvdXQgemV0dGVuXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIlRvb24gdm9vcnRnYW5nc2JhbGtcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwiUGxlayB2cmFhZ3RpdGVsXCIsXG4gICAgcXVlc3Rpb25UaXRsZVBhdHRlcm46IFwiUGF0cm9vbiB2cmFhZ3RpdGVsXCIsXG4gICAgcXVlc3Rpb25UaXRsZTogXCJWcmFhZ3RpdGVsXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlN5bWJvb2woZW4pIHZlcnBsaWNodGUgdnJhYWdcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiRWVyc3RlIHZyYWFnICgxLCAyIG9yICdBJywgJ2EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiVG9vbiB2cmFhZ251bW1lcnNcIixcbiAgICB0ZXh0VXBkYXRlTW9kZTogXCJNb2R1cyB0ZWtzdHZlcm5pZXV3aW5nXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOlxuICAgICAgXCJWcmFhZ3RpdGVsc2phYmxvb24sIHN0YW5kYWFyZCBpczogJ3tub30uIHt2ZXJlaXNlbn0ge3RpdGVsfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiUGxlayB2cmFhZ2ZvdXRtZWxkaW5nXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIk9wIHZvbGdlbmRlIHBhZ2luYSBmb2N1cyBvcCBkZSBlZXJzdGUgdnJhYWcgemV0dGVuXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiVm9sZ29yZGUgZWxlbWVudGVuIG9wIHBhZ2luYVwiLFxuICAgIG1heFRleHRMZW5ndGg6IFwiTWF4aW1hbGUgdGVrc3RsZW5ndGVcIixcbiAgICBtYXhPdGhlcnNMZW5ndGg6IFwiTWF4aW1hbGUgdGVrc3RsZW5ndGUgb3B0aWUgJ0FuZGVyczonXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIk1heGltYWxlIHRpamQgb20gZGUgZW5xdcOqdGUgdGUgdm9sdG9vaWVuXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJNYXhpbWFsZSB0aWpkIG9tIGVlbiBwYWdpbmEgaW4gZGUgZW5xdcOqdGUgdGUgdm9sdG9vaWVuXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiVG9vbiB0aW1lcnBhbmVlbFwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJNb2R1cyB0aW1lcnBhbmVlbFwiLFxuICAgIHJlbmRlck1vZGU6IFwiUmVuZGVyLW1vZHVzXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJTdGEgaGV0IHRvZXZvZWdlbiB2YW4gZWVuIHBhbmVlbCB0b2VcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIkxhYXQgaGV0IHZlcndpamRlcmVuIHZhbiBoZXQgcGFuZWVsIHRvZVwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJQYW5lZWx0ZWtzdCB0b2V2b2VnZW5cIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwiUGFuZWVsdGVrc3QgdmVyd2lqZGVyZW5cIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiVG9vbiBhbGxlIGVsZW1lbnRlbiBvcCDDqcOpbiBwYWdpbmFcIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBleHByZXNzaW9uOiBcIlVpdGRydWtraW5nXCIsXG5cbiAgICBtaW5WYWx1ZTogXCJNaW5pbWFsZSB3YWFyZGVcIixcbiAgICBtYXhWYWx1ZTogXCJNYXhpbWFsZSB3YWFyZGVcIixcbiAgICBtaW5MZW5ndGg6IFwiTWluaW1hbGUgbGVuZ3RlXCIsXG4gICAgYWxsb3dEaWdpdHM6IFwiQ2lqZmVycyB0b2VzdGFhblwiLFxuICAgIG1pbkNvdW50OiBcIk1pbmltdW0gYWFudGFsXCIsXG4gICAgbWF4Q291bnQ6IFwiTWF4aW1hbGUgdGVsbGluZ1wiLFxuICAgIHJlZ2V4OiBcIlJlZ3VsaWVyZSBleHByZXNzaWVcIixcblxuICAgIHRvdGFsVGV4dDogXCJUb3RhbGUgdGVrc3RcIixcbiAgICB0b3RhbFR5cGU6IFwiVG90YWFsIHR5cGVcIixcbiAgICB0b3RhbEV4cHJlc3Npb246IFwiVG90YWxlIGV4cHJlc3NpZVwiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcIlRvdGFsZSB3ZWVyZ2F2ZXN0aWpsXCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCJUb3RhbGUgdmFsdXRhXCIsXG4gICAgdG90YWxGb3JtYXQ6IFwiVG90YWFsIGZvcm1hYXRcIixcblxuICAgIC8vIEhlYWRlciAgYWRvcm5lclxuICAgIGxvZ29Qb3NpdGlvbjogXCJQb3NpdGllIGxvZ29cIixcbiAgICBhZGRMb2dvOiBcIkxvZ28gdG9ldm9lZ2VuLi4uXCIsXG4gICAgY2hhbmdlTG9nbzogXCJMb2dvIHdpanppZ2VuLi4uXCIsXG4gICAgbG9nb1dpZHRoOiBcIkJyZWVkdGUgbG9nb1wiLFxuICAgIGxvZ29IZWlnaHQ6IFwiSG9vZ3RlIGxvZ29cIixcbiAgICBsb2dvRml0OiBcIlBhc3NlbmQgbWFrZW4gbG9nb1wiLFxuICAgIGxvZ29Qb3NpdGlvbnM6IHtcbiAgICAgIG5vbmU6IFwiTG9nbyB2ZXJ3aWpkZXJlblwiLFxuICAgICAgbGVmdDogXCJMaW5rc1wiLFxuICAgICAgcmlnaHQ6IFwiUmVjaHRzYWZcIixcbiAgICAgIHRvcDogXCJCb3Zlbm9wXCIsXG4gICAgICBib3R0b206IFwiT25kZXIgYWFuXCIsXG4gICAgfSxcblxuICAgIHRhYnM6IHtcbiAgICAgIGdlbmVyYWw6IFwiQWxnZW1lZW5cIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIk9wdGllc1wiLFxuICAgICAgaHRtbDogXCJIdG1sLWVkaXRvclwiLFxuICAgICAgY29sdW1uczogXCJLb2xvbW1lblwiLFxuICAgICAgcm93czogXCJSaWplblwiLFxuICAgICAgY2hvaWNlczogXCJLZXV6ZXNcIixcbiAgICAgIGl0ZW1zOiBcIkFydGlrZWxlblwiLFxuICAgICAgdmlzaWJsZUlmOiBcIlppY2h0YmFhciBhbHNcIixcbiAgICAgIGVuYWJsZUlmOiBcIlNjaGFrZWwgSWYgaW5cIixcbiAgICAgIHJlcXVpcmVkSWY6IFwiVmVyZWlzdCBhbHNcIixcbiAgICAgIHJhdGVWYWx1ZXM6IFwiQmVvb3JkZWVsIHdhYXJkZW5cIixcbiAgICAgIGNob2ljZXNCeVVybDogXCJLZXV6ZXMgdmFuIGludGVybmV0XCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIlN0YW5kYWFyZGtldXplc1wiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwiVGVrc3RpbnZvZXJcIixcbiAgICAgIG51bWJlcmluZzogXCJOdW1tZXJpbmdcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwiVmFsaWRhdG9yc1wiLFxuICAgICAgbmF2aWdhdGlvbjogXCJOYXZpZ2F0aWVcIixcbiAgICAgIHF1ZXN0aW9uOiBcIlZyYWFnXCIsXG4gICAgICBwYWdlczogXCJQYWdpbmEnc1wiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCJIVE1MIGJpaiBhZnJvbmRlblwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uOiBcIlZvbHRvb2lkZSBodG1sIG9wIHZvb3J3YWFyZGVcIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcIkh0bWwgbGFkZW5cIixcbiAgICAgIHRpbWVyOiBcIlRpbWVyL1F1aXpcIixcbiAgICAgIGNhbGN1bGF0ZWRWYWx1ZXM6IFwiQmVyZWtlbmRlIHdhYXJkZXNcIixcbiAgICAgIHRyaWdnZXJzOiBcIlRyaWdnZXJzXCIsXG4gICAgICB0ZW1wbGF0ZVRpdGxlOiBcIlNqYWJsb29udGl0ZWxcIixcbiAgICAgIHRvdGFsczogXCJUb3RhbGVuXCIsXG4gICAgICBsb2dpYzogXCJMb2dpY2FcIixcbiAgICAgIGxheW91dDogXCJJbmRlbGluZ1wiLFxuICAgICAgZGF0YTogXCJHZWdldmVuc1wiLFxuICAgICAgdmFsaWRhdGlvbjogXCJWYWxpZGF0aWVcIixcbiAgICAgIGNlbGxzOiBcIkNlbGxlblwiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcIldlZXJnZXZlbiBiaWogYWZyb25kZW5cIixcbiAgICAgIGxvZ286IFwiTG9nbyBpbiBlbnF1w6p0ZXRpdGVsXCIsXG4gICAgICBzbGlkZXI6IFwiU2NodWlmcmVnZWxhYXJcIixcbiAgICAgIG90aGVyczogXCJBbmRlcmVuXCIsXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwiRWlnZW5zY2hhcCAnezB9JyBiZXdlcmtlblwiLFxuICAgIGl0ZW1zOiBcIlsgSXRlbXM6IHswfSBdXCIsXG5cbiAgICBlbnRlck5ld1ZhbHVlOiBcIlZvZXIgZGUgd2FhcmRlIGluLlwiLFxuICAgIG5vcXVlc3Rpb25zOiBcIkVyIGlzIGdlZW4gZW5rZWxlIHZyYWFnIGluIGRlIGVucXXDqnRlLlwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiTWFhayBlZW4gdHJpZ2dlclwiLFxuICAgIHRpdGxlS2V5Ym9hcmRBZG9ybmVyVGlwOiBcIkRydWsgb3AgZGUgZW50ZXIta25vcCBvbSB0ZSBiZXdlcmtlblwiLFxuICAgIGtleWJvYXJkQWRvcm5lclRpcDpcbiAgICAgIFwiRHJ1ayBvcCBkZSBlbnRlci1rbm9wIG9tIGhldCBpdGVtIHRlIGJld2Vya2VuLCBkcnVrIG9wIGRlIGRlbGV0ZS1rbm9wIG9tIGhldCBpdGVtIHRlIHZlcndpamRlcmVuLCBkcnVrIG9wIGFsdCBwbHVzIHBpamwgb21ob29nIG9mIHBpamwgb21sYWFnIG9tIGl0ZW0gdGUgdmVycGxhYXRzZW5cIixcbiAgICB0cmlnZ2VyT246IFwiQWFuIFwiLFxuICAgIHRyaWdnZXJNYWtlUGFnZXNWaXNpYmxlOiBcIk1hYWsgcGFnaW5hJ3MgemljaHRiYWFyOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCJNYWFrIGVsZW1lbnRlbiB6aWNodGJhYXI6XCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCJWdWwgZGUgZW5xdcOqdGUgaW4gYWxzIGRpdCBsdWt0LlwiLFxuICAgIHRyaWdnZXJOb3RTZXQ6IFwiRGUgdHJpZ2dlciBpcyBuaWV0IGluZ2VzdGVsZFwiLFxuICAgIHRyaWdnZXJSdW5JZjogXCJWb2VyIGFsc1wiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwiVmVyYW5kZXIgd2FhcmRlIHZhbjogXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIldhYXJkZSBrb3Bpw6tyZW4gdmFuOiBcIixcbiAgICB0cmlnZ2VyUnVuRXhwcmVzc2lvbjogXCJWb2VyIGRlemUgZXhwcmVzc2llIHVpdDpcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwibmFhcjogXCIsXG4gICAgdHJpZ2dlckdvdG9OYW1lOiBcIkdhIG5hYXIgZGUgdnJhYWc6XCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwiWmV0IGRlIHZhcmlhYmVsZSBuaWV0IGluIGhldCBvbmRlcnpvZWtzcmVzdWx0YWF0LlwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uRW1wdHk6IFwiVm9lciBlZW4gZ2VsZGlnZSB1aXRkcnVra2luZyBpblwiLFxuXG4gICAgbm9GaWxlOiBcIkdlZW4gYmVzdGFuZCBnZWtvemVuXCIsXG4gIH0sXG4gIC8vUHJvcGVydHkgdmFsdWVzXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCJXYWFyXCIsXG4gICAgZmFsc2U6IFwiRmFsc2VcIixcbiAgICBpbmhlcml0OiBcIkVydmVuXCIsXG4gICAgc2hvdzogXCJUb25lblwiLFxuICAgIGhpZGU6IFwiWmljaCB2ZXJzdG9wcGVuXCIsXG4gICAgZGVmYXVsdDogXCJTdGFuZGFhcmRcIixcbiAgICBpbml0aWFsOiBcIlN0YW5kYWFyZFwiLFxuICAgIHJhbmRvbTogXCJXaWxsZWtldXJpZ1wiLFxuICAgIGNvbGxhcHNlZDogXCJJbmdlc3RvcnRcIixcbiAgICBleHBhbmRlZDogXCJVaXRnZWJyZWlkXCIsXG4gICAgbm9uZTogXCJHZWVuXCIsXG4gICAgYXNjOiBcIk9wbG9wZW5kXCIsXG4gICAgZGVzYzogXCJBZmxvcGVuZFwiLFxuICAgIGluZGV0ZXJtaW5hdGU6IFwiT25iZXBhYWxkXCIsXG4gICAgZGVjaW1hbDogXCJEZWNpbWFsZVwiLFxuICAgIGN1cnJlbmN5OiBcIlZhbHV0YVwiLFxuICAgIHBlcmNlbnQ6IFwiUHJvY2VudFwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwiRWVyc3RlIHVpdGdldm91d2VuXCIsXG4gICAgb2ZmOiBcIlVpdFwiLFxuICAgIG9uUGFuZWw6IFwiT3AgcGFuZWVsXCIsXG4gICAgb25TdXJ2ZXk6IFwiT3AgZW5xdcOqdGVcIixcbiAgICBsaXN0OiBcIkxpanN0XCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwiVm9vcnRnYW5nIHRvcFwiLFxuICAgIHByb2dyZXNzQm90dG9tOiBcIlZvb3J0Z2FuZyBib2RlbVwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcIlZvb3J0Z2FuZyB0b3AgYm9kZW1cIixcbiAgICBob3Jpem9udGFsOiBcIkhvcml6b250YWFsXCIsXG4gICAgdmVydGljYWw6IFwiVmVydGljYWFsXCIsXG4gICAgdG9wOiBcIlRvcFwiLFxuICAgIGJvdHRvbTogXCJCZW5lZGVuXCIsXG4gICAgdG9wQm90dG9tOiBcIlRvcCBlbiBiZW5lZGVuXCIsXG4gICAgYm90aDogXCJCZWlkZVwiLFxuICAgIGxlZnQ6IFwiTGlua3NcIixcbiAgICByaWdodDogXCJSZWNodHNcIixcbiAgICBjb2xvcjogXCJLbGV1clwiLFxuICAgIGRhdGU6IFwiRGF0dW1cIixcbiAgICBkYXRldGltZTogXCJEYXR1bS90aWpkXCIsXG4gICAgXCJkYXRldGltZS1sb2NhbFwiOiBcIkRhdHVtL3RpamQgbG9rYWFsXCIsXG4gICAgZW1haWw6IFwiRS1tYWlsXCIsXG4gICAgbW9udGg6IFwiTWFhbmRcIixcbiAgICBudW1iZXI6IFwiTnVtbWVyXCIsXG4gICAgcGFzc3dvcmQ6IFwiV2FjaHR3b29yZFwiLFxuICAgIHJhbmdlOiBcIkJlcmVpa1wiLFxuICAgIHRlbDogXCJUZWxcIixcbiAgICB0ZXh0OiBcIlRla3N0XCIsXG4gICAgdGltZTogXCJUaWpkXCIsXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHdlZWs6IFwiV2Vla1wiLFxuICAgIGhpZGRlbjogXCJWZXJib3JnZW5cIixcbiAgICBvbjogXCJBYW5cIixcbiAgICBvblBhZ2U6IFwiT3AgcGFnaW5hXCIsXG4gICAgdW5kZXJUaXRsZTogXCJPbmRlciBkZSB0aXRlbFwiLFxuICAgIHVuZGVySW5wdXQ6IFwiT25kZXIgaGV0IGludm9lcnZlbGRcIixcbiAgICBlZGl0OiBcIkJld2Vya1wiLFxuICAgIGRpc3BsYXk6IFwiU2NoZXJtXCIsXG4gICAgb25Db21wbGV0ZTogXCJCaWogYWZyb25kZW5cIixcbiAgICBvbkhpZGRlbjogXCJCaWogdmVyYmVyZ2VuXCIsXG4gICAgb25CbHVyOiBcIkJpaiB2ZXJsaWV6ZW4gZm9jdXNcIixcbiAgICBvblR5cGluZzogXCJUaWpkZW5zIGhldCB0eXBlblwiLFxuICAgIGFsbDogXCJBbGxlXCIsXG4gICAgcGFnZTogXCJQYWdpbmFcIixcbiAgICBzdXJ2ZXk6IFwiRW5xdcOqdGVcIixcbiAgICBvbk5leHRQYWdlOiBcIkJpaiBwYWdpbmEtb3ZlcmdhbmdcIixcbiAgICBvblZhbHVlQ2hhbmdlZDogXCJCaWogd2FhcmRldmVyYW5kZXJpbmdcIixcbiAgICBzaW5nbGVQYWdlOiBcIkVua2VsZSBwYWdpbmFcIixcbiAgICBzdGFuZGFyZDogXCJTdGFuZGFhcmRcIixcbiAgICBxdWVzdGlvblBlclBhZ2U6IFwiVnJhYWcgcGVyIHBhZ2luYVwiLFxuICAgIG5vUHJldmlldzogXCJHZWVuIHByZXZpZXdcIixcbiAgICBzaG93QWxsUXVlc3Rpb25zOiBcIlRvb24gdm9vcmJlZWxkIG1ldCBhbGxlIHZyYWdlblwiLFxuICAgIHNob3dBbnN3ZXJlZFF1ZXN0aW9uczogXCJUb29uIHZvb3JiZWVsZCBtZXQgYmVhbnR3b29yZGUgdnJhZ2VuXCIsXG4gICAgaW1hZ2U6IFwiQmVlbGRcIixcbiAgICB2aWRlbzogXCJWaWRlb1wiLFxuICAgIGNvbnRhaW46IFwiSW5wZXJrZW5cIixcbiAgICBjb3ZlcjogXCJCZWRla2tlblwiLFxuICAgIGZpbGw6IFwiT3B2dWxsZW5cIlxuICB9LFxuICAvL09wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcImlzIGxlZWdcIixcbiAgICBub3RlbXB0eTogXCJpcyBuaWV0IGxlZWdcIixcbiAgICBlcXVhbDogXCJnZWxpamsgaXNcIixcbiAgICBub3RlcXVhbDogXCJuaWV0IGdlbGlqa1wiLFxuICAgIGNvbnRhaW5zOiBcImJldmF0XCIsXG4gICAgbm90Y29udGFpbnM6IFwiYmV2YXQgbmlldFwiLFxuICAgIGFueW9mOiBcImVlbiB2YW5cIixcbiAgICBhbGxvZjogXCJhbGxlcyB2YW5cIixcbiAgICBncmVhdGVyOiBcImdyb3RlclwiLFxuICAgIGxlc3M6IFwibWluZGVyXCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwiZ3JvdGVyIG9mIGdlbGlqayBhYW5cIixcbiAgICBsZXNzb3JlcXVhbDogXCJtaW5kZXIgb2YgZ2VsaWprIGFhblwiLFxuICAgIGFuZDogXCJlblwiLFxuICAgIG9yOiBcIm9mXCIsXG4gIH0sXG4gIC8vRW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCJHZWJydWlrIGRlIEFuZ3VsYXItdmVyc2llXCIsXG4gICAganF1ZXJ5OiBcIkdlYnJ1aWsgZGUgalF1ZXJ5LXZlcnNpZVwiLFxuICAgIGtub2Nrb3V0OiBcIkdlYnJ1aWsgZGUgS25vY2tvdXQtdmVyc2llXCIsXG4gICAgcmVhY3Q6IFwiR2VicnVpayBkZSBSZWFjdC12ZXJzaWVcIixcbiAgICB2dWU6IFwiR2VicnVpayBkZSBWdWUtdmVyc2llXCIsXG4gICAgYm9vdHN0cmFwOiBcIlZvb3IgYm9vdHN0cmFwLWZyYW1ld29ya1wiLFxuICAgIG1vZGVybjogXCJNb2Rlcm4gdGhlbWFcIixcbiAgICBkZWZhdWx0OiBcIlN0YW5kYWFyZCB0aGVtYVwiLFxuICAgIG9yYW5nZTogXCJPcmFuamUgdGhlbWFcIixcbiAgICBkYXJrYmx1ZTogXCJEb25rZXJibGF1dyB0aGVtYVwiLFxuICAgIGRhcmtyb3NlOiBcIkRvbmtlcmVyb29zIHRoZW1hXCIsXG4gICAgc3RvbmU6IFwiU3RlbmVuIHRoZW1hXCIsXG4gICAgd2ludGVyOiBcIldpbnRlciB0aGVtYVwiLFxuICAgIHdpbnRlcnN0b25lOiBcIldpbnRlcnN0ZWVuIHRoZW1hXCIsXG4gICAgc2hvd09uUGFnZTogXCJUb29uIGVucXXDqnRlIG9wIGVlbiBwYWdpbmFcIixcbiAgICBzaG93SW5XaW5kb3c6IFwiVG9vbiBlbnF1w6p0ZSBpbiBlZW4gdmVuc3RlclwiLFxuICAgIGxvYWRGcm9tU2VydmVyOiBcIkxhYWQgU3VydmV5IEpTT04gdmFuYWYgZGUgc2VydmVyXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU2NyaXB0cyBlbiBzdGlqbGVuXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiLFxuICB9LFxuICAvL1Rlc3QgU3VydmV5XG4gIHRzOiB7XG4gICAgc2VsZWN0UGFnZTogXCJTZWxlY3RlZXIgZGUgcGFnaW5hIG9tIGRlemUgdGUgdGVzdGVuOlwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCJUb29uIG9uemljaHRiYXJlIGVsZW1lbnRlblwiLFxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwiQWFudGFsIGFudHdvb3JkZW5cIixcbiAgICBlbWFpbHZhbGlkYXRvcjogXCJFLW1haWxcIixcbiAgICBleHByZXNzaW9udmFsaWRhdG9yOiBcIlVpdGRydWtraW5nXCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCJOdW1lcmlla1wiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcIlJlZ2V4XCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCJUZWtzdFwiLFxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJWb2xsZWRpZ2UgZW5xdcOqdGVcIixcbiAgICBzZXR2YWx1ZXRyaWdnZXI6IFwiSW5nZXN0ZWxkZSB3YWFyZGVcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcIktvcGllIHdhYXJkZVwiLFxuICAgIHNraXB0cmlnZ2VyOiBcIkdhIG5hYXIgZGUgdnJhYWdcIixcbiAgICBydW5leHByZXNzaW9udHJpZ2dlcjogXCJSdW4gZXhwcmVzc2llXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwiWmljaHRiYWFyaGVpZCB3aWp6aWdlbiAodmVyb3VkZXJkKVwiLFxuICB9LFxuICAvL1Byb3BlcnRpZXNcbiAgcDoge1xuICAgIG5hbWU6IFwiTmFhbVwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcIlRpdGVsXCIsXG4gICAgICB0aXRsZTogXCJMYWF0IGhldCBsZWVnIGFscyBoZXQgaGV0emVsZmRlIGlzIGFscyAnTmFhbSdcIixcbiAgICB9LFxuXG4gICAgbmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5OiBcIk5hdmlnYXRpZSBLbm9wcGVuIHppY2h0YmFhcmhlaWRcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJWcmFnZW4gdm9sZ29yZGVcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiTWF4aW1hbGUgdGlqZCBvbSB0ZSB2b2x0b29pZW5cIixcblxuICAgIHZpc2libGU6IFwiWmljaHRiYWFyXCIsXG4gICAgdmlzaWJsZUlmOiBcIlppY2h0YmFhciBhbHNcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwiUGxlayB2cmFhZ3RpdGVsXCIsXG4gICAgcXVlc3Rpb25EZXNjcmlwdGlvbkxvY2F0aW9uOiBcIlBsZWsgdnJhYWdvbXNjaHJpanZpbmdcIixcbiAgICBkZXNjcmlwdGlvbjogXCJPbXNjaHJpanZpbmdcIixcbiAgICBzdGF0ZTogXCJTdGFhdFwiLFxuICAgIGlzUmVxdWlyZWQ6IFwiVmVycGxpY2h0XCIsXG4gICAgcmVxdWlyZWRJZjogXCJWZXJlaXN0IGFsc1wiLFxuICAgIGluZGVudDogXCJJbnNwcmluZ2VuXCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwiVmVyZWlzdGUgZm91dHRla3N0XCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCJCZWdpbiBtZXQgbmlldXdlIHJlZ2VsXCIsXG4gICAgaW5uZXJJbmRlbnQ6IFwiSW5uZXJsaWprZSBpbnNwcmluZ2luZ1wiLFxuICAgIHBhZ2U6IFwiUGFnaW5hXCIsXG5cbiAgICB3aWR0aDogXCJCcmVlZHRlXCIsXG5cbiAgICBjb21tZW50VGV4dDogXCJDb21tZW50YWFyIHRla3N0XCIsXG4gICAgdmFsdWVOYW1lOiBcIldhYXJkZSBuYWFtXCIsXG4gICAgZW5hYmxlSWY6IFwiSW5zY2hha2VsZW4gYWxzXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlN0YW5kYWFyZHdhYXJkZVwiLFxuICAgIGNvcnJlY3RBbnN3ZXI6IFwiR29lZCBhbnR3b29yZFwiLFxuICAgIHJlYWRPbmx5OiBcIkFsbGVlbi1sZXplblwiLFxuICAgIHZhbGlkYXRvcnM6IFwiVmFsaWRhdG9yc1wiLFxuICAgIHRpdGxlTG9jYXRpb246IFwiUGxlayB0aXRlbFwiLFxuICAgIGRlc2NyaXB0aW9uTG9jYXRpb246IFwiUGxlayBvbXNjaHJpanZpbmdcIixcbiAgICBtaW5XaWR0aDogXCJNaW5pbWFsZSBicmVlZHRlXCIsXG4gICAgbWF4V2lkdGg6IFwiTWF4aW1hbGUgYnJlZWR0ZVwiLFxuICAgIHVzZURpc3BsYXlWYWx1ZXNJbkR5bmFtaWNUZXh0czogXCJXYWFyZGVzIGluIHRpdGVsIGdlYnJ1aWtlblwiLFxuXG4gICAgaGFzQ29tbWVudDogXCJIZWVmdCBjb21tZW50YWFyXCIsXG4gICAgc2hvd090aGVySXRlbTogXCJIZWVmdCBhbmRlcmVcIixcbiAgICBjaG9pY2VzOiBcIktldXplc1wiLFxuICAgIGNob2ljZXNPcmRlcjogXCJLZXV6ZXMgYmVzdGVsbGVuXCIsXG4gICAgY2hvaWNlc0J5VXJsOiBcIktldXplcyBwZXIgdXJsXCIsXG4gICAgb3RoZXJUZXh0OiBcIkFuZGVyZSB0ZWtzdFwiLFxuICAgIG90aGVyRXJyb3JUZXh0OiBcIkFuZGVyZSBmb3V0dGVrc3RcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJTbGEgYW5kZXJlbiBvcCBhbHMgY29tbWVudGFhclwiLFxuXG4gICAgbGFiZWw6IFwiRXRpa2V0XCIsXG4gICAgc2hvd1RpdGxlOiBcIkxhYXQgZGUgdGl0ZWwgemllblwiLFxuICAgIHZhbHVlVHJ1ZTogXCJXYWFyZGUgd2FhclwiLFxuICAgIHZhbHVlRmFsc2U6IFwiV2FhcmRlIGZhbHNlXCIsXG5cbiAgICBjb2xzOiBcIktvbG9tbWVuXCIsXG4gICAgcm93czogXCJSaWplblwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIlRpamRlbGlqa2UgYWFuZHVpZGluZ1wiLFxuXG4gICAgb3B0aW9uc0NhcHRpb246IFwiQmlqc2NocmlmdCBvcHRpZXNcIixcblxuICAgIGV4cHJlc3Npb246IFwiVWl0ZHJ1a2tpbmdcIixcbiAgICBmb3JtYXQ6IFwiRm9ybWFhdFwiLFxuICAgIGRpc3BsYXlTdHlsZTogXCJXZWVyZ2F2ZXN0aWpsXCIsXG4gICAgY3VycmVuY3k6IFwiVmFsdXRhXCIsXG4gICAgdXNlR3JvdXBpbmc6IFwiR2VicnVpayBncm9lcGVyaW5nXCIsXG5cbiAgICBzaG93UHJldmlldzogXCJUb29uIHZvb3JiZWVsZFwiLFxuICAgIGFsbG93TXVsdGlwbGU6IFwiTWVlcmRlcmUgdG9lc3RhYW5cIixcbiAgICBpbWFnZUhlaWdodDogXCJBZmJlZWxkaW5nIGhvb2d0ZVwiLFxuICAgIGltYWdlV2lkdGg6IFwiQWZiZWVsZGluZyBicmVlZHRlXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIkdlZ2V2ZW5zIG9wc2xhYW4gYWxzIHRla3N0XCIsXG4gICAgbWF4U2l6ZTogXCJNYXhpbWFsZSBncm9vdHRlXCIsXG5cbiAgICBodG1sOiBcIkhUTUxcIixcblxuICAgIGNvbHVtbnM6IFwiS29sb21tZW5cIixcbiAgICBjZWxsczogXCJDZWxsZW5cIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIlppam4gYWxsZSByaWplbiB2ZXJlaXN0XCIsXG5cbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcIkhvcml6b250YWxlIHNjcm9sbFwiLFxuICAgIGNlbGxUeXBlOiBcIkNlbHR5cGVcIixcbiAgICBjb2x1bW5zTGF5b3V0OiBcIktvbG9tbWVuIGxheW91dFwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcIkFhbnRhbCBrb2xvbW1lblwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcIktvbG9tIG1pbiBicmVlZHRlXCIsXG5cbiAgICByb3dDb3VudDogXCJSaWplbiB0ZWxsZW5cIixcbiAgICBtaW5Sb3dDb3VudDogXCJNaW4gcmlqZW4gdGVsbGVuXCIsXG4gICAgbWF4Um93Q291bnQ6IFwiTWF4IGFhbnRhbCByaWplblwiLFxuICAgIGtleU5hbWU6IFwiU2xldXRlbCBuYWFtXCIsXG4gICAga2V5RHVwbGljYXRpb25FcnJvcjogXCJLZXkgZHVwbGljYXRpZSBmb3V0XCIsXG4gICAgY29uZmlybURlbGV0ZTogXCJCZXZlc3RpZyB2ZXJ3aWpkZXJlblwiLFxuICAgIGNvbmZpcm1EZWxldGVUZXh0OiBcIkJldmVzdGlnZW4gdmVyd2lqZGVyIHRla3N0XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiUmlqbG9jYXRpZSB0b2V2b2VnZW5cIixcbiAgICBhZGRSb3dUZXh0OiBcIlJpaiB0ZWtzdCB0b2V2b2VnZW5cIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlJpai10ZWtzdCB2ZXJ3aWpkZXJlblwiLFxuXG4gICAgaXRlbXM6IFwiQXJ0aWtlbGVuXCIsXG4gICAgaXRlbVNpemU6IFwiSXRlbSBncm9vdHRlXCIsXG4gICAgY29sQ291bnQ6IFwiS29sb21tZW4gdGVsbGVuXCIsXG5cbiAgICB0ZW1wbGF0ZVRpdGxlOiBcIlNqYWJsb29udGl0ZWxcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcIlNqYWJsb29uYmVzY2hyaWp2aW5nXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJUb2VzdGFhbiBvbSBwYW5lZWwgdG9lIHRlIHZvZWdlblwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiTGFhdCBoZXQgcGFuZWVsIHZlcndpamRlcmVuXCIsXG4gICAgcGFuZWxDb3VudDogXCJBYW50YWwgcGFuZWxlblwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwiTWluIHBhbmVlbCBhYW50YWxcIixcbiAgICBtYXhQYW5lbENvdW50OiBcIk1heCBhYW50YWwgcGFuZWxlblwiLFxuICAgIHBhbmVsc1N0YXRlOiBcIlBhbmVsZW4gc3RhYXRcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiUGFuZWVsIHRla3N0IHRvZXZvZWdlblwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJQYW5lZWwgdmVyd2lqZGVyIHRla3N0XCIsXG4gICAgcGFuZWxQcmV2VGV4dDogXCJQYW5lZWwgdm9yaWdlIHRla3N0XCIsXG4gICAgcGFuZWxOZXh0VGV4dDogXCJQYW5lZWwgdm9sZ2VuZGUgdGVrc3RcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcIlRvb24gdnJhYWdudW1tZXJzXCIsXG4gICAgdGV4dFVwZGF0ZU1vZGU6IFwiTW9kdXMgdGVrc3R2ZXJuaWV1d2luZ1wiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwiVG9vbiBsb3BlbmRlIHJlZWtzXCIsXG4gICAgcmVuZGVyTW9kZTogXCJSZW5kZXItbW9kdXNcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwiU2phYmxvb24gdGl0ZWwgbG9jYXRpZVwiLFxuXG4gICAgcmF0ZVZhbHVlczogXCJUYXJpZWYgd2FhcmRlblwiLFxuICAgIHJhdGVNaW46IFwiVGFyaWVmIG1pblwiLFxuICAgIHJhdGVNYXg6IFwiVGFyaWVmIG1heFwiLFxuICAgIHJhdGVTdGVwOiBcIlRhcmllZnN0YXBcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiTWluIHRhcmllZiBiZXNjaHJpanZpbmdcIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwiTWF4IHRhcmllZiBiZXNjaHJpanZpbmdcIixcblxuICAgIGlucHV0VHlwZTogXCJJbnZvZXJ0eXBlXCIsXG4gICAgc2l6ZTogXCJHcm9vdHRlXCIsXG5cbiAgICBsb2NhbGU6IFwiTG9jYWxlXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIkZvY3VzIGVlcnN0ZSB2cmFhZyBhdXRvbWF0aXNjaFwiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiVm9sdG9vaWRlIGh0bWxcIixcbiAgICBjb21wbGV0ZWRCZWZvcmVIdG1sOiBcIkhUTUwgYmlqIHR3ZWVkZSBwb2dpbmcgaW52dWxsZW5cIixcbiAgICBsb2FkaW5nSHRtbDogXCJIVE1MIHRlIHRvbmVuIGJpaiBvcHN0YXJ0ZW5cIixcbiAgICB0cmlnZ2VyczogXCJUcmlnZ2Vyc1wiLFxuICAgIGNvb2tpZU5hbWU6IFwiQ29va2llIG5hYW1cIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCJWZXJ6ZW5kIHJlc3VsdGFhdCBvcCB2b2xnZW5kZSBwYWdpbmFcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwiVG9uZW4gbmF2aWdhdGlla25vcHBlblwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIlRvb24gdm9yaWdlIGtub3BcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJUb29uIHBhZ2luYXRpdGVsc1wiLFxuICAgIG5hdmlnYXRlVG9Vcmw6IFwiTmFhciBVUkwgZG9vcnN0dXJlblwiLFxuICAgIG5hdmlnYXRlVG9VcmxPbkNvbmRpdGlvbjogXCJDb25kaXRpZSBvbSBuYWFyIFVSTCBkb29yIHRlIHN0dXJlblwiLFxuICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJDb25kaXRpZSBvbSBIVE1MIGJpaiBhZnJvbmRlbiB0ZSB0b25lblwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlRvb24gdm9sdG9vaWRlIHBhZ2luYVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJUb29uIHBhZ2luYW51bW1lcnNcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiVnJhYWcgZm91dGxvY2F0aWVcIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwiVG9vbiB2b29ydGdhbmdzYmFsa1wiLFxuICAgIHByb2dyZXNzQmFyVHlwZTogXCJUeXBlIHZvb3J0Z2FuZ3NiYWxrXCIsXG4gICAgcXVlc3Rpb25zT25QYWdlTW9kZTogXCJWcmFnZW4gcGVyIHBhZ2luYVwiLFxuICAgIG1vZGU6IFwiTW9kdXNcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcIkdhIGF1dG9tYXRpc2NoIG5hYXIgZGUgdm9sZ2VuZGUgcGFnaW5hXCIsXG4gICAgY2hlY2tFcnJvcnNNb2RlOiBcIk1vZHVzIGZvdXRjb250cm9sZVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIlZlcndpamRlciBvbnppY2h0YmFyZSB3YWFyZGVuXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIlN0YXJ0IGVucXXDqnRldGVrc3RcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiUGFnaW5hIHZvcmlnZSB0ZWtzdFwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJQYWdpbmEgdm9sZ2VuZGUgdGVrc3RcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiVm9sbGVkaWdlIHRla3N0XCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlZlcmVpc3RlIHRla3N0XCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIlZyYWFnIHN0YXJ0IGluZGV4XCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcIlZyYWFnIHRpdGVsIHNqYWJsb29uXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIkVlcnN0ZSBwYWdpbmEgaXMgZ2VzdGFydFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJJcyDDqcOpbiBwYWdpbmFcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIk1heGltYWxlIHRpamQgb20gcGFnaW5hIHRlIHZvbHRvb2llblwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIlRvb24gdGltZXIgcGFuZWVsXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIlRvb24gdGltZXIgcGFuZWVsbW9kdXNcIixcblxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcIlN0YW5kYWFyZCBwYW5lZWx3YWFyZGVcIixcbiAgICBkZWZhdWx0Um93VmFsdWU6IFwiU3RhbmRhYXJkIHJpandhYXJkZVwiLFxuICAgIHNob3dOb25lSXRlbTogXCJIZWVmdCBlciBnZWVuXCIsXG4gICAgbm9uZVRleHQ6IFwiR2VlbiB0ZWtzdFwiLFxuXG4gICAgdGV4dDogXCJUZWtzdFwiLFxuICB9LFxufTtcbi8vVW5jb21tZW50IHRoaXMgbGluZSBvbiBjcmVhdGluZyBhIHRyYW5zbGF0aW9uIGZpbGUuIFlvdSBzaG91bGQgcmVwbGFjZSBcImVuXCIgYW5kIGVuU3RyaW5ncyB3aXRoIHlvdXIgbG9jYWxlIChcImZyXCIsIFwiZGVcIiBhbmQgc28gb24pIGFuZCB5b3VyIHZhcmlhYmxlLlxuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJubFwiXSA9IG5sU3RyaW5ncztcbiIsIi8vIFVuY29tbWVudCB0aGUgbGluZSBiZWxvdyBpZiB5b3UgY3JlYXRlIGEgY3VzdG9tIGRpY3Rpb25hcnlcbi8vIGltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiwgZGVmYXVsdFN0cmluZ3MgfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbmV4cG9ydCB2YXIgZW5TdHJpbmdzID0ge1xuICAvL3N1cnZleSB0ZW1wbGF0ZXNcbiAgc3VydmV5OiB7XG4gICAgZWRpdDogXCJFZGl0XCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCJXYXRjaCBhbmQgbGVhcm4gaG93IHRvIGNyZWF0ZSBzdXJ2ZXlzXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDpcbiAgICAgIFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0gycnU5b2tJY29vTlpmcElieXE0cVE/dmlld19hcz1zdWJzY3JpYmVyXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIlBsZWFzZSBkcm9wIGEgcXVlc3Rpb24gaGVyZSBmcm9tIHRoZSBUb29sYm94LlwiLFxuICAgIGFkZExvZ2ljSXRlbTogXCJDcmVhdGUgYSBydWxlIHRvIGN1c3RvbWl6ZSB0aGUgZmxvdyBvZiB0aGUgc3VydmV5LlwiLFxuICAgIGNvcHk6IFwiQ29weVwiLFxuICAgIGR1cGxpY2F0ZTogXCJEdXBsaWNhdGVcIixcbiAgICBhZGRUb1Rvb2xib3g6IFwiQWRkIHRvIHRvb2xib3hcIixcbiAgICBkZWxldGVQYW5lbDogXCJEZWxldGUgUGFuZWxcIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCJEZWxldGUgUXVlc3Rpb25cIixcbiAgICBjb252ZXJ0VG86IFwiQ29udmVydCB0b1wiLFxuICAgIGRyYWc6IFwiRHJhZyBlbGVtZW50XCIsXG4gIH0sXG4gIC8vcXVlc3Rpb25UeXBlc1xuICBxdDoge1xuICAgIGRlZmF1bHQ6IFwiRGVmYXVsdFwiLFxuICAgIGNoZWNrYm94OiBcIkNoZWNrYm94XCIsXG4gICAgY29tbWVudDogXCJDb21tZW50XCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwiSW1hZ2UgcGlja2VyXCIsXG4gICAgcmFua2luZzogXCJSYW5raW5nXCIsXG4gICAgaW1hZ2U6IFwiSW1hZ2VcIixcbiAgICBkcm9wZG93bjogXCJEcm9wZG93blwiLFxuICAgIGZpbGU6IFwiRmlsZVwiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIG1hdHJpeDogXCJNYXRyaXggKHNpbmdsZSBjaG9pY2UpXCIsXG4gICAgbWF0cml4ZHJvcGRvd246IFwiTWF0cml4IChtdWx0aXBsZSBjaG9pY2UpXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCJNYXRyaXggKGR5bmFtaWMgcm93cylcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwiTXVsdGlwbGUgVGV4dFwiLFxuICAgIHBhbmVsOiBcIlBhbmVsXCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIlBhbmVsIChkeW5hbWljIHBhbmVscylcIixcbiAgICByYWRpb2dyb3VwOiBcIlJhZGlvZ3JvdXBcIixcbiAgICByYXRpbmc6IFwiUmF0aW5nXCIsXG4gICAgdGV4dDogXCJTaW5nbGUgSW5wdXRcIixcbiAgICBib29sZWFuOiBcIkJvb2xlYW5cIixcbiAgICBleHByZXNzaW9uOiBcIkV4cHJlc3Npb24gKHJlYWQtb25seSlcIixcbiAgICBzaWduYXR1cmVwYWQ6IFwiU2lnbmF0dXJlIHBhZFwiLFxuICAgIGZsb3dwYW5lbDogXCJGbG93IFBhbmVsXCIsXG4gIH0sXG4gIC8vU3RyaW5ncyBpbiBFZGl0b3JcbiAgZWQ6IHtcbiAgICBkZWZhdWx0TG9jYWxlOiBcIkRlZmF1bHQgKHswfSlcIixcbiAgICBzdXJ2ZXk6IFwiU3VydmV5XCIsXG4gICAgc2V0dGluZ3M6IFwiU3VydmV5IFNldHRpbmdzXCIsXG4gICAgc2V0dGluZ3NUb29sdGlwOiBcIk9wZW4gc3VydmV5IHNldHRpbmdzXCIsXG4gICAgLy9vcGplY3RQcm9wZXJ0aWVzSGVhZGVyOiBcIkFkdmFuY2VkXCIsXG4gICAgLy9zaG93T2JqZWN0UHJvcGVydGllczogXCJTaG93IE9iamVjdCBQcm9wZXJ0aWVzXCIsXG4gICAgLy9oaWRlT2JqZWN0UHJvcGVydGllczogXCJIaWRlIE9iamVjdCBQcm9wZXJ0aWVzXCIsXG4gICAgc2hvd1BhbmVsOiBcIlNob3cgUGFuZWxcIixcbiAgICBoaWRlUGFuZWw6IFwiSGlkZSBQYW5lbFwiLFxuICAgIC8vZWRpdFN1cnZleTogXCJFZGl0IFN1cnZleVwiLFxuICAgIGFkZE5ld1BhZ2U6IFwiQWRkIE5ldyBQYWdlXCIsXG4gICAgbW92ZVJpZ2h0OiBcIlNjcm9sbCB0byB0aGUgUmlnaHRcIixcbiAgICBtb3ZlTGVmdDogXCJTY3JvbGwgdG8gdGhlIExlZnRcIixcbiAgICBkZWxldGVQYWdlOiBcIkRlbGV0ZSBQYWdlXCIsXG4gICAgZWRpdFBhZ2U6IFwiRWRpdCBQYWdlXCIsXG4gICAgZWRpdDogXCJFZGl0XCIsXG4gICAgbmV3UGFnZU5hbWU6IFwicGFnZVwiLFxuICAgIG5ld1F1ZXN0aW9uTmFtZTogXCJxdWVzdGlvblwiLFxuICAgIG5ld1BhbmVsTmFtZTogXCJwYW5lbFwiLFxuICAgIG5ld1RleHRJdGVtTmFtZTogXCJ0ZXh0XCIsXG4gICAgdGVzdFN1cnZleTogXCJUZXN0IFN1cnZleVwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJUZXN0IFN1cnZleSBBZ2FpblwiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCJTdXJ2ZXkgd2lkdGg6IFwiLFxuICAgIG5hdmlnYXRlVG9Nc2c6IFwiWW91IGhhZCB0byBuYXZpZ2F0ZSB0bzpcIixcbiAgICBsb2dpYzogXCJTdXJ2ZXkgTG9naWNcIixcbiAgICBlbWJlZFN1cnZleTogXCJFbWJlZCBTdXJ2ZXlcIixcbiAgICB0cmFuc2xhdGlvbjogXCJUcmFuc2xhdGlvblwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwiU2F2ZSBTdXJ2ZXlcIixcbiAgICBzYXZlU3VydmV5VG9vbHRpcDogXCJTYXZlIFN1cnZleVwiLFxuICAgIGRlc2lnbmVyOiBcIlN1cnZleSBEZXNpZ25lclwiLFxuICAgIGpzb25FZGl0b3I6IFwiSlNPTiBFZGl0b3JcIixcbiAgICB1bmRvOiBcIlVuZG9cIixcbiAgICByZWRvOiBcIlJlZG9cIixcbiAgICB1bmRvVG9vbHRpcDogXCJVbmRvIGxhc3QgY2hhbmdlXCIsXG4gICAgcmVkb1Rvb2x0aXA6IFwiUmVkbyB0aGUgY2hhbmdlXCIsXG4gICAgY29weTogXCJDb3B5XCIsXG4gICAgY3V0OiBcIkN1dFwiLFxuICAgIHBhc3RlOiBcIlBhc3RlXCIsXG4gICAgY29weVRvb2x0aXA6IFwiQ29weSBzZWxlY3Rpb24gdG8gY2xpcGJvYXJkXCIsXG4gICAgY3V0VG9vbHRpcDogXCJDdXQgc2VsZWN0aW9uIHRvIGNsaXBib2FyZFwiLFxuICAgIHBhc3RlVG9vbHRpcDogXCJQYXN0ZSBmcm9tIGNsaXBib2FyZFwiLFxuICAgIG9wdGlvbnM6IFwiT3B0aW9uc1wiLFxuICAgIGdlbmVyYXRlVmFsaWRKU09OOiBcIkdlbmVyYXRlIFZhbGlkIEpTT05cIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJHZW5lcmF0ZSBSZWFkYWJsZSBKU09OXCIsXG4gICAgdG9vbGJveDogXCJUb29sYm94XCIsXG4gICAgXCJwcm9wZXJ0eS1ncmlkXCI6IFwiUHJvcGVydGllc1wiLFxuICAgIHRvb2xib3hHZW5lcmFsQ2F0ZWdvcnk6IFwiR2VuZXJhbFwiLFxuICAgIC8vZGVsU2VsT2JqZWN0OiBcIkRlbGV0ZSBzZWxlY3RlZCBvYmplY3RcIixcbiAgICAvL2VkaXRTZWxPYmplY3Q6IFwiRWRpdCBzZWxlY3RlZCBvYmplY3RcIixcbiAgICBjb3JyZWN0SlNPTjogXCJQbGVhc2UgY29ycmVjdCBKU09OLlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwiU3VydmV5IFJlc3VsdDogXCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIkFzIFRhYmxlXCIsXG4gICAgc3VydmV5UmVzdWx0c0pzb246IFwiQXMgSlNPTlwiLFxuICAgIHJlc3VsdHNUaXRsZTogXCJRdWVzdGlvbiBUaXRsZVwiLFxuICAgIHJlc3VsdHNOYW1lOiBcIlF1ZXN0aW9uIE5hbWVcIixcbiAgICByZXN1bHRzVmFsdWU6IFwiQW5zd2VyIFZhbHVlXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCJEaXNwbGF5IFZhbHVlXCIsXG4gICAgbW9kaWZpZWQ6IFwiTW9kaWZpZWRcIixcbiAgICBzYXZpbmc6IFwiU2F2aW5nXCIsXG4gICAgc2F2ZWQ6IFwiU2F2ZWRcIixcbiAgICBwcm9wZXJ0eUVkaXRvckVycm9yOiBcIkVycm9yOlwiLFxuICAgIHNhdmVFcnJvcjogXCJFcnJvciEgRWRpdG9yIGNvbnRlbnQgaXMgbm90IHNhdmVkLlwiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwiU2VsZWN0IGxhbmd1YWdlIHRvIHRyYW5zbGF0ZVwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwiU2hvdyBhbGwgc3RyaW5nc1wiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcIlNob3cgYWxsIHBhZ2VzXCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6IFwiTm8gc3RyaW5ncyB0byB0cmFuc2xhdGUuIFBsZWFzZSwgY2hhbmdlIHRoZSBmaWx0ZXIuXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCJFeHBvcnQgdG8gQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25JbXBvcnRGcm9tU0NWQnV0dG9uOiBcIkltcG9ydCBmcm9tIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDogXCJNZXJnZSB7MH0gd2l0aCBkZWZhdWx0IGxvY2FsZVwiLFxuICAgIGJvbGQ6IFwiQm9sZFwiLFxuICAgIGl0YWxpYzogXCJJdGFsaWNcIixcbiAgICB1bmRlcmxpbmU6IFwiVW5kZXJsaW5lXCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCJBZGQgcXVlc3Rpb24uLi5cIixcbiAgICBzZWxlY3RQYWdlOiBcIlNlbGVjdCBwYWdlLi4uXCIsXG4gICAgY2hvb3NlRWxlbWVudDogXCJDaG9vc2UgZWxlbWVudC4uLlwiLFxuICAgIC8vY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHQ6IFwiU2hvdyBpZjpcIixcbiAgICBsZzoge1xuICAgICAgYWRkTmV3SXRlbTogXCJcIiwgLy9CeSBkZWZhdWx0IHRoZSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHBlLmFkZE5ldyAnQWRkIE5ldycsIHlvdSBjYW4gc2V0IGl0IHRvICdBZGQgTmV3IFJ1bGUnIGZvciBleGFtcGxlLlxuICAgICAgLy9Mb2dpYyB0YWIgc3RyaW5nc1xuICAgICAgcGFnZV92aXNpYmlsaXR5TmFtZTogXCJQYWdlIHZpc2liaWxpdHlcIixcbiAgICAgIHBhZ2VfZW5hYmxlTmFtZTogXCJQYWdlIGVuYWJsZS9kaXNhYmxlXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5TmFtZTogXCJQYW5lbCB2aXNpYmlsaXR5XCIsXG4gICAgICBwYW5lbF9lbmFibGVOYW1lOiBcIlBhbmVsIGVuYWJsZS9kaXNhYmxlXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCJRdWVzdGlvbiB2aXNpYmlsaXR5XCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVOYW1lOiBcIlF1ZXN0aW9uIGVuYWJsZS9kaXNhYmxlXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlTmFtZTogXCJRdWVzdGlvbiBvcHRpb25hbCByZXF1aXJlZFwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZU5hbWU6IFwiQ29tcGxldGUgc3VydmV5XCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlTmFtZTogXCJTZXQgcXVlc3Rpb24gdmFsdWVcIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlTmFtZTogXCJDb3B5IHF1ZXN0aW9uIHZhbHVlXCIsXG4gICAgICB0cmlnZ2VyX3NraXBOYW1lOiBcIlNraXAgdG8gcXVlc3Rpb25cIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbk5hbWU6IFwiUnVuIGN1c3RvbSBleHByZXNzaW9uXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25OYW1lOiBcIkN1c3RvbSAnVGhhbmsgeW91IHBhZ2UnIHRleHRcIixcblxuICAgICAgcGFnZV92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiTWFrZSB0aGUgcGFnZSB2aXNpYmxlIHdoZW4gdGhlIGxvZ2ljIGV4cHJlc3Npb24gcmV0dXJucyB0cnVlLiBPdGhlcndpc2Uga2VlcCBpdCBpbnZpc2libGUuXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiTWFrZSB0aGUgcGFuZWwgdmlzaWJsZSB3aGVuIHRoZSBsb2dpYyBleHByZXNzaW9uIHJldHVybnMgdHJ1ZS4gT3RoZXJ3aXNlIGtlZXAgaXQgaW52aXNpYmxlLlwiLFxuICAgICAgcGFuZWxfZW5hYmxlRGVzY3JpcHRpb246XG4gICAgICAgIFwiTWFrZSB0aGUgcGFuZWwsIGFuZCBhbGwgZWxlbWVudHMgaW5zaWRlIGl0LCBlbmFibGUgd2hlbiB0aGUgbG9naWMgZXhwcmVzc2lvbiByZXR1cm5zIHRydWUuIE90aGVyd2lzZSBrZWVwIHRoZW0gZGlzYWJsZWQuXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiTWFrZSB0aGUgcXVlc3Rpb24gdmlzaWJsZSB3aGVuIHRoZSBsb2dpYyBleHByZXNzaW9uIHJldHVybnMgdHJ1ZS4gT3RoZXJ3aXNlIGtlZXAgaXQgaW52aXNpYmxlLlwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlRGVzY3JpcHRpb246XG4gICAgICAgIFwiTWFrZSB0aGUgcXVlc3Rpb24gZW5hYmxlIHdoZW4gdGhlIGxvZ2ljIGV4cHJlc3Npb24gcmV0dXJucyB0cnVlLiBPdGhlcndpc2Uga2VlcCBpdCBkaXNhYmxlZC5cIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJRdWVzdGlvbiBiZWNvbWVzIHJlcXVpcmVkIHdoZW4gdGhlIGxvZ2ljIGV4cHJlc3Npb24gcmV0dXJucyB0cnVlLlwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIldoZW4gdGhlIGxvZ2ljIGV4cHJlc3Npb24gcmV0dXJucyB0cnVlIHRoZW4gdGhlIHN1cnZleSBiZWNvbWVzIGNvbXBsZXRlZCBhbmQgYW4gZW5kLXVzZXIgc2VlIHRoZSAnVGhhbmsgeW91IHBhZ2UnLlwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIldoZW4gcXVlc3Rpb24gdmFsdWVzLCB0aGF0IGFyZSB1c2VkIGluIHRoZSBsb2dpYyBleHByZXNzaW9uLCBhcmUgY2hhbmdlZCBhbmQgdGhlIGxvZ2ljIGV4cHJlc3Npb24gcmV0dXJucyB0cnVlLCB0aGVuIHRoZSB2YWx1ZSBpcyBzZXQgdG8gdGhlIHNlbGVjdGVkIHF1ZXN0aW9uLlwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJXaGVuIHF1ZXN0aW9uIHZhbHVlcywgdGhhdCBhcmUgdXNlZCBpbiB0aGUgbG9naWMgZXhwcmVzc2lvbiwgYXJlIGNoYW5nZWQgYW5kIHRoZSBsb2dpYyBleHByZXNzaW9uIHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUgdmFsdWUgb2Ygb25lIHNlbGVjdGVkIHF1ZXN0aW9uIGlzIGNvcGllZCB0byBhbm90aGVyIHNlbGVjdGVkIHF1ZXN0aW9uLlwiLFxuICAgICAgdHJpZ2dlcl9za2lwRGVzY3JpcHRpb246XG4gICAgICAgIFwiV2hlbiB0aGUgbG9naWMgZXhwcmVzc2lvbiByZXR1cm5zIHRydWUgdGhlbiB0aGUgc3VydmV5IHNraXAgdG8gLyBmb2N1cyB0aGUgc2VsZWN0ZWQgcXVlc3Rpb24uXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25EZXNjcmlwdGlvbjpcbiAgICAgICAgXCJXaGVuIHRoZSBsb2dpYyBleHByZXNzaW9uIHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUgY3VzdG9tIGV4cHJlc3Npb24gaXMgcGVyZm9ybWVkLiBZb3UgbWF5IG9wdGlvbmFsbHkgc2V0IHRoaXMgZXhwcmVzc2lvbiByZXN1bHQgaW50byB0aGUgc2VsZWN0ZWQgcXVlc3Rpb25cIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkRlc2NyaXB0aW9uOlxuICAgICAgICBcIklmIHRoZSBsb2dpYyBleHByZXNzaW9uIHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUgZGVmYXVsdCB0ZXh0IGZvciB0aGUgJ1RoYW5rIHlvdSBwYWdlJyBpcyBjaGFuZ2VkIHRvIHRoZSBnaXZlbiBvbmUuXCIsXG5cbiAgICAgIGl0ZW1FeHByZXNzaW9uVGV4dDogXCJXaGVuIGV4cHJlc3Npb246ICd7MH0nIHJldHVybnMgdHJ1ZTpcIiwgLy97MH0gLSB0aGUgZXhwcmVzc2lvblxuICAgICAgcGFnZV92aXNpYmlsaXR5VGV4dDogXCJNYWtlIHBhZ2UgezB9IHZpc2libGVcIiwgLy97MH0gcGFnZSBuYW1lXG4gICAgICBwYW5lbF92aXNpYmlsaXR5VGV4dDogXCJNYWtlIHBhbmVsIHswfSB2aXNpYmxlXCIsIC8vezB9IHBhbmVsIG5hbWVcbiAgICAgIHBhbmVsX2VuYWJsZVRleHQ6IFwiTWFrZSBwYW5lbCB7MH0gZW5hYmxlXCIsIC8vezB9IHBhbmVsIG5hbWVcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlUZXh0OiBcIk1ha2UgcXVlc3Rpb24gezB9IHZpc2libGVcIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgcXVlc3Rpb25fZW5hYmxlVGV4dDogXCJNYWtlIHF1ZXN0aW9uIHswfSBlbmFibGVcIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgcXVlc3Rpb25fcmVxdWlyZVRleHQ6IFwiTWFrZSBxdWVzdGlvbiB7MH0gcmVxdWlyZWRcIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZVRleHQ6IFwiU3VydmV5IGJlY29tZXMgY29tcGxldGVkXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCJTZXQgaW50byBxdWVzdGlvbjogezB9IHZhbHVlIHsxfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lLCB7MX0gc2V0VmFsdWVcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlVGV4dDogXCJDb3B5IGludG8gcXVlc3Rpb246IHswfSB2YWx1ZSBmcm9tIHF1ZXN0aW9uIHsxfVwiLCAvL3swfSBhbmQgezF9IHF1ZXN0aW9uIG5hbWVzXG4gICAgICB0cmlnZ2VyX3NraXBUZXh0OiBcIlN1cnZleSBza2lwIHRvIHRoZSBxdWVzdGlvbiB7MH1cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDE6IFwiUnVuIGV4cHJlc3Npb246ICd7MH0nXCIsIC8vezB9IHRoZSBleHByZXNzaW9uXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MjogXCIgYW5kIHNldCBpdHMgcmVzdWx0IGludG8gcXVlc3Rpb246IHswfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25UZXh0OlxuICAgICAgICBcIlNob3cgY3VzdG9tIHRleHQgZm9yIHRoZSAnVGhhbmsgeW91IHBhZ2UnLlwiLFxuXG4gICAgICBjb25kaXRpb25zOiBcIkNvbmRpdGlvbihzKVwiLFxuICAgICAgYWN0aW9uczogXCJBY3Rpb24ocylcIixcbiAgICAgIGV4cHJlc3Npb25FZGl0b3JUaXRsZTogXCJEZWZpbmUgY29uZGl0aW9uKHMpXCIsXG4gICAgICBhY3Rpb25zRWRpdG9yVGl0bGU6IFwiRGVmaW5lIGFjdGlvbihzKVwiLFxuXG4gICAgICBkZWxldGVBY3Rpb246IFwiRGVsZXRlIGFjdGlvblwiLFxuICAgICAgYWRkTmV3QWN0aW9uOiBcIkFkZCBuZXcgYWN0aW9uXCIsXG4gICAgICBzZWxlY3RlZEFjdGlvbkNhcHRpb246IFwiU2VsZWN0IGFuIGFjdGlvbiB0byBhZGQuLi5cIixcblxuICAgICAgZXhwcmVzc2lvbkludmFsaWQ6XG4gICAgICAgIFwiVGhlIGxvZ2ljIGV4cHJlc3Npb24gaXMgZW1wdHkgb3IgaW52YWxpZC4gUGxlYXNlIGNvcnJlY3QgaXQuXCIsXG4gICAgICBub0FjdGlvbkVycm9yOiBcIlBsZWFzZSwgYWRkIGF0IGxlYXN0IG9uZSBhY3Rpb24uXCIsXG4gICAgICBhY3Rpb25JbnZhbGlkOiBcIlBsZWFzZSwgZml4IHByb2JsZW1zIGluIHlvdXIgYWN0aW9uKHMpLlwiLFxuICAgICAgZXhwcmVzc2lvblNldHVwOiBcIlwiLFxuICAgICAgYWN0aW9uc1NldHVwOiBcIlwiLFxuICAgIH0sXG4gIH0sXG4gIC8vUHJvcGVydHkgbmFtZXMgaW4gdGFibGUgaGVhZGVyc1xuICAvLyBwZWw6IHtcbiAgLy8gICBpc1JlcXVpcmVkOiBcIlJlcXVpcmVkP1wiXG4gIC8vIH0sXG4gIC8vUHJvcGVydHkgRWRpdG9yc1xuICBwZToge1xuICAgIGFwcGx5OiBcIkFwcGx5XCIsXG4gICAgb2s6IFwiT0tcIixcbiAgICBzYXZlOiBcIlNhdmVcIixcbiAgICBzYXZlVG9vbHRpcDogXCJTYXZlXCIsXG4gICAgY2FuY2VsOiBcIkNhbmNlbFwiLFxuICAgIHJlc2V0OiBcIlJlc2V0XCIsXG4gICAgcmVmcmVzaDogXCJSZWZyZXNoXCIsXG4gICAgLy8gY2xvc2U6IFwiQ2xvc2VcIixcbiAgICBkZWxldGU6IFwiRGVsZXRlXCIsXG4gICAgYWRkOiBcIkFkZFwiLFxuICAgIGFkZE5ldzogXCJBZGQgTmV3XCIsXG4gICAgYWRkSXRlbTogXCJDbGljayB0byBhZGQgYW4gaXRlbS4uLlwiLFxuICAgIGFkZE90aGVyOiBcIk90aGVyXCIsXG4gICAgYWRkU2VsZWN0QWxsOiBcIlNlbGVjdCBBbGxcIixcbiAgICBhZGROb25lOiBcIk5vbmVcIixcbiAgICByZW1vdmVBbGw6IFwiUmVtb3ZlIEFsbFwiLFxuICAgIGVkaXQ6IFwiRWRpdFwiLFxuICAgIHZpZXc6IFwiVmlld1wiLFxuICAgIGJhY2s6IFwiUmV0dXJuIHdpdGhvdXQgc2F2aW5nXCIsXG4gICAgYmFja1Rvb2x0aXA6IFwiUmV0dXJuIHdpdGhvdXQgc2F2aW5nXCIsXG4gICAgc2F2ZUFuZEJhY2s6IFwiU2F2ZSBhbmQgcmV0dXJuXCIsXG4gICAgc2F2ZUFuZEJhY2tUb29sdGlwOiBcIlNhdmUgYW5kIHJldHVyblwiLFxuICAgIC8vIGl0ZW1WYWx1ZUVkaXQ6IFwiVmlzaWJsZSBJZlwiLFxuICAgIGVkaXRDaG9pY2VzOiBcIkVkaXQgQ2hvaWNlc1wiLFxuICAgIHNob3dDaG9pY2VzOiBcIlNob3cgQ2hvaWNlc1wiLFxuICAgIG1vdmU6IFwiTW92ZVwiLFxuICAgIGVtcHR5OiBcIjxlbXB0eT5cIixcbiAgICAvLyBub3RFbXB0eTogXCI8ZWRpdCB2YWx1ZT5cIixcbiAgICBmYXN0RW50cnk6IFwiRmFzdCBFbnRyeVwiLFxuICAgIGZvcm1FbnRyeTogXCJGb3JtIEVudHJ5XCIsXG4gICAgdGVzdFNlcnZpY2U6IFwiVGVzdCB0aGUgc2VydmljZVwiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcIlBsZWFzZSBzZWxlY3QgdGhlIGVsZW1lbnRcIixcbiAgICBjb25kaXRpb25BY3Rpb25FbXB0eTogXCJQbGVhc2Ugc2VsZWN0IHRoZSBhY3Rpb25cIixcbiAgICBjb25kaXRpb25TZWxlY3RRdWVzdGlvbjogXCJTZWxlY3QgcXVlc3Rpb24uLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYWdlOiBcIlNlbGVjdCBwYWdlLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFuZWw6IFwiU2VsZWN0IHBhbmVsLi4uXCIsXG4gICAgY29uZGl0aW9uVmFsdWVRdWVzdGlvblRpdGxlOiBcIlBsZWFzZSBlbnRlci9zZWxlY3QgdGhlIHZhbHVlXCIsXG4gICAgLy8gY29uZGl0aW9uSGVscDpcbiAgICAvLyAgIFwiUGxlYXNlIGVudGVyIGEgYm9vbGVhbiBleHByZXNzaW9uLiBJdCBzaG91bGQgcmV0dXJuIHRydWUgdG8ga2VlcCB0aGUgcXVlc3Rpb24vcGFnZSB2aXNpYmxlLiBGb3IgZXhhbXBsZToge3F1ZXN0aW9uMX0gPSAndmFsdWUxJyBvciAoe3F1ZXN0aW9uMn0gKiB7cXVlc3Rpb240fSAgPiAyMCBhbmQge3F1ZXN0aW9uM30gPCA1KVwiLFxuICAgIGV4cHJlc3Npb25IZWxwOlxuICAgICAgXCJZb3UgY2FuIHVzZSBjdXJseSBicmFja2V0cyB0byBnZXQgYWNjZXNzIHRvIHRoZSBxdWVzdGlvbiB2YWx1ZXM6IHtxdWVzdGlvbjF9ICsge3F1ZXN0aW9uMn0sICh7cHJpY2V9KntxdWFudGl0eX0pICogKDEwMCAtIHtkaXNjb3VudH0pLiBZb3UgY2FuIHVzZSBmdW5jdGlvbnMgYXM6IGlpZigpLCB0b2RheSgpLCBhZ2UoKSwgbWluKCksIG1heCgpLCBjb3VudCgpLCBhdmcoKSBhbmQgb3RoZXJzLlwiLFxuICAgIGFjZUVkaXRvckhlbHA6IFwiUHJlc3MgY3RybCtzcGFjZSB0byBnZXQgZXhwcmVzc2lvbiBjb21wbGV0aW9uIGhpbnRcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCJDdXJyZW50IHJvd1wiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwiQ3VycmVudCBwYW5lbFwiLFxuICAgIHNob3dNb3JlOiBcIkZvciBtb3JlIGRldGFpbHMgcGxlYXNlIGNoZWNrIHRoZSBkb2N1bWVudGF0aW9uXCIsXG4gICAgLy8gY29uZGl0aW9uU2hvd01vcmVVcmw6XG4gICAgLy8gICBcImh0dHBzOi8vc3VydmV5anMuaW8vRG9jdW1lbnRhdGlvbi9MaWJyYXJ5UGFyYW1ldGVyP2lkPVF1ZXN0aW9uJnBhcmFtZXRlcj12aXNpYmxlSWZcIixcbiAgICBhc3Npc3RhbnRUaXRsZTogXCJBdmFpbGFibGUgcXVlc3Rpb25zOlwiLFxuICAgIGNlbGxzRW1wdHlSb3dzQ29sdW1uczogXCJUaGVyZSBpcyBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGNvbHVtbiBvciByb3dcIixcblxuICAgIHByb3BlcnR5SXNFbXB0eTogXCJQbGVhc2UgZW50ZXIgYSB2YWx1ZVwiLFxuICAgIHByb3BlcnR5SXNOb1VuaXF1ZTogXCJQbGVhc2UgZW50ZXIgYSB1bmlxdWUgdmFsdWVcIixcbiAgICBwcm9wZXJ0eU5hbWVJc05vdFVuaXF1ZTogXCJQbGVhc2UgZW50ZXIgYSB1bmlxdWUgbmFtZVwiLFxuICAgIGxpc3RJc0VtcHR5OiBcIkFkZCBhIG5ldyBpdGVtXCIsXG4gICAgZXhwcmVzc2lvbklzRW1wdHk6IFwiRXhwcmVzc2lvbiBpcyBlbXB0eVwiLFxuICAgIHZhbHVlOiBcIlZhbHVlXCIsXG4gICAgdGV4dDogXCJUZXh0XCIsXG4gICAgcm93aWQ6IFwiUm93IElEXCIsXG4gICAgaW1hZ2VMaW5rOiBcIkltYWdlICh2aWRlbykgbGlua1wiLFxuICAgIGNvbHVtbkVkaXQ6IFwiRWRpdCBjb2x1bW46IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIkVkaXQgaXRlbTogezB9XCIsXG4gICAgaXRlbVZpZXc6IFwiVmlldyBpdGVtOiB7MH1cIixcblxuICAgIHVybDogXCJVUkxcIixcbiAgICBwYXRoOiBcIlBhdGhcIixcbiAgICB2YWx1ZU5hbWU6IFwiVmFsdWUgbmFtZVwiLFxuICAgIHRpdGxlTmFtZTogXCJUaXRsZSBuYW1lXCIsXG4gICAgYWxsb3dFbXB0eVJlc3BvbnNlOiBcIkFsbG93IGVtcHR5IHJlc3Bvc2VcIixcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiBcIklucHV0IHRpdGxlIGhlcmVcIixcbiAgICBzdXJ2ZXlUaXRsZVBsYWNlaG9sZGVyOiBcIklucHV0IHN1cnZleSB0aXRsZSBoZXJlXCIsXG4gICAgcGFnZVRpdGxlUGxhY2Vob2xkZXI6IFwiSW5wdXQgcGFnZSB0aXRsZSBoZXJlXCIsXG4gICAgZGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJFbnRlciBhIGRlc2NyaXB0aW9uXCIsXG4gICAgc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJFbnRlciBhIHN1cnZleSBkZXNjcmlwdGlvblwiLFxuICAgIHBhZ2VEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIkVudGVyIGEgcGFnZSBkZXNjcmlwdGlvblwiLFxuXG4gICAgc2hvd090aGVySXRlbTogXCJIYXMgb3RoZXIgaXRlbVwiLFxuICAgIG90aGVyVGV4dDogXCJPdGhlciBpdGVtIHRleHRcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiSGFzIG5vbmUgaXRlbVwiLFxuICAgIG5vbmVUZXh0OiBcIk5vbmUgaXRlbSB0ZXh0XCIsXG4gICAgaGFzU2VsZWN0QWxsOiBcIkhhcyBzZWxlY3QgYWxsIGl0ZW1cIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIlNlbGVjdCBhbGwgaXRlbSB0ZXh0XCIsXG4gICAgY2hvaWNlc01pbjogXCJNaW5pbXVtIHZhbHVlIGZvciBhdXRvIGdlbmVyYXRlZCBpdGVtc1wiLFxuICAgIGNob2ljZXNNYXg6IFwiTWF4aW11bSB2YWx1ZSBmb3IgYXV0byBnZW5lcmF0ZWQgaXRlbXNcIixcbiAgICBjaG9pY2VzU3RlcDogXCJUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGF1dG8gZ2VuZXJhdGVkIGl0ZW1zXCIsXG4gICAgbmFtZTogXCJOYW1lXCIsXG4gICAgdGl0bGU6IFwiVGl0bGVcIixcbiAgICBjZWxsVHlwZTogXCJDZWxsIHR5cGVcIixcbiAgICBjb2xDb3VudDogXCJDb2x1bW4gY291bnRcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiU2VsZWN0IGNob2ljZXMgb3JkZXJcIixcbiAgICB2aXNpYmxlOiBcIklzIHZpc2libGU/XCIsXG4gICAgaXNSZXF1aXJlZDogXCJJcyByZXF1aXJlZD9cIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIlJlcXVpcmUgYW5zd2VyIGZvciBhbGwgcm93c1wiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OiBcIlJlcXVpcmVkIGVycm9yIHRleHRcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIklzIHN0YXJ0IHdpdGggbmV3IGxpbmU/XCIsXG4gICAgcm93czogXCJSb3cgY291bnRcIixcbiAgICBjb2xzOiBcIkNvbHVtbiBjb3VudFwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIklucHV0IHBsYWNlIGhvbGRlclwiLFxuICAgIHNob3dQcmV2aWV3OiBcIlNob3cgcHJldmlldyBhcmVhXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIlN0b3JlIGZpbGUgY29udGVudCBpbiBKU09OIHJlc3VsdCBhcyB0ZXh0XCIsXG4gICAgbWF4U2l6ZTogXCJNYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkltYWdlIGhlaWdodFwiLFxuICAgIGltYWdlV2lkdGg6IFwiSW1hZ2Ugd2lkdGhcIixcbiAgICByb3dDb3VudDogXCJSb3cgY291bnRcIixcbiAgICBjb2x1bW5MYXlvdXQ6IFwiQ29sdW1ucyBsYXlvdXRcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJBZGQgcm93IGJ1dHRvbiBsb2NhdGlvblwiLFxuICAgIGFkZFJvd1RleHQ6IFwiQWRkIHJvdyBidXR0b24gdGV4dFwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiUmVtb3ZlIHJvdyBidXR0b24gdGV4dFwiLFxuICAgIHJhdGVNaW46IFwiTWluaW11bSByYXRlXCIsXG4gICAgcmF0ZU1heDogXCJNYXhpbXVtIHJhdGVcIixcbiAgICByYXRlU3RlcDogXCJSYXRlIHN0ZXBcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiTWluaW11bSByYXRlIGRlc2NyaXB0aW9uXCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcIk1heGltdW0gcmF0ZSBkZXNjcmlwdGlvblwiLFxuICAgIHJhdGVEZXNjcmlwdGlvbkxvY2F0aW9uOiBcIlJhdGUgZGVzY3JpcHRpb24gYWxpZ25tZW50XCIsXG4gICAgaW5wdXRUeXBlOiBcIklucHV0IHR5cGVcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJPcHRpb25zIGNhcHRpb25cIixcbiAgICBzaG93T3B0aW9uc0NhcHRpb246IFwiU2hvdyBvcHRpb25zIGNhcHRpb25cIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiRGVmYXVsdCB2YWx1ZVwiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJEZWZhdWx0IGNlbGxzIHRleHRzXCIsXG5cbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCJFZGl0IHN1cnZleSBzZXR0aW5nc1wiLFxuICAgIHFFZGl0b3JUaXRsZTogXCJFZGl0OiB7MH1cIixcblxuICAgIG1heExlbmd0aDogXCJNYXhpbXVtIGxlbmd0aFwiLFxuXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcIkJ1aWxkXCIsXG4gICAgZWRpdEV4cHJlc3Npb246IFwiRWRpdFwiLFxuICAgIGFuZDogXCJBbmRcIixcbiAgICBvcjogXCJPclwiLFxuICAgIHJlbW92ZTogXCJSZW1vdmVcIixcbiAgICBhZGRDb25kaXRpb246IFwiQWRkIGNvbmRpdGlvblwiLFxuXG4gICAgLy9zdXJ2ZXlcbiAgICBzaG93VGl0bGU6IFwiU2hvdy9oaWRlIHRpdGxlXCIsXG4gICAgZXhwYW5kQ29sbGFwc2VUaXRsZTogXCJFeHBhbmQvY29sbGFwc2UgdGl0bGVcIixcbiAgICBsb2NhbGU6IFwiRGVmYXVsdCBsYW5ndWFnZVwiLFxuICAgIHNpbXVsYXRvcjogXCJDaG9vc2UgZGV2aWNlXCIsXG4gICAgbGFuZHNjYXBlT3JpZW50YXRpb246IFwiTGFuZHNjYXBlXCIsXG4gICAgbW9kZTogXCJNb2RlIChlZGl0L3JlYWQgb25seSlcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJDbGVhciBpbnZpc2libGUgdmFsdWVzXCIsXG4gICAgY29va2llTmFtZTogXCJDb29raWUgbmFtZSAodG8gZGlzYWJsZSBydW4gc3VydmV5IHR3byB0aW1lcyBsb2NhbGx5KVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIlNlbmQgc3VydmV5IHJlc3VsdHMgb24gcGFnZSBuZXh0XCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiU3RvcmUgJ290aGVycycgdmFsdWUgaW4gc2VwYXJhdGUgZmllbGRcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJTaG93IHBhZ2UgdGl0bGVzXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIlNob3cgcGFnZSBudW1iZXJzXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIlBhZ2UgcHJldmlvdXMgYnV0dG9uIHRleHRcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiUGFnZSBuZXh0IGJ1dHRvbiB0ZXh0XCIsXG4gICAgY29tcGxldGVUZXh0OiBcIkNvbXBsZXRlIGJ1dHRvbiB0ZXh0XCIsXG4gICAgcHJldmlld1RleHQ6IFwiUHJldmlldyBidXR0b24gdGV4dFwiLFxuICAgIGVkaXRUZXh0OiBcIkVkaXQgYnV0dG9uIHRleHRcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiU3RhcnQgYnV0dG9uIHRleHRcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwiU2hvdyBuYXZpZ2F0aW9uIGJ1dHRvbnMgKGRlZmF1bHQgbmF2aWdhdGlvbilcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJTaG93IHByZXZpb3VzIGJ1dHRvbiAodXNlciBtYXkgcmV0dXJuIG9uIHByZXZpb3VzIHBhZ2UpXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIlRoZSBmaXJzdCBwYWdlIGluIHRoZSBzdXJ2ZXkgaXMgYSBzdGFydGVkIHBhZ2UuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiU2hvdyB0aGUgY29tcGxldGVkIHBhZ2UgYXQgdGhlIGVuZCAoY29tcGxldGVkSHRtbClcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOlxuICAgICAgXCJPbiBhbnN3ZXJpbmcgYWxsIHF1ZXN0aW9ucywgZ28gdG8gdGhlIG5leHQgcGFnZSBhdXRvbWF0aWNhbGx5XCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIlNob3cgcHJvZ3Jlc3MgYmFyXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIlF1ZXN0aW9uIHRpdGxlIGxvY2F0aW9uXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlRoZSBxdWVzdGlvbiByZXF1aXJlZCBzeW1ib2wocylcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiUXVlc3Rpb24gc3RhcnQgaW5kZXggKDEsIDIgb3IgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJTaG93IHF1ZXN0aW9uIG51bWJlcnNcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6XG4gICAgICBcIlF1ZXN0aW9uIHRpdGxlIHRlbXBsYXRlLCBkZWZhdWx0IGlzOiAne25vfS4ge3JlcXVpcmV9IHt0aXRsZX0nXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIlF1ZXN0aW9uIGVycm9yIGxvY2F0aW9uXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIkZvY3VzIGZpcnN0IHF1ZXN0aW9uIG9uIGNoYW5naW5nIHRoZSBwYWdlXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiRWxlbWVudHMgb3JkZXIgb24gdGhlIHBhZ2VcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiTWF4aW11bSB0aW1lIHRvIGZpbmlzaCB0aGUgc3VydmV5XCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJNYXhpbXVtIHRpbWUgdG8gZmluaXNoIGEgcGFnZSBpbiB0aGUgc3VydmV5XCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiU2hvdyB0aW1lciBwYW5lbFwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJTaG93IHRpbWVyIHBhbmVsIG1vZGVcIixcbiAgICByZW5kZXJNb2RlOiBcIlJlbmRlciBtb2RlXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJBbGxvdyBhZGRpbmcgYSBwYW5lbFwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiQWxsb3cgcmVtb3ZpbmcgdGhlIHBhbmVsXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIkFkZGluZyBwYW5lbCB0ZXh0XCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIlJlbW92aW5nIHBhbmVsIHRleHRcIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiU2hvdyBhbGwgZWxlbWVudHMgb24gb25lIHBhZ2VcIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBleHByZXNzaW9uOiBcIkV4cHJlc3Npb25cIixcblxuICAgIG1pblZhbHVlOiBcIk1pbmltdW0gdmFsdWVcIixcbiAgICBtYXhWYWx1ZTogXCJNYXhpbXVtIHZhbHVlXCIsXG4gICAgbWluTGVuZ3RoOiBcIk1pbmltdW0gbGVuZ3RoXCIsXG4gICAgYWxsb3dEaWdpdHM6IFwiQWxsb3cgZGlnaXRzXCIsXG4gICAgbWluQ291bnQ6IFwiTWluaW11bSBjb3VudFwiLFxuICAgIG1heENvdW50OiBcIk1heGltdW0gY291bnRcIixcbiAgICByZWdleDogXCJSZWd1bGFyIGV4cHJlc3Npb25cIixcblxuICAgIHRvdGFsVGV4dDogXCJUb3RhbCB0ZXh0XCIsXG4gICAgdG90YWxUeXBlOiBcIlRvdGFsIHR5cGVcIixcbiAgICB0b3RhbEV4cHJlc3Npb246IFwiVG90YWwgZXhwcmVzc2lvblwiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcIlRvdGFsIGRpc3BsYXkgc3R5bGVcIixcbiAgICB0b3RhbEN1cnJlbmN5OiBcIlRvdGFsIGN1cnJlbmN5XCIsXG4gICAgdG90YWxGb3JtYXQ6IFwiVG90YWwgZm9ybWF0XCIsXG5cbiAgICAvLyBIZWFkZXIgIGFkb3JuZXJcbiAgICBsb2dvUG9zaXRpb246IFwiTG9nbyBwb3NpdGlvblwiLFxuICAgIGFkZExvZ286IFwiQWRkIGxvZ28uLi5cIixcbiAgICBjaGFuZ2VMb2dvOiBcIkNoYW5nZSBsb2dvLi4uXCIsXG4gICAgbG9nb1Bvc2l0aW9uczoge1xuICAgICAgbm9uZTogXCJSZW1vdmUgbG9nb1wiLFxuICAgICAgbGVmdDogXCJMZWZ0XCIsXG4gICAgICByaWdodDogXCJSaWdodFwiLFxuICAgICAgdG9wOiBcIk9uIHRoZSB0b3BcIixcbiAgICAgIGJvdHRvbTogXCJJbiB0aGUgYm90dG9tXCIsXG4gICAgfSxcblxuICAgIHRhYnM6IHtcbiAgICAgIGdlbmVyYWw6IFwiR2VuZXJhbFwiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwiT3B0aW9uc1wiLFxuICAgICAgaHRtbDogXCJIdG1sIEVkaXRvclwiLFxuICAgICAgY29sdW1uczogXCJDb2x1bW5zXCIsXG4gICAgICByb3dzOiBcIlJvd3NcIixcbiAgICAgIGNob2ljZXM6IFwiQ2hvaWNlc1wiLFxuICAgICAgaXRlbXM6IFwiSXRlbXNcIixcbiAgICAgIHZpc2libGVJZjogXCJWaXNpYmxlIElmXCIsXG4gICAgICBlbmFibGVJZjogXCJFbmFibGUgSWZcIixcbiAgICAgIHJlcXVpcmVkSWY6IFwiUmVxdWlyZWQgSWZcIixcbiAgICAgIHJhdGVWYWx1ZXM6IFwiUmF0ZSBWYWx1ZXNcIixcbiAgICAgIGNob2ljZXNCeVVybDogXCJDaG9pY2VzIGZyb20gV2ViXCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIkRlZmF1bHQgQ2hvaWNlc1wiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwiVGV4dCBJbnB1dHNcIixcbiAgICAgIG51bWJlcmluZzogXCJOdW1iZXJpbmdcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwiVmFsaWRhdG9yc1wiLFxuICAgICAgbmF2aWdhdGlvbjogXCJOYXZpZ2F0aW9uXCIsXG4gICAgICBxdWVzdGlvbjogXCJRdWVzdGlvblwiLFxuICAgICAgcGFnZXM6IFwiUGFnZXNcIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwiQ29tcGxldGVkIEh0bWxcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJDb21wbGV0ZWQgSHRtbCBvbiBDb25kaXRpb25cIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcIkxvYWRpbmcgSHRtbFwiLFxuICAgICAgdGltZXI6IFwiVGltZXIvUXVpelwiLFxuICAgICAgY2FsY3VsYXRlZFZhbHVlczogXCJDYWxjdWxhdGVkIFZhbHVlc1wiLFxuICAgICAgdHJpZ2dlcnM6IFwiVHJpZ2dlcnNcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiVGVtcGxhdGUgdGl0bGVcIixcbiAgICAgIHRvdGFsczogXCJUb3RhbHNcIixcbiAgICAgIGxvZ2ljOiBcIkxvZ2ljXCIsXG4gICAgICBsYXlvdXQ6IFwiTGF5b3V0XCIsXG4gICAgICBkYXRhOiBcIkRhdGFcIixcbiAgICAgIHZhbGlkYXRpb246IFwiVmFsaWRhdGlvblwiLFxuICAgICAgY2VsbHM6IFwiQ2VsbHNcIixcbiAgICAgIHNob3dPbkNvbXBsZXRlZDogXCJTaG93IG9uIENvbXBsZXRlZFwiLFxuICAgICAgbG9nbzogXCJMb2dvIGluIFN1cnZleSBUaXRsZVwiLFxuICAgICAgc2xpZGVyOiBcIlNsaWRlclwiLFxuICAgICAgb3RoZXJzOiBcIk90aGVyc1wiLFxuICAgIH0sXG4gICAgZWRpdFByb3BlcnR5OiBcIkVkaXQgcHJvcGVydHkgJ3swfSdcIixcbiAgICBpdGVtczogXCJbIEl0ZW1zOiB7MH0gXVwiLFxuXG4gICAgZW50ZXJOZXdWYWx1ZTogXCJQbGVhc2UsIGVudGVyIHRoZSB2YWx1ZS5cIixcbiAgICBub3F1ZXN0aW9uczogXCJUaGVyZSBpcyBubyBhbnkgcXVlc3Rpb24gaW4gdGhlIHN1cnZleS5cIixcbiAgICBjcmVhdGV0cmlnZ2VyOiBcIlBsZWFzZSBjcmVhdGUgYSB0cmlnZ2VyXCIsXG4gICAgdGl0bGVLZXlib2FyZEFkb3JuZXJUaXA6IFwiUHJlc3MgZW50ZXIgYnV0dG9uIHRvIGVkaXRcIixcbiAgICBrZXlib2FyZEFkb3JuZXJUaXA6IFwiUHJlc3MgZW50ZXIgYnV0dG9uIHRvIGVkaXQgaXRlbSwgcHJlc3MgZGVsZXRlIGJ1dHRvbiB0byBkZWxldGUgaXRlbSwgcHJlc3MgYWx0IHBsdXMgYXJyb3cgdXAgb3IgYXJyb3cgZG93biB0byBtb3ZlIGl0ZW1cIixcbiAgICBrZXlib2FyZE1vdmVJdGVtc1RpcDogXCJQcmVzcyBhbHQgcGx1cyBhcnJvdyB1cCBvciBhcnJvdyBkb3duIHRvIG1vdmUgaXRlbVwiLFxuICAgIHRyaWdnZXJPbjogXCJPbiBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCJNYWtlIHBhZ2VzIHZpc2libGU6XCIsXG4gICAgdHJpZ2dlck1ha2VRdWVzdGlvbnNWaXNpYmxlOiBcIk1ha2UgZWxlbWVudHMgdmlzaWJsZTpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIkNvbXBsZXRlIHRoZSBzdXJ2ZXkgaWYgc3VjY2VlZC5cIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIlRoZSB0cmlnZ2VyIGlzIG5vdCBzZXRcIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiUnVuIGlmXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCJDaGFuZ2UgdmFsdWUgb2Y6IFwiLFxuICAgIHRyaWdnZXJGcm9tTmFtZTogXCJDb3B5IHZhbHVlIGZyb206IFwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcIlJ1biB0aGlzIEV4cHJlc3Npb246XCIsXG4gICAgdHJpZ2dlclNldFZhbHVlOiBcInRvOiBcIixcbiAgICB0cmlnZ2VyR290b05hbWU6IFwiR28gdG8gdGhlIHF1ZXN0aW9uOlwiLFxuICAgIHRyaWdnZXJJc1ZhcmlhYmxlOiBcIkRvIG5vdCBwdXQgdGhlIHZhcmlhYmxlIGludG8gdGhlIHN1cnZleSByZXN1bHQuXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eTogXCJQbGVhc2UgZW50ZXIgYSB2YWxpZCBleHByZXNzaW9uXCIsXG5cbiAgICBub0ZpbGU6IFwiTm8gZmlsZSBjaG9vc2VuXCIsXG4gIH0sXG4gIC8vUHJvcGVydHkgdmFsdWVzXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCJ0cnVlXCIsXG4gICAgZmFsc2U6IFwiZmFsc2VcIixcbiAgICBpbmhlcml0OiBcImluaGVyaXRcIixcbiAgICBzaG93OiBcInNob3dcIixcbiAgICBoaWRlOiBcImhpZGVcIixcbiAgICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgICBpbml0aWFsOiBcImluaXRpYWxcIixcbiAgICByYW5kb206IFwicmFuZG9tXCIsXG4gICAgY29sbGFwc2VkOiBcImNvbGxhcHNlZFwiLFxuICAgIGV4cGFuZGVkOiBcImV4cGFuZGVkXCIsXG4gICAgbm9uZTogXCJub25lXCIsXG4gICAgYXNjOiBcImFzY2VuZGluZ1wiLFxuICAgIGRlc2M6IFwiZGVzY2VuZGluZ1wiLFxuICAgIGluZGV0ZXJtaW5hdGU6IFwiaW5kZXRlcm1pbmF0ZVwiLFxuICAgIGRlY2ltYWw6IFwiZGVjaW1hbFwiLFxuICAgIGN1cnJlbmN5OiBcImN1cnJlbmN5XCIsXG4gICAgcGVyY2VudDogXCJwZXJjZW50XCIsXG4gICAgZmlyc3RFeHBhbmRlZDogXCJmaXJzdEV4cGFuZGVkXCIsXG4gICAgb2ZmOiBcIm9mZlwiLFxuICAgIG9uUGFuZWw6IFwib25QYW5lbFwiLFxuICAgIG9uU3VydmV5OiBcIm9uU3VydmV5XCIsXG4gICAgbGlzdDogXCJsaXN0XCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwicHJvZ3Jlc3NUb3BcIixcbiAgICBwcm9ncmVzc0JvdHRvbTogXCJwcm9ncmVzc0JvdHRvbVwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcInByb2dyZXNzVG9wQm90dG9tXCIsXG4gICAgaG9yaXpvbnRhbDogXCJob3Jpem9udGFsXCIsXG4gICAgdmVydGljYWw6IFwidmVydGljYWxcIixcbiAgICB0b3A6IFwidG9wXCIsXG4gICAgYm90dG9tOiBcImJvdHRvbVwiLFxuICAgIHRvcEJvdHRvbTogXCJ0b3AgYW5kIGJvdHRvbVwiLFxuICAgIGJvdGg6IFwiYm90aFwiLFxuICAgIGxlZnQ6IFwibGVmdFwiLFxuICAgIHJpZ2h0OiBcInJpZ2h0XCIsXG4gICAgbGVmdFJpZ2h0OiBcImxlZnQgYW5kIHJpZ2h0XCIsXG4gICAgY29sb3I6IFwiY29sb3JcIixcbiAgICBkYXRlOiBcImRhdGVcIixcbiAgICBkYXRldGltZTogXCJkYXRldGltZVwiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCJkYXRldGltZS1sb2NhbFwiLFxuICAgIGVtYWlsOiBcImVtYWlsXCIsXG4gICAgbW9udGg6IFwibW9udGhcIixcbiAgICBudW1iZXI6IFwibnVtYmVyXCIsXG4gICAgcGFzc3dvcmQ6IFwicGFzc3dvcmRcIixcbiAgICByYW5nZTogXCJyYW5nZVwiLFxuICAgIHRlbDogXCJ0ZWxcIixcbiAgICB0ZXh0OiBcInRleHRcIixcbiAgICB0aW1lOiBcInRpbWVcIixcbiAgICB1cmw6IFwidXJsXCIsXG4gICAgd2VlazogXCJ3ZWVrXCIsXG4gICAgaGlkZGVuOiBcImhpZGRlblwiLFxuICAgIG9uOiBcIm9uXCIsXG4gICAgb25QYWdlOiBcIm9uUGFnZVwiLFxuICAgIGVkaXQ6IFwiZWRpdFwiLFxuICAgIGRpc3BsYXk6IFwiZGlzcGxheVwiLFxuICAgIG9uQ29tcGxldGU6IFwib25Db21wbGV0ZVwiLFxuICAgIG9uSGlkZGVuOiBcIm9uSGlkZGVuXCIsXG4gICAgYWxsOiBcImFsbFwiLFxuICAgIHBhZ2U6IFwicGFnZVwiLFxuICAgIHN1cnZleTogXCJzdXJ2ZXlcIixcbiAgICBvbk5leHRQYWdlOiBcIm9uTmV4dFBhZ2VcIixcbiAgICBvblZhbHVlQ2hhbmdlZDogXCJvblZhbHVlQ2hhbmdlZFwiLFxuICAgIHNpbmdsZVBhZ2U6IFwic2luZ2xlIHBhZ2VcIixcbiAgICBzdGFuZGFyZDogXCJzdGFuZGFyZFwiLFxuICAgIHF1ZXN0aW9uUGVyUGFnZTogXCJxdWVzdGlvbiBwZXIgcGFnZVwiLFxuICAgIG5vUHJldmlldzogXCJubyBwcmV2aWV3XCIsXG4gICAgc2hvd0FsbFF1ZXN0aW9uczogXCJzaG93IHByZXZpZXcgd2l0aCBhbGwgcXVlc3Rpb25zXCIsXG4gICAgc2hvd0Fuc3dlcmVkUXVlc3Rpb25zOiBcInNob3cgcHJldmlldyB3aXRoIGFuc3dlcmVkIHF1ZXN0aW9uc1wiLFxuICAgIHBhZ2VzOiBcInBhZ2VzXCIsXG4gICAgcXVlc3Rpb25zOiBcInF1ZXN0aW9uc1wiLFxuICAgIHJlcXVpcmVkUXVlc3Rpb25zOiBcInJlcXVpcmVkIHF1ZXN0aW9uc1wiLFxuICAgIGNvcnJlY3RRdWVzdGlvbnM6IFwiY29ycmVjdCBxdWVzdGlvbnNcIixcbiAgICBidXR0b25zOiBcImJ1dHRvbnNcIixcbiAgICB1bmRlcklucHV0OiBcInVuZGVyIGlucHV0XCIsXG4gICAgdW5kZXJUaXRsZTogXCJ1bmRlciB0aXRsZVwiXG4gIH0sXG4gIC8vT3BlcmF0b3JzXG4gIG9wOiB7XG4gICAgZW1wdHk6IFwiaXMgZW1wdHlcIixcbiAgICBub3RlbXB0eTogXCJpcyBub3QgZW1wdHlcIixcbiAgICBlcXVhbDogXCJlcXVhbHNcIixcbiAgICBub3RlcXVhbDogXCJub3QgZXF1YWxzXCIsXG4gICAgY29udGFpbnM6IFwiY29udGFpbnNcIixcbiAgICBub3Rjb250YWluczogXCJub3QgY29udGFpbnNcIixcbiAgICBhbnlvZjogXCJhbnkgb2ZcIixcbiAgICBhbGxvZjogXCJhbGwgb2ZcIixcbiAgICBncmVhdGVyOiBcImdyZWF0ZXJcIixcbiAgICBsZXNzOiBcImxlc3NcIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCJncmVhdGVyIG9yIGVxdWFsc1wiLFxuICAgIGxlc3NvcmVxdWFsOiBcImxlc3Mgb3IgZXF1YWxzXCIsXG4gICAgYW5kOiBcImFuZFwiLFxuICAgIG9yOiBcIm9yXCIsXG4gIH0sXG4gIC8vRW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCJVc2UgQW5ndWxhciB2ZXJzaW9uXCIsXG4gICAganF1ZXJ5OiBcIlVzZSBqUXVlcnkgdmVyc2lvblwiLFxuICAgIGtub2Nrb3V0OiBcIlVzZSBLbm9ja291dCB2ZXJzaW9uXCIsXG4gICAgcmVhY3Q6IFwiVXNlIFJlYWN0IHZlcnNpb25cIixcbiAgICB2dWU6IFwiVXNlIFZ1ZSB2ZXJzaW9uXCIsXG4gICAgYm9vdHN0cmFwOiBcIkZvciBib290c3RyYXAgZnJhbWV3b3JrXCIsXG4gICAgbW9kZXJuOiBcIk1vZGVybiB0aGVtZVwiLFxuICAgIGRlZmF1bHQ6IFwiRGVmYXVsdCB0aGVtZVwiLFxuICAgIG9yYW5nZTogXCJPcmFuZ2UgdGhlbWVcIixcbiAgICBkYXJrYmx1ZTogXCJEYXJrYmx1ZSB0aGVtZVwiLFxuICAgIGRhcmtyb3NlOiBcIkRhcmtyb3NlIHRoZW1lXCIsXG4gICAgc3RvbmU6IFwiU3RvbmUgdGhlbWVcIixcbiAgICB3aW50ZXI6IFwiV2ludGVyIHRoZW1lXCIsXG4gICAgd2ludGVyc3RvbmU6IFwiV2ludGVyLVN0b25lIHRoZW1lXCIsXG4gICAgc2hvd09uUGFnZTogXCJTaG93IHN1cnZleSBvbiBhIHBhZ2VcIixcbiAgICBzaG93SW5XaW5kb3c6IFwiU2hvdyBzdXJ2ZXkgaW4gYSB3aW5kb3dcIixcbiAgICBsb2FkRnJvbVNlcnZlcjogXCJMb2FkIFN1cnZleSBKU09OIGZyb20gc2VydmVyXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU2NyaXB0cyBhbmQgc3R5bGVzXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiLFxuICB9LFxuICAvL1Rlc3QgU3VydmV5XG4gIHRzOiB7XG4gICAgc2VsZWN0UGFnZTogXCJTZWxlY3QgdGhlIHBhZ2UgdG8gdGVzdCBpdDpcIixcbiAgICBzaG93SW52aXNpYmxlRWxlbWVudHM6IFwiU2hvdyBpbnZpc2libGUgZWxlbWVudHNcIixcbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIGFuc3dlcmNvdW50dmFsaWRhdG9yOiBcImFuc3dlciBjb3VudFwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcImUtbWFpbFwiLFxuICAgIGV4cHJlc3Npb252YWxpZGF0b3I6IFwiZXhwcmVzc2lvblwiLFxuICAgIG51bWVyaWN2YWxpZGF0b3I6IFwibnVtZXJpY1wiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcInJlZ2V4XCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCJ0ZXh0XCIsXG4gIH0sXG4gIHRyaWdnZXJzOiB7XG4gICAgY29tcGxldGV0cmlnZ2VyOiBcImNvbXBsZXRlIHN1cnZleVwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCJzZXQgdmFsdWVcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcImNvcHkgdmFsdWVcIixcbiAgICBza2lwdHJpZ2dlcjogXCJza2lwIHRvIHF1ZXN0aW9uXCIsXG4gICAgcnVuZXhwcmVzc2lvbnRyaWdnZXI6IFwicnVuIGV4cHJlc3Npb25cIixcbiAgICB2aXNpYmxldHJpZ2dlcjogXCJjaGFuZ2UgdmlzaWJpbGl0eSAoZGVwcmVjYXRlZClcIixcbiAgfSxcbiAgcGVoZWxwOiB7XG4gICAgLy9leHByZXNzaW9uOlxuICB9LFxuICAvL1Byb3BlcnRpZXNcbiAgcDoge1xuICAgIG5hbWU6IFwibmFtZVwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcInRpdGxlXCIsXG4gICAgICB0aXRsZTogXCJMZWF2ZSBpdCBlbXB0eSwgaWYgaXQgaXMgdGhlIHNhbWUgYXMgJ05hbWUnXCIsXG4gICAgfSxcblxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHlcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJxdWVzdGlvbnNPcmRlclwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJtYXhUaW1lVG9GaW5pc2hcIixcblxuICAgIHZpc2libGU6IFwidmlzaWJsZVwiLFxuICAgIHZpc2libGVJZjogXCJ2aXNpYmxlSWZcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwicXVlc3Rpb25UaXRsZUxvY2F0aW9uXCIsXG4gICAgZGVzY3JpcHRpb246IFwiZGVzY3JpcHRpb25cIixcbiAgICBzdGF0ZTogXCJzdGF0ZVwiLFxuICAgIGlzUmVxdWlyZWQ6IFwiaXNSZXF1aXJlZFwiLFxuICAgIHJlcXVpcmVkSWY6IFwicmVxdWlyZWRJZlwiLFxuICAgIGluZGVudDogXCJpbmRlbnRcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJyZXF1aXJlZEVycm9yVGV4dFwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwic3RhcnRXaXRoTmV3TGluZVwiLFxuICAgIGlubmVySW5kZW50OiBcImlubmVySW5kZW50XCIsXG4gICAgcGFnZTogXCJwYWdlXCIsXG5cbiAgICB3aWR0aDogXCJ3aWR0aFwiLFxuXG4gICAgY29tbWVudFRleHQ6IFwiY29tbWVudFRleHRcIixcbiAgICB2YWx1ZU5hbWU6IFwidmFsdWVOYW1lXCIsXG4gICAgZW5hYmxlSWY6IFwiZW5hYmxlSWZcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiZGVmYXVsdFZhbHVlXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCJjb3JyZWN0QW5zd2VyXCIsXG4gICAgcmVhZE9ubHk6IFwicmVhZE9ubHlcIixcbiAgICB2YWxpZGF0b3JzOiBcInZhbGlkYXRvcnNcIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcInRpdGxlTG9jYXRpb25cIixcblxuICAgIGhhc0NvbW1lbnQ6IFwiaGFzQ29tbWVudFwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwiaGFzT3RoZXJcIixcbiAgICBjaG9pY2VzOiBcImNob2ljZXNcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiY2hvaWNlc09yZGVyXCIsXG4gICAgY2hvaWNlc0J5VXJsOiBcImNob2ljZXNCeVVybFwiLFxuICAgIG90aGVyVGV4dDogXCJvdGhlclRleHRcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCJvdGhlckVycm9yVGV4dFwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcInN0b3JlT3RoZXJzQXNDb21tZW50XCIsXG5cbiAgICBsYWJlbDogXCJsYWJlbFwiLFxuICAgIHNob3dUaXRsZTogXCJzaG93VGl0bGVcIixcbiAgICB2YWx1ZVRydWU6IFwidmFsdWVUcnVlXCIsXG4gICAgdmFsdWVGYWxzZTogXCJ2YWx1ZUZhbHNlXCIsXG5cbiAgICBjb2xzOiBcImNvbHNcIixcbiAgICByb3dzOiBcInJvd3NcIixcbiAgICBwbGFjZWhvbGRlcjogXCJwbGFjZWhvbGRlclwiLFxuXG4gICAgb3B0aW9uc0NhcHRpb246IFwib3B0aW9uc0NhcHRpb25cIixcblxuICAgIGV4cHJlc3Npb246IFwiZXhwcmVzc2lvblwiLFxuICAgIGZvcm1hdDogXCJmb3JtYXRcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwiZGlzcGxheVN0eWxlXCIsXG4gICAgY3VycmVuY3k6IFwiY3VycmVuY3lcIixcbiAgICB1c2VHcm91cGluZzogXCJ1c2VHcm91cGluZ1wiLFxuXG4gICAgc2hvd1ByZXZpZXc6IFwic2hvd1ByZXZpZXdcIixcbiAgICBhbGxvd011bHRpcGxlOiBcImFsbG93TXVsdGlwbGVcIixcbiAgICBpbWFnZUhlaWdodDogXCJpbWFnZUhlaWdodFwiLFxuICAgIGltYWdlV2lkdGg6IFwiaW1hZ2VXaWR0aFwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJzdG9yZURhdGFBc1RleHRcIixcbiAgICBtYXhTaXplOiBcIm1heFNpemVcIixcblxuICAgIGh0bWw6IFwiaHRtbFwiLFxuXG4gICAgY29sdW1uczogXCJjb2x1bW5zXCIsXG4gICAgY2VsbHM6IFwiY2VsbHNcIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcImlzQWxsUm93UmVxdWlyZWRcIixcblxuICAgIGhvcml6b250YWxTY3JvbGw6IFwiaG9yaXpvbnRhbFNjcm9sbFwiLFxuICAgIGNlbGxUeXBlOiBcImNlbGxUeXBlXCIsXG4gICAgY29sdW1uc0xheW91dDogXCJjb2x1bW5zTGF5b3V0XCIsXG4gICAgY29sdW1uQ29sQ291bnQ6IFwiY29sdW1uQ29sQ291bnRcIixcbiAgICBjb2x1bW5NaW5XaWR0aDogXCJjb2x1bW5NaW5XaWR0aFwiLFxuXG4gICAgcm93Q291bnQ6IFwicm93Q291bnRcIixcbiAgICBtaW5Sb3dDb3VudDogXCJtaW5Sb3dDb3VudFwiLFxuICAgIG1heFJvd0NvdW50OiBcIm1heFJvd0NvdW50XCIsXG4gICAga2V5TmFtZTogXCJrZXlOYW1lXCIsXG4gICAga2V5RHVwbGljYXRpb25FcnJvcjogXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIsXG4gICAgY29uZmlybURlbGV0ZTogXCJjb25maXJtRGVsZXRlXCIsXG4gICAgY29uZmlybURlbGV0ZVRleHQ6IFwiY29uZmlybURlbGV0ZVRleHRcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJhZGRSb3dMb2NhdGlvblwiLFxuICAgIGFkZFJvd1RleHQ6IFwiYWRkUm93VGV4dFwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwicmVtb3ZlUm93VGV4dFwiLFxuXG4gICAgaXRlbXM6IFwiaXRlbXNcIixcbiAgICBpdGVtU2l6ZTogXCJpdGVtU2l6ZVwiLFxuICAgIGNvbENvdW50OiBcImNvbENvdW50XCIsXG5cbiAgICB0ZW1wbGF0ZVRpdGxlOiBcInRlbXBsYXRlVGl0bGVcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcInRlbXBsYXRlRGVzY3JpcHRpb25cIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcImFsbG93QWRkUGFuZWxcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcImFsbG93UmVtb3ZlUGFuZWxcIixcbiAgICBub0VudHJpZXNUZXh0OiBcIkVtcHR5IGVudHJpZXMgdGV4dFwiLFxuICAgIHBhbmVsQ291bnQ6IFwicGFuZWxDb3VudFwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwibWluUGFuZWxDb3VudFwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwibWF4UGFuZWxDb3VudFwiLFxuICAgIHBhbmVsc1N0YXRlOiBcInBhbmVsc1N0YXRlXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcInBhbmVsQWRkVGV4dFwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJwYW5lbFJlbW92ZVRleHRcIixcbiAgICBwYW5lbFByZXZUZXh0OiBcInBhbmVsUHJldlRleHRcIixcbiAgICBwYW5lbE5leHRUZXh0OiBcInBhbmVsTmV4dFRleHRcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcInNob3dRdWVzdGlvbk51bWJlcnNcIixcbiAgICBzaG93UmFuZ2VJblByb2dyZXNzOiBcInNob3dSYW5nZUluUHJvZ3Jlc3NcIixcbiAgICByZW5kZXJNb2RlOiBcInJlbmRlck1vZGVcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwidGVtcGxhdGVUaXRsZUxvY2F0aW9uXCIsXG5cbiAgICByYXRlVmFsdWVzOiBcInJhdGVWYWx1ZXNcIixcbiAgICByYXRlTWluOiBcInJhdGVNaW5cIixcbiAgICByYXRlTWF4OiBcInJhdGVNYXhcIixcbiAgICByYXRlU3RlcDogXCJyYXRlU3RlcFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJtaW5SYXRlRGVzY3JpcHRpb25cIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwibWF4UmF0ZURlc2NyaXB0aW9uXCIsXG5cbiAgICBpbnB1dFR5cGU6IFwiaW5wdXRUeXBlXCIsXG4gICAgc2l6ZTogXCJzaXplXCIsXG5cbiAgICBsb2NhbGU6IFwibG9jYWxlXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcImZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpY1wiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiY29tcGxldGVkSHRtbFwiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwiY29tcGxldGVkQmVmb3JlSHRtbFwiLFxuICAgIGxvYWRpbmdIdG1sOiBcImxvYWRpbmdIdG1sXCIsXG4gICAgdHJpZ2dlcnM6IFwidHJpZ2dlcnNcIixcbiAgICBjb29raWVOYW1lOiBcImNvb2tpZU5hbWVcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCJzZW5kUmVzdWx0T25QYWdlTmV4dFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJzaG93TmF2aWdhdGlvbkJ1dHRvbnNcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJzaG93UHJldkJ1dHRvblwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcInNob3dQYWdlVGl0bGVzXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwic2hvd0NvbXBsZXRlZFBhZ2VcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwic2hvd1BhZ2VOdW1iZXJzXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcInF1ZXN0aW9uRXJyb3JMb2NhdGlvblwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJzaG93UHJvZ3Jlc3NCYXJcIixcbiAgICBtb2RlOiBcIm1vZGVcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcImdvTmV4dFBhZ2VBdXRvbWF0aWNcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwiY2hlY2tFcnJvcnNNb2RlXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiY2xlYXJJbnZpc2libGVWYWx1ZXNcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwic3RhcnRTdXJ2ZXlUZXh0XCIsXG4gICAgcGFnZVByZXZUZXh0OiBcInBhZ2VQcmV2VGV4dFwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJwYWdlTmV4dFRleHRcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiY29tcGxldGVUZXh0XCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcInJlcXVpcmVkVGV4dFwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCJxdWVzdGlvblN0YXJ0SW5kZXhcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwicXVlc3Rpb25UaXRsZVRlbXBsYXRlXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcImZpcnN0UGFnZUlzU3RhcnRlZFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJpc1NpbmdsZVBhZ2VcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIm1heFRpbWVUb0ZpbmlzaFBhZ2VcIixcbiAgICBzaG93VGltZXJQYW5lbDogXCJzaG93VGltZXJQYW5lbFwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJzaG93VGltZXJQYW5lbE1vZGVcIixcblxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcImRlZmF1bHRQYW5lbFZhbHVlXCIsXG4gICAgZGVmYXVsdFJvd1ZhbHVlOiBcImRlZmF1bHRSb3dWYWx1ZVwiLFxuICAgIHNob3dOb25lSXRlbTogXCJoYXNOb25lXCIsXG4gICAgbm9uZVRleHQ6IFwibm9uZVRleHRcIixcblxuICAgIHRleHQ6IFwidGV4dFwiLFxuICAgIG11bHRpU2VsZWN0OiBcIk11bHRpIHNlbGVjdFwiLFxuICAgIHNob3dMYWJlbDogXCJTaG93IGxhYmVsXCIsXG5cbiAgICBsb2dvOiBcImxvZ29cIixcbiAgICBsb2dvV2lkdGg6IFwibG9nb1dpZHRoXCIsXG4gICAgbG9nb0hlaWdodDogXCJsb2dvSGVpZ2h0XCIsXG4gICAgbG9nb0ZpdDogXCJsb2dvRml0XCIsXG4gICAgZm9jdXNPbkZpcnN0RXJyb3I6IFwiZm9jdXNPbkZpcnN0RXJyb3JcIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwiY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uXCIsXG4gICAgcGFnZXM6IFwicGFnZXNcIixcbiAgICBjYWxjdWxhdGVkVmFsdWVzOiBcImNhbGN1bGF0ZWRWYWx1ZXNcIixcbiAgICBuYXZpZ2F0ZVRvVXJsOiBcIm5hdmlnYXRlVG9VcmxcIixcbiAgICBuYXZpZ2F0ZVRvVXJsT25Db25kaXRpb246IFwibmF2aWdhdGVUb1VybE9uQ29uZGl0aW9uXCIsXG4gICAgcXVlc3Rpb25EZXNjcmlwdGlvbkxvY2F0aW9uOiBcInF1ZXN0aW9uRGVzY3JpcHRpb25Mb2NhdGlvblwiLFxuICAgIHByb2dyZXNzQmFyVHlwZTogXCJwcm9ncmVzc0JhclR5cGVcIixcbiAgICBtYXhUZXh0TGVuZ3RoOiBcIm1heFRleHRMZW5ndGhcIixcbiAgICBtYXhPdGhlcnNMZW5ndGg6IFwibWF4T3RoZXJzTGVuZ3RoXCIsXG4gICAgdGV4dFVwZGF0ZU1vZGU6IFwidGV4dFVwZGF0ZU1vZGVcIixcbiAgICBhdXRvR3Jvd0NvbW1lbnQ6IFwiYXV0b0dyb3dDb21tZW50XCIsXG4gICAgcXVlc3Rpb25UaXRsZVBhdHRlcm46IFwicXVlc3Rpb25UaXRsZVBhdHRlcm5cIixcbiAgICBxdWVzdGlvbnNPblBhZ2VNb2RlOiBcInF1ZXN0aW9uc09uUGFnZU1vZGVcIixcbiAgICBzaG93UHJldmlld0JlZm9yZUNvbXBsZXRlOiBcInNob3dQcmV2aWV3QmVmb3JlQ29tcGxldGVcIixcbiAgICB3aWR0aE1vZGU6IFwid2lkdGhNb2RlXCIsXG4gICAgc2hvd051bWJlcjogXCJzaG93TnVtYmVyXCIsXG4gICAgbmF2aWdhdGlvblRpdGxlOiBcIm5hdmlnYXRpb25UaXRsZVwiLFxuICAgIG5hdmlnYXRpb25EZXNjcmlwdGlvbjogXCJuYXZpZ2F0aW9uRGVzY3JpcHRpb25cIixcbiAgICB1c2VEaXNwbGF5VmFsdWVzSW5EeW5hbWljVGV4dHM6IFwidXNlRGlzcGxheVZhbHVlc0luRHluYW1pY1RleHRzXCIsXG4gICAgbWluV2lkdGg6IFwibWluV2lkdGhcIixcbiAgICBtYXhXaWR0aDogXCJtYXhXaWR0aFwiLFxuICAgIGRlc2NyaXB0aW9uTG9jYXRpb246IFwiZGVzY3JpcHRpb25Mb2NhdGlvblwiLFxuICAgIGhpZGVOdW1iZXI6IFwiaGlkZU51bWJlclwiLFxuICAgIGRlZmF1bHRWYWx1ZUV4cHJlc3Npb246IFwiZGVmYXVsdFZhbHVlRXhwcmVzc2lvblwiLFxuICAgIGJpbmRpbmdzOiBcImJpbmRpbmdzXCIsXG4gICAgY29sdW1uc1Zpc2libGVJZjogXCJjb2x1bW5zVmlzaWJsZUlmXCIsXG4gICAgcm93c1Zpc2libGVJZjogXCJyb3dzVmlzaWJsZUlmXCIsXG4gICAgc2hvd0hlYWRlcjogXCJzaG93SGVhZGVyXCIsXG4gICAgZGV0YWlsUGFuZWxNb2RlOiBcImRldGFpbFBhbmVsTW9kZVwiLFxuICAgIHJvd1RpdGxlV2lkdGg6IFwicm93VGl0bGVXaWR0aFwiLFxuICAgIGFsbG93QWRkUm93czogXCJhbGxvd0FkZFJvd3NcIixcbiAgICBhbGxvd1JlbW92ZVJvd3M6IFwiYWxsb3dSZW1vdmVSb3dzXCIsXG4gICAgZGVmYXVsdFZhbHVlRnJvbUxhc3RSb3c6IFwiZGVmYXVsdFZhbHVlRnJvbUxhc3RSb3dcIixcbiAgICBoaWRlQ29sdW1uc0lmRW1wdHk6IFwiaGlkZUNvbHVtbnNJZkVtcHR5XCIsXG4gICAgZW1wdHlSb3dzVGV4dDogXCJlbXB0eVJvd3NUZXh0XCIsXG4gICAgZGV0YWlsUGFuZWxTaG93T25BZGRpbmc6IFwiZGV0YWlsUGFuZWxTaG93T25BZGRpbmdcIixcbiAgICBhbGxvd1Jvd3NEcmFnQW5kRHJvcDogXCJhbGxvd1Jvd3NEcmFnQW5kRHJvcFwiLFxuICAgIHJvd3NPcmRlcjogXCJyb3dzT3JkZXJcIixcbiAgICBoaWRlSWZSb3dzRW1wdHk6IFwiaGlkZUlmUm93c0VtcHR5XCIsXG4gICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBcIm1heGltdW1GcmFjdGlvbkRpZ2l0c1wiLFxuICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogXCJtaW5pbXVtRnJhY3Rpb25EaWdpdHNcIixcbiAgICBjaG9pY2VzRnJvbVF1ZXN0aW9uOiBcImNob2ljZXNGcm9tUXVlc3Rpb25cIixcbiAgICBjaG9pY2VzRnJvbVF1ZXN0aW9uTW9kZTogXCJjaG9pY2VzRnJvbVF1ZXN0aW9uTW9kZVwiLFxuICAgIGhpZGVJZkNob2ljZXNFbXB0eTogXCJoaWRlSWZDaG9pY2VzRW1wdHlcIixcbiAgICBjaG9pY2VzVmlzaWJsZUlmOiBcImNob2ljZXNWaXNpYmxlSWZcIixcbiAgICBjaG9pY2VzRW5hYmxlSWY6IFwiY2hvaWNlc0VuYWJsZUlmXCIsXG4gICAgb3RoZXJQbGFjZUhvbGRlcjogXCJvdGhlclBsYWNlSG9sZGVyXCIsXG4gICAgbWF4U2VsZWN0ZWRDaG9pY2VzOiBcIm1heFNlbGVjdGVkQ2hvaWNlc1wiLFxuICAgIHNob3dDbGVhckJ1dHRvbjogXCJzaG93Q2xlYXJCdXR0b25cIixcbiAgICBjb250ZW50TW9kZTogXCJjb250ZW50TW9kZVwiLFxuICAgIGltYWdlRml0OiBcImltYWdlRml0XCIsXG4gICAgYXV0b2NvbXBsZXRlOiBcImF1dG9jb21wbGV0ZVwiLFxuICAgIG1pbjogXCJtaW5cIixcbiAgICBtYXg6IFwibWF4XCIsXG4gICAgbWluVmFsdWVFeHByZXNzaW9uOiBcIm1pblZhbHVlRXhwcmVzc2lvblwiLFxuICAgIG1heFZhbHVlRXhwcmVzc2lvbjogXCJtYXhWYWx1ZUV4cHJlc3Npb25cIixcbiAgICBtaW5FcnJvclRleHQ6IFwibWluRXJyb3JUZXh0XCIsXG4gICAgbWF4RXJyb3JUZXh0OiBcIm1heEVycm9yVGV4dFwiLFxuICAgIHN0ZXA6IFwic3RlcFwiLFxuICAgIGRhdGFMaXN0OiBcImRhdGFMaXN0XCIsXG4gICAgYXV0b0dyb3c6IFwiYXV0b0dyb3dcIixcbiAgICBtdWx0aUxpbmU6IFwibXVsdGlMaW5lXCIsXG4gICAgYWxsb3dJbWFnZXNQcmV2aWV3OiBcImFsbG93SW1hZ2VzUHJldmlld1wiLFxuICAgIGFjY2VwdGVkVHlwZXM6IFwiYWNjZXB0ZWRUeXBlc1wiLFxuICAgIHdhaXRGb3JVcGxvYWQ6IFwid2FpdEZvclVwbG9hZFwiLFxuICAgIG5lZWRDb25maXJtUmVtb3ZlRmlsZTogXCJuZWVkQ29uZmlybVJlbW92ZUZpbGVcIixcbiAgICBsYWJlbFRydWU6IFwibGFiZWxUcnVlXCIsXG4gICAgbGFiZWxGYWxzZTogXCJsYWJlbEZhbHNlXCIsXG4gICAgaGVpZ2h0OiBcImhlaWdodFwiLFxuICAgIGFsbG93Q2xlYXI6IFwiYWxsb3dDbGVhclwiLFxuICAgIHBlbkNvbG9yOiBcInBlbkNvbG9yXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcImJhY2tncm91bmRDb2xvclwiLFxuICAgIGRhdGFGb3JtYXQ6IFwiZGF0YUZvcm1hdFwiLFxuICAgIGRlZmF1bHRWYWx1ZUZyb21MYXN0UGFuZWw6IFwiZGVmYXVsdFZhbHVlRnJvbUxhc3RQYW5lbFwiLFxuICAgIHBhbmVsUmVtb3ZlQnV0dG9uTG9jYXRpb246IFwicGFuZWxSZW1vdmVCdXR0b25Mb2NhdGlvblwiLFxuICAgIHNob3dDYXB0aW9uOiBcInNob3dDYXB0aW9uXCIsXG4gICAgaWNvbk5hbWU6IFwiaWNvbk5hbWVcIixcbiAgICBpY29uU2l6ZTogXCJpY29uU2l6ZVwiXG4gIH0sXG59O1xuXG4vLyBVbmNvbW1lbnQgdGhlIGxpbmUgYmVsb3cgaWYgeW91IGNyZWF0ZSBhIGN1c3RvbSBkaWN0aW9uYXJ5LlxuLy8gUmVwbGFjZSBcImVuXCIgd2l0aCBhIGN1c3RvbSBsb2NhbGUgY29kZSAoZm9yIGV4YW1wbGUsIFwiZnJcIiBvciBcImRlXCIpLFxuLy8gUmVwbGFjZSBgZW5TdHJpbmdzYCB3aXRoIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBjdXN0b20gZGljdGlvbmFyeS5cbi8vIGVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZW5cIl0gPSBlblN0cmluZ3M7XG4iLCIvL1VuY29tbWVudCB0aGlzIGxpbmUgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlXG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbmV4cG9ydCB2YXIgZmlTdHJpbmdzID0ge1xuICAvL3N1cnZleSB0ZW1wbGF0ZXNcbiAgc3VydmV5OiB7XG4gICAgZWRpdDogXCJNdW9ra2FhXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCJLYXRzbyBqYSBvcGkgbHVvbWFhbiBreXNlbHlqw6RcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rVXJsOiBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNIMnJ1OW9rSWNvb05aZnBJYnlxNHFRP3ZpZXdfYXM9c3Vic2NyaWJlclwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCJQdWRvdGEga3lzeW15cyBUecO2a2FsdXBha2lzdGEgdMOkaMOkbi5cIixcbiAgICBhZGRMb2dpY0l0ZW06IFwiTHVvIHPDpMOkbnTDtiBtdWthdXR0YW1hYW4ga3lzZWx5biBrdWxrdWEuXCIsXG4gICAgY29weTogXCJLb3Bpb2lcIixcbiAgICBkdXBsaWNhdGU6IFwiTW9uaXN0YVwiLFxuICAgIGFkZFRvVG9vbGJveDogXCJMaXPDpMOkIFR5w7ZrYWx1cGFra2lpblwiLFxuICAgIGRlbGV0ZVBhbmVsOiBcIlBvaXN0YSBQYW5lZWxpXCIsXG4gICAgZGVsZXRlUXVlc3Rpb246IFwiUG9pc3RhIEt5c3lteXNcIixcbiAgICBjb252ZXJ0VG86IFwiS29udmVydG9pXCIsXG4gICAgZHJhZzogXCJWZWTDpCBlbGVtZW50dGnDpFwiLFxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIk9sZXR1c2Fydm9cIixcbiAgICBjaGVja2JveDogXCJWYWxpbnRhcnV1dHVcIixcbiAgICBjb21tZW50OiBcIktvbW1lbnR0aVwiLFxuICAgIGltYWdlcGlja2VyOiBcIkt1dmFudmFsaXRzaW5cIixcbiAgICByYW5raW5nOiBcIlNpam9pdHVzXCIsXG4gICAgaW1hZ2U6IFwiS3V2YVwiLFxuICAgIGRyb3Bkb3duOiBcIlB1ZG90dXN2YWxpa2tvXCIsXG4gICAgZmlsZTogXCJUaWVkb3N0b1wiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIG1hdHJpeDogXCJNYXRyaXggKHlrc2kgdmFsaW50YSlcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCJNYXRyaXggKG1vbml2YWxpbnRhKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0cml4IChkeW5hYW1pc2V0IHJpdml0KVwiLFxuICAgIG11bHRpcGxldGV4dDogXCJVc2VpdGEgdGVrc3RlasOkXCIsXG4gICAgcGFuZWw6IFwiUGFuZWVsaVwiLFxuICAgIHBhbmVsZHluYW1pYzogXCJQYW5lZWxpIChkeW5hYW1pc2V0IHBhbmVlbGl0KVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwiUmFkaW9wYWluaWtlcnlobcOkXCIsXG4gICAgcmF0aW5nOiBcIkx1b2tpdHVzXCIsXG4gICAgdGV4dDogXCJUZWtzdGlcIixcbiAgICBib29sZWFuOiBcIlRvdHV1c2Fydm9tdXV0dHVqYVwiLFxuICAgIGV4cHJlc3Npb246IFwiTGF1c2VrZSh2YWluIGx1a3UpXCIsXG4gICAgc2lnbmF0dXJlcGFkOiBcIkFsbGVraXJqb2l0dXNhbHVzdGFcIixcbiAgICAvLyBmbG93cGFuZWw6IFwiU3VqdXZhIFBhbmVlbGlcIixcbiAgfSxcbiAgLy9TdHJpbmdzIGluIEVkaXRvclxuICBlZDoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwiVmFraW8gKHswfSlcIixcbiAgICBzdXJ2ZXk6IFwiS3lzZWx5XCIsXG4gICAgc2V0dGluZ3M6IFwiS3lzZWx5biBhc2V0dWtzZXRcIixcbiAgICBzZXR0aW5nc1Rvb2x0aXA6IFwiQXZhYSBreXNlbHluIGFzZXR1a3NldFwiLFxuICAgIC8vb3BqZWN0UHJvcGVydGllc0hlYWRlcjogXCJFZGVpc3R5bnl0XCIsXG4gICAgLy9zaG93T2JqZWN0UHJvcGVydGllczogXCJOw6R5dMOkIG9iamVrdGluIG9taW5haXN1dWRldFwiLFxuICAgIC8vaGlkZU9iamVjdFByb3BlcnRpZXM6IFwiUGlpbG90YSBvYmpla3RpbiBvbWluYWlzdXVkZXRcIixcbiAgICBzaG93UGFuZWw6IFwiTsOkeXTDpCBQYW5lZWxpXCIsXG4gICAgaGlkZVBhbmVsOiBcIlBpaWxvdGEgUGFuZWVsaVwiLFxuICAgIGVkaXRTdXJ2ZXk6IFwiTXVva2thYSBreXNlbHnDpFwiLFxuICAgIGFkZE5ld1BhZ2U6IFwiTGlzw6TDpCB1dXNpIHNpdnVcIixcbiAgICBtb3ZlUmlnaHQ6IFwiU2VsYWEgb2lrZWFsbGVcIixcbiAgICBtb3ZlTGVmdDogXCJTZWxhYSB2YXNlbW1hbGxlXCIsXG4gICAgZGVsZXRlUGFnZTogXCJQb2lzdGEgc2l2dVwiLFxuICAgIGVkaXRQYWdlOiBcIk11b2trYWEgc2l2dWFcIixcbiAgICBlZGl0OiBcIk11b2trYWFcIixcbiAgICBuZXdQYWdlTmFtZTogXCJzaXZ1XCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcImt5c3lteXNcIixcbiAgICBuZXdQYW5lbE5hbWU6IFwicGFuZWVsaVwiLFxuICAgIG5ld1RleHRJdGVtTmFtZTogXCJ0ZWtzdGlcIixcbiAgICB0ZXN0U3VydmV5OiBcIlRlc3RhYSBreXNlbHnDpFwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJUZXN0YWEga3lzZWx5IHV1ZGVzdGFhblwiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCJLeXNlbHluIGxhYWp1dXM6IFwiLFxuICAgIG5hdmlnYXRlVG9Nc2c6IFwiU2ludW4gcGl0aSBuYXZpZ29pZGE6XCIsXG4gICAgbG9naWM6IFwiS3lzZWx5IGxvZ2lpa2thXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwiVXBvdGEga3lzZWx5XCIsXG4gICAgdHJhbnNsYXRpb246IFwiS8Okw6RubsO2a3NldFwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwiVGFsbGVubmEga3lzZWx5XCIsXG4gICAgc2F2ZVN1cnZleVRvb2x0aXA6IFwiVGFsbGVubmEga3lzZWx5XCIsXG4gICAgZGVzaWduZXI6IFwiS3lzZWx5XCIsXG4gICAganNvbkVkaXRvcjogXCJKU09OIEVkaXRvcmlcIixcbiAgICB1bmRvOiBcIkt1bW9hXCIsXG4gICAgcmVkbzogXCJUZWUgdXVkZWxsZWVuXCIsXG4gICAgdW5kb1Rvb2x0aXA6IFwiS3Vtb2EgdmlpbWVpbmVuIG11dXRvc1wiLFxuICAgIHJlZG9Ub29sdGlwOiBcIlRlZSBtdXV0b3MgdXVkZWxsZWVuXCIsXG4gICAgY29weTogXCJLb3Bpb2lcIixcbiAgICBjdXQ6IFwiTGVpa2thYVwiLFxuICAgIHBhc3RlOiBcIkxpaXTDpFwiLFxuICAgIGNvcHlUb29sdGlwOiBcIktvcGlvaSB2YWxpbnRhIGxlaWtlcMO2eWTDpGxsZVwiLFxuICAgIGN1dFRvb2x0aXA6IFwiTGVpa2thYSB2YWxpbnRhIGxlaWtlcMO2eWTDpGxsZVwiLFxuICAgIHBhc3RlVG9vbHRpcDogXCJMaWl0w6QgbGVpa2Vww7Z5ZMOkbHTDpFwiLFxuICAgIG9wdGlvbnM6IFwiVmFpaHRvZWhkb3RcIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCJMdW8ga2Vsdm9sbGluZW4gSlNPTlwiLFxuICAgIGdlbmVyYXRlUmVhZGFibGVKU09OOiBcIkx1byBsdWV0dGF2YSBKU09OXCIsXG4gICAgdG9vbGJveDogXCJUecO2a2FsdXBha2tpXCIsXG4gICAgXCJwcm9wZXJ0eS1ncmlkXCI6IFwiQXNldHVrc2V0XCIsXG4gICAgdG9vbGJveEdlbmVyYWxDYXRlZ29yeTogXCJZbGVpbmVuXCIsXG4gICAgZGVsU2VsT2JqZWN0OiBcIlBvaXN0YSB2YWxpdHR1IG9iamVrdGlcIixcbiAgICBlZGl0U2VsT2JqZWN0OiBcIk11b2trYWEgdmFsaXR0dWEgb2JqZWt0aWFcIixcbiAgICBjb3JyZWN0SlNPTjogXCJLb3JqYWEgSlNPTi5cIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcIkt5c2VseW4gdHVsb3M6XCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIlRhdWx1a29zc2FcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCJKU09OOnNzYVwiLFxuICAgIHJlc3VsdHNUaXRsZTogXCJLeXN5bXlrc2VuIG90c2lra29cIixcbiAgICByZXN1bHRzTmFtZTogXCJLeXN5bXlrc2VuIG5pbWlcIixcbiAgICByZXN1bHRzVmFsdWU6IFwiVmFzdGF1a3NlbiBhcnZvXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCJOw6R5dMOkIGFydm9cIixcbiAgICBtb2RpZmllZDogXCJNdW9rYXR0dVwiLFxuICAgIHNhdmluZzogXCJUYWxsZW50YWFcIixcbiAgICBzYXZlZDogXCJUYWxsZW5uZXR0dVwiLFxuICAgIHByb3BlcnR5RWRpdG9yRXJyb3I6IFwiVmlyaGU6XCIsXG4gICAgc2F2ZUVycm9yOiBcIlZpcmhlISBFZGl0b3JpbiBzaXPDpGx0w7bDpCBlaSBvbGUgdGFsbGVubmV0dHUuXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCJWYWxpdHNlIGvDpMOkbm5ldHTDpHbDpCBraWVsaVwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwiTsOkeXTDpCBrYWlra2kgbWVya2tpam9ub3RcIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxQYWdlczogXCJOw6R5dMOkIGthaWtraSBzaXZ1dFwiLFxuICAgIHRyYW5zbGF0aW9uTm9TdHJpbmdzOiBcIkVpIG1lcmtraWpvbm9qYSBrw6TDpG5uZXR0w6R2w6Rrc2kuIFZhaWhkYSBzdW9kYXRpbi5cIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcIlZpZSAoQ1NWKVwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJUdW8gKENTVilcIixcbiAgICB0cmFuc2xhdGlvbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQ6IFwiWWhkaXN0w6QgezB9IG9sZXR1c2tpZWxlbGzDpFwiLFxuICAgIGJvbGQ6IFwiTGloYXZvaXR1XCIsXG4gICAgaXRhbGljOiBcIkt1cnNpaXZpXCIsXG4gICAgdW5kZXJsaW5lOiBcIkFsbGV2aWl2YWFcIixcbiAgICBmcEFkZFF1ZXN0aW9uOiBcIkxpc8Okw6Qga3lzeW15cy4uLlwiLFxuICAgIHNlbGVjdFBhZ2U6IFwiVmFsaXRzZSBzaXZ1Li4uXCIsXG4gICAgY2hvb3NlRWxlbWVudDogXCJWYWxpdHNlIGVsZW1lbnR0aS4uLlwiLFxuICAgIC8vY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHQ6IFwiTsOkeXTDpCBqb3M6XCIsXG4gICAgbGc6IHtcbiAgICAgIGFkZE5ld0l0ZW06IFwiXCIsIC8vQnkgZGVmYXVsdCB0aGUgdmFsdWUgaXMgdGFrZW4gZnJvbSBwZS5hZGROZXcgJ0FkZCBOZXcnLCB5b3UgY2FuIHNldCBpdCB0byAnQWRkIE5ldyBSdWxlJyBmb3IgZXhhbXBsZS5cbiAgICAgIC8vTG9naWMgdGFiIHN0cmluZ3NcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eU5hbWU6IFwiU2l2dW4gbsOka3l2eXlzXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5TmFtZTogXCJQYW5lbGluIG7DpGt5dnl5c1wiLFxuICAgICAgcGFuZWxfZW5hYmxlTmFtZTogXCJQYW5lZWxpIGvDpHl0w7Zzc8OkL0VpIGvDpHl0w7Zzc8OkXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCJLeXN5bXlrc2VuIG7DpGt5dnl5c1wiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlTmFtZTogXCJLeXN5bXlzIGvDpHl0w7Zzc8OkL0VpIGvDpHl0w7Zzc8OkXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlTmFtZTogXCJLeXN5bXlzIHZhbGlubmFpbmVuIHZhYWRpdGFhblwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZU5hbWU6IFwiVmFsbWlzIGt5c2VseVwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZU5hbWU6IFwiQXNldGEga3lzeW15a3NlbiBhcnZvXCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZU5hbWU6IFwiS29waW9pIGt5c3lteWtzZW4gYXJ2b1wiLFxuICAgICAgdHJpZ2dlcl9za2lwTmFtZTogXCJPaGl0YSBreXN5bXlzXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lOiBcIlN1b3JpdGEgbXVrYXV0ZXR0dSBsYXVzZWtlXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25OYW1lOiBcIk11a2F1dGV0dHUgS2lpdG9zIC1zaXZ1dGVrc3RpXCIsXG5cbiAgICAgIHBhZ2VfdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcIlRlZSBzaXZ1c3RhIG7DpGt5dsOkLCBrdW4gbG9vZ2luZW4gbGF1c2VrZSBwYWxhdXR0YWEgYXJ2b24gdG9zaS4gTXV1dGVuIHBpZMOkIHNlIG7DpGt5bcOkdHTDtm3DpG7DpC5cIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUZWUgcGFuZWVsaXN0YSBuw6RreXbDpCwga3VuIGxvb2dpbmVuIGxhdXNla2UgcGFsYXV0dGFhIGFydm9uIHRvc2kuIE11dXRlbiBwaWTDpCBzZSBuw6RreW3DpHR0w7Ztw6Ruw6QuXCIsXG4gICAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJPdGEgcGFuZWVsaSBqYSBrYWlra2kgc2VuIHNpc8OkbGzDpCBvbGV2YXQgZWxlbWVudGl0IGvDpHl0dMO2w7ZuLCBrdW4gbG9vZ2luZW4gbGF1c2VrZSBwYWxhdXR0YWEgYXJ2b24gdG9zaS4gTXV1dGVuIHBpZMOkIG5lIHBvaXNzYSBrw6R5dMO2c3TDpC5cIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUZWUga3lzeW15a3Nlc3TDpCBuw6RreXbDpCwga3VuIGxvb2dpbmVuIGxhdXNla2UgcGFsYXV0dGFhIGFydm9uIHRvc2kuIE11dXRlbiBwaWTDpCBzZSBuw6RreW3DpHR0w7Ztw6Ruw6QuXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJPdGEga3lzeW15cyBrw6R5dHTDtsO2biwga3VuIGxvb2dpbmVuIGxhdXNla2UgcGFsYXV0dGFhIGFydm9uIHRvc2kuIE11dXNzYSB0YXBhdWtzZXNzYSBwaWTDpCBzZSBwb2lzc2Ega8OkeXTDtnN0w6QuXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlRGVzY3JpcHRpb246XG4gICAgICAgIFwiS3lzeW15cyB0dWxlZSBwYWtvbGxpc2Vrc2ksIGt1biBsb29naW5lbiBsYXVzZWtlIHBhbGF1dHRhYSBhcnZvbiB0b3NpLlwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIkt1biBsb29naW5lbiBsYXVzZWtlIHBhbGF1dHRhYSBhcnZvbiB0b3NpLCBreXNlbHkgdmFsbWlzdHV1IGphIGxvcHB1a8OkeXR0w6Rqw6QgbsOka2VlIEtpaXRvcyAtc2l2dW4uXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlRGVzY3JpcHRpb246XG4gICAgICAgIFwiS3VuIGxvb2dpc2Vzc2EgbGF1c2Vra2Vlc3NhIGvDpHl0ZXR0eWrDpCBreXN5bXlzYXJ2b2phIG11dXRldGFhbiBqYSBsb29naW5lbiBsYXVzZWtlIHBhbGF1dHRhYSBhcnZvbiB0b3NpLCBhcnZvIGFzZXRldGFhbiB2YWxpdHVsbGUga3lzeW15a3NlbGxlLlwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJLdW4gbG9vZ2lzZXNzYSBsYXVzZWtrZWVzc2Ega8OkeXRldHR5asOkIGt5c3lteXNhcnZvamEgbXV1dGV0YWFuIGphIGxvb2dpbmVuIGxhdXNla2UgcGFsYXV0dGFhIGFydm9uIHRvc2ksIHloZGVuIHZhbGl0dW4ga3lzeW15a3NlbiBhcnZvIGtvcGlvaWRhYW4gdG9pc2VlbiB2YWxpdHR1dW4ga3lzeW15a3NlZW4uXCIsXG4gICAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJLdW4gbG9vZ2luZW4gbGF1c2VrZSBwYWxhdXR0YWEgYXJ2b24gdG9zaSwga3lzZWx5IHNpaXJ0eXkgdmFsaXR0dXVuIGt5c3lteWtzZWVuIC8ga29oZGlzdGEgdmFsaXR0dSBreXN5bXlzLlwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwiV2hlbiB0aGUgbG9naWMgZXhwcmVzc2lvbiByZXR1cm5zIHRydWUsIHRoZW4gdGhlIGN1c3RvbSBleHByZXNzaW9uIGlzIHBlcmZvcm1lZC4gWW91IG1heSBvcHRpb25hbGx5IHNldCB0aGlzIGV4cHJlc3Npb24gcmVzdWx0IGludG8gdGhlIHNlbGVjdGVkIHF1ZXN0aW9uXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25EZXNjcmlwdGlvbjpcbiAgICAgICAgXCJJZiB0aGUgbG9naWMgZXhwcmVzc2lvbiByZXR1cm5zIHRydWUsIHRoZW4gdGhlIGRlZmF1bHQgdGV4dCBmb3IgdGhlICdUaGFuayB5b3UgcGFnZScgaXMgY2hhbmdlZCB0byB0aGUgZ2l2ZW4gb25lLlwiLFxuXG4gICAgICBpdGVtRXhwcmVzc2lvblRleHQ6IFwiS3VuIGxhdXNla2U6ICd7MH0nIHBhbGF1dHRhYSBhcnZvbiB0b3NpOlwiLCAvL3swfSAtIHRoZSBleHByZXNzaW9uXG4gICAgICBwYWdlX3Zpc2liaWxpdHlUZXh0OiBcIlRlZSBzaXZ1IHswfSBuw6RreXbDpGtzaVwiLCAvL3swfSBwYWdlIG5hbWVcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlUZXh0OiBcIlRlZSBwYW5lZWxpc3RhIHswfSBuw6RreXbDpFwiLCAvL3swfSBwYW5lbCBuYW1lXG4gICAgICBwYW5lbF9lbmFibGVUZXh0OiBcIk90YSBwYW5lZWxpIHswfSBrw6R5dHTDtsO2blwiLCAvL3swfSBwYW5lbCBuYW1lXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5VGV4dDogXCJUZWUga3lzeW15cyB7MH0gbsOka3l2w6Rrc2lcIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgcXVlc3Rpb25fZW5hYmxlVGV4dDogXCJPdGEga3lzeW15cyB7MH0ga8OkeXR0w7bDtm5cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgcXVlc3Rpb25fcmVxdWlyZVRleHQ6IFwiVGVlIGt5c3lteWtzZXN0w6QgezB9IHBha29sbGluZW5cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZVRleHQ6IFwiS3lzZWx5c3TDpCB0dWxlZSB0w6R5dGV0dHlcIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVUZXh0OiBcIkxhaXRhIGFydm8gezF9IGt5c3lteWtzZWVuIHswfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lLCB7MX0gc2V0VmFsdWVcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlVGV4dDogXCJLb3Bpb2kga3lzeW15a3NlZW46IHswfSBhcnZvIGt5c3lteWtzZXN0w6QgezF9XCIsIC8vezB9IGFuZCB7MX0gcXVlc3Rpb24gbmFtZXNcbiAgICAgIHRyaWdnZXJfc2tpcFRleHQ6IFwiU2lpcnJ5IGt5c2VseW4ga3lzeW15a3NlZW4gezB9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQxOiBcIlN1b3JpdGEgbGF1c2VrZTogJ3swfSdcIiwgLy97MH0gdGhlIGV4cHJlc3Npb25cbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQyOiBcIiBqYSBhc2V0YSBzZW4gdHVsb3Mga3lzeW15a3NlZW46IHswfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25UZXh0OiBcIk7DpHl0w6QgbXVrYXV0ZXR0dSB0ZWtzdGkgS2lpdG9zIC1zaXZ1bGxlLlwiLFxuXG4gICAgICBjb25kaXRpb25zOiBcIkVoZG90XCIsXG4gICAgICBhY3Rpb25zOiBcIlRvaW1pbm5vdFwiLFxuICAgICAgZXhwcmVzc2lvbkVkaXRvclRpdGxlOiBcIk3DpMOkcml0w6Qgb2xvc3VodGVldFwiLFxuICAgICAgYWN0aW9uc0VkaXRvclRpdGxlOiBcIk3DpMOkcml0w6QgdG9pbWlubm90XCIsXG5cbiAgICAgIGRlbGV0ZUFjdGlvbjogXCJQb2lzdGEgdG9pbWludG9cIixcbiAgICAgIGFkZE5ld0FjdGlvbjogXCJMaXPDpMOkIHV1c2kgdG9pbWludG9cIixcbiAgICAgIHNlbGVjdGVkQWN0aW9uQ2FwdGlvbjogXCJWYWxpdHNlIGxpc8OkdHTDpHbDpCB0b2ltaW50byAuLi5cIixcblxuICAgICAgZXhwcmVzc2lvbkludmFsaWQ6IFwiTG9vZ2luZW4gbGF1c2VrZSBvbiB0eWhqw6QgdGFpIHZpcmhlZWxsaW5lbi4gS29yamFhIHNlLlwiLFxuICAgICAgbm9BY3Rpb25FcnJvcjogXCJMaXPDpMOkIGFpbmFraW4geWtzaSB0b2ltaW50by5cIixcbiAgICAgIGFjdGlvbkludmFsaWQ6IFwiS29yamFhIG9uZ2VsbWF0IHRvaW1pbm5vaXNzYS5cIixcbiAgICAgIGV4cHJlc3Npb25TZXR1cDogXCJcIixcbiAgICAgIGFjdGlvbnNTZXR1cDogXCJcIixcbiAgICB9LFxuICB9LFxuICAvL1Byb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgLy8gcGVsOiB7XG4gIC8vICAgaXNSZXF1aXJlZDogXCJWYWFkaXR0dT9cIlxuICAvLyB9LFxuICAvL1Byb3BlcnR5IEVkaXRvcnNcbiAgcGU6IHtcbiAgICBhcHBseTogXCJLw6R5dMOkXCIsXG4gICAgb2s6IFwiT0tcIixcbiAgICBzYXZlOiBcIlRhbGxlbm5hXCIsXG4gICAgc2F2ZVRvb2x0aXA6IFwiVGFsbGVubmFcIixcbiAgICBjYW5jZWw6IFwiUGVydXV0YVwiLFxuICAgIHJlc2V0OiBcIk5vbGxhYVwiLFxuICAgIHJlZnJlc2g6IFwiUMOkaXZpdMOkXCIsXG4gICAgLy8gY2xvc2U6IFwiU3VsamVcIixcbiAgICBkZWxldGU6IFwiUG9pc3RhXCIsXG4gICAgYWRkOiBcIkxpc8Okw6RcIixcbiAgICBhZGROZXc6IFwiTGlzw6TDpCB1dXNpXCIsXG4gICAgYWRkSXRlbTogXCJLbGlra2FhIGxpc8OkdMOka3Nlc2kgdXVzaSBrb2hkZS4uLlwiLFxuICAgIGFkZE90aGVyOiBcIk11dVwiLFxuICAgIGFkZFNlbGVjdEFsbDogXCJWYWxpdHNlIGthaWtraVwiLFxuICAgIGFkZE5vbmU6IFwiRWkgbWl0w6TDpG5cIixcbiAgICByZW1vdmVBbGw6IFwiUG9pc3RhIGthaWtraVwiLFxuICAgIGVkaXQ6IFwiTXVva2thYVwiLFxuICAgIGJhY2s6IFwiUGFsYWEgdGFsbGVudGFtYXR0YVwiLFxuICAgIGJhY2tUb29sdGlwOiBcIlBhbGFhIHRhbGxlbnRhbWF0dGFcIixcbiAgICBzYXZlQW5kQmFjazogXCJUYWxsZW5uYSBqYSBwYWxhYVwiLFxuICAgIHNhdmVBbmRCYWNrVG9vbHRpcDogXCJUYWxsZW5uYSBqYSBwYWxhYVwiLFxuICAgIC8vIGl0ZW1WYWx1ZUVkaXQ6IFwiTsOka3l2w6Qgam9zXCIsXG4gICAgZWRpdENob2ljZXM6IFwiTXVva2thYSB2YWxpbnRvamFcIixcbiAgICBzaG93Q2hvaWNlczogXCJOw6R5dMOkIHZhbGlubmF0XCIsXG4gICAgbW92ZTogXCJTaWlycsOkXCIsXG4gICAgZW1wdHk6IFwiPHR5aGrDpD5cIixcbiAgICAvLyBub3RFbXB0eTogXCI8TXVva2thYSBhcnZvYT5cIixcbiAgICBmYXN0RW50cnk6IFwiTm9wZWEgcMOkw6RzeVwiLFxuICAgIGZvcm1FbnRyeTogXCJMb21ha2tlZW4gcMOkw6RzeVwiLFxuICAgIHRlc3RTZXJ2aWNlOiBcIlRlc3RhYSBwYWx2ZWx1XCIsXG4gICAgaXRlbVNlbGVjdG9yRW1wdHk6IFwiVmFsaXRzZSBlbGVtZW50dGlcIixcbiAgICBjb25kaXRpb25BY3Rpb25FbXB0eTogXCJWYWxpdHNlIHRvaW1pbnRvXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UXVlc3Rpb246IFwiVmFsaXRzZSBreXN5bXlzLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFnZTogXCJWYWxpdHNlIHNpdnUuLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYW5lbDogXCJWYWxpdHNlIHBhbmVlbGkuLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwiU3nDtnTDpCAvIHZhbGl0c2UgYXJ2b1wiLFxuICAgIGNvbmRpdGlvbkhlbHA6IFwiQW5uYSBsb29naW5lbiBsYXVzZWtlLiBTZW4gcGl0w6Rpc2kgcGFsYXV0dGFhIGFydm8gdG9zaSBwaXTDpMOka3NlZW4ga3lzeW15cyAvIHNpdnUgbsOka3l2aXNzw6QuIEVzaW1lcmtpa3NpOiB7cXVlc3Rpb24xfSA9ICd2YWx1ZTEnIG9yICh7cXVlc3Rpb24yfSAqIHtxdWVzdGlvbjR9ICA+IDIwIGFuZCB7cXVlc3Rpb24zfSA8IDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6IFwiVm9pdCBrw6R5dHTDpMOkIGFhbHRvIOKAi+KAi3N1bGtlaXRhIHDDpMOkc3TDpGtzZXNpIGt5c3lteXNhcnZvaWhpbjoge3F1ZXN0aW9uMX0gKyB7cXVlc3Rpb24yfSwgKHtwcmljZX0qe3F1YW50aXR5fSkgKiAoMTAwIC0ge2Rpc2NvdW50fSkuIFZvaXQga8OkeXR0w6TDpCBmdW5rdGlvaXRhOiBpaWYoKSwgdG9kYXkoKSwgYWdlKCksIG1pbigpLCBtYXgoKSwgY291bnQoKSwgYXZnKCkgamEgbXVpdGEuXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCJQYWluYSBjdHJsICsgdsOkbGlsecO2bnRpIHNhYWRha3Nlc2kgbGF1c2Vra2VlbiB0w6R5ZGVubnlzdmloamVcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCJOeWt5aW5lbiByaXZpXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCJOeWt5aW5lbiBwYW5lZWxpXCIsXG4gICAgc2hvd01vcmU6IFwiS2F0c28gbGlzw6R0aWV0b2phIGRva3VtZW50YWF0aW9zdGFcIixcbiAgICAvLyBjb25kaXRpb25TaG93TW9yZVVybDpcbiAgICAvLyAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Eb2N1bWVudGF0aW9uL0xpYnJhcnlQYXJhbWV0ZXI/aWQ9UXVlc3Rpb24mcGFyYW1ldGVyPXZpc2libGVJZlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIlNhYXRhdmlsbGEgb2xldmF0IGt5c3lteWtzZXQ6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIlNhcmFra2VpdGEgdGFpIHJpdmVqw6Qgb24gb2x0YXZhIHbDpGhpbnTDpMOkbiB5a3NpXCIsXG5cbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwiQW5uYSBhcnZvXCIsXG4gICAgcHJvcGVydHlJc05vVW5pcXVlOiBcIkFubmEgeWtzaWzDtmxsaW5lbiBhcnZvXCIsXG4gICAgcHJvcGVydHlOYW1lSXNOb3RVbmlxdWU6IFwiQW5uYSB5a3NpbMO2bGxpbmVuIG5pbWlcIixcbiAgICBsaXN0SXNFbXB0eTogXCJMaXPDpMOkIHV1c2kga29oZGVcIixcbiAgICBleHByZXNzaW9uSXNFbXB0eTogXCJMYXVzZWtlIG9uIHR5aGrDpFwiLFxuICAgIHZhbHVlOiBcIkFydm9cIixcbiAgICB0ZXh0OiBcIlRla3N0aVwiLFxuICAgIHJvd2lkOiBcIlJpdmkgSURcIixcbiAgICBpbWFnZUxpbms6IFwiS3V2YWxpbmtraVwiLFxuICAgIGNvbHVtbkVkaXQ6IFwiTXVva2thYSBzYXJha2V0dGE6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIk11b2trYWEga29oZGV0dGE6IHswfVwiLFxuXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHBhdGg6IFwiUG9sa3VcIixcbiAgICB2YWx1ZU5hbWU6IFwiQXJ2b24gbmltaVwiLFxuICAgIHRpdGxlTmFtZTogXCJPdHNpa29uIG5pbWlcIixcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiBcIlN5w7Z0w6Qgb3RzaWtrbyB0w6Row6RuXCIsXG4gICAgc3VydmV5VGl0bGVQbGFjZWhvbGRlcjogXCJTecO2dMOkIGt5c2VseW4gb3RzaWtrbyB0w6Row6RuXCIsXG4gICAgcGFnZVRpdGxlUGxhY2Vob2xkZXI6IFwiU3nDtnTDpCBzaXZ1biBvdHNpa2tvIHTDpGjDpG5cIixcbiAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIkxpc8Okw6Qga3V2YXVzXCIsXG4gICAgc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJMaXPDpMOkIGt5c2VseW4ga3V2YXVzXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiTGlzw6TDpCBzaXZ1biBrdXZhdXNcIixcblxuICAgIHNob3dPdGhlckl0ZW06IFwiT24gbXV1XCIsXG4gICAgb3RoZXJUZXh0OiBcIk11dSB0ZWtzdGlcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiRWkgbWl0w6TDpG5cIixcbiAgICBub25lVGV4dDogXCJFaSBtaXTDpMOkbiB0ZWtzdGnDpFwiLFxuICAgIGhhc1NlbGVjdEFsbDogXCJPbiB2YWxpbm51dCBrYWlra2lcIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIlZhbGl0c2Uga2Fpa2tpIHRla3N0aXRcIixcbiAgICBjaG9pY2VzTWluOiBcIkF1dG9tYWF0dGlzZXN0aSBsdW90dWplbiB2YWxpbnRvamVuIHbDpGhpbW3DpGlzYXJ2b1wiLFxuICAgIGNob2ljZXNNYXg6IFwiQXV0b21hYXR0aXNlc3RpIGx1b3R1amVuIHZhbGludG9qZW4gZW5pbW3DpGlzYXJ2b1wiLFxuICAgIGNob2ljZXNTdGVwOiBcIkF1dG9tYWF0dGlzZXN0aSBsdW90dWplbiB2YWxpbnRvamVuIGVyb1wiLFxuICAgIG5hbWU6IFwiTmltaVwiLFxuICAgIHRpdGxlOiBcIk90c2lra29cIixcbiAgICBjZWxsVHlwZTogXCJTb2x1dHl5cHBpXCIsXG4gICAgY29sQ291bnQ6IFwiU2FyYWtlbcOkw6Ryw6RcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiVmFsaXRzZSB2YWxpbnRvamVuIGrDpHJqZXN0eXNcIixcbiAgICB2aXNpYmxlOiBcIk9uIG7DpGt5dsOkP1wiLFxuICAgIGlzUmVxdWlyZWQ6IFwiT24gdmFhZGl0dHU/XCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJWYWFkaSB2YXN0YXVzIGthaWtpbGxlIHJpdmVpbGxlXCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwiVmFhZGl0dHUgdmlyaGV0ZWtzdGlcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIk9ua28gYWxvaXR1cyB1dWRlbGxhIHJpdmlsbMOkP1wiLFxuICAgIHJvd3M6IFwiUml2aXRcIixcbiAgICBjb2xzOiBcIlNhcmFrZWV0XCIsXG4gICAgcGxhY2Vob2xkZXI6IFwiU3nDtnTDpCBwYWlra2FtZXJraW50w6RcIixcbiAgICBzaG93UHJldmlldzogXCJOw6R5dMOkIGVzaWthdHNlbHVcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwiVGFsbGVubmEgdGllZG9zdG9zaXPDpGx0w7YgSlNPTi10dWxva3NlZW4gdGVrc3RpbsOkXCIsXG4gICAgbWF4U2l6ZTogXCJUaWVkb3N0b24gZW5pbW3DpGlza29rbyB0YXZ1aW5hXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiS3V2YW4ga29ya2V1c1wiLFxuICAgIGltYWdlV2lkdGg6IFwiS3V2YW4gbGV2ZXlzXCIsXG4gICAgcm93Q291bnQ6IFwiUml2aWVuIG3DpMOkcsOkXCIsXG4gICAgY29sdW1uTGF5b3V0OiBcIlNhcmFra2VpZGVuIGFzZXR0ZWx1XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiTGlzw6TDpCByaXZpcGFpbmlra2VlbiBzaWphaW50aVwiLFxuICAgIGFkZFJvd1RleHQ6IFwiTGlzw6TDpCByaXZpcGFpbmlra2VlbiB0ZWtzdGlcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlBvaXN0YSByaXZpcGFpbmlra2VlbiB0ZWtzdGlcIixcbiAgICByYXRlTWluOiBcIlbDpGhpbW3DpGlzbcOkw6Ryw6RcIixcbiAgICByYXRlTWF4OiBcIkVuaW1tw6Rpc23DpMOkcsOkXCIsXG4gICAgcmF0ZVN0ZXA6IFwiQXJ2b3N0ZWxlIGFza2VsXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIlbDpGhpbW3DpGlzbcOkw6Ryw6RuIGt1dmF1c1wiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJFbmltbcOkaXNtw6TDpHLDpG4ga3V2YXVzXCIsXG4gICAgaW5wdXRUeXBlOiBcIlN5w7Z0w6QgdHl5cHBpXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiVmFpaHRvZWhkb3Qga3V2YXRla3N0aVwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJPbGV0dXNhcnZvXCIsXG4gICAgY2VsbHNEZWZhdWx0Um93OiBcIk9sZXR1c3NvbHV0ZWtzdGl0XCIsXG5cbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCJNdW9ra2FhIGt5c2VseW4gYXNldHVrc2lhXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIk11b2trYWE6IHswfVwiLFxuXG4gICAgbWF4TGVuZ3RoOiBcIkVuaW1tw6Rpc3BpdHV1c1wiLFxuXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcIkx1b1wiLFxuICAgIGVkaXRFeHByZXNzaW9uOiBcIk11b2trYWFcIixcbiAgICBhbmQ6IFwiSmFcIixcbiAgICBvcjogXCJUYWlcIixcbiAgICByZW1vdmU6IFwiUG9pc3RhXCIsXG4gICAgYWRkQ29uZGl0aW9uOiBcIkxpc8Okw6QgZWh0b1wiLFxuXG4gICAgLy9zdXJ2ZXlcbiAgICBzaG93VGl0bGU6IFwiTsOkeXTDpC9waWlsb3RhIG90c2lra29cIixcbiAgICBleHBhbmRDb2xsYXBzZVRpdGxlOiBcIkxhYWplbm5hIC8gdGlpdmlzdMOkIG90c2lra29hXCIsXG4gICAgbG9jYWxlOiBcIk9sZXR1cyBraWVsaVwiLFxuICAgIHNpbXVsYXRvcjogXCJWYWxpdHNlIGxhaXRlXCIsXG4gICAgbGFuZHNjYXBlT3JpZW50YXRpb246IFwiVmFha2FzdXVudGFcIixcbiAgICBtb2RlOiBcIlRpbGEgKHZhaW4gbXVva2thdXMgLyB2YWluIGx1a3UpXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiVHloamVubsOkIG7DpGt5bcOkdHTDtm3DpHQgYXJ2b3RcIixcbiAgICBjb29raWVOYW1lOiBcIkV2w6RzdGVlbiBuaW1pIChwb2lzdGFha3Nlc2kga3lzZWx5IGvDpHl0w7ZzdMOkIHN1b3JpdGEga3lzZWx5IGtha3NpIGtlcnRhYSBwYWlrYWxsaXNlc3RpKVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIkzDpGhldMOkIGt5c2VseW4gdHVsb2tzZXQgc2V1cmFhdmFsbGEgc2l2dWxsYVwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcIlRhbGxlbm5hICdtdXV0JyBhcnZvIGVyaWxsaXNlZW4ga2VudHTDpMOkblwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIk7DpHl0w6Qgc2l2dW4gb3RzaWtvdFwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJOw6R5dMOkIHNpdnVudW1lcm90XCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIkVkZWxsaW5lbiBzaXZ1IC1wYWluaWtrZWVuIHRla3N0aVwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJTZXVyYWF2YSBzaXZ1IC1wYWluaWtrZWVuIHRla3N0aVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJWYWxtaXMgLXBhaW5pa2tlZW4gdGVrc3RpXCIsXG4gICAgcHJldmlld1RleHQ6IFwiRXNpa2F0c2VsZSAtcGFpbmlra2VlbiB0ZWtzdGlcIixcbiAgICBlZGl0VGV4dDogXCJNdW9ra2FhIC1wYWluaWtrZWVuIHRla3N0aVwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJBbG9pdGEgLXBhaW5pa2tlZW4gdGVrc3RpXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIk7DpHl0w6QgbmF2aWdvaW50aXBhaW5pa2tlZXQgKG9sZXR1c25hdmlnb2ludGkpXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwiTsOkeXTDpCBlZGVsbGluZW4gLXBhaW5pa2UgKGvDpHl0dMOkasOkIHZvaSBwYWxhdGEgZWRlbGxpc2VsbGUgc2l2dWxsZSlcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiS3lzZWx5biBlbnNpbW3DpGluZW4gc2l2dSBvbiBhbG9pdHVzc2l2dS5cIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCJOw6R5dMOkIHZhbG1pcyBzaXZ1IGxvcHVzc2EgKGNvbXBsZXRlSHRtbClcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOlxuICAgICAgXCJLdW4gdmFzdGFhdCBrYWlra2lpbiBreXN5bXlrc2lpbiwgc2lpcnJ5IHNldXJhYXZhbGxlIHNpdnVsbGUgYXV0b21hYXR0aXNlc3RpXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIk7DpHl0w6QgZWRpc3R5bWlzcGFsa2tpXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIkt5c3lteWtzZW4gb3RzaWtvbiBzaWphaW50aVwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJLeXN5bXlzIHZhYWRpdHR1IHN5bWJvbGkgKHQpXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIkt5c3lteWtzZW4gYWxvaXR1cyBpbmRla3NpICgxLCAyIG9yICdBJywgJ2EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiTsOkeXTDpCBreXN5bXlzbnVtZXJvdFwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTpcbiAgICAgIFwiS3lzeW15a3NlbiBvdHNpa2tvbWFsbGksIG9sZXR1c2Fydm86ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiS3lzeW15a3NlbiB2aXJoZWVuIHNpamFpbnRpXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIkZva3Vzb2kgZW5zaW1tw6Rpc2VlbiBreXN5bXlrc2VlbiBzaXZ1biB2YWlodHVlc3NhXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiRWxlbWVudHRpZW4gasOkcmplc3R5cyBzaXZ1bGxhXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIkVuaW1tw6Rpc2Fpa2Egc2FhZGEga3lzZWx5IHTDpHl0ZXR0ecOkXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJFbmltbcOkaXNhaWthIGt5c2VseW4gc2l2dW4gdMOkeXR0w6RtaXNlZW5cIixcbiAgICBzaG93VGltZXJQYW5lbDogXCJOw6R5dMOkIGFqYXN0dXMgLXBhbmVlbGlcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwiTsOkeXTDpCBhamFzdHVzIC1wYW5lZWxpbiB0aWxhXCIsXG4gICAgcmVuZGVyTW9kZTogXCJSZW5kZXLDtmlubmluIHRpbGFcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIlNhbGxpIHBhbmVlbGluIGxpc8Okw6RtaW5lblwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiU2FsbGkgcGFuZWVsaW4gcG9pc3RhbWluZW5cIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiUGFuZWVsaW4gdGVrc3RpbiBsaXPDpMOkbWluZW5cIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwiUGFuZWVsaW4gdGVrc3RpbiBwb2lzdGFtaW5lblwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJOw6R5dMOkIGthaWtraSBlbGVtZW50aXQgeWhkZWxsw6Qgc2l2dWxsYVwiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIGV4cHJlc3Npb246IFwiTGF1c2VrZVwiLFxuXG4gICAgbWluVmFsdWU6IFwiVsOkaGltbcOkaXNhcnZvXCIsXG4gICAgbWF4VmFsdWU6IFwiU3V1cmluIGFydm9cIixcbiAgICBtaW5MZW5ndGg6IFwiVsOkaGltbcOkaXNwaXR1dXNcIixcbiAgICBhbGxvd0RpZ2l0czogXCJTYWxsaSBudW1lcm90XCIsXG4gICAgbWluQ291bnQ6IFwiVsOkaGltbcOkaXNtw6TDpHLDpFwiLFxuICAgIG1heENvdW50OiBcIkVuaW1tw6Rpc23DpMOkcsOkXCIsXG4gICAgcmVnZXg6IFwiUmVndWxhciBleHByZXNzaW9uXCIsXG5cbiAgICAvLyB0b3RhbFRleHQ6IFwiS29rbyB0ZWtzdGlcIixcbiAgICAvLyB0b3RhbFR5cGU6IFwiS29rbyB0eXlwcGlcIixcbiAgICAvLyB0b3RhbEV4cHJlc3Npb246IFwiS29rb25haXNsYXVzZWtlXCIsXG4gICAgLy8gdG90YWxEaXNwbGF5U3R5bGU6IFwiS29rb25haXNuw6R5dHTDtnR5eWxpXCIsXG4gICAgLy8gdG90YWxDdXJyZW5jeTogXCJWYWx1dXR0YSB5aHRlZW5zw6RcIixcbiAgICAvLyB0b3RhbEZvcm1hdDogXCJLb2tvbmFpc211b3RvXCIsXG5cbiAgICAvLyBIZWFkZXIgIGFkb3JuZXJcbiAgICBsb2dvUG9zaXRpb246IFwiTG9nbyBzaWphaW50aVwiLFxuICAgIGFkZExvZ286IFwiTGlzw6TDpCBsb2dvLi4uXCIsXG4gICAgY2hhbmdlTG9nbzogXCJNdXV0YSBsb2dvLi4uXCIsXG4gICAgbG9nb1Bvc2l0aW9uczoge1xuICAgICAgbm9uZTogXCJQb2lzdGEgbG9nb1wiLFxuICAgICAgbGVmdDogXCJWYXNlblwiLFxuICAgICAgcmlnaHQ6IFwiT2lrZWFcIixcbiAgICAgIHRvcDogXCJQw6TDpGxsw6RcIixcbiAgICAgIGJvdHRvbTogXCJBbGxhXCIsXG4gICAgfSxcblxuICAgIHRhYnM6IHtcbiAgICAgIGdlbmVyYWw6IFwiWWxlaW5lblwiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwiVmFpaHRvZWhkb3RcIixcbiAgICAgIGh0bWw6IFwiSHRtbCBFZGl0b3JpXCIsXG4gICAgICBjb2x1bW5zOiBcIlNhcmFra2VldFwiLFxuICAgICAgcm93czogXCJSaXZpdFwiLFxuICAgICAgY2hvaWNlczogXCJWYWxpbm5hdFwiLFxuICAgICAgaXRlbXM6IFwiS29odGVldFwiLFxuICAgICAgdmlzaWJsZUlmOiBcIk7DpGt5dsOkIGpvc1wiLFxuICAgICAgZW5hYmxlSWY6IFwiS8OkeXTDtnNzw6Qgam9zXCIsXG4gICAgICByZXF1aXJlZElmOiBcIlZhYWRpdHR1IGpvc1wiLFxuICAgICAgcmF0ZVZhbHVlczogXCJKw6RyamVzdMOkIGFydm90XCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwiVmFsaW50b2phIHZlcmtvc3RhXCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIk9sZXR1cyB2YWxpbm5hdFwiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwiVGVrc3RpbnN5w7Z0w7Z0XCIsXG4gICAgICBudW1iZXJpbmc6IFwiTnVtZXJvaW50aVwiLFxuICAgICAgdmFsaWRhdG9yczogXCJWYWxpZGF0dG9yaXRcIixcbiAgICAgIG5hdmlnYXRpb246IFwiTmF2aWdvaW50aVwiLFxuICAgICAgcXVlc3Rpb246IFwiS3lzeW15c1wiLFxuICAgICAgcGFnZXM6IFwiU2l2dXRcIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwiVmFsbWlzIEh0bWxcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJWYWxtaXMgSHRtbCBlaGRvbGxhXCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCJMYXRhYSBIdG1sXCIsXG4gICAgICB0aW1lcjogXCJBamFzdGluIC8gdGlldG92aXNhXCIsXG4gICAgICBjYWxjdWxhdGVkVmFsdWVzOiBcIkxhc2tldHV0IGFydm90XCIsXG4gICAgICB0cmlnZ2VyczogXCJUcmlnZ2VyaXRcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiTWFsbGluIG90c2lra29cIixcbiAgICAgIHRvdGFsczogXCJZaHRlZW5zw6RcIixcbiAgICAgIGxvZ2ljOiBcIkxvZ2lpa2thXCIsXG4gICAgICBsYXlvdXQ6IFwiTGF5b3V0XCIsXG4gICAgICBkYXRhOiBcIkRhdGFcIixcbiAgICAgIHZhbGlkYXRpb246IFwiVmFsaWRvaW50aVwiLFxuICAgICAgY2VsbHM6IFwiU29sdXRcIixcbiAgICAgIHNob3dPbkNvbXBsZXRlZDogXCJOw6R5dMOkIGt1biB2YWxtaXNcIixcbiAgICAgIGxvZ286IFwiTG9nbyBreXNlbHluIG90c2lrb3NzYVwiLFxuICAgICAgc2xpZGVyOiBcIkxpdWt1c8Okw6RkaW5cIixcbiAgICAgIG90aGVyczogXCJNdXV0XCIsXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwiTXVva2thYSBvbWluYWlzdXV0dGEnezB9J1wiLFxuICAgIGl0ZW1zOiBcIlsgS29odGVldDogezB9IF1cIixcblxuICAgIGVudGVyTmV3VmFsdWU6IFwiQW5uYSBhcnZvLlwiLFxuICAgIG5vcXVlc3Rpb25zOiBcIkt5c2VseXNzw6QgZWkgb2xlIHlodMOkw6RuIGt5c3lteXN0w6QuXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCJMdW8gdHJpZ2dlcmlcIixcbiAgICB0aXRsZUtleWJvYXJkQWRvcm5lclRpcDogXCJQYWluYSBFbnRlciAtcGFpbmlrZXR0YSBtdW9rYXRha3Nlc2lcIixcbiAgICBrZXlib2FyZEFkb3JuZXJUaXA6IFwiVm9pdCBtdW9rYXRhIGtvaGRldHRhIHBhaW5hbWFsbGEgRW50ZXIgLXBhaW5pa2V0dGEsIHBvaXN0YWEga29odGVlbiBwYWluYW1hbGxhIHBvaXN0b3BhaW5pa2V0dGEsIHNpaXJ0w6TDpCBrb2hkZXR0YSBwYWluYW1hbGxhIEFsdCBwbHVzIG51b2xpIHlsw7ZzIHRhaSBudW9saSBhbGFzXCIsXG4gICAga2V5Ym9hcmRNb3ZlSXRlbXNUaXA6IFwiUGFpbmEgQWx0IHBsdXMgbnVvbGkgeWzDtnMgdGFpIG51b2xpIGFsYXMgc2lpcnTDpMOka3Nlc2kga29oZGV0dGFcIixcbiAgICB0cmlnZ2VyT246IFwiUMOkw6RsbMOkIFwiLFxuICAgIHRyaWdnZXJNYWtlUGFnZXNWaXNpYmxlOiBcIlRlZSBzaXZ1aXN0YSBuw6RreXZpw6Q6XCIsXG4gICAgdHJpZ2dlck1ha2VRdWVzdGlvbnNWaXNpYmxlOiBcIlRlZSBlbGVtZW50aXQgbsOka3l2aWtzaTpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIlZhbG1pc3RhIGt5c2VseSwgam9zIHNlIG9uIG9ubmlzdHVudXQuXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCJUcmlnZ2VyacOkIGVpIG9sZSBhc2V0ZXR0dVwiLFxuICAgIHRyaWdnZXJSdW5JZjogXCJTdW9yaXRhIGpvc1wiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwiTXV1dGEgYXJ2b2E6IFwiLFxuICAgIHRyaWdnZXJGcm9tTmFtZTogXCJLb3Bpb2kgYXJ2byBrb2h0ZWVzdGE6IFwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcIlN1b3JpdGEgdMOkbcOkIGxhdXNla2U6XCIsXG4gICAgdHJpZ2dlclNldFZhbHVlOiBcImtvaHRhYW46IFwiLFxuICAgIHRyaWdnZXJHb3RvTmFtZTogXCJTaWlycnkga3lzeW15a3NlZW46XCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwiw4Rsw6QgbGlzw6TDpCBtdXV0dHVqYWEga3lzZWx5biB0dWxva3NlZW4uXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eTogXCJBbm5hIGtlbHZvbGxpbmVuIGxhdXNla2VcIixcblxuICAgIG5vRmlsZTogXCJUaWVkb3N0b2EgZWkgb2xlIHZhbGl0dHVuYVwiLFxuICB9LFxuICAvL1Byb3BlcnR5IHZhbHVlc1xuICBwdjoge1xuICAgIHRydWU6IFwidHJ1ZVwiLFxuICAgIGZhbHNlOiBcImZhbHNlXCIsXG4gICAgaW5oZXJpdDogXCJpbmhlcml0XCIsXG4gICAgc2hvdzogXCJzaG93XCIsXG4gICAgaGlkZTogXCJoaWRlXCIsXG4gICAgZGVmYXVsdDogXCJkZWZhdWx0XCIsXG4gICAgaW5pdGlhbDogXCJpbml0aWFsXCIsXG4gICAgcmFuZG9tOiBcInJhbmRvbVwiLFxuICAgIGNvbGxhcHNlZDogXCJjb2xsYXBzZWRcIixcbiAgICBleHBhbmRlZDogXCJleHBhbmRlZFwiLFxuICAgIG5vbmU6IFwibm9uZVwiLFxuICAgIGFzYzogXCJhc2NlbmRpbmdcIixcbiAgICBkZXNjOiBcImRlc2NlbmRpbmdcIixcbiAgICBpbmRldGVybWluYXRlOiBcImluZGV0ZXJtaW5hdGVcIixcbiAgICBkZWNpbWFsOiBcImRlY2ltYWxcIixcbiAgICBjdXJyZW5jeTogXCJjdXJyZW5jeVwiLFxuICAgIHBlcmNlbnQ6IFwicGVyY2VudFwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwiZmlyc3RFeHBhbmRlZFwiLFxuICAgIG9mZjogXCJvZmZcIixcbiAgICBvblBhbmVsOiBcIm9uUGFuZWxcIixcbiAgICBvblN1cnZleTogXCJvblN1cnZleVwiLFxuICAgIGxpc3Q6IFwibGlzdFwiLFxuICAgIHByb2dyZXNzVG9wOiBcInByb2dyZXNzVG9wXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwicHJvZ3Jlc3NCb3R0b21cIixcbiAgICBwcm9ncmVzc1RvcEJvdHRvbTogXCJwcm9ncmVzc1RvcEJvdHRvbVwiLFxuICAgIGhvcml6b250YWw6IFwiaG9yaXpvbnRhbFwiLFxuICAgIHZlcnRpY2FsOiBcInZlcnRpY2FsXCIsXG4gICAgdG9wOiBcInRvcFwiLFxuICAgIGJvdHRvbTogXCJib3R0b21cIixcbiAgICB0b3BCb3R0b206IFwidG9wIGFuZCBib3R0b21cIixcbiAgICBib3RoOiBcImJvdGhcIixcbiAgICBsZWZ0OiBcImxlZnRcIixcbiAgICBjb2xvcjogXCJjb2xvclwiLFxuICAgIGRhdGU6IFwiZGF0ZVwiLFxuICAgIGRhdGV0aW1lOiBcImRhdGV0aW1lXCIsXG4gICAgXCJkYXRldGltZS1sb2NhbFwiOiBcImRhdGV0aW1lLWxvY2FsXCIsXG4gICAgZW1haWw6IFwiZW1haWxcIixcbiAgICBtb250aDogXCJtb250aFwiLFxuICAgIG51bWJlcjogXCJudW1iZXJcIixcbiAgICBwYXNzd29yZDogXCJwYXNzd29yZFwiLFxuICAgIHJhbmdlOiBcInJhbmdlXCIsXG4gICAgdGVsOiBcInRlbFwiLFxuICAgIHRleHQ6IFwidGV4dFwiLFxuICAgIHRpbWU6IFwidGltZVwiLFxuICAgIHVybDogXCJ1cmxcIixcbiAgICB3ZWVrOiBcIndlZWtcIixcbiAgICBoaWRkZW46IFwiaGlkZGVuXCIsXG4gICAgb246IFwib25cIixcbiAgICBvblBhZ2U6IFwib25QYWdlXCIsXG4gICAgZWRpdDogXCJlZGl0XCIsXG4gICAgZGlzcGxheTogXCJkaXNwbGF5XCIsXG4gICAgb25Db21wbGV0ZTogXCJvbkNvbXBsZXRlXCIsXG4gICAgb25IaWRkZW46IFwib25IaWRkZW5cIixcbiAgICBhbGw6IFwiYWxsXCIsXG4gICAgcGFnZTogXCJwYWdlXCIsXG4gICAgc3VydmV5OiBcInN1cnZleVwiLFxuICAgIG9uTmV4dFBhZ2U6IFwib25OZXh0UGFnZVwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcIm9uVmFsdWVDaGFuZ2VkXCIsXG4gICAgc2luZ2xlUGFnZTogXCJzaW5nbGUgcGFnZVwiLFxuICAgIHN0YW5kYXJkOiBcInN0YW5kYXJkXCIsXG4gICAgcXVlc3Rpb25QZXJQYWdlOiBcInF1ZXN0aW9uIHBlciBwYWdlXCIsXG4gICAgbm9QcmV2aWV3OiBcIm5vIHByZXZpZXdcIixcbiAgICBzaG93QWxsUXVlc3Rpb25zOiBcInNob3cgcHJldmlldyB3aXRoIGFsbCBxdWVzdGlvbnNcIixcbiAgICBzaG93QW5zd2VyZWRRdWVzdGlvbnM6IFwic2hvdyBwcmV2aWV3IHdpdGggYW5zd2VyZWQgcXVlc3Rpb25zXCIsXG4gIH0sXG4gIC8vT3BlcmF0b3JzXG4gIG9wOiB7XG4gICAgZW1wdHk6IFwib24gdHloasOkXCIsXG4gICAgbm90ZW1wdHk6IFwiZWkgb2xlIHR5aGrDpFwiLFxuICAgIGVxdWFsOiBcInlodMOkc3V1cmlrdWluXCIsXG4gICAgbm90ZXF1YWw6IFwiZWkgb2xlIHlodMOkc3V1cmlrdWluXCIsXG4gICAgY29udGFpbnM6IFwic2lzw6RsdMOkw6RcIixcbiAgICBub3Rjb250YWluczogXCJlaSBzaXPDpGxsw6RcIixcbiAgICBhbnlvZjogXCJtaWvDpCB0YWhhbnNhXCIsXG4gICAgYWxsb2Y6IFwia2Fpa2tpXCIsXG4gICAgZ3JlYXRlcjogXCJzdXVyZW1waVwiLFxuICAgIGxlc3M6IFwidsOkaGVtbcOkblwiLFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBcInN1dXJlbXBpIHRhaSB5aHTDpHN1dXJpa3VpblwiLFxuICAgIGxlc3NvcmVxdWFsOiBcInbDpGhlbW3DpG4gdGFpIHlodMOkc3V1cmlrdWluXCIsXG4gICAgYW5kOiBcImphXCIsXG4gICAgb3I6IFwidGFpXCIsXG4gIH0sXG4gIC8vRW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCJLw6R5dMOkIEFuZ3VsYXIgdmVyc2lvdGFcIixcbiAgICBqcXVlcnk6IFwiS8OkeXTDpCBqUXVlcnkgdmVyc2lvdGFcIixcbiAgICBrbm9ja291dDogXCJLw6R5dMOkIEtub2Nrb3V0IHZlcnNpb3RhXCIsXG4gICAgcmVhY3Q6IFwiS8OkeXTDpCBSZWFjdCB2ZXJzaW90YVwiLFxuICAgIHZ1ZTogXCJLw6R5dMOkIFZ1ZSB2ZXJzaW90YVwiLFxuICAgIGJvb3RzdHJhcDogXCJCb290c3RyYXAgdHnDtmthbHVsbGVcIixcbiAgICBtb2Rlcm46IFwiTW9kZXJuaSB0ZWVtYVwiLFxuICAgIGRlZmF1bHQ6IFwiT2xldHVzIHRlZW1hXCIsXG4gICAgb3JhbmdlOiBcIk9yYW5zc2kgdGVlbWFcIixcbiAgICBkYXJrYmx1ZTogXCJUdW1tYW5zaW5pbmVuIHRlZW1hXCIsXG4gICAgZGFya3Jvc2U6IFwiVHVtbWEgcnV1c3UgdGVlbWFcIixcbiAgICBzdG9uZTogXCJLaXZpdGVlbWFcIixcbiAgICB3aW50ZXI6IFwiVGFsdmkgdGVlbWFcIixcbiAgICB3aW50ZXJzdG9uZTogXCJUYWx2aS1raXZpLXRlZW1hXCIsXG4gICAgc2hvd09uUGFnZTogXCJOw6R5dMOkIGt5c2VseSBzaXZ1bGxhXCIsXG4gICAgc2hvd0luV2luZG93OiBcIk7DpHl0w6Qga3lzZWx5IGlra3VuYXNzYVwiLFxuICAgIGxvYWRGcm9tU2VydmVyOiBcIkxhdGFhIGt5c2VseSBwYWx2ZWxpbWVsdGEgSlNPTiBtdW9kb3NzYVwiLFxuICAgIHRpdGxlU2NyaXB0OiBcIlNrcmlwdGl0IGphIHR5eWxpdFwiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIixcbiAgfSxcbiAgLy9UZXN0IFN1cnZleVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwiVmFsaXRzZSBzaXZ1IHRlc3RhdGFrc2VzaSBzaXTDpDpcIixcbiAgICBzaG93SW52aXNpYmxlRWxlbWVudHM6IFwiTsOkeXTDpCBuw6RreW3DpHTDtm4gZWxlbWVudHRpXCIsXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCJ2YXN0YXVzdGVuIG3DpMOkcsOkXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwic8OkaGvDtnBvc3RpXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCJsYXVzZWtlXCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCJsdWt1bcOkw6Ryw6RpbmVuXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwic8Okw6RubsO2bGxpbmVuIGxhdXNla2VcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRla3N0aVwiLFxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJ2YWxtaXMga3lzZWx5XCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcImFzZXRhIGFydm9cIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcImtvcGlvaSBhcnZvXCIsXG4gICAgc2tpcHRyaWdnZXI6IFwic2lpcnJ5IGt5c3lteWtzZWVuXCIsXG4gICAgcnVuZXhwcmVzc2lvbnRyaWdnZXI6IFwic3Vvcml0YSBsYXVzZWtlXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwibXV1dGEgbsOka3l2eXl0dMOkICh2YW5oZW50dW51dClcIixcbiAgfSxcbiAgcGVoZWxwOiB7XG4gICAgLy9leHByZXNzaW9uOlxuICB9LFxuICAvL1Byb3BlcnRpZXNcbiAgcDoge1xuICAgIG5hbWU6IFwibmltaVwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcIm90c2lra29cIixcbiAgICAgIHRpdGxlOiBcIkrDpHTDpCBzZSB0eWhqw6Rrc2ksIGpvcyBzZSBvbiBzYW1hIGt1aW4gJ05pbWknXCIsXG4gICAgfSxcblxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHlcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJxdWVzdGlvbnNPcmRlclwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJtYXhUaW1lVG9GaW5pc2hcIixcblxuICAgIHZpc2libGU6IFwidmlzaWJsZVwiLFxuICAgIHZpc2libGVJZjogXCJ2aXNpYmxlSWZcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwicXVlc3Rpb25UaXRsZUxvY2F0aW9uXCIsXG4gICAgZGVzY3JpcHRpb246IFwia3V2YXVzXCIsXG4gICAgc3RhdGU6IFwic3RhdGVcIixcbiAgICBpc1JlcXVpcmVkOiBcImlzUmVxdWlyZWRcIixcbiAgICByZXF1aXJlZElmOiBcInJlcXVpcmVkSWZcIixcbiAgICBpbmRlbnQ6IFwiaW5kZW50XCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwicmVxdWlyZWRFcnJvclRleHRcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcInN0YXJ0V2l0aE5ld0xpbmVcIixcbiAgICBpbm5lckluZGVudDogXCJpbm5lckluZGVudFwiLFxuICAgIHBhZ2U6IFwicGFnZVwiLFxuXG4gICAgd2lkdGg6IFwid2lkdGhcIixcblxuICAgIGNvbW1lbnRUZXh0OiBcImNvbW1lbnRUZXh0XCIsXG4gICAgdmFsdWVOYW1lOiBcInZhbHVlTmFtZVwiLFxuICAgIGVuYWJsZUlmOiBcImVuYWJsZUlmXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcImRlZmF1bHRWYWx1ZVwiLFxuICAgIGNvcnJlY3RBbnN3ZXI6IFwiY29ycmVjdEFuc3dlclwiLFxuICAgIHJlYWRPbmx5OiBcInJlYWRPbmx5XCIsXG4gICAgdmFsaWRhdG9yczogXCJ2YWxpZGF0b3JzXCIsXG4gICAgdGl0bGVMb2NhdGlvbjogXCJ0aXRsZUxvY2F0aW9uXCIsXG5cbiAgICBoYXNDb21tZW50OiBcImhhc0NvbW1lbnRcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcImhhc090aGVyXCIsXG4gICAgY2hvaWNlczogXCJjaG9pY2VzXCIsXG4gICAgY2hvaWNlc09yZGVyOiBcImNob2ljZXNPcmRlclwiLFxuICAgIGNob2ljZXNCeVVybDogXCJjaG9pY2VzQnlVcmxcIixcbiAgICBvdGhlclRleHQ6IFwib3RoZXJUZXh0XCIsXG4gICAgb3RoZXJFcnJvclRleHQ6IFwib3RoZXJFcnJvclRleHRcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJzdG9yZU90aGVyc0FzQ29tbWVudFwiLFxuXG4gICAgbGFiZWw6IFwibGFiZWxcIixcbiAgICBzaG93VGl0bGU6IFwic2hvd1RpdGxlXCIsXG4gICAgdmFsdWVUcnVlOiBcInZhbHVlVHJ1ZVwiLFxuICAgIHZhbHVlRmFsc2U6IFwidmFsdWVGYWxzZVwiLFxuXG4gICAgY29sczogXCJjb2xzXCIsXG4gICAgcm93czogXCJyb3dzXCIsXG5cbiAgICBvcHRpb25zQ2FwdGlvbjogXCJvcHRpb25zQ2FwdGlvblwiLFxuXG4gICAgZXhwcmVzc2lvbjogXCJleHByZXNzaW9uXCIsXG4gICAgZm9ybWF0OiBcImZvcm1hdFwiLFxuICAgIGRpc3BsYXlTdHlsZTogXCJkaXNwbGF5U3R5bGVcIixcbiAgICBjdXJyZW5jeTogXCJjdXJyZW5jeVwiLFxuICAgIHVzZUdyb3VwaW5nOiBcInVzZUdyb3VwaW5nXCIsXG5cbiAgICBzaG93UHJldmlldzogXCJzaG93UHJldmlld1wiLFxuICAgIGFsbG93TXVsdGlwbGU6IFwiYWxsb3dNdWx0aXBsZVwiLFxuICAgIGltYWdlSGVpZ2h0OiBcImltYWdlSGVpZ2h0XCIsXG4gICAgaW1hZ2VXaWR0aDogXCJpbWFnZVdpZHRoXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcInN0b3JlRGF0YUFzVGV4dFwiLFxuICAgIG1heFNpemU6IFwibWF4U2l6ZVwiLFxuXG4gICAgaHRtbDogXCJodG1sXCIsXG5cbiAgICBjb2x1bW5zOiBcImNvbHVtbnNcIixcbiAgICBjZWxsczogXCJjZWxsc1wiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwiaXNBbGxSb3dSZXF1aXJlZFwiLFxuXG4gICAgaG9yaXpvbnRhbFNjcm9sbDogXCJob3Jpem9udGFsU2Nyb2xsXCIsXG4gICAgY2VsbFR5cGU6IFwiY2VsbFR5cGVcIixcbiAgICBjb2x1bW5zTGF5b3V0OiBcImNvbHVtbnNMYXlvdXRcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCJjb2x1bW5Db2xDb3VudFwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcImNvbHVtbk1pbldpZHRoXCIsXG5cbiAgICByb3dDb3VudDogXCJyb3dDb3VudFwiLFxuICAgIG1pblJvd0NvdW50OiBcIm1pblJvd0NvdW50XCIsXG4gICAgbWF4Um93Q291bnQ6IFwibWF4Um93Q291bnRcIixcbiAgICBrZXlOYW1lOiBcImtleU5hbWVcIixcbiAgICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcImtleUR1cGxpY2F0aW9uRXJyb3JcIixcbiAgICBjb25maXJtRGVsZXRlOiBcImNvbmZpcm1EZWxldGVcIixcbiAgICBjb25maXJtRGVsZXRlVGV4dDogXCJjb25maXJtRGVsZXRlVGV4dFwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcImFkZFJvd0xvY2F0aW9uXCIsXG4gICAgYWRkUm93VGV4dDogXCJhZGRSb3dUZXh0XCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJyZW1vdmVSb3dUZXh0XCIsXG5cbiAgICBpdGVtczogXCJpdGVtc1wiLFxuICAgIGl0ZW1TaXplOiBcIml0ZW1TaXplXCIsXG4gICAgY29sQ291bnQ6IFwiY29sQ291bnRcIixcblxuICAgIHRlbXBsYXRlVGl0bGU6IFwidGVtcGxhdGVUaXRsZVwiLFxuICAgIHRlbXBsYXRlRGVzY3JpcHRpb246IFwidGVtcGxhdGVEZXNjcmlwdGlvblwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiYWxsb3dBZGRQYW5lbFwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiYWxsb3dSZW1vdmVQYW5lbFwiLFxuICAgIHBhbmVsQ291bnQ6IFwicGFuZWxDb3VudFwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwibWluUGFuZWxDb3VudFwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwibWF4UGFuZWxDb3VudFwiLFxuICAgIHBhbmVsc1N0YXRlOiBcInBhbmVsc1N0YXRlXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcInBhbmVsQWRkVGV4dFwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJwYW5lbFJlbW92ZVRleHRcIixcbiAgICBwYW5lbFByZXZUZXh0OiBcInBhbmVsUHJldlRleHRcIixcbiAgICBwYW5lbE5leHRUZXh0OiBcInBhbmVsTmV4dFRleHRcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcInNob3dRdWVzdGlvbk51bWJlcnNcIixcbiAgICBzaG93UmFuZ2VJblByb2dyZXNzOiBcInNob3dSYW5nZUluUHJvZ3Jlc3NcIixcbiAgICByZW5kZXJNb2RlOiBcInJlbmRlck1vZGVcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwidGVtcGxhdGVUaXRsZUxvY2F0aW9uXCIsXG5cbiAgICByYXRlVmFsdWVzOiBcInJhdGVWYWx1ZXNcIixcbiAgICByYXRlTWluOiBcInJhdGVNaW5cIixcbiAgICByYXRlTWF4OiBcInJhdGVNYXhcIixcbiAgICByYXRlU3RlcDogXCJyYXRlU3RlcFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJtaW5SYXRlRGVzY3JpcHRpb25cIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwibWF4UmF0ZURlc2NyaXB0aW9uXCIsXG5cbiAgICBpbnB1dFR5cGU6IFwiaW5wdXRUeXBlXCIsXG4gICAgc2l6ZTogXCJzaXplXCIsXG5cbiAgICBsb2NhbGU6IFwibG9jYWxlXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcImZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpY1wiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiY29tcGxldGVkSHRtbFwiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwiY29tcGxldGVkQmVmb3JlSHRtbFwiLFxuICAgIGxvYWRpbmdIdG1sOiBcImxvYWRpbmdIdG1sXCIsXG4gICAgdHJpZ2dlcnM6IFwidHJpZ2dlcnNcIixcbiAgICBjb29raWVOYW1lOiBcImNvb2tpZU5hbWVcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCJzZW5kUmVzdWx0T25QYWdlTmV4dFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJzaG93TmF2aWdhdGlvbkJ1dHRvbnNcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJzaG93UHJldkJ1dHRvblwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcInNob3dQYWdlVGl0bGVzXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwic2hvd0NvbXBsZXRlZFBhZ2VcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwic2hvd1BhZ2VOdW1iZXJzXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcInF1ZXN0aW9uRXJyb3JMb2NhdGlvblwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJzaG93UHJvZ3Jlc3NCYXJcIixcbiAgICBtb2RlOiBcIm1vZGVcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcImdvTmV4dFBhZ2VBdXRvbWF0aWNcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwiY2hlY2tFcnJvcnNNb2RlXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiY2xlYXJJbnZpc2libGVWYWx1ZXNcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwic3RhcnRTdXJ2ZXlUZXh0XCIsXG4gICAgcGFnZVByZXZUZXh0OiBcInBhZ2VQcmV2VGV4dFwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJwYWdlTmV4dFRleHRcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiY29tcGxldGVUZXh0XCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcInJlcXVpcmVkVGV4dFwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCJxdWVzdGlvblN0YXJ0SW5kZXhcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwicXVlc3Rpb25UaXRsZVRlbXBsYXRlXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcImZpcnN0UGFnZUlzU3RhcnRlZFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJpc1NpbmdsZVBhZ2VcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIm1heFRpbWVUb0ZpbmlzaFBhZ2VcIixcbiAgICBzaG93VGltZXJQYW5lbDogXCJzaG93VGltZXJQYW5lbFwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJzaG93VGltZXJQYW5lbE1vZGVcIixcblxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcImRlZmF1bHRQYW5lbFZhbHVlXCIsXG4gICAgZGVmYXVsdFJvd1ZhbHVlOiBcImRlZmF1bHRSb3dWYWx1ZVwiLFxuICAgIHNob3dOb25lSXRlbTogXCJoYXNOb25lXCIsXG4gICAgbm9uZVRleHQ6IFwibm9uZVRleHRcIixcblxuICAgIHRleHQ6IFwidGV4dFwiLFxuICB9LFxufTtcbi8vIFVuY29tbWVudCB0aGlzIGxpbmUgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlLiBZb3Ugc2hvdWxkIHJlcGxhY2UgXCJlblwiIGFuZCBlblN0cmluZ3Mgd2l0aCB5b3VyIGxvY2FsZSAoXCJmclwiLCBcImRlXCIgYW5kIHNvIG9uKSBhbmQgeW91ciB2YXJpYWJsZS5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZmlcIl0gPSBmaVN0cmluZ3M7XG4iLCJpbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbnZhciBmcmVuY2hUcmFuc2xhdGlvbiA9IHtcbiAgLy9TdXJ2ZXkgdGVtcGxhdGVzXG4gIHN1cnZleToge1xuICAgIGVkaXQ6IFwiw4lkaXRlclwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCJEw6lwb3NlciB2b3RyZSBxdWVzdGlvbiBpY2kuXCIsXG4gICAgY29weTogXCJDb3BpZXJcIixcbiAgICBhZGRUb1Rvb2xib3g6IFwiQWpvdXRlciDDoCBsYSBib8OudGUgw6Agb3V0aWxzXCIsXG4gICAgZGVsZXRlUGFuZWw6IFwiU3VwcHJpbWVyIGxlIHBhbm5lYXVcIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCJTdXBwcmltZXIgbGEgcXVlc3Rpb25cIixcbiAgICBjb252ZXJ0VG86IFwiQ29udmVydGlyIGVuXCIsXG4gIH0sXG4gIC8vcXVlc3Rpb25UeXBlc1xuICBxdDoge1xuICAgIGRlZmF1bHQ6IFwiUGFyIGTDqWZhdXRcIixcbiAgICBjaGVja2JveDogXCJDYXNlcyDDoCBjb2NoZXJcIixcbiAgICBjb21tZW50OiBcIkNvbW1lbnRhaXJlXCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwiQ2hvaXggZCdpbWFnZVwiLFxuICAgIGRyb3Bkb3duOiBcIkxpc3RlIGTDqXJvdWxhbnRlXCIsXG4gICAgZmlsZTogXCJGaWNoaWVyXCIsXG4gICAgaHRtbDogXCJIVE1MXCIsXG4gICAgbWF0cml4OiBcIk1hdHJpY2UgKGNob2l4IHVuaXF1ZSlcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCJNYXRyaWNlIChjaG9peCBtdWx0aXBsZXMpXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCJNYXRyaWNlIChsaWduZXMgZHluYW1pcXVlcylcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwiQ2hhbXAgbXVsdGlsaWduZXNcIixcbiAgICBwYW5lbDogXCJQYW5uZWF1XCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIlBhbm5lYXUgKHBhbm5lYXV4IGR5bmFtaXF1ZXMpXCIsXG4gICAgcmFkaW9ncm91cDogXCJCb3V0b25zIHJhZGlvXCIsXG4gICAgcmF0aW5nOiBcIsOJdmFsdWF0aW9uXCIsXG4gICAgdGV4dDogXCJDaGFtcCB0ZXh0ZVwiLFxuICAgIGJvb2xlYW46IFwiQm9vbMOpZW5cIixcbiAgICBleHByZXNzaW9uOiBcIkV4cHJlc3Npb25cIixcbiAgfSxcbiAgLy9TdHJpbmdzIGluIEVkaXRvclxuICBlZDoge1xuICAgIHN1cnZleTogXCJRdWVzdGlvbm5haXJlXCIsXG4gICAgZWRpdFN1cnZleTogXCLDiWRpdGVyIGxlIHF1ZXN0aW9ubmFpcmVcIixcbiAgICBzZXR0aW5nczogXCJDb25maWd1cmF0aW9uIGR1IHF1ZXN0aW9ubmFpcmVcIixcbiAgICBvcGplY3RQcm9wZXJ0aWVzSGVhZGVyOiBcIlByb3ByacOpdMOpc1wiLFxuICAgIHNob3dPYmplY3RQcm9wZXJ0aWVzOiBcIkFmZmljaGVyIGxlcyBwcm9wcmnDqXTDqXNcIixcbiAgICBoaWRlT2JqZWN0UHJvcGVydGllczogXCJDYWNoZXIgbGVzIHByb3ByacOpdMOpc1wiLFxuICAgIGFkZE5ld1BhZ2U6IFwiQWpvdXRlciB1bmUgcGFnZVwiLFxuICAgIG1vdmVSaWdodDogXCJEw6lmaWxlciDDoCBkcm9pdGVcIixcbiAgICBtb3ZlTGVmdDogXCJEw6lmaWxlciDDoCBnYXVjaGVcIixcbiAgICBkZWxldGVQYWdlOiBcIlN1cHByaW1lciB1bmUgcGFnZVwiLFxuICAgIGVkaXRQYWdlOiBcIsOJZGl0ZXIgdW5lIHBhZ2VcIixcbiAgICBlZGl0OiBcIsOJZGl0ZXJcIixcbiAgICBuZXdQYWdlTmFtZTogXCJwYWdlXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcInF1ZXN0aW9uXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBhbm5lYXVcIixcbiAgICBuZXdUZXh0SXRlbU5hbWU6IFwidGV4dGVcIixcbiAgICB0ZXN0U3VydmV5OiBcIlRlc3RlciBsZSBxdWVzdGlvbm5haXJlXCIsXG4gICAgdGVzdFN1cnZleUFnYWluOiBcIlRlc3RlciDDoCBub3V2ZWF1IGxlIHF1ZXN0aW9ubmFpcmVcIixcbiAgICB0ZXN0U3VydmV5V2lkdGg6IFwiTGFyZ2V1ciBkdSBxdWVzdGlvbm5haXJlIDogXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwiSW50w6lncmVyIGxlIHF1ZXN0aW9ubmFpcmVcIixcbiAgICB0cmFuc2xhdGlvbjogXCJUcmFkdWN0aW9uXCIsXG4gICAgc2F2ZVN1cnZleTogXCJTYXV2ZWdhcmRlciBsZSBxdWVzdGlvbm5haXJlXCIsXG4gICAgZGVzaWduZXI6IFwiw4lkaXRldXIgZGUgcXVlc3Rpb25uYWlyZVwiLFxuICAgIGpzb25FZGl0b3I6IFwiw4lkaXRlciBKU09OXCIsXG4gICAgdW5kbzogXCJBbm51bGVyXCIsXG4gICAgcmVkbzogXCJSw6l0YWJsaXJcIixcbiAgICBvcHRpb25zOiBcIk9wdGlvbnNcIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCJHw6luw6lyZXIgdW4gSlNPTiB2YWxpZGVcIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJHw6luw6lyZXIgdW4gSlNPTiBsaXNpYmxlXCIsXG4gICAgdG9vbGJveDogXCJCb8OudGUgw6Agb3V0aWxzXCIsXG4gICAgXCJwcm9wZXJ0eS1ncmlkXCI6IFwiUHJvcHJpw6l0w6lzXCIsXG4gICAgdG9vbGJveEdlbmVyYWxDYXRlZ29yeTogXCJHw6luw6lyYWxcIixcbiAgICBkZWxTZWxPYmplY3Q6IFwiU3VwcHJpbWVyIGwnb2JqZXQgc8OpbGVjdGlvbm7DqVwiLFxuICAgIGVkaXRTZWxPYmplY3Q6IFwiw4lkaXRlciBsJ29iamV0IHPDqWxlY3Rpb25uw6lcIixcbiAgICBjb3JyZWN0SlNPTjogXCJTVlAgY29ycmlnZXogbGUgSlNPTlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwiUsOpc3VsdGF0IGR1IHF1ZXN0aW9ubmFpcmUgOiBcIixcbiAgICBzdXJ2ZXlSZXN1bHRzVGFibGU6IFwiQ29tbWUgdGFibGVhdVwiLFxuICAgIHN1cnZleVJlc3VsdHNKc29uOiBcIkNvbW1lIEpTT05cIixcbiAgICByZXN1bHRzVGl0bGU6IFwiVGl0cmUgZGUgbGEgcXVlc3Rpb25cIixcbiAgICByZXN1bHRzTmFtZTogXCJOb20gZGUgbGEgcXVlc3Rpb25cIixcbiAgICByZXN1bHRzVmFsdWU6IFwiVmFsZXVyIGRlIGxhIHLDqXBvbnNlXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCJWYWxldXIgYWZmaWNow6llXCIsXG4gICAgbW9kaWZpZWQ6IFwiTW9kaWZpw6lcIixcbiAgICBzYXZpbmc6IFwiU2F1dmVnYXJkZSBlbiBjb3Vyc1wiLFxuICAgIHNhdmVkOiBcIlNhdXZlZ2FyZMOpXCIsXG4gICAgc2F2ZUVycm9yOiBcIkVycmV1ciEgTGUgY29udGVudSBkZSBsJ8OpZGl0ZXVyIG4nYSBwYXMgw6l0w6kgc2F1dmVnYXJkw6kuXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCJDaG9pc2lyIGxhbmd1ZSDDoCB0cmFkdWlyZVwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwiQWZmaWNoZXIgdG91cyBsZXMgdGVybWVzXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsUGFnZXM6IFwiQWZmaWNoZXIgdG91dGVzIGxlcyBwYWdlc1wiLFxuICAgIHRyYW5zbGF0aW9uTm9TdHJpbmdzOlxuICAgICAgXCJBdWN1biB0ZXJtZSDDoCB0cmFkdWlyZS4gVmV1aWxsZXogbW9kaWZpZXIgbGUgZmlsdHJlLlwiLFxuICAgIHRyYW5zbGF0aW9uRXhwb3J0VG9TQ1ZCdXR0b246IFwiRXhwb3J0ZXIgZW4gQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25JbXBvcnRGcm9tU0NWQnV0dG9uOiBcIkltcG9ydGVyIGQndW4gQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25NZXJnZUxvY2FsZVdpdGhEZWZhdWx0OiBcIkZ1c2lvbm5lciB7MH0gYXZlYyBsYW5ndWUgcGFyIGTDqWZhdXRcIixcbiAgICBib2xkOiBcIkdyYXNcIixcbiAgICBpdGFsaWM6IFwiSXRhbGlxdWVcIixcbiAgICB1bmRlcmxpbmU6IFwiU291bGlnbsOpXCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCJBam91dGVyIHF1ZXN0aW9uLi4uXCIsXG4gICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHQ6IFwiQWZmaWNoZXIgc2kgOlwiLFxuICAgIGxnOiB7XG4gICAgICAvL0xvZ2ljIHRhYiBzdHJpbmdzXG4gICAgICBwYWdlX3Zpc2liaWxpdHlOYW1lOiBcIlZpc2liaWxpdMOpIGRlIGxhIHBhZ2VcIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlOYW1lOiBcIlZpc2liaWxpdMOpIGR1IHBhbm5lYXVcIixcbiAgICAgIHBhbmVsX2VuYWJsZU5hbWU6IFwiQWN0aXZlci9kw6lzYWN0aXZlciBsZSBwYW5uZWF1XCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCJWaXNpYmlsaXTDqSBkZSBsYSBxdWVzdGlvblwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlTmFtZTogXCJBY3RpdmVyL2TDqXNhY3RpdmVyIGxhIHF1ZXN0aW9uXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlTmFtZTogXCJRdWVzdGlvbiBmYWN1bHRhdGl2ZSByZXF1aXNlXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlTmFtZTogXCJDb21wbMOpdGVyIGxlIHF1ZXN0aW9ubmFpcmVcIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVOYW1lOiBcIkTDqWZpbmlyIGxhIHZhbGV1ciBkZSBsYSBxdWVzdGlvblwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVOYW1lOiBcIkNvcGllciBsYSB2YWxldXIgZGUgbGEgcXVlc3Rpb25cIixcbiAgICAgIHRyaWdnZXJfc2tpcE5hbWU6IFwiUGFzc2VyIMOgIGxhIHF1ZXN0aW9uXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lOiBcIkV4w6ljdXRlciB1bmUgZXhwcmVzc2lvbiBwZXJzb25uYWxpc8OpZVwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uTmFtZTpcbiAgICAgICAgXCJQZXJzb25uYWxpc2VyIGxlIHRleHRlIGRlIGxhIHBhZ2UgZGUgcmVtZXJjaWVtZW50c1wiLFxuXG4gICAgICBwYWdlX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZW5kcmUgbGEgcGFnZSB2aXNpYmxlIGxvcnNxdWUgbCdleHByZXNzaW9uIGxvZ2lxdWUgcmVudm9pZSAndnJhaScuIFNpbm9uLCBsYSByZW5kcmUgaW52aXNpYmxlLlwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlbmRyZSBsZSBwYW5uZWF1IHZpc2libGUgbG9yc3F1ZSBsJ2V4cHJlc3Npb24gbG9naXF1ZSByZW52b2llICd2cmFpJy4gU2lub24sIGxlIHJlbmRyZSBpbnZpc2libGUuXCIsXG4gICAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJBY3RpdmV6IGxlIHBhbm5lYXUgZXQgdG91cyBsZXMgw6lsw6ltZW50cyBxdSdpbCBjb250aWVudCBsb3JzcXVlIGwnZXhwcmVzc2lvbiBsb2dpcXVlIHJlbnZvaWUgJ3ZyYWknLiBTaW5vbiwgbGUgbGFpc3NlciBkw6lzYWN0aXbDqS5cIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZW5kZXogbGEgcXVlc3Rpb24gdmlzaWJsZSBsb3JzcXVlIGwnZXhwcmVzc2lvbiBsb2dpcXVlIHJlbnZvaWUgJ3ZyYWknLiBTaW5vbiwgbGEgcmVuZHJlIGludmlzaWJsZS5cIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uOlxuICAgICAgICBcIkFjdGl2ZXogbGEgcXVlc3Rpb24gbG9yc3F1ZSBsJ2V4cHJlc3Npb24gbG9naXF1ZSByZW52b2llICd2cmFpJy4gU2lub24sIGxhIGxhaXNzZXIgZMOpc2FjdGl2w6llLlwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZURlc2NyaXB0aW9uOlxuICAgICAgICBcIkxhIHF1ZXN0aW9uIGRldmllbnQgcmVxdWlzZSBsb3JzcXVlIGwnZXhwcmVzc2lvbiBsb2dpcXVlIHJlbnZvaWUgJ3ZyYWknLlwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIkxvcnNxdWUgbCdleHByZXNzaW9uIGxvZ2lxdWUgcmVudm9pZSAndnJhaScsIGwnZW5xdcOqdGUgZXN0IGFsb3JzIHRlcm1pbsOpZSBldCB1biB1dGlsaXNhdGV1ciB2b2l0IGxhIHBhZ2UgZGUgcmVtZXJjaWVtZW50cy5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJXaGVuIHF1ZXN0aW9uIHZhbHVlcywgdGhhdCBhcmUgdXNlZCBpbiB0aGUgbG9naWMgZXhwcmVzc2lvbiwgYXJlIGNoYW5nZWQgYW5kIHRoZSBsb2dpYyBleHByZXNzaW9uIHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUgdmFsdWUgaXMgc2V0IHRvIHRoZSBzZWxlY3RlZCBxdWVzdGlvbi5cIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlRGVzY3JpcHRpb246XG4gICAgICAgIFwiTG9yc3F1ZSBsZXMgdmFsZXVycyBkZSBxdWVzdGlvbiwgcXVpIHNvbnQgdXRpbGlzw6llcyBkYW5zIGwnZXhwcmVzc2lvbiBsb2dpcXVlLCBzb250IG1vZGlmacOpZXMgZXQgcXVlIGwnZXhwcmVzc2lvbiBsb2dpcXVlIHJlbnZvaWUgJ3ZyYWknLCBsYSB2YWxldXIgZCd1bmUgcXVlc3Rpb24gc8OpbGVjdGlvbm7DqWUgZXN0IGNvcGnDqWUgZGFucyB1bmUgYXV0cmUgcXVlc3Rpb24gc8OpbGVjdGlvbm7DqWUuXCIsXG4gICAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJMb3JzcXVlIGwnZXhwcmVzc2lvbiBsb2dpcXVlIHJlbnZvaWUgJ3ZyYWknLCBsJ2VucXXDqnRlIHBhc3NlIMOgIGxhIHF1ZXN0aW9uIHPDqWxlY3Rpb25uw6llLlwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwiTG9yc3F1ZSBsJ2V4cHJlc3Npb24gbG9naXF1ZSByZW52b2llICd2cmFpJywgYWxvcnMgbCdleHByZXNzaW9uIHBlcnNvbm5hbGlzw6llIGVzdCBleMOpY3V0w6llLiBWb3VzIHBvdXZleiDDqXZlbnR1ZWxsZW1lbnQgZMOpZmluaXIgY2UgcsOpc3VsdGF0IGQnZXhwcmVzc2lvbiBkYW5zIGxhIHF1ZXN0aW9uIHPDqWxlY3Rpb25uw6llLlwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwiU2kgbCdleHByZXNzaW9uIGxvZ2lxdWUgcmVudm9pZSAndnJhaScsIGxlIHRleHRlIHBhciBkw6lmYXV0IGRlIGxhIHBhZ2UgZGUgcmVtZXJjaWVtZW50cyBlc3QgcmVtcGxhY8OpIHBhciBjZWx1aSBxdWUgdm91cyBhdmV6IGTDqWZpbmkuXCIsXG5cbiAgICAgIGl0ZW1FeHByZXNzaW9uVGV4dDogXCJMb3JzcXVlIGwnZXhwcmVzc2lvbjogJ3swfScgcmVudm9pZSAndnJhaSc6XCIsIC8vezB9IC0gdGhlIGV4cHJlc3Npb25cbiAgICAgIHBhZ2VfdmlzaWJpbGl0eVRleHQ6IFwiUmVuZHJlIGxhIHBhZ2UgezB9IHZpc2libGVcIiwgLy97MH0gcGFnZSBuYW1lXG4gICAgICBwYW5lbF92aXNpYmlsaXR5VGV4dDogXCJSZW5kcmUgbGUgcGFubmVhdSB7MH0gdmlzaWJsZVwiLCAvL3swfSBwYW5lbCBuYW1lXG4gICAgICBwYW5lbF9lbmFibGVUZXh0OiBcIkFjdGl2ZXIgbGUgcGFubmVhdSB7MH1cIiwgLy97MH0gcGFuZWwgbmFtZVxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eVRleHQ6IFwiUmVuZHJlIGxhIHF1ZXN0aW9uIHswfSB2aXNpYmxlXCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZVRleHQ6IFwiQWN0aXZlciBsYSBxdWVzdGlvbiB7MH1cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgcXVlc3Rpb25fcmVxdWlyZVRleHQ6IFwiUmVuZHJlIGxhIHF1ZXN0aW9uIHswfSBvYmxpZ2F0b2lyZVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCJMZSBxdWVzdGlvbm5haXJlIGRldmllbnQgY29tcGzDqXTDqS5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVUZXh0OiBcIkTDqWZpbmlyIGRhbnMgbGEgcXVlc3Rpb246IHswfSB2YWxldXIgezF9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWUsIHsxfSBzZXRWYWx1ZVxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVUZXh0OlxuICAgICAgICBcIkNvcGllciBkYW5zIGxhIHF1ZXN0aW9uOiB7MH0gdmFsZXVyIGRlIGxhIHF1ZXN0aW9uIHsxfVwiLCAvL3swfSBhbmQgezF9IHF1ZXN0aW9uIG5hbWVzXG4gICAgICB0cmlnZ2VyX3NraXBUZXh0OiBcIkRhbnMgbGUgcXVlc3Rpb25uYWlyZSwgcGFzc2V6IMOgIGxhIHF1ZXN0aW9uIHswfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MTogXCJFeMOpY3V0ZXIgbCdleHByZXNzaW9uOiAnezB9J1wiLCAvL3swfSB0aGUgZXhwcmVzc2lvblxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDI6XG4gICAgICAgIFwiIGV0IGTDqWZpbmlzc2V6IHNvbiByw6lzdWx0YXQgZGFucyBsYSBxdWVzdGlvbjogezB9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvblRleHQ6XG4gICAgICAgIFwiQWZmaWNoZXogdW4gdGV4dGUgcGVyc29ubmFsaXPDqSBwb3VyIGxhIHBhZ2UgZGUgcmVtZXJjaWVtZW50cy5cIixcblxuICAgICAgY29uZGl0aW9uczogXCJDb25kaXRpb24ocylcIixcbiAgICAgIGFjdGlvbnM6IFwiQWN0aW9uKHMpXCIsXG4gICAgICBleHByZXNzaW9uRWRpdG9yVGl0bGU6IFwiRMOpZmluaXNzZXogbGUocykgY29uZGl0aW9uKHMpXCIsXG4gICAgICBhY3Rpb25zRWRpdG9yVGl0bGU6IFwiRMOpZmluaXNzZXogbGUocykgYWN0aW9uKHMpXCIsXG5cbiAgICAgIGRlbGV0ZUFjdGlvbjogXCJEw6l0cnVpcmUgbCdhY3Rpb25cIixcbiAgICAgIGFkZE5ld0FjdGlvbjogXCJBam91dGVyIHVuZSBub3V2ZWxsZSBhY3Rpb25cIixcbiAgICAgIHNlbGVjdGVkQWN0aW9uQ2FwdGlvbjogXCJTw6lsZWN0aW9ubmV6IHVuZSBhY3Rpb24gw6AgYWpvdXRlciDigKZcIixcblxuICAgICAgZXhwcmVzc2lvbkludmFsaWQ6XG4gICAgICAgIFwiTCdleHByZXNzaW9uIGxvZ2lxdWUgZXN0IHZpZGUgb3Ugbm9uIHZhbGlkZS4gQ29ycmlnZXogcydpbC12b3VzLXBsYcOudC5cIixcbiAgICAgIG5vQWN0aW9uRXJyb3I6IFwiVmV1aWxsZXogYWpvdXRlciBhdSBtb2lucyB1bmUgYWN0aW9uLlwiLFxuICAgICAgYWN0aW9uSW52YWxpZDogXCJWZXVpbGxleiBjb3JyaWdlciBsZXMgcHJvYmzDqG1lcyBkYW5zIHZvcyBhY3Rpb25zLlwiLFxuICAgICAgZXhwcmVzc2lvblNldHVwOiBcIlwiLFxuICAgICAgYWN0aW9uc1NldHVwOiBcIlwiLFxuICAgIH0sXG4gIH0sXG4gIC8vUHJvcGVydHkgbmFtZXMgaW4gdGFibGUgaGVhZGVyc1xuICBwZWw6IHtcbiAgICBpc1JlcXVpcmVkOiBcIk9ibGlnYXRvaXJlID9cIixcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwiQXBwbGlxdWVyXCIsXG4gICAgb2s6IFwiT0tcIixcbiAgICBzYXZlOiBcIkVucmVnaXN0cmVyXCIsXG4gICAgY2FuY2VsOiBcIkFubnVsZXJcIixcbiAgICByZXNldDogXCJSw6lpbml0aWFsaXNlclwiLFxuICAgIGNsb3NlOiBcIkZlcm1lclwiLFxuICAgIGRlbGV0ZTogXCJTdXBwcmltZXJcIixcbiAgICBhZGROZXc6IFwiQWpvdXRlciB1biBub3V2ZWwgw6lsw6ltZW50XCIsXG4gICAgYWRkSXRlbTogXCJDbGlxdWVyIHBvdXIgYWpvdXRlciB1biBpdGVtLi4uXCIsXG4gICAgYWRkT3RoZXI6IFwiQXV0cmVcIixcbiAgICBhZGRTZWxlY3RBbGw6IFwiVG91dCBzw6lsZWN0aW9ubmVyXCIsXG4gICAgYWRkTm9uZTogXCJBdWN1blwiLFxuICAgIHJlbW92ZUFsbDogXCJUb3V0IHN1cHByaW1lclwiLFxuICAgIGVkaXQ6IFwiw4lkaXRlclwiLFxuICAgIGJhY2s6IFwiUmV0b3VybmVyIHNhbnMgZW5yZWdpc3RyZXJcIixcbiAgICBiYWNrVG9vbHRpcDogXCJSZXRvdXJuZXIgc2FucyBlbnJlZ2lzdHJlclwiLFxuICAgIHNhdmVBbmRCYWNrOiBcIkVucmVnaXN0cmVyIGV0IHJldG91cm5lclwiLFxuICAgIHNhdmVBbmRCYWNrVG9vbHRpcDogXCJFbnJlZ2lzdHJlciBldCByZXRvdXJuZXJcIixcbiAgICBtb3ZlOiBcIkTDqXBsYWNlclwiLFxuICAgIGVtcHR5OiBcIjx2aWRlPlwiLFxuICAgIG5vdEVtcHR5OiBcIjzDqWRpdGVyIGxhIHZhbGV1cj5cIixcbiAgICBlZGl0Q2hvaWNlczogXCJFZGl0ZXIgbGVzIGNob2l4XCIsXG4gICAgZmFzdEVudHJ5OiBcIkFqb3V0IHJhcGlkZVwiLFxuICAgIGZvcm1FbnRyeTogXCJBam91dCB2aWEgZm9ybXVsYWlyZVwiLFxuICAgIHRlc3RTZXJ2aWNlOiBcIlRlc3RlciBsZSBzZXJ2aWNlXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UXVlc3Rpb246IFwiU8OpbGVjdGlvbm5lciB1bmUgcXVlc3Rpb24uLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwiU8OpbGVjdGlvbm5lciBvdSBzYWlzaXIgbGEgdmFsZXVyXCIsXG4gICAgY29uZGl0aW9uQnV0dG9uQWRkOiBcIkFqb3V0ZXJcIixcbiAgICBjb25kaXRpb25CdXR0b25SZXBsYWNlOiBcIlJlbXBsYWNlclwiLFxuICAgIGNvbmRpdGlvbkhlbHA6XG4gICAgICAnVmV1aWxsZXogZW50cmVyIHVuZSBleHByZXNzaW9uIGJvb2zDqWVubmUuIEVsbGUgZG9pdCByZXRvdXJuZXIgVnJhaSh0cnVlKSBwb3VyIGdhcmRlciBsYSBxdWVzdGlvbi9wYWdlIHZpc2libGUuIFBhciBleGVtcGxlOiB7cXVlc3Rpb24xfSA9IFwidmFsZXVyMVwiIG9yICh7cXVlc3Rpb24yfSA9IDMgYW5kIHtxdWVzdGlvbjN9IDwgNSknLFxuICAgIGV4cHJlc3Npb25IZWxwOlxuICAgICAgXCJWZXVpbGxleiBlbnRyZXIgdW5lIGV4cHJlc3Npb24uIFZvdXMgcG91dmV6IHV0aWxpc2VyIGRlcyBhY2NvbGFkZXMgcG91ciBhY2PDqWRlciBhdXggdmFsZXVycyBkZXMgcXVlc3Rpb25zICd7cXVlc3Rpb24xfSArIHtxdWVzdGlvbjJ9JywgJyh7cHJpeH0qe3F1YW50aXRlfSkgKiAoMTAwIC0ge3JlbWlzZX0pJ1wiLFxuICAgIGFjZUVkaXRvckhlbHA6XG4gICAgICBcIkFwcHV5ZXIgc3VyIEN0cmwgKyBlc3BhY2UgcG91ciBvYnRlbmlyIHVuZSBhaWRlIHBvdXIgbGEgc2Fpc2llIGQnZXhwcmVzc2lvblwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcIkxpZ25lIGNvdXJhbnRlXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCJQYW5uZWF1IGNvdXJhbnRcIixcbiAgICBzaG93TW9yZTpcbiAgICAgIFwiUG91ciBwbHVzIGQnaW5mb3JtYXRpb25zLCB2ZXVpbGxleiB2b3VzIHLDqWbDqXJlciDDoCBsYSBkb2N1bWVudGF0aW9uXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwiUXVlc3Rpb25zIGRpc3BvbmlibGVzIDpcIixcbiAgICBjZWxsc0VtcHR5Um93c0NvbHVtbnM6IFwiSWwgZmF1dCBhdSBtaW5pbXVtIHVuZSBsaWduZSBvdSB1bmUgY29sb25uZVwiLFxuICAgIHByb3BlcnR5SXNFbXB0eTogXCJWZXVpbGxleiBlbnRyZXIgdW5lIHZhbGV1ciBwb3VyIGxhIHByb3ByacOpdMOpXCIsXG4gICAgbGlzdElzRW1wdHk6IFwiQWpvdXRlciB1biBub3V2ZWwgw6lsw6ltZW50XCIsXG4gICAgZXhwcmVzc2lvbklzRW1wdHk6IFwiTCdleHByZXNzaW9uIGVzdCB2aWRlXCIsXG4gICAgdmFsdWU6IFwiVmFsZXVyXCIsXG4gICAgdGV4dDogXCJUZXh0ZVwiLFxuICAgIHJvd2lkOiBcIklEIExpZ25lXCIsXG4gICAgaW1hZ2VMaW5rOiBcIlVSTCBkZSBsJ2ltYWdlXCIsXG4gICAgY29sdW1uRWRpdDogXCLDiWRpdGVyIGxhIGNvbG9ubmU6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIsOJZGl0ZXIgbCdpdGVtOiB7MH1cIixcbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCJDaGVtaW5cIixcbiAgICB2YWx1ZU5hbWU6IFwiTm9tIGRlIGxhIHZhbGV1clwiLFxuICAgIHRpdGxlTmFtZTogXCJOb20gZHUgdGl0cmVcIixcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiBcIlRpdHJlIGRlIGxhIHBhZ2VcIixcbiAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIkVudHJlciB1bmUgZGVzY3JpcHRpb25cIixcbiAgICBzdXJ2ZXlUaXRsZVBsYWNlaG9sZGVyOiBcIlNhaXNpc3NleiBsZSB0aXRyZSBkZSBsJmFwb3M7ZW5xdcOqdGVcIixcbiAgICBwYWdlVGl0bGVQbGFjZWhvbGRlcjogXCJTYWlzaXNzZXogbGUgdGl0cmUgZGUgbGEgcGFnZVwiLFxuICAgIHBhZ2VEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIkVudHJlciB1bmUgZGVzY3JpcHRpb24gcG91ciBsYSBwYWdlXCIsXG4gICAgc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJFbnRyZXIgdW5lIGRlc2NyaXB0aW9uIHBvdXIgbCZhcG9zO2VucXXDqnRlXCIsXG4gICAgc2hvd090aGVySXRlbTogJ0NvbnRpZW50IHVuIGl0ZW0gXCJBdXRyZVwiJyxcbiAgICBvdGhlclRleHQ6ICdUZXh0ZSBpdGVtIFwiQXV0cmVcIicsXG4gICAgc2hvd05vbmVJdGVtOiAnQ29udGllbnQgdW4gaXRlbSBcIkF1Y3VuXCInLFxuICAgIG5vbmVUZXh0OiAnVGV4dGUgaXRlbSBcIkF1Y3VuXCInLFxuICAgIGhhc1NlbGVjdEFsbDogJ0NvbnRpZW50IHVuIGl0ZW0gXCJUb3V0IHPDqWxlY3Rpb25uZXJcIicsXG4gICAgc2VsZWN0QWxsVGV4dDogJ1RleHRlIGl0ZW0gXCJUb3V0IHPDqWxlY3Rpb25uZXJcIicsXG4gICAgY2hvaWNlc01pbjogXCJWYWxldXIgbWluaW11bSBwb3VyIGxlcyBpdGVtcyBnw6luw6lyw6lzIGF1dG9tYXRpcXVlbWVudFwiLFxuICAgIGNob2ljZXNNYXg6IFwiVmFsZXVyIG1heGltdW0gcG91ciBsZXMgaXRlbXMgZ8OpbsOpcsOpcyBhdXRvbWF0aXF1ZW1lbnRcIixcbiAgICBjaG9pY2VzU3RlcDogXCJEaWZmw6lyZW5jZSBlbnRyZSBpdGVtcyBnw6luw6lyw6lzIGF1dG9tYXRpcXVlbWVudFwiLFxuICAgIG5hbWU6IFwiTm9tXCIsXG4gICAgdGl0bGU6IFwiVGl0cmVcIixcbiAgICBjZWxsVHlwZTogXCJUeXBlIGRlIGNlbGx1bGVcIixcbiAgICBjb2xDb3VudDogXCJOb21icmUgZGUgY29sb25uZXNcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiU8OpbGVjdGlvbm5lciBsJ29yZHJlIGRlcyBjaG9peFwiLFxuICAgIHZpc2libGU6IFwiRXN0IHZpc2libGUgP1wiLFxuICAgIGlzUmVxdWlyZWQ6IFwiRXN0IG9ibGlnYXRvaXJlID9cIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIlLDqXBvbnNlIG9ibGlnYXRvaXJlIHBvdXIgdG91dGVzIGxlcyBsaWduZXNcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJNZXNzYWdlIGQnZXJyZXVyIGxvcnNxdWUgb2JsaWdhdG9pcmVcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIkNvbW1lbmNlciBhdmVjIHVuZSBub3V2ZWxsZSBsaWduZSA/XCIsXG4gICAgcm93czogXCJOb21icmUgZGUgbGlnbmVzXCIsXG4gICAgcGxhY2Vob2xkZXI6IFwiUGxhY2Vob2xkZXIgKGluZGljZSBkYW5zIGxlIGNoYW1wKVwiLFxuICAgIHNob3dQcmV2aWV3OiBcIkwnYXBlcsOndSBkJ2ltYWdlIGVzdC1pbCBhZmZpY2jDqSA/XCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OlxuICAgICAgXCJTdG9ja2VyIGxlIGNvbnRlbnUgZHUgZmljaGllciBkYW5zIGxlIHLDqXN1bHRhdCBKU09OIHNvdXMgZm9ybWUgZGUgdGV4dGVcIixcbiAgICBtYXhTaXplOiBcIlRhaWxsZSBtYXhpbXVtIGR1IGZpY2hpZXIgZW4gb2N0ZXRzXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiSGF1dGV1ciBkZSBsJ2ltYWdlXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJMYXJnZXVyIGRlIGwnaW1hZ2VcIixcbiAgICByb3dDb3VudDogXCJOb21icmUgZGUgbGlnbmVzXCIsXG4gICAgY29sdW1uTGF5b3V0OiBcIkludmVyc2VyIGxlcyBsaWduZXMgZXQgbGVzIGNvbG9ubmVzXCIsXG4gICAgYWRkUm93TG9jYXRpb246ICdFbXBsYWNlbWVudCBib3V0b24gXCJBam91dGVyIHVuZSBsaWduZVwiJyxcbiAgICBhZGRSb3dUZXh0OiAnVGV4dGUgYm91dG9uIFwiQWpvdXRlciB1bmUgbGlnbmVcIicsXG4gICAgcmVtb3ZlUm93VGV4dDogJ1RleHRlIGJvdXRvbiBcIlN1cHByaW1lciB1bmUgbGlnbmVcIicsXG4gICAgcmF0ZU1pbjogXCJOb3RlIG1pbmltdW1cIixcbiAgICByYXRlTWF4OiBcIk5vdGUgbWF4aW11bVwiLFxuICAgIHJhdGVTdGVwOiBcIkludGVydmFsbGUgZGVzIG5vdGVzXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIkRlc2NyaXB0aW9uIG5vdGUgbWluaW11bVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJEZXNjcmlwdGlvbiBub3RlIG1heGltdW1cIixcbiAgICBpbnB1dFR5cGU6IFwiVHlwZSBkZSBjaGFtcFwiLFxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIlRleHRlIHBhciBkw6lmYXV0XCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlZhbGV1ciBwYXIgZMOpZmF1dFwiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJUZXh0ZSBkZSBjZWxsdWxlIHBhciBkw6lmYXV0XCIsXG4gICAgc3VydmV5RWRpdG9yVGl0bGU6IFwiw4lkaXRlciBsZXMgcHLDqWbDqXJlbmNlcyBkdSBxdWVzdGlvbm5haXJlXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIsOJZGl0ZXIgbGEgcXVlc3Rpb246IHswfVwiLFxuICAgIG1heExlbmd0aDogXCJMb25ndWV1ciBtYXhpbXVtXCIsXG5cbiAgICBidWlsZEV4cHJlc3Npb246IFwiQ29uc3RydWlyZVwiLFxuICAgIGVkaXRFeHByZXNzaW9uOiBcIkVkaXRlclwiLFxuICAgIGFuZDogXCJFdFwiLFxuICAgIG9yOiBcIk91XCIsXG4gICAgcmVtb3ZlOiBcIkVubGV2ZXJcIixcbiAgICBhZGRDb25kaXRpb246IFwiQWpvdXRlciB1bmUgY29uZGl0aW9uXCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCJBZmZpY2hlci9jYWNoZXIgbGUgdGl0cmVcIixcbiAgICBsb2NhbGU6IFwiTGFuZ3VlIHBhciBkw6lmYXV0XCIsXG4gICAgc2ltdWxhdG9yOiBcIkNob2lzaXIgbCdhcHBhcmVpbFwiLFxuICAgIGxhbmRzY2FwZU9yaWVudGF0aW9uOiBcIlBheXNhZ2VcIixcbiAgICBtb2RlOiBcIk1vZGUgKMOpZGl0aW9uL2xlY3R1cmUgc2V1bGUpXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiRWZmYWNlciBsZXMgdmFsZXVycyBpbnZpc2libGVzXCIsXG4gICAgY29va2llTmFtZTpcbiAgICAgIFwiTm9tIGR1IGNvb2tpZSAocG91ciBlbXDDqmNoZXIgZGUgY29tcGzDqXRlciAyIGZvaXMgbGUgcXVlc3Rpb25uYWlyZSBsb2NhbGVtZW50KVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIkVudm95ZXIgbGVzIHLDqXN1bHRhdHMgYXUgY2hhbmdlbWVudCBkZSBwYWdlXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6ICdTYXV2ZWdhcmRlciBsYSB2YWxldXIgXCJBdXRyZXNcIiBkYW5zIHVuIGNoYW1wIHPDqXBhcsOpJyxcbiAgICBzaG93UGFnZVRpdGxlczogXCJBZmZpY2hlciBsZXMgdGl0cmVzIGRlIHBhZ2VzXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIkFmZmljaGVyIGxlcyBudW3DqXJvcyBkZSBwYWdlc1wiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCJUZXh0ZSBib3V0b24gcGFnZSBwcsOpY8OpZGVudGVcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiVGV4dGUgYm91dG9uIHBhZ2Ugc3VpdmFudGVcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiVGV4dGUgYm91dG9uIHRlcm1pbmVyXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIlRleHRlIGJvdXRvbiBjb21tZW5jZXJcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6XG4gICAgICBcIkFmZmljaGVyIGxlcyBib3V0b25zIGRlIG5hdmlnYXRpb24gKG5hdmlnYXRpb24gcGFyIGTDqWZhdXQpXCIsXG4gICAgc2hvd1ByZXZCdXR0b246XG4gICAgICBcIkFmZmljaGVyIGxlIGJvdXRvbiBwcsOpY8OpZGVudCAobCd1dGlsaXNhdGV1ciBwb3VycmEgcmV0b3VybmVyIHN1ciBsYSBwYWdlIHByw6ljw6lkZW50ZSlcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6XG4gICAgICBcIkxhIHByZW1pw6hyZSBwYWdlIGR1IHF1ZXN0aW9ubmFpcmUgZXN0IHVuZSBwYWdlIGRlIGTDqW1hcnJhZ2UuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6ICdBZmZpY2hlciBsYSBwYWdlIFwidGVybWluw6lcIiDDoCBsYSBmaW4gKGNvbXBsZXRlZEh0bWwpJyxcbiAgICBnb05leHRQYWdlQXV0b21hdGljOlxuICAgICAgXCJBbGxlciDDoCBsYSBwYWdlIHN1aXZhbnRlIGF1dG9tYXRpcXVlbWVudCBwb3VyIHRvdXRlcyBsZXMgcXVlc3Rpb25zXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIkFmZmljaGVyIGxhIGJhcnJlIGRlIHByb2dyZXNzaW9uXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIkVtcGxhY2VtZW50IGR1IHRpdHJlIGRlIGxhIHF1ZXN0aW9uXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIkxhIHF1ZXN0aW9uIHJlcXVpZXJ0IHVuL2RlcyBzeW1ib2xlKHMpXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIkluZGV4IGRlIGTDqXBhcnQgZGUgbGEgcXVlc3Rpb24gKDEsIDIgb3UgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJBZmZpY2hlciBsZXMgbnVtw6lyb3MgZGUgcXVlc3Rpb25zXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOlxuICAgICAgXCJHYWJhcml0IGR1IHRpdHJlIGRlIHF1ZXN0aW9uLCBwYXIgZMOpZmF1dCA6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiRW1wbGFjZW1lbnQgZGUgbCdlcnJldXJcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6XG4gICAgICBcIkZvY3VzIHN1ciBsYSBwcmVtacOocmUgcXVlc3Rpb24gYXUgY2hhbmdlbWVudCBkZSBwYWdlXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiT3JkcmUgZGVzIMOpbMOpbWVudHMgc3VyIGxhIHBhZ2VcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiVGVtcHMgbWF4aW11bSBwb3VyIHRlcm1pbmVyIGxlIHF1ZXN0aW9ubmFpcmVcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIlRlbXBzIG1heGltdW0gcG91ciB0ZXJtaW5lciB1bmUgcGFnZVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIkFmZmljaGVyIGxlIHBhbm5lYXUgY2hyb25vbcOodHJlXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIk1vZGUgZCdhZmZpY2hhZ2UgZHUgcGFubmVhdSBjaHJvbm9tw6h0cmVcIixcbiAgICByZW5kZXJNb2RlOiBcIk1vZGUgZGUgcmVuZHVcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIkF1dG9yaXNlciBsJ2Fqb3V0IGR1IHBhbm5lYXVcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIkF1dG9yaXNlciBsYSBzdXBwcmVzc2lvbiBkdSBwYW5uZWF1XCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIkFqb3V0ZXIgdW4gcGFubmVhdSB0ZXh0ZVwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJTdXBwcmltZXIgbGUgcGFubmVhdSB0ZXh0ZVwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJBZmZpY2hlciB0b3VzIGxlcyDDqWzDqW1lbnRzIHN1ciB1bmUgc2V1bGUgcGFnZVwiLFxuICAgIGV4cHJlc3Npb246IFwiRXhwcmVzc2lvblwiLFxuICAgIG1pblZhbHVlOiBcIlZhbGV1ciBtaW5pbXVtXCIsXG4gICAgbWF4VmFsdWU6IFwiVmFsZXVyIG1heGltdW1cIixcbiAgICBtaW5MZW5ndGg6IFwiTG9uZ3VldXIgbWluaW11bVwiLFxuICAgIGFsbG93RGlnaXRzOiBcIlBlcm1ldHRyZSBjaGlmZnJlc1wiLFxuICAgIG1pbkNvdW50OiBcIk5vbWJyZSBtaW5pbXVtXCIsXG4gICAgbWF4Q291bnQ6IFwiTm9tYnJlIG1heGltdW1cIixcbiAgICByZWdleDogXCJFeHByZXNzaW9uIHLDqWd1bGnDqHJlXCIsXG5cbiAgICB0b3RhbFRleHQ6IFwiVGV4dGUgcG91ciBsZSB0b3RhbFwiLFxuICAgIHRvdGFsVHlwZTogXCJUeXBlIGRlIHRvdGFsXCIsXG4gICAgdG90YWxFeHByZXNzaW9uOiBcIkV4cHJlc3Npb24gZGUgY2FsY3VsXCIsXG4gICAgdG90YWxEaXNwbGF5U3R5bGU6IFwiRm9ybWF0IGQnYWZmaWNoYWdlXCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCJNb25uYWllXCIsXG4gICAgdG90YWxGb3JtYXQ6IFwiRm9ybWF0IGR1IHRvdGFsXCIsXG5cbiAgICBsb2dvUG9zaXRpb246IFwiUG9zaXRpb24gZHUgbG9nb1wiLFxuICAgIGFkZExvZ286IFwiQWpvdXRlciB1biBsb2dvLi4uXCIsXG4gICAgY2hhbmdlTG9nbzogXCJDaGFuZ2VyIGxlIGxvZ28uLi5cIixcbiAgICBsb2dvUG9zaXRpb25zOiB7XG4gICAgICBub25lOiBcIlJldGlyZXIgbGUgbG9nb1wiLFxuICAgICAgbGVmdDogXCJHYXVjaGVcIixcbiAgICAgIHJpZ2h0OiBcIkRyb2l0ZVwiLFxuICAgICAgdG9wOiBcIkF1IGRlc3N1c1wiLFxuICAgICAgYm90dG9tOiBcIkVuIGRlc3NvdXNcIixcbiAgICB9LFxuXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCJHw6luw6lyYWxcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIk9wdGlvbnNcIixcbiAgICAgIGh0bWw6IFwiw4lkaXRldXIgSFRNTFwiLFxuICAgICAgY29sdW1uczogXCJDb2xvbm5lc1wiLFxuICAgICAgcm93czogXCJMaWduZXNcIixcbiAgICAgIGNob2ljZXM6IFwiQ2hvaXhcIixcbiAgICAgIHZpc2libGVJZjogXCJWaXNpYmxlIHNpXCIsXG4gICAgICBlbmFibGVJZjogXCJBY3RpZiBzaVwiLFxuICAgICAgcmVxdWlyZWRJZjogXCJPYmxpZ2F0b2lyZSBzaVwiLFxuICAgICAgcmF0ZVZhbHVlczogXCJCYXLDqG1lXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwiQ2hvaXggZGVwdWlzIEFQSSB3ZWJcIixcbiAgICAgIG1hdHJpeENob2ljZXM6IFwiQ2hvaXggcGFyIGTDqWZhdXRcIixcbiAgICAgIG11bHRpcGxlVGV4dEl0ZW1zOiBcIkNoYW1wcyB0ZXh0ZSBtdWx0aXBsZXNcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwiVmFsaWRhdGV1cnNcIixcbiAgICAgIG5hdmlnYXRpb246IFwiTmF2aWdhdGlvblwiLFxuICAgICAgcXVlc3Rpb246IFwiUXVlc3Rpb25cIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwiSFRNTCBkZSBmaW5cIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJIdG1sIGRlIGZpbiAocGFnZSAndGVybWluw6knKSBzdXIgY29uZGl0aW9uXCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCJIVE1MIGRlIGNoYXJnZW1lbnRcIixcbiAgICAgIHRpbWVyOiBcIkNocm9ub23DqHRyZS9RdWl6XCIsXG4gICAgICBjYWxjdWxhdGVkVmFsdWVzOiBcIlZhbGV1cnMgY2FsY3Vsw6llc1wiLFxuICAgICAgdHJpZ2dlcnM6IFwiRMOpY2xlbmNoZXVyc1wiLFxuICAgICAgdGVtcGxhdGVUaXRsZTogXCJUaXRyZSBkZSBnYWJhcml0XCIsXG4gICAgICB0b3RhbHM6IFwiVG90YXV4XCIsXG4gICAgICBsb2dpYzogXCJDb25kaXRpb25zXCIsXG4gICAgICBsYXlvdXQ6IFwiRGlzcG9zaXRpb25cIixcbiAgICAgIGRhdGE6IFwiRG9ubsOpZXNcIixcbiAgICAgIHZhbGlkYXRpb246IFwiVmFsaWRhdGV1cnNcIixcbiAgICAgIGNlbGxzOiBcIkNlbGx1bGVzXCIsXG4gICAgICBsb2dvOiBcIkxvZ28gZGFucyBsZSB0aXRyZSBkZSBsJ2VucXXDqnRlXCIsXG4gICAgICBvdGhlcnM6IFwiQXV0cmVzXCIsXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6ICfDiWRpdGVyIGxhIHByb3ByacOpdMOpIFwiezB9XCInLFxuICAgIGl0ZW1zOiBcIlsgw4lsw6ltZW50czogezB9IF1cIixcbiAgICBlbnRlck5ld1ZhbHVlOiBcIlZldWlsbGV6IHNhaXNpciBsYSB2YWxldXIuXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwiSWwgbid5IGEgYXVjdW5lIHF1ZXN0aW9uIGRhbnMgbGUgcXVlc3Rpb25uYWlyZS5cIixcbiAgICBjcmVhdGV0cmlnZ2VyOiBcIlZldWlsbGV6IGNyw6llciB1biBkw6ljbGVuY2hldXJcIixcbiAgICB0cmlnZ2VyT246IFwiUXVhbmQgXCIsXG4gICAgdHJpZ2dlck1ha2VQYWdlc1Zpc2libGU6IFwiUmVuZHJlIGxlcyBwYWdlcyB2aXNpYmxlcyA6XCIsXG4gICAgdHJpZ2dlck1ha2VRdWVzdGlvbnNWaXNpYmxlOiBcIlJlbmRyZSBsZXMgcXVlc3Rpb25zIHZpc2libGVzIDpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIlRlcm1pbmVyIGxlIHF1ZXN0aW9ubmFpcmUgZW4gY2FzIGRlIHN1Y2PDqHMuXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCJMZSBkw6ljbGVuY2hldXIgbidlc3QgcGFzIGTDqWZpbmlcIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiRXjDqWN1dGVyIHNpXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCJDaGFuZ2VyIGxhIHZhbGV1ciBkZSA6IFwiLFxuICAgIHRyaWdnZXJGcm9tTmFtZTogXCJDb3BpZXIgbGEgdmFsZXVyIGRlIDogXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb246IFwiRXjDqWN1dGVyIGNldHRlIGV4cHJlc3Npb24gOlwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCLDoCA6IFwiLFxuICAgIHRyaWdnZXJHb3RvTmFtZTogXCJBbGxlciDDoCBsYSBxdWVzdGlvbiA6XCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6XG4gICAgICBcIk5lIHBsYWNleiBwYXMgbGEgdmFyaWFibGUgZGFucyBsZSByw6lzdWx0YXQgZHUgcXVlc3Rpb25uYWlyZS5cIixcbiAgICB0cmlnZ2VyUnVuRXhwcmVzc2lvbkVtcHR5OiBcIlZldWlsbGV6IGVudHJlciB1bmUgZXhwcmVzc2lvbiB2YWxpZGVcIixcbiAgfSxcbiAgLy9Qcm9wZXJ0eSB2YWx1ZXNcbiAgcHY6IHtcbiAgICB0cnVlOiBcInZyYWlcIixcbiAgICBmYWxzZTogXCJmYXV4XCIsXG4gICAgaW5oZXJpdDogXCJow6lyaXTDqVwiLFxuICAgIHNob3c6IFwiYWZmaWNoZXJcIixcbiAgICBoaWRlOiBcIm1hc3F1ZXJcIixcbiAgICBkZWZhdWx0OiBcInBhciBkw6lmYXV0XCIsXG4gICAgaW5pdGlhbDogXCJpbml0aWFsXCIsXG4gICAgcmFuZG9tOiBcImFsw6lhdG9pcmVcIixcbiAgICBjb2xsYXBzZWQ6IFwicmVwbGnDqVwiLFxuICAgIGV4cGFuZGVkOiBcImTDqXBsb3nDqVwiLFxuICAgIG5vbmU6IFwiYXVjdW5cIixcbiAgICBhc2M6IFwiYXNjZW5kYW50XCIsXG4gICAgZGVzYzogXCJkZXNjZW5kYW50XCIsXG4gICAgaW5kZXRlcm1pbmF0ZTogXCJpbmRldGVybWluw6lcIixcbiAgICBkZWNpbWFsOiBcImTDqWNpbWFsXCIsXG4gICAgY3VycmVuY3k6IFwibW9ubmFpZVwiLFxuICAgIHBlcmNlbnQ6IFwicG91cmNlbnRhZ2VcIixcbiAgICBmaXJzdEV4cGFuZGVkOiBcImTDqXBsb3nDqSBlbiBwcmVtaWVyXCIsXG4gICAgb2ZmOiBcImTDqXNhY3RpdsOpXCIsXG4gICAgb25QYW5lbDogXCJwYW5uZWF1XCIsXG4gICAgb25TdXJ2ZXk6IFwicXVlc3Rpb25uYWlyZVwiLFxuICAgIGxpc3Q6IFwibGlzdGVcIixcbiAgICBwcm9ncmVzc1RvcDogXCJQcm9ncmVzc2lvbiBlbiBoYXV0XCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwiUHJvZ3Jlc3Npb24gZW4gYmFzXCIsXG4gICAgcHJvZ3Jlc3NUb3BCb3R0b206IFwiUHJvZ3Jlc3Npb24gZW4gaGF1dCBldCBlbiBiYXNcIixcbiAgICB0b3A6IFwiaGF1dFwiLFxuICAgIGJvdHRvbTogXCJiYXNcIixcbiAgICB0b3BCb3R0b206IFwiaGF1dCBldCBiYXNcIixcbiAgICBib3RoOiBcImxlcyBkZXV4XCIsXG4gICAgbGVmdDogXCJnYXVjaGVcIixcbiAgICBjb2xvcjogXCJjb3VsZXVyXCIsXG4gICAgZGF0ZTogXCJkYXRlXCIsXG4gICAgZGF0ZXRpbWU6IFwiaGV1cmVcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwiaGV1cmUgbG9jYWxlXCIsXG4gICAgZW1haWw6IFwiZW1haWxcIixcbiAgICBtb250aDogXCJtb2lzXCIsXG4gICAgbnVtYmVyOiBcIm5vbWJyZVwiLFxuICAgIHBhc3N3b3JkOiBcIm1vdCBkZSBwYXNzZVwiLFxuICAgIHJhbmdlOiBcImphdWdlXCIsXG4gICAgdGVsOiBcInTDqWwuXCIsXG4gICAgdGV4dDogXCJ0ZXh0ZVwiLFxuICAgIHRpbWU6IFwiaGV1cmVcIixcbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgd2VlazogXCJzZW1haW5lXCIsXG4gICAgaGlkZGVuOiBcIm1hc3F1w6lcIixcbiAgICBvbjogXCJhY3RpdsOpXCIsXG4gICAgb25QYWdlOiBcInBhZ2VcIixcbiAgICBlZGl0OiBcIsOpZGl0ZXJcIixcbiAgICBkaXNwbGF5OiBcImFmZmljaGFnZVwiLFxuICAgIG9uQ29tcGxldGU6IFwiUXVhbmQgdGVybWluw6lcIixcbiAgICBvbkhpZGRlbjogXCJRdWFuZCBjYWNow6lcIixcbiAgICBhbGw6IFwidG91c1wiLFxuICAgIHBhZ2U6IFwicGFnZVwiLFxuICAgIHN1cnZleTogXCJxdWVzdGlvbm5haXJlXCIsXG4gIH0sXG4gIC8vT3BlcmF0b3JzXG4gIG9wOiB7XG4gICAgZW1wdHk6IFwiZXN0IHZpZGVcIixcbiAgICBub3RlbXB0eTogXCJuJ2VzdCBwYXMgdmlkZVwiLFxuICAgIGVxdWFsOiBcIsOpZ2FsXCIsXG4gICAgbm90ZXF1YWw6IFwibidlc3QgcGFzIMOpZ2FsXCIsXG4gICAgY29udGFpbnM6IFwiY29udGllbnRcIixcbiAgICBub3Rjb250YWluczogXCJuZSBjb250aWVudCBwYXNcIixcbiAgICBhbnlvZjogXCJuJ2ltcG9ydGUgcXVlbCBkZVwiLFxuICAgIGFsbG9mOiBcInRvdXMgcGFybWlcIixcbiAgICBncmVhdGVyOiBcInN1cMOpcmlldXJcIixcbiAgICBsZXNzOiBcImluZsOpcmlldXJcIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCJzdXDDqXJpZXVyIG91IMOpZ2FsXCIsXG4gICAgbGVzc29yZXF1YWw6IFwiaW5mw6lyaWV1ciBvdSDDqWdhbFwiLFxuICB9LFxuICAvL0VtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiVXRpbGlzZXIgbGEgdmVyc2lvbiBBbmd1bGFyXCIsXG4gICAganF1ZXJ5OiBcIlV0aWxpc2VyIGxhIHZlcnNpb24galF1ZXJ5XCIsXG4gICAga25vY2tvdXQ6IFwiVXRpbGlzZXIgbGEgdmVyc2lvbiBLbm9ja291dFwiLFxuICAgIHJlYWN0OiBcIlV0aWxpc2VyIGxhIHZlcnNpb24gUmVhY3RcIixcbiAgICB2dWU6IFwiVXRpbGlzZXIgbGEgdmVyc2lvbiBWdWVcIixcbiAgICBib290c3RyYXA6IFwiUG91ciBsZSBmcmFtZXdvcmsgQm9vdHN0cmFwXCIsXG4gICAgc3RhbmRhcmQ6IFwiU2FucyBCb290c3RyYXBcIixcbiAgICBzaG93T25QYWdlOiBcIkFmZmljaGVyIGxlIHF1ZXN0aW9ubmFpcmUgZGFucyB1bmUgcGFnZVwiLFxuICAgIHNob3dJbldpbmRvdzogXCJBZmZpY2hlciBsZSBxdWVzdGlvbm5haXJlIGRhbnMgdW5lIGZlbsOqdHJlXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiQ2hhcmdlciBsZSBKU09OIGR1IHF1ZXN0aW9ubmFpcmUgZGVwdWlzIHVuIHNlcnZldXJcIixcbiAgICB0aXRsZVNjcmlwdDogXCJTY3JpcHRzIGV0IHN0eWxlc1wiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIixcbiAgfSxcbiAgLy9UZXN0IFN1cnZleVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwiU8OpbGVjdGlvbm5lciB1bmUgcGFnZSBwb3VyIGxhIHRlc3RlclwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCJBZmZpY2hlciBsZXMgw6lsw6ltZW50cyBpbnZpc2libGVzXCIsXG4gIH0sXG4gIC8vVmFsaWRhdG9yc1xuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwidG90YWwgZGUgcsOpcG9uc2VzXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwiZS1tYWlsXCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCJudW3DqXJpcXVlXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwicmVnZXhcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRleHRlXCIsXG4gIH0sXG4gIC8vVHJpZ2dlcnNcbiAgdHJpZ2dlcnM6IHtcbiAgICBjb21wbGV0ZXRyaWdnZXI6IFwidGVybWluZXIgbGUgcXVlc3Rpb25uYWlyZVwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCJkw6lmaW5pciBsYSB2YWxldXJcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcImNvcGllciBsYSB2YWxldXJcIixcbiAgICBza2lwdHJpZ2dlcjogXCJzYXV0ZXIgw6AgbGEgcXVlc3Rpb25cIixcbiAgICBydW5leHByZXNzaW9udHJpZ2dlcjogXCJleMOpY3V0ZXIgZXhwcmVzc2lvblwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcIm1vZGlmaWVyIGxhIHZpc2liaWxpdMOpXCIsXG4gIH0sXG4gIC8vUHJvcGVydGllc1xuICBwOiB7XG4gICAgbmFtZTogXCJOb21cIixcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCJUaXRyZVwiLFxuICAgICAgdGl0bGU6ICdMYWlzc2V6IHZpZGUsIHNpIG3Dqm1lIHRleHRlIHF1ZSBsZSBcIk5vbVwiJyxcbiAgICB9LFxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJWaXNpYmlsaXTDqSBkZXMgYm91dG9ucyBkZSBuYXZpZ2F0aW9uXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiT3JkcmUgZGVzIHF1ZXN0aW9uc1wiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJUZW1wcyBtYXhpbXVtIHBvdXIgdGVybWluZXJcIixcbiAgICB2aXNpYmxlOiBcIlZpc2libGVcIixcbiAgICB2aXNpYmxlSWY6IFwiVmlzaWJsZSBzaSBcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwiRW1wbGFjZW1lbnQgdGl0cmUgcXVlc3Rpb25cIixcbiAgICBkZXNjcmlwdGlvbjogXCJEZXNjcmlwdGlvblwiLFxuICAgIHN0YXRlOiBcIsOJdGF0XCIsXG4gICAgaXNSZXF1aXJlZDogXCJPYmxpZ2F0b2lyZSA/XCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwiTWVzc2FnZSBkJ2VycmV1ciB0ZXh0IG9ibGlnYXRvaXJlXCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCJDb21tZW5jZXIgYXZlYyB1bmUgbm91dmVsbGUgbGlnbmVcIixcbiAgICBpbm5lckluZGVudDogXCJJbmRlbnRhdGlvblwiLFxuICAgIHBhZ2U6IFwicGFnZVwiLFxuICAgIHdpZHRoOiBcImxhcmdldXJcIixcbiAgICBjb21tZW50VGV4dDogXCJEZXNjcmlwdGlvbiBjaGFtcCBjb21tZW50YWlyZVwiLFxuICAgIHZhbHVlTmFtZTogXCJOb20gZGUgbGEgdmFsZXVyXCIsXG4gICAgZW5hYmxlSWY6IFwiQWN0aXZlciBzaVwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJWYWxldXIgcGFyIGTDqWZhdXRcIixcbiAgICBjb3JyZWN0QW5zd2VyOiBcIkJvbm5lIHLDqXBvbnNlXCIsXG4gICAgcmVhZE9ubHk6IFwiTGVjdHVyZSBzZXVsZVwiLFxuICAgIHZhbGlkYXRvcnM6IFwiVmFsaWRhdGV1cnNcIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcIkVtcGxhY2VtZW50IGR1IHRpdHJlXCIsXG4gICAgaGFzQ29tbWVudDogXCJDaGFtcCBjb21tZW50YWlyZSA/XCIsXG4gICAgc2hvd090aGVySXRlbTogXCJDaG9peCBhdXRyZSA/XCIsXG4gICAgY2hvaWNlczogXCJDaG9peFwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJPcmRyZSBkZXMgY2hvaXhcIixcbiAgICBjaG9pY2VzQnlVcmw6IFwiQ2hvaXggcGFyIEFQSVwiLFxuICAgIG90aGVyVGV4dDogXCJBdXRyZSB0ZXh0ZVwiLFxuICAgIG90aGVyRXJyb3JUZXh0OiAnVGV4dGUgZFxcJ2VycmV1ciBjaGFtcCBcIkF1dHJlXCInLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcIlNhdXZlZ2FyZGVyIGNob2l4IGF1dHJlIGNvbW1lIGNvbW1lbnRhaXJlXCIsXG4gICAgbGFiZWw6IFwiSW50aXR1bMOpXCIsXG4gICAgc2hvd1RpdGxlOiBcIkFmZmljaGVyIGxlIHRpdHJlXCIsXG4gICAgdmFsdWVUcnVlOiBcIlZhbGV1ciB2cmFpXCIsXG4gICAgdmFsdWVGYWxzZTogXCJWYWxldXIgZmF1eFwiLFxuICAgIGNvbHM6IFwiQ29sb25uZXNcIixcbiAgICByb3dzOiBcIk5vbWJyZSBkZSBsaWduZXNcIixcbiAgICBwbGFjZWhvbGRlcjogXCJQbGFjZWhvbGRlciAoaW5kaWNlIGRhbnMgbGUgY2hhbXApXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiVGV4dGUgcGFyIGTDqWZhdXRcIixcbiAgICBleHByZXNzaW9uOiBcIkV4cHJlc3Npb25cIixcbiAgICBmb3JtYXQ6IFwiRm9ybWF0XCIsXG4gICAgZGlzcGxheVN0eWxlOiBcIlN0eWxlIGQnYWZmaWNoYWdlXCIsXG4gICAgY3VycmVuY3k6IFwiTW9ubmFpZVwiLFxuICAgIHVzZUdyb3VwaW5nOiBcIlV0aWxpc2VyIGxlcyBncm91cGVzXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwiVm9pciBsYSBwcsOpdmlzdWFsaXNhdGlvblwiLFxuICAgIGFsbG93TXVsdGlwbGU6IFwiQXV0b3Jpc2VyIG11bHRpcGxlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkhhdXRldXIgZGUgbCdpbWFnZVwiLFxuICAgIGltYWdlV2lkdGg6IFwiTGFyZ2V1ciBkZSBsJ2ltYWdlXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIlN0b2NrZXIgbGVzIGRvbm7DqWVzIGNvbW1lIGR1IHRleHRlXCIsXG4gICAgbWF4U2l6ZTogXCJUYWlsbGUgbWF4aW11bVwiLFxuICAgIGh0bWw6IFwiSFRNTFwiLFxuICAgIGNvbHVtbnM6IFwiQ29sb25uZXNcIixcbiAgICBjZWxsczogXCJDZWxsdWxlc1wiLFxuICAgIGhvcml6b250YWxTY3JvbGw6IFwiU2Nyb2xsIGhvcml6b250YWxcIixcbiAgICBjZWxsVHlwZTogXCJUeXBlIGRlIGNlbGx1bGVcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCJOb21icmUgZGUgY29sb25uZXNcIixcbiAgICBjb2x1bW5NaW5XaWR0aDogXCJMYXJnZXVyIG1pbmltYWxlIGRlcyBjb2xvbm5lc1wiLFxuICAgIHJvd0NvdW50OiBcIk5vbWJyZSBkZSBsaWduZXNcIixcbiAgICBtaW5Sb3dDb3VudDogXCJOb21icmUgZGUgbGlnbmVzIG1pbmltdW1cIixcbiAgICBtYXhSb3dDb3VudDogXCJOb21icmUgZGUgbGlnbmVzIG1heGltdW1cIixcbiAgICBrZXlOYW1lOiBcIk5vbSBkZSBsYSBjbMOpXCIsXG4gICAga2V5RHVwbGljYXRpb25FcnJvcjogXCJFcnJldXIgZGUgY2zDqXMgbXVsdGlwbGVzXCIsXG4gICAgY29uZmlybURlbGV0ZTogXCJDb25maXJtYXRpb24gZGUgc3VwcHJlc3Npb25cIixcbiAgICBjb25maXJtRGVsZXRlVGV4dDogXCJUZXh0ZSBkZSBjb25maXJtYXRpb24gZGUgc3VwcHJlc3Npb25cIixcbiAgICBhZGRSb3dUZXh0OiBcIkJvdXRvbiBham91dGVyIHVuZSBsaWduZVwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiQm91dG9uIHN1cHByaW1lciB1bmUgbGlnbmVcIixcbiAgICBpdGVtczogXCJJdGVtc1wiLFxuICAgIGl0ZW1TaXplOiBcIk5vbWJyZSBtYXhpbXVtIGRlIGNhcmFjdMOocmVzXCIsXG4gICAgY29sQ291bnQ6IFwiTm9tYnJlIGRlIGNvbG9ubmVzXCIsXG4gICAgdGVtcGxhdGVUaXRsZTogXCJUaXRyZSBkZSBnYWJhcml0XCIsXG4gICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogXCJEZXNjcmlwdGlvbiBkdSBnYWJhcml0XCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJBdXRvcmlzZXIgbCdham91dCBkZSBwYW5uZWF1XCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJBdXRvcmlzZXIgbGEgc3VwcHJlc3Npb24gZGUgcGFubmVhdVwiLFxuICAgIHBhbmVsQ291bnQ6IFwiTm9tYnJlIGRlIHBhbm5lYXV4XCIsXG4gICAgbWluUGFuZWxDb3VudDogXCJOb21icmUgbWluaW11bSBkZSBwYW5uZWF1eFwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwiTm9tYnJlIG1heGltdW0gZGUgcGFubmVhdXhcIixcbiAgICBwYW5lbHNTdGF0ZTogXCLDiXRhdCBkZXMgcGFubmVhdXhcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiVGV4dGUgZCdham91dCBkZXMgcGFubmVhdXhcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwiVGV4dGUgZGUgc3VwcHJlc3Npb24gZGVzIHBhbm5lYXV4XCIsXG4gICAgcGFuZWxQcmV2VGV4dDogXCJUZXh0ZSBwYW5uZWF1IHByw6ljw6lkZW50XCIsXG4gICAgcGFuZWxOZXh0VGV4dDogXCJUZXh0ZSBwYW5uZWF1IHN1aXZhbnRcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcIk51bcOpcm90YXRpb24gZGVzIHF1ZXN0aW9uc1wiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwiQWZmaWNoZXIgbGEgcHJvZ3Jlc3Npb25cIixcbiAgICByZW5kZXJNb2RlOiBcIk1vZGUgZGUgcmVuZHVcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwiRW1wbGFjZW1lbnQgZHUgdGl0cmUgZGUgZ2FiYXJpdFwiLFxuICAgIHJhdGVWYWx1ZXM6IFwiQmFyw6htZVwiLFxuICAgIHJhdGVNaW46IFwiVmFsZXVyIG1pbmltdW1cIixcbiAgICByYXRlTWF4OiBcIlZhbGV1ciBtYXhpbXVtXCIsXG4gICAgcmF0ZVN0ZXA6IFwiUGFzXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIkRlc2NyaXB0aW9uIG5vdGUgbWluaW11bVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJEZXNjcmlwdGlvbiBub3RlIG1heGltdW1cIixcbiAgICBpbnB1dFR5cGU6IFwiVHlwZSBkZSBjaGFtcFwiLFxuICAgIHNpemU6IFwiTm9tYnJlIG1heGltdW0gZGUgY2FyYWN0w6hyZXNcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiRm9jdXMgYXV0b21hdGlxdWUgc3VyIGxhIHByZW1pw6hyZSBxdWVzdGlvblwiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiSFRNTCBxdWVzdGlvbm5haXJlIGZpbmFsaXPDqVwiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwiSFRNTCBhdmFudCBjb21wbMOpdGlvbiBkdSBxdWVzdGlvbm5haXJlXCIsXG4gICAgbG9hZGluZ0h0bWw6IFwiSFRNTCBkZSBjaGFyZ2VtZW50XCIsXG4gICAgdHJpZ2dlcnM6IFwiRMOpY2xlbmNoZXVyc1wiLFxuICAgIGNvb2tpZU5hbWU6IFwiTm9tIGR1IGNvb2tpZVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIkVudm95ZXIgbGVzIHLDqXN1bHRhdHMgYXUgY2hhbmdlbWVudCBkZSBwYWdlXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIkJvdXRvbnMgZGUgbmF2aWdhdGlvblwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIkFmZmljaGVyIGxlIGJvdXRvbiBwcsOpY8OpZGVudFwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIlRpdHJlIGRlcyBwYWdlc1wiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlZvaXIgbGEgcGFnZSBmb3JtdWxhaXJlIGNvbXBsw6l0w6kgP1wiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJOdW3DqXJvdGF0aW9uIGRlcyBwYWdlc1wiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJFbXBsYWNlbWVudCBkZXMgZXJyZXVyc1wiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJCYXJyZSBkZSBwcm9ncmVzc2lvblwiLFxuICAgIG1vZGU6IFwiTW9kZSBkJ2FmZmljaGFnZVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwiQWxsZXIgw6AgbGEgcGFnZSBzdWl2YW50ZSBhdXRvbWF0aXF1ZW1lbnRcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJDYWNoZXIgbGVzIHZhbGV1cnMgaW52aXNpYmxlc1wiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJUZXh0ZSBkZSBkw6ltYXJyYWdlIGR1IHF1ZXN0aW9ubmFpcmVcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiQm91dG9uIHBhZ2UgcHLDqWPDqWRlbnRlXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIkJvdXRvbiBwYWdlIHN1aXZhbnRlXCIsXG4gICAgY29tcGxldGVUZXh0OiBcIlRleHRlIHF1ZXN0aW9ubmFpcmUgZmluYWxpc8OpXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlRleHRlIHBvdXIgbGVzIGNoYW1wcyBvYmxpZ2F0b2lyZXNcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiSW5kZXggZGUgbnVtw6lyb3RhdGlvbiBkZXMgcXVlc3Rpb25zXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcIlRlbXBsYXRlIGQnYWZmaWNoYWdlIGRlcyBxdWVzdGlvbnNcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiQ29tbWVuY2Ugw6AgbGEgcHJlbWnDqHJlIHBhZ2VcIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiQWZmaWNow6kgc3VyIHVuZSBwYWdlXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJUZW1wcyBtYXhpbXVtIHBvdXIgZmluaXIgbGEgcGFnZVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIkFmZmljaGVyIGxlIHBhbm5lYXUgY2hyb25vbcOodHJlXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIk1vZGUgZCdhZmZpY2hhZ2UgZHUgcGFubmVhdSBjaHJvbm9tw6h0cmVcIixcbiAgICBpbmRlbnQ6IFwiSW5kZW50YXRpb25cIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIlRvdXRlcyBsZXMgbGlnbmVzIHNvbnQtZWxsZSBvYmxpZ2F0b2lyZXMgP1wiLFxuICAgIGxvY2FsZTogXCJMYW5ndWVcIixcbiAgfSxcbn07XG5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZnJcIl0gPSBmcmVuY2hUcmFuc2xhdGlvbjtcbiIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxudmFyIGdlcm1hblRyYW5zbGF0aW9uID0ge1xuICAvL3N1cnZleSB0ZW1wbGF0ZXNcbiAgc3VydmV5OiB7XG4gICAgZWRpdDogXCJCZWFyYmVpdGVuXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCJTY2hhdWVuIFNpZSBzaWNoIGFuLCB3aWUgU2llIFVtZnJhZ2VuIGVyc3RlbGxlbiBrw7ZubmVuXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDpcbiAgICAgIFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0gycnU5b2tJY29vTlpmcElieXE0cVE/dmlld19hcz1zdWJzY3JpYmVyXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIkZyYWdlIGJpdHRlIGhpZXIgcGxhdHppZXJlbi5cIixcbiAgICBhZGRMb2dpY0l0ZW06IFwiRWluZSBSZWdlbCBlcnN0ZWxsZW4sIHVtIGRlbiBGbHVzcyBkZXIgVW1mcmFnZSBhbnp1cGFzc2VuLlwiLFxuICAgIGNvcHk6IFwiS29waWVyZW5cIixcbiAgICBhZGRUb1Rvb2xib3g6IFwiWnVyIFdlcmt6ZXVnbGVpc3RlIGhpbnp1ZsO8Z2VuXCIsXG4gICAgZGVsZXRlUGFuZWw6IFwiUGFuZWwgbMO2c2NoZW5cIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCJGcmFnZSBsw7ZzY2hlblwiLFxuICAgIGNvbnZlcnRUbzogXCJLb252ZXJ0aWVyZW4genVcIixcbiAgICBkcmFnOiBcIkVsZW1lbnQgemllaGVuXCIsXG4gIH0sXG4gIC8vcXVlc3Rpb25UeXBlc1xuICBxdDoge1xuICAgIGRlZmF1bHQ6IFwiU3RhbmRhcmRcIixcbiAgICBjaGVja2JveDogXCJBdXN3YWhsXCIsXG4gICAgY29tbWVudDogXCJLb21tZW50YXJcIixcbiAgICBpbWFnZXBpY2tlcjogXCJCaWxkYXVzd2FobFwiLFxuICAgIGltYWdlOiBcIkJpbGRcIixcbiAgICBkcm9wZG93bjogXCJEcm9wZG93blwiLFxuICAgIGZpbGU6IFwiRGF0ZWlcIixcbiAgICBodG1sOiBcIkhUTUxcIixcbiAgICBtYXRyaXg6IFwiTWF0cml4IChlaW5mYWNoZSBBdXN3YWhsKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIk1hdHJpeCAobWVocmZhY2hlIEF1c3dhaGwpXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCJNYXRyaXggKGR5bmFtaXNjaGUgWmVpbGVuKVwiLFxuICAgIG11bHRpcGxldGV4dDogXCJUZXh0IChtZWhyemVpbGlnKVwiLFxuICAgIHBhbmVsOiBcIlBhbmVsXCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIlBhbmVsIChkeW5hbWlzY2gpXCIsXG4gICAgcmFkaW9ncm91cDogXCJPcHRpb25cIixcbiAgICByYXRpbmc6IFwiQmV3ZXJ0dW5nXCIsXG4gICAgdGV4dDogXCJUZXh0XCIsXG4gICAgYm9vbGVhbjogXCJXYWhyaGVpdHN3ZXJ0XCIsXG4gICAgZXhwcmVzc2lvbjogXCJBdXNkcnVjayAoc2NocmVpYmdlc2Now7x0enQpXCIsXG4gICAgc2lnbmF0dXJlcGFkOiBcIlVudGVyc2NocmlmdFwiLFxuICAgIGZsb3dwYW5lbDogXCJQYW5lbCAoZmxpZcOfZW5kKVwiLFxuICB9LFxuICAvL1N0cmluZ3MgaW4gRWRpdG9yXG4gIGVkOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCJTdGFuZGFyZCAoezB9KVwiLFxuICAgIHN1cnZleTogXCJVbWZyYWdlXCIsXG4gICAgc2V0dGluZ3M6IFwiVW1mcmFnZWVpbnN0ZWxsdW5nZW5cIixcbiAgICBzZXR0aW5nc1Rvb2x0aXA6IFwiVW1mcmFnZWVpbnN0ZWxsdW5nZW4gw7ZmZm5lblwiLFxuICAgIG9wamVjdFByb3BlcnRpZXNIZWFkZXI6IFwiRXJ3ZWl0ZXJ0XCIsXG4gICAgc2hvd09iamVjdFByb3BlcnRpZXM6IFwiT2JqZWt0ZWlnZW5zY2hhZnRlbiBhbnplaWdlblwiLFxuICAgIGhpZGVPYmplY3RQcm9wZXJ0aWVzOiBcIk9iamVrdGVpZ2Vuc2NoYWZ0ZW4gdmVyc3RlY2tlblwiLFxuICAgIHNob3dQYW5lbDogXCJQYW5lbCBhbnplaWdlblwiLFxuICAgIGhpZGVQYW5lbDogXCJQYW5lbCB2ZXJzdGVja2VuXCIsXG4gICAgZWRpdFN1cnZleTogXCJVbWZyYWdlIGJlYXJiZWl0ZW5cIixcbiAgICBhZGROZXdQYWdlOiBcIk5ldWUgU2VpdGUgaGluenVmw7xnZW5cIixcbiAgICBtb3ZlUmlnaHQ6IFwiTmFjaCByZWNodHMgc2Nyb2xsZW5cIixcbiAgICBtb3ZlTGVmdDogXCJOYWNoIGxpbmtzIHNjcm9sbGVuXCIsXG4gICAgZGVsZXRlUGFnZTogXCJTZWl0ZSBsw7ZzY2hlblwiLFxuICAgIGVkaXRQYWdlOiBcIlNlaXRlIGJlYXJiZWl0ZW5cIixcbiAgICBlZGl0OiBcIkJlYXJiZWl0ZW5cIixcbiAgICBuZXdQYWdlTmFtZTogXCJTZWl0ZVwiLFxuICAgIG5ld1F1ZXN0aW9uTmFtZTogXCJGcmFnZVwiLFxuICAgIG5ld1BhbmVsTmFtZTogXCJQYW5lbFwiLFxuICAgIG5ld1RleHRJdGVtTmFtZTogXCJUZXh0XCIsXG4gICAgdGVzdFN1cnZleTogXCJVbWZyYWdlIHRlc3RlblwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJUZXN0dW1mcmFnZSB3aWVkZXJob2xlblwiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCJVbWZyYWdlYnJlaXRlOiBcIixcbiAgICBuYXZpZ2F0ZVRvTXNnOiBcIlNpZSB3ZXJkZW4gd2VpdGVyZ2VsZWl0ZXQ6IFwiLFxuICAgIGxvZ2ljOiBcIlVtZnJhZ2Vsb2dpa1wiLFxuICAgIGVtYmVkU3VydmV5OiBcIlVtZnJhZ2UgZWluZsO8Z2VuXCIsXG4gICAgdHJhbnNsYXRpb246IFwiw5xiZXJzZXR6dW5nZW5cIixcbiAgICBzYXZlU3VydmV5OiBcIlVtZnJhZ2Ugc3BlaWNoZXJuXCIsXG4gICAgc2F2ZVN1cnZleVRvb2x0aXA6IFwiVW1mcmFnZSBzcGVpY2hlcm5cIixcbiAgICBkZXNpZ25lcjogXCJVbWZyYWdlIGVudHdlcmZlblwiLFxuICAgIGpzb25FZGl0b3I6IFwiSlNPTlwiLFxuICAgIHVuZG86IFwiUsO8Y2tnw6RuZ2lnXCIsXG4gICAgcmVkbzogXCJXaWVkZXJoZXJzdGVsbGVuXCIsXG4gICAgdW5kb1Rvb2x0aXA6IFwiTGV0enRlIMOEbmRlcnVuZyByw7xja2fDpG5naWcgbWFjaGVuXCIsXG4gICAgcmVkb1Rvb2x0aXA6IFwiTGV0enRlIMOEbmRlcnVuZyB3aWVkZXJoZXJzdGVsbGVuXCIsXG4gICAgY29weTogXCJLb3BpZXJlblwiLFxuICAgIGN1dDogXCJBdXNzY2huZWlkZW5cIixcbiAgICBwYXN0ZTogXCJFaW5mw7xnZW5cIixcbiAgICBjb3B5VG9vbHRpcDogXCJBdXN3YWhsIGluIGRpZSBad2lzY2hlbmFibGFnZSBrb3BpZXJlblwiLFxuICAgIGN1dFRvb2x0aXA6IFwiQXVzd2FobCBhdXNzY2huZWlkZW5cIixcbiAgICBwYXN0ZVRvb2x0aXA6IFwiQXVzIGRlciBad2lzY2hlbmFibGFnZSBlaW5mw7xnZW5cIixcbiAgICBvcHRpb25zOiBcIk9wdGlvbmVuXCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwiR2VuZXJpZXJlIGfDvGx0aWdlcyBKU09OXCIsXG4gICAgZ2VuZXJhdGVSZWFkYWJsZUpTT046IFwiR2VuZXJpZXJlIGxlc2JhcmVzIEpTT05cIixcbiAgICB0b29sYm94OiBcIldlcmt6ZXVnbGVpc3RlXCIsXG4gICAgXCJwcm9wZXJ0eS1ncmlkXCI6IFwiRWlnZW5zY2hhZnRlblwiLFxuICAgIHRvb2xib3hHZW5lcmFsQ2F0ZWdvcnk6IFwiQWxsZ2VtZWluXCIsXG4gICAgZGVsU2VsT2JqZWN0OiBcIkzDtnNjaGUgbWFya2llcnRlcyBPYmpla3RcIixcbiAgICBlZGl0U2VsT2JqZWN0OiBcIkJlYXJiZWl0ZSBtYXJraWVydGVzIE9iamVrdFwiLFxuICAgIGNvcnJlY3RKU09OOiBcIkJpdHRlIEpTT04ga29ycmlnaWVyZW4uXCIsXG4gICAgc3VydmV5UmVzdWx0czogXCJVbWZyYWdlZXJnZWJuaXM6IFwiLFxuICAgIHN1cnZleVJlc3VsdHNUYWJsZTogXCJBbHMgVGFiZWxsZVwiLFxuICAgIHN1cnZleVJlc3VsdHNKc29uOiBcIkFscyBKU09OXCIsXG4gICAgcmVzdWx0c1RpdGxlOiBcIlRpdGVsIGRlciBGcmFnZVwiLFxuICAgIHJlc3VsdHNOYW1lOiBcIk5hbWUgZGVyIEZyYWdlXCIsXG4gICAgcmVzdWx0c1ZhbHVlOiBcIldlcnQgZGVyIEFudHdvcnRcIixcbiAgICByZXN1bHRzRGlzcGxheVZhbHVlOiBcIkFuemVpZ2V3ZXJ0XCIsXG4gICAgbW9kaWZpZWQ6IFwiTW9kaWZpemllcnRcIixcbiAgICBzYXZpbmc6IFwiU3BlaWNoZXJuXCIsXG4gICAgc2F2ZWQ6IFwiR2VzcGVpY2hlcnRcIixcbiAgICBwcm9wZXJ0eUVkaXRvckVycm9yOiBcIkZlaGxlcjpcIixcbiAgICBzYXZlRXJyb3I6IFwiRmVobGVyISBEZXIgSW5oYWx0IGRlcyBFZGl0b3JzIHd1cmRlIG5pY2h0IGdlc3BlaWNoZXJ0LlwiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwiV8OkaGxlbiBTaWUgZWluZSBTcHJhY2hlIGF1c1wiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwiQWxsZSBUZXh0ZSBhbnplaWdlblwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcIkFsbGUgU2VpdGVuIGFuemVpZ2VuXCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6XG4gICAgICBcIktlaW5lIFRleHRlIHp1bSDDnGJlcnNldHplbi4gQml0dGUgZGVuIEZpbHRlciBhbnBhc3Nlbi5cIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcIkV4cG9ydCAoQ1NWKVwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJJbXBvcnQgKENTVilcIixcbiAgICB0cmFuc2xhdGlvbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQ6XG4gICAgICBcIlZlcnNjaG1lbHplIHswfSBtaXQgZGVyIFN0YW5kYXJkc3ByYWNoZVwiLFxuICAgIGJvbGQ6IFwiRmV0dFwiLFxuICAgIGl0YWxpYzogXCJLdXJzaXZcIixcbiAgICB1bmRlcmxpbmU6IFwiVW50ZXJzdHJpY2hlblwiLFxuICAgIGZwQWRkUXVlc3Rpb246IFwiRnJhZ2UgaGluenVmw7xnZW4gLi4uXCIsXG4gICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHQ6IFwiWmVpZ2Ugd2VubjpcIixcbiAgfSxcbiAgbGc6IHtcbiAgICAvL0xvZ2ljIHRhYiBzdHJpbmdzXG4gICAgZ2VfdmlzaWJpbGl0eU5hbWU6IFwiU2VpdGVuc2ljaHRiYXJrZWl0XCIsXG4gICAgcGFuZWxfdmlzaWJpbGl0eU5hbWU6IFwiUGFuZWxzaWNodGJhcmtlaXRcIixcbiAgICBwYW5lbF9lbmFibGVOYW1lOiBcIlBhbmVsIGFrdGl2aWVyZW4vZGVha3RpdmllcmVuXCIsXG4gICAgcXVlc3Rpb25fdmlzaWJpbGl0eU5hbWU6IFwiRnJhZ2Vuc2ljaHRiYXJrZWl0XCIsXG4gICAgcXVlc3Rpb25fZW5hYmxlTmFtZTogXCJGcmFnZSBha3RpdmllcmVuL2RlYWt0aXZpZXJlblwiLFxuICAgIHF1ZXN0aW9uX3JlcXVpcmVOYW1lOiBcIkZyYWdlIG9wdGlvbmFsL2VyZm9yZGVybGljaFwiLFxuICAgIHRyaWdnZXJfY29tcGxldGVOYW1lOiBcIlVtZnJhZ2UgYWJzY2hsaWXDn2VuXCIsXG4gICAgdHJpZ2dlcl9zZXR2YWx1ZU5hbWU6IFwiU2V0emUgRnJhZ2Vud2VydFwiLFxuICAgIHRyaWdnZXJfY29weXZhbHVlTmFtZTogXCJLb3BpZXJlIEZyYWdlbndlcnRcIixcbiAgICB0cmlnZ2VyX3NraXBOYW1lOiBcIkdlaGUgenVyIG7DpGNoc3RlbiBGcmFnZVwiLFxuICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbk5hbWU6IFwiQmVudXR6ZXJkZWZpbmllcnRlbiBBdXNkcnVjayBhdXNmw7xocmVuXCIsXG4gICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uTmFtZTpcbiAgICAgIFwiQmVudXR6ZXJkZWZpbmllcnRlIFNlaXRlIG5hY2ggQWJzY2hsdXNzIGRlciBVbWZyYWdlXCIsXG5cbiAgICBwYWdlX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgIFwiTWFjaGUgZGllIFNlaXRlIHNpY2h0YmFyLCB3ZW5uIGRlciBsb2dpc2NoZSBBdXNkcnVjayB3YWhyIGVyZ2lidC4gQW5kZXJuZmFsbHMgbGFzcyBzaWUgdW5zaWNodGJhci5cIixcbiAgICBwYW5lbF92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICBcIk1hY2hlIGRhcyBQYW5lbCBzaWNodGJhciwgd2VubiBkZXIgbG9naXNjaGUgQXVzZHJ1Y2sgd2FociBlcmdpYnQuIEFuZGVybmZhbGxzIGxhc3MgZXMgdW5zaWNodGJhci5cIixcbiAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgIFwiQWt0aXZpZXJlIGRhcyBQYW5lbCB6dXNhbW1lbiBtaXQgYWxsIHNlaW5lbiBFbGVtZW50ZW4sIHdlbm4gZGVyIGxvZ2lzY2hlIEF1c2RydWNrIHdhaHIgZXJnaWJ0LiBBbmRlcm5mYWxscyBsYXNzIHNpZSBkZWFrdGl2aWVydC5cIixcbiAgICBxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICBcIk1hY2hlIGRpZSBGcmFnZSBzaWNodGJhciwgd2VubiBkZXIgbG9naXNjaGUgQXVzZHJ1Y2sgd2FociBlcmdpYnQuIEFuZGVybmZhbGxzIGxhc3Mgc2llIHVuc2ljaHRiYXIuXCIsXG4gICAgcXVlc3Rpb25fZW5hYmxlRGVzY3JpcHRpb246XG4gICAgICBcIkFrdGl2aWVyZSBkaWUgRnJhZ2UsIHdlbm4gZGVyIGxvZ2lzY2hlIEF1c2RydWNrIHdhaHIgZXJnaWJ0LiBBbmRlcm5mYWxscyBsYXNzIHNpZSBkZWFrdGl2aWVydC5cIixcbiAgICBxdWVzdGlvbl9yZXF1aXJlRGVzY3JpcHRpb246XG4gICAgICBcIkZyYWdlIHdpcmQgZXJmb3JkZXJsaWNoLCB3ZW5uIGRlciBsb2dpc2NoZSBBdXNkcnVjayB3YWhyIGVyZ2lidC5cIixcbiAgICB0cmlnZ2VyX2NvbXBsZXRlRGVzY3JpcHRpb246XG4gICAgICBcIldlbm4gZGVyIGxvZ2lzY2hlIEF1c2RydWNrIHdhaHIgZXJnaWJ0LCB3aXIgZGllIFVtZnJhZ2UgYWJnZXNjaGxvc3NlbiB1bmQgZGVyIEJlbnV0emVyIHNpZWh0IGRpZSBBYnNjaGx1c3NzZWl0ZSBkZXIgVW1mcmFnZS5cIixcbiAgICB0cmlnZ2VyX3NldHZhbHVlRGVzY3JpcHRpb246XG4gICAgICBcIldlbm4gV2VydGUsIGRpZSBpbSBsb2dpc2NoZW4gQXVzZHJ1Y2sgdmVyd2VuZGV0IHdlcmRlbiwgZ2XDpG5kZXJ0IHdlcmRlbiB1bmQgZGVyIGxvZ2lzY2hlIEF1c2RydWNrIHdhaHIgZXJnaWJ0LCBkYW5uIHdpcmQgZGVyIFdlcnQgaW4gZGllIGF1c2dld8OkaGx0ZSBGcmFnZSBlaW5nZXNldHp0LlwiLFxuICAgIHRyaWdnZXJfY29weXZhbHVlRGVzY3JpcHRpb246XG4gICAgICBcIldlbm4gV2VydGUsIGRpZSBpbSBsb2dpc2NoZW4gQXVzZHJ1Y2sgdmVyd2VuZGV0IHdlcmRlbiwgZ2XDpG5kZXJ0IHdlcmRlbiB1bmQgZGVyIGxvZ2lzY2hlIEF1c2RydWNrIHdhaHIgZXJnaWJ0LCBkYW5uIHdpcmQgZGVyIFdlcnQgZWluZXIgYXVzZ2V3w6RobHRlIEZyYWdlbiBrb3BpZXJ0IHVuZCBpbiBlaW5lIGFuZGVyZSBhdXNnZXfDpGhsdGUgRnJhZ2UgZWluZ2VzZXR6dC5cIixcbiAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjpcbiAgICAgIFwiV2VubiBkZXIgbG9naXNjaGUgQXVzZHJ1Y2sgd2FociBlcmdpYnQsIHNwcmluZ3QgZGllIFVtZnJhZ2UgenVyIGF1c2dld8OkaGx0ZW4gRnJhZ2UuXCIsXG4gICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uRGVzY3JpcHRpb246XG4gICAgICBcIldlbm4gZGVyIGxvZ2lzY2hlIEF1c2RydWNrIHdhaHIgZXJnaWJ0LCB3aXJkIGRpZSBiZW51dHplcmRlZmluaWVydGUgQW53ZWlzdW5nIGF1c2dlZsO8aHJ0LiBTaWUga8O2bm5lbiBvcHRpb25hbCBkYXMgRXJnZWJuaXMgZGVyIEFud2Vpc3VuZyBpbiBkaWUgYXVzZ2V3w6RobHRlIEZyYWdlIGVpbnNldHplbi5cIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25EZXNjcmlwdGlvbjpcbiAgICAgIFwiV2VubiBkZXIgbG9naXNjaGUgQXVzZHJ1Y2sgd2FociBlcmdpYnQsIGRhbm4gd2lyZCBkZXIgU3RhbmRhcmR0ZXh0IGRlciBBYnNjaGx1c3NzZWl0ZSBkZXIgVW1mcmFnZSBtaXQgZGVtIGdlZ2ViZW5lbiBUZXh0IGVyc2V0enQuXCIsXG5cbiAgICBpdGVtRXhwcmVzc2lvblRleHQ6IFwiV2VubiBkZXIgQXVzZHJ1Y2sgJ3swfScgd2FociBlcmdpYnQ6XCIsIC8vIHswfSAtIHRoZSBleHByZXNzaW9uXG4gICAgcGFnZV92aXNpYmlsaXR5VGV4dDogXCJNYWNoZSBkaWUgU2VpdGUgezB9IHNpY2h0YmFyXCIsIC8vIHswfSBwYWdlIG5hbWVcbiAgICBwYW5lbF92aXNpYmlsaXR5VGV4dDogXCJNYWNoZSBkYXMgUGFuZWwgezB9IHNpY2h0YmFyXCIsIC8vIHswfSBwYW5lbCBuYW1lXG4gICAgcGFuZWxfZW5hYmxlVGV4dDogXCJBa3RpdmllcmUgZGFzIFBhbmVsIHswfVwiLCAvLyB7MH0gcGFuZWwgbmFtZVxuICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlUZXh0OiBcIk1hY2hlIGRpZSBGcmFnZSB7MH0gc2ljaHRiYXJcIiwgLy8gezB9IHF1ZXN0aW9uIG5hbWVcbiAgICBxdWVzdGlvbl9lbmFibGVUZXh0OiBcIkFrdGl2aWVyZSBkaWUgRnJhZ2UgezB9XCIsIC8vIHswfSBxdWVzdGlvbiBuYW1lXG4gICAgcXVlc3Rpb25fcmVxdWlyZVRleHQ6IFwiTWFjaGUgZGllIEZyYWdlIHswfSBlcmZvcmRlcmxpY2hcIiwgLy8gezB9IHF1ZXN0aW9uIG5hbWVcbiAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCJVbWZyYWdlIGFic2NobGllw59lblwiLFxuICAgIHRyaWdnZXJfc2V0dmFsdWVUZXh0OiBcIlNldHplIGluIEZyYWdlIHswfSBkZW4gV2VydCB7MX0gZWluXCIsIC8vIHswfSBxdWVzdGlvbiBuYW1lLCB7MX0gc2V0VmFsdWVcbiAgICB0cmlnZ2VyX2NvcHl2YWx1ZVRleHQ6IFwiS29waWVyZSBpbiBGcmFnZSB7MH0gZGVuIFdlcnQgdm9uIEZyYWdlIHsxfVwiLCAvLyB7MH0gYW5kIHsxfSBxdWVzdGlvbiBuYW1lc1xuICAgIHRyaWdnZXJfc2tpcFRleHQ6IFwiR2VoZSB6dSBGcmFnZSB7MH1cIiwgLy8gezB9IHF1ZXN0aW9uIG5hbWVcbiAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MTogXCJGw7xocmUgZm9sZ2VuZGVuIEF1c2RydWNrIGF1czogJ3swfSdcIiwgLy8gezB9IHRoZSBleHByZXNzaW9uXG4gICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDI6IFwiIHVuZCBzZXR6ZSBkYXMgRXJnZWJuaXMgaW4gRnJhZ2UgezB9IGVpblwiLCAvLyB7MH0gcXVlc3Rpb24gbmFtZVxuICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvblRleHQ6XG4gICAgICBcIlplaWdlbiBTaWUgZWluZW4gYmVudXR6ZXJkZWZpbmllcnRlbiBUZXh0IGF1ZiBkZXIgQWJzY2hsdXNzc2VpdGUgZGVyIFVtZnJhZ2UgYW4uXCIsXG5cbiAgICBjb25kaXRpb25zOiBcIkJlZGluZ3VuZ2VuXCIsXG4gICAgYWN0aW9uczogXCJBa3Rpb25lblwiLFxuICAgIGV4cHJlc3Npb25FZGl0b3JUaXRsZTogXCJEZWZpbmllcmUgQmVkaW5ndW5nZW5cIixcbiAgICBhY3Rpb25zRWRpdG9yVGl0bGU6IFwiRGVmaW5pZXJlIEFrdGlvbmVuXCIsXG5cbiAgICBkZWxldGVBY3Rpb246IFwiQWt0aW9uIGzDtnNjaGVuXCIsXG4gICAgYWRkTmV3QWN0aW9uOiBcIkFrdGlvbiBoaW56dWbDvGdlblwiLFxuICAgIHNlbGVjdGVkQWN0aW9uQ2FwdGlvbjogXCJBa3Rpb24genVtIEhpbnp1ZsO8Z2VuIGF1c3fDpGhsZW4gLi4uXCIsXG5cbiAgICBleHByZXNzaW9uSW52YWxpZDpcbiAgICAgIFwiRGVyIGxvZ2lzY2hlIEF1c2RydWNrIGlzdCBsZWVyIG9kZXIgdW5nw7xsdGlnLiBCaXR0ZSBrb3JyaWdpZXJlbiBTaWUgaWhuLlwiLFxuICAgIG5vQWN0aW9uRXJyb3I6IFwiQml0dGUgZsO8Z2VuIFNpZSBtaW5kZXN0ZW5zIGVpbmUgQWt0aW9uIGhpbnp1LlwiLFxuICAgIGFjdGlvbkludmFsaWQ6XG4gICAgICBcIkJpdHRlIGJlaGViZW4gU2llIGRpZSBiZXN0ZWhlbmRlbiBQcm9ibGVtZSBpbiBJaHJlbiBBa3Rpb25lbi5cIixcbiAgICBleHByZXNzaW9uU2V0dXA6IFwiXCIsXG4gICAgYWN0aW9uc1NldHVwOiBcIlwiLFxuICB9LFxuICAvL1Byb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgcGVsOiB7XG4gICAgaXNSZXF1aXJlZDogXCJFcmZvcmRlcmxpY2g/XCIsXG4gIH0sXG4gIC8vUHJvcGVydHkgRWRpdG9yc1xuICBwZToge1xuICAgIGFwcGx5OiBcIkFud2VuZGVuXCIsXG4gICAgb2s6IFwiT0tcIixcbiAgICBzYXZlOiBcIlNwZWljaGVyblwiLFxuICAgIHNhdmVUb29sdGlwOiBcIlNwZWljaGVyblwiLFxuICAgIGNhbmNlbDogXCJBYmJyZWNoZW5cIixcbiAgICByZXNldDogXCJadXLDvGNrc2V0emVuXCIsXG4gICAgcmVmcmVzaDogXCJOZXUgbGFkZW5cIixcbiAgICBjbG9zZTogXCJTY2hsaWVzc2VuXCIsXG4gICAgZGVsZXRlOiBcIkzDtnNjaGVuXCIsXG4gICAgYWRkOiBcIkhpbnp1ZsO8Z2VuXCIsXG4gICAgYWRkTmV3OiBcIk5ldWVzIEVsZW1lbnQgaGluenVmw7xnZW5cIixcbiAgICBhZGRJdGVtOiBcIktsaWNrZW4sIHVtIGVpbiBFbGVtZW50IGhpbnp1enVmw7xnZW4gLi4uXCIsXG4gICAgYWRkT3RoZXI6IFwiV2VpdGVyZXMgRWxlbWVudFwiLFxuICAgIGFkZFNlbGVjdEFsbDogXCJBbGxlIEVsZW1lbnRlIGF1c3fDpGhsZW4gaGluenVmw7xnZW5cIixcbiAgICBhZGROb25lOiBcIkFsbGUgRWxlbWVudGUgYWJ3w6RobGVuIGhpbnp1ZsO8Z2VuXCIsXG4gICAgcmVtb3ZlQWxsOiBcIkFsbGUgbMO2c2NoZW5cIixcbiAgICBlZGl0OiBcIkJlYXJiZWl0ZW5cIixcbiAgICBiYWNrOiBcIlp1csO8Y2sgb2huZSB6dSBzcGVpY2hlcm5cIixcbiAgICBiYWNrVG9vbHRpcDogXCJadXLDvGNrIG9obmUgenUgc3BlaWNoZXJuXCIsXG4gICAgc2F2ZUFuZEJhY2s6IFwiU3BlaWNoZXJuIHVuZCB6dXLDvGNrXCIsXG4gICAgc2F2ZUFuZEJhY2tUb29sdGlwOiBcIlNwZWljaGVybiB1bmQgenVyw7xja1wiLFxuICAgIGl0ZW1WYWx1ZUVkaXQ6IFwiU2ljaHRiYXIgd2VublwiLFxuICAgIGVkaXRDaG9pY2VzOiBcIkF1c3dhaGxtw7ZnbGljaGtlaXRlbiBiZWFyYmVpdGVuXCIsXG4gICAgc2hvd0Nob2ljZXM6IFwiQXVzd2FobG3DtmdsaWNoa2VpdGVuIGFuemVpZ2VuXCIsXG4gICAgbW92ZTogXCJWZXJzY2hpZWJlblwiLFxuICAgIGVtcHR5OiBcIjxsZWVyPlwiLFxuICAgIG5vdEVtcHR5OiBcIjxiZWFyYmVpdGVuPlwiLFxuICAgIGZhc3RFbnRyeTogXCJTY2huZWxsZWludHJhZ1wiLFxuICAgIGZvcm1FbnRyeTogXCJGb3JtdWxhcmVpbnRyYWdcIixcbiAgICB0ZXN0U2VydmljZTogXCJTZXJ2aWNlIHRlc3RlblwiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcIkJpdHRlIGVpbiBFbGVtZW50IGF1c3fDpGhsZW5cIixcbiAgICBjb25kaXRpb25BY3Rpb25FbXB0eTogXCJCaXR0ZSBlaW5lIEFrdGlvbiBhdXN3w6RobGVuXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UXVlc3Rpb246IFwiRnJhZ2UgYXVzd8OkaGxlbiAuLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYWdlOiBcIlNlaXRlIGF1c3fDpGhsZW4gLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFuZWw6IFwiUGFuZWwgYXVzd8OkaGxlbiAuLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwiQml0dGUgZGVuIFdlcnQgZWluZ2ViZW4gb2RlciBhdXN3w6RobGVuXCIsXG4gICAgY29uZGl0aW9uSGVscDpcbiAgICAgIFwiQml0dGUgZ2ViZW4gU2llIGVpbmVuIGJvb2xlc2NoZW4gQXVzZHJ1Y2sgZWluLiBEaWVzZXIgbXVzcyAndHJ1ZScgenVyw7xja2dlYmVuLCB1bSBkaWUgRnJhZ2UvU2VpdGUgYW56dXplaWdlbi4gQmVpc3BpZWw6IHtxdWVzdGlvbjF9ID0gJ3ZhbHVlMScgb3IgKHtxdWVzdGlvbjJ9ICoge3F1ZXN0aW9uNH0gID4gMjAgYW5kIHtxdWVzdGlvbjN9IDwgNSlcIixcbiAgICBleHByZXNzaW9uSGVscDpcbiAgICAgICdCaXR0ZSBnZWJlbiBTaWUgZWluZSBBbndlaXN1bmcgZWluLiBTaWUga8O2bm5lbiBnZXNjaHdlaWZ0ZSBLbGFtbWVybiB2ZXJ3ZW5kZW4sIHVtIFp1Z3JpZmYgYXVmIGRpZSBXZXJ0ZSBkZXIgRnJhZ2VuIHp1IGJla29tbWVuOiBcIntxdWVzdGlvbjF9ICsge3F1ZXN0aW9uMn1cIiwgXCIoe3ByaWNlfSAqIHtxdWFudGl0eX0pICogKDEwMCAtIHtkaXNjb3VudH0pXCInLFxuICAgIGFjZUVkaXRvckhlbHA6XG4gICAgICBcIkJpdHRlIGRyw7xja2VuIFNpZSBTdHJnK0xlZXJ0YXN0ZSwgdW0gVmVydm9sbHN0w6RuZGlndW5nc3ZvcnNjaGzDpGdlIGbDvHIgZGVuIEF1c2RydWNrIHp1IGVyaGFsdGVuXCIsXG4gICAgYWNlRWRpdG9yUm93VGl0bGU6IFwiQWt0dWVsbGUgWmVpbGVcIixcbiAgICBhY2VFZGl0b3JQYW5lbFRpdGxlOiBcIkFrdHVlbGxlcyBQYW5lbFwiLFxuICAgIHNob3dNb3JlOiBcIldlaXRlcmUgSW5mb3JtYXRpb25lbiBmaW5kZW4gU2llIGluIGRlciBEb2t1bWVudGF0aW9uXCIsXG4gICAgY29uZGl0aW9uU2hvd01vcmVVcmw6XG4gICAgICBcImh0dHBzOi8vc3VydmV5anMuaW8vRG9jdW1lbnRhdGlvbi9MaWJyYXJ5UGFyYW1ldGVyP2lkPVF1ZXN0aW9uQmFzZSZwYXJhbWV0ZXI9dmlzaWJsZUlmXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwiVmVyZsO8Z2JhcmUgRnJhZ2VuOlwiLFxuICAgIGNlbGxzRW1wdHlSb3dzQ29sdW1uczogXCJFcyBzb2xsdGUgbWluZGVzdGVucyBlaW5lIFNwYWx0ZSBvZGVyIFplaWxlIGdlYmVuXCIsXG5cbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwiQml0dGUgZ2ViZW4gU2llIGVpbmVuIFdlcnQgZWluXCIsXG4gICAgcHJvcGVydHlOYW1lSXNOb3RVbmlxdWU6IFwiQml0dGUgZ2ViZW4gU2llIGVpbmVuIGVpbmRldXRpZ2VuIFdlcnQgZWluXCIsXG4gICAgbGlzdElzRW1wdHk6IFwiTmV1ZXMgRWxlbWVudCBoaW56dWbDvGdlblwiLFxuICAgIGV4cHJlc3Npb25Jc0VtcHR5OiBcIkF1c2RydWNrIGlzdCBsZWVyXCIsXG4gICAgdmFsdWU6IFwiV2VydFwiLFxuICAgIHRleHQ6IFwiVGV4dFwiLFxuICAgIHJvd2lkOiBcIlplaWxlbi1JRFwiLFxuICAgIGltYWdlTGluazogXCJMaW5rIGF1ZiBkYXMgQmlsZFwiLFxuICAgIGNvbHVtbkVkaXQ6IFwiU3BhbHRlIGJlYXJiZWl0ZW46IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIkVsZW1lbnQgYmVhcmJlaXRlbjogezB9XCIsXG5cbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCJQZmFkXCIsXG4gICAgdmFsdWVOYW1lOiBcIk5hbWUgZGVyIEFudHdvcnRcIixcbiAgICB0aXRsZU5hbWU6IFwiTmFtZSBkZXMgVGl0ZWxzXCIsXG4gICAgdGl0bGVQbGFjZWhvbGRlcjogXCJUaXRlbCBlaW5nZWJlblwiLFxuICAgIHN1cnZleVRpdGxlUGxhY2Vob2xkZXI6IFwiVW1mcmFnZXRpdGVsIGhpZXIgZWluZ2ViZW5cIixcbiAgICBwYWdlVGl0bGVQbGFjZWhvbGRlcjogXCJTZWl0ZW5iZXNjaHJlaWJ1bmcgaGllciBlaW5nZWJlblwiLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiQmVzY2hyZWlidW5nIGVpbmdlYmVuXCIsXG4gICAgc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJVbWZyYWdlYmVzY2hyZWlidW5nIGVpbmdlYmVuXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiU2VpdGVuYmVzY2hyZWlidW5nIGVpbmdlYmVuXCIsXG5cbiAgICBzaG93T3RoZXJJdGVtOiBcIlNvbnN0aWdlcyBhdXN3w6RobGJhcj9cIixcbiAgICBvdGhlclRleHQ6IFwiVGV4dCBmw7xyIFNvbnN0aWdlc1wiLFxuICAgIG90aGVyUGxhY2VIb2xkZXI6IFwiUGxhdHpoYWx0ZXIgZsO8ciBTb25zdGlnZXNcIixcbiAgICBzaG93Q2xlYXJCdXR0b246IFwiQnV0dG9uIGFuemVpZ2VuLCBkZXIgZXMgZXJsYXVidCBkaWUgQXVzd2FobCB6dSBsZWVyZW5cIixcbiAgICBhbGxvd0VtcHR5UmVzcG9uc2U6IFwiS2VpbmUgQW50d29ydCBlcmxhdWJlblwiLFxuICAgIHNob3dOb25lSXRlbTogXCJBbGxlIEVsZW1lbnRlIGFid8OkaGxiYXI/XCIsXG4gICAgbm9uZVRleHQ6IFwiVGV4dCBmw7xyIGRpZSBBYndhaGwgYWxsZXIgRWxlbWVudGVcIixcbiAgICBoYXNTZWxlY3RBbGw6IFwiQWxsZSBFbGVtZW50ZSBhdXN3w6RobGJhcj9cIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIlRleHQgZsO8ciBkaWUgQXVzd2FobCBhbGxlciBFbGVtZW50ZVwiLFxuICAgIGNob2ljZXNNaW46IFwiTWluaW1hbGVyIFdlcnQgZsO8ciBhdXRvbWF0aXNjaCBlcnpldWd0ZSBFbGVtZW50ZVwiLFxuICAgIGNob2ljZXNNYXg6IFwiTWF4aW1hbGVyIFdlcnQgZsO8ciBhdXRvbWF0aXNjaCBlcnpldWd0ZSBFbGVtZW50ZVwiLFxuICAgIGNob2ljZXNTdGVwOiBcIlNjaHJpdHRncsO2w59lIGbDvHIgYXV0b21hdGlzY2ggZXJ6ZXVndGUgRWxlbWVudGVcIixcbiAgICBzaG93T3B0aW9uc0NhcHRpb246IFwiw5xiZXJzY2hyaWZ0IGRlciBBdXN3YWhsbcO2Z2xpY2hrZWl0ZW4gYW56ZWlnZW5cIixcbiAgICBuYW1lOiBcIk5hbWVcIixcbiAgICB0aXRsZTogXCJUaXRlbFwiLFxuICAgIGNlbGxUeXBlOiBcIlplbGxlbnR5cFwiLFxuICAgIGNvbENvdW50OiBcIlNwYWx0ZW5hbnphaGxcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiQXVzd2FobHJlaWhlbmZvbGdlXCIsXG4gICAgdmlzaWJsZTogXCJTaWNodGJhcj9cIixcbiAgICBpc1JlcXVpcmVkOiBcIkVyZm9yZGVybGljaD9cIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIklzdCBlaW5lIEFudHdvcnQgZsO8ciBhbGxlIFplaWxlbiBlcmZvcmRlcmxpY2g/XCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6XG4gICAgICBcIkZlaGxlcm1lbGR1bmcgYmVpIG5pY2h0IGJlYW50d29ydGV0ZW4gZXJmb3JkZXJsaWNoZW4gRnJhZ2VuXCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCJJbiBuZXVlciBaZWlsZSBiZWdpbm5lbj9cIixcbiAgICByb3dzOiBcIlplaWxlbmFuemFobFwiLFxuICAgIGNvbHM6IFwiU3BhbHRlbmFuemFobFwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIlBsYXR6aGFsdGVyXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwiV2lyZCBlaW5lIEJpbGR2b3JzY2hhdSBhbmdlemVpZ3Q/XCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIlNwZWljaGVyIERhdGVpbmluaGFsdCBkZXMgSlNPTi1SZXN1bHRhdHMgYWxzIFRleHRcIixcbiAgICBtYXhTaXplOiBcIk1heGltYWxlIERhdGVpZ3LDtsOfZSBpbiBCeXRlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkJpbGRow7ZoZVwiLFxuICAgIGltYWdlV2lkdGg6IFwiQmlsZGJyZWl0ZVwiLFxuICAgIHJvd0NvdW50OiBcIlplaWxlbmFuemFobFwiLFxuICAgIGNvbHVtbkxheW91dDogXCJTcGFsdGVubGF5b3V0XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiWmVpbGVua25vcGZwb3NpdGlvbiBoaW56dWbDvGdlblwiLFxuICAgIGFkZFJvd1RleHQ6IFwiWmVpbGVua25vcGZ0ZXh0IGhpbnp1ZsO8Z2VuXCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJaZWlsZW5rbm9wZnRleHQgbMO2c2NoZW5cIixcbiAgICByYXRlTWluOiBcIk1pbmltYWxcIixcbiAgICByYXRlTWF4OiBcIk1heGltYWxcIixcbiAgICByYXRlU3RlcDogXCJCZXdlcnR1bmdzc2Nocml0dGVcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiQmV3ZXJ0dW5nc2Jlc2NocmVpYnVuZyBmw7xyIG1pbmltYWxlIEJld2VydHVuZ1wiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJCZXdlcnR1bmdzYmVzY2hyZWlidW5nIGbDvHIgbWF4aW1hbGUgQmV3ZXJ0dW5nXCIsXG4gICAgaW5wdXRUeXBlOiBcIkVpbmdhYmV0eXBcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJBdXN3YWhsYmVzY2hyaWZ0dW5nXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlN0YW5kYXJkYW50d29ydFwiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJTdGFuZGFyZHplbGxlbnRleHRcIixcblxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcIlVtZnJhZ2VlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW5cIixcbiAgICBxRWRpdG9yVGl0bGU6IFwiRnJhZ2UgYmVhcmJlaXRlbjogezB9XCIsXG5cbiAgICBtYXhMZW5ndGg6IFwiTWF4aW1hbGUgTMOkbmdlXCIsXG5cbiAgICBidWlsZEV4cHJlc3Npb246IFwiQmF1a2FzdGVuXCIsXG4gICAgZWRpdEV4cHJlc3Npb246IFwiQmVhcmJlaXRlblwiLFxuICAgIGFuZDogXCJ1bmRcIixcbiAgICBvcjogXCJvZGVyXCIsXG4gICAgcmVtb3ZlOiBcIkVudGZlcm5lblwiLFxuICAgIGFkZENvbmRpdGlvbjogXCJCZWRpbmd1bmcgaGluenVmw7xnZW5cIixcblxuICAgIHNob3dUaXRsZTogXCJUaXRlbCBhbnplaWdlblwiLFxuICAgIGxvY2FsZTogXCJTdGFuZGFyZHNwcmFjaGVcIixcbiAgICBzaW11bGF0b3I6IFwiR2Vyw6R0IGF1c3fDpGhsZW5cIixcbiAgICBsYW5kc2NhcGVPcmllbnRhdGlvbjogXCJRdWVyZm9ybWF0XCIsXG4gICAgbW9kZTogXCJNb2R1cyAoZWRpdGllcmJhci9zY2hyZWliZ2VzY2jDvHR6dClcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJBbGxlIHVuc2ljaHRiYXJlbiBXZXJ0ZSBsZWVyZW5cIixcbiAgICBjb29raWVOYW1lOlxuICAgICAgXCJDb29raWUtTmFtZSAodW0genUgdW50ZXJkcsO8Y2tlbiwgZGFzcyBkaWUgVW1mcmFnZSBsb2thbCB6d2VpIE1hbCBhdXNnZWbDvGxsdCB3ZXJkZW4ga2FubilcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDpcbiAgICAgIFwiU2VuZGUgVW1mcmFnZWVyZ2Vibmlzc2UgYmVpbSBCZXRyZXRlbiBkZXIgbsOkY2hzdGVuIFNlaXRlXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiU3BlaWNoZXJlIGFuZGVyZSBXZXJ0ZSBhbHMgS29tbWVudGFyXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiU2VpdGVuYmVzY2hyZWlidW5nIGFuemVpZ2VuXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIlNlaXRlbm51bW1lcm4gYW56ZWlnZW5cIixcbiAgICBwYWdlUHJldlRleHQ6IFwiVGV4dCBkZXMgQnV0dG9ucyBmw7xyIGRpZSB2b3JoZXJpZ2UgU2VpdGVcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiVGV4dCBkZXMgQnV0dG9ucyBmw7xyIGRpZSBuw6RjaHN0ZSBTZWl0ZVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJUZXh0IGRlcyBBYnNjaGxpZcOfZW5idXR0b25zXCIsXG4gICAgcHJldmlld1RleHQ6IFwiVGV4dCBkZXMgVm9yc2NoYXVidXR0b25zXCIsXG4gICAgZWRpdFRleHQ6IFwiVGV4dCBkZXMgQmVhcmJlaXRlbmJ1dHRvbnNcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiVGV4dCBkZXMgU3RhcnRidXR0b25zXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIkFuemVpZ2UgZGVyIE5hdmlnYXRpb25zYnV0dG9uc1wiLFxuICAgIHNob3dQcmV2QnV0dG9uOlxuICAgICAgXCJCdXR0b24gZsO8ciBkaWUgdm9yaGVyaWdlIFNlaXRlIGFuemVpZ2VuIChCZW51dHplciBrw7ZubmVuIGF1ZiBkaWUgdm9yaGVyaWdlIFNlaXRlIHp1csO8Y2trZWhyZW4pXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIkRpZSBlcnN0ZSBTZWl0ZSBkZXIgVW1mcmFnZSBpc3QgZGllIFN0YXJ0c2VpdGVcIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCJOYWNoIEFic2NobHVzcyBkaWUgYXVzZ2Vmw7xsbHRlIFVtZnJhZ2UgYW56ZWlnZW5cIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOlxuICAgICAgXCJXZW5uIGFsbGUgRnJhZ2VuIGF1ZiBlaW5lciBTZWl0ZSBiZWFudHdvcnRldCBzaW5kLCBnZWhlIGF1dG9tYXRpc2NoIHp1ciBuw6RjaHN0ZW4gU2VpdGVuXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIkZvcnRzY2hyaXR0c2JhbGtlbiBhbnplaWdlblwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJQb3NpdGlvbiBkZXMgRnJhZ2VudGl0ZWxzXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlN5bWJvbCBmw7xyIGVyZm9yZGVybGljaGUgRnJhZ2VuXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiAnU3RhcnRpbmRleCBkZXIgRnJhZ2VuIChic3B3LiBcIjFcIiwgXCJBXCIsIFwiYVwiLCAuLi4pJyxcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcIkZyYWdlbm51bW1lcm4gYW56ZWlnZW5cIixcbiAgICB0ZXh0VXBkYXRlTW9kZTogXCJUZXh0IGFrdHVhbGlzaWVyZW5cIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6XG4gICAgICAnVGVtcGxhdGUgZsO8ciBkZW4gRnJhZ2VudGl0ZWwuIFN0YW5kYXJkIGlzdDogXCJ7bm99LiB7cmVxdWlyZX0ge3RpdGxlfVwiJyxcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiUG9zaXRpb24gZGVyIEZlaGxlcm1lbGR1bmdlblwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzpcbiAgICAgIFwiRm9rdXNzaWVyZSBkaWUgZXJzdGUgRnJhZ2UsIHdlbm4gZGllIFNlaXRlIHZlcsOkbmRlcnQgd2lyZFwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIlJlaWhlbmZvbGdlIGRlciBFbGVtZW50ZSBhdWYgZGVyIFNlaXRlXCIsXG4gICAgbWF4VGV4dExlbmd0aDogXCJNYXhpbWFsZSBUZXh0bMOkbmdlXCIsXG4gICAgbWF4T3RoZXJMZW5ndGg6IFwiTWF4aW1hbGUgd2VpdGVyZSBMw6RuZ2VcIixcbiAgICBtYXhPdGhlcnNMZW5ndGg6IFwiTWF4aW1hbGUgd2VpdGVyZSBMw6RuZ2VcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiTWF4aW1hbGUgWmVpdCwgdW0gZGllIFVtZnJhZ2UgenUgYmVlbmRlblwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwiTWF4aW1hbGUgWmVpdCwgdW0gZWluZSBTZWl0ZSBkZXIgVW1mcmFnZSB6dSBiZWVuZGVuXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiUG9zaXRpb24gZGVzIFRpbWVyc1wiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJNb2R1cyBkZXMgVGltZXJzXCIsXG4gICAgcmVuZGVyTW9kZTogXCJBbnplaWdlbW9kdXNcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIkVybGF1YmUgZGFzIEhpbnp1ZsO8Z2VuIGVpbmVzIFBhbmVsdGV4dHNcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIkVybGF1YmUgZGFzIEVudGZlcm5lbiBlaW5lcyBQYW5lbHRleHRzXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIlBhbmVsdGV4dCBoaW56dWbDvGdlblwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJQYW5lbHRleHQgZW50ZmVybmVuXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIkFsbGUgRWxlbWVudGUgYXVmIGVpbmVyIFNlaXRlIGFuemVpZ2VuXCIsXG4gICAgaHRtbDogXCJIVE1MXCIsXG4gICAgZXhwcmVzc2lvbjogXCJBdXNkcnVja1wiLFxuXG4gICAgbWluVmFsdWU6IFwiTWluaW1hbGVyIFdlcnRcIixcbiAgICBtYXhWYWx1ZTogXCJNYXhpbWFsZXIgV2VydFwiLFxuICAgIG1pbkxlbmd0aDogXCJNaW5pbWFsZSBMw6RuZ2VcIixcbiAgICBhbGxvd0RpZ2l0czogXCJaaWZmZXJuIGVybGF1YnRcIixcbiAgICBtaW5Db3VudDogXCJNaW5pbWFsZSBBbnphaGxcIixcbiAgICBtYXhDb3VudDogXCJNYXhpbWFsZSBBbnphaGxcIixcbiAgICByZWdleDogXCJSZWd1bMOkcmVyIEF1c2RydWNrXCIsXG5cbiAgICB0b3RhbFRleHQ6IFwiVGV4dCAodG90YWwpXCIsXG4gICAgdG90YWxUeXBlOiBcIlR5cCAodG90YWwpXCIsXG4gICAgdG90YWxFeHByZXNzaW9uOiBcIkF1c2RydWNrICh0b3RhbClcIixcbiAgICB0b3RhbERpc3BsYXlTdHlsZTogXCJBbnplaWdlc3RpbCAodG90YWwpXCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCJXw6RocnVuZyAodG90YWwpXCIsXG4gICAgdG90YWxGb3JtYXQ6IFwiRm9ybWF0ICh0b3RhbClcIixcblxuICAgIGxvZ29Qb3NpdGlvbjogXCJMb2dvcG9zaXRpb25cIixcbiAgICBhZGRMb2dvOiBcIkxvZ28gaGluenVmw7xnZW4gLi4uXCIsXG4gICAgY2hhbmdlTG9nbzogXCJMb2dvIGJlYXJiZWl0ZW4gLi4uXCIsXG4gICAgbG9nb1Bvc2l0aW9uczoge1xuICAgICAgbm9uZTogXCJhdXNibGVuZGVuXCIsXG4gICAgICBsZWZ0OiBcImxpbmtzXCIsXG4gICAgICByaWdodDogXCJyZWNodHNcIixcbiAgICAgIHRvcDogXCJvYmVuXCIsXG4gICAgICBib3R0b206IFwidW50ZW5cIixcbiAgICB9LFxuXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCJBbGxnZW1laW5cIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIk9wdGlvbmVuXCIsXG4gICAgICBodG1sOiBcIkh0bWwgRWRpdG9yXCIsXG4gICAgICBjb2x1bW5zOiBcIlNwYWx0ZW5cIixcbiAgICAgIHJvd3M6IFwiWmVpbGVuXCIsXG4gICAgICBjaG9pY2VzOiBcIkF1c3dhaGxtw7ZnbGljaGtlaXRlblwiLFxuICAgICAgaXRlbXM6IFwiRWxlbWVudGVcIixcbiAgICAgIHZpc2libGVJZjogXCJTaWNodGJhciB3ZW5uIC4uLlwiLFxuICAgICAgZW5hYmxlSWY6IFwiQWt0aXZpZXJ0IHdlbm4gLi4uXCIsXG4gICAgICByZXF1aXJlZElmOiBcIkVyZm9yZGVybGljaCB3ZW5uIC4uLlwiLFxuICAgICAgaGlkZUlmQ2hvaWNlc0VtcHR5OiBcIlZlcnN0ZWNrZW4sIHdlbm4gQXVzd2FobG3DtmdsaWNoa2VpdGVuIGxlZXIgc2luZFwiLFxuICAgICAgY2hvaWNlc1Zpc2libGVJZjogXCJBdXN3YWhsbcO2Z2xpY2hrZWl0ZW4gc2ljaHRiYXIgd2VubiAuLi5cIixcbiAgICAgIGNob2ljZXNFbmFibGVJZjogXCJBdXN3YWhsbcO2Z2xpY2hrZWl0ZW4gYWt0aXZpZXJ0IHdlbm4gLi4uXCIsXG4gICAgICBjaG9pY2VzRW5hYmxlZElmOiBcIkF1c3dhaGxtw7ZnbGljaGtlaXRlbiBha3RpdmllcnQgd2VubiAuLi5cIixcbiAgICAgIHJhdGVWYWx1ZXM6IFwiQmV3ZXJ0dW5nc3NrYWxhXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwiQXVzd2FobG3DtmdsaWNoa2VpdGVuIGF1cyBkZW0gSW50ZXJuZXRcIixcbiAgICAgIG1hdHJpeENob2ljZXM6IFwiU3RhbmRhcmRhdXN3YWhsXCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCJUZXh0ZWluZ2FiZVwiLFxuICAgICAgbnVtYmVyaW5nOiBcIk51bW1lcmllcnVuZ1wiLFxuICAgICAgdmFsaWRhdG9yczogXCLDnGJlcnByw7xmdW5nXCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcIk5hdmlnYXRpb25cIixcbiAgICAgIHF1ZXN0aW9uOiBcIkZyYWdlblwiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCJCZW51dHplcmRlZmluaWVydGUgU2VpdGUgbmFjaCBBYnNjaGx1c3MgZGVyIFVtZnJhZ2VcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjpcbiAgICAgICAgXCJCZWRpbmd1bmcgZGFmw7xyLCBkYXNzIGVpbmUgYmVudXR6ZXJkZWZpbml0ZXJ0ZSBTZWl0ZSBuYWNoIEFic2NobHVzcyBkZXIgVW1mcmFnZSBhbmdlemVpZ3Qgd2lyZFwiLFxuICAgICAgbG9hZGluZ0h0bWw6IFwiV2lyZCBnZWxhZGVuXCIsXG4gICAgICB0aW1lcjogXCJUaW1lclwiLFxuICAgICAgY2FsY3VsYXRlZFZhbHVlczogXCJCZXJlY2huZXRlIFdlcnRlXCIsXG4gICAgICB0cmlnZ2VyczogXCJUcmlnZ2VyXCIsXG4gICAgICB0ZW1wbGF0ZVRpdGxlOiBcIlRpdGVsdGVtcGxhdGVcIixcbiAgICAgIHRvdGFsczogXCJTdW1tZW5cIixcbiAgICAgIGxvZ2ljOiBcIkxvZ2lrXCIsXG4gICAgICBsYXlvdXQ6IFwiTGF5b3V0XCIsXG4gICAgICBkYXRhOiBcIkRhdGVuXCIsXG4gICAgICB2YWxpZGF0aW9uOiBcIlZhbGlkaWVydW5nXCIsXG4gICAgICBjZWxsczogXCJaZWxsZW5cIixcbiAgICAgIHNob3dPbkNvbXBsZXRlZDogXCJBYnNjaGx1c3NcIixcbiAgICAgIGxvZ286IFwiTG9nbyBpbSBVbWZyYWdldGl0ZWxcIixcbiAgICAgIG90aGVyczogXCJXZWl0ZXJlc1wiLFxuICAgIH0sXG4gICAgZWRpdFByb3BlcnR5OiBcIkVpZ2Vuc2NoYWZ0IGJlYXJiZWl0ZW4gJ3swfSdcIixcbiAgICBpdGVtczogXCJbIEdlZ2Vuc3RhbmQ6IHswfSBdXCIsXG5cbiAgICBlbnRlck5ld1ZhbHVlOiBcIkJpdHRlIGVpbmVuIFdlcnQgZWluZ2ViZW4uXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwiRGllIFVtZnJhZ2UgZW50aMOkbHQga2VpbmUgRnJhZ2UuXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCJCaXR0ZSBlaW5lbiBUcmlnZ2VyIGVpbmdlYmVuLlwiLFxuICAgIGtleWJvYXJkQWRvcm5lclRpcDpcbiAgICAgIFwiRHLDvGNrZW4gU2llIEVOVEVSLCB1bSBkYXMgRWxlbWVudCB6dSBiZWFyYmVpdGVuLCBFTlRGRVJORU4sIHVtIGRhcyBFbGVtZW50IHp1IGVudGZlcm5lbiwgU1RSRyArIFBGRUlMIE5BQ0ggT0JFTi9VTlRFTiwgdW0gZGFzIEVsZW1lbnQgenUgdmVyc2NoaWViZW5cIixcbiAgICB0cmlnZ2VyT246IFwiRWluXCIsXG4gICAgdHJpZ2dlck1ha2VQYWdlc1Zpc2libGU6IFwiU2VpdGVuIHNpY2h0YmFyIG1hY2hlbjpcIixcbiAgICB0cmlnZ2VyTWFrZVF1ZXN0aW9uc1Zpc2libGU6IFwiRWxlbWVudGUgc2ljaHRiYXIgbWFjaGVuOlwiLFxuICAgIHRyaWdnZXJDb21wbGV0ZVRleHQ6IFwiQmVpIEVyZm9sZyBkaWUgVW1mcmFnZSBhYnNjaGxpZXNzZW4uXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCJUcmlnZ2VyIGlzdCBuaWNodCBnZXNldHp0XCIsXG4gICAgdHJpZ2dlclJ1bklmOiBcIkF1c2bDvGhyZW4gd2VubiAuLi5cIixcbiAgICBzZXRUb05hbWU6IFwiU2V0emUgZGVuIFdlcnQgdm9uIC4uLlwiLFxuICAgIGZyb21OYW1lOiBcImFscyBLb3BpZSB2b24gLi4uXCIsXG4gICAgcnVuRXhwcmVzc2lvbjogXCJBbndlaXN1bmdcIixcbiAgICBzZXRWYWx1ZTogXCJhdWYgLi4uXCIsXG4gICAgZ290b05hbWU6IFwiR2VoZSB6dSBGcmFnZSAuLi5cIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCJWYXJpYWJsZSBuaWNodCBpbSBVbWZyYWdlZXJnZWJuaXMgZWluYmluZGVuLlwiLFxuICAgIHJ1bkV4cHJlc3Npb25FbXB0eTogXCJCaXR0ZSBnZWJlbiBTaWUgZWluZW4gZ8O8bHRpZ2VuIEF1c2RydWNrIGVpblwiLFxuICB9LFxuICAvL1Byb3BlcnR5IHZhbHVlc1xuICBwdjoge1xuICAgIHRydWU6IFwid2FoclwiLFxuICAgIGZhbHNlOiBcImZhbHNjaFwiLFxuICAgIGluaGVyaXQ6IFwidmVyZXJidFwiLFxuICAgIHNob3c6IFwiYW56ZWlnZW5cIixcbiAgICBoaWRlOiBcInZlcnN0ZWNrZW5cIixcbiAgICBkZWZhdWx0OiBcIlN0YW5kYXJkXCIsXG4gICAgaW5pdGlhbDogXCJpbml0aWFsXCIsXG4gICAgcmFuZG9tOiBcInp1ZsOkbGxpZ1wiLFxuICAgIGNvbGxhcHNlZDogXCJlaW5nZWtsYXBwdFwiLFxuICAgIGV4cGFuZGVkOiBcImF1c2dla2xhcHB0XCIsXG4gICAgbm9uZTogXCIvXCIsXG4gICAgYXNjOiBcImF1ZnN0ZWlnZW5kXCIsXG4gICAgZGVzYzogXCJhYnN0ZWlnZW5kXCIsXG4gICAgaW5kZXRlcm1pbmF0ZTogXCJ1bmVudHNjaGllZGVuXCIsXG4gICAgZGVjaW1hbDogXCJEZXppbWFsXCIsXG4gICAgY3VycmVuY3k6IFwiV8OkaHJ1bmdcIixcbiAgICBwZXJjZW50OiBcIlByb3plbnRcIixcbiAgICBmaXJzdEV4cGFuZGVkOiBcImF1c2dla2xhcHB0IChlcnN0ZXMgRWxlbWVudClcIixcbiAgICBvZmY6IFwiYXVzXCIsXG4gICAgb25QYW5lbDogXCJQYW5lbFwiLFxuICAgIG9uU3VydmV5OiBcIlVtZnJhZ2VcIixcbiAgICBsaXN0OiBcIkxpc3RlXCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwib2JlbiAoRm9ydHNjaHJpdHQpXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwidW50ZW4gKEZvcnRzY2hyaXR0KVwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcIm9iZW4gdW5kIHVudGVuIChGb3J0c2Nocml0dClcIixcbiAgICBob3Jpem9udGFsOiBcImhvcml6b250YWxcIixcbiAgICB2ZXJ0aWNhbDogXCJ2ZXJ0aWthbFwiLFxuICAgIHRvcDogXCJvYmVuXCIsXG4gICAgYm90dG9tOiBcInVudGVuXCIsXG4gICAgdG9wQm90dG9tOiBcIm9iZW4gdW5kIHVudGVuXCIsXG4gICAgYm90aDogXCJiZWlkZXNcIixcbiAgICBsZWZ0OiBcImxpbmtzXCIsXG4gICAgY29sb3I6IFwiRmFyYmVcIixcbiAgICBkYXRlOiBcIkRhdHVtXCIsXG4gICAgZGF0ZXRpbWU6IFwiRGF0dW0gdW5kIFVocnplaXRcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwiRGF0dW0gdW5kIFVocnplaXQgKGxva2FsKVwiLFxuICAgIGVtYWlsOiBcIkUtTWFpbFwiLFxuICAgIG1vbnRoOiBcIk1vbmF0XCIsXG4gICAgbnVtYmVyOiBcIk51bW1lclwiLFxuICAgIHBhc3N3b3JkOiBcIlBhc3N3b3J0XCIsXG4gICAgcmFuZ2U6IFwiU3Bhbm5lXCIsXG4gICAgdGVsOiBcIlRlbGVmb25udW1tZXJcIixcbiAgICB0ZXh0OiBcIlRleHRcIixcbiAgICB0aW1lOiBcIlVocnplaXRcIixcbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgd2VlazogXCJXb2NoZVwiLFxuICAgIGhpZGRlbjogXCJ2ZXJzdGVja3RcIixcbiAgICBvbjogXCJhblwiLFxuICAgIG9uUGFnZTogXCJhbiAodW5hYmjDpG5naWcgZsO8ciBqZWRlIFNlaXRlKVwiLFxuICAgIHVuZGVyVGl0bGU6IFwiVW50ZXJoYWxiIGRlcyBUaXRlbHNcIixcbiAgICB1bmRlcklucHV0OiBcIlVudGVyaGFsYiBkZXMgRWluZ2FiZWZlbGRzXCIsXG4gICAgZWRpdDogXCJCZWFyYmVpdGVuXCIsXG4gICAgZGlzcGxheTogXCJBbnplaWdlblwiLFxuICAgIG9uQ29tcGxldGU6IFwiV2VubiBkaWUgVW1mcmFnZSBhYmdlc2NobG9zc2VuIHd1cmRlXCIsXG4gICAgb25IaWRkZW46IFwiV2VubiBkaWUgVW1mcmFnZSB2ZXJzdGVja3Qgd3VyZGVcIixcbiAgICBvbkJsdXI6IFwiV2VubiBkYXMgRWluZ2FiZWZlbGQgdmVybGFzc2VuIHdpcmRcIixcbiAgICBvblR5cGluZzogXCJXZW5uIGluIGRhcyBFaW5nYWJlZmVsZCBnZXRpcHB0IHdpcmRcIixcbiAgICBhbGw6IFwiQWxsZVwiLFxuICAgIHBhZ2U6IFwiU2VpdGVcIixcbiAgICBwYWdlczogXCJTZWl0ZW5cIixcbiAgICBxdWVzdGlvbnM6IFwiRnJhZ2VuXCIsXG4gICAgY29ycmVjdFF1ZXN0aW9uczogXCJSaWNodGlnIGJlYW50d29ydGV0ZSBGcmFnZW5cIixcbiAgICBzdXJ2ZXk6IFwiVW1mcmFnZVwiLFxuICAgIG9uTmV4dFBhZ2U6IFwiV2VubiBkaWUgU2VpdGUgZ2V3ZWNoc2VsdCB3dXJkZVwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcIldlbm4gZWluIFdlcnQgZ2XDpG5kZXJ0IHd1cmRlXCIsXG4gICAgc2luZ2xlUGFnZTogXCJBbGxlIEZyYWdlbiBhdWYgZWluZSBTZWl0ZVwiLFxuICAgIHN0YW5kYXJkOiBcIlN0YW5kYXJkXCIsXG4gICAgcXVlc3Rpb25QZXJQYWdlOiBcIkFsbGUgRnJhZ2VuIGF1ZiBlaW5lIGVpZ2VuZSBTZWl0ZVwiLFxuICAgIG5vUHJldmlldzogXCJLZWluZSBWb3JzY2hhdVwiLFxuICAgIHNob3dBbGxRdWVzdGlvbnM6IFwiVm9yc2NoYXUgbWl0IGFsbGVuIEZyYWdlbiBhbnplaWdlblwiLFxuICAgIHNob3dBbnN3ZXJlZFF1ZXN0aW9uczogXCJWb3JzY2hhdSBtaXQgYmVhbnR3b3J0ZXRlbiBGcmFnZW4gYW56ZWlnZW5cIixcbiAgICBpbWFnZTogXCJCaWxkXCIsXG4gICAgdmlkZW86IFwiVmlkZW9cIixcbiAgICBjb250YWluOiBcImJlaW5oYWx0ZW5cIixcbiAgICBjb3ZlcjogXCJiZWRlY2tlblwiLFxuICAgIGZpbGw6IFwiZsO8bGxlblwiLFxuICB9LFxuICAvL09wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcImlzdCBsZWVyXCIsXG4gICAgbm90ZW1wdHk6IFwiaXN0IG5pY2h0IGxlZXJcIixcbiAgICBlcXVhbDogXCJpc3QgZ2xlaWNoXCIsXG4gICAgbm90ZXF1YWw6IFwiaXN0IHVuZ2xlaWNoXCIsXG4gICAgY29udGFpbnM6IFwiZW50aMOkbHRcIixcbiAgICBub3Rjb250YWluczogXCJlbnRow6RsdCBuaWNodFwiLFxuICAgIGFueW9mOiBcImVpbnMgYXVzXCIsXG4gICAgYWxsb2Y6IFwiYWxsZSBhdXNcIixcbiAgICBncmVhdGVyOiBcImdyw7bDn2VyIGFsc1wiLFxuICAgIGxlc3M6IFwia2xlaW5lciBhbHNcIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCJncsO2w59lciBvZGVyIGdsZWljaCBhbHNcIixcbiAgICBsZXNzb3JlcXVhbDogXCJrbGVpbmVyIG9kZXIgZ2xlaWNoIGFsc1wiLFxuICAgIGFuZDogXCJ1bmRcIixcbiAgICBvcjogXCJvZGVyXCIsXG4gIH0sXG4gIC8vRW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCJBbmd1bGFyLVZlcnNpb24gYmVudXR6ZW5cIixcbiAgICBqcXVlcnk6IFwialF1ZXJ5LVZlcnNpb24gYmVudXR6ZW5cIixcbiAgICBrbm9ja291dDogXCJLbm9ja291dC1WZXJzaW9uIGJlbnV0emVuXCIsXG4gICAgcmVhY3Q6IFwiUmVhY3QtVmVyc2lvbiBiZW51dHplblwiLFxuICAgIHZ1ZTogXCJWdWUtVmVyc2lvbiBiZW51dHplblwiLFxuICAgIGJvb3RzdHJhcDogXCJBbHMgQm9vdHN0cmFwIEZyYW1ld29ya1wiLFxuICAgIHN0YW5kYXJkOiBcIktlaW4gQm9vdHN0cmFwXCIsXG4gICAgc2hvd09uUGFnZTogXCJVbWZyYWdlIGF1ZiBTZWl0ZSBhbnplaWdlblwiLFxuICAgIHNob3dJbldpbmRvdzogXCJVbWZyYWdlIGFscyBGZW5zdGVyIGFuemVpZ2VuXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiTGFkZSBVbWZyYWdlIGFscyBKU09OIHZvbSBTZXJ2ZXJcIixcbiAgICB0aXRsZVNjcmlwdDogXCJTa3JpcHRlIHVuZCBTdHlsZXNcIixcbiAgICB0aXRsZUh0bWw6IFwiSFRNTFwiLFxuICAgIHRpdGxlSmF2YVNjcmlwdDogXCJKYXZhU2NyaXB0XCIsXG4gIH0sXG4gIC8vVGVzdCBTdXJ2ZXlcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcIlNlaXRlOlwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCJVbnNpY2h0YmFyZSBFbGVtZW50ZSBhbnplaWdlblwiLFxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwiQW50d29ydGFuemFobFwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcIkUtTWFpbFwiLFxuICAgIGV4cHJlc3Npb252YWxpZGF0b3I6IFwiQXVzZHJ1Y2tcIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcIlphaGxcIixcbiAgICByZWdleHZhbGlkYXRvcjogXCJSZWd1bMOkcmVyIEF1c2RydWNrXCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCJUZXh0XCIsXG4gIH0sXG4gIHRyaWdnZXJzOiB7XG4gICAgY29tcGxldGV0cmlnZ2VyOiBcIlVtZnJhZ2UgYWJzY2hsaWXDn2VuXCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcIldlcnQgc2V0emVuXCIsXG4gICAgY29weXZhbHVldHJpZ2dlcjogXCJXZXJ0IGtvcGllcmVuXCIsXG4gICAgc2tpcHRyaWdnZXI6IFwiRnJhZ2Ugd2VjaHNlbG5cIixcbiAgICBydW5leHByZXNzaW9udHJpZ2dlcjogXCJBbndlaXN1bmcgYXVzZsO8aHJlblwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcIlNpY2h0YmFya2VpdCDDpG5kZXJuIChkZXByZWNhdGVkKVwiLFxuICB9LFxuICAvL1Byb3BlcnRpZXNcbiAgcDoge1xuICAgIG5hbWU6IFwiTmFtZVwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcIlRpdGVsXCIsXG4gICAgICB0aXRsZTogJ0JpdHRlIGxlZXIgbGFzc2VuLCBmYWxscyBnbGVpY2ggd2llIFwiTmFtZVwiJyxcbiAgICB9LFxuXG4gICAgbmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5OiBcIlNpY2h0YmFya2VpdCBkZXIgTmF2aWdhdGlvbnNidXR0b25zXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiUmVpaGVuZm9sZ2UgZGVyIEZyYWdlblwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJNYXhpbWFsZSBaZWl0LCB1bSBkaWUgVW1mcmFnZSBhYnp1c2NobGllw59lblwiLFxuXG4gICAgdmlzaWJsZTogXCJTaWNodGJhclwiLFxuICAgIHZpc2libGVJZjogXCJTaWNodGJhciB3ZW5uIC4uLlwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJQb3NpdGlvbiBkZXIgRnJhZ2VudGl0ZWxcIixcbiAgICBxdWVzdGlvbkRlc2NyaXB0aW9uTG9jYXRpb246IFwiUG9zaXRpb24gZGVyIEZyYWdlbmJlc2NocmVpYnVuZ1wiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkJlc2NocmVpYnVuZ1wiLFxuICAgIHN0YXRlOiBcIlN0YXR1c1wiLFxuICAgIGlzUmVxdWlyZWQ6IFwiSXN0IGVyZm9yZGVybGljaFwiLFxuICAgIHJlcXVpcmVkSWY6IFwiRXJmb3JkZXJsaWNoIHdlbm4gLi4uXCIsXG4gICAgY2hvaWNlc1Zpc2libGVJZjogXCJBdXN3YWhsbcO2Z2xpY2hrZWl0ZW4gc2ljaHRiYXIgd2VubiAuLi5cIixcbiAgICBjaG9pY2VzRW5hYmxlSWY6IFwiQXVzd2FobG3DtmdsaWNoa2VpdGVuIGFrdGl2aWVydCB3ZW5uIC4uLlwiLFxuICAgIGNob2ljZXNFbmFibGVkSWY6IFwiQXVzd2FobG3DtmdsaWNoa2VpdGVuIGFrdGl2aWVydCB3ZW5uIC4uLlwiLFxuICAgIHJvd3NWaXNpYmxlSWY6IFwiWmVpbGVuIHNpY2h0YmFyIHdlbm4gLi4uXCIsXG4gICAgY29sdW1uc1Zpc2libGVJZjogXCJTcGFsdGVuIHNpY2h0YmFyIHdlbm4gLi4uXCIsXG4gICAgaW5kZW50OiBcIkVpbnp1Z1wiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OlxuICAgICAgXCJGZWhsZXJtZWxkdW5nIGJlaSBuaWNodCBiZWFudHdvcnRldGVuIGVyZm9yZGVybGljaGVuIEZyYWdlblwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiU3RhcnRlIG1pdCBuZXVlciBaZWlsZVwiLFxuICAgIGlubmVySW5kZW50OiBcIklubmVyZXIgRWluenVnXCIsXG4gICAgcGFnZTogXCJTZWl0ZVwiLFxuXG4gICAgd2lkdGg6IFwiQnJlaXRlXCIsXG5cbiAgICBjb21tZW50VGV4dDogXCJLb21tZW50YXJiZXNjaHJlaWJ1bmdcIixcbiAgICB2YWx1ZU5hbWU6IFwiTmFtZSBkZXIgQW50d29ydFwiLFxuICAgIGVuYWJsZUlmOiBcIkFrdGl2aWVydCB3ZW5uIC4uLlwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJTdGFuZGFyZGFudHdvcnRcIixcbiAgICBjb3JyZWN0QW5zd2VyOiBcIlJpY2h0aWdlIEFudHdvcnRcIixcbiAgICByZWFkT25seTogXCJTY2hyZWliZ2VzY2jDvHR6dD9cIixcbiAgICB2YWxpZGF0b3JzOiBcIlZhbGlkaWVydW5nZW5cIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcIlBvc2l0aW9uIGRlcyBUaXRlbHNcIixcbiAgICBkZXNjcmlwdGlvbkxvY2F0aW9uOiBcIlBvc2l0aW9uIGRlciBCZXNjaHJlaWJ1bmdcIixcbiAgICB1c2VEaXNwbGF5VmFsdWVzSW5EeW5hbWljVGV4dHM6IFwiVmVyd2VuZGUgQW56ZWlnZXdlcnRlIGltIFRpdGVsXCIsXG5cbiAgICBoYXNDb21tZW50OiBcIktvbW1lbnRhcmUgZXJsYXVidD9cIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIlNvbnN0aWdlcyBhdXN3w6RobGJhcj9cIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIlRleHQgZsO8ciBkaWUgQXVzd2FobCBhbGxlciBFbGVtZW50ZVwiLFxuICAgIGNob2ljZXM6IFwiQXVzd2FobG3DtmdsaWNoa2VpdGVuXCIsXG4gICAgY2hvaWNlc09yZGVyOiBcIkF1c3dhaGxyZWloZW5mb2xnZVwiLFxuICAgIGNob2ljZXNCeVVybDogXCJBdXN3YWhscmVpaGVuZm9sZ2UgbmFjaCBVUkxcIixcbiAgICBvdGhlclRleHQ6IFwiVGV4dFwiLFxuICAgIG90aGVyUGxhY2VIb2xkZXI6IFwiUGxhdHpoYWx0ZXJcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCJGZWhsZXJtZWxkdW5nXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiU3BlaWNoZXJlIGFuZGVyZSBXZXJ0ZSBhbHMgS29tbWVudGFyXCIsXG5cbiAgICBsYWJlbDogXCJMYWJlbFwiLFxuICAgIGxhYmVsVHJ1ZTogJ0FuemVpZ2V3ZXJ0IGbDvHIgXCJKYVwiJyxcbiAgICBsYWJlbEZhbHNlOiAnQW56ZWlnZXdlcnQgZsO8ciBcIk5laW5cIicsXG4gICAgc2hvd1RpdGxlOiBcIlRpdGVsIGFuemVpZ2VuXCIsXG4gICAgc2hvd0hlYWRlcjogXCJTcGFsdGVubmFtZW4gYW56ZWlnZW5cIixcbiAgICB2YWx1ZVRydWU6ICdXZXJ0IGbDvHIgXCJKYVwiJyxcbiAgICB2YWx1ZUZhbHNlOiAnV2VydCBmw7xyIFwiTmVpblwiJyxcblxuICAgIG11bHRpU2VsZWN0OiBcIk1laHJmYWNoYXVzd2FobFwiLFxuICAgIGNvbnRlbnRNb2RlOiBcIk1vZHVzXCIsXG4gICAgaW1hZ2VGaXQ6IFwiQmlsZGRhcnN0ZWxsdW5nXCIsXG4gICAgc2hvd0xhYmVsOiBcIldlcnQgYW56ZWlnZW5cIixcblxuICAgIGNvbHM6IFwiU3BhbHRlblwiLFxuICAgIHJvd3M6IFwiWmVpbGVuXCIsXG4gICAgcGxhY2Vob2xkZXI6IFwiUGxhdHpoYWx0ZXJcIixcblxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIkF1c3dhaGxiZXNjaHJpZnR1bmdcIixcblxuICAgIGV4cHJlc3Npb246IFwiQXVzZHJ1Y2tcIixcbiAgICBmb3JtYXQ6IFwiRm9ybWF0XCIsXG4gICAgZGlzcGxheVN0eWxlOiBcIkFuemVpZ2VzdGlsXCIsXG4gICAgY3VycmVuY3k6IFwiV8OkaHJ1bmdcIixcbiAgICB1c2VHcm91cGluZzogXCJHcnVwcGllcnVuZyB2ZXJ3ZW5kZW5cIixcblxuICAgIHNob3dQcmV2aWV3OiBcIlZvcnNjaGF1IGFuemVpZ2VuXCIsXG4gICAgYWxsb3dNdWx0aXBsZTogXCJNZWhyZXJlIEFudHdvcnRlbiBlcmxhdWJlblwiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkJpbGRow7ZoZVwiLFxuICAgIGltYWdlV2lkdGg6IFwiQmlsZGJyZWl0ZVwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJEYXRlbiBhbHMgVGV4dCBzcGVpY2hlcm5cIixcbiAgICBtYXhTaXplOiBcIk1heGltYWxlIEdyw7bDn2VcIixcblxuICAgIGh0bWw6IFwiSFRNTFwiLFxuXG4gICAgY29sdW1uczogXCJTcGFsdGVuXCIsXG4gICAgY2VsbHM6IFwiWmVsbGVuXCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJTaW5kIGFsbGUgWmVpbGVuIGVyZm9yZGVybGljaD9cIixcblxuICAgIGhvcml6b250YWxTY3JvbGw6IFwiSG9yaXpvbnRhbGVzIFNjcm9sbGVuXCIsXG4gICAgY2VsbFR5cGU6IFwiWmVsbHR5cFwiLFxuICAgIGNvbHVtbnNMYXlvdXQ6IFwiU3BhbHRlbmxheW91dFwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcIlNwYWx0ZW5hbnphaGxcIixcbiAgICBjb2x1bW5NaW5XaWR0aDogXCJNaW5pbWFsZSBTcGFsdGVuYnJlaXRlXCIsXG5cbiAgICByb3dDb3VudDogXCJaZWlsZW5hbnphaGxcIixcbiAgICBtaW5Sb3dDb3VudDogXCJNaW5pbWFsZSBaZWlsZW5hbnphaGxcIixcbiAgICBtYXhSb3dDb3VudDogXCJNYXhpbWFsZSBTcGFsdGVuYW56YWhsXCIsXG4gICAga2V5TmFtZTogXCJTY2hsw7xzc2VsbmFtZVwiLFxuICAgIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiRmVobGVybWVsZHVuZyBmw7xyIGRvcHBlbHRlbiBTY2hsw7xzc2VsXCIsXG4gICAgY29uZmlybURlbGV0ZTogXCJCZXN0w6R0aWd1bmcgZGVyIEzDtnNjaHVuZ1wiLFxuICAgIGNvbmZpcm1EZWxldGVUZXh0OiBcIlRleHQgZsO8ciBCZXN0w6R0aWd1bmcgZGVyIEzDtnNjaHVuZ1wiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcIlplaWxlbmtub3BmcG9zaXRpb24gaGluenVmw7xnZW5cIixcbiAgICBhZGRSb3dUZXh0OiBcIlplaWxlbmtub3BmdGV4dCBoaW56dWbDvGdlblwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiWmVpbGVua25vcGZ0ZXh0IGzDtnNjaGVuXCIsXG5cbiAgICBpdGVtczogXCJFbGVtZW50ZVwiLFxuICAgIGl0ZW1TaXplOiBcIkVsZW1lbnRncsO2w59lXCIsXG4gICAgY29sQ291bnQ6IFwiU3BhbHRlbmFuemFobFwiLFxuXG4gICAgdGVtcGxhdGVUaXRsZTogXCJUZW1wbGF0ZSBmw7xyIGRlbiBUaXRlbFwiLFxuICAgIHRlbXBsYXRlRGVzY3JpcHRpb246IFwiVGVtcGxhdGUgZsO8ciBkaWUgQmVzY2hyZWlidW5nXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJFcmxhdWJlIGRhcyBIaW56dWbDvGdlbiBlaW5lcyBQYW5lbHRleHRzXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJFcmxhdWJlIGRhcyBFbnRmZXJuZW4gZWluZXMgUGFuZWx0ZXh0c1wiLFxuICAgIHBhbmVsQ291bnQ6IFwiUGFuZWxhbnphaGxcIixcbiAgICBtaW5QYW5lbENvdW50OiBcIk1pbmltYWxlIFBhbmVsYW56YWhsXCIsXG4gICAgbWF4UGFuZWxDb3VudDogXCJNYXhpbWFsZSBQYW5lbGFuemFobFwiLFxuICAgIHBhbmVsc1N0YXRlOiBcIlBhbmVsenVzdGFuZFwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJUZXh0IGbDvHIgZGFzIEhpbnp1ZsO8Z2VuIGVpbmVzIFBhbmVsc1wiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJUZXh0IGbDvHIgZGFzIEVudGZlcm5lbiBlaW5lcyBQYW5lbHNcIixcbiAgICBwYW5lbFByZXZUZXh0OiBcIlRleHQgZsO8ciBkaWUgTmF2aWdhdGlvbiB6dW0gdm9yaGVyaWdlbiBQYW5lbFwiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwiVGV4dCBmw7xyIGRpZSBOYXZpZ2F0aW9uIHp1bSBuw6RjaHN0ZW4gUGFuZWxcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcIkZyYWdlbnVtbWVybiBhbnplaWdlblwiLFxuICAgIHRleHRVcGRhdGVNb2RlOiBcIlRleHQgYWt0dWFsaXNpZXJlblwiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwiRm9ydHNjaHJpdHRzYmFsa2VuIGFuemVpZ2VuXCIsXG4gICAgcmVuZGVyTW9kZTogXCJBbnplaWdlbW9kdXNcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwiVGVtcGxhdGUgZsO8ciBkaWUgVGl0ZWxwb3NpdGlvblwiLFxuXG4gICAgcmF0ZVZhbHVlczogXCJCZXdlcnR1bmdzc2thbGFcIixcbiAgICByYXRlTWluOiBcIk1pbmltYWxcIixcbiAgICByYXRlTWF4OiBcIk1heGltYWxcIixcbiAgICByYXRlU3RlcDogXCJCZXdlcnR1bmdzc2Nocml0dGVcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiQmV3ZXJ0dW5nc2Jlc2NocmVpYnVuZyBmw7xyIG1pbmltYWxlIEJld2VydHVuZ1wiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJCZXdlcnR1bmdzYmVzY2hyZWlidW5nIGbDvHIgbWF4aW1hbGUgQmV3ZXJ0dW5nXCIsXG5cbiAgICBpbnB1dFR5cGU6IFwiRWluZ2FiZXR5cFwiLFxuICAgIHNpemU6IFwiR3LDtsOfZVwiLFxuXG4gICAgbG9jYWxlOiBcIlNwcmFjaGVcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiRm9rdXNzaWVyZSBhdXRvbWF0aXNjaCBkaWUgZXJzdGUgRnJhZ2VcIixcbiAgICBjb21wbGV0ZWRIdG1sOlxuICAgICAgXCJJbmhhbHQsIGRlciBuYWNoIEFic2NobHVzcyBkZXIgVW1mcmFnZSBhbmdlemVpZ3Qgd2lyZCAoSFRNTClcIixcbiAgICBjb21wbGV0ZWRCZWZvcmVIdG1sOlxuICAgICAgXCJJbmhhbHQsIGRlciB2b3IgQWJzY2hsdXNzIGRlciBVbWZyYWdlIGFuZ2V6ZWlndCB3aXJkIChIVE1MKVwiLFxuICAgIGxvYWRpbmdIdG1sOiBcIkluaGFsdCwgZGVyIGJlaW0gTGFkZW4gZGVyIFVtZnJhZ2UgYW5nZXplaWd0IHdpcmQgKEhUTUwpXCIsXG4gICAgdHJpZ2dlcnM6IFwiVHJpZ2dlclwiLFxuICAgIGNhbGN1bGF0ZWRWYWx1ZXM6IFwiQmVyZWNobmV0ZSBXZXJ0ZVwiLFxuICAgIGluY2x1ZGVJbnRvUmVzdWx0OiBcIlZhcmlhYmxlIGltIFVtZnJhZ2VlcmdlYm5pcyBlaW5iaW5kZW5cIixcbiAgICBjb29raWVOYW1lOiBcIkNvb2tpZW5hbWVcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDpcbiAgICAgIFwiU2VuZGUgVW1mcmFnZWVyZ2Vibmlzc2UgYmVpbSBCZXRyZXRlbiBkZXIgbsOkY2hzdGVuIFNlaXRlXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIkFuemVpZ2UgZGVyIE5hdmlnYXRpb25zYnV0dG9uc1wiLFxuICAgIHNob3dQcmV2QnV0dG9uOlxuICAgICAgXCJCdXR0b24gZsO8ciBkaWUgdm9yaGVyaWdlIFNlaXRlIGFuemVpZ2VuIChCZW51dHplciBrw7ZubmVuIGF1ZiBkaWUgdm9yaGVyaWdlIFNlaXRlIHp1csO8Y2trZWhyZW4pXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiU2VpdGVuYmVzY2hyZWlidW5nIGFuemVpZ2VuXCIsXG4gICAgbmF2aWdhdGVUb1VybDogXCJXZWl0ZXJsZWl0dW5nIChVUkwpXCIsXG4gICAgbmF2aWdhdGVUb1VybE9uQ29uZGl0aW9uOiBcIkJlZGluZ3RlIFdlaXRlcmxlaXR1bmcgKFVSTClcIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCJOYWNoIEFic2NobHVzcyBkaWUgYXVzZ2Vmw7xsbHRlIFVtZnJhZ2UgYW56ZWlnZW5cIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwiU2VpdGVubnVtbWVybiBhbnplaWdlblwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJQb3NpdGlvbiBkZXIgRmVobGVybWVsZHVuZ2VuXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIkZvcnRzY2hyaXR0c2JhbGtlbiBhbnplaWdlblwiLFxuICAgIHByb2dyZXNzQmFyVHlwZTogXCJGb3J0c2Nocml0dHNiYWxrZW50eXBcIixcbiAgICBxdWVzdGlvbnNPblBhZ2VNb2RlOiBcIkF1ZnRlaWx1bmcgYXVmIFNlaXRlblwiLFxuICAgIG1vZGU6IFwiTW9kdXMgKGVkaXRpZXJiYXIvc2NocmVpYmdlc2Now7x0enQpXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzpcbiAgICAgIFwiV2VubiBhbGxlIEZyYWdlbiBhdWYgZWluZXIgU2VpdGUgYmVhbnR3b3J0ZXQgc2luZCwgZ2VoZSBhdXRvbWF0aXNjaCB6dXIgbsOkY2hzdGVuIFNlaXRlblwiLFxuICAgIGZvY3VzT25GaXJzdEVycm9yOiBcIkZva3Vzc2llcmUgZGVuIGVyc3RlbiBGZWhsZXJcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwiV2FubiB3ZXJkZW4gRmVobGVyIMO8YmVycHLDvGZ0P1wiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIkFsbGUgdW5zaWNodGJhcmVuIFdlcnRlIGxlZXJlblwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJUZXh0IGRlcyBTdGFydGJ1dHRvbnNcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiVGV4dCBkZXMgQnV0dG9ucyBmw7xyIGRpZSB2b3JoZXJpZ2UgU2VpdGVcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiVGV4dCBkZXMgQnV0dG9ucyBmw7xyIGRpZSBuw6RjaHN0ZSBTZWl0ZVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJUZXh0IGRlcyBBYnNjaGxpZcOfZW5idXR0b25zXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlN5bWJvbCBmw7xyIGVyZm9yZGVybGljaGUgRnJhZ2VuXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiAnU3RhcnRpbmRleCBkZXIgRnJhZ2VuIChic3B3LiBcIjFcIiwgXCJBXCIsIFwiYVwiLCAuLi4pJyxcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6XG4gICAgICAnVGVtcGxhdGUgZsO8ciBkZW4gRnJhZ2VudGl0ZWwuIFN0YW5kYXJkIGlzdDogXCJ7bm99LiB7cmVxdWlyZX0ge3RpdGxlfVwiJyxcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiRGllIGVyc3RlIFNlaXRlIGRlciBVbWZyYWdlIGlzdCBkaWUgU3RhcnRzZWl0ZVwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJBbGxlIEVsZW1lbnRlIGF1ZiBlaW5lciBTZWl0ZSBhbnplaWdlblwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwiTWF4aW1hbGUgWmVpdCwgdW0gZWluZSBTZWl0ZSBkZXIgVW1mcmFnZSB6dSBiZWVuZGVuXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiVGltZXJwYW5lbHBvc2l0aW9uXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIlRpbWVycGFuZWxtb2R1c1wiLFxuICAgIGhpZGVJZkNob2ljZXNFbXB0eTogXCJWZXJzdGVja2VuLCB3ZW5uIEF1c3dhaGxtw7ZnbGljaGtlaXRlbiBsZWVyIHNpbmRcIixcblxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcIlN0YW5kYXJkd2VydCBmw7xyIFBhbmVsc1wiLFxuICAgIGRlZmF1bHRSb3dWYWx1ZTogXCJTdGFuZGFyZHdlcnQgZsO8ciBaZWlsZW5cIixcbiAgICBkZWZhdWx0VmFsdWVGcm9tTGFzdFBhbmVsOiBcIlN0YW5kYXJkd2VydCB2b20gbGV0enRlbiBQYW5lbFwiLFxuICAgIHNob3dOb25lSXRlbTogXCJBbGxlIEVsZW1lbnRlIGFid8OkaGxiYXI/XCIsXG4gICAgbm9uZVRleHQ6IFwiVGV4dFwiLFxuICAgIHJvd3NPcmRlcjogXCJaZWlsZW5zb3J0aWVydW5nXCIsXG5cbiAgICB0ZXh0OiBcIlRleHRcIixcbiAgfSxcbn07XG5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZGVcIl0gPSBnZXJtYW5UcmFuc2xhdGlvbjtcbiIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IHZhciBodVN0cmluZ3MgPSB7XG4gIC8vc3VydmV5IHRlbXBsYXRlc1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcIlN6ZXJrZXN6dMOpc1wiLFxuICAgIGV4dGVybmFsSGVscExpbms6IFwiTsOpenplIG1lZywgaG9neWFuIGtlbGwga8OpcmTFkcOtdmVrZXQga8Opc3rDrXRlbmkuXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDpcbiAgICAgIFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0gycnU5b2tJY29vTlpmcElieXE0cVE/dmlld19hcz1zdWJzY3JpYmVyXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIkvDqXJlbSBkb2Jqb24gaWRlIGVneSBrw6lyZMOpc3QgYSBiYWwgb2xkYWxpIG1lbsO8YsWRbC5cIixcbiAgICBjb3B5OiBcIk3DoXNvbMOhc1wiLFxuICAgIGFkZFRvVG9vbGJveDogXCJIb3p6w6FhZMOhcyBheiBlc3prw7Z6dMOhcmhvelwiLFxuICAgIGRlbGV0ZVBhbmVsOiBcIlBhbmVsIGVsdMOhdm9sw610w6FzYVwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcIkvDqXJkw6lzIGVsdMOhdm9sw610w6FzYVwiLFxuICAgIGNvbnZlcnRUbzogXCJLb252ZXJ0w6Fsw6FzXCIsXG4gICAgZHJhZzogXCJFbGVtIG1vemdhdMOhc2FcIlxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIkFsYXDDqXJ0ZWxtZXpldHRcIixcbiAgICBjaGVja2JveDogXCJKZWzDtmzFkW7DqWd5emV0XCIsXG4gICAgY29tbWVudDogXCJNZWdqZWd5esOpc1wiLFxuICAgIGltYWdlcGlja2VyOiBcIkvDqXB2w6FsYXN6dMOzXCIsXG4gICAgZHJvcGRvd246IFwiTGVnw7ZyZMO8bMWRXCIsXG4gICAgZmlsZTogXCLDgWxsb23DoW55XCIsXG4gICAgaHRtbDogXCJIVE1MXCIsXG4gICAgbWF0cml4OiBcIk3DoXRyaXggKGVneXbDoWxhc3p0w7NzKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIk3DoXRyaXggKHTDtmJidsOhbGFzenTDs3MpXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCJNw6F0cml4IChkaW5hbWlrdXMpXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcIlTDtmJic29yb3Mgc3rDtnZlZ1wiLFxuICAgIHBhbmVsOiBcIlBhbmVsXCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIlBhbmVsIChkaW5hbWlrdXMpXCIsXG4gICAgcmFkaW9ncm91cDogXCJWw6FsYXN6dMOzZ29tYlwiLFxuICAgIHJhdGluZzogXCLDiXJ0w6lrZWzDqXNcIixcbiAgICB0ZXh0OiBcIkVneXNvcm9zIHN6w7Z2ZWdcIixcbiAgICBib29sZWFuOiBcIklnYXotaGFtaXNcIixcbiAgICBleHByZXNzaW9uOiBcIktpZmVqZXrDqXMgKGNzYWsgb2x2YXNoYXTDsylcIixcbiAgICBmbG93cGFuZWw6IFwiRm9seWFtYXRcIlxuICB9LFxuICAvL1N0cmluZ3MgaW4gRWRpdG9yXG4gIGVkOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCJBbGFww6lydGVsbWV6ZXR0ICh7MH0pXCIsXG4gICAgc3VydmV5OiBcIkvDqXJkxZHDrXZcIixcbiAgICBzZXR0aW5nczogXCJLw6lyZMWRw612YmXDoWxsw610w6Fzb2tcIixcbiAgICBvcGplY3RQcm9wZXJ0aWVzSGVhZGVyOiBcIkhhbGFkw7NcIixcbiAgICBzaG93T2JqZWN0UHJvcGVydGllczogXCJUdWxhamRvbnPDoWdvayBtdXRhdMOhc2FcIixcbiAgICBoaWRlT2JqZWN0UHJvcGVydGllczogXCJUdWxhamRvbnPDoWdvayBlbHJlanTDqXNlXCIsXG4gICAgZWRpdFN1cnZleTogXCJLw6lyZMWRw612IHN6ZXJrZXN6dMOpc2VcIixcbiAgICBhZGROZXdQYWdlOiBcIsOaaiBsYXAgZmVsdsOpdGVsZVwiLFxuICAgIG1vdmVSaWdodDogXCJHw7ZyZ2V0w6lzIGpvYmJyYVwiLFxuICAgIG1vdmVMZWZ0OiBcIkfDtnJnZXTDqXMgYmFscmFcIixcbiAgICBkZWxldGVQYWdlOiBcIkxhcCBlbHTDoXZvbMOtdMOhc2FcIixcbiAgICBlZGl0UGFnZTogXCJMYXAgc3plcmtlc3p0w6lzZVwiLFxuICAgIGVkaXQ6IFwiU3plcmtlc3p0w6lzXCIsXG4gICAgbmV3UGFnZU5hbWU6IFwibGFwXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcImvDqXJkw6lzXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBhbmVsXCIsXG4gICAgbmV3VGV4dEl0ZW1OYW1lOiBcInN6w7Z2ZWdcIixcbiAgICB0ZXN0U3VydmV5OiBcIlByw7NiYVwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJQcsOzYmEgaXNtw6l0XCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIkvDqXJkxZHDrXYgc3rDqWxlc3PDqWdlOiBcIixcbiAgICBlbWJlZFN1cnZleTogXCJLw6lyZMWRw612IGJlw6FneWF6w6FzYVwiLFxuICAgIHRyYW5zbGF0aW9uOiBcIkZvcmTDrXTDoXNcIixcbiAgICBzYXZlU3VydmV5OiBcIkvDqXJkxZHDrXYgbWVudMOpc2VcIixcbiAgICBkZXNpZ25lcjogXCJLw6lyZMWRw612dGVydmV6xZFcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04gc3plcmtlc3p0xZFcIixcbiAgICB1bmRvOiBcIk3DqWdzZVwiLFxuICAgIHJlZG86IFwiSXNtw6l0XCIsXG4gICAgb3B0aW9uczogXCJCZcOhbGzDrXTDoXNva1wiLFxuICAgIGdlbmVyYXRlVmFsaWRKU09OOiBcIsOJcnbDqW55ZXMgSlNPTiBnZW5lcsOhbMOhc2FcIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJPbHZhc2hhdMOzIEpTT04gZ2VuZXLDoWzDoXNhXCIsXG4gICAgdG9vbGJveDogXCJFc3prw7Z6dMOhclwiLFxuICAgIHRvb2xib3hHZW5lcmFsQ2F0ZWdvcnk6IFwiw4FsdGFsw6Fub3NcIixcbiAgICBkZWxTZWxPYmplY3Q6IFwiS2lqZWzDtmx0IGVsZW0gZWx0w6F2b2zDrXTDoXNhXCIsXG4gICAgZWRpdFNlbE9iamVjdDogXCJLaWplbMO2bHQgZWxlbSBzemVya2VzenTDqXNlXCIsXG4gICAgY29ycmVjdEpTT046IFwiS8OpcmVtIGphdsOtdHNhIGEgSlNPTi10LlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwiS8OpcmTFkcOtdiBlcmVkbcOpbnllOiBcIixcbiAgICBzdXJ2ZXlSZXN1bHRzVGFibGU6IFwiVMOhYmxha8OpbnRcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCJKU09OLWvDqW50XCIsXG4gICAgcmVzdWx0c1RpdGxlOiBcIkvDqXJkw6lzIGPDrW1lXCIsXG4gICAgcmVzdWx0c05hbWU6IFwiS8OpcmTDqXMgbWVnbmV2ZXrDqXNlXCIsXG4gICAgcmVzdWx0c1ZhbHVlOiBcIlbDoWxhc3ogw6lydMOpa2VcIixcbiAgICByZXN1bHRzRGlzcGxheVZhbHVlOiBcIktpamVsemV0dCDDqXJ0w6lrZVwiLFxuICAgIG1vZGlmaWVkOiBcIk3Ds2Rvc8OtdG90dFwiLFxuICAgIHNhdmluZzogXCJNZW50w6lzIGZvbHlhbWF0YmFuXCIsXG4gICAgc2F2ZWQ6IFwiTWVudHZlXCIsXG4gICAgc2F2ZUVycm9yOiBcIkhpYmEhIEEgc3plcmtlc3p0xZEgw6lydMOpa2UgbmVtIGtlcsO8bHQgbWVudMOpc3JlLlwiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwiVsOhbGFzc3pvbiBlZ3kgbnllbHZldCBhIGZvcmTDrXTDoXNob3ouXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsU3RyaW5nczogXCLDlnNzemVzIHN6w7Z2ZWcgbXV0YXTDoXNhXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsUGFnZXM6IFwiw5Zzc3plcyBsYXAgbXV0YXTDoXNhXCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6IFwiTmluY3MgZm9yZMOtdGhhdMOzIHN6w7Z2ZWcuIEvDqXJlbSB2w6FsdG96dGFzc29uIGEgc3rFsXLDqXNpIGZlbHTDqXRlbGVrZW4uXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCJNZW50w6lzIENTVi1rw6ludFwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJCZXTDtmx0w6lzIENTVi1ixZFsLlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDogXCJ7MH0gw7Zzc3plZsWxesOpc2UgYXogYWxhcMOpcnRlbG1lemV0dCBzesO2dmVnZ2VsLlwiLFxuICAgIGJvbGQ6IFwiRsOpbGvDtnbDqXJcIixcbiAgICBpdGFsaWM6IFwiRMWRbHRcIixcbiAgICB1bmRlcmxpbmU6IFwiQWzDoWjDunpvdHRcIixcbiAgICBmcEFkZFF1ZXN0aW9uOiBcIkvDqXJkw6lzIGZlbHbDqXRlbGUuLi5cIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25JdGVtVGV4dDogXCJNdXRhdMOhcyBoYTpcIlxuICB9LFxuICAvL1Byb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgcGVsOiB7XG4gICAgaXNSZXF1aXJlZDogXCJLw7Z0ZWxlesWRP1wiXG4gIH0sXG4gIC8vUHJvcGVydHkgRWRpdG9yc1xuICBwZToge1xuICAgIGFwcGx5OiBcIkFsa2FsbWF6XCIsXG4gICAgb2s6IFwiT0tcIixcbiAgICBjYW5jZWw6IFwiTcOpZ3NlbVwiLFxuICAgIHJlc2V0OiBcIlZpc3N6YcOhbGzDrXTDoXNcIixcbiAgICBjbG9zZTogXCJCZXrDoXLDoXNcIixcbiAgICBkZWxldGU6IFwiRWx0w6F2b2zDrXTDoXNcIixcbiAgICBhZGROZXc6IFwiw5pqIGZlbHbDqXRlbGVcIixcbiAgICBhZGRJdGVtOiBcIkthdHRpbnRzb24gZWd5IGVsZW0gZmVsdsOpdGVsw6loZXouLi5cIixcbiAgICBhZGRPdGhlcjogXCJFZ3nDqWJcIixcbiAgICBhZGRTZWxlY3RBbGw6IFwiw5Zzc3plcyBraWplbMO2bMOpc2VcIixcbiAgICBhZGROb25lOiBcIlNlbW1pXCIsXG4gICAgcmVtb3ZlQWxsOiBcIsOWc3N6ZXMgZWx0w6F2b2zDrXTDoXNhXCIsXG4gICAgZWRpdDogXCJTemVya2VzenTDqXNcIixcbiAgICBpdGVtVmFsdWVFZGl0OiBcIkzDoXRoYXTDsyBoYVwiLFxuICAgIGVkaXRDaG9pY2VzOiBcIkxlaGV0xZFzw6lnZWsgc3plcmtlc3p0w6lzZVwiLFxuICAgIG1vdmU6IFwiTW96Z2F0w6FzXCIsXG4gICAgZW1wdHk6IFwiPMO8cmVzPlwiLFxuICAgIG5vdEVtcHR5OiBcIjzDqXJ0w6lrIHN6ZXJrZXN6dMOpc2U+XCIsXG4gICAgZmFzdEVudHJ5OiBcIkd5b3JzIGZlbHbDqXRlbFwiLFxuICAgIGZvcm1FbnRyeTogXCJGZWx2w6l0ZWwgxbFybGFwcGFsXCIsXG4gICAgdGVzdFNlcnZpY2U6IFwiU3pvbGfDoWx0YXTDoXMgdGVzenRlbMOpc2VcIixcbiAgICBjb25kaXRpb25TZWxlY3RRdWVzdGlvbjogXCJWw6FsYXNzem9uIGvDqXJkw6lzdC4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCJLw6lyZW0gYWRqb24gbWVnLCB2YWd5IHbDoWxhc3N6b24gw6lydMOpa2V0XCIsXG4gICAgY29uZGl0aW9uQnV0dG9uQWRkOiBcIkZlbHbDqXRlbFwiLFxuICAgIGNvbmRpdGlvbkJ1dHRvblJlcGxhY2U6IFwiQ3NlcmVcIixcbiAgICBjb25kaXRpb25IZWxwOlxuICAgICAgXCJLw6lyZW0gYWRqb24gbWVnIGVneSBpZ2F6LWhhbWlzIGtpZmVqZXrDqXN0LiBJZ2F6IHZpc3N6YXTDqXLDqXNpIMOpcnTDqWtrZWwga2VsbCByZW5kZWxrZXpuaWUsIGhvZ3kgYSBrw6lyZMOpcyB2YWd5IGEgbGFwIGzDoXRoYXTDsyBtYXJhZGpvbi4gUMOpbGTDoXVsOiB7cXVlc3Rpb24xfSA9ICd2YWx1ZTEnIG9yICh7cXVlc3Rpb24yfSAqIHtxdWVzdGlvbjR9ICA+IDIwIGFuZCB7cXVlc3Rpb24zfSA8IDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcIkvDqXJlbSBhZGpvbiBtZWcgZWd5IGtpZmVqZXrDqXN0LiBIYXN6bsOhbGpvbiBrYXBjc29zIHrDoXLDs2plbGVrZXQsIGhvZ3kgZWzDqXJqZSBhIGvDqXJkw6lzZWsgYWt0dcOhbGlzIMOpcnTDqWvDqXQuIFDDqWxkw6F1bDogJ3txdWVzdGlvbjF9ICsge3F1ZXN0aW9uMn0nLCAnKHtwcmljZX0qe3F1YW50aXR5fSkgKiAoMTAwIC0ge2Rpc2NvdW50fSknXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCJOeW9tamEgbWVnIGEgY3RybCtzcGFjZSBiaWxsZW50ecWxa29tYmluw6FjacOzdCBhIGtpZmVqZXrDqXMgYmVmZWplesOpc8OpcmUgdm9uYXRrb3rDsyBzZWfDrXRzw6lnw6lydC5cIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCJKZWxlbmxlZ2kgc29yXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCJKZWxlbmxlZ2kgcGFuZWxcIixcbiAgICBzaG93TW9yZTogXCJUb3bDoWJiaSBpbmZvcm3DoWNpw7PDqXJ0IGvDqXJlbSB0ZWtpbnRzZSBtZWcgYSBkb2t1bWVudMOhY2nDs3RcIixcbiAgICBjb25kaXRpb25TaG93TW9yZVVybDpcbiAgICAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Eb2N1bWVudGF0aW9uL0xpYnJhcnlQYXJhbWV0ZXI/aWQ9UXVlc3Rpb24mcGFyYW1ldGVyPXZpc2libGVJZlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIkVsw6lyaGV0xZEga8OpcmTDqXNlazpcIixcbiAgICBjZWxsc0VtcHR5Um93c0NvbHVtbnM6IFwiTGVnYWzDoWJiIGVneSBzb3JuYWsgdmFneSBlZ3kgb3N6bG9wbmFrIGxlbm5pZSBrZWxsXCIsXG5cbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwiS8OpcmVtIGFkam9uIG1lZyBlZ3kgw6lydMOpa2V0XCIsXG4gICAgdmFsdWU6IFwiw4lydMOpa1wiLFxuICAgIHRleHQ6IFwiU3rDtnZlZ1wiLFxuICAgIHJvd2lkOiBcIlNvciBJRFwiLFxuICAgIGltYWdlTGluazogXCJLw6lwIFVSTFwiLFxuICAgIGNvbHVtbkVkaXQ6IFwiT3N6bG9wIHN6ZXJrZXN6dMOpc2U6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIkVsZW0gc3plcmtlc3p0w6lzZTogezB9XCIsXG5cbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCLDmnR2b25hbFwiLFxuICAgIHZhbHVlTmFtZTogXCLDiXJ0w6lrIG1lZ25ldmV6w6lzZVwiLFxuICAgIHRpdGxlTmFtZTogXCJDw61tIG1lZ25ldmV6w6lzZVwiLFxuXG4gICAgc2hvd090aGVySXRlbTogXCJSZW5kZWxrZXppayBlZ3nDqWIgw6lydMOpa2tlbFwiLFxuICAgIG90aGVyVGV4dDogXCJBeiBlZ3nDqWIgw6lydMOpayBzesO2dmVnZVwiLFxuICAgIG5hbWU6IFwiTWVnbmV2ZXrDqXNcIixcbiAgICB0aXRsZTogXCJDw61tXCIsXG4gICAgY2VsbFR5cGU6IFwiQ2VsbGF0w61wdXNcIixcbiAgICBjb2xDb3VudDogXCJPc3psb3BvayBzesOhbWFcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiVsOhbGFzc3phIGtpIGEgbGVoZXTFkXPDqWdldCByZW5kZXrDqXPDqXRcIixcbiAgICB2aXNpYmxlOiBcIkzDoXRoYXTDsz9cIixcbiAgICBpc1JlcXVpcmVkOiBcIkvDtnRlbGV6xZE/XCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCLDmmogc29yYmFuIGtlemTFkWRpaz9cIixcbiAgICByb3dzOiBcIlNvcm9rIHN6w6FtYVwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIk1lesWRIGtpdMO2bHTFkXN6w7Z2ZWdlXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwiQSBrw6lwIGVsxZFuw6l6ZXRlIGzDoXRoYXTDsz9cIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwiQXogw6FsbG9tw6FueSB0YXJ0YWxtw6F0IHTDoXJvbGphIGEgSlNPTi1iZW4sIHN6w7Z2ZWdrw6ludFwiLFxuICAgIG1heFNpemU6IFwiTWF4aW3DoWxpcyDDoWxsb23DoW55bcOpcmV0IGJ5dGUtYmFuXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiS8OpcCBtYWdhc3PDoWdhXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJLw6lwIHN6w6lsZXNzw6lnZVwiLFxuICAgIHJvd0NvdW50OiBcIlNvcm9rIHN6w6FtYVwiLFxuICAgIGNvbHVtbkxheW91dDogXCJPc3psb3BvayBlbHJlbmRlesOpc2VcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCInw5pqIHNvciBmZWx2w6l0ZWxlJyBnb21iIGVsaGVseWV6w6lzZVwiLFxuICAgIGFkZFJvd1RleHQ6IFwiJ8OaaiBzb3IgZmVsdsOpdGVsZScgZ29tYiBzesO2dmVnZVwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiJ1NvciBlbHTDoXZvbMOtdMOhc2EnIGdvbWIgc3rDtnZlZ2VcIixcbiAgICByYXRlTWluOiBcIkxlZ2tpc2ViYiBzem9yesOzXCIsXG4gICAgcmF0ZU1heDogXCJMZWduYWd5b2JiIHN6b3J6w7NcIixcbiAgICByYXRlU3RlcDogXCJTem9yesOzIGzDqXDDqXNrw7Z6ZVwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJMZWdraXNlYmIgc3pvcnrDsyBsZcOtcsOhc2FcIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwiTGVnbmFneW9iYiBzem9yesOzIGxlw61yw6FzYVwiLFxuICAgIGlucHV0VHlwZTogXCJNZXrFkSB0w61wdXNhXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiQmXDoWxsw610w6Fzb2sgZmVsaXJhdGFcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiQWxhcMOpcnRlbG1lemV0dCDDqXJ0w6lrXCIsXG4gICAgY2VsbHNEZWZhdWx0Um93OiBcIkNlbGzDoWsgYWxhcMOpcnRlbG1lemV0dCBzesO2dmVnZVwiLFxuXG4gICAgc3VydmV5RWRpdG9yVGl0bGU6IFwiS8OpcmTFkcOtdiBiZcOhbGzDrXTDoXNhaW5hayBtw7Nkb3PDrXTDoXNhXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIlN6ZXJrZXN6dMOpczogezB9XCIsXG5cbiAgICBtYXhMZW5ndGg6IFwiTWF4aW3DoWxpcyBob3NzelwiLFxuXG4gICAgLy9zdXJ2ZXlcbiAgICBzaG93VGl0bGU6IFwiQ8OtbSBtdXRhdMOhc2EvZWxyZWp0w6lzZVwiLFxuICAgIGxvY2FsZTogXCJBbGFww6lydGVsbWV6ZXR0IG55ZWx2XCIsXG4gICAgbW9kZTogXCJNw7NkIChzemVya2VzenTDqXMvbWVndGVraW50w6lzKVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIk5lbWzDoXRoYXTDsyDDqXJ0w6lrZWsgdMO2cmzDqXNlXCIsXG4gICAgY29va2llTmFtZTogXCJTw7x0aSBtZWduZXZlesOpc2UgKGEga8OpcmTFkcOtdiBjc2FrIGVneXN6ZXIga2l0w7ZsdGhldMWRKVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIkvDqXJkxZHDrXYgw6lydMOpa8OpbmVrIGvDvGxkw6lzZSBhIGvDtnZldGtlesWRIGxhcHJhIGzDqXDDqXNrb3JcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJBeiAnZWd5w6liJyBtZXrFkSDDqXJ0w6lrw6luZWsgdMOhcm9sw6FzYSBrw7xsw7ZuIG1lesWRYmVuXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiTGFwb2sgY8OtbcOpbmVrIG11dGF0w6FzYVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJMYXBvayBzesOhbcOhbmFrIG11dGF0w6FzYVwiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCInRWzFkXrFkSBsYXAnIGdvbWIgZmVsaXJhdGFcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiJ0vDtnZldGtlesWRIGxhcCcgZ29tYiBmZWxpcmF0YVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCInQmVmZWplesOpcycgZ29tYiBmZWxpcmF0YVwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCInS2V6ZMOpcycgZ29tYiBmZWxpcmF0YVwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJOYXZpZ8OhY2nDs3MgZ29tYm9rIG11dGF0w6FzYSAoYWxhcMOpcnRlbG1lemV0dCBuYXZpZ8OhY2nDsylcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCInRWzFkXrFkSBsYXAnIGdvbWIgbXV0YXTDoXNhXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIkF6IG1lZ2tlemRldHQgbGFwIGEga8OpcmTFkcOtdiBlbHPFkSBvbGRhbGEuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiQmVmZWplesWRIHN6w7Z2ZWcgbXV0YXTDoXNhIGEga8OpcmTFkcOtdiBiZWZlamV6w6lzZWtvclwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6XG4gICAgICBcIk1pbmRlbiBrw6lyZMOpcyBtZWd2w6FsYXN6b2zDoXNha29yIGF1dG9tYXRpa3VzYW4gYSBrw7Z2ZXRrZXrFkSBsYXByYSBsw6lww6lzXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIkVsxZFyZWhhbGFkw6FzLW11dGF0w7MgbWVnamVsZW7DrXTDqXNlXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIkvDqXJkw6lzIGPDrW3DqW5layBoZWx5ZVwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJLw7Z0ZWxlesWRIHN6aW1iw7NsdW1cIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiS8OpcmTDqXMga2V6ZMWRaW5kZXhlICgxLCAyIHZhZ3kgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJLw6lyZMOpcyBzesOhbcOhbmFrIG11dGF0w6FzYVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTpcbiAgICAgIFwiS8OpcmTDqXMgY8OtbcOpbmVrIHNhYmxvbmphOiAne3N6w6FtfS4ge2vDtnRlbGV6xZF9IHtjw61tfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiS8OpcmTDqXMgaGliYcO8emVuZXTDqW5layBoZWx5emV0ZVwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCJFbHPFkSBrw6lyZMOpcyBhdXRvbWF0aWt1cyBraWplbMO2bMOpc2UgbGFwdsOhbHTDoXMgZXNldMOpblwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIkVsZW1layByZW5kZXrDqXNlIGEgbGFwb25cIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiQSBrw6lyZMWRw612IGtpdMO2bHTDqXPDqXJlIGZvcmTDrXRoYXTDsyBtYXhpbcOhbGlzIGlkxZFcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIkVneSBsYXAga2l0w7ZsdMOpc8OpcmUgZm9yZMOtdGhhdMOzIG1heGltw6FsaXMgaWTFkVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIklkxZF6w610w7MgbXV0YXTDoXNhXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIklkxZF6w610w7MgbcOzZGphXCIsXG4gICAgcmVuZGVyTW9kZTogXCJNZWdqZWxlbsOtdMOpcyBtw7NkamFcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIsOaaiBwYW5lbCBob3p6w6FhZMOhc8OhbmFrIGVuZ2Vkw6lseWV6w6lzZVwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiUGFuZWwgZWx0w6F2b2zDrXTDoXPDoW5hayBlbmdlZMOpbHllesOpc2VcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiJ8OaaiBwYW5lbCBmZWx2w6l0ZWxlJyBnb21iIHN6w7Z2ZWdlXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIidQYW5lbCBlbHTDoXZvbMOtdMOhc2EnIGdvbWIgc3rDtnZlZ2VcIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiTWluZGVuIGVsZW0gbXV0YXTDoXNhIGVneSBsYXBvblwiLFxuICAgIGh0bWw6IFwiSFRNTFwiLFxuICAgIGV4cHJlc3Npb246IFwiS2lmZWplesOpc1wiLFxuXG4gICAgbWluVmFsdWU6IFwiTWluaW3DoWxpcyDDqXJ0w6lrXCIsXG4gICAgbWF4VmFsdWU6IFwiTWF4aW3DoWxpcyDDqXJ0w6lrXCIsXG4gICAgbWluTGVuZ3RoOiBcIk1pbmltw6FsaXMgaG9zc3pcIixcbiAgICBhbGxvd0RpZ2l0czogXCJTesOhbWplZ3llayBlbmdlZMOpbHllesOpc2VcIixcbiAgICBtaW5Db3VudDogXCJNaW5pbcOhbGlzIGRhcmFic3rDoW1cIixcbiAgICBtYXhDb3VudDogXCJNYXhpbcOhbGlzIGRhcmFic3rDoW1cIixcbiAgICByZWdleDogXCJSZWd1bMOhcmlzIGtpZmVqZXrDqXNcIixcblxuICAgIHRhYnM6IHtcbiAgICAgIGdlbmVyYWw6IFwiw4FsdGFsw6Fub3NcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIkJlw6FsbMOtdMOhc29rXCIsXG4gICAgICBodG1sOiBcIkhUTUwgc3plcmtlc3p0xZFcIixcbiAgICAgIGNvbHVtbnM6IFwiT3N6bG9wb2tcIixcbiAgICAgIHJvd3M6IFwiU29yb2tcIixcbiAgICAgIGNob2ljZXM6IFwiTGVoZXTFkXPDqWdla1wiLFxuICAgICAgaXRlbXM6IFwiRWxlbWVrXCIsXG4gICAgICB2aXNpYmxlSWY6IFwiTMOhdGhhdMOzIGhhXCIsXG4gICAgICBlbmFibGVJZjogXCJFbmdlZMOpbHllenZlIGhhXCIsXG4gICAgICByZXF1aXJlZElmOiBcIkvDtnRlbGV6xZEgaGFcIixcbiAgICAgIHJhdGVWYWx1ZXM6IFwiU3pvcnrDsyDDqXJ0w6lrZWtcIixcbiAgICAgIGNob2ljZXNCeVVybDogXCJMZWhldMWRc8OpZ2VrIGEgd2VicsWRbFwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCJBbGFww6lydGVsbWV6ZXR0IGxlaGV0xZFzw6lnZWtcIixcbiAgICAgIG11bHRpcGxlVGV4dEl0ZW1zOiBcIlN6w7Z2ZWdtZXrFkWtcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwiVmFsaWTDoXRvcm9rXCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcIk5hdmlnw6FjacOzXCIsXG4gICAgICBxdWVzdGlvbjogXCJLw6lyZMOpc1wiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCJCZWZlamV6xZEgc3rDtnZlZyAoSFRNTClcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJCZWZlanrFkSBzesO2dmVnIG11dGF0w6Fzw6FuYWsgZmVsdMOpdGVsZVwiLFxuICAgICAgbG9hZGluZ0h0bWw6IFwiQmV0w7ZsdMWRIHN6w7Z2ZWcgKEhUTUwpXCIsXG4gICAgICB0aW1lcjogXCJJZMWResOtdMWRL0t2w616XCIsXG4gICAgICB0cmlnZ2VyczogXCJFc2Vtw6lueXZlesOpcmzFkWtcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiU2FibG9uIGPDrW1lXCJcbiAgICB9LFxuICAgIGVkaXRQcm9wZXJ0eTogXCJUdWxhamRvbnPDoWcgc3plcmtlc3p0w6lzZSAnezB9J1wiLFxuICAgIGl0ZW1zOiBcIlsgRWxlbWVrOiB7MH0gXVwiLFxuXG4gICAgZW50ZXJOZXdWYWx1ZTogXCJLw6lyZW0sIGFkamEgbWVnIGF6IMOpcnTDqWtldC5cIixcbiAgICBub3F1ZXN0aW9uczogXCJOaW5jc2VuZWsga8OpcmTDqXNlayBhIGvDqXJkxZHDrXZiZW4uXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCJLw6lyZW0gaG96em9uIGzDqXRyZSBlZ3kgZXNlbcOpbnl2ZXrDqXJsxZF0XCIsXG4gICAgdHJpZ2dlck9uOiBcIkJlIFwiLFxuICAgIHRyaWdnZXJNYWtlUGFnZXNWaXNpYmxlOiBcIkxhcG9rIGzDoXRoYXTDs3bDoSB0w6l0ZWxlOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCJFbGVtZWsgbMOhdGhhdMOzdsOhIHTDqXRlbGU6XCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCJLw6lyZMWRw612IGJlZmVqZXrDqXNlLCBoYSBzaWtlcmVzLlwiLFxuICAgIHRyaWdnZXJOb3RTZXQ6IFwiTmluY3MgZXNlbcOpbnlrZXplbMWRIGJlw6FsbMOtdHZhXCIsXG4gICAgdHJpZ2dlclJ1bklmOiBcIkZ1dHRhdMOhcyBoYVwiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwiQSBrw7Z2ZXRrZXrFkSDDqXJ0w6lrw6luZWsgY3NlcsOpamU6IFwiLFxuICAgIHRyaWdnZXJGcm9tTmFtZTogXCJBIGvDtnZldGtlesWRIMOpcnTDqWvDqW5layBtw6Fzb2zDoXNhOiBcIixcbiAgICB0cmlnZ2VyUnVuRXhwcmVzc2lvbjogXCJBIGvDtnZldGtlesWRIGtpZmVqZXrDqXMgZnV0dGF0w6FzYTpcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwiZXJyZTogXCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwiTmUgbWVudHNlIGF6IGVyZWRtw6lueXQgYSBrw6lyZMWRw612IGVyZWRtw6luecOpYmUuXCJcbiAgfSxcbiAgLy9Qcm9wZXJ0eSB2YWx1ZXNcbiAgcHY6IHtcbiAgICB0cnVlOiBcImlnYXpcIixcbiAgICBmYWxzZTogXCJoYW1pc1wiLFxuICAgIGluaGVyaXQ6IFwiw7Zyw7ZrbMO2dHRcIixcbiAgICBzaG93OiBcIm11dGF0w6FzXCIsXG4gICAgaGlkZTogXCJlbHJlanTDqXNcIixcbiAgICBkZWZhdWx0OiBcImFsYXDDqXJ0ZWxtZXpldHRcIixcbiAgICBpbml0aWFsOiBcImtlemRldGlcIixcbiAgICByYW5kb206IFwidsOpbGV0bGVuXCIsXG4gICAgY29sbGFwc2VkOiBcImNzdWtvdHRcIixcbiAgICBleHBhbmRlZDogXCJueWl0b3R0XCIsXG4gICAgbm9uZTogXCJzZW1taVwiLFxuICAgIGFzYzogXCJuw7Z2ZWt2xZFcIixcbiAgICBkZXNjOiBcImNzw7Zra2VuxZFcIixcbiAgICBpbmRldGVybWluYXRlOiBcImhhdMOhcm96YXRsYW5cIixcbiAgICBkZWNpbWFsOiBcImRlaW3DoWxpc1wiLFxuICAgIGN1cnJlbmN5OiBcInDDqW56XCIsXG4gICAgcGVyY2VudDogXCJzesOhemFsw6lrXCIsXG4gICAgZmlyc3RFeHBhbmRlZDogXCJlbHPFkSBueWl0dmFcIixcbiAgICBvZmY6IFwia2lcIixcbiAgICBvblBhbmVsOiBcImEgcGFuZWxlblwiLFxuICAgIG9uU3VydmV5OiBcImEga8OpcmTFkcOtdmVuXCIsXG4gICAgbGlzdDogXCJsaXN0YVwiLFxuICAgIHByb2dyZXNzVG9wOiBcImZlbMO8bFwiLFxuICAgIHByb2dyZXNzQm90dG9tOiBcImFsdWxcIixcbiAgICBwcm9ncmVzc1RvcEJvdHRvbTogXCJhbMO8bCDDqXMgZmVsw7xsXCIsXG4gICAgaG9yaXpvbnRhbDogXCJob3Jpem9udMOhbGlzXCIsXG4gICAgdmVydGljYWw6IFwidmVydGlrw6FsaXNcIixcbiAgICB0b3A6IFwiZmVudFwiLFxuICAgIGJvdHRvbTogXCJsZW50XCIsXG4gICAgdG9wQm90dG9tOiBcImZlbnQgw6lzIGxlbnRcIixcbiAgICBsZWZ0OiBcImJhbFwiLFxuICAgIGNvbG9yOiBcInN6w61uXCIsXG4gICAgZGF0ZTogXCJkw6F0dW1cIixcbiAgICBkYXRldGltZTogXCJkw6F0dW0gw6lzIGlkxZFcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwiaGVseWkgZMOhdHVtIMOpcyBpZMWRXCIsXG4gICAgZW1haWw6IFwiZW1haWxcIixcbiAgICBtb250aDogXCJow7NuYXBcIixcbiAgICBudW1iZXI6IFwic3rDoW1cIixcbiAgICBwYXNzd29yZDogXCJqZWxzesOzXCIsXG4gICAgcmFuZ2U6IFwiaW50ZXJ2YWxsdW1cIixcbiAgICB0ZWw6IFwidGVsZWZvblwiLFxuICAgIHRleHQ6IFwic3rDtnZlZ1wiLFxuICAgIHRpbWU6IFwiaWTFkVwiLFxuICAgIHVybDogXCJVUkxcIixcbiAgICB3ZWVrOiBcImjDqXRcIixcbiAgICBoaWRkZW46IFwicmVqdGV0dFwiLFxuICAgIG9uOiBcImJlXCIsXG4gICAgb25QYWdlOiBcImEgbGFwb25cIixcbiAgICBlZGl0OiBcInN6ZXJrZXN6dMOpc1wiLFxuICAgIGRpc3BsYXk6IFwibXV0YXTDoXNcIixcbiAgICBvbkNvbXBsZXRlOiBcImJlZmVqZXrDqXNrb3JcIixcbiAgICBvbkhpZGRlbjogXCJlbHTFsW7DqXNrb3JcIixcbiAgICBhbGw6IFwiw7Zzc3plc1wiLFxuICAgIHBhZ2U6IFwibGFwXCIsXG4gICAgc3VydmV5OiBcImvDqXJkxZHDrXZcIixcbiAgICBvbk5leHRQYWdlOiBcImEga8O2dmV0a2V6xZEgbGFwcmEgbMOpcMOpc2tvclwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcImF6IMOpcnTDqWsgdsOhbHRvesOhc2Frb3JcIlxuICB9LFxuICAvL09wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcIsO8cmVzXCIsXG4gICAgbm90ZW1wdHk6IFwibmVtIMO8cmVzXCIsXG4gICAgZXF1YWw6IFwibWVnZWd5ZXppa1wiLFxuICAgIG5vdGVxdWFsOiBcIm5lbSBlZ3llemlrIG1lZ1wiLFxuICAgIGNvbnRhaW5zOiBcInRhcnRhbG1henphXCIsXG4gICAgbm90Y29udGFpbnM6IFwibmVtIHRhcnRhbG1henphXCIsXG4gICAgZ3JlYXRlcjogXCJuYWd5b2JiIG1pbnRcIixcbiAgICBsZXNzOiBcImtpc2ViYiBtaW50XCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwibmFneW9iYiB2YWd5IGVneWVubMWRXCIsXG4gICAgbGVzc29yZXF1YWw6IFwia2lzZWJiIHZhZ3kgZWd5ZW5sxZFcIlxuICB9LFxuICAvL0VtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiQW5ndWxhciB2ZXJ6acOzIGhhc3puw6FsYXRhXCIsXG4gICAganF1ZXJ5OiBcImpRdWVyeSB2ZXJ6acOzIGhhc3puw6FsYXRhXCIsXG4gICAga25vY2tvdXQ6IFwiS25vY2tvdXQgdmVyemnDsyBoYXN6bsOhbGF0YVwiLFxuICAgIHJlYWN0OiBcIlJlYWN0IHZlcnppw7MgaGFzem7DoWxhdGFcIixcbiAgICB2dWU6IFwiVnVlIHZlcnppw7MgaGFzem7DoWxhdGFcIixcbiAgICBib290c3RyYXA6IFwiSGFzem7DoWxhdCBCb290c3RyYXAgZnJhbWV3b3Jra2VsXCIsXG4gICAgc3RhbmRhcmQ6IFwiSGFzem7DoWxhdCBCb290c3RyYXAgZnJhbWV3b3JrIG7DqWxrw7xsXCIsXG4gICAgc2hvd09uUGFnZTogXCJLw6lyZMWRw612IG11dGF0w6FzYSBhIGxhcG9uXCIsXG4gICAgc2hvd0luV2luZG93OiBcIkvDqXJkxZHDrXYgbXV0YXTDoXNhIGVneSBhYmxha2JhblwiLFxuICAgIGxvYWRGcm9tU2VydmVyOiBcIkvDqXJkxZHDrXYgSlNPTiBiZXTDtmx0w6lzZSBhIHN6ZXJ2ZXJyxZFsXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU3prcmlwdGVrIMOpcyBzdMOtbHVzbGFwb2tcIixcbiAgICB0aXRsZUh0bWw6IFwiSFRNTFwiLFxuICAgIHRpdGxlSmF2YVNjcmlwdDogXCJKYXZhU2NyaXB0XCJcbiAgfSxcbiAgLy9UZXN0IFN1cnZleVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwiVsOhbGFzc3phIGtpIGEgdGVzenRlbG5pIGvDrXbDoW50IGxhcG90OlwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCJOZW1sw6F0aGF0w7MgZWxlbWVrIG1lZ2plbG7DrXTDqXNlXCJcbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIGFuc3dlcmNvdW50dmFsaWRhdG9yOiBcInbDoWxhc3pvayBzesOhbWFcIixcbiAgICBlbWFpbHZhbGlkYXRvcjogXCJlLW1haWxcIixcbiAgICBleHByZXNzaW9udmFsaWRhdG9yOiBcImtpZmVqZXrDqXNcIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcInN6w6FtXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwicmVndWzDoXJpcyBraWZlamV6w6lzXCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCJzesO2dmVnXCJcbiAgfSxcbiAgdHJpZ2dlcnM6IHtcbiAgICBjb21wbGV0ZXRyaWdnZXI6IFwia8OpcmTFkcOtdiBiZWZlamV6w6lzZVwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCLDqXJ0w6lrIGJlw6FsbMOtdMOhc2FcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcIsOpcnTDqWsgbcOhc29sw6FzYVwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcImtpZmVqZXrDqXMgZnV0dGF0w6FzYVwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcImzDoXRoYXTDs3PDoWcgbWVndsOhbHRvenRhdMOhc2EgKG3DoXIgbmluY3MgaGFzem7DoWxhdGJhbilcIlxuICB9LFxuICAvL1Byb3BlcnRpZXNcbiAgcDoge1xuICAgIG5hbWU6IFwiTWVnbmV2ZXrDqXNcIixcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCJDw61tXCIsXG4gICAgICB0aXRsZTogXCJIYWd5amEgw7xyZXNlbiwgaGEgbWVnZWd5ZXppayBhICdNZWduZXZlesOpcyctZWxcIlxuICAgIH0sXG5cbiAgICBuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHk6IFwiTmF2aWfDoWNpw7NzIGdvbWJvayBsw6F0aGF0w7Nzw6FnYVwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIkvDqXJkw6lzZWsgcmVuZGV6w6lzZVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJLaXTDtmx0w6lzZSBmb3Jkw610aGF0w7MgbWF4aW3DoWxpcyBpZMWRXCIsXG5cbiAgICB2aXNpYmxlOiBcIkzDoXRoYXTDs1wiLFxuICAgIHZpc2libGVJZjogXCJMw6F0aGF0w7MgaGFcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwiS8OpcmTDqXMgY8OtbcOpbmVrIGVsaGVseWV6w6lzZVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkxlw61yw6FzXCIsXG4gICAgc3RhdGU6IFwiw4FsbGFwb3RcIixcbiAgICBpc1JlcXVpcmVkOiBcIkvDtnRlbGV6xZFcIixcbiAgICByZXF1aXJlZElmOiBcIkvDtnRlbGV6xZEgaGFcIixcbiAgICBpbmRlbnQ6IFwiQmVrZXpkw6lzXCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwiS8O2dGVsZXrFkSBoaWJhw7x6ZW5ldFwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiw5pqIHNvcmJhbiBrZXpkxZFkaWtcIixcbiAgICBpbm5lckluZGVudDogXCJCZWxzxZEgYmVrZXpkw6lzXCIsXG4gICAgcGFnZTogXCJMYXBcIixcblxuICAgIHdpZHRoOiBcIlN6w6lsZXNzw6lnXCIsXG5cbiAgICBjb21tZW50VGV4dDogXCJNZWdqZWd5esOpcyBzesO2dmVnZVwiLFxuICAgIHZhbHVlTmFtZTogXCLDiXJ0w6lrIG1lZ25ldmV6w6lzZVwiLFxuICAgIGVuYWJsZUlmOiBcIkVuZ2Vkw6lseWV6dmUgaGFcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiQWxhcMOpcnRlbG1lemV0dCDDqXJ0w6lrXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCJIZWx5ZXMgw6lydMOpa1wiLFxuICAgIHJlYWRPbmx5OiBcIkNzYWsgb2x2YXNoYXTDs1wiLFxuICAgIHZhbGlkYXRvcnM6IFwiVmFsaWTDoXRvcm9rXCIsXG4gICAgdGl0bGVMb2NhdGlvbjogXCJDw61tIGVsaGVseWV6w6lzZVwiLFxuXG4gICAgaGFzQ29tbWVudDogXCJWYW4gbWVnamVneXrDqXNcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIlZhbiAnZWd5w6liJ1wiLFxuICAgIGNob2ljZXM6IFwiTGVoZXTFkXPDqWdla1wiLFxuICAgIGNob2ljZXNPcmRlcjogXCJMZWhldMWRc8OpZ2VrIHJlbmRlesOpc2VcIixcbiAgICBjaG9pY2VzQnlVcmw6IFwiTGVoZXTFkXPDqWdlayBhIHdlYnLFkWxcIixcbiAgICBvdGhlclRleHQ6IFwiJ0VnecOpYicgc3rDtnZlZ1wiLFxuICAgIG90aGVyRXJyb3JUZXh0OiBcIidFZ3nDqWInIGhpYmHDvHplbmV0XCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiJ0VnecOpYicgdMOhcm9sw6FzYSBtZWdqZWd5esOpc2vDqW50XCIsXG5cbiAgICBsYWJlbDogXCJDaW1rZVwiLFxuICAgIHNob3dUaXRsZTogXCJDw61tIG11dGF0w6FzYVwiLFxuICAgIHZhbHVlVHJ1ZTogXCLDiXJ0w6lrIGlnYXpcIixcbiAgICB2YWx1ZUZhbHNlOiBcIsOJcnTDqWsgaGFtaXNcIixcblxuICAgIGNvbHM6IFwiT3N6bG9wb2tcIixcbiAgICByb3dzOiBcIlNvcm9rXCIsXG4gICAgcGxhY2Vob2xkZXI6IFwiSGVseWtpdMO2bHTFkVwiLFxuXG4gICAgb3B0aW9uc0NhcHRpb246IFwiJ0Jlw6FsbMOtdMOhc29rJyBmZWxpcmF0YVwiLFxuXG4gICAgZXhwcmVzc2lvbjogXCJLaWZlamV6w6lzXCIsXG4gICAgZm9ybWF0OiBcIkZvcm3DoXR1bVwiLFxuICAgIGRpc3BsYXlTdHlsZTogXCJNZWdqZWxlbsOtdMOpcyBzdMOtbHVzYVwiLFxuICAgIGN1cnJlbmN5OiBcIlDDqW56XCIsXG4gICAgdXNlR3JvdXBpbmc6IFwiQ3NvcG9ydG9zw610w6FzXCIsXG5cbiAgICBzaG93UHJldmlldzogXCJFbMWRbsOpemV0IG11dGF0w6FzYVwiLFxuICAgIGFsbG93TXVsdGlwbGU6IFwiVMO2YmIgZW5nZWTDqWx5ZXrDqXNlXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiS8OpcCBtYWdhc3PDoWdhXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJLw6lwIHN6w6lsZXNzw6lnZVwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCInRWd5w6liJyB0w6Fyb2zDoXNhIHN6w7Z2ZWdrw6ludFwiLFxuICAgIG1heFNpemU6IFwiTWF4aW3DoWxpcyBtw6lyZXRcIixcblxuICAgIGh0bWw6IFwiSFRNTFwiLFxuXG4gICAgY29sdW1uczogXCJPc3psb3Bva1wiLFxuICAgIGNlbGxzOiBcIkNlbGzDoWtcIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIk1pbmRlbiBzb3Iga8O2dGVsZXrFkVwiLFxuXG4gICAgaG9yaXpvbnRhbFNjcm9sbDogXCJIb3Jpem9udMOhbGlzIGfDtnJnZXTDqXNcIixcbiAgICBjZWxsVHlwZTogXCJDZWxsYXTDrXB1c1wiLFxuICAgIGNvbHVtbnNMYXlvdXQ6IFwiT3N6bG9wb2sgZWxyZW5kZXrDqXNlXCIsXG4gICAgY29sdW1uQ29sQ291bnQ6IFwiT3N6bG9wb2sgc3rDoW1hXCIsXG4gICAgY29sdW1uTWluV2lkdGg6IFwiT3N6bG9wIG1pbmltw6FsaXMgc3rDqWxlc3PDqWdlXCIsXG5cbiAgICByb3dDb3VudDogXCJTb3JvayBzesOhbWFcIixcbiAgICBtaW5Sb3dDb3VudDogXCJTb3JvayBtaW5pbcOhbGlzIHN6w6FtYVwiLFxuICAgIG1heFJvd0NvdW50OiBcIlNvcm9rIG1heGltw6FsaXMgc3rDoW1hXCIsXG4gICAga2V5TmFtZTogXCJLdWxjcyBtZWduZXZlesOpc2VcIixcbiAgICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcIkt1bGNzIGR1cGxpa8OhY2nDs3MgaGliYcO8emVuZXRlXCIsXG4gICAgY29uZmlybURlbGV0ZTogXCJFbHTDoXZvbMOtdMOhcyBtZWdlcsWRc8OtdMOpc2VcIixcbiAgICBjb25maXJtRGVsZXRlVGV4dDogXCJFbHTDoXZvbMOtw6F0cyBtZWdlcsWRc8OtdMOpc2Uga8OpcmTDqXNcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCInw5pqIHNvciBmZWx2w6l0ZWxlJyBnb21iIGVsaGVseWV6w6lzZVwiLFxuICAgIGFkZFJvd1RleHQ6IFwiJ8OaaiBzb3IgZmVsdsOpdGVsZScgZ29tYiBzesO2dmVnZVwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiJ1NvciBlbHTDoXZvbMOtdMOhc2EnIGdvbWIgc3rDtnZlZ2VcIixcblxuICAgIGl0ZW1zOiBcIkVsZW1la1wiLFxuICAgIGl0ZW1TaXplOiBcIkVsZW0gbcOpcmV0ZVwiLFxuICAgIGNvbENvdW50OiBcIk9zemxvcG9rIHN6w6FtYVwiLFxuXG4gICAgdGVtcGxhdGVUaXRsZTogXCJTYWJsb24gY8OtbWVcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcIlNhYmxvbiBsZcOtcsOhc2FcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIsOaaiBwYW5lbCBmZWx2w6l0ZWzDqW5layBlbmdlZMOpbHllesOpc2VcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIlBhbmVsIGVsdMOhdm9sw610w6Fzw6FuYWsgZW5nZWTDqWx5ZXrDqXNlXCIsXG4gICAgcGFuZWxDb3VudDogXCJQYW5lbGVrIHN6w6FtYVwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwiUGFuZWxlayBtaW5pbcOhbGlzIHN6w6FtYVwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwiUGFuZWxlayBtYXhpbcOhbGlzIHN6w6FtYVwiLFxuICAgIHBhbmVsc1N0YXRlOiBcIlBhbmVsZWsgw6FsbGFwb3RhXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIifDmmogcGFuZWwgZmVsdsOpdGVsZScgZ29tYiBzesO2dmVnZVwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCInUGFuZWwgZWx0w6F2b2zDrXTDoXNhJyBnb21iIHN6w7Z2ZWdlXCIsXG4gICAgcGFuZWxQcmV2VGV4dDogXCInRWzFkXrFkSBwYW5lbCcgZ29tYiBzesO2dmVnZVwiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwiJ0vDtnZldGtlesWRIHBhbmVsJyBzesO2dmVnZVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiS8OpcmTDqXMgc3rDoW3DoW5hayBtdXRhdMOhc2FcIixcbiAgICBzaG93UmFuZ2VJblByb2dyZXNzOiBcIkVsxZFyZWhhbGFkw6FzLW11dGF0w7MgXCIsXG4gICAgcmVuZGVyTW9kZTogXCJNZWdqZWxlbsOtdMOpcyBtw7NkamFcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwiU2FibG9uIGPDrW3DqW5layBlbGhlbHllesOpc2VcIixcblxuICAgIHJhdGVWYWx1ZXM6IFwiU3pvcnrDsyDDqXJ0w6lrZWtcIixcbiAgICByYXRlTWluOiBcIkxlZ2tpc2ViYiBzem9yesOzXCIsXG4gICAgcmF0ZU1heDogXCJMZWduYWd5b2JiIHN6b3J6w7NcIixcbiAgICByYXRlU3RlcDogXCJTem9yesOzIGzDqXDDqXNrw7Z6ZVwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJMZWdraXNlYmIgc3pvcnrDsyBsZcOtcsOhc2FcIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwiTGVnbmFneW9iYiBzem9yesOzIGxlw61yw6FzYVwiLFxuXG4gICAgaW5wdXRUeXBlOiBcIk1lesWRIHTDrXB1c2FcIixcbiAgICBzaXplOiBcIk3DqXJldFwiLFxuXG4gICAgbG9jYWxlOiBcIkFsYXDDqXJ0ZWxtZXpldHQgbnllbHZcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiRWxzxZEga8OpcmTDqXMgYXV0b21hdGlrdXMga2lqZWzDtmzDqXNlIGxhcHbDoWx0w6FzIGVzZXTDqW5cIixcbiAgICBjb21wbGV0ZWRIdG1sOiBcIkJlZmVqZXrFkSBzesO2dmVnIChIVE1MKVwiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwiQmVmZWplesOpcyBlbMWRdHRpIHN6w7Z2ZWcgKEhUTUwpXCIsXG4gICAgbG9hZGluZ0h0bWw6IFwiQmV0w7ZsdMWRIHN6w7Z2ZWcgKEhUTUwpXCIsXG4gICAgdHJpZ2dlcnM6IFwiRXNlbcOpbnl2ZXrDqXJsxZFrXCIsXG4gICAgY29va2llTmFtZTogXCJTw7x0aSBtZWduZXZlesOpc2VcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCJLw6lyZMWRw612IMOpcnTDqWvDqW5layBrw7xsZMOpc2UgYSBrw7Z2ZXRrZXrFkSBsYXByYSBsw6lww6lza29yXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIk5hdmlnw6FjacOzcyBnb21ib2sgbXV0YXTDoXNhIChhbGFww6lydGVsbWV6ZXR0IG5hdmlnw6FjacOzKVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIidFbMWResWRIGxhcCcgZ29tYiBtdXRhdMOhc2FcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJMYXBvayBjw61tw6luZWsgbXV0YXTDoXNhXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiQmVmZWplesWRIHN6w7Z2ZWcgbXV0YXTDoXNhIGEga8OpcmTFkcOtdiBiZWZlamV6w6lzZWtvclwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJMYXBvayBzesOhbcOhbmFrIG11dGF0w6FzYVwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJLw6lyZMOpcyBoaWJhw7x6ZW5ldMOpbmVrIGhlbHl6ZXRlXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIkVsxZFyZWhhbGFkw6FzLW11dGF0w7MgbWVnamVsZW7DrXTDqXNlXCIsXG4gICAgbW9kZTogXCJNw7NkIChzemVya2VzenTDqXMvbWVndGVraW50w6lzKVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6XG4gICAgICBcIk1pbmRlbiBrw6lyZMOpcyBtZWd2w6FsYXN6b2zDoXNha29yIGF1dG9tYXRpa3VzYW4gYSBrw7Z2ZXRrZXrFkSBsYXByYSBsw6lww6lzXCIsXG4gICAgY2hlY2tFcnJvcnNNb2RlOiBcIkhpYmF2aXpzZ8OhbGF0XCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiTmVtbMOhdGhhdMOzIMOpcnTDqWtlayB0w7ZybMOpc2VcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiJ0tlemTDqXMnIGdvbWIgZmVsaXJhdGFcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiJ0VsxZF6xZEgbGFwJyBnb21iIGZlbGlyYXRhXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIidLw7Z2ZXRrZXrFkSBsYXAnIGdvbWIgZmVsaXJhdGFcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiJ0JlZmVqZXrDqXMnIGdvbWIgZmVsaXJhdGFcIixcbiAgICByZXF1aXJlZFRleHQ6IFwiS8O2dGVsZXrFkSBzemltYsOzbHVtXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIkvDqXJkw6lzIGtlemTFkWluZGV4ZSAoMSwgMiB2YWd5ICdBJywgJ2EnKVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTpcbiAgICAgIFwiS8OpcmTDqXMgY8OtbcOpbmVrIHNhYmxvbmphOiAne3N6w6FtfS4ge2vDtnRlbGV6xZF9IHtjw61tfSdcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiQXogbWVna2V6ZGV0dCBsYXAgYSBrw6lyZMWRw612IGVsc8WRIG9sZGFsYS5cIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiTWluZGVuIGVsZW0gbXV0YXTDoXNhIGVneSBsYXBvblwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwiRWd5IGxhcCBraXTDtmx0w6lzw6lyZSBmb3Jkw610aGF0w7MgbWF4aW3DoWxpcyBpZMWRXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiSWTFkXrDrXTFkSBtdXRhdMOhc2FcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwiSWTFkXrDrXTFkSBtw7NkamFcIixcblxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcIlBhbmVsIGFsYXDDqXJ0ZWxtZXpldHQgw6lydMOpa2VcIixcbiAgICBkZWZhdWx0Um93VmFsdWU6IFwiU29yIGFsYXDDqXJ0ZWxtZXpldHQgw6lydMOpa2VcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiTGVoZXQgw7xyZXNcIixcbiAgICBub25lVGV4dDogXCLDnHJlcyBzesO2dmVnXCIsXG5cbiAgICB0ZXh0OiBcIlN6w7Z2ZWdcIlxuICB9XG59O1xuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJodVwiXSA9IGh1U3RyaW5ncztcbiIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IHZhciBpbmRvbmVzaWFuU3RyaW5ncyA9IHtcbiAgLy9zdXJ2ZXkgdGVtcGxhdGVzXG4gIHN1cnZleToge1xuICAgIGVkaXQ6IFwiVWJhaFwiLFxuICAgIGV4dGVybmFsSGVscExpbms6IFwiVG9udG9uIGRhbiBwZWxhamFyaSBjYXJhIG1lbWJ1YXQgc3VydmVpXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDpcbiAgICAgIFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0gycnU5b2tJY29vTlpmcElieXE0cVE/dmlld19hcz1zdWJzY3JpYmVyXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIlNpbGFoa2FuIGxldGFra2FuIHBlcnRhbnlhYW4gZGkgc2luaSBkYXJpIEtvdGFrIFBlcmtha2FzIGRpIHNlYmVsYWgga2lyaS5cIixcbiAgICBjb3B5OiBcIlNhbGluXCIsXG4gICAgYWRkVG9Ub29sYm94OiBcIlRhbWJhaGthbiBrZSBLb3RhayBQZXJrYWthc1wiLFxuICAgIGRlbGV0ZVBhbmVsOiBcIkhhcHVzIFBhbmVsXCIsXG4gICAgZGVsZXRlUXVlc3Rpb246IFwiSGFwdXMgUGVydGFueWFhblwiLFxuICAgIGNvbnZlcnRUbzogXCJNZW5ndWJhaCBrZVwiLFxuICAgIGRyYWc6IFwiVGFyaWsgZWxlbWVuXCJcbiAgfSxcbiAgLy9xdWVzdGlvblR5cGVzXG4gIHF0OiB7XG4gICAgZGVmYXVsdDogXCJEZWZhdWx0XCIsXG4gICAgY2hlY2tib3g6IFwiS290YWsgQ2VudGFuZ1wiLFxuICAgIGNvbW1lbnQ6IFwiS29tZW50YXJcIixcbiAgICBpbWFnZXBpY2tlcjogXCJHYW1iYXJcIixcbiAgICBkcm9wZG93bjogXCJLb3RhayBLb21ib1wiLFxuICAgIGZpbGU6IFwiQmVya2FzXCIsXG4gICAgaHRtbDogXCJIdG1sXCIsXG4gICAgbWF0cml4OiBcIk1hdHJpa3MgKHBpbGloYW4gdHVuZ2dhbClcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCJNYXRyaWtzIChwaWxpaGFuIGdhbmRhKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0cmlrcyAoYmFyaXMgZGluYW1pcylcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwiVGVrcyBHYW5kYVwiLFxuICAgIHBhbmVsOiBcIlBhbmVsXCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIlBhbmVsIChwYW5lbCBkaW5hbWlzKVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwiUGlsaWhhbiBHYW5kYVwiLFxuICAgIHJhdGluZzogXCJQZXJpbmdrYXRcIixcbiAgICB0ZXh0OiBcIklucHV0IFR1bmdnYWxcIixcbiAgICBib29sZWFuOiBcIkJvb2xlYW5cIixcbiAgICBleHByZXNzaW9uOiBcIkVrc3ByZXNpIChkaWJhY2Egc2FqYSlcIixcbiAgICBmbG93cGFuZWw6IFwiUGFuZWwgQWxpcmFuXCJcbiAgfSxcbiAgLy9TdHJpbmdzIGluIEVkaXRvclxuICBlZDoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwiRGVmYXVsdCAoezB9KVwiLFxuICAgIHN1cnZleTogXCJTdXJ2ZWlcIixcbiAgICBzZXR0aW5nczogXCJQZW5nYXR1cmFuIFN1cnZlaVwiLFxuICAgIG9wamVjdFByb3BlcnRpZXNIZWFkZXI6IFwiTGFuanV0YW5cIixcbiAgICBzaG93T2JqZWN0UHJvcGVydGllczogXCJUYW1waWxrYW4gUHJvcGVydGkgT2J5ZWtcIixcbiAgICBoaWRlT2JqZWN0UHJvcGVydGllczogXCJTZW1idW55aWthbiBQcm9wZXJ0aSBPYnlla1wiLFxuICAgIGVkaXRTdXJ2ZXk6IFwiVWJhaCBTdXJ2ZWlcIixcbiAgICBhZGROZXdQYWdlOiBcIlRhbWJhaCBIYWxhbWFuIEJhcnVcIixcbiAgICBtb3ZlUmlnaHQ6IFwiR2VzZXIga2UgS2FuYW5cIixcbiAgICBtb3ZlTGVmdDogXCJHZXNlciBrZSBLaXJpXCIsXG4gICAgZGVsZXRlUGFnZTogXCJIYXB1cyBIYWxhbWFuXCIsXG4gICAgZWRpdFBhZ2U6IFwiVWJhaCBIYWxhbWFuXCIsXG4gICAgZWRpdDogXCJVYmFoXCIsXG4gICAgbmV3UGFnZU5hbWU6IFwiaGFsYW1hblwiLFxuICAgIG5ld1F1ZXN0aW9uTmFtZTogXCJwZXJ0YW55YWFuXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBhbmVsXCIsXG4gICAgdGVzdFN1cnZleTogXCJDb2JhIFN1cnZlaVwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJDb2JhIFN1cnZlaSBMYWdpXCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIkxlYmFyIHN1cnZlaTogXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwiRW1iZWQgU3VydmVpXCIsXG4gICAgdHJhbnNsYXRpb246IFwiVGVyamVtYWhhblwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwiU2ltcGFuIFN1cnZlaVwiLFxuICAgIGRlc2lnbmVyOiBcIlJhbmNhbmdhbiBTdXJ2ZWlcIixcbiAgICBqc29uRWRpdG9yOiBcIlBlbmd1YmFoIEpTT05cIixcbiAgICB1bmRvOiBcIlVydW5na2FuXCIsXG4gICAgcmVkbzogXCJVbGFuZ2lcIixcbiAgICBvcHRpb25zOiBcIlBpbGloYW5cIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCJIYXNpbGthbiBKU09OIHlhbmcgVmFsaWRcIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJIYXNpbGthbiBKU09OIHlhbmcgZGFwYXQgZGliYWNhXCIsXG4gICAgdG9vbGJveDogXCJLb3RhayBQZXJrYWthc1wiLFxuICAgIHRvb2xib3hHZW5lcmFsQ2F0ZWdvcnk6IFwiVW11bVwiLFxuICAgIGRlbFNlbE9iamVjdDogXCJIYXB1cyBvYmplayB5YW5nIGRpcGlsaWhcIixcbiAgICBlZGl0U2VsT2JqZWN0OiBcIlViYWggb2JqZWsgeWFuZyBkaXBpbGloXCIsXG4gICAgY29ycmVjdEpTT046IFwiUGxlYXNlIGNvcnJlY3QgSlNPTi5cIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcIkhhc2lsIHN1cnZlaTogXCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIlNlYmFnYWkgdGFiZWxcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCJTZWJhZ2FpIEpTT05cIixcbiAgICByZXN1bHRzVGl0bGU6IFwiSnVkdWwgUGVydGFueWFhblwiLFxuICAgIHJlc3VsdHNOYW1lOiBcIk5hbWEgUGVydGFueWFhblwiLFxuICAgIHJlc3VsdHNWYWx1ZTogXCJOaWxhaSBKYXdhYmFuXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCJUYW1waWxrYW4gTmlsYWlcIixcbiAgICBtb2RpZmllZDogXCJEaW1vZGlmaWthc2lcIixcbiAgICBzYXZpbmc6IFwiTWVueWltcGFuXCIsXG4gICAgc2F2ZWQ6IFwiVGVyc2ltcGFuXCIsXG4gICAgc2F2ZUVycm9yOiBcIkVycm9yISBLb250ZW4gZWRpdG9yIHRpZGFrIGJlcmhhc2lsIGRpc2ltcGFuLlwiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwiUGlsaWggYmFoYXNhIHVudHVrIHRlcmplbWFoYW5cIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxTdHJpbmdzOiBcIlRhbXBpbGthbiBzZWx1cnVoIHN0cmluZ1wiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcIlRhbXBpbGthbiBzZWx1cnVoIGhhbGFtYW5cIixcbiAgICB0cmFuc2xhdGlvbk5vU3RyaW5nczogXCJUaWRhayBhZGEgc3RyaW5nIGRpdGVyamVtYWhrYW4uIFNpbGFoa2FuIGdhbnRpIHBlbnlhcmluZy5cIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcIkVrc3BvcnQga2UgQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25JbXBvcnRGcm9tU0NWQnV0dG9uOiBcIkltcG9ydCBkYXJpIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDogXCJHYWJ1bmdrYW4gezB9IGRlbmdhbiBkZWZhdWx0IGxvY2FsZVwiLFxuICAgIGJvbGQ6IFwiVGViYWxcIixcbiAgICBpdGFsaWM6IFwiTWlyaW5nXCIsXG4gICAgdW5kZXJsaW5lOiBcIkdhcmlzIEJhd2FoXCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCJUYW1iYWggcGVydGFueWFhbi4uLlwiLFxuICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkl0ZW1UZXh0OiBcIlRhbXBpbGthbiBqaWthOlwiXG4gIH0sXG4gIC8vUHJvcGVydHkgbmFtZXMgaW4gdGFibGUgaGVhZGVyc1xuICBwZWw6IHtcbiAgICBpc1JlcXVpcmVkOiBcIldhamliP1wiXG4gIH0sXG4gIC8vUHJvcGVydHkgRWRpdG9yc1xuICBwZToge1xuICAgIGFwcGx5OiBcIlRlcmFwa2FuXCIsXG4gICAgb2s6IFwiT0tcIixcbiAgICBjYW5jZWw6IFwiQmF0YWxcIixcbiAgICByZXNldDogXCJSZXNldFwiLFxuICAgIGNsb3NlOiBcIlR1dHVwXCIsXG4gICAgZGVsZXRlOiBcIkhhcHVzXCIsXG4gICAgYWRkTmV3OiBcIlRhbWJhaGthbiBCYXJ1XCIsXG4gICAgYWRkSXRlbTogXCJLbGlrIHVudHVrIG1lbmFtYmFoa2FuIHNlYnVhaCBpdGVtLi4uXCIsXG4gICAgcmVtb3ZlQWxsOiBcIkhhcHVzIFNlbXVhXCIsXG4gICAgZWRpdDogXCJVYmFoXCIsXG4gICAgaXRlbVZhbHVlRWRpdDogXCJEaXRhbXBpbGthbiBKaWthXCIsXG4gICAgZWRpdENob2ljZXM6IFwiVWJhaCBQaWxpaGFuXCIsXG4gICAgbW92ZTogXCJQaW5kYWhcIixcbiAgICBlbXB0eTogXCI8a29zb25nPlwiLFxuICAgIG5vdEVtcHR5OiBcIjx1YmFoIG5pbGFpPlwiLFxuICAgIGZhc3RFbnRyeTogXCJFbnRyaSBDZXBhdFwiLFxuICAgIGZvcm1FbnRyeTogXCJFbnRyaSBGb3JtXCIsXG4gICAgdGVzdFNlcnZpY2U6IFwiQ29iYSBsYXlhbmFuXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UXVlc3Rpb246IFwiUGlsaWggcGVydGFueWFhbi4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCJTaWxhaGthbiBtYXN1a2thbi9waWxpaCBuaWxhaVwiLFxuICAgIGNvbmRpdGlvbkJ1dHRvbkFkZDogXCJUYW1iYWhcIixcbiAgICBjb25kaXRpb25CdXR0b25SZXBsYWNlOiBcIkdhbnRpXCIsXG4gICAgY29uZGl0aW9uSGVscDpcbiAgICAgIFwiU2lsYWhrYW4gbWFzdWtrYW4gZWtzcHJlc2kgYm9vbGVhbi4gSGFydXMgbWVuZ2VtYmFsaWthbiAnYmVuYXInIGFnYXIgcGVydGFueWFhbiBkYXBhdCB0ZXJsaWhhdC4gQ29udG9oOiB7cXVlc3Rpb24xfSA9ICduaWxhaTEnIG9yICh7cXVlc3Rpb24yfSAqIHtxdWVzdGlvbjR9ICA+IDIwIGFuZCB7cXVlc3Rpb24zfSA8IDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcIlNpbGFoa2FuIG1hc3VrYW4gc2VidWFoIGVrc3ByZXNpLiBBbmRhIGRhcGF0IG1lbmdndW5ha2FuIGt1cnVuZyBrdXJhd2FsIHVudHVrIG1lbmRhcGF0a2FuIGFrc2VzIHBhZGEgbmlsYWkgcGVydGFueWFhbjogJ3txdWVzdGlvbjF9ICsge3F1ZXN0aW9uMn0nLCAnKHtwcmljZX0qe3F1YW50aXR5fSkgKiAoMTAwIC0ge2Rpc2NvdW50fSknXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCJUZWthbiBjdHJsK3NwYXNpIHVudHVrIG1lbmRhcGF0a2FuIHBldHVuanVrIHBlbnllbGVzYWlhbiBla3NwcmVzaVwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcIkJhcmlzIHNhYXQgaW5pXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCJQYW5lbCBzYWF0IGluaVwiLFxuICAgIHNob3dNb3JlOiBcIlVudHVrIGRldGlsIHNlbGFuanV0bnlhIHNpbGFoa2FuIHBlcmlrc2EgZG9rdW1lbnRhc2lcIixcbiAgICBjb25kaXRpb25TaG93TW9yZVVybDpcbiAgICAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Eb2N1bWVudGF0aW9uL0xpYnJhcnlQYXJhbWV0ZXI/aWQ9UXVlc3Rpb24mcGFyYW1ldGVyPXZpc2libGVJZlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIlBlcnRhbnlhYW4gdGVyc2VkaWE6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIkhhcnVzIGFkYSBzZXRpZGFrbnlhIHNhdHUga29sb20gYXRhdSBiYXJpc1wiLFxuXG4gICAgcHJvcGVydHlJc0VtcHR5OiBcIlNpbGFoa2FuIG1hc3Vra2FuIG5pbGFpXCIsXG4gICAgdmFsdWU6IFwiTmlsYWlcIixcbiAgICB0ZXh0OiBcIlRla3NcIixcbiAgICByb3dpZDogXCJJRCBiYXJpc1wiLFxuICAgIGltYWdlTGluazogXCJMaW5rIEdhbWJhclwiLFxuICAgIGNvbHVtbkVkaXQ6IFwiVWJhaCBrb2xvbTogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwiVWJhaCBpdGVtOiB7MH1cIixcblxuICAgIHVybDogXCJVUkxcIixcbiAgICBwYXRoOiBcIlBhdGhcIixcbiAgICB2YWx1ZU5hbWU6IFwiTmFtYSBuaWxhaVwiLFxuICAgIHRpdGxlTmFtZTogXCJOYW1hIGp1ZHVsXCIsXG5cbiAgICBzaG93T3RoZXJJdGVtOiBcIk1lbWlsaWtpIGl0ZW0gbGFpblwiLFxuICAgIG90aGVyVGV4dDogXCJUZWtzIGl0ZW0gbGFpblwiLFxuICAgIG5hbWU6IFwiTmFtYVwiLFxuICAgIHRpdGxlOiBcIkp1ZHVsXCIsXG4gICAgY2VsbFR5cGU6IFwiSmVuaXMgc2VsXCIsXG4gICAgY29sQ291bnQ6IFwiSnVtbGFoIGtvbG9tXCIsXG4gICAgY2hvaWNlc09yZGVyOiBcIlRlbnR1a2FuIHVydXRhbiBwaWxpaGFuXCIsXG4gICAgdmlzaWJsZTogXCJUZXJsaWhhdD9cIixcbiAgICBpc1JlcXVpcmVkOiBcIldhamliP1wiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiTXVsYWkgZGVuZ2FuIGJhcmlzIGJhcnU/XCIsXG4gICAgcm93czogXCJKdW1sYWggYmFyaXNcIixcbiAgICBwbGFjZWhvbGRlcjogXCJNYXN1a2thbiBwbGFjZWhvbGRlclwiLFxuICAgIHNob3dQcmV2aWV3OiBcIlR1bmp1a2thbiB0aW5qYXVhbiBnYW1iYXI/XCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIlNpbXBhbiBrb250ZW4gYmVya2FzIGRhbGFtIGhhc2lsIEpTT04gc2ViYWdhaSB0ZWtzXCIsXG4gICAgbWF4U2l6ZTogXCJVa3VyYW4gbWFrc2ltdW0gYmVya2FzIGRhbGFtIGJ5dGVcIixcbiAgICBpbWFnZUhlaWdodDogXCJUaW5nZ2kgZ2FtYmFyXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJMZWJhciBnYW1iYXJcIixcbiAgICByb3dDb3VudDogXCJKdW1sYWggYmFyaXNcIixcbiAgICBjb2x1bW5MYXlvdXQ6IFwiVGF0YSBsZXRhayBrb2xvbVwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcIlRhbWJhaCBsb2thc2kgdG9tYm9sIGJhcmlzXCIsXG4gICAgYWRkUm93VGV4dDogXCJUZWtzIHRhbWJhaCB0b21ib2wgYmFyaXNcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlRla3MgaGFwdXMgdG9tYm9sIGJhcmlzXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIkRlc2tyaXBzaSBuaWxhaSBtaW5pbXVtXCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcIkRlc2tyaXBzaSBuaWxhaSBtYWtzaW11bVwiLFxuICAgIGlucHV0VHlwZTogXCJKZW5pcyBtYXN1a2FuXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiS2V0ZXJhbmdhbiBwaWxpaGFuXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIk5pbGFpIHN0YW5kYXJcIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwiVGVrcyBzZWwgc3RhbmRhclwiLFxuXG4gICAgc3VydmV5RWRpdG9yVGl0bGU6IFwiVWJhaCBwZW5nYXR1cmFuIHN1cnZlaVwiLFxuICAgIHFFZGl0b3JUaXRsZTogXCJVYmFoOiB7MH1cIixcblxuICAgIG1heExlbmd0aDogXCJQYW5qYW5nIG1ha3NpbXVtXCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCJUYW1waWxrYW4vc2VtYnVueWlrYW4ganVkdWxcIixcbiAgICBsb2NhbGU6IFwiQmFoYXNhIHN0YW5kYXJcIixcbiAgICBtb2RlOiBcIk1vZGUgKHViYWgvYmFjYSBzYWphKVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIkJlcnNpaGthbiBuaWxhaSB0YWsgdGVybGloYXRcIixcbiAgICBjb29raWVOYW1lOiBcIk5hbWEgY29va2llICh1bnR1ayBtZW5vbmFrdGlma2FuIG1lbmphbGFua2FuIHN1cnZlaSBkdWEga2FsaSBzZWNhcmEgbG9rYWwpXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiS2lyaW0gaGFzaWwgc3VydmVpIHBhZGEgaGFsYW1hbiBzZWxhbmp1dG55YVwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcIlNpbXBhbiBuaWxhaSAnbGFpbm55YScgcGFkYSBiaWRhbmcgbGFpbm55YVwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIlRhbXBpbGthbiBqdWR1bCBoYWxhbWFuXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIlRhbXBpbGthbiBub21vciBoYWxhbWFuXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIlRla3MgaGFsYW1hbiB0b21ib2wgc2ViZWx1bW55YVwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJUZWtzIGhhbGFtYW4gdG9tYm9sIHNlbGFuanV0bnlhXCIsXG4gICAgY29tcGxldGVUZXh0OiBcIlRla3MgdG9tYm9sIHNlbGVzYWlcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiVGVrcyB0b21ib2wgbXVsYWlcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwiVGFtcGlsa2FuIHRvbWJvbCBuYXZpZ2FzaSAobmF2aWdhc2kgc3RhbmRhcilcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJUYW1waWxrYW4gdG9tYm9sIHNlYmVsdW1ueWEgKHBlbmdndW5hIG11bmdraW4ga2VtYmFsaSBrZSBoYWxhbWFuIHNlYmVsdW1ueWEpXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIkhhbGFtYW4gcGVydGFtYSBwYWRhIHN1cnZlaSBhZGFsYWggaGFsYW1hbiB5YW5nIHRlbGFoIGRpbXVsYWkuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiVGFtcGlsa2FuIGtlc2VsdXJ1aGFuIGhhbGFtYW4gZGkgYWtoaXIgKGNvbXBsZXRlZEh0bWwpXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzpcbiAgICAgIFwiU2V0ZWxhaCBtZW5qYXdhIHNlbHVydWggcGVydGFueWFhbiwgcGVyZ2kga2UgaGFsYW1hbiBiZXJpa3V0bnlhIHNlY2FyYSBvdG9tYXRpc1wiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJUYW1waWxrYW4gcHJvZ3Jlc3MgYmFyXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIkxva2FzaSBqdWR1bCBwZXJ0YW55YWFuXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlNpbWJpbCBwZXJ0YW55YWFuIHdhamliXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIkluZGVrcyBtdWxhaSBwZXJ0YW55YWFuICgxLCAyIGF0YXUgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJUYW1waWxrYW4gbm9tb3IgcGVydGFueWFhblwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTpcbiAgICAgIFwiVGVtcGxhdGUgSnVkdWwgUGVydGFueWFhbiwgZGVmYXVsdCBhZGFsYWg6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiTG9rYXNpIFBlcnRhbnlhYW4gRXJyb3JcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiRm9rdXMga2UgcGVydGFueWFhbiBwZXJ0YW1hIHNhYXQgcGVyZ2FudGlhbiBoYWxhbWFuXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiVXJ1dGFrYW4gZWxlbWVuIHBhZGEgaGFsYWFuXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIldha3R1IG1ha3NpbXVtIHVudHVrIG1lbnllbGVzYWlrYW4gc3VydmVpXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJXYWt0dSBtYWtzaW11bSB1bnR1ayBtZW55ZWxlc2Fpa2FuIHN1YXR1IGhhbGFtYW5cIixcbiAgICBzaG93VGltZXJQYW5lbDogXCJUYW1waWxrYW4gcGFuZWwgcGVuZ2F0dXIgd2FrdHVcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwiVGFtcGlsa2FuIG1vZGUgcGFuZWwgcGVuZ2F0dXIgd2FrdHVcIixcbiAgICByZW5kZXJNb2RlOiBcIk1vZGUgcmVuZGVyXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJCb2xlaGthbiBwZW5hbWJhaGFuIHBhbmVsXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJCb2xlaGthbiBwZW5naGFwdXNhbiBwYW5lbFwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJUZWtzIHRhbWJhaCBwYW5lbFwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJUZWtzIGhhcHVzIHBhbmVsXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIlRhbXBpbGthbiBzZWx1cnVoIGVsZW1lbiBwYWRhIGhhbGFtYW5cIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBleHByZXNzaW9uOiBcIkVrc3ByZXNpXCIsXG5cbiAgICBtaW5WYWx1ZTogXCJOaWxhaSBtaW5pbXVtXCIsXG4gICAgbWF4VmFsdWU6IFwiTmlsYWkgbWFrc2ltdW1cIixcbiAgICBtaW5MZW5ndGg6IFwiUGFuamFuZyBtaW5pbXVtXCIsXG4gICAgYWxsb3dEaWdpdHM6IFwiQm9sZWhrYW4gYW5na2FcIixcbiAgICBtaW5Db3VudDogXCJIaXR1bmdhbiBtaW5pbXVtXCIsXG4gICAgbWF4Q291bnQ6IFwiSGl0dW5nYW4gbWFrc2ltdW1cIixcbiAgICByZWdleDogXCJFa3NwcmVzaSByZWd1bGVyXCIsXG5cbiAgICB0b3RhbFRleHQ6IFwiVG90YWwgdGVrc1wiLFxuICAgIHRvdGFsVHlwZTogXCJUb3RhbCBqZW5pc1wiLFxuICAgIHRvdGFsRXhwcmVzc2lvbjogXCJUb3RhbCBla3NwcmVzaVwiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcIlRvdGFsIGdheWEgdGFtcGlsYW5cIixcbiAgICB0b3RhbEN1cnJlbmN5OiBcIlRvdGFsIG1hdGEgdWFuZ1wiLFxuICAgIHRvdGFsRm9ybWF0OiBcIlRvdGFsIGZvcm1hdFwiLFxuXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCJVbXVtXCIsXG4gICAgICBmaWxlT3B0aW9uczogXCJQaWxpaGFuIGJlcmthc1wiLFxuICAgICAgaHRtbDogXCJFZGl0b3IgSHRtbFwiLFxuICAgICAgY29sdW1uczogXCJLb2xvbVwiLFxuICAgICAgcm93czogXCJCYXJpc1wiLFxuICAgICAgY2hvaWNlczogXCJQaWxpaGFuXCIsXG4gICAgICBpdGVtczogXCJCYXJhbmdcIixcbiAgICAgIHZpc2libGVJZjogXCJUZXJsaWhhdCBKaWthXCIsXG4gICAgICBlbmFibGVJZjogXCJNZW11bmdraW5rYW4gSmlrYVwiLFxuICAgICAgcmVxdWlyZWRJZjogXCJXYWppYiBKaWthXCIsXG4gICAgICByYXRlVmFsdWVzOiBcIk5pbGFpIFRpbmdrYXRcIixcbiAgICAgIGNob2ljZXNCeVVybDogXCJQaWxpaCBkYXJpIFdlYlwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCJQaWxpaGFuIFN0YW5kYXJcIixcbiAgICAgIG11bHRpcGxlVGV4dEl0ZW1zOiBcIk1hc3VrYW4gVGVrc1wiLFxuICAgICAgdmFsaWRhdG9yczogXCJWYWxpZGF0b3JcIixcbiAgICAgIG5hdmlnYXRpb246IFwiTmF2aWdhc2lcIixcbiAgICAgIHF1ZXN0aW9uOiBcIlBlcnRhbnlhYW5cIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwiSHRtbCBTZWxlc2FpXCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCJNZW11YXQgSHRtbFwiLFxuICAgICAgdGltZXI6IFwiUGVuZ2F0dXIgV2FrdHUvS3Vpc1wiLFxuICAgICAgdHJpZ2dlcnM6IFwiVHJpZ2dlclwiLFxuICAgICAgdGVtcGxhdGVUaXRsZTogXCJKdWR1bCB0ZW1wbGF0XCIsXG4gICAgICB0b3RhbHM6IFwiVG90YWxcIlxuICAgIH0sXG4gICAgZWRpdFByb3BlcnR5OiBcIlViYWggcHJvcGVydGkgJ3swfSdcIixcbiAgICBpdGVtczogXCJbIEJhcmFuZzogezB9IF1cIixcblxuICAgIGVudGVyTmV3VmFsdWU6IFwiU2lsYWhrYW4gbWFzdWtrYW4gbmlsYWlcIixcbiAgICBub3F1ZXN0aW9uczogXCJUaWRhayBhZGEgcGVydGFueWFhbiBkYWxhbSBzdXJ2ZWkuXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCJTaWxhaGthbiBidWF0IHNlYnVhaCB0cmlnZ2VyXCIsXG4gICAgdHJpZ2dlck9uOiBcIk9uIFwiLFxuICAgIHRyaWdnZXJNYWtlUGFnZXNWaXNpYmxlOiBcIkJ1YXQgaGFsYW1hbiB0ZXJsaWhhdDpcIixcbiAgICB0cmlnZ2VyTWFrZVF1ZXN0aW9uc1Zpc2libGU6IFwiQnVhdCBlbGVtZW4gdGVybGloYXQ6XCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCJTZWxlc2Fpa2FuIHN1cnZlaSBqaWthIHN1a3Nlcy5cIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIlRyaWdnZXIgYmVsdW0gZGlhdHVyXCIsXG4gICAgdHJpZ2dlclJ1bklmOiBcIkJlcmphbGFuIGppa2FcIixcbiAgICB0cmlnZ2VyU2V0VG9OYW1lOiBcIlViYWggbmlsYWkgZGFyaTogXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIlNhbGluIG5pbGFpIGRhcmk6IFwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcIkphbGFua2FuIGVrc3ByZXNpIGluaTpcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwia2U6IFwiLFxuICAgIHRyaWdnZXJJc1ZhcmlhYmxlOiBcIkphbmdhbiBtZWxldGFra2FuIHZhcmlhYmVsIGtlIGhhc2lsIHN1cnZleS5cIlxuICB9LFxuICAvL1Byb3BlcnR5IHZhbHVlc1xuICBwdjoge1xuICAgIHRydWU6IFwiYmVuYXJcIixcbiAgICBmYWxzZTogXCJzYWxhaFwiLFxuICAgIGluaGVyaXQ6IFwiaW5oZXJpdFwiLFxuICAgIHNob3c6IFwidGFtcGlsa2FuXCIsXG4gICAgaGlkZTogXCJzZW1idW55aWthblwiLFxuICAgIGRlZmF1bHQ6IFwic3RhbmRhclwiLFxuICAgIGluaXRpYWw6IFwiaW5pc2lhbFwiLFxuICAgIHJhbmRvbTogXCJhY2FrXCIsXG4gICAgY29sbGFwc2VkOiBcImRpbGlwYXRcIixcbiAgICBleHBhbmRlZDogXCJkaXJlbnRhbmdrYW5cIixcbiAgICBub25lOiBcInRpZGFrIGFkYVwiLFxuICAgIGFzYzogXCJuYWlrXCIsXG4gICAgZGVzYzogXCJ0dXJ1blwiLFxuICAgIGluZGV0ZXJtaW5hdGU6IFwidGlkYWsgdGVudHVcIixcbiAgICBkZWNpbWFsOiBcImRlc2ltYWxcIixcbiAgICBjdXJyZW5jeTogXCJtYXRhIHVhbmdcIixcbiAgICBwZXJjZW50OiBcInBlcnNlblwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwicGVybHVhc2FuUGVydGFtYVwiLFxuICAgIG9mZjogXCJtYXRpXCIsXG4gICAgb25QYW5lbDogXCJwYWRhIFBhbmVsXCIsXG4gICAgb25TdXJ2ZXk6IFwicGFkYSBTdXJ2ZWlcIixcbiAgICBsaXN0OiBcImRhZnRhclwiLFxuICAgIHByb2dyZXNzVG9wOiBcInByb2dyZXNzIGF0YXNcIixcbiAgICBwcm9ncmVzc0JvdHRvbTogXCJwcm9ncmVzcyBiYXdhaFwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcInByb2dyZXNzIGF0YXMgYmF3YWhcIixcbiAgICBob3Jpem9udGFsOiBcImhvcml6b250YWxcIixcbiAgICB2ZXJ0aWNhbDogXCJ2ZXJ0aWthbFwiLFxuICAgIHRvcDogXCJhdGFzXCIsXG4gICAgYm90dG9tOiBcImJhd2FoXCIsXG4gICAgdG9wQm90dG9tOiBcImF0YXMgZGFuIGJhd2FoXCIsXG4gICAgbGVmdDogXCJraXJpXCIsXG4gICAgY29sb3I6IFwid2FybmFcIixcbiAgICBkYXRlOiBcInRhbmdnYWxcIixcbiAgICBkYXRldGltZTogXCJ0YW5nZ2FsJndha3R1XCIsXG4gICAgXCJkYXRldGltZS1sb2NhbFwiOiBcInRhbmdnYWwmd2FrdHUtbG9rYWxcIixcbiAgICBlbWFpbDogXCJzdXJlbFwiLFxuICAgIG1vbnRoOiBcImJ1bGFuXCIsXG4gICAgbnVtYmVyOiBcIm5vbW9yXCIsXG4gICAgcGFzc3dvcmQ6IFwia2F0YSBzYW5kaVwiLFxuICAgIHJhbmdlOiBcInJlbnRhbmdcIixcbiAgICB0ZWw6IFwidGVsZXBvblwiLFxuICAgIHRleHQ6IFwidGVrc1wiLFxuICAgIHRpbWU6IFwid2FrdHVcIixcbiAgICB1cmw6IFwidXJsXCIsXG4gICAgd2VlazogXCJtaW5nZ3VcIixcbiAgICBoaWRkZW46IFwidGVyc2VtYnVueWlcIixcbiAgICBvbjogXCJueWFsYVwiLFxuICAgIG9uUGFnZTogXCJwYWRhIGhhbGFtYW5cIixcbiAgICBlZGl0OiBcInViYWhcIixcbiAgICBkaXNwbGF5OiBcInRhbXBpbGFuXCIsXG4gICAgb25Db21wbGV0ZTogXCJzYWF0IHNlbGVzYWlcIixcbiAgICBvbkhpZGRlbjogXCJzYWF0IHRlcnNlbWJ1bnlpXCIsXG4gICAgYWxsOiBcInNlbXVhXCIsXG4gICAgcGFnZTogXCJoYWxhbWFuXCIsXG4gICAgc3VydmV5OiBcInN1cnZlaVwiLFxuICAgIG9uTmV4dFBhZ2U6IFwicGFkYSBoYWxhbWFuIHNlbGFuanV0bnlhXCIsXG4gICAgb25WYWx1ZUNoYW5nZWQ6IFwic2FhdCBuaWxhaSBiZXJ1YmFoXCJcbiAgfSxcbiAgLy9PcGVyYXRvcnNcbiAgb3A6IHtcbiAgICBlbXB0eTogXCJrb3NvbmdcIixcbiAgICBub3RlbXB0eTogXCJ0aWRhayBrb3NvbmdcIixcbiAgICBlcXVhbDogXCJzYW1hIGRlbmdhblwiLFxuICAgIG5vdGVxdWFsOiBcInRpZGFrIHNhbWEgZGVuZ2FuXCIsXG4gICAgY29udGFpbnM6IFwibWVuZ2FuZHVuZ1wiLFxuICAgIG5vdGNvbnRhaW5zOiBcInRpZGFrIG1lbmdhbmR1bmdcIixcbiAgICBncmVhdGVyOiBcImxlYmloIGJlc2FyXCIsXG4gICAgbGVzczogXCJsZWJpaCBrZWNpbFwiLFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBcImxlYmloIGJlc2FyIGF0YXUgc2FtYSBkZW5nYW5cIixcbiAgICBsZXNzb3JlcXVhbDogXCJsZWJpaCBrZWNpbCBhdGF1IHNhbWEgZGVuZ2FuXCJcbiAgfSxcbiAgLy9FbWJlZCB3aW5kb3dcbiAgZXc6IHtcbiAgICBhbmd1bGFyOiBcIkd1bmFrYW4gdmVyc2kgQW5ndWxhclwiLFxuICAgIGpxdWVyeTogXCJHdW5ha2FuIHZlcnNpIEpRdWVyeVwiLFxuICAgIGtub2Nrb3V0OiBcIkd1bmFrYW4gdmVyc2kgS25vY2tvdXRcIixcbiAgICByZWFjdDogXCJHdW5ha2FuIHZlcnNpIFJlYWN0XCIsXG4gICAgdnVlOiBcIkd1bmFrYW4gdmVyc2kgVnVlXCIsXG4gICAgYm9vdHN0cmFwOiBcIlVudHVrIGZyYW1ld29yayBib290c3RyYXBcIixcbiAgICBzdGFuZGFyZDogXCJUaWRhayBhZGEgYm9vdHN0cmFwXCIsXG4gICAgc2hvd09uUGFnZTogXCJUYW1waWxrYW4gc3VydmVpIHBhZGEgc2VidWFoIGhhbGFtYW5cIixcbiAgICBzaG93SW5XaW5kb3c6IFwiVGFtcGlsa2FuIHN1cnZlaSBwYWRhIHNlYnVhaCBqZW5kZWxhXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiTXVhdCBzdXJ2ZWkgSlNPTiBkYXJpIHNlcnZlclwiLFxuICAgIHRpdGxlU2NyaXB0OiBcIlNrcmlwIGRhbiBnYXlhXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiXG4gIH0sXG4gIC8vVGVzdCBTdXJ2ZXlcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcIlBpbGloIGhhbGFtYW4gdW50dWsgZGljb2JhOlwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCJUYW1waWxrYW4gZWxlbWVuIHRhayB0ZXJsaWhhdFwiLFxuICAgIGVtcHR5U3VydmV5VGV4dDogXCJUaWRhayBhZGEgaGFsYW1hbiBhdGF1IHBlcnRhbnlhYW4geWFuZyB0ZXJzZWRpYSBkaSBzdXJ2ZWkgaW5pLlwiXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCJqdW1sYWggamF3YWJhblwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcInN1cmVsXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCJla3NwcmVzaVwiLFxuICAgIG51bWVyaWN2YWxpZGF0b3I6IFwibnVtZXJpa1wiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcImVrc3ByZXNpIHJlZ3VsZXJcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRla3NcIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJzZWxlc2Fpa2FuIHN1cnZlaVwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCJhdHVyIG5pbGFpXCIsXG4gICAgY29weXZhbHVldHJpZ2dlcjogXCJzYWxpbiBuaWxhaVwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcImphbGFua2FuIGVrc3ByZXNpXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwidWJhaCB2aXNpYmlsaXRhc1wiXG4gIH0sXG4gIC8vUHJvcGVydGllc1xuICBwOiB7XG4gICAgbmFtZTogXCJuYW1hXCIsXG4gICAgdGl0bGU6IHtcbiAgICAgIG5hbWU6IFwianVkdWxcIixcbiAgICAgIHRpdGxlOiBcIkJpYXJrYW4ga29zb25nLCBqaWthIHNhbWEgZGVuZ2FuICdOYW1hJ1wiXG4gICAgfSxcblxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJ2aXNpYmlsaXRhcyB0b21ib2wgbmF2aWdhc2lcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJ1cnV0YW4gcGVydGFueWFhblwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJ3YWt0dSBtYWtzIHVudHVrIG1lbnllbGVzYWlrYW5cIixcblxuICAgIHZpc2libGU6IFwidGVybGloYXRcIixcbiAgICB2aXNpYmxlSWY6IFwidGVybGloYXQgamlrYVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJsb2thc2kganVkdWwgcGVydGFueWFhblwiLFxuICAgIGRlc2NyaXB0aW9uOiBcImRlc2tyaXBzaVwiLFxuICAgIHN0YXRlOiBcImtlYWRhYW5cIixcbiAgICBpc1JlcXVpcmVkOiBcIndhamliXCIsXG4gICAgcmVxdWlyZWRJZjogXCJ3YWppYiBqaWthXCIsXG4gICAgaW5kZW50OiBcImluZGVudGFuc2lcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJ0ZWtzIGVycm9yIHdhamliXCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCJtdWxhaSBkZW5nYW4gYmFyaXMgYmFydVwiLFxuICAgIGlubmVySW5kZW50OiBcImluZGVuIGRhbGFtXCIsXG4gICAgcGFnZTogXCJoYWxhbWFuXCIsXG5cbiAgICB3aWR0aDogXCJsZWJhclwiLFxuXG4gICAgY29tbWVudFRleHQ6IFwidGVrcyBrb21lbnRhclwiLFxuICAgIHZhbHVlTmFtZTogXCJuYW1hIG5pbGFpXCIsXG4gICAgZW5hYmxlSWY6IFwiYWt0aWYgamlrYVwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJuaWxhaSBkZWZhdWx0XCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCJqYXdhYmFuIGJlbmFyXCIsXG4gICAgcmVhZE9ubHk6IFwiYmFjYSBzYWphXCIsXG4gICAgdmFsaWRhdG9yczogXCJ2YWxpZGF0b3JcIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcImxva2FzaSBqdWR1bFwiLFxuXG4gICAgaGFzQ29tbWVudDogXCJtZW1pbGlraSBrb21lbnRhclwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwibWVtaWxpa2kgbGFpbm55YVwiLFxuICAgIGNob2ljZXM6IFwicGlsaWhhblwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJ1cnV0a2FuIHBpbGloYW5cIixcbiAgICBjaG9pY2VzQnlVcmw6IFwicGlsaWhhbiBkYXJpIFVSTFwiLFxuICAgIG90aGVyVGV4dDogXCJ0ZWtzIGxhaW5ueWFcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCJ0ZWtzIGVycm9yIGxhaW5ueWFcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJzaW1wYW4gbGFpbm5ueWEgc2ViYWdhaSBrb21lbnRhclwiLFxuXG4gICAgbGFiZWw6IFwibGFiZWxcIixcbiAgICBzaG93VGl0bGU6IFwidGFtcGlsa2FuIGp1ZHVsXCIsXG4gICAgdmFsdWVUcnVlOiBcIm5pbGFpIGJlbmFyXCIsXG4gICAgdmFsdWVGYWxzZTogXCJuaWxhaSBzYWxhaFwiLFxuXG4gICAgY29sczogXCJrb2xvbVwiLFxuICAgIHJvd3M6IFwiYmFyaXNcIixcblxuICAgIG9wdGlvbnNDYXB0aW9uOiBcImtldGVyYW5nYW4gcGlsaWhhblwiLFxuXG4gICAgZXhwcmVzc2lvbjogXCJla3NwcmVzaVwiLFxuICAgIGZvcm1hdDogXCJmb3JtYXRcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwiZ2F5YSB0YW1waWxhblwiLFxuICAgIGN1cnJlbmN5OiBcIm1hdGEgdWFuZ1wiLFxuICAgIHVzZUdyb3VwaW5nOiBcImd1bmFrYW4ga2Vsb21wb2tcIixcblxuICAgIHNob3dQcmV2aWV3OiBcInRhbXBpbGthbiBwcmF0aW5qYXVcIixcbiAgICBhbGxvd011bHRpcGxlOiBcImJvbGVoa2FuIGdhbmRhXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwidGluZ2dpIGdhbWJhclwiLFxuICAgIGltYWdlV2lkdGg6IFwibGViYXIgZ2FtYmFyXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcInNpbXBhbiBkYXRhIHNlYmFnYWkgdGVrc1wiLFxuICAgIG1heFNpemU6IFwidWt1cmFuIG1ha3NcIixcblxuICAgIGh0bWw6IFwiaHRtbFwiLFxuXG4gICAgY29sdW1uczogXCJrb2xvbVwiLFxuICAgIGNlbGxzOiBcInNlbFwiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwic2VtdWFCYXJpc1dhamliXCIsXG5cbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcImhvcml6b250YWxTY3JvbGxcIixcbiAgICBjZWxsVHlwZTogXCJqZW5pc1NlbFwiLFxuICAgIGNvbHVtbnNMYXlvdXQ6IFwidGF0YUxldGFrS29sb21cIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCJqdW1sYWhLb2xvbVwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcImxlYmFyTWluaW1hbEtvbG9tXCIsXG5cbiAgICByb3dDb3VudDogXCJqdW1sYWhCYXJpc1wiLFxuICAgIG1pblJvd0NvdW50OiBcImp1bWxhaEJhcmlzTWluXCIsXG4gICAgbWF4Um93Q291bnQ6IFwianVtbGFoQmFyaXNNYWtzXCIsXG4gICAga2V5TmFtZTogXCJuYW1hS3VuY2lcIixcbiAgICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcImtlc2FsYWhhbkR1cGxpa2FzaUt1bmNpIFwiLFxuICAgIGNvbmZpcm1EZWxldGU6IFwia29uZmlybWFzaUhhcHVzXCIsXG4gICAgY29uZmlybURlbGV0ZVRleHQ6IFwidGVrc0tvbmZpcm1hc2lIYXB1c1wiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcInRhbWJhaExva2FzaUJhcmlzXCIsXG4gICAgYWRkUm93VGV4dDogXCJ0ZWtzVGFtYmFoQmFyaXNcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcInRla3NIYXB1c0JhcmlzXCIsXG5cbiAgICBpdGVtczogXCJpdGVtc1wiLFxuICAgIGl0ZW1TaXplOiBcInVrdXJhbkJhcmFuZ1wiLFxuICAgIGNvbENvdW50OiBcImp1bWxhaEtvbG9tXCIsXG5cbiAgICB0ZW1wbGF0ZVRpdGxlOiBcImp1ZHVsVGVtcGxhdFwiLFxuICAgIHRlbXBsYXRlRGVzY3JpcHRpb246IFwiZGVza3JpcHNpVGVtcGxhdFwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiYm9sZWhrYW5UYW1iYWhQYW5lbFwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiYm9sZWhrYW5IYXB1c1BhbmVsXCIsXG4gICAgcGFuZWxDb3VudDogXCJqdW1sYWhQYW5lbFwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwianVtbGFoTWluaW11bVBhbmVsXCIsXG4gICAgbWF4UGFuZWxDb3VudDogXCJqdW1sYWhNYWtzaW11bVBhbmVsXCIsXG4gICAgcGFuZWxzU3RhdGU6IFwia2VhZGFhblBhbmVsXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcInRla3NUYW1iYWhQYW5lbFwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJ0ZWtzSGFwdXNQYW5lbFwiLFxuICAgIHBhbmVsUHJldlRleHQ6IFwidGVrc1BhbmVsU2ViZWx1bW55YVwiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwidGVrc1BhbmVsU2VsYW5qdXRueWFcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcInRhbXBpbGthbk5vbW9yUGVydGFueWFhblwiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwidGFtcGlsa2FuUmVudGFuZ0JlcmxhbmdzdW5nXCIsXG4gICAgcmVuZGVyTW9kZTogXCJtb2RlUmVuZGVyXCIsXG4gICAgdGVtcGxhdGVUaXRsZUxvY2F0aW9uOiBcImxva2FzaUp1ZHVsVGVtcGxhdFwiLFxuXG4gICAgcmF0ZVZhbHVlczogXCJuaWxhaVRpbmdrYXRcIixcbiAgICByYXRlTWluOiBcInRpbmdrYXRNaW5pbXVtXCIsXG4gICAgcmF0ZU1heDogXCJ0aW5na2F0TWFrc2ltdW1cIixcbiAgICByYXRlU3RlcDogXCJsYW5na2FoVGluZ2thdFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJkZXNrcmlwc2lUaW5na2F0TWluaW11bVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJkZXNrcmlwc2lUaW5na2F0TWFrc2ltdW1cIixcblxuICAgIGlucHV0VHlwZTogXCJqZW5pc01hc3VrYW5cIixcbiAgICBzaXplOiBcInVrdXJhblwiLFxuXG4gICAgbG9jYWxlOiBcIkxva2FsXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcImZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpY1wiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiSHRtbFNlbGVzYWlcIixcbiAgICBjb21wbGV0ZWRCZWZvcmVIdG1sOiBcImNvbXBsZXRlZEJlZm9yZUh0bWxcIixcbiAgICBsb2FkaW5nSHRtbDogXCJsb2FkaW5nSHRtbFwiLFxuICAgIHRyaWdnZXJzOiBcIlRyaWdnZXJcIixcbiAgICBjb29raWVOYW1lOiBcIm5hbWFDb29raWVcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCJLaXJpbSBoYXNpbCBrZSBoYWxhbWFuIHNlbGFuanV0bnlhXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIlRhbXBpbGthbiBUb21ib2wgTmF2aWdhc2lcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJUYW1waWxrYW4gVG9tYm9sIFNlYmVsdW1ueWFcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJUYW1waWxrYW4gSnVkdWwgSGFsYW1hblwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlRhbXBpbGthbiBLZXNlbHVydWhhbiBIYWxhbWFuXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIlRhbXBpbGthbiBOb21vciBIYWxhbWFuXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIkxva2FzaSBQZXJ0YW55YWFuIEVycm9yXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIlRhbXBpbGthbiBwcm9ncmVzcyBiYXJcIixcbiAgICBtb2RlOiBcIm1vZGVcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcIktlIEhhbGFtYW4gU2VsYW5qdXRueWEgT3RvbWF0aXNcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwiTW9kZSBQZXJpa3NhIEVycm9yXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiQmVyc2loa2FuIE5pbGFpIFRhayBUZXJsaWhhdFwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJ0ZWtzTXVsYWlTdXJ2ZWlcIixcbiAgICBwYWdlUHJldlRleHQ6IFwidGVrc0hhbGFtYW5TZWJlbHVtbnlhXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcInRla3NIYWxhbWFuU2VsYW5qdXRueWFcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwidGVrc1NlbGVzYWlcIixcbiAgICByZXF1aXJlZFRleHQ6IFwidGVrc1dhamliXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIkluZGV4IE11bGFpIFBlcnRhbnlhYW5cIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwiVGVtcGxhdGUgSnVkdWwgUGVydGFueWFhblwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCJIYWxhbWFuIFBlcnRhbWEgRGltdWxhaVwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJIYWxhbWFuIFR1bmdnYWw/XCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJXYWt0dSBNYWtzIHVudHVrIE1lbnllbGVzYWlrYW4gSGFsYW1hblwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIlRhbXBpbGthbiBQYW5lbCBQZW5nYXR1ciBXYWt0dVwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJUYW1waWxrYW4gc2hvd1RpbWVyUGFuZWxNb2RlXCIsXG5cbiAgICBkZWZhdWx0UGFuZWxWYWx1ZTogXCJuaWxhaSBwYW5lbCBkZWZhdWx0XCIsXG4gICAgZGVmYXVsdFJvd1ZhbHVlOiBcIm5pbGFpIGJhcmlzIGRlZmF1bHRcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiTWVtaWxpa2kgTm9uZVwiLFxuICAgIG5vbmVUZXh0OiBcIk5vbi10ZWtzXCIsXG5cbiAgICB0ZXh0OiBcInRla3NcIixcbiAgfVxufTtcblxuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJpZFwiXSA9IGluZG9uZXNpYW5TdHJpbmdzO1xuIiwiaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG52YXIgaXRhbGlhblRyYW5zbGF0aW9uID0ge1xuICAvLyBzdHJpbmdzIGZvciBzdXJ2ZXkgdGVtcGxhdGVzXG4gIHN1cnZleToge1xuICAgIGVkaXQ6IFwiTW9kaWZpY2FcIixcbiAgICBkcm9wUXVlc3Rpb246IFwiQWdnaXVuZ2kgdW5hIGRvbWFuZGEgcXVpXCIsXG4gICAgY29weTogXCJDb3BpYVwiLFxuICAgIGFkZFRvVG9vbGJveDogXCJBZ2dpdW5naSBhbGxhIHRvb2xib3hcIixcbiAgICBkZWxldGVQYW5lbDogXCJFbGltaW5hIHBhbm5lbGxvXCIsXG4gICAgZGVsZXRlUXVlc3Rpb246IFwiRWxpbWluYSBkb21hbmRhXCIsXG4gICAgY29udmVydFRvOiBcIkNvbnZlcnRpIGFcIlxuICB9LFxuICAvLyBzdHJpbmdzIGZvciBxdWVzdGlvbiB0eXBlc1xuICBxdDoge1xuICAgIGNoZWNrYm94OiBcIkNhc2VsbGEgZGkgY29udHJvbGxvIFwiLFxuICAgIGNvbW1lbnQ6IFwiQ29tbWVudG9cIixcbiAgICBkcm9wZG93bjogXCJDb21ib1wiLFxuICAgIGZpbGU6IFwiQXJjaGl2aW9cIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBtYXRyaXg6IFwiTWF0cmljZSAodW5pY2Egb3B6aW9uZSlcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCJNYXRyaWNlIChvcHppb25pIG11bHRpcGxlKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0cmljZSAoZGluYW1pY2EpXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcIlRlc3RvIG11bHRpcGxvXCIsXG4gICAgcGFuZWw6IFwiUGFubmVsbG9cIixcbiAgICBwYW5lbGR5bmFtaWM6IFwiUGFubmVsbG8gKGRpbmFtaWNvKVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwiT3B6aW9uZSBtdWx0aXBsYVwiLFxuICAgIHJhdGluZzogXCJWYWx1dGF6aW9uZVwiLFxuICAgIHRleHQ6IFwiVGVzdG8gc2VtcGxpY2VcIixcbiAgICBleHByZXNzaW9uOiBcIkVzcHJlc3Npb25lXCJcbiAgfSxcbiAgLy8gc3RyaW5ncyBmb3IgZWRpdG9yXG4gIGVkOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCJEZWZhdWx0ICh7MH0pXCIsXG4gICAgc3VydmV5OiBcIlF1ZXN0aW9uYXJpb1wiLFxuICAgIHNldHRpbmdzOiBcIkltcG9zdGF6aW9uaSBRdWVzdGlvbmFyaW9cIixcbiAgICBlZGl0U3VydmV5OiBcIk1vZGlmaWNhIFF1ZXN0aW9uYXJpb1wiLFxuICAgIGFkZE5ld1BhZ2U6IFwiQWdnaXVuZ2kgTnVvdmEgUGFnaW5hXCIsXG4gICAgZGVsZXRlUGFnZTogXCJFbGltaW5hIFBhZ2luYVwiLFxuICAgIGVkaXRQYWdlOiBcIk1vZGlmaWNhIFBhZ2luYVwiLFxuICAgIG5ld1BhZ2VOYW1lOiBcInBhZ2luYVwiLFxuICAgIG5ld1F1ZXN0aW9uTmFtZTogXCJkb21hbmRhXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBhbm5lbGxvXCIsXG4gICAgdGVzdFN1cnZleTogXCJUZXN0YSBxdWVzdGlvbmFyaW9cIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwiVGVzdGEgcXVlc3Rpb25hcmlvIGRpIG51b3ZvXCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIkxhcmdoZXp6YSBxdWVzdGlvbmFyaW86XCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwiSW5jbHVkaSBxdWVzdGlvbmFyaW9cIixcbiAgICBzYXZlU3VydmV5OiBcIlNhbHZhIHF1ZXN0aW9uYXJpb1wiLFxuICAgIGRlc2lnbmVyOiBcIkRpc2VnbmFcIixcbiAgICBqc29uRWRpdG9yOiBcIk1vZGlmaWNhIEpTT05cIixcbiAgICB1bmRvOiBcIkFubnVsbGFcIixcbiAgICByZWRvOiBcIlJpcGV0aVwiLFxuICAgIG9wdGlvbnM6IFwiT3B6aW9uaVwiLFxuICAgIGdlbmVyYXRlVmFsaWRKU09OOiBcIkdlbmVyYSBKU09OIHZhbGlkb1wiLFxuICAgIGdlbmVyYXRlUmVhZGFibGVKU09OOiBcIkdlbmVyYSBKU09OIGxlZ2dpYmlsZVwiLFxuICAgIHRvb2xib3g6IFwiU3RydW1lbnRpXCIsXG4gICAgZGVsU2VsT2JqZWN0OiBcIkVsaW1pbmEgb2dnZXR0byBzZWxlemlvbmF0b1wiLFxuICAgIGVkaXRTZWxPYmplY3Q6IFwiTW9kaWZpY2Egb2dnZXR0byBzZWxlemlvbmF0b1wiLFxuICAgIGNvcnJlY3RKU09OOiBcIlBlciBmYXZvcmUsIGNvcnJlZ2dpIGlsIHR1byBKU09OXCIsXG4gICAgc3VydmV5UmVzdWx0czogXCJSaXN1bHRhdGkgZGVsIHF1ZXN0aW9uYXJpbzogXCIsXG4gICAgbW9kaWZpZWQ6IFwiTW9kaWZpY2F0b1wiLFxuICAgIHNhdmluZzogXCJTYWx2YXRhZ2dpb1wiLFxuICAgIHNhdmVkOiBcIlNhbHZhdG9cIlxuICB9LFxuICAvL1Byb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgcGVsOiB7XG4gICAgaXNSZXF1aXJlZDogXCJSaWNoaWVzdG9cIlxuICB9LFxuICAvLyBzdHJpbmdzIGZvciBwcm9wZXJ0eSBlZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwiQXBwbGljYVwiLFxuICAgIG9rOiBcIkFjY2V0dGFcIixcbiAgICBjYW5jZWw6IFwiQW5udWxsYVwiLFxuICAgIHJlc2V0OiBcIlJlaW1wb3N0YVwiLFxuICAgIGNsb3NlOiBcIkNoaXVkaVwiLFxuICAgIGRlbGV0ZTogXCJFbGltaW5hXCIsXG4gICAgYWRkTmV3OiBcIk51b3ZvXCIsXG4gICAgcmVtb3ZlQWxsOiBcIkVsaW1pbmEgdHV0dG9cIixcbiAgICBlZGl0OiBcIk1vZGlmaWNhXCIsXG4gICAgZW1wdHk6IFwiPHZ1b3RvPlwiLFxuICAgIG5vdEVtcHR5OiBcIjxtb2RpZmljYSB2YWxvcmU+XCIsXG4gICAgZmFzdEVudHJ5OiBcIkluc2VyaW1lbnRvIHJhcGlkb1wiLFxuICAgIGZvcm1FbnRyeTogXCJJbnNlcmltZW50byBjb24gZGF0aSBcIixcbiAgICB0ZXN0U2VydmljZTogXCJUZXN0IGRlbCBzZXJ2aXppb1wiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcIlNlbGV6aW9uYSBkb21hbmRhLi4uXCIsXG4gICAgY29uZGl0aW9uQnV0dG9uQWRkOiBcIkFnZ2l1bmdpXCIsXG4gICAgY29uZGl0aW9uQnV0dG9uUmVwbGFjZTogXCJTb3N0aXR1aXNjaVwiLFxuICAgIGNvbmRpdGlvbkhlbHA6XG4gICAgICBcIlBlciBmYXZvcmUsIGluc2VyaXJlIHVuYSBlc3ByZXNzaW9uZSBib29sZWFuYS4gRG92cmViYmUgcmVzdGl0dWlyZSB0cnVlIHBlciBtYW50ZW5lcmUgbGEgZG9tYW5kYS9wYWdpbmEgdmlzaWJpbGUuIEFkIGVzZW1waW86IHtkb21hbmRhMX0gPSAndmFsb3JlMScgb3IgKHtkb21hbmRhMn0gKiB7ZG9tYW5kYTR9ICA+IDIwIGFuZCB7ZG9tYW5kYTN9IDwgNSlcIixcbiAgICBleHByZXNzaW9uSGVscDpcbiAgICAgIFwiUGVyIGZhdm9yZSBpbnNlcmlyZSB1bmEgZXNwcmVzc2lvbmUuIFB1b2kgdXNhcmUgcGFyZW50ZXNpIGdyYWZmZSBwZXIgb3R0ZW5lcmUgbCdhY2Nlc3NvIGFpIHZhbG9yaSBkZWxsZSBkb21hbmRlOiAne2RvbWFuZGExfSArIHtkb21hbmRhMn0nLCAnKHtwcmV6em99KntxdGF9KSAqICgxMDAgLSB7c2NvbnRvfSknXCIsXG4gICAgYWNlRWRpdG9ySGVscDpcbiAgICAgIFwiUHJlbWkgY3RybCtzcGFjZSBwZXIgb3R0ZW5lcmUgdW4gc3VnZ2VyaW1lbnRvIHN1bCBjb21wbGV0YW1lbnRvIGRlbGwnZXNwcmVzc2lvbmVcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCJSaWdhIGNvcnJlbnRlXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCJQYW5uZWxsbyBDb3JyZW50ZVwiLFxuICAgIHNob3dNb3JlOiBcIlBlciBmYXZvcmUsIHBlciBtYWdnaW9yaSBkZXR0YWdsaSBndWFyZGFyZSBsYSBkb2N1bWVudGF6aW9uZVwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIkRvbWFuZGUgZGlzcG9uaWJpbGk6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIkRvdnJlYmJlIGVzc2VyY2kgYWxtZW5vIHVuYSBjb2xvbm5hIG8gcmlnYVwiLFxuICAgIHByb3BlcnR5SXNFbXB0eTogXCJQZXIgZmF2b3JlLCBpbnNlcmlyZSB1biB2YWxvcmUgcGVyIGxhIHByb3BpZXTDoFwiLFxuICAgIHZhbHVlOiBcIlZhbG9yZVwiLFxuICAgIHRleHQ6IFwiVGVzdG9cIixcbiAgICBjb2x1bW5FZGl0OiBcIk1vZGlmaWNhIGNvbG9ubmE6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIk1vZGlmaWNhIGVsZW1lbnRvOiB7MH1cIixcbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCJQZXJjb3Jzb1wiLFxuICAgIHZhbHVlTmFtZTogXCJOb21lIFZhbG9yZVwiLFxuICAgIHRpdGxlTmFtZTogXCJOb21lIFRpdG9sb1wiLFxuICAgIHNob3dPdGhlckl0ZW06IFwiQWx0cmkgZWxlbWVudGlcIixcbiAgICBvdGhlclRleHQ6IFwiVGVzdG8gYWx0cmkgZWxlbWVudGlcIixcbiAgICBuYW1lOiBcIk5vbWVcIixcbiAgICB0aXRsZTogXCJUaXRvbG9cIixcbiAgICBjZWxsVHlwZTogXCJUaXBvIGRpIGNlbGxhXCIsXG4gICAgY29sQ291bnQ6IFwiTnVtZXJvIGRpIGNvbG9ubmVcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiU2VsZXppb25hIGFsdHJlIG9wemlvbmlcIixcbiAgICB2aXNpYmxlOiBcIlZpc2liaWxlXCIsXG4gICAgaXNSZXF1aXJlZDogXCJSaWNoaWVzdG9cIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIk51b3ZhIGxpbmVhXCIsXG4gICAgcm93czogXCJOdW1lcm8gZGkgcmlnaGVcIixcbiAgICBwbGFjZWhvbGRlcjogXCJUZXN0byBkaSByaWZlcmltZW50b1wiLFxuICAgIHNob3dQcmV2aWV3OiBcIk1vc3RyYSBhbnRlcHJpbWFcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwiVmVkaSBpbCBjb250ZW51dG8gSlNPTiBjb21lIHRlc3RvXCIsXG4gICAgbWF4U2l6ZTogXCJEaW1lbnNpb25lIG1hc3NpbWEgaW4gYnl0ZXNcIixcbiAgICBpbWFnZUhlaWdodDogXCJBbHRlenphIGltbWFnaW5lXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJMYXJnaGV6emEgaW1tYWdpbmVcIixcbiAgICByb3dDb3VudDogXCJOdW1lcm8gZGVsbGUgcmlnaGVcIixcbiAgICBhZGRSb3dUZXh0OiBcIlRlc3RvIGRlbCBwdWxzYW50ZSBwZXIgYWdnaXVuZ2VyZSB1bmEgbnVvdmEgcmlnaGFcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlRlc3RvIGRlbCBwdWxzYW50ZSBwZXIgZWxpbWluYXJlIHVuYSByaWdoYVwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJEZXNjcml6aW9uZSBkZWwgdmFsb3JlIG1pbmltb1wiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJEZXNjcml6aW9uZSBkZWwgdmFsb3JlIG1hc3NpbW9cIixcbiAgICBpbnB1dFR5cGU6IFwiVGlwbyBkaSBpbnNlcmltZW50b1wiLFxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIlRpdG9sbyBkZWxsJ29wemlvbmVcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiVmFsb3JlIGRlZmF1bHRcIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwiVmFsb3JlIGRlZmF1bHQgY2VsbGVcIixcbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCJFZGl0IHN1cnZleSBzZXR0aW5nc1wiLFxuICAgIHFFZGl0b3JUaXRsZTogXCJNb2RpZmljYSBkb21hbmRhOiB7MH1cIixcbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCJNb3N0cmEvbmFzY29uZGkgdGl0b2xvXCIsXG4gICAgbG9jYWxlOiBcIkxpbmd1YSBEZWZhdWx0XCIsXG4gICAgbW9kZTogXCJNb2RhbGl0w6AgKG1vZGlmaWNhL3NvbGEgbGV0dHVyYSlcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJQdWxpc2NoaSB2YWxvcmkgbm9uIHZpc2liaWxpXCIsXG4gICAgY29va2llTmFtZTpcbiAgICAgIFwiTm9tZSBjb29raWUgKHBlciBkaXNhYmlsaXRhcmUgZXNlZ3VpIGlsIHF1ZXN0aW9uYXJpbyBkdWUgdm9sdGUgaW4gbG9jYWxlKVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OlxuICAgICAgXCJJbnZpYSBpIHJpc3VsdGF0aSBkZWwgc29uZGFnZ2lvIGFsbGEgcGFnaW5hIHN1Y2Nlc3NpdmFcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJNZW1vcml6emEgaWwgdmFsb3JlICdhbHRyaScgaW4gY2FtcGkgc2VwYXJhdGlcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJWaXN1YWxpenphIHRpdG9saSBwYWdpbmFcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwiVmlzdWFsaXp6YSBudW1lcmkgcGFnaW5hXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIlRlc3RvIGJvdHRvbmUgcGFnaW5hIHByZWNlZGVudGVcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiVGVzdG8gYm90dG9uZSBwYWdpbmEgc3VjY2Vzc2l2YVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJUZXN0byBib3R0b25lIENvbXBsZXRhdG9cIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiVGVzdG8gYm90dG9uZSBJbml6aWFcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6XG4gICAgICBcIlZpc3VhbGl6emEgYm90dG9uaSBkaSBuYXZpZ2F6aW9uZSAobmF2aWdhemlvbmUgZGkgZGVmYXVsdClcIixcbiAgICBzaG93UHJldkJ1dHRvbjpcbiAgICAgIFwiVmlzdWFsaXp6YSBib3R0b25lIHByZWNlZGVudGUobCd1dGVudGUgcHXDsiB0b3JuYXJlIGFsbGEgcGFnaW5hIHByZWNlZGVudGUpXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOlxuICAgICAgXCJMYSBwcmltYSBwYWdpbmEgbmVsIHF1ZXN0aW9uYXJpbyDDqCBsYSBwYWdpbmEgaW5pemlhbGUuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6XG4gICAgICBcIlZpc3VhbGl6emEgbGEgcGFnaW5hIGNvbXBsZXRhdGEgYWxsYSBmaW5lIGRlbCBxdWVzdGlvbmFyaW8gKGNvbXBsZXRlZEh0bWwpXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzpcbiAgICAgIFwiUmlzcG9uZGVuZG8gYSB0dXR0ZSBsZSBkb21hbmRlLCB2YWkgYWxsYSBwYWdpbmEgc3VjY2Vzc2l2YSBpbiBhdXRvbWF0aWNvLlwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJWaXN1YWxpenphIGJhcnJhIGRpIGF2YW56YW1lbnRvXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIlBvc2l6aW9uZSB0aXRvbG8gZG9tYW5kYVwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJTaW1ib2xvIGRvbWFuZGEgb2JibGlnYXRvcmlhLCBlc2VtcGlvICgqKVwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCJMYSBkb21hbmRhIGluaXppYSBjb24gbCdpbmRpY2UgKDEsIDIgb3BwdXJlICdBJywgJ2EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiVmlzdWFsaXp6YSBpIG51bWVyaSBkaSBkb21hbmRhXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOlxuICAgICAgXCJUZW1wbGF0ZSB0aXRvbG8gZGVsbGEgZG9tYW5kYSwgaWwgZGVmYXVsdCDDqDogJ3tub30uIHtyZXF1aXJlfSB7dGl0bGV9J1wiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJQb3NpemlvbmUgbm90aWZpY2EgZXJyb3JlIHN1bGxhIGRvbWFuZGFcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6XG4gICAgICBcIlN1bCBjYW1iaW8gcGFnaW5hLCBwb3NpemlvbmEgaWwgY3Vyc29yZSBzdWxsYSBwcmltYSBkb21hbmRhXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiT3JkaW5lIGRpIGVsZW1lbnRpIHN1bGxhIHBhZ2luYVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJUZW1wbyBtYXNzaW1vIHBlciB0ZXJtaW5hcmUgaWwgc29uZGFnZ2lvXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJUZW1wbyBtYXNzaW1vIHBlciB0ZXJtaW5hcmUgdW5hIHBhZ2luYSBkZWwgc29uZGFnZ2lvXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiVmlzdWFsaXp6YSBwYW5uZWxsbyB0aW1lclwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJWaXN1YWxpenphIG1vZGFsaXTDoCB0aW1lciBwYW5uZWxsb1wiLFxuICAgIHJlbmRlck1vZGU6IFwiTW9kYWxpdMOgIGRpIHJlbmRlcmluZ1wiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiQ29uc2VudGkgbCdhZ2dpdW50YSBkaSB1biBwYW5uZWxsb1wiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiQ29uc2VudGkgbGEgcmltb3ppb25lIGRpIHVuIHBhbm5lbGxvXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIkFnZ2l1bmdpIHRlc3RvIHBhbm5lbGxvXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIlJlbXVvdmkgdGVzdG8gcGFubmVsbG9cIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiVmlzdWFsaXp6YSB0dXR0aSBnbGkgZWxlbWVudGkgc3UgdW5hIHBhZ2luYVwiLFxuICAgIHRhYnM6IHtcbiAgICAgIGdlbmVyYWw6IFwiR2VuZXJhbGVcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIk9wemlvbmlcIixcbiAgICAgIGh0bWw6IFwiTW9kaWZpY2EgSHRtbFwiLFxuICAgICAgY29sdW1uczogXCJDb2xvbm5lXCIsXG4gICAgICByb3dzOiBcIlJpZ2hlXCIsXG4gICAgICBjaG9pY2VzOiBcIlNjZWx0ZVwiLFxuICAgICAgdmlzaWJsZUlmOiBcIlZpc2liaWxlIHNlXCIsXG4gICAgICByYXRlVmFsdWVzOiBcIlZhbG9yaSBkZWxsYSBjbGFzc2lmaWNhXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwiT3B6aW9uaSBkYWwgV2ViXCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIk9wemlvbmkgcHJlZGVmaW5pdGVcIixcbiAgICAgIG11bHRpcGxlVGV4dEl0ZW1zOiBcIlZvY2kgZGkgdGVzdG9cIixcbiAgICAgIHZhbGlkYXRvcnM6IFwiVmFsaWRhemlvbmlcIixcbiAgICAgIG5hdmlnYXRpb246IFwiTmF2aWdhemlvbmVcIixcbiAgICAgIHF1ZXN0aW9uOiBcIkRvbWFuZGFcIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwiSHRtbCBxdWVzdGlvbmFyaW8gY29tcGxldGF0b1wiLFxuICAgICAgbG9hZGluZ0h0bWw6IFwiSHRtbCBjYXJpY2FtZW50byBxdWVzdGlvbmFyaW9cIixcbiAgICAgIHRpbWVyOiBcIlRpbWVyL1F1aXpcIixcbiAgICAgIHRyaWdnZXJzOiBcIlRyaWdnZXJzXCIsXG4gICAgICB0ZW1wbGF0ZVRpdGxlOiBcIlRlbXBsYXRlIHRpdG9sb1wiXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwiTW9kaWZjYSBwcm9waWV0w6AgJ3swfSdcIixcbiAgICBpdGVtczogXCJbIEVsZW1lbnRvOiB7MH0gXVwiLFxuICAgIGVudGVyTmV3VmFsdWU6IFwiU2kgcHJlZ2EgZGkgaW5zZXJpcmUgaWwgdmFsb3JlLlwiLFxuICAgIG5vcXVlc3Rpb25zOiBcIk5vbiBjJ8OoIGFsY3VuIGR1YmJpbyBuZWwgcXVlc3Rpb25hcmlvLlwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiU2kgcHJlZ2EgZGkgY3JlYXJlIHVuIHRyaWdnZXJcIixcbiAgICB0cmlnZ2VyT246IFwiQXR0aXZhemlvbmUgXCIsXG4gICAgdHJpZ2dlck1ha2VQYWdlc1Zpc2libGU6IFwiUmVuZGVyZSB2aXNpYmlsaSBsZSBwYWdpbmU6XCIsXG4gICAgdHJpZ2dlck1ha2VRdWVzdGlvbnNWaXNpYmxlOiBcIlJlbmRlcmUgdmlzaWJpbGkgbGUgZG9tYW5kZTpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIkNvbXBsZXRhcmUgaWwgcXVlc3Rpb25hcmlvLCBpbiBjYXNvIGRpIHN1Y2Nlc3NvLlwiLFxuICAgIHRyaWdnZXJOb3RTZXQ6IFwiTm9uIGltcG9zdGF0b1wiLFxuICAgIHRyaWdnZXJSdW5JZjogXCJFc2VndWkgc2VcIixcbiAgICB0cmlnZ2VyU2V0VG9OYW1lOiBcIkNhbWJpYSBpbCB2YWxvcmUgYTogXCIsXG4gICAgdHJpZ2dlclNldFZhbHVlOiBcImE6IFwiLFxuICAgIHRyaWdnZXJJc1ZhcmlhYmxlOlxuICAgICAgXCJOb24gcG9zaXppb25hcmUgbGEgdmFyaWFiaWxlIGRlbCByaXN1bHRhdG8gZGVsIHF1ZXN0aW9uYXJpb1wiXG4gIH0sXG4gIC8vIHN0cmluZ3MgZm9yIG9wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcIsOoIHZ1b3RvXCIsXG4gICAgbm90ZW1wdHk6IFwibm9uIMOoIHZ1b3RvIFwiLFxuICAgIGVxdWFsOiBcIsOoIHVndWFsZSBhXCIsXG4gICAgbm90ZXF1YWw6IFwibm9uIMOoIHVndWFsZSBhXCIsXG4gICAgY29udGFpbnM6IFwiY29udGllbmVcIixcbiAgICBub3Rjb250YWluczogXCJub24gY29udGllbmVcIixcbiAgICBncmVhdGVyOiBcIm1hZ2dpb3JlXCIsXG4gICAgbGVzczogXCJtaW5vcmVcIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCJtYWdnaW9yZSBvIHVndWFsZVwiLFxuICAgIGxlc3NvcmVxdWFsOiBcIm1pbm9yZSBvIHVndWFsZVwiXG4gIH0sXG4gIC8vIHN0cmluZ3MgZm9yIGVtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiVmVyc2lvbmUgcGVyIEFuZ3VsYXJcIixcbiAgICBqcXVlcnk6IFwiVmVyc2lvbmUgcGVyIGpRdWVyeVwiLFxuICAgIGtub2Nrb3V0OiBcIlZlcnNpb25lIHBlciBLbm9ja291dFwiLFxuICAgIHJlYWN0OiBcIlZlcnNpb25lIHBlciBSZWFjdFwiLFxuICAgIHZ1ZTogXCJWZXJzaW9uZSBwZXIgVnVlXCIsXG4gICAgYm9vdHN0cmFwOiBcIlBlciBmcmFtZXdvcmsgYm9vdHN0cmFwXCIsXG4gICAgc3RhbmRhcmQ6IFwiTm8gYm9vdHN0cmFwXCIsXG4gICAgc2hvd09uUGFnZTogXCJWaXN1YWxpenphIGluIHF1ZXN0YSBwYWdpbmFcIixcbiAgICBzaG93SW5XaW5kb3c6IFwiVmlzdWFsaXp6YSBpbiB1bmEgZmluZXN0cmFcIixcbiAgICBsb2FkRnJvbVNlcnZlcjogXCJDYXJpY2EgSlNPTiBkYWwgc2VydmVyXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU2NyaXB0cyBlIHN0aWxpXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiXG4gIH0sXG4gIC8vVGVzdCBTdXJ2ZXlcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcIlNlbGV6aW9uYSBsYSBwYWdpbmEgZGEgdGVzdGFyZTpcIixcbiAgICBzaG93SW52aXNpYmxlRWxlbWVudHM6IFwiTW9zdHJhIGVsZW1lbnRpIG5hc2Nvc3RpXCJcbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIGFuc3dlcmNvdW50dmFsaWRhdG9yOiBcIm51bWVybyByaXNwb3N0ZVwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcImUtbWFpbFwiLFxuICAgIG51bWVyaWN2YWxpZGF0b3I6IFwibnVtZXJpY29cIixcbiAgICByZWdleHZhbGlkYXRvcjogXCJyZWdleFwiLFxuICAgIHRleHR2YWxpZGF0b3I6IFwidGVzdG9cIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJjb21wbGV0YSBxdWVzdGlvbmFyaW9cIixcbiAgICBzZXR2YWx1ZXRyaWdnZXI6IFwic2V0dGEgdmFsb3JlXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwiY2FtYmlhIHZpc2liaWxpdMOgXCJcbiAgfSxcbiAgLy9Qcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICBuYW1lOiBcIk5vbWVcIixcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCJUaXRvbG9cIixcbiAgICAgIHRpdGxlOiBcIkxhc2NpYWxvIHZ1b3RvLCBzZSDDqCB1Z3VhbGUgYSAnTm9tZSdcIlxuICAgIH0sXG5cbiAgICB2aXNpYmxlOiBcIlZpc2liaWxlXCIsXG4gICAgdmlzaWJsZUlmOiBcIlZpc2liaWxlIFNlXCIsXG4gICAgZGVzY3JpcHRpb246IFwiRGVzY3JpemlvbmVcIixcbiAgICBpc1JlcXVpcmVkOiBcIlJpY2hpZXN0b1wiLFxuICAgIHJlcXVpcmVkSWY6IFwiUmljaGllc3RvIFNlXCIsXG4gICAgcGFnZTogXCJQYWdpbmFcIixcbiAgICB3aWR0aDogXCJMYXJnaGV6emFcIixcbiAgICBlbmFibGVJZjogXCJBYmlsaXRhdG8gc2VcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiVmFsb3JlIGRpIGRlZmF1bHRcIixcbiAgICByZWFkT25seTogXCJTb2xhIExldHR1cmFcIixcbiAgICBoYXNDb21tZW50OiBcIkhhIHVuIGNvbW1lbnRvXCIsXG4gICAgc2hvd090aGVySXRlbTogXCJIYSBhbHRyb1wiLFxuICAgIGNob2ljZXM6IFwiU2NlbHRlXCIsXG4gICAgY2hvaWNlc09yZGVyOiBcIk9yZGluZSBTY2VsdGVcIixcbiAgICBjaG9pY2VzQnlVcmw6IFwiVXJsIFNjZWx0ZVwiLFxuICAgIGxhYmVsOiBcImxhYmVsXCIsXG4gICAgc2hvd1RpdGxlOiBcIk1vc3RyYSBUaXRvbG9cIixcbiAgICB2YWx1ZVRydWU6IFwiVmFsb3JlIFRydWVcIixcbiAgICB2YWx1ZUZhbHNlOiBcIlZhbG9yZSBGYWxzZVwiLFxuICAgIGNvbHM6IFwiQ29sb25uZVwiLFxuICAgIHJvd3M6IFwiUmlnaGVcIixcbiAgICBjdXJyZW5jeTogXCJWYWx1dGFcIixcbiAgICBzaG93UHJldmlldzogXCJWaXN1YWxpenphIEFudGVwcmltYVwiLFxuICAgIGh0bWw6IFwiaHRtbFwiLFxuICAgIHJhdGVWYWx1ZXM6IFwiVmFsb3JpIGRlbGxhIGNsYXNzaWZpY2FcIixcbiAgICBzaXplOiBcIkRpbWVuc2lvbmVcIixcbiAgICBsb2NhbGU6IFwibG9jYWxlXCIsXG4gICAgbWluVmFsdWU6IFwiVmFsb3JlIG1pbmltb1wiLFxuICAgIG1heFZhbHVlOiBcIlZhbG9yZSBtYXNzaW1vXCIsXG4gICAgbWluTGVuZ3RoOiBcIkx1bmdoZXp6YSBtaW5pbWFcIixcbiAgICBtYXhMZW5ndGg6IFwiTHVuZ2hlenphIG1hc3NpbWFcIixcbiAgICBhbGxvd0RpZ2l0czogXCJDb25zZW50aSBjaWZyZVwiLFxuICAgIHJlZ2V4OiBcIkVzcHJlc3Npb25lIHJlZ29sYXJlXCJcbiAgfVxufTtcblxuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJpdFwiXSA9IGl0YWxpYW5UcmFuc2xhdGlvbjtcbiIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IHZhciBqYVN0cmluZ3MgPSB7XG4gIGVkOiB7XG4gICAgYWRkTmV3UGFnZTogXCLmlrDopo/jg5rjg7zjgrjjgpLov73liqDjgZnjgotcIixcbiAgICBib2xkOiBcIuWkquWtl1wiLFxuICAgIGNob29zZUVsZW1lbnQ6IFwi6KaB57Sg44KS6YG45oqe4oCmXCIsXG4gICAgY29weTogXCLjgrPjg5Tjg7xcIixcbiAgICBjb3B5VG9vbHRpcDogXCLpgbjmip7nr4Tlm7LjgpLjgq/jg6rjg4Pjg5fjg5zjg7zjg4njgavjgrPjg5Tjg7zjgZnjgotcIixcbiAgICBjb3JyZWN0SlNPTjogXCJKU09O44KS5L+u5q2j44GX44Gm44GP44Gg44GV44GE44CCXCIsXG4gICAgY3V0OiBcIuOCq+ODg+ODiFwiLFxuICAgIGN1dFRvb2x0aXA6IFwi6YG45oqe56+E5Zuy44KS44Kv44Oq44OD44OX44Oc44O844OJ44Gr44Kr44OD44OI44GZ44KLXCIsXG4gICAgZGVmYXVsdExvY2FsZTogXCLjg4fjg5Xjgqnjg6vjg4jvvIh7MH3vvIlcIixcbiAgICBkZWxldGVQYWdlOiBcIuODmuODvOOCuOOCkuWJiumZpOOBmeOCi1wiLFxuICAgIGRlc2lnbmVyOiBcIuOCouODs+OCseODvOODiOOBruioreioiOiAhVwiLFxuICAgIGVkaXQ6IFwi57eo6ZuGXCIsXG4gICAgZWRpdFBhZ2U6IFwi44Oa44O844K444KS57eo6ZuG44GZ44KLXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwi44Ki44Oz44Kx44O844OI44KS5Z+L44KB6L6844KAXCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCLos6rllY/jgpLov73liqDigKZcIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCLoqq3jgb/lj5bjgorlj6/og73jgapKU09O44KS55Sf5oiQ44GZ44KLXCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwi5pyJ5Yq544GqSlNPTuOCkueUn+aIkOOBmeOCi1wiLFxuICAgIGhpZGVQYW5lbDogXCLjg5Hjg43jg6vjgpLpnZ7ooajnpLrjgavjgZnjgotcIixcbiAgICBpdGFsaWM6IFwi44Kk44K/44Oq44OD44KvXCIsXG4gICAganNvbkVkaXRvcjogXCJKU09O44Ko44OH44Kj44K/XCIsXG4gICAgbGc6IHtcbiAgICAgIGFjdGlvbkludmFsaWQ6IFwi44Ki44Kv44K344On44Oz44Gu5ZWP6aGM44KS6Kej5rG644GX44Gm44GP44Gg44GV44GE44CCXCIsXG4gICAgICBhY3Rpb25zOiBcIuOCouOCr+OCt+ODp+ODs1wiLFxuICAgICAgYWN0aW9uc0VkaXRvclRpdGxlOiBcIuOCouOCr+OCt+ODp+ODs+OCkuWumue+qeOBmeOCi1wiLFxuICAgICAgYWRkTmV3QWN0aW9uOiBcIuaWsOOBl+OBhOOCouOCr+OCt+ODp+ODs+OCkui/veWKoOOBmeOCi1wiLFxuICAgICAgYWRkTmV3SXRlbTogXCLmlrDjgZfjgYTjg6vjg7zjg6vjgpLov73liqBcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkRlc2NyaXB0aW9uOiBcIuirlueQhuW8j+OBjHRydWXvvIjnnJ/vvInjgpLov5TjgZfjgZ/loLTlkIjjgIHjgIzjgrXjg7Pjgq3jg6Xjg7zjg5rjg7zjgrjjgI3jga7jg4fjg5Xjgqnjg6vjg4jjg4bjgq3jgrnjg4jjga/mjIflrprjgZXjgozjgZ/jgoLjga7jgavlpInmm7TjgZXjgozjgb7jgZnjgIJcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbk5hbWU6IFwi44Kr44K544K/44Og44Gu44CM44K144Oz44Kt44Ol44O844Oa44O844K444CN44OG44Kt44K544OIXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25UZXh0OiBcIuOAjOOCteODs+OCreODpeODvOODmuODvOOCuOOAjeOBruOCq+OCueOCv+ODoOODhuOCreOCueODiOOCkuihqOekuuOBl+OBvuOBmeOAglwiLFxuICAgICAgY29uZGl0aW9uczogXCLmnaHku7ZcIixcbiAgICAgIGRlbGV0ZUFjdGlvbjogXCLjgqLjgq/jgrfjg6fjg7PjgpLliYrpmaTjgZnjgotcIixcbiAgICAgIGV4cHJlc3Npb25FZGl0b3JUaXRsZTogXCLmnaHku7bjgpLlrprnvqnjgZnjgotcIixcbiAgICAgIGV4cHJlc3Npb25JbnZhbGlkOiBcIuirlueQhuW8j+OBjOepuuOBvuOBn+OBr+eEoeWKueOBp+OBmeOAguS/ruato+OBl+OBpuOBj+OBoOOBleOBhOOAglwiLFxuICAgICAgaXRlbUV4cHJlc3Npb25UZXh0OiBcIuW8j++8muOAjHswfeOAjeOBjHRydWXvvIjnnJ/vvInjgpLov5TjgZfjgZ/loLTlkIjvvJpcIixcbiAgICAgIG5vQWN0aW9uRXJyb3I6IFwi5bCR44Gq44GP44Go44KCMeOBpOOBruOCouOCr+OCt+ODp+ODs+OCkui/veWKoOOBl+OBpuOBj+OBoOOBleOBhOOAglwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5RGVzY3JpcHRpb246IFwi6KuW55CG5byP44GMdHJ1Ze+8iOecn++8ieOCkui/lOOBl+OBn+WgtOWQiOOAgeODmuODvOOCuOOCkuihqOekuuOBq+OBl+OBvuOBmeOAguOBneOCjOS7peWkluOBruWgtOWQiOOBr+OAgemdnuihqOekuuOBq+OBl+OBpuOBiuOBjeOBvuOBmeOAglwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5TmFtZTogXCLjg5rjg7zjgrjjga7lj6/oppbmgKdcIixcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eVRleHQ6IFwi44Oa44O844K4ezB944KS6KGo56S644Gr44GZ44KLXCIsXG4gICAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjogXCLoq5bnkIblvI/jgYx0cnVl77yI55yf77yJ44KS6L+U44GX44Gf5aC05ZCI44CB44OR44ON44Or44Go44Gd44Gu5Lit44Gu44GZ44G544Gm44Gu6KaB57Sg44KS5pyJ5Yq544Gr44GX44G+44GZ44CC44Gd44KM5Lul5aSW44Gu5aC05ZCI44Gv44CB54Sh5Yq544Gr44GX44Gm44GK44GN44G+44GZ44CCXCIsXG4gICAgICBwYW5lbF9lbmFibGVOYW1lOiBcIuODkeODjeODq+OBruacieWKueWMli/nhKHlirnljJZcIixcbiAgICAgIHBhbmVsX2VuYWJsZVRleHQ6IFwi44OR44ON44OrezB944KS5pyJ5Yq544Gr44GZ44KLXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5RGVzY3JpcHRpb246IFwi6KuW55CG5byP44GMdHJ1Ze+8iOecn++8ieOCkui/lOOBl+OBn+WgtOWQiOOAgeODkeODjeODq+OCkuihqOekuuOBq+OBl+OBvuOBmeOAguOBneOCjOS7peWkluOBruWgtOWQiOOBr+OAgemdnuihqOekuuOBq+OBl+OBpuOBiuOBjeOBvuOBmeOAglwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eU5hbWU6IFwi44OR44ON44Or44Gu5Y+v6KaW5oCnXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5VGV4dDogXCLjg5Hjg43jg6t7MH3jgpLooajnpLrjgavjgZnjgotcIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uOiBcIuirlueQhuW8j+OBjHRydWXvvIjnnJ/vvInjgpLov5TjgZfjgZ/loLTlkIjjgIHos6rllY/jgpLmnInlirnjgavjgZfjgb7jgZnjgILjgZ3jgozku6XlpJbjga7loLTlkIjjga/jgIHnhKHlirnjgavjgZfjgabjgYrjgY3jgb7jgZnjgIJcIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZU5hbWU6IFwi6LOq5ZWP44Gu5pyJ5Yq55YyWL+eEoeWKueWMllwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlVGV4dDogXCLos6rllY97MH3jgpLmnInlirnjgavjgZnjgotcIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVEZXNjcmlwdGlvbjogXCLoq5bnkIblvI/jgYx0cnVl77yI55yf77yJ44KS6L+U44GX44Gf5aC05ZCI44CB6LOq5ZWP44GM5b+F6aCI44Gr44Gq44KK44G+44GZ44CCXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlTmFtZTogXCLos6rllY/jgqrjg5fjgrfjg6fjg7PjgYzlv4XopoFcIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVUZXh0OiBcIuizquWVj3swfeOCkuW/hemgiOOBq+OBmeOCi1wiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eURlc2NyaXB0aW9uOiBcIuirlueQhuW8j+OBjHRydWXvvIjnnJ/vvInjgpLov5TjgZfjgZ/loLTlkIjjgIHos6rllY/jgpLooajnpLrjgavjgZfjgb7jgZnjgILjgZ3jgozku6XlpJbjga7loLTlkIjjga/jgIHpnZ7ooajnpLrjgavjgZfjgabjgYrjgY3jgb7jgZnjgIJcIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlOYW1lOiBcIuizquWVj+OBruWPr+imluaAp1wiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eVRleHQ6IFwi6LOq5ZWPezB944KS6KGo56S644Gr44GZ44KLXCIsXG4gICAgICBzZWxlY3RlZEFjdGlvbkNhcHRpb246IFwi6L+95Yqg44GZ44KL44Ki44Kv44K344On44Oz44KS6YG45oqe4oCmXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlRGVzY3JpcHRpb246IFwi6KuW55CG5byP44GMdHJ1Ze+8iOecn++8ieOCkui/lOOBl+OBn+WgtOWQiOOAgeOCouODs+OCseODvOODiOOBjOWujOS6huOBl+OAgeOCqOODs+ODieODpuODvOOCtuODvOOBq+OAjOOCteODs+OCreODpeODvOODmuODvOOCuOOAjeOBjOihqOekuuOBleOCjOOBvuOBmeOAglwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZU5hbWU6IFwi44Ki44Oz44Kx44O844OI44KS5a6M5LqG44GZ44KLXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCLjgqLjg7PjgrHjg7zjg4jjgYzlrozkuobjgZnjgotcIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlRGVzY3JpcHRpb246IFwi6KuW55CG5byP44Gn5L2/55So44GV44KM44KL6LOq5ZWP44Gu5YCk44GM5aSJ5pu044GV44KM44CB6KuW55CG5byP44GMdHJ1Ze+8iOecn++8ieOCkui/lOOBl+OBn+WgtOWQiOOAgemBuOaKnuOBleOCjOOBnzHjgaTjga7os6rllY/jga7lgKTjgYzliKXjga7pgbjmip7jgZXjgozjgZ/os6rllY/jgavjgrPjg5Tjg7zjgZXjgozjgb7jgZnjgIJcIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlTmFtZTogXCLos6rllY/jga7lgKTjgpLjgrPjg5Tjg7zjgZnjgotcIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlVGV4dDogXCLos6rllY97MX3jgYvjgonos6rllY/vvJp7MH3lgKTjgavjgrPjg5Tjg7zjgZnjgotcIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbkRlc2NyaXB0aW9uOiBcIuirlueQhuW8j+OBjHRydWXvvIjnnJ/vvInjgpLov5TjgZfjgZ/loLTlkIjjgIHjgqvjgrnjgr/jg6DlvI/jgYzlrp/ooYzjgZXjgozjgb7jgZnjgILjgqrjg5fjgrfjg6fjg7PjgafjgIHjgZPjga7lvI/jga7ntZDmnpzjgpLpgbjmip7jgZfjgZ/os6rllY/jgavoqK3lrprjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgIJcIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbk5hbWU6IFwi44Kr44K544K/44Og5byP44KS5a6f6KGM44GZ44KLXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MTogXCLlvI/vvJrjgIx7MH3jgI3jgpLlrp/ooYzjgZnjgotcIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQyOiBcIiDjgZ3jgZfjgabjgIHjgZ3jga7ntZDmnpzjgpLos6rllY/vvJp7MH3jgavoqK3lrprjgZnjgotcIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjogXCLoq5bnkIblvI/jgafkvb/nlKjjgZXjgozjgovos6rllY/jga7lgKTjgYzlpInmm7TjgZXjgozjgIHoq5bnkIblvI/jgYx0cnVl77yI55yf77yJ44KS6L+U44GX44Gf5aC05ZCI44CB44Gd44Gu5YCk44Gv6YG45oqe44GV44KM44Gf6LOq5ZWP44Gr6Kit5a6a44GV44KM44G+44GZ44CCXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlTmFtZTogXCLos6rllY/jga7lgKTjgpLoqK3lrprjgZnjgotcIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVUZXh0OiBcIuizquWVj++8mnswfeWApHsxfeOBq+ioreWumuOBmeOCi1wiLFxuICAgICAgdHJpZ2dlcl9za2lwRGVzY3JpcHRpb246IFwi6KuW55CG5byP44GMdHJ1Ze+8iOecn++8ieOCkui/lOOBl+OBn+WgtOWQiOOAgeOCouODs+OCseODvOODiOOBr+mBuOaKnuOBleOCjOOBn+izquWVj+OBq+OCueOCreODg+ODly/jg5Xjgqnjg7zjgqvjgrnjgZXjgozjgb7jgZnjgIJcIixcbiAgICAgIHRyaWdnZXJfc2tpcE5hbWU6IFwi6LOq5ZWP44Gr44K544Kt44OD44OX44GZ44KLXCIsXG4gICAgICB0cmlnZ2VyX3NraXBUZXh0OiBcIuOCouODs+OCseODvOODiOOBr+izquWVj3swfeOBq+OCueOCreODg+ODl+OBmeOCi1wiXG4gICAgfSxcbiAgICBsb2dpYzogXCLjgqLjg7PjgrHjg7zjg4jjga7jg63jgrjjg4Pjgq9cIixcbiAgICBtb2RpZmllZDogXCLkv67mraPmuIjjgb9cIixcbiAgICBtb3ZlTGVmdDogXCLlt6bjgavjgrnjgq/jg63jg7zjg6vjgZnjgotcIixcbiAgICBtb3ZlUmlnaHQ6IFwi5Y+z44Gr44K544Kv44Ot44O844Or44GZ44KLXCIsXG4gICAgbmF2aWdhdGVUb01zZzogXCLmrKHjga7loLTmiYDjgavnp7vli5XjgZnjgovlv4XopoHjgYzjgYLjgorjgb7jgZfjgZ/vvJpcIixcbiAgICBuZXdQYWdlTmFtZTogXCLjg5rjg7zjgrhcIixcbiAgICBuZXdQYW5lbE5hbWU6IFwi44OR44ON44OrXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcIuizquWVj1wiLFxuICAgIG5ld1RleHRJdGVtTmFtZTogXCLjg4bjgq3jgrnjg4hcIixcbiAgICBvcHRpb25zOiBcIuOCquODl+OCt+ODp+ODs1wiLFxuICAgIHBhc3RlOiBcIuiyvOOCiuS7mOOBkeOCi1wiLFxuICAgIHBhc3RlVG9vbHRpcDogXCLjgq/jg6rjg4Pjg5fjg5zjg7zjg4njgYvjgonosrzjgorku5jjgZHjgotcIixcbiAgICBcInByb3BlcnR5LWdyaWRcIjogXCLjg5fjg63jg5Hjg4bjgqNcIixcbiAgICBwcm9wZXJ0eUVkaXRvckVycm9yOiBcIuOCqOODqeODvO+8mlwiLFxuICAgIHJlZG86IFwi44KE44KK55u044GZXCIsXG4gICAgcmVkb1Rvb2x0aXA6IFwi5aSJ5pu044KS44KE44KK55u044GZXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCLooajnpLrlgKRcIixcbiAgICByZXN1bHRzTmFtZTogXCLos6rllY/lkI1cIixcbiAgICByZXN1bHRzVGl0bGU6IFwi6LOq5ZWP44Gu44K/44Kk44OI44OrXCIsXG4gICAgcmVzdWx0c1ZhbHVlOiBcIuWbnuetlOWApFwiLFxuICAgIHNhdmVkOiBcIuS/neWtmOa4iOOBv1wiLFxuICAgIHNhdmVFcnJvcjogXCLjgqjjg6njg7zvvIEg44Ko44OH44Kj44K/44Gu44Kz44Oz44OG44Oz44OE44Gv5L+d5a2Y44GV44KM44G+44Gb44KT44CCXCIsXG4gICAgc2F2ZVN1cnZleTogXCLjgqLjg7PjgrHjg7zjg4jjgpLkv53lrZjjgZnjgotcIixcbiAgICBzYXZlU3VydmV5VG9vbHRpcDogXCLjgqLjg7PjgrHjg7zjg4jjgpLkv53lrZjjgZnjgotcIixcbiAgICBzYXZpbmc6IFwi5L+d5a2YXCIsXG4gICAgc2VsZWN0UGFnZTogXCLjg5rjg7zjgrjjgpLpgbjmip4uLi5cIixcbiAgICBzZXR0aW5nczogXCLjgqLjg7PjgrHjg7zjg4jjga7oqK3lrppcIixcbiAgICBzZXR0aW5nc1Rvb2x0aXA6IFwi44Ki44Oz44Kx44O844OI44Gu6Kit5a6a44KS6ZaL44GPXCIsXG4gICAgc2hvd1BhbmVsOiBcIuODkeODjeODq+OCkuihqOekuuOBmeOCi1wiLFxuICAgIHN1cnZleTogXCLjgqLjg7PjgrHjg7zjg4hcIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcIuOCouODs+OCseODvOODiOe1kOaenO+8miBcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCJKU09O44Go44GX44GmXCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIuihqOOBqOOBl+OBplwiLFxuICAgIHRlc3RTdXJ2ZXk6IFwi44Ki44Oz44Kx44O844OI44KS44OG44K544OI44GZ44KLXCIsXG4gICAgdGVzdFN1cnZleUFnYWluOiBcIuOCouODs+OCseODvOODiOOCkuWGjeW6puODhuOCueODiOOBmeOCi1wiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCLjgqLjg7PjgrHjg7zjg4jjga7luYXvvJogXCIsXG4gICAgdG9vbGJveDogXCLjg4Tjg7zjg6vjg5zjg4Pjgq/jgrlcIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcIuS4gOiIrFwiLFxuICAgIHRyYW5zbGF0aW9uOiBcIue/u+ios1wiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwi57+76Kiz44GZ44KL6KiA6Kqe44KS6YG45oqe44GZ44KLXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCJDU1bjgavjgqjjgq/jgrnjg53jg7zjg4jjgZnjgotcIixcbiAgICB0cmFuc2xhdGlvbkltcG9ydEZyb21TQ1ZCdXR0b246IFwiQ1NW44GL44KJ44Kk44Oz44Od44O844OI44GZ44KLXCIsXG4gICAgdHJhbnNsYXRpb25NZXJnZUxvY2FsZVdpdGhEZWZhdWx0OiBcInswfeOCkuODh+ODleOCqeODq+ODiOOBruODreOCseODvOODq+OBq+ODnuODvOOCuOOBmeOCi1wiLFxuICAgIHRyYW5zbGF0aW9uTm9TdHJpbmdzOiBcIue/u+ios+OBmeOCi+aWh+Wtl+WIl+OBjOOBguOCiuOBvuOBm+OCk+OAguODleOCo+ODq+OCv+ODvOOCkuWkieabtOOBl+OBpuOBj+OBoOOBleOBhOOAglwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcIuOBmeOBueOBpuOBruODmuODvOOCuOOCkuihqOekuuOBmeOCi1wiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwi44GZ44G544Gm44Gu5paH5a2X5YiX44KS6KGo56S644GZ44KLXCIsXG4gICAgdW5kZXJsaW5lOiBcIuS4i+e3mlwiLFxuICAgIHVuZG86IFwi5YWD44Gr5oi744GZXCIsXG4gICAgdW5kb1Rvb2x0aXA6IFwi5pyA5b6M44Gu5aSJ5pu044KS5YWD44Gr5oi744GZXCJcbiAgfSxcbiAgZXc6IHtcbiAgICBhbmd1bGFyOiBcIkFuZ3VsYXLjg5Djg7zjgrjjg6fjg7PjgpLkvb/nlKhcIixcbiAgICBib290c3RyYXA6IFwiQm9vdHN0cmFw44OV44Os44O844Og44Ov44O844Kv5ZCR44GRXCIsXG4gICAgZGFya2JsdWU6IFwi44OA44O844Kv44OW44Or44O844OG44O844OeXCIsXG4gICAgZGFya3Jvc2U6IFwi44OA44O844Kv44Ot44O844K644OG44O844OeXCIsXG4gICAgZGVmYXVsdDogXCLjg4fjg5Xjgqnjg6vjg4jjg4bjg7zjg55cIixcbiAgICBqcXVlcnk6IFwialF1ZXJ544OQ44O844K444On44Oz44KS5L2/55SoXCIsXG4gICAga25vY2tvdXQ6IFwiS25vY2tvdXTjg5Djg7zjgrjjg6fjg7PjgpLkvb/nlKhcIixcbiAgICBsb2FkRnJvbVNlcnZlcjogXCLjgrXjg7zjg5Djg7zjgYvjgonjgqLjg7PjgrHjg7zjg4jjga5KU09O44OV44Kh44Kk44Or44KS6Kqt44G/6L6844KAXCIsXG4gICAgbW9kZXJuOiBcIuODouODgOODs+ODhuODvOODnlwiLFxuICAgIG9yYW5nZTogXCLjgqrjg6zjg7Pjgrjjg4bjg7zjg55cIixcbiAgICByZWFjdDogXCJSZWFjdOODkOODvOOCuOODp+ODs+OCkuS9v+eUqFwiLFxuICAgIHNob3dJbldpbmRvdzogXCIx44Gk44Gu44Km44Kj44Oz44OJ44Km44Gr44Ki44Oz44Kx44O844OI44KS6KGo56S6XCIsXG4gICAgc2hvd09uUGFnZTogXCIx44Gk44Gu44Oa44O844K444Gr44Ki44Oz44Kx44O844OI44KS6KGo56S6XCIsXG4gICAgc3RvbmU6IFwi44K544OI44O844Oz44OG44O844OeXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiLFxuICAgIHRpdGxlU2NyaXB0OiBcIuOCueOCr+ODquODl+ODiOOBqOOCueOCv+OCpOODq1wiLFxuICAgIHZ1ZTogXCJWdWXjg5Djg7zjgrjjg6fjg7PjgpLkvb/nlKhcIixcbiAgICB3aW50ZXI6IFwi44Km44Kj44Oz44K/44O844OG44O844OeXCIsXG4gICAgd2ludGVyc3RvbmU6IFwi44Km44Kj44Oz44K/44O844K544OI44O844Oz44OG44O844OeXCJcbiAgfSxcbiAgb3A6IHtcbiAgICBhbGxvZjogXCLmrKHjga7jgZnjgbnjgaZcIixcbiAgICBhbmQ6IFwi44GK44KI44GzXCIsXG4gICAgYW55b2Y6IFwi5qyh44Gu44GE44Ga44KM44GLXCIsXG4gICAgY29udGFpbnM6IFwi5ZCr44KAXCIsXG4gICAgZW1wdHk6IFwi44Gv56m655m944Gn44GZXCIsXG4gICAgZXF1YWw6IFwi562J44GX44GEXCIsXG4gICAgZ3JlYXRlcjogXCLjgojjgorlpKfjgY3jgYRcIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCLnrYnjgZfjgYTjgYvjgojjgorlpKfjgY3jgYRcIixcbiAgICBsZXNzOiBcIuOCiOOCiuWwj+OBleOBhFwiLFxuICAgIGxlc3NvcmVxdWFsOiBcIuetieOBl+OBhOOBi+OCiOOCiuWwj+OBleOBhFwiLFxuICAgIG5vdGNvbnRhaW5zOiBcIuWQq+OBvuOBquOBhFwiLFxuICAgIG5vdGVtcHR5OiBcIuOBr+epuueZveOBp+OBr+OBguOCiuOBvuOBm+OCk1wiLFxuICAgIG5vdGVxdWFsOiBcIuetieOBl+OBj+OBquOBhFwiLFxuICAgIG9yOiBcIuOBvuOBn+OBr1wiXG4gIH0sXG4gIHA6IHtcbiAgICB0aXRsZToge1xuICAgICAgdGl0bGU6IFwi44CM5ZCN5YmN44CN44Go5ZCM44GY5aC05ZCI44Gv56m655m944Gu44G+44G+44Gr44GX44Gm44GP44Gg44GV44GEXCJcbiAgICB9XG4gIH0sXG4gIHBlOiB7XG4gICAgYWNlRWRpdG9ySGVscDogXCLooajnj77jga7oo5zlrozjga7jg5Ljg7Pjg4jjgpLlj5blvpfjgZnjgovjgavjga/jgIxjdHJsK3NwYWNl44CN44KS5oq844GX44Gm44GP44Gg44GV44GEXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCLnj77lnKjjga7jg5Hjg43jg6tcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCLnj77lnKjjga7ooYxcIixcbiAgICBhZGQ6IFwi6L+95YqgXCIsXG4gICAgYWRkQ29uZGl0aW9uOiBcIuadoeS7tuOCkui/veWKoOOBmeOCi1wiLFxuICAgIGFkZEl0ZW06IFwi44Kv44Oq44OD44Kv44GX44Gm44Ki44Kk44OG44Og44KS6L+95Yqg4oCmXCIsXG4gICAgYWRkTG9nbzogXCLjg63jgrTjgpLov73liqAuLi5cIixcbiAgICBhZGROZXc6IFwi5paw6KaP6L+95YqgOlwiLFxuICAgIGFkZE5vbmU6IFwi44Gq44GXXCIsXG4gICAgYWRkT3RoZXI6IFwi44Gd44Gu5LuWXCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwi5YiX44Oc44K/44Oz44Gu44Ot44Kx44O844K344On44Oz44KS6L+95YqgXCIsXG4gICAgYWRkUm93VGV4dDogXCLooYzjg5zjgr/jg7Pjga7jg4bjgq3jgrnjg4jjgpLov73liqBcIixcbiAgICBhZGRTZWxlY3RBbGw6IFwi44GZ44G544Gm6YG45oqeXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCLjg5Hjg43jg6vjga7ov73liqDjgpLoqLHlj69cIixcbiAgICBhbGxvd0RpZ2l0czogXCLmlbDlrZfjgpLoqLHlj69cIixcbiAgICBhbGxvd0VtcHR5UmVzcG9uc2U6IFwi56m644Gu5b+c562U44KS6Kix5Y+vXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLjg5Hjg43jg6vjga7liYrpmaTjgpLoqLHlj69cIixcbiAgICBhbmQ6IFwi44GK44KI44GzXCIsXG4gICAgYXBwbHk6IFwi6YGp55SoXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwi5Yip55So44Gn44GN44KL6LOq5ZWPOlwiLFxuICAgIGJhY2s6IFwi5L+d5a2Y44Gb44Ga44Gr5oi744KLXCIsXG4gICAgYmFja1Rvb2x0aXA6IFwi5L+d5a2Y44Gb44Ga44Gr5oi744KLXCIsXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcIuani+evieOBmeOCi1wiLFxuICAgIGNhbmNlbDogXCLjgq3jg6Pjg7Pjgrvjg6tcIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwi44OH44OV44Kp44Or44OI44Gu44K744Or44OG44Kt44K544OIXCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIuWwkeOBquOBj+OBqOOCgjHjgaTjga7liJfjgb7jgZ/jga/ooYzjgpLlkKvjgoDlv4XopoHjgYzjgYLjgorjgb7jgZlcIixcbiAgICBjZWxsVHlwZTogXCLjgrvjg6vjgr/jgqTjg5dcIixcbiAgICBjaGFuZ2VMb2dvOiBcIuODreOCtOOCkuWkieabtC4uLlwiLFxuICAgIGNob2ljZXNNYXg6IFwi6Ieq5YuV55Sf5oiQ44Ki44Kk44OG44Og44Gu5pyA5aSn5YCkXCIsXG4gICAgY2hvaWNlc01pbjogXCLoh6rli5XnlJ/miJDjgqLjgqTjg4bjg6Djga7mnIDlsI/lgKRcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwi6YG45oqe6aCGXCIsXG4gICAgY2hvaWNlc1N0ZXA6IFwi6Ieq5YuV55Sf5oiQ44Ki44Kk44OG44Og44Gu5beuXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwi6Z2e6KGo56S644Gu5YCk44KS44Kv44Oq44Ki44GZ44KLXCIsXG4gICAgY29sQ291bnQ6IFwi6KGM44Gu5pWwXCIsXG4gICAgY29sczogXCLooYzjga7mlbBcIixcbiAgICBjb2x1bW5FZGl0OiBcIuihjOe3qOmbhjogezB9XCIsXG4gICAgY29sdW1uTGF5b3V0OiBcIuihjOOBruODrOOCpOOCouOCpuODiFwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLjgIzlrozkuobjgI3jg5zjgr/jg7Pjga7jg4bjgq3jgrnjg4hcIixcbiAgICBjb25kaXRpb25BY3Rpb25FbXB0eTogXCLjgqLjgq/jgrfjg6fjg7PjgpLpgbjmip7jgZfjgabjgY/jgaDjgZXjgYRcIixcbiAgICBjb25kaXRpb25TZWxlY3RQYWdlOiBcIuODmuODvOOCuOOCkumBuOaKni4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhbmVsOiBcIuODkeODjeODq+OCkumBuOaKni4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcIuizquWVj+OCkumBuOaKni4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCLlgKTjgpLlhaXlipsv6YG45oqe44GX44Gm44GP44Gg44GV44GEXCIsXG4gICAgY29va2llTmFtZTogXCJDb29raWXlkI3vvIjjg63jg7zjgqvjg6vjgacy5Zue44Ki44Oz44Kx44O844OI44KS5a6f6KGM44GX44Gq44GE44KI44GG44Gr44GZ44KL44Gf44KB77yJXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCLjg4jjg6rjgqzjg7zjgpLkvZzmiJDjgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwi44OH44OV44Kp44Or44OI5YCkXCIsXG4gICAgZGVsZXRlOiBcIuWJiumZpFwiLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwi6Kmz57Sw44KS5YWl5YqbXCIsXG4gICAgZWRpdDogXCLnt6jpm4ZcIixcbiAgICBlZGl0Q2hvaWNlczogXCLpgbjmip7ogqLjgpLnt6jpm4ZcIixcbiAgICBlZGl0RXhwcmVzc2lvbjogXCLnt6jpm4ZcIixcbiAgICBlZGl0UHJvcGVydHk6IFwi44OX44Ot44OR44OG44KjJ3swfSfjgpLnt6jpm4ZcIixcbiAgICBlZGl0VGV4dDogXCLjgIznt6jpm4bjgI3jg5zjgr/jg7Pjga7jg4bjgq3jgrnjg4hcIixcbiAgICBlbnRlck5ld1ZhbHVlOiBcIuWApOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAglwiLFxuICAgIGV4cGFuZENvbGxhcHNlVGl0bGU6IFwi44K/44Kk44OI44Or44KS5bGV6ZaLL+aKmOOCiuOBn+OBn+OCgFwiLFxuICAgIGV4cHJlc3Npb246IFwi6KGo54++XCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6IFwi5rOi5ous5byn44KS5L2/55So44GX44Gm6LOq5ZWP44Gu5YCk44Gr44Ki44Kv44K744K544Gn44GN44G+44GZOiB76LOq5ZWPMX0gKyB76LOq5ZWPMn0sICh75YCk5q61fSp75pWw6YePfSkgKiAoMTAwIC0ge+WJsuW8lX0p44CCaWlmKCksIHRvZGF5KCksIGFnZSgpLCBtaW4oKSwgbWF4KCksIGNvdW50KCksIGF2ZygpIOOBiuOCiOOBs+OBneOBruS7luOBrumWouaVsOOCkuS9v+eUqOOBp+OBjeOBvuOBmeOAglwiLFxuICAgIGV4cHJlc3Npb25Jc0VtcHR5OiBcIuihqOePvuOBjOepuueZveOBp+OBmVwiLFxuICAgIGZhc3RFbnRyeTogXCLpq5jpgJ/lhaXliptcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi44Ki44Oz44Kx44O844OI44Gu5pyA5Yid44Gu44Oa44O844K444Gv44CB6ZaL5aeL44Oa44O844K444Gn44GZ44CCXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIuODmuODvOOCuOOCkuWkieOBiOOCi+mam+OBq+acgOWIneOBruizquWVj+OBq+eEpueCueOCkuWQiOOCj+OBm+OCi1wiLFxuICAgIGZvcm1FbnRyeTogXCLjg5Xjgqnjg7zjg6DlhaXliptcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcIuOBmeOBueOBpuOBruizquWVj+OBq+WbnuetlOOBmeOCi+OBqOOAgeiHquWLleeahOOBq+asoeOBruODmuODvOOCuOOBq+enu+WLleOBl+OBvuOBmVwiLFxuICAgIHNob3dOb25lSXRlbTogXCLjg47jg7zjgqLjgqTjg4bjg6BcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIuS7luOBruOCouOCpOODhuODoFwiLFxuICAgIGhhc1NlbGVjdEFsbDogXCLjgqLjgqTjg4bjg6DjgpLlhajjgabpgbjmip5cIixcbiAgICBodG1sOiBcIkhUTUxcIixcbiAgICBpbWFnZUhlaWdodDogXCLjgqTjg6Hjg7zjgrjjga7pq5jjgZVcIixcbiAgICBpbWFnZUxpbms6IFwi55S75YOP44Oq44Oz44KvXCIsXG4gICAgaW1hZ2VXaWR0aDogXCLjgqTjg6Hjg7zjgrjjga7luYVcIixcbiAgICBpbnB1dFR5cGU6IFwi5YWl5Yqb44K/44Kk44OXXCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCLlhajjgabjga7liJfjgaflm57nrZTlv4XpoIhcIixcbiAgICBpc1JlcXVpcmVkOiBcIuW/hemgiFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCIx44Oa44O844K45LiK44Gr44GZ44G544Gm44Gu44Ko44Os44Oh44Oz44OI44KS6KGo56S6XCIsXG4gICAgaXRlbUVkaXQ6IFwi44Ki44Kk44OG44Og57eo6ZuGOiB7MH1cIixcbiAgICBpdGVtczogXCJbIOOCouOCpOODhuODoDogezB9IF1cIixcbiAgICBpdGVtU2VsZWN0b3JFbXB0eTogXCLjgqjjg6zjg6Hjg7Pjg4jjgpLpgbjmip7jgZfjgabjgY/jgaDjgZXjgYRcIixcbiAgICBpdGVtVmlldzogXCLjgqLjgqTjg4bjg6DooajnpLo6IHswfVwiLFxuICAgIGtleWJvYXJkQWRvcm5lclRpcDogXCLjgqLjgqTjg4bjg6DjgpLnt6jpm4bjgZnjgovjgavjga/jgIxlbnRlcuOAjeOCreODvOOCkuaKvOOBl+OBpuOBj+OBoOOBleOBhOOAgeOCouOCpOODhuODoOOCkuWJiumZpOOBmeOCi+OBq+OBr+OAjGRlbGV0ZeOAjeOCreODvOOCkuaKvOOBl+OBpuOBj+OBoOOBleOBhOOAgeOCouOCpOODhuODoOOCkuenu+WLleOBmeOCi+OBq+OBr+OAjGFsdOOAjSvkuIrnn6LljbDjgq3jg7zjgb7jgZ/jga/jgIxhbHTjgI0r5LiL55+i5Y2w44Kt44O844KS5oq844GX44Gm44GP44Gg44GV44GEXCIsXG4gICAga2V5Ym9hcmRNb3ZlSXRlbXNUaXA6IFwi44Ki44Kk44OG44Og44KS56e75YuV44GZ44KL44Gr44Gv44CMYWx044CNK+S4iuefouWNsOOCreODvOOBvuOBn+OBr+OAjGFsdOOAjSvkuIvnn6LljbDjgq3jg7zjgpLmirzjgZfjgabjgY/jgaDjgZXjgYRcIixcbiAgICBsYW5kc2NhcGVPcmllbnRhdGlvbjogXCLmqKrlkJHjgY1cIixcbiAgICBsaXN0SXNFbXB0eTogXCLmlrDjgZfjgYTjgqLjgqTjg4bjg6DjgpLov73liqBcIixcbiAgICBsb2NhbGU6IFwi44OH44OV44Kp44Or44OI44Gu6KiA6KqeXCIsXG4gICAgbG9nb1Bvc2l0aW9uOiBcIuODreOCtOOBruS9jee9rlwiLFxuICAgIGxvZ29Qb3NpdGlvbnM6IHtcbiAgICAgIGJvdHRvbTogXCLkuIvjgatcIixcbiAgICAgIGxlZnQ6IFwi5bemXCIsXG4gICAgICBub25lOiBcIuODreOCtOOCkuWJiumZpFwiLFxuICAgICAgcmlnaHQ6IFwi5Y+zXCIsXG4gICAgICB0b3A6IFwi5LiK44GrXCJcbiAgICB9LFxuICAgIG1heENvdW50OiBcIuacgOWkp+aVsFwiLFxuICAgIG1heExlbmd0aDogXCLmnIDlpKfplbdcIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwi5pyA5aSn44Os44O844OI44Gu6Kqs5piOXCIsXG4gICAgbWF4U2l6ZTogXCLjg5XjgqHjgqTjg6vjga7mnIDlpKfjgrXjgqTjgrrvvIhieXRl77yJXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIuOCouODs+OCseODvOODiOe1guS6huOBvuOBp+OBruacgOmVt+aZgumWk1wiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwi44Ki44Oz44Kx44O844OI44GuMeODmuODvOOCuOOCkue1guS6huOBmeOCi+OBvuOBp+OBruacgOmVt+aZgumWk1wiLFxuICAgIG1heFZhbHVlOiBcIuacgOWkp+WApFwiLFxuICAgIG1pbkNvdW50OiBcIuacgOWwj+aVsFwiLFxuICAgIG1pbkxlbmd0aDogXCLmnIDlsI/plbdcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwi5pyA5bCP44Os44O844OI44Gu6Kmz57SwXCIsXG4gICAgbWluVmFsdWU6IFwi5pyA5bCP5YCkXCIsXG4gICAgbW9kZTogXCLjg6Ljg7zjg4nvvIjnt6jpm4Yv6Kqt44G/5Y+W44KK5bCC55So77yJXCIsXG4gICAgbW92ZTogXCLnp7vli5VcIixcbiAgICBuYW1lOiBcIuWQjeWJjVwiLFxuICAgIG5vRmlsZTogXCLjg5XjgqHjgqTjg6vjgYzpgbjmip7jgZXjgozjgabjgYTjgb7jgZvjgpNcIixcbiAgICBub25lVGV4dDogXCLjg47jg7zjgqLjgqTjg4bjg6Djga7jg4bjgq3jgrnjg4hcIixcbiAgICBub3F1ZXN0aW9uczogXCLjgqLjg7PjgrHjg7zjg4jjgavos6rllY/jga/jgYLjgorjgb7jgZvjgpPjgIJcIixcbiAgICBvazogXCJPS1wiLFxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIuOCquODl+OCt+ODp+ODs+OBruOCreODo+ODl+OCt+ODp+ODs1wiLFxuICAgIG9yOiBcIuOBvuOBn+OBr1wiLFxuICAgIG90aGVyVGV4dDogXCLku5bjga7jgqLjgqTjg4bjg6Djga7jg4bjgq3jgrnjg4hcIixcbiAgICBwYWdlRGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCLjg5rjg7zjgrjjga7oqbPntLDjgpLlhaXliptcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwi44CM5qyh44Gu44Oa44O844K444G444CN44Oc44K/44Oz44Gu44OG44Kt44K544OIXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIuOAjOWJjeOBruODmuODvOOCuOOBuOOAjeODnOOCv+ODs+OBruODhuOCreOCueODiFwiLFxuICAgIHBhZ2VUaXRsZVBsYWNlaG9sZGVyOiBcIuODmuODvOOCuOOCv+OCpOODiOODq+OCkuWFpeWKm1wiLFxuICAgIHBhbmVsQWRkVGV4dDogXCLjg5Hjg43jg6vjg4bjgq3jgrnjg4jjgpLov73liqDjgZfjgabjgYTjgb7jgZlcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwi44OR44ON44Or44OG44Kt44K544OI44KS5YmK6Zmk44GX44Gm44GE44G+44GZXCIsXG4gICAgcGF0aDogXCLjg5HjgrlcIixcbiAgICBwbGFjZWhvbGRlcjogXCLjg5fjg6zjg7zjgrnjg5vjg6vjg4Djga7lhaXliptcIixcbiAgICBwcmV2aWV3VGV4dDogXCLjgIzjg5fjg6zjg5Pjg6Xjg7zjgI3jg5zjgr/jg7Pjga7jg4bjgq3jgrnjg4hcIixcbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwi5YCk44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEXCIsXG4gICAgcHJvcGVydHlJc05vVW5pcXVlOiBcIuWbuuacieWApOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhFwiLFxuICAgIHByb3BlcnR5TmFtZUlzTm90VW5pcXVlOiBcIuWbuuacieWQjeOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhFwiLFxuICAgIHFFZGl0b3JUaXRsZTogXCLnt6jpm4bvvJogezB9XCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIuizquWVj+OCqOODqeODvOOBruWgtOaJgFwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIuODmuODvOOCuOS4iuOBruimgee0oOOBrumghuW6j1wiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCLos6rllY/plovlp4vjgqTjg7Pjg4fjg4Pjgq/jgrnvvIgx44CBMuOBvuOBn+OBr+OAjEHjgI3jgIHjgIxh44CN77yJXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIuizquWVj+OBruOCv+OCpOODiOODq+OBruWgtOaJgFwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCLos6rllY/jgr/jgqTjg4jjg6vjga7jg4bjg7Pjg5fjg6zjg7zjg4jjgIHjg4fjg5Xjgqnjg6vjg4jjga/jgIx7bm99LiB7cmVxdWlyZX0ge3RpdGxlfeOAjeOBp+OBmVwiLFxuICAgIHJhdGVNYXg6IFwi5pyA5aSn44Os44O844OIXCIsXG4gICAgcmF0ZU1pbjogXCLmnIDlsI/jg6zjg7zjg4hcIixcbiAgICByYXRlU3RlcDogXCLjg6zjg7zjg4jjgrnjg4bjg4Pjg5dcIixcbiAgICByZWZyZXNoOiBcIuODquODleODrOODg+OCt+ODpVwiLFxuICAgIHJlZ2V4OiBcIuato+imj+ihqOePvlwiLFxuICAgIHJlbW92ZTogXCLliYrpmaTjgZnjgotcIixcbiAgICByZW1vdmVBbGw6IFwi44GZ44G544Gm5YmK6ZmkXCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCLooYzjg5zjgr/jg7Pjga7jg4bjgq3jgrnjg4jjgpLliYrpmaRcIixcbiAgICByZW5kZXJNb2RlOiBcIuODrOODs+ODgOODvOODouODvOODiVwiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OiBcIuW/heimgeOBquOCqOODqeODvOODhuOCreOCueODiFwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCLos6rllY/jgavjga/oqJjlj7fjgYzlv4XopoFcIixcbiAgICByZXNldDogXCLjg6rjgrvjg4Pjg4hcIixcbiAgICByb3dDb3VudDogXCLliJfmlbBcIixcbiAgICByb3dpZDogXCLooYxJRFwiLFxuICAgIHJvd3M6IFwi5YiX5pWwXCIsXG4gICAgc2F2ZTogXCLkv53lrZhcIixcbiAgICBzYXZlQW5kQmFjazogXCLkv53lrZjjgZfjgabmiLvjgotcIixcbiAgICBzYXZlQW5kQmFja1Rvb2x0aXA6IFwi5L+d5a2Y44GX44Gm5oi744KLXCIsXG4gICAgc2F2ZVRvb2x0aXA6IFwi5L+d5a2YXCIsXG4gICAgc2VsZWN0QWxsVGV4dDogXCLjgqLjgqTjg4bjg6DjgpLlhajjgabpgbjmip7jga7jg4bjgq3jgrnjg4hcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCLmrKHjga7jg5rjg7zjgrjjgavjgqLjg7PjgrHjg7zjg4jntZDmnpzjgpLpgIHkv6HjgZnjgotcIixcbiAgICBzaG93Q2hvaWNlczogXCLpgbjmip7ogqLjgpLooajnpLpcIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCLlrozkuobjgZfjgZ/jg5rjg7zjgrjjgpLmnIDlvozjgavooajnpLrjgZnjgovvvIhjb21wbGV0ZWRIdG1s77yJXCIsXG4gICAgc2hvd01vcmU6IFwi6Kmz57Sw44Gv5paH5pu444KS44GU56K66KqN44GP44Gg44GV44GEXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIuODiuODk+OCsuODvOOCt+ODp+ODs+ODnOOCv+ODs+OCkuihqOekuuOBmeOCi++8iOODh+ODleOCqeODq+ODiOOBruODiuODk+OCsuODvOOCt+ODp+ODs++8iVwiLFxuICAgIHNob3dPcHRpb25zQ2FwdGlvbjogXCLjgqrjg5fjgrfjg6fjg7Pjga7jgq3jg6Pjg5fjgrfjg6fjg7PjgpLooajnpLrjgZnjgotcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwi44Oa44O844K455Wq5Y+344KS6KGo56S644GZ44KLXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi44Oa44O844K444K/44Kk44OI44Or44KS6KGo56S644GZ44KLXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwi44CM5YmN44G444CN44Oc44K/44Oz44KS6KGo56S644GZ44KL77yI44Om44O844K244O844Gv5YmN44Gu44Oa44O844K444Gr5oi744KL44GT44Go44GM44Gn44GN44G+44GZ77yJXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwi44OX44Os44OT44Ol44O844Ko44Oq44Ki6KGo56S6XCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIuODl+ODreOCsOODrOOCueODkOODvOOCkuihqOekuuOBmeOCi1wiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwi6LOq5ZWP55Wq5Y+344KS6KGo56S644GZ44KLXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwi44K/44Kk44Oe44O844OR44ON44Or44KS6KGo56S644GZ44KLXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIuOCv+OCpOODnuODvOODkeODjeODq+ODouODvOODieOCkuihqOekulwiLFxuICAgIHNob3dUaXRsZTogXCLjgr/jgqTjg4jjg6vjga7ooajnpLov6Z2e6KGo56S6XCIsXG4gICAgc2ltdWxhdG9yOiBcIuODh+ODkOOCpOOCueOCkumBuOaKnuOBmeOCi1wiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCLjgIzplovlp4vjgI3jg5zjgr/jg7Pjga7jg4bjgq3jgrnjg4hcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIuODi+ODpeODvOODqeOCpOODs+OBp+mWi+Wni1wiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCLjg5XjgqHjgqTjg6vjga7jgrPjg7Pjg4bjg7Pjg4TjgpLjg4bjgq3jgrnjg4jjgajjgZfjgaZKU09O44Gu57WQ5p6c44Gr5L+d5a2YXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwi44CM44Gd44Gu5LuW44CN44Gu5YCk44KS5Yil44Gu44OV44Kj44O844Or44OJ44Gr5L+d5a2Y44GZ44KLXCIsXG4gICAgc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCLoqr/mn7vjga7oqbPntLDjgpLlhaXliptcIixcbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCLjgqLjg7PjgrHjg7zjg4joqK3lrprjgpLnt6jpm4bjgZnjgotcIixcbiAgICBzdXJ2ZXlUaXRsZVBsYWNlaG9sZGVyOiBcIuiqv+afu+OCv+OCpOODiOODq+OCkuWFpeWKm1wiLFxuICAgIHRhYnM6IHtcbiAgICAgIGNhbGN1bGF0ZWRWYWx1ZXM6IFwi566X5Ye644GV44KM44Gf5YCkXCIsXG4gICAgICBjZWxsczogXCLjgrvjg6tcIixcbiAgICAgIGNob2ljZXM6IFwi6YG45oqeXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwi44Km44Kn44OW44Gu6YG45oqeXCIsXG4gICAgICBjb2x1bW5zOiBcIuWIl1wiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCLlrozkuobjgZfjgZ9IVE1MXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwi5a6M5oiQ44GX44Gf5p2h5Lu25LuY44GNSFRNTFwiLFxuICAgICAgZGF0YTogXCLjg4fjg7zjgr9cIixcbiAgICAgIGVuYWJsZUlmOiBcIuS7peS4i+OBruWgtOWQiOOAgeacieWKueOBq+OBmeOCi++8mlwiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwi44Kq44OX44K344On44OzXCIsXG4gICAgICBnZW5lcmFsOiBcIuS4gOiIrFwiLFxuICAgICAgaHRtbDogXCJIVE1M44Ko44OH44Kj44K/44O8XCIsXG4gICAgICBpdGVtczogXCLjgqLjgqTjg4bjg6BcIixcbiAgICAgIGxheW91dDogXCLjg6zjgqTjgqLjgqbjg4hcIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcIkhUTUzjgpLoqq3jgb/ovrzjgpPjgafjgYTjgb7jgZlcIixcbiAgICAgIGxvZ2ljOiBcIuODreOCuOODg+OCr1wiLFxuICAgICAgbG9nbzogXCLjgqLjg7PjgrHjg7zjg4jjgr/jgqTjg4jjg6vjga7jg63jgrRcIixcbiAgICAgIG1hdHJpeENob2ljZXM6IFwi44OH44OV44Kp44Or44OI44Gu6YG45oqeXCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCLjg4bjgq3jgrnjg4jlhaXliptcIixcbiAgICAgIG5hdmlnYXRpb246IFwi44OK44OT44Ky44O844K344On44OzXCIsXG4gICAgICBudW1iZXJpbmc6IFwi55Wq5Y+35LuY44GRXCIsXG4gICAgICBvdGhlcnM6IFwi44Gd44Gu5LuWXCIsXG4gICAgICBwYWdlczogXCLjg5rjg7zjgrhcIixcbiAgICAgIHF1ZXN0aW9uOiBcIuizquWVj1wiLFxuICAgICAgcmF0ZVZhbHVlczogXCLjg6zjg7zjg4jlgKRcIixcbiAgICAgIHJlcXVpcmVkSWY6IFwi5Lul5LiL44Gu5aC05ZCI44CB5b+F6aCI77yaXCIsXG4gICAgICByb3dzOiBcIuihjFwiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcIuWujOaIkOOBl+OBn+OCguOBruOBq+ihqOekulwiLFxuICAgICAgc2xpZGVyOiBcIuOCueODqeOCpOODgOODvFwiLFxuICAgICAgdGVtcGxhdGVUaXRsZTogXCLjg4bjg7Pjg5fjg6zjg7zjg4jjgr/jgqTjg4jjg6tcIixcbiAgICAgIHRpbWVyOiBcIuOCv+OCpOODnuODvC/jgq/jgqTjgrpcIixcbiAgICAgIHRvdGFsczogXCLlkIjoqIhcIixcbiAgICAgIHRyaWdnZXJzOiBcIuODiOODquOCrOODvFwiLFxuICAgICAgdmFsaWRhdGlvbjogXCLmpJzoqLxcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwi44OQ44Oq44OH44O844K/XCIsXG4gICAgICB2aXNpYmxlSWY6IFwi5Lul5LiL44Gu5aC05ZCI44CB6KaL44GI44KL77yaXCJcbiAgICB9LFxuICAgIHRlc3RTZXJ2aWNlOiBcIuOCteODvOODk+OCueOCkuODhuOCueODiFwiLFxuICAgIHRleHQ6IFwi44OG44Kt44K544OIXCIsXG4gICAgdGl0bGU6IFwi44K/44Kk44OI44OrXCIsXG4gICAgdGl0bGVLZXlib2FyZEFkb3JuZXJUaXA6IFwi57eo6ZuG44GZ44KL44Gr44Gv44CMZW50ZXLjgI3jgq3jg7zjgpLmirzjgZfjgabjgY/jgaDjgZXjgYRcIixcbiAgICB0aXRsZU5hbWU6IFwi44K/44Kk44OI44Or5ZCNXCIsXG4gICAgdGl0bGVQbGFjZWhvbGRlcjogXCLjgr/jgqTjg4jjg6vjgpLlhaXliptcIixcbiAgICB0b3RhbEN1cnJlbmN5OiBcIumAmuiyqOOBruWQiOioiFwiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcIuihqOekuuOCueOCv+OCpOODq+OBruWQiOioiFwiLFxuICAgIHRvdGFsRXhwcmVzc2lvbjogXCLooajnj77jga7lkIjoqIhcIixcbiAgICB0b3RhbEZvcm1hdDogXCLlvaLlvI/jga7lkIjoqIhcIixcbiAgICB0b3RhbFRleHQ6IFwi44OG44Kt44K544OI44Gu5ZCI6KiIXCIsXG4gICAgdG90YWxUeXBlOiBcIuOCv+OCpOODl+OBruWQiOioiFwiLFxuICAgIHRyaWdnZXJDb21wbGV0ZVRleHQ6IFwi44GG44G+44GP44GE44GR44Gw44Ki44Oz44Kx44O844OI44GM5a6M5LqG44GX44G+44GZ44CCXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIuasoeOBi+OCieWApOOCkuOCs+ODlOODvDogXCIsXG4gICAgdHJpZ2dlckdvdG9OYW1lOiBcIuizquWVj+OBq+enu+WLlTpcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCLjgqLjg7PjgrHjg7zjg4jjga7ntZDmnpzjgavlpInmlbDjgpLlhaXjgozjgarjgYTjgafjgY/jgaDjgZXjgYTjgIJcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCLjg5rjg7zjgrjjgpLlj6/oppbljJY6XCIsXG4gICAgdHJpZ2dlck1ha2VRdWVzdGlvbnNWaXNpYmxlOiBcIuOCqOODrOODoeODs+ODiOOCkuWPr+imluWMljpcIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIuODiOODquOCrOODvOOBjOioreWumuOBleOCjOOBpuOBhOOBvuOBm+OCk1wiLFxuICAgIHRyaWdnZXJPbjogXCLjgqrjg7MgXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb246IFwi44GT44Gu6KGo54++44KS5a6f6KGMOlwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uRW1wdHk6IFwi5pyJ5Yq544Gq6KGo54++44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEXCIsXG4gICAgdHJpZ2dlclJ1bklmOiBcIuasoeOBruWgtOWQiOOAgeWun+ihjFwiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwi5qyh44Gu5YCk44KS5aSJ5pu0OiBcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwi5a6b5YWIOiBcIixcbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgdmFsdWU6IFwi5YCkXCIsXG4gICAgdmFsdWVOYW1lOiBcIuWApOWQjVwiLFxuICAgIHZpZXc6IFwi6KGo56S6XCIsXG4gICAgdmlzaWJsZTogXCLooajnpLpcIlxuICB9LFxuICBwdjoge1xuICAgIGFsbDogXCLjgZnjgbnjgaZcIixcbiAgICBhc2M6IFwi5piH6aCGXCIsXG4gICAgYm90aDogXCLkuKHmlrlcIixcbiAgICBib3R0b206IFwi5LiLXCIsXG4gICAgYnV0dG9uczogXCLjg5zjgr/jg7NcIixcbiAgICBjb2xsYXBzZWQ6IFwi5oqY44KK55Wz44KT44GgXCIsXG4gICAgY29sb3I6IFwi6ImyXCIsXG4gICAgY29ycmVjdFF1ZXN0aW9uczogXCLmraPjgZfjgYTos6rllY9cIixcbiAgICBjdXJyZW5jeTogXCLpgJrosqhcIixcbiAgICBkYXRlOiBcIuaXpeS7mFwiLFxuICAgIGRhdGV0aW1lOiBcIuaXpeaZglwiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCJkYXRldGltZS1sb2NhbFwiLFxuICAgIGRlY2ltYWw6IFwi5bCP5pWwXCIsXG4gICAgZGVmYXVsdDogXCLjg4fjg5Xjgqnjg6vjg4hcIixcbiAgICBkZXNjOiBcIumZjemghlwiLFxuICAgIGRpc3BsYXk6IFwi6KGo56S6XCIsXG4gICAgZWRpdDogXCLnt6jpm4ZcIixcbiAgICBlbWFpbDogXCLjg6Hjg7zjg6tcIixcbiAgICBleHBhbmRlZDogXCLlsZXplovjgZfjgZ9cIixcbiAgICBmYWxzZTogXCLlgb1cIixcbiAgICBmaXJzdEV4cGFuZGVkOiBcImZpcnN0RXhwYW5kZWRcIixcbiAgICBoaWRkZW46IFwi6Z2e6KGo56S6XCIsXG4gICAgaGlkZTogXCLpnZ7ooajnpLrjgavjgZnjgotcIixcbiAgICBob3Jpem9udGFsOiBcIuawtOW5s1wiLFxuICAgIGluZGV0ZXJtaW5hdGU6IFwi5LiN56K65a6aXCIsXG4gICAgaW5oZXJpdDogXCLntpnmib/jgZnjgotcIixcbiAgICBpbml0aWFsOiBcIuacgOWIneOBrlwiLFxuICAgIGxlZnQ6IFwi5bemXCIsXG4gICAgbGlzdDogXCLjg6rjgrnjg4hcIixcbiAgICBtb250aDogXCLmnIhcIixcbiAgICBub25lOiBcIuOBquOBl1wiLFxuICAgIG5vUHJldmlldzogXCLjg5fjg6zjg5Pjg6Xjg7zjgarjgZdcIixcbiAgICBudW1iZXI6IFwi5pWw5a2XXCIsXG4gICAgb2ZmOiBcIuOCquODlVwiLFxuICAgIG9uOiBcIuOCquODs1wiLFxuICAgIG9uQ29tcGxldGU6IFwib25Db21wbGV0ZVwiLFxuICAgIG9uSGlkZGVuOiBcIm9uSGlkZGVuXCIsXG4gICAgb25OZXh0UGFnZTogXCJvbk5leHRQYWdlXCIsXG4gICAgb25QYWdlOiBcIm9uUGFnZVwiLFxuICAgIG9uUGFuZWw6IFwib25QYW5lbFwiLFxuICAgIG9uU3VydmV5OiBcIm9uU3VydmV5XCIsXG4gICAgb25WYWx1ZUNoYW5nZWQ6IFwib25WYWx1ZUNoYW5nZWRcIixcbiAgICBwYWdlOiBcIuODmuODvOOCuFwiLFxuICAgIHBhZ2VzOiBcIuODmuODvOOCuFwiLFxuICAgIHBhc3N3b3JkOiBcIuODkeOCueODr+ODvOODiVwiLFxuICAgIHBlcmNlbnQ6IFwi44OR44O844K744Oz44OIXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwicHJvZ3Jlc3NCb3R0b21cIixcbiAgICBwcm9ncmVzc1RvcDogXCJwcm9ncmVzc1RvcFwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcInByb2dyZXNzVG9wQm90dG9tXCIsXG4gICAgcXVlc3Rpb25QZXJQYWdlOiBcIuODmuODvOOCuOOBguOBn+OCiuOBruizquWVj1wiLFxuICAgIHF1ZXN0aW9uczogXCLos6rllY9cIixcbiAgICByYW5kb206IFwi44Op44Oz44OA44OgXCIsXG4gICAgcmFuZ2U6IFwi56+E5ZuyXCIsXG4gICAgcmVxdWlyZWRRdWVzdGlvbnM6IFwi5b+F6aCI44Gu6LOq5ZWPXCIsXG4gICAgc2hvdzogXCLooajnpLrjgZnjgotcIixcbiAgICBzaG93QWxsUXVlc3Rpb25zOiBcIuOBmeOBueOBpuOBruizquWVj+OCkuWQq+OCgOODl+ODrOODk+ODpeODvOOCkuihqOekulwiLFxuICAgIHNob3dBbnN3ZXJlZFF1ZXN0aW9uczogXCLlm57nrZTjgZXjgozjgZ/os6rllY/jgpLlkKvjgoDjg5fjg6zjg5Pjg6Xjg7zjgpLooajnpLpcIixcbiAgICBzaW5nbGVQYWdlOiBcIuOCt+ODs+OCsOODq+ODmuODvOOCuFwiLFxuICAgIHN0YW5kYXJkOiBcIuOCueOCv+ODs+ODgOODvOODiVwiLFxuICAgIHN1cnZleTogXCLjgqLjg7PjgrHjg7zjg4hcIixcbiAgICB0ZWw6IFwi6Zu76KmxXCIsXG4gICAgdGV4dDogXCLjg4bjgq3jgrnjg4hcIixcbiAgICB0aW1lOiBcIuaZgumWk1wiLFxuICAgIHRvcDogXCLkuIpcIixcbiAgICB0b3BCb3R0b206IFwi5LiK44Go5LiLXCIsXG4gICAgdHJ1ZTogXCLnnJ9cIixcbiAgICB1bmRlcklucHV0OiBcIuOCpOODs+ODl+ODg+ODiOOBruS4i1wiLFxuICAgIHVuZGVyVGl0bGU6IFwi44K/44Kk44OI44Or44Gu5LiLXCIsXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHZlcnRpY2FsOiBcIuWeguebtFwiLFxuICAgIHdlZWs6IFwi6YCxXCJcbiAgfSxcbiAgcXQ6IHtcbiAgICBib29sZWFuOiBcIuODluODvOODq1wiLFxuICAgIGNoZWNrYm94OiBcIuODgeOCp+ODg+OCr+ODnOODg+OCr+OCuVwiLFxuICAgIGNvbW1lbnQ6IFwi44Kz44Oh44Oz44OIXCIsXG4gICAgZGVmYXVsdDogXCLjg4fjg5Xjgqnjg6vjg4hcIixcbiAgICBkcm9wZG93bjogXCLjg4njg63jg4Pjg5fjg4Djgqbjg7NcIixcbiAgICBleHByZXNzaW9uOiBcIuW8j++8iOiqreOBv+WPluOCiuWwgueUqO+8iVwiLFxuICAgIGZpbGU6IFwi44OV44Kh44Kk44OrXCIsXG4gICAgZmxvd3BhbmVsOiBcIuODleODreODvOODkeODjeODq1wiLFxuICAgIGh0bWw6IFwiSFRNTFwiLFxuICAgIGltYWdlOiBcIueUu+WDj1wiLFxuICAgIGltYWdlcGlja2VyOiBcIueUu+WDj+ODlOODg+OCq+ODvFwiLFxuICAgIG1hdHJpeDogXCLjg57jg4jjg6rjg4Pjgq/jgrnvvIjljZjkuIDpgbjmip7vvIlcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCLjg57jg4jjg6rjg4Pjgq/jgrnvvIjlpJrpoIXpgbjmip7vvIlcIixcbiAgICBtYXRyaXhkeW5hbWljOiBcIuODnuODiOODquODg+OCr+OCue+8iOWLleeahOihjO+8iVwiLFxuICAgIG11bHRpcGxldGV4dDogXCLopIfmlbDjga7jg4bjgq3jgrnjg4hcIixcbiAgICBwYW5lbDogXCLjg5Hjg43jg6tcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwi44OR44ON44Or77yI5YuV55qE44OR44ON44Or77yJXCIsXG4gICAgcmFkaW9ncm91cDogXCLjg6njgrjjgqrjgrDjg6vjg7zjg5dcIixcbiAgICByYW5raW5nOiBcIuODqeODs+OCreODs+OCsFwiLFxuICAgIHJhdGluZzogXCLoqZXkvqFcIixcbiAgICBzaWduYXR1cmVwYWQ6IFwi572y5ZCN44OR44OD44OJXCIsXG4gICAgdGV4dDogXCLljZjkuIDlhaXliptcIlxuICB9LFxuICBzdXJ2ZXk6IHtcbiAgICBhZGRMb2dpY0l0ZW06IFwi44Ki44Oz44Kx44O844OI44Gu5rWB44KM44KS44Kr44K544K/44Oe44Kk44K644GZ44KL44Or44O844Or44KS5L2c5oiQ44GX44G+44GZ44CCXCIsXG4gICAgYWRkVG9Ub29sYm94OiBcIuODhOODvOODq+ODnOODg+OCr+OCueOBq+i/veWKoOOBmeOCi1wiLFxuICAgIGNvbnZlcnRUbzogXCLjgavlpInmj5vjgZnjgotcIixcbiAgICBjb3B5OiBcIuOCs+ODlOODvFwiLFxuICAgIGRlbGV0ZVBhbmVsOiBcIuODkeODjeODq+OCkuWJiumZpOOBmeOCi1wiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcIuizquWVj+OCkuWJiumZpOOBmeOCi1wiLFxuICAgIGRyYWc6IFwi6KaB57Sg44KS44OJ44Op44OD44Kw44GZ44KLXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIuODhOODvOODq+ODnOODg+OCr+OCueOBi+OCieOBk+OBk+OBq+izquWVj+OCkuODieODreODg+ODl+OBl+OBpuOBj+OBoOOBleOBhOOAglwiLFxuICAgIGR1cGxpY2F0ZTogXCLopIfoo71cIixcbiAgICBlZGl0OiBcIue3qOmbhlwiLFxuICAgIGV4dGVybmFsSGVscExpbms6IFwi44Ki44Oz44Kx44O844OI44Gu5L2c5oiQ5pa55rOV44KS6KaL44Gm5a2m44G2XCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDogXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSDJydTlva0ljb29OWmZwSWJ5cTRxUT92aWV3X2FzPXN1YnNjcmliZXJcIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCLjgqLjg7PjgrHjg7zjg4jjgpLlrozkuoZcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcIuWApOOCkuOCs+ODlOODvFwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcIuaVsOW8j+OCkuWun+ihjFwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCLlgKTjgpLoqK3lrppcIixcbiAgICBza2lwdHJpZ2dlcjogXCLos6rllY/jgbjjgrnjgq3jg4Pjg5dcIixcbiAgICB2aXNpYmxldHJpZ2dlcjogXCLlj6/oppbmgKfjgpLlpInmm7QgKOmdnuaOqOWlqClcIlxuICB9LFxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwi44Gd44KM44KS44OG44K544OI44GZ44KL44Gf44KB44Gu44Oa44O844K444KS6YG45oqeOlwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCLkuI3lj6/oppbjgqjjg6zjg6Hjg7Pjg4jjgpLooajnpLpcIlxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwi562U44GI44Gu5pWwXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwi44Oh44O844OrXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCLooajnj75cIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcIuaVsOWtl+OBrlwiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcIuato+imj+ihqOePvlwiLFxuICAgIHRleHR2YWxpZGF0b3I6IFwi44OG44Kt44K544OIXCJcbiAgfVxufTtcblxuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJqYVwiXSA9IGphU3RyaW5ncztcbiIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiwgZGVmYXVsdFN0cmluZ3MgfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbmV4cG9ydCB2YXIga29yZWFuU3RyaW5ncyA9IHtcbiAgLy9zdXJ2ZXkgdGVtcGxhdGVzXG4gIHN1cnZleToge1xuICAgIGVkaXQ6IFwi7Y647KeRXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIuyZvOyqvSDrj4Tqtazsg4HsnpDsl5DshJwg7KeI66y47J2EIOyXrOq4sOyXkCDrhpPsnLzsi63si5zsmKQuXCIsXG4gICAgY29weTogXCLrs7XsgqxcIixcbiAgICBhZGRUb1Rvb2xib3g6IFwi64+E6rWs7IOB7J6Q7JeQIOy2lOqwgFwiLFxuICAgIGRlbGV0ZVBhbmVsOiBcIu2MqOuEkCDsgq3soJxcIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCLsp4jrrLgg7IKt7KCcXCIsXG4gICAgY29udmVydFRvOiBcIuuLpOydjOycvOuhnCDrs4Dqsr1cIixcbiAgICBkcmFnOiBcIu2VreuqqSDrgYzslrTsmKTquLBcIlxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIuq4sOuzuOqwklwiLFxuICAgIGNoZWNrYm94OiBcIuyytO2BrOuwleyKpFwiLFxuICAgIGNvbW1lbnQ6IFwi7ISk66qFXCIsXG4gICAgZHJvcGRvd246IFwi65Oc66Gt64uk7Jq0XCIsXG4gICAgZmlsZTogXCLtjIzsnbxcIixcbiAgICBodG1sOiBcIkhUTUxcIixcbiAgICBtYXRyaXg6IFwi7ZaJ66CsICjri6jsnbwg7ISg7YOdKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIu2WieugrCAo67O17IiYIOyEoO2DnSlcIixcbiAgICBtYXRyaXhkeW5hbWljOiBcIu2WieugrCAo64+Z7KCBIO2WiSlcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwi7YWN7Iqk7Yq4IOyDgeyekCDqt7jro7lcIixcbiAgICBwYW5lbDogXCLtjKjrhJBcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwi7Yyo64SQICjrj5nsoIEg7Yyo64SQKVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwi652865SU7JikIOq3uOujuVwiLFxuICAgIHJhdGluZzogXCLrk7HquIlcIixcbiAgICB0ZXh0OiBcIu2FjeyKpO2KuCDsg4HsnpBcIixcbiAgICBib29sZWFuOiBcIuu2iOumsChib29sZWFuKVwiLFxuICAgIGV4cHJlc3Npb246IFwi7ZGc7ZiE7IudXCJcbiAgfSxcbiAgLy9TdHJpbmdzIGluIEVkaXRvclxuICBlZDoge1xuICAgIHN1cnZleTogXCLshKTrrLjsp4BcIixcbiAgICBzZXR0aW5nczogXCLshKTsoJVcIixcbiAgICBlZGl0U3VydmV5OiBcIuyEpOusuOyngCDtjrjsp5FcIixcbiAgICBhZGROZXdQYWdlOiBcIuyDiCDtjpjsnbTsp4Ag7LaU6rCAXCIsXG4gICAgbW92ZVJpZ2h0OiBcIuyYpOuluOyqveycvOuhnCDsiqTtgazroaRcIixcbiAgICBtb3ZlTGVmdDogXCLsmbzsqr3snLzroZwg7Iqk7YGs66GkXCIsXG4gICAgZGVsZXRlUGFnZTogXCLtjpjsnbTsp4Ag7IKt7KCcXCIsXG4gICAgZWRpdFBhZ2U6IFwi7Y6Y7J207KeAIO2OuOynkVwiLFxuICAgIGVkaXQ6IFwi7Y647KeRXCIsXG4gICAgbmV3UGFnZU5hbWU6IFwi7Y6Y7J207KeAXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcIuyniOusuFwiLFxuICAgIG5ld1BhbmVsTmFtZTogXCLtjKjrhJBcIixcbiAgICB0ZXN0U3VydmV5OiBcIu2FjOyKpO2KuCDshKTrrLjsp4BcIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwi7YWM7Iqk7Yq4IOyEpOusuOyngCDri6Tsi5ztlZjquLBcIixcbiAgICB0ZXN0U3VydmV5V2lkdGg6IFwi7ISk66y47KeAIOuEiOu5hDogXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwi64K07J6lIOyEpOusuOyngFwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwi7ISk66y47KeAIOyggOyepVwiLFxuICAgIGRlc2lnbmVyOiBcIuyEpOusuOyngCDrlJTsnpDsnbhcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04g7Y647KeR6riwXCIsXG4gICAgdW5kbzogXCLsi6Ttlokg7Leo7IaMXCIsXG4gICAgcmVkbzogXCLrs7Xsm5BcIixcbiAgICBvcHRpb25zOiBcIuyYteyFmFwiLFxuICAgIGdlbmVyYXRlVmFsaWRKU09OOiBcIkpTT04g642w7J207YSwIOyDneyEsVwiLFxuICAgIGdlbmVyYXRlUmVhZGFibGVKU09OOiBcIuyDneyEsSBKU09OIOuNsOydtO2EsCDsnb3quLBcIixcbiAgICB0b29sYm94OiBcIuuPhOq1rOyDgeyekFwiLFxuICAgIHRvb2xib3hHZW5lcmFsQ2F0ZWdvcnk6IFwi7J2867CYXCIsXG4gICAgZGVsU2VsT2JqZWN0OiBcIuyEoO2Dne2VnCDqsJ3ssrQg7IKt7KCcXCIsXG4gICAgZWRpdFNlbE9iamVjdDogXCLshKDtg53tlZwg6rCd7LK0IO2OuOynkVwiLFxuICAgIGNvcnJlY3RKU09OOiBcIkpTT04g642w7J207YSw66W8IOyImOygle2VmOyLreyLnOyYpC5cIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcIuyEpOusuCDqsrDqs7w6IFwiLFxuICAgIG1vZGlmaWVkOiBcIuyImOygleuQqFwiLFxuICAgIHNhdmluZzogXCLsoIDsnqXspJFcIixcbiAgICBzYXZlZDogXCLsoIDsnqXrkKhcIlxuICB9LFxuICAvL1Byb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgcGVsOiB7XG4gICAgaXNSZXF1aXJlZDogXCLtlYTsiJjsnoXri4jquYw/XCJcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwi7KCB7JqpXCIsXG4gICAgb2s6IFwi7ZmV7J24XCIsXG4gICAgY2FuY2VsOiBcIuy3qOyGjFwiLFxuICAgIHJlc2V0OiBcIuyerOyEpOyglVwiLFxuICAgIGNsb3NlOiBcIuuLq+q4sFwiLFxuICAgIGRlbGV0ZTogXCLsgq3soJxcIixcbiAgICBhZGROZXc6IFwi7IOI66GcIOunjOuTpOq4sFwiLFxuICAgIGFkZEl0ZW06IFwi7ZWt66qp7J2EIOy2lOqwgO2VmOugpOuptCDtgbTrpr3tlZjsi63si5zsmKQuXCIsXG4gICAgcmVtb3ZlQWxsOiBcIuuqqOuRkCDsgq3soJxcIixcbiAgICBlZGl0OiBcIu2OuOynkVwiLFxuICAgIGl0ZW1WYWx1ZUVkaXQ6IFwi7KGw6rG0IOy2qeyhsSDsi5wg67O06riwXCIsXG4gICAgZWRpdENob2ljZXM6IFwi7ISg7YOd7IKs7ZWtIO2OuOynkVwiLFxuICAgIG1vdmU6IFwi7J2064+ZXCIsXG4gICAgZW1wdHk6IFwiPOu5hOyWtOyeiOydjD5cIixcbiAgICBub3RFbXB0eTogXCI87Y647KeRIOqwkj5cIixcbiAgICBmYXN0RW50cnk6IFwi67mg66W4IOyeheugpVwiLFxuICAgIGZvcm1FbnRyeTogXCLslpHsi50g7J6F66ClXCIsXG4gICAgdGVzdFNlcnZpY2U6IFwi7ISc67mE7IqkIO2FjOyKpO2KuFwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcIuyniOusuCDshKDtg50uLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwi6rCS7J2EIOyeheugpe2VmOqxsOuCmCDshKDtg53tlZjsi63si5zsmKQuXCIsXG4gICAgY29uZGl0aW9uQnV0dG9uQWRkOiBcIuy2lOqwgFwiLFxuICAgIGNvbmRpdGlvbkJ1dHRvblJlcGxhY2U6IFwi67CU6r646riwXCIsXG4gICAgY29uZGl0aW9uSGVscDpcbiAgICAgIFwi67aI66awIOyLneydhCDsnoXroKXtlZjsi63si5zsmKQuIOyniOusuCDtmLnsnYAg7Y6Y7J207KeA66W8IOqzhOyGjSDrs7wg7IiYIOyeiOqyjCDtlZjroKTrqbQg7LC46rCS7J2EIOuwmO2ZmO2VtOyVvCDtlanri4jri6QuIOyYiOulvCDrk6TrqbQ6IHvsp4jrrLgxfSA9ICfqsJIxJyBvciAoe+yniOusuDJ9ICoge+yniOusuDR9ICA+IDIwIGFuZCB77KeI66y4M30gPCA1KVwiLFxuICAgIGV4cHJlc3Npb25IZWxwOlxuICAgICAgXCLsi53snYQg7J6F66Cl7ZWY7Iut7Iuc7JikLiDri6TsnYzqs7wg6rCZ7J2AIOyniOusuCDqsJLsl5Ag7KCR6re87ZWY66Ck66m0IOykkeq0hO2YuOulvCDsnbTsmqntlZjsi63si5zsmKQ6ICd77KeI66y4MX0gKyB77KeI66y4Mn0nLCAnKHvqsIDqsql9KnvsiJjrn4l9KSAqICgxMDAgLSB77ZWg7J24fSknXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCJjdHJsK3NwYWNl66W8IOuIjOufrCDsmYTshLHrkJwg7IiY7Iud7JeQIOuMgO2VnCDtnoztirjrpbwg7Ja77Jy87Iut7Iuc7JikXCIsXG4gICAgYWNlRWRpdG9yUm93VGl0bGU6IFwi7ZiE7J6sIO2WiVwiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwi7ZiE7J6sIO2MqOuEkFwiLFxuICAgIHNob3dNb3JlOiBcIuyekOyEuO2VnCDrgrTsmqnsnYAg7ISk66qF7ISc66W8IO2ZleyduO2VmOyLreyLnOyYpC5cIixcbiAgICBjb25kaXRpb25TaG93TW9yZVVybDpcbiAgICAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Eb2N1bWVudGF0aW9uL0xpYnJhcnlQYXJhbWV0ZXI/aWQ9UXVlc3Rpb24mcGFyYW1ldGVyPXZpc2libGVJZlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIuycoO2aqCDsp4jrrLg6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIuy1nOyGjO2VnCDtlZjrgpjsnZgg7Je0IOuYkOuKlCDtlonsnbQg7J6I7Ja07JW8IO2VqeuLiOuLpC5cIixcblxuICAgIHByb3BlcnR5SXNFbXB0eTogXCLqsJLsnYQg7J6F66Cl7ZWY7Iut7Iuc7JikXCIsXG4gICAgdmFsdWU6IFwi6rCSXCIsXG4gICAgdGV4dDogXCLthY3siqTtirhcIixcbiAgICBjb2x1bW5FZGl0OiBcIuyXtCDtjrjsp5E6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIu2VreuqqSDtjrjsp5E6IHswfVwiLFxuXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHBhdGg6IFwi6rK966GcXCIsXG4gICAgdmFsdWVOYW1lOiBcIuqwkiDsnbTrpoRcIixcbiAgICB0aXRsZU5hbWU6IFwi7KCc66qpIOydtOumhFwiLFxuXG4gICAgc2hvd090aGVySXRlbTogXCLri6Trpbgg7ZWt66qp7J20IOyeiOyKteuLiOuLpFwiLFxuICAgIG90aGVyVGV4dDogXCLquLDtg4Ag7ZWt66qpIO2FjeyKpO2KuFwiLFxuICAgIG5hbWU6IFwi7J2066aEXCIsXG4gICAgdGl0bGU6IFwi7KCc66qpXCIsXG4gICAgY2VsbFR5cGU6IFwi7IWAIOycoO2YlVwiLFxuICAgIGNvbENvdW50OiBcIuyXtCDqsJzsiJhcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwi7ZWt66qpIOyInOyEnCDshKDtg51cIixcbiAgICB2aXNpYmxlOiBcIuuztOyeheuLiOq5jD8/XCIsXG4gICAgaXNSZXF1aXJlZDogXCLtlYTsiJjsnoXri4jquYw/XCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCLsg4gg7KSE66GcIOyLnOyeke2VmOqyoOyKteuLiOq5jD9cIixcbiAgICByb3dzOiBcIu2WiSDsiJhcIixcbiAgICBwbGFjZWhvbGRlcjogXCLsnoXroKUg7J6Q66asIO2RnOyLnOyekCBcIixcbiAgICBzaG93UHJldmlldzogXCLsnbTrr7jsp4Ag66+466as67O06riw6rCAIO2RnOyLnOuQqeuLiOq5jD9cIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwi7YyM7J28IOuCtOyaqeydhCBKU09OIOqysOqzvOyXkCDthY3siqTtirjroZwg7KCA7J6lXCIsXG4gICAgbWF4U2l6ZTogXCLstZzrjIAg7YyM7J28IO2BrOq4sChieXRlcylcIixcbiAgICBpbWFnZUhlaWdodDogXCLsnbTrr7jsp4Ag64aS7J20XCIsXG4gICAgaW1hZ2VXaWR0aDogXCLsnbTrr7jsp4Ag64SI67mEXCIsXG4gICAgcm93Q291bnQ6IFwi7ZaJIOyImFwiLFxuICAgIGNvbHVtbnNMb2NhdGlvbjogXCLsl7Qg7JyE7LmYXCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwi7ZaJIOuyhO2KvCDsnITsuZgg7LaU6rCAXCIsXG4gICAgYWRkUm93VGV4dDogXCLtlokg67KE7Yq8IO2FjeyKpO2KuCDstpTqsIBcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIu2WiSDrsoTtirwg7YWN7Iqk7Yq4IOygnOqxsFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCLstZzshowg7ISk66qFIOq4uOydtFwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCLstZzrjIAg7ISk66qFIOq4uOydtFwiLFxuICAgIGlucHV0VHlwZTogXCLsnoXroKUg7Jyg7ZiVXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwi7Ji17IWYIOy6oeyFmFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCLquLDrs7jqsJJcIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwi6riw67O4IOyFgCDthY3siqTtirhcIixcblxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcIuyEpOusuOyngCDshKTsoJUg7Y647KeRXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIu2OuOynkTogezB9XCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCLsoJzrqqkg7ZGc7IucL+yIqOq5gFwiLFxuICAgIGxvY2FsZTogXCLquLDrs7gg7Ja47Ja0XCIsXG4gICAgbW9kZTogXCLrqqjrk5wo7Y647KeRL+ydveq4sOyghOyaqSlcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCLrs7TsnbTsp4Ag7JWK64qUIOqwkiDsp4DsmrDquLBcIixcbiAgICBjb29raWVOYW1lOiBcIuy/oO2CpCDsnbTrpoQo66Gc7Lus7JeQ7IScIOyEpOusuCDsobDsgqzrpbwg65GQIOuyiCDsgqzsmqntlZjsp4Ag7JWK64+E66GdIOyEpOyglSlcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCLri6TsnYwg7Y6Y7J207KeA7JeQ7IScIOyEpOusuCDsobDsgqwg6rKw6rO8IOuztOuCtOq4sFwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcIuuLpOuluCDsgqzsmqnsnpDsnZgg6rCS7J2EIOuzhOuPhOydmCDtlYTrk5zsl5Ag7KCA7J6lXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi7Y6Y7J207KeAIOygnOuqqSDtkZzsi5xcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwi7Y6Y7J207KeAIOuyiO2YuCDtkZzsi5xcIixcbiAgICBwYWdlUHJldlRleHQ6IFwi7J207KCEIO2OmOydtOyngCDrsoTtirwg7YWN7Iqk7Yq4XCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIuuLpOydjCDtjpjsnbTsp4Ag67KE7Yq8IO2FjeyKpO2KuFwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLsmYTro4wg67KE7Yq8IO2FjeyKpO2KuFwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCLsi5zsnpEg67KE7Yq8IO2FjeyKpO2KuFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCLtg5Dsg4kg67KE7Yq8IO2RnOyLnCAo6riw67O4IO2DkOyDiSlcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCLsnbTsoIQg67KE7Yq8IO2RnOyLnCAo7IKs7Jqp7J6Q6rCAIOydtOyghCDtjpjsnbTsp4DroZwg64+M7JWE6rCIIOyImCDsnojsnYwpXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIuyEpOusuOyngOydmCDssqsg67KI7Ke4IO2OmOydtOyngOuKlCDsi5zsnpEg7Y6Y7J207KeA7J6F64uI64ukXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwi64GdIOu2gOu2hOyXkCDsmYTro4zrkJwg7Y6Y7J207KeAIO2RnOyLnCAo7JmE66OM65CcIEhUTUwpXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCLrqqjrk6Ag7KeI66y47JeQIOydkeuLtSDtm4Qg7J6Q64+Z7Jy866GcIOuLpOydjCDtjpjsnbTsp4DroZwg7J2064+ZXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIuynhO2WieuloCDrp4nrjIAg7ZGc7IucXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIuyniOusuCDsoJzrqqkg7JyE7LmYXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIuyniOusuOyXkCDtlYTsmpTtlZwg6riw7Zi4XCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIuyniOusuCDsi5zsnpEg7IOJ7J24ICgxLCAyIOuYkOuKlCAnQScsICdhJylcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcIuyniOusuCDrsojtmLgg7ZGc7IucXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOlxuICAgICAgXCLsp4jrrLgg7KCc66qpIO2FnO2UjOumv+yeheuLiOuLpC4g6riw67O46rCSOiAne25vfS4ge3JlcXVpcmV9IHt0aXRsZX0nXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIuyniOusuCDsnITsuZgg7Jik66WYXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIu2OmOydtOyngCDrs4Dqsr3si5wg7LKrIOuyiOynuCDsp4jrrLjsl5Ag7LSI7KCQXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwi7Y6Y7J207KeA7J2YIOyalOyGjCDsiJzshJxcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwi7ISk66y4IOyhsOyCrOulvCDrp4jsuaAg7IiY7J6I64qUIOy1nOuMgCDsi5zqsIRcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIuyEpOusuCDsobDsgqzsl5DshJwg7Y6Y7J207KeA66W8IOuniOy5oCDsiJjsnojripQg7LWc64yAIOyLnOqwhFwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIu2DgOydtOuouCDtjKjrhJAg7ZGc7IucXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIu2DgOydtOuouCDtjKjrhJAg66qo65OcIO2RnOyLnFwiLFxuICAgIHJlbmRlck1vZGU6IFwi66CM642U66eBIOuqqOuTnFwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwi7Yyo64SQIOy2lOqwgCDtl4jsmqlcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIu2MqOuEkCDsoJzqsbAg7ZeI7JqpXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIu2MqOuEkCDthY3siqTtirgg7LaU6rCAXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIu2MqOuEkCDthY3siqTtirgg7IKt7KCcXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIu2VnCDtjpjsnbTsp4Dsl5Ag66qo65OgIOyalOyGjCDtkZzsi5xcIixcblxuICAgIHRhYnM6IHtcbiAgICAgIGdlbmVyYWw6IFwi7J2867CYXCIsXG4gICAgICBmaWxlT3B0aW9uczogXCLsmLXshZhcIixcbiAgICAgIGh0bWw6IFwiSHRtbCDtjrjsp5HquLBcIixcbiAgICAgIGNvbHVtbnM6IFwi7Je0XCIsXG4gICAgICByb3dzOiBcIu2WiVwiLFxuICAgICAgY2hvaWNlczogXCLshKDtg51cIixcbiAgICAgIGl0ZW1zOiBcIu2VreuqqVwiLFxuICAgICAgdmlzaWJsZUlmOiBcIuyhsOqxtCDstqnsobHsi5wg67O06riwXCIsXG4gICAgICBlbmFibGVJZjogXCLsobDqsbQg7Lap7KGx7IucIO2XiOyaqVwiLFxuICAgICAgcmF0ZVZhbHVlczogXCLquLjsnbQg6rCSXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwi7Ju57JeQ7IScIOyEoO2DnVwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCLquLDrs7gg7ISg7YOdXCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCLthY3siqTtirgg7J6F66ClXCIsXG4gICAgICB2YWxpZGF0b3JzOiBcIuycoO2aqOyEsSDqsoDsgqzquLBcIixcbiAgICAgIG5hdmlnYXRpb246IFwi7YOQ7IOJXCIsXG4gICAgICBxdWVzdGlvbjogXCLsp4jrrLhcIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwi7JmE66OM65CcIEhUTUxcIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcIkhUTUwg66Gc65OcIOykkVwiLFxuICAgICAgdGltZXI6IFwi7YOA7J2066i4IC8g7YC07KaIXCIsXG4gICAgICB0cmlnZ2VyczogXCLtirjrpqzqsbBcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwi7YWc7ZSM66a/IOygnOuqqVwiXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwi7Y647KeRIOyGjeyEsSAnezB9J1wiLFxuICAgIGl0ZW1zOiBcIlsg7ZWt66qpOiB7MH0gXVwiLFxuXG4gICAgZW50ZXJOZXdWYWx1ZTogXCLqsJLsnYQg7J6F66Cl7ZWY7Iut7Iuc7JikLlwiLFxuICAgIG5vcXVlc3Rpb25zOiBcIuyEpOusuCDsobDsgqzsl5DripQg7Ja065akIOyniOusuOuPhCDsl4bsirXri4jri6QuXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCLtirjrpqzqsbDrpbwg66eM65Oc7Iut7Iuc7JikXCIsXG4gICAgdHJpZ2dlck9uOiBcIu2KuOumrOqxsCDsvJzquLBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCLtjpjsnbTsp4Ag7ZGc7IucOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCLsmpTshowg7ZGc7IucOlwiLFxuICAgIHRyaWdnZXJDb21wbGV0ZVRleHQ6IFwi7KGw6rG0IOy2qeyhsSDsi5wg7ISk66y4IOyhsOyCrOulvCDsnpHshLHtlZjsi63si5zsmKQuXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCLtirjrpqzqsbDqsIAg7ISk7KCV65CY7KeAIOyViuyVmOyKteuLiOuLpC5cIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwi64uk7J2MIOyhsOqxtCDstqnsobEg7IucIOyLpO2WiVwiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwi64uk7J2MIOqwkiDrs4Dqsr06IFwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCLri6TsnYzsnLzroZwg7IiY7KCVOiBcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCLrs4DsiJjrpbwg7ISk66y4IOqysOqzvOyXkCDrhKPsp4Ag66eI7Iut7Iuc7JikLlwiXG4gIH0sXG4gIC8vUHJvcGVydHkgdmFsdWVzXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCLssLhcIixcbiAgICBmYWxzZTogXCLqsbDsp5NcIixcbiAgICBpbmhlcml0OiBcIuyDgeyGjVwiLFxuICAgIHNob3c6IFwi67O06riwXCIsXG4gICAgaGlkZTogXCLsiKjquLDquLBcIixcbiAgICBkZWZhdWx0OiBcIuq4sOuzuOqwklwiLFxuICAgIGluaXRpYWw6IFwi7LSI6riw6rCSXCIsXG4gICAgcmFuZG9tOiBcIuustOyekeychFwiLFxuICAgIGNvbGxhcHNlZDogXCLstpXshoxcIixcbiAgICBleHBhbmRlZDogXCLtmZXsnqVcIixcbiAgICBub25lOiBcIuyXhuydjFwiLFxuICAgIGFzYzogXCLsmKTrpoTssKjsiJxcIixcbiAgICBkZXNjOiBcIuuCtOumvOywqOyInFwiLFxuICAgIGluZGV0ZXJtaW5hdGU6IFwi67aI7ZmV7KCVXCIsXG4gICAgZGVjaW1hbDogXCLsp4TsiJhcIixcbiAgICBjdXJyZW5jeTogXCLtmZTtj5BcIixcbiAgICBwZXJjZW50OiBcIu2NvOyEvO2KuFwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwi7Jqw7ISgIO2ZleyepVwiLFxuICAgIG9mZjogXCLqurzsp5BcIixcbiAgICBvblBhbmVsOiBcIu2MqOuEkOyXkOyEnFwiLFxuICAgIG9uU3VydmV5OiBcIuyEpOusuOyXkOyEnFwiLFxuICAgIGxpc3Q6IFwi66qp66GdXCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwi7IOB64uoIOynhO2WieuloFwiLFxuICAgIHByb2dyZXNzQm90dG9tOiBcIu2VmOuLqCDsp4TtlonrpaBcIixcbiAgICBwcm9ncmVzc1RvcEJvdHRvbTogXCLsg4HtlZjri6gg7KeE7ZaJ66WgXCIsXG4gICAgaG9yaXpvbnRhbDogXCLqsIDroZxcIixcbiAgICB2ZXJ0aWNhbDogXCLshLjroZxcIixcbiAgICB0b3A6IFwi7JyEXCIsXG4gICAgYm90dG9tOiBcIuyVhOuemFwiLFxuICAgIHRvcEJvdHRvbTogXCLsnITslYTrnphcIixcbiAgICBsZWZ0OiBcIuyZvOyqvVwiLFxuICAgIGNvbG9yOiBcIuyDieyDgVwiLFxuICAgIGRhdGU6IFwi64Kg7KecXCIsXG4gICAgZGF0ZXRpbWU6IFwi64Kg7KecL+yLnOqwhFwiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCLtmITsp4Ag64Kg7KecL+yLnOqwhFwiLFxuICAgIGVtYWlsOiBcIuydtOuplOydvFwiLFxuICAgIG1vbnRoOiBcIuyblFwiLFxuICAgIG51bWJlcjogXCLsiKvsnpBcIixcbiAgICBwYXNzd29yZDogXCLtjKjsiqTsm4zrk5xcIixcbiAgICByYW5nZTogXCLrspTsnIRcIixcbiAgICB0ZWw6IFwidGVsXCIsXG4gICAgdGV4dDogXCLthY3siqTtirhcIixcbiAgICB0aW1lOiBcIuyLnOqwhFwiLFxuICAgIHVybDogXCJVUkxcIixcbiAgICB3ZWVrOiBcIuyjvFwiLFxuICAgIGhpZGRlbjogXCLsiKjquYBcIixcbiAgICBvbjogXCLsvJzquLBcIixcbiAgICBvblBhZ2U6IFwi7Y6Y7J207KeAIOy8nOq4sFwiLFxuICAgIGVkaXQ6IFwi7Y647KeRXCIsXG4gICAgZGlzcGxheTogXCLrlJTsiqTtlIzroIjsnbRcIixcbiAgICBvbkNvbXBsZXRlOiBcIuyZhOujjFwiLFxuICAgIG9uSGlkZGVuOiBcIuyIqOq5gFwiLFxuICAgIGFsbDogXCLrqqjrkZBcIixcbiAgICBwYWdlOiBcIu2OmOydtOyngFwiLFxuICAgIHN1cnZleTogXCLshKTrrLjsp4BcIixcbiAgICBvbk5leHRQYWdlOiBcIuuLpOydjCDtjpjsnbTsp4DroZxcIixcbiAgICBvblZhbHVlQ2hhbmdlZDogXCLqsJIg67OA6rK9XCJcbiAgfSxcbiAgLy9PcGVyYXRvcnNcbiAgb3A6IHtcbiAgICBlbXB0eTogXCLruYTslrTsnojsirXri4jri6RcIixcbiAgICBub3RlbXB0eTogXCLruYTslrTsnojsp4Ag7JWK7Iq164uI64ukXCIsXG4gICAgZXF1YWw6IFwi6rCZ7Iq164uI64ukXCIsXG4gICAgbm90ZXF1YWw6IFwi6rCZ7KeAIOyViuyKteuLiOuLpFwiLFxuICAgIGNvbnRhaW5zOiBcIu2PrO2VqO2VqeuLiOuLpFwiLFxuICAgIG5vdGNvbnRhaW5zOiBcIu2PrO2VqO2VmOyngCDslYrsirXri4jri6RcIixcbiAgICBncmVhdGVyOiBcIu2BsFwiLFxuICAgIGxlc3M6IFwi7J6R7J2AXCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwi7YGs6rGw64KYIOqwmeydjFwiLFxuICAgIGxlc3NvcmVxdWFsOiBcIuyekeqxsOuCmCDqsJnsnYxcIlxuICB9LFxuICAvL0VtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiQW5ndWxhciDrsoTsoIQg7IKs7JqpXCIsXG4gICAganF1ZXJ5OiBcImpRdWVyeSDrsoTsoIQg7IKs7JqpXCIsXG4gICAga25vY2tvdXQ6IFwiS25vY2tvdXQg67KE7KCEIOyCrOyaqVwiLFxuICAgIHJlYWN0OiBcIlJlYWN0IOuyhOyghCDsgqzsmqlcIixcbiAgICB2dWU6IFwiVnVlIOuyhOyghCDsgqzsmqlcIixcbiAgICBib290c3RyYXA6IFwi67aA7Yq4IOyKpO2KuOueqSDtlITroIjsnoRcIixcbiAgICBzdGFuZGFyZDogXCLrtoDtirgg7Iqk7Yq4656pIOyXhuydjFwiLFxuICAgIHNob3dPblBhZ2U6IFwi7Y6Y7J207KeA7JeQ7IScIOyEpOusuOyhsOyCrCDrs7TquLBcIixcbiAgICBzaG93SW5XaW5kb3c6IFwi7JyI64+E7JqwIOywveyXkOyEnCDshKTrrLjsobDsgqwg67O06riwXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwi7ISc67KE7JeQ7IScIOyEpOusuOyhsOyCrCBKU09OIOyLpO2WiVwiLFxuICAgIHRpdGxlU2NyaXB0OiBcIuyKpO2BrOumve2KuCDrsI8g7Iqk7YOA7J28XCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwi7J6Q67CU7Iqk7YGs66a97Yq4XCJcbiAgfSxcbiAgLy9UZXN0IFN1cnZleVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwi7YWM7Iqk7Yq4IO2VoCDtjpjsnbTsp4Drpbwg7ISg7YOd7ZWY7Iut7Iuc7JikOlwiXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCLri7Ug6rCc7IiYXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwi7J2066mU7J28XCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCLtkZztmITsi51cIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcIuyIq+yekFwiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcIuygleq3nOyLnVwiLFxuICAgIHRleHR2YWxpZGF0b3I6IFwi7YWN7Iqk7Yq4XCJcbiAgfSxcbiAgdHJpZ2dlcnM6IHtcbiAgICBjb21wbGV0ZXRyaWdnZXI6IFwi7ISk66y4IOyZhOujjFwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCLqsJIg7ISk7KCVXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwi7ISg66qF64+EIOuzgOqyvVwiXG4gIH0sXG4gIC8vUHJvcGVydGllc1xuICBwOiB7XG4gICAgbmFtZTogXCLsnbTrpoRcIixcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCLsoJzrqqlcIixcbiAgICAgIHRpdGxlOiBcIifsnbTrpoQn6rO8IOqwmeydgCDqsr3smrAg67mE7JuMIOuRoeuLiOuLpC5cIlxuICAgIH0sXG5cbiAgICBuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHk6IFwi7YOQ7IOJIOuyhO2KvCDshKDrqoXrj4RcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCLsp4jrrLgg7Iic7IScXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIuy1nOuMgCDsmYTro4wg7Iuc6rCEXCIsXG5cbiAgICB2aXNpYmxlOiBcIuuztOq4sFwiLFxuICAgIHZpc2libGVJZjogXCLsobDqsbQg7Lap7KGx7IucIOuztOq4sFwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCLsp4jrrLgg7KCc66qpIOychOy5mFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIuyEpOuqhVwiLFxuICAgIHN0YXRlOiBcInN0YXRlXCIsXG4gICAgaXNSZXF1aXJlZDogXCLtlYTsiJhcIixcbiAgICBpbmRlbnQ6IFwi65Ok7Jes7JOw6riwXCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwi7ZWE7IiYIOyYpOulmCDthY3siqTtirhcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIuyDiCDspITroZwg7Iuc7J6RXCIsXG4gICAgaW5uZXJJbmRlbnQ6IFwi7JWI7Jy866GcIOuTpOyXrOyTsOq4sFwiLFxuICAgIHBhZ2U6IFwi7Y6Y7J207KeAXCIsXG5cbiAgICB3aWR0aDogXCLrhIjruYRcIixcblxuICAgIGNvbW1lbnRUZXh0OiBcIuuplOuqqCDthY3siqTtirhcIixcbiAgICB2YWx1ZU5hbWU6IFwi7J2066aE6rCSXCIsXG4gICAgZW5hYmxlSWY6IFwi7KGw6rG0IOy2qeyhseyLnCDtl4jqsIBcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwi6riw67O46rCSXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCLri7XslYgg7IiY7KCVXCIsXG4gICAgcmVhZE9ubHk6IFwi7J296riwIOyghOyaqVwiLFxuICAgIHZhbGlkYXRvcnM6IFwi7Jyg7Zqo7ISxIOqygOyCrOq4sFwiLFxuICAgIHRpdGxlTG9jYXRpb246IFwi7KCc66qpIOychOy5mFwiLFxuXG4gICAgaGFzQ29tbWVudDogXCLri7Xrs4BcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIuuLpOuluCDri7Xrs4Ag7ZeI7JqpXCIsXG4gICAgY2hvaWNlczogXCLshKDtg51cIixcbiAgICBjaG9pY2VzT3JkZXI6IFwi6riw7YOAIOyEoO2DnVwiLFxuICAgIGNob2ljZXNCeVVybDogXCJVUkzsnYQg7Ya17ZWcIOyEoO2DnVwiLFxuICAgIG90aGVyVGV4dDogXCLquLDtg4Ag7YWN7Iqk7Yq4XCIsXG4gICAgb3RoZXJFcnJvclRleHQ6IFwi6riw7YOAIOyYpOulmCDthY3siqTtirhcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCLquLDtg4Ag64u167OAIOyggOyepVwiLFxuXG4gICAgbGFiZWw6IFwi652867KoXCIsXG4gICAgc2hvd1RpdGxlOiBcIuygnOuqqSDtkZzsi5xcIixcbiAgICB2YWx1ZVRydWU6IFwi7LC46rCSXCIsXG4gICAgdmFsdWVGYWxzZTogXCLqsbDsp5PqsJJcIixcblxuICAgIGNvbHM6IFwi7Je0XCIsXG4gICAgcm93czogXCLtlolcIixcbiAgICBwbGFjZWhvbGRlcjogXCLsnpDrpqwg7ZGc7Iuc7J6QXCIsXG5cbiAgICBvcHRpb25zQ2FwdGlvbjogXCLsmLXshZgg7Lqh7IWYXCIsXG5cbiAgICBleHByZXNzaW9uOiBcIu2RnO2YhOyLnVwiLFxuICAgIGZvcm1hdDogXCLtj6zrp7dcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwi65SU7Iqk7ZSM66CI7J20IOyKpO2DgOydvFwiLFxuICAgIGN1cnJlbmN5OiBcIu2ZlO2PkFwiLFxuICAgIHVzZUdyb3VwaW5nOiBcIuq3uOujuSDsgqzsmqlcIixcblxuICAgIHNob3dQcmV2aWV3OiBcIuuvuOumrOuztOq4sCDrs7TquLBcIixcbiAgICBhbGxvd011bHRpcGxlOiBcIuuLpOyImCDtl4jsmqlcIixcbiAgICBpbWFnZUhlaWdodDogXCLsnbTrr7jsp4Ag64aS7J20XCIsXG4gICAgaW1hZ2VXaWR0aDogXCLsnbTrr7jsp4Ag64SI67mEXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIu2FjeyKpO2KuOuhnCDrjbDsnbTthLAg7KCA7J6lXCIsXG4gICAgbWF4U2l6ZTogXCLstZzrjIAg7YGs6riwXCIsXG5cbiAgICBodG1sOiBcIkhUTUxcIixcblxuICAgIGNvbHVtbnM6IFwi7Je0XCIsXG4gICAgY2VsbHM6IFwi7IWAXCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCLrqqjrkZAg7ZWE7IiYIO2WieyeheuLiOq5jFwiLFxuXG4gICAgaG9yaXpvbnRhbFNjcm9sbDogXCLqsIDroZwg7Iqk7YGs66Gk67CUXCIsXG4gICAgY2VsbFR5cGU6IFwi7IWAIOycoO2YlVwiLFxuICAgIGNvbHVtbnNMb2NhdGlvbjogXCLsl7Qg7JyE7LmYXCIsXG4gICAgY29sdW1uQ29sQ291bnQ6IFwi7Je0IOqwnOyImFwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcIuyXtCDstZzshowg64SI67mEXCIsXG5cbiAgICByb3dDb3VudDogXCLtlokg7IiYXCIsXG4gICAgbWluUm93Q291bnQ6IFwi7LWc7IaMIO2WiSDqsJzsiJhcIixcbiAgICBtYXhSb3dDb3VudDogXCLstZzrjIAg7ZaJIOqwnOyImFwiLFxuICAgIGtleU5hbWU6IFwia2V5TmFtZVwiLFxuICAgIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwi7KO87JqUIOuzteygnCDsl5Drn6xcIixcbiAgICBjb25maXJtRGVsZXRlOiBcIuyCreygnCDtmZXsnbhcIixcbiAgICBjb25maXJtRGVsZXRlVGV4dDogXCLthY3siqTtirgg7IKt7KCcIO2ZleyduFwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcIu2WiSDsnITsuZgg7LaU6rCAXCIsXG4gICAgYWRkUm93VGV4dDogXCLtlokg7YWN7Iqk7Yq4IOy2lOqwgFwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwi7ZaJIO2FjeyKpO2KuCDsoJzqsbBcIixcblxuICAgIGl0ZW1zOiBcIu2VreuqqVwiLFxuICAgIGl0ZW1TaXplOiBcIu2VreuqqSDtgazquLBcIixcbiAgICBjb2xDb3VudDogXCLsl7Qg6rCc7IiYXCIsXG5cbiAgICB0ZW1wbGF0ZVRpdGxlOiBcIu2FnO2UjOumvyDsnbTrpoRcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcIu2FnO2UjOumvyDshKTrqoVcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIu2MqOuEkCDstpTqsIAg7ZeI7JqpXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLtjKjrhJAg7KCc6rGwIO2XiOyaqVwiLFxuICAgIHBhbmVsQ291bnQ6IFwi7Yyo64SQIOqwnOyImFwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwi7LWc7IaMIO2MqOuEkCDqsJzsiJhcIixcbiAgICBtYXhQYW5lbENvdW50OiBcIuy1nOuMgCDtjKjrhJAg6rCc7IiYXCIsXG4gICAgcGFuZWxzU3RhdGU6IFwicGFuZWxzU3RhdGVcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwi7Yyo64SQIO2FjeyKpO2KuCDstpTqsIBcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwi7Yyo64SQIO2FjeyKpO2KuCDsoJzqsbBcIixcbiAgICBwYW5lbFByZXZUZXh0OiBcIuydtOyghCDtjKjrhJAg7YWN7Iqk7Yq4XCIsXG4gICAgcGFuZWxOZXh0VGV4dDogXCLri6TsnYwg7Yyo64SQIO2FjeyKpO2KuFwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwi7KeI66y4IOqwnOyImCDrs7TquLBcIixcbiAgICBzaG93UmFuZ2VJblByb2dyZXNzOiBcIuynhO2WieykkeyduCDrspTsnIQg67O06riwXCIsXG4gICAgcmVuZGVyTW9kZTogXCJyZW5kZXJNb2RlXCIsXG4gICAgdGVtcGxhdGVUaXRsZUxvY2F0aW9uOiBcIu2FnO2UjOumvyDsnbTrpoQg7JyE7LmYXCIsXG5cbiAgICByYXRlVmFsdWVzOiBcIuq4uOydtOqwklwiLFxuICAgIHJhdGVNaW46IFwi7LWc7IaMIOq4uOydtFwiLFxuICAgIHJhdGVNYXg6IFwi7LWc64yAIOq4uOydtFwiLFxuICAgIHJhdGVTdGVwOiBcInJhdGVTdGVwXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIuy1nOyGjCDshKTrqoUg6ri47J20XCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcIuy1nOuMgCDshKTrqoUg6ri47J20XCIsXG5cbiAgICBpbnB1dFR5cGU6IFwi7J6F66ClIOycoO2YlVwiLFxuICAgIHNpemU6IFwi7YGs6riwXCIsXG5cbiAgICBsb2NhbGU6IFwi66Gc7LusXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIuyyqyDsp4jrrLgg7J6Q64+ZIOy0iOygkFwiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwi7JmE66OM65CcIEhUTUxcIixcbiAgICBjb21wbGV0ZWRCZWZvcmVIdG1sOiBcIuyZhOujjOuQnCDsnbTsoIQgSFRNTFwiLFxuICAgIGxvYWRpbmdIdG1sOiBcIkhUTUwg66Gc65OcXCIsXG4gICAgdHJpZ2dlcnM6IFwi7Yq466as6rGwXCIsXG4gICAgY29va2llTmFtZTogXCLsv6DtgqQg7J2066aEXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwi7ZiEIO2OmOydtOyngOuhnCDqsrDqs7wg7KCE7IahXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIu2DkOyDiSDrsoTtirwg67O06riwXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwi65Kk66Gc6rCA6riwIOuyhO2KvCDrs7TquLBcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCLtjpjsnbTsp4Ag7KCc66qpIOuztOq4sFwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIuyZhOujjCDtjpjsnbTsp4Ag67O06riwXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIu2OmOydtOyngCDsiJgg67O06riwXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIuyniOusuCDsmKTrpZgg7JyE7LmYXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIuynhO2WiSDsg4Htg5zrsJQg67O06riwXCIsXG4gICAgbW9kZTogXCLrqqjrk5xcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcIuuLpOydjCDtjpjsnbTsp4DroZwg7J6Q64+Z7Jy866GcIOuEmOyWtOqwgOq4sFwiLFxuICAgIGNoZWNrRXJyb3JzTW9kZTogXCLsmKTrpZgg66qo65OcIO2ZleyduFwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIuuztOydtOyngCDslYrripQg67OA7IiYIOygnOqxsFwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCLshKTrrLgg7YWM7Iqk7Yq4IOyLnOyekVwiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCLsnbTsoIQg7YWN7Iqk7Yq4IO2OmOydtOyngFwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCLri6TsnYwg7YWN7Iqk7Yq4IO2OmOydtOyngFwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLsmYTro4wg7YWN7Iqk7Yq4XCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIu2VhOyImCDthY3siqTtirhcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwi7KeI66y4IOyLnOyekSDsg4nsnbhcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwi7KeI66y4IOygnOuqqSDthZztlIzrpr9cIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi7LKrIO2OmOydtOyngOyXkOyEnCDsi5zsnpFcIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwi64uo7J28IO2OmOydtOyngFwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwi7Y6Y7J207KeAIOyiheujjCDstZzrjIAg7Iuc6rCEXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwi7YOA7J2066i4IO2MqOuEkCDrs7TquLBcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwi7YOA7J2066i4IO2MqOuEkCDrqqjrk5wg67O06riwXCIsXG5cbiAgICB0ZXh0OiBcIu2FjeyKpO2KuFwiLFxuICAgIG1pblZhbHVlOiBcIuy1nOyGjOqwklwiLFxuICAgIG1heFZhbHVlOiBcIuy1nOuMgOqwklwiLFxuICAgIG1pbkxlbmd0aDogXCLstZzshowg6ri47J20XCIsXG4gICAgbWF4TGVuZ3RoOiBcIuy1nOuMgCDquLjsnbRcIixcbiAgICBhbGxvd0RpZ2l0czogXCLsiKvsnpAg7ZeI7JqpXCIsXG4gICAgbWluQ291bnQ6IFwi7LWc7IaMIOqwnOyImFwiLFxuICAgIG1heENvdW50OiBcIuy1nOuMgCDqsJzsiJhcIixcbiAgICByZWdleDogXCLsoJXqt5wg7ZGc7ZiE7IudXCJcbiAgfVxufTtcbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wia29cIl0gPSBrb3JlYW5TdHJpbmdzO1xuIiwiaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG5leHBvcnQgdmFyIG1zU3RyaW5ncyA9IHtcbiAgc3VydmV5OiB7XG4gICAgZWRpdDogXCJFZGl0XCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCJUb250b24gZGFuIGJlbGFqYXIgY2FyYSBtZW5jaXB0YSB0aW5qYXVhblwiLFxuICAgIGV4dGVybmFsSGVscExpbmtVcmw6IFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0gycnU5b2tJY29vTlpmcElieXE0cVE/dmlld19hcz1zdWJzY3JpYmVyXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIlNpbGEgbGV0YWtrYW4gc29hbGFuIGRpIHNpbmkgZGFyaXBhZGEgS290YWsgQWxhdFwiLFxuICAgIGFkZExvZ2ljSXRlbTogXCJDaXB0YSBwZXJhdHVyYW4gdW50dWsgbWVueWVzdWFpa2FuIGFsaXJhbiB0aW5qYXVhbi5cIixcbiAgICBjb3B5OiBcIlNhbGluXCIsXG4gICAgZHVwbGljYXRlOiBcIlBlbmR1YVwiLFxuICAgIGFkZFRvVG9vbGJveDogXCJUYW1iYWhrYW4ga2VwYWRhIGtvdGFrIGFsYXRcIixcbiAgICBkZWxldGVQYW5lbDogXCJQYWRhbWthbiBQYW5lbFwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcIlBhZGFta2FuIFNvYWxhblwiLFxuICAgIGNvbnZlcnRUbzogXCJUdWthciBrZXBhZGFcIixcbiAgICBkcmFnOiBcIlNlcmV0IHVuc3VyXCJcbiAgfSxcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIkxhbGFpXCIsXG4gICAgY2hlY2tib3g6IFwiS290YWsgc2VtYWtcIixcbiAgICBjb21tZW50OiBcIktvbWVuXCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwiUGVtaWxpaCBpbWVqXCIsXG4gICAgcmFua2luZzogXCJLZWR1ZHVrYW5cIixcbiAgICBpbWFnZTogXCJJbWVqXCIsXG4gICAgZHJvcGRvd246IFwiSnVudGFpIGJhd2FoXCIsXG4gICAgZmlsZTogXCJGYWlsXCIsXG4gICAgaHRtbDogXCJIVE1MXCIsXG4gICAgbWF0cml4OiBcIk1hdHJpa3MgKHBpbGloYW4gdHVuZ2dhbClcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCJNYXRyaWtzIChwaWxpaGFuIGJlcmJpbGFuZylcIixcbiAgICBtYXRyaXhkeW5hbWljOiBcIk1hdHJpa3MgKGJhcmlzIGRpbmFtaWspXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcIlRla3MgQmVyYmlsYW5nXCIsXG4gICAgcGFuZWw6IFwiUGFuZWxcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwiUGFuZWwgKHBhbmVsIGRpbmFtaWspXCIsXG4gICAgcmFkaW9ncm91cDogXCJLdW1wdWxhbiByYWRpb1wiLFxuICAgIHJhdGluZzogXCJQZW5hcmFmYW5cIixcbiAgICB0ZXh0OiBcIklucHV0IFR1bmdnYWxcIixcbiAgICBib29sZWFuOiBcIkJvb2xlYW5cIixcbiAgICBleHByZXNzaW9uOiBcIkVrc3ByZXNpIChiYWNhIHNhaGFqYSlcIixcbiAgICBzaWduYXR1cmVwYWQ6IFwiUGFkIHRhbmRhdGFuZ2FuXCIsXG4gICAgZmxvd3BhbmVsOiBcIlBhbmVsIEFsaXJhblwiXG4gIH0sXG4gIGVkOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCJMYWxhaSAoezB9KVwiLFxuICAgIHN1cnZleTogXCJUaW5qYXVhblwiLFxuICAgIHNldHRpbmdzOiBcIlRldGFwYW4gVGluamF1YW5cIixcbiAgICBzZXR0aW5nc1Rvb2x0aXA6IFwiQnVrYSB0ZXRhcGFuIHRpbmphdWFuXCIsXG4gICAgc2hvd1BhbmVsOiBcIlR1bmp1a2thbiBQYW5lbFwiLFxuICAgIGhpZGVQYW5lbDogXCJTZW1idW55aWthbiBQYW5lbFwiLFxuICAgIGFkZE5ld1BhZ2U6IFwiVGFtYmFoa2FuIEhhbGFtYW4gQmFoYXJ1XCIsXG4gICAgbW92ZVJpZ2h0OiBcIlRhdGFsIGtlIEthbmFuXCIsXG4gICAgbW92ZUxlZnQ6IFwiVGF0YWwga2UgS2lyaVwiLFxuICAgIGRlbGV0ZVBhZ2U6IFwiUGFkYW1rYW4gSGFsYW1hblwiLFxuICAgIGVkaXRQYWdlOiBcIkVkaXQgSGFsYW1hblwiLFxuICAgIGVkaXQ6IFwiRWRpdFwiLFxuICAgIG5ld1BhZ2VOYW1lOiBcImhhbGFtYW5cIixcbiAgICBuZXdRdWVzdGlvbk5hbWU6IFwic29hbGFuXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBhbmVsXCIsXG4gICAgbmV3VGV4dEl0ZW1OYW1lOiBcInRla3NcIixcbiAgICB0ZXN0U3VydmV5OiBcIlVqaSBUaW5qYXVhblwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJVamkgVGluamF1YW4gU2VtdWxhXCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIkxlYmFyIHRpbmphdWFuOiBcIixcbiAgICBuYXZpZ2F0ZVRvTXNnOiBcIkFuZGEgcGVybHUgbmF2aWdhc2kga2U6XCIsXG4gICAgbG9naWM6IFwiTG9naWsgVGluamF1YW5cIixcbiAgICBlbWJlZFN1cnZleTogXCJCZW5hbWthbiBUaW5qYXVhblwiLFxuICAgIHRyYW5zbGF0aW9uOiBcIlRlcmplbWFoYW5cIixcbiAgICBzYXZlU3VydmV5OiBcIlNpbXBhbiBUaW5qYXVhblwiLFxuICAgIHNhdmVTdXJ2ZXlUb29sdGlwOiBcIlNpbXBhbiBUaW5qYXVhblwiLFxuICAgIGRlc2lnbmVyOiBcIlBlcmVrYSBCZW50dWsgVGluamF1YW5cIixcbiAgICBqc29uRWRpdG9yOiBcIkVkaXRvciBKU09OXCIsXG4gICAgdW5kbzogXCJCdWF0IEFzYWxcIixcbiAgICByZWRvOiBcIkJ1YXQgU2VtdWxhXCIsXG4gICAgdW5kb1Rvb2x0aXA6IFwiQnVhdCBhc2FsIHBlcnViYWhhbiB0ZXJha2hpclwiLFxuICAgIHJlZG9Ub29sdGlwOiBcIkJ1YXQgc2VtdWxhIHBlcnViYWhhblwiLFxuICAgIGNvcHk6IFwiU2FsaW5cIixcbiAgICBjdXQ6IFwiUG90b25nXCIsXG4gICAgcGFzdGU6IFwiVGFtcGFsXCIsXG4gICAgY29weVRvb2x0aXA6IFwiU2FsaW4gcGlsaWhhbiBrZXBhZGEgcGFwYW4ga2xpcFwiLFxuICAgIGN1dFRvb2x0aXA6IFwiUG90b25nIHBpbGloYW4ga2VwYWRhIHBhcGFuIGtsaXBcIixcbiAgICBwYXN0ZVRvb2x0aXA6IFwiVGFtcGFsIGRhcmlwYWRhIHBhcGFuIGtsaXBcIixcbiAgICBvcHRpb25zOiBcIlBpbGloYW5cIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCJKYW5hIEpTT04geWFuZyBTYWhcIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJKYW5hIEpTT04geWFuZyBCb2xlaCBEaWJhY2FcIixcbiAgICB0b29sYm94OiBcIktvdGFrIEFsYXRcIixcbiAgICBcInByb3BlcnR5LWdyaWRcIjogXCJDaXJpXCIsXG4gICAgdG9vbGJveEdlbmVyYWxDYXRlZ29yeTogXCJVbXVtXCIsXG4gICAgY29ycmVjdEpTT046IFwiUGlsaWggSlNPTiB5YW5nIGJldHVsLlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwiS2VwdXR1c2FuIFRpbmphdWFuOiBcIixcbiAgICBzdXJ2ZXlSZXN1bHRzVGFibGU6IFwiU2ViYWdhaSBKYWR1YWxcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCJTZWJhZ2FpIEpTT05cIixcbiAgICByZXN1bHRzVGl0bGU6IFwiVGFqdWsgU29hbGFuXCIsXG4gICAgcmVzdWx0c05hbWU6IFwiTmFtYSBTb2FsYW5cIixcbiAgICByZXN1bHRzVmFsdWU6IFwiTmlsYWkgSmF3YXBhblwiLFxuICAgIHJlc3VsdHNEaXNwbGF5VmFsdWU6IFwiTmlsYWkgUGFwYXJhblwiLFxuICAgIG1vZGlmaWVkOiBcIkRpdWJhaCBzdWFpXCIsXG4gICAgc2F2aW5nOiBcIk1lbnlpbXBhblwiLFxuICAgIHNhdmVkOiBcIkRpc2ltcGFuXCIsXG4gICAgcHJvcGVydHlFZGl0b3JFcnJvcjogXCJSYWxhdDpcIixcbiAgICBzYXZlRXJyb3I6IFwiUmFsYXQhIEthbmR1bmdhbiBlZGl0b3IgdGlkYWsgZGlzaW1wYW4uXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCJQaWxpaGFuIGJhaGFzYSB1bnR1ayBkaXRlcmplbWFoXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsU3RyaW5nczogXCJUdW5qdWtrYW4gc2VtdWEgcmVudGV0YW5cIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxQYWdlczogXCJUdW5qdWtrYW4gc2VtdWEgaGFsYW1hblwiLFxuICAgIHRyYW5zbGF0aW9uTm9TdHJpbmdzOiBcIlRpYWRhIHJlbnRldGFuIHVudHVrIGRpdGVyamVtYWguIFNpbGEgdWJhaCBwZW5hcGlzLlwiLFxuICAgIHRyYW5zbGF0aW9uRXhwb3J0VG9TQ1ZCdXR0b246IFwiRWtzcG9ydCBrZXBhZGEgQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25JbXBvcnRGcm9tU0NWQnV0dG9uOiBcIkltcG9ydCBkYXJpcGFkYSBDU1ZcIixcbiAgICB0cmFuc2xhdGlvbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQ6IFwiR2FidW5nIHswfSBkZW5nYW4gdGVtcGF0YW4gbGFsYWlcIixcbiAgICBib2xkOiBcIlRlYmFsXCIsXG4gICAgaXRhbGljOiBcIkNvbmRvbmdcIixcbiAgICB1bmRlcmxpbmU6IFwiR2FyaXMgYmF3YWhcIixcbiAgICBmcEFkZFF1ZXN0aW9uOiBcIlRhbWJhaGthbiBzb2FsYW4uLi5cIixcbiAgICBzZWxlY3RQYWdlOiBcIlBpbGloIGhhbGFtYW4uLi5cIixcbiAgICBjaG9vc2VFbGVtZW50OiBcIlBpbGloIGVsZW1lbi4uLlwiLFxuICAgIGxnOiB7XG4gICAgICBhZGROZXdJdGVtOiBcIlwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5TmFtZTogXCJLZWJvbGVobGloYXRhbiBoYWxhbWFuXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5TmFtZTogXCJLZWJvbGVobGloYXRhbiBwYW5lbFwiLFxuICAgICAgcGFuZWxfZW5hYmxlTmFtZTogXCJEYXlha2FuL0x1bXB1aGthbiBwYW5lbFwiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eU5hbWU6IFwiS2Vib2xlaGxpaGF0YW4gc29hbGFuXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVOYW1lOiBcIkRheWFrYW4vTHVtcHVoa2FuIHNvYWxhblwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZU5hbWU6IFwiUGlsaWhhbiBzb2FsYW4gZGlwZXJsdWthblwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZU5hbWU6IFwiTGVuZ2thcGthbiB0aW5qYXVhblwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZU5hbWU6IFwiVGV0YXBrYW4gbmlsYWkgc29hbGFuXCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZU5hbWU6IFwiU2FsaW4gbmlsYWkgc29hbGFuXCIsXG4gICAgICB0cmlnZ2VyX3NraXBOYW1lOiBcIkxhbmdrYXUga2VwYWRhIHNvYWxhblwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uTmFtZTogXCJKYWxhbmthbiBla3NwcmVzaSB0ZXJzdWFpXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25OYW1lOiBcIlRla3MgJ0hhbGFtYW4gdGVyaW1hIGthc2loJyB0ZXJzdWFpXCIsXG4gICAgICBwYWdlX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjogXCJKYWRpa2FuIGhhbGFtYW4gYm9sZWggZGlsaWhhdCBhcGFiaWxhIGVrc3ByZXNpIGxvZ2lrIG1lbmdlbWJhbGlrYW4gbmlsYWkgYmVuYXIuIEppa2EgdGlkYWssIGJpYXJrYW4gdGVyc2VtYnVueWkuXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5RGVzY3JpcHRpb246IFwiSmFkaWthbiBwYW5lbCBib2xlaCBkaWxpaGF0IGFwYWJpbGEgZWtzcHJlc2kgbG9naWsgbWVuZ2VtYmFsaWthbiBuaWxhaSBiZW5hci4gSmlrYSB0aWRhaywgYmlhcmthbiB0ZXJzZW1idW55aS5cIixcbiAgICAgIHBhbmVsX2VuYWJsZURlc2NyaXB0aW9uOiBcIkphZGlrYW4gcGFuZWwgZGFuIHNlbXVhIGVsZW1lbiBkYWxhbW55YSBkaWRheWFrYW4gYXBhYmlsYSBla3NwcmVzaSBsb2dpayBtZW5nZW1iYWxpa2FuIG5pbGFpIGJlbmFyLiBKaWthIHRpZGFrLCBiaWFya2FuIGx1bXB1aC5cIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjogXCJKYWRpa2FuIHNvYWxhbiBib2xlaCBkaWxpaGF0IGFwYWJpbGEgZWtzcHJlc2kgbG9naWsgbWVuZ2VtYmFsaWthbiBuaWxhaSBiZW5hci4gSmlrYSB0aWRhaywgYmlhcmthbiB0ZXJzZW1idW55aS5cIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uOiBcIkphZGlrYW4gc29hbGFuIGRpZGF5YWthbiBhcGFiaWxhIGVrc3ByZXNpIGxvZ2lrIG1lbmdlbWJhbGlrYW4gbmlsYWkgYmVuYXIuIEppa2EgdGlkYWssIGJpYXJrYW4gbHVtcHVoLlwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZURlc2NyaXB0aW9uOiBcIlNvYWxhbiBkaXBlcmx1a2FuIGFwYWJpbGEgZWtzcHJlc2kgbG9naWsgbWVuZ2VtYmFsaWthbiBuaWxhaSBiZW5hci5cIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVEZXNjcmlwdGlvbjogXCJBcGFiaWxhIGVrc3ByZXNpIGxvZ2lrIG1lbmdlbWJhbGlrYW4gbmlsYWkgYmVuYXIsIG1ha2EgdGluamF1YW4gYWthbiBsZW5na2FwIGRhbiBwZW5nZ3VuYSBha2hpciBha2FuIG1lbGloYXQgJ0hhbGFtYW4gdGVyaW1hIGthc2loJy5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjogXCJBcGFiaWxhIG5pbGFpIHNvYWxhbiwgeWFuZyBkaWd1bmFrYW4gZGFsYW0gZWtzcHJlc2kgbG9naWssIGJlcnViYWggZGFuIGVrc3ByZXNpIGxvZ2lrIG1lbmdlbWJhbGlrYW4gbmlsYWkgYmVuYXIsIG1ha2EgbmlsYWkgZGl0ZXRhcGthbiBrZXBhZGEgc29hbGFuIHlhbmcgZGlwaWxpaC5cIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlRGVzY3JpcHRpb246IFwiQXBhYmlsYSBuaWxhaSBzb2FsYW4sIHlhbmcgZGlndW5ha2FuIGRhbGFtIGVrc3ByZXNpIGxvZ2lrLCBiZXJ1YmFoIGRhbiBla3NwcmVzaSBsb2dpayBtZW5nZW1iYWxpa2FuIG5pbGFpIGJlbmFyLCBtYWthIG5pbGFpIHNhbGFoIHNhdHUgc29hbGFuIHlhbmcgZGlwaWxpaCBha2FuIGRpc2FsaW4ga2VwYWRhIHNhdHUgbGFnaSBzb2FsYW4geWFuZyBkaXBpbGloLlwiLFxuICAgICAgdHJpZ2dlcl9za2lwRGVzY3JpcHRpb246IFwiQXBhYmlsYSBla3NwcmVzaSBsb2dpayBtZW5nZW1iYWxpa2FuIG5pbGFpIGJlbmFyLCBtYWthIHRpbmphdWFuIG1lbGFuZ2thdSBrZXBhZGEgLyBmb2t1cyBwYWRhIHNvYWxhbiB5YW5nIGRpcGlsaWguXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25EZXNjcmlwdGlvbjogXCJBcGFiaWxhIGVrc3ByZXNpIG1lbmdlbWJhbGlrYW4gbmlsYWkgYmVuYXIsIG1ha2EgZWtzcHJlc2kgdGVyc3VhaSBha2FuIGRpbGFrc2FuYWthbi4gQW5kYSBib2xlaCBtZW5ldGFwa2FuIGtlcHV0dXNhbiBla3NwcmVzaSBpbmkga2VwYWRhIHNvYWxhbiB5YW5nIGRpcGlsaWggc2VjYXJhIHBpbGloYW5cIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkRlc2NyaXB0aW9uOiBcIkFwYWJpbGEgZWtzcHJlc2kgbG9naWsgbWVuZ2VtYmFsaWthbiBuaWxhaSBiZW5hciwgbWFrYSB0ZWtzIGxhbGFpIHVudHVrICdIYWxhbWFuIHRlcmltYSBrYXNpaCcgYmVydWJhaCBrZXBhZGEgdGVrcyB5YW5nIGRpYmVyaWthbi5cIixcbiAgICAgIGl0ZW1FeHByZXNzaW9uVGV4dDogXCJBcGFiaWxhIGVrc3ByZXNpOiAnezB9JyBtZW5nZW1iYWxpa2FuIG5pbGFpIGJlbmFyOlwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5VGV4dDogXCJKYWRpa2FuIGhhbGFtYW4gezB9IGJvbGVoIGRpbGloYXRcIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlUZXh0OiBcIkphZGlrYW4gcGFuZWwgezB9IGJvbGVoIGRpbGloYXRcIixcbiAgICAgIHBhbmVsX2VuYWJsZVRleHQ6IFwiSmFkaWthbiBwYW5lbCB7MH0gZGlkYXlha2FuXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5VGV4dDogXCJKYWRpa2FuIHNvYWxhbiB7MH0gYm9sZWggZGlsaWhhdFwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlVGV4dDogXCJKYWRpa2FuIHNvYWxhbiB7MH0gZGlkYXlha2FuXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlVGV4dDogXCJKYWRpa2FuIHNvYWxhbiB7MH0gZGlwZXJsdWthblwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZVRleHQ6IFwiVGluamF1YW4gZGlsZW5na2Fwa2FuXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCJUZXRhcGthbiBrZXBhZGEgc29hbGFuOiB7MH0gbmlsYWkgezF9XCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZVRleHQ6IFwiU2FsaW4ga2VwYWRhIHNvYWxhbjogezB9IG5pbGFpIGRhcmlwYWRhIHNvYWxhbiB7MX1cIixcbiAgICAgIHRyaWdnZXJfc2tpcFRleHQ6IFwiVGluamF1YW4gbWVsYW5na2F1IGtlIHNvYWxhbiB7MH1cIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQxOiBcIkphbGFua2FuIGVrc3ByZXNpOiAnezB9J1wiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDI6IFwiIGRhbiB0ZXRhcGthbiBrZXB1dHVzYW5ueWEga2VwYWRhIHNvYWxhbjogezB9XCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25UZXh0OiBcIlR1bmp1a2thbiB0ZWtzIHRlcnN1YWkgdW50dWsgJ0hhbGFtYW4gdGVyaW1hIGthc2loJy5cIixcbiAgICAgIGNvbmRpdGlvbnM6IFwiU3lhcmF0XCIsXG4gICAgICBhY3Rpb25zOiBcIlRpbmRha2FuXCIsXG4gICAgICBleHByZXNzaW9uRWRpdG9yVGl0bGU6IFwiVGFrcmlma2FuIHN5YXJhdFwiLFxuICAgICAgYWN0aW9uc0VkaXRvclRpdGxlOiBcIlRha3JpZmthbiB0aW5kYWthblwiLFxuICAgICAgZGVsZXRlQWN0aW9uOiBcIlBhZGFta2FuIHRpbmRha2FuXCIsXG4gICAgICBhZGROZXdBY3Rpb246IFwiVGFtYmFoa2FuIHRpbmRha2FuIGJhaGFydVwiLFxuICAgICAgc2VsZWN0ZWRBY3Rpb25DYXB0aW9uOiBcIlBpbGloIHRpbmRha2FuIHVudHVrIGRpdGFtYmFoa2FuLi4uXCIsXG4gICAgICBleHByZXNzaW9uSW52YWxpZDogXCJFa3NwcmVzaSBsb2dpayBrb3NvbmcgYXRhdSB0aWRhayBzYWguIFNpbGEgYmV0dWxrYW5ueWEuXCIsXG4gICAgICBub0FjdGlvbkVycm9yOiBcIlNpbGEgdGFtYmFoa2FuIHNla3VyYW5nLWt1cmFuZ255YSBzYXR1IHRpbmRha2FuLlwiLFxuICAgICAgYWN0aW9uSW52YWxpZDogXCJTaWxhIGJhaWtpIG1hc2FsYWggZGFsYW0gdGluZGFrYW4gYW5kYS5cIixcbiAgICAgIGV4cHJlc3Npb25TZXR1cDogXCJcIixcbiAgICAgIGFjdGlvbnNTZXR1cDogXCJcIlxuICAgIH1cbiAgfSxcbiAgcGU6IHtcbiAgICBhcHBseTogXCJHdW5hXCIsXG4gICAgb2s6IFwiT0tcIixcbiAgICBzYXZlOiBcIlNpbXBhblwiLFxuICAgIHNhdmVUb29sdGlwOiBcIlNpbXBhblwiLFxuICAgIGNhbmNlbDogXCJCYXRhbFwiLFxuICAgIHJlc2V0OiBcIlRldGFwIFNlbXVsYVwiLFxuICAgIHJlZnJlc2g6IFwiU2VnYXIgc2VtdWxhXCIsXG4gICAgZGVsZXRlOiBcIlBhZGFtXCIsXG4gICAgYWRkOiBcIlRhbWJhaGthblwiLFxuICAgIGFkZE5ldzogXCJUYW1iYWggQmFoYXJ1XCIsXG4gICAgYWRkSXRlbTogXCJLbGlrIHVudHVrIG1lbmFtYmFoa2FuIGl0ZW0uLi5cIixcbiAgICBhZGRPdGhlcjogXCJMYWluLWxhaW5cIixcbiAgICBhZGRTZWxlY3RBbGw6IFwiUGlsaWggU2VtdWFcIixcbiAgICBhZGROb25lOiBcIlRpYWRhXCIsXG4gICAgcmVtb3ZlQWxsOiBcIkFsaWggS2VsdWFyIFNlbXVhXCIsXG4gICAgZWRpdDogXCJFZGl0XCIsXG4gICAgdmlldzogXCJMaWhhdFwiLFxuICAgIGJhY2s6IFwiS2VtYmFsaSB0YW5wYSBtZW55aW1wYW5cIixcbiAgICBiYWNrVG9vbHRpcDogXCJLZW1iYWxpIHRhbnBhIG1lbnlpbXBhblwiLFxuICAgIHNhdmVBbmRCYWNrOiBcIlNpbXBhbiBkYW4ga2VtYmFsaVwiLFxuICAgIHNhdmVBbmRCYWNrVG9vbHRpcDogXCJTaW1wYW4gZGFuIGtlbWJhbGlcIixcbiAgICBlZGl0Q2hvaWNlczogXCJFZGl0IFBpbGloYW5cIixcbiAgICBzaG93Q2hvaWNlczogXCJUdW5qdWtrYW4gUGlsaWhhblwiLFxuICAgIG1vdmU6IFwiQWxpaFwiLFxuICAgIGVtcHR5OiBcIjxlbXB0eT5cIixcbiAgICBmYXN0RW50cnk6IFwiRW50cmkgUGFudGFzXCIsXG4gICAgZm9ybUVudHJ5OiBcIkVudHJpIEJvcmFuZ1wiLFxuICAgIHRlc3RTZXJ2aWNlOiBcIlVqaSBwZXJraGlkbWF0YW5cIixcbiAgICBpdGVtU2VsZWN0b3JFbXB0eTogXCJTaWxhIHBpbGloIGVsZW1lblwiLFxuICAgIGNvbmRpdGlvbkFjdGlvbkVtcHR5OiBcIlNpbGEgcGlsaWggdGluZGFrYW5cIixcbiAgICBjb25kaXRpb25TZWxlY3RRdWVzdGlvbjogXCJQaWxpaCBzb2FsYW4uLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYWdlOiBcIlBpbGloIGhhbGFtYW4uLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYW5lbDogXCJQaWxpaCBwYW5lbC4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCJTaWxhIG1hc3Vra2FuL3BpbGloIG5pbGFpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6IFwiQW5kYSBib2xlaCBndW5ha2FuIGt1cnVuZ2FuIGtlcmludGluZyB1bnR1ayBtZW5nYWtzZXMgbmlsYWkgc29hbGFuOiB7c29hbGFuMX0gKyB7c29hbGFuMn0sICh7aGFyZ2F9KntrdWFudGl0aX0pICogKDEwMCAtIHtkaXNrYXVufSkuIEFuZGEgYm9sZWggbWVuZ2d1bmFrYW4gZnVuZ3NpIHNlcGVydGk6IGlpZigpLCB0b2RheSgpLCBhZ2UoKSwgbWluKCksIG1heCgpLCBjb3VudCgpLCBhdmcoKSBkYW4gbGFpbi1sYWluLlwiLFxuICAgIGFjZUVkaXRvckhlbHA6IFwiVGVrYW4gY3RybCtzcGFjZSB1bnR1ayBtZW5kYXBhdGthbiBwZXR1bmp1ayBsZW5na2FwYW4gZWtzcHJlc2lcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCJCYXJpcyBzZW1hc2FcIixcbiAgICBhY2VFZGl0b3JQYW5lbFRpdGxlOiBcIlBhbmVsIHNlbWFzYVwiLFxuICAgIHNob3dNb3JlOiBcIlVudHVrIGJ1dGlyYW4gbGFuanV0LCBzaWxhIHNlbWFrIGRva3VtZW50YXNpXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwiU29hbGFuIHRlcnNlZGlhOlwiLFxuICAgIGNlbGxzRW1wdHlSb3dzQ29sdW1uczogXCJUZXJkYXBhdCBzZWt1cmFuZy1rdXJhbmdueWEgc2F0dSBsYWp1ciBhdGF1IGJhcmlzXCIsXG4gICAgcHJvcGVydHlJc0VtcHR5OiBcIlNpbGEgbWFzdWtrYW4gbmlsYWlcIixcbiAgICBwcm9wZXJ0eUlzTm9VbmlxdWU6IFwiU2lsYSBtYXN1a2thbiBuaWxhaSB1bmlrXCIsXG4gICAgcHJvcGVydHlOYW1lSXNOb3RVbmlxdWU6IFwiU2lsYSBtYXN1a2thbiBuYW1hIHVuaWtcIixcbiAgICBsaXN0SXNFbXB0eTogXCJUYW1iYWhrYW4gaXRlbSBiYWhhcnVcIixcbiAgICBleHByZXNzaW9uSXNFbXB0eTogXCJFa3NwcmVzaSBrb3NvbmdcIixcbiAgICB2YWx1ZTogXCJOaWxhaVwiLFxuICAgIHRleHQ6IFwiVGVrc1wiLFxuICAgIHJvd2lkOiBcIklEIEJhcmlzXCIsXG4gICAgaW1hZ2VMaW5rOiBcIlBhdXRhbiBJbWVqXCIsXG4gICAgY29sdW1uRWRpdDogXCJFZGl0IGxhanVyOiB7MH1cIixcbiAgICBpdGVtRWRpdDogXCJFZGl0IGl0ZW06IHswfVwiLFxuICAgIGl0ZW1WaWV3OiBcIkxpaGF0IGl0ZW06IHswfVwiLFxuICAgIHVybDogXCJVUkxcIixcbiAgICBwYXRoOiBcIkxhbHVhblwiLFxuICAgIHZhbHVlTmFtZTogXCJOYW1hIG5pbGFpXCIsXG4gICAgdGl0bGVOYW1lOiBcIk5hbWEgdGFqdWtcIixcbiAgICBhbGxvd0VtcHR5UmVzcG9uc2U6IFwiQmVuYXJrYW4gcmVzcG9ucyBrb3NvbmdcIixcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiBcIlRhanVrIGlucHV0IGRpIHNpbmlcIixcbiAgICBzdXJ2ZXlUaXRsZVBsYWNlaG9sZGVyOiBcIlRhanVrIHRpbmphdWFuIGlucHV0IGRpIHNpbmlcIixcbiAgICBwYWdlVGl0bGVQbGFjZWhvbGRlcjogXCJUYWp1ayBoYWxhbWFuIGlucHV0IGRpIHNpbmlcIixcbiAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIk1hc3Vra2FuIHBlcmloYWxhblwiLFxuICAgIHN1cnZleURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiTWFzdWtrYW4gcGVyaWhhbGFuIHRpbmphdWFuXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiTWFzdWtrYW4gcGVyaWhhbGFuIGhhbGFtYW5cIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIkFkYSBpdGVtIGxhaW5cIixcbiAgICBvdGhlclRleHQ6IFwiVGVrcyBpdGVtIGxhaW5cIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiVGlhZGEgaXRlbVwiLFxuICAgIG5vbmVUZXh0OiBcIlRpYWRhIHRla3MgaXRlbVwiLFxuICAgIGhhc1NlbGVjdEFsbDogXCJUZWxhaCBwaWxpaCBzZW11YSBpdGVtXCIsXG4gICAgc2VsZWN0QWxsVGV4dDogXCJQaWxpaCBzZW11YSB0ZWtzIGl0ZW1cIixcbiAgICBjaG9pY2VzTWluOiBcIk5pbGFpIG1pbmltdW0gdW50dWsgaXRlbSBhdXRvIGRpamFuYVwiLFxuICAgIGNob2ljZXNNYXg6IFwiTmlsYWkgbWFrc2ltdW0gdW50dWsgaXRlbSBhdXRvIGRpamFuYVwiLFxuICAgIGNob2ljZXNTdGVwOiBcIlBlcmJlemFhbiBhbnRhcmEgaXRlbSBhdXRvIGRpamFuYVwiLFxuICAgIG5hbWU6IFwiTmFtYVwiLFxuICAgIHRpdGxlOiBcIlRhanVrXCIsXG4gICAgY2VsbFR5cGU6IFwiSmVuaXMgc2VsXCIsXG4gICAgY29sQ291bnQ6IFwiS2lyYWFuIGxhanVyXCIsXG4gICAgY2hvaWNlc09yZGVyOiBcIlBpbGloIHN1c3VuYW4gcGlsaWhhblwiLFxuICAgIHZpc2libGU6IFwiQm9sZWggZGlsaWhhdD9cIixcbiAgICBpc1JlcXVpcmVkOiBcIkRpcGVybHVrYW4/XCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJQZXJsdWthbiBqYXdhcGFuIHVudHVrIHNlbXVhIGJhcmlzXCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwiVGVrcyByYWxhdCBkaXBlcmx1a2FuXCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCJNdWxha2FuIGRlbmdhbiBiYXJpcyBiYWhhcnU/XCIsXG4gICAgcm93czogXCJLaXJhYW4gYmFyaXNcIixcbiAgICBjb2xzOiBcIktpcmFhbiBsYWp1clwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIlJ1YW5nIGxldGFrIGlucHV0XCIsXG4gICAgc2hvd1ByZXZpZXc6IFwiVHVuanVra2FuIGthd2FzYW4gcHJhdG9udG9uXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIlNpbXBhbiBrYW5kdW5nYW4gZmFpbCBkYWxhbSBrZXB1dHVzYW4gSlNPTiBzZWJhZ2FpIHRla3NcIixcbiAgICBtYXhTaXplOiBcIk1ha3NpbXVtIHNhaXogZmFpbCBkYWxhbSBiYWl0XCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiVGluZ2dpIGltZWpcIixcbiAgICBpbWFnZVdpZHRoOiBcIkxlYmFyIGltZWpcIixcbiAgICByb3dDb3VudDogXCJLaXJhYW4gYmFyaXNcIixcbiAgICBjb2x1bW5MYXlvdXQ6IFwiVGF0YWxldGFrIGxhanVyXCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiVGFtYmFoa2FuIGxva2FzaSBidXRhbmcgYmFyaXNcIixcbiAgICBhZGRSb3dUZXh0OiBcIlRhbWJhaGthbiB0ZWtzIGJ1dGFuZyBiYXJpc1wiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiQWxpaCBrZWx1YXIgdGVrcyBidXRhbmcgYmFyaXNcIixcbiAgICByYXRlTWluOiBcIkthZGFyIG1pbmltdW1cIixcbiAgICByYXRlTWF4OiBcIkthZGFyIG1ha3NpbXVtXCIsXG4gICAgcmF0ZVN0ZXA6IFwiTGFuZ2thaCBrYWRhclwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJQZXJpaGFsYW4ga2FkYXIgbWluaW11bVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJQZXJpaGFsYW4ga2FkYXIgbWFrc2ltdW1cIixcbiAgICBpbnB1dFR5cGU6IFwiSmVuaXMgaW5wdXRcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJLYXBzeWVuIHBpbGloYW5cIixcbiAgICBzaG93T3B0aW9uc0NhcHRpb246IFwiVHVuanVra2FuIGthcHN5ZW4gcGlsaWhhblwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJOaWxhaSBsYWxhaVwiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJUZWtzIHNlbCBsYWxhaVwiLFxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcIkVkaXQgdGV0YXBhbiB0aW5qYXVhblwiLFxuICAgIHFFZGl0b3JUaXRsZTogXCJFZGl0OiB7MH1cIixcbiAgICBtYXhMZW5ndGg6IFwiUGFuamFuZyBtYWtzaW11bVwiLFxuICAgIGJ1aWxkRXhwcmVzc2lvbjogXCJCaW5hXCIsXG4gICAgZWRpdEV4cHJlc3Npb246IFwiRWRpdFwiLFxuICAgIGFuZDogXCJEYW5cIixcbiAgICBvcjogXCJBdGF1XCIsXG4gICAgcmVtb3ZlOiBcIkFsaWgga2VsdWFyXCIsXG4gICAgYWRkQ29uZGl0aW9uOiBcIlRhbWJhaGthbiBzeWFyYXRcIixcbiAgICBzaG93VGl0bGU6IFwiVHVuanVra2FuL3NlbWJ1bnlpa2FuIHRhanVrXCIsXG4gICAgZXhwYW5kQ29sbGFwc2VUaXRsZTogXCJLZW1iYW5na2FuL3J1bnR1aGthbiB0YWp1a1wiLFxuICAgIGxvY2FsZTogXCJCYWhhc2EgbGFsYWlcIixcbiAgICBzaW11bGF0b3I6IFwiUGlsaWggcGVyYW50aVwiLFxuICAgIGxhbmRzY2FwZU9yaWVudGF0aW9uOiBcIkxhbmRza2FwXCIsXG4gICAgbW9kZTogXCJNb2QgKGVkaXQvYmFjYSBzYWhhamEpXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiS29zb25na2FuIG5pbGFpIHRlcnNlbWJ1bnlpXCIsXG4gICAgY29va2llTmFtZTogXCJOYW1hIGt1a2kgKHVudHVrIG1lbHVtcHVoa2FuIHBlcmxha3NhbmFhbiB0aW5qYXVhbiBkdWEga2FsaSBzZWNhcmEgc2V0ZW1wYXQpXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiSGFudGFyIGtlcHV0dXNhbiB0aW5qYXVhbiBwYWRhIGhhbGFtYW4gc2V0ZXJ1c255YVwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcIlNpbXBhbiBuaWxhaSAnbGFpbi1sYWluJyBkYWxhbSBtZWRhbiBiZXJhc2luZ2FuXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiVHVuanVra2FuIHRhanVrIGhhbGFtYW5cIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwiVHVuanVra2FuIG5vbWJvciBoYWxhbWFuXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIlRla3MgYnV0YW5nIGhhbGFtYW4gc2ViZWx1bW55YVwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJUZWtzIGJ1dGFuZyBoYWxhbWFuIHNldGVydXNueWFcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiVGVrcyBidXRhbmcgbGVuZ2thcGthblwiLFxuICAgIHByZXZpZXdUZXh0OiBcIlRla3MgYnV0YW5nIHByYXRvbnRvblwiLFxuICAgIGVkaXRUZXh0OiBcIkVkaXQgdGVrcyBidXRhbmdcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiVGVrcyBidXRhbmcgbXVsYWthblwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJUdW5qdWtrYW4gYnV0YW5nIG5hdmlnYXNpIChuYXZpZ2FzaSBsYWxhaSlcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJUdW5qdWtrYW4gYnV0YW5nIHNlYmVsdW1ueWEgKHBlbmdndW5hIGJvbGVoIGtlbWJhbGkga2UgaGFsYW1hbiBzZXRlcnVzbnlhKVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCJIYWxhbWFuIHBlcnRhbWEgZGFsYW0gdGluamF1YW4gaWFsYWggaGFsYW1hbiBwZXJtdWxhYW4uXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiVHVuanVra2FuIGhhbGFtYW4gbGVuZ2thcCBwYWRhIGh1anVuZyAoSFRNTCBkaWxlbmdrYXBrYW4pXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCJTZWxlcGFzIG1lbmphd2FiIHNlbXVhIHNvYWxhbiwgcGVyZ2kga2UgaGFsYW1hbiBzZXRlcnVzbnlhIHNlY2FyYSBhdXRvbWF0aWtcIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwiVHVuanVra2FuIGJhciBwZXJrZW1iYW5nYW5cIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwiTG9rYXNpIHRhanVrIHNvYWxhblwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJTb2FsYW4gbWVtZXJsdWthbiBzaW1ib2xcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiSW5kZWtzIG11bGEgc29hbGFuICgxLCAyIGF0YXUgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJUdW5qdWtrYW4gbm9tYm9yIHNvYWxhblwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCJUZW1wbGF0IHRhanVrIHNvYWxhbiwgbGFsYWkgaWFsYWg6ICd7dGlkYWt9LiB7cGVybHVrYW59IHt0YWp1a30nXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIkxva2FzaSByYWxhdCBzb2FsYW5cIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiRm9rdXMgc29hbGFuIHBlcnRhbWEgcGFkYSBwZXJ1YmFoYW4gaGFsYW1hblwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIlN1c3VuYW4gZWxlbWVuIHBhZGEgaGFsYW1hblwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJNYXNhIG1ha3NpbXVtIHVudHVrIG1lbnllbGVzYWlrYW4gdGluamF1YW5cIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIk1hc2EgbWFrc2ltdW0gdW50dWsgbWVueWVsZXNhaWthbiBoYWxhbWFuIGRhbGFtIHRpbmphdWFuXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiVHVuanVra2FuIHBhbmVsIHBlbWFzYVwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJUdW5qdWtrYW4gbW9kIHBhbmVsIHBlbWFzYVwiLFxuICAgIHJlbmRlck1vZGU6IFwiTW9kIHBlbnlhbXBhaWFuXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJCZW5hcmthbiBtZW5hbWJhaGthbiBwYW5lbFwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiQmVuYXJrYW4gYWxpaCBrZWx1YXIgcGFuZWxcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiTWVuYW1iYWhrYW4gdGVrcyBwYW5lbFwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJNZW5nYWxpaCBrZWx1YXIgdGVrcyBwYW5lbFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJUdW5qdWtrYW4gc2VtdWEgZWxlbWVuIHBhZGEgc2F0dSBoYWxhbWFuXCIsXG4gICAgaHRtbDogXCJIVE1MXCIsXG4gICAgZXhwcmVzc2lvbjogXCJFa3NwcmVzaVwiLFxuICAgIG1pblZhbHVlOiBcIk5pbGFpIG1pbmltdW1cIixcbiAgICBtYXhWYWx1ZTogXCJOaWxhaSBtYWtzaW11bVwiLFxuICAgIG1pbkxlbmd0aDogXCJQYW5qYW5nIG1pbmltdW1cIixcbiAgICBhbGxvd0RpZ2l0czogXCJCZW5hcmthbiBkaWdpdFwiLFxuICAgIG1pbkNvdW50OiBcIkJpbGFuZ2FuIG1pbmltdW1cIixcbiAgICBtYXhDb3VudDogXCJCaWxhbmdhbiBtYWtzaW11bVwiLFxuICAgIHJlZ2V4OiBcIkVrc3ByZXNpIGJpYXNhXCIsXG4gICAgdG90YWxUZXh0OiBcIkp1bWxhaCB0ZWtzXCIsXG4gICAgdG90YWxUeXBlOiBcIkp1bWxhaCBqZW5pc1wiLFxuICAgIHRvdGFsRXhwcmVzc2lvbjogXCJKdW1sYWggZWtzcHJlc2lcIixcbiAgICB0b3RhbERpc3BsYXlTdHlsZTogXCJKdW1sYWggZ2F5YSBwYXBhcmFuXCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCJKdW1sYWggbWF0YSB3YW5nXCIsXG4gICAgdG90YWxGb3JtYXQ6IFwiSnVtbGFoIGZvcm1hdFwiLFxuICAgIGxvZ29Qb3NpdGlvbjogXCJLZWR1ZHVrYW4gbG9nb1wiLFxuICAgIGFkZExvZ286IFwiVGFtYmFoa2FuIGxvZ28uLi5cIixcbiAgICBjaGFuZ2VMb2dvOiBcIlViYWggbG9nby4uLlwiLFxuICAgIGxvZ29Qb3NpdGlvbnM6IHtcbiAgICAgIG5vbmU6IFwiQWxpaCBrZWx1YXIgbG9nb1wiLFxuICAgICAgbGVmdDogXCJLaXJpXCIsXG4gICAgICByaWdodDogXCJLYW5hblwiLFxuICAgICAgdG9wOiBcIkRpIGF0YXNcIixcbiAgICAgIGJvdHRvbTogXCJEaSBiYXdhaFwiXG4gICAgfSxcbiAgICB0YWJzOiB7XG4gICAgICBnZW5lcmFsOiBcIlVtdW1cIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIlBpbGloYW5cIixcbiAgICAgIGh0bWw6IFwiRWRpdG9yIEhUTUxcIixcbiAgICAgIGNvbHVtbnM6IFwiTGFqdXJcIixcbiAgICAgIHJvd3M6IFwiQmFyaXNcIixcbiAgICAgIGNob2ljZXM6IFwiUGlsaWhhblwiLFxuICAgICAgaXRlbXM6IFwiSXRlbVwiLFxuICAgICAgdmlzaWJsZUlmOiBcIkJvbGVoIERpbGloYXQgSmlrYVwiLFxuICAgICAgZW5hYmxlSWY6IFwiRGF5YWthbiBKaWthXCIsXG4gICAgICByZXF1aXJlZElmOiBcIkRpcGVybHVrYW4gSmlrYVwiLFxuICAgICAgcmF0ZVZhbHVlczogXCJOaWxhaSBLYWRhclwiLFxuICAgICAgY2hvaWNlc0J5VXJsOiBcIlBpbGloYW4gZGFyaXBhZGEgV2ViXCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIlBpbGloYW4gTGFsYWlcIixcbiAgICAgIG11bHRpcGxlVGV4dEl0ZW1zOiBcIklucHV0IFRla3NcIixcbiAgICAgIG51bWJlcmluZzogXCJOb21ib3JcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwiUGVuZ2VzYWhcIixcbiAgICAgIG5hdmlnYXRpb246IFwiTmF2aWdhc2lcIixcbiAgICAgIHF1ZXN0aW9uOiBcIlNvYWxhblwiLFxuICAgICAgcGFnZXM6IFwiSGFsYW1hblwiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCJIVE1MIERpbGVuZ2thcGthblwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uOiBcIkhUTUwgRGlsZW5na2Fwa2FuIGRlbmdhbiBTeWFyYXRcIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcIk1lbXVhdGthbiBIVE1MXCIsXG4gICAgICB0aW1lcjogXCJQZW1hc2EvS3VpelwiLFxuICAgICAgY2FsY3VsYXRlZFZhbHVlczogXCJOaWxhaSBEaWtpcmFcIixcbiAgICAgIHRyaWdnZXJzOiBcIlBlbmNldHVzXCIsXG4gICAgICB0ZW1wbGF0ZVRpdGxlOiBcIlRhanVrIHRlbXBsYXRcIixcbiAgICAgIHRvdGFsczogXCJKdW1sYWhcIixcbiAgICAgIGxvZ2ljOiBcIkxvZ2lrXCIsXG4gICAgICBsYXlvdXQ6IFwiVGF0YWxldGFrXCIsXG4gICAgICBkYXRhOiBcIkRhdGFcIixcbiAgICAgIHZhbGlkYXRpb246IFwiUGVuZ2VzYWhhblwiLFxuICAgICAgY2VsbHM6IFwiU2VsXCIsXG4gICAgICBzaG93T25Db21wbGV0ZWQ6IFwiVHVuanVra2FuIHBhZGEgRGlsZW5na2Fwa2FuXCIsXG4gICAgICBsb2dvOiBcIkxvZ28gZGFsYW0gVGFqdWsgVGluamF1YW5cIixcbiAgICAgIHNsaWRlcjogXCJQZW5nZ2Vsb25nc29yXCIsXG4gICAgICBvdGhlcnM6IFwiTGFpbi1sYWluXCJcbiAgICB9LFxuICAgIGVkaXRQcm9wZXJ0eTogXCJFZGl0IGNpcmkgJ3swfSdcIixcbiAgICBpdGVtczogXCJbIEl0ZW06IHswfSBdXCIsXG4gICAgZW50ZXJOZXdWYWx1ZTogXCJTaWxhIG1hc3Vra2FuIG5pbGFpLlwiLFxuICAgIG5vcXVlc3Rpb25zOiBcIlRpYWRhIHNvYWxhbiBsYWluIGRhbGFtIHRpbmphdWFuLlwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiU2lsYSBjaXB0YSBwZW5jZXR1c1wiLFxuICAgIHRpdGxlS2V5Ym9hcmRBZG9ybmVyVGlwOiBcIlRla2FuIGJ1dGFuZyBlbnRlciB1bnR1ayBtZW5nZWRpdFwiLFxuICAgIGtleWJvYXJkQWRvcm5lclRpcDogXCJUZWthbiBidXRhbmcgZW50ZXIgdW50dWsgbWVuZ2VkaXQgaXRlbSwgdGVrYW4gYnV0YW5nIHBhZGFtIHVudHVrIG1lbWFkYW1rYW4gaXRlbSwgdGVrYW4gYnV0YW5nIGFsdCBkYW4gYW5hayBwYW5haCBrZSBhdGFzIGF0YXUga2UgYmF3YWggdW50dWsgbWVuZ2dlcmFra2FuIGl0ZW1cIixcbiAgICBrZXlib2FyZE1vdmVJdGVtc1RpcDogXCJUZWthbiBidXRhbmcgYWx0IGRhbiBhbmFrIHBhbmFoIGtlIGF0YXMgYXRhdSBrZSBiYXdhaCB1bnR1ayBtZW5nZ2VyYWtrYW4gaXRlbVwiLFxuICAgIHRyaWdnZXJPbjogXCJIaWR1cCBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCJKYWRpa2FuIGhhbGFtYW4gYm9sZWggZGlsaWhhdDpcIixcbiAgICB0cmlnZ2VyTWFrZVF1ZXN0aW9uc1Zpc2libGU6IFwiQnVhdCBlbGVtZW4gYm9sZWggZGlsaWhhdDpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIkxlbmdrYXBrYW4gdGluamF1YW4gamlrYSBiZXJqYXlhLlwiLFxuICAgIHRyaWdnZXJOb3RTZXQ6IFwiUGVuY2V0dXMgdGlkYWsgZGl0ZXRhcGthblwiLFxuICAgIHRyaWdnZXJSdW5JZjogXCJKYWxhbmthbiBqaWthXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCJVYmFoIG5pbGFpOiBcIixcbiAgICB0cmlnZ2VyRnJvbU5hbWU6IFwiU2FsaW4gbmlsYWkgZGFyaXBhZGE6IFwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcIkphbGFua2FuIEVrc3ByZXNpIGluaTpcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwia2VwYWRhOiBcIixcbiAgICB0cmlnZ2VyR290b05hbWU6IFwiUGVyZ2kga2VwYWRhIHNvYWxhbjpcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCJKYW5nYW4gbGV0YWtrYW4gcGVtYm9sZWggdWJhaCBkYWxhbSBrZXB1dHVzYW4gdGluamF1YW4uXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eTogXCJTaWxhIG1hc3Vra2FuIGVrc3ByZXNpIHlhbmcgc2FoXCIsXG4gICAgbm9GaWxlOiBcIlRpYWRhIGZhaWwgZGlwaWxpaFwiXG4gIH0sXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCJiZW5hclwiLFxuICAgIGZhbHNlOiBcInBhbHN1XCIsXG4gICAgaW5oZXJpdDogXCJ3YXJpc2lcIixcbiAgICBzaG93OiBcInR1bmp1a2thblwiLFxuICAgIGhpZGU6IFwic2VtYnVueWlrYW5cIixcbiAgICBkZWZhdWx0OiBcImxhbGFpXCIsXG4gICAgaW5pdGlhbDogXCJhd2FsXCIsXG4gICAgcmFuZG9tOiBcInJhd2FrXCIsXG4gICAgY29sbGFwc2VkOiBcImt1bmN1cFwiLFxuICAgIGV4cGFuZGVkOiBcImtlbWJhbmdcIixcbiAgICBub25lOiBcInRpYWRhXCIsXG4gICAgYXNjOiBcInRlcnRpYiBtZW5haWtcIixcbiAgICBkZXNjOiBcIm1lbnVydW5cIixcbiAgICBpbmRldGVybWluYXRlOiBcInRpZGFrIHRlbnR1XCIsXG4gICAgZGVjaW1hbDogXCJwZXJwdWx1aGFuXCIsXG4gICAgY3VycmVuY3k6IFwibWF0YSB3YW5nXCIsXG4gICAgcGVyY2VudDogXCJwZXJhdHVzXCIsXG4gICAgZmlyc3RFeHBhbmRlZDogXCJQZXJ0YW1hIGRpa2VtYmFuZ2thblwiLFxuICAgIG9mZjogXCJtYXRpXCIsXG4gICAgb25QYW5lbDogXCJQYWRhIHBhbmVsXCIsXG4gICAgb25TdXJ2ZXk6IFwiUGFkYSB0aW5qYXVhblwiLFxuICAgIGxpc3Q6IFwic2VuYXJhaVwiLFxuICAgIHByb2dyZXNzVG9wOiBcIlBlcmtlbWJhbmdhbiBhdGFzXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwiUGVya2VtYmFuZ2FuIGJhd2FoXCIsXG4gICAgcHJvZ3Jlc3NUb3BCb3R0b206IFwiUGVya2VtYmFuZ2FuIGF0YXMgYmF3YWhcIixcbiAgICBob3Jpem9udGFsOiBcIm1lbmRhdGFyXCIsXG4gICAgdmVydGljYWw6IFwibWVuZWdha1wiLFxuICAgIHRvcDogXCJhdGFzXCIsXG4gICAgYm90dG9tOiBcImJhd2FoXCIsXG4gICAgdG9wQm90dG9tOiBcImF0YXMgZGFuIGJhd2FoXCIsXG4gICAgYm90aDogXCJrZWR1YS1kdWFueWFcIixcbiAgICBsZWZ0OiBcImJha2lcIixcbiAgICBjb2xvcjogXCJ3YXJuYVwiLFxuICAgIGRhdGU6IFwidGFyaWtoXCIsXG4gICAgZGF0ZXRpbWU6IFwiVGFyaWtoIG1hc2FcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwiVGFyaWtoIG1hc2EtdGVtcGF0YW5cIixcbiAgICBlbWFpbDogXCJlLW1lbFwiLFxuICAgIG1vbnRoOiBcImJ1bGFuXCIsXG4gICAgbnVtYmVyOiBcIm5vbWJvclwiLFxuICAgIHBhc3N3b3JkOiBcImthdGEgbGFsdWFuXCIsXG4gICAgcmFuZ2U6IFwianVsYXRcIixcbiAgICB0ZWw6IFwidGVsXCIsXG4gICAgdGV4dDogXCJ0ZWtzXCIsXG4gICAgdGltZTogXCJtYXNhXCIsXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHdlZWs6IFwibWluZ2d1XCIsXG4gICAgaGlkZGVuOiBcInRlcnNlbWJ1bnlpXCIsXG4gICAgb246IFwicGFkYVwiLFxuICAgIG9uUGFnZTogXCJQYWRhIGhhbGFtYW5cIixcbiAgICBlZGl0OiBcImVkaXRcIixcbiAgICBkaXNwbGF5OiBcInBhcGFyYW5cIixcbiAgICBvbkNvbXBsZXRlOiBcIlBhZGEgc2VsZXNhaVwiLFxuICAgIG9uSGlkZGVuOiBcIlBhZGEgdGVyc2VtYnVueWlcIixcbiAgICBhbGw6IFwic2VtdWFcIixcbiAgICBwYWdlOiBcImhhbGFtYW5cIixcbiAgICBzdXJ2ZXk6IFwidGluamF1YW5cIixcbiAgICBvbk5leHRQYWdlOiBcIlBhZGEgaGFsYW1hbiBiZXJpa3V0bnlhXCIsXG4gICAgb25WYWx1ZUNoYW5nZWQ6IFwiUGFkYSBuaWxhaSBiZXJ1YmFoXCIsXG4gICAgc2luZ2xlUGFnZTogXCJoYWxhbWFuIHR1bmdnYWxcIixcbiAgICBzdGFuZGFyZDogXCJzdGFuZGFyZFwiLFxuICAgIHF1ZXN0aW9uUGVyUGFnZTogXCJzb2FsYW4gYmFnaSBzZXRpYXAgaGFsYW1hblwiLFxuICAgIG5vUHJldmlldzogXCJ0aWFkYSBwcmF0b250b25cIixcbiAgICBzaG93QWxsUXVlc3Rpb25zOiBcInR1bmp1a2thbiBwcmF0b250b24gZGVuZ2FuIHNlbXVhIHNvYWxhblwiLFxuICAgIHNob3dBbnN3ZXJlZFF1ZXN0aW9uczogXCJ0dW5qdWtrYW4gcHJhdG9udG9uIGRlbmdhbiBzb2FsYW4gZGlqYXdhYlwiLFxuICAgIHBhZ2VzOiBcImhhbGFtYW5cIixcbiAgICBxdWVzdGlvbnM6IFwic29hbGFuXCIsXG4gICAgcmVxdWlyZWRRdWVzdGlvbnM6IFwic29hbGFuIGRpcGVybHVrYW5cIixcbiAgICBjb3JyZWN0UXVlc3Rpb25zOiBcInNvYWxhbiBiZXR1bFwiLFxuICAgIGJ1dHRvbnM6IFwiYnV0YW5nXCIsXG4gICAgdW5kZXJJbnB1dDogXCJpbnB1dCBkaSBiYXdhaFwiLFxuICAgIHVuZGVyVGl0bGU6IFwidGFqdWsgZGkgYmF3YWhcIlxuICB9LFxuICBvcDoge1xuICAgIGVtcHR5OiBcImtvc29uZ1wiLFxuICAgIG5vdGVtcHR5OiBcInRpZGFrIGtvc29uZ1wiLFxuICAgIGVxdWFsOiBcInNhbWEgZGVuZ2FuXCIsXG4gICAgbm90ZXF1YWw6IFwidGlkYWsgc2FtYSBkZW5nYW5cIixcbiAgICBjb250YWluczogXCJtZW5nYW5kdW5naVwiLFxuICAgIG5vdGNvbnRhaW5zOiBcInRpZGFrIG1lbmdhbmR1bmdpXCIsXG4gICAgYW55b2Y6IFwic2ViYXJhbmdcIixcbiAgICBhbGxvZjogXCJzZW11YVwiLFxuICAgIGdyZWF0ZXI6IFwibGViaWggYmVzYXJcIixcbiAgICBsZXNzOiBcImt1cmFuZ1wiLFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBcImxlYmloIGJlc2FyIGF0YXUgc2FtYSBkZW5nYW5cIixcbiAgICBsZXNzb3JlcXVhbDogXCJrdXJhbmcgYXRhdSBzYW1hIGRlbmdhblwiLFxuICAgIGFuZDogXCJkYW5cIixcbiAgICBvcjogXCJhdGF1XCJcbiAgfSxcbiAgZXc6IHtcbiAgICBhbmd1bGFyOiBcIkd1bmEgdmVyc2kgQW5ndWxhclwiLFxuICAgIGpxdWVyeTogXCJHdW5hIHZlcnNpIGpRdWVyeVwiLFxuICAgIGtub2Nrb3V0OiBcIkd1bmEgdmVyc2kgS25vY2tvdXRcIixcbiAgICByZWFjdDogXCJHdW5hIHZlcnNpIFJlYWN0XCIsXG4gICAgdnVlOiBcIkd1bmEgdmVyc2kgVnVlXCIsXG4gICAgYm9vdHN0cmFwOiBcIlVudHVrIGtlcmFuZ2thIGtlcmphIGJ1dHN0cmFwXCIsXG4gICAgbW9kZXJuOiBcIlRlbWEgbW9kZW5cIixcbiAgICBkZWZhdWx0OiBcIlRlbWEgbGFsYWlcIixcbiAgICBvcmFuZ2U6IFwiVGVtYSBvcmVuXCIsXG4gICAgZGFya2JsdWU6IFwiVGVtYSBiaXJ1IGdlbGFwXCIsXG4gICAgZGFya3Jvc2U6IFwiVGVtYSBtYXdhciBnZWxhcFwiLFxuICAgIHN0b25lOiBcIlRlbWEgYmF0dVwiLFxuICAgIHdpbnRlcjogXCJUZW1hIG11c2ltIHNlanVrXCIsXG4gICAgd2ludGVyc3RvbmU6IFwiVGVtYSBiYXR1LW11c2ltIHNlanVrXCIsXG4gICAgc2hvd09uUGFnZTogXCJUdW5qdWtrYW4gdGluamF1YW4gcGFkYSBoYWxhbWFuXCIsXG4gICAgc2hvd0luV2luZG93OiBcIlR1bmp1a2thbiB0aW5qYXVhbiBwYWRhIHRldGluZ2thcFwiLFxuICAgIGxvYWRGcm9tU2VydmVyOiBcIk11YXRrYW4gVGluamF1YW4gSlNPTiBkYXJpcGFkYSBwZWxheWFuXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU2tyaXAgZGFuIGdheWFcIixcbiAgICB0aXRsZUh0bWw6IFwiSFRNTFwiLFxuICAgIHRpdGxlSmF2YVNjcmlwdDogXCJKYXZhU2NyaXB0XCJcbiAgfSxcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcIlBpbGloIGhhbGFtYW4gdW50dWsgbWVuZ3VqaW55YTpcIixcbiAgICBzaG93SW52aXNpYmxlRWxlbWVudHM6IFwiUGlsaWggZWxlbWVuIHRlcnNlbWJ1bnlpXCJcbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIGFuc3dlcmNvdW50dmFsaWRhdG9yOiBcImtpcmFhbiBqYXdhcGFuXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwiZS1tZWxcIixcbiAgICBleHByZXNzaW9udmFsaWRhdG9yOiBcImVrc3ByZXNpXCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCJudW1lcmlrXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwicmVnZXhcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRla3NcIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJsZW5na2Fwa2FuIHRpbmphdWFuXCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcInRldGFwa2FuIG5pbGFpXCIsXG4gICAgY29weXZhbHVldHJpZ2dlcjogXCJzYWxpbiBuaWxhaVwiLFxuICAgIHNraXB0cmlnZ2VyOiBcImxhbmdrYXUga2VwYWRhIHNvYWxhblwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcImphbGFua2FuIGVrc3ByZXNpXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwidWJhaCBrZWJvbGVobGloYXRhbiAodGlkYWsgZGlndW5ha2FuIGxhZ2kpXCJcbiAgfSxcbiAgcDoge1xuICAgIG5hbWU6IFwibmFtYVwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcInRhanVrXCIsXG4gICAgICB0aXRsZTogXCJCaWFya2FuIGtvc29uZywgamlrYSBzYW1hIHNlcGVydGkgJ05hbWEnXCJcbiAgICB9LFxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJLZWJvbGVobGloYXRhbiBidXRhbmcgbmF2aWdhc2lcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJTdXN1bmFuIHNvYWxhblwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJNYXNhIHVudHVrIHNlbGVzYWkgbWFrc2ltdW1cIixcbiAgICB2aXNpYmxlOiBcIkJvbGVoIGRpbGloYXRcIixcbiAgICB2aXNpYmxlSWY6IFwiQm9sZWggZGlsaWhhdCBqaWthXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIkxva2FzaSB0YWp1ayBzb2FsYW5cIixcbiAgICBkZXNjcmlwdGlvbjogXCJwZXJpaGFsYW5cIixcbiAgICBzdGF0ZTogXCJuZWdlcmlcIixcbiAgICBpc1JlcXVpcmVkOiBcIkRpcGVybHVrYW5cIixcbiAgICByZXF1aXJlZElmOiBcIkRpcGVybHVrYW4gamlrYVwiLFxuICAgIGluZGVudDogXCJpbmRlblwiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OiBcIlRla3MgcmFsYXQgZGlwZXJsdWthblwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiTXVsYWthbiBkZW5nYW4gYmFyaXMgYmFoYXJ1XCIsXG4gICAgaW5uZXJJbmRlbnQ6IFwiSW5kZW4gZGFsYW1hblwiLFxuICAgIHBhZ2U6IFwiaGFsYW1hblwiLFxuICAgIHdpZHRoOiBcImxlYmFyXCIsXG4gICAgY29tbWVudFRleHQ6IFwiVGVrcyBrb21lblwiLFxuICAgIHZhbHVlTmFtZTogXCJOYW1hIG5pbGFpXCIsXG4gICAgZW5hYmxlSWY6IFwiRGF5YWthbiBqaWthXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIk5pbGFpIGxhbGFpXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCJKYXdhcGFuIGJldHVsXCIsXG4gICAgcmVhZE9ubHk6IFwiQmFjYSBzYWhhamFcIixcbiAgICB2YWxpZGF0b3JzOiBcIlBlbmdlc2FoXCIsXG4gICAgdGl0bGVMb2NhdGlvbjogXCJMb2thc2kgdGFqdWtcIixcbiAgICBoYXNDb21tZW50OiBcIkFkYSBrb21lblwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwiQWRhIGxhaW5cIixcbiAgICBjaG9pY2VzOiBcInBpbGloYW5cIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiU3VzdW5hbiBwaWxpaGFuXCIsXG4gICAgY2hvaWNlc0J5VXJsOiBcIlBpbGloYW4gbWVsYWx1aSBVUkxcIixcbiAgICBvdGhlclRleHQ6IFwiVGVrcyBsYWluXCIsXG4gICAgb3RoZXJFcnJvclRleHQ6IFwiVGVrcyByYWxhdCBsYWluXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiU2ltcGFuIGxhaW4gc2ViYWdhaSBrb21lblwiLFxuICAgIGxhYmVsOiBcImxhYmVsXCIsXG4gICAgc2hvd1RpdGxlOiBcIlR1bmp1a2thbiB0YWp1a1wiLFxuICAgIHZhbHVlVHJ1ZTogXCJOaWxhaSBiZW5hclwiLFxuICAgIHZhbHVlRmFsc2U6IFwiTmlsYWkgcGFsc3VcIixcbiAgICBjb2xzOiBcImxhanVyXCIsXG4gICAgcm93czogXCJiYXJpc1wiLFxuICAgIHBsYWNlaG9sZGVyOiBcIlJ1YW5nIGxldGFrXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiS2Fwc3llbiBwaWxpaGFuXCIsXG4gICAgZXhwcmVzc2lvbjogXCJla3NwcmVzaVwiLFxuICAgIGZvcm1hdDogXCJmb3JtYXRcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwiUGFwYXJrYW4gZ2F5YVwiLFxuICAgIGN1cnJlbmN5OiBcIm1hdGEgd2FuZ1wiLFxuICAgIHVzZUdyb3VwaW5nOiBcIkd1bmEgcGVya3VtcHVsYW5cIixcbiAgICBzaG93UHJldmlldzogXCJUdW5qdWtrYW4gcHJhdG9udG9uXCIsXG4gICAgYWxsb3dNdWx0aXBsZTogXCJCZW5hcmthbiBiZXJiaWxhbmdcIixcbiAgICBpbWFnZUhlaWdodDogXCJUaW5nZ2kgaW1lalwiLFxuICAgIGltYWdlV2lkdGg6IFwiTGViYXIgaW1lalwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJTaW1wYW4gZGF0YSBzZWJhZ2FpIHRla3NcIixcbiAgICBtYXhTaXplOiBcIlNhaXogbWFrc1wiLFxuICAgIGh0bWw6IFwiaHRtbFwiLFxuICAgIGNvbHVtbnM6IFwibGFqdXJcIixcbiAgICBjZWxsczogXCJzZWxcIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIlNlbXVhIGJhcmlzIGRpcGVybHVrYW5cIixcbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcIlRhdGFsIG1lbmRhdGFyXCIsXG4gICAgY2VsbFR5cGU6IFwiSmVuaXMgc2VsXCIsXG4gICAgY29sdW1uc0xheW91dDogXCJUYXRhbGV0YWsgbGFqdXJcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCJMYWp1ciBiaWxhbmdhbiBsYWp1clwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcIkxlYmFyIG1pbiBsYWp1clwiLFxuICAgIHJvd0NvdW50OiBcIkJpbGFuZ2FuIGJhcmlzXCIsXG4gICAgbWluUm93Q291bnQ6IFwiQmlsYW5nYW4gYmFyaXMgbWluXCIsXG4gICAgbWF4Um93Q291bnQ6IFwiQmlsYW5nYW4gYmFyaXMgbWFrc1wiLFxuICAgIGtleU5hbWU6IFwiTmFtYSBrdW5jaVwiLFxuICAgIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiUmFsYXQgcGVuZHVhIGtla3VuY2lcIixcbiAgICBjb25maXJtRGVsZXRlOiBcIlNhaGthbiBwYWRhbVwiLFxuICAgIGNvbmZpcm1EZWxldGVUZXh0OiBcIlNhaGthbiBwYWRhbWthbiB0ZWtzXCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiVGFtYmFoIGxva2FzaSBiYXJpc1wiLFxuICAgIGFkZFJvd1RleHQ6IFwiVGFtYmFoIHRla3MgYmFyaXNcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIkFsaWgga2VsdWFyIHRla3MgYmFyaXNcIixcbiAgICBpdGVtczogXCJpdGVtXCIsXG4gICAgaXRlbVNpemU6IFwiU2FpeiBpdGVtXCIsXG4gICAgY29sQ291bnQ6IFwiQmlsYW5nYW4gbGFqdXJcIixcbiAgICB0ZW1wbGF0ZVRpdGxlOiBcIlRhanVrIHRlbXBsYXRcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcIlBlcmloYWxhbiB0ZW1wbGF0XCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJCZW5hcmthbiB0YW1iYWhrYW4gcGFuZWxcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIkJlbmFya2FuIGFsaWgga2VsdWFyIHBhbmVsXCIsXG4gICAgcGFuZWxDb3VudDogXCJLaXJhYW4gcGFuZWxcIixcbiAgICBtaW5QYW5lbENvdW50OiBcIkJpbGFuZ2FuIHBhbmVsIG1pblwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwiQmlsYW5nYW4gcGFuZWwgbWFrc1wiLFxuICAgIHBhbmVsc1N0YXRlOiBcIktlYWRhYW4gcGFuZWxcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiUGFuZWwgdGFtYmFoIHRla3NcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwiUGFuZWwgYWxpaCBrZWx1YXIgdGVrc1wiLFxuICAgIHBhbmVsUHJldlRleHQ6IFwiUGFuZWwgdGVrcyBzZWJlbHVtbnlhXCIsXG4gICAgcGFuZWxOZXh0VGV4dDogXCJQYW5lbCB0ZWtzIHNldGVydXNueWFcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcIlR1bmp1a2thbiBub21ib3Igc29hbGFuXCIsXG4gICAgc2hvd1JhbmdlSW5Qcm9ncmVzczogXCJUdW5qdWtrYW4ganVsYXQgc2VkYW5nIGJlcmphbGFuXCIsXG4gICAgcmVuZGVyTW9kZTogXCJNb2QgcGVueWFtcGFpYW5cIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwiVGVtcGxhdCBsb2thc2kgdGFqdWtcIixcbiAgICByYXRlVmFsdWVzOiBcIkthZGFyIG5pbGFpXCIsXG4gICAgcmF0ZU1pbjogXCJLYWRhciBtaW5cIixcbiAgICByYXRlTWF4OiBcIkthZGFyIG1ha3NcIixcbiAgICByYXRlU3RlcDogXCJLYWRhciBsYW5na2FoXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIlBlcmloYWxhbiBrYWRhciBtaW5cIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwiUGVyaWhhbGFuIGthZGFyIG1ha3NcIixcbiAgICBpbnB1dFR5cGU6IFwiSmVuaXMgaW5wdXRcIixcbiAgICBzaXplOiBcInNhaXpcIixcbiAgICBsb2NhbGU6IFwidGVtcGF0YW5cIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiRm9rdXMgc29hbGFuIHBlcnRhbWEgc2VjYXJhIGF1dG9tYXRpa1wiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiSFRNTCBEaWxlbmdrYXBrYW5cIixcbiAgICBjb21wbGV0ZWRCZWZvcmVIdG1sOiBcIkxlbmdrYXBrYW4gc2ViZWx1bSBIVE1MXCIsXG4gICAgbG9hZGluZ0h0bWw6IFwiTWVtdWF0a2FuIEhUTUxcIixcbiAgICB0cmlnZ2VyczogXCJwZW5jZXR1c1wiLFxuICAgIGNvb2tpZU5hbWU6IFwiTmFtYSBrdWtpXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiSGFudGFyIGtlcHV0dXNhbiBwYWRhIGhhbGFtYW4gc2V0ZXJ1c255YVwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJUdW5qdWtrYW4gYnV0YW5nIG5hdmlnYXNpXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwiVHVuanVra2FuIGJ1dGFuZyBzZWJlbHVtbnlhXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiVHVuanVra2FuIHRhanVrIGhhbGFtYW5cIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCJUdW5qdWtrYW4gaGFsYW1hbiBkaWxlbmdrYXBrYW5cIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwiVHVuanVra2FuIG5vbWJvciBoYWxhbWFuXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIlNvYWxhbiBsb2thc2kgcmFsYXRcIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwiVHVuanVra2FuIGJhciBwZXJrZW1iYW5nYW5cIixcbiAgICBtb2RlOiBcIm1vZFwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwiUGVyZ2kgaGFsYW1hbiBzZXRlcnVzbnlhIGF1dG9tYXRpa1wiLFxuICAgIGNoZWNrRXJyb3JzTW9kZTogXCJTZW1hayBtb2QgcmFsYXRcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJLb3NvbmdrYW4gbmlsYWkgdGVyc2VtYnVueWlcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiTXVsYWthbiB0ZWtzIHRpbmphdWFuXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIkhhbGFtYW4gdGVrcyBzZWJlbHVtbnlhXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIkhhbGFtYW4gdGVrcyBzZXRlcnVzbnlhXCIsXG4gICAgY29tcGxldGVUZXh0OiBcIkxlbmdrYXBrYW4gdGVrc1wiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJUZWtzIGRpcGVybHVrYW5cIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiSW5kZWtzIG11bGEgc29hbGFuXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcIlRlbXBsYXQgdGFqdWsgc29hbGFuXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIkhhbGFtYW4gcGVydGFtYSBkaW11bGFrYW5cIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiSWFsYWggaGFsYW1hbiB0dW5nZ2FsXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJNYXNhIHVudHVrIGhhbGFtYW4gc2VsZXNhaSBtYWtzXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiVHVuanVra2FuIHBhbmVsIHBlbWFzYVwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJUdW5qdWtrYW4gbW9kIHBhbmVsIHBlbWFzYVwiLFxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcIk5pbGFpIHBhbmVsIGxhbGFpXCIsXG4gICAgZGVmYXVsdFJvd1ZhbHVlOiBcIk5pbGFpIGJhcmlzIGxhbGFpXCIsXG4gICAgc2hvd05vbmVJdGVtOiBcInRpYWRhXCIsXG4gICAgbm9uZVRleHQ6IFwiVGlhZGEgdGVrc1wiLFxuICAgIHRleHQ6IFwidGVrc1wiLFxuICAgIG11bHRpU2VsZWN0OiBcIlBpbGloIGJlcmJpbGFuZ1wiLFxuICAgIHNob3dMYWJlbDogXCJUdW5qdWtrYW4gbGFiZWxcIixcbiAgICBsb2dvOiBcImxvZ29cIixcbiAgICBsb2dvV2lkdGg6IFwiTGViYXIgbG9nb1wiLFxuICAgIGxvZ29IZWlnaHQ6IFwiVGluZ2dpIGxvZ29cIixcbiAgICBsb2dvRml0OiBcIk11YXQgbG9nb1wiLFxuICAgIGZvY3VzT25GaXJzdEVycm9yOiBcIkZva3VzIHBhZGEgcmFsYXQgcGVydGFtYVwiLFxuICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJIVE1MIGRpbGVuZ2thcGthbiBkZW5nYW4gc3lhcmF0XCIsXG4gICAgcGFnZXM6IFwiaGFsYW1hblwiLFxuICAgIGNhbGN1bGF0ZWRWYWx1ZXM6IFwiTmlsYWkgZGlraXJhXCIsXG4gICAgbmF2aWdhdGVUb1VybDogXCJOYXZpZ2FzaSBrZSBVUkxcIixcbiAgICBuYXZpZ2F0ZVRvVXJsT25Db25kaXRpb246IFwiTmF2aWdhc2kga2UgVVJMIGRlbmdhbiBzeWFyYXRcIixcbiAgICBxdWVzdGlvbkRlc2NyaXB0aW9uTG9jYXRpb246IFwiTG9rYXNpIHBlcmloYWxhbiBzb2FsYW5cIixcbiAgICBwcm9ncmVzc0JhclR5cGU6IFwiSmVuaXMgYmFyIHBlcmtlbWJhbmdhblwiLFxuICAgIG1heFRleHRMZW5ndGg6IFwiUGFuamFuZyB0ZWtzIG1ha3NcIixcbiAgICBtYXhPdGhlcnNMZW5ndGg6IFwiUGFuamFuZyBsYWluIG1ha3NcIixcbiAgICB0ZXh0VXBkYXRlTW9kZTogXCJNb2Qga2VtYXMga2luaSB0ZWtzXCIsXG4gICAgYXV0b0dyb3dDb21tZW50OiBcIkF1dG8gYmVzYXJrYW4ga29tZW5cIixcbiAgICBxdWVzdGlvblRpdGxlUGF0dGVybjogXCJDb3JhayB0YWp1ayBzb2FsYW5cIixcbiAgICBxdWVzdGlvbnNPblBhZ2VNb2RlOiBcIlNvYWxhbiBwYWRhIG1vZCBoYWxhbWFuXCIsXG4gICAgc2hvd1ByZXZpZXdCZWZvcmVDb21wbGV0ZTogXCJUdW5qdWtrYW4gcHJhdG9udG9uIHNlYmVsdW0gZGlsZW5na2Fwa2FuXCIsXG4gICAgd2lkdGhNb2RlOiBcIk1vZCBsZWJhclwiLFxuICAgIHNob3dOdW1iZXI6IFwiVHVuanVra2FuIG5vbWJvclwiLFxuICAgIG5hdmlnYXRpb25UaXRsZTogXCJUYWp1ayBuYXZpZ2FzaVwiLFxuICAgIG5hdmlnYXRpb25EZXNjcmlwdGlvbjogXCJQZXJpaGFsYW4gbmF2aWdhc2lcIixcbiAgICB1c2VEaXNwbGF5VmFsdWVzSW5EeW5hbWljVGV4dHM6IFwiR3VuYSBuaWxhaSBwYXBhcmFuIGRhbGFtIHRhanVrXCIsXG4gICAgbWluV2lkdGg6IFwiTGViYXIgbWluXCIsXG4gICAgbWF4V2lkdGg6IFwiTGViYXIgbWFrc1wiLFxuICAgIGRlc2NyaXB0aW9uTG9jYXRpb246IFwiTG9rYXNpIHBlcmloYWxhblwiLFxuICAgIGhpZGVOdW1iZXI6IFwiU2VtYnVueWlrYW4gbm9tYm9yXCIsXG4gICAgZGVmYXVsdFZhbHVlRXhwcmVzc2lvbjogXCJFa3NwcmVzaSBuaWxhaSBsYWxhaVwiLFxuICAgIGJpbmRpbmdzOiBcImlrYXRhblwiLFxuICAgIGNvbHVtbnNWaXNpYmxlSWY6IFwiTGFqdXIgYm9sZWggZGlsaWhhdCBqaWthXCIsXG4gICAgcm93c1Zpc2libGVJZjogXCJCYXJpcyBib2xlaCBkaWxpaGF0IGppa2FcIixcbiAgICBzaG93SGVhZGVyOiBcIlR1bmp1a2thbiBwZW5nZXBhbGFcIixcbiAgICBkZXRhaWxQYW5lbE1vZGU6IFwiQnV0aXJhbiBtb2QgcGFuZWxcIixcbiAgICByb3dUaXRsZVdpZHRoOiBcIkxlYmFyIHRhanVrIGJhcmlzXCIsXG4gICAgYWxsb3dBZGRSb3dzOiBcIkJlbmFya2FuIHRhbWJhaGthbiBiYXJpc1wiLFxuICAgIGFsbG93UmVtb3ZlUm93czogXCJCZW5hcmthbiBhbGloIGtlbHVhciBiYXJpc1wiLFxuICAgIGRlZmF1bHRWYWx1ZUZyb21MYXN0Um93OiBcIk5pbGFpIGxhbGFpIGRhcmlwYWRhIGJhcmlzIHRlcmFraGlyXCIsXG4gICAgaGlkZUNvbHVtbnNJZkVtcHR5OiBcIlNlbWJ1bnlpa2FuIGxhanVyIGppa2Ega29zb25nXCIsXG4gICAgZW1wdHlSb3dzVGV4dDogXCJLb3NvbmdrYW4gdGVrcyBiYXJpc1wiLFxuICAgIGRldGFpbFBhbmVsU2hvd09uQWRkaW5nOiBcIkJ1dGlyYW4gcGFuZWwgdHVuanVra2FuIHBhZGEgcGVuYW1iYWhhblwiLFxuICAgIGFsbG93Um93c0RyYWdBbmREcm9wOiBcIkJlbmFya2FuIHNlcmV0IGRhbiBsZXBhcyBiYXJpc1wiLFxuICAgIHJvd3NPcmRlcjogXCJTdXN1bmFuIGJhcmlzXCIsXG4gICAgaGlkZUlmUm93c0VtcHR5OiBcIlNlbWJ1bnlpa2FuIGppa2EgYmFyaXMga29zb25nXCIsXG4gICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBcIkRpZ2l0IHBlY2FoYW4gbWFrc1wiLFxuICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogXCJEaWdpdCBwZWNhaGFuIG1pbmltdW1cIixcbiAgICBjaG9pY2VzRnJvbVF1ZXN0aW9uOiBcIlBpbGloYW4gZGFyaXBhZGEgc29hbGFuXCIsXG4gICAgY2hvaWNlc0Zyb21RdWVzdGlvbk1vZGU6IFwiUGlsaWhhbiBkYXJpcGFkYSBtb2Qgc29hbGFuXCIsXG4gICAgaGlkZUlmQ2hvaWNlc0VtcHR5OiBcIlNlbWJ1bnlpa2FuIGppa2EgcGlsaWhhbiBrb3NvbmdcIixcbiAgICBjaG9pY2VzVmlzaWJsZUlmOiBcIlBpbGloYW4gYm9sZWggZGlsaWhhdCBqaWthXCIsXG4gICAgY2hvaWNlc0VuYWJsZUlmOiBcIlBpbGloYW4gZGlkYXlha2FuIGppa2FcIixcbiAgICBvdGhlclBsYWNlSG9sZGVyOiBcIlJ1YW5nIGxldGFrIGxhaW5cIixcbiAgICBtYXhTZWxlY3RlZENob2ljZXM6IFwiUGlsaWhhbiBkaXBpbGloIG1ha3NcIixcbiAgICBzaG93Q2xlYXJCdXR0b246IFwiVHVuanVra2FuIGJ1dGFuZyBrb3NvbmdrYW5cIixcbiAgICBjb250ZW50TW9kZTogXCJNb2Qga2FuZHVuZ2FuXCIsXG4gICAgaW1hZ2VGaXQ6IFwiTXVhdCBpbWVqXCIsXG4gICAgYXV0b2NvbXBsZXRlOiBcIkF1dG8gbGVuZ2thcFwiLFxuICAgIG1pbjogXCJtaW5cIixcbiAgICBtYXg6IFwibWFrc1wiLFxuICAgIG1pblZhbHVlRXhwcmVzc2lvbjogXCJFa3NwcmVzaSBuaWxhaSBtaW5cIixcbiAgICBtYXhWYWx1ZUV4cHJlc3Npb246IFwiRWtzcHJlc2kgbmlsYWkgbWFrc1wiLFxuICAgIG1pbkVycm9yVGV4dDogXCJUZWtzIHJhbGF0IG1pblwiLFxuICAgIG1heEVycm9yVGV4dDogXCJUZWtzIHJhbGF0IG1ha3NcIixcbiAgICBzdGVwOiBcImxhbmdrYWhcIixcbiAgICBkYXRhTGlzdDogXCJTZW5hcmFpIGRhdGFcIixcbiAgICBhdXRvR3JvdzogXCJBdXRvIGJlc2Fya2FuXCIsXG4gICAgbXVsdGlMaW5lOiBcIkJlcmJpbGFuZyBiYXJpc1wiLFxuICAgIGFsbG93SW1hZ2VzUHJldmlldzogXCJCZW5hcmthbiBwcmF0b250b24gaW1lalwiLFxuICAgIGFjY2VwdGVkVHlwZXM6IFwiSmVuaXMgZGl0ZXJpbWFcIixcbiAgICB3YWl0Rm9yVXBsb2FkOiBcIlR1bmdndSB1bnR1ayBtdWF0IG5haWtcIixcbiAgICBuZWVkQ29uZmlybVJlbW92ZUZpbGU6IFwiUGVybHUgc2Foa2FuIGFsaWgga2VsdWFyIGZhaWxcIixcbiAgICBsYWJlbFRydWU6IFwiTGFiZWwgYmVuYXJcIixcbiAgICBsYWJlbEZhbHNlOiBcIkxhYmVsIHBhbHN1XCIsXG4gICAgaGVpZ2h0OiBcInRpbmdnaVwiLFxuICAgIGFsbG93Q2xlYXI6IFwiQmVuYXJrYW4ga29zb25na2FuXCIsXG4gICAgcGVuQ29sb3I6IFwiV2FybmEgcGVuXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcIldhcm5hIGxhdGFyIGJlbGFrYW5nXCIsXG4gICAgZGF0YUZvcm1hdDogXCJGb3JtYXQgZGF0YVwiLFxuICAgIGRlZmF1bHRWYWx1ZUZyb21MYXN0UGFuZWw6IFwiTmlsYWkgbGFsYWkgZGFyaXBhZGEgcGFuZWwgdGVyYWtoaXJcIixcbiAgICBwYW5lbFJlbW92ZUJ1dHRvbkxvY2F0aW9uOiBcIlBhbmVsIGxva2FzaSBidXRhbmcgYWxpaCBrZWx1YXJcIixcbiAgICBzaG93Q2FwdGlvbjogXCJUdW5qdWtrYW4ga2Fwc3llblwiLFxuICAgIGljb25OYW1lOiBcIk5hbWEgaWtvblwiLFxuICAgIGljb25TaXplOiBcIlNhaXogaWtvblwiXG4gIH1cbn07XG5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wibXNcIl0gPSBtc1N0cmluZ3M7XG4iLCIvLyBVbmNvbW1lbnQgdGhlIGxpbmUgYmVsb3cgaWYgeW91IGNyZWF0ZSBhIGN1c3RvbSBkaWN0aW9uYXJ5XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbmV4cG9ydCB2YXIgbW5TdHJpbmdzID0ge1xuICAvLyBzdXJ2ZXkgdGVtcGxhdGVzXG4gIHN1cnZleToge1xuICAgIGVkaXQ6IFwi0JfQsNGB0LDRhVwiLFxuICAgIGV4dGVybmFsSGVscExpbms6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsCDSr9Kv0YHQs9GN0YUg0LfQsNCw0LLQsNGA0YLQsNC5INGC0LDQvdC40LvRhtCw0YVcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rVXJsOlxuICAgICAgXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSDJydTlva0ljb29OWmZwSWJ5cTRxUT92aWV3X2FzPXN1YnNjcmliZXJcIixcbiAgICBkcm9wUXVlc3Rpb246IFwi0KXRjdGA0Y3Qs9C70q/Sr9GA0Y3RjdGBINCw0YHRg9GD0LvRgiDQvdGN0LzQvdGNINKv0q9cIixcbiAgICBhZGRMb2dpY0l0ZW06IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INGD0YDRgdCz0LDQu9GL0LMg06nTqdGA0YfQu9Op0YUg0LTSr9GA0Y3QvCDSr9Kv0YHQs9GN0L3RjSDSr9KvLlwiLFxuICAgIGNvcHk6IFwi0KXRg9GD0LvQsNGFXCIsXG4gICAgZHVwbGljYXRlOiBcItCl0YPRg9C70LHQsNGA0LvQsNGFXCIsXG4gICAgYWRkVG9Ub29sYm94OiBcItCl0Y3RgNGN0LPQu9Kv0q/RgNGCINC90Y3QvNGN0YVcIixcbiAgICBkZWxldGVQYW5lbDogXCLQn9Cw0L3QtdC7INGD0YHRgtCz0LDRhVwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcItCQ0YHRg9GD0LvRgiDRg9GB0YLQs9Cw0YVcIixcbiAgICBjb252ZXJ0VG86IFwi0KXRg9Cy0LjRgNCz0LDRhVwiLFxuICAgIGRyYWc6IFwi0KfQuNGA0Y3RhVwiLFxuICAgIGxpY2Vuc2U6XG4gICAgICBcIlBMRUFTRSBQVVJDSEFTRSBBIERFVkVMT1BFUiBMSUNFTlNFIFRPIEJFIEFCTEUgVE8gVVNFIFNVUlZFWSBDUkVBVE9SIElOIFlPVVIgQVBQXCIsXG4gIH0sXG4gIC8vIFF1ZXN0aW9uIHR5cGVzXG4gIHF0OiB7XG4gICAgZGVmYXVsdDogXCLQndGN0LMg0YHQvtC90LPQvtC70YLRgtC+0LlcIixcbiAgICBjaGVja2JveDogXCLQntC70L7QvSDRgdC+0L3Qs9C+0LvRgtGC0L7QuVwiLFxuICAgIGNvbW1lbnQ6IFwi0J3RjdGN0LvRgtGC0Y3QuVwiLFxuICAgIGltYWdlcGlja2VyOiBcItCX0YPRgNCw0LMg0YHQvtC90LPQvtGFXCIsXG4gICAgcmFua2luZzogXCLQlNGN0YEg0LTQsNGA0LDQsNC70LDQu9C0INC+0YDRg9GD0LvQsNGFXCIsXG4gICAgaW1hZ2U6IFwi0JfRg9GA0LDQs1wiLFxuICAgIGRyb3Bkb3duOiBcItCh0L7QvdCz0L7Qu9GC0YLQvtC5INCw0YHRg9GD0LzQtlwiLFxuICAgIHRhZ2JveDogXCJUYWcgQm94XCIsXG4gICAgZmlsZTogXCLQpNCw0LnQu1wiLFxuICAgIGh0bWw6IFwiSFRNTFwiLFxuICAgIG1hdHJpeDogXCLQndGN0LMg0YHQvtC90LPQvtC70YLRgtC+0YIg0LzQsNGC0YDQuNGGXCIsXG4gICAgbWF0cml4ZHJvcGRvd246IFwi0J7Qu9C+0L0g0YHQvtC90LPQvtC70YLQvtGCINC80LDRgtGA0LjRhlwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwi0JTQuNC90LDQvNC40Log0LzQsNGC0YDQuNGGXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcItCe0LvQvtC9INCx0LjRh9C40LvRglwiLFxuICAgIHBhbmVsOiBcItCf0LDQvdC10LtcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwi0JTQuNC90LDQvNC40Log0L/QsNC90LXQu1wiLFxuICAgIHJhZGlvZ3JvdXA6IFwiUmFkaW9ncm91cFwiLFxuICAgIHJhdGluZzogXCLSrtC90Y3Qu9GN0YVcIixcbiAgICB0ZXh0OiBcItCR0L7Qs9C40L3QviDRhdCw0YDQuNGD0LvRgtGC0LDQuSBcIixcbiAgICBib29sZWFuOiBcItCi0LjQudC8L9Ku0LPSr9C5XCIsXG4gICAgZXhwcmVzc2lvbjogXCLQmNC70Y3RgNGF0LjQudC70Y3QuyAo0LfTqdCy0YXTqdC9INGD0L3RiNC40YUpXCIsXG4gICAgc2lnbmF0dXJlcGFkOiBcItCT0LDRgNGL0L0g0q/RgdGN0LNcIixcbiAgICBidXR0b25ncm91cDogXCLQkdCw0LPRhiDRgtC+0LLRh1wiLFxuICB9LFxuICAvLyBTdHJpbmdzIGluIFN1cnZleUpTIENyZWF0b3JcbiAgZWQ6IHtcbiAgICBkZWZhdWx0TG9jYWxlOiBcItKu0L3QtNGB0Y3QvSAoezB9KVwiLFxuICAgIHN1cnZleTogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9CwXCIsXG4gICAgc2V0dGluZ3M6IFwi0KLQvtGF0LjRgNCz0L7QvlwiLFxuICAgIHNldHRpbmdzVG9vbHRpcDogXCLQotC+0YXQuNGA0LPQvtC+0LMg0L3RjdGN0YVcIixcbiAgICBzdXJ2ZXlTZXR0aW5nczogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9GL0L0g0YLQvtGF0LjRgNCz0L7QvlwiLFxuICAgIHN1cnZleVNldHRpbmdzVG9vbHRpcDogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9GL0L0g0YLQvtGF0LjRgNCz0L7QvtCzINC90Y3RjdGFXCIsXG4gICAgc2hvd1BhbmVsOiBcItCf0LDQvdC10Lsg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIGhpZGVQYW5lbDogXCLQn9Cw0L3QtdC7INC90YPRg9GFXCIsXG4gICAgcHJldlNlbGVjdGVkOiBcItOo0LzQvdOp0YXQuNC50LMg0YHQvtC90LPQvtGFXCIsXG4gICAgbmV4dFNlbGVjdGVkOiBcItCU0LDRgNCw0LDQs9C40LnQvdGF0YvQsyDRgdC+0L3Qs9C+0YVcIixcbiAgICBzdXJ2ZXlUeXBlTmFtZTogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9CwXCIsXG4gICAgcGFnZVR5cGVOYW1lOiBcItCl0YPRg9C00LDRgVwiLFxuICAgIHBhbmVsVHlwZU5hbWU6IFwi0J/QsNC90LXQu1wiLFxuICAgIHF1ZXN0aW9uVHlwZU5hbWU6IFwi0JDRgdGD0YPQu9GCXCIsXG4gICAgY29sdW1uVHlwZU5hbWU6IFwi0JHQsNCz0LDQvdCwXCIsXG4gICAgYWRkTmV3UGFnZTogXCLQqNC40L3RjSDRhdGD0YPQtNCw0YEg0L3RjdC80Y3RhVwiLFxuICAgIG1vdmVSaWdodDogXCLQkdCw0YDRg9GD0L0g0YLQuNC50Ygg0LPSr9C50LvQs9GN0YVcIixcbiAgICBtb3ZlTGVmdDogXCLQl9Kv0q/QvSDRgtC40LnRiCDQs9Kv0LnQu9Cz0Y3RhVwiLFxuICAgIGRlbGV0ZVBhZ2U6IFwi0KXRg9GD0LTQsNGBINGD0YHRgtCz0LDRhVwiLFxuICAgIGVkaXRQYWdlOiBcItCl0YPRg9C00LDRgSDQt9Cw0YHQstCw0YDQu9Cw0YVcIixcbiAgICBlZGl0OiBcItCX0LDRgdCw0YVcIixcbiAgICBuZXdQYWdlTmFtZTogXCLQpdGD0YPQtNCw0YFcIixcbiAgICBuZXdRdWVzdGlvbk5hbWU6IFwi0JDRgdGD0YPQu9GCXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcItCf0LDQvdC10LvQuNC50L0g0L3RjdGAXCIsXG4gICAgbmV3VGV4dEl0ZW1OYW1lOiBcItCi0LXQutGB0YJcIixcbiAgICB0ZXN0U3VydmV5OiBcItCj0YDRjNC00YfQuNC70LDQvSDRhdCw0YDQsNGFXCIsXG4gICAgZGVmYXVsdFYyVGhlbWU6IFwi0q7QvdC00YHRjdC9XCIsXG4gICAgbW9kZXJuVGhlbWU6IFwi0J7RgNGH0LjQudC9INKv0LXQuNC50L1cIixcbiAgICBkZWZhdWx0VGhlbWU6IFwi0q7QvdC00YHRjdC9IChsZWdhY3kpXCIsXG4gICAgdGVzdFN1cnZleUFnYWluOiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0YvQsyDQtNCw0YXQuNC9INGD0YDRjNC00YfQuNC70LDQvSDRhdCw0YDQsNGFXCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0YvQvSDTqdGA0LPTqdC9OiBcIixcbiAgICBuYXZpZ2F0ZVRvTXNnOiBcIllvdSBoYWQgdG8gbmF2aWdhdGUgdG9cIixcbiAgICBsb2dpYzogXCLQm9C+0LPQuNC6XCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9CzINC+0YDRg9GD0LvQsNGFXCIsXG4gICAgdHJhbnNsYXRpb246IFwi0J7RgNGH0YPRg9C70LPQsFwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsCDRhdCw0LTQs9Cw0LvQsNGFXCIsXG4gICAgc2F2ZVN1cnZleVRvb2x0aXA6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsCDRhdCw0LTQs9Cw0LvQsNGFXCIsXG4gICAgZGVzaWduZXI6IFwi0KPQtNC40YDQtNC70LDQs9CwXCIsXG4gICAganNvbkVkaXRvcjogXCJKU09OINC30LDRgdCy0LDRgNC70LDQs9GHXCIsXG4gICAganNvbkhpZGVFcnJvcnM6IFwi0JDQu9C00LDQsNCzINC90YPRg9GFXCIsXG4gICAganNvblNob3dFcnJvcnM6IFwi0JDQu9C00LDQsNCzINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICB1bmRvOiBcItCR0YPRhtCw0LDRhVwiLFxuICAgIHJlZG86IFwi0JTQsNGF0LjRhVwiLFxuICAgIHVuZG9Ub29sdGlwOiBcItCh0q/Sr9C70LjQudC9INOp06nRgNGH0LvTqdC70YLQuNC50LMg0LHRg9GG0LDQsNGFXCIsXG4gICAgcmVkb1Rvb2x0aXA6IFwi0KHSr9Kv0LvQuNC9INOp06nRgNGH0LvTqdC70YLQuNC50LMg0LTQsNGF0LjRhSBcIixcbiAgICBzaG93TW9yZUNob2ljZXM6IFwi0JTRjdC70LPRjdGA0Y3QvdCz0q/QuSDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgc2hvd0xlc3NDaG9pY2VzOiBcItCR0LDQs9CwINC80Y3QtNGN0Y3Qu9GN0Lsg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIGNvcHk6IFwi0KXRg9GD0LvQsNGFXCIsXG4gICAgY3V0OiBcItCi0LDRgdC70LDRhVwiLFxuICAgIHBhc3RlOiBcItCR0YPRg9C70LPQsNGFXCIsXG4gICAgY29weVRvb2x0aXA6IFwi0KHQsNC80LHQsNGA0LDQsNGBINGB0L7QvdCz0L7Qs9C00YHQvtC9INGF0Y3RgdCz0LjQudCzINGF0YPRg9C70LDRhVwiLFxuICAgIGN1dFRvb2x0aXA6IFwi0KHQsNC80LHQsNGA0LDQsNGBINGB0L7QvdCz0L7Qs9C00YHQvtC9INGF0Y3RgdCz0LjQudCzINGC0LDRgdC70LDRhVwiLFxuICAgIHBhc3RlVG9vbHRpcDogXCLQodCw0LzQsdCw0YDQsNCw0YEg0LHRg9GD0LvQs9Cw0YVcIixcbiAgICBvcHRpb25zOiBcItCi0L7RhdC40YDQs9C+0L5cIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCLQkdC+0LTQuNGCIEpTT04g0q/Sr9GB0LPRjdGFXCIsXG4gICAgZ2VuZXJhdGVSZWFkYWJsZUpTT046IFwi0J7QudC70LPQvtC80LbRgtC+0LkgSlNPTiDSr9Kv0YHQs9GN0YVcIixcbiAgICB0b29sYm94OiBcItCl0Y3RgNGN0LPQu9Kv0q/RgFwiLFxuICAgIFwicHJvcGVydHktZ3JpZFwiOiBcItOo0LzQvdOp0YVcIixcbiAgICBwcm9wZXJ0eUdyaWRGaWx0ZXJlZFRleHRQbGFjZWhvbGRlcjogXCLQpdCw0LnRhdGL0L0g0YLRg9C70LQg0LHQuNGH0L3RjSDSr9KvLi4uLi5cIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcItCV0YDTqdC90YXQuNC5XCIsXG4gICAgdG9vbGJveENob2ljZUNhdGVnb3J5OiBcItCh0L7QvdCz0L7Qu9GC0YLQvtC5INCw0YHRg9GD0LvRgtGD0YPQtFwiLFxuICAgIHRvb2xib3hUZXh0Q2F0ZWdvcnk6IFwi0KXQsNGA0LjRg9C70YIg0LHQuNGH0LjRhSDQsNGB0YPRg9C70YLRg9GD0LRcIixcbiAgICB0b29sYm94Q29udGFpbmVyc0NhdGVnb3J5OiBcItCh0LDQslwiLFxuICAgIHRvb2xib3hNYXRyaXhDYXRlZ29yeTogXCLQnNCw0YLRgNC40YbQsNC9INCw0YHRg9GD0LvRgtGD0YPQtFwiLFxuICAgIHRvb2xib3hNaXNjQ2F0ZWdvcnk6IFwi0JHRg9GB0LDQtFwiLFxuICAgIGNvcnJlY3RKU09OOiBcIkpTT04g0LfQsNGB0L3QsCDRg9GDLlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INGF0LDRgNC40YNcIixcbiAgICBzdXJ2ZXlSZXN1bHRzVGFibGU6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INGF0LDRgNC40YPQu9GC0YvQsyDRhdKv0YHQvdGN0LPRgtGN0Y3RgCDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgc3VydmV5UmVzdWx0c0pzb246IFwiQXMgSlNPTlwiLFxuICAgIHJlc3VsdHNUaXRsZTogXCLQkNGB0YPRg9C70YLRi9C9INCz0LDRgNGH0LjQs1wiLFxuICAgIHJlc3VsdHNOYW1lOiBcItCQ0YHRg9GD0LvRgtGL0L0g0L3RjdGAXCIsXG4gICAgcmVzdWx0c1ZhbHVlOiBcItCl0LDRgNC40YPQu9GC0YvQvSDRg9GC0LPQsFwiLFxuICAgIHJlc3VsdHNEaXNwbGF5VmFsdWU6IFwi0KPRgtCz0LAg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIG1vZGlmaWVkOiBcItOo06nRgNGH0LvTqdC70YIg0L7RgNGB0L7QvVwiLFxuICAgIHNhdmluZzogXCLQpdCw0LTQs9Cw0LvQtiDQsdCw0LnQvdCwXCIsXG4gICAgc2F2ZWQ6IFwi0KXQsNC00LPQsNC70YHQsNC9XCIsXG4gICAgcHJvcGVydHlFZGl0b3JFcnJvcjogXCLQkNC70LTQsNCwXCIsXG4gICAgc2F2ZUVycm9yOiBcItCQ0LvQtNCw0LAhINCX0LDRgdGB0LDQvSDQsNCz0YPRg9C70LPQsCDRhdCw0LTQs9Cw0LvQsNCz0LTQsNCw0LPSr9C5INCx0LDQudC90LAuXCIsXG4gICAgdHJhbnNsYXRpb25Qcm9wZXJ0eUdyaWRUaXRsZTogXCLQpdGN0LvQvdC40Lkg0YLQvtGF0LjRgNCz0L7QvlwiLFxuICAgIHRyYW5zbGF0aW9uTGFuZ3VhZ2VzOiBcItCl0Y3Qu1wiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwi0J7RgNGH0YPRg9C70LDRhSDRhdGN0LvQuNC50LMg0YHQvtC90LPQvtC90L4g0YPRg1wiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwi0JHSr9GFINGC0LXQutGB0YJcIixcbiAgICB0cmFuc2xhdGlvblNob3dVc2VkU3RyaW5nc09ubHk6IFwi0JfTqdCy0YXTqdC9INCx0LDQudCz0LDQsCDRgtC10LrRgdGC0q/Sr9C0XCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsUGFnZXM6IFwi0JHSr9GFINGF0YPRg9C00LDRgVwiLFxuICAgIHRyYW5zbGF0aW9uTm9TdHJpbmdzOiBcItCe0YDRh9GD0YPQu9Cw0YUg0LfSr9C50Lsg0LHQsNC50YXQs9Kv0LkuINCo0q/Sr9C70YLQuNC50LMg06nTqdGA0YfQuNC70L3TqSDSr9KvLlwiLFxuICAgIHRyYW5zbGF0aW9uRXhwb3J0VG9TQ1ZCdXR0b246IFwiQ1NWINGN0LrRgdC/0L7RgNGCINGF0LjQudGFXCIsXG4gICAgdHJhbnNsYXRpb25JbXBvcnRGcm9tU0NWQnV0dG9uOiBcIkNTViDQuNC80L/QvtGA0YIg0YXQuNC50YVcIixcbiAgICB0cmFuc2xhdGlvbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQ6IFwiezB9LdCzINGB0YPRg9GA0Ywg0YXRjdC70YLRjdC5INC90Y3Qs9GC0LPRjdGFXCIsXG4gICAgdHJhbnNsYXRpb25QbGFjZUhvbGRlcjogXCLQntGA0YfRg9GD0LvQs9CwLi4uXCIsXG4gICAgYm9sZDogXCLQotC+0LRcIixcbiAgICBpdGFsaWM6IFwi0J3QsNC70YPRg1wiLFxuICAgIHVuZGVybGluZTogXCLQlNC+0L7Qs9GD0YPRgCDQt9GD0YDQsNCw0YFcIixcbiAgICBhZGROZXdRdWVzdGlvbjogXCLQkNGB0YPRg9C70YIg0L3RjdC80Y3RhVwiLFxuICAgIHNlbGVjdFBhZ2U6IFwi0KXRg9GD0LTQsNGBINGB0L7QvdCz0L7RhS4uLlwiLFxuICAgIGh0bWxQbGFjZUhvbGRlcjogXCJIVE1MINCw0LPRg9GD0LvQs9CwINGN0L3QtCDQsdCw0LnRgNC70LDQvdCwLlwiLFxuICAgIHBhbmVsUGxhY2VIb2xkZXI6IFwi0K3QvdC0INGF0Y3RgNGN0LPQu9Kv0q/RgNGN0Y3RgSDQsNGB0YPRg9C70YIg0YfQuNGA0L3RjSDSr9KvLlwiLFxuICAgIHN1cnZleVBsYWNlSG9sZGVyOlxuICAgICAgXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9CwINGF0L7QvtGB0L7QvSDQsdCw0LnQvdCwLiDQpdGN0YDRjdCz0LvSr9Kv0YDRjdGN0YEg0LDRgdGD0YPQu9GCINGH0LjRgNC90Y0g0q/SryDRjdGB0LLRjdC7INC00L7QvtGA0YUg0YLQvtCy0YfQuNC50LMg0LTQsNGA0L3QsCDRg9GDLlwiLFxuICAgIGFkZE5ld1R5cGVRdWVzdGlvbjogXCJ7MH0g0L3RjdC80Y3RhVwiLCAvL3swfSBpcyBsb2NhbGl6YWJsZSBxdWVzdGlvbiB0eXBlXG4gICAgY2hvb3NlTG9nb1BsYWNlaG9sZGVyOiBcIlvQm9C+0LPQvl1cIixcbiAgICBhdXRvOiBcItCw0LLRgtC+0LzQsNGCXCIsXG4gICAgY2hvaWNlc19JdGVtOiBcItCl0Y3RgdGN0LMgXCIsXG4gICAgbGc6IHtcbiAgICAgIGFkZE5ld0l0ZW06IFwi0KjQuNC90Y0g0LTSr9GA0Y3QvCDQvdGN0LzRjdGFXCIsXG4gICAgICBlbXB0eV90YWI6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INGD0YDRgdCz0LDQu9GL0LMg06nTqdGA0YfQu9Op0YUg0LTSr9GA0Y3QvCDSr9Kv0YHQs9GN0L3RjSDSr9KvLlwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5TmFtZTogXCLQpdGD0YPQtNCw0YEg0YXQsNGA0YPRg9C70LDRhSAo0L3Rg9GD0YUpXCIsXG4gICAgICBwYWdlX2VuYWJsZU5hbWU6IFwi0KXRg9GD0LTQsNGBINC40LTRjdCy0YXQttKv0q/Qu9GN0YUgKNC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtGFKVwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eU5hbWU6IFwi0J/QsNC90LXQuyAo0L3Rg9GD0YUpINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICAgIHBhbmVsX2VuYWJsZU5hbWU6IFwi0J/QsNC90LXQuyAo0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0YUpINC40LTRjdCy0YXQttKv0q/Qu9GN0YVcIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlOYW1lOiBcItCQ0YHRg9GD0LvRgiDRhdCw0YDRg9GD0LvQsNGFICjQvdGD0YPRhSlcIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZU5hbWU6IFwi0JDRgdGD0YPQu9GCINC40LTRjdCy0YXQttKv0q/Qu9GN0YUgKNC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtGFKVwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZU5hbWU6IFwi0JDRgdGD0YPQu9GC0YvQsyDQt9Cw0LDQstCw0Lsg0LHTqdCz0LvTqdOp06nTqdGFINCx0L7Qu9Cz0L7RhVwiLFxuICAgICAgY29sdW1uX3Zpc2liaWxpdHlOYW1lOiBcItCR0LDQs9Cw0L3QsCDRhdCw0YDRg9GD0LvQsNGFICjQvdGD0YPRhSkuXCIsXG4gICAgICBjb2x1bW5fZW5hYmxlTmFtZTogXCLQkdCw0LPQsNC90LAg0LjQtNGN0LLRhdC20q/Sr9C70Y3RhSAo0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0YUpLlwiLFxuICAgICAgY29sdW1uX3JlcXVpcmVOYW1lOiBcItCR0LDQs9Cw0L3Ri9CzINC30LDQsNCy0LDQuyDQsdOp0LPQu9Op06nTqdOp0YUg0LHQvtC70LPQvtGFXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlTmFtZTogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9CwINC00YPRg9GB0LPQsNGFXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlTmFtZTogXCLQpdCw0YDQuNGD0LvRgiDQvtGA0YPRg9C70LDRhVwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVOYW1lOiBcItCl0LDRgNC40YPQu9GCINGF0YPRg9C70LDRhVwiLFxuICAgICAgdHJpZ2dlcl9za2lwTmFtZTogXCLQkNGB0YPRg9C70YIg0YDRg9GDINCw0LvQs9Cw0YHQsNGFXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lOiBcItCY0LvRjdGA0YXQuNC50LvQu9C40LnQsyDQsNC20LjQu9C70YPRg9C70LDRhVwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uTmFtZTpcbiAgICAgICAgJ1wi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsCDQsNC80LbQuNC70YLRgtCw0Lkg0LHTqdCz0LvTqdCz0LTRgdOp0L1cIiDRhdGD0YPQtNGB0YvQvSDRgtGN0LzQtNGN0LPQu9GN0LPRjdGN0LMg0L7RgNGD0YPQu9Cw0YUnLFxuICAgICAgcGFnZV92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwi0JvQvtCz0LjQuiDQuNC70Y3RgNGF0LjQudC70Y3QuyDQsdC40LXQu9GN0LPQtNGB0Y3QvSDRgtC+0YXQuNC+0LvQtNC+0LvQtCDRhdGD0YPQtNGB0YvQsyDRhdCw0YDRg9GD0LvQsNGFLiDQkdGD0YHQsNC0INKv0LXQtCDQvdGD0YPRhS5cIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQm9C+0LPQuNC6INC40LvRjdGA0YXQuNC50LvRjdC7INCx0LjQtdC70Y3Qs9C00YHRjdC9INGC0L7RhdC40L7Qu9C00L7Qu9C0INC/0LDQvdC10LvQuNC50LMg0YXQsNGA0YPRg9C70LDRhS4g0JHRg9GB0LDQtCDSr9C10LQg0L3Rg9GD0YUuXCIsXG4gICAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQm9C+0LPQuNC6INC40LvRjdGA0YXQuNC50LvRjdC7INCx0LjQtdC70Y3Qs9C00YHRjdC9INGC0L7RhdC40L7Qu9C00L7Qu9C0INC/0LDQvdC10Lsg0LHQsCDRgtKv0q/QvSDQtNC+0YLQvtGA0YUg0LHSr9GFINGN0LvQtdC80LXQvdGC0LjQudCzINC40LTRjdCy0YXQttKv0q/Qu9GN0YUuINCR0YPRgdCw0LQg0q/QtdC0INCx0q/Qs9C00LjQudCzINC40LTRjdCy0YXQs9Kv0Lkg0LHQsNC50LvQs9Cw0YUuXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwi0JvQvtCz0LjQuiDQuNC70Y3RgNGF0LjQudC70Y3QuyDQsdC40LXQu9GN0LPQtNGB0Y3QvSDRgtC+0YXQuNC+0LvQtNC+0LvQtCDQsNGB0YPRg9C70YLRi9CzINGF0LDRgNGD0YPQu9Cw0YUuINCR0YPRgdCw0LQg0q/QtdC0INC90YPRg9GFLlwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlRGVzY3JpcHRpb246XG4gICAgICAgIFwi0JvQvtCz0LjQuiDQuNC70Y3RgNGF0LjQudC70Y3QuyDQsdC40LXQu9GN0LPQtNGB0Y3QvSDRgtC+0YXQuNC+0LvQtNC+0LvQtCDRhdGD0YPQtNGB0YvQsyDQuNC00Y3QstGF0LbSr9Kv0LvRjdGFLiDQkdGD0YHQsNC0INKv0LXQtCDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9Cz0L7RhS5cIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQm9C+0LPQuNC6INC40LvRjdGA0YXQuNC50LvRjdC7INCx0LjQtdC70Y3Qs9C00YHRjdC9INGC0L7RhdC40L7Qu9C00L7Qu9C0INCw0YHRg9GD0LvRgiDQvdGMINC30LDQsNCy0LDQuyDQsdOp0LPQu9Op0YUg0LHQvtC70L7RhS5cIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQm9C+0LPQuNC6INC40LvRjdGA0YXQuNC50LvRjdC7INCx0LjQtdC70Y3Qs9C00YHRjdC9INGC0L7RhdC40L7Qu9C00L7Qu9C0INGB0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0LDQvNC20LjQu9GC0YLQsNC5INCx06nQs9C706nQvSDRhdGN0YDRjdCz0LvRjdCz0YcgJ9CR0LDRj9GA0LvQsNC70LDQsCcg0YXRg9GD0LTRgdGL0LMg0YXQsNGA0L3QsC5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQm9C+0LPQuNC6INC40LvRjdGA0YXQuNC50LvRjdC7INCx0LjQtdC70Y3Qs9C00YHRjdC9INGC0L7RhdC40L7Qu9C00L7Qu9C0INGB0L7QvdCz0L7RgdC+0L0g0LDRgdGD0YPQu9GC0YvQvSDRg9GC0LPRi9CzINGC0L7RhdC40YDRg9GD0LvQvdCwLlwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQm9C+0LPQuNC6INC40LvRjdGA0YXQuNC50LvRjdC7INCx0LjQtdC70Y3Qs9C00YHRjdC9INGC0L7RhdC40L7Qu9C00L7Qu9C0INGB0L7QvdCz0L7RgdC+0L0g0LDRgdGD0YPQu9GC0YvQvSDRg9GC0LPRi9CzINOp06nRgCDRgdC+0L3Qs9C+0YHQvtC9INCw0YHRg9GD0LvRgtGL0L0g0YXQsNGA0LjRg9C70YIg0LHQvtC70LPQvtC9INGF0LDRgNGD0YPQu9C90LAuXCIsXG4gICAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQm9C+0LPQuNC6INC40LvRjdGA0YXQuNC50LvRjdC7INCx0LjQtdC70Y3Qs9C00YHRjdC9INGC0L7RhdC40L7Qu9C00L7Qu9C0INGB0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0YHQvtC90LPQvtGB0L7QvSDQsNGB0YPRg9C70YLRi9CzINCw0LvQs9Cw0YHQvdCwIC8g0YXQsNGA0YPRg9C70L3QsC5cIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbkRlc2NyaXB0aW9uOlxuICAgICAgICBcItCb0L7Qs9C40Log0LjQu9GN0YDRhdC40LnQu9GN0Lsg0LHQuNC10LvRjdCz0LTRgdGN0L0g0YLQvtGF0LjQvtC70LTQvtC70LQg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC40LvRjdGA0YXQuNC50LvQu9C40LnQsyDQsNC20LjQu9C70YPRg9C70L3QsC4g0KLQsCDRjdC90Y0g0LjQu9GN0YDRhdC40LnQu9C70LjQudC9INKv0YAg0LTSr9C90LMgINGB0L7QvdCz0L7RgdC+0L0g0LDRgdGD0YPQu9GC0YvQvSDRhdCw0YDQuNGD0LvRgiDQsdC+0LvQs9C+0L3Qvi5cIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkRlc2NyaXB0aW9uOlxuICAgICAgICBcItCl0Y3RgNGN0LIg0LvQvtCz0LjQuiDQuNC70Y3RgNGF0LjQudC70Y3QuyDQsdC40LXQu9GN0LPQtNGB0Y3QvSDRgtC+0YXQuNC+0LvQtNC+0LvQtCDSr9C90LTRgdGN0L0gJ9CR0LDRj9GA0LvQsNC70LDQsCcg0YXRg9GD0LTQsNGBINC30LDQsNC2INOp0LPRgdOp0L0g0YXRg9GD0LTRgdCw0LDRgCDRgdC+0LvQuNCz0LTQvtC90L4uXCIsXG4gICAgICBpdGVtRXhwcmVzc2lvblRleHQ6IFwi0JjQu9GN0YDRhdC40LnQu9GN0Ls6ICd7MH0nINCx0LjQtdC70YHRjdC9INCx0L7Qu1wiLCAvL3swfSAtIHRoZSBleHByZXNzaW9uXG4gICAgICBpdGVtRW1wdHlFeHByZXNzaW9uVGV4dDogXCLQqNC40L3RjSDQtNKv0YDRjdC8XCIsXG4gICAgICBwYWdlX3Zpc2liaWxpdHlUZXh0OiBcItCl0YPRg9C00YHRi9CzIHswfSDRhdCw0YDQsNCz0LTQtNCw0LMg0LHQvtC70LPQvtGFXCIsIC8vezB9INGF0YPRg9C00YHRi9C9INC90Y3RgFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eVRleHQ6IFwiezB9INC/0LDQvdC10LvQuNC50LMg0YXQsNGA0LDQs9C00LTQsNCzINCx0L7Qu9Cz0L7RhVwiLCAvL3swfSDQv9Cw0L3QtdC70LjQudC9INC90Y3RgFxuICAgICAgcGFuZWxfZW5hYmxlVGV4dDogXCJ7MH0g0L/QsNC90LXQu9C40LnQsyDQuNC00Y3QstGF0LbSr9Kv0LvRjdGFXCIsIC8vezB9INC/0LDQvdC10LvQuNC50L0g0L3RjdGAXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5VGV4dDogXCJ7MH0g0LDRgdGD0YPQu9GC0YvQsyDRhdCw0YDQsNCz0LTQtNCw0LMg0LHQvtC70LPQvtGFXCIsIC8vezB9INCw0YHRg9GD0LvRgtGL0L0g0L3RjdGAXG4gICAgICBxdWVzdGlvbl9lbmFibGVUZXh0OiBcInswfSDQsNGB0YPRg9C70YLRi9CzINC40LTRjdCy0YXQttKv0q/Qu9GN0YVcIiwgLy97MH0g0LDRgdGD0YPQu9GC0YvQvSDQvdGN0YBcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVUZXh0OiBcInswfSDQsNGB0YPRg9C70YLRi9CzINC30LDQsNCy0LDQuyDQsdOp0LPQu9Op0YUg0LHQvtC70LPQvtGFXCIsIC8vezB9INCw0YHRg9GD0LvRgtGL0L0g0L3RjdGAXG4gICAgICBjb2x1bW5fdmlzaWJpbGl0eVRleHQ6IFwiezB9INCx0LDQs9Cw0L3Ri9C9IHsxfSDQsNGB0YPRg9C70YLRi9CzINGF0LDRgNCw0LPQtNC00LDQsyDQsdC+0LvQs9C+0YVcIiwgLy97MH0g0LHQsNCz0LDQvdGLINC90Y3RgCwgezF9INCw0YHRg9GD0LvRgtGL0L0g0L3RjdGAXG4gICAgICBjb2x1bW5fZW5hYmxlVGV4dDogXCJ7MH0g0LHQsNCz0LDQvdGL0L0gezF9INCw0YHRg9GD0LvRgtGL0LMg0LjQtNGN0LLRhdC20q/Sr9C70Y3RhVwiLCAvL3swfSDQsdCw0LPQsNC90Ysg0L3RjdGALCB7MX0g0LDRgdGD0YPQu9GC0YvQvSDQvdGN0YBcbiAgICAgIGNvbHVtbl9yZXF1aXJlVGV4dDogXCJ7MH0g0LHQsNCz0LDQvdGL0L0gezF9INCw0YHRg9GD0LvRgtGL0LMg0LfQsNCw0LLQsNC7INCx06nQs9C706nRhSDQsdC+0LvQs9C+0YVcIiwgLy97MH0g0LHQsNCz0LDQvdGLINC90Y3RgCwgezF9INCw0YHRg9GD0LvRgtGL0L0g0L3RjdGAXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9CwINCw0LzQttC40LvRgtGC0LDQuSDQsdOp0LPQu9Op0YHTqdC9LlwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZVRleHQ6IFwiezB9INCQ0YHRg9GD0LvRgtCw0LQg0L7RgNGD0YPQu9Cw0YUg0YPRgtCz0LA6IHsxfVwiLCAvL3swfSDQsNGB0YPRg9C70YLRi9C9INC90Y3RgCwgezF9INC+0YDRg9GD0LvQsNGFINGD0YLQs9CwXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZVRleHQ6IFwiezB9INCQ0YHRg9GD0LvRgiDRgNGD0YMg0YXRg9GD0LvQsNGFINGD0YLQs9CwOiB7MX1cIiwgLy97MH0g0LHQsCB7MX0g0LDRgdGD0YPQu9GC0YPRg9C00YvQvSDQvdGN0YBcbiAgICAgIHRyaWdnZXJfc2tpcFRleHQ6IFwiezB9INCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0YvQvSDQsNGB0YPRg9C70YIg0YDRg9GDINKv0YHRgNGN0YVcIiwgLy97MH0g0LDRgdGD0YPQu9GC0YvQvSDQvdGN0YBcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQxOiBcIid7MH0nINC40LvRjdGA0YXQuNC50LvRjdC70LMg0LDQttC40LvQu9GD0YPQu9Cw0YU6IFwiLCAvL3swfSDQuNC70Y3RgNGF0LjQudC70Y3Qu1xuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDI6IFwiINCi0q/Sr9C90LjQuSDRhdCw0YDQuNGD0LvRgtGL0LMg0LDRgdGD0YPQu9GC0LDQtCDQvtGA0YPRg9C70LDRhTogezB9XCIsIC8vezB9INCw0YHRg9GD0LvRgtGL0L0g0L3RjdGAXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25UZXh0OlxuICAgICAgICBcIifQkdCw0Y/RgNC70LDQu9Cw0LAnINGF0YPRg9C00YHQsNC90LQg0YLRg9GB0LPQsNC5INGC0LXQutGB0YIg0YXQsNGA0YPRg9C70LDRhS5cIixcbiAgICAgIHNob3dBbGxRdWVzdGlvbnM6IFwi0JHSr9GFINCw0YHRg9GD0LvRglwiLFxuICAgICAgc2hvd0FsbEFjdGlvblR5cGVzOiBcItCR0q/RhSDSr9C50LvQtNC70LjQudC9INGC06nRgNC70q/Sr9C0XCIsXG4gICAgICBjb25kaXRpb25zOiBcItCd06nRhdGG06nQuyjSr9Kv0LQpXCIsXG4gICAgICBhY3Rpb25zOiBcItKu0LnQu9C00Y3QuyjSr9Kv0LQpXCIsXG4gICAgICBleHByZXNzaW9uRWRpdG9yVGl0bGU6IFwi0J3TqdGF0YbTqdC7KNKv0q/QtCkg0YLQvtC00L7RgNGF0L7QudC70L7RhVwiLFxuICAgICAgYWN0aW9uc0VkaXRvclRpdGxlOiBcItKu0LnQu9C00Y3QuyjSr9Kv0LQpINGC0L7QtNC+0YDRhdC+0LnQu9C+0YVcIixcbiAgICAgIGRlbGV0ZUFjdGlvbjogXCLSrtC50LvQtNC70LjQudCzINGD0YHRgtCz0LDRhVwiLFxuICAgICAgYWRkTmV3QWN0aW9uOiBcItKu0LnQu9C00Y3QuyDQvdGN0LzRjdGFXCIsXG4gICAgICBzZWxlY3RlZEFjdGlvbkNhcHRpb246IFwi0q7QudC70LTRjdC7INGB0L7QvdCz0L7RhS4uLlwiLFxuICAgICAgZXhwcmVzc2lvbkludmFsaWQ6XG4gICAgICAgIFwi0JvQvtCz0LjQuiDQuNC70Y3RgNGF0LjQudC70Y3QuyDRhdC+0L7RgdC+0L0g0Y3RgdCy0Y3QuyDQsNC70LTQsNCw0YLQsNC5INCx0LDQudC90LAuINCX0LDRgdC90LAg0YPRgy5cIixcbiAgICAgIG5vQWN0aW9uRXJyb3I6IFwi0K/QtNCw0LYg0L3RjdCzINKv0LnQu9C00Y3QuyDQvtGA0YPRg9C70L3QsCDRg9GDLlwiLFxuICAgICAgYWN0aW9uSW52YWxpZDogXCLSrtC50LvQtNGN0Lso0q/Sr9C0KS3QuNC50L3RhdGN0Y0g0LDRgdGD0YPQtNC70YvQsyDRiNC40LnQtNC90Y0g0q/Sry5cIixcbiAgICAgIHVuY29tcGxldGVkUnVsZV90aXRsZTogXCLQotCw0LHRi9CzINC+0YDRhdC40YUg0YPRgz9cIixcbiAgICAgIHVuY29tcGxldGVkUnVsZV90ZXh0OlxuICAgICAgICBcItCd0Y3QsyDRjdGB0LLRjdC7INC+0LvQvtC9INC70L7Qs9C40Log0LTSr9GA0Y3QvCDQtNGD0YLRg9GDINCx0LjRh9C40LPQtNGB0Y3QvSDQsdCw0LnQvdCwLiDQotCw0LHRi9CzINGF0LDQsNCy0LDQuywg0L7RgNGD0YPQu9GB0LDQvSDQt9Cw0YHQstCw0YDRg9GD0LQg0LDRgNC40LvQvdCwLiDQotCwINGC0LDQsdGL0LMg0YXQsNCw0YXQtNCw0LAg0LjRgtCz0Y3Qu9GC0Y3QuSDQsdCw0LnQvdCwINGD0YM/XCIsXG4gICAgICB1bmNvbXBsZXRlZFJ1bGVfYXBwbHk6IFwi0KLQuNC50LxcIixcbiAgICAgIHVuY29tcGxldGVkUnVsZV9jYW5jZWw6IFwi0q7Qs9Kv0LksINC00q/RgNC80LjQudCzINKv0YDQs9GN0LvQttC70q/Sr9C70LYg0LHQuNGH0LjQtiDQtNGD0YPRgdCz0LDRhS5cIixcbiAgICAgIGV4cHJlc3Npb25TZXR1cDogXCJcIixcbiAgICAgIGFjdGlvbnNTZXR1cDogXCJcIixcbiAgICB9LFxuICB9LFxuICAvLyBQcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwi0KXRjdGA0Y3Qs9C20q/Sr9C7XCIsXG4gICAgb2s6IFwiT0tcIixcbiAgICBzYXZlOiBcItCl0LDQtNCz0LDQu9Cw0YVcIixcbiAgICBjbGVhcjogXCLQptGN0LLRjdGA0LvRjdGFXCIsXG4gICAgc2F2ZVRvb2x0aXA6IFwi0KXQsNC00LPQsNC70LDRhVwiLFxuICAgIGNhbmNlbDogXCLQkdC+0LvQuNGFXCIsXG4gICAgc2V0OiBcItCi0LDQsNGA0YPRg9C70LDRhVwiLFxuICAgIHJlc2V0OiBcItCo0LjQvdGN0Y3RgCDRgtC+0YXQuNGA0YPRg9C70LDRhVwiLFxuICAgIGNoYW5nZTogXCLQodC+0LvQuNGFXCIsXG4gICAgcmVmcmVzaDogXCLQqNC40L3RjdGH0LvRjdGFXCIsXG4gICAgY2xvc2U6IFwi0KXQsNCw0YVcIixcbiAgICBkZWxldGU6IFwi0KPRgdGC0LPQsNGFXCIsXG4gICAgYWRkOiBcItCd0Y3QvNGN0YVcIixcbiAgICBhZGROZXc6IFwi0J3RjdC80Y3RhVwiLFxuICAgIGFkZEl0ZW06IFwi0KXRjdGB0Y3QsyDQvdGN0LzRjdGFINCx0L7QuyDQtNCw0YDQsNGFLi4uXCIsXG4gICAgcmVtb3ZlSXRlbTogXCLQpdGN0YHRjdCzINGD0YHRgtCz0LDRhSDQsdC+0Lsg0LTQsNGA0LDRhS4uLlwiLFxuICAgIGRyYWdJdGVtOiBcItCl0Y3RgdCz0LjQudCzINGH0LjRgNGN0YVcIixcbiAgICBhZGRPdGhlcjogXCLQkdGD0YHQsNC0XCIsXG4gICAgYWRkU2VsZWN0QWxsOiBcItCR0q/Qs9C00LjQudCzINGB0L7QvdCz0L7RhVwiLFxuICAgIGFkZE5vbmU6IFwi0JDQu9GMINC90Ywg0Ycg0LHQuNGIXCIsXG4gICAgcmVtb3ZlQWxsOiBcItCR0q/Qs9C00LjQudCzINGD0YHRgtCz0LDRhVwiLFxuICAgIGVkaXQ6IFwi0JfQsNGB0LDRhVwiLFxuICAgIGJhY2s6IFwi0KXQsNC00LPQsNC70LDRhdCz0q/QudCz0Y3RjdGAINCx0YPRhtCw0YVcIixcbiAgICBiYWNrVG9vbHRpcDogXCLQpdCw0LTQs9Cw0LvQsNGF0LPSr9C50LPRjdGN0YAg0LHRg9GG0LDRhVwiLFxuICAgIHNhdmVBbmRCYWNrOiBcItCl0LDQtNCz0LDQu9Cw0LDQtCDQsdGD0YbQsNGFXCIsXG4gICAgc2F2ZUFuZEJhY2tUb29sdGlwOiBcItCl0LDQtNCz0LDQu9Cw0LDQtCDQsdGD0YbQsNGFXCIsXG4gICAgZG9uZUVkaXRpbmc6IFwi0JHQvtC70YHQvtC9XCIsXG4gICAgZWRpdENob2ljZXM6IFwi0KHQvtC90LPQvtC70YLRg9GD0LTRi9CzINC30LDRgdCw0YVcIixcbiAgICBzaG93Q2hvaWNlczogXCLQodC+0L3Qs9C+0LvRgtGD0YPQtNGL0LMg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIG1vdmU6IFwi0KjQuNC70LbSr9Kv0LvRjdGFXCIsXG4gICAgZW1wdHk6IFwiPNGF0L7QvtGB0L7QvT5cIixcbiAgICBlbXB0eVZhbHVlOiBcItCj0YLQs9CwINGF0L7QvtGB0L7QvSDQsdCw0LnQvdCwXCIsXG4gICAgZmFzdEVudHJ5OiBcItCT0LDRgNCw0LDRgCDQvtGA0YPRg9C70LDRhVwiLFxuICAgIGZhc3RFbnRyeU5vblVuaXF1ZUVycm9yOiBcIid7MH0nINGD0YLQs9CwINC00LDQstGC0LDQs9C00LDQtiDQsdCw0LnQvdCwIVwiLFxuICAgIGZhc3RFbnRyeUNob2ljZXNDb3VudEVycm9yOiBcItCl0Y3RgdCz0LjQudCzIHswfS3QvtC+0YEgezF9INGF0q/RgNGC0Y3QuyDRhdGP0LfQs9Cw0LDRgNC70LDRhVwiLFxuICAgIGZhc3RFbnRyeVBsYWNlaG9sZGVyOlxuICAgICAgXCLQotCwINC00LDRgNCw0LDRhSDRhNC+0YDQvNCw0YLRi9C9INC00LDQs9GD0YMg06nQs9Op0LPQtNC70LjQudCzINC+0YDRg9GD0LvQtiDQsdC+0LvQvdC+OlxcbnZhbHVlMXx0ZXh0XFxudmFsdWUyXCIsXG4gICAgZm9ybUVudHJ5OiBcItCc0LDRj9Cz0YIg0L7RgNGD0YPQu9Cw0YVcIixcbiAgICB0ZXN0U2VydmljZTogXCLSrtC50LvRh9C40LvQs9GN0Y3QsyDRgtGD0YDRiNC40YVcIixcbiAgICBpdGVtU2VsZWN0b3JFbXB0eTogXCLQrdC70LXQvNC10L3RgiDRgdC+0L3Qs9C+0L3QviDRg9GDXCIsXG4gICAgY29uZGl0aW9uQWN0aW9uRW1wdHk6IFwi0q7QudC70LTRjdC7INGB0L7QvdCz0L7QvdC+INGD0YNcIixcbiAgICBjb25kaXRpb25TZWxlY3RRdWVzdGlvbjogXCLQkNGB0YPRg9C70YIg0YHQvtC90LPQvtGFLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFnZTogXCLQpdGD0YPQtNCw0YEg0YHQvtC90LPQvtGFLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFuZWw6IFwi0J/QsNC90LXQuyDRgdC+0L3Qs9C+0YUuLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwi0KPRgtCz0LAg0L7RgNGD0YPQu9Cw0YUv0YHQvtC90LPQvtGFXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcItCT0L7RkSDRhdCw0LDQu9GCINCw0YjQuNCz0LvQsNC9INGF0LDRgNC40YPQu9GCINGF0LDRgNCw0YU6IGB7cXVlc3Rpb24xfSArIHtxdWVzdGlvbjJ9YC4g0JzTqdC9INGC0L7QvNGK0ZHQviDQtNCw0YDQsNCw0YUg0LHQvtC70L7QvSDQsdGD0YHQsNC0INGE0YPQvdC60YbQuNC50LMg0LTRjdC80LbQtNGN0LM6IGBpaWYoKWAsIGB0b2RheSgpYCwgYGFnZSgpYCwgYG1pbigpYCwgYG1heCgpYCwgYGNvdW50KClgLCBgYXZnKClgXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCJjdHJsK3NwYWNlINC00LDRgNC2INC40LvRjdGA0YXQuNC50LvRjdC7INCx0LjQtdC70Y3Qs9C00Y3RhSDRgdCw0L3Rg9GD0LvQs9CwINGF0LDRgNCw0YUuXCIsXG4gICAgYWNlRWRpdG9yUm93VGl0bGU6IFwi0KLRg9GF0LDQudC9INC806nRgFwiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwi0KLRg9GF0LDQudC9INC/0LDQvdC10LtcIixcbiAgICBzaG93TW9yZTogXCLQlNGN0LvQs9GN0YDRjdC90LPSr9C5INC80Y3QtNGN0Y3Qu9C70LjQudCzINCx0LDRgNC40LzRgiDQsdC40YfQs9GN0Y3RgSDQsNCy0L3QsCDRg9GDLlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcItCR0L7Qu9C+0LzQttGC0L7QuSDQsNGB0YPRg9C70YLRg9GD0LRcIixcbiAgICBjZWxsc0VtcHR5Um93c0NvbHVtbnM6IFwi0JHQsNCz0LDQtNCw0LAg0L3RjdCzINCx0LDQs9Cw0L3QsCDRjdGB0LLRjdC7INC806nRgCDQsdCw0LnRhSDRkdGB0YLQvtC5XCIsXG4gICAgc2hvd1ByZXZpZXdCZWZvcmVDb21wbGV0ZTpcbiAgICAgIFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsCDRj9Cy0YPRg9C70YXQsNCw0YEg06nQvNC906kg0YXQsNGA0LjRg9C70YLRg9GD0LTRi9CzINGD0YDRjNC00YfQuNC70LYg0YXQsNGA0LDRhVwiLFxuICAgIHByb3BlcnR5SXNFbXB0eTogXCLQo9GC0LPQsCDQvtGA0YPRg9C70L3QsCDRg9GDXCIsXG4gICAgcHJvcGVydHlJc05vVW5pcXVlOiBcItCU0LDRhdC40L0g0LTQsNCy0YLQsNCz0LTQsNGF0LPSr9C5INGD0YLQs9CwINC+0YDRg9GD0LvQvdCwINGD0YNcIixcbiAgICBwcm9wZXJ0eU5hbWVJc05vdFVuaXF1ZTogXCLTqNOp0YAg0L3RjdGAINC+0YDRg9GD0LvQvdCwINGD0YNcIixcbiAgICBsaXN0SXNFbXB0eTogXCLQntC00L7QvtCz0L7QvtGAINGP0LzQsNGAINGHINC30q/QudC7INC+0YDQvtC+0LPSr9C5INCx0LDQudC90LBcIixcbiAgICBcImxpc3RJc0VtcHR5QGNob2ljZXNcIjogXCLQntC00L7QvtCz0L7RgCDRj9C80LDRgCDRhyDRgdC+0L3Qs9C+0LvRgiDQvtGA0L7QvtCz0q/QuSDQsdCw0LnQvdCwXCIsXG4gICAgXCJhZGROZXdAY2hvaWNlc1wiOiBcItCh0L7QvdCz0L7Qu9GCINC+0YDRg9GD0LvQsNGFXCIsXG4gICAgZXhwcmVzc2lvbklzRW1wdHk6IFwi0KLQvtC80YrRkdC+INGF0L7QvtGB0L7QvSDQsdCw0LnQvdCwXCIsXG4gICAgdmFsdWU6IFwi0KPRgtCz0LBcIixcbiAgICB0ZXh0OiBcItCi0LXQutGB0YJcIixcbiAgICByb3dpZDogXCLQnNOp0YDQvdC40LkgSURcIixcbiAgICBpbWFnZUxpbms6IFwi0JfRg9GA0LDQsyDRjdGB0LLRjdC7INCy0LjQtNC10L4g0LvQuNC90LpcIixcbiAgICBjb2x1bW5FZGl0OiBcItCR0LDQs9Cw0L3QsCDQt9Cw0YHQsNGFOiB7MH1cIixcbiAgICBpdGVtRWRpdDogXCLQl9Kv0LnQuyDQt9Cw0YHQsNGFOiB7MH1cIixcbiAgICB1cmw6IFwi0q7QudC70YfQuNC70LPRjdGN0L3QuNC5INC70LjQvdC6XCIsXG4gICAgcGF0aDogXCLSrtC50LvRh9C40LvQs9GN0L3QuNC5INGF0q/RgNGN0Y3QvdC0INOp0LPTqdCz0LTTqdC70LQg0YXSr9GA0Y3RhSDQt9Cw0LxcIixcbiAgICB2YWx1ZU5hbWU6IFwi0KXQsNGA0LjRg9C70YLRi9CzINC00LDRgNCw0LDQs9C40LnQvSBKU09OINGC0LDQu9Cx0LDRgNGCINGF0LDQtNCz0LDQu9Cw0YVcIixcbiAgICBjaG9pY2VzYnl1cmw6IHtcbiAgICAgIHZhbHVlTmFtZTogXCLQo9GC0LPRg9GD0LTRi9CzINC00LDRgNCw0LPQuNC50L0gSlNPTiDRgtCw0LvQsdCw0YDQsNCw0YEg0LDQstCw0YVcIixcbiAgICB9LFxuICAgIHRpdGxlTmFtZTogXCLSrtC30q/Sr9C70Y3QvSDRgtC10LrRgdGC0q/Sr9C00LjQudCzINC00LDRgNCw0LDQs9C40LnQvSBKU09OINGC0LDQu9Cx0LDRgNCw0LDRgSDQsNCy0LDRhVwiLFxuICAgIGltYWdlTGlua05hbWU6IFwi0JfRg9GA0LPQuNC50L0g0LvQuNC90LrQuNC50LMg0LTQsNGA0LDQsNCz0LjQudC9IEpTT04g0YLQsNC70LHQsNGA0LDQsNGBXCIsXG4gICAgYWxsb3dFbXB0eVJlc3BvbnNlOiBcItCl0L7QvtGB0L7QvSDRhdCw0YDQuNGD0LvRgiDQt9Op0LLRiNOp06nRgNOp0YVcIixcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiBcItCT0LDRgNGH0LjQs1wiLFxuICAgIHN1cnZleVRpdGxlUGxhY2Vob2xkZXI6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INCz0LDRgNGH0LjQs1wiLFxuICAgIHBhZ2VUaXRsZVBsYWNlaG9sZGVyOiBcItCl0YPRg9C00LDRgSB7bnVtfVwiLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwi0KLQsNC50LvQsdCw0YBcIixcbiAgICBzdXJ2ZXlEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcItCi0LDQudC70LHQsNGAXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwi0KLQsNC50LvQsdCw0YBcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcItOo06nRgCDRgdC+0L3Qs9C+0LvRgiDQt9Op0LLRiNOp06nRgNOp0YVcIixcbiAgICBvdGhlclRleHQ6IFwi06jTqdGAINGB0L7QvdCz0L7Qu9GC0YvQvSDRgtC10LrRgdGCXCIsXG4gICAgc2hvd05vbmVJdGVtOiBcIk5vbmUg0YHQvtC90LPQvtC70YLRi9CzINC306nQstGI06nTqdGA06nRhVwiLFxuICAgIG5vbmVUZXh0OiBcIk5vbmUg0YHQvtC90LPQvtC70YLRi9C9INGC0LXQutGB0YJcIixcbiAgICBzaG93U2VsZWN0QWxsSXRlbTogXCLQkdKv0LPQtNC40LnQsyDRgdC+0L3Qs9C+0YXRi9CzINC306nQstGI06nTqdGA06nRhVwiLFxuICAgIHNlbGVjdEFsbFRleHQ6IFwi0JHSr9Cz0LTQuNC50LMg0YHQvtC90LPQvtGFXCIsXG4gICAgY2hvaWNlc01pbjogXCLQkNCy0YLQvtC80LDRgtCw0LDRgCDSr9Kv0YHRjdGFINGN0LvQtdC80LXQvdGC0LjQudC9INGF0LDQvNCz0LjQudC9INCx0LDQs9CwINGD0YLQs9CwXCIsXG4gICAgY2hvaWNlc01heDogXCLQkNCy0YLQvtC80LDRgtCw0LDRgCDSr9Kv0YHRjdGFINGN0LvQtdC80LXQvdGC0LjQudC9INGF0LDQvNCz0LjQudC9INC40YUg0YPRgtCz0LBcIixcbiAgICBjaG9pY2VzU3RlcDogXCLQkNCy0YLQvtC80LDRgtCw0LDRgCDSr9Kv0YHRjdGFINGN0LvQtdC80LXQvdGC0LjQudC9INCw0LvRhdCw0LxcIixcbiAgICBuYW1lOiBcItCd0Y3RgFwiLFxuICAgIHRpdGxlOiBcItCT0LDRgNGH0LjQs1wiLFxuICAgIGNlbGxUeXBlOiBcItCd0q/QtNC90LjQuSDRgtOp0YDTqdC7XCIsXG4gICAgY29sQ291bnQ6IFwi0JHQsNCz0LDQvdGLINGC0L7QvlwiLFxuICAgIGNob2ljZXNPcmRlcjogXCLQodC+0L3Qs9C+0LvRgtGL0LMg0Y3RgNGN0LzQsdGN0LvRjdGFINC00LDRgNCw0LDQu9Cw0LtcIixcbiAgICB2aXNpYmxlOiBcItCl0LDRgNCw0LPQtNCw0L3QsFwiLFxuICAgIGlzUmVxdWlyZWQ6IFwi0JfQsNCw0LLQsNC7INCx06nQs9C706nRhVwiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwi0JHSr9GFINC806nRgNOp0L3QtCDRhdCw0YDQuNGD0LvRgiDRiNCw0LDRgNC00LDRhVwiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OiBcItCX0LDQsNCy0LDQuyDQsdOp0LPQu9Op0YUg0YLQsNC70LHQsNGA0YvQsyDQsdOp0LPQu9Op06nQs9Kv0Lkg0LHQsNC50L3QsFwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwi0JDRgdGD0YPQu9GC0YvQsyDRiNC40L3RjSDQvNOp0YDTqdC90LQg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIHJvd3M6IFwi0JzTqdGAXCIsXG4gICAgY29sczogXCLQkdCw0LPQsNC90LBcIixcbiAgICBwbGFjZWhvbGRlcjogXCLQntGA0L7Qu9GC0YvQvSDQttC40YjRjdGNINGD0YLQs9CwXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwi0KPRgNGM0LTRh9C40LvQsNC9INGF0LDRgNCw0YUg0YXRjdGB0LPQuNC50LMg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJKU09OINKv0YAg0LTSr9C90LQg0YTQsNC50LvRi9C9INCw0LPRg9GD0LvQs9GL0LMg0YLQtdC60YHRgiDRhdGN0LvQsdGN0YDRjdGN0YAg0YXQsNC00LPQsNC70LDRhVwiLFxuICAgIG1heFNpemU6IFwi0KTQsNC50LvRi9C9INC00Y3RjdC0INGF0Y3QvNC20Y3RjSAo0LHQsNC50YLQsNCw0YApXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwi0JfRg9GA0LPQuNC50L0g06nQvdC006nRgFwiLFxuICAgIGltYWdlV2lkdGg6IFwi0JfRg9GA0LPQuNC50L0g06nRgNCz06nQvVwiLFxuICAgIHJvd0NvdW50OiBcItCc06nRgNC90LjQuSDRgtC+0L5cIixcbiAgICBjb2x1bW5MYXlvdXQ6IFwi0JHQsNCz0LDQvdGLINC30L7RhdC40L7QvSDQsdCw0LnQs9GD0YPQu9Cw0LvRglwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcItCc06nRgCDQvdGN0LzRjdGFINGC0L7QstGH0L3RiyDQsdCw0LnRgNGI0LjQu1wiLFxuICAgIGFkZFJvd1RleHQ6IFwi0JzTqdGAINC90Y3QvNGN0YVcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcItCc06nRgCDRg9GB0YLQs9Cw0YVcIixcbiAgICByYXRlTWluOiBcItCl0LDQvNCz0LjQudC9INCx0LDQs9CwINGD0YLQs9CwXCIsXG4gICAgcmF0ZU1heDogXCLQpdCw0LzQs9C40LnQvSDQuNGFINGD0YLQs9CwXCIsXG4gICAgcmF0ZVN0ZXA6IFwi0JDQu9GF0LDQvFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCLQpdCw0LzQs9C40LnQvSDQsdCw0LPQsCDRg9GC0LPRi9C9INGC0LDQudC70LHQsNGAXCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcItCl0LDQvNCz0LjQudC9INC40YUg0YPRgtCz0YvQvSDRgtCw0LnQu9Cx0LDRgFwiLFxuICAgIGlucHV0VHlwZTogXCLQntGA0L7Qu9GC0YvQvSDRgtOp0YDTqdC7XCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwi0KHQvtC90LPQvtC70YLRi9C9INGC0LDQu9Cx0LDRgFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCLSrtC90LTRgdGN0L0g0YXQsNGA0LjRg9C70YJcIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwi0q7QvdC00YHRjdC9INGC0LXQutGB0YJcIixcbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9GL0L0g0YLQvtGF0LjRgNCz0L7QvtCzINC30LDRgdCw0YVcIixcbiAgICBxRWRpdG9yVGl0bGU6IFwi0JfQsNGB0LDRhTogezB9XCIsXG4gICAgbWF4TGVuZ3RoOiBcItCU0Y3RjdC0INGD0YDRgiAo0YLRjdC80LTRjdCz0YLRjdGN0YApXCIsXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcItCi0L7QvtGG0L7QvtC7XCIsXG4gICAgZWRpdEV4cHJlc3Npb246IFwi0JfQsNGB0LDRhVwiLFxuICAgIGFuZDogXCLQsdCw0YFcIixcbiAgICBvcjogXCLRjdGB0LLRjdC7XCIsXG4gICAgcmVtb3ZlOiBcItCj0YHRgtCz0LDRhVwiLFxuICAgIGFkZENvbmRpdGlvbjogXCLQndOp0YXRhtOp0Lsg0L3RjdC80Y3RhVwiLFxuICAgIGVtcHR5TG9naWNQb3B1cE1lc3NhZ2U6IFwi0J3TqdGF0YbTqdC7INGC0L7RhdC40YDRg9GD0LvQsNGF0YvQvSDRgtGD0LvQtCDQsNGB0YPRg9C70YLRi9CzINGB0L7QvdCz0L7QvdC+INGD0YMuXCIsXG4gICAgaWY6IFwi0KXRjdGA0Y3QslwiLFxuICAgIHRoZW46IFwi0LHQvtC7XCIsXG4gICAgc2V0VG9OYW1lOiBcItCX0L7RgNC40LvRgtC+0YIg0LDRgdGD0YPQu9GCXCIsXG4gICAgZnJvbU5hbWU6IFwi0KXQsNGA0LjRg9C70YIg0YXRg9GD0LvQsNGFINCw0YHRg9GD0LvRglwiLFxuICAgIGdvdG9OYW1lOiBcItKu0YHRjdGA0Ycg0L7Rh9C40YUg0LDRgdGD0YPQu9GCXCIsXG4gICAgcnVsZUlzTm90U2V0OiBcItCU0q/RgNGN0Lwg0LHRg9GA0YPRgyDQsdCw0LnQvdCwXCIsXG4gICAgaW5jbHVkZUludG9SZXN1bHQ6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INKv0YAg0LTSr9C90LQg0L7RgNGD0YPQu9Cw0YVcIixcbiAgICBzaG93VGl0bGU6IFwi0JPQsNGA0YfQuNCzINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICBleHBhbmRDb2xsYXBzZVRpdGxlOiBcItCT0LDRgNGH0LjQsyDTqdGA0LPTqdGB0LPTqdGFL9Cx0LDQs9Cw0YHQs9Cw0YVcIixcbiAgICBsb2NhbGU6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INGF0Y3Qu1wiLFxuICAgIHNpbXVsYXRvcjogXCLQotOp0YXTqdOp0YDTqdC80LbQuNC50L0g0YLTqdGA06nQuyDRgdC+0L3Qs9C+0L3QviDRg9GDXCIsXG4gICAgbGFuZHNjYXBlT3JpZW50YXRpb246IFwi0KXRjdCy0YLRjdGNINCx0LDQudGA0LvQsNC70LQg0YjQuNC70LbQuNGFXCIsXG4gICAgcG9ydHJhaXRPcmllbnRhdGlvbjogXCLQkdC+0YHQvtC+INCx0LDQudGA0LvQsNC70LQg0YjQuNC70LbQuNGFXCIsXG4gICAgbW9kZTogXCLQl9Cw0YHQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSDRjdGB0LLRjdC7INC306nQstGF06nQvSDRg9C90YjQuNGFXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwi0KXQsNGA0LDQs9C00LDRhdCz0q/QuSDRg9GC0LPRi9CzINGG0Y3QstGN0YDQu9GN0YVcIixcbiAgICBjb29raWVOYW1lOiBcIkNvb2tpZSBuYW1lXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwi0KXRjdGB0Y3Qs9GH0LjQu9GB0Y3QvSDRgdCw0L3QsNC7INCw0YHRg9GD0LvQs9GL0L0g0Y/QstGG0YvQsyDRhdCw0LTQs9Cw0LvQsNGFXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwi0JHRg9GB0LDQtCDRg9GC0LPRi9CzINGC0YPRgdC00LDQsCDRgtCw0LvQsdCw0YDRgiDRhdCw0LTQs9Cw0LvQsNGFXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi0KXRg9GD0LTQsNGB0L3RiyDQs9Cw0YDRh9C40LMg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCLQpdGD0YPQtNCw0YHQvdGLINGC0L7QviDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcItOo0LzQvdOp0YUg0YXRg9GD0LTQsNGBIC0g0YXQsNGA0LDQs9C00LDRhSDQsdC40YfQuNCzXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcItCU0LDRgNCw0LDQs9C40LnQvSDRhdGD0YPQtNCw0YEgLSDRhdCw0YDQsNCz0LTQsNGFINCx0LjRh9C40LNcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsCDQsNC80LbQuNC70LvRgtGC0LDQuSDQsdOp0LPQu9Op0LPQtNGB06nQvSAtINGF0LDRgNCw0LPQtNCw0YUg0LHQuNGH0LjQs1wiLFxuICAgIHByZXZpZXdUZXh0OiBcItCl0LDRgNC40YPQu9GCINGD0YDRjNC00YfQuNC70LYg0YXQsNGA0LDRhSAtINGF0LDRgNCw0LPQtNCw0YUg0LHQuNGH0LjQs1wiLFxuICAgIGVkaXRUZXh0OiBcItCl0LDRgNC40YPQu9GCINC30LDRgdCw0YUg0YXQsNGA0LDQs9C00LDRhSDQsdC40YfQuNCzXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0Y3RhdC70Y3RhSDSr9C10LQg0YXQsNGA0LDQs9C00LDRhSDQsdC40YfQuNCzXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcItCn0LjQs9C70q/Sr9C70LPQuNC50L0g0YLQvtCy0YfQuNC50L0g0LHQsNC50YDQu9Cw0LtcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCLTqNC80L3TqdGFINGF0YPRg9C00LDRgdC90Ysg0YLQvtCy0Ycg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCLQrdGF0LvRjdGFINGF0YPRg9C00LDRgSDQvdGMINGN0YXQvdC40Lkg0YXRg9GD0LTQsNGBINCx0LDQudC90LBcIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9CwINCw0LzQttC40LvRgtGC0LDQuSDQsdOp0LPQu9Op0LPQtNGB06nQvSDRhdGD0YPQtNGB0YvQsyDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCLQlNCw0YDQsNCw0LPQuNC50L0g0YXRg9GD0LTQsNGBINGA0YPRgyDQsNCy0YLQvtC80LDRgtCw0LDRgCDRiNC40LvQttC40YVcIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwi0K/QstGG0YvQvSDQvNOp0YDQvdC40Lkg0LHQsNC50YDRiNC40LtcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwi0JDRgdGD0YPQu9GC0YvQvSDQs9Cw0YDRh9Cz0LjQudC9INCx0LDQudGA0YjQuNC7XCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcItCo0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuSDRgtGN0LzQtNGN0LMo0q/Sr9C0KVwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCLQrdGF0LvRjdGFINC40L3QtNC10LrRgSAo0YLQvtC+INGN0YHQstGN0Lsg0q/RgdGN0LMpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCLQkNGB0YPRg9C70YLRi9C9INC00YPQs9Cw0LDRgNC70LDQu9GCXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOlxuICAgICAgXCLQkNGB0YPRg9C70YLRi9C9INCz0LDRgNGH0LjQs9C90Ysg0LfQsNCz0LLQsNGALCDSr9C90LTRgdGN0L0g0L3RjDogJ3vSr9Cz0q/QuX0uIHvRiNCw0LDRgNC00LDRhX0ge9Cz0LDRgNGH0LjQs30nXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcItCQ0LvQtNCw0LDQvdGLINC80Y3QtNGN0LPQtNC70LjQudC9INCx0LDQudGA0YjQuNC7XCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcItCt0YXQvdC40Lkg0LDRgdGD0YPQu9GC0YvQsyDRiNC40L3RjSDRhdGD0YPQtNGB0LDQvdC0INGC06nQstC706nRgNKv0q/Qu9GN0YVcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCLQpdGD0YPQtNCw0YEg0LTRjdGN0YDRhSDRjdC70LXQvNC10L3RgtC40LnQvSDQtNCw0YDQsNCw0LvQsNC7XCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0LHTqdCz0LvTqdC2INC00YPRg9GB0LDRhSDRhdGD0LPQsNGG0LDQsCAo0YHQtdC60YPQvdC00Y3RjdGAKVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwi0J3RjdCzINGF0YPRg9C00LDRgSDQsdOp0LPQu9Op0LYg0LTRg9GD0YHQsNGFINGF0YPQs9Cw0YbQsNCwICjRgdC10LrRg9C90LTRjdGN0YApXCIsXG4gICAgaW1hZ2U6IHtcbiAgICAgIGltYWdlSGVpZ2h0OiBcItCX0YPRgNCz0LjQudC9INOp0L3QtNOp0YAgKENTUyDRhdKv0LvRjdGN0L0g0LfTqdCy0YjTqdOp0YDRgdOp0L0g0YPRgtCz0LApXCIsXG4gICAgICBpbWFnZVdpZHRoOiBcItCX0YPRgNCz0LjQudC9INOp0YDQs9Op0L0gKENTUyDRhdKv0LvRjdGN0L0g0LfTqdCy0YjTqdOp0YDRgdOp0L0g0YPRgtCz0LApXCIsXG4gICAgfSxcbiAgICBwYWdlOiB7XG4gICAgICBtYXhUaW1lVG9GaW5pc2g6IFwi0J3RjdCzINGF0YPRg9C00LDRgSDQsdOp0LPQu9Op0LYg0LTRg9GD0YHQsNGFINGF0YPQs9Cw0YbQsNCwICjRgdC10LrRg9C90LTRjdGN0YApXCIsXG4gICAgfSxcbiAgICBxdWVzdGlvbjoge1xuICAgICAgcGFnZTogXCLQrdGFINGF0YPRg9C00LDRgVwiLFxuICAgIH0sXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwi0KLQvtC+0LvRg9GD0YDRi9C9INCx0LDQudGA0YjQuNC7XCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcItCi0L7QvtC70YPRg9GA0YvQvSDQs9C+0YDQuNC8XCIsXG4gICAgcmVuZGVyTW9kZTogXCLQn9Cw0L3QtdC70LjQudC9INC00Y3Qu9Cz0Y3RhtC40LnQvSDQs9C+0YDQuNC8XCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCLQn9Cw0L3QtdC7INC90Y3QvNGN0YXQuNC50LMg0LfTqdCy0YjTqdOp0YDTqdGFXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLQn9Cw0L3QtdC7INGF0LDRgdCw0YXRi9CzINC306nQstGI06nTqdGA06nRhVwiLFxuICAgIG5vRW50cmllc1RleHQ6IFwi0KXQvtC+0YHQvtC9INCx0LjRh9Cy0Y3RgNC40LnQvSDRgtC10LrRgdGCXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcItCf0LDQvdC10Lsg0YLQvtCy0YfQuNC50L0g0YLQtdC60YHRgiDQvdGN0LzRjdGFXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcItCf0LDQvdC10Lsg0YLQvtCy0YfQuNC50L0g0YLQtdC60YHRgiDRhdCw0YHQsNGFXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcItCR0q/RhSDRjdC70LXQvNC10L3RgtC40LnQsyDQvdGN0LMg0YXRg9GD0LTQsNGBINC00Y3RjdGAINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICBodG1sOiBcIkhUTUwg0YLRjdC80LTRjdCz0LvRjdCz0Y3RjVwiLFxuICAgIGV4cHJlc3Npb246IFwi0LjQu9GN0YDRhdC40LnQu9GN0LtcIixcbiAgICBzZXRWYWx1ZTogXCLQpdCw0YDQuNGD0LvRglwiLFxuICAgIGRhdGFGb3JtYXQ6IFwi0JfRg9GA0LPQuNC50L0g0YTQvtGA0LzQsNGCXCIsXG4gICAgYWxsb3dBZGRSb3dzOiBcItCc06nRgCDQvdGN0LzRjdGF0LjQudCzINC306nQstGI06nTqdGA06nRhVwiLFxuICAgIGFsbG93UmVtb3ZlUm93czogXCLQnNOp0YAg0YXQsNGB0LDRhdGL0LMg0LfTqdCy0YjTqdOp0YDTqdGFXCIsXG4gICAgYWxsb3dSb3dzRHJhZ0FuZERyb3A6IFwi0JzTqdGAINGH0LjRgNGN0YXQuNC50LMg0LfTqdCy0YjTqdOp0YDTqdGFXCIsXG4gICAgcmVzcG9uc2l2ZUltYWdlU2l6ZUhlbHA6XG4gICAgICBcItCX0YPRgNCz0LjQudC9INOp0L3QtNOp0YAsINOp0YDQs9Op0L3QuNC50LMg0LfQsNCw0LYg06nQs9GB06nQvSDSr9C10LQg0YXQsNC80LDQsNGA0LDRhdCz0q/QuS5cIixcbiAgICBtaW5JbWFnZVdpZHRoOiBcItCX0YPRgNCz0LjQudC9INOp0YDQs9Op0L3QuNC5INGF0LDQvNCz0LjQudC9INCx0LDQs9CwINGF0Y3QvNC20Y3RjVwiLFxuICAgIG1heEltYWdlV2lkdGg6IFwi0JfRg9GA0LPQuNC50L0g06nRgNCz06nQvdC40Lkg0YXQsNC80LPQuNC50L0g0LjRhSDRhdGN0LzQttGN0Y1cIixcbiAgICBtaW5JbWFnZUhlaWdodDogXCLQl9GD0YDQs9C40LnQvSDTqdC90LTRgNC40LnQvSDRhdCw0LzQs9C40LnQvSDQsdCw0LPQsCDRhdGN0LzQttGN0Y1cIixcbiAgICBtYXhJbWFnZUhlaWdodDogXCLQl9GD0YDQs9C40LnQvSDTqdC90LTRgNC40LnQvSDRhdCw0LzQs9C40LnQvSDQuNGFINGF0Y3QvNC20Y3RjVwiLFxuICAgIG1pblZhbHVlOiBcItCl0LDQvNCz0LjQudC9INCx0LDQs9CwINGD0YLQs9CwXCIsXG4gICAgbWF4VmFsdWU6IFwi0KXQsNC80LPQuNC50L0g0LjRhSDRg9GC0LPQsFwiLFxuICAgIG1pbkxlbmd0aDogXCLQpdCw0LzQs9C40LnQvSDQsdCw0LPQsCDRg9GA0YIgKNGC0Y3QvNC00Y3Qs9GC0Y3RjdGAKVwiLFxuICAgIGFsbG93RGlnaXRzOiBcItCi0L7QviDQt9Op0LLRiNOp06nRgNOp0YVcIixcbiAgICBtaW5Db3VudDogXCLQpdCw0LzQs9C40LnQvSDQsdCw0LPQsCDRgtC+0L5cIixcbiAgICBtYXhDb3VudDogXCLQpdCw0LzQs9C40LnQvSDQuNGFINGC0L7QvlwiLFxuICAgIHJlZ2V4OiBcItCi0L7Qs9GC0LzQvtC7INC40LvRjdGA0YXQuNC50LvRjdC7XCIsXG4gICAgc3VydmV5dmFsaWRhdG9yOiB7XG4gICAgICB0ZXh0OiBcItCQ0LvQtNCw0LBcIixcbiAgICAgIGV4cHJlc3Npb246IFwi0JHQsNGC0LDQu9Cz0LDQsNC20YPRg9C70LDRhSDQuNC70Y3RgNGF0LjQudC70Y3Qu1wiLFxuICAgIH0sXG4gICAgdG90YWxUZXh0OiBcItCd0LjQudGCINC806nRgFwiLFxuICAgIHRvdGFsVHlwZTogXCLQndC40LnRgiDRgtOp0YDTqdC7XCIsXG4gICAgdG90YWxFeHByZXNzaW9uOiBcItCd0LjQudGCINC40LvRjdGA0YXQuNC50LvRjdC7XCIsXG4gICAgdG90YWxEaXNwbGF5U3R5bGU6IFwi0J3QuNC50YIg0YPRgtCz0YvQsyDRhdCw0YDRg9GD0LvQsNGFINC30LDQs9Cy0LDRgFwiLFxuICAgIHRvdGFsQ3VycmVuY3k6IFwi0JzTqdC90LPTqdC9INGC0Y3QvNC00Y3Qs9GCXCIsXG4gICAgdG90YWxGb3JtYXQ6IFwi0KXRjdC70LHRjdGA0LbSr9Kv0LvRgdGN0L0g0YLQtdC60YHRglwiLFxuICAgIGxvZ286IFwi0JvQvtCz0L4gKFVSTCDRjdGB0LLRjdC7IGJhc2U2NCDQutC+0LTQu9C+0YHQvtC9INC806nRgClcIixcbiAgICBxdWVzdGlvbnNPblBhZ2VNb2RlOiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0YvQvSDQsdKv0YLRjdGGXCIsXG4gICAgbWF4VGV4dExlbmd0aDogXCLQpdCw0YDQuNGD0LvRgtGL0L0g0YXQsNC80LPQuNC50L0g0LjRhSDRg9GA0YIo0YLRjdC80LTRjdCz0YLRjdGN0YApXCIsXG4gICAgbWF4T3RoZXJzTGVuZ3RoOiBcItCl0LDRgNC40YPQu9GC0YvQvSDRhdCw0LzQs9C40LnQvSDQsdCw0LPQsCDRg9GA0YIo0YLRjdC80LTRjdCz0YLRjdGN0YApXCIsXG4gICAgYXV0b0dyb3dDb21tZW50OiBcItCo0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuSDSr9C10LQg0YHQsNC90LDQuyDRgdGN0YLQs9GN0LPQtNC70LjQudC9INGF0Y3RgdCz0LjQudCzINOp0YDQs9Op0YHQs9Op0YVcIixcbiAgICB0ZXh0VXBkYXRlTW9kZTogXCLQotC10LrRgdGCINCw0YHRg9GD0LvRgtGL0L0g0YPRgtCz0YvQsyDRiNC40L3RjdGH0LvRjdGFXCIsXG4gICAgZm9jdXNPbkZpcnN0RXJyb3I6IFwi0JDQvdGF0L3RiyDQsdGD0YDRg9GDINGF0LDRgNC40YPQu9GCINGA0YPRgyDRh9C40LPQu9Kv0q/Qu9GN0YVcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwi0JHQsNGC0LDQu9Cz0LDQsNC20YPRg9C70LDQu9GCINCw0LbQuNC70LvRg9GD0LvQsNGFXCIsXG4gICAgbmF2aWdhdGVUb1VybDogXCJVUkwt0YDSr9KvINGH0LjQs9C70q/Sr9C70Y3RhVwiLFxuICAgIG5hdmlnYXRlVG9VcmxPbkNvbmRpdGlvbjogXCLQlNC40L3QsNC80LjQuiBVUkxcIixcbiAgICBjb21wbGV0ZWRCZWZvcmVIdG1sOlxuICAgICAgXCLQpdGN0YDRjdCz0LvRjdCz0Ycg0YHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9CzINCx06nQs9C706nRgdOp0L0g0LHQsNC50YUg0q/QtdC0INGF0LDRgNGD0YPQu9Cw0YUg0YLRjdC80LTRjdCz0LvRjdCz0Y3RjVwiLFxuICAgIGNvbXBsZXRlZEh0bWw6XG4gICAgICBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0LDQvNC20LjQu9GC0YLQsNC5INCx06nQs9C706nQs9C00YHTqdC9INKv0LXQtCDRhdCw0YDRg9GD0LvQsNGFINGC0Y3QvNC00Y3Qs9C70Y3Qs9GN0Y1cIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246XG4gICAgICBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0LDQvNC20LjQu9GC0YLQsNC5INCx06nQs9C706nQs9C00YHTqdC9INKv0LXQtCDRhdCw0YDRg9GD0LvQsNGFINC00LjQvdCw0LzQuNC6INGC0Y3QvNC00Y3Qs9C70Y3Qs9GN0Y1cIixcbiAgICBsb2FkaW5nSHRtbDogXCLQodGD0LTQsNC70LPQsNCw0L3RiyDQt9Cw0LPQstCw0YAg0LDRh9Cw0LDQu9C70LDQtiDQsdCw0LnRhSDSr9C10LQg0YXQsNGA0YPRg9C70LDRhSDRgtGN0LzQtNGN0LPQu9GN0LPRjdGNXCIsXG4gICAgY29tbWVudFRleHQ6IFwi0KHQsNC90LDQuyDRgdGN0YLQs9GN0LPQtNC70LjQudC9INGF0Y3RgdCz0LjQudC9INGC0LXQutGB0YJcIixcbiAgICBhdXRvY29tcGxldGU6IFwi0JDQstGC0L7QvNCw0YLQsNCw0YAg0LHTqdCz0LvTqdGFINGC06nRgNOp0LtcIixcbiAgICBsYWJlbFRydWU6ICdcItCi0LjQudC8XCIg0YjQvtGI0LPQvicsXG4gICAgbGFiZWxGYWxzZTogJ1wi0q7Qs9Kv0LlcIiDRiNC+0YjQs9C+JyxcbiAgICBhbGxvd0NsZWFyOiBcItCm0Y3QstGN0YDQu9GN0YUg0YLQvtCy0Ycg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIGRpc3BsYXlTdHlsZTogXCLQo9GC0LPQsCDRhdCw0YDRg9GD0LvQsNGFINGF0Y3QsiDQvNCw0Y/Qs1wiLFxuICAgIGZvcm1hdDogXCLQpdGN0LvQsdGN0YDQttKv0q/Qu9GB0Y3QvSDRgtC10LrRgdGCXCIsXG4gICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBcItCe0YDQvtC90LPQuNC50L0g0L3QsNGA0LjQudCy0YfQu9Cw0LvRi9C9INC00Y3RjdC0INGD0YLQs9CwXCIsXG4gICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiBcItCe0YDQvtC90LPQuNC50L0g0L3QsNGA0LjQudCy0YfQu9Cw0LvRi9C9INC00L7QvtC0INGD0YLQs9CwXCIsXG4gICAgdXNlR3JvdXBpbmc6IFwi0JHSr9C70Y3QsyDRgtGD0YHQs9Cw0LDRgNC70LDQs9GH0LjQudCzINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICBhbGxvd011bHRpcGxlOiBcItCe0LvQvtC9INGE0LDQudC7INC306nQstGI06nTqdGA06nRhVwiLFxuICAgIGFsbG93SW1hZ2VzUHJldmlldzogXCLQl9GD0YDQs9GD0YPQtNGL0LMg0YPRgNGM0LTRh9C40LvQtiDRhdCw0YDQsNGFXCIsXG4gICAgYWNjZXB0ZWRUeXBlczogXCLQl9Op0LLRiNOp06nRgNOp0LPQtNGB06nQvSDRhNCw0LnQu9GL0L0g0YLTqdGA06nQu1wiLFxuICAgIHdhaXRGb3JVcGxvYWQ6IFwi0KTQsNC50Lsg0LHQsNC50YDRiNGD0YPQu9C2INC00YPRg9GB0YLQsNC7INGF0q/Qu9GN0Y3RhVwiLFxuICAgIG5lZWRDb25maXJtUmVtb3ZlRmlsZTogXCLQpNCw0LnQuyDRg9GB0YLQs9Cw0YXRi9CzINCx0LDRgtC70LDRhVwiLFxuICAgIGRldGFpbFBhbmVsTW9kZTogXCLQndCw0YDQuNC50LLRh9C40LvRgdCw0L0g0L/QsNC90LXQu9C40LnQvSDQsdCw0LnRgNGI0LjQu1wiLFxuICAgIG1pblJvd0NvdW50OiBcItCl0LDQvNCz0LjQudC9INCx0LDQs9CwINC806nRgNC90LjQuSDRgtC+0L5cIixcbiAgICBtYXhSb3dDb3VudDogXCLQpdCw0LzQs9C40LnQvSDQuNGFINC806nRgNC90LjQuSDRgtC+0L5cIixcbiAgICBjb25maXJtRGVsZXRlOiBcItCc06nRgCDRg9GB0YLQs9Cw0YXRi9CzINCx0LDRgtC70LDRhVwiLFxuICAgIGNvbmZpcm1EZWxldGVUZXh0OiBcItCR0LDRgtCw0LvQs9Cw0LDQttGD0YPQu9Cw0YUg0LzQtdGB0YHQtdC2XCIsXG4gICAgcGFuZWxkeW5hbWljOiB7XG4gICAgICBjb25maXJtRGVsZXRlOiBcItCf0LDQvdC10Lsg0YPRgdGC0LPQsNGF0YvQsyDQsdCw0YLQu9Cw0YVcIixcbiAgICB9LFxuICAgIHBhbmVsQ291bnQ6IFwi0J/QsNC90LXQu9C40LnQvSDRjdGF0LvRjdGFINGC0L7QvlwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwi0KXQsNC80LPQuNC50L0g0LHQsNCz0LAg0L/QsNC90LXQu9C40LnQvSDRgtC+0L5cIixcbiAgICBtYXhQYW5lbENvdW50OiBcItCl0LDQvNCz0LjQudC9INC40YUg0L/QsNC90LXQu9C40LnQvSDRgtC+0L5cIixcbiAgICBwYW5lbHNTdGF0ZTogXCLQlNC+0YLQvtC+0LQg0L/QsNC90LXQu9C40LnQvSDTqdGA0LPTqdGB0YHTqdC9INGC06nQu9Op0LJcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcItCi0LDQudC70LHQsNGA0YvQvSDQt9Cw0LPQstCw0YBcIixcbiAgICB0ZW1wbGF0ZVRpdGxlOiBcItCT0LDRgNGH0LPQuNC50L0g0LfQsNCz0LLQsNGAXCIsXG4gICAgcGFuZWxQcmV2VGV4dDogXCLTqNC80L3TqdGFINC/0LDQvdC10LvQuNC50L0g0YLQvtCy0YdcIixcbiAgICBwYW5lbE5leHRUZXh0OiBcItCU0LDRgNCw0LDQs9C40LnQvSDQv9Cw0L3QtdC70LjQudC9INGC0L7QstGHXCIsXG4gICAgc2hvd1JhbmdlSW5Qcm9ncmVzczogXCLQr9Cy0YbRi9C9INGC0LDQu9Cx0LDRgNGL0LMg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIHRlbXBsYXRlVGl0bGVMb2NhdGlvbjogXCLQkNGB0YPRg9C70YLRi9C9INCz0LDRgNGH0LPQuNC50L0g0LHQsNC50YDRiNC40LtcIixcbiAgICBwYW5lbFJlbW92ZUJ1dHRvbkxvY2F0aW9uOiBcItCf0LDQvdC10Lsg0YPRgdGC0LPQsNGFINGC0L7QstGH0L3RiyDQsdCw0LnRgNGI0LjQu1wiLFxuICAgIGhpZGVJZlJvd3NFbXB0eTogXCLQnNOp0YAg0LHQsNC50YXQs9Kv0Lkg0YLQvtGF0LjQvtC70LTQvtC70LQg0LDRgdGD0YPQu9GC0YvQsyDQvdGD0YPRhVwiLFxuICAgIGhpZGVDb2x1bW5zSWZFbXB0eTogXCLQnNOp0YAg0LHQsNC50YXQs9Kv0Lkg0YLQvtGF0LjQvtC70LTQvtC70LQg0LHQsNCz0LDQvdGL0LMg0L3Rg9GD0YVcIixcbiAgICByYXRlVmFsdWVzOiBcItCl0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDSr9C90Y3Qu9Cz0Y3RjdC90LjQuSDRg9GC0LPRg9GD0LRcIixcbiAgICBoaWRlSWZDaG9pY2VzRW1wdHk6IFwi0KHQvtC90LPQvtC70YLQs9Kv0Lkg0LHQvtC7INCw0YHRg9GD0LvRgtGL0LMg0L3Rg9GD0YVcIixcbiAgICBoaWRlTnVtYmVyOiBcItCQ0YHRg9GD0LvRgtGL0L0g0YLQvtC+0LMg0YXQsNGA0YPRg9C70LDRhdCz0q/QuSDQsdCw0LnRhVwiLFxuICAgIG1pbldpZHRoOiBcItCl0LDQvNCz0LjQudC9INCx0LDQs9CwINOp0YDQs9Op0L0gKENTUyDRhdKv0LvRjdGN0L0g0LfTqdCy0YjTqdOp0YDRgdOp0L0g0YPRgtCz0LApXCIsXG4gICAgbWF4V2lkdGg6IFwi0KXQsNC80LPQuNC50L0g0LjRhSDTqdGA0LPTqdC9IChDU1Mg0YXSr9C70Y3RjdC9INC306nQstGI06nTqdGA0YHTqdC9INGD0YLQs9CwKVwiLFxuICAgIHdpZHRoOiBcItOo0YDQs9Op0L0gKENTUyDRhdKv0LvRjdGN0L0g0LfTqdCy0YjTqdOp0YDRgdOp0L0g0YPRgtCz0LApXCIsXG4gICAgc2hvd0hlYWRlcjogXCLQkdCw0LPQsNC90Ysg0LPQsNGA0YfQuNCz0LjQudCzINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcItCl0Y3QstGC0Y3RjSDQs9Kv0LnQu9Cz0Y3RhSDQvNOp0YAg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcItCR0LDQs9Cw0L3RiyDRhdCw0LzQs9C40LnQvSDQsdCw0LPQsCDRg9GC0LPQsCAoQ1NTINGF0q/Qu9GN0Y3QvSDQt9Op0LLRiNOp06nRgNGB06nQvSDRg9GC0LPQsClcIixcbiAgICByb3dUaXRsZVdpZHRoOiBcItCc06nRgNC40LnQvSDQs9Cw0YDRh9Cz0LjQudC9INGD0YLQs9CwIChDU1Mg0YXSr9C70Y3RjdC9INC306nQstGI06nTqdGA0YHTqdC9INGD0YLQs9CwKVwiLFxuICAgIHZhbHVlVHJ1ZTogXCLSrtC90Y3QvSDRg9GC0LPQsFwiLFxuICAgIHZhbHVlRmFsc2U6IFwi0KXRg9C00LDQuyDRg9GC0LPQsFwiLFxuICAgIG1pbkVycm9yVGV4dDogXCLQpdCw0LzQs9C40LnQvSDQsdCw0LPQsCDRg9GC0LPQsNCw0YEg0LHQsNCz0LAg0LHQsNC50L3QsCEg0LDQu9C00LDQsNC90Ysg0LzRjdC00Y3Qs9C00Y3Qu1wiLFxuICAgIG1heEVycm9yVGV4dDogXCLQpdCw0LzQs9C40LnQvSDQuNGFINGD0YLQs9Cw0LDRgSDQuNGFINCx0LDQudC90LAhINCw0LvQtNCw0LDQvdGLINC80Y3QtNGN0LPQtNGN0LtcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCLQpdC+0L7RgdC+0L0g0YHQsNC90LDQuyDRhdKv0YHRjdC70YIhINCw0LvQtNCw0LDQvdGLINC80Y3QtNGN0LPQtNGN0LtcIixcbiAgICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcItCU0LDQstGC0LDQs9C00YHQsNC9INGD0YLQs9CwISDQsNC70LTQsNCw0L3RiyDQvNGN0LTRjdCz0LTRjdC7XCIsXG4gICAgbWF4U2VsZWN0ZWRDaG9pY2VzOiBcItCl0LDQvNCz0LjQudC9INC40YXQtNGN0Y0g0YHQvtC90LPQvtGFINCx0L7Qu9C+0LzQttC40LnQvSDRgtC+0L5cIixcbiAgICBzaG93Q2xlYXJCdXR0b246IFwi0KbRjdCy0Y3RgNC70Y3RhSDRgtC+0LLRhyDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgc2hvd051bWJlcjogXCLQn9Cw0L3QtdC70LjQudC9INGC0L7QviDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgbG9nb1dpZHRoOiBcItCb0L7Qs9C+0L3RiyDTqdGA0LPTqdC9IChDU1Mg0YXSr9C70Y3RjdC9INC306nQstGI06nTqdGA0YHTqdC9INGD0YLQs9CwKVwiLFxuICAgIGxvZ29IZWlnaHQ6IFwi0JvQvtCz06nQvdGLINOp0L3QtNOp0YAgKENTUyDRhdKv0LvRjdGN0L0g0LfTqdCy0YjTqdOp0YDRgdOp0L0g0YPRgtCz0LApXCIsXG4gICAgcmVhZE9ubHk6IFwi0JfTqdCy0YXTqdC9INGD0L3RiNC40YVcIixcbiAgICBlbmFibGVJZjogXCLQl9Cw0YHQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSDRhdGN0YDRjdCyXCIsXG4gICAgZW1wdHlSb3dzVGV4dDogJ1wi0JzTqdGAINCx0LDQudGF0LPSr9C5INCx0LDQudC90LAhXCIg0LzRjdC00Y3Qs9C00Y3QuycsXG4gICAgc2l6ZTogXCLQntGA0L7Qu9GC0YvQvSDRhdGN0LzQttGN0Y0gKNGC0Y3QvNC00Y3Qs9GC0Y3RjdGAKVwiLFxuICAgIHNlcGFyYXRlU3BlY2lhbENob2ljZXM6XG4gICAgICBcItCi0YPRgdCz0LDQuSDRgdC+0L3Qs9C+0LvRgtGD0YPQtNGL0LMg0YHQsNC70LPQsNGFICjQkNC70Ywg0L3RjCDRhyDQsdC40YgsINCR0YPRgdCw0LQsINCR0q/Qs9C00LjQudCzINGB0L7QvdCz0L7RhSlcIixcbiAgICBjaG9pY2VzRnJvbVF1ZXN0aW9uOiBcItCU0LDRgNCw0LDRhSDQsNGB0YPRg9C70YLQsNCw0YEg0YHQvtC90LPQvtC70YLRg9GD0LTRi9CzINGF0YPRg9C70LDRhS5cIixcbiAgICBjaG9pY2VzRnJvbVF1ZXN0aW9uTW9kZTogXCLQkNC70Ywg0YHQvtC90LPQvtC70YLRg9GD0LTRi9CzINGF0YPRg9C70LDRhSDQstGNP1wiLFxuICAgIHNob3dDb21tZW50QXJlYTogXCLQodCw0L3QsNC7INGF0q/RgdGN0LvRgtC40LnQvSDRhdGN0YHRjdCzINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICBjb21tZW50UGxhY2Vob2xkZXI6IFwi0KHQsNC90LDQuyDRhdKv0YHRjdC70YLQuNC50L0g0YXRjdGB0Y3Qs1wiLFxuICAgIGRpc3BsYXlSYXRlRGVzY3JpcHRpb25zQXNFeHRyZW1lSXRlbXM6XG4gICAgICBcIkRpc3BsYXkgcmF0ZSBkZXNjcmlwdGlvbnMgYXMgZXh0cmVtZSB2YWx1ZXNcIixcbiAgICByb3dzT3JkZXI6IFwi0JzTqdGA0L3QuNC5INC00LDRgNCw0LDQu9Cw0LtcIixcbiAgICBjb2x1bW5zTGF5b3V0OiBcItCR0LDQs9Cw0L3RiyDQt9C+0YXQuNC+0L0g0LHQsNC50LPRg9GD0LvQsNC70YJcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCLQqNCw0YLQsNC70YHQsNC9INCx0LDQs9Cw0L3Ri9C9INGC0L7QvlwiLFxuICAgIHN0YXRlOiBcItCf0LDQvdC10LvQuNC50L0g06nRgNCz06nRgdGB06nQvSDRgtOp0LvTqdCyXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCLQl9Op0LIg0YXQsNGA0LjRg9C70YJcIixcbiAgICBkZWZhdWx0UGFuZWxWYWx1ZTogXCLSrtC90LTRgdGN0L0g0YPRgtCz0LBcIixcbiAgICBjZWxsczogXCLQndKv0LTQvdC40Lkg0YLQtdC60YHRglwiLFxuICAgIGtleU5hbWU6IFwi0KLSr9C70YXSr9Kv0YAg0LHQsNCz0LDQvdCwXCIsXG4gICAgaXRlbXZhbHVlOiB7XG4gICAgICB0ZXh0OiBcItCi0LDQudC70LHQsNGAXCIsXG4gICAgfSxcbiAgICBsb2dvUG9zaXRpb246IFwi0JvQvtCz0L7QvdGLINCx0LDQudGA0YjQuNC7XCIsXG4gICAgYWRkTG9nbzogXCLQm9C+0LPQviDQvdGN0LzRjdGFLi4uXCIsXG4gICAgY2hhbmdlTG9nbzogXCLQm9C+0LPQviDRgdC+0LvQuNGFLi4uXCIsXG4gICAgbG9nb1Bvc2l0aW9uczoge1xuICAgICAgbm9uZTogXCLQm9C+0LPQviDRg9GB0YLQs9Cw0YVcIixcbiAgICAgIGxlZnQ6IFwi0JfSr9Kv0L1cIixcbiAgICAgIHJpZ2h0OiBcItCR0LDRgNGD0YPQvVwiLFxuICAgICAgdG9wOiBcItCU0Y3RjdGAXCIsXG4gICAgICBib3R0b206IFwi0JTQvtC+0YBcIixcbiAgICB9LFxuICAgIHRhYnM6IHtcbiAgICAgIGdlbmVyYWw6IFwi0JXRgNOp0L3RhdC40LlcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcItCh0L7QvdCz0L7Qu9GCXCIsXG4gICAgICBodG1sOiBcIkhUTUwg0LfQsNGB0LLQsNGA0LvQsNCz0YdcIixcbiAgICAgIGNvbHVtbnM6IFwi0JHQsNCz0LDQvdCwXCIsXG4gICAgICByb3dzOiBcItCc06nRgFwiLFxuICAgICAgY2hvaWNlczogXCLQodC+0L3Qs9C+0LvRglwiLFxuICAgICAgaXRlbXM6IFwi0K3Qu9C10LzQtdC90YJcIixcbiAgICAgIHZpc2libGVJZjogXCLQpdCw0YDQsNCz0LTQsNC90LAg0YXRjdGA0Y3QslwiLFxuICAgICAgZW5hYmxlSWY6IFwi0JfQsNGB0LLQsNGA0LvQsNC2INCx0L7Qu9C90L4g0YXRjdGA0Y3QslwiLFxuICAgICAgcmVxdWlyZWRJZjogXCLQl9Cw0LDQstCw0Lsg0LHTqdCz0LvTqdGFINCx0L7Qu9C+0YUg0YXRjdGA0Y3QslwiLFxuICAgICAgcmF0ZVZhbHVlczogXCLQo9GC0LPRi9CzINKv0L3RjdC70Y3RhVwiLFxuICAgICAgY2hvaWNlc0J5VXJsOiBcIlJFU1RmdWwg0YHQtdGA0LLQuNGB0LjQudC9INGB0L7QvdCz0L7Qu9GC0YPRg9C0XCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcItKu0L3QtNGB0Y3QvSDRgdC+0L3Qs9C+0LvRgtGD0YPQtFwiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwi0KLQtdC60YHRgiDQvtGA0L7Qu9GCXCIsXG4gICAgICBudW1iZXJpbmc6IFwi0JTRg9Cz0LDQsNGA0LvQsNC70YJcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwi0JHQsNGC0LvQsNCz0YdcIixcbiAgICAgIG5hdmlnYXRpb246IFwi0KfQuNCz0LvSr9Kv0LvRjdCz0YdcIixcbiAgICAgIHF1ZXN0aW9uOiBcItCQ0YHRg9GD0LvRglwiLFxuICAgICAgcGFnZXM6IFwi0KXRg9GD0LTQsNGBXCIsXG4gICAgICB0aW1lcjogXCLQotC+0L7Qu9GD0YPRgC/QkNGB0YPRg9C70YIg0YXQsNGA0LjRg9C70YJcIixcbiAgICAgIGNhbGN1bGF0ZWRWYWx1ZXM6IFwi0KLQvtC+0YbQvtC+0LvRgdC+0L0g0YPRgtCz0LBcIixcbiAgICAgIHRyaWdnZXJzOiBcItCh0YXQtdC80q/Sr9C0XCIsXG4gICAgICB0ZW1wbGF0ZVRpdGxlOiBcItCT0LDRgNGH0LjQs9C90Ysg0LfQsNCz0LLQsNGAXCIsXG4gICAgICB0b3RhbHM6IFwi0J3QuNC50YJcIixcbiAgICAgIGxvZ2ljOiBcItCb0L7Qs9C40LpcIixcbiAgICAgIGxheW91dDogXCLQl9C+0YXQuNC+0L0g0LHQsNC50LPRg9GD0LvQsNC70YJcIixcbiAgICAgIGRhdGE6IFwi06jQs9Op0LPQtNOp0LtcIixcbiAgICAgIHZhbGlkYXRpb246IFwi0JHQsNGC0LvQsNGFXCIsXG4gICAgICBjZWxsczogXCLQndKv0LTQvdC40Lkg0YLQtdC60YHRglwiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0LDQvNC20LjQu9GC0YLQsNC5INCx06nQs9C706nQs9C00LvTqdOpLlwiLFxuICAgICAgbG9nbzogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9GL0L0g0LPQsNGA0YfQuNCzINC00LDRhdGMINC70L7Qs9C+XCIsXG4gICAgICBzbGlkZXI6IFwi0JPRg9C70YHRg9GD0LvQsNCz0YdcIixcbiAgICAgIGV4cHJlc3Npb246IFwi0LjQu9GN0YDRhdC40LnQu9GN0LtcIixcbiAgICAgIG90aGVyczogXCLQkdGD0YHQsNC0XCIsXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwi0KjQuNC90LYg0YfQsNC90LDRgNGL0LMg0LfQsNGB0LLQsNGA0LvQsNGFICd7MH0nXCIsXG4gICAgaXRlbXM6IFwi0K3Qu9C10LzQtdC90YLSr9Kv0LRcIixcbiAgICBjaG9pY2VzVmlzaWJsZUlmOiBcItCh0L7QvdCz0L7Qu9GC0YPRg9C0INGF0LDRgNCw0LPQtNCw0L3QsCDRhdGN0YDRjdCyXCIsXG4gICAgY2hvaWNlc0VuYWJsZUlmOiBcItCh0L7QvdCz0L7Qu9GC0YPRg9C0INGB0L7QvdCz0L7Qs9C00L7QvdC+INGF0Y3RgNGN0LJcIixcbiAgICBjb2x1bW5zRW5hYmxlSWY6IFwi0JHQsNCz0LDQvdGD0YPQtCDRhdCw0YDQsNCz0LTQsNC90LAg0YXRjdGA0Y3QslwiLFxuICAgIHJvd3NFbmFibGVJZjogXCLQnNOp0YDQvdKv0q/QtCDRhdCw0YDQsNCz0LTQsNC90LAg0YXRjdGA0Y3QslwiLFxuICAgIGluZGVudDogXCLQlNC+0LPQvtC7INC806nRgCDQvdGN0LzRjdGFXCIsXG4gICAgcGFuZWw6IHtcbiAgICAgIGluZGVudDogXCLQk9Cw0LTQvdCw0YUg0LTQvtCz0L7QuyDQvNOp0YAg0L3RjdC80Y3RhVwiLFxuICAgIH0sXG4gICAgaW5uZXJJbmRlbnQ6IFwi0JTQvtGC0L7QvtC0INC00L7Qs9C+0Lsg0LzTqdGAINC90Y3QvNGN0YVcIixcbiAgICBkZWZhdWx0VmFsdWVGcm9tTGFzdFJvdzogXCLTqNC80L3TqdGFINC806nRgNC906nTqdGBINKv0L3QtNGB0Y3QvSDRg9GC0LPQsCDQsNCy0LDRhVwiLFxuICAgIGRlZmF1bHRWYWx1ZUZyb21MYXN0UGFuZWw6IFwi0KHSr9Kv0LvQuNC50L0g0L/QsNC90LXQu9Cw0LDRgSDSr9C90LTRgdGN0L0g0YPRgtCz0LAg0LDQstCw0YVcIixcbiAgICBlbnRlck5ld1ZhbHVlOiBcItCj0YLQs9CwINC+0YDRg9GD0LvQvdCwINGD0YMuXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsNC0INCw0YHRg9GD0LvRgiDQvtGA0YPRg9C70L3QsCDRg9GDLlwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwi0KHRhdC10Lwg0YPRgdGC0LPQsNC90LAg0YPRgy5cIixcbiAgICB0aXRsZUtleWJvYXJkQWRvcm5lclRpcDogXCLQl9Cw0YHQsNGF0YvQvSDRgtGD0LvQtCBFbnRlciDRgtC+0LLRh9C40LnQsyDQtNCw0YDQvdCwINGD0YNcIixcbiAgICBrZXlib2FyZEFkb3JuZXJUaXA6XG4gICAgICBcItCX0LDRgdCw0YXRi9C9INGC0YPQu9C0IEVudGVyINGC0L7QstGH0LjQudCzINC00LDRgNC90LAg0YPRgywg0KPRgdGC0LPQsNGF0YvQvSDRgtGD0LvQtCBEZWxldGUg0YLQvtCy0YfQuNC50LMg0LTQsNGA0L3QsCDRg9GDLCDQpdOp0LTTqdC70LPTqdGF0LjQudC9INGC0YPQu9C0IGFsdCArINC00Y3RjdGIINGB0YPQvCDRjdGB0LLRjdC7INC00L7QvtGIINGB0YPQvCDQtNCw0YDQvdCwINGD0YNcIixcbiAgICB0cmlnZ2VyT246IFwiT24gXCIsXG4gICAgdHJpZ2dlck1ha2VQYWdlc1Zpc2libGU6IFwi0KXRg9GD0LTRgdGD0YPQtNGL0LMg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCLQrdC70LXQvNC10L3RgtKv0q/QtNC40LnQsyDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCJDb21wbGV0ZSB0aGUgc3VydmV5IGlmIHN1Y2NlZWQuXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCLQodGF0LXQvCDRgtC+0YXQuNGA0YPRg9C70LDQs9C00LDQsNCz0q/QuSDQsdCw0LnQvdCwXCIsXG4gICAgdHJpZ2dlclJ1bklmOiBcItCQ0LbQuNC70YPRg9C70LDRhSDRhdGN0YDRjdCyXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCLQo9GC0LPQsCDTqdOp0YDRh9C706nRhTogXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcItCj0YLQs9CwINGF0YPRg9C70LDRhTogXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb246IFwi0LjQu9GN0YDRhdC40LnQu9GN0LvQsyDQsNC20LjQu9C70YPRg9C70LDRhVwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCLRhdKv0YDRgtGN0Ls6IFwiLFxuICAgIHRyaWdnZXJHb3RvTmFtZTogXCLQkNGB0YPRg9C70YIg0YDRg9GDINKv0YHRgNGN0YVcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCLQpdGD0LLRjNGB0LDQs9GHINGB0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0YvQvSDSr9GAINC00q/QvdC0INC+0YDRg9GD0LvQsNGF0LPSr9C5INCx0LDQudGFLlwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uRW1wdHk6IFwi0JHQvtC00LjRgiDQuNC70Y3RgNGF0LjQudC70Y3QuyDQvtGA0YPRg9C70L3QsCDRg9GDLlwiLFxuICAgIGVtcHR5RXhwcmVzc2lvblBsYWNlSG9sZGVyOiBcItC40LvRjdGA0YXQuNC50LvRjdC70LMg0Y3QvdC0INCx0LjRh9C90Y0g0q/Sry4uLlwiLFxuICAgIG5vRmlsZTogXCLQpNCw0LnQuyDRgdC+0L3Qs9C+0L7Qs9Kv0Lkg0LHQsNC50L3QsC5cIixcbiAgICBjbGVhcklmSW52aXNpYmxlOiBcItCQ0YHRg9GD0LvRgiDQvdGD0YPQstCw0Lsg0YPRgtCz0YvQsyDRhtGN0LLRjdGA0LvRjdGFLlwiLFxuICAgIHZhbHVlUHJvcGVydHlOYW1lOiBcItCj0YLQs9GL0L0g0YjQuNC90LYg0YfQsNC90LDRgNGL0L0g0L3RjdGAXCIsXG4gICAgc2VhcmNoRW5hYmxlZDogXCLQpdCw0LnQu9GC0YvQsyDQuNC00Y3QstGF0LbSr9Kv0LvRjdGFXCIsXG4gICAgaGlkZVNlbGVjdGVkSXRlbXM6IFwi0KHQvtC90LPQvtCz0LTRgdC+0L0g0YXRjdGB0LPQuNC50LMg0L3Rg9GD0YVcIixcbiAgICBjbG9zZU9uU2VsZWN0OiBcItCh0L7QvdCz0L7Qu9GCINGF0LjQudGB0Y3QvSDSr9C10LQg0LTQvtC+0Ygg0LHRg9GD0YHQsNC9INGB0L7QvdCz0L7Qu9GC0YPRg9C00YvQsyDRhdCw0LDRhVwiLFxuICAgIHNpZ25hdHVyZVdpZHRoOiBcItCT0LDRgNGL0L0g0q/RgdCz0LjQudC9INOp0YDQs9Op0L1cIixcbiAgICBzaWduYXR1cmVIZWlnaHQ6IFwi0JPQsNGA0YvQvSDSr9GB0LPQuNC50L0g06nQvdC006nRgFwiLFxuICAgIHZlcnRpY2FsQWxpZ246IFwi0JHQvtGB0L7QviDRjdCz0L3Sr9Kv0LvRjdGFXCIsXG4gICAgYWx0ZXJuYXRlUm93czogXCLQpdGD0LLQuNC70LHQsNGAINC806nRgNC90q/Sr9C0XCIsXG4gICAgY29sdW1uc1Zpc2libGVJZjogXCLQkdCw0LPQsNC90YPRg9C0INGF0LDRgNCw0LPQtNCw0L3QsCDRhdGN0YDRjdCyXCIsXG4gICAgcm93c1Zpc2libGVJZjogXCLQnNOp0YDQvdKv0q/QtCDRhdCw0YDQsNCz0LTQsNC90LAg0YXRjdGA0Y3QslwiLFxuICAgIG90aGVyUGxhY2Vob2xkZXI6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INGF0Y3RgdGN0LNcIixcbiAgfSxcbiAgLy8gUHJvcGVydHkgdmFsdWVzXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCLSrtC90Y3QvVwiLFxuICAgIGZhbHNlOiBcItCl0YPQtNCw0LtcIixcbiAgICBpbmhlcml0OiBcItCj0LTQsNC80YjQuNGFXCIsXG4gICAgc2hvdzogXCLQpdCw0YDQsNCz0LTQsNC90LBcIixcbiAgICBoaWRlOiBcItCd0YPRg9GB0LDQvVwiLFxuICAgIGRlZmF1bHQ6IFwi0q7QvdC00YHRjdC9XCIsXG4gICAgaW5pdGlhbDogXCLQkNC90YXQvdGLXCIsXG4gICAgcmFuZG9tOiBcItCh0LDQvdCw0LzRgdCw0YDQs9Kv0LlcIixcbiAgICBjb2xsYXBzZWQ6IFwi0JHQsNCz0LDRgdGB0LDQvVwiLFxuICAgIGV4cGFuZGVkOiBcItOo0YDQs9Op0YLQs9Op0YHTqdC9XCIsXG4gICAgbm9uZTogXCLQkNC70Ywg0L3RjCDRhyDQsdC40YhcIixcbiAgICBhc2M6IFwi06jQs9GB06nQtiDQsdCw0LnQs9Cw0LBcIixcbiAgICBkZXNjOiBcItCR0YPRg9GA0Ycg0LHQsNC50LPQsNCwXCIsXG4gICAgaW5kZXRlcm1pbmF0ZTogXCLQotC+0LTQvtGA0YXQvtC50LPSr9C5XCIsXG4gICAgZGVjaW1hbDogXCLQkdGD0YLQsNGA0YXQsNC5XCIsXG4gICAgY3VycmVuY3k6IFwi0JzTqdC90LPTqdC9INGC0Y3QvNC00Y3Qs9GCXCIsXG4gICAgcGVyY2VudDogXCLQpdGD0LLRjFwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwi0K3RhdC90LjQuSDQv9Cw0L3QtdC7INOp0YDQs9Op0YHRgdOp0L1cIixcbiAgICBvZmY6IFwi0JDRgdGD0YPQu9GC0YvQvSDRgtC+0L7QsyDQvdGD0YPRhVwiLFxuICAgIG9ucGFuZWw6IFwi0J/QsNC90LXQuyDQsdC+0LvQs9C+0L0g0LTRjdGN0YAg0Y3RhdC70Y3RhVwiLFxuICAgIG9uUGFuZWw6IFwi0J/QsNC90LXQuyDQsdC+0LvQs9C+0L0g0LTRjdGN0YAg0Y3RhdC70Y3RhVwiLFxuICAgIG9uU3VydmV5OiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0YvQvSDRgtGD0YDRiCDSr9GA0LPRjdC70LbQu9GN0YVcIixcbiAgICBsaXN0OiBcItCW0LDQs9GB0LDQsNC70YJcIixcbiAgICBwcm9ncmVzc1RvcDogXCLQn9Cw0L3QtdC7INGH0LjQs9C70q/Sr9C70Y3Qs9GHICsg0K/QstGG0YvQvSDQvNOp0YAg0LTRjdGN0LQg0YXRjdGB0Y3Qs9GCINCx0LDQudGA0LvQsNGFXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwi0J/QsNC90LXQuyDRh9C40LPQu9Kv0q/Qu9GN0LPRhyArINCv0LLRhtGL0L0g0LzTqdGAINC00L7QvtC0INGF0Y3RgdGN0LPRgiDQsdCw0LnRgNC70LDRhVwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOlxuICAgICAgXCLQn9Cw0L3QtdC7INGH0LjQs9C70q/Sr9C70Y3Qs9GHICsg0K/QstGG0YvQvSDQvNOp0YAg0LTRjdGN0LQg0LHQsCDQtNC+0L7QtCDRhdGN0YHRjdCz0YIg0LHQsNC50YDQu9Cw0YVcIixcbiAgICBob3Jpem9udGFsOiBcItCl0Y3QstGC0Y3RjVwiLFxuICAgIHZlcnRpY2FsOiBcItCR0L7RgdC+0L5cIixcbiAgICB0b3A6IFwi0JTRjdGN0LRcIixcbiAgICBib3R0b206IFwi0JTQvtC+0LRcIixcbiAgICB0b3BCb3R0b206IFwi0JTRjdGN0LQg0LHQsCDQtNC+0L7QtFwiLFxuICAgIGJvdGg6IFwi0JDQu9GMINCw0LvRjCDQvdGMXCIsXG4gICAgbGVmdDogXCLQl9Kv0q/QvVwiLFxuICAgIHJpZ2h0OiBcItCR0LDRgNGD0YPQvVwiLFxuICAgIGNvbG9yOiBcItOp0L3Qs9OpXCIsXG4gICAgZGF0ZTogXCLQvtCz0L3QvtC+XCIsXG4gICAgZGF0ZXRpbWU6IFwiZGF0ZXRpbWVcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwiZGF0ZXRpbWUtbG9jYWxcIixcbiAgICBlbWFpbDogXCLRhtCw0YXQuNC8INGI0YPRg9C00LDQvVwiLFxuICAgIG1vbnRoOiBcItGB0LDRgFwiLFxuICAgIG51bWJlcjogXCLRgtC+0L5cIixcbiAgICBwYXNzd29yZDogXCLQvdGD0YPRhiDSr9CzXCIsXG4gICAgcmFuZ2U6IFwicmFuZ2VcIixcbiAgICB0ZWw6IFwi0JTRg9Cz0LDQsNGAXCIsXG4gICAgdGV4dDogXCLQotC10LrRgdGCXCIsXG4gICAgdGltZTogXCLRhtCw0LNcIixcbiAgICB1cmw6IFwidXJsXCIsXG4gICAgd2VlazogXCLQtNC+0LvQvtC+INGF0L7QvdC+0LNcIixcbiAgICBoaWRkZW46IFwi0J3Rg9GD0YHQsNC9XCIsXG4gICAgb246IFwi06jQvNC906nRhSDRhdGD0YPQtNCw0YHQvdCw0LDRgSDSr9GA0LPRjdC70LbQu9GN0YVcIixcbiAgICBvblBhZ2U6IFwi0KXRg9GD0LTQsNGBINCx0L7Qu9Cz0L7QvSDQtNGN0Y3RgCDRjdGF0LvRjdGFXCIsXG4gICAgZWRpdDogXCLQl9Cw0YHQsNC2INCx0L7Qu9C00L7Qs1wiLFxuICAgIGRpc3BsYXk6IFwi0JfTqdCy0YXTqdC9INGD0L3RiNC40YVcIixcbiAgICBvbkNvbXBsZXRlOiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0LDQvNC20LjQu9GC0YLQsNC5INCx06nQs9C706nQs9C00YHTqdC9INKv0LXQtC5cIixcbiAgICBvbkhpZGRlbjogXCLQkNGB0YPRg9C70YIg0L3Rg9GD0LPQtNGB0LDQvSDSr9C10LRcIixcbiAgICBvbkhpZGRlbkNvbnRhaW5lcjogXCLQkNGB0YPRg9C70YIsINC/0LDQvdC10Lsg0Y3RgdCy0Y3QuyDRhdGD0YPQtNCw0YEg0L3Rg9GD0LPQtNGB0LDQvSDSr9C10LRcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczoge1xuICAgICAgbm9uZTogXCLQpdGN0LfRjdGNINGHINKv0LPSr9C5XCIsXG4gICAgfSxcbiAgICBhbGw6IFwi0JHSr9GFXCIsXG4gICAgcGFnZTogXCLQpdGD0YPQtNCw0YFcIixcbiAgICBzdXJ2ZXk6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsFwiLFxuICAgIG9uTmV4dFBhZ2U6IFwi0JTQsNGA0LDQsNCz0LjQudC9INGF0YPRg9C00LDRgSDRgNGD0YMg0YjQuNC70LbQuNGFINKv0LXQtFwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcItCQ0YHRg9GD0LvRgiDRgdC+0LvQuNCz0LTRgdC+0L3RiyDQtNCw0YDQsNCwXCIsXG4gICAgb25WYWx1ZUNoYW5naW5nOiBcItCQ0YHRg9GD0LvRgiDRgdC+0LvQuNCz0LTRhdC+0L7RgSDTqdC80L3TqVwiLFxuICAgIHN0YW5kYXJkOiBcItCQ0L3RhdC00LDQs9GHINCx0q/RgtGN0YZcIixcbiAgICBzaW5nbGVQYWdlOiBcItCR0q/RhSDQsNGB0YPRg9C70YIg0L3RjdCzINGF0YPRg9C00LDRgSDQtNGN0Y3RgFwiLFxuICAgIHF1ZXN0aW9uUGVyUGFnZTogXCLQkdKv0YUg0LDRgdGD0YPQu9GCINCx0LjQtSDQtNCw0LDRgdCw0L0g0YXRg9GD0LTQsNGBINC00Y3RjdGAXCIsXG4gICAgbm9QcmV2aWV3OiBcItCj0YDRjNC00YfQuNC70LDQvSDRhdCw0YDQsNGFINCx0L7Qu9C+0LzQttCz0q/QuVwiLFxuICAgIHNob3dBbGxRdWVzdGlvbnM6IFwi0JHSr9GFINCw0YHRg9GD0LvRgtGL0LMg0YXQsNGA0YPRg9C70LDRhS5cIixcbiAgICBzaG93QW5zd2VyZWRRdWVzdGlvbnM6IFwi0JfTqdCy0YXTqdC9INGF0LDRgNC40YPQu9GB0LDQvSDQsNGB0YPRg9C70YLRg9GD0LTRi9CzINGF0LDRgNGD0YPQu9Cw0YUuXCIsXG4gICAgcGFnZXM6IFwi0JHTqdCz0LvTqdCz0LTRgdOp0L0g0YXRg9GD0LTRgdGD0YPQtFwiLFxuICAgIHF1ZXN0aW9uczogXCLQpdCw0YDQuNGD0LvRgdCw0L0g0LDRgdGD0YPQu9GC0YPRg9C0XCIsXG4gICAgcmVxdWlyZWRRdWVzdGlvbnM6IFwi0JfQsNCw0LLQsNC7INCx06nQs9C706nRhSDQsNGB0YPRg9C70YLRg9GD0LRcIixcbiAgICBjb3JyZWN0UXVlc3Rpb25zOiBcItCX06nQsiDRhdCw0YDQuNGD0LvRgtGD0YPQtFwiLFxuICAgIGJ1dHRvbnM6IFwi0JHTqdCz0LvTqdCz0LTRgdOp0L0g0YXRg9GD0LTRgdGD0YPQtCAoVUkg0YLQvtCy0YcpXCIsXG4gICAgdW5kZXJJbnB1dDogXCLQntGA0L7Qu9GC0YvQvSDQtNC+0L7RgFwiLFxuICAgIHVuZGVyVGl0bGU6IFwi0JPQsNGA0YfQs9C40LnQvSDQtNC+0L7RgFwiLFxuICAgIG9uQmx1cjogXCLQkdKv0LTQs9GN0YDSr9Kv0LvRgdGN0L0g0q/QtdC0XCIsXG4gICAgb25UeXBpbmc6IFwi0JHQuNGH0LjQtiDQsdCw0LnRhSDSr9C10LRcIixcbiAgICB1bmRlclJvdzogXCLQnNOp0YDQuNC50L0g0LTQvtC+0YBcIixcbiAgICB1bmRlclJvd1NpbmdsZTogXCLQnNOp0YDQuNC50L0g0LTQvtC+0YAsINC306nQstGF06nQvSDQs9Cw0L3RhiDQv9Cw0L3QtdC7INGF0LDRgNCw0LPQtNCw0L3QsFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczoge1xuICAgICAgbm9uZTogXCLQndGD0YPRgdCw0L1cIixcbiAgICB9LFxuICAgIHNob3dQcm9ncmVzc0Jhcjoge1xuICAgICAgb2ZmOiBcItCd0YPRg9GB0LDQvVwiLFxuICAgIH0sXG4gICAgc2hvd1RpbWVyUGFuZWw6IHtcbiAgICAgIG5vbmU6IFwi0J3Rg9GD0YHQsNC9XCIsXG4gICAgfSxcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IHtcbiAgICAgIGFsbDogXCLQkNC70Ywg0LDQu9GMINC90YxcIixcbiAgICB9LFxuICAgIGRldGFpbFBhbmVsTW9kZToge1xuICAgICAgbm9uZTogXCLQndGD0YPRgdCw0L1cIixcbiAgICB9LFxuICAgIGFkZFJvd0xvY2F0aW9uOiB7XG4gICAgICBkZWZhdWx0OiBcItCc0LDRgtGA0LjRhtGL0L0g0LfQsNCz0LLQsNGA0LDQsNGBINGI0LDQu9GC0LPQsNCw0LvQsNGFXCIsXG4gICAgfSxcbiAgICBwYW5lbHNTdGF0ZToge1xuICAgICAgZGVmYXVsdDogXCLQpdGN0YDRjdCz0LvRjdCz0YfQuNC0INC/0LDQvdC10LvQuNC50LMg06nRgNCz06nRgdCz06nQtiDQsdCw0LPQsNGB0LPQsNC2INGH0LDQtNCw0YXQs9Kv0LlcIixcbiAgICAgIGNvbGxhcHNlZDogXCLQkdKv0YUg0L/QsNC90LXQuyDQsdCw0LPQsNGB0YHQsNC9XCIsXG4gICAgICBleHBhbmRlZDogXCLQkdKv0YUg0L/QsNC90LXQuyDTqdGA0LPTqdGC0LPTqdGB0YHTqdC9XCIsXG4gICAgfSxcbiAgICB3aWR0aE1vZGU6IHtcbiAgICAgIGF1dG86IFwi0JDQstGC0L7QvNCw0YJcIixcbiAgICAgIHN0YXRpYzogXCLQodGC0LDRgtC40LpcIixcbiAgICAgIHJlc3BvbnNpdmU6IFwi0KPRj9C9INGF0LDRgtCw0L1cIixcbiAgICB9LFxuICAgIGltYWdlRml0OiB7XG4gICAgICBub25lOiBcItCQ0LvRjCDQvdGMINGHINCx0LjRiFwiLFxuICAgICAgY29udGFpbjogXCLQkNCz0YPRg9C70LDRhVwiLFxuICAgICAgY292ZXI6IFwi0KXQsNC70YXQu9Cw0YVcIixcbiAgICAgIGZpbGw6IFwi0JHTqdCz0LvTqdGFXCIsXG4gICAgfSxcbiAgICBjb250ZW50TW9kZToge1xuICAgICAgYXV0bzogXCLQkNCy0YLQvtC80LDRglwiLFxuICAgICAgaW1hZ2U6IFwi0JfRg9GA0LDQs1wiLFxuICAgICAgdmlkZW86IFwi0JLQuNC00LXQvlwiLFxuICAgICAgeW91dHViZTogXCJZb3VUdWJlXCIsXG4gICAgfSxcbiAgICBkaXNwbGF5TW9kZToge1xuICAgICAgYXV0bzogXCLQkNCy0YLQvtC80LDRglwiLFxuICAgICAgYnV0dG9uczogXCLQotC+0LLRh9C90YPRg9C0XCIsXG4gICAgICBkcm9wZG93bjogXCLQlNC+0L7RiCDQt9Cw0LTRgNCw0YVcIixcbiAgICB9LFxuICB9LFxuICAvLyBPcGVyYXRvcnNcbiAgb3A6IHtcbiAgICBlbXB0eTogXCLQpdC+0L7RgdC+0L1cIixcbiAgICBub3RlbXB0eTogXCLQpdC+0L7RgdC+0L0g0LHQuNGIXCIsXG4gICAgZXF1YWw6IFwi0KLRjdC90YbRjdGFXCIsXG4gICAgbm90ZXF1YWw6IFwi0KLRjdC90YbRjdGF0LPSr9C5INCx0LDQudGFXCIsXG4gICAgY29udGFpbnM6IFwi0JDQs9GD0YPQu9GB0LDQvVwiLFxuICAgIG5vdGNvbnRhaW5zOiBcItCQ0LPRg9GD0LvQsNCw0LPSr9C5XCIsXG4gICAgYW55b2Y6IFwi0JDQu9GMINC90Y3Qs9C40LnQsyDQvdGMXCIsXG4gICAgYWxsb2Y6IFwi0JHSr9Cz0LTQuNC50LMg0L3RjFwiLFxuICAgIGdyZWF0ZXI6IFwiLdCw0LDRgSDQuNGFXCIsXG4gICAgbGVzczogXCIt0LDQsNGBINCx0LDQs9CwXCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwiLdCw0LDRgSDQuNGFINGN0YHQstGN0Lsg0YLRjdC90YbSr9KvINCx0LDQudGFXCIsXG4gICAgbGVzc29yZXF1YWw6IFwiLdCw0LDRgSDQsdCw0LPQsCDRjdGB0LLRjdC7INGC0Y3QvdGG0q/SryDQsdCw0LnRhVwiLFxuICAgIGFuZDogXCLQsdCwXCIsXG4gICAgb3I6IFwi0Y3RgdCy0Y3Qu1wiLFxuICB9LFxuICAvLyBFbWJlZCB3aW5kb3dcbiAgZXc6IHtcbiAgICBhbmd1bGFyOiBcIkFuZ3VsYXIg0YXRg9Cy0LjQu9Cx0LDRgCDQsNGI0LjQs9C70LDRhVwiLFxuICAgIGpxdWVyeTogXCJqUXVlcnkg0YXRg9Cy0LjQu9Cx0LDRgCDQsNGI0LjQs9C70LDRhVwiLFxuICAgIGtub2Nrb3V0OiBcIktub2Nrb3V0INGF0YPQstC40LvQsdCw0YAg0LDRiNC40LPQu9Cw0YVcIixcbiAgICByZWFjdDogXCJSZWFjdCDRhdGD0LLQuNC70LHQsNGAINCw0YjQuNCz0LvQsNGFXCIsXG4gICAgdnVlOiBcIlZ1ZSDRhdGD0LLQuNC70LHQsNGAINCw0YjQuNCz0LvQsNGFXCIsXG4gICAgYm9vdHN0cmFwOiBcImJvb3RzdHJhcCDQsdKv0YLRhtGN0LRcIixcbiAgICBtb2Rlcm46IFwi0J7RgNGH0LjQvSDSr9C10LjQudC9XCIsXG4gICAgZGVmYXVsdDogXCLSrtC90LTRgdGN0L1cIixcbiAgICBvcmFuZ2U6IFwi0KPQu9Cx0LDRgCDRiNCw0YBcIixcbiAgICBkYXJrYmx1ZTogXCLQpdCw0YAg0YXTqdGFXCIsXG4gICAgZGFya3Jvc2U6IFwi0KXSr9GA0Y3QvVwiLFxuICAgIHN0b25lOiBcItCn0YPQu9GD0YPQvVwiLFxuICAgIHdpbnRlcjogXCLTqNCy0LvQuNC50L1cIixcbiAgICB3aW50ZXJzdG9uZTogXCLTqNCy0LvQuNC50L0t0YfRg9C70YPRg9C9XCIsXG4gICAgc2hvd09uUGFnZTogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9GL0LMg0YXRg9GD0LTQsNGBINC00Y3RjdGAINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICBzaG93SW5XaW5kb3c6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9CzINGG0L7QvdGF0L7QvdC0INGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICBsb2FkRnJvbVNlcnZlcjogXCJKU09OINGB0LXRgNCy0LXRgNGN0Y3RgSDRgdCw0L3QsNC7INCw0YHRg9GD0LvQs9GL0LMg0LDRh9Cw0LDQu9C70YPRg9C70LDRhVwiLFxuICAgIHRpdGxlU2NyaXB0OiBcItCh0LrRgNC40L/RgiDQsdCwINGF0Y3QsiDQvNCw0Y/Qs1wiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIixcbiAgfSxcbiAgLy8gUHJldmlldyAoU3VydmV5KVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwi0KLQtdGB0YIg0YXQuNC50YUg0YXRg9GD0LTRgdGL0LMg0YHQvtC90LPQvtGFLlwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCLQpdCw0YDQsNCz0LTQsNGF0LPSr9C5INGN0LvQtdC80LXQvdGC0q/Sr9C00LjQudCzINGF0LDRgNGD0YPQu9Cw0YUuXCIsXG4gICAgaGlkZUludmlzaWJsZUVsZW1lbnRzOiBcItCl0LDRgNCw0LPQtNCw0YXQs9Kv0Lkg0Y3Qu9C10LzQtdC90YLSr9Kv0LTQuNC50LMg0L3Rg9GD0YUuXCIsXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCLQpdCw0YDQuNGD0LvRgtGL0L0g0YLQvtC+XCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwi0KbQsNGF0LjQvCDRiNGD0YPRg9C00LDQvVwiLFxuICAgIGV4cHJlc3Npb252YWxpZGF0b3I6IFwi0LjQu9GN0YDRhdC40LnQu9GN0LtcIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcItCi0L7QvlwiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcIlJlZ2V4XCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCLQotC10LrRgdGCXCIsXG4gIH0sXG4gIHRyaWdnZXJzOiB7XG4gICAgY29tcGxldGV0cmlnZ2VyOiBcItCh0LDQvdCw0Lsg0LDRgdGD0YPQu9Cz0LAg0LTRg9GD0YHQs9Cw0YUuXCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcItCl0LDRgNC40YPQu9GCINGC0LDQstC40YVcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcItCl0LDRgNC40YPQu9GCINGF0YPRg9C70LDRhVwiLFxuICAgIHNraXB0cmlnZ2VyOiBcItCQ0YHRg9GD0LvRgiDRgNGD0YMg0q/RgdGA0Y3RhVwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcItC40LvRjdGA0YXQuNC50LvRjdC7INCw0LbQu9GD0YPQu9Cw0YVcIixcbiAgICB2aXNpYmxldHJpZ2dlcjogXCLQpdCw0YDQsNCz0LTQsNGFINCx0LDQudC00LvRi9CzINOp06nRgNGH0LvTqdGFXCIsXG4gIH0sXG4gIHBlaGVscDoge1xuICAgIGNvb2tpZU5hbWU6IFwi0KXRjdGA0Y3Qs9C70Y3Qs9GHINC90Y3QsyDRgdGD0LTQsNC70LPQsNCw0LMg0YXQvtGR0YAg0YPQtNCw0LAg0LHTqdCz0LvTqdGF06nTqdGBINCa0q/Sr9C60Lgg0YHRjdGA0LPQuNC50LvQvdGNLlwiLFxuICAgIGZvcm1hdDogXCJ7MH0g0L3RjCDRgtGD0YXQsNC50L0g0YPRgtCz0YvQvSDQttC40YjRjdGNINCx0L7Qu9C90L4uXCIsXG4gICAgdG90YWxUZXh0OlxuICAgICAgXCLQpdCw0LzQs9C40LnQvSDQsdCw0LPQsNC00LDQsCDQvdGN0LMg0LHQsNCz0LDQvdCwINCd0Y3QvNGN0YUg0YLTqdGA0LvQuNC50L0g0Y3QstGB0Y3QuyDQvdGN0LzRjdGFINKv0LnQu9C00Y3Qu9GC0Y3QuSDSr9C10LQg0Lsg0YXQsNGA0LDQs9C00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuXCIsXG4gICAgYWNjZXB0ZWRUeXBlczpcbiAgICAgIFwi0JDRgtGA0LjQsdGD0YLRi9C9INGC0LDQu9Cw0LDRgCDQvdGN0LzRjdC70YIg0LzRjdC00Y3RjdC70LvQuNC50LMg0q/Qt9GN0YXQuNC50L0g0YLRg9C70LQgW2FjY2VwdF0oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS90YWdzL2F0dF9pbnB1dF9hY2NlcHQuYXNwKS3Qu9Kv0q8g0YXQsNC90LTQsNC90LAg0YPRgy5cIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCLQl9Op0LLRhdOp0L0g0L7Qu9C+0L0g0YHQvtC90LPQvtC70YLRgtC+0Lkg0Y3RgdCy0Y3QuyBSYWRpb2dyb3VwIC3QtCDQsNGI0LjQs9C70LDQvdCwLlwiLFxuICAgIGF1dG9jb21wbGV0ZTpcbiAgICAgIFwi0JDRgtGC0YDQuNCx0YPRgtGL0L0g0YLQsNC70LDQsNGAINC00Y3Qu9Cz0Y3RgNGN0L3Qs9Kv0Lkg0LzRjdC00Y3RjdC70LvQuNC50LMgW2F1dG9jb21wbGV0ZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9BdHRyaWJ1dGVzL2F1dG9jb21wbGV0ZSkt0Y3RjdGBINCw0LLQvdCwINGD0YMgLlwiLFxuICAgIHZhbHVlTmFtZTpcbiAgICAgIFwi0KXRjdGA0Y3QsiDRjdC90Y0g0YLQsNC70LHQsNGA0YvQvSDRg9GC0LPRi9CzINC+0YDRg9GD0LvQsNCw0LPSr9C5INCx0L7QuyDRhdCw0YDQuNGD0LvRgiDQvdGMINCw0LLRgtC+0LzQsNGC0LDQsNGAINCd0Y3RgCDRgtCw0LvQsdCw0YDRgiDRhdCw0LTQs9Cw0LvQvdCwLlwiLFxuICAgIGNob2ljZXNieXVybDoge1xuICAgICAgdmFsdWVOYW1lOiBcIiBcIixcbiAgICB9LFxuICAgIGtleU5hbWU6XG4gICAgICAn0KXRjdGA0Y3QsiDTqdCz06nQs9C00YHTqdC9INCx0LDQs9Cw0L3QsCDQsNC00LjQuyDRg9GC0LPQsNGC0LDQuSDQsdC+0Lsg0YHQsNC90LDQuyDQsNGB0YPRg9C70LPQsCBcItCU0LDQstGC0LDQs9C00YHQsNC9INGD0YLQs9CwXCIg0LPRjdGB0Y3QvSDQsNC70LTQsNCw0LMg0YXQsNGA0YPRg9C70L3QsC4nLFxuICB9LFxuICAvLyBQcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCLQk9Cw0YDRh9C40LNcIixcbiAgICAgIHRpdGxlOiBcIifQndGN0YAnLdGC0Y3QuSDQsNC00LjQu9GF0LDQvSDQsdC+0Lsg0YXQvtC+0YHQvtC9INC+0YDRhdC40YUuXCIsXG4gICAgfSxcbiAgICBtdWx0aVNlbGVjdDogXCLQntC70L7QvSDRgdC+0L3Qs9C+0LvRgtGL0LMg0LfTqdCy0YjTqdOp0YDTqdGFXCIsXG4gICAgc2hvd0xhYmVsOiBcItCX0YPRgNCz0LjQudC9INGC0LDQudC70LHQsNGAINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICB2YWx1ZTogXCLQo9GC0LPQsFwiLFxuICAgIHRhYkFsaWduOiBcItCl0LDQstGC0LDRgSDQsdCw0LnRgNC70YPRg9C70LDRhVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcItCi0LDQudC70LHQsNGAXCIsXG4gICAgbG9nb0ZpdDogXCLQm9C+0LPQvlwiLFxuICAgIHBhZ2VzOiBcItCl0YPRg9C00LDRgdC90YPRg9C0XCIsXG4gICAgcXVlc3Rpb25zOiBcItCQ0YHRg9GD0LvRgtGD0YPQtFwiLFxuICAgIHRyaWdnZXJzOiBcItCh0YXQtdC80q/Sr9C0XCIsXG4gICAgY2FsY3VsYXRlZFZhbHVlczogXCLQotC+0L7RhtC+0L7Qu9GB0L7QvSDRg9GC0LPRg9GD0LRcIixcbiAgICBzdXJ2ZXlJZDogXCLQodCw0L3QsNC7INCw0YHRg9GD0LvQs9GL0L0gSURcIixcbiAgICBzdXJ2ZXlQb3N0SWQ6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPRi9C9INC90LjQudGC0LvRjdC70LjQudC9IElEXCIsXG4gICAgc3VydmV5U2hvd0RhdGFTYXZpbmc6IFwi0KHQsNC90LDQuyDQsNGB0YPRg9C70LPQsCDTqdCz06nQs9C006nQuyDRhdCw0LTQs9Cw0LvQtiDQsdCw0LnRhdCw0LQg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIHF1ZXN0aW9uRGVzY3JpcHRpb25Mb2NhdGlvbjogXCLQkNGB0YPRg9C70YLRi9C9INGC0LDQudC70LHQsNGA0YvQvSDQsdCw0LnRgNGI0LjQu1wiLFxuICAgIHByb2dyZXNzQmFyVHlwZTogXCLQr9Cy0YbRi9C9INC806nRgNC90LjQuSDRgtOp0YDTqdC7XCIsXG4gICAgc2hvd1RPQzogXCJUT0Mg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIHRvY0xvY2F0aW9uOiBcIlRvYyDQsdCw0LnRgNGI0LjQu1wiLFxuICAgIHF1ZXN0aW9uVGl0bGVQYXR0ZXJuOiBcItCQ0YHRg9GD0LvRgtGL0L0g0LPQsNGA0YfQs9C40LnQvSDQt9Cw0LPQstCw0YBcIixcbiAgICB3aWR0aE1vZGU6IFwi06jRgNCz06nQvSDQs9C+0YDQuNC8XCIsXG4gICAgc2hvd0JyYW5kSW5mbzogXCLQkdGA0Y3QvdC0INC80Y3QtNGN0Y3Qu9C70LjQudCzINGF0LDRgNGD0YPQu9Cw0YVcIixcbiAgICB1c2VEaXNwbGF5VmFsdWVzSW5EeW5hbWljVGV4dHM6IFwi0JTQuNC90LDQvNC40Log0YLQtdC60YHRgtGN0LQg0YXQsNGA0YPRg9C70LDRhSDRg9GC0LPRi9CzINGF0Y3RgNGN0LPQu9GN0YVcIixcbiAgICB2aXNpYmxlSWY6IFwi0KXQsNGA0LDQs9C00LDQvdCwINGF0Y3RgNGN0LJcIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcItCT0LDRgNGH0LPQuNC50L0g0LHQsNC50YDRiNC40LtcIixcbiAgICBkZXNjcmlwdGlvbkxvY2F0aW9uOiBcItCi0LDQudC70LHQsNGA0YvQvSDQsdCw0LnRgNGI0LjQu1wiLFxuICAgIGRlZmF1bHRWYWx1ZUV4cHJlc3Npb246IFwi0q7QvdC00YHRjdC9INGD0YLQs9GL0L0g0LjQu9GN0YDRhdC40LnQu9GN0LtcIixcbiAgICByZXF1aXJlZElmOiBcItCX0LDQsNCy0LDQuyDQsdOp0LPQu9Op0YUg0YXRjdGA0Y3QslwiLFxuICAgIHZhbGlkYXRvcnM6IFwi0JHQsNGC0LvQsNCz0YdcIixcbiAgICBiaW5kaW5nczogXCLQpdC+0LvQsdC+0LPRh1wiLFxuICAgIHJlbmRlckFzOiBcItGA0YPRgyDRhdOp0YDQstKv0q/Qu9GN0YVcIixcbiAgICBhdHRhY2hPcmlnaW5hbEl0ZW1zOiBcItCt0YUg0Y3Qu9C10LzQtdC90YLSr9Kv0LTQuNC50LMg0YXQsNCy0YHQsNGA0LPQsNGFXCIsXG4gICAgY2hvaWNlczogXCLQodC+0L3Qs9C+0LvRgtGD0YPQtFwiLFxuICAgIGNob2ljZXNCeVVybDogXCJVcmwg0YHQvtC90L7Qu9GC0YPRg9C0XCIsXG4gICAgY3VycmVuY3k6IFwi0JzTqdC90LPTqdC9INGC0Y3QvNC00Y3Qs9GCXCIsXG4gICAgY2VsbEhpbnQ6IFwi0JbQuNGI0Y3RjSDRg9GC0LPQsFwiLFxuICAgIGlzVW5pcXVlOiBcItCU0LDQstGC0LDQs9C00LDRhdCz0q/QuSDRjdGB0Y3RhVwiLFxuICAgIHNob3dJbk11bHRpcGxlQ29sdW1uczogXCLQntC70L7QvSDQsdCw0LPQsNC90LDQtCDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgdG90YWxNYXhpbXVtRnJhY3Rpb25EaWdpdHM6IFwi0J3QuNC50YIg0YXQsNC80LPQuNC50L0g0LjRhSDQsdGD0YLQsNGA0YXQsNC5INGC0L7QvtC90YPRg9C0XCIsXG4gICAgdG90YWxNaW5pbXVtRnJhY3Rpb25EaWdpdHM6IFwi0J3QuNC50YIg0YXQsNC80LPQuNC50L0g0LHQsNCz0LAg0LHRg9GC0LDRgNGF0LDQuSDRgtC+0L7QvdGD0YPQtFwiLFxuICAgIGNvbHVtbnM6IFwi0JHQsNCz0LDQvdGD0YPQtFwiLFxuICAgIGRldGFpbEVsZW1lbnRzOiBcItCU0Y3Qu9Cz0Y3RgNGN0L3Qs9Kv0Lkg0Y3Qu9C10LzQtdC90YLSr9Kv0LRcIixcbiAgICBhbGxvd0FkYXB0aXZlQWN0aW9uczogXCLQlNCw0YHQsNC9INC30L7RhdC40YbQvtGFINKv0LnQu9C00LvQuNC50LMg0LfTqdCy0YjTqdOp0YDTqdGFXCIsXG4gICAgZGVmYXVsdFJvd1ZhbHVlOiBcItKu0L3QtNGB0Y3QvSDQvNOp0YDQuNC50L0g0YPRgtCz0LBcIixcbiAgICBkZXRhaWxQYW5lbFNob3dPbkFkZGluZzogXCLQndGN0LzRjdC2INCx0LDQudGFINKv0LXQtCDQvdCw0YDQuNC50LLRh9C40LvRgdCw0L0g0L/QsNC90LXQuyDRhdCw0YDRg9GD0LvQsNGFXCIsXG4gICAgY2hvaWNlc0xhenlMb2FkRW5hYmxlZDogXCJDaG9pY2VzIGxhenkgbG9hZCBlbmFibGVkXCIsXG4gICAgY2hvaWNlc0xhenlMb2FkUGFnZVNpemU6IFwiQ2hvaWNlcyBsYXp5IGxvYWQgcGFnZSBzaXplXCIsXG4gICAgaW5wdXRGaWVsZENvbXBvbmVudDogXCLQntGA0L7Qu9GC0YvQvSDRg9GC0LPRi9C9INCx0q/RgNGN0LvQtNGN0YXSr9Kv0L1cIixcbiAgICBpdGVtQ29tcG9uZW50OiBcItCt0LvQtdC80LXQvdGC0LjQudC9INCx0q/RgNGN0LvQtNGN0YXSr9Kv0L1cIixcbiAgICBtaW46IFwi0KXQsNC80LPQuNC50L0g0LHQsNCz0LBcIixcbiAgICBtYXg6IFwi0KXQsNC80LPQuNC50L0g0LjRhVwiLFxuICAgIG1pblZhbHVlRXhwcmVzc2lvbjogXCLQpdCw0LzQs9C40LnQvSDQsdCw0LPQsCDRg9GC0LPRi9C9INC40LvRjdGA0YXQuNC50LvRjdC7XCIsXG4gICAgbWF4VmFsdWVFeHByZXNzaW9uOiBcItCl0LDQvNCz0LjQudC9INC40YUg0YPRgtCz0YvQvSDQuNC70Y3RgNGF0LjQudC70Y3Qu1wiLFxuICAgIHN0ZXA6IFwi0JDQu9GF0LDQvFwiLFxuICAgIGRhdGFMaXN0OiBcItOo0LPTqdCz0LTQu9C40LnQvSDQttCw0LPRgdCw0LDQu9GCXCIsXG4gICAgaXRlbVNpemU6IFwi0K3Qu9C10LzQtdC90YLQuNC50L0g0YXRjdC80LbRjdGNXCIsXG4gICAgZWxlbWVudHM6IFwi0K3Qu9C10LzQtdC90YLSr9Kv0LRcIixcbiAgICBjb250ZW50OiBcItCa0L7QvdGC0LXQvdGCXCIsXG4gICAgbmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5OiBcItCn0LjQs9C70q/Sr9C70Y3RhSDRgtC+0LLRh9C90Ysg0YXQsNGA0LDQs9C00LDRhlwiLFxuICAgIG5hdmlnYXRpb25UaXRsZTogXCLQp9C40LPQu9Kv0q/Qu9GN0LPRh9C40LnQvSDQs9Cw0YDRh9C40LNcIixcbiAgICBuYXZpZ2F0aW9uRGVzY3JpcHRpb246IFwi0KfQuNCz0LvSr9Kv0LvRjdCz0YfQuNC50L0g0YLQsNC50LvQsdCw0YBcIixcbiAgICBsb25nVGFwOiBcIkxvbmcgdGFwXCIsXG4gICAgYXV0b0dyb3c6IFwi0JDQstGC0L7QvNCw0YLQsNCw0YAg0L3RjdC80Y3RhVwiLFxuICAgIGFjY2VwdENhcnJpYWdlUmV0dXJuOiBcIkFjY2VwdCBjYXJyaWFnZSByZXR1cm5cIixcbiAgICBkaXNwbGF5TW9kZTogXCLQlNGN0LvQs9GN0YbQuNC50L0g0LPQvtGA0LjQvFwiLFxuICAgIHJhdGVUeXBlOiBcItCU0LDQvNC20YPRg9C70LDRhSDRhdGD0YDQtFwiLFxuICAgIGxhYmVsOiBcItCo0L7RiNCz0L5cIixcbiAgICBjb250ZW50TW9kZTogXCLQmtC+0L3RgtC10L3RgtC40LnQvSDQs9C+0YDQuNC8XCIsXG4gICAgaW1hZ2VGaXQ6IFwi0JfRg9GA0LDQsyDQsdCw0LPRgtCw0LDRhVwiLFxuICAgIGFsdFRleHQ6IFwi0KLQsNC50LvQsdCw0YBcIixcbiAgICBoZWlnaHQ6IFwi06jQvdC006nRgFwiLFxuICAgIHBlbkNvbG9yOiBcItCR0LDQu9C90Ysg06nQvdCz06lcIixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFwi0JTRjdCy0YHQs9GN0YAg06nQvdCz06lcIixcbiAgICB0ZW1wbGF0ZUVsZW1lbnRzOiBcItCX0LDQs9Cy0LDRgNGL0L0g0Y3Qu9C10LzQtdC90YLSr9Kv0LRcIixcbiAgICBvcGVyYXRvcjogXCJPcGVyYXRvclwiLFxuICAgIGlzVmFyaWFibGU6IFwi0KXRg9Cy0YzRgdCw0YUg0YfQsNC00LLQsNGA0YLQsNC5XCIsXG4gICAgcnVuRXhwcmVzc2lvbjogXCLQuNC70Y3RgNGF0LjQudC70Y3Qu9CzINCw0LbQuNC70LvRg9GD0LvQsNGFXCIsXG4gICAgc2hvd0NhcHRpb246IFwi0KLQsNC50LvQsdCw0YAg0YXQsNGA0YPRg9C70LDRhVwiLFxuICAgIGljb25OYW1lOiBcItCU0q/RgNGB0LjQudC9INC90Y3RgFwiLFxuICAgIGljb25TaXplOiBcItCU0q/RgNGB0LjQudC9INGF0Y3QvNC20Y3RjVwiLFxuICB9LFxufTtcblxuLy8gVW5jb21tZW50IHRoZSBsaW5lIGJlbG93IGlmIHlvdSBjcmVhdGUgYSBjdXN0b20gZGljdGlvbmFyeS5cbi8vIFJlcGxhY2UgXCJlblwiIHdpdGggYSBjdXN0b20gbG9jYWxlIGNvZGUgKGZvciBleGFtcGxlLCBcImZyXCIgb3IgXCJkZVwiKSxcbi8vIFJlcGxhY2UgYGVuU3RyaW5nc2Agd2l0aCB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgY3VzdG9tIGRpY3Rpb25hcnkuXG5lZGl0b3JMb2NhbGl6YXRpb24ubG9jYWxlc1tcIm1uXCJdID0gbW5TdHJpbmdzO1xuIiwiLy9VbmNvbW1lbnQgdGhpcyBsaW5lIG9uIGNyZWF0aW5nIGEgdHJhbnNsYXRpb24gZmlsZVxuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uLCBkZWZhdWx0U3RyaW5ncyB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IHZhciBuYlN0cmluZ3MgPSB7XG4gIC8vc3VydmV5IHRlbXBsYXRlc1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcIlJlZGlnZXJcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rOiBcIlNlIG9nIGzDpnIgaHZvcmRhbiDDpSBvcHByZXR0ZSBueWUgc2tqZW1hXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGlua1VybDpcbiAgICAgIFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0gycnU5b2tJY29vTlpmcElieXE0cVE/dmlld19hcz1zdWJzY3JpYmVyXCIsXG4gICAgZHJvcFF1ZXN0aW9uOiBcIkRyYSBvZyBzbGlwcCBldCBzcMO4cnNtw6VsIGhlciBmcmEgVmVya3TDuHlsaXN0ZW4gdGlsIHZlbnN0cmUuXCIsXG4gICAgYWRkTG9naWNJdGVtOiBcIk9wcHJldHQgZW4gcmVnZWwgZm9yIMOlIHNrcmVkZGVyc3kgc2tqZW1hZmx5dGVuXCIsXG4gICAgY29weTogXCJLb3BpZXJcIixcbiAgICBhZGRUb1Rvb2xib3g6IFwiTGVnZyB0aWwgdmVya3TDuHlsaXN0ZW5cIixcbiAgICBkZWxldGVQYW5lbDogXCJTbGV0dCBwYW5lbFwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcIlNsZXR0IHNww7hyc23DpWxcIixcbiAgICBjb252ZXJ0VG86IFwiS29udmVydGVyIHRpbFwiLFxuICAgIGRyYWc6IFwiRHJhIGVsZW1lbnRcIixcbiAgfSxcbiAgLy9xdWVzdGlvblR5cGVzXG4gIHF0OiB7XG4gICAgZGVmYXVsdDogXCJTdGFuZGFyZFwiLFxuICAgIGNoZWNrYm94OiBcIlNqZWtrYm9rc1wiLFxuICAgIGNvbW1lbnQ6IFwiS29tbWVudGFyXCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwiQmlsZGV2ZWxnZXJcIixcbiAgICBpbWFnZTogXCJCaWxkZVwiLFxuICAgIGRyb3Bkb3duOiBcIk5lZHRyZWtrc2xpc3RlXCIsXG4gICAgZmlsZTogXCJGaWxcIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBtYXRyaXg6IFwiTWF0cmlzZSAoZW5rZWx2YWxnKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIk1hdHJpc2UgKGZsZXJ2YWxnKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0cmlzZSAoZHluYW1pc2tlIHJhZGVyKVwiLFxuICAgIG11bHRpcGxldGV4dDogXCJGbGVybGluamV0ZWtzdFwiLFxuICAgIHBhbmVsOiBcIlBhbmVsXCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIlBhbmVsIChkeW5hbWlza2UgcGFuZWxlcilcIixcbiAgICByYWRpb2dyb3VwOiBcIlJhZGlvZ3J1cHBlXCIsXG4gICAgcmF0aW5nOiBcIlJhbmdlcmluZ1wiLFxuICAgIHRleHQ6IFwiRW5rZWwgdGVrc3RcIixcbiAgICBib29sZWFuOiBcIkJvb2xlYW5cIixcbiAgICBleHByZXNzaW9uOiBcIkZvcm1lbFwiLFxuICAgIHNpZ25hdHVyZXBhZDogXCJTaWduYXR1clwiLFxuICAgIGZsb3dwYW5lbDogXCJGbHl0cGFuZWxcIixcbiAgfSxcbiAgLy9TdHJpbmdzIGluIEVkaXRvclxuICBlZDoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwiU3RhbmRhcmQgKHswfSlcIixcbiAgICBzdXJ2ZXk6IFwiU2tqZW1hXCIsXG4gICAgc2V0dGluZ3M6IFwiU2tqZW1haW5uc3RpbGxpbmdlclwiLFxuICAgIHNldHRpbmdzVG9vbHRpcDogXCLDhXBuZSBza2plbWFpbm5zdGlsbGluZ2VyXCIsXG4gICAgLy9vcGplY3RQcm9wZXJ0aWVzSGVhZGVyOiBcIkFkdmFuY2VkXCIsXG4gICAgLy9zaG93T2JqZWN0UHJvcGVydGllczogXCJTaG93IE9iamVjdCBQcm9wZXJ0aWVzXCIsXG4gICAgLy9oaWRlT2JqZWN0UHJvcGVydGllczogXCJIaWRlIE9iamVjdCBQcm9wZXJ0aWVzXCIsXG4gICAgc2hvd1BhbmVsOiBcIlZpcyBwYW5lbFwiLFxuICAgIGhpZGVQYW5lbDogXCJTa2p1bCBwYW5lbFwiLFxuICAgIC8vIGVkaXRTdXJ2ZXk6IFwiUmVkaWdlciBza2plbWFcIixcbiAgICBhZGROZXdQYWdlOiBcIkxlZ2cgdGlsIG55IHNpZGVcIixcbiAgICBtb3ZlUmlnaHQ6IFwiQmxhIHRpbCBow7h5cmVcIixcbiAgICBtb3ZlTGVmdDogXCJCbGEgdGlsIHZlbnN0cmVcIixcbiAgICBkZWxldGVQYWdlOiBcIlNsZXR0IHNpZGVcIixcbiAgICBlZGl0UGFnZTogXCJSZWRpZ2VyIHNpZGVcIixcbiAgICBlZGl0OiBcIlJlZGlnZXJcIixcbiAgICBuZXdQYWdlTmFtZTogXCJzaWRlXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcInNww7hyc23DpWxcIixcbiAgICBuZXdQYW5lbE5hbWU6IFwicGFuZWxcIixcbiAgICBuZXdUZXh0SXRlbU5hbWU6IFwidGVrc3RcIixcbiAgICB0ZXN0U3VydmV5OiBcIlRlc3Qgc2tqZW1hXCIsXG4gICAgdGVzdFN1cnZleUFnYWluOiBcIlRlc3Qgc2tqZW1hIGlnamVuXCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIlNramVtYWJyZWRkZTogXCIsXG4gICAgbmF2aWdhdGVUb01zZzogXCJEdSBtw6V0dGUgbmF2aWdlcmUgdGlsOlwiLFxuICAgIGxvZ2ljOiBcIlNramVtYWxvZ2lra1wiLFxuICAgIGVtYmVkU3VydmV5OiBcIkludGVncmVyIHNramVtYVwiLFxuICAgIHRyYW5zbGF0aW9uOiBcIk92ZXJzZXR0ZWxzZVwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwiTGFncmUgc2tqZW1hXCIsXG4gICAgc2F2ZVN1cnZleVRvb2x0aXA6IFwiTGFncmUgc2tqZW1hXCIsXG4gICAgZGVzaWduZXI6IFwiU2tqZW1hZGVzaWduZXJcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04tcmVkaWdlcmluZ1wiLFxuICAgIHVuZG86IFwiQW5ncmVcIixcbiAgICByZWRvOiBcIkdqZW50YVwiLFxuICAgIHVuZG9Ub29sdGlwOiBcIkFuZ3JlIHNpc3RlIGVuZHJpbmdcIixcbiAgICByZWRvVG9vbHRpcDogXCJHasO4ciBvbSBzaXN0ZSBlbmRyaW5nXCIsXG4gICAgY29weTogXCJLb3BpZXJcIixcbiAgICBjdXQ6IFwiS3V0dFwiLFxuICAgIHBhc3RlOiBcIkxpbSBpbm5uXCIsXG4gICAgY29weVRvb2x0aXA6IFwiS29waWVyIHZhbGd0IHNla3Nqb24gaW5uIGkgdXRrbGlwcHN0YXZsYVwiLFxuICAgIGN1dFRvb2x0aXA6IFwiS3V0dCB2YWxndCBzZWtzam9uIGlubiBpIHV0a2xpcHBzdGF2bGFcIixcbiAgICBwYXN0ZVRvb2x0aXA6IFwiTGltIGlubiBmcmEgdXRrbGlwcHN0YXZsYVwiLFxuICAgIG9wdGlvbnM6IFwiQWx0ZXJuYXRpdmVyXCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwiTGFnIGd5bGRpZyBKU09OXCIsXG4gICAgZ2VuZXJhdGVSZWFkYWJsZUpTT046IFwiTGFnIGxlc2JhciBKU09OXCIsXG4gICAgdG9vbGJveDogXCJWZXJrdMO4eWxpc3RlXCIsXG4gICAgXCJwcm9wZXJ0eS1ncmlkXCI6IFwiSW5uc3RpbGxpbmdlclwiLFxuICAgIHRvb2xib3hHZW5lcmFsQ2F0ZWdvcnk6IFwiR2VuZXJlbHRcIixcbiAgICAvLyBkZWxTZWxPYmplY3Q6IFwiU2xldHQgdmFsZ3RlIGVsZW1lbnRlclwiLFxuICAgIC8vIGVkaXRTZWxPYmplY3Q6IFwiUmVkaWdlciB2YWxndGUgZWxlbWVudGVyXCIsXG4gICAgY29ycmVjdEpTT046IFwiVmVubmxpZ3N0IGtvcnJpZ2VyIEpTT04uXCIsXG4gICAgc3VydmV5UmVzdWx0czogXCJTa2plbWFyZXN1bHRhdDogXCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIlNvbSB0YWJlbGxcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCJTb20gSlNPTlwiLFxuICAgIHJlc3VsdHNUaXRsZTogXCJTcMO4cnNtw6Vsc3RpdHRlbFwiLFxuICAgIHJlc3VsdHNOYW1lOiBcIlNww7hyc23DpWxzbmF2blwiLFxuICAgIHJlc3VsdHNWYWx1ZTogXCJTdmFyXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCJWaXN0IHZlcmRpXCIsXG4gICAgbW9kaWZpZWQ6IFwiRW5kcmV0XCIsXG4gICAgc2F2aW5nOiBcIkxhZ3JlclwiLFxuICAgIHNhdmVkOiBcIkxhZ3JldFwiLFxuICAgIHByb3BlcnR5RWRpdG9yRXJyb3I6IFwiRmVpbDpcIixcbiAgICBzYXZlRXJyb3I6IFwiRmVpbCEgU2tqZW1hIGlubmhvbGQgZXIgaWtrZSBsYWdyZXQuXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCJWZWxnIHNwcsOlayBmb3Igb3ZlcnNldHRpbmdcIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxTdHJpbmdzOiBcIlZpcyBhbGxlIHN0cmVuZ2VyXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsUGFnZXM6IFwiVmlzIGFsbGUgc2lkZXJcIixcbiAgICB0cmFuc2xhdGlvbk5vU3RyaW5nczpcbiAgICAgIFwiSW5nZW4gc3RyZW5nZXIgw6Ugb3ZlcnNldHRlLiBWZW5ubGlnc3QgZW5kcmUgZmlsdGVyZXQuXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCJFa3Nwb3J0ZXIgdGlsIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJJbXBvcnRlciBmcmEgQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25NZXJnZUxvY2FsZVdpdGhEZWZhdWx0OiBcIkZsZXR0IHswfSBtZWQgc3RhbmRhcmQgc3Byw6VrXCIsXG4gICAgYm9sZDogXCJGZXRcIixcbiAgICBpdGFsaWM6IFwiS3Vyc2l2XCIsXG4gICAgdW5kZXJsaW5lOiBcIlVuZGVybGluamV0XCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCJMZWdnIHRpbCBzcMO4cnNtw6VsLi4uXCIsXG4gICAgc2VsZWN0UGFnZTogXCJWZWxnIHNpZGUuLi5cIixcbiAgICBjaG9vc2VFbGVtZW50OiBcIlZlbGcgZWxlbWVudC4uLlwiLFxuICAgIC8vY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHQ6IFwiU2hvdyBpZjpcIixcbiAgICBsZzoge1xuICAgICAgYWRkTmV3SXRlbTogXCJcIiwgLy9WZXJkaWVuIGVyIHNvbSBzdGFuZGFyZCBoZW50ZXQgZnJhIHBlLmFkZE5ldyAnQWRkIE5ldycsIGR1IGthbiBmb3IgZWtzZW1wZWwgc2V0dGUgZGVuIHRpbCAgJ0xlZ2cgdGlsIG55IHJlZ2VsJyAgLlxuICAgICAgLy9Mb2dpYyB0YWIgc3RyaW5nc1xuICAgICAgcGFnZV92aXNpYmlsaXR5TmFtZTogXCJTaWRlc3lubGlnaGV0XCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5TmFtZTogXCJQYW5lbHN5bmxpZ2hldFwiLFxuICAgICAgcGFuZWxfZW5hYmxlTmFtZTogXCJQYW5lbCBha3RpdmVyZS9kZWFrdGl2ZXJlXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCJTcMO4cnNtw6Vsc3N5bmxnaGV0XCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVOYW1lOiBcIlNww7hyc23DpWwgYWt0aXZlcmUvZGVha3RpdmVyZVwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZU5hbWU6IFwiU3DDuHJzbcOlbCB2YWxnZnJpdHQvcMOla3JldmRcIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVOYW1lOiBcIkZ1bGxmw7hyIHNramVtYVwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZU5hbWU6IFwiQW5naSBzcMO4cnNtw6Vsc25hdm5cIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlTmFtZTogXCJLb3BpZXIgc3DDuHJzbcOlbHN2ZXJkaVwiLFxuICAgICAgdHJpZ2dlcl9za2lwTmFtZTogXCJIb3BwIHRpbCBzcMO4cnNtw6VsXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lOiBcIktqw7hyIHRpbHBhc3NldCBmb3JtZWxcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbk5hbWU6IFwiVGlscGFzc2V0ICdUYWtrLXNpZGUnIHRla3N0XCIsXG5cbiAgICAgIHBhZ2VfdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcIkdqw7hyIHNpZGVuIHN5bmxpZyBuw6VyIGZvcm1lbGVuIGV2YWx1ZXJlcyB0aWwgJ3Nhbm4nLCBvZyBob2xkZXIgZGVuIGVsbGVycyB1c3lubGlnLlwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcIkdqw7hyIHBhbmVsZXQgc3lubGlnIG7DpXIgZm9ybWVsZW4gZXZhbHVlcmVzIHRpbCAnc2FubicsIG9nIGhvbGRlciBkZW4gZWxsZXJzIHVzeW5saWcuXCIsXG4gICAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJBa3RpdmVyZXIgcGFuZWxldCwgb2cgYWxsZSBlbGVtZW50ZXIgaW5uaSwgbsOlciBmb3JtZWxlbiBldmFsdWVyZXMgdGlsICdzYW5uJy4gSSBhbmRyZSB0aWxmZWxsZXIgaG9sZGVzIGRlIGRlYWt0aXZlcnQuXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiR2rDuHIgc3DDuHJzbcOlbGV0IHN5bmxpZyBuw6VyIGZvcm1lbGVuIGV2YWx1ZXJlcyB0aWwgJ3Nhbm4nLCBvZyBob2xkZXIgZGVuIGVsbGVycyB1c3lubGlnLlwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlRGVzY3JpcHRpb246XG4gICAgICAgIFwiQWt0aXZlcmVyIHNww7hyc23DpWxldCBuw6VyIGZvcm1lbGVuIGV2YWx1ZXJlcyB0aWwgJ3Nhbm4nLCBvZyBob2xkZXIgZGVuIGVsbGVycyBkZWFrdGl2ZXJ0LlwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZURlc2NyaXB0aW9uOlxuICAgICAgICBcIlNww7hybXPDpWxldCBibGlyIHDDpWtyZXZkIG7DpXIgZm9ybWVsZW4gZXZhbHVlcmVzIHRpbCAnc2FubicuXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlRGVzY3JpcHRpb246XG4gICAgICAgIFwiTsOlciBmb3JtZWxlbiBldmFsdWVyZXMgdGlsICdzYW5uJyBmdWxsZsO4cmVzIHNramVtYWV0IG9nIHNsdXR0YnJ1a2VyZW4gc2VyICdUYWtrLXNpZGVuJy5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJOw6VyIHNww7hyc23DpWxzdmVyZGllciBzb20gZXIgYnJ1a3QgaSBmb3JtZWxlbiBlbmRyZXMsIG9nIGZvcm1lbGVuIGV2YWx1ZXJlcyBzb20gJ3Nhbm4nLCB2aWwgdmVyZGllbiBzZXR0ZXMgaSBkZXQgdmFsZ3RlIHNww7hyc23DpWxldC5cIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlRGVzY3JpcHRpb246XG4gICAgICAgIFwiTsOlciBzcMO4cnNtw6Vsc3ZlcmRpZXIgc29tIGVyIGJydWt0IGkgZm9ybWVsZW4gZW5kcmVzLCBvZyBmb3JtZWxlbiBldmFsdWVyZXMgc29tICdzYW5uJywgdmlsIHZlcmRpZW4gaSBldCB2YWxndCBzcMO4cnNtw6VsIGtvcGllcmVzIHRpbCBldCBhbm5ldCB2YWxndCBzcMO4cnNtw6VsLlwiLFxuICAgICAgdHJpZ2dlcl9za2lwRGVzY3JpcHRpb246XG4gICAgICAgIFwiTsOlciBmb3JtZWxlbiBldmFsdWVyZXMgdGlsICdzYW5uJyB2aWwgc2tqZW1hZXQgaG9wcGUgdGlsL2Zva3VzZXJlIHDDpSB2YWxndCBzcMO4cnNtw6VsLlwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwiTsOlciBmb3JtZWxlbiBldmF1bGVyZXMgdGlsICdzYW5uJyB2aWwgZGVuIHRpbHBhc3NlZGUgZm9ybWVsZW4gdXRmw7hyZXMuIER1IGthbiB2YWxnZnJpdHQgc2V0dGUgZm9ybWVsZW5zIHJlc3VsdGF0IGlubiBpIGRldCB2YWxndGUgc3DDuHJzbcOlbGV0LlwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwiSHZpcyBmb3JtZWxlbiBldmFsdWVyZXMgdGlsICdzYW5uJyB2aWwgc3RhbmRhcmR0ZWtzdGVuIHDDpSAnVGFrayBzaWRlbicgZW5kcmVzIHRpbCBkZW4gZ2l0dGUgdGVrc3Rlbi5cIixcblxuICAgICAgaXRlbUV4cHJlc3Npb25UZXh0OiBcIk7DpXIgZm9ybWVsZW46ICd7MH0nIGV2YWx1ZXJlcyB0aWwgJ3Nhbm4nOlwiLCAvL3swfSAtIHZpbCB1dHRyeWtrZXRcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eVRleHQ6IFwiR2rDuHJlIHNpZGUgezB9IHN5bmxpZ1wiLCAvL3swfSBzaWRlbmF2blxuICAgICAgcGFuZWxfdmlzaWJpbGl0eVRleHQ6IFwiR2rDuHIgcGFuZWwgezB9IHN5bmxpZ1wiLCAvL3swfSBwYW5lbG5hdm5cbiAgICAgIHBhbmVsX2VuYWJsZVRleHQ6IFwiR2rDuHIgcGFuZWwgezB9IGFrdGl2ZXJ0XCIsIC8vezB9IHBhbmVsbmF2blxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eVRleHQ6IFwiR2rDuHIgc3DDuHJzbcOlbCB7MH0gc3lubGlnXCIsIC8vezB9IHNww7hyc23DpWxzbmF2blxuICAgICAgcXVlc3Rpb25fZW5hYmxlVGV4dDogXCJHasO4ciBzcMO4cnNtw6VsIHswfSBha3RpdmVydFwiLCAvL3swfSBzcMO4cnNtw6Vsc25hdm5cbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVUZXh0OiBcIkdqw7hyIHNww7hyc23DpWwgezB9IHDDpWtyZXZkXCIsIC8vezB9IHNww7hyc23DpWxzbmF2blxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZVRleHQ6IFwiU2tqZW1hZXQgYmxpciBmdWxsZsO4cnRcIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVUZXh0OiBcIlNldHQgaW5uOiB7MH0gdmVyZGkgezF9XCIsIC8vezB9IHNww7hyc23DpWxzbmF2biwgezF9IHNldHRWZXJkaVxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVUZXh0OiBcIktvcGllciBpbm46IHswfSB2ZXJkaSBmcmEgc3DDuHJzbcOlbCB7MX1cIiwgLy97MH0gb2cgezF9IHNww7hyc23DpWxzbmF2blxuICAgICAgdHJpZ2dlcl9za2lwVGV4dDogXCJIb3BwIHRpbCBzcMO4cnNtw6VsIHswfVwiLCAvL3swfSBzcMO4cnNtw6Vsc25hdm5cbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQxOiBcIktqw7hyIGZvcm1lbDogJ3swfSdcIiwgLy97MH0gdXR0cnlrZXRcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQyOiBcIiBvZyBzZXR0IGlubiByZXN1bHRhdGV0IGkgc3DDuHJzbcOlbDogezB9XCIsIC8vezB9IHNww7hyc23DpWxzbmF2blxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uVGV4dDogXCJWaXMgdGlscGFzc2V0IHRla3N0IGZvciAnVGFray1zaWRlbicuXCIsXG5cbiAgICAgIGNvbmRpdGlvbnM6IFwiVmlsa8OlclwiLFxuICAgICAgYWN0aW9uczogXCJIYW5kbGluZyhlcilcIixcbiAgICAgIGV4cHJlc3Npb25FZGl0b3JUaXRsZTogXCJEZWZpbmVyIHZpbGvDpXJcIixcbiAgICAgIGFjdGlvbnNFZGl0b3JUaXRsZTogXCJEZWZpbmVyIGhhbmRsaW5nKGVyKVwiLFxuXG4gICAgICBkZWxldGVBY3Rpb246IFwiU2xldHQgaGFuZGxpbmdcIixcbiAgICAgIGFkZE5ld0FjdGlvbjogXCJMZWdnIHRpbCBoYW5kbGluZ1wiLFxuICAgICAgc2VsZWN0ZWRBY3Rpb25DYXB0aW9uOiBcIlZlbGcgaGFuZGxpbmcgc29tIHNrYWwgbGVnZ2VzIHRpbC4uLlwiLFxuXG4gICAgICBleHByZXNzaW9uSW52YWxpZDpcbiAgICAgICAgXCJGb3JtZWxlbiBlciB0b20gZWxsZXIgdWd5bGRpZy4gVmVubmxpZ3N0IGtvcnJpZ2VyIGRlbi5cIixcbiAgICAgIG5vQWN0aW9uRXJyb3I6IFwiVmVubmxpZ3N0IGxlZ2cgdGlsIG1pbnN0IGVuIGhhbmRsaW5nXCIsXG4gICAgICBhY3Rpb25JbnZhbGlkOiBcIlZlbm5saWdzdCBrb3JyaWdlciBwcm9ibGVtZXIgbWVkIGhhbmRsaW5nZW4uXCIsXG4gICAgICBleHByZXNzaW9uU2V0dXA6IFwiXCIsXG4gICAgICBhY3Rpb25zU2V0dXA6IFwiXCIsXG4gICAgfSxcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBuYW1lcyBpbiB0YWJsZSBoZWFkZXJzXG4gIC8vIHBlbDoge1xuICAvLyAgIGlzUmVxdWlyZWQ6IFwiTsO4ZHZlbmRpZz9cIixcbiAgLy8gfSxcbiAgLy9Qcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwiQnJ1a1wiLFxuICAgIG9rOiBcIk9LXCIsXG4gICAgc2F2ZTogXCJMYWdyZVwiLFxuICAgIHNhdmVUb29sdGlwOiBcIkxhZ3JlXCIsXG4gICAgY2FuY2VsOiBcIkF2YnJ5dFwiLFxuICAgIHJlc2V0OiBcIlRpbGJha2VzdGlsbFwiLFxuICAgIHJlZnJlc2g6IFwiTGFzdCBpbm4gcMOlIG55dHRcIixcbiAgICAvLyBjbG9zZTogXCJMdWtrXCIsXG4gICAgZGVsZXRlOiBcIlNsZXR0XCIsXG4gICAgYWRkOiBcIkxlZ2cgdGlsXCIsXG4gICAgYWRkTmV3OiBcIkxlZ2cgdGlsIG55XCIsXG4gICAgYWRkSXRlbTogXCJLbGlrayBmb3Igw6UgbGVnZ2UgdGlsLi4uXCIsXG4gICAgYWRkT3RoZXI6IFwiQW5uZXRcIixcbiAgICBhZGRTZWxlY3RBbGw6IFwiVmVsZyBhbHRcIixcbiAgICBhZGROb25lOiBcIkluZ2VuXCIsXG4gICAgcmVtb3ZlQWxsOiBcIkZqZXJuIGFsdFwiLFxuICAgIGVkaXQ6IFwiUmVkaWdlclwiLFxuICAgIGJhY2s6IFwiR8OlIHRpbGJha2UgdXRlbiDDpSBsYWdyZVwiLFxuICAgIGJhY2tUb29sdGlwOiBcIkfDpSB0aWxiYWtlIHV0ZW4gw6UgbGFncmVcIixcbiAgICBzYXZlQW5kQmFjazogXCJMYWdyZSBvZyBnw6UgdGlsYmFrZVwiLFxuICAgIHNhdmVBbmRCYWNrVG9vbHRpcDogXCJMYWdyZSBvZyBnw6UgdGlsYmFrZVwiLFxuICAgIC8vIGl0ZW1WYWx1ZUVkaXQ6IFwiU3lubGlnIGh2aXNcIixcbiAgICBlZGl0Q2hvaWNlczogXCJSZWRpZ2VyIHZhbGdcIixcbiAgICBzaG93Q2hvaWNlczogXCJWaXMgdmFsZ1wiLFxuICAgIG1vdmU6IFwiRmx5dHRcIixcbiAgICBlbXB0eTogXCI8dG9tPlwiLFxuICAgIC8vIG5vdEVtcHR5OiBcIjxyZWRpZ2VyIHZlcmRpPlwiLFxuICAgIGZhc3RFbnRyeTogXCJSYXNrIGlubmZ5bGxpbmdcIixcbiAgICBmb3JtRW50cnk6IFwiSW5uZnlsbGluZyBpIHNramVtYVwiLFxuICAgIHRlc3RTZXJ2aWNlOiBcIlNqZWtrIHRqZW5lc3RlblwiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcIlZlbm5saWdzdCB2ZWxnIGVsZW1lbnRldFwiLFxuICAgIGNvbmRpdGlvbkFjdGlvbkVtcHR5OiBcIlZlbGcgaGFuZGxpbmdlblwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcIlZlbGcgc3DDuHJzbcOlbC4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhZ2U6IFwiVmVsZyBzaWRlLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFuZWw6IFwiVmVsZyBwYW5lbC4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCJWZW5ubGlnc3Qgc2tyaXYgaW5uL3ZlbGcgdmVyZGlcIixcbiAgICAvLyBjb25kaXRpb25IZWxwOiBcIlNrcml2IGlubiBlbiBib29sc2sgZm9ybWVsLiBEZXQgYnVyZGUgcmV0dXJuZXJlIFNBTk4gZm9yIMOlIGdqw7hyZSBzcMO4cnNtw6VsL3NpZGUgc3lubGlnLiBGb3IgZWtzZW1wZWw6IHtxdWVzdGlvbjF9ID0gJ3ZhbHVlMScgb3IgKHtxdWVzdGlvbjJ9ICoge3F1ZXN0aW9uNH0gID4gMjAgYW5kIHtxdWVzdGlvbjN9IDwgNSlcIixcbiAgICBleHByZXNzaW9uSGVscDpcbiAgICAgIFwiVmVubmxpZ3N0IHNrcml2IGlubiBlbiBmb3JtZWwuIER1IGthbiBicnVrZSBrbGFtbWVwYXJlbnRlc2VyIGZvciDDpSBmw6UgdGlsZ2FuZyB0aWwgc3DDuHJzbcOlbHN2ZXJkaWVuZTogJ3txdWVzdGlvbjF9ICsge3F1ZXN0aW9uMn0nLCAnKHtwcmljZX0qe3F1YW50aXR5fSkgKiAoMTAwIC0ge2Rpc2NvdW50fSknXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCJUcnlrayBjdHJsK21lbGxvbXJvbSBmb3Igw6UgZsOlIGhpbnQgdGlsIMOlIGZ1bGxmw7hyZSBmb3JtbGVyXCIsXG4gICAgYWNlRWRpdG9yUm93VGl0bGU6IFwiR2plbGRlbmRlIHJhZFwiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwiR2plbGRlbmRlIHBhbmVsXCIsXG4gICAgc2hvd01vcmU6IFwiRm9yIG1lciBkZXRhbGplciAtIHNlIGRva3VtZW50YXNqb25lblwiLFxuICAgIC8vIGNvbmRpdGlvblNob3dNb3JlVXJsOiBcImh0dHBzOi8vc3VydmV5anMuaW8vRG9jdW1lbnRhdGlvbi9MaWJyYXJ5UGFyYW1ldGVyP2lkPVF1ZXN0aW9uJnBhcmFtZXRlcj12aXNpYmxlSWZcIixcbiAgICBhc3Npc3RhbnRUaXRsZTogXCJUaWxnamVuZ2VsaWdlIHNww7hyc23DpWw6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIkRldCBtw6UgdsOmcmUgbWluc3QgMSBrb2xvbm5lIGVsbGVyIHJhZFwiLFxuXG4gICAgcHJvcGVydHlJc0VtcHR5OiBcIlZlbm5saWdzdCBmeWxsIGlubiBlbiB2ZXJkaVwiLFxuICAgIHByb3BlcnR5TmFtZUlzTm90VW5pcXVlOiBcIlZlbm5saWdzdCBmeWxsIGlubiBldCB1bmlrdCBuYXZuXCIsXG4gICAgbGlzdElzRW1wdHk6IFwiTGVnZyB0aWwgbnl0dCBlbGVtZW50XCIsXG4gICAgZXhwcmVzc2lvbklzRW1wdHk6IFwiRm9ybWVsZW4gZXIgdG9tXCIsXG4gICAgdmFsdWU6IFwiVmVyZGlcIixcbiAgICB0ZXh0OiBcIlRla3N0XCIsXG4gICAgcm93aWQ6IFwiUmFkLUlEXCIsXG4gICAgaW1hZ2VMaW5rOiBcIkJpbGRlbGVua2VcIixcbiAgICBjb2x1bW5FZGl0OiBcIlJlZGlnZXIga29sb25uZTogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwiUmVkaWdlciBlbGVtZW50OiB7MH1cIixcblxuICAgIHVybDogXCJVUkxcIixcbiAgICBwYXRoOiBcIlN0aVwiLFxuICAgIHZhbHVlTmFtZTogXCJWZXJkaW5hdm5cIixcbiAgICB0aXRsZU5hbWU6IFwiVGl0dGVsbmF2blwiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwiU2tyaXYgdGl0dGVsIGhlclwiLFxuICAgIHN1cnZleVRpdGxlUGxhY2Vob2xkZXI6IFwiU2tyaXYgc2tqZW1hdGl0dGVsIGhlclwiLFxuICAgIHBhZ2VUaXRsZVBsYWNlaG9sZGVyOiBcIlNrcml2IHNpZGV0aXR0ZWwgaGVyXCIsXG4gICAgZGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJTa3JpdiBiZXNrcml2ZWxzZVwiLFxuICAgIHN1cnZleURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiU2tyaXYgc2tqZW1hLWJlc2tyaXZlbHNlXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiU2tyaXYgc2lkZS1iZXNrcml2ZWxzZVwiLFxuXG4gICAgc2hvd090aGVySXRlbTogXCJIYXIgYW5uZXQgZWxlbWVudFwiLFxuICAgIG90aGVyVGV4dDogXCJBbm5ldCBlbGVtZW50LXRla3N0XCIsXG4gICAgc2hvd05vbmVJdGVtOiBcIkhhciB2ZWxnIGluZ2VuXCIsXG4gICAgbm9uZVRleHQ6IFwiVmVsZyBpbmdlbi10ZWtzdFwiLFxuICAgIGhhc1NlbGVjdEFsbDogXCJIYXIgdmVsZyBhbHQtZWxlbWVudFwiLFxuICAgIHNlbGVjdEFsbFRleHQ6IFwiVmVsZyBhbHQgZWxlbWVtdC10ZWtzdFwiLFxuICAgIGNob2ljZXNNaW46IFwiTWluc3RldmVyZGkgZm9yIGF1dG8tZ2VuZXJlcnRlIGVsZW1lbnRlclwiLFxuICAgIGNob2ljZXNNYXg6IFwiTWFrc3ZlcmRpIGZvciBhdXRvLWdlbmVyZXJ0ZSBlbGVtZW50ZXJcIixcbiAgICBjaG9pY2VzU3RlcDogXCJGb3Jza2plbGxlbmUgbWVsbG9tIGF1dG8tZ2VuZXJlcnRlIGVsZW1lbnRlclwiLFxuICAgIG5hbWU6IFwiTmF2blwiLFxuICAgIHRpdGxlOiBcIlRpdHRlbFwiLFxuICAgIGNlbGxUeXBlOiBcIkNlbGxldHlwZVwiLFxuICAgIGNvbENvdW50OiBcIkFudGFsbCBrb2xvbm5lclwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJWZWxnIHJla2tlZsO4bGdlIHDDpSB2YWxnXCIsXG4gICAgdmlzaWJsZTogXCJFciBzeW5saWc/XCIsXG4gICAgaXNSZXF1aXJlZDogXCJFciBuw7hkdmVuZGlnP1wiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwiTsO4ZHZlbmRpZyBzdmFyIGZvciBhbGxlIHJhZGVyXCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwiTsO4ZHZlbmRpZyBmZWlsbWVsZGluZ1wiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiTcOlIHN0YXJ0ZSBtZWQgbnkgbGluamU/XCIsXG4gICAgcm93czogXCJBbnRhbGwgcmFkZXJcIixcbiAgICBjb2xzOiBcIkFudGFsbCBrb2xvbm5lclwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIkhqZWxwZXRla3N0XCIsXG4gICAgc2hvd1ByZXZpZXc6IFwiRXIgZm9yaMOlbmRzdmlzbmluZyBhdiBiaWxkZSB2aXN0P1wiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJMYWdyZSBmaWxpbm5ob2xkIGkgSlNPTi1yZXN1bHRhdCBzb20gdGVrc3RcIixcbiAgICBtYXhTaXplOiBcIk1ha3NpbXVtIGZpbHN0w7hycmVsc2UgaSBieXRlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkJpbGRlaMO4eWRlXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJCaWxkZWJyZWRkZVwiLFxuICAgIHJvd0NvdW50OiBcIkFudGFsbCByYWRlclwiLFxuICAgIGNvbHVtbkxheW91dDogXCJBbnRhbGwga29sb25uZXJcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJMZWdnIHRpbCByYWQga25hcHAtcGxhc3NlcmluZ1wiLFxuICAgIGFkZFJvd1RleHQ6IFwiTGVnZyB0aWwgcmFkIGtuYXBwLXRla3N0XCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJGamVybiByYWQga25hcHAtdGVrc3RcIixcbiAgICByYXRlTWluOiBcIk1pbmltdW0gc2F0c1wiLFxuICAgIHJhdGVNYXg6IFwiTWFrc2ltdW0gc2F0c1wiLFxuICAgIHJhdGVTdGVwOiBcIlNhdHMgc3RlZ1wiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJCZXNrcml2ZWxzZSBtaW5pbXVtc3Z1ZGVyaW5nXCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcIkJlc2tyaXZlbHNlIG1ha3NpbXVtc3Z1cmRlcmluZ1wiLFxuICAgIGlucHV0VHlwZTogXCJJbm5kYXRhLXR5cGVcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJUZWtzdCBmb3IgYWx0ZXJuYXRpdmVyXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlN0YW5kYXJkdmVyZGlcIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwiU3RhbmRhcmQgY2VsbGV0ZWtzdGVyXCIsXG5cbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCJSZWRpZ2VyIHNramVtYWlubnN0aWxsaW5nZXJcIixcbiAgICBxRWRpdG9yVGl0bGU6IFwiUmVkaWdlcjogezB9XCIsXG5cbiAgICBtYXhMZW5ndGg6IFwiTWFrc2ltdW0gbGVuZ2RlXCIsXG5cbiAgICBidWlsZEV4cHJlc3Npb246IFwiQnlnZ1wiLFxuICAgIGVkaXRFeHByZXNzaW9uOiBcIlJlZGlnZXJcIixcbiAgICBhbmQ6IFwiT2dcIixcbiAgICBvcjogXCJFbGxlclwiLFxuICAgIHJlbW92ZTogXCJGamVyblwiLFxuICAgIGFkZENvbmRpdGlvbjogXCJMZWdnIHRpbFwiLFxuXG4gICAgLy9zdXJ2ZXlcbiAgICBzaG93VGl0bGU6IFwiVmlzL3NranVsIHRpdHRlbFwiLFxuICAgIGV4cGFuZENvbGxhcHNlVGl0bGU6IFwiVXR2aWQva3J5bXAgdGl0dGVsXCIsXG4gICAgbG9jYWxlOiBcIlN0YW5kYXJkIHNwcsOla1wiLFxuICAgIHNpbXVsYXRvcjogXCJWZWxnIGVuaGV0XCIsXG4gICAgbGFuZHNjYXBlT3JpZW50YXRpb246IFwiTGlnZ2VuZGVcIixcbiAgICBtb2RlOiBcIk1vZHVzIChyZWRpZ2VyL2t1biBsZXNiYXJ0KVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIkZqZXJuIHVzeW5saWdlIHZlcmRpZXJcIixcbiAgICBjb29raWVOYW1lOlxuICAgICAgXCJJbmZvcm1hc2pvbnNrYXBzZWwgbmF2biAoZm9yIMOlIGhpbmRyZSBicnVrIGF2IHNramVtYSB0byBnYW5nZXIgbG9rYWx0KVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIlNlbmQgc2tqZW1hIHJlc3VsdGF0IHZlZCBuZXN0ZSBzaWRlXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiTGFncmUgJ2FuZHJlJyB2ZXJkaWVyIGkgZXQgc2VwYXJhdCBmZWx0XCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiVmlzIHNpZGV0aXR0ZWxcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwiVmlzIHNpZGVudW1tZXJcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiRm9ycmlnZSBzaWRlIGtuYXBwIHRla3N0XCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIk5lc3RlIHNpZGUga25hcHAgdGVrc3RcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiRnVsbGbDuHIga25hcHAgdGVrc3RcIixcbiAgICBwcmV2aWV3VGV4dDogXCJGb3Jow6VuZHN2aXNuaW5nIGtuYXBwIHRla3N0XCIsXG4gICAgZWRpdFRleHQ6IFwiUmVkaWdlciBrbmFwcCB0ZWtzdFwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJTdGFydCBrbmFwcCB0ZWtzdFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJWaXMgbmF2aWdhc2pvbnNrbmFwcGVyIChzdGFuZGFyZCBuYXZpZ2VyaW5nKVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIlZpcyBmb3JyaWdlIGtuYXBwIChicnVrZXIga2FuIGfDpSB0aWwgZm9ycmlnZSBzaWRlKVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCJEZW4gZsO4cnN0ZSBzaWRlbiBpIHNramVtYSBlciBzdGFydHNpZGUuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiVmlzIGZlcmRpZ3NpZGVuIHDDpSBzbHV0dGVuIChjb21wbGV0ZWRIdG1sKVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6XG4gICAgICBcIk7DpXIgZW4gaGFyIHN2YXJ0IGFsbGUgc3DDuHJzbcOlbCwgZ8OlIHRpbCBuZXN0ZSBzaWRlIGF1dG9tYXRpc2tcIixcbiAgICBzaG93UHJvZ3Jlc3NCYXI6IFwiVmlzIGZyZW1kcmlmdHNsaW5qZVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJTcMO4cnNtw6VsIHRpdHRlbCBwbGFzc2VyaW5nXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlN2YXIgbsO4ZHZlbmRpZyBzeW1ib2woZXIpXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIlNww7hyc23DpWwgc3RhcnRpbmRla3MgKDEsIDIgZWxsZXIgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJWaXMgc3DDuHJzbcOlbHNudW1tZXJcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6XG4gICAgICBcIlNww7hyc23DpWwgdGl0dGVsIG1hbCwgc3RhbmRhcmQgZXI6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiU3DDuHJzbcOlbCBmZWlsIHBsYXNzZXJpbmdcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6XG4gICAgICBcIlNldHQgZm9rdXMgcMOlIGbDuHJzdGUgc3DDuHJzbcOlbCBuw6VyIGVuIGVuZHJlciBzaWRlXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiUmVra2Vmw7hsZ2UgcMOlIGVsZW1lbnRlciBww6Ugc2lkZW5cIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiTWFrcyB0aWQgZm9yIMOlIGdqw7hyZSBmZXJkaWcgc2tqZW1hXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJNYWtzIHRpZCB0aWwgw6UgZ2rDuHJlIGZlcmRpZyBlbiBzaWRlIGkgc2tqZW1hXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiVmlzIHRpZHRha2luZ1wiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJWaXMgdGlkdGFraW5nLW1vZHVzXCIsXG4gICAgcmVuZGVyTW9kZTogXCJHamVuZ2l2ZWxzZSBtb2R1c1wiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiVGlsbGF0IMOlIGxlZ2dlIHRpbCBwYW5lbFwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiVGlsbGF0IMOlIGZqZXJuZSBwYW5lbFwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJMZWdnIHRpbCBwYW5lbCB0ZWtzdFwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJGamVybiBwYW5lbCB0ZWtzdFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJWaXMgYWxsZSBlbGVtZW50ZXIgcMOlIGVuIHNpZGVcIixcbiAgICBodG1sOiBcIkhUTUxcIixcbiAgICBleHByZXNzaW9uOiBcIkZvcm1lbFwiLFxuXG4gICAgbWluVmFsdWU6IFwiTWluaW11bXN2ZXJkaVwiLFxuICAgIG1heFZhbHVlOiBcIk1ha3NpbWFsIHZlcmRpXCIsXG4gICAgbWluTGVuZ3RoOiBcIk1pbmltdW0gbGVuZ2RlXCIsXG4gICAgYWxsb3dEaWdpdHM6IFwiVGlsbGF0IHRhbGxcIixcbiAgICBtaW5Db3VudDogXCJNaW5pbXVtIGNvdW50XCIsXG4gICAgbWF4Q291bnQ6IFwiTWF4aW11bSBjb3VudFwiLFxuICAgIHJlZ2V4OiBcIlJlZ3VsYXIgZXhwcmVzc2lvblwiLFxuXG4gICAgdG90YWxUZXh0OiBcIlRvdGFsIHRla3N0XCIsXG4gICAgdG90YWxUeXBlOiBcIlRvdGFsIHR5cGVcIixcbiAgICB0b3RhbEV4cHJlc3Npb246IFwiVG90YWwgZm9ybWVsXCIsXG4gICAgdG90YWxEaXNwbGF5U3R5bGU6IFwiVG90YWwgdmlzbmluZ3NzdGlsXCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCJUb3RhbCB2YWx1dGFcIixcbiAgICB0b3RhbEZvcm1hdDogXCJUb3RhbCBmb3JtYXRcIixcblxuICAgIC8vIEhlYWRlciAgYWRvcm5lclxuICAgIGxvZ29Qb3NpdGlvbjogXCJMb2dvLXBvc2lzam9uXCIsXG4gICAgYWRkTG9nbzogXCJMZWdnIHRpbCBsb2dvLi4uXCIsXG4gICAgY2hhbmdlTG9nbzogXCJCeXR0IGxvZ28uLi5cIixcbiAgICBsb2dvUG9zaXRpb25zOiB7XG4gICAgICBub25lOiBcIkZqZXJuIGxvZ29cIixcbiAgICAgIGxlZnQ6IFwiVmVuc3RyZVwiLFxuICAgICAgcmlnaHQ6IFwiSMO4eXJlXCIsXG4gICAgICB0b3A6IFwiVG9wcFwiLFxuICAgICAgYm90dG9tOiBcIkJ1bm5cIixcbiAgICB9LFxuXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCJHZW5lcmVsdFwiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwiVmFsZ1wiLFxuICAgICAgaHRtbDogXCJIVE1MLWVkaXRvclwiLFxuICAgICAgY29sdW1uczogXCJLb2xvbm5lclwiLFxuICAgICAgcm93czogXCJSYWRlclwiLFxuICAgICAgY2hvaWNlczogXCJWYWxnXCIsXG4gICAgICBpdGVtczogXCJFbGVtZW50ZXJcIixcbiAgICAgIHZpc2libGVJZjogXCJTeW5saWcgaHZpc1wiLFxuICAgICAgZW5hYmxlSWY6IFwiVGlsZ2plbmdlbGlnIGh2aXNcIixcbiAgICAgIHJlcXVpcmVkSWY6IFwiTsO4ZHZlbmRpZyBodmlzXCIsXG4gICAgICByYXRlVmFsdWVzOiBcIlJhbmdlcmluZyB2ZXJkaWVyXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwiVmFsZyBmcmEgd2ViXCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcIlN0YW5kYXJkdmFsZ1wiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwiVGVrc3QgaW5uZGF0YVwiLFxuICAgICAgbnVtYmVyaW5nOiBcIk51bW1lcmVyaW5nXCIsXG4gICAgICB2YWxpZGF0b3JzOiBcIlZhbGlkZXJpbmdlclwiLFxuICAgICAgbmF2aWdhdGlvbjogXCJOYXZpZ2VyaW5nXCIsXG4gICAgICBxdWVzdGlvbjogXCJTcMO4cnNtw6VsXCIsXG4gICAgICBwYWdlczogXCJTaWRlclwiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCJGdWxsZsO4cnQgSFRNTFwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uOiBcIkZ1bGxmw7hydCBIVE1MIHDDpSBiZXRpbmdlbHNlXCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCJMYXN0ZXIgSFRNTFwiLFxuICAgICAgdGltZXI6IFwiVGlkdGFrZXIvUXVpelwiLFxuICAgICAgY2FsY3VsYXRlZFZhbHVlczogXCJCZXJlZ25lZGUgdmVyZGllclwiLFxuICAgICAgdHJpZ2dlcnM6IFwiVHJpZ2dlcmVcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiTWFsLXRpdHRlbFwiLFxuICAgICAgdG90YWxzOiBcIlRvdGFsZXJcIixcbiAgICAgIGxvZ2ljOiBcIkxvZ2lra1wiLFxuICAgICAgbGF5b3V0OiBcIk9wcHNldHRcIixcbiAgICAgIGRhdGE6IFwiRGF0YVwiLFxuICAgICAgdmFsaWRhdGlvbjogXCJWYWxpZGVyaW5nXCIsXG4gICAgICBjZWxsczogXCJDZWxsZXJcIixcbiAgICAgIHNob3dPbkNvbXBsZXRlZDogXCJWaXMgbsOlciBmZXJkaWdcIixcbiAgICAgIGxvZ286IFwiTG9nbyBpIHNramVtYXRpdHRlbFwiLFxuICAgICAgc2xpZGVyOiBcIlNsaWRlclwiLFxuICAgICAgb3RoZXJzOiBcIkFuZHJlXCIsXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwiUmVkaWdlciB2ZXJkaSAnezB9J1wiLFxuICAgIGl0ZW1zOiBcIlsgRWxlbWVudGVyOiB7MH0gXVwiLFxuXG4gICAgZW50ZXJOZXdWYWx1ZTogXCJWZW5ubGlnc3QgZnlsbCBpbm4gdmVyZGllbi5cIixcbiAgICBub3F1ZXN0aW9uczogXCJEZXQgZXIgaW5nZW4gc3DDuHJzbcOlbCBpIHNramVtYWV0LlwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiVmVubmxpZ3N0IGxhZyBlbiB0cmlnZ2VyXCIsXG4gICAgdGl0bGVLZXlib2FyZEFkb3JuZXJUaXA6IFwiVHJ5a2sgZW50ZXItdGFzdGVuIGZvciDDpSByZWRpZ2VyZVwiLFxuICAgIGtleWJvYXJkQWRvcm5lclRpcDpcbiAgICAgIFwiVHJ5a2sgZW50ZXItdGFzdGVuIGZvciDDpSByZWRpZ2VyZSBlbGVtZW50ZXQsIHRyeWtrIHNsZXR0ZS10YXN0ZW4gZm9yIMOlIHNsZXR0ZSBlbGVtZW50ZXQsIHRyeWtrIEFsdCArIHBpbCBvcHAvbmVkIGZvciDDpSBmbHl0dGUgZWxlbWVudGV0XCIsXG4gICAgdHJpZ2dlck9uOiBcIlDDpSBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCJHasO4ciBzaWRlciBzeW5saWdlOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCJHasO4ciBlbGVtZW50ZXIgc3lubGlnZTpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIkZ1bGxmw7hyIHNramVtYSBkZXJzb20gdmVsbHlra2V0LlwiLFxuICAgIHRyaWdnZXJOb3RTZXQ6IFwiVHJpZ2dlciBlciBpa2tlIHNhdHRcIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiS2rDuHIgZGVyc29tXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCJFbmRyZSB2ZXJkaWVuIGF2OiBcIixcbiAgICB0cmlnZ2VyRnJvbU5hbWU6IFwiS29waWVyIHZlcmRpIGZyYTogXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb246IFwiS2rDuHIgZGVubmUgZm9ybWVsZW46XCIsXG4gICAgdHJpZ2dlclNldFZhbHVlOiBcInRpbDogXCIsXG4gICAgdHJpZ2dlckdvdG9OYW1lOiBcIkfDpSB0aWwgc3DDuHJzbcOlbDpcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCJJa2tlIGxlZ2cgdmFyaWFiZWxlbiBpIHJlc3VsdGF0ZXQuXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eTogXCJWZW5ubGlnc3QgZnlsbCBpbm4gZW4gZ3lsZGlnIGZvcm1lbFwiLFxuXG4gICAgbm9GaWxlOiBcIkluZ2VuIGZpbCB2YWxndFwiLFxuICB9LFxuICAvL1Byb3BlcnR5IHZhbHVlc1xuICBwdjoge1xuICAgIHRydWU6IFwidHJ1ZVwiLFxuICAgIGZhbHNlOiBcImZhbHNlXCIsXG4gICAgaW5oZXJpdDogXCJpbmhlcml0XCIsXG4gICAgc2hvdzogXCJzaG93XCIsXG4gICAgaGlkZTogXCJoaWRlXCIsXG4gICAgZGVmYXVsdDogXCJkZWZhdWx0XCIsXG4gICAgaW5pdGlhbDogXCJpbml0aWFsXCIsXG4gICAgcmFuZG9tOiBcInJhbmRvbVwiLFxuICAgIGNvbGxhcHNlZDogXCJjb2xsYXBzZWRcIixcbiAgICBleHBhbmRlZDogXCJleHBhbmRlZFwiLFxuICAgIG5vbmU6IFwibm9uZVwiLFxuICAgIGFzYzogXCJhc2NlbmRpbmdcIixcbiAgICBkZXNjOiBcImRlc2NlbmRpbmdcIixcbiAgICBpbmRldGVybWluYXRlOiBcImluZGV0ZXJtaW5hdGVcIixcbiAgICBkZWNpbWFsOiBcImRlY2ltYWxcIixcbiAgICBjdXJyZW5jeTogXCJjdXJyZW5jeVwiLFxuICAgIHBlcmNlbnQ6IFwicGVyY2VudFwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwiZmlyc3RFeHBhbmRlZFwiLFxuICAgIG9mZjogXCJvZmZcIixcbiAgICBvblBhbmVsOiBcIm9uUGFuZWxcIixcbiAgICBvblN1cnZleTogXCJvblN1cnZleVwiLFxuICAgIGxpc3Q6IFwibGlzdFwiLFxuICAgIHByb2dyZXNzVG9wOiBcInByb2dyZXNzVG9wXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwicHJvZ3Jlc3NCb3R0b21cIixcbiAgICBwcm9ncmVzc1RvcEJvdHRvbTogXCJwcm9ncmVzc1RvcEJvdHRvbVwiLFxuICAgIGhvcml6b250YWw6IFwiaG9yaXpvbnRhbFwiLFxuICAgIHZlcnRpY2FsOiBcInZlcnRpY2FsXCIsXG4gICAgdG9wOiBcInRvcFwiLFxuICAgIGJvdHRvbTogXCJib3R0b21cIixcbiAgICB0b3BCb3R0b206IFwidG9wIGFuZCBib3R0b21cIixcbiAgICBib3RoOiBcImJvdGhcIixcbiAgICBsZWZ0OiBcImxlZnRcIixcbiAgICBjb2xvcjogXCJjb2xvclwiLFxuICAgIGRhdGU6IFwiZGF0ZVwiLFxuICAgIGRhdGV0aW1lOiBcImRhdGV0aW1lXCIsXG4gICAgXCJkYXRldGltZS1sb2NhbFwiOiBcImRhdGV0aW1lLWxvY2FsXCIsXG4gICAgZW1haWw6IFwiZW1haWxcIixcbiAgICBtb250aDogXCJtb250aFwiLFxuICAgIG51bWJlcjogXCJudW1iZXJcIixcbiAgICBwYXNzd29yZDogXCJwYXNzd29yZFwiLFxuICAgIHJhbmdlOiBcInJhbmdlXCIsXG4gICAgdGVsOiBcInRlbFwiLFxuICAgIHRleHQ6IFwidGV4dFwiLFxuICAgIHRpbWU6IFwidGltZVwiLFxuICAgIHVybDogXCJ1cmxcIixcbiAgICB3ZWVrOiBcIndlZWtcIixcbiAgICBoaWRkZW46IFwiaGlkZGVuXCIsXG4gICAgb246IFwib25cIixcbiAgICBvblBhZ2U6IFwib25QYWdlXCIsXG4gICAgZWRpdDogXCJlZGl0XCIsXG4gICAgZGlzcGxheTogXCJkaXNwbGF5XCIsXG4gICAgb25Db21wbGV0ZTogXCJvbkNvbXBsZXRlXCIsXG4gICAgb25IaWRkZW46IFwib25IaWRkZW5cIixcbiAgICBhbGw6IFwiYWxsXCIsXG4gICAgcGFnZTogXCJwYWdlXCIsXG4gICAgc3VydmV5OiBcInN1cnZleVwiLFxuICAgIG9uTmV4dFBhZ2U6IFwib25OZXh0UGFnZVwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcIm9uVmFsdWVDaGFuZ2VkXCIsXG4gICAgc2luZ2xlUGFnZTogXCJzaW5nbGUgcGFnZVwiLFxuICAgIHN0YW5kYXJkOiBcInN0YW5kYXJkXCIsXG4gICAgcXVlc3Rpb25QZXJQYWdlOiBcInF1ZXN0aW9uIHBlciBwYWdlXCIsXG4gICAgbm9QcmV2aWV3OiBcIm5vIHByZXZpZXdcIixcbiAgICBzaG93QWxsUXVlc3Rpb25zOiBcInNob3cgcHJldmlldyB3aXRoIGFsbCBxdWVzdGlvbnNcIixcbiAgICBzaG93QW5zd2VyZWRRdWVzdGlvbnM6IFwic2hvdyBwcmV2aWV3IHdpdGggYW5zd2VyZWQgcXVlc3Rpb25zXCIsXG4gIH0sXG4gIC8vT3BlcmF0b3JzXG4gIG9wOiB7XG4gICAgZW1wdHk6IFwiZXIgdG9tXCIsXG4gICAgbm90ZW1wdHk6IFwiZXIgaWtrZSB0b21cIixcbiAgICBlcXVhbDogXCJlciBsaWtcIixcbiAgICBub3RlcXVhbDogXCJlciBpa2tlIGxpa1wiLFxuICAgIGNvbnRhaW5zOiBcImlubmVob2xkZXJcIixcbiAgICBub3Rjb250YWluczogXCJpbm5laG9sZGVyIGlra2VcIixcbiAgICBhbnlvZjogXCJub2VuIGF2XCIsXG4gICAgYWxsb2Y6IFwiYWxsZSBhdlwiLFxuICAgIGdyZWF0ZXI6IFwic3TDuHJyZSBlbm5cIixcbiAgICBsZXNzOiBcIm1pbmRyZSBlbm5cIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCJzdMO4cnJlIGVsbGVyIGxpa1wiLFxuICAgIGxlc3NvcmVxdWFsOiBcIm1pbmRyZSBlbGxlciBsaWtcIixcbiAgICBhbmQ6IFwib2dcIixcbiAgICBvcjogXCJlbGxlclwiLFxuICB9LFxuICAvL0VtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiQnJ1ayBBbmd1bGFyLXZlcnNqb25cIixcbiAgICBqcXVlcnk6IFwiQnJ1ayBqUXVlcnktdmVyc2pvblwiLFxuICAgIGtub2Nrb3V0OiBcIkJydWsgS25vY2tvdXQtdmVyc2pvblwiLFxuICAgIHJlYWN0OiBcIkJydWsgUmVhY3QtdmVyc2pvblwiLFxuICAgIHZ1ZTogXCJCcnVrIFZ1ZS12ZXJzam9uXCIsXG4gICAgYm9vdHN0cmFwOiBcIkZvciBCb290c3RyYXAtcmFtbWV2ZXJrXCIsXG4gICAgc3RhbmRhcmQ6IFwiSWtrZSBCb290c3RyYXBcIixcbiAgICBzaG93T25QYWdlOiBcIlZpcyBza2plbWEgcMOlIGVuIHNpZGVcIixcbiAgICBzaG93SW5XaW5kb3c6IFwiVmlzIHNramVtYSBpIGV0IHZpbmR1XCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiTGFzdCBza2plbWFkZWZpbmlzam9uIHNvbSBKU09OIGZyYSBzZXJ2ZXJcIixcbiAgICB0aXRsZVNjcmlwdDogXCJTa3JpcHQgb2cgc3RpbGVyXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiLFxuICB9LFxuICAvL1Rlc3QgU3VydmV5XG4gIHRzOiB7XG4gICAgc2VsZWN0UGFnZTogXCJWZWxnIHNpZGU6XCIsXG4gICAgc2hvd0ludmlzaWJsZUVsZW1lbnRzOiBcIlZpcyB1c3lubGlnZSBlbGVtZW50ZXJcIixcbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIGFuc3dlcmNvdW50dmFsaWRhdG9yOiBcImFudGFsbCBzdmFyXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwiZS1wb3N0XCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCJmb3JtZWxcIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcIm51bWVyaXNrXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwicmVnZXhcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRla3N0XCIsXG4gIH0sXG4gIHRyaWdnZXJzOiB7XG4gICAgY29tcGxldGV0cmlnZ2VyOiBcImNvbXBsZXRlIHNramVtYVwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCJzZXQgdmFsdWVcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcImNvcHkgdmFsdWVcIixcbiAgICBza2lwdHJpZ2dlcjogXCJob3BwIHRpbCBzcMO4cnNtw6VsXCIsXG4gICAgcnVuZXhwcmVzc2lvbnRyaWdnZXI6IFwia2rDuHIgZm9ybWVsXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwiZW5kcmUgc3lubGlnaGV0IChkZXByZWNhdGVkKVwiLFxuICB9LFxuICAvL1Byb3BlcnRpZXNcbiAgcDoge1xuICAgIG5hbWU6IFwibmFtZVwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcInRpdGxlXCIsXG4gICAgICB0aXRsZTogXCJMYSBkZW4gdsOmcmUgdG9tLCBkZXJzb20gZGVuIHNrYWwgdsOmcmUgc2FtbWUgc29tIG5hdm5ldFwiLFxuICAgIH0sXG5cbiAgICBuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHk6IFwibmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5XCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwicXVlc3Rpb25zT3JkZXJcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwibWF4VGltZVRvRmluaXNoXCIsXG5cbiAgICB2aXNpYmxlOiBcInZpc2libGVcIixcbiAgICB2aXNpYmxlSWY6IFwidmlzaWJsZUlmXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcInF1ZXN0aW9uVGl0bGVMb2NhdGlvblwiLFxuICAgIGRlc2NyaXB0aW9uOiBcImRlc2NyaXB0aW9uXCIsXG4gICAgc3RhdGU6IFwic3RhdGVcIixcbiAgICBpc1JlcXVpcmVkOiBcImlzUmVxdWlyZWRcIixcbiAgICByZXF1aXJlZElmOiBcInJlcXVpcmVkSWZcIixcbiAgICBpbmRlbnQ6IFwiaW5kZW50XCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwicmVxdWlyZWRFcnJvclRleHRcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcInN0YXJ0V2l0aE5ld0xpbmVcIixcbiAgICBpbm5lckluZGVudDogXCJpbm5lckluZGVudFwiLFxuICAgIHBhZ2U6IFwicGFnZVwiLFxuXG4gICAgd2lkdGg6IFwid2lkdGhcIixcblxuICAgIGNvbW1lbnRUZXh0OiBcImNvbW1lbnRUZXh0XCIsXG4gICAgdmFsdWVOYW1lOiBcInZhbHVlTmFtZVwiLFxuICAgIGVuYWJsZUlmOiBcImVuYWJsZUlmXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcImRlZmF1bHRWYWx1ZVwiLFxuICAgIGNvcnJlY3RBbnN3ZXI6IFwiY29ycmVjdEFuc3dlclwiLFxuICAgIHJlYWRPbmx5OiBcInJlYWRPbmx5XCIsXG4gICAgdmFsaWRhdG9yczogXCJ2YWxpZGF0b3JzXCIsXG4gICAgdGl0bGVMb2NhdGlvbjogXCJ0aXRsZUxvY2F0aW9uXCIsXG5cbiAgICBoYXNDb21tZW50OiBcImhhc0NvbW1lbnRcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcImhhc090aGVyXCIsXG4gICAgY2hvaWNlczogXCJjaG9pY2VzXCIsXG4gICAgY2hvaWNlc09yZGVyOiBcImNob2ljZXNPcmRlclwiLFxuICAgIGNob2ljZXNCeVVybDogXCJjaG9pY2VzQnlVcmxcIixcbiAgICBvdGhlclRleHQ6IFwib3RoZXJUZXh0XCIsXG4gICAgb3RoZXJFcnJvclRleHQ6IFwib3RoZXJFcnJvclRleHRcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJzdG9yZU90aGVyc0FzQ29tbWVudFwiLFxuXG4gICAgbGFiZWw6IFwibGFiZWxcIixcbiAgICBzaG93VGl0bGU6IFwic2hvd1RpdGxlXCIsXG4gICAgdmFsdWVUcnVlOiBcInZhbHVlVHJ1ZVwiLFxuICAgIHZhbHVlRmFsc2U6IFwidmFsdWVGYWxzZVwiLFxuXG4gICAgY29sczogXCJjb2xzXCIsXG4gICAgcm93czogXCJyb3dzXCIsXG5cbiAgICBvcHRpb25zQ2FwdGlvbjogXCJvcHRpb25zQ2FwdGlvblwiLFxuXG4gICAgZXhwcmVzc2lvbjogXCJleHByZXNzaW9uXCIsXG4gICAgZm9ybWF0OiBcImZvcm1hdFwiLFxuICAgIGRpc3BsYXlTdHlsZTogXCJkaXNwbGF5U3R5bGVcIixcbiAgICBjdXJyZW5jeTogXCJjdXJyZW5jeVwiLFxuICAgIHVzZUdyb3VwaW5nOiBcInVzZUdyb3VwaW5nXCIsXG5cbiAgICBzaG93UHJldmlldzogXCJzaG93UHJldmlld1wiLFxuICAgIGFsbG93TXVsdGlwbGU6IFwiYWxsb3dNdWx0aXBsZVwiLFxuICAgIGltYWdlSGVpZ2h0OiBcImltYWdlSGVpZ2h0XCIsXG4gICAgaW1hZ2VXaWR0aDogXCJpbWFnZVdpZHRoXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcInN0b3JlRGF0YUFzVGV4dFwiLFxuICAgIG1heFNpemU6IFwibWF4U2l6ZVwiLFxuXG4gICAgaHRtbDogXCJodG1sXCIsXG5cbiAgICBjb2x1bW5zOiBcImNvbHVtbnNcIixcbiAgICBjZWxsczogXCJjZWxsc1wiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwiaXNBbGxSb3dSZXF1aXJlZFwiLFxuXG4gICAgaG9yaXpvbnRhbFNjcm9sbDogXCJob3Jpem9udGFsU2Nyb2xsXCIsXG4gICAgY2VsbFR5cGU6IFwiY2VsbFR5cGVcIixcbiAgICBjb2x1bW5zTGF5b3V0OiBcImNvbHVtbnNMYXlvdXRcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCJjb2x1bW5Db2xDb3VudFwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcImNvbHVtbk1pbldpZHRoXCIsXG5cbiAgICByb3dDb3VudDogXCJyb3dDb3VudFwiLFxuICAgIG1pblJvd0NvdW50OiBcIm1pblJvd0NvdW50XCIsXG4gICAgbWF4Um93Q291bnQ6IFwibWF4Um93Q291bnRcIixcbiAgICBrZXlOYW1lOiBcImtleU5hbWVcIixcbiAgICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcImtleUR1cGxpY2F0aW9uRXJyb3JcIixcbiAgICBjb25maXJtRGVsZXRlOiBcImNvbmZpcm1EZWxldGVcIixcbiAgICBjb25maXJtRGVsZXRlVGV4dDogXCJjb25maXJtRGVsZXRlVGV4dFwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcImFkZFJvd0xvY2F0aW9uXCIsXG4gICAgYWRkUm93VGV4dDogXCJhZGRSb3dUZXh0XCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJyZW1vdmVSb3dUZXh0XCIsXG5cbiAgICBpdGVtczogXCJpdGVtc1wiLFxuICAgIGl0ZW1TaXplOiBcIml0ZW1TaXplXCIsXG4gICAgY29sQ291bnQ6IFwiY29sQ291bnRcIixcblxuICAgIHRlbXBsYXRlVGl0bGU6IFwidGVtcGxhdGVUaXRsZVwiLFxuICAgIHRlbXBsYXRlRGVzY3JpcHRpb246IFwidGVtcGxhdGVEZXNjcmlwdGlvblwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiYWxsb3dBZGRQYW5lbFwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiYWxsb3dSZW1vdmVQYW5lbFwiLFxuICAgIHBhbmVsQ291bnQ6IFwicGFuZWxDb3VudFwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwibWluUGFuZWxDb3VudFwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwibWF4UGFuZWxDb3VudFwiLFxuICAgIHBhbmVsc1N0YXRlOiBcInBhbmVsc1N0YXRlXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcInBhbmVsQWRkVGV4dFwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJwYW5lbFJlbW92ZVRleHRcIixcbiAgICBwYW5lbFByZXZUZXh0OiBcInBhbmVsUHJldlRleHRcIixcbiAgICBwYW5lbE5leHRUZXh0OiBcInBhbmVsTmV4dFRleHRcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcInNob3dRdWVzdGlvbk51bWJlcnNcIixcbiAgICBzaG93UmFuZ2VJblByb2dyZXNzOiBcInNob3dSYW5nZUluUHJvZ3Jlc3NcIixcbiAgICByZW5kZXJNb2RlOiBcInJlbmRlck1vZGVcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwidGVtcGxhdGVUaXRsZUxvY2F0aW9uXCIsXG5cbiAgICByYXRlVmFsdWVzOiBcInJhdGVWYWx1ZXNcIixcbiAgICByYXRlTWluOiBcInJhdGVNaW5cIixcbiAgICByYXRlTWF4OiBcInJhdGVNYXhcIixcbiAgICByYXRlU3RlcDogXCJyYXRlU3RlcFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJtaW5SYXRlRGVzY3JpcHRpb25cIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwibWF4UmF0ZURlc2NyaXB0aW9uXCIsXG5cbiAgICBpbnB1dFR5cGU6IFwiaW5wdXRUeXBlXCIsXG4gICAgc2l6ZTogXCJzaXplXCIsXG5cbiAgICBsb2NhbGU6IFwibG9jYWxlXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcImZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpY1wiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiY29tcGxldGVkSHRtbFwiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwiY29tcGxldGVkQmVmb3JlSHRtbFwiLFxuICAgIGxvYWRpbmdIdG1sOiBcImxvYWRpbmdIdG1sXCIsXG4gICAgdHJpZ2dlcnM6IFwidHJpZ2dlcnNcIixcbiAgICBjb29raWVOYW1lOiBcImNvb2tpZU5hbWVcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCJzZW5kUmVzdWx0T25QYWdlTmV4dFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJzaG93TmF2aWdhdGlvbkJ1dHRvbnNcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJzaG93UHJldkJ1dHRvblwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcInNob3dQYWdlVGl0bGVzXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwic2hvd0NvbXBsZXRlZFBhZ2VcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwic2hvd1BhZ2VOdW1iZXJzXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcInF1ZXN0aW9uRXJyb3JMb2NhdGlvblwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJzaG93UHJvZ3Jlc3NCYXJcIixcbiAgICBtb2RlOiBcIm1vZGVcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcImdvTmV4dFBhZ2VBdXRvbWF0aWNcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwiY2hlY2tFcnJvcnNNb2RlXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiY2xlYXJJbnZpc2libGVWYWx1ZXNcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwic3RhcnRTdXJ2ZXlUZXh0XCIsXG4gICAgcGFnZVByZXZUZXh0OiBcInBhZ2VQcmV2VGV4dFwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJwYWdlTmV4dFRleHRcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiY29tcGxldGVUZXh0XCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcInJlcXVpcmVkVGV4dFwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCJxdWVzdGlvblN0YXJ0SW5kZXhcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwicXVlc3Rpb25UaXRsZVRlbXBsYXRlXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcImZpcnN0UGFnZUlzU3RhcnRlZFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJpc1NpbmdsZVBhZ2VcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIm1heFRpbWVUb0ZpbmlzaFBhZ2VcIixcbiAgICBzaG93VGltZXJQYW5lbDogXCJzaG93VGltZXJQYW5lbFwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJzaG93VGltZXJQYW5lbE1vZGVcIixcblxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcImRlZmF1bHRQYW5lbFZhbHVlXCIsXG4gICAgZGVmYXVsdFJvd1ZhbHVlOiBcImRlZmF1bHRSb3dWYWx1ZVwiLFxuICAgIHNob3dOb25lSXRlbTogXCJoYXNOb25lXCIsXG4gICAgbm9uZVRleHQ6IFwibm9uZVRleHRcIixcblxuICAgIHRleHQ6IFwidGV4dFwiLFxuICB9LFxufTtcbi8vVW5jb21tZW50IHRoaXMgbGluZSBvbiBjcmVhdGluZyBhIHRyYW5zbGF0aW9uIGZpbGUuIFlvdSBzaG91bGQgcmVwbGFjZSBcImVuXCIgYW5kIGVuU3RyaW5ncyB3aXRoIHlvdXIgbG9jYWxlIChcImZyXCIsIFwiZGVcIiBhbmQgc28gb24pIGFuZCB5b3VyIHZhcmlhYmxlLlxuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJuYlwiXSA9IG5iU3RyaW5ncztcbiIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxudmFyIHBlcnNpYW5TdHJpbmdzID0ge1xuICBcInN1cnZleVwiOiB7XG4gICAgXCJlZGl0XCI6IFwi2YjbjNix2KfbjNi0XCIsXG4gICAgXCJleHRlcm5hbEhlbHBMaW5rXCI6IFwi2Ybar9in2Ycg2qnZhtuM2K8g2Ygg2LPYp9iu2KrZhiDZhti42LHYs9mG2KzbjCDYsdinINii2YXZiNiy2LQg2KjYqNuM2YbbjNivXCIsXG4gICAgXCJleHRlcm5hbEhlbHBMaW5rVXJsXCI6IFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0gycnU5b2tJY29vTlpmcElieXE0cVE/dmlld19hcz1zdWJzY3JpYmVyXCIsXG4gICAgXCJkcm9wUXVlc3Rpb25cIjogXCLZhNi32YHYpyDYp9iyINis2LnYqNmHINin2KjYstin2LEg2LPZiNin2YTbjCDYr9ixINin24zZhtis2Kcg2YLYsdin2LEg2K/Zh9uM2K9cIixcbiAgICBcImFkZExvZ2ljSXRlbVwiOiBcItio2LHYp9uMINi02K7YtduMINiz2KfYstuMINmG2LjYsdiz2YbYrNuMINiu2YjYr9iMINmC2KfZhtmI2YbbjCDYsdinINin24zYrNin2K8g2qnZhtuM2K9cIixcbiAgICBcImNvcHlcIjogXCLaqdm+24xcIixcbiAgICBcImR1cGxpY2F0ZVwiOiBcItqp2b7bjCDaqdix2K/ZhlwiLFxuICAgIFwiYWRkVG9Ub29sYm94XCI6IFwi2KfZgdiy2YjYr9mGINio2Ycg2KzYudio2Ycg2KfYqNiy2KfYsVwiLFxuICAgIFwiZGVsZXRlUGFuZWxcIjogXCLYrdiw2YEg2b7ZhtmEXCIsXG4gICAgXCJkZWxldGVRdWVzdGlvblwiOiBcItit2LDZgSDYs9mI2KfZhFwiLFxuICAgIFwiY29udmVydFRvXCI6IFwi2KrYqNiv24zZhCDYqNmHXCIsXG4gICAgXCJkcmFnXCI6IFwi2KfZhNmF2KfZhiDYsdinINio2qnYtNuM2K9cIlxuICB9LFxuICBcInF0XCI6IHtcbiAgICBcImRlZmF1bHRcIjogXCLZvtuM2LQg2YHYsdi2XCIsXG4gICAgXCJjaGVja2JveFwiOiBcItqG2YbYryDYp9mG2KrYrtin2KjbjFwiLFxuICAgIFwiY29tbWVudFwiOiBcItmG2LjYsVwiLFxuICAgIFwiaW1hZ2VwaWNrZXJcIjogXCLYp9mG2KrYrtin2Kgg2LnaqdizXCIsXG4gICAgXCJyYW5raW5nXCI6IFwi2LHYqtio2Ycg2KjZhtiv24wo2LHZhtqpKVwiLFxuICAgIFwiaW1hZ2VcIjogXCLYudqp2LNcIixcbiAgICBcImRyb3Bkb3duXCI6IFwi2YTbjNiz2Kog2KfZhtiq2K7Yp9io24xcIixcbiAgICBcImZpbGVcIjogXCLZgdin24zZhFwiLFxuICAgIFwiaHRtbFwiOiBcIkh0bWxcIixcbiAgICBcIm1hdHJpeFwiOiBcItmF2KfYqtix24zYsyAo2KraqSDYp9mG2KrYrtin2KjbjClcIixcbiAgICBcIm1hdHJpeGRyb3Bkb3duXCI6IFwi2YXYp9iq2LHbjNizICjahtmG2K8g2KfZhtiq2K7Yp9io24wpXCIsXG4gICAgXCJtYXRyaXhkeW5hbWljXCI6IFwi2YXYp9iq2LHbjNizICjYs9i32LHZh9in24wg2K/Yp9uM2YbYp9mF24zaqSlcIixcbiAgICBcIm11bHRpcGxldGV4dFwiOiBcItmF2KrZhiDahtmG2K8g2K7Yt9uMXCIsXG4gICAgXCJwYW5lbFwiOiBcItm+2YbZhFwiLFxuICAgIFwicGFuZWxkeW5hbWljXCI6IFwi2b7ZhtmEICjZvtmG2YQg2YfYp9uMINiv2KfbjNmG2KfZhduM2qkpXCIsXG4gICAgXCJyYWRpb2dyb3VwXCI6IFwi2KraqSDYp9mG2KrYrtin2KjbjFwiLFxuICAgIFwicmF0aW5nXCI6IFwi2LHYqtio2Ycg2KjZhtiv24xcIixcbiAgICBcInRleHRcIjogXCLZhdiq2YYg2KraqSDYrti324xcIixcbiAgICBcImJvb2xlYW5cIjogXCLYtdit24zYrSDZiCDYutmE2LdcIixcbiAgICBcImV4cHJlc3Npb25cIjogXCLYqtmI2LXbjNmB24xcIixcbiAgICBcInNpZ25hdHVyZXBhZFwiOiBcItmC2LPZhdiqINin2YXYttinXCIsXG4gICAgXCJmbG93cGFuZWxcIjogXCLZvtmG2YQg2KzYsduM2KfZhlwiXG4gIH0sXG4gIFwiZWRcIjoge1xuICAgIFwiZGVmYXVsdExvY2FsZVwiOiBcItm+24zYtCDZgdix2LYgKHswfSlcIixcbiAgICBcInN1cnZleVwiOiBcItmG2LjYsdiz2YbYrNuMXCIsXG4gICAgXCJzZXR0aW5nc1wiOiBcItiq2YbYuNuM2YXYp9iqINmG2LjYsdiz2YbYrNuMXCIsXG4gICAgXCJzZXR0aW5nc1Rvb2x0aXBcIjogXCLYqNin2LIg2qnYsdiv2YYg2KrZhti424zZhdin2Kog2YbYuNix2LPZhtis24xcIixcbiAgICBcInNob3dQYW5lbFwiOiBcItmG2YXYp9uM2LQg2b7ZhtmEXCIsXG4gICAgXCJoaWRlUGFuZWxcIjogXCLZvtmG2YfYp9mGINiz2KfYstuMINm+2YbZhFwiLFxuICAgIFwiYWRkTmV3UGFnZVwiOiBcItiv2LHYrCDYtdmB2K3ZhyDYrNiv24zYr1wiLFxuICAgIFwibW92ZVJpZ2h0XCI6IFwi2KfYs9qp2LHZiNmEINio2Ycg2LHYp9iz2KpcIixcbiAgICBcIm1vdmVMZWZ0XCI6IFwi2KfYs9qp2LHZiNmEINio2Ycg2obZvlwiLFxuICAgIFwiZGVsZXRlUGFnZVwiOiBcItit2LDZgSDYtdmB2K3Zh1wiLFxuICAgIFwiZWRpdFBhZ2VcIjogXCLZiNuM2LHYp9uM2LQg2LXZgdit2YdcIixcbiAgICBcImVkaXRcIjogXCLZiNuM2LHYp9uM2LRcIixcbiAgICBcIm5ld1BhZ2VOYW1lXCI6IFwi2LXZgdit2YdcIixcbiAgICBcIm5ld1F1ZXN0aW9uTmFtZVwiOiBcItiz2YjYp9mEXCIsXG4gICAgXCJuZXdQYW5lbE5hbWVcIjogXCLZvtmG2YRcIixcbiAgICBcIm5ld1RleHRJdGVtTmFtZVwiOiBcItmF2KrZhlwiLFxuICAgIFwidGVzdFN1cnZleVwiOiBcItii2LLZhdin24zYtCDZhti42LHYs9mG2KzbjFwiLFxuICAgIFwidGVzdFN1cnZleUFnYWluXCI6IFwi2KLYstmF2KfbjNi0INiv2YjYqNin2LHZhyDZhti42LHYs9mG2KzbjFwiLFxuICAgIFwidGVzdFN1cnZleVdpZHRoXCI6IFwi2LnYsdi2INmG2LjYsdiz2YbYrNuMOiBcIixcbiAgICBcIm5hdmlnYXRlVG9Nc2dcIjogXCLYtNmF2Kcg2KjYp9uM2K8g2KjZhyDZhdmI2KfYsdivINiy24zYsSDYqNix2YjbjNivOlwiLFxuICAgIFwibG9naWNcIjogXCLZhdmG2LfZgiDZhti42LHYs9mG2KzbjFwiLFxuICAgIFwiZW1iZWRTdXJ2ZXlcIjogXCLZhti42LHYs9mG2KzbjCDYqtmI2qnYp9ixXCIsXG4gICAgXCJ0cmFuc2xhdGlvblwiOiBcItiq2LHYrNmF2YdcIixcbiAgICBcInNhdmVTdXJ2ZXlcIjogXCLYsNiu24zYsdmHINmG2LjYsdiz2YbYrNuMXCIsXG4gICAgXCJzYXZlU3VydmV5VG9vbHRpcFwiOiBcItiw2K7bjNix2Ycg2YbYuNix2LPZhtis24xcIixcbiAgICBcImRlc2lnbmVyXCI6IFwi2LfYsdin2K0g2YbYuNix2LPZhtis24xcIixcbiAgICBcImpzb25FZGl0b3JcIjogXCLZiNuM2LHYp9uM2LTar9ixIEpTT05cIixcbiAgICBcInVuZG9cIjogXCLYqNin2LLar9ix2K/Yp9mG24xcIixcbiAgICBcInJlZG9cIjogXCLYqNin2LLYp9mG2KzYp9mFXCIsXG4gICAgXCJ1bmRvVG9vbHRpcFwiOiBcItio2KfYstqv2LHYr9in2YbYr9mGINii2K7YsduM2YYg2KrYutuM24zYsVwiLFxuICAgIFwicmVkb1Rvb2x0aXBcIjogXCLYp9mG2KzYp9mFINiv2KfYr9mGINiq2LrbjNuM2LFcIixcbiAgICBcImNvcHlcIjogXCLaqdm+24xcIixcbiAgICBcImN1dFwiOiBcItio2LHYr9in2LTYqtmGXCIsXG4gICAgXCJwYXN0ZVwiOiBcItqG2LPYqNin2YbYr9mGXCIsXG4gICAgXCJjb3B5VG9vbHRpcFwiOiBcItqp2b7bjCDZhdiq2YYg2KfZhtiq2K7Yp9ioINi02K/ZhyDYr9ixINqp2YTbjNm+INio2YjYsdivXCIsXG4gICAgXCJjdXRUb29sdGlwXCI6IFwi2YXYqtmGINin2YbYqtiu2KfYqNuMINix2Kcg2KfYsiDaqdmE24zZviDYqNmI2LHYryDYqNix2LQg2K/Zh9uM2K9cIixcbiAgICBcInBhc3RlVG9vbHRpcFwiOiBcItin2YTYtdin2YIg2KfYsiDaqdmE24zZviDYqNmI2LHYr1wiLFxuICAgIFwib3B0aW9uc1wiOiBcItin2YbYqtiu2KfYqCDZh9inXCIsXG4gICAgXCJnZW5lcmF0ZVZhbGlkSlNPTlwiOiBcItiq2YjZhNuM2K8g2qnYryDZhdi52KrYqNixIEpTT05cIixcbiAgICBcImdlbmVyYXRlUmVhZGFibGVKU09OXCI6IFwi2KrZiNmE24zYryDaqdivINiu2YjYp9mG2KcgSlNPTlwiLFxuICAgIFwidG9vbGJveFwiOiBcItis2LnYqNmHINin2KjYstin2LFcIixcbiAgICBcInByb3BlcnR5LWdyaWRcIjogXCLZiNuM2pjar9uMINmH2KdcIixcbiAgICBcInRvb2xib3hHZW5lcmFsQ2F0ZWdvcnlcIjogXCLYudmF2YjZhduMXCIsXG4gICAgXCJjb3JyZWN0SlNPTlwiOiBcItmE2LfZgdinIEpTT04g2LHYpyDYqti12K3bjNitINqp2YbbjNivLlwiLFxuICAgIFwic3VydmV5UmVzdWx0c1wiOiBcItmG2KrYp9uM2Kwg2YbYuNix2LPZhtis24w6IFwiLFxuICAgIFwic3VydmV5UmVzdWx0c1RhYmxlXCI6IFwi2KjZhyDYtdmI2LHYqiDYrNiv2YjZhFwiLFxuICAgIFwic3VydmV5UmVzdWx0c0pzb25cIjogXCLYqNmHINi12YjYsdiqIEpTT05cIixcbiAgICBcInJlc3VsdHNUaXRsZVwiOiBcIti52YbZiNin2YYg2LPZiNin2YRcIixcbiAgICBcInJlc3VsdHNOYW1lXCI6IFwi2YbYp9mFINiz2YjYp9mEXCIsXG4gICAgXCJyZXN1bHRzVmFsdWVcIjogXCLZhdit2KrZiNin24wg2b7Yp9iz2K5cIixcbiAgICBcInJlc3VsdHNEaXNwbGF5VmFsdWVcIjogXCLZhdit2KrZiNin24wg2YbZhdin24zYtNuMXCIsXG4gICAgXCJtb2RpZmllZFwiOiBcItiq2LrbjNuM2LEg2K/Yp9iv2Ycg2LTYr9mHXCIsXG4gICAgXCJzYXZpbmdcIjogXCLYr9ixINit2KfZhCDYsNiu24zYsdmHXCIsXG4gICAgXCJzYXZlZFwiOiBcItiw2K7bjNix2Ycg2LTYr1wiLFxuICAgIFwicHJvcGVydHlFZGl0b3JFcnJvclwiOiBcItiu2LfYpzpcIixcbiAgICBcInNhdmVFcnJvclwiOiBcItiu2LfYpyEg2YXYrdiq2YjYp9uMINmI24zYsdin24zYtNqv2LEg2LDYrtuM2LHZhyDZhti02K/ZhyDYp9iz2KouXCIsXG4gICAgXCJ0cmFuc2xhdGlvbkFkZExhbmd1YWdlXCI6IFwi2LLYqNin2YbbjCDYsdinINio2LHYp9uMINiq2LHYrNmF2Ycg2KfZhtiq2K7Yp9ioINqp2YbbjNivXCIsXG4gICAgXCJ0cmFuc2xhdGlvblNob3dBbGxTdHJpbmdzXCI6IFwi2YbZhdin24zYtCDYqtmF2KfZhSDYudio2KfYsdin2KpcIixcbiAgICBcInRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzXCI6IFwi2YbZhdin24zYtCDYqtmF2KfZhSDYtdmB2K3Yp9iqXCIsXG4gICAgXCJ0cmFuc2xhdGlvbk5vU3RyaW5nc1wiOiBcItmH24zahiDYudio2KfYsdiq24wg2KjYsdin24wg2KrYsdis2YXZhyDZhtuM2LPYqtiMINmE2LfZgdinINmB24zZhNiq2LEg2LHYpyDYudmI2LYg2qnZhtuM2K8uXCIsXG4gICAgXCJ0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uXCI6IFwi2KjYsdmI2YYg2KjYsduMINio2YcgQ1NWXCIsXG4gICAgXCJ0cmFuc2xhdGlvbkltcG9ydEZyb21TQ1ZCdXR0b25cIjogXCLYqNix2YjZhiDYsduM2LLbjCDYp9iyIENTVlwiLFxuICAgIFwidHJhbnNsYXRpb25NZXJnZUxvY2FsZVdpdGhEZWZhdWx0XCI6IFwi2KfYr9i62KfZhSB7MH0g2KjYpyDYstio2KfZhiDZvtuM2LQg2YHYsdi2XCIsXG4gICAgXCJib2xkXCI6IFwi2b7Ysdix2Ybar1wiLFxuICAgIFwiaXRhbGljXCI6IFwi2YXZiNix2KhcIixcbiAgICBcInVuZGVybGluZVwiOiBcItm+2KfbjNuM2YYg2K7Yt1wiLFxuICAgIFwiZnBBZGRRdWVzdGlvblwiOiBcItin2LbYp9mB2Ycg2qnYsdiv2YYg2LPZiNin2YQgLi4uXCIsXG4gICAgXCJzZWxlY3RQYWdlXCI6IFwi2KfZhtiq2K7Yp9ioINi12YHYrdmHIC4uLlwiLFxuICAgIFwiY2hvb3NlRWxlbWVudFwiOiBcItin2YbYqtiu2KfYqCDYqNiu2LQgLi4uXCIsXG4gICAgXCJsZ1wiOiB7XG4gICAgICBcImFkZE5ld0l0ZW1cIjogXCLYp9i22KfZgdmHINqp2LHYr9mGINii24zYqtmFINis2K/bjNivXCIsXG4gICAgICBcInBhZ2VfdmlzaWJpbGl0eU5hbWVcIjogXCLZgtin2KjZhNuM2Kog2LHZiNuM2Kog2LXZgdit2YcgXCIsXG4gICAgICBcInBhbmVsX3Zpc2liaWxpdHlOYW1lXCI6IFwi2YLYp9io2YTbjNiqINix2YjbjNiqINm+2YbZhFwiLFxuICAgICAgXCJwYW5lbF9lbmFibGVOYW1lXCI6IFwi2YHYudin2YQv2LrbjNix2YHYudin2YQg2qnYsdiv2YYg2b7ZhtmEIFwiLFxuICAgICAgXCJxdWVzdGlvbl92aXNpYmlsaXR5TmFtZVwiOiBcIiDZgtin2KjZhNuM2Kog2LHZiNuM2Kog2LPZiNin2YRcIixcbiAgICAgIFwicXVlc3Rpb25fZW5hYmxlTmFtZVwiOiBcItmB2LnYp9mEL9i624zYsdmB2LnYp9mEINqp2LHYr9mGINiz2YjYp9mEIFwiLFxuICAgICAgXCJxdWVzdGlvbl9yZXF1aXJlTmFtZVwiOiBcItiz2YjYp9mEINin2K7YqtuM2KfYsduMINmF2YjYsdiv2YbbjNin2LJcIixcbiAgICAgIFwidHJpZ2dlcl9jb21wbGV0ZU5hbWVcIjogXCLYqtqp2YXbjNmEINmG2LjYsdiz2YbYrNuMXCIsXG4gICAgICBcInRyaWdnZXJfc2V0dmFsdWVOYW1lXCI6IFwi2KrZhti424zZhSDYudmG2YjYp9mGINiz2YjYp9mEXCIsXG4gICAgICBcInRyaWdnZXJfY29weXZhbHVlTmFtZVwiOiBcItqp2b7bjCDZhdmC2K/Yp9ixINiz2YjYp9mEXCIsXG4gICAgICBcInRyaWdnZXJfc2tpcE5hbWVcIjogXCLYsdivINqp2LHYr9mGINiz2YjYp9mEIFwiLFxuICAgICAgXCJ0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lXCI6IFwi2KfYrNix2KfbjCDZhdiq2YYg2LTZgdin2LHYtNuMINmF2YjYsdivINmG2LjYsVwiLFxuICAgICAgXCJjb21wbGV0ZWRIdG1sT25Db25kaXRpb25OYW1lXCI6IFwi2YXYqtmGINiz2YHYp9ix2LTbjCDYtdmB2K3ZhyAn2KrYtNqp2LEnIFwiLFxuICAgICAgXCJwYWdlX3Zpc2liaWxpdHlEZXNjcmlwdGlvblwiOiBcItiy2YXYp9mG24wg2qnZhyDYudio2KfYsdiqINmF2YbYt9mC24wg2YXZgtiv2KfYsSDYtdit24zYrSDYqNix2YXbjCDar9ix2K/Yp9mG2K8g2LXZgdit2Ycg2LHYpyDZgtin2KjZhCDZhdi02KfZh9iv2Ycg2qnZhtuM2K/YjCDYr9ixINi624zYsdin24zZhti12YjYsdiqINii2YYg2LHYpyDYutuM2LHZgtin2KjZhCDZhdi02KfZh9iv2Ycg2Ybar9mHINiv2KfYsduM2K8uXCIsXG4gICAgICBcInBhbmVsX3Zpc2liaWxpdHlEZXNjcmlwdGlvblwiOiBcItin2q/YsSDYudio2KfYsdiqINmF2YbYt9mC24wg2YXZgtiv2KfYsSDYtdit24zYrSDYqNixINmF24zar9ix2K/Yp9mG2K/YjCDZvtmG2YQg2LHYpyDZgdi52KfZhCDaqdmG24zYr9iMINiv2LEg2LrbjNixINin24zZhti12YjYsdiqINii2YYg2LHYpyDYutuM2LHZgtin2KjZhCDZhdi02KfZh9iv2Ycg2Ybar9mHINiv2KfYsduM2K8uXCIsXG4gICAgICBcInBhbmVsX2VuYWJsZURlc2NyaXB0aW9uXCI6IFwi24zaqSDZvtmG2YQg2KfbjNis2KfYryDaqdmG24zYryDZiCDZh9mF2Ycg2KfZhNmF2KfZhiDZh9in24wg2K/Yp9iu2YQg2KLZhiDYsdinINiv2LEg2LXZiNix2KrbjCDaqdmHINi52KjYp9ix2Kog2YXZhti32YLbjCDZhdmC2K/Yp9ixINi12K3bjNitINio2LEg2YXbjCDar9ix2K/Yp9mG2K8g2LHYpyDZgdi52KfZhCDaqdmG24zYr9iMINiv2LEg2LrbjNixINin24zZhti12YjYsdiqINii2YYg2YfYpyDYsdinINi624zYsdmB2LnYp9mEINmG2q/ZhyDYr9in2LHbjNivLlwiLFxuICAgICAgXCJxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb25cIjogXCLYstmF2KfZhtuMINqp2Ycg2LnYqNin2LHYqiDZhdmG2LfZgtuMINmF2YLYr9in2LEg2LXYrduM2K0g2LHYpyDYqNix2YXbjCDar9ix2K/Yp9mG2K/YjCDYs9mI2KfZhCDYsdinINmC2KfYqNmEINmF2LTYp9mH2K/ZhyDaqdmG24zYr9iMINiv2LEg2LrbjNixINin24zZhti12YjYsdiqINii2YYg2LHYpyDYutuM2LHZhdi02KfZh9iv2Ycg2Ybar9mHINiv2KfYsduM2K8uXCIsXG4gICAgICBcInF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uXCI6IFwi2LLZhdin2YbbjCDaqdmHINi52KjYp9ix2Kog2YXZhti32YLbjCDZhdmC2K/Yp9ixINi12K3bjNitINio2LHZhduMINqv2LHYr9in2YbYr9iMINiz2YjYp9mEINix2Kcg2YHYudin2YQg2qnZhtuM2K/YjCDYr9ixINi624zYsSDYp9uM2YbYtdmI2LHYqiDYotmGINix2Kcg2LrbjNix2YHYudin2YQg2Ybar9mHINiv2KfYsduM2K8uXCIsXG4gICAgICBcInF1ZXN0aW9uX3JlcXVpcmVEZXNjcmlwdGlvblwiOiBcItiy2YXYp9mG24wg2qnZhyDYudio2KfYsdiqINmF2YbYt9mC24wg2YXZgtiv2KfYsSDYtdit24zYrSDYsdinINio2LEg2YXbjCDar9ix2K/Yp9mG2K/YjCDYs9mI2KfZhCDYp9is2KjYp9ixINuMINmF24wg2LTZiNivLlwiLFxuICAgICAgXCJ0cmlnZ2VyX2NvbXBsZXRlRGVzY3JpcHRpb25cIjogXCLYstmF2KfZhtuMINqp2Ycg2LnYqNin2LHYqiDZhdmG2LfZgtuMINmF2YLYr9in2LEg2LXYrduM2K0g2LHYpyDYqNixINmF24wg2q/Ysdiv2KfZhtiv2Iwg2Ygg2KjYsdix2LPbjCDYqtqp2YXbjNmEINmF24wg2LTZiNiv2Izaqdin2LHYqNixINmG2YfYp9uM24wg2LXZgdit2YcgJ9iq2LTaqdixJyDYsdinINmF2LTYp9mH2K/ZhyDZhduMINqp2YbYry5cIixcbiAgICAgIFwidHJpZ2dlcl9zZXR2YWx1ZURlc2NyaXB0aW9uXCI6IFwi2LLZhdin2YbbjCDaqdmHINmF2YLYr9in2LEg2LPZiNin2YTbjCDaqdmHINiv2LEg2LnYqNin2LHYqiDZhdmG2LfZgtuMINin2LPYqtmB2KfYr9mHINi02K/ZhyDYp9iz2Kog2KrYutuM24zYsSDZhduMINuM2KfYqNivINmIINi52KjYp9ix2Kog2YXZhti32YLbjCDZhdmC2K/Yp9ixINi12K3bjNitINix2Kcg2KjYsSDZhduMINqv2LHYr9in2YbYr9iMINii2Ybar9in2Ycg2YXZgtiv2KfYsSDYqNix2KfbjCDYs9mI2KfZhCDYp9mG2KrYrtin2Kgg2LTYr9mHINiq2YbYuNuM2YUg2YXbjCDYtNmI2K8uXCIsXG4gICAgICBcInRyaWdnZXJfY29weXZhbHVlRGVzY3JpcHRpb25cIjogXCLYstmF2KfZhtuMINqp2Ycg2YXZgtiv2KfYsdmH2KfbjCDYs9mI2KfZhCDaqdmHINiv2LEg2LnYqNin2LHYqiDZhdmG2LfZgtuMINin2LPYqtmB2KfYr9mHINi02K/ZhyDYp9mG2K/YjCDYqti624zbjNixINmF24wg24zYp9io2K8g2Ygg2LnYqNin2LHYqiDZhdmG2LfZgtuMINmF2YLYr9in2LEg2LXYrduM2K0g2LHYpyDYqNixINmF24wg2q/Ysdiv2KfZhtiv2Iwg2LPZvtizINmF2YLYr9in2LEg24zaqduMINin2LIg2LPZiNin2YQg2YfYp9uMINin2YbYqtiu2KfYqCDYtNiv2Ycg2K/YsSDYs9mI2KfZhCDYr9uM2q/YsSDYp9mG2KrYrtin2Kgg2LTYr9mHINqp2b7bjCDZhduMINi02YjYry5cIixcbiAgICAgIFwidHJpZ2dlcl9za2lwRGVzY3JpcHRpb25cIjogXCLYstmF2KfZhtuMINqp2Ycg2LnYqNin2LHYqiDZhdmG2LfZgtuMINi12K3bjNitINio2LHZhduMINqv2LHYr9in2YbYr9iMINiz2b7YsyDZhti42LHYs9mG2KzbjCDYqNmHINiz2YjYp9mEINin2YbYqtiu2KfYqNuMINmF24wg2LHZiNivLlwiLFxuICAgICAgXCJ0cmlnZ2VyX3J1bkV4cHJlc3Npb25EZXNjcmlwdGlvblwiOiBcItin2q/YsSDYudio2KfYsdiqINmF2YbYt9mC24wg2YXZgtiv2KfYsSDYtdit24zYrSDYqNix2q/Ysdiv2KfZhtiv2Iwg2KLZhtqv2KfZhyDYudio2KfYsdiqINiz2YHYp9ix2LTbjCDYp9is2LHYpyDZhduMINi02YjYry4g2LTZhdinINmF2YXaqdmGINin2LPYqiDYqNmHINi32YjYsSDYp9iu2KrbjNin2LHbjCDYp9uM2YYg2YbYqtuM2KzZhyDYsdinINio2Ycg2LPZiNin2YQg2KfZhtiq2K7Yp9ioINi02K/ZhyDYqtio2K/bjNmEINqp2YbbjNivLlwiLFxuICAgICAgXCJjb21wbGV0ZWRIdG1sT25Db25kaXRpb25EZXNjcmlwdGlvblwiOiBcIiDYp9qv2LEg2LnYqNin2LHYqiDZhdmG2LfZgtuMINmF2YLYr9in2LEg2LXYrduM2K0g2KjYsdqv2LHYr9in2YbYryDZhdiq2YYg2LXZgdit2YcgJ9iq2LTaqdixJyDYqNmHINmF2KrZhiDYr9in2K/ZhyDYtNiv2Ycg2KrYutuM24zYsSDZhduMINuM2KfYqNivLlwiLFxuICAgICAgXCJpdGVtRXhwcmVzc2lvblRleHRcIjogXCLYstmF2KfZhtuMINqp2Ycg2LnYqNin2LHYqiB7MH0g2YXZgtiv2KfYsSDYtdit24zYrSDYqNixINmF24wg2q/Ysdiv2KfZhtivXCIsXG4gICAgICBcInBhZ2VfdmlzaWJpbGl0eVRleHRcIjogXCLYtdmB2K3ZhyB7MH0g2LHYpyDZgtin2KjZhCDZhdi02KfZh9iv2Ycg2qnZhtuM2K8uXCIsXG4gICAgICBcInBhbmVsX3Zpc2liaWxpdHlUZXh0XCI6IFwi2b7ZhtmEIHswfSDYsdinINmC2KfYqNmEINmF2LTYp9mH2K/ZhyDaqdmG24zYry5cIixcbiAgICAgIFwicGFuZWxfZW5hYmxlVGV4dFwiOiBcItmB2LnYp9mEINqp2LHYr9mGINm+2YbZhCB7MH1cIixcbiAgICAgIFwicXVlc3Rpb25fdmlzaWJpbGl0eVRleHRcIjogXCLYs9mI2KfZhCB7MH0g2LHYpyDZgtin2KjZhCDZhdi02KfZh9iv2Ycg2qnZhtuM2K8uXCIsXG4gICAgICBcInF1ZXN0aW9uX2VuYWJsZVRleHRcIjogXCLZgdi52KfZhCDaqdix2K/ZhiDYs9mI2KfZhCB7MH1cIixcbiAgICAgIFwicXVlc3Rpb25fcmVxdWlyZVRleHRcIjogXCLYp9uM2KzYp9ivINiz2YjYp9mEIHswfSDYp9is2KjYp9ix24xcIixcbiAgICAgIFwidHJpZ2dlcl9jb21wbGV0ZVRleHRcIjogXCLYqNix2LHYs9uMINmG2LjYsdiz2YbYrNuMINiq2YXYp9mFINi02K9cIixcbiAgICAgIFwidHJpZ2dlcl9zZXR2YWx1ZVRleHRcIjogXCLYr9ixINiz2YjYp9mEIHswfSDZhdmC2K/Yp9ixIHsxfSDYsdinINmC2LHYp9ixINiv2YfbjNivXCIsXG4gICAgICBcInRyaWdnZXJfY29weXZhbHVlVGV4dFwiOiBcItmF2YLYr9in2LEg2LPZiNin2YQgezB9INix2Kcg2KfYsiDYs9mI2KfZhCB7MX0g2qnZvtuMINqp2YbbjNivLlwiLFxuICAgICAgXCJ0cmlnZ2VyX3NraXBUZXh0XCI6IFwi2LHYryDaqdix2K/ZhiDZhti42LHYs9mG2KzbjCDYqNix2KfbjCDYs9mI2KfZhCB7MH1cIixcbiAgICAgIFwidHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDFcIjogXCLYp9is2LHYp9uMINi52KjYp9ix2KogJ3swfScgXCIsXG4gICAgICBcInRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQyXCI6IFwi2Ygg2YbYqtuM2KzZhyDYotmGINix2Kcg2K/Yp9iu2YQg2LPZiNin2YQgezB9INiw2K7bjNix2Ycg2qnZhtuM2K9cIixcbiAgICAgIFwiY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uVGV4dFwiOiBcItmG2YXYp9uM2LQg2YXYqtmGINiz2YHYp9ix2LTbjCDYqNix2KfbjCDYtdmB2K3ZhyAn2KrYtNqp2LEnXCIsXG4gICAgICBcImNvbmRpdGlvbnNcIjogXCLYtNix2Lco2YfYpylcIixcbiAgICAgIFwiYWN0aW9uc1wiOiBcIti52YXZhNqp2LHYryjZh9inKVwiLFxuICAgICAgXCJleHByZXNzaW9uRWRpdG9yVGl0bGVcIjogXCLYudio2KfYsdiqINmF2YbYt9mC24wg2LHYpyDYqtmG2LjbjNmFINqp2YbbjNivXCIsXG4gICAgICBcImFjdGlvbnNFZGl0b3JUaXRsZVwiOiBcItiq2LnYsduM2YEg2qnYsdiv2YYg2LnZhdmE2qnYsdivKNmH2KcpXCIsXG4gICAgICBcImRlbGV0ZUFjdGlvblwiOiBcItit2LDZgSDYudmF2YTaqdix2K9cIixcbiAgICAgIFwiYWRkTmV3QWN0aW9uXCI6IFwi2KfYttin2YHZhyDaqdix2K/ZhiDYs9mI2KfZhCAo2YfYp9uMKSDYrNiv24zYr1wiLFxuICAgICAgXCJzZWxlY3RlZEFjdGlvbkNhcHRpb25cIjogXCLbjNqpINi52YXZhNqp2LHYryDYsdinINio2LHYp9uMINin2LbYp9mB2Ycg2qnYsdiv2YbYjCDYp9mG2KrYrtin2Kgg2qnZhtuM2K9cIixcbiAgICAgIFwiZXhwcmVzc2lvbkludmFsaWRcIjogXCLYudio2KfYsdiqINmF2YbYt9mC24wg2K7Yp9mE24wg24zYpyDZhtin2K/Ysdiz2Kog2KfYs9iqLiDZhNi32YHYpyDYotmGINix2Kcg2KrYttit24zYrSDaqdmG24zYr1wiLFxuICAgICAgXCJub0FjdGlvbkVycm9yXCI6IFwi2YTYt9mB2Kcg2K3Yr9in2YLZhCDbjNqpINi52YXZhNqp2LHYryDYsdinINin2LbYp9mB2Ycg2YbZhdin24zbjNivXCIsXG4gICAgICBcImFjdGlvbkludmFsaWRcIjogXCLZhNi32YHYpyDZhdi02qnZhNin2Kog2YXYsdio2YjYtyDYqNmHINi52YXZhNqp2LHYryjZh9in24wpINiu2YjYryDYsdinINio2LHYt9ix2YEg2YbZhdin24zbjNivLlwiLFxuICAgICAgXCJleHByZXNzaW9uU2V0dXBcIjogXCLYqtmG2LjbjNmF2KfYqiDYudio2KfYsdiqINmH2KdcIixcbiAgICAgIFwiYWN0aW9uc1NldHVwXCI6IFwi2KrZhti424zZhdin2Kog2LnZhdmE2qnYsdiv2YfYp1wiXG4gICAgfSxcbiAgICBcIm9wamVjdFByb3BlcnRpZXNIZWFkZXJcIjogXCLZvtuM2LTYsdmB2KrZh1wiLFxuICAgIFwic2hvd09iamVjdFByb3BlcnRpZXNcIjogXCLZhtmF2KfbjNi0INmF2LTYrti12KfYqiDYqNiu2LQg2YXZiNix2K8g2YbYuNixXCIsXG4gICAgXCJoaWRlT2JqZWN0UHJvcGVydGllc1wiOiBcItm+2YbZh9in2YYg2LPYp9iy24wg2YXYtNiu2LXYp9iqINio2K7YtCDZhdmI2LHYryDZhti42LFcIixcbiAgICBcImVkaXRTdXJ2ZXlcIjogXCLZiNuM2LHYp9uM2LQg2YbYuNix2LPZhtis24xcIixcbiAgICBcImRlbFNlbE9iamVjdFwiOiBcItit2LDZgSDZhdmI2LHYryDYp9mG2KrYrtin2KjbjFwiLFxuICAgIFwiZWRpdFNlbE9iamVjdFwiOiBcItmI24zYsdin24zYtCDZhdmI2LHYryDYp9mG2KrYrtin2KjbjFwiLFxuICAgIFwiY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHRcIjogXCLZhtmF2KfbjNi0INmF24wg2K/Zh9ivINin2q/YsTpcIlxuICB9LFxuICBcInBlXCI6IHtcbiAgICBcImFwcGx5XCI6IFwi2KfYudmF2KfZhFwiLFxuICAgIFwib2tcIjogXCLYqtin24zbjNivXCIsXG4gICAgXCJzYXZlXCI6IFwi2LDYrtuM2LHZh1wiLFxuICAgIFwic2F2ZVRvb2x0aXBcIjogXCLYsNiu24zYsdmHXCIsXG4gICAgXCJjYW5jZWxcIjogXCLZhNi62YhcIixcbiAgICBcInJlc2V0XCI6IFwi2KjYp9iy2YbYtNin2YbbjFwiLFxuICAgIFwicmVmcmVzaFwiOiBcItiq2KfYstmHINiz2KfYstuMXCIsXG4gICAgXCJkZWxldGVcIjogXCLYrdiw2YFcIixcbiAgICBcImFkZFwiOiBcItin2YHYstmI2K/ZhlwiLFxuICAgIFwiYWRkTmV3XCI6IFwi2KfZgdiy2YjYr9mGXCIsXG4gICAgXCJhZGRJdGVtXCI6IFwi2KjYsdin24wg2KfYttin2YHZhyDaqdix2K/ZhiDbjNqpINii24zYqtmFINqp2YTbjNqpINqp2YbbjNivLi4uXCIsXG4gICAgXCJhZGRPdGhlclwiOiBcItiz2KfbjNixXCIsXG4gICAgXCJhZGRTZWxlY3RBbGxcIjogXCLYp9mG2KrYrtin2Kgg2YfZhdmHXCIsXG4gICAgXCJhZGROb25lXCI6IFwi2YfbjNqG2qnYr9in2YVcIixcbiAgICBcInJlbW92ZUFsbFwiOiBcItit2LDZgSDZh9mF2YdcIixcbiAgICBcImVkaXRcIjogXCLZiNuM2LHYp9uM2LRcIixcbiAgICBcImJhY2tcIjogXCLYqNin2LLar9i02KpcIixcbiAgICBcImJhY2tUb29sdGlwXCI6IFwi2KjYp9iy2q/YtNiqINio2K/ZiNmGINiw2K7bjNix2YdcIixcbiAgICBcInNhdmVBbmRCYWNrXCI6IFwi2LDYrtuM2LHZhyDZiCDYqNin2LLar9i02KpcIixcbiAgICBcInNhdmVBbmRCYWNrVG9vbHRpcFwiOiBcItiw2K7bjNix2Ycg2Ygg2KjYp9iy2q/YtNiqXCIsXG4gICAgXCJlZGl0Q2hvaWNlc1wiOiBcItmI24zYsdin24zYtCDYp9mG2KrYrtin2Kgg2YfYp1wiLFxuICAgIFwic2hvd0Nob2ljZXNcIjogXCLZhtmF2KfbjNi0INin2YbYqtiu2KfYqCDZh9inXCIsXG4gICAgXCJtb3ZlXCI6IFwi2KzYp9io2KzYp9uM24xcIixcbiAgICBcImVtcHR5XCI6IFwiPNiu2KfZhNuMPlwiLFxuICAgIFwiZmFzdEVudHJ5XCI6IFwi2KraqdmF24zZhCDYs9ix24zYuVwiLFxuICAgIFwiZm9ybUVudHJ5XCI6IFwi2KraqdmF24zZhCDZgdix2YVcIixcbiAgICBcInRlc3RTZXJ2aWNlXCI6IFwi2KjYsdix2LPbjCDYs9ix2YjbjNizXCIsXG4gICAgXCJpdGVtU2VsZWN0b3JFbXB0eVwiOiBcItmE2LfZgdinINuM2qkg2KfZhNmF2KfZhiDYsdinINin2YbYqtiu2KfYqCDaqdmG24zYryBcIixcbiAgICBcImNvbmRpdGlvbkFjdGlvbkVtcHR5XCI6IFwi2YTYt9mB2Kcg2LnZhdmE2qnYsdivINix2Kcg2KfZhtiq2K7Yp9ioINqp2YbbjNivXCIsXG4gICAgXCJjb25kaXRpb25TZWxlY3RRdWVzdGlvblwiOiBcItin2YbYqtiu2KfYqCDYs9mI2KfZhC4uLlwiLFxuICAgIFwiY29uZGl0aW9uU2VsZWN0UGFnZVwiOiBcItin2YbYqtiu2KfYqCDYtdmB2K3Zhy4uLlwiLFxuICAgIFwiY29uZGl0aW9uU2VsZWN0UGFuZWxcIjogXCLYp9mG2KrYrtin2Kgg2b7ZhtmELi4uXCIsXG4gICAgXCJjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGVcIjogXCLZhNi32YHYpyDZhdmC2K/Yp9ixINix2Kcg2KfZhtiq2K7Yp9ioIC8g2YjYp9ix2K8g2qnZhtuM2K9cIixcbiAgICBcImV4cHJlc3Npb25IZWxwXCI6IFwi2YTYt9mB2Kcg24zaqSDYudio2KfYsdiqINiq2YjYtduM2YHbjCDYsdinINmI2KfYsdivINqp2YbbjNivLiDYtNmF2Kcg2YXZhdqp2YYg2KfYs9iqINin2LIg2qnYsdmI2LTZhyDYqNix2KfbjCDYr9iz2KrYsdiz24wg2KjZhyDZhdmC2K/Yp9ixINiz2YjYp9mE2KfYqiDYp9iz2KrZgdin2K/ZhyDaqdmG24zYry4g2KjYsdin24wg2YXYq9in2YQ6IHtxdWVzdGlvbjF9ID0gJ3ZhbHVlMScgb3IgKHtxdWVzdGlvbjJ9ID0gMyBhbmQge3F1ZXN0aW9uM30gPCA1KVwiLFxuICAgIFwiYWNlRWRpdG9ySGVscFwiOiBcItio2LHYp9uMINmF2LTYp9mH2K/ZhyDZhtqp2KfYqiDYqtqp2YXbjNmE24wgY3RybCtzcGFjZSDYsdinINio2YHYtNin2LHbjNivXCIsXG4gICAgXCJhY2VFZGl0b3JSb3dUaXRsZVwiOiBcItiz2LfYsSDZgdi52YTbjFwiLFxuICAgIFwiYWNlRWRpdG9yUGFuZWxUaXRsZVwiOiBcItm+2YbZhCDZgdi52YTbjFwiLFxuICAgIFwic2hvd01vcmVcIjogXCLYqNix2KfbjCDYp9i32YTYp9i52KfYqiDYqNuM2LTYqtixINmE2LfZgdinINiz2YbYryDYsdin2YfZhtmF2Kcg2LHYpyDZhdi32KfZhNi52Ycg2qnZhtuM2K9cIixcbiAgICBcImFzc2lzdGFudFRpdGxlXCI6IFwi2LPZiNin2YTYp9iqINmF2YjYrNmI2K86XCIsXG4gICAgXCJjZWxsc0VtcHR5Um93c0NvbHVtbnNcIjogXCLYrdiv2KfZgtmEINio2KfbjNivINuM2qkg2LPYt9ixINuM2Kcg2LPYqtmI2YYg2YjYrNmI2K8g2K/Yp9i02KrZhyDYqNin2LTYry5cIixcbiAgICBcInByb3BlcnR5SXNFbXB0eVwiOiBcItmE2LfZgdinINuM2qkg2YXZgtiv2KfYsSDZiNin2LHYryDaqdmG24zYr1wiLFxuICAgIFwicHJvcGVydHlJc05vVW5pcXVlXCI6IFwi2YTYt9mB2KfZiyDbjNqpINmF2YLYr9in2LEg2YXZhtit2LXYsSDYqNmHINmB2LHYryDZiNin2LHYryDaqdmG24zYr1wiLFxuICAgIFwicHJvcGVydHlOYW1lSXNOb3RVbmlxdWVcIjogXCLZhNi32YHYp9mLINuM2qkg2YbYp9mFINmF2YbYrdi12LEg2KjZhyDZgdix2K8g2YjYp9ix2K8g2qnZhtuM2K9cIixcbiAgICBcImxpc3RJc0VtcHR5XCI6IFwi24zaqSDYotuM2KrZhSDYrNiv24zYryDYp9i22KfZgdmHINqp2YbbjNivXCIsXG4gICAgXCJleHByZXNzaW9uSXNFbXB0eVwiOiBcIti52KjYp9ix2Kog2K7Yp9mE24wg2KfYs9iqXCIsXG4gICAgXCJ2YWx1ZVwiOiBcItmF2YLYr9in2LFcIixcbiAgICBcInRleHRcIjogXCLZhdiq2YZcIixcbiAgICBcInJvd2lkXCI6IFwi2LTZhtin2LPZhyDbjCDYs9i32LFcIixcbiAgICBcImltYWdlTGlua1wiOiBcItmE24zZhtqpINiq2LXZiNuM2LFcIixcbiAgICBcImNvbHVtbkVkaXRcIjogXCLZiNuM2LHYp9uM2LQg2LPYqtmI2YY6IHswfVwiLFxuICAgIFwiaXRlbUVkaXRcIjogXCLZiNuM2LHYp9uM2LQg2KLbjNiq2YU6IHswfVwiLFxuICAgIFwidXJsXCI6IFwi2KLYr9ix2LMg2YjYqCDYs9in24zYqih1cmwpXCIsXG4gICAgXCJwYXRoXCI6IFwi2KLYr9ix2LNcIixcbiAgICBcInZhbHVlTmFtZVwiOiBcItmG2KfZhSDZhdmC2K/Yp9ixXCIsXG4gICAgXCJ0aXRsZU5hbWVcIjogXCLZhtin2YUg2LnZhtmI2KfZhlwiLFxuICAgIFwidGl0bGVQbGFjZWhvbGRlclwiOiBcIti52YbZiNin2YYg2LHYpyDYp9uM2YbYrNinINmI2KfYsdivINqp2YbbjNivXCIsXG4gICAgXCJzdXJ2ZXlUaXRsZVBsYWNlaG9sZGVyXCI6IFwi2LnZhtmI2KfZhiDZhti42LHYs9mG2KzbjCDYsdinINin24zZhtis2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIixcbiAgICBcInBhZ2VUaXRsZVBsYWNlaG9sZGVyXCI6IFwi2LnZhtmI2KfZhiDYtdmB2K3ZhyDYsdinINin24zZhtis2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIixcbiAgICBcImRlc2NyaXB0aW9uUGxhY2Vob2xkZXJcIjogXCLYqtmI2LbbjNit2KfYqiDYsdinINmI2KfYsdivINqp2YbbjNivXCIsXG4gICAgXCJzdXJ2ZXlEZXNjcmlwdGlvblBsYWNlaG9sZGVyXCI6IFwi2KrZiNi224zYrdin2Kog2YbYuNix2LPZhtis24wg2LHYpyDZiNin2LHYryDaqdmG24zYr1wiLFxuICAgIFwicGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXJcIjogXCLYqtmI2LbbjNit2KfYqiDYtdmB2K3ZhyDYsdinINmI2KfYsdivINqp2YbbjNivXCIsXG4gICAgXCJoYXNPdGhlclwiOiBcItiv2KfYsdin24wg2KLbjNiq2YUg2K/bjNqv2LFcIixcbiAgICBcIm90aGVyVGV4dFwiOiBcItiz2KfbjNixINii24zYqtmFINmH2KfbjCDZhdiq2YZcIixcbiAgICBcImhhc05vbmVcIjogXCLZh9uM2oYg2KLbjNiq2YXbjCDZhtiv2KfYsdivXCIsXG4gICAgXCJub25lVGV4dFwiOiBcItmH24zahiDYotuM2KrZhSDZhdiq2YbbjCDZiNis2YjYryDZhtiv2KfYsdivXCIsXG4gICAgXCJoYXNTZWxlY3RBbGxcIjogXCLZh9mF2Ycg2YXZiNin2LHYryDYp9mG2KrYrtin2Kgg2LTYr9mHINin2LPYqlwiLFxuICAgIFwic2VsZWN0QWxsVGV4dFwiOiBcItin2YbYqtiu2KfYqCDZh9mF2Ycg2KLbjNiq2YUg2YfYp9uMINmF2KrZhlwiLFxuICAgIFwiY2hvaWNlc01pblwiOiBcItit2K/Yp9mC2YQg2YXZgtiv2KfYsSDYqNix2KfbjCDYp9uM2KzYp9ivINiu2YjYr9qp2KfYsSDYotuM2KrZhSDZh9inXCIsXG4gICAgXCJjaG9pY2VzTWF4XCI6IFwi2K3Yr9in2qnYq9ixINmF2YLYr9in2LEg2KjYsdin24wg2KfbjNis2KfYryDYrtmI2K8g2KLbjNiq2YUg2YfYp1wiLFxuICAgIFwiY2hvaWNlc1N0ZXBcIjogXCLYqtmB2KfZiNiqINio24zZhiDZhdmI2KfYsdivINiq2YjZhNuM2K8g2LTYr9mHINiu2YjYr9qp2KfYsVwiLFxuICAgIFwibmFtZVwiOiBcItmG2KfZhVwiLFxuICAgIFwidGl0bGVcIjogXCLYudmG2YjYp9mGXCIsXG4gICAgXCJjZWxsVHlwZVwiOiBcItmG2YjYuSDYs9mE2YjZhFwiLFxuICAgIFwiY29sQ291bnRcIjogXCLYqti52K/Yp9ivINiz2KrZiNmGXCIsXG4gICAgXCJjaG9pY2VzT3JkZXJcIjogXCLYqtix2KrbjNioINqv2LLbjNmG2Ycg2LHYpyDYp9mG2KrYrtin2Kgg2qnZhtuM2K9cIixcbiAgICBcInZpc2libGVcIjogXCLZhtmF2KfbjNi0INiv2KfYr9mHINi02YjYr9ifXCIsXG4gICAgXCJpc1JlcXVpcmVkXCI6IFwi2LbYsdmI2LHbjCDYp9iz2KrYn1wiLFxuICAgIFwiaXNBbGxSb3dSZXF1aXJlZFwiOiBcItmG24zYp9iyINio2Ycg2b7Yp9iz2K4g2KjYsdin24wg2YfZhdmHINiz2LfYsdmH2KdcIixcbiAgICBcInJlcXVpcmVkRXJyb3JUZXh0XCI6IFwi2YXYqtmGINiu2LfYp9uMINmF2YjYsdiv2YbbjNin2LJcIixcbiAgICBcInN0YXJ0V2l0aE5ld0xpbmVcIjogXCLYqNinINiz2LfYsSDYrNiv24zYryDYtNix2YjYuSDYtNmI2K/Yn1wiLFxuICAgIFwicm93c1wiOiBcItiq2LnYr9in2K8g2LPYt9ixXCIsXG4gICAgXCJjb2xzXCI6IFwi2KrYudiv2KfYryDYs9iq2YjZhlwiLFxuICAgIFwicGxhY2Vob2xkZXJcIjogXCLZhtqv2YfYr9in2LHZhtiv2Ycg2YXYqtmGXCIsXG4gICAgXCJzaG93UHJldmlld1wiOiBcItm+24zYtCDZhtmF2KfbjNi0INiq2LXZiNuM2LEg2YbYtNin2YYg2K/Yp9iv2Ycg2LTZiNiv2J9cIixcbiAgICBcInN0b3JlRGF0YUFzVGV4dFwiOiBcItiw2K7bjNix2Ycg2qnYsdiv2YYg2YXYrdiq2YjYp9uMINmB2KfbjNmEINiv2LEgSlNPTiDYqNmHINi52YbZiNin2YYg2YXYqtmGXCIsXG4gICAgXCJtYXhTaXplXCI6IFwi2K3Yr9in2qnYq9ixINiz2KfbjNiyINio2Ycg2KjYp9uM2KpcIixcbiAgICBcImltYWdlSGVpZ2h0XCI6IFwi2KfYsdiq2YHYp9i5INiq2LXZiNuM2LFcIixcbiAgICBcImltYWdlV2lkdGhcIjogXCLYudix2LYg2KrYtdmI24zYsVwiLFxuICAgIFwicm93Q291bnRcIjogXCLYqti52K/Yp9ivINiz2LfYsVwiLFxuICAgIFwiY29sdW1uTGF5b3V0XCI6IFwi2YLYp9mE2Kgg2LPYqtmI2YYg2YfYp1wiLFxuICAgIFwiYWRkUm93TG9jYXRpb25cIjogXCLYp9i22KfZgdmHINqp2LHYr9mGINmF2YjZgti524zYqiDYr9qp2YXZhyDYs9i32LHbjFwiLFxuICAgIFwiYWRkUm93VGV4dFwiOiBcItmF2KrZhiDYr9qp2YXZhyDYr9ix2Kwg2LPYt9ixXCIsXG4gICAgXCJyZW1vdmVSb3dUZXh0XCI6IFwi2YXYqtmGINiv2qnZhdmHINit2LDZgSDYs9i32LFcIixcbiAgICBcInJhdGVNaW5cIjogXCLYrdiv2KfZgtmEINmF24zYstin2YZcIixcbiAgICBcInJhdGVNYXhcIjogXCLYrdiv2Kfaqdir2LEg2YXbjNiy2KfZhlwiLFxuICAgIFwicmF0ZVN0ZXBcIjogXCLZhduM2LLYp9mGINmF2LHYp9it2YRcIixcbiAgICBcIm1pblJhdGVEZXNjcmlwdGlvblwiOiBcItiq2YjYttuM2K0g2K3Yr9in2YLZhCDYp9mF2KrbjNin2LJcIixcbiAgICBcIm1heFJhdGVEZXNjcmlwdGlvblwiOiBcItiq2YjYttuM2K0g2K3Yr9in2qnYq9ixINin2YXYqtuM2KfYslwiLFxuICAgIFwiaW5wdXRUeXBlXCI6IFwi2YbZiNi5INmI2LHZiNiv24xcIixcbiAgICBcIm9wdGlvbnNDYXB0aW9uXCI6IFwi2YbZiNi02KrZhyDYp9mG2KrYrtin2Kgg2YfYp1wiLFxuICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwi2YXZgtiv2KfYsSDZvtuM2LQg2YHYsdi2XCIsXG4gICAgXCJjZWxsc0RlZmF1bHRSb3dcIjogXCLZhdiq2YYg2b7bjNi0INmB2LHYtiDYs9mE2YjZhCDZh9inXCIsXG4gICAgXCJzdXJ2ZXlFZGl0b3JUaXRsZVwiOiBcItmI24zYsdin24zYtCDZhti42LHYs9mG2KzbjFwiLFxuICAgIFwicUVkaXRvclRpdGxlXCI6IFwi2YjbjNix2KfbjNi0INiz2YjYp9mEOiB7MH1cIixcbiAgICBcIm1heExlbmd0aFwiOiBcItmF2Kfaqdiy24zZhdmFINi32YjZhFwiLFxuICAgIFwiYnVpbGRFeHByZXNzaW9uXCI6IFwi2LPYp9iu2KrZhlwiLFxuICAgIFwiZWRpdEV4cHJlc3Npb25cIjogXCLZiNuM2LHYp9uM2LRcIixcbiAgICBcImFuZFwiOiBcItmIXCIsXG4gICAgXCJvclwiOiBcItuM2KdcIixcbiAgICBcInJlbW92ZVwiOiBcItit2LDZgVwiLFxuICAgIFwiYWRkQ29uZGl0aW9uXCI6IFwi2KfYttin2YHZhyDaqdix2K/ZhiDYtNix2LdcIixcbiAgICBcInNob3dUaXRsZVwiOiBcItmG2YXYp9uM2LQv2b7ZhtmH2KfZhiDaqdix2K/ZhiDYudmG2YjYp9mGXCIsXG4gICAgXCJleHBhbmRDb2xsYXBzZVRpdGxlXCI6IFwi2YbZhdin24zYtC/ZvtmG2YfYp9mGINqp2LHYr9mGINi52YbZiNin2YZcIixcbiAgICBcImxvY2FsZVwiOiBcItiy2KjYp9mGINm+24zYtCDZgdix2LZcIixcbiAgICBcInNpbXVsYXRvclwiOiBcItin2YbYqtiu2KfYqCDYr9iz2Krar9in2YdcIixcbiAgICBcImxhbmRzY2FwZU9yaWVudGF0aW9uXCI6IFwi2KfZgdmC24xcIixcbiAgICBcIm1vZGVcIjogXCLYrdin2YTYqiAo2YjbjNix2KfbjNi0L9iu2YjYp9mG2K/ZhilcIixcbiAgICBcImNsZWFySW52aXNpYmxlVmFsdWVzXCI6IFwi2b7Yp9qp2LPYp9iy24wg2YXZgtin2K/bjNixINm+2YbZh9in2YZcIixcbiAgICBcImNvb2tpZU5hbWVcIjogXCLZhtin2YUg2qnZiNqp24wgKNio2Ycg2YXZhti42YjYsSDYrNmE2Yjar9uM2LHbjCDYp9iyINin2KzYsdin24wg2K/ZiNio2KfYsdmHINmG2LjYsdiz2YbYrNuMKVwiLFxuICAgIFwic2VuZFJlc3VsdE9uUGFnZU5leHRcIjogXCLYp9ix2LPYp9mEINmG2KrYp9uM2Kwg2YbYuNix2LPZhtis24wg2K/YsSDYtdmB2K3ZhyDYqNi52K/bjFwiLFxuICAgIFwic3RvcmVPdGhlcnNBc0NvbW1lbnRcIjogXCLYsNiu24zYsdmHINmF2YLYr9in2LEgJ9iz2KfbjNixJyDYr9ixINmB24zZhNivINis2K/Yp9qv2KfZhtmHXCIsXG4gICAgXCJzaG93UGFnZVRpdGxlc1wiOiBcItmG2YXYp9uM2LQg2LnZhtmI2KfZhiDYtdmB2K3Yp9iqXCIsXG4gICAgXCJzaG93UGFnZU51bWJlcnNcIjogXCLZhtmF2KfbjNi0INi02YXYp9ix2Ycg2LXZgdit2KfYqlwiLFxuICAgIFwicGFnZVByZXZUZXh0XCI6IFwi2YXYqtmGINiv2qnZhdmHINi12YHYrdmHINmC2KjZhNuMXCIsXG4gICAgXCJwYWdlTmV4dFRleHRcIjogXCLZhdiq2YYg2K/aqdmF2Ycg2LXZgdit2Ycg2KjYudiv24xcIixcbiAgICBcImNvbXBsZXRlVGV4dFwiOiBcItmF2KrZhiDYr9qp2YXZhyDYqtqp2YXbjNmEINmG2LjYsdiz2YbYrNuMXCIsXG4gICAgXCJwcmV2aWV3VGV4dFwiOiBcItm+24zYtCDZhtmF2KfbjNi0INmF2KrZhiDYr9qp2YXZh1wiLFxuICAgIFwiZWRpdFRleHRcIjogXCLZiNuM2LHYp9uM2LQg2YXYqtmGINiv2qnZhdmHXCIsXG4gICAgXCJzdGFydFN1cnZleVRleHRcIjogXCLZhdiq2YYg2K/aqdmF2Ycg2LTYsdmI2Lkg2YbYuNix2LPZhtis24xcIixcbiAgICBcInNob3dOYXZpZ2F0aW9uQnV0dG9uc1wiOiBcItmG2YXYp9uM2LQg2K/aqdmF2Ycg2YfYp9uMINmG2KfZiNio2LHbjCAo2YbYp9mI2KjYsduMINm+24zYtCDZgdix2LYpXCIsXG4gICAgXCJzaG93UHJldkJ1dHRvblwiOiBcItmG2YXYp9uM2LQg2K/aqdmF2Ycg2YLYqNmE24wgKNqp2KfYsdio2LEg2YXZhdqp2YYg2KfYs9iqINio2Ycg2LXZgdit2Ycg2YLYqNmEINio2LHar9ix2K/YrylcIixcbiAgICBcImZpcnN0UGFnZUlzU3RhcnRlZFwiOiBcIti12YHYrdmHINin2YjZhCDYr9ixINmG2LjYsdiz2YbYrNuMINmG2YLYt9mHINii2LrYp9iy24zZhiDYotmGINin2LPYqi5cIixcbiAgICBcInNob3dDb21wbGV0ZWRQYWdlXCI6IFwi2YbZhdin24zYtCDYtdmB2K3ZhyDYp9iq2YXYp9mFINmG2LjYsdiz2YbYrNuMINiv2LEg2b7Yp9uM2KfZhiAoY29tcGxldGVkSHRtbClcIixcbiAgICBcImdvTmV4dFBhZ2VBdXRvbWF0aWNcIjogXCLYqNinINm+2KfYs9iu2q/ZiNuM24wg2KjZhyDYqtmF2KfZhSDYs9mI2KfZhNin2KrYjCDYqNmHINi12YjYsdiqINin2KrZiNmF2KfYqtuM2qkg2KjZhyDYtdmB2K3ZhyDYqNi52K8g2KjYsdmI2K9cIixcbiAgICBcInNob3dQcm9ncmVzc0JhclwiOiBcItmG2YXYp9uM2LQg2YbYtNin2Ybar9ixINm+24zYtNix2YHYqlwiLFxuICAgIFwicXVlc3Rpb25UaXRsZUxvY2F0aW9uXCI6IFwi2YXYrdmEINi52YbZiNin2YYg2LPZiNin2YRcIixcbiAgICBcInJlcXVpcmVkVGV4dFwiOiBcItiz2YjYp9mE2KfYqiDZhti02KfZhiDYr9in2LEg2KfYrNio2KfYsduMINmH2LPYqtmG2K9cIixcbiAgICBcInF1ZXN0aW9uU3RhcnRJbmRleFwiOiBcItmG2YXYp9uM2Ycg2LTYsdmI2Lkg2LPZiNin2YTYp9iqICjbsdiM27Ig24zYpyBhINmIIGIpXCIsXG4gICAgXCJzaG93UXVlc3Rpb25OdW1iZXJzXCI6IFwi2YbZhdin24zYtCDYtNmF2KfYsdmHINmH2KfbjCDYs9mI2KfZhNin2KpcIixcbiAgICBcInF1ZXN0aW9uVGl0bGVUZW1wbGF0ZVwiOiBcItmC2KfZhNioINi52YbZiNin2YYg2LPZiNin2YTYjCDYqNmHINi12YjYsdiqINm+24zYtCDZgdix2LY6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBcInF1ZXN0aW9uRXJyb3JMb2NhdGlvblwiOiBcItmF2K3ZhCDYrti32KfbjCDYs9mI2KfZhFwiLFxuICAgIFwiZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljXCI6IFwi2KrZhdix2qnYsiDYqNixINix2YjbjCDYp9mI2YTbjNmGINiz2YjYp9mEINio2Kcg2KrYutuM24zYsSDYtdmB2K3Zh1wiLFxuICAgIFwicXVlc3Rpb25zT3JkZXJcIjogXCLYqtix2KrbjNioINin2YTZhdin2YYg2YfYpyDYr9ixINi12YHYrdmHXCIsXG4gICAgXCJtYXhUaW1lVG9GaW5pc2hcIjogXCLZhtmH2KfbjNiqINiy2YXYp9mGINio2LHYp9uMINin2KrZhdin2YUg2YbYuNix2LPZhtis24xcIixcbiAgICBcIm1heFRpbWVUb0ZpbmlzaFBhZ2VcIjogXCLZhtmH2KfbjNiqINiy2YXYp9mGINio2LHYp9uMINin2KrZhdin2YUg2KfbjNmGINi12YHYrdmHINmG2LjYsdiz2YbYrNuMXCIsXG4gICAgXCJzaG93VGltZXJQYW5lbFwiOiBcItmG2YXYp9uM2LQg2b7ZhtmEINiy2YXYp9mGINiz2YbYrFwiLFxuICAgIFwic2hvd1RpbWVyUGFuZWxNb2RlXCI6IFwi2YbZhdin24zYtCDYrdin2YTYqiDZvtmG2YQg2LLZhdin2YYg2LPZhtisXCIsXG4gICAgXCJyZW5kZXJNb2RlXCI6IFwi2K3Yp9mE2Kog2LHZhtiv2LFcIixcbiAgICBcImFsbG93QWRkUGFuZWxcIjogXCLYp9is2KfYstmHINin2YHYstmI2K/ZhiDZvtmG2YRcIixcbiAgICBcImFsbG93UmVtb3ZlUGFuZWxcIjogXCLYp9is2KfYstmHINit2LDZgSDZvtmG2YRcIixcbiAgICBcInBhbmVsQWRkVGV4dFwiOiBcItmF2KrZhiDYp9mB2LLZiNiv2YYg2b7ZhtmEXCIsXG4gICAgXCJwYW5lbFJlbW92ZVRleHRcIjogXCLZhdiq2YYg2K3YsNmBINm+2YbZhFwiLFxuICAgIFwiaXNTaW5nbGVQYWdlXCI6IFwi2YbZhdin24zYtCDYqtmF2KfZhSDYp9mE2YXYp9mGINmH2Kcg2K/YsSDbjNqpINi12YHYrdmHXCIsXG4gICAgXCJodG1sXCI6IFwiSHRtbFwiLFxuICAgIFwiZXhwcmVzc2lvblwiOiBcIti52KjYp9ix2KpcIixcbiAgICBcIm1pblZhbHVlXCI6IFwi2K3Yr9in2YLZhCDZhdmC2K/Yp9ixXCIsXG4gICAgXCJtYXhWYWx1ZVwiOiBcItit2K/Yp9qp2KvYsSDZhdmC2K/Yp9ixXCIsXG4gICAgXCJtaW5MZW5ndGhcIjogXCLYrdiv2KfZgtmEINi32YjZhFwiLFxuICAgIFwiYWxsb3dEaWdpdHNcIjogXCLYp9mF2qnYp9mGINmI2LHZiNivINin2LnYr9in2K9cIixcbiAgICBcIm1pbkNvdW50XCI6IFwi2K3Yr9in2YLZhCDYqti52K/Yp9ivIFwiLFxuICAgIFwibWF4Q291bnRcIjogXCLYrdiv2Kfaqdir2LEg2YXZgtiv2KfYsVwiLFxuICAgIFwicmVnZXhcIjogXCLZgdix2YXYqiDYtdit24zYrSDYudio2KfYsdiqIFwiLFxuICAgIFwidG90YWxUZXh0XCI6IFwi2YXYqtmGINqp2KfZhdmEXCIsXG4gICAgXCJ0b3RhbFR5cGVcIjogXCLZhtmI2Lkg2qnYp9mF2YRcIixcbiAgICBcInRvdGFsRXhwcmVzc2lvblwiOiBcIti52KjYp9ix2Kog2qnYp9mF2YRcIixcbiAgICBcInRvdGFsRGlzcGxheVN0eWxlXCI6IFwi2LPYqNqpINmG2YXYp9uM2LQg2qnZhFwiLFxuICAgIFwidG90YWxDdXJyZW5jeVwiOiBcItmF2KzZhdmI2Lkg2KfYsdiyXCIsXG4gICAgXCJ0b3RhbEZvcm1hdFwiOiBcItmF2KzZhdmI2Lkg2YHYsdmF2KpcIixcbiAgICBcImxvZ29Qb3NpdGlvblwiOiBcItmF2K3ZhCDZgtix2KfYsdqv24zYsduMINmE2Yjar9mIXCIsXG4gICAgXCJhZGRMb2dvXCI6IFwi2KfYttin2YHZhyDaqdix2K/ZhiDZhNmI2q/ZiC4uLlwiLFxuICAgIFwiY2hhbmdlTG9nb1wiOiBcItiq2LrbjNuM2LEg2YTZiNqv2YguLi5cIixcbiAgICBcImxvZ29Qb3NpdGlvbnNcIjoge1xuICAgICAgXCJub25lXCI6IFwi2K3YsNmBINmE2Yjar9mIXCIsXG4gICAgICBcImxlZnRcIjogXCLahtm+XCIsXG4gICAgICBcInJpZ2h0XCI6IFwi2LHYp9iz2KpcIixcbiAgICAgIFwidG9wXCI6IFwi2KjYrti0INio2KfZhNinXCIsXG4gICAgICBcImJvdHRvbVwiOiBcItio2K7YtCDZvtin24zbjNmGXCJcbiAgICB9LFxuICAgIFwidGFic1wiOiB7XG4gICAgICBcImdlbmVyYWxcIjogXCLYudmF2YjZhduMXCIsXG4gICAgICBcImZpbGVPcHRpb25zXCI6IFwi2KfZhtiq2K7Yp9ioINmH2KdcIixcbiAgICAgIFwiaHRtbFwiOiBcItmI24zYsdin24zYtNqv2LEgSFRNTFwiLFxuICAgICAgXCJjb2x1bW5zXCI6IFwi2LPYqtmI2YYg2YfYp1wiLFxuICAgICAgXCJyb3dzXCI6IFwi2LPYt9ix2YfYp1wiLFxuICAgICAgXCJjaG9pY2VzXCI6IFwi2KfZhtiq2K7Yp9ioINmH2KdcIixcbiAgICAgIFwiaXRlbXNcIjogXCLYotuM2KrZhSDZh9inXCIsXG4gICAgICBcInZpc2libGVJZlwiOiBcItmG2YXYp9uM2LQg2K/YsSDYtdmI2LHYqlwiLFxuICAgICAgXCJlbmFibGVJZlwiOiBcItmB2LnYp9mEINin2q/YsVwiLFxuICAgICAgXCJyZXF1aXJlZElmXCI6IFwi2YXZiNix2K8g2YbbjNin2LIg2KfYp9qv2LFcIixcbiAgICAgIFwicmF0ZVZhbHVlc1wiOiBcItmF2YLYp9iv24zYsSDYsdiq2KjZhyDYqNmG2K/bjFwiLFxuICAgICAgXCJjaG9pY2VzQnlVcmxcIjogXCLYp9mG2KrYrtin2Kgg2YfYpyDYp9iyINmI2KhcIixcbiAgICAgIFwibWF0cml4Q2hvaWNlc1wiOiBcItin2YbYqtiu2KfYqCDZh9in24wg2b7bjNi02YHYsdi2XCIsXG4gICAgICBcIm11bHRpcGxlVGV4dEl0ZW1zXCI6IFwi2YHbjNmE2K/Zh9in24wg2YXYqtmG24xcIixcbiAgICAgIFwibnVtYmVyaW5nXCI6IFwi2LTZhdin2LHZhyDar9iw2KfYsduMXCIsXG4gICAgICBcInZhbGlkYXRvcnNcIjogXCLYp9i52KrYqNin2LHYs9mG2KzbjCDZh9inXCIsXG4gICAgICBcIm5hdmlnYXRpb25cIjogXCLZhtin2YjYqNix24xcIixcbiAgICAgIFwicXVlc3Rpb25cIjogXCLYs9mI2KfZhFwiLFxuICAgICAgXCJwYWdlc1wiOiBcIti12YHYrdin2KpcIixcbiAgICAgIFwiY29tcGxldGVkSHRtbFwiOiBcIkhUTUwg2LXZgdit2Ycg2KraqdmF24zZhCDZhti42LHYs9mG2KzbjFwiLFxuICAgICAgXCJjb21wbGV0ZWRIdG1sT25Db25kaXRpb25cIjogXCJIdG1sINiv2LEg2LTYsdi3INqp2KfZhdmEINi02K9cIixcbiAgICAgIFwibG9hZGluZ0h0bWxcIjogXCJIVE1MINio2KfYsdqv2LLYp9ix24xcIixcbiAgICAgIFwidGltZXJcIjogXCLYstmF2KfZhiDYs9mG2Kwv2qnZiNim24zYslwiLFxuICAgICAgXCJjYWxjdWxhdGVkVmFsdWVzXCI6IFwi2YXZgtin2K/bjNixINmF2K3Yp9iz2KjZhyDYtNivXCIsXG4gICAgICBcInRyaWdnZXJzXCI6IFwi2KfYrNix2Kcg2qnZhtmG2K/Zh1wiLFxuICAgICAgXCJ0ZW1wbGF0ZVRpdGxlXCI6IFwi2LnZhtmI2KfZhiDZgtin2YTYqFwiLFxuICAgICAgXCJ0b3RhbHNcIjogXCLYrNmF2Lkg2qnZhFwiLFxuICAgICAgXCJsb2dpY1wiOiBcItmF2YbYt9mCXCIsXG4gICAgICBcImxheW91dFwiOiBcItqG24zYr9mF2KfZhlwiLFxuICAgICAgXCJkYXRhXCI6IFwi2KfYt9mE2KfYudin2KpcIixcbiAgICAgIFwidmFsaWRhdGlvblwiOiBcItin2LnYqtio2KfYsdiz2YbYrNuMXCIsXG4gICAgICBcImNlbGxzXCI6IFwi2LPZhNmI2YQg2YfYp1wiLFxuICAgICAgXCJzaG93T25Db21wbGV0ZWRcIjogXCLZhtmF2KfbjNi0INio2K/Zh9uM2K8g2KraqdmF24zZhCDYtNiv2YdcIixcbiAgICAgIFwibG9nb1wiOiBcItmE2Yjar9mIINiv2LEg2LnZhtmI2KfZhiDZhti42LHYs9mG2KzbjFwiLFxuICAgICAgXCJzbGlkZXJcIjogXCLYp9iz2YTYp9uM2K/YsVwiLFxuICAgICAgXCJvdGhlcnNcIjogXCLYqNin2YLbjCDZhdmI2KfYsdivXCJcbiAgICB9LFxuICAgIFwiZWRpdFByb3BlcnR5XCI6IFwi2YjbjNix2KfbjNi0INiu2LXZiNi124zYqiAnezB9J1wiLFxuICAgIFwiaXRlbXNcIjogXCJbINii24zYqtmFINmH2Kc6IHswfSBdXCIsXG4gICAgXCJlbnRlck5ld1ZhbHVlXCI6IFwi2YTYt9mB2Kcg24zaqSDZhdmC2K/Yp9ixINmI2KfYsdivINqp2YbbjNivXCIsXG4gICAgXCJub3F1ZXN0aW9uc1wiOiBcItiz2YjYp9mE24wg2K/YsSDZvtix2LPYtNmG2KfZhdmHINiv2LHYrCDZhti02K/Zh1wiLFxuICAgIFwiY3JlYXRldHJpZ2dlclwiOiBcItin2KzYsdinINqp2YbZhtiv2Ycg2KfbjCDYqNiz2KfYstuM2K9cIixcbiAgICBcInRpdGxlS2V5Ym9hcmRBZG9ybmVyVGlwXCI6IFwi2KjYsdin24wg2YjbjNix2KfbjNi0INiv2qnZhdmHINuMIGVudGVyINix2Kcg2YHYtNin2LEg2K/Zh9uM2K8uXCIsXG4gICAgXCJrZXlib2FyZEFkb3JuZXJUaXBcIjogXCLYqNix2KfbjCDZiNuM2LHYp9uM2LQg2K/aqdmF2Ycg24wgZW50ZXIg2LHYpyDZgdi02KfYsSDYr9mH24zYrywg2KjYsdin24wg2K3YsNmBINiv2qnZhdmHINuMIGRlbGV0ZSDYsdinINmB2LTYp9ixINiv2YfbjNivLCDYqNix2KfbjCDYrdix2qnYqiDYr9in2K/ZhiDbjNqpINii24zYqtmF2Iwg2K/aqdmF2Ycg24wgIGFsdCArIGFycm93IGRvd24gLyAgYWx0ICsgYXJyb3cgdXAg2YHYtNin2LEg2K/Zh9uM2K9cIixcbiAgICBcImtleWJvYXJkTW92ZUl0ZW1zVGlwXCI6IFwi2KjYsdin24wg2K3Ysdqp2Kog2K/Yp9iv2YYg24zaqSDYotuM2KrZhdiMINiv2qnZhdmHINuMICBhbHQgKyBhcnJvdyBkb3duIC8gIGFsdCArIGFycm93IHVwINmB2LTYp9ixINiv2YfbjNivXCIsXG4gICAgXCJ0cmlnZ2VyT25cIjogXCLYr9ixIFwiLFxuICAgIFwidHJpZ2dlck1ha2VQYWdlc1Zpc2libGVcIjogXCLYtdmB2K3Yp9iqINix2Kcg2YLYp9io2YQg2YbZhdin24zYtCDaqdmGOlwiLFxuICAgIFwidHJpZ2dlck1ha2VRdWVzdGlvbnNWaXNpYmxlXCI6IFwi2LPZiNin2YTYp9iqINix2Kcg2YLYp9io2YQg2YbZhdin24zYtCDaqdmGOlwiLFxuICAgIFwidHJpZ2dlckNvbXBsZXRlVGV4dFwiOiBcItm+2LHYs9i02YbYp9mF2Ycg2LHYpyDYqtqp2YXbjNmEINqp2YYg2Kfar9ixINmF2YjZgdmCINio2YjYry5cIixcbiAgICBcInRyaWdnZXJOb3RTZXRcIjogXCLYp9is2LHYpyDaqdmG2YbYr9mHINiq2YbYuNuM2YUg2YbYtNiv2YcuXCIsXG4gICAgXCJ0cmlnZ2VyUnVuSWZcIjogXCLYp9is2LHYpyDYr9ixINi12YjYsdiqXCIsXG4gICAgXCJ0cmlnZ2VyU2V0VG9OYW1lXCI6IFwi2KrYuduM24zYsSDZhdmC2K/Yp9ixINin2LI6IFwiLFxuICAgIFwidHJpZ2dlckZyb21OYW1lXCI6IFwi2qnZvtuMINmF2YLYr9in2LEg2KfYsjogXCIsXG4gICAgXCJ0cmlnZ2VyUnVuRXhwcmVzc2lvblwiOiBcItin2KzYsdin24wg2KfbjNmGINi52KjYp9ix2KpcIixcbiAgICBcInRyaWdnZXJTZXRWYWx1ZVwiOiBcItio2Yc6IFwiLFxuICAgIFwidHJpZ2dlckdvdG9OYW1lXCI6IFwi2KjZhyDYs9mI2KfZhCDYqNix2YjbjNivOlwiLFxuICAgIFwidHJpZ2dlcklzVmFyaWFibGVcIjogXCLYudiv2YUg2K/YsdisINmF2KrYutuM24zYsSDYr9ixINmG2KrYp9uM2Kwg2b7Ysdiz2LTZhtin2YXZh1wiLFxuICAgIFwidHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eVwiOiBcItmE2LfZgdinINi52KjYp9ix2Kog2YXYudiq2KjYsduMINmI2KfYsdivINmG2YXYp9uM24zYr1wiLFxuICAgIFwibm9GaWxlXCI6IFwi2YfbjNqGINmB2KfbjNmE24wg2KfZhtiq2K7Yp9ioINmG2LTYr9mHINin2LPYqlwiLFxuICAgIFwiY2xvc2VcIjogXCLYqNiz2KrZhlwiLFxuICAgIFwiaXRlbVZhbHVlRWRpdFwiOiBcItmC2KfYqNmEINmF2LTYp9mH2K/ZhyDYp9qv2LFcIixcbiAgICBcIm5vdEVtcHR5XCI6IFwiPNmI24zYsdin24zYtCDZhdmC2K/Yp9ixPlwiLFxuICAgIFwiY29uZGl0aW9uQnV0dG9uQWRkXCI6IFwi2KfYttin2YHZh1wiLFxuICAgIFwiY29uZGl0aW9uQnV0dG9uUmVwbGFjZVwiOiBcItis2KfbjNqv2LLbjNmGXCIsXG4gICAgXCJjb25kaXRpb25IZWxwXCI6IFwi2YTYt9mB2Kcg24zaqSDZhdmC2K/Yp9ixINio2YjZhNuM2YYg2KrZiNi124zZgduMINmI2KfYsdivINqp2YbbjNivINqp2Ycg2LXYrduM2K0g24zYpyDYutmE2Lcg2LHYpyDYqNix2q/Ysdiv2KfZhtivINiq2Kcg2LXZgdit2Ycg2LPZiNin2YTYp9iqINmG2YXYp9uM2LQg2K/Yp9iv2Ycg2LTZiNivLiDYqNix2KfbjCDZhdir2KfZhDoge3F1ZXN0aW9uMX0gPSAndmFsdWUxJyBvciAoe3F1ZXN0aW9uMn0gKiB7cXVlc3Rpb240fSAgPiAyMCBhbmQge3F1ZXN0aW9uM30gPCA1KVwiLFxuICAgIFwiY29uZGl0aW9uU2hvd01vcmVVcmxcIjogXCJodHRwczovL3N1cnZleWpzLmlvL0RvY3VtZW50YXRpb24vTGlicmFyeVBhcmFtZXRlcj9pZD1RdWVzdGlvbiZwYXJhbWV0ZXI9dmlzaWJsZUlmXCJcbiAgfSxcbiAgXCJwdlwiOiB7XG4gICAgXCJ0cnVlXCI6IFwi2LXYrduM2K1cIixcbiAgICBcImZhbHNlXCI6IFwi2LrZhNi3XCIsXG4gICAgXCJpbmhlcml0XCI6IFwi2KfYsdirINio2LHbjFwiLFxuICAgIFwic2hvd1wiOiBcItii2LTaqdin2LFcIixcbiAgICBcImhpZGVcIjogXCLZvtmG2YfYp9mGXCIsXG4gICAgXCJkZWZhdWx0XCI6IFwi2b7bjNi0INmB2LHYtlwiLFxuICAgIFwiaW5pdGlhbFwiOiBcItin2YjZhNuM2YdcIixcbiAgICBcInJhbmRvbVwiOiBcItiq2LXYp9iv2YHbjFwiLFxuICAgIFwiY29sbGFwc2VkXCI6IFwi2KzZhdi5INi02K/Zh1wiLFxuICAgIFwiZXhwYW5kZWRcIjogXCLYqNin2LIg2LTYr9mHXCIsXG4gICAgXCJub25lXCI6IFwi2YfbjNqGINqp2K/Yp9mFXCIsXG4gICAgXCJhc2NcIjogXCLYtdi52YjYr9uMXCIsXG4gICAgXCJkZXNjXCI6IFwi2YbYstmI2YTbjFwiLFxuICAgIFwiaW5kZXRlcm1pbmF0ZVwiOiBcItmG2KfZhdi02K7YtVwiLFxuICAgIFwiZGVjaW1hbFwiOiBcItin2LnYtNin2LHbjFwiLFxuICAgIFwiY3VycmVuY3lcIjogXCLYp9ix2LJcIixcbiAgICBcInBlcmNlbnRcIjogXCLYr9ix2LXYr1wiLFxuICAgIFwiZmlyc3RFeHBhbmRlZFwiOiBcItqv2LPYqtix2LQg24zYp9mB2KrZh1wiLFxuICAgIFwib2ZmXCI6IFwi2K7Yp9mF2YjYtFwiLFxuICAgIFwib25QYW5lbFwiOiBcItix2YjbjCDZvtmG2YRcIixcbiAgICBcIm9uU3VydmV5XCI6IFwi2LHZiNuMINmG2LjYsdiz2YbYrNuMXCIsXG4gICAgXCJsaXN0XCI6IFwi2YTbjNiz2KpcIixcbiAgICBcInByb2dyZXNzVG9wXCI6IFwi2YbZiNin2LEg2b7bjNi02LHZgdiqICDYqNin2YTYp1wiLFxuICAgIFwicHJvZ3Jlc3NCb3R0b21cIjogXCLZhtmI2KfYsSDZvtuM2LTYsdmB2Kog2b7Yp9uM24zZhlwiLFxuICAgIFwicHJvZ3Jlc3NUb3BCb3R0b21cIjogXCLZhtmI2KfYsSDZvtuM2LTYsdmB2Kog2K/YsSDYqNin2YTYpyDZiCDZvtin24zbjNmGXCIsXG4gICAgXCJob3Jpem9udGFsXCI6IFwi2KfZgdmC24xcIixcbiAgICBcInZlcnRpY2FsXCI6IFwi2LnZhdmI2K/bjFwiLFxuICAgIFwidG9wXCI6IFwi2KjYp9mE2KdcIixcbiAgICBcImJvdHRvbVwiOiBcItm+2KfbjNuM2YZcIixcbiAgICBcInRvcEJvdHRvbVwiOiBcItio2KfZhNinINmIINm+2KfbjNuM2YZcIixcbiAgICBcImJvdGhcIjogXCLZh9ixINiv2YhcIixcbiAgICBcImxlZnRcIjogXCLahtm+XCIsXG4gICAgXCJjb2xvclwiOiBcItix2Ybar1wiLFxuICAgIFwiZGF0ZVwiOiBcItiq2KfYsduM2K5cIixcbiAgICBcImRhdGV0aW1lXCI6IFwi2KrYp9ix24zYriDZiCDYs9in2LnYqlwiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCLYqtin2LHbjNiuINmIINiz2YjYp9mEINm+24zYtCDZgdix2LZcIixcbiAgICBcImVtYWlsXCI6IFwi2KfbjNmF24zZhFwiLFxuICAgIFwibW9udGhcIjogXCLZhdin2YdcIixcbiAgICBcIm51bWJlclwiOiBcIti52K/Yr1wiLFxuICAgIFwicGFzc3dvcmRcIjogXCLYsdmF2LLYudio2YjYsVwiLFxuICAgIFwicmFuZ2VcIjogXCLYr9in2YXZhtmHXCIsXG4gICAgXCJ0ZWxcIjogXCLYqtmE2YHZhlwiLFxuICAgIFwidGV4dFwiOiBcItmF2KrZhlwiLFxuICAgIFwidGltZVwiOiBcItiy2YXYp9mGXCIsXG4gICAgXCJ1cmxcIjogXCLYotiv2LHYs1wiLFxuICAgIFwid2Vla1wiOiBcItmH2YHYqtmHXCIsXG4gICAgXCJoaWRkZW5cIjogXCLZhdiu2YHbjFwiLFxuICAgIFwib25cIjogXCLYsdmI2LTZhlwiLFxuICAgIFwib25QYWdlXCI6IFwi2LHZiNuMINi12YHYrdmHXCIsXG4gICAgXCJlZGl0XCI6IFwi2YjbjNix2KfbjNi0XCIsXG4gICAgXCJkaXNwbGF5XCI6IFwi2YbZhdin24zYtFwiLFxuICAgIFwib25Db21wbGV0ZVwiOiBcItio2Ycg2YXYrdi2INiq2YXYp9mFINi02K/ZhlwiLFxuICAgIFwib25IaWRkZW5cIjogXCLYqNmHINmF2K3YtiDZhdiu2YHbjCDYtNiv2YZcIixcbiAgICBcImFsbFwiOiBcItiq2YXYp9mFXCIsXG4gICAgXCJwYWdlXCI6IFwi2LXZgdit2YdcIixcbiAgICBcInN1cnZleVwiOiBcItmG2LjYsdiz2YbYrNuMXCIsXG4gICAgXCJvbk5leHRQYWdlXCI6IFwi2KjZhyDZhdit2LYg2LXZgdit2Ycg2KjYudiv24xcIixcbiAgICBcIm9uVmFsdWVDaGFuZ2VkXCI6IFwi2KjZhyDZhdit2LYg2KrYutuM24zYsSDZhdmC2K/Yp9ixXCIsXG4gICAgXCJzaW5nbGVQYWdlXCI6IFwi2KraqSDYtdmB2K3ZhyDYp9uMXCIsXG4gICAgXCJzdGFuZGFyZFwiOiBcItin2LPYqtin2YbYr9in2LHYr1wiLFxuICAgIFwicXVlc3Rpb25QZXJQYWdlXCI6IFwi2LPZiNin2YQg2K/YsSDZh9ixINi12YHYrdmHINuMINmF2KzYstinXCIsXG4gICAgXCJub1ByZXZpZXdcIjogXCLZvtuM2LQg2YbZhdin24zYtCDZhtiv2KfYsdivXCIsXG4gICAgXCJzaG93QWxsUXVlc3Rpb25zXCI6IFwi2YHYudin2YQg2LPYp9iy24wg2b7bjNi0INmG2YXYp9uM2LQg2KjYpyDYqtmF2KfZhSDYs9mI2KfZhNin2KpcIixcbiAgICBcInNob3dBbnN3ZXJlZFF1ZXN0aW9uc1wiOiBcItmB2LnYp9mEINiz2KfYstuMINm+24zYtCDZhtmF2KfbjNi0INio2Ycg2LPZiNin2YTYp9iqINm+2KfYs9iuINiv2KfYr9mHINi02K/Zh1wiXG4gIH0sXG4gIFwib3BcIjoge1xuICAgIFwiZW1wdHlcIjogXCLYrtin2YTbjCDYqNin2LTYr1wiLFxuICAgIFwibm90ZW1wdHlcIjogXCLYrtin2YTbjCDZhtio2KfYtNivXCIsXG4gICAgXCJlcXVhbFwiOiBcItmF2LPYp9mI24wg2KjYp9i02K9cIixcbiAgICBcIm5vdGVxdWFsXCI6IFwi2YXYs9in2YjbjCDZhtio2KfYtNivXCIsXG4gICAgXCJjb250YWluc1wiOiBcIti02KfZhdmEXCIsXG4gICAgXCJub3Rjb250YWluc1wiOiBcIti02KfZhdmEINmG2KjYp9i02K9cIixcbiAgICBcImFueW9mXCI6IFwi2YfYsdqp2K/Yp9mFXCIsXG4gICAgXCJhbGxvZlwiOiBcItmH2YXZh1wiLFxuICAgIFwiZ3JlYXRlclwiOiBcItio2LLYsdqv2KrYsVwiLFxuICAgIFwibGVzc1wiOiBcItqp2Yjahtqp2KrYsVwiLFxuICAgIFwiZ3JlYXRlcm9yZXF1YWxcIjogXCLYqNiy2LHar9iq2LEg24zYpyDZhdiz2KfZiNuMXCIsXG4gICAgXCJsZXNzb3JlcXVhbFwiOiBcItqp2Yjahtqp2KrYsSDbjNinINmF2LPYp9mI24xcIixcbiAgICBcImFuZFwiOiBcItmIXCIsXG4gICAgXCJvclwiOiBcItuM2KdcIlxuICB9LFxuICBcImV3XCI6IHtcbiAgICBcImFuZ3VsYXJcIjogXCLYp9iz2KrZgdin2K/ZhyDYp9iyINmG2LPYrtmHIEFuZ3VsYXJcIixcbiAgICBcImpxdWVyeVwiOiBcItin2LPYqtmB2KfYr9mHINin2LIg2YbYs9iu2YcgalF1ZXJ5XCIsXG4gICAgXCJrbm9ja291dFwiOiBcItin2LPYqtmB2KfYr9mHINin2LIg2YbYs9iu2Ycg2YbYp9qpINin2YjYqlwiLFxuICAgIFwicmVhY3RcIjogXCLYp9iz2KrZgdin2K/ZhyDYp9iyINmG2LPYrtmHIFJlYWN0XCIsXG4gICAgXCJ2dWVcIjogXCLYp9iz2KrZgdin2K/ZhyDYp9iyINmG2LPYrtmHIFZ1ZVwiLFxuICAgIFwiYm9vdHN0cmFwXCI6IFwi2KjYsdin24wg2YHYsduM2YUg2YjYsdqpINio2YjYqtiz2KrYsdm+XCIsXG4gICAgXCJtb2Rlcm5cIjogXCLYqtmFINmF2K/YsdmGXCIsXG4gICAgXCJkZWZhdWx0XCI6IFwi2KrZhSDZvtuM2LQg2YHYsdi2XCIsXG4gICAgXCJvcmFuZ2VcIjogXCLYqtmFINmG2KfYsdmG2KzbjFwiLFxuICAgIFwiZGFya2JsdWVcIjogXCLYqtmFINii2KjbjCDYqtuM2LHZh1wiLFxuICAgIFwiZGFya3Jvc2VcIjogXCLYqtmFINi12YjYsdiq24xcIixcbiAgICBcInN0b25lXCI6IFwi2KrZhSDYs9mG2q/bjFwiLFxuICAgIFwid2ludGVyXCI6IFwi2KrZhSDYstmF2LPYqtin2YbbjFwiLFxuICAgIFwid2ludGVyc3RvbmVcIjogXCLYqtmFINiy2YXYs9iq2KfZhtuMINmIINiz2Ybar9uMXCIsXG4gICAgXCJzaG93T25QYWdlXCI6IFwi2YbZhdin24zYtCDZhti42LHYs9mG2KzbjCDYr9ixINuM2qkg2LXZgdit2YdcIixcbiAgICBcInNob3dJbldpbmRvd1wiOiBcItmG2YXYp9uM2LQg2YbYuNix2LPZhtis24wg2K/YsSDbjNqpINm+2YbYrNix2YdcIixcbiAgICBcImxvYWRGcm9tU2VydmVyXCI6IFwi2KjYp9ix2q/Ystin2LHbjCBKU09OINin2LIg2LPYsdmI2LFcIixcbiAgICBcInRpdGxlU2NyaXB0XCI6IFwi2KfYs9qp2LHbjNm+2Kog2Ygg2LTbjNmI2Ycg2YbZhdin24zYtFwiLFxuICAgIFwidGl0bGVIdG1sXCI6IFwiSFRNTFwiLFxuICAgIFwidGl0bGVKYXZhU2NyaXB0XCI6IFwi2KzYp9mI2KfYp9iz2qnYsduM2b7YqlwiLFxuICAgIFwic3RhbmRhcmRcIjogXCLYqNiv2YjZhiDYqNmI2KrYs9iq2LHZvlwiXG4gIH0sXG4gIFwidHNcIjoge1xuICAgIFwic2VsZWN0UGFnZVwiOiBcIti12YHYrdmHINin24wg2LHYpyDYqNix2KfbjCDYotiy2YXYp9uM2LQg2KfZhtiq2K7Yp9ioINqp2YbbjNivOlwiLFxuICAgIFwic2hvd0ludmlzaWJsZUVsZW1lbnRzXCI6IFwi2YbZhdin24zYtCDYp9mE2YXYp9mGINmH2KfbjCDZhdiu2YHbjFwiXG4gIH0sXG4gIFwidmFsaWRhdG9yc1wiOiB7XG4gICAgXCJhbnN3ZXJjb3VudHZhbGlkYXRvclwiOiBcItiq2LnYr9in2K8g2b7Yp9iz2K5cIixcbiAgICBcImVtYWlsdmFsaWRhdG9yXCI6IFwi2KfbjNmF24zZhFwiLFxuICAgIFwiZXhwcmVzc2lvbnZhbGlkYXRvclwiOiBcIti52KjYp9ix2KpcIixcbiAgICBcIm51bWVyaWN2YWxpZGF0b3JcIjogXCLYudiv2K9cIixcbiAgICBcInJlZ2V4dmFsaWRhdG9yXCI6IFwicmVnZXhcIixcbiAgICBcInRleHR2YWxpZGF0b3JcIjogXCLZhdiq2YZcIlxuICB9LFxuICBcInRyaWdnZXJzXCI6IHtcbiAgICBcImNvbXBsZXRldHJpZ2dlclwiOiBcItiq2qnZhduM2YQg2YbYuNix2LPZhtis24xcIixcbiAgICBcInNldHZhbHVldHJpZ2dlclwiOiBcItiq2YbYuNuM2YUg2YXZgtiv2KfYsVwiLFxuICAgIFwiY29weXZhbHVldHJpZ2dlclwiOiBcItqp2b7bjCDZhdmC2K/Yp9ixXCIsXG4gICAgXCJza2lwdHJpZ2dlclwiOiBcItix2K8g2qnYsdiv2YYg2LPZiNin2YQgXCIsXG4gICAgXCJydW5leHByZXNzaW9udHJpZ2dlclwiOiBcItin2KzYsdin24wg2LnYqNin2LHYqlwiLFxuICAgIFwidmlzaWJsZXRyaWdnZXJcIjogXCLYqti624zbjNixINmI2LbYuduM2Kog2K/bjNiv2Ycg2LTYr9mGXCJcbiAgfSxcbiAgXCJwZWhlbHBcIjoge30sXG4gIFwicFwiOiB7XG4gICAgXCJuYW1lXCI6IFwi2YbYp9mFXCIsXG4gICAgXCJ0aXRsZVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCLYudmG2YjYp9mGXCIsXG4gICAgICBcInRpdGxlXCI6IFwi2Kfar9ixINiu2KfZhNuMINio2KfYtNivINmF2KfZhtmG2K8g2YbYp9mFINiv2LHYrCDZhduMINi02YjYr1wiXG4gICAgfSxcbiAgICBcIm5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eVwiOiBcItm+2K/bjNiv2KfYsduMINiv2qnZhdmHINmH2KfbjCDZhtin2YjYqNix24xcIixcbiAgICBcInF1ZXN0aW9uc09yZGVyXCI6IFwi2KrYsdiq24zYqCDYs9mI2KfZhNin2KpcIixcbiAgICBcIm1heFRpbWVUb0ZpbmlzaFwiOiBcItit2K/Yp9qp2KvYsSDYstmF2KfZhiDYqNix2KfbjCDYqtqp2YXbjNmEXCIsXG4gICAgXCJ2aXNpYmxlXCI6IFwi2KLYtNqp2KfYsVwiLFxuICAgIFwidmlzaWJsZUlmXCI6IFwi2KLYtNqp2KfYsSDYp9qv2LFcIixcbiAgICBcInF1ZXN0aW9uVGl0bGVMb2NhdGlvblwiOiBcItmF2YjZgti524zYqiDYudmG2YjYp9mGINiz2YjYp9mEXCIsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcItiq2YjYttuM2K3Yp9iqXCIsXG4gICAgXCJzdGF0ZVwiOiBcItmI2LbYuduM2KpcIixcbiAgICBcImlzUmVxdWlyZWRcIjogXCLYp9is2KjYp9ix24zYn1wiLFxuICAgIFwicmVxdWlyZWRJZlwiOiBcItin2KzYqNin2LEg2Kfar9ix2J9cIixcbiAgICBcImluZGVudFwiOiBcImluZGVudFwiLFxuICAgIFwicmVxdWlyZWRFcnJvclRleHRcIjogXCLZhdiq2YYg2K7Yt9in24wg2KfYrNio2KfYsduMXCIsXG4gICAgXCJzdGFydFdpdGhOZXdMaW5lXCI6IFwi2LTYsdmI2Lkg2KjYpyDYrti3INis2K/bjNivIFwiLFxuICAgIFwiaW5uZXJJbmRlbnRcIjogXCLYqtmIINix2YHYqtqv24wg2K/Yp9iu2YTbjFwiLFxuICAgIFwicGFnZVwiOiBcIti12YHYrdmHXCIsXG4gICAgXCJ3aWR0aFwiOiBcIti52LHYtlwiLFxuICAgIFwiY29tbWVudFRleHRcIjogXCLZhdiq2YYg2YbYuNixXCIsXG4gICAgXCJ2YWx1ZU5hbWVcIjogXCLZhtin2YUg2YXZgtiv2KfYsVwiLFxuICAgIFwiZW5hYmxlSWZcIjogXCLZgdi52KfZhCDYp9qv2LFcIixcbiAgICBcImRlZmF1bHRWYWx1ZVwiOiBcItmF2YLYr9in2LEg2b7bjNi0INmB2LHYtlwiLFxuICAgIFwiY29ycmVjdEFuc3dlclwiOiBcItm+2KfYs9iuINi12K3bjNitXCIsXG4gICAgXCJyZWFkT25seVwiOiBcItmB2YLYtyDYrtmI2KfZhti0XCIsXG4gICAgXCJ2YWxpZGF0b3JzXCI6IFwi2KfYudiq2KjYp9ix2LPZhtisINmH2KdcIixcbiAgICBcInRpdGxlTG9jYXRpb25cIjogXCLZhdit2YQg2YLYsdin2LHar9uM2LHbjCDYudmG2YjYp9mGXCIsXG4gICAgXCJoYXNDb21tZW50XCI6IFwi2YbYuNixINiv2KfYsdiv2J9cIixcbiAgICBcImhhc090aGVyXCI6IFwi2LPYp9uM2LEg2K/Yp9ix2K/Yn1wiLFxuICAgIFwiY2hvaWNlc1wiOiBcItqv2LLbjNmG2Ycg2YfYp1wiLFxuICAgIFwiY2hvaWNlc09yZGVyXCI6IFwi2KrYsdiq24zYqCDar9iy24zZhtmHINmH2KdcIixcbiAgICBcImNob2ljZXNCeVVybFwiOiBcItqv2LLbjNmG2Ycg2YfYpyDYqNinINmE24zZhtqpXCIsXG4gICAgXCJvdGhlclRleHRcIjogXCLZhdiq2YYg2LPYp9uM2LFcIixcbiAgICBcIm90aGVyRXJyb3JUZXh0XCI6IFwi2YXYqtmGINiu2LfYp9uMINiz2KfbjNixXCIsXG4gICAgXCJzdG9yZU90aGVyc0FzQ29tbWVudFwiOiBcItiw2K7bjNix2Ycg2LPYp9uM2LEg2KjZhyDYtdmI2LHYqiDZhti42LFcIixcbiAgICBcImxhYmVsXCI6IFwi2KjYsdqG2LPYqFwiLFxuICAgIFwic2hvd1RpdGxlXCI6IFwi2YbYp9mF24zYtCDYudmG2YjYp9mGXCIsXG4gICAgXCJ2YWx1ZVRydWVcIjogXCLZhdmC2KfYr9uM2LEg2LXYrduM2K1cIixcbiAgICBcInZhbHVlRmFsc2VcIjogXCLZhdmC2KfYr9uM2LEg2LrZhNi3XCIsXG4gICAgXCJjb2xzXCI6IFwi2LPYqtmI2YYg2YfYp1wiLFxuICAgIFwicm93c1wiOiBcItiz2LfYsSDZh9inXCIsXG4gICAgXCJwbGFjZWhvbGRlclwiOiBcItmF2K3ZhCDZhtqv2YfYr9in2LHZhtiv2YdcIixcbiAgICBcIm9wdGlvbnNDYXB0aW9uXCI6IFwi2LLbjNix2YbZiNuM2LMg2q/YstuM2YbZhyDZh9inXCIsXG4gICAgXCJleHByZXNzaW9uXCI6IFwi2LnYqNin2LHYqlwiLFxuICAgIFwiZm9ybWF0XCI6IFwi2YHYsdmF2KpcIixcbiAgICBcImRpc3BsYXlTdHlsZVwiOiBcItiz2KjaqSDZhtmF2KfbjNi0XCIsXG4gICAgXCJjdXJyZW5jeVwiOiBcItin2LHYslwiLFxuICAgIFwidXNlR3JvdXBpbmdcIjogXCLYp9iz2KrZgdin2K/ZhyDYp9iyINqv2LHZiNmHINio2YbYr9uMXCIsXG4gICAgXCJzaG93UHJldmlld1wiOiBcItm+24zYtCDZhtmF2KfbjNi0XCIsXG4gICAgXCJhbGxvd011bHRpcGxlXCI6IFwi2KfYrNin2LLZhyDahtmG2K8g2KfZhtiq2K7Yp9io24xcIixcbiAgICBcImltYWdlSGVpZ2h0XCI6IFwi2LfZiNmEINi52qnYs1wiLFxuICAgIFwiaW1hZ2VXaWR0aFwiOiBcIti52LHYtiDYudqp2LNcIixcbiAgICBcInN0b3JlRGF0YUFzVGV4dFwiOiBcItiw2K7bjNix2Ycg2K/Yp9iv2Ycg2KjZhyDYtdmI2LHYqiDZhdiq2YbbjFwiLFxuICAgIFwibWF4U2l6ZVwiOiBcItmG2YfYp9uM2Kog2K3YrNmFXCIsXG4gICAgXCJodG1sXCI6IFwiaHRtbFwiLFxuICAgIFwiY29sdW1uc1wiOiBcItiz2KrZiNmGINmH2KdcIixcbiAgICBcImNlbGxzXCI6IFwi2LPZhNmI2YQg2YfYp1wiLFxuICAgIFwiaXNBbGxSb3dSZXF1aXJlZFwiOiBcItii24zYpyDYqtmF2KfZhSDYs9i32LHZh9inINin2KzYqNin2LHbjCDYp9mG2K/Yn1wiLFxuICAgIFwiaG9yaXpvbnRhbFNjcm9sbFwiOiBcItin2LPaqdix2YjZhCDYp9mB2YLbjFwiLFxuICAgIFwiY2VsbFR5cGVcIjogXCLZhtmI2Lkg2LPZhNmI2YRcIixcbiAgICBcImNvbHVtbnNMYXlvdXRcIjogXCLYt9ix2K0g2KjZhtiv24wg2LPYqtmI2YYg2YfYp1wiLFxuICAgIFwiY29sdW1uQ29sQ291bnRcIjogXCLYqti52K/Yp9ivINiz2KrZiNmGINmH2KdcIixcbiAgICBcImNvbHVtbk1pbldpZHRoXCI6IFwi2K3Yr9in2YLZhCDYudix2LYg2LPYqtmI2YZcIixcbiAgICBcInJvd0NvdW50XCI6IFwi2KrYudiv2KfYryDYs9i32LFcIixcbiAgICBcIm1pblJvd0NvdW50XCI6IFwi2K3Yr9in2YLZhCDYqti52K/Yp9ivINiz2LfYsVwiLFxuICAgIFwibWF4Um93Q291bnRcIjogXCLYrdiv2Kfaqdir2LEg2KrYudiv2KfYryDYs9i32LFcIixcbiAgICBcImtleU5hbWVcIjogXCLaqdmE24zYryDZhtin2YVcIixcbiAgICBcImtleUR1cGxpY2F0aW9uRXJyb3JcIjogXCLaqdmE24zYryDYp9ix2YjYsSDaqdm+24wgXCIsXG4gICAgXCJjb25maXJtRGVsZXRlXCI6IFwi2KrYp9uM24zYr9uM2Ycg2K3YsNmBXCIsXG4gICAgXCJjb25maXJtRGVsZXRlVGV4dFwiOiBcItmF2KrZhiDYqtin24zbjNiv24zZhyDYrdiw2YFcIixcbiAgICBcImFkZFJvd0xvY2F0aW9uXCI6IFwi2KfYttin2YHZhyDaqdix2K/ZhiDZhdmI2YLYuduM2Kog2LPYt9ixXCIsXG4gICAgXCJhZGRSb3dUZXh0XCI6IFwi2KfZgdiy2YjYr9mGINmF2KrZhiDYs9i32LFcIixcbiAgICBcInJlbW92ZVJvd1RleHRcIjogXCLYrdiw2YEg2YXYqtmGINiz2LfYsVwiLFxuICAgIFwiaXRlbXNcIjogXCLZhdmI2KfYsdivXCIsXG4gICAgXCJpdGVtU2l6ZVwiOiBcItin2KjYudin2K8g2YXZiNix2K9cIixcbiAgICBcImNvbENvdW50XCI6IFwi2KrYudiv2KfYryDYs9iq2YjZhlwiLFxuICAgIFwidGVtcGxhdGVUaXRsZVwiOiBcIti52YbZiNin2YYg2KfZhNqv2YhcIixcbiAgICBcInRlbXBsYXRlRGVzY3JpcHRpb25cIjogXCLYtNix2K0g2KfZhNqv2YhcIixcbiAgICBcImFsbG93QWRkUGFuZWxcIjogXCLYp9i22KfZgdmHINqp2LHYr9mGINm+2YbZhCDZhdis2KfYsiDYp9iz2KpcIixcbiAgICBcImFsbG93UmVtb3ZlUGFuZWxcIjogXCLYrdiw2YEg2qnYsdiv2YYg2b7ZhtmEINmF2KzYp9iyINin2LPYqlwiLFxuICAgIFwicGFuZWxDb3VudFwiOiBcItiq2LnYr9in2K8g2b7ZhtmEXCIsXG4gICAgXCJtaW5QYW5lbENvdW50XCI6IFwi2K3Yr9in2YLZhCDYqti52K/Yp9ivINm+2YbZhFwiLFxuICAgIFwibWF4UGFuZWxDb3VudFwiOiBcItit2K/Yp9qp2KvYsSDYqti52K/Yp9ivINm+2YbZhFwiLFxuICAgIFwicGFuZWxzU3RhdGVcIjogXCLYtNix2K0g2K/Yp9iv2YYg2b7ZhtmEINmH2KdcIixcbiAgICBcInBhbmVsQWRkVGV4dFwiOiBcItin2LbYp9mB2Ycg2qnYsdiv2YYg2YXYqtmGINio2Ycg2b7ZhtmEINmH2KdcIixcbiAgICBcInBhbmVsUmVtb3ZlVGV4dFwiOiBcItit2LDZgSDaqdix2K/ZhiDZhdiq2YYg2b7ZhtmEINmH2KdcIixcbiAgICBcInBhbmVsUHJldlRleHRcIjogXCLZhdiq2YYg2YLYqNmE24wg2b7ZhtmEXCIsXG4gICAgXCJwYW5lbE5leHRUZXh0XCI6IFwi2YXYqtmGINio2LnYr9uMINm+2YbZhFwiLFxuICAgIFwic2hvd1F1ZXN0aW9uTnVtYmVyc1wiOiBcItmG2YXYp9uM2LQg2KrYudiv2KfYryDYs9mI2KfZhNin2KpcIixcbiAgICBcInNob3dSYW5nZUluUHJvZ3Jlc3NcIjogXCLYr9in2YXZhtmHINmF2YjYsdivINmG2LjYsSDYr9ixINit2KfZhCDYp9mG2KzYp9mFINin2LPYqi5cIixcbiAgICBcInJlbmRlck1vZGVcIjogXCLYrdin2YTYqiDYsdmG2K/YsVwiLFxuICAgIFwidGVtcGxhdGVUaXRsZUxvY2F0aW9uXCI6IFwi2LnZhtmI2KfZhiDZhdqp2KfZhlwiLFxuICAgIFwicmF0ZVZhbHVlc1wiOiBcItix2KrYqNmHINio2YbYr9uMINmF2YLYp9iv24zYsVwiLFxuICAgIFwicmF0ZU1pblwiOiBcItit2K/Yp9mC2YQg2LHYqtio2YdcIixcbiAgICBcInJhdGVNYXhcIjogXCLYrdiv2Kfaqdir2LEg2LHYqtio2YdcIixcbiAgICBcInJhdGVTdGVwXCI6IFwi2YXYsdin2K3ZhCDYsdiq2KjZhyDYqNmG2K/bjFwiLFxuICAgIFwibWluUmF0ZURlc2NyaXB0aW9uXCI6IFwi2YXYtNiu2LXYp9iqINit2K/Yp9mC2YQg2LHYqtio2Ycg2KjZhtiv24xcIixcbiAgICBcIm1heFJhdGVEZXNjcmlwdGlvblwiOiBcItmF2LTYrti12KfYqiDYrdiv2Kfaqdir2LEg2LHYqtio2Ycg2KjZhtiv24xcIixcbiAgICBcImlucHV0VHlwZVwiOiBcItmG2YjYuSDZiNix2YjYr9uMXCIsXG4gICAgXCJzaXplXCI6IFwi2K3YrNmFXCIsXG4gICAgXCJsb2NhbGVcIjogXCLYstio2KfZhlwiLFxuICAgIFwiZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljXCI6IFwi2b7bjNi0INmB2LHYtiDYs9mI2KfZhCDYp9mI2YQg2KfZhtiq2K7Yp9ioINi02K/ZhyDYqNin2LTYry5cIixcbiAgICBcImNvbXBsZXRlZEh0bWxcIjogXCJodG1sINqp2KfZhdmEINi02K/Zh1wiLFxuICAgIFwiY29tcGxldGVkQmVmb3JlSHRtbFwiOiBcItmC2KjZhCDYp9iyIGh0bWwgINqp2KfZhdmEINi02K/Zh1wiLFxuICAgIFwibG9hZGluZ0h0bWxcIjogXCLYqNin2LHar9iw2KfYsduMIEh0bWxcIixcbiAgICBcInRyaWdnZXJzXCI6IFwi2YHYudin2YQg2LPYp9iy24xcIixcbiAgICBcImNvb2tpZU5hbWVcIjogXCLZhtin2YUg2qnZiNqp24xcIixcbiAgICBcInNlbmRSZXN1bHRPblBhZ2VOZXh0XCI6IFwi2KfYsdiz2KfZhCDZhtiq24zYrNmHINiv2LEg2LXZgdit2Ycg2KjYudiv24xcIixcbiAgICBcInNob3dOYXZpZ2F0aW9uQnV0dG9uc1wiOiBcItmG2YXYp9uM2LQg2K/aqdmF2Ycg2YfYp9uMINis2YfYqiDbjNin2KjbjFwiLFxuICAgIFwic2hvd1ByZXZCdXR0b25cIjogXCLZhtmF2KfbjNi0INiv2qnZhdmHINuMINmC2KjZhNuMXCIsXG4gICAgXCJzaG93UGFnZVRpdGxlc1wiOiBcItmG2YXYp9uM2LQg2LnZhtmI2KfZhiDYtdmB2K3Zh1wiLFxuICAgIFwic2hvd0NvbXBsZXRlZFBhZ2VcIjogXCLZhtmF2KfbjNi0INi12YHYrdmHINuMINqp2KfZhdmEXCIsXG4gICAgXCJzaG93UGFnZU51bWJlcnNcIjogXCLZhtmF2KfbjNi0INi02YXYp9ix2Ycg24wg2LXZgdit2KfYqlwiLFxuICAgIFwicXVlc3Rpb25FcnJvckxvY2F0aW9uXCI6IFwi2YXZiNmC2LnbjNiqINmC2LHYp9ix2q/bjNix24wg2K7Yt9in24wg2LPZiNin2YTYp9iqXCIsXG4gICAgXCJzaG93UHJvZ3Jlc3NCYXJcIjogXCLZhtmF2KfbjNi0INmG2YjYp9ixINm+24zYtNix2YHYqlwiLFxuICAgIFwibW9kZVwiOiBcItit2KfZhNiqXCIsXG4gICAgXCJnb05leHRQYWdlQXV0b21hdGljXCI6IFwi2KfYqtmI2YXYp9iq24zaqSDYqNmHINi12YHYrdmHINuMINio2LnYr9uMINio2LHZiNivXCIsXG4gICAgXCJjaGVja0Vycm9yc01vZGVcIjogXCLYrdin2YTYqiDYrti32KfZh9inINix2Kcg2KjYsdix2LPbjCDaqdmG24zYr1wiLFxuICAgIFwiY2xlYXJJbnZpc2libGVWYWx1ZXNcIjogXCLZhdmC2KfYr9uM2LEg2YbYp9mF2LnZhNmI2YUg2LHYpyDZvtin2qkg2qnZhtuM2K9cIixcbiAgICBcInN0YXJ0U3VydmV5VGV4dFwiOiBcIti02LHZiNi5INmF2KrZhiDZhti42LHYs9mG2KzbjFwiLFxuICAgIFwicGFnZVByZXZUZXh0XCI6IFwi2YXYqtmGINi12YHYrdmHINuMINmC2KjZhNuMXCIsXG4gICAgXCJwYWdlTmV4dFRleHRcIjogXCLZhdiq2YYg2LXZgdit2Ycg24wg2KjYudiv24xcIixcbiAgICBcImNvbXBsZXRlVGV4dFwiOiBcItmF2KrZhiDaqdin2YXZhFwiLFxuICAgIFwicmVxdWlyZWRUZXh0XCI6IFwi2YXYqtmGINin2KzYqNin2LHbjFwiLFxuICAgIFwicXVlc3Rpb25TdGFydEluZGV4XCI6IFwi2YHZh9ix2LPYqiDYtNix2YjYuSDYs9mI2KfZhNin2KpcIixcbiAgICBcInF1ZXN0aW9uVGl0bGVUZW1wbGF0ZVwiOiBcItin2YTar9mI24wg2YXZiNi22YjYudin2Kog2LPZiNin2YTYp9iqXCIsXG4gICAgXCJmaXJzdFBhZ2VJc1N0YXJ0ZWRcIjogXCLYtdmB2K3ZhyDYp9mI2YQg2LTYsdmI2Lkg2YXbjCDYtNmI2K9cIixcbiAgICBcImlzU2luZ2xlUGFnZVwiOiBcItii24zYpyDYqtqpINi12YHYrdmHINin24wg2KfYs9iq2J9cIixcbiAgICBcIm1heFRpbWVUb0ZpbmlzaFBhZ2VcIjogXCLYrdiv2Kfaqdir2LEg2LLZhdin2YYg2KjYsdin24wg2KjZhyDZvtin24zYp9mGINix2LPYp9mG2K/ZhiAg2LXZgdit2YdcIixcbiAgICBcInNob3dUaW1lclBhbmVsXCI6IFwi2YbZhdin24zYtCDZvtmG2YQg2LLZhdin2YYg2KjZhtiv24xcIixcbiAgICBcInNob3dUaW1lclBhbmVsTW9kZVwiOiBcItmG2YXYp9uM2LQg2K3Yp9mE2Kog2b7ZhtmEINiy2YXYp9mGINio2YbYr9uMXCIsXG4gICAgXCJkZWZhdWx0UGFuZWxWYWx1ZVwiOiBcItmF2YLYr9in2LEg2b7bjNi0INmB2LHYtiAg2b7ZhtmEXCIsXG4gICAgXCJkZWZhdWx0Um93VmFsdWVcIjogXCLZhdmC2K/Yp9ixINm+24zYtCDZgdix2LYg2LPYt9ixXCIsXG4gICAgXCJoYXNOb25lXCI6IFwi2YXZiNix2K/bjCDZhtiv2KfYsdivXCIsXG4gICAgXCJub25lVGV4dFwiOiBcItmF2KrZhtuMINmG2K/Yp9ix2K9cIixcbiAgICBcInRleHRcIjogXCLZhdiq2YZcIixcbiAgICBcInN1cnZleV90aXRsZVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCLYudmG2YjYp9mGXCIsXG4gICAgICBcInRpdGxlXCI6IFwi2K/YsSDYqtmF2KfZhSDYtdmB2K3Yp9iqINiv24zYr9mHINmF24wg2LTZiNivXCJcbiAgICB9LFxuICAgIFwicGFnZV90aXRsZVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCLYudmG2YjYp9mGXCIsXG4gICAgICBcInRpdGxlXCI6IFwi2LnZhtmI2KfZhiDYtdmB2K3Zh1wiXG4gICAgfSxcbiAgICBcIm1pblZhbHVlXCI6IFwi2K3Yr9in2YLZhCDZhdmC2K/Yp9ixXCIsXG4gICAgXCJtYXhWYWx1ZVwiOiBcItit2K/Yp9qp2KvYsSDZhdmC2K/Yp9ixXCIsXG4gICAgXCJtaW5MZW5ndGhcIjogXCLYrdiv2KfZgtmEINi32YjZhFwiLFxuICAgIFwibWF4TGVuZ3RoXCI6IFwi2K3Yr9in2qnYq9ixINi32YjZhFwiLFxuICAgIFwiYWxsb3dEaWdpdHNcIjogXCLYp9is2KfYstmHINi52K/Yr1wiLFxuICAgIFwibWluQ291bnRcIjogXCLYrdiv2KfZgtmEINiq2LnYr9in2K9cIixcbiAgICBcIm1heENvdW50XCI6IFwi2K3Yr9in2qnYq9ixINiq2LnYr9in2K9cIixcbiAgICBcInJlZ2V4XCI6IFwi2LnYqNin2LHYqiDYqNinINmC2KfYudiv2YdcIlxuICB9LFxuICBcInBlbFwiOiB7XG4gICAgXCJpc1JlcXVpcmVkXCI6IFwi2KfYrNio2KfYsduM2J9cIlxuICB9XG59O1xuXG5lZGl0b3JMb2NhbGl6YXRpb24ubG9jYWxlc1tcImZhXCJdID0gcGVyc2lhblN0cmluZ3M7XG4iLCJpbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbnZhciBwb2xpc2hTdHJpbmdzID0ge1xuICAvL3N1cnZleSB0ZW1wbGF0ZXNcbiAgc3VydmV5OiB7XG4gICAgZWRpdDogXCJFZHl0dWpcIixcbiAgICBkcm9wUXVlc3Rpb246IFwiUHJ6ZWNpxIVnbmlqIHB5dGFuaWUuXCIsXG4gICAgY29weTogXCJLb3BpdWpcIixcbiAgICBhZGRUb1Rvb2xib3g6IFwiRG9kYWogZG8gcGFsZXR5XCIsXG4gICAgZGVsZXRlUGFuZWw6IFwiVXN1xYQgcGFuZWxcIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCJVc3XFhCBweXRhbmllXCIsXG4gICAgY29udmVydFRvOiBcIktvbndlcnR1aiBuYVwiLFxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBjaGVja2JveDogXCJXaWVsb2tyb3RueSB3eWLDs3JcIixcbiAgICBjb21tZW50OiBcIktvbWVudGFyelwiLFxuICAgIGRyb3Bkb3duOiBcIkxpc3RhIHd5Ym9ydVwiLFxuICAgIGZpbGU6IFwiUGxpa1wiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIG1hdHJpeDogXCJNYWNpZXJ6IChqZWRub2tyb3RueSB3eWLDs3IpXCIsXG4gICAgbWF0cml4ZHJvcGRvd246IFwiTWF0cml4ICh3aWVsb2tyb3RueSB3eWLDs3IpXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCJNYXRyaXggKGR5bmFtaWN6bmUgd2llcnN6ZSlcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwiV2llbGUgbGluaWkgdGVrc3R1XCIsXG4gICAgcGFuZWw6IFwiUGFuZWxcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwiUGFuZWwgKGR5bmFtaWN6bmUgcGFuZWxlKVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwiSmVkbm9rcm90bnkgd3liw7NyXCIsXG4gICAgcmF0aW5nOiBcIk9jZW5hXCIsXG4gICAgdGV4dDogXCJQb2plZHluY3phIG9kcG93aWVkxbpcIixcbiAgICBib29sZWFuOiBcIlByYXdkYS9GYcWCc3pcIixcbiAgICBleHByZXNzaW9uOiBcIld5cmHFvGVuaWVcIixcbiAgfSxcbiAgLy9TdHJpbmdzIGluIEVkaXRvclxuICBlZDoge1xuICAgIHN1cnZleTogXCJBbmtpZXRhXCIsXG4gICAgU3VydmV5OiBcIkFua2lldGFcIixcbiAgICBlZGl0U3VydmV5OiBcIkVkeXR1aiBhbmtpZXTEmVwiLFxuICAgIGFkZE5ld1BhZ2U6IFwiRG9kYWogbm93xIUgc2VrY2rEmVwiLFxuICAgIGRlbGV0ZVBhZ2U6IFwiVXN1xYQgc2VrY2rEmVwiLFxuICAgIGVkaXRQYWdlOiBcIkVkeXR1aiBzZWtjasSZXCIsXG4gICAgbmV3UGFnZU5hbWU6IFwic2VrY2phXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcInB5dGFuaWVcIixcbiAgICBuZXdQYW5lbE5hbWU6IFwicGFuZWxcIixcbiAgICB0ZXN0U3VydmV5OiBcIlRlc3R1aiBhbmtpZXTEmVwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJUZXN0dWogcG9ub3duaWVcIixcbiAgICB0ZXN0U3VydmV5V2lkdGg6IFwiU3plcm9rb8WbxIcgYW5raWV0eTogXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwiRW1iZWQgU3VydmV5XCIsXG4gICAgc2F2ZVN1cnZleTogXCJaYXBpc3ogYW5raWV0xJlcIixcbiAgICBkZXNpZ25lcjogXCJQcm9qZWt0YW50IGFua2lldHlcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04gRWRpdG9yXCIsXG4gICAgdW5kbzogXCJDb2ZuaWpcIixcbiAgICByZWRvOiBcIlBvbsOzd1wiLFxuICAgIG9wdGlvbnM6IFwiT3BjamVcIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCJHZW5lcmF0ZSBWYWxpZCBKU09OXCIsXG4gICAgZ2VuZXJhdGVSZWFkYWJsZUpTT046IFwiR2VuZXJhdGUgUmVhZGFibGUgSlNPTlwiLFxuICAgIHRvb2xib3g6IFwiUGFsZXRhXCIsXG4gICAgZGVsU2VsT2JqZWN0OiBcIlVzdcWEIHd5YnJhbnkgZWxlbWVudFwiLFxuICAgIGNvcnJlY3RKU09OOiBcIlBsZWFzZSBjb3JyZWN0IEpTT04uXCIsXG4gICAgc3VydmV5UmVzdWx0czogXCJXeW5payBhbmtpZXR5OiBcIixcbiAgICBtb2RpZmllZDogXCJabW9keWZpa293YW5hXCIsXG4gICAgc2F2aW5nOiBcIlRyd2EgemFwaXNcIixcbiAgICBzYXZlZDogXCJaYXBpc2Fub1wiLFxuICB9LFxuICAvL1Byb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgcGVsOiB7XG4gICAgaXNSZXF1aXJlZDogXCJXeW1hZ2FuZT9cIixcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwiWmFzdG9zdWpcIixcbiAgICBvazogXCJPS1wiLFxuICAgIGNhbmNlbDogXCJBbnVsdWpcIixcbiAgICByZXNldDogXCJSZXNldHVqXCIsXG4gICAgY2xvc2U6IFwiWmFta25palwiLFxuICAgIGRlbGV0ZTogXCJVc3XFhFwiLFxuICAgIGFkZE5ldzogXCJEb2RhaiBub3fEhVwiLFxuICAgIHJlbW92ZUFsbDogXCJVc3XFhCB3c3p5c3RraWVcIixcbiAgICBlZGl0OiBcIkVkeXR1alwiLFxuICAgIGVtcHR5OiBcIjxwdXN0eT5cIixcbiAgICBmYXN0RW50cnk6IFwiU3p5YmtpZSB3cHJvd2FkemFuaWVcIixcbiAgICBmb3JtRW50cnk6IFwiRm9ybXVsYXJ6XCIsXG4gICAgdGVzdFNlcnZpY2U6IFwiVGVzdHVqIHVzxYJ1Z8SZXCIsXG4gICAgY29uZGl0aW9uSGVscDpcbiAgICAgIFwiUG9kYWogd3lyYcW8ZW5pZSwga3TDs3JlIHp3csOzY2kgd2FydG/Fm8SHIHByYXdkYS9mYcWCc3ouIEplxZtsaSBjaGNlc3osIGFieSBzZWtjamEgbHViIHB5dGFuaWUgcG96b3N0YcWCeSB3aWRvY3puZSAtIHBvd2lubm8gendyw7NjacSHIHByYXdkxJkuIFByenlrxYJhZDoge3B5dGFuaWUxfSA9ICd3YXJ0b8WbxIcxJyBvciAoe3B5dGFuaWUyfSAqIHtweXRhbmllNH0gID4gMjAgYW5kIHtweXRhbmllM30gPCA1KVwiLFxuICAgIGFjZUVkaXRvckhlbHA6IFwiUHJlc3MgY3RybCtzcGFjZSB0byBnZXQgZXhwcmVzc2lvbiBjb21wbGV0aW9uIGhpbnRcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCJDdXJyZW50IHJvd1wiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwiQ3VycmVudCBwYW5lbFwiLFxuICAgIHNob3dNb3JlOiBcIkZvciBtb3JlIGRldGFpbHMgcGxlYXNlIGNoZWNrIHRoZSBkb2N1bWVudGF0aW9uXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwiQXZhaWxhYmxlIHF1ZXN0aW9uczpcIixcblxuICAgIHByb3BlcnR5SXNFbXB0eTogXCJQb2RhaiB3YXJ0b8WbxIdcIixcbiAgICB2YWx1ZTogXCJXYXJ0b8WbxIdcIixcbiAgICB0ZXh0OiBcIkV0eWtpZXRhXCIsXG4gICAgY29sdW1uRWRpdDogXCJFZGl0IGNvbHVtbjogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwiRWRpdCBpdGVtOiB7MH1cIixcblxuICAgIHVybDogXCJVUkxcIixcbiAgICBwYXRoOiBcIlBhdGhcIixcbiAgICB2YWx1ZU5hbWU6IFwiVmFsdWUgbmFtZVwiLFxuICAgIHRpdGxlTmFtZTogXCJUaXRsZSBuYW1lXCIsXG5cbiAgICBzaG93T3RoZXJJdGVtOiBcIkN6eSBtb8W8bGl3YSB3xYJhc25hIG9kcG93aWVkxbpcIixcbiAgICBvdGhlclRleHQ6IFwiT3RoZXIgaXRlbSB0ZXh0XCIsXG4gICAgbmFtZTogXCJOYXp3YVwiLFxuICAgIHRpdGxlOiBcIkV0eWtpZXRhXCIsXG4gICAgY2VsbFR5cGU6IFwiVHlwIGtvbcOzcmtpXCIsXG4gICAgY29sQ291bnQ6IFwiTGljemJhIGtvbHVtblwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJLb2xlam5vxZvEhyBvZHBvd2llZHppXCIsXG4gICAgdmlzaWJsZTogXCJDenkgd2lkb2N6bmU/XCIsXG4gICAgaXNSZXF1aXJlZDogXCJDenkgd3ltYWdhbG5lP1wiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiQ3p5IHJvenBvY3p5bmEgc2nEmSBub3fEhSBsaW5pxIU/XCIsXG4gICAgcm93czogXCJMaWN6YmEgd2llcnN6eVwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIklucHV0IHBsYWNlIGhvbGRlclwiLFxuICAgIHNob3dQcmV2aWV3OiBcIlNob3cgcHJldmlldyBhcmVhXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIlN0b3JlIGZpbGUgY29udGVudCBpbiBKU09OIHJlc3VsdCBhcyB0ZXh0XCIsXG4gICAgbWF4U2l6ZTogXCJNYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkltYWdlIGhlaWdodFwiLFxuICAgIGltYWdlV2lkdGg6IFwiSW1hZ2Ugd2lkdGhcIixcbiAgICByb3dDb3VudDogXCJSb3cgY291bnRcIixcbiAgICBhZGRSb3dUZXh0OiBcIkFkZCByb3cgYnV0dG9uIHRleHRcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlJlbW92ZSByb3cgYnV0dG9uIHRleHRcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiT3BpcyBuYWpuacW8c3plaiBvY2VueVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJPcGlzIG5hand5xbxzemVqIG9jZW55XCIsXG4gICAgaW5wdXRUeXBlOiBcIklucHV0IHR5cGVcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJPcHRpb25zIGNhcHRpb25cIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiRGVmYXVsdCB2YWx1ZVwiLFxuXG4gICAgc3VydmV5RWRpdG9yVGl0bGU6IFwiRWR5dHVqIGFua2lldMSZXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIkVkeXR1ajogezB9XCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCJQb2thxbwvdWtyeWogdHl0dcWCXCIsXG4gICAgbG9jYWxlOiBcIkRvbXnFm2xueSBqxJl6eWtcIixcbiAgICBtb2RlOiBcIlRyeWIgKGVkeWNqYS9wb2RnbMSFZClcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJVc3XFhCBuaWV3aWRvY3puZSBvZHBvd2llZHppXCIsXG4gICAgY29va2llTmFtZTogXCJDb29raWUgbmFtZSAodG8gZGlzYWJsZSBydW4gc3VydmV5IHR3byB0aW1lcyBsb2NhbGx5KVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIlNlbmQgc3VydmV5IHJlc3VsdHMgb24gcGFnZSBuZXh0XCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiU3RvcmUgJ290aGVycycgdmFsdWUgaW4gc2VwYXJhdGUgZmllbGRcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJTaG93IHBhZ2UgdGl0bGVzXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIlNob3cgcGFnZSBudW1iZXJzXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIlBhZ2UgcHJldmlvdXMgYnV0dG9uIHRleHRcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiUGFnZSBuZXh0IGJ1dHRvbiB0ZXh0XCIsXG4gICAgY29tcGxldGVUZXh0OiBcIkNvbXBsZXRlIGJ1dHRvbiB0ZXh0XCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIlN0YXJ0IGJ1dHRvbiB0ZXh0XCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIlNob3cgbmF2aWdhdGlvbiBidXR0b25zIChkZWZhdWx0IG5hdmlnYXRpb24pXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwiU2hvdyBwcmV2aW91cyBidXR0b24gKHVzZXIgbWF5IHJldHVybiBvbiBwcmV2aW91cyBwYWdlKVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCJUaGUgZmlyc3QgcGFnZSBpbiB0aGUgc3VydmV5IGlzIGEgc3RhcnRlZCBwYWdlLlwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlNob3cgdGhlIGNvbXBsZXRlZCBwYWdlIGF0IHRoZSBlbmQgKGNvbXBsZXRlZEh0bWwpXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzpcbiAgICAgIFwiT24gYW5zd2VyaW5nIGFsbCBxdWVzdGlvbnMsIGdvIHRvIHRoZSBuZXh0IHBhZ2UgYXV0b21hdGljYWxseVwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJTaG93IHByb2dyZXNzIGJhclwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJRdWVzdGlvbiB0aXRsZSBsb2NhdGlvblwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJUaGUgcXVlc3Rpb24gcmVxdWlyZWQgc3ltYm9sKHMpXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIlF1ZXN0aW9uIHN0YXJ0IGluZGV4ICgxLCAyIG9yICdBJywgJ2EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiU2hvdyBxdWVzdGlvbiBudW1iZXJzXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOlxuICAgICAgXCJRdWVzdGlvbiB0aXRsZSB0ZW1wbGF0ZSwgZGVmYXVsdCBpczogJ3tub30uIHtyZXF1aXJlfSB7dGl0bGV9J1wiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJRdWVzdGlvbiBlcnJvciBsb2NhdGlvblwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCJGb2N1cyBmaXJzdCBxdWVzdGlvbiBvbiBjaGFuZ2luZyB0aGUgcGFnZVwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIkVsZW1lbnRzIG9yZGVyIG9uIHRoZSBwYWdlXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIk1heGltdW0gdGltZSB0byBmaW5pc2ggdGhlIHN1cnZleVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwiTWF4aW11bSB0aW1lIHRvIGZpbmlzaCBhIHBhZ2UgaW4gdGhlIHN1cnZleVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIlNob3cgdGltZXIgcGFuZWxcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwiU2hvdyB0aW1lciBwYW5lbCBtb2RlXCIsXG4gICAgcmVuZGVyTW9kZTogXCJSZW5kZXIgbW9kZVwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiQWxsb3cgYWRkaW5nIGEgcGFuZWxcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIkFsbG93IHJlbW92aW5nIHRoZSBwYW5lbFwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJBZGRpbmcgcGFuZWwgdGV4dFwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJSZW1vdmluZyBwYW5lbCB0ZXh0XCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIlNob3cgYWxsIGVsZW1lbnRzIG9uIG9uZSBwYWdlXCIsXG5cbiAgICB0YWJzOiB7XG4gICAgICBnZW5lcmFsOiBcIk9nw7NsbmVcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIk9wdGlvbnNcIixcbiAgICAgIGh0bWw6IFwiSHRtbCBFZGl0b3JcIixcbiAgICAgIGNvbHVtbnM6IFwiS29sdW1ueVwiLFxuICAgICAgcm93czogXCJXaWVyc3plXCIsXG4gICAgICBjaG9pY2VzOiBcIk9kcG93aWVkemlcIixcbiAgICAgIHZpc2libGVJZjogXCJXaWRvY3puZSBqZcWbbGlcIixcbiAgICAgIGVuYWJsZUlmOiBcIkVuYWJsZSBJZlwiLFxuICAgICAgcmF0ZVZhbHVlczogXCJXYXJ0b8WbxIcgb2NlbnlcIixcbiAgICAgIGNob2ljZXNCeVVybDogXCJPZHBvd2llZHppIHogd2Vic2Vyd2lzdVwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCJEZWZhdWx0IENob2ljZXNcIixcbiAgICAgIG11bHRpcGxlVGV4dEl0ZW1zOiBcIlRleHQgSW5wdXRzXCIsXG4gICAgICB2YWxpZGF0b3JzOiBcIlZhbGlkYXRvcnNcIixcbiAgICAgIG5hdmlnYXRpb246IFwiTmF2aWdhdGlvblwiLFxuICAgICAgcXVlc3Rpb246IFwiUXVlc3Rpb25cIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwiQ29tcGxldGVkIEh0bWxcIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcIkxvYWRpbmcgSHRtbFwiLFxuICAgICAgdGltZXI6IFwiVGltZXIvUXVpelwiLFxuICAgICAgdHJpZ2dlcnM6IFwiVHJpZ2dlcnNcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiVGVtcGxhdGUgdGl0bGVcIixcbiAgICB9LFxuICAgIGVkaXRQcm9wZXJ0eTogXCJFZGl0IHByb3BlcnR5ICd7MH0nXCIsXG4gICAgaXRlbXM6IFwiWyBJdGVtczogezB9IF1cIixcblxuICAgIGVudGVyTmV3VmFsdWU6IFwiUGxlYXNlLCBlbnRlciB0aGUgdmFsdWUuXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwiVGhlcmUgaXMgbm8gYW55IHF1ZXN0aW9uIGluIHRoZSBzdXJ2ZXkuXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCJQbGVhc2UgY3JlYXRlIGEgdHJpZ2dlclwiLFxuICAgIHRyaWdnZXJPbjogXCJPbiBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCJNYWtlIHBhZ2VzIHZpc2libGU6XCIsXG4gICAgdHJpZ2dlck1ha2VRdWVzdGlvbnNWaXNpYmxlOiBcIk1ha2UgZWxlbWVudHMgdmlzaWJsZTpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIkNvbXBsZXRlIHRoZSBzdXJ2ZXkgaWYgc3VjY2VlZC5cIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIlRoZSB0cmlnZ2VyIGlzIG5vdCBzZXRcIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiUnVuIGlmXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCJDaGFuZ2UgdmFsdWUgb2Y6IFwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCJ0bzogXCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwiRG8gbm90IHB1dCB0aGUgdmFyaWFibGUgaW50byB0aGUgc3VydmV5IHJlc3VsdC5cIixcbiAgfSxcbiAgLy9Qcm9wZXJ0eSB2YWx1ZXNcbiAgcHY6IHtcbiAgICB0cnVlOiBcInByYXdkYVwiLFxuICAgIGZhbHNlOiBcImZhxYJzelwiLFxuICB9LFxuICAvL09wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcImlzIGVtcHR5XCIsXG4gICAgbm90ZW1wdHk6IFwiaXMgbm90IGVtcHR5XCIsXG4gICAgZXF1YWw6IFwiZXF1YWxzXCIsXG4gICAgbm90ZXF1YWw6IFwibm90IGVxdWFsc1wiLFxuICAgIGNvbnRhaW5zOiBcImNvbnRhaW5zXCIsXG4gICAgbm90Y29udGFpbnM6IFwibm90IGNvbnRhaW5zXCIsXG4gICAgZ3JlYXRlcjogXCJncmVhdGVyXCIsXG4gICAgbGVzczogXCJsZXNzXCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwiZ3JlYXRlciBvciBlcXVhbHNcIixcbiAgICBsZXNzb3JlcXVhbDogXCJMZXNzIG9yIEVxdWFsc1wiLFxuICB9LFxuICAvL0VtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiVXNlIEFuZ3VsYXIgdmVyc2lvblwiLFxuICAgIGpxdWVyeTogXCJVc2UgalF1ZXJ5IHZlcnNpb25cIixcbiAgICBrbm9ja291dDogXCJVc2UgS25vY2tvdXQgdmVyc2lvblwiLFxuICAgIHJlYWN0OiBcIlVzZSBSZWFjdCB2ZXJzaW9uXCIsXG4gICAgdnVlOiBcIlVzZSBWdWUgdmVyc2lvblwiLFxuICAgIGJvb3RzdHJhcDogXCJGb3IgYm9vdHN0cmFwIGZyYW1ld29ya1wiLFxuICAgIHN0YW5kYXJkOiBcIk5vIGJvb3RzdHJhcFwiLFxuICAgIHNob3dPblBhZ2U6IFwiU2hvdyBzdXJ2ZXkgb24gYSBwYWdlXCIsXG4gICAgc2hvd0luV2luZG93OiBcIlNob3cgc3VydmV5IGluIGEgd2luZG93XCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiTG9hZCBTdXJ2ZXkgSlNPTiBmcm9tIHNlcnZlclwiLFxuICAgIHRpdGxlU2NyaXB0OiBcIlNjcmlwdHMgYW5kIHN0eWxlc1wiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIixcbiAgfSxcbiAgLy9UZXN0IFN1cnZleVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwiV3liaWVyeiBzdHJvbsSZLCBhYnkgasSFIHByemV0ZXN0b3dhxIc6XCIsXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCJhbnN3ZXIgY291bnRcIixcbiAgICBlbWFpbHZhbGlkYXRvcjogXCJlLW1haWxcIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcIm51bWVyaWNcIixcbiAgICByZWdleHZhbGlkYXRvcjogXCJyZWdleFwiLFxuICAgIHRleHR2YWxpZGF0b3I6IFwidGV4dFwiLFxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJjb21wbGV0ZSBzdXJ2ZXlcIixcbiAgICBzZXR2YWx1ZXRyaWdnZXI6IFwic2V0IHZhbHVlXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwiY2hhbmdlIHZpc2liaWxpdHlcIixcbiAgfSxcbiAgLy9Qcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICBuYW1lOiBcIm5hendhXCIsXG4gICAgdGl0bGU6IHtcbiAgICAgIG5hbWU6IFwidHl0dcWCXCIsXG4gICAgICB0aXRsZTogXCJQb3pvc3RhdyBwdXN0eSwgamXFm2xpIG1hIGJ5xIcgdGFraSBzYW0sIGphayAnTmF6d2EnXCIsXG4gICAgfSxcbiAgICBwYWdlX3RpdGxlOiB7IG5hbWU6IFwidHl0dcWCXCIsIHRpdGxlOiBcIlR5dHXFgiBzZWtjamlcIiB9LFxuICB9LFxufTtcblxuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJwbFwiXSA9IHBvbGlzaFN0cmluZ3M7XG4iLCJpbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbnZhciBwb3J0dWd1ZXNlVHJhbnNsYXRpb24gPSB7XG4gIC8vIHN1cnZleSB0ZW1wbGF0ZXNcbiAgc3VydmV5OiB7XG4gICAgZWRpdDogXCJFZGl0YXJcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rOiBcIlZlamEgZSBhcHJlbmRhIGEgY3JpYXIgcXVlc3Rpb27DoXJpb3NcIixcbiAgICAvLyBleHRlcm5hbEhlbHBMaW5rVXJsOiBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNIMnJ1OW9rSWNvb05aZnBJYnlxNHFRP3ZpZXdfYXM9c3Vic2NyaWJlclwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCJQb3IgZmF2b3IgYXJyYXN0ZSB1bWEgcGVyZ3VudGEgYXF1aS5cIixcbiAgICBhZGRMb2dpY0l0ZW06IFwiQ3JpZSB1bWEgcmVncmEgcGFyYSBjb25maWd1cmFyIG8gZmx1eG8gZG8gcXVlc3Rpb27DoXJpby5cIixcbiAgICBjb3B5OiBcIkNvcGlhclwiLFxuICAgIGR1cGxpY2F0ZTogXCJEdXBsaWNhclwiLFxuICAgIGFkZFRvVG9vbGJveDogXCJBZGljaW9uYXIgw6BzIGZlcnJhbWVudGFzXCIsXG4gICAgZGVsZXRlUGFuZWw6IFwiUmVtb3ZlciBQYWluZWxcIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCJSZW1vdmVyIFBlcmd1bnRhXCIsXG4gICAgY29udmVydFRvOiBcIkNvbnZlcnRlciBwYXJhXCIsXG4gICAgZHJhZzogXCJBcnJhc3RhciBlbGVtZW50b1wiXG4gIH0sXG4gIC8vIFF1ZXN0aW9uIHR5cGVzXG4gIHF0OiB7XG4gICAgZGVmYXVsdDogXCJQYWRyw6NvXCIsXG4gICAgY2hlY2tib3g6IFwiQ2FpeGEgZGUgU2VsZcOnw6NvXCIsXG4gICAgY29tbWVudDogXCJDb21lbnTDoXJpb1wiLFxuICAgIGltYWdlcGlja2VyOiBcIlNlbGVjaW9uYWRvciBkZSBpbWFnZW1cIixcbiAgICByYW5raW5nOiBcIkNsYXNzaWZpY2HDp8Ojb1wiLFxuICAgIGltYWdlOiBcIkltYWdlbVwiLFxuICAgIGRyb3Bkb3duOiBcIkxpc3RhXCIsXG4gICAgdGFnYm94OiBcIlRhZ3NcIixcbiAgICBmaWxlOiBcIkFycXVpdm9cIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBtYXRyaXg6IFwiTWF0cml6IChvcMOnw6NvIMO6bmljYSlcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCJNYXRyaXogKG3Dumx0aXBsYXMgb3DDp8O1ZXMpXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCJNYXRyaXogKGxpbmhhcyBkaW7Dom1pY2FzKVwiLFxuICAgIG11bHRpcGxldGV4dDogXCJUZXh0byBtw7psdGlwbG9cIixcbiAgICBwYW5lbDogXCJQYWluZWxcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwiUGFpbmVsIChwYWluw6lpcyBkaW7Dom1pY29zKVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwiR3J1cG8gZGUgT3DDp8O1ZXNcIixcbiAgICByYXRpbmc6IFwiQXZhbGlhw6fDo29cIixcbiAgICB0ZXh0OiBcIlRleHRvIMO6bmljb1wiLFxuICAgIGJvb2xlYW46IFwiQm9sZWFub1wiLFxuICAgIGV4cHJlc3Npb246IFwiRXhwcmVzc8Ojb1wiLFxuICAgIHNpZ25hdHVyZXBhZDogXCJDYWl4YSBkZSBBc3NpbmF0dXJhXCIsXG4gICAgYnV0dG9uZ3JvdXA6IFwiR3J1cG8gZGUgQm90w7Vlc1wiXG4gIH0sXG4gIC8vIFN0cmluZ3MgaW4gU3VydmV5SlMgQ3JlYXRvclxuICBlZDoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwiUGFkcsOjbyAoezB9KVwiLFxuICAgIHN1cnZleTogXCJQZXNxdWlzYVwiLFxuICAgIHNldHRpbmdzOiBcIkNvbmZpZ3VyYcOnw7VlcyBkYSBQZXNxdWlzYVwiLFxuICAgIHNldHRpbmdzVG9vbHRpcDogXCJDb25maWd1cmHDp8O1ZXNcIixcbiAgICBzdXJ2ZXlTZXR0aW5nczogXCJDb25maWd1cmHDp8O1ZXMgZGUgUXVlc3Rpb27DoXJpb3NcIixcbiAgICBzdXJ2ZXlTZXR0aW5nc1Rvb2x0aXA6IFwiQ29uZmlndXJhw6fDtWVzXCIsXG4gICAgc2hvd1BhbmVsOiBcIk1vc3RyYXIgUGFpbmVsXCIsXG4gICAgaGlkZVBhbmVsOiBcIkVzY29uZGVyIFBhaW5lbFwiLFxuICAgIHByZXZTZWxlY3RlZDogXCJTZWxlY2lvbmFyIGFudGVyaW9yXCIsXG4gICAgbmV4dFNlbGVjdGVkOiBcIlNlbGVjaW9uYXIgcHLDs3hpbW9cIixcbiAgICBzdXJ2ZXlUeXBlTmFtZTogXCJRdWVzdGlvbsOhcmlvXCIsXG4gICAgcGFnZVR5cGVOYW1lOiBcIlDDoWdpbmFcIixcbiAgICBwYW5lbFR5cGVOYW1lOiBcIlBhaW5lbFwiLFxuICAgIHF1ZXN0aW9uVHlwZU5hbWU6IFwiUXVlc3TDo29cIixcbiAgICBjb2x1bW5UeXBlTmFtZTogXCJDb2x1bmFcIixcbiAgICBhZGROZXdQYWdlOiBcIkFkaWNpb25hciBOb3ZhIFDDoWdpbmFcIixcbiAgICBtb3ZlUmlnaHQ6IFwiTW92ZXIgcGFyYSBkaXJlaXRhXCIsXG4gICAgbW92ZUxlZnQ6IFwiTW92ZXIgcGFyYSBlc3F1ZXJkYVwiLFxuICAgIGRlbGV0ZVBhZ2U6IFwiUmVtb3ZlciBQw6FnaW5hXCIsXG4gICAgZWRpdFBhZ2U6IFwiRWRpdGFyIFDDoWdpbmFcIixcbiAgICBlZGl0OiBcIkVkaXRhclwiLFxuICAgIG5ld1BhZ2VOYW1lOiBcInDDoWdpbmFcIixcbiAgICBuZXdRdWVzdGlvbk5hbWU6IFwicGVyZ3VudGFcIixcbiAgICBuZXdQYW5lbE5hbWU6IFwicGFpbmVsXCIsXG4gICAgbmV3VGV4dEl0ZW1OYW1lOiBcInRleHRvXCIsXG4gICAgdGVzdFN1cnZleTogXCJUZXN0YXIgcGVzcXVpc2FcIixcbiAgICBkZWZhdWx0VjJUaGVtZTogXCJQYWRyw6NvXCIsXG4gICAgbW9kZXJuVGhlbWU6IFwiTW9kZXJub1wiLFxuICAgIGRlZmF1bHRUaGVtZTogXCJUZW1hIFByw6ktZGVmaW5pZG9cIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwiVGVzdGFyIHF1ZXN0aW9uw6FyaW8gbm92YW1lbnRlXCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIlRhbWFuaG8gZG8gcXVlc3Rpb27DoXJpbzogXCIsXG4gICAgbmF2aWdhdGVUb01zZzogXCJUZW0gcXVlIG5hdmVnYXIgcGFyYVwiLFxuICAgIGxvZ2ljOiBcIkzDs2dpY2FcIixcbiAgICBlbWJlZFN1cnZleTogXCJJbmNvcnBvcmFyIFF1ZXN0aW9uw6FyaW9cIixcbiAgICB0cmFuc2xhdGlvbjogXCJUcmFkdcOnw6NvXCIsXG4gICAgc2F2ZVN1cnZleTogXCJTYWx2YXIgUXVlc3Rpb27DoXJpb1wiLFxuICAgIHNhdmVTdXJ2ZXlUb29sdGlwOiBcIkdyYXZhciBRdWVzdGlvbsOhcmlvXCIsXG4gICAgZGVzaWduZXI6IFwiRGVzaWduZXJcIixcbiAgICBqc29uRWRpdG9yOiBcIkVkaXRvciBkZSBKU09OXCIsXG4gICAganNvbkhpZGVFcnJvcnM6IFwiRXNjb25kZXIgZXJyb3NcIixcbiAgICBqc29uU2hvd0Vycm9yczogXCJNb3N0cmFyIGVycm9zXCIsXG4gICAgdW5kbzogXCJEZXNmYXplclwiLFxuICAgIHJlZG86IFwiUmVmYXplclwiLFxuICAgIHVuZG9Ub29sdGlwOiBcIkRlc2ZhemVyIMO6bHRpbWEgYWx0ZXJhw6fDo29cIixcbiAgICByZWRvVG9vbHRpcDogXCJSZWZhemVyIGEgYWx0ZXJhw6fDo29cIixcbiAgICBzaG93TW9yZUNob2ljZXM6IFwiTW9zdHJhciBtYWlzXCIsXG4gICAgc2hvd0xlc3NDaG9pY2VzOiBcIk1vc3RyYXIgbWVub3NcIixcbiAgICBjb3B5OiBcIkNvcGlhclwiLFxuICAgIGN1dDogXCJDb3J0YXJcIixcbiAgICBwYXN0ZTogXCJDb2xhclwiLFxuICAgIGNvcHlUb29sdGlwOiBcIkNvcGlhciBzZWxlw6fDo28gcGFyYSBhIMOhcmVhIGRlIHRyYW5zZmVyw6puY2lhXCIsXG4gICAgY3V0VG9vbHRpcDogXCJDb3J0YXIgc2VsZcOnw6NvIHBhcmEgYSDDoXJlYSBkZSB0cmFuc2ZlcsOqbmNpYVwiLFxuICAgIHBhc3RlVG9vbHRpcDogXCJDb2xhciBkYSDDoXJlYSBkZSB0cmFuc2ZlcsOqbmNpYVwiLFxuICAgIG9wdGlvbnM6IFwiT3DDp8O1ZXNcIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCJHZXJhciBKU09OIHbDoWxpZG9cIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJHZXJhciBKU09OIGxlZ8OtdmVsXCIsXG4gICAgdG9vbGJveDogXCJGZXJyYW1lbnRhc1wiLFxuICAgIFwicHJvcGVydHktZ3JpZFwiOiBcIlByb3ByaWVkYWRlc1wiLFxuICAgIHByb3BlcnR5R3JpZEZpbHRlcmVkVGV4dFBsYWNlaG9sZGVyOiBcIkVzY3JldmEgcGFyYSBwZXNxdWlzYXIuLi5cIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcIkdlcmFsXCIsXG4gICAgdG9vbGJveENob2ljZUNhdGVnb3J5OiBcIlF1ZXN0w7VlcyBkZSBFc2NvbGhhXCIsXG4gICAgdG9vbGJveFRleHRDYXRlZ29yeTogXCJRdWVzdMO1ZXMgZGUgVGV4dG9cIixcbiAgICB0b29sYm94Q29udGFpbmVyc0NhdGVnb3J5OiBcIsOBcmVhc1wiLFxuICAgIHRvb2xib3hNYXRyaXhDYXRlZ29yeTogXCJRdWVzdMO1ZXMgZW0gTWF0cml6XCIsXG4gICAgdG9vbGJveE1pc2NDYXRlZ29yeTogXCJEaXZlcnNvc1wiLFxuICAgIGNvcnJlY3RKU09OOiBcIlBvciBmYXZvciBjb3JyaWphIG8gSlNPTi5cIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcIlJlc3VsdGFkbyBkYSBwZXNxdWlzYTogXCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIkNvbW8gVGFiZWxhXCIsXG4gICAgc3VydmV5UmVzdWx0c0pzb246IFwiQ29tbyBKU09OXCIsXG4gICAgcmVzdWx0c1RpdGxlOiBcIlTDrXR1bG8gZGEgUGVyZ3VudGFcIixcbiAgICByZXN1bHRzTmFtZTogXCJOb21lIGRhIFBlcmd1bnRhXCIsXG4gICAgcmVzdWx0c1ZhbHVlOiBcIlZhbG9yIGRhIFJlc3Bvc3RhXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCJNb3N0cmFyIFZhbG9yXCIsXG4gICAgbW9kaWZpZWQ6IFwiTW9kaWZpY2Fkb1wiLFxuICAgIHNhdmluZzogXCJBIGdyYXZhclwiLFxuICAgIHNhdmVkOiBcIkdyYXZhZG9cIixcbiAgICBwcm9wZXJ0eUVkaXRvckVycm9yOiBcIkVycm9cIixcbiAgICBzYXZlRXJyb3I6IFwiRXJybyEgQ29udGXDumRvIGRvIGVkaXRvciBuw6NvIGZvaSBzYWx2by5cIixcbiAgICB0cmFuc2xhdGlvblByb3BlcnR5R3JpZFRpdGxlOiBcIkNvbmZpZ3VyYcOnw7VlcyBkZSBJZGlvbWFcIixcbiAgICB0cmFuc2xhdGlvbkxhbmd1YWdlczogXCJJZGlvbWFzXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCJTZWxlY2lvbmUgbyBpZGlvbWEgcGFyYSB0cmFkdXppclwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFN0cmluZ3M6IFwiTW9zdHJhciB0b2RvcyBvcyB0ZXh0b3NcIixcbiAgICB0cmFuc2xhdGlvblNob3dVc2VkU3RyaW5nc09ubHk6IFwiQXBlbmFzIHRleHRvcyB1dGlsaXphZG9zXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsUGFnZXM6IFwiTW9zdHJhciB0b2RhcyBww6FnaW5hc1wiLFxuICAgIHRyYW5zbGF0aW9uTm9TdHJpbmdzOiBcIk5lbmh1bSB0ZXh0byBwYXJhIHRyYWR1emlyLiBQb3IgZmF2b3IsIGFsdGVyZSBvIGZpbHRyby5cIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcIkV4cG9ydGFyIHBhcmEgQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25JbXBvcnRGcm9tU0NWQnV0dG9uOiBcIkltcG9ydGFyIGRlIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDogXCJDb21iaW5hciB7MH0gY29tIG8gaWRpb21hIHBhZHLDo29cIixcbiAgICB0cmFuc2xhdGlvblBsYWNlSG9sZGVyOiBcIlRyYWR1w6fDo28uLi5cIixcbiAgICBib2xkOiBcIk5lZ3JpdG9cIixcbiAgICBpdGFsaWM6IFwiSXTDoWxpY29cIixcbiAgICB1bmRlcmxpbmU6IFwiU3VibGluaGFkb1wiLFxuICAgIGFkZE5ld1F1ZXN0aW9uOiBcIkFkaWNpb25hciBRdWVzdMOjb1wiLFxuICAgIHNlbGVjdFBhZ2U6IFwiU2VsZWNpb25hciBww6FnaW5hLi4uXCIsXG4gICAgaHRtbFBsYWNlSG9sZGVyOiBcIk8gY29udGXDumRvIEhUTUwgZmljYXLDoSBhcXVpLlwiLFxuICAgIHBhbmVsUGxhY2VIb2xkZXI6IFwiQXJyYXN0ZSB1bWEgcXVlc3TDo28gZGEgY2FpeGEgZGUgZmVycmFtZW50YXMgYXF1aS5cIixcbiAgICBzdXJ2ZXlQbGFjZUhvbGRlcjogXCJPIHF1ZXN0aW9uw6FyaW8gZXN0w6EgdmF6aW8uIEFycmFzdGUgdW0gZWxlbWVudG8gZGEgY2FpeGEgZGUgZmVycmFtZW50YXMgb3UgY2xpcXVlIG5vIGJvdMOjbyBhYmFpeG8uXCIsXG4gICAgYWRkTmV3VHlwZVF1ZXN0aW9uOiBcIkFkaWNpb25hciB7MH1cIiwgLy97MH0gaXMgbG9jYWxpemFibGUgcXVlc3Rpb24gdHlwZVxuICAgIGNob29zZUxvZ29QbGFjZWhvbGRlcjogXCJbTE9HT11cIixcbiAgICAvLyBhdXRvOiBcImF1dG9cIixcbiAgICBsZzoge1xuICAgICAgYWRkTmV3SXRlbTogXCJBZGljaW9uYXIgbm92YSByZWdyYVwiLFxuICAgICAgZW1wdHlfdGFiOiBcIkNyaWUgdW1hIHJlZ3JhIHBhcmEgcGVyc29uYWxpemFyIG8gZmx1eG8gZG8gcXVlc3Rpb27DoXJpby5cIixcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eU5hbWU6IFwiTW9zdHJhciAoZXNjb25kZXIpIHDDoWdpbmFcIixcbiAgICAgIHBhZ2VfZW5hYmxlTmFtZTogXCJBdGl2YXIgKGRlc2F0aXZhcikgcMOhZ2luYVwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eU5hbWU6IFwiTW9zdHJhciAoZXNjb25kZXIpIHBhaW5lbFwiLFxuICAgICAgcGFuZWxfZW5hYmxlTmFtZTogXCJBdGl2YXIgKGRlc2F0aXZhcikgcGFpbmVsXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCJNb3N0cmFyIChlc2NvbmRlcikgcXVlc3TDo29cIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZU5hbWU6IFwiQXRpdmFyIChkZXNhdGl2YXIpIHF1ZXN0w6NvXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlTmFtZTogXCJUb3JuYXIgYSBwZXJndW50YSBvYnJpZ2F0w7NyaWFcIixcbiAgICAgIGNvbHVtbl92aXNpYmlsaXR5TmFtZTogXCJNb3N0cmFyIChlc2NvbmRlcikgY29sdW5hXCIsXG4gICAgICBjb2x1bW5fZW5hYmxlTmFtZTogXCJBdGl2YXIgKGRlc2F0aXZhcikgY29sdW5hXCIsXG4gICAgICBjb2x1bW5fcmVxdWlyZU5hbWU6IFwiVG9ybmFyIGEgY29sdW5hIG9icmlnYXTDs3JpYVwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZU5hbWU6IFwiQ29tcGxldGFyIHF1ZXN0aW9uw6FyaW9cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVOYW1lOiBcIkRlZmluaXIgcmVzcG9zdGFcIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlTmFtZTogXCJDb3BpYXIgcmVzcG9zdGFcIixcbiAgICAgIHRyaWdnZXJfc2tpcE5hbWU6IFwiUHVsYXIgcGFyYSBhIHBlcmd1bnRhXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lOiBcIkV4ZWN1dGFyIGV4cHJlc3PDo29cIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbk5hbWU6IFwiRGVmaW5pciBtYXJjYcOnw6NvIGRlIHDDoWdpbmEgZGUgXFxcIlF1ZXN0aW9uw6FyaW8gQ29tcGxldG9cXFwiXCIsXG4gICAgICBwYWdlX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjogXCJUb3JuZSBhIHDDoWdpbmEgdmlzw612ZWwgcXVhbmRvIGEgZXhwcmVzc8OjbyBsw7NnaWNhIGVzdGl2ZXIgYXRpdmEuIENhc28gY29udHLDoXJpbywgbWFudGVuaGEtbyBpbnZpc8OtdmVsLlwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eURlc2NyaXB0aW9uOiBcIlRvcm5lIG8gcGFpbmVsIHZpc8OtdmVsIHF1YW5kbyBhIGV4cHJlc3PDo28gbMOzZ2ljYSBlc3RpdmVyIGF0aXZhLiBDYXNvIGNvbnRyw6FyaW8sIG1hbnRlbmhhLW8gaW52aXPDrXZlbC5cIixcbiAgICAgIHBhbmVsX2VuYWJsZURlc2NyaXB0aW9uOiBcIkZhw6dhIGNvbSBxdWUgbyBwYWluZWwgZSB0b2RvcyBvcyBlbGVtZW50b3MgZGVudHJvIGRlbGUgc2VqYW0gYXRpdm9zIHF1YW5kbyBhIGV4cHJlc3PDo28gbMOzZ2ljYSBlc3RpdmVyIGF0aXZhLiBDYXNvIGNvbnRyw6FyaW8sIG1hbnRlbmhhLW8gaW52aXPDrXZlbC5cIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjogXCJUb3JuZSBhIHBlcmd1bnRhIHZpc8OtdmVsIHF1YW5kbyBhIGV4cHJlc3PDo28gbMOzZ2ljYSBlc3RpdmVyIGF0aXZhLiBDYXNvIGNvbnRyw6FyaW8sIG1hbnRlbmhhLWEgaW52aXPDrXZlbC5cIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uOiBcIkF0aXZlIGEgcGVyZ3VudGEgcXVhbmRvIGEgZXhwcmVzc8OjbyBsw7NnaWNhIGVzdGl2ZXIgYXRpdmEuIENhc28gY29udHLDoXJpbywgbWFudGVuaGEtYSBpbnZpc8OtdmVsLlwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZURlc2NyaXB0aW9uOiBcIkEgcGVyZ3VudGEgdG9ybmEtc2Ugb2JyaWdhdMOzcmlhIHF1YW5kbyBhIGV4cHJlc3PDo28gbMOzZ2ljYSBlc3RpdmVyIGF0aXZhLlwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZURlc2NyaXB0aW9uOiBcIlF1YW5kbyBhIGV4cHJlc3PDo28gbMOzZ2ljYSBlc3RpdmVyIGF0aXZhLCBhIHBlc3F1aXNhIHNlcsOhIGNvbmNsdcOtZGEgZSBvIHV0aWxpemFkb3IgdmVyw6EgYSAnUMOhZ2luYSBkZSBBZ3JhZGVjaW1lbnRvJy5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjogXCJRdWFuZG8gb3MgdmFsb3JlcyBkYSBwZXJndW50YSwgcXVlIHPDo28gdXNhZG9zIG5hIGV4cHJlc3PDo28gbMOzZ2ljYSwgc8OjbyBhbHRlcmFkb3MgZSBhIGV4cHJlc3PDo28gbMOzZ2ljYSBmaWNhIGF0aXZhLCBlbnTDo28gbyB2YWxvciDDqSBkZWZpbmlkbyBwYXJhIGEgcGVyZ3VudGEgc2VsZWNjaW9uYWRhLlwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVEZXNjcmlwdGlvbjogXCJRdWFuZG8gb3MgdmFsb3JlcyBkYXMgcGVyZ3VudGFzLCBxdWUgc8OjbyB1c2Fkb3MgbmEgZXhwcmVzc8OjbyBsw7NnaWNhLCBzw6NvIGFsdGVyYWRvcyBlIGEgZXhwcmVzc8OjbyBsw7NnaWNhIGZpY2EgYXRpdmEsIGVudMOjbyBvIHZhbG9yIGRlIHVtYSBwZXJndW50YSBzZWxlY2Npb25hZGEgw6kgY29waWFkbyBwYXJhIG91dHJhIHBlcmd1bnRhIHNlbGVjY2lvbmFkYS5cIixcbiAgICAgIHRyaWdnZXJfc2tpcERlc2NyaXB0aW9uOiBcIlF1YW5kbyBhIGV4cHJlc3PDo28gbMOzZ2ljYSB2b2x0YSBhIHNlciBhdGl2YSwgZW50w6NvIG8gcXVlc3Rpb27DoXJpbyBzYWx0YSBwYXJhIC8gZm9jYWxpemEgYSBwZXJndW50YSBzZWxlY2Npb25hZGEuXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25EZXNjcmlwdGlvbjogXCJRdWFuZG8gYSBleHByZXNzw6NvIGzDs2dpY2Egdm9sdGEgYSBzZXIgYXRpdmFhLCBhIGV4cHJlc3PDo28gcGVyc29uYWxpemFkYSDDqSBleGVjdXRhZGEuIE9wY2lvbmFsbWVudGUsIHBvZGUgZGVmaW5pciBvIHJlc3VsdGFkbyBkZXN0YSBleHByZXNzw6NvIHBhcmEgYSBwZXJndW50YSBzZWxlY2Npb25hZGFcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkRlc2NyaXB0aW9uOiBcIlNlIGEgZXhwcmVzc8OjbyBsw7NnaWNhIGVzdGl2ZXIgYXRpdmEsIGVudMOjbyBvIHRleHRvIHBhZHLDo28gcGFyYSBhICdQw6FnaW5hIGRlIGFncmFkZWNpbWVudG8nIMOpIGFsdGVyYWRvIHBhcmEgYSBkYWRhLlwiLFxuICAgICAgaXRlbUV4cHJlc3Npb25UZXh0OiBcIlF1YW5kbyBhIGV4cHJlc3PDo286ICd7MH0nIHZvbHRhIGEgZmljYXIgYXRpdmFcIiwgLy97MH0gLSB0aGUgZXhwcmVzc2lvblxuICAgICAgaXRlbUVtcHR5RXhwcmVzc2lvblRleHQ6IFwiTm92YSByZWdyYVwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5VGV4dDogXCJ0b3JuYXIgYSBww6FnaW5hIHswfSB2aXPDrXZlbFwiLCAvL3swfSBwYWdlIG5hbWVcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlUZXh0OiBcInRvcm5hciBwYWluZWwgezB9IHZpc8OtdmVsXCIsIC8vezB9IHBhbmVsIG5hbWVcbiAgICAgIHBhbmVsX2VuYWJsZVRleHQ6IFwidG9ybmFyIHBhaW5lbCB7MH0gYXRpdmFcIiwgLy97MH0gcGFuZWwgbmFtZVxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eVRleHQ6IFwidG9ybmEgcXVlc3TDo28gezB9IHZpc8OtdmVsXCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZVRleHQ6IFwidG9ybmFyIHF1ZXN0w6NvIHswfSBhdGl2YVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlVGV4dDogXCJ0b3JuYXIgcXVlc3TDo28gezB9IG9icmlnYXTDs3JpYVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBjb2x1bW5fdmlzaWJpbGl0eVRleHQ6IFwidG9ybmFyIGNvbHVuYSB7MH0gZGEgcXVlc3TDo28gezF9IHZpc8OtdmVsXCIsIC8vezB9IGNvbHVtbiBuYW1lLCB7MX0gcXVlc3Rpb24gbmFtZVxuICAgICAgY29sdW1uX2VuYWJsZVRleHQ6IFwidG9ybmFyIGNvbHVuYSB7MH0gZGEgcXVlc3TDo28gezF9IGF0aXZhXCIsIC8vezB9IGNvbHVtbiBuYW1lLCB7MX0gcXVlc3Rpb24gbmFtZVxuICAgICAgY29sdW1uX3JlcXVpcmVUZXh0OiBcInRvcm5hIGNvbHVuYSB7MH0gZGEgcXVlc3TDo28gezF9IG9icmlnYXTDs3JpYVwiLCAvL3swfSBjb2x1bW4gbmFtZSwgezF9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHRyaWdnZXJfY29tcGxldGVUZXh0OiBcIm8gcXVlc3Rpb27DoXJpbyBmaWNhIGNvbXBsZXRvXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCJDb2xvY2FyIGVtIHF1ZXN0w6NvOiB7MH0gdmFsb3IgezF9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWUsIHsxfSBzZXRWYWx1ZVxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVUZXh0OiBcIkNvcGlhciBhIHF1ZXN0w6NvOiB7MH0gdmFsb3IgZGEgcXVlc3TDo28gezF9XCIsIC8vezB9IGFuZCB7MX0gcXVlc3Rpb24gbmFtZXNcbiAgICAgIHRyaWdnZXJfc2tpcFRleHQ6IFwicHVsYXIgcGFyYSBhIHF1ZXN0w6NvIGRvIHF1ZXN0aW9uw6FyaW8gezB9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQxOiBcImV4ZWN1dGFyIGV4cHJlc3PDo286ICd7MH0nXCIsIC8vezB9IHRoZSBleHByZXNzaW9uXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MjogXCIgZSBjb2xvY2FyIHNldSByZXN1bHRhZG8gZW0gcXVlc3TDo286IHswfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25UZXh0OiBcIm1vc3RyYXIgdGV4dG8gY29zdHVtaXphZG8gcGFyYSBhICdww6FnaW5hIGRlIGFncmFkZWNpbWVudG8nLlwiLFxuICAgICAgc2hvd0FsbFF1ZXN0aW9uczogXCJUb2RhcyBhcyBRdWVzdMO1ZXNcIixcbiAgICAgIHNob3dBbGxBY3Rpb25UeXBlczogXCJUb2RvcyBvcyBUaXBvcyBkZSBRdWVzdMO1ZXNcIixcbiAgICAgIGNvbmRpdGlvbnM6IFwiQ29uZGnDp8OjbyjDtWVzKVwiLFxuICAgICAgYWN0aW9uczogXCJBw6fDo28ow7VlcylcIixcbiAgICAgIGV4cHJlc3Npb25FZGl0b3JUaXRsZTogXCJEZWZpbmlyIGNvbmRpw6fDo28ow7VlcylcIixcbiAgICAgIGFjdGlvbnNFZGl0b3JUaXRsZTogXCJEZWZpbmlyIGHDp8OjbyjDtWVzKVwiLFxuICAgICAgZGVsZXRlQWN0aW9uOiBcIkVsaW1pbmFyIEHDp8Ojb1wiLFxuICAgICAgYWRkTmV3QWN0aW9uOiBcIkFkaWNpb25hciBBw6fDo29cIixcbiAgICAgIHNlbGVjdGVkQWN0aW9uQ2FwdGlvbjogXCJTZWxlY2lvbmFyIEHDp8Ojby4uLlwiLFxuICAgICAgZXhwcmVzc2lvbkludmFsaWQ6IFwiQSBleHByZXNzw6NvIGzDs2dpY2EgZXN0w6EgdmF6aWEgb3Ugw6kgaW52w6FsaWRhLiBQb3IgZmF2b3IgY29ycmlqYS5cIixcbiAgICAgIG5vQWN0aW9uRXJyb3I6IFwiUG9yIGZhdm9yLCBhZGljaW9uZSBwZWxvIG1lbm9zIHVtYSBhw6fDo28uXCIsXG4gICAgICBhY3Rpb25JbnZhbGlkOiBcIlBvciBmYXZvciwgY29ycmlqYSBvcyBwcm9ibGVtYXMgbmFzIHN1YShzKSBhw6fDo28ow7VlcykuXCIsXG4gICAgICBleHByZXNzaW9uU2V0dXA6IFwiY29uZmlndXJhw6fDo28gZGUgZXhwcmVzc8Ojb1wiLFxuICAgICAgYWN0aW9uc1NldHVwOiBcImNvbmZpZ3VyYcOnw6NvIGRlIGHDp8Ojb1wiXG4gICAgfVxuICB9LFxuICAvLyBQcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwiQXBsaWNhclwiLFxuICAgIG9rOiBcIk9LXCIsXG4gICAgc2F2ZTogXCJHdWFyZGFyXCIsXG4gICAgY2xlYXI6IFwiTGltcGFyXCIsXG4gICAgc2F2ZVRvb2x0aXA6IFwiR3VhcmRhclwiLFxuICAgIGNhbmNlbDogXCJDYW5jZWxhclwiLFxuICAgIHNldDogXCJEZWZpbmlyXCIsXG4gICAgcmVzZXQ6IFwiTGltcGFyXCIsXG4gICAgY2hhbmdlOiBcIk1vZGlmaWNhclwiLFxuICAgIHJlZnJlc2g6IFwiUmVjYXJyZWdhclwiLFxuICAgIGNsb3NlOiBcIkZlY2hhclwiLFxuICAgIGRlbGV0ZTogXCJBcGFnYXJcIixcbiAgICBhZGQ6IFwiQWRpY2lvbmFyXCIsXG4gICAgYWRkTmV3OiBcIkFkaWNpb25hciBOb3ZvXCIsXG4gICAgYWRkSXRlbTogXCJDbGlxdWUgcGFyYSBhZGljaW9uYXIgbyBpdGVtLi4uXCIsXG4gICAgcmVtb3ZlSXRlbTogXCJDbGlxdWUgcGFyYSByZW1vdmVyIG8gaXRlbS4uLlwiLFxuICAgIGRyYWdJdGVtOiBcIkFycmFzdGUgbyBpdGVtXCIsXG4gICAgYWRkT3RoZXI6IFwiT3V0cm9cIixcbiAgICBhZGRTZWxlY3RBbGw6IFwiU2VsZWNpb25hciBUb2Rvc1wiLFxuICAgIGFkZE5vbmU6IFwiTmVuaHVtXCIsXG4gICAgcmVtb3ZlQWxsOiBcIlJlbW92ZXIgVG9kb3NcIixcbiAgICBlZGl0OiBcIkVkaXRhclwiLFxuICAgIGJhY2s6IFwiUmV0b3JuYXIgc2VtIGd1YXJkYXJcIixcbiAgICBiYWNrVG9vbHRpcDogXCJTYWlyIHNlbSBndWFyZGFyXCIsXG4gICAgc2F2ZUFuZEJhY2s6IFwiU2FpciBlIHJldG9ybmFyXCIsXG4gICAgc2F2ZUFuZEJhY2tUb29sdGlwOiBcIkd1YXJkYXIgZSByZXRvcm5hclwiLFxuICAgIGRvbmVFZGl0aW5nOiBcIlRlcm1pbmFyXCIsXG4gICAgZWRpdENob2ljZXM6IFwiRWRpdGFyIE9ww6fDtWVzXCIsXG4gICAgc2hvd0Nob2ljZXM6IFwiTW9zdHJhciBPcMOnw7Vlc1wiLFxuICAgIG1vdmU6IFwiTW92ZXJcIixcbiAgICBlbXB0eTogXCI8dmF6aW8+XCIsXG4gICAgZW1wdHlWYWx1ZTogXCJWYWxvciB2YXppb1wiLFxuICAgIGZhc3RFbnRyeTogXCJFbnRyYWRhIFLDoXBpZGFcIixcbiAgICBmYXN0RW50cnlOb25VbmlxdWVFcnJvcjogXCJWYWxvciAnezB9JyBuw6NvIMOpIG8gw7puaWNvXCIsXG4gICAgZmFzdEVudHJ5Q2hvaWNlc0NvdW50RXJyb3I6IFwiTGltaXRlIG8gbsO6bWVybyBkZSBpdGVucyBkZSB7MH0gYSB7MX1cIixcbiAgICBmYXN0RW50cnlQbGFjZWhvbGRlcjogXCJQb2RlIGRlZmluaXIgZGFkb3Mgbm8gc2VndWludGUgZm9ybWF0bzpcXG52YWxvcjF8dGV4dG9cXG52YWxvcjJcIixcbiAgICBmb3JtRW50cnk6IFwiRW50cmFkYSBjb20gZm9ybXVsw6FyaW9cIixcbiAgICB0ZXN0U2VydmljZTogXCJUZXN0YXIgbyBzZXJ2acOnb1wiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcIlNlbGVjaW9uZSBvIGVsZW1lbnRvXCIsXG4gICAgY29uZGl0aW9uQWN0aW9uRW1wdHk6IFwiU2VsZWNpb25lIGEgYcOnw6NvXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UXVlc3Rpb246IFwiU2VsZWNpb25hciBwZXJndW50YS4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhZ2U6IFwiU2VsZWNpb25lIGEgcMOhZ2luYS4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhbmVsOiBcIlNlbGVjaW9uZSBvIHBhaW5lbC4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCJQb3IgZmF2b3IsIGVudHJlL3NlbGVjaW9uZSBvIHZhbG9yXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6IFwiUG9yIGZhdm9yIGluZm9ybWUgdW1hIGV4cHJlc3PDo28gYm9sZWFuYS4gRWxhIGRldmUgcmV0b3JuYXIgdmVyZGFkZWlybyBwYXJhIG1hbnRlciBhIHBlcmd1bnRhL3DDoWdpbmEgdmlzw612ZWwuIFBvciBleGVtcGxvOiB7wrRwZXJndW50YTF9ID0gJ3ZhbG9yMScgb3IgKHtwZXJndW50YTJ9ID0gMyBhbmQge3Blcmd1bnRhM30gPCA1KVwiLFxuICAgIGFjZUVkaXRvckhlbHA6IFwiUHJlc3Npb25lIGN0cmwrc3BhY2UgcGFyYSBhdXRvY29tcGxldGFyXCIsXG4gICAgYWNlRWRpdG9yUm93VGl0bGU6IFwiTGluaGEgYXR1YWxcIixcbiAgICBhY2VFZGl0b3JQYW5lbFRpdGxlOiBcIlBhaW5lbCBhdHVhbFwiLFxuICAgIHNob3dNb3JlOiBcIlBhcmEgbWFpcyBkZXRhbGhlcywgcG9yIGZhdm9yIHZpc2l0ZSBhIGRvY3VtZW50YcOnw6NvXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwiUGVyZ3VudGFzIGRpc3BvbsOtdmVpczpcIixcbiAgICBjZWxsc0VtcHR5Um93c0NvbHVtbnM6IFwiRGV2ZSBoYXZlciBhbyBtZW5vcyB1bWEgY29sdW5hIG91IGxpbmhhXCIsXG4gICAgc2hvd1ByZXZpZXdCZWZvcmVDb21wbGV0ZTogXCJWaXN1YWxpemUgYXMgcmVzcG9zdGFzIGFudGVzIGRlIHN1Ym1ldGVyIG8gcXVlc3Rpb27DoXJpb1wiLFxuICAgIHByb3BlcnR5SXNFbXB0eTogXCJQb3IgZmF2b3IgaW5mb3JtZSB1bSB2YWxvciBuYSBwcm9wcmllZGFkZVwiLFxuICAgIHByb3BlcnR5SXNOb1VuaXF1ZTogXCJJbnNpcmEgdW0gdmFsb3IgZXhjbHVzaXZvLlwiLFxuICAgIHByb3BlcnR5TmFtZUlzTm90VW5pcXVlOiBcIkluc2lyYSB1bSBub21lIMO6bmljb1wiLFxuICAgIGxpc3RJc0VtcHR5OiBcIk5lbmh1bSBpdGVtIGZvaSBhZGljaW9uYWRvIGFpbmRhXCIsXG4gICAgXCJsaXN0SXNFbXB0eUBjaG9pY2VzXCI6IFwiTmVuaHVtYSBvcMOnw6NvIGZvaSBhZGljaW9uYWRhIGFpbmRhXCIsXG4gICAgXCJhZGROZXdAY2hvaWNlc1wiOiBcIkFkaWNpb25hciB1bWEgb3DDp8Ojb1wiLFxuICAgIGV4cHJlc3Npb25Jc0VtcHR5OiBcIkV4cHJlc3PDo28gZXN0w6EgdmF6aWFcIixcbiAgICB2YWx1ZTogXCJWYWxvclwiLFxuICAgIHRleHQ6IFwiVGV4dG9cIixcbiAgICByb3dpZDogXCJJRCBkYSBMaW5oYVwiLFxuICAgIGltYWdlTGluazogXCJMaW5rIGRhIEltYWdlbVwiLFxuICAgIGNvbHVtbkVkaXQ6IFwiRWRpdGFyIGNvbHVuYTogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwiRWRpdGFyIGl0ZW06IHswfVwiLFxuICAgIHVybDogXCJVUkxcIixcbiAgICBwYXRoOiBcIkNhbWluaG9cIixcbiAgICB2YWx1ZU5hbWU6IFwiTm9tZSBkbyB2YWxvclwiLFxuICAgIGNob2ljZXNieXVybDoge1xuICAgICAgdmFsdWVOYW1lOiBcIk9idGVuaGEgdmFsb3JlcyBkbyBzZWd1aW50ZSBjYW1wbyBKU09OXCJcbiAgICB9LFxuICAgIHRpdGxlTmFtZTogXCJOb21lIGRvIHTDrXR1bG9cIixcbiAgICBpbWFnZUxpbmtOYW1lOiBcIk9idGVuaGEgVVJMcyBkZSBpbWFnZW0gZG8gc2VndWludGUgY2FtcG8gSlNPTlwiLFxuICAgIGFsbG93RW1wdHlSZXNwb25zZTogXCJQZXJtaXRpciByZXNwb3N0YSB2YXppYVwiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwiVMOtdHVsb1wiLFxuICAgIHN1cnZleVRpdGxlUGxhY2Vob2xkZXI6IFwiVMOtdHVsbyBkbyBRdWVzdGlvbsOhcmlvXCIsXG4gICAgcGFnZVRpdGxlUGxhY2Vob2xkZXI6IFwiUMOhZ2luYSB7bnVtfVwiLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiRGVzY3Jpw6fDo29cIixcbiAgICBzdXJ2ZXlEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIkRlc2NyacOnw6NvXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiRGVzY3Jpw6fDo29cIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIlRlbSBpdGVtICdvdXRyb3MnXCIsXG4gICAgb3RoZXJUZXh0OiBcIlRleHRvIGRvIGl0ZW0gJ291dHJvcydcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiUGVybWl0aXIgYSBvcMOnw6NvIE5lbmh1bVwiLFxuICAgIG5vbmVUZXh0OiBcInRleHRvIGRlIG9ww6fDo28gTmVuaHVtXCIsXG4gICAgc2hvd1NlbGVjdEFsbEl0ZW06IFwiUGVybWl0aXIgYSBvcMOnw6NvIFNlbGVjaW9uYXIgdHVkb1wiLFxuICAgIHNlbGVjdEFsbFRleHQ6IFwidGV4dG8gZGUgb3DDp8OjbyBTZWxlY2lvbmFyIFRvZG9zXCIsXG4gICAgY2hvaWNlc01pbjogXCJWYWxvciBtw61uaW1vIHBhcmEgaXRlbnMgZ2VyYWRvcyBhdXRvbWF0aWNhbWVudGVcIixcbiAgICBjaG9pY2VzTWF4OiBcIlZhbG9yIG3DoXhpbW8gcGFyYSBpdGVucyBnZXJhZG9zIGF1dG9tYXRpY2FtZW50ZVwiLFxuICAgIGNob2ljZXNTdGVwOiBcIkV0YXBhIHBhcmEgaXRlbnMgZ2VyYWRvcyBhdXRvbWF0aWNhbWVudGVcIixcbiAgICBuYW1lOiBcIk5vbWVcIixcbiAgICB0aXRsZTogXCJUw610dWxvXCIsXG4gICAgY2VsbFR5cGU6IFwiVGlwbyBkZSBjw6lsdWxhXCIsXG4gICAgY29sQ291bnQ6IFwiQ29udGFnZW0gZGUgY8OpbHVsYXNcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiU2VsZWNpb25lIGEgb3JkZW0gZGFzIGFsdGVybmF0aXZhc1wiLFxuICAgIHZpc2libGU6IFwiw4kgdmlzw612ZWw/XCIsXG4gICAgaXNSZXF1aXJlZDogXCLDiSBvYnJpZ2F0w7NyaW8/XCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJFeGlnaXIgcmVzcG9zdGEgcGFyYSB0b2RhcyBhcyBsaW5oYXNcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJcXFwiT2JyaWdhdMOzcmlvXFxcIiBtZW5zYWdlbSBkZSBlcnJvXCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCJDb21lw6dhIGNvbSB1bWEgbm92YSBsaW5oYT9cIixcbiAgICByb3dzOiBcIkNvbnRhZ2VtIGRlIGxpbmhhc1wiLFxuICAgIGNvbHM6IFwiQ29sdW5hc1wiLFxuICAgIHBsYWNlaG9sZGVyOiBcIlRleHRvIGRlIHJlZmVyw6puY2lhXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwiTW9zdHJhIHByw6ktdmlzdWFsaXphw6fDo28gZGUgaW1hZ2VtP1wiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJHcmF2YXIgY29udGXDumRvIGRlIGFycXVpdm8gbm8gcmVzdWx0YWRvIEpTT04gY29tbyB0ZXh0b1wiLFxuICAgIG1heFNpemU6IFwiVGFtYW5obyBtw6F4aW1vIGRlIGFycXVpdm8gZW0gYnl0ZXNcIixcbiAgICBpbWFnZUhlaWdodDogXCJBbHR1cmEgZGEgaW1hZ2VtXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJMYXJndXJhIGRhIGltYWdlbVwiLFxuICAgIHJvd0NvdW50OiBcIkNvbnRhZ2VtIGRlIGxpbmhhc1wiLFxuICAgIGNvbHVtbkxheW91dDogXCJMYXlvdXQgZGFzIGNvbHVuYXNcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJMb2NhbGl6YcOnw6NvIGRvIGJvdMOjbyBkZSBhZGljaW9uYXIgbGluaGFcIixcbiAgICBhZGRSb3dUZXh0OiBcIlRleHRvIGRvIGJvdMOjbyBwYXJhIGFkaWNpb25hciBsaW5oYXNcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlRleHRvIGRvIGJvdMOjbyBwYXJhIHJlbW92ZXIgbGluaGFzXCIsXG4gICAgcmF0ZU1pbjogXCJWYWxvciBtw61uaW1vIGRvIHZhbG9yXCIsXG4gICAgcmF0ZU1heDogXCJWYWxvciBtw6F4aW1vIGRvIHZhbG9yXCIsXG4gICAgcmF0ZVN0ZXA6IFwiRXRhcGEgZGUgdGF4YVwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJEZXNjcmnDp8OjbyBkZSBxdWFsaWZpY2HDp8OjbyBtw61uaW1hXCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcIkRlc2NyacOnw6NvIGRlIHF1YWxpZmljYcOnw6NvIG3DoXhpbWFcIixcbiAgICBpbnB1dFR5cGU6IFwiVGlwbyBkZSBlbnRyYWRhXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiVMOtdHVsbyBkZSBvcMOnw6NvXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlZhbG9yIHByw6ktZGVmaW5pZG9cIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwiVGV4dG8gcHLDqS1kZWZpbmlkbyBkYXMgY8OpbHVsYXNcIixcbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCJFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIHBlc3F1aXNhXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIkVkaXRhciBwZXJndW50YTogezB9XCIsXG4gICAgbWF4TGVuZ3RoOiBcIlRhbWFuaG8gbcOheGltb1wiLFxuICAgIGJ1aWxkRXhwcmVzc2lvbjogXCJDb25zdHJ1aXJcIixcbiAgICBlZGl0RXhwcmVzc2lvbjogXCJFZGl0YXJcIixcbiAgICBhbmQ6IFwiZVwiLFxuICAgIG9yOiBcIm91XCIsXG4gICAgcmVtb3ZlOiBcIlJlbW92ZXJcIixcbiAgICBhZGRDb25kaXRpb246IFwiQWRpY2lvbmFyIENvbmRpw6fDo29cIixcbiAgICBlbXB0eUxvZ2ljUG9wdXBNZXNzYWdlOiBcIlNlbGVjaW9uZSB1bWEgcGVyZ3VudGEgcGFyYSBjb21lw6dhciBhIGNvbmZpZ3VyYXIgYXMgY29uZGnDp8O1ZXMuXCIsXG4gICAgaWY6IFwiU2VcIixcbiAgICB0aGVuOiBcImVtIHNlZ3VpZGFcIixcbiAgICBzZXRUb05hbWU6IFwiUXVlc3TDo28gYWx2b1wiLFxuICAgIGZyb21OYW1lOiBcIlF1ZXN0w6NvIHBhcmEgY29waWFyIGEgcmVzcG9zdGEgZGVcIixcbiAgICBnb3RvTmFtZTogXCJRdWVzdMOjbyBwYXJhIHB1bGFyIHBhcmFcIixcbiAgICBydWxlSXNOb3RTZXQ6IFwiUmVncmEgZXN0w6EgaW5jb3JyZXRhXCIsXG4gICAgaW5jbHVkZUludG9SZXN1bHQ6IFwiSW5jbHVpciBub3MgcmVzdWx0YWRvcyBkYSBwZXNxdWlzYVwiLFxuICAgIHNob3dUaXRsZTogXCJNb3N0cmFyL29jdWx0YXIgdMOtdHVsb1wiLFxuICAgIGV4cGFuZENvbGxhcHNlVGl0bGU6IFwiRXhwYW5kaXIvY29udHJhaXIgdMOtdHVsb1wiLFxuICAgIGxvY2FsZTogXCJJZGlvbWEgcHLDqS1kZWZpbmlkb1wiLFxuICAgIHNpbXVsYXRvcjogXCJTZWxlY2lvbmUgbyB0aXBvIGRlIGRpc3Bvc2l0aXZvXCIsXG4gICAgbGFuZHNjYXBlT3JpZW50YXRpb246IFwiQWx0ZXJuYXIgcGFyYSBvcmllbnRhw6fDo28gcGFpc2FnZW1cIixcbiAgICBwb3J0cmFpdE9yaWVudGF0aW9uOiBcIkFsdHJhciBwYXJhIG9yaWVudGHDp8OjbyBkZSBtb2xkdXJhXCIsXG4gICAgbW9kZTogXCJNb2RvIChlZGl0w6F2ZWwvc29tZW50ZSBsZWl0dXJhKVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIkxpbXBhciB2YWxvcmVzIGludmlzw612ZWlzXCIsXG4gICAgY29va2llTmFtZTogXCJOb21lIGRvIGNvb2tpZSAocGFyYSBkZXNhdGl2YXIgcm9kZSBhIHBlc3F1aXNhIGR1YXMgdmV6ZXMgbG9jYWxtZW50ZSlcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCJFbnZpYXIgcmVzdWx0YWRvIGRhIHBlc3F1aXNhIG5hIHDDoWdpbmEgc2VndWludGVcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJBcm1hemVuYXIgJ291dHJvcycgdmFsb3JlcyBlbSB1bSBjYW1wbyBzZXBhcmFkb1wiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIk1vc3RyYXIgdMOtdHVsbyBkYSBww6FnaW5hXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIk1vc3RyYXIgbsO6bWVybyBkYSBww6FnaW5hXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIlRleHRvIHBhcmEgYm90w6NvIGRlIHDDoWdpbmEgYW50ZXJpb3JcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiVGV4dG8gcGFyYSBib3TDo28gZGUgcMOhZ2luYSBzZWd1aW50ZVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJUZXh0byBwYXJhIGJvdMOjbyBkZSBjb21wbGV0YXJcIixcbiAgICBwcmV2aWV3VGV4dDogXCJQcsOpLXZpc3VhbGl6YXIgbyB0ZXh0byBkbyBib3TDo28gUmVzcG9uZGVyXCIsXG4gICAgZWRpdFRleHQ6IFwiRWRpdGFyIG8gdGV4dG8gZG8gYm90w6NvIFJlc3BvbmRlciBBbnN3ZXIgYnV0dG9uIHRleHRcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiVGV4dG8gcGFyYSBib3TDo28gZGUgY29tZcOnYXJcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwiTW9zdHJhciBib3TDtWVzIGRlIG5hdmVnYcOnw6NvIChuYXZlZ2HDp8OjbyBwYWRyw6NvKVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIk1vc3RyYXIgYm90w6NvIGRlIHZvbHRhciAodXN1w6FyaW8gcG9kZSByZXRvcm5hciBwYXJhIHDDoWdpbmEgYW50ZXJpb3IpXCIsXG4gICAgZmlyc3RQYWdlSXNTdGFydGVkOiBcIlByaW1laXJhIHDDoWdpbmEgZGEgcGVzcXVpc2Egw6kgYSBww6FnaW5hIGRlIGluw61jaW8uXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiTW9zdHJhciBhIHDDoWdpbmEgZGUgY29uY2x1c8OjbyBubyBmaW5hbCAoY29tcGxldGVkSHRtbClcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcIkFvIHJlc3BvbmRlciB0b2RhcyBhcyBwZXJndW50YXMsIGlyIGF1dG9tYXRpY2FtZW50ZSBwYXJhIGEgcHLDs3hpbWEgcMOhZ2luYVwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJNb3N0cmFyIGJhcnJhIGRlIHByb2dyZXNzb1wiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJMb2NhbGl6YcOnw6NvIGRvIHTDrXR1bG8gZGEgcGVyZ3VudGFcIixcbiAgICByZXF1aXJlZFRleHQ6IFwiU8OtbWJvbG8ocykgcGFyYSBwZXJndW50YXMgb2JyaWdhdMOzcmlhc1wiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCJJbmRleCBkYXMgcGVyZ3VudGFzICgxLCAyIG9yICdBJywgJ2EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiTW9zdHJhciBuw7ptZXJvIGRhcyBwZXJndW50YXNcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwiVGVtcGxhdGUgZG8gdMOtdHVsbyBkYSBwZXJndW50YSwgcHLDqS1kZWZpbmlkbyDDqTogJ3tub30uIHtvYnJpZ2F0w7NyaW99IHt0w610dWxvfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiTG9jYWxpemHDp8OjbyBkbyBlcnJvIGRhIHBlcmd1bnRhXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIkZvY2FyIGF1dG9tYXRpY2FtZW50ZSBuYSBwcmltZWlyYSBwZXJndW50YSBhbyB0cm9jYXIgZGUgcMOhZ2luYVwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIk9yZGVuYXIgZWxlbWVudG9zIG5hIHDDoWdpbmFcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiVGVtcG8gbcOheGltbyBwYXJhIGZpbmFsaXphciBwZXNxdWlzYVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwiVGVtcG8gbcOheGltbyBwYXJhIGZpbmFsaXphciBww6FnaW5hIGRhIHBlc3F1aXNhXCIsXG4gICAgcGFnZToge1xuICAgICAgbWF4VGltZVRvRmluaXNoOiBcIlRlbXBvIGxpbWl0ZSBwYXJhIGZpbmFsaXphciBlc3RhIHDDoWdpbmEgKGVtIHNlZ3VuZG9zKVwiLFxuICAgIH0sXG4gICAgcXVlc3Rpb246IHtcbiAgICAgIHBhZ2U6IFwiUMOhZ2luYSBwcmluY2lwYWxcIixcbiAgICB9LFxuICAgIHNob3dUaW1lclBhbmVsOiBcIk1vc3RyYXIgbyBwYWluZWwgZGUgY3JvbsO0bWV0cm9cIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwiTW9zdHJhciBwYWluZWwgZGUgbW9kbyBkZSBjcm9uw7RtZXRyb1wiLFxuICAgIHJlbmRlck1vZGU6IFwiTW9kbyBkZSByZW5kZXJpemHDp8Ojb1wiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiUGVybWl0aXIgYWRpY2lvbmFyIHBhaW5lbFwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwiUGVybWl0aXIgcmVtb3ZlciBwYWluZWxcIixcbiAgICBub0VudHJpZXNUZXh0OiBcIkVudHJhZGFzIGRlIHRleHRvIHZhemlhc1wiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJUZXh0byBkZSBhZGljaW9uYXIgcGFpbmVsXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIlRleHRvIGRlIHJlbW92ZXIgcGFpbmVsXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIk1vc3RyYXIgdG9kb3MgZWxlbWVudG9zIGVtIHVtYSBww6FnaW5hXCIsXG4gICAgaHRtbDogXCJIVE1MIG1hcmt1cFwiLFxuICAgIGV4cHJlc3Npb246IFwiRXhwcmVzc8Ojb1wiLFxuICAgIHNldFZhbHVlOiBcIlJlc3BvbmRlclwiLFxuICAgIGRhdGFGb3JtYXQ6IFwiRm9ybWF0byBkZSBpbWFnZW1cIixcbiAgICBhbGxvd0FkZFJvd3M6IFwiUGVybWl0aXIgYWRpY2lvbmFyIGxpbmhhc1wiLFxuICAgIGFsbG93UmVtb3ZlUm93czogXCJQZXJtaXRpciByZW1vdmVyIGxpbmhhc1wiLFxuICAgIGFsbG93Um93c0RyYWdBbmREcm9wOiBcIlBlcm1pdGlyIGFycmFzdGFyIGUgc29sdGFyIGxpbmhhXCIsXG4gICAgcmVzcG9uc2l2ZUltYWdlU2l6ZUhlbHA6IFwiTsOjbyBzZSBhcGxpY2Egc2UgZXNwZWNpZmljYXIgYSBsYXJndXJhIG91IGFsdHVyYSBleGF0YSBkYSBpbWFnZW0uXCIsXG4gICAgbWluSW1hZ2VXaWR0aDogXCJMYXJndXJhIG3DrW5pbWEgZGEgaW1hZ2VtXCIsXG4gICAgbWF4SW1hZ2VXaWR0aDogXCJMYXJndXJhIG3DoXhpbWEgZGEgaW1hZ2VtXCIsXG4gICAgbWluSW1hZ2VIZWlnaHQ6IFwiQWx0dXJhIG3DrW5pbWEgZGEgaW1hZ2VtXCIsXG4gICAgbWF4SW1hZ2VIZWlnaHQ6IFwiQWx0dXJhIG3DoXhpbWEgZGEgaW1hZ2VtXCIsXG4gICAgbWluVmFsdWU6IFwiVmFsb3IgbcOtbmltb1wiLFxuICAgIG1heFZhbHVlOiBcIlZhbG9yIG3DoXhpbW8uXCIsXG4gICAgbWluTGVuZ3RoOiBcIkNvbXByaW1lbnRvIG3DrW5pbW8gKGVtIGNhcmFjdGVyZXMpXCIsXG4gICAgYWxsb3dEaWdpdHM6IFwiUGVybWl0aXIgZMOtZ2l0b3NcIixcbiAgICBtaW5Db3VudDogXCJDb250YWdlbSBtw61uaW1hXCIsXG4gICAgbWF4Q291bnQ6IFwiQ29udGFnZW0gbcOheGltYVwiLFxuICAgIHJlZ2V4OiBcIkV4cHJlc3PDo28gcmVndWxhclwiLFxuICAgIHN1cnZleXZhbGlkYXRvcjoge1xuICAgICAgdGV4dDogXCJNZW5zYWdlbSBkZSBlcnJvXCIsXG4gICAgICBleHByZXNzaW9uOiBcIkV4cHJlc3PDo28gZGUgdmFsaWRhw6fDo29cIlxuICAgIH0sXG4gICAgdG90YWxUZXh0OiBcIlRleHRvIHRvdGFsIGRhIGxpbmhhXCIsXG4gICAgdG90YWxUeXBlOiBcIlRpcG8gdG90YWxcIixcbiAgICB0b3RhbEV4cHJlc3Npb246IFwiRXhwcmVzc8OjbyB0b3RhbFwiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcIlRvdGFsIHZhbHVlIGRpc3BsYXkgc3R5bGVcIixcbiAgICB0b3RhbEN1cnJlbmN5OiBcIk1vZWRhXCIsXG4gICAgdG90YWxGb3JtYXQ6IFwiU3RyaW5nIGZvcm1hdGFkYVwiLFxuICAgIGxvZ286IFwiTG9nbyAoVVJMIG91IHN0cmluZyBjb2RpZmljYWRhIGVtIGJhc2U2NClcIixcbiAgICBxdWVzdGlvbnNPblBhZ2VNb2RlOiBcIkVzdHJ1dHVyYSBkZSBxdWVzdGlvbsOhcmlvXCIsXG4gICAgbWF4VGV4dExlbmd0aDogXCJUYW1hbmhvIG3DoXhpbW8gZGEgcmVzcG9zdGEgKGVtIGNhcmFjdGVyZXMpXCIsXG4gICAgbWF4T3RoZXJzTGVuZ3RoOiBcIlRhbWFuaG8gbcOheGltbyBkbyBjb21lbnTDoXJpbyAoZW0gY2FyYWN0ZXJlcylcIixcbiAgICBhdXRvR3Jvd0NvbW1lbnQ6IFwiRXhwYW5kYSBhdXRvbWF0aWNhbWVudGUgYSDDoXJlYSBkZSBjb21lbnTDoXJpb3MsIHNlIG5lY2Vzc8OhcmlvXCIsXG4gICAgdGV4dFVwZGF0ZU1vZGU6IFwiQXR1YWxpemFyIHZhbG9yIGRhIHBlcmd1bnRhIGRlIHRleHRvXCIsXG4gICAgZm9jdXNPbkZpcnN0RXJyb3I6IFwiRGVmaW5hIG8gZm9jbyBuYSBwcmltZWlyYSByZXNwb3N0YSBpbnbDoWxpZGFcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwiRXhlY3V0YXIgdmFsaWRhw6fDo29cIixcbiAgICBuYXZpZ2F0ZVRvVXJsOiBcIk5hdmVnYXIgcGFyYSBVUkxcIixcbiAgICBuYXZpZ2F0ZVRvVXJsT25Db25kaXRpb246IFwiVVJMIERpbmFtaWNvXCIsXG4gICAgY29tcGxldGVkQmVmb3JlSHRtbDogXCJNYXJjYcOnw6NvIHBhcmEgbW9zdHJhciBzZSBvIHV0aWxpemFkb3IgasOhIHByZWVuY2hldSBlc3RlIHF1ZXN0aW9uw6FyaW9cIixcbiAgICBjb21wbGV0ZWRIdG1sOiBcIk1hcmNhw6fDo28gZGUgcMOhZ2luYSBjb21wbGV0YSBkbyBxdWVzdGlvbsOhcmlvXCIsXG4gICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uOiBcIk1hcmNhw6fDo28gZGUgcMOhZ2luYSBjb21wbGV0YSBkZSBxdWVzdGlvbsOhcmlvIGRpbsOibWljb1wiLFxuICAgIGxvYWRpbmdIdG1sOiBcIk1hcmNhw6fDo28gcGFyYSBtb3N0cmFyIGVucXVhbnRvIG8gbW9kZWxvIGRlIHF1ZXN0aW9uw6FyaW8gZXN0w6EgY2FycmVnYW5kb1wiLFxuICAgIGNvbW1lbnRUZXh0OiBcIlRleHRvIGRhIMOhcmVhIGRlIGNvbWVudMOhcmlvc1wiLFxuICAgIGF1dG9jb21wbGV0ZTogXCJUaXBvIGRlIHByZWVuY2hpbWVudG8gYXV0b23DoXRpY29cIixcbiAgICBsYWJlbFRydWU6IFwiXFxcIlZlcmRhZGVpcm9cXFwiIHLDs3R1bG9cIixcbiAgICBsYWJlbEZhbHNlOiBcIlxcXCJGYWxzb1xcXCIgcsOzdHVsb1wiLFxuICAgIGFsbG93Q2xlYXI6IFwiTW9zdHJhciBvIGJvdMOjbyBMaW1wYXJcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwiRXN0aWxvIGRlIGV4aWJpw6fDo28gZGUgdmFsb3JcIixcbiAgICBmb3JtYXQ6IFwiU3RyaW5nIGZvcm1hdGFkYVwiLFxuICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogXCJNw6F4aW1vIGRlIGTDrWdpdG9zIGZyYWNpb27DoXJpb3NcIixcbiAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IFwiTcOtbmltbyBkZSBkw61naXRvcyBmcmFjaW9uw6FyaW9zXCIsXG4gICAgdXNlR3JvdXBpbmc6IFwiRGlzcGxheSBncm91cGluZyBzZXBhcmF0b3JzXCIsXG4gICAgYWxsb3dNdWx0aXBsZTogXCJQZXJtaXRpciB2w6FyaW9zIGFycXVpdm9zXCIsXG4gICAgYWxsb3dJbWFnZXNQcmV2aWV3OiBcIlByw6ktdmlzdWFsaXphciBpbWFnZW5zXCIsXG4gICAgYWNjZXB0ZWRUeXBlczogXCJUaXBvcyBkZSBhcnF1aXZvIGFjZWl0ZXNcIixcbiAgICB3YWl0Rm9yVXBsb2FkOiBcIkFndWFyZGUgYSBjb25jbHVzw6NvIGRvIHVwbG9hZFwiLFxuICAgIG5lZWRDb25maXJtUmVtb3ZlRmlsZTogXCJDb25maXJtZSBhIGVsaW1pbmHDp8OjbyBkbyBmaWNoZWlyb1wiLFxuICAgIGRldGFpbFBhbmVsTW9kZTogXCJMb2NhbGl6YcOnw6NvIGRvIHBhaW5lbCBkZSBkZXRhbGhlc1wiLFxuICAgIG1pblJvd0NvdW50OiBcIkNvbnRhZ2VtIG3DrW5pbWEgZGUgbGluaGFzXCIsXG4gICAgbWF4Um93Q291bnQ6IFwiQ29udGFnZW0gbcOheGltYSBkZSBsaW5oYXNcIixcbiAgICBjb25maXJtRGVsZXRlOiBcIkNvbmZpcm1lIGEgZWxpbWluYcOnw6NvIGRhIGxpbmhhXCIsXG4gICAgY29uZmlybURlbGV0ZVRleHQ6IFwiTWVuc2FnZW0gZGUgY29uZmlybWHDp8Ojb1wiLFxuICAgIHBhbmVsZHluYW1pYzoge1xuICAgICAgY29uZmlybURlbGV0ZTogXCJDb25maXJtZSBhIGVsaW1pbmHDp8OjbyBkbyBwYWluZWxcIlxuICAgIH0sXG4gICAgcGFuZWxDb3VudDogXCJDb250YWdlbSBpbmljaWFsIGRvIHBhaW5lbFwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwiQ29udGFnZW0gbcOtbmltYSBkZSBwYWluw6lpc1wiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwiQ29udGFnZW0gbcOheGltYSBkZSBwYWluw6lpc1wiLFxuICAgIHBhbmVsc1N0YXRlOiBcIkVzdGFkbyBkZSBleHBhbnPDo28gZG8gcGFpbmVsIGludGVybm9cIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcIk1vZGVsbyBkZSBkZXNjcmnDp8Ojb1wiLFxuICAgIHRlbXBsYXRlVGl0bGU6IFwiTW9kZWxvIGRlIHTDrXR1bG9cIixcbiAgICBwYW5lbFByZXZUZXh0OiBcIkRpY2EgZGUgZmVycmFtZW50YSBkbyBib3TDo28gZG8gcGFpbmVsIGFudGVyaW9yXCIsXG4gICAgcGFuZWxOZXh0VGV4dDogXCJEaWNhIGRlIGZlcnJhbWVudGEgZG8gYm90w6NvIGRvIHBhaW5lbCBzZWd1aW50ZVwiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwiTU9zdHJhciBiYXJyYSBkZSBwcm9ncmVzc29cIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwiTG9jYWxpemHDp8OjbyBkbyB0w610dWxvIGRhIHBlcmd1bnRhXCIsXG4gICAgcGFuZWxSZW1vdmVCdXR0b25Mb2NhdGlvbjogXCJSZW1vdmVyIGxvY2FsaXphw6fDo28gZG8gYm90w6NvIGRvIHBhaW5lbFwiLFxuICAgIGhpZGVJZlJvd3NFbXB0eTogXCJPY3VsdGUgYSBwZXJndW50YSBzZSBuw6NvIGhvdXZlciBsaW5oYXNcIixcbiAgICBoaWRlQ29sdW1uc0lmRW1wdHk6IFwiT2N1bHRhciBjb2x1bmFzIHNlIG7Do28gaG91dmVyIGxpbmhhc1wiLFxuICAgIHJhdGVWYWx1ZXM6IFwiVmFsb3JlcyBkZSB0YXhhIHBlcnNvbmFsaXphZG9zXCIsXG4gICAgaGlkZUlmQ2hvaWNlc0VtcHR5OiBcIk9jdWx0ZSBhIHBlcmd1bnRhIHNlIGVsYSBuw6NvIGNvbnRpdmVyIG9ww6fDtWVzXCIsXG4gICAgaGlkZU51bWJlcjogXCJPY3VsdGFyIG7Dum1lcm8gZGUgcXVlc3TDo29cIixcbiAgICBtaW5XaWR0aDogXCJMYXJndXJhIG3DrW5pbWEgKGVtIHZhbG9yZXMgYWNlaXRvcyBwZWxvIENTUylcIixcbiAgICBtYXhXaWR0aDogXCJMYXJndXJhIG3DoXhpbWEgKGVtIHZhbG9yZXMgYWNlaXRvcyBwZWxvIENTUylcIixcbiAgICB3aWR0aDogXCJMYXJndXJhIChlbSB2YWxvcmVzIGFjZWl0b3MgcGVsbyBDU1MpXCIsXG4gICAgc2hvd0hlYWRlcjogXCJNb3N0cmFyIGNhYmXDp2FsaG9zIGRlIGNvbHVuYVwiLFxuICAgIGhvcml6b250YWxTY3JvbGw6IFwiTW9zdHJhciBiYXJyYSBkZSBzY3JvbGwgaG9yaXpvbnRhbFwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcIkxhcmd1cmEgbcOtbmltYSBkYSBjb2x1bmEgKGVtIHZhbG9yZXMgYWNlaXRvcyBwZWxvIENTUylcIixcbiAgICByb3dUaXRsZVdpZHRoOiBcIkxhcmd1cmEgZG8gY2FiZcOnYWxobyBkYSBsaW5oYSAoZW0gdmFsb3JlcyBhY2VpdG9zIHBvciBDU1MpXCIsXG4gICAgdmFsdWVUcnVlOiBcIlxcXCJWZXJkYWRlaXJvXFxcIiB2YWxvclwiLFxuICAgIHZhbHVlRmFsc2U6IFwiXFxcIkZhbHNvXFxcIiB2YWxvclwiLFxuICAgIG1pbkVycm9yVGV4dDogXCJcXFwiTyB2YWxvciBlc3TDoSBhYmFpeG8gZG8gbcOtbmltb1xcXCIgbWVuc2FnZW0gZGUgZXJyb1wiLFxuICAgIG1heEVycm9yVGV4dDogXCJcXFwiTyB2YWxvciBleGNlZGUgbyBtw6F4aW1vXFxcIiBtZW5zYWdlbSBkZSBlcnJvXCIsXG4gICAgb3RoZXJFcnJvclRleHQ6IFwiXFxcIkNvbWVudMOhcmlvIHZhemlvXFxcIiBtZW5zYWdlbSBkZSBlcnJvXCIsXG4gICAga2V5RHVwbGljYXRpb25FcnJvcjogXCJcXFwiVmFsb3IgZGUgY2hhdmUgbsOjbyBleGNsdXNpdm9cXFwiIG1lbnNhZ2VtIGRlIGVycm9cIixcbiAgICBtYXhTZWxlY3RlZENob2ljZXM6IFwiTcOheGltbyBkZSBlc2NvbGhhcyBzZWxlY2lvbmFkYXNcIixcbiAgICBzaG93Q2xlYXJCdXR0b246IFwiTW9zdHJhciBvIGJvdMOjbyBMaW1wYXJcIixcbiAgICBzaG93TnVtYmVyOiBcIk1vc3RyYXIgbsO6bWVybyBkbyBwYWluZWxcIixcbiAgICBsb2dvV2lkdGg6IFwiTGFyZ3VyYSBkbyBsb2dvdGlwbyAoZW0gdmFsb3JlcyBhY2VpdG9zIHBlbG8gQ1NTKVwiLFxuICAgIGxvZ29IZWlnaHQ6IFwiQWx0dXJhIGRvIGxvZ290aXBvIChlbSB2YWxvcmVzIGFjZWl0b3MgcGVsbyBDU1MpXCIsXG4gICAgcmVhZE9ubHk6IFwiQXBlbmFzIHBhcmEgbGVpdHVyYVwiLFxuICAgIGVuYWJsZUlmOiBcIkVkaXTDoXZlbCBzZVwiLFxuICAgIGVtcHR5Um93c1RleHQ6IFwiXFxcIlNlbSBsaW5oYXNcXFwiIG1lbnNhZ2VtXCIsXG4gICAgc2l6ZTogXCJUYW1hbmhvIGRlIGVudHJhZGEgKGVtIGNhcmFjdGVyZXMpXCIsXG4gICAgc2VwYXJhdGVTcGVjaWFsQ2hvaWNlczogXCJFc2NvbGhhcyBlc3BlY2lhaXMgc2VwYXJhZGFzIChOZW5odW1hLCBPdXRyYSwgU2VsZWNpb25hciBUdWRvKVwiLFxuICAgIGNob2ljZXNGcm9tUXVlc3Rpb246IFwiQ29waWUgYXMgb3DDp8O1ZXMgZGEgc2VndWludGUgcGVyZ3VudGFcIixcbiAgICBjaG9pY2VzRnJvbVF1ZXN0aW9uTW9kZTogXCJRdWFpcyBhcyBvcMOnw7VlcyBwcmV0ZW5kZW0gY29waWFyP1wiLFxuICAgIHNob3dDb21tZW50QXJlYTogXCJNb3N0cmFyIGEgw6FyZWEgZGUgY29tZW50w6FyaW9zXCIsXG4gICAgY29tbWVudFBsYWNlaG9sZGVyOiBcIkVzcGHDp28gcmVzZXJ2YWRvIHBhcmEgw6FyZWEgZGUgY29tZW50w6FyaW9zXCIsXG4gICAgZGlzcGxheVJhdGVEZXNjcmlwdGlvbnNBc0V4dHJlbWVJdGVtczogXCJFeGliaXIgZGVzY3Jpw6fDtWVzIGRlIHRheGEgY29tbyB2YWxvcmVzIGV4dHJlbW9zXCIsXG4gICAgcm93c09yZGVyOiBcIk9yZGVtIGRhcyBsaW5oYXNcIixcbiAgICBjb2x1bW5zTGF5b3V0OiBcIkRpc3Bvc2nDp8OjbyBkYSBjb2x1bmFcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCJDb250YWdlbSBkZSBjb2x1bmFzIGFuaW5oYWRhc1wiLFxuICAgIHN0YXRlOiBcIkVzdGFkbyBkZSBleHBhbnPDo28gZG8gcGFpbmVsXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCJSZXNwb3N0YSBjb3JyZXRhXCIsXG4gICAgZGVmYXVsdFBhbmVsVmFsdWU6IFwiVmFsb3JlcyBwcsOpLWRlZmluaWRvc1wiLFxuICAgIGNlbGxzOiBcIlRleHRvcyBkZSBDw6lsdWxhXCIsXG4gICAga2V5TmFtZTogXCJDb2x1bmEgY2hhdmVcIixcbiAgICBpdGVtdmFsdWU6IHtcbiAgICAgIHRleHQ6IFwiVGV4dG8gYWx0ZXJuYXRpdm9cIlxuICAgIH0sXG4gICAgbG9nb1Bvc2l0aW9uOiBcIlBvc2nDp8OjbyBkbyBsb2dvXCIsXG4gICAgYWRkTG9nbzogXCJBZGljaW9uYXIgbG9nby4uLlwiLFxuICAgIGNoYW5nZUxvZ286IFwiQWx0ZXJhZSBsb2dvLi4uXCIsXG4gICAgbG9nb1Bvc2l0aW9uczoge1xuICAgICAgbm9uZTogXCJSZW1vdmVyIGxvZ29cIixcbiAgICAgIGxlZnQ6IFwiRXNxdWVyZGFcIixcbiAgICAgIHJpZ2h0OiBcIkRpcmVpdGFcIixcbiAgICAgIHRvcDogXCJObyBjYWJlw6dhbGhvXCIsXG4gICAgICBib3R0b206IFwiTm8gcm9kYXDDqVwiXG4gICAgfSxcbiAgICB0YWJzOiB7XG4gICAgICBnZW5lcmFsOiBcIkdlcmFsXCIsXG4gICAgICBmaWxlT3B0aW9uczogXCJPcMOnw7Vlc1wiLFxuICAgICAgaHRtbDogXCJFZGl0b3IgSHRtbFwiLFxuICAgICAgY29sdW1uczogXCJDb2x1bmFzXCIsXG4gICAgICByb3dzOiBcIkxpbmhhc1wiLFxuICAgICAgY2hvaWNlczogXCJPcMOnw7Vlc1wiLFxuICAgICAgaXRlbXM6IFwiSXRlbnNcIixcbiAgICAgIHZpc2libGVJZjogXCJWaXPDrXZlbCBzZVwiLFxuICAgICAgZW5hYmxlSWY6IFwiSGFiaWxpdGFyIHNlXCIsXG4gICAgICByZXF1aXJlZElmOiBcIk9icmlnYXTDs3JpbyBzZVwiLFxuICAgICAgcmF0ZVZhbHVlczogXCJWYWxvcmVzIGRlIHF1YWxpZmljYcOnw6NvXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwiT3DDp8O1ZXMgY29tIG9yaWdlbSBuYSBXZWJcIixcbiAgICAgIG1hdHJpeENob2ljZXM6IFwiT3DDp8O1ZXMgcGFkcsOjb1wiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwiRW50cmFkYXMgZGUgdGV4dG9cIixcbiAgICAgIG51bWJlcmluZzogXCJOdW1lcmHDp8Ojb1wiLFxuICAgICAgdmFsaWRhdG9yczogXCJWYWxpZGFkb3Jlc1wiLFxuICAgICAgbmF2aWdhdGlvbjogXCJOYXZlZ2HDp8Ojb1wiLFxuICAgICAgcXVlc3Rpb246IFwiUGVyZ3VudGFcIixcbiAgICAgIHBhZ2VzOiBcIlDDoWdpbmFzXCIsXG4gICAgICB0aW1lcjogXCJDcm9uw7RtZXRyby9RdWl6XCIsXG4gICAgICBjYWxjdWxhdGVkVmFsdWVzOiBcIlZhbG9yZXMgQ2FsY3VsYWRvc1wiLFxuICAgICAgdHJpZ2dlcnM6IFwiVHJpZ2dlcnNcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiVMOtdHVsbyBkbyB0ZW1wbGF0ZVwiLFxuICAgICAgdG90YWxzOiBcIlRvdGFpc1wiLFxuICAgICAgbG9naWM6IFwiTMOzZ2ljYVwiLFxuICAgICAgbGF5b3V0OiBcIkRpc3Bvc2nDp8Ojb1wiLFxuICAgICAgZGF0YTogXCJEYXRhXCIsXG4gICAgICB2YWxpZGF0aW9uOiBcIlZhbGlkYcOnw6NvXCIsXG4gICAgICBjZWxsczogXCJUZXh0byBkZSBDw6lsdWxhc1wiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcIlF1ZXN0aW9uw6FyaW8gQ29tcGxldG9cIixcbiAgICAgIGxvZ286IFwiTG9nbyBubyBUw610dWxvIGRlIFF1ZXN0aW9uw6FyaW9cIixcbiAgICAgIHNsaWRlcjogXCJTbGlkZXJcIixcbiAgICAgIGV4cHJlc3Npb246IFwiRXhwcmVzc8Ojb1wiLFxuICAgICAgb3RoZXJzOiBcIk91dHJvc1wiXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwiRWRpdGFyIHByb3ByaWVkYWRlICd7MH0nXCIsXG4gICAgaXRlbXM6IFwiSXRlbnNcIixcbiAgICBjaG9pY2VzVmlzaWJsZUlmOiBcIkVzY29saGFzIGVzdMOjbyB2aXNpdmVpcyBzZVwiLFxuICAgIGNob2ljZXNFbmFibGVJZjogXCJFc2NvbGhhcyBzw6NvIHNlbGVjaW9uw6F2ZWlzIHNlXCIsXG4gICAgY29sdW1uc0VuYWJsZUlmOiBcIkNvbHVuYXMgZXN0w6NvIHZpc2l2ZWlzIHNlXCIsXG4gICAgcm93c0VuYWJsZUlmOiBcIkxpbmhhcyBlc3TDo28gdmlzaXZlaXMgc2VcIixcbiAgICBpbmRlbnQ6IFwiQWRpY2lvbmFyIHJlY3Vvc1wiLFxuICAgIHBhbmVsOiB7XG4gICAgICBpbmRlbnQ6IFwiQWRpY2lvbmFyIHJlY3VvcyBleHRlcm5vc1wiXG4gICAgfSxcbiAgICBpbm5lckluZGVudDogXCJBZGljaW9uYXIgcmVjdW9zIGludGVybm9zXCIsXG4gICAgZGVmYXVsdFZhbHVlRnJvbUxhc3RSb3c6IFwiVXRpbGl6YXIgb3MgdmFsb3JlcyBwYWRyw6NvIGRhIMO6bHRpbWEgbGluaGFcIixcbiAgICBkZWZhdWx0VmFsdWVGcm9tTGFzdFBhbmVsOiBcIlV0aWxpemFyIG9zIHZhbG9yZXMgcGFkcsOjbyBkbyDDumx0aW1vIHBhaW5lbFwiLFxuICAgIGVudGVyTmV3VmFsdWU6IFwiUG9yIGZhdm9yLCBpbmZvcm1lIG8gdmFsb3IuXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwiTsOjbyBow6EgbmVuaHVtYSBwZXJndW50YSBuYSBwZXNxdWlzYS5cIixcbiAgICBjcmVhdGV0cmlnZ2VyOiBcIlBvciBmYXZvciwgY3JpZSB1bWEgY29uZGnDp8Ojb1wiLFxuICAgIHRpdGxlS2V5Ym9hcmRBZG9ybmVyVGlwOiBcIlByZXNzaW9uZSBvIGJvdMOjbyBlbnRlciBwYXJhIGVkaXRhclwiLFxuICAgIGtleWJvYXJkQWRvcm5lclRpcDogXCJQcmVzc2lvbmUgbyBib3TDo28gZW50ZXIgcGFyYSBlZGl0YXIgbyBpdGVtLCBwcmVzc2lvbmUgbyBib3TDo28gZGVsZXRlIHBhcmEgZXhjbHVpciBvIGl0ZW0sIHByZXNzaW9uZSBhbHQgbWFpcyBhIHNldGEgcGFyYSBjaW1hIG91IGEgc2V0YSBwYXJhIGJhaXhvIHBhcmEgbW92ZXIgbyBpdGVtXCIsXG4gICAgdHJpZ2dlck9uOiBcIkxpZ2FkbyBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCJUb3JuYXIgcMOhZ2luYXMgdmlzw612ZWlzOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCJUb3JuYXIgcGVyZ3VudGFzIHZpc8OtdmVzOlwiLFxuICAgIHRyaWdnZXJDb21wbGV0ZVRleHQ6IFwiQ29tcGxldGFyIGEgcGVzcXVpc2Egc2Ugb2J0aXZlciDDqnhpdG8uXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCJBIGNvbmRpw6fDo28gbsOjbyBlc3TDoSBkZWZpbmlkYVwiLFxuICAgIHRyaWdnZXJSdW5JZjogXCJFeGVjdXRhciBzZVwiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwiTXVkYXIgbyB2YWxvciBkZTogXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIkNvcGlhciB2YWxvciBkZTogXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb246IFwiUm9kYXIgZXNzYSBleHByZXNzw6NvOlwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCJwYXJhOiBcIixcbiAgICB0cmlnZ2VyR290b05hbWU6IFwiSXIgcGFyYSBhIHF1ZXN0w6NvXCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwiTsOjbyBjb2xvY2FyIGEgdmFyacOhdmVsIG5vIHJlc3VsdGFkbyBkYSBwZXNxdWlzYS5cIixcbiAgICB0cmlnZ2VyUnVuRXhwcmVzc2lvbkVtcHR5OiBcIkludHJvZHXDp8OjbyB1bWEgZXhwcmVzc8OjbyB2YWxpZGFcIixcbiAgICBlbXB0eUV4cHJlc3Npb25QbGFjZUhvbGRlcjogXCJFc2NyZXZhIGEgZXhwcmVzc8OjbyBhcXVpLi4uXCIsXG4gICAgbm9GaWxlOiBcIk5lbmh1bSBmaWNoZWlybyBzZWxlY2lvbmFkb1wiLFxuICAgIGNsZWFySWZJbnZpc2libGU6IFwiTGltcGUgbyB2YWxvciBzZSBhIHF1ZXN0w6NvIGZvciBlc2NvbmRpZGFcIixcbiAgICB2YWx1ZVByb3BlcnR5TmFtZTogXCJOb21lIGRhIHByb3ByaWVkYWRlIGRvIHZhbG9yXCIsXG4gICAgc2VhcmNoRW5hYmxlZDogXCJBdGl2YXIgcGVzcXVpc2FcIixcbiAgICBoaWRlU2VsZWN0ZWRJdGVtczogXCJFc2NvbGhlciBvcyBpdGVucyBzZWxlY2lvbmFkb3NcIixcbiAgICBzaWduYXR1cmVXaWR0aDogXCJMYXJndXJhIGRhIGFzc2luYXR1cmFcIixcbiAgICBzaWduYXR1cmVIZWlnaHQ6IFwiQWx0dXJhIGRhIGFzc2luYXR1cmFcIixcbiAgICB2ZXJ0aWNhbEFsaWduOiBcIkFsaW5oYW1lbnRvIHZlcnRpY2FsXCIsXG4gICAgYWx0ZXJuYXRlUm93czogXCJMaW5oYXMgYWx0ZXJuYXRpdmFzXCIsXG4gICAgY29sdW1uc1Zpc2libGVJZjogXCJDb2x1bmFzIGVzdMOjbyB2aXPDrXZlaXMgc2VcIixcbiAgICByb3dzVmlzaWJsZUlmOiBcIkFzIGxpbmhhcyBzw6NvIHZpc8OtdmVpcyBzZVwiLFxuICAgIG90aGVyUGxhY2Vob2xkZXI6IFwiRXNwYcOnbyByZXNlcnZhZG8gcGFyYSDDoXJlYSBkZSBjb21lbnTDoXJpb3NcIlxuICB9LFxuICAvLyBQcm9wZXJ0eSB2YWx1ZXNcbiAgcHY6IHtcbiAgICB0cnVlOiBcInZlcmRhZGVpcm9cIixcbiAgICBmYWxzZTogXCJmYWxzb1wiLFxuICAgIGluaGVyaXQ6IFwiaGVyZGFyXCIsXG4gICAgc2hvdzogXCJtb3N0cmFyXCIsXG4gICAgaGlkZTogXCJvY3VsdGFyXCIsXG4gICAgZGVmYXVsdDogXCJwYWRyw6NvXCIsXG4gICAgaW5pdGlhbDogXCJpbmljaWFsXCIsXG4gICAgcmFuZG9tOiBcImFsZWF0w7NyaW9cIixcbiAgICBjb2xsYXBzZWQ6IFwiY29sYXBzYWRvXCIsXG4gICAgZXhwYW5kZWQ6IFwiZXhwYW5kaWRvXCIsXG4gICAgbm9uZTogXCJuZW5odW1cIixcbiAgICBhc2M6IFwiYXNjZW5kZW50ZVwiLFxuICAgIGRlc2M6IFwiZGVzY2VuZGVudGVcIixcbiAgICBpbmRldGVybWluYXRlOiBcImluZGV0ZXJtaW5hZG9cIixcbiAgICBkZWNpbWFsOiBcImRlY2ltYWxcIixcbiAgICBjdXJyZW5jeTogXCJtb2VkYVwiLFxuICAgIHBlcmNlbnQ6IFwicGVyY2VudGFnZW1cIixcbiAgICBmaXJzdEV4cGFuZGVkOiBcInByaW1laXJvIGV4cGFuZGlkb1wiLFxuICAgIG9mZjogXCJkZXNsaWdhZG9cIixcbiAgICBvbnBhbmVsOiBcIkluaWNpYXIgZW0gY2FkYSBwYWluZWxcIixcbiAgICBvblBhbmVsOiBcIm5vIHBhaW5lbFwiLFxuICAgIG9uU3VydmV5OiBcIm5hIHBlc3F1aXNhXCIsXG4gICAgbGlzdDogXCJsaXN0YVwiLFxuICAgIHByb2dyZXNzVG9wOiBcInByb2dyZXNzbyBzdXBlcmlvclwiLFxuICAgIHByb2dyZXNzQm90dG9tOiBcInByb2dyZXNzbyBpbmZlcmlvclwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcInByb2dyZXNzbyBzdXBlcmlvciBpbmZlcmlvclwiLFxuICAgIGhvcml6b250YWw6IFwiaG9yaXpvbnRhbFwiLFxuICAgIHZlcnRpY2FsOiBcInZlcnRpY2FsXCIsXG4gICAgdG9wOiBcInN1cGVyaW9yXCIsXG4gICAgYm90dG9tOiBcImluZmVyaW9yXCIsXG4gICAgdG9wQm90dG9tOiBcInN1cGVyaW9yIGFuZCBib3R0b21cIixcbiAgICBib3RoOiBcIkFtYm9zXCIsXG4gICAgbGVmdDogXCJlc3F1ZXJkYVwiLFxuICAgIHJpZ2h0OiBcImRpcmVpdGFcIixcbiAgICBjb2xvcjogXCJjb3JcIixcbiAgICBkYXRlOiBcImRhdGFcIixcbiAgICBkYXRldGltZTogXCJkYXRhIGhvcmFcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwiZGF0YSBob3JhLWxvY2FsXCIsXG4gICAgZW1haWw6IFwiZS1tYWlsXCIsXG4gICAgbW9udGg6IFwibcOqc1wiLFxuICAgIG51bWJlcjogXCJuw7ptZXJvXCIsXG4gICAgcGFzc3dvcmQ6IFwicGFzc3dvcmRcIixcbiAgICByYW5nZTogXCJpbnRlcnZhbG9cIixcbiAgICB0ZWw6IFwidGVsXCIsXG4gICAgdGV4dDogXCJ0ZXh0b1wiLFxuICAgIHRpbWU6IFwidGVtcG9cIixcbiAgICB1cmw6IFwidXJsXCIsXG4gICAgd2VlazogXCJzZW1hbmFcIixcbiAgICBoaWRkZW46IFwib2N1bHRvXCIsXG4gICAgb246IFwibGlnYWRvXCIsXG4gICAgb25QYWdlOiBcIm5hIHDDoWdpbmFcIixcbiAgICBlZGl0OiBcImVkaXRhclwiLFxuICAgIGRpc3BsYXk6IFwibW9zdHJhclwiLFxuICAgIG9uQ29tcGxldGU6IFwiYW8gY29tcGxldGFyXCIsXG4gICAgb25IaWRkZW46IFwiYW8gb2N1bHRhclwiLFxuICAgIG9uSGlkZGVuQ29udGFpbmVyOiBcIlF1YW5kbyBhIHBlcmd1bnRhIG91IHNldSBwYWluZWwvcMOhZ2luYSBmaWNhIG9jdWx0b1wiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiB7XG4gICAgICBub25lOiBcIk51bmNhXCJcbiAgICB9LFxuICAgIGFsbDogXCJ0b2Rvc1wiLFxuICAgIHBhZ2U6IFwicMOhZ2luYVwiLFxuICAgIHN1cnZleTogXCJwZXNxdWlzYVwiLFxuICAgIG9uTmV4dFBhZ2U6IFwibmEgcMOhZ2luYSBzZWd1aW50ZVwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcImFvIG11ZGFyIHZhbG9yXCIsXG4gICAgb25WYWx1ZUNoYW5naW5nOiBcIkFudGVzIGRlIHVtYSByZXNwb3N0YSBzZXIgYWx0ZXJhZGFcIixcbiAgICBzdGFuZGFyZDogXCJFc3RydXR1cmEgb3JpZ2luYWxcIixcbiAgICBzaW5nbGVQYWdlOiBcIlRvZGFzIGFzIHBlcmd1bnRhcyBlbSB1bWEgw7puaWNhIHDDoWdpbmFcIixcbiAgICBxdWVzdGlvblBlclBhZ2U6IFwiQ2FkYSBwZXJndW50YSBlbSB1bWEgcMOhZ2luYSBpbmRpdmlkdWFsXCIsXG4gICAgbm9QcmV2aWV3OiBcIlNlbSBwcsOpLXZpc3VhbGl6YcOnw6NvXCIsXG4gICAgc2hvd0FsbFF1ZXN0aW9uczogXCJNb3N0cmFyIHRvZGFzIGFzIHF1ZXN0w7Vlc1wiLFxuICAgIHNob3dBbnN3ZXJlZFF1ZXN0aW9uczogXCJNb3N0cmFyIGFwZW5hcyBwZXJndW50YXMgcmVzcG9uZGlkYXNcIixcbiAgICBwYWdlczogXCJQw6FnaW5hcyBjb21wbGV0YXNcIixcbiAgICBxdWVzdGlvbnM6IFwiUXVlc3TDtWVzIHJlc3BvbmRpZGFzXCIsXG4gICAgcmVxdWlyZWRRdWVzdGlvbnM6IFwiUGVyZ3VudGFzIG9icmlnYXTDs3JpYXMgcmVzcG9uZGlkYXNcIixcbiAgICBjb3JyZWN0UXVlc3Rpb25zOiBcIlJlc3Bvc3RhcyB2w6FsaWRhc1wiLFxuICAgIGJ1dHRvbnM6IFwiUMOhZ2luYXMgY29uY2x1w61kYXMgKGludGVyZmFjZSBkbyBib3TDo28pXCIsXG4gICAgdW5kZXJJbnB1dDogXCJTb2IgYSBlbnRyYWRhXCIsXG4gICAgdW5kZXJUaXRsZTogXCJTb2IgbyB0w610dWxvXCIsXG4gICAgb25CbHVyOiBcIkVtIGRlc2ZvcXVlXCIsXG4gICAgb25UeXBpbmc6IFwiRW5xdWFudG8gZGlnaXRhXCIsXG4gICAgdW5kZXJSb3c6IFwiU29iIGEgbGluaGFcIixcbiAgICB1bmRlclJvd1NpbmdsZTogXCJTb2IgYSBsaW5oYSwgYXBlbmFzIHVtIHBhaW5lbCDDqSB2aXPDrXZlbFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczoge1xuICAgICAgbm9uZTogXCJFc2NvbmRpZG9cIlxuICAgIH0sXG4gICAgc2hvd1Byb2dyZXNzQmFyOiB7XG4gICAgICBvZmY6IFwiRXNjb25kaWRvXCJcbiAgICB9LFxuICAgIHNob3dUaW1lclBhbmVsOiB7XG4gICAgICBub25lOiBcIkVzY29uZGlkb1wiXG4gICAgfSxcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IHtcbiAgICAgIGFsbDogXCJBbWJvc1wiXG4gICAgfSxcbiAgICBkZXRhaWxQYW5lbE1vZGU6IHtcbiAgICAgIG5vbmU6IFwiRXNjb25kaWRvXCJcbiAgICB9LFxuICAgIGFkZFJvd0xvY2F0aW9uOiB7XG4gICAgICBkZWZhdWx0OiBcIkRlcGVuZGUgZG8gbGF5b3V0IGRhIG1hdHJpelwiXG4gICAgfSxcbiAgICBwYW5lbHNTdGF0ZToge1xuICAgICAgZGVmYXVsdDogXCJPcyB1dGlsaXphZG9yZXMgbsOjbyBwb2RlbSBleHBhbmRpciBvdSByZWNvbGhlciBwYWluw6lpc1wiLFxuICAgICAgY29sbGFwc2VkOiBcIlRvZG9zIG9zIHBhaW7DqWlzIGVzdMOjbyByZWNvbGhpZG9zXCIsXG4gICAgICBleHBhbmRlZDogXCJUb2RvcyBvcyBwYWluw6lpcyBlc3TDo28gZXNwYW5kaWRvc1wiXG4gICAgfSxcbiAgICB3aWR0aE1vZGU6IHtcbiAgICAgIGF1dG86IFwiQXV0b1wiLFxuICAgICAgc3RhdGljOiBcIkVzdMOhdGljb1wiLFxuICAgICAgcmVzcG9uc2l2ZTogXCJSZXNwb25zaXZvXCJcbiAgICB9LFxuICAgIGltYWdlRml0OiB7XG4gICAgICBub25lOiBcIk5lbmh1bVwiLFxuICAgICAgY29udGFpbjogXCJDb250ZXJcIixcbiAgICAgIGNvdmVyOiBcIkNvYnJpclwiLFxuICAgICAgZmlsbDogXCJQcmVlbmNoZXJcIlxuICAgIH0sXG4gICAgY29udGVudE1vZGU6IHtcbiAgICAgIGF1dG86IFwiQXV0b1wiLFxuICAgICAgaW1hZ2U6IFwiSW1hZ2VtXCIsXG4gICAgICB2aWRlbzogXCJWaWRlb1wiLFxuICAgICAgeW91dHViZTogXCJZb3VUdWJlXCJcbiAgICB9LFxuICAgIGRpc3BsYXlNb2RlOiB7XG4gICAgICBhdXRvOiBcIkF1dG9cIixcbiAgICAgIGJ1dHRvbnM6IFwiQm90w7Vlc1wiLFxuICAgICAgZHJvcGRvd246IFwiU3VzcGVuc29cIlxuICAgIH1cbiAgfSxcbiAgLy8gT3BlcmF0b3JzXG4gIG9wOiB7XG4gICAgZW1wdHk6IFwiZXN0w6EgdmF6aW9cIixcbiAgICBub3RlbXB0eTogXCJuw6NvIGVzdMOhIHZhemlvXCIsXG4gICAgZXF1YWw6IFwiw6kgaWd1YWxcIixcbiAgICBub3RlcXVhbDogXCJuw6NvIMOpIGlndWFsXCIsXG4gICAgY29udGFpbnM6IFwiY29udMOpbVwiLFxuICAgIG5vdGNvbnRhaW5zOiBcIm7Do28gY29udMOpbVwiLFxuICAgIGFueW9mOiBcIk5lbmh1bSBkZVwiLFxuICAgIGFsbG9mOiBcIlRvZG9zIGRlXCIsXG4gICAgZ3JlYXRlcjogXCJtYWlvclwiLFxuICAgIGxlc3M6IFwibWVub3JcIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCJtYWlvciBvdSBpZ3VhbFwiLFxuICAgIGxlc3NvcmVxdWFsOiBcIm1lbm9yIG91IGlndWFsXCIsXG4gICAgYW5kOiBcImVcIixcbiAgICBvcjogXCJvdVwiXG4gIH0sXG4gIC8vIEVtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiVXNhciB2ZXJzw6NvIEFuZ3VsYXJcIixcbiAgICBqcXVlcnk6IFwiVXNhciB2ZXJzw6NvIGpRdWVyeVwiLFxuICAgIGtub2Nrb3V0OiBcIlVzYXIgdmVyc8OjbyBLbm9ja291dFwiLFxuICAgIHJlYWN0OiBcIlVzYXIgdmVyc8OjbyBSZWFjdFwiLFxuICAgIHZ1ZTogXCJVc2FyIHZlcnPDo28gVnVlXCIsXG4gICAgYm9vdHN0cmFwOiBcIlBhcmEgZnJhbWV3b3JrIGJvb3RzdHJhcFwiLFxuICAgIG1vZGVybjogXCJUZW1hIG1vZGVybm9cIixcbiAgICBkZWZhdWx0OiBcIlRlbWEgcHLDqS1kZWZpbmlkb1wiLFxuICAgIG9yYW5nZTogXCJUZW1hIGxhcmFuamFcIixcbiAgICBkYXJrYmx1ZTogXCJUZW1hIGF6dWwgZXNjdXJvXCIsXG4gICAgZGFya3Jvc2U6IFwiVGVtYSByb3NhIGVzY3Vyb1wiLFxuICAgIHN0b25lOiBcIlRlbWEgcGVkcmFcIixcbiAgICB3aW50ZXI6IFwiVGVtYSBpbnZlcm5vXCIsXG4gICAgd2ludGVyc3RvbmU6IFwiVGVtYSBpbnZlcm5vLXBlZHJhXCIsXG4gICAgc2hvd09uUGFnZTogXCJNb3N0cmFyIHBlc3F1aXNhIGVtIHVtYSBww6FnaW5hXCIsXG4gICAgc2hvd0luV2luZG93OiBcIk1vc3RyYXIgcGVzcXVpc2EgZW0gdW1hIGphbmVsYVwiLFxuICAgIGxvYWRGcm9tU2VydmVyOiBcIkNhcnJlZ2FyIEpTT04gZGEgcGVzcXVpc2EgZGUgdW0gc2Vydmlkb3JcIixcbiAgICB0aXRsZVNjcmlwdDogXCJTY3JpcHRzIGUgZXN0aWxvc1wiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIlxuICB9LFxuICAvLyBQcmV2aWV3IChTdXJ2ZXkpXG4gIHRzOiB7XG4gICAgc2VsZWN0UGFnZTogXCJTZWxlY2lvbmUgYSBww6FnaW5hIHBhcmEgdGVzdGFyOlwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCJNb3N0cmFyIGVsZW1lbnRvcyBpbnZpc8OtdmVpc1wiLFxuICAgIGhpZGVJbnZpc2libGVFbGVtZW50czogXCJFc2NvbmRlciBlbGVtZW50b3MgaW52aXPDrXZlaXNcIlxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwiY29udGFkb3IgZGUgcmVzcG9zdGFzXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwiZS1tYWlsXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCJleHByZXNzw6NvXCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCJudW3DqXJpY29cIixcbiAgICByZWdleHZhbGlkYXRvcjogXCJyZWdleFwiLFxuICAgIHRleHR2YWxpZGF0b3I6IFwidGV4dG9cIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJjb21wbGV0YXIgcGVzcXVpc2FcIixcbiAgICBzZXR2YWx1ZXRyaWdnZXI6IFwiZGVmaW5pciB2YWxvclwiLFxuICAgIGNvcHl2YWx1ZXRyaWdnZXI6IFwiY29waWFyIHZhbG9yXCIsXG4gICAgc2tpcHRyaWdnZXI6IFwiU2FsdGFyIHBhcmEgcXVlc3TDo29cIixcbiAgICBydW5leHByZXNzaW9udHJpZ2dlcjogXCJyb2RhciBleHByZXNzw6NvXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwiYWx0ZXJhciB2aXNpYmlsaWRhZGVcIlxuICB9LFxuICBwZWhlbHA6IHtcbiAgICBjb29raWVOYW1lOiBcIk9zIGNvb2tpZXMgaW1wZWRlbSBxdWUgb3MgdXN1w6FyaW9zIHByZWVuY2hhbSBhIG1lc21hIHBlc3F1aXNhIGR1YXMgdmV6ZXMuXCIsXG4gICAgZm9ybWF0OiBcIlV0aWxpemFyIHswfSBjb21vIHVtIGVzcGHDp28gcmVzZXJ2YWRvIHBhcmEgbyB2YWxvciByZWFsLlwiLFxuICAgIHRvdGFsVGV4dDogXCJWaXPDrXZlbCBhcGVuYXMgcXVhbmRvIHBlbG8gbWVub3MgdW1hIGNvbHVuYSB0aXZlciB0aXBvIHRvdGFsIG91IGV4cHJlc3PDo28gdG90YWwuXCIsXG4gICAgYWNjZXB0ZWRUeXBlczogXCJDb25zdWx0ZSBvIFthY2VpdGFyXShodHRwczovL3d3dy53M3NjaG9vbHMuY29tL3RhZ3MvYXR0X2lucHV0X2FjY2VwdC5hc3ApIGRlc2NyacOnw6NvIGRvIGF0cmlidXRvIHBhcmEgbWFpcyBpbmZvcm1hw6fDtWVzLlwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcIkFwbGljw6F2ZWwgYXBlbmFzIGFvcyB0aXBvcyBkZSBjw6lsdWxhIEdydXBvIGRlIFLDoWRpbyBlIENhaXhhIGRlIFNlbGXDp8Ojby5cIixcbiAgICBhdXRvY29tcGxldGU6IFwiQ29uc3VsdGUgbyBbYXV0b2NvbXBsZXRvXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0F0dHJpYnV0ZXMvYXV0b2NvbXBsZXRlKSBkZXNjcmnDp8OjbyBkbyBhdHJpYnV0byBwYXJhIG1haXMgaW5mb3JtYcOnw7Vlcy5cIixcbiAgICB2YWx1ZU5hbWU6IFwiU2Ugdm9jw6ogbsOjbyBkZWZpbmlyIGVzdGEgcHJvcHJpZWRhZGUsIGEgcmVzcG9zdGEgc2Vyw6EgYXJtYXplbmFkYSBlbSB1bSBjYW1wbyBlc3BlY2lmaWNhZG8gcGVsYSBwcm9wcmllZGFkZSBOb21lLlwiLFxuICAgIGNob2ljZXNieXVybDoge1xuICAgICAgdmFsdWVOYW1lOiBcIk5vbWVcIlxuICAgIH0sXG4gICAga2V5TmFtZTogXCJTZSBhIGNvbHVuYSBlc3BlY2lmaWNhIGNvbnRpdmVyIHZhbG9yZXMgaWTDqm50aWNvcywgbyBxdWVzdGlvbsOhcmlvIGxhbsOnYXLDoSBvIFxcXCJWYWxvciBkZSBjaGF2ZSBuw6NvIGV4Y2x1c2l2b1xcXCIgZXJyby5cIlxuICB9LFxuICAvLyBQcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCJ0w610dWxvXCIsXG4gICAgICB0aXRsZTogXCJEZWl4YXIgdmF6aW8gc2UgZm9yIG8gbWVzbW8gcXVlICdOb21lJ1wiXG4gICAgfSxcbiAgICBtdWx0aVNlbGVjdDogXCJQZXJtaXRpciBlc2NvbGhhIG3Dumx0aXBsYVwiLFxuICAgIHNob3dMYWJlbDogXCJNb3N0cmFyIGxlZ2VuZGEgZGFzIGltYWdlbnNcIixcbiAgICB2YWx1ZTogXCJWYWxvclwiLFxuICAgIHZpc2libGVJZjogXCJWaXPDrXZlbCBzZVwiLFxuICAgIGF0dGFjaE9yaWdpbmFsSXRlbXM6IFwiYW5leGFyIGl0ZW5zIG9yaWdpbmFpc1wiLFxuICAgIHVzZURpc3BsYXlWYWx1ZXNJbkR5bmFtaWNUZXh0czogXCJVc2FyIHZhbG9yZXMgZGUgZXhpYmnDp8OjbyBlbSB0ZXh0b3MgZGluw6JtaWNvc1wiLFxuICAgIHRpdGxlTG9jYXRpb246IFwiTG9jYWxpemHDp8OjbyBkbyB0w610dWxvXCIsXG4gICAgZGVzY3JpcHRpb246IFwiRGVzY3Jpw6fDo29cIixcbiAgICBkZXNjcmlwdGlvbkxvY2F0aW9uOiBcIkRlc2NyacOnw6NvIGRlIGxvY2FsaXphw6fDo29cIixcbiAgICBkZWZhdWx0VmFsdWVFeHByZXNzaW9uOiBcIlZhbG9yIGRlIGV4cHJlc3PDo28gcHLDqS1kZWZpbmlkYVwiLFxuICAgIHJlcXVpcmVkSWY6IFwiT2JyaWdhdMOzcmlvIHNlXCIsXG4gICAgdmFsaWRhdG9yczogXCJWYWxpZGFkb3Jlc1wiLFxuICAgIGJpbmRpbmdzOiBcImxpZ2HDp8O1ZXNcIixcbiAgICByZW5kZXJBczogXCJyZW5kZXJpemFyIGNvbW9cIixcbiAgICBjdXJyZW5jeTogXCJNb2VkYVwiLFxuICAgIGNlbGxIaW50OiBcIkRpY2EgZGUgY8OpbHVsYVwiLFxuICAgIGlzVW5pcXVlOiBcIsOJIMO6bmljb1wiLFxuICAgIHNob3dJbk11bHRpcGxlQ29sdW1uczogXCJNb3N0cmFyIGVtIG3Dumx0aXBsYXMgY29sdW5hc1wiLFxuICAgIHRvdGFsTWF4aW11bUZyYWN0aW9uRGlnaXRzOiBcIlRvdGFsIE3DoXhpbW8gZGUgRMOtZ2l0b3MgZGEgRnJhw6fDo29cIixcbiAgICB0b3RhbE1pbmltdW1GcmFjdGlvbkRpZ2l0czogXCJUb3RhbCBNw61uaW1vIGRlIETDrWdpdG9zIGRhIEZyYcOnw6NvXCIsXG4gICAgY29sdW1uczogXCJDb2x1bmFzXCIsXG4gICAgZGV0YWlsRWxlbWVudHM6IFwiRGV0YWxoZXMgZWxlbWVudG9zXCIsXG4gICAgY2hvaWNlczogXCJPcMOnw7Vlc1wiLFxuICAgIGFsbG93QWRhcHRpdmVBY3Rpb25zOiBcIlBlcm1pdGlyIGHDp8O1ZXMgYWRhcHRhdGl2YXNcIixcbiAgICBkZWZhdWx0Um93VmFsdWU6IFwidmFsb3IgcGFkcsOjbyBkYSBsaW5oYVwiLFxuICAgIGRldGFpbFBhbmVsU2hvd09uQWRkaW5nOiBcIk1vc3RyYXIgYW8gYWRpY2lvbmFyIHBhaW5lbCBkZSBkZXRhbGhlc1wiLFxuICAgIGxvZ29GaXQ6IFwiQWp1c3RhciBvIGxvZ29cIixcbiAgICBwYWdlczogXCJww6FnaW5hc1wiLFxuICAgIHF1ZXN0aW9uczogXCJxdWVzdMO1ZXNcIixcbiAgICB0cmlnZ2VyczogXCJDb25kacOnw7Vlc1wiLFxuICAgIGNhbGN1bGF0ZWRWYWx1ZXM6IFwiVmFsb3JlcyBjYWxjdWxhZG9zXCIsXG4gICAgc3VydmV5SWQ6IFwiSWRlbnRpZmljYcOnw6NvIGRvIHF1ZXN0aW9uw6FyaW9cIixcbiAgICBzdXJ2ZXlQb3N0SWQ6IFwiSWRlbnRpZmljYcOnw6NvIGRhIHB1YmxpY2HDp8OjbyBkbyBxdWVzdGlvbsOhcmlvXCIsXG4gICAgc3VydmV5U2hvd0RhdGFTYXZpbmc6IFwiTW9zdHJhciBlY29ub21pYSBkZSBkYWRvcyBkbyBxdWVzdGlvbsOhcmlvXCIsXG4gICAgcXVlc3Rpb25EZXNjcmlwdGlvbkxvY2F0aW9uOiBcIkRlc2NyacOnw6NvIGRhIGxvY2FsaXphw6fDo28gZG8gcXVlc3Rpb27DoXJpb1wiLFxuICAgIHByb2dyZXNzQmFyVHlwZTogXCJUaXBvIGRlIGJhcnJhIGRlIHByb2dyZXNzb1wiLFxuICAgIHF1ZXN0aW9uVGl0bGVQYXR0ZXJuOiBcIlBhZHLDo28gZGUgdMOtdHVsbyBkYSBwZXJndW50YVwiLFxuICAgIHdpZHRoTW9kZTogXCJNb2RvIGRlIGxhcmd1cmFcIixcbiAgICBzaG93QnJhbmRJbmZvOiBcIk1vc3RyYXIgaW5mb3JtYcOnw7VlcyBkYSBtYXJjYVwiLFxuICAgIGNob2ljZXNCeVVybDogXCJPcMOnw7VlcyBjb20gb3JpZ2VtIG5hIFdlYlwiLFxuICAgIGNob2ljZXNMYXp5TG9hZEVuYWJsZWQ6IFwiRXNjb2xoYSBjYXJnYSBsZW50YSBoYWJpbGl0YWRhXCIsXG4gICAgY2hvaWNlc0xhenlMb2FkUGFnZVNpemU6IFwiRXNjb2xoYSBjYXJnYSBsZW50YSB0YW1hbmhvIGRlIHDDoWdpbmFcIixcbiAgICBpbnB1dEZpZWxkQ29tcG9uZW50OiBcIkNvbXBvbmVudGUgZGUgY2FtcG8gZGUgZW50cmFkYVwiLFxuICAgIGl0ZW1Db21wb25lbnQ6IFwiQ29tcG9uZW50ZSBkZSBpdGVtXCIsXG4gICAgbWluOiBcIm1pblwiLFxuICAgIG1heDogXCJtYXhcIixcbiAgICBtaW5WYWx1ZUV4cHJlc3Npb246IFwiRXhwcmVzc8OjbyB2YWxvciBtw61uaW1vXCIsXG4gICAgbWF4VmFsdWVFeHByZXNzaW9uOiBcIkV4cHJlc3PDo28gdmFsb3IgbcOheGltb1wiLFxuICAgIHN0ZXA6IFwicGFzc29cIixcbiAgICBkYXRhTGlzdDogXCJMaXN0YVwiLFxuICAgIGl0ZW1TaXplOiBcIlRhbWFuaG8gZG8gaXRlbVwiLFxuICAgIGVsZW1lbnRzOiBcImVsZW1lbnRvc1wiLFxuICAgIGNvbnRlbnQ6IFwiY29udGXDumRvXCIsXG4gICAgbmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5OiBcIlZpc2liaWxpZGFkZSBkb3MgYm90w7VlcyBkZSBuYXZlZ2HDp8Ojb1wiLFxuICAgIG5hdmlnYXRpb25UaXRsZTogXCJUw610dWxvIGRlIG5hdmVnYcOnw6NvXCIsXG4gICAgbmF2aWdhdGlvbkRlc2NyaXB0aW9uOiBcIkRlc2NyacOnw6NvIGRlIG5hdmVnYcOnw6NvXCIsXG4gICAgY2xvc2VPblNlbGVjdDogXCJGZWNoYXIgYW8gc2VsZWNpb25hclwiLFxuICAgIGxvbmdUYXA6IFwiVG9xdWUgbG9uZ29cIixcbiAgICBhdXRvR3JvdzogXCJDcmVzY2ltZW50byBhdXRvbcOhdGljb1wiLFxuICAgIGFjY2VwdENhcnJpYWdlUmV0dXJuOiBcImFjZWl0YXIgZGV2b2x1w6fDo28gZGUgY29udGXDumRvXCIsXG4gICAgZGlzcGxheU1vZGU6IFwiTW9kbyBkZSBleGliacOnw6NvXCIsXG4gICAgbGFiZWw6IFwiUsOzdHVsb1wiLFxuICAgIGNvbnRlbnRNb2RlOiBcIk1vZG8gZGUgY29udGXDumRvXCIsXG4gICAgaW1hZ2VGaXQ6IFwiQWp1c3RhciBpbWFnZW1cIixcbiAgICBhbHRUZXh0OiBcIlRleHRvIGFsdGVybmF0aXZvXCIsXG4gICAgaGVpZ2h0OiBcImFsdHVyYVwiLFxuICAgIHBlbkNvbG9yOiBcIkNvciBkZSBjYW5ldGFcIixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiQ29yIGRlIGZ1bmRvXCIsXG4gICAgdGVtcGxhdGVFbGVtZW50czogXCJNb2RlbG8gZGUgZWxlbWVudG9zXCIsXG4gICAgb3BlcmF0b3I6IFwib3BlcmFkb3JcIixcbiAgICBpc1ZhcmlhYmxlOiBcIsOJIHZhcmnDoXZlbFwiLFxuICAgIHJ1bkV4cHJlc3Npb246IFwiRXhwcmVzc8OjbyBkZSBleGVjdcOnw6NvXCIsXG4gICAgc2hvd0NhcHRpb246IFwiTW9zdHJhciBkZXNjcmnDp8Ojb1wiLFxuICAgIGljb25OYW1lOiBcIk5vbWUgZG8gw61jb25lXCIsXG4gICAgaWNvblNpemU6IFwiVGFtYW5obyBkbyDDrWNvbmVcIlxuICB9XG59O1xuXG5lZGl0b3JMb2NhbGl6YXRpb24ubG9jYWxlc1tcInB0XCJdID0gcG9ydHVndWVzZVRyYW5zbGF0aW9uO1xuXG4iLCIvL1VuY29tbWVudCB0aGlzIGxpbmUgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlXG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24sIGRlZmF1bHRTdHJpbmdzIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG5leHBvcnQgdmFyIHJ1U3RyaW5ncyA9IHtcbiAgLy8gc3RyaW5ncyBmb3Igc3VydmV5IHRlbXBsYXRlc1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcItCg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCLQndCw0YPRh9C40YLRjNGB0Y8g0YHQvtC30LTQsNCy0LDRgtGMINC+0L/RgNC+0YHRi1wiLFxuICAgIGV4dGVybmFsSGVscExpbmtVcmw6XG4gICAgICBcIkh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNIMnJ1OW9rSWNvb05aZnBJYnlxNHFRP3ZpZXdfYXM9c3Vic2NyaWJlclwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0L/QtdGA0LXRgtGP0L3QuNGC0LUg0L3QtdC+0LHRhdC+0LTQuNC80YvQuSDRjdC70LXQvNC10L3RgiDQuNC3INC/0LDQvdC10LvQuCDRgdC70LXQstCwXCIsXG4gICAgY29weTogXCLQmtC+0L/QuNGA0L7QstCw0YLRjFwiLFxuICAgIGFkZFRvVG9vbGJveDogXCLQlNC+0LHQsNCy0LjRgtGMINC6INC40L3RgdGC0YDRg9C80LXQvdGC0LDQvFwiLFxuICAgIGRlbGV0ZVBhbmVsOiBcItCj0LTQsNC70LjRgtGMINC/0LDQvdC10LvRjFwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcItCj0LTQsNC70LjRgtGMINCy0L7Qv9GA0L7RgVwiLFxuICAgIGNvbnZlcnRUbzogXCLQn9GA0LXQvtCx0YDQsNC30L7QstCw0YLRjCDQslwiLFxuICAgIGRyYWc6IFwi0J/QtdGA0LXRgtGP0L3Rg9GC0Ywg0Y3Qu9C10LzQtdC90YJcIlxuICB9LFxuICAvLyBxdWVzdGlvblR5cGVzXG4gIHF0OiB7XG4gICAgZGVmYXVsdDogXCLQn9C+INGD0LzQvtC70YfQsNC90LjRjlwiLFxuICAgIGNoZWNrYm94OiBcItCc0L3QvtC20LXRgdGC0LLQtdC90L3Ri9C5INCy0YvQsdC+0YBcIixcbiAgICBjb21tZW50OiBcItCa0L7QvNC80LXQvdGC0LDRgNC40LlcIixcbiAgICBpbWFnZXBpY2tlcjogXCLQktGL0LHQvtGAINC40LfQvtCx0YDQsNC20LXQvdC40Y9cIixcbiAgICBkcm9wZG93bjogXCLQktGL0L/QsNC00LDRjtGJ0LjQuSDRgdC/0LjRgdC+0LpcIixcbiAgICBmaWxlOiBcItCX0LDQs9GA0YPQt9C60LAg0YTQsNC50LvQvtCyXCIsXG4gICAgSFRNTDogXCJIVE1MXCIsXG4gICAgbWF0cml4OiBcItCc0LDRgtGA0LjRhtCwICjQtdC00LjQvdC40YfQvdGL0Lkg0LLRi9Cx0L7RgClcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCLQnNCw0YLRgNC40YbQsCAo0LzQvdC+0LbQtdGB0YLQstC10L3QvdGL0Lkg0LLRi9Cx0L7RgClcIixcbiAgICBtYXRyaXhkeW5hbWljOiBcItCc0LDRgtGA0LjRhtCwICjQtNC40L3QsNC80LjRh9C10YHQutC40LUg0YDRj9C00YspXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcIk11bHRpcGxlIFRleHRcIixcbiAgICBwYW5lbDogXCLQn9Cw0L3QtdC70YwgKNC00LvRjyDQs9GA0YPQv9C/0Ysg0LLQvtC/0YDQvtGB0L7QsilcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwi0J/QsNC90LXQu9GMICjQtNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QsNC90LXQu9C4KVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwi0JXQtNC40L3QuNGH0L3Ri9C5INCy0YvQsdC+0YBcIixcbiAgICByYXRpbmc6IFwi0KDQtdC50YLQuNC90LMgKNGI0LrQsNC70LApXCIsXG4gICAgdGV4dDogXCLQotC10LrRgdGC0L7QstGL0Lkg0LLQstC+0LRcIixcbiAgICBib29sZWFuOiBcItCR0YPQu9C40LXQstC+0LUg0LfQvdCw0YfQtdC90LjQtVwiLFxuICAgIGV4cHJlc3Npb246IFwi0JLRi9GA0LDQttC10L3QuNC1ICjRgtC+0LvRjNC60L4g0LTQu9GPINGH0YLQtdC90LjRjylcIixcbiAgICBmbG93UGFuZWw6IFwi0J/QsNC90LXQu9GMINC/0L7RgtC+0LrQsFwiXG4gIH0sXG4gIC8vIFN0cmluZ3MgaW4gRWRpdG9yXG4gIGVkOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCLQn9C+INGD0LzQvtC70YfQsNC90LjRjiAoezB9KVwiLFxuICAgIHN1cnZleTogXCLQntC/0YDQvtGB0L3QuNC6XCIsXG4gICAgc2V0dGluZ3M6IFwi0J3QsNGB0YLRgNC+0LnQutC4INC+0L/RgNC+0YHQvdC40LrQsFwiLFxuICAgIG9wamVjdFByb3BlcnRpZXNIZWFkZXI6IFwi0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQtVwiLFxuICAgIHNob3dPYmplY3RQcm9wZXJ0aWVzOiBcItCf0L7QutCw0LfQsNGC0Ywg0YHQstC+0LnRgdGC0LLQsCDQvtCx0YrQtdC60YLQsFwiLFxuICAgIGhpZGVPYmplY3RQcm9wZXJ0aWVzOiBcItCh0LrRgNGL0YLRjCDRgdCy0L7QudGB0YLQstCwINC+0LHRitC10LrRgtCwXCIsXG4gICAgZWRpdFN1cnZleTogXCLQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvtC/0YDQvtGB0L3QuNC6XCIsXG4gICAgYWRkTmV3UGFnZTogXCLQlNC+0LHQsNCy0LjRgtGMINC90L7QstGD0Y4g0YHRgtGA0LDQvdC40YbRg1wiLFxuICAgIG1vdmVSaWdodDogXCLQn9GA0L7QutGA0YPRgtC40YLRjCDQstC/0YDQsNCy0L5cIixcbiAgICBtb3ZlTGVmdDogXCLQn9GA0L7QutGA0YPRgtC40YLRjCDQstC70LXQstC+XCIsXG4gICAgZGVsZXRlUGFnZTogXCLQo9C00LDQu9C40YLRjCDRgdGC0YDQsNC90LjRhtGDXCIsXG4gICAgZWRpdFBhZ2U6IFwi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YHRgtGA0LDQvdC40YbRg1wiLFxuICAgIGVkaXQ6IFwi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YxcIixcbiAgICBuZXdQYWdlTmFtZTogXCLRgdGC0YDQsNC90LjRhtCwXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcItCy0L7Qv9GA0L7RgVwiLFxuICAgIG5ld1BhbmVsTmFtZTogXCLQv9Cw0L3QtdC70YxcIixcbiAgICBuZXdUZXh0SXRlbU5hbWU6IFwi0YLQtdC60YHRglwiLFxuICAgIHRlc3RTdXJ2ZXk6IFwi0KLQtdGB0YLQuNGA0L7QstCw0YLRjCDQvtC/0YDQvtGB0L3QuNC6XCIsXG4gICAgdGVzdFN1cnZleUFnYWluOiBcItCi0LXRgdGC0LjRgNC+0LLQsNGC0Ywg0LXRidC1INGA0LDQt1wiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCLQqNC40YDQuNC90LAg0L7Qv9GA0L7RgdC90LjQutCwOlwiLFxuICAgIGxvZ2ljOiBcItCb0L7Qs9C40LrQsCDQvtC/0YDQvtGB0L3QuNC60LBcIixcbiAgICBlbWJlZFN1cnZleTogXCLQktGB0YLQsNCy0LjRgtGMINC+0L/RgNC+0YHQvdC40LpcIixcbiAgICB0cmFuc2xhdGlvbjogXCLQn9C10YDQtdCy0L7QtFwiLFxuICAgIFwicHJvcGVydHktZ3JpZFwiOiBcItCh0LLQvtC50YHRgtCy0LBcIixcbiAgICBzYXZlU3VydmV5OiBcItCh0L7RhdGA0LDQvdC40YLRjCDQvtC/0YDQvtGB0L3QuNC6XCIsXG4gICAgZGVzaWduZXI6IFwi0J7QsdC30L7RgCDQutC+0L3RgdGC0YDRg9C60YLQvtGA0LBcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04g0YDQtdC00LDQutGC0L7RgFwiLFxuICAgIHVuZG86IFwi0J7RgtC80LXQvdC40YLRjFwiLFxuICAgIHJlZG86IFwi0J/QvtCy0YLQvtGAXCIsXG4gICAgb3B0aW9uczogXCLQn9Cw0YDQsNC80LXRgtGA0YtcIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCLQodGE0L7RgNC80LjRgNC+0LLQsNGC0Ywg0LLQsNC70LjQtNC90YvQuSBKU09OXCIsXG4gICAgZ2VuZXJhdGVSZWFkYWJsZUpTT046IFwi0KHRhNC+0YDQvNC40YDQvtCy0LDRgtGMINGH0LjRgtCw0LXQvNGL0LkgSlNPTlwiLFxuICAgIHRvb2xib3g6IFwi0J/QsNC90LXQu9GMINC40L3RgdGC0YDRg9C80LXQvdGC0L7QslwiLFxuICAgIHRvb2xib3hHZW5lcmFsQ2F0ZWdvcnk6IFwi0J7QsdGJ0LjQtVwiLFxuICAgIGRlbFNlbE9iamVjdDogXCLQo9C00LDQu9C40YLRjCDQstGL0LHRgNCw0L3QvdGL0Lkg0L7QsdGK0LXQutGCXCIsXG4gICAgZWRpdFNlbE9iamVjdDogXCLQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQstGL0LHRgNCw0L3QvdGL0Lkg0L7QsdGK0LXQutGCXCIsXG4gICAgY29ycmVjdEpTT046IFwi0J/QvtC20LDQu9GD0LnRgdGC0LAsINC40YHQv9GA0LDQstGM0YLQtSBKU09OLlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwi0KDQtdC30YPQu9GM0YLQsNGC0Ysg0L7QsdGB0LvQtdC00L7QstCw0L3QuNGPOlwiLFxuICAgIHN1cnZleVJlc3VsdHNUYWJsZTogXCLQmtCw0Log0YLQsNCx0LvQuNGG0LBcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCLQmtCw0LogSlNPTlwiLFxuICAgIHJlc3VsdHNUaXRsZTogXCLQl9Cw0LPQvtC70L7QstC+0Log0LLQvtC/0YDQvtGB0LBcIixcbiAgICByZXN1bHRzTmFtZTogXCLQndCw0LfQstCw0L3QuNC1INCy0L7Qv9GA0L7RgdCwXCIsXG4gICAgcmVzdWx0c1ZhbHVlOiBcItCX0L3QsNGH0LXQvdC40LUg0L7RgtCy0LXRgtCwXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCLQntGC0L7QsdGA0LDQttCw0LXQvNC+0LUg0LfQvdCw0YfQtdC90LjQtVwiLFxuICAgIG1vZGlmaWVkOiBcItCc0L7QtNC40YTQuNGG0LjRgNC+0LLQsNC9XCIsXG4gICAgc2F2aW5nOiBcItCh0L7RhdGA0LDQvdC10L3QuNC1XCIsXG4gICAgc2F2ZWQ6IFwi0KHQvtGF0YDQsNC90LXQvdC90YvQuVwiLFxuICAgIHNhdmVFcnJvcjogXCLQntGI0LjQsdC60LAhINCh0L7QtNC10YDQttCw0L3QuNC1INGA0LXQtNCw0LrRgtC+0YDQsCDQvdC1INGB0L7RhdGA0LDQvdC10L3Qvi5cIixcbiAgICB0cmFuc2xhdGlvbkFkZExhbmd1YWdlOiBcItCS0YvQsdC10YDQuNGC0LUg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQuSDRj9C30YvQuiDQvtC/0YDQvtGB0L3QuNC60LBcIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxTdHJpbmdzOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINCy0YHQtSDRgdGC0YDQvtC60LhcIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxQYWdlczogXCLQn9C+0LrQsNC30YvQstCw0YLRjCDQstGB0LUg0YHRgtGA0LDQvdC40YbRi1wiLFxuICAgIHRyYW5zbGF0aW9uTm9TdHJpbmdzOiBcItCd0LXRgiDRgdGC0YDQvtC6INC00LvRjyDQv9C10YDQtdCy0L7QtNCwLiDQn9C+0LbQsNC70YPQudGB0YLQsCwg0LjQt9C80LXQvdC40YLQtSDRhNC40LvRjNGC0YAuXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCLQrdC60YHQv9C+0YDRgiDQsiBDU1ZcIixcbiAgICB0cmFuc2xhdGlvbkltcG9ydEZyb21TQ1ZCdXR0b246IFwi0JjQvNC/0L7RgNGCINC40LcgQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25NZXJnZUxvY2FsZVdpdGhEZWZhdWx0OiBcItCe0LHRitC10LTQuNC90LjRgtGMIHswfSDRgSDQu9C+0LrQsNC70YzRjiDQv9C+INGD0LzQvtC70YfQsNC90LjRjlwiLFxuICAgIGJvbGQ6IFwi0JbQuNGA0L3Ri9C5XCIsXG4gICAgaXRhbGljOiBcItCa0YPRgNGB0LjQslwiLFxuICAgIHVuZGVybGluZTogXCLQn9C+0LTRh9C10YDQutC40LLQsNC90LjQtVwiLFxuICAgIGZwQWRkUXVlc3Rpb246IFwi0JTQvtCx0LDQstC40YLRjCDQstC+0L/RgNC+0YEuLi5cIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25JdGVtVGV4dDogXCLQn9C+0LrQsNC30YvQstCw0YLRjCwg0LXRgdC70Lg6XCIsXG4gICAgbGc6IHtcbiAgICAgIC8vTG9naWMgdGFiIHN0cmluZ3NcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eU5hbWU6IFwi0JLQuNC00LjQvNC+0YHRgtGMINGB0YLRgNCw0L3QuNGG0YtcIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlOYW1lOiBcItCS0LjQtNC40LzQvtGB0YLRjCDQv9Cw0L3QtdC70LhcIixcbiAgICAgIHBhbmVsX2VuYWJsZU5hbWU6IFwi0J/QsNC90LXQu9GMINCy0LrQu9GO0YfQtdC90LAv0LLRi9C60LvRjtGH0LXQvdCwXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCLQktC40LTQuNC80L7RgdGC0Ywg0LLQvtC/0YDQvtGB0LBcIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZU5hbWU6IFwi0JLQvtC/0YDQvtGBINCy0LrQu9GO0YfQtdC9L9Cy0YvQutC70Y7Rh9C10L1cIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVOYW1lOiBcItCS0L7Qv9GA0L7RgSDQvdC10L7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C5XCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlTmFtZTogXCLQntC/0YDQvtGBINC30LDQstC10YDRiNC10L1cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVOYW1lOiBcItCj0YHRgtCw0L3QvtCy0LjRgtGMINC30L3QsNGH0LXQvdC40LUg0LLQvtC/0YDQvtGB0LBcIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlTmFtZTogXCLQmtC+0L/QuNGA0L7QstCw0YLRjCDQt9C90LDRh9C10L3QuNC1INCy0L7Qv9GA0L7RgdCwXCIsXG4gICAgICB0cmlnZ2VyX3NraXBOYW1lOiBcItCf0LXRgNC10LnRgtC4INC6INCy0L7Qv9GA0L7RgdGDXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lOiBcItCX0LDQv9GD0YHRgtC40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LVcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbk5hbWU6IFwi0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40Lkg0YLQtdC60YHRgiAn0KHRgtGA0LDQvdC40YbRiyDQsdC70LDQs9C+0LTQsNGA0L3QvtGB0YLQuCdcIixcblxuICAgICAgcGFnZV92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwi0KHQtNC10LvQsNGC0Ywg0YHRgtGA0LDQvdC40YbRgyDQstC40LTQuNC80L7QuSwg0LrQvtCz0LTQsCDQu9C+0LPQuNGH0LXRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LLQtdGA0L3QtdGCICd0cnVlJy4g0JIg0L/RgNC+0YLQuNCy0L3QvtC8INGB0LvRg9GH0LDQtSDRgdC00LXQu9Cw0YLRjCDQtdC1INC90LXQstC40LTQuNC80L7QuS5cIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQodC00LXQu9Cw0YLRjCDQv9Cw0L3QtdC70Ywg0LLQuNC00LjQvNC+0LksINC60L7Qs9C00LAg0LvQvtCz0LjRh9C10YHQutC+0LUg0LLRi9GA0LDQttC10L3QuNC1INCy0LXRgNC90LXRgiAndHJ1ZScuINCSINC/0YDQvtGC0LjQstC90L7QvCDRgdC70YPRh9Cw0LUg0YHQtNC10LvQsNGC0Ywg0LXQtSDQvdC10LLQuNC00LjQvNC+0LkuXCIsXG4gICAgICBwYW5lbF9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQodC00LXQu9Cw0YLRjCDQv9Cw0L3QtdC70Ywg0Lgg0LLRgdC1INGN0LvQtdC80LXQvdGC0Ysg0LLQvdGD0YLRgNC4INC90LXQtSDQstC60LvRjtGH0LXQvdC90L7QuSwg0LrQvtCz0LTQsCDQu9C+0LPQuNGH0LXRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LLQtdGA0L3QtdGCICd0cnVlJy4g0JIg0L/RgNC+0YLQuNCy0L3QvtC8INGB0LvRg9GH0LDQtSDQvtGB0YLQsNCy0LjRgtGMINC40YUg0L7RgtC60LvRjtGH0LXQvdC90YvQvNC4LlwiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcItCh0LTQtdC70LDRgtGMINCy0L7Qv9GA0L7RgSDQstC40LTQuNC80L7QuSwg0LrQvtCz0LTQsCDQu9C+0LPQuNGH0LXRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LLQtdGA0L3QtdGCICd0cnVlJy4g0JIg0L/RgNC+0YLQuNCy0L3QvtC8INGB0LvRg9GH0LDQtSDRgdC00LXQu9Cw0YLRjCDQtdC1INC90LXQstC40LTQuNC80L7QuS5cIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uOlxuICAgICAgICBcItCh0LTQtdC70LDRgtGMINCy0L7Qv9GA0L7RgSDQstC60LvRjtGH0LXQvdC90YvQvCwg0LrQvtCz0LTQsCDQu9C+0LPQuNGH0LXRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LLQtdGA0L3QtdGCICd0cnVlJy4g0JIg0L/RgNC+0YLQuNCy0L3QvtC8INGB0LvRg9GH0LDQtSDQvtGB0YLQsNCy0LjRgtGMINC10LPQviDQvtGC0LrQu9GO0YfQtdC90L3Ri9C80LguXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlRGVzY3JpcHRpb246XG4gICAgICAgIFwi0JLQvtC/0YDQvtGBINGB0YLQsNC90L7QstC40YLRgdGPINC+0LHRj9C30LDRgtC10LvRjNC90YvQvCwg0LrQvtCz0LTQsCDQu9C+0LPQuNGH0LXRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LLQtdGA0L3QtdGCICd0cnVlJy5cIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQmtC+0LPQtNCwINC70L7Qs9C40YfQtdGB0LrQvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQstC10YDQvdC10YIgJ3RydWUnLCDRgtC+INC+0L/RgNC+0YEg0YHRgtCw0L3QvtCy0LjRgtGB0Y8g0LfQsNCy0LXRgNGI0LXQvdC90YvQvCDQuCDQutC+0L3QtdGH0L3Ri9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQstC40LTQuNGCICfQodGC0YDQsNC90LjRhtGDINCx0LvQsNCz0L7QtNCw0YDQvdC+0YHRgtC4Jy5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQmtC+0LPQtNCwINC30L3QsNGH0LXQvdC40Y8g0LLQvtC/0YDQvtGB0L7Qsiwg0LrQvtGC0L7RgNGL0LUg0LjRgdC/0L7Qu9GM0LfRg9GO0YLRgdGPINCyINC70L7Qs9C40YfQtdGB0LrQvtC8INCy0YvRgNCw0LbQtdC90LjQuCwg0LjQt9C80LXQvdGP0Y7RgtGB0Y8g0Lgg0LvQvtCz0LjRh9C10YHQutC+0LUg0LLRi9GA0LDQttC10L3QuNC1INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC30L3QsNGH0LXQvdC40LUgJ3RydWUnLCDRgtC+0LPQtNCwINC90LAg0LLRi9Cx0YDQsNC90L3Ri9C5INCy0L7Qv9GA0L7RgSDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgtGB0Y8g0LfQvdCw0YfQtdC90LjQtS5cIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlRGVzY3JpcHRpb246XG4gICAgICAgIFwi0JrQvtCz0LTQsCDQt9C90LDRh9C10L3QuNGPINCy0L7Qv9GA0L7RgdC+0LIsINC60L7RgtC+0YDRi9C1INC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyDQsiDQu9C+0LPQuNGH0LXRgdC60L7QvCDQstGL0YDQsNC20LXQvdC40LgsINC40LfQvNC10L3Rj9GO0YLRgdGPINC4INC70L7Qs9C40YfQtdGB0LrQvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQstC+0LfQstGA0LDRidCw0LXRgiDQt9C90LDRh9C10L3QuNC1ICd0cnVlJywg0YLQvtCz0LTQsCDQt9C90LDRh9C10L3QuNC1INC+0LTQvdC+0LPQviDQstGL0LHRgNCw0L3QvdC+0LPQviDQstC+0L/RgNC+0YHQsCDQutC+0L/QuNGA0YPQtdGC0YHRjyDQsiDQtNGA0YPQs9C+0Lkg0LLRi9Cx0YDQsNC90L3Ri9C5INCy0L7Qv9GA0L7RgS5cIixcbiAgICAgIHRyaWdnZXJfc2tpcERlc2NyaXB0aW9uOlxuICAgICAgICBcItCa0L7Qs9C00LAg0LvQvtCz0LjRh9C10YHQutC+0LUg0LLRi9GA0LDQttC10L3QuNC1INCy0LXRgNC90LXRgiAndHJ1ZScsINGC0L7Qs9C00LAg0L7Qv9GA0L7RgSDQv9C10YDQtdGF0L7QtNC40YIg0Lov0YTQvtC60YPRgdC40YDRg9C10YLRgdGPINC90LAg0LLRi9Cx0YDQsNC90L3QvtC8INCy0L7Qv9GA0L7RgdC1LlwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwi0JrQvtCz0LTQsCDQu9C+0LPQuNGH0LXRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LLQvtC30LLRgNCw0YnQsNC10YIgJ3RydWUnLNGC0L7Qs9C00LAg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LUuINCS0Ysg0LzQvtC20LXRgtC1INC/0YDQuCDQttC10LvQsNC90LjQuCDRg9GB0YLQsNC90L7QstC40YLRjCDRjdGC0L7RgiDRgNC10LfRg9C70YzRgtCw0YIg0LLRi9GA0LDQttC10L3QuNGPINCyINCy0YvQsdGA0LDQvdC90YvQuSDQstC+0L/RgNC+0YEuXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25EZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQldGB0LvQuCDQu9C+0LPQuNGH0LXRgdC60L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LLQvtC30LLRgNCw0YnQsNC10YIgJ3RydWUnLCDRgtC+INGC0LXQutGB0YIg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPICfQodGC0YDQsNC90LjRhtGLINCx0LvQsNCz0L7QtNCw0YDQvdC+0YHRgtC4JyDQuNC30LzQtdC90Y/QtdGC0YHRjyDQvdCwINC30LDQtNCw0L3QvdGL0LkuXCIsXG5cbiAgICAgIGl0ZW1FeHByZXNzaW9uVGV4dDogXCLQmtC+0LPQtNCwINCy0YvRgNCw0LbQtdC90LjQtTogJ3swfScg0LLQvtC30LLRgNCw0YnQsNC10YIgJ3RydWUnOlwiLCAvL3swfSAtIHRoZSBleHByZXNzaW9uXG4gICAgICBwYWdlX3Zpc2liaWxpdHlUZXh0OiBcItCh0LTQtdC70LDRgtGMINGB0YLRgNCw0L3QuNGG0YMgezB9INCy0LjQtNC40LzQvtC5XCIsIC8vezB9IHBhZ2UgbmFtZVxuICAgICAgcGFuZWxfdmlzaWJpbGl0eVRleHQ6IFwi0KHQtNC10LvQsNGC0Ywg0L/QsNC90LXQu9GMIHswfSDQstC40LTQuNC80L7QuVwiLCAvL3swfSBwYW5lbCBuYW1lXG4gICAgICBwYW5lbF9lbmFibGVUZXh0OiBcItCh0LTQtdC70LDRgtGMINC/0LDQvdC10LvRjCB7MH0g0LLQutC70Y7Rh9C10L3QvdC+0LlcIiwgLy97MH0gcGFuZWwgbmFtZVxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eVRleHQ6IFwi0KHQtNC10LvQsNGC0Ywg0LLQvtC/0YDQvtGBIHswfSDQstC40LTQuNC80YvQvFwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBxdWVzdGlvbl9lbmFibGVUZXh0OiBcItCh0LTQtdC70LDRgtGMINCy0L7Qv9GA0L7RgSB7MH0g0LLQutC70Y7Rh9C10L3QvdGL0LxcIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgcXVlc3Rpb25fcmVxdWlyZVRleHQ6IFwi0KHQtNC10LvQsNGC0Ywg0LLQvtC/0YDQvtGBIHswfSDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdGL0LxcIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZVRleHQ6IFwi0J7Qv9GA0L7RgSDRgdGC0LDQvdC+0LLQuNGC0YHRjyDQt9Cw0LLQtdGA0YjQtdC90L3Ri9C8XCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCLQo9GB0YLQsNC90L7QstC40YLRjCDQsiDQstC+0L/RgNC+0YE6IHswfSDQt9C90LDRh9C10L3QuNC1IHsxfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lLCB7MX0gc2V0VmFsdWVcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlVGV4dDogXCLQmtC+0L/QuNGA0L7QstCw0YLRjCDQsiDQstC+0L/RgNC+0YE6IHswfSDQt9C90LDRh9C10L3QuNC1INC40Lcg0LLQvtC/0YDQvtGB0LAgezF9XCIsIC8vezB9IGFuZCB7MX0gcXVlc3Rpb24gbmFtZXNcbiAgICAgIHRyaWdnZXJfc2tpcFRleHQ6IFwi0J7Qv9GA0L7RgSDQv9C10YDQtdGF0L7QtNC40YIg0Log0LLQvtC/0YDQvtGB0YMgezB9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQxOiBcItCS0YvQv9C+0LvQvdC40YLRjCDQstGL0YDQsNC20LXQvdC40LU6ICd7MH0nXCIsIC8vezB9IHRoZSBleHByZXNzaW9uXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MjogXCLQuCDRg9GB0YLQsNC90L7QstC40YLRjCDQtdCz0L4g0YDQtdC30YPQu9GM0YLQsNGCINCyINCy0L7Qv9GA0L7RgTogezB9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvblRleHQ6XG4gICAgICAgIFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40Lkg0YLQtdC60YHRgiDQtNC70Y8gJ9Ch0YLRgNCw0L3QuNGG0Ysg0LHQu9Cw0LPQvtC00LDRgNC90L7RgdGC0LgnLlwiLFxuXG4gICAgICBleHByZXNzaW9uRWRpdG9yVGl0bGU6IFwi0J3QsNGB0YLRgNC+0LnQutCwINC70L7Qs9C40LrQuCDQstGL0YDQsNC20LXQvdC40Y9cIixcblxuICAgICAgZGVsZXRlT3BlcmF0aW9uOiBcItCj0LTQsNC70LjRgtGMINC+0L/QtdGA0LDRhtC40Y5cIixcbiAgICAgIGFkZE5ld09wZXJhdGlvbjogXCLQlNC+0LHQsNCy0LjRgtGMINC90L7QstGD0Y4g0L7Qv9C10YDQsNGG0LjRjijQuClcIixcblxuICAgICAgZXhwcmVzc2lvbkludmFsaWQ6XG4gICAgICAgIFwi0JvQvtCz0LjRh9C10YHQutC+0LUg0LLRi9GA0LDQttC10L3QuNC1INC/0YPRgdGC0L7QtSDQuNC70Lgg0L3QtdC00LXQudGB0YLQstC40YLQtdC70YzQvdC+0LUuINCf0L7QttCw0LvRg9C50YHRgtCwLCDQuNGB0L/RgNCw0LLRjNGC0LUg0LXQs9C+LlwiLFxuICAgICAgbm9PcGVyYXRpb25FcnJvcjogXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LTQvtCx0LDQstGM0YLQtSDRhdC+0YLRjCDQvtC00L3RgyDQvtC/0LXRgNCw0YbQuNGOLlwiLFxuICAgICAgb3BlcmF0aW9uSW52YWxpZDogXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LjRgdC/0YDQsNCy0YzRgtC1INC/0YDQvtCx0LvQtdC80Ysg0LIg0LLQsNGI0LXQuSDQvtC/0LXRgNCw0YbQuNC4KNGP0YUpLlwiXG4gICAgfVxuICB9LFxuICAvLyBQcm9wZXJ0eSBuYW1lcyBpbiB0YWJsZSBoZWFkZXJzXG4gIHBlbDoge1xuICAgIGlzUmVxdWlyZWQ6IFwi0J7QsdGP0LfQsNGC0LXQu9GM0L3QvtC1P1wiXG4gIH0sXG4gIC8vIFByb3BlcnR5IEVkaXRvcnNcbiAgcGU6IHtcbiAgICBhcHBseTogXCLQn9GA0LjQvNC10L3QuNGC0YxcIixcbiAgICBvazogXCJPS1wiLFxuICAgIHNhdmU6IFwi0KHQvtGF0YDQsNC90LjRgtGMXCIsXG4gICAgY2FuY2VsOiBcItCe0YLQvNC10L3QuNGC0YxcIixcbiAgICByZXNldDogXCLQodCx0YDQvtGBXCIsXG4gICAgY2xvc2U6IFwi0JfQsNC60YDRi9GC0YxcIixcbiAgICBkZWxldGU6IFwi0KPQtNCw0LvQuNGC0YxcIixcbiAgICBhZGQ6IFwi0JTQvtCx0LDQstC40YLRjFwiLFxuICAgIGFkZE5ldzogXCLQlNC+0LHQsNCy0LjRgtGMINC90L7QstGL0LlcIixcbiAgICBhZGRJdGVtOiBcItCd0LDQttC80LjRgtC1LCDRh9GC0L7QsdGLINC00L7QsdCw0LLQuNGC0Ywg0Y3Qu9C10LzQtdC90YIuLi5cIixcbiAgICBhZGRPdGhlcjogXCLQlNGA0YPQs9C+0LVcIixcbiAgICBhZGRTZWxlY3RBbGw6IFwi0JLRi9Cx0YDQsNGC0Ywg0LLRgdC1INC/0YPQvdC60YLRi1wiLFxuICAgIGFkZE5vbmU6IFwi0J3QuNGH0LXQs9C+XCIsXG4gICAgcmVtb3ZlQWxsOiBcItCj0LTQsNC70LjRgtGMINCy0YHQtVwiLFxuICAgIGVkaXQ6IFwi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YxcIixcbiAgICBiYWNrOiBcItCS0LXRgNC90YPRgtGM0YHRjyDQsdC10Lcg0YHQvtGF0YDQsNC90LXQvdC40Y9cIixcbiAgICBzYXZlQW5kQmFjazogXCLQodC+0YXRgNCw0L3QuNGC0Ywg0Lgg0LLQtdGA0L3Rg9GC0YzRgdGPXCIsXG4gICAgaXRlbVZhbHVlRWRpdDogXCLQntGC0L7QsdGA0LDQttCw0YLRjCwg0LXRgdC70LhcIixcbiAgICBlZGl0Q2hvaWNlczogXCLQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQstGL0LHQvtGAXCIsXG4gICAgbW92ZTogXCLQn9C10YDQtdC80LXRgdGC0LjRgtGMXCIsXG4gICAgZW1wdHk6IFwiPNC/0YPRgdGC0L4+XCIsXG4gICAgbm90RW1wdHk6IFwiPNGA0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC30L3QsNGH0LXQvdC40LU+XCIsXG4gICAgZmFzdEVudHJ5OiBcItCR0YvRgdGC0YDRi9C5INCy0YXQvtC0XCIsXG4gICAgZm9ybUVudHJ5OiBcItCk0L7RgNC80LAg0LLRhdC+0LTQsFwiLFxuICAgIHRlc3RTZXJ2aWNlOiBcItCi0LXRgdGCINGD0YHQu9GD0LPQuFwiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcItCf0L7QttCw0LvRg9C50YHRgtCwLCDQstGL0LHQtdGA0LjRgtC1INGN0LvQtdC80LXQvdGCXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UXVlc3Rpb246IFwi0JLRi9Cx0LXRgNC40YLQtSDQstC+0L/RgNC+0YEgLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFnZTogXCLQktGL0LHRgNCw0YLRjCDRgdGC0YDQsNC90LjRhtGDIC4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhbmVsOiBcItCS0YvQsdC10YDQuNGC0LUg0L/QsNC90LXQu9GMIC4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUv0LLRi9Cx0LXRgNC40YLQtSDQt9C90LDRh9C10L3QuNC1XCIsXG4gICAgY29uZGl0aW9uQnV0dG9uQWRkOiBcItCU0L7QsdCw0LLQuNGC0YxcIixcbiAgICBjb25kaXRpb25CdXR0b25SZXBsYWNlOiBcItCX0LDQvNC10L3QuNGC0YxcIixcbiAgICBjb25kaXRpb25IZWxwOlxuICAgICAgXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LvQvtCz0LjRh9C10YHQutC+0LUg0LLRi9GA0LDQttC10L3QuNC1LiDQlNC+0LvQttC90L4g0LLQvtC30LLRgNCw0YnQsNGC0YzRgdGPINC30L3QsNGH0LXQvdC40LUgJ3RydWUnLCDRh9GC0L7QsdGLINCy0L7Qv9GA0L7RgS/RgdGC0YDQsNC90LjRhtCwINC+0YHRgtCw0LLQsNC70LjRgdGMINCy0LjQtNC40LzRi9C80LgsINC90LDQv9GA0LjQvNC10YA6Li4ge9CS0L7Qv9GA0L7RgTF9ID0gJ9C30L3QsNGH0LXQvdC40LUxJyDQuNC70LggKHvQktC+0L/RgNC+0YEyfSAqIHvQktC+0L/RgNC+0YE0fT4gMjAg0Lgge9CS0L7Qv9GA0L7RgTN9IDw1KVwiLFxuICAgIGV4cHJlc3Npb25IZWxwOlxuICAgICAgXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LLRi9GA0LDQttC10L3QuNC1LiDQktGLINC80L7QttC10YLQtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0YTQuNCz0YPRgNC90YvQtSDRgdC60L7QsdC60LgsINGH0YLQvtCx0Ysg0L/QvtC70YPRh9C40YLRjCDQtNC+0YHRgtGD0L8g0Log0LfQvdCw0YfQtdC90LjRj9C8INCy0L7Qv9GA0L7RgdCwLjogJ3vQktC+0L/RgNC+0YExfSArIHvQktC+0L/RgNC+0YEyfScsICcoe9GG0LXQvdCwfSp70LrQvtC70LjRh9C10YHRgtCy0L59KSAqICgxMDAgLSB70YHQutC40LTQutCwfSkuXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCLQndCw0LbQvNC40YLQtSBDdHJsK9Cf0YDQvtCx0LXQuywg0YfRgtC+0LHRiyDQv9C+0LvRg9GH0LjRgtGMINC/0L7QtNGB0LrQsNC30LrQuFwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcItCi0LXQutGD0YnQsNGPINGB0YLRgNC+0LrQsFwiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwi0KLQtdC60YPRidCw0Y8g0L/QsNC90LXQu9GMXCIsXG4gICAgc2hvd01vcmU6IFwi0JTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDQsdC+0LvQtdC1INC/0L7QtNGA0L7QsdC90L7QuSDQuNC90YTQvtGA0LzQsNGG0LjQuCwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC/0LXRgNC10LnQtNC40YLQtSDQuiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40LhcIixcbiAgICBjb25kaXRpb25TaG93TW9yZVVybDpcbiAgICAgIFwiSHR0cHM6Ly9zdXJ2ZXlqcy5pby9Eb2N1bWVudGF0aW9uL0xpYnJhcnlQYXJhbWV0ZXI/aWQ9UXVlc3Rpb27Ctm1ldGVyPXZpc2libGVJZlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcItCU0L7RgdGC0YPQv9C90YvQtSDQstC+0L/RgNC+0YHRizpcIixcbiAgICBjZWxsc0VtcHR5Um93c0NvbHVtbnM6IFwi0JTQvtC70LbQtdC9INCx0YvRgtGMINGF0L7RgtGPINCx0Ysg0L7QtNC40L0g0YHRgtC+0LvQsdC10YYg0LjQu9C4INGB0YLRgNC+0LrQsFwiLFxuXG4gICAgcHJvcGVydHlJc0VtcHR5OiBcItCf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDQt9C90LDRh9C10L3QuNC1XCIsXG4gICAgcHJvcGVydHlOYW1lSXNOb3RVbmlxdWU6IFwi0J/QvtC20LDQu9GD0LnRgdGC0LAsINCy0LLQtdC00LjRgtC1INGD0L3QuNC60LDQu9GM0L3QvtC1INC40LzRj1wiLFxuICAgIGxpc3RJc0VtcHR5OiBcItCU0L7QsdCw0LLRjNGC0LUg0L3QvtCy0L7QtSDRg9GB0LvQvtCy0LjQtVwiLFxuICAgIGV4cHJlc3Npb25Jc0VtcHR5OiBcItCS0YvRgNCw0LbQtdC90LjQtSAtINC/0YPRgdGC0L7QtVwiLFxuICAgIHZhbHVlOiBcItCX0L3QsNGH0LXQvdC40LVcIixcbiAgICB0ZXh0OiBcItCi0LXQutGB0YJcIixcbiAgICByb3dpZDogXCJJRCDRgdGC0YDQvtC60LhcIixcbiAgICBpbWFnZUxpbms6IFwi0KHRgdGL0LvQutCwINC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjQtVwiLFxuICAgIGNvbHVtbkVkaXQ6IFwi0JjQt9C80LXQvdC40YLRjCDRgdGC0L7Qu9Cx0LXRhjogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0Y3Qu9C10LzQtdC90YI6IHswfVwiLFxuXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHBhdGg6IFwi0J/Rg9GC0YxcIixcbiAgICB2YWx1ZU5hbWU6IFwi0J3QsNC30LLQsNC90LjQtSDQv9GD0L3QutGC0LBcIixcbiAgICB0aXRsZU5hbWU6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6INC/0YPQvdC60YLQsFwiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwi0JLQstC10LTQuNGC0LUg0LfQsNCz0L7Qu9C+0LLQvtC6XCIsXG4gICAgc3VydmV5VGl0bGVQbGFjZWhvbGRlcjogXCLQktCy0LXQtNC40YLQtSDQt9Cw0LPQvtC70L7QstC+0Log0L7Qv9GA0L7RgdCwXCIsXG4gICAgcGFnZVRpdGxlUGxhY2Vob2xkZXI6IFwi0JLQstC10LTQuNGC0LUg0LfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YtcIixcbiAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcItCS0LLQtdC00LjRgtC1INC+0L/QuNGB0LDQvdC40LVcIixcbiAgICBzdXJ2ZXlEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcItCS0LLQtdC00LjRgtC1INC+0L/QuNGB0LDQvdC40LUg0L7Qv9GA0L7RgdCwXCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwi0JLQstC10LTQuNGC0LUg0L7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLXCIsXG5cbiAgICBzaG93T3RoZXJJdGVtOiBcItCV0YHRgtGMINC/0YPQvdC60YIgJ9CU0YDRg9Cz0L7QtSdcIixcbiAgICBvdGhlclRleHQ6IFwi0KLQtdC60YHRgiDQv9GD0L3QutGC0LAgJ9CU0YDRg9Cz0L7QtSdcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwi0J3QtdGCINC90Lgg0L7QtNC90L7Qs9C+INC/0YPQvdC60YLQsFwiLFxuICAgIG5vbmVUZXh0OiBcItCi0LXQutGB0YIg0L/Rg9C90LrRgtCwICfQndC40YfQtdCz0L4nXCIsXG4gICAgaGFzU2VsZWN0QWxsOiBcItCS0YvQsdGA0LDRgtGMINCy0YHQtSDQv9GD0L3QutGC0YtcIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcItCi0LXQutGB0YIg0L/Rg9C90LrRgtCwICfQktGL0LHRgNCw0YLRjCDQstGB0LUg0L/Rg9C90LrRgtGLJ1wiLFxuICAgIGNob2ljZXNNaW46IFwi0JzQuNC90LjQvNCw0LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INC00LvRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDRgdCz0LXQvdC10YDQuNGA0L7QstCw0L3QvdGL0YUg0Y3Qu9C10LzQtdC90YLQvtCyXCIsXG4gICAgY2hvaWNlc01heDogXCLQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0YHQs9C10L3QtdGA0LjRgNC+0LLQsNC90L3Ri9GFINGN0LvQtdC80LXQvdGC0L7QslwiLFxuICAgIGNob2ljZXNTdGVwOiBcItCg0LDQt9C90LjRhtCwINC80LXQttC00YMg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0YHQs9C10L3QtdGA0LjRgNC+0LLQsNC90YvQvNC4INGN0LvQtdC80LXQvdGC0LDQvNC4XCIsXG4gICAgbmFtZTogXCLQndCw0LfQstCw0L3QuNC1XCIsXG4gICAgdGl0bGU6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6XCIsXG4gICAgY2VsbFR5cGU6IFwi0KLQuNC/INGP0YfQtdC50LrQuFwiLFxuICAgIENvbENvdW50OiBcItCa0L7Qu9C40YfQtdGB0YLQstC+INGB0YLQvtC70LHRhtC+0LJcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwi0JLRi9Cx0YDQsNGC0Ywg0L/QvtGA0Y/QtNC+0Log0L7RgtCx0L7RgNCwXCIsXG4gICAgdmlzaWJsZTogXCLQntGC0L7QsdGA0LDQttCw0YLRjD9cIixcbiAgICBpc1JlcXVpcmVkOiBcItCe0LHRj9C30LDRgtC10LvRjNC90YvQuT9cIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcItCS0YHQtSDRgdGC0YDQvtC60Lgg0L7QsdGP0LfQsNGC0LXQu9GM0L3RiyDQtNC70Y8g0LfQsNC/0L7Qu9C90LXQvdC40Y9cIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCLQrdGC0L4g0L/QvtC70LUg0L7QsdGP0LfQsNGC0LXQu9GM0L3QvtC1INC00LvRjyDQt9Cw0L/QvtC70L3QtdC90LjRj1wiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwi0J3QsNGH0LjQvdCw0YLRjCDRgSDQvdC+0LLQvtC5INGB0YLRgNC+0LrQuD9cIixcbiAgICByb3dzOiBcItCa0L7Qu9C40YfQtdGB0YLQstC+INGB0YLRgNC+0LpcIixcbiAgICBQbGFjZUhvbGRlcjogXCLQn9C70LXQudGB0YXQvtC70LTQtdGAXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwi0J/QvtC60LDQt9Cw0YLRjCDQv9GA0LXQtNC/0YDQvtGB0LzQvtGC0YA/XCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcItCl0YDQsNC90LjRgtGMINGB0L7QtNC10YDQttC40LzQvtC1INGE0LDQudC70LAg0LIg0YTQvtGA0LzQsNGC0LUgSlNPTiDQutCw0Log0YLQtdC60YHRglwiLFxuICAgIE1heFNpemU6IFwi0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCDRhNCw0LnQu9CwINCyINCx0LDQudGC0LDRhVwiLFxuICAgIEltYWdlSGVpZ2h0OiBcItCS0YvRgdC+0YLQsCDQuNC30L7QsdGA0LDQttC10L3QuNGPXCIsXG4gICAgSW1hZ2VXaWR0aDogXCLQqNC40YDQuNC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRj1wiLFxuICAgIHJvd0NvdW50OiBcItCa0L7Qu9C40YfQtdGB0YLQstC+INGB0YLRgNC+0LpcIixcbiAgICBjb2x1bW5MYXlvdXQ6IFwi0JzQsNC60LXRgiDRgdGC0L7Qu9Cx0YbQvtCyXCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwi0JTQvtCx0LDQstC40YLRjCDRgNCw0YHQv9C+0LvQvtC20LXQvdC40LUg0LrQvdC+0L/QutC4INGB0YLRgNC+0LrQuFwiLFxuICAgIGFkZFJvd1RleHQ6IFwi0JTQvtCx0LDQstC40YLRjCDRgtC10LrRgdGCINC60L3QvtC/0LrQuCDRgdGC0YDQvtC60LhcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcItCj0LTQsNC70LjRgtGMINC60L3QvtC/0LrRgyDRgdGC0YDQvtC60Lgg0YLQtdC60YHRgtCwXCIsXG4gICAgcmF0ZU1pbjogXCLQnNC40L3QuNC80LDQu9GM0L3Ri9C5INGA0LXQudGC0LjQvdCzXCIsXG4gICAgcmF0ZU1heDogXCLQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0YDQtdC50YLQuNC90LNcIixcbiAgICByYXRlU3RlcDogXCLQqNCw0LMg0YDQtdC50YLQuNC90LPQsFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCLQntC/0LjRgdCw0L3QuNC1INC00LvRjyDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0YDQtdC50YLQuNC90LPQsFwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCLQntC/0LjRgdCw0L3QuNC1INC00LvRjyDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LPQviDRgNC10LnRgtC40L3Qs9CwXCIsXG4gICAgaW5wdXRUeXBlOiBcItCi0LjQvyDQstCy0L7QtNCwXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwi0J/QsNGA0LDQvNC10YLRgNGLINC/0L7QtNC/0LjRgdC4XCIsXG4gICAgRGVmYXVsdFZhbHVlOiBcItCX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y5cIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwi0KLQtdC60YHRgiDRj9GH0LXQtdC6INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOXCIsXG5cbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCLQndCw0YHRgtGA0L7QudC60Lgg0L7Qv9GA0L7RgdC90LjQutCwXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcItCY0LfQvNC10L3QuNGC0Yw6IHswfVwiLFxuXG4gICAgbWF4TGVuZ3RoOiBcItCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQtNC70LjQvdCwXCIsXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcItCh0L7QsdGA0LDRgtGMXCIsXG4gICAgZWRpdEV4cHJlc3Npb246IFwi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YxcIixcbiAgICBhbmQ6IFwi0JhcIixcbiAgICBvcjogXCLQmNCb0JhcIixcbiAgICByZW1vdmU6IFwi0J/QtdGA0LXQvNC10YHRgtC40YLRjFwiLFxuICAgIGFkZENvbmRpdGlvbjogXCLQtNC+0LHQsNCy0LjRgtGMINGD0YHQu9C+0LLQuNC1XCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCLQn9C+0LrQsNC30LDRgtGML9GB0LrRgNGL0YLRjCDQt9Cw0LPQvtC70L7QstC+0LpcIixcbiAgICBsb2NhbGU6IFwi0K/Qt9GL0Log0L/QviDRg9C80L7Qu9GH0LDQvdC40Y5cIixcbiAgICBzaW11bGF0b3I6IFwi0JLRi9Cx0LXRgNC40YLQtSDRg9GB0YLRgNC+0LnRgdGC0LLQvlwiLFxuICAgIGxhbmRzY2FwZU9yaWVudGF0aW9uOiBcItCQ0LvRjNCx0L7QvNC90LDRj1wiLFxuICAgIG1vZGU6IFwi0KDQtdC20LjQvCAo0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtS/Qv9GA0L7RgdC80L7RgtGAKVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcItCe0YfQuNGB0YLQuNGC0Ywg0L3QtdCy0LjQtNC40LzRi9C1INC30L3QsNGH0LXQvdC40Y9cIixcbiAgICBjb29raWVOYW1lOiBcItCY0LzRjyBDb29raWUgKNC+0YLQutC70Y7Rh9C40YLRjCDQv9C+0LLRgtC+0YDQvdC+0LUg0L/RgNC+0YXQvtC20LTQtdC90LjQtSDQvtC/0YDQvtGB0LAg0LvQvtC60LDQu9GM0L3QvilcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCLQn9C+0LrQsNC30LDRgtGMINGA0LXQt9GD0LvRjNGC0LDRgtGLINC+0L/RgNC+0YHQsCDQvdCwINGB0YLRgNCw0L3QuNGG0LUg0YDRj9C00L7QvFwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcItCl0YDQsNC90LjRgtGMINC30LDQvdGH0LXQvdC40LUgJ9CU0YDRg9Cz0L7QtScg0LIg0L7RgtC00LXQu9GM0L3QvtC8INC/0L7Qu9C1XCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0LfQsNCz0L7Qu9C+0LLQutC4INGB0YLRgNCw0L3QuNGGXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINC90L7QvNC10YDQsCDRgdGC0YDQsNC90LjRhlwiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCLQotC10LrRgdGCINCyINC60L3QvtC/0LrQtSAn0J/RgNC10LTRi9C00YPRidCw0Y8g0YHRgtGA0LDQvdC40YbQsCdcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwi0KLQtdC60YHRgiDQsiDQutC90L7Qv9C60LUgJ9Ch0LvQtdC00YPRjtGJ0LDRjyDRgdGC0YDQsNC90LjRhtCwJ1wiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLQotC10LrRgdGCINCyINC60L3QvtC/0LrQtSAn0JfQsNCy0LXRgNGI0LjRgtGMJ1wiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCLQotC10LrRgdGCINCyINC60L3QvtC/0LrQtSAn0J3QsNGH0LDRgtGMJ1wiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCLQn9C+0LrQsNC30YvQstCw0YLRjCDQutC90L7Qv9C60Lgg0L3QsNCy0LjQs9Cw0YbQuNC4ICjQvdCw0LLQuNCz0LDRhtC40Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4pXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0LrQvdC+0L/QutC4ICfQn9GA0LXQtNGL0LTRg9GJ0LDRjyDRgdGC0YDQsNC90LjRhtCwJyAo0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINC80L7QttC10YIg0LLQtdGA0L3Rg9GC0YzRgdGPINC90LAg0L/RgNC10LTRi9C00YPRidGD0Y4g0YHRgtGA0LDQvdC40YbRgylcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi0J/QtdGA0LLQsNGPINGB0YLRgNCw0L3QuNGG0LAg0L7Qv9GA0L7RgdC90LjQutCwINGP0LLQu9GP0LXRgtGB0Y8g0YHRgtCw0YDRgtC+0LLQvtC5INGB0YLRgNCw0L3QuNGG0LXQuS5cIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCLQn9C+0LrQsNC30YvQstCw0YLRjCDRgdGC0YDQsNC90LjRhtGDINGBINGC0LXQutGB0YLQvtC8INC/0L4g0LfQsNCy0LXRgNGI0LXQvdC40Y4g0LfQsNC/0L7Qu9C90LXQvdC40Y8gKEhUTUwg0YTQuNC90LDQu9GM0L3QvtC5INGB0YLRgNCw0L3QuNGG0YspXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCLQn9C10YDQtdGF0L7QtNC40YLRjCDQvdCwINGB0LvQtdC00YPRjtGJ0YPRjiDRgdGC0YDQsNC90LjRhtGDINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC/0YDQuCDQt9Cw0L/QvtC70L3QtdC90LjQuCDQstGB0LXRhSDQstC+0L/RgNC+0YHQvtCyXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINC/0YDQvtCz0YDQtdGB0YEg0LfQsNC/0L7Qu9C90LXQvdC40Y9cIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwi0KDQsNGB0L/QvtC70L7QttC10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDQstC+0L/RgNC+0YHQsFwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCLQodC40LzQstC+0Lsg0LTQu9GPINC+0LHRj9C30LDRgtC10LvRjNC90L7Qs9C+INCy0L7Qv9GA0L7RgdCwXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcItCd0LDRh9Cw0LvRjNC90YvQuSDQuNC90LTQtdC60YEg0LLQvtC/0YDQvtGB0LAgKDEsIDIg0LjQu9C4ICdBJywgJ9CwJylcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINC90L7QvNC10YDQsCDQstC+0L/RgNC+0YHQvtCyXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcItCo0LDQsdC70L7QvSDQvdCw0LfQstCw0L3QuNGPINC+0L/RgNC+0YHQsCwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y46IHvQvdC1fSB70YLRgNC10LHRg9C10YJ9IHvRgtC10LrRgdGC0LB9LlwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCLQoNCw0LfQvNC10YnQtdC90LjQtSDQvtGI0LjQsdC60Lgg0L7Qv9GA0L7RgdCwXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcItCk0L7QutGD0YHQuNGA0L7QstCw0L3QuNC1INC90LAg0L/QtdGA0LLQvtC8INCy0L7Qv9GA0L7RgdC1INC/0YDQuCDQuNC30LzQtdC90LXQvdC40Lgg0YHRgtGA0LDQvdC40YbRi1wiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcItCh0L7RgNGC0LjRgNC+0LLQutCwINGN0LvQtdC80LXQvdGC0L7QsiDQvdCwINGB0YLRgNCw0L3QuNGG0LVcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwi0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INCy0YDQtdC80Y8g0LIg0YHQtdC60YPQvdC00LDRhSwg0YfRgtC+0LHRiyDQt9Cw0L/QvtC70L3QuNGC0Ywg0L7Qv9GA0L7RgdC90LjQulwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwi0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INCy0YDQtdC80Y8g0LIg0YHQtdC60YPQvdC00LDRhSwg0YfRgtC+0LHRiyDQt9Cw0L/QvtC70L3QuNGC0Ywg0YHRgtGA0LDQvdC40YbRgyDQvtC/0YDQvtGB0L3QuNC60LBcIixcbiAgICBzaG93VGltZXJQYW5lbDogXCLQn9C+0LrQsNC30YvQstCw0YLRjCDQv9Cw0L3QtdC70Ywg0YLQsNC50LzQtdGA0LBcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0YDQtdC20LjQvCDQv9Cw0L3QtdC70Lgg0YLQsNC50LzQtdGA0LBcIixcbiAgICBSZW5kZXJNb2RlOiBcItCg0LXQttC40Lwg0LLQuNC30YPQsNC70LjQt9Cw0YbQuNC4XCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCLQoNCw0LfRgNC10YjQuNGC0Ywg0LTQvtCx0LDQstC70LXQvdC40LUg0L/QsNC90LXQu9C4XCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLQoNCw0LfRgNC10YjQuNGC0Ywg0YPQtNCw0LvQtdC90LjQtSDQv9Cw0L3QtdC70LhcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwi0JTQvtCx0LDQstC70LXQvdC40LUg0YLQtdC60YHRgtCwINC90LAg0L/QsNC90LXQu9C4XCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcItCj0LTQsNC70LXQvdC40LUg0YLQtdC60YHRgtCwINC90LAg0L/QsNC90LXQu9C4XCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINCy0YHQtSDRjdC70LXQvNC10L3RgtGLINC90LAg0L7QtNC90L7QuSDRgdGC0YDQsNC90LjRhtC1XCIsXG4gICAgSFRNTDogXCJIVE1MXCIsXG4gICAgZXhwcmVzc2lvbjogXCLQktGL0YDQsNC20LXQvdC40LVcIixcblxuICAgIG1pblZhbHVlOiBcItCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtVwiLFxuICAgIG1heFZhbHVlOiBcItCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1XCIsXG4gICAgbUlOTEVOR1RIOiBcItCc0LjQvdC40LzQsNC70YzQvdCw0Y8g0LTQu9C40L3QsFwiLFxuICAgIGFsbG93RGlnaXRzOiBcItCg0LDQt9GA0LXRiNC40YLRjCDRhtC40YTRgNGLXCIsXG4gICAgbWluQ291bnQ6IFwi0JzQuNC90LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQvlwiLFxuICAgIG1heENvdW50OiBcItCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQvlwiLFxuICAgIHJlZ2V4OiBcItCg0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtVwiLFxuXG4gICAgdG90YWxUZXh0OiBcItCe0LHRidC40Lkg0YLQtdC60YHRglwiLFxuICAgIHRvdGFsVHlwZTogXCLQntCx0YnQuNC5INGC0LjQv1wiLFxuICAgIHRvdGFsRXhwcmVzc2lvbjogXCLQntCx0YnQtdC1INCy0YvRgNCw0LbQtdC90LjQtVwiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcItCe0LHRidC40Lkg0YHRgtC40LvRjCDQvtGC0L7QsdGA0LDQttC10L3QuNGPXCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCLQntCx0YnQsNGPINCy0LDQu9GO0YLQsFwiLFxuICAgIHRvdGFsRm9ybWF0OiBcItCe0LHRidC40Lkg0YTQvtGA0LzQsNGCXCIsXG4gICAgLy8gSGVhZGVyICBhZG9ybmVyXG4gICAgbG9nb1Bvc2l0aW9uOiBcItCc0LXRgdGC0L7Qv9C+0LvQvtC20LXQvdC40LUg0LvQvtCz0L7RgtC40L/QsFwiLFxuICAgIGFkZExvZ286IFwi0JTQvtCx0LDQstC40YLRjCDQu9C+0LPQvtGC0LjQvy4uLlwiLFxuICAgIGNoYW5nZUxvZ286IFwi0JjQt9C80LXQvdC40YLRjCDQu9C+0LPQvtGC0LjQvy4uLlwiLFxuICAgIGxvZ29Qb3NpdGlvbnM6IHtcbiAgICAgIG5vbmU6IFwi0KDQsNC30LzQtdGB0YLQuNGC0Ywg0LvQvtCz0L7RgtC40L9cIixcbiAgICAgIGxlZnQ6IFwi0KHQu9C10LLQsFwiLFxuICAgICAgcmlnaHQ6IFwi0KHQv9GA0LDQstCwXCIsXG4gICAgICB0b3A6IFwi0KHQstC10YDRhdGDXCIsXG4gICAgICBib3R0b206IFwi0KHQvdC40LfRg1wiLFxuICAgIH0sXG5cbiAgICB0YWJzOiB7XG4gICAgICBnZW5lcmFsOiBcItCe0LHRidC40LVcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcItCf0LDRgNCw0LzQtdGC0YDRi1wiLFxuICAgICAgSFRNTDogXCLQoNC10LTQsNC60YLQvtGAIEhUTUxcIixcbiAgICAgIGNvbHVtbnM6IFwi0KHRgtC+0LvQsdGG0YtcIixcbiAgICAgIHJvd3M6IFwi0KHRgtGA0L7QutC4XCIsXG4gICAgICBjaG9pY2VzOiBcItCS0YvQsdC+0YBcIixcbiAgICAgIGl0ZW1zOiBcItCt0LvQtdC80LXQvdGC0YtcIixcbiAgICAgIHZpc2libGVJZjogXCLQntGC0L7QsdGA0LDQttCw0YLRjCwg0LXRgdC70LhcIixcbiAgICAgIGVuYWJsZUlmOiBcItCU0L7RgdGC0YPQv9C10L0sINC10YHQu9C4XCIsXG4gICAgICByZXF1aXJlZElmOiBcItCe0LHRj9C30LDRgtC10LvQtdC9INC00LvRjyDQt9Cw0L/QvtC70L3QtdC90LjRjywg0LXRgdC70LhcIixcbiAgICAgIHJhdGVWYWx1ZXM6IFwi0J7RhtC10L3QuNGC0Ywg0LLQsNC20L3QvtGB0YLRjCjQstC10YEpINCy0L7Qv9GA0L7RgdCwXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwi0JLRi9Cx0L7RgCDQuNC3INCY0L3RgtC10YDQvdC10YLQsFwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCLQktGL0LHQvtGAINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOXCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCLQktCy0L7QtCDQvdC10YHQutC+0LvRjNC60LjRhSDRgtC10LrRgdGC0L7QstGL0YUg0L/QvtC70LXQuVwiLFxuICAgICAgdmFsaWRhdG9yczogXCLQktCw0LvQuNC00LDRgtC+0YDRi1wiLFxuICAgICAgbmF2aWdhdGlvbjogXCLQndCw0LLQuNCz0LDRhtC40Y9cIixcbiAgICAgIHF1ZXN0aW9uOiBcItCS0L7Qv9GA0L7RgVwiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCJIVE1MINGE0LjQvdCw0LvRjNC90L7QuSDRgdGC0YDQsNC90LjRhtGLXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwiSFRNTCDRhNC40L3QsNC70YzQvdC+0Lkg0YHRgtGA0LDQvdC40YbRiyDQv9GA0Lgg0YPRgdC70L7QstC40LhcIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcItCX0LDQs9GA0YPQt9C60LAgSFRNTFwiLFxuICAgICAgdGltZXI6IFwi0KLQsNC50LzQtdGAL9CS0LjQutGC0L7RgNC40L3QsFwiLFxuICAgICAgY2FsY3VsYXRlZFZhbHVlczogXCLQoNCw0YHRh9C10YLQvdGL0LUg0LfQvdCw0YfQtdC90LjRj1wiLFxuICAgICAgdHJpZ2dlcnM6IFwi0KLRgNC40LPQs9C10YDRi1wiLFxuICAgICAgdGVtcGxhdGVUaXRsZTogXCLQndCw0LfQstCw0L3QuNC1INGI0LDQsdC70L7QvdCwXCIsXG4gICAgICB0b3RhbHM6IFwi0JjRgtC+0LPQuFwiLFxuICAgICAgbG9naWM6IFwi0JvQvtCz0LjQutCwXCIsXG4gICAgICBsYXlvdXQ6IFwi0J/Qu9Cw0L3QuNGA0L7QstC60LBcIixcbiAgICAgIGRhdGE6IFwi0JTQsNC90L3Ri9C1XCIsXG4gICAgICB2YWxpZGF0aW9uOiBcItCf0YDQvtCy0LXRgNC60LBcIixcbiAgICAgIGNlbGxzOiBcItCv0YfQtdC50LrQuFwiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcItCf0L7QutCw0LfQsNGC0Ywg0L/QviDQt9Cw0LLQtdGA0YjQtdC90LjRjlwiLFxuICAgICAgbG9nbzogXCLQm9C+0LPQvtGC0LjQvyDQsiDQt9Cw0LPQvtC70L7QstC60LUg0L7Qv9GA0L7RgdC90LjQutCwXCIsXG4gICAgICBvdGhlcnM6IFwi0JTRgNGD0LPQuNC1XCIsXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YHQstC+0LnRgdGC0LLQviAnezB9J1wiLFxuICAgIGl0ZW1zOiBcIlvQrdC70LXQvNC10L3RgtGLOiB7MH1dXCIsXG5cbiAgICBlbnRlck5ld1ZhbHVlOiBcItCf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDQt9C90LDRh9C10L3QuNC1LlwiLFxuICAgIG5vcXVlc3Rpb25zOiBcItCSINC+0L/RgNC+0YHQvdC40LrQtSDQvdC10YIg0L3QuCDQvtC00L3QvtCz0L4g0LLQvtC/0YDQvtGB0LBcIixcbiAgICBjcmVhdGV0cmlnZ2VyOiBcItCf0L7QttCw0LvRg9C50YHRgtCwLCDRgdC+0LfQtNCw0LnRgtC1INGC0YDQuNCz0LPQtdGAXCIsXG4gICAgdHJpZ2dlck9uOiBcItCeXCIsXG4gICAgdHJpZ2dlck1ha2VQYWdlc1Zpc2libGU6IFwi0KHQtNC10LvQsNGC0Ywg0YHRgtGA0LDQvdC40YbRiyDQstC40LTQuNC80YvQvNC4OlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCLQodC00LXQu9Cw0YLRjCDRjdC70LXQvNC10L3RgtGLINCy0LjQtNC40LzRi9C80Lg6XCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCLQl9Cw0LLQtdGA0YjQuNGC0Ywg0L7Qv9GA0L7RgSwg0LXRgdC70Lgg0LLRgdC1INC/0L7Qu9GD0YfQuNGB0Y8uXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCLQotGA0LjQs9C10YAg0L3QtSDRg9GB0YLQsNC90L7QstC70LXQvVwiLFxuICAgIHRyaWdnZXJSdW5JZjogXCLQndCw0YfQsNGC0YwsINC10YHQu9C4XCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCLQmNC30LzQtdC90LjRgtGMINC30L3QsNGH0LXQvdC40LU6XCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcItCh0LrQvtC/0LjRgNC+0LLQsNGC0Ywg0LfQvdCw0YfQtdC90LjQtSDQuNC3OlwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcItCS0YvQv9C+0LvQvdC40YLRjCDRjdGC0L4g0LLRi9GA0LDQttC10L3QuNC1OlwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCLQsjpcIixcbiAgICB0cmlnZ2VyR290b05hbWU6IFwi0J/QtdGA0LXQudGC0Lgg0Log0LLQvtC/0YDQvtGB0YM6XCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwi0J3QtSDQv9C+0LzQtdGJ0LDRgtGMINC/0LXRgNC10LzQtdC90L3Rg9GOINCyINGA0LXQt9GD0LvRjNGC0LDRgiDQvtC/0YDQvtGB0L3QuNC60LAuXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eTogXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LrQvtGA0YDQtdC60YLQvdC+0LUg0LLRi9GA0LDQttC10L3QuNC1XCJcbiAgfSxcbiAgLy8gUHJvcGVydHkgdmFsdWVzXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCJ0cnVlXCIsXG4gICAgZmFsc2U6IFwiZmFsc2VcIixcbiAgICBpbmhlcml0OiBcItCd0LDRgdC70LXQtNC+0LLQsNGC0YxcIixcbiAgICBzaG93OiBcItCf0L7QutCw0LfQsNGC0YxcIixcbiAgICBoaWRlOiBcItCh0LrRgNGL0YLRjFwiLFxuICAgIGRlZmF1bHQ6IFwi0J/QviDRg9C80L7Qu9GH0LDQvdC40Y5cIixcbiAgICBpbml0aWFsOiBcItCY0LfQvdCw0YfQsNC70YzQvdGL0Lkg0L/QvtGA0Y/QtNC+0LpcIixcbiAgICByYW5kb206IFwi0KHQu9GD0YfQsNC50L3Ri9C5INC/0L7RgNGP0LTQvtC6XCIsXG4gICAgY29sbGFwc2VkOiBcItCf0YDQtdGA0LLQsNC9XCIsXG4gICAgZXhwYW5kZWQ6IFwi0KDQsNGB0YjQuNGA0LXQvVwiLFxuICAgIG5vbmU6IFwi0J3QtdGCXCIsXG4gICAgYXNjOiBcItCf0L4g0LLQvtC30YDQsNGB0YLQsNC90LjRjlwiLFxuICAgIGRlc2M6IFwi0J/QviDRg9Cx0YvQstCw0L3QuNGOXCIsXG4gICAgaW5kZXRlcm1pbmF0ZTogXCLQndC10L7Qv9GA0LXQtNC10LvQtdC90L3Ri9C5XCIsXG4gICAgZGVjaW1hbDogXCLQlNC10YHRj9GC0LjRh9C90YvQuVwiLFxuICAgIGN1cnJlbmN5OiBcItCS0LDQu9GO0YLQsFwiLFxuICAgIHBlcmNlbnQ6IFwi0J/RgNC+0YbQtdC90YLRi1wiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwi0KDQsNGB0YjQuNGA0LXQvSDQv9C10YDQstGL0LlcIixcbiAgICBvZmY6IFwi0JLRi9C60LvRjtGH0LjRgtGMXCIsXG4gICAgb25QYW5lbDogXCLQndCwINC/0LDQvdC10LvQuFwiLFxuICAgIG9uU3VydmV5OiBcItCSINC+0L/RgNC+0YHQvdC40LrQtVwiLFxuICAgIGxpc3Q6IFwi0KHQv9C40YHQvtC6XCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwicHJvZ3Jlc3NUb3BcIixcbiAgICBwcm9ncmVzc0JvdHRvbTogXCJwcm9ncmVzc0JvdHRvbVwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcInByb2dyZXNzVG9wQm90dG9tXCIsXG4gICAgaG9yaXpvbnRhbDogXCLQk9C+0YDQuNC30L7QvdGC0LDQu9GM0L3QvlwiLFxuICAgIHZlcnRpY2FsOiBcItCS0LXRgNGC0LjQutCw0LvRjNC90L5cIixcbiAgICB0b3A6IFwi0KHQstC10YDRhdGDXCIsXG4gICAgYm90dG9tOiBcItCh0L3QuNC30YNcIixcbiAgICB0b3BCb3R0b206IFwi0KHQstC10YDRhdGDINC4INGB0L3QuNC30YNcIixcbiAgICBsZWZ0OiBcItCh0LvQtdCy0LBcIixcbiAgICBjb2xvcjogXCLQptCy0LXRglwiLFxuICAgIGRhdGU6IFwi0JTQsNGC0LBcIixcbiAgICBkYXRldGltZTogXCLQlNCw0YLQsCDQuCDQstGA0LXQvNGPXCIsXG4gICAgXCJkYXRldGltZS1sb2NhbFwiOiBcItCc0LXRgdGC0L3Ri9C1INC00LDRgtCwINC4INCy0YDQtdC80Y9cIixcbiAgICBlbWFpbDogXCJFbWFpbFwiLFxuICAgIG1vbnRoOiBcItCc0LXRgdGP0YZcIixcbiAgICBudW1iZXI6IFwi0J3QvtC80LXRgFwiLFxuICAgIHBhc3N3b3JkOiBcItCf0LDRgNC+0LvRjFwiLFxuICAgIHJhbmdlOiBcItCU0LjQsNC/0LDQt9C+0L1cIixcbiAgICB0ZWw6IFwi0KLQtdC70LXRhNC+0L1cIixcbiAgICB0ZXh0OiBcItCi0LXQutGB0YJcIixcbiAgICB0aW1lOiBcItCS0YDQtdC80Y9cIixcbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgd2VlazogXCLQndC10LTQtdC70Y9cIixcbiAgICBoaWRkZW46IFwi0KHQutGA0YvRglwiLFxuICAgIG9uOiBcItCS0LrQu9GO0YfQuNGC0YxcIixcbiAgICBvblBhZ2U6IFwi0J3QsCDRgdGC0YDQsNC90LjRhtC1XCIsXG4gICAgZWRpdDogXCLQoNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1XCIsXG4gICAgZGlzcGxheTogXCLQn9GA0L7RgdC80L7RgtGAXCIsXG4gICAgb25Db21wbGV0ZTogXCLQn9C+INC30LDQstC10YDRiNC10L3QuNGOXCIsXG4gICAgb25IaWRkZW46IFwi0J/QviDRgdC60YDRi9GC0LjRjlwiLFxuICAgIGFsbDogXCLQktGB0LVcIixcbiAgICBwYWdlOiBcItCh0YLRgNCw0L3QuNGG0LBcIixcbiAgICBzdXJ2ZXk6IFwi0J7Qv9GA0L7RgVwiLFxuICAgIG9uTmV4dFBhZ2U6IFwi0J/RgNC4INC/0LXRgNC10YXQvtC00LUg0L3QsCDRgdC70LXQtNGD0Y7RidGD0Y4g0YHRgtGA0LDQvdC40YbRg1wiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcItCf0YDQuCDQuNC30LzQtdC90LXQvdC40Lgg0LfQvdCw0YfQtdC90LjRj1wiXG4gIH0sXG4gIC8vIE9wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcItC90LUg0LfQsNC/0L7Qu9C90LXQvdC+XCIsXG4gICAgbm90ZW1wdHk6IFwi0LfQsNC/0L7Qu9C90LXQvdC+XCIsXG4gICAgZXF1YWw6IFwi0YDQsNCy0L3QvlwiLFxuICAgIG5vdGVxdWFsOiBcItC90LUg0YDQsNCy0L3QvlwiLFxuICAgIGNvbnRhaW5zOiBcItGB0L7QtNC10YDQttC40YJcIixcbiAgICBub3Rjb250YWluczogXCLQvdC1INGB0L7QtNC10YDQttC40YJcIixcbiAgICBhbnlvZjogXCLQu9GO0LHQvtC5INC40LdcIixcbiAgICBhbGxvZjogXCLQstGB0LUg0LjQt1wiLFxuICAgIGdyZWF0ZXI6IFwi0LHQvtC70YzRiNC1XCIsXG4gICAgbGVzczogXCLQvNC10L3RjNGI0LVcIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCLQsdC+0LvRjNGI0LUg0LjQu9C4INGA0LDQstC90L5cIixcbiAgICBsZXNzb3JlcXVhbDogXCLQvNC10L3RjNGI0LUg0LjQu9C4INGA0LDQstC90L5cIlxuICB9LFxuICAvLyBFbWJlZCB3aW5kb3dcbiAgZXc6IHtcbiAgICBhbmd1bGFyOiBcItCY0YHQv9C+0LvRjNC30YPQudGC0LUg0LLQtdGA0YHQuNGOIEFuZ3VsYXJcIixcbiAgICBqcXVlcnk6IFwi0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSDQstC10YDRgdC40Y4galF1ZXJ5XCIsXG4gICAga25vY2tvdXQ6IFwi0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSDQstC10YDRgdC40Y4gS25vY2tvdXRcIixcbiAgICByZWFjdDogXCLQmNGB0L/QvtC70YzQt9GD0LnRgtC1INCy0LXRgNGB0LjRjiBSZWFjdFwiLFxuICAgIHZ1ZTogXCLQmNGB0L/QvtC70YzQt9GD0LnRgtC1INCy0LXRgNGB0LjRjiBWdWVcIixcbiAgICBib290c3RyYXA6IFwi0JTQu9GPINCx0LjQsdC70LjQvtGC0LXQutC4IGJvb3RzdHJhcFwiLFxuICAgIHN0YW5kYXJkOiBcItCR0LXQtyDQsdC40LHQu9C40L7RgtC10LrQuCBib290c3RyYXBcIixcbiAgICBzaG93T25QYWdlOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINC+0L/RgNC+0YHQvdC40Log0L3QsCDRgdGC0YDQsNC90LjRhtC1XCIsXG4gICAgc2hvd0luV2luZG93OiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINC+0L/RgNC+0YHQvdC40Log0LIg0LzQvtC00LDQu9GM0L3QvtC8INC+0LrQvdC1XCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwi0JfQsNCz0YDRg9C30LjRgtGMIEpzb24g0L7Qv9GA0L7RgdC90LjQutCwINGBINGB0LXRgNCy0LXRgNCwXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwi0KHQutGA0LjQv9GC0Ysg0Lgg0YHRgtC40LvQuFwiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIlxuICB9LFxuICAvLyDQntC/0YDQvtGBINCi0LXRgdGCXG4gIHRzOiB7XG4gICAgc2VsZWN0UGFnZTogXCLQktGL0LHQtdGA0LjRgtC1INGB0YLRgNCw0L3QuNGG0YMsINGH0YLQvtCx0Ysg0L/RgNC+0LLQtdGA0LjRgtGMINGN0YLQvjpcIixcbiAgICBzaG93SW52aXNpYmxlRWxlbWVudHM6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0YHQutGA0YvRgtGL0LUg0Y3Qu9C10LzQtdC90YLRi1wiXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCLQmtC+0LvQuNGH0LXRgdGC0LLQviDQvtGC0LLQtdGC0L7QslwiLFxuICAgIEVtYWlsVmFsaWRhdG9yOiBcIkVtYWlsXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCLQktGL0YDQsNC20LXQvdC40LVcIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcItCn0LjRgdC70L5cIixcbiAgICByZWdleHZhbGlkYXRvcjogXCLQoNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LVcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcItCi0LXQutGB0YJcIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCLQl9Cw0LLQtdGA0YjQuNGC0Ywg0L7Qv9GA0L7RgVwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCLQo9GB0YLQsNC90L7QstC40YLRjCDQt9C90LDRh9C10L3QuNC1XCIsXG4gICAgY29weXZhbHVldHJpZ2dlcjogXCLQodC60L7Qv9C40YDQvtCy0LDRgtGMINC30L3QsNGH0LXQvdC40LVcIixcbiAgICBza2lwdHJpZ2dlcjogXCLQn9C10YDQtdC50YLQuCDQuiDQstC+0L/RgNC+0YHRg1wiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcItCX0LDQv9GD0YHRgtC40YLRjCDQstGL0YDQsNC20LXQvdC40LVcIixcbiAgICB2aXNpYmxldHJpZ2dlcjogXCLQmNC30LzQtdC90LjRgtGMINCy0LjQtNC40LzQvtGB0YLRjCAo0L3QtSDRgNC10LrQvtC80LXQvdC00YPQtdGC0YHRjylcIlxuICB9LFxuICAvLyBQcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICBuYW1lOiBcItCd0LDQt9Cy0LDQvdC40LVcIixcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCLQndCw0LfQstCw0L3QuNC1XCIsXG4gICAgICB0aXRsZTogXCLQntGB0YLQsNCy0YzRgtC1INC10LPQviDQv9GD0YHRgtGL0LwsINC10YHQu9C4INC+0L3QviDRgtCw0LrQvtC1INC20LUsINC60LDQuiAn0J3QsNC30LLQsNC90LjQtSdcIlxuICAgIH0sXG4gICAgbmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5OiBcItCe0YLQvtCx0YDQsNC20LXQvdC40LUg0L3QsNCy0LjQs9Cw0YbQuNC+0L3QvdGL0YUg0LrQvdC+0L/QvtC6XCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwi0KHQvtGA0YLQuNGA0L7QstC60LAg0Y3Qu9C10LzQtdC90YLQvtCyINC90LAg0YHRgtGA0LDQvdC40YbQtVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCLQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LLRgNC10LzRjyDQtNC70Y8g0LfQsNCy0LXRgNGI0LXQvdC40Y9cIixcblxuICAgIHZpc2libGU6IFwi0JLQuNC00LjQvNGL0LlcIixcbiAgICB2aXNpYmxlSWY6IFwi0J7RgtC+0LHRgNCw0LbQsNGC0YwsINC10YHQu9C4XCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcItCg0LDRgdC/0L7Qu9C+0LbQtdC90LjQtSDQt9Cw0LPQvtC70L7QstC60LAg0LLQvtC/0YDQvtGB0LBcIixcbiAgICBkZXNjcmlwdGlvbjogXCLQntC/0LjRgdCw0L3QuNC1XCIsXG4gICAgc3RhdGU6IFwi0KHQvtGB0YLQvtGP0L3QuNC1XCIsXG4gICAgaXNSZXF1aXJlZDogXCLQntCx0Y/Qt9Cw0YLQtdC70LXQvVwiLFxuICAgIHJlcXVpcmVkSWY6IFwi0J7QsdGP0LfQsNGC0LXQu9C10L0g0LXRgdC70LhcIixcbiAgICBpbmRlbnQ6IFwi0J7RgtGB0YLRg9C/XCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwi0K3RgtC+INC/0L7Qu9C1INC+0LHRj9C30LDRgtC10LvRjNC90L7QtSDQtNC70Y8g0LfQsNC/0L7Qu9C90LXQvdC40Y9cIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcItCd0LDRh9C40L3QsNGC0Ywg0YEg0L3QvtCy0L7QuSDRgdGC0YDQvtC60LhcIixcbiAgICBpbm5lckluZGVudDogXCLQktC90YPRgtGA0LXQvdC90LjQuSDQvtGC0YHRgtGD0L9cIixcbiAgICBwYWdlOiBcItCh0YLRgNCw0L3QuNGG0LBcIixcblxuICAgIHdpZHRoOiBcItCo0LjRgNC40L3QsFwiLFxuXG4gICAgY29tbWVudFRleHQ6IFwi0JrQvtC80LzQtdC90YLQsNGA0LjQuVwiLFxuICAgIHZhbHVlTmFtZTogXCLQndCw0LfQstCw0L3QuNC1INC30L3QsNGH0LXQvdC40Y9cIixcbiAgICBlbmFibGVJZjogXCLQlNC+0YHRgtGD0L/QtdC9INC/0YDQuCDRg9GB0LvQvtCy0LjQuFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCLQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCLQn9GA0LDQstC40LvRjNC90YvQuSDQvtGC0LLQtdGCXCIsXG4gICAgcmVhZE9ubHk6IFwi0KLQvtC70YzQutC+INC00LvRjyDRh9GC0LXQvdC40Y9cIixcbiAgICB2YWxpZGF0b3JzOiBcItCS0LDQu9C40LTQsNGC0L7RgNGLXCIsXG4gICAgdGl0bGVMb2NhdGlvbjogXCLQoNCw0YHQv9C+0LvQvtC20LXQvdC40LUg0LfQsNCz0L7Qu9C+0LLQutCwXCIsXG5cbiAgICBoYXNDb21tZW50OiBcItCV0YHRgtGMINC60L7QvNC80LXQvdGC0LDRgNC40LlcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcItCV0YHRgtGMINC30L3QsNGH0LXQvdC40LUgJ9CU0YDRg9Cz0L7QtSdcIixcbiAgICBjaG9pY2VzOiBcItCS0YvQsdC+0YBcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwi0JLRi9Cx0YDQsNGC0Ywg0L/QvtGA0Y/QtNC+0Log0LLRi9Cx0L7RgNCwXCIsXG4gICAgY2hvaWNlc0J5VXJsOiBcItCS0YvQsdGA0LDRgtGMINC40Lcg0LjQvdGC0LXRgNC90LXRgtCwXCIsXG4gICAgb3RoZXJUZXh0OiBcItCU0YDRg9Cz0L7QuSDRgtC10LrRgdGC0L7QstGL0Lkg0Y3Qu9C10LzQtdC90YJcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCLQotC10LrRgdGCINC+0YjQuNCx0LrQuCDQv9C+0LvRjyAn0JTRgNGD0LPQvtC1J1wiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcItCl0YDQsNC90LjRgtGMINC30L3QsNGH0LXQvdC40LUg0L/QvtC70Y8gJ9CU0YDRg9Cz0L7QtScsINC60LDQuiDQutC+0LzQvNC10L3RgtCw0YDQuNC5XCIsXG5cbiAgICBsYWJlbDogXCLQr9GA0LvRi9C6XCIsXG4gICAgc2hvd1RpdGxlOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINC90LDQt9Cy0LDQvdC40LVcIixcbiAgICB2YWx1ZVRydWU6IFwi0J/RgNCw0LLQuNC70YzQvdC+XCIsXG4gICAgdmFsdWVGYWxzZTogXCLQndC10L/RgNCw0LLQuNC70YzQvdC+XCIsXG5cbiAgICBjb2xzOiBcItCh0YLQvtC70LHRhtGLXCIsXG4gICAgcm93czogXCLQodGC0YDQvtC60LhcIixcbiAgICBwbGFjZWhvbGRlcjogXCLQn9C70LXQudGB0YXQvtC70LTQtdGAXCIsXG5cbiAgICBvcHRpb25zQ2FwdGlvbjogXCLQn9C+0LTQv9C40YHRjCDQv9Cw0YDQsNC80LXRgtGA0L7QslwiLFxuXG4gICAgZXhwcmVzc2lvbjogXCLQktGL0YDQsNC20LXQvdC40LVcIixcbiAgICBmb3JtYXQ6IFwi0KTQvtGA0LzQsNGCXCIsXG4gICAgZGlzcGxheVN0eWxlOiBcItCh0YLQuNC70Ywg0L7RgtC+0LHRgNCw0LbQtdC90LjRj1wiLFxuICAgIGN1cnJlbmN5OiBcItCS0LDQu9GO0YLQsFwiLFxuICAgIHVzZUdyb3VwaW5nOiBcItCY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQs9GA0YPQv9C/0LjRgNC+0LLQutGDXCIsXG5cbiAgICBzaG93UHJldmlldzogXCLQn9C+0LrQsNC30YvQstCw0YLRjCDQv9GA0LXQstGM0Y5cIixcbiAgICBhbGxvd011bHRpcGxlOiBcItCS0YvQsdGA0LDRgtGMINC90LXRgdC60L7Qu9GM0LrQvlwiLFxuICAgIGltYWdlSGVpZ2h0OiBcItCS0YvRgdC+0YLQsCDQuNC30L7QsdGA0LDQttC10L3QuNGPXCIsXG4gICAgaW1hZ2VXaWR0aDogXCLQqNC40YDQuNC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRj1wiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCLQpdGA0LDQvdC40YLRjCDQtNCw0L3QvdGL0LUg0LIg0LLQuNC00LUg0YLQtdC60YHRgtCwXCIsXG4gICAgbWF4U2l6ZTogXCLQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0YDQsNC30LzQtdGAXCIsXG5cbiAgICBodG1sOiBcIkhUTUxcIixcblxuICAgIGNvbHVtbnM6IFwi0KHRgtC+0LvQsdGG0YtcIixcbiAgICBjZWxsczogXCLQr9GH0LXQudC60LhcIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcItCS0YHQtSDRgdGC0YDQvtC60Lgg0L7QsdGP0LfQsNGC0LXQu9GM0L3RiyDQtNC70Y8g0LfQsNC/0L7Qu9C90LXQvdC40Y9cIixcblxuICAgIGhvcml6b250YWxTY3JvbGw6IFwi0JPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90YvQuSDRgdC60YDQvtC70LtcIixcbiAgICBjZWxsVHlwZTogXCLQotC40L8g0Y/Rh9C10LnQutC4XCIsXG4gICAgY29sdW1uc0xheW91dDogXCLQnNCw0LrQtdGCINGB0YLQvtC70LHRhtC+0LJcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCLQmtC+0LvQuNGH0LXRgdGC0LLQviDRgdGC0L7Qu9Cx0YbQvtCyXCIsXG4gICAgY29sdW1uTWluV2lkdGg6IFwi0JzQuNC90LjQvNCw0LvRjNC90LDRjyDRiNC40YDQuNC90LAg0YHRgtC+0LvQsdGG0LBcIixcblxuICAgIHJvd0NvdW50OiBcItCa0L7Qu9C40YfQtdGB0YLQstC+INGB0YLRgNC+0LpcIixcbiAgICBtaW5Sb3dDb3VudDogXCLQnNC40L3QuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLRgNC+0LpcIixcbiAgICBtYXhSb3dDb3VudDogXCLQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtGA0L7QulwiLFxuICAgIGtleU5hbWU6IFwi0J3QsNC30LLQsNC90LjQtSDQutC70Y7Rh9CwXCIsXG4gICAga2V5RHVwbGljYXRpb25FcnJvcjogXCLQntGI0LjQsdC60LAhINCi0LDQutC+0Lkg0LrQu9GO0Ycg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCLCDRg9C60LDQttC40YLQtSDQtNGA0YPQs9C+0LUg0L3QsNC30LLQsNC90LjQtS5cIixcbiAgICBjb25maXJtRGVsZXRlOiBcItCf0L7QtNGC0LLQtdGA0LTQuNGC0Ywg0YPQtNCw0LvQtdC90LjQtVwiLFxuICAgIGNvbmZpcm1EZWxldGVUZXh0OiBcItCi0LXQutGB0YIg0YHQvtC+0LHRidC10L3QuNGPINC/0YDQuCDQv9C+0LTRgtCy0LXRgNC20LTQtdC90LjQuCDRg9C00LDQu9C10L3QuNGPXCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwi0JTQvtCx0LDQstC40YLRjCDRgNCw0YHQv9C+0LvQvtC20LXQvdC40LUg0YHRgtGA0L7QulwiLFxuICAgIGFkZFJvd1RleHQ6IFwi0JTQvtCx0LDQstC40YLRjCDQutC90L7Qv9C60YMg0YHRgtGA0L7QutC4INGC0LXQutGB0YLQsFwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwi0KPQtNCw0LvQuNGC0Ywg0LrQvdC+0L/QutGDINGB0YLRgNC+0LrQuCDRgtC10LrRgdGC0LBcIixcblxuICAgIGl0ZW1zOiBcItCt0LvQtdC80LXQvdGC0YtcIixcbiAgICBpdGVtU2l6ZTogXCLQoNCw0LfQvNC10YAg0Y3Qu9C10LzQtdC90YLQvtCyXCIsXG4gICAgY29sQ291bnQ6IFwi0JrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtC+0LvQsdGG0L7QslwiLFxuXG4gICAgdGVtcGxhdGVUaXRsZTogXCLQl9Cw0LPQvtC70L7QstC+0Log0YjQsNCx0LvQvtC90LBcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcItCe0L/QuNGB0LDQvdC40LUg0YjQsNCx0LvQvtC90LBcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcItCg0LDQt9GA0LXRiNC40YLRjCDQtNC+0LHQsNCy0LvQtdC90LjQtSDQv9Cw0L3QtdC70LhcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcItCg0LDQt9GA0LXRiNC40YLRjCDRg9C00LDQu9C10L3QuNC1INC/0LDQvdC10LvQuFwiLFxuICAgIHBhbmVsQ291bnQ6IFwi0JrQvtC70LjRh9C10YHRgtCy0L4g0L/QsNC90LXQu9C10LlcIixcbiAgICBtaW5QYW5lbENvdW50OiBcItCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0L/QsNC90LXQu9C10LlcIixcbiAgICBtYXhQYW5lbENvdW50OiBcItCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQv9Cw0L3QtdC70LXQuVwiLFxuICAgIHBhbmVsc1N0YXRlOiBcItCh0L7RgdGC0L7Rj9C90LjQtSDQv9Cw0L3QtdC70LXQuVwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCLQotC10LrRgdGCINGB0L7QvtCx0YnQtdC90LjRjyDQv9GA0Lgg0LTQvtCx0LDQstC70LXQvdC40Lgg0L/QsNC90LXQu9C4XCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcItCi0LXQutGB0YIg0YHQvtC+0LHRidC10L3QuNGPINC/0YDQuCDRg9C00LDQu9C10L3QuNC4INC/0LDQvdC10LvQuFwiLFxuICAgIHBhbmVsUHJldlRleHQ6IFwi0KLQtdC60YHRgiDRgdC+0L7QsdGJ0LXQvdC40Y8g0L/RgNC10LTRi9C00YPRidC10Lkg0L/QsNC90LXQu9C4XCIsXG4gICAgcGFuZWxOZXh0VGV4dDogXCLQotC10LrRgdGCINGB0L7QvtCx0YnQtdC90LjRjyDRgdC70LXQtNGD0Y7RidC10Lkg0L/QsNC90LXQu9C4XCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCLQn9C+0LrQsNC30YvQstCw0YLRjCDQvdC+0LzQtdGA0LAg0LLQvtC/0YDQvtGB0L7QslwiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0L/RgNC+0LPRgNC10YHRgdCwINC30LDQv9C+0LvQvdC10L3QuNGPXCIsXG4gICAgcmVuZGVyTW9kZTogXCLQoNC10LbQuNC8INC+0YLQvtCx0YDQsNC20LXQvdC40Y9cIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwi0KDQsNGB0L/QvtC70L7QttC10L3QuNC1INC30LDQs9C+0LvQvtCy0LrQsCDRiNCw0LHQu9C+0L3QsFwiLFxuXG4gICAgcmF0ZVZhbHVlczogXCLQntGG0LXQvdC40YLRjCDQstCw0LbQvdC+0YHRgtGMKNCy0LXRgSkg0L7Qv9GA0L7RgdCwXCIsXG4gICAgcmF0ZU1pbjogXCLQnNC40L3QuNC80LDQu9GM0L3Ri9C5INGA0LXQudGC0LjQvdCzXCIsXG4gICAgcmF0ZU1heDogXCLQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0YDQtdC50YLQuNC90LNcIixcbiAgICByYXRlU3RlcDogXCLQqNCw0LMg0YDQtdC50YLQuNC90LPQsFwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCLQntC/0LjRgdCw0L3QuNC1INC00LvRjyDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0YDQtdC50YLQuNC90LPQsFwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCLQntC/0LjRgdCw0L3QuNC1INC00LvRjyDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LPQviDRgNC10LnRgtC40L3Qs9CwXCIsXG5cbiAgICBpbnB1dFR5cGU6IFwi0KLQuNC/INCy0LLQvtC00LBcIixcbiAgICBzaXplOiBcItCg0LDQt9C80LXRgFwiLFxuXG4gICAgbG9jYWxlOiBcItCb0L7QutCw0LvRjFwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCLQpNC+0LrRg9GB0LjRgNC+0LLQsNC90LjQtSDQvdCwINC/0LXRgNCy0L7QvCDQstC+0L/RgNC+0YHQtSDQv9GA0Lgg0LjQt9C80LXQvdC10L3QuNC4INGB0YLRgNCw0L3QuNGG0YtcIixcbiAgICBjb21wbGV0ZWRIdG1sOiBcIkhUTUwg0YTQuNC90LDQu9GM0L3QvtC5INGB0YLRgNCw0L3QuNGG0YtcIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwiSFRNTCDRhNC40L3QsNC70YzQvdC+0Lkg0YHRgtGA0LDQvdC40YbRiyDQv9GA0Lgg0YPRgdC70L7QstC40LhcIixcbiAgICBsb2FkaW5nSHRtbDogXCLQl9Cw0LPRgNGD0LfQutCwIEhUTUxcIixcbiAgICB0cmlnZ2VyczogXCLRgtGA0LjQs9Cz0LXRgNGLXCIsXG4gICAgY29va2llTmFtZTogXCLQuNC80Y8gQ29va2llXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwi0J/QvtC60LDQt9Cw0YLRjCDRgNC10LfRg9C70YzRgtCw0YLRiyDQvtC/0YDQvtGB0LAg0L3QsCDRgdGC0YDQsNC90LjRhtC1INGA0Y/QtNC+0LxcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0LrQvdC+0L/QutC4INC90LDQstC40LPQsNGG0LjQuCAo0L3QsNCy0LjQs9Cw0YbQuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOKVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINC60L3QvtC/0LrQuCAn0J/RgNC10LTRi9C00YPRidCw0Y8g0YHRgtGA0LDQvdC40YbQsCcgKNC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQvNC+0LbQtdGCINCy0LXRgNC90YPRgtGM0YHRjyDQvdCwINC/0YDQtdC00YvQtNGD0YnRg9GOINGB0YLRgNCw0L3QuNGG0YMpXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0L3QsNC30LLQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0YHRgtGA0LDQvdC40YbRgyDRgSDRgtC10LrRgdGC0L7QvCDQv9C+INC30LDQstC10YDRiNC10L3QuNGOINC30LDQv9C+0LvQvdC10L3QuNGPIChIVE1MINGE0LjQvdCw0LvRjNC90L7QuSDRgdGC0YDQsNC90LjRhtGLKVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCLQn9C+0LrQsNC30YvQstCw0YLRjCDQvdC+0LzQtdGA0LAg0YHRgtGA0LDQvdC40YZcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwi0KDQsNC30LzQtdGJ0LXQvdC40LUg0L7RiNC40LHQutC4INC+0L/RgNC+0YHQsFwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCLQn9C+0LrQsNC30YvQstCw0YLRjCDQv9GA0L7Qs9GA0LXRgdGBINC30LDQv9C+0LvQvdC10L3QuNGPXCIsXG4gICAgbW9kZTogXCLQoNC10LbQuNC8XCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCLQn9C10YDQtdGF0L7QtNC40YLRjCDQvdCwINGB0LvQtdC00YPRjtGJ0YPRjiDRgdGC0YDQsNC90LjRhtGDINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC/0YDQuCDQvtGC0LLQtdGC0LUg0L3QsCDQstGB0LUg0LLQvtC/0YDQvtGB0YtcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwi0KDQtdC20LjQvCDQv9GA0L7QstC10YDQutC4INC+0YjQuNCx0L7QulwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcItCe0YfQuNGB0YLQuNGC0Ywg0L3QtdCy0LjQtNC40LzRi9C1INC30L3QsNGH0LXQvdC40Y9cIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwi0KLQtdC60YHRgiDQsiDQutC90L7Qv9C60LUgJ9Cd0LDRh9Cw0YLRjCdcIixcbiAgICBwYWdlUHJldlRleHQ6IFwi0KLQtdC60YHRgiDQsiDQutC90L7Qv9C60LUgJ9Cf0YDQtdC00YvQtNGD0YnQsNGPINGB0YLRgNCw0L3QuNGG0LAnXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcItCi0LXQutGB0YIg0LIg0LrQvdC+0L/QutC1ICfQodC70LXQtNGD0Y7RidCw0Y8g0YHRgtGA0LDQvdC40YbQsCdcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwi0KLQtdC60YHRgiDQsiDQutC90L7Qv9C60LUgJ9CX0LDQstC10YDRiNC40YLRjCdcIixcbiAgICByZXF1aXJlZFRleHQ6IFwi0KHQuNC80LLQvtC7INC00LvRjyDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+0LPQviDQstC+0L/RgNC+0YHQsFwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCLQndCw0YfQsNC70YzQvdGL0Lkg0LjQvdC00LXQutGBINCyINC+0L/RgNC+0YHQtSAoMSwgMiDQuNC70LggJ0EnLCAn0LAnKVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCLQqNCw0LHQu9C+0L0g0L3QsNC30LLQsNC90LjRjyDQvtC/0YDQvtGB0LAsINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOOiB70L3QtX0ge9GC0YDQtdCx0YPQtdGCfSB70YLQtdC60YHRgtCwfS5cIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi0J/QtdGA0LLQsNGPINGB0YLRgNCw0L3QuNGG0LAg0L7Qv9GA0L7RgdC90LjQutCwINGP0LLQu9GP0LXRgtGB0Y8g0YHRgtCw0YDRgtC+0LLQvtC5INGB0YLRgNCw0L3QuNGG0LXQuS5cIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0LLRgdC1INGN0LvQtdC80LXQvdGC0Ysg0L3QsCDQvtC00L3QvtC5INGB0YLRgNCw0L3QuNGG0LVcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcItCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQstGA0LXQvNGPICjRgdC10LrRg9C90LTRiyksINGH0YLQvtCx0Ysg0LfQsNC/0L7Qu9C90LjRgtGMINGB0YLRgNCw0L3QuNGG0YMg0L7Qv9GA0L7RgdC90LjQutCwXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0L/QsNC90LXQu9GMINGC0LDQudC80LXRgNCwXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcItCf0L7QutCw0LfRi9Cy0LDRgtGMINGA0LXQttC40Lwg0L/QsNC90LXQu9C4INGC0LDQudC80LXRgNCwXCIsXG5cbiAgICBkZWZhdWx0UGFuZWxWYWx1ZTogXCLQl9C90LDRh9C10L3QuNC1INC/0LDQvdC10LvQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjlwiLFxuICAgIGRlZmF1bHRSb3dWYWx1ZTogXCLQl9C90LDRh9C10L3QuNC1INGB0YLRgNC+0LrQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjlwiLFxuICAgIHNob3dOb25lSXRlbTogXCLQndC10YIg0L3QuCDQvtC00L3QvtCz0L4g0L/Rg9C90LrRgtCwXCIsXG4gICAgbm9uZVRleHQ6IFwi0KLQtdC60YHRgiDQv9GD0L3QutGC0LAgJ9Cd0LjRh9C10LPQvidcIixcblxuICAgIHRleHQ6IFwi0KLQtdC60YHRglwiXG4gIH1cbn07XG4vL1VuY29tbWVudCB0aGlzIGxpbmUgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlLiBZb3Ugc2hvdWxkIHJlcGxhY2UgXCJlblwiIGFuZCBlblN0cmluZ3Mgd2l0aCB5b3VyIGxvY2FsZSAoXCJmclwiLCBcImRlXCIgYW5kIHNvIG9uKSBhbmQgeW91ciB2YXJpYWJsZS5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wicnVcIl0gPSBydVN0cmluZ3M7XG4iLCJpbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbnZhciBzaW1wbGlmaWVkQ2hpbmVzZVRyYW5zbGF0aW9uID0ge1xuICAvLyBzdHJpbmdzIGZvciBzdXJ2ZXkgdGVtcGxhdGVzXG4gIHN1cnZleToge1xuICAgIGVkaXQ6IFwi57yW6L6RXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCLmlZnlrablsI/niYdcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rVXJsOiBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNIMnJ1OW9rSWNvb05aZnBJYnlxNHFRP3ZpZXdfYXM9c3Vic2NyaWJlclwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCLku47lt6bkvqflt6XlhbfnrrHmi5bkuKrpl67pophcIixcbiAgICBjb3B5OiBcIuWkjeWItlwiLFxuICAgIGFkZFRvVG9vbGJveDogXCLmt7vliqDliLDlt6XlhbfnrrFcIixcbiAgICBkZWxldGVQYW5lbDogXCLliKDpmaTpnaLmnb9cIixcbiAgICBkZWxldGVRdWVzdGlvbjogXCLliKDpmaTpopjnm65cIixcbiAgICBjb252ZXJ0VG86IFwi6L2s5Y+Y5Li6XCIsXG4gICAgZHJhZzogXCLmi5bmlL7lhYPku7ZcIlxuICB9LFxuICAvLyBzdHJpbmdzIGZvciBxdWVzdGlvbiB0eXBlc1xuICBxdDoge1xuICAgIGRlZmF1bHQ6XG4gICAgICBcIum7mOiupFwiLFxuICAgIGNoZWNrYm94OiBcIuWkmumhuemAieaLqVwiLFxuICAgIGNvbW1lbnQ6IFwi5aSa6KGM5paH5pysXCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwi6YCJ5Zu+54mHXCIsXG4gICAgZHJvcGRvd246IFwi5LiL5ouJ5qGGXCIsXG4gICAgZmlsZTogXCLmlofku7bkuIrkvKBcIixcbiAgICBodG1sOiBcIkh0bWwg5Luj56CBXCIsXG4gICAgbWF0cml4OiBcIuefqemYtSAo5Y2V6YCJ6aKYKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIuefqemYtSAo5LiL5ouJ5qGGKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwi55+p6Zi1ICjliqjmgIHpl67popgpXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcIuaWh+acrOahhue7hFwiLFxuICAgIHBhbmVsOiBcIumdouadv1wiLFxuICAgIHBhbmVsZHluYW1pYzogXCLpnaLmnb8o5Yqo5oCBKVwiLFxuICAgIHJhZGlvZ3JvdXA6IFwi5Y2V6aG56YCJ5oupXCIsXG4gICAgcmF0aW5nOiBcIuivhOWIhlwiLFxuICAgIHRleHQ6IFwi5Y2V6KGM5paH5pysXCIsXG4gICAgYm9vbGVhbjogXCLpgLvovpHpoblcIixcbiAgICBleHByZXNzaW9uOiBcIuihqOi+vuW8jyjlj6ror7spXCIsXG4gICAgZmxvd3BhbmVsOiBcIua1gemdouadv1wiXG4gIH0sXG4gIC8vIHN0cmluZ3MgZm9yIGVkaXRvclxuICBlZDoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwi6buY6K6k6K+t6KiAICh7MH0pXCIsXG4gICAgc3VydmV5OiBcIuiwg+afpemXruWNt1wiLFxuICAgIHNldHRpbmdzOiBcIumXruWNt+iuvue9rlwiLFxuICAgIG9wamVjdFByb3BlcnRpZXNIZWFkZXI6IFwi6auY57qnXCIsXG4gICAgc2hvd09iamVjdFByb3BlcnRpZXM6IFwi5pi+56S65bGe5oCnXCIsXG4gICAgaGlkZU9iamVjdFByb3BlcnRpZXM6IFwi6ZqQ6JeP5bGe5oCnXCIsXG4gICAgZWRpdFN1cnZleTogXCLkv67mlLlcIixcbiAgICBhZGROZXdQYWdlOiBcIua3u+WKoOaWsOmhtemdolwiLFxuICAgIG1vdmVSaWdodDogXCLmu5rliqjliLDlj7PkvqdcIixcbiAgICBtb3ZlTGVmdDogXCLmu5rliqjliLDlt6bkvqdcIixcbiAgICBkZWxldGVQYWdlOiBcIuWIoOmZpOmhtemdolwiLFxuICAgIGVkaXRQYWdlOiBcIue8lui+kemhtemdolwiLFxuICAgIGVkaXQ6IFwi57yW6L6RXCIsXG4gICAgbmV3UGFnZU5hbWU6IFwi6aG16Z2iXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcIumXrumimFwiLFxuICAgIG5ld1BhbmVsTmFtZTogXCLpnaLmnb9cIixcbiAgICBuZXdUZXh0SXRlbU5hbWU6IFwi5paH5pysXCIsXG4gICAgdGVzdFN1cnZleTogXCLmtYvor5Xpl67ljbdcIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwi5YaN5qyh5rWL6K+V6Zeu5Y23XCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIumXruWNt+WuveW6pjogXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwi5bCG6Zeu5Y235bWM5YWl572R6aG1XCIsXG4gICAgdHJhbnNsYXRpb246IFwi6L2s5o2iXCIsXG4gICAgc2F2ZVN1cnZleTogXCLkv53lrZjpl67ljbdcIixcbiAgICBkZXNpZ25lcjogXCLpl67ljbforr7orqHlmahcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04g57yW6L6R5ZmoXCIsXG4gICAgdW5kbzogXCLmkqTplIBcIixcbiAgICByZWRvOiBcIuaBouWkjVwiLFxuICAgIG9wdGlvbnM6IFwi6YCJ6aG5XCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwi55Sf5oiQIEpTT04g5pWw5o2uXCIsXG4gICAgZ2VuZXJhdGVSZWFkYWJsZUpTT046IFwi55Sf5oiQ5piT6K+755qEIEpTT04g5pWw5o2uXCIsXG4gICAgdG9vbGJveDogXCLlt6XlhbfnrrFcIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcIuS4gOiIrFwiLFxuICAgIGRlbFNlbE9iamVjdDogXCLliKDpmaTmiYDpgInlr7nosaFcIixcbiAgICBlZGl0U2VsT2JqZWN0OiBcIue8lui+keaJgOmAieWvueixoVwiLFxuICAgIGNvcnJlY3RKU09OOiBcIuivt+S/ruatoyBKU09OIOaVsOaNrlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwi6Zeu5Y2357uT5p6cOiBcIixcbiAgICBzdXJ2ZXlSZXN1bHRzVGFibGU6IFwi6KGo5qC85b2i5byPXCIsXG4gICAgc3VydmV5UmVzdWx0c0pzb246IFwiSlNPTuW9ouW8j1wiLFxuICAgIHJlc3VsdHNUaXRsZTogXCLpl67popjmoIfpophcIixcbiAgICByZXN1bHRzTmFtZTogXCLpl67popjlkI3np7BcIixcbiAgICByZXN1bHRzVmFsdWU6IFwi562U5qGI5ZCN56ewXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCLmmL7npLrnrZTmoYhcIixcbiAgICBtb2RpZmllZDogXCLlt7Lkv67mlLlcIixcbiAgICBzYXZpbmc6IFwi5L+d5a2Y5LitLi4uXCIsXG4gICAgc2F2ZWQ6IFwi5bey5L+d5a2YXCIsXG4gICAgc2F2ZUVycm9yOiBcIumUmeivr++8jOacquS/neWtmFwiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwi6K+t6KiA6YCJ5oupXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsU3RyaW5nczogXCLlhajpg6jlkI3or41cIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxQYWdlczogXCLlhajpg6jpobXpnaJcIixcbiAgICB0cmFuc2xhdGlvbk5vU3RyaW5nczogXCLmnKrnv7vor5HvvIzph43mlrDpgIlcIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcIuWvvOWHukNTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCLlr7zlhaVDU1ZcIixcbiAgICB0cmFuc2xhdGlvbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQ6IFwi5ZCM6buY6K6k5ZCI5bm2IHswfSBcIixcbiAgICBib2xkOiBcIuWKoOeyl1wiLFxuICAgIGl0YWxpYzogXCLmlpzkvZNcIixcbiAgICB1bmRlcmxpbmU6IFwi5LiL5YiS57q/XCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCLmt7vliqDpl67pophcIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25JdGVtVGV4dDogXCLmmL7npLogaWY6XCJcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBuYW1lcyBpbiB0YWJsZSBoZWFkZXJzXG4gIHBlbDoge1xuICAgIGlzUmVxdWlyZWQ6IFwi5piv5ZCm5Li65b+F5aGr6aG5P1wiXG4gIH0sXG4gIC8vIHN0cmluZ3MgZm9yIHByb3BlcnR5IGVkaXRvcnNcbiAgcGU6IHtcbiAgICBhcHBseTogXCLlupTnlKhcIixcbiAgICBvazogXCLnoa7lrppcIixcbiAgICBjYW5jZWw6IFwi5Y+W5raIXCIsXG4gICAgcmVzZXQ6IFwi6YeN572uXCIsXG4gICAgY2xvc2U6IFwi5YWz6ZetXCIsXG4gICAgZGVsZXRlOiBcIuWIoOmZpFwiLFxuICAgIGFkZE5ldzogXCLmlrDlu7pcIixcbiAgICBhZGRJdGVtOiBcIua3u+WKoOmhuS4uLlwiLFxuICAgIGFkZE90aGVyOiBcIuWFtuS7llwiLFxuICAgIGFkZFNlbGVjdEFsbDogXCLlhajpgIlcIixcbiAgICBhZGROb25lOiBcIuaXoFwiLFxuICAgIHJlbW92ZUFsbDogXCLlhajpg6jliKDpmaRcIixcbiAgICBlZGl0OiBcIue8lui+keWZqFwiLFxuICAgIGl0ZW1WYWx1ZUVkaXQ6IFwiVmlzaWJsZSBJZlwiLFxuICAgIGVkaXRDaG9pY2VzOiBcIue8lui+kemAiemhuVwiLFxuICAgIG1vdmU6IFwi56e75YqoXCIsXG4gICAgZW1wdHk6IFwiPOepuj5cIixcbiAgICBub3RFbXB0eTogXCI857yW6L6R5YC8PlwiLFxuICAgIGZhc3RFbnRyeTogXCLlv6vpgJ/ovpPlhaVcIixcbiAgICBmb3JtRW50cnk6IFwi6KGo5Y2V6L6T5YWlXCIsXG4gICAgdGVzdFNlcnZpY2U6IFwi5rWL6K+V5pyN5YqhXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UXVlc3Rpb246IFwi6YCJ5oup6Zeu6aKYLi4uXCIsXG4gICAgY29uZGl0aW9uVmFsdWVRdWVzdGlvblRpdGxlOiBcIumAieaLqeWAvFwiLFxuICAgIGNvbmRpdGlvbkJ1dHRvbkFkZDogXCLmt7vliqBcIixcbiAgICBjb25kaXRpb25CdXR0b25SZXBsYWNlOiBcIuabv+aNolwiLFxuICAgIGNvbmRpdGlvbkhlbHA6IFwi6K+36L6T5YWl5LiA5Liq5biD5bCU6KGo6L6+5byP44CC5b2T5biD5bCU5YC85Li655yf77yM6Zeu6aKYL+mhtemdouWPr+ingeOAguS+i+Wmgu+8mntxdWVzdGlvbjF9ID0gJ3ZhbHVlMScgb3IgKHtxdWVzdGlvbjJ9ICoge3F1ZXN0aW9uNH0gID4gMjAgYW5kIHtxdWVzdGlvbjN9IDwgNSlcIixcbiAgICBleHByZXNzaW9uSGVscDogXCLor7fovpPlhaXkuIDpobnmnaHku7bliKTmlq3jgILlvZPmnaHku7bliKTmlq3kuLrnnJ/ml7bpl67popgv6aG16Z2i5bCG5Y+v6KeB44CC5L6L5aaCOiB7cXVlc3Rpb24xfSA9ICd2YWx1ZTEnIG9yICh7cXVlc3Rpb24yfSA9IDMgYW5kIHtxdWVzdGlvbjN9IDwgNSlcIixcbiAgICBhY2VFZGl0b3JIZWxwOiBcInRybCtzcGFjZeWFrOW8j+ihpeWujOaPkOekulwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcIuW9k+WJjeihjFwiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwi5b2T5YmN6Z2i5p2/XCIsXG4gICAgc2hvd01vcmU6IFwi5pu05aSa57uG6IqC6K+35p+l55yL5paH5qGjXCIsXG4gICAgY29uZGl0aW9uU2hvd01vcmVVcmw6IFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Eb2N1bWVudGF0aW9uL0xpYnJhcnlQYXJhbWV0ZXI/aWQ9UXVlc3Rpb27Ctm1ldGVyPXZpc2libGVJZlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIkF2YWlsYWJsZSBxdWVzdGlvbnM6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIuiHs+WwkeaciTHooYxcIixcbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwi6K+35Li66K+l5bGe5oCn6K6+5a6a5LiA5Liq5YC8XCIsXG4gICAgdmFsdWU6IFwi5YC8XCIsXG4gICAgdGV4dDogXCLmmL7npLrmlofmnKxcIixcbiAgICByb3dpZDogXCLooYzlj7dcIixcbiAgICBpbWFnZUxpbms6IFwi5Zu+54mH6ZO+5o6lXCIsXG4gICAgY29sdW1uRWRpdDogXCLnvJbovpHliJc6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIue8lui+kemAiemhuTogezB9XCIsXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHBhdGg6IFwi6Lev5b6EXCIsXG4gICAgdmFsdWVOYW1lOiBcIuWAvOWQjVwiLFxuICAgIHRpdGxlTmFtZTogXCLmoIfpopjlkI1cIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIuWPr+a3u+WKoOWFtuS7luetlOahiD9cIixcbiAgICBvdGhlclRleHQ6IFwi5YW25LuW562U5qGI5paH5pysXCIsXG4gICAgc2hvd05vbmVJdGVtOiBcIuaXoFwiLFxuICAgIG5vbmVUZXh0OiBcIuaXoOaWh+acrFwiLFxuICAgIGhhc1NlbGVjdEFsbDogXCLmnInlhajpgInpoblcIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIumAieaLqeWFqOmDqOaWh+acrFwiLFxuICAgIGNob2ljZXNNaW46IFwi6YCJ6aG55pyA5bCP5YC8XCIsXG4gICAgY2hvaWNlc01heDogXCLpgInpobnmnIDlpKflgLxcIixcbiAgICBjaG9pY2VzU3RlcDogXCLpgInpobnpl7TpmpRcIixcbiAgICBuYW1lOiBcIumimOebruWQjVwiLFxuICAgIHRpdGxlOiBcIumimOebruaWh+acrFwiLFxuICAgIGNlbGxUeXBlOiBcIuWNleWFg+agvOexu+Wei1wiLFxuICAgIGNvbENvdW50OiBcIuWIl+aVsFwiLFxuICAgIGNob2ljZXNPcmRlcjogXCLorr7nva7pgInpobnpobrluo9cIixcbiAgICB2aXNpYmxlOiBcIuaYr+WQpuWPr+ingT9cIixcbiAgICBpc1JlcXVpcmVkOiBcIuaYr+WQpuS4uuW/heWhq+mhuT9cIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCLplJnor6/mloflrZdcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIumXrumimOaYr+WQpuaWsOi1t+S4gOihjD9cIixcbiAgICByb3dzOiBcIuaWh+acrOahhuihjOaVsFwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIuWNoOS9jeaWh+acrFwiLFxuICAgIHNob3dQcmV2aWV3OiBcIuaYr+WQpuaYvuekuuWbvuWDj+mihOiniD9cIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwi5LulIEpTT04g5paH5pys5pa55byP5a2Y5YKo5paH5Lu2XCIsXG4gICAgbWF4U2l6ZTogXCLmlofku7bmnIDlpKflsLrlr7ggKEJ5dGVzKVwiLFxuICAgIGltYWdlSGVpZ2h0OiBcIuWbvueJh+mrmOW6plwiLFxuICAgIGltYWdlV2lkdGg6IFwi5Zu+54mH5a695bqmXCIsXG4gICAgcm93Q291bnQ6IFwi6buY6K6k6KGM5pWwXCIsXG4gICAgY29sdW1uTGF5b3V0OiBcIuWIl+W4g+WxgFwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcIua3u+WKoOihjOaMiemSruS9jee9rlwiLFxuICAgIGFkZFJvd1RleHQ6IFwi5re75Yqg5p2h55uu5oyJ6ZKu5paH5pysXCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCLliKDpmaTmnaHnm67mjInpkq7mlofmnKxcIixcbiAgICByYXRlTWluOiBcIuacgOWwj+ivhOWIhlwiLFxuICAgIHJhdGVNYXg6IFwi5pyA5aSn6K+E5YiGXCIsXG4gICAgcmF0ZVN0ZXA6IFwi6K+E5YiG6Ze06ZqUXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIuacgOWwj+WAvOaPkOekulwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCLmnIDlpKflgLzmj5DnpLpcIixcbiAgICBpbnB1dFR5cGU6IFwi5paH5pys5qGG57G75Z6LXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwi5LiL5ouJ5qGG5o+Q56S66K+tXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIum7mOiupOWAvFwiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJEZWZhdWx0IGNlbGxzIHRleHRzXCIsXG4gICAgc3VydmV5RWRpdG9yVGl0bGU6IFwi6Zeu5Y236K6+572uXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIue8lui+kemXrumimDogezB9XCIsXG4gICAgbWF4TGVuZ3RoOiBcIuacgOWkp+mVv+W6plwiLFxuICAgIHNob3dUaXRsZTogXCLmmL7npLov6ZqQ6JePIOagh+mimFwiLFxuICAgIGxvY2FsZTogXCLpu5jorqTor63oqIBcIixcbiAgICBtb2RlOiBcIuaooeW8jyAo57yW6L6RL+WPquivuylcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCLmuIXpmaTpmpDol4/lgLxcIixcbiAgICBjb29raWVOYW1lOiBcIkNvb2tpZeWQje+8jOmBv+WFjeWkmuasoei/kOihjClcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCLliIfmjaLpobXml7bkv53lrZjnu5PmnpxcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCLlhbbku5blgLzljZXni6zlgqjlrZhcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCLmmL7npLrpobXpnaLmoIfpophcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwi5pi+56S66aG15pWwXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIuWJjeS4gOmhteaMiemSruaWh+acrFwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCLlkI7kuIDpobXmjInpkq7mlofmnKxcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwi5a6M5oiQ5oyJ6ZKu5paH5pysXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIuW8gOWni+aMiemSruaWh+acrFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCLmmL7npLrlr7zoiKrmjInpkq4gKOm7mOiupOWvvOiIqilcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCLmmL7npLrliY3kuIDpobXmjInpkq4gKOeUqOaIt+WPr+i/lOWbnuiHs+WJjeS4gOmhtemdoilcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi6LCD5p+l55qE56ys5LiA6aG16Z2i5Li66LW35aeL6aG1LlwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIue7k+WwvuWxleekuuWujOaIkOWQjueahOmhtemdoiAoY29tcGxldGVkSHRtbClcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcIuWbnuetlOacrOmhteaJgOaciemXrumimOWQju+8jOiHquWKqOi3s+i9rOWIsOS4i+S4gOmhtVwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCLmmL7npLrov5vluqbmnaFcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwi6Zeu6aKY55qE5qCH6aKY5L2N572uXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIumXrumimOW/heWhq+agh+W/l1wiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCLpl67popjotbflp4vmoIflv5cgKDEsIDIgb3IgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCLmmL7npLrpl67popjnvJblj7dcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwi6Zeu6aKY5qCH6aKY5qih5p2/LCDpu5jorqTkuLo6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwi6Zeu6aKY6ZSZ6K+v5a6a5L2NXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIuaUueWPmOmhtemdouaXtuiBmueEpuWcqOesrOS4gOS4qumXrumimFwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIumhteWGhemXrumimOmhuuW6j1wiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCLlrozmiJDosIPmn6XnmoTmnIDplb/ml7bpl7RcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIuWujOaIkOiwg+afpeS4remhtemdoueahOacgOmVv+aXtumXtFwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIuaYvuekuuiuoeaXtuWZqOmdouadv1wiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCLmmL7npLrorqHml7blmajpnaLmnb/mqKHlvI9cIixcbiAgICByZW5kZXJNb2RlOiBcIua4suafk+aooeW8j1wiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwi5YWB6K645re75Yqg6Z2i5p2/XCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLlhYHorrjliKDpmaTpnaLmnb9cIixcbiAgICBwYW5lbEFkZFRleHQ6IFwi5re75Yqg6Z2i5p2/5paH5pysXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIuWIoOmZpOmdouadv+aWh+acrFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCLlnKjkuIDkuKrpobXpnaLkuIrlsZXnpLrmiYDmnInlhYPntKBcIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBleHByZXNzaW9uOiBcIuWFrOW8j1wiLFxuICAgIG1pblZhbHVlOiBcIuacgOWwj+WAvFwiLFxuICAgIG1heFZhbHVlOiBcIuacgOWkp+WAvFwiLFxuICAgIG1pbkxlbmd0aDogXCLmnIDlsI/plb/luqZcIixcbiAgICBhbGxvd0RpZ2l0czogXCLlhYHorrjnmoTkvY3mlbBcIixcbiAgICBtaW5Db3VudDogXCLmnIDlsI/mlbDph49cIixcbiAgICBtYXhDb3VudDogXCLmnIDlpKfmlbDph49cIixcbiAgICByZWdleDogXCLmraPliJnooajovr7lvI9cIixcbiAgICB0b3RhbFRleHQ6IFwi5oC75paH5pysXCIsXG4gICAgdG90YWxUeXBlOiBcIuaAu+exu+Wei1wiLFxuICAgIHRvdGFsRXhwcmVzc2lvbjogXCLmgLvlhazlvI9cIixcbiAgICB0b3RhbERpc3BsYXlTdHlsZTogXCLmgLvmmL7npLrpo47moLxcIixcbiAgICB0b3RhbEN1cnJlbmN5OiBcIuaAu2N1cnJlbmN5XCIsXG4gICAgdG90YWxGb3JtYXQ6IFwi5oC75qC85byPXCIsXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCLkuIDoiKxcIixcbiAgICAgIG5hdmlnYXRpb246IFwi5a+86IiqXCIsXG4gICAgICBxdWVzdGlvbjogXCLpl67pophcIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwi5a6M5oiQ5ZCO55qESHRtbFwiLFxuICAgICAgbG9hZGluZ0h0bWw6IFwi5Yqg6L295Lit55qESHRtbFwiLFxuICAgICAgdGltZXI6IFwi6Zeu5Y236K6h5pe25ZmoXCIsXG4gICAgICB0cmlnZ2VyOiBcIuinpuWPkeWZqFwiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwi6YCJ6aG5XCIsXG4gICAgICBodG1sOiBcIkhUTUwg57yW6L6R5ZmoXCIsXG4gICAgICBjb2x1bW5zOiBcIuiuvue9ruWIl1wiLFxuICAgICAgcm93czogXCLorr7nva7ooYxcIixcbiAgICAgIGNob2ljZXM6IFwi6K6+572u6YCJ6aG5XCIsXG4gICAgICB2aXNpYmxlSWY6IFwi6K6+572u5Y+v6KeB5p2h5Lu2XCIsXG4gICAgICBlbmFibGVJZjogXCLorr7nva7mnInmlYjmnaHku7ZcIixcbiAgICAgIHJhdGVWYWx1ZXM6IFwi6K6+572u6K+E5YiG5YC8XCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwi6YCa6L+HIFVSTCDlr7zlhaXpgInpoblcIixcbiAgICAgIG1hdHJpeENob2ljZXM6IFwi6buY6K6k6YCJ6aG5XCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCLmlofmnKzovpPlhaVcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwi5qCh6aqM6KeE5YiZXCJcbiAgICB9LFxuICAgIGVkaXRQcm9wZXJ0eTogXCLnvJbovpHlsZ7mgKc6ICd7MH0nXCIsXG4gICAgaXRlbXM6IFwiWyDpobnnm67mlbDph486IHswfSBdXCIsXG4gICAgZW50ZXJOZXdWYWx1ZTogXCLor7forr7lrprlgLxcIixcbiAgICBub3F1ZXN0aW9uczogXCLpl67ljbfkuK3ov5jmsqHmnInliJvlu7rku7vkvZXpl67pophcIixcbiAgICBjcmVhdGV0cmlnZ2VyOiBcIuivt+WIm+W7uuinpuWPkeWZqFwiLFxuICAgIHRyaWdnZXJPbjogXCLlvZMgXCIsXG4gICAgdHJpZ2dlck1ha2VQYWdlc1Zpc2libGU6IFwi5L2/6aG16Z2i5Y+v6KeBOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCLkvb/pl67popjlj6/op4E6XCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCLlpoLmnpzmu6HotrPmnaHku7bvvIzliJnlrozmiJDpl67ljbdcIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIuinpuWPkeWZqOWwmuacquiuvue9rlwiLFxuICAgIHRyaWdnZXJSdW5JZjogXCLmu6HotrPkuIvliJfmnaHku7bml7bmiafooYxcIixcbiAgICB0cmlnZ2VyU2V0VG9OYW1lOiBcIuS/ruaUueS4i+WIl+mXrumimOWAvDogXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIuWkjeWItuWAvDogXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb246IFwi6L+Q6KGM5YWs5byPOlwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCLkv67mlLnkuLo6IFwiLFxuICAgIHRyaWdnZXJJc1ZhcmlhYmxlOiBcIuWcqOmXruWNt+aPkOS6pOe7k+aenOS4reS4jeimgeWMheWQq+ivpeWPmOmHj1wiXG4gIH0sXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCLnnJ9cIixcbiAgICBmYWxzZTogXCLlgYdcIixcbiAgICBpbmhlcml0OiBcIue7p+aJv1wiLFxuICAgIHNob3c6IFwi5pi+56S6XCIsXG4gICAgaGlkZTogXCLpmpDol49cIixcbiAgICBkZWZhdWx0OlxuICAgICAgXCLpu5jorqRcIixcbiAgICBpbml0aWFsOiBcIuWIneWni+WMllwiLFxuICAgIHJhbmRvbTogXCLpmo/mnLpcIixcbiAgICBjb2xsYXBzZWQ6IFwi5oqY5Y+gXCIsXG4gICAgZXhwYW5kZWQ6IFwi5omp5bGVXCIsXG4gICAgbm9uZTogXCLml6BcIixcbiAgICBhc2M6IFwi5Y2H5bqPXCIsXG4gICAgZGVzYzogXCLpmY3luo9cIixcbiAgICBpbmRldGVybWluYXRlOiBcImluZGV0ZXJtaW5hdGVcIixcbiAgICBkZWNpbWFsOiBcIuaVsOWtl1wiLFxuICAgIGN1cnJlbmN5OiBcIui0p+W4gVwiLFxuICAgIHBlcmNlbnQ6IFwi55m+5YiG5pWwXCIsXG4gICAgZmlyc3RFeHBhbmRlZDogXCJmaXJzdEV4cGFuZGVkXCIsXG4gICAgb2ZmOiBcIuWFs+mXrVwiLFxuICAgIG9uUGFuZWw6IFwi6Z2i5p2/5LiKXCIsXG4gICAgb25TdXJ2ZXk6IFwi6Zeu5Y235LiKXCIsXG4gICAgbGlzdDogXCLliJfooahcIixcbiAgICBwcm9ncmVzc1RvcDogXCJwcm9ncmVzc1RvcFwiLFxuICAgIHByb2dyZXNzQm90dG9tOiBcInByb2dyZXNzQm90dG9tXCIsXG4gICAgcHJvZ3Jlc3NUb3BCb3R0b206IFwicHJvZ3Jlc3NUb3BCb3R0b21cIixcbiAgICBob3Jpem9udGFsOiBcIuawtOW5s1wiLFxuICAgIHZlcnRpY2FsOiBcIuWeguebtFwiLFxuICAgIHRvcDogXCLpobZcIixcbiAgICBib3R0b206IFwi5bqVXCIsXG4gICAgdG9wQm90dG9tOiBcIumhtuWSjOW6lVwiLFxuICAgIGxlZnQ6IFwi5bemXCIsXG4gICAgY29sb3I6IFwi6aKc6ImyXCIsXG4gICAgZGF0ZTogXCLml6XmnJ9cIixcbiAgICBkYXRldGltZTogXCLml7bpl7RcIixcbiAgICBcImRhdGV0aW1lLWxvY2FsXCI6IFwi5pe26Ze05qC85byPXCIsXG4gICAgZW1haWw6IFwiZW1haWxcIixcbiAgICBtb250aDogXCLmnIhcIixcbiAgICBudW1iZXI6IFwi5pWw5a2XXCIsXG4gICAgcGFzc3dvcmQ6IFwi5a+G56CBXCIsXG4gICAgcmFuZ2U6IFwi6IyD5Zu0XCIsXG4gICAgdGVsOiBcIueUteivnVwiLFxuICAgIHRleHQ6IFwidGV4dFwiLFxuICAgIHRpbWU6IFwi5pe26Ze0XCIsXG4gICAgdXJsOiBcInVybFwiLFxuICAgIHdlZWs6IFwi5ZGoXCIsXG4gICAgaGlkZGVuOiBcIumakOiXj1wiLFxuICAgIG9uOiBcIuW8gFwiLFxuICAgIG9uUGFnZTogXCLpobXpnaLkuIpcIixcbiAgICBlZGl0OiBcIue8lui+kVwiLFxuICAgIGRpc3BsYXk6IFwi5LuF5pi+56S6XCIsXG4gICAgb25Db21wbGV0ZTogXCLlrozmiJDml7ZcIixcbiAgICBvbkhpZGRlbjogXCLpmpDol4/kuK1cIixcbiAgICBhbGw6IFwi5YWo6YOoXCIsXG4gICAgcGFnZTogXCLpobVcIixcbiAgICBzdXJ2ZXk6IFwi6Zeu5Y23XCIsXG4gICAgb25OZXh0UGFnZTogXCLkuIvkuIDpobXml7ZcIixcbiAgICBvblZhbHVlQ2hhbmdlZDogXCLlgLzlj5jliqjml7ZcIlxuICB9LFxuICAvLyBzdHJpbmdzIGZvciBvcGVyYXRvcnNcbiAgb3A6IHtcbiAgICBlbXB0eTogXCLkuLrnqbpcIixcbiAgICBub3RlbXB0eTogXCLkuI3kuLrnqbpcIixcbiAgICBlcXVhbDogXCLnrYnkuo5cIixcbiAgICBub3RlcXVhbDogXCLkuI3nrYnkuo5cIixcbiAgICBjb250YWluczogXCLljIXlkKtcIixcbiAgICBub3Rjb250YWluczogXCLkuI3ljIXlkKtcIixcbiAgICBhbnlvZjogXCLku7vmhI9cIixcbiAgICBhbGxvZjogXCLlhajpg6hcIixcbiAgICBncmVhdGVyOiBcIuWkp+S6jlwiLFxuICAgIGxlc3M6IFwi5bCP5LqOXCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwi5aSn5LqO562J5LqOXCIsXG4gICAgbGVzc29yZXF1YWw6IFwi5bCP5LqO562J5LqOXCJcbiAgfSxcbiAgLy8gc3RyaW5ncyBmb3IgZW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCLkvb/nlKggQW5ndWxhciDml7ZcIixcbiAgICBqcXVlcnk6IFwi5L2/55SoIEpRdWVyeSDml7ZcIixcbiAgICBrbm9ja291dDogXCLkvb/nlKggS25vY2tvdXQg5pe2XCIsXG4gICAgcmVhY3Q6IFwi5L2/55SoIFJlYWN0IOaXtlwiLFxuICAgIHZ1ZTogXCLkvb/nlKggVnVlIOaXtlwiLFxuICAgIGJvb3RzdHJhcDogXCLkvb/nlKggQm9vdHN0cmFwIOaXtlwiLFxuICAgIHN0YW5kYXJkOiBcIuS4jeS9v+eUqCBCb290c3RyYXAg5pe2XCIsXG4gICAgc2hvd09uUGFnZTogXCLltYzlhaXpobXpnaLmmL7npLpcIixcbiAgICBzaG93SW5XaW5kb3c6IFwi5L2/55So5Y2V54us55qE6Zeu5Y2356qX5Y+jXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwi5LuO5pyN5Yqh5Zmo5Yqg6L296Zeu5Y23IEpTT04g5pWw5o2uXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwi6ISa5pys5ZKM5qC35byPXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiXG4gIH0sXG4gIHRzOiB7XG4gICAgc2VsZWN0UGFnZTogXCLpgInmi6nmtYvor5XpobVcIixcbiAgICBzaG93SW52aXNpYmxlRWxlbWVudHM6IFwi5pi+56S66ZqQ6JeP5YWD5Lu2XCJcbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIGFuc3dlcmNvdW50dmFsaWRhdG9yOiBcIuaVsOmHj+ajgOafpVwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcIkVtYWlsXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCLlhazlvI9cIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcIuaVsOWtl1wiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcIuato+WImeihqOi+vuW8j1wiLFxuICAgIHRleHR2YWxpZGF0b3I6IFwi5paH5pysXCJcbiAgfSxcbiAgdHJpZ2dlcnM6IHtcbiAgICBjb21wbGV0ZXRyaWdnZXI6IFwi5a6M5oiQ6Zeu5Y23XCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcIuiuvue9rumXrumimOWAvFwiLFxuICAgIGNvcHl2YWx1ZXRyaWdnZXI6IFwi5aSN5Yi25YC8XCIsXG4gICAgcnVuZXhwcmVzc2lvbnRyaWdnZXI6IFwi6L+Q6KGM5YWs5byPXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwi5L+u5pS55Y+v6KeB5oCnXCJcbiAgfSxcbiAgLy8gc3RyaW5ncyBvZiBwcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICBuYW1lOiBcIuWQjeWtl1wiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcIuagh+mimFwiLFxuICAgICAgdGl0bGU6IFwi5aaC5p6c5LiO5ZCN5a2X55u45ZCM77yM6K+36K6+572u5Li656m65YC8XCJcbiAgICB9LFxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCLlr7zoiKrmjInpkq7lj6/op4FcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCLpobXpnaLkuK3lhYPntKDnmoTpobrluo9cIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwi5a6M5oiQ6LCD5p+l55qE5pyA6ZW/5pe26Ze0XCIsXG4gICAgdmlzaWJsZTogXCLlj6/op4FcIixcbiAgICB2aXNpYmxlSWY6IFwi5p2h5Lu25Y+v6KeBXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIumXrumimOeahOagh+mimOS9jee9rlwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIuivtOaYjlwiLFxuICAgIHN0YXRlOiBcIueKtuaAgVwiLFxuICAgIGlzUmVxdWlyZWQ6IFwi5b+F6YCJXCIsXG4gICAgcmVxdWlyZWRJZjogXCLmmK/lkKblv4XpgIlcIixcbiAgICBpbmRlbnQ6IFwi57yp6L+bXCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwi5b+F5aGr6ZSZ6K+vXCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCLlhYHorrjpl67popjlnKjmlrDooYxcIixcbiAgICBpbm5lckluZGVudDogXCLnvKnov5tcIixcbiAgICBwYWdlOiBcIuaJgOWcqOmhtemdolwiLFxuICAgIHdpZHRoOiBcIuWuveW6plwiLFxuICAgIGNvbW1lbnRUZXh0OiBcIuWkh+azqOaWh+acrFwiLFxuICAgIHZhbHVlTmFtZTogXCLlgLzlkI1cIixcbiAgICBlbmFibGVJZjogXCLorr7nva7mnInmlYjmnaHku7ZcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwi6buY6K6k5YC8XCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCLmraPnoa7nrZTmoYhcIixcbiAgICByZWFkT25seTogXCLlj6ror7tcIixcbiAgICB2YWxpZGF0b3JzOiBcIuacieaViOaAp1wiLFxuICAgIHRpdGxlTG9jYXRpb246IFwi5qCH6aKY5L2N572uXCIsXG4gICAgaGFzQ29tbWVudDogXCLmnInlpIfms6hcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIuWFgeiuuOWFtuS7luetlOahiFwiLFxuICAgIGNob2ljZXM6IFwi6YCJ6aG5XCIsXG4gICAgY2hvaWNlc09yZGVyOiBcIumAiemhueaOkuW6j1wiLFxuICAgIGNob2ljZXNCeVVybDogXCJVcmzpgInpoblcIixcbiAgICBvdGhlclRleHQ6IFwi5YW25LuW562U5qGI5paH5pysXCIsXG4gICAgb3RoZXJFcnJvclRleHQ6IFwi5YW25LuW6ZSZ6K+vXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwi5YW25LuW5YC85Y2V54us5YKo5a2YXCIsXG4gICAgbGFiZWw6IFwi5qCH562+XCIsXG4gICAgc2hvd1RpdGxlOiBcIuaYvuekui/pmpDol48g5qCH6aKYXCIsXG4gICAgdmFsdWVUcnVlOiBcIumAieaYr+eahOWAvFwiLFxuICAgIHZhbHVlRmFsc2U6IFwi5LiN6YCJ55qE5YC8XCIsXG4gICAgY29sczogXCLliJdcIixcbiAgICByb3dzOiBcIuihjFwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIuWNoOS9jVwiLFxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIm9wdGlvbnNDYXB0aW9uXCIsXG4gICAgZXhwcmVzc2lvbjogXCLlhazlvI9cIixcbiAgICBmb3JtYXQ6IFwi5qC85byPXCIsXG4gICAgZGlzcGxheVN0eWxlOiBcIuaYvuekuumjjuagvFwiLFxuICAgIGN1cnJlbmN5OiBcIui0p+W4gVwiLFxuICAgIHVzZUdyb3VwaW5nOiBcInVzZUdyb3VwaW5nXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwi6aKE6KeIXCIsXG4gICAgYWxsb3dNdWx0aXBsZTogXCLlhYHorrjlpJrpgIlcIixcbiAgICBpbWFnZUhlaWdodDogXCLlm77pq5hcIixcbiAgICBpbWFnZVdpZHRoOiBcIuWbvuWuvVwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCLmlofmnKzmlrnlvI/lrZjlgqjmlofku7ZcIixcbiAgICBtYXhTaXplOiBcIuacgOWkp+WPt1wiLFxuICAgIGh0bWw6IFwiaHRtbFwiLFxuICAgIGNvbHVtbnM6IFwiY29sdW1uc1wiLFxuICAgIGNlbGxzOiBcIuWNleWFg1wiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwi5omA5pyJ6KGM5b+F5aGrXCIsXG4gICAgaG9yaXpvbnRhbFNjcm9sbDogXCLmu5rliqhcIixcbiAgICBjZWxsVHlwZTogXCLljZXlhYPmoLznsbvlnotcIixcbiAgICBjb2x1bW5zTGF5b3V0OiBcIuWIl+W4g+WxgFwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcIuWIl+aVsFwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcIuWIl+acgOWwj+WuveW6plwiLFxuICAgIHJvd0NvdW50OiBcIuihjOaVsFwiLFxuICAgIG1pblJvd0NvdW50OiBcIuacgOWwj+ihjOaVsFwiLFxuICAgIG1heFJvd0NvdW50OiBcIuacgOWkp+ihjOaVsFwiLFxuICAgIGtleU5hbWU6IFwi6ZSu5YC85ZCNXCIsXG4gICAga2V5RHVwbGljYXRpb25FcnJvcjogXCLplK7lgLzph43lpI1cIixcbiAgICBjb25maXJtRGVsZXRlOiBcIuehruiupOWIoOmZpFwiLFxuICAgIGNvbmZpcm1EZWxldGVUZXh0OiBcIuehruiupOWIoOmZpOaWh+acrFwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcIua3u+WKoOihjOS9jee9rlwiLFxuICAgIGFkZFJvd1RleHQ6IFwi5re75Yqg6KGM5paH5pysXCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCLliKDpmaTmlofmnKxcIixcbiAgICBpdGVtczogXCJpdGVtc1wiLFxuICAgIGl0ZW1TaXplOiBcIml0ZW1TaXplXCIsXG4gICAgY29sQ291bnQ6IFwi5YiX5pWwXCIsXG4gICAgdGVtcGxhdGVUaXRsZTogXCLmqKHmnb/moIfpophcIixcbiAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBcIuaooeadv+aPj+i/sFwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwi5YWB6K645re75Yqg6Z2i5p2/XCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLlhYHorrjliKDpmaTpnaLmnb9cIixcbiAgICBwYW5lbENvdW50OiBcIumdouadv+aVsFwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwi5pyA5bCP6Z2i5p2/5pWwXCIsXG4gICAgbWF4UGFuZWxDb3VudDogXCLmnIDlpKfpnaLmnb/mlbBcIixcbiAgICBwYW5lbHNTdGF0ZTogXCJwYW5lbHNTdGF0ZVwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCLmt7vliqDpnaLmnb/mlofmnKxcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwi5Yig6Zmk6Z2i5p2/5paH5pysXCIsXG4gICAgcGFuZWxQcmV2VGV4dDogXCLliY3kuIDpobnmloflrZdcIixcbiAgICBwYW5lbE5leHRUZXh0OiBcIuS4i+S4gOmhueaWh+Wtl1wiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwi5pi+56S66Zeu6aKY57yW5Y+3XCIsXG4gICAgc2hvd1JhbmdlSW5Qcm9ncmVzczogXCJzaG93UmFuZ2VJblByb2dyZXNzXCIsXG4gICAgcmVuZGVyTW9kZTogXCLmuLLmn5PmqKHlvI9cIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwi5qih5p2/5qCH6aKY5L2N572uXCIsXG4gICAgcmF0ZVZhbHVlczogXCLmiZPliIblgLxcIixcbiAgICByYXRlTWluOiBcIuacgOWwj+WIhlwiLFxuICAgIHJhdGVNYXg6IFwi5pyA5aSn5YiGXCIsXG4gICAgcmF0ZVN0ZXA6IFwi5YiG5YC86Ze06LedXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIuacgOWwj+WIhuaPj+i/sFwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCLmnIDlpKfliIbmj4/ov7BcIixcbiAgICBpbnB1dFR5cGU6IFwiaW5wdXRUeXBlXCIsXG4gICAgc2l6ZTogXCJzaXplXCIsXG4gICAgbG9jYWxlOiBcIum7mOiupOivreiogFwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCLmlLnlj5jpobXpnaLml7bogZrnhKblnKjnrKzkuIDkuKrpl67pophcIixcbiAgICBjb21wbGV0ZWRIdG1sOiBcIuWujOaIkOWQjueahEh0bWxcIixcbiAgICBjb21wbGV0ZWRCZWZvcmVIdG1sOiBcImNvbXBsZXRlZEJlZm9yZUh0bWxcIixcbiAgICBsb2FkaW5nSHRtbDogXCLliqDovb3pobXpnaJcIixcbiAgICB0cmlnZ2VyczogXCLop6blj5HlmahcIixcbiAgICBjb29raWVOYW1lOiBcIkNvb2tpZeWQje+8jOmBv+WFjeWkmuasoei/kOihjClcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCLliIfmjaLpobXml7bkv53lrZjnu5PmnpxcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwi5pi+56S65a+86Iiq5oyJ6ZKuICjpu5jorqTlr7zoiKopXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwi5pi+56S65YmN5LiA6aG15oyJ6ZKuICjnlKjmiLflj6/ov5Tlm57oh7PliY3kuIDpobXpnaIpXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi5pi+56S66aG16Z2i5qCH6aKYXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwi57uT5bC+5bGV56S65a6M5oiQ5ZCO55qE6aG16Z2iIChjb21wbGV0ZWRIdG1sKVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCLmmL7npLrpobXmlbBcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwi6Zeu6aKY6ZSZ6K+v5a6a5L2NXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIuaYvuekuui/m+W6puadoVwiLFxuICAgIG1vZGU6IFwi5qih5byPICjnvJbovpEv5Y+q6K+7KVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwi5Zue562U5pys6aG15omA5pyJ6Zeu6aKY5ZCO77yM6Ieq5Yqo6Lez6L2s5Yiw5LiL5LiA6aG1XCIsXG4gICAgY2hlY2tFcnJvcnNNb2RlOiBcIuafpemUmeaooeW8j1wiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIua4hemZpOmakOiXj+WAvFwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCLlvIDlp4vmjInpkq7mlofmnKxcIixcbiAgICBwYWdlUHJldlRleHQ6IFwi5YmN5LiA6aG15oyJ6ZKu5paH5pysXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIuWQjuS4gOmhteaMiemSruaWh+acrFwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLlrozmiJDmjInpkq7mlofmnKxcIixcbiAgICByZXF1aXJlZFRleHQ6IFwi6Zeu6aKY5b+F5aGr5qCH5b+XXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcIumXrumimOi1t+Wni+agh+W/lyAoMSwgMiBvciAnQScsICdhJylcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwi6Zeu6aKY5qCH6aKY5qih5p2/LCDpu5jorqTkuLo6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi6LCD5p+l55qE56ys5LiA6aG16Z2i5Li66LW35aeL6aG1LlwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCLlnKjkuIDkuKrpobXpnaLkuIrlsZXnpLrmiYDmnInlhYPntKBcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIuWujOaIkOiwg+afpeS4remhtemdoueahOacgOmVv+aXtumXtFwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIuaYvuekuuiuoeaXtuWZqOmdouadv1wiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCLmmL7npLrorqHml7blmajpnaLmnb/mqKHlvI9cIixcbiAgICBkZWZhdWx0UGFuZWxWYWx1ZTogXCLpu5jorqTpnaLmnb/lgLxcIixcbiAgICBkZWZhdWx0Um93VmFsdWU6IFwi6buY6K6k6KGM5YC8XCIsXG4gICAgc2hvd05vbmVJdGVtOiBcIumDveS4jemAiemhuVwiLFxuICAgIG5vbmVUZXh0OiBcIuaXoOaWh+acrFwiLFxuICAgIHRleHQ6IFwi5paH5pysXCIsXG4gICAgZGVmYXVsdFZhdWxlOiBcIum7mOiupOmAiemhuVwiLFxuICAgIFwic3VydmV5X3RpdGxlXCI6IHtcbiAgICAgIG5hbWU6IFwi5qCH6aKYXCIsXG4gICAgICB0aXRsZTogXCLpl67ljbfmoIfpopjlnKjmr4/pobXkuIrpg73kvJrmmL7npLpcIlxuICAgIH0sXG4gICAgXCJwYWdlX3RpdGxlXCI6IHtcbiAgICAgIG5hbWU6IFwi5qCH6aKYXCIsXG4gICAgICB0aXRsZTogXCLpobXpnaLmoIfpophcIlxuICAgIH1cbiAgfVxufTtcblxuZWRpdG9yTG9jYWxpemF0aW9uLmxvY2FsZXNbXCJ6aC1jblwiXSA9IHNpbXBsaWZpZWRDaGluZXNlVHJhbnNsYXRpb247XG4iLCJpbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5cbmV4cG9ydCB2YXIgc2tTdHJpbmdzID0ge1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcIlVwcmF2acWlXCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCJTbGVkb3ZhxaUgYSB6aXN0acWlLCBha28gdnl0dsOhcmHFpSBwcmllc2t1bXlcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rVXJsOiBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNIMnJ1OW9rSWNvb05aZnBJYnlxNHFRP3ZpZXdfYXM9c3Vic2NyaWJlclwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCJTZW0gemFkYWp0ZSBvdMOhemt1IHpvIHPDunByYXZ5IG7DoXN0cm9qb3YuXCIsXG4gICAgYWRkTG9naWNJdGVtOiBcIlZ5dHZvcmnFpSBwcmF2aWRsbyBwcmlzcMO0c29iZW5pYSBwcmllYmVodSBwcmllc2t1bXUuXCIsXG4gICAgY29weTogXCJLb3DDrXJvdmHFpVwiLFxuICAgIGR1cGxpY2F0ZTogXCJEdXBsaWtvdmHFpVwiLFxuICAgIGFkZFRvVG9vbGJveDogXCJQcmlkYcWlIGRvIHPDunByYXZ5IG7DoXN0cm9qb3ZcIixcbiAgICBkZWxldGVQYW5lbDogXCJPZHN0csOhbmnFpSBwYW5lbFwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcIk9kc3Ryw6FuacWlIG90w6F6a3VcIixcbiAgICBjb252ZXJ0VG86IFwiS29udmVydG92YcWlIG5hXCIsXG4gICAgZHJhZzogXCJQcmVzdW7DusWlIHBydm9rXCJcbiAgfSxcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIlByZWR2b2xlbsOpXCIsXG4gICAgY2hlY2tib3g6IFwiWmHEjWlhcmthdmFjaWUgcG9sw63EjWtvXCIsXG4gICAgY29tbWVudDogXCJLb21lbnTDoXJcIixcbiAgICBpbWFnZXBpY2tlcjogXCJOw6FzdHJvaiBuYSB2w71iZXIgb2Jyw6F6a292XCIsXG4gICAgcmFua2luZzogXCJIb2Rub3RlbmllXCIsXG4gICAgaW1hZ2U6IFwiT2Jyw6F6b2tcIixcbiAgICBkcm9wZG93bjogXCJSb3piYcS+b3ZhY8OtIHpvem5hbVwiLFxuICAgIGZpbGU6IFwiU8O6Ym9yXCIsXG4gICAgaHRtbDogXCJIdG1sXCIsXG4gICAgbWF0cml4OiBcIk1hdGljYSAoamVkbmEgbW/Fvm5vc8WlKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIk1hdGljYSAodmlhY2VybyBtb8W+bm9zdMOtKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0aWNhIChkeW5hbWlja8OpIHJpYWRreSlcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwiVGV4dCBwcmkgdmlhY2Vyw71jaCBtb8W+bm9zdGlhY2hcIixcbiAgICBwYW5lbDogXCJQYW5lbFwiLFxuICAgIHBhbmVsZHluYW1pYzogXCJQYW5lbCAoZHluYW1pY2vDqSBwYW5lbHkpXCIsXG4gICAgcmFkaW9ncm91cDogXCJTa3VwaW5hIHRsYcSNaWRpZWxcIixcbiAgICByYXRpbmc6IFwiSG9kbm90ZW5pZVwiLFxuICAgIHRleHQ6IFwiSmVkZW4gdnN0dXBcIixcbiAgICBib29sZWFuOiBcIkJvb2xlYW5cIixcbiAgICBleHByZXNzaW9uOiBcIlbDvXJheiAoaWJhIG5hIMSNw610YW5pZSlcIixcbiAgICBzaWduYXR1cmVwYWQ6IFwiUHJpZXN0b3IgbmEgcG9kcGlzXCIsXG4gICAgZmxvd3BhbmVsOiBcIlBhbmVsIHByaWViZWh1XCJcbiAgfSxcbiAgZWQ6IHtcbiAgICBkZWZhdWx0TG9jYWxlOiBcIlByZWR2b2xlbsOpICh7MH0pXCIsXG4gICAgc3VydmV5OiBcIlByaWVza3VtXCIsXG4gICAgc2V0dGluZ3M6IFwiTmFzdGF2ZW5pYSBwcmllc2t1bXVcIixcbiAgICBzZXR0aW5nc1Rvb2x0aXA6IFwiT3R2b3JpxaUgbmFzdGF2ZW5pYSBwcmllc2t1bXVcIixcbiAgICBzaG93UGFuZWw6IFwiWm9icmF6acWlIHBhbmVsXCIsXG4gICAgaGlkZVBhbmVsOiBcIlNrcnnFpSBwYW5lbFwiLFxuICAgIGFkZE5ld1BhZ2U6IFwiUHJpZGHFpSBub3bDuiBzdHJhbnVcIixcbiAgICBtb3ZlUmlnaHQ6IFwiUHJlanPFpSB2cHJhdm9cIixcbiAgICBtb3ZlTGVmdDogXCJQcmVqc8WlIHbEvmF2b1wiLFxuICAgIGRlbGV0ZVBhZ2U6IFwiT2RzdHLDoW5pxaUgc3RyYW51XCIsXG4gICAgZWRpdFBhZ2U6IFwiVXByYXZpxaUgc3RyYW51XCIsXG4gICAgZWRpdDogXCJVcHJhdmnFpVwiLFxuICAgIG5ld1BhZ2VOYW1lOiBcInN0csOhbmthXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcIm90w6F6a2FcIixcbiAgICBuZXdQYW5lbE5hbWU6IFwicGFuZWxcIixcbiAgICBuZXdUZXh0SXRlbU5hbWU6IFwidGV4dFwiLFxuICAgIHRlc3RTdXJ2ZXk6IFwiVGV4dG92w70gcHJpZXNrdW1cIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwixI5hbMWhw60gdGV4dG92w70gcHJpZXNrdW1cIixcbiAgICB0ZXN0U3VydmV5V2lkdGg6IFwixaDDrXJrYSBwcmllc2t1bXU6IFwiLFxuICAgIG5hdmlnYXRlVG9Nc2c6IFwiTXVzZWxpIHN0ZSBwcmVqc8WlIG5hOlwiLFxuICAgIGxvZ2ljOiBcIkxvZ2lrYSBwcmllc2t1bXVcIixcbiAgICBlbWJlZFN1cnZleTogXCJaYcSNbGVuacWlIHByaWVza3VtXCIsXG4gICAgdHJhbnNsYXRpb246IFwiUHJla2xhZFwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwiVWxvxb5pxaUgcHJpZXNrdW1cIixcbiAgICBzYXZlU3VydmV5VG9vbHRpcDogXCJVbG/FvmnFpSBwcmllc2t1bVwiLFxuICAgIGRlc2lnbmVyOiBcIk7DoXZyaMOhciBwcmllc2t1bW92XCIsXG4gICAganNvbkVkaXRvcjogXCJFZGl0b3IgSlNPTlwiLFxuICAgIHVuZG86IFwiU3DDpMWlXCIsXG4gICAgcmVkbzogXCJPcGFrb3ZhxaVcIixcbiAgICB1bmRvVG9vbHRpcDogXCJacnXFoWnFpSBwb3NsZWRuw7ogem1lbnVcIixcbiAgICByZWRvVG9vbHRpcDogXCJPcGFrb3ZhxaUgem1lbnVcIixcbiAgICBjb3B5OiBcIktvcMOtcm92YcWlXCIsXG4gICAgY3V0OiBcIlZ5c3RyaWhuw7rFpVwiLFxuICAgIHBhc3RlOiBcIlByaWxlcGnFpVwiLFxuICAgIGNvcHlUb29sdGlwOiBcIktvcMOtcm92YcWlIHbDvWJlciBkbyBzY2hyw6Fua3lcIixcbiAgICBjdXRUb29sdGlwOiBcIlZ5c3RyaWhuw7rFpSB2w71iZXIgZG8gc2NocsOhbmt5XCIsXG4gICAgcGFzdGVUb29sdGlwOiBcIlByaWxlcGnFpSB6byBzY2hyw6Fua3lcIixcbiAgICBvcHRpb25zOiBcIk1vxb5ub3N0aVwiLFxuICAgIGdlbmVyYXRlVmFsaWRKU09OOiBcIlZ5Z2VuZXJvdmHFpSBwbGF0bsO9IEpTT05cIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJWeWdlbmVyb3ZhxaUgbmHEjcOtdGF0ZcS+bsO9IEpTT05cIixcbiAgICB0b29sYm94OiBcIlPDunByYXZhIG7DoXN0cm9qb3ZcIixcbiAgICBcInByb3BlcnR5LWdyaWRcIjogXCJWbGFzdG5vc3RpXCIsXG4gICAgdG9vbGJveEdlbmVyYWxDYXRlZ29yeTogXCJWxaFlb2JlY27DqVwiLFxuICAgIGNvcnJlY3RKU09OOiBcIk9wcmF2dGUgSlNPTi5cIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcIlbDvXNsZWRvayBwcmllc2t1bXU6IFwiLFxuICAgIHN1cnZleVJlc3VsdHNUYWJsZTogXCJBa28gdGFidcS+a3VcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCJBa28gSlNPTlwiLFxuICAgIHJlc3VsdHNUaXRsZTogXCJUaXR1bCBvdMOhemt5XCIsXG4gICAgcmVzdWx0c05hbWU6IFwiTsOhem92IG90w6F6a3lcIixcbiAgICByZXN1bHRzVmFsdWU6IFwiSG9kbm90YSBvZHBvdmVkZVwiLFxuICAgIHJlc3VsdHNEaXNwbGF5VmFsdWU6IFwiWm9icmF6acWlIGhvZG5vdHVcIixcbiAgICBtb2RpZmllZDogXCJVcHJhdmVuw6lcIixcbiAgICBzYXZpbmc6IFwiVWtsYWRhbmllXCIsXG4gICAgc2F2ZWQ6IFwiVWxvxb5lbsOpXCIsXG4gICAgcHJvcGVydHlFZGl0b3JFcnJvcjogXCJDaHliYTpcIixcbiAgICBzYXZlRXJyb3I6IFwiQ2h5YmEhIE9ic2FoIGVkaXRvcmEgc2EgbmV1bG/FvmlsLlwiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwiVsO9YmVyIGphenlrYSBuYSBwcmVrbGFkXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsU3RyaW5nczogXCJab2JyYXppxaUgdsWhZXRreSByZcWlYXpjZVwiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcIlpvYnJhemnFpSB2xaFldGt5IHN0csOhbmt5XCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6IFwixb1pYWRuZSByZcWlYXpjZSBuYSBwcmVrbGFkLiBabWXFiHRlIGZpbHRlci5cIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcIkV4cG9ydG92YcWlIGRvIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJJbXBvcnRvdmHFpSB6IENTVlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDogXCJabMO6xI1pxaUgezB9IHMgcHJlZHZvbGVuw71tIG1pZXN0bnltIG5hc3RhdmVuw61tXCIsXG4gICAgYm9sZDogXCJUdcSNbsOpXCIsXG4gICAgaXRhbGljOiBcIkt1cnrDrXZhXCIsXG4gICAgdW5kZXJsaW5lOiBcIlBvZMSNaWFya251dGllXCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCJQcmlkYcWlIG90w6F6a3UuLi5cIixcbiAgICBzZWxlY3RQYWdlOiBcIlZ5YnJhxaUgc3Ryw6Fua3UuLi5cIixcbiAgICBjaG9vc2VFbGVtZW50OiBcIlZ5YnJhxaUgcHJ2b2suLi5cIixcbiAgICBsZzoge1xuICAgICAgYWRkTmV3SXRlbTogXCJcIixcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eU5hbWU6IFwiVmlkaXRlxL5ub3PFpSBzdHJhbnlcIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlOYW1lOiBcIlZpZGl0ZcS+bm9zxaUgcGFuZWxhXCIsXG4gICAgICBwYW5lbF9lbmFibGVOYW1lOiBcIlBhbmVsIHBvdm9sacWlL3pha8OhemHFpVwiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eU5hbWU6IFwiVmlkaXRlxL5ub3PFpSBvdMOhemt5XCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVOYW1lOiBcIk90w6F6a3UgcG92b2xpxaUvemFrw6F6YcWlXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlTmFtZTogXCJWecW+YWR1amUgc2Egdm9saXRlxL5uw6Egb3TDoXprYVwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZU5hbWU6IFwiRG9rb27EjWnFpSBwcmllc2t1bVwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZU5hbWU6IFwiTmFzdGF2acWlIGhvZG5vdHUgb3TDoXpreVwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVOYW1lOiBcIktvcMOtcm92YcWlIGhvZG5vdHUgb3TDoXpreVwiLFxuICAgICAgdHJpZ2dlcl9za2lwTmFtZTogXCJQcmVqc8WlIG5hIG90w6F6a3VcIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbk5hbWU6IFwiU3B1c3RpxaUgdmxhc3Ruw70gdsO9cmF6XCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25OYW1lOiBcIlZsYXN0bsO9IHRleHQgc3Ryw6Fua3kgcyBwb8SPYWtvdmFuw61tXCIsXG4gICAgICBwYWdlX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjogXCJTdHLDoW5rYSBidWRlIHZpZGl0ZcS+bsOhLCBrZcSPIGxvZ2lja8O9IHbDvXJheiB2csOhdGkgaG9kbm90dSB0cnVlLiBWIG9wYcSNbm9tIHByw61wYWRlIHNhIG5lYnVkZSB6b2JyYXpvdmHFpS5cIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjogXCJQYW5lbCBidWRlIHZpZGl0ZcS+bsO9LCBrZcSPIGxvZ2lja8O9IHbDvXJheiB2csOhdGkgaG9kbm90dSB0cnVlLiBWIG9wYcSNbm9tIHByw61wYWRlIHNhIG5lYnVkZSB6b2JyYXpvdmHFpS5cIixcbiAgICAgIHBhbmVsX2VuYWJsZURlc2NyaXB0aW9uOiBcIlBhbmVsIGEgdsWhZXRreSBqZWhvIHBydmt5IHNhIHBvdm9saWEsIGtlxI8gbG9naWNrw70gdsO9cmF6IHZyw6F0aSBob2Rub3R1IHRydWUuIFYgb3BhxI1ub20gcHLDrXBhZGUgYnVkw7ogemFrw6F6YW7DqS5cIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjogXCJPdMOhemthIGJ1ZGUgdmlkaXRlxL5uw6EsIGtlxI8gbG9naWNrw70gdsO9cmF6IHZyw6F0aSBob2Rub3R1IHRydWUuIFYgb3BhxI1ub20gcHLDrXBhZGUgc2EgbmVidWRlIHpvYnJhem92YcWlLlwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlRGVzY3JpcHRpb246IFwiT3TDoXprYSBzYSBwb3ZvbMOtLCBrZcSPIGxvZ2lja8O9IHbDvXJheiB2csOhdGkgaG9kbm90dSB0cnVlLiBWIG9wYcSNbm9tIHByw61wYWRlIHpvc3RhbmUgemFrw6F6YW7DoS5cIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVEZXNjcmlwdGlvbjogXCJPdMOhemthIGJ1ZGUgcG92aW5uw6EsIGtlxI8gbG9naWNrw70gdsO9cmF6IHZyw6F0aSBob2Rub3R1IHRydWUuXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlRGVzY3JpcHRpb246IFwiS2XEjyBsb2dpY2vDvSB2w71yYXogdnLDoXRpIGhvZG5vdHUgdHJ1ZSwgcHJpZXNrdW0gYnVkZSBkb2tvbsSNZW7DvSBhIHBvdcW+w612YXRlxL5vdmkgc2Egem9icmF6w60gc3Ryw6Fua2EgcyBwb8SPYWtvdmFuw61tLlwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZURlc2NyaXB0aW9uOiBcIlYgcHLDrXBhZGUsIMW+ZSBzYSB6bWVuaWEgaG9kbm90eSwga3RvcsOpIHNhIHBvdcW+w612YWrDuiB2IHLDoW1jaSBsb2dpY2vDqWhvIHbDvXJhenUsIGEgbG9naWNrw70gdsO9cmF6IHZyw6F0aSBob2Rub3R1IHRydWUsIHByZSB2eWJyYXTDuiBvdMOhemt1IHNhIG5hc3RhdsOtIGRhbsOhIGhvZG5vdGEuXCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZURlc2NyaXB0aW9uOiBcIlYgcHLDrXBhZGUsIMW+ZSBzYSB6bWVuaWEgaG9kbm90eSBvdMOhem9rLCBrdG9yw6kgc2EgcG91xb7DrXZhasO6IHYgcsOhbWNpIGxvZ2lja8OpaG8gdsO9cmF6dSwgYSBsb2dpY2vDvSB2w71yYXogdnLDoXRpIGhvZG5vdHUgdHJ1ZSwgaG9kbm90YSBqZWRuZWogdnlicmF0ZWogb3TDoXpreSBzYSBza29ww61ydWplIG5hIMSPYWzFoWl1IHZ5YnJhdMO6IG90w6F6a3UuXCIsXG4gICAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjogXCJLZcSPIGxvZ2lja8O9IHbDvXJheiB2csOhdGkgaG9kbm90dSB0cnVlLCBwcmllc2t1bSBwcmVqZGUvbmFzdGF2w60gc2EgbmEgdnlicmF0w7ogb3TDoXprdS5cIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbkRlc2NyaXB0aW9uOiBcIktlxI8gbG9naWNrw70gdsO9cmF6IHZyw6F0aSBob2Rub3R1IHRydWUsIHZ5a29uw6Egc2Egdmxhc3Ruw70gdsO9cmF6LiBWb2xpdGXEvm5lIG3DtMW+ZXRlIG5hc3RhdmnFpSB0ZW50byB2w71yYXogbmEgdnlicmF0w7ogb3TDoXprdS5cIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkRlc2NyaXB0aW9uOiBcIktlxI8gbG9naWNrw70gdsO9cmF6IHZyw6F0aSBob2Rub3R1IHRydWUsIHByZWR2b2xlbsO9IHRleHQgbmEgc3Ryw6Fua2UgcyBwb8SPYWtvdmFuw61tIHNhIHptZW7DrSBuYSB6YWRhbsO9IHRleHQuXCIsXG4gICAgICBpdGVtRXhwcmVzc2lvblRleHQ6IFwiS2XEjyB2w71yYXo6IOKAnnswfeKAnCB2csOhdGkgaG9kbm90dSB0cnVlOlwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5VGV4dDogXCJTdHLDoW5rYSB7MH0gYnVkZSB2aWRpdGXEvm7DoVwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eVRleHQ6IFwiUGFuZWwgezB9IGJ1ZGUgdmlkaXRlxL5uw71cIixcbiAgICAgIHBhbmVsX2VuYWJsZVRleHQ6IFwiUGFuZWwgezB9IGJ1ZGUgcG92b2xlbsO9XCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5VGV4dDogXCJPdMOhemthIHswfSBidWRlIHZpZGl0ZcS+bsOhXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVUZXh0OiBcIk90w6F6a2EgezB9IGJ1ZGUgcG92b2xlbsOhXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlVGV4dDogXCJPdMOhemthIHswfSBzYSBidWRlIHZ5xb5hZG92YcWlXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCJQcmllc2t1bSBidWRlIGRva29uxI1lbsO9XCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCJOYXN0YXZpxaUgdiBvdMOhemtlOiB7MH0gaG9kbm90dSB7MX1cIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlVGV4dDogXCJLb3DDrXJvdmHFpSBkbyBvdMOhemt5OiB7MH0gaG9kbm90dSB6IG90w6F6a3kgezF9XCIsXG4gICAgICB0cmlnZ2VyX3NraXBUZXh0OiBcIlYgcHJpZXNrdW1lIHByZWpzxaUgbmEgb3TDoXprdSB7MH1cIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQxOiBcIlNwdXN0acWlIHbDvXJhejog4oCeezB94oCcXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MjogXCIgYSBuYXN0YXZpxaUgdsO9c2xlZG9rIHYgb3TDoXprZTogezB9XCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25UZXh0OiBcIlpvYnJhemnFpSB2bGFzdG7DvSB0ZXh0IHByZSBzdHLDoW5rdSBzIHBvxI9ha292YW7DrW0uXCIsXG4gICAgICBjb25kaXRpb25zOiBcIlBvZG1pZW5rYSgteSlcIixcbiAgICAgIGFjdGlvbnM6IFwiQWtjaWEoLWUpXCIsXG4gICAgICBleHByZXNzaW9uRWRpdG9yVGl0bGU6IFwiRGVmaW5vdmHFpSBwb2RtaWVua3UoLXkpXCIsXG4gICAgICBhY3Rpb25zRWRpdG9yVGl0bGU6IFwiRGVmaW5vdmHFpSBha2NpdSgtZSlcIixcbiAgICAgIGRlbGV0ZUFjdGlvbjogXCJPZHN0csOhbmnFpSBha2NpdVwiLFxuICAgICAgYWRkTmV3QWN0aW9uOiBcIlByaWRhxaUgbm92w7ogYWtjaXVcIixcbiAgICAgIHNlbGVjdGVkQWN0aW9uQ2FwdGlvbjogXCJWeWJyYcWlIGFrY2l1IG5hIHByaWRhbmllLi4uXCIsXG4gICAgICBleHByZXNzaW9uSW52YWxpZDogXCJMb2dpY2vDvSB2w71yYXogamUgcHLDoXpkbnkgYWxlYm8gbmVwbGF0bsO9LiBPcHJhdnRlIGhvLlwiLFxuICAgICAgbm9BY3Rpb25FcnJvcjogXCJQcmlkYWp0ZSBhc3BvxYggamVkbnUgYWtjaXUuXCIsXG4gICAgICBhY3Rpb25JbnZhbGlkOiBcIk9kc3Ryw6HFiHRlIHByb2Jsw6lteSB2IGFrY2lpKC3DoWNoKS5cIixcbiAgICAgIGV4cHJlc3Npb25TZXR1cDogXCJcIixcbiAgICAgIGFjdGlvbnNTZXR1cDogXCJcIlxuICAgIH1cbiAgfSxcbiAgcGU6IHtcbiAgICBhcHBseTogXCJQb3XFvmnFpVwiLFxuICAgIG9rOiBcIk9LXCIsXG4gICAgc2F2ZTogXCJVbG/FvmnFpVwiLFxuICAgIHNhdmVUb29sdGlwOiBcIlVsb8W+acWlXCIsXG4gICAgY2FuY2VsOiBcIlpydcWhacWlXCIsXG4gICAgcmVzZXQ6IFwiT2Jub3ZlbmllIHDDtHZvZG7DqWhvIG5hc3RhdmVuaWFcIixcbiAgICByZWZyZXNoOiBcIk9ibm92acWlXCIsXG4gICAgZGVsZXRlOiBcIlZ5bWF6YcWlXCIsXG4gICAgYWRkOiBcIlByaWRhxaVcIixcbiAgICBhZGROZXc6IFwiUHJpZGHFpSBub3bDqVwiLFxuICAgIGFkZEl0ZW06IFwiS2xpa251dMOtbSBwcmlkYcWlIHBvbG/Fvmt1Li4uXCIsXG4gICAgYWRkT3RoZXI6IFwiSW7DqVwiLFxuICAgIGFkZFNlbGVjdEFsbDogXCJWeWJyYcWlIHbFoWV0a3lcIixcbiAgICBhZGROb25lOiBcIsW9aWFkbmVcIixcbiAgICByZW1vdmVBbGw6IFwiT2RzdHLDoW5pxaUgdsWhZXRrb1wiLFxuICAgIGVkaXQ6IFwiVXByYXZpxaVcIixcbiAgICB2aWV3OiBcIlpvYnJhemnFpVwiLFxuICAgIGJhY2s6IFwiTsOhdnJhdCBiZXogdWxvxb5lbmlhXCIsXG4gICAgYmFja1Rvb2x0aXA6IFwiTsOhdnJhdCBiZXogdWxvxb5lbmlhXCIsXG4gICAgc2F2ZUFuZEJhY2s6IFwiVWxvxb5pxaUgYSB2csOhdGnFpSBzYVwiLFxuICAgIHNhdmVBbmRCYWNrVG9vbHRpcDogXCJVbG/FvmnFpSBhIHZyw6F0acWlIHNhXCIsXG4gICAgZWRpdENob2ljZXM6IFwiVXByYXZpxaUgbW/Fvm5vc3RpXCIsXG4gICAgc2hvd0Nob2ljZXM6IFwiWm9icmF6acWlIG1vxb5ub3N0aVwiLFxuICAgIG1vdmU6IFwiUHJlc3Vuw7rFpVwiLFxuICAgIGVtcHR5OiBcIjxlbXB0eT5cIixcbiAgICBmYXN0RW50cnk6IFwiUsO9Y2hsZSB6YWRhbmllXCIsXG4gICAgZm9ybUVudHJ5OiBcIlphZGFuaWUgZm9ybXVsw6FyYVwiLFxuICAgIHRlc3RTZXJ2aWNlOiBcIlRlc3Qgc2x1xb5ieVwiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcIlZ5YmVydGUgcHJ2b2tcIixcbiAgICBjb25kaXRpb25BY3Rpb25FbXB0eTogXCJWeWJlcnRlIGFrY2l1XCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UXVlc3Rpb246IFwiVnlicmHFpSBvdMOhemt1Li4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFnZTogXCJWeWJyYcWlIHN0csOhbmt1Li4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFuZWw6IFwiVnlicmHFpSBwYW5lbC4uLlwiLFxuICAgIGNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZTogXCJaYWRhanRlL3Z5YmVydGUgaG9kbm90dVwiLFxuICAgIGV4cHJlc3Npb25IZWxwOiBcIlBvbW9jb3Ugemxvxb5lbsO9Y2ggesOhdHZvcmllayBtw7TFvmV0ZSB6w61za2HFpSBwcsOtc3R1cCBrIGhvZG5vdMOhbSBvdMOhem9rOiB7cXVlc3Rpb24xfSArIHtxdWVzdGlvbjJ9LCAoe3ByaWNlfSp7cXVhbnRpdHl9KSAqICgxMDAgLSB7ZGlzY291bnR9KS4gTcO0xb5ldGUgcG91xb7DrXZhxaUgZnVua2NpZSBha286IGlpZigpLCB0b2RheSgpLCBhZ2UoKSwgbWluKCksIG1heCgpLCBjb3VudCgpLCBhdmcoKSBhIGluw6kuXCIsXG4gICAgYWNlRWRpdG9ySGVscDogXCJLbMOhdmVzb3ZvdSBza3JhdGtvdSBjdHJsK3NwYWNlIHrDrXNrYXRlIHRpcCBuYSBkb2tvbsSNZW5pZSB2w71yYXp1XCIsXG4gICAgYWNlRWRpdG9yUm93VGl0bGU6IFwiQWt0dcOhbG55IHJpYWRva1wiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwiQWt0dcOhbG55IHBhbmVsXCIsXG4gICAgc2hvd01vcmU6IFwixI5hbMWhaWUgcG9kcm9ibm9zdGkgbsOhamRldGUgdiBkb2t1bWVudMOhY2lpXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwiRG9zdHVwbsOpIG90w6F6a3k6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIksgZGlzcG96w61jaWkgbcOhIGJ5xaUgYXNwb8WIIGplZGVuIHN0xLpwZWMgYWxlYm8gcmlhZG9rXCIsXG4gICAgcHJvcGVydHlJc0VtcHR5OiBcIlphZGFqdGUgaG9kbm90dVwiLFxuICAgIHByb3BlcnR5SXNOb1VuaXF1ZTogXCJaYWRhanRlIGplZGluZcSNbsO6IGhvZG5vdHVcIixcbiAgICBwcm9wZXJ0eU5hbWVJc05vdFVuaXF1ZTogXCJaYWRhanRlIGplZGluZcSNbsO9IG7DoXpvdlwiLFxuICAgIGxpc3RJc0VtcHR5OiBcIlByaWRhanRlIG5vdsO6IHBvbG/Fvmt1XCIsXG4gICAgZXhwcmVzc2lvbklzRW1wdHk6IFwiVsO9cmF6IGplIHByw6F6ZG55XCIsXG4gICAgdmFsdWU6IFwiSG9kbm90YVwiLFxuICAgIHRleHQ6IFwiVGV4dFwiLFxuICAgIHJvd2lkOiBcIklEIHJpYWRrYVwiLFxuICAgIGltYWdlTGluazogXCJPZGtheiBuYSBvYnLDoXpva1wiLFxuICAgIGNvbHVtbkVkaXQ6IFwiVXByYXZpxaUgc3TEunBlYzogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwiVXByYXZpxaUgcG9sb8W+a3U6IHswfVwiLFxuICAgIGl0ZW1WaWV3OiBcIlpvYnJhemnFpSBwb2xvxb5rdTogezB9XCIsXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHBhdGg6IFwiQ2VzdGFcIixcbiAgICB2YWx1ZU5hbWU6IFwiTsOhem92IGhvZG5vdHlcIixcbiAgICB0aXRsZU5hbWU6IFwiVGl0dWxuw70gbsOhem92XCIsXG4gICAgYWxsb3dFbXB0eVJlc3BvbnNlOiBcIlBvdm9sacWlIHByw6F6ZG51IG9kb3p2dVwiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwiU2VtIHphZGFqdGUgdGl0dWxcIixcbiAgICBzdXJ2ZXlUaXRsZVBsYWNlaG9sZGVyOiBcIlNlbSB2bG/FvnRlIHRpdHVsIHByaWVza3VtdVwiLFxuICAgIHBhZ2VUaXRsZVBsYWNlaG9sZGVyOiBcIlNlbSB6YWRhanRlIHRpdHVsIHN0csOhbmt5XCIsXG4gICAgZGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJaYWRhxaUgb3Bpc1wiLFxuICAgIHN1cnZleURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiWmFkYcWlIG9waXMgcHJpZXNrdW11XCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiWmFkYcWlIG9waXMgc3Ryw6Fua3lcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIk9ic2FodWplIGluw7ogcG9sb8W+a3VcIixcbiAgICBvdGhlclRleHQ6IFwiVGV4dCBpbmVqIHBvbG/Fvmt5XCIsXG4gICAgc2hvd05vbmVJdGVtOiBcIk5lb2JzYWh1amUgxb5pYWRudSBwb2xvxb5rdVwiLFxuICAgIG5vbmVUZXh0OiBcIlRleHQgcHJpIMW+aWFkbmVqIHBvbG/FvmtlXCIsXG4gICAgaGFzU2VsZWN0QWxsOiBcIk9ic2FodWplIHZ5YnJhdMOpIHbFoWV0a3kgcG9sb8W+a3lcIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIlRleHQgcHJpIHbDvWJlcmUgdsWhZXRrw71jaCBwb2xvxb5pZWtcIixcbiAgICBjaG9pY2VzTWluOiBcIk1pbmltw6FsbmEgaG9kbm90YSBwcmUgYXV0b21hdGlja3kgdnlnZW5lcm92YW7DqSBwb2xvxb5reVwiLFxuICAgIGNob2ljZXNNYXg6IFwiTWF4aW3DoWxuYSBob2Rub3RhIHByZSBhdXRvbWF0aWNreSB2eWdlbmVyb3ZhbsOpIHBvbG/Fvmt5XCIsXG4gICAgY2hvaWNlc1N0ZXA6IFwiUm96ZGllbCBtZWR6aSBhdXRvbWF0aWNreSB2eWdlbmVyb3ZhbsO9bWkgcG9sb8W+a2FtaVwiLFxuICAgIG5hbWU6IFwiTsOhem92XCIsXG4gICAgdGl0bGU6IFwiVGl0dWxcIixcbiAgICBjZWxsVHlwZTogXCJUeXAgYnVua3lcIixcbiAgICBjb2xDb3VudDogXCJQb8SNZXQgc3TEunBjb3ZcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiUG9yYWRpZSB2eWJyYXTDvWNoIG1vxb5ub3N0w61cIixcbiAgICB2aXNpYmxlOiBcIkplIHZpZGl0ZcS+bsOpP1wiLFxuICAgIGlzUmVxdWlyZWQ6IFwiVnnFvmFkdWplIHNhP1wiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwiVnnFvmFkb3ZhxaUgb2Rwb3ZlxI8gcHJlIHbFoWV0a3kgcmlhZGt5XCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwiVGV4dCBjaHlieSBwcmkgcG92aW5uw71jaCBwb2xvxb5rw6FjaFwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiWmHEjcOtbmEgc2Egbm92w71tIHJpYWRrb20/XCIsXG4gICAgcm93czogXCJQb8SNZXQgcmlhZGtvdlwiLFxuICAgIGNvbHM6IFwiUG/EjWV0IHN0xLpwY292XCIsXG4gICAgcGxhY2Vob2xkZXI6IFwiVmxvxb5pxaUgesOhc3R1cG7DvSBzeW1ib2xcIixcbiAgICBzaG93UHJldmlldzogXCJab2JyYXppxaUgb2JsYXPFpSBuw6FoxL5hZHVcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwiVWxvxb5pxaUgb2JzYWh1IHPDumJvcnUgdm8gdsO9c2xlZGt1IEpTT04gYWtvIHRleHRcIixcbiAgICBtYXhTaXplOiBcIk1heGltw6FsbmEgdmXEvmtvc8WlIHPDumJvcnUgdiBiYWp0b2NoXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiVsO9xaFrYSBvYnLDoXprYVwiLFxuICAgIGltYWdlV2lkdGg6IFwixaDDrXJrYSBvYnLDoXprYVwiLFxuICAgIHJvd0NvdW50OiBcIlBvxI1ldCByaWFka292XCIsXG4gICAgY29sdW1uTGF5b3V0OiBcIlJvemxvxb5lbmllIHN0xLpwY292XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiUG9sb2hhIHRsYcSNaWRsYSBuYSBwcmlkYW5pZSByaWFka2FcIixcbiAgICBhZGRSb3dUZXh0OiBcIlRleHQgdGxhxI1pZGxhIG5hIHByaWRhbmllIHJpYWRrYVwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiVGV4dCB0bGHEjWlkbGEgbmEgb2RzdHLDoW5lbmllIHJpYWRrYVwiLFxuICAgIHJhdGVNaW46IFwiTWluaW3DoWxuZSBob2Rub3RlbmllXCIsXG4gICAgcmF0ZU1heDogXCJNYXhpbcOhbG5lIGhvZG5vdGVuaWVcIixcbiAgICByYXRlU3RlcDogXCJLcm9rIGhvZG5vdGVuaWFcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiT3BpcyBtaW5pbcOhbG5laG8gaG9kbm90ZW5pYVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJvcGlzIG1heGltw6FsbmVobyBob2Rub3RlbmlhXCIsXG4gICAgaW5wdXRUeXBlOiBcIlR5cCB2c3R1cHVcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJUaXR1bG9rIG1vxb5ub3N0w61cIixcbiAgICBzaG93T3B0aW9uc0NhcHRpb246IFwiWm9icmF6acWlIHRpdHVsb2sgbW/Fvm5vc3TDrVwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJQcmVkdm9sZW7DoSBob2Rub3RhXCIsXG4gICAgY2VsbHNEZWZhdWx0Um93OiBcIlByZWR2b2xlbsOpIHRleHR5IGJ1bmlla1wiLFxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcIlVwcmF2acWlIG5hc3RhdmVuaWEgcHJpZXNrdW11XCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIlVwcmF2acWlOiB7MH1cIixcbiAgICBtYXhMZW5ndGg6IFwiTWF4aW3DoWxuYSBkxLrFvmthXCIsXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcIlpvc3RhdmnFpVwiLFxuICAgIGVkaXRFeHByZXNzaW9uOiBcIlVwcmF2acWlXCIsXG4gICAgYW5kOiBcIkFcIixcbiAgICBvcjogXCJBbGVib1wiLFxuICAgIHJlbW92ZTogXCJPZHN0csOhbmnFpVwiLFxuICAgIGFkZENvbmRpdGlvbjogXCJQcmlkYcWlIHBvZG1pZW5rdVwiLFxuICAgIHNob3dUaXRsZTogXCJab2JyYXppxaUvc2tyecWlIHRpdHVsXCIsXG4gICAgZXhwYW5kQ29sbGFwc2VUaXRsZTogXCJSb3piYWxpxaUvemJhbGnFpSB0aXR1bFwiLFxuICAgIGxvY2FsZTogXCJQcmVkdm9sZW7DvSBqYXp5a1wiLFxuICAgIHNpbXVsYXRvcjogXCJWeWJyYcWlIHphcmlhZGVuaWVcIixcbiAgICBsYW5kc2NhcGVPcmllbnRhdGlvbjogXCJOYSDFocOtcmt1XCIsXG4gICAgbW9kZTogXCJSZcW+aW0gKHVwcmF2acWlL2liYSBuYSDEjcOtdGFuaWUpXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiT2RzdHLDoW5pxaUgbmV2aWRpdGXEvm7DqSBob2Rub3R5XCIsXG4gICAgY29va2llTmFtZTogXCJOw6F6b3Ygc8O6Ym9ydSBjb29raWUgKG5hIHphYnLDoW5lbmllIGxva8OhbG5laG8gc3B1c3RlbmlhIHByaWVza3VtdSBkdmFrcsOhdClcIixcbiAgICBzZW5kUmVzdWx0T25QYWdlTmV4dDogXCJPZG9zbGHFpSB2w71zbGVka3kgcHJpZXNrdW11IG5hIMSPYWzFoWl1IHN0csOhbmt1XCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiVWxvxb5pxaUgaG9kbm90dSDigJ5pbsOp4oCcIHYgc2Ftb3N0YXRub20gcG9saVwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIlpvYnJhemnFpSB0aXR1bHkgc3Ryw6Fub2tcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwiWm9icmF6acWlIMSNw61zbGEgc3Ryw6Fub2tcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiVGV4dCB0bGHEjWlkbGEgcHJlIHByZWRjaMOhZHphasO6Y3Ugc3Ryw6Fua3VcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwiVGV4dCB0bGHEjWlkbGEgcHJlIMSPYWzFoWl1IHN0csOhbmt1XCIsXG4gICAgY29tcGxldGVUZXh0OiBcIlRleHQgdGxhxI1pZGxhIGRva29uxI1lbmlhXCIsXG4gICAgcHJldmlld1RleHQ6IFwiVGV4dCB0bGHEjWlkbGEgdWvDocW+a3lcIixcbiAgICBlZGl0VGV4dDogXCJUZXh0IHRsYcSNaWRsYSDDunByYXZ5XCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIlRleHQgdGxhxI1pZGxhIHNwdXN0ZW5pYVwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJab2JyYXppxaUgbmF2aWdhxI1uw6kgdGxhxI1pZGzDoSAocHJlZHZvbGVuw6EgbmF2aWfDoWNpYSlcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCJab2JyYXppxaUgdGxhxI1pZGxvIHByZWRjaMOhZHphasO6Y2UgKHBvdcW+w612YXRlxL4gc2EgbcO0xb5lIHZyw6FpxaUgbmEgcHJlZGNow6FkemFqw7pjdSBzdHLDoW5rdSlcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiUHJ2w6Egc3Ryw6Fua2EgdiBwcmllc2t1bWUgamUgw7p2b2Ruw6Egc3Ryw6Fua2EuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiTmEga29uY2kgem9icmF6acWlIHN0csOhbmt1IHMgZG9rb27EjWVuw61tIChjb21wbGV0ZWRIdG1sKVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwiUG8gem9kcG92ZWRhbsOtIHbFoWV0a8O9Y2ggb3TDoXpvayBwcmVqc8WlIG5hIMSPYWzFoWl1IHN0csOhbmt1IGF1dG9tYXRpY2t5XCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIlpvYnJhemnFpSBpbmRpa8OhdG9yIHByaWViZWh1XCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIlBvbG9oYSB0aXR1bHUgb3TDoXpreVwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJQb3Zpbm7DvSBzeW1ib2woLXkpIG90w6F6b2tcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiT3TDoXprYSBzYSB6YcSNw61uYSBpbmRleG9tICgxLCAyIGFsZWJvIOKAnkHigJwsIOKAnmHigJwpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJab2JyYXppxaUgxI3DrXNsYSBvdMOhem9rXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcIsWgYWJsw7NuYSB0aXR1bHUgb3TDoXpreSwgcHJlZHZvbGVuw6EgamU6ICDigJ57bm99LiB7cmVxdWlyZX0ge3RpdGxlfeKAnFwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJQb2xvaGEgY2h5Ynkgb3TDoXpreVwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCJQcmVjaG9kIG5hIHBydsO6IG90w6F6a3UgcHJpIHptZW5lIHN0csOhbmt5XCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiUG9yYWRpZSBwcnZrb3YgbmEgc3Ryw6Fua2VcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiTWF4aW3DoWxueSDEjWFzIG5hIGRva29uxI1lbmllIHByaWVza3VtdVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwiTWF4aW3DoWxueSDEjWFzIG5hIGRva29uxI1lbmllIHN0csOhbmt5IHYgcsOhbWNpIHByaWVza3VtdVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIlpvYnJhemnFpSBwYW5lbCBzIMSNYXNvdmHEjW9tXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIlpvYnJhemnFpSByZcW+aW0gcGFuZWxhIHMgxI1hc292YcSNb21cIixcbiAgICByZW5kZXJNb2RlOiBcIlJlxb5pbSB2eWtyZXPEvm92YW5pYVwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiUG92b2xpxaUgcHJpZGFuaWUgcGFuZWxhXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJQb3ZvbGnFpSBvZHN0csOhbmVuaWUgcGFuZWxhXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIlRleHQgcHJpIHByaWRhbsOtIHBhbmVsYVwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJUZXh0IHByaSBvZHN0csOhbmVuw60gcGFuZWxhXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIlpvYnJhemnFpSB2xaFldGt5IHBydmt5IG5hIGplZG5laiBzdHLDoW5rZVwiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIGV4cHJlc3Npb246IFwiVsO9cmF6XCIsXG4gICAgbWluVmFsdWU6IFwiTWluaW3DoWxuYSBob2Rub3RhXCIsXG4gICAgbWF4VmFsdWU6IFwiTWF4aW3DoWxuYSBob2Rub3RhXCIsXG4gICAgbWluTGVuZ3RoOiBcIk1pbmltw6FsbmEgZMS6xb5rYVwiLFxuICAgIGFsbG93RGlnaXRzOiBcIlBvdm9sacWlIMSNw61zbGFcIixcbiAgICBtaW5Db3VudDogXCJNaW5pbcOhbG55IHBvxI1ldFwiLFxuICAgIG1heENvdW50OiBcIk1heGltw6FsbnkgcG/EjWV0XCIsXG4gICAgcmVnZXg6IFwiUmVndWzDoXJueSB2w71yYXpcIixcbiAgICB0b3RhbFRleHQ6IFwiQ2Vsa29tIOKAkyB0ZXh0XCIsXG4gICAgdG90YWxUeXBlOiBcIkNlbGtvbSDigJMgdHlwXCIsXG4gICAgdG90YWxFeHByZXNzaW9uOiBcIkNlbGtvbSDigJMgdsO9cmF6XCIsXG4gICAgdG90YWxEaXNwbGF5U3R5bGU6IFwiQ2Vsa29tIOKAkyDFoXTDvWwgem9icmF6ZW5pYVwiLFxuICAgIHRvdGFsQ3VycmVuY3k6IFwiQ2Vsa29tIOKAkyBtZW5hXCIsXG4gICAgdG90YWxGb3JtYXQ6IFwiQ2Vsa29tIOKAkyBmb3Jtw6F0XCIsXG4gICAgbG9nb1Bvc2l0aW9uOiBcIlBvbG9oYSBsb2dhXCIsXG4gICAgYWRkTG9nbzogXCJQcmlkYcWlIGxvZ28uLi5cIixcbiAgICBjaGFuZ2VMb2dvOiBcIlptZW5pxaUgbG9nby4uLlwiLFxuICAgIGxvZ29Qb3NpdGlvbnM6IHtcbiAgICAgIG5vbmU6IFwiT2RzdHLDoW5pxaUgbG9nb1wiLFxuICAgICAgbGVmdDogXCJWxL5hdm9cIixcbiAgICAgIHJpZ2h0OiBcIlZwcmF2b1wiLFxuICAgICAgdG9wOiBcIlYgaG9ybmVqIMSNYXN0aVwiLFxuICAgICAgYm90dG9tOiBcIlYgc3BvZG5laiDEjWFzdGlcIlxuICAgIH0sXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCJWxaFlb2JlY27DqVwiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwiTW/Fvm5vc3RpXCIsXG4gICAgICBodG1sOiBcIkVkaXRvciBIdG1sXCIsXG4gICAgICBjb2x1bW5zOiBcIlN0xLpwY2VcIixcbiAgICAgIHJvd3M6IFwiUmlhZGt5XCIsXG4gICAgICBjaG9pY2VzOiBcIk1vxb5ub3N0aVwiLFxuICAgICAgaXRlbXM6IFwiUG9sb8W+a3lcIixcbiAgICAgIHZpc2libGVJZjogXCJWaWRpdGXEvm7DqSBha1wiLFxuICAgICAgZW5hYmxlSWY6IFwiUG92b2xpxaUgYWtcIixcbiAgICAgIHJlcXVpcmVkSWY6IFwiUG92aW5uw6kgYWtcIixcbiAgICAgIHJhdGVWYWx1ZXM6IFwiSG9kbm90eSBob2Rub3RlbmlhXCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwiTW/Fvm5vc3RpIHogd2VidVwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCJQcmVkdm9sZW7DqSBtb8W+bm9zdGlcIixcbiAgICAgIG11bHRpcGxlVGV4dEl0ZW1zOiBcIlphZGFuaWEgdGV4dHVcIixcbiAgICAgIG51bWJlcmluZzogXCLEjMOtc2xvdmFuaWVcIixcbiAgICAgIHZhbGlkYXRvcnM6IFwiT3Zlcm92YXRlbGlhXCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcIk5hdmlnw6FjaWFcIixcbiAgICAgIHF1ZXN0aW9uOiBcIk90w6F6a2FcIixcbiAgICAgIHBhZ2VzOiBcIlN0csOhbmt5XCIsXG4gICAgICBjb21wbGV0ZWRIdG1sOiBcIkRva29uxI1lbsOpIEh0bWxcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJEb2tvbsSNZW7DqSBIdG1sIHphIHBvZG1pZW5reVwiLFxuICAgICAgbG9hZGluZ0h0bWw6IFwiTmHEjcOtdGFuaWUgSHRtbFwiLFxuICAgICAgdGltZXI6IFwixIxhc292YcSNL2t2w616XCIsXG4gICAgICBjYWxjdWxhdGVkVmFsdWVzOiBcIlZ5cG/EjcOtdGFuw6kgaG9kbm90eVwiLFxuICAgICAgdHJpZ2dlcnM6IFwiQWt0aXbDoXRvcnlcIixcbiAgICAgIHRlbXBsYXRlVGl0bGU6IFwiVGl0dWwgxaFhYmzDs255XCIsXG4gICAgICB0b3RhbHM6IFwiQ2Vsa292w6kgaG9kbm90eVwiLFxuICAgICAgbG9naWM6IFwiTG9naWNrw70gdsO9cmF6XCIsXG4gICAgICBsYXlvdXQ6IFwiUm96bG/FvmVuaWVcIixcbiAgICAgIGRhdGE6IFwiw5pkYWplXCIsXG4gICAgICB2YWxpZGF0aW9uOiBcIk92ZXJlbmllXCIsXG4gICAgICBjZWxsczogXCJCdW5reVwiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcIlpvYnJhemnFpSBwcmkgZG9rb27EjWVuw61cIixcbiAgICAgIGxvZ286IFwiTG9nbyB2IHRpdHVsZSBwcmllc2t1bXVcIixcbiAgICAgIHNsaWRlcjogXCJKYXpkZWNcIixcbiAgICAgIG90aGVyczogXCJJbsOpXCJcbiAgICB9LFxuICAgIGVkaXRQcm9wZXJ0eTogXCJVcHJhdmnFpSB2bGFzdG5vc8WlIOKAnnswfeKAnFwiLFxuICAgIGl0ZW1zOiBcIlsgUG9sb8W+a3k6IHswfSBdXCIsXG4gICAgZW50ZXJOZXdWYWx1ZTogXCJaYWRhanRlIGhvZG5vdHUuXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwiViBwcmllc2t1bWUgbmllIGplIMW+aWFkbmEgb3TDoXprYS5cIixcbiAgICBjcmVhdGV0cmlnZ2VyOiBcIlZ5dHZvcnRlIGFrdGl2w6F0b3JcIixcbiAgICB0aXRsZUtleWJvYXJkQWRvcm5lclRpcDogXCJVcHJhdmnFpSBzdGxhxI1lbsOtbSB0bGHEjWlkbGEgRW50ZXJcIixcbiAgICBrZXlib2FyZEFkb3JuZXJUaXA6IFwiU3RsYcSNZW7DrW0gdGxhxI1pZGxhIEVudGVyIHBvbG/Fvmt1IHVwcmF2w610ZSwgc3RsYcSNZW7DrW0gdGxhxI1pZGxhIE9kc3Ryw6FuacWlIHBvbG/Fvmt1IG9kc3Ryw6FuaXRlLCBzdGxhxI1lbsOtbSB0bGHEjWlkbGEgQWx0IGEgxaHDrXBreSBuYWhvciBhbGVibyDFocOtcGt5IG5hZG9sIHBvbG/Fvmt1IHByZXN1bmlldGVcIixcbiAgICBrZXlib2FyZE1vdmVJdGVtc1RpcDogXCJQb2xvxb5rdSBwcmVzdcWIdGUgc3RsYcSNZW7DrW0gdGxhxI1pZGxhIEFsdCBhIMWhw61wa3kgbmFob3IgYWxlYm8gbmFkb2xcIixcbiAgICB0cmlnZ2VyT246IFwiWmFwLiBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCJWaWRpdGXEvm5vc8WlIHN0csOhbm9rOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCJWaWRpdGXEvm5vc8WlIHBydmtvdjpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIlYgcHLDrXBhZGUgw7pzcGVjaHUgcHJpZXNrdW0gZG9rb8SNbmnFpS5cIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIkFrdGl2w6F0b3IgbmllIGplIG5hc3RhdmVuw71cIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiU3B1c3RpxaUgYWtcIixcbiAgICB0cmlnZ2VyU2V0VG9OYW1lOiBcIlptZW5pxaUgaG9kbm90dTogXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIktvcMOtcm92YcWlIGhvZG5vdHUgejogXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb246IFwiU3B1c3RpxaUgdGVudG8gdsO9cmF6OlwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCJuYTogXCIsXG4gICAgdHJpZ2dlckdvdG9OYW1lOiBcIlByZWpzxaUgbmEgb3TDoXprdTpcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCJOZXphcmHEj3VqdGUgcHJlbWVubsO6IGRvIHbDvXNsZWRrdSBwcmllc2t1bXUuXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eTogXCJaYWRhanRlIHBsYXRuw70gdsO9cmF6XCIsXG4gICAgbm9GaWxlOiBcIk5ldnlicmF0w70gxb5pYWRueSBzw7pib3JcIlxuICB9LFxuICBwdjoge1xuICAgIHRydWU6IFwidHJ1ZVwiLFxuICAgIGZhbHNlOiBcImZhbHNlXCIsXG4gICAgaW5oZXJpdDogXCJwcmV2emlhxaVcIixcbiAgICBzaG93OiBcInpvYnJhemnFpVwiLFxuICAgIGhpZGU6IFwic2tyecWlXCIsXG4gICAgZGVmYXVsdDogXCJwcmVkdm9sZW7DqVwiLFxuICAgIGluaXRpYWw6IFwicG/EjWlhdG/EjW7DqVwiLFxuICAgIHJhbmRvbTogXCJuw6Fob2Ruw6lcIixcbiAgICBjb2xsYXBzZWQ6IFwiemJhbGVuw6lcIixcbiAgICBleHBhbmRlZDogXCJyb3piYWxlbsOpXCIsXG4gICAgbm9uZTogXCLFvmlhZG5lXCIsXG4gICAgYXNjOiBcInZ6b3N0dXBuZVwiLFxuICAgIGRlc2M6IFwiem9zdHVwbmVcIixcbiAgICBpbmRldGVybWluYXRlOiBcIm5lc3Rhbm92ZW7DqVwiLFxuICAgIGRlY2ltYWw6IFwiZGVzYXRpbm7DqVwiLFxuICAgIGN1cnJlbmN5OiBcIm1lbmFcIixcbiAgICBwZXJjZW50OiBcInBlcmNlbnTDoVwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwicHJ2w70gcm96YmFsZW7DvVwiLFxuICAgIG9mZjogXCJ2eXAuXCIsXG4gICAgb25QYW5lbDogXCJuYSBwYW5lbGlcIixcbiAgICBvblN1cnZleTogXCJ2IHByaWVza3VtZVwiLFxuICAgIGxpc3Q6IFwiem96bmFtXCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwiaG9ybsOhIMSNYXPFpSBwcmllYmVodVwiLFxuICAgIHByb2dyZXNzQm90dG9tOiBcInNwb2Ruw6EgxI1hc8WlIHByaWViZWh1XCIsXG4gICAgcHJvZ3Jlc3NUb3BCb3R0b206IFwicHJpZWJlaCDigJPigIsgaG9ybsOhIGEgc3BvZG7DoSDEjWFzxaVcIixcbiAgICBob3Jpem9udGFsOiBcInZvZG9yb3Zuw6lcIixcbiAgICB2ZXJ0aWNhbDogXCJ6dmlzbMOpXCIsXG4gICAgdG9wOiBcImhvcmVcIixcbiAgICBib3R0b206IFwiZG9sdVwiLFxuICAgIHRvcEJvdHRvbTogXCJob3JlIGEgZG9sdVwiLFxuICAgIGJvdGg6IFwib2JpZHZhXCIsXG4gICAgbGVmdDogXCJ2xL5hdm9cIixcbiAgICBjb2xvcjogXCJmYXJiYVwiLFxuICAgIGRhdGU6IFwiZMOhdHVtXCIsXG4gICAgZGF0ZXRpbWU6IFwiZMOhdHVtIGEgxI1hc1wiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCJtaWVzdG55IGTDoXR1bSBhIMSNYXNcIixcbiAgICBlbWFpbDogXCJlLW1haWxcIixcbiAgICBtb250aDogXCJtZXNpYWNcIixcbiAgICBudW1iZXI6IFwixI3DrXNsb1wiLFxuICAgIHBhc3N3b3JkOiBcImhlc2xvXCIsXG4gICAgcmFuZ2U6IFwicm96c2FoXCIsXG4gICAgdGVsOiBcInRlbFwiLFxuICAgIHRleHQ6IFwidGV4dFwiLFxuICAgIHRpbWU6IFwixI1hc1wiLFxuICAgIHVybDogXCJ1cmxcIixcbiAgICB3ZWVrOiBcInTDvcW+ZGXFiFwiLFxuICAgIGhpZGRlbjogXCJza3J5dMOpXCIsXG4gICAgb246IFwibmFcIixcbiAgICBvblBhZ2U6IFwibmEgc3Ryw6Fua2VcIixcbiAgICBlZGl0OiBcInVwcmF2acWlXCIsXG4gICAgZGlzcGxheTogXCJ6b2JyYXppxaVcIixcbiAgICBvbkNvbXBsZXRlOiBcInByaSBkb2tvbsSNZW7DrVwiLFxuICAgIG9uSGlkZGVuOiBcInByaSBza3J5dMOtXCIsXG4gICAgYWxsOiBcInbFoWV0a29cIixcbiAgICBwYWdlOiBcInN0csOhbmthXCIsXG4gICAgc3VydmV5OiBcInByaWVza3VtXCIsXG4gICAgb25OZXh0UGFnZTogXCJuYSDEj2FsxaFlaiBzdHLDoW5rZVwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcInByaSB6bWVuZSBob2Rub3R5XCIsXG4gICAgc2luZ2xlUGFnZTogXCJqZWRuYSBzdHLDoW5rYVwiLFxuICAgIHN0YW5kYXJkOiBcIsWhdGFuZGFyZFwiLFxuICAgIHF1ZXN0aW9uUGVyUGFnZTogXCJvdMOhemthIG5hIHN0csOhbmt1XCIsXG4gICAgbm9QcmV2aWV3OiBcIsW+aWFkbmEgdWvDocW+a2FcIixcbiAgICBzaG93QWxsUXVlc3Rpb25zOiBcInpvYnJhemnFpSB1a8Ohxb5rdSBzbyB2xaFldGvDvW1pIG90w6F6a2FtaVwiLFxuICAgIHNob3dBbnN3ZXJlZFF1ZXN0aW9uczogXCJ6b2JyYXppxaUgdWvDocW+a3Ugc28gem9kcG92ZWRhbsO9bWkgb3TDoXprYW1pXCIsXG4gICAgcGFnZXM6IFwic3Ryw6Fua3lcIixcbiAgICBxdWVzdGlvbnM6IFwib3TDoXpreVwiLFxuICAgIHJlcXVpcmVkUXVlc3Rpb25zOiBcInBvdmlubsOpIG90w6F6a3lcIixcbiAgICBjb3JyZWN0UXVlc3Rpb25zOiBcInNwcsOhdm5lIG90w6F6a3lcIixcbiAgICBidXR0b25zOiBcInRsYcSNaWRsw6FcIixcbiAgICB1bmRlcklucHV0OiBcInYgcsOhbWNpIHZzdHVwdVwiLFxuICAgIHVuZGVyVGl0bGU6IFwidiByw6FtY2kgdGl0dWx1XCJcbiAgfSxcbiAgb3A6IHtcbiAgICBlbXB0eTogXCJqZSBwcsOhemRuZVwiLFxuICAgIG5vdGVtcHR5OiBcIm5pZSBqZSBwcsOhemRuZVwiLFxuICAgIGVxdWFsOiBcInJvdm7DoSBzYVwiLFxuICAgIG5vdGVxdWFsOiBcIm5lcm92bsOhIHNhXCIsXG4gICAgY29udGFpbnM6IFwib2JzYWh1amVcIixcbiAgICBub3Rjb250YWluczogXCJuZW9ic2FodWplXCIsXG4gICAgYW55b2Y6IFwia3RvcsOha2/EvnZla1wiLFxuICAgIGFsbG9mOiBcInbFoWV0a3lcIixcbiAgICBncmVhdGVyOiBcInbDpMSNxaFpZVwiLFxuICAgIGxlc3M6IFwibWVuxaFpZVwiLFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBcInbDpMSNxaFpZSBhbGVibyByb3Zuw6lcIixcbiAgICBsZXNzb3JlcXVhbDogXCJtZW7FoWllIGFsZWJvIHJvdm7DqVwiLFxuICAgIGFuZDogXCJhXCIsXG4gICAgb3I6IFwiYWxlYlwiXG4gIH0sXG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCJQb3XFvmnFpSB2ZXJ6aXUgQW5ndWxhclwiLFxuICAgIGpxdWVyeTogXCJQb3XFvmnFpSB2ZXJ6aXUgalF1ZXJ5XCIsXG4gICAga25vY2tvdXQ6IFwiUG91xb5pxaUgdmVyeml1IEtub2Nrb3V0XCIsXG4gICAgcmVhY3Q6IFwiUG91xb5pxaUgdmVyeml1IFJlYWN0XCIsXG4gICAgdnVlOiBcIlBvdcW+acWlIHZlcnppdSBWdWVcIixcbiAgICBib290c3RyYXA6IFwiUHJlIHLDoW1lYyBib290c3RyYXBcIixcbiAgICBtb2Rlcm46IFwiTW9kZXJuw70gbW90w612XCIsXG4gICAgZGVmYXVsdDogXCJQcmVkdm9sZW7DvSBtb3TDrXZcIixcbiAgICBvcmFuZ2U6IFwiT3JhbsW+b3bDvSBtb3TDrXZcIixcbiAgICBkYXJrYmx1ZTogXCJUbWF2b21vZHLDvSBtb3TDrXZcIixcbiAgICBkYXJrcm9zZTogXCJNb3TDrXYgRGFya3Jvc2VcIixcbiAgICBzdG9uZTogXCJNb3TDrXYgU3RvbmVcIixcbiAgICB3aW50ZXI6IFwiTW90w612IFdpbnRlclwiLFxuICAgIHdpbnRlcnN0b25lOiBcIk1vdMOtdiBXaW50ZXItU3RvbmVcIixcbiAgICBzaG93T25QYWdlOiBcIlpvYnJhemnFpSBwcmllc2t1bSBuYSBzdHLDoW5rZVwiLFxuICAgIHNob3dJbldpbmRvdzogXCJab2JyYXppxaUgcHJpZXNrdW0gdiBva25lXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiTmHEjcOtdGHFpSBKU09OIHByaWVza3VtdSB6byBzZXJ2ZXJhXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwiU2tyaXB0eSBhIMWhdMO9bHlcIixcbiAgICB0aXRsZUh0bWw6IFwiSFRNTFwiLFxuICAgIHRpdGxlSmF2YVNjcmlwdDogXCJKYXZhU2NyaXB0XCJcbiAgfSxcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcIlZ5YnJhxaUgc3Ryw6Fua3UgbmEgdGVzdG92YW5pZTpcIixcbiAgICBzaG93SW52aXNpYmxlRWxlbWVudHM6IFwiWm9icmF6acWlIG5ldmlkaXRlxL5uw6kgcHJ2a3lcIlxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwicG/EjWV0IG9kcG92ZWTDrVwiLFxuICAgIGVtYWlsdmFsaWRhdG9yOiBcImUtbWFpbFwiLFxuICAgIGV4cHJlc3Npb252YWxpZGF0b3I6IFwidsO9cmF6XCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCLEjcOtc2xvXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwicmVnZXhcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRleHRcIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJkb2tvbsSNacWlIHByaWVza3VtXCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcIm5hc3RhdmnFpSBob2Rub3R1XCIsXG4gICAgY29weXZhbHVldHJpZ2dlcjogXCJrb3DDrXJvdmHFpSBob2Rub3R1XCIsXG4gICAgc2tpcHRyaWdnZXI6IFwicHJlanPFpSBuYSBvdMOhemt1XCIsXG4gICAgcnVuZXhwcmVzc2lvbnRyaWdnZXI6IFwic3B1c3RpxaUgdsO9cmF6XCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwiem1lbmnFpSB2aWRpdGXEvm5vc8WlICh6YXN0YXJhbsOpKVwiXG4gIH0sXG4gIHA6IHtcbiAgICBuYW1lOiBcIm7DoXpvdlwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcInRpdHVsXCIsXG4gICAgICB0aXRsZTogXCJOZWNoYWp0ZSBwcsOhemRuZSwgYWsgc2EgemhvZHVqZSBzIG1lbm9tXCJcbiAgICB9LFxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJWaWRpdGXEvm5vc8WlIG5hdmlnYcSNbsO9Y2ggdGxhxI1pZGllbFwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIlBvcmFkaWUgb3TDoXpva1wiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJNYXguIMSNYXMgbmEgZG9rb27EjWVuaWVcIixcbiAgICB2aXNpYmxlOiBcInZpZGl0ZcS+bsOpXCIsXG4gICAgdmlzaWJsZUlmOiBcIlZpZGl0ZcS+bsOpIGFrXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIlBvbG9oYSB0aXR1bHUgb3TDoXpreVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIm9waXNcIixcbiAgICBzdGF0ZTogXCJzdGF2XCIsXG4gICAgaXNSZXF1aXJlZDogXCJKZSBwb3Zpbm7DqVwiLFxuICAgIHJlcXVpcmVkSWY6IFwiUG92aW5uw6kgYWtcIixcbiAgICBpbmRlbnQ6IFwidm5vcmVuaWVcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJQb3Zpbm7DqSDigJMgdGV4dCBjaHlieVwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiWmHEjWHFpSBub3bDvW0gcmlhZGtvbVwiLFxuICAgIGlubmVySW5kZW50OiBcIlZuw7p0b3Juw6kgdm5vcmVuaWVcIixcbiAgICBwYWdlOiBcInN0csOhbmthXCIsXG4gICAgd2lkdGg6IFwixaHDrXJrYVwiLFxuICAgIGNvbW1lbnRUZXh0OiBcIlRleHQga29tZW50w6FyYVwiLFxuICAgIHZhbHVlTmFtZTogXCJOw6F6b3YgaG9kbm90eVwiLFxuICAgIGVuYWJsZUlmOiBcIlBvdm9sacWlIGFrXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlByZWR2b2xlbsOhIGhvZG5vdGFcIixcbiAgICBjb3JyZWN0QW5zd2VyOiBcIlNwcsOhdm5hIG9kcG92ZcSPXCIsXG4gICAgcmVhZE9ubHk6IFwiSWJhIG5hIMSNw610YW5pZVwiLFxuICAgIHZhbGlkYXRvcnM6IFwib3Zlcm92YXRlbGlhXCIsXG4gICAgdGl0bGVMb2NhdGlvbjogXCJQb2xvaGEgdGl0dWx1XCIsXG4gICAgaGFzQ29tbWVudDogXCJPYnNhaHVqZSBrb21lbnTDoXJcIixcbiAgICBzaG93T3RoZXJJdGVtOiBcIk9ic2FodWplIGluw6lcIixcbiAgICBjaG9pY2VzOiBcIm1vxb5ub3N0aVwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJQb3JhZGllIG1vxb5ub3N0w61cIixcbiAgICBjaG9pY2VzQnlVcmw6IFwiTW/Fvm5vc3RpIHBvZMS+YSBVUkxcIixcbiAgICBvdGhlclRleHQ6IFwiSW7DqSDigJMgdGV4dFwiLFxuICAgIG90aGVyRXJyb3JUZXh0OiBcIkluw6kg4oCTIHRleHQgY2h5YnlcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJVbG/FvmnFpSBpbsOpIGFrbyBrb21lbnTDoXJcIixcbiAgICBsYWJlbDogXCLFoXTDrXRva1wiLFxuICAgIHNob3dUaXRsZTogXCJab2JyYXppxaUgdGl0dWxcIixcbiAgICB2YWx1ZVRydWU6IFwiSG9kbm90YSBUcnVlXCIsXG4gICAgdmFsdWVGYWxzZTogXCJIb2Rub3RhIEZhbHNlXCIsXG4gICAgY29sczogXCJzdMS6cGNlXCIsXG4gICAgcm93czogXCJyaWFka3lcIixcbiAgICBwbGFjZWhvbGRlcjogXCJaw6FzdHVwbsO9IHN5bWJvbFwiLFxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIk1vxb5ub3N0aSDigJMgdGl0dWxva1wiLFxuICAgIGV4cHJlc3Npb246IFwidsO9cmF6XCIsXG4gICAgZm9ybWF0OiBcImZvcm3DoXRcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwixaB0w71sIHpvYnJhemVuaWFcIixcbiAgICBjdXJyZW5jeTogXCJtZW5hXCIsXG4gICAgdXNlR3JvdXBpbmc6IFwiUG91xb5pxaUgem9za3VwZW5pZVwiLFxuICAgIHNob3dQcmV2aWV3OiBcIlpvYnJhemnFpSB1a8Ohxb5rdVwiLFxuICAgIGFsbG93TXVsdGlwbGU6IFwiUG92b2xpxaUgdsOkxI3FocOtIHBvxI1ldFwiLFxuICAgIGltYWdlSGVpZ2h0OiBcIlbDvcWha2Egb2Jyw6F6a2FcIixcbiAgICBpbWFnZVdpZHRoOiBcIsWgw61ya2Egb2Jyw6F6a2FcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwiVWxvxb5pxaUgw7pkYWplIGFrbyB0ZXh0XCIsXG4gICAgbWF4U2l6ZTogXCJNYXguIHZlxL5rb3PFpVwiLFxuICAgIGh0bWw6IFwiaHRtbFwiLFxuICAgIGNvbHVtbnM6IFwic3TEunBjZVwiLFxuICAgIGNlbGxzOiBcImJ1bmt5XCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJWxaFldGt5IHJpYWRreSBzw7ogcG92aW5uw6lcIixcbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcIlByZWNow6FkemFuaWUgdm9kb3Jvdm5lXCIsXG4gICAgY2VsbFR5cGU6IFwiVHlwIGJ1bmt5XCIsXG4gICAgY29sdW1uc0xheW91dDogXCJSb3psb8W+ZW5pZSBzdMS6cGNvdlwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcIlBvxI1ldCBzdMS6cGNvdlwiLFxuICAgIGNvbHVtbk1pbldpZHRoOiBcIk1pbmltw6FsbmEgxaHDrXJrYSBzdMS6cGNvdlwiLFxuICAgIHJvd0NvdW50OiBcIlBvxI1ldCByaWFka292XCIsXG4gICAgbWluUm93Q291bnQ6IFwiTWluaW3DoWxueSBwb8SNZXQgcmlhZGtvdlwiLFxuICAgIG1heFJvd0NvdW50OiBcIk1heGltw6FsbnkgcG/EjWV0IHJpYWRrb3ZcIixcbiAgICBrZXlOYW1lOiBcIk7DoXpvdiBrxL7DusSNYVwiLFxuICAgIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiQ2h5YmEgZHVwbGlrw6FjaWUga8S+w7rEjWFcIixcbiAgICBjb25maXJtRGVsZXRlOiBcIlBvdHZyZGVuaWUgb2RzdHLDoW5lbmlhXCIsXG4gICAgY29uZmlybURlbGV0ZVRleHQ6IFwiVGV4dCBwb3R2cmRlbmlhIG9kc3Ryw6FuZW5pYVwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcIlBvbG9oYSBwcmlkYW5pYSByaWFka2FcIixcbiAgICBhZGRSb3dUZXh0OiBcIlRleHQgcHJpZGFuaWEgcmlhZGthXCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJUZXh0IG9kc3Ryw6FuZW5pYSByaWFka2FcIixcbiAgICBpdGVtczogXCJwb2xvxb5reVwiLFxuICAgIGl0ZW1TaXplOiBcIlZlxL5rb3PFpSBwb2xvxb5reVwiLFxuICAgIGNvbENvdW50OiBcInBvxI1ldCBzdMS6cGNvdlwiLFxuICAgIHRlbXBsYXRlVGl0bGU6IFwiVGl0dWwgxaFhYmzDs255XCIsXG4gICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogXCJPcGlzIMWhYWJsw7NueVwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiUG92b2xpxaUgcHJpZGFuaWUgcGFuZWxhXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJQb3ZvbGnFpSBvZHN0csOhbmVuaWUgcGFuZWxhXCIsXG4gICAgcGFuZWxDb3VudDogXCJQb8SNZXQgcGFuZWxvdlwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwiTWluaW3DoWxueSBwb8SNZXQgcGFuZWxvdlwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwiTWF4aW3DoWxueSBwb8SNZXQgcGFuZWxvdlwiLFxuICAgIHBhbmVsc1N0YXRlOiBcIlN0YXYgcGFuZWxvdlwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCJUZXh0IHByaWRhbmlhIHBhbmVsYVwiLFxuICAgIHBhbmVsUmVtb3ZlVGV4dDogXCJUZXh0IG9kc3Ryw6FuZW5pYSBwYW5lbGFcIixcbiAgICBwYW5lbFByZXZUZXh0OiBcIlRleHQgcHJlZGNow6FkemFqw7pjZWhvIHBhbmVsYVwiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwiVGV4dCDEj2FsxaFpZWhvIHBhbmVsYVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiWm9icmF6acWlIMSNw61zbGEgb3TDoXpva1wiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwiWm9icmF6acWlIHByZWJpZWhhasO6Y2kgcm96c2FoXCIsXG4gICAgcmVuZGVyTW9kZTogXCJSZcW+aW0gdnlrcmVzbGVuaWFcIixcbiAgICB0ZW1wbGF0ZVRpdGxlTG9jYXRpb246IFwiUG9sb2hhIHRpdHVsdSDFoWFibMOzbnlcIixcbiAgICByYXRlVmFsdWVzOiBcIkhvZG5vdHkgaG9kbm90ZW5pYVwiLFxuICAgIHJhdGVNaW46IFwiTWluaW3DoWxuZSBob2Rub3RlbmllXCIsXG4gICAgcmF0ZU1heDogXCJNYXhpbcOhbG5lIGhvZG5vdGVuaWVcIixcbiAgICByYXRlU3RlcDogXCJLcm9rIGhvZG5vdGVuaWFcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiT3BpcyBtaW5pbcOhbG5laG8gaG9kbm90ZW5pYVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJPcGlzIG1heGltw6FsbmVobyBob2Rub3RlbmlhXCIsXG4gICAgaW5wdXRUeXBlOiBcIlR5cCB2c3R1cHVcIixcbiAgICBzaXplOiBcInZlxL5rb3PFpVwiLFxuICAgIGxvY2FsZTogXCJtaWVzdG5lIG5hc3RhdmVuaWFcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiQXV0b21hdGlja8O9IHByZWNob2QgbmEgcHJ2w7ogb3TDoXprdVwiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiRG9rb27EjWVuw6kgSFRNTFwiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwiRG9rb27EjWVuw6kgcHJlZCBsaW1pdG9tIEhUTUxcIixcbiAgICBsb2FkaW5nSHRtbDogXCJOYcSNw610YW5pZSBIVE1MXCIsXG4gICAgdHJpZ2dlcnM6IFwiYWt0aXbDoXRvcnlcIixcbiAgICBjb29raWVOYW1lOiBcIk7DoXpvdiBzw7pib3J1IGNvb2tpZVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIk9kb3NsYcWlIHbDvXNsZWRvayBuYSDEj2FsxaFpdSBzdHLDoW5rdVwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCJab2JyYXppxaUgdGxhxI1pZGzDoSBuYXZpZ8OhY2llXCIsXG4gICAgc2hvd1ByZXZCdXR0b246IFwiWm9icmF6acWlIHRsYcSNaWRsbyBQcmVkY2jDoWR6YWrDumNlXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiWm9icmF6acWlIHRpdHVseSBzdHLDoW5va1wiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlpvYnJhemnFpSBzdHLDoW5rdSBEb2tvbsSNZW7DqVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJab2JyYXppxaUgxI3DrXNsYSBzdHLDoW5va1wiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJQb2xvaGEgY2h5Ynkgb3TDoXpreVwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJab2JyYXppxaUgaW5kaWvDoXRvciBwcmllYmVodVwiLFxuICAgIG1vZGU6IFwicmXFvmltXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCJBdXRvbWF0aWNreSBwcmVqc8WlIG5hIMSPYWzFoWl1IHN0csOhbmt1XCIsXG4gICAgY2hlY2tFcnJvcnNNb2RlOiBcIlJlxb5pbSBrb250cm9seSBjaMO9YlwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIk9kc3Ryw6FuacWlIG5ldmlkaXRlxL5uw6kgaG9kbm90eVwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJTcHVzdGVuaWUgcHJpZXNrdW11IOKAk+KAiyB0ZXh0XCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIlByZWRjaMOhZHphasO6Y2Egc3Ryw6Fua2Eg4oCTIHRleHRcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwixI5hbMWhaWEgc3Ryw6Fua2Eg4oCTIHRleHRcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiRG9rb27EjWVuw6kg4oCTIHRleHRcIixcbiAgICByZXF1aXJlZFRleHQ6IFwiUG92aW5uw6kg4oCTIHRleHRcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiT3TDoXprYSDigJMgemHEjWlhdG/EjW7DvSBpbmRleFwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCJPdMOhemthIOKAkyB0aXR1bCDFoWFibMOzbnlcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiWmHEjcOtbmEgc2EgbmEgcHJ2ZWogc3Ryw6Fua2VcIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiSmUgdG8gamVkbmEgc3Ryw6Fua2FcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIk1heGltw6FsbnkgxI1hcyBuYSBkb2tvbsSNZW5pZSBzdHLDoW5reVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIlpvYnJhemnFpSBwYW5lbCDEjWFzb3ZhxI1hXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIlpvYnJhemnFpSByZcW+aW0gcGFuZWxhIMSNYXNvdmHEjWFcIixcbiAgICBkZWZhdWx0UGFuZWxWYWx1ZTogXCJQcmVkdm9sZW7DoSBob2Rub3RhIHBhbmVsYVwiLFxuICAgIGRlZmF1bHRSb3dWYWx1ZTogXCJQcmVkdm9sZW7DoSBob2Rub3RhIHJpYWRrYVwiLFxuICAgIHNob3dOb25lSXRlbTogXCJvYnNhaHVqZSDFvmlhZG5lXCIsXG4gICAgbm9uZVRleHQ6IFwixb5pYWRuZSDigJMgdGV4dFwiLFxuICAgIHRleHQ6IFwidGV4dFwiLFxuICAgIG11bHRpU2VsZWN0OiBcIlbDvWJlciB2aWFjZXLDvWNoIG1vxb5ub3N0w61cIixcbiAgICBzaG93TGFiZWw6IFwiWm9icmF6acWlIMWhdMOtdG9rXCIsXG4gICAgbG9nbzogXCJsb2dvXCIsXG4gICAgbG9nb1dpZHRoOiBcIsWhw61ya2EgbG9nYVwiLFxuICAgIGxvZ29IZWlnaHQ6IFwidsO9xaFrYSBsb2dhXCIsXG4gICAgbG9nb0ZpdDogXCJ1bWllc3RuZW5pZSBsb2dhXCIsXG4gICAgZm9jdXNPbkZpcnN0RXJyb3I6IFwicHJlanPFpSBuYSBwcnbDuiBjaHlidVwiLFxuICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbjogXCJkb2tvbsSNZW7DqSBIVE1MIG5hIHrDoWtsYWRlIHBvZG1pZW5reVwiLFxuICAgIHBhZ2VzOiBcInN0csOhbmt5XCIsXG4gICAgY2FsY3VsYXRlZFZhbHVlczogXCJ2eXBvxI3DrXRhbsOpIGhvZG5vdHlcIixcbiAgICBuYXZpZ2F0ZVRvVXJsOiBcInByZWpzxaUgbmEgVVJMXCIsXG4gICAgbmF2aWdhdGVUb1VybE9uQ29uZGl0aW9uOiBcInByZWpzxaUgbmEgVVJMIG5hIHrDoWtsYWRlIHBvZG1pZW5reVwiLFxuICAgIHF1ZXN0aW9uRGVzY3JpcHRpb25Mb2NhdGlvbjogXCJvdMOhemthIOKAkyBwb2xvaGEgb3Bpc3VcIixcbiAgICBwcm9ncmVzc0JhclR5cGU6IFwidHlwIGluZGlrw6F0b3JhIHByaWViZWh1XCIsXG4gICAgbWF4VGV4dExlbmd0aDogXCJtYXhpbcOhbG5hIGTEusW+a2EgdGV4dHVcIixcbiAgICBtYXhPdGhlcnNMZW5ndGg6IFwibWF4aW3DoWxuYSBkxLrFvmthIOKAkyBpbsOpXCIsXG4gICAgdGV4dFVwZGF0ZU1vZGU6IFwicmXFvmltIGFrdHVhbGl6b3ZhbmlhIHRleHR1XCIsXG4gICAgYXV0b0dyb3dDb21tZW50OiBcImF1dG9tYXRpY2vDqSBwcmlkw6F2YW5pZSBrb21lbnTDoXJvdlwiLFxuICAgIHF1ZXN0aW9uVGl0bGVQYXR0ZXJuOiBcIm90w6F6a2Eg4oCTIHZ6b3IgdGl0dWx1XCIsXG4gICAgcXVlc3Rpb25zT25QYWdlTW9kZTogXCJyZcW+aW0gb3TDoXpvayBuYSBzdHLDoW5rZVwiLFxuICAgIHNob3dQcmV2aWV3QmVmb3JlQ29tcGxldGU6IFwiem9icmF6acWlIHVrw6HFvmt1IHByZWQgZG9rb27EjWVuw61tXCIsXG4gICAgd2lkdGhNb2RlOiBcIsWhw61ya2EgcmXFvmltdVwiLFxuICAgIHNob3dOdW1iZXI6IFwiem9icmF6acWlIMSNw61zbG9cIixcbiAgICBuYXZpZ2F0aW9uVGl0bGU6IFwiTmF2aWfDoWNpYSDigJPigIsgdGl0dWxcIixcbiAgICBuYXZpZ2F0aW9uRGVzY3JpcHRpb246IFwiTmF2aWfDoWNpYSDigJMgb3Bpc1wiLFxuICAgIHVzZURpc3BsYXlWYWx1ZXNJbkR5bmFtaWNUZXh0czogXCJQb3XFvmnFpSB6b2JyYXplbsOpIGhvZG5vdHkgdiB0aXR1bGVcIixcbiAgICBtaW5XaWR0aDogXCJtaW5pbcOhbG5hIMWhw61ya2FcIixcbiAgICBtYXhXaWR0aDogXCJtYXhpbcOhbG5hIMWhw61ya2FcIixcbiAgICBkZXNjcmlwdGlvbkxvY2F0aW9uOiBcInBvbG9oYSBvcGlzdVwiLFxuICAgIGhpZGVOdW1iZXI6IFwic2tyecWlIMSNw61zbG9cIixcbiAgICBkZWZhdWx0VmFsdWVFeHByZXNzaW9uOiBcInByZWR2b2xlbsO9IHbDvXJheiBob2Rub3R5XCIsXG4gICAgYmluZGluZ3M6IFwidsOkemJ5XCIsXG4gICAgY29sdW1uc1Zpc2libGVJZjogXCJ2aWRpdGXEvm7DqSBzdMS6cGNlIGFrXCIsXG4gICAgcm93c1Zpc2libGVJZjogXCJ2aWRpdGXEvm7DqSByaWFka3kgYWtcIixcbiAgICBzaG93SGVhZGVyOiBcInpvYnJhemnFpSBobGF2acSNa3VcIixcbiAgICBkZXRhaWxQYW5lbE1vZGU6IFwicmXFvmltIHBhbmVsYSBwb2Ryb2Jub3N0w61cIixcbiAgICByb3dUaXRsZVdpZHRoOiBcIsWhw61ya2EgcmlhZGthIHRpdHVsdVwiLFxuICAgIGFsbG93QWRkUm93czogXCJwb3ZvbGnFpSBwcmlkw6F2YW5pZSByaWFka292XCIsXG4gICAgYWxsb3dSZW1vdmVSb3dzOiBcInBvdm9sacWlIG9kc3Ryw6FuZW5pZSByaWFka292XCIsXG4gICAgZGVmYXVsdFZhbHVlRnJvbUxhc3RSb3c6IFwicHJlZHZvbGVuw6EgaG9kbm90YSB6IHBvc2xlZG7DqWhvIHJpYWRrYVwiLFxuICAgIGhpZGVDb2x1bW5zSWZFbXB0eTogXCJza3J5xaUgc3TEunBjZSwgYWsgc8O6IHByw6F6ZG5lXCIsXG4gICAgZW1wdHlSb3dzVGV4dDogXCJwcsOhemRuZSByaWFka3kg4oCTIHRleHRcIixcbiAgICBkZXRhaWxQYW5lbFNob3dPbkFkZGluZzogXCJwYW5lbCBzIHBvZHJvYm5vc8WlYW1pIOKAkyB6b2JyYXplbmllIHByaSBwcmlkw6F2YW7DrVwiLFxuICAgIGFsbG93Um93c0RyYWdBbmREcm9wOiBcInBvdm9sacWlIHByZXPDunZhbmllIHJpYWRrb3ZcIixcbiAgICByb3dzT3JkZXI6IFwicG9yYWRpZSByaWFka292XCIsXG4gICAgaGlkZUlmUm93c0VtcHR5OiBcInNrcnnFpSwgYWsgc8O6IHJpYWRreSBwcsOhemRuZVwiLFxuICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogXCJtYXhpbcOhbG55IHBvxI1ldCBkZXNhdGlubsO9Y2ggbWllc3RcIixcbiAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IFwibWluaW3DoWxueSBwb8SNZXQgZGVzYXRpbm7DvWNoIG1pZXN0XCIsXG4gICAgY2hvaWNlc0Zyb21RdWVzdGlvbjogXCJtb8W+bm9zdGkgayBvdMOhemtlXCIsXG4gICAgY2hvaWNlc0Zyb21RdWVzdGlvbk1vZGU6IFwicmXFvmltIG1vxb5ub3N0w60gayBvdMOhemtlXCIsXG4gICAgaGlkZUlmQ2hvaWNlc0VtcHR5OiBcInNrcnnFpSwgYWsgc8O6IG1vxb5ub3N0aSBwcsOhemRuZVwiLFxuICAgIGNob2ljZXNWaXNpYmxlSWY6IFwidmlkaXRlxL5uw6kgbW/Fvm5vc3RpLCBha1wiLFxuICAgIGNob2ljZXNFbmFibGVJZjogXCJwb3ZvbGnFpSBtb8W+bm9zdGksIGFrXCIsXG4gICAgb3RoZXJQbGFjZUhvbGRlcjogXCJpbsOpIOKAkyB6w6FzdHVwbsO9IHN5bWJvbFwiLFxuICAgIG1heFNlbGVjdGVkQ2hvaWNlczogXCJtYXhpbcOhbG55IHBvxI1ldCB2eWJyYXTDvWNoIG1vxb5ub3N0w61cIixcbiAgICBzaG93Q2xlYXJCdXR0b246IFwiem9icmF6acWlIHRsYcSNaWRsbyBWeW1hemHFpVwiLFxuICAgIGNvbnRlbnRNb2RlOiBcInJlxb5pbSBvYnNhaHVcIixcbiAgICBpbWFnZUZpdDogXCJ1bWllc3RuZW5pZSBvYnLDoXprYVwiLFxuICAgIGF1dG9jb21wbGV0ZTogXCJhdXRvbWF0aWNrw6kgZG9rb27EjWVuaWVcIixcbiAgICBtaW46IFwibWluLlwiLFxuICAgIG1heDogXCJtYXguXCIsXG4gICAgbWluVmFsdWVFeHByZXNzaW9uOiBcInbDvXJheiBtaW5pbcOhbG5laiBob2Rub3R5XCIsXG4gICAgbWF4VmFsdWVFeHByZXNzaW9uOiBcInbDvXJheiBtYXhpbcOhbG5laiBob2Rub3R5XCIsXG4gICAgbWluRXJyb3JUZXh0OiBcIm1pbi4g4oCTIHRleHQgY2h5YnlcIixcbiAgICBtYXhFcnJvclRleHQ6IFwibWF4LiDigJMgdGV4dCBjaHlieVwiLFxuICAgIHN0ZXA6IFwia3Jva1wiLFxuICAgIGRhdGFMaXN0OiBcInpvem5hbSDDumRham92XCIsXG4gICAgYXV0b0dyb3c6IFwiYXV0b21hdGlja8OpIHJvesWhw61yZW5pZVwiLFxuICAgIG11bHRpTGluZTogXCJ2aWFjZXLDqSByaWFka3lcIixcbiAgICBhbGxvd0ltYWdlc1ByZXZpZXc6IFwicG92b2xpxaUgdWvDocW+a3Ugb2Jyw6F6a292XCIsXG4gICAgYWNjZXB0ZWRUeXBlczogXCJha2NlcHRvdmFuw6kgdHlweVwiLFxuICAgIHdhaXRGb3JVcGxvYWQ6IFwixI1ha2FuaWUgbmEgb2RvdnpkYW5pZVwiLFxuICAgIG5lZWRDb25maXJtUmVtb3ZlRmlsZTogXCJ2ecW+YWRvdmHFpSBwb3R2cmRlbmllIHByaSBvZHN0csOhbmVuw60gc8O6Ym9ydVwiLFxuICAgIGxhYmVsVHJ1ZTogXCLFoXTDrXRvayB0cnVlXCIsXG4gICAgbGFiZWxGYWxzZTogXCLFoXTDrXRvayBmYWxzZVwiLFxuICAgIGhlaWdodDogXCJ2w73FoWthXCIsXG4gICAgYWxsb3dDbGVhcjogXCJwb3ZvbGnFpSB2eW1hemFuaWVcIixcbiAgICBwZW5Db2xvcjogXCJmYXJiYSBwZXJhXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcImZhcmJhIHBvemFkaWFcIixcbiAgICBkYXRhRm9ybWF0OiBcImZvcm3DoXQgw7pkYWpvdlwiLFxuICAgIGRlZmF1bHRWYWx1ZUZyb21MYXN0UGFuZWw6IFwicHJlZHZvbGVuw6EgaG9kbm90YSB6IHBvc2xlZG7DqWhvIHBhbmVsYVwiLFxuICAgIHBhbmVsUmVtb3ZlQnV0dG9uTG9jYXRpb246IFwicG9sb2hhIHRsYcSNaWRsYSBvZHN0csOhbmVuaWEgcGFuZWxhXCIsXG4gICAgc2hvd0NhcHRpb246IFwiem9icmF6acWlIHRpdHVsb2tcIixcbiAgICBpY29uTmFtZTogXCJuw6F6b3YgaWtvbnlcIixcbiAgICBpY29uU2l6ZTogXCJ2ZcS+a29zxaUgaWtvbnlcIlxuICB9XG59O1xuXG5lZGl0b3JMb2NhbGl6YXRpb24ubG9jYWxlc1tcInNrXCJdID0gc2tTdHJpbmdzO1xuIiwiaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG52YXIgc3BhbmlzaFRyYW5zbGF0aW9uID0ge1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcIkVkaXRhclwiLFxuICAgIGV4dGVybmFsSGVscExpbms6IFwiTWlyYSB5IGFwcmVuZGUgYSBjcmVhciBlbmN1ZXN0YXNcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rVXJsOlxuICAgICAgXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSDJydTlva0ljb29OWmZwSWJ5cTRxUT92aWV3X2FzPXN1YnNjcmliZXJcIixcbiAgICBkcm9wUXVlc3Rpb246XG4gICAgICBcIsKhQXJyYXN0cmEgdW4gdGlwbyBkZSBwcmVndW50YSBwYXJhIGVtcGV6YXIgYSBkaXNlw7FhciB0dSBlbmN1ZXN0YSFcIixcbiAgICBhZGRMb2dpY0l0ZW06IFwiQ3JlZSB1bmEgcmVnbGEgcGFyYSBwZXJzb25hbGl6YXIgZWwgZmx1am8gZGUgbGEgZW5jdWVzdGFcIixcbiAgICBjb3B5OiBcIkNvcGlhclwiLFxuICAgIGR1cGxpY2F0ZTogXCJEdXBsaWNhclwiLFxuICAgIGFkZFRvVG9vbGJveDogXCJBw7FhZGlyIGEgbGEgY2FqYSBkZSBoZXJyYW1pZW50YXNcIixcbiAgICBkZWxldGVQYW5lbDogXCJFbGltaW5hciBwYW5lbFwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcIkVsaW1pbmFyIHByZWd1bnRhXCIsXG4gICAgY29udmVydFRvOiBcIkNvbnZlcnRpciBhXCIsXG4gICAgZHJhZzogXCJFbGVtZW50byBkZSBhcnJhc3RyZVwiLFxuICB9LFxuICBxdDoge1xuICAgIGRlZmF1bHQ6IFwiRGVmZWN0b1wiLFxuICAgIGNoZWNrYm94OiBcIkNhamFcIixcbiAgICBjb21tZW50OiBcIkNvbWVudGFyaW9cIixcbiAgICBpbWFnZXBpY2tlcjogXCJTZWxlY3RvciBkZSBpbcOhZ2VuZXNcIixcbiAgICByYW5raW5nOiBcIlJhbmtpbmdcIixcbiAgICBpbWFnZTogXCJJbWFnZW5cIixcbiAgICBkcm9wZG93bjogXCJEZXNwbGVnYWJsZVwiLFxuICAgIGZpbGU6IFwiQXJjaGl2b1wiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIG1hdHJpeDogXCJNYXRyaXogKHNlbGVjY2nDs24gw7puaWNhKVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcIk1hdHJpeiAob3BjacOzbiBtw7psdGlwbGUpXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCJNYXRyaXogKGZpbGFzIGRpbsOhbWljYXMpXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcIk3Dumx0aXBsZXMgdGV4dG9zXCIsXG4gICAgcGFuZWw6IFwiUGFuZWxcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwiUGFuZWwgKHBhbmVsZXMgZGluw6FtaWNvcylcIixcbiAgICByYWRpb2dyb3VwOiBcIkdydXBvIGRlIHJhZGlvXCIsXG4gICAgcmF0aW5nOiBcIkNsYXNpZmljYWNpw7NuXCIsXG4gICAgdGV4dDogXCJFbnRyYWRhIMO6bmljYVwiLFxuICAgIGJvb2xlYW46IFwiQm9vbGVhbm9cIixcbiAgICBleHByZXNzaW9uOiBcIkV4cHJlc2nDs24gKHNvbG8gbGVjdHVyYSlcIixcbiAgICBzaWduYXR1cmVwYWQ6IFwiQWxtb2hhZGlsbGEgZGUgZmlybWFcIixcbiAgICBmbG93cGFuZWw6IFwiUGFuZWwgZGUgZmx1am9cIixcbiAgfSxcbiAgZWQ6IHtcbiAgICBkZWZhdWx0TG9jYWxlOiBcIlByZWRldGVybWluYWRvICh7MH0pXCIsXG4gICAgc3VydmV5OiBcIkVuY3Vlc3RhXCIsXG4gICAgc2V0dGluZ3M6IFwiQ29uZmlndXJhY2nDs24gZGUgbGEgZW5jdWVzdGFcIixcbiAgICBzZXR0aW5nc1Rvb2x0aXA6IFwiQ29uZmlndXJhY2nDs24gZGUgZW5jdWVzdGEgYWJpZXJ0YVwiLFxuICAgIG9wamVjdFByb3BlcnRpZXNIZWFkZXI6IFwiQXZhbnphZGFcIixcbiAgICBzaG93T2JqZWN0UHJvcGVydGllczogXCJNb3N0cmFyIHByb3BpZWRhZGVzIGRlbCBvYmpldG9cIixcbiAgICBoaWRlT2JqZWN0UHJvcGVydGllczogXCJPY3VsdGFyIHByb3BpZWRhZGVzIGRlIG9iamV0b3NcIixcbiAgICBzaG93UGFuZWw6IFwiTW9zdHJhciBwYW5lbFwiLFxuICAgIGhpZGVQYW5lbDogXCJPY3VsdGFyIHBhbmVsXCIsXG4gICAgZWRpdFN1cnZleTogXCJFZGl0YXIgZW5jdWVzdGFcIixcbiAgICBhZGROZXdQYWdlOiBcIkHDsWFkaXIgbnVldmEgcMOhZ2luYVwiLFxuICAgIG1vdmVSaWdodDogXCJEZXNwbMOhY2VzZSBhIGxhIGRlcmVjaGFcIixcbiAgICBtb3ZlTGVmdDogXCJEZXNwbMOhY2VzZSBhIGxhIGl6cXVpZXJkYVwiLFxuICAgIGRlbGV0ZVBhZ2U6IFwiRWxpbWluYXIgcMOhZ2luYVwiLFxuICAgIGVkaXRQYWdlOiBcIkVkaXRhciBww6FnaW5hXCIsXG4gICAgZWRpdDogXCJFZGl0YXJcIixcbiAgICBuZXdQYWdlTmFtZTogXCJQw6FnaW5hXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcIlByZWd1bnRhXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcIlBhbmVsXCIsXG4gICAgbmV3VGV4dEl0ZW1OYW1lOiBcIlRleHRvXCIsXG4gICAgdGVzdFN1cnZleTogXCJFbmN1ZXN0YSBkZSBwcnVlYmFcIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwiRW5jdWVzdGEgZGUgcHJ1ZWJhIGRlIG51ZXZvXCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIkFuY2hvIGRlIGxhIGVuY3Vlc3RhOlwiLFxuICAgIG5hdmlnYXRlVG9Nc2c6IFwiVHV2aXN0ZSBxdWUgbmF2ZWdhciBhOlwiLFxuICAgIGxvZ2ljOiBcIkzDs2dpY2EgZGUgbGEgZW5jdWVzdGFcIixcbiAgICBlbWJlZFN1cnZleTogXCJJbmNydXN0YXIgbGEgZW5jdWVzdGFcIixcbiAgICB0cmFuc2xhdGlvbjogXCJUcmFkdWNjacOzblwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwiR3VhcmRhciBsYSBlbmN1ZXN0YVwiLFxuICAgIHNhdmVTdXJ2ZXlUb29sdGlwOiBcIkd1YXJkYXIgbGEgZW5jdWVzdGFcIixcbiAgICBkZXNpZ25lcjogXCJEaXNlw7FhZG9yIGRlIGxhIGVuY3Vlc3RhXCIsXG4gICAganNvbkVkaXRvcjogXCJFZGl0b3IgZGUgSlNPTlwiLFxuICAgIHVuZG86IFwiRGVzaGFjZXJcIixcbiAgICByZWRvOiBcIlJlaGFjZXJcIixcbiAgICB1bmRvVG9vbHRpcDogXCJEZXNoYWNlciBlbCDDumx0aW1vIGNhbWJpb1wiLFxuICAgIHJlZG9Ub29sdGlwOiBcIlJlaGFjZXIgZWwgY2FtYmlvXCIsXG4gICAgY29weTogXCJDb3BpYXJcIixcbiAgICBjdXQ6IFwiQ29ydGFyXCIsXG4gICAgcGFzdGU6IFwiUGVnYXJcIixcbiAgICBjb3B5VG9vbHRpcDogXCJDb3BpYSBzZWxlY2Npw7NuIGFsIHBvcnRhcGFwZWxlc1wiLFxuICAgIGN1dFRvb2x0aXA6IFwiQ29ydGEgbGEgc2VsZWNjacOzbiBhbCBwb3J0YXBhcGVsZXNcIixcbiAgICBwYXN0ZVRvb2x0aXA6IFwiUGVnYSBkZSBwb3J0YXBhcGVsZXNcIixcbiAgICBvcHRpb25zOiBcIk9wY2lvbmVzXCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwiR2VuZXJhciB1biBKU09OIHbDoWxpZG9cIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJHZW5lcmFyIEpTT04gbGVnaWJsZVwiLFxuICAgIHRvb2xib3g6IFwiQ2FqYSBkZSBoZXJyYW1pZW50YXNcIixcbiAgICBcInByb3BlcnR5LWdyaWRcIjogXCJQcm9waWVkYWRlc1wiLFxuICAgIHRvb2xib3hHZW5lcmFsQ2F0ZWdvcnk6IFwiZ2VuZXJhbFwiLFxuICAgIGRlbFNlbE9iamVjdDogXCJFbGltaW5hciBvYmpldG8gc2VsZWNjaW9uYWRvXCIsXG4gICAgZWRpdFNlbE9iamVjdDogXCJFZGl0YXIgb2JqZXRvIHNlbGVjY2lvbmFkb1wiLFxuICAgIGNvcnJlY3RKU09OOiBcIlBvciBmYXZvciwgY29ycmlqYSBKU09OXCIsXG4gICAgc3VydmV5UmVzdWx0czogXCJSZXN1bHRhZG8gZGUgbGEgZW5jdWVzdGE6XCIsXG4gICAgc3VydmV5UmVzdWx0c1RhYmxlOiBcIkNvbW8gVGFibGFcIixcbiAgICBzdXJ2ZXlSZXN1bHRzSnNvbjogXCJDb21vIEpTT05cIixcbiAgICByZXN1bHRzVGl0bGU6IFwiVMOtdHVsbyBkZSBsYSBwcmVndW50YVwiLFxuICAgIHJlc3VsdHNOYW1lOiBcIk5vbWJyZSBkZSBsYSBwcmVndW50YVwiLFxuICAgIHJlc3VsdHNWYWx1ZTogXCJWYWxvciBkZSByZXNwdWVzdGFcIixcbiAgICByZXN1bHRzRGlzcGxheVZhbHVlOiBcIlZhbG9yIGRlIHZpc3VhbGl6YWNpw7NuXCIsXG4gICAgbW9kaWZpZWQ6IFwiTW9kaWZpY2FkYVwiLFxuICAgIHNhdmluZzogXCJHdWFyZGFuZG9cIixcbiAgICBzYXZlZDogXCJHdWFyZGFkb1wiLFxuICAgIHByb3BlcnR5RWRpdG9yRXJyb3I6IFwiZXJyb3I6XCIsXG4gICAgc2F2ZUVycm9yOiBcIsKhRXJyb3IhRWwgY29udGVuaWRvIGRlbCBlZGl0b3Igbm8gc2UgaGEgZ3VhcmRhZG9cIixcbiAgICB0cmFuc2xhdGlvbkFkZExhbmd1YWdlOiBcIlNlbGVjY2lvbmUgZWwgaWRpb21hIHBhcmEgdHJhZHVjaXJcIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxTdHJpbmdzOiBcIk1vc3RyYXIgdG9kb3MgbG9zIHRleHRvc1wiLFxuICAgIHRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzOiBcIk1vc3RyYXIgdG9kYXMgbGFzIHDDoWdpbmFzXCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6XG4gICAgICBcIlNpbiBjdWVyZGFzIHBhcmEgdHJhZHVjaXIuIFBvciBmYXZvciwgY2FtYmllIGVsIGZpbHRyb1wiLFxuICAgIHRyYW5zbGF0aW9uRXhwb3J0VG9TQ1ZCdXR0b246IFwiRXhwb3J0YXIgYSBDU1ZcIixcbiAgICB0cmFuc2xhdGlvbkltcG9ydEZyb21TQ1ZCdXR0b246IFwiSW1wb3J0YWNpw7NuIGRlIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdDogXCJNZXJnZSB7MH0gY29uIGx1Z2FyIHByZWRldGVybWluYWRvXCIsXG4gICAgYm9sZDogXCJOZWdyaXRhXCIsXG4gICAgaXRhbGljOiBcIkl0w6FsaWNhXCIsXG4gICAgdW5kZXJsaW5lOiBcIlN1YnJheWFyXCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCJBw7FhZGlyIHByZWd1bnRhIC4uLlwiLFxuICAgIHNlbGVjdFBhZ2U6IFwiU2VsZWNjaW9uYXIgcMOhZ2luYSAuLi5cIixcbiAgICBjaG9vc2VFbGVtZW50OiBcIkVsaWdlIGVsIGVsZW1lbnRvIC4uLlwiLFxuICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkl0ZW1UZXh0OiBcIk1vc3RyYXIgc2k6XCIsXG4gICAgbGc6IHtcbiAgICAgIGFkZE5ld0l0ZW06IFwiXCIsXG4gICAgICBwYWdlX3Zpc2liaWxpdHlOYW1lOiBcIlZpc2liaWxpZGFkIGRlIGxhIHBhZ2luYVwiLFxuICAgICAgcGFuZWxfdmlzaWJpbGl0eU5hbWU6IFwiVmlzaWJpbGlkYWQgZGVsIHBhbmVsXCIsXG4gICAgICBwYW5lbF9lbmFibGVOYW1lOiBcIlBhbmVsIGhhYmlsaXRhciAvIGRlc2hhYmlsaXRhclwiLFxuICAgICAgcXVlc3Rpb25fdmlzaWJpbGl0eU5hbWU6IFwiUHJlZ3VudGEgdmlzaWJpbGlkYWRcIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZU5hbWU6IFwiUHJlZ3VudGEgaGFiaWxpdGFyIC8gZGVzaGFiaWxpdGFyXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlTmFtZTogXCJQcmVndW50YSBvcGNpb25hbCByZXF1ZXJpZGFcIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVOYW1lOiBcIkVuY3Vlc3RhIGNvbXBsZXRhXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlTmFtZTogXCJFc3RhYmxlY2VyIHZhbG9yIGRlIGxhIHByZWd1bnRhXCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZU5hbWU6IFwiQ29waWFyIHZhbG9yIGRlIGxhIHByZWd1bnRhXCIsXG4gICAgICB0cmlnZ2VyX3NraXBOYW1lOiBcIlNhbHRhciBhIGxhIHByZWd1bnRhXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25OYW1lOiBcIkVqZWN1dGFyIGxhIGV4cHJlc2nDs24gcGVyc29uYWxpemFkYVwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uTmFtZTogXCJUZXh0byBwZXJzb25hbGl6YWRvICdQw6FnaW5hIGRlIGFncmFkZWNpbWllbnRvJ1wiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiSGFnYSBxdWUgbGEgcMOhZ2luYSBzZWEgdmlzaWJsZSBjdWFuZG8gbGEgZXhwcmVzacOzbiBsw7NnaWNhIHZ1ZWx2YSB2ZXJkYWRlcmEuIERlIGxvIGNvbnRyYXJpbywgbWFudMOpbmdhbG8gaW52aXNpYmxlXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiSGFnYSBxdWUgZWwgcGFuZWwgc2VhIHZpc2libGUgY3VhbmRvIGxhIGV4cHJlc2nDs24gbMOzZ2ljYSB2dWVsdmEgdmVyZGFkZXJhLiBEZSBsbyBjb250cmFyaW8sIG1hbnTDqW5nYWxvIGludmlzaWJsZVwiLFxuICAgICAgcGFuZWxfZW5hYmxlRGVzY3JpcHRpb246XG4gICAgICAgIFwiSGFnYSBlbCBwYW5lbCwgeSB0b2RvcyBsb3MgZWxlbWVudG9zIGRlbnRybyBkZSDDqWwsIGhhYmlsaXRlbiBjdWFuZG8gbGEgZXhwcmVzacOzbiBsw7NnaWNhIGRldnVlbHZlIHZlcmRhZGVyby4gRGUgbG8gY29udHJhcmlvLCBtYW50w6luZ2Fsb3MgZGVzaGFiaWxpdGFkb3NcIixcbiAgICAgIHF1ZXN0aW9uX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJIYXogcXVlIGxhIHByZWd1bnRhIHNlYSB2aXNpYmxlIGN1YW5kbyBsYSBleHByZXNpw7NuIGzDs2dpY2Egc2UgZGV2dWVsdmUgJ3ZlcmRhZGVybycuIERlIGxvIGNvbnRyYXJpbywgc2UgbWFudGllbmUgaW52aXNpYmxlXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJIYXogcXVlIGxhIHByZWd1bnRhIHNlIGhhYmlsaXRlIGN1YW5kbyBsYSBleHByZXNpw7NuIGzDs2dpY2EgZGV2dWVsdmUgJ3ZlcmRhZGVybycuIERlIGxvIGNvbnRyYXJpbywgc2UgbWFudGllbmUgZGVzaGFiaWxpdGFkb1wiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZURlc2NyaXB0aW9uOlxuICAgICAgICBcIkxhIHByZWd1bnRhIHNlIHJlcXVpZXJlIGN1YW5kbyBsYSBleHByZXNpw7NuIGzDs2dpY2EgZGV2dWVsdmUgJ3ZlcmRhZGVybydcIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJDdWFuZG8gbGEgZXhwcmVzacOzbiBsw7NnaWNhIGRldnVlbHZlICd2ZXJkYWRlcm8nLCBsYSBlbmN1ZXN0YSBzZSBjb21wbGV0YSB5IGVsIHVzdWFyaW8gZmluYWwgdmUgbGEgJ3DDoWdpbmEgZGUgYWdyYWRlY2ltaWVudG8nXCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlRGVzY3JpcHRpb246XG4gICAgICAgIFwiQ3VhbmRvIHNlIGNhbWJpYW4gbG9zIHZhbG9yZXMgZGUgbGFzIHByZWd1bnRhcywgcXVlIHNlIHVzYW4gZW4gbGEgZXhwcmVzacOzbiBsw7NnaWNhLCBzZSBjYW1iaWFuIHkgbGEgZXhwcmVzacOzbiBsw7NnaWNhIGRldnVlbHZlICd2ZXJkYWRlcm8nLCBlbnRvbmNlcyBlbCB2YWxvciBzZSBlc3RhYmxlY2UgZW4gbGEgcHJlZ3VudGEgc2VsZWNjaW9uYWRhXCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIkN1YW5kbyBzZSBjYW1iaWFuIGxvcyB2YWxvcmVzIGRlIGxhcyBwcmVndW50YXMsIHF1ZSBzZSB1c2FuIGVuIGxhIGV4cHJlc2nDs24gbMOzZ2ljYSwgc2UgY2FtYmlhbiB5IGxhIGV4cHJlc2nDs24gbMOzZ2ljYSBkZXZ1ZWx2ZSAndmVyZGFkZXJvJywgZW50b25jZXMgZWwgdmFsb3IgZGUgdW5hIHByZWd1bnRhIHNlbGVjY2lvbmFkYSBzZSBjb3BpYSBhIG90cmEgcHJlZ3VudGEgc2VsZWNjaW9uYWRhXCIsXG4gICAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJDdWFuZG8gbGEgZXhwcmVzacOzbiBsw7NnaWNhIGRldnVlbHZlICd2ZXJkYWRlcm8nLCBsYSBlbmN1ZXN0YSBzYWx0YSBhIGxhIHByZWd1bnRhIHNlbGVjY2lvbmFkYVwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwiQ3VhbmRvIGxhIGV4cHJlc2nDs24gbMOzZ2ljYSBkZXZ1ZWx2ZSAndmVyZGFkZXJvJywgZW50b25jZXMgc2UgcmVhbGl6YSBsYSBleHByZXNpw7NuIHBlcnNvbmFsaXphZGEuIEVzIHBvc2libGUgcXVlIG9wY2lvbmFsbWVudGUgZXN0YWJsZXpjYSBlc3RlIHJlc3VsdGFkbyBkZSBleHByZXNpw7NuIGVuIGxhIHByZWd1bnRhIHNlbGVjY2lvbmFkYVwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwiU2kgbGEgZXhwcmVzacOzbiBsw7NnaWNhIGRldnVlbHZlICd2ZXJkYWRlcm8nLCBlbnRvbmNlcyBlbCB0ZXh0byBwcmVkZXRlcm1pbmFkbyBwYXJhIGxhICdww6FnaW5hIGRlIGFncmFkZWNpbWllbnRvJyBzZSBjYW1iaWEgcG9yIGVsIHRleHRvIGRhZG9cIixcbiAgICAgIGl0ZW1FeHByZXNzaW9uVGV4dDogXCJDdWFuZG8gbGEgZXhwcmVzacOzbjogJ3swfScgZGV2dWVsdmUgVkVSREFERVJPOlwiLFxuICAgICAgcGFnZV92aXNpYmlsaXR5VGV4dDogXCJIYWNlciBsYSBww6FnaW5hIHswfSBWaXNpYmxlXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5VGV4dDogXCJIYWNlciBwYW5lbCB7MH0gdmlzaWJsZVwiLFxuICAgICAgcGFuZWxfZW5hYmxlVGV4dDogXCJIYWNlciBwYW5lbCB7MH0gaGFiaWxpdGFyXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5VGV4dDogXCJIYWNlciBQcmVndW50YSB7MH0gVmlzaWJsZVwiLFxuICAgICAgcXVlc3Rpb25fZW5hYmxlVGV4dDogXCJIYWNlciBQcmVndW50YSB7MH0gSGFiaWxpdGFyXCIsXG4gICAgICBxdWVzdGlvbl9yZXF1aXJlVGV4dDogXCJIYWNlciBsYSBwcmVndW50YSB7MH0gcmVxdWVyaWRhXCIsXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCJMYSBlbmN1ZXN0YSBzZSBjb21wbGV0YVwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZVRleHQ6IFwiRW4gY3Vlc3Rpw7NuOiB7MH0gdmFsb3IgezF9XCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZVRleHQ6IFwiQ29waWFyIGVuIGN1ZXN0acOzbjogezB9IHZhbG9yIGRlIGxhIHByZWd1bnRhIHsxfVwiLFxuICAgICAgdHJpZ2dlcl9za2lwVGV4dDogXCJFbmN1ZXN0YSBzYWx0YSBhIGxhIHByZWd1bnRhIHswfVwiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDE6IFwiRXhwcmVzacOzbiBkZSBlamVjdWNpw7NuOiAnezB9J1wiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDI6IFwieSBlc3RhYmxlY2VyIHN1IHJlc3VsdGFkbyBlbiBjdWVzdGnDs246IHswfVwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uVGV4dDpcbiAgICAgICAgXCJNb3N0cmFyIHRleHRvIHBlcnNvbmFsaXphZG8gcGFyYSBsYSAnZ3JhY2lhcyBww6FnaW5hJ1wiLFxuICAgICAgY29uZGl0aW9uczogXCJDb25kaWNpw7NuKGVzKVwiLFxuICAgICAgYWN0aW9uczogXCJDb21wb3J0YW1pZW50b1wiLFxuICAgICAgZXhwcmVzc2lvbkVkaXRvclRpdGxlOiBcIkRlZmluaXIgbGEocykgY29uZGljacOzbihlcylcIixcbiAgICAgIGFjdGlvbnNFZGl0b3JUaXRsZTogXCJEZWZpbmlyIGxhKHMpIGFjY2nDs24oZXMpXCIsXG4gICAgICBkZWxldGVBY3Rpb246IFwiRWxpbWluYXIgYWNjacOzblwiLFxuICAgICAgYWRkTmV3QWN0aW9uOiBcIkHDsWFkaXIgbnVldmEgYWNjacOzblwiLFxuICAgICAgc2VsZWN0ZWRBY3Rpb25DYXB0aW9uOiBcIlNlbGVjY2lvbmUgdW5hIGFjY2nDs24gcGFyYSBhZ3JlZ2FyIC4uLlwiLFxuICAgICAgZXhwcmVzc2lvbkludmFsaWQ6XG4gICAgICAgIFwiTGEgZXhwcmVzacOzbiBsw7NnaWNhIGVzdMOhIHZhY8OtYSBvIGludsOhbGlkYS4gUG9yIGZhdm9yIGNvcnLDrWphbG9cIixcbiAgICAgIG5vQWN0aW9uRXJyb3I6IFwiUG9yIGZhdm9yLCBhZ3JlZ3VlIGFsIG1lbm9zIHVuYSBhY2Npw7NuXCIsXG4gICAgICBhY3Rpb25JbnZhbGlkOiBcIlBvciBmYXZvciwgc29sdWNpb25lIHByb2JsZW1hcyBlbiBzdShzKSBhY2Npw7NuKGVzKVwiLFxuICAgICAgZXhwcmVzc2lvblNldHVwOiBcIlwiLFxuICAgICAgYWN0aW9uc1NldHVwOiBcIiBcIixcbiAgICB9LFxuICB9LFxuICBwZWw6IHtcbiAgICBpc1JlcXVpcmVkOiBcIsK/UmVxdWVyaWRhP1wiLFxuICB9LFxuICBwZToge1xuICAgIGFwcGx5OiBcIlNvbGljaXRhclwiLFxuICAgIG9rOiBcIm9rXCIsXG4gICAgc2F2ZTogXCJHdWFyZGFyXCIsXG4gICAgc2F2ZVRvb2x0aXA6IFwiR3VhcmRhclwiLFxuICAgIGNhbmNlbDogXCJDYW5jZWxhclwiLFxuICAgIHJlc2V0OiBcIlJlaW5pY2lhclwiLFxuICAgIHJlZnJlc2g6IFwiQWN0dWFsaXphclwiLFxuICAgIGNsb3NlOiBcIkNlcnJhclwiLFxuICAgIGRlbGV0ZTogXCJCb3JyYXJcIixcbiAgICBhZGQ6IFwiQWdyZWdhclwiLFxuICAgIGFkZE5ldzogXCJBw7FhZGlyIG51ZXZvXCIsXG4gICAgYWRkSXRlbTogXCJIYWdhIGNsaWMgcGFyYSBhZ3JlZ2FyIHVuIGFydMOtY3VsbyAuLi5cIixcbiAgICBhZGRPdGhlcjogXCJPdHJhXCIsXG4gICAgYWRkU2VsZWN0QWxsOiBcIlNlbGVjY2lvbmFyIHRvZG9cIixcbiAgICBhZGROb25lOiBcIk5pbmd1bmFcIixcbiAgICByZW1vdmVBbGw6IFwiRWxpbWluYXIgdG9kb1wiLFxuICAgIGVkaXQ6IFwiRWRpdGFyXCIsXG4gICAgYmFjazogXCJWb2x2ZXIgc2luIGd1YXJkYXJcIixcbiAgICBiYWNrVG9vbHRpcDogXCJWb2x2ZXIgc2luIGd1YXJkYXJcIixcbiAgICBzYXZlQW5kQmFjazogXCJHdWFyZGFyIHkgdm9sdmVyXCIsXG4gICAgc2F2ZUFuZEJhY2tUb29sdGlwOiBcIkd1YXJkYXIgeSB2b2x2ZXJcIixcbiAgICBpdGVtVmFsdWVFZGl0OiBcIlZpc2libGUgc2lcIixcbiAgICBlZGl0Q2hvaWNlczogXCJFZGl0YXIgb3BjaW9uZXNcIixcbiAgICBzaG93Q2hvaWNlczogXCJNb3N0cmFyIG9wY2lvbmVzXCIsXG4gICAgbW92ZTogXCJNb3ZlcnNlXCIsXG4gICAgZW1wdHk6IFwiPHZhY2lhcj5cIixcbiAgICBub3RFbXB0eTogXCI8RWRpdGFyIHZhbG9yPlwiLFxuICAgIGZhc3RFbnRyeTogXCJFbnRyYWRhIHLDoXBpZGFcIixcbiAgICBmb3JtRW50cnk6IFwiRW50cmFkYSBkZSBmb3JtYVwiLFxuICAgIHRlc3RTZXJ2aWNlOiBcIlByb2JhciBlbCBzZXJ2aWNpb1wiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcIlBvciBmYXZvciBzZWxlY2Npb25lIGVsIGVsZW1lbnRvXCIsXG4gICAgY29uZGl0aW9uQWN0aW9uRW1wdHk6IFwiUG9yIGZhdm9yIHNlbGVjY2lvbmUgbGEgYWNjacOzblwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcIlNlbGVjY2lvbmFyIHByZWd1bnRhIC4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhZ2U6IFwiU2VsZWNjaW9uYXIgcMOhZ2luYSAuLi5cIixcbiAgICBjb25kaXRpb25TZWxlY3RQYW5lbDogXCJTZWxlY2Npb25hciBwYW5lbCAuLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwiUG9yIGZhdm9yIGluZ3Jlc2UgLyBzZWxlY2Npb25lIGVsIHZhbG9yXCIsXG4gICAgY29uZGl0aW9uSGVscDpcbiAgICAgIFwiUG9yIGZhdm9yIGluZ3Jlc2UgdW5hIGV4cHJlc2nDs24gYm9vbGVhbmEuRGViZSBkZXZvbHZlcnNlIHZlcmRhZGVybyBwYXJhIG1hbnRlbmVyIHZpc2libGUgbGEgcHJlZ3VudGEgLyBww6FnaW5hLlBvciBlamVtcGxvOiB7cHJlZ3VudGExfSA9ICd2YWx1ZTEnIG8gKHtwcmVndW50YTJ9ICoge3ByZWd1bnRhNH0+IDIwIHkge3ByZWd1bnRhM30gPDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcIlB1ZWRlIHVzYXIgc29wb3J0ZXMgcml6YWRvcyBwYXJhIG9idGVuZXIgYWNjZXNvIGEgbG9zIHZhbG9yZXMgZGUgbGEgcHJlZ3VudGE6IHtwcmVndW50YTF9ICsge3ByZWd1bnRhMn0sICh7cHJlY2lvfSAqIHtjYW50aWRhZH0pICogKDEwMCAtIHtkZXNjdWVudG99KS5QdWVkZSB1c2FyIGZ1bmNpb25lcyBjb21vOiBJSUYgKCksIGhveSAoKSwgZWRhZCAoKSwgbWluICgpLCBtYXggKCksIGN1ZW50YSAoKSwgQVZHICgpIHkgb3Ryb3NcIixcbiAgICBhY2VFZGl0b3JIZWxwOlxuICAgICAgXCJQcmVzaW9uZSBDVFJMICsgRVNQQUNJTyBwYXJhIG9idGVuZXIgc3VnZXJlbmNpYSBkZSBjb21wbGV0YXIgbGEgZXhwcmVzacOzblwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcIkZpbGEgYWN0dWFsXCIsXG4gICAgYWNlRWRpdG9yUGFuZWxUaXRsZTogXCJQYW5lbCBhY3R1YWxcIixcbiAgICBzaG93TW9yZTogXCJQYXJhIG3DoXMgZGV0YWxsZXMsIHBvciBmYXZvciByZXZpc2UgbGEgZG9jdW1lbnRhY2nDs25cIixcbiAgICBjb25kaXRpb25TaG93TW9yZVVybDpcbiAgICAgIFwiaHR0cHM6Ly9zdXJ2ZXlqc0lvL2RvY3VtZW50YXRpb24vbGlicmFyeVBhcmFtZXRybz9JZCA9UHJlZ3VudGFZUGFyw6FtZXRybyA9VmlzaWJsZVNpXCIsXG4gICAgYXNzaXN0YW50VGl0bGU6IFwiUHJlZ3VudGFzIGRpc3BvbmlibGVzOlwiLFxuICAgIGNlbGxzRW1wdHlSb3dzQ29sdW1uczogXCJEZWJlIGhhYmVyIGFsIG1lbm9zIHVuYSBjb2x1bW5hIG8gZmlsYVwiLFxuICAgIHByb3BlcnR5SXNFbXB0eTogXCJQb3JmYXZvciBpbnRyb2R1emNhIHVuIHZhbG9yXCIsXG4gICAgcHJvcGVydHlJc05vVW5pcXVlOiBcIlBvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIMO6bmljb1wiLFxuICAgIHByb3BlcnR5TmFtZUlzTm90VW5pcXVlOiBcIlBvciBmYXZvciBpbmdyZXNlIHVuIG5vbWJyZSDDum5pY29cIixcbiAgICBsaXN0SXNFbXB0eTogXCJBw7FhZGlyIHVuIG51ZXZvIGFydMOtY3Vsb1wiLFxuICAgIGV4cHJlc3Npb25Jc0VtcHR5OiBcIkxhIGV4cHJlc2nDs24gZXN0w6EgdmFjw61hXCIsXG4gICAgdmFsdWU6IFwiVmFsb3JcIixcbiAgICB0ZXh0OiBcIlRleHRvXCIsXG4gICAgcm93aWQ6IFwiSUQgZGUgZmlsYVwiLFxuICAgIGltYWdlTGluazogXCJFbmxhY2UgZGUgaW3DoWdlblwiLFxuICAgIGNvbHVtbkVkaXQ6IFwiRWRpdGFyIGNvbHVtbmE6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIkVkaXRhciBhcnTDrWN1bG86IHswfVwiLFxuICAgIHVybDogXCJVUkxcIixcbiAgICBwYXRoOiBcIkNhbWlub1wiLFxuICAgIHZhbHVlTmFtZTogXCJOb21icmUgZGUgdmFsb3JcIixcbiAgICB0aXRsZU5hbWU6IFwiTm9tYnJlIGRlbCB0w610dWxvXCIsXG4gICAgYWxsb3dFbXB0eVJlc3BvbnNlOiBcIlBlcm1pdGlyIHJlc3B1ZXN0YXMgdmFjw61hc1wiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwiVMOtdHVsbyBkZSBlbnRyYWRhIGFxdcOtXCIsXG4gICAgc3VydmV5VGl0bGVQbGFjZWhvbGRlcjogXCJUw610dWxvIGRlIGxhIGVuY3Vlc3RhIGRlIGVudHJhZGEgYXF1w61cIixcbiAgICBwYWdlVGl0bGVQbGFjZWhvbGRlcjogXCJUw610dWxvIGRlIGxhIHDDoWdpbmEgZGUgZW50cmFkYSBhcXXDrVwiLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwiSW5ncmVzZSB1bmEgZGVzY3JpcGNpw7NuXCIsXG4gICAgc3VydmV5RGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJJbmdyZXNlIHVuYSBkZXNjcmlwY2nDs24gZGUgbGEgZW5jdWVzdGFcIixcbiAgICBwYWdlRGVzY3JpcHRpb25QbGFjZWhvbGRlcjogXCJJbmdyZXNlIHVuYSBkZXNjcmlwY2nDs24gZGUgbGEgcMOhZ2luYVwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwiVGllbmUgb3BjacOzbiAnT3RybydcIixcbiAgICBvdGhlclRleHQ6IFwiQ2FtYmlhciB0ZXh0byAnT3RybydcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiVGllbmUgb3BjaW9uICdOaW5ndW5vJ1wiLFxuICAgIG5vbmVUZXh0OiBcIkNhbWJpYXIgdGV4dG8gJ05pbmd1bm8nXCIsXG4gICAgaGFzU2VsZWN0QWxsOiBcIlRpZW5lIG9wY2nDs24gJ1NlbGVjaW9uYXIgdG9kbydcIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIkNhbWJpYXIgdGV4dG8gZGUgJ1NlbGVjY2lvbmFyIHRvZG8nXCIsXG4gICAgY2hvaWNlc01pbjogXCJWYWxvciBtw61uaW1vIHBhcmEgYXJ0w61jdWxvcyBnZW5lcmFkb3MgYXV0b23DoXRpY29zXCIsXG4gICAgY2hvaWNlc01heDogXCJWYWxvciBtw6F4aW1vIHBhcmEgYXJ0w61jdWxvcyBnZW5lcmFkb3MgYXV0b23DoXRpY29zXCIsXG4gICAgY2hvaWNlc1N0ZXA6IFwiTGEgZGlmZXJlbmNpYSBlbnRyZSBsb3MgYXJ0w61jdWxvcyBnZW5lcmFkb3MgYXV0b23DoXRpY29zXCIsXG4gICAgbmFtZTogXCJOb21icmVcIixcbiAgICB0aXRsZTogXCJUw610dWxvXCIsXG4gICAgY2VsbFR5cGU6IFwiVGlwbyBkZSBjw6lsdWxhXCIsXG4gICAgY29sQ291bnQ6IFwiUmVjdWVudG8gZGUgY29sdW1uYXNcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiU2VsZWNjaW9uZSBlbCBvcmRlbiBkZSBsYXMgb3BjaW9uZXNcIixcbiAgICB2aXNpYmxlOiBcIsK/RXMgdmlzaWJsZT9cIixcbiAgICBpc1JlcXVpcmVkOiBcIsK/U2UgcmVxdWllcmU/XCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJSZXF1ZXJpciByZXNwdWVzdGEgcGFyYSB0b2RhcyBsYXMgZmlsYXNcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJUZXh0byBkZSBlcnJvciByZXF1ZXJpZG9cIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIsK/RW1waWV6YSBjb24gbGEgbnVldmEgbMOtbmVhP1wiLFxuICAgIHJvd3M6IFwiTsO6bWVybyBkZSBmaWxhc1wiLFxuICAgIGNvbHM6IFwiUmVjdWVudG8gZGUgY29sdW1uYXNcIixcbiAgICBwbGFjZWhvbGRlcjogXCJQbGFjZWhvbGRlciBkZSBlbnRyYWRhXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwiTW9zdHJhciDDoXJlYSBkZSB2aXN0YSBwcmV2aWFcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6XG4gICAgICBcIlRpZW5kYSBlbCBjb250ZW5pZG8gZGVsIGFyY2hpdm8gZW4gZWwgcmVzdWx0YWRvIGRlIEpTT04gY29tbyB0ZXh0b1wiLFxuICAgIG1heFNpemU6IFwiVGFtYcOxbyBtw6F4aW1vIGRlIGFyY2hpdm8gZW4gYnl0ZXNcIixcbiAgICBpbWFnZUhlaWdodDogXCJBbHR1cmEgZGUgaW1hZ2VuXCIsXG4gICAgaW1hZ2VXaWR0aDogXCJBbmNobyBkZSBsYSBpbWFnZW5cIixcbiAgICByb3dDb3VudDogXCJOw7ptZXJvIGRlIGZpbGFzXCIsXG4gICAgY29sdW1uTGF5b3V0OiBcIkRpc2XDsW8gZGUgY29sdW1uYXNcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJBw7FhZGlyIGxhIHViaWNhY2nDs24gZGVsIGJvdMOzbiBkZSBsYSBmaWxhXCIsXG4gICAgYWRkUm93VGV4dDogXCJBw7FhZGlyIHRleHRvIGRlIGJvdMOzbiBkZSBmaWxhXCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJFbGltaW5hciBlbCB0ZXh0byBkZWwgYm90w7NuIGRlIGZpbGFcIixcbiAgICByYXRlTWluOiBcIlZhbG9yIG3DrW5pbW9cIixcbiAgICByYXRlTWF4OiBcIlZhbG9yIG3DoXhpbW9cIixcbiAgICByYXRlU3RlcDogXCJSYW5nbyBkZSBsb3MgdmFsb3Jlc1wiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJEZXNjcmlwY2nDs24gZGVsIHZhbG9yIG3DrW5pbW9cIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwiRGVzY3JpcGNpw7NuIGRlbCB2YWxvciBtw6F4aW1vXCIsXG4gICAgaW5wdXRUeXBlOiBcIlRpcG8gZGUgZW50cmFkYVwiLFxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIkNhbWJpZSB0ZXh0byBkZSAnU2VsZWNjaW9uZSdcIixcbiAgICBzaG93T3B0aW9uc0NhcHRpb246IFwiTW9zdHJhciBlbCB0w610dWxvIGRlIGxhcyBvcGNpb25lc1wiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJWYWxvciBwb3IgZGVmZWN0b1wiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJUZXh0b3MgZGUgY2VsZGFzIHByZWRldGVybWluYWRvc1wiLFxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcIkVkaXRhciBjb25maWd1cmFjacOzbiBkZSBlbmN1ZXN0YVwiLFxuICAgIHFFZGl0b3JUaXRsZTogXCJFZGl0YXI6IHswfVwiLFxuICAgIG1heExlbmd0aDogXCJMb25naXR1ZCBtw6F4aW1hXCIsXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcIkNvbnN0cnVpclwiLFxuICAgIGVkaXRFeHByZXNzaW9uOiBcIkVkaXRhclwiLFxuICAgIGFuZDogXCJZXCIsXG4gICAgb3I6IFwiT1wiLFxuICAgIHJlbW92ZTogXCJFbGltaW5hclwiLFxuICAgIGFkZENvbmRpdGlvbjogXCJBw7FhZGlyIGNvbmRpY2nDs25cIixcbiAgICBzaG93VGl0bGU6IFwiTW9zdHJhciAvIE9jdWx0YXIgVMOtdHVsb1wiLFxuICAgIGV4cGFuZENvbGxhcHNlVGl0bGU6IFwiRXhwYW5kaXIgLyBDb250cmFlciB0w610dWxvXCIsXG4gICAgbG9jYWxlOiBcIklkaW9tYSBwcmVkZXRlcm1pbmFkb1wiLFxuICAgIHNpbXVsYXRvcjogXCJFbGlnZSBkaXNwb3NpdGl2b1wiLFxuICAgIGxhbmRzY2FwZU9yaWVudGF0aW9uOiBcIk9yaWVudGFjacOzbiBob3Jpem9udGFsIFwiLFxuICAgIG1vZGU6IFwiTW9kbyAoZWRpdGFyIC8gbGVlciBzb2xhbWVudGUpXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiQ2xhcm9zIHZhbG9yZXMgaW52aXNpYmxlc1wiLFxuICAgIGNvb2tpZU5hbWU6XG4gICAgICBcIk5vbWJyZSBkZSBsYSBjb29raWUgKHBhcmEgZGVzaGFiaWxpdGFyIGxhIGVuY3Vlc3RhIGRlIGVqZWN1Y2nDs24gZG9zIHZlY2VzIGxvY2FsbWVudGUpXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6XG4gICAgICBcIkVudmlhciByZXN1bHRhZG9zIGRlIGVuY3Vlc3RhcyBlbiBsYSBww6FnaW5hIFNpZ3VpZW50ZVwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcIkFsbWFjZW5hciAnT3Ryb3MnIHZhbG9yIGVuIGNhbXBvIHNlcGFyYWRvXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwiTW9zdHJhciBkZXNjcmlwY2nDs24gZGUgbGEgcMOhZ2luYVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJNb3N0cmFyIG7Dum1lcm9zIGRlIHDDoWdpbmFcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiUMOhZ2luYSBkZSB0ZXh0byBkZWwgYm90w7NuIGFudGVyaW9yXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIlDDoWdpbmEgU2lndWllbnRlIGJvdMOzbiBkZSB0ZXh0b1wiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJUZXh0byBjb21wbGV0byBkZWwgYm90w7NuXCIsXG4gICAgcHJldmlld1RleHQ6IFwiVmlzdGEgcHJldmlhIGRlbCBib3TDs24gZGVsIGJvdMOzblwiLFxuICAgIGVkaXRUZXh0OiBcIkVkaXRhciBib3TDs24gZGUgdGV4dG9cIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwiVGV4dG8gZGUgaW5pY2lvIGRlIGxhIGVuY3Vlc3RhXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOlxuICAgICAgXCJNb3N0cmFyIGJvdG9uZXMgZGUgbmF2ZWdhY2nDs24gKG5hdmVnYWNpw7NuIHByZWRldGVybWluYWRhKVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOlxuICAgICAgXCJNb3N0cmFyIGJvdMOzbiBhbnRlcmlvciAoZWwgdXN1YXJpbyBwdWVkZSB2b2x2ZXIgYSBsYSBww6FnaW5hIGFudGVyaW9yKVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDpcbiAgICAgIFwiTGEgcHJpbWVyYSBww6FnaW5hIGVuIGxhIGVuY3Vlc3RhIGVzIHVuYSBww6FnaW5hIGluaWNpYWRhXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwiTW9zdHJhciBsYSBww6FnaW5hIGNvbXBsZXRhIGFsIGZpbmFsIChIVE1MIGZpbmFsaXphZG8pXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzpcbiAgICAgIFwiQWwgcmVzcG9uZGVyIHRvZGFzIGxhcyBwcmVndW50YXMsIHZheWEgYSBsYSBww6FnaW5hIHNpZ3VpZW50ZSBhdXRvbcOhdGljYW1lbnRlXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIk1vc3RyYXIgYmFycmEgZGUgcHJvZ3Jlc29cIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwiVWJpY2FjacOzbiBkZWwgdMOtdHVsbyBkZSBsYSBwcmVndW50YVwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJMYSBwcmVndW50YSByZXF1ZXJpZGEgKHMpIHPDrW1ib2xvIChzKVwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCLDjW5kaWNlIGRlIGluaWNpbyBkZSBsYSBwcmVndW50YSAoMSwgMiBvICdBJywgJ0EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiTW9zdHJhciBuw7ptZXJvcyBkZSBwcmVndW50YVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTpcbiAgICAgIFwiUGxhbnRpbGxhIGRlIHTDrXR1bG8gZGUgbGEgcHJlZ3VudGEsIGVsIHZhbG9yIHByZWRldGVybWluYWRvIGVzOiAne25vfS57cmVxdWllcmV9IHt0w610dWxvfSAnXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIlViaWNhY2nDs24gZGUgZXJyb3IgZGUgbGEgcHJlZ3VudGFcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6XG4gICAgICBcIkVuZm9jYSBsYSBwcmltZXJhIHByZWd1bnRhIGFsIGNhbWJpYXIgbGEgcMOhZ2luYVwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIk9yZGVuIGRlIGVsZW1lbnRvcyBlbiBsYSBww6FnaW5hXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIlRpZW1wbyBtw6F4aW1vIHBhcmEgdGVybWluYXIgbGEgZW5jdWVzdGFcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOlxuICAgICAgXCJUaWVtcG8gbcOheGltbyBwYXJhIHRlcm1pbmFyIHVuYSBww6FnaW5hIGVuIGxhIGVuY3Vlc3RhXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwiTW9zdHJhciBwYW5lbCBkZSB0ZW1wb3JpemFkb3JcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwiTW9zdHJhciBtb2RvIGRlIHBhbmVsIGRlbCB0ZW1wb3JpemFkb3JcIixcbiAgICByZW5kZXJNb2RlOiBcIk1vZG8gZGUgcmVuZGVyaXphZG9cIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIlBlcm1pdGlyIGFncmVnYXIgdW4gcGFuZWxcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIlBlcm1pdGlyIGVsaW1pbmFyIGVsIHBhbmVsXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIkHDsWFkaWVuZG8gdGV4dG8gZGVsIHBhbmVsXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIkVsaW1pbmFyIHRleHRvIGRlbCBwYW5lbFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJNb3N0cmFyIHRvZG9zIGxvcyBlbGVtZW50b3MgZW4gdW5hIHDDoWdpbmFcIixcbiAgICBodG1sOiBcIkh0bWxcIixcbiAgICBleHByZXNzaW9uOiBcIkV4cHJlc2nDs25cIixcbiAgICBtaW5WYWx1ZTogXCJWYWxvciBtw61uaW1vXCIsXG4gICAgbWF4VmFsdWU6IFwiVmFsb3IgbcOheGltb1wiLFxuICAgIG1pbkxlbmd0aDogXCJMb25naXR1ZCBtw61uaW1hXCIsXG4gICAgYWxsb3dEaWdpdHM6IFwiUGVybWl0aXIgZMOtZ2l0b3NcIixcbiAgICBtaW5Db3VudDogXCJDYW50aWRhZCBtw61uaW1hXCIsXG4gICAgbWF4Q291bnQ6IFwiQ2FudGlkYWQgbcOheGltYVwiLFxuICAgIHJlZ2V4OiBcIkV4cHJlc2nDs24gcmVndWxhclwiLFxuICAgIHRvdGFsVGV4dDogXCJUZXh0byB0b3RhbFwiLFxuICAgIHRvdGFsVHlwZTogXCJUaXBvIHRvdGFsXCIsXG4gICAgdG90YWxFeHByZXNzaW9uOiBcIkV4cHJlc2nDs24gdG90YWxcIixcbiAgICB0b3RhbERpc3BsYXlTdHlsZTogXCJFc3RpbG8gZGUgdmlzdWFsaXphY2nDs24gdG90YWxcIixcbiAgICB0b3RhbEN1cnJlbmN5OiBcIk1vbmVkYSB0b3RhbFwiLFxuICAgIHRvdGFsRm9ybWF0OiBcIkZvcm1hdG8gdG90YWxcIixcbiAgICBsb2dvUG9zaXRpb246IFwiUG9zaWNpw7NuIGRlbCBsb2dvdGlwb1wiLFxuICAgIGFkZExvZ286IFwiQcOxYWRpciBsb2dvIC4uLlwiLFxuICAgIGNoYW5nZUxvZ286IFwiQ2FtYmlhciBsb2dvIC4uLlwiLFxuICAgIGxvZ29Qb3NpdGlvbnM6IHtcbiAgICAgIG5vbmU6IFwiRWxpbWluYXIgbG9nb1wiLFxuICAgICAgbGVmdDogXCJJenF1aWVyZGFcIixcbiAgICAgIHJpZ2h0OiBcIkRlcmVjaGFcIixcbiAgICAgIHRvcDogXCJFbiBsYSBwYXJ0ZSBzdXBlcmlvclwiLFxuICAgICAgYm90dG9tOiBcIkVuIGxhIHBhcnRlIGluZmVyaW9yXCIsXG4gICAgfSxcbiAgICB0YWJzOiB7XG4gICAgICBnZW5lcmFsOiBcIkdlbmVyYWxcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIk9wY2lvbmVzXCIsXG4gICAgICBodG1sOiBcIkVkaXRvciBIVE1MXCIsXG4gICAgICBjb2x1bW5zOiBcIkNvbHVtbmFzXCIsXG4gICAgICByb3dzOiBcIkZpbGFzXCIsXG4gICAgICBjaG9pY2VzOiBcIk9wY2lvbmVzXCIsXG4gICAgICBpdGVtczogXCJBcnTDrWN1bG9zXCIsXG4gICAgICB2aXNpYmxlSWY6IFwiVmlzaWJsZSBzaVwiLFxuICAgICAgZW5hYmxlSWY6IFwiSGFiaWxpdGFyIHNpXCIsXG4gICAgICByZXF1aXJlZElmOiBcIlJlcXVlcmlkbyBzaVwiLFxuICAgICAgcmF0ZVZhbHVlczogXCJWYWxvcmVzIGRlIGxhIHRhc2FcIixcbiAgICAgIGNob2ljZXNCeVVybDogXCJPcGNpb25lcyBkZSBsYSB3ZWJcIixcbiAgICAgIG1hdHJpeENob2ljZXM6IFwiT3BjaW9uZXMgcHJlZGV0ZXJtaW5hZGFzXCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCJFbnRyYWRhcyBkZSB0ZXh0b1wiLFxuICAgICAgbnVtYmVyaW5nOiBcIk51bWVyYWNpw7NuXCIsXG4gICAgICB2YWxpZGF0b3JzOiBcIlZhbGlkYWRvcmVzXCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcIk5hdmVnYWNpw7NuXCIsXG4gICAgICBxdWVzdGlvbjogXCJQcmVndW50YVwiLFxuICAgICAgcGFnZXM6IFwiUMOhZ2luYXNcIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwiSFRNTCBjb21wbGV0YWRvXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwiSFRNTCBjb21wbGV0YWRvIGVuIGxhIGNvbmRpY2nDs25cIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcIkNhcmdhbmRvIEhUTUxcIixcbiAgICAgIHRpbWVyOiBcIkhvcmFzIC8gY3Vlc3Rpb25hcmlvXCIsXG4gICAgICBjYWxjdWxhdGVkVmFsdWVzOiBcIlZhbG9yZXMgY2FsY3VsYWRvc1wiLFxuICAgICAgdHJpZ2dlcnM6IFwiRGlzcGFyYWRvcmVzXCIsXG4gICAgICB0ZW1wbGF0ZVRpdGxlOiBcIlTDrXR1bG8gZGUgbGEgcGxhbnRpbGxhXCIsXG4gICAgICB0b3RhbHM6IFwiVG90YWxlc1wiLFxuICAgICAgbG9naWM6IFwiTMOzZ2ljYVwiLFxuICAgICAgbGF5b3V0OiBcIkRpc2XDsW9cIixcbiAgICAgIGRhdGE6IFwiRGF0b3NcIixcbiAgICAgIHZhbGlkYXRpb246IFwiVmFsaWRhY2nDs25cIixcbiAgICAgIGNlbGxzOiBcIkPDqWx1bGFzXCIsXG4gICAgICBzaG93T25Db21wbGV0ZWQ6IFwiTW9zdHJhciBlbiBjb21wbGV0YWRvXCIsXG4gICAgICBsb2dvOiBcIkxvZ28gZW4gZWwgdMOtdHVsbyBkZSBsYSBlbmN1ZXN0YVwiLFxuICAgICAgc2xpZGVyOiBcIlNsaWRlclwiLFxuICAgICAgb3RoZXJzOiBcIk90cmFzXCIsXG4gICAgfSxcbiAgICBlZGl0UHJvcGVydHk6IFwiRWRpdGFyIHByb3BpZWRhZCAnezB9J1wiLFxuICAgIGl0ZW1zOiBcIltBcnTDrWN1bG9zOiB7MH1dXCIsXG4gICAgZW50ZXJOZXdWYWx1ZTogXCJQb3IgZmF2b3IsIGluZ3Jlc2UgZWwgdmFsb3JcIixcbiAgICBub3F1ZXN0aW9uczogXCJObyBoYXkgbmluZ3VuYSBwcmVndW50YSBlbiBsYSBlbmN1ZXN0YVwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiUG9yIGZhdm9yIGNyZWEgdW4gZ2F0aWxsb1wiLFxuICAgIHRpdGxlS2V5Ym9hcmRBZG9ybmVyVGlwOiBcIlByZXNpb25lIGVsIGJvdMOzbiBFbnRyYXIgcGFyYSBlZGl0YXJcIixcbiAgICBrZXlib2FyZEFkb3JuZXJUaXA6XG4gICAgICBcIlByZXNpb25lIGVsIGJvdMOzbiBFbnRyYXIgcGFyYSBlZGl0YXIgZWwgZWxlbWVudG8sIHByZXNpb25lIGVsIGJvdMOzbiBFbGltaW5hciBwYXJhIGVsaW1pbmFyIGVsIGVsZW1lbnRvLCBwcmVzaW9uZSBBTFQgUGx1cyBGbGVjaGEgaGFjaWEgYXJyaWJhIG8gaGFjaWEgYWJham8gcGFyYSBtb3ZlciBlbCBlbGVtZW50b1wiLFxuICAgIGtleWJvYXJkTW92ZUl0ZW1zVGlwOlxuICAgICAgXCJQcmVzaW9uZSBBTFQgUGx1cyBmbGVjaGEgaGFjaWEgYXJyaWJhIG8gZmxlY2hhIGhhY2lhIGFiYWpvIHBhcmEgbW92ZXIgZWwgYXJ0w61jdWxvXCIsXG4gICAgdHJpZ2dlck9uOiBcIkVuXCIsXG4gICAgdHJpZ2dlck1ha2VQYWdlc1Zpc2libGU6IFwiSGFjZXIgdmlzaWJsZXMgbGFzIHDDoWdpbmFzOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCJIYWNlciBlbGVtZW50b3MgdmlzaWJsZXM6XCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCJDb21wbGV0YSBsYSBlbmN1ZXN0YSBzaSB0aWVuZSDDqXhpdG9cIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIkVsIGdhdGlsbG8gbm8gc2UgZXN0YWJsZWNlXCIsXG4gICAgdHJpZ2dlclJ1bklmOiBcIkNvcnJlciBzaVwiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwiQ2FtYmlvIGRlIHZhbG9yIGRlOlwiLFxuICAgIHRyaWdnZXJGcm9tTmFtZTogXCJDb3BpZSBlbCB2YWxvciBkZTpcIixcbiAgICB0cmlnZ2VyUnVuRXhwcmVzc2lvbjogXCJFamVjdXRlIGVzdGEgZXhwcmVzacOzbjpcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwiYTpcIixcbiAgICB0cmlnZ2VyR290b05hbWU6IFwiSXIgYSBsYSBwcmVndW50YTpcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCJObyBjb2xvcXVlIGxhIHZhcmlhYmxlIGVuIGVsIHJlc3VsdGFkbyBkZSBsYSBlbmN1ZXN0YVwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uRW1wdHk6IFwiUG9yIGZhdm9yIGluZ3Jlc2UgdW5hIGV4cHJlc2nDs24gdsOhbGlkYVwiLFxuICAgIG5vRmlsZTogXCJOaW5nw7puIGFyY2hpdm8gZWxlZ2lkb1wiLFxuICB9LFxuICBwdjoge1xuICAgIHRydWU6IFwiY2llcnRvXCIsXG4gICAgZmFsc2U6IFwiZmFsc2FcIixcbiAgICBpbmhlcml0OiBcImhlcmVkYXJcIixcbiAgICBzaG93OiBcIm1vc3RyYXJcIixcbiAgICBoaWRlOiBcImVzY29uZGVyXCIsXG4gICAgZGVmYXVsdDogXCJkZWZlY3RvXCIsXG4gICAgaW5pdGlhbDogXCJpbmljaWFsXCIsXG4gICAgcmFuZG9tOiBcImFsZWF0b3JpYVwiLFxuICAgIGNvbGxhcHNlZDogXCJjb2xhcHNhZGFcIixcbiAgICBleHBhbmRlZDogXCJleHBhbmRpZGFcIixcbiAgICBub25lOiBcIm5pbmd1bmFcIixcbiAgICBhc2M6IFwiYXNjZW5kZW50ZVwiLFxuICAgIGRlc2M6IFwiZGVzY2VuZGllbmRvXCIsXG4gICAgaW5kZXRlcm1pbmF0ZTogXCJpbmRldGVybWluYWRhXCIsXG4gICAgZGVjaW1hbDogXCJkZWNpbWFsXCIsXG4gICAgY3VycmVuY3k6IFwiZGl2aXNhXCIsXG4gICAgcGVyY2VudDogXCJwb3IgY2llbnRvXCIsXG4gICAgZmlyc3RFeHBhbmRlZDogXCJQcmltZXIgRXhwYW5kaWRvXCIsXG4gICAgb2ZmOiBcIm5vIG1vc3RyYXJcIixcbiAgICBvblBhbmVsOiBcImVuIFBhbmVsXCIsXG4gICAgb25TdXJ2ZXk6IFwiZW4gRW5jdWVzdGFcIixcbiAgICBsaXN0OiBcImxpc3RhXCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwiUHJvZ3Jlc28gc3VwZXJpb3JcIixcbiAgICBwcm9ncmVzc0JvdHRvbTogXCJQcm9ncmVzbyBpbmZlcmlvclwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcIlByb2dyZXNvIGluZmVyaW9yL3N1cGVyaW9yXCIsXG4gICAgaG9yaXpvbnRhbDogXCJob3Jpem9udGFsXCIsXG4gICAgdmVydGljYWw6IFwidmVydGljYWxcIixcbiAgICB0b3A6IFwiYXJyaWJhXCIsXG4gICAgYm90dG9tOiBcImFiYWpvXCIsXG4gICAgdG9wQm90dG9tOiBcImFycmliYSB5IGFiYWpvXCIsXG4gICAgYm90aDogXCJhbWJhc1wiLFxuICAgIGxlZnQ6IFwiaXpxdWllcmRhXCIsXG4gICAgY29sb3I6IFwiY29sb3JcIixcbiAgICBkYXRlOiBcImZlY2hhXCIsXG4gICAgZGF0ZXRpbWU6IFwiZmVjaGEgeSBob3JhXCIsXG4gICAgXCJkYXRldGltZS1sb2NhbFwiOiBcImZlY2hhIHkgaG9yYSBsb2NhbFwiLFxuICAgIGVtYWlsOiBcIkVtYWlsXCIsXG4gICAgbW9udGg6IFwibWVzXCIsXG4gICAgbnVtYmVyOiBcIm7Dum1lcm9cIixcbiAgICBwYXNzd29yZDogXCJjb250cmFzZcOxYVwiLFxuICAgIHJhbmdlOiBcImRpc3RhbmNpYVwiLFxuICAgIHRlbDogXCJ0ZWxcIixcbiAgICB0ZXh0OiBcInRleHRvXCIsXG4gICAgdGltZTogXCJob3JhXCIsXG4gICAgdXJsOiBcIlVSTFwiLFxuICAgIHdlZWs6IFwic2VtYW5hXCIsXG4gICAgaGlkZGVuOiBcIm9jdWx0YVwiLFxuICAgIG9uOiBcIm1vc3RyYXJcIixcbiAgICBvblBhZ2U6IFwiZW4gbGEgcMOhZ2luYVwiLFxuICAgIGVkaXQ6IFwiZWRpdGFyXCIsXG4gICAgZGlzcGxheTogXCJtb3N0cmFyXCIsXG4gICAgb25Db21wbGV0ZTogXCJBbCBjb21wbGV0YXJzZVwiLFxuICAgIG9uSGlkZGVuOiBcIkFsIG9jdWx0YXJzZVwiLFxuICAgIGFsbDogXCJ0b2Rhc1wiLFxuICAgIHBhZ2U6IFwicMOhZ2luYVwiLFxuICAgIHN1cnZleTogXCJlbmN1ZXN0YVwiLFxuICAgIG9uTmV4dFBhZ2U6IFwiQWwgY2FtYmlhciBww6FnaW5hXCIsXG4gICAgb25WYWx1ZUNoYW5nZWQ6IFwiQWwgY2FtYmlhciB2YWxvclwiLFxuICAgIHNpbmdsZVBhZ2U6IFwiw7puaWNhIHDDoWdpbmFcIixcbiAgICBzdGFuZGFyZDogXCJlc3TDoW5kYXJcIixcbiAgICBxdWVzdGlvblBlclBhZ2U6IFwiUHJlZ3VudGEgcG9yIHDDoWdpbmFcIixcbiAgICBub1ByZXZpZXc6IFwic2luIHZpc3RhIHByZXZpYVwiLFxuICAgIHNob3dBbGxRdWVzdGlvbnM6IFwiTW9zdHJhciB2aXN0YSBwcmV2aWEgY29uIHRvZGFzIGxhcyBwcmVndW50YXNcIixcbiAgICBzaG93QW5zd2VyZWRRdWVzdGlvbnM6IFwiTW9zdHJhciB2aXN0YSBwcmV2aWEgY29uIHByZWd1bnRhcyBjb250ZXN0YWRhc1wiLFxuICAgIHBhZ2VzOiBcInDDoWdpbmFzXCIsXG4gICAgcXVlc3Rpb25zOiBcInByZWd1bnRhc1wiLFxuICAgIHJlcXVpcmVkUXVlc3Rpb25zOiBcInByZWd1bnRhcyByZXF1ZXJpZGFzXCIsXG4gICAgY29ycmVjdFF1ZXN0aW9uczogXCJwcmVndW50YXMgY29ycmVjdGFzXCIsXG4gICAgYnV0dG9uczogXCJib3RvbmVzXCIsXG4gICAgdW5kZXJJbnB1dDogXCJkZWJham8gZGUgbGEgcmVzcHVlc3RhXCIsXG4gICAgdW5kZXJUaXRsZTogXCJkZWJham8gZGVsIHTDrXR1bG9cIlxuICB9LFxuICBvcDoge1xuICAgIGVtcHR5OiBcImVzdGEgdmFjaW9cIixcbiAgICBub3RlbXB0eTogXCJubyBlc3TDoSB2YWPDrW9cIixcbiAgICBlcXVhbDogXCJlcyBpZ3VhbCBhXCIsXG4gICAgbm90ZXF1YWw6IFwibm8gZXMgaWd1YWwgYVwiLFxuICAgIGNvbnRhaW5zOiBcImNvbnRpZW5lXCIsXG4gICAgbm90Y29udGFpbnM6IFwibm8gY29udGllbmVcIixcbiAgICBhbnlvZjogXCJjdWFscXVpZXJhIGRlXCIsXG4gICAgYWxsb2Y6IFwidG9kb1wiLFxuICAgIGdyZWF0ZXI6IFwibWF5b3IgcXVlXCIsXG4gICAgbGVzczogXCJtZW5vc1wiLFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBcIk1heW9yIG8gaWd1YWxcIixcbiAgICBsZXNzb3JlcXVhbDogXCJNZW5vcyBvIGlndWFsZXNcIixcbiAgICBhbmQ6IFwieVwiLFxuICAgIG9yOiBcIm9cIixcbiAgfSxcbiAgZXc6IHtcbiAgICBhbmd1bGFyOiBcIlVzYXIgbGEgdmVyc2nDs24gYW5ndWxhclwiLFxuICAgIGpxdWVyeTogXCJVc2EgbGEgdmVyc2nDs24galF1ZXJ5XCIsXG4gICAga25vY2tvdXQ6IFwiVXNhIGxhIHZlcnNpw7NuIEtub2Nrb3V0XCIsXG4gICAgcmVhY3Q6IFwiVXNlIGxhIHZlcnNpw7NuIGRlIHJlYWNjacOzblwiLFxuICAgIHZ1ZTogXCJVc2EgbGEgdmVyc2nDs24gVlVFXCIsXG4gICAgYm9vdHN0cmFwOiBcIlBhcmEgbWFyY28gZGUgYm9vdHN0cmFwXCIsXG4gICAgbW9kZXJuOiBcIlRlbWEgbW9kZXJub1wiLFxuICAgIGRlZmF1bHQ6IFwiVGVtYSBwcmVkZXRlcm1pbmFkb1wiLFxuICAgIG9yYW5nZTogXCJUZW1hIG5hcmFuamFcIixcbiAgICBkYXJrYmx1ZTogXCJUZW1hIERhcmtCbHVlXCIsXG4gICAgZGFya3Jvc2U6IFwiVGVtYSBkZSBEYXJrcm9zZVwiLFxuICAgIHN0b25lOiBcIlRlbWEgZGUgcGllZHJhXCIsXG4gICAgd2ludGVyOiBcIlRlbWEgZGUgaW52aWVybm9cIixcbiAgICB3aW50ZXJzdG9uZTogXCJUZW1hIGRlIHBpZWRyYSBkZSBpbnZpZXJub1wiLFxuICAgIHNob3dPblBhZ2U6IFwiTW9zdHJhciBlbmN1ZXN0YSBlbiB1bmEgcMOhZ2luYVwiLFxuICAgIHNob3dJbldpbmRvdzogXCJNb3N0cmFyIGVuY3Vlc3RhIGVuIHVuYSB2ZW50YW5hXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiRW5jdWVzdGEgZGUgY2FyZ2EgSlNPTiBkZWwgc2Vydmlkb3JcIixcbiAgICB0aXRsZVNjcmlwdDogXCJTY3JpcHRzIHkgZXN0aWxvc1wiLFxuICAgIHRpdGxlSHRtbDogXCJIdG1sXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFzY3JpcHRcIixcbiAgfSxcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcIlNlbGVjY2lvbmUgbGEgcMOhZ2luYSBwYXJhIHByb2JhcmxvOlwiLFxuICAgIHNob3dJbnZpc2libGVFbGVtZW50czogXCJNb3N0cmFyIGVsZW1lbnRvcyBpbnZpc2libGVzXCIsXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCJDYW50aWRhZCBkZSByZXNwdWVzdGFzXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwiRW1haWxcIixcbiAgICBleHByZXNzaW9udmFsaWRhdG9yOiBcImV4cHJlc2nDs25cIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcIm51bcOpcmljYVwiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcInJlZ2V4XCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCJ0ZXh0b1wiLFxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCJlbmN1ZXN0YSBjb21wbGV0YVwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCJ2YWxvciBhanVzdGFkb1wiLFxuICAgIGNvcHl2YWx1ZXRyaWdnZXI6IFwiVmFsb3IgZGUgY29waWFcIixcbiAgICBza2lwdHJpZ2dlcjogXCJTYWx0YXIgYSBsYSBwcmVndW50YVwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcImV4cHJlc2nDs24gZGUgZWplY3VjacOzblwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcIkNhbWJpYXIgdmlzaWJpbGlkYWRcIixcbiAgfSxcbiAgcDoge1xuICAgIG5hbWU6IFwibm9tYnJlXCIsXG4gICAgdGl0bGU6IHtcbiAgICAgIG5hbWU6IFwidMOtdHVsb1wiLFxuICAgICAgdGl0bGU6IFwiRGVqYXJsbyB2YWPDrW8sIHNpIGVzIGxvIG1pc21vIHF1ZSAnTmFtZSdcIixcbiAgICB9LFxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJOYXZlZ2FjacOzbiBib3RvbmVzIHZpc2liaWxpZGFkXCIsXG4gICAgcXVlc3Rpb25zT3JkZXI6IFwiT3JkZW5cIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiVGllbXBvIGRlIGZpbmFsaXphY2nDs25cIixcbiAgICB2aXNpYmxlOiBcInZpc2libGVcIixcbiAgICB2aXNpYmxlSWY6IFwidmlzaWJsZSBzaVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJMb2NhbGl6YWNpw7NuIGRlbCB0w610dWxvXCIsXG4gICAgZGVzY3JpcHRpb246IFwiRGVzY3JpcGNpw7NuXCIsXG4gICAgc3RhdGU6IFwiRXhwcmVzYXJcIixcbiAgICBpc1JlcXVpcmVkOiBcInNlIHJlcXVpZXJlXCIsXG4gICAgcmVxdWlyZWRJZjogXCJSZXF1ZXJpZG8gc2lcIixcbiAgICBpbmRlbnQ6IFwiSW5kZW50YXJcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJSZXF1ZXJpZG9cIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIkNvbWVuemFyIGNvbiBudWV2YSBsw61uZWFcIixcbiAgICBpbm5lckluZGVudDogXCJTYW5ncsOtYSBpbnRlcmlvclwiLFxuICAgIHBhZ2U6IFwicMOhZ2luYVwiLFxuICAgIHdpZHRoOiBcIkFuY2hvXCIsXG4gICAgY29tbWVudFRleHQ6IFwiY29tZW50YXJpb1wiLFxuICAgIHZhbHVlTmFtZTogXCJOb21icmUgZGVsIHZhbG9yXCIsXG4gICAgZW5hYmxlSWY6IFwiSGFiaWxpdGFyIHNpXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcInZhbG9yIHBvciBkZWZlY3RvXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCJyZXNwdWVzdGEgY29ycmVjdGFcIixcbiAgICByZWFkT25seTogXCJzb2xvIGxlY3R1cmFcIixcbiAgICB2YWxpZGF0b3JzOiBcIlZhbGlkYWRvcmVzXCIsXG4gICAgdGl0bGVMb2NhdGlvbjogXCJMb2NhbGl6YWNpw7NuIGRlbCB0w610dWxvXCIsXG4gICAgaGFzQ29tbWVudDogXCJ0aWVuZSBjb21lbnRhcmlvXCIsXG4gICAgc2hvd090aGVySXRlbTogXCJvdHJvXCIsXG4gICAgY2hvaWNlczogXCJvcGNpb25lc1wiLFxuICAgIGNob2ljZXNPcmRlcjogXCJvcmRlbiBkZSBvcGNpb25lc1wiLFxuICAgIGNob2ljZXNCeVVybDogXCJvcGNpb25lcyBwb3IgVVJMXCIsXG4gICAgb3RoZXJUZXh0OiBcIm90cm8gdGV4dG9cIixcbiAgICBvdGhlckVycm9yVGV4dDogXCJvdHJvIHRleHRvIGRlIEVycm9yXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiR3VhcmRhciBvdHJhcyBjb21vIGNvbWVudGFyaW9cIixcbiAgICBsYWJlbDogXCJldGlxdWV0YVwiLFxuICAgIHNob3dUaXRsZTogXCJtb3N0cmFyIHTDrXR1bG9cIixcbiAgICB2YWx1ZVRydWU6IFwiVmVyZGFkZXJvXCIsXG4gICAgdmFsdWVGYWxzZTogXCJGYWxzb1wiLFxuICAgIGNvbHM6IFwiY29sdW1uYXNcIixcbiAgICByb3dzOiBcImZpbGFzXCIsXG4gICAgcGxhY2Vob2xkZXI6IFwibWFyY2Fkb3IgZGUgcG9zaWNpw7NuXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwiVGV4dG8gb3BjaW9uZXNcIixcbiAgICBleHByZXNzaW9uOiBcImV4cHJlc2nDs25cIixcbiAgICBmb3JtYXQ6IFwiZm9ybWF0b1wiLFxuICAgIGRpc3BsYXlTdHlsZTogXCJFc3RpbG8gdmlzdWFsaXphY2nDs25cIixcbiAgICBjdXJyZW5jeTogXCJkaXZpc2FcIixcbiAgICB1c2VHcm91cGluZzogXCJHcnVwbyBkZSB1c29cIixcbiAgICBzaG93UHJldmlldzogXCJNb3N0cmFyIHZpc3RhIHByZXZpYVwiLFxuICAgIGFsbG93TXVsdGlwbGU6IFwiUGVybWl0aXIgbcO6bHRpcGxlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkFsdHVyYSBkZSBpbWFnZW5cIixcbiAgICBpbWFnZVdpZHRoOiBcImFuY2hvIGRlIGxhIGltYWdlblwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCJHdWFyZGFyIGRhdG9zIGNvbW8gdGV4dG9cIixcbiAgICBtYXhTaXplOiBcInRhbWHDsW8gbcOheGltb1wiLFxuICAgIGh0bWw6IFwiaHRtbFwiLFxuICAgIGNvbHVtbnM6IFwiY29sdW1uYXNcIixcbiAgICBjZWxsczogXCJjw6lsdWxhc1wiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwiVG9kYXMgbGFzIGZpbGFzIHNvbiBvYmxpZ2F0b3JpYXNcIixcbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcIlNjcm9sbCBIb3Jpem9udGFsXCIsXG4gICAgY2VsbFR5cGU6IFwiVGlwbyBkZSBjw6lsdWxhXCIsXG4gICAgY29sdW1uc0xheW91dDogXCJFc3RpbG8gY29sdW1uYVwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcIkNvbnRhZG9yIGNvbHVtbmFcIixcbiAgICBjb2x1bW5NaW5XaWR0aDogXCJBbmNobyBjb2x1bW5hXCIsXG4gICAgcm93Q291bnQ6IFwibsO6bWVybyBkZSBmaWxhc1wiLFxuICAgIG1pblJvd0NvdW50OiBcIkNhbnRpZGFkIG3DrW4gZGUgZmlsYXNcIixcbiAgICBtYXhSb3dDb3VudDogXCJDYW50aWRhZCBtYXggZGUgZmlsYXNcIixcbiAgICBrZXlOYW1lOiBcIk5vbWJyZSBjbGF2ZVwiLFxuICAgIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiS2V5RHVwbGljYXRpb25FcnJvclwiLFxuICAgIGNvbmZpcm1EZWxldGU6IFwiY29uZmlybWFyIGJvcnJhZG9cIixcbiAgICBjb25maXJtRGVsZXRlVGV4dDogXCJ0ZXh0byBkZSBjb25maXJtYWNpw7NuIGRlIGJvcnJhZG9cIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJMb2NhbGl6YWNpw7NuIGHDsWFkaXIgZmlsYVwiLFxuICAgIGFkZFJvd1RleHQ6IFwiQcOxYWRpciB0ZXh0byBmaWxhXCIsXG4gICAgcmVtb3ZlUm93VGV4dDogXCJFbGltaW5hciB0ZXh0byBmaWxhXCIsXG4gICAgaXRlbXM6IFwiYXJ0w61jdWxvc1wiLFxuICAgIGl0ZW1TaXplOiBcImFydMOtY3Vsb3NcIixcbiAgICBjb2xDb3VudDogXCJDb250YWRvciBjb2x1bW5hXCIsXG4gICAgdGVtcGxhdGVUaXRsZTogXCJUw610dWxvIHRlbXBsYXRlXCIsXG4gICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogXCJEZXNjcmlwY2nDs24gdGVtcGxhdGVcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIlBlcm1pdGlyIGHDsWFkaXIgcGFuZWxcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIlBlcm1pdGlyIGVsaW1pbmFyIHBhbmVsXCIsXG4gICAgcGFuZWxDb3VudDogXCJDb250YWRvciBwYW5lbFwiLFxuICAgIG1pblBhbmVsQ291bnQ6IFwiTcOtbiBDb250YWRvciBQYW5lbFwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwiTWF4IENvbnRhZG9yIFBhbmVsXCIsXG4gICAgcGFuZWxzU3RhdGU6IFwiRXN0YWRvIHBhbmVsXCIsXG4gICAgcGFuZWxBZGRUZXh0OiBcIlBhbmVsIGHDsWFkaXIgdGV4dG9cIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwiUGFuZWwgZWxpbWluYXIgdGV4dG9cIixcbiAgICBwYW5lbFByZXZUZXh0OiBcInBhbmVsIHByZXZpb1wiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwicGFuZWwgc2lndWllbnRlXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJNb3N0cmFyIG7Dum1lcm8gcHJlZ3VudGFzXCIsXG4gICAgc2hvd1JhbmdlSW5Qcm9ncmVzczogXCJNb3N0cmFyIHJhbmdvIGVuIHByb2dyZXNzb1wiLFxuICAgIHJlbmRlck1vZGU6IFwiTW9kbyByZW5kZXJpemFjacOzblwiLFxuICAgIHRlbXBsYXRlVGl0bGVMb2NhdGlvbjogXCJMb2NhbGl6YWNpw7NuIHTDrXR1bG8gZW4gdGVtcGxhdGVcIixcbiAgICByYXRlVmFsdWVzOiBcIkNhbGlmaWNhIHZhbG9yZXNcIixcbiAgICByYXRlTWluOiBcIkNhbGlmaWNhY2nDs24gbcOtbmltYVwiLFxuICAgIHJhdGVNYXg6IFwiQ2FsaWZpY2FjacOzbiBtw6F4aW1hXCIsXG4gICAgcmF0ZVN0ZXA6IFwiUGFzb1wiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJNaW5SYXRlIERlc2NyaXBjacOzblwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJNYXhSYXRlIERlc2NyaXBjacOzblwiLFxuICAgIGlucHV0VHlwZTogXCJ0aXBvIGRlIGVudHJhZGFcIixcbiAgICBzaXplOiBcIlRhbWHDsW9cIixcbiAgICBsb2NhbGU6IFwibHVnYXJcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6XG4gICAgICBcIkNvbG9jYXJzZSBhdXRvbcOhdGljYW1lbnRlIGVuIGxhIHByaW1lcmEgcHJlZ3VudGFcIixcbiAgICBjb21wbGV0ZWRIdG1sOiBcIkhUTUwgY29tcGxldGFkb1wiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwiSFRNTCBjb21wbGV0YWRvIGFudGVzXCIsXG4gICAgbG9hZGluZ0h0bWw6IFwiQ2FyZ2FuZG8gSFRNTFwiLFxuICAgIHRyaWdnZXJzOiBcImRpc3BhcmFkb3Jlc1wiLFxuICAgIGNvb2tpZU5hbWU6IFwiTm9tYnJlIENvb2tpZVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIkVudmlhciByZXN1bHRhZG9zIGVuIGxhIHNpZ3VpZW50ZSBww6FnaW5hXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIk1vc3RyYXIgYm90b25lcyBkZSBuYXZlZ2FjacOzblwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIk1vc3RyYXIgYm90w7NuIHByZXZpb1wiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIk1vc3RyYXIgdMOtdHVsbyBww6FnaW5hc1wiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIk1vc3RyYXIgcMOhZ2luYSBkZSBDb21wbGV0YWRvXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIk1vc3RyYXIgTsO6bWVyb3MgZGUgUMOhZ2luYVwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJMb2NhbGl6YWNpw7NuIGRlbCBlcnJvciBkZSBsYSBwcmVndW50YVwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCJNb3N0cmFyIHByb2dyYW1hXCIsXG4gICAgbW9kZTogXCJtb2RvXCIsXG4gICAgZ29OZXh0UGFnZUF1dG9tYXRpYzogXCJJciBhIGxhIHNpZ3VpZW50ZSBww6FnaW5hIGF1dG9tw6F0aWNhbWVudGVcIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwiTW9kbyB2YWxpZGFyIGVycm9yZXNcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJCb3JyYXIgdmFsb3JlcyBpbnZpc2libGVzXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIlRleHRvIGRlIGluaWNpbyBkZSBsYSBlbmN1ZXN0YVwiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCJUZXh0byBww6FnaW5hIHByZXZpYVwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJUZXh0byBww6FnaW5hIHNpZ3VpZW50ZVwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJUZXh0byBjb21wbGV0YWRvXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlRleHRvIHJlcXVlcmlkb1wiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCLDjW5kaWNlIGluaWNpYWwgZGUgbGEgcHJlZ3VudGFcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwiVMOtdHVsbyBkZWwgdGVtcGxhdGUgZGUgbGEgcHJlZ3VudGFcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiUHJpbWVyYSBww6FnaW5hIGluaWNpYWRhXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIlDDoWdpbmEgw7puaWNhXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJUaWVtcG8gbcOheGltbyBwYXJhIGZpbmFsaXphclwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIk1vc3RyYXIgdGVtcG9yaXphZG9yXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcIk1vc3RyYXIgdGVtcG9yaXphZG9yIE1vZG9cIixcbiAgICBkZWZhdWx0UGFuZWxWYWx1ZTogXCJWYWxvciBwb3IgZGVmZWN0byBQYW5lbFwiLFxuICAgIGRlZmF1bHRSb3dWYWx1ZTogXCJWYWxvciBwb3IgZGVmZWN0byBGaWxhXCIsXG4gICAgc2hvd05vbmVJdGVtOiBcIlRpZW5lIG9wY2nDs24gJ05pbmd1bm8nXCIsXG4gICAgbm9uZVRleHQ6IFwiVGV4dG8gbmluZ3Vub1wiLFxuICAgIHRleHQ6IFwidGV4dG9cIixcbiAgfSxcbn07XG5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZXNcIl0gPSBzcGFuaXNoVHJhbnNsYXRpb247XG4iLCIvL1RyYW5zbGF0ZWQgYnkgVGhvbWFzIEJvcmdzdHLDtm1cbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IGxldCBzdlN0cmluZ3MgPSB7XG4gIC8vc3VydmV5IHRlbXBsYXRlc1xuICBsb2NhbGU6IFwic3ZcIixcbiAgc3VydmV5OiB7XG4gICAgZWRpdDogXCJSZWRpZ2VyYVwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCJEcmEgb2NoIHNsw6RwcCBlbiBmcsOlZ2EgZnLDpW4gVmVya3R5Z3NsaXN0YW4gdGlsbCB2w6Ruc3Rlci5cIixcbiAgICBjb3B5OiBcIktvcGllcmFcIixcbiAgICBhZGRUb1Rvb2xib3g6IFwiTMOkZ2cgdGlsbCBWZXJrdHlnc2xpc3RhblwiLFxuICAgIGRlbGV0ZVBhbmVsOiBcIlJhZGVyYSBQYW5lbFwiLFxuICAgIGRlbGV0ZVF1ZXN0aW9uOiBcIlJhZGVyYSBGcsOlZ2FcIixcbiAgICBjb252ZXJ0VG86IFwiS29udmVydGVyYSB0aWxsXCIsXG4gICAgZHJhZzogXCJEcmEgZWxlbWVudFwiLFxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIlN0YW5kYXJkXCIsXG4gICAgY2hlY2tib3g6IFwiQ2hlY2tib3hcIixcbiAgICBjb21tZW50OiBcIktvbW1lbnRhclwiLFxuICAgIGltYWdlcGlja2VyOiBcIkJpbGQtdsOkbGphcmVcIixcbiAgICBkcm9wZG93bjogXCJSdWxsZ2FyZGluc21lbnlcIixcbiAgICBmaWxlOiBcIkZpbFwiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIG1hdHJpeDogXCJNYXRyaXMgKGVua2VsIHZhbClcIixcbiAgICBtYXRyaXhkcm9wZG93bjogXCJNYXRyaXMoZmxlcmEgdmFsKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0cmlzIChkeW5hbWlza2EgcmFkZXIpXCIsXG4gICAgbXVsdGlwbGV0ZXh0OiBcIkZsZXJhIHRleHRlclwiLFxuICAgIHBhbmVsOiBcIlBhbmVsXCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIlBhbmVsIChkeW5hbWlzayBwYW5lbClcIixcbiAgICByYWRpb2dyb3VwOiBcIlJhZGlvZ3J1cHBlclwiLFxuICAgIHJhdGluZzogXCJSYW5rbmluZ1wiLFxuICAgIHRleHQ6IFwiRW5rZWwgdGV4dFwiLFxuICAgIGJvb2xlYW46IFwiQm9vbGVhblwiLFxuICAgIGV4cHJlc3Npb246IFwiRm9ybWVsXCIsXG4gIH0sXG4gIC8vU3RyaW5ncyBpbiBFZGl0b3JcbiAgZWQ6IHtcbiAgICBkZWZhdWx0TG9jYWxlOiBcIlN0YW5kYXJkICh7MH0pXCIsXG4gICAgc3VydmV5OiBcIkVua8OkdFwiLFxuICAgIHNldHRpbmdzOiBcIkVua8OkdCBpbnN0w6RsbG5pbmdhclwiLFxuICAgIGVkaXRTdXJ2ZXk6IFwiUmVkaWdlcmEgRW5rw6R0XCIsXG4gICAgYWRkTmV3UGFnZTogXCJMw6RnZyB0aWxsIGVuIG55IHNpZGFcIixcbiAgICBtb3ZlUmlnaHQ6IFwiU2Nyb2xsYSB0aWxsIGjDtmdlclwiLFxuICAgIG1vdmVMZWZ0OiBcIlNjcm9sbGEgdGlsbCB2w6Ruc3RlclwiLFxuICAgIGRlbGV0ZVBhZ2U6IFwiUmFkZXJhIHNpZGFcIixcbiAgICBlZGl0UGFnZTogXCJSZWRpZ2VyYSBzaWRhXCIsXG4gICAgZWRpdDogXCJSZWRpZ2VyYVwiLFxuICAgIG5ld1BhZ2VOYW1lOiBcInNpZGFcIixcbiAgICBuZXdRdWVzdGlvbk5hbWU6IFwiZnLDpWdhXCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcInBhbmVsXCIsXG4gICAgdGVzdFN1cnZleTogXCJUZXN0IGVua8OkdFwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJUZXN0YSBlbmvDpHQgaWdlblwiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCJFbmvDpHQgYnJlZGQ6IFwiLFxuICAgIGVtYmVkU3VydmV5OiBcIkludGVncmVyYWQgRW5rw6R0XCIsXG4gICAgdHJhbnNsYXRpb246IFwiw5Z2ZXJzw6R0dG5pbmdcIixcbiAgICBzYXZlU3VydmV5OiBcIlNwYXJhIEVua8OkdFwiLFxuICAgIGRlc2lnbmVyOiBcIkVua8OkdCBEZXNpZ25lclwiLFxuICAgIGpzb25FZGl0b3I6IFwiSlNPTiBSZWRpZ2VyaW5nXCIsXG4gICAgdW5kbzogXCLDhW5ncmFcIixcbiAgICByZWRvOiBcIkfDtnJhIG9tXCIsXG4gICAgb3B0aW9uczogXCJBbHRlcm5hdGl2XCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwiR2VuZXJlcmEgZ2lsdGlnIEpTT05cIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJHZW5lcmVyYSBsw6RzYmFyIEpTT05cIixcbiAgICB0b29sYm94OiBcIlZlcmt0eWdzbGlzdGFcIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcIkdlbmVyZWxsdFwiLFxuICAgIGRlbFNlbE9iamVjdDogXCJSYWRlcmEgdmFsdCBlbGVtZW50XCIsXG4gICAgZWRpdFNlbE9iamVjdDogXCJSZWRpZ2VyYSB2YWx0IGVsZW1lbnRcIixcbiAgICBjb3JyZWN0SlNPTjogXCJWYXIgdsOkbmxpZ2VuIGtvcnJpZ2VyYSBKU09OLlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwiRW5rw6R0IHJlc3VsdGF0OiBcIixcbiAgICBzdXJ2ZXlSZXN1bHRzVGFibGU6IFwiU29tIHRhYmVsbFwiLFxuICAgIHN1cnZleVJlc3VsdHNKc29uOiBcIlNvbSBKU09OXCIsXG4gICAgcmVzdWx0c1RpdGxlOiBcIkZyw6VnZXRpdGVsXCIsXG4gICAgcmVzdWx0c05hbWU6IFwiRnLDpWdlbmFtblwiLFxuICAgIHJlc3VsdHNWYWx1ZTogXCJSZXN1bHRhdCB2w6RyZGVcIixcbiAgICByZXN1bHRzRGlzcGxheVZhbHVlOiBcIlZpc25pbmdzIHbDpHJkZVwiLFxuICAgIG1vZGlmaWVkOiBcIsOEbmRyYXRcIixcbiAgICBzYXZpbmc6IFwiU3BhcmFyXCIsXG4gICAgc2F2ZWQ6IFwiU3BhcmF0XCIsXG4gICAgc2F2ZUVycm9yOiBcIkZlbCEgSW5uZWjDpWxsZXQgaSBlbmvDpHRlbiDDpHIgaW50ZSBzcGFyYXQuXCIsXG4gICAgdHJhbnNsYXRpb25BZGRMYW5ndWFnZTogXCJWw6RsaiBzcHLDpWsgZsO2ciBvdmVyc8OkdHRuaW5nXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsU3RyaW5nczogXCJWaXNhIGFsbGEgc3Ryw6RuZ2FyXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsUGFnZXM6IFwiVmlzYSBhbGxhIHNpZG9yXCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6IFwiSW5nYSBzdHLDpG5nYXIgw6RyIMO2dmVyc2F0dGEuIFbDpG5saWdlbiDDpG5kcmEgZmlsdHJldC5cIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcIkV4cG9ydGVyYSB0aWxsIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCJJbXBvcnRlcmEgZnLDpW4gQ1NWXCIsXG4gICAgdHJhbnNsYXRpb25NZXJnZUxvY2FsZVdpdGhEZWZhdWx0OiBcIk1lcmdlYSB7MH0gbWVkIHN0YW5kYXJkIHNwcsOla1wiLFxuICB9LFxuICAvL1Byb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgcGVsOiB7XG4gICAgaXNSZXF1aXJlZDogXCJOw7ZkdsOkbmRpZz9cIixcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwiRmFzdMOkbGxcIixcbiAgICBvazogXCJPS1wiLFxuICAgIGNhbmNlbDogXCJBdmJyeXRcIixcbiAgICByZXNldDogXCLDhXRlcnN0w6RsbFwiLFxuICAgIGNsb3NlOiBcIlN0w6RuZ1wiLFxuICAgIGRlbGV0ZTogXCJSYWRlcmFcIixcbiAgICBhZGROZXc6IFwiTMOkZ2cgdGlsbCBueVwiLFxuICAgIGFkZEl0ZW06IFwiS2xpY2thIGbDtnIgYXR0IGzDpGdnYSB0aWxsLi4uXCIsXG4gICAgcmVtb3ZlQWxsOiBcIlRhIGJvcnQgYWxsdFwiLFxuICAgIGVkaXQ6IFwiUmVkaWdlcmFcIixcbiAgICBpdGVtVmFsdWVFZGl0OiBcIlN5bmxpZyBmw7ZyXCIsXG4gICAgZWRpdENob2ljZXM6IFwiUmVkaWdlcmEgdmFsXCIsXG4gICAgbW92ZTogXCJGbHl0dGFcIixcbiAgICBlbXB0eTogXCI8dG9tPlwiLFxuICAgIG5vdEVtcHR5OiBcIjxyZWRpZ2VyYSB2w6RyZGV0PlwiLFxuICAgIGZhc3RFbnRyeTogXCJTbmFiYiBpZnlsbG5pbmdcIixcbiAgICBmb3JtRW50cnk6IFwiSWZ5bGxuaW5nIGkgZW5rw6R0ZW5cIixcbiAgICB0ZXN0U2VydmljZTogXCJUZXN0YSB0asOkbnN0ZW5cIixcbiAgICBjb25kaXRpb25TZWxlY3RRdWVzdGlvbjogXCJWw6RsaiBmcsOlZ2EuLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwiVsOkbmxpZ2VuIHNrcml2IGluL3bDpGxqIHbDpHJkZXRcIixcbiAgICBjb25kaXRpb25CdXR0b25BZGQ6IFwiTMOkZ2cgdGlsbFwiLFxuICAgIGNvbmRpdGlvbkJ1dHRvblJlcGxhY2U6IFwiRXJzw6R0dFwiLFxuICAgIGNvbmRpdGlvbkhlbHA6XG4gICAgICBcIlNrcml2IGluIGV0dCBib29sc2sgdXR0cnljay4gRGV0IGLDtnIgcmV0dXJuZXJhIFNBTlQgZsO2ciBhdHQgZ8O2cmEgZnLDpWdhbi9zaWRhbiBzeW5saWcuIFRpbGwgZXhlbXBlbDoge3F1ZXN0aW9uMX0gPSAndmFsdWUxJyBvciAoe3F1ZXN0aW9uMn0gKiB7cXVlc3Rpb240fSAgPiAyMCBhbmQge3F1ZXN0aW9uM30gPCA1KVwiLFxuICAgIGV4cHJlc3Npb25IZWxwOlxuICAgICAgXCJWYXIgdsOkbmxpZ2VuIHNrcml2IGluIGV0dCB1dHRyeWNrLiAgRHUga2FuIGFudsOkbmRhIG3DpXN2aW5nYXIgZsO2ciBhdHQgZsOlIHRpbGxnw6VuZyB0aWxsIGRldCBzcGFyYWRlIHbDpHJkZXQ6ICd7cXVlc3Rpb24xfSArIHtxdWVzdGlvbjJ9JywgJyh7cHJpY2V9KntxdWFudGl0eX0pICogKDEwMCAtIHtkaXNjb3VudH0pJ1wiLFxuICAgIGFjZUVkaXRvckhlbHA6IFwiVHJ5Y2sgY3RybCttZWxsYW5zbGFnIGbDtnIgYXR0IGbDpSBlbiBsZWR0csOlZFwiLFxuICAgIGFjZUVkaXRvclJvd1RpdGxlOiBcIk51dmFyYW5kZSByYWRcIixcbiAgICBhY2VFZGl0b3JQYW5lbFRpdGxlOiBcIk51dmFyYW5kZSBwYW5lbFwiLFxuICAgIHNob3dNb3JlOiBcIkbDtnIgbWVyIGRldGFsamVyIC0gc2UgZG9rdW1lbnRhdGlvbmVuXCIsXG4gICAgY29uZGl0aW9uU2hvd01vcmVVcmw6XG4gICAgICBcImh0dHBzOi8vc3VydmV5anMuaW8vRG9jdW1lbnRhdGlvbi9MaWJyYXJ5UGFyYW1ldGVyP2lkPVF1ZXN0aW9uJnBhcmFtZXRlcj12aXNpYmxlSWZcIixcbiAgICBhc3Npc3RhbnRUaXRsZTogXCJUaWxsZ8OkbmdsaWdhIGZyw6Vnb3I6XCIsXG4gICAgY2VsbHNFbXB0eVJvd3NDb2x1bW5zOiBcIkRldCBiw7ZyIHZhcmEgbWluc3QgMSBrb2x1bW4gZWxsZXIgcmFkXCIsXG5cbiAgICBwcm9wZXJ0eUlzRW1wdHk6IFwiVsOkbmxpZ2VuIGZ5bGwgaSBldHQgdsOkcmRlXCIsXG4gICAgdmFsdWU6IFwiVsOkcmRlXCIsXG4gICAgdGV4dDogXCJUZXh0XCIsXG4gICAgcm93aWQ6IFwiUmFkIElEXCIsXG4gICAgaW1hZ2VMaW5rOiBcIkJpbGQgbMOkbmtcIixcbiAgICBjb2x1bW5FZGl0OiBcIlJlZGlnZXJhIGtvbHVtbjogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwiUmVkaWdlcmEgZWxlbWVudDogezB9XCIsXG5cbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCJTw7ZrdsOkZ1wiLFxuICAgIHZhbHVlTmFtZTogXCJWw6RyZGUgbmFtblwiLFxuICAgIHRpdGxlTmFtZTogXCJUaXRlbCBuYW1uXCIsXG5cbiAgICBzaG93T3RoZXJJdGVtOiBcIkhhciBhbm5hdCBlbGVtZW50XCIsXG4gICAgb3RoZXJUZXh0OiBcIkFubmF0XCIsXG4gICAgbmFtZTogXCJOYW1uXCIsXG4gICAgdGl0bGU6IFwiVGl0ZWxcIixcbiAgICBjZWxsVHlwZTogXCJDZWxsIHR5cFwiLFxuICAgIGNvbENvdW50OiBcIkFudGFsIGtvbHVtbmVyXCIsXG4gICAgY2hvaWNlc09yZGVyOiBcIlbDpGxqIG9yZG5pbmcgcMOlIHZhbGV0XCIsXG4gICAgdmlzaWJsZTogXCJTeW5saWc/XCIsXG4gICAgaXNSZXF1aXJlZDogXCJOw7ZkdsOkbmRpZz9cIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcIlN0YXJ0YSBww6UgZW4gbnkgcmFkP1wiLFxuICAgIHJvd3M6IFwiQW50YWwgcmFkZXJcIixcbiAgICBwbGFjZWhvbGRlcjogXCJNYXRhIGluIGkgZsOkbHRldFwiLFxuICAgIHNob3dQcmV2aWV3OiBcIkbDtnJoYW5kc3ZpbnNuaW5nIGF2IGJpbGQ/XCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIkxhZ3JhIGZpbGlubmVow6VsbGV0IGkgSlNPTiBzb20gdGV4dFwiLFxuICAgIG1heFNpemU6IFwiTWF4IGZpbHN0b3JsZWsgaSBieXRlc1wiLFxuICAgIGltYWdlSGVpZ2h0OiBcIkJpbGQgaMO2amRcIixcbiAgICBpbWFnZVdpZHRoOiBcIkJpbGQgYnJlZGRcIixcbiAgICByb3dDb3VudDogXCJBbnRhbCByYWRlclwiLFxuICAgIGNvbHVtbkxheW91dDogXCJTdGlsIHDDpSBrb2x1bW5cIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCJMw6RnZyB0aWxsIHJhZGtuYXBwIHBsYXRzXCIsXG4gICAgYWRkUm93VGV4dDogXCJMw6RnZyB0aWxsIGtuYXBwIHRleHRcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlRhIGJvcnQgcmFkIGtuYXBwIHRleHRcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiTWluc3RhIGJldHlnIGJlc2tyaXZuaW5nXCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcIk1heGltYWxhIGJldHlnIGJlc2tyaXZuaW5nXCIsXG4gICAgaW5wdXRUeXBlOiBcIkluZGF0YSB0eXBcIixcbiAgICBvcHRpb25zQ2FwdGlvbjogXCJUZXh0IGbDtnIgYWx0ZXJuYXRpdlwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJTdGFuZGFyZCB2w6RyZGVcIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwiU3RhbmRhcmQgY2VsbCB0ZXh0ZXJcIixcblxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcIlJlZGlnZXJhIHNjaGVtYSBpbnN0w6RsbG5pbmdhclwiLFxuICAgIHFFZGl0b3JUaXRsZTogXCJSZWRpZ2VyYTogezB9XCIsXG5cbiAgICBtYXhMZW5ndGg6IFwiTWF4IGzDpG5nZFwiLFxuICAgIC8vc3VydmV5XG4gICAgc2hvd1RpdGxlOiBcIlZpc2EvZMO2bGogdGl0ZWxcIixcbiAgICBsb2NhbGU6IFwiU3RhbmRhcmQgc3Byw6VrXCIsXG4gICAgbW9kZTogXCJMw6RnZSAocmVkaWdlcmEvbMOkc2EgZW5iYXJ0KVwiLFxuICAgIGNsZWFySW52aXNpYmxlVmFsdWVzOiBcIlJlbnNhIG9zeW5saWdhIHbDpHJkZW5cIixcbiAgICBjb29raWVOYW1lOiBcIktha25hbW4gKGbDtnIgYXR0IGluYWt0aXZlcmEga8O2ciBlbmvDpHRlbiB0dsOlIGfDpW5nZXIgbG9rYWx0KVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIlNraWNrYSBlbmvDpHQgcmVzdWx0YXRldCB0aWxsIG7DpHN0YSBzaWRhXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiTGFncmEgJ2FuZHJhJyB2w6RyZGVuIGkgZXR0IHNlcGFyYXQgZsOkbHRcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJWaXNhIHNpZHRpdGVsXCIsXG4gICAgc2hvd1BhZ2VOdW1iZXJzOiBcIlZpc2Egc2lkbnVtbWVyXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIkbDtnJlZ8OlZW5kZVwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJOw6RzdGFcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwiRsOkcmRpZ1wiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJTdGFydCBrbmFwcCB0ZXh0XCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIlZpc2EgbmF2aWdhdGlvbnNrbmFwcGFyIChzdGFuZGFyZCBuYXZpZ2VyaW5nKVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOlxuICAgICAgXCJWaXNhIGbDtnJlZ8OlZW5kZSBrbmFwcCAoYW52w6RuZGFyZW4ga2FuIGfDpSDDpXRlcmfDpSB0aWxsIGbDtnJlZ8OlZW5kZSBzaWRhKVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCJEZW4gZsO2cnN0YSBzaWRhbiBpIGVua8OkdGVuIMOkciBzdGFydHNpZGFuLlwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlZpc2EgZGVuIHNsdXRmw7ZyZGEgc2lkYW4gcMOlIHNsdXRldCAoY29tcGxldGVkSHRtbClcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOlxuICAgICAgXCJWaWQgYmVzdmFyYW5kZSBhdiBhbGxhIGZyw6Vnb3IsIGfDpSB0aWxsIG7DpHN0YSBzaWRhIGF1dG9tYXRpc2t0XCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIlZpc2EgaMOkbmRlbHNmw7ZybG9wcFwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCJGcsOlZ2EgdGl0ZWwgcGxhY2VyaW5nXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlZhciB2w6RubGlnIHNrcml2IGVuIHRleHRcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiRnLDpWdhIHN0YXJ0IGluZGV4ICgxLCAyIGVsbGVyICdBJywgJ2EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiVmlzYSBmcsOlZ2VudW1tZXJcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6XG4gICAgICBcIkZyw6VnYSB0aXRlbCBtYWxsLCBzdGFuZGFyZCDDpHI6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwiRnLDpWdhIGZlbCBwbGFjZXJhZFwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzpcbiAgICAgIFwiRm9rdXNlcmEgcMOlIGbDtnJzdGEgZnLDpWdhbiB2aWQgw6RuZHJpbmcgYXYgc2lkYW5cIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJFbGVtZW50IG9yZG5pbmcgcMOlIHNpZGFuXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcIk1heCB0aWQgZsO2ciBhdHQgc2x1dGbDtnJhIGVua8OkdGVuXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJNYXggdGlkIGbDtnIgYXR0IGfDtnJhIGbDpHJkaWd0IGVuIHNpZGEgaSBlbmvDpHRlblwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIlZpc2EgdGlkdGFnbmluZ1wiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJWaXNhIHRpZHRhZ25pbmcgbMOkZ2VcIixcbiAgICByZW5kZXJNb2RlOiBcIlJlbmRlcmluZyBsw6RnZVwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiVGlsbMOldCBhdHQgbMOkZ2dhIHRpbGwgcGFuZWxcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIlRpbGzDpXQgYXR0IHRhIGJvcnQgcGFuZWxcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiTMOkZ2cgdGlsbCBwYW5lbCB0ZXh0XCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIlRhIGJvcnQgcGFuZWwgdGV4dFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCJWaXNhIGFsbGEgZWxlbWVudCBww6UgZW4gc2lkYVwiLFxuXG4gICAgdGFiczoge1xuICAgICAgZ2VuZXJhbDogXCJHZW5lcmVsbHRcIixcbiAgICAgIGZpbGVPcHRpb25zOiBcIkFsdGVybmF0aXZcIixcbiAgICAgIGh0bWw6IFwiSHRtbC1lZGl0b3JcIixcbiAgICAgIGNvbHVtbnM6IFwiS29sdW1uZXJcIixcbiAgICAgIHJvd3M6IFwiUmFkZXJcIixcbiAgICAgIGNob2ljZXM6IFwiVsOkbGpcIixcbiAgICAgIGl0ZW1zOiBcIkVsZW1lbnRcIixcbiAgICAgIHZpc2libGVJZjogXCJTeW5saWdcIixcbiAgICAgIGVuYWJsZUlmOiBcIlRpbGxnw6RubGlnXCIsXG4gICAgICByYXRlVmFsdWVzOiBcIk9yZG5hIHbDpHJkZW5cIixcbiAgICAgIGNob2ljZXNCeVVybDogXCJWw6RsaiBmcsOlbiB3ZWJiZW5cIixcbiAgICAgIG1hdHJpeENob2ljZXM6IFwiU3RhbmRhcmQgdmFsXCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCJUZXh0IGluZGF0YVwiLFxuICAgICAgdmFsaWRhdG9yczogXCJWYWxpZGVyaW5nYXJcIixcbiAgICAgIG5hdmlnYXRpb246IFwiTmF2aWdlcmluZ1wiLFxuICAgICAgcXVlc3Rpb246IFwiRnLDpWdhXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sOiBcIkZ1bGxmw7ZyZCBIdG1sXCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCJMYWRkYXIgSHRtbFwiLFxuICAgICAgdGltZXI6IFwiVGlkdGFnYXJlL1F1aXpcIixcbiAgICAgIHRyaWdnZXJzOiBcIlRyaWdnYXJlXCIsXG4gICAgICB0ZW1wbGF0ZVRpdGxlOiBcIk1hbGwgdGl0ZWxcIixcbiAgICB9LFxuICAgIGVkaXRQcm9wZXJ0eTogXCJSZWRpZ2VyYSBlZ2Vuc2thcCAnezB9J1wiLFxuICAgIGl0ZW1zOiBcIlsgRWxlbWVudDogezB9IF1cIixcblxuICAgIGVudGVyTmV3VmFsdWU6IFwiVsOkbmxpZ2VuIHNrcml2IGluIGV0dCB2w6RyZGUuXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwiRGV0IGZpbm5zIGluZ2VuIGZyw6VnYSBpIGVua8OkdGVuLlwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiVsOkbmxpZ2VuIHNrYXBhIGVuIHRyaWdnZXJcIixcbiAgICB0cmlnZ2VyT246IFwiUMOlIFwiLFxuICAgIHRyaWdnZXJNYWtlUGFnZXNWaXNpYmxlOiBcIlN5bmxpZ8O2ciBzaWRvcjpcIixcbiAgICB0cmlnZ2VyTWFrZVF1ZXN0aW9uc1Zpc2libGU6IFwiU3lubGlnw7ZyIGVsZW1lbnQ6XCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCJBdnNsdXRhIGVua8OkdCB2aWQgdmVya3N0w6RsbC5cIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcIlRyaWdnZXIgw6RyIGludGUgc2F0dFwiLFxuICAgIHRyaWdnZXJSdW5JZjogXCJLw7ZyIFwiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwiw4RuZHJhIHbDpHJkZW4gYXY6IFwiLFxuICAgIHRyaWdnZXJGcm9tTmFtZTogXCJLb3BpZXJhIHbDpHJkZW4gZnLDpW46IFwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcIkvDtnIgZGV0dGEgdXR0cnljazpcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwidGlsbDogXCIsXG4gICAgdHJpZ2dlcklzVmFyaWFibGU6IFwiVmFyIHbDpG5saWdlbiBza3JpdiBldHQgZ2lsdGlndCB1dHRyeWNrLlwiLFxuICB9LFxuICAvL1Byb3BlcnR5IHZhbHVlc1xuICBwdjoge1xuICAgIHRydWU6IFwidHJ1ZVwiLFxuICAgIGZhbHNlOiBcImZhbHNlXCIsXG4gICAgaW5oZXJpdDogXCJpbmhlcml0XCIsXG4gICAgc2hvdzogXCJzaG93XCIsXG4gICAgaGlkZTogXCJoaWRlXCIsXG4gICAgZGVmYXVsdDogXCJkZWZhdWx0XCIsXG4gICAgaW5pdGlhbDogXCJpbml0aWFsXCIsXG4gICAgcmFuZG9tOiBcInJhbmRvbVwiLFxuICAgIGNvbGxhcHNlZDogXCJjb2xsYXBzZWRcIixcbiAgICBleHBhbmRlZDogXCJleHBhbmRlZFwiLFxuICAgIG5vbmU6IFwibm9uZVwiLFxuICAgIGFzYzogXCJhc2NlbmRpbmdcIixcbiAgICBkZXNjOiBcImRlc2NlbmRpbmdcIixcbiAgICBpbmRldGVybWluYXRlOiBcImluZGV0ZXJtaW5hdGVcIixcbiAgICBkZWNpbWFsOiBcImRlY2ltYWxcIixcbiAgICBjdXJyZW5jeTogXCJjdXJyZW5jeVwiLFxuICAgIHBlcmNlbnQ6IFwicGVyY2VudFwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwiZmlyc3RFeHBhbmRlZFwiLFxuICAgIG9mZjogXCJvZmZcIixcbiAgICBvblBhbmVsOiBcIm9uUGFuZWxcIixcbiAgICBvblN1cnZleTogXCJvblN1cnZleVwiLFxuICAgIGxpc3Q6IFwibGlzdFwiLFxuICAgIHByb2dyZXNzVG9wOiBcInByb2dyZXNzVG9wXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwicHJvZ3Jlc3NCb3R0b21cIixcbiAgICBwcm9ncmVzc1RvcEJvdHRvbTogXCJwcm9ncmVzc1RvcEJvdHRvbVwiLFxuICAgIGhvcml6b250YWw6IFwiaG9yaXpvbnRhbFwiLFxuICAgIHZlcnRpY2FsOiBcInZlcnRpY2FsXCIsXG4gICAgdG9wOiBcInRvcFwiLFxuICAgIGJvdHRvbTogXCJib3R0b21cIixcbiAgICB0b3BCb3R0b206IFwidG9wIGFuZCBib3R0b21cIixcbiAgICBsZWZ0OiBcImxlZnRcIixcbiAgICBjb2xvcjogXCJjb2xvclwiLFxuICAgIGRhdGU6IFwiZGF0ZVwiLFxuICAgIGRhdGV0aW1lOiBcImRhdGV0aW1lXCIsXG4gICAgXCJkYXRldGltZS1sb2NhbFwiOiBcImRhdGV0aW1lLWxvY2FsXCIsXG4gICAgZW1haWw6IFwiZW1haWxcIixcbiAgICBtb250aDogXCJtb250aFwiLFxuICAgIG51bWJlcjogXCJudW1iZXJcIixcbiAgICBwYXNzd29yZDogXCJwYXNzd29yZFwiLFxuICAgIHJhbmdlOiBcInJhbmdlXCIsXG4gICAgdGVsOiBcInRlbFwiLFxuICAgIHRleHQ6IFwidGV4dFwiLFxuICAgIHRpbWU6IFwidGltZVwiLFxuICAgIHVybDogXCJ1cmxcIixcbiAgICB3ZWVrOiBcIndlZWtcIixcbiAgICBoaWRkZW46IFwiaGlkZGVuXCIsXG4gICAgb246IFwib25cIixcbiAgICBvblBhZ2U6IFwib25QYWdlXCIsXG4gICAgZWRpdDogXCJlZGl0XCIsXG4gICAgZGlzcGxheTogXCJkaXNwbGF5XCIsXG4gICAgb25Db21wbGV0ZTogXCJvbkNvbXBsZXRlXCIsXG4gICAgb25IaWRkZW46IFwib25IaWRkZW5cIixcbiAgICBhbGw6IFwiYWxsXCIsXG4gICAgcGFnZTogXCJwYWdlXCIsXG4gICAgc3VydmV5OiBcInN1cnZleVwiLFxuICAgIG9uTmV4dFBhZ2U6IFwib25OZXh0UGFnZVwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcIm9uVmFsdWVDaGFuZ2VkXCIsXG4gIH0sXG4gIC8vT3BlcmF0b3JzXG4gIG9wOiB7XG4gICAgZW1wdHk6IFwiaXMgZW1wdHlcIixcbiAgICBub3RlbXB0eTogXCJpcyBub3QgZW1wdHlcIixcbiAgICBlcXVhbDogXCJlcXVhbHNcIixcbiAgICBub3RlcXVhbDogXCJub3QgZXF1YWxzXCIsXG4gICAgY29udGFpbnM6IFwiY29udGFpbnNcIixcbiAgICBub3Rjb250YWluczogXCJub3QgY29udGFpbnNcIixcbiAgICBncmVhdGVyOiBcImdyZWF0ZXJcIixcbiAgICBsZXNzOiBcImxlc3NcIixcbiAgICBncmVhdGVyb3JlcXVhbDogXCJncmVhdGVyIG9yIGVxdWFsc1wiLFxuICAgIGxlc3NvcmVxdWFsOiBcImxlc3Mgb3IgZXF1YWxzXCIsXG4gIH0sXG4gIC8vRW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCJBbnbDpG5kIEFuZ3VsYXIgdmVyc2lvblwiLFxuICAgIGpxdWVyeTogXCJBbnbDpG5kIGpRdWVyeSB2ZXJzaW9uXCIsXG4gICAga25vY2tvdXQ6IFwiQW52w6RuZCBLbm9ja291dCB2ZXJzaW9uXCIsXG4gICAgcmVhY3Q6IFwiQW52w6RuZCBSZWFjdCB2ZXJzaW9uXCIsXG4gICAgdnVlOiBcIkFudsOkbmQgVnVlIHZlcnNpb25cIixcbiAgICBib290c3RyYXA6IFwiRsO2ciBib290c3RyYXAgZnJhbWV3b3JrXCIsXG4gICAgc3RhbmRhcmQ6IFwiSW5nZW4gYm9vdHN0cmFwXCIsXG4gICAgc2hvd09uUGFnZTogXCJWaXNhIGVua8OkdCBww6UgZW4gc2lkYVwiLFxuICAgIHNob3dJbldpbmRvdzogXCJWaXNhIGVua8OkdGVuIGkgZXR0IG55dHQgZsO2bnN0ZXJcIixcbiAgICBsb2FkRnJvbVNlcnZlcjogXCJIw6RtdGEgZW5rw6R0ZW4gc29tIEpTT04gZnLDpW4gc2VydmVyblwiLFxuICAgIHRpdGxlU2NyaXB0OiBcIlNjcmlwdHMgb2NoIHN0eWxlc1wiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIixcbiAgfSxcbiAgLy9UZXN0IFN1cnZleVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwiVsOkbGogc2lkYSBmw7ZyIGF0dCB0ZXN0YSBkZW46XCIsXG4gICAgc2hvd0ludmlzaWJsZUVsZW1lbnRzOiBcIlZpc2Egb3N5bmxpZ2EgZWxlbWVudFwiLFxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgYW5zd2VyY291bnR2YWxpZGF0b3I6IFwiYW5zd2VyIGNvdW50XCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwiZS1tYWlsXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCJleHByZXNzaW9uXCIsXG4gICAgbnVtZXJpY3ZhbGlkYXRvcjogXCJudW1lcmljXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwicmVnZXhcIixcbiAgICB0ZXh0dmFsaWRhdG9yOiBcInRleHRcIixcbiAgfSxcbiAgdHJpZ2dlcnM6IHtcbiAgICBjb21wbGV0ZXRyaWdnZXI6IFwiRW5rw6R0IHNsdXRmw7ZyZFwiLFxuICAgIHNldHZhbHVldHJpZ2dlcjogXCJTw6R0dCB2w6RyZGVcIixcbiAgICBjb3B5dmFsdWV0cmlnZ2VyOiBcIktvcGllcmEgdsOkcmRlXCIsXG4gICAgcnVuZXhwcmVzc2lvbnRyaWdnZXI6IFwiS8O2ciB1dHRyeWNrXCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwiw4RuZHJhIHN5bmxpZ2hldFwiLFxuICB9LFxuICAvL1Byb3BlcnRpZXNcbiAgcDoge1xuICAgIG5hbWU6IFwibmFtZVwiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcInRpdGxlXCIsXG4gICAgICB0aXRsZTogXCJMw6RtbmEgZGVuIHRvbSwgaWZhbGwgZGV0IMOkciBzYW1tYSBzb20gJ05hbWUnXCIsXG4gICAgfSxcblxuICAgIG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eTogXCJuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHlcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJxdWVzdGlvbnNPcmRlclwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCJtYXhUaW1lVG9GaW5pc2hcIixcblxuICAgIHZpc2libGU6IFwidmlzaWJsZVwiLFxuICAgIHZpc2libGVJZjogXCJ2aXNpYmxlSWZcIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwicXVlc3Rpb25UaXRsZUxvY2F0aW9uXCIsXG4gICAgZGVzY3JpcHRpb246IFwiZGVzY3JpcHRpb25cIixcbiAgICBzdGF0ZTogXCJzdGF0ZVwiLFxuICAgIGlzUmVxdWlyZWQ6IFwiaXNSZXF1aXJlZFwiLFxuICAgIGluZGVudDogXCJpbmRlbnRcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJyZXF1aXJlZEVycm9yVGV4dFwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwic3RhcnRXaXRoTmV3TGluZVwiLFxuICAgIGlubmVySW5kZW50OiBcImlubmVySW5kZW50XCIsXG4gICAgcGFnZTogXCJwYWdlXCIsXG5cbiAgICB3aWR0aDogXCJ3aWR0aFwiLFxuXG4gICAgY29tbWVudFRleHQ6IFwiY29tbWVudFRleHRcIixcbiAgICB2YWx1ZU5hbWU6IFwidmFsdWVOYW1lXCIsXG4gICAgZW5hYmxlSWY6IFwiZW5hYmxlSWZcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiZGVmYXVsdFZhbHVlXCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCJjb3JyZWN0QW5zd2VyXCIsXG4gICAgcmVhZE9ubHk6IFwicmVhZE9ubHlcIixcbiAgICB2YWxpZGF0b3JzOiBcInZhbGlkYXRvcnNcIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcInRpdGxlTG9jYXRpb25cIixcblxuICAgIGhhc0NvbW1lbnQ6IFwiaGFzQ29tbWVudFwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwiaGFzT3RoZXJcIixcbiAgICBjaG9pY2VzOiBcImNob2ljZXNcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiY2hvaWNlc09yZGVyXCIsXG4gICAgY2hvaWNlc0J5VXJsOiBcImNob2ljZXNCeVVybFwiLFxuICAgIG90aGVyVGV4dDogXCJvdGhlclRleHRcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCJvdGhlckVycm9yVGV4dFwiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcInN0b3JlT3RoZXJzQXNDb21tZW50XCIsXG5cbiAgICBsYWJlbDogXCJsYWJlbFwiLFxuICAgIHNob3dUaXRsZTogXCJzaG93VGl0bGVcIixcbiAgICB2YWx1ZVRydWU6IFwidmFsdWVUcnVlXCIsXG4gICAgdmFsdWVGYWxzZTogXCJ2YWx1ZUZhbHNlXCIsXG5cbiAgICBjb2xzOiBcImNvbHNcIixcbiAgICByb3dzOiBcInJvd3NcIixcblxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIm9wdGlvbnNDYXB0aW9uXCIsXG5cbiAgICBleHByZXNzaW9uOiBcImV4cHJlc3Npb25cIixcbiAgICBmb3JtYXQ6IFwiZm9ybWF0XCIsXG4gICAgZGlzcGxheVN0eWxlOiBcImRpc3BsYXlTdHlsZVwiLFxuICAgIGN1cnJlbmN5OiBcImN1cnJlbmN5XCIsXG4gICAgdXNlR3JvdXBpbmc6IFwidXNlR3JvdXBpbmdcIixcblxuICAgIHNob3dQcmV2aWV3OiBcInNob3dQcmV2aWV3XCIsXG4gICAgYWxsb3dNdWx0aXBsZTogXCJhbGxvd011bHRpcGxlXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiaW1hZ2VIZWlnaHRcIixcbiAgICBpbWFnZVdpZHRoOiBcImltYWdlV2lkdGhcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwic3RvcmVEYXRhQXNUZXh0XCIsXG4gICAgbWF4U2l6ZTogXCJtYXhTaXplXCIsXG5cbiAgICBodG1sOiBcImh0bWxcIixcblxuICAgIGNvbHVtbnM6IFwiY29sdW1uc1wiLFxuICAgIGNlbGxzOiBcImNlbGxzXCIsXG4gICAgaXNBbGxSb3dSZXF1aXJlZDogXCJpc0FsbFJvd1JlcXVpcmVkXCIsXG5cbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcImhvcml6b250YWxTY3JvbGxcIixcbiAgICBjZWxsVHlwZTogXCJjZWxsVHlwZVwiLFxuICAgIGNvbHVtbnNMYXlvdXQ6IFwiY29sdW1uc0xheW91dFwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcImNvbHVtbkNvbENvdW50XCIsXG4gICAgY29sdW1uTWluV2lkdGg6IFwiY29sdW1uTWluV2lkdGhcIixcblxuICAgIHJvd0NvdW50OiBcInJvd0NvdW50XCIsXG4gICAgbWluUm93Q291bnQ6IFwibWluUm93Q291bnRcIixcbiAgICBtYXhSb3dDb3VudDogXCJtYXhSb3dDb3VudFwiLFxuICAgIGtleU5hbWU6IFwia2V5TmFtZVwiLFxuICAgIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwia2V5RHVwbGljYXRpb25FcnJvclwiLFxuICAgIGNvbmZpcm1EZWxldGU6IFwiY29uZmlybURlbGV0ZVwiLFxuICAgIGNvbmZpcm1EZWxldGVUZXh0OiBcImNvbmZpcm1EZWxldGVUZXh0XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiYWRkUm93TG9jYXRpb25cIixcbiAgICBhZGRSb3dUZXh0OiBcImFkZFJvd1RleHRcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcInJlbW92ZVJvd1RleHRcIixcblxuICAgIGl0ZW1zOiBcIml0ZW1zXCIsXG4gICAgaXRlbVNpemU6IFwiaXRlbVNpemVcIixcbiAgICBjb2xDb3VudDogXCJjb2xDb3VudFwiLFxuXG4gICAgdGVtcGxhdGVUaXRsZTogXCJ0ZW1wbGF0ZVRpdGxlXCIsXG4gICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogXCJ0ZW1wbGF0ZURlc2NyaXB0aW9uXCIsXG4gICAgYWxsb3dBZGRQYW5lbDogXCJhbGxvd0FkZFBhbmVsXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJhbGxvd1JlbW92ZVBhbmVsXCIsXG4gICAgcGFuZWxDb3VudDogXCJwYW5lbENvdW50XCIsXG4gICAgbWluUGFuZWxDb3VudDogXCJtaW5QYW5lbENvdW50XCIsXG4gICAgbWF4UGFuZWxDb3VudDogXCJtYXhQYW5lbENvdW50XCIsXG4gICAgcGFuZWxzU3RhdGU6IFwicGFuZWxzU3RhdGVcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwicGFuZWxBZGRUZXh0XCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcInBhbmVsUmVtb3ZlVGV4dFwiLFxuICAgIHBhbmVsUHJldlRleHQ6IFwicGFuZWxQcmV2VGV4dFwiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwicGFuZWxOZXh0VGV4dFwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwic2hvd1F1ZXN0aW9uTnVtYmVyc1wiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwic2hvd1JhbmdlSW5Qcm9ncmVzc1wiLFxuICAgIHJlbmRlck1vZGU6IFwicmVuZGVyTW9kZVwiLFxuICAgIHRlbXBsYXRlVGl0bGVMb2NhdGlvbjogXCJ0ZW1wbGF0ZVRpdGxlTG9jYXRpb25cIixcblxuICAgIHJhdGVWYWx1ZXM6IFwicmF0ZVZhbHVlc1wiLFxuICAgIHJhdGVNaW46IFwicmF0ZU1pblwiLFxuICAgIHJhdGVNYXg6IFwicmF0ZU1heFwiLFxuICAgIHJhdGVTdGVwOiBcInJhdGVTdGVwXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIm1pblJhdGVEZXNjcmlwdGlvblwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJtYXhSYXRlRGVzY3JpcHRpb25cIixcblxuICAgIGlucHV0VHlwZTogXCJpbnB1dFR5cGVcIixcbiAgICBzaXplOiBcInNpemVcIixcblxuICAgIGxvY2FsZTogXCJsb2NhbGVcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljXCIsXG4gICAgY29tcGxldGVkSHRtbDogXCJjb21wbGV0ZWRIdG1sXCIsXG4gICAgY29tcGxldGVkQmVmb3JlSHRtbDogXCJjb21wbGV0ZWRCZWZvcmVIdG1sXCIsXG4gICAgbG9hZGluZ0h0bWw6IFwibG9hZGluZ0h0bWxcIixcbiAgICB0cmlnZ2VyczogXCJ0cmlnZ2Vyc1wiLFxuICAgIGNvb2tpZU5hbWU6IFwiY29va2llTmFtZVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcInNlbmRSZXN1bHRPblBhZ2VOZXh0XCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcInNob3dOYXZpZ2F0aW9uQnV0dG9uc1wiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcInNob3dQcmV2QnV0dG9uXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwic2hvd1BhZ2VUaXRsZXNcIixcbiAgICBzaG93Q29tcGxldGVkUGFnZTogXCJzaG93Q29tcGxldGVkUGFnZVwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJzaG93UGFnZU51bWJlcnNcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwicXVlc3Rpb25FcnJvckxvY2F0aW9uXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcInNob3dQcm9ncmVzc0JhclwiLFxuICAgIG1vZGU6IFwibW9kZVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwiZ29OZXh0UGFnZUF1dG9tYXRpY1wiLFxuICAgIGNoZWNrRXJyb3JzTW9kZTogXCJjaGVja0Vycm9yc01vZGVcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJjbGVhckludmlzaWJsZVZhbHVlc1wiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJzdGFydFN1cnZleVRleHRcIixcbiAgICBwYWdlUHJldlRleHQ6IFwicGFnZVByZXZUZXh0XCIsXG4gICAgcGFnZU5leHRUZXh0OiBcInBhZ2VOZXh0VGV4dFwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCJjb21wbGV0ZVRleHRcIixcbiAgICByZXF1aXJlZFRleHQ6IFwicmVxdWlyZWRUZXh0XCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcInF1ZXN0aW9uU3RhcnRJbmRleFwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCJxdWVzdGlvblRpdGxlVGVtcGxhdGVcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwiZmlyc3RQYWdlSXNTdGFydGVkXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcImlzU2luZ2xlUGFnZVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaFBhZ2U6IFwibWF4VGltZVRvRmluaXNoUGFnZVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcInNob3dUaW1lclBhbmVsXCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcInNob3dUaW1lclBhbmVsTW9kZVwiLFxuXG4gICAgZGVmYXVsdFBhbmVsVmFsdWU6IFwiZGVmYXVsdFBhbmVsVmFsdWVcIixcbiAgICBkZWZhdWx0Um93VmFsdWU6IFwiZGVmYXVsdFJvd1ZhbHVlXCIsXG4gICAgc2hvd05vbmVJdGVtOiBcImhhc05vbmVcIixcbiAgICBub25lVGV4dDogXCJub25lVGV4dFwiLFxuXG4gICAgdGV4dDogXCJ0ZXh0XCIsXG4gICAgbWluVmFsdWU6IFwibWluaW11bSB2YWx1ZVwiLFxuICAgIG1heFZhbHVlOiBcIm1heGltdW0gdmFsdWVcIixcbiAgICBtaW5MZW5ndGg6IFwibWludW11bSBsZW5ndGhcIixcbiAgICBtYXhMZW5ndGg6IFwibWF4aW11bSBsZW5ndGhcIixcbiAgICBhbGxvd0RpZ2l0czogXCJhbGxvdyBkaWdpdHNcIixcbiAgICBtaW5Db3VudDogXCJtaW51bXVtIGNvdW50XCIsXG4gICAgbWF4Q291bnQ6IFwibWF4aW11bSBjb3VudFwiLFxuICAgIHJlZ2V4OiBcInJlZ3VsYXIgZXhwcmVzc2lvblwiLFxuICB9LFxufTtcbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wic3ZcIl0gPSBzdlN0cmluZ3M7XG4iLCIvL1VuY29tbWVudCB0aGlzIGxpbmUgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlXG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24sIGRlZmF1bHRTdHJpbmdzIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG5leHBvcnQgdmFyIHRnU3RyaW5ncyA9IHtcbiAgLy8gc3RyaW5ncyBmb3Igc3VydmV5IHRlbXBsYXRlc1xuICBzdXJ2ZXk6IHtcbiAgICBlZGl0OiBcItCi0LDSk9C50LjRgCDQtNC+0LTQsNC9XCIsXG4gICAgZXh0ZXJuYWxIZWxwTGluazogXCLQgdC0INCz0LjRgNC40YTRgtCw0L3QuCDRgtCw0YjQutC40Lsg0LrQsNGA0LTQsNC90Lgg0YHQsNCy0L7Qu9C90L7QvNCw0rPQvlwiLFxuICAgIGV4dGVybmFsSGVscExpbmtVcmw6XG4gICAgICBcIkh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNIMnJ1OW9rSWNvb05aZnBJYnlxNHFRP3ZpZXdfYXM9c3Vic2NyaWJlclwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCLQmNC70YLQuNC80L7RgSwg0Y3Qu9C10LzQtdC90YLQuCDQtNCw0YDQutC+0YDQuNGA0L4g0LDQtyDQsdCw0YHRgtCw0Lgg0YfQsNC/INC60LDRiNC40LTQsCDQsdC40ZHRgNC10LQuXCIsXG4gICAgY29weTogXCLQndGD0YHRhdCw0LHQsNGA0LTQvtGA06Mg0LrQsNGA0LTQsNC9XCIsXG4gICAgYWRkVG9Ub29sYm94OiBcItCY0LvQvtCy0LAg0LrQsNGA0LTQsNC9INCx0LAg0LDRgdCx0L7QsdKz0L5cIixcbiAgICBkZWxldGVQYW5lbDogXCLQndC10YHRgiDQutCw0YDQtNCw0L3QuCDQsdCw0YHRgtCwXCIsXG4gICAgZGVsZXRlUXVlc3Rpb246IFwi0J3QtdGB0YIg0LrQsNGA0LTQsNC90Lgg0YHQsNCy0L7Qu1wiLFxuICAgIGNvbnZlcnRUbzogXCLQotCw0pPQudC40YAg0LTQvtC00LDQvdC4INGI0LDQutC7INCx0LBcIixcbiAgICBkcmFnOiBcItCa0LDRiNC40LTQsNC90Lgg0Y3Qu9C10LzQtdC90YJcIlxuICB9LFxuICAvLyBxdWVzdGlvblR5cGVzXG4gIHF0OiB7XG4gICAgZGVmYXVsdDogXCLQkdC+INC90L7QsdCw0ZHQvdOjXCIsXG4gICAgY2hlY2tib3g6IFwi0JjQvdGC0LjRhdC+0LHQuCDQsdC40YHRkdGAXCIsXG4gICAgY29tbWVudDogXCLQqNCw0YDSs1wiLFxuICAgIGltYWdlcGlja2VyOiBcItCY0L3RgtC40YXQvtCx0Lgg0YHRg9GA0LDRglwiLFxuICAgIGRyb3Bkb3duOiBcItCg06/QudGF0LDRgtC4INGC0LDRgNC60LjRiNOjXCIsXG4gICAgZmlsZTogXCLQkdC+0YDQutGD0L3QuNC4INGE0LDQudC70rPQvlwiLFxuICAgIEhUTUw6IFwiSFRNTFwiLFxuICAgIG1hdHJpeDogXCLQnNCw0YLRgNC40YHQsCAo0LjQvdGC0LjRhdC+0LHQuCDRgtCw0L3Ss9C+KVwiLFxuICAgIG1hdHJpeGRyb3Bkb3duOiBcItCc0LDRgtGA0LjRgdCwICjQuNC90YLQuNGF0L7QsdC4INCx0LjRgdGR0YApXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCLQnNCw0YLRgNC40YHQsCAo0YHQsNGC0YDSs9C+0Lgg0LTQuNC90LDQvNC40LrToylcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwi0JzQsNGC0L3Ss9C+0Lgg0LHQuNGB0ZHRgFwiLFxuICAgIHBhbmVsOiBcItCR0LDRgdGC0LAgKNCx0LDRgNC+0Lgg0LPRg9GA06/Ss9C4INGB0LDQstC+0LvSs9C+KVwiLFxuICAgIHBhbmVsZHluYW1pYzogXCLQkdCw0YHRgtCwICjQsdCw0YHRgtCw0rPQvtC4INC00LjQvdCw0LzQuNC606MpXCIsXG4gICAgcmFkaW9ncm91cDogXCLQmNC90YLQuNGF0L7QsdC4INGC0LDQvdKz0L5cIixcbiAgICByYXRpbmc6IFwi0KDQtdC50YLQuNC90LMgKNC80LjSm9GR0YEpXCIsXG4gICAgdGV4dDogXCLQktC+0YDQuNC00LrRg9C90LjQuCDQvNCw0YLQvdOjXCIsXG4gICAgYm9vbGVhbjogXCLSmtC40LzQvNCw0YLQuCDQsdGD0LvTo1wiLFxuICAgIGV4cHJlc3Npb246IFwi0JjRhNC+0LTQsCAo0YLQsNC90rPQviDQsdCw0YDQvtC4INGF0L7QvdC00LDQvSlcIixcbiAgICBmbG93UGFuZWw6IFwi0JHQsNGB0YLQsNC4INGB0LXQu9C+0LHQsFwiXG4gIH0sXG4gIC8vIFN0cmluZ3MgaW4gRWRpdG9yXG4gIGVkOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCLQkdC+INC90L7QsdCw0ZHQvdOjICh7MH0pXCIsXG4gICAgc3VydmV5OiBcItCh0LDQstC+0LvQvdC+0LzQsFwiLFxuICAgIHNldHRpbmdzOiBcItCi0LDQvdC30LjQvNC+0YLQuCDRgdCw0LLQvtC70L3QvtC80LBcIixcbiAgICBvcGplY3RQcm9wZXJ0aWVzSGVhZGVyOiBcItCY0LvQvtCy0LDQs9OjXCIsXG4gICAgc2hvd09iamVjdFByb3BlcnRpZXM6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0YXRg9GB0YPRgdC40Y/RgtKz0L7QuCDQvtCx0YrQtdC60YJcIixcbiAgICBoaWRlT2JqZWN0UHJvcGVydGllczogXCLQn9C40L3Ss9C+0L0g0LTQvtC00LDQvdC4INGF0YPRgdGD0YHQuNGP0YLSs9C+0Lgg0L7QsdGK0LXQutGCXCIsXG4gICAgZWRpdFN1cnZleTogXCLQmNCy0LDQtyDQvdCw0LzRg9C00LDQvdC4INGB0LDQstC+0LvQvdC+0LzQsFwiLFxuICAgIGFkZE5ld1BhZ2U6IFwi0KHQvtGF0YLQsNC90Lgg0YHQsNKz0LjRhNCw0Lgg0L3QsNCyXCIsXG4gICAgbW92ZVJpZ2h0OiBcItCR0LAg0YDQvtGB0YIg0YLQvtCxINC00L7QtNCw0L1cIixcbiAgICBtb3ZlTGVmdDogXCLQkdCwINGH0LDQvyDRgtC+0LEg0LTQvtC00LDQvVwiLFxuICAgIGRlbGV0ZVBhZ2U6IFwi0J3QtdGB0YIg0LrQsNGA0LTQsNC90Lgg0YHQsNKz0LjRhNCwXCIsXG4gICAgZWRpdFBhZ2U6IFwi0KLQsNKT0LnQuNGAINC00L7QtNCw0L3QuCDRgdCw0rPQuNGE0LBcIixcbiAgICBlZGl0OiBcItCi0LDSk9C50LjRgCDQtNC+0LTQsNC9XCIsXG4gICAgbmV3UGFnZU5hbWU6IFwi0YHQsNKz0LjRhNCwXCIsXG4gICAgbmV3UXVlc3Rpb25OYW1lOiBcItGB0LDQstC+0LtcIixcbiAgICBuZXdQYW5lbE5hbWU6IFwi0LHQsNGB0YLQsFwiLFxuICAgIG5ld1RleHRJdGVtTmFtZTogXCLQvNCw0YLQvVwiLFxuICAgIHRlc3RTdXJ2ZXk6IFwi0KHQsNC90rfQuNGI0Lgg0YHQsNCy0L7Qu9C90L7QvNCwXCIsXG4gICAgdGVzdFN1cnZleUFnYWluOiBcItCR0L7QtyDRj9C6INCx0L7RgCDRgdCw0L3St9C40Ygg0LPRg9C30LDRgNC+0L3QuNC00LDQvVwiLFxuICAgIHRlc3RTdXJ2ZXlXaWR0aDogXCLQlNCw0YDQvtC30LjQuCDRgdCw0LLQvtC70L3QvtC80LA6XCIsXG4gICAgbG9naWM6IFwi0JzQsNC90YLQuNKb0Lgg0YHQsNCy0L7Qu9C90L7QvNCwXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwi0KHQsNCx0YLQuCDRgdCw0LLQvtC70L3QvtC80LBcIixcbiAgICB0cmFuc2xhdGlvbjogXCLQotCw0YDSt9GD0LzQsFwiLFxuICAgIHNhdmVTdXJ2ZXk6IFwi0KHQsNCx0YLQuCDRgdCw0LLQvtC70L3QvtC80LBcIixcbiAgICBkZXNpZ25lcjogXCLQlNC40LTQsCDQsdCw0YDQvtC80LDQtNCw0L3QuCDQutC+0L3RgdGC0YDRg9C60YLQvtGAXCIsXG4gICAganNvbkVkaXRvcjogXCLQotCw0pPQudC40YDQutGD0L3QsNC60LggSlNPTlwiLFxuICAgIHVuZG86IFwi0JHQtdC60L7RgCDQutCw0YDQtNCw0L1cIixcbiAgICByZWRvOiBcItCi0LDQutGA0L7RgFwiLFxuICAgIG9wdGlvbnM6IFwi0KLQsNC90LfQuNC80L7RgtKz0L5cIixcbiAgICBnZW5lcmF0ZVZhbGlkSlNPTjogXCLQodC+0YXRgtCw0L3QuCBKU09OLdC4INC00YPRgNGD0YHRglwiLFxuICAgIGdlbmVyYXRlUmVhZGFibGVKU09OOiBcItCh0L7RhdGC0LDQvdC4IEpTT04t0Lgg0LzQtdGF0L7QvdC00LDQs9OjXCIsXG4gICAgdG9vbGJveDogXCLQkdCw0YHRgtCw0Lgg0LDRgdCx0L7QsdKz0L5cIixcbiAgICB0b29sYm94R2VuZXJhbENhdGVnb3J5OiBcItCj0LzRg9C806NcIixcbiAgICBkZWxTZWxPYmplY3Q6IFwi0J3QtdGB0YIg0LrQsNGA0LTQsNC90Lgg0L7QsdGK0LXQutGC0Lgg0LjQvdGC0LjRhdC+0LHRiNGD0LTQsFwiLFxuICAgIGVkaXRTZWxPYmplY3Q6IFwi0KLQsNKT0LnQuNGAINC00L7QtNCw0L3QuCDQvtCx0YrQtdC60YLQuCDQuNC90YLQuNGF0L7QsdGI0YPQtNCwXCIsXG4gICAgY29ycmVjdEpTT046IFwi0JjQu9GC0LjQvNC+0YEsIEpTT04t0YDQviDQtNGD0YDRg9GB0YIg0LrRg9C90LXQtC5cIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcItCd0LDRgtC40rfQsNC4INGC0LDRiNGF0LjRgTpcIixcbiAgICBzdXJ2ZXlSZXN1bHRzVGFibGU6IFwi0rLQsNC80YfRg9C9INK30LDQtNCy0LDQu1wiLFxuICAgIHN1cnZleVJlc3VsdHNKc29uOiBcItKy0LDQvNGH0YPQvSBKU09OXCIsXG4gICAgcmVzdWx0c1RpdGxlOiBcItCh0LDRgNC70LDQstKz0LDQuCDRgdCw0LLQvtC7XCIsXG4gICAgcmVzdWx0c05hbWU6IFwi0JzQsNKb0YHQsNC00Lgg0YHQsNCy0L7Qu1wiLFxuICAgIHJlc3VsdHNWYWx1ZTogXCLSmtC40LzQvNCw0YLQuCDSt9Cw0LLQvtCxXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCLSmtC40LzQvNCw0YLQuCDQvdC40YjQvtC90LTQvtC00LBcIixcbiAgICBtb2RpZmllZDogXCLQotCw0pPQudC40YDQtNC+0LTQsNGI0YPQtNCwXCIsXG4gICAgc2F2aW5nOiBcItCh0LDQsdGCXCIsXG4gICAgc2F2ZWQ6IFwi0KHQsNCx0YLRiNGD0LTQsFwiLFxuICAgIHNhdmVFcnJvcjogXCLQpdCw0YLQvtCz06MhINKa0LjQvNC80LDRgtC4INGC0LDSk9C50LjRgNC60YPQvdCw0Log0YHQsNCx0YIg0L3QsNGI0YPQtNCw0LDRgdGCLlwiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwi0JjQvdGC0LjRhdC+0LHQuCDQt9Cw0LHQvtC9INCx0LDRgNC+0Lgg0YLQsNGA0rfRg9C80LBcIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxTdHJpbmdzOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INKz0LDQvNCw0Lgg0YHQsNGC0YDSs9C+XCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsUGFnZXM6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0rPQsNC80LDQuCDRgdCw0rPQuNGE0LDSs9C+XCIsXG4gICAgdHJhbnNsYXRpb25Ob1N0cmluZ3M6IFwi0KHQsNGC0YDSs9C+INCx0LDRgNC+0Lgg0YLQsNGA0rfRg9C80LAg0LLRg9K30YPQtCDQvdCw0LTQvtGA0LDQvdC0LiDQmNC70YLQuNC80L7RgSwg0YTQuNC70YLRgNGA0L4g0YLQsNKT0LnQuNGAINC00LjSs9C10LQuXCIsXG4gICAgdHJhbnNsYXRpb25FeHBvcnRUb1NDVkJ1dHRvbjogXCLQrdC60YHQv9C+0YDRgiDQsdCwIENTVlwiLFxuICAgIHRyYW5zbGF0aW9uSW1wb3J0RnJvbVNDVkJ1dHRvbjogXCLQmNC80L/QvtGA0YIg0LDQtyBDU1ZcIixcbiAgICB0cmFuc2xhdGlvbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQ6IFwi0K/QutK30L7RjyDQutCw0YDQtNCw0L3QuCB7MH0g0LHQviDQu9C+0LrQsNC70Lgg0L3QvtCx0LDRkdC906NcIixcbiAgICBib2xkOiBcItKS0LDQstGBXCIsXG4gICAgaXRhbGljOiBcItKa0LDSt1wiLFxuICAgIHVuZGVybGluZTogXCLQl9C10YDRhdCw0YJcIixcbiAgICBmcEFkZFF1ZXN0aW9uOiBcItCY0LvQvtCy0LDQuCDRgdCw0LLQvtC7Li4uXCIsXG4gICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uSXRlbVRleHQ6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC9LCDQsNCz0LDRgDpcIixcbiAgICBsZzoge1xuICAgICAgLy9Mb2dpYyB0YWIgc3RyaW5nc1xuICAgICAgcGFnZV92aXNpYmlsaXR5TmFtZTogXCLQndCw0LzQvtC40YjQuCDRgdCw0rPQuNGE0LBcIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlOYW1lOiBcItCd0LDQvNC+0LjRiNC4INCx0LDRgdGC0LBcIixcbiAgICAgIHBhbmVsX2VuYWJsZU5hbWU6IFwi0JHQsNGB0YLQsCDQs9C40YDQvtC9L9C60YPRiNGC0LDQs9OjXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCLQndCw0LzQvtC40YjQuCDRgdCw0LLQvtC7XCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVOYW1lOiBcItCh0LDQstC+0Lsg0LPQuNGA0L7QvS/QutGD0YjRgtCw0LPTo1wiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZU5hbWU6IFwi0KHQsNCy0L7QuyDQuNGF0YLQuNGR0YDToyDQsNGB0YJcIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVOYW1lOiBcItCd0LDQt9Cw0YDRgdCw0L3St9OjINGC0LDQvNC+0Lwg0YjRg9C0XCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlTmFtZTogXCLQodCw0LHRgtC4INKb0LjQvNC80LDRgtC4INGB0LDQstC+0LtcIixcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlTmFtZTogXCLQndGD0YHRhdCw0LHQsNGA0LTQvtGA06Mg0LrQsNGA0LTQsNC90Lgg0pvQuNC80LzQsNGC0Lgg0YHQsNCy0L7Qu1wiLFxuICAgICAgdHJpZ2dlcl9za2lwTmFtZTogXCLQk9GD0LfQsNGI0YLQsNC9INCx0LAg0YHQsNCy0L7Qu1wiLFxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uTmFtZTogXCLQmNK30YDQviDQutCw0YDQtNCw0L3QuCDQuNGE0L7QtNCw0Lgg0LjRgdGC0LjRhNC+0LTQsNCx0LDRgNCw0L3QtNCwXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25OYW1lOiBcItCc0LDRgtC90Lgg0LjRgdGC0LjRhNC+0LTQsNCx0LDRgNCw0L3QtNCwICfQodCw0rPQuNGE0LDQuCDRgtCw0YjQsNC60LrRg9GA06MnXCIsXG5cbiAgICAgIHBhZ2VfdmlzaWJpbGl0eURlc2NyaXB0aW9uOlxuICAgICAgICBcItCh0LDSs9C40YTQsNGA0L4g0L3QsNC80L7RkdC9INC60LDRgNC00LDQvSwg0LDQs9Cw0YAg0LjRhNC+0LTQsNC4INC80LDQvdGC0LjSm9OjICd0cnVlJyDQsdCw0YDQs9Cw0YDQtNC+0L3QsNC0LiDQktCw0LPQsNGA0L3QsCDQvtC90YDQviDQvdC+0L3QsNC80L7RkdC9INC60LDRgNC00LDQvS5cIixcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQkdCw0YHRgtCw0YDQviDQvdCw0LzQvtGR0L0g0LrQsNGA0LTQsNC9LCDQsNCz0LDRgCDQuNGE0L7QtNCw0Lgg0LzQsNC90YLQuNKb06MgJ3RydWUnINCx0LDRgNCz0LDRgNC00L7QvdCw0LQuINCS0LDQs9Cw0YDQvdCwINC+0L3RgNC+INC90L7QvdCw0LzQvtGR0L0g0LrQsNGA0LTQsNC9LlwiLFxuICAgICAgcGFuZWxfZW5hYmxlRGVzY3JpcHRpb246XG4gICAgICAgIFwi0JHQsNGB0YLQsNGA0L4g0LLQsCDSs9Cw0LzQsNC4INGN0LvQtdC80LXQvdGC0rPQvtC4INC00L7RhdC40LvQuNC4INC+0L3RgNC+INC90LDQvNC+0ZHQvSDQutCw0YDQtNCw0L0sINCw0LPQsNGAINC40YTQvtC00LDQuCDQvNCw0L3RgtC40pvToyAndHJ1ZScg0LHQsNGA0LPQsNGA0LTQvtC90LDQtC4g0JLQsNCz0LDRgNC90LAg0L7QvdGA0L4g0L3QvtC90LDQvNC+0ZHQvSDQutCw0YDQtNCw0L0uXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwi0KHQsNCy0L7Qu9GA0L4g0L3QsNC80L7RkdC9INC60LDRgNC00LDQvSwg0LDQs9Cw0YAg0LjRhNC+0LTQsNC4INC80LDQvdGC0LjSm9OjICd0cnVlJyDQsdCw0YDQs9Cw0YDQtNC+0L3QsNC0LiDQktCw0LPQsNGA0L3QsCDQvtC90YDQviDQvdC+0L3QsNC80L7RkdC9INC60LDRgNC00LDQvS5cIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uOlxuICAgICAgICBcItCh0LDQstC+0LvRgNC+INCz0LjRgNC+0L0g0LrQsNGA0LTQsNC9LCDQsNCz0LDRgCDQuNGE0L7QtNCw0Lgg0LzQsNC90YLQuNKb06MgJ3RydWUnINCx0LDRgNCz0LDRgNC00L7QvdCw0LQuINCS0LDQs9Cw0YDQvdCwINC+0L3RgNC+INC90L7QvdCw0LzQvtGR0L0g0LrQsNGA0LTQsNC9LlwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZURlc2NyaXB0aW9uOlxuICAgICAgICBcItCh0LDQstC+0Lsg0rPQsNGC0LzToyDQvNC10YjQsNCy0LDQtCwg0LLQsNKb0YLQtSDQutC4INC40YTQvtC00LDQuCDQvNCw0L3RgtC40pvToyAndHJ1ZScg0LHQsNGA0LPQsNGA0LTQvtC90LDQtC5cIixcbiAgICAgIHRyaWdnZXJfY29tcGxldGVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQktCw0pvRgtC1LCDQutC4INC40YTQvtC00LDQuCDQvNCw0L3RgtC40pvToyAndHJ1ZScg0LHQsNGA0LPQsNGA0LTQvtC90LDQtCwg0L7QvSDQstCw0pvRgiDTryDSs9Cw0LzRh9GD0L0g0YLQsNC80L7QvCDRiNGD0LTQsCDSs9C40YHQvtCx0LjQtNCwINC80LXRiNCw0LLQsNC0INCy0LAg0LjRgdGC0LjRhNC+0LTQsNCx0LDRgCDRgdCw0rPQuNGE0LDQuCAn0KHQsNKz0LjRhNCw0Lgg0YLQsNGI0LDQutC60YPRgNOjJy3RgNC+INC80LXQsdC40L3QsNC0LlwiLFxuICAgICAgdHJpZ2dlcl9zZXR2YWx1ZURlc2NyaXB0aW9uOlxuICAgICAgICBcItCS0LDSm9GC0LUsINC60Lgg0pvQuNC80LzQsNGC0Lgg0YHQsNCy0L7Qu9Kz0L4sINC60Lgg0LTQsNGAINC40YTQvtC00LDQuCDQvNCw0L3RgtC40pvToyDQuNGB0YLQuNGE0L7QtNCwINC80LXRiNCw0LLQsNC0LCDRgtCw0pPQudC40YAg0LzQtdGI0LDQstCw0L3QtCDQstCwINC40YTQvtC00LDQuCDQvNCw0L3RgtC40pvToyAndHJ1ZScg0LHQsNGA0LzQtdCz0LDRgNC00L7QvdCw0LQsINC+0L0g0LPQvtKzINCx0LAg0YHQsNCy0L7Qu9C4INC40L3RgtC40YXQvtCx0YjRg9C00LAg0pvQuNC80LzQsNGCINGB0LDQsdGCINC80LXRiNCw0LLQsNC0LlwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQktCw0pvRgtC1LCDQutC4INKb0LjQvNC80LDRgtKz0L7QuCDRgdCw0LLQvtC70rPQviwg0LrQuCDQtNCw0YAg0LjRhNC+0LTQsNC4INC80LDQvdGC0LjSm9OjINC40YHRgtC40YTQvtC00LAg0LzQtdGI0LDQstCw0L3QtCwg0YLQsNKT0LnQuNGAINC80LXRkdCx0LDQvdC0INCy0LAg0LjRhNC+0LTQsCDSm9C40LzQvNCw0YLQuCAndHJ1ZScg0LHQsNGA0LzQtdCz0LDRgNC00L7QvdCw0LQsINC+0L0g0LPQvtKzINGP0Log0pvQuNC80LzQsNGC0Lgg0YHQsNCy0L7Qu9C4INC40L3RgtC40YXQvtCx0YjRg9C00LAg0LHQsCDQtNC40LPQsNGAINGB0LDQstC+0Lsg0L3Rg9GB0YXQsNCx0LDRgNC00L7RgNOjINC60LDRgNC00LAg0LzQtdGI0LDQstCw0LQuXCIsXG4gICAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjpcbiAgICAgICAgXCLQktCw0pvRgtC1LCDQutC4INC40YTQvtC00LDQuCDQvNCw0L3RgtC40pvToyAndHJ1ZScg0LHQsNGA0LzQtdCz0LDRgNC00L7QvdCw0LQsINC+0L0g0LPQvtKzINGB0LDQstC+0LvQvdC+0LzQsCDQsdCwINGB0LDQstC+0LvQuCDQuNC90YLQuNGF0L7QsdGI0YPQtNCwINGA0LDQstC+0L3QsCDQvNC10YjQsNCy0LDQtC5cIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbkRlc2NyaXB0aW9uOlxuICAgICAgICBcItCS0LDSm9GC0LUsINC60Lgg0LjRhNC+0LTQsNC4INC80LDQvdGC0LjSm9OjICd0cnVlJyDQsdCw0YDQvNC10LPQsNGA0LTQvtC90LDQtCwg0L7QvSDQs9C+0rMg0LjRhNC+0LTQsNC4INC40YHRgtC40YTQvtC00LDQsdCw0YAg0LjSt9GA0L4g0LzQtdGI0LDQstCw0LQuINCo0YPQvNC+LCDQsdC+INGF0L7Ss9C40YgsINC80LXRgtCw0LLQvtC90LXQtCDQvdCw0YLQuNK30LDQuCDQuNC9INC40YTQvtC00LDRgNC+INCx0LAg0YHQsNCy0L7Qu9C4INC40L3RgtC40YXQvtCx0YjRg9C00LAg0LHQsNGF0YjQtdC0LlwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uRGVzY3JpcHRpb246XG4gICAgICAgIFwi0JDQs9Cw0YAg0LjRhNC+0LTQsNC4INC80LDQvdGC0LjSm9OjICd0cnVlJyDQsdCw0YDQs9Cw0YDQtNC+0L3QsNC0LCDQvtC9INCz0L7SsyDQvNCw0YLQvSDQsdC+INC90L7QsdCw0ZHQvdOjINCx0LDRgNC+0LggJ9GB0LDSs9C40YTQsNC4INGC0LDRiNCw0LrQutGD0YDToycg0YLQsNKT0LnQuNGAINC80LXRiNCw0LLQsNC0INCx0LAg0LjRiNC+0YDQsNGI0YPQtNCwLlwiLFxuXG4gICAgICBpdGVtRXhwcmVzc2lvblRleHQ6IFwi0JLQsNKb0YLQtSwg0LrQuCDQuNGE0L7QtNCwOiAnezB9JyDQsdCw0YDQvNC10LPQsNGA0LTQvtC90LDQtCAndHJ1ZSc6XCIsIC8vezB9IC0gdGhlIGV4cHJlc3Npb25cbiAgICAgIHBhZ2VfdmlzaWJpbGl0eVRleHQ6IFwi0KHQsNKz0LjRhNCw0LggezB9LdGA0L4g0L3QsNC80L7RkdC9INC60LDRgNC00LDQvSBcIiwgLy97MH0gcGFnZSBuYW1lXG4gICAgICBwYW5lbF92aXNpYmlsaXR5VGV4dDogXCLQkdCw0YHRgtCw0LggezB9LdGA0L4g0L3QsNC80L7RkdC9INC60LDRgNC00LDQvVwiLCAvL3swfSBwYW5lbCBuYW1lXG4gICAgICBwYW5lbF9lbmFibGVUZXh0OiBcItCR0LDRgdGC0LDQuCB7MH0t0YDQviDQs9C40YDQvtC9INC60LDRgNC00LDQvVwiLCAvL3swfSBwYW5lbCBuYW1lXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5VGV4dDogXCLQodCw0LLQvtC70LggezB9LdGA0L4g0L3QsNC80L7RkdC9INC60LDRgNC00LDQvVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICBxdWVzdGlvbl9lbmFibGVUZXh0OiBcItCh0LDQstC+0LvQuCB7MH0t0YDQviDQvdCw0LzQvtGR0L0g0LrQsNGA0LTQsNC9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVUZXh0OiBcItCh0LDQstC+0LvQuCB7MH0t0YDQviDSs9Cw0YLQvNOjINC60LDRgNC00LDQvVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICB0cmlnZ2VyX2NvbXBsZXRlVGV4dDogXCLQodCw0LLQvtC70L3QvtC80LAg0rPQsNC80YfRg9C9INCw0L3St9C+0LzRiNGD0LTQsCDRgtCw0pPQudC40YAg0LzQtdGR0LHQsNC0XCIsXG4gICAgICB0cmlnZ2VyX3NldHZhbHVlVGV4dDogXCLQkdCwINGB0LDQstC+0LvQuCB7MH0g0pvQuNC80LzQsNGC0LggezF9LdGA0L4g0YHQsNCx0YIg0LrQsNGA0LTQsNC9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWUsIHsxfSBzZXRWYWx1ZVxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVUZXh0OiBcItCd0YPRgdGF0LDQsdCw0YDQtNC+0YDToyDQutCw0YDQtNCw0L0g0LHQsCDRgdCw0LLQvtC70LggezB9INKb0LjQvNC80LDRgiDQsNC3INGB0LDQstC+0LvQuCB7MX1cIiwgLy97MH0gYW5kIHsxfSBxdWVzdGlvbiBuYW1lc1xuICAgICAgdHJpZ2dlcl9za2lwVGV4dDogXCLQodCw0LLQvtC70L3QvtC80LAg0LzQtdCz0YPQt9Cw0YDQsNC0INCx0LAg0YHQsNCy0L7Qu9C4IHswfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MTogXCLQmNK30YDQviDQutCw0YDQtNCw0L3QuCDQuNGE0L7QtNCw0Lg6ICd7MH0nXCIsIC8vezB9IHRoZSBleHByZXNzaW9uXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MjogXCLQstCwINC90LDRgtC40rfQsNC4INC+0L3RgNC+INCx0LAg0YHQsNCy0L7Qu9C4IHswfSDQs9GD0LfQvtGI0YLQsNC9XCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvblRleHQ6XG4gICAgICAgIFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0LzQsNGC0L3QuCDQuNGB0YLQuNGE0L7QtNCw0LHQsNGAINC00LDRgCAn0KHQsNKz0LjRhNCw0Lgg0YLQsNGI0LDQutC60YPRgNOjJ1wiLFxuXG4gICAgICBleHByZXNzaW9uRWRpdG9yVGl0bGU6IFwi0KLQsNC90LfQuNC80L7RgtC4INC80LDQvdGC0LjSm9C4INC40YTQvtC00LBcIixcblxuICAgICAgZGVsZXRlT3BlcmF0aW9uOiBcItCd0LXRgdGCINC60LDRgNC00LDQvdC4INCw0LzQsNC70LjRkdGCXCIsXG4gICAgICBhZGROZXdPcGVyYXRpb246IFwi0JjQu9C+0LLQsCDQutCw0YDQtNCw0L3QuCDQsNC80LDQu9C40ZHRgtC4KNKz0L7QuCkg0L3QsNCyXCIsXG5cbiAgICAgIGV4cHJlc3Npb25JbnZhbGlkOlxuICAgICAgICBcItCY0YTQvtC00LDQuCDQvNCw0L3RgtC40pvToyDRhdC+0LvToyDRkSDQsdC10Y3RitGC0LjQsdC+0YAg0LzQtdCx0L7RiNCw0LQuINCY0LvRgtC40LzQvtGBLCDQuNGB0LvQvtKzINC60YPQvdC10LQuXCIsXG4gICAgICBub09wZXJhdGlvbkVycm9yOiBcItCY0LvRgtC40LzQvtGBLCDQsNKb0LDQu9Cw0L0g0Y/QuiDQsNC80LDQu9C40ZHRgtGA0L4g0LjQu9C+0LLQsCDQutGD0L3QtdC0LlwiLFxuICAgICAgb3BlcmF0aW9uSW52YWxpZDogXCLQmNC70YLQuNC80L7RgSwg0YXQsNGC0L7Qs9C40rPQvtGA0L4g0LTQsNGAINCw0LzQsNC70LjRkdGCKNKz0L4pLdC4INGF0YPQtCDQuNGB0LvQvtKzINC60YPQvdC10LQuXCJcbiAgICB9XG4gIH0sXG4gIC8vIFByb3BlcnR5IG5hbWVzIGluIHRhYmxlIGhlYWRlcnNcbiAgcGVsOiB7XG4gICAgaXNSZXF1aXJlZDogXCLSstCw0YLQvNOjP1wiXG4gIH0sXG4gIC8vIFByb3BlcnR5IEVkaXRvcnNcbiAgcGU6IHtcbiAgICBhcHBseTogXCLQodCw0LHRglwiLFxuICAgIG9rOiBcIk9LXCIsXG4gICAgc2F2ZTogXCLQodCw0LHRgiDQutCw0YDQtNCw0L1cIixcbiAgICBjYW5jZWw6IFwi0JHQtdC60L7RgCDQutCw0YDQtNCw0L1cIixcbiAgICByZXNldDogXCLQn9Cw0YDRgtC+0YTRgtCw0L1cIixcbiAgICBjbG9zZTogXCLQnNCw0YXQutCw0Lwg0LrQsNGA0LTQsNC9XCIsXG4gICAgZGVsZXRlOiBcItCd0LXRgdGCINC60LDRgNC00LDQvVwiLFxuICAgIGFkZDogXCLQmNC70L7QstCwINC60LDRgNC00LDQvVwiLFxuICAgIEFkZG5ldzogXCLQmNC70L7QstCwINC60LDRgNC00LDQvdC4INC90LDQslwiLFxuICAgIGFkZEl0ZW06IFwi0J/QsNGF0Ygg0LrRg9C90LXQtCwg0LHQsNGA0L7QuCDQuNC70L7QstCwINC60LDRgNC00LDQvdC4INGN0LvQtdC80LXQvdGCLi4uXCIsXG4gICAgYWRkT3RoZXI6IFwi0JTQuNCz0LDRgFwiLFxuICAgIGFkZFNlbGVjdEFsbDogXCLQmNC90YLQuNGF0L7QsSDQutCw0YDQtNCw0L3QuCDSs9Cw0LzQsNC4INC90YPSm9GC0LDSs9C+XCIsXG4gICAgYWRkTm9uZTogXCLSstC40YfTo1wiLFxuICAgIHJlbW92ZUFsbDogXCLSstCw0LzQsNGA0L4g0L3QtdGB0YIg0LrQsNGA0LTQsNC9XCIsXG4gICAgZWRpdDogXCLQotCw0pPQudC40YAg0LTQvtC00LDQvVwiLFxuICAgIGJhY2s6IFwi0JHQvtC30LPQsNGI0YIg0LHQtSDRgdCw0LHRglwiLFxuICAgIHNhdmVBbmRCYWNrOiBcItCh0LDQsdGCINC60LDRgNC00LDQvSDQstCwINCx0L7Qt9Cz0LDRiNGC0LDQvVwiLFxuICAgIGl0ZW1WYWx1ZUVkaXQ6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC9LCDQsNCz0LDRgFwiLFxuICAgIGVkaXRDaG9pY2VzOiBcItCi0LDSk9C50LjRgCDQtNC+0LTQsNC90Lgg0LjQvdGC0LjRhdC+0LFcIixcbiAgICBtb3ZlOiBcItK20L7QudC40LLQsNC30LrRg9C906NcIixcbiAgICBlbXB0eTogXCI80YXQvtC706M+XCIsXG4gICAgbm90RW1wdHk6IFwiPNGC0LDSk9C50LjRgCDQtNC+0LTQsNC90Lgg0pvQuNC80LzQsNGCPlwiLFxuICAgIGZhc3RFbnRyeTogXCLQlNCw0YDQvtC80LDQtNC4INGC0LXQt1wiLFxuICAgIGZvcm1FbnRyeTogXCLQpNC+0YDQvNCw0Lgg0LTQsNGA0L7QvNCw0LRcIixcbiAgICB0ZXN0U2VydmljZTogXCLQotC10YHRgtC4INGF0LjQt9C80LDRgtGA0LDRgdC+0L3To1wiLFxuICAgIGl0ZW1TZWxlY3RvckVtcHR5OiBcItCY0LvRgtC40LzQvtGBLCDRjdC70LXQvNC10L3RgtGA0L4g0LjQvdGC0LjRhdC+0LEg0LrRg9C90LXQtFwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uOiBcItCh0LDQstC+0LvRgNC+INC40L3RgtC40YXQvtCxINC60YPQvdC10LQgLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFnZTogXCLQodCw0rPQuNGE0LDRgNC+INC40L3RgtC40YXQvtCxINC60YPQvdC10LQgLi4uXCIsXG4gICAgY29uZGl0aW9uU2VsZWN0UGFuZWw6IFwi0JHQsNGB0YLQsNGA0L4g0LjQvdGC0LjRhdC+0LEg0LrRg9C90LXQtCAuLi5cIixcbiAgICBjb25kaXRpb25WYWx1ZVF1ZXN0aW9uVGl0bGU6IFwi0JjQu9GC0LjQvNC+0YEsINKb0LjQvNC80LDRgtGA0L4g0LLQvtGA0LjQtC/QuNC90YLQuNGF0L7QsSDQutGD0L3QtdC0XCIsXG4gICAgY29uZGl0aW9uQnV0dG9uQWRkOiBcItCY0LvQvtCy0LAg0LrQsNGA0LTQsNC9XCIsXG4gICAgY29uZGl0aW9uQnV0dG9uUmVwbGFjZTogXCLQmNCy0LDQtyDQutCw0YDQtNCw0L1cIixcbiAgICBjb25kaXRpb25IZWxwOlxuICAgICAgXCLQmNC70YLQuNC80L7RgSwg0LjRhNC+0LTQsNC4INC80LDQvdGC0LjSm9C40YDQviDQstC+0YDQuNC0INC60YPQvdC10LQuINCR0L7Rj9C0INKb0LjQvNC80LDRgtC4ICd0cnVlJyDQsdCw0YDQs9Cw0YDQtNC+0L3QsNC0LCDQsdCw0YDQvtC4INGB0LDQstC+0Lsv0YHQsNKz0LjRhNCwINC90L7QsdCw0ZHQvSDQsdC+0YjQsNC0LCDQvNC40YHQvtC7Oi4uIHvQodCw0LLQvtC7MX0gPSAn0pvQuNC80LzQsNGCMScg0ZEgKHvQodCw0LLQvtC7Mn0gKiB70KHQsNCy0L7QuzR9PiAyMCDQstCwIHvQodCw0LLQvtC7M30gPDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcItCY0LvRgtC40LzQvtGBLCDQuNGE0L7QtNCw0YDQviDQstC+0YDQuNC0INC60YPQvdC10LQuINCo0YPQvNC+INC80LXRgtCw0LLQvtC90LXQtCDSm9Cw0LLQt9Kz0L7QuCDSt9C40L3Qs9C40LvQsNGA0L4g0LjRgdGC0LjRhNC+0LTQsCDQutGD0L3QtdC0LCDQsdCw0YDQvtC4INC00LDRgdGC0YDQsNGB06Mg0LPQuNGA0LjRhNGC0LDQvSDQsdCwINKb0LjQvNC80LDRgtKz0L7QuCDRgdCw0LLQvtC7OiAne9Ch0LDQstC+0LsxfSArIHvQodCw0LLQvtC7Mn0nLCAnKHvQvdCw0YDRhX0qe9GI0YPQvNC+0YDQsH0pICogKDEwMCAtIHvRgtCw0YXRhNC40YR9KS5cIixcbiAgICBhY2VFZGl0b3JIZWxwOiBcItCi0YPQs9C80LDSs9C+0LggQ3RybCvQn9GA0L7QsdC10Lsg0L/QsNGF0Ygg0LrRg9C90LXQtCwg0LHQsNGA0L7QuCDQs9C40YDQuNGE0YLQsNC90Lgg0LjRiNC+0YDQsNKz0L7QuCDQutOv0LzQsNC606NcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCLQodCw0YLRgNKz0L7QuCDSt9C+0YDTo1wiLFxuICAgIGFjZUVkaXRvclBhbmVsVGl0bGU6IFwi0JHQsNGB0YLQsNC4INK30L7RgNOjXCIsXG4gICAgc2hvd01vcmU6IFwi0JHQsNGA0L7QuCDQs9C40YDQuNGE0YLQsNC90Lgg0LzQsNGK0LvRg9C80L7RgtC4INC80YPRiNCw0YXRhdCw0YHRgtCw0YAsINC40LvRgtC40LzQvtGBLCDQsdCwINC00LDRgdGC0YPRgNCw0LzQsNC7INCz0YPQt9Cw0YDQtdC0XCIsXG4gICAgY29uZGl0aW9uU2hvd01vcmVVcmw6XG4gICAgICBcIkh0dHBzOi8vc3VydmV5anMuaW8vRG9jdW1lbnRhdGlvbi9MaWJyYXJ5UGFyYW1ldGVyP2lkPVF1ZXN0aW9uwrZtZXRlcj12aXNpYmxlSWZcIixcbiAgICBhc3Npc3RhbnRUaXRsZTogXCLQodCw0LLQvtC70rPQvtC4INC00LDRgdGC0YDQsNGBOlwiLFxuICAgIGNlbGxzRW1wdHlSb3dzQ29sdW1uczogXCLQkdC+0Y/QtCDQsNKb0LDQu9Cw0L0g0Y/QuiDRgdCw0YLRgCDRkSDRgdGD0YLRg9C9INCx0L7RiNCw0LRcIixcblxuICAgIHByb3BlcnR5SXNFbXB0eTogXCLQmNC70YLQuNC80L7RgSwg0pvQuNC80LzQsNGC0YDQviDQstC+0YDQuNC0INC60YPQvdC10LRcIixcbiAgICBwcm9wZXJ0eU5hbWVJc05vdFVuaXF1ZTogXCLQm9GD0YLRhNCw0L0g0Y/QuiDQvdC+0LzQuCDQsdC10rPQsNC80YLQviDQstC+0YDQuNC0INC60YPQvdC10LRcIixcbiAgICBsaXN0SXNFbXB0eTogXCLSstC+0LvQsNGC0Lgg0L3QsNCyINC40LvQvtCy0LAg0LrRg9C90LXQtFwiLFxuICAgIGV4cHJlc3Npb25Jc0VtcHR5OiBcItCY0LHQvtGA0LDQuCDRhdC+0LvToyDQsNGB0YJcIixcbiAgICB2YWx1ZTogXCLSmtC40LzQvNCw0YJcIixcbiAgICB0ZXh0OiBcItCc0LDRgtC9XCIsXG4gICAgcm93aWQ6IFwiSUQt0Lgg0YHQsNGC0YBcIixcbiAgICBpbWFnZUxpbms6IFwi0JjRgdGC0LjQvdC+0LQg0LHQsCDRgdGD0YDQsNGCXCIsXG4gICAgY29sdW1uRWRpdDogXCLQmNCy0LDQtyDQtNC+0LTQsNC90Lgg0YHRg9GC0YPQvTogezB9XCIsXG4gICAgaXRlbUVkaXQ6IFwi0KLQsNKT0LnQuNGAINC00L7QtNCw0L3QuCDRjdC70LXQvNC10L3RgjogezB9XCIsXG5cbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCLQoNC+0rNcIixcbiAgICB2YWx1ZU5hbWU6IFwi0J3QvtC80Lgg0L3Rg9Kb0YLQsFwiLFxuICAgIHRpdGxlTmFtZTogXCLQodCw0YDQu9Cw0LLSs9Cw0Lgg0L3Rg9Kb0YLQsFwiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwi0KHQsNGA0LvQsNCy0rPQsCDQstC+0YDQuNC0INC60YPQvdC10LRcIixcbiAgICBzdXJ2ZXlUaXRsZVBsYWNlaG9sZGVyOiBcItCh0LDRgNC70LDQstKz0LDQuCDQv9GD0YDRgdC40YjRgNC+INCy0L7RgNC40LQg0LrRg9C90LXQtFwiLFxuICAgIHBhZ2VUaXRsZVBsYWNlaG9sZGVyOiBcItCh0LDRgNC70LDQstKz0LDQuCDRgdCw0rPQuNGE0LDRgNC+INCy0L7RgNC40LQg0LrRg9C90LXQtFwiLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwi0KLQsNCy0YHQuNGE0YDQviDQstC+0YDQuNC0INC60YPQvdC10LRcIixcbiAgICBzdXJ2ZXlEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcItCi0LDQstGB0LjRhNC4INC/0YPRgNGB0LjRiNGA0L4g0LLQvtGA0LjQtCDQutGD0L3QtdC0XCIsXG4gICAgcGFnZURlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IFwi0KLQsNCy0YHQuNGE0Lgg0YHQsNKz0LjRhNCw0YDQviDQstC+0YDQuNC0INC60YPQvdC10LRcIixcblxuICAgIHNob3dPdGhlckl0ZW06IFwi0J3Rg9Kb0YLQsNC4ICfQlNC40LPQsNGAJyDQstGD0rfRg9C0INCw0YHRglwiLFxuICAgIG90aGVyVGV4dDogXCLQnNCw0L3RgtC4INC90YPSm9GC0LDQuCAn0JTQuNCz0LDRgCdcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwi0K/Qs9C+0L0g0L3Rg9Kb0YLQsCDQstGD0rfRg9C0INC90LDQtNC+0YDQsNC0XCIsXG4gICAgbm9uZVRleHQ6IFwi0JzQsNGC0L3QuCDQvdGD0pvRgtCw0LggJ9Ky0LjSt9OjJ1wiLFxuICAgIGhhc1NlbGVjdEFsbDogXCLSstCw0LzQsNC4INC90YPSm9GC0LDSs9C+0YDQviDQuNC90YLQuNGF0L7QsSDQutCw0YDQtNCw0L1cIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcItCc0LDRgtC90Lgg0L3Rg9Kb0YLQsCAn0rLQsNC80LDQuCDQvdGD0pvRgtCw0rPQvtGA0L4g0LjQvdGC0LjRhdC+0LEg0LrQsNGA0LTQsNC9J1wiLFxuICAgIGNob2ljZXNNaW46IFwi0prQuNC80LzQsNGC0Lgg0LzQuNC90LjQvNCw0LvToyDQsdCw0YDQvtC4INGN0LvQtdC80LXQvdGC0rPQvtC4INGB0L7RhdGC0LDRiNGD0LTQsCDQsdC+INGA0L7Ss9C4INCw0LLRgtC+0LzQsNGC06NcIixcbiAgICBjaG9pY2VzTWF4OiBcItKa0LjQvNC80LDRgtC4INC80LDQutGB0LjQvNCw0LvToyDQsdCw0YDQvtC4INGN0LvQtdC80LXQvdGC0rPQvtC4INGB0L7RhdGC0LDRiNGD0LTQsCDQsdC+INGA0L7Ss9C4INCw0LLRgtC+0LzQsNGC06NcIixcbiAgICBjaG9pY2VzU3RlcDogXCLQpNCw0YDSm9C40Y/RgiDQsdCw0LnQvdC4INGN0LvQtdC80LXQvdGC0rPQvtC4INGB0L7RhdGC0LDRiNGD0LTQsCDQsdC+INGA0L7Ss9C4INCw0LLRgtC+0LzQsNGC06NcIixcbiAgICBuYW1lOiBcItCd0L7QvFwiLFxuICAgIHRpdGxlOiBcItCh0LDRgNC70LDQstKz0LBcIixcbiAgICBjZWxsVHlwZTogXCLQndCw0LzQtNGD0Lgg0LrQsNGC0LDQutGH0LBcIixcbiAgICBDb2xDb3VudDogXCLQqNGD0LzQvtGA0LDQuCDRgdGD0YLRg9C90rPQvlwiLFxuICAgIGNob2ljZXNPcmRlcjogXCLQmNC90YLQuNGF0L7QsSDQutCw0YDQtNCw0L3QuCDRhNCw0YDQvNC+0LjRiNC4INC40L3RgtC40YXQvtCxXCIsXG4gICAgdmlzaWJsZTogXCLQndC40YjQvtC9INC00L7QtNCw0L0/XCIsXG4gICAgaXNSZXF1aXJlZDogXCLSstCw0YLQvNOjP1wiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwi0rLQsNC80LDQuCDRgdCw0YLRgNKz0L4g0LHQsNGA0L7QuCDQv9GD0YDQutGD0L3ToyDSs9Cw0YLQvNOjINC80LXQsdC+0YjQsNC0XCIsXG4gICAgcmVxdWlyZWRFcnJvclRleHQ6IFwi0JjQvSDQvNCw0LnQtNC+0L0g0LHQsNGA0L4g0L/Rg9GA0LrRg9C906Mg0rPQsNGC0LzQuNGB0YJcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcItCQ0Lcg0YHQsNGC0YDQuCDQvdCw0LIg0YHQsNGAINC60LDRgNC00LDQvT9cIixcbiAgICByb3dzOiBcItCo0YPQvNC+0YDQsNC4INGB0LDRgtGA0rPQvlwiLFxuICAgIFBsYWNlSG9sZGVyOiBcItK20L7QudC00L7RgFwiLFxuICAgIHNob3dQcmV2aWV3OiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INC/0LXRiNC90LDQvNC+0LjRiD9cIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwi0J3QuNCz0L7SsyDQtNC+0YjRgtCw0L3QuCDQtNC+0YXQuNC70Lgg0YTQsNC50Lsg0LTQsNGAINGE0L7RgNC80LDRgtC4IEpTT04g0rPQsNC80YfRg9C9INC80LDRgtC9XCIsXG4gICAgTWF4U2l6ZTogXCLQkNC90LTQvtC30LDQuCDQvNCw0LrRgdC40LzQsNC70LjQuCDRhNCw0LnQuyDQtNCw0YAg0LHQsNC50YJcIixcbiAgICBJbWFnZUhlaWdodDogXCLQkdCw0LvQsNC90LTQuNC4INGB0YPRgNCw0YJcIixcbiAgICBJbWFnZVdpZHRoOiBcItCU0LDRgNC+0LfQuNC4INGB0YPRgNCw0YJcIixcbiAgICByb3dDb3VudDogXCLQqNGD0LzQvtGA0LDQuCDRgdCw0YLRgNKz0L5cIixcbiAgICBjb2x1bW5MYXlvdXQ6IFwi0JzQsNC60LXRgtC4INGB0YPRgtGD0L3Ss9C+XCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwi0JjQu9C+0LLQsCDQutCw0YDQtNCw0L3QuCDSt9C+0LnQuCDRgtGD0LPQvNCw0Lgg0YHQsNGC0YBcIixcbiAgICBhZGRSb3dUZXh0OiBcItCY0LvQvtCy0LAg0LrQsNGA0LTQsNC90Lgg0LzQsNGC0L3QuCDRgtGD0LPQvNCw0Lgg0YHQsNGC0YBcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcItCd0LXRgdGCINC60LDRgNC00LDQvdC4INGC0YPQs9C80LDQuCDQvNCw0YLQvVwiLFxuICAgIHJhdGVNaW46IFwi0KDQtdC50YLQuNC90LPQuCDQvNC40L3QuNC80LDQu9OjXCIsXG4gICAgcmF0ZU1heDogXCLQoNC10LnRgtC40L3Qs9C4INC80LDQutGB0LjQvNCw0LvTo1wiLFxuICAgIHJhdGVTdGVwOiBcItKa0LDQtNCw0LzQuCDRgNC10LnRgtC40L3Qs1wiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCLQnNCw0YrQu9GD0LzQvtGCINCx0LDRgNC+0Lgg0YDQtdC50YLQuNC90LPQuCDQvNC40L3QuNC80LDQu9OjXCIsXG4gICAgbWF4UmF0ZURlc2NyaXB0aW9uOiBcItCc0LDRitC70YPQvNC+0YIg0LHQsNGA0L7QuCDRgNC10LnRgtC40L3Qs9C4INC80LDQutGB0LjQvNCw0LvTo1wiLFxuICAgIGlucHV0VHlwZTogXCLQndCw0LzRg9C00Lgg0LTQvtGF0LjQu9C60YPQvdOjXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwi0KLQsNC90LfQuNC80L7RgtKz0L7QuCDQuNC80LfQvlwiLFxuICAgIERlZmF1bHRWYWx1ZTogXCLSmtC40LzQvNCw0YLQuCDQvdC+0LHQsNGR0L1cIixcbiAgICBjZWxsc0RlZmF1bHRSb3c6IFwi0JzQsNGC0L3QuCDQvdC+0LHQsNGR0L3QuCDQutCw0YLQsNC6XCIsXG5cbiAgICBzdXJ2ZXlFZGl0b3JUaXRsZTogXCLQotCw0L3Qt9C40LzQvtGC0Lgg0YHQsNCy0L7Qu9C90L7QvNCwXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcItCi0LDSk9C50LjRgCDQtNC+0LTQsNC90Lg6IHswfVwiLFxuXG4gICAgbWF4TGVuZ3RoOiBcItCo0YPQvNC+0YDQsNC4INC80LDQutGB0LjQvNCw0LvTo1wiLFxuICAgIGJ1aWxkRXhwcmVzc2lvbjogXCLQodC+0YXRgtCw0L1cIixcbiAgICBlZGl0RXhwcmVzc2lvbjogXCLQotCw0rPRgNC40YAg0LrRg9C90LXQtFwiLFxuICAgIGFuZDogXCLQktCQXCIsXG4gICAgb3I6IFwi0IFcIixcbiAgICByZW1vdmU6IFwi0rbQvtC50LjQstCw0LfQutGD0L3To1wiLFxuICAgIGFkZENvbmRpdGlvbjogXCLRiNCw0YDRgiDQuNC70L7QstCwINC60YPQvdC10LRcIixcblxuICAgIC8vc3VydmV5XG4gICAgc2hvd1RpdGxlOiBcItCd0LjRiNC+0L0v0L/QuNC90rPQvtC9INC60LDRgNC00LDQvdC4INGB0LDRgNC70LDQstKz0LBcIixcbiAgICBsb2NhbGU6IFwi0JfQsNCx0L7QvSDQsdCwINC90L7QsdCw0ZHQvVwiLFxuICAgIHNpbXVsYXRvcjogXCLQotCw0rfSs9C40LfQvtGC0YDQviDQuNC90YLQuNGF0L7QsSDQutGD0L3QtdC0XCIsXG4gICAgbGFuZHNjYXBlT3JpZW50YXRpb246IFwi0JzQsNC90LfQsNGA0LDQstOjXCIsXG4gICAgbW9kZTogXCLQndCw0LzRg9C0ICjRgtCw0pPQudC40YDQvtGCL9C90LDQvNC+0LjRiClcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCLQotC+0LfQsCDQutCw0YDQtNCw0L3QuCDSm9C40LzQvNCw0YLSs9C+0Lgg0L3QvtGR0LDQvVwiLFxuICAgIGNvb2tpZU5hbWU6IFwi0J3QvtC80LggQ29va2llICjQutGD0YjRgtCw0L3QuCDRgtCw0LrRgNC+0YDQsNC9INC70L7QutCw0LvToyDQs9GD0LfQsNGI0YLQsNC90Lgg0YHQsNCy0L7Qu9C90L7QvNCwKVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INC90LDRgtC40rfQsNC4INGB0LDQstC+0LvQvdC+0LzQsCDQtNCw0YAg0YHQsNKz0LjRhNCw0Lgg0L3QsNC30LTQuNC6XCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwi0J3QuNCz0L7SsyDQtNC+0YjRgtCw0L3QuCDSm9C40LzQvNCw0YLQuCAn0JTQuNCz0LDRgCcg0LTQsNGAINC80LDQudC00L7QvdC4INCw0LvQvtKz0LjQtNCwXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0YHQsNGA0LvQsNCy0rPQsNC4INGB0LDSs9C40YTQsFwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCLQndC40YjQvtC9INC00L7QtNCw0L3QuCDRgNCw0pvQsNC80Lgg0YHQsNKz0LjRhNCwXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcItCc0LDRgtC9INC00LDRgCDRgtGD0LPQvNCw0LggJ9Ch0LDSs9C40YTQsNC4INC/0LXRiNGC0LDRgNCwJ1wiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCLQnNCw0YLQvSDQtNCw0YAg0YLRg9Cz0LzQsNC4ICfQodCw0rPQuNGE0LDQuCDQvtGP0L3QtNCwJ1wiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLQnNCw0YLQvSDQtNCw0YAg0YLRg9Cz0LzQsNC4ICfQkNC90rfQvtC8INC00L7QtNCw0L0nXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcItCc0LDRgtC9INC00LDRgCDRgtGD0LPQvNCw0LggJ9Ch0LDRgCDQutCw0YDQtNCw0L0nXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INGC0YPQs9C80LDSs9C+0Lgg0L3QvtCy0LHQsNGA06MgKNC90L7QstCx0LDRgNC40Lgg0L3QvtCx0LDRkdC9KVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INGC0YPQs9C80LDQuCAn0KHQsNKz0LjRhNCw0Lgg0L/QtdGI0YLQsNGA0LAnICjQuNGB0YLQuNGE0L7QtNCw0LHQsNGAINC80LXRgtCw0LLQvtC90LDQtCDQsdCwINGB0LDSs9C40YTQsNC4INC/0LXRiNGC0LDRgNCwINCx0LDRgNCz0LDRgNC00LDQtClcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi0KHQsNKz0LjRhNCw0Lgg0Y/QutGD0LzQuCDRgdCw0LLQvtC70L3QvtC80LAg0YHQsNKz0LjRhNCw0Lgg0YHQsNGA0YjQsNCy0LDQvdC00LAg0LzQtdCx0L7RiNCw0LQuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0YHQsNKz0LjRhNCwINCx0L4g0LzQsNGC0L0g0LTQsNGAINCw0L3St9C+0LzQuCDQv9GD0YDQutGD0L3ToyAoSFRNTC3QuCDRgdCw0rPQuNGE0LDQuCDQsNC90rfQvtC8KVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwi0JPRg9C30LDRgNC40Ygg0LHQsCDRgdCw0rPQuNGE0LDQuCDQvtGP0L3QtNCwINCx0LAg0YDQvtKz0Lgg0LDQstGC0L7QvNCw0YLToyDQtNCw0YAg0rPQvtC70LDRgtC4INC/0YPRgNC60YPQvdC40Lgg0rPQsNC80LDQuCDRgdCw0LLQvtC70rPQvlwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCLQndC40YjQvtC9INC00L7QtNCw0L3QuCDQv9C10YjRgNCw0LLQuNC4INC/0YPRgNC60YPQvdOjXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcItK20L7QudCz0LjRgNGI0LDQstC40Lgg0YHQsNGA0LvQsNCy0rPQsNC4INGB0LDQstC+0LtcIixcbiAgICByZXF1aXJlZFRleHQ6IFwi0JDQu9C+0LzQsNGCINCx0LDRgNC+0Lgg0YHQsNCy0L7Qu9C4INKz0LDRgtC806NcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwi0JjQvdC00LXQutGB0Lgg0YHQsNGA0YjQsNCy0LjQuCDRgdCw0LLQvtC7ICgxLCAyINGRICdBJywgJ9CwJylcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INC90L7QvNC10YDQuCDRgdCw0LLQvtC7XCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcItCd0LDQvNGD0L3QsNC4INC90L7QvNC4INGB0LDQstC+0LvQvdC+0LzQsCwg0rPQsNC80YfRg9C9INC90L7QsdCw0ZHQvToge9C80LDRgtC90YDQvn0ge9GC0LDQu9Cw0LF9IHvQvdCw0LzQtdC60YPQvdCw0LR9LlwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCLSttC+0LnQs9C40YDQutGD0L3QuNC4INGF0LDRgtC+0LPQuNC4INGB0LDQstC+0LvQvdC+0LzQsFwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCLQk9GD0LfQsNGA0LjRiCDQsdCwINGB0LDQstC+0LvQuCDRj9C60YPQvCDQtNCw0YAg0LjQstCw0LfQutGD0L3QuNC4INGB0LDSs9C40YTQsFwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcItCc0YPRgNCw0YLRgtCw0LHRgdC+0LfQuNC4INGN0LvQtdC80LXQvdGC0rPQviDQtNCw0YAg0YHQsNKz0LjRhNCwXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcItCS0LDSm9GC0Lgg0LzQsNC60YHQuNC80LDQu9OjINC00LDRgCDRgdC+0L3QuNGP0rPQviwg0LHQsNGA0L7QuCDQv9GD0YAg0LrQsNGA0LTQsNC90Lgg0YHQsNCy0L7Qu9C90L7QvNCwXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCLQktCw0pvRgtC4INC80LDQutGB0LjQvNCw0LvToyDQtNCw0YAg0YHQvtC90LjRj9Kz0L4sINCx0LDRgNC+0Lgg0L/Rg9GAINC60LDRgNC00LDQvdC4INGB0LDSs9C40YTQsNC4INGB0LDQstC+0LvQvdC+0LzQsFwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INCx0LDRgdGC0LDQuCDQstCw0pvRgtGB0LDQvdK3XCIsXG4gICAgc2hvd1RpbWVyUGFuZWxNb2RlOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INKz0L7Qu9Cw0YLQuCDQsdCw0YHRgtCw0Lgg0YLQsNC50LzQtdGAXCIsXG4gICAgUmVuZGVyTW9kZTogXCLSstC+0LvQsNGC0Lgg0LLQuNC30YPQsNC70LjQt9Cw0YLRgdC40Y9cIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcItCY0rfQvtC30LDRgiDQtNC+0LTQsNC9INCx0LAg0LjQu9C+0LLQsCDQutCw0YDQtNCw0L3QuCDQsdCw0YHRgtCw0rPQvlwiLFxuICAgIGFsbG93UmVtb3ZlUGFuZWw6IFwi0JjSt9C+0LfQsNGCINC00L7QtNCw0L0g0LHQsCDQvdC10YHRgiDQutCw0YDQtNCw0L3QuCDQsdCw0YHRgtCw0rPQvlwiLFxuICAgIHBhbmVsQWRkVGV4dDogXCLQmNC70L7QstCw0Lgg0LzQsNGC0L0g0LHQsCDQsdCw0YHRgtCwXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcItCd0LXRgdGCINC60LDRgNC00LDQvdC4INC80LDRgtC9INCx0LAg0LHQsNGB0YLQsFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCLQndC40YjQvtC9INC00L7QtNCw0L3QuCDSs9Cw0LzQsNC4INGN0LvQtdC80LXQvdGC0rPQviDQtNCw0YAg0Y/QuiDRgdCw0rPQuNGE0LBcIixcbiAgICBIVE1MOiBcIkhUTUxcIixcbiAgICBleHByZXNzaW9uOiBcItCY0YTQvtC00LBcIixcblxuICAgIG1pblZhbHVlOiBcItKa0LjQvNC80LDRgtC4INC80LjQvdC40LzQsNC706NcIixcbiAgICBtYXhWYWx1ZTogXCLSmtC40LzQvNCw0YLQuCDQvNCw0LrRgdC40LzQsNC706NcIixcbiAgICBtSU5MRU5HVEg6IFwi0JTQsNGA0L7Qt9C40Lgg0LzQuNC90LjQvNCw0LvTo1wiLFxuICAgIGFsbG93RGlnaXRzOiBcItCY0rfQvtC30LDRgiDQtNC+0LTQsNC90Lgg0YDQsNKb0LDQvNKz0L5cIixcbiAgICBtaW5Db3VudDogXCLQqNGD0LzQvtGA0LDQuCDQvNC40L3QuNC80LDQu9OjXCIsXG4gICAgbWF4Q291bnQ6IFwi0KjRg9C80L7RgNCw0Lgg0LzQsNC60YHQuNC80LDQu9OjXCIsXG4gICAgcmVnZXg6IFwi0JjRhNC+0LTQsNC4INGA0LXQs9GD0LvRj9GA06NcIixcblxuICAgIHRvdGFsVGV4dDogXCLQotC10LrRgdGC0Lgg0YPQvNGD0LzTo1wiLFxuICAgIHRvdGFsVHlwZTogXCLQndCw0LzRg9C00Lgg0YPQvNGD0LzTo1wiLFxuICAgIHRvdGFsRXhwcmVzc2lvbjogXCLQmNGE0L7QtNCw0Lgg0YPQvNGD0LzTo1wiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcItCj0YHQu9GD0LHQuCDQvdCw0LzQvtC40YjQuCDRg9C80YPQvNOjXCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCLQkNGB0YrQvtGA0Lgg0YPQvNGD0LzTo1wiLFxuICAgIHRvdGFsRm9ybWF0OiBcItCd0LDQvNGD0LTQuCDRg9C80YPQvNOjXCIsXG4gICAgLy8gSGVhZGVyICBhZG9ybmVyXG4gICAgbG9nb1Bvc2l0aW9uOiBcItK20L7QudCz0LjRgNGI0LDQstC40Lgg0LvQvtCz0L7RgtC40L9cIixcbiAgICBhZGRMb2dvOiBcItCY0LvQvtCy0LDQuCDQu9C+0LPQvtGC0LjQvy4uLlwiLFxuICAgIGNoYW5nZUxvZ286IFwi0KLQsNKT0LnQuNGAINC00L7QtNCw0L3QuCDQu9C+0LPQvtGC0LjQvy4uLlwiLFxuICAgIGxvZ29Qb3NpdGlvbnM6IHtcbiAgICAgIG5vbmU6IFwi0KDQsNC30LzQtdGB0YLQuNGC0Ywg0LvQvtCz0L7RgtC40L9cIixcbiAgICAgIGxlZnQ6IFwi0JDQtyDRh9Cw0L9cIixcbiAgICAgIHJpZ2h0OiBcItCU0LDRgCDRgtCw0YDQsNGE0Lgg0YDQvtGB0YJcIixcbiAgICAgIHRvcDogXCLQkNC3INCx0L7Qu9C+XCIsXG4gICAgICBib3R0b206IFwi0JDQtyDQv9C+0ZHQvVwiXG4gICAgfSxcblxuICAgIHRhYnM6IHtcbiAgICAgIGdlbmVyYWw6IFwi0KPQvNGD0LzTo1wiLFxuICAgICAgZmlsZU9wdGlvbnM6IFwi0KLQsNC90LfQuNC80L7RgtKz0L5cIixcbiAgICAgIEhUTUw6IFwi0JjQstCw0LfQutGD0L3QsNC60LggSFRNTFwiLFxuICAgICAgY29sdW1uczogXCLQodGD0YLRg9C90rPQvlwiLFxuICAgICAgcm93czogXCLQodCw0YLRgNKz0L5cIixcbiAgICAgIGNob2ljZXM6IFwi0JjQvdGC0LjRhdC+0LFcIixcbiAgICAgIGl0ZW1zOiBcItCt0LvQtdC80LXQvdGC0rPQvlwiLFxuICAgICAgdmlzaWJsZUlmOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvSwg0LDQs9Cw0YBcIixcbiAgICAgIGVuYWJsZUlmOiBcItCU0LDRgdGC0YDQsNGBINCw0YHRgiwg0LDQs9Cw0YBcIixcbiAgICAgIHJlcXVpcmVkSWY6IFwi0rLQsNGC0LzToyDQsdCw0YDQvtC4INC/0YPRgNC60YPQvdOjLCDQsNCz0LDRgFwiLFxuICAgICAgcmF0ZVZhbHVlczogXCLQkdCw0rPQvtC00LjSs9C40Lgg0pvQuNC80LzQsNGC0LHQsNKz0L7QuCDRgdCw0LLQvtC7XCIsXG4gICAgICBjaG9pY2VzQnlVcmw6IFwi0JjQvdGC0LjRhdC+0LEg0LDQtyDQuNC90YLQtdGA0L3QtdGCXCIsXG4gICAgICBtYXRyaXhDaG9pY2VzOiBcItCY0L3RgtC40YXQvtCx0Lgg0L3QvtCx0LDRkdC9XCIsXG4gICAgICBtdWx0aXBsZVRleHRJdGVtczogXCLQlNC+0YXQuNC70LrRg9C90LjQuCDRj9C60YfQsNC90LQg0LzQsNC50LTQvtC90YfQsNKz0L7QuCDQvNCw0YLQvdOjXCIsXG4gICAgICB2YWxpZGF0b3JzOiBcItCS0LDQu9C40LTQsNGC0L7RgNKz0L5cIixcbiAgICAgIG5hdmlnYXRpb246IFwi0J3QvtCy0LHQsNGA06NcIixcbiAgICAgIHF1ZXN0aW9uOiBcItCh0LDQstC+0LtcIixcbiAgICAgIGNvbXBsZXRlZEh0bWw6IFwiSFRNTC3QuCDRgdCw0rPQuNGE0LDQuCDQvdCw0YLQuNK30LDQstOjXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwiSFRNTC3QuCDRgdCw0rPQuNGE0LDQuCDQvdCw0YLQuNK30LDQstOjINC00LDRgCDRiNCw0YDRgtC4XCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCLQkdC+0YDQutGD0L3QuNC4IEhUTUxcIixcbiAgICAgIHRpbWVyOiBcItCS0LDSm9GC0YHQsNC90rcv0JLQuNC60YLQvtGA0LjQvdCwXCIsXG4gICAgICBjYWxjdWxhdGVkVmFsdWVzOiBcItKa0LjQvNC80LDRgtKz0L7QuCDSs9C40YHQvtCx0LrRg9C906NcIixcbiAgICAgIHRyaWdnZXJzOiBcItCi0YDQuNCz0LPQtdGA0rPQvlwiLFxuICAgICAgdGVtcGxhdGVUaXRsZTogXCLQndC+0LzQuCDQvdCw0LzRg9C90LBcIixcbiAgICAgIHRvdGFsczogXCLQndCw0YLQuNK30LDSs9C+XCIsXG4gICAgICBsb2dpYzogXCLQnNCw0L3RgtC40ptcIixcbiAgICAgIGxheW91dDogXCLQotCw0YDSs1wiLFxuICAgICAgZGF0YTogXCLQnNCw0YrQu9GD0LzQvtGCXCIsXG4gICAgICB2YWxpZGF0aW9uOiBcItCh0LDQvdK30LXQtFwiLFxuICAgICAgY2VsbHM6IFwi0rLRg9K30LDQudGA0LDSs9C+XCIsXG4gICAgICBzaG93T25Db21wbGV0ZWQ6IFwi0JTQsNGAINC+0YXQuNGAINC90LjRiNC+0L0g0LTQuNKz0LXQtFwiLFxuICAgICAgbG9nbzogXCLQm9C+0LPQuNGC0LjQvyDQtNCw0YAg0YHQsNGA0LvQsNCy0rPQsNC4INGB0LDQstC+0LvQvdC+0LzQsFwiLFxuICAgICAgb3RoZXJzOiBcItCU0LjQs9Cw0YBcIlxuICAgIH0sXG4gICAgZWRpdFByb3BlcnR5OiBcItCi0LDSk9C50LjRgNC4INGF0L7RgdC40Y/RgtC4ICd7MH0nXCIsXG4gICAgaXRlbXM6IFwiW9Ct0LvQtdC80LXQvdGC0rPQvjogezB9XVwiLFxuXG4gICAgZW50ZXJOZXdWYWx1ZTogXCLQmNC70YLQuNC80L7RgSwg0pvQuNC80LzQsNGC0YDQviDQstC+0YDQuNC0INC60YPQvdC10LQuXCIsXG4gICAgbm9xdWVzdGlvbnM6IFwi0JTQsNGAINGB0LDQstC+0LvQvdC+0LzQsCDRj9Cz0L7QvSDRgdCw0LLQvtC7INC90LXRgdGCXCIsXG4gICAgY3JlYXRldHJpZ2dlcjogXCLQmNC70YLQuNC80L7RgSwg0YLRgNC40LPQs9C10YDRgNC+INGB0L7Qt9C10LRcIixcbiAgICB0cmlnZ2VyT246IFwi0J5cIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCLQodCw0rPQuNGE0LDSs9C+0YDQviDQvdCw0LzQvtGR0L0g0LrQsNGA0LTQsNC9OlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCLQrdC70LXQvNC10L3RgtKz0L7RgNC+INC90L7QvNCw0ZHQvSDQutCw0YDQtNCw0L06XCIsXG4gICAgdHJpZ2dlckNvbXBsZXRlVGV4dDogXCLQotCw0LzQvtC8INC60LDRgNC00LDQvdC4INGB0LDQstC+0LvQvdC+0LzQsCwg0LDQs9Cw0YAg0rPQsNC80LAg0LjSt9GA0L4g0YjQsNCy0LDQtC5cIixcbiAgICB0cmlnZ2VyTm90U2V0OiBcItCi0YDQuNCz0LPQtdGAINGB0LDQsdGCINC90LDRiNGD0LTQsNCw0YHRgi5cIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwi0KHQsNGAINC60LDRgNC00LDQvSwg0LDQs9Cw0YBcIixcbiAgICB0cmlnZ2VyU2V0VG9OYW1lOiBcItCi0LDSk9C50LjRgNC4INKb0LjQvNC80LDRgjpcIixcbiAgICB0cmlnZ2VyRnJvbU5hbWU6IFwi0J3Rg9GB0YXQsNCx0LDRgNC00L7RgNOjINC60LDRgNC00LDQvdC4INKb0LjQvNC80LDRgiDQsNC3OlwiLFxuICAgIHRyaWdnZXJSdW5FeHByZXNzaW9uOiBcItCY0rfRgNC+INC60LDRgNC00LDQvdC4INC40L0g0LjRhNC+0LTQsDpcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwi0LHQsDpcIixcbiAgICB0cmlnZ2VyR290b05hbWU6IFwi0JPRg9C30LDRgNC40Ygg0LHQsCDRgdCw0LLQvtC7OlwiLFxuICAgIHRyaWdnZXJJc1ZhcmlhYmxlOiBcItCi0LDSk9C50LjRgNGR0LHQsNC90LTQsNGA0L4g0LHQsCDQvdCw0YLQuNK30LDQuCDRgdCw0LLQvtC70L3QvtC80LAg0L3QsNCz0YPQt9C+0YjRgtCw0L0uXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eTogXCLQmNC70YLQuNC80L7RgSwg0pvQuNC80LzQsNGC0Lgg0LTRg9GA0YPRgdGC0YDQviDQstC+0YDQuNC0INC60YPQvdC10LQuXCJcbiAgfSxcbiAgLy8gUHJvcGVydHkgdmFsdWVzXG4gIHB2OiB7XG4gICAgdHJ1ZTogXCJ0cnVlXCIsXG4gICAgZmFsc2U6IFwiZmFsc2VcIixcbiAgICBpbmhlcml0OiBcItCc0LXRgNC+0YHQs9C40YDToyDQutCw0YDQtNCw0L1cIixcbiAgICBzaG93OiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvVwiLFxuICAgIGhpZGU6IFwi0J/QuNC90rPQvtC9INC60LDRgNC00LDQvVwiLFxuICAgIGRlZmF1bHQ6IFwi0J3QvtCx0LDRkdC906NcIixcbiAgICBpbml0aWFsOiBcItCi0LDRgNGC0LjQsdC+0YLQuCDQsNCy0LLQsNC70LBcIixcbiAgICByYW5kb206IFwi0KLQsNGA0YLQuNCx0L7RgtC4INGC0LDRgdC+0LTRg9GE06NcIixcbiAgICBjb2xsYXBzZWQ6IFwi0prQsNGC0Yog0YjRg9C0XCIsXG4gICAgZXhwYW5kZWQ6IFwi0JfQuNGR0LQg0YjRg9C0XCIsXG4gICAgbm9uZTogXCLQndC1XCIsXG4gICAgYXNjOiBcItCR0LAg0LrQsNC70L7QvdGI0LDQstOjXCIsXG4gICAgZGVzYzogXCLQkdCwINC60LDQvNGI0LDQstOjXCIsXG4gICAgaW5kZXRlcm1pbmF0ZTogXCLQndC+0LzRg9Cw0LnRj9C9XCIsXG4gICAgZGVjaW1hbDogXCLQlNCw0rPTo1wiLFxuICAgIGN1cnJlbmN5OiBcItCQ0YHRitC+0YBcIixcbiAgICBwZXJjZW50OiBcItCk0L7QuNC30rPQvlwiLFxuICAgIGZpcnN0RXhwYW5kZWQ6IFwi0K/QutGD0Lwg0LfQuNGR0LQg0YjRg9C00LDQsNGB0YJcIixcbiAgICBvZmY6IFwi0JrRg9GI0YLQsNC9XCIsXG4gICAgb25QYW5lbDogXCLQlNCw0YAg0LHQsNGB0YLQsFwiLFxuICAgIG9uU3VydmV5OiBcItCU0LDRgCDRgdCw0LLQvtC70L3QvtC80LBcIixcbiAgICBsaXN0OiBcItCg06/QudGF0LDRglwiLFxuICAgIHByb2dyZXNzVG9wOiBcInByb2dyZXNzVG9wXCIsXG4gICAgcHJvZ3Jlc3NCb3R0b206IFwicHJvZ3Jlc3NCb3R0b21cIixcbiAgICBwcm9ncmVzc1RvcEJvdHRvbTogXCJwcm9ncmVzc1RvcEJvdHRvbVwiLFxuICAgIGhvcml6b250YWw6IFwi0KPRhNGD0pvTo1wiLFxuICAgIHZlcnRpY2FsOiBcItCQ0LzRg9C006NcIixcbiAgICB0b3A6IFwi0JDQtyDQsdC+0LvQvlwiLFxuICAgIGJvdHRvbTogXCLQkNC3INC/0L7RkdC9XCIsXG4gICAgdG9wQm90dG9tOiBcItCQ0Lcg0LHQvtC70L4g0LLQsCDQv9C+0ZHQvVwiLFxuICAgIGxlZnQ6IFwi0KfQsNC/XCIsXG4gICAgY29sb3I6IFwi0KDQsNC90LNcIixcbiAgICBkYXRlOiBcItCh0LDQvdCwXCIsXG4gICAgZGF0ZXRpbWU6IFwi0KHQsNC90LAg0LLQsCDQstCw0pvRglwiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCLQodCw0L3QsCDQstCwINCy0LDSm9GC0Lgg0LzQsNKz0LDQu9C706NcIixcbiAgICBlbWFpbDogXCJFbWFpbFwiLFxuICAgIG1vbnRoOiBcItCc0L7Ss1wiLFxuICAgIG51bWJlcjogXCLQoNCw0pvQsNC8XCIsXG4gICAgcGFzc3dvcmQ6IFwi0KDQsNC80LdcIixcbiAgICByYW5nZTogXCLQlNC40LDQv9Cw0LfQvtC9XCIsXG4gICAgdGVsOiBcItCi0LXQu9C10YTQvtC9XCIsXG4gICAgdGV4dDogXCLQnNCw0YLQvVwiLFxuICAgIHRpbWU6IFwi0JLQsNKb0YJcIixcbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgd2VlazogXCLSstCw0YTRgtCwXCIsXG4gICAgaGlkZGVuOiBcItCf0LjQvdKz0L7QvVwiLFxuICAgIG9uOiBcItCT0LjRgNC+0L3QtNCw0L1cIixcbiAgICBvblBhZ2U6IFwi0JTQsNGAINGB0LDSs9C40YTQsFwiLFxuICAgIGVkaXQ6IFwi0KLQsNKT0LnQuNGAINC00L7QtNCw0L1cIixcbiAgICBkaXNwbGF5OiBcItCd0LDQvNC+0LjRiFwiLFxuICAgIG9uQ29tcGxldGU6IFwi0J/QsNGBINCw0Lcg0LDQvdK30L7QvFwiLFxuICAgIG9uSGlkZGVuOiBcItCf0LDRgSDQsNC3INC/0LjQvdKz0L7QvVwiLFxuICAgIGFsbDogXCLSstCw0LzQsFwiLFxuICAgIHBhZ2U6IFwi0KHQsNKz0LjRhNCwXCIsXG4gICAgc3VydmV5OiBcItCh0LDQstC+0LvQvdC+0LzQsFwiLFxuICAgIG9uTmV4dFBhZ2U6IFwi0JTQsNGAINCz0YPQt9Cw0YDQuNGIINCx0LAg0YHQsNKz0LjRhNCw0Lgg0L7Rj9C90LTQsFwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcItCU0LDRgCDRgtCw0pPQudC40YDQuCDSm9C40LzQvNCw0YJcIlxuICB9LFxuICAvLyBPcGVyYXRvcnNcbiAgb3A6IHtcbiAgICBlbXB0eTogXCLQv9GD0YAg0L3QsNC60LDRgNC00LBcIixcbiAgICBub3RlbXB0eTogXCLQv9GD0YAg0LrQsNGA0LTQsFwiLFxuICAgIGVxdWFsOiBcItCx0LDRgNC+0LHQsNGAXCIsXG4gICAgbm90ZXF1YWw6IFwi0L3QvtCx0LDRgNC+0LHQsNGAXCIsXG4gICAgY29udGFpbnM6IFwi0LTQsNGAINCx0LDRgCDQtNC+0YDQsNC0XCIsXG4gICAgbm90Y29udGFpbnM6IFwi0LTQsNGAINCx0LDRgCDQvdCw0LTQvtGA0LDQtFwiLFxuICAgIGFueW9mOiBcItKz0LDRgCDRj9C6INCw0LdcIixcbiAgICBhbGxvZjogXCLSs9Cw0LzQsCDQsNC3XCIsXG4gICAgZ3JlYXRlcjogXCLQt9C40ZHQtNGC0LDRgFwiLFxuICAgIGxlc3M6IFwi0LrQsNC80YLQsNGAXCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwi0LrQsNC70L7QvSDRkSDQsdCw0YDQvtCx0LDRgFwiLFxuICAgIGxlc3NvcmVxdWFsOiBcItC60LDQvCDRkSDQsdCw0YDQvtCx0LDRgFwiXG4gIH0sXG4gIC8vIEVtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwi0JjRgdGC0LjRhNC+0LTQsCDQsdCw0YDQtdC0INCy0LXRgNGB0LjRj9C4IEFuZ3VsYXJcIixcbiAgICBqcXVlcnk6IFwi0JjRgdGC0LjRhNC+0LTQsCDQsdCw0YDQtdC0INCy0LXRgNGB0LjRj9C4IGpRdWVyeVwiLFxuICAgIGtub2Nrb3V0OiBcItCY0YHRgtC40YTQvtC00LAg0LHQsNGA0LXQtCDQstC10YDRgdC40Y/QuCBLbm9ja291dFwiLFxuICAgIHJlYWN0OiBcItCY0YHRgtC40YTQvtC00LAg0LHQsNGA0LXQtCDQstC10YDRgdC40Y/QuCBSZWFjdFwiLFxuICAgIHZ1ZTogXCLQmNGB0YLQuNGE0L7QtNCwINCx0LDRgNC10LQg0LLQtdGA0YHQuNGP0LggVnVlXCIsXG4gICAgYm9vdHN0cmFwOiBcItCR0LDRgNC+0Lgg0LrQuNGC0L7QsdGF0L7QvdCw0LggYm9vdHN0cmFwXCIsXG4gICAgc3RhbmRhcmQ6IFwi0JHQtSDQutC40YLQvtCx0YXQvtC90LDQuCBib290c3RyYXBcIixcbiAgICBzaG93T25QYWdlOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INGB0LDQstC+0LvQvdC+0LzQsCDQtNCw0YAg0YHQsNKz0LjRhNCwXCIsXG4gICAgc2hvd0luV2luZG93OiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INGB0LDQstC+0LvQvdC+0LzQsCDQtNCw0YAg0YDQsNCy0LfQsNC90LDQuCDQvNC+0LTQsNC706NcIixcbiAgICBsb2FkRnJvbVNlcnZlcjogXCLQkdC+0YAg0LrQsNGA0LTQsNC90LggSnNvbiDRgdCw0LLQvtC70L3QvtC80LAg0LDQtyDRgdC10YDQstC10YBcIixcbiAgICB0aXRsZVNjcmlwdDogXCLQodC60YDQuNC/0YLSs9C+INC4INGD0YHQu9GD0LHSs9C+XCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiXG4gIH0sXG4gIC8vINCe0L/RgNC+0YEg0KLQtdGB0YJcbiAgdHM6IHtcbiAgICBzZWxlY3RQYWdlOiBcItCh0LDSs9C40YTQsNGA0L4g0LjQvdGC0LjRhdC+0LEg0LrRg9C90LXQtCwg0LHQsNGA0L7QuCDRgdCw0L3St9C40LTQsNC90Lgg0LjQvTpcIixcbiAgICBzaG93SW52aXNpYmxlRWxlbWVudHM6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0Y3Qu9C10LzQtdC90YLSs9C+0Lgg0L/QuNC90rPQvtC9XCJcbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIGFuc3dlcmNvdW50dmFsaWRhdG9yOiBcItCo0YPQvNC+0YDQsNC4INK30LDQstC+0LHSs9C+XCIsXG4gICAgRW1haWxWYWxpZGF0b3I6IFwiRW1haWxcIixcbiAgICBleHByZXNzaW9udmFsaWRhdG9yOiBcItCY0YjQvtGA0LBcIixcbiAgICBudW1lcmljdmFsaWRhdG9yOiBcItCg0LDSm9Cw0LxcIixcbiAgICByZWdleHZhbGlkYXRvcjogXCLQmNGI0L7RgNCw0Lgg0YDQtdCz0YPQu9GP0YDTo1wiLFxuICAgIHRleHR2YWxpZGF0b3I6IFwi0JzQsNGC0L1cIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCLQkNC90rfQvtC8INC00L7QtNCw0L3QuCDRgdCw0LLQvtC70L3QvtC80LBcIixcbiAgICBzZXR2YWx1ZXRyaWdnZXI6IFwi0JPRg9C30L7RiNGC0LDQvdC4INKb0LjQvNC80LDRglwiLFxuICAgIGNvcHl2YWx1ZXRyaWdnZXI6IFwi0J3Rg9GB0YXQsNCx0LDRgNC00L7RgNOjINC60LDRgNC00LDQvdC4INKb0LjQvNC80LDRglwiLFxuICAgIHNraXB0cmlnZ2VyOiBcItCT0YPQt9Cw0YDQuNGIINCx0LAg0YHQsNCy0L7Qu9C4XCIsXG4gICAgcnVuZXhwcmVzc2lvbnRyaWdnZXI6IFwi0JjSt9GA0L4g0LrQsNGA0LTQsNC90Lgg0LjRiNC+0YDQsFwiLFxuICAgIHZpc2libGV0cmlnZ2VyOiBcItCi0LDSk9C50LjRgCDQutCw0YDQtNCw0L3QuCDQvdCw0LzQvtC40YggKNGC0LDQstGB0LjRjyDQtNC+0LTQsCDQvdCw0LzQtdGI0LDQstCw0LQpXCJcbiAgfSxcbiAgLy8gUHJvcGVydGllc1xuICBwOiB7XG4gICAgbmFtZTogXCLQndC+0LxcIixcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCLQndC+0LxcIixcbiAgICAgIHRpdGxlOiBcItCl0L7Qu9OjINCz0YPQt9C+0YDQtdC0LCDQsNCz0LDRgCDQvdC+0LzQuCDTryDSs9Cw0LzRh9GD0L0gJ9Cd0L7QvCcg0LHQvtGI0LDQtFwiXG4gICAgfSxcbiAgICBuYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHk6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0YLRg9Cz0LzQsNKz0L7QuCDQvdC+0LLQsdCw0YDTo1wiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcItCc0YPRgNCw0YLRgtCw0LHRgdC+0LfQuNC4INGN0LvQtdC80LXQvdGC0rPQviDQtNCw0YAg0YHQsNKz0LjRhNCwXCIsXG4gICAgbWF4VGltZVRvRmluaXNoOiBcItCS0LDSm9GC0Lgg0LzQsNC60YHQuNC80LDQu9OjINCx0LDRgNC+0Lgg0LDQvdK30L7QvCDQtNC+0LTQsNC9XCIsXG5cbiAgICB2aXNpYmxlOiBcItCQ0ZHQvSDQsNGB0YJcIixcbiAgICB2aXNpYmxlSWY6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC9LCDQsNCz0LDRgFwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCLSttC+0LnQs9C40YDRiNCw0LLQuNC4INGB0LDRgNC70LDQstKz0LDQuCDRgdCw0LLQvtC7XCIsXG4gICAgZGVzY3JpcHRpb246IFwi0KjQsNGA0rNcIixcbiAgICBzdGF0ZTogXCLSstC+0LvQsNGCXCIsXG4gICAgaXNSZXF1aXJlZDogXCLSstCw0YLQvNOjXCIsXG4gICAgcmVxdWlyZWRJZjogXCLSstCw0YLQvNC40YHRgiwg0LDQs9Cw0YBcIixcbiAgICBpbmRlbnQ6IFwi0J3QuNGI0L7QvVwiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OiBcItCY0L0g0LzQsNC50LTQvtC9INCx0LDRgNC+0Lgg0L/Rg9GA0LrRg9C906Mg0rPQsNGC0LzQuNGB0YJcIixcbiAgICBzdGFydFdpdGhOZXdMaW5lOiBcItCQ0Lcg0YHQsNGC0YDQuCDQvdCw0LIg0YHQsNGAINC60LDRgNC00LDQvVwiLFxuICAgIGlubmVySW5kZW50OiBcItCd0LjRiNC+0L3QuCDQtNCw0YDRg9C906NcIixcbiAgICBwYWdlOiBcItCh0LDSs9C40YTQsFwiLFxuXG4gICAgd2lkdGg6IFwi0JTQsNGA0L7Qt9OjXCIsXG5cbiAgICBjb21tZW50VGV4dDogXCLQqNCw0YDSs1wiLFxuICAgIHZhbHVlTmFtZTogXCLQndC+0LzQuCDSm9C40LzQvNCw0YJcIixcbiAgICBlbmFibGVJZjogXCLQlNCw0YHRgtGA0LDRgSDQsNGB0YIg0LTQsNGAINGI0LDRgNGC0LhcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwi0prQuNC80LzQsNGCINCx0L4g0L3QvtCx0LDRkdC9XCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCLSttCw0LLQvtCx0Lgg0LTRg9GA0YPRgdGCXCIsXG4gICAgcmVhZE9ubHk6IFwi0KLQsNC90rPQviDQsdCw0YDQvtC4INGF0L7QvdC40YhcIixcbiAgICB2YWxpZGF0b3JzOiBcItCS0LDQu9C40LTQsNGC0L7RgNKz0L5cIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcItK20L7QudCz0LjRgNGI0LDQstC40Lgg0YHQsNGA0LvQsNCy0rPQsFwiLFxuXG4gICAgaGFzQ29tbWVudDogXCLQqNCw0YDSsyDQstGD0rfRg9C0INCw0YHRglwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwi0prQuNC80LzQsNGC0LggJ9CU0LjQs9Cw0YAnINCy0YPSt9GD0LQg0LDRgdGCXCIsXG4gICAgY2hvaWNlczogXCLQmNC90YLQuNGF0L7QsVwiLFxuICAgIGNob2ljZXNPcmRlcjogXCLQmNC90YLQuNGF0L7QsdC4INGE0LDRgNC80L7QuNGI0Lgg0LjQvdGC0LjRhdC+0LFcIixcbiAgICBjaG9pY2VzQnlVcmw6IFwi0JjQvdGC0LjRhdC+0LEg0LDQtyDQuNC90YLQtdGA0L3QtdGCXCIsXG4gICAgb3RoZXJUZXh0OiBcItCt0LvQtdC80LXQvdGC0Lgg0LzQsNGC0L3QuNC4INC00LjQs9Cw0YBcIixcbiAgICBvdGhlckVycm9yVGV4dDogXCLQnNCw0YLQvdC4INGF0LDRgtC+0LPQuNC4INC80LDQudC00L7QvdC4ICfQlNC40LPQsNGAJ1wiLFxuICAgIHN0b3JlT3RoZXJzQXNDb21tZW50OiBcItCd0LjQs9C+0rMg0LTQvtGI0YLQsNC90Lgg0LzQsNC50LTQvtC90LggJ9CU0LjQs9Cw0YAnLCDSs9Cw0LzRh9GD0L0g0YjQsNGA0rNcIixcblxuICAgIGxhYmVsOiBcItCc0LjRkdC90LDQsdGD0YBcIixcbiAgICBzaG93VGl0bGU6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0L3QvtC8XCIsXG4gICAgdmFsdWVUcnVlOiBcItCU0YPRgNGD0YHRglwiLFxuICAgIHZhbHVlRmFsc2U6IFwi0J3QvtC00YPRgNGD0YHRglwiLFxuXG4gICAgY29sczogXCLQodGD0YLRg9C90rPQvlwiLFxuICAgIHJvd3M6IFwi0KHQsNGC0YDSs9C+XCIsXG4gICAgcGxhY2Vob2xkZXI6IFwi0rbQvtC50LTQvtGAXCIsXG5cbiAgICBvcHRpb25zQ2FwdGlvbjogXCLQotCw0L3Qt9C40LzQvtGC0rPQvtC4INC40LzQt9C+XCIsXG5cbiAgICBleHByZXNzaW9uOiBcItCY0YjQvtGA0LBcIixcbiAgICBmb3JtYXQ6IFwi0J3QsNC80YPQtFwiLFxuICAgIGRpc3BsYXlTdHlsZTogXCLQo9GB0LvRg9Cx0Lgg0L3QsNC80L7QuNGIXCIsXG4gICAgY3VycmVuY3k6IFwi0JDRgdGK0L7RgFwiLFxuICAgIHVzZUdyb3VwaW5nOiBcItCY0YHRgtC40YTQvtC00LDQuCDQs9GD0YDRg9Kz0LHQsNC90LTTo1wiLFxuXG4gICAgc2hvd1ByZXZpZXc6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0L/QtdGI0L3QsNC80L7QuNGIXCIsXG4gICAgYWxsb3dNdWx0aXBsZTogXCLQmNC90YLQuNGF0L7QsdC4INGP0LrRh9Cw0L3QtFwiLFxuICAgIGltYWdlSGVpZ2h0OiBcItCR0LDQu9Cw0L3QtNC40Lgg0YHRg9GA0LDRglwiLFxuICAgIGltYWdlV2lkdGg6IFwi0JTQsNGA0L7Qt9C40Lgg0YHRg9GA0LDRglwiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCLQndC40LPQvtKzINC00L7RiNGC0LDQvdC4INKb0LjQvNC80LDRgiDSs9Cw0LzRh9GD0L0g0LzQsNGC0L1cIixcbiAgICBtYXhTaXplOiBcItCQ0L3QtNC+0LfQsNC4INC80LDQutGB0LjQvNCw0LvTo1wiLFxuXG4gICAgaHRtbDogXCJIVE1MXCIsXG5cbiAgICBjb2x1bW5zOiBcItCh0YPRgtGD0L3Ss9C+XCIsXG4gICAgY2VsbHM6IFwi0JzQsNC50LTQvtC90rPQvlwiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwi0rLQsNC80LDQuCDRgdCw0YLRgNKz0L4g0rPQsNGC0LzQuNGB0YIg0LHQsNGA0L7QuCDQv9GD0YDQutGD0L3To1wiLFxuXG4gICAgaG9yaXpvbnRhbFNjcm9sbDogXCLQodC60YDQvtC70LvQuCDRg9GE0YPSm9OjXCIsXG4gICAgY2VsbFR5cGU6IFwi0J3QsNC80YPQtNC4INC80LDQudC00L7QvdGH0LBcIixcbiAgICBjb2x1bW5zTGF5b3V0OiBcItCc0LDQutC10YLQuCDRgdGD0YLRg9C90rPQvlwiLFxuICAgIGNvbHVtbkNvbENvdW50OiBcItCo0YPQvNC+0YDQsNC4INGB0YPRgtGD0L3Ss9C+XCIsXG4gICAgY29sdW1uTWluV2lkdGg6IFwi0JTQsNGA0L7Qt9C40Lgg0LzQuNC90LjQvNCw0LvQuNC4INGB0YPRgtGD0L1cIixcblxuICAgIHJvd0NvdW50OiBcItCo0YPQvNC+0YDQsNC4INGB0LDRgtGA0rPQvlwiLFxuICAgIG1pblJvd0NvdW50OiBcItCo0YPQvNC+0YDQsNC4INC80LjQvdC40LzQsNC70LjQuCDRgdCw0YLRgNKz0L5cIixcbiAgICBtYXhSb3dDb3VudDogXCLQqNGD0LzQvtGA0LDQuCDQvNCw0LrRgdC40LzQsNC70LjQuCDRgdCw0YLRgNKz0L5cIixcbiAgICBrZXlOYW1lOiBcItCd0L7QvNC4INC60LDQu9C40LRcIixcbiAgICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcItCl0LDRgtC+0LPToyEg0JjQvSDQutCw0LvQuNC0INCw0LvQu9Cw0LrQsNC5INCy0YPSt9GD0LQg0LTQvtGA0LDQtCwg0L3QvtC80Lgg0LTQuNCz0LDRgNGA0L4g0LjRiNC+0YDQsCDQutGD0L3QtdC0LlwiLFxuICAgIGNvbmZpcm1EZWxldGU6IFwi0J3QtdGB0YLQutGD0L3QuNGA0L4g0YLQsNGB0LTQuNKbINC60YPQvdC10LRcIixcbiAgICBjb25maXJtRGVsZXRlVGV4dDogXCLQnNCw0YLQvdC4INGF0LDRgiDQsdCw0YDQvtC4INGC0LDRgdC00LjSm9C4INC90LXRgdGC0LrRg9C906NcIixcbiAgICBhZGRSb3dMb2NhdGlvbjogXCLQmNC70L7QstCwINC60LDRgNC00LDQvdC4INK30L7QudCz0LjRgNGI0LDQstC40Lgg0YHRg9GC0YPQvdKz0L5cIixcbiAgICBhZGRSb3dUZXh0OiBcItCY0LvQvtCy0LAg0LrQsNGA0LTQsNC90Lgg0YLRg9Cz0LzQsNC4INGB0LDRgtGA0Lgg0LzQsNGC0L1cIixcbiAgICByZW1vdmVSb3dUZXh0OiBcItCd0LXRgdGCINC60LDRgNC00LDQvdC4INGC0YPQs9C80LDQuCDRgdCw0YLRgNC4INC80LDRgtC9XCIsXG5cbiAgICBpdGVtczogXCLQrdC70LXQvNC10L3RgtKz0L5cIixcbiAgICBpdGVtU2l6ZTogXCLQkNC90LTQvtC30LDQuCDRjdC70LXQvNC10L3RgtKz0L5cIixcbiAgICBjb2xDb3VudDogXCLQqNGD0LzQvtGA0LDQuCDRgdGD0YLRg9C90rPQvlwiLFxuXG4gICAgdGVtcGxhdGVUaXRsZTogXCLQodCw0YDQu9Cw0LLSs9Cw0Lgg0L3QsNC80YPQvdCwXCIsXG4gICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogXCLQqNCw0YDSs9C4INC90LDQvNGD0L3QsFwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwi0JjSt9C+0LfQsNGCINC00L7QtNCw0L3QuCDQuNC70L7QstCwINC60LDRgNC00LDQvdC4INCx0LDRgdGC0LBcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcItCY0rfQvtC30LDRgiDQtNC+0LTQsNC90Lgg0L3QtdGB0YIg0LrQsNGA0LTQsNC90Lgg0LHQsNGB0YLQsFwiLFxuICAgIHBhbmVsQ291bnQ6IFwi0KjRg9C80L7RgNCw0Lgg0LHQsNGB0YLQsNKz0L5cIixcbiAgICBtaW5QYW5lbENvdW50OiBcItCo0YPQvNC+0YDQsNC4INC80LjQvdC40LzQsNC70LjQuCDQsdCw0YHRgtCw0rPQvlwiLFxuICAgIG1heFBhbmVsQ291bnQ6IFwi0KjRg9C80L7RgNCw0Lgg0LzQsNC60YHQuNC80LDQu9C40Lgg0LHQsNGB0YLQsNKz0L5cIixcbiAgICBwYW5lbHNTdGF0ZTogXCLSstC+0LvQsNGC0Lgg0LHQsNGB0YLQsNKz0L5cIixcbiAgICBwYW5lbEFkZFRleHQ6IFwi0JzQsNGC0L3QuCDRhdCw0YIg0LTQsNGAINC40LvQvtCy0LDQutGD0L3QuNC4INCx0LDRgdGC0LBcIixcbiAgICBwYW5lbFJlbW92ZVRleHQ6IFwi0JzQsNGC0L3QuCDRhdCw0YIg0LTQsNGAINC90LXRgdGC0LrRg9C90LjQuCDQsdCw0YHRgtCwXCIsXG4gICAgcGFuZWxQcmV2VGV4dDogXCLQnNCw0YLQvdC4INGF0LDRgtC4INCx0LDRgdGC0LDQuCDQv9C10YjRgtCw0YDQsFwiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwi0JzQsNGC0L3QuCDRhdCw0YLQuCDQsdCw0YHRgtCw0Lgg0L7Rj9C90LTQsFwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0YDQsNKb0LDQvNC4INGB0LDQstC+0LvSs9C+XCIsXG4gICAgc2hvd1JhbmdlSW5Qcm9ncmVzczogXCLQndC40YjQvtC9INC00L7QtNCw0L3QuCDQv9C10YjRgNCw0LLQuNC4INC/0YPRgNC60YPQvdOjXCIsXG4gICAgcmVuZGVyTW9kZTogXCLQndCw0LzRg9C00Lgg0LDRkdC9XCIsXG4gICAgdGVtcGxhdGVUaXRsZUxvY2F0aW9uOiBcItK20L7QudCz0LjRgNGI0LDQstC40Lgg0YHQsNGA0LvQsNCy0rPQsNC4INC90LDQvNGD0L3QsFwiLFxuXG4gICAgcmF0ZVZhbHVlczogXCLQkdCw0rPQvtC00LjSs9C40Lgg0pvQuNC80LzQsNGC0LHQsNKz0L7QuNC4INGB0LDQstC+0LvQvdC+0LzQsFwiLFxuICAgIHJhdGVNaW46IFwi0KDQtdC50YLQuNC90LPQuCDQvNC40L3QuNC80LDQu9OjXCIsXG4gICAgcmF0ZU1heDogXCLQoNC10LnRgtC40L3Qs9C4INC80LDQutGB0LjQvNCw0LvTo1wiLFxuICAgIHJhdGVTdGVwOiBcItKa0LDQtNCw0LzQuCDRgNC10LnRgtC40L3Qs1wiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCLQqNCw0YDSsyDQsdCw0YDQvtC4INGA0LXQudGC0LjQvdCz0Lgg0LzQuNC90LjQvNCw0LvTo1wiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCLQqNCw0YDSsyDQsdCw0YDQvtC4INGA0LXQudGC0LjQvdCz0Lgg0LzQsNC60YHQuNC80LDQu9OjXCIsXG5cbiAgICBpbnB1dFR5cGU6IFwi0J3QsNC80YPQtNC4INC00L7RhdC40LvQutGD0L3To1wiLFxuICAgIHNpemU6IFwi0JDQvdC00L7Qt9CwXCIsXG5cbiAgICBsb2NhbGU6IFwi0KDQsNCy0LjRj1wiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCLQk9GD0LfQsNGA0LjRiCDQsdCwINGB0LDQstC+0LvQuCDRj9C60YPQvCDQv9Cw0YEg0LDQtyDRgtCw0pPQudC40YAg0LTQvtC00LDQvdC4INGB0LDSs9C40YTQsFwiLFxuICAgIGNvbXBsZXRlZEh0bWw6IFwiSFRNTC3QuCDRgdCw0rPQuNGE0LDQuCDQvtGF0LjRgNC+0L1cIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwiSFRNTC3QuCDRgdCw0rPQuNGE0LDQuCDQvtGF0LjRgNC+0L0g0LTQsNGAINGI0LDRgNGC0LhcIixcbiAgICBsb2FkaW5nSHRtbDogXCLQkdC+0YDQutGD0L3QuNC4IEhUTUxcIixcbiAgICB0cmlnZ2VyczogXCLRgtGA0LjQs9Cz0LXRgNKz0L5cIixcbiAgICBjb29raWVOYW1lOiBcItC90L7QvNC4IENvb2tpZVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INC90LDRgtC40rfQsNC4INGB0LDQstC+0LvQvdC+0LzQsCDQtNCw0YAg0YHQsNKz0LjRhNCw0Lgg0L3QsNC30LTQuNC6XCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INGC0YPQs9C80LDSs9C+0Lgg0L3QvtCy0LHQsNGA06MgKNC90L7QstCx0LDRgNC40Lgg0L3QvtCx0LDRkdC9KVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INGC0YPQs9C80LDQuCAn0KHQsNKz0LjRhNCw0Lgg0L/QtdGI0YLQsNGA0LAnICjQuNGB0YLQuNGE0L7QtNCw0LHQsNGAINC80LXRgtCw0LLQvtC90LDQtCDQs9GD0LfQsNGI0YLQsNC9INCx0LAg0YHQsNKz0LjRhNCw0Lgg0L/QtdGI0YLQsNGA0LApXCIsXG4gICAgc2hvd1BhZ2VUaXRsZXM6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0L3QvtC80Lgg0YHQsNKz0LjRhNCwXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0YHQsNKz0LjRhNCwINCx0L4g0LzQsNGC0L0g0LTQsNGAINCw0L3St9C+0LwgKEhUTUwt0Lgg0YHQsNKz0LjRhNCw0Lgg0L3QsNGC0LjSt9Cw0LLToylcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0YDQsNKb0LDQvNKz0L7QuCDRgdCw0rPQuNGE0LBcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwi0JPRg9C30L7RgNC40YjQuCDRhdCw0YLQvtCz0LjSs9C+0Lgg0YHQsNCy0L7Qu9C90L7QvNCwXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcItCd0LjRiNC+0L0g0LTQvtC00LDQvdC4INC/0LXRiNGA0LDQstC40Lgg0L/Rg9GA0LrRg9C906NcIixcbiAgICBtb2RlOiBcItCd0LDQvNGD0LRcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcItCT0YPQt9Cw0YDQuNGIINCx0L4g0YDQvtKz0Lgg0LDQstGC0L7QvNCw0YLToyDQsdCwINGB0LDSs9Cw0LjRhNCw0Lgg0L7Rj9C90LTQsCDQtNCw0YAg0rPQvtC70LDRgtC4INK30LDQstC+0LEg0LTQvtC00LDQvSDQsdCwINKz0LDQvNCw0Lgg0YHQsNCy0L7Qu9Kz0L5cIixcbiAgICBjaGVja0Vycm9yc01vZGU6IFwi0J3QsNC80YPQtNC4INGB0LDQvdK30LjRiNC4INGF0LDRgtC+0LPQuNKz0L5cIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCLQotC+0LfQsCDQutCw0YDQtNCw0L3QuCDSm9C40LzQvNCw0YLSs9C+0Lgg0L3QvtCw0ZHQvVwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCLQnNCw0YLQvSDQtNCw0YAg0YLRg9Cz0LzQsNC4ICfQodCw0YAg0LrQsNGA0LTQsNC9J1wiLFxuICAgIHBhZ2VQcmV2VGV4dDogXCLQnNCw0YLQvSDQtNCw0YAg0YLRg9Cz0LzQsNC4ICfQodCw0rPQuNGE0LDQuCDQv9C10YjRgtCw0YDQsCdcIixcbiAgICBwYWdlTmV4dFRleHQ6IFwi0JzQsNGC0L0g0LTQsNGAINGC0YPQs9C80LDQuCAn0KHQsNKz0LjRhNCw0Lgg0L7Rj9C90LTQsCdcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwi0JzQsNGC0L0g0LTQsNGAINGC0YPQs9C80LDQuCAn0KLQsNC80L7QvCDQutCw0YDQtNCw0L0nXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcItCQ0LvQvtC80LDRgiDQsdCw0YDQvtC4INGB0LDQstC+0LvQuCDSs9Cw0YLQvNOjXCIsXG4gICAgcXVlc3Rpb25TdGFydEluZGV4OiBcItCY0L3QtNC10LrRgdC4INGB0LDRgNGI0LDQstCw0L3QtNCwINC00LDRgCDRgdCw0LLQvtC70L3QvtC80LAgKDEsIDIg0ZEgJ0EnLCAn0LAnKVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVUZW1wbGF0ZTogXCLQndCw0LzRg9C90LDQuCDQvdC+0LzQuCDRgdCw0LLQvtC70L3QvtC80LAsINKz0LDQvNGH0YPQvSDQvdC+0LHQsNGR0L06IHvQvNCw0YLQvdGA0L59IHvRgtCw0LvQsNCxfSB70L3QsNC80LXQutGD0L3QsNC0fS5cIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi0K/QutGD0Lwg0YHQsNKz0LjRhNCw0Lgg0YHQsNCy0L7Qu9C90L7QvNCwINGB0LDSs9C40YTQsNC4INGB0LDRgNGI0LDQstCw0L3QtNCwINC80LXQsdC+0YjQsNC0LlwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCLQndC40YjQvtC9INC00L7QtNCw0L3QuCDSs9Cw0LzQsNC4INGN0LvQtdC80LXQvdGC0rPQviDQtNCw0YAg0Y/QuiDRgdCw0rPQuNGE0LBcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcItCS0LDSm9GC0Lgg0LzQsNC60YHQuNC80LDQu9OjINC00LDRgCDRgdC+0L3QuNGP0rPQviwg0LHQsNGA0L7QuCDQv9GD0YAg0LrQsNGA0LTQsNC90Lgg0YHQsNKz0LjRhNCw0Lgg0YHQsNCy0L7Qu9C90L7QvNCwXCIsXG4gICAgc2hvd1RpbWVyUGFuZWw6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0LHQsNGB0YLQsNC4INCy0LDSm9GC0YHQsNC90rdcIixcbiAgICBzaG93VGltZXJQYW5lbE1vZGU6IFwi0J3QuNGI0L7QvSDQtNC+0LTQsNC90Lgg0L3QsNC80YPQtNC4INCx0LDRgdGC0LDQuCDQstCw0pvRgtGB0LDQvdK3XCIsXG5cbiAgICBkZWZhdWx0UGFuZWxWYWx1ZTogXCLSmtC40LzQvNCw0YLSs9C+0Lgg0LHQsNGB0YLQsNC4INC90L7QsdCw0ZHQvVwiLFxuICAgIGRlZmF1bHRSb3dWYWx1ZTogXCLSmtC40LzQvNCw0YLSs9C+0Lgg0YHQsNGC0YDQuCDQvdC+0LHQsNGR0L1cIixcbiAgICBzaG93Tm9uZUl0ZW06IFwi0K/Qs9C+0L0g0L3Rg9Kb0YLQsCDQvdC10YHRglwiLFxuICAgIG5vbmVUZXh0OiBcItCc0LDRgtC90Lgg0L3Rg9Kb0YLQsNC4ICfSstC10rcg0YfQuNC3J1wiLFxuXG4gICAgdGV4dDogXCLQnNCw0YLQvVwiXG4gIH1cbn07XG5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1widGdcIl0gPSB0Z1N0cmluZ3M7IiwiaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuXG52YXIgdHJhZGl0aW9uYWxDaGluZXNlVHJhbnNsYXRpb24gPSB7XG4gIC8vIHN0cmluZ3MgZm9yIHN1cnZleSB0ZW1wbGF0ZXNcbiAgc3VydmV5OiB7XG4gICAgZWRpdDogXCLnt6jovK9cIixcbiAgICBkcm9wUXVlc3Rpb246IFwi6KuL5bCH5ZWP6aGM5pS+572u5pa85q2kXCIsXG4gICAgY29weTogXCLopIfoo71cIixcbiAgICBhZGRUb1Rvb2xib3g6IFwi5re75Yqg5Yiw5bel5YW3566xXCIsXG4gICAgZGVsZXRlUGFuZWw6IFwi5Yiq6Zmk6Z2i5p2/XCIsXG4gICAgZGVsZXRlUXVlc3Rpb246IFwi5Yiq6Zmk6aGM55uuXCIsXG4gICAgY29udmVydFRvOiBcIui9ieiuiueCulwiXG4gIH0sXG4gIC8vIHN0cmluZ3MgZm9yIHF1ZXN0aW9uIHR5cGVzXG4gIHF0OiB7XG4gICAgY2hlY2tib3g6IFwi5aSa6aCF6YG45pOHXCIsXG4gICAgY29tbWVudDogXCLlpJrooYzmlofmnKzmoYZcIixcbiAgICBkcm9wZG93bjogXCLkuIvmi4nmoYZcIixcbiAgICBmaWxlOiBcIuaWh+S7tuS4iuWCs1wiLFxuICAgIGh0bWw6IFwiSHRtbCDku6PnorxcIixcbiAgICBtYXRyaXg6IFwi55+p6ZmjICjllq7pgbjpoYwpXCIsXG4gICAgbWF0cml4ZHJvcGRvd246IFwi55+p6ZmjICjkuIvmi4nmoYYpXCIsXG4gICAgbWF0cml4ZHluYW1pYzogXCLnn6npmaMgKOWLleaFi+WVj+mhjClcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwi5paH5pys5qGG57WEXCIsXG4gICAgcGFuZWw6IFwi6Z2i5p2/XCIsXG4gICAgcGFuZWxkeW5hbWljOiBcIumdouadvyjli5XmhYspXCIsXG4gICAgcmFkaW9ncm91cDogXCLllq7poIXpgbjmk4dcIixcbiAgICByYXRpbmc6IFwi6KmV5YiGXCIsXG4gICAgdGV4dDogXCLmlofmnKzmoYZcIixcbiAgICBib29sZWFuOiBcIuW4g+ael+mBuOmghVwiLFxuICAgIGV4cHJlc3Npb246IFwi6KGo6YGU5byPXCJcbiAgfSxcbiAgLy8gc3RyaW5ncyBmb3IgZWRpdG9yXG4gIGVkOiB7XG4gICAgc3VydmV5OiBcIuiqv+afpeWVj+WNt1wiLFxuICAgIGVkaXRTdXJ2ZXk6IFwi5L+u5pS5XCIsXG4gICAgYWRkTmV3UGFnZTogXCLmt7vliqDmlrDpoIHpnaJcIixcbiAgICBkZWxldGVQYWdlOiBcIuWIqumZpOmggemdolwiLFxuICAgIGVkaXRQYWdlOiBcIue3qOi8r+mggemdolwiLFxuICAgIG5ld1BhZ2VOYW1lOiBcIumggemdolwiLFxuICAgIG5ld1F1ZXN0aW9uTmFtZTogXCLllY/poYxcIixcbiAgICBuZXdQYW5lbE5hbWU6IFwi6Z2i5p2/XCIsXG4gICAgdGVzdFN1cnZleTogXCLmuKzoqabllY/ljbdcIixcbiAgICB0ZXN0U3VydmV5QWdhaW46IFwi5YaN5qyh5ris6Kmm5ZWP5Y23XCIsXG4gICAgdGVzdFN1cnZleVdpZHRoOiBcIuWVj+WNt+WvrOW6pjogXCIsXG4gICAgZW1iZWRTdXJ2ZXk6IFwi5bCH5ZWP5Y235bWM5YWl57ay6aCBXCIsXG4gICAgc2F2ZVN1cnZleTogXCLkv53lrZjllY/ljbdcIixcbiAgICBkZXNpZ25lcjogXCLllY/ljbfoqK3oqIjlmahcIixcbiAgICBqc29uRWRpdG9yOiBcIkpTT04g57eo6Lyv5ZmoXCIsXG4gICAgdW5kbzogXCLpgoTljp9cIixcbiAgICByZWRvOiBcIumHjeWBmlwiLFxuICAgIG9wdGlvbnM6IFwi6YG46aCFXCIsXG4gICAgZ2VuZXJhdGVWYWxpZEpTT046IFwi55Sf5oiQIEpTT05cIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCLnlJ/miJDmmJPoroDnmoQgSlNPTlwiLFxuICAgIHRvb2xib3g6IFwi5bel5YW3566xXCIsXG4gICAgZGVsU2VsT2JqZWN0OiBcIuWIqumZpOaJgOmBuOWwjeixoVwiLFxuICAgIGVkaXRTZWxPYmplY3Q6IFwi57eo6Lyv5omA6YG45bCN6LGhXCIsXG4gICAgY29ycmVjdEpTT046IFwi5L+u5q2jIEpTT05cIixcbiAgICBzdXJ2ZXlSZXN1bHRzOiBcIuWVj+WNt+e1kOaenDogXCIsXG4gICAgbW9kaWZpZWQ6IFwi5bey5L+u5pS5XCIsXG4gICAgc2F2aW5nOiBcIuS/neWtmOS4rS4uLlwiLFxuICAgIHNhdmVkOiBcIuW3suS/neWtmFwiXG4gIH0sXG4gIC8vUHJvcGVydHkgbmFtZXMgaW4gdGFibGUgaGVhZGVyc1xuICBwZWw6IHtcbiAgICBpc1JlcXVpcmVkOiBcIuaYr+WQpueCuuW/heWhq+mghT9cIlxuICB9LFxuICAvLyBzdHJpbmdzIGZvciBwcm9wZXJ0eSBlZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwi5oeJ55SoXCIsXG4gICAgb2s6IFwi56K65a6aXCIsXG4gICAgY2FuY2VsOiBcIuWPlua2iFwiLFxuICAgIHJlc2V0OiBcIumHjee9rlwiLFxuICAgIGNsb3NlOiBcIumXnOmWiVwiLFxuICAgIGRlbGV0ZTogXCLliKrpmaRcIixcbiAgICBhZGROZXc6IFwi5paw5bu6XCIsXG4gICAgcmVtb3ZlQWxsOiBcIuWFqOmDqOWIqumZpFwiLFxuICAgIGVkaXQ6IFwi57eo6Lyv5ZmoXCIsXG4gICAgZW1wdHk6IFwiPOepuj5cIixcbiAgICBmYXN0RW50cnk6IFwi5b+r6YCf6Ly45YWlXCIsXG4gICAgZm9ybUVudHJ5OiBcIuihqOWWrui8uOWFpVwiLFxuICAgIHRlc3RTZXJ2aWNlOiBcIua4rOippuacjeWLmVwiLFxuICAgIHNob3dNb3JlOiBcIuabtOWkmue0sOevgC4uLlwiLFxuICAgIGNvbmRpdGlvbkhlbHA6XG4gICAgICBcIuiri+i8uOWFpeS4gOWAi+W4g+ael+ihqOmBlOW8j+OAgueVtuW4g+ael+WAvOeCuuecn++8jOWVj+mhjC/poIHpnaLlj6/opovjgILkvovlpoLvvJp7cXVlc3Rpb24xfSA9ICd2YWx1ZTEnIG9yICh7cXVlc3Rpb24yfSAqIHtxdWVzdGlvbjR9ICA+IDIwIGFuZCB7cXVlc3Rpb24zfSA8IDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcIuiri+i8uOWFpeS4gOmgheaineS7tuWIpOaWt+OAgueVtuaineS7tuWIpOaWt+eCuuecn+aZguWVj+mhjC/poIHpnaLlsIflj6/opovjgILkvovlpoI6IHtxdWVzdGlvbjF9ID0gJ3ZhbHVlMScgb3IgKHtxdWVzdGlvbjJ9ID0gMyBhbmQge3F1ZXN0aW9uM30gPCA1KVwiLFxuICAgIHByb3BlcnR5SXNFbXB0eTogXCLoq4vngrroqbLlsazmgKfoqK3lrprkuIDlgIvlgLxcIixcbiAgICB2YWx1ZTogXCLlgLxcIixcbiAgICB0ZXh0OiBcIumhr+ekuuaWh+acrFwiLFxuICAgIGNvbHVtbkVkaXQ6IFwi57eo6Lyv5YiXOiB7MH1cIixcbiAgICBpdGVtRWRpdDogXCLnt6jovK/pgbjpoIU6IHswfVwiLFxuICAgIHNob3dPdGhlckl0ZW06IFwi5Y+v5re75Yqg5YW25LuW562U5qGIP1wiLFxuICAgIG90aGVyVGV4dDogXCLlhbbku5bnrZTmoYjmlofmnKxcIixcbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCJQYXRoXCIsXG4gICAgdmFsdWVOYW1lOiBcIlZhbHVlIG5hbWVcIixcbiAgICB0aXRsZU5hbWU6IFwiVGl0bGUgbmFtZVwiLFxuICAgIG5hbWU6IFwi6aGM55uu5ZCNXCIsXG4gICAgdGl0bGU6IFwi6aGM55uu5paH5pysXCIsXG4gICAgY2VsbFR5cGU6IFwi5Zau5YWD5qC86aGe5Z6LXCIsXG4gICAgY29sQ291bnQ6IFwi5YiX5pW4XCIsXG4gICAgY2hvaWNlc09yZGVyOiBcIuioree9rumBuOmghemghuW6j1wiLFxuICAgIHZpc2libGU6IFwi5piv5ZCm5Y+v6KaLP1wiLFxuICAgIGlzUmVxdWlyZWQ6IFwi5piv5ZCm54K65b+F5aGr6aCFP1wiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwi5ZWP6aGM5piv5ZCm5paw6LW35LiA6KGMP1wiLFxuICAgIHJvd3M6IFwi5paH5pys5qGG6KGM5pW4XCIsXG4gICAgcGxhY2Vob2xkZXI6IFwi5Y2g5L2N5paH5pysXCIsXG4gICAgc2hvd1ByZXZpZXc6IFwi5piv5ZCm6aGv56S65ZyW5YOP6aCQ6Ka9P1wiLFxuICAgIHN0b3JlRGF0YUFzVGV4dDogXCLku6UgSlNPTiDmlofmnKzmlrnlvI/lrZjlhLLmlofku7ZcIixcbiAgICBtYXhTaXplOiBcIuaWh+S7tuacgOWkp+WwuuWvuCAoQnl0ZXMpXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwi5ZyW54mH6auY5bqmXCIsXG4gICAgaW1hZ2VXaWR0aDogXCLlnJbniYflr6zluqZcIixcbiAgICByb3dDb3VudDogXCLpu5joqo3ooYzmlbhcIixcbiAgICBhZGRSb3dUZXh0OiBcIua3u+WKoOaineebruaMiemIleaWh+acrFwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwi5Yiq6Zmk5qKd55uu5oyJ6YiV5paH5pysXCIsXG4gICAgbWluUmF0ZURlc2NyaXB0aW9uOiBcIuacgOWwj+WAvOaPkOekulwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCLmnIDlpKflgLzmj5DnpLpcIixcbiAgICBpbnB1dFR5cGU6IFwi5paH5pys5qGG6aGe5Z6LXCIsXG4gICAgb3B0aW9uc0NhcHRpb246IFwi5LiL5ouJ5qGG5o+Q56S66KqeXCIsXG4gICAgcUVkaXRvclRpdGxlOiBcIue3qOi8r+WVj+mhjDogezB9XCIsXG4gICAgLy9zdXJ2ZXlcbiAgICBzaG93VGl0bGU6IFwi6aGv56S6L+maseiXjyDmqJnpoYxcIixcbiAgICBsb2NhbGU6IFwi6buY6KqN6Kqe6KiAXCIsXG4gICAgbW9kZTogXCLmqKHlvI8gKOe3qOi8ry/lj6roroApXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwi5riF6Zmk6Zqx6JeP5YC8XCIsXG4gICAgY29va2llTmFtZTogXCJDb29raWUgbmFtZSAodG8gZGlzYWJsZSBydW4gc3VydmV5IHR3byB0aW1lcyBsb2NhbGx5KVwiLFxuICAgIHNlbmRSZXN1bHRPblBhZ2VOZXh0OiBcIlNlbmQgc3VydmV5IHJlc3VsdHMgb24gcGFnZSBuZXh0XCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiU3RvcmUgJ290aGVycycgdmFsdWUgaW4gc2VwYXJhdGUgZmllbGRcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCLpoa/npLrpoIHpnaLmqJnpoYxcIixcbiAgICBzaG93UGFnZU51bWJlcnM6IFwi6aGv56S66aCB5pW4XCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIuWJjeS4gOmggeaMiemIleaWh+acrFwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCLlvozkuIDpoIHmjInpiJXmlofmnKxcIixcbiAgICBjb21wbGV0ZVRleHQ6IFwi5a6M5oiQ5oyJ6YiV5paH5pysXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIumWi+Wni+aMiemIleaWh+acrFwiLFxuICAgIHNob3dOYXZpZ2F0aW9uQnV0dG9uczogXCLpoa/npLrlsI7oiKrmjInpiJUgKOm7mOiqjeWwjuiIqilcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCLpoa/npLrliY3kuIDpoIHmjInpiJUgKOeUqOaItuWPr+i/lOWbnuiHs+WJjeS4gOmggemdoilcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwi6Kq/5p+l55qE56ys5LiA6aCB6Z2i54K66LW35aeL6aCBLlwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIue1kOWwvuWxleekuuWujOaIkOW+jOeahOmggemdoiAoY29tcGxldGVkSHRtbClcIixcbiAgICBnb05leHRQYWdlQXV0b21hdGljOiBcIuWbnuetlOacrOmggeaJgOacieWVj+mhjOW+jO+8jOiHquWLlei3s+i9ieWIsOS4i+S4gOmggVwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCLpoa/npLrpgLLluqbmop1cIixcbiAgICBxdWVzdGlvblRpdGxlTG9jYXRpb246IFwi5ZWP6aGM55qE5qiZ6aGM5L2N572uXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcIlRoZSBxdWVzdGlvbiByZXF1aXJlZCBzeW1ib2wocylcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwi5ZWP6aGM6LW35aeL5qiZ6KqMICgxLCAyIG9yICdBJywgJ2EnKVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwi6aGv56S65ZWP6aGM57eo6JmfXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcIuWVj+mhjOaomemhjOaooeadvywg6buY6KqN54K6OiAne25vfS4ge3JlcXVpcmV9IHt0aXRsZX0nXCIsXG4gICAgcXVlc3Rpb25FcnJvckxvY2F0aW9uOiBcIuWVj+mhjOmMr+iqpOWumuS9jVwiLFxuICAgIGZvY3VzRmlyc3RRdWVzdGlvbkF1dG9tYXRpYzogXCLmlLnororpoIHpnaLmmYLogZrnhKblnKjnrKzkuIDlgIvllY/poYxcIixcbiAgICBxdWVzdGlvbnNPcmRlcjogXCJFbGVtZW50cyBvcmRlciBvbiB0aGUgcGFnZVwiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCLlrozmiJDoqr/mn6XnmoTmnIDplbfmmYLplpNcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIuWujOaIkOiqv+afpeS4remggemdoueahOacgOmVt+aZgumWk1wiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIumhr+ekuuioiOaZguWZqOmdouadv1wiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCLpoa/npLroqIjmmYLlmajpnaLmnb/mqKHlvI9cIixcbiAgICByZW5kZXJNb2RlOiBcIua4suafk+aooeW8j1wiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwi5YWB6Kix5re75Yqg6Z2i5p2/XCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLlhYHoqLHliKrpmaTpnaLmnb9cIixcbiAgICBwYW5lbEFkZFRleHQ6IFwi5re75Yqg6Z2i5p2/5paH5pysXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIuWIqumZpOmdouadv+aWh+acrFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCLlnKjkuIDlgIvpoIHpnaLkuIrlsZXnpLrmiYDmnInlhYPntKBcIixcbiAgICB0YWJzOiB7XG4gICAgICBnZW5lcmFsOiBcIumAmueUqOmghVwiLFxuICAgICAgbmF2aWdhdGlvbjogXCLlsI7oiKpcIixcbiAgICAgIHF1ZXN0aW9uOiBcIuWVj+mhjFwiLFxuICAgICAgY29tcGxldGVkSHRtbDogXCLlrozmiJDlvoznmoRIdG1sXCIsXG4gICAgICBsb2FkaW5nSHRtbDogXCLliqDovInkuK3nmoRIdG1sXCIsXG4gICAgICB0aW1lcjogXCLllY/ljbfoqIjmmYLlmahcIixcbiAgICAgIHRyaWdnZXI6IFwi6Ke455m85ZmoXCIsXG4gICAgICBmaWxlT3B0aW9uczogXCLpgbjpoIVcIixcbiAgICAgIGh0bWw6IFwiSFRNTCDnt6jovK/lmahcIixcbiAgICAgIGNvbHVtbnM6IFwi6Kit572u5YiXXCIsXG4gICAgICByb3dzOiBcIuioree9ruihjFwiLFxuICAgICAgY2hvaWNlczogXCLoqK3nva7pgbjpoIVcIixcbiAgICAgIHZpc2libGVJZjogXCLoqK3nva7lj6/opovmop3ku7ZcIixcbiAgICAgIGVuYWJsZUlmOiBcIkVuYWJsZSBJZlwiLFxuICAgICAgcmF0ZVZhbHVlczogXCLoqK3nva7oqZXliIblgLxcIixcbiAgICAgIGNob2ljZXNCeVVybDogXCLpgJrpgY4gVVJMIOWwjuWFpemBuOmghVwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCLpu5joqo3pgbjpoIVcIixcbiAgICAgIG11bHRpcGxlVGV4dEl0ZW1zOiBcIuaWh+acrOi8uOWFpVwiLFxuICAgICAgdmFsaWRhdG9yczogXCLmoKHpqZfopo/liYdcIlxuICAgIH0sXG4gICAgZWRpdFByb3BlcnR5OiBcIue3qOi8r+WxrOaApzogJ3swfSdcIixcbiAgICBpdGVtczogXCJbIOmgheebruaVuOmHjzogezB9IF1cIixcbiAgICBlbnRlck5ld1ZhbHVlOiBcIuiri+ioreWumuWAvFwiLFxuICAgIG5vcXVlc3Rpb25zOiBcIuWVj+WNt+S4remChOaykuacieWJteW7uuS7u+S9leWVj+mhjFwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwi6KuL5Ym15bu66Ke455m85ZmoXCIsXG4gICAgdHJpZ2dlck9uOiBcIueVtiBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCLkvb/poIHpnaLlj6/opos6XCIsXG4gICAgdHJpZ2dlck1ha2VRdWVzdGlvbnNWaXNpYmxlOiBcIuS9v+WVj+mhjOWPr+imizpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIuWmguaenOa7v+i2s+aineS7tu+8jOWJh+WujOaIkOWVj+WNt1wiLFxuICAgIHRyaWdnZXJOb3RTZXQ6IFwi6Ke455m85Zmo5bCa5pyq6Kit572uXCIsXG4gICAgdHJpZ2dlclJ1bklmOiBcIua7v+i2s+S4i+WIl+aineS7tuaZguWft+ihjFwiLFxuICAgIHRyaWdnZXJTZXRUb05hbWU6IFwi5L+u5pS55LiL5YiX5ZWP6aGM5YC8OiBcIixcbiAgICB0cmlnZ2VyU2V0VmFsdWU6IFwi5L+u5pS554K6OiBcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCLlnKjllY/ljbfmj5DkuqTntZDmnpzkuK3kuI3opoHljIXlkKvoqbLororph49cIlxuICB9LFxuICAvLyBzdHJpbmdzIGZvciBvcGVyYXRvcnNcbiAgb3A6IHtcbiAgICBlbXB0eTogXCLngrrnqbpcIixcbiAgICBub3RlbXB0eTogXCLkuI3ngrrnqbpcIixcbiAgICBlcXVhbDogXCLnrYnmlrxcIixcbiAgICBub3RlcXVhbDogXCLkuI3nrYnmlrxcIixcbiAgICBjb250YWluczogXCLljIXlkKtcIixcbiAgICBub3Rjb250YWluczogXCLkuI3ljIXlkKtcIixcbiAgICBncmVhdGVyOiBcIuWkp+aWvFwiLFxuICAgIGxlc3M6IFwi5bCP5pa8XCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwi5aSn5pa8562J5pa8XCIsXG4gICAgbGVzc29yZXF1YWw6IFwi5bCP5pa8562J5pa8XCJcbiAgfSxcbiAgLy8gc3RyaW5ncyBmb3IgZW1iZWQgd2luZG93XG4gIGV3OiB7XG4gICAgYW5ndWxhcjogXCLkvb/nlKggQW5ndWxhciDmmYJcIixcbiAgICBqcXVlcnk6IFwi5L2/55SoIEpRdWVyeSDmmYJcIixcbiAgICBrbm9ja291dDogXCLkvb/nlKggS25vY2tvdXQg5pmCXCIsXG4gICAgcmVhY3Q6IFwi5L2/55SoIFJlYWN0IOaZglwiLFxuICAgIHZ1ZTogXCLkvb/nlKggVnVlIOaZglwiLFxuICAgIGJvb3RzdHJhcDogXCLkvb/nlKggQm9vdHN0cmFwIOaZglwiLFxuICAgIHN0YW5kYXJkOiBcIuS4jeS9v+eUqCBCb290c3RyYXAg5pmCXCIsXG4gICAgc2hvd09uUGFnZTogXCLltYzlhaXpoIHpnaLpoa/npLpcIixcbiAgICBzaG93SW5XaW5kb3c6IFwi5L2/55So5Zau542o55qE5ZWP5Y236KaW56qXXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwi5b6e5pyN5YuZ5Zmo5Yqg6LyJ5ZWP5Y23IEpTT04g5pW45pOaXCIsXG4gICAgdGl0bGVTY3JpcHQ6IFwi6IWz5pys5ZKM5qij5byPXCIsXG4gICAgdGl0bGVIdG1sOiBcIkhUTUxcIixcbiAgICB0aXRsZUphdmFTY3JpcHQ6IFwiSmF2YVNjcmlwdFwiXG4gIH0sXG4gIHZhbGlkYXRvcnM6IHtcbiAgICBhbnN3ZXJjb3VudHZhbGlkYXRvcjogXCLmlbjph4/mqqLmn6VcIixcbiAgICBlbWFpbHZhbGlkYXRvcjogXCJFbWFpbFwiLFxuICAgIG51bWVyaWN2YWxpZGF0b3I6IFwi5pW45a2XXCIsXG4gICAgcmVnZXh2YWxpZGF0b3I6IFwi5q2j5YmH6KGo6YGU5byPXCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCLmlofmnKxcIlxuICB9LFxuICB0cmlnZ2Vyczoge1xuICAgIGNvbXBsZXRldHJpZ2dlcjogXCLlrozmiJDllY/ljbdcIixcbiAgICBzZXR2YWx1ZXRyaWdnZXI6IFwi6Kit572u5ZWP6aGM5YC8XCIsXG4gICAgdmlzaWJsZXRyaWdnZXI6IFwi5L+u5pS55Y+v6KaL5oCnXCJcbiAgfSxcbiAgLy8gc3RyaW5ncyBvZiBwcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICBjb21tZW50VGV4dDogXCLlgpnoqLvmlofmnKxcIixcbiAgICBjaG9pY2VzOiBcIumBuOmghVwiLFxuICAgIGNob2ljZXNCeVVybDogXCJVcmzpgbjpoIVcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwi6YG46aCF5o6S5bqPXCIsXG4gICAgY29sQ291bnQ6IFwi5YiX5pW4XCIsXG4gICAgY29ycmVjdEFuc3dlcjogXCLmraPnorrnrZTmoYhcIixcbiAgICBkZWZhdWx0VmF1bGU6IFwi6aCQ6Kit6YG46aCFXCIsXG4gICAgZGVzY3JpcHRpb246IFwi6Kqq5piOXCIsXG4gICAgZW5hYmxlSWY6IFwi5YWB6Kix5Yik5pa3XCIsXG4gICAgaGFzQ29tbWVudDogXCJoYXNDb21tZW50XCIsXG4gICAgc2hvd090aGVySXRlbTogXCLlhYHoqLHlhbbku5bnrZTmoYhcIixcbiAgICBvdGhlclRleHQ6IFwi5YW25LuW562U5qGI5paH5pysXCIsXG4gICAgcGFnZTogXCLmiYDlnKjpoIHpnaJcIixcbiAgICByZWFkT25seTogXCLlj6roroBcIixcbiAgICBpbmRlbnQ6IFwi57iu5o6SXCIsXG4gICAgaXNSZXF1aXJlZDogXCLlv4XloatcIixcbiAgICByZXF1aXJlZEVycm9yVGV4dDogXCJyZXF1aXJlZEVycm9yVGV4dFwiLFxuICAgIG90aGVyRXJyb3JUZXh0OiBcInJlcXVpcmVkRXJyb3JUZXh0XCIsXG4gICAgc3RhcnRXaXRoTmV3TGluZTogXCLlhYHoqLHllY/poYzlnKjmlrDooYxcIixcbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCLpoa/npLov6Zqx6JePIOaomemhjFwiLFxuICAgIGxvY2FsZTogXCLpu5joqo3oqp7oqIBcIixcbiAgICBtb2RlOiBcIuaooeW8jyAo57eo6LyvL+WPquiugClcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCLmuIXpmaTpmrHol4/lgLxcIixcbiAgICBjb29raWVOYW1lOiBcIkNvb2tpZSBuYW1lICh0byBkaXNhYmxlIHJ1biBzdXJ2ZXkgdHdvIHRpbWVzIGxvY2FsbHkpXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiU2VuZCBzdXJ2ZXkgcmVzdWx0cyBvbiBwYWdlIG5leHRcIixcbiAgICBzdG9yZU90aGVyc0FzQ29tbWVudDogXCJTdG9yZSAnb3RoZXJzJyB2YWx1ZSBpbiBzZXBhcmF0ZSBmaWVsZFwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIumhr+ekuumggemdouaomemhjFwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCLpoa/npLrpoIHmlbhcIixcbiAgICBwYWdlUHJldlRleHQ6IFwi5YmN5LiA6aCB5oyJ6YiV5paH5pysXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIuW+jOS4gOmggeaMiemIleaWh+acrFwiLFxuICAgIGNvbXBsZXRlVGV4dDogXCLlrozmiJDmjInpiJXmlofmnKxcIixcbiAgICBzdGFydFN1cnZleVRleHQ6IFwi6ZaL5aeL5oyJ6YiV5paH5pysXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIumhr+ekuuWwjuiIquaMiemIlSAo6buY6KqN5bCO6IiqKVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIumhr+ekuuWJjeS4gOmggeaMiemIlSAo55So5oi25Y+v6L+U5Zue6Iez5YmN5LiA6aCB6Z2iKVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCLoqr/mn6XnmoTnrKzkuIDpoIHpnaLngrrotbflp4vpoIEuXCIsXG4gICAgc2hvd0NvbXBsZXRlZFBhZ2U6IFwi57WQ5bC+5bGV56S65a6M5oiQ5b6M55qE6aCB6Z2iIChjb21wbGV0ZWRIdG1sKVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwi5Zue562U5pys6aCB5omA5pyJ5ZWP6aGM5b6M77yM6Ieq5YuV6Lez6L2J5Yiw5LiL5LiA6aCBXCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIumhr+ekuumAsuW6puainVwiLFxuICAgIHF1ZXN0aW9uVGl0bGVMb2NhdGlvbjogXCLllY/poYznmoTmqJnpoYzkvY3nva5cIixcbiAgICByZXF1aXJlZFRleHQ6IFwiVGhlIHF1ZXN0aW9uIHJlcXVpcmVkIHN5bWJvbChzKVwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCLllY/poYzotbflp4vmqJnlv5cgKDEsIDIgb3IgJ0EnLCAnYScpXCIsXG4gICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCLpoa/npLrllY/poYznt6jomZ9cIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6IFwi5ZWP6aGM5qiZ6aGM5qih5p2/LCDpu5joqo3ngro6ICd7bm99LiB7cmVxdWlyZX0ge3RpdGxlfSdcIixcbiAgICBxdWVzdGlvbkVycm9yTG9jYXRpb246IFwi5ZWP6aGM6Yyv6Kqk5a6a5L2NXCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIuaUueiuiumggemdouaZguiBmueEpuWcqOesrOS4gOWAi+WVj+mhjFwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIumggemdouS4reWFg+e0oOeahOmghuW6j1wiLFxuICAgIG1heFRpbWVUb0ZpbmlzaDogXCLlrozmiJDoqr/mn6XnmoTmnIDplbfmmYLplpNcIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIuWujOaIkOiqv+afpeS4remggemdoueahOacgOmVt+aZgumWk1wiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIumhr+ekuuioiOaZguWZqOmdouadv1wiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCLpoa/npLroqIjmmYLlmajpnaLmnb/mqKHlvI9cIixcbiAgICByZW5kZXJNb2RlOiBcIua4suafk+aooeW8j1wiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwi5YWB6Kix5re75Yqg6Z2i5p2/XCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCLlhYHoqLHliKrpmaTpnaLmnb9cIixcbiAgICBwYW5lbEFkZFRleHQ6IFwi5re75Yqg6Z2i5p2/5paH5pysXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIuWIqumZpOmdouadv+aWh+acrFwiLFxuICAgIGlzU2luZ2xlUGFnZTogXCLlnKjkuIDlgIvpoIHpnaLkuIrlsZXnpLrmiYDmnInlhYPntKBcIixcbiAgICBuYW1lOiBcIuWQjeWtl1wiLFxuICAgIHRpdGxlOiB7XG4gICAgICBuYW1lOiBcIuaomemhjFwiLFxuICAgICAgdGl0bGU6IFwi5aaC5p6c6IiH5ZCN5a2X55u45ZCM77yM6KuL6Kit572u54K656m65YC8XCJcbiAgICB9LFxuICAgIHN1cnZleV90aXRsZToge1xuICAgICAgbmFtZTogXCLmqJnpoYxcIixcbiAgICAgIHRpdGxlOiBcIuWVj+WNt+aomemhjOWcqOavj+mggeS4iumDveacg+mhr+ekulwiXG4gICAgfSxcbiAgICBwYWdlX3RpdGxlOiB7XG4gICAgICBuYW1lOiBcIuaomemhjFwiLFxuICAgICAgdGl0bGU6IFwi6aCB6Z2i5qiZ6aGMXCJcbiAgICB9XG4gIH1cbn07XG5cbmVkaXRvckxvY2FsaXphdGlvbi5sb2NhbGVzW1wiemgtdHdcIl0gPSB0cmFkaXRpb25hbENoaW5lc2VUcmFuc2xhdGlvbjtcbiIsImltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IHZhciB0dXJraXNoU3RyaW5ncyA9IHtcbiAgLy9zdXJ2ZXkgdGVtcGxhdGVzXG4gIHN1cnZleToge1xuICAgIGVkaXQ6IFwiRMO8emVubGVcIixcbiAgICBleHRlcm5hbEhlbHBMaW5rOiBcIk5hc8SxbCBhbmtldCBvbHXFn3R1cnVsdXIgaXpsZVwiLFxuICAgIGV4dGVybmFsSGVscExpbmtVcmw6XG4gICAgICBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNIMnJ1OW9rSWNvb05aZnBJYnlxNHFRP3ZpZXdfYXM9c3Vic2NyaWJlclwiLFxuICAgIGRyb3BRdWVzdGlvbjogXCJMw7x0ZmVuIGFyYcOnIGt1dHVzdW5kYW4gYmlyIHNvcnUgc8O8csO8a2xleWluLlwiLFxuICAgIGFkZExvZ2ljSXRlbTogXCJBbmtldCBha8SxxZ/EsW7EsSDDtnplbGxlxZ90aXJtZWsgacOnaW4gYmlyIGt1cmFsIG9sdcWfdHVydW4uXCIsXG4gICAgY29weTogXCJLb3B5YWxhXCIsXG4gICAgYWRkVG9Ub29sYm94OiBcIkFyYcOnIGt1dHVzdW5hIGVrbGVcIixcbiAgICBkZWxldGVQYW5lbDogXCJQYW5lbGkgU2lsXCIsXG4gICAgZGVsZXRlUXVlc3Rpb246IFwiU29ydXl1IFNpbFwiLFxuICAgIGNvbnZlcnRUbzogXCLDh2V2aXJcIixcbiAgICBkcmFnOiBcIk5lc25lIHPDvHLDvGtsZXlpblwiLFxuICB9LFxuICAvL3F1ZXN0aW9uVHlwZXNcbiAgcXQ6IHtcbiAgICBkZWZhdWx0OiBcIlZhcnNhecSxbGFuXCIsXG4gICAgY2hlY2tib3g6IFwiT25heSBLdXR1c3VcIixcbiAgICBjb21tZW50OiBcIllvcnVtXCIsXG4gICAgaW1hZ2VwaWNrZXI6IFwiUmVzaW0gc2XDp2ljaVwiLFxuICAgIGltYWdlOiBcIlJlc2ltXCIsXG4gICAgZHJvcGRvd246IFwiU2XDp2ltIEvEsXV0dXN1XCIsXG4gICAgZmlsZTogXCJEb3N5YVwiLFxuICAgIGh0bWw6IFwiSHRtbFwiLFxuICAgIG1hdHJpeDogXCJNYXRyaXggKHRlayBzZcOnaW0pXCIsXG4gICAgbWF0cml4ZHJvcGRvd246IFwiTWF0cml4ICjDp29rbHUgc2XDp2ltKVwiLFxuICAgIG1hdHJpeGR5bmFtaWM6IFwiTWF0cml4IChkaW5hbWlrIHNhdMSxcilcIixcbiAgICBtdWx0aXBsZXRleHQ6IFwiw4dva2x1IFlhesSxXCIsXG4gICAgcGFuZWw6IFwiUGFuZWxcIixcbiAgICBwYW5lbGR5bmFtaWM6IFwiUGFuZWwgKGRpbmFtaWsgcGFuZWwpXCIsXG4gICAgcmFkaW9ncm91cDogXCJTZcOnaW0gR3J1YnVcIixcbiAgICByYXRpbmc6IFwiRGXEn2VybGVuZGlybWVcIixcbiAgICB0ZXh0OiBcIlRlayBHaXJkaVwiLFxuICAgIGJvb2xlYW46IFwiTWFudMSxa3NhbCDEsGZhZGVcIixcbiAgICBleHByZXNzaW9uOiBcIsSwZmFkZSAoZMO8emVubGVuZW1leilcIixcbiAgICBzaWduYXR1cmVwYWQ6IFwixLBtemEgRGVmdGVyaVwiLFxuICAgIGZsb3dwYW5lbDogXCJBa8SxxZ8gUGFuZWxpXCIsXG4gIH0sXG4gIC8vU3RyaW5ncyBpbiBFZGl0b3JcbiAgZWQ6IHtcbiAgICBkZWZhdWx0TG9jYWxlOiBcIlZhcnlhecSxbGFuICh7MH0pXCIsXG4gICAgc3VydmV5OiBcIkFua2V0XCIsXG4gICAgc2V0dGluZ3M6IFwiQW5rZXQgQXlhcmxhcsSxXCIsXG4gICAgc2V0dGluZ3NUb29sdGlwOiBcIkFua2V0IGF5YXJsYXLEsW7EsSBhw6dcIixcbiAgICAvL29wamVjdFByb3BlcnRpZXNIZWFkZXI6IFwiR2VsacWfbWnFn1wiLFxuICAgIC8vc2hvd09iamVjdFByb3BlcnRpZXM6IFwiTmVzbmUgw5Z6ZWxsaWtsZXJpbmkgR8O2c3RlclwiLFxuICAgIC8vaGlkZU9iamVjdFByb3BlcnRpZXM6IFwiTmVzbmUgw5Z6ZWxsaWtsZXJpbmkgR2l6bGVcIixcbiAgICBzaG93UGFuZWw6IFwiUGFuZWxpIEfDtnN0ZXJcIixcbiAgICBoaWRlUGFuZWw6IFwiUGFuZWxpIEdpemxlXCIsXG4gICAgLy9lZGl0U3VydmV5OiBcIkFua2V0aSBEw7x6ZW5sZVwiLFxuICAgIGFkZE5ld1BhZ2U6IFwiWWVuaSBTYXlmYSBFa2xlXCIsXG4gICAgbW92ZVJpZ2h0OiBcIlNhxJ9hIHPDvHLDvGtsZVwiLFxuICAgIG1vdmVMZWZ0OiBcIlNvbGEgc8O8csO8a2xlXCIsXG4gICAgZGVsZXRlUGFnZTogXCJTYXlmYXnEsSBTaWxcIixcbiAgICBlZGl0UGFnZTogXCJTYXlmYXnEsSBEw7x6ZW5sZVwiLFxuICAgIGVkaXQ6IFwiRMO8emVubGVcIixcbiAgICBuZXdQYWdlTmFtZTogXCJTYXlmYVwiLFxuICAgIG5ld1F1ZXN0aW9uTmFtZTogXCJTb3J1XCIsXG4gICAgbmV3UGFuZWxOYW1lOiBcIlBhbmVsXCIsXG4gICAgbmV3VGV4dEl0ZW1OYW1lOiBcIllhesSxXCIsXG4gICAgdGVzdFN1cnZleTogXCJBbmtldGkgVGVzdCBFdFwiLFxuICAgIHRlc3RTdXJ2ZXlBZ2FpbjogXCJBbmtldGkgVGVrcmFyIFRlc3QgRXRcIixcbiAgICB0ZXN0U3VydmV5V2lkdGg6IFwiQW5rZXQgZ2VuacWfbGnEn2k6IFwiLFxuICAgIG5hdmlnYXRlVG9Nc2c6IFwixZ51cmF5YSBnaXQ6XCIsXG4gICAgbG9naWM6IFwiTWFudMSxa3NhbCBBbmtldFwiLFxuICAgIGVtYmVkU3VydmV5OiBcIkfDtm3DvGzDvCBBbmtldFwiLFxuICAgIHRyYW5zbGF0aW9uOiBcIsOHZXZpcmlcIixcbiAgICBzYXZlU3VydmV5OiBcIkFua2V0aSBLYXlkZXRcIixcbiAgICBzYXZlU3VydmV5VG9vbHRpcDogXCJBbmtldGkgS2F5ZGV0XCIsXG4gICAgZGVzaWduZXI6IFwiQW5rZXQgVGFzYXLEsW3EsVwiLFxuICAgIGpzb25FZGl0b3I6IFwiSlNPTiBFZGl0b3JcIixcbiAgICB1bmRvOiBcIkdlcmlcIixcbiAgICByZWRvOiBcIsSwbGVyaVwiLFxuICAgIHVuZG9Ub29sdGlwOiBcIlNvbiBkZcSfacWfaWtsacSfaSBnZXJpIGFsXCIsXG4gICAgcmVkb1Rvb2x0aXA6IFwiU29uIGRlxJ9pxZ9pa2xpxJ9pIGlsZXJpIGFsXCIsXG4gICAgb3B0aW9uczogXCJTZcOnZW5la2xlclwiLFxuICAgIGdlbmVyYXRlVmFsaWRKU09OOiBcIkpTT04gT2x1xZ90dXJcIixcbiAgICBnZW5lcmF0ZVJlYWRhYmxlSlNPTjogXCJPa3VuYWJpbGlyIEpTT04gb2x1xZ90dXJcIixcbiAgICB0b29sYm94OiBcIkFyYcOnIEt1dHVzdVwiLFxuICAgIFwicHJvcGVydHktZ3JpZFwiOiBcIsOWemVsbGlrbGVyXCIsXG4gICAgdG9vbGJveEdlbmVyYWxDYXRlZ29yeTogXCJHZW5lbFwiLFxuICAgIC8vZGVsU2VsT2JqZWN0OiBcIlNlw6dpbGkgbmVzbmV5aSBzaWxcIixcbiAgICAvL2VkaXRTZWxPYmplY3Q6IFwiU2XDp2lsaSBuZXNuZXlpIGTDvHplbmxlXCIsXG4gICAgY29ycmVjdEpTT046IFwiSlNPTiBuZXNuZXNpbmkgZG/En3J1bGFyLlwiLFxuICAgIHN1cnZleVJlc3VsdHM6IFwiQW5rZXQgU29udWN1OiBcIixcbiAgICBzdXJ2ZXlSZXN1bHRzVGFibGU6IFwiVGFibG8gb2xhcmFrXCIsXG4gICAgc3VydmV5UmVzdWx0c0pzb246IFwiSlNPTiBvbGFyYWtcIixcbiAgICByZXN1bHRzVGl0bGU6IFwiU29ydSBiYcWfbMSxxJ/EsVwiLFxuICAgIHJlc3VsdHNOYW1lOiBcIlNvcnUgYWTEsVwiLFxuICAgIHJlc3VsdHNWYWx1ZTogXCJDZXZhcCBkZcSfZXJpXCIsXG4gICAgcmVzdWx0c0Rpc3BsYXlWYWx1ZTogXCJHw7Zyw7xuZW4gZGXEn2VyXCIsXG4gICAgbW9kaWZpZWQ6IFwiRMO8emVubGVuZGlcIixcbiAgICBzYXZpbmc6IFwiS2F5ZGVkaWxpeW9yXCIsXG4gICAgc2F2ZWQ6IFwiS2F5ZGVkaWxkaVwiLFxuICAgIHNhdmVFcnJvcjogXCJIYXRhISBFZGl0b3IgacOnZXJpc2kga2F5ZGVkaWxtZWRpLlwiLFxuICAgIHRyYW5zbGF0aW9uQWRkTGFuZ3VhZ2U6IFwiw4dldmlyaSBpw6dpbiBkaWwgc2XDp2luaXpcIixcbiAgICB0cmFuc2xhdGlvblNob3dBbGxTdHJpbmdzOiBcIlTDvG0geWF6xLFsYXLEsSBnw7ZzdGVyXCIsXG4gICAgdHJhbnNsYXRpb25TaG93QWxsUGFnZXM6IFwiVMO8bSBzYXlmYWxhcsSxIGfDtnN0ZXJcIixcbiAgICB0cmFuc2xhdGlvbk5vU3RyaW5nczogXCLDh2V2cmlsZWNlayB5YXrEsSB5b2suIEzDvHRmZW4sIGZpbHRyZXlpIGRlxJ9pxZ90aXJpbi5cIixcbiAgICB0cmFuc2xhdGlvbkV4cG9ydFRvU0NWQnV0dG9uOiBcIkNTViBkxLHFn2Egw6fEsWthcnRcIixcbiAgICB0cmFuc2xhdGlvbkltcG9ydEZyb21TQ1ZCdXR0b246IFwiQ1NWIGnDp2UgYWt0YXJcIixcbiAgICB0cmFuc2xhdGlvbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQ6IFwiezB9IHZhcnNhecSxbGFuIMOnZXZpcmkgaWxlIHPEsWvEscWfdMSxclwiLFxuICAgIGJvbGQ6IFwiS2FsxLFuXCIsXG4gICAgaXRhbGljOiBcIkl0YWxpa1wiLFxuICAgIHVuZGVybGluZTogXCJBbHQgw4dpemdpXCIsXG4gICAgZnBBZGRRdWVzdGlvbjogXCJTb3J1IEVrbGUuLi5cIixcbiAgICAvL2NvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbkl0ZW1UZXh0OiBcIkfDtnN0ZXIgRcSfZXI6XCIsXG4gICAgbGc6IHtcbiAgICAgIC8vTG9naWMgdGFiIHN0cmluZ3NcbiAgICAgIHBhZ2VfdmlzaWJpbGl0eU5hbWU6IFwiU2F5ZmEgZ8O2csO8bsO8cnNlXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5TmFtZTogXCJQYW5lbCBnw7Zyw7xuw7xyc2VcIixcbiAgICAgIHBhbmVsX2VuYWJsZU5hbWU6IFwiUGFuZWwgYWt0aWYvcGFzaWYgaXNlXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5TmFtZTogXCJTb3J1IGfDtnLDvMO8cnNlXCIsXG4gICAgICBxdWVzdGlvbl9lbmFibGVOYW1lOiBcIlNvcnUgYWt0aWYvcGFzaWZzZVwiLFxuICAgICAgcXVlc3Rpb25fcmVxdWlyZU5hbWU6IFwiU29ydSBpc3RlxJ9lIGJhxJ9sxLEgem9ydW5sdXlzYVwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZU5hbWU6IFwiQW5rZXRpIHRhbWFtbGFcIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVOYW1lOiBcIlNvcnUgZGXEn2VyaW5pIGfDvG5jZWxsZVwiLFxuICAgICAgdHJpZ2dlcl9jb3B5dmFsdWVOYW1lOiBcIlNvcnUgZGXEn2VyaW5pIGtvcHlhbGFcIixcbiAgICAgIHRyaWdnZXJfc2tpcE5hbWU6IFwiU29ydXl1IGF0bGFcIixcbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvbk5hbWU6IFwiVmFyc2F5xLFsYW4gaWZhZGV5aSDDp2FsxLHFn3TEsXJcIixcbiAgICAgIGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbk5hbWU6IFwiVmFyeWFsxLFuICdUZcWfZWtrw7xyIHNheWZhc8SxJyB5YXrEsXPEsVwiLFxuXG4gICAgICBwYWdlX3Zpc2liaWxpdHlEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJNYW50xLFrc2FsIHNvcmd1IGdlw6dlcmxpIG9sZHXEn3UgemFtYW4gc2F5ZmF5xLEgZ8O2csO8bsO8ciB5YXAuIEFrc2kgdGFrZGlyZGUgZ2l6bGUuXCIsXG4gICAgICBwYW5lbF92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiTWFudMSxa3NhbCBzb3JndSBnZcOnZXJsaSBvbGR1xJ91IHphbWFuIHBhbmVsaSBnw7Zyw7xuw7xyIHlhcC4gQWtzaSB0YWtkaXJkZSBnaXpsZS5cIixcbiAgICAgIHBhbmVsX2VuYWJsZURlc2NyaXB0aW9uOlxuICAgICAgICBcIlBhbmVsIG9sdcWfdHVyIHZlIHTDvG0gbmVzbmVsZXJpIHBhbmVsaW4gacOnaW5lIGFsLiBNYW50xLFrc2FsIHNvcmd1IGdlw6dlcmxpIG9sZHXEn3VuZGEgcGFuZWxpIGFrdGlmIGV0LiBBa3NpIHRha2RpcmRlIHTDvG3DvG7DvCBwYXNpZmxlxZ90aXIuXCIsXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5RGVzY3JpcHRpb246XG4gICAgICAgIFwiTWFudMSxa3NhbCBzb3JndSBnZcOnZXJsaSBvbGR1xJ91bmRhIHNvcnV5dSBnw7Zyw7xuw7xyIHlhcC4gQWtzaSB0YWtkaXJkZSBnaXpsZS5cIixcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZURlc2NyaXB0aW9uOlxuICAgICAgICBcIk1hbnTEsWtzYWwgc29yZ3UgZ2XDp2VybGkgb2xkdcSfdW5kYSBzb3J1eXUgYWt0aWYgeWFwLiBBa3NpIHRha2RpcmRlIHBhc2lmbGXFn3Rpci5cIixcbiAgICAgIHF1ZXN0aW9uX3JlcXVpcmVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJNYW50xLFrc2FsIHNvcmd1IGdlw6dlcmxpIG9sZHXEn3VuZGEgc29ydXl1IHpvcnVubHUgb2xhcmFrIGTDvHplbmxlLlwiLFxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIk1hbnTEsWtzYWwgc29yZ3UgZ2XDp2VybGkgb2xkdcSfdW5kYSBhbmtldGkgdGFtYW1sYSB2ZSBzb24ga3VsbGFuxLF5YSAnVGXFn2Vra8O8ciBzYXlmYXPEsSduxLEgZ8O2c3Rlci5cIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJNYW50xLFrIGlmYWRlc2luZGUga3VsbGFuxLFsYW4gc29ydSBkZcSfZXJsZXJpIGRlxJ9pxZ90aXJpbGRpxJ9pbmRlIHZlIG1hbnTEsWsgaWZhZGVzaSB0cnVlIGRlxJ9lcmluaSBkw7ZuZMO8cmTDvMSfw7xuZGUsIGRlxJ9lciBzZcOnaWxlbiBzb3J1eWEgYXlhcmxhbnPEsW4uXCIsXG4gICAgICB0cmlnZ2VyX2NvcHl2YWx1ZURlc2NyaXB0aW9uOlxuICAgICAgICBcIk1hbnTEsWsgaWZhZGVzaW5kZSBrdWxsYW7EsWxhbiBzb3J1IGRlxJ9lcmxlcmkgZGXEn2nFn3RpcmlsZGnEn2luZGUgdmUgbWFudMSxayBpZmFkZXNpIHRydWUgZGXEn2VyaW5pIGTDtm5kw7xyZMO8xJ/DvG5kZSwgc2XDp2lsZW4gYmlyIHNvcnVudW4gZGXEn2VyaSBzZcOnaWxlbiBiYcWfa2EgYmlyIHNvcnV5YSBrb3B5YWxhbnPEsW4uXCIsXG4gICAgICB0cmlnZ2VyX3NraXBEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJNYW50xLFrc2FsIGlmYWRlIGdlw6dlcmxpIG9sZHXEn3VuZGEgYW5rZXQgc2XDp2lsZW4gc29ydXlhIGF0bGFzxLFuIC8gb2Rha2xhbnPEsW4uXCIsXG4gICAgICB0cmlnZ2VyX3J1bkV4cHJlc3Npb25EZXNjcmlwdGlvbjpcbiAgICAgICAgXCJNYW50a3NhbCBpZmFkZSBnZcOnZXJsaSBvbGR1xJ91bmRhIHZlIMO2emVsIGlmYWRlIGdlcmXDp2xpIG9sdXIuIMSwc3RlxJ9lIGJhxJ9sxLEgb2xhcmFrIGJ1IGlmYWRlIHNvbnVjdW51IHNlw6dpbGVuIHNvcnV5YSBheWFybGF5YWJpbGlyc2luaXouXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb25EZXNjcmlwdGlvbjpcbiAgICAgICAgXCJFxJ9lciBtYW50xLFrc2EgaWZhZGUgZ2XDp2VybGkgb2x1cnNhLCB2YXJzYXnEsWxhbiAnJ1RlxZ9la2vDvHJsZXIgc2F5ZmFzxLEnIHlhesSxc8SxIGdpcmlsZW4gaWxlIGTEn2VpxZ90aXJpbHNpbi5cIixcblxuICAgICAgaXRlbUV4cHJlc3Npb25UZXh0OiBcIk1hbnTEsWtzYWwgaWZhZGU6ICd7MH0nIGdlw6dlcmxpIG9sc3VuOlwiLCAvL3swfSAtIHRoZSBleHByZXNzaW9uXG4gICAgICBwYWdlX3Zpc2liaWxpdHlUZXh0OiBcInswfSBzYXlmYXnEsSBnw7Zyw7xuw7xyIHlhcFwiLCAvL3swfSBwYWdlIG5hbWVcbiAgICAgIHBhbmVsX3Zpc2liaWxpdHlUZXh0OiBcInswfSBwYW5lbGkgZ8O2csO8bsO8ciB5YXBcIiwgLy97MH0gcGFuZWwgbmFtZVxuICAgICAgcGFuZWxfZW5hYmxlVGV4dDogXCJ7MH0gcGFuZWwgYWt0aWYgb2x1clwiLCAvL3swfSBwYW5lbCBuYW1lXG4gICAgICBxdWVzdGlvbl92aXNpYmlsaXR5VGV4dDogXCJ7MH0gc29ydXl1IGfDtnLDvG7DvHIgeWFwXCIsIC8vezB9IHF1ZXN0aW9uIG5hbWVcbiAgICAgIHF1ZXN0aW9uX2VuYWJsZVRleHQ6IFwiezB9IHNvcnV5dSBha3RpZiB5YXBcIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgcXVlc3Rpb25fcmVxdWlyZVRleHQ6IFwiezB9IGNldmFixLEgem9ydW5sdSB5YXBcIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgdHJpZ2dlcl9jb21wbGV0ZVRleHQ6IFwiQW5rZXQgdGFtYW1sYW5kxLFcIixcbiAgICAgIHRyaWdnZXJfc2V0dmFsdWVUZXh0OiBcIlNvcnVudW4gacOnaW5lOiB7MH0gZGXEn2VyIHsxfVwiLCAvL3swfSBxdWVzdGlvbiBuYW1lLCB7MX0gc2V0VmFsdWVcbiAgICAgIHRyaWdnZXJfY29weXZhbHVlVGV4dDogXCJTb3J1c3VuZGFuIHsxfSwgezB9IGRlxJ9lcmluaSwgc29ydXlhIGtvcHlhbGFcIiwgLy97MH0gYW5kIHsxfSBxdWVzdGlvbiBuYW1lc1xuICAgICAgdHJpZ2dlcl9za2lwVGV4dDogXCJTb3J1eWEgZ2XDpyB7MH1cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgdHJpZ2dlcl9ydW5FeHByZXNzaW9uVGV4dDE6IFwiTWFudMSxa3NhbCBpZmFkZXlpIMOnYWzEscWfdMSxcjogJ3swfSdcIiwgLy97MH0gdGhlIGV4cHJlc3Npb25cbiAgICAgIHRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQyOiBcIiB2ZSBzb251w6cgZGXEn2VyaW5pIHNvcnV5YSBla2xlOiB7MH1cIiwgLy97MH0gcXVlc3Rpb24gbmFtZVxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uVGV4dDogXCLDlnplbCAnVGXFn2Vra8O8cmxlciBzYXlmYXPEsW7EsScgZ8O2c3Rlci5cIixcblxuICAgICAgY29uZGl0aW9uczogXCJLb8WfdWwobGFyKVwiLFxuICAgICAgYWN0aW9uczogXCJPbGF5KGxhcilcIixcbiAgICAgIGV4cHJlc3Npb25FZGl0b3JUaXRsZTogXCJLb8WfdWwobGFyxLEpIHRhbsSxbWxhXCIsXG4gICAgICBhY3Rpb25zRWRpdG9yVGl0bGU6IFwiT2xheShsYXLEsSkgdGFuxLFtbGFcIixcblxuICAgICAgZGVsZXRlQWN0aW9uOiBcIk9sYXnEsSBTaWxcIixcbiAgICAgIGFkZE5ld0FjdGlvbjogXCJZZW5pIG9sYXkgZWtsZVwiLFxuICAgICAgc2VsZWN0ZWRBY3Rpb25DYXB0aW9uOiBcIkVrbGVtZWsgacOnaW4gYmlyIG9sYXkgc2XDp2luLi4uXCIsXG5cbiAgICAgIGV4cHJlc3Npb25JbnZhbGlkOlxuICAgICAgICBcIk1hbnTEsWtzYWwgaWZhZGUgYm/FnyB2ZXlhIGdlw6dlcnNpei4gTMO8dGZlbiBkw7x6ZW5sZXlpbi5cIixcbiAgICAgIG5vQWN0aW9uRXJyb3I6IFwiTMO8dGZlbiwgRW4gYXogYmlyIG9sYXkgc2XDp2luaXouXCIsXG4gICAgICBhY3Rpb25JbnZhbGlkOiBcIkzDvHRmZW4sIE9sYXkobGFyKWRha2kgc29ydW5sYXLEsSBnaWRlcmluaXouXCIsXG4gICAgICBleHByZXNzaW9uU2V0dXA6IFwiXCIsXG4gICAgICBhY3Rpb25zU2V0dXA6IFwiXCIsXG4gICAgfSxcbiAgfSxcbiAgLy9Qcm9wZXJ0eSBuYW1lcyBpbiB0YWJsZSBoZWFkZXJzXG4gIC8vIHBlbDoge1xuICAvLyAgIGlzUmVxdWlyZWQ6IFwiUmVxdWlyZWQ/XCJcbiAgLy8gfSxcbiAgLy9Qcm9wZXJ0eSBFZGl0b3JzXG4gIHBlOiB7XG4gICAgYXBwbHk6IFwiVXlndWxhXCIsXG4gICAgb2s6IFwiVEFNQU1cIixcbiAgICBzYXZlOiBcIktheWRldFwiLFxuICAgIGNhbmNlbDogXCLEsHB0YWxcIixcbiAgICByZXNldDogXCJTxLFmxLFybGFcIixcbiAgICByZWZyZXNoOiBcIlllbmlsZVwiLFxuICAgIC8vIGNsb3NlOiBcIkNsb3NlXCIsXG4gICAgZGVsZXRlOiBcIlNpbFwiLFxuICAgIGFkZDogXCJFa2xlXCIsXG4gICAgYWRkTmV3OiBcIlllbmkgRWtsZVwiLFxuICAgIGFkZEl0ZW06IFwiWWVuaSBuZXNuZSBla2xlbWUgacOnaW4gdMSxa2xhecSxbsSxei4uLlwiLFxuICAgIGFkZE90aGVyOiBcIkRpxJ9lclwiLFxuICAgIGFkZFNlbGVjdEFsbDogXCJUw7xtw7xuw7wgU2XDp1wiLFxuICAgIGFkZE5vbmU6IFwiSGnDp2JpcmlcIixcbiAgICByZW1vdmVBbGw6IFwiVMO8bcO8bsO8IFNpbFwiLFxuICAgIGVkaXQ6IFwiRMO8emVubGVcIixcbiAgICBiYWNrOiBcIktheWRldG1lZGVuIMOnxLFrXCIsXG4gICAgc2F2ZUFuZEJhY2s6IFwiS2F5ZGV0IHZlIMOnxLFrXCIsXG4gICAgLy8gaXRlbVZhbHVlRWRpdDogXCJWaXNpYmxlIElmXCIsXG4gICAgZWRpdENob2ljZXM6IFwiU2XDp2VuZWtsZXJpIGTDvHplbmxlXCIsXG4gICAgc2hvd0Nob2ljZXM6IFwiU2XDp2VuZWtsZXJpIGfDtnN0ZXJcIixcbiAgICBtb3ZlOiBcIkhhcmVrZXRcIixcbiAgICBlbXB0eTogXCI8Ym/Fnz5cIixcbiAgICAvLyBub3RFbXB0eTogXCI8ZWRpdCB2YWx1ZT5cIixcbiAgICBmYXN0RW50cnk6IFwiSMSxemzEsSBHaXJpxZ9cIixcbiAgICBmb3JtRW50cnk6IFwiRm9ybSBHaXJpxZ9pXCIsXG4gICAgdGVzdFNlcnZpY2U6IFwiU2VydmlzaSB0ZXN0IGV0XCIsXG4gICAgaXRlbVNlbGVjdG9yRW1wdHk6IFwiTMO8dGZlbiBuZXNuZXlpIHNlw6dpbml6XCIsXG4gICAgY29uZGl0aW9uQWN0aW9uRW1wdHk6IFwiTMO8dGZlbiBvbGF5xLEgc2XDp2luaXpcIixcbiAgICBjb25kaXRpb25TZWxlY3RRdWVzdGlvbjogXCJTb3J1eXUgc2XDpy4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhZ2U6IFwiU2F5ZmF5xLEgc2XDpy4uLlwiLFxuICAgIGNvbmRpdGlvblNlbGVjdFBhbmVsOiBcIlBhbmVsaSBzZcOnLi4uXCIsXG4gICAgY29uZGl0aW9uVmFsdWVRdWVzdGlvblRpdGxlOiBcIkzDvHRmZW4gZGXEn2VyL3Nlw6dlbmVrIGdpcmluaXpcIixcbiAgICAvLyBjb25kaXRpb25IZWxwOlxuICAgIC8vICAgXCJQbGVhc2UgZW50ZXIgYSBib29sZWFuIGV4cHJlc3Npb24uIEl0IHNob3VsZCByZXR1cm4gdHJ1ZSB0byBrZWVwIHRoZSBxdWVzdGlvbi9wYWdlIHZpc2libGUuIEZvciBleGFtcGxlOiB7cXVlc3Rpb24xfSA9ICd2YWx1ZTEnIG9yICh7cXVlc3Rpb24yfSAqIHtxdWVzdGlvbjR9ICA+IDIwIGFuZCB7cXVlc3Rpb24zfSA8IDUpXCIsXG4gICAgZXhwcmVzc2lvbkhlbHA6XG4gICAgICBcIkzDvHRmZW4gbWFudMSxa3NhbCBpZmFkZSBnaXJpbml6LiBTb3J1IGRlxJ9lcmxlcmluZSBlcmnFn21layBpw6dpbiBzw7xzbMO8IHBhcmFudGV6IGt1bGxhbmFiaWxpcnNpbml6OiAne3F1ZXN0aW9uMX0gKyB7cXVlc3Rpb24yfScsICcoe3ByaWNlfSp7cXVhbnRpdHl9KSAqICgxMDAgLSB7ZGlzY291bnR9KSdcIixcbiAgICBhY2VFZGl0b3JIZWxwOiBcIk1hbnTEsWtzYWwgaWZhZGUga29weWFzxLEgacOnaW4gY3RybCtzcGFjZSB0dcWfbGFyxLFuYSBiYXPEsW7EsXpcIixcbiAgICBhY2VFZGl0b3JSb3dUaXRsZTogXCJHZcOnZXJsaSBzYXTEsXJcIixcbiAgICBhY2VFZGl0b3JQYW5lbFRpdGxlOiBcIkdlw6dlcmxpIHBhbmVsXCIsXG4gICAgc2hvd01vcmU6IFwiRGFoYSBmYXpsYSBiaWxnaSBpw6dpbiBkb2vDvG1hbnRhc3lvbnUgaW5jZWxleWluaXpcIixcbiAgICAvLyBjb25kaXRpb25TaG93TW9yZVVybDpcbiAgICAvLyAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Eb2N1bWVudGF0aW9uL0xpYnJhcnlQYXJhbWV0ZXI/aWQ9UXVlc3Rpb24mcGFyYW1ldGVyPXZpc2libGVJZlwiLFxuICAgIGFzc2lzdGFudFRpdGxlOiBcIkVyacWfaWxlYmlsaXIgc29ydWxhcjpcIixcbiAgICBjZWxsc0VtcHR5Um93c0NvbHVtbnM6IFwiRW4gYXogYmlyIGtvbG9uIHZleWEgc2F0xLFyIG9sbWFsxLFcIixcblxuICAgIHByb3BlcnR5SXNFbXB0eTogXCJMw7x0ZmVuIGRlxJ9lciBnaXJpbml6XCIsXG4gICAgcHJvcGVydHlOYW1lSXNOb3RVbmlxdWU6IFwiTMO8dGZlbiBiZW56ZXJzaXogYmlyIGlzaW0gZ2lyaW5pelwiLFxuICAgIGxpc3RJc0VtcHR5OiBcIlllbmkgZWxlbWFuIGVrbGVcIixcbiAgICBleHByZXNzaW9uSXNFbXB0eTogXCJNYW50xLFrc2FsIGlmYWRlIGJvxZ9cIixcbiAgICB2YWx1ZTogXCJEZcSfZXJcIixcbiAgICB0ZXh0OiBcIllhesSxXCIsXG4gICAgcm93aWQ6IFwiU2F0xLFyIElEXCIsXG4gICAgaW1hZ2VMaW5rOiBcIlJlc2ltIGxpbmtpXCIsXG4gICAgY29sdW1uRWRpdDogXCJLb2xvbnUgZMO8emVubGU6IHswfVwiLFxuICAgIGl0ZW1FZGl0OiBcIkVsZW1hbiBkw7x6ZW5sZTogezB9XCIsXG5cbiAgICB1cmw6IFwiVVJMXCIsXG4gICAgcGF0aDogXCJZb2xcIixcbiAgICB2YWx1ZU5hbWU6IFwiRGXEn2VyIGFkxLFcIixcbiAgICB0aXRsZU5hbWU6IFwiQmHFn2zEsWsgYWTEsVwiLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFwiQmHFn2zEsWtcIixcbiAgICBzdXJ2ZXlUaXRsZVBsYWNlaG9sZGVyOiBcIkFua2V0IGJhxZ9sxLHEn8SxXCIsXG4gICAgcGFnZVRpdGxlUGxhY2Vob2xkZXI6IFwiU2F5ZmEgYmHFn2zEscSfxLFcIixcbiAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIkJpciBhw6fEsWtsYW1hIGdpcmluaXpcIixcbiAgICBzdXJ2ZXlEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIkFua2V0IGHDp8Sxa2xhbWFzxLEgZ2lyaW5pelwiLFxuICAgIHBhZ2VEZXNjcmlwdGlvblBsYWNlaG9sZGVyOiBcIlNheWZhIGHDp8Sxa2xhbWFzxLEgZ2lyaW5pelwiLFxuXG4gICAgaGFzQ29tbWVudDogXCJZb3J1bXUgdmFyXCIsXG4gICAgc2hvd090aGVySXRlbTogXCJCYcWfa2EgYmlyIMO2xJ9leWUgc2FoaXBcIixcbiAgICBvdGhlclRleHQ6IFwiRGnEn2VyIGVsZW1hbiBtZXRuaVwiLFxuICAgIHNob3dDbGVhckJ1dHRvbjogXCJUZW1pemxlbWUgYnV0b251bnUgZ8O2c3RlclwiLFxuICAgIGFsbG93RW1wdHlSZXNwb25zZTogXCJCb8WfIGNldmFiYSBpemluIHZlclwiLFxuICAgIHNob3dOb25lSXRlbTogXCJIacOnYmlyIGVsZW1hbmEgc2FoaXAgZGXEn2lsXCIsXG4gICAgbm9uZVRleHQ6IFwiSGnDp2JpciBlbGVtYW4gbWV0bmlcIixcbiAgICBoYXNTZWxlY3RBbGw6IFwiVMO8bSBlbGVtYW5sYXIgc2XDp2lsZGlcIixcbiAgICBzZWxlY3RBbGxUZXh0OiBcIlTDvG0gZWxlbWFubGFyxLFuIHlhesSxc8SxbsSxIHNlw6dcIixcbiAgICBjaG9pY2VzTWluOiBcIk90b21hdGlrIG9sdcWfdHVydWxhbiDDtsSfZWxlciBpw6dpbiBtaW5pbXVtIGRlxJ9lclwiLFxuICAgIGNob2ljZXNNYXg6IFwiT3RvbWF0aWsgb2x1xZ90dXJ1bGFuIMO2xJ9lbGVyIGnDp2luIG1ha3NpbXVtIGRlxJ9lclwiLFxuICAgIGNob2ljZXNTdGVwOiBcIk90b21hdGlrIG9sdcWfdHVydWxhbiDDtsSfZWxlciBhcmFzxLFuZGFraSBmYXJrXCIsXG4gICAgc2hvd09wdGlvbnNDYXB0aW9uOiBcIlNlw6dlbmVrbGVyaW4gYmHFn2zEscSfxLFuxLEgZ8O2c3RlclwiLFxuICAgIG5hbWU6IFwiaXNpbVwiLFxuICAgIHRpdGxlOiBcIkJhxZ9sxLFrXCIsXG4gICAgY2VsbFR5cGU6IFwiSMO8Y3JlIHRpcGlcIixcbiAgICBjb2xDb3VudDogXCJLb2xvbiBzYXnEsXPEsVwiLFxuICAgIGNob2ljZXNPcmRlcjogXCJTZcOnZW5layBzxLFyYXPEsW7EsSBzZcOnXCIsXG4gICAgdmlzaWJsZTogXCJHw7Zyw7xuw7xyP1wiLFxuICAgIGlzUmVxdWlyZWQ6IFwiWm9ydW5sdT9cIixcbiAgICBkZWZhdWx0VmFsdWVFeHByZXNzaW9uOiBcIlZhcnNhecSxbGFuIGRlxJ9lciB0YW7EsW3EsVwiLFxuICAgIGlzQWxsUm93UmVxdWlyZWQ6IFwiVMO8bSBzYXTEsXJsYXIgem9ydW5sdVwiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OiBcIlpvcnVubHUgaGF0YSB5YXrEsXPEsVwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiWWVuaSBzYXTEsXJsYSBiYcWfbGE/XCIsXG4gICAgcm93czogXCJTYXTEsXIgc2F5xLFzxLFcIixcbiAgICBjb2xzOiBcIktvbG9uIHNhecSxc8SxXCIsXG4gICAgcGxhY2Vob2xkZXI6IFwiR2lyacWfIHZhcnNhecSxbGFuIGnDp2VyacSfaVwiLFxuICAgIHNob3dQcmV2aWV3OiBcIlJlc2ltIMO2bml6bGVtZSBnw7ZzdGVyaWxpeW9yIG11P1wiLFxuICAgIHNob3dQcmV2aWV3QmVmb3JlQ29tcGxldGU6IFwiVGFtYW1sYW5tYWRhbiDDtm5jZSDDtm5pemxlbWV5aSBnw7ZzdGVyXCIsXG4gICAgc3RvcmVEYXRhQXNUZXh0OiBcIkRvc3lhIGnDp2VyacSfaW5pIEpTT04gc29udWN1bmRhIG1ldGluIG9sYXJhayBkZXBvbGFcIixcbiAgICBtYXhTaXplOiBcIkJheXQgY2luc2luZGVuIG1ha3NpbXVtIGRvc3lhIGJveXV0dVwiLFxuICAgIGltYWdlSGVpZ2h0OiBcIlJlc2ltIHnDvGtzZWtsacSfaVwiLFxuICAgIGltYWdlV2lkdGg6IFwiUmVzaW0gZ2VuacWfbGnEn2lcIixcbiAgICByb3dDb3VudDogXCJTYXTEsXIgc2F5xLFzxLFcIixcbiAgICBjb2x1bW5MYXlvdXQ6IFwiS29sb24geWVybGXFn2ltaVwiLFxuICAgIGFkZFJvd0xvY2F0aW9uOiBcIlNhdMSxciBidXRvbnUga29udW11IGVrbGVcIixcbiAgICBhZGRSb3dUZXh0OiBcIlNhdMSxciBidXRvbnUgeWF6xLFzxLEgZWtsZVwiLFxuICAgIHJlbW92ZVJvd1RleHQ6IFwiU2F0xLFyIGJ1dG9udSB5YXrEsXPEsW7EsSBrYWxkxLFyXCIsXG4gICAgcmF0ZU1pbjogXCJNaW5pbXVtIG9yYW5cIixcbiAgICByYXRlTWF4OiBcIk1ha3NpbXVtIG9yYW5cIixcbiAgICByYXRlU3RlcDogXCJPeWxhbWEgYWTEsW3EsVwiLFxuICAgIG1pblJhdGVEZXNjcmlwdGlvbjogXCJNaW5pbXVtIG9yYW4gYcOnxLFrbGFtYXPEsVwiLFxuICAgIG1heFJhdGVEZXNjcmlwdGlvbjogXCJNYWtzaW11bSBvcmFuIGHDp8Sxa2xhbWFzxLFcIixcbiAgICBpbnB1dFR5cGU6IFwiR2lyZGkgdGlwaVwiLFxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIlNlw6dlbmVrbGVyIGJhxZ9sxLHEn8SxXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlZhcnNhecSxbGFuIGRlxJ9lclwiLFxuICAgIGNlbGxzRGVmYXVsdFJvdzogXCJWYXJzYXnEsWxhbiBow7xjcmUgeWF6xLFzxLFcIixcblxuICAgIHN1cnZleUVkaXRvclRpdGxlOiBcIkFua2V0IGF5YXJsYXLEsW7EsSBkw7x6ZW5sZVwiLFxuICAgIHFFZGl0b3JUaXRsZTogXCJEw7x6ZW5sZTogezB9XCIsXG5cbiAgICBtYXhMZW5ndGg6IFwiTWFrc2ltdW0gdXp1bmx1a1wiLFxuXG4gICAgYnVpbGRFeHByZXNzaW9uOiBcIkt1clwiLFxuICAgIGVkaXRFeHByZXNzaW9uOiBcIkTDvHplbmxlXCIsXG4gICAgYW5kOiBcIlZlXCIsXG4gICAgb3I6IFwiVmV5YVwiLFxuICAgIHJlbW92ZTogXCJLYWxkxLFyXCIsXG4gICAgYWRkQ29uZGl0aW9uOiBcIktvxZ91bCBla2xlXCIsXG5cbiAgICAvL3N1cnZleVxuICAgIHNob3dUaXRsZTogXCJCYcWfbMSxxJ/EsSBnw7ZzdGVyL2dpemxlXCIsXG4gICAgbG9jYWxlOiBcIlZhcnNhecSxbGFuIGRpbFwiLFxuICAgIHNpbXVsYXRvcjogXCJDaWhheiBzZcOnaW5cIixcbiAgICBsYW5kc2NhcGVPcmllbnRhdGlvbjogXCJZYXRheVwiLFxuICAgIG1vZGU6IFwiTW9kIChkw7x6ZW5sZWJpbGlyL2TDvHplbmxlbmVtZXopXCIsXG4gICAgY2xlYXJJbnZpc2libGVWYWx1ZXM6IFwiR8O2csO8bm1leiBkZcSfZXJsZXJpIHNpbFwiLFxuICAgIGNvb2tpZU5hbWU6XG4gICAgICBcIsOHZXJleiBhZMSxIChhbmtldGkgeWVyZWwgb2xhcmFrIGlraSBrZXogZGV2cmUgZMSxxZ/EsSBixLFyYWttYWsgacOnaW4pXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiQmlyIHNvbnJha2kgc2F5ZmFkYSBhbmtldCBzb251w6dsYXLEsW7EsSBnw7ZuZGVyXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiJ0RpxJ9lcmxlcmknIGRlxJ9lcmluaSBheXLEsSBhbGFuZGEgZGVwb2xhecSxblwiLFxuICAgIHNob3dQYWdlVGl0bGVzOiBcIlNheWZhIGJhxZ9sxLFrbGFyxLFuxLEgZ8O2c3RlclwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJTYXlmYSBudW1hcmFsYXLEsW7EsSBnw7ZzdGVyXCIsXG4gICAgcGFnZVByZXZUZXh0OiBcIsOWbmNla2kgc2F5ZmEgYnV0b251IG1ldG5pXCIsXG4gICAgcGFnZU5leHRUZXh0OiBcIlllbmkgc2F5ZmEgYnV0b251IG1ldG5pXCIsXG4gICAgY29tcGxldGVUZXh0OiBcIlRhbWFtbGEgYnV0b251IG1ldG5pXCIsXG4gICAgcHJldmlld1RleHQ6IFwiw5ZuaXpsZW1lIGTDvMSfbWVzaSBtZXRuaVwiLFxuICAgIGVkaXRUZXh0OiBcIkTDvMSfbWUgbWV0bmluaSBkw7x6ZW5sZVwiLFxuICAgIHN0YXJ0U3VydmV5VGV4dDogXCJCYcWfbGEgYnV0b251IHlhesSxc8SxXCIsXG4gICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBcIkdlemlubWUgYnV0b25sYXLEsW7EsSBnw7ZzdGVyICh2YXJzYXnEsWxhbiBnZXppbm1lKVwiLFxuICAgIHNob3dQcmV2QnV0dG9uOiBcIsOWbmNla2kgYnV0b251IGfDtnN0ZXIgKGt1bGxhbsSxY8SxIMO2bmNla2kgc2F5ZmF5YSBkw7ZuZWJpbGlyKVwiLFxuICAgIGZpcnN0UGFnZUlzU3RhcnRlZDogXCJBbmtldHRla2kgaWxrIHNheWZhIGJpciBiYcWfbGFuZ8Sxw6cgc2F5ZmFzxLFkxLFyLlwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlRhbWFtbGFuYW4gc2F5ZmF5xLEgZW4gc29udW5kYSBnw7ZzdGVyIChIVE1MKVwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6XG4gICAgICBcIlTDvG0gc29ydWxhcsSxIGNldmFwbGFya2VuIG90b21hdGlrIG9sYXJhayBzb25yYWtpIHNheWZheWEgZ2l0XCIsXG4gICAgZm9jdXNPbkZpcnN0RXJyb3I6IFwixLBsayBoYXRheWEgb2Rha2xhblwiLFxuICAgIHNob3dQcm9ncmVzc0JhcjogXCLEsGxlcmxlbWUgw6d1YnXEn3VudSBnw7ZzdGVyXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIlNvcnUgYmHFn2zEscSfxLEga29udW11XCIsXG4gICAgcXVlc3Rpb25UaXRsZVBhdHRlcm46IFwiU29ydSBiYcWfbMSxxJ/EsSBrYWzEsWLEsVwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJab3J1bmx1IHNvcnUgc2VtYm9sw7xcIixcbiAgICBxdWVzdGlvblN0YXJ0SW5kZXg6IFwiU29ydSBpbmRla3NpICgxLCAyIHZleWEgJ0EnLCAnYScgZ2liaSlcIixcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzOiBcIlNvcnUgbnVtYXJhc8SxbsSxIGfDtnN0ZXJcIixcbiAgICBxdWVzdGlvblRpdGxlVGVtcGxhdGU6XG4gICAgICBcIlNvcnUgYmHFn2zEscSfxLEgxZ9hYmxvbnUsIHZhcnNhecSxbGFuIGRlxJ9lcjogJ3tub30uIHtyZXF1aXJlfSB7dGl0bGV9J1wiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJTb3J1IGhhdGFzxLEga29udW11XCIsXG4gICAgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljOiBcIsSwbGsgc29ydXl1IHNheWZhecSxIGRlxJ9pxZ90aXJtZXllIG9kYWtsYVwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIlNheWZhZGFraSDDtsSfZWxlcmluIHPEsXJhc8SxXCIsXG4gICAgbWF4VGV4dExlbmd0aDogXCJNYWtzaW11bSBtZXRpbiB1enVubHXEn3VcIixcbiAgICBtYXhPdGhlcnNMZW5ndGg6IFwiTWFrc2ltdW0gZGnEn2VybGVyaSB1enVubHXEn3VcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiQW5rZXRpIGJpdGlybWVrIGnDp2luIG1ha3NpbXVtIHPDvHJlXCIsXG4gICAgbWF4VGltZVRvRmluaXNoUGFnZTogXCJBbmtldHRlIGJpciBzYXlmYXnEsSBiaXRpcm1layBpw6dpbiBtYWtzaW11bSBzw7xyZVwiLFxuICAgIHNob3dUaW1lclBhbmVsOiBcIlphbWFubGF5xLFjxLEgcGFuZWxpbmkgZ8O2c3RlclwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJaYW1hbmxhecSxY8SxIHBhbmVsaSBtb2R1bnUgZ8O2c3RlclwiLFxuICAgIHJlbmRlck1vZGU6IFwixLDFn2xlbWUgbW9kdVwiLFxuICAgIGFsbG93QWRkUGFuZWw6IFwiUGFuZWwgZWtsZW1leWUgaXppbiB2ZXJcIixcbiAgICBhbGxvd1JlbW92ZVBhbmVsOiBcIlBhbmVsIHNpbG1leWUgaXppbiB2ZXJcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiUGFuZWwgZWtsZW1lIG1ldG5pXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIlBhbmVsIHNpbG1lIG1ldG5pXCIsXG4gICAgaXNTaW5nbGVQYWdlOiBcIlTDvG0gw7bEn2VsZXJpIHRlayBiaXIgc2F5ZmFkYSBnw7ZzdGVyXCIsXG4gICAgaHRtbDogXCJIdG1sXCIsXG4gICAgZXhwcmVzc2lvbjogXCJNYW50xLFrc2FsIMSwZmFkZVwiLFxuXG4gICAgbWluVmFsdWU6IFwiTWluaW11bSBkZcSfZXJcIixcbiAgICBtYXhWYWx1ZTogXCJNYWtzaW11bSBkZcSfZXJcIixcbiAgICBtaW5MZW5ndGg6IFwiTWluaW11bSB1enVubHVrXCIsXG4gICAgYWxsb3dEaWdpdHM6IFwiUmFrYW1sYXJhIGl6aW4gdmVyXCIsXG4gICAgbWluQ291bnQ6IFwiTWluaW11bSBtaWt0YXJcIixcbiAgICBtYXhDb3VudDogXCJNYWtzaW11bSBtaWt0YXJcIixcbiAgICByZWdleDogXCJEw7x6ZW5saSBpZmFkZVwiLFxuXG4gICAgdG90YWxUZXh0OiBcIlRvcGxhbSBtZXRuaVwiLFxuICAgIHRvdGFsVHlwZTogXCJUb3BsYW0gdGlwaVwiLFxuICAgIHRvdGFsRXhwcmVzc2lvbjogXCJUb3BsYW0gbWFudMSxa3NhbCBpZmFkZVwiLFxuICAgIHRvdGFsRGlzcGxheVN0eWxlOiBcIlRvcGxhbSBnw7Zyw7xuw7xtXCIsXG4gICAgdG90YWxDdXJyZW5jeTogXCJUb3BsYW0gcGFyYSBiaXJpbWlcIixcbiAgICB0b3RhbEZvcm1hdDogXCJUb3BsYW0gZm9ybWF0XCIsXG5cbiAgICAvLyBIZWFkZXIgIGFkb3JuZXJcbiAgICBsb2dvUG9zaXRpb246IFwiTG9nbyBwb3ppc3lvbnVcIixcbiAgICBhZGRMb2dvOiBcIkxvZ28gZWtsZS4uLlwiLFxuICAgIGNoYW5nZUxvZ286IFwiTG9nb3l1IGRlxJ9pxZ90aXIuLi5cIixcbiAgICBsb2dvV2lkdGg6IFwiTG9nbyBnZW5pxZ9saWtcIixcbiAgICBsb2dvSGVpZ2h0OiBcIkxvZ28gdXp1bmx1a1wiLFxuICAgIGxvZ29GaXQ6IFwiTG9nbyB1eWd1bmx1xJ91XCIsXG4gICAgbG9nb1Bvc2l0aW9uczoge1xuICAgICAgbm9uZTogXCJMb2dveXUga2FsZMSxclwiLFxuICAgICAgbGVmdDogXCJTb2xcIixcbiAgICAgIHJpZ2h0OiBcIlNhxJ9cIixcbiAgICAgIHRvcDogXCLDnHN0dGVcIixcbiAgICAgIGJvdHRvbTogXCJBbHR0YVwiLFxuICAgIH0sXG5cbiAgICB0YWJzOiB7XG4gICAgICBnZW5lcmFsOiBcIkdlbmVsXCIsXG4gICAgICBmaWxlT3B0aW9uczogXCJTZcOnZW5la2xlclwiLFxuICAgICAgaHRtbDogXCJIdG1sIEVkaXRvclwiLFxuICAgICAgY29sdW1uczogXCJLb2xvbmxhclwiLFxuICAgICAgcm93czogXCJTYXTEsXJsYXJcIixcbiAgICAgIGNob2ljZXM6IFwiU2XDp2VuZWtsZXJcIixcbiAgICAgIGl0ZW1zOiBcIkVsZW1hbmxhclwiLFxuICAgICAgdmlzaWJsZUlmOiBcIkfDtnN0ZXIgZcSfZXJcIixcbiAgICAgIGVuYWJsZUlmOiBcIlBhc2lmbGXFn3RpciBFxJ9lclwiLFxuICAgICAgcmVxdWlyZWRJZjogXCJab3J1bmx1IEXEn2VyXCIsXG4gICAgICByYXRlVmFsdWVzOiBcIk9yYW4gZGXEn2VybGVyaVwiLFxuICAgICAgY2hvaWNlc0J5VXJsOiBcIldlYnRlbiBzZcOnZW5la2xlclwiLFxuICAgICAgbWF0cml4Q2hvaWNlczogXCJWYXJzYXnEsWxhbiBzZcOnZW5la2xlclwiLFxuICAgICAgbXVsdGlwbGVUZXh0SXRlbXM6IFwiWWF6xLEgZ2lyZGlsZXJpXCIsXG4gICAgICBudW1iZXJpbmc6IFwiUmFrYW1sYW1hXCIsXG4gICAgICB2YWxpZGF0b3JzOiBcIkRvxJ9ydWxhecSxY8SxbGFyXCIsXG4gICAgICBuYXZpZ2F0aW9uOiBcIkdlemlubWVcIixcbiAgICAgIHF1ZXN0aW9uOiBcIlNvcnVcIixcbiAgICAgIHBhZ2VzOiBcIlNheWZhbGFyXCIsXG4gICAgICBjb21wbGV0ZWRIdG1sOiBcIlRhbWFtbGFubcSxxZ8gSFRNTFwiLFxuICAgICAgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uOiBcIktvxZ91bGRhIEhUTUwgdGFtYW1sYW5kxLFcIixcbiAgICAgIGxvYWRpbmdIdG1sOiBcIkJla2xlbWUgSFRNTGlcIixcbiAgICAgIHRpbWVyOiBcIlphbWFubGF5xLFjxLEgLyBTxLFuYXZcIixcbiAgICAgIGNhbGN1bGF0ZWRWYWx1ZXM6IFwiSGVzYXBsYW5hbiBEZcSfZXJsZXJcIixcbiAgICAgIHRyaWdnZXJzOiBcIlRldGlrbGV5aWNpbGVyXCIsXG4gICAgICB0ZW1wbGF0ZVRpdGxlOiBcIsWeYWJsb24gYmHFn2zEscSfxLFcIixcbiAgICAgIHRvdGFsczogXCJUb3BsYW1sYXJcIixcbiAgICAgIGxvZ2ljOiBcIk1hbnTEsWtcIixcbiAgICAgIGxheW91dDogXCLFnmFibG9uXCIsXG4gICAgICBkYXRhOiBcIlZlcmlcIixcbiAgICAgIHZhbGlkYXRpb246IFwiRG/En3J1bGF5xLFjxLFcIixcbiAgICAgIGNlbGxzOiBcIkjDvGNyZWxlclwiLFxuICAgICAgc2hvd09uQ29tcGxldGVkOiBcIlRhbWFtbGFuZMSxIEfDtnN0ZXJcIixcbiAgICAgIGxvZ286IFwiQW5rZXQgQmHFn2zEscSfxLFuZGEgTG9nb1wiLFxuICAgICAgb3RoZXJzOiBcIkRpxJ9lclwiLFxuICAgIH0sXG4gICAgZWRpdFByb3BlcnR5OiBcIsOWemVsbGnEn2kgZMO8emVubGUgJ3swfSdcIixcbiAgICBpdGVtczogXCJbIEVsZW1hbmxhcjogezB9IF1cIixcblxuICAgIGVudGVyTmV3VmFsdWU6IFwiTMO8dGZlbiwgZGXEn2VyIGdpcmluLlwiLFxuICAgIG5vcXVlc3Rpb25zOiBcIkFua2V0dGUgaGVyaGFuZ2kgYmlyIHNvcnUgeW9rLlwiLFxuICAgIGNyZWF0ZXRyaWdnZXI6IFwiTMO8dGZlbiBiaXIgdGV0aWtsZXlpY2kgb2x1xZ90dXJ1blwiLFxuICAgIGtleWJvYXJkQWRvcm5lclRpcDpcbiAgICAgIFwiw5bEn2V5aSBkw7x6ZW5sZW1layBpw6dpbiBlbnRlciBidXRvbnVuYSBiYXPEsW4sIMO2xJ9leWkgc2lsbWVrIGnDp2luIHNpbCBidXRvbnVuYSBiYXPEsW4sIMO2xJ9leWkgdGHFn8SxbWFrIGnDp2luIGtvbnRyb2wgYXJ0xLEgb2sgeXVrYXLEsSB2ZXlhIG9rIHR1xZ91bmEgYmFzxLFuXCIsXG4gICAgdHJpZ2dlck9uOiBcIkHDp8SxayBcIixcbiAgICB0cmlnZ2VyTWFrZVBhZ2VzVmlzaWJsZTogXCJTYXlmYWxhcsSxIGfDtnLDvG7DvHIgeWFwOlwiLFxuICAgIHRyaWdnZXJNYWtlUXVlc3Rpb25zVmlzaWJsZTogXCJFbGVtYW5sYXLEsSBnw7Zyw7xuw7xyIHlhcDpcIixcbiAgICB0cmlnZ2VyQ29tcGxldGVUZXh0OiBcIkJhxZ9hcsSxbMSxIG9sdXJzYSBhbmtldGkgdGFtYW1sYXnEsW4uXCIsXG4gICAgdHJpZ2dlck5vdFNldDogXCJUZXRpa2xleWljaSBheWFybGFubWFkxLFcIixcbiAgICB0cmlnZ2VyUnVuSWY6IFwiw4dhbMSxxZ90xLFyIGXEn2VyXCIsXG4gICAgdHJpZ2dlclNldFRvTmFtZTogXCJEZcSfZXJpbmkgxZ91cmFkYW4gZGXEn2nFn3RpcjogXCIsXG4gICAgdHJpZ2dlckZyb21OYW1lOiBcIkRlxJ9lcmluaSDFn3VyYWRhbiBrb3B5YWxhOiBcIixcbiAgICB0cmlnZ2VyUnVuRXhwcmVzc2lvbjogXCJNYW50xLFrc2FsIGlmYWRleWkgw6dhbMSxxZ90xLFyOlwiLFxuICAgIHRyaWdnZXJTZXRWYWx1ZTogXCLFn3VyYXlhOiBcIixcbiAgICB0cmlnZ2VyR290b05hbWU6IFwiU29ydXlhIGdpdDpcIixcbiAgICB0cmlnZ2VySXNWYXJpYWJsZTogXCJEZcSfacWfa2VuaSBhbmtldCBzb251Y3VuYSBrb3ltYXnEsW4uXCIsXG4gICAgdHJpZ2dlclJ1bkV4cHJlc3Npb25FbXB0eTogXCJMw7x0ZmVuIGdlw6dlcmxpIGJpciBpZmFkZSBnaXJpblwiLFxuICB9LFxuICAvL1Byb3BlcnR5IHZhbHVlc1xuICBwdjoge1xuICAgIHRydWU6IFwiRG/En3J1XCIsXG4gICAgZmFsc2U6IFwiWWFubMSxxZ9cIixcbiAgICBpbmhlcml0OiBcIkJhxZ9sYW5nxLHDp1wiLFxuICAgIHNob3c6IFwiR8O2c3RlclwiLFxuICAgIGhpZGU6IFwiR2l6bGVcIixcbiAgICBkZWZhdWx0OiBcIlZhcnNhecSxbGFuXCIsXG4gICAgaW5pdGlhbDogXCJCYcWfbGFuZ8Sxw6dcIixcbiAgICByYW5kb206IFwiUmFzdGdlbGVcIixcbiAgICBjb2xsYXBzZWQ6IFwiS2FwYWzEsVwiLFxuICAgIGV4cGFuZGVkOiBcIkdlbmnFn2xldGlsbWnFn1wiLFxuICAgIG5vbmU6IFwiWW9rXCIsXG4gICAgYXNjOiBcIkFydGFuXCIsXG4gICAgZGVzYzogXCJBemFsYW5cIixcbiAgICBpbmRldGVybWluYXRlOiBcIkJlbGlyc2l6XCIsXG4gICAgZGVjaW1hbDogXCJPbmRhbMSxa1wiLFxuICAgIGN1cnJlbmN5OiBcIlBhcmEgYmlyaW1pXCIsXG4gICAgcGVyY2VudDogXCJZw7x6ZGVcIixcbiAgICBmaXJzdEV4cGFuZGVkOiBcImZpcnN0RXhwYW5kZWRcIixcbiAgICBvZmY6IFwiS2FwYWzEsVwiLFxuICAgIG9uUGFuZWw6IFwiUGFuZWxkZVwiLFxuICAgIG9uU3VydmV5OiBcIkFua2V0dGVcIixcbiAgICBsaXN0OiBcIkxpc3RlXCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwicHJvZ3Jlc3NUb3BcIixcbiAgICBwcm9ncmVzc0JvdHRvbTogXCJwcm9ncmVzc0JvdHRvbVwiLFxuICAgIHByb2dyZXNzVG9wQm90dG9tOiBcInByb2dyZXNzVG9wQm90dG9tXCIsXG4gICAgaG9yaXpvbnRhbDogXCJZYXRheVwiLFxuICAgIHZlcnRpY2FsOiBcIkRpa2V5XCIsXG4gICAgdG9wOiBcIsOcc3RcIixcbiAgICBib3R0b206IFwiQWx0XCIsXG4gICAgdG9wQm90dG9tOiBcIsOcc3QgdmUgYWx0XCIsXG4gICAgYm90aDogXCJIZXIgaWtpc2lkZVwiLFxuICAgIGxlZnQ6IFwiU29sXCIsXG4gICAgY29sb3I6IFwiUmVua1wiLFxuICAgIGRhdGU6IFwiVGFyaWhcIixcbiAgICBkYXRldGltZTogXCJTYWF0IGlsZSBiaXJsaWt0ZSB0YXJpaFwiLFxuICAgIFwiZGF0ZXRpbWUtbG9jYWxcIjogXCJkYXRldGltZS1sb2NhbFwiLFxuICAgIGVtYWlsOiBcIkVtYWlsXCIsXG4gICAgbW9udGg6IFwiQXlcIixcbiAgICBudW1iZXI6IFwiU2F5xLFcIixcbiAgICBwYXNzd29yZDogXCLFnmlmcmVcIixcbiAgICByYW5nZTogXCJBcmFsxLFrXCIsXG4gICAgdGVsOiBcIlRlbGVmb25cIixcbiAgICB0ZXh0OiBcIllhesSxXCIsXG4gICAgdGltZTogXCJaYW1hblwiLFxuICAgIHVybDogXCJVcmxcIixcbiAgICB3ZWVrOiBcIkhhZnRhXCIsXG4gICAgaGlkZGVuOiBcIkdpemxpXCIsXG4gICAgb246IFwiQcOnxLFrXCIsXG4gICAgb25QYWdlOiBcIlNheWZhZGFcIixcbiAgICBlZGl0OiBcIkTDvHplbmxlXCIsXG4gICAgZGlzcGxheTogXCJHw7Zyw7xudMO8bGVcIixcbiAgICBvbkNvbXBsZXRlOiBcIlRhbWFtbGFuZMSxxJ/EsW5kYVwiLFxuICAgIG9uSGlkZGVuOiBcIkdpemxlbmRpxJ9pbmRlXCIsXG4gICAgYWxsOiBcIlTDvG3DvFwiLFxuICAgIHBhZ2U6IFwiU2F5ZmFcIixcbiAgICBzdXJ2ZXk6IFwiQW5rZXRcIixcbiAgICBvbk5leHRQYWdlOiBcIlNvbnJha2kgc2F5ZmFkYVwiLFxuICAgIG9uVmFsdWVDaGFuZ2VkOiBcIkRlxJ9lciBkZcSfacWfdGnEn2luZGVcIixcbiAgICBzaW5nbGVQYWdlOiBcIlRlayBzYXlmYVwiLFxuICAgIHN0YW5kYXJkOiBcIlN0YW5kYXJ0XCIsXG4gICAgcXVlc3Rpb25QZXJQYWdlOiBcIlNheWZhIGJhxZ/EsW5hIHNvcnVcIixcbiAgICBub1ByZXZpZXc6IFwiw5ZuaXpsZW1lIHlva1wiLFxuICAgIHNob3dBbGxRdWVzdGlvbnM6IFwiVMO8bSBzb3J1bGFyxLEgZ8O2c3RlclwiLFxuICAgIHNob3dBbnN3ZXJlZFF1ZXN0aW9uczogXCJDZXZhcGxhbmFuIHNvcnVsYXLEsSBnw7ZzdGVyXCIsXG4gICAgcXVlc3Rpb25zOiBcIlNvcnVsYXJcIixcbiAgICByZXF1aXJlZFF1ZXN0aW9uczogXCJHZXJla2xpIHNvcnVsYXJcIixcbiAgICBjb3JyZWN0UXVlc3Rpb25zOiBcIkRvxJ9ydSBzb3J1bGFyXCIsXG4gICAgYnV0dG9uczogXCJCdXRvbmxhclwiLFxuICAgIHVuZGVySW5wdXQ6IFwiR2lyacWfIGFsdMSxbmRhXCIsXG4gICAgdW5kZXJUaXRsZTogXCJCYcWfbMSxayBhbHTEsW5kYVwiLFxuICAgIGltYWdlOiBcIkfDtnJzZWxcIixcbiAgICBjb250YWluOiBcIsSww6dlclwiLFxuICAgIGNvdmVyOiBcIkthcHNhXCIsXG4gICAgZmlsbDogXCJEb2xkdXJcIlxuICB9LFxuICAvL09wZXJhdG9yc1xuICBvcDoge1xuICAgIGVtcHR5OiBcImJvxZ9cIixcbiAgICBub3RlbXB0eTogXCJib8WfIGRlxJ9pbFwiLFxuICAgIGVxdWFsOiBcImXFn2l0dGlyXCIsXG4gICAgbm90ZXF1YWw6IFwiZcWfaXQgZGXEn2lsZGlyXCIsXG4gICAgY29udGFpbnM6IFwiacOnZXJpclwiLFxuICAgIG5vdGNvbnRhaW5zOiBcImnDp2VybWV6XCIsXG4gICAgYW55b2Y6IFwiaGVyaGFuZ2kgYmlyaVwiLFxuICAgIGFsbG9mOiBcInTDvG3DvFwiLFxuICAgIGdyZWF0ZXI6IFwiYsO8ecO8a3TDvHJcIixcbiAgICBsZXNzOiBcImvDvMOnw7xrdMO8clwiLFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBcImLDvHnDvGsgZcWfaXR0aXJcIixcbiAgICBsZXNzb3JlcXVhbDogXCJrw7zDp8O8ayBlxZ9pdHRpclwiLFxuICB9LFxuICAvL0VtYmVkIHdpbmRvd1xuICBldzoge1xuICAgIGFuZ3VsYXI6IFwiQW5ndWxhciB2ZXJzaXlvbnUga3VsbGFuXCIsXG4gICAganF1ZXJ5OiBcIkpxdWVyeSB2ZXJzaXlvbnUga3VsbGFuXCIsXG4gICAga25vY2tvdXQ6IFwiS25vY2tvdXQgdmVyc2l5b251IGt1bGxhblwiLFxuICAgIHJlYWN0OiBcIlJlYWN0IHZlcnNpeW9udSBrdWxsYW5cIixcbiAgICB2dWU6IFwiVnVlIHZlcnNpeW9udSBrdWxsYW5cIixcbiAgICBib290c3RyYXA6IFwiQm9vdHN0cmFwXCIsXG4gICAgc3RhbmRhcmQ6IFwiQm9vdHN0cmFwc8SxelwiLFxuICAgIHNob3dPblBhZ2U6IFwiQmlyIHNheWZhZGEgYW5rZXQgZ8O2c3RlclwiLFxuICAgIHNob3dJbldpbmRvdzogXCJBbmtldGkgYmlyIHBlbmNlcmVkZSBnw7ZzdGVyXCIsXG4gICAgbG9hZEZyb21TZXJ2ZXI6IFwiQW5rZXQgSlNPTid1IHN1bnVjdWRhbiB5w7xrbGVcIixcbiAgICB0aXRsZVNjcmlwdDogXCJTY3JpcHRsZXIgdmUgc3RpbGxlclwiLFxuICAgIHRpdGxlSHRtbDogXCJIVE1MXCIsXG4gICAgdGl0bGVKYXZhU2NyaXB0OiBcIkphdmFTY3JpcHRcIixcbiAgfSxcbiAgLy9UZXN0IFN1cnZleVxuICB0czoge1xuICAgIHNlbGVjdFBhZ2U6IFwiVGVzdCBlZGlsZWNlayBzYXlmYXnEsSBzZcOnaW46XCIsXG4gICAgc2hvd0ludmlzaWJsZUVsZW1lbnRzOiBcIkfDtnLDvG5tZXogw7bEn2VsZXJpIGfDtnN0ZXJcIixcbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIGFuc3dlcmNvdW50dmFsaWRhdG9yOiBcImNldmFwIHNhecSxc8SxXCIsXG4gICAgZW1haWx2YWxpZGF0b3I6IFwiZS1tYWlsXCIsXG4gICAgZXhwcmVzc2lvbnZhbGlkYXRvcjogXCJpZmFkZVwiLFxuICAgIG51bWVyaWN2YWxpZGF0b3I6IFwibnVtZXJpa1wiLFxuICAgIHJlZ2V4dmFsaWRhdG9yOiBcInJlZ2V4XCIsXG4gICAgdGV4dHZhbGlkYXRvcjogXCJ0ZXh0XCIsXG4gIH0sXG4gIHRyaWdnZXJzOiB7XG4gICAgY29tcGxldGV0cmlnZ2VyOiBcImFua2V0aSB0YW1hbWxhXCIsXG4gICAgc2V0dmFsdWV0cmlnZ2VyOiBcImRlxJ9lcmkgYXlhcmxhXCIsXG4gICAgY29weXZhbHVldHJpZ2dlcjogXCJkZcSfZXJpIGtvcHlhbGFcIixcbiAgICBza2lwdHJpZ2dlcjogXCJzb3J1eXUgYXRsYVwiLFxuICAgIHJ1bmV4cHJlc3Npb250cmlnZ2VyOiBcIm1hbnTEsWtzYWwgaWZhZGV5aSDDp2FsxLHFn3TEsXJcIixcbiAgICB2aXNpYmxldHJpZ2dlcjogXCJnw7Zyw7xuw7xybMO8xJ/DvCBkZcSfacWfdGlyIChrdWxsYW7EsW1kYW4ga2FsZMSxcsSxbGTEsSlcIixcbiAgfSxcbiAgLy9Qcm9wZXJ0aWVzXG4gIHA6IHtcbiAgICBuYW1lOiBcImFkxLFcIixcbiAgICB0aXRsZToge1xuICAgICAgbmFtZTogXCJiYcWfbMSxa1wiLFxuICAgICAgdGl0bGU6IFwiJ0FkJyBpbGUgYXluxLF5c2EgYm/FnyBixLFyYWvEsW5cIixcbiAgICB9LFxuXG4gICAgbmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5OiBcIk5hdmlnYXN5b24gYnV0b25sYXLEsSBnw7Zyw7xuw7xybMO8xJ/DvFwiLFxuICAgIHF1ZXN0aW9uc09yZGVyOiBcIlNvcnUgc8SxcmFzxLFcIixcbiAgICBtYXhUaW1lVG9GaW5pc2g6IFwiQml0aXJtZWsgacOnaW4gbWFrc2ltdW0gemFtYW5cIixcblxuICAgIHZpc2libGU6IFwiR8O2csO8bsO8clwiLFxuICAgIHZpc2libGVJZjogXCJHw7Zyw7xuw7xyIGXEn2VyXCIsXG4gICAgcXVlc3Rpb25UaXRsZUxvY2F0aW9uOiBcIlNvcnUgYmHFn2zEscSfxLEga29udW11XCIsXG4gICAgcXVlc3Rpb25EZXNjcmlwdGlvbkxvY2F0aW9uOiBcIlNvcnUgYcOnxLFrbGFtYXPEsSBrb251bXVcIixcbiAgICBkZXNjcmlwdGlvbjogXCJBw6fEsWtsYW1hXCIsXG4gICAgc3RhdGU6IFwiRHVydW1cIixcbiAgICBpc1JlcXVpcmVkOiBcIkdlcmVrbGkgbWk/XCIsXG4gICAgcmVxdWlyZWRJZjogXCJFxJ9lciBnZXJla2xpIG1pP1wiLFxuICAgIGluZGVudDogXCJQYXJhZ3JhZlwiLFxuICAgIHJlcXVpcmVkRXJyb3JUZXh0OiBcIkdlcmVrbGkgaGF0YXPEsSB5YXrEsXPEsVwiLFxuICAgIHN0YXJ0V2l0aE5ld0xpbmU6IFwiWWVuaSBzYXTEsXJsYSBiYcWfbGFcIixcbiAgICBpbm5lckluZGVudDogXCLEsMOnIHBhcmFncmFmXCIsXG4gICAgcGFnZTogXCJTYXlmYVwiLFxuXG4gICAgd2lkdGg6IFwiR2VuacWfbGlrXCIsXG5cbiAgICBjb21tZW50VGV4dDogXCJZb3J1bSB5YXrEsXPEsVwiLFxuICAgIHZhbHVlTmFtZTogXCJEZcSfZXIgYWTEsVwiLFxuICAgIGVuYWJsZUlmOiBcIkV0a2luIGXEn2VyXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlZhcnNhecSxbGFuIGRlxJ9lclwiLFxuICAgIGNvcnJlY3RBbnN3ZXI6IFwiRG/En3J1IGNldmFwXCIsXG4gICAgcmVhZE9ubHk6IFwiU2FkZWNlIG9rdW51clwiLFxuICAgIHZhbGlkYXRvcnM6IFwiRG/En3J1bGF5xLFjxLFsYXJcIixcbiAgICB0aXRsZUxvY2F0aW9uOiBcIkJhxZ9sxLFrIGtvbnVtdVwiLFxuICAgIGRlc2NyaXB0aW9uTG9jYXRpb246IFwiQcOnxLFrbGFtYSBrb251bXVcIixcbiAgICBtaW5XaWR0aDogXCJNaW5pbXVtIGdlbmnFn2xpa1wiLFxuICAgIG1heFdpZHRoOiBcIk1ha3NpbXVtIGdlbmnFn2xpa1wiLFxuICAgIHVzZURpc3BsYXlWYWx1ZXNJbkR5bmFtaWNUZXh0czogXCJCYcWfbMSxa3RhIGfDtnLDvG5lbiBkZcSfZXJpIGt1bGxhblwiLFxuXG4gICAgaGFzQ29tbWVudDogXCJZb3J1bSB2YXIgbcSxP1wiLFxuICAgIHNob3dPdGhlckl0ZW06IFwiRGnEn2VybGVyaSB2YXIgbcSxP1wiLFxuICAgIGNob2ljZXM6IFwiU2XDp2VuZWtsZXJcIixcbiAgICBjaG9pY2VzT3JkZXI6IFwiU2XDp2VuZWsgc8SxcmFzxLFcIixcbiAgICBjaG9pY2VzQnlVcmw6IFwiVVJMJ2UgZ8O2cmUgc2XDp2ltbGVyXCIsXG4gICAgb3RoZXJUZXh0OiBcIkRpxJ9lciB5YXrEsVwiLFxuICAgIG90aGVyRXJyb3JUZXh0OiBcIkRpxJ9lciB5YXrEsSBoYXRhc8SxIHlhesSxc8SxXCIsXG4gICAgc3RvcmVPdGhlcnNBc0NvbW1lbnQ6IFwiRGnEn2VybGVyaW5pIHlvcnVtIG9sYXJhayBkZXBvbGFcIixcblxuICAgIGxhYmVsOiBcIkJhxZ9sxLFrXCIsXG4gICAgbGFiZWxUcnVlOiBcIkRvxJ9ydSBiYcWfbMSxa1wiLFxuICAgIGxhYmVsRmFsc2U6IFwiWWFubMSxxZ8gYmHFn2zEsWtcIixcbiAgICBzaG93VGl0bGU6IFwiQmHFn2zEscSfxLEgZ8O2c3RlclwiLFxuICAgIHZhbHVlVHJ1ZTogXCJEb8SfcnUgZGXEn2VyaVwiLFxuICAgIHZhbHVlRmFsc2U6IFwiWWFubMSxxZ8gZGXEn2VyaVwiLFxuXG4gICAgbXVsdGlTZWxlY3Q6IFwiw4dva2x1IFNlw6dpbVwiLFxuICAgIGNvbnRlbnRNb2RlOiBcIsSww6dlcmlrIG1vZHVcIixcbiAgICBpbWFnZUZpdDogXCJHw7Zyc2VsJ3UgdXl1bWxhbmTEsXJcIixcbiAgICBzaG93TGFiZWw6IFwiQmHFn2zEscSfxLEgZ8O2c3RlclwiLFxuXG4gICAgY29sczogXCJTw7x0dW5sYXJcIixcbiAgICByb3dzOiBcIlNhdMSxcmxhclwiLFxuICAgIHBsYWNlaG9sZGVyOiBcIlllciB0dXR1Y3VcIixcblxuICAgIG9wdGlvbnNDYXB0aW9uOiBcIlNlw6dlbmVrIGJhxZ9sxLHEn8SxXCIsXG5cbiAgICBleHByZXNzaW9uOiBcIlRhbsSxbVwiLFxuICAgIGZvcm1hdDogXCJmb3JtYXRcIixcbiAgICBkaXNwbGF5U3R5bGU6IFwiR8O2csO8bsO8bSBiacOnaW1pXCIsXG4gICAgY3VycmVuY3k6IFwiUGFyYSBiaXJpbWlcIixcbiAgICB1c2VHcm91cGluZzogXCJHcnVwbGFtYXnEsSBrdWxsYW5cIixcblxuICAgIHNob3dQcmV2aWV3OiBcIsOWbml6bGVtZXlpIGfDtnN0ZXJcIixcbiAgICBhbGxvd011bHRpcGxlOiBcIsOHb2tsdXlhIGl6aW4gdmVyXCIsXG4gICAgaW1hZ2VIZWlnaHQ6IFwiR8O2cnNlbCB1enVubHXEn3VcIixcbiAgICBpbWFnZVdpZHRoOiBcIkfDtnJzZWwgZ2VuacWfbGnEn2lcIixcbiAgICBzdG9yZURhdGFBc1RleHQ6IFwiVmVyaWxlcmkgeWF6xLEgb2xhcmFrIGRlcG9sYVwiLFxuICAgIG1heFNpemU6IFwiTWFrc2ltdW0gYsO8ecO8a2zDvGtcIixcblxuICAgIGh0bWw6IFwiaHRtbFwiLFxuXG4gICAgY29sdW1uczogXCJTw7x0dW5sYXJcIixcbiAgICBjZWxsczogXCJIw7xjcmVsZXJcIixcbiAgICBpc0FsbFJvd1JlcXVpcmVkOiBcIlTDvG0gc2F0xLFybGFyIGdlcmVrbGkgbWk/XCIsXG5cbiAgICBob3Jpem9udGFsU2Nyb2xsOiBcIllhdGF5IGtheWTEsXJtYVwiLFxuICAgIGNlbGxUeXBlOiBcIkjDvGNyZSB0aXBpXCIsXG4gICAgY29sdW1uc0xheW91dDogXCJTw7x0w7xuIGTDvHplbmlcIixcbiAgICBjb2x1bW5Db2xDb3VudDogXCJTw7x0w7xuIFNhecSxc8SxXCIsXG4gICAgY29sdW1uTWluV2lkdGg6IFwiTWluaW11bSBzw7x0w7xuIGdlbmnFn2xpxJ9pXCIsXG5cbiAgICByb3dDb3VudDogXCJTYXTEsXIgc2F5xLFzxLFcIixcbiAgICBtaW5Sb3dDb3VudDogXCJNaW5pbXVtIHNhdMSxciBzYXnEsXPEsVwiLFxuICAgIG1heFJvd0NvdW50OiBcIk1ha3NpbXVtIHNhdMSxciBzYXnEsXPEsVwiLFxuICAgIGtleU5hbWU6IFwiQW5haHRhciBhZMSxXCIsXG4gICAga2V5RHVwbGljYXRpb25FcnJvcjogXCJBbmFodGFyIMOnb8SfYWx0bWEgaGF0YXPEsVwiLFxuICAgIGNvbmZpcm1EZWxldGU6IFwiU2lsbWV5aSBvbmF5bGFcIixcbiAgICBjb25maXJtRGVsZXRlVGV4dDogXCJTaWxtZXlpIG9uYXlsYW1hIHlhesSxc8SxXCIsXG4gICAgYWRkUm93TG9jYXRpb246IFwiU2F0xLFyIGVrbGVtZSBrb251bXVcIixcbiAgICBhZGRSb3dUZXh0OiBcIlNhdMSxciBla2xlbWUgeWF6xLFzxLFcIixcbiAgICByZW1vdmVSb3dUZXh0OiBcIlNhdMSxciB5YXrEsXPEsW7EsSBrYWxkxLFyXCIsXG5cbiAgICBpdGVtczogXCLDlsSfZWxlclwiLFxuICAgIGl0ZW1TaXplOiBcIsOWxJ9lIGJveXV0dVwiLFxuICAgIGNvbENvdW50OiBcIlPDvHR1biBzYXnEsXPEsVwiLFxuXG4gICAgdGVtcGxhdGVUaXRsZTogXCLFnmFibG9uIGJhxZ9sxLHEn8SxXCIsXG4gICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogXCLFnmFibG9uIGHDp8Sxa2xhbWFzxLFcIixcbiAgICBhbGxvd0FkZFBhbmVsOiBcIlBhbmVsIGVrbGVtZXllIGl6aW4gdmVyXCIsXG4gICAgYWxsb3dSZW1vdmVQYW5lbDogXCJQYW5lbCBrYWxkxLFybWF5YSBpemluIHZlclwiLFxuICAgIHBhbmVsQ291bnQ6IFwiUGFuZWwgc2F5xLFzxLFcIixcbiAgICBtaW5QYW5lbENvdW50OiBcIk1pbmltdW0gcGFuZWwgc2F5xLFzxLFcIixcbiAgICBtYXhQYW5lbENvdW50OiBcIk1ha3NpbXVtIHBhbmVsIHNhecSxc8SxXCIsXG4gICAgcGFuZWxzU3RhdGU6IFwiUGFuZWxsZXJpbiBkdXJ1bXVcIixcbiAgICBwYW5lbEFkZFRleHQ6IFwiUGFuZWwgZWtsZW1lIHlhesSxc8SxXCIsXG4gICAgcGFuZWxSZW1vdmVUZXh0OiBcIlBhbmVsIGthbGTEsXJtYSB5YXrEsXPEsVwiLFxuICAgIHBhbmVsUHJldlRleHQ6IFwiw5ZuY2VraSBwYW5lbCB5YXrEsXPEsVwiLFxuICAgIHBhbmVsTmV4dFRleHQ6IFwiU29ucmFraSBwYW5lbCB5YXrEsXPEsVwiLFxuICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwiU29ydSBzYXnEsXPEsW7EsSBnw7ZzdGVyXCIsXG4gICAgdGV4dFVwZGF0ZU1vZGU6IFwiTWV0aW4gZ8O8bmNlbGxlbWUgbW9kdVwiLFxuICAgIHNob3dSYW5nZUluUHJvZ3Jlc3M6IFwixLBsZXJsZW1lIGR1cnVtdW51IGfDtnN0ZXJcIixcbiAgICByZW5kZXJNb2RlOiBcIlJlbmRlciBtb2R1XCIsXG4gICAgdGVtcGxhdGVUaXRsZUxvY2F0aW9uOiBcIsWeYWJsb24gYmHFn2zEsWsga29udW11XCIsXG5cbiAgICByYXRlVmFsdWVzOiBcIk9yYW4gZGXEn2VybGVyaVwiLFxuICAgIHJhdGVNaW46IFwiTWluaW11bSBvcmFuXCIsXG4gICAgcmF0ZU1heDogXCJNYWtzaW11bSBvcmFuXCIsXG4gICAgcmF0ZVN0ZXA6IFwicmF0ZVN0ZXBcIixcbiAgICBtaW5SYXRlRGVzY3JpcHRpb246IFwiTWluaW11bSBvcmFuIGHDp8Sxa2xhbWFzxLFcIixcbiAgICBtYXhSYXRlRGVzY3JpcHRpb246IFwiTWFrc2ltdW0gb3JhbiBhw6fEsWtsYW1hc8SxXCIsXG5cbiAgICBpbnB1dFR5cGU6IFwiR2lyacWfIHRpcGlcIixcbiAgICBzaXplOiBcIkLDvHnDvGtsw7xrXCIsXG5cbiAgICBsb2NhbGU6IFwibG9rYWxcIixcbiAgICBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6IFwiT3RvbWF0aWsgaWxrIHNvcnV5YSBvZGFrbGFcIixcbiAgICBjb21wbGV0ZWRIdG1sOiBcIlRhbWFtbGFubcSxxZ8gaHRtbFwiLFxuICAgIGNvbXBsZXRlZEJlZm9yZUh0bWw6IFwiVGFtYW1sYW5tYWRhbiDDtm5jZWtpIGh0bWxcIixcbiAgICBsb2FkaW5nSHRtbDogXCJIdG1sIHnDvGtsZW5peW9yXCIsXG4gICAgdHJpZ2dlcnM6IFwidGV0aWtsZXlpY2lsZXJcIixcbiAgICBjb29raWVOYW1lOiBcImNvb2tpZSBhZMSxXCIsXG4gICAgc2VuZFJlc3VsdE9uUGFnZU5leHQ6IFwiU29udcOnbGFyxLEgc29ucmFraSBzYXlmYXlhIGfDtm5kZXJcIixcbiAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IFwiTmF2aWdhc3lvbiBidXRvbmxhcsSxbsSxIGfDtnN0ZXJcIixcbiAgICBzaG93UHJldkJ1dHRvbjogXCLDlm5jZWtpIGJ1dG9udW51IGfDtnN0ZXJcIixcbiAgICBzaG93UGFnZVRpdGxlczogXCJTYXlmYSBiYcWfbMSxxJ/EsW7EsSBnw7ZzdGVyXCIsXG4gICAgbmF2aWdhdGVUb1VybDogXCJVUkwneWUgZ2l0XCIsXG4gICAgbmF2aWdhdGVUb1VybE9uQ29uZGl0aW9uOiBcIktvxZ91bGx1IG9sYXJhayB1cmwneWUgZ2lkaW5cIixcbiAgICBjb21wbGV0ZWRIdG1sT25Db25kaXRpb246IFwiS2/Fn3VsbHUgaHRtbCB0YW1hbWxhbmTEsVwiLFxuICAgIHNob3dDb21wbGV0ZWRQYWdlOiBcIlRhbWFtbGFubcSxxZ8gc2F5ZmF5xLEgZ8O2c3RlclwiLFxuICAgIHNob3dQYWdlTnVtYmVyczogXCJTYXlmYSBudW1hcmFzxLFuxLEgZ8O2c3RlclwiLFxuICAgIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogXCJTb3J1IGhhdGFzxLEga29udW11XCIsXG4gICAgc2hvd1Byb2dyZXNzQmFyOiBcIsSwbGVybGVtZSDDp3VidcSfdW51IGfDtnN0ZXJcIixcbiAgICBwcm9ncmVzc0JhclR5cGU6IFwixLBsZXJsZW1lIMOndWJ1xJ91IHTDvHLDvFwiLFxuICAgIHF1ZXN0aW9uc09uUGFnZU1vZGU6IFwiU2F5ZmEgbW9kdW5kYWtpIHNvcnVsYXJcIixcbiAgICBtb2RlOiBcIk1vZFwiLFxuICAgIGdvTmV4dFBhZ2VBdXRvbWF0aWM6IFwiQmlyIHNvbnJha2kgc2F5ZmF5YSBvdG9tYXRpayBnZcOnXCIsXG4gICAgY2hlY2tFcnJvcnNNb2RlOiBcIkhhdGFsYXLEsSBrb250cm9sIGV0IG1vZHVcIixcbiAgICBjbGVhckludmlzaWJsZVZhbHVlczogXCJHw7Zyw7xubWV5ZW4gZGXEn2VybGVyaSB0ZW1pemxlXCIsXG4gICAgc3RhcnRTdXJ2ZXlUZXh0OiBcIkFua2V0IHlhesSxc8SxbsSxIGJhxZ9sYXRcIixcbiAgICBwYWdlUHJldlRleHQ6IFwiw5ZuY2VraSBzYXlmYSB5YXrEsXPEsVwiLFxuICAgIHBhZ2VOZXh0VGV4dDogXCJTb25yYWtpIHNheWZhIHlhesSxc8SxXCIsXG4gICAgY29tcGxldGVUZXh0OiBcIllhesSxecSxIHRhbWFtbGFcIixcbiAgICByZXF1aXJlZFRleHQ6IFwiR2VyZWtsaSB5YXrEsVwiLFxuICAgIHF1ZXN0aW9uU3RhcnRJbmRleDogXCJTb3J1IGJhxZ9sYW5nxLHDpyBpbmRla3NpXCIsXG4gICAgcXVlc3Rpb25UaXRsZVRlbXBsYXRlOiBcIlNvcnUgYmHFn2zEscSfxLEgxZ9hYmxvbnVcIixcbiAgICBmaXJzdFBhZ2VJc1N0YXJ0ZWQ6IFwixLBsayBzYXlmYSBiYcWfbGFkxLFcIixcbiAgICBpc1NpbmdsZVBhZ2U6IFwiVGVrIHNheWZhIG3EsT9cIixcbiAgICBtYXhUaW1lVG9GaW5pc2hQYWdlOiBcIkJpdGlybWUgc2F5ZmFzxLEgacOnaW4gbWFrc2ltdW0gemFtYW5cIixcbiAgICBzaG93VGltZXJQYW5lbDogXCJaYW1hbmxhbWEgcGFuZWxpbmkgZ8O2c3RlclwiLFxuICAgIHNob3dUaW1lclBhbmVsTW9kZTogXCJaYW1hbmxhbWEgcGFuZWwgbW9kdW51IGfDtnN0ZXJcIixcblxuICAgIGRlZmF1bHRQYW5lbFZhbHVlOiBcIlZhcnNhecSxbGFuIHBhbmVsIGRlxJ9lcmlcIixcbiAgICBkZWZhdWx0Um93VmFsdWU6IFwiVmFyc2F5xLFsYW4gc2F0xLFyIGRlxJ9lcmlcIixcbiAgICBzaG93Tm9uZUl0ZW06IFwiaGFzTm9uZVwiLFxuICAgIG5vbmVUZXh0OiBcIm5vbmVUZXh0XCIsXG5cbiAgICB0ZXh0OiBcInlhesSxXCIsXG4gIH0sXG59O1xuXG5lZGl0b3JMb2NhbGl6YXRpb24ubG9jYWxlc1tcInRyXCJdID0gdHVya2lzaFN0cmluZ3M7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5cbmltcG9ydCB7XG4gIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMsXG59IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckJhc2VcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleU9iamVjdFByb3BlcnR5IHtcbiAgcHJpdmF0ZSBvYmplY3RWYWx1ZTogYW55O1xuICBwdWJsaWMgb25Db3JyZWN0VmFsdWVCZWZvcmVTZXQ6IChcbiAgICBwcm9wRWRpdG9yOiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSxcbiAgICBuZXdWYWx1ZTogYW55XG4gICkgPT4gYm9vbGVhbjtcbiAgcHVibGljIG9uQ2hhbmdlZDogKHByb3BFZGl0b3I6IFN1cnZleU9iamVjdFByb3BlcnR5LCBvbGRWYWx1ZTogYW55KSA9PiB2b2lkO1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBlZGl0b3I6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZTtcbiAgcHVibGljIGVkaXRvclR5cGU6IHN0cmluZztcbiAgcHVibGljIGVkaXRvclR5cGVUZW1wbGF0ZTogc3RyaW5nO1xuICBwdWJsaWMgYmFzZUVkaXRvclR5cGU6IHN0cmluZztcbiAgcHVibGljIGdldE9iamVjdFByb3BlcnR5QnlOYW1lOiAobmFtZTogc3RyaW5nKSA9PiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSA9IG51bGw7XG4gIHByaXZhdGUgaXNIaWRkZW5WYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBrb1Zpc2libGU6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eUVkaXRvck9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zID0gbnVsbCxcbiAgICBpc0NlbGxFZGl0b3I6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLnByb3BlcnR5Lm5hbWU7XG4gICAgdGhpcy5kaXNhYmxlZCA9IHByb3BlcnR5LnJlYWRPbmx5O1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgb25JdGVtQ2hhbmdlZCA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgc2VsZi5vbkVkaXRvclZhbHVlQ2hhbmdlZChuZXdWYWx1ZSk7XG4gICAgfTtcbiAgICB0aGlzLmVkaXRvciA9IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5jcmVhdGVFZGl0b3IoXG4gICAgICBwcm9wZXJ0eSxcbiAgICAgIGlzQ2VsbEVkaXRvclxuICAgICk7XG4gICAgdGhpcy5lZGl0b3Iub25DaGFuZ2VkID0gb25JdGVtQ2hhbmdlZDtcbiAgICB0aGlzLmVkaXRvci5vbkdldExvY2FsZSA9IHRoaXMuZG9PbkdldExvY2FsZTtcbiAgICB0aGlzLmVkaXRvci5vcHRpb25zID0gcHJvcGVydHlFZGl0b3JPcHRpb25zO1xuICAgIHRoaXMuZWRpdG9yVHlwZSA9IHRoaXMuZWRpdG9yLmVkaXRvclR5cGU7XG4gICAgdGhpcy5lZGl0b3JUeXBlVGVtcGxhdGUgPSB0aGlzLmVkaXRvci5lZGl0b3JUeXBlVGVtcGxhdGU7XG4gICAgdGhpcy5rb1Zpc2libGUgPSBrby5vYnNlcnZhYmxlKHRoaXMuaXNWaXNpYmxlKCkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZGlzcGxheU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IuZGlzcGxheU5hbWU7XG4gIH1cbiAgcHVibGljIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVkaXRvci50aXRsZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGtvVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3Iua29WYWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGtvVGV4dCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmVkaXRvci5rb1RleHQ7XG4gIH1cbiAgcHVibGljIGdldCBrb0lzRGVmYXVsdCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmVkaXRvci5rb0lzRGVmYXVsdDtcbiAgfVxuICBwcml2YXRlIGRvT25HZXRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5vYmplY3QgJiYgdGhpcy5vYmplY3RbXCJnZXRMb2NhbGVcIl0pIHJldHVybiB0aGlzLm9iamVjdC5nZXRMb2NhbGUoKTtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IG9iamVjdCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm9iamVjdFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgb2JqZWN0KHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm9iamVjdFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5lZGl0b3Iub2JqZWN0ID0gdmFsdWU7XG4gICAgdGhpcy5lZGl0b3Iuc2V0dXAoKTtcbiAgICB0aGlzLnVwZGF0ZURlcGVuZGVkUHJvcGVydGllcygpO1xuICAgIHRoaXMudXBkYXRlRHluYW1pY1Byb3BlcnRpZXMoKTtcbiAgfVxuICBwdWJsaWMgYmVmb3JlU2hvdygpIHtcbiAgICB0aGlzLmVkaXRvci5iZWZvcmVTaG93KCk7XG4gICAgdGhpcy51cGRhdGVEeW5hbWljUHJvcGVydGllcygpO1xuICB9XG4gIHB1YmxpYyBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IuaGFzRXJyb3IoKTtcbiAgfVxuICBwdWJsaWMgYXBwbHlUb09iaihvYmo6IFN1cnZleS5CYXNlKSB7XG4gICAgaWYgKFxuICAgICAgISF0aGlzLm9iamVjdCAmJlxuICAgICAgU3VydmV5LkhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyhcbiAgICAgICAgb2JqW3RoaXMucHJvcGVydHkubmFtZV0sXG4gICAgICAgIHRoaXMub2JqZWN0W3RoaXMucHJvcGVydHkubmFtZV1cbiAgICAgIClcbiAgICApXG4gICAgICByZXR1cm47XG4gICAgb2JqW3RoaXMucHJvcGVydHkubmFtZV0gPSB0aGlzLm9iamVjdFt0aGlzLnByb3BlcnR5Lm5hbWVdO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNJblByb3BlcnR5R3JpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IuaXNJblByb3BlcnR5R3JpZDtcbiAgfVxuICBwdWJsaWMgc2V0IGlzSW5Qcm9wZXJ0eUdyaWQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5lZGl0b3IuaXNJblByb3BlcnR5R3JpZCA9IHZhbDtcbiAgfVxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgaWYgKCF0aGlzLm9iamVjdCkgcmV0dXJuO1xuICAgIHRoaXMuZWRpdG9yLmtvVmFsdWUodGhpcy5wcm9wZXJ0eS5nZXRQcm9wZXJ0eVZhbHVlKHRoaXMub2JqZWN0KSk7XG4gIH1cbiAgcHVibGljIHVwZGF0ZUR5bmFtaWNQcm9wZXJ0aWVzKCkge1xuICAgIHRoaXMua29WaXNpYmxlKHRoaXMuaXNWaXNpYmxlKCkpO1xuICAgIHRoaXMuZWRpdG9yLnVwZGF0ZUR5bmFtaWNQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5lZGl0b3IudXBkYXRlVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSGlkZGVuVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBpc0hpZGRlbih2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzSGlkZGVuVmFsdWUgPSB2YWw7XG4gICAgdGhpcy5rb1Zpc2libGUodGhpcy5pc1Zpc2libGUoKSk7XG4gIH1cbiAgcHJvdGVjdGVkIGlzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMub2JqZWN0KSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0hpZGRlbikgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBsYXlvdXQgPSAhIXRoaXMub2JqZWN0LmdldExheW91dFR5cGUgPyB0aGlzLm9iamVjdC5nZXRMYXlvdXRUeXBlKCkgOiBcIlwiO1xuICAgIGlmIChcbiAgICAgICEhdGhpcy5wcm9wZXJ0eS5pc1Zpc2libGUgJiZcbiAgICAgICEoPGFueT50aGlzLnByb3BlcnR5W1wiaXNWaXNpYmxlXCJdKShsYXlvdXQsIHRoaXMub2JqZWN0KVxuICAgIClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgb25FZGl0b3JWYWx1ZUNoYW5nZWQobmV3VmFsdWUpIHtcbiAgICB0aGlzLnByb3BlcnR5RWRpdG9yT3B0aW9ucyAmJlxuICAgICAgdGhpcy5wcm9wZXJ0eUVkaXRvck9wdGlvbnMuc3RhcnRVbmRvUmVkb1RyYW5zYWN0aW9uKCk7XG4gICAgaWYgKHRoaXMub2JqZWN0KSB7XG4gICAgICB2YXIgb2xkVmFsdWUgPSB0aGlzLm9iamVjdFt0aGlzLnByb3BlcnR5Lm5hbWVdO1xuICAgICAgaWYgKCEhdGhpcy5vbkNvcnJlY3RWYWx1ZUJlZm9yZVNldCkge1xuICAgICAgICBuZXdWYWx1ZSA9IHRoaXMub25Db3JyZWN0VmFsdWVCZWZvcmVTZXQodGhpcywgbmV3VmFsdWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5lZGl0b3IudXBkYXRlUHJvcGVydHlWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICBpZiAodGhpcy5vbkNoYW5nZWQpIHRoaXMub25DaGFuZ2VkKHRoaXMsIG9sZFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVEZXBlbmRlZFByb3BlcnRpZXMoKTtcbiAgICB0aGlzLnByb3BlcnR5RWRpdG9yT3B0aW9ucyAmJlxuICAgICAgdGhpcy5wcm9wZXJ0eUVkaXRvck9wdGlvbnMuc3RvcFVuZG9SZWRvVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGVwZW5kZWRQcm9wZXJ0aWVzKCkge1xuICAgIGlmICghdGhpcy5vYmplY3QgfHwgIXRoaXMuZ2V0T2JqZWN0UHJvcGVydHlCeU5hbWUpIHJldHVybjtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BlcnR5LmdldERlcGVuZGVkUHJvcGVydGllcygpO1xuICAgIGlmICghcHJvcHMpIHJldHVybjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcCA9IHRoaXMuZ2V0T2JqZWN0UHJvcGVydHlCeU5hbWUocHJvcHNbaV0pO1xuICAgICAgaWYgKCEhcHJvcCkge1xuICAgICAgICBwcm9wLnVwZGF0ZUR5bmFtaWNQcm9wZXJ0aWVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcblxuaW1wb3J0IHsgU3VydmV5SGVscGVyLCBPYmpUeXBlIH0gZnJvbSBcIi4vc3VydmV5SGVscGVyXCI7XG5pbXBvcnQgeyBTdXJ2ZXlDcmVhdG9yIH0gZnJvbSBcIi4vZWRpdG9yXCI7XG5pbXBvcnQgeyBnZXRMb2NTdHJpbmcgfSBmcm9tIFwiLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IGNsYXNzIFBhZ2VzRWRpdG9yIHtcbiAgcHJpdmF0ZSBwcmV2UGFnZXNGb3JTZWxlY3RvcjogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRQYWdlID0ga28ub2JzZXJ2YWJsZTxTdXJ2ZXkuUGFnZU1vZGVsPigpO1xuICBwcml2YXRlIHNlbGVjdGlvblN1YnNjcmlwdGlvbjoga28uU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9yZWFkT25seSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICBwcml2YXRlIGtvU3VydmV5OiBrby5PYnNlcnZhYmxlPFN1cnZleS5TdXJ2ZXk+O1xuICBwcml2YXRlIGlzU2VsZWN0aW5nUGFnZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjcmVhdG9yOiBTdXJ2ZXlDcmVhdG9yKSB7XG4gICAgdGhpcy5oYXNEcm9wZG93blNlbGVjdG9yKGNyZWF0b3Iuc2hvd0Ryb3Bkb3duUGFnZVNlbGVjdG9yKTtcbiAgICB0aGlzLmtvU3VydmV5ID0ga28ub2JzZXJ2YWJsZTxTdXJ2ZXkuU3VydmV5PihjcmVhdG9yLnN1cnZleSk7XG4gICAgY3JlYXRvci5vbkRlc2lnbmVyU3VydmV5Q3JlYXRlZC5hZGQoKHNlbmRlciwgb3B0aW9ucykgPT4ge1xuICAgICAgdGhpcy5rb1N1cnZleShvcHRpb25zLnN1cnZleSk7XG4gICAgfSk7XG4gICAgdGhpcy5wYWdlc0ZvclNlbGVjdGlvbiA9IGtvLmNvbXB1dGVkPGFueT4oKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmJsb2NrUGFnZXNSZWJ1aWx0KCkpIHtcbiAgICAgICAgdGhpcy5wcmV2UGFnZXNGb3JTZWxlY3RvciA9IHRoaXMucGFnZXMubWFwKChwKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHAsIHRleHQ6IHRoaXMuZ2V0RGlzcGxheVRleHQocCkgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMucHJldlBhZ2VzRm9yU2VsZWN0b3IgPSB0aGlzLnByZXZQYWdlc0ZvclNlbGVjdG9yLmNvbmNhdChbXG4gICAgICAgICAgICA8YW55PnsgdmFsdWU6IG51bGwsIHRleHQ6IGdldExvY1N0cmluZyhcImVkLmFkZE5ld1BhZ2VcIikgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VsZWN0ZWRQYWdlLm5vdGlmeVN1YnNjcmliZXJzKCksIDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMucHJldlBhZ2VzRm9yU2VsZWN0b3I7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMucGFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRQYWdlKHRoaXMucGFnZXNbMF0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvblN1YnNjcmlwdGlvbiA9IHRoaXMuY3JlYXRvci5rb1NlbGVjdGVkT2JqZWN0LnN1YnNjcmliZShcbiAgICAgIChuZXdWYWwpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhIWNyZWF0b3Iuc3VydmV5LmN1cnJlbnRQYWdlICYmXG4gICAgICAgICAgICBjcmVhdG9yLnN1cnZleS5jdXJyZW50UGFnZSAhPSB0aGlzLl9zZWxlY3RlZFBhZ2UoKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRQYWdlKGNyZWF0b3Iuc3VydmV5LmN1cnJlbnRQYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkUGFnZShuZXdWYWwudmFsdWUpO1xuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5hZGRQYWdlU2VsZWN0b3JJbnRvVG9vbGJhcigpO1xuICB9XG4gIHB1YmxpYyBnZXQgcGFnZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMua29TdXJ2ZXkoKS5wYWdlcztcbiAgfVxuICBnZXREaXNwbGF5VGV4dCA9IChwYWdlOiBTdXJ2ZXkuUGFnZU1vZGVsKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRvci5nZXRPYmplY3REaXNwbGF5TmFtZShwYWdlLCBcInBhZ2UtdGFic1wiKTtcbiAgfTtcblxuICBwdWJsaWMgYmxvY2tQYWdlc1JlYnVpbHQgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuICBwdWJsaWMgcGFnZXNGb3JTZWxlY3Rpb246IGtvLkNvbXB1dGVkPGFueVtdPjtcblxuICBhZGRQYWdlU2VsZWN0b3JJbnRvVG9vbGJhcigpIHtcbiAgICBjb25zdCBpdGVtID0ge1xuICAgICAgaWQ6IFwic3ZkLXRvb2xiYXItcGFnZS1zZWxlY3RvclwiLFxuICAgICAgY29tcG9uZW50OiBcInN2ZC1kcm9wZG93blwiLFxuICAgICAgdmlzaWJsZTogdGhpcy5jcmVhdG9yLnNob3dQYWdlU2VsZWN0b3JJblRvb2xiYXIsXG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgdGl0bGU6IFwiXCIsXG4gICAgICBpdGVtczogdGhpcy5wYWdlc0ZvclNlbGVjdGlvbixcbiAgICAgIGFjdGlvbjogdGhpcy5zZWxlY3RlZFBhZ2UsXG4gICAgfTtcbiAgICB0aGlzLmNyZWF0b3IudG9vbGJhckl0ZW1zLnVuc2hpZnQoPGFueT5pdGVtKTtcbiAgfVxuXG4gIGlzQWxsb3dlZEZvclNlbGVjdGVkUGFnZSh3aGF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aGlzLmNyZWF0b3Iuc3VydmV5LnVwZGF0ZUVsZW1lbnRBbGxvd2luZ09wdGlvbnModGhpcy5fc2VsZWN0ZWRQYWdlKCkpO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX3NlbGVjdGVkUGFnZSgpW1wiYWxsb3dpbmdPcHRpb25zXCJdO1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gb3B0aW9uc1t3aGF0XTtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBnZXQgY2FuQWRkUGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0FsbG93ZWRGb3JTZWxlY3RlZFBhZ2UoXCJhbGxvd0FkZFwiKTtcbiAgfVxuXG4gIGFkZFBhZ2UgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRvci5hZGRQYWdlKCk7XG4gIH07XG5cbiAgZ2V0IGNhbkNvcHlQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZEZvclNlbGVjdGVkUGFnZShcImFsbG93Q29weVwiKTtcbiAgfVxuXG4gIGNvcHlQYWdlID0gKHBhZ2U6IFN1cnZleS5QYWdlTW9kZWwpID0+IHtcbiAgICB0aGlzLmNyZWF0b3IuY29weVBhZ2UocGFnZSk7XG4gIH07XG5cbiAgZ2V0IGNhbkRlbGV0ZVBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzTGFzdFBhZ2UoKSAmJiB0aGlzLmlzQWxsb3dlZEZvclNlbGVjdGVkUGFnZShcImFsbG93RGVsZXRlXCIpO1xuICB9XG5cbiAgZGVsZXRlUGFnZSA9ICgpID0+IHtcbiAgICB0aGlzLmNyZWF0b3IuZGVsZXRlUGFnZSgpO1xuICB9O1xuXG4gIC8vIGdldCBjYW5Nb3ZlUGFnZSgpOiBib29sZWFuIHtcbiAgLy8gICByZXR1cm4gdGhpcy5pc0FsbG93ZWRGb3JTZWxlY3RlZFBhZ2UoXCJhbGxvd0RyYWdnaW5nXCIpO1xuICAvLyB9XG4gIG1vdmVQYWdlID0gKHBhZ2U6IFN1cnZleS5QYWdlTW9kZWwsIGluZGV4RnJvbTogbnVtYmVyKSA9PiB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2UocGFnZSk7XG4gICAgdGhpcy5jcmVhdG9yLm1vdmVQYWdlKHBhZ2UsIGluZGV4RnJvbSk7XG4gIH07XG5cbiAgZ2V0IGNhbkVkaXRQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZEZvclNlbGVjdGVkUGFnZShcImFsbG93RWRpdFwiKTtcbiAgfVxuICBzaG93UGFnZVNldHRpbmdzKHBhZ2U6IFN1cnZleS5QYWdlTW9kZWwpIHtcbiAgICB0aGlzLmNyZWF0b3Iuc2hvd1F1ZXN0aW9uRWRpdG9yKHBhZ2UpO1xuICB9XG5cbiAgc2VsZWN0ZWRQYWdlID0ga28uY29tcHV0ZWQoe1xuICAgIHJlYWQ6ICgpID0+IHRoaXMuX3NlbGVjdGVkUGFnZSgpLFxuICAgIHdyaXRlOiAobmV3UGFnZTogU3VydmV5LlBhZ2VNb2RlbCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNTZWxlY3RpbmdQYWdlIHx8ICFTdXJ2ZXlIZWxwZXIuY2FuU2VsZWN0T2JqKG5ld1BhZ2UpKSByZXR1cm47XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmlzU2VsZWN0aW5nUGFnZSA9IHRydWU7XG4gICAgICAgIGlmIChuZXdQYWdlID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3UGFnZSA9IHRoaXMuYWRkUGFnZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkUGFnZShuZXdQYWdlKTtcbiAgICAgICAgdGhpcy5jcmVhdG9yLnN1cnZleS5jdXJyZW50UGFnZSA9IG5ld1BhZ2U7XG4gICAgICAgIHRoaXMuY3JlYXRvci5zZWxlY3RlZEVsZW1lbnQgPSBuZXdQYWdlO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5pc1NlbGVjdGluZ1BhZ2UgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBzaG93QWN0aW9ucyA9IChwYWdlKSA9PiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IHRoaXMuc2VsZWN0ZWRQYWdlKCkgJiYgdGhpcy5pc0FjdGl2ZSgpO1xuICB9O1xuICBpc0xhc3RQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2VzLmxlbmd0aCA9PT0gMTtcbiAgfVxuICBpc0FjdGl2ZSgpIHtcbiAgICB2YXIgc2VsZWN0ZWRPYmplY3QgPSB0aGlzLmNyZWF0b3Iua29TZWxlY3RlZE9iamVjdCgpO1xuICAgIGlmICghc2VsZWN0ZWRPYmplY3QpIHJldHVybjtcbiAgICByZXR1cm4gU3VydmV5SGVscGVyLmdldE9iamVjdFR5cGUoc2VsZWN0ZWRPYmplY3QudmFsdWUpID09PSBPYmpUeXBlLlBhZ2U7XG4gIH1cbiAgLyoqXG4gICAqIEEgYm9vbGVhbiBwcm9wZXJ0eSwgZmFsc2UgYnkgZGVmYXVsdC4gU2V0IGl0IHRvIHRydWUgdG8gZGVueSBwYWdlcyBlZGl0aW5nLlxuICAgKi9cbiAgcHVibGljIGdldCByZWFkT25seSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jcmVhdG9yLnJlYWRPbmx5IHx8XG4gICAgICAhdGhpcy5jcmVhdG9yLmFsbG93TW9kaWZ5UGFnZXMgfHxcbiAgICAgIHRoaXMuX3JlYWRPbmx5KClcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkobmV3VmFsKSB7XG4gICAgdGhpcy5fcmVhZE9ubHkobmV3VmFsKTtcbiAgfVxuICBwdWJsaWMgaGFzRHJvcGRvd25TZWxlY3RvciA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLnNlbGVjdGlvblN1YnNjcmlwdGlvbi5kaXNwb3NlKCk7XG4gICAgdGhpcy5zZWxlY3Rpb25TdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wYWdlc0ZvclNlbGVjdGlvbi5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2PlxcbiAgPCEtLSBrbyBmb3JlYWNoOiB7IGRhdGE6IGl0ZW1zLCBhczogJ2l0ZW0nfSAgLS0+XFxuICA8ZGl2PlxcbiAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6aXRlbS5kaXNwbGF5TmFtZVxcXCI+PC9zcGFuPlxcbiAgICA8IS0tIGtvIGNvbXBvbmVudDogeyBuYW1lOiBcXFwic3ZkLWVsZW1lbnQtc2VsZWN0b3JcXFwiLCBwYXJhbXM6IHsgbW9kZWw6aXRlbS5lbGVtZW50U2VsZWN0b3IgfSB9IC0tPjwhLS0gL2tvIC0tPlxcbiAgPC9kaXY+XFxuICA8IS0tIC9rbyAtLT5cXG48L2Rpdj5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9iaW5kaW5ncy5zY3NzXCI7XG5pbXBvcnQge1xuICBTdXJ2ZXlQcm9wZXJ0eUJpbmRpbmdzRWRpdG9yLFxuICBTdXJ2ZXlQcm9wZXJ0eUJpbmRpbmdzSXRlbSxcbn0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUJpbmRpbmdzRWRpdG9yXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9iaW5kaW5ncy5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFZGl0b3JCaW5kaW5nc1ZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpdGVtczogQXJyYXk8U3VydmV5UHJvcGVydHlCaW5kaW5nc0l0ZW0+LFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItYmluZGluZ3NcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlQcm9wZXJ0eUJpbmRpbmdzRWRpdG9yID0gcGFyYW1zLm1vZGVsO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvckJpbmRpbmdzVmlld01vZGVsKG1vZGVsLml0ZW1zLCAoKSA9PiB7XG4gICAgICAgIHR5cGVvZiBwYXJhbXMuYWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgbW9kZWwua29BZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJzanMtY2Itd3JhcHBlclxcXCI+XFxuICA8bGFiZWw+XFxuICAgIDxkaXYgY2xhc3M9XFxcInNqcy1jYi1jb250YWluZXJcXFwiPlxcbiAgICAgIDxpbnB1dFxcbiAgICAgICAgY2xhc3M9XFxcInN2ZF9lZGl0b3JfY29udHJvbCBzdmQtZm9jdXNhYmxlXFxcIlxcbiAgICAgICAgdHlwZT1cXFwiY2hlY2tib3hcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImNoZWNrZWQ6IGtvVmFsdWUsIGRpc2FibGU6ICRkYXRhLnJlYWRPbmx5XFxcIlxcbiAgICAgIC8+XFxuICAgICAgPHNwYW5cXG4gICAgICAgIGNsYXNzPVxcXCJjaGVja21hcmtcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImNzczogeyAnc3ZkLW1haW4tYmFja2dyb3VuZC1jb2xvcic6IGtvVmFsdWUsICdzdmQtbGlnaHQtYmFja2dyb3VuZC1jb2xvcic6ICFrb1ZhbHVlKCkgfVxcXCJcXG4gICAgICA+PC9zcGFuPlxcbiAgICAgIDwhLS0ga28gaWY6ICRkYXRhLmlzRGlzcGxheU5hbWVWaXNpYmxlIC0tPlxcbiAgICAgIDxzcGFuIGNsYXNzPVxcXCJzanMtY2ItbGFiZWxcXFwiIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZGlzcGxheU5hbWVcXFwiPjwvc3Bhbj5cXG4gICAgICA8IS0tIC9rbyAtLT5cXG4gICAgPC9kaXY+XFxuICA8L2xhYmVsPlxcbjwvZGl2PlxcblwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL2Jvb2xlYW4uc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5Qm9vbGVhblByb3BlcnR5RWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL2Jvb2xlYW4uaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RWRpdG9yQm9vbGVhblZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb1ZhbHVlOiBhbnksXG4gICAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuLFxuICAgIHB1YmxpYyBpc0Rpc3BsYXlOYW1lVmlzaWJsZTogYm9vbGVhbixcbiAgICBwdWJsaWMgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgYWZ0ZXJSZW5kZXI6IGFueVxuICApIHtcbiAgICBhZnRlclJlbmRlcigpO1xuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yLWJvb2xlYW5cIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlCb29sZWFuUHJvcGVydHlFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG4gICAgICByZXR1cm4gbmV3IFByb3BlcnR5RWRpdG9yQm9vbGVhblZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29WYWx1ZSxcbiAgICAgICAgbW9kZWwucmVhZE9ubHksXG4gICAgICAgIG1vZGVsLmlzRGlzcGxheU5hbWVWaXNpYmxlLFxuICAgICAgICBtb2RlbC5kaXNwbGF5TmFtZSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR5cGVvZiBwYXJhbXMuYWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgcGFyYW1zLmFmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuXG4gICAgICAgICAgdHlwZW9mIG1vZGVsLmtvQWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgbW9kZWwua29BZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicGFuZWwgY2FyZFxcXCI+XFxuICA8ZGl2XFxuICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZToha29DYW5FZGl0KCksIHRleHQ6ICRkYXRhLmdldExvY1N0cmluZygncGUuY2VsbHNFbXB0eVJvd3NDb2x1bW5zJylcXFwiXFxuICA+PC9kaXY+XFxuICA8ZGl2IGRhdGEtYmluZD1cXFwidmlzaWJsZToga29DYW5FZGl0XFxcIiBzdHlsZT1cXFwib3ZlcmZsb3c6YXV0b1xcXCI+XFxuICAgIDx0YWJsZSBjbGFzcz1cXFwidGFibGVcXFwiPlxcbiAgICAgIDx0aGVhZD5cXG4gICAgICAgIDx0cj5cXG4gICAgICAgICAgPHRoPjwvdGg+XFxuICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDoga29Db2x1bW5zIC0tPlxcbiAgICAgICAgICA8dGg+XFxuICAgICAgICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiRkYXRhXFxcIj48L3NwYW4+XFxuICAgICAgICAgIDwvdGg+XFxuICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgPC90cj5cXG4gICAgICA8L3RoZWFkPlxcbiAgICAgIDx0Ym9keT5cXG4gICAgICAgIDwhLS0ga28gZm9yZWFjaDoga29Sb3dzICAtLT5cXG4gICAgICAgIDx0cj5cXG4gICAgICAgICAgPHRkPlxcbiAgICAgICAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDpyb3dUZXh0XFxcIj48L3NwYW4+XFxuICAgICAgICAgIDwvdGQ+XFxuICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDoga29DZWxscyAtLT5cXG4gICAgICAgICAgPHRkIHN0eWxlPVxcXCJtaW4td2lkdGg6MTIwcHhcXFwiIGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgICAgICA8dGV4dGFyZWFcXG4gICAgICAgICAgICAgIHJvd3M9XFxcIjJcXFwiXFxuICAgICAgICAgICAgICBjb2xzPVxcXCIyNVxcXCJcXG4gICAgICAgICAgICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgc3ZkLWZvY3VzYWJsZVxcXCJcXG4gICAgICAgICAgICAgIGRhdGEtYmluZD1cXFwidGV4dElucHV0OnRleHRcXFwiXFxuICAgICAgICAgICAgPjwvdGV4dGFyZWE+XFxuICAgICAgICAgIDwvdGQ+XFxuICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgPC90cj5cXG4gICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgIDwvdGJvZHk+XFxuICAgIDwvdGFibGU+XFxuICA8L2Rpdj5cXG48L2Rpdj5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9jZWxscy5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUNlbGxzRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUNlbGxzRWRpdG9yXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9jZWxscy5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFZGl0b3JDZWxsc1ZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb0NhbkVkaXQ6IGFueSxcbiAgICBwdWJsaWMgZ2V0TG9jU3RyaW5nOiAobmFtZTogc3RyaW5nKSA9PiBhbnksXG4gICAgcHVibGljIGtvQ29sdW1uczogYW55LFxuICAgIHB1YmxpYyBrb1Jvd3M6IGFueSxcbiAgICBwdWJsaWMgYWZ0ZXJSZW5kZXI6IGFueVxuICApIHtcbiAgICBhZnRlclJlbmRlcigpO1xuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yLWNlbGxzXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbDogU3VydmV5UHJvcGVydHlDZWxsc0VkaXRvciA9IHBhcmFtcy5tb2RlbDtcbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JDZWxsc1ZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29DYW5FZGl0LFxuICAgICAgICBtb2RlbC5nZXRMb2NTdHJpbmcsXG4gICAgICAgIG1vZGVsLmtvQ29sdW1ucyxcbiAgICAgICAgbW9kZWwua29Sb3dzLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5hZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8aW5wdXQgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmRfZWRpdG9yX2NvbnRyb2wgc3ZkLWZvY3VzYWJsZVxcXCIgdHlwZT1cXFwiY29sb3JcXFwiIGRhdGEtYmluZD1cXFwidmFsdWU6IGtvVmFsdWUsIGRpc2FibGU6IHJlYWRPbmx5XFxcIlxcbiAgICBzdHlsZT1cXFwid2lkdGg6MTAwJVxcXCIgLz5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9jb2xvci5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlDb2xvclByb3BlcnR5RWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL2NvbG9yLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvckNvbG9yVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGtvVmFsdWU6IGFueSxcbiAgICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcHVibGljIGtvTWF4VmFsdWU6IGFueSxcbiAgICBwdWJsaWMga29NaW5WYWx1ZTogYW55LFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItY29sb3JcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlDb2xvclByb3BlcnR5RWRpdG9yID0gcGFyYW1zLm1vZGVsO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvckNvbG9yVmlld01vZGVsKFxuICAgICAgICBtb2RlbC5rb1ZhbHVlLFxuICAgICAgICBtb2RlbC5yZWFkT25seSxcbiAgICAgICAgbW9kZWwua29NYXhWYWx1ZSxcbiAgICAgICAgbW9kZWwua29NaW5WYWx1ZSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR5cGVvZiBwYXJhbXMuYWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgcGFyYW1zLmFmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuXG4gICAgICAgICAgdHlwZW9mIG1vZGVsLmtvQWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgbW9kZWwua29BZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwic3ZkLXByb3BlcnR5ZWRpdG9yLWNvbmRpdGlvblxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZC1leHByZXNzaW9uLWhlYWRlclxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBrb1Nob3dFeHByZXNzaW9uSGVhZGVyLCBjbGljazogb25TaG93SGlkZUVkaXRvclxcXCI+XFxuICAgICAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6IGtvQ29uZGl0aW9uRGlzcGxheVRleHRcXFwiPjwvc3Bhbj5cXG4gICAgICAgIDwhLS0ga28gaWY6ICFrb0lzRWRpdG9yU2hvd2luZygpICYmICFrb0lzRWRpdG9ySGlkaW5nRGlzYWJsZWQoKSAtLT5cXG4gICAgICAgIDxzdmctaWNvbiBjbGFzcz1cXFwiaWNvbi1leHByZXNzaW9uLWFycm93IHN2ZC1wcmltYXJ5LWljb25cXFwiIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWFycm93X2Rvd25fMTB4MTAnLCBzaXplOiAxMFxcXCI+XFxuICAgICAgICA8L3N2Zy1pY29uPlxcbiAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICA8IS0tIGtvIGlmOiBrb0lzRWRpdG9yU2hvd2luZygpICYmICFrb0lzRWRpdG9ySGlkaW5nRGlzYWJsZWQoKSAtLT5cXG4gICAgICAgIDxzdmctaWNvbiBjbGFzcz1cXFwiaWNvbi1leHByZXNzaW9uLWFycm93IHN2ZC1wcmltYXJ5LWljb25cXFwiIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWFycm93X3VwXzEweDEwJywgc2l6ZTogMTBcXFwiPlxcbiAgICAgICAgPC9zdmctaWNvbj5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkLWV4cHJlc3Npb24tY29udGVudFxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBrb0lzRWRpdG9yU2hvd2luZygpIHx8ICFrb1Nob3dFeHByZXNzaW9uSGVhZGVyKClcXFwiPlxcbiAgICAgICAgPGRpdiBzdHlsZT1cXFwibWFyZ2luLWJvdHRvbTozcHhcXFwiIGRhdGEtYmluZD1cXFwidmlzaWJsZToga29TaG93VGFicygpIHx8ICFrb0NhblBhcnNlRXhwcmVzc2lvbigpXFxcIj5cXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1zbSBidG4teHNcXFwiXFxuICAgICAgICAgICAgICAgIGRhdGEtYmluZD1cXFwiZW5hYmxlOiBrb0NhblBhcnNlRXhwcmVzc2lvbigpLCBjc3M6IHsnYnRuLXByaW1hcnknOiBrb0FjdGl2ZVZpZXcoKSA9PT0gJ2Zvcm0nLCAnYnRuLWxpbmsnOiBrb0FjdGl2ZVZpZXcoKSAhPT0gJ2Zvcm0nfSwgY2xpY2s6IG9uQ2hhbmdlVmlld0NsaWNrLmJpbmQoJGRhdGEsICdmb3JtJyksIHRleHQ6ICRkYXRhLmdldExvY1N0cmluZygncGUuYnVpbGRFeHByZXNzaW9uJylcXFwiPjwvYnV0dG9uPlxcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XFxcImJ0biBzdi1idG4gYnRuLXNtIGJ0bi14c1xcXCJcXG4gICAgICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJjc3M6IHsnYnRuLXByaW1hcnknOiBrb0FjdGl2ZVZpZXcoKSAhPT0gJ2Zvcm0nLCAnYnRuLWxpbmsnOiBrb0FjdGl2ZVZpZXcoKSA9PT0gJ2Zvcm0nfSwgY2xpY2s6b25DaGFuZ2VWaWV3Q2xpY2suYmluZCgkZGF0YSwgJ3RleHQnKSwgdGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5lZGl0RXhwcmVzc2lvbicpXFxcIj48L2J1dHRvbj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPGRpdiBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvQWN0aXZlVmlldygpID09ICdmb3JtJ1xcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLWV4cHJlc3Npb24tc2V0dXBcXFwiIGRhdGEtYmluZD1cXFwidmlzaWJsZTokZGF0YS5rb1NldHVwVGV4dCgpLCB0ZXh0OiAkZGF0YS5rb1NldHVwVGV4dFxcXCI+PC9kaXY+XFxuICAgICAgICAgICAgPCEtLSBrbyBpZjogIWtvSXNXaWRlTW9kZSgpIC0tPlxcbiAgICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDoga29FZGl0b3JJdGVtcyAtLT5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmRfd3JhcF9lbGVtZW50c1xcXCI+XFxuICAgICAgICAgICAgICAgIDxzdXJ2ZXktd2lkZ2V0IHBhcmFtcz1cXFwic3VydmV5OiAkZGF0YS5zdXJ2ZXlcXFwiPjwvc3VydmV5LXdpZGdldD5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWlubGluZSBmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XFxcImJ1dHRvblxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbCBidG4gc3YtYnRuIGJ0bi1kYW5nZXJcXFwiXFxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6ISRwYXJlbnQucmVhZE9ubHkoKSwgY2xpY2s6ICRwYXJlbnQub25SZW1vdmVDb25kaXRpb25DbGljaywgdmFsdWU6ICRwYXJlbnQucmVtb3ZlQ29uZGl0aW9uVGV4dFxcXCIgLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8aHI+XFxuICAgICAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICAgICAgPCEtLSBrbyBpZjoga29Jc1dpZGVNb2RlKCkgLS0+XFxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVxcXCJzdmQtcHJvcGVydHllZGl0b3ItY29uZGl0aW9uLXdpZGUtdGFibGVcXFwiPlxcbiAgICAgICAgICAgICAgICA8dGJvZHkgZGF0YS1iaW5kPVxcXCJmb3JlYWNoOiBrb0VkaXRvckl0ZW1zXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZF93cmFwX2VsZW1lbnRzXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdXJ2ZXktd2lkZ2V0IHBhcmFtcz1cXFwic3VydmV5OiAkZGF0YS5zdXJ2ZXlcXFwiPjwvc3VydmV5LXdpZGdldD5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJzdmQtcHJvcGVydHllZGl0b3ItY29uZGl0aW9uLWl0ZW0tZGVsZXRlLWljb25cXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJpbmQ9XFxcImtleTJjbGljaywgY2xpY2tOb0ZvY3VzOiAkcGFyZW50Lm9uUmVtb3ZlQ29uZGl0aW9uQ2xpY2ssIGF0dHI6IHsgdGl0bGU6ICRwYXJlbnQucmVtb3ZlQ29uZGl0aW9uVGV4dCwgdGFiaW5kZXg6IDAsIHJvbGU6ICdidXR0b24nIH1cXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVxcXCJzdmQtZGFuZ2VyLWljb24gaWNvbi1hY3Rpb25kZWxldGVcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24tYWN0aW9uZGVsZXRlJ1xcXCI+PC9zdmctaWNvbj5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XFxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxcbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxcbiAgICAgICAgICAgIDwvdGFibGU+XFxuICAgICAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1pbmxpbmUgZm9ybS1ncm91cFxcXCI+XFxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVxcXCJidXR0b25cXFwiXFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sIGJ0biBzdi1idG4gYnRuLXByaW1hcnkgc3ZkLWxvZ2ljLWJ1dHRvbiBzdmQtbG9naWMtYWRkLWNvbmRpdGlvbi1idXR0b24gc3ZkLWZvY3VzYWJsZVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTprb0NhbkFkZEl0ZW0sIGNsaWNrOiAkZGF0YS5hZGRDb25kaXRpb24sIHZhbHVlOiBhZGRDb25kaXRpb25UZXh0XFxcIiAvPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8ZGl2IGRhdGEtYmluZD1cXFwidmlzaWJsZTprb0FjdGl2ZVZpZXcoKSAhPSAnZm9ybSdcXFwiPlxcbiAgICAgICAgICAgIDwhLS0ga28gaWY6IGhhc0FjZUVkaXRvciAtLT5cXG4gICAgICAgICAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6JGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5hY2VFZGl0b3JIZWxwJylcXFwiPjwvc3Bhbj5cXG4gICAgICAgICAgICA8ZGl2IGlkPVxcXCJleHByZXNzaW9uLWFjZS1lZGl0b3JcXFwiXFxuICAgICAgICAgICAgICAgIHN0eWxlPVxcXCJvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgbWF4LWhlaWdodDoyNTBweDsgbWluLWhlaWdodDoxNTBweDsgd2lkdGg6IDEwMCU7XFxcIlxcbiAgICAgICAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHRJbnB1dDprb1RleHRWYWx1ZSwgYWNlRWRpdG9yOntxdWVzdGlvbnM6IGF2YWlsYWJsZVF1ZXN0aW9ucywgcXVlc3Rpb246ICRkYXRhLmVkaXRpbmdPYmplY3QsIGVkaXRvcjogbW9kZWx9XFxcIj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG5cXG4gICAgICAgICAgICA8IS0tIGtvIGlmOiAhaGFzQWNlRWRpdG9yIC0tPlxcbiAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cXFwic3ZkLWRhcmstYm9yZGVyLWNvbG9yXFxcIiBkYXRhLWJpbmQ9XFxcInRleHRJbnB1dDprb1RleHRWYWx1ZSwgZGlzYWJsZTogcmVhZE9ubHlcXFwiXFxuICAgICAgICAgICAgICAgIHN0eWxlPVxcXCJvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgbWF4LWhlaWdodDoyNTBweDsgbWluLWhlaWdodDoxNTBweDsgd2lkdGg6IDEwMCU7XFxcIlxcbiAgICAgICAgICAgICAgICBhdXRvZm9jdXM9XFxcImF1dG9mb2N1c1xcXCI+PC90ZXh0YXJlYT5cXG4gICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9jb25kaXRpb24uc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlDb25kaXRpb25FZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5Q29uZGl0aW9uRWRpdG9yXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9jb25kaXRpb24uaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RWRpdG9yQ29uZGl0aW9uVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGtvU2hvd0V4cHJlc3Npb25IZWFkZXI6IGFueSxcbiAgICBwdWJsaWMgb25TaG93SGlkZUVkaXRvcjogYW55LFxuICAgIHB1YmxpYyBrb0NvbmRpdGlvbkRpc3BsYXlUZXh0OiBhbnksXG4gICAgcHVibGljIGtvSXNFZGl0b3JTaG93aW5nOiBhbnksXG4gICAgcHVibGljIGtvSXNFZGl0b3JIaWRpbmdEaXNhYmxlZDogYW55LFxuICAgIHB1YmxpYyBrb1Nob3dUYWJzOiBhbnksXG4gICAgcHVibGljIGtvQ2FuUGFyc2VFeHByZXNzaW9uOiBhbnksXG4gICAgcHVibGljIGtvQWN0aXZlVmlldzogYW55LFxuICAgIHB1YmxpYyBvbkNoYW5nZVZpZXdDbGljazogYW55LFxuICAgIHB1YmxpYyBnZXRMb2NTdHJpbmc6IGFueSxcbiAgICBwdWJsaWMga29TZXR1cFRleHQ6IGFueSxcbiAgICBwdWJsaWMga29Jc1dpZGVNb2RlOiBhbnksXG4gICAgcHVibGljIGtvRWRpdG9ySXRlbXM6IGFueSxcbiAgICBwdWJsaWMgcmVhZE9ubHk6IGFueSxcbiAgICBwdWJsaWMga29DYW5BZGRJdGVtOiBhbnksXG4gICAgcHVibGljIG9uUmVtb3ZlQ29uZGl0aW9uQ2xpY2s6IGFueSxcbiAgICBwdWJsaWMgcmVtb3ZlQ29uZGl0aW9uVGV4dDogYW55LFxuICAgIHB1YmxpYyBhZGRDb25kaXRpb246IGFueSxcbiAgICBwdWJsaWMgYWRkQ29uZGl0aW9uVGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyBoYXNBY2VFZGl0b3I6IGJvb2xlYW4sXG4gICAgcHVibGljIGtvVGV4dFZhbHVlOiBhbnksXG4gICAgcHVibGljIGF2YWlsYWJsZVF1ZXN0aW9uczogYW55W10sXG4gICAgcHVibGljIGVkaXRpbmdPYmplY3Q6IGFueSxcbiAgICBwdWJsaWMgbW9kZWw6IFN1cnZleVByb3BlcnR5Q29uZGl0aW9uRWRpdG9yLFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItY29uZGl0aW9uXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbDogU3VydmV5UHJvcGVydHlDb25kaXRpb25FZGl0b3IgPSBwYXJhbXMubW9kZWw7XG4gICAgICByZXR1cm4gbmV3IFByb3BlcnR5RWRpdG9yQ29uZGl0aW9uVmlld01vZGVsKFxuICAgICAgICBtb2RlbC5rb1Nob3dFeHByZXNzaW9uSGVhZGVyLFxuICAgICAgICBtb2RlbC5vblNob3dIaWRlRWRpdG9yLFxuICAgICAgICBtb2RlbC5rb0NvbmRpdGlvbkRpc3BsYXlUZXh0LFxuICAgICAgICBtb2RlbC5rb0lzRWRpdG9yU2hvd2luZyxcbiAgICAgICAgbW9kZWwua29Jc0VkaXRvckhpZGluZ0Rpc2FibGVkLFxuICAgICAgICBtb2RlbC5rb1Nob3dUYWJzLFxuICAgICAgICBtb2RlbC5rb0NhblBhcnNlRXhwcmVzc2lvbixcbiAgICAgICAgbW9kZWwua29BY3RpdmVWaWV3LFxuICAgICAgICBtb2RlbC5vbkNoYW5nZVZpZXdDbGljayxcbiAgICAgICAgbW9kZWwuZ2V0TG9jU3RyaW5nLFxuICAgICAgICBtb2RlbC5rb1NldHVwVGV4dCxcbiAgICAgICAgbW9kZWwua29Jc1dpZGVNb2RlLFxuICAgICAgICBtb2RlbC5rb0VkaXRvckl0ZW1zLFxuICAgICAgICBtb2RlbC5yZWFkT25seSxcbiAgICAgICAgbW9kZWwua29DYW5BZGRJdGVtLFxuICAgICAgICBtb2RlbC5vblJlbW92ZUNvbmRpdGlvbkNsaWNrLFxuICAgICAgICBtb2RlbC5yZW1vdmVDb25kaXRpb25UZXh0LFxuICAgICAgICBtb2RlbC5hZGRDb25kaXRpb24sXG4gICAgICAgIG1vZGVsLmFkZENvbmRpdGlvblRleHQsXG4gICAgICAgIG1vZGVsLmhhc0FjZUVkaXRvcixcbiAgICAgICAgbW9kZWwua29UZXh0VmFsdWUsXG4gICAgICAgIG1vZGVsLmF2YWlsYWJsZVF1ZXN0aW9ucyxcbiAgICAgICAgbW9kZWwuZWRpdGluZ09iamVjdCxcbiAgICAgICAgbW9kZWwsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmFmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIG1vZGVsLmtvQWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXY+PC9kaXY+XCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vY3VzdG9tLnNjc3NcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5Q3VzdG9tRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUN1c3RvbUVkaXRvclwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vY3VzdG9tLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvckN1c3RvbVZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtb2RlbDogU3VydmV5UHJvcGVydHlDdXN0b21FZGl0b3IsIGFmdGVyUmVuZGVyOiBhbnkpIHtcbiAgICBhZnRlclJlbmRlcigpO1xuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yLWN1c3RvbVwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgY29uc3QgbW9kZWw6IFN1cnZleVByb3BlcnR5Q3VzdG9tRWRpdG9yID0gcGFyYW1zLm1vZGVsO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvckN1c3RvbVZpZXdNb2RlbChtb2RlbCwgKCkgPT4ge1xuICAgICAgICB0eXBlb2YgcGFyYW1zLmFmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgdHlwZW9mIG1vZGVsLmtvQWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIG1vZGVsLmtvQWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG4gICAgICB9KTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGZvcm0+XFxuICA8ZGl2IGNsYXNzPVxcXCJzdmRfd3JhcF9lbGVtZW50c1xcXCI+XFxuICAgIDxzdXJ2ZXktd2lkZ2V0IHBhcmFtcz1cXFwic3VydmV5OiBrb1N1cnZleVxcXCI+PC9zdXJ2ZXktd2lkZ2V0PlxcbiAgPC9kaXY+XFxuPC9mb3JtPlxcbjxidXR0b24gdHlwZT1cXFwiYnV0dG9uXFxcIiBjbGFzcz1cXFwiYnRuIHN2LWJ0biBidG4tc20gYnRuLWRhbmdlclxcXCJcXG4gIGRhdGEtYmluZD1cXFwiY2xpY2s6IGZ1bmN0aW9uKCl7cmVzZXRWYWx1ZShtb2RlbCl9LCB0ZXh0OiByZXNldFRleHQoKVxcXCI+PC9idXR0b24+XFxuPGJ1dHRvbiB0eXBlPVxcXCJidXR0b25cXFwiIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtXFxcIlxcbiAgZGF0YS1iaW5kPVxcXCJjbGljazogZnVuY3Rpb24oKXtyZWZyZXNoU3VydmV5KG1vZGVsKX0sIHRleHQ6IHJlZnJlc2hUZXh0KClcXFwiPjwvYnV0dG9uPlwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL2RlZmF1bHQtdmFsdWUuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RGVmYXVsdFZhbHVlRWRpdG9yXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9kZWZhdWx0LXZhbHVlLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvclZhbHVlVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGtvU3VydmV5OiBhbnksXG4gICAgcHVibGljIHJlc2V0VmFsdWU6IChtb2RlbDogU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IpID0+IHZvaWQsXG4gICAgcHVibGljIHJlc2V0VGV4dDogKCkgPT4gc3RyaW5nLFxuICAgIHB1YmxpYyByZWZyZXNoU3VydmV5OiAobW9kZWw6IFN1cnZleVByb3BlcnR5RGVmYXVsdFZhbHVlRWRpdG9yKSA9PiB2b2lkLFxuICAgIHB1YmxpYyByZWZyZXNoVGV4dDogKCkgPT4gc3RyaW5nLFxuICAgIHB1YmxpYyBtb2RlbDogU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IsXG4gICAgcHVibGljIGNvbXBvbmVudEluZm86IGFueSxcbiAgICBwdWJsaWMga29BZnRlclJlbmRlcjogYW55LFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItZGVmYXVsdC12YWx1ZVwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgY29uc3QgbW9kZWw6IFN1cnZleVByb3BlcnR5RGVmYXVsdFZhbHVlRWRpdG9yID0gcGFyYW1zLm1vZGVsO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvclZhbHVlVmlld01vZGVsKFxuICAgICAgICBtb2RlbC5rb1N1cnZleSxcbiAgICAgICAgbW9kZWwucmVzZXRWYWx1ZSxcbiAgICAgICAgbW9kZWwucmVzZXRUZXh0LFxuICAgICAgICBtb2RlbC5yZWZyZXNoU3VydmV5LFxuICAgICAgICBtb2RlbC5yZWZyZXNoVGV4dCxcbiAgICAgICAgbW9kZWwsIC8vVE9ETyBicmVhayBvbiBwcm9wc1xuICAgICAgICBjb21wb25lbnRJbmZvLFxuICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5hZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8c3ZkLWRyb3Bkb3duXFxuICBjbGFzcz1cXFwic3ZkX3Byb3BlcnR5X2VkaXRvcl9kcm9wZG93blxcXCJcXG4gIHBhcmFtcz1cXFwiaXRlbTogeyBpdGVtczprb0Nob2ljZXMsIGFjdGlvbjoga29WYWx1ZSwgZGlzYWJsZTogcmVhZE9ubHksIG9wdGlvbnNDYXB0aW9uOiBvcHRpb25zQ2FwdGlvbiwgdmFsdWVBbGxvd1Vuc2V0OiB0cnVlLCBoYXNGb2N1czoga29IYXNGb2N1cywgYXJpYUxhYmVsOiBkaXNwbGF5TmFtZX1cXFwiXFxuPjwvc3ZkLWRyb3Bkb3duPlxcblwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL2Ryb3Bkb3duLnNjc3NcIjtcbmltcG9ydCB7IFN1cnZleURyb3Bkb3duUHJvcGVydHlFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RWRpdG9yRmFjdG9yeVwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vZHJvcGRvd24uaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RWRpdG9yRHJvcGRvd25WaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMga29WYWx1ZTogYW55LFxuICAgIHB1YmxpYyByZWFkT25seTogYm9vbGVhbixcbiAgICBwdWJsaWMgb3B0aW9uc0NhcHRpb246IHN0cmluZyxcbiAgICBwdWJsaWMga29DaG9pY2VzOiBhbnksXG4gICAgcHVibGljIGtvSGFzRm9jdXM6IGtvLk9ic2VydmFibGU8Ym9vbGVhbj4sXG4gICAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIGFmdGVyUmVuZGVyOiBhbnlcbiAgKSB7XG4gICAgYWZ0ZXJSZW5kZXIoKTtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLXByb3BlcnR5LWVkaXRvci1kcm9wZG93blwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgY29uc3QgbW9kZWw6IFN1cnZleURyb3Bkb3duUHJvcGVydHlFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JEcm9wZG93blZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29WYWx1ZSxcbiAgICAgICAgbW9kZWwucmVhZE9ubHksXG4gICAgICAgIG1vZGVsLm9wdGlvbnNDYXB0aW9uLFxuICAgICAgICBtb2RlbC5rb0Nob2ljZXMsXG4gICAgICAgIG1vZGVsLmtvSGFzRm9jdXMsXG4gICAgICAgIG1vZGVsLmRpc3BsYXlOYW1lLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5hZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJhbGVydCBhbGVydC1kYW5nZXJcXFwiIHJvbGU9XFxcImFsZXJ0XFxcIiBhcmlhLWhpZGRlbj1cXFwidHJ1ZVxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOmtvRGlzcGxheUVycm9yXFxcIj5cXG4gICAgPHNwYW4gY2xhc3M9XFxcImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnblxcXCI+PC9zcGFuPlxcbiAgICA8c3BhbiBjbGFzcz1cXFwic3Itb25seVxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBnZXRMb2NTdHJpbmcoJ2VkLnByb3BlcnR5RWRpdG9yRXJyb3InKVxcXCI+PC9zcGFuPlxcbiAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6IGtvRXJyb3JUZXh0XFxcIj48L3NwYW4+XFxuPC9kaXY+XCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vZXJyb3Iuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckJhc2VcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL2Vycm9yLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvckVycm9yVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGtvRGlzcGxheUVycm9yOiBhbnksXG4gICAgcHVibGljIGdldExvY1N0cmluZzogYW55LFxuICAgIHB1YmxpYyBrb0Vycm9yVGV4dDogYW55XG4gICkge31cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItZXJyb3JcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UgPSBwYXJhbXMubW9kZWw7XG4gICAgICByZXR1cm4gbmV3IFByb3BlcnR5RWRpdG9yRXJyb3JWaWV3TW9kZWwoXG4gICAgICAgIG1vZGVsLmtvRGlzcGxheUVycm9yLFxuICAgICAgICBtb2RlbC5nZXRMb2NTdHJpbmcsXG4gICAgICAgIG1vZGVsLmtvRXJyb3JUZXh0XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJwcm9wZXJ0eWVkaXRvci1leHByZXNzaW9uXFxcIj5cXG4gIDwhLS0ga28gaWY6IGhhc0FjZUVkaXRvciAtLT5cXG4gIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDokZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLmFjZUVkaXRvckhlbHAnKVxcXCI+PC9zcGFuPlxcbiAgPGRpdlxcbiAgICBpZD1cXFwiZXhwcmVzc2lvbi1hY2UtZWRpdG9yXFxcIlxcbiAgICBzdHlsZT1cXFwiaGVpZ2h0OiA0MHB4OyB3aWR0aDogMTAwJVxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJ2YWx1ZTprb1ZhbHVlLCBhY2VFZGl0b3I6IHtxdWVzdGlvbnM6IGF2YWlsYWJsZVF1ZXN0aW9ucywgcXVlc3Rpb246ICRkYXRhLmVkaXRpbmdPYmplY3QsIGVkaXRvcjogbW9kZWx9XFxcIlxcbiAgPjwvZGl2PlxcbiAgPCEtLSAva28gLS0+XFxuICA8IS0tIGtvIGlmOiAhaGFzQWNlRWRpdG9yIC0tPlxcbiAgPHRleHRhcmVhXFxuICAgIGNsYXNzPVxcXCJzdmQtZGFyay1ib3JkZXItY29sb3JcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwidmFsdWU6a29UZXh0VmFsdWVcXFwiXFxuICAgIHJvd3M9XFxcIjJcXFwiXFxuICAgIGF1dG9mb2N1cz1cXFwiYXV0b2ZvY3VzXFxcIlxcbiAgPjwvdGV4dGFyZWE+XFxuICA8IS0tIC9rbyAtLT5cXG48L2Rpdj5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9leHByZXNzaW9uLnNjc3NcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5Q29uZGl0aW9uRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUNvbmRpdGlvbkVkaXRvclwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vZXhwcmVzc2lvbi5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFZGl0b3JFeHByZXNzaW9uVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGhhc0FjZUVkaXRvcjogYm9vbGVhbixcbiAgICBwdWJsaWMgZ2V0TG9jU3RyaW5nOiAobmFtZTogc3RyaW5nKSA9PiBhbnksXG4gICAgcHVibGljIGtvVmFsdWU6IGtvLk9ic2VydmFibGU8YW55PixcbiAgICBwdWJsaWMgYXZhaWxhYmxlUXVlc3Rpb25zOiBhbnlbXSxcbiAgICBwdWJsaWMgZWRpdGluZ09iamVjdDogYW55LFxuICAgIHB1YmxpYyBtb2RlbDogU3VydmV5UHJvcGVydHlDb25kaXRpb25FZGl0b3IsXG4gICAgcHVibGljIGtvVGV4dFZhbHVlOiBhbnksXG4gICAgcHVibGljIHNob3dIZWxwVGV4dDogYW55LFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItZXhwcmVzc2lvblwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgY29uc3QgbW9kZWw6IFN1cnZleVByb3BlcnR5Q29uZGl0aW9uRWRpdG9yID0gcGFyYW1zLm1vZGVsO1xuXG4gICAgICByZXR1cm4gbmV3IFByb3BlcnR5RWRpdG9yRXhwcmVzc2lvblZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwuaGFzQWNlRWRpdG9yLFxuICAgICAgICBtb2RlbC5nZXRMb2NTdHJpbmcsXG4gICAgICAgIG1vZGVsLmtvVmFsdWUsXG4gICAgICAgIG1vZGVsLmF2YWlsYWJsZVF1ZXN0aW9ucyxcbiAgICAgICAgbW9kZWwuZWRpdGluZ09iamVjdCxcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIG1vZGVsLmtvVGV4dFZhbHVlLFxuICAgICAgICBtb2RlbC5zaG93SGVscFRleHQsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmFmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIG1vZGVsLmtvQWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmQtY29udHJvbCBzdmQtZm9jdXNhYmxlIHN2ZC1wcm9wZXJ0eS1lZGl0b3ItZmlsZVxcXCI+XFxuICA8IS0tIGtvIGlmbm90OiByZWFkT25seSAtLT5cXG4gIDxpbnB1dCB0eXBlPVxcXCJmaWxlXFxcIiBjbGFzcz1cXFwic3ZkLWNob29zZS1maWxlLWNvbnRyb2xcXFwiIC8+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwiZWRpdC1pbWFnZS1pdGVtXFxcIlxcbiAgICByb2xlPVxcXCJidXR0b25cXFwiXFxuICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6IGNob29zZUZpbGUsIGNsaWNrQnViYmxlOiBmYWxzZSwgYXR0cjogeyB0aXRsZTogZ2V0TG9jU3RyaW5nKCdwZS5lZGl0JyksICdhcmlhLWxhYmVsJzogZ2V0TG9jU3RyaW5nKCdwZS5lZGl0JykgfVxcXCJcXG4gID5cXG4gICAgPHN2Zy1pY29uXFxuICAgICAgY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZWVkaXQnLCBzaXplOiAxMlxcXCJcXG4gICAgPjwvc3ZnLWljb24+XFxuICA8L3NwYW4+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwic3ZkYS1kZWxldGUtaXRlbVxcXCJcXG4gICAgcm9sZT1cXFwiYnV0dG9uXFxcIlxcbiAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiBkZWxldGVGaWxlLCBhdHRyOiB7IHRpdGxlOiBnZXRMb2NTdHJpbmcoJ3BlLmRlbGV0ZScpLCAnYXJpYS1sYWJlbCc6IGdldExvY1N0cmluZygncGUuZGVsZXRlJykgfSwgdmlzaWJsZToga29WYWx1ZVxcXCJcXG4gID5cXG4gICAgPHN2Zy1pY29uXFxuICAgICAgY2xhc3M9XFxcInN2ZC1wcmltYXJ5LWljb25cXFwiXFxuICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24taW5wbGFjZWRlbGV0ZScsIHNpemU6IDEyXFxcIlxcbiAgICA+PC9zdmctaWNvbj5cXG4gIDwvc3Bhbj5cXG4gIDwhLS0gL2tvIC0tPlxcbiAgPHNwYW4gY2xhc3M9XFxcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItZmlsZS1jb250ZW50XFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IGZpbGVDb250ZW50XFxcIj5cXG4gIDwvc3Bhbj5cXG48L2Rpdj5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCB7IEpzb25PYmplY3RQcm9wZXJ0eSB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5cbmltcG9ydCBcIi4vZmlsZS5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RWRpdG9yRmFjdG9yeVwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vZmlsZS5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgU3VydmV5RmlsZVByb3BlcnR5RWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvcGVydHk6IEpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJmaWxlXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RWRpdG9yRmlsZVZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm9vdEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50LFxuICAgIHByaXZhdGUgZWRpdG9yOiBhbnksXG4gICAgcHVibGljIGtvVmFsdWU6IGFueSxcbiAgICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcHVibGljIGlzRGlzcGxheU5hbWVWaXNpYmxlOiBib29sZWFuLFxuICAgIHB1YmxpYyBkaXNwbGF5TmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cblxuICBnZXQgZmlsZUNvbnRlbnQoKSB7XG4gICAgaWYgKHRoaXMua29WYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5rb1ZhbHVlKCkuc3Vic3RyaW5nKDAsIDQ1KSArIFwiLi4uXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcInBlLm5vRmlsZVwiKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TG9jU3RyaW5nKHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoc3RyKTtcbiAgfVxuXG4gIGNob29zZUZpbGUgPSAobW9kZWw6IFByb3BlcnR5RWRpdG9yRmlsZVZpZXdNb2RlbCwgZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgaWYgKCEha28udW53cmFwKHRoaXMucmVhZE9ubHkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBmaWxlSW5wdXQgPSB0aGlzLnJvb3RFbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFxuICAgICAgXCJzdmQtY2hvb3NlLWZpbGUtY29udHJvbFwiXG4gICAgKVswXTtcbiAgICB0aGlzLmVkaXRvci5jaG9vc2VGaWxlcyhmaWxlSW5wdXQsIChmaWxlczogRmlsZVtdKSA9PiB7XG4gICAgICB0aGlzLmVkaXRvci51cGxvYWRGaWxlcyhmaWxlcywgKHN0YXR1czogc3RyaW5nLCBkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICAgICAgICB0aGlzLmtvVmFsdWUoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuICBkZWxldGVGaWxlID0gKG1vZGVsOiBQcm9wZXJ0eUVkaXRvckZpbGVWaWV3TW9kZWwsIGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmICghIWtvLnVud3JhcCh0aGlzLnJlYWRPbmx5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVkaXRvci5jbGVhckZpbGVzKHRoaXMua29WYWx1ZSgpLCAoc3RhdHVzOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICAgICAgdGhpcy5rb1ZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yLWZpbGVcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlGaWxlUHJvcGVydHlFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JGaWxlVmlld01vZGVsKFxuICAgICAgICBjb21wb25lbnRJbmZvLmVsZW1lbnQsXG4gICAgICAgIG1vZGVsLm9wdGlvbnMsXG4gICAgICAgIG1vZGVsLmtvVmFsdWUsXG4gICAgICAgIG1vZGVsLnJlYWRPbmx5LFxuICAgICAgICBtb2RlbC5pc0Rpc3BsYXlOYW1lVmlzaWJsZSxcbiAgICAgICAgbW9kZWwuZGlzcGxheU5hbWUsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmFmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIG1vZGVsLmtvQWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuXG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwiZmlsZVwiLFxuICAocHJvcGVydHk6IEpzb25PYmplY3RQcm9wZXJ0eSkgPT4gbmV3IFN1cnZleUZpbGVQcm9wZXJ0eUVkaXRvcihwcm9wZXJ0eSlcbik7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPHRleHRhcmVhIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiIGRhdGEtYmluZD1cXFwidGV4dElucHV0OmtvVmFsdWUsIGRpc2FibGU6IHJlYWRPbmx5XFxcIiBzdHlsZT1cXFwid2lkdGg6MTAwJTtoZWlnaHQ6YXV0b1xcXCIgcm93cz1cXFwiMTBcXFwiIGF1dG9mb2N1cz1cXFwiYXV0b2ZvY3VzXFxcIj48L3RleHRhcmVhPlwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL2h0bWwtcGUuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlIdG1sRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU1vZGFsRWRpdG9yXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9odG1sLXBlLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvckhUTUxWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMga29WYWx1ZToga28uT2JzZXJ2YWJsZTxhbnk+LFxuICAgIHB1YmxpYyByZWFkT25seTogYm9vbGVhbixcbiAgICBwdWJsaWMgYWZ0ZXJSZW5kZXI6IGFueVxuICApIHtcbiAgICBhZnRlclJlbmRlcigpO1xuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yLWh0bWxcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlQcm9wZXJ0eUh0bWxFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JIVE1MVmlld01vZGVsKG1vZGVsLmtvVmFsdWUsIG1vZGVsLnJlYWRPbmx5LCAoKSA9PiB7XG4gICAgICAgIHR5cGVvZiBwYXJhbXMuYWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgbW9kZWwua29BZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IHN0eWxlPVxcXCJtYXJnaW4tYm90dG9tOjNweFxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBrb0lzTGlzdCgpICYmIGtvU2hvd1RleHRWaWV3KClcXFwiPlxcbiAgICA8YnV0dG9uIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1zbSBidG4teHNcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImNzczogeydidG4tcHJpbWFyeSc6IGtvQWN0aXZlVmlldygpID09PSAnZm9ybScsICdidG4tbGluayc6IGtvQWN0aXZlVmlldygpICE9PSAnZm9ybSd9LCBjbGljazpjaGFuZ2VUb0Zvcm1WaWV3Q2xpY2ssIHRleHQ6ICRkYXRhLmdldExvY1N0cmluZygncGUuZm9ybUVudHJ5JyksIGF0dHI6IHsgJ2FyaWEtbGFiZWwnOiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLmZvcm1FbnRyeScpIH1cXFwiPjwvYnV0dG9uPlxcbiAgICA8YnV0dG9uIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1zbSBidG4teHNcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImNzczogeydidG4tcHJpbWFyeSc6IGtvQWN0aXZlVmlldygpICE9PSAnZm9ybScsICdidG4tbGluayc6IGtvQWN0aXZlVmlldygpID09PSAnZm9ybSd9LCBjbGljazpjaGFuZ2VUb1RleHRWaWV3Q2xpY2ssIHRleHQ6ICRkYXRhLmdldExvY1N0cmluZygncGUuZmFzdEVudHJ5JyksIGF0dHI6IHsgJ2FyaWEtbGFiZWwnOiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLmZhc3RFbnRyeScpIH1cXFwiPjwvYnV0dG9uPlxcbjwvZGl2PlxcbjxkaXYgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBrb0FjdGl2ZVZpZXcoKSA9PSAnZm9ybSdcXFwiPlxcbiAgICA8c3ZkLXByb3BlcnR5LWVkaXRvci1uZXN0ZWQtaXRlbXMgcGFyYW1zPVxcXCJtb2RlbDogbW9kZWxcXFwiPjwvc3ZkLXByb3BlcnR5LWVkaXRvci1uZXN0ZWQtaXRlbXM+XFxuPC9kaXY+XFxuPGRpdiBkYXRhLWJpbmQ9XFxcInZpc2libGU6a29Jc0xpc3QoKSAmJiBrb0FjdGl2ZVZpZXcoKSAhPSAnZm9ybSdcXFwiPlxcbiAgICA8dGV4dGFyZWEgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0SW5wdXQ6IGtvSXRlbXNUZXh0LCBkaXNhYmxlOiAkZGF0YS5yZWFkT25seVxcXCJcXG4gICAgICAgIHN0eWxlPVxcXCJvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgbWF4LWhlaWdodDo0MDBweDsgbWluLWhlaWdodDoyNTBweDsgd2lkdGg6MTAwJVxcXCI+PC90ZXh0YXJlYT5cXG48L2Rpdj5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9pdGVtLXZhbHVlcy5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUl0ZW1WYWx1ZXNFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5SXRlbVZhbHVlc0VkaXRvclwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vaXRlbS12YWx1ZXMuaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RWRpdG9ySXRlbVZhbHVlc1ZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb0lzTGlzdDogYW55LFxuICAgIHB1YmxpYyBrb1Nob3dUZXh0VmlldzogYW55LFxuICAgIHB1YmxpYyBrb0FjdGl2ZVZpZXc6IGFueSxcbiAgICBwdWJsaWMgY2hhbmdlVG9Gb3JtVmlld0NsaWNrOiBhbnksXG4gICAgcHVibGljIGNoYW5nZVRvVGV4dFZpZXdDbGljazogYW55LFxuICAgIHB1YmxpYyBnZXRMb2NTdHJpbmc6IGFueSxcbiAgICBwdWJsaWMga29JdGVtc1RleHQ6IGFueSxcbiAgICBwdWJsaWMgcmVhZE9ubHk6IGFueSxcbiAgICBwdWJsaWMgbW9kZWw6IFN1cnZleVByb3BlcnR5SXRlbVZhbHVlc0VkaXRvcixcbiAgICBwdWJsaWMgYWZ0ZXJSZW5kZXI6IGFueVxuICApIHtcbiAgICBhZnRlclJlbmRlcigpO1xuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yLWl0ZW0tdmFsdWVzXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbDogU3VydmV5UHJvcGVydHlJdGVtVmFsdWVzRWRpdG9yID0gcGFyYW1zLm1vZGVsO1xuXG4gICAgICByZXR1cm4gbmV3IFByb3BlcnR5RWRpdG9ySXRlbVZhbHVlc1ZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29Jc0xpc3QsXG4gICAgICAgIG1vZGVsLmtvU2hvd1RleHRWaWV3LFxuICAgICAgICBtb2RlbC5rb0FjdGl2ZVZpZXcsXG4gICAgICAgIG1vZGVsLmNoYW5nZVRvRm9ybVZpZXdDbGljayxcbiAgICAgICAgbW9kZWwuY2hhbmdlVG9UZXh0Vmlld0NsaWNrLFxuICAgICAgICBtb2RlbC5nZXRMb2NTdHJpbmcsXG4gICAgICAgIG1vZGVsLmtvSXRlbXNUZXh0LFxuICAgICAgICBtb2RlbC5yZWFkT25seSxcbiAgICAgICAgbW9kZWwsIC8vVE9ETyBicmVhayBvbiBwcm9wc1xuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5hZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGRhdGEtYmluZD1cXFwiaHRtbDogJGRhdGEua29IdG1sVG9wXFxcIj48L2Rpdj5cXG48IS0tIGtvIGNvbXBvbmVudDogeyBuYW1lOiBcXFwic3ZkLXByb3BlcnR5LWVkaXRvci1cXFwiICsgZWRpdG9yVHlwZVRlbXBsYXRlLCBwYXJhbXM6IHsgbW9kZWw6IG1vZGVsLCBhZnRlclJlbmRlcjogYWZ0ZXJSZW5kZXIgfSB9IC0tPjwhLS0gL2tvIC0tPlxcbjxkaXYgZGF0YS1iaW5kPVxcXCJodG1sOiAkZGF0YS5rb0h0bWxCb3R0b21cXFwiPjwvZGl2PlxcblwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL21vZGFsLWNvbnRlbnQuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlNb2RhbEVkaXRvclwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vbW9kYWwtY29udGVudC5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFZGl0b3JNb2RhbENvbnRlbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMga29IdG1sVG9wOiBhbnksXG4gICAgcHVibGljIGtvSHRtbEJvdHRvbTogYW55LFxuICAgIHB1YmxpYyBlZGl0b3JUeXBlVGVtcGxhdGU6IHN0cmluZyxcbiAgICBwdWJsaWMgbW9kZWw6IFN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3IsXG4gICAgcHVibGljIGFmdGVyUmVuZGVyOiBhbnlcbiAgKSB7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItbW9kYWwtY29udGVudFwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgY29uc3QgbW9kZWw6IFN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG4gICAgICBjb25zdCBhZnRlclJlbmRlciA9IHBhcmFtcy5hZnRlclJlbmRlcjtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvck1vZGFsQ29udGVudChcbiAgICAgICAgbW9kZWwua29IdG1sVG9wLFxuICAgICAgICBtb2RlbC5rb0h0bWxCb3R0b20sXG4gICAgICAgIG1vZGVsLmVkaXRvclR5cGVUZW1wbGF0ZSxcbiAgICAgICAgbW9kZWwsIC8vVE9ETyBicmVhayBvbiBwcm9wcyxcbiAgICAgICAgYWZ0ZXJSZW5kZXJcbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcImlucHV0LWdyb3VwIGZvcm0tZ3JvdXBcXFwiIGRhdGEtYmluZD1cXFwidmlzaWJsZTohJGRhdGEuaXNFZGl0YWJsZVxcXCI+XFxuICA8YVxcbiAgICB0YWJpbmRleD1cXFwiMFxcXCJcXG4gICAgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJrZXkyY2xpY2ssIGNsaWNrOiAkZGF0YS5vblNob3dNb2RhbCwgYXR0cjogeydkYXRhLXRhcmdldCcgOiBtb2RhbE5hbWVUYXJnZXR9XFxcIlxcbiAgPlxcbiAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6IGtvVGV4dFxcXCI+PC9zcGFuPlxcbiAgPC9hPlxcbiAgPGRpdiBjbGFzcz1cXFwiaW5wdXQtZ3JvdXAtYWRkb25cXFwiPlxcbiAgICA8c3BhblxcbiAgICAgIGNsYXNzPVxcXCJnbHlwaGljb24gZ2x5cGhpY29uLWVkaXRcXFwiXFxuICAgICAgYXJpYS1oaWRkZW49XFxcInRydWVcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogJGRhdGEub25TaG93TW9kYWwsIGF0dHI6IHsnZGF0YS10YXJnZXQnIDogbW9kYWxOYW1lVGFyZ2V0fSwgdGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5lZGl0JylcXFwiXFxuICAgID48L3NwYW4+XFxuICA8L2Rpdj5cXG48L2Rpdj5cXG48ZGl2IGNsYXNzPVxcXCJpbnB1dC1ncm91cCBmb3JtLWdyb3VwXFxcIiBkYXRhLWJpbmQ9XFxcInZpc2libGU6JGRhdGEuaXNFZGl0YWJsZVxcXCI+XFxuICA8aW5wdXRcXG4gICAgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmRfZWRpdG9yX2NvbnRyb2xcXFwiXFxuICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwidmFsdWU6IGtvVmFsdWUsIGRpc2FibGU6IHJlYWRPbmx5XFxcIlxcbiAgLz5cXG4gIDxkaXYgY2xhc3M9XFxcImlucHV0LWdyb3VwLWFkZG9uXFxcIj5cXG4gICAgPHNwYW5cXG4gICAgICBjbGFzcz1cXFwiZ2x5cGhpY29uIGdseXBoaWNvbi1lZGl0XFxcIlxcbiAgICAgIGFyaWEtaGlkZGVuPVxcXCJ0cnVlXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6ICRkYXRhLm9uU2hvd01vZGFsLCBhdHRyOiB7J2RhdGEtdGFyZ2V0JyA6IG1vZGFsTmFtZVRhcmdldH0sIHRleHQ6ICRkYXRhLmdldExvY1N0cmluZygncGUuZWRpdCcpXFxcIlxcbiAgICA+PC9zcGFuPlxcbiAgPC9kaXY+XFxuPC9kaXY+XFxuXFxuPGRpdiBkYXRhLWJpbmQ9XFxcImF0dHI6IHtpZCA6IG1vZGFsTmFtZX1cXFwiIGNsYXNzPVxcXCJtb2RhbFxcXCIgcm9sZT1cXFwiZGlhbG9nXFxcIj5cXG4gIDwhLS1rbyBpZjoga29Jc1Nob3dpbmdNb2RhbCAtLT5cXG4gIDxkaXYgY2xhc3M9XFxcIm1vZGFsLWRpYWxvZ1xcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1vZGFsLWNvbnRlbnRcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcIm1vZGFsLWhlYWRlclxcXCI+XFxuICAgICAgICA8YnV0dG9uIHR5cGU9XFxcImJ1dHRvblxcXCIgY2xhc3M9XFxcImNsb3NlXFxcIiBkYXRhLWJpbmQ9XFxcImNsaWNrOiBvblJlc2V0Q2xpY2tcXFwiPlxcbiAgICAgICAgICAmdGltZXM7XFxuICAgICAgICA8L2J1dHRvbj5cXG4gICAgICAgIDxoNCBjbGFzcz1cXFwibW9kYWwtdGl0bGVcXFwiIGRhdGEtYmluZD1cXFwidGV4dDokZGF0YS5rb1RpdGxlQ2FwdGlvblxcXCI+PC9oND5cXG4gICAgICA8L2Rpdj5cXG4gICAgICA8ZGl2XFxuICAgICAgICBjbGFzcz1cXFwibW9kYWwtYm9keSBzdmRfbm90b3Bib3R0b21wYWRkaW5nc1xcXCJcXG4gICAgICAgIHN0eWxlPVxcXCJtaW4taGVpZ2h0OiAyMDBweDtcXFwiXFxuICAgICAgPlxcbiAgICAgICAgPHN2ZC1wcm9wZXJ0eS1lZGl0b3ItZXJyb3JcXG4gICAgICAgICAgcGFyYW1zPVxcXCJtb2RlbDokZGF0YS5tb2RlbFxcXCJcXG4gICAgICAgID48L3N2ZC1wcm9wZXJ0eS1lZGl0b3ItZXJyb3I+XFxuICAgICAgICA8c3ZkLXByb3BlcnR5LWVkaXRvci1tb2RhbC1jb250ZW50XFxuICAgICAgICAgIHBhcmFtcz1cXFwibW9kZWw6ICRkYXRhLm1vZGVsXFxcIlxcbiAgICAgICAgPjwvc3ZkLXByb3BlcnR5LWVkaXRvci1tb2RhbC1jb250ZW50PlxcbiAgICAgIDwvZGl2PlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcIm1vZGFsLWZvb3RlclxcXCI+XFxuICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgdHlwZT1cXFwiYnV0dG9uXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiYnRuIHN2LWJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiAkZGF0YS5rb1Nob3dBcHBseUJ1dHRvbiwgZGlzYWJsZTogcmVhZE9ubHksIGNsaWNrOiAkZGF0YS5vbkFwcGx5Q2xpY2ssIHZhbHVlOiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLmFwcGx5JylcXFwiXFxuICAgICAgICAgIHN0eWxlPVxcXCJ3aWR0aDogMTAwcHg7XFxcIlxcbiAgICAgICAgLz5cXG4gICAgICAgIDxpbnB1dFxcbiAgICAgICAgICB0eXBlPVxcXCJidXR0b25cXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zZWNvbmRhcnlcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6ICRkYXRhLm9uT2tDbGljaywgZGlzYWJsZTogcmVhZE9ubHksIHZhbHVlOiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLm9rJylcXFwiXFxuICAgICAgICAgIHN0eWxlPVxcXCJ3aWR0aDogMTAwcHg7XFxcIlxcbiAgICAgICAgLz5cXG4gICAgICAgIDxpbnB1dFxcbiAgICAgICAgICB0eXBlPVxcXCJidXR0b25cXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1wcmltYXJ5XFxcIlxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiAkZGF0YS5vblJlc2V0Q2xpY2ssIHZhbHVlOiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLmNhbmNlbCcpXFxcIlxcbiAgICAgICAgICBzdHlsZT1cXFwid2lkdGg6IDEwMHB4O1xcXCJcXG4gICAgICAgIC8+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuICA8IS0tIC9rbyAtLT5cXG48L2Rpdj5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9tb2RhbC5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU1vZGFsRWRpdG9yXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9tb2RhbC5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFZGl0b3JNb2RhbFZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpc0VkaXRhYmxlOiBib29sZWFuLFxuICAgIHB1YmxpYyBvblNob3dNb2RhbDogYW55LFxuICAgIHB1YmxpYyBtb2RhbE5hbWVUYXJnZXQ6IHN0cmluZyxcbiAgICBwdWJsaWMga29UZXh0OiBhbnksXG4gICAgcHVibGljIGdldExvY1N0cmluZzogYW55LFxuICAgIHB1YmxpYyBrb1ZhbHVlOiBrby5PYnNlcnZhYmxlPGFueT4sXG4gICAgcHVibGljIHJlYWRPbmx5OiBhbnksXG4gICAgcHVibGljIG1vZGFsTmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBrb0lzU2hvd2luZ01vZGFsOiBhbnksXG4gICAgcHVibGljIG9uUmVzZXRDbGljazogYW55LFxuICAgIHB1YmxpYyBrb1RpdGxlQ2FwdGlvbjogYW55LFxuICAgIHB1YmxpYyBrb1Nob3dBcHBseUJ1dHRvbjogYW55LFxuICAgIHB1YmxpYyBvbkFwcGx5Q2xpY2s6IGFueSxcbiAgICBwdWJsaWMgb25Pa0NsaWNrOiBhbnksXG4gICAgcHVibGljIG1vZGVsOiBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yLFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItbW9kYWxcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yID0gcGFyYW1zLm1vZGVsO1xuXG4gICAgICByZXR1cm4gbmV3IFByb3BlcnR5RWRpdG9yTW9kYWxWaWV3TW9kZWwoXG4gICAgICAgIG1vZGVsLmlzRWRpdGFibGUsXG4gICAgICAgIG1vZGVsLm9uU2hvd01vZGFsLFxuICAgICAgICBtb2RlbC5tb2RhbE5hbWVUYXJnZXQsXG4gICAgICAgIG1vZGVsLmtvVGV4dCxcbiAgICAgICAgbW9kZWwuZ2V0TG9jU3RyaW5nLFxuICAgICAgICBtb2RlbC5rb1ZhbHVlLFxuICAgICAgICBtb2RlbC5yZWFkT25seSxcbiAgICAgICAgbW9kZWwubW9kYWxOYW1lLFxuICAgICAgICBtb2RlbC5rb0lzU2hvd2luZ01vZGFsLFxuICAgICAgICBtb2RlbC5vblJlc2V0Q2xpY2ssXG4gICAgICAgIG1vZGVsLmtvVGl0bGVDYXB0aW9uLFxuICAgICAgICBtb2RlbC5rb1Nob3dBcHBseUJ1dHRvbixcbiAgICAgICAgbW9kZWwub25BcHBseUNsaWNrLFxuICAgICAgICBtb2RlbC5vbk9rQ2xpY2ssXG4gICAgICAgIG1vZGVsLCAvL1RPRE8gbmVlZCB0byBicmVhayBvbiBwcm9wcyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR5cGVvZiBwYXJhbXMuYWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IHN0eWxlPVxcXCJ3aGl0ZS1zcGFjZTogbm9ybWFsXFxcIj5cXG4gIDwhLS0ga28gZm9yZWFjaDogeyBkYXRhOiBrb0NhdGVnb3JpZXMsIGFzOiAnY2F0J30gIC0tPlxcbiAgPGRpdiBjbGFzcz1cXFwic3ZkLWxvZ2ljLWl0ZW0taGVhZGVyXFxcIiBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGNhdC5rb1RpdGxlVmlzaWJsZVxcXCI+XFxuICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogY2F0LmtvQ2F0ZWdvcnkoKVxcXCI+PC9zcGFuPlxcbiAgPC9kaXY+XFxuICA8IS0tIGtvIGZvcmVhY2g6IHsgZGF0YTogY2F0LmtvSXRlbXMsIGFzOiAnaXRlbSd9ICAtLT5cXG4gIDxkaXYgY2xhc3M9XFxcInNqcy1jYi13cmFwcGVyXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogaW5saW5lLWJsb2NrO1xcXCI+XFxuICAgIDxsYWJlbD5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJzanMtY2ItY29udGFpbmVyXFxcIj5cXG4gICAgICAgIDxpbnB1dFxcbiAgICAgICAgICB0eXBlPVxcXCJjaGVja2JveFxcXCJcXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJhdHRyOiB7dmFsdWU6IGl0ZW0udmFsdWV9LCBjaGVja2VkOiBjYXQuZWRpdG9yLmtvRWRpdGluZ1ZhbHVlXFxcIlxcbiAgICAgICAgLz5cXG4gICAgICAgIDxzcGFuXFxuICAgICAgICAgIGNsYXNzPVxcXCJjaGVja21hcmtcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwiY3NzOiBjYXQuZWRpdG9yLmdldEJhY2tncm91bmRDbHMoaXRlbS52YWx1ZSlcXFwiXFxuICAgICAgICA+XFxuICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJjaGVja1xcXCI+PC9zcGFuPlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgPHNwYW5cXG4gICAgICAgICAgY2xhc3M9XFxcInNqcy1jYi1sYWJlbFxcXCJcXG4gICAgICAgICAgc3R5bGU9XFxcInBvc2l0aW9uOiBzdGF0aWM7XFxcIlxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6IGl0ZW0udGV4dFxcXCJcXG4gICAgICAgID48L3NwYW4+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvbGFiZWw+XFxuICA8L2Rpdj5cXG4gIDwhLS0gL2tvIC0tPlxcbiAgPCEtLSAva28gLS0+XFxuPC9kaXY+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vbXVsdGlwbGUtdmFsdWVzLnNjc3NcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5TXVsdGlwbGVWYWx1ZXNFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5TXVsdGlwbGVWYWx1ZXNFZGl0b3JcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL211bHRpcGxlLXZhbHVlcy5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFZGl0b3JNdWx0aXBsZVZhbHVlc1ZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb0NhdGVnb3JpZXM6IGFueSxcbiAgICBwdWJsaWMgY29tcG9uZW50SW5mbzogYW55LFxuICAgIHB1YmxpYyBrb0FmdGVyUmVuZGVyOiBhbnksXG4gICAgcHVibGljIGFmdGVyUmVuZGVyOiBhbnlcbiAgKSB7XG4gICAgYWZ0ZXJSZW5kZXIoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGV2aWV3TW9kZWwocGFyYW1zLCBjb21wb25lbnRJbmZvKSB7XG4gIGNvbnN0IG1vZGVsOiBTdXJ2ZXlQcm9wZXJ0eU11bHRpcGxlVmFsdWVzRWRpdG9yID0gcGFyYW1zLm1vZGVsO1xuXG4gIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JNdWx0aXBsZVZhbHVlc1ZpZXdNb2RlbChcbiAgICBtb2RlbC5rb0NhdGVnb3JpZXMsXG4gICAgY29tcG9uZW50SW5mbyxcbiAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLFxuICAgICgpID0+IHtcbiAgICAgIHR5cGVvZiBwYXJhbXMuYWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgbW9kZWwua29BZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcbiAgICB9XG4gICk7XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yLW11bHRpcGxlLXZhbHVlc1wiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZXZpZXdNb2RlbChwYXJhbXMsIGNvbXBvbmVudEluZm8pO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItbXVsdGlwbGV2YWx1ZXNcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHJldHVybiBjcmVhdGV2aWV3TW9kZWwocGFyYW1zLCBjb21wb25lbnRJbmZvKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPHRyPlxcbiAgPHRkIGNsYXNzPVxcXCJzdmQtaXRlbXZhbHVlLWFjdGlvbnMtY29udGFpbmVyXFxcIj5cXG4gICAgPGRpdlxcbiAgICAgIGNsYXNzPVxcXCJzdmQtZHJhZy1oYW5kbGUgc3ZkLWl0ZW12YWx1ZS1hY3Rpb25cXFwiXFxuICAgICAgdGFiaW5kZXg9XFxcIjBcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiAhJGRhdGEuZWRpdG9yLnJlYWRPbmx5KCksIGF0dHI6IHsgJ2FyaWEtbGFiZWwnOiBlZGl0b3IuZ2V0TG9jU3RyaW5nKCdwZS5rZXlib2FyZE1vdmVJdGVtc1RpcCcpIH1cXFwiXFxuICAgID5cXG4gICAgICA8c3Bhbj5cXG4gICAgICAgIDxzdmctaWNvblxcbiAgICAgICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogZHJhZ0ljb24sIHNpemU6IDIwXFxcIlxcbiAgICAgICAgPjwvc3ZnLWljb24+XFxuICAgICAgPC9zcGFuPlxcbiAgICA8L2Rpdj5cXG4gICAgPGJ1dHRvblxcbiAgICAgIHR5cGU9XFxcImJ1dHRvblxcXCJcXG4gICAgICBjbGFzcz1cXFwiYnRuIHN2LWJ0biBidG4tZGVmYXVsdCBidG4tc2Vjb25kYXJ5IHN2ZC10ZXh0aXRlbXMtZWRpdCBzdmQtaXRlbXZhbHVlLWFjdGlvblxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6ICRkYXRhLmtvSGFzRGV0YWlscywgY2xpY2s6IG9uRWRpdEl0ZW1DbGlja1xcXCJcXG4gICAgPlxcbiAgICAgIDxzcGFuXFxuICAgICAgICBjbGFzcz1cXFwiZ2x5cGhpY29uIGdseXBoaWNvbi1lZGl0XFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBlZGl0b3IuZ2V0TG9jU3RyaW5nKCRkYXRhLmVkaXRvci5yZWFkT25seSgpPydwZS52aWV3JzoncGUuZWRpdCcpXFxcIlxcbiAgICAgID48L3NwYW4+XFxuICAgIDwvYnV0dG9uPlxcbiAgPC90ZD5cXG4gIDwhLS0ga28gZm9yZWFjaDogY2VsbHMgLS0+XFxuICA8dGQgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICA8c3ZkLXByb3BlcnR5LWVkaXRvclxcbiAgICAgIHBhcmFtcz1cXFwibW9kZWw6IG9iamVjdFByb3BlcnR5LmVkaXRvclxcXCJcXG4gICAgPjwvc3ZkLXByb3BlcnR5LWVkaXRvcj5cXG4gIDwvdGQ+XFxuICA8IS0tIC9rbyAtLT5cXG4gIDx0ZCBjbGFzcz1cXFwic3ZkLXRleHRpdGVtcy1jb2x1bW5cXFwiPlxcbiAgICA8ZGl2XFxuICAgICAgY2xhc3M9XFxcInN2ZC1pdGVtdmFsdWUtYWN0aW9uXFxcIlxcbiAgICAgIHRhYmluZGV4PVxcXCIwXFxcIlxcbiAgICAgIHJvbGU9XFxcImJ1dHRvblxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcImtleTJjbGljaywgdmlzaWJsZTogZWRpdG9yLmtvQWxsb3dBZGRSZW1vdmVJdGVtcygpICYmIGtvQ2FuRGVsZXRlSXRlbSgpICYmICFlZGl0b3IucmVhZE9ubHkoKSwgY2xpY2s6IGVkaXRvci5vbkRlbGV0ZUNsaWNrLCBhdHRyOiB7J2FyaWEtbGFiZWwnOiBlZGl0b3IuZ2V0TG9jU3RyaW5nKCdwZS5kZWxldGUnKX1cXFwiXFxuICAgID5cXG4gICAgICA8c3Bhbj5cXG4gICAgICAgIDxzdmctaWNvblxcbiAgICAgICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogZGVsZXRlSWNvbiwgc2l6ZTogMjBcXFwiXFxuICAgICAgICA+PC9zdmctaWNvbj5cXG4gICAgICA8L3NwYW4+XFxuICAgIDwvZGl2PlxcbiAgPC90ZD5cXG48L3RyPlxcblwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL25lc3RlZC1pdGVtLnNjc3NcIjtcbmltcG9ydCB7IFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9ySXRlbSxcbiAgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JFZGl0b3JDZWxsIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU5lc3RlZFByb3BlcnR5RWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlIZWxwZXIgfSBmcm9tIFwiLi4vc3VydmV5SGVscGVyXCI7XG5cbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL25lc3RlZC1pdGVtLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvck5lc3RlZEl0ZW1WaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWRpdG9yOiBhbnksXG4gICAgcHVibGljIG1vZGVsOiBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckl0ZW0sXG4gICAgcHVibGljIGtvQ2FuRGVsZXRlSXRlbToga28uT2JzZXJ2YWJsZTxib29sZWFuPixcbiAgICBwdWJsaWMgZHJhZ0ljb246IHN0cmluZyxcbiAgICBwdWJsaWMgZGVsZXRlSWNvbjogc3RyaW5nLFxuICAgIHB1YmxpYyBvYmo6IGFueSxcbiAgICBwdWJsaWMga29IYXNEZXRhaWxzOiBhbnksXG4gICAgcm9vdEVsZW1lbnRcbiAgKSB7XG4gICAgcm9vdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAzOCAmJiBldmVudC5hbHRLZXkpIHtcbiAgICAgICAgU3VydmV5SGVscGVyLm1vdmVJdGVtSW5BcnJheShlZGl0b3Iub3JpZ2luYWxWYWx1ZSwgb2JqLFxuICAgICAgICAgIChlZGl0b3Iub3JpZ2luYWxWYWx1ZS5pbmRleE9mKG9iaikgLSAxICtcbiAgICAgICAgICAgICAgZWRpdG9yLm9yaWdpbmFsVmFsdWUubGVuZ3RoKSAlIGVkaXRvci5vcmlnaW5hbFZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT0gNDAgJiYgZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgIFN1cnZleUhlbHBlci5tb3ZlSXRlbUluQXJyYXkoZWRpdG9yLm9yaWdpbmFsVmFsdWUsIG9iaixcbiAgICAgICAgICAoZWRpdG9yLm9yaWdpbmFsVmFsdWUuaW5kZXhPZihvYmopICsgMSkgJSBlZGl0b3Iub3JpZ2luYWxWYWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2VsbHMoKTogU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JFZGl0b3JDZWxsW10ge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmNlbGxzO1xuICB9XG5cbiAgcHVibGljIG9uRWRpdEl0ZW1DbGljaygpIHtcbiAgICB0aGlzLmVkaXRvci5vbkVkaXRJdGVtQ2xpY2sodGhpcy5tb2RlbCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItbmVzdGVkLWl0ZW1cIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IGVkaXRvciA9IHBhcmFtcy5lZGl0b3I7XG4gICAgICBsZXQgbW9kZWw6IFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9ySXRlbTtcblxuICAgICAgaWYgKGVkaXRvci5jb2x1bW5zLmxlbmd0aCA9PT0gMCkgZWRpdG9yLmNyZWF0ZUNvbHVtbnMoKTsgLy9UT0RPIGhvdCBmaXhcblxuICAgICAgbW9kZWwgPSBlZGl0b3IuY3JlYXRlSXRlbVZpZXdNb2RlbChwYXJhbXMuaXRlbSk7XG4gICAgICBtb2RlbFtcImVkaXRvclwiXSA9IGVkaXRvcjtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvck5lc3RlZEl0ZW1WaWV3TW9kZWwoXG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIG1vZGVsLmtvQ2FuRGVsZXRlSXRlbSxcbiAgICAgICAgbW9kZWwuZHJhZ0ljb24sXG4gICAgICAgIG1vZGVsLmRlbGV0ZUljb24sXG4gICAgICAgIG1vZGVsLm9iaixcbiAgICAgICAgbW9kZWwua29IYXNEZXRhaWxzLFxuICAgICAgICBjb21wb25lbnRJbmZvLmVsZW1lbnQubmV4dFNpYmxpbmdcbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvSXNMaXN0XFxcIj5cXG4gIDwhLS1rbyBpZjogb3JpZ2luYWxWYWx1ZS5sZW5ndGggPT0gMCAtLT5cXG4gIDxkaXYgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLmxpc3RJc0VtcHR5JylcXFwiPjwvZGl2PlxcbiAgPCEtLSAva28gLS0+XFxuICA8ZGl2XFxuICAgIHN0eWxlPVxcXCJvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWlnaHQ6IDQwMHB4O1xcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOm9yaWdpbmFsVmFsdWUubGVuZ3RoID4gMFxcXCJcXG4gID5cXG4gICAgPHRhYmxlIGNsYXNzPVxcXCJzdmRfaXRlbXNfdGFibGVcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgPHRoZWFkIGRhdGEtYmluZD1cXFwidmlzaWJsZToga29TaG93SGVhZGVyXFxcIj5cXG4gICAgICAgIDx0cj5cXG4gICAgICAgICAgPHRoPjwvdGg+XFxuICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDogY29sdW1ucyAtLT5cXG4gICAgICAgICAgPHRoIGRhdGEtYmluZD1cXFwidGV4dDogdGV4dFxcXCI+PC90aD5cXG4gICAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICAgIDx0aD48L3RoPlxcbiAgICAgICAgPC90cj5cXG4gICAgICA8L3RoZWFkPlxcbiAgICAgIDx0Ym9keSBkYXRhLWJpbmQ9XFxcInNvcnRhYmxlOiB7IGZvcmVhY2g6IG9yaWdpbmFsVmFsdWUsIG9wdGlvbnM6IHNvcnRhYmxlT3B0aW9ucyB9XFxcIj5cXG4gICAgICAgIDwhLS0ga28gY29tcG9uZW50OiB7IG5hbWU6XFxcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItbmVzdGVkLWl0ZW1cXFwiLCBwYXJhbXM6IHsgaXRlbTogJGRhdGEsIGVkaXRvcjogJHBhcmVudC5tb2RlbCB9IH0gLS0+XFxuICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICA8L3Rib2R5PlxcbiAgICA8L3RhYmxlPlxcbiAgPC9kaXY+XFxuICA8ZGl2XFxuICAgIGNsYXNzPVxcXCJzdmQtaXRlbXMtY29udHJvbC1mb290ZXJcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZToga29BbGxvd0FkZFJlbW92ZUl0ZW1zKCkgJiYgISRkYXRhLnJlYWRPbmx5KClcXFwiXFxuICA+XFxuICAgIDxpbnB1dFxcbiAgICAgIHR5cGU9XFxcImJ1dHRvblxcXCJcXG4gICAgICBjbGFzcz1cXFwiYnRuIHN2LWJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvQ2FuQWRkSXRlbSwgY2xpY2s6IG9uQWRkQ2xpY2ssIHZhbHVlOiAkZGF0YS5hZGRJdGVtVGV4dFxcXCJcXG4gICAgLz5cXG4gICAgPGlucHV0XFxuICAgICAgdHlwZT1cXFwiYnV0dG9uXFxcIlxcbiAgICAgIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1kYW5nZXJcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogb25DbGVhckNsaWNrLCB2aXNpYmxlOiBvcmlnaW5hbFZhbHVlLmxlbmd0aCA+IDAgJiYga29BbGxvd1JlbW92ZUFsbEl0ZW1zKCksIHZhbHVlOiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLnJlbW92ZUFsbCcpXFxcIlxcbiAgICAvPlxcbiAgPC9kaXY+XFxuPC9kaXY+XFxuPCEtLSBrbyBpZjogIWtvSXNMaXN0KCkgLS0+XFxuPHN2ZC1wcm9wZXJ0eS1lZGl0b3ItbmVzdGVkIHBhcmFtcz1cXFwibW9kZWw6bW9kZWxcXFwiPjwvc3ZkLXByb3BlcnR5LWVkaXRvci1uZXN0ZWQ+XFxuPCEtLSAva28gLS0+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vbmVzdGVkLWl0ZW1zLnNjc3NcIjtcbmltcG9ydCB7XG4gIFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yLFxuICBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckNvbHVtbixcbn0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU5lc3RlZFByb3BlcnR5RWRpdG9yXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9uZXN0ZWQtaXRlbXMuaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RWRpdG9yTmVzdGVkSXRlbXNWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMga29Jc0xpc3Q6IGFueSxcbiAgICBwdWJsaWMgZ2V0TG9jU3RyaW5nOiBhbnksXG4gICAgcHVibGljIGtvU2hvd0hlYWRlcjogYW55LFxuICAgIHB1YmxpYyBjb2x1bW5zOiBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckNvbHVtbltdLFxuICAgIHB1YmxpYyBzb3J0YWJsZU9wdGlvbnM6IGFueSxcbiAgICBwdWJsaWMgbW9kZWw6IFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yLFxuICAgIHB1YmxpYyBrb0FsbG93QWRkUmVtb3ZlSXRlbXM6IGtvLk9ic2VydmFibGU8Ym9vbGVhbj4sXG4gICAgcHVibGljIHJlYWRPbmx5OiBhbnksXG4gICAgcHVibGljIG9uQWRkQ2xpY2s6IGFueSxcbiAgICBwdWJsaWMgb25DbGVhckNsaWNrOiBhbnksXG4gICAgcHVibGljIGtvQWxsb3dSZW1vdmVBbGxJdGVtczoga28uT2JzZXJ2YWJsZTxib29sZWFuPixcbiAgICBwdWJsaWMga29DYW5BZGRJdGVtOiBrby5PYnNlcnZhYmxlPGJvb2xlYW4+LFxuICAgIHB1YmxpYyBhZGRJdGVtVGV4dDogYW55LFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbiAgcHVibGljIGdldCBvcmlnaW5hbFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLm9yaWdpbmFsVmFsdWU7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItbmVzdGVkLWl0ZW1zXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbDogU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JOZXN0ZWRJdGVtc1ZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29Jc0xpc3QsXG4gICAgICAgIG1vZGVsLmdldExvY1N0cmluZyxcbiAgICAgICAgbW9kZWwua29TaG93SGVhZGVyLFxuICAgICAgICBtb2RlbC5jb2x1bW5zLFxuICAgICAgICBtb2RlbC5zb3J0YWJsZU9wdGlvbnMsXG4gICAgICAgIG1vZGVsLCAvL1RPRE8gYnJlYWsgb24gcHJvcHMsXG4gICAgICAgIG1vZGVsLmtvQWxsb3dBZGRSZW1vdmVJdGVtcyxcbiAgICAgICAgbW9kZWwucmVhZE9ubHksXG4gICAgICAgIG1vZGVsLm9uQWRkQ2xpY2ssXG4gICAgICAgIG1vZGVsLm9uQ2xlYXJDbGljayxcbiAgICAgICAgbW9kZWwua29BbGxvd1JlbW92ZUFsbEl0ZW1zLFxuICAgICAgICBtb2RlbC5rb0NhbkFkZEl0ZW0sXG4gICAgICAgIG1vZGVsLmFkZEl0ZW1UZXh0LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5hZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IHN0eWxlPVxcXCJwYWRkaW5nLWxlZnQ6IDEwcHg7XFxcIj5cXG4gIDxidXR0b25cXG4gICAgdHlwZT1cXFwiYnV0dG9uXFxcIlxcbiAgICBjbGFzcz1cXFwiYnRuIHN2LWJ0biBidG4tc20gYnRuLXNlY29uZGFyeVxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJjbGljazogb25SZXR1cm5Ub0xpc3RDbGlja1xcXCJcXG4gID5cXG4gICAgPHNwYW4gY2xhc3M9XFxcImdseXBoaWNvbiBnbHlwaGljb24tbGlzdC1hbHRcXFwiPjwvc3Bhbj5cXG4gIDwvYnV0dG9uPlxcbiAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiBrb0VkaXRvck5hbWVcXFwiPjwvc3Bhbj5cXG4gIDxzdmQtb2JqZWN0LWVkaXRvci1jb250ZW50XFxuICAgIHBhcmFtcz1cXFwiZWxlbWVudEVkaXRvckNvbnRlbnQ6IGtvRWRpdEl0ZW0oKS5pdGVtRWRpdG9yXFxcIlxcbiAgPjwvc3ZkLW9iamVjdC1lZGl0b3ItY29udGVudD5cXG48L2Rpdj5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9uZXN0ZWQuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5TmVzdGVkUHJvcGVydHlFZGl0b3JcIjtcblxuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vbmVzdGVkLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvck5lc3RlZFZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfb25SZXR1cm5Ub0xpc3RDbGljazogYW55LFxuICAgIHB1YmxpYyBrb0VkaXRvck5hbWU6IGFueSxcbiAgICBwdWJsaWMga29FZGl0SXRlbTogYW55LFxuICAgIHB1YmxpYyBtb2RlbDogU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3IsXG4gICAgcHVibGljIGFmdGVyUmVuZGVyOiBhbnlcbiAgKSB7XG4gICAgYWZ0ZXJSZW5kZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblJldHVyblRvTGlzdENsaWNrKCkge1xuICAgIHRoaXMuX29uUmV0dXJuVG9MaXN0Q2xpY2sodGhpcy5tb2RlbCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItbmVzdGVkXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbDogU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JOZXN0ZWRWaWV3TW9kZWwoXG4gICAgICAgIG1vZGVsLm9uUmV0dXJuVG9MaXN0Q2xpY2ssXG4gICAgICAgIG1vZGVsLmtvRWRpdG9yTmFtZSxcbiAgICAgICAgbW9kZWwua29FZGl0SXRlbSxcbiAgICAgICAgbW9kZWwsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmFmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIG1vZGVsLmtvQWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxpbnB1dFxcbiAgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmQtY29udHJvbCBzdmRfZWRpdG9yX2NvbnRyb2wgc3ZkLWZvY3VzYWJsZVxcXCJcXG4gIHR5cGU9XFxcIm51bWJlclxcXCJcXG4gIHN0ZXA9XFxcImFueVxcXCJcXG4gIGRhdGEtYmluZD1cXFwidmFsdWU6IGtvVmFsdWUsIGRpc2FibGU6IHJlYWRPbmx5LCBhdHRyOiB7bWF4OiBrb01heFZhbHVlLCBtaW46IGtvTWluVmFsdWV9XFxcIlxcbiAgc3R5bGU9XFxcIndpZHRoOiAxMDAlXFxcIlxcbi8+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vbnVtYmVyLnNjc3NcIjtcbmltcG9ydCB7IFN1cnZleU51bWJlclByb3BlcnR5RWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL251bWJlci5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFZGl0b3JOdW1iZXJWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMga29WYWx1ZTogYW55LFxuICAgIHB1YmxpYyByZWFkT25seTogYm9vbGVhbixcbiAgICBwdWJsaWMga29NYXhWYWx1ZTogYW55LFxuICAgIHB1YmxpYyBrb01pblZhbHVlOiBhbnksXG4gICAgcHVibGljIGFmdGVyUmVuZGVyOiBhbnlcbiAgKSB7XG4gICAgYWZ0ZXJSZW5kZXIoKTtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLXByb3BlcnR5LWVkaXRvci1udW1iZXJcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlOdW1iZXJQcm9wZXJ0eUVkaXRvciA9IHBhcmFtcy5tb2RlbDtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvck51bWJlclZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29WYWx1ZSxcbiAgICAgICAgbW9kZWwucmVhZE9ubHksXG4gICAgICAgIG1vZGVsLmtvTWF4VmFsdWUsXG4gICAgICAgIG1vZGVsLmtvTWluVmFsdWUsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmFmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIG1vZGVsLmtvQWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInByb3BlcnR5ZWRpdG9yLXZhbGlkYXRvcnNcXFwiPlxcbiAgPGRpdiBjbGFzcz1cXFwiaW5wdXQtZ3JvdXAgZm9ybS1ncm91cFxcXCI+XFxuICAgIDwhLS0ga28gaWY6IGtvQXZhaWxhYmxlQ2xhc3NlcygpLmxlbmd0aCA9PSAwIC0tPlxcbiAgICA8c3BhblxcbiAgICAgIGNsYXNzPVxcXCJpbnB1dC1ncm91cC1hZGRvbiBmaXJzdC1hZGRvblxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvQWxsb3dBZGRSZW1vdmVJdGVtcygpICYmICFyZWFkT25seSgpLCBjbGljazogb25BZGRDbGlja1xcXCJcXG4gICAgPlxcbiAgICAgIDxzcGFuXFxuICAgICAgICBjbGFzcz1cXFwiZ2x5cGhpY29uIGdseXBoaWNvbi1wbHVzXFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogdG9nZ2xlQ2xhc3Nlc0NvbnRhaW5lclxcXCJcXG4gICAgICA+PC9zcGFuPlxcbiAgICA8L3NwYW4+XFxuICAgIDwhLS0gL2tvICAtLT5cXG4gICAgPCEtLSBrbyBpZjoga29BdmFpbGFibGVDbGFzc2VzKCkubGVuZ3RoID4gMCAtLT5cXG4gICAgPGRpdlxcbiAgICAgIGNsYXNzPVxcXCJpbnB1dC1ncm91cC1hZGRvbiBmaXJzdC1hZGRvblxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvQWxsb3dBZGRSZW1vdmVJdGVtcygpICYmICFyZWFkT25seSgpXFxcIlxcbiAgICA+XFxuICAgICAgPHNwYW5cXG4gICAgICAgIGNsYXNzPVxcXCJnbHlwaGljb24gZ2x5cGhpY29uLXBsdXMgc3ZkLW1haW4tY29sb3JcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiB0b2dnbGVDbGFzc2VzQ29udGFpbmVyXFxcIlxcbiAgICAgID48L3NwYW4+XFxuICAgIDwvZGl2PlxcbiAgICA8IS0tIC9rbyAgLS0+XFxuICAgIDxkaXYgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgc3ZkX2N1c3RvbV9zZWxlY3RcXFwiPlxcbiAgICAgIDxzZWxlY3RcXG4gICAgICAgIG9ubW91c2V3aGVlbD1cXFwicmV0dXJuIGZhbHNlO1xcXCJcXG4gICAgICAgIGRhdGEtYmluZD1cXFwidmFsdWU6IGtvU2VsZWN0ZWQsIG9wdGlvbnNDYXB0aW9uOiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLmxpc3RJc0VtcHR5JylcXFwiXFxuICAgICAgPlxcbiAgICAgICAgPCEtLWtvIGlmOiBvcmlnaW5hbFZhbHVlLmxlbmd0aCA9PSAwIC0tPlxcbiAgICAgICAgPG9wdGlvblxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInZhbHVlOiAnJywgdGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5saXN0SXNFbXB0eScpXFxcIlxcbiAgICAgICAgPjwvb3B0aW9uPlxcbiAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICA8IS0tIGtvIGZvcmVhY2g6IG9yaWdpbmFsVmFsdWUgLS0+XFxuICAgICAgICA8b3B0aW9uXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidmFsdWU6ICRkYXRhLCB0ZXh0OiAkcGFyZW50LmdldEl0ZW1UZXh0KCRkYXRhLCAkcGFyZW50LmtvQ2hhbmdlQ291bnRlcigpKVxcXCJcXG4gICAgICAgID48L29wdGlvbj5cXG4gICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgIDwvc2VsZWN0PlxcbiAgICA8L2Rpdj5cXG4gICAgPHNwYW5cXG4gICAgICBjbGFzcz1cXFwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuLWRhbmdlclxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvQWxsb3dBZGRSZW1vdmVJdGVtcywgZW5hYmxlOiBrb1NlbGVjdGVkKCkgIT0gbnVsbCwgY2xpY2s6IG9uRGVsZXRlQ2xpY2tcXFwiXFxuICAgID5cXG4gICAgICA8c3BhbiBjbGFzcz1cXFwiZ2x5cGhpY29uIGdseXBoaWNvbi1yZW1vdmVcXFwiPjwvc3Bhbj5cXG4gICAgPC9zcGFuPlxcbiAgPC9kaXY+XFxuXFxuICA8dWwgY2xhc3M9XFxcInN2ZC1hdmFpbGFibGUtY2xhc3Nlcy1jb250YWluZXIgc3ZkLWxpZ2h0LWJnLWNvbG9yXFxcIiB0YWJpbmRleD1cXFwiMFxcXCI+XFxuICAgIDwhLS0ga28gZm9yZWFjaDoga29BdmFpbGFibGVDbGFzc2VzIC0tPlxcbiAgICA8bGk+XFxuICAgICAgPGFcXG4gICAgICAgIGhyZWY9XFxcIiNcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiBmdW5jdGlvbigpIHskcGFyZW50Lm9uQWRkQ2xpY2soJGRhdGEpOyAkcGFyZW50LnRvZ2dsZUNsYXNzZXNDb250YWluZXIoKTt9XFxcIlxcbiAgICAgID5cXG4gICAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDokZGF0YS50ZXh0XFxcIj48L3NwYW4+XFxuICAgICAgPC9hPlxcbiAgICA8L2xpPlxcbiAgICA8IS0tIC9rbyAgLS0+XFxuICA8L3VsPlxcblxcbiAgPCEtLSBrbyBpZjogc2VsZWN0ZWRPYmplY3RFZGl0b3IoKSAhPSBudWxsIC0tPlxcbiAgPCEtLSBrbyBjb21wb25lbnQ6IHsgbmFtZTogXFxcInN2ZC1vYmplY3QtZWRpdG9yLWNvbnRlbnRcXFwiLCBwYXJhbXM6IHsgZWxlbWVudEVkaXRvckNvbnRlbnQ6IHNlbGVjdGVkT2JqZWN0RWRpdG9yKCkgfSB9IC0tPjwhLS0gL2tvIC0tPlxcbiAgPCEtLSAva28gIC0tPlxcbjwvZGl2PlxcblwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL29uZS1zZWxlY3RlZC5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eU9uZVNlbGVjdGVkRWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU9uZVNlbGVjdGVkRWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvclwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vb25lLXNlbGVjdGVkLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvck9uZVNlbGVjdGVkVmlld01vZGVsIHtcbiAgcHVibGljIGF2YWlsYWJsZUNsYXNzZXNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb0F2YWlsYWJsZUNsYXNzZXM6IGFueSxcbiAgICBwdWJsaWMga29BbGxvd0FkZFJlbW92ZUl0ZW1zOiBrby5PYnNlcnZhYmxlPGJvb2xlYW4+LFxuICAgIHB1YmxpYyByZWFkT25seTogYW55LFxuICAgIHB1YmxpYyBvbkFkZENsaWNrOiBhbnksXG4gICAgcHVibGljIGtvU2VsZWN0ZWQ6IGtvLk9ic2VydmFibGU8YW55PixcbiAgICBwdWJsaWMgZ2V0TG9jU3RyaW5nOiBhbnksXG4gICAgcHVibGljIGdldEl0ZW1UZXh0OiAoaXRlbTogYW55LCBjb3VudGVyPzogYW55KSA9PiBhbnksXG4gICAgcHVibGljIGtvQ2hhbmdlQ291bnRlcjoga28uT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgIHB1YmxpYyBtb2RlbDogU3VydmV5UHJvcGVydHlPbmVTZWxlY3RlZEVkaXRvcixcbiAgICBwdWJsaWMgb25EZWxldGVDbGljazogYW55LFxuICAgIHB1YmxpYyBjb21wb25lbnRJbmZvOiBhbnksXG4gICAgcHVibGljIGFmdGVyUmVuZGVyOiBhbnlcbiAgKSB7XG4gICAgYWZ0ZXJSZW5kZXIoKTtcbiAgICB0aGlzLnNldHVwQXZhaWxhYmxlQ2xhc3Nlc0NvbnRhaW5lcihjb21wb25lbnRJbmZvLmVsZW1lbnQubmV4dFNpYmxpbmcpO1xuICB9XG5cbiAgcHVibGljIGdldCBvcmlnaW5hbFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwub3JpZ2luYWxWYWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRPYmplY3RFZGl0b3IoKToga28uT2JzZXJ2YWJsZTxcbiAgICBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsXG4gICAgPiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuc2VsZWN0ZWRPYmplY3RFZGl0b3I7XG4gIH1cblxuICBwdWJsaWMgc2V0dXBBdmFpbGFibGVDbGFzc2VzQ29udGFpbmVyID0gKHJvb3RFbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGNsYXNzTmFtZTogc3RyaW5nID0gXCJzdmQtYXZhaWxhYmxlLWNsYXNzZXMtY29udGFpbmVyXCI7XG4gICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSByb290RWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLlwiICsgY2xhc3NOYW1lKTtcblxuICAgIHRoaXMuYXZhaWxhYmxlQ2xhc3Nlc0NvbnRhaW5lciA9IGVsZW1lbnQ7XG4gICAgZWxlbWVudC5vbmZvY3VzID0gKGV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5hdmFpbGFibGVDbGFzc2VzQ29udGFpbmVyLmNsYXNzTmFtZS5pbmRleE9mKFwiLS1hY3RpdmVcIikgIT09IC0xKVxuICAgICAgICByZXR1cm47XG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzZXNDb250YWluZXIoKTtcbiAgICB9O1xuICAgIGVsZW1lbnQub25ibHVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNjAwOTQ3OTQvNjYyMzU1MVxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmF2YWlsYWJsZUNsYXNzZXNDb250YWluZXIuY2xhc3NOYW1lLmluZGV4T2YoXCItLWFjdGl2ZVwiKSAhPT0gLTEgJiZcbiAgICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCAmJlxuICAgICAgICAhZXZlbnQuY3VycmVudFRhcmdldFtcImNvbnRhaW5zXCJdKGV2ZW50LnJlbGF0ZWRUYXJnZXQpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy50b2dnbGVDbGFzc2VzQ29udGFpbmVyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGV2ZW50LnJlbGF0ZWRUYXJnZXRbXCJmb2N1c1wiXSgpO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgcHVibGljIHRvZ2dsZUNsYXNzZXNDb250YWluZXIoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuYXZhaWxhYmxlQ2xhc3Nlc0NvbnRhaW5lcjtcbiAgICBjb25zdCBjbGFzc05hbWU6IHN0cmluZyA9IFwic3ZkLWF2YWlsYWJsZS1jbGFzc2VzLWNvbnRhaW5lclwiO1xuICAgIGNvbnN0IGFjdGl2ZUNsYXNzTmFtZSA9IGNsYXNzTmFtZSArIFwiLS1hY3RpdmVcIjtcbiAgICBpZiAoZWxlbWVudC5jbGFzc05hbWUuaW5kZXhPZihhY3RpdmVDbGFzc05hbWUpICE9PSAtMSkge1xuICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7XG4gICAgICB0aGlzLmF2YWlsYWJsZUNsYXNzZXNDb250YWluZXIuYmx1cigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGNsYXNzTmFtZSArIFwiIFwiICsgYWN0aXZlQ2xhc3NOYW1lO1xuICAgICAgdGhpcy5hdmFpbGFibGVDbGFzc2VzQ29udGFpbmVyLmZvY3VzKCk7XG4gICAgfVxuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yLW9uZS1zZWxlY3RlZFwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgY29uc3QgbW9kZWw6IFN1cnZleVByb3BlcnR5T25lU2VsZWN0ZWRFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JPbmVTZWxlY3RlZFZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29BdmFpbGFibGVDbGFzc2VzLFxuICAgICAgICBtb2RlbC5rb0FsbG93QWRkUmVtb3ZlSXRlbXMsXG4gICAgICAgIG1vZGVsLnJlYWRPbmx5LFxuICAgICAgICBtb2RlbC5vbkFkZENsaWNrLFxuICAgICAgICBtb2RlbC5rb1NlbGVjdGVkLFxuICAgICAgICBtb2RlbC5nZXRMb2NTdHJpbmcsXG4gICAgICAgIG1vZGVsLmdldEl0ZW1UZXh0LFxuICAgICAgICBtb2RlbC5rb0NoYW5nZUNvdW50ZXIsXG4gICAgICAgIG1vZGVsLCAvL1RPRE8gYnJlYWsgb24gcHJvcHNcbiAgICAgICAgbW9kZWwub25EZWxldGVDbGljayxcbiAgICAgICAgY29tcG9uZW50SW5mbyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR5cGVvZiBwYXJhbXMuYWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgcGFyYW1zLmFmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuXG4gICAgICAgICAgdHlwZW9mIG1vZGVsLmtvQWZ0ZXJSZW5kZXIgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgbW9kZWwua29BZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPCEtLSBrbyBpZjogc2hvd0Rpc3BsYXlOYW1lT25Ub3AgLS0+XFxuPGxhYmVsIGNsYXNzPVxcXCJzdmQtY29udHJvbC1sYWJlbFxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OmRpc3BsYXlOYW1lXFxcIj48L2xhYmVsPlxcbjwhLS0ga28gaWY6IGhlbHBUZXh0IC0tPlxcbjxhIGNsYXNzPVxcXCJzdmQtY29udHJvbC1sYWJlbFxcXCIgZGF0YS1iaW5kPVxcXCJjbGljazp0b2dnbGVTaG93SGVscFRleHRcXFwiXFxuICA+PGxhYmVsIGNsYXNzPVxcXCJwcm9wZXJ0eWVkaXRvci1oZWxwXFxcIiBzdHlsZT1cXFwiY3Vyc29yOiBoZWxwXFxcIj4oPyk8L2xhYmVsPjwvYVxcbj5cXG48ZGl2XFxuICBzdHlsZT1cXFwiZm9udC1zaXplOiBzbWFsbGVyOyBtYXJnaW46IDAgNnB4IDZweCAwXFxcIlxcbiAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOnNob3dIZWxwVGV4dCwgdGV4dDpoZWxwVGV4dFxcXCJcXG4+PC9kaXY+XFxuPCEtLSAva28gLS0+XFxuPCEtLSAva28gLS0+XFxuXFxuPHN2ZC1wcm9wZXJ0eS1lZGl0b3ItZXJyb3IgcGFyYW1zPVxcXCJtb2RlbDptb2RlbFxcXCI+PC9zdmQtcHJvcGVydHktZWRpdG9yLWVycm9yPlxcbjwhLS0ga28gY29tcG9uZW50OiB7IG5hbWU6IGNvbnRlbnRUZW1wbGF0ZU5hbWUsIHBhcmFtczogeyBtb2RlbDogbW9kZWwsIGFmdGVyUmVuZGVyOmFmdGVyUmVuZGVyIH0gfSAtLT48IS0tIC9rbyAtLT5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9wcm9wZXJ0eS1lZGl0b3Iuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eUVkaXRvckJhc2VcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL3Byb3BlcnR5LWVkaXRvci5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFZGl0b3JWaWV3TW9kZWwge1xuICBwdWJsaWMgc2hvd0hlbHBUZXh0ID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gIHB1YmxpYyB0b2dnbGVTaG93SGVscFRleHQgPSAoKSA9PiB7XG4gICAgdGhpcy5zaG93SGVscFRleHQoIXRoaXMuc2hvd0hlbHBUZXh0KCkpO1xuICB9O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc2hvd0Rpc3BsYXlOYW1lT25Ub3A6IGJvb2xlYW4sXG4gICAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIGNvbnRlbnRUZW1wbGF0ZU5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgaGVscFRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgbW9kZWw6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgICBwdWJsaWMgYWZ0ZXJSZW5kZXI6IGFueVxuICApIHt9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtcHJvcGVydHktZWRpdG9yXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbDogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlID0gcGFyYW1zLm1vZGVsO1xuICAgICAgY29uc3QgYWZ0ZXJSZW5kZXIgPSBwYXJhbXMuYWZ0ZXJSZW5kZXIgfHwgbW9kZWwua29BZnRlclJlbmRlcjtcbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JWaWV3TW9kZWwoXG4gICAgICAgIG1vZGVsLnNob3dEaXNwbGF5TmFtZU9uVG9wLFxuICAgICAgICBtb2RlbC5kaXNwbGF5TmFtZSxcbiAgICAgICAgbW9kZWwuY29udGVudFRlbXBsYXRlTmFtZSxcbiAgICAgICAgbW9kZWwucHJvcGVydHlIZWxwVGV4dCxcbiAgICAgICAgbW9kZWwsIC8vVE9ETyBzaG91bGQgdHJhbnNmb3JtIHRvIHNlcGFyYXRlIHBhcmFtc1xuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbywge1xuICAgICAgICAgICAgcHJvcGVydHk6IG1vZGVsLnByb3BlcnR5LFxuICAgICAgICAgICAgZWRpdG9yOiBtb2RlbCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGZvcm0+XFxuICA8IS0tIGtvIGlmOiBrb0NvbnRlbnRFZGl0b3IoKSAhPSBudWxsIC0tPlxcbiAgPHN2ZC1vYmplY3QtZWRpdG9yLWNvbnRlbnRcXG4gICAgcGFyYW1zPVxcXCJlbGVtZW50RWRpdG9yQ29udGVudDoga29Db250ZW50RWRpdG9yKClcXFwiXFxuICA+PC9zdmQtb2JqZWN0LWVkaXRvci1jb250ZW50PlxcbiAgPCEtLSAva28gLS0+XFxuICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgPGxhYmVsIGZvcj1cXFwidGl0bGVOYW1lXFxcIj5cXG4gICAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6JGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS50ZXN0U2VydmljZScpXFxcIj48L3NwYW4+XFxuICAgIDwvbGFiZWw+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmRfY3VzdG9tX3NlbGVjdFxcXCIgc3R5bGU9XFxcImRpc3BsYXk6IGJsb2NrO1xcXCI+XFxuICAgICAgPHNlbGVjdCBjbGFzcz1cXFwiIHN2ZC1mb2N1c2FibGVcXFwiXFxuICAgICAgICBvbm1vdXNld2hlZWw9XFxcInJldHVybiBmYWxzZTtcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcIm9wdGlvbnM6IHF1ZXN0aW9uLnZpc2libGVDaG9pY2VzLCBvcHRpb25zVGV4dDogJ3RleHQnLCBvcHRpb25zVmFsdWU6ICd2YWx1ZScsIG9wdGlvbnNDYXB0aW9uOiBxdWVzdGlvbi5vcHRpb25zQ2FwdGlvblxcXCJcXG4gICAgICA+PC9zZWxlY3Q+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuPC9mb3JtPlxcblwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL3Jlc3RmdWxsLnNjc3NcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5UmVzdWx0ZnVsbEVkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlSZXN0ZnVsbEVkaXRvclwiO1xuaW1wb3J0IHsgUXVlc3Rpb25Ecm9wZG93biB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL3Jlc3RmdWxsLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvclJlc3RmdWxsVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGtvQ29udGVudEVkaXRvcjogYW55LFxuICAgIHB1YmxpYyBnZXRMb2NTdHJpbmc6IGFueSxcbiAgICBwdWJsaWMgcXVlc3Rpb246IFF1ZXN0aW9uRHJvcGRvd24sXG4gICAgcHVibGljIGNvbXBvbmVudEluZm86IGFueSxcbiAgICBwdWJsaWMga29BZnRlclJlbmRlcjogYW55LFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItcmVzdGZ1bGxcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlQcm9wZXJ0eVJlc3VsdGZ1bGxFZGl0b3IgPSBwYXJhbXMubW9kZWw7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlFZGl0b3JSZXN0ZnVsbFZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29Db250ZW50RWRpdG9yLFxuICAgICAgICBtb2RlbC5nZXRMb2NTdHJpbmcsXG4gICAgICAgIG1vZGVsLnF1ZXN0aW9uLFxuICAgICAgICBjb21wb25lbnRJbmZvLFxuICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5hZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8aW5wdXRcXG4gIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgc3ZkLWNvbnRyb2wgc3ZkX2VkaXRvcl9jb250cm9sIHN2ZC1mb2N1c2FibGVcXFwiXFxuICB0eXBlPVxcXCJ0ZXh0XFxcIlxcbiAgZGF0YS1iaW5kPVxcXCJ2YWx1ZToga29WYWx1ZSwgZGlzYWJsZTogcmVhZE9ubHksIGF0dHI6IHsgdHlwZToga29JbnB1dFR5cGUsIHBsYWNlaG9sZGVyOiBkZWZhdWx0VmFsdWUsIG1heExlbmd0aDoga29NYXhMZW5ndGgsICdhcmlhLWxhYmVsJzogKGtvRGlzcGxheUVycm9yKCkgPyBnZXRMb2NTdHJpbmcoJ2VkLnByb3BlcnR5RWRpdG9yRXJyb3InKSArICcgJyArIGtvRXJyb3JUZXh0KCkgOiAnJykgKyBkaXNwbGF5TmFtZSwgbGlzdDogbGlzdE5hbWUgfSwgZXZlbnQ6IHsga2V5ZG93bjpvbktleWRvd24gfVxcXCJcXG4gIHN0eWxlPVxcXCJ3aWR0aDogMTAwJVxcXCJcXG4gIGF1dG9mb2N1cz1cXFwiYXV0b2ZvY3VzXFxcIlxcbi8+XFxuPCEtLSBrbyBpZjogbGlzdE5hbWUgLS0+XFxuPGRhdGFsaXN0IGRhdGEtYmluZD1cXFwiYXR0cjogeyBpZDogbGlzdE5hbWV9XFxcIj5cXG4gIDwhLS0ga28gZm9yZWFjaDogZGF0YUxpc3QgLS0+XFxuICA8b3B0aW9uIGRhdGEtYmluZD1cXFwidmFsdWU6JGRhdGFcXFwiPjwvb3B0aW9uPlxcbiAgPCEtLSAva28gLS0+XFxuPC9kYXRhbGlzdD5cXG48IS0tIC9rbyAtLT5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9zdHJpbmcuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5U3RyaW5nUHJvcGVydHlFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RWRpdG9yRmFjdG9yeVwiO1xuY29uc3QgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vc3RyaW5nLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvclN0cmluZ1ZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb1ZhbHVlOiBhbnksXG4gICAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuLFxuICAgIHB1YmxpYyBrb0lucHV0VHlwZTogYW55LFxuICAgIHB1YmxpYyBkZWZhdWx0VmFsdWU6IGFueSxcbiAgICBwdWJsaWMga29NYXhMZW5ndGg6IGFueSxcbiAgICBwdWJsaWMgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgbGlzdE5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgZGF0YUxpc3Q6IEFycmF5PHN0cmluZz4sXG4gICAgcHVibGljIGtvRGlzcGxheUVycm9yOiBhbnksXG4gICAgcHVibGljIGdldExvY1N0cmluZzogYW55LFxuICAgIHB1YmxpYyBrb0Vycm9yVGV4dDogYW55LFxuICAgIHB1YmxpYyBvbktleWRvd246IGFueSxcbiAgICBwdWJsaWMgYWZ0ZXJSZW5kZXI6ICgpID0+IHZvaWRcbiAgKSB7XG4gICAgYWZ0ZXJSZW5kZXIoKTtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLXByb3BlcnR5LWVkaXRvci1zdHJpbmdcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlTdHJpbmdQcm9wZXJ0eUVkaXRvciA9IHBhcmFtcy5tb2RlbDtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvclN0cmluZ1ZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29WYWx1ZSxcbiAgICAgICAgbW9kZWwucmVhZE9ubHksXG4gICAgICAgIG1vZGVsLmtvSW5wdXRUeXBlLFxuICAgICAgICBtb2RlbC5kZWZhdWx0VmFsdWUsXG4gICAgICAgIG1vZGVsLmtvTWF4TGVuZ3RoLFxuICAgICAgICBtb2RlbC5kaXNwbGF5TmFtZSxcbiAgICAgICAgbW9kZWwubGlzdE5hbWUsXG4gICAgICAgIG1vZGVsLnByb3BlcnR5LmRhdGFMaXN0LFxuICAgICAgICBtb2RlbC5rb0Rpc3BsYXlFcnJvcixcbiAgICAgICAgbW9kZWwuZ2V0TG9jU3RyaW5nLFxuICAgICAgICBtb2RlbC5rb0Vycm9yVGV4dCxcbiAgICAgICAgbW9kZWwub25JbnB1dEtleWRvd24sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmFmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIG1vZGVsLmtvQWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjx0ZXh0YXJlYVxcbiAgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmQtY29udHJvbCBzdmRfZWRpdG9yX2NvbnRyb2wgc3ZkLWZvY3VzYWJsZVxcXCJcXG4gIGRhdGEtYmluZD1cXFwidmFsdWU6IGtvVGV4dFZhbHVlLCBkaXNhYmxlOiByZWFkT25seSwgYXR0cjogeyAnYXJpYS1sYWJlbCc6IChrb0Rpc3BsYXlFcnJvcigpID8gZ2V0TG9jU3RyaW5nKCdlZC5wcm9wZXJ0eUVkaXRvckVycm9yJykgKyAnICcgKyBrb0Vycm9yVGV4dCgpIDogJycpICsgZGlzcGxheU5hbWUgfSwgZXZlbnQ6IHsga2V5ZG93bjpvbktleWRvd24gfVxcXCJcXG4gIHN0eWxlPVxcXCJ3aWR0aDogMTAwJVxcXCJcXG4gIGF1dG9mb2N1cz1cXFwiYXV0b2ZvY3VzXFxcIlxcbiAgcm93czogN1xcbi8+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vc3RyaW5ncy5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eVN0cmluZ3NFZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5TW9kYWxFZGl0b3JcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL3N0cmluZ3MuaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RWRpdG9yU3RyaW5nc1ZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb1RleHRWYWx1ZTogYW55LFxuICAgIHB1YmxpYyByZWFkT25seTogYm9vbGVhbixcbiAgICBwdWJsaWMgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMga29EaXNwbGF5RXJyb3I6IGFueSxcbiAgICBwdWJsaWMga29FcnJvclRleHQ6IGFueSxcbiAgICBwdWJsaWMgb25LZXlkb3duOiBhbnksXG4gICAgcHVibGljIGFmdGVyUmVuZGVyOiAoKSA9PiB2b2lkXG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3Itc3RyaW5nc1wiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgY29uc3QgbW9kZWw6IFN1cnZleVByb3BlcnR5U3RyaW5nc0VkaXRvciA9IHBhcmFtcy5tb2RlbDtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvclN0cmluZ3NWaWV3TW9kZWwoXG4gICAgICAgIG1vZGVsLmtvVGV4dFZhbHVlLFxuICAgICAgICBtb2RlbC5yZWFkT25seSxcbiAgICAgICAgbW9kZWwuZGlzcGxheU5hbWUsXG4gICAgICAgIG1vZGVsLmtvRGlzcGxheUVycm9yLFxuICAgICAgICBtb2RlbC5rb0Vycm9yVGV4dCxcbiAgICAgICAgbW9kZWwub25JbnB1dEtleWRvd24sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmFmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIHBhcmFtcy5hZnRlclJlbmRlci5jYWxsKG1vZGVsLCBjb21wb25lbnRJbmZvKTtcblxuICAgICAgICAgIHR5cGVvZiBtb2RlbC5rb0FmdGVyUmVuZGVyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIG1vZGVsLmtvQWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInNqcy1jYi13cmFwcGVyXFxcIj5cXG4gIDxsYWJlbCBjbGFzcz1cXFwic2pzLWNiLXN3aXRjaFxcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwic2pzLWNiLXN3aXRjaF9fY29udGFpbmVyXFxcIj5cXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cXFwiIHN2ZC1mb2N1c2FibGVcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBkYXRhLWJpbmQ9XFxcImNoZWNrZWQ6IGtvVmFsdWUsIGRpc2FibGU6ICRkYXRhLnJlYWRPbmx5XFxcIi8+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzanMtY2Itc3dpdGNoX2NvbnRyb2xcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzanMtY2Itc3dpdGNoX19idXR0b25cXFwiPjwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgICAgPHNwYW4gY2xhc3M9XFxcInNqcy1jYi1zd2l0Y2hfX2xhYmVsXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmRpc3BsYXlOYW1lXFxcIj48L3NwYW4+XFxuICA8L2xhYmVsPlxcbjwvZGl2PlwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL3N3aXRjaC5zY3NzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlTd2l0Y2hQcm9wZXJ0eUVkaXRvciB9IGZyb20gXCIuLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlFZGl0b3JGYWN0b3J5XCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9zd2l0Y2guaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RWRpdG9yU3dpdGNoVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGtvVmFsdWU6IGFueSxcbiAgICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIGFmdGVyUmVuZGVyOiBhbnlcbiAgKSB7XG4gICAgYWZ0ZXJSZW5kZXIoKTtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLXByb3BlcnR5LWVkaXRvci1zd2l0Y2hcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlTd2l0Y2hQcm9wZXJ0eUVkaXRvciA9IHBhcmFtcy5tb2RlbDtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvclN3aXRjaFZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29WYWx1ZSxcbiAgICAgICAgbW9kZWwucmVhZE9ubHksXG4gICAgICAgIG1vZGVsLmRpc3BsYXlOYW1lLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5hZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8dGV4dGFyZWFcXG4gIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgc3ZkLWNvbnRyb2wgc3ZkLWZvY3VzYWJsZVxcXCJcXG4gIGRhdGEtYmluZD1cXFwidGV4dElucHV0OmtvVmFsdWUsIGRpc2FibGU6IHJlYWRPbmx5LCBhdHRyOiB7IHJvd3M6IGlzRGlzcGxheU5hbWVWaXNpYmxlID8gJzInIDogJzUnLCBtYXhMZW5ndGg6IGtvTWF4TGVuZ3RoLCAnYXJpYS1sYWJlbCc6IGRpc3BsYXlOYW1lIH0sIGV2ZW50OiB7IGJsdXI6IG9uQmx1ciwgZm9jdXM6IG9uRm9jdXMsIGtleWRvd246IG9uS2V5ZG93biB9XFxcIlxcbiAgc3R5bGU9XFxcIndpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87XFxcIlxcbj48L3RleHRhcmVhPlxcblwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL3RleHQuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlUZXh0RWRpdG9yIH0gZnJvbSBcIi4uL3Byb3BlcnR5RWRpdG9ycy9wcm9wZXJ0eU1vZGFsRWRpdG9yXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi90ZXh0Lmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUVkaXRvclRleHRWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMga29WYWx1ZTogYW55LFxuICAgIHB1YmxpYyByZWFkT25seTogYm9vbGVhbixcbiAgICBwdWJsaWMgaXNEaXNwbGF5TmFtZVZpc2libGU6IGJvb2xlYW4sXG4gICAgcHVibGljIGtvTWF4TGVuZ3RoOiBhbnksXG4gICAgcHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIG9uQmx1cjogYW55LFxuICAgIHB1YmxpYyBvbkZvY3VzOiBhbnksXG4gICAgcHVibGljIG9uS2V5ZG93bjogYW55LFxuICAgIHB1YmxpYyBhZnRlclJlbmRlcjogYW55XG4gICkge1xuICAgIGFmdGVyUmVuZGVyKCk7XG4gIH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1wcm9wZXJ0eS1lZGl0b3ItdGV4dFwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgY29uc3QgbW9kZWw6IFN1cnZleVByb3BlcnR5VGV4dEVkaXRvciA9IHBhcmFtcy5tb2RlbDtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUVkaXRvclRleHRWaWV3TW9kZWwoXG4gICAgICAgIG1vZGVsLmtvVmFsdWUsXG4gICAgICAgIG1vZGVsLnJlYWRPbmx5LFxuICAgICAgICBtb2RlbC5pc0Rpc3BsYXlOYW1lVmlzaWJsZSxcbiAgICAgICAgbW9kZWwua29NYXhMZW5ndGgsXG4gICAgICAgIG1vZGVsLmRpc3BsYXlOYW1lLFxuICAgICAgICBtb2RlbC5vbkJsdXIsXG4gICAgICAgIG1vZGVsLm9uRm9jdXMsXG4gICAgICAgIG1vZGVsLm9uSW5wdXRLZXlkb3duLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5hZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBwYXJhbXMuYWZ0ZXJSZW5kZXIuY2FsbChtb2RlbCwgY29tcG9uZW50SW5mbyk7XG5cbiAgICAgICAgICB0eXBlb2YgbW9kZWwua29BZnRlclJlbmRlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyLmNhbGwobW9kZWwsIGNvbXBvbmVudEluZm8pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8IS0tIGtvIGlmOiB1c2VUYWJzSW5FbGVtZW50RWRpdG9yIC0tPlxcbjx1bCBjbGFzcz1cXFwibmF2IG5hdi10YWJzIG1vZGFsLXRhYnNcXFwiIGRhdGEtYmluZD1cXFwiZm9yZWFjaDoga29UYWJzXFxcIj5cXG4gIDxsaVxcbiAgICBjbGFzcz1cXFwibmF2LWl0ZW1cXFwiXFxuICAgIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJjc3M6IHthY3RpdmU6ICRwYXJlbnQuYWN0aXZlVGFiID09IG5hbWV9LCBjbGljazogJHBhcmVudC5vblRhYkNsaWNrXFxcIlxcbiAgPlxcbiAgICA8YSBjbGFzcz1cXFwibmF2LWxpbmtcXFwiIGRhdGEtYmluZD1cXFwiY3NzOiB7YWN0aXZlOiAkcGFyZW50LmFjdGl2ZVRhYiA9PSBuYW1lfVxcXCI+XFxuICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OnRpdGxlXFxcIj48L3NwYW4+XFxuICAgIDwvYT5cXG4gIDwvbGk+XFxuPC91bD5cXG48IS0tIGtvIGZvcmVhY2g6IGtvVGFicyAtLT5cXG48ZGl2IGRhdGEtYmluZD1cXFwiaWY6ICRwYXJlbnQuYWN0aXZlVGFiID09PSBuYW1lXFxcIiBzdHlsZT1cXFwibWFyZ2luLXRvcDogNXB4O1xcXCI+XFxuICA8IS0tIGtvIGNvbXBvbmVudDogeyBuYW1lOiBodG1sVGVtcGxhdGUsIHBhcmFtczogeyBtb2RlbDogdGVtcGxhdGVPYmplY3QsIGFmdGVyUmVuZGVyOiAkZGF0YS5rb0FmdGVyUmVuZGVyfSB9IC0tPjwhLS0gL2tvIC0tPlxcbjwvZGl2PlxcbjwhLS0gL2tvICAtLT5cXG48IS0tIC9rbyAgLS0+XFxuXFxuPCEtLSBrbyBpZm5vdDogdXNlVGFic0luRWxlbWVudEVkaXRvciAtLT5cXG48c3ZkLWFjY29yZGlvbiByb2xlPVxcXCJ0YWJsaXN0XFxcIiBwYXJhbXM9XFxcInRhYnM6IGtvVGFic1xcXCI+PC9zdmQtYWNjb3JkaW9uPlxcbjwhLS0gL2tvICAtLT5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9vYmplY3QtZWRpdG9yLWNvbnRlbnQuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5RWxlbWVudEVkaXRvckNvbnRlbnRNb2RlbCB9IGZyb20gXCIuLi9xdWVzdGlvbkVkaXRvcnMvcXVlc3Rpb25FZGl0b3JcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL29iamVjdC1lZGl0b3ItY29udGVudC5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgT2JqZWN0RWRpdG9yQ29udGVudFZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB1c2VUYWJzSW5FbGVtZW50RWRpdG9yOiBhbnksXG4gICAgcHVibGljIGtvVGFiczogYW55LFxuICAgIHB1YmxpYyBrb0FjdGl2ZVRhYjogYW55LFxuICAgIHB1YmxpYyBvblRhYkNsaWNrOiBhbnlcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiKCkge1xuICAgIGNvbnN0IHRhYiA9IHRoaXMua29BY3RpdmVUYWIoKTtcbiAgICBpZiAodHlwZW9mIHRhYiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHRoaXMua29UYWJzKClbMF0ubmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIHRhYjtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLW9iamVjdC1lZGl0b3ItY29udGVudFwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgbGV0IG1vZGVsOiBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsID0gcGFyYW1zLm1vZGVsO1xuXG4gICAgICBpZiAoIW1vZGVsICYmIHR5cGVvZiBwYXJhbXMuZWxlbWVudEVkaXRvckNvbnRlbnQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBtb2RlbCA9IHBhcmFtcy5lbGVtZW50RWRpdG9yQ29udGVudCgpO1xuICAgICAgfSBlbHNlIGlmICghbW9kZWwpIHtcbiAgICAgICAgbW9kZWwgPSBwYXJhbXMuZWxlbWVudEVkaXRvckNvbnRlbnQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXcgT2JqZWN0RWRpdG9yQ29udGVudFZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwudXNlVGFic0luRWxlbWVudEVkaXRvcixcbiAgICAgICAgbW9kZWwua29UYWJzLFxuICAgICAgICBtb2RlbC5rb0FjdGl2ZVRhYixcbiAgICAgICAgbW9kZWxbXCJvblRhYkNsaWNrXCJdIC8vVE9ETyB0aGUgcHJvcGVydHkgZG9lc24ndCBleGlzdCBpbiBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsIGJ1dCBleGlzdHMgaW4gU3VydmV5UXVlc3Rpb25FZGl0b3JcbiAgICAgICk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjx0YWJsZSBjbGFzcz1cXFwidGFibGUgc3ZkX3RhYmxlLW5vd3JhcCBzdmRfcHJvcGVydGllc19ncmlkXFxcIj5cXG4gIDx0Ym9keSBkYXRhLWJpbmQ9XFxcImZvcmVhY2g6IGtvUHJvcGVydGllc1xcXCI+XFxuICAgIDx0ciBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvVmlzaWJsZSwgYXR0cjogeyAnZGF0YS1wcm9wZXJ0eSc6IG5hbWUgfVxcXCI+XFxuICAgICAgPHRkIHdpZHRoPVxcXCI1MCVcXFwiPlxcbiAgICAgICAgPHNwYW5cXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBkaXNwbGF5TmFtZSwgYXR0cjoge3RpdGxlOiB0aXRsZSB8fCBkaXNwbGF5TmFtZX1cXFwiXFxuICAgICAgICA+PC9zcGFuPlxcbiAgICAgIDwvdGQ+XFxuICAgICAgPHRkIGNsYXNzPVxcXCJzdmQtbGlnaHQtdGV4dC1jb2xvciBmb3JtLWdyb3VwXFxcIiB3aWR0aD1cXFwiNTAlXFxcIj5cXG4gICAgICAgIDxkaXYgZGF0YS1iaW5kPVxcXCJldmVudDogeyBrZXlkb3duOiAkZGF0YS5lZGl0b3Iua2V5RG93bkhhbmRsZXIgfVxcXCI+XFxuICAgICAgICAgIDwhLS0ga28gaWY6ICRkYXRhLmVkaXRvci5pc01vZGFsIC0tPlxcbiAgICAgICAgICA8IS0tIGtvIGNvbXBvbmVudDogeyBuYW1lOiBcXFwic3ZkLXByb3BlcnR5LWVkaXRvci1tb2RhbFxcXCIsIHBhcmFtczogeyBtb2RlbDogJGRhdGEuZWRpdG9yLCBhZnRlclJlbmRlcjogJHBhcmVudC5rb1RhYigpLmtvQWZ0ZXJSZW5kZXIgfSB9IC0tPjwhLS0gL2tvIC0tPlxcbiAgICAgICAgICA8IS0tIC9rbyAtLT5cXG5cXG4gICAgICAgICAgPCEtLSBrbyBpZm5vdDogJGRhdGEuZWRpdG9yLmlzTW9kYWwgLS0+XFxuICAgICAgICAgIDwhLS0ga28gY29tcG9uZW50OiB7IG5hbWU6IFxcXCJzdmQtcHJvcGVydHktZWRpdG9yLVxcXCIgKyBlZGl0b3JUeXBlVGVtcGxhdGUsIHBhcmFtczogeyBtb2RlbDogJGRhdGEuZWRpdG9yLCBhZnRlclJlbmRlcjogJHBhcmVudC5rb1RhYigpLmtvQWZ0ZXJSZW5kZXIgfSB9IC0tPjwhLS0gL2tvIC0tPlxcbiAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgIDwvdGQ+XFxuICAgIDwvdHI+XFxuICA8L3Rib2R5PlxcbjwvdGFibGU+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vb2JqZWN0LWVkaXRvci1vbGQtdGFibGUtY29udGVudC5zY3NzXCI7XG5pbXBvcnQge1xuICBTdXJ2ZXlFbGVtZW50RWRpdG9yT2xkVGFibGVDb250ZW50TW9kZWwsXG4gIFN1cnZleUVsZW1lbnRFZGl0b3JUYWJNb2RlbCxcbn0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5T2JqZWN0UHJvcGVydHkgfSBmcm9tIFwiLi4vb2JqZWN0UHJvcGVydHlcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL29iamVjdC1lZGl0b3Itb2xkLXRhYmxlLWNvbnRlbnQuaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIE9iamVjdEVkaXRvck9sZFRhYmxlQ29udGVudFZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb1Byb3BlcnRpZXM6IGtvLk9ic2VydmFibGVBcnJheTxTdXJ2ZXlPYmplY3RQcm9wZXJ0eT4sXG4gICAgcHVibGljIGtvVGFiOiBrby5PYnNlcnZhYmxlPFN1cnZleUVsZW1lbnRFZGl0b3JUYWJNb2RlbD4sXG4gICAgY29tcG9uZW50SW5mbzogYW55XG4gICkge31cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1vYmplY3QtZWRpdG9yLW9sZC10YWJsZS1jb250ZW50XCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbDogU3VydmV5RWxlbWVudEVkaXRvck9sZFRhYmxlQ29udGVudE1vZGVsID0gcGFyYW1zLmVsZW1lbnRFZGl0b3JDb250ZW50KCk7XG4gICAgICByZXR1cm4gbmV3IE9iamVjdEVkaXRvck9sZFRhYmxlQ29udGVudFZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29Qcm9wZXJ0aWVzLFxuICAgICAgICBtb2RlbC5rb1RhYixcbiAgICAgICAgY29tcG9uZW50SW5mb1xuICAgICAgKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdlxcbiAgY2xhc3M9XFxcInJvd1xcXCJcXG4gIGRhdGEtYmluZD1cXFwiY3NzOiAnc3ZkLXBvcHVwLWVkaXRvci10YWItJyArIG5hbWUsIGF0dHI6IHtpZDogJ2VkaXRvcl90YWJfaWRfJyArIG5hbWV9XFxcIlxcbj5cXG4gIDxkaXYgY2xhc3M9XFxcImNvbC1zbS0xMlxcXCI+XFxuICAgIDwhLS0ga28gZm9yZWFjaDogeyBkYXRhOiBlZGl0b3JQcm9wZXJ0aWVzIH0gLS0+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgIDxkaXZcXG4gICAgICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZToga29WaXNpYmxlLCBldmVudDogeyBrZXlkb3duOiBlZGl0b3Iua2V5RG93bkhhbmRsZXIgfSwgYXR0cjogeyAnZGF0YS1wcm9wZXJ0eSc6IHByb3BlcnR5Lm5hbWUgfVxcXCJcXG4gICAgICA+XFxuICAgICAgICA8c3ZkLXByb3BlcnR5LWVkaXRvclxcbiAgICAgICAgICBwYXJhbXM9XFxcInttb2RlbDogZWRpdG9yLCBhZnRlclJlbmRlcjogJHBhcmVudC5rb0FmdGVyUmVuZGVyUHJvcGVydHl9XFxcIlxcbiAgICAgICAgPjwvc3ZkLXByb3BlcnR5LWVkaXRvcj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDwhLS0gL2tvICAtLT5cXG4gIDwvZGl2PlxcbiAgPGRpdiBkYXRhLWJpbmQ9XFxcImFmdGVyUmVuZGVyUGFyZW50OiAkZGF0YS5hZnRlclJlbmRlclxcXCI+PC9kaXY+XFxuPC9kaXY+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vb2JqZWN0LWVkaXRvci10YWIuc2Nzc1wiO1xuaW1wb3J0IHsgU3VydmV5RWxlbWVudEVkaXRvclRhYk1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5T2JqZWN0UHJvcGVydHkgfSBmcm9tIFwiLi4vb2JqZWN0UHJvcGVydHlcIjtcbmNvbnN0IHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL29iamVjdC1lZGl0b3ItdGFiLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RFZGl0b3JUYWJWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBlZGl0b3JQcm9wZXJ0aWVzOiBBcnJheTxTdXJ2ZXlPYmplY3RQcm9wZXJ0eT4sXG4gICAgcHVibGljIGtvQWZ0ZXJSZW5kZXJQcm9wZXJ0eTogYW55LFxuICAgIHB1YmxpYyBhZnRlclJlbmRlclxuICApIHt9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtb2JqZWN0LWVkaXRvci10YWJcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsOiBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwgPSBwYXJhbXMubW9kZWw7XG4gICAgICByZXR1cm4gbmV3IE9iamVjdEVkaXRvclRhYlZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwubmFtZSxcbiAgICAgICAgbW9kZWwuZWRpdG9yUHJvcGVydGllcyxcbiAgICAgICAgbW9kZWwua29BZnRlclJlbmRlclByb3BlcnR5LFxuICAgICAgICBtb2RlbC5rb0FmdGVyUmVuZGVyXG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJzdmRfb2JqZWN0X2VkaXRvclxcXCI+XFxuICA8IS0tIGtvIGlmOiBrb0hhc09iamVjdCAtLT5cXG4gIDxkaXYgcm9sZT1cXFwidGFibGlzdFxcXCI+XFxuICAgIDwhLS0ga28gaWZub3Q6IGtvSXNPbGRUYWJsZUFwcGVhcmFuY2UoKSAtLT5cXG4gICAgPHN2ZC1vYmplY3QtZWRpdG9yLWNvbnRlbnRcXG4gICAgICBwYXJhbXM9XFxcImVsZW1lbnRFZGl0b3JDb250ZW50OiBrb0VsZW1lbnRFZGl0b3IoKVxcXCJcXG4gICAgPjwvc3ZkLW9iamVjdC1lZGl0b3ItY29udGVudD5cXG4gICAgPCEtLSAva28gLS0+XFxuXFxuICAgIDwhLS0ga28gaWY6IGtvSXNPbGRUYWJsZUFwcGVhcmFuY2UoKSAtLT5cXG4gICAgPHN2ZC1vYmplY3QtZWRpdG9yLW9sZC10YWJsZS1jb250ZW50XFxuICAgICAgcGFyYW1zPVxcXCJlbGVtZW50RWRpdG9yQ29udGVudDoga29FbGVtZW50RWRpdG9yKClcXFwiXFxuICAgID48L3N2ZC1vYmplY3QtZWRpdG9yLW9sZC10YWJsZS1jb250ZW50PlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gIDwvZGl2PlxcbiAgPCEtLSAva28gLS0+XFxuPC9kaXY+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vb2JqZWN0LWVkaXRvci5zY3NzXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9vYmplY3QtZWRpdG9yLmh0bWxcIik7XG5cbmltcG9ydCB7XG4gIFByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsLFxuICBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsLFxufSBmcm9tIFwiLi4vcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uRWRpdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RFZGl0b3JWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMga29Jc09sZFRhYmxlQXBwZWFyYW5jZToga28uT2JzZXJ2YWJsZTxib29sZWFuPixcbiAgICBwdWJsaWMga29FbGVtZW50RWRpdG9yOiBrby5PYnNlcnZhYmxlPFxuICAgICAgU3VydmV5RWxlbWVudEVkaXRvckNvbnRlbnRNb2RlbFxuICAgID4sXG4gICAgcHVibGljIGtvSGFzT2JqZWN0OiBrby5PYnNlcnZhYmxlPGJvb2xlYW4+XG4gICkge31cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1vYmplY3QtZWRpdG9yXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbDogUHJvcGVydHlHcmlkT2JqZWN0RWRpdG9yTW9kZWwgPSBwYXJhbXMubW9kZWw7XG4gICAgICByZXR1cm4gbmV3IE9iamVjdEVkaXRvclZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwua29Jc09sZFRhYmxlQXBwZWFyYW5jZSxcbiAgICAgICAgbW9kZWwua29FbGVtZW50RWRpdG9yLFxuICAgICAgICBtb2RlbC5rb0hhc09iamVjdFxuICAgICAgKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwic3ZkX3Byb3BlcnRpZXMgc3ZkLWxpZ2h0LWJvcmRlci1jb2xvciBzdmQtZGFyay1iZy1jb2xvclxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19yb3dcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgIDxzdmQtZHJvcGRvd25cXG4gICAgICAgICAgY2xhc3M9XFxcInN2ZF9vYmplY3Rfc2VsZWN0b3Igc3ZkLWxpZ2h0LWJvcmRlci1jb2xvclxcXCJcXG4gICAgICAgICAgcGFyYW1zPVxcXCJpdGVtOiB7IGl0ZW1zOiBrb09iamVjdHMsIGFjdGlvbjoga29TZWxlY3RlZE9iamVjdCwgdGl0bGU6ICcnLCBvcHRpb25zVmFsdWU6IG51bGwsIGFyaWFMYWJlbDogZ2V0TG9jU3RyaW5nKCdlZC5jaG9vc2VFbGVtZW50JykgfSwgc2VsZWN0Mzoga29TZWxlY3RlZE9iamVjdFxcXCJcXG4gICAgICAgID48L3N2ZC1kcm9wZG93bj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX3Jvd1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19jZWxsXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbC1jb250ZW50LWhvbGRlclxcXCI+XFxuICAgICAgICAgIDxkaXZcXG4gICAgICAgICAgICBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbC1jb250ZW50IHN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGwtY29udGVudC0tc2Nyb2xsYWJsZVxcXCJcXG4gICAgICAgICAgPlxcbiAgICAgICAgICAgIDxzdmQtb2JqZWN0LWVkaXRvclxcbiAgICAgICAgICAgICAgcGFyYW1zPVxcXCJtb2RlbDogcHJvcGVydHlHcmlkT2JqZWN0RWRpdG9yTW9kZWxcXFwiXFxuICAgICAgICAgICAgPjwvc3ZkLW9iamVjdC1lZGl0b3I+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuPC9kaXY+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vcHJvcGVydHktZ3JpZC5zY3NzXCI7XG5jb25zdCB0ZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi9wcm9wZXJ0eS1ncmlkLmh0bWxcIik7XG5cbmltcG9ydCB7IFByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5R3JpZFZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBrb09iamVjdHM6IGFueSxcbiAgICBwdWJsaWMga29TZWxlY3RlZE9iamVjdDogYW55LFxuICAgIHB1YmxpYyBwcm9wZXJ0eUdyaWRPYmplY3RFZGl0b3JNb2RlbDogUHJvcGVydHlHcmlkT2JqZWN0RWRpdG9yTW9kZWxcbiAgKSB7fVxuICBwdWJsaWMgZ2V0TG9jU3RyaW5nKHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoc3RyKTtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLXByb3BlcnR5LWdyaWRcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGNvbnN0IGNyZWF0b3I6IFN1cnZleUNyZWF0b3IgPSBwYXJhbXMuY3JlYXRvcjtcbiAgICAgIHJldHVybiBuZXcgUHJvcGVydHlHcmlkVmlld01vZGVsKFxuICAgICAgICBjcmVhdG9yLmtvT2JqZWN0cyxcbiAgICAgICAgY3JlYXRvci5rb1NlbGVjdGVkT2JqZWN0LFxuICAgICAgICBjcmVhdG9yLnByb3BlcnR5R3JpZE9iamVjdEVkaXRvck1vZGVsXG4gICAgICApO1xuICAgIH0sXG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZUh0bWwsXG59KTtcbiIsImltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5cbmV4cG9ydCBjbGFzcyBFZGl0YWJsZU9iamVjdCB7XG4gIHB1YmxpYyBzdGF0aWMgaXNDb3B5T2JqZWN0KG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhb2JqICYmIG9ialtcImlzQ29weVwiXTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGdldFN1cnZleShvYmplY3Q6IGFueSk6IFN1cnZleS5TdXJ2ZXlNb2RlbCB7XG4gICAgaWYgKFxuICAgICAgb2JqZWN0IGluc3RhbmNlb2YgU3VydmV5LlN1cnZleU1vZGVsIHx8XG4gICAgICAoISFvYmplY3QgJiYgISFvYmplY3QuZ2V0VHlwZSAmJiBvYmplY3QuZ2V0VHlwZSgpID09IFwic3VydmV5XCIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gRWRpdGFibGVPYmplY3QuZ2V0T3JpZ2luYWxTdXJ2ZXkob2JqZWN0KTtcbiAgICB9XG4gICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIFN1cnZleS5NYXRyaXhEcm9wZG93bkNvbHVtbiAmJiAhIW9iamVjdC5jb2xPd25lcilcbiAgICAgIHJldHVybiBvYmplY3QuY29sT3duZXJbXCJzdXJ2ZXlcIl07XG4gICAgaWYgKCEhb2JqZWN0KSB7XG4gICAgICBpZiAoISFvYmplY3Quc3VydmV5KVxuICAgICAgICByZXR1cm4gRWRpdGFibGVPYmplY3QuZ2V0T3JpZ2luYWxTdXJ2ZXkob2JqZWN0LnN1cnZleSk7XG4gICAgICBpZiAoISFvYmplY3Qub3duZXIpIHJldHVybiBFZGl0YWJsZU9iamVjdC5nZXRTdXJ2ZXkob2JqZWN0Lm93bmVyKTtcbiAgICAgIGlmICghIW9iamVjdC5lcnJvck93bmVyKVxuICAgICAgICByZXR1cm4gRWRpdGFibGVPYmplY3QuZ2V0U3VydmV5KG9iamVjdC5lcnJvck93bmVyKTtcbiAgICAgIGlmICghIW9iamVjdC5sb2NPd25lcikgcmV0dXJuIEVkaXRhYmxlT2JqZWN0LmdldFN1cnZleShvYmplY3QubG9jT3duZXIpO1xuICAgIH1cbiAgICB2YXIgb3JpZ2luYWwgPSBFZGl0YWJsZU9iamVjdC5nZXRPcmlnaW5hbE9iamVjdChvYmplY3QpO1xuICAgIGlmICghIW9yaWdpbmFsICYmIG9yaWdpbmFsICE9PSBvYmplY3QpXG4gICAgICByZXR1cm4gRWRpdGFibGVPYmplY3QuZ2V0U3VydmV5KG9yaWdpbmFsKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGdldE9yaWdpbmFsT2JqZWN0KG9iamVjdDogYW55KTogYW55IHtcbiAgICByZXR1cm4gISFvYmplY3QgJiYgISFvYmplY3RbXCJvcmlnaW5hbE9ialwiXSA/IG9iamVjdFtcIm9yaWdpbmFsT2JqXCJdIDogb2JqZWN0O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgZ2V0T3JpZ2luYWxTdXJ2ZXkoXG4gICAgc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWxcbiAgKTogU3VydmV5LlN1cnZleU1vZGVsIHtcbiAgICByZXR1cm4gRWRpdGFibGVPYmplY3QuZ2V0T3JpZ2luYWxPYmplY3Qoc3VydmV5KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JqVmFsdWU6IFN1cnZleS5CYXNlO1xuICBwcml2YXRlIGVkaXRhYmxlT2JqVmFsdWU6IFN1cnZleS5CYXNlO1xuICBwdWJsaWMgY29uc3RydWN0b3Iob2JqOiBTdXJ2ZXkuQmFzZSkge1xuICAgIHRoaXMub2JqVmFsdWUgPSBvYmo7XG4gICAgdGhpcy5lZGl0YWJsZU9ialZhbHVlID0gdGhpcy5jcmVhdGVFZGl0YWJsZU9iaigpO1xuICB9XG4gIHB1YmxpYyBnZXQgb2JqKCkge1xuICAgIHJldHVybiB0aGlzLm9ialZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdGFibGVPYmooKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdGFibGVPYmpWYWx1ZTtcbiAgfVxuICBwdWJsaWMgaXNQcm9wZXJ0eUNoYW5nZWQocHJvcGVydHlOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAocHJvcGVydHlOYW1lID09IFwicGFnZXNcIikgcmV0dXJuIGZhbHNlOyAvL1dlIHVwZGF0ZSBwYWdlcyBpbiBvdXIgb3duIHdheVxuICAgIHJldHVybiAhU3VydmV5LkhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyhcbiAgICAgIHRoaXMub2JqW3Byb3BlcnR5TmFtZV0sXG4gICAgICB0aGlzLmVkaXRhYmxlT2JqW3Byb3BlcnR5TmFtZV1cbiAgICApO1xuICB9XG4gIHB1YmxpYyBhcHBseShwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xuICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gXCJwYWdlc1wiKSB7XG4gICAgICB0aGlzLmFwcGx5UGFnZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBcImJpbmRpbmdzXCIpIHtcbiAgICAgIHRoaXMub2JqLmJpbmRpbmdzLnNldEpzb24odGhpcy5lZGl0YWJsZU9iai5iaW5kaW5ncy5nZXRKc29uKCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNQcm9wZXJ0eUNoYW5nZWQocHJvcGVydHlOYW1lKSkgcmV0dXJuO1xuICAgIGlmIChcbiAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5vYmpbcHJvcGVydHlOYW1lXSkgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5lZGl0YWJsZU9ialtwcm9wZXJ0eU5hbWVdKVxuICAgICkge1xuICAgICAgdmFyIGRlc3QgPSB0aGlzLm9ialtwcm9wZXJ0eU5hbWVdO1xuICAgICAgdmFyIHNyYyA9IHRoaXMuZWRpdGFibGVPYmpbcHJvcGVydHlOYW1lXTtcbiAgICAgIGRlc3Quc3BsaWNlKDAsIGRlc3QubGVuZ3RoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3JjLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGRlc3QucHVzaChzcmNbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9ialtwcm9wZXJ0eU5hbWVdID0gdGhpcy5lZGl0YWJsZU9ialtwcm9wZXJ0eU5hbWVdO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5hc3NpZ25Qcm9wZXJ0aWVzKHRoaXMuZWRpdGFibGVPYmopO1xuICB9XG4gIHB1YmxpYyBhcHBseUFsbChleGNsdWRlZFByb3BzOiBBcnJheTxzdHJpbmc+ID0gW10pIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLmdldFByb3BlcnRpZXMoZXhjbHVkZWRQcm9wcyk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5hcHBseShwcm9wc1tpXSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0UHJvcGVydGllcyhleGNsdWRlZFByb3BzOiBBcnJheTxzdHJpbmc+KTogQXJyYXk8c3RyaW5nPiB7XG4gICAgdmFyIHByb3BzID0gW107XG4gICAgdmFyIG5ld0pTT04gPSB0aGlzLmdldE9iakpzb24odGhpcy5lZGl0YWJsZU9iaik7XG4gICAgdmFyIG9sZEpTT04gPSB0aGlzLmdldE9iakpzb24odGhpcy5vYmopO1xuICAgIGZvciAodmFyIGtleSBpbiBuZXdKU09OKSB7XG4gICAgICBpZiAoZXhjbHVkZWRQcm9wcy5pbmRleE9mKGtleSkgPiAtMSkgY29udGludWU7XG4gICAgICBwcm9wcy5wdXNoKGtleSk7XG4gICAgfVxuICAgIGZvciAodmFyIGtleSBpbiBvbGRKU09OKSB7XG4gICAgICBpZiAoZXhjbHVkZWRQcm9wcy5pbmRleE9mKGtleSkgPiAtMSB8fCBwcm9wcy5pbmRleE9mKGtleSkgPiAtMSkgY29udGludWU7XG4gICAgICBwcm9wcy5wdXNoKGtleSk7XG4gICAgfVxuICAgIGlmKCEhdGhpcy5vYmpbXCJwYWdlXCJdICYmIHRoaXMub2JqW1wicGFnZVwiXSAhPT0gdGhpcy5lZGl0YWJsZU9ialtcInBhZ2VcIl0pIHtcbiAgICAgIHByb3BzLnB1c2goXCJwYWdlXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcHM7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZUVkaXRhYmxlT2JqKCk6IFN1cnZleS5CYXNlIHtcbiAgICB2YXIgdHlwZSA9IHRoaXMub2JqLmdldFR5cGUoKTtcbiAgICB2YXIgcmVzID0gPFN1cnZleS5CYXNlPlN1cnZleS5TZXJpYWxpemVyLmNyZWF0ZUNsYXNzKHR5cGUpO1xuICAgIGlmIChyZXMgPT0gbnVsbCAmJiB0eXBlID09IFwic3VydmV5XCIpIHtcbiAgICAgIHJlcyA9IG5ldyBTdXJ2ZXkuU3VydmV5KCk7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduUHJvcGVydGllcyhyZXMpO1xuICAgIGlmICh0eXBlID09IFwibWF0cml4ZHJvcGRvd25jb2x1bW5cIikge1xuICAgICAgcmVzW1wiY29sT3duZXJcIl0gPSB0aGlzLm9ialtcImNvbE93bmVyXCJdO1xuICAgIH1cbiAgICBpZiAodHlwZSAhPSBcInN1cnZleVwiKSB7XG4gICAgICBpZiAoISFyZXNbXCJzZXRTdXJ2ZXlJbXBsXCJdKSB7XG4gICAgICAgIHJlc1tcInNldFN1cnZleUltcGxcIl0odGhpcy5vYmpbXCJzdXJ2ZXlcIl0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCEhdGhpcy5vYmpbXCJzdXJ2ZXlcIl0gJiYgIXJlc1tcInN1cnZleVwiXSkge1xuICAgICAgICAgIHJlc1tcInN1cnZleVwiXSA9IHRoaXMub2JqW1wic3VydmV5XCJdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghIXRoaXMub2JqW1wicGFyZW50XCJdKSB7XG4gICAgICByZXNbXCJwYXJlbnRcIl0gPSB0aGlzLm9ialtcInBhcmVudFwiXTtcbiAgICB9XG4gICAgaWYoISF0aGlzLm9ialtcInBhZ2VcIl0pIHtcbiAgICAgIHJlc1tcImNvcHlQYWdlVmFsdWVcIl0gPSB0aGlzLm9ialtcInBhZ2VcIl07XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzLCBcInBhZ2VcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlc1tcImNvcHlQYWdlVmFsdWVcIl07IH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24odmFsdWUpIHsgcmVzW1wiY29weVBhZ2VWYWx1ZVwiXSA9IHZhbHVlOyB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmVzW1wiaXNDb3B5XCJdID0gdHJ1ZTtcbiAgICByZXNbXCJvcmlnaW5hbE9ialwiXSA9IHRoaXMub2JqO1xuICAgIGlmIChyZXMuZ2V0VHlwZSgpID09IFwic3VydmV5XCIpIHtcbiAgICAgIHZhciBwYWdlcyA9ICg8YW55PnJlcykucGFnZXM7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHBhZ2VzW2ldW1wib3JpZ2luYWxPYmpcIl0gPSAoPGFueT50aGlzLm9iaikucGFnZXNbaV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBhc3NpZ25Qcm9wZXJ0aWVzKG9iajogYW55KSB7XG4gICAgbmV3IFN1cnZleS5Kc29uT2JqZWN0KCkudG9PYmplY3QodGhpcy5nZXRPYmpKc29uKCksIG9iaik7XG4gIH1cbiAgcHJpdmF0ZSBnZXRPYmpKc29uKG9iajogYW55ID0gbnVsbCk6IGFueSB7XG4gICAgaWYgKCFvYmopIG9iaiA9IHRoaXMub2JqO1xuICAgIHZhciBqc29uT2JqID0gbmV3IFN1cnZleS5Kc29uT2JqZWN0KCk7XG4gICAganNvbk9iai5saWdodFNlcmlhbGl6aW5nID0gdHJ1ZTtcbiAgICByZXR1cm4ganNvbk9iai50b0pzb25PYmplY3Qob2JqKTtcbiAgfVxuICBwcml2YXRlIGFwcGx5UGFnZXMoKSB7XG4gICAgdmFyIGVkaXRhYmxlUGFnZXMgPSAoPGFueT50aGlzLmVkaXRhYmxlT2JqKS5wYWdlcztcbiAgICB2YXIgcGFnZXMgPSAoPGFueT50aGlzLm9iaikucGFnZXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlZGl0YWJsZVBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWRpdGFibGVQYWdlID0gZWRpdGFibGVQYWdlc1tpXTtcbiAgICAgIHZhciBwYWdlID0gZWRpdGFibGVQYWdlc1tpXS5vcmlnaW5hbE9iajtcbiAgICAgIGlmICghIXBhZ2UpIHtcbiAgICAgICAgcGFnZS5uYW1lID0gZWRpdGFibGVQYWdlLm5hbWU7XG4gICAgICAgIHBhZ2UudGl0bGUgPSBlZGl0YWJsZVBhZ2UudGl0bGU7XG4gICAgICAgIHBhZ2UuZGVzY3JpcHRpb24gPSBlZGl0YWJsZVBhZ2UuZGVzY3JpcHRpb247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlZGl0YWJsZVBhZ2Uub3JpZ2luYWxPYmogPSBlZGl0YWJsZVBhZ2U7XG4gICAgICAgIHBhZ2VzLnNwbGljZShpLCAwLCBlZGl0YWJsZVBhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNQYWdlT3JkZXJDaGFnbmVkKCkpIHJldHVybjtcbiAgICBPYmplY3QuZ2V0UHJvdG90eXBlT2YocGFnZXMpLnNwbGljZS5jYWxsKHBhZ2VzLCAwLCBwYWdlcy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWRpdGFibGVQYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPCBlZGl0YWJsZVBhZ2VzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgT2JqZWN0LmdldFByb3RvdHlwZU9mKHBhZ2VzKS5wdXNoLmNhbGwoXG4gICAgICAgICAgcGFnZXMsXG4gICAgICAgICAgZWRpdGFibGVQYWdlc1tpXS5vcmlnaW5hbE9ialxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy9zZW5kIG5vdGlmaWNhdGlvbiBhYm91dCBjaGFuZ2VzXG4gICAgICAgIHBhZ2VzLnB1c2goZWRpdGFibGVQYWdlc1tpXS5vcmlnaW5hbE9iaik7XG4gICAgICB9XG4gICAgfVxuICAgICg8YW55PnRoaXMub2JqKS5jdXJyZW50UGFnZU5vID0gMDtcbiAgfVxuICBwcml2YXRlIGlzUGFnZU9yZGVyQ2hhZ25lZCgpIHtcbiAgICB2YXIgZWRpdGFibGVQYWdlcyA9ICg8YW55PnRoaXMuZWRpdGFibGVPYmopLnBhZ2VzO1xuICAgIHZhciBwYWdlcyA9ICg8YW55PnRoaXMub2JqKS5wYWdlcztcbiAgICBpZiAoZWRpdGFibGVQYWdlcy5sZW5ndGggIT09IHBhZ2VzLmxlbmd0aCkgcmV0dXJuIHRydWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlZGl0YWJsZVBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZWRpdGFibGVQYWdlc1tpXS5vcmlnaW5hbE9iaiAhPT0gcGFnZXNbaV0pIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciB9IGZyb20gXCIuLi9lbnRyaWVzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckJhc2VcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yRmFjdG9yeVwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5TW9kYWxFZGl0b3JcIjtcbmltcG9ydCB7IFN1cnZleUVsZW1lbnRTZWxlY3RvciB9IGZyb20gXCIuL3N1cnZleUVsZW1lbnRTZWxlY3RvclwiO1xuaW1wb3J0IHsgRWRpdGFibGVPYmplY3QgfSBmcm9tIFwiLi9lZGl0YWJsZU9iamVjdFwiO1xuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlCaW5kaW5nc0l0ZW0ge1xuICBwcml2YXRlIGVsZW1lbnRTZWxlY3RvclZhbHVlOiBTdXJ2ZXlFbGVtZW50U2VsZWN0b3I7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBwdWJsaWMgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIG9iajogU3VydmV5LkJhc2VcbiAgKSB7fVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICEhdGhpcy5lbGVtZW50U2VsZWN0b3IgPyB0aGlzLmVsZW1lbnRTZWxlY3Rvci5rb1ZhbHVlKCkgOiBcIlwiO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsOiBzdHJpbmcpIHtcbiAgICBpZiAoISF0aGlzLmVsZW1lbnRTZWxlY3Rvcikge1xuICAgICAgdGhpcy5lbGVtZW50U2VsZWN0b3Iua29WYWx1ZSh2YWwpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgc2V0RWxlbWVudFNlbGVjdG9yKHN1cnZleTogU3VydmV5LlN1cnZleU1vZGVsLCBzaG93VGl0bGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVsZW1lbnRTZWxlY3RvclZhbHVlID0gbmV3IFN1cnZleUVsZW1lbnRTZWxlY3RvcihcbiAgICAgIHN1cnZleSxcbiAgICAgIFwicXVlc3Rpb25cIixcbiAgICAgIHNob3dUaXRsZVxuICAgICk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMub2JqW1wiYmluZGluZ3NcIl0uZ2V0VmFsdWVOYW1lQnlQcm9wZXJ0eU5hbWUoXG4gICAgICB0aGlzLnByb3BlcnR5Lm5hbWVcbiAgICApO1xuICAgIHRoaXMuZWxlbWVudFNlbGVjdG9yVmFsdWUub25WYWx1ZUNoYW5nZWRDYWxsYmFjayA9ICh2YWwpID0+IHtcbiAgICAgIHRoaXMub2JqW1wiYmluZGluZ3NcIl0uc2V0QmluZGluZyh0aGlzLnByb3BlcnR5Lm5hbWUsIHZhbCk7XG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVsZW1lbnRTZWxlY3RvcigpOiBTdXJ2ZXlFbGVtZW50U2VsZWN0b3Ige1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRTZWxlY3RvclZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eUJpbmRpbmdzRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciB7XG4gIHB1YmxpYyBpdGVtczogQXJyYXk8U3VydmV5UHJvcGVydHlCaW5kaW5nc0l0ZW0+ID0gW107XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImJpbmRpbmdzXCI7XG4gIH1cbiAgcHVibGljIGJlZm9yZVNob3dDb3JlKCkge1xuICAgIHN1cGVyLmJlZm9yZVNob3dDb3JlKCk7XG4gICAgaWYgKCEhdGhpcy5vYmplY3QpIHtcbiAgICAgIHRoaXMuZmlsbEJpbmRpbmdJdGVtcygpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGZpbGxCaW5kaW5nSXRlbXMoKSB7XG4gICAgaWYgKCF0aGlzLm9iamVjdCkgcmV0dXJuO1xuICAgIHZhciBzdXJ2ZXkgPSBFZGl0YWJsZU9iamVjdC5nZXRTdXJ2ZXkodGhpcy5vYmplY3QpO1xuICAgIGlmICghc3VydmV5KSByZXR1cm47XG4gICAgdmFyIHNob3dUaXRsZSA9ICEhdGhpcy5vcHRpb25zXG4gICAgICA/IHRoaXMub3B0aW9ucy5zaG93VGl0bGVzSW5FeHByZXNzaW9uc1xuICAgICAgOiBmYWxzZTtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLmdldFByb3BlcnRpZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IG5ldyBTdXJ2ZXlQcm9wZXJ0eUJpbmRpbmdzSXRlbShcbiAgICAgICAgcHJvcHNbaV0sXG4gICAgICAgIHRoaXMuZ2V0UHJvcGVydHlEaXNwbGF5TmFtZShwcm9wc1tpXSksXG4gICAgICAgIHRoaXMub2JqZWN0XG4gICAgICApO1xuICAgICAgaXRlbS5zZXRFbGVtZW50U2VsZWN0b3Ioc3VydmV5LCBzaG93VGl0bGUpO1xuICAgICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfVxuICAvLy9UT0RPIHJlZmFjdG9yIHVzZSBvbmx5IHRoaXMub2JqZWN0LmJpbmRpbmdzLmdldFByb3BlcnRpZXMoKVxuICBwcml2YXRlIGdldFByb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBpZiAoISF0aGlzLm9iamVjdC5iaW5kaW5ncy5nZXRQcm9wZXJ0aWVzKVxuICAgICAgcmV0dXJuIHRoaXMub2JqZWN0LmJpbmRpbmdzLmdldFByb3BlcnRpZXMoKTtcbiAgICB2YXIgbmFtZXMgPSB0aGlzLm9iamVjdC5iaW5kaW5ncy5nZXROYW1lcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwcm9wID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFxuICAgICAgICB0aGlzLm9iamVjdC5nZXRUeXBlKCksXG4gICAgICAgIG5hbWVzW2ldXG4gICAgICApO1xuICAgICAgaWYgKCEhcHJvcCkgcmVzLnB1c2gocHJvcCk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cblxuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFwiYmluZGluZ3NcIiwgZnVuY3Rpb24gKFxuICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuKTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eUJpbmRpbmdzRWRpdG9yKHByb3BlcnR5KTtcbn0pO1xuIiwiaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yIH0gZnJvbSBcIi4vcHJvcGVydHlOZXN0ZWRQcm9wZXJ0eUVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciB9IGZyb20gXCIuLi9zdXJ2ZXlIZWxwZXJcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5Q2FsY3VsYXRlZFZhbHVlRWRpdG9yIGV4dGVuZHMgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3Ige1xuICBwdWJsaWMgc3RhdGljIFZhbHVlQmFzZU5hbWUgPSBcInZhclwiO1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjYWxjdWxhdGVkLXZhbHVlc1wiO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZVRlbXBsYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwibmVzdGVkLWl0ZW1zXCI7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEVkaXRvck5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMua29FZGl0SXRlbSgpKSByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gdGhpcy5rb0VkaXRJdGVtKCkubmFtZTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTmV3SXRlbSgpOiBhbnkge1xuICAgIHJldHVybiBuZXcgU3VydmV5LkNhbGN1bGF0ZWRWYWx1ZSh0aGlzLmdldE5ld05hbWUoKSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvbHVtbnNQcm9wZXJ0aWVzKCk6IEFycmF5PFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHk+IHtcbiAgICB2YXIgbmFtZXMgPSB0aGlzLmdldFByb3BlcnRpZXNOYW1lcyhcImNhbGN1bGF0ZWR2YWx1ZUBpdGVtc1wiLCBbXSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydGllc0J5TmFtZXMoXCJjYWxjdWxhdGVkdmFsdWVcIiwgbmFtZXMpO1xuICB9XG4gIHByaXZhdGUgZ2V0TmV3TmFtZSgpOiBzdHJpbmcge1xuICAgIHZhciBvYmpzID0gW107XG4gICAgdmFyIGl0ZW1zID0gdGhpcy5vcmlnaW5hbFZhbHVlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07XG4gICAgICBpZiAoISFpdGVtKSB7XG4gICAgICAgIG9ianMucHVzaCh7IG5hbWU6IGl0ZW0ubmFtZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFN1cnZleUhlbHBlci5nZXROZXdOYW1lKFxuICAgICAgb2JqcyxcbiAgICAgIFN1cnZleVByb3BlcnR5Q2FsY3VsYXRlZFZhbHVlRWRpdG9yLlZhbHVlQmFzZU5hbWVcbiAgICApO1xuICB9XG59XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcImNhbGN1bGF0ZWR2YWx1ZXNcIiwgZnVuY3Rpb24oXG4gIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4pOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICByZXR1cm4gbmV3IFN1cnZleVByb3BlcnR5Q2FsY3VsYXRlZFZhbHVlRWRpdG9yKHByb3BlcnR5KTtcbn0pO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5TW9kYWxFZGl0b3JcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5IH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JGYWN0b3J5XCI7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eUNlbGxzRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciB7XG4gIGtvUm93czogYW55O1xuICBrb0NvbHVtbnM6IGFueTtcbiAga29DYW5FZGl0OiBhbnk7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICAgIHRoaXMua29Sb3dzID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gICAgdGhpcy5rb0NvbHVtbnMgPSBrby5vYnNlcnZhYmxlQXJyYXkoKTtcbiAgICB0aGlzLmtvQ2FuRWRpdCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBnZXRWYWx1ZVRleHQodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgdmFyIHN0ck5hbWUgPSAhdmFsdWUgPyBcImVtcHR5XCIgOiBcIm5vdEVtcHR5XCI7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRQcm9wZXJ0eU5hbWVJbkVkaXRvcihzdHJOYW1lKTtcbiAgfVxuICBwdWJsaWMgYmVmb3JlU2hvd0NvcmUoKSB7XG4gICAgc3VwZXIuYmVmb3JlU2hvd0NvcmUoKTtcbiAgICB0aGlzLnNldHVwQ2VsbHMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjZWxsc1wiO1xuICB9XG4gIHByb3RlY3RlZCBvblZhbHVlQ2hhbmdlZCgpIHtcbiAgICBpZiAodGhpcy5pc0JlZm9yZVNob3dDYWxsZWQpIHtcbiAgICAgIHRoaXMuc2V0dXBDZWxscygpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGNhbkVkaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm93cy5sZW5ndGggPiAwICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwO1xuICB9XG4gIHB1YmxpYyBnZXQgcm93cygpOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5vYmplY3QgJiYgdGhpcy5vYmplY3Qucm93cyA/IHRoaXMub2JqZWN0LnJvd3MgOiBbXTtcbiAgfVxuICBwdWJsaWMgZ2V0IGNvbHVtbnMoKTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0ICYmIHRoaXMub2JqZWN0LmNvbHVtbnMgPyB0aGlzLm9iamVjdC5jb2x1bW5zIDogW107XG4gIH1cbiAgcHJvdGVjdGVkIGdldENlbGxUZXh0KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChyb3dJbmRleCA8IDApIHJldHVybiB0aGlzLm9iamVjdC5nZXREZWZhdWx0Q2VsbFRleHQoY29sdW1uSW5kZXgpO1xuICAgIHJldHVybiB0aGlzLm9iamVjdC5nZXRDZWxsVGV4dChyb3dJbmRleCwgY29sdW1uSW5kZXgpO1xuICB9XG4gIHByb3RlY3RlZCBzZXR1cENlbGxzKCkge1xuICAgIHRoaXMua29Sb3dzKFtdKTtcbiAgICB0aGlzLmtvQ29sdW1ucyhbXSk7XG4gICAgdGhpcy5rb0NhbkVkaXQodGhpcy5jYW5FZGl0KTtcbiAgICBpZiAoIXRoaXMuY2FuRWRpdCkgcmV0dXJuO1xuICAgIHZhciBjb2xzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbHMucHVzaCh0aGlzLmNvbHVtbnNbaV0udGV4dCk7XG4gICAgfVxuICAgIHZhciByb3dzID0gW107XG4gICAgcm93cy5wdXNoKFxuICAgICAgdGhpcy5jcmVhdGVSb3coLTEsIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJwZS5jZWxsc0RlZmF1bHRSb3dcIikpXG4gICAgKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgcm93cy5wdXNoKHRoaXMuY3JlYXRlUm93KGksIHRoaXMucm93c1tpXS50ZXh0KSk7XG4gICAgfVxuICAgIHRoaXMua29Db2x1bW5zKGNvbHMpO1xuICAgIHRoaXMua29Sb3dzKHJvd3MpO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVSb3cocm93SW5kZXg6IG51bWJlciwgcm93VGV4dDogc3RyaW5nKTogYW55IHtcbiAgICB2YXIgcm93ID0ge1xuICAgICAgcm93SW5kZXg6IHJvd0luZGV4LFxuICAgICAgcm93VGV4dDogcm93VGV4dCxcbiAgICAgIGtvQ2VsbHM6IGtvLm9ic2VydmFibGVBcnJheSgpLFxuICAgIH07XG4gICAgdmFyIGNlbGxzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNlbGxzLnB1c2goeyB0ZXh0OiB0aGlzLmNyZWF0ZUNlbGxUZXh0KHJvd0luZGV4LCBpKSB9KTtcbiAgICB9XG4gICAgcm93LmtvQ2VsbHMoY2VsbHMpO1xuICAgIHJldHVybiByb3c7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVDZWxsVGV4dChyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogYW55IHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHRleHQgPSBrby5vYnNlcnZhYmxlKHRoaXMuZ2V0Q2VsbFRleHQocm93SW5kZXgsIGNvbEluZGV4KSk7XG4gICAgdmFyIGNvbFZhbHVlID0gdGhpcy5jb2x1bW5zW2NvbEluZGV4XS52YWx1ZTtcbiAgICB0ZXh0LnN1YnNjcmliZShmdW5jdGlvbih2YWwpIHtcbiAgICAgIGlmIChyb3dJbmRleCA8IDApIHNlbGYub3JpZ2luYWxWYWx1ZS5zZXREZWZhdWx0Q2VsbFRleHQoY29sVmFsdWUsIHZhbCk7XG4gICAgICBlbHNlIHNlbGYub3JpZ2luYWxWYWx1ZS5zZXRDZWxsVGV4dChyb3dJbmRleCwgY29sVmFsdWUsIHZhbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbn1cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcImNlbGxzXCIsIGZ1bmN0aW9uKFxuICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuKTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eUNlbGxzRWRpdG9yKHByb3BlcnR5KTtcbn0pO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlUZXh0RWRpdG9yIH0gZnJvbSBcIi4vcHJvcGVydHlNb2RhbEVkaXRvclwiO1xuaW1wb3J0IHtcbiAgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlLFxuICBJU3VydmV5T2JqZWN0RWRpdG9yT3B0aW9ucyxcbn0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmltcG9ydCB7IEVkaXRhYmxlT2JqZWN0IH0gZnJvbSBcIi4vZWRpdGFibGVPYmplY3RcIjtcbmltcG9ydCB7IEV4cHJlc3Npb25Ub0Rpc3BsYXlUZXh0IH0gZnJvbSBcIi4uL2V4cHJlc3Npb25Ub0Rpc3BsYXlUZXh0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5RGVmYXVsdFZhbHVlRWRpdG9yXCI7XG5pbXBvcnQgKiBhcyBlZGl0b3JMb2NhbGl6YXRpb24gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5SGVscGVyIH0gZnJvbSBcIi4uL3N1cnZleUhlbHBlclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb25kaXRpb25FZGl0b3JJdGVtT3duZXIge1xuICBhbGxDb25kaXRpb25RdWVzdGlvbnM6IGFueVtdO1xuICBnZXRRdWVzdGlvblZhbHVlSlNPTihxdWVzdGlvbk5hbWU6IHN0cmluZywgb3BlcmF0b3I6IHN0cmluZyk6IGFueTtcbiAgZ2V0UXVlc3Rpb25CeU5hbWUocXVlc3Rpb25OYW1lKTogU3VydmV5LlF1ZXN0aW9uO1xuICBvbkNvbmRpdGlvbkl0ZW1DaGFuZ2VkKCk7XG4gIGlzQ2xhc3NDb250YWlucyhcbiAgICBxVHlwZTogc3RyaW5nLFxuICAgIGNvbnRhaW5zOiBBcnJheTxzdHJpbmc+LFxuICAgIG5vdENvbnRhaW5zOiBBcnJheTxzdHJpbmc+XG4gICk6IGJvb2xlYW47XG4gIGlzV2lkZU1vZGU6IGJvb2xlYW47XG4gIG9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zO1xuICByZWFkT25seSgpOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ29uZGl0aW9uRWRpdG9ySXRlbSB7XG4gIHN1cnZleTogU3VydmV5LlN1cnZleTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvd25lcjogSUNvbmRpdGlvbkVkaXRvckl0ZW1Pd25lcikge1xuICAgIHZhciBqc29uID0ge1xuICAgICAgc2hvd05hdmlnYXRpb25CdXR0b25zOiBmYWxzZSxcbiAgICAgIHNob3dQYWdlVGl0bGVzOiBmYWxzZSxcbiAgICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IFwib2ZmXCIsXG4gICAgICB0ZXh0VXBkYXRlTW9kZTogXCJvblR5cGluZ1wiLFxuICAgICAgcmVxdWlyZWRUZXh0OiBcIlwiLFxuICAgICAgcXVlc3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImNvbmp1bmN0aW9uXCIsXG4gICAgICAgICAgdHlwZTogXCJkcm9wZG93blwiLFxuICAgICAgICAgIHRpdGxlTG9jYXRpb246IFwiaGlkZGVuXCIsXG4gICAgICAgICAgYWxsb3dDbGVhcjogZmFsc2UsXG4gICAgICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICAgICAgY2hvaWNlczogW1wiYW5kXCIsIFwib3JcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInF1ZXN0aW9uTmFtZVwiLFxuICAgICAgICAgIHR5cGU6IFwiZHJvcGRvd25cIixcbiAgICAgICAgICB0aXRsZUxvY2F0aW9uOiBcImhpZGRlblwiLFxuICAgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLFxuICAgICAgICAgIHN0YXJ0V2l0aE5ld0xpbmU6IGZhbHNlLFxuICAgICAgICAgIGlzUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm9wZXJhdG9yXCIsXG4gICAgICAgICAgdHlwZTogXCJkcm9wZG93blwiLFxuICAgICAgICAgIHRpdGxlTG9jYXRpb246IFwiaGlkZGVuXCIsXG4gICAgICAgICAgc3RhcnRXaXRoTmV3TGluZTogZmFsc2UsXG4gICAgICAgICAgYWxsb3dDbGVhcjogZmFsc2UsXG4gICAgICAgICAgaXNSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVJZjogXCJ7cXVlc3Rpb25OYW1lfSBub3RlbXB0eVwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICAgIHRoaXMuc3VydmV5ID0gISFvd25lci5vcHRpb25zXG4gICAgICA/IG93bmVyLm9wdGlvbnMuY3JlYXRlU3VydmV5KGpzb24sIFwiY29uZGl0aW9uRWRpdG9yXCIpXG4gICAgICA6IG5ldyBTdXJ2ZXkuU3VydmV5KGpzb24pO1xuICAgIGlmIChvd25lci5yZWFkT25seSgpKSB7XG4gICAgICB0aGlzLnN1cnZleS5tb2RlID0gXCJkaXNwbGF5XCI7XG4gICAgfVxuICAgIHRoaXMuc3VydmV5Lm9uVmFsdWVDaGFuZ2VkLmFkZCgoc2VuZGVyLCBvcHRpb25zKSA9PiB7XG4gICAgICBpZiAob3B0aW9ucy5uYW1lID09IFwicXVlc3Rpb25OYW1lXCIpIHtcbiAgICAgICAgdGhpcy5yZWJ1aWxkUXVlc3Rpb25WYWx1ZSgpO1xuICAgICAgICB0aGlzLnNldE9wZXJhdG9yKCk7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5uYW1lID09IFwib3BlcmF0b3JcIikge1xuICAgICAgICB0aGlzLnJlYnVpbGRRdWVzdGlvblZhbHVlT25PcGVyYW5kQ2hhbmdpbmcoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMub3duZXIub25Db25kaXRpb25JdGVtQ2hhbmdlZCgpO1xuICAgICAgdGhpcy51cGRhdGVPcGVyYXRvckVuYWJsZXMoKTtcbiAgICB9KTtcbiAgICB0aGlzLnNldHVwU3VydmV5KCk7XG4gIH1cbiAgcHVibGljIGdldCBjb25qdW5jdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFN1cnZleVZhbHVlKFwiY29uanVuY3Rpb25cIik7XG4gIH1cbiAgcHVibGljIHNldCBjb25qdW5jdGlvbih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0U3VydmV5VmFsdWUoXCJjb25qdW5jdGlvblwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgcXVlc3Rpb25OYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3VydmV5VmFsdWUoXCJxdWVzdGlvbk5hbWVcIik7XG4gIH1cbiAgcHVibGljIHNldCBxdWVzdGlvbk5hbWUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFN1cnZleVZhbHVlKFwicXVlc3Rpb25OYW1lXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBvcGVyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFN1cnZleVZhbHVlKFwib3BlcmF0b3JcIik7XG4gIH1cbiAgcHVibGljIHNldCBvcGVyYXRvcih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0U3VydmV5VmFsdWUoXCJvcGVyYXRvclwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3VydmV5VmFsdWUoXCJxdWVzdGlvblZhbHVlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLnNldFN1cnZleVZhbHVlKFwicXVlc3Rpb25WYWx1ZVwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNGaXJzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY29uanVuY3Rpb25RdWVzdGlvbi5pc1Zpc2libGU7XG4gIH1cbiAgcHVibGljIHNldCBpc0ZpcnN0KHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuY29uanVuY3Rpb25RdWVzdGlvbi52aXNpYmxlID0gIXZhbDtcbiAgICB0aGlzLnVwZGF0ZVF1ZXN0aW9uc1dpZHRoKCk7XG4gIH1cbiAgcHVibGljIGdldCBpc1JlYWR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMucXVlc3Rpb25OYW1lICYmXG4gICAgICAoIXRoaXMuaXNWYWx1ZVJlcXVpcmVkIHx8ICF0aGlzLnN1cnZleS5pc1ZhbHVlRW1wdHkodGhpcy52YWx1ZSkpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGNvbmp1bmN0aW9uUXVlc3Rpb24oKTogU3VydmV5LlF1ZXN0aW9uRHJvcGRvd24ge1xuICAgIHJldHVybiA8U3VydmV5LlF1ZXN0aW9uRHJvcGRvd24+KFxuICAgICAgdGhpcy5zdXJ2ZXkuZ2V0UXVlc3Rpb25CeU5hbWUoXCJjb25qdW5jdGlvblwiKVxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldCBuYW1lUXVlc3Rpb24oKTogU3VydmV5LlF1ZXN0aW9uRHJvcGRvd24ge1xuICAgIHJldHVybiA8U3VydmV5LlF1ZXN0aW9uRHJvcGRvd24+KFxuICAgICAgdGhpcy5zdXJ2ZXkuZ2V0UXVlc3Rpb25CeU5hbWUoXCJxdWVzdGlvbk5hbWVcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgb3BlcmF0b3JRdWVzdGlvbigpOiBTdXJ2ZXkuUXVlc3Rpb25Ecm9wZG93biB7XG4gICAgcmV0dXJuIDxTdXJ2ZXkuUXVlc3Rpb25Ecm9wZG93bj50aGlzLnN1cnZleS5nZXRRdWVzdGlvbkJ5TmFtZShcIm9wZXJhdG9yXCIpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVRdWVzdGlvbigpOiBTdXJ2ZXkuUXVlc3Rpb24ge1xuICAgIHJldHVybiB0aGlzLnN1cnZleS5nZXRRdWVzdGlvbkJ5TmFtZShcInF1ZXN0aW9uVmFsdWVcIik7XG4gIH1cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzUmVhZHkpIHJldHVybiBcIlwiO1xuICAgIHZhciB0ZXh0ID1cbiAgICAgIFwie1wiICtcbiAgICAgIHRoaXMuZ2V0UXVlc3Rpb25WYWx1ZUJ5TmFtZSh0aGlzLnF1ZXN0aW9uTmFtZSkgK1xuICAgICAgXCJ9IFwiICtcbiAgICAgIHRoaXMuZ2V0T3BlcmF0b3JUZXh0KCk7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZVJlcXVpcmVkKSB7XG4gICAgICB0ZXh0ICs9IFwiIFwiICsgdGhpcy5nZXRWYWx1ZVRleHQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgaXNWYWx1ZVJlcXVpcmVkKCkge1xuICAgIHZhciBxdWVzdGlvbiA9IHRoaXMudmFsdWVRdWVzdGlvbjtcbiAgICByZXR1cm4gISFxdWVzdGlvbiAmJiAhcXVlc3Rpb24uaXNSZWFkT25seTtcbiAgfVxuICBwcml2YXRlIGdldExvY1N0cmluZyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhuYW1lKTtcbiAgfVxuICBwcml2YXRlIHNldHVwU3VydmV5KCkge1xuICAgIHZhciBxdWVzdGlvbkNvbmp1bmN0aW9uID0gdGhpcy5jb25qdW5jdGlvblF1ZXN0aW9uO1xuICAgIHF1ZXN0aW9uQ29uanVuY3Rpb24uY2hvaWNlc1swXS50ZXh0ID0gdGhpcy5nZXRMb2NTdHJpbmcoXCJwZS5hbmRcIik7XG4gICAgcXVlc3Rpb25Db25qdW5jdGlvbi5jaG9pY2VzWzFdLnRleHQgPSB0aGlzLmdldExvY1N0cmluZyhcInBlLm9yXCIpO1xuICAgIHZhciBxdWVzdGlvbk5hbWUgPSB0aGlzLm5hbWVRdWVzdGlvbjtcbiAgICBxdWVzdGlvbk5hbWUuY2hvaWNlcyA9IHRoaXMuZ2V0Q2hvaWNlcyh0aGlzLm93bmVyLmFsbENvbmRpdGlvblF1ZXN0aW9ucyk7XG4gICAgcXVlc3Rpb25OYW1lLm9wdGlvbnNDYXB0aW9uID0gdGhpcy5nZXRMb2NTdHJpbmcoXG4gICAgICBcInBlLmNvbmRpdGlvblNlbGVjdFF1ZXN0aW9uXCJcbiAgICApO1xuICAgIHRoaXMub3BlcmF0b3JRdWVzdGlvbi5jaG9pY2VzID0gdGhpcy5nZXRDaG9pY2VzKFxuICAgICAgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LmdldE9wZXJhdG9ycygpXG4gICAgKTtcbiAgICBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvci51cGRhdGVTdXJ2ZXlTdHlsZSh0aGlzLnN1cnZleSk7XG4gICAgdGhpcy5yZWJ1aWxkUXVlc3Rpb25WYWx1ZSgpO1xuICAgIHRoaXMuc3VydmV5LmRhdGEgPSB7IG9wZXJhdG9yOiBcImVxdWFsXCIsIGNvbmp1bmN0aW9uOiBcImFuZFwiIH07XG4gICAgdGhpcy51cGRhdGVRdWVzdGlvbnNXaWR0aCgpO1xuICB9XG4gIHByaXZhdGUgZ2V0U3VydmV5VmFsdWUobmFtZTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkuZ2V0VmFsdWUobmFtZSk7XG4gIH1cbiAgcHJpdmF0ZSBzZXRTdXJ2ZXlWYWx1ZShuYW1lOiBzdHJpbmcsIHZhbDogYW55KSB7XG4gICAgdGhpcy5zdXJ2ZXkuc2V0VmFsdWUobmFtZSwgdmFsKTtcbiAgfVxuICBwcml2YXRlIHJlYnVpbGRRdWVzdGlvblZhbHVlKCkge1xuICAgIHRoaXMuc3VydmV5LmNsZWFyVmFsdWUoXCJxdWVzdGlvblZhbHVlXCIpO1xuICAgIHZhciBqc29uID0gdGhpcy5vd25lci5nZXRRdWVzdGlvblZhbHVlSlNPTihcbiAgICAgIHRoaXMucXVlc3Rpb25OYW1lLFxuICAgICAgdGhpcy5vcGVyYXRvclxuICAgICk7XG4gICAgaWYgKCFqc29uKSB7XG4gICAgICBqc29uID0ge1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgIH07XG4gICAgfVxuICAgIGpzb24uaXNSZXF1aXJlZCA9IHRydWU7XG4gICAgU3VydmV5SGVscGVyLnVwZGF0ZVF1ZXN0aW9uSnNvbihqc29uKTtcbiAgICBqc29uLmVuYWJsZUlmID1cbiAgICAgIFwie3F1ZXN0aW9uTmFtZX0gbm90ZW1wdHkgYW5kIHtvcGVyYXRvcn0gIT0gJ2VtcHR5JyBhbmQge29wZXJhdG9yfSAhPSAnbm90ZW1wdHknXCI7XG4gICAgdmFyIG5ld1F1ZXN0aW9uID0gU3VydmV5LlNlcmlhbGl6ZXIuY3JlYXRlQ2xhc3MoanNvbi50eXBlKTtcbiAgICBkZWxldGUganNvbi50eXBlO1xuICAgIG5ldyBTdXJ2ZXkuSnNvbk9iamVjdCgpLnRvT2JqZWN0KGpzb24sIG5ld1F1ZXN0aW9uKTtcbiAgICBpZiAoIW5ld1F1ZXN0aW9uKSB7XG4gICAgICBuZXdRdWVzdGlvbiA9IFN1cnZleS5TZXJpYWxpemVyLmNyZWF0ZUNsYXNzKFwidGV4dFwiLCBqc29uKTtcbiAgICB9XG4gICAgdmFyIG9sZFF1ZXN0aW9uID0gdGhpcy52YWx1ZVF1ZXN0aW9uO1xuICAgIGlmICghIW9sZFF1ZXN0aW9uKSB7XG4gICAgICB0aGlzLnN1cnZleS5wYWdlc1swXS5yZW1vdmVFbGVtZW50KG9sZFF1ZXN0aW9uKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2FuU2hvd1F1ZXN0aW9uVmFsdWUoKSkge1xuICAgICAgbmV3UXVlc3Rpb24ubmFtZSA9IFwicXVlc3Rpb25WYWx1ZVwiO1xuICAgICAgbmV3UXVlc3Rpb24udGl0bGUgPSB0aGlzLmdldExvY1N0cmluZyhcInBlLmNvbmRpdGlvblZhbHVlUXVlc3Rpb25UaXRsZVwiKTtcbiAgICAgIG5ld1F1ZXN0aW9uLmRlc2NyaXB0aW9uID0gXCJcIjtcbiAgICAgIG5ld1F1ZXN0aW9uLnRpdGxlTG9jYXRpb24gPSBcImRlZmF1bHRcIjtcbiAgICAgIG5ld1F1ZXN0aW9uLmhhc0NvbW1lbnQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmlzS2VlcFF1ZXN0b25WYWx1ZU9uU2FtZUxpbmUobmV3UXVlc3Rpb24uZ2V0VHlwZSgpKSkge1xuICAgICAgICBuZXdRdWVzdGlvbi50aXRsZUxvY2F0aW9uID0gXCJoaWRkZW5cIjtcbiAgICAgICAgbmV3UXVlc3Rpb24uc3RhcnRXaXRoTmV3TGluZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5zdXJ2ZXkucGFnZXNbMF0uYWRkRWxlbWVudChuZXdRdWVzdGlvbik7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlUXVlc3Rpb25zV2lkdGgoKTtcbiAgfVxuICBwcml2YXRlIGlzS2VlcFF1ZXN0b25WYWx1ZU9uU2FtZUxpbmUocXVlc3Rpb25UeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMub3duZXIuaXNXaWRlTW9kZSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLm93bmVyLmlzQ2xhc3NDb250YWlucyhcbiAgICAgIHF1ZXN0aW9uVHlwZSxcbiAgICAgIFtcInRleHRcIiwgXCJkcm9wZG93blwiLCBcInJhdGluZ1wiLCBcImJvb2xlYW5cIl0sXG4gICAgICBbXVxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSByZWJ1aWxkUXVlc3Rpb25WYWx1ZU9uT3BlcmFuZENoYW5naW5nKCkge1xuICAgIGlmICghdGhpcy5xdWVzdGlvbk5hbWUpIHJldHVybjtcbiAgICB2YXIganNvbiA9IHRoaXMub3duZXIuZ2V0UXVlc3Rpb25WYWx1ZUpTT04oXG4gICAgICB0aGlzLnF1ZXN0aW9uTmFtZSxcbiAgICAgIHRoaXMub3BlcmF0b3JcbiAgICApO1xuICAgIHZhciBxdWVzdGlvbiA9IHRoaXMudmFsdWVRdWVzdGlvbjtcbiAgICBpZiAoISFxdWVzdGlvbiAmJiBxdWVzdGlvbi5pc1JlYWRPbmx5KSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKCFxdWVzdGlvbiB8fCAoISFqc29uICYmIGpzb24udHlwZSA9PSBxdWVzdGlvbi5nZXRUeXBlKCkpKSByZXR1cm47XG4gICAgdGhpcy5yZWJ1aWxkUXVlc3Rpb25WYWx1ZSgpO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlUXVlc3Rpb25zV2lkdGgoKSB7XG4gICAgdmFyIGlzV2lkZSA9IHRoaXMub3duZXIuaXNXaWRlTW9kZTtcbiAgICB2YXIgcGFkZGluZ1JpZ2h0ID0gaXNXaWRlID8gXCIyMHB4XCIgOiBcIjVweFwiO1xuICAgIHZhciBpc1ZhbHVlU2FtZUxpbmUgPVxuICAgICAgISF0aGlzLnZhbHVlUXVlc3Rpb24gJiYgIXRoaXMudmFsdWVRdWVzdGlvbi5zdGFydFdpdGhOZXdMaW5lO1xuXG4gICAgaWYgKCEhdGhpcy5jb25qdW5jdGlvblF1ZXN0aW9uKSB7XG4gICAgICB0aGlzLmNvbmp1bmN0aW9uUXVlc3Rpb24ubWluV2lkdGggPSBcIjUwcHhcIjtcbiAgICAgIHRoaXMuY29uanVuY3Rpb25RdWVzdGlvbi53aWR0aCA9IHRoaXMuaXNGaXJzdCA/IFwiXCIgOiBcIjEwMHB4XCI7XG4gICAgICB0aGlzLmNvbmp1bmN0aW9uUXVlc3Rpb24ucGFkZGluZ1JpZ2h0ID0gcGFkZGluZ1JpZ2h0O1xuICAgIH1cblxuICAgIHRoaXMubmFtZVF1ZXN0aW9uLm1pbldpZHRoID0gXCI1MHB4XCI7XG4gICAgdGhpcy5uYW1lUXVlc3Rpb24ud2lkdGggPSBpc1dpZGVcbiAgICAgID8gdGhpcy5pc0ZpcnN0XG4gICAgICAgID8gXCI0MCVcIlxuICAgICAgICA6IFwiMjUlXCJcbiAgICAgIDogdGhpcy5pc0ZpcnN0XG4gICAgICAgID8gXCI3MCVcIlxuICAgICAgICA6IFwiNDUlXCI7XG4gICAgdGhpcy5uYW1lUXVlc3Rpb24ucGFkZGluZ1JpZ2h0ID0gcGFkZGluZ1JpZ2h0O1xuXG4gICAgdGhpcy5vcGVyYXRvclF1ZXN0aW9uLm1pbldpZHRoID0gXCI1MHB4XCI7XG4gICAgdGhpcy5vcGVyYXRvclF1ZXN0aW9uLndpZHRoID0gaXNXaWRlXG4gICAgICA/IGlzVmFsdWVTYW1lTGluZVxuICAgICAgICA/IFwiMjUlXCJcbiAgICAgICAgOiBcIjYwJVwiXG4gICAgICA6IFwiMzAlXCI7XG4gICAgdGhpcy5vcGVyYXRvclF1ZXN0aW9uLnBhZGRpbmdSaWdodCA9IHBhZGRpbmdSaWdodDtcblxuICAgIGlmICghIXRoaXMudmFsdWVRdWVzdGlvbikge1xuICAgICAgdGhpcy52YWx1ZVF1ZXN0aW9uLm1pbldpZHRoID0gXCI1MHB4XCI7XG4gICAgICB0aGlzLnZhbHVlUXVlc3Rpb24ud2lkdGggPSBpc1ZhbHVlU2FtZUxpbmUgPyBcIjM1JVwiIDogXCJcIjtcbiAgICAgIHRoaXMudmFsdWVRdWVzdGlvbi5wYWRkaW5nUmlnaHQgPSBwYWRkaW5nUmlnaHQ7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc2V0T3BlcmF0b3IoKSB7XG4gICAgdGhpcy5vcGVyYXRvciA9IFwiZXF1YWxcIjtcbiAgfVxuICBwcml2YXRlIGdldENob2ljZXMoYXJyOiBhbnlbXSk6IEFycmF5PFN1cnZleS5JdGVtVmFsdWU+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcy5wdXNoKG5ldyBTdXJ2ZXkuSXRlbVZhbHVlKGFycltpXS5uYW1lLCBhcnJbaV0udGV4dCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgZ2V0UXVlc3Rpb25WYWx1ZUJ5TmFtZShxdWVzdGlvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5vd25lci5nZXRRdWVzdGlvbkJ5TmFtZShxdWVzdGlvbk5hbWUpO1xuICAgIGlmIChcbiAgICAgIHF1ZXN0aW9uICYmXG4gICAgICBxdWVzdGlvbi5uYW1lICE9IHF1ZXN0aW9uLmdldFZhbHVlTmFtZSgpICYmXG4gICAgICBxdWVzdGlvbk5hbWUgIT0gcXVlc3Rpb24uZ2V0VmFsdWVOYW1lKClcbiAgICApIHtcbiAgICAgIHJldHVybiBxdWVzdGlvbk5hbWUucmVwbGFjZShxdWVzdGlvbi5uYW1lLCBxdWVzdGlvbi5nZXRWYWx1ZU5hbWUoKSk7XG4gICAgfVxuICAgIHJldHVybiBxdWVzdGlvbk5hbWU7XG4gIH1cbiAgcHJpdmF0ZSBnZXRWYWx1ZVRleHQoKTogc3RyaW5nIHtcbiAgICB2YXIgdmFsID0gdGhpcy52YWx1ZTtcbiAgICBpZiAoIXZhbCkgcmV0dXJuIHZhbDtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIHRoaXMudmFsVG9UZXh0KHZhbCk7XG4gICAgdmFyIHJlcyA9IFwiW1wiO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMgKz0gdGhpcy52YWxUb1RleHQodmFsW2ldKTtcbiAgICAgIGlmIChpIDwgdmFsLmxlbmd0aCAtIDEpIHJlcyArPSBcIiwgXCI7XG4gICAgfVxuICAgIHJlcyArPSBcIl1cIjtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgdmFsVG9UZXh0KHZhbDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodmFsID09IFwidHJ1ZVwiIHx8IHZhbCA9PSBcImZhbHNlXCIpIHJldHVybiB2YWw7XG4gICAgaWYgKHRoaXMuaXNOdW1lcmljKHZhbCkpIHJldHVybiB2YWw7XG4gICAgaWYgKHZhbFswXSA9PSBcIltcIikgcmV0dXJuIHZhbC5yZXBsYWNlKC8oPyFeKShbJ10pKD8hJCkvZywgXCJcXFxcJDFcIik7XG4gICAgaWYgKCF0aGlzLmlzUXVvdGUodmFsWzBdKSkgdmFsID0gXCInXCIgKyB2YWw7XG4gICAgaWYgKCF0aGlzLmlzUXVvdGUodmFsW3ZhbC5sZW5ndGggLSAxXSkpIHZhbCA9IHZhbCArIFwiJ1wiO1xuICAgIHJldHVybiB2YWwucmVwbGFjZSgvKD8hXikoWydcIl0pKD8hJCkvZywgXCJcXFxcJDFcIik7XG4gIH1cbiAgcHJpdmF0ZSBpc051bWVyaWModmFsOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiICYmXG4gICAgICB2YWwubGVuZ3RoID4gMSAmJlxuICAgICAgdmFsWzBdID09PSBcIjBcIiAmJlxuICAgICAgdmFsWzFdICE9PSBcInhcIlxuICAgIClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIWlzTmFOKHZhbCk7XG4gIH1cbiAgcHJpdmF0ZSBpc1F1b3RlKGNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY2ggPT0gXCInXCIgfHwgY2ggPT0gJ1wiJztcbiAgfVxuICBwcml2YXRlIGdldE9wZXJhdG9yVGV4dCgpOiBzdHJpbmcge1xuICAgIHZhciBvcCA9IHRoaXMub3BlcmF0b3I7XG4gICAgaWYgKG9wID09IFwiZXF1YWxcIikgcmV0dXJuIFwiPVwiO1xuICAgIGlmIChvcCA9PSBcIm5vdGVxdWFsXCIpIHJldHVybiBcIjw+XCI7XG4gICAgaWYgKG9wID09IFwiZ3JlYXRlclwiKSByZXR1cm4gXCI+XCI7XG4gICAgaWYgKG9wID09IFwibGVzc1wiKSByZXR1cm4gXCI8XCI7XG4gICAgaWYgKG9wID09IFwiZ3JlYXRlcm9yZXF1YWxcIikgcmV0dXJuIFwiPj1cIjtcbiAgICBpZiAob3AgPT0gXCJsZXNzb3JlcXVhbFwiKSByZXR1cm4gXCI8PVwiO1xuICAgIHJldHVybiBvcDtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZU9wZXJhdG9yRW5hYmxlcygpIHtcbiAgICBpZiAoIXRoaXMucXVlc3Rpb25OYW1lKSByZXR1cm47XG4gICAgdmFyIGpzb24gPSB0aGlzLm93bmVyLmdldFF1ZXN0aW9uVmFsdWVKU09OKHRoaXMucXVlc3Rpb25OYW1lLCBcImVxdWFsXCIpO1xuICAgIHZhciBxVHlwZSA9ICEhanNvbiA/IGpzb24udHlwZSA6IG51bGw7XG4gICAgdmFyIHF1ZXN0aW9uT3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yUXVlc3Rpb247XG4gICAgaWYgKCFxdWVzdGlvbk9wZXJhdG9yKSByZXR1cm47XG4gICAgdmFyIGNob2ljZXMgPSBxdWVzdGlvbk9wZXJhdG9yLmNob2ljZXM7XG4gICAgdmFyIGlzQ3VycmVudE9wZXJhdG9yRW5hYmxlZCA9IHRydWU7XG4gICAgdmFyIG9wID0gdGhpcy5vcGVyYXRvcjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNob2ljZXNbaV0uc2V0SXNFbmFibGVkKFxuICAgICAgICB0aGlzLmlzT3BlcmF0b3JFbmFibGVkKHFUeXBlLCB0aGlzLmdldE9wZXJhdG9yVHlwZShjaG9pY2VzW2ldLnZhbHVlKSlcbiAgICAgICk7XG4gICAgICBpZiAoY2hvaWNlc1tpXS52YWx1ZSA9PSBvcCkge1xuICAgICAgICBpc0N1cnJlbnRPcGVyYXRvckVuYWJsZWQgPSBjaG9pY2VzW2ldLmlzRW5hYmxlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFpc0N1cnJlbnRPcGVyYXRvckVuYWJsZWQpIHtcbiAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLmdldEZpcnN0RW5hYmxlZE9wZXJhdG9yKGNob2ljZXMpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldEZpcnN0RW5hYmxlZE9wZXJhdG9yKGNob2ljZXM6IEFycmF5PFN1cnZleS5JdGVtVmFsdWU+KTogc3RyaW5nIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChjaG9pY2VzW2ldLmlzRW5hYmxlZCkge1xuICAgICAgICByZXR1cm4gY2hvaWNlc1tpXS52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFwiZXF1YWxcIjtcbiAgfVxuICBwcml2YXRlIGNhblNob3dRdWVzdGlvblZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHZhciBxdWVzdGlvbk9wZXJhdG9yID0gdGhpcy5vcGVyYXRvclF1ZXN0aW9uO1xuICAgIGlmICghcXVlc3Rpb25PcGVyYXRvcikgcmV0dXJuIGZhbHNlO1xuICAgIHRoaXMudXBkYXRlT3BlcmF0b3JFbmFibGVzKCk7XG4gICAgdmFyIGNob2ljZXMgPSBxdWVzdGlvbk9wZXJhdG9yLmNob2ljZXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaG9pY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIWNob2ljZXNbaV0uaXNFbmFibGVkKSBjb250aW51ZTtcbiAgICAgIHZhciB2YWwgPSBjaG9pY2VzW2ldLnZhbHVlO1xuICAgICAgaWYgKHZhbCAhPT0gXCJlbXB0eVwiICYmIHZhbCAhPSBcIm5vdGVtcHR5XCIpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHJpdmF0ZSBnZXRPcGVyYXRvclR5cGUob3BlcmF0b3I6IHN0cmluZyk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciBvcGVyYXRvcnMgPSBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkuZ2V0T3BlcmF0b3JzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcGVyYXRvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChvcGVyYXRvcnNbaV0ubmFtZSA9PSBvcGVyYXRvcikgcmV0dXJuIG9wZXJhdG9yc1tpXS50eXBlcztcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBpc09wZXJhdG9yRW5hYmxlZChcbiAgICBxVHlwZTogc3RyaW5nLFxuICAgIG9wZXJhdG9yVHlwZXM6IEFycmF5PHN0cmluZz5cbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFxVHlwZSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKCFvcGVyYXRvclR5cGVzIHx8IG9wZXJhdG9yVHlwZXMubGVuZ3RoID09IDApIHJldHVybiB0cnVlO1xuICAgIHZhciBjb250YWlucyA9IFtdO1xuICAgIHZhciBub3RDb250YWlucyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3BlcmF0b3JUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IG5hbWUgPSBvcGVyYXRvclR5cGVzW2ldO1xuICAgICAgaWYgKG5hbWVbMF0gPT0gXCIhXCIpIHtcbiAgICAgICAgbm90Q29udGFpbnMucHVzaChuYW1lLnN1YnN0cigxKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250YWlucy5wdXNoKG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vd25lci5pc0NsYXNzQ29udGFpbnMocVR5cGUsIGNvbnRhaW5zLCBub3RDb250YWlucyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5Q29uZGl0aW9uRWRpdG9yXG4gIGV4dGVuZHMgU3VydmV5UHJvcGVydHlUZXh0RWRpdG9yXG4gIGltcGxlbWVudHMgSUNvbmRpdGlvbkVkaXRvckl0ZW1Pd25lciB7XG4gIHB1YmxpYyBrb1RleHRWYWx1ZTogYW55O1xuICBwdWJsaWMgb25SZW1vdmVDb25kaXRpb25DbGljazogYW55O1xuICBwdWJsaWMgb25DaGFuZ2VWaWV3Q2xpY2s6IGFueTtcbiAgcHVibGljIG9uU2hvd0hpZGVFZGl0b3I6IGFueTtcbiAgcHVibGljIGtvU2hvd0V4cHJlc3Npb25IZWFkZXI6IGFueTtcbiAgcHVibGljIGtvU2V0dXBUZXh0OiBhbnk7XG4gIHB1YmxpYyBrb1Nob3dUYWJzOiBhbnk7XG4gIHB1YmxpYyBrb0FjdGl2ZVZpZXc6IGFueTtcbiAga29FZGl0b3JJdGVtczoga28uT2JzZXJ2YWJsZUFycmF5PENvbmRpdGlvbkVkaXRvckl0ZW0+O1xuICBrb0NhbkFkZEl0ZW06IGFueTtcbiAga29DYW5QYXJzZUV4cHJlc3Npb246IGFueTtcbiAga29Db25kaXRpb25EaXNwbGF5VGV4dDogYW55O1xuICBrb0lzVGV4dENvbmRpdGlvblZhbGlkOiBhbnk7XG4gIGtvSXNFZGl0b3JTaG93aW5nOiBhbnk7XG4gIGtvSXNXaWRlTW9kZTogYW55O1xuICBrb0lzRWRpdG9ySGlkaW5nRGlzYWJsZWQ6IGFueTtcbiAgcHJpdmF0ZSBhZGRDb25kaXRpb25RdWVzdGlvbnNIYXNoID0ge307XG4gIHByaXZhdGUgYWRkQ29uZGl0aW9uQ2FsY3VsYXRlZFZhbHVlc0hhc2ggPSB7fTtcbiAgcHJpdmF0ZSBtYXhMb2dpY0l0ZW1zSW5Db25kaXRpb246IG51bWJlciA9IDEwMDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgcHJpdmF0ZSBfdHlwZTogc3RyaW5nID0gXCJjb25kaXRpb25cIixcbiAgICBwdWJsaWMgc3ludGF4Q2hlY2tNZXRob2ROYW1lOiBzdHJpbmcgPSBcImNyZWF0ZUNvbmRpdGlvblwiXG4gICkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgICB0aGlzLmtvU2hvd1RhYnMgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICAgIHRoaXMua29TaG93RXhwcmVzc2lvbkhlYWRlciA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gICAgdGhpcy5rb1NldHVwVGV4dCA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gICAgdGhpcy5rb0FjdGl2ZVZpZXcgPSBrby5vYnNlcnZhYmxlKFwiZm9ybVwiKTtcbiAgICB0aGlzLmtvVGV4dFZhbHVlID0ga28ub2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMua29FZGl0b3JJdGVtcyA9IGtvLm9ic2VydmFibGVBcnJheTxDb25kaXRpb25FZGl0b3JJdGVtPihbXSk7XG4gICAgdGhpcy5rb0NhblBhcnNlRXhwcmVzc2lvbiA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gICAgdGhpcy5rb0NvbmRpdGlvbkRpc3BsYXlUZXh0ID0ga28uY29tcHV0ZWQoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCEhdGhpcy5rb1ZhbHVlKCkpIHJldHVybiB0aGlzLmdldENvbmRpdGlvbkRpc3BsYXlUZXh0KCk7XG4gICAgICByZXR1cm4gdGhpcy5nZXRMb2NTdHJpbmcoXCJwZS5leHByZXNzaW9uSXNFbXB0eVwiKTtcbiAgICB9LCB0aGlzKTtcbiAgICB0aGlzLmtvSXNXaWRlTW9kZSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAgIHRoaXMua29Jc0VkaXRvclNob3dpbmcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgICB0aGlzLmtvSXNFZGl0b3JIaWRpbmdEaXNhYmxlZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAgIHRoaXMub25TaG93SGlkZUVkaXRvciA9ICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmtvSXNFZGl0b3JIaWRpbmdEaXNhYmxlZCgpKSByZXR1cm47XG4gICAgICB0aGlzLmtvSXNFZGl0b3JTaG93aW5nKCF0aGlzLmtvSXNFZGl0b3JTaG93aW5nKCkpO1xuICAgIH07XG4gICAgdGhpcy5rb0lzVGV4dENvbmRpdGlvblZhbGlkID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5rb0NhblBhcnNlRXhwcmVzc2lvbi5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICBpZiAobmV3VmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgIHNlbGYua29BY3RpdmVWaWV3KFwidGV4dFwiKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmtvSXNFZGl0b3JTaG93aW5nLnN1YnNjcmliZShmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICBzZWxmLmJ1aWxkRWRpdG9yc0l0ZW1zT25TaG93aW5nKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgc2VsZi5vblJlbW92ZUNvbmRpdGlvbkNsaWNrID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHNlbGYucmVtb3ZlQ29uZGl0aW9uKGl0ZW0pO1xuICAgIH07XG4gICAgc2VsZi5vbkNoYW5nZVZpZXdDbGljayA9IGZ1bmN0aW9uIChuZXdWaWV3KSB7XG4gICAgICBzZWxmLmtvQWN0aXZlVmlldyhuZXdWaWV3KTtcbiAgICB9O1xuICAgIHRoaXMua29UZXh0VmFsdWUuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgc2VsZi5vbmtvVGV4dFZhbHVlQ2hhbmdlZChuZXdWYWx1ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5rb0NhbkFkZEl0ZW0gPSBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhdGhpcy5yZWFkT25seSgpICYmXG4gICAgICAgIHRoaXMua29FZGl0b3JJdGVtcygpLmxlbmd0aCA8IHRoaXMubWF4TG9naWNJdGVtc0luQ29uZGl0aW9uXG4gICAgICApO1xuICAgIH0pO1xuICB9XG4gIHByb3RlY3RlZCBnZXRQcm9wZXJ0eUhlbHBMb2NOYW1lKCk6IHN0cmluZyB7XG4gICAgdmFyIGxvY05hbWUgPSBzdXBlci5nZXRQcm9wZXJ0eUhlbHBMb2NOYW1lKCk7XG4gICAgaWYgKCFsb2NOYW1lICYmIHRoaXMuZWRpdG9yVHlwZSA9PSBcImV4cHJlc3Npb25cIikge1xuICAgICAgbG9jTmFtZSA9IFwicGUuZXhwcmVzc2lvbkhlbHBcIjtcbiAgICB9XG4gICAgcmV0dXJuIGxvY05hbWU7XG4gIH1cbiAgcHVibGljIGFkZENvbmRpdGlvbiA9ICgpID0+IHtcbiAgICB2YXIgY29uZGl0aW9uRWRpdG9ySXRlbSA9IG5ldyBDb25kaXRpb25FZGl0b3JJdGVtKHRoaXMpO1xuICAgIHRoaXMua29FZGl0b3JJdGVtcy5wdXNoKGNvbmRpdGlvbkVkaXRvckl0ZW0pO1xuICAgIHRoaXMudXBkYXRlRWRpdG9ySXRlbXNWaXNpYmlsaXRpZXMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGtvLnRhc2tzLnJ1bkVhcmx5KCk7XG4gICAgICBjb25kaXRpb25FZGl0b3JJdGVtLmNvbmp1bmN0aW9uUXVlc3Rpb24uZm9jdXMoKTtcbiAgICB9LCAxKTtcbiAgfTtcbiAgcHVibGljIHJlbW92ZUNvbmRpdGlvbiA9IChpdGVtOiBDb25kaXRpb25FZGl0b3JJdGVtKSA9PiB7XG4gICAgdGhpcy5rb0VkaXRvckl0ZW1zLnJlbW92ZShpdGVtKTtcbiAgICBpZiAodGhpcy5rb0VkaXRvckl0ZW1zKCkubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMuYWRkQ29uZGl0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlRWRpdG9ySXRlbXNWaXNpYmlsaXRpZXMoKTtcbiAgICB0aGlzLm9uQ29uZGl0aW9uSXRlbUNoYW5nZWQoKTtcbiAgfTtcbiAgcHVibGljIGdldCBhZGRDb25kaXRpb25UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jU3RyaW5nKFwicGUuYWRkQ29uZGl0aW9uXCIpO1xuICB9XG4gIHB1YmxpYyBnZXQgcmVtb3ZlQ29uZGl0aW9uVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcInBlLnJlbW92ZVwiKTtcbiAgfVxuICBwdWJsaWMgYmVmb3JlU2hvd0NvcmUgPSAoKSA9PiB7XG4gICAgc3VwZXIuYmVmb3JlU2hvd0NvcmUoKTtcbiAgICB0aGlzLnJlc2V0QWxsQ29uZGl0aW9uUXVlc3Rpb25zKCk7XG4gICAgdGhpcy5vbmtvVGV4dFZhbHVlQ2hhbmdlZCh0aGlzLmtvVmFsdWUoKSk7XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLm1heExvZ2ljSXRlbXNJbkNvbmRpdGlvbiA+IDApIHtcbiAgICAgICAgdGhpcy5tYXhMb2dpY0l0ZW1zSW5Db25kaXRpb24gPSB0aGlzLm9wdGlvbnMubWF4TG9naWNJdGVtc0luQ29uZGl0aW9uO1xuICAgICAgfVxuICAgICAgdGhpcy5rb1Nob3dUYWJzKHRoaXMub3B0aW9ucy5hbGxvd0VkaXRFeHByZXNzaW9uc0luVGV4dEVkaXRvcik7XG4gICAgfVxuICB9O1xuICBwcm90ZWN0ZWQgYmVmb3JlU2hvd01vZGFsID0gKCkgPT4ge1xuICAgIHN1cGVyLmJlZm9yZVNob3dNb2RhbCgpO1xuICAgIHRoaXMuaXNFZGl0b3JTaG93aW5nID0gdHJ1ZTtcbiAgICB0aGlzLmlzRWRpdG9ySGlkaW5nRGlzYWJsZWQgPSB0cnVlO1xuICB9O1xuICBwdWJsaWMgZ2V0IGlzRWRpdG9yU2hvd2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5rb0lzRWRpdG9yU2hvd2luZygpO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNFZGl0b3JTaG93aW5nKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMua29Jc0VkaXRvclNob3dpbmcodmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzRWRpdG9ySGlkaW5nRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMua29Jc0VkaXRvckhpZGluZ0Rpc2FibGVkKCk7XG4gIH1cbiAgcHVibGljIHNldCBpc0VkaXRvckhpZGluZ0Rpc2FibGVkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMua29Jc0VkaXRvckhpZGluZ0Rpc2FibGVkKHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBpc1dpZGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmtvSXNXaWRlTW9kZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNXaWRlTW9kZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmtvSXNXaWRlTW9kZSh2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHB1YmxpYyBnZXQgYXZhaWxhYmxlUXVlc3Rpb25zKCk6IGFueVtdIHtcbiAgICB2YXIgc3VydmV5ID0gdGhpcy5nZXRTdXJ2ZXkoKTtcbiAgICB2YXIgcmVzdWx0ID0gISFzdXJ2ZXkgPyBzdXJ2ZXkuZ2V0QWxsUXVlc3Rpb25zKCkgOiBbXTtcbiAgICAhIXRoaXMub3B0aW9ucyAmJlxuICAgICAgdGhpcy5vcHRpb25zLm9uQ29uZGl0aW9uUXVlc3Rpb25zR2V0TGlzdENhbGxiYWNrKFxuICAgICAgICB0aGlzLmVkaXRhYmxlUHJvcGVydHlOYW1lLFxuICAgICAgICB0aGlzLm9iamVjdCxcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcmVzdWx0XG4gICAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFN1cnZleSA9ICgpOiBTdXJ2ZXkuU3VydmV5TW9kZWwgPT4ge1xuICAgIHJldHVybiBFZGl0YWJsZU9iamVjdC5nZXRTdXJ2ZXkodGhpcy5vYmplY3QpO1xuICB9O1xuICBwcml2YXRlIGFsbENvbmRpdGlvblF1ZXN0aW9uc1ZhbHVlOiBhbnlbXTtcbiAgcHJpdmF0ZSByZXNldEFsbENvbmRpdGlvblF1ZXN0aW9ucyA9ICgpID0+IHtcbiAgICB0aGlzLmFkZENvbmRpdGlvblF1ZXN0aW9uc0hhc2ggPSB7fTtcbiAgICB0aGlzLmFkZENvbmRpdGlvbkNhbGN1bGF0ZWRWYWx1ZXNIYXNoID0ge307XG4gICAgdGhpcy5hbGxDb25kaXRpb25RdWVzdGlvbnNWYWx1ZSA9IHRoaXMuZ2V0Q29uZGl0aW9uUXVlc3Rpb25zKCk7XG4gICAgdGhpcy5hbGxDb25kaXRpb25RdWVzdGlvbnNWYWx1ZS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gYS50ZXh0LmxvY2FsZUNvbXBhcmUoYi50ZXh0KTtcbiAgICB9KTtcbiAgfTtcbiAgcHVibGljIGdldCBhbGxDb25kaXRpb25RdWVzdGlvbnMoKTogYW55W10ge1xuICAgIGlmICghIXRoaXMuYWxsQ29uZGl0aW9uUXVlc3Rpb25zVmFsdWUpXG4gICAgICByZXR1cm4gdGhpcy5hbGxDb25kaXRpb25RdWVzdGlvbnNWYWx1ZTtcbiAgICB0aGlzLnJlc2V0QWxsQ29uZGl0aW9uUXVlc3Rpb25zKCk7XG4gICAgcmV0dXJuIHRoaXMuYWxsQ29uZGl0aW9uUXVlc3Rpb25zVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBpc0V4cHJlc3Npb25WYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5rb0lzVGV4dENvbmRpdGlvblZhbGlkKCkgJiYgISF0aGlzLmtvVGV4dFZhbHVlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2VkKCkge1xuICAgIHRoaXMua29UZXh0VmFsdWUodGhpcy5rb1ZhbHVlKCkpO1xuICB9XG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uUXVlc3Rpb25zKCk6IGFueVtdIHtcbiAgICBpZiAoIXRoaXMub2JqZWN0KSByZXR1cm4gW107XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLmF2YWlsYWJsZVF1ZXN0aW9ucztcbiAgICBpZiAocXVlc3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLm9iamVjdCA9PSBxdWVzdGlvbnNbaV0pIGNvbnRpbnVlO1xuICAgICAgICBxdWVzdGlvbnNbaV0uYWRkQ29uZGl0aW9uT2JqZWN0c0J5Q29udGV4dChyZXMsIHRoaXMub2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWRkQ29uZGl0aW9uUXVlc3Rpb25zSGFzaCA9IHt9O1xuICAgICAgdGhpcy5hZGRDb25kaXRpb25DYWxjdWxhdGVkVmFsdWVzSGFzaCA9IHt9O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMgfHwgIXRoaXMub3B0aW9ucy5zaG93VGl0bGVzSW5FeHByZXNzaW9ucykge1xuICAgICAgICAgIHZhciBuYW1lID0gcmVzW2ldLm5hbWU7XG4gICAgICAgICAgdmFyIHZhbHVlTmFtZSA9IHJlc1tpXS5xdWVzdGlvbi52YWx1ZU5hbWU7XG4gICAgICAgICAgaWYgKCEhdmFsdWVOYW1lICYmIG5hbWUuaW5kZXhPZih2YWx1ZU5hbWUpID09IDApIHtcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UodmFsdWVOYW1lLCByZXNbaV0ucXVlc3Rpb24ubmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc1tpXS50ZXh0ID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZENvbmRpdGlvblF1ZXN0aW9uc0hhc2hbcmVzW2ldLm5hbWVdID0gcmVzW2ldLnF1ZXN0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoISF0aGlzLm9wdGlvbnMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc1tpXS50ZXh0ID0gdGhpcy5vcHRpb25zLmdldE9iamVjdERpc3BsYXlOYW1lKFxuICAgICAgICAgIHJlc1tpXS5xdWVzdGlvbixcbiAgICAgICAgICBcImNvbmRpdGlvblwiLFxuICAgICAgICAgIHJlc1tpXS50ZXh0XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWRkQ2FsY3VsYXRlZFZhbHVlcyhyZXMpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGlzQ2xhc3NDb250YWlucyhcbiAgICBxVHlwZTogc3RyaW5nLFxuICAgIGNvbnRhaW5zOiBBcnJheTxzdHJpbmc+LFxuICAgIG5vdENvbnRhaW5zOiBBcnJheTxzdHJpbmc+XG4gICk6IGJvb2xlYW4ge1xuICAgIHZhciBjbGFzc0luZm8gPSBTdXJ2ZXkuU2VyaWFsaXplci5maW5kQ2xhc3MocVR5cGUpO1xuICAgIHdoaWxlICghIWNsYXNzSW5mbykge1xuICAgICAgaWYgKGNvbnRhaW5zLmluZGV4T2YoY2xhc3NJbmZvLm5hbWUpID4gLTEpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKG5vdENvbnRhaW5zLmluZGV4T2YoY2xhc3NJbmZvLm5hbWUpID4gLTEpIHJldHVybiBmYWxzZTtcbiAgICAgIGNsYXNzSW5mbyA9ICEhY2xhc3NJbmZvLnBhcmVudE5hbWVcbiAgICAgICAgPyBTdXJ2ZXkuU2VyaWFsaXplci5maW5kQ2xhc3MoY2xhc3NJbmZvLnBhcmVudE5hbWUpXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRhaW5zLmxlbmd0aCA9PSAwO1xuICB9XG4gIHByaXZhdGUgYWRkQ2FsY3VsYXRlZFZhbHVlcyhyZXM6IEFycmF5PGFueT4pIHtcbiAgICB2YXIgc3VydmV5ID0gdGhpcy5nZXRTdXJ2ZXkoKTtcbiAgICBpZiAoIXN1cnZleSkgcmV0dXJuO1xuICAgIHZhciB2YWx1ZXMgPSBzdXJ2ZXkuY2FsY3VsYXRlZFZhbHVlcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG5hbWUgPSB2YWx1ZXNbaV0ubmFtZTtcbiAgICAgIHRoaXMuYWRkQ29uZGl0aW9uQ2FsY3VsYXRlZFZhbHVlc0hhc2hbbmFtZV0gPSB2YWx1ZXNbaV07XG4gICAgICByZXMucHVzaCh7IG5hbWU6IG5hbWUsIHRleHQ6IG5hbWUsIHF1ZXN0aW9uOiBudWxsIH0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0UXVlc3Rpb25CeU5hbWUocXVlc3Rpb25OYW1lOiBzdHJpbmcpOiBTdXJ2ZXkuUXVlc3Rpb24ge1xuICAgIGlmICghdGhpcy5nZXRTdXJ2ZXkoKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29uZGl0aW9uUXVlc3Rpb25zSGFzaFtxdWVzdGlvbk5hbWVdO1xuICB9XG4gIHB1YmxpYyBnZXRRdWVzdGlvblZhbHVlSlNPTihxdWVzdGlvbk5hbWU6IHN0cmluZywgb3BlcmF0b3I6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UXVlc3Rpb25Db25kaXRpb25Kc29uKHF1ZXN0aW9uTmFtZSwgb3BlcmF0b3IsIHRydWUpO1xuICB9XG4gIHByaXZhdGUgZ2V0UXVlc3Rpb25Db25kaXRpb25Kc29uKFxuICAgIHF1ZXN0aW9uTmFtZTogc3RyaW5nLFxuICAgIG9wZXJhdG9yOiBzdHJpbmcsXG4gICAgY29udmVydE9uQW55T2Y6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBhbnkge1xuICAgIHZhciBwYXRoID0gXCJcIjtcbiAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uQnlOYW1lKHF1ZXN0aW9uTmFtZSk7XG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XG4gICAgaWYgKHF1ZXN0aW9uTmFtZS5pbmRleE9mKHF1ZXN0aW9uLmdldFZhbHVlTmFtZSgpKSA9PSAwKSB7XG4gICAgICBwYXRoID0gcXVlc3Rpb25OYW1lLnN1YnN0cihxdWVzdGlvbi5nZXRWYWx1ZU5hbWUoKS5sZW5ndGgpO1xuICAgIH1cbiAgICBpZiAocXVlc3Rpb25OYW1lLmluZGV4T2YoXCJyb3cuXCIpID09IDApIHtcbiAgICAgIHBhdGggPSBxdWVzdGlvbk5hbWUuc3Vic3RyKFwicm93LlwiLmxlbmd0aCk7XG4gICAgfVxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9IHF1ZXN0aW9uTmFtZTtcbiAgICB9XG4gICAgaWYgKCEhcGF0aCAmJiBwYXRoWzBdID09IFwiLlwiKSB7XG4gICAgICBwYXRoID0gcGF0aC5zdWJzdHIoMSk7XG4gICAgfVxuICAgIHZhciBqc29uID1cbiAgICAgIHF1ZXN0aW9uICYmIHF1ZXN0aW9uLmdldENvbmRpdGlvbkpzb25cbiAgICAgICAgPyBxdWVzdGlvbi5nZXRDb25kaXRpb25Kc29uKG9wZXJhdG9yLCBwYXRoKVxuICAgICAgICA6IG51bGw7XG4gICAgaWYgKCEhanNvbiAmJiBqc29uLnR5cGUgPT0gXCJyYWRpb2dyb3VwXCIpIHtcbiAgICAgIGpzb24udHlwZSA9IFwiZHJvcGRvd25cIjtcbiAgICB9XG4gICAgaWYgKCEhanNvbiAmJiBqc29uLnR5cGUgPT0gXCJleHByZXNzaW9uXCIpIHtcbiAgICAgIGpzb24udHlwZSA9IFwidGV4dFwiO1xuICAgIH1cbiAgICBpZiAoISFqc29uICYmIG9wZXJhdG9yID09IFwiYW55b2ZcIiAmJiBjb252ZXJ0T25BbnlPZikge1xuICAgICAgaWYgKCF0aGlzLmlzQ2xhc3NDb250YWlucyhqc29uLnR5cGUsIFtcImNoZWNrYm94XCJdLCBbXSkpIHtcbiAgICAgICAganNvbi50eXBlID0gXCJjaGVja2JveFwiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gISFqc29uID8ganNvbiA6IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBjYW5TaG93VmFsdWVCeU9wZXJhdG9yKG9wZXJhdG9yOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gb3BlcmF0b3IgIT0gXCJlbXB0eVwiICYmIG9wZXJhdG9yICE9IFwibm90ZW1wdHlcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc0FjZUVkaXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdHlwZW9mIGFjZSAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgdHlwZW9mIGFjZS5yZXF1aXJlKFwiYWNlL2V4dC9sYW5ndWFnZV90b29sc1wiKSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICk7XG4gIH1cbiAgcHJvdGVjdGVkIG9ua29UZXh0VmFsdWVDaGFuZ2VkKG5ld1ZhbHVlKSB7XG4gICAgaWYgKCF0aGlzLmlzQmVmb3JlU2hvd0NhbGxlZCB8fCB0aGlzLmlzQ29uZGl0aW9uSXRlbXNCdWlsZGluZykgcmV0dXJuO1xuICAgIHZhciBpc1ZhbGlkID0gdHJ1ZTtcbiAgICB2YXIgb3BlcmFuZCA9IG51bGw7XG4gICAgaWYgKCEhbmV3VmFsdWUpIHtcbiAgICAgIHZhciBjb25kaXRpb25QYXJzZXIgPSBuZXcgU3VydmV5LkNvbmRpdGlvbnNQYXJzZXIoKTtcbiAgICAgIG9wZXJhbmQgPSBjb25kaXRpb25QYXJzZXIucGFyc2VFeHByZXNzaW9uKG5ld1ZhbHVlKTtcbiAgICAgIGlzVmFsaWQgPSAhIW9wZXJhbmQ7XG4gICAgfVxuICAgIHRoaXMua29Jc1RleHRDb25kaXRpb25WYWxpZChpc1ZhbGlkKTtcbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgdGhpcy5rb1ZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5yZWJ1aWxkRWRpdG9ySXRlbXMob3BlcmFuZCwgaXNWYWxpZCk7XG4gIH1cbiAgcHJpdmF0ZSBidWlsZEVkaXRvcnNJdGVtc09uU2hvd2luZygpIHtcbiAgICB2YXIgb3BlcmFuZCA9IG51bGw7XG4gICAgdmFyIGNvbmRpdGlvblRleHQgPSB0aGlzLmtvVmFsdWUoKTtcbiAgICBpZiAoISFjb25kaXRpb25UZXh0KSB7XG4gICAgICB2YXIgY29uZGl0aW9uUGFyc2VyID0gbmV3IFN1cnZleS5Db25kaXRpb25zUGFyc2VyKCk7XG4gICAgICBvcGVyYW5kID0gY29uZGl0aW9uUGFyc2VyLnBhcnNlRXhwcmVzc2lvbihjb25kaXRpb25UZXh0KTtcbiAgICB9XG4gICAgdGhpcy5yZWJ1aWxkRWRpdG9ySXRlbXMob3BlcmFuZCwgdHJ1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBpc0NvbmRpdGlvbkl0ZW1zQnVpbGRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIG9uQ29uZGl0aW9uSXRlbUNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMuaXNDb25kaXRpb25JdGVtc0J1aWxkaW5nKSByZXR1cm47XG4gICAgdmFyIHRleHQgPSBcIlwiO1xuICAgIHZhciBpdGVtcyA9IHRoaXMua29FZGl0b3JJdGVtcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtVGV4dCA9IGl0ZW1zW2ldLnRvU3RyaW5nKCk7XG4gICAgICBpZiAoIWl0ZW1UZXh0KSBjb250aW51ZTtcbiAgICAgIGlmICghIXRleHQpIHtcbiAgICAgICAgdGV4dCArPSBcIiBcIiArIGl0ZW1zW2ldLmNvbmp1bmN0aW9uICsgXCIgXCI7XG4gICAgICB9XG4gICAgICB0ZXh0ICs9IGl0ZW1UZXh0O1xuICAgIH1cbiAgICB0aGlzLmlzQ29uZGl0aW9uSXRlbXNCdWlsZGluZyA9IHRydWU7XG4gICAgdGhpcy5rb1ZhbHVlKHRleHQpO1xuICAgIHRoaXMuaXNDb25kaXRpb25JdGVtc0J1aWxkaW5nID0gZmFsc2U7XG4gIH1cbiAgcHJpdmF0ZSByZWJ1aWxkRWRpdG9ySXRlbXMob3BlcmFuZDogU3VydmV5Lk9wZXJhbmQsIGlzVmFsaWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuaXNFZGl0b3JTaG93aW5nKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNDb25kaXRpb25JdGVtc0J1aWxkaW5nKSByZXR1cm47XG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICB0aGlzLmtvRWRpdG9ySXRlbXMoW10pO1xuICAgICAgdGhpcy5rb0NhblBhcnNlRXhwcmVzc2lvbihmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghb3BlcmFuZCkge1xuICAgICAgdGhpcy5rb0VkaXRvckl0ZW1zKFtdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0NvbmRpdGlvbkl0ZW1zQnVpbGRpbmcgPSB0cnVlO1xuICAgICAgdmFyIGl0ZW1zID0gdGhpcy5idWlsZEVkaXRvckl0ZW1zKG9wZXJhbmQpO1xuICAgICAgdGhpcy5pc0NvbmRpdGlvbkl0ZW1zQnVpbGRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMua29FZGl0b3JJdGVtcyhpdGVtcyk7XG4gICAgfVxuICAgIHRoaXMua29DYW5QYXJzZUV4cHJlc3Npb24odGhpcy5rb0VkaXRvckl0ZW1zKCkubGVuZ3RoID4gMCB8fCAhb3BlcmFuZCk7XG4gICAgaWYgKHRoaXMua29FZGl0b3JJdGVtcygpLmxlbmd0aCA9PSAwICYmICFvcGVyYW5kKSB7XG4gICAgICB0aGlzLmtvRWRpdG9ySXRlbXMoW25ldyBDb25kaXRpb25FZGl0b3JJdGVtKHRoaXMpXSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlRWRpdG9ySXRlbXNWaXNpYmlsaXRpZXMoKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZUVkaXRvckl0ZW1zVmlzaWJpbGl0aWVzKCkge1xuICAgIHZhciBpdGVtcyA9IHRoaXMua29FZGl0b3JJdGVtcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGl0ZW1zW2ldLmlzRmlyc3QgPSBpID09IDA7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYnVpbGRFZGl0b3JJdGVtcyhcbiAgICBvcGVyYW5kOiBTdXJ2ZXkuT3BlcmFuZFxuICApOiBBcnJheTxDb25kaXRpb25FZGl0b3JJdGVtPiB7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIGlmICghdGhpcy5idWlsZEVkaXRvckl0ZW1zQ29yZShvcGVyYW5kLCByZXMsIFwiXCIpKSB7XG4gICAgICByZXMgPSBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGJ1aWxkRWRpdG9ySXRlbXNDb3JlKFxuICAgIG9wZXJhbmQ6IFN1cnZleS5PcGVyYW5kLFxuICAgIHJlczogQXJyYXk8Q29uZGl0aW9uRWRpdG9ySXRlbT4sXG4gICAgcGFyZW50Q29uanVuY3Rpb246IHN0cmluZ1xuICApOiBib29sZWFuIHtcbiAgICBpZiAob3BlcmFuZC5nZXRUeXBlKCkgPT0gXCJ1bmFyeVwiKVxuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRFZGl0b3JJdGVtc0FkZFVuYXJ5T3BlcmFuZChcbiAgICAgICAgPFN1cnZleS5VbmFyeU9wZXJhbmQ+b3BlcmFuZCxcbiAgICAgICAgcmVzXG4gICAgICApO1xuICAgIGlmIChvcGVyYW5kLmdldFR5cGUoKSAhPT0gXCJiaW5hcnlcIikgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBvcCA9IDxTdXJ2ZXkuQmluYXJ5T3BlcmFuZD5vcGVyYW5kO1xuICAgIGlmIChvcC5pc0FyaXRobWV0aWMgJiYgIW9wLmlzQ29uanVuY3Rpb24pIHJldHVybiBmYWxzZTtcbiAgICBpZiAob3AuaXNDb25qdW5jdGlvbilcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkRWRpdG9ySXRlbXNBZGRDb25qdW5jdGlvbihvcCwgcmVzLCBwYXJlbnRDb25qdW5jdGlvbik7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRFZGl0b3JJdGVtc0FkZEJpbmFyeU9wZXJhbmQob3AsIHJlcyk7XG4gIH1cbiAgcHJpdmF0ZSBidWlsZEVkaXRvckl0ZW1zQWRkQ29uanVuY3Rpb24oXG4gICAgb3A6IFN1cnZleS5CaW5hcnlPcGVyYW5kLFxuICAgIHJlczogQXJyYXk8Q29uZGl0aW9uRWRpdG9ySXRlbT4sXG4gICAgcGFyZW50Q29uanVuY3Rpb246IHN0cmluZ1xuICApOiBib29sZWFuIHtcbiAgICB2YXIgY29uanVuY3Rpb24gPSBvcC5jb25qdW5jdGlvbjtcbiAgICBpZiAoXG4gICAgICBjb25qdW5jdGlvbiA9PSBcIm9yXCIgJiZcbiAgICAgICEhcGFyZW50Q29uanVuY3Rpb24gJiZcbiAgICAgIHBhcmVudENvbmp1bmN0aW9uICE9IGNvbmp1bmN0aW9uXG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghdGhpcy5idWlsZEVkaXRvckl0ZW1zQ29yZShvcC5sZWZ0T3BlcmFuZCwgcmVzLCBjb25qdW5jdGlvbikpXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGNvbmp1bmN0aW9uSW5kZXggPSByZXMubGVuZ3RoO1xuICAgIGlmICghdGhpcy5idWlsZEVkaXRvckl0ZW1zQ29yZShvcC5yaWdodE9wZXJhbmQsIHJlcywgY29uanVuY3Rpb24pKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJlc1tjb25qdW5jdGlvbkluZGV4XS5jb25qdW5jdGlvbiA9IG9wLmNvbmp1bmN0aW9uO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByaXZhdGUgYnVpbGRFZGl0b3JJdGVtc0FkZEJpbmFyeU9wZXJhbmQoXG4gICAgb3A6IFN1cnZleS5CaW5hcnlPcGVyYW5kLFxuICAgIHJlczogQXJyYXk8Q29uZGl0aW9uRWRpdG9ySXRlbT5cbiAgKTogYm9vbGVhbiB7XG4gICAgdmFyIHZhcmlhYmxlT3BlcmFuZCA9IDxTdXJ2ZXkuVmFyaWFibGU+KFxuICAgICAgdGhpcy5nZXRPcGVyYW5kQnlUeXBlKG9wLCBcInZhcmlhYmxlXCIpXG4gICAgKTtcbiAgICB2YXIgYXJyYXlWYWx1ZSA9IHRoaXMuZ2V0QXJyYXlWYWx1ZUZyb21PcGVyYW5kKG9wKTtcbiAgICB2YXIgY29uc3RPcGVyYW5kID0gIWFycmF5VmFsdWVcbiAgICAgID8gPFN1cnZleS5Db25zdD50aGlzLmdldE9wZXJhbmRCeVR5cGUob3AsIFwiY29uc3RcIilcbiAgICAgIDogbnVsbDtcbiAgICBpZiAoXG4gICAgICAhdmFyaWFibGVPcGVyYW5kIHx8XG4gICAgICAoIWNvbnN0T3BlcmFuZCAmJiAhYXJyYXlWYWx1ZSAmJiB0aGlzLmNhblNob3dWYWx1ZUJ5T3BlcmF0b3Iob3Aub3BlcmF0b3IpKVxuICAgIClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAoIXRoaXMuaXNWYXJpYWJsZUluU3VydmV5KHZhcmlhYmxlT3BlcmFuZC52YXJpYWJsZSkpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgaXRlbSA9IG5ldyBDb25kaXRpb25FZGl0b3JJdGVtKHRoaXMpO1xuICAgIGl0ZW0ucXVlc3Rpb25OYW1lID0gdmFyaWFibGVPcGVyYW5kLnZhcmlhYmxlO1xuICAgIGl0ZW0ub3BlcmF0b3IgPVxuICAgICAgb3AubGVmdE9wZXJhbmQgIT09IHZhcmlhYmxlT3BlcmFuZFxuICAgICAgICA/IHRoaXMuZ2V0T3Bwb3NpdGVPcGVyYXRvcihvcC5vcGVyYXRvcilcbiAgICAgICAgOiBvcC5vcGVyYXRvcjtcbiAgICBpZiAoISFhcnJheVZhbHVlKSB7XG4gICAgICBpdGVtLnZhbHVlID0gYXJyYXlWYWx1ZTtcbiAgICB9XG4gICAgaWYgKCEhY29uc3RPcGVyYW5kKSB7XG4gICAgICBpdGVtLnZhbHVlID0gY29uc3RPcGVyYW5kLmNvcnJlY3RWYWx1ZTtcbiAgICB9XG4gICAgcmVzLnB1c2goaXRlbSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBpc1ZhcmlhYmxlSW5TdXJ2ZXkodmFyaWFibGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5nZXRTdXJ2ZXkoKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmdldFF1ZXN0aW9uQnlOYW1lKHZhcmlhYmxlKSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuICEhdGhpcy5hZGRDb25kaXRpb25DYWxjdWxhdGVkVmFsdWVzSGFzaFt2YXJpYWJsZV07XG4gIH1cbiAgcHJpdmF0ZSBnZXRBcnJheVZhbHVlRnJvbU9wZXJhbmQob3A6IFN1cnZleS5CaW5hcnlPcGVyYW5kKTogQXJyYXk8YW55PiB7XG4gICAgdmFyIGFycmF5T3BlcmFuZCA9IDxTdXJ2ZXkuQXJyYXlPcGVyYW5kPnRoaXMuZ2V0T3BlcmFuZEJ5VHlwZShvcCwgXCJhcnJheVwiKTtcbiAgICBpZiAoIWFycmF5T3BlcmFuZCB8fCAhYXJyYXlPcGVyYW5kLnZhbHVlcykgcmV0dXJuIG51bGw7XG4gICAgdmFyIHZhbHVlc09wZXJhbmQgPSBhcnJheU9wZXJhbmQudmFsdWVzO1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZXNPcGVyYW5kKSB8fCB2YWx1ZXNPcGVyYW5kLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgcmVzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXNPcGVyYW5kLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgb3BDb25zdCA9IHZhbHVlc09wZXJhbmRbaV07XG4gICAgICBpZiAoIW9wQ29uc3QpIGNvbnRpbnVlO1xuICAgICAgaWYgKG9wQ29uc3QuZ2V0VHlwZSgpICE9IFwiY29uc3RcIikgcmV0dXJuIG51bGw7XG4gICAgICByZXMucHVzaCgoPFN1cnZleS5Db25zdD5vcENvbnN0KS5jb3JyZWN0VmFsdWUpO1xuICAgIH1cbiAgICBpZiAocmVzLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgYnVpbGRFZGl0b3JJdGVtc0FkZFVuYXJ5T3BlcmFuZChcbiAgICBvcDogU3VydmV5LlVuYXJ5T3BlcmFuZCxcbiAgICByZXM6IEFycmF5PENvbmRpdGlvbkVkaXRvckl0ZW0+XG4gICk6IGJvb2xlYW4ge1xuICAgIHZhciBvcGVyYXRvciA9IG9wLm9wZXJhdG9yO1xuICAgIGlmIChvcGVyYXRvciAhPT0gXCJlbXB0eVwiICYmIG9wZXJhdG9yICE9IFwibm90ZW1wdHlcIikgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBvcGVyYW5kID0gb3AuZXhwcmVzc2lvbjtcbiAgICBpZiAob3BlcmFuZCA9PSBudWxsIHx8IG9wZXJhbmQuZ2V0VHlwZSgpICE9IFwidmFyaWFibGVcIikgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBxdWVzdGlvbk5hbWUgPSAoPFN1cnZleS5WYXJpYWJsZT5vcGVyYW5kKS52YXJpYWJsZTtcbiAgICBpZiAoIXRoaXMuaXNWYXJpYWJsZUluU3VydmV5KHF1ZXN0aW9uTmFtZSkpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgaXRlbSA9IG5ldyBDb25kaXRpb25FZGl0b3JJdGVtKHRoaXMpO1xuICAgIGl0ZW0ucXVlc3Rpb25OYW1lID0gcXVlc3Rpb25OYW1lO1xuICAgIGl0ZW0ub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICByZXMucHVzaChpdGVtKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcml2YXRlIGdldE9wcG9zaXRlT3BlcmF0b3Iob3BlcmF0b3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKG9wZXJhdG9yID09IFwibGVzc1wiKSByZXR1cm4gXCJncmVhdGVyXCI7XG4gICAgaWYgKG9wZXJhdG9yID09IFwiZ3JlYXRlclwiKSByZXR1cm4gXCJsZXNzXCI7XG4gICAgaWYgKG9wZXJhdG9yID09IFwibGVzc29yZXF1YWxcIikgcmV0dXJuIFwiZ3JlYXRlcm9yZXF1YWxcIjtcbiAgICBpZiAob3BlcmF0b3IgPT0gXCJncmVhdGVyb3JlcXVhbFwiKSByZXR1cm4gXCJsZXNzb3JlcXVhbFwiO1xuICAgIHJldHVybiBvcGVyYXRvcjtcbiAgfVxuICBwcml2YXRlIGdldE9wZXJhbmRCeVR5cGUoXG4gICAgb3A6IFN1cnZleS5CaW5hcnlPcGVyYW5kLFxuICAgIG9wVHlwZTogc3RyaW5nXG4gICk6IFN1cnZleS5PcGVyYW5kIHtcbiAgICBpZiAoIW9wLnJpZ2h0T3BlcmFuZCkgcmV0dXJuIG51bGw7XG4gICAgaWYgKFxuICAgICAgb3AubGVmdE9wZXJhbmQuZ2V0VHlwZSgpICE9PSBvcFR5cGUgJiZcbiAgICAgIG9wLnJpZ2h0T3BlcmFuZC5nZXRUeXBlKCkgIT09IG9wVHlwZVxuICAgIClcbiAgICAgIHJldHVybiBudWxsO1xuICAgIGlmIChcbiAgICAgIG9wLmxlZnRPcGVyYW5kLmdldFR5cGUoKSA9PSBvcFR5cGUgJiZcbiAgICAgIG9wLnJpZ2h0T3BlcmFuZC5nZXRUeXBlKCkgPT0gb3BUeXBlXG4gICAgKVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIG9wLmxlZnRPcGVyYW5kLmdldFR5cGUoKSA9PSBvcFR5cGVcbiAgICAgID8gb3AubGVmdE9wZXJhbmRcbiAgICAgIDogb3AucmlnaHRPcGVyYW5kO1xuICB9XG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uRGlzcGxheVRleHQoKTogc3RyaW5nIHtcbiAgICB2YXIgdmFsdWUgPSB0aGlzLmtvSXNUZXh0Q29uZGl0aW9uVmFsaWQoKVxuICAgICAgPyB0aGlzLmtvVGV4dFZhbHVlKClcbiAgICAgIDogdGhpcy5rb1ZhbHVlKCk7XG4gICAgcmV0dXJuIG5ldyBFeHByZXNzaW9uVG9EaXNwbGF5VGV4dChcbiAgICAgIHRoaXMuZ2V0U3VydmV5KCksXG4gICAgICB0aGlzLm9wdGlvbnNcbiAgICApLnRvRGlzcGxheVRleHQodmFsdWUpO1xuICB9XG59XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcbiAgXCJjb25kaXRpb25cIixcbiAgZnVuY3Rpb24gKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleVByb3BlcnR5Q29uZGl0aW9uRWRpdG9yKFxuICAgICAgcHJvcGVydHksXG4gICAgICBcImNvbmRpdGlvblwiLFxuICAgICAgXCJjcmVhdGVDb25kaXRpb25cIlxuICAgICk7XG4gIH1cbik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwiZXhwcmVzc2lvblwiLFxuICBmdW5jdGlvbiAocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICAgIHJldHVybiBuZXcgU3VydmV5UHJvcGVydHlDb25kaXRpb25FZGl0b3IoXG4gICAgICBwcm9wZXJ0eSxcbiAgICAgIFwiZXhwcmVzc2lvblwiLFxuICAgICAgXCJwYXJzZUV4cHJlc3Npb25cIlxuICAgICk7XG4gIH1cbik7XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlclR5cGVGb3JDZWxsRWRpdGluZyhcImV4cHJlc3Npb25cIiwgXCJzdHJpbmdcIik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJUeXBlRm9yQ2VsbEVkaXRpbmcoXCJjb25kaXRpb25cIiwgXCJzdHJpbmdcIik7XG5cbnZhciBvcGVyYXRpb25zID0gW1xuICB7XG4gICAgdmFsdWU6IFwiYW5kXCIsXG4gICAgdGl0bGU6IFwibG9naWNhbCAnYW5kJyBvcGVyYXRvclwiLFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFwiJiZcIixcbiAgICB0aXRsZTogXCJsb2dpY2FsICdhbmQnIG9wZXJhdG9yXCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCJvclwiLFxuICAgIHRpdGxlOiBcImxvZ2ljYWwgJ29yJyBvcGVyYXRvclwiLFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFwifHxcIixcbiAgICB0aXRsZTogXCJsb2dpY2FsICdvcicgb3BlcmF0b3JcIixcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBcImVtcHR5XCIsXG4gICAgdGl0bGU6IFwicmV0dXJucyB0cnVlIGlmIHRoZSBsZWZ0IG9wZXJhbmQgaXMgZW1wdHlcdHtxdWVzdGlvbk5hbWV9IGVtcHR5XCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCJub3RlbXB0eVwiLFxuICAgIHRpdGxlOlxuICAgICAgXCJyZXR1cm5zIHRydWUgaWYgdGhlIGxlZnQgb3BlcmFuZCBpcyBub3QgZW1wdHlcdHtxdWVzdGlvbk5hbWV9IG5vdGVtcHR5XCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCI9XCIsXG4gICAgdGl0bGU6XG4gICAgICBcInJldHVybnMgdHJ1ZSBpZiB0d28gdmFsdWVzIGFyZSBlcXVhbFx0e3F1ZXN0aW9uTmFtZX0gPSA1LCB7cXVlc3Rpb25OYW1lfSA9PSAnYWJjJywge3F1ZXN0aW9uTmFtZX0gZXF1YWwgMTI0XCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCI9PVwiLFxuICAgIHRpdGxlOlxuICAgICAgXCJyZXR1cm5zIHRydWUgaWYgdHdvIHZhbHVlcyBhcmUgZXF1YWxcdHtxdWVzdGlvbk5hbWV9ID0gNSwge3F1ZXN0aW9uTmFtZX0gPT0gJ2FiYycsIHtxdWVzdGlvbk5hbWV9IGVxdWFsIDEyNFwiLFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFwiZXF1YWxcIixcbiAgICB0aXRsZTpcbiAgICAgIFwicmV0dXJucyB0cnVlIGlmIHR3byB2YWx1ZXMgYXJlIGVxdWFsXHR7cXVlc3Rpb25OYW1lfSA9IDUsIHtxdWVzdGlvbk5hbWV9ID09ICdhYmMnLCB7cXVlc3Rpb25OYW1lfSBlcXVhbCAxMjRcIixcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBcIjw+XCIsXG4gICAgdGl0bGU6XG4gICAgICBcInJldHVybnMgdHJ1ZSBpZiB0d28gdmFsdWVzIGFyZSBub3QgZXF1YWxcdHtxdWVzdGlvbk5hbWV9IDw+IDUsIHtxdWVzdGlvbk5hbWV9ICE9ICdhYmMnLCB7cXVlc3Rpb25OYW1lfSBub3RlcXVhbCAxMjRcIixcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBcIiE9XCIsXG4gICAgdGl0bGU6XG4gICAgICBcInJldHVybnMgdHJ1ZSBpZiB0d28gdmFsdWVzIGFyZSBub3QgZXF1YWxcdHtxdWVzdGlvbk5hbWV9IDw+IDUsIHtxdWVzdGlvbk5hbWV9ICE9ICdhYmMnLCB7cXVlc3Rpb25OYW1lfSBub3RlcXVhbCAxMjRcIixcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBcIm5vdGVxdWFsXCIsXG4gICAgdGl0bGU6XG4gICAgICBcInJldHVybnMgdHJ1ZSBpZiB0d28gdmFsdWVzIGFyZSBub3QgZXF1YWxcdHtxdWVzdGlvbk5hbWV9IDw+IDUsIHtxdWVzdGlvbk5hbWV9ICE9ICdhYmMnLCB7cXVlc3Rpb25OYW1lfSBub3RlcXVhbCAxMjRcIixcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBcIj5cIixcbiAgICB0aXRsZTpcbiAgICAgIFwicmV0dXJucyB0cnVlIGlmIHRoZSBsZWZ0IG9wZXJhbmQgZ3JlYXRlciB0aGVuIHRoZSBzZWNvbmQgb3BlcmFuZFx0e3F1ZXN0aW9uTmFtZX0gPiAyLCB7cXVlc3Rpb25OYW1lfSBncmVhdGVyICdhJ1wiLFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFwiZ3JlYXRlclwiLFxuICAgIHRpdGxlOlxuICAgICAgXCJyZXR1cm5zIHRydWUgaWYgdGhlIGxlZnQgb3BlcmFuZCBncmVhdGVyIHRoZW4gdGhlIHNlY29uZCBvcGVyYW5kXHR7cXVlc3Rpb25OYW1lfSA+IDIsIHtxdWVzdGlvbk5hbWV9IGdyZWF0ZXIgJ2EnXCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCI8XCIsXG4gICAgdGl0bGU6XG4gICAgICBcInJldHVybnMgdHJ1ZSBpZiB0aGUgbGVmdCBvcGVyYW5kIGxlc3MgdGhhbiB0aGUgc2Vjb25kIG9wZXJhbmRcdHtxdWVzdGlvbk5hbWV9IDwgMiwge3F1ZXN0aW9uTmFtZX0gbGVzcyAnYSdcIixcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBcImxlc3NcIixcbiAgICB0aXRsZTpcbiAgICAgIFwicmV0dXJucyB0cnVlIGlmIHRoZSBsZWZ0IG9wZXJhbmQgbGVzcyB0aGFuIHRoZSBzZWNvbmQgb3BlcmFuZFx0e3F1ZXN0aW9uTmFtZX0gPCAyLCB7cXVlc3Rpb25OYW1lfSBsZXNzICdhJ1wiLFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFwiPj1cIixcbiAgICB0aXRsZTpcbiAgICAgIFwicmV0dXJucyB0cnVlIGlmIHRoZSBsZWZ0IG9wZXJhbmQgZXF1YWwgb3IgZ3JlYXRlciB0aGVuIHRoZSBzZWNvbmQgb3BlcmFuZFx0e3F1ZXN0aW9uTmFtZX0gPj0gMiwge3F1ZXN0aW9uTmFtZX0gZ3JlYXRlcm9yZXF1YWwgJ2EnXCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCJncmVhdGVyb3JlcXVhbFwiLFxuICAgIHRpdGxlOlxuICAgICAgXCJyZXR1cm5zIHRydWUgaWYgdGhlIGxlZnQgb3BlcmFuZCBlcXVhbCBvciBncmVhdGVyIHRoZW4gdGhlIHNlY29uZCBvcGVyYW5kXHR7cXVlc3Rpb25OYW1lfSA+PSAyLCB7cXVlc3Rpb25OYW1lfSBncmVhdGVyb3JlcXVhbCAnYSdcIixcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBcIjw9XCIsXG4gICAgdGl0bGU6XG4gICAgICBcInJldHVybnMgdHJ1ZSBpZiB0aGUgbGVmdCBvcGVyYW5kIGVxdWFsIG9yIGxlc3MgdGhhbiB0aGUgc2Vjb25kIG9wZXJhbmRcdHtxdWVzdGlvbk5hbWV9IDw9IDIsIHtxdWVzdGlvbk5hbWV9IGxlc3NvcmVxdWFsICdhJ1wiLFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFwibGVzc29yZXF1YWxcIixcbiAgICB0aXRsZTpcbiAgICAgIFwicmV0dXJucyB0cnVlIGlmIHRoZSBsZWZ0IG9wZXJhbmQgZXF1YWwgb3IgbGVzcyB0aGFuIHRoZSBzZWNvbmQgb3BlcmFuZFx0e3F1ZXN0aW9uTmFtZX0gPD0gMiwge3F1ZXN0aW9uTmFtZX0gbGVzc29yZXF1YWwgJ2EnXCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCJjb250YWluc1wiLFxuICAgIHRpdGxlOlxuICAgICAgXCJyZXR1cm4gdHJ1ZSBpZiB0aGUgbGVmdCBvcGVyYW5kIGlzIGFuIGFycmF5IGFuZCBpdCBjb250YWlucyBhIHZhbHVlIG9mIHRoZSBzZWNvbmQgb3BlcmFuZFx0e3F1ZXN0aW9uTmFtZX0gY29udGFpbnMgJ2EnXCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCJub3Rjb250YWluc1wiLFxuICAgIHRpdGxlOlxuICAgICAgXCJyZXR1cm4gdHJ1ZSBpZiB0aGUgbGVmdCBvcGVyYW5kIGlzIGFuIGFycmF5IGFuZCBpdCBkb2VzIG5vdCBjb250YWluIGEgdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kXCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCJhbnlvZlwiLFxuICAgIHRpdGxlOlxuICAgICAgXCJyZXR1cm4gdHJ1ZSBpZiB0aGUgbGVmdCBvcGVyYW5kIGlzIGFuIGFycmF5IGFuZCBpdCBjb250YWlucyBhbnkgdmFsdWUgb2YgdGhlIHNlY29uZCBhcnJheSBvcGVyYW5kXCIsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogXCJhbGxvZlwiLFxuICAgIHRpdGxlOlxuICAgICAgXCJyZXR1cm4gdHJ1ZSBpZiB0aGUgbGVmdCBvcGVyYW5kIGlzIGFuIGFycmF5IGFuZCBpdCBjb250YWlucyBhbGwgdmFsdWVzIG9mIHRoZSBzZWNvbmQgYXJyYXkgb3BlcmFuZFwiLFxuICB9LFxuXTtcblxuY29uc3QgY3JlYXRlQW5ub3RhdGlvbnMgPSAoXG4gIGNvbmRpdGlvbjogc3RyaW5nLFxuICBzeW50YXhDaGVja01ldGhvZE5hbWU6IHN0cmluZ1xuKTogQWNlQWpheC5Bbm5vdGF0aW9uW10gPT4ge1xuICBjb25kaXRpb24gPSBjb25kaXRpb24gfHwgXCJcIjtcbiAgdmFyIGFubm90YXRpb25zID0gbmV3IEFycmF5PEFjZUFqYXguQW5ub3RhdGlvbj4oKTtcbiAgdmFyIGNvbmRpdGlvblBhcnNlcjogYW55ID0gbmV3IFN1cnZleS5Db25kaXRpb25zUGFyc2VyKCk7XG4gIGNvbmRpdGlvblBhcnNlcltzeW50YXhDaGVja01ldGhvZE5hbWVdKGNvbmRpdGlvbik7XG4gIGlmICghIWNvbmRpdGlvbiAmJiBjb25kaXRpb25QYXJzZXIuZXJyb3IpIHtcbiAgICB2YXIgdG9FcnJvclN1YnN0cmluZyA9IGNvbmRpdGlvbi5zdWJzdHJpbmcoMCwgY29uZGl0aW9uUGFyc2VyLmVycm9yLmF0KTtcbiAgICB2YXIgY29sdW1uID0gdG9FcnJvclN1YnN0cmluZy5sZW5ndGggLSB0b0Vycm9yU3Vic3RyaW5nLmxhc3RJbmRleE9mKFwiXFxuXCIpO1xuICAgIHZhciBhbm5vdGF0aW9uOiBBY2VBamF4LkFubm90YXRpb24gPSB7XG4gICAgICByb3c6IGNvbmRpdGlvbi5tYXRjaCgvXFxuL2cpID8gY29uZGl0aW9uLm1hdGNoKC9cXG4vZykubGVuZ3RoIDogMCxcbiAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgdGV4dDogY29uZGl0aW9uUGFyc2VyLmVycm9yLmNvZGUgKyBcIiAoXCIgKyBjb2x1bW4gKyBcIilcIixcbiAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICB9O1xuICAgIGFubm90YXRpb25zLnB1c2goYW5ub3RhdGlvbik7XG4gIH1cbiAgcmV0dXJuIGFubm90YXRpb25zO1xufTtcblxudmFyIElEX1JFR0VYUCA9IC9bYS16QS1aXzAtOXtcXCpcXC9cXDxcXD5cXD1cXCFcXCRcXC5cXC1cXHUwMEEyLVxcdUZGRkZdLztcblxuZXhwb3J0IGZ1bmN0aW9uIGRvR2V0Q29tcGxldGlvbnMoXG4gIHByZXZJZGVudGlmaWVyOiBzdHJpbmcsXG4gIHByZWZpeDogc3RyaW5nLFxuICBjb25maWc6IHsgcXVlc3Rpb246IFN1cnZleS5RdWVzdGlvbiwgcXVlc3Rpb25zOiBTdXJ2ZXkuUXVlc3Rpb25bXSB9LFxuICBjb21wbGV0ZXIgPSBudWxsXG4pIHtcbiAgdmFyIGNvbXBsZXRpb25zID0gW107XG4gIHZhciBjdXJyZW50UXVlc3Rpb246IFN1cnZleS5RdWVzdGlvbiA9IGNvbmZpZy5xdWVzdGlvbjtcbiAgdmFyIHVzYWJsZVF1ZXN0aW9ucyA9IChjb25maWcucXVlc3Rpb25zIHx8IFtdKS5maWx0ZXIoXG4gICAgKHEpID0+IHEgIT09IGN1cnJlbnRRdWVzdGlvblxuICApO1xuICBpZiAoXG4gICAgISF1c2FibGVRdWVzdGlvbnMgfHxcbiAgICBjdXJyZW50UXVlc3Rpb24gaW5zdGFuY2VvZiBTdXJ2ZXkuTWF0cml4RHJvcGRvd25Db2x1bW4gfHxcbiAgICBjdXJyZW50UXVlc3Rpb24uZGF0YSBpbnN0YW5jZW9mIFN1cnZleS5RdWVzdGlvblBhbmVsRHluYW1pY0l0ZW1cbiAgKSB7XG4gICAgaWYgKFxuICAgICAgcHJldklkZW50aWZpZXIgPT09IFwicm93XCIgJiZcbiAgICAgIGN1cnJlbnRRdWVzdGlvbiBpbnN0YW5jZW9mIFN1cnZleS5NYXRyaXhEcm9wZG93bkNvbHVtblxuICAgICkge1xuICAgICAgY29tcGxldGlvbnMgPSBjdXJyZW50UXVlc3Rpb24uY29sT3duZXJbXCJjb2x1bW5zXCJdXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUubmFtZSAhPT0gY3VycmVudFF1ZXN0aW9uLm5hbWUpXG4gICAgICAgIC5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBcIlwiLFxuICAgICAgICAgICAgdmFsdWU6IFwie3Jvdy5cIiArIGNvbHVtbi5uYW1lICsgXCJ9XCIsXG4gICAgICAgICAgICBzb21lOiBcIlwiLFxuICAgICAgICAgICAgbWV0YTogY29sdW1uLnRpdGxlLFxuICAgICAgICAgICAgaWRlbnRpZmllclJlZ2V4OiBJRF9SRUdFWFAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHByZXZJZGVudGlmaWVyID09PSBcInBhbmVsXCIgJiZcbiAgICAgIGN1cnJlbnRRdWVzdGlvbi5kYXRhIGluc3RhbmNlb2YgU3VydmV5LlF1ZXN0aW9uUGFuZWxEeW5hbWljSXRlbVxuICAgICkge1xuICAgICAgdmFyIHBhbmVsOiBTdXJ2ZXkuUGFuZWxNb2RlbCA9IGN1cnJlbnRRdWVzdGlvbi5kYXRhLnBhbmVsO1xuICAgICAgY29tcGxldGlvbnMgPSBwYW5lbC5lbGVtZW50c1xuICAgICAgICAuZmlsdGVyKChlKSA9PiBlLm5hbWUgIT09IGN1cnJlbnRRdWVzdGlvbi5uYW1lKVxuICAgICAgICAubWFwKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IFwiXCIsXG4gICAgICAgICAgICB2YWx1ZTogXCJ7cGFuZWwuXCIgKyBlbGVtZW50Lm5hbWUgKyBcIn1cIixcbiAgICAgICAgICAgIHNvbWU6IFwiXCIsXG4gICAgICAgICAgICBtZXRhOiBlbGVtZW50Lm5hbWUsXG4gICAgICAgICAgICBpZGVudGlmaWVyUmVnZXg6IElEX1JFR0VYUCxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG9wZXJhdGlvbnNGaWx0ZXJlZCA9IG9wZXJhdGlvbnMuZmlsdGVyKFxuICAgICAgICAob3ApID0+ICFwcmVmaXggfHwgb3AudmFsdWUuaW5kZXhPZihwcmVmaXgpICE9PSAtMVxuICAgICAgKTtcbiAgICAgIHZhciBxdWVzdGlvbnNGaWx0ZXJlZCA9IHVzYWJsZVF1ZXN0aW9ucy5maWx0ZXIoXG4gICAgICAgIChvcCkgPT4gIXByZWZpeCB8fCBvcC5uYW1lLmluZGV4T2YocHJlZml4KSAhPT0gLTFcbiAgICAgICk7XG4gICAgICBpZiAoY3VycmVudFF1ZXN0aW9uIGluc3RhbmNlb2YgU3VydmV5Lk1hdHJpeERyb3Bkb3duQ29sdW1uKSB7XG4gICAgICAgIGNvbXBsZXRpb25zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IFwiXCIsXG4gICAgICAgICAgdmFsdWU6IFwie3Jvdy5cIixcbiAgICAgICAgICBzb21lOiBcIlwiLFxuICAgICAgICAgIG1ldGE6IGVkaXRvckxvY2FsaXphdGlvbi5lZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFxuICAgICAgICAgICAgZWRpdG9yTG9jYWxpemF0aW9uLmRlZmF1bHRTdHJpbmdzLnBlLmFjZUVkaXRvclJvd1RpdGxlXG4gICAgICAgICAgKSxcbiAgICAgICAgICBpZGVudGlmaWVyUmVnZXg6IElEX1JFR0VYUCxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAhIWN1cnJlbnRRdWVzdGlvbiAmJlxuICAgICAgICBjdXJyZW50UXVlc3Rpb24uZGF0YSBpbnN0YW5jZW9mIFN1cnZleS5RdWVzdGlvblBhbmVsRHluYW1pY0l0ZW1cbiAgICAgICkge1xuICAgICAgICBjb21wbGV0aW9ucy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBcIlwiLFxuICAgICAgICAgIHZhbHVlOiBcIntwYW5lbC5cIixcbiAgICAgICAgICBzb21lOiBcIlwiLFxuICAgICAgICAgIG1ldGE6IGVkaXRvckxvY2FsaXphdGlvbi5lZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFxuICAgICAgICAgICAgZWRpdG9yTG9jYWxpemF0aW9uLmRlZmF1bHRTdHJpbmdzLnBlLmFjZUVkaXRvclBhbmVsVGl0bGVcbiAgICAgICAgICApLFxuICAgICAgICAgIGlkZW50aWZpZXJSZWdleDogSURfUkVHRVhQLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbXBsZXRpb25zID0gY29tcGxldGlvbnNcbiAgICAgICAgLmNvbmNhdChcbiAgICAgICAgICBxdWVzdGlvbnNGaWx0ZXJlZC5tYXAoKHEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGNvbXBsZXRlcjogY29tcGxldGVyLFxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxuICAgICAgICAgICAgICB2YWx1ZTogXCJ7XCIgKyBxLmdldFZhbHVlTmFtZSgpICsgXCJ9XCIsXG4gICAgICAgICAgICAgIHNvbWU6IFwiXCIsXG4gICAgICAgICAgICAgIG1ldGE6IHEudGl0bGUsXG4gICAgICAgICAgICAgIGlkZW50aWZpZXJSZWdleDogSURfUkVHRVhQLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5jb25jYXQoXG4gICAgICAgICAgb3BlcmF0aW9uc0ZpbHRlcmVkLm1hcCgob3ApID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiXCIsXG4gICAgICAgICAgICAgIHZhbHVlOiBvcC52YWx1ZSxcbiAgICAgICAgICAgICAgc29tZTogXCJcIixcbiAgICAgICAgICAgICAgbWV0YTogb3AudGl0bGUsXG4gICAgICAgICAgICAgIGlkZW50aWZpZXJSZWdleDogSURfUkVHRVhQLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY29tcGxldGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRNYXRjaChlZGl0b3IsIGRhdGEpIHtcbiAgaWYgKGVkaXRvci5jb21wbGV0ZXIuY29tcGxldGlvbnMuZmlsdGVyVGV4dCkge1xuICAgIHZhciBhbGxSYW5nZXMgPSBlZGl0b3Iuc2VsZWN0aW9uLmdldEFsbFJhbmdlcygpO1xuICAgIGZvciAoXG4gICAgICB2YXIgcmFuZ2VJbmRleCA9IDAsIHJhbmdlO1xuICAgICAgKHJhbmdlID0gYWxsUmFuZ2VzW3JhbmdlSW5kZXhdKTtcbiAgICAgIHJhbmdlSW5kZXgrK1xuICAgICkge1xuICAgICAgcmFuZ2Uuc3RhcnQuY29sdW1uIC09IGVkaXRvci5jb21wbGV0ZXIuY29tcGxldGlvbnMuZmlsdGVyVGV4dC5sZW5ndGg7XG4gICAgICB2YXIgcmFuZ2VUZXh0ID0gZWRpdG9yLnNlc3Npb24uZ2V0VGV4dFJhbmdlKHJhbmdlKTtcbiAgICAgIGlmIChyYW5nZVRleHQuaW5kZXhPZihcIntcIikgIT09IDApIHtcbiAgICAgICAgdmFyIGV4dFJhbmdlID0gcmFuZ2UuY2xvbmUoKTtcbiAgICAgICAgZXh0UmFuZ2Uuc3RhcnQuY29sdW1uLS07XG4gICAgICAgIGlmIChlZGl0b3Iuc2Vzc2lvbi5nZXRUZXh0UmFuZ2UoZXh0UmFuZ2UpLmluZGV4T2YoXCJ7XCIpID09PSAwKSB7XG4gICAgICAgICAgcmFuZ2UgPSBleHRSYW5nZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWRpdG9yLnNlc3Npb24ucmVtb3ZlKHJhbmdlKTtcbiAgICB9XG4gIH1cbiAgZWRpdG9yLmV4ZWNDb21tYW5kKFwiaW5zZXJ0c3RyaW5nXCIsIGRhdGEudmFsdWUgfHwgZGF0YSk7XG59XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5hY2VFZGl0b3IgPSB7XG4gIGluaXQ6IGZ1bmN0aW9uIChlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgdmFyIGNvbmZpZ3MgPSBvcHRpb25zKCk7XG4gICAgdmFyIGxhbmdUb29scyA9IGFjZS5yZXF1aXJlKFwiYWNlL2V4dC9sYW5ndWFnZV90b29sc1wiKTtcbiAgICB2YXIgbGFuZ1V0aWxzID0gYWNlLnJlcXVpcmUoXCJhY2UvYXV0b2NvbXBsZXRlL3V0aWxcIik7XG4gICAgdmFyIGVkaXRvciA9IGFjZS5lZGl0KGVsZW1lbnQpO1xuICAgIHZhciBvYmplY3RFZGl0b3I6IFN1cnZleVByb3BlcnR5Q29uZGl0aW9uRWRpdG9yID0gY29uZmlncy5lZGl0b3I7XG4gICAgdmFyIGlzVXBkYXRpbmcgPSBmYWxzZTtcblxuICAgIGVkaXRvci5zZXRPcHRpb24oXCJ1c2VXb3JrZXJcIiwgZmFsc2UpO1xuICAgIGVkaXRvci5yZW5kZXJlci5zZXRTaG93R3V0dGVyKGZhbHNlKTtcbiAgICBlZGl0b3Iuc2V0SGlnaGxpZ2h0QWN0aXZlTGluZShmYWxzZSk7XG5cbiAgICBlZGl0b3IuZ2V0U2Vzc2lvbigpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBlcnJvcnMgPSBjcmVhdGVBbm5vdGF0aW9ucyhcbiAgICAgICAgZWRpdG9yLmdldFZhbHVlKCksXG4gICAgICAgIG9iamVjdEVkaXRvci5zeW50YXhDaGVja01ldGhvZE5hbWVcbiAgICAgICk7XG4gICAgICBpZiAoIWlzVXBkYXRpbmcpIHtcbiAgICAgICAgaXNVcGRhdGluZyA9IHRydWU7XG4gICAgICAgIG9iamVjdEVkaXRvci5rb1RleHRWYWx1ZShlZGl0b3IuZ2V0VmFsdWUoKSk7XG4gICAgICAgIGlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vICAgb2JqZWN0RWRpdG9yLmtvSGFzRXJyb3IoZXJyb3JzLmxlbmd0aCA+IDApO1xuICAgICAgLy8gICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vICAgICBvYmplY3RFZGl0b3Iua29FcnJvclRleHQoZXJyb3JzWzBdLnRleHQpO1xuICAgICAgLy8gICB9XG4gICAgICBlZGl0b3IuZ2V0U2Vzc2lvbigpLnNldEFubm90YXRpb25zKGVycm9ycyk7XG4gICAgfSk7XG4gICAgZWRpdG9yLm9uKFwiZm9jdXNcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgZWRpdG9yLnNldFJlYWRPbmx5KG9iamVjdEVkaXRvci5yZWFkT25seSgpKTtcbiAgICB9KTtcbiAgICB2YXIgdXBkYXRlQ2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoIWlzVXBkYXRpbmcpIHtcbiAgICAgICAgaXNVcGRhdGluZyA9IHRydWU7XG4gICAgICAgIGVkaXRvci5zZXRWYWx1ZShvYmplY3RFZGl0b3Iua29UZXh0VmFsdWUoKSB8fCBcIlwiKTtcbiAgICAgICAgaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIHZhbHVlU3Vic2NyaXB0aW9uID0gb2JqZWN0RWRpdG9yLmtvVGV4dFZhbHVlLnN1YnNjcmliZSh1cGRhdGVDYWxsYmFjayk7XG4gICAgdXBkYXRlQ2FsbGJhY2soKTtcbiAgICB2YXIgdmlzaWJpbGl0eVN1YnNjcmlwdGlvbiA9IG9iamVjdEVkaXRvci5rb0FjdGl2ZVZpZXcuc3Vic2NyaWJlKFxuICAgICAgKG5ld1ZpZXcpID0+IHtcbiAgICAgICAgaWYgKG5ld1ZpZXcgIT09IFwiZm9ybVwiKSB7XG4gICAgICAgICAgZWRpdG9yLnJlc2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcblxuICAgIHZhciBjb21wbGV0ZXIgPSB7XG4gICAgICBpZGVudGlmaWVyUmVnZXhwczogW0lEX1JFR0VYUF0sXG4gICAgICBpbnNlcnRNYXRjaDogaW5zZXJ0TWF0Y2gsXG4gICAgICBnZXRDb21wbGV0aW9uczogKGVkaXRvciwgc2Vzc2lvbiwgcG9zLCBwcmVmaXgsIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIHZhciBwcmV2SWRlbnRpZmllciA9IGxhbmdVdGlscy5yZXRyaWV2ZVByZWNlZGluZ0lkZW50aWZpZXIoXG4gICAgICAgICAgc2Vzc2lvbi5nZXRMaW5lKHBvcy5yb3cpLFxuICAgICAgICAgIHBvcy5jb2x1bW4gLSAxXG4gICAgICAgICk7XG4gICAgICAgIHZhciBjb21wbGV0aW9ucyA9IGRvR2V0Q29tcGxldGlvbnMoXG4gICAgICAgICAgcHJldklkZW50aWZpZXIsXG4gICAgICAgICAgcHJlZml4LFxuICAgICAgICAgIGNvbmZpZ3MsXG4gICAgICAgICAgY29tcGxldGVyXG4gICAgICAgICk7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIGNvbXBsZXRpb25zKTtcbiAgICAgIH0sXG4gICAgICBnZXREb2NUb29sdGlwOiBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICBpdGVtLmRvY0hUTUwgPVxuICAgICAgICAgIFwiPGRpdiBzdHlsZT0nbWF4LXdpZHRoOiAzMDBweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsnPlwiICtcbiAgICAgICAgICBpdGVtLm1ldGEgK1xuICAgICAgICAgIFwiPC9kaXY+XCI7XG4gICAgICB9LFxuICAgIH07XG4gICAgbGFuZ1Rvb2xzLnNldENvbXBsZXRlcnMoW2NvbXBsZXRlcl0pO1xuICAgIGVkaXRvci5zZXRPcHRpb25zKHtcbiAgICAgIGVuYWJsZUJhc2ljQXV0b2NvbXBsZXRpb246IHRydWUsXG4gICAgICBlbmFibGVMaXZlQXV0b2NvbXBsZXRpb246IHRydWUsXG4gICAgfSk7XG5cbiAgICBrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGVsZW1lbnQsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhbHVlU3Vic2NyaXB0aW9uLmRpc3Bvc2UoKTtcbiAgICAgIHZpc2liaWxpdHlTdWJzY3JpcHRpb24uZGlzcG9zZSgpO1xuICAgICAgZWRpdG9yLmRlc3Ryb3koKTtcbiAgICB9KTtcblxuICAgIGVkaXRvci5mb2N1cygpO1xuICB9LFxufTtcbiIsImltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckJhc2VcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5Q3VzdG9tRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcHJpdmF0ZSB3aWRnZXRKU09OVmFsdWU6IGFueTtcbiAgcHVibGljIG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2s6IChuZXdWYWx1ZTogYW55KSA9PiB2b2lkO1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSwgd2lkZ2V0SlNPTjogYW55ID0gbnVsbCkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgICB0aGlzLndpZGdldEpTT05WYWx1ZSA9IHdpZGdldEpTT047XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXNbXCJrb0FmdGVyUmVuZGVyXCJdID0gZnVuY3Rpb24gKGNvbXBvbmVudEluZm8pIHtcbiAgICAgIGNvbnN0IGVsID0gY29tcG9uZW50SW5mby5lbGVtZW50Lm5leHRTaWJsaW5nO1xuICAgICAgc2VsZi5kb0FmdGVyUmVuZGVyKGVsKTtcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImN1c3RvbVwiO1xuICB9XG4gIHB1YmxpYyBnZXQgd2lkZ2V0SlNPTigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLndpZGdldEpTT05WYWx1ZTtcbiAgfVxuICBwcml2YXRlIGlzVmFsdWVDaGFuZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgb25WYWx1ZUNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZUNoYW5naW5nKSByZXR1cm47XG4gICAgdGhpcy5pc1ZhbHVlQ2hhbmdpbmcgPSB0cnVlO1xuICAgIHN1cGVyLm9uVmFsdWVDaGFuZ2VkKCk7XG4gICAgaWYgKHRoaXMub25WYWx1ZUNoYW5nZWRDYWxsYmFjaylcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWRDYWxsYmFjayh0aGlzLmtvVmFsdWUoKSk7XG4gICAgdGhpcy5pc1ZhbHVlQ2hhbmdpbmcgPSBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgY2hlY2tGb3JFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgdmFyIHJlcyA9IHN1cGVyLmNoZWNrRm9yRXJyb3JzKCk7XG4gICAgaWYgKCEhcmVzKSByZXR1cm4gcmVzO1xuICAgIHZhciBlcnJvclRleHQgPSB0aGlzLndpZGdldFZhbGlkYXRlKCk7XG4gICAgaWYgKCEhZXJyb3JUZXh0KSB7XG4gICAgICB0aGlzLmtvRXJyb3JUZXh0KGVycm9yVGV4dCk7XG4gICAgfVxuICAgIHJldHVybiAhIWVycm9yVGV4dDtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHdpZGdldFJlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLndpZGdldEpTT04gPyB0aGlzLndpZGdldEpTT04ucmVuZGVyIDogbnVsbDtcbiAgfVxuICBwcm90ZWN0ZWQgd2lkZ2V0VmFsaWRhdGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy53aWRnZXRKU09OICYmIHRoaXMud2lkZ2V0SlNPTi52YWxpZGF0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0SlNPTi52YWxpZGF0ZSh0aGlzLCB0aGlzLmtvVmFsdWUoKSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBkb0FmdGVyUmVuZGVyKGVsKSB7XG4gICAgaWYgKCEhZWwgJiYgdGhpcy53aWRnZXRSZW5kZXIpIHRoaXMud2lkZ2V0UmVuZGVyKHRoaXMsIGVsKTtcbiAgfVxufVxuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5TW9kYWxFZGl0b3JcIjtcbmltcG9ydCB7XG4gIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMsXG59IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5IH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JGYWN0b3J5XCI7XG5pbXBvcnQgeyBFZGl0YWJsZU9iamVjdCB9IGZyb20gXCIuL2VkaXRhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlIZWxwZXIgfSBmcm9tIFwiLi4vc3VydmV5SGVscGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvciBleHRlbmRzIFN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3Ige1xuICBwcml2YXRlIHN0YXRpYyBza2lwUHJvcGVydHlOYW1lcyA9IFtcIndpZHRoXCIsIFwibWluV2lkdGhcIiwgXCJtYXhXaWR0aFwiXTtcbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0UXVlc3Rpb25OYW1lID0gXCJxdWVzdGlvblwiO1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUpzb25Gcm9tUXVlc3Rpb24ob2JqOiBhbnksIHJlYWRPbmx5OiBib29sZWFuKTogYW55IHtcbiAgICB2YXIgcWpzb24gPSBuZXcgU3VydmV5Lkpzb25PYmplY3QoKS50b0pzb25PYmplY3Qob2JqKTtcbiAgICBxanNvbi5uYW1lID0gU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IuZGVmYXVsdFF1ZXN0aW9uTmFtZTtcbiAgICBxanNvbi50aXRsZSA9IGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJwZS5kZWZhdWx0VmFsdWVcIik7XG4gICAgcWpzb24udHlwZSA9IG9iai5nZXRUeXBlKCk7XG4gICAgaWYgKHFqc29uLnR5cGUgPT0gXCJleHByZXNzaW9uXCIpIHtcbiAgICAgIHFqc29uLnR5cGUgPSBcInRleHRcIjtcbiAgICB9XG5cbiAgICBpZiAoISFxanNvbi5jZWxsVHlwZSAmJiBxanNvbi50eXBlID09IFwibWF0cml4ZHJvcGRvd25jb2x1bW5cIikge1xuICAgICAgcWpzb24udHlwZSA9IHFqc29uLmNlbGxUeXBlO1xuICAgICAgZGVsZXRlIHFqc29uW1wiY2VsbFR5cGVcIl07XG4gICAgfVxuXG4gICAgU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IuZmlsdGVySnNvblByb3BlcnRpZXMocWpzb24pO1xuXG4gICAgcWpzb24udGl0bGVMb2NhdGlvbiA9IFwiaGlkZGVuXCI7XG4gICAgLy9xanNvbi5zaG93Q2xlYXJCdXR0b24gPSB0cnVlO1xuICAgIHFqc29uLnJlYWRPbmx5ID0gcmVhZE9ubHk7XG4gICAgcmV0dXJuIHFqc29uO1xuICB9XG4gIHByaXZhdGUgc3RhdGljIGZpbHRlckpzb25Qcm9wZXJ0aWVzKHFqc29uOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0pIHtcbiAgICB2YXIgcHJvcGVydGllcyA9IFN1cnZleVByb3BlcnR5RGVmYXVsdFZhbHVlRWRpdG9yLnNraXBQcm9wZXJ0eU5hbWVzO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbmFtZTogc3RyaW5nID0gcHJvcGVydGllc1tpXTtcbiAgICAgIGlmICghIXFqc29uW25hbWVdKSB7XG4gICAgICAgIGRlbGV0ZSBxanNvbltuYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVTdXJ2ZXlGcm9tSnNvblF1ZXN0aW9uKFxuICAgIHF1ZXN0aW9uSnNvbjogYW55LFxuICAgIG9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zLFxuICAgIHN1cnZleU5hbWU6IHN0cmluZ1xuICApOiBTdXJ2ZXkuU3VydmV5IHtcbiAgICB2YXIganNvbiA9IHtcbiAgICAgIHF1ZXN0aW9uczogW10sXG4gICAgICBzaG93TmF2aWdhdGlvbkJ1dHRvbnM6IGZhbHNlLFxuICAgICAgc2hvd1F1ZXN0aW9uTnVtYmVyczogXCJvZmZcIixcbiAgICAgIHRleHRVcGRhdGVNb2RlOiBcIm9uVHlwaW5nXCIsXG4gICAgfTtcbiAgICBTdXJ2ZXlIZWxwZXIudXBkYXRlUXVlc3Rpb25Kc29uKHF1ZXN0aW9uSnNvbik7XG4gICAganNvbi5xdWVzdGlvbnMucHVzaChxdWVzdGlvbkpzb24pO1xuICAgIHZhciBzdXJ2ZXkgPSAhIW9wdGlvbnNcbiAgICAgID8gb3B0aW9ucy5jcmVhdGVTdXJ2ZXkoanNvbiwgc3VydmV5TmFtZSlcbiAgICAgIDogbmV3IFN1cnZleS5TdXJ2ZXkoanNvbik7XG4gICAgU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IudXBkYXRlU3VydmV5U3R5bGUoc3VydmV5KTtcbiAgICByZXR1cm4gc3VydmV5O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgdXBkYXRlU3VydmV5U3R5bGUoc3VydmV5OiBTdXJ2ZXkuU3VydmV5KSB7XG4gICAgc3VydmV5LmNzcy5ib2R5ICs9IFwiIHN2ZC1wcm9wZXJ0eS1lZGl0b3Itc3VydmV5XCI7XG4gICAgc3VydmV5LmNzcy5wYWdlLnJvb3QgKz0gXCIgc3ZkLXByb3BlcnR5LWVkaXRvci1zdXJ2ZXktcGFnZVwiO1xuICAgIGlmICghIXN1cnZleS5jc3MucXVlc3Rpb24pIHtcbiAgICAgIHN1cnZleS5jc3MucXVlc3Rpb24ubWFpblJvb3QgKz0gXCIgc3ZkLXN1cnZleS1ub3BhZGRpbmdcIjtcbiAgICB9XG4gIH1cbiAgcHVibGljIHN1cnZleTogU3VydmV5LlN1cnZleTtcbiAga29TdXJ2ZXk6IGFueTtcbiAgcHJvdGVjdGVkIGN1cnJlbnRPYmplY3Q6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgICB0aGlzLmtvU3VydmV5ID0ga28ub2JzZXJ2YWJsZShcbiAgICAgICEhdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5jcmVhdGVTdXJ2ZXkoe30sIFwiZGVmYXVsdFZhbHVlRWRpdG9yXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgcmVzZXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJwZS5yZXNldFwiKTtcbiAgfVxuICBwdWJsaWMgcmVmcmVzaFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcInBlLnJlZnJlc2hcIik7XG4gIH1cbiAgcHVibGljIHJlc2V0VmFsdWUobW9kZWw6IFN1cnZleVByb3BlcnR5RGVmYXVsdFZhbHVlRWRpdG9yKSB7XG4gICAgbW9kZWxcbiAgICAgIC5rb1N1cnZleSgpXG4gICAgICAuY2xlYXJWYWx1ZShTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvci5kZWZhdWx0UXVlc3Rpb25OYW1lKTtcbiAgfVxuICBwdWJsaWMgcmVmcmVzaFN1cnZleShtb2RlbDogU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IpIHtcbiAgICBtb2RlbC5jcmVhdGVTdXJ2ZXkoKTtcbiAgfVxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUuZW1wdHlcIik7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgYmVmb3JlU2hvd0NvcmUoKSB7XG4gICAgc3VwZXIuYmVmb3JlU2hvd0NvcmUoKTtcbiAgICB0aGlzLmNyZWF0ZVN1cnZleSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImRlZmF1bHQtdmFsdWVcIjtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlU3VydmV5KCkge1xuICAgIHZhciBqc29uID0gdGhpcy5idWlsZFF1ZXN0aW9uSnNvbigpO1xuICAgIGlmICghIWpzb24pIHtcbiAgICAgIHRoaXMuc3VydmV5ID0gU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IuY3JlYXRlU3VydmV5RnJvbUpzb25RdWVzdGlvbihcbiAgICAgICAganNvbixcbiAgICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgICBcImRlZmF1bHRWYWx1ZUVkaXRvclwiXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1cnZleS5zZXRWYWx1ZShcbiAgICAgICAgU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IuZGVmYXVsdFF1ZXN0aW9uTmFtZSxcbiAgICAgICAgdGhpcy5nZXRTdXJ2ZXlJbml0aWFsVmFsdWUoKVxuICAgICAgKTtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIHRoaXMuc3VydmV5Lm9uVmFsdWVDaGFuZ2VkLmFkZChmdW5jdGlvbiAoc2VuZGVyOiBhbnksIG9wdGlvbnM6IGFueSkge1xuICAgICAgICBzZWxmLmtvVmFsdWUoc2VsZi5nZXRTdXJ2ZXlSZXN1bHQoKSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXJ2ZXkgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLmtvU3VydmV5KHRoaXMuc3VydmV5KTtcbiAgfVxuICBwcm90ZWN0ZWQgYnVpbGRRdWVzdGlvbkpzb24oKTogYW55IHtcbiAgICB0aGlzLmN1cnJlbnRPYmplY3QgPSB0aGlzLmdldE9iamVjdCgpO1xuICAgIGlmICghdGhpcy5jdXJyZW50T2JqZWN0KSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gU3VydmV5UHJvcGVydHlEZWZhdWx0VmFsdWVFZGl0b3IuY3JlYXRlSnNvbkZyb21RdWVzdGlvbihcbiAgICAgIHRoaXMuY3VycmVudE9iamVjdCxcbiAgICAgIHRoaXMucmVhZE9ubHkoKVxuICAgICk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldE9iamVjdCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm9iamVjdDtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0U3VydmV5SW5pdGlhbFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMua29WYWx1ZSgpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRTdXJ2ZXlSZXN1bHQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkuZ2V0VmFsdWUoXG4gICAgICBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvci5kZWZhdWx0UXVlc3Rpb25OYW1lXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlUcmlnZ2VyVmFsdWVFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZVRlbXBsYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiZGVmYXVsdC12YWx1ZVwiO1xuICB9XG4gIHB1YmxpYyB1cGRhdGVEeW5hbWljUHJvcGVydGllcygpIHtcbiAgICBzdXBlci51cGRhdGVEeW5hbWljUHJvcGVydGllcygpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRPYmplY3QgIT0gdGhpcy5nZXRPYmplY3QoKSkge1xuICAgICAgdGhpcy5jcmVhdGVTdXJ2ZXkoKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdldE9iamVjdCgpOiBhbnkge1xuICAgIHZhciBzdXJ2ZXkgPSBFZGl0YWJsZU9iamVjdC5nZXRTdXJ2ZXkodGhpcy5vYmplY3QpO1xuICAgIGlmICghc3VydmV5IHx8ICF0aGlzLnByb3BlcnR5KSByZXR1cm4gbnVsbDtcbiAgICB2YXIgcHJvcE5hbWUgPSB0aGlzLmdldERlcGVuZE9uUHJvcE5hbWUoKTtcbiAgICBpZiAoIXByb3BOYW1lKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgcXVlc3Rpb25OYW1lID0gdGhpcy5vYmplY3RbcHJvcE5hbWVdO1xuICAgIHJldHVybiAhIXF1ZXN0aW9uTmFtZSA/IHN1cnZleS5nZXRRdWVzdGlvbkJ5TmFtZShxdWVzdGlvbk5hbWUpIDogbnVsbDtcbiAgfVxuICBwcml2YXRlIGdldERlcGVuZE9uUHJvcE5hbWUoKTogc3RyaW5nIHtcbiAgICB2YXIgcHJvcGVydGllcyA9IFN1cnZleS5TZXJpYWxpemVyLmdldFByb3BlcnRpZXNCeU9iaih0aGlzLm9iamVjdCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZHBzID0gcHJvcGVydGllc1tpXS5nZXREZXBlbmRlZFByb3BlcnRpZXMoKTtcbiAgICAgIGlmICghIWRwcyAmJiBkcHMuaW5kZXhPZih0aGlzLnByb3BlcnR5Lm5hbWUpID4gLTEpXG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW2ldLm5hbWU7XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRSb3dWYWx1ZUVkaXRvckJhc2UgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZVRlbXBsYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiZGVmYXVsdC12YWx1ZVwiO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInRyaWdnZXJ2YWx1ZVwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXRTdXJ2ZXlJbml0aWFsVmFsdWUoKTogYW55IHtcbiAgICB2YXIgcmVzID0gdGhpcy5rb1ZhbHVlKCk7XG4gICAgaWYgKCFyZXMpIHJldHVybiByZXM7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgIHJlcyA9IFtyZXNdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBnZXRTdXJ2ZXlSZXN1bHQoKTogYW55IHtcbiAgICB2YXIgcmVzID0gc3VwZXIuZ2V0U3VydmV5UmVzdWx0KCk7XG4gICAgaWYgKHJlcyAmJiBBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgIGlmIChyZXMubGVuZ3RoID09IDApIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHJlc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlEZWZhdWx0Um93VmFsdWVFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRSb3dWYWx1ZUVkaXRvckJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgfVxuICBwcm90ZWN0ZWQgYnVpbGRRdWVzdGlvbkpzb24oKTogYW55IHtcbiAgICB2YXIgcWpzb24gPSBzdXBlci5idWlsZFF1ZXN0aW9uSnNvbigpO1xuICAgIHFqc29uLnJvd0NvdW50ID0gMTtcbiAgICBxanNvbi5taW5Sb3dDb3VudCA9IDE7XG4gICAgcWpzb24ubWF4Um93Q291bnQgPSAxO1xuICAgIHFqc29uLmNvbHVtbnNMb2NhdGlvbiA9IFwidmVydGljYWxcIjtcbiAgICByZXR1cm4gcWpzb247XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicm93dmFsdWVcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlEZWZhdWx0UGFuZWxWYWx1ZUVkaXRvciBleHRlbmRzIFN1cnZleVByb3BlcnR5RGVmYXVsdFJvd1ZhbHVlRWRpdG9yQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHByb3RlY3RlZCBidWlsZFF1ZXN0aW9uSnNvbigpOiBhbnkge1xuICAgIHZhciBxanNvbiA9IHN1cGVyLmJ1aWxkUXVlc3Rpb25Kc29uKCk7XG4gICAgcWpzb24ucGFuZWxDb3VudCA9IDE7XG4gICAgcWpzb24ubWluUGFuZWxDb3VudCA9IDE7XG4gICAgcWpzb24ubWF4UGFuZWxDb3VudCA9IDE7XG4gICAgcmV0dXJuIHFqc29uO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInBhbmVsdmFsdWVcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlTZXRFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInNldFwiO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZVRlbXBsYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiZGVmYXVsdC12YWx1ZVwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXRTdXJ2ZXlJbml0aWFsVmFsdWUoKTogYW55IHtcbiAgICB2YXIgcmVzID0gdGhpcy5rb1ZhbHVlKCk7XG4gICAgaWYgKCFyZXMpIHJldHVybiByZXM7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgIHJlcyA9IFtyZXNdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBidWlsZFF1ZXN0aW9uSnNvbigpOiBhbnkge1xuICAgIHZhciBxdWVzdGlvbiA9IG5ldyBTdXJ2ZXkuUXVlc3Rpb25DaGVja2JveChcInExXCIpO1xuICAgIHZhciBoYXNUYWdib3ggPSAhIVN1cnZleS5TZXJpYWxpemVyLmZpbmRDbGFzcyhcInRhZ2JveFwiKTtcbiAgICBxdWVzdGlvbi5oYXNTZWxlY3RBbGwgPSAhaGFzVGFnYm94O1xuICAgIGlmICghIXRoaXMucHJvcGVydHkpIHtcbiAgICAgIHF1ZXN0aW9uLmNob2ljZXMgPSB0aGlzLmdldFByb3BlcnR5Q2hvaWNlcygpO1xuICAgIH1cbiAgICB2YXIganNvbiA9IFN1cnZleVByb3BlcnR5RGVmYXVsdFZhbHVlRWRpdG9yLmNyZWF0ZUpzb25Gcm9tUXVlc3Rpb24oXG4gICAgICBxdWVzdGlvbixcbiAgICAgIHRoaXMucmVhZE9ubHkoKVxuICAgICk7XG4gICAgaWYgKGhhc1RhZ2JveCkge1xuICAgICAganNvbi50eXBlID0gXCJ0YWdib3hcIjtcbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cbiAgcHJpdmF0ZSBzZXRDaG9pY2VzKGNob2ljZXM6IEFycmF5PGFueT4pIHtcbiAgICB2YXIgc3VydmV5ID0gdGhpcy5rb1N1cnZleSgpO1xuICAgIGlmICghc3VydmV5IHx8IHN1cnZleS5nZXRBbGxRdWVzdGlvbnMoKS5sZW5ndGggPiAxKSByZXR1cm47XG4gICAgc3VydmV5LmdldEFsbFF1ZXN0aW9ucygpWzBdLmNob2ljZXMgPSBjaG9pY2VzO1xuICB9XG4gIHByaXZhdGUgZ2V0UHJvcGVydHlDaG9pY2VzKCk6IEFycmF5PGFueT4ge1xuICAgIGlmICghdGhpcy5wcm9wZXJ0eSkgcmV0dXJuIFtdO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS5nZXRDaG9pY2VzKHRoaXMub2JqZWN0LCBmdW5jdGlvbiAoY2hvaWNlczogYW55KSB7XG4gICAgICBzZWxmLnNldENob2ljZXMoY2hvaWNlcyk7XG4gICAgfSk7XG4gIH1cbn1cblxuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFxuICBcInZhbHVlXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRWYWx1ZUVkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcbiAgXCJ0cmlnZ2VydmFsdWVcIixcbiAgZnVuY3Rpb24gKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleVByb3BlcnR5VHJpZ2dlclZhbHVlRWRpdG9yKHByb3BlcnR5KTtcbiAgfVxuKTtcblxuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFxuICBcInJvd3ZhbHVlXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRSb3dWYWx1ZUVkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcbiAgXCJwYW5lbHZhbHVlXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eURlZmF1bHRQYW5lbFZhbHVlRWRpdG9yKHByb3BlcnR5KTtcbiAgfVxuKTtcblxuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFxuICBcInNldFwiLFxuICBmdW5jdGlvbiAocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICAgIHJldHVybiBuZXcgU3VydmV5UHJvcGVydHlTZXRFZGl0b3IocHJvcGVydHkpO1xuICB9XG4pO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgRWRpdGFibGVPYmplY3QgfSBmcm9tIFwiLi9lZGl0YWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgSVN1cnZleUNyZWF0b3JPcHRpb25zIH0gZnJvbSBcIi4uL3NldHRpbmdzXCI7XG5pbXBvcnQge1xuICBnZXRGaXJzdE5vblRleHRFbGVtZW50LFxuICBnZXROb2Rlc0Zyb21Lb0NvbXBvbmVudEluZm8sXG4gIHRyaW1WYWx1ZSxcbn0gZnJvbSBcIi4uL3V0aWxzL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMgZXh0ZW5kcyBJU3VydmV5Q3JlYXRvck9wdGlvbnMge1xuICBzaG93QXBwbHlCdXR0b25JbkVkaXRvcnM6IGJvb2xlYW47XG4gIHVzZVRhYnNJbkVsZW1lbnRFZGl0b3I6IGJvb2xlYW47XG4gIG9uSXNFZGl0b3JSZWFkT25seUNhbGxiYWNrKFxuICAgIG9iajogU3VydmV5LkJhc2UsXG4gICAgZWRpdG9yOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UsXG4gICAgcmVhZE9ubHk6IGJvb2xlYW5cbiAgKTogYm9vbGVhbjtcbiAgb25Qcm9wZXJ0eUVkaXRvck9iamVjdFNldENhbGxiYWNrKFxuICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgIG9iajogU3VydmV5LkJhc2UsXG4gICAgZWRpdG9yOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2VcbiAgKTtcbiAgb25Qcm9wZXJ0eUVkaXRvcktleURvd25DYWxsYmFjayhcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIGVkaXRvcjogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlLFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50XG4gICk7XG4gIG9uUHJvcGVydHlFZGl0b3JNb2RhbFNob3dEZXNjcmlwdGlvbkNhbGxiYWNrKFxuICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgIG9iajogU3VydmV5LkJhc2VcbiAgKTogYW55O1xuICBvbkNvbmRpdGlvblZhbHVlU3VydmV5Q3JlYXRlZENhbGxCYWNrKFxuICAgIHZhbHVlUXVlc3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBlZGl0b3I6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgICBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlcbiAgKTtcbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSBpbXBsZW1lbnRzIFN1cnZleS5JTG9jYWxpemFibGVPd25lciB7XG4gIHByaXZhdGUgb2JqZWN0VmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBwYXJlbnRMaXN0VmFsdWU6IEFycmF5PFN1cnZleS5CYXNlPjtcbiAgcHJpdmF0ZSBwYXJlbnRSZWFkT25seVZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgdmFsdWVVcGRhdGluZ0NvdW50ZXI6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgb3B0aW9uc1ZhbHVlOiBJU3VydmV5T2JqZWN0RWRpdG9yT3B0aW9ucyA9IG51bGw7XG4gIHByaXZhdGUgcHJvcGVydHlfOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5O1xuICBwcml2YXRlIGlzUmVxdWlyZWRWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHRpdGxlVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBzaG93RGlzcGxheU5hbWVWYWx1ZTogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgX2Rpc3BsYXlOYW1lVmFsdWUgPSBrby5vYnNlcnZhYmxlPHN0cmluZz4oKTtcbiAgcHJpdmF0ZSBnZXQgZGlzcGxheU5hbWVWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheU5hbWVWYWx1ZSgpO1xuICB9XG4gIHByaXZhdGUgc2V0IGRpc3BsYXlOYW1lVmFsdWUodmFsKSB7XG4gICAgdGhpcy5fZGlzcGxheU5hbWVWYWx1ZSh2YWwpO1xuICB9XG4gIHB1YmxpYyBzaG93SGVscFRleHQ6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgcGFyZW50T2JqOiBTdXJ2ZXkuQmFzZTtcbiAgcHVibGljIHBhcmVudFByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5O1xuICBwdWJsaWMga29WYWx1ZSA9IGtvLm9ic2VydmFibGU8YW55PigpO1xuICBwdWJsaWMga29UZXh0OiBhbnk7XG4gIHB1YmxpYyBrb0lzRGVmYXVsdDogYW55O1xuICBwdWJsaWMga29IYXNFcnJvcjogYW55O1xuICBwdWJsaWMga29FcnJvclRleHQ6IGFueTtcbiAgcHVibGljIGtvRGlzcGxheUVycm9yOiBhbnk7XG4gIHB1YmxpYyBpc0lucGxhY2VQcm9wZXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZE9ubHk6IGFueTtcbiAgcHVibGljIGtvTWF4TGVuZ3RoOiBhbnk7XG4gIHB1YmxpYyBrb01heFZhbHVlOiBhbnk7XG4gIHB1YmxpYyBrb01pblZhbHVlOiBhbnk7XG4gIHB1YmxpYyBvbkNoYW5nZWQ6IChuZXdWYWx1ZTogYW55KSA9PiBhbnk7XG4gIHB1YmxpYyBvbkdldExvY2FsZTogKCkgPT4gc3RyaW5nO1xuICBwdWJsaWMgb25WYWx1ZVVwZGF0ZWQ6IChuZXdWYWx1ZTogYW55KSA9PiBhbnk7XG4gIHB1YmxpYyBzZXR1cCgpIHsgfVxuICBwdWJsaWMgYmVmb3JlU2hvdygpIHsgfVxuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHRoaXMucHJvcGVydHlfID0gcHJvcGVydHk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMua29WYWx1ZS5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICBzZWxmLm9ua29WYWx1ZUNoYW5nZWQobmV3VmFsdWUpO1xuICAgIH0pO1xuICAgIHRoaXMua29UZXh0ID0ga28uY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgcmV0dXJuIHNlbGYuZ2V0VmFsdWVUZXh0KHNlbGYua29WYWx1ZSgpKTtcbiAgICB9KTtcbiAgICB0aGlzLmtvSXNEZWZhdWx0ID0ga28uY29tcHV0ZWQoZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHNlbGYucHJvcGVydHlcbiAgICAgICAgPyBzZWxmLnByb3BlcnR5LmlzRGVmYXVsdFZhbHVlKHNlbGYua29WYWx1ZSgpKVxuICAgICAgICA6IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMua29IYXNFcnJvciA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAgIHRoaXMua29FcnJvclRleHQgPSBrby5vYnNlcnZhYmxlKFwiXCIpO1xuICAgIHRoaXMua29EaXNwbGF5RXJyb3IgPSBrby5jb21wdXRlZChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gc2VsZi5rb0hhc0Vycm9yKCkgJiYgISFzZWxmLmtvRXJyb3JUZXh0KCk7XG4gICAgfSk7XG4gICAgdGhpcy5rb01heExlbmd0aCA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiAhIXNlbGYucHJvcGVydHkgJiZcbiAgICAgICAgISFzZWxmLnByb3BlcnR5W1wibWF4TGVuZ3RoXCJdICYmXG4gICAgICAgIHNlbGYucHJvcGVydHlbXCJtYXhMZW5ndGhcIl0gPiAwXG4gICAgICAgID8gc2VsZi5wcm9wZXJ0eVtcIm1heExlbmd0aFwiXVxuICAgICAgICA6IDUyNDI4ODtcbiAgICB9KTtcbiAgICB0aGlzLmtvTWF4VmFsdWUgPSBrby5jb21wdXRlZChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gISFzZWxmLnByb3BlcnR5ICYmICFzZWxmLmlzVmFsdWVFbXB0eShzZWxmLnByb3BlcnR5Lm1heFZhbHVlKVxuICAgICAgICA/IHNlbGYucHJvcGVydHkubWF4VmFsdWVcbiAgICAgICAgOiBcIlwiO1xuICAgIH0pO1xuICAgIHRoaXMua29NaW5WYWx1ZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiAhIXNlbGYucHJvcGVydHkgJiYgIXNlbGYuaXNWYWx1ZUVtcHR5KHNlbGYucHJvcGVydHkubWluVmFsdWUpXG4gICAgICAgID8gc2VsZi5wcm9wZXJ0eS5taW5WYWx1ZVxuICAgICAgICA6IFwiXCI7XG4gICAgfSk7XG4gICAgdGhpcy5zZXRJc1JlcXVpcmVkKCk7XG4gICAgdGhpcy5zZXRUaXRsZUFuZERpc3BsYXlOYW1lKCk7XG4gICAgdGhpcy5yZWFkT25seSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdGluZ1ZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmtvVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IGVkaXRpbmdWYWx1ZShuZXdWYWx1ZSkge1xuICAgIHRoaXMua29WYWx1ZShuZXdWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgdGhyb3cgXCJlZGl0b3JUeXBlIGlzIG5vdCBkZWZpbmVkXCI7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlVGVtcGxhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JUeXBlO1xuICB9XG4gIHB1YmxpYyBnZXQgcHJvcGVydHkoKTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHlfO1xuICB9XG4gIHB1YmxpYyBnZXQgZGVmYXVsdFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkuZGVmYXVsdFZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdGFibGVQcm9wZXJ0eU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eSA/IHRoaXMucHJvcGVydHkubmFtZSA6IFwiXCI7XG4gIH1cbiAgcHJpdmF0ZSBnZXRSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5wYXJlbnRSZWFkT25seSkgcmV0dXJuIHRydWU7XG4gICAgdmFyIHJlcyA9IHRoaXMucHJvcGVydHkgPyB0aGlzLnByb3BlcnR5LnJlYWRPbmx5IDogZmFsc2U7XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zICYmICEhdGhpcy5wcm9wZXJ0eSAmJiAhIXRoaXMub2JqZWN0KSB7XG4gICAgICByZXMgPSB0aGlzLm9wdGlvbnMub25Jc0VkaXRvclJlYWRPbmx5Q2FsbGJhY2sodGhpcy5vYmplY3QsIHRoaXMsIHJlcyk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRpdGxlVmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBpc0luUHJvcGVydHlHcmlkVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGdldCBpc0luUHJvcGVydHlHcmlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5Qcm9wZXJ0eUdyaWRWYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzSW5Qcm9wZXJ0eUdyaWQodmFsOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbCA9PT0gdGhpcy5pc0luUHJvcGVydHlHcmlkVmFsdWUpIHJldHVybjtcbiAgICB0aGlzLmlzSW5Qcm9wZXJ0eUdyaWRWYWx1ZSA9IHZhbDtcbiAgICB0aGlzLnNldFRpdGxlQW5kRGlzcGxheU5hbWUoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzRGlzcGxheU5hbWVWaXNpYmxlKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNob3dEaXNwbGF5TmFtZSAmJlxuICAgICAgIXRoaXMuaXNJblByb3BlcnR5R3JpZCAmJlxuICAgICAgIXRoaXMuaXNTaG93aW5nTW9kYWwoKSAmJlxuICAgICAgIXRoaXMuaXNJbnBsYWNlUHJvcGVydHkgJiZcbiAgICAgIHRoaXMuZGlzcGxheU5hbWUgIT09IFwiLlwiICYmXG4gICAgICAhIXRoaXMuZGlzcGxheU5hbWVcbiAgICApO1xuICB9XG4gIHByb3RlY3RlZCBpc1Nob3dpbmdNb2RhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldCBkaXNwbGF5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlOYW1lVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBzaG93RGlzcGxheU5hbWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0Rpc3BsYXlOYW1lVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBzaG93RGlzcGxheU5hbWUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93RGlzcGxheU5hbWVWYWx1ZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHNob3dEaXNwbGF5TmFtZU9uVG9wKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGlzcGxheU5hbWVWaXNpYmxlICYmIHRoaXMuY2FuU2hvd0Rpc3BsYXlOYW1lT25Ub3A7XG4gIH1cbiAgcHVibGljIGdldCBjYW5TaG93RGlzcGxheU5hbWVPblRvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UHJvcGVydHlIZWxwTG9jTmFtZSgpOiBzdHJpbmcge1xuICAgIHZhciBjbGFzc05hbWVzID0gdGhpcy5nZXRIZWxwUHJvcGVydHlDbGFzc05hbWVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbGFzc05hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgbG9jTmFtZSA9IFwicGVoZWxwLlwiICsgY2xhc3NOYW1lc1tpXSArIFwiX1wiICsgdGhpcy5wcm9wZXJ0eS5uYW1lO1xuICAgICAgaWYgKHRoaXMuaGFzTG9jU3RyaW5nKGxvY05hbWUpKSByZXR1cm4gbG9jTmFtZTtcbiAgICB9XG4gICAgbGV0IGxvY05hbWUgPSBcInBlaGVscC5cIiArIHRoaXMucHJvcGVydHkubmFtZTtcbiAgICByZXR1cm4gdGhpcy5oYXNMb2NTdHJpbmcobG9jTmFtZSkgPyBsb2NOYW1lIDogXCJcIjtcbiAgfVxuICBwcml2YXRlIGdldEhlbHBQcm9wZXJ0eUNsYXNzTmFtZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLm9iamVjdCkgcmV0dXJuIFtdO1xuICAgIHZhciB0eXBlID0gdGhpcy5vYmplY3QuZ2V0VHlwZSgpO1xuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgdHlwZUluZm8gPSBTdXJ2ZXkuU2VyaWFsaXplci5maW5kQ2xhc3ModHlwZSk7XG4gICAgd2hpbGUgKCEhdHlwZUluZm8pIHtcbiAgICAgIHJlcy5wdXNoKHR5cGVJbmZvLm5hbWUpO1xuICAgICAgaWYgKHR5cGVJbmZvLmZpbmQodGhpcy5wcm9wZXJ0eS5uYW1lKSkgcmV0dXJuIHJlcztcbiAgICAgIHR5cGVJbmZvID0gISF0eXBlSW5mby5wYXJlbnROYW1lXG4gICAgICAgID8gU3VydmV5LlNlcmlhbGl6ZXIuZmluZENsYXNzKHR5cGVJbmZvLnBhcmVudE5hbWUpXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwdWJsaWMgZ2V0IHByb3BlcnR5SGVscFRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2hvd0hlbHBUZXh0KSByZXR1cm4gXCJcIjtcbiAgICB2YXIgbG9jTmFtZSA9IHRoaXMuZ2V0UHJvcGVydHlIZWxwTG9jTmFtZSgpO1xuICAgIHJldHVybiB0aGlzLmhhc0xvY1N0cmluZyhsb2NOYW1lKSA/IHRoaXMuZ2V0TG9jU3RyaW5nKGxvY05hbWUpIDogXCJcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGNvbnRlbnRUZW1wbGF0ZU5hbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlZGl0b3JUeXBlID0gdGhpcy5pc01vZGFsID8gXCJtb2RhbC1jb250ZW50XCIgOiB0aGlzLmVkaXRvclR5cGVUZW1wbGF0ZTtcbiAgICByZXR1cm4gXCJzdmQtcHJvcGVydHktZWRpdG9yLVwiICsgZWRpdG9yVHlwZTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IGlzTW9kYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBnZXQgb3JpZ2luYWxPYmplY3QoKTogYW55IHtcbiAgICByZXR1cm4gRWRpdGFibGVPYmplY3QuZ2V0T3JpZ2luYWxPYmplY3QodGhpcy5vYmplY3QpO1xuICB9XG4gIHB1YmxpYyBnZXQgb2JqZWN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0VmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBvYmplY3QodmFsdWU6IGFueSkge1xuICAgIHRoaXMuc2V0T2JqZWN0Q29yZSh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCBwYXJlbnRMaXN0KCk6IEFycmF5PFN1cnZleS5CYXNlPiB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50TGlzdFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgcGFyZW50TGlzdCh2YWw6IEFycmF5PFN1cnZleS5CYXNlPikge1xuICAgIHRoaXMucGFyZW50TGlzdFZhbHVlID0gdmFsO1xuICB9XG4gIHB1YmxpYyBnZXQgcGFyZW50UmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50UmVhZE9ubHlWYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHBhcmVudFJlYWRPbmx5KHZhbDogYm9vbGVhbikge1xuICAgIGlmICh2YWwgPT0gdGhpcy5wYXJlbnRSZWFkT25seSkgcmV0dXJuO1xuICAgIHRoaXMucGFyZW50UmVhZE9ubHlWYWx1ZSA9IHZhbDtcbiAgICB0aGlzLnJlYWRPbmx5KHRoaXMuZ2V0UmVhZE9ubHkoKSk7XG4gIH1cbiAgcHVibGljIGdldCBvcmlnaW5hbFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3JpZ2luYWxWYWx1ZSgpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRPcmlnaW5hbFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuICEhdGhpcy5vYmplY3RWYWx1ZSA/IHRoaXMub2JqZWN0VmFsdWVbdGhpcy5wcm9wZXJ0eS5uYW1lXSA6IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIHNldE9iamVjdENvcmUodmFsdWU6IGFueSkge1xuICAgIHRoaXMub2JqZWN0VmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAodHlwZW9mIHZhbHVlLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHZhbHVlLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFxuICAgICAgICB0aGlzLnByb3BlcnR5Lm5hbWUsXG4gICAgICAgICgpID0+IHRoaXMudXBkYXRlVmFsdWUoKSxcbiAgICAgICAgdGhpcy5wcm9wZXJ0eS5uYW1lXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnNldElzUmVxdWlyZWQoKTtcbiAgICB0aGlzLnNldFRpdGxlQW5kRGlzcGxheU5hbWUoKTtcbiAgICB0aGlzLnNldE9iamVjdCh0aGlzLm9iamVjdCk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5wcm9wZXJ0eSkge1xuICAgICAgdGhpcy5vcHRpb25zLm9uUHJvcGVydHlFZGl0b3JPYmplY3RTZXRDYWxsYmFjayhcbiAgICAgICAgdGhpcy5wcm9wZXJ0eS5uYW1lLFxuICAgICAgICB0aGlzLm9iamVjdCxcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yZWFkT25seSh0aGlzLmdldFJlYWRPbmx5KCkpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlVGV4dCh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcHVibGljIGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMua29IYXNFcnJvcih0aGlzLmNoZWNrRm9yRXJyb3JzKCkpO1xuICAgIHJldHVybiB0aGlzLmtvSGFzRXJyb3IoKTtcbiAgfVxuICBwdWJsaWMgZ2V0TG9jU3RyaW5nKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKG5hbWUpO1xuICB9XG4gIHB1YmxpYyBoYXNMb2NTdHJpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5oYXNTdHJpbmcobmFtZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCBpc0N1cnJlbnRWYWx1ZUVtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmtvVmFsdWUoKSk7XG4gIH1cbiAgcHJvdGVjdGVkIGNoZWNrRm9yRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgIHZhciBlcnJvclRleHQgPSBcIlwiO1xuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQgfHwgdGhpcy5jaGVja0Zvckl0ZW1WYWx1ZSgpKSB7XG4gICAgICB2YXIgZXIgPSB0aGlzLmlzVmFsdWVFbXB0eSh0cmltVmFsdWUodGhpcy5rb1ZhbHVlKCkpKTtcbiAgICAgIGlmIChlcikge1xuICAgICAgICBlcnJvclRleHQgPSB0aGlzLmdldExvY1N0cmluZyhcInBlLnByb3BlcnR5SXNFbXB0eVwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuY2hlY2tFcnJvck9uVW5pcXVlKCkpIHtcbiAgICAgIGVycm9yVGV4dCA9IHRoaXMuZ2V0TG9jU3RyaW5nKFwicGUucHJvcGVydHlJc05vVW5pcXVlXCIpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAhZXJyb3JUZXh0ICYmXG4gICAgICB0aGlzLnByb3BlcnR5ICYmXG4gICAgICB0aGlzLm9wdGlvbnMgJiZcbiAgICAgIHRoaXMub3B0aW9ucy5vbkdldEVycm9yVGV4dE9uVmFsaWRhdGlvbkNhbGxiYWNrXG4gICAgKSB7XG4gICAgICBlcnJvclRleHQgPSB0aGlzLm9wdGlvbnMub25HZXRFcnJvclRleHRPblZhbGlkYXRpb25DYWxsYmFjayhcbiAgICAgICAgdGhpcy5wcm9wZXJ0eS5uYW1lLFxuICAgICAgICB0aGlzLm9iamVjdCxcbiAgICAgICAgdGhpcy5rb1ZhbHVlKClcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMua29FcnJvclRleHQoZXJyb3JUZXh0KTtcbiAgICByZXR1cm4gZXJyb3JUZXh0ICE9PSBcIlwiO1xuICB9XG4gIHByaXZhdGUgY2hlY2tFcnJvck9uVW5pcXVlKCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLnByb3BlcnR5IHx8XG4gICAgICAhdGhpcy5wcm9wZXJ0eS5pc1VuaXF1ZSB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkodGhpcy5wYXJlbnRMaXN0KVxuICAgIClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCB2YWwgPSB0aGlzLmtvVmFsdWUoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFyZW50TGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMucGFyZW50TGlzdFtpXSA9PT0gdGhpcy5vYmplY3QpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgcHJvcFZhbCA9IHRoaXMucGFyZW50TGlzdFtpXVt0aGlzLnByb3BlcnR5Lm5hbWVdO1xuICAgICAgaWYodHlwZW9mIHByb3BWYWwgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIlxuICAgICAgJiYgcHJvcFZhbC50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSB2YWwudG9Mb2NhbGVMb3dlckNhc2UoKSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAocHJvcFZhbCA9PSB0aGlzLmtvVmFsdWUoKSkgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwcml2YXRlIGNoZWNrRm9ySXRlbVZhbHVlKCkge1xuICAgIC8vVE9ETyBQcm9ibGVtIGlzIGluIDg4MmNhM2FjIGNvbW1pdC4gSXRlbVZhbHVlIHdpdGhvdXQgdmFsdWUgc2hvdWxkIGJlIGludmFsaWQuIE5lZWQgdG8gYmV0dGVyIGZpeCBmb3IgdGhlIHByb2JsZW0uXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucHJvcGVydHkgJiZcbiAgICAgIHRoaXMucHJvcGVydHkubmFtZSA9PT0gXCJ2YWx1ZVwiICYmXG4gICAgICB0aGlzLm9iamVjdFZhbHVlICYmXG4gICAgICB0eXBlb2YgdGhpcy5vYmplY3RWYWx1ZS5nZXRUeXBlID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgIHRoaXMub2JqZWN0VmFsdWUuZ2V0VHlwZSgpID09PSBcIml0ZW12YWx1ZVwiXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZXF1aXJlZFZhbHVlO1xuICB9XG4gIHByb3RlY3RlZCBzZXRJc1JlcXVpcmVkKCkge1xuICAgIHRoaXMuaXNSZXF1aXJlZFZhbHVlID0gISF0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5pc1JlcXVpcmVkIDogZmFsc2U7XG4gIH1cbiAgcHJvdGVjdGVkIHNldFRpdGxlQW5kRGlzcGxheU5hbWUoKSB7XG4gICAgdGhpcy5kaXNwbGF5TmFtZVZhbHVlID0gdGhpcy5wcm9wZXJ0eSA/IHRoaXMucHJvcGVydHkubmFtZSA6IFwiXCI7XG4gICAgdGhpcy50aXRsZVZhbHVlID0gXCJcIjtcbiAgICBpZiAoIXRoaXMucHJvcGVydHkpIHJldHVybjtcbiAgICB2YXIgbG9jTmFtZSA9IHRoaXMucHJvcGVydHkubmFtZTtcbiAgICB0aGlzLmRpc3BsYXlOYW1lVmFsdWUgPSB0aGlzLmdldFByb3BlcnR5RGlzcGxheU5hbWUodGhpcy5wcm9wZXJ0eSk7XG4gICAgdmFyIHRpdGxlID0gZWRpdG9yTG9jYWxpemF0aW9uLmdldFByb3BlcnR5VGl0bGUobG9jTmFtZSk7XG4gICAgdGhpcy50aXRsZVZhbHVlID0gdGl0bGU7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFByb3BlcnR5RGlzcGxheU5hbWUocHJvcDogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IHN0cmluZyB7XG4gICAgaWYgKCEhcHJvcC5kaXNwbGF5TmFtZSkgcmV0dXJuIHByb3AuZGlzcGxheU5hbWU7XG4gICAgdmFyIGxvY05hbWUgPSBwcm9wLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuaXNJblByb3BlcnR5R3JpZFZhbHVlXG4gICAgICA/IGVkaXRvckxvY2FsaXphdGlvbi5nZXRQcm9wZXJ0eU5hbWUobG9jTmFtZSlcbiAgICAgIDogZWRpdG9yTG9jYWxpemF0aW9uLmdldFByb3BlcnR5TmFtZUluRWRpdG9yKGxvY05hbWUpO1xuICB9XG4gIHB1YmxpYyBhcHBseSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5oYXNFcnJvcigpKSByZXR1cm4gZmFsc2U7XG4gICAgdGhpcy5wZXJmb3JtQXBwbHkoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgcGVyZm9ybUFwcGx5KCkgeyB9XG4gIHB1YmxpYyBnZXQgbG9jYWxlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMub25HZXRMb2NhbGUpIHJldHVybiB0aGlzLm9uR2V0TG9jYWxlKCk7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbiAgcHVibGljIGdldExvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbGU7XG4gIH1cbiAgcHVibGljIGdldE1hcmtkb3duSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG4gIHB1YmxpYyBnZXRQcm9jZXNzZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbiAgcHVibGljIGdldFJlbmRlcmVyKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBwdWJsaWMgZ2V0UmVuZGVyZXJDb250ZXh0KGxvY1N0cjogU3VydmV5LkxvY2FsaXphYmxlU3RyaW5nKSB7XG4gICAgcmV0dXJuIGxvY1N0cjtcbiAgfVxuICBwdWJsaWMgZ2V0IG9wdGlvbnMoKTogSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNWYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9uT3B0aW9uc0NoYW5nZWQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25PcHRpb25zQ2hhbmdlZCgpIHsgfVxuICBwdWJsaWMgc2V0T2JqZWN0KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XG4gICAgICB2YXIgZWRpdG9yT3B0aW9ucyA9IHRoaXMuY3JlYXRlRWRpdG9yT3B0aW9ucygpO1xuICAgICAgdGhpcy5vcHRpb25zLm9uU2V0UHJvcGVydHlFZGl0b3JPcHRpb25zQ2FsbGJhY2soXG4gICAgICAgIHRoaXMuZWRpdGFibGVQcm9wZXJ0eU5hbWUsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBlZGl0b3JPcHRpb25zXG4gICAgICApO1xuICAgICAgdGhpcy5vblNldEVkaXRvck9wdGlvbnMoZWRpdG9yT3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVFZGl0b3JPcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIHByb3RlY3RlZCBvblNldEVkaXRvck9wdGlvbnMoZWRpdG9yT3B0aW9uczogYW55KSB7IH1cbiAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2VkKCkgeyB9XG4gIHByb3RlY3RlZCBnZXRDb3JyZWN0ZWRWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICBpZiAoIXRoaXMucHJvcGVydHkpIHJldHVybiB2YWx1ZTtcbiAgICBpZiAoIXRoaXMuaXNWYWx1ZUVtcHR5KHRoaXMucHJvcGVydHkubWluVmFsdWUpKSB7XG4gICAgICBpZiAodmFsdWUgPCB0aGlzLnByb3BlcnR5Lm1pblZhbHVlKSByZXR1cm4gdGhpcy5wcm9wZXJ0eS5taW5WYWx1ZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLnByb3BlcnR5Lm1heFZhbHVlKSkge1xuICAgICAgaWYgKHZhbHVlID4gdGhpcy5wcm9wZXJ0eS5tYXhWYWx1ZSkgcmV0dXJuIHRoaXMucHJvcGVydHkubWF4VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgYmVnaW5WYWx1ZVVwZGF0aW5nKCkge1xuICAgIHRoaXMudmFsdWVVcGRhdGluZ0NvdW50ZXIrKztcbiAgfVxuICBwcm90ZWN0ZWQgZW5kVmFsdWVVcGRhdGluZygpIHtcbiAgICBpZiAodGhpcy52YWx1ZVVwZGF0aW5nQ291bnRlciA+IDApIHtcbiAgICAgIHRoaXMudmFsdWVVcGRhdGluZ0NvdW50ZXItLTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHVwZGF0ZVZhbHVlKCkge1xuICAgIHRoaXMuYmVnaW5WYWx1ZVVwZGF0aW5nKCk7XG4gICAgdGhpcy5rb1ZhbHVlKHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgdGhpcy5rb0Vycm9yVGV4dChcIlwiKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkKCk7XG4gICAgaWYgKHRoaXMub25WYWx1ZVVwZGF0ZWQpIHRoaXMub25WYWx1ZVVwZGF0ZWQodGhpcy5rb1ZhbHVlKCkpO1xuICAgIHRoaXMuZW5kVmFsdWVVcGRhdGluZygpO1xuICB9XG4gIHB1YmxpYyB1cGRhdGVQcm9wZXJ0eVZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm9iamVjdFt0aGlzLnByb3BlcnR5Lm5hbWVdID0gbmV3VmFsdWU7XG4gICAgaWYgKG5ld1ZhbHVlICE9IHRoaXMub2JqZWN0W3RoaXMucHJvcGVydHkubmFtZV0pIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdldFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkgJiYgdGhpcy5vYmplY3RcbiAgICAgID8gdGhpcy5wcm9wZXJ0eS5nZXRQcm9wZXJ0eVZhbHVlKHRoaXMub2JqZWN0KVxuICAgICAgOiBudWxsO1xuICB9XG4gIHByaXZhdGUgaXNrb1ZhbHVlQ2hhbmdpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBvbmtvVmFsdWVDaGFuZ2VkKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy52YWx1ZVVwZGF0aW5nQ291bnRlciA+IDAgfHwgdGhpcy5pc2tvVmFsdWVDaGFuZ2luZykgcmV0dXJuO1xuICAgIHRoaXMuaXNrb1ZhbHVlQ2hhbmdpbmcgPSB0cnVlO1xuICAgIHZhciBjb3BpZWRWYWx1ZSA9IFN1cnZleS5IZWxwZXJzLmdldFVuYmluZFZhbHVlKG5ld1ZhbHVlKTtcbiAgICBuZXdWYWx1ZSA9IHRoaXMuZ2V0Q29ycmVjdGVkVmFsdWUobmV3VmFsdWUpO1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5wcm9wZXJ0eSAmJiB0aGlzLm9iamVjdCkge1xuICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogdGhpcy5wcm9wZXJ0eS5uYW1lLFxuICAgICAgICBvYmo6IHRoaXMub2JqZWN0LFxuICAgICAgICB2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLFxuICAgICAgICBuZXdWYWx1ZTogbmV3VmFsdWUsXG4gICAgICAgIGRvVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICB9O1xuICAgICAgdGhpcy5vcHRpb25zLm9uVmFsdWVDaGFuZ2luZ0NhbGxiYWNrKG9wdGlvbnMpO1xuICAgICAgbmV3VmFsdWUgPSBvcHRpb25zLm5ld1ZhbHVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBuZXdWYWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgbmV3VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIVN1cnZleS5IZWxwZXJzLmlzVHdvVmFsdWVFcXVhbHMobmV3VmFsdWUsIGNvcGllZFZhbHVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UpXG4gICAgKSB7XG4gICAgICB0aGlzLmtvVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkKCk7XG4gICAgdGhpcy5pc2tvVmFsdWVDaGFuZ2luZyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmhhc0Vycm9yKCkpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnByb3BlcnR5ICYmIHRoaXMub2JqZWN0ICYmIHRoaXMuZ2V0VmFsdWUoKSA9PSBuZXdWYWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMuZG9PbkNoYW5nZWQobmV3VmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBkb09uQ2hhbmdlZChuZXdWYWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMub25DaGFuZ2VkICE9IG51bGwpIHRoaXMub25DaGFuZ2VkKG5ld1ZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgaXNWYWx1ZUVtcHR5KHZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTdXJ2ZXkuSGVscGVycy5pc1ZhbHVlRW1wdHkodmFsKTtcbiAgfVxuICBwdWJsaWMgdXBkYXRlRHluYW1pY1Byb3BlcnRpZXMoKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMucHJvcGVydHkgfHxcbiAgICAgICF0aGlzLm9iamVjdCB8fFxuICAgICAgIXRoaXMucHJvcGVydHlbXCJvblByb3BlcnR5RWRpdG9yVXBkYXRlXCJdXG4gICAgKVxuICAgICAgcmV0dXJuO1xuICAgIHRoaXMucHJvcGVydHlbXCJvblByb3BlcnR5RWRpdG9yVXBkYXRlXCJdKHRoaXMub2JqZWN0LCB0aGlzKTtcbiAgfVxuICBwdWJsaWMga2V5RG93bkhhbmRsZXIocHJvcGVydHksIGV2ZW50KSB7XG4gICAgdmFyIHN1cnZleUVkaXRvcjogSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMgPSBwcm9wZXJ0eS5lZGl0b3Iub3B0aW9ucztcbiAgICBpZiAoISFzdXJ2ZXlFZGl0b3IpIHtcbiAgICAgIHN1cnZleUVkaXRvci5vblByb3BlcnR5RWRpdG9yS2V5RG93bkNhbGxiYWNrKFxuICAgICAgICBwcm9wZXJ0eS5wcm9wZXJ0eS5uYW1lLFxuICAgICAgICBwcm9wZXJ0eS5vYmosXG4gICAgICAgIHByb3BlcnR5LmVkaXRvcixcbiAgICAgICAgZXZlbnRcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByaXZhdGUgZWxlbWVudCA9IHVuZGVmaW5lZDtcbiAga29BZnRlclJlbmRlciA9IChjb21wb25lbnRJbmZvOiBhbnkpID0+IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IGdldE5vZGVzRnJvbUtvQ29tcG9uZW50SW5mbyhjb21wb25lbnRJbmZvKTtcbiAgICB0aGlzLmVsZW1lbnQgPSBnZXRGaXJzdE5vblRleHRFbGVtZW50KGVsZW1lbnRzKTtcbiAgICBpZiAoISF0aGlzLmVsZW1lbnQpIHtcbiAgICAgIGtvLnV0aWxzLmRvbU5vZGVEaXNwb3NhbC5hZGREaXNwb3NlQ2FsbGJhY2sodGhpcy5lbGVtZW50LCAoKSA9PiB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgZm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudCAmJiB0eXBlb2YgdGhpcy5lbGVtZW50LmZvY3VzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIC8vIHZhciBmb2N1c2FibGUgPSB0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknKTtcbiAgICAgIHRoaXMuZWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb25JbnB1dEtleWRvd24obW9kZWwsIGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LmtleUNvZGUgPT0gOTAgfHwgZXZlbnQua2V5Q29kZSA9PSA4OSkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUN1c3RvbUVkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5Q3VzdG9tRWRpdG9yXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBFZGl0YWJsZU9iamVjdCB9IGZyb20gXCIuL2VkaXRhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBzZXR0aW5ncyB9IGZyb20gXCIuLi9zZXR0aW5nc1wiO1xuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5IHtcbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0RWRpdG9yOiBzdHJpbmcgPSBcInN0cmluZ1wiO1xuICBwdWJsaWMgc3RhdGljIGdldCBvcGVyYXRvcnMoKTogYW55IHtcbiAgICByZXR1cm4gc2V0dGluZ3Mub3BlcmF0b3JzO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgc2V0IG9wZXJhdG9ycyh2YWx1ZTogYW55KSB7XG4gICAgc2V0dGluZ3Mub3BlcmF0b3JzID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRvckxpc3QgPSB7fTtcbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRvckJ5Q2xhc3NMaXN0ID0ge307XG4gIHByaXZhdGUgc3RhdGljIHdpZGdldFJlZ2lzdGVyTGlzdCA9IHt9O1xuICBwcml2YXRlIHN0YXRpYyBjZWxsVHlwZXMgPSB7fTtcbiAgcHVibGljIHN0YXRpYyBnZXRPcGVyYXRvcnMoKTogQXJyYXk8YW55PiB7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHZhciBvcHMgPSBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3Rvcnkub3BlcmF0b3JzO1xuICAgIGZvciAodmFyIG5hbWUgaW4gb3BzKSB7XG4gICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgIHRleHQ6IGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJvcC5cIiArIG5hbWUpLFxuICAgICAgICB0eXBlczogb3BzW25hbWVdLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHVibGljIHN0YXRpYyByZWdpc3RlclR5cGVGb3JDZWxsRWRpdGluZyhcbiAgICB0eXBlTmFtZTogc3RyaW5nLFxuICAgIGNlbGxUeXBlTmFtZTogc3RyaW5nXG4gICkge1xuICAgIFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5jZWxsVHlwZXNbdHlwZU5hbWVdID0gY2VsbFR5cGVOYW1lO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgcmVnaXN0ZXJFZGl0b3IoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNyZWF0b3I6IChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkgPT4gU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlLFxuICAgIGVkaXRhYmxlQ2xhc3NOYW1lOiBzdHJpbmcgPSBudWxsXG4gICkge1xuICAgIFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5jcmVhdG9yTGlzdFtuYW1lXSA9IGNyZWF0b3I7XG4gICAgdmFyIGNsYXNzTmFtZSA9IGVkaXRhYmxlQ2xhc3NOYW1lID8gZWRpdGFibGVDbGFzc05hbWUgOiBuYW1lO1xuICAgIFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5jcmVhdG9yQnlDbGFzc0xpc3RbY2xhc3NOYW1lXSA9IGNyZWF0b3I7XG4gIH1cbiAgcHVibGljIHN0YXRpYyByZWdpc3RlckN1c3RvbUVkaXRvcihuYW1lOiBzdHJpbmcsIHdpZGdldEpTT046IGFueSkge1xuICAgIFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS53aWRnZXRSZWdpc3Rlckxpc3RbbmFtZV0gPSB3aWRnZXRKU09OO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgdW5yZWdpc3RlckN1c3RvbUVkaXRvcihuYW1lOiBzdHJpbmcpIHtcbiAgICBkZWxldGUgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LndpZGdldFJlZ2lzdGVyTGlzdFtuYW1lXTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUVkaXRvcihcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBpc0NlbGxFZGl0b3I6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICAgIHZhciBlZGl0b3JUeXBlID0gcHJvcGVydHkudHlwZTtcbiAgICBpZiAoaXNDZWxsRWRpdG9yICYmICEhU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LmNlbGxUeXBlc1tlZGl0b3JUeXBlXSkge1xuICAgICAgZWRpdG9yVHlwZSA9IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5jZWxsVHlwZXNbZWRpdG9yVHlwZV07XG4gICAgfVxuICAgIGlmIChcbiAgICAgIFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5pc0Ryb3Bkb3duRWRpdG9yKHByb3BlcnR5KSAmJlxuICAgICAgKCFlZGl0b3JUeXBlIHx8IGVkaXRvclR5cGUgPT0gU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LmRlZmF1bHRFZGl0b3IpXG4gICAgKSB7XG4gICAgICBlZGl0b3JUeXBlID0gXCJkcm9wZG93blwiO1xuICAgIH1cbiAgICB2YXIgcHJvcGVydHlFZGl0b3IgPSBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkuY3JlYXRlQ3VzdG9tRWRpdG9yKFxuICAgICAgZWRpdG9yVHlwZSxcbiAgICAgIHByb3BlcnR5XG4gICAgKTtcbiAgICBpZiAoIXByb3BlcnR5RWRpdG9yKSB7XG4gICAgICB2YXIgY3JlYXRvciA9IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5jcmVhdG9yTGlzdFtlZGl0b3JUeXBlXTtcbiAgICAgIGlmIChjcmVhdG9yKSBwcm9wZXJ0eUVkaXRvciA9IGNyZWF0b3IocHJvcGVydHkpO1xuICAgIH1cbiAgICBpZiAoIXByb3BlcnR5RWRpdG9yKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHByb3BlcnR5LmlzQXJyYXkgJiZcbiAgICAgICAgU3VydmV5LlNlcmlhbGl6ZXIuaXNEZXNjZW5kYW50T2YocHJvcGVydHkuY2xhc3NOYW1lLCBcIml0ZW12YWx1ZVwiKVxuICAgICAgKSB7XG4gICAgICAgIHZhciBjcmVhdG9yID0gU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LmNyZWF0b3JMaXN0W1wiaXRlbXZhbHVlW11cIl07XG4gICAgICAgIGlmIChjcmVhdG9yKSBwcm9wZXJ0eUVkaXRvciA9IGNyZWF0b3IocHJvcGVydHkpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXByb3BlcnR5RWRpdG9yKSB7XG4gICAgICBjcmVhdG9yID0gU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LmZpbmRQYXJlbnRDcmVhdG9yKGVkaXRvclR5cGUpO1xuICAgICAgcHJvcGVydHlFZGl0b3IgPSBjcmVhdG9yKHByb3BlcnR5KTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3BlcnR5RWRpdG9yO1xuICB9XG4gIHByaXZhdGUgc3RhdGljIGlzRHJvcGRvd25FZGl0b3IoXG4gICAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHlcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKHByb3BlcnR5W1wiaGFzQ2hvaWNlc1wiXSAhPT0gdW5kZWZpbmVkKVxuICAgICAgcmV0dXJuIHByb3BlcnR5W1wiaGFzQ2hvaWNlc1wiXSA9PT0gdHJ1ZTtcbiAgICByZXR1cm4gcHJvcGVydHkuY2hvaWNlcyAhPSBudWxsO1xuICB9XG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUN1c3RvbUVkaXRvcihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHlcbiAgKSB7XG4gICAgdmFyIHdpZGdldEpTT04gPSBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3Rvcnkud2lkZ2V0UmVnaXN0ZXJMaXN0W25hbWVdO1xuICAgIGlmICghd2lkZ2V0SlNPTikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eUN1c3RvbUVkaXRvcihwcm9wZXJ0eSwgd2lkZ2V0SlNPTik7XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgZmluZFBhcmVudENyZWF0b3IoXG4gICAgbmFtZTogc3RyaW5nXG4gICk6IChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkgPT4gU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICB2YXIganNvbkNsYXNzID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZENsYXNzKG5hbWUpO1xuICAgIHdoaWxlIChqc29uQ2xhc3MgJiYganNvbkNsYXNzLnBhcmVudE5hbWUpIHtcbiAgICAgIHZhciBjcmVhdG9yID1cbiAgICAgICAgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LmNyZWF0b3JCeUNsYXNzTGlzdFtqc29uQ2xhc3MucGFyZW50TmFtZV07XG4gICAgICBpZiAoY3JlYXRvcikgcmV0dXJuIGNyZWF0b3I7XG4gICAgICBqc29uQ2xhc3MgPSBTdXJ2ZXkuU2VyaWFsaXplci5maW5kQ2xhc3MoanNvbkNsYXNzLnBhcmVudE5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LmNyZWF0b3JMaXN0W1xuICAgICAgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LmRlZmF1bHRFZGl0b3JcbiAgICBdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlTdHJpbmdQcm9wZXJ0eUVkaXRvciBleHRlbmRzIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gIHB1YmxpYyBrb0lucHV0VHlwZTogYW55ID0ga28ub2JzZXJ2YWJsZShcInRleHRcIik7XG4gIHByaXZhdGUgbGlzdE5hbWVWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHN0YXRpYyBkYXRhTGlzdE51bWJlciA9IDA7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICAgIHRoaXMubGlzdE5hbWVWYWx1ZSA9IHRoaXMuZ2V0TGlzdE5hbWUoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlucHV0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmtvSW5wdXRUeXBlKCk7XG4gIH1cbiAgcHVibGljIHNldCBpbnB1dFR5cGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmtvSW5wdXRUeXBlKHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwic3RyaW5nXCI7XG4gIH1cbiAgcHVibGljIGdldCBsaXN0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxpc3ROYW1lVmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBnZXRMaXN0TmFtZSgpOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgICF0aGlzLnByb3BlcnR5IHx8XG4gICAgICAhQXJyYXkuaXNBcnJheSh0aGlzLnByb3BlcnR5LmRhdGFMaXN0KSB8fFxuICAgICAgdGhpcy5wcm9wZXJ0eS5kYXRhTGlzdC5sZW5ndGggPT0gMFxuICAgIClcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIHJldHVybiAoXG4gICAgICBcInByb3BlcnR5RWRpdG9yRGF0YUxpc3RcIiArXG4gICAgICAoU3VydmV5U3RyaW5nUHJvcGVydHlFZGl0b3IuZGF0YUxpc3ROdW1iZXIrKykudG9TdHJpbmcoKVxuICAgICk7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlEcm9wZG93blByb3BlcnR5RWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcHVibGljIGtvQ2hvaWNlczogYW55O1xuICBwdWJsaWMga29IYXNGb2N1czogYW55O1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgICB0aGlzLmtvQ2hvaWNlcyA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG4gICAgdGhpcy5rb0hhc0ZvY3VzID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMua29IYXNGb2N1cy5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICAvL1RPRE8gaXNEeW5hbWljQ2hvaWNlcyBvYnNvbGV0ZSwgdXNlIGRlcGVuZHNPbiBhdHRyaWJ1dGVcbiAgICAgIGlmIChuZXdWYWx1ZSAmJiBzZWxmLnByb3BlcnR5W1wiaXNEeW5hbWljQ2hvaWNlc1wiXSkge1xuICAgICAgICBzZWxmLnVwZGF0ZUNob2ljZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJkcm9wZG93blwiO1xuICB9XG4gIHB1YmxpYyBnZXRWYWx1ZVRleHQodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcGVydHkubmFtZSA9PT0gXCJsb2NhbGVcIikge1xuICAgICAgbGV0IHRleHQgPSBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0TG9jYWxlTmFtZSh2YWx1ZSk7XG4gICAgICBpZiAodGV4dCkgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BlcnR5Lm5hbWUgPT09IFwiY2VsbFR5cGVcIikge1xuICAgICAgbGV0IHRleHQgPSBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicXQuXCIgKyB2YWx1ZSk7XG4gICAgICBpZiAodGV4dCkgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgc2V0T2JqZWN0KHZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci5zZXRPYmplY3QodmFsdWUpO1xuICAgIHRoaXMuYmVnaW5WYWx1ZVVwZGF0aW5nKCk7XG4gICAgaWYgKHRoaXMua29DaG9pY2VzKCkubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMudXBkYXRlQ2hvaWNlcygpO1xuICAgIH1cbiAgICB0aGlzLmVuZFZhbHVlVXBkYXRpbmcoKTtcbiAgfVxuICBwdWJsaWMgdXBkYXRlRHluYW1pY1Byb3BlcnRpZXMoKSB7XG4gICAgc3VwZXIudXBkYXRlRHluYW1pY1Byb3BlcnRpZXMoKTtcbiAgICB0aGlzLnVwZGF0ZUNob2ljZXMoKTtcbiAgfVxuICBwdWJsaWMgdXBkYXRlQ2hvaWNlcygpIHtcbiAgICB2YXIgY2hvaWNlcyA9IHRoaXMuZ2V0UHJvcGVydHlDaG9pY2VzKCk7XG4gICAgdGhpcy5zZXRDaG9pY2VzKGNob2ljZXMpO1xuICB9XG4gIHB1YmxpYyBnZXQgb3B0aW9uc0NhcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHByaXZhdGUgc2V0Q2hvaWNlcyhjaG9pY2VzOiBBcnJheTxTdXJ2ZXkuSXRlbVZhbHVlPikge1xuICAgIGNob2ljZXMgPSB0aGlzLm1ha2VDaG9pY2VzTG9jYWxpemFibGUoY2hvaWNlcyk7XG4gICAgaWYgKCEhY2hvaWNlcyAmJiBBcnJheS5pc0FycmF5KGNob2ljZXMpKSB7XG4gICAgICB0aGlzLmtvQ2hvaWNlcyhjaG9pY2VzKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBtYWtlQ2hvaWNlc0xvY2FsaXphYmxlKGNob2ljZXM6IEFycmF5PFN1cnZleS5JdGVtVmFsdWU+KSB7XG4gICAgaWYgKCFjaG9pY2VzKSByZXR1cm4gY2hvaWNlcztcbiAgICB2YXIgcmVzID0gbmV3IEFycmF5PFN1cnZleS5JdGVtVmFsdWU+KCk7XG4gICAgU3VydmV5Lkl0ZW1WYWx1ZS5zZXREYXRhKHJlcywgY2hvaWNlcyk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghIXJlc1tpXS50ZXh0ICYmIHJlc1tpXS50ZXh0ICE9PSByZXNbaV0udmFsdWUpIGNvbnRpbnVlO1xuICAgICAgdmFyIHZhbHVlID0gcmVzW2ldLnZhbHVlO1xuICAgICAgdmFyIHRleHQgPSB0aGlzLmdldFZhbHVlVGV4dCh2YWx1ZSk7XG4gICAgICBpZiAodGV4dCAhPSB2YWx1ZSkge1xuICAgICAgICByZXNbaV0udGV4dCA9IHRleHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFByb3BlcnR5Q2hvaWNlcygpOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoIXRoaXMucHJvcGVydHkpIHJldHVybiBbXTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkuZ2V0Q2hvaWNlcyh0aGlzLm9iamVjdCwgZnVuY3Rpb24gKGNob2ljZXM6IGFueSkge1xuICAgICAgc2VsZi5zZXRDaG9pY2VzKGNob2ljZXMpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlRdWVzdGlvblByb3BlcnR5RWRpdG9yIGV4dGVuZHMgU3VydmV5RHJvcGRvd25Qcm9wZXJ0eUVkaXRvciB7XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInF1ZXN0aW9uXCI7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlVGVtcGxhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJkcm9wZG93blwiO1xuICB9XG4gIHB1YmxpYyBnZXQgb3B0aW9uc0NhcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NTdHJpbmcoXCJwZS5jb25kaXRpb25TZWxlY3RRdWVzdGlvblwiKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UHJvcGVydHlDaG9pY2VzKCk6IEFycmF5PGFueT4ge1xuICAgIHZhciBvcHQgPSBuZXcgU3VydmV5Lkl0ZW1WYWx1ZShcIlwiLCB0aGlzLm9wdGlvbnNDYXB0aW9uKTtcbiAgICB2YXIgc3VydmV5ID0gRWRpdGFibGVPYmplY3QuZ2V0U3VydmV5KHRoaXMub2JqZWN0KTtcbiAgICBpZiAoIXN1cnZleSkgcmV0dXJuIFtvcHRdO1xuICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLmdldFF1ZXN0aW9ucyhzdXJ2ZXkpO1xuICAgIGlmICghcXVlc3Rpb25zKSBxdWVzdGlvbnMgPSBbXTtcbiAgICB2YXIgc2hvd1RpdGxlcyA9ICEhdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5zaG93VGl0bGVzSW5FeHByZXNzaW9ucztcbiAgICB2YXIgcUl0ZW1zID0gcXVlc3Rpb25zLm1hcCgocSkgPT4ge1xuICAgICAgbGV0IHRleHQgPSBzaG93VGl0bGVzID8gKDxhbnk+cSkubG9jVGl0bGUucmVuZGVyZWRIdG1sIDogcS5uYW1lO1xuICAgICAgcmV0dXJuIG5ldyBTdXJ2ZXkuSXRlbVZhbHVlKHRoaXMuZ2V0SXRlbVZhbHVlKHEpLCB0ZXh0KTtcbiAgICB9KTtcbiAgICBxSXRlbXMuc29ydCgoZWwxLCBlbDIpID0+IHtcbiAgICAgIHJldHVybiBlbDEudGV4dC5sb2NhbGVDb21wYXJlKGVsMi50ZXh0KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBxSXRlbXM7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEl0ZW1WYWx1ZShxdWVzdGlvbjogU3VydmV5LklRdWVzdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHF1ZXN0aW9uLm5hbWU7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFF1ZXN0aW9ucyhzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCk6IEFycmF5PFN1cnZleS5RdWVzdGlvbj4ge1xuICAgIHJldHVybiBzdXJ2ZXkuZ2V0QWxsUXVlc3Rpb25zKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVF1ZXN0aW9uU2VsZWN0QmFzZVByb3BlcnR5RWRpdG9yIGV4dGVuZHMgU3VydmV5UXVlc3Rpb25Qcm9wZXJ0eUVkaXRvciB7XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInF1ZXN0aW9uX3NlbGVjdGJhc2VcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UXVlc3Rpb25zKHN1cnZleTogU3VydmV5LlN1cnZleU1vZGVsKTogQXJyYXk8U3VydmV5LlF1ZXN0aW9uPiB7XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHN1cnZleS5nZXRBbGxRdWVzdGlvbnMoKTtcbiAgICB2YXIgcmVzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChxdWVzdGlvbnNbaV0gPT09IHRoaXMub2JqZWN0KSBjb250aW51ZTtcbiAgICAgIGlmICh0aGlzLmlzUXVlc3Rpb25GaXQocXVlc3Rpb25zW2ldKSkge1xuICAgICAgICByZXMucHVzaChxdWVzdGlvbnNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBpc1F1ZXN0aW9uRml0KHF1ZXN0aW9uOiBTdXJ2ZXkuUXVlc3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gU3VydmV5LlNlcmlhbGl6ZXIuaXNEZXNjZW5kYW50T2YocXVlc3Rpb24uZ2V0VHlwZSgpLCBcInNlbGVjdGJhc2VcIik7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlRdWVzdGlvbkNhcnJ5Rm9yd2FyZFByb3BlcnR5RWRpdG9yIGV4dGVuZHMgU3VydmV5UXVlc3Rpb25TZWxlY3RCYXNlUHJvcGVydHlFZGl0b3Ige1xuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJxdWVzdGlvbl9jYXJyeWZvcndhcmRcIjtcbiAgfVxuICBwcm90ZWN0ZWQgaXNRdWVzdGlvbkZpdChxdWVzdGlvbjogU3VydmV5LlF1ZXN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHF1ZXN0aW9uLmlzVmFsdWVBcnJheSB8fCBzdXBlci5pc1F1ZXN0aW9uRml0KHF1ZXN0aW9uKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5UXVlc3Rpb25WYWx1ZVByb3BlcnR5RWRpdG9yIGV4dGVuZHMgU3VydmV5UXVlc3Rpb25Qcm9wZXJ0eUVkaXRvciB7XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInF1ZXN0aW9udmFsdWVcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0SXRlbVZhbHVlKHF1ZXN0aW9uOiBTdXJ2ZXkuSVF1ZXN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKDxTdXJ2ZXkuUXVlc3Rpb24+cXVlc3Rpb24pLmdldFZhbHVlTmFtZSgpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlCb29sZWFuUHJvcGVydHlFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJib29sZWFuXCI7XG4gIH1cbiAgcHVibGljIGdldCBjYW5TaG93RGlzcGxheU5hbWVPblRvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldFZhbHVlVGV4dCh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFByb3BlcnR5VmFsdWUodmFsdWUpO1xuICB9XG59XG5leHBvcnQgY2xhc3MgU3VydmV5U3dpdGNoUHJvcGVydHlFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJzd2l0Y2hcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGNhblNob3dEaXNwbGF5TmFtZU9uVG9wKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlOdW1iZXJQcm9wZXJ0eUVkaXRvciBleHRlbmRzIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIm51bWJlclwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXRDb3JyZWN0ZWRWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdmFsdWU7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgdmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgaWYgKCF2YWx1ZSkgdmFsdWUgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZ2V0Q29ycmVjdGVkVmFsdWUodmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlDb2xvclByb3BlcnR5RWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiY29sb3JcIjtcbiAgfVxufVxuXG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwic3RyaW5nXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlTdHJpbmdQcm9wZXJ0eUVkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwiZHJvcGRvd25cIixcbiAgZnVuY3Rpb24gKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleURyb3Bkb3duUHJvcGVydHlFZGl0b3IocHJvcGVydHkpO1xuICB9XG4pO1xuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFxuICBcInF1ZXN0aW9uXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlRdWVzdGlvblByb3BlcnR5RWRpdG9yKHByb3BlcnR5KTtcbiAgfVxuKTtcblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcbiAgXCJxdWVzdGlvbl9zZWxlY3RiYXNlXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlRdWVzdGlvblNlbGVjdEJhc2VQcm9wZXJ0eUVkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwicXVlc3Rpb25fY2Fycnlmb3J3YXJkXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlRdWVzdGlvbkNhcnJ5Rm9yd2FyZFByb3BlcnR5RWRpdG9yKHByb3BlcnR5KTtcbiAgfVxuKTtcblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcbiAgXCJxdWVzdGlvbnZhbHVlXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlRdWVzdGlvblZhbHVlUHJvcGVydHlFZGl0b3IocHJvcGVydHkpO1xuICB9XG4pO1xuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFxuICBcImJvb2xlYW5cIixcbiAgZnVuY3Rpb24gKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleUJvb2xlYW5Qcm9wZXJ0eUVkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwic3dpdGNoXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlTd2l0Y2hQcm9wZXJ0eUVkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwibnVtYmVyXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlOdW1iZXJQcm9wZXJ0eUVkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwiY29sb3JcIixcbiAgZnVuY3Rpb24gKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleUNvbG9yUHJvcGVydHlFZGl0b3IocHJvcGVydHkpO1xuICB9XG4pO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3IgfSBmcm9tIFwiLi9wcm9wZXJ0eU5lc3RlZFByb3BlcnR5RWRpdG9yXCI7XG5cbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5IH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JGYWN0b3J5XCI7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eUh0bWxDb25kaXRpb25FZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImh0bWxjb25kaXRpb25zXCI7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlVGVtcGxhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJuZXN0ZWQtaXRlbXNcIjtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTmV3SXRlbSgpOiBhbnkge1xuICAgIHJldHVybiBuZXcgU3VydmV5Lkh0bWxDb25kaXRpb25JdGVtKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvbHVtbnNQcm9wZXJ0aWVzKCk6IEFycmF5PFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHk+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0aWVzQnlOYW1lcyhcImh0bWxjb25kaXRpb25pdGVtXCIsIFtcbiAgICAgIFwiZXhwcmVzc2lvblwiLFxuICAgICAgXCJodG1sXCJcbiAgICBdKTtcbiAgfVxufVxuXG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXCJodG1sY29uZGl0aW9uc1wiLCBmdW5jdGlvbihcbiAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHlcbik6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gIHJldHVybiBuZXcgU3VydmV5UHJvcGVydHlIdG1sQ29uZGl0aW9uRWRpdG9yKHByb3BlcnR5KTtcbn0pO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmltcG9ydCB7IGdldE5leHRWYWx1ZSB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uIH0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvckRlZmluaXRpb25cIjtcbmltcG9ydCB7IFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yIH0gZnJvbSBcIi4vcHJvcGVydHlOZXN0ZWRQcm9wZXJ0eUVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciwgU3VydmV5SGVscGVyIH0gZnJvbSBcIi4uL2VudHJpZXNcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5SXRlbVZhbHVlc0VkaXRvciBleHRlbmRzIFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yIHtcbiAgcHJpdmF0ZSBkZXRhaWxEZWZpbml0aW9uOiBhbnk7XG4gIHByaXZhdGUgb3B0aW9uc1Nob3dUZXh0VmlldzogYm9vbGVhbiA9IHRydWU7XG4gIGtvSXRlbXNUZXh0OiBhbnk7XG4gIGtvU2hvd1RleHRWaWV3OiBhbnk7XG4gIGNoYW5nZVRvVGV4dFZpZXdDbGljazogYW55O1xuICBjaGFuZ2VUb0Zvcm1WaWV3Q2xpY2s6IGFueTtcbiAgcHJpdmF0ZSBrb0l0ZW1zVGV4dERlbGF5ZWQ6IGFueTtcbiAgcHJpdmF0ZSBpc1VwZGF0aW5nSXRlbVRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gICAgdGhpcy5rb1Nob3dUZXh0VmlldyA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgdGhpcy5kZXRhaWxEZWZpbml0aW9uID1cbiAgICAgICAgU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uLmRlZmluaXRpb25bdGhpcy5nZXRJdGVtVmFsdWVDbGFzc05hbWUoKV07XG4gICAgfVxuICAgIHRoaXMua29JdGVtc1RleHQgPSBrby5vYnNlcnZhYmxlKFwiXCIpO1xuICAgIHRoaXMua29JdGVtc1RleHREZWxheWVkID0ga29cbiAgICAgIC5wdXJlQ29tcHV0ZWQodGhpcy5rb0l0ZW1zVGV4dClcbiAgICAgIC5leHRlbmQoeyByYXRlTGltaXQ6IHsgbWV0aG9kOiBcIm5vdGlmeVdoZW5DaGFuZ2VzU3RvcFwiLCB0aW1lb3V0OiA0MDAgfSB9KTtcbiAgICB0aGlzLmtvSXRlbXNUZXh0RGVsYXllZC5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICBzZWxmLnVwZGF0ZUl0ZW1zVGV4dE9uVHlwaW5nKG5ld1ZhbHVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMua29BY3RpdmVWaWV3LnN1YnNjcmliZShmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIGlmIChuZXdWYWx1ZSA9PSBcImZvcm1cIikgc2VsZi51cGRhdGVJdGVtcyhzZWxmLmtvSXRlbXNUZXh0KCkpO1xuICAgICAgZWxzZSBzZWxmLnVwZGF0ZUl0ZW1zVGV4dCgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlVG9UZXh0Vmlld0NsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5rb0FjdGl2ZVZpZXcoXCJ0ZXh0XCIpO1xuICAgIH07XG4gICAgdGhpcy5jaGFuZ2VUb0Zvcm1WaWV3Q2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLmtvQWN0aXZlVmlldyhcImZvcm1cIik7XG4gICAgfTtcblxuICAgIHRoaXMubW9kYWxOYW1lID1cbiAgICAgIFwibW9kZWxFZGl0b3JcIiArIFwiaXRlbXZhbHVlc1wiICsgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvci5pZENvdW50ZXI7XG4gICAgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvci5pZENvdW50ZXIrKztcbiAgICB0aGlzLm1vZGFsTmFtZVRhcmdldCA9IFwiI1wiICsgdGhpcy5tb2RhbE5hbWU7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiaXRlbXZhbHVlW11cIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGVUZW1wbGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIml0ZW0tdmFsdWVzXCI7XG4gIH1cbiAgcHVibGljIGdldCBoYXNEZXRhaWxCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kZXRhaWxEZWZpbml0aW9uO1xuICB9XG4gIHByb3RlY3RlZCBnZXRJdGVtVmFsdWVDbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkgPyB0aGlzLmVkaXRvclR5cGUgKyBcIkBcIiArIHRoaXMucHJvcGVydHkubmFtZSA6IFwiXCI7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEVkaXRvck5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMua29FZGl0SXRlbSgpIHx8ICF0aGlzLmtvRWRpdEl0ZW0oKS5vYmopIHJldHVybiBcIlwiO1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb25cbiAgICAgIC5nZXRTdHJpbmcodGhpcy5yZWFkT25seSgpP1wicGUuaXRlbVZpZXdcIjpcInBlLml0ZW1FZGl0XCIpXG4gICAgICBbXCJmb3JtYXRcIl0odGhpcy5rb0VkaXRJdGVtKCkub2JqLnZhbHVlKTtcbiAgfVxuICBwdWJsaWMgYmVmb3JlU2hvd0NvcmUoKSB7XG4gICAgc3VwZXIuYmVmb3JlU2hvd0NvcmUoKTtcbiAgICB0aGlzLnVwZGF0ZVNob3dUZXh0Vmlld1Zpc2liaWxpdHkoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uc1Byb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciBwcm9wcyA9IHRoaXMuZ2V0RGVmaW5lZFByb3BlcnRpZXMoKTtcbiAgICBpZiAoISFwcm9wcyAmJiBwcm9wcy5sZW5ndGggPiAwKSByZXR1cm4gcHJvcHM7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdExpc3RQcm9wZXJ0aWVzKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERlZmluZWRQcm9wZXJ0aWVzKCk6IEFycmF5PGFueT4ge1xuICAgIGlmICghdGhpcy5wcm9wZXJ0eSB8fCAhdGhpcy5vYmplY3QgfHwgIXRoaXMub2JqZWN0LmdldFR5cGUpIHJldHVybiBbXTtcbiAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMuZ2V0RGVmaW5lZExpc3RQcm9wZXJ0aWVzKFxuICAgICAgdGhpcy5vYmplY3QuZ2V0VHlwZSgpICsgXCJAXCIgKyB0aGlzLnByb3BlcnR5Lm5hbWVcbiAgICApO1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcy5wdXNoKHByb3BlcnRpZXNbaV0ucHJvcGVydHkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVFZGl0b3JPcHRpb25zKCk6IGFueSB7XG4gICAgdmFyIG9wdGlvbnMgPSBzdXBlci5jcmVhdGVFZGl0b3JPcHRpb25zKCk7XG4gICAgb3B0aW9ucy5zaG93VGV4dFZpZXcgPSB0cnVlO1xuICAgIG9wdGlvbnMuaXRlbXNFbnRyeVR5cGUgPVxuICAgICAgKHRoaXMub3B0aW9uc1tcIm9wdGlvbnNcIl0gJiZcbiAgICAgICAgdGhpcy5vcHRpb25zW1wib3B0aW9uc1wiXS5pdGVtVmFsdWVzRWRpdG9yRW50cnlUeXBlKSB8fFxuICAgICAgXCJmb3JtXCI7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgcHJvdGVjdGVkIG9uU2V0RWRpdG9yT3B0aW9ucyhlZGl0b3JPcHRpb25zOiBhbnkpIHtcbiAgICBzdXBlci5vblNldEVkaXRvck9wdGlvbnMoZWRpdG9yT3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zU2hvd1RleHRWaWV3ID0gZWRpdG9yT3B0aW9ucy5zaG93VGV4dFZpZXc7XG4gICAgdGhpcy51cGRhdGVTaG93VGV4dFZpZXdWaXNpYmlsaXR5KCk7XG4gICAgdGhpcy5rb0FjdGl2ZVZpZXcoZWRpdG9yT3B0aW9ucy5pdGVtc0VudHJ5VHlwZSB8fCBcImZvcm1cIik7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZU5ld0l0ZW0oKTogYW55IHtcbiAgICB2YXIgbmV4dFZhbHVlID0gbnVsbDtcbiAgICB2YXIgdmFsdWVzID0gW107XG4gICAgdmFyIGl0ZW1zID0gdGhpcy5vcmlnaW5hbFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgdmFsdWVzID0gaXRlbXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHZhciBpdGVtVGV4dCA9IHRoaXMucHJvcGVydHkuZ2V0QmFzZVZhbHVlKCk7XG4gICAgaWYgKCFpdGVtVGV4dCkge1xuICAgICAgaXRlbVRleHQgPSBTdXJ2ZXkuc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcImNob2ljZXNfSXRlbVwiKTtcbiAgICB9XG4gICAgbmV4dFZhbHVlID0gZ2V0TmV4dFZhbHVlKGl0ZW1UZXh0LCB2YWx1ZXMpO1xuXG4gICAgdmFyIGl0ZW1WYWx1ZSA9IHRoaXMuY3JlYXRlRWRpdG9ySXRlbVZhbHVlQ29yZShuZXh0VmFsdWUpO1xuICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5vbkl0ZW1WYWx1ZUFkZGVkQ2FsbGJhY2soXG4gICAgICAgIHRoaXMub2JqZWN0LFxuICAgICAgICB0aGlzLmVkaXRhYmxlUHJvcGVydHlOYW1lLFxuICAgICAgICBpdGVtVmFsdWUsXG4gICAgICAgIHZhbHVlc1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1WYWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0SXRlbUNsYXNzTmFtZShpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgIHZhciBjbGFzc05hbWUgPSB0aGlzLmdldEl0ZW1WYWx1ZUNsYXNzTmFtZSgpO1xuICAgIHJldHVybiAhIWNsYXNzTmFtZSA/IGNsYXNzTmFtZSA6IGl0ZW0uZ2V0VHlwZSgpO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRWRpdG9ySXRlbVZhbHVlQ29yZShpdGVtOiBhbnkpIHtcbiAgICB2YXIgaXRlbVZhbHVlID0gU3VydmV5LlNlcmlhbGl6ZXIuY3JlYXRlQ2xhc3ModGhpcy5wcm9wZXJ0eS5jbGFzc05hbWUpO1xuICAgIGl0ZW1WYWx1ZS5zZXREYXRhKGl0ZW0pO1xuICAgIHJldHVybiBpdGVtVmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBpc1RleHRMb2NhbGl6ZWQoaXRlbSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhpdGVtLmxvY1RleHQudmFsdWVzKS5sZW5ndGggPiAxO1xuICB9XG4gIHByb3RlY3RlZCBvblZhbHVlQ2hhbmdlZCgpIHtcbiAgICBzdXBlci5vblZhbHVlQ2hhbmdlZCgpO1xuICAgIGlmICh0aGlzLmlzQmVmb3JlU2hvd0NhbGxlZCkge1xuICAgICAgaWYgKHRoaXMua29BY3RpdmVWaWV3KCkgIT09IFwiZm9ybVwiKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbXNUZXh0KCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXBkYXRlU2hvd1RleHRWaWV3VmlzaWJpbGl0eSgpO1xuICB9XG4gIHByaXZhdGUgaXNVcGRhdGluZ09uVHlwaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlSXRlbXNUZXh0T25UeXBpbmcobmV3VmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzVXBkYXRpbmdJdGVtVGV4dCkgcmV0dXJuO1xuICAgIHRoaXMuaXNVcGRhdGluZ09uVHlwaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZUl0ZW1zKG5ld1ZhbHVlKTtcbiAgICB0aGlzLmlzVXBkYXRpbmdPblR5cGluZyA9IGZhbHNlO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlSXRlbXNUZXh0KCkge1xuICAgIGlmICh0aGlzLmlzVXBkYXRpbmdPblR5cGluZykgcmV0dXJuO1xuICAgIHRoaXMuaXNVcGRhdGluZ0l0ZW1UZXh0ID0gdHJ1ZTtcbiAgICB0aGlzLmtvSXRlbXNUZXh0KHRoaXMuZ2V0SXRlbXNUZXh0KCkpO1xuICAgIHRoaXMuaXNVcGRhdGluZ0l0ZW1UZXh0ID0gZmFsc2U7XG4gIH1cbiAgcHJvdGVjdGVkIG9uTGlzdERldGFpbFZpZXdDaGFuZ2VkKCkge1xuICAgIHN1cGVyLm9uTGlzdERldGFpbFZpZXdDaGFuZ2VkKCk7XG4gICAgdGhpcy51cGRhdGVTaG93VGV4dFZpZXdWaXNpYmlsaXR5KCk7XG4gIH1cbiAgcHJvdGVjdGVkIHVwZGF0ZUl0ZW1zKHRleHQ6IHN0cmluZykge1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5nZXRDb2x1bW5zUHJvcGVydGllcygpO1xuICAgIHZhciBjbGFzc05hbWUgPSB0aGlzLnByb3BlcnR5LmNsYXNzTmFtZTtcbiAgICB2YXIgaXRlbXM6IFN1cnZleS5JdGVtVmFsdWVbXSA9IFN1cnZleUhlbHBlci5jb252ZXJ0VGV4dFRvSXRlbVZhbHVlcyhcbiAgICAgIHRleHQsXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKTtcbiAgICB0aGlzLnVwZGF0ZUFycmF5VmFsdWUoaXRlbXMpO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlQXJyYXlWYWx1ZShpdGVtczogYW55KSB7XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsVmFsdWUpIHJldHVybjtcbiAgICBpZiAoIWl0ZW1zKSBpdGVtcyA9IFtdO1xuICAgIC8vVE9ETyBtYWdpYyB2YWx1ZSAyMFxuICAgIGlmIChNYXRoLmFicyh0aGlzLm9yaWdpbmFsVmFsdWUubGVuZ3RoIC0gaXRlbXMubGVuZ3RoKSA+IDIwKSB7XG4gICAgICB0aGlzLm9iamVjdFt0aGlzLnByb3BlcnR5Lm5hbWVdID0gaXRlbXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN1cnZleUhlbHBlci5hcHBseUl0ZW1WYWx1ZUFycmF5KHRoaXMub3JpZ2luYWxWYWx1ZSwgaXRlbXMpO1xuICAgIH1cbiAgICB0aGlzLmRvT25DaGFuZ2VkKHRoaXMub3JpZ2luYWxWYWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEl0ZW1zVGV4dCgpOiBzdHJpbmcge1xuICAgIHZhciBpdGVtcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vcmlnaW5hbFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpdGVtcy5wdXNoKHRoaXMuY3JlYXRlSXRlbVZpZXdNb2RlbCh0aGlzLm9yaWdpbmFsVmFsdWVbaV0pKTtcbiAgICB9XG4gICAgcmV0dXJuIFN1cnZleUhlbHBlci5jb252ZXJ0TWF0cml4Um93c1RvVGV4dChpdGVtcyk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVTaG93VGV4dFZpZXdWaXNpYmlsaXR5KCkge1xuICAgIGlmICghdGhpcy5rb1Nob3dUZXh0VmlldykgcmV0dXJuO1xuICAgIGlmICghdGhpcy5vcHRpb25zU2hvd1RleHRWaWV3IHx8IHRoaXMuY29sdW1ucy5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5rb1Nob3dUZXh0VmlldyhmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5rb1Nob3dUZXh0VmlldyhcbiAgICAgIHRoaXMuaXNWYWx1ZVByb3BlcnR5VmlzaWJsZSgpICYmXG4gICAgICAgICF0aGlzLmhhc1Zpc2libGVJZk9yRW5hYmxlSWYoKSAmJlxuICAgICAgICAhdGhpcy5oYXNNdWx0aXBsZUxhbmd1YWdlKClcbiAgICApO1xuICB9XG4gIHByaXZhdGUgaGFzTXVsdGlwbGVMYW5ndWFnZSgpOiBib29sZWFuIHtcbiAgICB2YXIgaXRlbXMgPSB0aGlzLm9yaWdpbmFsVmFsdWU7XG4gICAgaWYgKCFpdGVtcyB8fCAhQXJyYXkuaXNBcnJheShpdGVtcykpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoaXRlbXNbaV0ubG9jVGV4dC5oYXNOb25EZWZhdWx0VGV4dCgpKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHByaXZhdGUgaXNWYWx1ZVByb3BlcnR5VmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICB2YXIgdmFsdWVQcm9wID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFwiaXRlbXZhbHVlXCIsIFwidmFsdWVcIik7XG4gICAgcmV0dXJuICEhdmFsdWVQcm9wICYmIHZhbHVlUHJvcC52aXNpYmxlICYmICF2YWx1ZVByb3AucmVhZE9ubHk7XG4gIH1cbiAgcHJpdmF0ZSBoYXNWaXNpYmxlSWZPckVuYWJsZUlmKCk6IGJvb2xlYW4ge1xuICAgIHZhciBpdGVtcyA9IHRoaXMub3JpZ2luYWxWYWx1ZTtcbiAgICBpZiAoIWl0ZW1zIHx8ICFBcnJheS5pc0FycmF5KGl0ZW1zKSkgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghIWl0ZW1zW2ldLnZpc2libGVJZiB8fCBpdGVtc1tpXS5lbmFibGVJZikgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgaGFzRGV0YWlsc1Byb3BlcnRpZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFxuICBcIml0ZW12YWx1ZVtdXCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eUl0ZW1WYWx1ZXNFZGl0b3IocHJvcGVydHkpO1xuICB9LFxuICBcIml0ZW12YWx1ZVwiXG4pO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5TW9kYWxFZGl0b3JcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciB9IGZyb20gXCIuLi9zdXJ2ZXlIZWxwZXJcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5SXRlbXNFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yIHtcbiAgcHVibGljIG9uRGVsZXRlQ2xpY2s6IGFueTtcbiAgcHVibGljIG9uQWRkQ2xpY2s6IGFueTtcbiAgcHVibGljIG9uQ2xlYXJDbGljazogYW55O1xuICBrb0FsbG93QWRkUmVtb3ZlSXRlbXMgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBrb0FsbG93UmVtb3ZlQWxsSXRlbXMgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBrb0NhbkFkZEl0ZW0gPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBwcml2YXRlIHZpZXdJdGVtczogQXJyYXk8YW55PiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLm9uRGVsZXRlQ2xpY2sgPSBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgaWYgKCFzZWxmLm9uRGVsZXRpbmdJdGVtKGl0ZW0ub2JqKSkgcmV0dXJuO1xuICAgICAgc2VsZi5kZWxldGVJdGVtKGl0ZW0ub2JqKTtcbiAgICAgIHNlbGYuZG9PbkNoYW5nZWQoc2VsZi5vcmlnaW5hbFZhbHVlKTtcbiAgICB9O1xuICAgIHNlbGYub25DbGVhckNsaWNrID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHNlbGYub3JpZ2luYWxWYWx1ZS5zcGxpY2UoMCwgc2VsZi5vcmlnaW5hbFZhbHVlLmxlbmd0aCk7XG4gICAgICBzZWxmLmRvT25DaGFuZ2VkKHNlbGYub3JpZ2luYWxWYWx1ZSk7XG4gICAgfTtcbiAgICBzZWxmLm9uQWRkQ2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLmFkZEl0ZW0oKTtcbiAgICAgIHNlbGYuZG9PbkNoYW5nZWQoc2VsZi5vcmlnaW5hbFZhbHVlKTtcbiAgICB9O1xuICB9XG4gIHByaXZhdGUgX25vdGlmeVByb3BlcnR5VmFsdWVDaGFuZ2VkKCkge1xuICAgIHRoaXMub3B0aW9ucyAmJlxuICAgICAgdGhpcy5vcHRpb25zLm9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgICAgIHRoaXMucHJvcGVydHksXG4gICAgICAgIHRoaXMub2JqZWN0LFxuICAgICAgICB0aGlzLm9yaWdpbmFsVmFsdWVcbiAgICAgICk7XG4gIH1cbiAgcHVibGljIGdldFZhbHVlVGV4dCh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICB2YXIgbGVuID0gdmFsdWUgPyB2YWx1ZS5sZW5ndGggOiAwO1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUuaXRlbXNcIilbXCJmb3JtYXRcIl0obGVuKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFkZEl0ZW1UZXh0KCk6IHN0cmluZyB7XG4gICAgdmFyIGN1c3RvbUxvY1N0ck5hbWUgPSBcInBlLmFkZE5ld0BcIiArIHRoaXMucHJvcGVydHkubmFtZTtcbiAgICBpZiAoZWRpdG9yTG9jYWxpemF0aW9uLmhhc1N0cmluZyhjdXN0b21Mb2NTdHJOYW1lKSlcbiAgICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhjdXN0b21Mb2NTdHJOYW1lKTtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NTdHJpbmcoXCJwZS5hZGROZXdcIik7XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvcnJlY3RlZFZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlKSkgdmFsdWUgPSBbXTtcbiAgICByZXR1cm4gc3VwZXIuZ2V0Q29ycmVjdGVkVmFsdWUodmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVFZGl0b3JPcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHsgYWxsb3dBZGRSZW1vdmVJdGVtczogdHJ1ZSwgYWxsb3dSZW1vdmVBbGxJdGVtczogdHJ1ZSB9O1xuICB9XG4gIHByb3RlY3RlZCBvblNldEVkaXRvck9wdGlvbnMoZWRpdG9yT3B0aW9uczogYW55KSB7XG4gICAgdGhpcy5rb0FsbG93QWRkUmVtb3ZlSXRlbXMoZWRpdG9yT3B0aW9ucy5hbGxvd0FkZFJlbW92ZUl0ZW1zKTtcbiAgICB0aGlzLmtvQWxsb3dSZW1vdmVBbGxJdGVtcyhlZGl0b3JPcHRpb25zLmFsbG93UmVtb3ZlQWxsSXRlbXMpO1xuICB9XG4gIHByb3RlY3RlZCBzdGFydERyYWdJdGVtKCkge31cbiAgcHJvdGVjdGVkIGVuZERyYWdJdGVtKCkge31cbiAgcHVibGljIHNvcnRhYmxlT3B0aW9ucyA9IHtcbiAgICBoYW5kbGU6IFwiLnN2ZC1kcmFnLWhhbmRsZVwiLFxuICAgIGFuaW1hdGlvbjogMTUwLFxuICAgIG9uU3RhcnQ6ICgpID0+IHtcbiAgICAgIHRoaXMub3B0aW9uc1tcInVuZG9SZWRvTWFuYWdlclwiXS5zdGFydFRyYW5zYWN0aW9uKFxuICAgICAgICBcInByb3BlcnR5IGl0ZW1zIGVkaXRvciBkcmFnIGRyb3AgdHJhbnNhY3Rpb25cIlxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RhcnREcmFnSXRlbSgpO1xuICAgIH0sXG4gICAgb25FbmQ6ICgpID0+IHtcbiAgICAgIHRoaXMub3B0aW9uc1tcInVuZG9SZWRvTWFuYWdlclwiXS5zdG9wVHJhbnNhY3Rpb24oKTtcbiAgICAgIHRoaXMuZW5kRHJhZ0l0ZW0oKTtcbiAgICB9LFxuICAgIG9uVXBkYXRlOiAoZXZ0LCBpdGVtVikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBTdXJ2ZXlIZWxwZXIubW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSxcbiAgICAgICAgICBpdGVtVi5vYmosXG4gICAgICAgICAgZXZ0Lm5ld0luZGV4XG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICAvLyBSZW1vdmUgc29ydGFibGVzIFwidW5ib3VuZFwiIGVsZW1lbnRcbiAgICAgICAgZXZ0Lml0ZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChldnQuaXRlbSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICB9O1xuICBwcm90ZWN0ZWQgYWRkSXRlbSgpIHtcbiAgICB0aGlzLmNyZWF0ZUVkaXRvckl0ZW1Db3JlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIG9uRGVsZXRpbmdJdGVtKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMub25Db2xsZWN0aW9uSXRlbURlbGV0aW5nQ2FsbGJhY2soXG4gICAgICB0aGlzLm9iamVjdCxcbiAgICAgIHRoaXMucHJvcGVydHksXG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUsXG4gICAgICBvYmpcbiAgICApO1xuICB9XG4gIHByb3RlY3RlZCBkZWxldGVJdGVtKG9iajogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkoKSkgcmV0dXJuO1xuICAgIHZhciBpbmRleCA9IHRoaXMub3JpZ2luYWxWYWx1ZS5pbmRleE9mKG9iaik7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5vbkl0ZW1EZWxldGVkKG9iaiwgaW5kZXgpO1xuICAgIH1cbiAgICB0aGlzLmRlbGV0ZVZpZXdJdGVtSW5kZXgob2JqKTtcbiAgICB0aGlzLl9ub3RpZnlQcm9wZXJ0eVZhbHVlQ2hhbmdlZCgpO1xuICB9XG4gIHByb3RlY3RlZCBvbkl0ZW1EZWxldGVkKG9iajogYW55LCBpbmRleDogbnVtYmVyKSB7fVxuICBwdWJsaWMgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnZpZXdJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGl0ZW0gPSB0aGlzLnZpZXdJdGVtc1tpXTtcbiAgICAgIGlmICghIWl0ZW0uaGFzRXJyb3IgJiYgISFpdGVtLmhhc0Vycm9yKCkpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuaGFzRXJyb3IoKTtcbiAgfVxuICBwdWJsaWMgc2V0dXAoKSB7XG4gICAgc3VwZXIuc2V0dXAoKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgdGhpcy52aWV3SXRlbXMgPSBbXTtcbiAgfVxuICBwdWJsaWMgY3JlYXRlSXRlbVZpZXdNb2RlbChvYmo6IGFueSk6IGFueSB7XG4gICAgdGhpcy5kZWxldGVWaWV3SXRlbUluZGV4KG9iaik7XG4gICAgdmFyIHJlcyA9IHRoaXMuY3JlYXRlRWRpdG9ySXRlbShvYmopO1xuICAgIHRoaXMudmlld0l0ZW1zLnB1c2gocmVzKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgZGVsZXRlVmlld0l0ZW1JbmRleChvYmo6IGFueSkge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy52aWV3SXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLnZpZXdJdGVtc1tpXS5vYmogPT0gb2JqKSB7XG4gICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMudmlld0l0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBpZiAodGhpcy52aWV3SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMudmlld0l0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIGluZGV4LS07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52aWV3SXRlbXNbaV0gJiZcbiAgICAgICAgICB0aGlzLnZpZXdJdGVtc1tpXS5mb2N1cyAmJlxuICAgICAgICAgIHRoaXMudmlld0l0ZW1zW2ldLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBnZXQgaXNDdXJyZW50VmFsdWVFbXB0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcmlnaW5hbFZhbHVlLmxlbmd0aCA9PSAwO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVFZGl0b3JJdGVtQ29yZShpdGVtOiBhbnkgPSBudWxsKSB7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICBpdGVtID0gdGhpcy5jcmVhdGVOZXdJdGVtKCk7XG4gICAgICBTdXJ2ZXlIZWxwZXIuZGlzYWJsZVNlbGVjdGluZ09iaihpdGVtKTtcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZS5wdXNoKGl0ZW0pO1xuICAgICAgU3VydmV5SGVscGVyLmVuYWJsZVNlbGVjdGluZ09iaihpdGVtKTtcbiAgICB9XG4gICAgdmFyIGVkaXRvckl0ZW0gPSB0aGlzLmNyZWF0ZUVkaXRvckl0ZW0oaXRlbSk7XG4gICAgaWYgKCEhZWRpdG9ySXRlbS5vbkNyZWF0ZWQpIHtcbiAgICAgIGVkaXRvckl0ZW0ub25DcmVhdGVkKCk7XG4gICAgfVxuICAgIHJldHVybiBlZGl0b3JJdGVtO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVOZXdJdGVtKCk6IGFueSB7XG4gICAgdGhyb3cgXCJPdmVycmlkZSAnY3JlYXRlTmV3SXRlbScgbWV0aG9kXCI7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZUVkaXRvckl0ZW0oaXRlbTogYW55KSB7XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cbn1cbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7XG4gIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMsXG59IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25FZGl0b3IgfSBmcm9tIFwiLi4vcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uRWRpdG9yXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5TmVzdGVkUHJvcGVydHlFZGl0b3JcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yRmFjdG9yeVwiO1xuaW1wb3J0IHsgZ2V0TmV4dFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL3V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eURyb3Bkb3duQ29sdW1uc0VkaXRvciBleHRlbmRzIFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yIHtcbiAgY29uc3RydWN0b3IocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwibWF0cml4ZHJvcGRvd25jb2x1bW5zXCI7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlVGVtcGxhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJuZXN0ZWQtaXRlbXNcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RWRpdG9yTmFtZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5rb0VkaXRJdGVtKCkpIHJldHVybiBcIlwiO1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb25cbiAgICAgIC5nZXRTdHJpbmcoXCJwZS5jb2x1bW5FZGl0XCIpXG4gICAgICBbXCJmb3JtYXRcIl0odGhpcy5rb0VkaXRJdGVtKCkub2JqLm5hbWUpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRJdGVtQ2xhc3NOYW1lKGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgdmFyIGJhc2U6IHN0cmluZyA9IFwibWF0cml4ZHJvcGRvd25jb2x1bW5AXCI7XG4gICAgaWYgKCFpdGVtW1wib2JqZWN0XCJdIHx8IGl0ZW0uY2VsbFR5cGUgIT09IFwiZGVmYXVsdFwiKSB7XG4gICAgICByZXR1cm4gYmFzZSArIGl0ZW0uY2VsbFR5cGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBiYXNlICsgaXRlbVtcIm9iamVjdFwiXS5jZWxsVHlwZTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZU5ld0l0ZW0oKTogYW55IHtcbiAgICB2YXIgbmV3TmFtZSA9IGdldE5leHRWYWx1ZShcImNvbHVtblwiLCB0aGlzLmdldENvbHVtbk5hbWVzKCkpLnRvU3RyaW5nKCk7XG4gICAgdmFyIG5ld0NvbHVtbiA9IG5ldyBTdXJ2ZXkuTWF0cml4RHJvcGRvd25Db2x1bW4obmV3TmFtZSk7XG4gICAgdmFyIGNvbHVtbnMgPSBbXTtcbiAgICB2YXIgb3JnQ29sdW1ucyA9IHRoaXMub3JpZ2luYWxWYWx1ZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcmdDb2x1bW5zKSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcmdDb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbHVtbnMucHVzaChvcmdDb2x1bW5zW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29sdW1ucy5wdXNoKG5ld0NvbHVtbik7XG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xuICAgICAgdGhpcy5vcHRpb25zLm9uTWF0cml4RHJvcGRvd25Db2x1bW5BZGRlZENhbGxiYWNrKFxuICAgICAgICB0aGlzLm9iamVjdCxcbiAgICAgICAgbmV3Q29sdW1uLFxuICAgICAgICBjb2x1bW5zXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3Q29sdW1uO1xuICB9XG4gIHByb3RlY3RlZCBhZGRJdGVtKCkge1xuICAgIHN1cGVyLmFkZEl0ZW0oKTtcbiAgICB0aGlzLnVwZGF0ZUNhbkFkZENvbHVtbigpO1xuICB9XG4gIHByb3RlY3RlZCBkZWxldGVJdGVtKG9iajogYW55KSB7XG4gICAgc3VwZXIuZGVsZXRlSXRlbShvYmopO1xuICAgIHRoaXMudXBkYXRlQ2FuQWRkQ29sdW1uKCk7XG4gIH1cbiAgcHVibGljIHVwZGF0ZVZhbHVlKCkge1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlKCk7XG4gICAgdGhpcy51cGRhdGVDYW5BZGRDb2x1bW4oKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uc1Byb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciBuYW1lcyA9IHRoaXMuZ2V0UHJvcGVydGllc05hbWVzKFwibWF0cml4ZHJvcGRvd25jb2x1bW5cIiwgW1xuICAgICAgXCJpc1JlcXVpcmVkXCIsXG4gICAgICBcImNlbGxUeXBlXCIsXG4gICAgICBcIm5hbWVcIixcbiAgICAgIFwidGl0bGVcIixcbiAgICBdKTtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0aWVzQnlOYW1lcyhcIm1hdHJpeGRyb3Bkb3duY29sdW1uXCIsIG5hbWVzKTtcbiAgfVxuICBwcml2YXRlIGdldENvbHVtbk5hbWVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgaXRlbXMgPSB0aGlzLm9yaWdpbmFsVmFsdWU7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkgcmV0dXJuO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBuYW1lID0gaXRlbXNbaV0ubmFtZTtcbiAgICAgIGlmICghIW5hbWUpIHtcbiAgICAgICAgcmVzLnB1c2gobmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVDYW5BZGRDb2x1bW4oKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMub3B0aW9ucyB8fFxuICAgICAgdGhpcy5vcHRpb25zLm1heGltdW1Db2x1bW5zQ291bnQgPCAxIHx8XG4gICAgICAhQXJyYXkuaXNBcnJheSh0aGlzLm9yaWdpbmFsVmFsdWUpXG4gICAgKVxuICAgICAgcmV0dXJuO1xuICAgIHRoaXMsXG4gICAgdGhpcy5rb0NhbkFkZEl0ZW0oXG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUubGVuZ3RoIDwgdGhpcy5vcHRpb25zLm1heGltdW1Db2x1bW5zQ291bnRcbiAgICApO1xuICB9XG59XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcbiAgXCJtYXRyaXhkcm9wZG93bmNvbHVtbnNcIixcbiAgZnVuY3Rpb24gKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleVByb3BlcnR5RHJvcGRvd25Db2x1bW5zRWRpdG9yKHByb3BlcnR5KTtcbiAgfVxuKTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5IH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JGYWN0b3J5XCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQge1xuICBmb2N1c0ZpcnN0Q29udHJvbCxcbiAgZ2V0Rmlyc3ROb25UZXh0RWxlbWVudCxcbiAgZ2V0Tm9kZXNGcm9tS29Db21wb25lbnRJbmZvLFxufSBmcm9tIFwiLi4vdXRpbHMvdXRpbHNcIjtcbmltcG9ydCBSTW9kYWwgZnJvbSBcInJtb2RhbFwiO1xuaW1wb3J0IHsgRWRpdGFibGVPYmplY3QgfSBmcm9tIFwiLi9lZGl0YWJsZU9iamVjdFwiO1xuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvckN1c3RvbVdpZGdldCB7XG4gIHByaXZhdGUgc3RhdGljIGN1c3RvbVdpZGdldElkID0gMTtcbiAgcHJpdmF0ZSBzdGF0aWMgY3VzdG9tV2lkZ2V0TmFtZSA9IFwibW9kYWxFZGl0b3JDdXN0b21XaWRnZXRcIjtcbiAgY29uc3RydWN0b3IocHVibGljIGpzb246IGFueSkge31cbiAgcHVibGljIGFmdGVyUmVuZGVyKGVkaXRvcjogU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciwgZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMuanNvbiAmJiB0aGlzLmpzb24uYWZ0ZXJSZW5kZXIpIHtcbiAgICAgIGlmICghZWwuaWQpIHtcbiAgICAgICAgZWwuaWQgPVxuICAgICAgICAgIFN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3JDdXN0b21XaWRnZXQuY3VzdG9tV2lkZ2V0TmFtZSArXG4gICAgICAgICAgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvckN1c3RvbVdpZGdldC5jdXN0b21XaWRnZXRJZDtcbiAgICAgICAgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvckN1c3RvbVdpZGdldC5jdXN0b21XaWRnZXRJZCsrO1xuICAgICAgfVxuICAgICAgdGhpcy5qc29uLmFmdGVyUmVuZGVyKGVkaXRvciwgZWwpO1xuICAgICAgaWYgKHRoaXMuanNvbi5kZXN0cm95KSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgICAga28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhlbCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHNlbGYuZGVzdHJveShlZGl0b3IsIGVsKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBkZXN0cm95KGVkaXRvcjogU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvciwgZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMuanNvbiAmJiB0aGlzLmpzb24uZGVzdHJveSkge1xuICAgICAgdGhpcy5qc29uLmRlc3Ryb3koZWRpdG9yLCBlbCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgY3VzdG9tV2lkZ2V0cztcbiAgcHVibGljIHN0YXRpYyByZWdpc3RlckN1c3RvbVdpZGdldChlZGl0b3JUeXBlOiBzdHJpbmcsIGpzb246IGFueSkge1xuICAgIGlmICghU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvci5jdXN0b21XaWRnZXRzKVxuICAgICAgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvci5jdXN0b21XaWRnZXRzID0ge307XG4gICAgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvci5jdXN0b21XaWRnZXRzW1xuICAgICAgZWRpdG9yVHlwZVxuICAgIF0gPSBuZXcgU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvckN1c3RvbVdpZGdldChqc29uKTtcbiAgfVxuICBwcm90ZWN0ZWQgc3RhdGljIGlkQ291bnRlciA9IDE7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q3VzdG9tV2lkZ2V0KFxuICAgIGVkaXRvclR5cGU6IHN0cmluZ1xuICApOiBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yQ3VzdG9tV2lkZ2V0IHtcbiAgICBpZiAoIVN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3IuY3VzdG9tV2lkZ2V0cykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIFN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3IuY3VzdG9tV2lkZ2V0c1tlZGl0b3JUeXBlXTtcbiAgfVxuICBwcml2YXRlIGlzQmVmb3JlU2hvd0NhbGxlZFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgZWxlbWVudHM6IEhUTUxFbGVtZW50W107XG4gIHByaXZhdGUgbW9kYWxFZGl0YWJsZU9iamVjdDogRWRpdGFibGVPYmplY3Q7XG4gIHB1YmxpYyBlZGl0aW5nT2JqZWN0OiBhbnk7XG4gIHB1YmxpYyBvbkFwcGx5Q2xpY2s6IGFueTtcbiAgcHVibGljIG9uT2tDbGljazogYW55O1xuICBwdWJsaWMgb25SZXNldENsaWNrOiBhbnk7XG4gIHB1YmxpYyBvblNob3dNb2RhbDogYW55O1xuICBwdWJsaWMgb25IaWRlTW9kYWw6IGFueTtcbiAgcHVibGljIG1vZGFsTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgbW9kYWxOYW1lVGFyZ2V0OiBzdHJpbmc7XG4gIGtvU2hvd0FwcGx5QnV0dG9uOiBhbnk7XG4gIGtvVGl0bGVDYXB0aW9uOiBhbnk7XG4gIGtvQWZ0ZXJSZW5kZXI6IGFueTtcbiAga29IdG1sVG9wOiBhbnk7XG4gIGtvSHRtbEJvdHRvbTogYW55O1xuICBrb0lzU2hvd2luZ01vZGFsOiBhbnk7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICAgIHRoaXMua29UaXRsZUNhcHRpb24gPSBrby5vYnNlcnZhYmxlKFwiXCIpO1xuICAgIHRoaXMua29IdG1sVG9wID0ga28ub2JzZXJ2YWJsZShcIlwiKTtcbiAgICB0aGlzLmtvSHRtbEJvdHRvbSA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gICAgaWYgKHRoaXMucHJvcGVydHkpIHtcbiAgICAgIHRoaXMua29UaXRsZUNhcHRpb24oXG4gICAgICAgIGVkaXRvckxvY2FsaXphdGlvblxuICAgICAgICAgIC5nZXRTdHJpbmcoXCJwZS5lZGl0UHJvcGVydHlcIilcbiAgICAgICAgICBbXCJmb3JtYXRcIl0oXG4gICAgICAgICAgICBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0UHJvcGVydHlOYW1lKFxuICAgICAgICAgICAgICB0aGlzLnByb3BlcnR5Lm5hbWUsXG4gICAgICAgICAgICAgIHRoaXMucHJvcGVydHkuZGlzcGxheU5hbWVcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLm1vZGFsTmFtZSA9XG4gICAgICBcIm1vZGVsRWRpdG9yXCIgKyB0aGlzLmVkaXRvclR5cGUgKyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yLmlkQ291bnRlcjtcbiAgICBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yLmlkQ291bnRlcisrO1xuICAgIHRoaXMubW9kYWxOYW1lVGFyZ2V0ID0gXCIjXCIgKyB0aGlzLm1vZGFsTmFtZTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5rb1Nob3dBcHBseUJ1dHRvbiA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gICAgdGhpcy5rb0lzU2hvd2luZ01vZGFsID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cbiAgICBzZWxmLm9uSGlkZU1vZGFsID0gZnVuY3Rpb24gKCkge307XG4gICAgc2VsZi5vbkFwcGx5Q2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLmFwcGx5KCk7XG4gICAgfTtcbiAgICBzZWxmLm9uT2tDbGljayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciByZXMgPSBzZWxmLmFwcGx5KCk7XG4gICAgICBpZiAocmVzKSBzZWxmLm9uSGlkZU1vZGFsKCk7XG4gICAgfTtcbiAgICBzZWxmLm9uUmVzZXRDbGljayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNlbGYudXBkYXRlVmFsdWUoKTtcbiAgICAgIHNlbGYub25IaWRlTW9kYWwoKTtcbiAgICB9O1xuICAgIHNlbGYub25TaG93TW9kYWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLmJlZm9yZVNob3dNb2RhbCgpO1xuICAgICAgc2VsZi5iZWZvcmVTaG93KCk7XG4gICAgICB2YXIgbW9kYWwgPSBuZXcgUk1vZGFsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZi5tb2RhbE5hbWVUYXJnZXQpLCB7XG4gICAgICAgIGJvZHlDbGFzczogXCJcIixcbiAgICAgICAgY2xvc2VUaW1lb3V0OiAxMDAsXG4gICAgICAgIGRpYWxvZ09wZW5DbGFzczogXCJhbmltYXRlZCBmYWRlSW5Eb3duXCIsXG4gICAgICAgIGZvY3VzOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgbW9kYWwub3BlbigpO1xuXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICBcImtleWRvd25cIixcbiAgICAgICAgZnVuY3Rpb24gKGV2KSB7XG4gICAgICAgICAgbW9kYWwua2V5ZG93bihldik7XG4gICAgICAgIH0sXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuXG4gICAgICBzZWxmLm9uSGlkZU1vZGFsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzZWxmLmJlZm9yZUNsb3NlTW9kYWwoKTtcbiAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgIH07XG4gICAgICBpZiAoISF0aGlzLmVsZW1lbnRzKSB7XG4gICAgICAgIGZvY3VzRmlyc3RDb250cm9sKHRoaXMuZWxlbWVudHMpO1xuICAgICAgfVxuICAgIH07XG4gICAgc2VsZi5rb0FmdGVyUmVuZGVyID0gZnVuY3Rpb24gKGVsKSB7XG4gICAgICByZXR1cm4gc2VsZi5hZnRlclJlbmRlcihlbCwgc2VsZik7XG4gICAgfTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IGlzTW9kYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIGdldCBpc0JlZm9yZVNob3dDYWxsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNCZWZvcmVTaG93Q2FsbGVkVmFsdWU7XG4gIH1cbiAgcHVibGljIGJlZm9yZVNob3coKSB7XG4gICAgaWYgKHRoaXMuaXNCZWZvcmVTaG93Q2FsbGVkVmFsdWUgPT09IHRydWUpIHJldHVybjtcbiAgICB0aGlzLmlzQmVmb3JlU2hvd0NhbGxlZFZhbHVlID0gdHJ1ZTtcbiAgICB0aGlzLmJlZm9yZVNob3dDb3JlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGJlZm9yZVNob3dDb3JlKCkge1xuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgdXBkYXRlUHJvcGVydHlWYWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgdmFyIG9iaiA9IHRoaXMub2JqZWN0O1xuICAgIGlmICghIXRoaXMubW9kYWxFZGl0YWJsZU9iamVjdCkge1xuICAgICAgb2JqID0gdGhpcy5tb2RhbEVkaXRhYmxlT2JqZWN0LmVkaXRhYmxlT2JqO1xuICAgIH1cbiAgICBvYmpbdGhpcy5wcm9wZXJ0eS5uYW1lXSA9IG5ld1ZhbHVlO1xuICB9XG4gIHByb3RlY3RlZCBnZXRPcmlnaW5hbFZhbHVlKCk6IGFueSB7XG4gICAgaWYgKCEhdGhpcy5tb2RhbEVkaXRhYmxlT2JqZWN0KSB7XG4gICAgICByZXR1cm4gdGhpcy5tb2RhbEVkaXRhYmxlT2JqZWN0LmVkaXRhYmxlT2JqW3RoaXMucHJvcGVydHkubmFtZV07XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5nZXRPcmlnaW5hbFZhbHVlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIHBlcmZvcm1BcHBseSgpIHtcbiAgICBpZiAoISF0aGlzLm1vZGFsRWRpdGFibGVPYmplY3QpIHtcbiAgICAgIHRoaXMubW9kYWxFZGl0YWJsZU9iamVjdC5hcHBseSh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdXBlci5wZXJmb3JtQXBwbHkoKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGJlZm9yZVNob3dNb2RhbCgpIHtcbiAgICB0aGlzLm1vZGFsRWRpdGFibGVPYmplY3QgPSBuZXcgRWRpdGFibGVPYmplY3QodGhpcy5vYmplY3QpO1xuICAgIHRoaXMua29Jc1Nob3dpbmdNb2RhbCh0cnVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgaXNTaG93aW5nTW9kYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMua29Jc1Nob3dpbmdNb2RhbCgpO1xuICB9XG4gIHByb3RlY3RlZCBiZWZvcmVDbG9zZU1vZGFsKCkge1xuICAgIHRoaXMuaXNCZWZvcmVTaG93Q2FsbGVkVmFsdWUgPSBmYWxzZTtcbiAgICB0aGlzLmtvSXNTaG93aW5nTW9kYWwoZmFsc2UpO1xuICAgIGlmICghIXRoaXMubW9kYWxFZGl0YWJsZU9iamVjdCkge1xuICAgICAgdGhpcy5tb2RhbEVkaXRhYmxlT2JqZWN0LnJlc2V0KCk7XG4gICAgfVxuICAgIHRoaXMubW9kYWxFZGl0YWJsZU9iamVjdCA9IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIG9uT3B0aW9uc0NoYW5nZWQoKSB7XG4gICAgdGhpcy5rb1Nob3dBcHBseUJ1dHRvbiA9IGtvLm9ic2VydmFibGUoXG4gICAgICAhdGhpcy5vcHRpb25zIHx8IHRoaXMub3B0aW9ucy5zaG93QXBwbHlCdXR0b25JbkVkaXRvcnNcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXRPYmplY3QodmFsdWU6IGFueSkge1xuICAgIHRoaXMuaXNCZWZvcmVTaG93Q2FsbGVkVmFsdWUgPSBmYWxzZTtcbiAgICB0aGlzLmVkaXRpbmdPYmplY3QgPSB2YWx1ZTtcbiAgICBzdXBlci5zZXRPYmplY3QodmFsdWUpO1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5wcm9wZXJ0eSkge1xuICAgICAgdmFyIGh0bWwgPSB0aGlzLm9wdGlvbnMub25Qcm9wZXJ0eUVkaXRvck1vZGFsU2hvd0Rlc2NyaXB0aW9uQ2FsbGJhY2soXG4gICAgICAgIHRoaXMucHJvcGVydHkubmFtZSxcbiAgICAgICAgdmFsdWVcbiAgICAgICk7XG4gICAgICBpZiAoaHRtbCkge1xuICAgICAgICBpZiAoaHRtbC50b3ApIHRoaXMua29IdG1sVG9wKGh0bWwudG9wKTtcbiAgICAgICAgaWYgKGh0bWwuYm90dG9tKSB0aGlzLmtvSHRtbEJvdHRvbShodG1sLmJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgaXNFZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHJvdGVjdGVkIGFmdGVyUmVuZGVyKFxuICAgIGNvbXBvbmVudEluZm86IGFueSxcbiAgICBtb2RhbEVkaXRvcjogU3VydmV5UHJvcGVydHlNb2RhbEVkaXRvclxuICApIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IGdldE5vZGVzRnJvbUtvQ29tcG9uZW50SW5mbyhjb21wb25lbnRJbmZvKTtcbiAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgdmFyIGN1c3RvbVdpZGdldCA9IFN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3IuZ2V0Q3VzdG9tV2lkZ2V0KFxuICAgICAgdGhpcy5lZGl0b3JUeXBlXG4gICAgKTtcbiAgICBpZiAoISFjdXN0b21XaWRnZXQpIHtcbiAgICAgIHZhciBlbCA9IGdldEZpcnN0Tm9uVGV4dEVsZW1lbnQoZWxlbWVudHMpO1xuICAgICAgdmFyIHRFbCA9IGVsZW1lbnRzWzBdO1xuICAgICAgaWYgKHRFbC5ub2RlTmFtZSA9PSBcIiN0ZXh0XCIpIHRFbC5kYXRhID0gXCJcIjtcbiAgICAgIHRFbCA9IGVsZW1lbnRzW2VsZW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKHRFbC5ub2RlTmFtZSA9PSBcIiN0ZXh0XCIpIHRFbC5kYXRhID0gXCJcIjtcbiAgICAgIGN1c3RvbVdpZGdldC5hZnRlclJlbmRlcih0aGlzLCBlbCk7XG4gICAgfVxuICAgIGlmIChtb2RhbEVkaXRvci5pc1Nob3dpbmdNb2RhbCgpKSB7XG4gICAgICBmb2N1c0ZpcnN0Q29udHJvbChlbGVtZW50cyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eVRleHRFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yIHtcbiAgY29uc3RydWN0b3IocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwidGV4dFwiO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNFZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xuICAgIHZhciBzdHIgPSB2YWx1ZTtcbiAgICBpZiAoc3RyLmxlbmd0aCA+IDIwKSB7XG4gICAgICBzdHIgPSBzdHIuc3Vic3RyKDAsIDIwKSArIFwiLi4uXCI7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgcHVibGljIG9uRm9jdXMgPSAoKSA9PiB7XG4gICAgdGhpcy5vcHRpb25zW1widW5kb1JlZG9NYW5hZ2VyXCJdLnN0YXJ0VHJhbnNhY3Rpb24oXG4gICAgICBcInRleHRhcmVhIHByb3BlcnR5IGVkaXRvciB0cmFuc2FjdGlvblwiXG4gICAgKTtcbiAgfTtcbiAgcHVibGljIG9uQmx1ciA9ICgpID0+IHtcbiAgICB0aGlzLm9wdGlvbnNbXCJ1bmRvUmVkb01hbmFnZXJcIl0uc3RvcFRyYW5zYWN0aW9uKCk7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eUh0bWxFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eVRleHRFZGl0b3Ige1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJodG1sXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5U3RyaW5nc0VkaXRvciBleHRlbmRzIFN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3Ige1xuICBwdWJsaWMga29UZXh0VmFsdWU6IGFueTtcbiAgY29uc3RydWN0b3IocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gICAgdGhpcy5rb1RleHRWYWx1ZSA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gICAgdGhpcy5rb1RleHRWYWx1ZS5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICB0aGlzLm9uVGV4dFZhbHVlQ2hhbmdlZChuZXdWYWx1ZSk7XG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwic3RyaW5nW11cIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGVUZW1wbGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInN0cmluZ3NcIjtcbiAgfVxuICBwcml2YXRlIGlzU2V0dGluZ0luaXRpYWxWYWx1ZSA9IGZhbHNlO1xuICBwdWJsaWMgYmVmb3JlU2hvd0NvcmUoKSB7XG4gICAgc3VwZXIuYmVmb3JlU2hvd0NvcmUoKTtcbiAgICB2YXIgdmFsdWUgPSB0aGlzLmtvVmFsdWUoKTtcbiAgICB0aGlzLmlzU2V0dGluZ0luaXRpYWxWYWx1ZSA9IHRydWU7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5rb1RleHRWYWx1ZShcIlwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUuam9pbihcIlxcblwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMua29UZXh0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmlzU2V0dGluZ0luaXRpYWxWYWx1ZSA9IGZhbHNlO1xuICB9XG4gIHByaXZhdGUgb25UZXh0VmFsdWVDaGFuZ2VkKG5ld1ZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc1NldHRpbmdJbml0aWFsVmFsdWUpIHJldHVybjtcbiAgICB0aGlzLmtvVmFsdWUoISFuZXdWYWx1ZSA/IG5ld1ZhbHVlLnNwbGl0KFwiXFxuXCIpIDogW10pO1xuICB9XG59XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcbiAgXCJ0ZXh0XCIsXG4gIGZ1bmN0aW9uIChwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSk6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eVRleHRFZGl0b3IocHJvcGVydHkpO1xuICB9XG4pO1xuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFxuICBcImh0bWxcIixcbiAgZnVuY3Rpb24gKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleVByb3BlcnR5SHRtbEVkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXG4gIFwic3RyaW5nW11cIixcbiAgZnVuY3Rpb24gKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleVByb3BlcnR5U3RyaW5nc0VkaXRvcihwcm9wZXJ0eSk7XG4gIH1cbik7XG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJUeXBlRm9yQ2VsbEVkaXRpbmcoXCJ0ZXh0XCIsIFwic3RyaW5nXCIpO1xuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyVHlwZUZvckNlbGxFZGl0aW5nKFwiaHRtbFwiLCBcInN0cmluZ1wiKTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5TW9kYWxFZGl0b3IgfSBmcm9tIFwiLi9wcm9wZXJ0eU1vZGFsRWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckJhc2VcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yRmFjdG9yeVwiO1xuXG5pbnRlcmZhY2UgSU11bHRpcGxlVmFsdWVzQ2F0ZWdvcnkge1xuICBrb0NhdGVnb3J5OiBhbnk7XG4gIGtvVGl0bGVWaXNpYmxlOiBhbnk7XG4gIGtvSXRlbXM6IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5TXVsdGlwbGVWYWx1ZXNFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yIHtcbiAgcHVibGljIGl0ZW1zOiBBcnJheTxTdXJ2ZXkuSXRlbVZhbHVlPiA9IFtdO1xuICBrb0NhdGVnb3JpZXM6IGFueTtcbiAga29FZGl0aW5nVmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBpc0VkaXRpbmdWYWx1ZVNldHRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gICAgdGhpcy5rb0VkaXRpbmdWYWx1ZSA9IGtvLm9ic2VydmFibGVBcnJheSgpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmtvRWRpdGluZ1ZhbHVlLnN1YnNjcmliZShmdW5jdGlvbihuZXdWYWx1ZSkge1xuICAgICAgaWYgKHNlbGYuaXNFZGl0aW5nVmFsdWVTZXR0aW5nKSByZXR1cm47XG4gICAgICBzZWxmLmtvVmFsdWUoW10uY29uY2F0KHNlbGYua29FZGl0aW5nVmFsdWUoKSkpO1xuICAgIH0pO1xuICAgIHRoaXMua29DYXRlZ29yaWVzID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gICAgdGhpcy5rb0NhdGVnb3JpZXMgPSBrby5vYnNlcnZhYmxlQXJyYXkoKTtcbiAgICB0aGlzLnVwZGF0ZUNob2ljZXMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUuZW1wdHlcIik7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkgdmFsdWUgPSBbdmFsdWVdO1xuICAgIHZhciBzdHIgPSBcIltcIjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoaSA+IDApIHN0ciArPSBcIiwgXCI7XG4gICAgICBzdHIgKz0gdGhpcy5nZXRUZXh0QnlJdGVtVmFsdWUodmFsdWVbaV0pO1xuICAgIH1cbiAgICBzdHIgKz0gXCJdXCI7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBwdWJsaWMgc2V0T2JqZWN0KHZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci5zZXRPYmplY3QodmFsdWUpO1xuICAgIHRoaXMudXBkYXRlQ2hvaWNlcygpO1xuICAgIHRoaXMuc2V0RWRpdGluZ1ZhbHVlKCk7XG4gIH1cbiAgcHVibGljIHVwZGF0ZVZhbHVlKCkge1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlKCk7XG4gICAgdGhpcy5zZXRFZGl0aW5nVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJtdWx0aXBsZXZhbHVlc1wiO1xuICB9XG4gIHB1YmxpYyBnZXRCYWNrZ3JvdW5kQ2xzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMua29FZGl0aW5nVmFsdWUoKS5pbmRleE9mKFwiXCIgKyB2YWx1ZSkgPT09IC0xXG4gICAgICA/IFwic3ZkLWxpZ2h0LWJhY2tncm91bmQtY29sb3JcIlxuICAgICAgOiBcInN2ZC1tYWluLWJhY2tncm91bmQtY29sb3JcIjtcbiAgfVxuICBwdWJsaWMgdXBkYXRlRHluYW1pY1Byb3BlcnRpZXMoKSB7XG4gICAgc3VwZXIudXBkYXRlRHluYW1pY1Byb3BlcnRpZXMoKTtcbiAgICB0aGlzLnVwZGF0ZUNob2ljZXMoKTtcbiAgfVxuICBwcml2YXRlIHNldENob2ljZXMoY2hvaWNlczogQXJyYXk8U3VydmV5Lkl0ZW1WYWx1ZT4pIHtcbiAgICBpZiAoIWNob2ljZXMgfHwgIUFycmF5LmlzQXJyYXkoY2hvaWNlcykgfHwgIWNob2ljZXMubGVuZ3RoKSByZXR1cm47XG4gICAgU3VydmV5Lkl0ZW1WYWx1ZS5zZXREYXRhKHRoaXMuaXRlbXMsIGNob2ljZXMpO1xuICAgIHRoaXMuc2V0Q2F0ZWdvcmllcyhjaG9pY2VzKTtcbiAgICB0aGlzLml0ZW1zLnNvcnQoZnVuY3Rpb24oYTogYW55LCBiOiBhbnkpIHtcbiAgICAgIHZhciBjYSA9ICEhYS5jYXRlZ29yeSA/IGEuY2F0ZWdvcnkgOiBcIlwiO1xuICAgICAgdmFyIGNiID0gISFiLmNhdGVnb3J5ID8gYi5jYXRlZ29yeSA6IFwiXCI7XG4gICAgICBpZiAoY2EgIT0gY2IpIHJldHVybiBjYSA8IGNiID8gLTEgOiAxO1xuICAgICAgY2EgPSAhIWEudGV4dCA/IGEudGV4dCA6IFwiXCI7XG4gICAgICBjYiA9ICEhYi50ZXh0ID8gYi50ZXh0IDogXCJcIjtcbiAgICAgIGlmIChjYSAhPSBjYikgcmV0dXJuIGNhIDwgY2IgPyAtMSA6IDE7XG4gICAgICBpZiAoY2EudmFsdWUgPCBjYi52YWx1ZSkgcmV0dXJuIC0xO1xuICAgICAgaWYgKGNhLnZhbHVlID4gY2IudmFsdWUpIHJldHVybiAxO1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgdGhpcy5rb0NhdGVnb3JpZXModGhpcy5idWlsZENhdGVnb3JpZXMoKSk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVDaG9pY2VzKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgY2hvaWNlcyA9ICg8YW55PnRoaXMucHJvcGVydHlbXCJnZXRDaG9pY2VzXCJdKSh0aGlzLm9iamVjdCwgZnVuY3Rpb24oXG4gICAgICBjaG9pY2VzOiBhbnlcbiAgICApIHtcbiAgICAgIHNlbGYuc2V0Q2hvaWNlcyhjaG9pY2VzKTtcbiAgICB9KTtcbiAgICB0aGlzLnNldENob2ljZXMoY2hvaWNlcyk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRUZXh0QnlJdGVtVmFsdWUodmFsOiBhbnkpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLml0ZW1zW2ldLnZhbHVlID09IHZhbCkgcmV0dXJuIHRoaXMuaXRlbXNbaV0udGV4dDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICBwcml2YXRlIHNldEVkaXRpbmdWYWx1ZSgpIHtcbiAgICB0aGlzLmlzRWRpdGluZ1ZhbHVlU2V0dGluZyA9IHRydWU7XG4gICAgdmFyIHZhbCA9IHRoaXMua29WYWx1ZSgpO1xuICAgIGlmICh2YWwgPT0gbnVsbCB8fCB2YWwgPT0gdW5kZWZpbmVkKSB2YWwgPSBbXTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgdmFsID0gW3ZhbF07XG4gICAgdGhpcy5rb0VkaXRpbmdWYWx1ZSh2YWwpO1xuICAgIHRoaXMuaXNFZGl0aW5nVmFsdWVTZXR0aW5nID0gZmFsc2U7XG4gIH1cbiAgcHJpdmF0ZSBzZXRDYXRlZ29yaWVzKGNob2ljZXM6IEFycmF5PFN1cnZleS5JdGVtVmFsdWU+KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjYXRlZ29yeSA9ICg8YW55PmNob2ljZXNbaV0pLmNhdGVnb3J5O1xuICAgICAgaWYgKCEhY2F0ZWdvcnkpIHtcbiAgICAgICAgKDxhbnk+dGhpcy5pdGVtc1tpXSkuY2F0ZWdvcnkgPSBjYXRlZ29yeTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBidWlsZENhdGVnb3JpZXMoKTogQXJyYXk8SU11bHRpcGxlVmFsdWVzQ2F0ZWdvcnk+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIGN1ckNhdGVnb3J5ID0gXCJcIjtcbiAgICB2YXIgY2F0ZWdvcnkgPSBudWxsO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGl0ZW0gPSA8YW55PnRoaXMuaXRlbXNbaV07XG4gICAgICB2YXIgaXRlbUNhdGVnb3J5ID0gISFpdGVtLmNhdGVnb3J5ID8gaXRlbS5jYXRlZ29yeSA6IFwiXCI7XG4gICAgICBpZiAoY2F0ZWdvcnkgPT0gbnVsbCB8fCBjdXJDYXRlZ29yeSAhPSBpdGVtQ2F0ZWdvcnkpIHtcbiAgICAgICAgY3VyQ2F0ZWdvcnkgPSBpdGVtQ2F0ZWdvcnk7XG4gICAgICAgIGNhdGVnb3J5ID0ge1xuICAgICAgICAgIGtvVGl0bGVWaXNpYmxlOiBrby5vYnNlcnZhYmxlKGN1ckNhdGVnb3J5ICE9IFwiXCIpLFxuICAgICAgICAgIGtvQ2F0ZWdvcnk6IGtvLm9ic2VydmFibGUoY3VyQ2F0ZWdvcnkpLFxuICAgICAgICAgIGtvSXRlbXM6IGtvLm9ic2VydmFibGVBcnJheSgpLFxuICAgICAgICAgIGVkaXRvcjogdGhpc1xuICAgICAgICB9O1xuICAgICAgICByZXMucHVzaChjYXRlZ29yeSk7XG4gICAgICB9XG4gICAgICBjYXRlZ29yeS5rb0l0ZW1zLnB1c2goaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcIm11bHRpcGxldmFsdWVzXCIsIGZ1bmN0aW9uKFxuICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuKTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eU11bHRpcGxlVmFsdWVzRWRpdG9yKHByb3BlcnR5KTtcbn0pO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlJdGVtc0VkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5SXRlbXNFZGl0b3JcIjtcbmltcG9ydCB7XG4gIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMsXG59IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHtcbiAgU3VydmV5UXVlc3Rpb25FZGl0b3IsXG4gIFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWwsXG4gIFN1cnZleVF1ZXN0aW9uUHJvcGVydGllcyxcbn0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvclwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5T2JqZWN0UHJvcGVydHkgfSBmcm9tIFwiLi4vb2JqZWN0UHJvcGVydHlcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlJdGVtc0VkaXRvciB7XG4gIGtvRWRpdEl0ZW06IGFueTtcbiAga29Jc0xpc3Q6IGFueTtcbiAga29BY3RpdmVWaWV3OiBhbnk7XG4gIG9uRWRpdEl0ZW1DbGljazogYW55O1xuICBvblJldHVyblRvTGlzdENsaWNrOiBhbnk7XG4gIGtvRWRpdG9yTmFtZTogYW55O1xuICBrb1Nob3dIZWFkZXI6IGFueTtcbiAgcHJpdmF0ZSBrb0NvbHVtbnNWYWx1ZSA9IGtvLm9ic2VydmFibGU8XG4gICAgQXJyYXk8U3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JDb2x1bW4+XG4gID4oW10pO1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5rb1Nob3dIZWFkZXIgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICAgIHRoaXMua29FZGl0SXRlbSA9IGtvLm9ic2VydmFibGUobnVsbCk7XG4gICAgdGhpcy5rb0lzTGlzdCA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gICAgdGhpcy5rb0FjdGl2ZVZpZXcgPSBrby5vYnNlcnZhYmxlKFwiZm9ybVwiKTtcbiAgICB0aGlzLmtvRWRpdEl0ZW0uc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgc2VsZi5rb0lzTGlzdChzZWxmLmtvRWRpdEl0ZW0oKSA9PSBudWxsKTtcbiAgICAgIHNlbGYub25MaXN0RGV0YWlsVmlld0NoYW5nZWQoKTtcbiAgICB9KTtcbiAgICB0aGlzLm9uRWRpdEl0ZW1DbGljayA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICBzZWxmLmtvRWRpdEl0ZW0oaXRlbSk7XG4gICAgfTtcbiAgICB0aGlzLm9uUmV0dXJuVG9MaXN0Q2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgZWRpdEl0ZW0gPSBzZWxmLmtvRWRpdEl0ZW0oKTtcbiAgICAgIGlmIChlZGl0SXRlbS5pdGVtRWRpdG9yICYmIGVkaXRJdGVtLml0ZW1FZGl0b3IuaGFzRXJyb3IoKSkgcmV0dXJuO1xuICAgICAgZWRpdEl0ZW0uaGlkZUl0ZW1FZGl0b3IoKTtcbiAgICAgIHNlbGYua29FZGl0SXRlbShudWxsKTtcbiAgICB9O1xuICAgIHRoaXMua29FZGl0b3JOYW1lID0ga28uY29tcHV0ZWQoZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHNlbGYuZ2V0RWRpdG9yTmFtZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBjb2x1bW5zKCk6IEFycmF5PFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yQ29sdW1uPiB7XG4gICAgcmV0dXJuIHRoaXMua29Db2x1bW5zVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgYmVmb3JlU2hvd0NvcmUoKSB7XG4gICAgc3VwZXIuYmVmb3JlU2hvd0NvcmUoKTtcbiAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoKTtcbiAgICB0aGlzLmtvU2hvd0hlYWRlcih0aGlzLmNhblNob3dIZWFkZXIoKSk7XG4gICAgdGhpcy5rb0VkaXRJdGVtKG51bGwpO1xuICB9XG4gIHB1YmxpYyBjcmVhdGVDb2x1bW5zKCkge1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMuZ2V0Q29sdW1uc1Byb3BlcnRpZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3VsdC5wdXNoKG5ldyBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckNvbHVtbihwcm9wZXJ0aWVzW2ldKSk7XG4gICAgfVxuICAgIHRoaXMua29Db2x1bW5zVmFsdWUocmVzdWx0KTtcbiAgfVxuICBwcml2YXRlIGNhblNob3dIZWFkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMua29Db2x1bW5zVmFsdWUoKS5sZW5ndGggPiAxO1xuICB9XG4gIHByb3RlY3RlZCBnZXRDb2x1bW5zUHJvcGVydGllcygpOiBBcnJheTxTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5PiB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHByb3RlY3RlZCBnZXRQcm9wZXJ0aWVzTmFtZXMoXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgZGVmYXVsdE5hbWVzOiBBcnJheTxzdHJpbmc+XG4gICk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMuZ2V0RGVmaW5lZExpc3RQcm9wZXJ0aWVzKGNsYXNzTmFtZSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMucHVzaChwcm9wZXJ0aWVzW2ldLm5hbWUpO1xuICAgIH1cbiAgICBpZiAocmVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICByZXMgPSBkZWZhdWx0TmFtZXM7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERlZmluZWRMaXN0UHJvcGVydGllcyhjbGFzc05hbWU6IHN0cmluZyA9IG51bGwpOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoIXRoaXMucHJvcGVydHkpIHJldHVybiBbXTtcbiAgICB2YXIgb2JqID0gU3VydmV5LlNlcmlhbGl6ZXIuY3JlYXRlQ2xhc3ModGhpcy5wcm9wZXJ0eS5jbGFzc05hbWUpO1xuICAgIGlmICghb2JqKSByZXR1cm4gW107XG4gICAgdmFyIHByb3BzID0gbmV3IFN1cnZleVF1ZXN0aW9uUHJvcGVydGllcyhcbiAgICAgIG9iaixcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIFwibGlzdFwiLFxuICAgICAgdGhpcy5vYmplY3QsXG4gICAgICB0aGlzLnByb3BlcnR5XG4gICAgKTtcbiAgICBpZiAocHJvcHMuZ2V0VGFicygpLmxlbmd0aCA9PSAwKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHByb3BzLmdldFRhYnMoKVswXS5wcm9wZXJ0aWVzO1xuICB9XG4gIHByb3RlY3RlZCBnZXREZWZhdWx0TGlzdFByb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciBwcm9wZXJ0aWVzID0gU3VydmV5LlNlcmlhbGl6ZXIuZ2V0UHJvcGVydGllcyh0aGlzLnByb3BlcnR5LmNsYXNzTmFtZSk7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmlzUHJvcGVydHlTaG93bkluTGlzdChwcm9wZXJ0aWVzW2ldKSkgY29udGludWU7XG4gICAgICByZXMucHVzaChwcm9wZXJ0aWVzW2ldKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcm90ZWN0ZWQgaXNQcm9wZXJ0eVNob3duSW5MaXN0KFxuICAgIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwcm9wZXJ0eS52aXNpYmxlICYmIHByb3BlcnR5LnNob3dNb2RlICE9PSBcImZvcm1cIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UHJvcGVydGllc0J5TmFtZXMoXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgbmFtZXM6IEFycmF5PGFueT5cbiAgKTogQXJyYXk8U3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbmFtZSA9IG5hbWVzW2ldO1xuICAgICAgbmFtZS5uYW1lID8gbmFtZS5uYW1lIDogbmFtZTtcbiAgICAgIHZhciBwcm9wID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KGNsYXNzTmFtZSwgbmFtZSk7XG4gICAgICBpZiAocHJvcCAmJiBwcm9wLnZpc2libGUpIHtcbiAgICAgICAgcmVzLnB1c2gocHJvcCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEVkaXRvck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0SXRlbUNsYXNzTmFtZShpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIHByb3RlY3RlZCBjYW5EZWxldGVJdGVtKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5vcHRpb25zIHx8XG4gICAgICB0aGlzLm9wdGlvbnMub25DYW5EZWxldGVJdGVtQ2FsbGJhY2sodGhpcy5vYmplY3QsIGl0ZW0sIHRydWUpXG4gICAgKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlRWRpdG9ySXRlbShpdGVtOiBhbnkpOiBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckl0ZW0ge1xuICAgIHJldHVybiBuZXcgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JJdGVtKFxuICAgICAgaXRlbSxcbiAgICAgICgpID0+IHRoaXMuY29sdW1ucyxcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgIChpdGVtKSA9PiB0aGlzLmdldEl0ZW1DbGFzc05hbWUoaXRlbSksXG4gICAgICB0aGlzLmNhbkRlbGV0ZUl0ZW0oaXRlbSksXG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUsXG4gICAgICB0aGlzLnJlYWRPbmx5KCksXG4gICAgICB0aGlzLm9iamVjdCxcbiAgICAgIHRoaXMucHJvcGVydHlcbiAgICApO1xuICB9XG4gIHByb3RlY3RlZCBvbkxpc3REZXRhaWxWaWV3Q2hhbmdlZCgpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckl0ZW0ge1xuICBwdWJsaWMgc3RhdGljIGRyYWdJY29uTmFtZSA9IFwiaWNvbi1kcmFnLWl0ZW1cIjtcbiAgcHVibGljIHN0YXRpYyBkZWxldGVJY29uTmFtZSA9IFwiaWNvbi1kZWxldGUtY3Jvc3NcIjtcbiAgZ2V0IGRyYWdJY29uKCkge1xuICAgIHJldHVybiBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckl0ZW0uZHJhZ0ljb25OYW1lO1xuICB9XG4gIGdldCBkZWxldGVJY29uKCkge1xuICAgIHJldHVybiBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckl0ZW0uZGVsZXRlSWNvbk5hbWU7XG4gIH1cbiAgcHVibGljIGtvSGFzRGV0YWlsczogYW55O1xuICBrb0NhbkRlbGV0ZUl0ZW06IGFueTtcbiAgcHJvdGVjdGVkIG9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zO1xuICBwcml2YXRlIGtvQ2VsbHNWYWx1ZSA9IGtvLm9ic2VydmFibGVBcnJheTxTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckVkaXRvckNlbGw+KCk7XG4gIHByaXZhdGUgaXRlbUVkaXRvclZhbHVlOiBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb2JqOiBhbnksXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5zOiAoKSA9PiBBcnJheTxTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckNvbHVtbj4sXG4gICAgb3B0aW9uczogSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMsXG4gICAgcHJpdmF0ZSBnZXRJdGVtQ2xhc3NOYW1lOiAoaXRlbTogYW55KSA9PiBzdHJpbmcgPSBudWxsLFxuICAgIGNhbkRlbGV0ZUl0ZW06IGJvb2xlYW4gPSB0cnVlLFxuICAgIHByaXZhdGUgcGFyZW50TGlzdDogQXJyYXk8U3VydmV5LkJhc2U+ID0gbnVsbCxcbiAgICBwcml2YXRlIGlzUmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBwcml2YXRlIHBhcmVudE9iajogU3VydmV5LkJhc2UgPSB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSBwYXJlbnRQcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSA9IHVuZGVmaW5lZFxuICApIHtcbiAgICB0aGlzLmtvQ2FuRGVsZXRlSXRlbSA9IGtvLm9ic2VydmFibGUoY2FuRGVsZXRlSXRlbSk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmtvSGFzRGV0YWlscyA9IGtvLm9ic2VydmFibGUodGhpcy5oYXNEZXRhaWxzUHJvcGVydGllcygpKTtcbiAgICBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICB2YXIgY29sdW1ucyA9IHRoaXMuZ2V0Q29sdW1ucygpO1xuICAgICAgdGhpcy5rb0NlbGxzVmFsdWUoW10pO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMua29DZWxsc1ZhbHVlLnB1c2goXG4gICAgICAgICAgbmV3IFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yRWRpdG9yQ2VsbChcbiAgICAgICAgICAgIG9iaixcbiAgICAgICAgICAgIGNvbHVtbnNbaV0ucHJvcGVydHksXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICB0aGlzLnBhcmVudExpc3QsXG4gICAgICAgICAgICB0aGlzLmlzUmVhZE9ubHksXG4gICAgICAgICAgICB0aGlzLnBhcmVudE9iaixcbiAgICAgICAgICAgIHRoaXMucGFyZW50UHJvcGVydHlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldENsYXNzTmFtZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5nZXRJdGVtQ2xhc3NOYW1lKSByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gdGhpcy5nZXRJdGVtQ2xhc3NOYW1lKHRoaXMub2JqKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGNvbHVtbnMoKTogQXJyYXk8U3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JDb2x1bW4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5zKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGhhc0RldGFpbHNQcm9wZXJ0aWVzKCk6IGJvb2xlYW4ge1xuICAgIHZhciBwcm9wZXJ0aWVzID0gbmV3IFN1cnZleVF1ZXN0aW9uUHJvcGVydGllcyhcbiAgICAgIHRoaXMub2JqLFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgdGhpcy5nZXRDbGFzc05hbWUoKVxuICAgICk7XG4gICAgcmV0dXJuICFwcm9wZXJ0aWVzLmlzRW1wdHk7XG4gIH1cbiAgcHVibGljIGhpZGVJdGVtRWRpdG9yKCkge1xuICAgIHRoaXMuaXRlbUVkaXRvclZhbHVlID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlcygpO1xuICB9XG4gIHB1YmxpYyBnZXQgaXRlbUVkaXRvcigpOiBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsIHtcbiAgICBpZiAoIXRoaXMuaXRlbUVkaXRvclZhbHVlKVxuICAgICAgdGhpcy5pdGVtRWRpdG9yVmFsdWUgPSB0aGlzLmNyZWF0ZVN1cnZleVF1ZXN0aW9uRWRpdG9yKCk7XG4gICAgcmV0dXJuIHRoaXMuaXRlbUVkaXRvclZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgY2VsbHMoKTogQXJyYXk8U3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JFZGl0b3JDZWxsPiB7XG4gICAgcmV0dXJuIHRoaXMua29DZWxsc1ZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLml0ZW1FZGl0b3JWYWx1ZSAmJiB0aGlzLml0ZW1FZGl0b3JWYWx1ZS5oYXNFcnJvcigpKSByZXR1cm4gdHJ1ZTtcbiAgICB2YXIgcmVzID0gZmFsc2U7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNlbGxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMgPSB0aGlzLmNlbGxzW2ldLmhhc0Vycm9yIHx8IHJlcztcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcm90ZWN0ZWQgdXBkYXRlVmFsdWVzKCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jZWxscy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5jZWxsc1tpXS51cGRhdGVWYWx1ZSgpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlU3VydmV5UXVlc3Rpb25FZGl0b3IoKSB7XG4gICAgdmFyIHJlcyA9IG5ldyBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsKFxuICAgICAgdGhpcy5vYmosXG4gICAgICB0aGlzLmdldENsYXNzTmFtZSgpLFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgdHJ1ZSxcbiAgICAgIHRoaXMuaXNSZWFkT25seVxuICAgICk7XG4gICAgcmVzLnNldFBhcmVudExpc3QodGhpcy5wYXJlbnRMaXN0KTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIGZvY3VzKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdmFyIGZpcnN0Q2VsbCA9IHRoaXMuY2VsbHNbMF07XG4gICAgICBmaXJzdENlbGwgJiYgZmlyc3RDZWxsLmVkaXRvci5mb2N1cygpO1xuICAgIH0sIDEwKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JDb2x1bW4ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHt9XG4gIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHZhciB0ZXh0ID0gZWRpdG9yTG9jYWxpemF0aW9uLmhhc1N0cmluZyhcInBlbC5cIiArIHRoaXMucHJvcGVydHkubmFtZSlcbiAgICAgID8gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcInBlbC5cIiArIHRoaXMucHJvcGVydHkubmFtZSlcbiAgICAgIDogZWRpdG9yTG9jYWxpemF0aW9uLmdldFByb3BlcnR5TmFtZUluRWRpdG9yKFxuICAgICAgICB0aGlzLnByb3BlcnR5Lm5hbWUsXG4gICAgICAgIHRoaXMucHJvcGVydHkuZGlzcGxheU5hbWVcbiAgICAgICk7XG4gICAgcmV0dXJuIHRleHQgPyB0ZXh0IDogdGhpcy5wcm9wZXJ0eS5uYW1lO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvckVkaXRvckNlbGwge1xuICBwcml2YXRlIG9iamVjdFByb3BlcnR5VmFsdWU6IFN1cnZleU9iamVjdFByb3BlcnR5O1xuICBwcml2YXRlIG9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb2JqOiBhbnksXG4gICAgcHVibGljIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIG9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zID0gbnVsbCxcbiAgICBsaXN0T2JqOiBBcnJheTxTdXJ2ZXkuQmFzZT4gPSBudWxsLFxuICAgIHBhcmVudFJlYWRPbmx5OiBib29sZWFuID0gZmFsc2UsXG4gICAgcHJpdmF0ZSBwYXJlbnRPYmo6IFN1cnZleS5CYXNlID0gdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgcGFyZW50UHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkgPSB1bmRlZmluZWRcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLm9iamVjdFByb3BlcnR5VmFsdWUgPSBuZXcgU3VydmV5T2JqZWN0UHJvcGVydHkoXG4gICAgICB0aGlzLnByb3BlcnR5LFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gICAgbGV0IGVkaXRvciA9IHRoaXMub2JqZWN0UHJvcGVydHlWYWx1ZS5lZGl0b3I7XG4gICAgZWRpdG9yLmlzSW5wbGFjZVByb3BlcnR5ID0gdHJ1ZTtcbiAgICBlZGl0b3IucGFyZW50TGlzdCA9IGxpc3RPYmo7XG4gICAgZWRpdG9yLnBhcmVudFJlYWRPbmx5ID0gcGFyZW50UmVhZE9ubHk7XG4gICAgZWRpdG9yLnBhcmVudE9iaiA9IHRoaXMucGFyZW50T2JqO1xuICAgIGVkaXRvci5wYXJlbnRQcm9wZXJ0eSA9IHRoaXMucGFyZW50UHJvcGVydHk7XG4gICAgdGhpcy5vYmplY3RQcm9wZXJ0eS5vYmplY3QgPSBvYmo7XG4gIH1cbiAgcHVibGljIGdldCBvYmplY3RQcm9wZXJ0eSgpOiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0UHJvcGVydHlWYWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvcigpOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICAgIHJldHVybiB0aGlzLm9iamVjdFByb3BlcnR5LmVkaXRvcjtcbiAgfVxuICBwdWJsaWMgZ2V0IGtvVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5vYmplY3RQcm9wZXJ0eS5lZGl0b3Iua29WYWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmtvVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5rb1ZhbHVlKHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IuaGFzRXJyb3IoKTtcbiAgfVxuICBwdWJsaWMgdXBkYXRlVmFsdWUoKSB7XG4gICAgdGhpcy5lZGl0b3IudXBkYXRlVmFsdWUoKTtcbiAgfVxufVxuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlJdGVtc0VkaXRvciB9IGZyb20gXCIuL3Byb3BlcnR5SXRlbXNFZGl0b3JcIjtcbmltcG9ydCB7IFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWwgfSBmcm9tIFwiLi4vcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uRWRpdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eU9uZVNlbGVjdGVkRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlJdGVtc0VkaXRvciB7XG4gIHB1YmxpYyBzZWxlY3RlZE9iamVjdEVkaXRvciA9IGtvLm9ic2VydmFibGU8U3VydmV5RWxlbWVudEVkaXRvckNvbnRlbnRNb2RlbD4oXG4gICAgbnVsbFxuICApO1xuICBwdWJsaWMga29TZWxlY3RlZCA9IGtvLm9ic2VydmFibGUobnVsbCk7XG4gIHB1YmxpYyBrb0NoYW5nZUNvdW50ZXIgPSBrby5vYnNlcnZhYmxlKDApO1xuICBwdWJsaWMga29BdmFpbGFibGVDbGFzc2VzOiBhbnk7XG4gIHByaXZhdGUgY3VycmVudE9iakNsYXNzTmFtZTogc3RyaW5nO1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5rb0F2YWlsYWJsZUNsYXNzZXMgPSBrby5vYnNlcnZhYmxlQXJyYXkodGhpcy5nZXRBdmFpbGFibGVDbGFzc2VzKCkpO1xuICAgIHRoaXMua29TZWxlY3RlZC5zdWJzY3JpYmUoZnVuY3Rpb24obmV3VmFsdWUpIHtcbiAgICAgIGlmICghbmV3VmFsdWUpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIEFycmF5LmlzQXJyYXkoc2VsZi5vcmlnaW5hbFZhbHVlKSAmJlxuICAgICAgICAgIHNlbGYub3JpZ2luYWxWYWx1ZS5pbmRleE9mKG5ld1ZhbHVlKSA8IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIG5ld1ZhbHVlID09IG51bGwgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShzZWxmLm9yaWdpbmFsVmFsdWUpICYmXG4gICAgICAgIHNlbGYub3JpZ2luYWxWYWx1ZS5sZW5ndGggPiAwXG4gICAgICApIHtcbiAgICAgICAgc2VsZi5rb1NlbGVjdGVkKHNlbGYub3JpZ2luYWxWYWx1ZVswXSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHNlbGYuc2VsZWN0ZWRPYmplY3RFZGl0b3Ioc2VsZi5jcmVhdGVTZWxlY3RlZE9iakVkaXRvcihuZXdWYWx1ZSkpO1xuICAgIH0pO1xuICAgIHRoaXMub25EZWxldGVDbGljayA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5kZWxldGVJdGVtKHNlbGYua29TZWxlY3RlZCgpKTtcbiAgICB9O1xuICAgIHRoaXMub25BZGRDbGljayA9IGZ1bmN0aW9uKGl0ZW06IGFueSkge1xuICAgICAgc2VsZi5hZGROZXdJdGVtKCEhaXRlbSA/IGl0ZW0udmFsdWUgOiBudWxsKTtcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZVRlbXBsYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwib25lLXNlbGVjdGVkXCI7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwib25lc2VsZWN0ZWRcIjtcbiAgfVxuICBwdWJsaWMgZ2V0SXRlbVRleHQoaXRlbTogYW55LCBjb3VudGVyOiBhbnkgPSBudWxsKTogYW55IHtcbiAgICByZXR1cm4gaXRlbS5nZXRUeXBlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldE9iakNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50T2JqQ2xhc3NOYW1lO1xuICB9XG4gIHByb3RlY3RlZCBnZXRBdmFpbGFibGVDbGFzc2VzKCk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBwcm90ZWN0ZWQgYWRkTmV3SXRlbShjbGFzc05hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudE9iakNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICB0aGlzLmFkZEl0ZW0oKTtcbiAgICB0aGlzLnNlbGVjdE5ld0l0ZW0odHJ1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2VkKCkge1xuICAgIHN1cGVyLm9uVmFsdWVDaGFuZ2VkKCk7XG4gICAgdGhpcy5rb0F2YWlsYWJsZUNsYXNzZXModGhpcy5nZXRBdmFpbGFibGVDbGFzc2VzKCkpO1xuICAgIHRoaXMuc2VsZWN0TmV3SXRlbShmYWxzZSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVTZWxlY3RlZE9iakVkaXRvcihpdGVtOiBhbnkpOiBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsIHtcbiAgICBpZiAoIWl0ZW0pIHJldHVybiBudWxsO1xuICAgIHZhciBlZGl0b3IgPSBuZXcgU3VydmV5RWxlbWVudEVkaXRvckNvbnRlbnRNb2RlbChpdGVtLCBudWxsLCB0aGlzLm9wdGlvbnMpO1xuICAgIGVkaXRvci5vblByb3BlcnR5Q2hhbmdlZCA9IChwcm9wOiBhbnkpID0+IHtcbiAgICAgIHRoaXMua29DaGFuZ2VDb3VudGVyKHRoaXMua29DaGFuZ2VDb3VudGVyKCkgKyAxKTtcbiAgICB9O1xuICAgIHRoaXMub25DcmVhdGVFZGl0b3IoZWRpdG9yKTtcbiAgICByZXR1cm4gZWRpdG9yO1xuICB9XG4gIHByb3RlY3RlZCBvbkNyZWF0ZUVkaXRvcihlZGl0b3I6IFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWwpIHt9XG4gIHByb3RlY3RlZCBvbkl0ZW1EZWxldGVkKG9iajogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4ID49IHRoaXMub3JpZ2luYWxWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIGluZGV4ID0gdGhpcy5vcmlnaW5hbFZhbHVlLmxlbmd0aCAtIDE7XG4gICAgfVxuICAgIHRoaXMua29TZWxlY3RlZChpbmRleCA+IC0xID8gdGhpcy5vcmlnaW5hbFZhbHVlW2luZGV4XSA6IG51bGwpO1xuICB9XG4gIHByaXZhdGUgc2VsZWN0TmV3SXRlbShpc05ldzogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5rb1NlbGVjdGVkIHx8ICFBcnJheS5pc0FycmF5KHRoaXMub3JpZ2luYWxWYWx1ZSkpIHJldHVybjtcbiAgICB2YXIgaW5kZXggPSB0aGlzLm9yaWdpbmFsVmFsdWUubGVuZ3RoIC0gMTtcbiAgICBpZiAoIWlzTmV3KSB7XG4gICAgICB2YXIgaW5kZXggPSB0aGlzLm9yaWdpbmFsVmFsdWUuaW5kZXhPZih0aGlzLmtvU2VsZWN0ZWQoKSk7XG4gICAgICBpZiAoaW5kZXggPCAwICYmIHRoaXMub3JpZ2luYWxWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIHZhbCA9IGluZGV4ID4gLTEgPyB0aGlzLm9yaWdpbmFsVmFsdWVbaW5kZXhdIDogbnVsbDtcbiAgICBpZiAodmFsICE9IHRoaXMua29TZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLmtvU2VsZWN0ZWQodmFsKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZU5ld0l0ZW0oKTogYW55IHtcbiAgICByZXR1cm4gU3VydmV5LlNlcmlhbGl6ZXIuY3JlYXRlQ2xhc3ModGhpcy5nZXRPYmpDbGFzc05hbWUoKSk7XG4gIH1cbn1cbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7XG4gIFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSxcbiAgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMsXG59IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25FZGl0b3IgfSBmcm9tIFwiLi4vcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uRWRpdG9yXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQge1xuICBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvcixcbiAgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JJdGVtLFxufSBmcm9tIFwiLi9wcm9wZXJ0eU5lc3RlZFByb3BlcnR5RWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciB9IGZyb20gXCIuLi9zdXJ2ZXlIZWxwZXJcIjtcbmltcG9ydCB7IEVkaXRhYmxlT2JqZWN0IH0gZnJvbSBcIi4vZWRpdGFibGVPYmplY3RcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5UGFnZXNFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInN1cnZleXBhZ2VzXCI7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlVGVtcGxhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJuZXN0ZWQtaXRlbXNcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RWRpdG9yTmFtZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5rb0VkaXRJdGVtKCkpIHJldHVybiBcIlwiO1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb25cbiAgICAgIC5nZXRTdHJpbmcoXCJwZS5jb2x1bW5FZGl0XCIpXG4gICAgICBbXCJmb3JtYXRcIl0odGhpcy5rb0VkaXRJdGVtKCkub2JqLm5hbWUpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRJdGVtQ2xhc3NOYW1lKGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicGFnZVwiO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVOZXdJdGVtKCk6IGFueSB7XG4gICAgdmFyIG5ld05hbWUgPSBTdXJ2ZXlIZWxwZXIuZ2V0TmV3UGFnZU5hbWUodGhpcy5vcmlnaW5hbFZhbHVlKTtcbiAgICByZXR1cm4gbmV3IFN1cnZleS5QYWdlKG5ld05hbWUpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRDb2x1bW5zUHJvcGVydGllcygpOiBBcnJheTxTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5PiB7XG4gICAgdmFyIHByb3BlcnR5TmFtZXMgPSBbXCJuYW1lXCIsIFwidGl0bGVcIl07XG4gICAgaWYgKCEhdGhpcy5vYmplY3QpIHtcbiAgICAgIHByb3BlcnR5TmFtZXMgPSB0aGlzLmdldFByb3BlcnRpZXNOYW1lcyhcInBhZ2VAXCIgKyB0aGlzLm9iamVjdC5nZXRUeXBlKCksIFtcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgIFwidGl0bGVcIixcbiAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0aWVzQnlOYW1lcyhcInBhZ2VcIiwgcHJvcGVydHlOYW1lcyk7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZUVkaXRvckl0ZW0oaXRlbTogYW55KTogU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3JJdGVtIHtcbiAgICB2YXIgcmVzID0gc3VwZXIuY3JlYXRlRWRpdG9ySXRlbShpdGVtKTtcbiAgICByZXMua29IYXNEZXRhaWxzKGZhbHNlKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBjYW5EZWxldGVJdGVtKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHZhciBzdXJ2ZXkgPSBFZGl0YWJsZU9iamVjdC5nZXRTdXJ2ZXkodGhpcy5vYmplY3QpO1xuICAgIGlmICghc3VydmV5KSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMub3B0aW9ucyB8fFxuICAgICAgdGhpcy5vcHRpb25zLm9uQ2FuRGVsZXRlSXRlbUNhbGxiYWNrKFxuICAgICAgICB0aGlzLm9iamVjdCxcbiAgICAgICAgaXRlbSxcbiAgICAgICAgc3VydmV5LmN1cnJlbnRQYWdlICE9PSBpdGVtXG4gICAgICApXG4gICAgKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlRWRpdG9yT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB7IGFsbG93QWRkUmVtb3ZlSXRlbXM6IHRydWUsIGFsbG93UmVtb3ZlQWxsSXRlbXM6IGZhbHNlIH07XG4gIH1cbiAgcHJvdGVjdGVkIHN0YXJ0RHJhZ0l0ZW0oKSB7XG4gICAgdmFyIHN1cnZleSA9IEVkaXRhYmxlT2JqZWN0LmdldFN1cnZleSh0aGlzLm9iamVjdCk7XG4gICAgaWYgKCEhc3VydmV5KSB7XG4gICAgICBzdXJ2ZXlbXCJvbkNvbnRhaW5zUGFnZUNhbGxiYWNrXCJdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBlbmREcmFnSXRlbSgpIHtcbiAgICB2YXIgc3VydmV5ID0gRWRpdGFibGVPYmplY3QuZ2V0U3VydmV5KHRoaXMub2JqZWN0KTtcbiAgICBpZiAoISFzdXJ2ZXkpIHtcbiAgICAgIHN1cnZleVtcIm9uQ29udGFpbnNQYWdlQ2FsbGJhY2tcIl0gPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXCJzdXJ2ZXlwYWdlc1wiLCBmdW5jdGlvbiAoXG4gIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4pOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICByZXR1cm4gbmV3IFN1cnZleVByb3BlcnR5UGFnZXNFZGl0b3IocHJvcGVydHkpO1xufSk7XG4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yIH0gZnJvbSBcIi4vcHJvcGVydHlNb2RhbEVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmltcG9ydCB7IFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWwgfSBmcm9tIFwiLi4vcXVlc3Rpb25FZGl0b3JzL3F1ZXN0aW9uRWRpdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eVJlc3VsdGZ1bGxFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eU1vZGFsRWRpdG9yIHtcbiAga29Db250ZW50RWRpdG9yOiBhbnk7XG4gIHB1YmxpYyBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXk7XG4gIHB1YmxpYyBxdWVzdGlvbjogU3VydmV5LlF1ZXN0aW9uRHJvcGRvd247XG5cbiAgY29uc3RydWN0b3IocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gICAgdGhpcy5rb0NvbnRlbnRFZGl0b3IgPSBrby5vYnNlcnZhYmxlKG51bGwpO1xuICAgIHRoaXMuY3JlYXRlU3VydmV5KCk7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicmVzdGZ1bGxcIjtcbiAgfVxuICBwdWJsaWMgYmVmb3JlU2hvd0NvcmUoKSB7XG4gICAgc3VwZXIuYmVmb3JlU2hvd0NvcmUoKTtcbiAgICB0aGlzLnNldFRlc3RRdWVzdGlvblByb3BlcnRpZXMoKTtcbiAgICB2YXIgY29udGVudEVkaXRvciA9IG5ldyBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsKFxuICAgICAgdGhpcy5vcmlnaW5hbFZhbHVlLFxuICAgICAgXCJcIixcbiAgICAgIHRoaXMub3B0aW9uc1xuICAgICk7XG4gICAgY29udGVudEVkaXRvci5vblByb3BlcnR5Q2hhbmdlZCA9IChwcm9wOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZUNob2ljZXNCeVVybFByb3AocHJvcC5uYW1lKTtcbiAgICAgIHRoaXMub3B0aW9ucy5vblByb3BlcnR5VmFsdWVDaGFuZ2VkKFxuICAgICAgICB0aGlzLnByb3BlcnR5LFxuICAgICAgICB0aGlzLm9iamVjdCxcbiAgICAgICAgdGhpcy5vYmplY3RbcHJvcC5uYW1lXVxuICAgICAgKTtcbiAgICB9O1xuICAgIHRoaXMua29Db250ZW50RWRpdG9yKGNvbnRlbnRFZGl0b3IpO1xuICB9XG4gIHB1YmxpYyBnZXQgY29udGVudEVkaXRvcigpOiBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5rb0NvbnRlbnRFZGl0b3IoKTtcbiAgfVxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLnVybCkgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJwZS5lbXB0eVwiKTtcbiAgICB2YXIgc3RyID0gdmFsdWUudXJsO1xuICAgIGlmIChzdHIubGVuZ3RoID4gMjApIHtcbiAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgMjApICsgXCIuLi5cIjtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBwcml2YXRlIGNoYW5nZUNob2ljZXNCeVVybFByb3AocHJvcE5hbWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5xdWVzdGlvbiB8fCAhdGhpcy5vcmlnaW5hbFZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5xdWVzdGlvbi5jaG9pY2VzQnlVcmxbcHJvcE5hbWVdID0gdGhpcy5vcmlnaW5hbFZhbHVlW3Byb3BOYW1lXTtcbiAgICB0aGlzLnF1ZXN0aW9uLmNob2ljZXNCeVVybC5ydW4oKTtcbiAgfVxuICBwcml2YXRlIHNldFRlc3RRdWVzdGlvblByb3BlcnRpZXMoKSB7XG4gICAgaWYgKCF0aGlzLnF1ZXN0aW9uIHx8ICF0aGlzLm9yaWdpbmFsVmFsdWUpIHJldHVybjtcbiAgICB2YXIganNvbiA9IHRoaXMub3JpZ2luYWxWYWx1ZS50b0pTT04oKTtcbiAgICBuZXcgU3VydmV5Lkpzb25PYmplY3QoKS50b09iamVjdChqc29uLCB0aGlzLnF1ZXN0aW9uLmNob2ljZXNCeVVybCk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVTdXJ2ZXkoKSB7XG4gICAgdGhpcy5zdXJ2ZXkgPSAhIXRoaXMub3B0aW9uc1xuICAgICAgPyB0aGlzLm9wdGlvbnMuY3JlYXRlU3VydmV5KHt9LCBcInJlc3RmdWxFZGl0b3JcIilcbiAgICAgIDogbmV3IFN1cnZleS5TdXJ2ZXkoKTtcbiAgICB0aGlzLnN1cnZleS5zaG93TmF2aWdhdGlvbkJ1dHRvbnMgPSBmYWxzZTtcbiAgICB0aGlzLnN1cnZleS5zaG93UXVlc3Rpb25OdW1iZXJzID0gXCJvZmZcIjtcbiAgICB2YXIgcGFnZSA9IHRoaXMuc3VydmV5LmFkZE5ld1BhZ2UoXCJwYWdlMVwiKTtcbiAgICB0aGlzLnF1ZXN0aW9uID0gPFN1cnZleS5RdWVzdGlvbkRyb3Bkb3duPihcbiAgICAgIHBhZ2UuYWRkTmV3UXVlc3Rpb24oXCJkcm9wZG93blwiLCBcInExXCIpXG4gICAgKTtcbiAgICB0aGlzLnF1ZXN0aW9uLnRpdGxlID0gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcInBlLnRlc3RTZXJ2aWNlXCIpO1xuICAgIHRoaXMucXVlc3Rpb24uY2hvaWNlcyA9IFtdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eVJlc3VsdGZ1bGxFZGl0b3JJdGVtIHtcbiAgcHVibGljIGtvVmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBpc1NldHR0aW5nVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgICB2YWw6IHN0cmluZyxcbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQ6IChpdGVtOiBTdXJ2ZXlQcm9wZXJ0eVJlc3VsdGZ1bGxFZGl0b3JJdGVtKSA9PiBhbnlcbiAgKSB7XG4gICAgdGhpcy5rb1ZhbHVlID0ga28ub2JzZXJ2YWJsZSh2YWwgPyB2YWwgOiBcIlwiKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5rb1ZhbHVlLnN1YnNjcmliZShmdW5jdGlvbihuZXdWYWx1ZSkge1xuICAgICAgaWYgKCFzZWxmLmlzU2V0dHRpbmdWYWx1ZSkge1xuICAgICAgICBzZWxmLm9uVmFsdWVDaGFuZ2VkKHNlbGYpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuaXNTZXR0dGluZ1ZhbHVlID0gdHJ1ZTtcbiAgICB0aGlzLmtvVmFsdWUodmFsKTtcbiAgICB0aGlzLmlzU2V0dHRpbmdWYWx1ZSA9IGZhbHNlO1xuICB9XG59XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcInJlc3RmdWxsXCIsIGZ1bmN0aW9uKFxuICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuKTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eVJlc3VsdGZ1bGxFZGl0b3IocHJvcGVydHkpO1xufSk7XG4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQge1xuICBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UsXG4gIElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zXG59IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgU3VydmV5SGVscGVyIH0gZnJvbSBcIi4uL3N1cnZleUhlbHBlclwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3IgfSBmcm9tIFwiLi9wcm9wZXJ0eU5lc3RlZFByb3BlcnR5RWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5VGV4dEl0ZW1zRWRpdG9yIGV4dGVuZHMgU3VydmV5TmVzdGVkUHJvcGVydHlFZGl0b3Ige1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJ0ZXh0aXRlbVtdXCI7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlVGVtcGxhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJuZXN0ZWQtaXRlbXNcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RWRpdG9yTmFtZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5rb0VkaXRJdGVtKCkpIHJldHVybiBcIlwiO1xuICAgIHJldHVybiB0aGlzLmtvRWRpdEl0ZW0oKS50ZXh0O1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVOZXdJdGVtKCk6IGFueSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXkuTXVsdGlwbGVUZXh0SXRlbSh0aGlzLmdldE5ld05hbWUoKSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEl0ZW1DbGFzc05hbWUoaXRlbTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJtdWx0aXBsZXRleHRpdGVtXCI7XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvbHVtbnNQcm9wZXJ0aWVzKCk6IEFycmF5PFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHk+IHtcbiAgICB2YXIgbmFtZXMgPSB0aGlzLmdldFByb3BlcnRpZXNOYW1lcyhcIm11bHRpcGxldGV4dEBpdGVtc1wiLCBbXSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydGllc0J5TmFtZXMoXCJtdWx0aXBsZXRleHRpdGVtXCIsIG5hbWVzKTtcbiAgfVxuICBwcml2YXRlIGdldE5ld05hbWUoKTogc3RyaW5nIHtcbiAgICB2YXIgb2JqcyA9IFtdO1xuICAgIHZhciBpdGVtcyA9IHRoaXMub3JpZ2luYWxWYWx1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgaWYgKCEhaXRlbSkge1xuICAgICAgICBvYmpzLnB1c2goeyBuYW1lOiBpdGVtLm5hbWUgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBTdXJ2ZXlIZWxwZXIuZ2V0TmV3TmFtZShcbiAgICAgIG9ianMsXG4gICAgICBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiZWQubmV3VGV4dEl0ZW1OYW1lXCIpXG4gICAgKTtcbiAgfVxufVxuXG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXCJ0ZXh0aXRlbVtdXCIsIGZ1bmN0aW9uIChcbiAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHlcbik6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gIHJldHVybiBuZXcgU3VydmV5UHJvcGVydHlUZXh0SXRlbXNFZGl0b3IocHJvcGVydHkpO1xufSk7XG4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eU9uZVNlbGVjdGVkRWRpdG9yIH0gZnJvbSBcIi4vcHJvcGVydHlPbmVTZWxlY3RlZEVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIH0gZnJvbSBcIi4vcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckZhY3RvcnlcIjtcbmltcG9ydCB7IEV4cHJlc3Npb25Ub0Rpc3BsYXlUZXh0IH0gZnJvbSBcIi4uL2V4cHJlc3Npb25Ub0Rpc3BsYXlUZXh0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5RWxlbWVudFNlbGVjdG9yIH0gZnJvbSBcIi4vc3VydmV5RWxlbWVudFNlbGVjdG9yXCI7XG5pbXBvcnQgeyBFZGl0YWJsZU9iamVjdCB9IGZyb20gXCIuL2VkaXRhYmxlT2JqZWN0XCI7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eVRyaWdnZXJzRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlPbmVTZWxlY3RlZEVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInRyaWdnZXJzXCI7XG4gIH1cbiAgcHVibGljIGdldEl0ZW1UZXh0KGl0ZW06IGFueSwgY291bnRlcjogYW55ID0gbnVsbCk6IGFueSB7XG4gICAgaWYgKCFpdGVtLmV4cHJlc3Npb24pXG4gICAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcInBlLnRyaWdnZXJOb3RTZXRcIik7XG4gICAgdmFyIHN1cnZleSA9ICEhdGhpcy5nZXRTdXJ2ZXkgPyB0aGlzLmdldFN1cnZleSgpIDogbnVsbDtcbiAgICB2YXIgcmVzID0gaXRlbS5leHByZXNzaW9uO1xuICAgIGlmICghIXN1cnZleSkge1xuICAgICAgcmVzID0gbmV3IEV4cHJlc3Npb25Ub0Rpc3BsYXlUZXh0KHN1cnZleSwgdGhpcy5vcHRpb25zKS50b0Rpc3BsYXlUZXh0KFxuICAgICAgICBpdGVtLmV4cHJlc3Npb25cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUudHJpZ2dlclJ1bklmXCIpICsgXCI6IFwiICsgcmVzO1xuICB9XG4gIHByb3RlY3RlZCBnZXRBdmFpbGFibGVDbGFzc2VzKCk6IEFycmF5PGFueT4ge1xuICAgIHZhciBjbGFzc2VzID0gU3VydmV5LlNlcmlhbGl6ZXIuZ2V0Q2hpbGRyZW5DbGFzc2VzKFwic3VydmV5dHJpZ2dlclwiLCB0cnVlKTtcbiAgICB2YXIgcmVzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbGFzc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbmFtZSA9IGNsYXNzZXNbaV0ubmFtZTtcbiAgICAgIGlmIChuYW1lID09IFwidmlzaWJsZXRyaWdnZXJcIikgY29udGludWU7XG4gICAgICByZXMucHVzaCh7XG4gICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICB0ZXh0OiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0VHJpZ2dlck5hbWUobmFtZSksXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcm90ZWN0ZWQgb25DcmVhdGVFZGl0b3IoZWRpdG9yOiBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsKSB7XG4gICAgdmFyIGV4cHJlc3Npb25FZGl0b3IgPSBlZGl0b3IuZ2V0UHJvcGVydHlFZGl0b3JCeU5hbWUoXCJleHByZXNzaW9uXCIpO1xuICAgIGlmICghIWV4cHJlc3Npb25FZGl0b3IgJiYgZXhwcmVzc2lvbkVkaXRvci5lZGl0b3IpIHtcbiAgICAgIGV4cHJlc3Npb25FZGl0b3IuZWRpdG9yW1wiaXNFZGl0b3JTaG93aW5nXCJdID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRTdXJ2ZXkoKTogU3VydmV5LlN1cnZleU1vZGVsIHtcbiAgICByZXR1cm4gISF0aGlzLm9iamVjdCA/IHRoaXMub2JqZWN0IDogdGhpcy5lZGl0aW5nT2JqZWN0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eVNlbGVjdEl0ZW1zRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcHJpdmF0ZSBpdGVtU2VsZWN0b3JWYWx1ZTogU3VydmV5RWxlbWVudFNlbGVjdG9yO1xuICBwdWJsaWMga29JdGVtU2VsZWN0b3I6IGFueTtcbiAgcHVibGljIGtvU2VsZWN0ZWRGb3JEZWxldGU6IGFueTtcbiAgcHVibGljIGtvRHVtbXk6IGFueTtcbiAgcHVibGljIGtvSXRlbXM6IGFueTtcbiAgY29uc3RydWN0b3IocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gICAgdGhpcy5rb0l0ZW1TZWxlY3RvciA9IGtvLm9ic2VydmFibGUobnVsbCk7XG4gICAgdGhpcy5rb1NlbGVjdGVkRm9yRGVsZXRlID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gICAgdGhpcy5rb0R1bW15ID0ga28ub2JzZXJ2YWJsZSgwKTtcbiAgICB0aGlzLmtvSXRlbXMgPSBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICB0aGlzLmtvRHVtbXkoKTtcbiAgICAgIHJldHVybiB0aGlzLm9yaWdpbmFsVmFsdWU7XG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0b3JUeXBlVGVtcGxhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJ0cmlnZ2Vyc2l0ZW1zXCI7XG4gIH1cbiAgcHVibGljIGRlbGV0ZUl0ZW1zKCkge1xuICAgIHZhciBpdGVtcyA9IHRoaXMua29TZWxlY3RlZEZvckRlbGV0ZSgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuZGVsZXRlSXRlbShpdGVtc1tpXSk7XG4gICAgfVxuICAgIHRoaXMucmVzZXRJdGVtcygpO1xuICB9XG4gIHB1YmxpYyBhZGRJdGVtKCkge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsVmFsdWUuaW5kZXhPZih0aGlzLml0ZW1TZWxlY3RvclZhbHVlLnZhbHVlKSA+IC0xKSByZXR1cm47XG4gICAgdGhpcy5vcmlnaW5hbFZhbHVlLnB1c2godGhpcy5pdGVtU2VsZWN0b3JWYWx1ZS52YWx1ZSk7XG4gICAgdGhpcy5pdGVtU2VsZWN0b3JWYWx1ZS52YWx1ZSA9IFwiXCI7XG4gICAgdGhpcy5yZXNldEl0ZW1zKCk7XG4gIH1cbiAgcHVibGljIGJlZm9yZVNob3coKSB7XG4gICAgc3VwZXIuYmVmb3JlU2hvdygpO1xuICAgIHZhciBzdXJ2ZXkgPSBFZGl0YWJsZU9iamVjdC5nZXRTdXJ2ZXkodGhpcy5vYmplY3QpO1xuICAgIHRoaXMuaXRlbVNlbGVjdG9yVmFsdWUgPSBuZXcgU3VydmV5RWxlbWVudFNlbGVjdG9yKFxuICAgICAgc3VydmV5LFxuICAgICAgdGhpcy5nZXRFbGVtZW50VHlwZSgpLFxuICAgICAgISF0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnNob3dUaXRsZXNJbkV4cHJlc3Npb25zXG4gICAgKTtcbiAgICB0aGlzLmtvSXRlbVNlbGVjdG9yKHRoaXMuaXRlbVNlbGVjdG9yVmFsdWUpO1xuICAgIHRoaXMucmVzZXRJdGVtcygpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRFbGVtZW50VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInF1ZXN0aW9uXCI7XG4gIH1cbiAgcHJpdmF0ZSBkZWxldGVJdGVtKGl0ZW06IHN0cmluZykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLm9yaWdpbmFsVmFsdWUpKSByZXR1cm47XG4gICAgdmFyIGluZGV4ID0gdGhpcy5vcmlnaW5hbFZhbHVlLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIHJlc2V0SXRlbXMoKSB7XG4gICAgdGhpcy5rb0R1bW15KHRoaXMua29EdW1teSgpICsgMSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5U2VsZWN0UGFnZXNFZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlQcm9wZXJ0eVNlbGVjdEl0ZW1zRWRpdG9yIHtcbiAgcHVibGljIGdldCBlZGl0b3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicGFnZXNcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RWxlbWVudFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJwYWdlXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVByb3BlcnR5U2VsZWN0UXVlc3Rpb25zRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlTZWxlY3RJdGVtc0VkaXRvciB7XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInF1ZXN0aW9uc1wiO1xuICB9XG59XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcInRyaWdnZXJzXCIsIGZ1bmN0aW9uIChcbiAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHlcbik6IFN1cnZleVByb3BlcnR5RWRpdG9yQmFzZSB7XG4gIHJldHVybiBuZXcgU3VydmV5UHJvcGVydHlUcmlnZ2Vyc0VkaXRvcihwcm9wZXJ0eSk7XG59KTtcblxuU3VydmV5UHJvcGVydHlFZGl0b3JGYWN0b3J5LnJlZ2lzdGVyRWRpdG9yKFwicGFnZXNcIiwgZnVuY3Rpb24gKFxuICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuKTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eVNlbGVjdFBhZ2VzRWRpdG9yKHByb3BlcnR5KTtcbn0pO1xuXG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXCJxdWVzdGlvbnNcIiwgZnVuY3Rpb24gKFxuICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuKTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eVNlbGVjdFF1ZXN0aW9uc0VkaXRvcihwcm9wZXJ0eSk7XG59KTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleU5lc3RlZFByb3BlcnR5RWRpdG9yIH0gZnJvbSBcIi4vcHJvcGVydHlOZXN0ZWRQcm9wZXJ0eUVkaXRvclwiO1xuXG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckJhc2VcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yRmFjdG9yeVwiO1xuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlVcmxDb25kaXRpb25FZGl0b3IgZXh0ZW5kcyBTdXJ2ZXlOZXN0ZWRQcm9wZXJ0eUVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInVybGNvbmRpdGlvbnNcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclR5cGVUZW1wbGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIm5lc3RlZC1pdGVtc1wiO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVOZXdJdGVtKCk6IGFueSB7XG4gICAgcmV0dXJuIFN1cnZleS5TZXJpYWxpemVyLmNyZWF0ZUNsYXNzKFwidXJsY29uZGl0aW9uaXRlbVwiKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uc1Byb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnRpZXNCeU5hbWVzKFwidXJsY29uZGl0aW9uaXRlbVwiLCBbXCJleHByZXNzaW9uXCIsIFwidXJsXCJdKTtcbiAgfVxufVxuXG5TdXJ2ZXlQcm9wZXJ0eUVkaXRvckZhY3RvcnkucmVnaXN0ZXJFZGl0b3IoXCJ1cmxjb25kaXRpb25zXCIsIGZ1bmN0aW9uKFxuICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuKTogU3VydmV5UHJvcGVydHlFZGl0b3JCYXNlIHtcbiAgcmV0dXJuIG5ldyBTdXJ2ZXlQcm9wZXJ0eVVybENvbmRpdGlvbkVkaXRvcihwcm9wZXJ0eSk7XG59KTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5T25lU2VsZWN0ZWRFZGl0b3IgfSBmcm9tIFwiLi9wcm9wZXJ0eU9uZVNlbGVjdGVkRWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2UgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvckJhc2VcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IFN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeSB9IGZyb20gXCIuL3Byb3BlcnR5RWRpdG9yRmFjdG9yeVwiO1xuXG5leHBvcnQgY2xhc3MgU3VydmV5UHJvcGVydHlWYWxpZGF0b3JzRWRpdG9yIGV4dGVuZHMgU3VydmV5UHJvcGVydHlPbmVTZWxlY3RlZEVkaXRvciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgc3VwZXIocHJvcGVydHkpO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdG9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInZhbGlkYXRvcnNcIjtcbiAgfVxuICBwdWJsaWMgZ2V0SXRlbVRleHQoaXRlbTogYW55LCBjb3VudGVyOiBhbnkgPSBudWxsKTogYW55IHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFZhbGlkYXRvck5hbWUoaXRlbS5nZXRUeXBlKCkpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRBdmFpbGFibGVDbGFzc2VzKCk6IEFycmF5PGFueT4ge1xuICAgIHZhciBuYW1lcyA9IHRoaXMuZ2V0VmFsaWRhdG9yVHlwZXMoKTtcbiAgICB2YXIgcmVzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzLnB1c2goe1xuICAgICAgICB2YWx1ZTogbmFtZXNbaV0sXG4gICAgICAgIHRleHQ6IGVkaXRvckxvY2FsaXphdGlvbi5nZXRWYWxpZGF0b3JOYW1lKG5hbWVzW2ldKVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBnZXRWYWxpZGF0b3JUeXBlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgaWYgKCEhdGhpcy5vYmplY3QgJiYgISF0aGlzLm9iamVjdC5nZXRTdXBwb3J0ZWRWYWxpZGF0b3JzKSB7XG4gICAgICByZXMgPSB0aGlzLm9iamVjdC5nZXRTdXBwb3J0ZWRWYWxpZGF0b3JzKCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICByZXNbaV0gPSByZXNbaV0gKyBcInZhbGlkYXRvclwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgdmFyIGNsYXNzZXMgPSBTdXJ2ZXkuU2VyaWFsaXplci5nZXRDaGlsZHJlbkNsYXNzZXMoXCJzdXJ2ZXl2YWxpZGF0b3JcIiwgdHJ1ZSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbGFzc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMucHVzaChjbGFzc2VzW2ldLm5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG59XG5cblN1cnZleVByb3BlcnR5RWRpdG9yRmFjdG9yeS5yZWdpc3RlckVkaXRvcihcInZhbGlkYXRvcnNcIiwgZnVuY3Rpb24oXG4gIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4pOiBTdXJ2ZXlQcm9wZXJ0eUVkaXRvckJhc2Uge1xuICByZXR1cm4gbmV3IFN1cnZleVByb3BlcnR5VmFsaWRhdG9yc0VkaXRvcihwcm9wZXJ0eSk7XG59KTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IEVkaXRhYmxlT2JqZWN0IH0gZnJvbSBcIi4vZWRpdGFibGVPYmplY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlFbGVtZW50U2VsZWN0b3JJdGVtIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGVsZW1lbnQ6IFN1cnZleS5CYXNlO1xuICBrb0Rpc2FibGVkOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlFbGVtZW50U2VsZWN0b3Ige1xuICBwcml2YXRlIHNob3dUaXRsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBvcHRpb25zQ2FwdGlvblZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgZGlzYWJsZUNhbGxiYWNrOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc2VsZWN0ZWRWYWx1ZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgcHVibGljIGtvRWxlbWVudHM6IGFueTtcbiAgcHVibGljIGtvVmFsdWU6IGFueTtcbiAgcHVibGljIGtvSGFzRm9jdXM6IGFueTtcbiAgcHVibGljIGtvRXJyb3JUZXh0OiBhbnk7XG4gIHB1YmxpYyBrb0Rpc3BsYXlFcnJvcjogYW55O1xuICBwdWJsaWMgb25WYWx1ZUNoYW5nZWRDYWxsYmFjazogKHZhbDogc3RyaW5nKSA9PiB2b2lkO1xuICBwdWJsaWMgZGlzYWJsZWRQcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAga29BZnRlclJlbmRlcjogYW55O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWwsXG4gICAgZWxlbWVudFR5cGU6IHN0cmluZyA9IFwicXVlc3Rpb25cIixcbiAgICBzaG93VGl0bGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBvcHRpb25zQ2FwdGlvbk5hbWU6IHN0cmluZyA9IFwiXCJcbiAgKSB7XG4gICAgdGhpcy5zdXJ2ZXkgPSBFZGl0YWJsZU9iamVjdC5nZXRPcmlnaW5hbFN1cnZleSh0aGlzLnN1cnZleSk7XG4gICAgdGhpcy5zaG93VGl0bGUgPSBzaG93VGl0bGU7XG4gICAgdGhpcy5vcHRpb25zQ2FwdGlvblZhbHVlID0gdGhpcy5nZXRPcHRpb25zVGV4dChcbiAgICAgIG9wdGlvbnNDYXB0aW9uTmFtZSxcbiAgICAgIGVsZW1lbnRUeXBlXG4gICAgKTtcbiAgICB0aGlzLmtvVmFsdWUgPSBrby5vYnNlcnZhYmxlKFwiXCIpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmtvVmFsdWUuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgaWYgKHNlbGYuZGlzYWJsZUNhbGxiYWNrIHx8ICFzZWxmLm9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2spIHJldHVybjtcbiAgICAgIHNlbGYub25WYWx1ZUNoYW5nZWRDYWxsYmFjayhuZXdWYWx1ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5rb0VsZW1lbnRzID0ga28ub2JzZXJ2YWJsZUFycmF5KHRoaXMuYnVpbGRFbGVtZW50cyhlbGVtZW50VHlwZSkpO1xuICAgIHRoaXMua29IYXNGb2N1cyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAgIHRoaXMua29IYXNGb2N1cy5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgICAgc2VsZi51cGRhdGVJdGVtcygpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMua29FcnJvclRleHQgPSBrby5vYnNlcnZhYmxlKFwiXCIpO1xuICAgIHRoaXMua29EaXNwbGF5RXJyb3IgPSBrby5jb21wdXRlZChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gISFzZWxmLmtvRXJyb3JUZXh0KCk7XG4gICAgfSk7XG4gICAgdGhpcy5rb0FmdGVyUmVuZGVyID0gZnVuY3Rpb24gKCkge307XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmtvVmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNhYmxlQ2FsbGJhY2sgPSB0cnVlO1xuICAgIHRoaXMua29WYWx1ZSh2YWwpO1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucHVzaCh2YWwpO1xuICAgIHRoaXMuZGlzYWJsZUNhbGxiYWNrID0gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldCBlbGVtZW50KCk6IFN1cnZleS5CYXNlIHtcbiAgICB2YXIgZWwgPSB0aGlzLmZpbmRJdGVtQnlOYW1lKHRoaXMudmFsdWUpO1xuICAgIHJldHVybiAhIWVsID8gZWwuZWxlbWVudCA6IG51bGw7XG4gIH1cbiAgcHVibGljIHNldCBlbGVtZW50KHZhbDogU3VydmV5LkJhc2UpIHtcbiAgICB2YXIgZWwgPSB0aGlzLmZpbmRJdGVtQnlFbGVtZW50KHZhbCk7XG4gICAgaWYgKCEhZWwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBlbC5uYW1lO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGZpbmRJdGVtQnlOYW1lKG5hbWU6IHN0cmluZyk6IFN1cnZleUVsZW1lbnRTZWxlY3Rvckl0ZW0ge1xuICAgIGlmICghbmFtZSkgcmV0dXJuIG51bGw7XG4gICAgdmFyIGl0ZW1zID0gdGhpcy5rb0VsZW1lbnRzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGl0ZW1zW2ldLm5hbWUgPT0gbmFtZSkgcmV0dXJuIGl0ZW1zW2ldO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwcml2YXRlIGZpbmRJdGVtQnlFbGVtZW50KGVsOiBTdXJ2ZXkuQmFzZSk6IFN1cnZleUVsZW1lbnRTZWxlY3Rvckl0ZW0ge1xuICAgIGlmICghZWwpIHJldHVybiBudWxsO1xuICAgIHZhciBpdGVtcyA9IHRoaXMua29FbGVtZW50cygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpdGVtc1tpXS5lbGVtZW50ID09PSBlbCkgcmV0dXJuIGl0ZW1zW2ldO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0IG9wdGlvbnNDYXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNDYXB0aW9uVmFsdWU7XG4gIH1cbiAgcHVibGljIHVwZGF0ZUl0ZW1zKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZFByb3BlcnR5TmFtZSkgcmV0dXJuO1xuICAgIHZhciBpdGVtcyA9IHRoaXMua29FbGVtZW50cygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07XG4gICAgICB2YXIgZGlzYWJsZWQgPVxuICAgICAgICAhIWl0ZW0uZWxlbWVudFt0aGlzLmRpc2FibGVkUHJvcGVydHlOYW1lXSAmJlxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmluZGV4T2YoaXRlbS5uYW1lKSA8IDA7XG4gICAgICBpdGVtLmtvRGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgdmFyIHRleHQgPSAhdGhpcy5lbGVtZW50ID8gdGhpcy5nZXRMb2NTdHJpbmcoXCJwZS5pdGVtU2VsZWN0b3JFbXB0eVwiKSA6IFwiXCI7XG4gICAgdGhpcy5rb0Vycm9yVGV4dCh0ZXh0KTtcbiAgICByZXR1cm4gISF0ZXh0O1xuICB9XG4gIHB1YmxpYyBnZXRMb2NTdHJpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcobmFtZSk7XG4gIH1cbiAgcHJpdmF0ZSBidWlsZEVsZW1lbnRzKGVsZW1lbnRUeXBlOiBzdHJpbmcpOiBBcnJheTxTdXJ2ZXlFbGVtZW50U2VsZWN0b3JJdGVtPiB7XG4gICAgdmFyIGVsZW1lbnRzID0gW107XG4gICAgaWYgKGVsZW1lbnRUeXBlID09IFwicXVlc3Rpb25cIikge1xuICAgICAgZWxlbWVudHMgPSB0aGlzLnN1cnZleS5nZXRBbGxRdWVzdGlvbnMoKTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnRUeXBlID09IFwicGFnZVwiKSB7XG4gICAgICBlbGVtZW50cyA9IHRoaXMuc3VydmV5LnBhZ2VzO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudFR5cGUgPT0gXCJwYW5lbFwiKSB7XG4gICAgICBlbGVtZW50cyA9IHRoaXMuc3VydmV5LmdldEFsbFBhbmVscygpO1xuICAgIH1cbiAgICB2YXIgcmVzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsID0gZWxlbWVudHNbaV07XG4gICAgICB2YXIgdGV4dCA9IFwiXCI7XG4gICAgICBpZiAodGhpcy5zaG93VGl0bGUpIHtcbiAgICAgICAgdGV4dCA9IGVsLmxvY1RpdGxlLnJlbmRlcmVkSHRtbDtcbiAgICAgIH1cbiAgICAgIGlmICghdGV4dCkgdGV4dCA9IGVsLm5hbWU7XG4gICAgICByZXMucHVzaCh7XG4gICAgICAgIG5hbWU6IGVsLm5hbWUsXG4gICAgICAgIHRleHQ6IHRleHQsXG4gICAgICAgIGVsZW1lbnQ6IGVsLFxuICAgICAgICBrb0Rpc2FibGVkOiBrby5vYnNlcnZhYmxlKGZhbHNlKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGEudGV4dC5sb2NhbGVDb21wYXJlKGIudGV4dCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGdldE9wdGlvbnNUZXh0KFxuICAgIG9wdGlvbnNDYXB0aW9uTmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRUeXBlOiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICBpZiAoIW9wdGlvbnNDYXB0aW9uTmFtZSkge1xuICAgICAgb3B0aW9uc0NhcHRpb25OYW1lID1cbiAgICAgICAgZWxlbWVudFR5cGUgPT0gXCJwYWdlXCJcbiAgICAgICAgICA/IFwicGUuY29uZGl0aW9uU2VsZWN0UGFnZVwiXG4gICAgICAgICAgOiBlbGVtZW50VHlwZSA9PSBcInBhbmVsXCJcbiAgICAgICAgICAgID8gXCJwZS5jb25kaXRpb25TZWxlY3RQYW5lbFwiXG4gICAgICAgICAgICA6IFwicGUuY29uZGl0aW9uU2VsZWN0UXVlc3Rpb25cIjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jU3RyaW5nKG9wdGlvbnNDYXB0aW9uTmFtZSk7XG4gIH1cbn1cbiIsImltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQge1xuICBTdXJ2ZXlRdWVzdGlvbkVkaXRvckRlZmluaXRpb24sXG4gIElTdXJ2ZXlRdWVzdGlvbkVkaXRvckRlZmluaXRpb24sXG59IGZyb20gXCIuL3F1ZXN0aW9uRWRpdG9yRGVmaW5pdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgU3VydmV5Q3JlYXRvclByb3BlcnRpZXMge1xuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZVZhbHVlID0gbmV3IFN1cnZleUNyZWF0b3JQcm9wZXJ0aWVzKCk7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIHJldHVybiBTdXJ2ZXlDcmVhdG9yUHJvcGVydGllcy5pbnN0YW5jZVZhbHVlO1xuICB9XG4gIHB1YmxpYyBoaWRlQ2F0ZWdvcnkoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcbiAgICB2YXIgZGVmID0gU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uLmRlZmluaXRpb247XG4gICAgZm9yICh2YXIga2V5IGluIGRlZikge1xuICAgICAgdmFyIHRhYiA9IHRoaXMuZ2V0VGFiRnJvbUVsZW1lbnREZWYoZGVmW2tleV0sIGNhdGVnb3J5TmFtZSk7XG4gICAgICBpZiAoISF0YWIpIHtcbiAgICAgICAgdGFiLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGhpZGVQcm9wZXJ0eShwcm9wZXJ0eU5hbWU6IHN0cmluZywgb2JqVHlwZTogc3RyaW5nID0gdW5kZWZpbmVkKSB7XG4gICAgLy9TdXJ2ZXkuU2VyaWFsaXplci5maW5cbiAgfVxuICBwdWJsaWMgc2hvd1Byb3BlcnR5KFxuICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgIG9ialR5cGU6IHN0cmluZyA9IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBhbnkgPSB1bmRlZmluZWRcbiAgKSB7fVxuICBwdWJsaWMgbW92ZVByb3BlcnR5KHByb3BlcnR5TmFtZTogc3RyaW5nLCBvYmpUeXBlOiBzdHJpbmcsIG9wdGlvbnM6IGFueSkge31cbiAgcHJpdmF0ZSBjaGFuZ2VQcm9wZXJ0eShwcm9wZXJ0eU5hbWU6IHN0cmluZywgb2JqVHlwZTogc3RyaW5nLCBvcHRpb25zOiBhbnkpIHt9XG4gIHByaXZhdGUgZ2V0VGFiRnJvbUVsZW1lbnREZWYoZWxEZWY6IGFueSwgdGFiTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoIWVsRGVmLnRhYnMpIHJldHVybiBudWxsO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxEZWYudGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGVsRGVmLnRhYnNbaV0ubmFtZSA9PSB0YWJOYW1lKSByZXR1cm4gZWxEZWYudGFic1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbmV4cG9ydCB2YXIgY3JlYXRvclByb3BlcnRpZXMgPSBTdXJ2ZXlDcmVhdG9yUHJvcGVydGllcy5pbnN0YW5jZTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHtcbiAgU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uLFxuICBJU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uLFxufSBmcm9tIFwiLi9xdWVzdGlvbkVkaXRvckRlZmluaXRpb25cIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQgUk1vZGFsIGZyb20gXCJybW9kYWxcIjtcbmltcG9ydCB7IFN1cnZleUhlbHBlciB9IGZyb20gXCIuLi9zdXJ2ZXlIZWxwZXJcIjtcbmltcG9ydCB7XG4gIGZvY3VzRmlyc3RDb250cm9sLFxuICBnZXROb2Rlc0Zyb21Lb0NvbXBvbmVudEluZm8sXG4gIGdldEZpcnN0Tm9uVGV4dEVsZW1lbnQsXG59IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgRWRpdGFibGVPYmplY3QgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL2VkaXRhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSB9IGZyb20gXCIuLi9vYmplY3RQcm9wZXJ0eVwiO1xuaW1wb3J0IHsgSVN1cnZleUNyZWF0b3JPcHRpb25zIH0gZnJvbSBcIi4uL3NldHRpbmdzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlDcmVhdG9yIH0gZnJvbSBcIi4uL2VkaXRvclwiO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkT2JqZWN0RWRpdG9yTW9kZWwge1xuICBwcml2YXRlIHNlbGVjdGVkT2JqZWN0VmFsdWU6IGFueSA9IG51bGw7XG4gIHB1YmxpYyBrb0VsZW1lbnRFZGl0b3IgPSBrby5vYnNlcnZhYmxlPFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWw+KG51bGwpO1xuICBwdWJsaWMga29IYXNPYmplY3QgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgcHVibGljIG9uQWZ0ZXJSZW5kZXJDYWxsYmFjazogKFxuICAgIG9iamVjdDogYW55LFxuICAgIGh0bWxFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBwcm9wZXJ0eTogU3VydmV5T2JqZWN0UHJvcGVydHlcbiAgKSA9PiBhbnk7XG4gIHB1YmxpYyBvblNvcnRQcm9wZXJ0eUNhbGxiYWNrOiAoXG4gICAgb2JqZWN0OiBhbnksXG4gICAgcHJvcGVydHkxOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIHByb3BlcnR5MjogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuICApID0+IG51bWJlcjtcbiAgcHVibGljIG9uUHJvcGVydHlDaGFuZ2VkOiAoXG4gICAgb2JqOiBhbnksXG4gICAgcHJvcDogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBvbGRWYWx1ZTogYW55XG4gICkgPT4gdm9pZDtcbiAgcHVibGljIG9uQ29ycmVjdFZhbHVlQmVmb3JlU2V0OiAoXG4gICAgb2JqOiBhbnksXG4gICAgcHJvcDogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBuZXdWYWx1ZTogYW55XG4gICkgPT4gYW55O1xuXG4gIC8vIE9sZCAtIHRhYmxlKG9sZCBwcm9wZXJ0eSBncmlkKSBjcmVhdG9yLm9wdGlvbnMuc2hvd0VsZW1lbnRFZGl0b3JBc1Byb3BlcnR5R3JpZDogZmFsc2U7XG4gIC8vIE5ldyAtIGFjY29yZGl0aW9uIG9yIG9sZGVzdCB0YWJzXG4gIHB1YmxpYyBrb0lzT2xkVGFibGVBcHBlYXJhbmNlID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByb3BlcnR5RWRpdG9yT3B0aW9uczogSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMgPSBudWxsXG4gICkge31cblxuICBwdWJsaWMgb2JqZWN0Q2hhbmdlZCgpIHt9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRPYmplY3QoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9iamVjdFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRPYmplY3QodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkT2JqZWN0VmFsdWUgPT0gdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkT2JqZWN0VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmtvSGFzT2JqZWN0KGZhbHNlKTtcbiAgICBpZiAoISF2YWx1ZSkge1xuICAgICAgdmFyIGVsZW1lbnRFZGl0b3IgPSB0aGlzLmNyZWF0ZVN1cnZleUVsZW1lbnRFZGl0b3IodmFsdWUpO1xuICAgICAgZWxlbWVudEVkaXRvci5vbkFmdGVyUmVuZGVyQ2FsbGJhY2sgPSB0aGlzLm9uQWZ0ZXJSZW5kZXJDYWxsYmFjaztcbiAgICAgIGVsZW1lbnRFZGl0b3Iub25Qcm9wZXJ0eUNoYW5nZWQgPSAoXG4gICAgICAgIHByb3A6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgICAgIG9sZFZhbHVlOiBhbnlcbiAgICAgICkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vblByb3BlcnR5Q2hhbmdlZClcbiAgICAgICAgICB0aGlzLm9uUHJvcGVydHlDaGFuZ2VkKHRoaXMuc2VsZWN0ZWRPYmplY3RWYWx1ZSwgcHJvcCwgb2xkVmFsdWUpO1xuICAgICAgfTtcbiAgICAgIGVsZW1lbnRFZGl0b3Iub25Db3JyZWN0VmFsdWVCZWZvcmVTZXQgPSAoXG4gICAgICAgIHByb3A6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgICAgIG5ld1ZhbHVlOiBhbnlcbiAgICAgICk6IGFueSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5vbkNvcnJlY3RWYWx1ZUJlZm9yZVNldCkgcmV0dXJuIG5ld1ZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcy5vbkNvcnJlY3RWYWx1ZUJlZm9yZVNldChcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkT2JqZWN0VmFsdWUsXG4gICAgICAgICAgcHJvcCxcbiAgICAgICAgICBuZXdWYWx1ZVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIHRoaXMua29FbGVtZW50RWRpdG9yKGVsZW1lbnRFZGl0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtvRWxlbWVudEVkaXRvcihudWxsKTtcbiAgICB9XG4gICAgdGhpcy5rb0hhc09iamVjdCghIXZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0UHJvcGVydHlFZGl0b3JCeU5hbWUocHJvcGVydHlOYW1lOiBzdHJpbmcpOiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSB7XG4gICAgaWYgKCF0aGlzLmtvRWxlbWVudEVkaXRvcigpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5rb0VsZW1lbnRFZGl0b3IoKS5nZXRQcm9wZXJ0eUVkaXRvckJ5TmFtZShwcm9wZXJ0eU5hbWUpO1xuICB9XG4gIHB1YmxpYyBmb2N1c0VkaXRvcigpIHtcbiAgICBpZiAoISF0aGlzLmtvRWxlbWVudEVkaXRvcigpKSB7XG4gICAgICB0aGlzLmtvRWxlbWVudEVkaXRvcigpLmZvY3VzRWRpdG9yKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmtvRWxlbWVudEVkaXRvcigpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMua29FbGVtZW50RWRpdG9yKCkuaGFzRXJyb3IoKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlU3VydmV5RWxlbWVudEVkaXRvcihcbiAgICB2YWx1ZTogYW55XG4gICk6IFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWwge1xuICAgIGxldCBlbGVtZW50RWRpdG9yO1xuICAgIGlmICh0aGlzLmtvSXNPbGRUYWJsZUFwcGVhcmFuY2UoKSkge1xuICAgICAgZWxlbWVudEVkaXRvciA9IG5ldyBTdXJ2ZXlFbGVtZW50RWRpdG9yT2xkVGFibGVDb250ZW50TW9kZWwoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBcIlwiLFxuICAgICAgICB0aGlzLnByb3BlcnR5RWRpdG9yT3B0aW9ucyxcbiAgICAgICAgdGhpcy5vblNvcnRQcm9wZXJ0eUNhbGxiYWNrXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50RWRpdG9yID0gbmV3IFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWwoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBcIlwiLFxuICAgICAgICB0aGlzLnByb3BlcnR5RWRpdG9yT3B0aW9ucyxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGVsZW1lbnRFZGl0b3I7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsIHtcbiAgcHVibGljIG9uQ29ycmVjdFZhbHVlQmVmb3JlU2V0OiAoXG4gICAgcHJvcDogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBuZXdWYWx1ZTogYW55XG4gICkgPT4gYW55O1xuICBwdWJsaWMgb25Qcm9wZXJ0eUNoYW5nZWQ6IChcbiAgICBwcm9wOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIG9sZFZhbHVlOiBhbnlcbiAgKSA9PiB2b2lkO1xuICBwdWJsaWMgb25BZnRlclJlbmRlckNhbGxiYWNrOiAoXG4gICAgb2JqZWN0OiBhbnksXG4gICAgaHRtbEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHByb3BlcnR5OiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eVxuICApID0+IGFueTtcbiAga29UYWJzOiBhbnk7XG4gIGtvQWN0aXZlVGFiID0ga28ub2JzZXJ2YWJsZTxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCBwcm9wZXJ0aWVzOiBTdXJ2ZXlRdWVzdGlvblByb3BlcnRpZXM7XG4gIHByaXZhdGUgb3JpZ2luYWxPYmpWYWx1ZTogYW55O1xuICBjb25zdHJ1Y3RvcihcbiAgICBvYmo6IGFueSxcbiAgICBwdWJsaWMgY2xhc3NOYW1lOiBzdHJpbmcgPSBudWxsLFxuICAgIHB1YmxpYyBvcHRpb25zOiBJU3VydmV5T2JqZWN0RWRpdG9yT3B0aW9ucyA9IG51bGwsXG4gICAgcHJvdGVjdGVkIHVzZUFzUHJvcGVydHlHcmlkOiBib29sZWFuID0gZmFsc2UsXG4gICAgcHJpdmF0ZSBfcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICB0aGlzLnNldE9yaWdpbmFsT2JqVmFsdWUob2JqKTtcbiAgICBpZiAoIXRoaXMuY2xhc3NOYW1lICYmIHRoaXMub3JpZ2luYWxPYmouZ2V0VHlwZSkge1xuICAgICAgdGhpcy5jbGFzc05hbWUgPSB0aGlzLm9yaWdpbmFsT2JqLmdldFR5cGUoKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gbmV3IFN1cnZleVF1ZXN0aW9uUHJvcGVydGllcyhcbiAgICAgIHRoaXMuZWRpdGFibGVPYmosXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICB0aGlzLmNsYXNzTmFtZVxuICAgICk7XG4gICAgdmFyIHRhYnMgPSB0aGlzLmJ1aWxkVGFicygpO1xuICAgIHRoaXMua29UYWJzID0ga28ub2JzZXJ2YWJsZUFycmF5PFN1cnZleUVsZW1lbnRFZGl0b3JUYWJNb2RlbD4odGFicyk7XG4gICAgdGhpcy5hc3NpZ25Qcm9wZXJ0aWVzVG9FZGl0b3JzKCk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMua29BY3RpdmVUYWIuc3Vic2NyaWJlKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIGlmICghdmFsKSByZXR1cm47XG4gICAgICB2YXIgdGFiID0gc2VsZi5nZXRUYWJCeU5hbWUodmFsKTtcbiAgICAgIGlmICghIXRhYikge1xuICAgICAgICB0YWIuZXhwYW5kKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHRhYnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5rb0FjdGl2ZVRhYih0YWJzWzBdLm5hbWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMucmVhZE9ubHkgfHwgdGhpcy5fcmVhZE9ubHk7XG4gIH1cbiAgcHVibGljIGdldExvY1N0cmluZyhuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhuYW1lKTtcbiAgfVxuICBwdWJsaWMgc2V0UGFyZW50TGlzdChwYXJlbnRMaXN0OiBBcnJheTxTdXJ2ZXkuQmFzZT4pIHtcbiAgICB2YXIgZWRQcm9wZXJ0aWVzID0gdGhpcy5nZXRBbGxFZGl0b3JQcm9wZXJ0aWVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlZFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGVkUHJvcGVydGllc1tpXS5lZGl0b3IucGFyZW50TGlzdCA9IHBhcmVudExpc3Q7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBzZXRPcmlnaW5hbE9ialZhbHVlKG9iajogYW55KSB7XG4gICAgdGhpcy5vcmlnaW5hbE9ialZhbHVlID0gb2JqO1xuICB9XG4gIHByb3RlY3RlZCBnZXQgb3JpZ2luYWxPYmooKSB7XG4gICAgcmV0dXJuIHRoaXMub3JpZ2luYWxPYmpWYWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IG9iaigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm9yaWdpbmFsT2JqVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBlZGl0YWJsZU9iaigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm9yaWdpbmFsT2JqVmFsdWU7XG4gIH1cbiAgcHVibGljIGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHZhciB0YWJzID0gdGhpcy5rb1RhYnMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0YWJzW2ldLmhhc0Vycm9yKCkpIHtcbiAgICAgICAgdGhpcy5rb0FjdGl2ZVRhYih0YWJzW2ldLm5hbWUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBnZXRQcm9wZXJ0eUVkaXRvckJ5TmFtZShwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFN1cnZleU9iamVjdFByb3BlcnR5IHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLmdldEFsbEVkaXRvclByb3BlcnRpZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocHJvcHNbaV0ucHJvcGVydHkubmFtZSA9PSBwcm9wZXJ0eU5hbWUpIHJldHVybiBwcm9wc1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHVibGljIGdldFRhYkJ5TmFtZSh0YWJOYW1lOiBzdHJpbmcpOiBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwge1xuICAgIHZhciB0YWJzID0gdGhpcy5rb1RhYnMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0YWJzW2ldLm5hbWUgPT0gdGFiTmFtZSkgcmV0dXJuIHRhYnNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBmb2N1c0VkaXRvcigpIHtcbiAgICBpZiAoISF0aGlzLmtvVGFicygpICYmIHRoaXMua29UYWJzKCkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5rb1RhYnMoKVswXS5mb2N1c0VkaXRvcigpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldEFsbEVkaXRvclByb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5T2JqZWN0UHJvcGVydHk+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgaWYgKCF0aGlzLmtvVGFicykgcmV0dXJuIHJlcztcbiAgICB2YXIgdGFicyA9IHRoaXMua29UYWJzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdGFiID0gPFN1cnZleUVsZW1lbnRFZGl0b3JUYWJNb2RlbD50YWJzW2ldO1xuICAgICAgdmFyIHByb3BzID0gdGFiLmVkaXRvclByb3BlcnRpZXM7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHByb3BzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHJlcy5wdXNoKHByb3BzW2pdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGJ1aWxkVGFicygpOiBBcnJheTxTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWw+IHtcbiAgICB2YXIgdGFicyA9IFtdO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RhYnModGFicyk7XG4gICAgcmV0dXJuIHRhYnM7XG4gIH1cbiAgcHJpdmF0ZSBhc3NpZ25Qcm9wZXJ0aWVzVG9FZGl0b3JzKCkge1xuICAgIHZhciBwcm9wcyA9IHRoaXMuZ2V0QWxsRWRpdG9yUHJvcGVydGllcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYXNzaWduUHJvcGVydGllc1RvRWRpdG9yKHByb3BzW2ldKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGFzc2lnblByb3BlcnRpZXNUb0VkaXRvcihwcm9wRWRpdG9yOiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSkge1xuICAgIHByb3BFZGl0b3Iub25Db3JyZWN0VmFsdWVCZWZvcmVTZXQgPSAoXG4gICAgICBwcm9wRWRpdG9yOiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSxcbiAgICAgIG5ld1ZhbHVlOiBhbnlcbiAgICApOiBhbnkgPT4ge1xuICAgICAgaWYgKCF0aGlzLm9uQ29ycmVjdFZhbHVlQmVmb3JlU2V0KSByZXR1cm4gbmV3VmFsdWU7XG4gICAgICByZXR1cm4gdGhpcy5vbkNvcnJlY3RWYWx1ZUJlZm9yZVNldChwcm9wRWRpdG9yLnByb3BlcnR5LCBuZXdWYWx1ZSk7XG4gICAgfTtcbiAgICBwcm9wRWRpdG9yLm9uQ2hhbmdlZCA9IChcbiAgICAgIHByb3BFZGl0b3I6IFN1cnZleU9iamVjdFByb3BlcnR5LFxuICAgICAgb2xkVmFsdWU6IGFueVxuICAgICk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCEhdGhpcy5vblByb3BlcnR5Q2hhbmdlZClcbiAgICAgICAgdGhpcy5vblByb3BlcnR5Q2hhbmdlZChwcm9wRWRpdG9yLnByb3BlcnR5LCBvbGRWYWx1ZSk7XG4gICAgfTtcbiAgICBwcm9wRWRpdG9yLmdldE9iamVjdFByb3BlcnR5QnlOYW1lID0gKFxuICAgICAgcHJvcGVydHlOYW1lOiBzdHJpbmdcbiAgICApOiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eUVkaXRvckJ5TmFtZShwcm9wZXJ0eU5hbWUpO1xuICAgIH07XG4gIH1cbiAgcHJvdGVjdGVkIGFkZFByb3BlcnRpZXNUYWJzKHRhYnM6IEFycmF5PFN1cnZleUVsZW1lbnRFZGl0b3JUYWJNb2RlbD4pIHtcbiAgICB2YXIgdGFiSXRlbXMgPSB0aGlzLnByb3BlcnRpZXMuZ2V0VGFicygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFiSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB0YWJJdGVtID0gdGFiSXRlbXNbaV07XG4gICAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMucHJvcGVydGllcy5nZXRQcm9wZXJ0aWVzKHRhYkl0ZW0pO1xuICAgICAgaWYgKHByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0YWJzLnB1c2godGhpcy5jcmVhdGVOZXdUYWIodGFiSXRlbSwgcHJvcGVydGllcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTmV3VGFiKFxuICAgIHRhYkl0ZW06IFN1cnZleVF1ZXN0aW9uRWRpdG9yVGFiRGVmaW5pdGlvbixcbiAgICBwcm9wZXJ0aWVzOiBBcnJheTxTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5PlxuICApOiBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwge1xuICAgIHZhciBwcm9wZXJ0eVRhYiA9IG5ldyBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwoXG4gICAgICB0aGlzLmVkaXRhYmxlT2JqLFxuICAgICAgcHJvcGVydGllcyxcbiAgICAgIHRhYkl0ZW0ubmFtZSxcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgIHRoaXMucmVhZE9ubHlcbiAgICApO1xuICAgIHByb3BlcnR5VGFiLnRpdGxlID0gdGFiSXRlbS50aXRsZTtcbiAgICB2YXIgZmlyc3RQcm9wZXJ0eSA9XG4gICAgICB0YWJJdGVtLnByb3BlcnRpZXMubGVuZ3RoID4gMCA/IHRhYkl0ZW0ucHJvcGVydGllc1swXSA6IG51bGw7XG4gICAgaWYgKCEhZmlyc3RQcm9wZXJ0eSAmJiBmaXJzdFByb3BlcnR5LmNyZWF0ZWRGcm9tVGFiTmFtZSkge1xuICAgICAgdmFyIGZpcnN0RWRpdG9yID0gcHJvcGVydHlUYWIuZ2V0UHJvcGVydHlFZGl0b3JCeU5hbWUodGFiSXRlbS5uYW1lKTtcbiAgICAgIGlmICghIWZpcnN0RWRpdG9yKSB7XG4gICAgICAgIGZpcnN0RWRpdG9yLmVkaXRvci5zaG93RGlzcGxheU5hbWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcHJvcGVydHlUYWIub25BZnRlclJlbmRlckNhbGxiYWNrID0gKGh0bWxFbGVtZW50LCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLm9uQWZ0ZXJSZW5kZXJDYWxsYmFjaykgcmV0dXJuO1xuICAgICAgdGhpcy5vbkFmdGVyUmVuZGVyQ2FsbGJhY2sodGhpcy5vcmlnaW5hbE9iaiwgaHRtbEVsZW1lbnQsIHByb3BlcnR5KTtcbiAgICB9O1xuICAgIHJldHVybiBwcm9wZXJ0eVRhYjtcbiAgfVxuICAvL3RoaXMub3B0aW9ucyA9IGNyZWF0b3JcbiAgZ2V0IHVzZVRhYnNJbkVsZW1lbnRFZGl0b3IoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLnVzZUFzUHJvcGVydHlHcmlkICYmXG4gICAgICAhIXRoaXMub3B0aW9ucyAmJlxuICAgICAgdGhpcy5vcHRpb25zLnVzZVRhYnNJbkVsZW1lbnRFZGl0b3IgJiZcbiAgICAgIHRoaXMua29UYWJzKCkubGVuZ3RoID4gMVxuICAgICk7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlFbGVtZW50RWRpdG9yT2xkVGFibGVDb250ZW50TW9kZWwgZXh0ZW5kcyBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsIHtcbiAgcHVibGljIGtvUHJvcGVydGllcyA9IGtvLm9ic2VydmFibGVBcnJheTxTdXJ2ZXlPYmplY3RQcm9wZXJ0eT4oKTtcbiAgcHVibGljIGtvVGFiOiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG9iajogYW55LFxuICAgIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgcHVibGljIG9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zID0gbnVsbCxcbiAgICBwcml2YXRlIG9uU29ydFByb3BlcnR5Q2FsbGJhY2s6IChcbiAgICAgIG9iamVjdDogYW55LFxuICAgICAgcHJvcGVydHkxOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgICAgcHJvcGVydHkyOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4gICAgKSA9PiBudW1iZXIgPSBudWxsXG4gICkge1xuICAgIHN1cGVyKG9iaiwgY2xhc3NOYW1lLCBvcHRpb25zLCB0cnVlKTtcbiAgICB0aGlzLmtvVGFiID0ga28ub2JzZXJ2YWJsZSh0aGlzLmtvVGFicygpWzBdKTtcbiAgICB0aGlzLmtvUHJvcGVydGllcyh0aGlzLmdldE9iamVjdFByb3BlcnRpZXMoKSk7XG4gICAgdGhpcy5rb1RhYigpLmV4cGFuZCgpO1xuICB9XG4gIHByb3RlY3RlZCBhZGRQcm9wZXJ0aWVzVGFicyh0YWJzOiBBcnJheTxTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWw+KSB7XG4gICAgdmFyIHByb3BlcnRpZXMgPSB0aGlzLmdldFByb3BlcnRpZXMoKTtcbiAgICB2YXIgdGFiSXRlbSA9IG5ldyBTdXJ2ZXlRdWVzdGlvbkVkaXRvclRhYkRlZmluaXRpb24oKTtcbiAgICB0YWJzLnB1c2godGhpcy5jcmVhdGVOZXdUYWIodGFiSXRlbSwgcHJvcGVydGllcykpO1xuICB9XG4gIHByb3RlY3RlZCBhc3NpZ25Qcm9wZXJ0aWVzVG9FZGl0b3IocHJvcEVkaXRvcjogU3VydmV5T2JqZWN0UHJvcGVydHkpIHtcbiAgICBzdXBlci5hc3NpZ25Qcm9wZXJ0aWVzVG9FZGl0b3IocHJvcEVkaXRvcik7XG4gICAgcHJvcEVkaXRvci5pc0luUHJvcGVydHlHcmlkID0gdHJ1ZTtcbiAgfVxuICBwcml2YXRlIGdldE9iamVjdFByb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5T2JqZWN0UHJvcGVydHk+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIHByb3BzID0gdGhpcy5rb1RhYigpLmVkaXRvclByb3BlcnRpZXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzLnB1c2gocHJvcHNbaV0pO1xuICAgIH1cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHNvcnRFdmVudCA9IGZ1bmN0aW9uIChcbiAgICAgIGE6IFN1cnZleU9iamVjdFByb3BlcnR5LFxuICAgICAgYjogU3VydmV5T2JqZWN0UHJvcGVydHlcbiAgICApOiBudW1iZXIge1xuICAgICAgdmFyIHJlcyA9IDA7XG4gICAgICBpZiAoc2VsZi5vblNvcnRQcm9wZXJ0eUNhbGxiYWNrKSB7XG4gICAgICAgIHJlcyA9IHNlbGYub25Tb3J0UHJvcGVydHlDYWxsYmFjayhcbiAgICAgICAgICBzZWxmLm9yaWdpbmFsT2JqLFxuICAgICAgICAgIGEucHJvcGVydHksXG4gICAgICAgICAgYi5wcm9wZXJ0eVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICAgIGlmIChhLmRpc3BsYXlOYW1lID09IGIuZGlzcGxheU5hbWUpIHJldHVybiAwO1xuICAgICAgaWYgKGEuZGlzcGxheU5hbWUgPiBiLmRpc3BsYXlOYW1lKSByZXR1cm4gMTtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9O1xuICAgIHJlcyA9IHJlcy5zb3J0KHNvcnRFdmVudCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGdldFByb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgdGFiSXRlbXMgPSB0aGlzLnByb3BlcnRpZXMuZ2V0VGFicygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFiSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB0YWJQcm9wZXJ0aWVzID0gdGhpcy5wcm9wZXJ0aWVzLmdldFByb3BlcnRpZXModGFiSXRlbXNbaV0pO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0YWJQcm9wZXJ0aWVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHJlcy5wdXNoKHRhYlByb3BlcnRpZXNbal0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlFbGVtZW50RWRpdG9yVGFiTW9kZWwge1xuICBwcml2YXRlIGVkaXRvclByb3BlcnRpZXNWYWx1ZTogQXJyYXk8U3VydmV5T2JqZWN0UHJvcGVydHk+ID0gW107XG4gIHByaXZhdGUgdGl0bGVWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIGh0bWxFbGVtZW50cyA9IG51bGw7XG4gIHB1YmxpYyBvbkV4cGFuZDogKCkgPT4gdm9pZDtcbiAgcHVibGljIG9uQ29sbGFwc2U6ICgpID0+IHZvaWQ7XG4gIHB1YmxpYyBvbkFmdGVyUmVuZGVyQ2FsbGJhY2s6IChcbiAgICBodG1sRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgcHJvcGVydHk6IFN1cnZleU9iamVjdFByb3BlcnR5XG4gICkgPT4gYW55O1xuICBrb0FmdGVyUmVuZGVyUHJvcGVydHk6IGFueTtcbiAga29BZnRlclJlbmRlcjogYW55O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb2JqOiBhbnksXG4gICAgcHJpdmF0ZSBwcm9wZXJ0aWVzOiBBcnJheTxTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5PixcbiAgICBwcml2YXRlIF9uYW1lLFxuICAgIHB1YmxpYyBvcHRpb25zOiBJU3VydmV5T2JqZWN0RWRpdG9yT3B0aW9ucyxcbiAgICBwcml2YXRlIF9yZWFkT25seTogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIHRoaXMuYnVpbGRFZGl0b3JQcm9wZXJ0aWVzKCk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMua29BZnRlclJlbmRlclByb3BlcnR5ID0gZnVuY3Rpb24gKGNvbXBvbmVudEluZm86IGFueSwgY29uKSB7XG4gICAgICBzZWxmLmFmdGVyUmVuZGVyUHJvcGVydHkoY29tcG9uZW50SW5mbywgY29uKTtcbiAgICB9O1xuICAgIHRoaXMua29BZnRlclJlbmRlciA9IGZ1bmN0aW9uIChjb21wb25lbnRJbmZvOiBhbnksIGNvbikge1xuICAgICAgc2VsZi5hZnRlclJlbmRlcihjb21wb25lbnRJbmZvLCBjb24pO1xuICAgIH07XG4gIH1cbiAgcHVibGljIGV4cGFuZChkb1NldHVwOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmICghIXRoaXMub25FeHBhbmQpIHRoaXMub25FeHBhbmQoKTtcbiAgICB0aGlzLmRvT25FeHBhbmRlZChkb1NldHVwKTtcbiAgfVxuICBwdWJsaWMgY29sbGFwc2UoKSB7XG4gICAgaWYgKCEhdGhpcy5vbkNvbGxhcHNlKSB0aGlzLm9uQ29sbGFwc2UoKTtcbiAgfVxuICBwdWJsaWMgZG9PbkV4cGFuZGVkKGRvU2V0dXA6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYoZG9TZXR1cCkge1xuICAgICAgdGhpcy5iZWZvcmVTaG93KCk7XG4gICAgfVxuICAgIGlmKHRoaXMub3B0aW9ucyAmJiAhKHRoaXMub3B0aW9ucyBhcyBTdXJ2ZXlDcmVhdG9yKS5zZWxlY3RGcm9tU3RyaW5nRWRpdG9yKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAga28udGFza3MucnVuRWFybHkoKTtcbiAgICAgICAgdGhpcy5mb2N1c0VkaXRvcigpO1xuICAgICAgfSwgMSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYWZ0ZXJSZW5kZXIoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIGNvbnRleHQpIHtcbiAgICB0aGlzLmh0bWxFbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgIHRoaXMuZm9jdXNFZGl0b3IoKTtcbiAgICBpZih0aGlzLm9wdGlvbnMpXG4gICAgICAodGhpcy5vcHRpb25zIGFzIFN1cnZleUNyZWF0b3IpLnNlbGVjdEZyb21TdHJpbmdFZGl0b3IgPSBmYWxzZTtcbiAgfVxuICBwdWJsaWMgZm9jdXNFZGl0b3IoKSB7XG4gICAgaWYgKCEhdGhpcy5odG1sRWxlbWVudHMpIHtcbiAgICAgIGZvY3VzRmlyc3RDb250cm9sKHRoaXMuaHRtbEVsZW1lbnRzKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cbiAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICBpZiAodGhpcy50aXRsZVZhbHVlKSByZXR1cm4gdGhpcy50aXRsZVZhbHVlO1xuICAgIHZhciBzdHIgPSBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUudGFicy5cIiArIHRoaXMubmFtZSk7XG4gICAgcmV0dXJuIHN0ciA/IHN0ciA6IHRoaXMubmFtZTtcbiAgfVxuICBwdWJsaWMgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRpdGxlVmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvclByb3BlcnRpZXMoKTogQXJyYXk8U3VydmV5T2JqZWN0UHJvcGVydHk+IHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JQcm9wZXJ0aWVzVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBodG1sVGVtcGxhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJzdmQtb2JqZWN0LWVkaXRvci10YWJcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IHRlbXBsYXRlT2JqZWN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcHVibGljIGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHZhciBpc0Vycm9yID0gZmFsc2U7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVkaXRvclByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlzRXJyb3IgPSB0aGlzLmVkaXRvclByb3BlcnRpZXNbaV0uaGFzRXJyb3IoKSB8fCBpc0Vycm9yO1xuICAgIH1cbiAgICByZXR1cm4gaXNFcnJvcjtcbiAgfVxuICBwdWJsaWMgYmVmb3JlU2hvdygpIHtcbiAgICB0aGlzLnBlcmZvcm1Gb3JBbGxQcm9wZXJ0aWVzKChwKSA9PiBwLmJlZm9yZVNob3coKSk7XG4gIH1cbiAgcHVibGljIHJlc2V0KCkge1xuICAgIHRoaXMucGVyZm9ybUZvckFsbFByb3BlcnRpZXMoKHApID0+IHAucmVzZXQoKSk7XG4gIH1cbiAgcHVibGljIGFwcGx5VG9PYmoob2JqOiBTdXJ2ZXkuQmFzZSkge1xuICAgIHRoaXMucGVyZm9ybUZvckFsbFByb3BlcnRpZXMoKHApID0+IHAuYXBwbHlUb09iaihvYmopKTtcbiAgfVxuICBwdWJsaWMgZ2V0UHJvcGVydHlFZGl0b3JCeU5hbWUocHJvcGVydHlOYW1lOiBzdHJpbmcpOiBTdXJ2ZXlPYmplY3RQcm9wZXJ0eSB7XG4gICAgdmFyIHByb3BzID0gdGhpcy5lZGl0b3JQcm9wZXJ0aWVzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwcm9wc1tpXS5wcm9wZXJ0eS5uYW1lID09IHByb3BlcnR5TmFtZSkgcmV0dXJuIHByb3BzW2ldO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZ2V0VmFsdWUocHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpOiBhbnkge1xuICAgIHJldHVybiBwcm9wZXJ0eS5nZXRQcm9wZXJ0eVZhbHVlKHRoaXMub2JqKTtcbiAgfVxuICBwcml2YXRlIGFmdGVyUmVuZGVyUHJvcGVydHkoY29tcG9uZW50SW5mbzogYW55LCBwcm9wKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBnZXROb2Rlc0Zyb21Lb0NvbXBvbmVudEluZm8oY29tcG9uZW50SW5mbyk7XG4gICAgaWYgKCF0aGlzLm9uQWZ0ZXJSZW5kZXJDYWxsYmFjaykgcmV0dXJuO1xuICAgIHZhciBlbCA9IGdldEZpcnN0Tm9uVGV4dEVsZW1lbnQoZWxlbWVudHMpO1xuICAgIHZhciB0RWwgPSBlbGVtZW50c1swXTtcbiAgICBpZiAodEVsLm5vZGVOYW1lID09PSBcIiN0ZXh0XCIpIHRFbC5kYXRhID0gXCJcIjtcbiAgICB0RWwgPSBlbGVtZW50c1tlbGVtZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAodEVsLm5vZGVOYW1lID09PSBcIiN0ZXh0XCIpIHRFbC5kYXRhID0gXCJcIjtcbiAgICB0aGlzLm9uQWZ0ZXJSZW5kZXJDYWxsYmFjayhlbC5wYXJlbnRFbGVtZW50LCBwcm9wKTtcbiAgfVxuICBwcml2YXRlIGJ1aWxkRWRpdG9yUHJvcGVydGllcygpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHByb3AgPSB0aGlzLnByb3BlcnRpZXNbaV07XG4gICAgICB0aGlzLmNyZWF0ZUVkaXRvcihwcm9wKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVFZGl0b3IocHJvcGVydHk6IGFueSkge1xuICAgIHZhciBvYmplY3RQcm9wZXJ0eSA9IG5ldyBTdXJ2ZXlPYmplY3RQcm9wZXJ0eShwcm9wZXJ0eSwgdGhpcy5vcHRpb25zKTtcbiAgICBvYmplY3RQcm9wZXJ0eS5vYmplY3QgPSB0aGlzLm9iajtcbiAgICBvYmplY3RQcm9wZXJ0eS5lZGl0b3IucmVhZE9ubHkob2JqZWN0UHJvcGVydHkuZWRpdG9yLnJlYWRPbmx5KCkgfHwgdGhpcy5fcmVhZE9ubHkpO1xuICAgIHRoaXMuZWRpdG9yUHJvcGVydGllc1ZhbHVlLnB1c2gob2JqZWN0UHJvcGVydHkpO1xuICB9XG4gIHByaXZhdGUgcGVyZm9ybUZvckFsbFByb3BlcnRpZXMoZnVuYzogKHA6IFN1cnZleU9iamVjdFByb3BlcnR5KSA9PiB2b2lkKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVkaXRvclByb3BlcnRpZXNWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgZnVuYyh0aGlzLmVkaXRvclByb3BlcnRpZXNWYWx1ZVtpXSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlQcm9wZXJ0eUVkaXRvclNob3dXaW5kb3cge1xuICBrb1Zpc2libGU6IGFueTtcbiAga29FZGl0b3I6IGFueTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5rb1Zpc2libGUgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgICB0aGlzLmtvRWRpdG9yID0ga28ub2JzZXJ2YWJsZShudWxsKTtcbiAgfVxuICBwdWJsaWMgc2hvdyhcbiAgICBxdWVzdGlvbjogU3VydmV5LkJhc2UsXG4gICAgZWxXaW5kb3c6IEhUTUxFbGVtZW50LFxuICAgIG9uQ2hhbmdlZDogKHF1ZXN0aW9uOiBTdXJ2ZXkuUXVlc3Rpb24pID0+IGFueSxcbiAgICBvcHRpb25zOiBJU3VydmV5T2JqZWN0RWRpdG9yT3B0aW9ucyA9IG51bGwsXG4gICAgb25DbG9zZWQ6ICgpID0+IGFueSA9IG51bGwsXG4gICAgb25FZGl0b3JBZnRlclJlbmRlckNhbGxiYWNrOiAoXG4gICAgICBvYmo6IGFueSxcbiAgICAgIGh0bWxFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICAgIHByb3A6IFN1cnZleU9iamVjdFByb3BlcnR5XG4gICAgKSA9PiB2b2lkID0gdW5kZWZpbmVkXG4gICkge1xuICAgIHZhciBlZGl0b3IgPSBuZXcgU3VydmV5UXVlc3Rpb25FZGl0b3IocXVlc3Rpb24sIG51bGwsIG9wdGlvbnMpO1xuICAgIGVkaXRvci5vbkFmdGVyUmVuZGVyQ2FsbGJhY2sgPSBvbkVkaXRvckFmdGVyUmVuZGVyQ2FsbGJhY2s7XG4gICAgZWRpdG9yLm9uQ2hhbmdlZCA9IG9uQ2hhbmdlZDtcblxuICAgIHRoaXMua29FZGl0b3IoZWRpdG9yKTtcbiAgICB0aGlzLmtvVmlzaWJsZSh0cnVlKTtcblxuICAgIHZhciBtb2RhbCA9IG5ldyBSTW9kYWwoZWxXaW5kb3csIHtcbiAgICAgIGJvZHlDbGFzczogXCJcIixcbiAgICAgIGNsb3NlVGltZW91dDogMTAwLFxuICAgICAgZGlhbG9nT3BlbkNsYXNzOiBcImFuaW1hdGVkIGZhZGVJblwiLFxuICAgICAgZm9jdXM6IGZhbHNlLFxuICAgICAgYWZ0ZXJDbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAob25DbG9zZWQpIG9uQ2xvc2VkKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIG1vZGFsLm9wZW4oKTtcblxuICAgIGlmICgoPGFueT5vcHRpb25zKS5jbG9zZU1vZGFsT3V0c2lkZSAhPT0gXCJvZmZcIikge1xuICAgICAgdmFyIGZhZGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdXJ2ZXlxdWVzdGlvbmVkaXRvcndpbmRvd1wiKTtcbiAgICAgIHZhciBvdXRPZk1vZGFsQ2xpY2tIYW5kbGVyID0gZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICBpZiAoKDxhbnk+ZXZ0LnRhcmdldCkuY2xhc3NOYW1lID09PSBcIm1vZGFsXCIpIHtcbiAgICAgICAgICBpZiAoKDxhbnk+b3B0aW9ucykuY2xvc2VNb2RhbE91dHNpZGUgPT09IFwiYXBwbHlcIikge1xuICAgICAgICAgICAgZWRpdG9yLm9uT2tDbGljaygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlZGl0b3Iub25SZXNldENsaWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgZmFkZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBvdXRPZk1vZGFsQ2xpY2tIYW5kbGVyKTtcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgXCJrZXlkb3duXCIsXG4gICAgICBmdW5jdGlvbiAoZXYpIHtcbiAgICAgICAgbW9kYWwua2V5ZG93bihldik7XG4gICAgICB9LFxuICAgICAgZmFsc2VcbiAgICApO1xuXG4gICAgZWRpdG9yLm9uSGlkZVdpbmRvdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICgoPGFueT5vcHRpb25zKS5jbG9zZU1vZGFsT3V0c2lkZSAhPT0gXCJvZmZcIikge1xuICAgICAgICBmYWRlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIG91dE9mTW9kYWxDbGlja0hhbmRsZXIpO1xuICAgICAgfVxuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlRdWVzdGlvbkVkaXRvclByb3BlcnR5RGVmaW5pdGlvbiB7XG4gIHB1YmxpYyBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eTtcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXRlZ29yeTogc3RyaW5nO1xuICBwdWJsaWMgY3JlYXRlZEZyb21UYWJOYW1lOiBib29sZWFuO1xuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5uYW1lIDogXCJcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5UXVlc3Rpb25FZGl0b3JUYWJEZWZpbml0aW9uIHtcbiAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIGluZGV4OiBudW1iZXIgPSAwO1xuICBwdWJsaWMgcHJvcGVydGllczogQXJyYXk8U3VydmV5UXVlc3Rpb25FZGl0b3JQcm9wZXJ0eURlZmluaXRpb24+ID0gW107XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlRdWVzdGlvblByb3BlcnRpZXMge1xuICBwcml2YXRlIHNob3dNb2RlVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBwcm9wZXJ0aWVzOiBBcnJheTxTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5PjtcbiAgcHJpdmF0ZSBwcm9wZXJ0aWVzSGFzaDogYW55O1xuICBwcml2YXRlIHRhYnM6IEFycmF5PFN1cnZleVF1ZXN0aW9uRWRpdG9yVGFiRGVmaW5pdGlvbj4gPSBbXTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG9iajogYW55LFxuICAgIHB1YmxpYyBvcHRpb25zOiBJU3VydmV5Q3JlYXRvck9wdGlvbnMgPSBudWxsLFxuICAgIGNsYXNzTmFtZTogc3RyaW5nID0gbnVsbCxcbiAgICBzaG93TW9kZTogc3RyaW5nID0gbnVsbCxcbiAgICBwcml2YXRlIHBhcmVudE9iajogYW55ID0gbnVsbCxcbiAgICBwcml2YXRlIHBhcmVudFByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5ID0gbnVsbFxuICApIHtcbiAgICB0aGlzLnNob3dNb2RlVmFsdWUgPSBzaG93TW9kZTtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBTdXJ2ZXkuU2VyaWFsaXplci5nZXRQcm9wZXJ0aWVzQnlPYmoodGhpcy5vYmopO1xuICAgIHRoaXMuZmlsbFByb3BlcnRpZXNIYXNoKCk7XG4gICAgdGhpcy5idWlsZFRhYnMoY2xhc3NOYW1lKTtcbiAgfVxuICBwdWJsaWMgZ2V0UHJvcGVydHkocHJvcGVydHlOYW1lOiBzdHJpbmcpOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5IHtcbiAgICB2YXIgcmVzID0gdGhpcy5wcm9wZXJ0aWVzSGFzaFtwcm9wZXJ0eU5hbWVdO1xuICAgIHJldHVybiAhIXJlcyAmJiByZXMudmlzaWJsZSA/IHJlcy5wcm9wZXJ0eSA6IG51bGw7XG4gIH1cbiAgcHVibGljIGdldCBzaG93TW9kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAhIXRoaXMuc2hvd01vZGVWYWx1ZSA/IHRoaXMuc2hvd01vZGVWYWx1ZSA6IFwiZm9ybVwiO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMudGFic1tpXS52aXNpYmxlICYmIHRoaXMudGFic1tpXS5wcm9wZXJ0aWVzLmxlbmd0aCA+IDApXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBmaWxsUHJvcGVydGllc0hhc2goKSB7XG4gICAgdGhpcy5wcm9wZXJ0aWVzSGFzaCA9IHt9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcCA9IHRoaXMucHJvcGVydGllc1tpXTtcbiAgICAgIHRoaXMucHJvcGVydGllc0hhc2hbcHJvcC5uYW1lXSA9IHtcbiAgICAgICAgcHJvcGVydHk6IHByb3AsXG4gICAgICAgIHZpc2libGU6IFN1cnZleUhlbHBlci5pc1Byb3BlcnR5VmlzaWJsZShcbiAgICAgICAgICB0aGlzLm9iaixcbiAgICAgICAgICBwcm9wLFxuICAgICAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgICAgICB0aGlzLnNob3dNb2RlLFxuICAgICAgICAgIHRoaXMucGFyZW50T2JqLFxuICAgICAgICAgIHRoaXMucGFyZW50UHJvcGVydHlcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNKU09OUHJvcGVydHlWaXNpYmxlKHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KTogYm9vbGVhbiB7XG4gICAgdmFyIHJlcyA9IHRoaXMucHJvcGVydGllc0hhc2hbcHJvcGVydHkubmFtZV07XG4gICAgcmV0dXJuICEhcmVzICYmIHJlcy52aXNpYmxlO1xuICB9XG4gIHB1YmxpYyBnZXRUYWJCeU5hbWUodGFiTmFtZTogc3RyaW5nKTogU3VydmV5UXVlc3Rpb25FZGl0b3JUYWJEZWZpbml0aW9uIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMudGFic1tpXS5uYW1lID09IHRhYk5hbWUpIHJldHVybiB0aGlzLnRhYnNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXRUYWJzKCk6IEFycmF5PFN1cnZleVF1ZXN0aW9uRWRpdG9yVGFiRGVmaW5pdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLnRhYnM7XG4gIH1cbiAgcHVibGljIGdldFByb3BlcnRpZXMoXG4gICAgdGFiOiBTdXJ2ZXlRdWVzdGlvbkVkaXRvclRhYkRlZmluaXRpb25cbiAgKTogQXJyYXk8U3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYi5wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMucHVzaCh0YWIucHJvcGVydGllc1tpXS5wcm9wZXJ0eSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBidWlsZFRhYnMoY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWNsYXNzTmFtZSkge1xuICAgICAgY2xhc3NOYW1lID0gdGhpcy5vYmouZ2V0VHlwZSgpO1xuICAgIH1cbiAgICB2YXIgZGVmaW5pdGlvbnMgPSB0aGlzLmdldEFsbERlZmluaXRpb25zQnlDbGFzcyhjbGFzc05hbWUpO1xuICAgIHZhciBhZGRlZFByb3BlcnRpZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gZGVmaW5pdGlvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBkZWZJdGVtID0gZGVmaW5pdGlvbnNbaV07XG4gICAgICBmb3IgKHZhciBqID0gISFkZWZJdGVtLnRhYnMgPyBkZWZJdGVtLnRhYnMubGVuZ3RoIC0gMSA6IC0xOyBqID49IDA7IGotLSkge1xuICAgICAgICBpZiAoYWRkZWRQcm9wZXJ0aWVzLmluZGV4T2YoZGVmSXRlbS50YWJzW2pdLm5hbWUpID4gLTEpIGNvbnRpbnVlO1xuICAgICAgICBpZiAodGhpcy5hZGRQcm9wZXJ0eUludG9UYWIoZGVmSXRlbS50YWJzW2pdLCB0cnVlKSkge1xuICAgICAgICAgIGFkZGVkUHJvcGVydGllcy5wdXNoKGRlZkl0ZW0udGFic1tqXS5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChcbiAgICAgICAgdmFyIGogPSAhIWRlZkl0ZW0ucHJvcGVydGllcyA/IGRlZkl0ZW0ucHJvcGVydGllcy5sZW5ndGggLSAxIDogLTE7XG4gICAgICAgIGogPj0gMDtcbiAgICAgICAgai0tXG4gICAgICApIHtcbiAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9XG4gICAgICAgICAgZGVmSXRlbS5wcm9wZXJ0aWVzW2pdW1wibmFtZVwiXSB8fCBkZWZJdGVtLnByb3BlcnRpZXNbal07XG4gICAgICAgIGlmIChhZGRlZFByb3BlcnRpZXMuaW5kZXhPZihwcm9wZXJ0eU5hbWUpID09PSAtMSkge1xuICAgICAgICAgIGFkZGVkUHJvcGVydGllcy5wdXNoKHByb3BlcnR5TmFtZSk7XG4gICAgICAgICAgdGhpcy5hZGRQcm9wZXJ0eUludG9UYWIoZGVmSXRlbS5wcm9wZXJ0aWVzW2pdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBpID0gdGhpcy50YWJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB0aGlzLm1vdmVQcm9wZXJ0aWVzVG9OZXh0UHJvcGVydGllcyh0aGlzLnRhYnNbaV0ucHJvcGVydGllcyk7XG4gICAgICBpZiAoIXRoaXMudGFic1tpXS52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMudGFicy5zcGxpY2UoaSwgMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvcnRQcm9wZXJ0aWVzKHRoaXMudGFic1tpXS5wcm9wZXJ0aWVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50YWJzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBhLmluZGV4IDwgYi5pbmRleCA/IC0xIDogYS5pbmRleCA+IGIuaW5kZXggPyAxIDogMDtcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGFkZFByb3BlcnR5SW50b1RhYihcbiAgICBkZWZQcm9wZXJ0eTogYW55LFxuICAgIGlzVGFiOiBib29sZWFuID0gZmFsc2VcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzVGFiKSB7XG4gICAgICBsZXQgdGFiID0gdGhpcy5nZXRUYWJPckNyZWF0ZShkZWZQcm9wZXJ0eS5uYW1lKTtcbiAgICAgIGlmIChkZWZQcm9wZXJ0eS5pbmRleCA+IDApIHtcbiAgICAgICAgdGFiLmluZGV4ID0gZGVmUHJvcGVydHkuaW5kZXg7XG4gICAgICB9XG4gICAgICBpZiAoZGVmUHJvcGVydHkudmlzaWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGFiLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghIWRlZlByb3BlcnR5LnRpdGxlKSB7XG4gICAgICAgIHRhYi50aXRsZSA9IGRlZlByb3BlcnR5LnRpdGxlO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgaXNTdHJpbmcgPSB0eXBlb2YgZGVmUHJvcGVydHkgPT0gXCJzdHJpbmdcIjtcbiAgICB2YXIgbmFtZSA9ICFpc1N0cmluZyA/IGRlZlByb3BlcnR5Lm5hbWUgOiBkZWZQcm9wZXJ0eTtcbiAgICB2YXIgcHJvcFJlcyA9IHRoaXMucHJvcGVydGllc0hhc2hbbmFtZV07XG4gICAgaWYgKCFwcm9wUmVzKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCFpc1N0cmluZyAmJiBkZWZQcm9wZXJ0eS52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChcbiAgICAgICFwcm9wUmVzLnZpc2libGUgJiZcbiAgICAgIChpc1N0cmluZyB8fCAoIWlzU3RyaW5nICYmIGRlZlByb3BlcnR5LnZpc2libGUgIT09IHRydWUpKVxuICAgIClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB2YXIgdGFiTmFtZSA9IGlzVGFiID8gZGVmUHJvcGVydHkubmFtZSA6IFwiZ2VuZXJhbFwiO1xuICAgIGlmICghaXNUYWIgJiYgIWlzU3RyaW5nICYmICEhZGVmUHJvcGVydHkudGFiKSB7XG4gICAgICB0YWJOYW1lID0gZGVmUHJvcGVydHkudGFiO1xuICAgIH1cbiAgICB2YXIgcHJvcGVydHlEZWZpbml0aW9uID0gbmV3IFN1cnZleVF1ZXN0aW9uRWRpdG9yUHJvcGVydHlEZWZpbml0aW9uKCk7XG4gICAgcHJvcGVydHlEZWZpbml0aW9uLnByb3BlcnR5ID0gcHJvcFJlcy5wcm9wZXJ0eTtcbiAgICBwcm9wZXJ0eURlZmluaXRpb24uY2F0ZWdvcnkgPVxuICAgICAgIWlzU3RyaW5nICYmICEhZGVmUHJvcGVydHkuY2F0ZWdvcnkgPyBkZWZQcm9wZXJ0eS5jYXRlZ29yeSA6IFwiXCI7XG4gICAgcHJvcGVydHlEZWZpbml0aW9uLnRpdGxlID1cbiAgICAgICFpc1N0cmluZyAmJiAhIWRlZlByb3BlcnR5LnRpdGxlID8gZGVmUHJvcGVydHkudGl0bGUgOiBcIlwiO1xuICAgIHByb3BlcnR5RGVmaW5pdGlvbi5jcmVhdGVkRnJvbVRhYk5hbWUgPSBpc1RhYjtcbiAgICBsZXQgdGFiID0gdGhpcy5nZXRUYWJPckNyZWF0ZSh0YWJOYW1lKTtcbiAgICB0YWIucHJvcGVydGllcy51bnNoaWZ0KHByb3BlcnR5RGVmaW5pdGlvbik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBtb3ZlUHJvcGVydGllc1RvTmV4dFByb3BlcnRpZXMoXG4gICAgcHJvcGVydGllczogQXJyYXk8U3VydmV5UXVlc3Rpb25FZGl0b3JQcm9wZXJ0eURlZmluaXRpb24+XG4gICkge1xuICAgIHZhciBwcm9wcyA9IFtdLmNvbmNhdChwcm9wZXJ0aWVzKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbmV3VGFiID0gdGhpcy5nZXRUYWJCeVByb3BlcnR5TmFtZShwcm9wc1tpXS5wcm9wZXJ0eS5uZXh0VG9Qcm9wZXJ0eSk7XG4gICAgICBpZiAoISFuZXdUYWIpIHtcbiAgICAgICAgdmFyIHByb3AgPSB0aGlzLmdldFByb3BlcnR5QnlOYW1lSW5UYWIoXG4gICAgICAgICAgbmV3VGFiLFxuICAgICAgICAgIHByb3BzW2ldLnByb3BlcnR5Lm5leHRUb1Byb3BlcnR5XG4gICAgICAgICk7XG4gICAgICAgIHZhciBpbmRleCA9IG5ld1RhYi5wcm9wZXJ0aWVzLmluZGV4T2YocHJvcCk7XG4gICAgICAgIG5ld1RhYi5wcm9wZXJ0aWVzLnNwbGljZShpbmRleCArIDEsIDAsIHByb3BzW2ldKTtcbiAgICAgICAgcHJvcGVydGllcy5zcGxpY2UocHJvcGVydGllcy5pbmRleE9mKHByb3BzW2ldKSwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0VGFiQnlQcm9wZXJ0eU5hbWUoXG4gICAgcHJvcE5hbWU6IHN0cmluZ1xuICApOiBTdXJ2ZXlRdWVzdGlvbkVkaXRvclRhYkRlZmluaXRpb24ge1xuICAgIGlmICghcHJvcE5hbWUpIHJldHVybiBudWxsO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoISF0aGlzLmdldFByb3BlcnR5QnlOYW1lSW5UYWIodGhpcy50YWJzW2ldLCBwcm9wTmFtZSkpXG4gICAgICAgIHJldHVybiB0aGlzLnRhYnNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByaXZhdGUgZ2V0UHJvcGVydHlCeU5hbWVJblRhYihcbiAgICB0YWI6IFN1cnZleVF1ZXN0aW9uRWRpdG9yVGFiRGVmaW5pdGlvbixcbiAgICBwcm9wTmFtZTogc3RyaW5nXG4gICk6IFN1cnZleVF1ZXN0aW9uRWRpdG9yUHJvcGVydHlEZWZpbml0aW9uIHtcbiAgICB2YXIgcHJvcHMgPSB0YWIucHJvcGVydGllcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocHJvcHNbaV0ubmFtZSA9PSBwcm9wTmFtZSkgcmV0dXJuIHByb3BzW2ldO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwcml2YXRlIGdldFRhYk9yQ3JlYXRlKHRhYk5hbWU6IHN0cmluZyk6IFN1cnZleVF1ZXN0aW9uRWRpdG9yVGFiRGVmaW5pdGlvbiB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLnRhYnNbaV0ubmFtZSA9PSB0YWJOYW1lKSByZXR1cm4gdGhpcy50YWJzW2ldO1xuICAgIH1cbiAgICB2YXIgcmVzID0gbmV3IFN1cnZleVF1ZXN0aW9uRWRpdG9yVGFiRGVmaW5pdGlvbigpO1xuICAgIHJlcy5uYW1lID0gdGFiTmFtZTtcbiAgICAvL1RPRE8gbWFrZSBcImdlbmVyYWxcIiBjb25zdGFudFxuICAgIGlmICh0YWJOYW1lID09IFwiZ2VuZXJhbFwiKSB7XG4gICAgICByZXMuaW5kZXggPSAtMTtcbiAgICB9XG4gICAgdGhpcy50YWJzLnVuc2hpZnQocmVzKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgZ2V0QWxsRGVmaW5pdGlvbnNCeUNsYXNzKFxuICAgIGNsYXNzTmFtZTogc3RyaW5nXG4gICk6IEFycmF5PElTdXJ2ZXlRdWVzdGlvbkVkaXRvckRlZmluaXRpb24+IHtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgaWYgKFxuICAgICAgY2xhc3NOYW1lLmluZGV4T2YoXCJAXCIpID4gLTEgJiZcbiAgICAgIFN1cnZleVF1ZXN0aW9uRWRpdG9yRGVmaW5pdGlvbi5kZWZpbml0aW9uW2NsYXNzTmFtZV1cbiAgICApIHtcbiAgICAgIHZhciBkZWZhdWx0TmFtZSA9XG4gICAgICAgIGNsYXNzTmFtZS5zdWJzdHJpbmcoMCwgY2xhc3NOYW1lLmluZGV4T2YoXCJAXCIpICsgMSkgKyBcImRlZmF1bHRcIjtcbiAgICAgIGlmIChcbiAgICAgICAgZGVmYXVsdE5hbWUgIT0gY2xhc3NOYW1lICYmXG4gICAgICAgICEhU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uLmRlZmluaXRpb25bZGVmYXVsdE5hbWVdXG4gICAgICApIHtcbiAgICAgICAgcmVzdWx0LnB1c2goU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uLmRlZmluaXRpb25bZGVmYXVsdE5hbWVdKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKFN1cnZleVF1ZXN0aW9uRWRpdG9yRGVmaW5pdGlvbi5kZWZpbml0aW9uW2NsYXNzTmFtZV0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgdmFyIGN1ckNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICB2YXIgdXNlZFByb3BlcnRpZXMgPSB7fTtcbiAgICB2YXIgaGFzTm9uVGFiUHJvcGVydGllcyA9IGZhbHNlO1xuICAgIHdoaWxlIChjdXJDbGFzc05hbWUpIHtcbiAgICAgIGxldCBtZXRhQ2xhc3MgPSA8U3VydmV5Lkpzb25NZXRhZGF0YUNsYXNzPihcbiAgICAgICAgU3VydmV5LlNlcmlhbGl6ZXIuZmluZENsYXNzKGN1ckNsYXNzTmFtZSlcbiAgICAgICk7XG4gICAgICBpZiAoIW1ldGFDbGFzcykgYnJlYWs7XG4gICAgICBsZXQgY2xhc3NSZXMgPSBTdXJ2ZXlRdWVzdGlvbkVkaXRvckRlZmluaXRpb24uZGVmaW5pdGlvblttZXRhQ2xhc3MubmFtZV07XG4gICAgICBpZiAoY2xhc3NSZXMpIHtcbiAgICAgICAgaWYgKGNsYXNzUmVzLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgICAgd2hpbGUgKGkgPCBjbGFzc1Jlcy5wcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHByb3AgPSBjbGFzc1Jlcy5wcm9wZXJ0aWVzW2ldO1xuICAgICAgICAgICAgdmFyIHByb3BOYW1lID0gdHlwZW9mIHByb3AgPT0gXCJzdHJpbmdcIiA/IHByb3AgOiBwcm9wLm5hbWU7XG4gICAgICAgICAgICB2YXIgdGFiTmFtZSA9IFwiZ2VuZXJhbFwiO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wICE9PSBcInN0cmluZ1wiICYmICEhcHJvcC50YWIpIHtcbiAgICAgICAgICAgICAgdGFiTmFtZSA9IHByb3AudGFiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGpzb25Qcm9wID0gISF0aGlzLnByb3BlcnRpZXNIYXNoW3Byb3BOYW1lXVxuICAgICAgICAgICAgICA/IHRoaXMucHJvcGVydGllc0hhc2hbcHJvcE5hbWVdLnByb3BlcnR5XG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIHZhciBqc29uUHJvcGVydHlDYXRlZ29yeSA9IHRoaXMuZ2V0SnNvblByb3BlcnR5Q2F0ZWdvcnkoanNvblByb3ApO1xuICAgICAgICAgICAgaWYgKCEhanNvblByb3BlcnR5Q2F0ZWdvcnkgJiYganNvblByb3BlcnR5Q2F0ZWdvcnkgIT09IHRhYk5hbWUpIHtcbiAgICAgICAgICAgICAgY2xhc3NSZXMucHJvcGVydGllcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB1c2VkUHJvcGVydGllc1twcm9wTmFtZV0gPSB0cnVlO1xuICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjbGFzc1Jlcy50YWJzKSB7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbGFzc1Jlcy50YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBoYXNOb25UYWJQcm9wZXJ0aWVzID1cbiAgICAgICAgICAgICAgaGFzTm9uVGFiUHJvcGVydGllcyB8fCBjbGFzc1Jlcy50YWJzW2ldLm5hbWUgPT0gXCJvdGhlcnNcIjtcbiAgICAgICAgICAgIHVzZWRQcm9wZXJ0aWVzW2NsYXNzUmVzLnRhYnNbaV0ubmFtZV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXN1bHQudW5zaGlmdChjbGFzc1Jlcyk7XG4gICAgICB9XG4gICAgICBjdXJDbGFzc05hbWUgPSBtZXRhQ2xhc3MucGFyZW50TmFtZTtcbiAgICB9XG5cbiAgICBpZiAoIWhhc05vblRhYlByb3BlcnRpZXMpIHtcbiAgICAgIHRoaXMuYWRkTm9uVGFiUHJvcGVydGllcyhyZXN1bHQsIHVzZWRQcm9wZXJ0aWVzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwcml2YXRlIGdldEpzb25Qcm9wZXJ0eUNhdGVnb3J5KFxuICAgIGpzb25Qcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuICApOiBzdHJpbmcge1xuICAgIGlmICghanNvblByb3BlcnR5KSByZXR1cm4gbnVsbDtcbiAgICBpZiAoISFqc29uUHJvcGVydHkuY2F0ZWdvcnkpIHJldHVybiBqc29uUHJvcGVydHkuY2F0ZWdvcnk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBhZGROb25UYWJQcm9wZXJ0aWVzKFxuICAgIHRhYnM6IEFycmF5PElTdXJ2ZXlRdWVzdGlvbkVkaXRvckRlZmluaXRpb24+LFxuICAgIHVzZWRQcm9wZXJ0aWVzOiBhbnlcbiAgKSB7XG4gICAgbGV0IGNsYXNzUmVzOiBhbnkgPSB7IHByb3BlcnRpZXM6IFtdLCB0YWJzOiBbXSB9O1xuICAgIGxldCB0YWJOYW1lcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgcHJvcCA9IHRoaXMucHJvcGVydGllc1tpXTtcbiAgICAgIGlmICghdGhpcy5pc0pTT05Qcm9wZXJ0eVZpc2libGUocHJvcCkgfHwgISF1c2VkUHJvcGVydGllc1twcm9wLm5hbWVdKVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIGxldCBwcm9wQ2F0ZWdvcnkgPSB0aGlzLmdldEpzb25Qcm9wZXJ0eUNhdGVnb3J5KHByb3ApO1xuICAgICAgbGV0IHRhYk5hbWUgPSAhIXByb3BDYXRlZ29yeVxuICAgICAgICA/IHByb3BDYXRlZ29yeVxuICAgICAgICA6IHRhYnMubGVuZ3RoID09IDBcbiAgICAgICAgICA/IFwiZ2VuZXJhbFwiXG4gICAgICAgICAgOiBcIm90aGVyc1wiO1xuICAgICAgaWYgKHRhYk5hbWVzLmluZGV4T2YodGFiTmFtZSkgPCAwICYmIHRhYk5hbWUgIT0gXCJnZW5lcmFsXCIpIHtcbiAgICAgICAgdGFiTmFtZXMucHVzaCh0YWJOYW1lKTtcbiAgICAgICAgY2xhc3NSZXMudGFicy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiB0YWJOYW1lLFxuICAgICAgICAgIGluZGV4OiB0YWJOYW1lID09IFwib3RoZXJzXCIgPyAxMDAwIDogdGFiTmFtZXMubGVuZ3RoICogMTAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHByb3AuY2F0ZWdvcnlJbmRleCA+IC0xICYmIHRhYk5hbWVzLmluZGV4T2YodGFiTmFtZSkgPiAtMSkge1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNsYXNzUmVzLnRhYnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBpZiAoY2xhc3NSZXMudGFic1tqXS5uYW1lID09IHRhYk5hbWUpIHtcbiAgICAgICAgICAgIGNsYXNzUmVzLnRhYnNbal0uaW5kZXggPSBwcm9wLmNhdGVnb3J5SW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjbGFzc1Jlcy5wcm9wZXJ0aWVzLnB1c2goe1xuICAgICAgICBuYW1lOiB0aGlzLnByb3BlcnRpZXNbaV0ubmFtZSxcbiAgICAgICAgdGFiOiB0YWJOYW1lLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjbGFzc1Jlcy5wcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRhYnMucHVzaChjbGFzc1Jlcyk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc29ydFByb3BlcnRpZXMoXG4gICAgcHJvcGVydGllczogQXJyYXk8U3VydmV5UXVlc3Rpb25FZGl0b3JQcm9wZXJ0eURlZmluaXRpb24+XG4gICkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSkgcmV0dXJuO1xuICAgIHZhciBwcm9wczogQXJyYXk8U3VydmV5UXVlc3Rpb25FZGl0b3JQcm9wZXJ0eURlZmluaXRpb24+ID0gW10uY29uY2F0KFxuICAgICAgcHJvcGVydGllc1xuICAgICk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGluZGV4ID0gcHJvcHNbaV0ucHJvcGVydHkudmlzaWJsZUluZGV4O1xuICAgICAgaWYgKHByb3BzW2ldLmNyZWF0ZWRGcm9tVGFiTmFtZSkge1xuICAgICAgICBpbmRleCA9IDA7XG4gICAgICB9XG4gICAgICBpZiAoaW5kZXggPCAwKSBjb250aW51ZTtcbiAgICAgIHZhciBjdXJJbmRleCA9IHByb3BlcnRpZXMuaW5kZXhPZihwcm9wc1tpXSk7XG4gICAgICBpZiAoY3VySW5kZXggPiAtMSkge1xuICAgICAgICBwcm9wZXJ0aWVzLnNwbGljZShjdXJJbmRleCwgMSk7XG4gICAgICB9XG4gICAgICBpZiAoaW5kZXggPCBwcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgICBwcm9wZXJ0aWVzLnNwbGljZShpbmRleCwgMCwgcHJvcHNbaV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvcGVydGllcy5wdXNoKHByb3BzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVF1ZXN0aW9uRWRpdG9yIGV4dGVuZHMgU3VydmV5RWxlbWVudEVkaXRvckNvbnRlbnRNb2RlbCB7XG4gIHB1YmxpYyBvbkNoYW5nZWQ6IChvYmo6IFN1cnZleS5CYXNlKSA9PiBhbnk7XG4gIHB1YmxpYyBvbkhpZGVXaW5kb3c6ICgpID0+IGFueTtcbiAgcHVibGljIG9uT2tDbGljazogYW55O1xuICBwdWJsaWMgb25BcHBseUNsaWNrOiBhbnk7XG4gIHB1YmxpYyBvblJlc2V0Q2xpY2s6IGFueTtcbiAga29UYWJzOiBrby5PYnNlcnZhYmxlQXJyYXk8U3VydmV5RWxlbWVudEVkaXRvclRhYk1vZGVsPjtcbiAga29BY3RpdmVUYWIgPSBrby5vYnNlcnZhYmxlPHN0cmluZz4oKTtcbiAga29UaXRsZSA9IGtvLm9ic2VydmFibGU8c3RyaW5nPigpO1xuICBrb1Nob3dBcHBseUJ1dHRvbjogYW55O1xuICBvblRhYkNsaWNrOiBhbnk7XG4gIHByaXZhdGUgZWRpdGFibGVPYmplY3Q6IEVkaXRhYmxlT2JqZWN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9iajogYW55LFxuICAgIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgcHVibGljIG9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zID0gbnVsbFxuICApIHtcbiAgICBzdXBlcihvYmosIGNsYXNzTmFtZSwgb3B0aW9ucywgZmFsc2UpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLm9uQXBwbHlDbGljayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNlbGYuYXBwbHkoKTtcbiAgICB9O1xuICAgIHNlbGYub25Pa0NsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5kb0Nsb3NlV2luZG93KGZhbHNlKTtcbiAgICB9O1xuICAgIHNlbGYub25SZXNldENsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5kb0Nsb3NlV2luZG93KHRydWUpO1xuICAgIH07XG4gICAgdGhpcy5vblRhYkNsaWNrID0gZnVuY3Rpb24gKHRhYikge1xuICAgICAgaWYoISF0YWIuYmVmb3JlU2hvdykge1xuICAgICAgICB0YWIuYmVmb3JlU2hvdygpO1xuICAgICAgfVxuICAgICAgc2VsZi5rb0FjdGl2ZVRhYih0YWIubmFtZSk7XG4gICAgfTtcbiAgICB0aGlzLmtvU2hvd0FwcGx5QnV0dG9uID0ga28ub2JzZXJ2YWJsZShcbiAgICAgICF0aGlzLm9wdGlvbnMgfHwgdGhpcy5vcHRpb25zLnNob3dBcHBseUJ1dHRvbkluRWRpdG9yc1xuICAgICk7XG4gICAgdGhpcy5rb1RpdGxlKHRoaXMuZ2V0VGl0bGUoKSk7XG4gIH1cbiAgcHJvdGVjdGVkIHNldE9yaWdpbmFsT2JqVmFsdWUob2JqOiBhbnkpIHtcbiAgICBzdXBlci5zZXRPcmlnaW5hbE9ialZhbHVlKG9iaik7XG4gICAgdGhpcy5lZGl0YWJsZU9iamVjdCA9IG5ldyBFZGl0YWJsZU9iamVjdChvYmopO1xuICB9XG4gIHB1YmxpYyBnZXQgb2JqKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdGFibGVPYmplY3Qub2JqO1xuICB9XG4gIHB1YmxpYyBnZXQgZWRpdGFibGVPYmooKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5lZGl0YWJsZU9iamVjdC5lZGl0YWJsZU9iajtcbiAgfVxuICBwcml2YXRlIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgdmFyIHJlcztcbiAgICBpZiAodGhpcy5lZGl0YWJsZU9ialtcIm5hbWVcIl0pIHtcbiAgICAgIHJlcyA9IGVkaXRvckxvY2FsaXphdGlvblxuICAgICAgICAuZ2V0U3RyaW5nKFwicGUucUVkaXRvclRpdGxlXCIpXG4gICAgICAgIFtcImZvcm1hdFwiXSh0aGlzLmVkaXRhYmxlT2JqW1wibmFtZVwiXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJwZS5zdXJ2ZXlFZGl0b3JUaXRsZVwiKTtcbiAgICB9XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5vbkdldEVsZW1lbnRFZGl0b3JUaXRsZUNhbGxiYWNrKSB7XG4gICAgICByZXMgPSB0aGlzLm9wdGlvbnMub25HZXRFbGVtZW50RWRpdG9yVGl0bGVDYWxsYmFjayh0aGlzLmVkaXRhYmxlT2JqLCByZXMpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBkb0Nsb3NlV2luZG93KGlzQ2FuY2VsOiBib29sZWFuKSB7XG4gICAgdmFyIGFwcGxpZWRTdWNjZXNmdWxsID0gZmFsc2U7XG4gICAgaWYgKCFpc0NhbmNlbCkge1xuICAgICAgYXBwbGllZFN1Y2Nlc2Z1bGwgPSB0aGlzLmFwcGx5KCk7XG4gICAgfVxuICAgIGlmIChpc0NhbmNlbCB8fCBhcHBsaWVkU3VjY2VzZnVsbCkge1xuICAgICAgaWYgKHRoaXMub25IaWRlV2luZG93KSB0aGlzLm9uSGlkZVdpbmRvdygpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5lZGl0YWJsZU9iamVjdC5yZXNldCgpO1xuICAgIHZhciB0YWJzID0gdGhpcy5rb1RhYnMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRhYnNbaV0ucmVzZXQoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGFwcGx5KCk6IGJvb2xlYW4ge1xuICAgIHZhciByZXMgPSB0cnVlO1xuICAgIHZhciBpc0ZpcnN0RXJyb3IgPSBmYWxzZTtcbiAgICB2YXIgdGFicyA9IHRoaXMua29UYWJzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdGFiUmVzID0gdGFic1tpXS5oYXNFcnJvcigpO1xuICAgICAgaWYgKHRhYlJlcykge1xuICAgICAgICB0YWJzW2ldLmV4cGFuZChmYWxzZSk7XG4gICAgICAgIGlmICghaXNGaXJzdEVycm9yKSB7XG4gICAgICAgICAgdGhpcy5rb0FjdGl2ZVRhYih0YWJzW2ldLm5hbWUpO1xuICAgICAgICAgIGlzRmlyc3RFcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlcyA9ICF0YWJSZXMgJiYgcmVzO1xuICAgIH1cblxuICAgIGlmIChyZXMpIHtcbiAgICAgIGlmICghIXRoaXMub3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMuc3RhcnRVbmRvUmVkb1RyYW5zYWN0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmVkaXRhYmxlT2JqZWN0LmFwcGx5QWxsKCk7XG4gICAgICBpZiAodGhpcy5vbkNoYW5nZWQpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZWQodGhpcy5vYmopO1xuICAgICAgfVxuICAgICAgaWYgKCEhdGhpcy5vcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5zdG9wVW5kb1JlZG9UcmFuc2FjdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG59XG5cblN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShcInJhdGluZ1wiLCBcInJhdGVWYWx1ZXNcIikudmlzaWJsZUlmID0gbnVsbDtcblN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShcInJhdGluZ1wiLCBcInJhdGVNaW5cIikudmlzaWJsZUlmID0gbnVsbDtcblN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShcInJhdGluZ1wiLCBcInJhdGVNYXhcIikudmlzaWJsZUlmID0gbnVsbDtcblN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShcInJhdGluZ1wiLCBcInJhdGVTdGVwXCIpLnZpc2libGVJZiA9IG51bGw7IiwiZXhwb3J0IGludGVyZmFjZSBJU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHByb3BlcnRpZXM/OiBBcnJheTxzdHJpbmcgfCB7IG5hbWU6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIHRhYj86IHN0cmluZyB9PjtcbiAgdGFicz86IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgaW5kZXg/OiBudW1iZXIsXG4gICAgdGl0bGU/OiBzdHJpbmcsXG4gICAgdmlzaWJsZT86IGJvb2xlYW4sXG4gIH0+O1xufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5UXVlc3Rpb25FZGl0b3JEZWZpbml0aW9uIHtcbiAgcHVibGljIHN0YXRpYyBkZWZpbml0aW9uOiB7XG4gICAgW2tleTogc3RyaW5nXTogSVN1cnZleVF1ZXN0aW9uRWRpdG9yRGVmaW5pdGlvbixcbiAgfSA9IHtcbiAgICBxdWVzdGlvbjoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgXCJ0aXRsZVwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCIsXG4gICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICBcImlzUmVxdWlyZWRcIixcbiAgICAgICAgXCJyZWFkT25seVwiLFxuICAgICAgICBcInNob3dDb21tZW50QXJlYVwiLFxuICAgICAgICBcImNvbW1lbnRUZXh0XCIsXG4gICAgICAgIFwiY29tbWVudFBsYWNlaG9sZGVyXCIsXG4gICAgICAgIHsgbmFtZTogXCJ2aXNpYmxlSWZcIiwgdGFiOiBcImxvZ2ljXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImVuYWJsZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJyZXF1aXJlZElmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJiaW5kaW5nc1wiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZGVmYXVsdFZhbHVlRXhwcmVzc2lvblwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicmVzZXRWYWx1ZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzZXRWYWx1ZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzZXRWYWx1ZUV4cHJlc3Npb25cIiwgdGFiOiBcImxvZ2ljXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInBhZ2VcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzdGFydFdpdGhOZXdMaW5lXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiaGlkZU51bWJlclwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInN0YXRlXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwidGl0bGVMb2NhdGlvblwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImRlc2NyaXB0aW9uTG9jYXRpb25cIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJlcnJvckxvY2F0aW9uXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiaW5kZW50XCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwid2lkdGhcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtaW5XaWR0aFwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm1heFdpZHRoXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwidmFsdWVOYW1lXCIsIHRhYjogXCJkYXRhXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImRlZmF1bHRWYWx1ZVwiLCB0YWI6IFwiZGF0YVwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjb3JyZWN0QW5zd2VyXCIsIHRhYjogXCJkYXRhXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInVzZURpc3BsYXlWYWx1ZXNJbkR5bmFtaWNUZXh0c1wiLCB0YWI6IFwiZGF0YVwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjbGVhcklmSW52aXNpYmxlXCIsIHRhYjogXCJkYXRhXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInJlcXVpcmVkRXJyb3JUZXh0XCIsIHRhYjogXCJ2YWxpZGF0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInZhbGlkYXRvcnNcIiwgdGFiOiBcInZhbGlkYXRpb25cIiB9LFxuICAgICAgXSxcbiAgICAgIHRhYnM6IFtcbiAgICAgICAgeyBuYW1lOiBcImxvZ2ljXCIsIGluZGV4OiAxMDAgfSxcbiAgICAgICAgeyBuYW1lOiBcImxheW91dFwiLCBpbmRleDogMjAwIH0sXG4gICAgICAgIHsgbmFtZTogXCJkYXRhXCIsIGluZGV4OiAzMDAgfSxcbiAgICAgICAgeyBuYW1lOiBcInZhbGlkYXRpb25cIiwgaW5kZXg6IDQwMCB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGNvbW1lbnQ6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgeyBuYW1lOiBcInJvd3NcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjb2xzXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICBcInBsYWNlaG9sZGVyXCIsXG4gICAgICAgIHsgbmFtZTogXCJtYXhMZW5ndGhcIiwgdGFiOiBcInZhbGlkYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwidGV4dFVwZGF0ZU1vZGVcIiwgdGFiOiBcImRhdGFcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiYXV0b0dyb3dcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJhbGxvd1Jlc2l6ZVwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm11bHRpTGluZVwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBmaWxlOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIFwiYWxsb3dNdWx0aXBsZVwiLFxuICAgICAgICBcImFsbG93SW1hZ2VzUHJldmlld1wiLFxuICAgICAgICBcImFjY2VwdGVkVHlwZXNcIixcbiAgICAgICAgeyBuYW1lOiBcInNob3dQcmV2aWV3XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInN0b3JlRGF0YUFzVGV4dFwiIH0sXG4gICAgICAgIFwibWF4U2l6ZVwiLFxuICAgICAgICBcImltYWdlSGVpZ2h0XCIsXG4gICAgICAgIFwiaW1hZ2VXaWR0aFwiLFxuICAgICAgICBcIndhaXRGb3JVcGxvYWRcIixcbiAgICAgICAgXCJuZWVkQ29uZmlybVJlbW92ZUZpbGVcIlxuICAgICAgXSxcbiAgICB9LFxuICAgIGh0bWw6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcImh0bWxcIl0sXG4gICAgfSxcbiAgICBtYXRyaXhkcm9wZG93bmJhc2U6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgXCJjZWxsVHlwZVwiLFxuICAgICAgICBcIm9wdGlvbnNDYXB0aW9uXCIsXG4gICAgICAgIFwiZGV0YWlsUGFuZWxNb2RlXCIsXG4gICAgICAgIFwiZGV0YWlsUGFuZWxTaG93T25BZGRpbmdcIixcbiAgICAgICAgeyBuYW1lOiBcInNob3dIZWFkZXJcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJ2ZXJ0aWNhbEFsaWduXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiYWx0ZXJuYXRlUm93c1wiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dDb2x1bW5IZWFkZXJcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjb2x1bW5zVmlzaWJsZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjb2x1bW5MYXlvdXRcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJ0cmFuc3Bvc2VEYXRhXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiaG9yaXpvbnRhbFNjcm9sbFwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNvbHVtbkNvbENvdW50XCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY29sdW1uTWluV2lkdGhcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjZWxsRXJyb3JMb2NhdGlvblwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImRldGFpbEVycm9yTG9jYXRpb25cIiwgdGFiOiBcImxheW91dFwiIH1cbiAgICAgIF0sXG4gICAgICB0YWJzOiBbXG4gICAgICAgIHsgbmFtZTogXCJjb2x1bW5zXCIsIGluZGV4OiAxMCB9LFxuICAgICAgICB7IG5hbWU6IFwicm93c1wiLCBpbmRleDogMTEgfSxcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNcIiwgaW5kZXg6IDEyIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgbWF0cml4ZHluYW1pYzoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICBcImFsbG93QWRkUm93c1wiLFxuICAgICAgICBcImFsbG93UmVtb3ZlUm93c1wiLFxuICAgICAgICBcImFsbG93Um93c0RyYWdBbmREcm9wXCIsXG4gICAgICAgIFwicm93Q291bnRcIixcbiAgICAgICAgXCJtaW5Sb3dDb3VudFwiLFxuICAgICAgICBcIm1heFJvd0NvdW50XCIsXG4gICAgICAgIFwiYWRkUm93TG9jYXRpb25cIixcbiAgICAgICAgXCJhZGRSb3dUZXh0XCIsXG4gICAgICAgIFwicmVtb3ZlUm93VGV4dFwiLFxuICAgICAgICBcImNvbmZpcm1EZWxldGVcIixcbiAgICAgICAgXCJjb25maXJtRGVsZXRlVGV4dFwiLFxuICAgICAgICBcInBsYWNlaG9sZGVyXCIsXG4gICAgICAgIHsgbmFtZTogXCJoaWRlQ29sdW1uc0lmRW1wdHlcIiwgdGFiOiBcImNvbHVtbnNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZW1wdHlSb3dzVGV4dFwiLCB0YWI6IFwiY29sdW1uc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJkZWZhdWx0Um93VmFsdWVcIiwgdGFiOiBcImRhdGFcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZGVmYXVsdFZhbHVlRnJvbUxhc3RSb3dcIiwgdGFiOiBcImRhdGFcIiB9LFxuICAgICAgICB7IG5hbWU6IFwia2V5TmFtZVwiLCB0YWI6IFwidmFsaWRhdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIsIHRhYjogXCJ2YWxpZGF0aW9uXCIgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBtYXRyaXhkcm9wZG93bjoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICBcInRvdGFsVGV4dFwiLFxuICAgICAgICBcInBsYWNlaG9sZGVyXCIsXG4gICAgICAgIHsgbmFtZTogXCJoaWRlSWZSb3dzRW1wdHlcIiwgdGFiOiBcInJvd3NcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiaGlkZUlmUm93c0VtcHR5XCIsIHRhYjogXCJyb3dzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInJvd3NWaXNpYmxlSWZcIiwgdGFiOiBcImxvZ2ljXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInJvd1RpdGxlV2lkdGhcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIsIHRhYjogXCJ2YWxpZGF0aW9uXCIgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBtYXRyaXg6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgeyBuYW1lOiBcImlzQWxsUm93UmVxdWlyZWRcIiwgdGFiOiBcInZhbGlkYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd0hlYWRlclwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInZlcnRpY2FsQWxpZ25cIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJhbHRlcm5hdGVSb3dzXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd0NvbHVtbkhlYWRlclwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInJvd3NPcmRlclwiLCB0YWI6IFwicm93c1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJoaWRlSWZSb3dzRW1wdHlcIiwgdGFiOiBcInJvd3NcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY29sdW1uc1Zpc2libGVJZlwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicm93c1Zpc2libGVJZlwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY29sdW1uTWluV2lkdGhcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJyb3dUaXRsZVdpZHRoXCIsIHRhYjogXCJsYXlvdXRcIiB9XG4gICAgICBdLFxuICAgICAgdGFiczogW1xuICAgICAgICB7IG5hbWU6IFwiY29sdW1uc1wiLCBpbmRleDogMTAgfSxcbiAgICAgICAgeyBuYW1lOiBcInJvd3NcIiwgaW5kZXg6IDExIH0sXG4gICAgICAgIHsgbmFtZTogXCJjZWxsc1wiLCBpbmRleDogNTAwIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgbXVsdGlwbGV0ZXh0OiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIHsgbmFtZTogXCJjb2xDb3VudFwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIml0ZW1TaXplXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiaXRlbUVycm9yTG9jYXRpb25cIiwgdGFiOiBcImxheW91dFwiIH1cbiAgICAgIF0sXG4gICAgICB0YWJzOiBbeyBuYW1lOiBcIml0ZW1zXCIsIGluZGV4OiAxMCB9XSxcbiAgICB9LFxuICAgIHJhdGluZzoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICB7IG5hbWU6IFwiZGlzcGxheU1vZGVcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJyYXRlQ291bnRcIiwgdGFiOiBcInJhdGVWYWx1ZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicmF0ZU1pblwiLCB0YWI6IFwicmF0ZVZhbHVlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJyYXRlTWF4XCIsIHRhYjogXCJyYXRlVmFsdWVzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInJhdGVTdGVwXCIsIHRhYjogXCJyYXRlVmFsdWVzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm1pblJhdGVEZXNjcmlwdGlvblwiLCB0YWI6IFwicmF0ZVZhbHVlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtYXhSYXRlRGVzY3JpcHRpb25cIiwgdGFiOiBcInJhdGVWYWx1ZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicmF0ZURlc2NyaXB0aW9uTG9jYXRpb25cIiwgdGFiOiBcInJhdGVWYWx1ZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZGlzcGxheVJhdGVEZXNjcmlwdGlvbnNBc0V4dHJlbWVJdGVtc1wiLCB0YWI6IFwicmF0ZVZhbHVlc1wiIH0sXG4gICAgICBdLFxuICAgICAgdGFiczogW3sgbmFtZTogXCJyYXRlVmFsdWVzXCIsIGluZGV4OiAxMCB9XSxcbiAgICB9LFxuICAgIHNlbGVjdGJhc2U6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNGcm9tUXVlc3Rpb25cIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY2hvaWNlc0Zyb21RdWVzdGlvbk1vZGVcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY2hvaWNlVmFsdWVzRnJvbVF1ZXN0aW9uXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZVRleHRzRnJvbVF1ZXN0aW9uXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNPcmRlclwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjb2xDb3VudFwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dPdGhlckl0ZW1cIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwib3RoZXJUZXh0XCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm90aGVyUGxhY2Vob2xkZXJcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd05vbmVJdGVtXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm5vbmVUZXh0XCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dSZWZ1c2VJdGVtXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInJlZnVzZVRleHRcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd0RvbnRLbm93SXRlbVwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJkb250S25vd1RleHRcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiaGlkZUlmQ2hvaWNlc0VtcHR5XCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjaG9pY2VzVmlzaWJsZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjaG9pY2VzRW5hYmxlSWZcIiwgdGFiOiBcImxvZ2ljXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm90aGVyRXJyb3JUZXh0XCIsIHRhYjogXCJ2YWxpZGF0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNlcGFyYXRlU3BlY2lhbENob2ljZXNcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgXSxcbiAgICAgIHRhYnM6IFtcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNcIiwgaW5kZXg6IDEwIH0sXG4gICAgICAgIHsgbmFtZTogXCJjaG9pY2VzQnlVcmxcIiwgaW5kZXg6IDExIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgY2hlY2tib3g6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgeyBuYW1lOiBcInNob3dTZWxlY3RBbGxJdGVtXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNlbGVjdEFsbFRleHRcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwibWluU2VsZWN0ZWRDaG9pY2VzXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm1heFNlbGVjdGVkQ2hvaWNlc1wiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgcmFua2luZzoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICB7IG5hbWU6IFwic2VsZWN0VG9SYW5rRW5hYmxlZFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzZWxlY3RUb1JhbmtBcmVhc0xheW91dFwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm1pblNlbGVjdGVkQ2hvaWNlc1wiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtYXhTZWxlY3RlZENob2ljZXNcIiwgdGFiOiBcImNob2ljZXNcIiB9XG4gICAgICBdXG4gICAgfSxcbiAgICByYWRpb2dyb3VwOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIHsgbmFtZTogXCJzaG93Q2xlYXJCdXR0b25cIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2VwYXJhdGVTcGVjaWFsQ2hvaWNlc1wiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICBdXG4gICAgfSxcbiAgICBkcm9wZG93bjoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICBcInBsYWNlaG9sZGVyXCIsXG4gICAgICAgIFwiYXV0b2NvbXBsZXRlXCIsXG4gICAgICAgIHsgbmFtZTogXCJjaG9pY2VzTWluXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNNYXhcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY2hvaWNlc1N0ZXBcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiYWxsb3dDbGVhclwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJ0ZXh0V3JhcEVuYWJsZWRcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2VhcmNoTW9kZVwiLCB0YWI6IFwiY2hvaWNlc1wiIH1cbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZXBpY2tlcjoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICBcIm11bHRpU2VsZWN0XCIsXG4gICAgICAgIFwic2hvd0xhYmVsXCIsXG4gICAgICAgIFwiY29udGVudE1vZGVcIixcbiAgICAgICAgXCJpbWFnZUZpdFwiLFxuICAgICAgICBcImltYWdlSGVpZ2h0XCIsXG4gICAgICAgIFwiaW1hZ2VXaWR0aFwiLFxuICAgICAgICBcIm1pbkltYWdlV2lkdGhcIixcbiAgICAgICAgXCJtYXhJbWFnZVdpZHRoXCIsXG4gICAgICAgIFwibWluSW1hZ2VIZWlnaHRcIixcbiAgICAgICAgXCJtYXhJbWFnZUhlaWdodFwiLFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIFwiaW1hZ2VMaW5rXCIsXG4gICAgICAgIFwiY29udGVudE1vZGVcIixcbiAgICAgICAgXCJpbWFnZUZpdFwiLFxuICAgICAgICBcImltYWdlSGVpZ2h0XCIsXG4gICAgICAgIFwiaW1hZ2VXaWR0aFwiLFxuICAgICAgICBcInRleHRcIlxuICAgICAgXSxcbiAgICB9LFxuICAgIFwiaXRlbXZhbHVlW11AY2hvaWNlc1wiOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbeyBuYW1lOiBcInZpc2libGVJZlwiIH0sIHsgbmFtZTogXCJlbmFibGVJZlwiIH1dLFxuICAgICAgdGFiczogW3sgbmFtZTogXCJnZW5lcmFsXCIgfV0sXG4gICAgfSxcbiAgICBcIml0ZW12YWx1ZVtdQHJvd3NcIjoge1xuICAgICAgcHJvcGVydGllczogW3sgbmFtZTogXCJ2aXNpYmxlSWZcIiB9XSxcbiAgICAgIHRhYnM6IFt7IG5hbWU6IFwiZ2VuZXJhbFwiIH1dLFxuICAgIH0sXG4gICAgXCJpdGVtdmFsdWVbXUBjb2x1bW5zXCI6IHtcbiAgICAgIHByb3BlcnRpZXM6IFt7IG5hbWU6IFwidmlzaWJsZUlmXCIgfV0sXG4gICAgICB0YWJzOiBbeyBuYW1lOiBcImdlbmVyYWxcIiB9XSxcbiAgICB9LFxuICAgIHRleHQ6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgXCJpbnB1dFR5cGVcIixcbiAgICAgICAgXCJtaW5cIixcbiAgICAgICAgXCJtYXhcIixcbiAgICAgICAgXCJzdGVwXCIsXG4gICAgICAgIFwicGxhY2Vob2xkZXJcIixcbiAgICAgICAgXCJhdXRvY29tcGxldGVcIixcbiAgICAgICAgXCJkYXRhTGlzdFwiLFxuICAgICAgICB7IG5hbWU6IFwibWluVmFsdWVFeHByZXNzaW9uXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtYXhWYWx1ZUV4cHJlc3Npb25cIiwgdGFiOiBcImxvZ2ljXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNpemVcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtYXhMZW5ndGhcIiwgdGFiOiBcInZhbGlkYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwibWluRXJyb3JUZXh0XCIsIHRhYjogXCJ2YWxpZGF0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm1heEVycm9yVGV4dFwiLCB0YWI6IFwidmFsaWRhdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJ0ZXh0VXBkYXRlTW9kZVwiLCB0YWI6IFwiZGF0YVwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtYXNrVHlwZVwiLCB0YWI6IFwibWFza1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtYXNrU2V0dGluZ3NcIiwgdGFiOiBcIm1hc2tcIiB9LFxuICAgICAgXSxcbiAgICAgIHRhYnM6IFtcbiAgICAgICAgeyBuYW1lOiBcIm1hc2tcIiwgaW5kZXg6IDI1MCB9XG4gICAgICBdXG4gICAgfSxcbiAgICBib29sZWFuOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIFwibGFiZWxcIixcbiAgICAgICAgXCJsYWJlbFRydWVcIixcbiAgICAgICAgXCJsYWJlbEZhbHNlXCIsXG4gICAgICAgIFwic2hvd1RpdGxlXCIsXG4gICAgICAgIHsgbmFtZTogXCJ2YWx1ZVRydWVcIiwgdGFiOiBcImRhdGFcIiB9LFxuICAgICAgICB7IG5hbWU6IFwidmFsdWVGYWxzZVwiLCB0YWI6IFwiZGF0YVwiIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgZXhwcmVzc2lvbjoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICBcImV4cHJlc3Npb25cIixcbiAgICAgICAgXCJjdXJyZW5jeVwiLFxuICAgICAgICBcImRpc3BsYXlTdHlsZVwiLFxuICAgICAgICBcImZvcm1hdFwiLFxuICAgICAgICBcIm1heGltdW1GcmFjdGlvbkRpZ2l0c1wiLFxuICAgICAgICBcIm1pbmltdW1GcmFjdGlvbkRpZ2l0c1wiLFxuICAgICAgICBcInVzZUdyb3VwaW5nXCIsXG4gICAgICBdLFxuICAgIH0sXG4gICAgbWF0cml4ZHJvcGRvd25jb2x1bW46IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcImlzUmVxdWlyZWRcIiwgXCJjZWxsVHlwZVwiLCBcIm5hbWVcIiwgXCJ0aXRsZVwiXSxcbiAgICB9LFxuICAgIFwibWF0cml4ZHJvcGRvd25jb2x1bW5AZGVmYXVsdFwiOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIFwibmFtZVwiLFxuICAgICAgICBcInRpdGxlXCIsXG4gICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICBcImlzUmVxdWlyZWRcIixcbiAgICAgICAgXCJpc1VuaXF1ZVwiLFxuICAgICAgICBcInJlYWRPbmx5XCIsXG4gICAgICAgIFwic2hvd0luTXVsdGlwbGVDb2x1bW5zXCIsXG4gICAgICAgIFwid2lkdGhcIixcbiAgICAgICAgXCJtaW5XaWR0aFwiLFxuICAgICAgICB7IG5hbWU6IFwidmlzaWJsZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJlbmFibGVJZlwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicmVxdWlyZWRJZlwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZGVmYXVsdFZhbHVlRXhwcmVzc2lvblwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicmVzZXRWYWx1ZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzZXRWYWx1ZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzZXRWYWx1ZUV4cHJlc3Npb25cIiwgdGFiOiBcImxvZ2ljXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInRvdGFsVHlwZVwiLCB0YWI6IFwidG90YWxzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInRvdGFsRGlzcGxheVN0eWxlXCIsIHRhYjogXCJ0b3RhbHNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwidG90YWxDdXJyZW5jeVwiLCB0YWI6IFwidG90YWxzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInRvdGFsRm9ybWF0XCIsIHRhYjogXCJ0b3RhbHNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwidG90YWxFeHByZXNzaW9uXCIsIHRhYjogXCJ0b3RhbHNcIiB9LFxuICAgICAgXSxcbiAgICAgIHRhYnM6IFtcbiAgICAgICAgeyBuYW1lOiBcImdlbmVyYWxcIiwgaW5kZXg6IDUgfSxcbiAgICAgICAgeyBuYW1lOiBcImxvZ2ljXCIsIGluZGV4OiAyMCB9LFxuICAgICAgICB7IG5hbWU6IFwidG90YWxzXCIsIGluZGV4OiA0MCB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIFwibWF0cml4ZHJvcGRvd25jb2x1bW5AY2hlY2tib3hcIjoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICB7IG5hbWU6IFwic2hvd090aGVySXRlbVwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJvdGhlclRleHRcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY2hvaWNlc09yZGVyXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNvbENvdW50XCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dTZWxlY3RBbGxJdGVtXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dOb25lSXRlbVwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJub25lVGV4dFwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtaW5TZWxlY3RlZENob2ljZXNcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwibWF4U2VsZWN0ZWRDaG9pY2VzXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNlbGVjdEFsbFRleHRcIiwgdGFiOiBcImNob2ljZXNcIiB9XG4gICAgICBdLFxuICAgICAgdGFiczogW1xuICAgICAgICB7IG5hbWU6IFwiY2hvaWNlc1wiLCBpbmRleDogMTAgfSxcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNCeVVybFwiLCBpbmRleDogMTEgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBcIm1hdHJpeGRyb3Bkb3duY29sdW1uQHJhZGlvZ3JvdXBcIjoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICB7IG5hbWU6IFwic2hvd090aGVySXRlbVwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJvdGhlclRleHRcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY2hvaWNlc09yZGVyXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNvbENvdW50XCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dTZWxlY3RBbGxJdGVtXCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dOb25lSXRlbVwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJub25lVGV4dFwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICBdLFxuICAgICAgdGFiczogW1xuICAgICAgICB7IG5hbWU6IFwiY2hvaWNlc1wiLCBpbmRleDogMTAgfSxcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNCeVVybFwiLCBpbmRleDogMTEgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBcIm1hdHJpeGRyb3Bkb3duY29sdW1uQGRyb3Bkb3duXCI6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgeyBuYW1lOiBcInNob3dPdGhlckl0ZW1cIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwib3RoZXJUZXh0XCIsIHRhYjogXCJjaG9pY2VzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNPcmRlclwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJwbGFjZWhvbGRlclwiLCB0YWI6IFwiY2hvaWNlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzaG93Tm9uZUl0ZW1cIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwibm9uZVRleHRcIiwgdGFiOiBcImNob2ljZXNcIiB9LFxuICAgICAgXSxcbiAgICAgIHRhYnM6IFtcbiAgICAgICAgeyBuYW1lOiBcImNob2ljZXNcIiwgaW5kZXg6IDEwIH0sXG4gICAgICAgIHsgbmFtZTogXCJjaG9pY2VzQnlVcmxcIiwgaW5kZXg6IDExIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgXCJtYXRyaXhkcm9wZG93bmNvbHVtbkB0ZXh0XCI6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgXCJpbnB1dFR5cGVcIixcbiAgICAgICAgXCJtaW5cIixcbiAgICAgICAgXCJtYXhcIixcbiAgICAgICAgXCJzdGVwXCIsXG4gICAgICAgIFwicGxhY2Vob2xkZXJcIixcbiAgICAgICAgXCJtYXhMZW5ndGhcIixcbiAgICAgIF0sXG4gICAgICB0YWJzOiBbeyBuYW1lOiBcInZhbGlkYXRvcnNcIiwgaW5kZXg6IDEwIH1dLFxuICAgIH0sXG4gICAgXCJtYXRyaXhkcm9wZG93bmNvbHVtbkBjb21tZW50XCI6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcInJvd3NcIiwgXCJwbGFjZWhvbGRlclwiLCBcIm1heExlbmd0aFwiXSxcbiAgICAgIHRhYnM6IFt7IG5hbWU6IFwidmFsaWRhdG9yc1wiLCBpbmRleDogMTAgfV0sXG4gICAgfSxcbiAgICBcIm1hdHJpeGRyb3Bkb3duY29sdW1uQGJvb2xlYW5cIjoge1xuICAgICAgcHJvcGVydGllczogW1xuICAgICAgICBcImRlZmF1bHRWYWx1ZVwiLFxuICAgICAgICBcImxhYmVsVHJ1ZVwiLFxuICAgICAgICBcImxhYmVsRmFsc2VcIixcbiAgICAgICAgXCJ2YWx1ZVRydWVcIixcbiAgICAgICAgXCJ2YWx1ZUZhbHNlXCIsXG4gICAgICBdLFxuICAgIH0sXG4gICAgXCJtYXRyaXhkcm9wZG93bmNvbHVtbkBleHByZXNzaW9uXCI6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcImRpc3BsYXlTdHlsZVwiLCBcImN1cnJlbmN5XCJdLFxuICAgICAgdGFiczogW3sgbmFtZTogXCJleHByZXNzaW9uXCIsIGluZGV4OiAxMCB9XSxcbiAgICB9LFxuICAgIFwibWF0cml4ZHJvcGRvd25jb2x1bW5AcmF0aW5nXCI6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgXCJyYXRlVmFsdWVzXCIsXG4gICAgICAgIHsgbmFtZTogXCJyYXRlTWluXCIsIHRhYjogXCJyYXRlVmFsdWVzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInJhdGVNYXhcIiwgdGFiOiBcInJhdGVWYWx1ZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicmF0ZVN0ZXBcIiwgdGFiOiBcInJhdGVWYWx1ZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwibWluUmF0ZURlc2NyaXB0aW9uXCIsIHRhYjogXCJyYXRlVmFsdWVzXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm1heFJhdGVEZXNjcmlwdGlvblwiLCB0YWI6IFwicmF0ZVZhbHVlc1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJkaXNwbGF5UmF0ZURlc2NyaXB0aW9uc0FzRXh0cmVtZUl0ZW1zXCIsIHRhYjogXCJyYXRlVmFsdWVzXCIgfSxcbiAgICAgIF0sXG4gICAgICB0YWJzOiBbeyBuYW1lOiBcInJhdGVWYWx1ZXNcIiwgaW5kZXg6IDUgfV0sXG4gICAgfSxcbiAgICBtdWx0aXBsZXRleHRpdGVtOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIFwiaW5wdXRUeXBlXCIsXG4gICAgICAgIFwibmFtZVwiLFxuICAgICAgICBcInRpdGxlXCIsXG4gICAgICAgIFwiaXNSZXF1aXJlZFwiLFxuICAgICAgICBcIm1heExlbmd0aFwiLFxuICAgICAgICBcInNpemVcIixcbiAgICAgICAgXCJwbGFjZWhvbGRlclwiLFxuICAgICAgICBcInJlcXVpcmVkRXJyb3JUZXh0XCIsXG4gICAgICAgIFwidmFsaWRhdG9yc1wiLFxuICAgICAgICB7IG5hbWU6IFwiZGVmYXVsdFZhbHVlRXhwcmVzc2lvblwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwibWluVmFsdWVFeHByZXNzaW9uXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtYXhWYWx1ZUV4cHJlc3Npb25cIiwgdGFiOiBcImxvZ2ljXCIgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBcIm11bHRpcGxldGV4dEBpdGVtc1wiOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXCJpc1JlcXVpcmVkXCIsIFwibmFtZVwiLCBcInRpdGxlXCJdLFxuICAgIH0sXG4gICAgY2FsY3VsYXRlZHZhbHVlOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXCJuYW1lXCIsIFwiZXhwcmVzc2lvblwiLCBcImluY2x1ZGVJbnRvUmVzdWx0XCJdLFxuICAgIH0sXG4gICAgXCJjYWxjdWxhdGVkdmFsdWVAaXRlbXNcIjoge1xuICAgICAgcHJvcGVydGllczogW1wibmFtZVwiLCBcImV4cHJlc3Npb25cIl0sXG4gICAgfSxcbiAgICBwYW5lbGR5bmFtaWM6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgXCJyZW5kZXJNb2RlXCIsXG4gICAgICAgIFwidGVtcGxhdGVUYWJUaXRsZVwiLFxuICAgICAgICBcInRhYkFsaWduXCIsXG4gICAgICAgIFwicGFuZWxDb3VudFwiLFxuICAgICAgICBcIm1pblBhbmVsQ291bnRcIixcbiAgICAgICAgXCJtYXhQYW5lbENvdW50XCIsXG4gICAgICAgIFwicGFuZWxzU3RhdGVcIixcbiAgICAgICAgeyBuYW1lOiBcImFsbG93QWRkUGFuZWxcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiYWxsb3dSZW1vdmVQYW5lbFwiIH0sXG4gICAgICAgIFwicGFuZWxBZGRUZXh0XCIsXG4gICAgICAgIFwicGFuZWxSZW1vdmVUZXh0XCIsXG4gICAgICAgIFwidGVtcGxhdGVUaXRsZVwiLFxuICAgICAgICBcInRlbXBsYXRlRGVzY3JpcHRpb25cIixcbiAgICAgICAgXCJub0VudHJpZXNUZXh0XCIsXG4gICAgICAgIFwiY29uZmlybURlbGV0ZVwiLFxuICAgICAgICBcImNvbmZpcm1EZWxldGVUZXh0XCIsXG4gICAgICAgIFwicGFuZWxQcmV2VGV4dFwiLFxuICAgICAgICBcInBhbmVsTmV4dFRleHRcIixcbiAgICAgICAgXCJzaG93UXVlc3Rpb25OdW1iZXJzXCIsXG4gICAgICAgIFwic2hvd1JhbmdlSW5Qcm9ncmVzc1wiLFxuICAgICAgICB7IG5hbWU6IFwiZGVmYXVsdFBhbmVsVmFsdWVcIiwgdGFiOiBcImRhdGFcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZGVmYXVsdFZhbHVlRnJvbUxhc3RQYW5lbFwiLCB0YWI6IFwiZGF0YVwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJ0ZW1wbGF0ZVRpdGxlTG9jYXRpb25cIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJ0ZW1wbGF0ZUVycm9yTG9jYXRpb25cIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJwYW5lbFJlbW92ZUJ1dHRvbkxvY2F0aW9uXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwia2V5TmFtZVwiLCB0YWI6IFwidmFsaWRhdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIsIHRhYjogXCJ2YWxpZGF0aW9uXCIgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBwYW5lbGJhc2U6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgIFwidGl0bGVcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiLFxuICAgICAgICBcInZpc2libGVcIixcbiAgICAgICAgXCJyZWFkT25seVwiLFxuICAgICAgICB7IG5hbWU6IFwidmlzaWJsZUlmXCIsIHRhYjogXCJsb2dpY1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJlbmFibGVJZlwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicmVxdWlyZWRJZlwiLCB0YWI6IFwibG9naWNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicXVlc3Rpb25UaXRsZUxvY2F0aW9uXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicXVlc3Rpb25FcnJvckxvY2F0aW9uXCIsIHRhYjogXCJsYXlvdXRcIiB9XG4gICAgICBdLFxuICAgICAgdGFiczogW1xuICAgICAgICB7IG5hbWU6IFwibG9naWNcIiwgaW5kZXg6IDEwMCB9LFxuICAgICAgICB7IG5hbWU6IFwibGF5b3V0XCIsIGluZGV4OiAyMDAgfSxcbiAgICAgICAgeyBuYW1lOiBcImRhdGFcIiwgaW5kZXg6IDMwMCB9LFxuICAgICAgICB7IG5hbWU6IFwidmFsaWRhdGlvblwiLCBpbmRleDogNDAwIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgcGFuZWw6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgXCJpc1JlcXVpcmVkXCIsXG4gICAgICAgIHsgbmFtZTogXCJyZXF1aXJlZEVycm9yVGV4dFwiLCB0YWI6IFwidmFsaWRhdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJwYWdlXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic3RhcnRXaXRoTmV3TGluZVwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInN0YXRlXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicXVlc3Rpb25zT3JkZXJcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJpbmRlbnRcIiwgdGFiOiBcImxheW91dFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJpbm5lckluZGVudFwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIndpZHRoXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd051bWJlclwiLCB0YWI6IFwibnVtYmVyaW5nXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dRdWVzdGlvbk51bWJlcnNcIiwgdGFiOiBcIm51bWJlcmluZ1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJxdWVzdGlvblN0YXJ0SW5kZXhcIiwgdGFiOiBcIm51bWJlcmluZ1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtaW5XaWR0aFwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm1heFdpZHRoXCIsIHRhYjogXCJsYXlvdXRcIiB9LFxuICAgICAgXSxcbiAgICAgIHRhYnM6IFt7IG5hbWU6IFwibnVtYmVyaW5nXCIsIGluZGV4OiAzNTAgfV0sXG4gICAgfSxcbiAgICBwYWdlOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIFwibmF2aWdhdGlvblRpdGxlXCIsXG4gICAgICAgIFwibmF2aWdhdGlvbkRlc2NyaXB0aW9uXCIsXG4gICAgICAgIFwibWF4VGltZVRvRmluaXNoXCIsXG4gICAgICAgIHsgbmFtZTogXCJxdWVzdGlvbnNPcmRlclwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eVwiLCB0YWI6IFwibGF5b3V0XCIgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBzdXJ2ZXk6IHtcbiAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgXCJ0aXRsZVwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCIsXG4gICAgICAgIFwic2hvd1RpdGxlXCIsXG4gICAgICAgIFwibG9jYWxlXCIsXG4gICAgICAgIFwibW9kZVwiLFxuICAgICAgICBcImNvb2tpZU5hbWVcIixcbiAgICAgICAgXCJ3aWR0aE1vZGVcIixcbiAgICAgICAgXCJ3aWR0aFwiLFxuICAgICAgICBcImZpdFRvQ29udGFpbmVyXCIsXG5cbiAgICAgICAgeyBuYW1lOiBcInNob3dQcmV2aWV3QmVmb3JlQ29tcGxldGVcIiwgdGFiOiBcIm5hdmlnYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwicGFnZVByZXZUZXh0XCIsIHRhYjogXCJuYXZpZ2F0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInBhZ2VOZXh0VGV4dFwiLCB0YWI6IFwibmF2aWdhdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjb21wbGV0ZVRleHRcIiwgdGFiOiBcIm5hdmlnYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwicHJldmlld1RleHRcIiwgdGFiOiBcIm5hdmlnYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZWRpdFRleHRcIiwgdGFiOiBcIm5hdmlnYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwic3RhcnRTdXJ2ZXlUZXh0XCIsIHRhYjogXCJuYXZpZ2F0aW9uXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwic2hvd05hdmlnYXRpb25CdXR0b25zXCIsXG4gICAgICAgICAgdGFiOiBcIm5hdmlnYXRpb25cIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dQcmV2QnV0dG9uXCIsIHRhYjogXCJuYXZpZ2F0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImZpcnN0UGFnZUlzU3RhcnRlZFwiLCB0YWI6IFwibmF2aWdhdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJnb05leHRQYWdlQXV0b21hdGljXCIsIHRhYjogXCJuYXZpZ2F0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImFsbG93Q29tcGxldGVTdXJ2ZXlBdXRvbWF0aWNcIiwgdGFiOiBcIm5hdmlnYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd1Byb2dyZXNzQmFyXCIsIHRhYjogXCJuYXZpZ2F0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInByb2dyZXNzQmFyVHlwZVwiLCB0YWI6IFwibmF2aWdhdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJxdWVzdGlvbnNPblBhZ2VNb2RlXCIsIHRhYjogXCJuYXZpZ2F0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dUT0NcIiwgdGFiOiBcIm5hdmlnYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwidG9jTG9jYXRpb25cIiwgdGFiOiBcIm5hdmlnYXRpb25cIiB9LFxuXG4gICAgICAgIHsgbmFtZTogXCJxdWVzdGlvblRpdGxlTG9jYXRpb25cIiwgdGFiOiBcInF1ZXN0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInF1ZXN0aW9uRGVzY3JpcHRpb25Mb2NhdGlvblwiLCB0YWI6IFwicXVlc3Rpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd1F1ZXN0aW9uTnVtYmVyc1wiLCB0YWI6IFwicXVlc3Rpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwicXVlc3Rpb25UaXRsZVBhdHRlcm5cIiwgdGFiOiBcInF1ZXN0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInJlcXVpcmVkVGV4dFwiLCB0YWI6IFwicXVlc3Rpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwicXVlc3Rpb25TdGFydEluZGV4XCIsIHRhYjogXCJxdWVzdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJxdWVzdGlvbkVycm9yTG9jYXRpb25cIiwgdGFiOiBcInF1ZXN0aW9uXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljXCIsXG4gICAgICAgICAgdGFiOiBcInF1ZXN0aW9uXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHsgbmFtZTogXCJxdWVzdGlvbnNPcmRlclwiLCB0YWI6IFwicXVlc3Rpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwibWF4VGV4dExlbmd0aFwiLCB0YWI6IFwicXVlc3Rpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwibWF4T3RoZXJzTGVuZ3RoXCIsIHRhYjogXCJxdWVzdGlvblwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJhdXRvR3Jvd0NvbW1lbnRcIiwgdGFiOiBcInF1ZXN0aW9uXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImFsbG93UmVzaXplQ29tbWVudFwiLCB0YWI6IFwicXVlc3Rpb25cIiB9LFxuXG4gICAgICAgIHsgbmFtZTogXCJzaG93UGFnZVRpdGxlc1wiLCB0YWI6IFwicGFnZXNcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd1BhZ2VOdW1iZXJzXCIsIHRhYjogXCJwYWdlc1wiIH0sXG5cbiAgICAgICAgeyBuYW1lOiBcImNhbGN1bGF0ZWRWYWx1ZXNcIiwgdGFiOiBcImxvZ2ljXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInRyaWdnZXJzXCIsIHRhYjogXCJsb2dpY1wiIH0sXG5cbiAgICAgICAgeyBuYW1lOiBcImNsZWFySW52aXNpYmxlVmFsdWVzXCIsIHRhYjogXCJkYXRhXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInRleHRVcGRhdGVNb2RlXCIsIHRhYjogXCJkYXRhXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNlbmRSZXN1bHRPblBhZ2VOZXh0XCIsIHRhYjogXCJkYXRhXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInN0b3JlT3RoZXJzQXNDb21tZW50XCIsIHRhYjogXCJkYXRhXCIgfSxcblxuICAgICAgICB7IG5hbWU6IFwiZm9jdXNPbkZpcnN0RXJyb3JcIiwgdGFiOiBcInZhbGlkYXRpb25cIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY2hlY2tFcnJvcnNNb2RlXCIsIHRhYjogXCJ2YWxpZGF0aW9uXCIgfSxcblxuICAgICAgICB7IG5hbWU6IFwibmF2aWdhdGVUb1VybFwiLCB0YWI6IFwic2hvd09uQ29tcGxldGVkXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dDb21wbGV0ZWRQYWdlXCIsIHRhYjogXCJzaG93T25Db21wbGV0ZWRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY29tcGxldGVkSHRtbFwiLCB0YWI6IFwic2hvd09uQ29tcGxldGVkXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm5hdmlnYXRlVG9VcmxPbkNvbmRpdGlvblwiLCB0YWI6IFwic2hvd09uQ29tcGxldGVkXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvblwiLCB0YWI6IFwic2hvd09uQ29tcGxldGVkXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImxvYWRpbmdIdG1sXCIsIHRhYjogXCJzaG93T25Db21wbGV0ZWRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY29tcGxldGVkQmVmb3JlSHRtbFwiLCB0YWI6IFwic2hvd09uQ29tcGxldGVkXCIgfSxcblxuICAgICAgICB7IG5hbWU6IFwibWF4VGltZVRvRmluaXNoXCIsIHRhYjogXCJ0aW1lclwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtYXhUaW1lVG9GaW5pc2hQYWdlXCIsIHRhYjogXCJ0aW1lclwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzaG93VGltZXJQYW5lbFwiLCB0YWI6IFwidGltZXJcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic2hvd1RpbWVyUGFuZWxNb2RlXCIsIHRhYjogXCJ0aW1lclwiIH0sXG5cbiAgICAgICAgeyBuYW1lOiBcImxvZ29cIiwgdGFiOiBcImxvZ29cIiB9LFxuICAgICAgICB7IG5hbWU6IFwibG9nb1Bvc2l0aW9uXCIsIHRhYjogXCJsb2dvXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImxvZ29XaWR0aFwiLCB0YWI6IFwibG9nb1wiIH0sXG4gICAgICAgIHsgbmFtZTogXCJsb2dvSGVpZ2h0XCIsIHRhYjogXCJsb2dvXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImxvZ29GaXRcIiwgdGFiOiBcImxvZ29cIiB9LFxuICAgICAgXSxcbiAgICAgIHRhYnM6IFtcbiAgICAgICAgeyBuYW1lOiBcIm5hdmlnYXRpb25cIiwgaW5kZXg6IDEwMCB9LFxuICAgICAgICB7IG5hbWU6IFwicXVlc3Rpb25cIiwgaW5kZXg6IDIwMCB9LFxuICAgICAgICB7IG5hbWU6IFwicGFnZXNcIiwgaW5kZXg6IDI1MCB9LFxuICAgICAgICB7IG5hbWU6IFwibG9naWNcIiwgaW5kZXg6IDMwMCB9LFxuICAgICAgICB7IG5hbWU6IFwiZGF0YVwiLCBpbmRleDogNDAwIH0sXG4gICAgICAgIHsgbmFtZTogXCJ2YWxpZGF0aW9uXCIsIGluZGV4OiA1MDAgfSxcbiAgICAgICAgeyBuYW1lOiBcInNob3dPbkNvbXBsZXRlZFwiLCBpbmRleDogNjAwIH0sXG4gICAgICAgIHsgbmFtZTogXCJ0aW1lclwiLCBpbmRleDogNzAwIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgXCJwYWdlQHN1cnZleVwiOiB7XG4gICAgICBwcm9wZXJ0aWVzOiBbXCJuYW1lXCIsIFwidGl0bGVcIl0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBTdXJ2ZXlIZWxwZXIsIE9ialR5cGUgfSBmcm9tIFwiLi9zdXJ2ZXlIZWxwZXJcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5cbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNvbnZlcnRlciB7XG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEluZm8gPSB7fTtcbiAgcHVibGljIHN0YXRpYyBhZGRDb252ZXJ0SW5mbyhjbGFzc05hbWU6IHN0cmluZywgY29udmVydFRvQ2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIVF1ZXN0aW9uQ29udmVydGVyLmNvbnZlcnRJbmZvW2NsYXNzTmFtZV0pIHtcbiAgICAgIFF1ZXN0aW9uQ29udmVydGVyLmNvbnZlcnRJbmZvW2NsYXNzTmFtZV0gPSBbXTtcbiAgICB9XG4gICAgUXVlc3Rpb25Db252ZXJ0ZXIuY29udmVydEluZm9bY2xhc3NOYW1lXS5wdXNoKGNvbnZlcnRUb0NsYXNzTmFtZSk7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBnZXRDb252ZXJ0VG9DbGFzc2VzKFxuICAgIGNsYXNzTmFtZTogc3RyaW5nLFxuICAgIGF2YWlsYWJsZVR5cGVzOiBBcnJheTxzdHJpbmc+ID0gbnVsbFxuICApOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIgcmVzID0gUXVlc3Rpb25Db252ZXJ0ZXIuY29udmVydEluZm9bY2xhc3NOYW1lXTtcbiAgICBpZiAoIXJlcykgcmV0dXJuIFtdO1xuICAgIGlmIChcbiAgICAgICEhYXZhaWxhYmxlVHlwZXMgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoYXZhaWxhYmxlVHlwZXMpICYmXG4gICAgICBhdmFpbGFibGVUeXBlcy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBmb3IgKHZhciBpID0gcmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGlmIChhdmFpbGFibGVUeXBlcy5pbmRleE9mKHJlc1tpXSkgPCAwKSB7XG4gICAgICAgICAgcmVzLnNwbGljZShpLCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gISFyZXMgPyByZXMgOiBbXTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRPYmplY3QoXG4gICAgb2JqOiBTdXJ2ZXkuUXVlc3Rpb24sXG4gICAgY29udmVydFRvQ2xhc3M6IHN0cmluZ1xuICApOiBTdXJ2ZXkuUXVlc3Rpb24ge1xuICAgIGlmICghb2JqIHx8ICFvYmoucGFyZW50IHx8IGNvbnZlcnRUb0NsYXNzID09IG9iai5nZXRUeXBlKCkpIHJldHVybiBudWxsO1xuICAgIHZhciBuZXdRdWVzdGlvbiA9IFN1cnZleS5TZXJpYWxpemVyLmNyZWF0ZUNsYXNzKGNvbnZlcnRUb0NsYXNzKTtcbiAgICBuZXdRdWVzdGlvbi5uYW1lID0gb2JqLm5hbWU7XG4gICAgbmV3UXVlc3Rpb24uZnJvbUpTT04ob2JqLnRvSlNPTigpKTtcbiAgICB2YXIgcGFuZWwgPSA8U3VydmV5LlBhbmVsTW9kZWxCYXNlPm9iai5wYXJlbnQ7XG4gICAgdmFyIGluZGV4ID0gcGFuZWwuZWxlbWVudHMuaW5kZXhPZihvYmopO1xuICAgIHBhbmVsLnJlbW92ZUVsZW1lbnQob2JqKTtcbiAgICBwYW5lbC5hZGRFbGVtZW50KG5ld1F1ZXN0aW9uLCBpbmRleCk7XG4gICAgbmV3UXVlc3Rpb24ub25TdXJ2ZXlMb2FkKCk7XG4gICAgcmV0dXJuIDxTdXJ2ZXkuUXVlc3Rpb24+bmV3UXVlc3Rpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVmYXVsdFF1ZXN0aW9uQ29udmVydGVySXRlbXMoKSB7XG4gIHZhciBjbGFzc2VzID0gU3VydmV5LlNlcmlhbGl6ZXIuZ2V0Q2hpbGRyZW5DbGFzc2VzKFwic2VsZWN0YmFzZVwiLCB0cnVlKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbGFzc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBjbGFzc2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAoaSA9PSBqKSBjb250aW51ZTtcbiAgICAgIFF1ZXN0aW9uQ29udmVydGVyLmFkZENvbnZlcnRJbmZvKGNsYXNzZXNbaV0ubmFtZSwgY2xhc3Nlc1tqXS5uYW1lKTtcbiAgICB9XG4gIH1cbiAgUXVlc3Rpb25Db252ZXJ0ZXIuYWRkQ29udmVydEluZm8oXCJ0ZXh0XCIsIFwiY29tbWVudFwiKTtcbiAgUXVlc3Rpb25Db252ZXJ0ZXIuYWRkQ29udmVydEluZm8oXCJjb21tZW50XCIsIFwidGV4dFwiKTtcbn1cblxuY3JlYXRlRGVmYXVsdFF1ZXN0aW9uQ29udmVydGVySXRlbXMoKTtcbiIsImltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5cbmV4cG9ydCB2YXIgc2V0dGluZ3MgPSB7XG4gIHRyYXNsYXRpb246IHtcbiAgICBzb3J0QnlOYW1lOiB0cnVlLFxuICAgIC8vU2V0IGl0IHRvIFxceGVmXFx4YmJcXHhiZjsgdG8gdGVsbCBzeXN0ZW0gdGhhdCBpdCBpcyBVVEY4IGZpbGUuIFlvdSBjYW4gdXNlIG90aGVyIHByZWZpeCBhcyB3ZWxsXG4gICAgZXhwb3J0UHJlZml4OiBcIlwiLFxuICB9LFxuICBvcGVyYXRvcnM6IHtcbiAgICBlbXB0eTogW10sXG4gICAgbm90ZW1wdHk6IFtdLFxuICAgIGVxdWFsOiBbXCIhZmlsZVwiXSxcbiAgICBub3RlcXVhbDogW1wiIWZpbGVcIl0sXG4gICAgY29udGFpbnM6IFtcImNoZWNrYm94XCIsIFwidGV4dFwiLCBcImNvbW1lbnRcIl0sXG4gICAgbm90Y29udGFpbnM6IFtcImNoZWNrYm94XCIsIFwidGV4dFwiLCBcImNvbW1lbnRcIl0sXG4gICAgYW55b2Y6IFtcInNlbGVjdGJhc2VcIl0sXG4gICAgYWxsb2Y6IFtcImNoZWNrYm94XCJdLFxuICAgIGdyZWF0ZXI6IFtcIiFjaGVja2JveFwiLCBcIiFpbWFnZXBpY2tlclwiLCBcIiFib29sZWFuXCIsIFwiIWZpbGVcIl0sXG4gICAgbGVzczogW1wiIWNoZWNrYm94XCIsIFwiIWltYWdlcGlja2VyXCIsIFwiIWJvb2xlYW5cIiwgXCIhZmlsZVwiXSxcbiAgICBncmVhdGVyb3JlcXVhbDogW1wiIWNoZWNrYm94XCIsIFwiIWltYWdlcGlja2VyXCIsIFwiIWJvb2xlYW5cIiwgXCIhZmlsZVwiXSxcbiAgICBsZXNzb3JlcXVhbDogW1wiIWNoZWNrYm94XCIsIFwiIWltYWdlcGlja2VyXCIsIFwiIWJvb2xlYW5cIiwgXCIhZmlsZVwiXSxcbiAgfSxcbiAganNvbkVkaXRvcjoge1xuICAgIGluZGVudGF0aW9uOiAxXG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN1cnZleUNyZWF0b3JPcHRpb25zIHtcbiAgYWx3YXlTYXZlVGV4dEluUHJvcGVydHlFZGl0b3JzOiBib29sZWFuO1xuICByZWFkT25seTogYm9vbGVhbjtcbiAgbWF4TG9naWNJdGVtc0luQ29uZGl0aW9uOiBudW1iZXI7XG4gIHNob3dUaXRsZXNJbkV4cHJlc3Npb25zOiBib29sZWFuO1xuICBhbGxvd0VkaXRFeHByZXNzaW9uc0luVGV4dEVkaXRvcjogYm9vbGVhbjtcbiAgbWF4aW11bUNvbHVtbnNDb3VudDogbnVtYmVyO1xuICBnZXRPYmplY3REaXNwbGF5TmFtZShcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIHJlYXNvbjogc3RyaW5nLFxuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmdcbiAgKTogc3RyaW5nO1xuICBvbkNhblNob3dQcm9wZXJ0eUNhbGxiYWNrKFxuICAgIG9iamVjdDogYW55LFxuICAgIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIHNob3dNb2RlOiBzdHJpbmcsXG4gICAgcGFyZW50T2JqOiBhbnksXG4gICAgcGFyZW50UHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHlcbiAgKTogYm9vbGVhbjtcbiAgb25Jc1Byb3BlcnR5UmVhZE9ubHlDYWxsYmFjayhcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIHJlYWRPbmx5OiBib29sZWFuLFxuICAgIHBhcmVudE9iajogU3VydmV5LkJhc2UsXG4gICAgcGFyZW50UHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHlcbiAgKTogYm9vbGVhbjtcbiAgb25DYW5EZWxldGVJdGVtQ2FsbGJhY2soXG4gICAgb2JqZWN0OiBhbnksXG4gICAgaXRlbTogU3VydmV5LkJhc2UsXG4gICAgYWxsb3dEZWxldGU6IGJvb2xlYW5cbiAgKTogYm9vbGVhbjtcbiAgb25Db2xsZWN0aW9uSXRlbURlbGV0aW5nQ2FsbGJhY2soXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBjb2xsZWN0aW9uOiBBcnJheTxTdXJ2ZXkuQmFzZT4sXG4gICAgaXRlbTogU3VydmV5LkJhc2VcbiAgKTogYm9vbGVhbjtcbiAgb25JdGVtVmFsdWVBZGRlZENhbGxiYWNrKFxuICAgIG9iajogU3VydmV5LkJhc2UsXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgaXRlbVZhbHVlOiBTdXJ2ZXkuSXRlbVZhbHVlLFxuICAgIGl0ZW1WYWx1ZXM6IEFycmF5PFN1cnZleS5JdGVtVmFsdWU+XG4gICk7XG4gIG9uTWF0cml4RHJvcGRvd25Db2x1bW5BZGRlZENhbGxiYWNrKFxuICAgIG1hdHJpeDogU3VydmV5LlF1ZXN0aW9uLFxuICAgIGNvbHVtbjogU3VydmV5Lk1hdHJpeERyb3Bkb3duQ29sdW1uLFxuICAgIGNvbHVtbnM6IEFycmF5PFN1cnZleS5NYXRyaXhEcm9wZG93bkNvbHVtbj5cbiAgKTtcbiAgb25TZXRQcm9wZXJ0eUVkaXRvck9wdGlvbnNDYWxsYmFjayhcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIGVkaXRvck9wdGlvbnM6IGFueVxuICApO1xuICBvbkdldEVycm9yVGV4dE9uVmFsaWRhdGlvbkNhbGxiYWNrKFxuICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgIG9iajogU3VydmV5LkJhc2UsXG4gICAgdmFsdWU6IGFueVxuICApOiBzdHJpbmc7XG4gIG9uVmFsdWVDaGFuZ2luZ0NhbGxiYWNrKG9wdGlvbnM6IGFueSk7XG4gIG9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHksXG4gICAgb2JqOiBhbnksXG4gICAgbmV3VmFsdWU6IGFueVxuICApO1xuICBvbkdldEVsZW1lbnRFZGl0b3JUaXRsZUNhbGxiYWNrKG9iajogU3VydmV5LkJhc2UsIHRpdGxlOiBzdHJpbmcpOiBzdHJpbmc7XG4gIHN0YXJ0VW5kb1JlZG9UcmFuc2FjdGlvbigpO1xuICBzdG9wVW5kb1JlZG9UcmFuc2FjdGlvbigpO1xuICBjcmVhdGVTdXJ2ZXkoXG4gICAganNvbjogYW55LFxuICAgIHJlYXNvbjogc3RyaW5nLFxuICAgIHN1cnZleVR5cGU/OiBuZXcgKGpzb246IGFueSkgPT4gU3VydmV5LlN1cnZleVxuICApO1xuICBvbkNvbmRpdGlvblF1ZXN0aW9uc0dldExpc3RDYWxsYmFjayhcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIGVkaXRvcjogYW55LFxuICAgIGxpc3Q6IGFueVtdXG4gICk7XG59XG5cbmV4cG9ydCBjbGFzcyBFbXB0eVN1cnZleUNyZWF0b3JPcHRpb25zIGltcGxlbWVudHMgSVN1cnZleUNyZWF0b3JPcHRpb25zIHtcbiAgYWx3YXlTYXZlVGV4dEluUHJvcGVydHlFZGl0b3JzOiBib29sZWFuO1xuICByZWFkT25seTogYm9vbGVhbjtcbiAgbWF4TG9naWNJdGVtc0luQ29uZGl0aW9uOiBudW1iZXI7XG4gIHNob3dUaXRsZXNJbkV4cHJlc3Npb25zOiBib29sZWFuO1xuICBhbGxvd0VkaXRFeHByZXNzaW9uc0luVGV4dEVkaXRvcjogYm9vbGVhbjtcbiAgbWF4aW11bUNvbHVtbnNDb3VudDogbnVtYmVyO1xuICBnZXRPYmplY3REaXNwbGF5TmFtZShcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIHJlYXNvbjogc3RyaW5nLFxuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XG4gIH1cbiAgb25DYW5TaG93UHJvcGVydHlDYWxsYmFjayhcbiAgICBvYmplY3Q6IGFueSxcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBzaG93TW9kZTogc3RyaW5nLFxuICAgIHBhcmVudE9iajogYW55LFxuICAgIHBhcmVudFByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIG9uSXNQcm9wZXJ0eVJlYWRPbmx5Q2FsbGJhY2soXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICByZWFkT25seTogYm9vbGVhbixcbiAgICBwYXJlbnRPYmo6IFN1cnZleS5CYXNlLFxuICAgIHBhcmVudFByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIG9uQ2FuRGVsZXRlSXRlbUNhbGxiYWNrKFxuICAgIG9iamVjdDogYW55LFxuICAgIGl0ZW06IFN1cnZleS5CYXNlLFxuICAgIGFsbG93RGVsZXRlOiBib29sZWFuXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhbGxvd0RlbGV0ZTtcbiAgfVxuICBvbkNvbGxlY3Rpb25JdGVtRGVsZXRpbmdDYWxsYmFjayhcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIGNvbGxlY3Rpb246IEFycmF5PFN1cnZleS5CYXNlPixcbiAgICBpdGVtOiBTdXJ2ZXkuQmFzZVxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBvbkl0ZW1WYWx1ZUFkZGVkQ2FsbGJhY2soXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICBpdGVtVmFsdWU6IFN1cnZleS5JdGVtVmFsdWUsXG4gICAgaXRlbVZhbHVlczogQXJyYXk8U3VydmV5Lkl0ZW1WYWx1ZT5cbiAgKSB7fVxuICBvbk1hdHJpeERyb3Bkb3duQ29sdW1uQWRkZWRDYWxsYmFjayhcbiAgICBtYXRyaXg6IFN1cnZleS5RdWVzdGlvbixcbiAgICBjb2x1bW46IFN1cnZleS5NYXRyaXhEcm9wZG93bkNvbHVtbixcbiAgICBjb2x1bW5zOiBBcnJheTxTdXJ2ZXkuTWF0cml4RHJvcGRvd25Db2x1bW4+XG4gICkge31cbiAgb25TZXRQcm9wZXJ0eUVkaXRvck9wdGlvbnNDYWxsYmFjayhcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIGVkaXRvck9wdGlvbnM6IGFueVxuICApIHt9XG4gIG9uR2V0RXJyb3JUZXh0T25WYWxpZGF0aW9uQ2FsbGJhY2soXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICB2YWx1ZTogYW55XG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgb25WYWx1ZUNoYW5naW5nQ2FsbGJhY2sob3B0aW9uczogYW55KSB7fVxuICBvblByb3BlcnR5VmFsdWVDaGFuZ2VkKFxuICAgIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIG9iajogYW55LFxuICAgIG5ld1ZhbHVlOiBhbnlcbiAgKSB7fVxuICBvbkdldEVsZW1lbnRFZGl0b3JUaXRsZUNhbGxiYWNrKG9iajogU3VydmV5LkJhc2UsIHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aXRsZTtcbiAgfVxuICBzdGFydFVuZG9SZWRvVHJhbnNhY3Rpb24oKSB7fVxuICBzdG9wVW5kb1JlZG9UcmFuc2FjdGlvbigpIHt9XG4gIGNyZWF0ZVN1cnZleShcbiAgICBqc29uOiBhbnksXG4gICAgcmVhc29uOiBzdHJpbmcsXG4gICAgc3VydmV5VHlwZT86IG5ldyAoanNvbjogYW55KSA9PiBTdXJ2ZXkuU3VydmV5TW9kZWxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXkuU3VydmV5TW9kZWwoanNvbik7XG4gIH1cbiAgb25Db25kaXRpb25RdWVzdGlvbnNHZXRMaXN0Q2FsbGJhY2soXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICBlZGl0b3I6IGFueSxcbiAgICBsaXN0OiBhbnlbXVxuICApIHt9XG59XG4iLCJpbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmV4cG9ydCBjbGFzcyBTdHlsZXNNYW5hZ2VyIHtcbiAgcHVibGljIHN0YXRpYyBUaGVtZVZhcmlhYmxlc01hcCA9IHtcbiAgICBcIiRwcmltYXJ5LWNvbG9yXCI6IFwiLS1wcmltYXJ5LWNvbG9yXCIsXG4gICAgXCIkc2Vjb25kYXJ5LWNvbG9yXCI6IFwiLS1zZWNvbmRhcnktY29sb3JcIixcbiAgICBcIiRwcmltYXJ5LXRleHQtY29sb3JcIjogXCItLXByaW1hcnktdGV4dC1jb2xvclwiLFxuICAgIFwiJHNlY29uZGFyeS10ZXh0LWNvbG9yXCI6IFwiLS1zZWNvbmRhcnktdGV4dC1jb2xvclwiLFxuICAgIFwiJGludmVydGVkLXRleHQtY29sb3JcIjogXCItLWludmVydGVkLXRleHQtY29sb3JcIixcbiAgICBcIiRwcmltYXJ5LWhvdmVyLWNvbG9yXCI6IFwiLS1wcmltYXJ5LWhvdmVyLWNvbG9yXCIsXG4gICAgXCIkc2VsZWN0aW9uLWJvcmRlci1jb2xvclwiOiBcIi0tc2VsZWN0aW9uLWJvcmRlci1jb2xvclwiLFxuICAgIFwiJHByaW1hcnktaWNvbi1jb2xvclwiOiBcIi0tcHJpbWFyeS1pY29uLWNvbG9yXCIsXG4gICAgXCIkcHJpbWFyeS1iZy1jb2xvclwiOiBcIi0tcHJpbWFyeS1iZy1jb2xvclwiLFxuICAgIFwiJHNlY29uZGFyeS1iZy1jb2xvclwiOiBcIi0tc2Vjb25kYXJ5LWJnLWNvbG9yXCIsXG4gICAgXCIkcHJpbWFyeS1ib3JkZXItY29sb3JcIjogXCItLXByaW1hcnktYm9yZGVyLWNvbG9yXCIsXG4gICAgXCIkc2Vjb25kYXJ5LWJvcmRlci1jb2xvclwiOiBcIi0tc2Vjb25kYXJ5LWJvcmRlci1jb2xvclwiLFxuICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiLS1lcnJvci1jb2xvclwiXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIFRoZW1lQ29sb3JzOiB7IFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfSA9IHtcbiAgICBkZWZhdWx0OiB7XG4gICAgICBcIiRwcmltYXJ5LWNvbG9yXCI6IFwiIzFhYjM5NFwiLFxuICAgICAgXCIkc2Vjb25kYXJ5LWNvbG9yXCI6IFwiIzFhYjM5NFwiLFxuICAgICAgXCIkcHJpbWFyeS10ZXh0LWNvbG9yXCI6IFwiIzY3NmE2Y1wiLFxuICAgICAgXCIkc2Vjb25kYXJ5LXRleHQtY29sb3JcIjogXCIjYTdhN2E3XCIsXG4gICAgICBcIiRpbnZlcnRlZC10ZXh0LWNvbG9yXCI6IFwiI2ZmZmZmZlwiLFxuICAgICAgXCIkcHJpbWFyeS1ob3Zlci1jb2xvclwiOiBcIiMxOGE2ODlcIixcbiAgICAgIFwiJHNlbGVjdGlvbi1ib3JkZXItY29sb3JcIjogXCIjMWFiMzk0XCIsXG4gICAgICBcIiRwcmltYXJ5LWljb24tY29sb3JcIjogXCIjM2Q0ZDVkXCIsXG4gICAgICBcIiRwcmltYXJ5LWJnLWNvbG9yXCI6IFwiI2ZmZlwiLFxuICAgICAgXCIkc2Vjb25kYXJ5LWJnLWNvbG9yXCI6IFwiI2Y0ZjRmNFwiLFxuICAgICAgXCIkcHJpbWFyeS1ib3JkZXItY29sb3JcIjogXCIjZTdlYWVjXCIsXG4gICAgICBcIiRzZWNvbmRhcnktYm9yZGVyLWNvbG9yXCI6IFwiI2RkZFwiLFxuICAgICAgXCIkZXJyb3ItY29sb3JcIjogXCIjZWQ1NTY1XCJcbiAgICB9LFxuICAgIG9yYW5nZToge1xuICAgICAgXCIkcHJpbWFyeS1jb2xvclwiOiBcIiNmNzgxMTlcIixcbiAgICAgIFwiJHNlY29uZGFyeS1jb2xvclwiOiBcIiM0YTRhNGFcIixcbiAgICAgIFwiJHByaW1hcnktdGV4dC1jb2xvclwiOiBcIiM2NzZhNmNcIixcbiAgICAgIFwiJHNlY29uZGFyeS10ZXh0LWNvbG9yXCI6IFwiI2E3YTdhN1wiLFxuICAgICAgXCIkaW52ZXJ0ZWQtdGV4dC1jb2xvclwiOiBcIiNmZmZmZmZcIixcbiAgICAgIFwiJHByaW1hcnktaG92ZXItY29sb3JcIjogXCIjZTc3MTA5XCIsXG4gICAgICBcIiRzZWxlY3Rpb24tYm9yZGVyLWNvbG9yXCI6IFwiIzRhNGE0YVwiLFxuICAgICAgXCIkcHJpbWFyeS1pY29uLWNvbG9yXCI6IFwiIzNkNGQ1ZFwiLFxuICAgICAgXCIkcHJpbWFyeS1iZy1jb2xvclwiOiBcIiNmZmZcIixcbiAgICAgIFwiJHNlY29uZGFyeS1iZy1jb2xvclwiOiBcIiNmNGY0ZjRcIixcbiAgICAgIFwiJHByaW1hcnktYm9yZGVyLWNvbG9yXCI6IFwiI2U3ZWFlY1wiLFxuICAgICAgXCIkc2Vjb25kYXJ5LWJvcmRlci1jb2xvclwiOiBcIiNkZGRcIixcbiAgICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiI2VkNTU2NVwiXG4gICAgfSxcbiAgICBkYXJrYmx1ZToge1xuICAgICAgXCIkcHJpbWFyeS1jb2xvclwiOiBcIiMzYzRmNmRcIixcbiAgICAgIFwiJHNlY29uZGFyeS1jb2xvclwiOiBcIiMzYzRmNmRcIixcbiAgICAgIFwiJHByaW1hcnktdGV4dC1jb2xvclwiOiBcIiM2NzZhNmNcIixcbiAgICAgIFwiJHNlY29uZGFyeS10ZXh0LWNvbG9yXCI6IFwiI2E3YTdhN1wiLFxuICAgICAgXCIkaW52ZXJ0ZWQtdGV4dC1jb2xvclwiOiBcIiNmZmZmZmZcIixcbiAgICAgIFwiJHByaW1hcnktaG92ZXItY29sb3JcIjogXCIjMmMzZjVkXCIsXG4gICAgICBcIiRzZWxlY3Rpb24tYm9yZGVyLWNvbG9yXCI6IFwiIzRhNGE0YVwiLFxuICAgICAgXCIkcHJpbWFyeS1pY29uLWNvbG9yXCI6IFwiIzNkNGQ1ZFwiLFxuICAgICAgXCIkcHJpbWFyeS1iZy1jb2xvclwiOiBcIiNmZmZcIixcbiAgICAgIFwiJHNlY29uZGFyeS1iZy1jb2xvclwiOiBcIiNmNGY0ZjRcIixcbiAgICAgIFwiJHByaW1hcnktYm9yZGVyLWNvbG9yXCI6IFwiI2U3ZWFlY1wiLFxuICAgICAgXCIkc2Vjb25kYXJ5LWJvcmRlci1jb2xvclwiOiBcIiNkZGRcIixcbiAgICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiI2VkNTU2NVwiXG4gICAgfSxcbiAgICBkYXJrcm9zZToge1xuICAgICAgXCIkcHJpbWFyeS1jb2xvclwiOiBcIiM2ODY1NmVcIixcbiAgICAgIFwiJHNlY29uZGFyeS1jb2xvclwiOiBcIiM2ODY1NmVcIixcbiAgICAgIFwiJHByaW1hcnktdGV4dC1jb2xvclwiOiBcIiM2NzZhNmNcIixcbiAgICAgIFwiJHNlY29uZGFyeS10ZXh0LWNvbG9yXCI6IFwiI2E3YTdhN1wiLFxuICAgICAgXCIkaW52ZXJ0ZWQtdGV4dC1jb2xvclwiOiBcIiNmZmZmZmZcIixcbiAgICAgIFwiJHByaW1hcnktaG92ZXItY29sb3JcIjogXCIjNTc1NDVlXCIsXG4gICAgICBcIiRzZWxlY3Rpb24tYm9yZGVyLWNvbG9yXCI6IFwiIzRhNGE0YVwiLFxuICAgICAgXCIkcHJpbWFyeS1pY29uLWNvbG9yXCI6IFwiIzNkNGQ1ZFwiLFxuICAgICAgXCIkcHJpbWFyeS1iZy1jb2xvclwiOiBcIiNmZmZcIixcbiAgICAgIFwiJHNlY29uZGFyeS1iZy1jb2xvclwiOiBcIiNmNGY0ZjRcIixcbiAgICAgIFwiJHByaW1hcnktYm9yZGVyLWNvbG9yXCI6IFwiI2U3ZWFlY1wiLFxuICAgICAgXCIkc2Vjb25kYXJ5LWJvcmRlci1jb2xvclwiOiBcIiNkZGRcIixcbiAgICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiI2VkNTU2NVwiXG4gICAgfSxcbiAgICBzdG9uZToge1xuICAgICAgXCIkcHJpbWFyeS1jb2xvclwiOiBcIiMwZjBmMzNcIixcbiAgICAgIFwiJHNlY29uZGFyeS1jb2xvclwiOiBcIiMwZjBmMzNcIixcbiAgICAgIFwiJHByaW1hcnktdGV4dC1jb2xvclwiOiBcIiM2NzZhNmNcIixcbiAgICAgIFwiJHNlY29uZGFyeS10ZXh0LWNvbG9yXCI6IFwiI2E3YTdhN1wiLFxuICAgICAgXCIkaW52ZXJ0ZWQtdGV4dC1jb2xvclwiOiBcIiNmZmZmZmZcIixcbiAgICAgIFwiJHByaW1hcnktaG92ZXItY29sb3JcIjogXCIjMDAwMDIzXCIsXG4gICAgICBcIiRzZWxlY3Rpb24tYm9yZGVyLWNvbG9yXCI6IFwiI2NkY2NkMlwiLFxuICAgICAgXCIkcHJpbWFyeS1pY29uLWNvbG9yXCI6IFwiIzNkNGQ1ZFwiLFxuICAgICAgXCIkcHJpbWFyeS1iZy1jb2xvclwiOiBcIiNmZmZcIixcbiAgICAgIFwiJHNlY29uZGFyeS1iZy1jb2xvclwiOiBcIiNmNGY0ZjRcIixcbiAgICAgIFwiJHByaW1hcnktYm9yZGVyLWNvbG9yXCI6IFwiI2U3ZWFlY1wiLFxuICAgICAgXCIkc2Vjb25kYXJ5LWJvcmRlci1jb2xvclwiOiBcIiNkZGRcIixcbiAgICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiI2VkNTU2NVwiXG4gICAgfSxcbiAgICB3aW50ZXI6IHtcbiAgICAgIFwiJHByaW1hcnktY29sb3JcIjogXCIjM2MzYjQwXCIsXG4gICAgICBcIiRzZWNvbmRhcnktY29sb3JcIjogXCIjM2MzYjQwXCIsXG4gICAgICBcIiRwcmltYXJ5LXRleHQtY29sb3JcIjogXCIjNjc2YTZjXCIsXG4gICAgICBcIiRzZWNvbmRhcnktdGV4dC1jb2xvclwiOiBcIiNhN2E3YTdcIixcbiAgICAgIFwiJGludmVydGVkLXRleHQtY29sb3JcIjogXCIjZmZmZmZmXCIsXG4gICAgICBcIiRwcmltYXJ5LWhvdmVyLWNvbG9yXCI6IFwiIzRhZDhlYVwiLFxuICAgICAgXCIkc2VsZWN0aW9uLWJvcmRlci1jb2xvclwiOiBcIiM4MmI4ZGFcIixcbiAgICAgIFwiJHByaW1hcnktaWNvbi1jb2xvclwiOiBcIiMzZDRkNWRcIixcbiAgICAgIFwiJHByaW1hcnktYmctY29sb3JcIjogXCIjZmZmXCIsXG4gICAgICBcIiRzZWNvbmRhcnktYmctY29sb3JcIjogXCIjZjRmNGY0XCIsXG4gICAgICBcIiRwcmltYXJ5LWJvcmRlci1jb2xvclwiOiBcIiNlN2VhZWNcIixcbiAgICAgIFwiJHNlY29uZGFyeS1ib3JkZXItY29sb3JcIjogXCIjZGRkXCIsXG4gICAgICBcIiRlcnJvci1jb2xvclwiOiBcIiNlZDU1NjVcIlxuICAgIH0sXG4gICAgd2ludGVyc3RvbmU6IHtcbiAgICAgIFwiJHByaW1hcnktY29sb3JcIjogXCIjNWFjOGZhXCIsXG4gICAgICBcIiRzZWNvbmRhcnktY29sb3JcIjogXCIjNWFjOGZhXCIsXG4gICAgICBcIiRwcmltYXJ5LXRleHQtY29sb3JcIjogXCIjNjc2YTZjXCIsXG4gICAgICBcIiRzZWNvbmRhcnktdGV4dC1jb2xvclwiOiBcIiNhN2E3YTdcIixcbiAgICAgIFwiJGludmVydGVkLXRleHQtY29sb3JcIjogXCIjZmZmZmZmXCIsXG4gICAgICBcIiRwcmltYXJ5LWhvdmVyLWNvbG9yXCI6IFwiIzFjMWIyMFwiLFxuICAgICAgXCIkc2VsZWN0aW9uLWJvcmRlci1jb2xvclwiOiBcIiNiOGI4YjhcIixcbiAgICAgIFwiJHByaW1hcnktaWNvbi1jb2xvclwiOiBcIiMzZDRkNWRcIixcbiAgICAgIFwiJHByaW1hcnktYmctY29sb3JcIjogXCIjZmZmXCIsXG4gICAgICBcIiRzZWNvbmRhcnktYmctY29sb3JcIjogXCIjZjRmNGY0XCIsXG4gICAgICBcIiRwcmltYXJ5LWJvcmRlci1jb2xvclwiOiBcIiNlN2VhZWNcIixcbiAgICAgIFwiJHNlY29uZGFyeS1ib3JkZXItY29sb3JcIjogXCIjZGRkXCIsXG4gICAgICBcIiRlcnJvci1jb2xvclwiOiBcIiNlZDU1NjVcIlxuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIGN1cnJlbnRUaGVtZSA9IGtvLm9ic2VydmFibGUoXCJib290c3RyYXBcIik7XG5cbiAgcHVibGljIHN0YXRpYyBhcHBseVRoZW1lKFxuICAgIHRoZW1lTmFtZTogc3RyaW5nID0gXCJkZWZhdWx0XCJcbiAgKSB7XG4gICAgU3R5bGVzTWFuYWdlci5jdXJyZW50VGhlbWUodGhlbWVOYW1lKTtcbiAgICBTdXJ2ZXkuU3R5bGVzTWFuYWdlci5hcHBseVRoZW1lKHRoZW1lTmFtZSk7XG5cbiAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC5ib2R5IHx8ICFkb2N1bWVudC5ib2R5LnN0eWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHRoZW1lID1cbiAgICAgIFN0eWxlc01hbmFnZXIuVGhlbWVDb2xvcnNbdGhlbWVOYW1lXSB8fFxuICAgICAgU3R5bGVzTWFuYWdlci5UaGVtZUNvbG9yc1tcImRlZmF1bHRcIl07XG5cbiAgICBPYmplY3Qua2V5cyh0aGVtZSkuZm9yRWFjaChjb2xvclZhcmlhYmxlTmFtZSA9PiB7XG4gICAgICBsZXQgY3NzVmFyaWFibGVOYW1lID0gU3R5bGVzTWFuYWdlci5UaGVtZVZhcmlhYmxlc01hcFtjb2xvclZhcmlhYmxlTmFtZV07XG4gICAgICBpZiAoISFjc3NWYXJpYWJsZU5hbWUgJiYgdGhlbWVbY29sb3JWYXJpYWJsZU5hbWVdKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoY3NzVmFyaWFibGVOYW1lLCB0aGVtZVtjb2xvclZhcmlhYmxlTmFtZV0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gSUUgMTEgcG9seWZpbGxcbiAgICAvLyBpZighd2luZG93Lk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICFkb2N1bWVudFtcImRvY3VtZW50TW9kZVwiXSkge1xuICAgIC8vICAgZG9jdW1lbnQud3JpdGUoJzxzY3JpcHQgc3JjPVwieW91ckpzUGF0aC9pZTExQ3VzdG9tUHJvcGVydGllcy5qc1wiPjxcXHgyZnNjcmlwdD4nKTtcbiAgICAvLyB9XG4gIH1cblxufVxuIiwiaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvcnMvcHJvcGVydHlFZGl0b3JCYXNlXCI7XG5pbXBvcnQgeyBJU3VydmV5Q3JlYXRvck9wdGlvbnMgfSBmcm9tIFwiLi9zZXR0aW5nc1wiO1xuXG5leHBvcnQgZW51bSBPYmpUeXBlIHtcbiAgVW5rbm93bixcbiAgU3VydmV5LFxuICBQYWdlLFxuICBQYW5lbCxcbiAgUXVlc3Rpb24sXG59XG5leHBvcnQgY2xhc3MgU3VydmV5SGVscGVyIHtcbiAgcHVibGljIHN0YXRpYyBnZXROZXdQYWdlTmFtZShvYmpzOiBBcnJheTxhbnk+KSB7XG4gICAgcmV0dXJuIFN1cnZleUhlbHBlci5nZXROZXdOYW1lKFxuICAgICAgb2JqcyxcbiAgICAgIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJlZC5uZXdQYWdlTmFtZVwiKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBnZXROZXdRdWVzdGlvbk5hbWUob2JqczogQXJyYXk8YW55Pikge1xuICAgIHJldHVybiBTdXJ2ZXlIZWxwZXIuZ2V0TmV3TmFtZShcbiAgICAgIG9ianMsXG4gICAgICBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiZWQubmV3UXVlc3Rpb25OYW1lXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGdldE5ld1BhbmVsTmFtZShvYmpzOiBBcnJheTxhbnk+KSB7XG4gICAgcmV0dXJuIFN1cnZleUhlbHBlci5nZXROZXdOYW1lKFxuICAgICAgb2JqcyxcbiAgICAgIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJlZC5uZXdQYW5lbE5hbWVcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVOZXdOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFyIHBvcyA9IG5hbWUubGVuZ3RoO1xuICAgIHdoaWxlIChwb3MgPiAwICYmIG5hbWVbcG9zIC0gMV0gPj0gXCIwXCIgJiYgbmFtZVtwb3MgLSAxXSA8PSBcIjlcIikge1xuICAgICAgcG9zLS07XG4gICAgfVxuICAgIHZhciBiYXNlID0gbmFtZS5zdWJzdHIoMCwgcG9zKTtcbiAgICB2YXIgbnVtID0gMDtcbiAgICBpZiAocG9zIDwgbmFtZS5sZW5ndGgpIHtcbiAgICAgIG51bSA9IHBhcnNlSW50KG5hbWUuc3Vic3RyKHBvcykpO1xuICAgIH1cbiAgICBudW0rKztcbiAgICByZXR1cm4gYmFzZSArIG51bTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGdldE5ld05hbWUob2JqczogQXJyYXk8YW55PiwgYmFzZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFyIGhhc2ggPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9ianMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGhhc2hbb2Jqc1tpXS5uYW1lXSA9IHRydWU7XG4gICAgfVxuICAgIHZhciBudW0gPSAxO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAoIWhhc2hbYmFzZU5hbWUgKyBudW0udG9TdHJpbmcoKV0pIGJyZWFrO1xuICAgICAgbnVtKys7XG4gICAgfVxuICAgIHJldHVybiBiYXNlTmFtZSArIG51bS50b1N0cmluZygpO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgZ2V0T2JqZWN0VHlwZShvYmo6IGFueSk6IE9ialR5cGUge1xuICAgIGlmICghb2JqIHx8ICFvYmpbXCJnZXRUeXBlXCJdKSByZXR1cm4gT2JqVHlwZS5Vbmtub3duO1xuICAgIGlmIChvYmouZ2V0VHlwZSgpID09IFwicGFnZVwiKSByZXR1cm4gT2JqVHlwZS5QYWdlO1xuICAgIGlmIChvYmouZ2V0VHlwZSgpID09IFwicGFuZWxcIikgcmV0dXJuIE9ialR5cGUuUGFuZWw7XG4gICAgaWYgKG9iai5nZXRUeXBlKCkgPT0gXCJzdXJ2ZXlcIikgcmV0dXJuIE9ialR5cGUuU3VydmV5O1xuICAgIGlmIChvYmpbXCJuYW1lXCJdKSByZXR1cm4gT2JqVHlwZS5RdWVzdGlvbjtcbiAgICByZXR1cm4gT2JqVHlwZS5Vbmtub3duO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgZ2V0T2JqZWN0VHlwZVN0cihvYmo6IGFueSk6IHN0cmluZyB7XG4gICAgdmFyIG9ialR5cGUgPSBTdXJ2ZXlIZWxwZXIuZ2V0T2JqZWN0VHlwZShvYmopO1xuICAgIGlmIChvYmpUeXBlID09PSBPYmpUeXBlLlN1cnZleSkgcmV0dXJuIFwic3VydmV5XCI7XG4gICAgaWYgKG9ialR5cGUgPT09IE9ialR5cGUuUGFnZSkgcmV0dXJuIFwicGFnZVwiO1xuICAgIGlmIChvYmpUeXBlID09PSBPYmpUeXBlLlBhbmVsKSByZXR1cm4gXCJwYW5lbFwiO1xuICAgIGlmIChvYmpUeXBlID09PSBPYmpUeXBlLlF1ZXN0aW9uKSByZXR1cm4gXCJxdWVzdGlvblwiO1xuICAgIHJldHVybiBcInVua25vd25cIjtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGdldE9iamVjdE5hbWUob2JqOiBhbnksIHNob3dPYmplY3RUaXRsZSA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICBpZiAoc2hvd09iamVjdFRpdGxlICYmIG9ialtcInRpdGxlXCJdKSByZXR1cm4gb2JqW1widGl0bGVcIl07XG4gICAgaWYgKHNob3dPYmplY3RUaXRsZSAmJiBvYmpbXCJ0ZXh0XCJdKSByZXR1cm4gb2JqW1widGV4dFwiXTtcbiAgICBpZiAob2JqW1wibmFtZVwiXSkgcmV0dXJuIG9ialtcIm5hbWVcIl07XG4gICAgdmFyIG9ialR5cGUgPSBTdXJ2ZXlIZWxwZXIuZ2V0T2JqZWN0VHlwZShvYmopO1xuICAgIGlmIChvYmpUeXBlICE9IE9ialR5cGUuUGFnZSkgcmV0dXJuIFwiXCI7XG4gICAgdmFyIGRhdGEgPSA8U3VydmV5LlN1cnZleT4oPFN1cnZleS5QYWdlPm9iailbXCJkYXRhXCJdO1xuICAgIGlmICghZGF0YSkgZGF0YSA9IDxTdXJ2ZXkuU3VydmV5Pig8U3VydmV5LlBhZ2U+b2JqKVtcInN1cnZleVwiXTsgLy9UT0RPXG4gICAgdmFyIGluZGV4ID0gZGF0YS5wYWdlcy5pbmRleE9mKDxTdXJ2ZXkuUGFnZT5vYmopO1xuICAgIHJldHVybiBcIltQYWdlIFwiICsgKGluZGV4ICsgMSkgKyBcIl1cIjtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGdldEVsZW1lbnRzKFxuICAgIGVsZW1lbnQ6IGFueSxcbiAgICBpbmNsdWRlSGlkZGVuOiBib29sZWFuID0gZmFsc2VcbiAgKTogQXJyYXk8YW55PiB7XG4gICAgaWYgKCFlbGVtZW50KSByZXR1cm4gW107XG4gICAgaWYgKGVsZW1lbnQuZ2V0RWxlbWVudHNJbkRlc2lnbilcbiAgICAgIHJldHVybiBlbGVtZW50LmdldEVsZW1lbnRzSW5EZXNpZ24oaW5jbHVkZUhpZGRlbik7XG4gICAgaWYgKGVsZW1lbnQuZWxlbWVudHMpIHJldHVybiBlbGVtZW50LmVsZW1lbnRzO1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGlzUHJvcGVydHlWaXNpYmxlKFxuICAgIG9iajogYW55LFxuICAgIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5LFxuICAgIG9wdGlvbnM6IElTdXJ2ZXlDcmVhdG9yT3B0aW9ucyA9IG51bGwsXG4gICAgc2hvd01vZGU6IHN0cmluZyA9IG51bGwsXG4gICAgcGFyZW50T2JqOiBhbnkgPSBudWxsLFxuICAgIHBhcmVudFByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5ID0gbnVsbFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIXByb3BlcnR5IHx8ICFwcm9wZXJ0eS52aXNpYmxlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCEhc2hvd01vZGUgJiYgISFwcm9wZXJ0eS5zaG93TW9kZSAmJiBzaG93TW9kZSAhPT0gcHJvcGVydHkuc2hvd01vZGUpXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgaWYgKFxuICAgICAgISFwcm9wZXJ0eS5pc1Zpc2libGUgJiZcbiAgICAgICEhb2JqLmdldExheW91dFR5cGUgJiZcbiAgICAgICEoPGFueT5wcm9wZXJ0eVtcImlzVmlzaWJsZVwiXSkob2JqLmdldExheW91dFR5cGUoKSwgbnVsbClcbiAgICApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGNhblNob3cgPSAhIW9wdGlvbnNcbiAgICAgID8gKG9iamVjdDogYW55LCBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSkgPT4ge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5vbkNhblNob3dQcm9wZXJ0eUNhbGxiYWNrKFxuICAgICAgICAgIG9iamVjdCxcbiAgICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgICBzaG93TW9kZSxcbiAgICAgICAgICBwYXJlbnRPYmosXG4gICAgICAgICAgcGFyZW50UHJvcGVydHlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgICBpZiAoISFjYW5TaG93ICYmICFjYW5TaG93KG9iaiwgcHJvcGVydHkpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBpc0Nhbk1vZGlmeVByb3BlcnR5KG9iajogU3VydmV5LkJhc2UsIHByb3BlcnR5TmFtZTogc3RyaW5nLCBvcHRpb25zOiBJU3VydmV5Q3JlYXRvck9wdGlvbnMgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgdmFyIHByb3BlcnR5ID0gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KG9iai5nZXRUeXBlKCksIHByb3BlcnR5TmFtZSk7XG4gICAgcmV0dXJuIChcbiAgICAgICFwcm9wZXJ0eSB8fFxuICAgICAgIW9wdGlvbnMub25Jc1Byb3BlcnR5UmVhZE9ubHlDYWxsYmFjayhcbiAgICAgICAgb2JqLFxuICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgcHJvcGVydHkucmVhZE9ubHksXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdW5kZWZpbmVkXG4gICAgICApXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHNjcm9sbEludG9WaWV3SWZOZWVkZWQoZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKCFlbCB8fCAhZWwuc2Nyb2xsSW50b1ZpZXcpIHJldHVybjtcbiAgICB2YXIgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHZhciBzY3JvbGxhYmxlRGl2ID0gU3VydmV5SGVscGVyLmdldFNjcm9sbGFibGVEaXYoZWwpO1xuICAgIGlmICghc2Nyb2xsYWJsZURpdikgcmV0dXJuO1xuICAgIHZhciBoZWlnaHQgPSBzY3JvbGxhYmxlRGl2LmNsaWVudEhlaWdodDtcbiAgICBpZiAocmVjdC50b3AgPCBzY3JvbGxhYmxlRGl2Lm9mZnNldFRvcCkge1xuICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IG9mZnNldFRvcCA9IGhlaWdodCArIHNjcm9sbGFibGVEaXYub2Zmc2V0VG9wO1xuICAgICAgaWYgKHJlY3QuYm90dG9tID4gb2Zmc2V0VG9wICYmIHJlY3QuaGVpZ2h0IDwgaGVpZ2h0KSB7XG4gICAgICAgIGVsLnNjcm9sbEludG9WaWV3KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIHN0YXRpYyBnZXRTY3JvbGxhYmxlRGl2KGVsOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICB3aGlsZSAoISFlbCkge1xuICAgICAgaWYgKCEhZWwuaWQgJiYgZWwuaWQuaW5kZXhPZihcInNjcm9sbGFibGVEaXZcIikgPiAtMSkgcmV0dXJuIGVsO1xuICAgICAgaWYgKCFlbC5vZmZzZXRQYXJlbnQpIHJldHVybiBudWxsO1xuICAgICAgZWwgPSA8SFRNTEVsZW1lbnQ+ZWwub2Zmc2V0UGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgc3RhdGljIG1vdmVJdGVtSW5BcnJheShcbiAgICBsaXN0OiBBcnJheTxhbnk+LFxuICAgIG9iajogYW55LFxuICAgIG5ld0luZGV4OiBudW1iZXJcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFsaXN0IHx8IGxpc3QubGVuZ3RoIDwgMikgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChuZXdJbmRleCA8IDAgfHwgbmV3SW5kZXggPj0gbGlzdC5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgb2xkSW5kZXggPSBsaXN0LmluZGV4T2Yob2JqKTtcbiAgICBpZiAob2xkSW5kZXggPCAwIHx8IG9sZEluZGV4ID09IG5ld0luZGV4KSByZXR1cm4gZmFsc2U7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBTdXJ2ZXlIZWxwZXIuZGlzYWJsZVNlbGVjdGluZ09iaihsaXN0W2ldKTtcbiAgICB9XG4gICAgbGlzdC5zcGxpY2Uob2xkSW5kZXgsIDEpO1xuICAgIGxpc3Quc3BsaWNlKG5ld0luZGV4LCAwLCBvYmopO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgU3VydmV5SGVscGVyLmVuYWJsZVNlbGVjdGluZ09iaihsaXN0W2ldKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBhcHBseUl0ZW1WYWx1ZUFycmF5KFxuICAgIGRlc3Q6IEFycmF5PFN1cnZleS5JdGVtVmFsdWU+LFxuICAgIHNyYzogQXJyYXk8U3VydmV5Lkl0ZW1WYWx1ZT5cbiAgKSB7XG4gICAgaWYgKCFzcmMgfHwgc3JjLmxlbmd0aCA9PSAwKSB7XG4gICAgICBkZXN0LnNwbGljZSgwLCBkZXN0Lmxlbmd0aCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChkZXN0Lmxlbmd0aCA+IHNyYy5sZW5ndGgpIHtcbiAgICAgIGRlc3Quc3BsaWNlKHNyYy5sZW5ndGgsIGRlc3QubGVuZ3RoIC0gc3JjLmxlbmd0aCk7XG4gICAgfVxuICAgIGlmIChkZXN0Lmxlbmd0aCA8IHNyYy5sZW5ndGgpIHtcbiAgICAgIHZhciBpbnNlcnRlZEFycmF5ID0gW107XG4gICAgICBmb3IgKHZhciBpID0gZGVzdC5sZW5ndGg7IGkgPCBzcmMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaW5zZXJ0ZWRBcnJheS5wdXNoKHNyY1tpXSk7XG4gICAgICB9XG4gICAgICBkZXN0LnNwbGljZS5hcHBseShkZXN0LCBbZGVzdC5sZW5ndGgsIDBdLmNvbmNhdChpbnNlcnRlZEFycmF5KSk7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVzdC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGRlc3RbaV0udmFsdWUgIT0gc3JjW2ldLnZhbHVlKSB7XG4gICAgICAgIGRlc3RbaV0udmFsdWUgPSBzcmNbaV0udmFsdWU7XG4gICAgICB9XG4gICAgICBkZXN0W2ldLnRleHQgPSBzcmNbaV0uaGFzVGV4dCA/IHNyY1tpXS50ZXh0IDogXCJcIjtcbiAgICB9XG4gIH1cbiAgcHVibGljIHN0YXRpYyBkaXNhYmxlU2VsZWN0aW5nT2JqKG9iajogU3VydmV5LkJhc2UpIHtcbiAgICBvYmpbXCJkaXNhYmxlU2VsZWN0aW5nXCJdID0gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGVuYWJsZVNlbGVjdGluZ09iaihvYmo6IFN1cnZleS5CYXNlKSB7XG4gICAgZGVsZXRlIG9ialtcImRpc2FibGVTZWxlY3RpbmdcIl07XG4gIH1cbiAgcHVibGljIHN0YXRpYyBjYW5TZWxlY3RPYmoob2JqOiBTdXJ2ZXkuQmFzZSkge1xuICAgIHJldHVybiAhb2JqIHx8IG9ialtcImRpc2FibGVTZWxlY3RpbmdcIl0gIT09IHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgZGVsZXRlQ29uZGl0aW9uUHJvcGVydGllcyhqc29uOiBhbnkpIHtcbiAgICBkZWxldGUganNvbltcInZpc2libGVcIl07XG4gICAgZGVsZXRlIGpzb25bXCJ2aXNpYmxlSWZcIl07XG4gICAgZGVsZXRlIGpzb25bXCJlbmFibGVcIl07XG4gICAgZGVsZXRlIGpzb25bXCJlbmFibGVJZlwiXTtcbiAgICBkZWxldGUganNvbltcInZhbHVlTmFtZVwiXTtcbiAgICBkZWxldGUganNvbltcImNob2ljZXNWaXNpYmxlSWZcIl07XG4gICAgZGVsZXRlIGpzb25bXCJjaG9pY2VzRW5hYmxlSWZcIl07XG4gIH1cbiAgcHVibGljIHN0YXRpYyB1cGRhdGVRdWVzdGlvbkpzb24ocXVlc3Rpb25Kc29uOiBhbnkpIHtcbiAgICBxdWVzdGlvbkpzb24uc3RvcmVPdGhlcnNBc0NvbW1lbnQgPSBmYWxzZTtcbiAgICBTdXJ2ZXlIZWxwZXIuZGVsZXRlQ29uZGl0aW9uUHJvcGVydGllcyhxdWVzdGlvbkpzb24pO1xuICAgIGlmICghIXF1ZXN0aW9uSnNvbi5jaG9pY2VzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXN0aW9uSnNvbi5jaG9pY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIFN1cnZleUhlbHBlci5kZWxldGVDb25kaXRpb25Qcm9wZXJ0aWVzKHF1ZXN0aW9uSnNvbi5jaG9pY2VzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0TWF0cml4Um93c1RvVGV4dChyb3dzOiBhbnkpOiBzdHJpbmcge1xuICAgIHZhciByZXN1bHQgPSByb3dzXG4gICAgICAuZmlsdGVyKChyb3cpID0+ICFyb3cuY2VsbHNbMF0uaGFzRXJyb3IpXG4gICAgICAubWFwKChyb3cpID0+XG4gICAgICAgIHJvdy5jZWxsc1xuICAgICAgICAgIC5tYXAoKGNlbGwpID0+IGNlbGwudmFsdWUgfHwgXCJcIilcbiAgICAgICAgICAuam9pbihTdXJ2ZXkuSXRlbVZhbHVlLlNlcGFyYXRvcilcbiAgICAgICAgICAucmVwbGFjZSgvXFx8JC8sIFwiXCIpXG4gICAgICApXG4gICAgICAuam9pbihcIlxcblwiKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRJdGVtVmFsdWVzVG9UZXh0KGl0ZW1zOiBTdXJ2ZXkuSXRlbVZhbHVlW10pOiBzdHJpbmcge1xuICAgIHZhciB0ZXh0ID0gXCJcIjtcblxuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICh0ZXh0KSB0ZXh0ICs9IFwiXFxuXCI7XG4gICAgICB0ZXh0ICs9IGl0ZW0udmFsdWU7XG4gICAgICBpZiAoaXRlbS5wdXJlVGV4dCkgdGV4dCArPSBTdXJ2ZXkuSXRlbVZhbHVlLlNlcGFyYXRvciArIGl0ZW0ucHVyZVRleHQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFRleHRUb0l0ZW1WYWx1ZXMoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHByb3BlcnRpZXM6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHlbXSxcbiAgICBjbGFzc05hbWU6IHN0cmluZ1xuICApOiBTdXJ2ZXkuSXRlbVZhbHVlW10ge1xuICAgIHZhciBpdGVtcyA9IFtdO1xuICAgIGlmICghdGV4dCkgcmV0dXJuIGl0ZW1zO1xuXG4gICAgdmFyIHRleHRzID0gdGV4dC5zcGxpdChcIlxcblwiKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIXRleHRzW2ldKSBjb250aW51ZTtcbiAgICAgIHZhciBlbGVtZW50cyA9IHRleHRzW2ldLnNwbGl0KFN1cnZleS5JdGVtVmFsdWUuU2VwYXJhdG9yKTtcbiAgICAgIHZhciB2YWx1ZUl0ZW0gPSBTdXJ2ZXkuU2VyaWFsaXplci5jcmVhdGVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgcHJvcGVydGllcy5mb3JFYWNoKChwLCBpKSA9PiB7XG4gICAgICAgIHZhbHVlSXRlbVtwLm5hbWVdID0gZWxlbWVudHNbaV07XG4gICAgICB9KTtcbiAgICAgIGl0ZW1zLnB1c2godmFsdWVJdGVtKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cbn1cbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5SGVscGVyLCBPYmpUeXBlIH0gZnJvbSBcIi4vc3VydmV5SGVscGVyXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlPYmplY3RJdGVtIHtcbiAgcHVibGljIHZhbHVlOiBTdXJ2ZXkuQmFzZTtcbiAgcHVibGljIHRleHQ6IGFueTtcbiAgcHVibGljIGxldmVsOiBudW1iZXIgPSAwO1xufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5T2JqZWN0cyB7XG4gIHB1YmxpYyBzdGF0aWMgaW50ZW5kOiBzdHJpbmcgPSBcIi5cIjtcbiAgc3VydmV5VmFsdWU6IFN1cnZleS5TdXJ2ZXk7XG4gIHB1YmxpYyBnZXRJdGVtVGV4dENhbGxiYWNrOiAob2JqOiBTdXJ2ZXkuQmFzZSwgdGV4dDogc3RyaW5nKSA9PiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGtvT2JqZWN0czogYW55LFxuICAgIHB1YmxpYyBrb1NlbGVjdGVkOiBhbnksXG4gICAgcHJpdmF0ZSBnZXRPYmplY3REaXNwbGF5TmFtZTogKFxuICAgICAgb2JqOiBTdXJ2ZXkuQmFzZSxcbiAgICAgIHJlYXNvbjogc3RyaW5nXG4gICAgKSA9PiBzdHJpbmcgPSBudWxsXG4gICkge31cbiAgcHVibGljIGdldCBzdXJ2ZXkoKTogU3VydmV5LlN1cnZleSB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5VmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBzdXJ2ZXkodmFsdWU6IFN1cnZleS5TdXJ2ZXkpIHtcbiAgICBpZiAodGhpcy5zdXJ2ZXkgPT0gdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLnN1cnZleVZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5yZWJ1aWxkKCk7XG4gIH1cbiAgcHVibGljIGhhc09iamVjdChvYmo6IFN1cnZleS5CYXNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUluZGV4KG9iaikgPiAtMTtcbiAgfVxuICBwdWJsaWMgYWRkUGFnZShwYWdlOiBTdXJ2ZXkuUGFnZU1vZGVsKSB7XG4gICAgdGhpcy5hZGRFbGVtZW50KHBhZ2UsIG51bGwpO1xuICB9XG4gIHB1YmxpYyBhZGRFbGVtZW50KGVsZW1lbnQ6IGFueSwgcGFyZW50OiBhbnkpIHtcbiAgICB2YXIgcGFyZW50SW5kZXggPSBwYXJlbnQgIT0gbnVsbCA/IHRoaXMuZ2V0SXRlbUluZGV4KHBhcmVudCkgOiAwO1xuICAgIGlmIChwYXJlbnRJbmRleCA8IDApIHJldHVybjtcbiAgICB2YXIgZWxlbWVudHMgPVxuICAgICAgcGFyZW50ICE9IG51bGwgPyB0aGlzLmdldEVsZW1lbnRzKHBhcmVudCkgOiB0aGlzLnN1cnZleS5wYWdlcztcbiAgICB2YXIgZWxlbWVudEluZGV4ID0gZWxlbWVudHMuaW5kZXhPZihlbGVtZW50KTtcbiAgICB2YXIgbmV3SW5kZXggPSBlbGVtZW50SW5kZXggKyAxICsgcGFyZW50SW5kZXg7XG4gICAgaWYgKGVsZW1lbnRJbmRleCA+IDApIHtcbiAgICAgIHZhciBwcmV2RWxlbWVudCA9IGVsZW1lbnRzW2VsZW1lbnRJbmRleCAtIDFdO1xuICAgICAgbmV3SW5kZXggPVxuICAgICAgICB0aGlzLmdldEl0ZW1JbmRleChwcmV2RWxlbWVudCkgK1xuICAgICAgICB0aGlzLmdldEFsbEVsZW1lbnRDb3VudChwcmV2RWxlbWVudCkgK1xuICAgICAgICAxO1xuICAgIH1cbiAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlSXRlbShlbGVtZW50LCB0aGlzLmtvT2JqZWN0cygpW3BhcmVudEluZGV4XSk7XG4gICAgdGhpcy5hZGRJdGVtKGl0ZW0sIG5ld0luZGV4KTtcbiAgICB2YXIgb2JqcyA9IFtdO1xuICAgIHRoaXMuYnVpbGRFbGVtZW50cyhvYmpzLCB0aGlzLmdldEVsZW1lbnRzKGVsZW1lbnQpLCBpdGVtKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9ianMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMua29PYmplY3RzLnNwbGljZShuZXdJbmRleCArIDEgKyBpLCAwLCBvYmpzW2ldKTtcbiAgICB9XG4gICAgaWYgKFN1cnZleUhlbHBlci5jYW5TZWxlY3RPYmooZWxlbWVudCkpIHtcbiAgICAgIHRoaXMua29TZWxlY3RlZChpdGVtKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHNlbGVjdE9iamVjdChvYmo6IFN1cnZleS5CYXNlKSB7XG4gICAgaWYgKCEhb2JqICYmICFTdXJ2ZXlIZWxwZXIuY2FuU2VsZWN0T2JqKG9iaikpIHJldHVybjtcbiAgICBpZiAob2JqID09PSBudWxsKSB7XG4gICAgICB0aGlzLmtvU2VsZWN0ZWQobnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBvYmpzID0gdGhpcy5rb09iamVjdHMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9ianMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChvYmpzW2ldLnZhbHVlID09IG9iaikge1xuICAgICAgICB0aGlzLmtvU2VsZWN0ZWQob2Jqc1tpXSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGdldFNlbGVjdGVkT2JqZWN0UGFnZShvYmo6IFN1cnZleS5CYXNlID0gbnVsbCk6IFN1cnZleS5QYWdlIHtcbiAgICBpZiAoIXRoaXMuc3VydmV5KSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIW9iaikge1xuICAgICAgaWYgKCF0aGlzLmtvU2VsZWN0ZWQoKSkgcmV0dXJuO1xuICAgICAgb2JqID0gdGhpcy5rb1NlbGVjdGVkKCkudmFsdWU7XG4gICAgfVxuICAgIHZhciBvYmpzID0gdGhpcy5rb09iamVjdHMoKTtcbiAgICB2YXIgaW5kZXggPSB0aGlzLmdldEl0ZW1JbmRleChvYmopO1xuICAgIHdoaWxlIChpbmRleCA+IDApIHtcbiAgICAgIHZhciBpdGVtID0gb2Jqc1tpbmRleF07XG4gICAgICBpZiAoaXRlbS5sZXZlbCA9PSAxKSByZXR1cm4gaXRlbS52YWx1ZTtcbiAgICAgIGluZGV4LS07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyByZW1vdmVPYmplY3Qob2JqOiBTdXJ2ZXkuQmFzZSkge1xuICAgIHZhciBpbmRleCA9IHRoaXMuZ2V0SXRlbUluZGV4KG9iaik7XG4gICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuO1xuICAgIHZhciBjb3VudFRvUmVtb3ZlID0gMSArIHRoaXMuZ2V0QWxsRWxlbWVudENvdW50KG9iaik7XG4gICAgdGhpcy5rb09iamVjdHMuc3BsaWNlKGluZGV4LCBjb3VudFRvUmVtb3ZlKTtcbiAgfVxuICBwdWJsaWMgbmFtZUNoYW5nZWQob2JqOiBTdXJ2ZXkuQmFzZSkge1xuICAgIHZhciBpbmRleCA9IHRoaXMuZ2V0SXRlbUluZGV4KG9iaik7XG4gICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuO1xuICAgIHZhciBpdGVtID0gdGhpcy5rb09iamVjdHMoKVtpbmRleF07XG4gICAgaXRlbS50ZXh0KHRoaXMuZ2V0VGV4dChpdGVtKSk7XG4gIH1cbiAgcHVibGljIHNlbGVjdE5leHRRdWVzdGlvbihpc1VwOiBib29sZWFuKSB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5nZXRTZWxlY3RlZFF1ZXN0aW9uKCk7XG4gICAgdmFyIGl0ZW1JbmRleCA9IHRoaXMuZ2V0SXRlbUluZGV4KHF1ZXN0aW9uKTtcbiAgICBpZiAoaXRlbUluZGV4IDwgMCkgcmV0dXJuIHF1ZXN0aW9uO1xuICAgIHZhciBvYmpzID0gdGhpcy5rb09iamVjdHMoKTtcbiAgICB2YXIgbmV3SXRlbUluZGV4ID0gaXRlbUluZGV4ICsgKGlzVXAgPyAtMSA6IDEpO1xuICAgIGlmIChcbiAgICAgIG5ld0l0ZW1JbmRleCA8IG9ianMubGVuZ3RoICYmXG4gICAgICBTdXJ2ZXlIZWxwZXIuZ2V0T2JqZWN0VHlwZShvYmpzW25ld0l0ZW1JbmRleF0udmFsdWUpID09IE9ialR5cGUuUXVlc3Rpb25cbiAgICApIHtcbiAgICAgIGl0ZW1JbmRleCA9IG5ld0l0ZW1JbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3SXRlbUluZGV4ID0gaXRlbUluZGV4O1xuICAgICAgd2hpbGUgKFxuICAgICAgICBuZXdJdGVtSW5kZXggPCBvYmpzLmxlbmd0aCAmJlxuICAgICAgICBTdXJ2ZXlIZWxwZXIuZ2V0T2JqZWN0VHlwZShvYmpzW25ld0l0ZW1JbmRleF0udmFsdWUpID09IE9ialR5cGUuUXVlc3Rpb25cbiAgICAgICkge1xuICAgICAgICBpdGVtSW5kZXggPSBuZXdJdGVtSW5kZXg7XG4gICAgICAgIG5ld0l0ZW1JbmRleCArPSBpc1VwID8gMSA6IC0xO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtvU2VsZWN0ZWQob2Jqc1tpdGVtSW5kZXhdKTtcbiAgfVxuICBwcml2YXRlIGdldEFsbEVsZW1lbnRDb3VudChlbGVtZW50OiBhbnkpIHtcbiAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmdldEVsZW1lbnRzKGVsZW1lbnQpO1xuICAgIHZhciByZXMgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcyArPSAxICsgdGhpcy5nZXRBbGxFbGVtZW50Q291bnQoZWxlbWVudHNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgZ2V0U2VsZWN0ZWRRdWVzdGlvbigpOiBTdXJ2ZXkuUXVlc3Rpb24ge1xuICAgIGlmICghdGhpcy5rb1NlbGVjdGVkKCkpIHJldHVybiBudWxsO1xuICAgIHZhciBvYmogPSB0aGlzLmtvU2VsZWN0ZWQoKS52YWx1ZTtcbiAgICBpZiAoIW9iaikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIFN1cnZleUhlbHBlci5nZXRPYmplY3RUeXBlKG9iaikgPT0gT2JqVHlwZS5RdWVzdGlvblxuICAgICAgPyA8U3VydmV5LlF1ZXN0aW9uPm9ialxuICAgICAgOiBudWxsO1xuICB9XG4gIHByaXZhdGUgYWRkSXRlbShpdGVtOiBTdXJ2ZXlPYmplY3RJdGVtLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4ID4gdGhpcy5rb09iamVjdHMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMua29PYmplY3RzLnB1c2goaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua29PYmplY3RzLnNwbGljZShpbmRleCwgMCwgaXRlbSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcmVidWlsZCgpIHtcbiAgICB2YXIgb2JqcyA9IFtdO1xuICAgIGlmICh0aGlzLnN1cnZleSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmtvT2JqZWN0cyhvYmpzKTtcbiAgICAgIHRoaXMuc2VsZWN0T2JqZWN0KG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgcm9vdCA9IHRoaXMuY3JlYXRlSXRlbSh0aGlzLnN1cnZleSwgbnVsbCk7XG4gICAgb2Jqcy5wdXNoKHJvb3QpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdXJ2ZXkucGFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwYWdlID0gPFN1cnZleS5QYWdlPnRoaXMuc3VydmV5LnBhZ2VzW2ldO1xuICAgICAgdmFyIHBhZ2VJdGVtID0gdGhpcy5jcmVhdGVJdGVtKHBhZ2UsIHJvb3QpO1xuICAgICAgb2Jqcy5wdXNoKHBhZ2VJdGVtKTtcbiAgICAgIHRoaXMuYnVpbGRFbGVtZW50cyhvYmpzLCB0aGlzLmdldEVsZW1lbnRzKHBhZ2UpLCBwYWdlSXRlbSk7XG4gICAgfVxuICAgIHRoaXMua29PYmplY3RzKG9ianMpO1xuICAgIHRoaXMuc2VsZWN0T2JqZWN0KHRoaXMuc3VydmV5KTtcbiAgfVxuICBwcml2YXRlIGdldEVsZW1lbnRzKGVsZW1lbnQ6IGFueSk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiBTdXJ2ZXlIZWxwZXIuZ2V0RWxlbWVudHMoZWxlbWVudCk7XG4gIH1cbiAgcHJpdmF0ZSBidWlsZEVsZW1lbnRzKFxuICAgIG9ianM6IEFycmF5PGFueT4sXG4gICAgZWxlbWVudHM6IEFycmF5PGFueT4sXG4gICAgcGFyZW50SXRlbTogU3VydmV5T2JqZWN0SXRlbVxuICApIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWwgPSBlbGVtZW50c1tpXTtcbiAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVJdGVtKDxTdXJ2ZXkuQmFzZT5lbCwgcGFyZW50SXRlbSk7XG4gICAgICBvYmpzLnB1c2goaXRlbSk7XG4gICAgICB0aGlzLmJ1aWxkRWxlbWVudHMob2JqcywgdGhpcy5nZXRFbGVtZW50cyhlbCksIGl0ZW0pO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGNyZWF0ZUl0ZW0odmFsdWU6IFN1cnZleS5CYXNlLCBwYXJlbnQ6IFN1cnZleU9iamVjdEl0ZW0pIHtcbiAgICB2YXIgaXRlbSA9IG5ldyBTdXJ2ZXlPYmplY3RJdGVtKCk7XG4gICAgaXRlbS52YWx1ZSA9IHZhbHVlO1xuICAgIGl0ZW0ubGV2ZWwgPSBwYXJlbnQgIT0gbnVsbCA/IHBhcmVudC5sZXZlbCArIDEgOiAwO1xuICAgIGl0ZW0udGV4dCA9IGtvLm9ic2VydmFibGUodGhpcy5nZXRUZXh0KGl0ZW0pKTtcbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuICBwcml2YXRlIGdldEl0ZW1JbmRleCh2YWx1ZTogU3VydmV5LkJhc2UpOiBudW1iZXIge1xuICAgIGlmICghdmFsdWUpIHJldHVybiAtMTtcbiAgICBpZiAodmFsdWVbXCJzZWxlY3RlZEVsZW1lbnRJbkRlc2lnblwiXSlcbiAgICAgIHZhbHVlID0gdmFsdWVbXCJzZWxlY3RlZEVsZW1lbnRJbkRlc2lnblwiXTtcbiAgICB2YXIgb2JqcyA9IHRoaXMua29PYmplY3RzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmpzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAob2Jqc1tpXS52YWx1ZSA9PSB2YWx1ZSkgcmV0dXJuIGk7XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuICBwcml2YXRlIGdldFRleHQoaXRlbTogU3VydmV5T2JqZWN0SXRlbSk6IHN0cmluZyB7XG4gICAgaWYgKGl0ZW0ubGV2ZWwgPT0gMCkgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJlZC5zdXJ2ZXlcIik7XG4gICAgdmFyIGludGVuZCA9IFN1cnZleU9iamVjdHMuaW50ZW5kO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgaXRlbS5sZXZlbDsgaSsrKSB7XG4gICAgICBpbnRlbmQgKz0gU3VydmV5T2JqZWN0cy5pbnRlbmQ7XG4gICAgfVxuICAgIHZhciB0ZXh0ID0gISF0aGlzLmdldE9iamVjdERpc3BsYXlOYW1lXG4gICAgICA/IHRoaXMuZ2V0T2JqZWN0RGlzcGxheU5hbWUoaXRlbS52YWx1ZSwgXCJwcm9wZXJ0eS1ncmlkXCIpXG4gICAgICA6IFN1cnZleUhlbHBlci5nZXRPYmplY3ROYW1lKGl0ZW0udmFsdWUsIGZhbHNlKTtcbiAgICBpZiAodGhpcy5nZXRJdGVtVGV4dENhbGxiYWNrKSB7XG4gICAgICB0ZXh0ID0gdGhpcy5nZXRJdGVtVGV4dENhbGxiYWNrKGl0ZW0udmFsdWUsIHRleHQpO1xuICAgIH1cbiAgICByZXR1cm4gaW50ZW5kICsgdGV4dDtcbiAgfVxufVxuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgUGFnZU1vZGVsIH0gZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBmaW5kUGFyZW50Tm9kZSB9IGZyb20gXCIuL3V0aWxzL3V0aWxzXCI7XG5pbXBvcnQgeyBTdHlsZXNNYW5hZ2VyIH0gZnJvbSBcIi4vc3R5bGVzbWFuYWdlclwiO1xuaW1wb3J0IHsgU3VydmV5RWRpdG9yIH0gZnJvbSBcIi4vZWRpdG9yXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN1cnZleU9iamVjdE1lbnVJdGVtIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHZpc2libGU/OiBib29sZWFuIHwgKCgpID0+IGJvb2xlYW4pO1xuICBvbkNsaWNrOiAob2JqOiBTdXJ2ZXkuQmFzZSkgPT4gYW55O1xuICBpY29uPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIGhhc1RpdGxlPzogYm9vbGVhbjtcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlFdmVudCBleHRlbmRzIFN1cnZleS5FdmVudEJhc2U8U3VydmV5LlN1cnZleT4geyB9XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlGb3JEZXNpZ25lciBleHRlbmRzIFN1cnZleS5TdXJ2ZXkge1xuICBwcml2YXRlIHNlbGVjdGVkRWxlbWVudFZhbHVlOiBhbnk7XG4gIGVkaXRRdWVzdGlvbkNsaWNrOiBhbnk7XG4gIHB1YmxpYyBvblNlbGVjdGVkRWxlbWVudENoYW5nZWQ6IFN1cnZleUV2ZW50ID0gbmV3IFN1cnZleUV2ZW50KCk7XG4gIHB1YmxpYyBvbkVkaXRCdXR0b25DbGljazogU3VydmV5RXZlbnQgPSBuZXcgU3VydmV5RXZlbnQoKTtcbiAgcHVibGljIG9uR2V0TWVudUl0ZW1zOiBTdXJ2ZXlFdmVudCA9IG5ldyBTdXJ2ZXlFdmVudCgpO1xuICBwdWJsaWMgb25FbGVtZW50RG91YmxlQ2xpY2s6IFN1cnZleUV2ZW50ID0gbmV3IFN1cnZleUV2ZW50KCk7XG4gIHB1YmxpYyBvblVwZGF0ZUVsZW1lbnRBbGxvd2luZ09wdGlvbnM6IChvcHRpb25zOiBhbnkpID0+IGFueTtcbiAgcHVibGljIGdldEVkaXRvcjogKCkgPT4gU3VydmV5RWRpdG9yO1xuICBwdWJsaWMgZW1wdHlQYWdlVGVtcGxhdGU6IHN0cmluZztcbiAgcHVibGljIGVtcHR5UGFnZVRlbXBsYXRlRGF0YTogYW55O1xuICBwdWJsaWMgZHJhZ0Ryb3BIZWxwZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBqc29uT2JqOiBhbnkgPSBudWxsLFxuICAgIHJlbmRlcmVkRWxlbWVudDogYW55ID0gbnVsbCxcbiAgICBjc3M6IGFueSA9IG51bGxcbiAgKSB7XG4gICAgc3VwZXIoanNvbk9iaiwgcmVuZGVyZWRFbGVtZW50KTtcbiAgICBpZiAoIWNzcykgdGhpcy5jc3MgPSBjc3M7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuc2V0RGVzaWduTW9kZSh0cnVlKTtcbiAgICB0aGlzLm9uQWZ0ZXJSZW5kZXJQYWdlLmFkZCgoc2VuZGVyOiBTdXJ2ZXkuU3VydmV5LCBvcHRpb25zKSA9PiB7XG4gICAgICBvcHRpb25zLnBhZ2VbXCJvbkFmdGVyUmVuZGVyUGFnZVwiXShvcHRpb25zLmh0bWxFbGVtZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLmVkaXRRdWVzdGlvbkNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5vbkVkaXRCdXR0b25DbGljay5maXJlKHNlbGYsIG51bGwpO1xuICAgIH07XG4gICAgdGhpcy5vblVwZGF0ZVF1ZXN0aW9uQ3NzQ2xhc3Nlcy5hZGQob25VcGRhdGVRdWVzdGlvbkNzc0NsYXNzZXMpO1xuICAgIHRoaXMub25VcGRhdGVQYW5lbENzc0NsYXNzZXMuYWRkKG9uVXBkYXRlUXVlc3Rpb25Dc3NDbGFzc2VzKTtcbiAgICB0aGlzLm9uVXBkYXRlUGFnZUNzc0NsYXNzZXMuYWRkKG9uVXBkYXRlUXVlc3Rpb25Dc3NDbGFzc2VzKTtcbiAgICB2YXIgc3VydmV5Q3NzID0gdGhpcy5jc3M7XG4gICAgYWRkQWRvcm5lck1hcmtlckNsYXNzZXMoc3VydmV5Q3NzLCB0aGlzKTtcbiAgICB0aGlzLmNzcyA9IHN1cnZleUNzcztcbiAgfVxuICBwdWJsaWMgdXBkYXRlRWxlbWVudEFsbG93aW5nT3B0aW9ucyhvYmo6IFN1cnZleS5CYXNlKSB7XG4gICAgaWYgKHRoaXMub25VcGRhdGVFbGVtZW50QWxsb3dpbmdPcHRpb25zICYmIG9ialtcImFsbG93aW5nT3B0aW9uc1wiXSkge1xuICAgICAgb2JqW1wiYWxsb3dpbmdPcHRpb25zXCJdLm9iaiA9IG9iajtcbiAgICAgIHRoaXMub25VcGRhdGVFbGVtZW50QWxsb3dpbmdPcHRpb25zKG9ialtcImFsbG93aW5nT3B0aW9uc1wiXSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRNZW51SXRlbXMob2JqOiBTdXJ2ZXkuQmFzZSk6IEFycmF5PElTdXJ2ZXlPYmplY3RNZW51SXRlbT4ge1xuICAgIHZhciBpdGVtcyA9IFtdO1xuICAgIHZhciBvcHRpb25zID0geyBvYmo6IG9iaiwgaXRlbXM6IGl0ZW1zIH07XG4gICAgdGhpcy5vbkdldE1lbnVJdGVtcy5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLml0ZW1zO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRFbGVtZW50KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRFbGVtZW50VmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBzZWxlY3RlZEVsZW1lbnQodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5zZWxlY3RlZEVsZW1lbnRJbkRlc2lnbilcbiAgICAgIHZhbHVlID0gdmFsdWUuc2VsZWN0ZWRFbGVtZW50SW5EZXNpZ247XG4gICAgaWYgKHZhbHVlID09IHRoaXMuc2VsZWN0ZWRFbGVtZW50VmFsdWUpIHJldHVybjtcbiAgICB2YXIgb2xkVmFsdWUgPSB0aGlzLnNlbGVjdGVkRWxlbWVudFZhbHVlO1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50VmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAob2xkVmFsdWUgIT0gbnVsbCAmJiBvbGRWYWx1ZVtcIm9uU2VsZWN0ZWRFbGVtZW50Q2hhbmdlZFwiXSkge1xuICAgICAgb2xkVmFsdWVbXCJvblNlbGVjdGVkRWxlbWVudENoYW5nZWRcIl0oKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRWYWx1ZSAhPSBudWxsICYmXG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudFZhbHVlW1wib25TZWxlY3RlZEVsZW1lbnRDaGFuZ2VkXCJdXG4gICAgKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudFZhbHVlW1wib25TZWxlY3RlZEVsZW1lbnRDaGFuZ2VkXCJdKCk7XG4gICAgfVxuICAgIHRoaXMub25TZWxlY3RlZEVsZW1lbnRDaGFuZ2VkLmZpcmUodGhpcywge1xuICAgICAgb2xkRWxlbWVudDogb2xkVmFsdWUsXG4gICAgICBuZXdFbGVtZW50OiB2YWx1ZSxcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgZG9FbGVtZW50RG91YmxlQ2xpY2sob2JqOiBTdXJ2ZXkuQmFzZSkge1xuICAgIHRoaXMub25FbGVtZW50RG91YmxlQ2xpY2suZmlyZSh0aGlzLCB7IGVsZW1lbnQ6IG9iaiB9KTtcbiAgfVxuICBwdWJsaWMgZ2V0RWRpdG9yTG9jU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIGdldCBfaGFzTG9nbygpIHtcbiAgICByZXR1cm4gISF0aGlzLmlzTG9nb0ltYWdlQ2hvb3NlbigpICYmIHRoaXMubG9nb1Bvc2l0aW9uICE9PSBcIm5vbmVcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IF9pc0xvZ29CZWZvcmUoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2hhc0xvZ28gJiZcbiAgICAgICh0aGlzLmxvZ29Qb3NpdGlvbiA9PT0gXCJsZWZ0XCIgfHwgdGhpcy5sb2dvUG9zaXRpb24gPT09IFwidG9wXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IF9pc0xvZ29BZnRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5faGFzTG9nbyAmJlxuICAgICAgKHRoaXMubG9nb1Bvc2l0aW9uID09PSBcInJpZ2h0XCIgfHwgdGhpcy5sb2dvUG9zaXRpb24gPT09IFwiYm90dG9tXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGlzVGl0bGVMb2dvRWRpdGFibGUgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgcHVibGljIGdldCBoYXNMb2dvKCkge1xuICAgIHJldHVybiAoXG4gICAgICAoU3VydmV5Rm9yRGVzaWduZXIuaXNUaXRsZUxvZ29FZGl0YWJsZSgpICYmXG4gICAgICAgICgodGhpcy5pc1JlYWRPbmx5KCkgJiYgdGhpcy5faGFzTG9nbykgfHwgIXRoaXMuaXNSZWFkT25seSgpKSkgfHxcbiAgICAgICghU3VydmV5Rm9yRGVzaWduZXIuaXNUaXRsZUxvZ29FZGl0YWJsZSgpICYmIHRoaXMuX2hhc0xvZ28pXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzTG9nb0JlZm9yZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKFN1cnZleUZvckRlc2lnbmVyLmlzVGl0bGVMb2dvRWRpdGFibGUoKSAmJlxuICAgICAgICAoKHRoaXMuaXNSZWFkT25seSgpICYmIHRoaXMuX2lzTG9nb0JlZm9yZSkgfHwgIXRoaXMuaXNSZWFkT25seSgpKSkgfHxcbiAgICAgICghU3VydmV5Rm9yRGVzaWduZXIuaXNUaXRsZUxvZ29FZGl0YWJsZSgpICYmIHRoaXMuX2lzTG9nb0JlZm9yZSlcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNMb2dvQWZ0ZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIChTdXJ2ZXlGb3JEZXNpZ25lci5pc1RpdGxlTG9nb0VkaXRhYmxlKCkgJiYgKCh0aGlzLmlzUmVhZE9ubHkoKSAmJiB0aGlzLl9pc0xvZ29BZnRlcikgfHwgIXRoaXMuaXNSZWFkT25seSgpKSkgfHxcbiAgICAgICghU3VydmV5Rm9yRGVzaWduZXIuaXNUaXRsZUxvZ29FZGl0YWJsZSgpICYmIHRoaXMuX2lzTG9nb0FmdGVyKVxuICAgICk7XG4gIH1cbiAgcHVibGljIGlzTG9nb0ltYWdlQ2hvb3NlbigpIHtcbiAgICByZXR1cm4gdGhpcy5sb2NMb2dvW1wia29SZW5kZXJlZEh0bWxcIl0oKTtcbiAgfVxuICBwdWJsaWMga29TaG93SGVhZGVyID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcbiAgcHVibGljIGlzUmVhZE9ubHkgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gZ2V0U3VydmV5KGVsOiBhbnkpOiBhbnkge1xuICBpZiAoIWVsKSByZXR1cm4gbnVsbDtcbiAgaWYgKHR5cGVvZiBlbC5nZXRUeXBlID09PSBcImZ1bmN0aW9uXCIgJiYgZWwuZ2V0VHlwZSgpID09PSBcInN1cnZleVwiKSB7XG4gICAgcmV0dXJuIGVsO1xuICB9XG4gIHZhciByZXMgPSBlbFtcInN1cnZleVwiXTtcbiAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgcmV0dXJuIGVsW1wiZGF0YVwiXTtcbn1cblxuZnVuY3Rpb24gcGFuZWxCYXNlT25DcmVhdGluZyhzZWxmOiBhbnkpIHtcbiAgaWYgKHNlbGYuZGlzYWJsZURlc2lnbkFjdGlvbnMgPT09IHRydWUpIHJldHVybjtcbiAgc2VsZi5kcmFnRW50ZXJDb3VudGVyID0gMDtcbiAgc2VsZi5lbXB0eUVsZW1lbnQgPSBudWxsO1xuICBzZWxmLnJvd0NvdW50ID0ga28uY29tcHV0ZWQoZnVuY3Rpb24gKCkge1xuICAgIHZhciByb3dzID0gISFzZWxmW1wia29Sb3dcIl0gPyBzZWxmW1wia29Sb3dzXCJdKCkgOiBzZWxmLnJvd3M7XG4gICAgcmV0dXJuIHJvd3MubGVuZ3RoO1xuICB9LCBzZWxmKTtcbiAgc2VsZi5yb3dDb3VudC5zdWJzY3JpYmUoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgaWYgKHNlbGYuZW1wdHlFbGVtZW50KSB7XG4gICAgICBzZWxmLmVtcHR5RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gdmFsdWUgPiAwID8gXCJub25lXCIgOiBcIlwiO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhZ2VPbkNyZWF0aW5nKHBhZ2U6IFBhZ2VNb2RlbCkge1xuICBpZiAocGFnZS5kaXNhYmxlRGVzaWduQWN0aW9ucyA9PT0gdHJ1ZSkgcmV0dXJuO1xuICBwYWdlW1wiYWxsb3dpbmdPcHRpb25zXCJdID0ge1xuICAgIGFsbG93QWRkOiB0cnVlLFxuICAgIGFsbG93RGVsZXRlOiB0cnVlLFxuICAgIGFsbG93RWRpdDogdHJ1ZSxcbiAgICBhbGxvd0NvcHk6IHRydWUsXG4gICAgLy9hbGxvd0FkZFRvVG9vbGJveDogdHJ1ZSxcbiAgICAvL2FsbG93RHJhZ2dpbmc6IHRydWUsXG4gICAgLy9hbGxvd0NoYW5nZVR5cGU6IHRydWUsXG4gICAgLy9hbGxvd1Nob3dIaWRlVGl0bGU6IHRydWUsXG4gICAgLy9hbGxvd0NoYW5nZVJlcXVpcmVkOiB0cnVlLFxuICB9O1xufVxuZnVuY3Rpb24gZWxlbWVudE9uQ3JlYXRpbmcoc3VydmV5RWxlbWVudDogYW55KSB7XG4gIGlmIChzdXJ2ZXlFbGVtZW50LmRpc2FibGVEZXNpZ25BY3Rpb25zID09PSB0cnVlKSByZXR1cm47XG4gIHN1cnZleUVsZW1lbnQuYWxsb3dpbmdPcHRpb25zID0ge1xuICAgIGFsbG93RGVsZXRlOiB0cnVlLFxuICAgIGFsbG93RWRpdDogdHJ1ZSxcbiAgICBhbGxvd1Nob3dFZGl0b3I6IHRydWUsXG4gICAgYWxsb3dDb3B5OiB0cnVlLFxuICAgIGFsbG93QWRkVG9Ub29sYm94OiB0cnVlLFxuICAgIGFsbG93RHJhZ2dpbmc6IHRydWUsXG4gICAgYWxsb3dDaGFuZ2VUeXBlOiB0cnVlLFxuICAgIGFsbG93U2hvd0hpZGVUaXRsZTogdHJ1ZSxcbiAgICBhbGxvd0NoYW5nZVJlcXVpcmVkOiB0cnVlLFxuICB9O1xuICBzdXJ2ZXlFbGVtZW50LmRyYWdEcm9wSGVscGVyVmFsdWUgPSBudWxsO1xuICBzdXJ2ZXlFbGVtZW50LmRyYWdEcm9wSGVscGVyID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChzdXJ2ZXlFbGVtZW50LmRyYWdEcm9wSGVscGVyVmFsdWUgPT0gbnVsbCkge1xuICAgICAgc3VydmV5RWxlbWVudC5kcmFnRHJvcEhlbHBlclZhbHVlID0gZ2V0U3VydmV5KHN1cnZleUVsZW1lbnQpW1xuICAgICAgICBcImRyYWdEcm9wSGVscGVyXCJcbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBzdXJ2ZXlFbGVtZW50LmRyYWdEcm9wSGVscGVyVmFsdWU7XG4gIH07XG4gIHN1cnZleUVsZW1lbnQucmVuZGVyZWRFbGVtZW50ID0gbnVsbDtcbiAgc3VydmV5RWxlbWVudC5rb0lzRHJhZ2dpbmcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgc3VydmV5RWxlbWVudC5rb0lzU2VsZWN0ZWQgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgc3VydmV5RWxlbWVudC5rb0lzRHJhZ2dpbmcuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgIGlmIChzdXJ2ZXlFbGVtZW50LnJlbmRlcmVkRWxlbWVudCkge1xuICAgICAgc3VydmV5RWxlbWVudC5yZW5kZXJlZEVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IG5ld1ZhbHVlID8gMC40IDogMTtcbiAgICB9XG4gIH0pO1xuICBzdXJ2ZXlFbGVtZW50LmtvSXNTZWxlY3RlZC5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgaWYgKHN1cnZleUVsZW1lbnQucmVuZGVyZWRFbGVtZW50KSB7XG4gICAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgICAgc3VydmV5RWxlbWVudC5yZW5kZXJlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChcbiAgICAgICAgICBcInN2ZF9xX3NlbGVjdGVkXCIsXG4gICAgICAgICAgXCJzdmQtbWFpbi1ib3JkZXItY29sb3JcIlxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VydmV5RWxlbWVudC5yZW5kZXJlZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgICBcInN2ZF9xX3NlbGVjdGVkXCIsXG4gICAgICAgICAgXCJzdmQtbWFpbi1ib3JkZXItY29sb3JcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBZnRlclJlbmRlckhhbmRsZXIoXG4gIGNyZWF0b3I6IGFueSxcbiAgc3VydmV5OiBTdXJ2ZXlGb3JEZXNpZ25lclxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBlbGVtZW50T25BZnRlclJlbmRlcmluZyhcbiAgICBkb21FbGVtZW50OiBhbnksXG4gICAgc3VydmV5RWxlbWVudDogYW55LFxuICAgIGlzUGFuZWw6IGJvb2xlYW4sXG4gICAgZGlzYWJsZTogYm9vbGVhblxuICApIHtcbiAgICBpZiAoc3VydmV5RWxlbWVudC5kaXNhYmxlRGVzaWduQWN0aW9ucyA9PT0gdHJ1ZSkgcmV0dXJuO1xuICAgIHN1cnZleUVsZW1lbnQucmVuZGVyZWRFbGVtZW50ID0gZG9tRWxlbWVudDtcbiAgICBzdXJ2ZXlFbGVtZW50LnJlbmRlcmVkRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwic3ZkX3F1ZXN0aW9uXCIpO1xuICAgIGlmIChTdHlsZXNNYW5hZ2VyLmN1cnJlbnRUaGVtZSgpID09PSBcImJvb3RzdHJhcFwiKSB7XG4gICAgICBzdXJ2ZXlFbGVtZW50LnJlbmRlcmVkRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwic3ZkLWRhcmstYmctY29sb3JcIik7XG4gICAgfVxuICAgIHN1cnZleUVsZW1lbnQucmVuZGVyZWRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJzdmRfcV9kZXNpZ25fYm9yZGVyXCIpO1xuXG4gICAgdmFyIGlzUm93TGF5b3V0ID1cbiAgICAgICFzdXJ2ZXlFbGVtZW50LmdldExheW91dFR5cGUgfHwgc3VydmV5RWxlbWVudC5nZXRMYXlvdXRUeXBlKCkgPT0gXCJyb3dcIjtcbiAgICB2YXIgb3B0ID0gc3VydmV5RWxlbWVudC5hbGxvd2luZ09wdGlvbnM7XG4gICAgb3B0LmFsbG93Q29weSA9IG9wdC5hbGxvd0NvcHkgJiYgaXNSb3dMYXlvdXQ7XG4gICAgb3B0LmFsbG93QWRkVG9Ub29sYm94ID0gb3B0LmFsbG93QWRkVG9Ub29sYm94ICYmIGlzUm93TGF5b3V0O1xuICAgIG9wdC5hbGxvd0NoYW5nZVR5cGUgPSBvcHQuYWxsb3dDaGFuZ2VUeXBlICYmIGlzUm93TGF5b3V0O1xuICAgIG9wdC5hbGxvd1Nob3dIaWRlVGl0bGUgPSBvcHQuYWxsb3dTaG93SGlkZVRpdGxlICYmIGlzUm93TGF5b3V0O1xuICAgIG9wdC5hbGxvd0NoYW5nZVJlcXVpcmVkID0gb3B0LmFsbG93Q2hhbmdlUmVxdWlyZWQgJiYgaXNSb3dMYXlvdXQ7XG5cbiAgICBnZXRTdXJ2ZXkoc3VydmV5RWxlbWVudCkudXBkYXRlRWxlbWVudEFsbG93aW5nT3B0aW9ucyhzdXJ2ZXlFbGVtZW50KTtcbiAgICBpZiAoc3VydmV5RWxlbWVudC5rb0lzU2VsZWN0ZWQoKSkge1xuICAgICAgc3VydmV5RWxlbWVudC5yZW5kZXJlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChcbiAgICAgICAgXCJzdmRfcV9zZWxlY3RlZFwiLFxuICAgICAgICBcInN2ZC1tYWluLWJvcmRlci1jb2xvclwiXG4gICAgICApO1xuICAgIH1cbiAgICBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgIFwiYXJpYS1sYWJlbFwiLFxuICAgICAgc3VydmV5RWxlbWVudC50aXRsZSArIFwiIFwiICsgc3VydmV5RWxlbWVudC5nZXRUeXBlKClcbiAgICApO1xuICAgIGRvbUVsZW1lbnQudGFiSW5kZXggPSBcIjBcIjtcbiAgICBkb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLCBmdW5jdGlvbiAoZXYpIHtcbiAgICAgIHZhciBjaGFyID0gZXYud2hpY2ggfHwgZXYua2V5Q29kZTtcbiAgICAgIGlmIChjaGFyID09PSAxMyB8fCBjaGFyID09PSAyNykge1xuICAgICAgICBkb21FbGVtZW50LmNsaWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgZG9tRWxlbWVudC5vbmNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmICghZVtcIm1hcmtFdmVudFwiXSkge1xuICAgICAgICBlW1wibWFya0V2ZW50XCJdID0gdHJ1ZTtcbiAgICAgICAgaWYgKHN1cnZleUVsZW1lbnQucGFyZW50KSB7XG4gICAgICAgICAgc3VydmV5RWxlbWVudC5zZWxlY3RlZE9uQ2xpY2sgPSB0cnVlO1xuICAgICAgICAgIGdldFN1cnZleShzdXJ2ZXlFbGVtZW50KVtcInNlbGVjdGVkRWxlbWVudFwiXSA9IHN1cnZleUVsZW1lbnQ7XG4gICAgICAgICAgc3VydmV5RWxlbWVudC5zZWxlY3RlZE9uQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgZG9tRWxlbWVudC5vbnBvaW50ZXJkb3duID0gZG9tRWxlbWVudC5vbmNsaWNrO1xuICAgIGlmICghaXNQYW5lbCkge1xuICAgICAgdmFyIGNoaWxkcyA9IGRvbUVsZW1lbnQuY2hpbGROb2RlcztcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghIWNoaWxkc1tpXS5zdHlsZSkge1xuICAgICAgICAgIGNoaWxkc1tpXS5zdHlsZS5wb2ludGVyRXZlbnRzID0gXCJub25lXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNyZWF0b3IucmVhZE9ubHkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBrby50YXNrcy5ydW5FYXJseSgpO1xuICAgICAgICBhZGRBZG9ybmVyKGRvbUVsZW1lbnQsIHN1cnZleUVsZW1lbnQpO1xuICAgICAgfSwgMSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VydmV5RWxlbWVudC5kcmFnRHJvcEhlbHBlcigpLmF0dGFjaFRvRWxlbWVudChkb21FbGVtZW50LCBzdXJ2ZXlFbGVtZW50KTtcbiAgICBkb21FbGVtZW50LnRhYmluZGV4ID0gXCIwXCI7XG4gICAgZG9tRWxlbWVudC5vbmtleXVwID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBhY3RpdmVFbGVtZW50ID0gISFkb2N1bWVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgaWYgKFxuICAgICAgICAhIWFjdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgISFhY3RpdmVFbGVtZW50W1wiZGF0YXNldFwiXSAmJlxuICAgICAgICBhY3RpdmVFbGVtZW50W1wiZGF0YXNldFwiXS5zdmRJbmZvID09PSBcImFkb3JuZXJcIlxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBjaGFyID0gZS53aGljaCB8fCBlLmtleUNvZGU7XG4gICAgICBpZiAoY2hhciA9PT0gMHgxMyB8fCBjaGFyID09PSAweDIwKSB7XG4gICAgICAgIGRvbUVsZW1lbnQuY2xpY2soKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIC8vIGVsLm9ua2V5ZG93biA9IGZ1bmN0aW9uKGUpIHtcbiAgICAvLyAgIGlmIChlLndpdGNoID09IDQ2KSBnZXRTdXJ2ZXkoc3VydmV5RWxlbWVudCkuZGVsZXRlQ3VycmVudE9iamVjdENsaWNrKCk7XG4gICAgLy8gICByZXR1cm4gdHJ1ZTtcbiAgICAvLyB9O1xuICAgIGRvbUVsZW1lbnQub25kYmxjbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBnZXRTdXJ2ZXkoc3VydmV5RWxlbWVudCkuZG9FbGVtZW50RG91YmxlQ2xpY2soc3VydmV5RWxlbWVudCk7XG4gICAgfTtcbiAgICB2YXIgc2V0VGFiSW5kZXggPSAoZWxlbWVudCkgPT4ge1xuICAgICAgZWxlbWVudC50YWJJbmRleCA9IC0xO1xuICAgIH07XG4gICAgW1wiaW5wdXRcIiwgXCJzZWxlY3RcIiwgXCJ0ZXh0YXJlYVwiXS5mb3JFYWNoKChzZWwpID0+IHtcbiAgICAgIHZhciBlbGVtZW50cyA9IGRvbUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWwpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBzZXRUYWJJbmRleChlbGVtZW50c1tpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBrby50YXNrcy5ydW5FYXJseSgpO1xuICAgICAgYWRkQWRvcm5lcihkb21FbGVtZW50LCBzdXJ2ZXlFbGVtZW50KTtcbiAgICB9LCAxKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFmdGVyUmVuZGVyUGFnZUhhbmRsZXIoXG4gIGNyZWF0b3I6IGFueSxcbiAgc3VydmV5OiBTdXJ2ZXlGb3JEZXNpZ25lclxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBlbGVtZW50T25BZnRlclJlbmRlcmluZyhkb21FbGVtZW50OiBhbnksIHBhZ2U6IGFueSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAga28udGFza3MucnVuRWFybHkoKTtcblxuICAgICAgcGFnZS5yZW5kZXJlZEVsZW1lbnQgPSBkb21FbGVtZW50O1xuICAgICAgZG9tRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwic3ZkX3BhZ2VcIik7XG4gICAgICBkb21FbGVtZW50Lm9uY2xpY2sgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoIWVbXCJtYXJrRXZlbnRcIl0pIHtcbiAgICAgICAgICBlW1wibWFya0V2ZW50XCJdID0gdHJ1ZTtcbiAgICAgICAgICBnZXRTdXJ2ZXkocGFnZSlbXCJzZWxlY3RlZEVsZW1lbnRcIl0gPSBwYWdlO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBkb21FbGVtZW50Lm9uZGJsY2xpY2sgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBnZXRTdXJ2ZXkocGFnZSkuZG9FbGVtZW50RG91YmxlQ2xpY2socGFnZSk7XG4gICAgICB9O1xuXG4gICAgICBhZGRBZG9ybmVyKGRvbUVsZW1lbnQsIHBhZ2UpO1xuICAgIH0sIDEpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWZ0ZXJSZW5kZXJIZWFkZXJIYW5kbGVyKFxuICBjcmVhdG9yOiBhbnksXG4gIHN1cnZleTogU3VydmV5Rm9yRGVzaWduZXJcbikge1xuICByZXR1cm4gZnVuY3Rpb24gZWxlbWVudE9uQWZ0ZXJSZW5kZXJpbmcoZG9tRWxlbWVudDogYW55LCBzdXJ2ZXk6IGFueSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAga28udGFza3MucnVuRWFybHkoKTtcbiAgICAgIGRvbUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInN2ZF9zdXJ2ZXlfaGVhZGVyXCIpO1xuICAgICAgYWRkQWRvcm5lcihkb21FbGVtZW50LCBzdXJ2ZXkpO1xuICAgIH0sIDEpO1xuICB9O1xufVxuXG52YXIgYWRvcm5lcnNDb25maWc6IHsgW2luZGV4OiBzdHJpbmddOiBhbnlbXSB9ID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFkb3JuZXIobmFtZSwgYWRvcm5lcikge1xuICBpZiAoIWFkb3JuZXJzQ29uZmlnW25hbWVdKSB7XG4gICAgYWRvcm5lcnNDb25maWdbbmFtZV0gPSBbXTtcbiAgfVxuICBhZG9ybmVyc0NvbmZpZ1tuYW1lXS5wdXNoKGFkb3JuZXIpO1xuICBpZiAodHlwZW9mIGFkb3JuZXIub25SZWdpc3RlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYWRvcm5lci5vblJlZ2lzdGVyKCk7XG4gIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVBZG9ybmVycyhuYW1lczogc3RyaW5nW10gPSB1bmRlZmluZWQpIHtcbiAgaWYgKG5hbWVzID09PSB1bmRlZmluZWQpIHtcbiAgICBuYW1lcyA9IE9iamVjdC5rZXlzKGFkb3JuZXJzQ29uZmlnKTtcbiAgfVxuICAobmFtZXMgfHwgW10pLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICB2YXIgYWRvcm5lcnM6IGFueSA9IGFkb3JuZXJzQ29uZmlnW25hbWVdO1xuICAgIChhZG9ybmVycyB8fCBbXSkuZm9yRWFjaCgoYWRvcm5lcikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBhZG9ybmVyLm9uVW5yZWdpc3RlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGFkb3JuZXIub25VbnJlZ2lzdGVyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgZGVsZXRlIGFkb3JuZXJzQ29uZmlnW25hbWVdO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb25VcGRhdGVRdWVzdGlvbkNzc0NsYXNzZXMoc3VydmV5LCBvcHRpb25zKSB7XG4gIHZhciBjbGFzc2VzID0gb3B0aW9ucy5wYW5lbCA/IG9wdGlvbnMuY3NzQ2xhc3Nlcy5wYW5lbCA6IG9wdGlvbnMuY3NzQ2xhc3NlcztcbiAgY2xhc3NlcyA9IG9wdGlvbnMucGFnZSA/IG9wdGlvbnMuY3NzQ2xhc3Nlcy5wYWdlIDogY2xhc3NlcztcbiAgdmFyIHN1cnZleUVsZW1lbnQgPSBvcHRpb25zLnF1ZXN0aW9uIHx8IG9wdGlvbnMucGFuZWwgfHwgb3B0aW9ucy5wYWdlO1xuICBhZGRBZG9ybmVyTWFya2VyQ2xhc3NlcyhjbGFzc2VzLCBzdXJ2ZXlFbGVtZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEFkb3JuZXJNYXJrZXJDbGFzc2VzKGNsYXNzZXM6IGFueSwgc3VydmV5RWxlbWVudDogYW55KSB7XG4gIE9iamVjdC5rZXlzKGFkb3JuZXJzQ29uZmlnKS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgYWRvcm5lcnNDb25maWdbZWxlbWVudF0uZm9yRWFjaCgoYWRvcm5lcikgPT4ge1xuICAgICAgdmFyIGNsYXNzZXNFbGVtZW50TmFtZSA9IGFkb3JuZXIuZ2V0RWxlbWVudE5hbWUoc3VydmV5RWxlbWVudCk7XG4gICAgICB2YXIgYWRvcm5lck1hcmtlckNsYXNzID0gYWRvcm5lci5nZXRNYXJrZXJDbGFzcyhzdXJ2ZXlFbGVtZW50KTtcbiAgICAgIGNsYXNzZXNbY2xhc3Nlc0VsZW1lbnROYW1lXSA9IGFwcGx5QWRvcm5lckNsYXNzKFxuICAgICAgICBjbGFzc2VzW2NsYXNzZXNFbGVtZW50TmFtZV0sXG4gICAgICAgIGFkb3JuZXJNYXJrZXJDbGFzc1xuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUFkb3JuZXJDbGFzcyhjbGFzc2VzLCBhZG9ybmVyQ2xhc3MpIHtcbiAgdmFyIHJlc3VsdCA9IGNsYXNzZXM7XG5cbiAgaWYgKCEhYWRvcm5lckNsYXNzKSB7XG4gICAgcmVzdWx0ID0gISFyZXN1bHQgPyByZXN1bHQgKyBcIiBcIiArIGFkb3JuZXJDbGFzcyA6IGFkb3JuZXJDbGFzcztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGZpbHRlck5lc3RlZFF1ZXN0aW9ucyhyb290UXVlc3Rpb25Ob2RlLCBlbGVtZW50cykge1xuICB2YXIgdGFyZ2V0RWxlbWVudHMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBxdWVzdGlvbkVsZW1lbnQgPSBmaW5kUGFyZW50Tm9kZShcInN2ZF9xdWVzdGlvblwiLCBlbGVtZW50c1tpXSk7XG4gICAgaWYgKHF1ZXN0aW9uRWxlbWVudCA9PT0gcm9vdFF1ZXN0aW9uTm9kZSkge1xuICAgICAgdGFyZ2V0RWxlbWVudHMucHVzaChlbGVtZW50c1tpXSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0YXJnZXRFbGVtZW50cztcbn1cbmZ1bmN0aW9uIGZpbHRlclBhZ2VFbGVtZW50cyhlbGVtZW50cykge1xuICB2YXIgdGFyZ2V0RWxlbWVudHMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBxdWVzdGlvbkVsZW1lbnQgPSBmaW5kUGFyZW50Tm9kZShcInN2ZF9xdWVzdGlvblwiLCBlbGVtZW50c1tpXSk7XG4gICAgaWYgKHF1ZXN0aW9uRWxlbWVudCA9PT0gbnVsbCkge1xuICAgICAgdGFyZ2V0RWxlbWVudHMucHVzaChlbGVtZW50c1tpXSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0YXJnZXRFbGVtZW50cztcbn1cblxuZnVuY3Rpb24gYWRkQWRvcm5lcihub2RlLCBtb2RlbCkge1xuICBjb25zdCBhbGxvd0VkaXQgPVxuICAgICEhbW9kZWwgJiZcbiAgICAoKCEhbW9kZWwuYWxsb3dpbmdPcHRpb25zICYmICEhbW9kZWwuYWxsb3dpbmdPcHRpb25zLmFsbG93RWRpdCkgfHxcbiAgICAgIG1vZGVsLmFsbG93aW5nT3B0aW9ucyA9PT0gdW5kZWZpbmVkKTtcbiAgY29uc3Qgc3VydmV5ID0gZ2V0U3VydmV5KG1vZGVsKTtcbiAgY29uc3QgZWRpdG9yID0gISFzdXJ2ZXkgJiYgc3VydmV5LmdldEVkaXRvciAmJiBzdXJ2ZXkuZ2V0RWRpdG9yKCk7XG4gIGNvbnN0IGlzUmVhZE9ubHkgPSAhYWxsb3dFZGl0IHx8ICghIWVkaXRvciAmJiBlZGl0b3IucmVhZE9ubHkpO1xuICBPYmplY3Qua2V5cyhhZG9ybmVyc0NvbmZpZykuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgIGFkb3JuZXJzQ29uZmlnW2VsZW1lbnRdLmZvckVhY2goKGFkb3JuZXIpID0+IHtcbiAgICAgIHZhciBlbGVtZW50Q2xhc3MgPSBhZG9ybmVyLmdldE1hcmtlckNsYXNzKG1vZGVsKTtcbiAgICAgIGlmICghIWVsZW1lbnRDbGFzcykge1xuICAgICAgICB2YXIgZWxlbWVudHMgPSBub2RlLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgXCIuXCIgKyBlbGVtZW50Q2xhc3MucmVwbGFjZSgvXFxzL2csIFwiLlwiKVxuICAgICAgICApO1xuICAgICAgICB2YXIgdGVtcCA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGVtcC5wdXNoKGVsZW1lbnRzW2ldKTtcbiAgICAgICAgICBpZiAoaXNSZWFkT25seSAmJiAhYWRvcm5lci5yZW5kZXJSZWFkT25seSAmJiBlbGVtZW50c1tpXS5jbGFzc0xpc3QpIHtcbiAgICAgICAgICAgIGVsZW1lbnRzW2ldLmNsYXNzTGlzdC5yZW1vdmUoZWxlbWVudENsYXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzUmVhZE9ubHkgJiYgIWFkb3JuZXIucmVuZGVyUmVhZE9ubHkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudHMgPSB0ZW1wO1xuICAgICAgICBpZiAobm9kZS5jbGFzc05hbWUuc3BsaXQoXCIgXCIpLmluZGV4T2YoZWxlbWVudENsYXNzKSAhPT0gLTEpIHtcbiAgICAgICAgICBlbGVtZW50cy51bnNoaWZ0KG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb2RlbC5nZXRUeXBlKCkgIT09IFwicGFnZVwiICYmIG1vZGVsLmdldFR5cGUoKSAhPT0gXCJzdXJ2ZXlcIikge1xuICAgICAgICAgIGVsZW1lbnRzID0gZmlsdGVyTmVzdGVkUXVlc3Rpb25zKG5vZGUsIGVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9kZWwuZ2V0VHlwZSgpID09PSBcInBhZ2VcIikge1xuICAgICAgICAgIGVsZW1lbnRzID0gZmlsdGVyUGFnZUVsZW1lbnRzKGVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgZWxlbWVudHMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgbm9kZS5jbGFzc05hbWUuaW5kZXhPZihlbGVtZW50Q2xhc3MpICE9PSAtMVxuICAgICAgICApIHtcbiAgICAgICAgICBlbGVtZW50cyA9IFtub2RlXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmIChpc1JlYWRPbmx5KSB7XG4gICAgICAgICAgICBhZG9ybmVyLnJlbmRlclJlYWRPbmx5ICYmXG4gICAgICAgICAgICAgIGFkb3JuZXIucmVuZGVyUmVhZE9ubHkoZWxlbWVudHMsIG1vZGVsLCBlZGl0b3IpO1xuICAgICAgICAgIH0gZWxzZSBhZG9ybmVyLmFmdGVyUmVuZGVyKGVsZW1lbnRzLCBtb2RlbCwgZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuU3VydmV5LlBhZ2UucHJvdG90eXBlW1wib25DcmVhdGluZ1wiXSA9IGZ1bmN0aW9uICgpIHtcbiAgcGFuZWxCYXNlT25DcmVhdGluZyh0aGlzKTtcbn07XG5cblN1cnZleS5QYWdlLnByb3RvdHlwZVtcIm9uQWZ0ZXJSZW5kZXJQYWdlXCJdID0gZnVuY3Rpb24gKGVsKSB7XG4gIGlmICghZ2V0U3VydmV5KHRoaXMpLmlzRGVzaWduTW9kZSkgcmV0dXJuO1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBkcmFnRHJvcEhlbHBlciA9IGdldFN1cnZleSh0aGlzKVtcImRyYWdEcm9wSGVscGVyXCJdO1xuICB0aGlzLmRyYWdFbnRlckNvdW50ZXIgPSAwO1xuICBlbC5vbmRyYWdlbnRlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHNlbGYuZHJhZ0VudGVyQ291bnRlcisrO1xuICB9O1xuICBlbC5vbmRyYWdsZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgc2VsZi5kcmFnRW50ZXJDb3VudGVyLS07XG4gICAgaWYgKHNlbGYuZHJhZ0VudGVyQ291bnRlciA9PT0gMCkgZHJhZ0Ryb3BIZWxwZXIuZG9MZWF2ZVBhZ2UoZSk7XG4gIH07XG4gIGVsLm9uZHJhZ292ZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcbiAgZWwub25kcm9wID0gZnVuY3Rpb24gKGUpIHtcbiAgICBkcmFnRHJvcEhlbHBlci5kb0Ryb3AoZSk7XG4gIH07XG59O1xuXG5TdXJ2ZXkuUGFuZWwucHJvdG90eXBlW1wib25DcmVhdGluZ1wiXSA9IGZ1bmN0aW9uICgpIHtcbiAgcGFuZWxCYXNlT25DcmVhdGluZyh0aGlzKTtcbiAgZWxlbWVudE9uQ3JlYXRpbmcodGhpcyk7XG59O1xuXG5TdXJ2ZXkuUGFuZWwucHJvdG90eXBlW1wib25TZWxlY3RlZEVsZW1lbnRDaGFuZ2VkXCJdID0gZnVuY3Rpb24gKCkge1xuICBpZiAoZ2V0U3VydmV5KHRoaXMpID09IG51bGwpIHJldHVybjtcbiAgdGhpcy5rb0lzU2VsZWN0ZWQoZ2V0U3VydmV5KHRoaXMpW1wic2VsZWN0ZWRFbGVtZW50VmFsdWVcIl0gPT0gdGhpcyk7XG59O1xuXG5pZiAoISFTdXJ2ZXlbXCJGbG93UGFuZWxcIl0pIHtcbiAgU3VydmV5W1wiRmxvd1BhbmVsXCJdLnByb3RvdHlwZVtcIm9uQ3JlYXRpbmdcIl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgLy9UT0RPXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IFwiRW50ZXIgaGVyZSB0ZXh0IG9yIGRyb3AgYSBxdWVzdGlvblwiO1xuICAgIGVsZW1lbnRPbkNyZWF0aW5nKHRoaXMpO1xuICB9O1xuICBTdXJ2ZXlbXCJGbG93UGFuZWxcIl0ucHJvdG90eXBlW1wib25TZWxlY3RlZEVsZW1lbnRDaGFuZ2VkXCJdID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChnZXRTdXJ2ZXkodGhpcykgPT0gbnVsbCkgcmV0dXJuO1xuICAgIHRoaXMua29Jc1NlbGVjdGVkKGdldFN1cnZleSh0aGlzKVtcInNlbGVjdGVkRWxlbWVudFZhbHVlXCJdID09IHRoaXMpO1xuICB9O1xufVxuXG52YXIgcXVlc3Rpb25Qcm90b3R5cGUgPSAhIVN1cnZleVtcIlF1ZXN0aW9uQmFzZVwiXVxuICA/IFN1cnZleVtcIlF1ZXN0aW9uQmFzZVwiXS5wcm90b3R5cGVcbiAgOiBTdXJ2ZXkuUXVlc3Rpb24ucHJvdG90eXBlO1xuXG5xdWVzdGlvblByb3RvdHlwZVtcIm9uQ3JlYXRpbmdcIl0gPSBmdW5jdGlvbiAoKSB7XG4gIGVsZW1lbnRPbkNyZWF0aW5nKHRoaXMpO1xufTtcblxudmFyIHBhZ2VQcm90b3R5cGUgPSBTdXJ2ZXkuUGFnZS5wcm90b3R5cGU7XG5cbnBhZ2VQcm90b3R5cGVbXCJvbkNyZWF0aW5nXCJdID0gZnVuY3Rpb24gKCkge1xuICBwYWdlT25DcmVhdGluZyh0aGlzKTtcbn07XG5cbnF1ZXN0aW9uUHJvdG90eXBlW1wib25TZWxlY3RlZEVsZW1lbnRDaGFuZ2VkXCJdID0gZnVuY3Rpb24gKCkge1xuICBpZiAoZ2V0U3VydmV5KHRoaXMpID09IG51bGwpIHJldHVybjtcbiAgdGhpcy5rb0lzU2VsZWN0ZWQoZ2V0U3VydmV5KHRoaXMpW1wic2VsZWN0ZWRFbGVtZW50VmFsdWVcIl0gPT0gdGhpcyk7XG59O1xuXG5TdXJ2ZXkuUXVlc3Rpb25TZWxlY3RCYXNlSW1wbGVtZW50b3IucHJvdG90eXBlW1wib25DcmVhdGVkXCJdID0gZnVuY3Rpb24gKCkge1xuICB2YXIgcTogYW55ID0gdGhpcy5xdWVzdGlvbjtcbiAgdmFyIHVwZGF0ZVRyaWdnZXJGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZighIXEgJiYgISFxLnN1cnZleSAmJiAhcS5zdXJ2ZXkuaXNEZXNpZ25Nb2RlKSByZXR1cm47XG4gICAgc2V0VGltZW91dCgoKSA9PiBxW1wia29FbGVtZW50VHlwZVwiXS5ub3RpZnlTdWJzY3JpYmVycygpLCAwKTtcbiAgfTtcbiAgW1xuICAgIFwiY2hvaWNlc1wiLFxuICAgIFwic2hvd090aGVySXRlbVwiLFxuICAgIFwic2hvd0NvbW1lbnRBcmVhXCIsXG4gICAgXCJzaG93Tm9uZUl0ZW1cIixcbiAgICBcInNob3dTZWxlY3RBbGxJdGVtXCIsXG4gICAgXCJjb2xDb3VudFwiLFxuICAgIFwidGl0bGVMb2NhdGlvblwiLFxuICAgIFwicmF0ZVZhbHVlc1wiLFxuICAgIFwiY2hvaWNlc0Zyb21RdWVzdGlvblwiLFxuICAgIFwiY29udGVudE1vZGVcIixcbiAgXS5mb3JFYWNoKChwcm9wZXJ0eU5hbWUpID0+XG4gICAgdGhpcy5xdWVzdGlvbi5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcbiAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgIHVwZGF0ZVRyaWdnZXJGdW5jdGlvbixcbiAgICAgIFwia29FbGVtZW50VHlwZV9UcmlnZ2VyXCJcbiAgICApXG4gICk7XG59O1xuXG5TdXJ2ZXkuUXVlc3Rpb25SYXRpbmdJbXBsZW1lbnRvci5wcm90b3R5cGVbXCJvbkNyZWF0ZWRcIl0gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBxOiBhbnkgPSB0aGlzLnF1ZXN0aW9uO1xuICB2YXIgdXBkYXRlVHJpZ2dlckZ1bmN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gcVtcImtvRWxlbWVudFR5cGVcIl0ubm90aWZ5U3Vic2NyaWJlcnMoKSwgMCk7XG4gICAgcS5sb2NTdHJzQ2hhbmdlZCgpO1xuICB9O1xuICBbXG4gICAgXCJyYXRlVmFsdWVzXCIsXG4gIF0uZm9yRWFjaCgocHJvcGVydHlOYW1lKSA9PlxuICAgIHRoaXMucXVlc3Rpb24ucmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICB1cGRhdGVUcmlnZ2VyRnVuY3Rpb24sXG4gICAgICBcImtvRWxlbWVudFR5cGVfVHJpZ2dlclwiXG4gICAgKVxuICApO1xufTtcblxuU3VydmV5LkxvY2FsaXphYmxlU3RyaW5nW1wiZWRpdGFibGVSZW5kZXJlclwiXSA9XG4gIFN1cnZleS5Mb2NhbGl6YWJsZVN0cmluZ1tcImRlZmF1bHRSZW5kZXJlclwiXTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8c3ZnIHN0eWxlPVxcXCJkaXNwbGF5Om5vbmU7XFxcIj48ZGVmcz48cmVjdCBpZD1cXFwiZGV2aWNlLWwtYlxcXCIgd2lkdGg9XFxcIjMzMFxcXCIgaGVpZ2h0PVxcXCI2NTFcXFwiIHg9XFxcIjcxOS41XFxcIiB5PVxcXCIyOTguNVxcXCIgcng9XFxcIjIwXFxcIj4gPC9yZWN0PjxmaWx0ZXIgaWQ9XFxcImRldmljZS1sLWFcXFwiIHdpZHRoPVxcXCIxNDUuNSVcXFwiIGhlaWdodD1cXFwiMTIzJVxcXCIgeD1cXFwiLTIyLjclXFxcIiB5PVxcXCItMTEuNSVcXFwiIGZpbHRlclVuaXRzPVxcXCJvYmplY3RCb3VuZGluZ0JveFxcXCI+IDxmZU9mZnNldCBpbj1cXFwiU291cmNlQWxwaGFcXFwiIHJlc3VsdD1cXFwic2hhZG93T2Zmc2V0T3V0ZXIxXFxcIj48L2ZlT2Zmc2V0PjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XFxcIjI1XFxcIiBpbj1cXFwic2hhZG93T2Zmc2V0T3V0ZXIxXFxcIiByZXN1bHQ9XFxcInNoYWRvd0JsdXJPdXRlcjFcXFwiPjwvZmVHYXVzc2lhbkJsdXI+PGZlQ29sb3JNYXRyaXggdmFsdWVzPVxcXCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjEgMFxcXCIgaW49XFxcInNoYWRvd0JsdXJPdXRlcjFcXFwiPjwvZmVDb2xvck1hdHJpeD48L2ZpbHRlcj48cmVjdCBpZD1cXFwiZGV2aWNlLXAtYlxcXCIgd2lkdGg9XFxcIjMzMFxcXCIgaGVpZ2h0PVxcXCI2NTFcXFwiIHg9XFxcIjEyMFxcXCIgeT1cXFwiNDU4XFxcIiByeD1cXFwiMjBcXFwiPiA8L3JlY3Q+PGZpbHRlciBpZD1cXFwiZGV2aWNlLXAtYVxcXCIgd2lkdGg9XFxcIjE0NS41JVxcXCIgaGVpZ2h0PVxcXCIxMjMlXFxcIiB4PVxcXCItMjIuNyVcXFwiIHk9XFxcIi0xMS41JVxcXCIgZmlsdGVyVW5pdHM9XFxcIm9iamVjdEJvdW5kaW5nQm94XFxcIj4gPGZlT2Zmc2V0IGluPVxcXCJTb3VyY2VBbHBoYVxcXCIgcmVzdWx0PVxcXCJzaGFkb3dPZmZzZXRPdXRlcjFcXFwiPjwvZmVPZmZzZXQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cXFwiMjVcXFwiIGluPVxcXCJzaGFkb3dPZmZzZXRPdXRlcjFcXFwiIHJlc3VsdD1cXFwic2hhZG93Qmx1ck91dGVyMVxcXCI+PC9mZUdhdXNzaWFuQmx1cj48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9XFxcIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMSAwXFxcIiBpbj1cXFwic2hhZG93Qmx1ck91dGVyMVxcXCI+PC9mZUNvbG9yTWF0cml4PjwvZmlsdGVyPjwvZGVmcz48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYWN0aW9uYWRkdG90b29sYm94XFxcIj48cGF0aCBkPVxcXCJNNy4zIDhIMXYyaDUuMmMuMi0uNy42LTEuNCAxLjEtMnpNMTAgNi4yVjVIMXYyaDcuM2MuNS0uMyAxLjEtLjYgMS43LS44ek0xIDJoOXYySDF6TTExLjUgN0M5IDcgNyA5IDcgMTEuNVM5IDE2IDExLjUgMTZzNC41LTIgNC41LTQuNVMxNCA3IDExLjUgN3ptMi41IDVoLTJ2MmgtMXYtMkg5di0xaDJWOWgxdjJoMnYxelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1hY3Rpb25ib2xkXFxcIj48cGF0aCBkPVxcXCJNMSAxdjVoMlY0aDN2OEg0djJoN3YtMkg5VjRoM3YyaDJWMXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYWN0aW9uY29udmVydHRvXFxcIj48cGF0aCBkPVxcXCJNMyAxMEwwIDdoNnpNMTMgN2wzIDNoLTZ6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTggNGMxLjUgMCAyLjguOCAzLjQgMmgyLjJjLS44LTIuMy0zLTQtNS43LTRDNC43IDIgMiA0LjcgMiA4aDJjMC0yLjIgMS44LTQgNC00ek0xMS45IDljLS40IDEuNy0yIDMtMy45IDMtMSAwLTEuOS0uNC0yLjYtMUgyLjhjMSAxLjggMyAzIDUuMiAzIDMgMCA1LjQtMi4yIDUuOS01aC0yelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1hY3Rpb25jb3B5XFxcIj48cGF0aCBkPVxcXCJNMiA2aDl2OUgyelxcXCI+PC9wYXRoPjxwYXRoIGQ9XFxcIk01IDN2Mmg3djdoMlYzelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1hY3Rpb25jdXRcXFwiPjxwYXRoIGQ9XFxcIk0yLjYgMi45YzAtLjguMS0xLjMuNC0xLjcuMi0uMy40LS4zLjYgMCAxLjYgMi40IDMuMyA0LjkgNC45IDcuMy4yLjMuNC43LjUgMSAuMy42LjUuOCAxLjIuNy42LS4xIDEuMi0uMSAxLjcgMCAxLjIuMyAyLjEgMS41IDIgMi44IDAgMS4yLTEgMi4zLTIuMiAyLjUtMS4xLjItMi0uMi0yLjYtMS0uNS0uNi0uNy0xLjQtLjctMi4yIDAtLjYtLjItMS4yLS41LTEuNy0uMy0uNC0uNi0uOC0xLjEtMS4xLS42LS4yLTEuMS0uNy0xLjUtMS4yQzQuNSA3LjIgMy43IDYgMy4yIDQuOGMtLjMtLjctLjUtMS40LS42LTEuOXptNy4xIDEwYzAgLjkuNyAxLjYgMS42IDEuNi45IDAgMS42LS43IDEuNi0xLjYgMC0uOS0uNy0xLjYtMS42LTEuNi0uOSAwLTEuNi43LTEuNiAxLjZ6TTcuNSA5LjFjLjMgMCAuNS0uMi41LS41cy0uMi0uNS0uNS0uNS0uNS4yLS41LjUuMi41LjUuNXpcXFwiPjwvcGF0aD48cGF0aCBkPVxcXCJNNS45IDkuNmwxLjIuOXMuMS4xIDAgLjJjLS40LjYtLjUgMS4zLS41IDItLjEuOS0uNCAxLjctMS4xIDIuMy0uOC43LTEuNy45LTIuNy41LTEtLjQtMS42LTEuMS0xLjctMi4yLS4yLTEuNiAxLTMuMSAyLjYtMy4xLjQgMCAuOCAwIDEuMS4xLjYgMCAuOC0uMSAxLjEtLjd6bS0uNiAzLjNjMC0uOS0uNy0xLjYtMS42LTEuNi0uOSAwLTEuNy43LTEuNyAxLjYgMCAuOS43IDEuNiAxLjYgMS42IDEgLjEgMS43LS43IDEuNy0xLjZ6TTkuMyA4LjdjLS41LS43LS45LTEuNC0xLjQtMi4xdi0uMmMxLjItMS43IDIuMy0zLjUgMy41LTUuMi4xLS4yLjMtLjIuNSAwIC4zLjMuNC44LjUgMS4yLjEuOC0uMiAxLjYtLjUgMi40LS42IDEuMS0xLjMgMi4yLTIuMSAzLjMtLjIuMi0uMy40LS41LjZ6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWFjdGlvbmRlbGV0ZVxcXCI+PHBhdGggZD1cXFwiTTggMkM0LjcgMiAyIDQuNyAyIDhzMi43IDYgNiA2IDYtMi43IDYtNi0yLjctNi02LTZ6bTMgOGwtMSAxLTItMi0yIDItMS0xIDItMi0yLTIgMS0xIDIgMiAyLTIgMSAxLTIgMiAyIDJ6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMzIgMzJcXFwiIGlkPVxcXCJpY29uLWFjdGlvbmRyYWdlbGVtZW50XFxcIj48cGF0aCBkPVxcXCJNNCAxMGgyNGEyIDIgMCAwIDAgMC00SDRhMiAyIDAgMCAwIDAgNHptMjQgNEg0YTIgMiAwIDAgMCAwIDRoMjRhMiAyIDAgMCAwIDAtNHptMCA4SDRhMiAyIDAgMCAwIDAgNGgyNGEyIDIgMCAwIDAgMC00elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1hY3Rpb25lZGl0ZWxlbWVudFxcXCI+PHBhdGggZD1cXFwiTTEgMTVoNGwtNC00ek03IDVsLTUgNSA0IDQgNS01ek0xNCA2bC00LTQtMiAyIDQgNHpNOSAxNGg1djFIOXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYWN0aW9uZm9udGxhcmdlclxcXCI+PHBhdGggZD1cXFwiTTcgNkg1bC0zIDhIMXYxaDR2LTFINGwuNjctMmgyLjY3TDggMTRIN3YxaDR2LTFoLTFMNyA2em0tMiA1bDEtMyAxIDNINXpNMTUgM2gtMlYxaC0ydjJIOXYyaDJ2MmgyVjVoMnpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYWN0aW9uZm9udHNtYWxsZXJcXFwiPjxwYXRoIGQ9XFxcIk03IDVINWwtMyA4SDF2MWg0di0xSDRsLjY3LTJoMi42N0w4IDEzSDd2MWg0di0xaC0xTDcgNXptLTIgNWwxLTMgMSAzSDV6TTkgMmg2djJIOXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYWN0aW9uaGlkZXRpdGxlXFxcIj48cGF0aCBkPVxcXCJNMTUuNyA3LjdjLS4xLS4xLTEuNS0xLjctMy40LTNMMTUgMmwtMS0xLTIuOSAyLjlDMTAuMSAzLjQgOSAzIDggMyA0LjMgMyAuNCA3LjUuMyA3LjdMMCA4bC4zLjNjLjEuMSAxLjUgMS43IDMuNCAzTDEgMTRsMSAxIDIuOS0yLjljMSAuNSAyLjEuOSAzLjEuOSAzLjcgMCA3LjYtNC41IDcuNy00LjdMMTYgOGwtLjMtLjN6TTIgOGMuOC0uOCAzLjQtMyA2LTMgLjYgMCAuNiAwIDAgMC0xLjcgMC0zIDEuMy0zIDMgMCAuNi4yIDEuMS40IDEuNmwtLjYuNkMzLjUgOS40IDIuNSA4LjUgMiA4em02IDNjLS42IDAtLjYgMCAwIDAgMS43IDAgMy0xLjMgMy0zIDAtLjYtLjItMS4xLS40LTEuNmwuNi0uNmMxLjMuOCAyLjMgMS43IDIuOCAyLjItLjguOC0zLjQgMy02IDN6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWFjdGlvbmlzcmVxdWlyZWRcXFwiPjxjaXJjbGUgY3g9XFxcIjcuNVxcXCIgY3k9XFxcIjEzLjVcXFwiIHI9XFxcIjEuNVxcXCI+PC9jaXJjbGU+PHBhdGggZD1cXFwiTTggMTBsMS05SDZsMSA5elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1hY3Rpb25pdGFsaWNcXFwiPjxwYXRoIGQ9XFxcIk0xNCAxSDJMMSA0aDFsLjMzLTFIN0w1IDEzSDN2MWg2di0xSDdMOSAzaDQuMzNMMTMgNGgxbDEtM3pcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYWN0aW9ubm90cmVxdWlyZWRcXFwiPjxwYXRoIGQ9XFxcIk0xNCAxTDguNCA2LjYgOSAxSDZsLjggNy4yTDEgMTRsMSAxTDE1IDJ6XFxcIj48L3BhdGg+PGNpcmNsZSBjeD1cXFwiNy41XFxcIiBjeT1cXFwiMTMuNVxcXCIgcj1cXFwiMS41XFxcIj48L2NpcmNsZT48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYWN0aW9ucGFzdGVcXFwiPjxwYXRoIGQ9XFxcIk0xMCAxSDF2MTFoM1Y0aDZWMXpNNyAzSDRWMmgzdjF6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTEwIDVINXYxMGg4VjhsLTMtM3ptMiA5SDZWNmg0djJoMnY2elxcXCI+PC9wYXRoPjxwYXRoIGQ9XFxcIk03IDEwaDR2MUg3ek03IDEyaDR2MUg3elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1hY3Rpb25yZWRvXFxcIj48cGF0aCBkPVxcXCJNMiA4YzAgMy4zIDIuNyA2IDYgNiAyLjQgMCA0LjQtMS40IDUuNC0zLjRsLTEuNy0xLjFjLS42IDEuNC0yIDIuNS0zLjcgMi41LTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTRjMS4xIDAgMi4xLjUgMi44IDEuMkw5IDdoNVYybC0xLjggMS44QzExLjEgMi43IDkuNyAyIDggMiA0LjcgMiAyIDQuNyAyIDh6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWFjdGlvbnNldHRpbmdzXFxcIj48cGF0aCBkPVxcXCJNMTUgOVY3aC0yLjFjLS4xLS42LS40LTEuMi0uNy0xLjhsMS41LTEuNS0xLjQtMS40LTEuNSAxLjVjLS42LS4zLTEuMi0uNi0xLjgtLjdWMUg3djIuMWMtLjYuMS0xLjIuNC0xLjguN0wzLjggMi4zIDIuMyAzLjhsMS41IDEuNWMtLjMuNS0uNiAxLjEtLjcgMS43SDF2MmgyLjFjLjEuNi40IDEuMi43IDEuOGwtMS41IDEuNSAxLjQgMS40IDEuNS0xLjVjLjUuMyAxLjEuNiAxLjguN1YxNWgydi0yLjFjLjYtLjEgMS4yLS40IDEuOC0uN2wxLjUgMS41IDEuNC0xLjQtMS41LTEuNWMuMy0uNS42LTEuMS43LTEuOEgxNXptLTcgMmMtMS43IDAtMy0xLjMtMy0zczEuMy0zIDMtMyAzIDEuMyAzIDMtMS4zIDMtMyAzelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1hY3Rpb25zaG93dGl0bGVcXFwiPjxwYXRoIGQ9XFxcIk0xNS43IDcuN0MxNS42IDcuNSAxMS43IDMgOCAzUy40IDcuNS4zIDcuN0wwIDhsLjMuM2MuMS4yIDQgNC43IDcuNyA0LjdzNy42LTQuNSA3LjctNC43TDE2IDhsLS4zLS4zek04IDExYy0yLjYgMC01LjItMi4yLTYtMyAuOC0uOCAzLjQtMyA2LTNzNS4yIDIuMiA2IDNjLS44LjgtMy40IDMtNiAzelxcXCI+PC9wYXRoPjxjaXJjbGUgY3g9XFxcIjhcXFwiIGN5PVxcXCI4XFxcIiByPVxcXCIzXFxcIj48L2NpcmNsZT48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYWN0aW9udW5kZXJsaW5lXFxcIj48cGF0aCBkPVxcXCJNMiAxM2gxMnYxSDJ6TTEzIDFIMnYzaDFWM2g0djhINXYxaDZ2LTFIOVYzaDR2MWgxVjF6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWFjdGlvbnVuZG9cXFwiPjxwYXRoIGQ9XFxcIk04IDJjLTEuNyAwLTMuMS43LTQuMiAxLjhMMiAydjVoNUw1LjIgNS4yQzUuOSA0LjUgNi45IDQgOCA0YzIuMiAwIDQgMS44IDQgNHMtMS44IDQtNCA0Yy0xLjcgMC0zLjEtMS4xLTMuNy0yLjVsLTEuNyAxLjFjMSAyIDMgMy40IDUuNCAzLjQgMy4zIDAgNi0yLjcgNi02cy0yLjctNi02LTZ6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWFkZFxcXCI+PHBhdGggZD1cXFwiTTE0IDdoLTRWM0g3djRIM3YzaDR2NGgzdi00aDR6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTAgMTBcXFwiIGlkPVxcXCJpY29uLWFycm93X2Rvd25fMTB4MTBcXFwiPjxwYXRoIGQ9XFxcIk0yIDJMMCA0bDUgNSA1LTUtMi0yLTMgM3pcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxMCAxMFxcXCIgaWQ9XFxcImljb24tYXJyb3dfdXBfMTB4MTBcXFwiPjxwYXRoIGQ9XFxcIk04IDlsMi0yLTUtNS01IDUgMiAyIDMtM3pcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAzNCAzNFxcXCIgaWQ9XFxcImljb24tYXJyb3dkb3duXzM0eDM0XFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MHtmaWxsOiNmZmZ9XV0+PC9zdHlsZT48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTIgMTZsMi0yIDMgMyAzLTMgMiAyLTUgNXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAyNCAyNFxcXCIgaWQ9XFxcImljb24tY2xvdWRfMjR4MjRcXFwiPjxzdHlsZT48IVtDREFUQVsuc3Qwe2ZpbGw6IzFhYjM5NH1dXT48L3N0eWxlPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk03NSA2LjVDNzUgNC42IDczLjQgMyA3MS41IDNTNjggNC42IDY4IDYuNWMwIDEuNC44IDIuNiAyIDMuMi0uMiAxLS43IDEuOC0xLjcgMi4zLS40LjItLjkuNC0xLjMuNi0uOC4zLTEuNy42LTIuNS45LS4yLjEtLjMuMS0uNS4ydi02YzEuMi0uNiAyLTEuOCAyLTMuMkM2NiAyLjYgNjQuNCAxIDYyLjUgMVM1OSAyLjYgNTkgNC41YzAgMS40LjggMi42IDIgMy4ydjkuN2MtMS4yLjYtMiAxLjgtMiAzLjIgMCAxLjggMS42IDMuNCAzLjUgMy40czMuNS0xLjYgMy41LTMuNWMwLTEuNC0uOC0yLjYtMi0zLjIuMS0uNS40LTEgLjktMS4yLjMtLjEuNi0uMyAxLS40IDEuMS0uNCAyLjEtLjcgMy4yLTEuMiAxLjQtLjYgMi41LTEuNSAzLjEtMi45LjItLjQuMy0xLjEuNC0xLjhDNzQgOS4zIDc1IDguMSA3NSA2LjV6TTYyLjUgM2MuOCAwIDEuNS43IDEuNSAxLjVTNjMuMyA2IDYyLjUgNiA2MSA1LjMgNjEgNC41IDYxLjcgMyA2Mi41IDN6bTAgMTljLS44IDAtMS41LS43LTEuNS0xLjVzLjctMS41IDEuNS0xLjUgMS41LjcgMS41IDEuNS0uNyAxLjUtMS41IDEuNXpNNzAgNi41YzAtLjguNy0xLjUgMS41LTEuNXMxLjUuNyAxLjUgMS41UzcyLjMgOCA3MS41IDggNzAgNy4zIDcwIDYuNXpNOSAxOGwxIDEgMi0ydjZoMnYtNmwyIDIgMS0xLTQtNHpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMjAuOSA3LjljLjEtLjMuMS0uNi4xLS45IDAtMi44LTIuMi01LTUtNS0yLjYgMC00LjcgMS45LTQuOSA0LjRDMTAuMyA1LjYgOS4yIDUgOCA1IDUuOCA1IDQgNi44IDQgOXYuMmMtMS43LjQtMyAxLjMtMyAzLjggMCAyLjMgMi40IDMgNCAzaDNsNS01IDUgNWMyLjggMCA1LTEuMiA1LTQgMC0xLjctLjgtMy4xLTIuMS00LjF6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWF1dG9jb21wbGV0ZVxcXCI+PHBhdGggZD1cXFwiTTE1IDZIN3YxMGg5di0xSDh2LTJoN3YyaDFWNmgtMXptMCA2SDh2LTJoN3Yyem0wLTNIOFY3aDd2MnpNMyAxMEgxVjRoMlYzSDB2OGgzek0xNCA1aDFWM0g2djFoOHpNNSAxaDFWMEgzdjFoMXYxMUgzdjFoM3YtMUg1elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1iYXJyYXRpbmdcXFwiPjxwYXRoIGQ9XFxcIk0xMi4xIDE1bC00LjYtMi40TDIuOSAxNWwuOS01LjFMMCA2LjNsNS4yLS43TDcuNSAxbDIuMyA0LjYgNS4yLjctMy44IDMuNi45IDUuMXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tZGF0ZXBpY2tlclxcXCI+PHBhdGggZD1cXFwiTTMgN2gydjJIM3pNNyAxMWgydjJIN3pNMyAxMWgydjJIM3pNMTEgMTFoMnYyaC0yek0xMSA3aDJ2MmgtMnpNMTAgNkg2djRoNFY2ek05IDlIN1Y3aDJ2MnpNNCAwaDF2M0g0ek0xMSAwaDF2M2gtMXpcXFwiPjwvcGF0aD48cGF0aCBkPVxcXCJNMTMgMnYyaC0zVjJINnYySDNWMkgwdjE0aDE2VjJoLTN6bTIgMTNIMVY1aDE0djEwelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1lZGl0b3JcXFwiPjxwYXRoIGQ9XFxcIk0xIDNoMnY1SDJ2MWg0VjhINVYzaDJ2MWgxVjFIMHYzaDF6TTEwIDVoNnYxaC02ek0xMCA4aDZ2MWgtNnpNMCAxMWgxNnYxSDB6TTAgMTRoMTZ2MUgwelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1taWNyb3Bob25lXFxcIj48cGF0aCBkPVxcXCJNMTEgMy40QzExIDIuMSA5LjkgMSA4LjYgMWgtLjJDNy4xIDEgNiAyLjEgNiAzLjRWNWg1VjMuNHpNOC40IDEwaC4zQzkuOSAxMCAxMSA4LjkgMTEgNy42VjZINnYxLjZDNiA4LjkgNy4xIDEwIDguNCAxMHpcXFwiPjwvcGF0aD48cGF0aCBkPVxcXCJNMTIgNnYuOWMwIDIuMi0xLjYgNC4xLTMuNSA0LjFTNSA5LjEgNSA2LjlWNkg0djFjMCAyLjUgMS44IDQuNiA0IDQuOVYxNEg2djFoNXYtMUg5di0yLjFjMi4yLS4zIDQtMi40IDQtNC45VjZoLTF6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLW5vdWlzbGlkZXJcXFwiPjxwYXRoIGQ9XFxcIk0wIDEwaDE2djJIMHpNMiA0djNsMiAyIDItMlY0ek0xMCA0djNsMiAyIDItMlY0elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1zaWduYXR1cmVwYWRcXFwiPjxwYXRoIGQ9XFxcIk0wIDB2MTVoMTZWMEgwem0xNSAxNEgxVjFoMTR2MTN6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTIuNiAxMC4yYy4xLjEuMS4yLjIuMy0uMi4zLS40LjYtLjcuOGwuNy43Yy4yLS4zLjUtLjYuNy0uOWguMWMuMi4xLjkuMSAxLjEuMSAxLjUtLjEgMi4zLS41IDIuOC0uOGguMWwuNi4zaC42Yy43LS4xIDEuOS0uOCAyLjUtMS4yLjItLjEuNS0uMy41LS4zdi4yYzAgLjIgMCAuMy4xLjUuMS4zLjMuNC42LjUuMiAwIC40IDAgLjUtLjEuMS0uMy44LTEgMS0xLjNWOGMtLjEuMS0uMy4yLS40LjQtLjIuMi0uNS40LS44LjZsLS4xLjF2LS4zYzAtLjIgMC0uNC0uMS0uNS0uMS0uNC0uNS0uNi0uOS0uNC0uMS4xLS40LjItLjYuNC0uOS42LTIgMS4yLTIuMiAxLjMtLjEgMC0uMi4xLS40LjFsLjEtLjFjLjMtLjMuNy0uNi45LTEgLjItLjMuMy0uNi4zLS45IDAtLjQgMC0uNy0uMi0xLjEtLjEtLjMtLjQtLjYtLjgtLjctLjItLjEtLjQtLjEtLjcgMC0uMi4xLS41LjItLjcuNC0uMy4zLS41LjYtLjYgMS0uMS4yLS4xLjUtLjEuNyAwIC40IDAgLjcuMSAxLjEgMCAuMi4xLjMuMi41LS42LjMtMS41LjctMi44LjZ2LS4xYzAtLjEuMS0uMy4yLS40LjQtLjcuNy0xLjQuOS0yLjEuMi0uNi4zLTEuMy4zLTEuOVY0LjNjMC0uMy0uMS0uNi0uMy0uOC0uMi0uNC0uNi0uNi0xLS41LS4zLjEtLjUuMi0uNy40LS4zLjItLjYuNS0uOC45LS4yLjUtLjQgMS0uNiAxLjYtLjEuNS0uMiAxLS4yIDEuNXMwIDEgLjEgMS40Yy4xLjYuMyAxIC41IDEuNHptNS0yLjVjLjEtLjIuMi0uNS40LS42LjItLjIuNC0uMi43LS4yLjEgMCAuMi4xLjIuMi4xLjMuMS42LS4xLjgtLjIuMy0uNC42LS42LjgtLjIuMi0uMy4zLS41LjQtLjEtLjEtLjEtLjItLjEtLjR2LTF6TTMgNi43Yy4xLS42LjMtMS4zLjYtMS44LjEtLjMuMy0uNS41LS44LjEgMCAuMi0uMS4yLS4xLjEtLjEuMiAwIC4zLjEuMS4xLjEuMy4xLjQgMCAuNC4xLjkgMCAxLjMgMCAuOC0uMiAxLjYtLjUgMi4zLS4zLjUtLjUgMS0uOCAxLjUtLjEgMC0uMi0uMS0uMi0uMi0uMi0uNi0uMy0xLjItLjMtMS44IDAtLjMuMS0uNi4xLS45elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1zb3J0YWJsZWpzXFxcIj48cGF0aCBkPVxcXCJNNyAxaDl2Mkg3ek05IDZoN3YySDl6TTExIDExaDV2MmgtNXpNNSAxMGwxIDFjLTIuMiAwLTQtMS44LTQtNCAwLTEuOSAxLjMtMy40IDMtMy45di0yQzIuMiAxLjUgMCA0IDAgN2MwIDMuMyAyLjcgNiA1LjkgNkg2bC0xIDEgMSAxIDMtMy0zLTMtMSAxelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi10YWdib3hcXFwiPjxwYXRoIGQ9XFxcIk0xNSAxMUgwVjVoMTV2NnpNMSAxMGgxM1Y2SDF2NHpcXFwiPjwvcGF0aD48cGF0aCBkPVxcXCJNMiA3aDR2Mkgyek03IDdoNHYySDd6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMjQgMjRcXFwiIGlkPVxcXCJpY29uLWRlbGV0ZV8yNHgyNFxcXCI+PHBhdGggZmlsbC1ydWxlPVxcXCJldmVub2RkXFxcIiBjbGlwLXJ1bGU9XFxcImV2ZW5vZGRcXFwiIGZpbGw9XFxcIiMxQUIzOTRcXFwiIGQ9XFxcIk02IDhsMi0yIDQgNCA0LTQgMiAyLTQgNCA0IDQtMiAyLTQtNC00IDQtMi0yIDQtNC00LTR6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWRlbGV0ZS1jcm9zc1xcXCI+PHBhdGggZD1cXFwiTTE1IDRsLTMtMy00IDQtNC00LTMgMyA0IDQtNCA0IDMgMyA0LTQgNCA0IDMtMy00LTR6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTQgMTRcXFwiIGlkPVxcXCJpY29uLWRvdHNcXFwiPjxjaXJjbGUgY3g9XFxcIjEuNVxcXCIgY3k9XFxcIjYuNVxcXCIgcj1cXFwiMS41XFxcIj48L2NpcmNsZT48Y2lyY2xlIGN4PVxcXCI2LjVcXFwiIGN5PVxcXCI2LjVcXFwiIHI9XFxcIjEuNVxcXCI+PC9jaXJjbGU+PGNpcmNsZSBjeD1cXFwiMTEuNVxcXCIgY3k9XFxcIjYuNVxcXCIgcj1cXFwiMS41XFxcIj48L2NpcmNsZT48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNCAxNFxcXCIgaWQ9XFxcImljb24tZG90c2FjdGl2ZVxcXCI+PGNpcmNsZSBjeD1cXFwiMS41XFxcIiBjeT1cXFwiNi41XFxcIiByPVxcXCIxLjVcXFwiPjwvY2lyY2xlPjxjaXJjbGUgY3g9XFxcIjYuNVxcXCIgY3k9XFxcIjYuNVxcXCIgcj1cXFwiMS41XFxcIj48L2NpcmNsZT48Y2lyY2xlIGN4PVxcXCIxMS41XFxcIiBjeT1cXFwiNi41XFxcIiByPVxcXCIxLjVcXFwiPjwvY2lyY2xlPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1kcmFnLWl0ZW1cXFwiPjxjaXJjbGUgY3g9XFxcIjVcXFwiIGN5PVxcXCIyXFxcIiByPVxcXCIyXFxcIj48L2NpcmNsZT48Y2lyY2xlIGN4PVxcXCI1XFxcIiBjeT1cXFwiOFxcXCIgcj1cXFwiMlxcXCI+PC9jaXJjbGU+PGNpcmNsZSBjeD1cXFwiNVxcXCIgY3k9XFxcIjE0XFxcIiByPVxcXCIyXFxcIj48L2NpcmNsZT48Y2lyY2xlIGN4PVxcXCIxMVxcXCIgY3k9XFxcIjJcXFwiIHI9XFxcIjJcXFwiPjwvY2lyY2xlPjxjaXJjbGUgY3g9XFxcIjExXFxcIiBjeT1cXFwiOFxcXCIgcj1cXFwiMlxcXCI+PC9jaXJjbGU+PGNpcmNsZSBjeD1cXFwiMTFcXFwiIGN5PVxcXCIxNFxcXCIgcj1cXFwiMlxcXCI+PC9jaXJjbGU+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMjQgMjRcXFwiIGlkPVxcXCJpY29uLWVkaXRcXFwiPjxnIGZpbGwtcnVsZT1cXFwiZXZlbm9kZFxcXCIgY2xpcC1ydWxlPVxcXCJldmVub2RkXFxcIj48cGF0aCBkPVxcXCJNMTkgNGwtOSA5IDQgNCA5LTktNC00ek04IDE1djRoNGwtNC00ek0xIDE3djJoNHYtMkgxelxcXCI+PC9wYXRoPjwvZz48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tYm9vbGVhblxcXCI+PHBhdGggZD1cXFwiTTAgMTZoMTBWNkgwdjEwem0yLTZsMiAyIDQtNCAxIDEtNSA1LTMtMyAxLTF6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTUgMXY0aDFWMmg4djhoLTN2MWg0VjF6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWNoZWNrYm94XFxcIj48cGF0aCBkPVxcXCJNMSAxdjE0aDE0VjFIMXptNiAxMEw0IDhsMS0xIDIgMiA0LTQgMSAxLTUgNXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tY29tbWVudFxcXCI+PHBhdGggZD1cXFwiTTggMkM0LjEgMiAxIDQuMiAxIDdjMCAxLjkgMS41IDMuNiAzLjggNC40QzQuNiAxMy4xIDMgMTQgMyAxNHMxLjUtLjIgMi43LS45Yy40LS4yLjktLjggMS4zLTEuMi4zLjEuNi4xIDEgLjEgMy45IDAgNy0yLjIgNy01cy0zLjEtNS03LTV6TTQgOGMtLjYgMC0xLS40LTEtMXMuNC0xIDEtMSAxIC40IDEgMS0uNCAxLTEgMXptNCAwYy0uNiAwLTEtLjQtMS0xcy40LTEgMS0xIDEgLjQgMSAxLS40IDEtMSAxem00IDBjLS42IDAtMS0uNC0xLTFzLjQtMSAxLTEgMSAuNCAxIDEtLjQgMS0xIDF6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWRlZmF1bHRcXFwiPjxwYXRoIGQ9XFxcIk0wIDRoNFYwSDB2NHptNiAwaDRWMEg2djR6bTYtNHY0aDRWMGgtNHpNMCAxMGg0VjZIMHY0em02IDBoNFY2SDZ2NHptNiAwaDRWNmgtNHY0ek0wIDE2aDR2LTRIMHY0em02IDBoNHYtNEg2djR6bTYgMGg0di00aC00djR6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWRyb3Bkb3duXFxcIj48cGF0aCBkPVxcXCJNMSAxdjZoMTRWMUgxem0xMCA1TDggM2wxLTEgMiAyIDItMiAxIDEtMyAzem0tOCA1aDEyVjlIM3Yyem0wIDRoMTJ2LTJIM3YyelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1leHByZXNzaW9uXFxcIj48cGF0aCBkPVxcXCJNMTUgOWwtNCA0LTItMi0xIDEgMyAzIDUtNXpNNCA0djFoMnYxSDN2M2g0VjRINHptMiA0SDRWN2gydjF6TTggOGgxdjFIOHpcXFwiPjwvcGF0aD48cGF0aCBkPVxcXCJNMSAxaDEzdjdsMS0xVjBIMHYxMmg2bDEtMUgxelxcXCI+PC9wYXRoPjxwYXRoIGQ9XFxcIk0xMCA0aDF2MWgtMXpNOSA1aDF2MUg5ek0xMSA1aDF2MWgtMXpNMTEgM2gxdjFoLTF6TTkgM2gxdjFIOXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tZmlsZVxcXCI+PHBhdGggZD1cXFwiTTkgMHY1aDV6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTggMEgydjE2aDEyVjZIOHpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tZmxvd3BhbmVsXFxcIj48cGF0aCBkPVxcXCJNMTQgNGgydjFoLTJ6TTAgNGgydjFIMHpNMTQgNmgydjFoLTJ6TTAgNmgydjFIMHpNMTQgOGgydjFoLTJ6TTAgOGgydjFIMHpNMTQgMTBoMnYxaC0yek0wIDEwaDJ2MUgwek0wIDJoMTZ2MUgwek0wIDBoMTZ2MUgwek0wIDEyaDE2djFIMHpNMCAxNGgxNnYxSDB6TTExIDRMNyA4IDUgNiA0IDdsMyAzIDUtNXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24taHRtbFxcXCI+PHBhdGggZD1cXFwiTTQgNEwwIDhsNCA0IDEtMS0zLTMgMy0zek0xMSA0bC0xIDEgMyAzLTMgMyAxIDEgNC00elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1pbWFnZVxcXCI+PHBhdGggZD1cXFwiTTIgM3Y5aDExVjNIMnptNCAxYy42IDAgMSAuNCAxIDFzLS40IDEtMSAxLTEtLjQtMS0xIC40LTEgMS0xem0tMyA3bDItMyAxIDEgMi0zIDQgNUgzelxcXCI+PC9wYXRoPjxwYXRoIGQ9XFxcIk0xIDEzdi0ySDB2M2gzdi0xek0xIDRWMmgyVjFIMHYzek0xMiAxdjFoMnYyaDFWMXpNMTQgMTNoLTJ2MWgzdi0zaC0xelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1pbWFnZXBpY2tlclxcXCI+PHBhdGggZD1cXFwiTTE1IDE0SDBWMWgxNXYxM3pNMSAxM2gxM1YySDF2MTF6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTIgM3Y5aDExVjNIMnptNCAxYy42IDAgMSAuNCAxIDFzLS40IDEtMSAxLTEtLjQtMS0xIC40LTEgMS0xem0tMyA3bDItMyAxIDEgMi0zIDQgNUgzelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1tYXRyaXhcXFwiPjxwYXRoIGQ9XFxcIk00IDFDMi4zIDEgMSAyLjMgMSA0czEuMyAzIDMgMyAzLTEuMyAzLTMtMS4zLTMtMy0zem0wIDVjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelxcXCI+PC9wYXRoPjxjaXJjbGUgY3g9XFxcIjRcXFwiIGN5PVxcXCI0XFxcIiByPVxcXCIxXFxcIj48L2NpcmNsZT48cGF0aCBkPVxcXCJNMTIgN2MxLjcgMCAzLTEuMyAzLTNzLTEuMy0zLTMtMy0zIDEuMy0zIDMgMS4zIDMgMyAzem0wLTVjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yek00IDljLTEuNyAwLTMgMS4zLTMgM3MxLjMgMyAzIDMgMy0xLjMgMy0zLTEuMy0zLTMtM3ptMCA1Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNMTIgOWMtMS43IDAtMyAxLjMtMyAzczEuMyAzIDMgMyAzLTEuMyAzLTMtMS4zLTMtMy0zem0wIDVjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1tYXRyaXhkcm9wZG93blxcXCI+PHBhdGggZD1cXFwiTTQgMUMyLjMgMSAxIDIuMyAxIDRzMS4zIDMgMyAzIDMtMS4zIDMtMy0xLjMtMy0zLTN6bTAgNWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XFxcIj48L3BhdGg+PGNpcmNsZSBjeD1cXFwiNFxcXCIgY3k9XFxcIjRcXFwiIHI9XFxcIjFcXFwiPjwvY2lyY2xlPjxwYXRoIGQ9XFxcIk0xMiA3YzEuNyAwIDMtMS4zIDMtM3MtMS4zLTMtMy0zLTMgMS4zLTMgMyAxLjMgMyAzIDN6bTAtNWMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTQgOWMtMS43IDAtMyAxLjMtMyAzczEuMyAzIDMgMyAzLTEuMyAzLTMtMS4zLTMtMy0zem0wIDVjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelxcXCI+PC9wYXRoPjxjaXJjbGUgY3g9XFxcIjRcXFwiIGN5PVxcXCIxMlxcXCIgcj1cXFwiMVxcXCI+PC9jaXJjbGU+PHBhdGggZD1cXFwiTTEyIDljLTEuNyAwLTMgMS4zLTMgM3MxLjMgMyAzIDMgMy0xLjMgMy0zLTEuMy0zLTMtM3ptMCA1Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tbWF0cml4ZHluYW1pY1xcXCI+PHBhdGggZD1cXFwiTTMgMUMxLjMgMSAwIDIuMyAwIDRzMS4zIDMgMyAzIDMtMS4zIDMtMy0xLjMtMy0zLTN6bTAgNWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XFxcIj48L3BhdGg+PGNpcmNsZSBjeD1cXFwiM1xcXCIgY3k9XFxcIjRcXFwiIHI9XFxcIjFcXFwiPjwvY2lyY2xlPjxwYXRoIGQ9XFxcIk0xMSA3YzEuNyAwIDMtMS4zIDMtM3MtMS4zLTMtMy0zLTMgMS4zLTMgMyAxLjMgMyAzIDN6bTAtNWMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTMgOWMtMS43IDAtMyAxLjMtMyAzczEuMyAzIDMgMyAzLTEuMyAzLTMtMS4zLTMtMy0zem0wIDVjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek04IDE1aDJsLTItMnpNOS4wMyAxMS45OWw0LjAzLTQuMDMgMS45OCAxLjk4LTQuMDMgNC4wM3pcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tbXVsdGlwbGV0ZXh0XFxcIj48cGF0aCBkPVxcXCJNMCAydjEyaDE2VjJIMHptNSA5SDJWOWgzdjJ6bTAtNEgyVjVoM3Yyem05IDRIN1Y5aDd2MnptMC00SDdWNWg3djJ6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLXBhbmVsX2R5bmFtaWNcXFwiPjxwYXRoIGQ9XFxcIk0yIDhoMTB2MUgyek0yIDExaDhsMS0xSDJ6TTkgMTZoMmwtMi0yek0xNCA5bC00IDQgMiAyIDQtNHpNMyAzdjJIMmwyIDIgMi0ySDVWM3pNMTEgNVYzSDl2Mkg4bDIgMiAyLTJ6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTEgMWgxMnY3bDEtMVYwSDB2MTRoN2wxLTFIMXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tcGFuZWxcXFwiPjxwYXRoIGQ9XFxcIk0wIDB2MTZoMTZWMEgwem0xNSAxNUgxVjFoMTR2MTR6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTIgMTJoMTJ2Mkgyek0yIDloMTJ2Mkgyek0xMSA4TDggNWgyVjJoMnYzaDJ6TTUgOEwyIDVoMlYyaDJ2M2gyelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1wYW5lbGR5bmFtaWNcXFwiPjxwYXRoIGQ9XFxcIk0yIDhoMTB2MUgyek0yIDExaDhsMS0xSDJ6TTkgMTZoMmwtMi0yek0xNCA5bC00IDQgMiAyIDQtNHpNMyAzdjJIMmwyIDIgMi0ySDVWM3pNMTEgNVYzSDl2Mkg4bDIgMiAyLTJ6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTEgMWgxMnY3bDEtMVYwSDB2MTRoN2wxLTFIMXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tcmFkaW9ncm91cFxcXCI+PHBhdGggZD1cXFwiTTMgMUMxLjMgMSAwIDIuMyAwIDRzMS4zIDMgMyAzIDMtMS4zIDMtMy0xLjMtMy0zLTN6bTAgNGMtLjYgMC0xLS40LTEtMXMuNC0xIDEtMSAxIC40IDEgMS0uNCAxLTEgMXptMCA0Yy0xLjcgMC0zIDEuMy0zIDNzMS4zIDMgMyAzIDMtMS4zIDMtMy0xLjMtMy0zLTN6bTAgNGMtLjYgMC0xLS40LTEtMXMuNC0xIDEtMSAxIC40IDEgMS0uNCAxLTEgMXpNOCAzdjJoOFYzSDh6bTAgMTBoOHYtMkg4djJ6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLXJhbmtpbmdcXFwiPjxwYXRoIGQ9XFxcIk0xNiAwdjNIMFYwaDE2ek0wIDExaDEwVjhIMHYzem0wLTRoMTNWNEgwdjN6bTAgOGg3di0zSDB2M3pcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tcmF0aW5nXFxcIj48cGF0aCBkPVxcXCJNMCA3aDFsMS0xdjVoMVY1SDJMMCA3em01IDVoNVY0SDV2OHptMS01aDJWNkg2VjVoM3YzSDd2MmgydjFINlY3em02LTJ2MWgydjFoLTJ2MWgydjJoLTJ2MWgzVjVoLTN6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLXRleHRcXFwiPjxwYXRoIGQ9XFxcIk0yIDF2M2gxVjNoNHYxMEg1djFoNnYtMUg5VjNoNHYxaDFWMUgyelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDI0IDI0XFxcIiBpZD1cXFwiaWNvbi1mb3JrXzI0eDI0XFxcIj48cGF0aCBvcGFjaXR5PVxcXCIuOVxcXCIgZD1cXFwiTS00MC0yMGMtMS4yIDAtMi0uOS0yLTJ2LTJjMC0xLjEuOS0yIDItMmguMWMxLjEgMCAyIC45IDIgMnYyLjFjLS4xIDEtMSAxLjktMi4xIDEuOXpcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuNVxcXCIgZD1cXFwiTS00MC0yYy0xLjIgMC0yLS45LTItMnYtMmMwLTEuMS45LTIgMi0yaC4xYzEuMSAwIDIgLjkgMiAydjJjLS4xIDEuMS0xIDItMi4xIDJ6XFxcIj48L3BhdGg+PHBhdGggb3BhY2l0eT1cXFwiLjJcXFwiIGQ9XFxcIk0tNTItMTRjMC0xLjIuOS0yIDItMmgyLjFjMS4xIDAgMiAuOSAyIDJ2LjFjMCAxLjEtLjkgMi0yIDJILTUwYy0xLjEtLjEtMi0xLTItMi4xelxcXCI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9XFxcIi43XFxcIiBkPVxcXCJNLTM0LTE0YzAtMS4yLjktMiAyLTJoMi4xYzEuMSAwIDIgLjkgMiAydi4xYzAgMS4xLS45IDItMiAySC0zMmMtMS4xLS4xLTItMS0yLTIuMXpcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuMVxcXCIgZD1cXFwiTS00NC41LTE4LjZjLS44LjgtMi4xLjgtMi44LjFsLTEuMi0xLjJjLS44LS44LS44LTIgMC0yLjhsLjEtLjFjLjgtLjggMi0uOCAyLjggMGwxLjIgMS4yYy43LjguNyAyLjEtLjEgMi44elxcXCI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9XFxcIi42XFxcIiBkPVxcXCJNLTMxLjUtNS41Yy0uOC44LTIuMS44LTIuOC4xbC0xLjItMS4yYy0uOC0uOC0uOC0yIDAtMi44bC4xLS4xYy44LS44IDItLjggMi44IDBsMS4yIDEuMmMuNy44LjcgMi0uMSAyLjh6XFxcIj48L3BhdGg+PHBhdGggb3BhY2l0eT1cXFwiLjNcXFwiIGQ9XFxcIk0tNDguNS01LjVjLS44LS44LS44LTIuMS0uMS0yLjhsMS4yLTEuMmMuOC0uOCAyLS44IDIuOCAwbC4xLjFjLjguOC44IDIgMCAyLjhsLTEuMiAxLjJjLS43LjctMiAuNy0yLjgtLjF6XFxcIj48L3BhdGg+PHBhdGggb3BhY2l0eT1cXFwiLjhcXFwiIGQ9XFxcIk0tMzUuNC0xOC41Yy0uOC0uOC0uOC0yLjEtLjEtMi44bDEuMi0xLjJjLjgtLjggMi0uOCAyLjggMGwuMS4xYy44LjguOCAyIDAgMi44bC0xLjIgMS4yYy0uOC43LTIuMS43LTIuOC0uMXpcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuOVxcXCIgZmlsbD1cXFwiIzlEOUZBMVxcXCIgZD1cXFwiTS0yMi0xM2wyLTIgNCA0IDktOSAyIDItMTEgMTF6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTQxLTE5aC0xLjJjLS4yLS43LS40LTEuMy0uOC0xLjlsLjgtLjhjLjQtLjQuNC0xIDAtMS40bC0uNy0uN2MtLjQtLjQtMS0uNC0xLjQgMGwtLjguOGMtLjYtLjQtMS4yLS42LTEuOS0uOFYtMjVjMC0uNS0uNS0xLTEtMWgtMWMtLjUgMC0xIC41LTEgMXYxLjJjLS43LjItMS4zLjQtMS45LjhsLS44LS44Yy0uNC0uNC0xLS40LTEuNCAwbC0uNy43Yy0uNC40LS40IDEgMCAxLjRsLjguOGMtLjQuNi0uNiAxLjItLjggMS45SDI2Yy0uNSAwLTEgLjUtMSAxdjFjMCAuNS41IDEgMSAxaDEuMmMuMi43LjQgMS4zLjggMS45bC0uOC44Yy0uNC40LS40IDEgMCAxLjRsLjcuN2MuNC40IDEgLjQgMS40IDBsLjgtLjhjLjYuNCAxLjIuNiAxLjkuOHYxLjJjMCAuNS41IDEgMSAxaDFjLjUgMCAxLS41IDEtMXYtMS4yYy43LS4yIDEuMy0uNCAxLjktLjhsLjguOGMuNC40IDEgLjQgMS40IDBsLjctLjdjLjQtLjQuNC0xIDAtMS40bC0uOC0uOGMuNC0uNi42LTEuMi44LTEuOUg0MWMuNSAwIDEtLjUgMS0xdi0xYzAtLjUtLjUtMS0xLTF6bS03LjUgNS41Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDR6XFxcIj48L3BhdGg+PHBhdGggb3BhY2l0eT1cXFwiLjlcXFwiIGZpbGw9XFxcIiM5RDlGQTFcXFwiIGQ9XFxcIk0xMy0xNXYtM2gtMS4yYy0uMS0uNC0uMy0uOC0uNS0xLjJsLjktLjktMi4yLTItLjkuOWMtLjQtLjItLjgtLjQtMS4yLS41Vi0yM0g1djEuMmMtLjQuMS0uOC4zLTEuMi41bC0uOC0uOEwuOC0yMGwuOS45Yy0uMi40LS40LjgtLjUgMS4ySDB2M2gxLjJjLjEuNC4zLjguNSAxLjJsLS45LjdMMy0xMC44bC45LS45Yy40LjIuOC40IDEuMi41djEuMmgzdi0xLjJjLjQtLjEuOC0uMyAxLjItLjVsLjkuOSAyLjEtMi4xLS45LS45Yy4yLS40LjQtLjguNS0xLjJIMTN6bS02LjUgMS41Yy0xLjcgMC0zLTEuMy0zLTNzMS4zLTMgMy0zIDMgMS4zIDMgMy0xLjMgMy0zIDN6XFxcIj48L3BhdGg+PHBhdGggb3BhY2l0eT1cXFwiLjZcXFwiIGZpbGw9XFxcIiM5RDlGQTFcXFwiIGQ9XFxcIk0yMy05di0yaC0xLjFjLS4xLS40LS4yLS43LS40LTFsLjgtLjgtMS40LTEuNC0uOS44Yy0uMy0uMi0uNy0uMy0xLS40Vi0xNWgtMnYxLjFjLS40LjEtLjcuMi0xIC40bC0uOC0uOC0xLjQgMS40LjguOGMtLjIuMy0uMy43LS40IDFIMTN2MmgxLjFjLjEuNC4yLjcuNCAxbC0uOC44IDEuNCAxLjQuOS0uN2MuMy4yLjcuMyAxIC40Vi01aDJ2LTEuMWMuNC0uMS43LS4yIDEtLjRsLjguOCAxLjQtMS40LS44LS45Yy4yLS4zLjMtLjcuNC0xSDIzem0tNSAxYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuNVxcXCIgZmlsbD1cXFwiIzlEOUZBMVxcXCIgZD1cXFwiTS02OS03aDN2NWgtM3pcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuOVxcXCIgZmlsbD1cXFwiIzlEOUZBMVxcXCIgZD1cXFwiTS02OS0yM2gzdjVoLTN6XFxcIj48L3BhdGg+PHBhdGggb3BhY2l0eT1cXFwiLjJcXFwiIGZpbGw9XFxcIiM5RDlGQTFcXFwiIGQ9XFxcIk0tNzIuOTkzLTEzLjk5M3YzaC01di0zelxcXCI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9XFxcIi43XFxcIiBmaWxsPVxcXCIjOUQ5RkExXFxcIiBkPVxcXCJNLTU2Ljk5My0xMy45OTN2M2gtNXYtM3pcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuNlxcXCIgZmlsbD1cXFwiIzlEOUZBMVxcXCIgZD1cXFwiTS02NC42MTUtNy41NDlsMi4xMjEtMi4xMiAzLjUzNiAzLjUzNS0yLjEyMiAyLjEyMXpcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuMVxcXCIgZmlsbD1cXFwiIzlEOUZBMVxcXCIgZD1cXFwiTS03NS45OC0xOC43OTFsMi4xMjEtMi4xMjIgMy41MzYgMy41MzYtMi4xMjIgMi4xMjF6XFxcIj48L3BhdGg+PHBhdGggb3BhY2l0eT1cXFwiLjNcXFwiIGZpbGw9XFxcIiM5RDlGQTFcXFwiIGQ9XFxcIk0tNzIuNTA1LTkuNjY5bDIuMTIxIDIuMTIxLTMuNTM1IDMuNTM2LTIuMTIyLTIuMTIxelxcXCI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9XFxcIi44XFxcIiBmaWxsPVxcXCIjOUQ5RkExXFxcIiBkPVxcXCJNLTYxLjE0LTIwLjkxMmwyLjEyMSAyLjEyMS0zLjUzNSAzLjUzNi0yLjEyMi0yLjEyMXpcXFwiPjwvcGF0aD48cGF0aCBmaWxsPVxcXCIjMUFCMzk0XFxcIiBkPVxcXCJNMjEgNi41QzIxIDQuNiAxOS40IDMgMTcuNSAzUzE0IDQuNiAxNCA2LjVjMCAxLjQuOCAyLjYgMiAzLjItLjIgMS0uNyAxLjgtMS43IDIuMy0uNC4yLS45LjQtMS4zLjYtLjguMy0xLjcuNi0yLjUuOS0uMi4xLS4zLjEtLjUuMnYtNmMxLjItLjYgMi0xLjggMi0zLjJDMTIgMi42IDEwLjQgMSA4LjUgMVM1IDIuNiA1IDQuNWMwIDEuNC44IDIuNiAyIDMuMnY5LjdjLTEuMi42LTIgMS44LTIgMy4yQzUgMjIuNCA2LjYgMjQgOC41IDI0czMuNS0xLjYgMy41LTMuNWMwLTEuNC0uOC0yLjYtMi0zLjIuMS0uNS40LTEgLjktMS4yLjMtLjEuNi0uMyAxLS40IDEuMS0uNCAyLjEtLjcgMy4yLTEuMiAxLjQtLjYgMi41LTEuNSAzLjEtMi45LjItLjQuMy0xLjEuNC0xLjhDMjAgOS4zIDIxIDguMSAyMSA2LjV6TTguNSAzYy44IDAgMS41LjcgMS41IDEuNVM5LjMgNiA4LjUgNiA3IDUuMyA3IDQuNSA3LjcgMyA4LjUgM3ptMCAxOWMtLjggMC0xLjUtLjctMS41LTEuNVM3LjcgMTkgOC41IDE5czEuNS43IDEuNSAxLjVTOS4zIDIyIDguNSAyMnpNMTYgNi41YzAtLjguNy0xLjUgMS41LTEuNXMxLjUuNyAxLjUgMS41UzE4LjMgOCAxNy41IDggMTYgNy4zIDE2IDYuNXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxMiAxMlxcXCIgaWQ9XFxcImljb24tZ2VhclxcXCI+PHBhdGggZD1cXFwiTTEyIDdWNUg5LjljLS4xLS40LS4zLS43LS41LTFsMS41LTEuNS0xLjQtMS40TDggMi42Yy0uMy0uMi0uNi0uNC0xLS41VjBINXYyLjFjLS40LjEtLjcuMy0xIC41TDIuNSAxLjEgMS4xIDIuNSAyLjYgNGMtLjIuMy0uNC42LS41IDFIMHYyaDIuMWMuMS40LjIuNy40IDFMMS4xIDkuNWwxLjQgMS40TDQgOS40Yy4zLjIuNy4zIDEgLjRWMTJoMlY5LjljLjQtLjEuNy0uMiAxLS40TDkuNSAxMWwxLjQtMS40TDkuNCA4Yy4yLS4zLjMtLjcuNC0xSDEyek02IDhjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDEyIDEyXFxcIiBpZD1cXFwiaWNvbi1nZWFyYWN0aXZlXFxcIj48cGF0aCBkPVxcXCJNMTIgN1Y1SDkuOWMtLjEtLjQtLjMtLjctLjUtMWwxLjUtMS41LTEuNC0xLjRMOCAyLjZjLS4zLS4yLS42LS40LTEtLjVWMEg1djIuMWMtLjQuMS0uNy4zLTEgLjVMMi41IDEuMSAxLjEgMi41IDIuNiA0Yy0uMi4zLS40LjYtLjUgMUgwdjJoMi4xYy4xLjQuMi43LjQgMUwxLjEgOS41bDEuNCAxLjRMNCA5LjRjLjMuMi43LjMgMSAuNFYxMmgyVjkuOWMuNC0uMS43LS4yIDEtLjRMOS41IDExbDEuNC0xLjRMOS40IDhjLjItLjMuMy0uNy40LTFIMTJ6TTYgOGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTIgMTJcXFwiIGlkPVxcXCJpY29uLWlucGxhY2VjaGVja1xcXCI+PHBhdGggZD1cXFwiTTIgN2wxLTEgMiAyIDUtNSAxIDEtNiA2elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDEyIDEyXFxcIiBpZD1cXFwiaWNvbi1pbnBsYWNlZGVsZXRlXFxcIj48cGF0aCBkPVxcXCJNMyAyTDIgM2wzIDMtMyAzIDEgMSAzLTMgMyAzIDEtMS0zLTMgMy0zLTEtMS0zIDN6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTIgMTJcXFwiIGlkPVxcXCJpY29uLWlucGxhY2VkcmFnZ2FibGVcXFwiPjxwYXRoIGQ9XFxcIk0wIDRoN3Y3SDB6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTIgM2g2djZoMVYySDJ6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTQgMWg2djZoMVYwSDR6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTIgMTJcXFwiIGlkPVxcXCJpY29uLWlucGxhY2VlZGl0XFxcIj48cGF0aCBkPVxcXCJNMSAxMWgzTDEgOHpNNiAzTDIgN2wzIDMgNC00ek0xMSA0TDggMSA3IDJsMyAzek03IDEwaDV2MUg3elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDEyIDEyXFxcIiBpZD1cXFwiaWNvbi1pbnBsYWNlcGx1c1xcXCI+PHBhdGggZD1cXFwiTTExIDVIN1YxSDV2NEgxdjJoNHY0aDJWN2g0elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE0IDI0XFxcIiBpZD1cXFwiaWNvbi1sZWZ0LWNsb3NlXFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MXtmaWxsOiNmZmZ9XV0+PC9zdHlsZT48cGF0aCBkPVxcXCJNMiAyNGgxMlYwSDJDLjkgMCAwIC45IDAgMnYyMGMwIDEuMS45IDIgMiAyelxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDFcXFwiIGQ9XFxcIk04Ljk2IDUuOTdMMTEgOC4wMiA3LjAyIDEyIDExIDE1Ljk5bC0xLjk4IDEuOTgtNi01Ljk3elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE0IDI0XFxcIiBpZD1cXFwiaWNvbi1sZWZ0LW9wZW5cXFwiPjxzdHlsZT48IVtDREFUQVsuc3Qxe2ZpbGw6I2ZmZn1dXT48L3N0eWxlPjxwYXRoIGQ9XFxcIk0yIDI0aDEyVjBIMkMuOSAwIDAgLjkgMCAydjIwYzAgMS4xLjkgMiAyIDJ6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTUuMDYgNS45N0wzLjAyIDguMDIgNyAxMmwtMy45OCAzLjk5TDUgMTcuOTcgMTEgMTJ6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLWxlZnRcXFwiPjxwYXRoIGQ9XFxcIk0xMSAxMmwtMiAyLTYtNiA2LTYgMiAyLTQgNHpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAyNCAyNFxcXCIgaWQ9XFxcImljb24tbmV3XzI0eDI0XFxcIj48cGF0aCBmaWxsPVxcXCIjMUFCMzk0XFxcIiBkPVxcXCJNMTggMTFoLTVWNmgtM3Y1SDV2M2g1djVoM3YtNWg1elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBpZD1cXFwiaWNvbi1ub25jb21tZXJjaWFsXFxcIj48cGF0aCBkPVxcXCJNOCAwTDAgMTVoMTZMOCAwem0xIDEzSDd2LTJoMnYyem0tMi0zVjVoMnY1SDd6XFxcIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTQgMjRcXFwiIGlkPVxcXCJpY29uLXJpZ2h0LWNsb3NlXFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MXtmaWxsOiNmZmZ9XV0+PC9zdHlsZT48cGF0aCBkPVxcXCJNMTIgMjRIMFYwaDEyYzEuMSAwIDIgLjkgMiAydjIwYzAgMS4xLS45IDItMiAyelxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDFcXFwiIGQ9XFxcIk01LjA0IDUuOTdMMyA4LjAyIDYuOTggMTIgMyAxNS45OWwxLjk4IDEuOTggNi01Ljk3elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE0IDI0XFxcIiBpZD1cXFwiaWNvbi1yaWdodC1vcGVuXFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MXtmaWxsOiNmZmZ9XV0+PC9zdHlsZT48cGF0aCBkPVxcXCJNMTIgMjRIMFYwaDEyYzEuMSAwIDIgLjkgMiAydjIwYzAgMS4xLS45IDItMiAyelxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDFcXFwiIGQ9XFxcIk04Ljk0IDUuOTdsMi4wNCAyLjA1TDcgMTJsMy45OCAzLjk5TDkgMTcuOTcgMyAxMnpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgaWQ9XFxcImljb24tcmlnaHRcXFwiPjxwYXRoIGQ9XFxcIk01IDRsMi0yIDYgNi02IDYtMi0yIDQtNHpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCA4NTAgMTYzMFxcXCIgaWQ9XFxcImljb24tYW5kcm9pZHBob25lXFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MHtmaWxsOiM0MDQwNDB9LnN0MXtmaWxsOnRyYW5zcGFyZW50fS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojNDA0MDQwO3N0cm9rZS13aWR0aDo0O3N0cm9rZS1taXRlcmxpbWl0OjEwfV1dPjwvc3R5bGU+PGcgaWQ9XFxcImFuZHJvaWRwaG9uZS1MYXllcl8xXFxcIj48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNNzcxLjEgMzhjMjIuNiAwIDQxIDE4LjQgNDEgNDF2MTQ5MmMwIDIyLjYtMTguNCA0MS00MSA0MWgtNjk1Yy0yMi42IDAtNDEtMTguNC00MS00MVY3OWMwLTIyLjYgMTguNC00MSA0MS00MWg2OTVtMC00aC02OTVjLTI0LjggMC00NSAyMC4zLTQ1IDQ1djE0OTJjMCAyNC44IDIwLjMgNDUgNDUgNDVoNjk1YzI0LjggMCA0NS0yMC4zIDQ1LTQ1Vjc5YzAtMjQuNy0yMC4yLTQ1LTQ1LTQ1elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDFcXFwiIGQ9XFxcIk02NC4xIDE3NS41aDcxOXYxMjc5aC03MTl6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTc4Mi42IDE3NnYxMjc4aC03MThWMTc2aDcxOG0xLTFoLTcyMHYxMjgwaDcyMFYxNzV6TTQ2NiAxMDEuOGMzLjYgMCA2LjUgMi45IDYuNSA2LjVzLTIuOSA2LjUtNi41IDYuNWgtODRjLTMuNiAwLTYuNS0yLjktNi41LTYuNXMyLjktNi41IDYuNS02LjVoODRtMC00aC04NGMtNS44IDAtMTAuNSA0LjctMTAuNSAxMC41czQuNyAxMC41IDEwLjUgMTAuNWg4NGM1LjggMCAxMC41LTQuNyAxMC41LTEwLjUgMC01LjctNC43LTEwLjUtMTAuNS0xMC41ek0zMzcgMTAxLjhjMy42IDAgNi41IDIuOSA2LjUgNi41cy0yLjkgNi41LTYuNSA2LjVoLTMxYy0zLjYgMC02LjUtMi45LTYuNS02LjVzMi45LTYuNSA2LjUtNi41aDMxbTAtNGgtMzFjLTUuOCAwLTEwLjUgNC43LTEwLjUgMTAuNXM0LjcgMTAuNSAxMC41IDEwLjVoMzFjNS44IDAgMTAuNS00LjcgMTAuNS0xMC41IDAtNS43LTQuNy0xMC41LTEwLjUtMTAuNXpNNTQ3LjUgOTUuM2M3LjIgMCAxMyA1LjggMTMgMTNzLTUuOCAxMy0xMyAxMy0xMy01LjgtMTMtMTMgNS44LTEzIDEzLTEzbTAtNGMtOS40IDAtMTcgNy42LTE3IDE3czcuNiAxNyAxNyAxNyAxNy03LjYgMTctMTctNy42LTE3LTE3LTE3elxcXCI+PC9wYXRoPjxnPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk04MjUuNSAzMDB2MjQ0aC05VjMwMGg5bTQtNGgtMTd2MjUyaDE3VjI5NnpcXFwiPjwvcGF0aD48L2c+PGc+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTgyNS41IDYyN3Y5MWgtOXYtOTFoOW00LTRoLTE3djk5aDE3di05OXpcXFwiPjwvcGF0aD48L2c+PGc+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTE3NS44IDE1MTZoMzJ2NGgtMzJ6TTE3NS44IDE1MjloMzJ2NGgtMzJ6TTE3NS44IDE1NDJoMzJ2NGgtMzJ6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MlxcXCIgZD1cXFwiTTQzNi44IDE1NDVoLTE4Yy0yLjggMC01LTIuMy01LTV2LTE4YzAtMi44IDIuMy01IDUtNWgxOGMyLjggMCA1IDIuMyA1IDV2MThjMCAyLjgtMi4zIDUtNSA1elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk02NzEuNCAxNTE3LjdsLTIuOC0yLjktMTYuNiAxNi42LjIuMS0uMi4yIDE2LjYgMTYuNSAyLjgtMi44LTEzLjktMTMuOXpcXFwiPjwvcGF0aD48L2c+PC9nPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDEwNzAgMTQ4MFxcXCIgaWQ9XFxcImljb24tYW5kcm9pZHRhYmxldFxcXCI+PHN0eWxlPjwhW0NEQVRBWy5zdDB7ZmlsbDp0cmFuc3BhcmVudH0uc3Qxe2ZpbGw6IzQwNDA0MH0uc3QyLC5zdDN7ZmlsbDpub25lO3N0cm9rZTojNDA0MDQwO3N0cm9rZS13aWR0aDo2O3N0cm9rZS1taXRlcmxpbWl0OjEwfS5zdDN7c3Ryb2tlLXdpZHRoOjR9XV0+PC9zdHlsZT48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTM1IDEwMS4xaDc5OXYxMjc5SDEzNXpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QxXFxcIiBkPVxcXCJNOTMzLjUgMTAxLjZ2MTI3OGgtNzk4di0xMjc4aDc5OG0xLTFoLTgwMHYxMjgwaDgwMHYtMTI4MHpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QyXFxcIiBkPVxcXCJNOTczLjUgMTQ1Ni4xaC04ODJjLTI4IDAtNTEtMjIuOS01MS01MVY3NmMwLTI4IDIyLjktNTEgNTEtNTFoODgyLjFjMjggMCA1MSAyMi45IDUxIDUxdjEzMjkuMWMtLjEgMjgtMjMgNTEtNTEuMSA1MXpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QzXFxcIiBkPVxcXCJNOTcxLjQgMTQ0Ny44SDkzLjZjLTI0LjggMC00NS0yMC4zLTQ1LTQ1Vjc4LjNjMC0yNC44IDIwLjMtNDUgNDUtNDVoODc3LjhjMjQuOCAwIDQ1IDIwLjMgNDUgNDV2MTMyNC41YzAgMjQuOC0yMC4yIDQ1LTQ1IDQ1elxcXCI+PC9wYXRoPjxjaXJjbGUgY2xhc3M9XFxcInN0M1xcXCIgY3g9XFxcIjc5LjVcXFwiIGN5PVxcXCI3NDAuNlxcXCIgcj1cXFwiMTJcXFwiPjwvY2lyY2xlPjwvc3ltYm9sPjxzeW1ib2wgaWQ9XFxcImljb24tZGV2aWNlLWxcXFwiPjxnIGZpbGw9XFxcIm5vbmVcXFwiIGZpbGwtcnVsZT1cXFwiZXZlbm9kZFxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTUwOSAtNDA5KVxcXCI+PGcgdHJhbnNmb3JtPVxcXCJyb3RhdGUoLTkwIDg4NC41IDYyNClcXFwiPjx1c2UgZmlsbD1cXFwiIzAwMFxcXCIgZmlsdGVyPVxcXCJ1cmwoI2RldmljZS1sLWEpXFxcIiB4bGluazpocmVmPVxcXCIjZGV2aWNlLWwtYlxcXCI+PC91c2U+PHVzZSBmaWxsPVxcXCIjRkZGXFxcIiB4bGluazpocmVmPVxcXCIjZGV2aWNlLWwtYlxcXCI+PC91c2U+PC9nPjxyZWN0IHdpZHRoPVxcXCI3MFxcXCIgaGVpZ2h0PVxcXCI4XFxcIiB4PVxcXCI1NDBcXFwiIHk9XFxcIjYyOFxcXCIgZmlsbD1cXFwiI0Y0RjRGNFxcXCIgZmlsbC1ydWxlPVxcXCJub256ZXJvXFxcIiB0cmFuc2Zvcm09XFxcInJvdGF0ZSgtOTAgNTc1IDYzMilcXFwiIHJ4PVxcXCI0XFxcIj48L3JlY3Q+PGNpcmNsZSBjeD1cXFwiNTc1XFxcIiBjeT1cXFwiNTg1XFxcIiByPVxcXCI0XFxcIiBmaWxsPVxcXCIjRjRGNEY0XFxcIiBmaWxsLXJ1bGU9XFxcIm5vbnplcm9cXFwiIHRyYW5zZm9ybT1cXFwicm90YXRlKC05MCA1NzUgNTg1KVxcXCI+PC9jaXJjbGU+PHBhdGggZmlsbD1cXFwiI0Y0RjRGNFxcXCIgZmlsbC1ydWxlPVxcXCJub256ZXJvXFxcIiBkPVxcXCJNNTkyIDc4NFY0NjRoNTY4djMyMHpcXFwiPjwvcGF0aD48cGF0aCBmaWxsPVxcXCIjRTdFN0U3XFxcIiBmaWxsLXJ1bGU9XFxcIm5vbnplcm9cXFwiIGQ9XFxcIk01OTIgNDY0djMyMGg1NjhWNDY0SDU5MnptNTY5LTF2MzIySDU5MVY0NjNoNTcwelxcXCI+PC9wYXRoPjxjaXJjbGUgY3g9XFxcIjExODZcXFwiIGN5PVxcXCI2MjRcXFwiIHI9XFxcIjE1XFxcIiBmaWxsPVxcXCIjRjRGNEY0XFxcIj48L2NpcmNsZT48L2c+PC9zeW1ib2w+PHN5bWJvbCBpZD1cXFwiaWNvbi1kZXZpY2UtcFxcXCI+PGcgZmlsbD1cXFwibm9uZVxcXCIgZmlsbC1ydWxlPVxcXCJldmVub2RkXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNzAgLTQwOClcXFwiPjx1c2UgZmlsbD1cXFwiIzAwMFxcXCIgZmlsdGVyPVxcXCJ1cmwoI2RldmljZS1wLWEpXFxcIiB4bGluazpocmVmPVxcXCIjZGV2aWNlLXAtYlxcXCI+PC91c2U+PHVzZSBmaWxsPVxcXCIjRkZGXFxcIiB4bGluazpocmVmPVxcXCIjZGV2aWNlLXAtYlxcXCI+PC91c2U+PHJlY3Qgd2lkdGg9XFxcIjcwXFxcIiBoZWlnaHQ9XFxcIjhcXFwiIHg9XFxcIjI0MlxcXCIgeT1cXFwiNDcwXFxcIiBmaWxsPVxcXCIjRjRGNEY0XFxcIiBmaWxsLXJ1bGU9XFxcIm5vbnplcm9cXFwiIHJ4PVxcXCI0XFxcIj48L3JlY3Q+PGNpcmNsZSBjeD1cXFwiMzI0XFxcIiBjeT1cXFwiNDc0XFxcIiByPVxcXCI0XFxcIiBmaWxsPVxcXCIjRjRGNEY0XFxcIiBmaWxsLXJ1bGU9XFxcIm5vbnplcm9cXFwiPjwvY2lyY2xlPjxwYXRoIGZpbGw9XFxcIiNFN0U3RTdcXFwiIGZpbGwtcnVsZT1cXFwibm9uemVyb1xcXCIgZD1cXFwiTTEyNCA0OTBoMzIydjU3MEgxMjRWNDkwem0xIDF2NTY4aDMyMFY0OTFIMTI1elxcXCI+PC9wYXRoPjxwYXRoIGZpbGw9XFxcIiNGNEY0RjRcXFwiIGZpbGwtcnVsZT1cXFwibm9uemVyb1xcXCIgZD1cXFwiTTEyNSA0OTFoMzIwdjU2OEgxMjV6XFxcIj48L3BhdGg+PGNpcmNsZSBjeD1cXFwiMjg1XFxcIiBjeT1cXFwiMTA4NFxcXCIgcj1cXFwiMTVcXFwiIGZpbGw9XFxcIiNGNEY0RjRcXFwiPjwvY2lyY2xlPjwvZz48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxODM3IDI1NjNcXFwiIGlkPVxcXCJpY29uLWlwYWRcXFwiPjxzdHlsZT48IVtDREFUQVsuc3Qwe2ZpbGw6dHJhbnNwYXJlbnR9LnN0MXtmaWxsOiM0MDQwNDB9LnN0Miwuc3Qze2ZpbGw6bm9uZTtzdHJva2U6IzQwNDA0MDtzdHJva2Utd2lkdGg6NjtzdHJva2UtbWl0ZXJsaW1pdDoxMH0uc3Qze3N0cm9rZS13aWR0aDo0fV1dPjwvc3R5bGU+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTE1NC4yIDI1NS41aDE1MzV2MjA0N2gtMTUzNXpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QxXFxcIiBkPVxcXCJNMTY4OC43IDI1NnYyMDQ2aC0xNTM0VjI1NmgxNTM0bTEtMWgtMTUzNnYyMDQ4aDE1MzZWMjU1elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDJcXFwiIGQ9XFxcIk0xNjk3LjIgMjUzMC41aC0xNTUxYy02MC41IDAtMTEwLTQ5LjUtMTEwLTExMHYtMjI4MGMwLTYwLjUgNDkuNS0xMTAgMTEwLTExMGgxNTUxYzYwLjUgMCAxMTAgNDkuNSAxMTAgMTEwdjIyODBjMCA2MC41LTQ5LjUgMTEwLTExMCAxMTB6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0M1xcXCIgZD1cXFwiTTE2ODguNCAyNTE0SDE1NWMtNTcuOCAwLTEwNS00Ny4zLTEwNS0xMDVWMTQ5QzUwIDkxLjMgOTcuMiA0NCAxNTUgNDRoMTUzMy41YzU3LjggMCAxMDUgNDcuMyAxMDUgMTA1djIyNjBjLS4xIDU3LjgtNDcuMyAxMDUtMTA1LjEgMTA1elxcXCI+PC9wYXRoPjxjaXJjbGUgY2xhc3M9XFxcInN0M1xcXCIgY3g9XFxcIjkyMS43XFxcIiBjeT1cXFwiMTQ5LjVcXFwiIHI9XFxcIjE2LjVcXFwiPjwvY2lyY2xlPjxjaXJjbGUgY2xhc3M9XFxcInN0MlxcXCIgY3g9XFxcIjkyMS41XFxcIiBjeT1cXFwiMjQxMS41XFxcIiByPVxcXCI1My41XFxcIj48L2NpcmNsZT48cGF0aCBjbGFzcz1cXFwic3QzXFxcIiBkPVxcXCJNOTM3LjIgMjQzMS41aC0zMWMtMi44IDAtNS0yLjMtNS01di0zMWMwLTIuOCAyLjMtNSA1LTVoMzFjMi44IDAgNSAyLjMgNSA1djMxYzAgMi44LTIuMiA1LTUgNXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCA5NDUgMTMwMFxcXCIgaWQ9XFxcImljb24taXBhZG1pbmlcXFwiPjxzdHlsZT48IVtDREFUQVsuc3QwLC5zdDF7ZmlsbDpub25lO3N0cm9rZTojNDA0MDQwO3N0cm9rZS13aWR0aDo2O3N0cm9rZS1taXRlcmxpbWl0OjEwfS5zdDF7c3Ryb2tlLXdpZHRoOjR9LnN0MntmaWxsOnRyYW5zcGFyZW50fS5zdDN7ZmlsbDojNDA0MDQwfV1dPjwvc3R5bGU+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTgzNi40IDEyNzUuNUgxMTEuOGMtNDQgMC04MC0zNi04MC04MFYxMDYuOGMwLTQ0IDM2LTgwIDgwLTgwaDcyNC42YzQ0IDAgODAgMzYgODAgODB2MTA4OC43YzAgNDQtMzYgODAtODAgODB6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTgzMy40IDEyNjMuM0gxMTQuOGMtMzguNSAwLTcwLTMxLjUtNzAtNzBWMTA4LjljMC0zOC41IDMxLjUtNzAgNzAtNzBoNzE4LjZjMzguNSAwIDcwIDMxLjUgNzAgNzB2MTA4NC40YzAgMzguNS0zMS41IDcwLTcwIDcwelxcXCI+PC9wYXRoPjxjaXJjbGUgY2xhc3M9XFxcInN0MVxcXCIgY3g9XFxcIjQ3NFxcXCIgY3k9XFxcIjg2LjZcXFwiIHI9XFxcIjguMlxcXCI+PC9jaXJjbGU+PGNpcmNsZSBjbGFzcz1cXFwic3QwXFxcIiBjeD1cXFwiNDc0LjFcXFwiIGN5PVxcXCIxMjE2LjRcXFwiIHI9XFxcIjI2LjdcXFwiPjwvY2lyY2xlPjxwYXRoIGNsYXNzPVxcXCJzdDFcXFwiIGQ9XFxcIk00NzkuMyAxMjI2LjRoLTEwLjVjLTIuOCAwLTUtMi4zLTUtNXYtMTAuNWMwLTIuOCAyLjMtNSA1LTVoMTAuNWMyLjggMCA1IDIuMyA1IDV2MTAuNWMwIDIuOC0yLjIgNS01IDV6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MlxcXCIgZD1cXFwiTTkwLjYgMTM5LjVoNzY3djEwMjNoLTc2N3pcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QzXFxcIiBkPVxcXCJNODU3LjEgMTQwdjEwMjJoLTc2NlYxNDBoNzY2bTEtMWgtNzY4djEwMjRoNzY4VjEzOXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAyMDA4IDI5ODBcXFwiIGlkPVxcXCJpY29uLWlwYWRwcm9cXFwiPjxzdHlsZT48IVtDREFUQVsuc3QwLC5zdDF7ZmlsbDpub25lO3N0cm9rZTojNDA0MDQwO3N0cm9rZS13aWR0aDo2O3N0cm9rZS1taXRlcmxpbWl0OjEwfS5zdDF7c3Ryb2tlLXdpZHRoOjR9LnN0MntmaWxsOnRyYW5zcGFyZW50fS5zdDN7ZmlsbDojNDA0MDQwfV1dPjwvc3R5bGU+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTE4NTQuMSAyOTA5LjVoLTE2OTljLTYwLjUgMC0xMTAtNDkuNS0xMTAtMTEwdi0yNjE5YzAtNjAuNSA0OS41LTExMCAxMTAtMTEwaDE2OTljNjAuNSAwIDExMCA0OS41IDExMCAxMTB2MjYxOWMwIDYwLjUtNDkuNSAxMTAtMTEwIDExMHpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QxXFxcIiBkPVxcXCJNMTg0NS4zIDI4OTNIMTYzLjhjLTU3LjggMC0xMDUtNDcuMy0xMDUtMTA1VjE4OWMwLTU3LjggNDcuMy0xMDUgMTA1LTEwNWgxNjgxLjVjNTcuOCAwIDEwNSA0Ny4zIDEwNSAxMDV2MjU5OWMwIDU3LjgtNDcuMyAxMDUtMTA1IDEwNXpcXFwiPjwvcGF0aD48Y2lyY2xlIGNsYXNzPVxcXCJzdDFcXFwiIGN4PVxcXCIxMDA0LjZcXFwiIGN5PVxcXCIxODkuNVxcXCIgcj1cXFwiMTYuNVxcXCI+PC9jaXJjbGU+PGNpcmNsZSBjbGFzcz1cXFwic3QwXFxcIiBjeD1cXFwiMTAwNC42XFxcIiBjeT1cXFwiMjc5MC4zXFxcIiByPVxcXCI1My41XFxcIj48L2NpcmNsZT48cGF0aCBjbGFzcz1cXFwic3QxXFxcIiBkPVxcXCJNMTAyMC4xIDI4MTAuOGgtMzFjLTIuOCAwLTUtMi4zLTUtNXYtMzFjMC0yLjggMi4zLTUgNS01aDMxYzIuOCAwIDUgMi4zIDUgNXYzMWMwIDIuOC0yLjMgNS01IDV6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MlxcXCIgZD1cXFwiTTE2MS4xIDI5NS41aDE2ODd2MjM4N2gtMTY4N3pcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QzXFxcIiBkPVxcXCJNMTg0Ny42IDI5NnYyMzg2aC0xNjg2VjI5NmgxNjg2bTEtMWgtMTY4OHYyMzg4aDE2ODhWMjk1elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDIzNjAgMzMwMFxcXCIgaWQ9XFxcImljb24taXBhZHBybzEzXFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MCwuc3Qxe2ZpbGw6bm9uZTtzdHJva2U6IzQwNDA0MDtzdHJva2Utd2lkdGg6NjtzdHJva2UtbWl0ZXJsaW1pdDoxMH0uc3Qxe3N0cm9rZS13aWR0aDo0fS5zdDJ7ZmlsbDp0cmFuc3BhcmVudH0uc3Qze2ZpbGw6IzQwNDA0MH1dXT48L3N0eWxlPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0yMjE5LjIgMzI2OS4ySDEzOS41Yy02MC41IDAtMTEwLTQ5LjUtMTEwLTExMHYtMzAyNGMwLTYwLjUgNDkuNS0xMTAgMTEwLTExMGgyMDc5LjhjNjAuNSAwIDExMCA0OS41IDExMCAxMTB2MzAyNGMtLjEgNjAuNS00OS42IDExMC0xMTAuMSAxMTB6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTIyMDguNSAzMjUwLjRIMTUwLjJjLTU3LjggMC0xMDUtNDcuMy0xMDUtMTA1VjE0NS43YzAtNTcuNyA0Ny4zLTEwNSAxMDUtMTA1aDIwNTguM2M1Ny44IDAgMTA1IDQ3LjMgMTA1IDEwNXYyOTk5LjdjMCA1Ny43LTQ3LjMgMTA1LTEwNSAxMDV6XFxcIj48L3BhdGg+PGNpcmNsZSBjbGFzcz1cXFwic3QxXFxcIiBjeD1cXFwiMTE3OS4zXFxcIiBjeT1cXFwiMTYzLjdcXFwiIHI9XFxcIjE2LjVcXFwiPjwvY2lyY2xlPjxjaXJjbGUgY2xhc3M9XFxcInN0MFxcXCIgY3g9XFxcIjExNzkuM1xcXCIgY3k9XFxcIjMxMzMuNFxcXCIgcj1cXFwiNTMuNVxcXCI+PC9jaXJjbGU+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTExOTQuOCAzMTUzLjloLTMxYy0yLjggMC01LTIuMy01LTV2LTMxYzAtMi44IDIuMy01IDUtNWgzMWMyLjggMCA1IDIuMyA1IDV2MzFjMCAyLjktMi4yIDUtNSA1elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDJcXFwiIGQ9XFxcIk0xNTUuOCAyODUuN2gyMDQ3djI3MzFoLTIwNDd6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0M1xcXCIgZD1cXFwiTTIyMDIuMyAyODYuMnYyNzMwaC0yMDQ2di0yNzMwaDIwNDZtMS0xaC0yMDQ4djI3MzJoMjA0OHYtMjczMnpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCA3MzAgMTM0MFxcXCIgaWQ9XFxcImljb24taXBob25lNFxcXCI+PHN0eWxlPjwhW0NEQVRBWy5zdDB7ZmlsbDojNDA0MDQwfS5zdDF7ZmlsbDp0cmFuc3BhcmVudH1dXT48L3N0eWxlPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk02MzUuOSAxMzAwLjVIMTAwLjdjLTQ1LjcgMC04Mi44LTM3LjEtODIuOC04Mi44di0xMTA4YzAtNDUuNyAzNy4xLTgyLjggODIuOC04Mi44SDYzNmM0NS43IDAgODIuOCAzNy4xIDgyLjggODIuOHYxMTA4Yy0uMSA0NS42LTM3LjIgODIuOC04Mi45IDgyLjh6TTEwMC43IDI5LjFjLTQ0LjQgMC04MC42IDM2LjEtODAuNiA4MC42djExMDhjMCA0NC40IDM2LjEgODAuNiA4MC42IDgwLjZINjM2YzQ0LjQgMCA4MC42LTM2LjEgODAuNi04MC42di0xMTA4YzAtNDQuNC0zNi4xLTgwLjYtODAuNi04MC42SDEwMC43elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0zNjYuOSA3MS4xYy01IDAtOS4xLTQuMS05LjEtOS4xczQuMS05LjEgOS4xLTkuMVMzNzYgNTcgMzc2IDYyYzAgNS4xLTQuMSA5LjEtOS4xIDkuMXptMC0xNS45Yy0zLjggMC02LjggMy4xLTYuOCA2LjggMCAzLjcgMy4xIDYuOCA2LjggNi44IDMuOCAwIDYuOC0zLjEgNi44LTYuOCAwLTMuNy0zLTYuOC02LjgtNi44ek0yNjkuMyAxMTYuNWMtNi45IDAtMTIuNS01LjYtMTIuNS0xMi41czUuNi0xMi41IDEyLjUtMTIuNSAxMi41IDUuNiAxMi41IDEyLjUtNS42IDEyLjUtMTIuNSAxMi41em0wLTIyLjdjLTUuNiAwLTEwLjIgNC42LTEwLjIgMTAuMnM0LjYgMTAuMiAxMC4yIDEwLjIgMTAuMi00LjYgMTAuMi0xMC4yYy4xLTUuNi00LjUtMTAuMi0xMC4yLTEwLjJ6TTQwOC42IDEwOS43aC04NC41Yy0zLjYgMC02LjUtMi45LTYuNS02LjVzMi45LTYuNSA2LjUtNi41aDg0LjVjMy42IDAgNi41IDIuOSA2LjUgNi41cy0yLjkgNi41LTYuNSA2LjV6bS04NC41LTEwLjhjLTIuNCAwLTQuMyAxLjktNC4zIDQuM3MxLjkgNC4zIDQuMyA0LjNoODQuNWMyLjQgMCA0LjMtMS45IDQuMy00LjNzLTEuOS00LjMtNC4zLTQuM2gtODQuNXpNMzY4LjMgMTI2Ny44Yy0yMy41IDAtNDIuNS0xOS4xLTQyLjUtNDIuNSAwLTIzLjUgMTkuMS00Mi41IDQyLjUtNDIuNSAyMy41IDAgNDIuNSAxOS4xIDQyLjUgNDIuNSAwIDIzLjUtMTkuMSA0Mi41LTQyLjUgNDIuNXptMC04Mi44Yy0yMi4yIDAtNDAuMyAxOC4xLTQwLjMgNDAuMyAwIDIyLjIgMTguMSA0MC4zIDQwLjMgNDAuMyAyMi4yIDAgNDAuMy0xOC4xIDQwLjMtNDAuMyAwLTIyLjItMTguMS00MC4zLTQwLjMtNDAuM3pcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMzY4LjMgMTI3Ni4yYy0yOC4xIDAtNTAuOS0yMi44LTUwLjktNTAuOXMyMi44LTUwLjkgNTAuOS01MC45IDUwLjkgMjIuOCA1MC45IDUwLjljMCAyOC4xLTIyLjkgNTAuOS01MC45IDUwLjl6bTAtOTkuNmMtMjYuOCAwLTQ4LjcgMjEuOC00OC43IDQ4LjcgMCAyNi44IDIxLjggNDguNyA0OC43IDQ4LjcgMjYuOCAwIDQ4LjctMjEuOCA0OC43LTQ4LjctLjEtMjYuOC0yMS45LTQ4LjctNDguNy00OC43ek04LjUgMjQ1LjRILS4ydi02MGg4Ljd2NjB6TTIgMjQzLjJoNC4ydi01NS42SDJ2NTUuNnpNOC41IDMzMC40SC0uMnYtNjBoOC43djYwek0yIDMyOC4yaDQuMnYtNTUuNkgydjU1LjZ6XFxcIj48L3BhdGg+PGc+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTQ4LjUgMTgzLjJoNjM5djk1OWgtNjM5elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk02ODcgMTgzLjd2OTU4SDQ5di05NThoNjM4bTEtMUg0OHY5NjBoNjQwdi05NjB6XFxcIj48L3BhdGg+PC9nPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk04LjcgMzQ0LjdWMzI3SDIuMXYtNTMuM2g2LjZ2LTE0SDQuMnY5LjVoLTYuNnY2Mi4zaDYuNnYxMy4yelxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk02NDUuNSAxMy43aC02LjhsLTkuNS0uNVY2LjdoLTYyLjN2Ni42bC0xMy4yLjVIOTEuMWMtNDcuOSAwLTg2LjggMzktODYuOCA4Ni44djgzLjdoLTYuNnY2Mi4zaDYuNnYyNS4xaDQuNVYyNDJIMi4xdi01My4zaDYuNnYtODguMmMwLTQ1LjQgMzYuOS04Mi40IDgyLjQtODIuNGg1NTQuNUM2OTEgMTguMSA3MjggNTUgNzI4IDEwMC41djExMjcuM2MwIDQ1LjQtMzYuOSA4Mi40LTgyLjQgODIuNEg5MS4xYy00NS40IDAtODIuNC0zNi45LTgyLjQtODIuNFYzMjcuN0g0LjJ2OTAwLjFjMCA0Ny45IDM5IDg2LjkgODYuOCA4Ni45aDU1NC41YzQ3LjkgMCA4Ni44LTM5IDg2LjgtODYuOVYxMDAuNWMuMS00Ny44LTM4LjktODYuOC04Ni44LTg2Ljh6bS03NC4yLTIuNWg1My4zdjIuNWgtNTMuM3YtMi41elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDc1MCAxNTAwXFxcIiBpZD1cXFwiaWNvbi1pcGhvbmU1XFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MHtmaWxsOiM0MDQwNDB9LnN0MXtmaWxsOnRyYW5zcGFyZW50fV1dPjwvc3R5bGU+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTY0Mi45IDE0NzMuOEgxMDcuN2MtNDUuNyAwLTgyLjgtMzcuMS04Mi44LTgyLjhWMTA2YzAtNDUuNyAzNy4xLTgyLjggODIuOC04Mi44SDY0M2M0NS43IDAgODIuOCAzNy4xIDgyLjggODIuOHYxMjg1Yy0uMSA0NS42LTM3LjIgODIuOC04Mi45IDgyLjh6TTEwNy43IDI1LjRjLTQ0LjQgMC04MC42IDM2LjEtODAuNiA4MC42djEyODVjMCA0NC40IDM2LjEgODAuNiA4MC42IDgwLjZINjQzYzQ0LjQgMCA4MC42LTM2LjEgODAuNi04MC42VjEwNmMwLTQ0LjQtMzYuMS04MC42LTgwLjYtODAuNkgxMDcuN3pcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMzczLjkgNjcuNGMtNSAwLTkuMS00LjEtOS4xLTkuMXM0LjEtOS4xIDkuMS05LjEgOS4xIDQuMSA5LjEgOS4xYzAgNS4xLTQuMSA5LjEtOS4xIDkuMXptMC0xNS45Yy0zLjggMC02LjggMy4xLTYuOCA2LjhzMy4xIDYuOCA2LjggNi44YzMuOCAwIDYuOC0zLjEgNi44LTYuOHMtMy02LjgtNi44LTYuOHpNMjc2LjMgMTEyLjhjLTYuOSAwLTEyLjUtNS42LTEyLjUtMTIuNXM1LjYtMTIuNSAxMi41LTEyLjUgMTIuNSA1LjYgMTIuNSAxMi41LTUuNiAxMi41LTEyLjUgMTIuNXptMC0yMi43Yy01LjYgMC0xMC4yIDQuNi0xMC4yIDEwLjJzNC42IDEwLjIgMTAuMiAxMC4yIDEwLjItNC42IDEwLjItMTAuMmMuMS01LjYtNC41LTEwLjItMTAuMi0xMC4yek00MTUuNiAxMDZoLTg0LjVjLTMuNiAwLTYuNS0yLjktNi41LTYuNXMyLjktNi41IDYuNS02LjVoODQuNWMzLjYgMCA2LjUgMi45IDYuNSA2LjVzLTIuOSA2LjUtNi41IDYuNXptLTg0LjUtMTAuOGMtMi40IDAtNC4zIDEuOS00LjMgNC4zczEuOSA0LjMgNC4zIDQuM2g4NC41YzIuNCAwIDQuMy0xLjkgNC4zLTQuM3MtMS45LTQuMy00LjMtNC4zaC04NC41ek0zNzUuMyAxNDQxLjFjLTIzLjUgMC00Mi41LTE5LjEtNDIuNS00Mi41IDAtMjMuNSAxOS4xLTQyLjUgNDIuNS00Mi41IDIzLjUgMCA0Mi41IDE5LjEgNDIuNSA0Mi41IDAgMjMuNS0xOS4xIDQyLjUtNDIuNSA0Mi41em0wLTgyLjhjLTIyLjIgMC00MC4zIDE4LjEtNDAuMyA0MC4zIDAgMjIuMiAxOC4xIDQwLjMgNDAuMyA0MC4zIDIyLjIgMCA0MC4zLTE4LjEgNDAuMy00MC4zIDAtMjIuMi0xOC4xLTQwLjMtNDAuMy00MC4zelxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0zNzUuMyAxNDQ5LjVjLTI4LjEgMC01MC45LTIyLjgtNTAuOS01MC45czIyLjgtNTAuOSA1MC45LTUwLjkgNTAuOSAyMi44IDUwLjkgNTAuOWMwIDI4LjEtMjIuOSA1MC45LTUwLjkgNTAuOXptMC05OS42Yy0yNi44IDAtNDguNyAyMS44LTQ4LjcgNDguNyAwIDI2LjggMjEuOCA0OC43IDQ4LjcgNDguNyAyNi44IDAgNDguNy0yMS44IDQ4LjctNDguNy0uMS0yNi44LTIxLjktNDguNy00OC43LTQ4Ljd6XFxcIj48L3BhdGg+PGc+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTE0LjUgMjQxLjdINS44di02MGg4Ljd2NjB6TTggMjM5LjVoNC4ydi01NS42SDh2NTUuNnpNMTQuNSAzODlINS44di05NC41aDguN1YzODl6TTggMzg2LjhoNC4ydi05MEg4djkwek0xNC41IDUwMS45SDUuOHYtOTQuNWg4Ljd2OTQuNXpNOCA0OTkuNmg0LjJ2LTkwSDh2OTB6XFxcIj48L3BhdGg+PC9nPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk02NTIuNSAxNDg4SDk4LjFjLTQ3LjkgMC04Ni44LTM5LTg2LjgtODYuOVY1MDNINC42di05Ni44aDYuNnYtMTYuMUg0LjZ2LTk2LjhoNi42di01MC42SDQuNnYtNjIuM2g2LjZWOTYuOEMxMS4yIDQ5IDUwLjIgMTAgOTguMSAxMGg1NTQuNWM0Ny45IDAgODYuOCAzOSA4Ni44IDg2Ljh2MTMwNC4zYzAgNDcuOS0zOSA4Ni45LTg2LjkgODYuOXpNOS4xIDQ5OC41aDYuNnY5MDIuNmMwIDQ1LjQgMzYuOSA4Mi40IDgyLjQgODIuNGg1NTQuNWM0NS40IDAgODIuNC0zNi45IDgyLjQtODIuNFY5Ni44YzAtNDUuNC0zNi45LTgyLjQtODIuNC04Mi40SDk4LjFjLTQ1LjQgMC04Mi40IDM2LjktODIuNCA4Mi40VjE4NUg5LjF2NTMuM2g2LjZ2NTkuNUg5LjF2ODcuOGg2LjZ2MjUuMUg5LjF2ODcuOHpcXFwiPjwvcGF0aD48Zz48cGF0aCBjbGFzcz1cXFwic3QxXFxcIiBkPVxcXCJNNTYgMTgyaDYzOXYxMTM1SDU2elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk02OTQgMTgydjExMzRINTZWMTgyaDYzOG0xLTFINTV2MTEzNmg2NDBWMTgxelxcXCI+PC9wYXRoPjwvZz48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCA5NjAgMTc1MFxcXCIgaWQ9XFxcImljb24taXBob25lNlxcXCI+PHN0eWxlPjwhW0NEQVRBWy5zdDB7ZmlsbDojNDA0MDQwfS5zdDF7ZmlsbDp0cmFuc3BhcmVudH1dXT48L3N0eWxlPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk00NzkuOCAxMDMuNGMtNSAwLTkuMS00LjEtOS4xLTkuMXM0LjEtOS4xIDkuMS05LjEgOS4xIDQuMSA5LjEgOS4xYzAgNS4xLTQuMSA5LjEtOS4xIDkuMXptMC0xNS45Yy0zLjggMC02LjggMy4xLTYuOCA2LjggMCAzLjggMy4xIDYuOCA2LjggNi44IDMuOCAwIDYuOC0zLjEgNi44LTYuOCAwLTMuNy0zLTYuOC02LjgtNi44ek0zODIuMiAxNDguOGMtNi45IDAtMTIuNS01LjYtMTIuNS0xMi41czUuNi0xMi41IDEyLjUtMTIuNSAxMi41IDUuNiAxMi41IDEyLjUtNS42IDEyLjUtMTIuNSAxMi41em0wLTIyLjdjLTUuNiAwLTEwLjIgNC42LTEwLjIgMTAuMnM0LjYgMTAuMiAxMC4yIDEwLjIgMTAuMi00LjYgMTAuMi0xMC4yYy4xLTUuNi00LjUtMTAuMi0xMC4yLTEwLjJ6TTUyMS41IDE0Mkg0MzdjLTMuNiAwLTYuNS0yLjktNi41LTYuNXMyLjktNi41IDYuNS02LjVoODQuNWMzLjYgMCA2LjUgMi45IDYuNSA2LjVzLTIuOSA2LjUtNi41IDYuNXpNNDM3IDEzMS4yYy0yLjQgMC00LjMgMS45LTQuMyA0LjNzMS45IDQuMyA0LjMgNC4zaDg0LjVjMi40IDAgNC4zLTEuOSA0LjMtNC4zcy0xLjktNC4zLTQuMy00LjNINDM3ek00NzYgMTY3NS4xYy0yMy41IDAtNDIuNS0xOS4xLTQyLjUtNDIuNSAwLTIzLjUgMTkuMS00Mi41IDQyLjUtNDIuNSAyMy41IDAgNDIuNSAxOS4xIDQyLjUgNDIuNSAwIDIzLjUtMTkgNDIuNS00Mi41IDQyLjV6bTAtODIuOGMtMjIuMiAwLTQwLjMgMTguMS00MC4zIDQwLjMgMCAyMi4yIDE4LjEgNDAuMyA0MC4zIDQwLjMgMjIuMiAwIDQwLjMtMTguMSA0MC4zLTQwLjNzLTE4LjEtNDAuMy00MC4zLTQwLjN6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTQ3NiAxNjgzLjVjLTI4LjEgMC01MC45LTIyLjgtNTAuOS01MC45czIyLjgtNTAuOSA1MC45LTUwLjkgNTAuOSAyMi44IDUwLjkgNTAuOS0yMi44IDUwLjktNTAuOSA1MC45em0wLTk5LjZjLTI2LjggMC00OC43IDIxLjgtNDguNyA0OC43IDAgMjYuOCAyMS44IDQ4LjcgNDguNyA0OC43IDI2LjggMCA0OC43LTIxLjggNDguNy00OC43IDAtMjYuOC0yMS45LTQ4LjctNDguNy00OC43elxcXCI+PC9wYXRoPjxnPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk04MDEuOSAxNzA3LjhIMTU2LjdjLTQ1LjcgMC04Mi44LTM3LjEtODIuOC04Mi44VjE0MmMwLTQ1LjcgMzcuMS04Mi44IDgyLjgtODIuOEg4MDJjNDUuNyAwIDgyLjggMzcuMSA4Mi44IDgyLjh2MTQ4M2MtLjEgNDUuNi0zNy4yIDgyLjgtODIuOSA4Mi44ek0xNTYuNyA2MS40Yy00NC40IDAtODAuNiAzNi4xLTgwLjYgODAuNnYxNDgzYzAgNDQuNCAzNi4xIDgwLjYgODAuNiA4MC42SDgwMmM0NC40IDAgODAuNi0zNi4xIDgwLjYtODAuNlYxNDJjMC00NC40LTM2LjEtODAuNi04MC42LTgwLjZIMTU2Ljd6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTgxMS41IDE3MjJIMTQ3LjFjLTQ3LjkgMC04Ni44LTM5LTg2LjgtODYuOVY1MzloLTYuNnYtOTYuOGg2LjZ2LTE2LjFoLTYuNnYtOTYuOGg2LjZ2LTUwLjZoLTYuNnYtNjIuM2g2LjZ2LTgzLjdjMC00Ny45IDM5LTg2LjggODYuOC04Ni44aDY2NC41YzQ3LjkgMCA4Ni44IDM5IDg2LjggODYuOFYxNjM1YzAgNDgtMzkgODctODYuOSA4N3pNNTguMSA1MzQuNWg2LjZ2MTEwMC42YzAgNDUuNCAzNi45IDgyLjQgODIuNCA4Mi40aDY2NC41YzQ1LjQgMCA4Mi40LTM2LjkgODIuNC04Mi40VjEzMi44YzAtNDUuNC0zNi45LTgyLjQtODIuNC04Mi40SDE0Ny4xYy00NS40IDAtODIuNCAzNi45LTgyLjQgODIuNFYyMjFoLTYuNnY1My4zaDYuNnY1OS41aC02LjZ2ODcuOGg2LjZ2MjUuMWgtNi42djg3Ljh6XFxcIj48L3BhdGg+PC9nPjxnPjxwYXRoIGNsYXNzPVxcXCJzdDFcXFwiIGQ9XFxcIk0xMDQuNSAyMDguNWg3NDl2MTMzM2gtNzQ5elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk04NTMgMjA5djEzMzJIMTA1VjIwOWg3NDhtMS0xSDEwNHYxMzM0aDc1MFYyMDh6XFxcIj48L3BhdGg+PC9nPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDEzMzAgMjU1MFxcXCIgaWQ9XFxcImljb24taXBob25lNnBsdXNcXFwiPjxzdHlsZT48IVtDREFUQVsuc3Qwe2ZpbGw6IzQwNDA0MH0uc3Qxe2ZpbGw6dHJhbnNwYXJlbnR9XV0+PC9zdHlsZT48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNNjY1LjEgMTMzLjJjLTguMyAwLTE1LjEtNi44LTE1LjEtMTUuMXM2LjgtMTUuMSAxNS4xLTE1LjEgMTUuMSA2LjggMTUuMSAxNS4xLTYuOCAxNS4xLTE1LjEgMTUuMXptMC0yNi41Yy02LjMgMC0xMS40IDUuMS0xMS40IDExLjRzNS4xIDExLjQgMTEuNCAxMS40YzYuMyAwIDExLjQtNS4xIDExLjQtMTEuNC0uMS02LjMtNS4xLTExLjQtMTEuNC0xMS40ek01MDIuNSAyMDguOGMtMTEuNSAwLTIwLjgtOS4zLTIwLjgtMjAuOHM5LjMtMjAuOCAyMC44LTIwLjggMjAuOCA5LjMgMjAuOCAyMC44LTkuMyAyMC44LTIwLjggMjAuOHptMC0zNy44Yy05LjQgMC0xNyA3LjYtMTcgMTdzNy42IDE3IDE3IDE3IDE3LTcuNiAxNy0xN2MuMS05LjQtNy42LTE3LTE3LTE3ek03MzQuNSAxOTcuNUg1OTMuN2MtNiAwLTEwLjgtNC45LTEwLjgtMTAuOHM0LjktMTAuOCAxMC44LTEwLjhoMTQwLjhjNiAwIDEwLjggNC45IDEwLjggMTAuOHMtNC44IDEwLjgtMTAuOCAxMC44em0tMTQwLjgtMThjLTMuOSAwLTcuMSAzLjItNy4xIDcuMSAwIDMuOSAzLjIgNy4xIDcuMSA3LjFoMTQwLjhjMy45IDAgNy4xLTMuMiA3LjEtNy4xIDAtMy45LTMuMi03LjEtNy4xLTcuMUg1OTMuN3pNNjY1IDI0MjYuMWMtMzggMC02OC45LTMwLjktNjguOS02OC45czMwLjktNjguOSA2OC45LTY4LjkgNjguOSAzMC45IDY4LjkgNjguOS0zMC45IDY4LjktNjguOSA2OC45em0wLTEzNC4yYy0zNiAwLTY1LjMgMjkuMy02NS4zIDY1LjNzMjkuMyA2NS4zIDY1LjMgNjUuMyA2NS4zLTI5LjMgNjUuMy02NS4zLTI5LjMtNjUuMy02NS4zLTY1LjN6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTY2NSAyNDM5LjZjLTQ1LjUgMC04Mi41LTM3LTgyLjUtODIuNXMzNy04Mi41IDgyLjUtODIuNSA4Mi41IDM3IDgyLjUgODIuNS0zNyA4Mi41LTgyLjUgODIuNXptMC0xNjEuM2MtNDMuNSAwLTc4LjggMzUuNC03OC44IDc4LjggMCA0My41IDM1LjQgNzguOCA3OC44IDc4LjggNDMuNSAwIDc4LjgtMzUuNCA3OC44LTc4LjhzLTM1LjMtNzguOC03OC44LTc4Ljh6XFxcIj48L3BhdGg+PGc+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTEyNS41IDMxNS41aDEwNzl2MTkxOWgtMTA3OXpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTIwNCAzMTZ2MTkxOEgxMjZWMzE2aDEwNzhtMS0xSDEyNXYxOTIwaDEwODBWMzE1elxcXCI+PC9wYXRoPjwvZz48Zz48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTExOS41IDQyYzM4LjMgMCA3NC40IDE1IDEwMS43IDQyLjMgMjcuMyAyNy4zIDQyLjMgNjMuNCA0Mi4zIDEwMS43djIxNzJjMCAzOC4zLTE1IDc0LjQtNDIuMyAxMDEuN3MtNjMuNCA0Mi4zLTEwMS43IDQyLjNoLTkwOWMtMzguMyAwLTc0LjQtMTUtMTAxLjctNDIuM3MtNDIuMy02My40LTQyLjMtMTAxLjdWMTg2YzAtMzguMyAxNS03NC40IDQyLjMtMTAxLjdTMTcyLjIgNDIgMjEwLjUgNDJoOTA5bTAtNmgtOTA5Yy04Mi41IDAtMTUwIDY3LjUtMTUwIDE1MHYyMTcyYzAgODIuNSA2Ny41IDE1MCAxNTAgMTUwaDkwOWM4Mi41IDAgMTUwLTY3LjUgMTUwLTE1MFYxODZjMC04Mi41LTY3LjUtMTUwLTE1MC0xNTB6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTExMjEuNSA1OC43YzMzLjUgMCA2NS4xIDEzLjEgODkgMzdzMzcgNTUuNSAzNyA4OXYyMTc0LjZjMCAzMy41LTEzLjEgNjUuMS0zNyA4OXMtNTUuNSAzNy04OSAzN2gtOTEyYy0zMy41IDAtNjUuMS0xMy4xLTg5LTM3cy0zNy01NS41LTM3LTg5VjE4NC43YzAtMzMuNSAxMy4xLTY1LjEgMzctODlzNTUuNS0zNyA4OS0zN2g5MTJtMC00aC05MTJjLTcxLjUgMC0xMzAgNTguNS0xMzAgMTMwdjIxNzQuNmMwIDcxLjUgNTguNSAxMzAgMTMwIDEzMGg5MTJjNzEuNSAwIDEzMC01OC41IDEzMC0xMzBWMTg0LjdjMC03MS41LTU4LjUtMTMwLTEzMC0xMzB6XFxcIj48L3BhdGg+PC9nPjxnPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk00OSA3MDJ2MTQyYzAgNi4zIDQuOSAxMS40IDExIDExLjl2LTRjLTMuOS0uNS03LTMuOS03LTcuOVY3MDJjMC00LjEgMy4xLTcuNCA3LTcuOXYtNGMtNi4xLjUtMTEgNS42LTExIDExLjl6TTQ5IDUwNXYxNDJjMCA2LjMgNC45IDExLjQgMTEgMTEuOXYtNGMtMy45LS41LTctMy45LTctNy45VjUwNWMwLTQuMSAzLjEtNy40IDctNy45di00Yy02LjEuNS0xMSA1LjYtMTEgMTEuOXpNNjAgMzE3LjF2LTRjLTYuMS41LTExIDUuNy0xMSAxMS45djY2YzAgNi4zIDQuOSAxMS40IDExIDExLjl2LTRjLTMuOS0uNS03LTMuOS03LTcuOXYtNjZjMC00LjEgMy4xLTcuNCA3LTcuOXpcXFwiPjwvcGF0aD48L2c+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgOTkwIDE4NjBcXFwiIGlkPVxcXCJpY29uLWlwaG9uZThcXFwiPjxzdHlsZT48IVtDREFUQVsuc3Qwe2ZpbGw6IzQwNDA0MH0uc3Qxe2ZpbGw6bm9uZTtzdHJva2U6IzQwNDA0MDtzdHJva2Utd2lkdGg6NDtzdHJva2UtbWl0ZXJsaW1pdDoxMH0uc3Qye2ZpbGw6dHJhbnNwYXJlbnR9XV0+PC9zdHlsZT48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNNTYwLjcgMTg5LjRINDM3LjljLTYgMC0xMC44LTQuOS0xMC44LTEwLjhzNC45LTEwLjggMTAuOC0xMC44aDEyMi44YzYgMCAxMC44IDQuOSAxMC44IDEwLjhzLTQuOCAxMC44LTEwLjggMTAuOHptLTEyMi44LTE4Yy0zLjkgMC03LjEgMy4yLTcuMSA3LjEgMCAzLjkgMy4yIDcuMSA3LjEgNy4xaDEyMi44YzMuOSAwIDcuMS0zLjIgNy4xLTcuMSAwLTMuOS0zLjItNy4xLTcuMS03LjFINDM3Ljl6XFxcIj48L3BhdGg+PGNpcmNsZSBjbGFzcz1cXFwic3QxXFxcIiBjeD1cXFwiMzU5LjVcXFwiIGN5PVxcXCIxNzguNlxcXCIgcj1cXFwiMTUuNVxcXCI+PC9jaXJjbGU+PGNpcmNsZSBjbGFzcz1cXFwic3QxXFxcIiBjeD1cXFwiNDk5LjNcXFwiIGN5PVxcXCIxMjYuNVxcXCIgcj1cXFwiOS41XFxcIj48L2NpcmNsZT48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNNzgxLjUgNjBjMzguMyAwIDc0LjQgMTUgMTAxLjcgNDIuM3M0Mi4zIDYzLjQgNDIuMyAxMDEuN3YxNDY1YzAgMzguMy0xNSA3NC40LTQyLjMgMTAxLjctMjcuMyAyNy4zLTYzLjQgNDIuMy0xMDEuNyA0Mi4zaC01NjVjLTM4LjMgMC03NC40LTE1LTEwMS43LTQyLjNzLTQyLjMtNjMuNC00Mi4zLTEwMS43VjIwNGMwLTM4LjMgMTUtNzQuNCA0Mi4zLTEwMS43UzE3OC4yIDYwIDIxNi41IDYwaDU2NW0wLTZoLTU2NWMtODIuNSAwLTE1MCA2Ny41LTE1MCAxNTB2MTQ2NWMwIDgyLjUgNjcuNSAxNTAgMTUwIDE1MGg1NjVjODIuNSAwIDE1MC02Ny41IDE1MC0xNTBWMjA0YzAtODIuNS02Ny41LTE1MC0xNTAtMTUwelxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk03ODIuNSA3Ny43YzMzLjUgMCA2NS4xIDEzLjEgODkgMzdzMzcgNTUuNSAzNyA4OXYxNDY0LjZjMCAzMy41LTEzLjEgNjUuMS0zNyA4OXMtNTUuNSAzNy04OSAzN2gtNTY3Yy0zMy41IDAtNjUuMS0xMy4xLTg5LTM3cy0zNy01NS41LTM3LTg5VjIwMy43YzAtMzMuNSAxMy4xLTY1LjEgMzctODlzNTUuNS0zNyA4OS0zN2g1NjdtMC00aC01NjdjLTcxLjUgMC0xMzAgNTguNS0xMzAgMTMwdjE0NjQuNmMwIDcxLjUgNTguNSAxMzAgMTMwIDEzMGg1NjdjNzEuNSAwIDEzMC01OC41IDEzMC0xMzBWMjAzLjdjMC03MS41LTU4LjUtMTMwLTEzMC0xMzB6XFxcIj48L3BhdGg+PGc+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTU1IDY0NnYxNDJjMCA2LjMgNC45IDExLjQgMTEgMTEuOXYtNGMtMy45LS41LTctMy45LTctNy45VjY0NmMwLTQuMSAzLjEtNy40IDctNy45di00Yy02LjEuNS0xMSA1LjYtMTEgMTEuOXpNNTUgNDQ5djE0MmMwIDYuMyA0LjkgMTEuNCAxMSAxMS45di00Yy0zLjktLjUtNy0zLjktNy03LjlWNDQ5YzAtNC4xIDMuMS03LjQgNy03Ljl2LTRjLTYuMS41LTExIDUuNi0xMSAxMS45ek05MzIgNTI3Ljl2NGM2LjEtLjUgMTEtNS43IDExLTExLjlWMzk5YzAtNi4zLTQuOS0xMS40LTExLTExLjl2NGMzLjkuNSA3IDMuOSA3IDcuOXYxMjFjMCA0LjEtMy4xIDcuNC03IDcuOXpcXFwiPjwvcGF0aD48L2c+PGc+PGNpcmNsZSBjbGFzcz1cXFwic3QxXFxcIiBjeD1cXFwiNDkzXFxcIiBjeT1cXFwiMTY4OVxcXCIgcj1cXFwiNjYuNVxcXCI+PC9jaXJjbGU+PGNpcmNsZSBjbGFzcz1cXFwic3QxXFxcIiBjeD1cXFwiNDkzXFxcIiBjeT1cXFwiMTY4OVxcXCIgcj1cXFwiNTVcXFwiPjwvY2lyY2xlPjwvZz48Zz48cGF0aCBjbGFzcz1cXFwic3QyXFxcIiBkPVxcXCJNMTIxLjUgMjYzLjVoNzQ5djEzMzNoLTc0OXpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNODcwIDI2NHYxMzMySDEyMlYyNjRoNzQ4bTEtMUgxMjF2MTMzNGg3NTBWMjYzelxcXCI+PC9wYXRoPjwvZz48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAxMzMwIDI1NTBcXFwiIGlkPVxcXCJpY29uLWlwaG9uZThwbHVzXFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MHtmaWxsOiM0MDQwNDB9LnN0MXtmaWxsOnRyYW5zcGFyZW50fV1dPjwvc3R5bGU+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTY2OC4xIDEzMy4yYy04LjMgMC0xNS4xLTYuOC0xNS4xLTE1LjFzNi44LTE1LjEgMTUuMS0xNS4xIDE1LjEgNi44IDE1LjEgMTUuMS02LjggMTUuMS0xNS4xIDE1LjF6bTAtMjYuNWMtNi4zIDAtMTEuNCA1LjEtMTEuNCAxMS40czUuMSAxMS40IDExLjQgMTEuNGM2LjMgMCAxMS40LTUuMSAxMS40LTExLjQtLjEtNi4zLTUuMS0xMS40LTExLjQtMTEuNHpNNTA1LjUgMjA4LjhjLTExLjUgMC0yMC44LTkuMy0yMC44LTIwLjhzOS4zLTIwLjggMjAuOC0yMC44IDIwLjggOS4zIDIwLjggMjAuOC05LjMgMjAuOC0yMC44IDIwLjh6bTAtMzcuOGMtOS40IDAtMTcgNy42LTE3IDE3czcuNiAxNyAxNyAxNyAxNy03LjYgMTctMTdjLjEtOS40LTcuNi0xNy0xNy0xN3pNNzM3LjUgMTk3LjVINTk2LjdjLTYgMC0xMC44LTQuOS0xMC44LTEwLjhzNC45LTEwLjggMTAuOC0xMC44aDE0MC44YzYgMCAxMC44IDQuOSAxMC44IDEwLjhzLTQuOCAxMC44LTEwLjggMTAuOHptLTE0MC44LTE4Yy0zLjkgMC03LjEgMy4yLTcuMSA3LjEgMCAzLjkgMy4yIDcuMSA3LjEgNy4xaDE0MC44YzMuOSAwIDcuMS0zLjIgNy4xLTcuMSAwLTMuOS0zLjItNy4xLTcuMS03LjFINTk2Ljd6XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTY2OCAyNDI2LjFjLTM4IDAtNjguOS0zMC45LTY4LjktNjguOXMzMC45LTY4LjkgNjguOS02OC45IDY4LjkgMzAuOSA2OC45IDY4LjktMzAuOSA2OC45LTY4LjkgNjguOXptMC0xMzQuMmMtMzYgMC02NS4zIDI5LjMtNjUuMyA2NS4zczI5LjMgNjUuMyA2NS4zIDY1LjMgNjUuMy0yOS4zIDY1LjMtNjUuMy0yOS4zLTY1LjMtNjUuMy02NS4zelxcXCI+PC9wYXRoPjxwYXRoIGQ9XFxcIk02NjggMjQzOS42Yy00NS41IDAtODIuNS0zNy04Mi41LTgyLjVzMzctODIuNSA4Mi41LTgyLjUgODIuNSAzNyA4Mi41IDgyLjUtMzcgODIuNS04Mi41IDgyLjV6bTAtMTYxLjNjLTQzLjUgMC03OC44IDM1LjQtNzguOCA3OC44IDAgNDMuNSAzNS40IDc4LjggNzguOCA3OC44IDQzLjUgMCA3OC44LTM1LjQgNzguOC03OC44cy0zNS4zLTc4LjgtNzguOC03OC44elxcXCI+PC9wYXRoPjxnPjxwYXRoIGNsYXNzPVxcXCJzdDFcXFwiIGQ9XFxcIk0xMjguNSAzMTUuNWgxMDc5djE5MTloLTEwNzl6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTEyMDcgMzE2djE5MThIMTI5VjMxNmgxMDc4bTEtMUgxMjh2MTkyMGgxMDgwVjMxNXpcXFwiPjwvcGF0aD48L2c+PGc+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTExMjIuNSA0MmMzOC4zIDAgNzQuNCAxNSAxMDEuNyA0Mi4zIDI3LjMgMjcuMyA0Mi4zIDYzLjQgNDIuMyAxMDEuN3YyMTcyYzAgMzguMy0xNSA3NC40LTQyLjMgMTAxLjdzLTYzLjQgNDIuMy0xMDEuNyA0Mi4zaC05MDljLTM4LjMgMC03NC40LTE1LTEwMS43LTQyLjNzLTQyLjMtNjMuNC00Mi4zLTEwMS43VjE4NmMwLTM4LjMgMTUtNzQuNCA0Mi4zLTEwMS43UzE3NS4yIDQyIDIxMy41IDQyaDkwOW0wLTZoLTkwOWMtODIuNSAwLTE1MCA2Ny41LTE1MCAxNTB2MjE3MmMwIDgyLjUgNjcuNSAxNTAgMTUwIDE1MGg5MDljODIuNSAwIDE1MC02Ny41IDE1MC0xNTBWMTg2YzAtODIuNS02Ny41LTE1MC0xNTAtMTUwelxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0xMTI0LjUgNTguN2MzMy41IDAgNjUuMSAxMy4xIDg5IDM3czM3IDU1LjUgMzcgODl2MjE3NC42YzAgMzMuNS0xMy4xIDY1LjEtMzcgODlzLTU1LjUgMzctODkgMzdoLTkxMmMtMzMuNSAwLTY1LjEtMTMuMS04OS0zN3MtMzctNTUuNS0zNy04OVYxODQuN2MwLTMzLjUgMTMuMS02NS4xIDM3LTg5czU1LjUtMzcgODktMzdoOTEybTAtNGgtOTEyYy03MS41IDAtMTMwIDU4LjUtMTMwIDEzMHYyMTc0LjZjMCA3MS41IDU4LjUgMTMwIDEzMCAxMzBoOTEyYzcxLjUgMCAxMzAtNTguNSAxMzAtMTMwVjE4NC43YzAtNzEuNS01OC41LTEzMC0xMzAtMTMwelxcXCI+PC9wYXRoPjwvZz48Zz48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNNTIgNzAydjE0MmMwIDYuMyA0LjkgMTEuNCAxMSAxMS45di00Yy0zLjktLjUtNy0zLjktNy03LjlWNzAyYzAtNC4xIDMuMS03LjQgNy03Ljl2LTRjLTYuMS41LTExIDUuNi0xMSAxMS45ek01MiA1MDV2MTQyYzAgNi4zIDQuOSAxMS40IDExIDExLjl2LTRjLTMuOS0uNS03LTMuOS03LTcuOVY1MDVjMC00LjEgMy4xLTcuNCA3LTcuOXYtNGMtNi4xLjUtMTEgNS42LTExIDExLjl6TTYzIDMxNy4xdi00Yy02LjEuNS0xMSA1LjctMTEgMTEuOXY2NmMwIDYuMyA0LjkgMTEuNCAxMSAxMS45di00Yy0zLjktLjUtNy0zLjktNy03Ljl2LTY2YzAtNC4xIDMuMS03LjQgNy03Ljl6XFxcIj48L3BhdGg+PC9nPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDEzMzAgMjY4MFxcXCIgaWQ9XFxcImljb24taXBob25leFxcXCI+PHN0eWxlPjwhW0NEQVRBWy5zdDB7ZmlsbDojNDA0MDQwfS5zdDF7ZmlsbDp0cmFuc3BhcmVudH1dXT48L3N0eWxlPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0xMTQ0IDU0LjVjNDAuMiAwIDc4IDE1LjggMTA2LjYgNDQuNHM0NC40IDY2LjUgNDQuNCAxMDYuNnYyMjY4YzAgNDAuMi0xNS44IDc4LTQ0LjQgMTA2LjZzLTY2LjUgNDQuNC0xMDYuNiA0NC40SDE5MC4xYy00MC4yIDAtNzgtMTUuOC0xMDYuNi00NC40LTI4LjYtMjguNi00NC40LTY2LjUtNDQuNC0xMDYuNnYtMjI2OGMwLTQwLjIgMTUuOC03OCA0NC40LTEwNi42UzE1MCA1NC41IDE5MC4xIDU0LjVIMTE0NG0wLTZIMTkwLjFjLTg2LjQgMC0xNTcgNzAuNy0xNTcgMTU3djIyNjhjMCA4Ni40IDcwLjYgMTU3IDE1NyAxNTdIMTE0NGM4Ni40IDAgMTU3LTcwLjYgMTU3LTE1N3YtMjI2OGMwLTg2LjMtNzAuNy0xNTctMTU3LTE1N3pcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTE1MS4xIDgyLjVjMzEuOSAwIDYyIDEyLjUgODQuNyAzNS4zIDIyLjcgMjIuNyAzNS4zIDUyLjggMzUuMyA4NC43djIyNzRjMCAzMS45LTEyLjUgNjItMzUuMyA4NC43LTIyLjcgMjIuNy01Mi44IDM1LjMtODQuNyAzNS4zaC05NjhjLTMxLjkgMC02Mi0xMi41LTg0LjctMzUuMy0yMi43LTIyLjctMzUuMy01Mi44LTM1LjMtODQuN3YtMjI3NGMwLTMxLjkgMTIuNS02MiAzNS4zLTg0LjcgMjIuNy0yMi43IDUyLjgtMzUuMyA4NC43LTM1LjNoOTY4bTAtNGgtOTY4Yy02OC4yIDAtMTI0IDU1LjgtMTI0IDEyNHYyMjc0YzAgNjguMiA1NS44IDEyNCAxMjQgMTI0aDk2OGM2OC4yIDAgMTI0LTU1LjggMTI0LTEyNHYtMjI3NGMwLTY4LjItNTUuOC0xMjQtMTI0LTEyNHpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNODEwLjggMTQ2LjVjMC0xMS41IDkuMy0yMC44IDIwLjgtMjAuOHMyMC44IDkuMyAyMC44IDIwLjgtOS4zIDIwLjgtMjAuOCAyMC44LTIwLjgtOS4zLTIwLjgtMjAuOHptMy44IDBjMCA5LjQgNy42IDE3IDE3IDE3czE3LTcuNiAxNy0xNy03LjYtMTctMTctMTctMTcgNy42LTE3IDE3ek01ODguOCAxNDUuMWMwLTYgNC45LTEwLjggMTAuOC0xMC44aDE0MC44YzYgMCAxMC44IDQuOSAxMC44IDEwLjhzLTQuOSAxMC44LTEwLjggMTAuOEg1OTkuNmMtNiAuMS0xMC44LTQuOC0xMC44LTEwLjh6bTEwLjgtNy4xYy0zLjkgMC03LjEgMy4yLTcuMSA3LjEgMCAzLjkgMy4yIDcuMSA3LjEgNy4xaDE0MC44YzMuOSAwIDcuMS0zLjIgNy4xLTcuMSAwLTMuOS0zLjItNy4xLTcuMS03LjFINTk5LjZ6XFxcIj48L3BhdGg+PGc+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTIxOS4zIDI1NTdjLTYzIDAtMTE0LjMtNTEuMy0xMTQuMy0xMTQuM1YyMzYuM2MwLTYzIDUxLjMtMTE0LjMgMTE0LjMtMTE0LjNoMTM0LjZjLjcgMCAxLjMuMyAxLjguNy41LjUuNyAxLjEuNyAxLjh2MjYuOWMwIDI3LjkgMjIuNyA1MC42IDUwLjYgNTAuNmg1MTkuOGMyNy45IDAgNTAuNi0yMi43IDUwLjYtNTAuNnYtMjYuOWMwLS43LjMtMS4zLjctMS44czEuMS0uNyAxLjctLjdoMTM0LjhjNjMgMCAxMTQuMyA1MS4zIDExNC4zIDExNC4zdjIyMDYuNGMwIDYzLTUxLjMgMTE0LjMtMTE0LjMgMTE0LjNIMjE5LjN6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTExMTQuNiAxMjIuNWMzMC40IDAgNTkgMTEuOCA4MC41IDMzLjNzMzMuMyA1MC4xIDMzLjMgODAuNXYyMjA2LjRjMCAzMC40LTExLjggNTktMzMuMyA4MC41cy01MC4xIDMzLjMtODAuNSAzMy4zSDIxOS4zYy0zMC40IDAtNTktMTEuOC04MC41LTMzLjNzLTMzLjMtNTAuMS0zMy4zLTgwLjVWMjM2LjNjMC0zMC40IDExLjgtNTkgMzMuMy04MC41czUwLjEtMzMuMyA4MC41LTMzLjNoMTM0LjZjLjUgMCAxIC4yIDEuNC42LjQuNC42LjkuNiAxLjR2MjYuOWMwIDI4LjIgMjIuOSA1MS4xIDUxLjEgNTEuMWg1MTkuOGMyOC4yIDAgNTEuMS0yMi45IDUxLjEtNTEuMXYtMjYuOWMwLS41LjItMSAuNi0xLjRzLjgtLjYgMS40LS42aDEzNC43bTAtMUg5NzkuOGMtMS42IDAtMi45IDEuMy0yLjkgM3YyNi45YzAgMjcuNS0yMi41IDUwLjEtNTAuMSA1MC4xSDQwN2MtMjcuNSAwLTUwLjEtMjIuNS01MC4xLTUwLjF2LTI2LjljMC0xLjctMS4zLTMtMy0zSDIxOS4zYy02My40IDAtMTE0LjggNTEuNC0xMTQuOCAxMTQuOHYyMjA2LjRjMCA2My40IDUxLjQgMTE0LjggMTE0LjggMTE0LjhoODk1LjRjNjMuNCAwIDExNC44LTUxLjQgMTE0LjgtMTE0LjhWMjM2LjNjMC02My40LTUxLjUtMTE0LjgtMTE0LjktMTE0Ljh6XFxcIj48L3BhdGg+PC9nPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDE0MTAgMjk4MFxcXCIgaWQ9XFxcImljb24taXBob25leG1heFxcXCI+PHN0eWxlPjwhW0NEQVRBWy5zdDB7ZmlsbDojNDA0MDQwfS5zdDF7ZmlsbDp0cmFuc3BhcmVudH1dXT48L3N0eWxlPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0xMjIyLjEgOTcuOGMzOS40IDAgNzYuNSAxNS40IDEwNC41IDQzLjVzNDMuNSA2NS4yIDQzLjUgMTA0LjV2MjQ4OWMwIDM5LjQtMTUuNCA3Ni41LTQzLjUgMTA0LjVzLTY1LjIgNDMuNS0xMDQuNSA0My41SDE4OC4yYy0zOS40IDAtNzYuNS0xNS40LTEwNC41LTQzLjVzLTQzLjUtNjUuMi00My41LTEwNC41di0yNDg5YzAtMzkuNCAxNS40LTc2LjUgNDMuNS0xMDQuNXM2NS4xLTQzLjUgMTA0LjUtNDMuNWgxMDMzLjltMC02SDE4OC4yYy04NC43IDAtMTU0IDY5LjMtMTU0IDE1NHYyNDg5YzAgODQuNyA2OS4zIDE1NCAxNTQgMTU0aDEwMzMuOWM4NC43IDAgMTU0LTY5LjMgMTU0LTE1NHYtMjQ4OWMwLTg0LjctNjkuMy0xNTQtMTU0LTE1NHpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTIyNi4yIDEyNS44YzMxLjkgMCA2MiAxMi41IDg0LjcgMzUuMyAyMi43IDIyLjcgMzUuMyA1Mi44IDM1LjMgODQuN3YyNDg5YzAgMzEuOS0xMi41IDYyLTM1LjMgODQuNy0yMi43IDIyLjctNTIuOCAzNS4zLTg0LjcgMzUuM2gtMTA0MmMtMzEuOSAwLTYyLTEyLjUtODQuNy0zNS4zLTIyLjctMjIuNy0zNS4zLTUyLjgtMzUuMy04NC43di0yNDg5YzAtMzEuOSAxMi41LTYyIDM1LjMtODQuNyAyMi43LTIyLjcgNTIuOC0zNS4zIDg0LjctMzUuM2gxMDQybTAtNGgtMTA0MmMtNjguMiAwLTEyNCA1NS44LTEyNCAxMjR2MjQ4OWMwIDY4LjIgNTUuOCAxMjQgMTI0IDEyNGgxMDQyYzY4LjIgMCAxMjQtNTUuOCAxMjQtMTI0di0yNDg5YzAtNjguMi01NS44LTEyNC0xMjQtMTI0elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk04NDQuMyAxNzFjMC0xMS41IDkuMy0yMC44IDIwLjgtMjAuOHMyMC44IDkuMyAyMC44IDIwLjgtOS4zIDIwLjgtMjAuOCAyMC44LTIwLjgtOS4zLTIwLjgtMjAuOHptMy44IDBjMCA5LjQgNy42IDE3IDE3IDE3czE3LTcuNiAxNy0xNy03LjYtMTctMTctMTctMTcgNy42LTE3IDE3ek02MjIuMyAxNjkuNmMwLTYgNC45LTEwLjggMTAuOC0xMC44aDE0MC44YzYgMCAxMC44IDQuOSAxMC44IDEwLjhzLTQuOSAxMC44LTEwLjggMTAuOEg2MzMuMWMtNiAuMS0xMC44LTQuOC0xMC44LTEwLjh6bTEwLjgtNy4xYy0zLjkgMC03LjEgMy4yLTcuMSA3LjEgMCAzLjkgMy4yIDcuMSA3LjEgNy4xaDE0MC44YzMuOSAwIDcuMS0zLjIgNy4xLTcuMSAwLTMuOS0zLjItNy4xLTcuMS03LjFINjMzLjF6XFxcIj48L3BhdGg+PGc+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTE5OSAyODMzLjhjLTYzIDAtMTE0LjMtNTEuMy0xMTQuMy0xMTQuM1YyNjEuMWMwLTYzIDUxLjMtMTE0LjMgMTE0LjMtMTE0LjNoMTkzLjdjLjcgMCAxLjMuMyAxLjguN3MuNyAxLjEuNyAxLjh2MjYuOWMwIDI3LjkgMjIuNyA1MC42IDUwLjYgNTAuNmg1MTkuOGMyNy45IDAgNTAuNi0yMi43IDUwLjYtNTAuNnYtMjYuOWMwLS43LjItMS4zLjctMS44czEuMS0uNyAxLjctLjdoMTkyLjhjNjMgMCAxMTQuMyA1MS4zIDExNC4zIDExNC4zdjI0NTguNGMwIDYzLTUxLjMgMTE0LjMtMTE0LjMgMTE0LjNIMTk5elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0xMjExLjQgMTQ3LjNjMzAuNCAwIDU5IDExLjggODAuNSAzMy4zczMzLjMgNTAuMSAzMy4zIDgwLjV2MjQ1OC40YzAgMzAuNC0xMS44IDU5LTMzLjMgODAuNXMtNTAuMSAzMy4zLTgwLjUgMzMuM0gxOTljLTMwLjQgMC01OS0xMS44LTgwLjUtMzMuM3MtMzMuMy01MC4xLTMzLjMtODAuNVYyNjEuMWMwLTMwLjQgMTEuOC01OSAzMy4zLTgwLjVzNTAuMS0zMy4zIDgwLjUtMzMuM2gxOTMuN2MuNSAwIDEgLjIgMS40LjYuNC40LjYuOS42IDEuNHYyNi45YzAgMjguMiAyMi45IDUxLjEgNTEuMSA1MS4xaDUxOS44YzI4LjIgMCA1MS4xLTIyLjkgNTEuMS01MS4xdi0yNi45YzAtLjUuMi0xIC42LTEuNC40LS40LjgtLjYgMS40LS42aDE5Mi43bTAtMWgtMTkyLjhjLTEuNiAwLTIuOSAxLjMtMi45IDN2MjYuOWMwIDI3LjUtMjIuNSA1MC4xLTUwLjEgNTAuMUg0NDUuOGMtMjcuNSAwLTUwLjEtMjIuNS01MC4xLTUwLjF2LTI2LjljMC0xLjctMS4zLTMtMy0zSDE5OWMtNjMuNCAwLTExNC44IDUxLjQtMTE0LjggMTE0Ljh2MjQ1OC40YzAgNjMuNCA1MS40IDExNC44IDExNC44IDExNC44aDEwMTIuNGM2My40IDAgMTE0LjgtNTEuNCAxMTQuOC0xMTQuOFYyNjEuMWMwLTYzLjQtNTEuNC0xMTQuOC0xMTQuOC0xMTQuOHpcXFwiPjwvcGF0aD48L2c+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTA0MCAxNjIwXFxcIiBpZD1cXFwiaWNvbi1tc3N1cmZhY2VcXFwiPjxzdHlsZT48IVtDREFUQVsuc3Qwe2ZpbGw6dHJhbnNwYXJlbnR9LnN0MXtmaWxsOiM0MDQwNDB9XV0+PC9zdHlsZT48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTM2LjUgMTI3LjVoNzY3djEzNjVoLTc2N3pcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QxXFxcIiBkPVxcXCJNOTAzIDEyOHYxMzY0SDEzN1YxMjhoNzY2bTEtMUgxMzZ2MTM2Nmg3NjhWMTI3ek05NTMuMyA4MTQuNXYxNmgxMy40bDItMTZ6TTk1My4zIDgxMC45aDE1LjlsMi44LTIxLjRoLTE4Ljd6XFxcIj48L3BhdGg+PGc+PHBhdGggY2xhc3M9XFxcInN0MVxcXCIgZD1cXFwiTTkzMy44IDgxMC45aDE1Ljl2LTIxLjRIOTMxek05MzQuMyA4MTQuNWwyIDE2aDEzLjR2LTE2elxcXCI+PC9wYXRoPjwvZz48Zz48cGF0aCBjbGFzcz1cXFwic3QxXFxcIiBkPVxcXCJNOTgzIDMyYzExIDAgMjAgOSAyMCAyMHYxNTE2YzAgMTEtOSAyMC0yMCAyMEg1OWMtMTEgMC0yMC05LTIwLTIwVjUyYzAtMTEgOS0yMCAyMC0yMGg5MjRtMC00SDU5Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxNTE2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDkyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpcXFwiPjwvcGF0aD48L2c+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgNDgwIDg0NS4yXFxcIiBpZD1cXFwiaWNvbi13aW4xMHBob25lXFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MHtvcGFjaXR5Oi41fS5zdDF7ZmlsbDp0cmFuc3BhcmVudH0uc3Qye2ZpbGw6IzQwNDA0MH0uc3Qze2ZpbGw6bm9uZTtzdHJva2U6IzQwNDA0MDtzdHJva2Utd2lkdGg6MztzdHJva2UtbWl0ZXJsaW1pdDoxMH1dXT48L3N0eWxlPjxnIGNsYXNzPVxcXCJzdDBcXFwiPjxwYXRoIGNsYXNzPVxcXCJzdDFcXFwiIGQ9XFxcIk03Ni41IDEzOC4xaDMyOXY1NjdoLTMyOXpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QyXFxcIiBkPVxcXCJNNDA1IDEzOC42djU2Nkg3N3YtNTY2aDMyOG0xLTFINzZ2NTY4aDMzMHYtNTY4elxcXCI+PC9wYXRoPjwvZz48cGF0aCBjbGFzcz1cXFwic3QyXFxcIiBkPVxcXCJNNDQ4IDU3LjZjLjUgMCAxIC41IDEgMXY3NzRjMCAuNS0uNSAxLTEgMUgzMmMtLjUgMC0xLS41LTEtMXYtNzc0YzAtLjUuNS0xIDEtMWg0MTZtMC00SDMyYy0yLjggMC01IDIuMy01IDV2Nzc0YzAgMi44IDIuMyA1IDUgNWg0MTZjMi44IDAgNS0yLjMgNS01di03NzRjMC0yLjctMi4yLTUtNS01elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDJcXFwiIGQ9XFxcIk00MTUuNSA3MC42YzEzLjUgMCAyNC41IDExIDI0LjUgMjQuNXY3MDBjMCAxMy41LTExIDI0LjUtMjQuNSAyNC41aC0zNTFjLTEzLjUgMC0yNC41LTExLTI0LjUtMjQuNXYtNzAwYzAtMTMuNSAxMS0yNC41IDI0LjUtMjQuNWgzNTFtMC0yaC0zNTFDNDkuOSA2OC42IDM4IDgwLjUgMzggOTUuMXY3MDBjMCAxNC42IDExLjkgMjYuNSAyNi41IDI2LjVoMzUxYzE0LjYgMCAyNi41LTExLjkgMjYuNS0yNi41di03MDBjMC0xNC42LTExLjktMjYuNS0yNi41LTI2LjV6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MlxcXCIgZD1cXFwiTTI2NiA5MC42Yy41IDAgMSAuNSAxIDFzLS41IDEtMSAxaC01NWMtLjUgMC0xLS41LTEtMXMuNS0xIDEtMWg1NW0wLTJoLTU1Yy0xLjYgMC0zIDEuNC0zIDNzMS40IDMgMyAzaDU1YzEuNiAwIDMtMS40IDMtM3MtMS40LTMtMy0zek00NTIgMjAxLjZoNXYxMjFoLTV6TTQ1MiAzNzkuNmg1djYxaC01ek0xMDggNzQxLjZIOTcuNmw1LjktNS45LTQuMy4xLTUgNS0yLjEgMi4xIDIuMSAyLjEgNSA1IDQuMy4xLTUuNS01LjVoMTB6TTIzOCA3NDMuNmgtOXY3LjVsOSAxLjJ6TTI0MCA3NDMuNnY4LjlsMTIgMS42di0xMC41elxcXCI+PC9wYXRoPjxnPjxwYXRoIGNsYXNzPVxcXCJzdDJcXFwiIGQ9XFxcIk0yNDAgNzMyLjd2OC45aDEydi0xMC41ek0yMzggNzMyLjlsLTkgMS4ydjcuNWg5elxcXCI+PC9wYXRoPjwvZz48Zz48Y2lyY2xlIGNsYXNzPVxcXCJzdDNcXFwiIGN4PVxcXCIzODIuNVxcXCIgY3k9XFxcIjc0NC4xXFxcIiByPVxcXCI2XFxcIj48L2NpcmNsZT48cGF0aCBjbGFzcz1cXFwic3QyXFxcIiBkPVxcXCJNMzczLjMgNzUzLjhjLS42LS42LS42LTEuNSAwLTIuMWw0LjQtNC40IDIuMSAyLjEtNC40IDQuNGMtLjYuNi0xLjYuNi0yLjEgMHpcXFwiPjwvcGF0aD48L2c+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGlkPVxcXCJpY29uLXNwbGl0XzE2eDE2XFxcIj48cGF0aCBkPVxcXCJNNyAwaDJ2MTZIN3pNNCA0TC4wMSA4LjAxIDQgMTJsMS0xLTMtMyAzLTN6TTEyLjAxIDRsLTEgMSAzIDMtMyAzIDEgMUwxNiA3Ljk5elxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDMwMCAzMDBcXFwiIGlkPVxcXCJpY29uLXN0YXJ0LWRlc2lnbmluZy1mb3JtXFxcIj48c3R5bGU+PCFbQ0RBVEFbLnN0MHtmaWxsOiMxY2IzOTR9LnN0MXtvcGFjaXR5Oi4zfS5zdDJ7ZmlsbDojMDEwMTAxfS5zdDN7ZmlsbDojZmZmfS5zdDR7ZmlsbDojZDZkNWQ1fS5zdDV7b3BhY2l0eTouMztmaWxsOiMwMTAxMDF9LnN0NntmaWxsOiNmODk4MWZ9XV0+PC9zdHlsZT48Y2lyY2xlIGNsYXNzPVxcXCJzdDBcXFwiIGN4PVxcXCIxNTAuOTRcXFwiIGN5PVxcXCIxNDkuMzVcXFwiIHI9XFxcIjEzNC4zM1xcXCI+PC9jaXJjbGU+PGcgY2xhc3M9XFxcInN0MVxcXCI+PHBhdGggY2xhc3M9XFxcInN0MlxcXCIgZD1cXFwiTTEyNi44IDczSDg4LjQ0djEzNWgxMDZWNzN6XFxcIj48L3BhdGg+PC9nPjxwYXRoIGNsYXNzPVxcXCJzdDNcXFwiIGQ9XFxcIk05My40NCA2OGgxMDZ2MTM1aC0xMDZ6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0NFxcXCIgZD1cXFwiTTEzNS40NCAxNDJoMTd2NGgtMTd6XFxcIj48L3BhdGg+PGNpcmNsZSBjbGFzcz1cXFwic3QzXFxcIiBjeD1cXFwiMTI0Ljk2XFxcIiBjeT1cXFwiMTQzLjY0XFxcIiByPVxcXCI0LjY0XFxcIj48L2NpcmNsZT48cGF0aCBjbGFzcz1cXFwic3QyXFxcIiBkPVxcXCJNMTI0LjgyIDE0OS4zNWE1LjUyIDUuNTIgMCAwIDEtNS41MS01LjUxIDUuNTIgNS41MiAwIDAgMSA1LjUxLTUuNTEgNS41MiA1LjUyIDAgMCAxIDUuNTEgNS41MWMwIDMuMDQtMi40NyA1LjUxLTUuNTEgNS41MXptMC05LjM3Yy0yLjEzIDAtMy44NiAxLjczLTMuODYgMy44NnMxLjczIDMuODYgMy44NiAzLjg2IDMuODYtMS43MyAzLjg2LTMuODYtMS43My0zLjg2LTMuODYtMy44NnpcXFwiPjwvcGF0aD48Y2lyY2xlIGNsYXNzPVxcXCJzdDNcXFwiIGN4PVxcXCIxMjQuODJcXFwiIGN5PVxcXCIxNDMuODRcXFwiIHI9XFxcIi44M1xcXCI+PC9jaXJjbGU+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTEyNC44MiAxNDIuMThjLS45MiAwLTEuNjUuNzQtMS42NSAxLjY1IDAgLjkyLjc0IDEuNjUgMS42NSAxLjY1LjkyIDAgMS42NS0uNzQgMS42NS0xLjY1IDAtLjkxLS43NC0xLjY1LTEuNjUtMS42NXpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3Q0XFxcIiBkPVxcXCJNMTc0LjQ0IDE0MmgxN3Y0aC0xN3pcXFwiPjwvcGF0aD48Y2lyY2xlIGNsYXNzPVxcXCJzdDNcXFwiIGN4PVxcXCIxNjQuMzJcXFwiIGN5PVxcXCIxNDMuNjRcXFwiIHI9XFxcIjQuNjRcXFwiPjwvY2lyY2xlPjxwYXRoIGNsYXNzPVxcXCJzdDJcXFwiIGQ9XFxcIk0xNjQuMjUgMTQ5LjM1YTUuNTIgNS41MiAwIDAgMS01LjUxLTUuNTEgNS41MiA1LjUyIDAgMCAxIDUuNTEtNS41MSA1LjUyIDUuNTIgMCAwIDEgNS41MSA1LjUxYy4wMSAzLjA0LTIuNDYgNS41MS01LjUxIDUuNTF6bTAtOS4zN2MtMi4xMyAwLTMuODYgMS43My0zLjg2IDMuODZzMS43MyAzLjg2IDMuODYgMy44NiAzLjg2LTEuNzMgMy44Ni0zLjg2YTMuODUgMy44NSAwIDAgMC0zLjg2LTMuODZ6XFxcIj48L3BhdGg+PGc+PGNpcmNsZSBjbGFzcz1cXFwic3QzXFxcIiBjeD1cXFwiMTY0LjI1XFxcIiBjeT1cXFwiMTQzLjg0XFxcIiByPVxcXCIuODNcXFwiPjwvY2lyY2xlPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0xNjQuMjUgMTQyLjE4Yy0uOTIgMC0xLjY1Ljc0LTEuNjUgMS42NSAwIC45Mi43NCAxLjY1IDEuNjUgMS42NS45MiAwIDEuNjUtLjc0IDEuNjUtMS42NS4wMS0uOTEtLjczLTEuNjUtMS42NS0xLjY1elxcXCI+PC9wYXRoPjwvZz48Zz48cGF0aCBjbGFzcz1cXFwic3Q0XFxcIiBkPVxcXCJNMTc0LjQ0IDE1N2gxN3Y0aC0xN3pcXFwiPjwvcGF0aD48Y2lyY2xlIGNsYXNzPVxcXCJzdDNcXFwiIGN4PVxcXCIxNjQuMzJcXFwiIGN5PVxcXCIxNTkuMTFcXFwiIHI9XFxcIjQuNjRcXFwiPjwvY2lyY2xlPjxwYXRoIGNsYXNzPVxcXCJzdDJcXFwiIGQ9XFxcIk0xNjQuMjUgMTY0LjhhNS41MiA1LjUyIDAgMCAxLTUuNTEtNS41MSA1LjUyIDUuNTIgMCAwIDEgNS41MS01LjUxYzMuMDQgMCA1LjUxIDIuNDggNS41MSA1LjUxcy0yLjQ2IDUuNTEtNS41MSA1LjUxem0wLTkuMzhjLTIuMTMgMC0zLjg2IDEuNzMtMy44NiAzLjg2czEuNzMgMy44NiAzLjg2IDMuODYgMy44Ni0xLjczIDMuODYtMy44NmEzLjg1IDMuODUgMCAwIDAtMy44Ni0zLjg2elxcXCI+PC9wYXRoPjxnPjxjaXJjbGUgY2xhc3M9XFxcInN0M1xcXCIgY3g9XFxcIjE2NC4yNVxcXCIgY3k9XFxcIjE1OS4yOFxcXCIgcj1cXFwiLjgzXFxcIj48L2NpcmNsZT48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTY0LjI1IDE1Ny42MmMtLjkyIDAtMS42NS43NC0xLjY1IDEuNjUgMCAuOTIuNzQgMS42NSAxLjY1IDEuNjUuOTIgMCAxLjY1LS43NCAxLjY1LTEuNjUuMDEtLjktLjczLTEuNjUtMS42NS0xLjY1elxcXCI+PC9wYXRoPjwvZz48L2c+PGc+PHBhdGggY2xhc3M9XFxcInN0NFxcXCIgZD1cXFwiTTEzNS40NCAxNTdoMTd2NGgtMTd6XFxcIj48L3BhdGg+PGNpcmNsZSBjbGFzcz1cXFwic3QzXFxcIiBjeD1cXFwiMTI0Ljk2XFxcIiBjeT1cXFwiMTU5LjExXFxcIiByPVxcXCI0LjY0XFxcIj48L2NpcmNsZT48cGF0aCBjbGFzcz1cXFwic3QyXFxcIiBkPVxcXCJNMTI0LjgyIDE2NC44YTUuNTIgNS41MiAwIDAgMS01LjUxLTUuNTEgNS41MiA1LjUyIDAgMCAxIDUuNTEtNS41MSA1LjUyIDUuNTIgMCAwIDEgNS41MSA1LjUxIDUuNTIgNS41MiAwIDAgMS01LjUxIDUuNTF6bTAtOS4zOGMtMi4xMyAwLTMuODYgMS43My0zLjg2IDMuODZzMS43MyAzLjg2IDMuODYgMy44NiAzLjg2LTEuNzMgMy44Ni0zLjg2LTEuNzMtMy44Ni0zLjg2LTMuODZ6XFxcIj48L3BhdGg+PGc+PGNpcmNsZSBjbGFzcz1cXFwic3QzXFxcIiBjeD1cXFwiMTI0LjgyXFxcIiBjeT1cXFwiMTU5LjI4XFxcIiByPVxcXCIuODNcXFwiPjwvY2lyY2xlPjxwYXRoIGNsYXNzPVxcXCJzdDBcXFwiIGQ9XFxcIk0xMjQuODIgMTU3LjYyYy0uOTIgMC0xLjY1Ljc0LTEuNjUgMS42NSAwIC45Mi43NCAxLjY1IDEuNjUgMS42NS45MiAwIDEuNjUtLjc0IDEuNjUtMS42NXMtLjc0LTEuNjUtMS42NS0xLjY1elxcXCI+PC9wYXRoPjwvZz48L2c+PGc+PHBhdGggY2xhc3M9XFxcInN0M1xcXCIgZD1cXFwiTTEyMC40NCA4M2g5djloLTl6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MlxcXCIgZD1cXFwiTTEyOS40NCA4NHY4aC04di04aDhtMi0yaC0xMnYxMmgxMlY4MnpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3Q0XFxcIiBkPVxcXCJNMTM3LjQ0IDgyaDU0djRoLTU0ek0xMzcuNDQgOTBoNTR2NGgtNTR6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTEzMi4xMSA4NC43NWwtLjk4LS45Ny00Ljk2IDQuOTYtMi4zMS0yLjMyLS45OC45NyAzLjI5IDMuM3pcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QzXFxcIiBkPVxcXCJNMTIwLjQ0IDEwMGg5djloLTl6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MlxcXCIgZD1cXFwiTTEyOS40NCAxMDF2OGgtOHYtOGg4bTItMmgtMTJ2MTJoMTJWOTl6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0MFxcXCIgZD1cXFwiTTEzMi4xMSAxMDEuNzVsLS45OC0uOTctNC45NiA0Ljk2LTIuMzEtMi4zMi0uOTguOTcgMy4yOSAzLjN6XFxcIj48L3BhdGg+PHBhdGggY2xhc3M9XFxcInN0M1xcXCIgZD1cXFwiTTEyMC40NCAxMTdoOXY5aC05elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDJcXFwiIGQ9XFxcIk0xMjkuNDQgMTE4djhoLTh2LThoOG0yLTJoLTEydjEyaDEydi0xMnpcXFwiPjwvcGF0aD48cGF0aCBjbGFzcz1cXFwic3QwXFxcIiBkPVxcXCJNMTMyLjExIDExOC43NWwtLjk4LS45Ny00Ljk2IDQuOTYtMi4zMS0yLjMyLS45OC45NyAzLjI5IDMuM3pcXFwiPjwvcGF0aD48Zz48cGF0aCBjbGFzcz1cXFwic3Q0XFxcIiBkPVxcXCJNMTM3LjQ0IDEwM2g1NHY0aC01NHpcXFwiPjwvcGF0aD48L2c+PGc+PHBhdGggY2xhc3M9XFxcInN0NFxcXCIgZD1cXFwiTTEzNy40NCAxMTZoNTR2NGgtNTR6TTEzNy40NCAxMjRoMjd2NGgtMjd6XFxcIj48L3BhdGg+PC9nPjwvZz48Zz48cGF0aCBjbGFzcz1cXFwic3Q0XFxcIiBkPVxcXCJNMTA0LjQ0IDkzaC0ydi04LjFhOC4yMyA4LjIzIDAgMCAxLTMgMS42M3YtMS43NWMuNTctLjE4IDEuMTktLjUyIDEuODYtMS4wMi42Ny0uNSAxLjEzLTEuMDggMS4zNy0xLjc1aDEuNzdWOTN6TTEwOC40NCA5M3YtMmgydjJoLTJ6XFxcIj48L3BhdGg+PC9nPjxnPjxwYXRoIGNsYXNzPVxcXCJzdDRcXFwiIGQ9XFxcIk0xMDYuNDQgMTQ3djJIOTguOWMuMDgtLjc2LjMzLTEuNDcuNzQtMi4xNS40MS0uNjggMS4yMi0xLjU3IDIuNDItMi42OS45Ny0uOSAxLjU3LTEuNTIgMS43OS0xLjg0LjMtLjQ0LjQ0LS44OC40NC0xLjMyIDAtLjQ4LS4xMy0uODUtLjM5LTEuMTEtLjI2LS4yNi0uNjEtLjM5LTEuMDctLjM5LS40NSAwLS44MS4xNC0xLjA3LjQxLS4yNy4yNy0uNDIuNzItLjQ2IDEuMzVsLTIuMTUtLjIxYy4xMy0xLjE5LjUzLTIuMDQgMS4yLTIuNTUuNjctLjUyIDEuNTItLjc3IDIuNTMtLjc3IDEuMTEgMCAxLjk4LjMgMi42MS45LjYzLjYuOTUgMS4zNC45NSAyLjIzIDAgLjUxLS4wOS45OS0uMjcgMS40NC0uMTguNDYtLjQ3Ljk0LS44NiAxLjQ0LS4yNi4zMy0uNzMuODEtMS40MSAxLjQzLS42OC42Mi0xLjExIDEuMDQtMS4yOSAxLjI0LS4xOC4yLS4zMy40LS40NC42aDQuMjd6TTEwOC40NCAxNDl2LTJoMnYyaC0yelxcXCI+PC9wYXRoPjwvZz48Zz48cGF0aCBjbGFzcz1cXFwic3Q0XFxcIiBkPVxcXCJNOTguODMgMTg1LjIxbDIuMDgtLjI1Yy4wNy41My4yNC45NC41NCAxLjIyLjI5LjI4LjY0LjQyIDEuMDYuNDIuNDQgMCAuODItLjE3IDEuMTItLjUuMy0uMzQuNDYtLjc5LjQ2LTEuMzYgMC0uNTQtLjE1LS45Ny0uNDQtMS4yOS0uMjktLjMyLS42NS0uNDctMS4wNi0uNDctLjI4IDAtLjYuMDUtLjk5LjE2bC4yNC0xLjc1Yy41OC4wMiAxLjAzLS4xMSAxLjMzLS4zOC4zMS0uMjcuNDYtLjYyLjQ2LTEuMDcgMC0uMzgtLjExLS42OC0uMzQtLjktLjIyLS4yMi0uNTItLjM0LS45LS4zNC0uMzcgMC0uNjguMTMtLjk0LjM4LS4yNi4yNi0uNDIuNjMtLjQ3IDEuMTJsLTEuOTgtLjM0Yy4xNC0uNjguMzUtMS4yMi42Mi0xLjYzLjI4LS40MS42Ny0uNzIgMS4xNi0uOTYuNS0uMjMgMS4wNS0uMzUgMS42Ny0uMzUgMS4wNiAwIDEuOS4zNCAyLjU0IDEuMDEuNTMuNTUuNzkgMS4xNy43OSAxLjg3IDAgLjk4LS41NCAxLjc3LTEuNjEgMi4zNi42NC4xNCAxLjE2LjQ1IDEuNTQuOTMuMzkuNDguNTggMS4wNi41OCAxLjc0IDAgLjk4LS4zNiAxLjgyLTEuMDggMi41Mi0uNzIuNjktMS42MSAxLjA0LTIuNjkgMS4wNC0xLjAyIDAtMS44Ni0uMjktMi41My0uODhzLTEuMDUtMS4zNS0xLjE2LTIuM3pNMTA4LjQ0IDE4OHYtMmgydjJoLTJ6XFxcIj48L3BhdGg+PC9nPjxwYXRoIGNsYXNzPVxcXCJzdDRcXFwiIGQ9XFxcIk0xMTkuNDQgMTc3aDcydjExaC03MnpcXFwiPjwvcGF0aD48Y2lyY2xlIGNsYXNzPVxcXCJzdDVcXFwiIGN4PVxcXCIxOTguNlxcXCIgY3k9XFxcIjIwNi4yNFxcXCIgcj1cXFwiMzUuMTVcXFwiPjwvY2lyY2xlPjxnPjxjaXJjbGUgY2xhc3M9XFxcInN0NlxcXCIgY3g9XFxcIjIwMy40NFxcXCIgY3k9XFxcIjIwM1xcXCIgcj1cXFwiMzVcXFwiPjwvY2lyY2xlPjxwYXRoIGNsYXNzPVxcXCJzdDNcXFwiIGQ9XFxcIk0yMDMuNDQgMjI2Yy0yLjIgMC00LTEuOC00LTR2LTM4YzAtMi4yIDEuOC00IDQtNHM0IDEuOCA0IDR2MzhjMCAyLjItMS44IDQtNCA0elxcXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVxcXCJzdDNcXFwiIGQ9XFxcIk0xODAuNDQgMjAzYzAtMi4yIDEuOC00IDQtNGgzOGMyLjIgMCA0IDEuOCA0IDRzLTEuOCA0LTQgNGgtMzhjLTIuMiAwLTQtMS44LTQtNHpcXFwiPjwvcGF0aD48L2c+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Qm94PVxcXCIwIDAgMjQgMjRcXFwiIGlkPVxcXCJpY29uLW1vZGlmaWVkXFxcIj48cGF0aCBvcGFjaXR5PVxcXCIuOVxcXCIgZD1cXFwiTTE0IDExVjhoLTEuMmMtLjEtLjQtLjMtLjgtLjUtMS4ybC45LS44TDExIDMuOGwtLjkuOWMtLjMtLjItLjctLjQtMS4xLS41VjNINnYxLjJjLS40LjEtLjguMy0xLjIuNUw0IDMuOCAxLjggNmwuOS45Yy0uMi4zLS40LjctLjUgMS4xSDF2M2gxLjJjLjEuNC4zLjguNSAxLjJsLS45LjhMNCAxNS4ybC45LS45Yy40LjIuOC40IDEuMi41VjE2aDN2LTEuMmMuNC0uMS44LS4zIDEuMi0uNWwuOS45IDIuMS0yLjEtLjktLjljLjItLjQuNC0uOC41LTEuMkgxNHptLTYuNSAxLjVjLTEuNyAwLTMtMS4zLTMtM3MxLjMtMyAzLTMgMyAxLjMgMyAzLTEuMyAzLTMgM3pcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuNlxcXCIgZD1cXFwiTTI0IDE3di0yaC0xLjFjLS4xLS40LS4yLS43LS40LTFsLjgtLjgtMS40LTEuNC0uOS44Yy0uMy0uMi0uNy0uMy0xLS40VjExaC0ydjEuMWMtLjQuMS0uNy4yLTEgLjRsLS44LS44LTEuNCAxLjQuOC44Yy0uMi4zLS4zLjctLjQgMUgxNHYyaDEuMWMuMS40LjIuNy40IDFsLS44LjggMS40IDEuNC44LS44Yy4zLjIuNy4zIDEgLjRWMjFoMnYtMS4xYy40LS4xLjctLjIgMS0uNGwuOC44IDEuNC0xLjQtLjctLjljLjItLjMuMy0uNy40LTFIMjR6bS01IDFjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelxcXCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld0JveD1cXFwiMCAwIDI0IDI0XFxcIiBpZD1cXFwiaWNvbi1zYXZlZFxcXCI+PHBhdGggb3BhY2l0eT1cXFwiLjlcXFwiIGQ9XFxcIk00IDEzbDItMiA0IDQgOS05IDIgMi0xMSAxMXpcXFwiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdCb3g9XFxcIjAgMCAyNCAyNFxcXCIgaWQ9XFxcImljb24tc2F2aW5nXFxcIj48cGF0aCBvcGFjaXR5PVxcXCIuNVxcXCIgZD1cXFwiTTEwIDE3aDN2NWgtM3pcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuOVxcXCIgZD1cXFwiTTEwIDFoM3Y1aC0zelxcXCI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9XFxcIi4yXFxcIiBkPVxcXCJNNiAxMHYzSDF2LTN6XFxcIj48L3BhdGg+PHBhdGggb3BhY2l0eT1cXFwiLjdcXFwiIGQ9XFxcIk0yMiAxMHYzaC01di0zelxcXCI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9XFxcIi42XFxcIiBkPVxcXCJNMTQuMzkgMTYuNDVsMi4xMi0yLjEyMSAzLjUzNiAzLjUzNS0yLjEyMSAyLjEyMXpcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuMVxcXCIgZD1cXFwiTTIuOTU0IDUuMTM2bDIuMTIxLTIuMTIxTDguNjEgNi41NSA2LjQ5IDguNjcyelxcXCI+PC9wYXRoPjxwYXRoIG9wYWNpdHk9XFxcIi4zXFxcIiBkPVxcXCJNNi40OSAxNC4zMjhsMi4xMiAyLjEyMi0zLjUzNSAzLjUzNS0yLjEyMS0yLjEyMXpcXFwiPjwvcGF0aD48cGF0aCBvcGFjaXR5PVxcXCIuOFxcXCIgZD1cXFwiTTE3LjkyNSAzLjAxNWwyLjEyMSAyLjEyLTMuNTM1IDMuNTM2LTIuMTIyLTIuMTJ6XFxcIj48L3BhdGg+PC9zeW1ib2w+PC9zdmc+XCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInN2ZC1lbWJlZC1zdXJ2ZXktdGFiXFxcIj5cXG4gIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmRfY3VzdG9tX3NlbGVjdCBzdmRfZW1iZWRfdGFiXFxcIj5cXG4gICAgICA8c2VsZWN0XFxuICAgICAgICBvbm1vdXNld2hlZWw9XFxcInJldHVybiBmYWxzZTtcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImlmOiB0cnVlLCB2YWx1ZTprb0xpYnJhcnlWZXJzaW9uXFxcIlxcbiAgICAgID5cXG4gICAgICAgIDxvcHRpb25cXG4gICAgICAgICAgdmFsdWU9XFxcImFuZ3VsYXJcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy5hbmd1bGFyJylcXFwiXFxuICAgICAgICA+PC9vcHRpb24+XFxuICAgICAgICA8b3B0aW9uXFxuICAgICAgICAgIHZhbHVlPVxcXCJqcXVlcnlcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy5qcXVlcnknKVxcXCJcXG4gICAgICAgID48L29wdGlvbj5cXG4gICAgICAgIDxvcHRpb25cXG4gICAgICAgICAgdmFsdWU9XFxcImtub2Nrb3V0XFxcIlxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmdldExvY1N0cmluZygnZXcua25vY2tvdXQnKVxcXCJcXG4gICAgICAgID48L29wdGlvbj5cXG4gICAgICAgIDxvcHRpb25cXG4gICAgICAgICAgdmFsdWU9XFxcInJlYWN0XFxcIlxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmdldExvY1N0cmluZygnZXcucmVhY3QnKVxcXCJcXG4gICAgICAgID48L29wdGlvbj5cXG4gICAgICAgIDxvcHRpb25cXG4gICAgICAgICAgdmFsdWU9XFxcInZ1ZVxcXCJcXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ2V3LnZ1ZScpXFxcIlxcbiAgICAgICAgPjwvb3B0aW9uPlxcbiAgICAgIDwvc2VsZWN0PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1jb250cm9sIHN2ZF9jdXN0b21fc2VsZWN0IHN2ZF9lbWJlZF90YWJcXFwiPlxcbiAgICAgIDxzZWxlY3RcXG4gICAgICAgIG9ubW91c2V3aGVlbD1cXFwicmV0dXJuIGZhbHNlO1xcXCJcXG4gICAgICAgIGRhdGEtYmluZD1cXFwiaWY6IHRydWUsIHZhbHVlOmtvVGhlbWVOYW1lXFxcIlxcbiAgICAgID5cXG4gICAgICAgIDxvcHRpb25cXG4gICAgICAgICAgdmFsdWU9XFxcIm1vZGVyblxcXCJcXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ2V3Lm1vZGVybicpXFxcIlxcbiAgICAgICAgPjwvb3B0aW9uPlxcbiAgICAgICAgPG9wdGlvblxcbiAgICAgICAgICB2YWx1ZT1cXFwiZGVmYXVsdFxcXCJcXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ2V3LmRlZmF1bHQnKVxcXCJcXG4gICAgICAgID48L29wdGlvbj5cXG4gICAgICAgIDxvcHRpb25cXG4gICAgICAgICAgdmFsdWU9XFxcIm9yYW5nZVxcXCJcXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ2V3Lm9yYW5nZScpXFxcIlxcbiAgICAgICAgPjwvb3B0aW9uPlxcbiAgICAgICAgPG9wdGlvblxcbiAgICAgICAgICB2YWx1ZT1cXFwiZGFya2JsdWVcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy5kYXJrYmx1ZScpXFxcIlxcbiAgICAgICAgPjwvb3B0aW9uPlxcbiAgICAgICAgPG9wdGlvblxcbiAgICAgICAgICB2YWx1ZT1cXFwiZGFya3Jvc2VcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy5kYXJrcm9zZScpXFxcIlxcbiAgICAgICAgPjwvb3B0aW9uPlxcbiAgICAgICAgPG9wdGlvblxcbiAgICAgICAgICB2YWx1ZT1cXFwic3RvbmVcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy5zdG9uZScpXFxcIlxcbiAgICAgICAgPjwvb3B0aW9uPlxcbiAgICAgICAgPG9wdGlvblxcbiAgICAgICAgICB2YWx1ZT1cXFwid2ludGVyXFxcIlxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmdldExvY1N0cmluZygnZXcud2ludGVyJylcXFwiXFxuICAgICAgICA+PC9vcHRpb24+XFxuICAgICAgICA8b3B0aW9uXFxuICAgICAgICAgIHZhbHVlPVxcXCJ3aW50ZXJzdG9uZVxcXCJcXG4gICAgICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ2V3LndpbnRlcnN0b25lJylcXFwiXFxuICAgICAgICA+PC9vcHRpb24+XFxuICAgICAgICA8b3B0aW9uXFxuICAgICAgICAgIHZhbHVlPVxcXCJib290c3RyYXBcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy5ib290c3RyYXAnKVxcXCJcXG4gICAgICAgID48L29wdGlvbj5cXG4gICAgICA8L3NlbGVjdD5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmRfY3VzdG9tX3NlbGVjdCBzdmRfZW1iZWRfdGFiXFxcIj5cXG4gICAgICA8c2VsZWN0XFxuICAgICAgICBvbm1vdXNld2hlZWw9XFxcInJldHVybiBmYWxzZTtcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImlmOiB0cnVlLCB2YWx1ZTprb1Nob3dBc1dpbmRvd1xcXCJcXG4gICAgICA+XFxuICAgICAgICA8b3B0aW9uXFxuICAgICAgICAgIHZhbHVlPVxcXCJwYWdlXFxcIlxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmdldExvY1N0cmluZygnZXcuc2hvd09uUGFnZScpXFxcIlxcbiAgICAgICAgPjwvb3B0aW9uPlxcbiAgICAgICAgPG9wdGlvblxcbiAgICAgICAgICB2YWx1ZT1cXFwid2luZG93XFxcIlxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmdldExvY1N0cmluZygnZXcuc2hvd0luV2luZG93JylcXFwiXFxuICAgICAgICA+PC9vcHRpb24+XFxuICAgICAgPC9zZWxlY3Q+XFxuICAgIDwvZGl2PlxcbiAgICA8bGFiZWxcXG4gICAgICBjbGFzcz1cXFwiY2hlY2tib3gtaW5saW5lIGZvcm0tY2hlY2stbGFiZWxcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOmtvSGFzSWRzXFxcIlxcbiAgICA+XFxuICAgICAgPGlucHV0IHR5cGU9XFxcImNoZWNrYm94XFxcIiBkYXRhLWJpbmQ9XFxcImNoZWNrZWQ6a29Mb2FkU3VydmV5XFxcIiAvPlxcbiAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy5sb2FkRnJvbVNlcnZlcicpXFxcIj48L3NwYW4+XFxuICAgIDwvbGFiZWw+XFxuICA8L2Rpdj5cXG4gIDxkaXYgY2xhc3M9XFxcInBhbmVsIGNhcmRcXFwiPlxcbiAgICA8ZGl2XFxuICAgICAgY2xhc3M9XFxcInBhbmVsLWhlYWRpbmcgY2FyZC1oZWFkZXJcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ2V3LnRpdGxlU2NyaXB0JylcXFwiXFxuICAgID48L2Rpdj5cXG4gICAgPGRpdiBkYXRhLWJpbmQ9XFxcInZpc2libGU6aGFzQWNlRWRpdG9yXFxcIj5cXG4gICAgICA8ZGl2IGlkPVxcXCJzdXJ2ZXlFbWJlZGluZ0hlYWRcXFwiIHN0eWxlPVxcXCJoZWlnaHQ6IDcwcHg7IHdpZHRoOiAxMDAlXFxcIj48L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDx0ZXh0YXJlYVxcbiAgICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTohaGFzQWNlRWRpdG9yLCB0ZXh0OiBrb0hlYWRUZXh0XFxcIlxcbiAgICAgIHN0eWxlPVxcXCJoZWlnaHQ6IDcwcHg7IHdpZHRoOiAxMDAlXFxcIlxcbiAgICA+PC90ZXh0YXJlYT5cXG4gIDwvZGl2PlxcbiAgPGRpdiBjbGFzcz1cXFwicGFuZWwgY2FyZFxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBrb1Zpc2libGVIdG1sXFxcIj5cXG4gICAgPGRpdlxcbiAgICAgIGNsYXNzPVxcXCJwYW5lbC1oZWFkaW5nIGNhcmQtaGVhZGVyXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy50aXRsZUh0bWwnKVxcXCJcXG4gICAgPjwvZGl2PlxcbiAgICA8ZGl2IGRhdGEtYmluZD1cXFwidmlzaWJsZTpoYXNBY2VFZGl0b3JcXFwiPlxcbiAgICAgIDxkaXYgaWQ9XFxcInN1cnZleUVtYmVkaW5nQm9keVxcXCIgc3R5bGU9XFxcImhlaWdodDogMzBweDsgd2lkdGg6IDEwMCVcXFwiPjwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPHRleHRhcmVhXFxuICAgICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiFoYXNBY2VFZGl0b3IsIHRleHQ6IGtvQm9keVRleHRcXFwiXFxuICAgICAgc3R5bGU9XFxcImhlaWdodDogMzBweDsgd2lkdGg6IDEwMCVcXFwiXFxuICAgID48L3RleHRhcmVhPlxcbiAgPC9kaXY+XFxuICA8ZGl2IGNsYXNzPVxcXCJwYW5lbCBjYXJkXFxcIj5cXG4gICAgPGRpdlxcbiAgICAgIGNsYXNzPVxcXCJwYW5lbC1oZWFkaW5nIGNhcmQtaGVhZGVyXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdldy50aXRsZUphdmFTY3JpcHQnKVxcXCJcXG4gICAgPjwvZGl2PlxcbiAgICA8ZGl2IGRhdGEtYmluZD1cXFwidmlzaWJsZTpoYXNBY2VFZGl0b3JcXFwiPlxcbiAgICAgIDxkaXYgaWQ9XFxcInN1cnZleUVtYmVkaW5nSmF2YVxcXCIgc3R5bGU9XFxcImhlaWdodDogMzAwcHg7IHdpZHRoOiAxMDAlXFxcIj48L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDx0ZXh0YXJlYVxcbiAgICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTohaGFzQWNlRWRpdG9yLCB0ZXh0OiBrb0phdmFUZXh0XFxcIlxcbiAgICAgIHN0eWxlPVxcXCJoZWlnaHQ6IDMwMHB4OyB3aWR0aDogMTAwJVxcXCJcXG4gICAgPjwvdGV4dGFyZWE+XFxuICA8L2Rpdj5cXG48L2Rpdj5cXG5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlKU09ONSB9IGZyb20gXCIuLi9qc29uNVwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcblxuaW1wb3J0IFwiLi9lbWJlZC5zY3NzXCI7XG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vZW1iZWQuaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIFN1cnZleUVtYmVkaW5nV2luZG93IHtcbiAgcHJpdmF0ZSBqc29uVmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBzdXJ2ZXlFbWJlZGluZ0hlYWQ6IEFjZUFqYXguRWRpdG9yO1xuICBwcml2YXRlIHN1cnZleUVtYmVkaW5nSmF2YTogQWNlQWpheC5FZGl0b3I7XG4gIHByaXZhdGUgc3VydmV5RW1iZWRpbmdCb2R5OiBBY2VBamF4LkVkaXRvcjtcbiAga29IZWFkVGV4dDogYW55O1xuICBrb0JvZHlUZXh0OiBhbnk7XG4gIGtvSmF2YVRleHQ6IGFueTtcbiAgcHVibGljIHN1cnZleUlkOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgc3VydmV5UG9zdElkOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZ2VuZXJhdGVWYWxpZEpTT046IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHN1cnZleUpTVmVyc2lvbjogc3RyaW5nID0gU3VydmV5LlZlcnNpb247XG4gIHB1YmxpYyBzdXJ2ZXlDRE5QYXRoOiBzdHJpbmcgPSBcImh0dHBzOi8vdW5wa2cuY29tXCI7XG4gIGtvU2hvd0FzV2luZG93OiBhbnk7XG4gIGtvVGhlbWVOYW1lOiBhbnk7XG4gIGtvSGFzSWRzOiBhbnk7XG4gIGtvTG9hZFN1cnZleTogYW55O1xuICBrb0xpYnJhcnlWZXJzaW9uOiBhbnk7XG4gIGtvVmlzaWJsZUh0bWw6IGFueTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUNvbXBsZXRlQ29kZSA9IHtcbiAgICBhbmd1bGFyOiBcIiAgICAgICAgc3VydmV5Lm9uQ29tcGxldGUuYWRkKHNlbmREYXRhVG9TZXJ2ZXIpO1xcblwiLFxuICAgIGpxdWVyeTogXCJcXG4gICAgb25Db21wbGV0ZTogc2VuZERhdGFUb1NlcnZlclwiLFxuICAgIGtub2Nrb3V0OiBcIlxcbnN1cnZleS5vbkNvbXBsZXRlLmFkZChzZW5kRGF0YVRvU2VydmVyKTtcIixcbiAgICByZWFjdDogXCIgb25Db21wbGV0ZT17IHNlbmREYXRhVG9TZXJ2ZXIgfVwiLFxuICAgIHZ1ZTogXCJcXG5zdXJ2ZXkub25Db21wbGV0ZS5hZGQoc2VuZERhdGFUb1NlcnZlcik7XCIsXG4gIH07XG4gIHByaXZhdGUgcGxhdGZvcm1KU29uUGFnZSA9IHtcbiAgICBhbmd1bGFyOlxuICAgICAgXCJAQ29tcG9uZW50KHtcXG4gIHNlbGVjdG9yOiAnbmctYXBwJyxcXG4gICAgICAgIHRlbXBsYXRlOiBcXG4gICAgICAgIDxkaXYgaWQ9J3N1cnZleUVsZW1lbnQnPjwvZGl2PlxcXCIsXFxufSlcXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcXG4gICAgbmdPbkluaXQoKSB7XFxuICAgICAgICB2YXIgc3VydmV5ID0gbmV3IFN1cnZleS5Nb2RlbChzdXJ2ZXlKU09OKTtcXG4jY29tcGxldGUjICAgICAgIFN1cnZleS5TdXJ2ZXlORy5yZW5kZXIoXFxcInN1cnZleUVsZW1lbnRcXFwiLCB7IG1vZGVsOiBzdXJ2ZXkgfSk7XFxuICAgIH1cXG59XCIsXG4gICAganF1ZXJ5OlxuICAgICAgJ3ZhciBzdXJ2ZXkgPSBuZXcgU3VydmV5Lk1vZGVsKHN1cnZleUpTT04pO1xcbiQoXCIjc3VydmV5Q29udGFpbmVyXCIpLlN1cnZleSh7XFxuICAgIG1vZGVsOiBzdXJ2ZXksI2NvbXBsZXRlI1xcbn0pOycsXG4gICAga25vY2tvdXQ6XG4gICAgICAndmFyIHN1cnZleSA9IG5ldyBTdXJ2ZXkuTW9kZWwoc3VydmV5SlNPTiwgXCJzdXJ2ZXlDb250YWluZXJcIik7I2NvbXBsZXRlIycsXG4gICAgcmVhY3Q6XG4gICAgICAnUmVhY3RET00ucmVuZGVyKFxcbiAgICA8U3VydmV5LlN1cnZleSBqc29uPXsgc3VydmV5SlNPTiB9I2NvbXBsZXRlIyAvPiwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdXJ2ZXlDb250YWluZXJcIikpOycsXG4gICAgdnVlOlxuICAgICAgXCJ2YXIgc3VydmV5ID0gbmV3IFN1cnZleS5Nb2RlbChzdXJ2ZXlKU09OKTsjY29tcGxldGUjXFxubmV3IFZ1ZSh7IGVsOiAnI3N1cnZleUNvbnRhaW5lcicsIGRhdGE6IHsgc3VydmV5OiBzdXJ2ZXkgfSB9KTtcIixcbiAgfTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUpTb25XaW5kb3cgPSB7XG4gICAgYW5ndWxhcjpcbiAgICAgIFwiQENvbXBvbmVudCh7XFxuICBzZWxlY3RvcjogJ25nLWFwcCcsXFxuICAgICAgICB0ZW1wbGF0ZTogXFxuICAgICAgICA8ZGl2IGlkPSdzdXJ2ZXlFbGVtZW50Jz48L2Rpdj5cXFwiLFxcbn0pXFxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCB7XFxuICAgIG5nT25Jbml0KCkge1xcbiAgICAgICAgdmFyIHN1cnZleSA9IG5ldyBTdXJ2ZXkuTW9kZWwoc3VydmV5SlNPTik7I2NvbXBsZXRlI1xcbiAgICAgICBTdXJ2ZXkuU3VydmV5V2luZG93TkcucmVuZGVyKFxcXCJzdXJ2ZXlFbGVtZW50XFxcIiwgeyBtb2RlbDogc3VydmV5IH0pO1xcbiAgICB9XFxufVwiLFxuICAgIGpxdWVyeTpcbiAgICAgICd2YXIgc3VydmV5ID0gbmV3IFN1cnZleS5Nb2RlbChzdXJ2ZXlKU09OKTtcXG4kKFwiI3N1cnZleUNvbnRhaW5lclwiKS5TdXJ2ZXlXaW5kb3coe1xcbiAgICBtb2RlbDogc3VydmV5LCNjb21wbGV0ZSNcXG59KTsnLFxuICAgIGtub2Nrb3V0OlxuICAgICAgXCJ2YXIgc3VydmV5ID0gbmV3IFN1cnZleS5Nb2RlbChzdXJ2ZXlKU09OKTtcXG5zdXJ2ZXlXaW5kb3cuc2hvdygpOyNjb21wbGV0ZSNcIixcbiAgICByZWFjdDpcbiAgICAgICdSZWFjdERPTS5yZW5kZXIoXFxuICAgIDxTdXJ2ZXkuU3VydmV5V2luZG93IGpzb249eyBzdXJ2ZXlKU09OIH0gI2NvbXBsZXRlIyAvPiwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdXJ2ZXlDb250YWluZXJcIikpOycsXG4gICAgdnVlOiBcIlwiLFxuICB9O1xuICBwcml2YXRlIHBsYXRmb3JtSHRtbG9uUGFnZSA9IHtcbiAgICBhbmd1bGFyOiBcIjxuZy1hcHA+PC9uZy1hcHA+XCIsXG4gICAganF1ZXJ5OiAnPGRpdiBpZD1cInN1cnZleUNvbnRhaW5lclwiPjwvZGl2PicsXG4gICAga25vY2tvdXQ6ICc8ZGl2IGlkPVwic3VydmV5Q29udGFpbmVyXCI+PC9kaXY+JyxcbiAgICByZWFjdDogJzxkaXYgaWQ9XCJzdXJ2ZXlDb250YWluZXJcIj48L2Rpdj4nLFxuICAgIHZ1ZTogJzxkaXYgaWQ9XCJzdXJ2ZXlDb250YWluZXJcIj48c3VydmV5IDpzdXJ2ZXk9XCJzdXJ2ZXlcIj48L3N1cnZleT48L2Rpdj4nLFxuICB9O1xuICBwcml2YXRlIHBsYXRmb3JtSHRtbG9uV2luZG93ID0ge1xuICAgIGFuZ3VsYXI6IFwiPG5nLWFwcD48L25nLWFwcD5cIixcbiAgICBqcXVlcnk6ICc8ZGl2IGlkPVwic3VydmV5Q29udGFpbmVyXCI+PC9kaXY+JyxcbiAgICBrbm9ja291dDogXCJcIixcbiAgICByZWFjdDogJzxkaXYgaWQ9XCJzdXJ2ZXlDb250YWluZXJcIj48L2Rpdj4nLFxuICAgIHZ1ZTpcbiAgICAgIFwiPGRpdiBpZD0nc3VydmV5Q29udGFpbmVyJz48c3VydmV5LXdpbmRvdyA6c3VydmV5PSdzdXJ2ZXknPjwvc3VydmV5LXdpbmRvdz48L2Rpdj5cIixcbiAgfTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMua29MaWJyYXJ5VmVyc2lvbiA9IGtvLm9ic2VydmFibGUoXCJqcXVlcnlcIik7XG4gICAgdGhpcy5rb1Nob3dBc1dpbmRvdyA9IGtvLm9ic2VydmFibGUoXCJwYWdlXCIpO1xuICAgIHRoaXMua29UaGVtZU5hbWUgPSBrby5vYnNlcnZhYmxlKFwibW9kZXJuXCIpO1xuICAgIHRoaXMua29IYXNJZHMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgICB0aGlzLmtvTG9hZFN1cnZleSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXG4gICAgdGhpcy5rb0hlYWRUZXh0ID0ga28ub2JzZXJ2YWJsZShcIlwiKTtcbiAgICB0aGlzLmtvSmF2YVRleHQgPSBrby5vYnNlcnZhYmxlKFwiXCIpO1xuICAgIHRoaXMua29Cb2R5VGV4dCA9IGtvLm9ic2VydmFibGUoXCJcIik7XG5cbiAgICB0aGlzLmtvVmlzaWJsZUh0bWwgPSBrby5jb21wdXRlZChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBzZWxmLmtvU2hvd0FzV2luZG93KCkgPT0gXCJwYWdlXCIgfHxcbiAgICAgICAgc2VsZi5wbGF0Zm9ybUh0bWxvbldpbmRvd1tzZWxmLmtvTGlicmFyeVZlcnNpb24oKV0gIT0gXCJcIlxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLmtvTGlicmFyeVZlcnNpb24uc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgc2VsZi5zZXRIZWFkVGV4dCgpO1xuICAgICAgc2VsZi5zZXRKYXZhVGVzdCgpO1xuICAgICAgc2VsZi5zZXRCb2R5VGV4dCgpO1xuICAgIH0pO1xuICAgIHRoaXMua29TaG93QXNXaW5kb3cuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgc2VsZi5zZXRKYXZhVGVzdCgpO1xuICAgICAgc2VsZi5zZXRCb2R5VGV4dCgpO1xuICAgIH0pO1xuICAgIHRoaXMua29UaGVtZU5hbWUuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgc2VsZi5zZXRIZWFkVGV4dCgpO1xuICAgICAgc2VsZi5zZXRKYXZhVGVzdCgpO1xuICAgIH0pO1xuICAgIHRoaXMua29Mb2FkU3VydmV5LnN1YnNjcmliZShmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIHNlbGYuc2V0SmF2YVRlc3QoKTtcbiAgICB9KTtcbiAgICB0aGlzLnN1cnZleUVtYmVkaW5nSGVhZCA9IG51bGw7XG4gIH1cbiAgcHVibGljIGdldExvY1N0cmluZyhuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhuYW1lKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGpzb24oKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5qc29uVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBqc29uKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmpzb25WYWx1ZSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgaGFzQWNlRWRpdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgYWNlICE9PSBcInVuZGVmaW5lZFwiO1xuICB9XG4gIHB1YmxpYyBzaG93KCkge1xuICAgIGlmICh0aGlzLmhhc0FjZUVkaXRvciAmJiB0aGlzLnN1cnZleUVtYmVkaW5nSGVhZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLnN1cnZleUVtYmVkaW5nSGVhZCA9IHRoaXMuY3JlYXRlRWRpdG9yKFwic3VydmV5RW1iZWRpbmdIZWFkXCIpO1xuICAgICAgdGhpcy5zdXJ2ZXlFbWJlZGluZ0JvZHkgPSB0aGlzLmNyZWF0ZUVkaXRvcihcInN1cnZleUVtYmVkaW5nQm9keVwiKTtcbiAgICAgIHRoaXMuc3VydmV5RW1iZWRpbmdKYXZhID0gdGhpcy5jcmVhdGVFZGl0b3IoXCJzdXJ2ZXlFbWJlZGluZ0phdmFcIik7XG4gICAgfVxuICAgIHRoaXMua29IYXNJZHModGhpcy5zdXJ2ZXlJZCAmJiB0aGlzLnN1cnZleVBvc3RJZCk7XG4gICAgdGhpcy5zZXRCb2R5VGV4dCgpO1xuICAgIHRoaXMuc2V0SGVhZFRleHQoKTtcbiAgICB0aGlzLnNldEphdmFUZXN0KCk7XG4gIH1cbiAgcHJpdmF0ZSBzZXRCb2R5VGV4dCgpIHtcbiAgICB0aGlzLnNldFRleHRUb0VkaXRvcihcbiAgICAgIHRoaXMuc3VydmV5RW1iZWRpbmdCb2R5LFxuICAgICAgdGhpcy5rb0JvZHlUZXh0LFxuICAgICAgdGhpcy5wbGF0Zm9ybUh0bWxvblBhZ2VbdGhpcy5rb0xpYnJhcnlWZXJzaW9uKCldXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIHNldEhlYWRUZXh0KCkge1xuICAgIHZhciBwbGF0Zm9ybSA9IHRoaXMua29MaWJyYXJ5VmVyc2lvbigpO1xuICAgIHZhciBwbGF0Zm9ybUZpbGVOYW1lO1xuICAgIHZhciBjc3NGaWxlTmFtZSA9IHRoaXMua29UaGVtZU5hbWUoKSA9PSBcIm1vZGVyblwiID8gXCJtb2Rlcm5cIiA6IFwic3VydmV5XCI7XG4gICAgdmFyIHN1cnZleUpTVmVyc2lvbiA9IHRoaXMuc3VydmV5SlNWZXJzaW9uO1xuICAgIHZhciBjZG5QYXRoID0gYCR7dGhpcy5zdXJ2ZXlDRE5QYXRofS9zdXJ2ZXktJHtwbGF0Zm9ybX1AJHtzdXJ2ZXlKU1ZlcnNpb259YDtcblxuICAgIHZhciBoZWFkVGV4dCA9XG4gICAgICBcIjwhLS0gWW91ciBwbGF0Zm9ybSAoXCIgKyB0aGlzLmtvTGlicmFyeVZlcnNpb24oKSArIFwiKSBzY3JpcHRzLiAtLT5cXG5cIjtcbiAgICBpZiAodGhpcy5rb1RoZW1lTmFtZSgpICE9IFwiYm9vdHN0cmFwXCIpIHtcbiAgICAgIGhlYWRUZXh0ICs9IGBcXG48bGluayBocmVmPVwiJHtjZG5QYXRofS8ke2Nzc0ZpbGVOYW1lfS5jc3NcIiB0eXBlPVwidGV4dC9jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz5gO1xuICAgIH1cblxuICAgIGlmIChwbGF0Zm9ybSA9PT0gXCJrbm9ja291dFwiKSB7XG4gICAgICBwbGF0Zm9ybUZpbGVOYW1lID0gXCJrb1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICBwbGF0Zm9ybUZpbGVOYW1lID0gcGxhdGZvcm07XG4gICAgfVxuXG4gICAgaGVhZFRleHQgKz0gYFxcbjxzY3JpcHQgc3JjPVwiJHtjZG5QYXRofS9zdXJ2ZXkuJHtwbGF0Zm9ybUZpbGVOYW1lfS5taW4uanNcIj48L3NjcmlwdD5gO1xuICAgIHRoaXMuc2V0VGV4dFRvRWRpdG9yKHRoaXMuc3VydmV5RW1iZWRpbmdIZWFkLCB0aGlzLmtvSGVhZFRleHQsIGhlYWRUZXh0KTtcbiAgfVxuICBwcml2YXRlIHNldEphdmFUZXN0KCkge1xuICAgIHRoaXMuc2V0VGV4dFRvRWRpdG9yKFxuICAgICAgdGhpcy5zdXJ2ZXlFbWJlZGluZ0phdmEsXG4gICAgICB0aGlzLmtvSmF2YVRleHQsXG4gICAgICB0aGlzLmdldEphdmFUZXh0KClcbiAgICApO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRWRpdG9yKGVsZW1lbnROYW1lOiBzdHJpbmcpOiBBY2VBamF4LkVkaXRvciB7XG4gICAgdmFyIGVkaXRvciA9IGFjZS5lZGl0KGVsZW1lbnROYW1lKTtcbiAgICBlZGl0b3Iuc2V0VGhlbWUoXCJhY2UvdGhlbWUvbW9ub2thaVwiKTtcbiAgICBlZGl0b3Iuc2Vzc2lvbi5zZXRNb2RlKFwiYWNlL21vZGUvanNvblwiKTtcbiAgICBlZGl0b3Iuc2V0U2hvd1ByaW50TWFyZ2luKGZhbHNlKTtcbiAgICBlZGl0b3IucmVuZGVyZXIuc2V0U2hvd0d1dHRlcihmYWxzZSk7XG4gICAgZWRpdG9yLnNldFJlYWRPbmx5KHRydWUpO1xuICAgIHJldHVybiBlZGl0b3I7XG4gIH1cbiAgcHJpdmF0ZSBnZXRKYXZhVGV4dCgpOiBzdHJpbmcge1xuICAgIHZhciBpc09uUGFnZSA9IHRoaXMua29TaG93QXNXaW5kb3coKSA9PSBcInBhZ2VcIjtcbiAgICB2YXIgc3RyID0gIXRoaXMua29Mb2FkU3VydmV5KCkgPyB0aGlzLmdldFNhdmVGdW5jKCkgKyBcIlxcblxcblwiIDogXCJcIjtcbiAgICB2YXIgc3RyQ29kZSA9IGlzT25QYWdlXG4gICAgICA/IHRoaXMucGxhdGZvcm1KU29uUGFnZVt0aGlzLmtvTGlicmFyeVZlcnNpb24oKV1cbiAgICAgIDogdGhpcy5wbGF0Zm9ybUpTb25XaW5kb3dbdGhpcy5rb0xpYnJhcnlWZXJzaW9uKCldO1xuICAgIHZhciByZXBsYWNlZENvbXBsZXRlQ29kZSA9ICF0aGlzLmtvTG9hZFN1cnZleSgpXG4gICAgICA/IHRoaXMucGxhdGZvcm1Db21wbGV0ZUNvZGVbdGhpcy5rb0xpYnJhcnlWZXJzaW9uKCldXG4gICAgICA6IFwiXCI7XG4gICAgc3RyQ29kZSA9IHN0ckNvZGUucmVwbGFjZShcIiNjb21wbGV0ZSNcIiwgcmVwbGFjZWRDb21wbGV0ZUNvZGUpO1xuICAgIHN0ciArPSBzdHJDb2RlO1xuICAgIHZhciBqc29uVGV4dCA9IFwidmFyIHN1cnZleUpTT04gPSBcIiArIHRoaXMuZ2V0SnNvblRleHQoKSArIFwiXFxuXFxuXCI7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U2V0Q3NzKCkgKyBcIlxcblwiICsganNvblRleHQgKyBzdHI7XG4gIH1cbiAgcHJpdmF0ZSBnZXRTZXRDc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1N1cnZleS5TdHlsZXNNYW5hZ2VyLmFwcGx5VGhlbWUoXCInICsgdGhpcy5rb1RoZW1lTmFtZSgpICsgJ1wiKTtcXG4nO1xuICB9XG4gIHByaXZhdGUgZ2V0U2F2ZUZ1bmMoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIFwiZnVuY3Rpb24gc2VuZERhdGFUb1NlcnZlcihzdXJ2ZXkpIHtcXG5cIiArIHRoaXMuZ2V0U2F2ZUZ1bmNDb2RlKCkgKyBcIlxcbn1cIlxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRTYXZlRnVuY0NvZGUoKSB7XG4gICAgaWYgKHRoaXMua29IYXNJZHMoKSlcbiAgICAgIHJldHVybiBcIiAgICBzdXJ2ZXkuc2VuZFJlc3VsdCgnXCIgKyB0aGlzLnN1cnZleVBvc3RJZCArIFwiJyk7XCI7XG4gICAgcmV0dXJuICcgICAgLy9zZW5kIEFqYXggcmVxdWVzdCB0byB5b3VyIHdlYiBzZXJ2ZXIuXFxuICAgIGFsZXJ0KFwiVGhlIHJlc3VsdHMgYXJlOlwiICsgSlNPTi5zdHJpbmdpZnkoc3VydmV5LmRhdGEpKTsnO1xuICB9XG4gIHByaXZhdGUgZ2V0SnNvblRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5rb0xvYWRTdXJ2ZXkoKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgXCJ7IHN1cnZleUlkOiAnXCIgK1xuICAgICAgICB0aGlzLnN1cnZleUlkICtcbiAgICAgICAgXCInLCBzdXJ2ZXlQb3N0SWQ6ICdcIiArXG4gICAgICAgIHRoaXMuc3VydmV5UG9zdElkICtcbiAgICAgICAgXCInfVwiXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5nZW5lcmF0ZVZhbGlkSlNPTikgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuanNvbik7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlKU09ONSgpLnN0cmluZ2lmeSh0aGlzLmpzb24pO1xuICB9XG4gIHByaXZhdGUgc2V0VGV4dFRvRWRpdG9yKGVkaXRvcjogQWNlQWpheC5FZGl0b3IsIGtvVGV4dDogYW55LCB0ZXh0OiBzdHJpbmcpIHtcbiAgICBpZiAoZWRpdG9yKSBlZGl0b3Iuc2V0VmFsdWUodGV4dCk7XG4gICAgaWYgKGtvVGV4dCkga29UZXh0KHRleHQpO1xuICB9XG4gIGRpc3Bvc2UoKSB7fVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3VydmV5LWVtYmVkXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICB2YXIgY3JlYXRvcjogU3VydmV5Q3JlYXRvciA9IHBhcmFtcy5jcmVhdG9yO1xuICAgICAgdmFyIG1vZGVsID0gbmV3IFN1cnZleUVtYmVkaW5nV2luZG93KCk7XG5cbiAgICAgIHZhciBzdWJzY3JWaWV3VHlwZSA9IGNyZWF0b3Iua29WaWV3VHlwZS5zdWJzY3JpYmUoKHZpZXdUeXBlKSA9PiB7XG4gICAgICAgIGlmICh2aWV3VHlwZSA9PT0gXCJlbWJlZFwiKSB7XG4gICAgICAgICAgdmFyIGpzb24gPSBjcmVhdG9yLmdldFN1cnZleUpTT04oKTtcbiAgICAgICAgICBtb2RlbC5qc29uID0ganNvbjtcbiAgICAgICAgICBtb2RlbC5zdXJ2ZXlJZCA9IGNyZWF0b3Iuc3VydmV5SWQ7XG4gICAgICAgICAgbW9kZWwuc3VydmV5UG9zdElkID0gY3JlYXRvci5zdXJ2ZXlQb3N0SWQ7XG4gICAgICAgICAgbW9kZWwuZ2VuZXJhdGVWYWxpZEpTT04gPSBjcmVhdG9yLmdldE9wdGlvbnMoKS5nZW5lcmF0ZVZhbGlkSlNPTjtcbiAgICAgICAgICBtb2RlbC5zaG93KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGNvbXBvbmVudEluZm8uZWxlbWVudCwgKCkgPT4ge1xuICAgICAgICBzdWJzY3JWaWV3VHlwZS5kaXNwb3NlKCk7XG4gICAgICAgIG1vZGVsLmRpc3Bvc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIlxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX3Jvd1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGxcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgICAgICAgPHN2ZC10b29sYmFyIHBhcmFtcz1cXFwiaXRlbXM6IHRvb2xiYXJJdGVtc1xcXCI+PC9zdmQtdG9vbGJhcj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fcm93XFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19jZWxsLWNvbnRlbnQtaG9sZGVyXFxcIj5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbC1jb250ZW50IHN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGwtY29udGVudC0tc2Nyb2xsYWJsZVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtanNvbi1lZGl0b3JcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0ga28gaWY6ICFoYXNBY2VFZGl0b3IgLS0+XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cXFwic3ZkLWpzb24tZWRpdG9yLWFyZWFcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHRJbnB1dDprb1RleHQsIGRpc2FibGU6IHJlYWRPbmx5LCBhdHRyOiB7ICdhcmlhLWxhYmVsJzogJ0pTT04gRWRpdG9yJyB9XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBrbyBmb3JlYWNoOiBrb0Vycm9ycyAtLT5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkVycm9yOiA8L3NwYW4+PHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiB0ZXh0XFxcIj48L3NwYW4+XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIC9rbyAgLS0+XFxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAva28gIC0tPlxcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbjwvZGl2PlwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleVRleHRXb3JrZXIgfSBmcm9tIFwiLi4vdGV4dFdvcmtlclwiO1xuaW1wb3J0IHsgZ2V0TG9jU3RyaW5nIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcblxuaW1wb3J0IFwiLi9qc29uLWVkaXRvci5zY3NzXCI7XG5pbXBvcnQgeyBJQWN0aW9uIH0gZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xudmFyIHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL2pzb24tZWRpdG9yLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlKU09ORWRpdG9yIHtcbiAgcHVibGljIHN0YXRpYyB1cGRhdGVUZXh0VGltZW91dDogbnVtYmVyID0gMTAwMDtcbiAgcHVibGljIHN0YXRpYyBzaG93VG9vbGJhciA9IHRydWU7XG4gIHB1YmxpYyBzdGF0aWMgYWNlQmFzZVBhdGggPSBcIlwiO1xuXG4gIHByaXZhdGUgaXNQcm9jZXNzaW5nSW1tZWRpYXRlbHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBhY2VFZGl0b3I6IEFjZUFqYXguRWRpdG9yO1xuICBwcml2YXRlIHRleHRXb3JrZXI6IFN1cnZleVRleHRXb3JrZXI7XG4gIHByaXZhdGUgYWNlQ2FuVW5kbyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICBwcml2YXRlIGFjZUNhblJlZG8gPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgcHVibGljIGlzSlNPTkNoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzSW5pdGlhbEpTT046IGJvb2xlYW4gPSBmYWxzZTtcbiAga29UZXh0OiBhbnk7XG4gIGtvRXJyb3JzOiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHRvb2xiYXIgaXRlbXMuIFlvdSBtYXkgYWRkL3JlbW92ZS9yZXBsYWNlIHRoZW0uXG4gICAqIEBzZWUgSUFjdGlvblxuICAgKi9cbiAgcHVibGljIHRvb2xiYXJJdGVtcyA9IGtvLm9ic2VydmFibGVBcnJheTxJQWN0aW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMua29UZXh0ID0ga28ub2JzZXJ2YWJsZShcIlwiKTtcbiAgICB0aGlzLmtvRXJyb3JzID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMua29UZXh0LnN1YnNjcmliZShmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIHNlbGYub25Kc29uRWRpdG9yQ2hhbmdlZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZFRvb2xiYXJJdGVtcygpIHtcbiAgICBpZiAoIXRoaXMuaGFzQWNlRWRpdG9yKSByZXR1cm47XG4gICAgaWYgKCFTdXJ2ZXlKU09ORWRpdG9yLnNob3dUb29sYmFyKSByZXR1cm47XG4gICAgY29uc3QgZm9jdXNFZGl0b3IgPSAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWNlRWRpdG9yLmZvY3VzKCksIDEpO1xuICAgIGNvbnN0IGl0ZW1zOiBBcnJheTxJQWN0aW9uPiA9IFtdO1xuICAgIGl0ZW1zLnB1c2goe1xuICAgICAgaWQ6IFwic3ZkLWpzb24tZWRpdG9yLXVuZG9cIixcbiAgICAgIGljb25OYW1lOiBcImljb24tYWN0aW9udW5kb1wiLFxuICAgICAgdGl0bGU6IGdldExvY1N0cmluZyhcImVkLnVuZG9cIiksXG4gICAgICBlbmFibGVkOiA8YW55PnRoaXMuYWNlQ2FuVW5kbyxcbiAgICAgIHRvb2x0aXA6IGdldExvY1N0cmluZyhcImVkLnVuZG9Ub29sdGlwXCIpLFxuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYWNlRWRpdG9yLmV4ZWNDb21tYW5kKFwidW5kb1wiKTtcbiAgICAgICAgdGhpcy51cGRhdGVVbmRvUmVkb1N0YXRlKCk7XG4gICAgICAgIGZvY3VzRWRpdG9yKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGl0ZW1zLnB1c2goe1xuICAgICAgaWQ6IFwic3ZkLWpzb24tZWRpdG9yLXJlZG9cIixcbiAgICAgIGljb25OYW1lOiBcImljb24tYWN0aW9ucmVkb1wiLFxuICAgICAgZW5hYmxlZDogPGFueT50aGlzLmFjZUNhblJlZG8sXG4gICAgICB0aXRsZTogZ2V0TG9jU3RyaW5nKFwiZWQucmVkb1wiKSxcbiAgICAgIHRvb2x0aXA6IGdldExvY1N0cmluZyhcImVkLnJlZG9Ub29sdGlwXCIpLFxuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYWNlRWRpdG9yLmV4ZWNDb21tYW5kKFwicmVkb1wiKTtcbiAgICAgICAgdGhpcy51cGRhdGVVbmRvUmVkb1N0YXRlKCk7XG4gICAgICAgIGZvY3VzRWRpdG9yKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmICh3aW5kb3dbXCJuYXZpZ2F0b3JcIl0pIHtcbiAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogXCJzdmQtY29weVwiLFxuICAgICAgICBpY29uTmFtZTogXCJpY29uLWFjdGlvbmNvcHlcIixcbiAgICAgICAgdGl0bGU6IGdldExvY1N0cmluZyhcImVkLmNvcHlcIiksXG4gICAgICAgIHNob3dUaXRsZTogZmFsc2UsXG4gICAgICAgIHRvb2x0aXA6IGdldExvY1N0cmluZyhcImVkLmNvcHlUb29sdGlwXCIpLFxuICAgICAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB2YXIgdGV4dCA9IHRoaXMuYWNlRWRpdG9yLmdldENvcHlUZXh0KCk7XG4gICAgICAgICAgdGhpcy5hY2VFZGl0b3IuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xuICAgICAgICAgIGZvY3VzRWRpdG9yKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogXCJzdmQtY3V0XCIsXG4gICAgICAgIGljb25OYW1lOiBcImljb24tYWN0aW9uY3V0XCIsXG4gICAgICAgIHRpdGxlOiBnZXRMb2NTdHJpbmcoXCJlZC5jdXRcIiksXG4gICAgICAgIHNob3dUaXRsZTogZmFsc2UsXG4gICAgICAgIHRvb2x0aXA6IGdldExvY1N0cmluZyhcImVkLmN1dFRvb2x0aXBcIiksXG4gICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHZhciB0ZXh0ID0gdGhpcy5hY2VFZGl0b3IuZ2V0Q29weVRleHQoKTtcbiAgICAgICAgICB0aGlzLmFjZUVkaXRvci5leGVjQ29tbWFuZChcImN1dFwiKTtcbiAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVVuZG9SZWRvU3RhdGUoKTtcbiAgICAgICAgICBmb2N1c0VkaXRvcigpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgaWQ6IFwic3ZkLXBhc3RlXCIsXG4gICAgICAgIGljb25OYW1lOiBcImljb24tYWN0aW9ucGFzdGVcIixcbiAgICAgICAgdGl0bGU6IGdldExvY1N0cmluZyhcImVkLnBhc3RlXCIpLFxuICAgICAgICBzaG93VGl0bGU6IGZhbHNlLFxuICAgICAgICB0b29sdGlwOiBnZXRMb2NTdHJpbmcoXCJlZC5wYXN0ZVRvb2x0aXBcIiksXG4gICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQucmVhZFRleHQoKS50aGVuKCh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWNlRWRpdG9yLmV4ZWNDb21tYW5kKFwicGFzdGVcIiwgdGV4dCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVVbmRvUmVkb1N0YXRlKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy50b29sYmFySXRlbXMoaXRlbXMpO1xuICB9XG5cbiAgcHVibGljIGluaXQoZWRpdG9yRWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoIXRoaXMuaGFzQWNlRWRpdG9yKSByZXR1cm47XG4gICAgdGhpcy5hY2VFZGl0b3IgPSBhY2UuZWRpdChlZGl0b3JFbGVtZW50KTtcbiAgICB0aGlzLmFjZUVkaXRvci5zZXRSZWFkT25seSh0aGlzLnJlYWRPbmx5KTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKFN1cnZleUpTT05FZGl0b3IuYWNlQmFzZVBhdGgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGFjZVtcImNvbmZpZ1wiXS5zZXQoXCJiYXNlUGF0aFwiLCBTdXJ2ZXlKU09ORWRpdG9yLmFjZUJhc2VQYXRoKTtcbiAgICAgICAgLy8gVE9ETyBhZGQgZXZlbnQgdG8gY2hhbmdlIGFjZSB0aGVtZSBhbmQgbW9kZVxuICAgICAgICAvLyB0aGlzLmFjZUVkaXRvci5zZXRUaGVtZShcImFjZS90aGVtZS9tb25va2FpXCIpO1xuICAgICAgICAvLyB0aGlzLmFjZUVkaXRvci5zZXNzaW9uLnNldE1vZGUoXCJhY2UvbW9kZS9qc29uXCIpO1xuICAgICAgICB0aGlzLmFjZUVkaXRvci5zZXNzaW9uLnNldE1vZGUoXCJhY2UvbW9kZS9qc29uXCIpO1xuICAgICAgfSBjYXRjaCB7fVxuICAgIH1cbiAgICBzZWxmLmFjZUVkaXRvci5zZXRTaG93UHJpbnRNYXJnaW4oZmFsc2UpO1xuICAgIHNlbGYuYWNlRWRpdG9yLmdldFNlc3Npb24oKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLm9uSnNvbkVkaXRvckNoYW5nZWQoKTtcbiAgICB9KTtcbiAgICBzZWxmLmFjZUVkaXRvci5vbihcImlucHV0XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChzZWxmLmlzSW5pdGlhbEpTT04pIHtcbiAgICAgICAgc2VsZi5pc0luaXRpYWxKU09OID0gZmFsc2U7XG4gICAgICAgIHNlbGYuYWNlRWRpdG9yLmdldFNlc3Npb24oKS5nZXRVbmRvTWFuYWdlcigpLm1hcmtDbGVhbigpO1xuICAgICAgICBzZWxmLnVwZGF0ZVVuZG9SZWRvU3RhdGUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHNlbGYuYWNlRWRpdG9yLmdldFNlc3Npb24oKS5nZXRVbmRvTWFuYWdlcigpLmlzQ2xlYW4oKSkge1xuICAgICAgICBzZWxmLmlzSlNPTkNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc2VsZi5pc0pTT05DaGFuZ2VkID0gdHJ1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmFjZUVkaXRvci5nZXRTZXNzaW9uKCkuc2V0VXNlV29ya2VyKHRydWUpO1xuICAgIFN1cnZleVRleHRXb3JrZXIubmV3TGluZUNoYXIgPVxuICAgICAgdGhpcy5hY2VFZGl0b3Iuc2Vzc2lvbi5kb2MuZ2V0TmV3TGluZUNoYXJhY3RlcigpO1xuICAgIHRoaXMuYWRkVG9vbGJhckl0ZW1zKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0FjZUVkaXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIGFjZSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuaGFzQWNlRWRpdG9yKSByZXR1cm4gdGhpcy5rb1RleHQoKTtcbiAgICByZXR1cm4gdGhpcy5hY2VFZGl0b3IuZ2V0VmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRleHQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuaXNQcm9jZXNzaW5nSW1tZWRpYXRlbHkgPSB0cnVlO1xuICAgIHRoaXMua29UZXh0KHZhbHVlKTtcbiAgICBpZiAodGhpcy5hY2VFZGl0b3IpIHtcbiAgICAgIHRoaXMuYWNlRWRpdG9yLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMuYWNlRWRpdG9yLnJlbmRlcmVyLnVwZGF0ZUZ1bGwodHJ1ZSk7XG4gICAgICB0aGlzLmFjZUVkaXRvci5nZXRTZXNzaW9uKCkuZ2V0VW5kb01hbmFnZXIoKS5yZXNldCgpO1xuICAgIH1cbiAgICB0aGlzLnByb2Nlc3NKc29uKHZhbHVlKTtcbiAgICB0aGlzLmlzUHJvY2Vzc2luZ0ltbWVkaWF0ZWx5ID0gZmFsc2U7XG4gIH1cbiAgcHVibGljIHNob3codmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGV4dCA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmFjZUVkaXRvcikge1xuICAgICAgdGhpcy5hY2VFZGl0b3IuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5pc0pTT05DaGFuZ2VkID0gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldCBpc0pzb25Db3JyZWN0KCk6IGJvb2xlYW4ge1xuICAgIHRoaXMudGV4dFdvcmtlciA9IG5ldyBTdXJ2ZXlUZXh0V29ya2VyKHRoaXMudGV4dCk7XG4gICAgcmV0dXJuIHRoaXMudGV4dFdvcmtlci5pc0pzb25Db3JyZWN0O1xuICB9XG4gIHB1YmxpYyBnZXQgc3VydmV5KCk6IFN1cnZleS5TdXJ2ZXkge1xuICAgIHJldHVybiB0aGlzLnRleHRXb3JrZXIuc3VydmV5O1xuICB9XG4gIHByaXZhdGUgdGltZW91dElkOiBudW1iZXIgPSAtMTtcbiAgcHJpdmF0ZSB1cGRhdGVVbmRvUmVkb1N0YXRlKCkge1xuICAgIGlmICh0aGlzLmhhc0FjZUVkaXRvcikge1xuICAgICAgbGV0IHVuZG9NYW5hZ2VyID0gdGhpcy5hY2VFZGl0b3IuZ2V0U2Vzc2lvbigpLmdldFVuZG9NYW5hZ2VyKCk7XG4gICAgICB0aGlzLmFjZUNhblVuZG8odW5kb01hbmFnZXIuaGFzVW5kbygpKTtcbiAgICAgIHRoaXMuYWNlQ2FuUmVkbyh1bmRvTWFuYWdlci5oYXNSZWRvKCkpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIG9uSnNvbkVkaXRvckNoYW5nZWQoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuaGFzQWNlRWRpdG9yKSB7XG4gICAgICB0aGlzLmlzSlNPTkNoYW5nZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVVuZG9SZWRvU3RhdGUoKTtcbiAgICBpZiAodGhpcy50aW1lb3V0SWQgPiAtMSkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nSW1tZWRpYXRlbHkpIHtcbiAgICAgIHRoaXMudGltZW91dElkID0gLTE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIHRoaXMudGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBzZWxmLnRpbWVvdXRJZCA9IC0xO1xuICAgICAgICBzZWxmLnByb2Nlc3NKc29uKHNlbGYudGV4dCk7XG4gICAgICB9LCBTdXJ2ZXlKU09ORWRpdG9yLnVwZGF0ZVRleHRUaW1lb3V0KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBwcm9jZXNzSnNvbih0ZXh0OiBzdHJpbmcpOiBhbnkge1xuICAgIHRoaXMudGV4dFdvcmtlciA9IG5ldyBTdXJ2ZXlUZXh0V29ya2VyKHRleHQpO1xuICAgIGlmICh0aGlzLmFjZUVkaXRvcikge1xuICAgICAgdGhpcy5hY2VFZGl0b3JcbiAgICAgICAgLmdldFNlc3Npb24oKVxuICAgICAgICAuc2V0QW5ub3RhdGlvbnModGhpcy5jcmVhdGVBbm5vdGF0aW9ucyh0ZXh0LCB0aGlzLnRleHRXb3JrZXIuZXJyb3JzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua29FcnJvcnModGhpcy50ZXh0V29ya2VyLmVycm9ycyk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgY3JlYXRlQW5ub3RhdGlvbnModGV4dDogc3RyaW5nLCBlcnJvcnM6IGFueVtdKTogQWNlQWpheC5Bbm5vdGF0aW9uW10ge1xuICAgIHZhciBhbm5vdGF0aW9ucyA9IG5ldyBBcnJheTxBY2VBamF4LkFubm90YXRpb24+KCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlcnJvciA9IGVycm9yc1tpXTtcbiAgICAgIHZhciBhbm5vdGF0aW9uOiBBY2VBamF4LkFubm90YXRpb24gPSB7XG4gICAgICAgIHJvdzogZXJyb3IucG9zaXRpb24uc3RhcnQucm93LFxuICAgICAgICBjb2x1bW46IGVycm9yLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbixcbiAgICAgICAgdGV4dDogZXJyb3IudGV4dCxcbiAgICAgICAgdHlwZTogXCJlcnJvclwiLFxuICAgICAgfTtcbiAgICAgIGFubm90YXRpb25zLnB1c2goYW5ub3RhdGlvbik7XG4gICAgfVxuICAgIHJldHVybiBhbm5vdGF0aW9ucztcbiAgfVxuICBwcml2YXRlIF9yZWFkT25seSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAvKipcbiAgICogQSBib29sZWFuIHByb3BlcnR5LCBmYWxzZSBieSBkZWZhdWx0LiBTZXQgaXQgdG8gdHJ1ZSB0byBkZW55IGVkaXRpbmcuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkT25seSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkobmV3VmFsKSB7XG4gICAgdGhpcy5fcmVhZE9ubHkobmV3VmFsKTtcbiAgfVxuICBkaXNwb3NlKCkge31cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN1cnZleS1qc29uLWVkaXRvclwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgdmFyIGNyZWF0b3I6IFN1cnZleUNyZWF0b3IgPSBwYXJhbXMuY3JlYXRvcjtcbiAgICAgIHZhciBtb2RlbCA9IG5ldyBTdXJ2ZXlKU09ORWRpdG9yKCk7XG5cbiAgICAgIGNyZWF0b3Iuc2V0U3VydmV5SlNPTlRleHRDYWxsYmFjayA9ICh0ZXh0KSA9PiB7XG4gICAgICAgIG1vZGVsLmlzSW5pdGlhbEpTT04gPSB0cnVlO1xuICAgICAgICBtb2RlbC50ZXh0ID0gdGV4dDtcbiAgICAgIH07XG5cbiAgICAgIHZhciBzdWJzY3JWaWV3VHlwZSA9IGNyZWF0b3Iua29WaWV3VHlwZS5zdWJzY3JpYmUoKHZpZXdUeXBlKSA9PiB7XG4gICAgICAgIGlmICh2aWV3VHlwZSA9PT0gXCJlZGl0b3JcIikge1xuICAgICAgICAgIG1vZGVsLmlzSW5pdGlhbEpTT04gPSB0cnVlO1xuICAgICAgICAgIG1vZGVsLnNob3coY3JlYXRvci50ZXh0KTtcbiAgICAgICAgICBjcmVhdG9yLmdldFN1cnZleUpTT05UZXh0Q2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyB0ZXh0OiBtb2RlbC50ZXh0LCBpc01vZGlmaWVkOiBtb2RlbC5pc0pTT05DaGFuZ2VkIH07XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjcmVhdG9yLmdldFN1cnZleUpTT05UZXh0Q2FsbGJhY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB2YXIgc3Vic2NyUmVhZE9ubHkgPSBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIG1vZGVsLnJlYWRPbmx5ID0gY3JlYXRvci5yZWFkT25seTtcbiAgICAgIH0pO1xuXG4gICAgICBtb2RlbC5pbml0KFxuICAgICAgICA8SFRNTEVsZW1lbnQ+Y29tcG9uZW50SW5mby5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc3ZkLWpzb24tZWRpdG9yXCIpXG4gICAgICApO1xuXG4gICAgICBrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGNvbXBvbmVudEluZm8uZWxlbWVudCwgKCkgPT4ge1xuICAgICAgICBjcmVhdG9yLnNldFN1cnZleUpTT05UZXh0Q2FsbGJhY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNyZWF0b3IuZ2V0U3VydmV5SlNPTlRleHRDYWxsYmFjayA9IHVuZGVmaW5lZDtcbiAgICAgICAgc3Vic2NyUmVhZE9ubHkuZGlzcG9zZSgpO1xuICAgICAgICBzdWJzY3JWaWV3VHlwZS5kaXNwb3NlKCk7XG4gICAgICAgIG1vZGVsLmRpc3Bvc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInN2ZC1sb2dpYy10YWJcXFwiPlxcbiAgPCEtLSBrbyBpZjoga29Nb2RlKCkgPT0gJ3ZpZXcnIC0tPlxcbiAgICA8ZGl2IGRhdGEtYmluZD1cXFwidmlzaWJsZTogJGRhdGEua29JdGVtcygpLmxlbmd0aCA+IDBcXFwiPlxcbiAgICAgIDxwPlxcbiAgICAgICAgPGlucHV0IHR5cGU9XFxcImJ1dHRvblxcXCIgY2xhc3M9XFxcImJ0biBzdi1idG4gYnRuLXByaW1hcnlcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTogIWtvUmVhZE9ubHkoKSwgY2xpY2s6ICRkYXRhLmtvQWRkTmV3LCB2YWx1ZTogJGRhdGEuYWRkTmV3VGV4dCwgYXR0cjoge3RpdGxlOiAkZGF0YS5hZGROZXdUZXh0IH1cXFwiIC8+XFxuICAgICAgPC9wPlxcbiAgICAgIDx0YWJsZSBjbGFzcz1cXFwic3ZkLWxvZ2ljLXRhYl9fcnVsZXMtbGlzdFxcXCI+XFxuICAgICAgICA8dGhlYWQ+XFxuICAgICAgICAgIDx0ciBjbGFzcz1cXFwic3ZkLWxvZ2ljLXRhYl9fcnVsZXMtbGlzdF9faGVhZGVyIHN2ZC1sb2dpYy10YWJfX3J1bGVzLWxpc3RfX3Jvd1xcXCI+XFxuICAgICAgICAgICAgPHRkIGRhdGEtYmluZD1cXFwidmlzaWJsZTohJGRhdGEua29SZWFkT25seSgpXFxcIiB3aWR0aD1cXFwiMTAwcHhcXFwiPjwvdGQ+XFxuICAgICAgICAgICAgPHRoIGNsYXNzPVxcXCJzdmQtZGFyay1ib3JkZXItY29sb3JcXFwiIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdlZC5sZy5jb25kaXRpb25zJylcXFwiPjwvdGg+XFxuICAgICAgICAgICAgPHRoIGNsYXNzPVxcXCJzdmQtZGFyay1ib3JkZXItY29sb3JcXFwiIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdlZC5sZy5hY3Rpb25zJylcXFwiPjwvdGg+XFxuICAgICAgICAgICAgPHRkIGRhdGEtYmluZD1cXFwidmlzaWJsZTohJGRhdGEua29SZWFkT25seSgpXFxcIiB3aWR0aD1cXFwiMTAwcHhcXFwiPjwvdGQ+XFxuICAgICAgICAgIDwvdHI+XFxuICAgICAgICA8L3RoZWFkPlxcbiAgICAgICAgPHRib2R5IGRhdGEtYmluZD1cXFwiZm9yZWFjaDogJGRhdGEua29JdGVtc1xcXCI+XFxuICAgICAgICAgIDx0ciBjbGFzcz1cXFwic3ZkLWxvZ2ljLXRhYl9fcnVsZXMtbGlzdF9fcm93XFxcIj5cXG4gICAgICAgICAgICA8dGQgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiEkcGFyZW50LmtvUmVhZE9ubHkoKVxcXCIgY2xhc3M9XFxcInN2ZC1sb2dpYy10YWJfX3J1bGVzLWxpc3RfX2FjdGlvbi1jZWxsXFxcIj5cXG4gICAgICAgICAgICAgIDxzcGFuIHJvbGU9XFxcImJ1dHRvblxcXCIgZGF0YS1iaW5kPVxcXCJjbGljazogJGRhdGEuZWRpdCwgYXR0cjogeyB0aXRsZTogJGRhdGEuZWRpdFRleHQsIHRhYmluZGV4OiAwIH0sIGtleTJjbGlja1xcXCI+XFxuICAgICAgICAgICAgICAgIDxzdmctaWNvbiBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvbiBpY29uLWFjdGlvbmVkaXRlbGVtZW50XFxcIiBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1hY3Rpb25lZGl0ZWxlbWVudCdcXFwiPlxcbiAgICAgICAgICAgICAgICA8L3N2Zy1pY29uPlxcbiAgICAgICAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgICAgIDwvdGQ+XFxuICAgICAgICAgICAgPHRkPlxcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS50aXRsZSwgYXR0cjoge3RpdGxlOiAkZGF0YS50aXRsZSB9XFxcIj48L3NwYW4+XFxuICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICA8dGQ+XFxuICAgICAgICAgICAgICA8ZGl2IGRhdGEtYmluZD1cXFwiZm9yZWFjaDogJGRhdGEua29BY3Rpb25zXFxcIj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS50ZXh0LCBhdHRyOiB7dGl0bGU6ICRkYXRhLnRleHQgfVxcXCI+PC9zcGFuPlxcbiAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICA8dGQgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiEkcGFyZW50LmtvUmVhZE9ubHkoKVxcXCIgY2xhc3M9XFxcInN2ZC1sb2dpYy10YWJfX3J1bGVzLWxpc3RfX2FjdGlvbi1jZWxsXFxcIj5cXG4gICAgICAgICAgICAgIDxzcGFuIHJvbGU9XFxcImJ1dHRvblxcXCIgZGF0YS1iaW5kPVxcXCJjbGljazogJGRhdGEucmVtb3ZlLCBhdHRyOiB7IHRpdGxlOiAkZGF0YS5kZWxldGVUZXh0LCB0YWJpbmRleDogMCB9LCBrZXkyY2xpY2tcXFwiPlxcbiAgICAgICAgICAgICAgICA8c3ZnLWljb24gY2xhc3M9XFxcInN2ZC1kYW5nZXItaWNvbiBpY29uLWFjdGlvbmRlbGV0ZVxcXCIgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24tYWN0aW9uZGVsZXRlJ1xcXCI+PC9zdmctaWNvbj5cXG4gICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICA8L3RkPlxcbiAgICAgICAgICA8L3RyPlxcbiAgICAgICAgPC90Ym9keT5cXG4gICAgICA8L3RhYmxlPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBkYXRhLWJpbmQ9XFxcInZpc2libGU6ICRkYXRhLmtvSXRlbXMoKS5sZW5ndGggPT09IDBcXFwiIGNsYXNzPVxcXCJzdmQtc3VydmV5LXBsYWNlaG9sZGVyLXJvb3RcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC1zdXJ2ZXktcGxhY2Vob2xkZXJcXFwiPlxcbiAgICAgICAgPCEtLSBrbyBpZjogcGxhY2Vob2xkZXJIdG1sIC0tPlxcbiAgICAgICAgPGRpdiBkYXRhLWJpbmQ9XFxcImh0bWw6IHBsYWNlaG9sZGVySHRtbFxcXCI+PC9kaXY+XFxuICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgIDwhLS0ga28gaWZub3Q6IHBsYWNlaG9sZGVySHRtbCAtLT5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC1lbXB0eS1tZXNzYWdlLWNvbnRhaW5lclxcXCI+XFxuICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC1lbXB0eS1tZXNzYWdlXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6IGdldExvY1N0cmluZygnc3VydmV5LmFkZExvZ2ljSXRlbScpXFxcIj48L2Rpdj5cXG4gICAgICAgICAgPGltZyBjbGFzcz1cXFwic3ZkLWVtcHR5LWltYWdlXFxcIiBzcmM9XFxcIlwiICsgcmVxdWlyZShcIi4uL2ltYWdlcy9zdGFydC1kZXNpZ25pbmctZm9ybS5zdmdcIikgKyBcIlxcXCJcXG4gICAgICAgICAgICBkYXRhLWJpbmQ9XFxcImF0dHI6IHsgYWx0OiBnZXRMb2NTdHJpbmcoJ3N1cnZleS5hZGRMb2dpY0l0ZW0nKSB9XFxcIiAvPlxcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XFxcInN2ZC1lbXB0eS1hY3Rpb24gYnRuIHN2LWJ0biBidG4tcHJpbWFyeVxcXCIgdHlwZT1cXFwiYnV0dG9uXFxcIlxcbiAgICAgICAgICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTogIWtvUmVhZE9ubHkoKSwgY2xpY2s6ICRkYXRhLmtvQWRkTmV3LCB2YWx1ZTogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5hZGROZXcnKVxcXCIgLz5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPCEtLSAva28gLS0+XFxuICA8IS0tIGtvIGlmOiBrb01vZGUoKSA9PSAnbmV3JyB8fCBrb01vZGUoKSA9PSAnZWRpdCcgLS0+XFxuICAgIDxoNCBjbGFzcz1cXFwic3ZkLWxvZ2ljLXRhYl9fcnVsZS1lZGl0b3JfX3RpdGxlXFxcIiBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLmdldExvY1N0cmluZygnZWQubGcuZXhwcmVzc2lvbkVkaXRvclRpdGxlJylcXFwiPlxcbiAgICA8L2g0PlxcbiAgICA8c3ZkLXByb3BlcnR5LWVkaXRvciBwYXJhbXM9XFxcIm1vZGVsOiAkZGF0YS5leHByZXNzaW9uRWRpdG9yXFxcIj48L3N2ZC1wcm9wZXJ0eS1lZGl0b3I+XFxuICAgIDwhLS1rbyBpZjogJGRhdGEua29FZGl0YWJsZUl0ZW0oKSAhPSBudWxsIC0tPlxcbiAgICA8aDQgY2xhc3M9XFxcInN2ZC1sb2dpYy10YWJfX3J1bGUtZWRpdG9yX190aXRsZVxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiAkZGF0YS5nZXRMb2NTdHJpbmcoJ2VkLmxnLmFjdGlvbnNFZGl0b3JUaXRsZScpXFxcIj48L2g0PlxcbiAgICA8IS0tIGtvIGZvcmVhY2g6IHtkYXRhOiAkZGF0YS5rb0VkaXRhYmxlSXRlbSgpLmtvQWN0aW9ucywgYXM6ICdhY3Rpb24nIH0gLS0+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZC1sb2dpYy10YWJfX2l0ZW1cXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0taW5saW5lIGZvcm0tZ3JvdXBcXFwiIHN0eWxlPVxcXCJwYWRkaW5nLWJvdHRvbToxMHB4XFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC1sb2dpYy10YWJfX2FjdGlvbnMtc2V0dXBcXFwiXFxuICAgICAgICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTokaW5kZXgoKSA9PSAwICYmICRwYXJlbnQuYWN0aW9uc1NldHVwVGV4dCwgdGV4dDogJHBhcmVudC5hY3Rpb25zU2V0dXBUZXh0XFxcIj48L2Rpdj5cXG5cXG4gICAgICAgIDxzdmQtcHJvcGVydHktZWRpdG9yLWVycm9yIHBhcmFtcz1cXFwibW9kZWw6JGRhdGFcXFwiPjwvc3ZkLXByb3BlcnR5LWVkaXRvci1lcnJvcj5cXG5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdmRfY3VzdG9tX3NlbGVjdFxcXCIgc3R5bGU9XFxcIndpZHRoOiA1MCU7bWF4LXdpZHRoOjMwMHB4XFxcIj5cXG4gICAgICAgICAgPHNlbGVjdCBvbm1vdXNld2hlZWw9XFxcInJldHVybiBmYWxzZTtcXFwiXFxuICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJpZjogdHJ1ZSwgdmFsdWU6YWN0aW9uLmtvTG9naWNUeXBlLCBhdHRyOiB7ICdhcmlhLWxhYmVsJzogJHBhcmVudC5zZWxlY3RlZEFjdGlvbkNhcHRpb24gfVxcXCI+XFxuICAgICAgICAgICAgPG9wdGlvbiBkYXRhLWJpbmQ9XFxcInRleHQ6JHBhcmVudC5zZWxlY3RlZEFjdGlvbkNhcHRpb24sIHZhbHVlOiBudWxsXFxcIj48L29wdGlvbj5cXG4gICAgICAgICAgICA8IS0tIGtvIGZvcmVhY2g6IHtkYXRhOiAkZGF0YS5rb0xvZ2ljVHlwZXMsIGFzOiAnaXRlbScgfSAtLT5cXG4gICAgICAgICAgICA8b3B0aW9uIGRhdGEtYmluZD1cXFwidmlzaWJsZTogaXRlbS5rb1Zpc2libGUsIHZhbHVlOiBpdGVtLmxvZ2ljVHlwZSwgdGV4dDogaXRlbS5sb2dpY1R5cGUuZGlzcGxheU5hbWVcXFwiPlxcbiAgICAgICAgICAgIDwvb3B0aW9uPlxcbiAgICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgICA8L3NlbGVjdD5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPGRpdiBzdHlsZT1cXFwiZGlzcGxheTppbmxpbmUtYmxvY2tcXFwiPlxcbiAgICAgICAgICA8IS0ta28gaWY6IGFjdGlvbi5rb0xvZ2ljVHlwZSgpICE9IG51bGwgLS0+XFxuICAgICAgICAgIDxzcGFuIHN0eWxlPVxcXCJwYWRkaW5nLWxlZnQ6MjBweFxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OmFjdGlvbi5rb0xvZ2ljVHlwZSgpLmRlc2NyaXB0aW9uXFxcIj48L3NwYW4+XFxuICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwic3ZkLWxvZ2ljLXRhYl9faXRlbS1oZWFkZXItaWNvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctbGVmdDogMjBweFxcXCJcXG4gICAgICAgICAgICBkYXRhLWJpbmQ9XFxcImtleTJjbGljaywgY2xpY2tOb0ZvY3VzOiAkcGFyZW50LmtvUmVtb3ZlQWN0aW9uLCBhdHRyOiB7IHRpdGxlOiAkZGF0YS5kZWxldGVBY3Rpb25UZXh0LCB0YWJpbmRleDogMCwgcm9sZTogJ2J1dHRvbicgfVxcXCI+XFxuICAgICAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVxcXCJzdmQtZGFuZ2VyLWljb24gaWNvbi1hY3Rpb25kZWxldGVcXFwiIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWFjdGlvbmRlbGV0ZSdcXFwiPjwvc3ZnLWljb24+XFxuICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICAgIDxkaXYgc3R5bGU9XFxcIm1heC13aWR0aDo4MDBweFxcXCI+XFxuICAgICAgICA8IS0ta28gaWY6IGFjdGlvbi5rb1RlbXBsYXRlT2JqZWN0KCkgIT0gbnVsbCAmJiAhIWFjdGlvbi5rb1RlbXBsYXRlKCkgLS0+XFxuICAgICAgICA8IS0tIGtvIGNvbXBvbmVudDogeyBuYW1lOiBhY3Rpb24udGVtcGxhdGUsIHBhcmFtczogeyBtb2RlbDphY3Rpb24ua29UZW1wbGF0ZU9iamVjdCgpLCBhZnRlclJlbmRlcjogYWN0aW9uLmtvVGVtcGxhdGVBZnRlclJlbmRlciB9IH0gLS0+PCEtLSAva28gLS0+XFxuICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgICA8cD5cXG4gICAgPGRpdiBzdHlsZT1cXFwid2lkdGg6MjAwcHg7cGFkZGluZy1ib3R0b206MjBweFxcXCI+XFxuICAgICAgPGlucHV0IHR5cGU9XFxcImJ1dHRvblxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbCBzdi1idG4gYnRuIGJ0bi1wcmltYXJ5IHN2ZC1sb2dpYy1idXR0b24gc3ZkLWxvZ2ljLWFkZC1uZXctYWN0aW9uLWJ1dHRvblxcXCJcXG4gICAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6a29BZGROZXdBY3Rpb24sIHZhbHVlOiBhZGROZXdBY3Rpb25UZXh0XFxcIiAvPlxcbiAgICA8L2Rpdj5cXG4gICAgPC9wPlxcbiAgICA8cD5cXG4gICAgPGRpdj5cXG4gICAgICA8c3ZkLXByb3BlcnR5LWVkaXRvci1lcnJvciBwYXJhbXM9XFxcIm1vZGVsOiRkYXRhXFxcIj48L3N2ZC1wcm9wZXJ0eS1lZGl0b3ItZXJyb3I+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWlubGluZSBmb3JtLWdyb3VwXFxcIj5cXG4gICAgICA8aW5wdXQgdHlwZT1cXFwiYnV0dG9uXFxcIiBjbGFzcz1cXFwiZm9ybS1jb250cm9sIGJ0biBzdi1idG4gYnRuLXByaW1hcnkgc3ZkLWxvZ2ljLWJ1dHRvbiBzdmQtbG9naWMtc2F2ZS1hbmQtYmFjay1idXR0b25cXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiRkYXRhLmtvU2F2ZUFuZFNob3dWaWV3LCB2YWx1ZTogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5zYXZlQW5kQmFjaycpLCBhdHRyOiB7IHRpdGxlIDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5zYXZlQW5kQmFja1Rvb2x0aXAnKSB9XFxcIiAvPlxcbiAgICAgIDxpbnB1dCB0eXBlPVxcXCJidXR0b25cXFwiIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgYnRuIHN2LWJ0biBidG4tcHJpbWFyeSBzdmQtbG9naWMtYnV0dG9uIHN2ZC1sb2dpYy1zYXZlLWJ1dHRvblxcXCJcXG4gICAgICAgIGRhdGEtYmluZD1cXFwiY2xpY2s6ICRkYXRhLmtvU2F2ZUVkaXRhYmxlSXRlbSwgdmFsdWU6ICRkYXRhLmdldExvY1N0cmluZygncGUuc2F2ZScpLCBhdHRyOiB7IHRpdGxlIDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5zYXZlVG9vbHRpcCcpIH1cXFwiIC8+XFxuICAgICAgPGlucHV0IHR5cGU9XFxcImJ1dHRvblxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbCBidG4gc3YtYnRuIGJ0bi1wcmltYXJ5IHN2ZC1sb2dpYy1idXR0b24gc3ZkLWxvZ2ljLWJhY2stYnV0dG9uXFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogJGRhdGEua29TaG93VmlldywgdmFsdWU6ICRkYXRhLmdldExvY1N0cmluZygncGUuYmFjaycpLCBhdHRyOiB7IHRpdGxlIDogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5iYWNrVG9vbHRpcCcpIH1cXFwiIC8+XFxuICAgIDwvZGl2PlxcbiAgICA8L3A+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgPCEtLSAva28gLS0+XFxuPC9kaXY+XCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5UHJvcGVydHlDb25kaXRpb25FZGl0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5Q29uZGl0aW9uRWRpdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlFbGVtZW50U2VsZWN0b3IgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3N1cnZleUVsZW1lbnRTZWxlY3RvclwiO1xuaW1wb3J0IHsgSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMgfSBmcm9tIFwiLi4vcHJvcGVydHlFZGl0b3JzL3Byb3BlcnR5RWRpdG9yQmFzZVwiO1xuaW1wb3J0IHsgZWRpdG9yTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHtcbiAgRXhwcmVzc2lvblRvRGlzcGxheVRleHQsXG4gIEV4cHJlc3Npb25SZW1vdmVWYXJpYWJsZSxcbn0gZnJvbSBcIi4uL2V4cHJlc3Npb25Ub0Rpc3BsYXlUZXh0XCI7XG5pbXBvcnQge1xuICBTdXJ2ZXlFbGVtZW50RWRpdG9yQ29udGVudE1vZGVsLFxuICBTdXJ2ZXlRdWVzdGlvbkVkaXRvcixcbn0gZnJvbSBcIi4uL3F1ZXN0aW9uRWRpdG9ycy9xdWVzdGlvbkVkaXRvclwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcblxuaW1wb3J0IFwiLi9sb2dpYy5zY3NzXCI7XG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vbG9naWMuaHRtbFwiKTtcblxuZXhwb3J0IGludGVyZmFjZSBJU3VydmV5TG9naWNUeXBlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYXNlQ2xhc3M6IHN0cmluZztcbiAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XG4gIHRlbXBsYXRlTmFtZT86IHN0cmluZztcbiAgc2hvd0luVUk/OiBib29sZWFuO1xuICBzaG93SWY/OiAoc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWwpID0+IGJvb2xlYW47XG4gIGNyZWF0ZU5ld0VsZW1lbnQ/OiAoc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWwpID0+IFN1cnZleS5CYXNlO1xuICBzYXZlRWxlbWVudD86IChzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCwgYWN0aW9uOiBTdXJ2ZXlMb2dpY0FjdGlvbikgPT4gdm9pZDtcbiAgY3JlYXRlVGVtcGxhdGVPYmplY3Q/OiAoZWxlbWVudDogU3VydmV5LkJhc2UpID0+IGFueTtcbiAgaXNVbmlxdWVJdGVtPzogYm9vbGVhbjtcbiAgcXVlc3Rpb25OYW1lcz86IEFycmF5PHN0cmluZz47XG4gIGdldERpc3BsYXlUZXh0PzogKFxuICAgIGVsZW1lbnQ6IFN1cnZleS5CYXNlLFxuICAgIGZvcm1hdFN0cjogc3RyaW5nLFxuICAgIGx0OiBTdXJ2ZXlMb2dpY1R5cGVcbiAgKSA9PiBzdHJpbmc7XG4gIGdldERpc3BsYXlUZXh0TmFtZT86IChlbGVtZW50OiBTdXJ2ZXkuQmFzZSkgPT4gc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRMb2dpY1N0cmluZyhuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJlZC5sZy5cIiArIG5hbWUpO1xufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5TG9naWNFdmVudCBleHRlbmRzIFN1cnZleS5FdmVudEJhc2U8U3VydmV5TG9naWM+IHsgfVxuXG5leHBvcnQgY2xhc3MgU3VydmV5TG9naWNUeXBlIHtcbiAgcHVibGljIHN0YXRpYyBleHByZXNzaW9uVG9EaXNwbGF5VGV4dChcbiAgICBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCxcbiAgICBvcHRpb25zOiBJU3VydmV5T2JqZWN0RWRpdG9yT3B0aW9ucyxcbiAgICBleHByZXNzaW9uOiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEV4cHJlc3Npb25Ub0Rpc3BsYXlUZXh0KHN1cnZleSwgb3B0aW9ucykudG9EaXNwbGF5VGV4dChcbiAgICAgIGV4cHJlc3Npb25cbiAgICApO1xuICB9XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9naWNUeXBlOiBJU3VydmV5TG9naWNUeXBlLFxuICAgIHB1YmxpYyBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCxcbiAgICBwdWJsaWMgb3B0aW9uczogSVN1cnZleU9iamVjdEVkaXRvck9wdGlvbnMgPSBudWxsXG4gICkgeyB9XG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvZ2ljVHlwZS5uYW1lO1xuICB9XG4gIHB1YmxpYyBnZXQgYmFzZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9naWNUeXBlLmJhc2VDbGFzcztcbiAgfVxuICBwdWJsaWMgZ2V0IHByb3BlcnR5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvZ2ljVHlwZS5wcm9wZXJ0eU5hbWU7XG4gIH1cbiAgcHVibGljIGdldCB0ZW1wbGF0ZU5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc1RyaWdnZXIpIHJldHVybiBcInN2ZC1vYmplY3QtZWRpdG9yLWNvbnRlbnRcIjtcbiAgICByZXR1cm4gISF0aGlzLmxvZ2ljVHlwZS50ZW1wbGF0ZU5hbWVcbiAgICAgID8gdGhpcy5sb2dpY1R5cGUudGVtcGxhdGVOYW1lXG4gICAgICA6IFwic3ZkLWVsZW1lbnQtc2VsZWN0b3JcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnNob3dJblVJKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCEhdGhpcy5sb2dpY1R5cGUuc2hvd0lmKSByZXR1cm4gdGhpcy5sb2dpY1R5cGUuc2hvd0lmKHRoaXMuc3VydmV5KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNob3dUaXRsZXNJbkV4cHJlc3Npb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5zaG93VGl0bGVzSW5FeHByZXNzaW9ucztcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc0l0ZW1TZWxlY3RvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmJhc2VDbGFzcyAmJiB0aGlzLnNob3dJblVJICYmICF0aGlzLmNhbkNyZWF0ZU5ld0VsZW1lbnQoKTtcbiAgfVxuICBwdWJsaWMgY3JlYXRlSXRlbVNlbGVjdG9yKCk6IFN1cnZleUVsZW1lbnRTZWxlY3RvciB7XG4gICAgaWYgKCF0aGlzLmhhc0l0ZW1TZWxlY3RvcikgcmV0dXJuIG51bGw7XG4gICAgdmFyIHJlcyA9IG5ldyBTdXJ2ZXlFbGVtZW50U2VsZWN0b3IoXG4gICAgICB0aGlzLnN1cnZleSxcbiAgICAgIHRoaXMuYmFzZUNsYXNzLFxuICAgICAgdGhpcy5zaG93VGl0bGVzSW5FeHByZXNzaW9uXG4gICAgKTtcbiAgICByZXMuZGlzYWJsZWRQcm9wZXJ0eU5hbWUgPSB0aGlzLnByb3BlcnR5TmFtZTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHB1YmxpYyBnZXQgc2hvd0luVUkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubG9naWNUeXBlLnNob3dJblVJICE9PSBmYWxzZTtcbiAgfVxuICBwcml2YXRlIGNhbkNyZWF0ZU5ld0VsZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5sb2dpY1R5cGUuY3JlYXRlTmV3RWxlbWVudCB8fCB0aGlzLmlzVHJpZ2dlcjtcbiAgfVxuICBwcml2YXRlIGdldCBpc1RyaWdnZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5iYXNlQ2xhc3MgJiYgdGhpcy5iYXNlQ2xhc3MuaW5kZXhPZihcInRyaWdnZXJcIikgPiAtMTtcbiAgfVxuICBwdWJsaWMgY3JlYXRlTmV3RWxlbWVudChzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCk6IFN1cnZleS5CYXNlIHtcbiAgICBpZiAoISF0aGlzLmxvZ2ljVHlwZS5jcmVhdGVOZXdFbGVtZW50KVxuICAgICAgcmV0dXJuIHRoaXMubG9naWNUeXBlLmNyZWF0ZU5ld0VsZW1lbnQoc3VydmV5KTtcbiAgICBpZiAodGhpcy5pc1RyaWdnZXIpIHJldHVybiB0aGlzLmNyZWF0ZVRyaWdnZXJFbGVtZW50KHN1cnZleSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHVibGljIHNhdmVFbGVtZW50KGFjdGlvbjogU3VydmV5TG9naWNBY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoISF0aGlzLmxvZ2ljVHlwZS5zYXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5sb2dpY1R5cGUuc2F2ZUVsZW1lbnQodGhpcy5zdXJ2ZXksIGFjdGlvbik7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzVHJpZ2dlcikge1xuICAgICAgdGhpcy5zYXZlVHJpZ2dlckVsZW1lbnQoYWN0aW9uKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGNyZWF0ZVRlbXBsYXRlT2JqZWN0KGVsZW1lbnQ6IFN1cnZleS5CYXNlKTogYW55IHtcbiAgICBpZiAoISF0aGlzLmxvZ2ljVHlwZS5jcmVhdGVUZW1wbGF0ZU9iamVjdClcbiAgICAgIHJldHVybiB0aGlzLmxvZ2ljVHlwZS5jcmVhdGVUZW1wbGF0ZU9iamVjdChlbGVtZW50KTtcbiAgICBpZiAodGhpcy5pc1RyaWdnZXIpIHJldHVybiB0aGlzLmNyZWF0ZVRyaWdnZXJUZW1wbGF0ZU9iamVjdChlbGVtZW50KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzVW5pcXVlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpY1R5cGUuaXNVbmlxdWVJdGVtID09PSB0cnVlO1xuICB9XG4gIHB1YmxpYyBnZXQgcXVlc3Rpb25OYW1lcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5sb2dpY1R5cGUucXVlc3Rpb25OYW1lcztcbiAgfVxuICBwdWJsaWMgZ2V0IGRpc3BsYXlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldExvZ2ljU3RyaW5nKHRoaXMubmFtZSArIFwiTmFtZVwiKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldExvZ2ljU3RyaW5nKHRoaXMubmFtZSArIFwiRGVzY3JpcHRpb25cIik7XG4gIH1cbiAgcHVibGljIGdldERpc3BsYXlUZXh0KGVsZW1lbnQ6IFN1cnZleS5CYXNlKTogc3RyaW5nIHtcbiAgICB2YXIgc3RyID0gZ2V0TG9naWNTdHJpbmcodGhpcy5uYW1lICsgXCJUZXh0XCIpO1xuICAgIGlmICghIXRoaXMubG9naWNUeXBlLmdldERpc3BsYXlUZXh0KVxuICAgICAgcmV0dXJuIHRoaXMubG9naWNUeXBlLmdldERpc3BsYXlUZXh0KGVsZW1lbnQsIHN0ciwgdGhpcyk7XG4gICAgdmFyIG5hbWUgPSBcIlwiO1xuICAgIGlmICghIXRoaXMubG9naWNUeXBlLmdldERpc3BsYXlUZXh0TmFtZSkge1xuICAgICAgbmFtZSA9IHRoaXMubG9naWNUeXBlLmdldERpc3BsYXlUZXh0TmFtZShlbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCEhZWxlbWVudCAmJiAhIWVsZW1lbnRbXCJuYW1lXCJdKSB7XG4gICAgICAgIG5hbWUgPSBlbGVtZW50W1wibmFtZVwiXTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCEhbmFtZSkge1xuICAgICAgcmV0dXJuIHN0cltcImZvcm1hdFwiXSh0aGlzLmZvcm1hdEVsTmFtZShuYW1lKSk7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgcHVibGljIGZvcm1hdEVsTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNob3dUaXRsZXNJbkV4cHJlc3Npb24gJiYgISF0aGlzLnN1cnZleSkge1xuICAgICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5zdXJ2ZXkuZ2V0UXVlc3Rpb25CeU5hbWUobmFtZSk7XG4gICAgICBpZiAoISFxdWVzdGlvbiAmJiAhIXF1ZXN0aW9uLnRpdGxlKSB7XG4gICAgICAgIG5hbWUgPSBxdWVzdGlvbi50aXRsZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFwie1wiICsgbmFtZSArIFwifVwiO1xuICB9XG4gIHB1YmxpYyBmb3JtYXRFeHByZXNzaW9uKGV4cHJlc3Npb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN1cnZleUxvZ2ljVHlwZS5leHByZXNzaW9uVG9EaXNwbGF5VGV4dChcbiAgICAgIHRoaXMuc3VydmV5LFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgZXhwcmVzc2lvblxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBoYXNUaGlzQWN0aW9uKGFjdGlvbnM6IEFycmF5PFN1cnZleUxvZ2ljQWN0aW9uPik6IGJvb2xlYW4ge1xuICAgIGlmICghYWN0aW9ucykgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFjdGlvbnNbaV0ubG9naWNUeXBlID09IHRoaXMpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVUcmlnZ2VyRWxlbWVudChzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCk6IFN1cnZleS5CYXNlIHtcbiAgICB2YXIgcmVzID0gPFN1cnZleS5TdXJ2ZXlUcmlnZ2VyPihcbiAgICAgIFN1cnZleS5TZXJpYWxpemVyLmNyZWF0ZUNsYXNzKHRoaXMuYmFzZUNsYXNzKVxuICAgICk7XG4gICAgcmVzW1wic3VydmV5XCJdID0gc3VydmV5O1xuICAgIHJlcy5zZXRPd25lcihzdXJ2ZXkpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBzYXZlVHJpZ2dlckVsZW1lbnQoYWN0aW9uOiBTdXJ2ZXlMb2dpY0FjdGlvbikge1xuICAgIGlmICghIWFjdGlvbi50ZW1wbGF0ZU9iamVjdC5lZGl0YWJsZU9iamVjdCkge1xuICAgICAgdmFyIGVkT2JqID0gYWN0aW9uLnRlbXBsYXRlT2JqZWN0LmVkaXRhYmxlT2JqZWN0O1xuICAgICAgZWRPYmouYXBwbHlBbGwoW1wiZXhwcmVzc2lvblwiXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB0cmlnZ2VyID0gPFN1cnZleS5TdXJ2ZXlUcmlnZ2VyPmFjdGlvbi5lbGVtZW50O1xuICAgICAgdmFyIHN1cnZleSA9IHRoaXMuc3VydmV5O1xuICAgICAgaWYgKHRoaXMuaXNOZXdUcmlnZ2VyKHRyaWdnZXIpICYmICEhdHJpZ2dlci5leHByZXNzaW9uKSB7XG4gICAgICAgIHN1cnZleS50cmlnZ2Vycy5wdXNoKHRyaWdnZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIGNyZWF0ZVRyaWdnZXJUZW1wbGF0ZU9iamVjdChlbGVtZW50OiBTdXJ2ZXkuQmFzZSkge1xuICAgIHZhciByZXM6IFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWwgPSBudWxsO1xuICAgIGlmICh0aGlzLmlzTmV3VHJpZ2dlcihlbGVtZW50KSkge1xuICAgICAgcmVzID0gbmV3IFN1cnZleUVsZW1lbnRFZGl0b3JDb250ZW50TW9kZWwoZWxlbWVudCwgXCJcIiwgdGhpcy5vcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0gbmV3IFN1cnZleVF1ZXN0aW9uRWRpdG9yKGVsZW1lbnQsIFwiXCIsIHRoaXMub3B0aW9ucyk7XG4gICAgfVxuICAgIHZhciBleHByZXNzaW9uRWRpdG9yID0gcmVzLmdldFByb3BlcnR5RWRpdG9yQnlOYW1lKFwiZXhwcmVzc2lvblwiKTtcbiAgICBpZiAoISFleHByZXNzaW9uRWRpdG9yKSB7XG4gICAgICBleHByZXNzaW9uRWRpdG9yLmlzSGlkZGVuID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGlzTmV3VHJpZ2dlcihlbGVtZW50OiBTdXJ2ZXkuQmFzZSk6IGJvb2xlYW4ge1xuICAgIHZhciB0cmlnZ2VyID0gPFN1cnZleS5TdXJ2ZXlUcmlnZ2VyPmVsZW1lbnQ7XG4gICAgdmFyIHN1cnZleSA9IHRoaXMuc3VydmV5O1xuICAgIHJldHVybiAhIXN1cnZleSAmJiBzdXJ2ZXkudHJpZ2dlcnMuaW5kZXhPZih0cmlnZ2VyKSA8IDA7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleUxvZ2ljQWN0aW9uIHtcbiAgcHVibGljIGtvRWxlbWVudDogYW55O1xuICBwdWJsaWMga29Mb2dpY1R5cGU6IGFueTtcbiAgcHVibGljIGtvRGlzcGxheUVycm9yOiBhbnk7XG4gIHB1YmxpYyBrb0Vycm9yVGV4dDogYW55O1xuICBwdWJsaWMga29UZW1wbGF0ZU9iamVjdDogYW55O1xuICBwdWJsaWMga29UZW1wbGF0ZTogYW55O1xuICBwdWJsaWMga29Mb2dpY1R5cGVzOiBhbnk7XG4gIHB1YmxpYyBvbkxvZ2ljVHlwZUNoYW5nZWQ6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgaXRlbVNlbGVjdG9yVmFsdWU6IFN1cnZleUVsZW1lbnRTZWxlY3RvciA9IG51bGw7XG4gIGtvQWZ0ZXJSZW5kZXI6IGFueTtcbiAgY29uc3RydWN0b3IoXG4gICAgbG9naWNUeXBlOiBTdXJ2ZXlMb2dpY1R5cGUsXG4gICAgZWxlbWVudDogU3VydmV5LkJhc2UsXG4gICAgcHJpdmF0ZSBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbFxuICApIHtcbiAgICB0aGlzLmtvTG9naWNUeXBlID0ga28ub2JzZXJ2YWJsZShsb2dpY1R5cGUpO1xuICAgIHRoaXMua29UZW1wbGF0ZSA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gICAgdGhpcy5rb0VsZW1lbnQgPSBrby5vYnNlcnZhYmxlKGVsZW1lbnQpO1xuICAgIHRoaXMua29FcnJvclRleHQgPSBrby5vYnNlcnZhYmxlKFwiXCIpO1xuICAgIHRoaXMua29UZW1wbGF0ZU9iamVjdCA9IGtvLm9ic2VydmFibGUobnVsbCk7XG4gICAgdGhpcy5rb0xvZ2ljVHlwZXMgPSBrby5vYnNlcnZhYmxlQXJyYXkoKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5rb0Rpc3BsYXlFcnJvciA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiAhIXNlbGYua29FcnJvclRleHQoKTtcbiAgICB9KTtcbiAgICB0aGlzLmtvTG9naWNUeXBlLnN1YnNjcmliZShmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHNlbGYuZWxlbWVudCA9ICEhc2VsZi5sb2dpY1R5cGVcbiAgICAgICAgPyBzZWxmLmxvZ2ljVHlwZS5jcmVhdGVOZXdFbGVtZW50KHNlbGYuc3VydmV5KVxuICAgICAgICA6IG51bGw7XG4gICAgICBpZiAoISFzZWxmLm9uTG9naWNUeXBlQ2hhbmdlZCkgc2VsZi5vbkxvZ2ljVHlwZUNoYW5nZWQoKTtcbiAgICAgIHNlbGYuZG9Mb2dpY1R5cGVDaGFuZ2VkKCk7XG4gICAgfSk7XG4gICAgdGhpcy5kb0xvZ2ljVHlwZUNoYW5nZWQoKTtcbiAgICB0aGlzLmtvQWZ0ZXJSZW5kZXIgPSBmdW5jdGlvbiAoKSB7IH07XG4gIH1cbiAgcHVibGljIGdldCBsb2dpY1R5cGUoKTogU3VydmV5TG9naWNUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5rb0xvZ2ljVHlwZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgbG9naWNUeXBlKHZhbDogU3VydmV5TG9naWNUeXBlKSB7XG4gICAgaWYgKHRoaXMua29Mb2dpY1R5cGUoKSA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLmtvTG9naWNUeXBlKHZhbCk7XG4gICAgdGhpcy5kb0xvZ2ljVHlwZUNoYW5nZWQoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRlbXBsYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMua29UZW1wbGF0ZSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgdGVtcGxhdGVPYmplY3QoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5rb1RlbXBsYXRlT2JqZWN0KCk7XG4gIH1cbiAgcHVibGljIGdldCBrb1RlbXBsYXRlQWZ0ZXJSZW5kZXIoKTogYW55IHtcbiAgICBpZiAoIXRoaXMudGVtcGxhdGVPYmplY3QgfHwgIXRoaXMudGVtcGxhdGVPYmplY3QuZWRpdG9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlT2JqZWN0LmVkaXRvci5rb0FmdGVyUmVuZGVyO1xuICB9XG4gIHB1YmxpYyBnZXQgZWxlbWVudCgpOiBTdXJ2ZXkuQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMua29FbGVtZW50KCk7XG4gIH1cbiAgcHVibGljIHNldCBlbGVtZW50KHZhbDogU3VydmV5LkJhc2UpIHtcbiAgICB0aGlzLmtvRWxlbWVudCh2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgaXRlbVNlbGVjdG9yKCk6IFN1cnZleUVsZW1lbnRTZWxlY3RvciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVNlbGVjdG9yVmFsdWU7XG4gIH1cbiAgcHVibGljIGFwcGx5KGV4cHJlc3Npb246IHN0cmluZywgaXNSZW5hbWluZzogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKCEhdGhpcy5lbGVtZW50ICYmICEhdGhpcy5sb2dpY1R5cGUpIHtcbiAgICAgIHRoaXMuZWxlbWVudFt0aGlzLmxvZ2ljVHlwZS5wcm9wZXJ0eU5hbWVdID0gZXhwcmVzc2lvbjtcbiAgICAgIGlmICghaXNSZW5hbWluZykge1xuICAgICAgICB0aGlzLmxvZ2ljVHlwZS5zYXZlRWxlbWVudCh0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgIWV4cHJlc3Npb24gJiZcbiAgICAgICAgU3VydmV5LlNlcmlhbGl6ZXIuaXNEZXNjZW5kYW50T2YoXG4gICAgICAgICAgdGhpcy5lbGVtZW50LmdldFR5cGUoKSxcbiAgICAgICAgICBcInN1cnZleXRyaWdnZXJcIlxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5zdXJ2ZXkudHJpZ2dlcnMuaW5kZXhPZihcbiAgICAgICAgICA8U3VydmV5LlN1cnZleVRyaWdnZXI+dGhpcy5lbGVtZW50XG4gICAgICAgICk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgdGhpcy5zdXJ2ZXkudHJpZ2dlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBwdWJsaWMgcmVuYW1lUXVlc3Rpb24ob2xkTmFtZTogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudCkgcmV0dXJuO1xuICAgIHZhciBuYW1lcyA9IHRoaXMucXVlc3Rpb25OYW1lcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc3RyID0gdGhpcy5lbGVtZW50W25hbWVzW2ldXTtcbiAgICAgIGlmICghIXN0ciAmJiBzdHIudG9Mb3dlckNhc2UoKSA9PSBvbGROYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50W25hbWVzW2ldXSA9IG5ld05hbWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBlcXVhbHMoYWN0aW9uOiBTdXJ2ZXlMb2dpY0FjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxvZ2ljVHlwZSA9PT0gYWN0aW9uLmxvZ2ljVHlwZSAmJiB0aGlzLmVsZW1lbnQgPT09IGFjdGlvbi5lbGVtZW50XG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gISF0aGlzLmxvZ2ljVHlwZSA/IHRoaXMubG9naWNUeXBlLmRpc3BsYXlOYW1lIDogbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGxvZ2ljVHlwZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gISF0aGlzLmxvZ2ljVHlwZSA/IHRoaXMubG9naWNUeXBlLm5hbWUgOiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAhIXRoaXMubG9naWNUeXBlID8gdGhpcy5sb2dpY1R5cGUuZ2V0RGlzcGxheVRleHQodGhpcy5lbGVtZW50KSA6IFwiXCI7XG4gIH1cbiAgcHVibGljIGdldCBkZWxldGVBY3Rpb25UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldExvZ2ljU3RyaW5nKFwiZGVsZXRlQWN0aW9uXCIpO1xuICB9XG4gIHB1YmxpYyBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMubG9naWNUeXBlKSB7XG4gICAgICB0aGlzLmVycm9yVGV4dCA9IGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJwZS5jb25kaXRpb25BY3Rpb25FbXB0eVwiKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmVycm9yVGV4dCA9IFwiXCI7XG4gICAgaWYgKCEhdGhpcy5pdGVtU2VsZWN0b3IpIHJldHVybiB0aGlzLml0ZW1TZWxlY3Rvci5oYXNFcnJvcigpO1xuICAgIGlmICghIXRoaXMudGVtcGxhdGVPYmplY3QgJiYgISF0aGlzLnRlbXBsYXRlT2JqZWN0Lmhhc0Vycm9yKVxuICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVPYmplY3QuaGFzRXJyb3IoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldCBlcnJvclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5rb0Vycm9yVGV4dCgpO1xuICB9XG4gIHB1YmxpYyBzZXQgZXJyb3JUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5rb0Vycm9yVGV4dCh2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXRMb2NTdHJpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcobmFtZSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgcXVlc3Rpb25OYW1lcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMubG9naWNUeXBlIHx8ICF0aGlzLmxvZ2ljVHlwZS5xdWVzdGlvbk5hbWVzKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHRoaXMubG9naWNUeXBlLnF1ZXN0aW9uTmFtZXM7XG4gIH1cbiAgcHJpdmF0ZSBkb0xvZ2ljVHlwZUNoYW5nZWQoKSB7XG4gICAgdGhpcy5rb0Vycm9yVGV4dChcIlwiKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RvclZhbHVlID0gISF0aGlzLmxvZ2ljVHlwZVxuICAgICAgPyB0aGlzLmxvZ2ljVHlwZS5jcmVhdGVJdGVtU2VsZWN0b3IoKVxuICAgICAgOiBudWxsO1xuICAgIGlmICh0aGlzLml0ZW1TZWxlY3Rvcikge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgdGhpcy5pdGVtU2VsZWN0b3IuZWxlbWVudCA9IHRoaXMuZWxlbWVudDtcbiAgICAgIHRoaXMuaXRlbVNlbGVjdG9yLm9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2sgPSBmdW5jdGlvbiAobmV3VmFsdWU6IHN0cmluZykge1xuICAgICAgICBzZWxmLmVsZW1lbnQgPSBzZWxmLml0ZW1TZWxlY3Rvci5lbGVtZW50O1xuICAgICAgfTtcbiAgICB9XG4gICAgdmFyIG9iaiA9ICEhdGhpcy5sb2dpY1R5cGVcbiAgICAgID8gdGhpcy5sb2dpY1R5cGUuY3JlYXRlVGVtcGxhdGVPYmplY3QodGhpcy5lbGVtZW50KVxuICAgICAgOiBudWxsO1xuICAgIG9iaiA9IG9iaiB8fCB0aGlzLml0ZW1TZWxlY3RvcjtcbiAgICB0aGlzLmtvVGVtcGxhdGUoXCJcIik7XG4gICAgdGhpcy5rb1RlbXBsYXRlT2JqZWN0KG9iaik7XG4gICAgdGhpcy5rb1RlbXBsYXRlKCEhdGhpcy5sb2dpY1R5cGUgPyB0aGlzLmxvZ2ljVHlwZS50ZW1wbGF0ZU5hbWUgOiBcIlwiKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdXJ2ZXlMb2dpY0l0ZW1Pd25lciB7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xuICBlZGl0SXRlbShpdGVtOiBTdXJ2ZXlMb2dpY0l0ZW0pO1xuICByZW1vdmVJdGVtKGl0ZW06IFN1cnZleUxvZ2ljSXRlbSk7XG4gIGdldEV4cHJlc3Npb25Bc0Rpc3BsYXlUZXh0KGV4cHJlc3Npb246IHN0cmluZyk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleUxvZ2ljSXRlbSB7XG4gIHB1YmxpYyBrb0FjdGlvbnM6IGFueTtcbiAgcHJpdmF0ZSBzdGF0aWMgY291bnRlciA9IDA7XG4gIHByaXZhdGUgaWQgPSArK1N1cnZleUxvZ2ljSXRlbS5jb3VudGVyO1xuICBwcml2YXRlIHJlbW92ZWRBY3Rpb25zOiBBcnJheTxTdXJ2ZXlMb2dpY0FjdGlvbj47XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3duZXI6IElTdXJ2ZXlMb2dpY0l0ZW1Pd25lcixcbiAgICBwdWJsaWMgZXhwcmVzc2lvbjogc3RyaW5nID0gXCJcIlxuICApIHtcbiAgICB0aGlzLnJlbW92ZWRBY3Rpb25zID0gW107XG4gICAgdGhpcy5rb0FjdGlvbnMgPSBrby5vYnNlcnZhYmxlQXJyYXkoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIFwibG9naWNJdGVtXCIgKyB0aGlzLmlkO1xuICB9XG4gIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgdmFyIHJlcyA9IHRoaXMuZ2V0RXhwcmVzc2lvbkFzRGlzcGxheVRleHQoKTtcbiAgICBpZiAoISFyZXMgJiYgcmVzLmxlbmd0aCA+IDUwKSB7XG4gICAgICByZXMgPSByZXMuc3Vic3RyKDEsIDUwKSArIFwiLi4uXCI7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGVkaXQoKSB7XG4gICAgaWYgKCEhdGhpcy5vd25lcikge1xuICAgICAgdGhpcy5vd25lci5lZGl0SXRlbSh0aGlzKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHJlbW92ZSgpIHtcbiAgICBpZiAoISF0aGlzLm93bmVyKSB7XG4gICAgICB0aGlzLm93bmVyLnJlbW92ZUl0ZW0odGhpcyk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgaXNSZWFkT25seSgpIHtcbiAgICByZXR1cm4gISF0aGlzLm93bmVyICYmIHRoaXMub3duZXIucmVhZE9ubHk7XG4gIH1cbiAgcHVibGljIGdldCBhY3Rpb25zKCk6IEFycmF5PFN1cnZleUxvZ2ljQWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMua29BY3Rpb25zKCk7XG4gIH1cbiAgcHVibGljIGFkZE5ld0FjdGlvbihhY3Rpb246IFN1cnZleUxvZ2ljQWN0aW9uKSB7XG4gICAgdGhpcy5rb0FjdGlvbnMucHVzaChhY3Rpb24pO1xuICB9XG4gIHB1YmxpYyByZW1vdmVBY3Rpb24oYWN0aW9uOiBTdXJ2ZXlMb2dpY0FjdGlvbikge1xuICAgIHRoaXMucmVtb3ZlZEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgIHZhciBpbmRleCA9IHRoaXMua29BY3Rpb25zKCkuaW5kZXhPZihhY3Rpb24pO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLmtvQWN0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgaWYgKCEhYWN0aW9uLmxvZ2ljVHlwZSAmJiAhIWFjdGlvbi5vbkxvZ2ljVHlwZUNoYW5nZWQpIHtcbiAgICAgICAgYWN0aW9uLm9uTG9naWNUeXBlQ2hhbmdlZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwdWJsaWMgYXBwbHkoZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gICAgaWYgKCFleHByZXNzaW9uKSB7XG4gICAgICB0aGlzLnJlbW92ZUFjdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVTYW1lQWN0aW9ucygpO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucmVtb3ZlZEFjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMucmVtb3ZlZEFjdGlvbnNbaV0uYXBwbHkoXCJcIik7XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlZEFjdGlvbnMgPSBbXTtcbiAgICB0aGlzLmFwcGx5RXhwcmVzc2lvbihleHByZXNzaW9uLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHJlbmFtZVF1ZXN0aW9uKG9sZE5hbWU6IHN0cmluZywgbmV3TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFvbGROYW1lIHx8ICFuZXdOYW1lKSByZXR1cm47XG4gICAgdGhpcy5yZW5hbWVRdWVzdGlvbkluRXhwcmVzc2lvbihvbGROYW1lLCBuZXdOYW1lKTtcbiAgICB2YXIgb3BzID0gdGhpcy5hY3Rpb25zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBvcHNbaV0ucmVuYW1lUXVlc3Rpb24ob2xkTmFtZSwgbmV3TmFtZSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyByZW1vdmVRdWVzdGlvbihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlbW92ZVF1ZXN0aW9uSW5FeHByZXNzaW9uKG5hbWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgZXhwcmVzc2lvblRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uXG4gICAgICAuZ2V0U3RyaW5nKFwiZWQubGcuaXRlbUV4cHJlc3Npb25UZXh0XCIpW1wiZm9ybWF0XCJdKHRoaXMuZ2V0RXhwcmVzc2lvbkFzRGlzcGxheVRleHQoKSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRFeHByZXNzaW9uQXNEaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAhIXRoaXMub3duZXJcbiAgICAgID8gdGhpcy5vd25lci5nZXRFeHByZXNzaW9uQXNEaXNwbGF5VGV4dCh0aGlzLmV4cHJlc3Npb24pXG4gICAgICA6IHRoaXMuZXhwcmVzc2lvbjtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJwZS5lZGl0XCIpO1xuICB9XG4gIHB1YmxpYyBnZXQgZGVsZXRlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGUuZGVsZXRlXCIpO1xuICB9XG4gIHByaXZhdGUgcmVuYW1lUXVlc3Rpb25JbkV4cHJlc3Npb24ob2xkTmFtZTogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZXhwcmVzc2lvbikgcmV0dXJuO1xuICAgIHZhciBuZXdFeHByZXNzaW9uID0gdGhpcy5leHByZXNzaW9uO1xuICAgIHZhciBleHByZXNzaW9uID0gdGhpcy5leHByZXNzaW9uLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgb2xkTmFtZSA9IFwie1wiICsgb2xkTmFtZS50b0xvd2VyQ2FzZSgpICsgXCJ9XCI7XG4gICAgbmV3TmFtZSA9IFwie1wiICsgbmV3TmFtZSArIFwifVwiO1xuICAgIHZhciBpbmRleCA9IGV4cHJlc3Npb24ubGFzdEluZGV4T2Yob2xkTmFtZSwgZXhwcmVzc2lvbi5sZW5ndGgpO1xuICAgIHdoaWxlIChpbmRleCA+IC0xKSB7XG4gICAgICBuZXdFeHByZXNzaW9uID1cbiAgICAgICAgbmV3RXhwcmVzc2lvbi5zdWJzdHJpbmcoMCwgaW5kZXgpICtcbiAgICAgICAgbmV3TmFtZSArXG4gICAgICAgIG5ld0V4cHJlc3Npb24uc3Vic3RyKGluZGV4ICsgb2xkTmFtZS5sZW5ndGgsICtuZXdFeHByZXNzaW9uLmxlbmd0aCk7XG4gICAgICBleHByZXNzaW9uID0gZXhwcmVzc2lvbi5zdWJzdHJpbmcoMCwgaW5kZXgpO1xuICAgICAgaW5kZXggPSBleHByZXNzaW9uLmxhc3RJbmRleE9mKG9sZE5hbWUsIGV4cHJlc3Npb24ubGVuZ3RoKTtcbiAgICB9XG4gICAgaWYgKG5ld0V4cHJlc3Npb24gIT0gdGhpcy5leHByZXNzaW9uKSB7XG4gICAgICB0aGlzLmFwcGx5RXhwcmVzc2lvbihuZXdFeHByZXNzaW9uLCB0cnVlKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVRdWVzdGlvbkluRXhwcmVzc2lvbihuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZXhwcmVzc2lvbikgcmV0dXJuO1xuICAgIHZhciBleHBSID0gbmV3IEV4cHJlc3Npb25SZW1vdmVWYXJpYWJsZSgpO1xuICAgIHZhciBuZXdFeHByZXNzaW9uID0gZXhwUi5yZW1vdmUodGhpcy5leHByZXNzaW9uLCBuYW1lKTtcbiAgICBpZiAobmV3RXhwcmVzc2lvbiAhPSB0aGlzLmV4cHJlc3Npb24pIHtcbiAgICAgIHRoaXMuYXBwbHlFeHByZXNzaW9uKG5ld0V4cHJlc3Npb24sIHRydWUpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGFwcGx5RXhwcmVzc2lvbihleHByZXNzaW9uOiBzdHJpbmcsIGlzUmVuYW1pbmc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICAgIHZhciBvcHMgPSB0aGlzLmFjdGlvbnM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG9wc1tpXS5hcHBseShleHByZXNzaW9uLCBpc1JlbmFtaW5nKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVBY3Rpb25zKCkge1xuICAgIHZhciBvcHMgPSB0aGlzLmFjdGlvbnM7XG4gICAgZm9yICh2YXIgaSA9IG9wcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgdGhpcy5yZW1vdmVBY3Rpb24ob3BzW2ldKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVTYW1lQWN0aW9ucygpIHtcbiAgICB2YXIgb3BzID0gdGhpcy5hY3Rpb25zO1xuICAgIGZvciAodmFyIGkgPSBvcHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGZvciAodmFyIGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgaWYgKG9wc1tpXS5lcXVhbHMob3BzW2pdKSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKG9wc1tpXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleUxvZ2ljIGltcGxlbWVudHMgSVN1cnZleUxvZ2ljSXRlbU93bmVyIHtcbiAgcHVibGljIHN0YXRpYyB2aXNpYmxlQWN0aW9ucyA9IFtdO1xuICBwdWJsaWMgc3RhdGljIHR5cGVzOiBBcnJheTxhbnk+ID0gW1xuICAgIHtcbiAgICAgIG5hbWU6IFwicGFnZV92aXNpYmlsaXR5XCIsXG4gICAgICBiYXNlQ2xhc3M6IFwicGFnZVwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcInZpc2libGVJZlwiLFxuICAgICAgc2hvd0lmOiBmdW5jdGlvbiAoc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIHN1cnZleS5wYWdlcy5sZW5ndGggPiAxO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwicGFnZV9lbmFibGVcIixcbiAgICAgIGJhc2VDbGFzczogXCJwYWdlXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwiZW5hYmxlSWZcIixcbiAgICAgIHNob3dJZjogZnVuY3Rpb24gKHN1cnZleTogU3VydmV5LlN1cnZleU1vZGVsKSB7XG4gICAgICAgIHJldHVybiBzdXJ2ZXkucGFnZXMubGVuZ3RoID4gMTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInBhbmVsX3Zpc2liaWxpdHlcIixcbiAgICAgIGJhc2VDbGFzczogXCJwYW5lbFwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcInZpc2libGVJZlwiLFxuICAgICAgc2hvd0lmOiBmdW5jdGlvbiAoc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIHN1cnZleS5nZXRBbGxQYW5lbHMoKS5sZW5ndGggPiAwO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwicGFuZWxfZW5hYmxlXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwicGFuZWxcIixcbiAgICAgIHByb3BlcnR5TmFtZTogXCJlbmFibGVJZlwiLFxuICAgICAgc2hvd0lmOiBmdW5jdGlvbiAoc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIHN1cnZleS5nZXRBbGxQYW5lbHMoKS5sZW5ndGggPiAwO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwicXVlc3Rpb25fdmlzaWJpbGl0eVwiLFxuICAgICAgYmFzZUNsYXNzOiBcInF1ZXN0aW9uXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwidmlzaWJsZUlmXCIsXG4gICAgICBzaG93SWY6IGZ1bmN0aW9uIChzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCkge1xuICAgICAgICByZXR1cm4gc3VydmV5LmdldEFsbFF1ZXN0aW9ucygpLmxlbmd0aCA+IDA7XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJxdWVzdGlvbl9lbmFibGVcIixcbiAgICAgIGJhc2VDbGFzczogXCJxdWVzdGlvblwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcImVuYWJsZUlmXCIsXG4gICAgICBzaG93SWY6IGZ1bmN0aW9uIChzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCkge1xuICAgICAgICByZXR1cm4gc3VydmV5LmdldEFsbFF1ZXN0aW9ucygpLmxlbmd0aCA+IDA7XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJxdWVzdGlvbl9yZXF1aXJlXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwicXVlc3Rpb25cIixcbiAgICAgIHByb3BlcnR5TmFtZTogXCJyZXF1aXJlZElmXCIsXG4gICAgICBzaG93SWY6IGZ1bmN0aW9uIChzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCkge1xuICAgICAgICByZXR1cm4gc3VydmV5LmdldEFsbFF1ZXN0aW9ucygpLmxlbmd0aCA+IDA7XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJleHByZXNzaW9uX2V4cHJlc3Npb25cIixcbiAgICAgIGJhc2VDbGFzczogXCJleHByZXNzaW9uXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwiZXhwcmVzc2lvblwiLFxuICAgICAgc2hvd0luVUk6IGZhbHNlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJtYXRyaXhkcm9wZG93bmNvbHVtbl92aXNpYmxlSWZcIixcbiAgICAgIGJhc2VDbGFzczogXCJtYXRyaXhkcm9wZG93bmNvbHVtblwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcInZpc2libGVJZlwiLFxuICAgICAgc2hvd0luVUk6IGZhbHNlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJtYXRyaXhkcm9wZG93bmNvbHVtbl9lbmFibGVJZlwiLFxuICAgICAgYmFzZUNsYXNzOiBcIm1hdHJpeGRyb3Bkb3duY29sdW1uXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwiZW5hYmxlSWZcIixcbiAgICAgIHNob3dJblVJOiBmYWxzZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwibWF0cml4ZHJvcGRvd25jb2x1bW5fcmVxdWlyZWRJZlwiLFxuICAgICAgYmFzZUNsYXNzOiBcIm1hdHJpeGRyb3Bkb3duY29sdW1uXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwicmVxdWlyZWRJZlwiLFxuICAgICAgc2hvd0luVUk6IGZhbHNlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJtYXRyaXhkcm9wZG93bmNvbHVtbl90b3RhbEV4cHJlc3Npb25cIixcbiAgICAgIGJhc2VDbGFzczogXCJtYXRyaXhkcm9wZG93bmNvbHVtblwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcInRvdGFsRXhwcmVzc2lvblwiLFxuICAgICAgc2hvd0luVUk6IGZhbHNlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ0cmlnZ2VyX2NvbXBsZXRlXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwiY29tcGxldGV0cmlnZ2VyXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwiZXhwcmVzc2lvblwiLFxuICAgICAgaXNVbmlxdWVJdGVtOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ0cmlnZ2VyX3NldHZhbHVlXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwic2V0dmFsdWV0cmlnZ2VyXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwiZXhwcmVzc2lvblwiLFxuICAgICAgcXVlc3Rpb25OYW1lczogW1wic2V0VG9OYW1lXCJdLFxuICAgICAgZ2V0RGlzcGxheVRleHQ6IGZ1bmN0aW9uIChcbiAgICAgICAgZWxlbWVudDogU3VydmV5LkJhc2UsXG4gICAgICAgIGZvcm1hdFN0cjogc3RyaW5nLFxuICAgICAgICBsdDogU3VydmV5TG9naWNUeXBlXG4gICAgICApOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0U3RyW1wiZm9ybWF0XCJdKFxuICAgICAgICAgIGx0LmZvcm1hdEVsTmFtZShlbGVtZW50W1wic2V0VG9OYW1lXCJdKSxcbiAgICAgICAgICBlbGVtZW50W1wic2V0VmFsdWVcIl1cbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInRyaWdnZXJfY29weXZhbHVlXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwiY29weXZhbHVldHJpZ2dlclwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcImV4cHJlc3Npb25cIixcbiAgICAgIHF1ZXN0aW9uTmFtZXM6IFtcInNldFRvTmFtZVwiLCBcImZyb21OYW1lXCJdLFxuICAgICAgZ2V0RGlzcGxheVRleHQ6IGZ1bmN0aW9uIChcbiAgICAgICAgZWxlbWVudDogU3VydmV5LkJhc2UsXG4gICAgICAgIGZvcm1hdFN0cjogc3RyaW5nLFxuICAgICAgICBsdDogU3VydmV5TG9naWNUeXBlXG4gICAgICApOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0U3RyW1wiZm9ybWF0XCJdKFxuICAgICAgICAgIGx0LmZvcm1hdEVsTmFtZShlbGVtZW50W1wic2V0VG9OYW1lXCJdKSxcbiAgICAgICAgICBsdC5mb3JtYXRFbE5hbWUoZWxlbWVudFtcImZyb21OYW1lXCJdKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwidHJpZ2dlcl9za2lwXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwic2tpcHRyaWdnZXJcIixcbiAgICAgIHByb3BlcnR5TmFtZTogXCJleHByZXNzaW9uXCIsXG4gICAgICBxdWVzdGlvbk5hbWVzOiBbXCJnb3RvTmFtZVwiXSxcbiAgICAgIGlzVW5pcXVlSXRlbTogdHJ1ZSxcbiAgICAgIGdldERpc3BsYXlUZXh0TmFtZTogZnVuY3Rpb24gKGVsZW1lbnQ6IFN1cnZleS5CYXNlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRbXCJnb3RvTmFtZVwiXTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInRyaWdnZXJfcnVuRXhwcmVzc2lvblwiLFxuICAgICAgYmFzZUNsYXNzOiBcInJ1bmV4cHJlc3Npb250cmlnZ2VyXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwiZXhwcmVzc2lvblwiLFxuICAgICAgcXVlc3Rpb25OYW1lczogW1wic2V0VG9OYW1lXCJdLFxuICAgICAgZ2V0RGlzcGxheVRleHQ6IGZ1bmN0aW9uIChcbiAgICAgICAgZWxlbWVudDogU3VydmV5LkJhc2UsXG4gICAgICAgIGZvcm1hdFN0cjogc3RyaW5nLFxuICAgICAgICBsdDogU3VydmV5TG9naWNUeXBlXG4gICAgICApOiBzdHJpbmcge1xuICAgICAgICB2YXIgcmVzID0gZ2V0TG9naWNTdHJpbmcoXCJ0cmlnZ2VyX3J1bkV4cHJlc3Npb25UZXh0MVwiKTtcbiAgICAgICAgcmVzID0gcmVzW1wiZm9ybWF0XCJdKGx0LmZvcm1hdEV4cHJlc3Npb24oZWxlbWVudFtcInJ1bkV4cHJlc3Npb25cIl0pKTtcbiAgICAgICAgdmFyIHNldFRvTmFtZSA9IGVsZW1lbnRbXCJzZXRUb05hbWVcIl07XG4gICAgICAgIGlmICghIXNldFRvTmFtZSkge1xuICAgICAgICAgIHZhciBzdHIgPSBnZXRMb2dpY1N0cmluZyhcInRyaWdnZXJfcnVuRXhwcmVzc2lvblRleHQyXCIpO1xuICAgICAgICAgIHJlcyArPSBzdHJbXCJmb3JtYXRcIl0obHQuZm9ybWF0RWxOYW1lKGVsZW1lbnRbXCJzZXRUb05hbWVcIl0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwiaHRtbGNvbmRpdGlvbml0ZW1cIixcbiAgICAgIHByb3BlcnR5TmFtZTogXCJleHByZXNzaW9uXCIsXG4gICAgICBpc1VuaXF1ZUl0ZW06IHRydWUsXG4gICAgICB0ZW1wbGF0ZU5hbWU6IFwic3ZkLXByb3BlcnR5LWVkaXRvci1odG1sXCIsXG4gICAgICBjcmVhdGVOZXdFbGVtZW50OiBmdW5jdGlvbiAoc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdXJ2ZXkuSHRtbENvbmRpdGlvbkl0ZW0oKTtcbiAgICAgIH0sXG4gICAgICBjcmVhdGVUZW1wbGF0ZU9iamVjdDogZnVuY3Rpb24gKGVsZW1lbnQ6IFN1cnZleS5CYXNlKSB7XG4gICAgICAgIC8vdmFyIGl0ZW0gPSA8U3VydmV5Lkh0bWxDb25kaXRpb25JdGVtPmVsZW1lbnQ7XG4gICAgICAgIHZhciByZXMgPSBuZXcgU3VydmV5RWxlbWVudEVkaXRvckNvbnRlbnRNb2RlbChcbiAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgdGhpcy5vcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByZXMuZ2V0UHJvcGVydHlFZGl0b3JCeU5hbWUoXCJodG1sXCIpO1xuICAgICAgICAvKlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtvVmFsdWU6IGtvLm9ic2VydmFibGUoaXRlbS5odG1sKSxcbiAgICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgICAga29BZnRlclJlbmRlcjogZnVuY3Rpb24gKCkge30sXG4gICAgICAgIH07Ki9cbiAgICAgIH0sXG4gICAgICBzYXZlRWxlbWVudDogZnVuY3Rpb24gKFxuICAgICAgICBzdXJ2ZXk6IFN1cnZleS5TdXJ2ZXlNb2RlbCxcbiAgICAgICAgYWN0aW9uOiBTdXJ2ZXlMb2dpY0FjdGlvblxuICAgICAgKSB7XG4gICAgICAgIHZhciBpdGVtID0gPFN1cnZleS5IdG1sQ29uZGl0aW9uSXRlbT5hY3Rpb24uZWxlbWVudDtcbiAgICAgICAgaXRlbS5odG1sID0gYWN0aW9uLnRlbXBsYXRlT2JqZWN0LmtvVmFsdWUoKTtcbiAgICAgICAgaWYgKHN1cnZleS5jb21wbGV0ZWRIdG1sT25Db25kaXRpb24uaW5kZXhPZihpdGVtKSA8IDApIHtcbiAgICAgICAgICBzdXJ2ZXkuY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uLnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInRyaWdnZXJfcnVuRXhwcmVzc2lvbl9FeHByZXNzaW9uXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwicnVuZXhwcmVzc2lvbnRyaWdnZXJcIixcbiAgICAgIHByb3BlcnR5TmFtZTogXCJydW5FeHByZXNzaW9uXCIsXG4gICAgICBzaG93SW5VSTogZmFsc2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInF1ZXN0aW9uX2V4cHJlc3Npb25WYWxpZGF0b3JcIixcbiAgICAgIGJhc2VDbGFzczogXCJleHByZXNzaW9udmFsaWRhdG9yXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwiZXhwcmVzc2lvblwiLFxuICAgICAgc2hvd0luVUk6IGZhbHNlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJtYXRyaXhfcm93c1Zpc2libGVJZlwiLFxuICAgICAgYmFzZUNsYXNzOiBcIm1hdHJpeFwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcInJvd3NWaXNpYmxlSWZcIixcbiAgICAgIHNob3dJblVJOiBmYWxzZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwibWF0cml4X2NvbHVtbnNWaXNpYmxlSWZcIixcbiAgICAgIGJhc2VDbGFzczogXCJtYXRyaXhcIixcbiAgICAgIHByb3BlcnR5TmFtZTogXCJjb2x1bW5zVmlzaWJsZUlmXCIsXG4gICAgICBzaG93SW5VSTogZmFsc2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcIm1hdHJpeGRyb3Bkb3duX3Jvd3NWaXNpYmxlSWZcIixcbiAgICAgIGJhc2VDbGFzczogXCJtYXRyaXhkcm9wZG93blwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcInJvd3NWaXNpYmxlSWZcIixcbiAgICAgIHNob3dJblVJOiBmYWxzZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwic2VsZWN0X2Nob2ljZXNWaXNpYmxlSWZcIixcbiAgICAgIGJhc2VDbGFzczogXCJzZWxlY3RiYXNlXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwiY2hvaWNlc1Zpc2libGVJZlwiLFxuICAgICAgc2hvd0luVUk6IGZhbHNlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJzZWxlY3RfY2hvaWNlc0VuYWJsZUlmXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwic2VsZWN0YmFzZVwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcImNob2ljZXNFbmFibGVJZlwiLFxuICAgICAgc2hvd0luVUk6IGZhbHNlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJpdGVtdmFsdWVfdmlzaWJsZUlmXCIsXG4gICAgICBiYXNlQ2xhc3M6IFwiaXRlbXZhbHVlXCIsXG4gICAgICBwcm9wZXJ0eU5hbWU6IFwidmlzaWJsZUlmXCIsXG4gICAgICBzaG93SW5VSTogZmFsc2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcIml0ZW12YWx1ZV9lbmFibGVJZlwiLFxuICAgICAgYmFzZUNsYXNzOiBcIml0ZW12YWx1ZVwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcImVuYWJsZUlmXCIsXG4gICAgICBzaG93SW5VSTogZmFsc2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImNhbGN1bGF0ZWRWYWx1ZVwiLFxuICAgICAgYmFzZUNsYXNzOiBcImNhbGN1bGF0ZWR2YWx1ZVwiLFxuICAgICAgcHJvcGVydHlOYW1lOiBcImV4cHJlc3Npb25cIixcbiAgICAgIHNob3dJblVJOiBmYWxzZSxcbiAgICB9LFxuICBdO1xuICBwdWJsaWMga29JdGVtczogYW55O1xuICBwdWJsaWMgaW52aXNpYmxlSXRlbXM6IEFycmF5PFN1cnZleUxvZ2ljSXRlbT4gPSBbXTtcbiAgcHVibGljIGtvTG9naWNUeXBlczogYW55O1xuICBwdWJsaWMga29Nb2RlOiBhbnk7XG4gIHB1YmxpYyBrb0FkZE5ldzogYW55O1xuICBwdWJsaWMga29FZGl0SXRlbTogYW55O1xuICBwdWJsaWMga29SZW1vdmVJdGVtOiBhbnk7XG4gIHB1YmxpYyBrb1Nob3dWaWV3OiBhbnk7XG4gIHB1YmxpYyBrb1NhdmVBbmRTaG93VmlldzogYW55O1xuICBwdWJsaWMga29TYXZlRWRpdGFibGVJdGVtOiBhbnk7XG4gIHB1YmxpYyBrb0FkZE5ld0FjdGlvbjogYW55O1xuICBwdWJsaWMga29SZW1vdmVBY3Rpb246IGFueTtcbiAgcHVibGljIGtvRWRpdGFibGVJdGVtOiBhbnk7XG4gIHB1YmxpYyBleHByZXNzaW9uRWRpdG9yOiBTdXJ2ZXlQcm9wZXJ0eUNvbmRpdGlvbkVkaXRvcjtcbiAgcHVibGljIGtvUmVhZE9ubHk6IGFueTtcbiAgcHVibGljIGtvRXJyb3JUZXh0OiBhbnk7XG4gIHB1YmxpYyBrb0Rpc3BsYXlFcnJvcjogYW55O1xuICBwdWJsaWMgb25DaGFuZ2VkQ2FsbGJhY2s6IChpdGVtOiBTdXJ2ZXlMb2dpY0l0ZW0sIGNoYW5nZVR5cGU6IHN0cmluZykgPT4gdm9pZDtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCB3aGVuIGxvZ2ljIGl0ZW0gaXMgc2F2ZWQuXG4gICAqIDxici8+IG9wdGlvbnMuaXRlbSBpcyB0aGUgc2F2ZWQgbG9naWMgaXRlbS5cbiAgICovXG4gIHB1YmxpYyBvbkxvZ2ljSXRlbVNhdmVkOiBTdXJ2ZXlMb2dpY0V2ZW50ID0gbmV3IFN1cnZleUxvZ2ljRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgYmVmb3JlIGxvZ2ljIGl0ZW0gaXMgc2F2ZWQuIFlvdSBjYW4gc2V0IG9wdGlvbnMuZXJyb3IgdG8gbm9uIGVtcHR5IHN0cmluZyB0byBzaG93IGVycm9yIGluc3RlYWQgb2Ygc2F2aW5nIHRoZSBpdGVtLlxuICAgKiBZb3UgY2FuIHVzZSBvcHRpb25zLml0ZW0uYWN0aW9ucyB0byBhY2Nlc3MgYWN0aW9ucyBhbmQgb3B0aW9uYWxseSBzZXQgZXJyb3JUZXh0IHRvIGEgcGFydGljdWxhciBhY3Rpb24uXG4gICAqIDxici8+IG9wdGlvbnMuaXRlbSBpcyB0aGUgc2F2ZWQgbG9naWMgaXRlbS5cbiAgICogPGJyLz4gdXNlZE5hbWVzSW5FeHByZXNzaW9uIC0gdGhlIHN0cmluZyBsaXN0IG9mIGFsbCB2YXJpYWJsZXMgKHF1ZXN0aW9ucywgY2FsY3VsYXRlZFZhbHVlcywgYW5kIHNvIG9uKSB0aGF0IGFyZSB1c2VkIGluIGV4cHJlc3Npb25cbiAgICogPGJyLz4gZXJyb3IgLSB0aGUgZXJyb3Igc3RyaW5nLiBJdCBpcyBlbXB0eSBieSBkZWZhdWx0LiBZb3UgaGF2ZSB0byBzZXQgaXQgdG8gbm9uLWVtcHR5IHN0cmluZyB0byBzaG93IHRoZSBlcnJvciBvbiBzYXZpbmcuXG4gICAqL1xuICBwdWJsaWMgb25Mb2dpY0l0ZW1WYWxpZGF0aW9uOiBTdXJ2ZXlMb2dpY0V2ZW50ID0gbmV3IFN1cnZleUxvZ2ljRXZlbnQoKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBjYWxsZWQgYmVmb3JlIGxvZ2ljIGl0ZW0gaXMgYmVpbmcgcmVtb3ZlZC5cbiAgICogPGJyLz4gb3B0aW9ucy5hbGxvd1JlbW92ZSBpcyB0aGUgb3B0aW9uIHlvdSBjYW4gc2V0IHRvIGZhbHNlIGFuZCBwcmV2ZW50IHJlbW92aW5nLlxuICAgKiA8YnIvPiBvcHRpb25zLml0ZW0gaXMgdGhlIGxvZ2ljIGl0ZW0gdG8gcmVtb3ZlLlxuICAgKi9cbiAgcHVibGljIG9uTG9naWNJdGVtUmVtb3Zpbmc6IFN1cnZleUxvZ2ljRXZlbnQgPSBuZXcgU3VydmV5TG9naWNFdmVudCgpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGNhbGxlZCB3aGVuIGxvZ2ljIGl0ZW0gaXMgcmVtb3ZlZC5cbiAgICogPGJyLz4gb3B0aW9ucy5pdGVtIGlzIHRoZSByZW1vdmVkIGxvZ2ljIGl0ZW0uXG4gICAqL1xuICBwdWJsaWMgb25Mb2dpY0l0ZW1SZW1vdmVkOiBTdXJ2ZXlMb2dpY0V2ZW50ID0gbmV3IFN1cnZleUxvZ2ljRXZlbnQoKTtcblxuICBrb0FmdGVyUmVuZGVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN1cnZleTogU3VydmV5LlN1cnZleU1vZGVsLFxuICAgIHB1YmxpYyBvcHRpb25zOiBJU3VydmV5T2JqZWN0RWRpdG9yT3B0aW9ucyA9IG51bGxcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVFeHByZXNzaW9uUHJvcGVydHlFZGl0b3IoKTtcbiAgICB0aGlzLmhpZGVFeHByZXNzaW9uSGVhZGVyID0gb3B0aW9ucyAmJiBvcHRpb25zW1wiaGlkZUV4cHJlc3Npb25IZWFkZXJcIl07XG4gICAgdGhpcy5rb0l0ZW1zID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gICAgdGhpcy5rb0xvZ2ljVHlwZXMgPSBrby5vYnNlcnZhYmxlQXJyYXkoKTtcbiAgICB0aGlzLmtvTW9kZSA9IGtvLm9ic2VydmFibGUoXCJ2aWV3XCIpO1xuICAgIHRoaXMua29SZWFkT25seSA9IGtvLm9ic2VydmFibGUodGhpcy5yZWFkT25seSk7XG4gICAgdGhpcy5rb0Vycm9yVGV4dCA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMua29EaXNwbGF5RXJyb3IgPSBrby5jb21wdXRlZChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gISFzZWxmLmtvRXJyb3JUZXh0KCk7XG4gICAgfSk7XG4gICAgdGhpcy5rb0FkZE5ldyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNlbGYuYWRkTmV3KCk7XG4gICAgfTtcbiAgICB0aGlzLmtvRWRpdEl0ZW0gPSBmdW5jdGlvbiAoaXRlbTogU3VydmV5TG9naWNJdGVtKSB7XG4gICAgICBzZWxmLmVkaXRJdGVtKGl0ZW0pO1xuICAgIH07XG4gICAgdGhpcy5rb1JlbW92ZUl0ZW0gPSBmdW5jdGlvbiAoaXRlbTogU3VydmV5TG9naWNJdGVtKSB7XG4gICAgICBzZWxmLnJlbW92ZUl0ZW0oaXRlbSk7XG4gICAgfTtcbiAgICB0aGlzLmtvU2hvd1ZpZXcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLm1vZGUgPSBcInZpZXdcIjtcbiAgICB9O1xuICAgIHRoaXMua29TYXZlQW5kU2hvd1ZpZXcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoc2VsZi5zYXZlRWRpdGFibGVJdGVtKCkpIHtcbiAgICAgICAgc2VsZi5tb2RlID0gXCJ2aWV3XCI7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmtvU2F2ZUVkaXRhYmxlSXRlbSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNlbGYuc2F2ZUVkaXRhYmxlSXRlbSgpO1xuICAgIH07XG4gICAgdGhpcy5rb0FkZE5ld0FjdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNlbGYuYWRkTmV3QWN0aW9uKCk7XG4gICAgfTtcbiAgICB0aGlzLmtvUmVtb3ZlQWN0aW9uID0gZnVuY3Rpb24gKGFjdGlvbjogU3VydmV5TG9naWNBY3Rpb24pIHtcbiAgICAgIHNlbGYucmVtb3ZlQWN0aW9uKGFjdGlvbik7XG4gICAgfTtcbiAgICB0aGlzLmtvRWRpdGFibGVJdGVtID0ga28ub2JzZXJ2YWJsZShudWxsKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIHRoaXMua29BZnRlclJlbmRlciA9IGZ1bmN0aW9uICgpIHsgfTtcbiAgfVxuXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVySHRtbCA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gIGdldCBwbGFjZWhvbGRlckh0bWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVySHRtbCgpO1xuICB9XG4gIHNldCBwbGFjZWhvbGRlckh0bWwodmFsdWUpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlckh0bWwodmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXRMb2NTdHJpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcobmFtZSk7XG4gIH1cbiAgcHVibGljIGdldFR5cGVCeU5hbWUobmFtZTogc3RyaW5nKTogU3VydmV5TG9naWNUeXBlIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubG9naWNUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMubG9naWNUeXBlc1tpXS5uYW1lID09IG5hbWUpIHJldHVybiB0aGlzLmxvZ2ljVHlwZXNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyB1cGRhdGUoXG4gICAgc3VydmV5OiBTdXJ2ZXkuU3VydmV5TW9kZWwgPSBudWxsLFxuICAgIG9wdGlvbnM6IElTdXJ2ZXlPYmplY3RFZGl0b3JPcHRpb25zID0gbnVsbFxuICApIHtcbiAgICBpZiAoISFzdXJ2ZXkpIHtcbiAgICAgIHRoaXMuc3VydmV5ID0gc3VydmV5O1xuICAgIH1cbiAgICBpZiAoISFvcHRpb25zKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbiAgICB0aGlzLmtvTG9naWNUeXBlcyh0aGlzLmNyZWF0ZUxvZ2ljVHlwZXMoKSk7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICB0aGlzLmludmlzaWJsZUl0ZW1zID0gdGhpcy5idWlsZEl0ZW1zKGZhbHNlKTtcbiAgICB0aGlzLmtvUmVhZE9ubHkodGhpcy5yZWFkT25seSk7XG4gICAgdGhpcy5tb2RlID0gXCJ2aWV3XCI7XG4gICAgdGhpcy5leHByZXNzaW9uRWRpdG9yLm9iamVjdCA9IHRoaXMuc3VydmV5O1xuICAgIHRoaXMuZXhwcmVzc2lvbkVkaXRvci5vcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIHRoaXMuZXhwcmVzc2lvbkVkaXRvci5zaG93RGlzcGxheU5hbWUgPSBmYWxzZTtcbiAgICB0aGlzLmV4cHJlc3Npb25FZGl0b3Iuc2hvd0hlbHBUZXh0ID0gZmFsc2U7XG4gICAgdGhpcy5leHByZXNzaW9uRWRpdG9yLmJlZm9yZVNob3coKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZVZpc2libGVJdGVtcygpIHtcbiAgICB0aGlzLmtvSXRlbXModGhpcy5idWlsZEl0ZW1zKHRydWUpKTtcbiAgICB0aGlzLmtvRWRpdGFibGVJdGVtKG51bGwpO1xuICAgIHRoaXMua29FcnJvclRleHQoXCJcIik7XG4gIH1cbiAgcHVibGljIGdldCByZWFkT25seSgpIHtcbiAgICByZXR1cm4gISF0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnJlYWRPbmx5O1xuICB9XG4gIHB1YmxpYyBzYXZlRWRpdGFibGVJdGVtKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5lZGl0YWJsZUl0ZW0gfHwgdGhpcy5oYXNFcnJvcigpKSByZXR1cm4gZmFsc2U7XG4gICAgISF0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnN0YXJ0VW5kb1JlZG9UcmFuc2FjdGlvbigpO1xuICAgIHRoaXMuZXhwcmVzc2lvbkVkaXRvci5hcHBseSgpO1xuICAgIHRoaXMuZWRpdGFibGVJdGVtLmFwcGx5KHRoaXMuZXhwcmVzc2lvbkVkaXRvci5rb1ZhbHVlKCkpO1xuICAgIHZhciBpc05ldyA9IHRoaXMua29JdGVtcy5pbmRleE9mKHRoaXMuZWRpdGFibGVJdGVtKSA8IDA7XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICB0aGlzLmtvSXRlbXMucHVzaCh0aGlzLmVkaXRhYmxlSXRlbSk7XG4gICAgfVxuICAgIHRoaXMub25JdGVtQ2hhbmdlZCh0aGlzLmVkaXRhYmxlSXRlbSwgaXNOZXcgPyBcIm5ld1wiIDogXCJtb2RpZnlcIik7XG4gICAgISF0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnN0b3BVbmRvUmVkb1RyYW5zYWN0aW9uKCk7XG4gICAgdGhpcy5vbkxvZ2ljSXRlbVNhdmVkLmZpcmUodGhpcywgeyBpdGVtOiB0aGlzLmVkaXRhYmxlSXRlbSB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgb25JdGVtQ2hhbmdlZChpdGVtOiBTdXJ2ZXlMb2dpY0l0ZW0sIGNoYW5nZVR5cGU6IHN0cmluZykge1xuICAgIGlmICghIXRoaXMub25DaGFuZ2VkQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMub25DaGFuZ2VkQ2FsbGJhY2soaXRlbSwgY2hhbmdlVHlwZSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgaXRlbXMoKTogQXJyYXk8U3VydmV5TG9naWNJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMua29JdGVtcygpO1xuICB9XG4gIHB1YmxpYyBnZXQgbG9naWNUeXBlcygpOiBBcnJheTxTdXJ2ZXlMb2dpY1R5cGU+IHtcbiAgICByZXR1cm4gdGhpcy5rb0xvZ2ljVHlwZXMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRhYmxlSXRlbSgpOiBTdXJ2ZXlMb2dpY0l0ZW0ge1xuICAgIHJldHVybiB0aGlzLmtvRWRpdGFibGVJdGVtKCk7XG4gIH1cbiAgcHVibGljIHJlbmFtZVF1ZXN0aW9uKG9sZE5hbWU6IHN0cmluZywgbmV3TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5hbWVRdWVzdGlvbkNvcmUob2xkTmFtZSwgbmV3TmFtZSwgdGhpcy5pdGVtcyk7XG4gICAgdGhpcy5yZW5hbWVRdWVzdGlvbkNvcmUob2xkTmFtZSwgbmV3TmFtZSwgdGhpcy5pbnZpc2libGVJdGVtcyk7XG4gIH1cbiAgcHVibGljIHJlbW92ZVF1ZXN0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMucmVtb3ZlUXVlc3Rpb25Db3JlKG5hbWUsIHRoaXMuaXRlbXMpO1xuICAgIHRoaXMucmVtb3ZlUXVlc3Rpb25Db3JlKG5hbWUsIHRoaXMuaW52aXNpYmxlSXRlbXMpO1xuICB9XG4gIHB1YmxpYyBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuZWRpdGFibGVJdGVtKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHRleHQgPSBcIlwiO1xuICAgIGlmICghdGhpcy5pc0V4cHJlc3Npb25WYWxpZCkge1xuICAgICAgdGV4dCA9IGdldExvZ2ljU3RyaW5nKFwiZXhwcmVzc2lvbkludmFsaWRcIik7XG4gICAgfVxuICAgIHZhciBvcHMgPSB0aGlzLmVkaXRhYmxlSXRlbS5hY3Rpb25zO1xuICAgIGlmICghdGV4dCAmJiBvcHMubGVuZ3RoID09IDApIHtcbiAgICAgIHRleHQgPSBnZXRMb2dpY1N0cmluZyhcIm5vQWN0aW9uRXJyb3JcIik7XG4gICAgfVxuICAgIGlmICghdGV4dCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKG9wc1tpXS5oYXNFcnJvcigpKSB7XG4gICAgICAgICAgdGV4dCA9IGdldExvZ2ljU3RyaW5nKFwiYWN0aW9uSW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB2YXIgZXhwID0gbmV3IFN1cnZleS5FeHByZXNzaW9uUnVubmVyKHRoaXMuZXhwcmVzc2lvbkVkaXRvci5rb1ZhbHVlKCkpO1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgaXRlbTogdGhpcy5lZGl0YWJsZUl0ZW0sXG4gICAgICBlcnJvcjogdGV4dCxcbiAgICAgIHVzZWROYW1lc0luRXhwcmVzc2lvbjogZXhwLmdldFZhcmlhYmxlcygpLFxuICAgIH07XG4gICAgdGhpcy5vbkxvZ2ljSXRlbVZhbGlkYXRpb24uZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICB0ZXh0ID0gb3B0aW9ucy5lcnJvcjtcblxuICAgIHRoaXMua29FcnJvclRleHQodGV4dCk7XG4gICAgcmV0dXJuICEhdGV4dDtcbiAgfVxuICBwdWJsaWMgZ2V0IGFkZE5ld0FjdGlvblRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0TG9naWNTdHJpbmcoXCJhZGROZXdBY3Rpb25cIik7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZEFjdGlvbkNhcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0TG9naWNTdHJpbmcoXCJzZWxlY3RlZEFjdGlvbkNhcHRpb25cIik7XG4gIH1cbiAgcHVibGljIGdldCBleHByZXNzaW9uU2V0dXBUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldExvZ2ljU3RyaW5nKFwiZXhwcmVzc2lvblNldHVwXCIpO1xuICB9XG4gIHB1YmxpYyBnZXQgYWN0aW9uc1NldHVwVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRMb2dpY1N0cmluZyhcImFjdGlvbnNTZXR1cFwiKTtcbiAgfVxuICBwcml2YXRlIGdldCBpc0V4cHJlc3Npb25WYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uRWRpdG9yLmlzRXhwcmVzc2lvblZhbGlkO1xuICB9XG4gIHByaXZhdGUgcmVuYW1lUXVlc3Rpb25Db3JlKFxuICAgIG9sZE5hbWU6IHN0cmluZyxcbiAgICBuZXdOYW1lOiBzdHJpbmcsXG4gICAgaXRlbXM6IEFycmF5PFN1cnZleUxvZ2ljSXRlbT5cbiAgKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgaXRlbXNbaV0ucmVuYW1lUXVlc3Rpb24ob2xkTmFtZSwgbmV3TmFtZSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcmVtb3ZlUXVlc3Rpb25Db3JlKG5hbWU6IHN0cmluZywgaXRlbXM6IEFycmF5PFN1cnZleUxvZ2ljSXRlbT4pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpdGVtc1tpXS5yZW1vdmVRdWVzdGlvbihuYW1lKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlcmUgYXJlIDMgbW9kZXM6IHZpZXcsIG5ldywgZWRpdFxuICAgKi9cbiAgcHVibGljIGdldCBtb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmtvTW9kZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgbW9kZSh2YWw6IHN0cmluZykge1xuICAgIGlmICh2YWwgIT09IFwidmlld1wiICYmIHZhbCAhPT0gXCJuZXdcIiAmJiB2YWwgIT09IFwiZWRpdFwiKSByZXR1cm47XG4gICAgaWYgKHRoaXMubW9kZSA9PSB2YWwpIHJldHVybjtcbiAgICB2YXIgb2xkTW9kZSA9IHRoaXMubW9kZTtcbiAgICBpZiAoKG9sZE1vZGUgPT0gXCJuZXdcIiB8fCBvbGRNb2RlID09IFwiZWRpdFwiKSAmJiB2YWwgPT0gXCJ2aWV3XCIpIHtcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgfVxuICAgIHRoaXMua29Nb2RlKHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBhZGROZXdUZXh0KCk6IHN0cmluZyB7XG4gICAgdmFyIGxnQWRkTmV3SXRlbSA9IHRoaXMuZ2V0TG9jU3RyaW5nKFwiZWQubGcuYWRkTmV3SXRlbVwiKTtcbiAgICByZXR1cm4gISFsZ0FkZE5ld0l0ZW0gPyBsZ0FkZE5ld0l0ZW0gOiB0aGlzLmdldExvY1N0cmluZyhcInBlLmFkZE5ld1wiKTtcbiAgfVxuICBwdWJsaWMgYWRkTmV3KCkge1xuICAgICEhdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5zdGFydFVuZG9SZWRvVHJhbnNhY3Rpb24oKTtcbiAgICB2YXIgbG9naWNJdGVtID0gbmV3IFN1cnZleUxvZ2ljSXRlbSh0aGlzKTtcbiAgICB0aGlzLmtvRWRpdGFibGVJdGVtKGxvZ2ljSXRlbSk7XG4gICAgbG9naWNJdGVtLmFkZE5ld0FjdGlvbih0aGlzLmNyZWF0ZU5ld0FjdGlvbihudWxsLCBudWxsKSk7XG4gICAgdGhpcy5leHByZXNzaW9uRWRpdG9yLmtvVmFsdWUoXCJcIik7XG4gICAgdGhpcy5tb2RlID0gXCJuZXdcIjtcbiAgICAhIXRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuc3RvcFVuZG9SZWRvVHJhbnNhY3Rpb24oKTtcbiAgfVxuICBwdWJsaWMgZWRpdEl0ZW0oaXRlbTogU3VydmV5TG9naWNJdGVtKSB7XG4gICAgISF0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnN0YXJ0VW5kb1JlZG9UcmFuc2FjdGlvbigpO1xuICAgIHRoaXMua29FZGl0YWJsZUl0ZW0oaXRlbSk7XG4gICAgdGhpcy5leHByZXNzaW9uRWRpdG9yLmtvVmFsdWUoaXRlbS5leHByZXNzaW9uKTtcbiAgICB0aGlzLm1vZGUgPSBcImVkaXRcIjtcbiAgICAhIXRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuc3RvcFVuZG9SZWRvVHJhbnNhY3Rpb24oKTtcbiAgfVxuICBwdWJsaWMgcmVtb3ZlSXRlbShpdGVtOiBTdXJ2ZXlMb2dpY0l0ZW0pIHtcbiAgICB2YXIgZXZlbnRPcHRpb25zID0geyBpdGVtOiBpdGVtLCBhbGxvd1JlbW92ZTogdHJ1ZSB9O1xuICAgIHRoaXMub25Mb2dpY0l0ZW1SZW1vdmluZy5maXJlKHRoaXMsIGV2ZW50T3B0aW9ucyk7XG4gICAgaWYgKCFldmVudE9wdGlvbnMuYWxsb3dSZW1vdmUpIHJldHVybjtcblxuICAgICEhdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5zdGFydFVuZG9SZWRvVHJhbnNhY3Rpb24oKTtcbiAgICBpdGVtLmFwcGx5KFwiXCIpO1xuICAgIHZhciBpbmRleCA9IHRoaXMua29JdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLmtvSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5vbkl0ZW1DaGFuZ2VkKGl0ZW0sIFwiZGVsZXRlXCIpO1xuICAgICEhdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5zdG9wVW5kb1JlZG9UcmFuc2FjdGlvbigpO1xuICAgIHRoaXMub25Mb2dpY0l0ZW1SZW1vdmVkLmZpcmUodGhpcywgeyBpdGVtOiBpdGVtIH0pO1xuICB9XG4gIHB1YmxpYyBhZGRBY3Rpb24oXG4gICAgbHQ6IFN1cnZleUxvZ2ljVHlwZSxcbiAgICBlbGVtZW50OiBTdXJ2ZXkuQmFzZSA9IG51bGxcbiAgKTogU3VydmV5TG9naWNBY3Rpb24ge1xuICAgIHZhciBhY3Rpb24gPSB0aGlzLmNyZWF0ZU5ld0FjdGlvbihsdCwgZWxlbWVudCk7XG4gICAgdGhpcy5lZGl0YWJsZUl0ZW0uYWRkTmV3QWN0aW9uKGFjdGlvbik7XG4gICAgaWYgKCEhYWN0aW9uLmxvZ2ljVHlwZSkge1xuICAgICAgdGhpcy51cGRhdGVMb2dpY1R5cGVzSW5BY3Rpb25zKCk7XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb247XG4gIH1cbiAgcHVibGljIGFkZE5ld0FjdGlvbigpOiBTdXJ2ZXlMb2dpY0FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQWN0aW9uKG51bGwsIG51bGwpO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV3QWN0aW9uKFxuICAgIGx0OiBTdXJ2ZXlMb2dpY1R5cGUsXG4gICAgZWxlbWVudDogU3VydmV5LkJhc2VcbiAgKTogU3VydmV5TG9naWNBY3Rpb24ge1xuICAgIHZhciBhY3Rpb24gPSBuZXcgU3VydmV5TG9naWNBY3Rpb24obHQsIGVsZW1lbnQsIHRoaXMuc3VydmV5KTtcbiAgICBhY3Rpb24ua29Mb2dpY1R5cGVzKHRoaXMuY3JlYXRlTG9naWNUeXBlc0luQWN0aW9ucyhhY3Rpb24pKTtcbiAgICBhY3Rpb24ub25Mb2dpY1R5cGVDaGFuZ2VkID0gKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVMb2dpY1R5cGVzSW5BY3Rpb25zKCk7XG4gICAgfTtcbiAgICByZXR1cm4gYWN0aW9uO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTG9naWNUeXBlc0luQWN0aW9ucyhhY3Rpb246IFN1cnZleUxvZ2ljQWN0aW9uKTogQXJyYXk8YW55PiB7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciBsb2dpY1R5cGVzID0gdGhpcy5sb2dpY1R5cGVzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9naWNUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGxvZ2ljVHlwZXNbaV0udmlzaWJsZSkge1xuICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgbG9naWNUeXBlOiBsb2dpY1R5cGVzW2ldLFxuICAgICAgICAgIGtvVmlzaWJsZToga28ub2JzZXJ2YWJsZShcbiAgICAgICAgICAgIHRoaXMuaXNMb2dpY1R5cGVWaXNpYmxlSW5BY3Rpb24obG9naWNUeXBlc1tpXSwgYWN0aW9uKVxuICAgICAgICAgICksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgaXNMb2dpY1R5cGVWaXNpYmxlSW5BY3Rpb24oXG4gICAgbHQ6IFN1cnZleUxvZ2ljVHlwZSxcbiAgICBhY3Rpb246IFN1cnZleUxvZ2ljQWN0aW9uXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghbHQuaXNVbmlxdWVJdGVtIHx8IGx0ID09IGFjdGlvbi5sb2dpY1R5cGUpIHJldHVybiB0cnVlO1xuICAgIGlmICghdGhpcy5lZGl0YWJsZUl0ZW0pIHJldHVybiB0cnVlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5lZGl0YWJsZUl0ZW0uYWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGN1ckFjdGlvbiA9IHRoaXMuZWRpdGFibGVJdGVtLmFjdGlvbnNbaV07XG4gICAgICBpZiAoY3VyQWN0aW9uICE9IGFjdGlvbiAmJiBjdXJBY3Rpb24ubG9naWNUeXBlID09IGx0KSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlTG9naWNUeXBlc0luQWN0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuZWRpdGFibGVJdGVtKSByZXR1cm47XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVkaXRhYmxlSXRlbS5hY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxvZ2ljVHlwZXNJbkFjdGlvbih0aGlzLmVkaXRhYmxlSXRlbS5hY3Rpb25zW2ldKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVMb2dpY1R5cGVzSW5BY3Rpb24oYWN0aW9uOiBTdXJ2ZXlMb2dpY0FjdGlvbikge1xuICAgIHZhciBsb2dpY1R5cGVzID0gYWN0aW9uLmtvTG9naWNUeXBlcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9naWNUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGx0ID0gbG9naWNUeXBlc1tpXTtcbiAgICAgIGx0LmtvVmlzaWJsZSh0aGlzLmlzTG9naWNUeXBlVmlzaWJsZUluQWN0aW9uKGx0LmxvZ2ljVHlwZSwgYWN0aW9uKSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyByZW1vdmVBY3Rpb24oYWN0aW9uOiBTdXJ2ZXlMb2dpY0FjdGlvbikge1xuICAgIGlmICghdGhpcy5lZGl0YWJsZUl0ZW0pIHJldHVybjtcbiAgICB0aGlzLmVkaXRhYmxlSXRlbS5yZW1vdmVBY3Rpb24oYWN0aW9uKTtcbiAgICBpZiAodGhpcy5lZGl0YWJsZUl0ZW0uYWN0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5hZGROZXdBY3Rpb24oKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldEV4cHJlc3Npb25Bc0Rpc3BsYXlUZXh0KGV4cHJlc3Npb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN1cnZleUxvZ2ljVHlwZS5leHByZXNzaW9uVG9EaXNwbGF5VGV4dChcbiAgICAgIHRoaXMuc3VydmV5LFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgZXhwcmVzc2lvblxuICAgICk7XG4gIH1cbiAgcHJvdGVjdGVkIGJ1aWxkSXRlbXMoc2hvd0luVUk6IGJvb2xlYW4pOiBBcnJheTxTdXJ2ZXlMb2dpY0l0ZW0+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIGhhc2ggPSB7fTtcbiAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmdldEFsbEVsZW1lbnRzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5idWlsZEl0ZW1zQnlFbGVtZW50KGVsZW1lbnRzW2ldLCByZXMsIGhhc2gsIHNob3dJblVJKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0QWxsRWxlbWVudHMoKTogQXJyYXk8U3VydmV5LkJhc2U+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdGhpcy5BZGRFbGVtZW50cyh0aGlzLnN1cnZleS5wYWdlcywgcmVzKTtcbiAgICB0aGlzLkFkZEVsZW1lbnRzKHRoaXMuc3VydmV5LmdldEFsbFF1ZXN0aW9ucygpLCByZXMpO1xuICAgIHRoaXMuQWRkRWxlbWVudHModGhpcy5zdXJ2ZXkuZ2V0QWxsUGFuZWxzKCksIHJlcyk7XG4gICAgdGhpcy5BZGRFbGVtZW50cyh0aGlzLnN1cnZleS50cmlnZ2VycywgcmVzKTtcbiAgICB0aGlzLkFkZEVsZW1lbnRzKHRoaXMuc3VydmV5LmNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbiwgcmVzKTtcbiAgICB0aGlzLkFkZEVsZW1lbnRzKHRoaXMuc3VydmV5LmNhbGN1bGF0ZWRWYWx1ZXMsIHJlcyk7XG4gICAgdGhpcy5BZGRFbGVtZW50cyh0aGlzLmdldE1hdHJpeENvbHVtbnMoKSwgcmVzKTtcbiAgICB0aGlzLkFkZEVsZW1lbnRzKHRoaXMuZ2V0VmFsaWRhdG9ycygpLCByZXMpO1xuICAgIHRoaXMuQWRkRWxlbWVudHModGhpcy5nZXRJdGVtVmFsdWVzKCksIHJlcyk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGdldE1hdHJpeENvbHVtbnMoKTogQXJyYXk8U3VydmV5LkJhc2U+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuc3VydmV5LmdldEFsbFF1ZXN0aW9ucygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcSA9IHF1ZXN0aW9uc1tpXTtcbiAgICAgIHZhciBjb2x1bW5zID0gcVtcImNvbHVtbnNcIl07XG4gICAgICBpZiAoIWNvbHVtbnMpIGNvbnRpbnVlO1xuICAgICAgdmFyIHByb3AgPSBTdXJ2ZXkuU2VyaWFsaXplci5maW5kUHJvcGVydHkocS5nZXRUeXBlKCksIFwiY29sdW1uc1wiKTtcbiAgICAgIGlmICghcHJvcCB8fCBwcm9wLmNsYXNzTmFtZSAhPT0gXCJtYXRyaXhkcm9wZG93bmNvbHVtblwiKSBjb250aW51ZTtcbiAgICAgIHRoaXMuQWRkRWxlbWVudHMoY29sdW1ucywgcmVzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGdldFZhbGlkYXRvcnMoKTogQXJyYXk8U3VydmV5LkJhc2U+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuc3VydmV5LmdldEFsbFF1ZXN0aW9ucygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLkFkZEVsZW1lbnRzKCg8U3VydmV5LlF1ZXN0aW9uPnF1ZXN0aW9uc1tpXSkudmFsaWRhdG9ycywgcmVzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGdldEl0ZW1WYWx1ZXMoKTogQXJyYXk8U3VydmV5LkJhc2U+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuc3VydmV5LmdldEFsbFF1ZXN0aW9ucygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcSA9IHF1ZXN0aW9uc1tpXTtcbiAgICAgIHZhciBjaG9pY2VzID0gcVtcImNob2ljZXNcIl07XG4gICAgICBpZiAoIWNob2ljZXMpIGNvbnRpbnVlO1xuICAgICAgdmFyIHByb3AgPSBTdXJ2ZXkuU2VyaWFsaXplci5maW5kUHJvcGVydHkocS5nZXRUeXBlKCksIFwiY2hvaWNlc1wiKTtcbiAgICAgIGlmICghcHJvcCB8fCBwcm9wLnR5cGUgIT09IFwiaXRlbXZhbHVlW11cIikgY29udGludWU7XG4gICAgICB0aGlzLkFkZEVsZW1lbnRzKGNob2ljZXMsIHJlcyk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBBZGRFbGVtZW50cyhzcmM6IEFycmF5PGFueT4sIGRlc3Q6IEFycmF5PGFueT4pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNyYy5sZW5ndGg7IGkrKykge1xuICAgICAgZGVzdC5wdXNoKHNyY1tpXSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYnVpbGRJdGVtc0J5RWxlbWVudChcbiAgICBlbGVtZW50OiBTdXJ2ZXkuQmFzZSxcbiAgICBkZXN0OiBBcnJheTxTdXJ2ZXlMb2dpY0l0ZW0+LFxuICAgIGhhc2g6IFN1cnZleS5IYXNoVGFibGU8U3VydmV5TG9naWNJdGVtPixcbiAgICBzaG93SW5VSTogYm9vbGVhblxuICApIHtcbiAgICB2YXIgdHlwZXMgPSB0aGlzLmdldEVsZW1lbnRBbGxUeXBlcyhlbGVtZW50KTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubG9naWNUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGx0ID0gdGhpcy5sb2dpY1R5cGVzW2ldO1xuICAgICAgaWYgKGx0LnNob3dJblVJICE9PSBzaG93SW5VSSkgY29udGludWU7XG4gICAgICB2YXIgZXhwcmVzc2lvbiA9IGVsZW1lbnRbbHQucHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZXMuaW5kZXhPZihsdC5iYXNlQ2xhc3MpID4gLTEgJiZcbiAgICAgICAgIVN1cnZleS5IZWxwZXJzLmlzVmFsdWVFbXB0eShleHByZXNzaW9uKVxuICAgICAgKSB7XG4gICAgICAgIHZhciBrZXkgPSB0aGlzLmdldEV4cHJlc3Npb25IYXNoS2V5KGV4cHJlc3Npb24pO1xuICAgICAgICB2YXIgaXRlbSA9IGhhc2hba2V5XTtcbiAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgaXRlbSA9IG5ldyBTdXJ2ZXlMb2dpY0l0ZW0odGhpcywgZXhwcmVzc2lvbik7XG4gICAgICAgICAgaGFzaFtrZXldID0gaXRlbTtcbiAgICAgICAgICBkZXN0LnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFjdGlvbiA9IHRoaXMuY3JlYXRlTmV3QWN0aW9uKGx0LCBlbGVtZW50KTtcbiAgICAgICAgaXRlbS5hZGROZXdBY3Rpb24oYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRFeHByZXNzaW9uSGFzaEtleShleHByZXNzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBleHByZXNzaW9uLnJlcGxhY2UoXCIgXCIsIFwiXCIpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRFbGVtZW50QWxsVHlwZXMoZWxlbWVudDogU3VydmV5LkJhc2UpIHtcbiAgICB2YXIgdHlwZXMgPSBbXTtcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQuZ2V0VHlwZSgpO1xuICAgIHR5cGVzLnB1c2godHlwZSk7XG4gICAgd2hpbGUgKCEhdHlwZSAmJiB0eXBlICE9IFwiYmFzZVwiKSB7XG4gICAgICB2YXIgY2wgPSBTdXJ2ZXkuU2VyaWFsaXplci5maW5kQ2xhc3ModHlwZSk7XG4gICAgICBpZiAoIWNsKSBicmVhaztcbiAgICAgIHR5cGUgPSBjbC5wYXJlbnROYW1lO1xuICAgICAgaWYgKCEhdHlwZSkge1xuICAgICAgICB0eXBlcy5wdXNoKHR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZUxvZ2ljVHlwZXMoKTogQXJyYXk8U3VydmV5TG9naWNUeXBlPiB7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciB2aXNBY3Rpb25zID0gU3VydmV5TG9naWMudmlzaWJsZUFjdGlvbnM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBTdXJ2ZXlMb2dpYy50eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKFxuICAgICAgICB2aXNBY3Rpb25zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgdmlzQWN0aW9ucy5pbmRleE9mKFN1cnZleUxvZ2ljLnR5cGVzW2ldLm5hbWUpIDwgMFxuICAgICAgKVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIHJlcy5wdXNoKFxuICAgICAgICBuZXcgU3VydmV5TG9naWNUeXBlKFN1cnZleUxvZ2ljLnR5cGVzW2ldLCB0aGlzLnN1cnZleSwgdGhpcy5vcHRpb25zKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGdldEV4cHJlc3Npb25Qcm9wZXJ0eSgpOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5IHtcbiAgICB2YXIgcHJvcGVydHkgPSBTdXJ2ZXkuU2VyaWFsaXplci5maW5kUHJvcGVydHkoXCJzdXJ2ZXlcIiwgXCJoaWRkZW5Mb2dpY1wiKTtcbiAgICBpZiAoISFwcm9wZXJ0eSkgcmV0dXJuIHByb3BlcnR5O1xuICAgIFN1cnZleS5TZXJpYWxpemVyLmFkZFByb3BlcnR5KFwic3VydmV5XCIsIHtcbiAgICAgIG5hbWU6IFwiaGlkZGVuTG9naWM6Y29uZGl0aW9uXCIsXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgIGlzU2VyaWFsaXphYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgICByZXR1cm4gU3VydmV5LlNlcmlhbGl6ZXIuZmluZFByb3BlcnR5KFwic3VydmV5XCIsIFwiaGlkZGVuTG9naWNcIik7XG4gIH1cbiAgcHVibGljIGdldCBoaWRlRXhwcmVzc2lvbkhlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLmV4cHJlc3Npb25FZGl0b3IgJiYgdGhpcy5leHByZXNzaW9uRWRpdG9yLmtvU2hvd0V4cHJlc3Npb25IZWFkZXIoKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCBoaWRlRXhwcmVzc2lvbkhlYWRlcih2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAoISF0aGlzLmV4cHJlc3Npb25FZGl0b3IpIHtcbiAgICAgIHRoaXMuZXhwcmVzc2lvbkVkaXRvci5rb1Nob3dFeHByZXNzaW9uSGVhZGVyKHZhbCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgY3JlYXRlRXhwcmVzc2lvblByb3BlcnR5RWRpdG9yKCkge1xuICAgIHRoaXMuZXhwcmVzc2lvbkVkaXRvciA9IG5ldyBTdXJ2ZXlQcm9wZXJ0eUNvbmRpdGlvbkVkaXRvcihcbiAgICAgIHRoaXMuZ2V0RXhwcmVzc2lvblByb3BlcnR5KClcbiAgICApO1xuICAgIHRoaXMuZXhwcmVzc2lvbkVkaXRvci5pc0VkaXRvclNob3dpbmcgPSB0cnVlO1xuICAgIHRoaXMuZXhwcmVzc2lvbkVkaXRvci5pc1dpZGVNb2RlID0gdHJ1ZTtcbiAgICB0aGlzLmV4cHJlc3Npb25FZGl0b3Iub2JqZWN0ID0gdGhpcy5zdXJ2ZXk7XG4gICAgdGhpcy5leHByZXNzaW9uRWRpdG9yLm9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgdGhpcy5leHByZXNzaW9uRWRpdG9yLmtvU2V0dXBUZXh0KHRoaXMuZXhwcmVzc2lvblNldHVwVGV4dCk7XG4gIH1cbiAgZGlzcG9zZSgpIHsgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3VydmV5LWxvZ2ljXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICB2YXIgY3JlYXRvcjogU3VydmV5Q3JlYXRvciA9IHBhcmFtcy5jcmVhdG9yO1xuICAgICAgLy8gdmFyIG1vZGVsID0gbmV3IFN1cnZleUxvZ2ljKGNyZWF0b3Iuc3VydmV5LCBjcmVhdG9yKTtcbiAgICAgIC8vIG1vZGVsLnVwZGF0ZShjcmVhdG9yLnN1cnZleSwgY3JlYXRvcik7XG4gICAgICB2YXIgbW9kZWwgPSBjcmVhdG9yLmxvZ2ljO1xuXG4gICAgICB2YXIgc3Vic2NyaWJlVmlld1R5cGUgPSBjcmVhdG9yLmtvVmlld1R5cGUuc3Vic2NyaWJlKCh2aWV3VHlwZSkgPT4ge1xuICAgICAgICBpZiAodmlld1R5cGUgPT09IFwibG9naWNcIikge1xuICAgICAgICAgIG1vZGVsLnVwZGF0ZShjcmVhdG9yLnN1cnZleSwgY3JlYXRvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB2YXIgc3VydmV5Q3JlYXRlZEhhbmRsZXIgPSAoY3JlYXRvciwgb3B0aW9ucykgPT4ge1xuICAgICAgICBtb2RlbC51cGRhdGUob3B0aW9ucy5zdXJ2ZXksIGNyZWF0b3IpO1xuICAgICAgfTtcbiAgICAgIGNyZWF0b3Iub25EZXNpZ25lclN1cnZleUNyZWF0ZWQuYWRkKHN1cnZleUNyZWF0ZWRIYW5kbGVyKTtcblxuICAgICAga28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhjb21wb25lbnRJbmZvLmVsZW1lbnQsICgpID0+IHtcbiAgICAgICAgc3Vic2NyaWJlVmlld1R5cGUuZGlzcG9zZSgpO1xuICAgICAgICBjcmVhdG9yLm9uRGVzaWduZXJTdXJ2ZXlDcmVhdGVkLnJlbW92ZShzdXJ2ZXlDcmVhdGVkSGFuZGxlcik7XG4gICAgICAgIC8vIG1vZGVsLmRpc3Bvc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjwhLS0gPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lclxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fcm93XFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fcm93XFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj4gLS0+XFxuXFxuPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lclxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fcm93XFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIGRhdGEtYmluZD1cXFwidmlzaWJsZToga29Jc1J1bm5pbmcoKVxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19jZWxsXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgICAgICAgIDxzdmQtdG9vbGJhciBwYXJhbXM9XFxcIml0ZW1zOiB0b29sYmFySXRlbXNcXFwiIGRhdGEtYmluZD1cXFwidmlzaWJsZToga29Jc1J1bm5pbmcoKVxcXCI+PC9zdmQtdG9vbGJhcj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fcm93XFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19jZWxsLWNvbnRlbnQtaG9sZGVyXFxcIj5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbC1jb250ZW50IHN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGwtY29udGVudC0tc2Nyb2xsYWJsZVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8c3VydmV5LXNpbXVsYXRvciBwYXJhbXM9XFxcIm1vZGVsOiAkZGF0YVxcXCI+PC9zdXJ2ZXktc2ltdWxhdG9yPlxcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBrbyBpZm5vdDoga29Jc1J1bm5pbmcgLS0+XFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmRfdGVzdF9yZXN1bHRzXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1wcmltYXJ5XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJpbmQ9XFxcImNsaWNrOiBzZWxlY3RUZXN0Q2xpY2ssIHRleHQ6IHRlc3RTdXJ2ZXlBZ2FpblRleHRcXFwiPjwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgICAgICA8c3VydmV5LXJlc3VsdHMgcGFyYW1zPVxcXCJzdXJ2ZXk6IHN1cnZleVxcXCI+PC9zdXJ2ZXktcmVzdWx0cz5cXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cIjsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiwgZ2V0TG9jU3RyaW5nIH0gZnJvbSBcIi4uL2VkaXRvckxvY2FsaXphdGlvblwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IFN1cnZleUNyZWF0b3IgfSBmcm9tIFwiLi4vZWRpdG9yXCI7XG5cbmltcG9ydCBcIi4vdGVzdC5zY3NzXCI7XG5pbXBvcnQgeyBJQWN0aW9uLCBQYWdlIH0gZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuXG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vdGVzdC5odG1sXCIpO1xuXG5leHBvcnQgeyBTdXJ2ZXlTaW11bGF0b3JDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9zaW11bGF0b3JcIjtcbmV4cG9ydCB7IFN1cnZleVJlc3VsdHNNb2RlbCB9IGZyb20gXCIuLi9jb21wb25lbnRzL3Jlc3VsdHNcIjtcblxuZXhwb3J0IGNsYXNzIFN1cnZleUxpdmVUZXN0ZXIge1xuICBwcml2YXRlIGpzb246IGFueTtcbiAgcHJpdmF0ZSB1cGRhdGluZ0xhbmd1YWdlczogYm9vbGVhbjtcbiAga29Jc1J1bm5pbmcgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBzZWxlY3RUZXN0Q2xpY2s6IGFueTtcbiAgc2VsZWN0UGFnZUNsaWNrOiBhbnk7XG4gIHN1cnZleTogU3VydmV5LlN1cnZleTtcbiAga29TdXJ2ZXk6IGFueTtcbiAga29QYWdlcyA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG4gIGtvQWN0aXZlUGFnZSA9IGtvLm9ic2VydmFibGUobnVsbCk7XG4gIHNldFBhZ2VEaXNhYmxlOiBhbnk7XG4gIGtvTGFuZ3VhZ2VzOiBhbnk7XG4gIGtvQWN0aXZlTGFuZ3VhZ2U6IGFueTtcbiAga29TaG93SW52aXNpYmxlRWxlbWVudHMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgcHVibGljIG9uR2V0T2JqZWN0RGlzcGxheU5hbWU6IChvYmo6IFN1cnZleS5CYXNlKSA9PiBzdHJpbmcgPSBudWxsO1xuICBrb1Nob3dQYWdlc0luVGVzdFN1cnZleVRhYiA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gIHNob3dTaW11bGF0b3IgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBrb1Nob3dEZWZhdWx0TGFuZ3VhZ2VJblRlc3RTdXJ2ZXlUYWIgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBrb1Nob3dJbnZpc2libGVFbGVtZW50c0luVGVzdFN1cnZleVRhYiA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHRvb2xiYXIgaXRlbXMuIFlvdSBtYXkgYWRkL3JlbW92ZS9yZXBsYWNlIHRoZW0uXG4gICAqIEBzZWUgSUFjdGlvblxuICAgKi9cbiAgcHVibGljIHRvb2xiYXJJdGVtcyA9IGtvLm9ic2VydmFibGVBcnJheTxJQWN0aW9uPigpO1xuXG4gIG9uU3VydmV5Q3JlYXRlZENhbGxiYWNrOiAoc3VydmV5OiBTdXJ2ZXkuU3VydmV5KSA9PiBhbnk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3VydmV5UHJvdmlkZXI6IGFueSkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLnN1cnZleSA9IHRoaXMuc3VydmV5UHJvdmlkZXIuY3JlYXRlU3VydmV5KHt9LCBcInRlc3RcIik7XG4gICAgdGhpcy5zZWxlY3RUZXN0Q2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLnRlc3RBZ2FpbigpO1xuICAgIH07XG4gICAgdGhpcy5zZWxlY3RQYWdlQ2xpY2sgPSBmdW5jdGlvbiAocGFnZUl0ZW0pIHtcbiAgICAgIGlmIChzZWxmLnN1cnZleSkge1xuICAgICAgICBpZiAoc2VsZi5zdXJ2ZXkuc3RhdGUgPT0gXCJzdGFydGluZ1wiKSB7XG4gICAgICAgICAgc2VsZi5zdXJ2ZXkuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBzZWxmLnN1cnZleS5jdXJyZW50UGFnZSA9IHBhZ2VJdGVtLnBhZ2U7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmtvQWN0aXZlUGFnZS5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICBpZiAoISFuZXdWYWx1ZSkge1xuICAgICAgICBzZWxmLnN1cnZleS5jdXJyZW50UGFnZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMua29TaG93SW52aXNpYmxlRWxlbWVudHMuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgc2VsZi5zdXJ2ZXkuc2hvd0ludmlzaWJsZUVsZW1lbnRzID0gbmV3VmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5zZXRQYWdlRGlzYWJsZSA9IGZ1bmN0aW9uIChvcHRpb24sIGl0ZW0pIHtcbiAgICAgIGtvLmFwcGx5QmluZGluZ3NUb05vZGUob3B0aW9uLCB7IGRpc2FibGU6IGl0ZW0ua29EaXNhYmxlZCB9LCBpdGVtKTtcbiAgICB9O1xuICAgIHRoaXMua29MYW5ndWFnZXMgPSBrby5vYnNlcnZhYmxlKHRoaXMuZ2V0TGFuZ3VhZ2VzKCkpO1xuICAgIHRoaXMua29BY3RpdmVMYW5ndWFnZSA9IGtvLm9ic2VydmFibGUoXCJcIik7XG4gICAgdGhpcy5rb0FjdGl2ZUxhbmd1YWdlLnN1YnNjcmliZShmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIGlmIChzZWxmLnVwZGF0aW5nTGFuZ3VhZ2VzIHx8IHNlbGYuc3VydmV5LmxvY2FsZSA9PSBuZXdWYWx1ZSkgcmV0dXJuO1xuICAgICAgc2VsZi5zdXJ2ZXkubG9jYWxlID0gbmV3VmFsdWU7XG4gICAgICBzZWxmLmtvU3VydmV5KHNlbGYuc3VydmV5KTtcbiAgICB9KTtcbiAgICB0aGlzLmtvU3VydmV5ID0ga28ub2JzZXJ2YWJsZSh0aGlzLnN1cnZleSk7XG5cbiAgICB0aGlzLnRvb2xiYXJJdGVtcy5wdXNoKDxhbnk+e1xuICAgICAgaWQ6IFwic3ZkLXRlc3QtcGFnZS1zZWxlY3RvclwiLFxuICAgICAgdGl0bGU6IGdldExvY1N0cmluZyhcInRzLnNlbGVjdFBhZ2VcIiksXG4gICAgICB2aXNpYmxlOiBrby5jb21wdXRlZChcbiAgICAgICAgKCkgPT4gdGhpcy5rb1BhZ2VzKCkubGVuZ3RoID4gMSAmJiB0aGlzLmtvU2hvd1BhZ2VzSW5UZXN0U3VydmV5VGFiKClcbiAgICAgICksXG4gICAgICB0b29sdGlwOiBnZXRMb2NTdHJpbmcoXCJ0cy5zZWxlY3RQYWdlXCIpLFxuICAgICAgY29tcG9uZW50OiBcInN2ZC1kcm9wZG93blwiLFxuICAgICAgYWN0aW9uOiBrby5jb21wdXRlZCh7XG4gICAgICAgIHJlYWQ6ICgpID0+IHRoaXMua29BY3RpdmVQYWdlKCksXG4gICAgICAgIHdyaXRlOiAodmFsOiBhbnkpID0+IHRoaXMua29BY3RpdmVQYWdlKHZhbCksXG4gICAgICB9KSxcbiAgICAgIGFmdGVyUmVuZGVyOiB0aGlzLnNldFBhZ2VEaXNhYmxlLFxuICAgICAgaXRlbXM6IDxhbnk+a28uY29tcHV0ZWQoKCkgPT4gdGhpcy5rb1BhZ2VzKCkpLFxuICAgIH0pO1xuICAgICg8YW55PnRoaXMudG9vbGJhckl0ZW1zKS5wdXNoKHtcbiAgICAgIGlkOiBcInN2ZC10ZXN0LWxvY2FsZS1zZWxlY3RvclwiLFxuICAgICAgdGl0bGU6IHRoaXMubG9jYWxlVGV4dCxcbiAgICAgIHZpc2libGU6IDxhbnk+dGhpcy5rb1Nob3dEZWZhdWx0TGFuZ3VhZ2VJblRlc3RTdXJ2ZXlUYWIsXG4gICAgICB0b29sdGlwOiB0aGlzLmxvY2FsZVRleHQsXG4gICAgICBjb21wb25lbnQ6IFwic3ZkLWRyb3Bkb3duXCIsXG4gICAgICBhY3Rpb246IGtvLmNvbXB1dGVkKHtcbiAgICAgICAgcmVhZDogKCkgPT4gdGhpcy5rb0FjdGl2ZUxhbmd1YWdlKCksXG4gICAgICAgIHdyaXRlOiAodmFsOiBhbnkpID0+IHRoaXMua29BY3RpdmVMYW5ndWFnZSh2YWwpLFxuICAgICAgfSksXG4gICAgICBpdGVtczogPGFueT50aGlzLmtvTGFuZ3VhZ2VzLFxuICAgIH0pO1xuICAgIHRoaXMudG9vbGJhckl0ZW1zLnB1c2goe1xuICAgICAgaWQ6IFwic3ZkLXRlc3Qtc2hvdy1pbnZpc2libGVcIixcbiAgICAgIHRpdGxlOiBnZXRMb2NTdHJpbmcoXCJ0cy5zaG93SW52aXNpYmxlRWxlbWVudHNcIiksXG4gICAgICB2aXNpYmxlOiA8YW55PnRoaXMua29TaG93SW52aXNpYmxlRWxlbWVudHNJblRlc3RTdXJ2ZXlUYWIsXG4gICAgICB0b29sdGlwOiBnZXRMb2NTdHJpbmcoXCJ0cy5zaG93SW52aXNpYmxlRWxlbWVudHNcIiksXG4gICAgICBjb21wb25lbnQ6IFwic3ZkLWJvb2xlYW5cIixcbiAgICAgIGFjdGlvbjoga28uY29tcHV0ZWQoe1xuICAgICAgICByZWFkOiAoKSA9PiB0aGlzLmtvU2hvd0ludmlzaWJsZUVsZW1lbnRzKCksXG4gICAgICAgIHdyaXRlOiAodmFsOiBhbnkpID0+IHRoaXMua29TaG93SW52aXNpYmxlRWxlbWVudHModmFsKSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEpTT04oanNvbjogYW55KSB7XG4gICAgdGhpcy5qc29uID0ganNvbjtcbiAgICBpZiAoanNvbiAhPSBudWxsKSB7XG4gICAgICBpZiAoanNvbi5jb29raWVOYW1lKSB7XG4gICAgICAgIGRlbGV0ZSBqc29uLmNvb2tpZU5hbWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3VydmV5ID0ganNvblxuICAgICAgPyB0aGlzLnN1cnZleVByb3ZpZGVyLmNyZWF0ZVN1cnZleShqc29uLCBcInRlc3RcIilcbiAgICAgIDogdGhpcy5zdXJ2ZXlQcm92aWRlci5jcmVhdGVTdXJ2ZXkoe30sIFwidGVzdFwiKTtcbiAgICBpZiAodGhpcy5vblN1cnZleUNyZWF0ZWRDYWxsYmFjaykgdGhpcy5vblN1cnZleUNyZWF0ZWRDYWxsYmFjayh0aGlzLnN1cnZleSk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuc3VydmV5Lm9uQ29tcGxldGUuYWRkKChzZW5kZXI6IFN1cnZleS5TdXJ2ZXkpID0+IHtcbiAgICAgIHNlbGYua29Jc1J1bm5pbmcoZmFsc2UpO1xuICAgIH0pO1xuICAgIGlmICghIXRoaXMuc3VydmV5W1wib25OYXZpZ2F0ZVRvVXJsXCJdKSB7XG4gICAgICB0aGlzLnN1cnZleVtcIm9uTmF2aWdhdGVUb1VybFwiXS5hZGQoZnVuY3Rpb24gKHNlbmRlciwgb3B0aW9ucykge1xuICAgICAgICB2YXIgdXJsID0gb3B0aW9ucy51cmw7XG4gICAgICAgIG9wdGlvbnMudXJsID0gXCJcIjtcbiAgICAgICAgaWYgKCEhdXJsKSB7XG4gICAgICAgICAgdmFyIG1lc3NhZ2UgPVxuICAgICAgICAgICAgc2VsZi5nZXRMb2NTdHJpbmcoXCJlZC5uYXZpZ2F0ZVRvTXNnXCIpICsgXCIgJ1wiICsgdXJsICsgXCInLlwiO1xuICAgICAgICAgIGlmICghIXRoaXMuc3VydmV5UHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3VydmV5UHJvdmlkZXIubm90aWZ5KG1lc3NhZ2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGVydChtZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN1cnZleS5vblN0YXJ0ZWQuYWRkKChzZW5kZXI6IFN1cnZleS5TdXJ2ZXkpID0+IHtcbiAgICAgIHNlbGYuc2V0QWN0aXZlUGFnZUl0ZW0oPFN1cnZleS5QYWdlPnNlbGYuc3VydmV5LmN1cnJlbnRQYWdlLCB0cnVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnN1cnZleS5vbkN1cnJlbnRQYWdlQ2hhbmdlZC5hZGQoKHNlbmRlcjogU3VydmV5LlN1cnZleSwgb3B0aW9ucykgPT4ge1xuICAgICAgc2VsZi5rb0FjdGl2ZVBhZ2Uob3B0aW9ucy5uZXdDdXJyZW50UGFnZSk7XG4gICAgICBzZWxmLnNldEFjdGl2ZVBhZ2VJdGVtKDxQYWdlPm9wdGlvbnMub2xkQ3VycmVudFBhZ2UsIGZhbHNlKTtcbiAgICAgIHNlbGYuc2V0QWN0aXZlUGFnZUl0ZW0oPFBhZ2U+b3B0aW9ucy5uZXdDdXJyZW50UGFnZSwgdHJ1ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5zdXJ2ZXkub25QYWdlVmlzaWJsZUNoYW5nZWQuYWRkKChzZW5kZXI6IFN1cnZleS5TdXJ2ZXksIG9wdGlvbnMpID0+IHtcbiAgICAgIHNlbGYudXBkYXRlUGFnZUl0ZW0oPFBhZ2U+b3B0aW9ucy5wYWdlKTtcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZVBhZ2VJdGVtKHBhZ2U6IFN1cnZleS5QYWdlKSB7XG4gICAgdmFyIGl0ZW0gPSB0aGlzLmdldFBhZ2VJdGVtQnlQYWdlKHBhZ2UpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtLmtvVmlzaWJsZShwYWdlLmlzVmlzaWJsZSk7XG4gICAgICBpdGVtLmtvRGlzYWJsZWQoIXBhZ2UuaXNWaXNpYmxlKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHNob3cob3B0aW9uczogYW55ID0gbnVsbCkge1xuICAgIHZhciBwYWdlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdXJ2ZXkucGFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwYWdlID0gdGhpcy5zdXJ2ZXkucGFnZXNbaV07XG4gICAgICBwYWdlcy5wdXNoKHtcbiAgICAgICAgcGFnZTogcGFnZSxcbiAgICAgICAgdmFsdWU6IHBhZ2UsXG4gICAgICAgIHRleHQ6IHRoaXMub25HZXRPYmplY3REaXNwbGF5TmFtZVxuICAgICAgICAgID8gdGhpcy5vbkdldE9iamVjdERpc3BsYXlOYW1lKHBhZ2UpXG4gICAgICAgICAgOiBwYWdlLm5hbWUsXG4gICAgICAgIGtvVmlzaWJsZToga28ub2JzZXJ2YWJsZShwYWdlLmlzVmlzaWJsZSksXG4gICAgICAgIGtvRGlzYWJsZWQ6IGtvLm9ic2VydmFibGUoIXBhZ2UuaXNWaXNpYmxlKSxcbiAgICAgICAga29BY3RpdmU6IGtvLm9ic2VydmFibGUoXG4gICAgICAgICAgdGhpcy5zdXJ2ZXkuc3RhdGUgPT0gXCJydW5uaW5nXCIgJiYgcGFnZSA9PT0gdGhpcy5zdXJ2ZXkuY3VycmVudFBhZ2VcbiAgICAgICAgKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoISFvcHRpb25zICYmIG9wdGlvbnMuc2hvd1NpbXVsYXRvckluVGVzdFN1cnZleVRhYiAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2hvd1NpbXVsYXRvcihvcHRpb25zLnNob3dTaW11bGF0b3JJblRlc3RTdXJ2ZXlUYWIpO1xuICAgIH1cbiAgICBpZiAoISFvcHRpb25zICYmIG9wdGlvbnMuc2hvd1BhZ2VzSW5UZXN0U3VydmV5VGFiICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5rb1Nob3dQYWdlc0luVGVzdFN1cnZleVRhYihvcHRpb25zLnNob3dQYWdlc0luVGVzdFN1cnZleVRhYik7XG4gICAgfVxuICAgIGlmICghIW9wdGlvbnMgJiYgb3B0aW9ucy5zaG93RGVmYXVsdExhbmd1YWdlSW5UZXN0U3VydmV5VGFiICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZXREZWZhdWx0TGFuZ3VhZ2VPcHRpb24ob3B0aW9ucy5zaG93RGVmYXVsdExhbmd1YWdlSW5UZXN0U3VydmV5VGFiKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgISFvcHRpb25zICYmXG4gICAgICBvcHRpb25zLnNob3dJbnZpc2libGVFbGVtZW50c0luVGVzdFN1cnZleVRhYiAhPSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIHRoaXMua29TaG93SW52aXNpYmxlRWxlbWVudHNJblRlc3RTdXJ2ZXlUYWIoXG4gICAgICAgIG9wdGlvbnMuc2hvd0ludmlzaWJsZUVsZW1lbnRzSW5UZXN0U3VydmV5VGFiXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmtvU2hvd0ludmlzaWJsZUVsZW1lbnRzKGZhbHNlKTtcbiAgICB0aGlzLmtvUGFnZXMocGFnZXMpO1xuICAgIHRoaXMua29TdXJ2ZXkodGhpcy5zdXJ2ZXkpO1xuICAgIHRoaXMua29BY3RpdmVQYWdlKHRoaXMuc3VydmV5LmN1cnJlbnRQYWdlKTtcbiAgICB0aGlzLmtvQWN0aXZlTGFuZ3VhZ2UoXG4gICAgICB0aGlzLnN1cnZleS5sb2NhbGUgfHwgU3VydmV5LnN1cnZleUxvY2FsaXphdGlvbi5kZWZhdWx0TG9jYWxlXG4gICAgKTtcbiAgICB0aGlzLmtvSXNSdW5uaW5nKHRydWUpO1xuICB9XG4gIHB1YmxpYyBnZXRMb2NTdHJpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcobmFtZSk7XG4gIH1cbiAgcHVibGljIGdldCB0ZXN0U3VydmV5QWdhaW5UZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcImVkLnRlc3RTdXJ2ZXlBZ2FpblwiKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGxvY2FsZVRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jU3RyaW5nKFwicGUubG9jYWxlXCIpO1xuICB9XG4gIHByaXZhdGUgdGVzdEFnYWluKCkge1xuICAgIHRoaXMuc2V0SlNPTih0aGlzLmpzb24pO1xuICAgIHRoaXMuc2hvdygpO1xuICB9XG4gIHByaXZhdGUgc2V0RGVmYXVsdExhbmd1YWdlT3B0aW9uKG9wdDogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIHZhciB2aXMgPVxuICAgICAgb3B0ID09PSB0cnVlIHx8XG4gICAgICBvcHQgPT09IFwiYWxsXCIgfHxcbiAgICAgIChvcHQgPT09IFwiYXV0b1wiICYmIHRoaXMuc3VydmV5LmdldFVzZWRMb2NhbGVzKCkubGVuZ3RoID4gMSk7XG4gICAgdGhpcy5rb1Nob3dEZWZhdWx0TGFuZ3VhZ2VJblRlc3RTdXJ2ZXlUYWIodmlzKTtcbiAgICBpZiAodmlzKSB7XG4gICAgICB0aGlzLnVwZGF0aW5nTGFuZ3VhZ2VzID0gdHJ1ZTtcbiAgICAgIHRoaXMua29MYW5ndWFnZXMoXG4gICAgICAgIHRoaXMuZ2V0TGFuZ3VhZ2VzKG9wdCAhPT0gXCJhbGxcIiA/IHRoaXMuc3VydmV5LmdldFVzZWRMb2NhbGVzKCkgOiBudWxsKVxuICAgICAgKTtcbiAgICAgIHRoaXMudXBkYXRpbmdMYW5ndWFnZXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBzZXRBY3RpdmVQYWdlSXRlbShwYWdlOiBTdXJ2ZXkuUGFnZSwgdmFsOiBib29sZWFuKSB7XG4gICAgdmFyIGl0ZW0gPSB0aGlzLmdldFBhZ2VJdGVtQnlQYWdlKHBhZ2UpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtLmtvQWN0aXZlKHZhbCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0UGFnZUl0ZW1CeVBhZ2UocGFnZTogU3VydmV5LlBhZ2UpOiBhbnkge1xuICAgIHZhciBpdGVtcyA9IHRoaXMua29QYWdlcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpdGVtc1tpXS5wYWdlID09PSBwYWdlKSByZXR1cm4gaXRlbXNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByaXZhdGUgZ2V0TGFuZ3VhZ2VzKHVzZWRMYW5ndWFnZXM6IEFycmF5PHN0cmluZz4gPSBudWxsKTogQXJyYXk8YW55PiB7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciBsb2NhbGVzID1cbiAgICAgICEhdXNlZExhbmd1YWdlcyAmJiB1c2VkTGFuZ3VhZ2VzLmxlbmd0aCA+IDFcbiAgICAgICAgPyB1c2VkTGFuZ3VhZ2VzXG4gICAgICAgIDogU3VydmV5LnN1cnZleUxvY2FsaXphdGlvbi5nZXRMb2NhbGVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbG9jID0gbG9jYWxlc1tpXTtcbiAgICAgIHJlcy5wdXNoKHsgdmFsdWU6IGxvYywgdGV4dDogZWRpdG9yTG9jYWxpemF0aW9uLmdldExvY2FsZU5hbWUobG9jKSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwdWJsaWMga29FdmVudEFmdGVyUmVuZGVyKGVsZW1lbnQ6IGFueSwgc3VydmV5OiBhbnkpIHtcbiAgICBzdXJ2ZXlbXCJhZnRlclJlbmRlclN1cnZleVwiXShlbGVtZW50KTtcbiAgfVxuXG4gIGRpc3Bvc2UoKSB7IH1cbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN1cnZleS10ZXN0ZXJcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBjcmVhdG9yOiBTdXJ2ZXlDcmVhdG9yID0gcGFyYW1zLmNyZWF0b3I7XG4gICAgICB2YXIgbW9kZWwgPSBjcmVhdG9yLnN1cnZleUxpdmVUZXN0ZXIgfHwgbmV3IFN1cnZleUxpdmVUZXN0ZXIoY3JlYXRvcik7XG5cbiAgICAgIG1vZGVsLm9uU3VydmV5Q3JlYXRlZENhbGxiYWNrID0gKHN1cnZleSkgPT4ge1xuICAgICAgICBjcmVhdG9yLm9uVGVzdFN1cnZleUNyZWF0ZWQgJiZcbiAgICAgICAgICBjcmVhdG9yLm9uVGVzdFN1cnZleUNyZWF0ZWQuZmlyZShjcmVhdG9yLCB7IHN1cnZleTogc3VydmV5IH0pO1xuICAgICAgfTtcbiAgICAgIG1vZGVsLm9uR2V0T2JqZWN0RGlzcGxheU5hbWUgPSAob2JqKSA9PiB7XG4gICAgICAgIHJldHVybiBjcmVhdG9yLmdldE9iamVjdERpc3BsYXlOYW1lKG9iaiwgXCJzdXJ2ZXktdGVzdGVyXCIpO1xuICAgICAgfTtcblxuICAgICAgLy8gVGVzdCB0YWIgdXBkYXRlciBpbXBsaWNpdGx5IGRlcGVuZGluZyBvbiBvYnNlcnZhYmxlIHN1cnZleSBhbmQgdmlldyB0eXBlXG4gICAgICB2YXIgdXBkYXRlVGVzdFRhYiA9IChqc29uOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGNyZWF0b3Iua29WaWV3VHlwZSgpICE9PSBcInRlc3RcIikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgICBzaG93UGFnZXNJblRlc3RTdXJ2ZXlUYWI6IGNyZWF0b3Iuc2hvd1BhZ2VzSW5UZXN0U3VydmV5VGFiLFxuICAgICAgICAgIHNob3dEZWZhdWx0TGFuZ3VhZ2VJblRlc3RTdXJ2ZXlUYWI6XG4gICAgICAgICAgICBjcmVhdG9yLnNob3dEZWZhdWx0TGFuZ3VhZ2VJblRlc3RTdXJ2ZXlUYWIsXG4gICAgICAgICAgc2hvd0ludmlzaWJsZUVsZW1lbnRzSW5UZXN0U3VydmV5VGFiOlxuICAgICAgICAgICAgY3JlYXRvci5zaG93SW52aXNpYmxlRWxlbWVudHNJblRlc3RTdXJ2ZXlUYWIsXG4gICAgICAgICAgc2hvd1NpbXVsYXRvckluVGVzdFN1cnZleVRhYjogY3JlYXRvci5zaG93U2ltdWxhdG9ySW5UZXN0U3VydmV5VGFiLFxuICAgICAgICB9O1xuICAgICAgICBtb2RlbC5zZXRKU09OKGpzb24pO1xuICAgICAgICBtb2RlbC5zaG93KG9wdGlvbnMpO1xuICAgICAgfTtcblxuICAgICAgdmFyIHN1YnNjciA9IGNyZWF0b3Iua29WaWV3VHlwZS5zdWJzY3JpYmUoKHZpZXdUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHZpZXdUeXBlID09PSBcInRlc3RcIikge1xuICAgICAgICAgIHVwZGF0ZVRlc3RUYWIoY3JlYXRvci5KU09OKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBoYW5kbGVyID0gKHNlbmRlciwgb3B0aW9ucykgPT4gdXBkYXRlVGVzdFRhYihvcHRpb25zLnN1cnZleS50b0pTT04oKSk7XG4gICAgICBjcmVhdG9yLm9uRGVzaWduZXJTdXJ2ZXlDcmVhdGVkLmFkZChoYW5kbGVyKTtcblxuICAgICAga28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhjb21wb25lbnRJbmZvLmVsZW1lbnQsICgpID0+IHtcbiAgICAgICAgY3JlYXRvci5vbkRlc2lnbmVyU3VydmV5Q3JlYXRlZC5yZW1vdmUoaGFuZGxlcik7XG4gICAgICAgIHN1YnNjci5kaXNwb3NlKCk7XG4gICAgICAgIG1vZGVsLmRpc3Bvc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwic3ZkLXRyYW5zbGF0aW9uLWl0ZW1cXFwiPlxcbiAgPHRleHRhcmVhXFxuICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiXFxuICAgIHN0eWxlPVxcXCJ3aWR0aDogMTAwJTtcXFwiXFxuICAgIGRhdGEtYmluZD1cXFwidmlzaWJsZTogJGRhdGEua29WaXNpYmxlLCBkaXNhYmxlOiBpdGVtLmtvUmVhZE9ubHksIHZhbHVlOml0ZW0ua29WYWx1ZSgkZGF0YS5sb2NhbGUpLCBhdHRyOiB7cGxhY2Vob2xkZXI6ICEkZGF0YS5sb2NhbGU/IGl0ZW0uZGVmYXVsdFZhbHVlIDogJyd9XFxcIlxcbiAgPjwvdGV4dGFyZWE+XFxuPC9zY3JpcHQ+XFxuPGRpdlxcbiAgY2xhc3M9XFxcInN2ZC1saWdodC1ib3JkZXItY29sb3Igc3ZkLWxpZ2h0LWJnLWNvbG9yXFxcIlxcbiAgZGF0YS1iaW5kPVxcXCJjc3M6eydzdmQtdHJhbnNsYXRpb24tc3RyaW5ncyc6ICRkYXRhLmtvU2hvd0hlYWRlcigpfVxcXCJcXG4+XFxuICA8dGFibGUgY2xhc3M9XFxcInN2ZF9pdGVtc190YWJsZVxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiAkZGF0YS5sb2NJdGVtcy5sZW5ndGggPiAwXFxcIj5cXG4gICAgPHRoZWFkPlxcbiAgICAgIDx0cj5cXG4gICAgICAgIDx0aD48L3RoPlxcbiAgICAgICAgPCEtLSBrbyBmb3JlYWNoOiAkZGF0YS5rb0xvY2FsZXMgLS0+XFxuICAgICAgICA8IS0tIGtvIGlmOiAkZGF0YS5rb1Zpc2libGUoKSAtLT5cXG4gICAgICAgIDx0aFxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRwYXJlbnQuZ2V0TG9jYWxlTmFtZSgkZGF0YS5sb2NhbGUpLCBzdHlsZToge3dpZHRoOiAkcGFyZW50LmxvY1dpZHRofVxcXCJcXG4gICAgICAgID48L3RoPlxcbiAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICA8L3RyPlxcbiAgICA8L3RoZWFkPlxcbiAgICA8dGJvZHkgZGF0YS1iaW5kPVxcXCJmb3JlYWNoOiB7ZGF0YTogJGRhdGEubG9jSXRlbXMsIGFzOiAnaXRlbScgfVxcXCI+XFxuICAgICAgPHRyPlxcbiAgICAgICAgPHRkIHN0eWxlPVxcXCJtYXgtd2lkdGg6IDIwMHB4OyBtaW4td2lkdGg6IDEwMHB4XFxcIj5cXG4gICAgICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0Oml0ZW0udGV4dFxcXCI+PC9zcGFuPlxcbiAgICAgICAgPC90ZD5cXG4gICAgICAgIDwhLS0ga28gZm9yZWFjaDogJHBhcmVudC5rb0xvY2FsZXMgLS0+XFxuICAgICAgICA8IS0tIGtvIGlmOiAkZGF0YS5rb1Zpc2libGUoKSAtLT5cXG4gICAgICAgIDx0ZFxcbiAgICAgICAgICBkYXRhLWJpbmQ9XFxcInN0eWxlOiB7d2lkdGg6ICRkYXRhLmtvVmlzaWJsZSA/ICRwYXJlbnQubG9jV2lkdGggOiAnMHB4J30gXFxcIlxcbiAgICAgICAgPlxcbiAgICAgICAgICA8IS0tIGtvIHRlbXBsYXRlOiB7IG5hbWU6ICdzdmQtdHJhbnNsYXRpb24taXRlbScsIGRhdGE6ICRkYXRhLCBhZnRlclJlbmRlcjogJHBhcmVudC5hZnRlclJlbmRlcn0gLS0+XFxuICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgPC90ZD5cXG4gICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgPC90cj5cXG4gICAgPC90Ym9keT5cXG4gIDwvdGFibGU+XFxuXFxuICA8ZGl2XFxuICAgIHJvbGUgPSBcXFwidGFibGlzdFxcXCJcXG4gICAgY2xhc3M9XFxcInN2ZC10cmFuc2xhdGlvbi1wYW5lbC1zdHJpbmdzXFxcIlxcbiAgICBkYXRhLWJpbmQ9XFxcImZvcmVhY2g6IHtkYXRhOiAkZGF0YS5ncm91cHMsIGFzOiAnZ3JvdXAnIH1cXFwiXFxuICA+XFxuICAgIDxkaXZcXG4gICAgICBjbGFzcz1cXFwic3ZkLXRvb2xib3gtY2F0ZWdvcnktaGVhZGVyXFxcIlxcbiAgICAgIHJvbGU9XFxcInRhYlxcXCIgdGFiaW5kZXg9XFxcIjBcXFwiXFxuICAgICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBrb1Nob3dIZWFkZXIsIGNsaWNrOiBmdW5jdGlvbigpeyBncm91cC5rb0V4cGFuZGVkKCFncm91cC5rb0V4cGFuZGVkKCkpfSwga2V5MmNsaWNrXFxcIlxcbiAgICA+XFxuICAgICAgPHNwYW5cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtdHJhbnNsYXRpb24tcGFuZWwtc3RyaW5ncy10aXRsZVxcXCJcXG4gICAgICAgIGRhdGEtYmluZD1cXFwiY3NzOiB7ICdzdmQtbWFpbi1jb2xvcic6IGdyb3VwLmtvRXhwYW5kZWQoKSB9LCB0ZXh0OiBncm91cC50ZXh0XFxcIlxcbiAgICAgID48L3NwYW4+XFxuICAgICAgPCEtLSBrbyBpZm5vdDoga29FeHBhbmRlZCAtLT5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGNsYXNzPVxcXCJpY29uLXRvb2xib3gtYXJyb3dcXFwiXFxuICAgICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1hcnJvd19kb3duXzEweDEwJywgc2l6ZTogMTBcXFwiXFxuICAgICAgPjwvc3ZnLWljb24+XFxuICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgPCEtLSBrbyBpZjoga29FeHBhbmRlZCAtLT5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGNsYXNzPVxcXCJpY29uLXRvb2xib3gtYXJyb3cgc3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICdpY29uLWFycm93X3VwXzEweDEwJywgc2l6ZTogMTBcXFwiXFxuICAgICAgPlxcbiAgICAgIDwvc3ZnLWljb24+XFxuICAgICAgPCEtLSAva28gLS0+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGRhdGEtYmluZD1cXFwidmlzaWJsZToga29FeHBhbmRlZFxcXCI+XFxuICAgICAgPHN2ZC10cmFuc2xhdGlvbi1ncm91cCBwYXJhbXM9XFxcIm1vZGVsOiBncm91cFxcXCI+PC9zdmQtdHJhbnNsYXRpb24tZ3JvdXA+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuPC9kaXY+XFxuXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXAgc3ZkLXRyYW5zbGF0aW9uLXRhYlxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19yb3dcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgIDxzdmQtdG9vbGJhciBwYXJhbXM9XFxcIml0ZW1zOiB0b29sYmFySXRlbXNcXFwiPjwvc3ZkLXRvb2xiYXI+XFxuICAgICAgICA8ZGl2PlxcbiAgICAgICAgICA8IS0tIGtvIGZvcmVhY2g6IHtkYXRhOiAkZGF0YS5rb0xvY2FsZXMsIGFzOiAnaXRlbScgfSAtLT5cXG4gICAgICAgICAgPGxhYmVsIGRhdGEtYmluZD1cXFwidmlzaWJsZTogISFpdGVtLmxvY2FsZSAmJiBpdGVtLmtvRW5hYmxlZCgpXFxcIj5cXG4gICAgICAgICAgICA8c3ZkLXByb3BlcnR5LWVkaXRvci1ib29sZWFuXFxuICAgICAgICAgICAgICBwYXJhbXM9XFxcInttb2RlbDoge2tvVmFsdWU6IGl0ZW0ua29WaXNpYmxlLCBkaXNwbGF5TmFtZTogJHBhcmVudC5nZXRMb2NhbGVOYW1lKCRkYXRhLmxvY2FsZSksIGlzRGlzcGxheU5hbWVWaXNpYmxlOiB0cnVlLCBrb0FmdGVyUmVuZGVyOiBmdW5jdGlvbigpe319fVxcXCJcXG4gICAgICAgICAgICA+PC9zdmQtcHJvcGVydHktZWRpdG9yLWJvb2xlYW4+XFxuICAgICAgICAgIDwvbGFiZWw+XFxuICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgICAgPGJ1dHRvblxcbiAgICAgICAgICAgIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1wcmltYXJ5XFxcIlxcbiAgICAgICAgICAgIHR5cGU9XFxcImJ1dHRvblxcXCJcXG4gICAgICAgICAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6JGRhdGEua29DYW5NZXJnZUxvY2FsZVdpdGhEZWZhdWx0KCkgJiYgIWtvUmVhZE9ubHkoKSwgdGV4dDokZGF0YS5rb01lcmdlTG9jYWxlV2l0aERlZmF1bHRUZXh0LCBjbGljazokZGF0YS5rb01lcmdlTG9jYWxlV2l0aERlZmF1bHRcXFwiXFxuICAgICAgICAgID48L2J1dHRvbj5cXG4gICAgICAgICAgPGJ1dHRvblxcbiAgICAgICAgICAgIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1wcmltYXJ5XFxcIlxcbiAgICAgICAgICAgIHR5cGU9XFxcImJ1dHRvblxcXCJcXG4gICAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6JGRhdGEuZXhwb3J0VG9DU1ZUZXh0LCBjbGljazokZGF0YS5rb0V4cG9ydFRvQ1NWRmlsZVxcXCJcXG4gICAgICAgICAgPjwvYnV0dG9uPlxcbiAgICAgICAgICA8YnV0dG9uIGRhdGEtYmluZD1cXFwidmlzaWJsZTogIWtvUmVhZE9ubHkoKVxcXCJcXG4gICAgICAgICAgICBjbGFzcz1cXFwiYnRuIHN2LWJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICB0eXBlPVxcXCJidXR0b25cXFwiXFxuICAgICAgICAgICAgb25jbGljaz1cXFwidGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXS5jbGljaygpO1xcXCJcXG4gICAgICAgICAgPlxcbiAgICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgICAgdHlwZT1cXFwiZmlsZVxcXCJcXG4gICAgICAgICAgICAgIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lO1xcXCJcXG4gICAgICAgICAgICAgIGFjY2VwdD1cXFwiLmNzdlxcXCJcXG4gICAgICAgICAgICAgIGRhdGEtYmluZD1cXFwiZXZlbnQ6IHsgY2hhbmdlOiBmdW5jdGlvbigpIHsgJGRhdGEua29JbXBvcnRGcm9tQ1NWRmlsZSgkZWxlbWVudCkgfSB9XFxcIlxcbiAgICAgICAgICAgIC8+XFxuICAgICAgICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiRkYXRhLmltcG9ydEZyb21DU1ZUZXh0XFxcIj48L3NwYW4+XFxuICAgICAgICAgIDwvYnV0dG9uPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19yb3dcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGwtY29udGVudC1ob2xkZXJcXFwiPlxcbiAgICAgICAgICA8ZGl2XFxuICAgICAgICAgICAgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGwtY29udGVudCBzdmQtdmVydGljYWwtY29udGFpbmVyX19jZWxsLWNvbnRlbnQtLXNjcm9sbGFibGVcXFwiXFxuICAgICAgICAgID5cXG4gICAgICAgICAgICA8ZGl2XFxuICAgICAgICAgICAgICBjbGFzcz1cXFwic3ZkLXRyYW5zbGF0aW9uLW5vLXN0cmluZ3Mgc3ZkLWxpZ2h0LXRleHQtY29sb3JcXFwiXFxuICAgICAgICAgICAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6JGRhdGEua29Jc0VtcHR5XFxcIlxcbiAgICAgICAgICAgID5cXG4gICAgICAgICAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDokZGF0YS5ub1N0cmluZ3NUZXh0XFxcIj48L3NwYW4+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPCEtLSBrbyBpZm5vdDogJGRhdGEua29Jc0VtcHR5IC0tPlxcbiAgICAgICAgICAgIDxzdmQtdHJhbnNsYXRpb24tZ3JvdXBcXG4gICAgICAgICAgICAgIHBhcmFtcz1cXFwibW9kZWw6IGtvUm9vdFxcXCJcXG4gICAgICAgICAgICA+PC9zdmQtdHJhbnNsYXRpb24tZ3JvdXA+XFxuICAgICAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuPC9kaXY+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgdW5wYXJzZSwgcGFyc2UgfSBmcm9tIFwicGFwYXBhcnNlXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBTdXJ2ZXlDcmVhdG9yIH0gZnJvbSBcIi4uL2VkaXRvclwiO1xuaW1wb3J0IHsgc2V0dGluZ3MgfSBmcm9tIFwiLi4vc2V0dGluZ3NcIjtcblxuaW1wb3J0IFwiLi90cmFuc2xhdGlvbi5zY3NzXCI7XG5pbXBvcnQgeyBJQWN0aW9uIH0gZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5SGVscGVyIH0gZnJvbSBcIi4uL3N1cnZleUhlbHBlclwiO1xudmFyIHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL3RyYW5zbGF0aW9uLmh0bWxcIik7XG52YXIgZ3JvdXBUZW1wbGF0ZUh0bWwgPSByZXF1aXJlKFwiLi90cmFuc2xhdGlvbi1ncm91cC5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25JdGVtQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHsgfVxuICBwdWJsaWMgZ2V0IGlzR3JvdXAoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBmaWxsTG9jYWxlcyhsb2NhbGVzOiBBcnJheTxzdHJpbmc+KSB7IH1cbiAgcHVibGljIG1lcmdlTG9jYWxlV2l0aERlZmF1bHQobG9jOiBzdHJpbmcpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25JdGVtIGV4dGVuZHMgVHJhbnNsYXRpb25JdGVtQmFzZSB7XG4gIHByaXZhdGUgdmFsdWVzOiBTdXJ2ZXkuSGFzaFRhYmxlPGtvLk9ic2VydmFibGU8c3RyaW5nPj47XG4gIHB1YmxpYyBjdXN0b21UZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBhZnRlclJlbmRlcjogYW55O1xuICBwdWJsaWMga29SZWFkT25seTogYW55ID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIGxvY1N0cmluZzogU3VydmV5LkxvY2FsaXphYmxlU3RyaW5nLFxuICAgIHB1YmxpYyBkZWZhdWx0VmFsdWU6IHN0cmluZyA9IFwiXCIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogSVRyYW5zbGF0aW9uTG9jYWxlcyxcbiAgICBwcml2YXRlIGNvbnRleHQ6IGFueVxuICApIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICBpZiAoISF0aGlzLnRyYW5zbGF0aW9uKSB7XG4gICAgICB0aGlzLmtvUmVhZE9ubHkgPSB0aGlzLnRyYW5zbGF0aW9uLmtvUmVhZE9ubHk7XG4gICAgfVxuICAgIHRoaXMudmFsdWVzID0ge307XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuYWZ0ZXJSZW5kZXIgPSBmdW5jdGlvbiAoZWw6IGFueSwgZGF0YTogYW55KSB7XG4gICAgICBpZiAoISFzZWxmLnRyYW5zbGF0aW9uKSB7XG4gICAgICAgIHNlbGYudHJhbnNsYXRpb24udHJhbnNsYXRlSXRlbUFmdGVyUmVuZGVyKHNlbGYsIGVsLCBkYXRhLmxvY2FsZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRleHQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5jdXN0b21UZXh0ID8gdGhpcy5jdXN0b21UZXh0IDogdGhpcy5sb2NhbGl6YWJsZU5hbWU7XG4gIH1cbiAgcHVibGljIGdldCBsb2NhbGl6YWJsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFByb3BlcnR5TmFtZSh0aGlzLm5hbWUpO1xuICB9XG4gIHB1YmxpYyBnZXRMb2NUZXh0KGxvYzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2NTdHJpbmcuZ2V0TG9jYWxlVGV4dChsb2MpO1xuICB9XG4gIHB1YmxpYyBzZXRMb2NUZXh0KGxvYzogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NTdHJpbmcuc2V0TG9jYWxlVGV4dChsb2MsIG5ld1ZhbHVlKTtcbiAgICAhIXRoaXMudHJhbnNsYXRpb24udHJhbmxhdGlvbkNoYW5nZWRDYWxsYmFjayAmJlxuICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFubGF0aW9uQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgICBsb2MsXG4gICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgbmV3VmFsdWUsXG4gICAgICAgIHRoaXMuY29udGV4dFxuICAgICAgKTtcbiAgfVxuICBwdWJsaWMga29WYWx1ZShsb2M6IHN0cmluZyk6IGtvLk9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLnZhbHVlc1tsb2NdKSB7XG4gICAgICB2YXIgdmFsID0ga28ub2JzZXJ2YWJsZSh0aGlzLmdldExvY1RleHQobG9jKSk7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICB2YWwuc3Vic2NyaWJlKChuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBzZWxmLnNldExvY1RleHQobG9jLCBuZXdWYWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudmFsdWVzW2xvY10gPSB2YWw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZhbHVlc1tsb2NdO1xuICB9XG5cbiAgcHVibGljIGZpbGxMb2NhbGVzKGxvY2FsZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICB2YXIga2V5cyA9IHRoaXMuZ2V0S2V5cygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGtleSA9IGtleXNbaV07XG4gICAgICBpZiAoXG4gICAgICAgICEha2V5ICYmXG4gICAgICAgIGxvY2FsZXMuaW5kZXhPZihrZXkpIDwgMCAmJlxuICAgICAgICBrZXkgIT09IFN1cnZleS5Mb2NhbGl6YWJsZVN0cmluZy5kZWZhdWx0TG9jYWxlXG4gICAgICApIHtcbiAgICAgICAgbG9jYWxlcy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0S2V5cygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5sb2NTdHJpbmdbXCJnZXRMb2NhbGVzXCJdKSByZXR1cm4gdGhpcy5sb2NTdHJpbmdbXCJnZXRMb2NhbGVzXCJdKCk7XG4gICAgdmFyIGpzb24gPSB0aGlzLmxvY1N0cmluZy5nZXRKc29uKCk7XG4gICAgaWYgKCFqc29uIHx8IHR5cGVvZiBqc29uID09PSBcInN0cmluZ1wiKSByZXR1cm4gW107XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBqc29uKSB7XG4gICAgICByZXMucHVzaChrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHB1YmxpYyBtZXJnZUxvY2FsZVdpdGhEZWZhdWx0KGxvYzogc3RyaW5nKSB7XG4gICAgdmFyIGxvY1RleHQgPSB0aGlzLmxvY1N0cmluZy5nZXRMb2NhbGVUZXh0KGxvYyk7XG4gICAgaWYgKCFsb2NUZXh0KSByZXR1cm47XG4gICAgdGhpcy5sb2NTdHJpbmcuc2V0TG9jYWxlVGV4dChcIlwiLCBsb2NUZXh0KTtcbiAgICB0aGlzLmxvY1N0cmluZy5zZXRMb2NhbGVUZXh0KGxvYywgbnVsbCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNsYXRpb25Mb2NhbGVzIHtcbiAga29Mb2NhbGVzOiBhbnk7XG4gIHNob3dBbGxTdHJpbmdzOiBib29sZWFuO1xuICBrb1JlYWRPbmx5OiBhbnk7XG4gIGdldExvY2FsZU5hbWUobG9jOiBzdHJpbmcpOiBzdHJpbmc7XG4gIGF2YWlsYWJsZVRyYW5sYXRpb25zQ2hhbmdlZENhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICB0cmFubGF0aW9uQ2hhbmdlZENhbGxiYWNrOiAoXG4gICAgbG9jYWxlOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgY29udGV4dDogYW55XG4gICkgPT4gdm9pZDtcbiAgdHJhbnNsYXRlSXRlbUFmdGVyUmVuZGVyKGl0ZW06IFRyYW5zbGF0aW9uSXRlbSwgZWw6IGFueSwgbG9jYWxlOiBzdHJpbmcpO1xuICBjYW5TaG93UHJvcGVydHkob2JqOiBTdXJ2ZXkuQmFzZSwgcHJvcDogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSwgaXNFbXB0eTogYm9vbGVhbik6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbkdyb3VwIGV4dGVuZHMgVHJhbnNsYXRpb25JdGVtQmFzZSB7XG4gIHByaXZhdGUgaXNSb290VmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAga29FeHBhbmRlZDogYW55O1xuICBrb1Nob3dIZWFkZXI6IGFueTtcbiAgcHJpdmF0ZSBpdGVtVmFsdWVzOiBBcnJheTxUcmFuc2xhdGlvbkl0ZW1CYXNlPjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hbWUsXG4gICAgcHVibGljIG9iajogYW55LFxuICAgIHB1YmxpYyB0cmFuc2xhdGlvbjogSVRyYW5zbGF0aW9uTG9jYWxlcyA9IG51bGwsXG4gICAgcHVibGljIHRleHQ6IHN0cmluZyA9IFwiXCJcbiAgKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgaWYgKCF0aGlzLnRleHQpIHtcbiAgICAgIHRoaXMudGV4dCA9IG5hbWU7XG4gICAgfVxuICAgIHRoaXMua29FeHBhbmRlZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICAgIHRoaXMua29TaG93SGVhZGVyID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cbiAgcHVibGljIGdldCBpdGVtcygpOiBBcnJheTxUcmFuc2xhdGlvbkl0ZW1CYXNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVZhbHVlcztcbiAgfVxuICBwdWJsaWMgZ2V0IGxvY0l0ZW1zKCk6IEFycmF5PFRyYW5zbGF0aW9uSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1WYWx1ZXMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0gaW5zdGFuY2VvZiBUcmFuc2xhdGlvbkl0ZW1cbiAgICApIGFzIEFycmF5PFRyYW5zbGF0aW9uSXRlbT47XG4gIH1cbiAgcHVibGljIGdldCBpc1Jvb3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSb290VmFsdWU7XG4gIH1cbiAgc2V0QXNSb290KCkge1xuICAgIHRoaXMuaXNSb290VmFsdWUgPSB0cnVlO1xuICAgIHRoaXMua29FeHBhbmRlZCh0cnVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0SXRlbUJ5TmFtZShuYW1lOiBzdHJpbmcpOiBUcmFuc2xhdGlvbkl0ZW1CYXNlIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbVZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMuaXRlbVZhbHVlc1tpXS5uYW1lID09IG5hbWUpIHJldHVybiB0aGlzLml0ZW1WYWx1ZXNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXQgZ3JvdXBzKCk6IEFycmF5PFRyYW5zbGF0aW9uR3JvdXA+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVmFsdWVzLmZpbHRlcihcbiAgICAgIChpdGVtKSA9PiBpdGVtIGluc3RhbmNlb2YgVHJhbnNsYXRpb25Hcm91cFxuICAgICkgYXMgQXJyYXk8VHJhbnNsYXRpb25Hcm91cD47XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzR3JvdXAoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIGdldCBrb0xvY2FsZXMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50cmFuc2xhdGlvbiA/IHRoaXMudHJhbnNsYXRpb24ua29Mb2NhbGVzIDogbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGxvY2FsZUNvdW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLmtvTG9jYWxlcygpKSByZXR1cm4gMDtcbiAgICB2YXIgbG9jYWxlcyA9IHRoaXMua29Mb2NhbGVzKCk7XG4gICAgdmFyIHJlcyA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAobG9jYWxlc1tpXS5rb1Zpc2libGUoKSkgcmVzKys7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGdldCBsb2NXaWR0aCgpOiBzdHJpbmcge1xuICAgIHZhciBjb3VudCA9IHRoaXMubG9jYWxlQ291bnQ7XG4gICAgaWYgKGNvdW50IDwgMikgcmV0dXJuIFwiMTAwJVwiO1xuICAgIHJldHVybiBNYXRoLmZsb29yKDEwMCAvIGNvdW50KS50b1N0cmluZygpICsgXCIlXCI7XG4gIH1cbiAgcHVibGljIGdldExvY2FsZU5hbWUobG9jOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblxuICAgICAgPyB0aGlzLnRyYW5zbGF0aW9uLmdldExvY2FsZU5hbWUobG9jKVxuICAgICAgOiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0TG9jYWxlTmFtZShsb2MpO1xuICB9XG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLml0ZW1WYWx1ZXMgPSBbXTtcbiAgICB0aGlzLmZpbGxJdGVtcygpO1xuICB9XG4gIHB1YmxpYyBmaWxsTG9jYWxlcyhsb2NhbGVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLml0ZW1zW2ldLmZpbGxMb2NhbGVzKGxvY2FsZXMpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNob3dBbGxTdHJpbmdzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudHJhbnNsYXRpb24gPyB0aGlzLnRyYW5zbGF0aW9uLnNob3dBbGxTdHJpbmdzIDogdHJ1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc0l0ZW1zKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmxvY0l0ZW1zLmxlbmd0aCA+IDApIHJldHVybiB0cnVlO1xuICAgIHZhciBncm91cHMgPSB0aGlzLmdyb3VwcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGdyb3Vwc1tpXS5oYXNJdGVtcykgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgbWVyZ2VMb2NhbGVXaXRoRGVmYXVsdChsb2M6IHN0cmluZykge1xuICAgIHRoaXMuaXRlbVZhbHVlcy5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLm1lcmdlTG9jYWxlV2l0aERlZmF1bHQobG9jKSk7XG4gIH1cbiAgcHJpdmF0ZSBmaWxsSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuaXNJdGVtVmFsdWVBcnJheSh0aGlzLm9iaikpIHtcbiAgICAgIHRoaXMuY3JlYXRlSXRlbVZhbHVlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMub2JqIHx8ICF0aGlzLm9iai5nZXRUeXBlKSByZXR1cm47XG4gICAgdmFyIHByb3BlcnRpZXMgPSB0aGlzLmdldExvY2FsaXplZFByb3BlcnRpZXModGhpcy5vYmopO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHByb3BlcnR5ID0gcHJvcGVydGllc1tpXTtcbiAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVUcmFuc2xhdGlvbkl0ZW0odGhpcy5vYmosIHByb3BlcnRpZXNbaV0pO1xuICAgICAgaWYgKCEhaXRlbSkge1xuICAgICAgICB0aGlzLml0ZW1WYWx1ZXMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcHJvcGVydGllcyA9IHRoaXMuZ2V0QXJyYXlQcm9wZXJ0aWVzKHRoaXMub2JqKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwcm9wZXJ0eSA9IHByb3BlcnRpZXNbaV07XG4gICAgICB2YXIgdmFsdWUgPSB0aGlzLm9ialtwcm9wZXJ0eS5uYW1lXTtcbiAgICAgIC8vSWYgSXRlbVZhbHVlIGFycmF5P1xuICAgICAgaWYgKHRoaXMuaXNJdGVtVmFsdWVBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdmFyIGdyb3VwID0gbmV3IFRyYW5zbGF0aW9uR3JvdXAoXG4gICAgICAgICAgcHJvcGVydHkubmFtZSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uLFxuICAgICAgICAgIGVkaXRvckxvY2FsaXphdGlvbi5nZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkubmFtZSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGdyb3VwLmhhc0l0ZW1zKSB7XG4gICAgICAgICAgdGhpcy5pdGVtVmFsdWVzLnB1c2goZ3JvdXApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZUdyb3Vwcyh2YWx1ZSwgcHJvcGVydHkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNvcnRJdGVtcygpO1xuICAgIHRoaXMua2VlcE9uR3JvdXBFeHBhbmRlZCgpO1xuICB9XG4gIHByaXZhdGUga2VlcE9uR3JvdXBFeHBhbmRlZCgpIHtcbiAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPT0gMSAmJiB0aGlzLmdyb3Vwcy5sZW5ndGggPT0gMSkge1xuICAgICAgdmFyIGdyID0gdGhpcy5ncm91cHNbMF07XG4gICAgICBnci5rb0V4cGFuZGVkKHRydWUpO1xuICAgICAgaWYgKGdyLm9iai5nZXRUeXBlKCkgPT0gXCJwYWdlXCIpIHtcbiAgICAgICAgZ3Iua29TaG93SGVhZGVyKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGV4cGFuZEFsbCgpIHtcbiAgICB0aGlzLmV4cGFuZENvbGxhcHNlQWxsKHRydWUpO1xuICB9XG4gIHB1YmxpYyBjb2xsYXBzZUFsbCgpIHtcbiAgICB0aGlzLmV4cGFuZENvbGxhcHNlQWxsKGZhbHNlKTtcbiAgfVxuICBwcml2YXRlIGV4cGFuZENvbGxhcHNlQWxsKGlzRXhwYW5kOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmlzUm9vdCkge1xuICAgICAgdGhpcy5rb0V4cGFuZGVkKGlzRXhwYW5kKTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmdyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGlzRXhwYW5kKSB7XG4gICAgICAgIHRoaXMuZ3JvdXBzW2ldLmV4cGFuZEFsbCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ncm91cHNbaV0uY29sbGFwc2VBbGwoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rZWVwT25Hcm91cEV4cGFuZGVkKCk7XG4gIH1cbiAgcHJpdmF0ZSBzb3J0SXRlbXMoKSB7XG4gICAgaWYgKCFzZXR0aW5ncy50cmFzbGF0aW9uLnNvcnRCeU5hbWUpIHJldHVybjtcbiAgICB0aGlzLml0ZW1WYWx1ZXMuc29ydChmdW5jdGlvbiAoXG4gICAgICBhOiBUcmFuc2xhdGlvbkl0ZW1CYXNlLFxuICAgICAgYjogVHJhbnNsYXRpb25JdGVtQmFzZVxuICAgICkge1xuICAgICAgaWYgKCFhLm5hbWUpIHJldHVybiAtMTtcbiAgICAgIGlmICghYi5uYW1lKSByZXR1cm4gMTtcbiAgICAgIHJldHVybiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpO1xuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgZ2V0TG9jYWxpemVkUHJvcGVydGllcyhvYmo6IGFueSk6IEFycmF5PFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHk+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIHByb3BlcnRpZXMgPSBTdXJ2ZXkuU2VyaWFsaXplci5nZXRQcm9wZXJ0aWVzQnlPYmoob2JqKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwcm9wZXJ0eSA9IHByb3BlcnRpZXNbaV07XG4gICAgICBpZiAoIXByb3BlcnR5LmlzU2VyaWFsaXphYmxlIHx8ICFwcm9wZXJ0eS5pc0xvY2FsaXphYmxlKSBjb250aW51ZTtcbiAgICAgIGlmIChwcm9wZXJ0eS5yZWFkT25seSB8fCAhcHJvcGVydHkudmlzaWJsZSkgY29udGludWU7XG4gICAgICByZXMucHVzaChwcm9wZXJ0eSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBnZXRBcnJheVByb3BlcnRpZXMob2JqOiBhbnkpOiBBcnJheTxTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5PiB7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gU3VydmV5LlNlcmlhbGl6ZXIuZ2V0UHJvcGVydGllc0J5T2JqKG9iaik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW2ldO1xuICAgICAgaWYgKHByb3BlcnR5LmlzU2VyaWFsaXphYmxlID09PSBmYWxzZSkgY29udGludWU7XG4gICAgICB2YXIgdmFsdWUgPSBvYmpbcHJvcGVydHkubmFtZV07XG4gICAgICBpZiAoISF2YWx1ZSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlcy5wdXNoKHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGNyZWF0ZVRyYW5zbGF0aW9uSXRlbShvYmo6IGFueSwgcHJvcGVydHk6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpOiBUcmFuc2xhdGlvbkl0ZW0ge1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKG9iaiwgcHJvcGVydHkpO1xuICAgIGNvbnN0IGxvY1N0ciA9IDxTdXJ2ZXkuTG9jYWxpemFibGVTdHJpbmc+b2JqW3Byb3BlcnR5LnNlcmlhbGl6YXRpb25Qcm9wZXJ0eV07XG4gICAgaWYgKCFsb2NTdHIpIHJldHVybiBudWxsO1xuICAgIGlmICghdGhpcy5zaG93QWxsU3RyaW5ncyAmJiAhZGVmYXVsdFZhbHVlICYmIGxvY1N0ci5pc0VtcHR5KSByZXR1cm4gbnVsbDtcbiAgICBpZiAoISF0aGlzLnRyYW5zbGF0aW9uICYmICEhdGhpcy50cmFuc2xhdGlvbi5jYW5TaG93UHJvcGVydHkgJiYgIXRoaXMudHJhbnNsYXRpb24uY2FuU2hvd1Byb3BlcnR5KHRoaXMub2JqLCBwcm9wZXJ0eSwgbG9jU3RyLmlzRW1wdHkpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbmV3IFRyYW5zbGF0aW9uSXRlbShcbiAgICAgIHByb3BlcnR5Lm5hbWUsXG4gICAgICBsb2NTdHIsXG4gICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uLFxuICAgICAgb2JqXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIGdldERlZmF1bHRWYWx1ZShcbiAgICBvYmo6IGFueSxcbiAgICBwcm9wZXJ0eTogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eVxuICApOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgIHByb3BlcnR5Lm5hbWUgPT0gXCJ0aXRsZVwiICYmXG4gICAgICBwcm9wZXJ0eS5pc0xvY2FsaXphYmxlICYmXG4gICAgICAhIXByb3BlcnR5LnNlcmlhbGl6YXRpb25Qcm9wZXJ0eVxuICAgICkge1xuICAgICAgdmFyIGxvY1N0ciA9IDxTdXJ2ZXkuTG9jYWxpemFibGVTdHJpbmc+KFxuICAgICAgICBvYmpbcHJvcGVydHkuc2VyaWFsaXphdGlvblByb3BlcnR5XVxuICAgICAgKTtcbiAgICAgIGlmIChcbiAgICAgICAgISFsb2NTdHIgJiZcbiAgICAgICAgb2JqLmdldFR5cGUoKSAhPSBcInBhZ2VcIiAmJlxuICAgICAgICAoISFsb2NTdHIub25HZXRUZXh0Q2FsbGJhY2sgfHwgbG9jU3RyW1wib25SZW5kZXJlZEh0bWxDYWxsYmFja1wiXSlcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIG9ialtcIm5hbWVcIl07XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIHByaXZhdGUgaXNJdGVtVmFsdWVBcnJheSh2YWw6IGFueSkge1xuICAgIHJldHVybiAoXG4gICAgICAhIXZhbCAmJlxuICAgICAgQXJyYXkuaXNBcnJheSh2YWwpICYmXG4gICAgICB2YWwubGVuZ3RoID4gMCAmJlxuICAgICAgISF2YWxbMF0gJiZcbiAgICAgICEhdmFsWzBdW1wiZ2V0VHlwZVwiXSAmJlxuICAgICAgISF2YWxbMF1bXCJzZXREYXRhXCJdICYmXG4gICAgICAhIXZhbFswXVtcInNldExvY1RleHRcIl1cbiAgICApO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlR3JvdXBzKHZhbHVlOiBhbnksIHByb3BlcnR5OiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG9iaiA9IHZhbHVlW2ldO1xuICAgICAgaWYgKCEhb2JqICYmIG9iai5nZXRUeXBlKSB7XG4gICAgICAgIHZhciBuYW1lID0gb2JqW1wibmFtZVwiXTtcbiAgICAgICAgdmFyIHRleHQgPSBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0UHJvcGVydHlOYW1lKG5hbWUpO1xuICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSBcIltcIiArIGkudG9TdHJpbmcoKSArIFwiXVwiO1xuICAgICAgICAgIG5hbWUgPSBwcm9wZXJ0eS5uYW1lICsgaW5kZXg7XG4gICAgICAgICAgdGV4dCA9IGVkaXRvckxvY2FsaXphdGlvbi5nZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkubmFtZSkgKyBpbmRleDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZ3JvdXAgPSBuZXcgVHJhbnNsYXRpb25Hcm91cChuYW1lLCBvYmosIHRoaXMudHJhbnNsYXRpb24sIHRleHQpO1xuICAgICAgICBpZiAoZ3JvdXAuaGFzSXRlbXMpIHtcbiAgICAgICAgICB0aGlzLml0ZW1WYWx1ZXMucHVzaChncm91cCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVJdGVtVmFsdWVzKCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vYmoubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB2YWwgPSB0aGlzLm9ialtpXTtcbiAgICAgIHZhciBjYW5BZGQgPVxuICAgICAgICB0aGlzLnNob3dBbGxTdHJpbmdzIHx8ICF2YWwubG9jVGV4dC5pc0VtcHR5IHx8IGlzTmFOKHZhbC52YWx1ZSk7XG4gICAgICBpZiAoIWNhbkFkZCkgY29udGludWU7XG4gICAgICB2YXIgaXRlbSA9IG5ldyBUcmFuc2xhdGlvbkl0ZW0oXG4gICAgICAgIHZhbC52YWx1ZSxcbiAgICAgICAgdmFsLmxvY1RleHQsXG4gICAgICAgIHZhbC52YWx1ZSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbixcbiAgICAgICAgdmFsXG4gICAgICApO1xuICAgICAgdGhpcy5pdGVtVmFsdWVzLnB1c2goaXRlbSk7XG4gICAgICB0aGlzLmFkZEN1c3RvbVByb3BlcnRpZXNGb3JJdGVtVmFsdWUodGhpcy5vYmpbaV0sIGl0ZW0pO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGFkZEN1c3RvbVByb3BlcnRpZXNGb3JJdGVtVmFsdWUoXG4gICAgaXRlbVZhbHVlOiBhbnksXG4gICAgdGV4dEl0ZW06IFRyYW5zbGF0aW9uSXRlbVxuICApIHtcbiAgICB2YXIgbG9jUHJvcGVydGllcyA9IHRoaXMuZ2V0TG9jYWxpemVkUHJvcGVydGllcyhpdGVtVmFsdWUpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9jUHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGxvY1Byb3BlcnRpZXNbaV0ubmFtZSA9PSBcInRleHRcIikgY29udGludWU7XG4gICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlVHJhbnNsYXRpb25JdGVtKGl0ZW1WYWx1ZSwgbG9jUHJvcGVydGllc1tpXSk7XG4gICAgICBpZiAoISFpdGVtKSB7XG4gICAgICAgIGl0ZW0uY3VzdG9tVGV4dCA9IHRleHRJdGVtLnRleHQgKyBcIiAoXCIgKyBpdGVtLmxvY2FsaXphYmxlTmFtZSArIFwiKVwiO1xuICAgICAgICBpdGVtLm5hbWUgPSBpdGVtVmFsdWUudmFsdWUgKyBcIi5cIiArIGl0ZW0ubmFtZTtcbiAgICAgICAgdGhpcy5pdGVtVmFsdWVzLnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbiBpbXBsZW1lbnRzIElUcmFuc2xhdGlvbkxvY2FsZXMge1xuICBwdWJsaWMgc3RhdGljIGNzdkRlbGltaXRlciA9IFwiLFwiO1xuICBwdWJsaWMgc3RhdGljIG5ld0xpbmVEZWxpbWl0ZXIgPSBcIlxcblwiO1xuICBwdWJsaWMga29Mb2NhbGVzOiBhbnk7XG4gIHB1YmxpYyBrb1Jvb3Q6IGFueTtcbiAgcHVibGljIGtvQXZhaWxhYmxlTGFuZ3VhZ2VzOiBhbnk7XG4gIHB1YmxpYyBrb1NlbGVjdGVkTGFuZ3VhZ2VUb0FkZDogYW55O1xuICBwdWJsaWMga29TaG93QWxsU3RyaW5nczogYW55O1xuICBwdWJsaWMga29GaWx0ZXJlZFBhZ2U6IGFueTtcbiAgcHVibGljIGtvRmlsdGVyZWRQYWdlczogYW55O1xuICBwdWJsaWMga29Jc0VtcHR5OiBhbnk7XG4gIHB1YmxpYyBrb0V4cG9ydFRvQ1NWRmlsZTogYW55O1xuICBwdWJsaWMga29JbXBvcnRGcm9tQ1NWRmlsZTogYW55O1xuICBwdWJsaWMga29DYW5NZXJnZUxvY2FsZVdpdGhEZWZhdWx0OiBhbnk7XG4gIHB1YmxpYyBrb01lcmdlTG9jYWxlV2l0aERlZmF1bHQ6IGFueTtcbiAgcHVibGljIGtvTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdFRleHQ6IGFueTtcbiAgcHVibGljIGltcG9ydEZpbmlzaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gIHB1YmxpYyB0cmFuc2xhdGVJdGVtQWZ0ZXJSZW5kZXJDYWxsYmFjazogKFxuICAgIGl0ZW06IFRyYW5zbGF0aW9uSXRlbSxcbiAgICBlbDogYW55LFxuICAgIGxvY2FsZTogc3RyaW5nXG4gICkgPT4gdm9pZDtcbiAgcHVibGljIGF2YWlsYWJsZVRyYW5sYXRpb25zQ2hhbmdlZENhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgdHJhbmxhdGlvbkNoYW5nZWRDYWxsYmFjazogKFxuICAgIGxvY2FsZTogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIGNvbnRleHQ6IGFueVxuICApID0+IHZvaWQ7XG4gIHB1YmxpYyB0cmFuc2xhdGlvblN0cmluZ1Zpc2liaWxpdHlDYWxsYmFjazogKG9iajogU3VydmV5LkJhc2UsIHByb3BlcnR5TmFtZTogc3RyaW5nLCB2aXNpYmxlOiBib29sZWFuKSA9PiBib29sZWFuO1xuICBwcml2YXRlIHJvb3RWYWx1ZTogVHJhbnNsYXRpb25Hcm91cDtcbiAgcHJpdmF0ZSBzdXJ2ZXlWYWx1ZTogU3VydmV5LlN1cnZleTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgdG9vbGJhciBpdGVtcy4gWW91IG1heSBhZGQvcmVtb3ZlL3JlcGxhY2UgdGhlbS5cbiAgICogQHNlZSBJQWN0aW9uXG4gICAqL1xuICBwdWJsaWMgdG9vbGJhckl0ZW1zID0ga28ub2JzZXJ2YWJsZUFycmF5PElBY3Rpb24+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3VydmV5OiBTdXJ2ZXkuU3VydmV5LFxuICAgIHNob3dBbGxTdHJpbmdzOiBib29sZWFuID0gZmFsc2UsXG4gICAgcHVibGljIGtvUmVhZE9ubHkgPSBrby5jb21wdXRlZCgoKSA9PiBmYWxzZSksXG4gICAgcHJpdmF0ZSBvbkNhblNob3dQcm9wZXJ0eT86IChvYmo6IFN1cnZleS5CYXNlLCBwcm9wOiBTdXJ2ZXkuSnNvbk9iamVjdFByb3BlcnR5KSA9PiBib29sZWFuLFxuICAgIHByaXZhdGUgb25Mb2NhbGVTZWxlY3RlZD86IChsb2NhbGU6IHN0cmluZykgPT4gYm9vbGVhblxuICApIHtcbiAgICB0aGlzLmtvTG9jYWxlcyA9IGtvLm9ic2VydmFibGVBcnJheShbXG4gICAgICB7XG4gICAgICAgIGxvY2FsZTogXCJcIixcbiAgICAgICAga29WaXNpYmxlOiBrby5vYnNlcnZhYmxlKHRydWUpLFxuICAgICAgICBrb0VuYWJsZWQ6IGtvLm9ic2VydmFibGUodHJ1ZSksXG4gICAgICB9LFxuICAgIF0pO1xuICAgIHRoaXMua29Sb290ID0ga28ub2JzZXJ2YWJsZShudWxsKTtcbiAgICB0aGlzLmtvU2hvd0FsbFN0cmluZ3MgPSBrby5vYnNlcnZhYmxlKHNob3dBbGxTdHJpbmdzKTtcbiAgICB0aGlzLmtvSXNFbXB0eSA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG4gICAgdGhpcy5rb0F2YWlsYWJsZUxhbmd1YWdlcyA9IGtvLm9ic2VydmFibGVBcnJheSgpO1xuICAgIHRoaXMua29TZWxlY3RlZExhbmd1YWdlVG9BZGQgPSBrby5vYnNlcnZhYmxlKG51bGwpO1xuICAgIHRoaXMua29GaWx0ZXJlZFBhZ2UgPSBrby5vYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5rb0Nhbk1lcmdlTG9jYWxlV2l0aERlZmF1bHQgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgICB0aGlzLmtvTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdFRleHQgPSBrby5jb21wdXRlZChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIXRoaXMua29DYW5NZXJnZUxvY2FsZVdpdGhEZWZhdWx0KCkpIHJldHVybiBcIlwiO1xuICAgICAgdmFyIGxvY1RleHQgPSB0aGlzLmdldExvY2FsZU5hbWUodGhpcy5kZWZhdWx0TG9jYWxlKTtcbiAgICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiZWQudHJhbnNsYXRpb25NZXJnZUxvY2FsZVdpdGhEZWZhdWx0XCIpW1wiZm9ybWF0XCJdKGxvY1RleHQpO1xuICAgIH0sIHRoaXMpO1xuICAgIHRoaXMua29GaWx0ZXJlZFBhZ2VzID0ga28ub2JzZXJ2YWJsZUFycmF5KFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgIHRleHQ6IHRoaXMuc2hvd0FsbFBhZ2VzVGV4dCxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMua29TZWxlY3RlZExhbmd1YWdlVG9BZGQuc3Vic2NyaWJlKGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgaWYgKCEhbmV3VmFsdWUpIHtcbiAgICAgICAgc2VsZi5hZGRMb2NhbGUobmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMua29TaG93QWxsU3RyaW5ncy5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICBzZWxmLnJlc2V0KCk7XG4gICAgfSk7XG4gICAgdGhpcy5rb0ZpbHRlcmVkUGFnZS5zdWJzY3JpYmUoZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICBzZWxmLnJlc2V0KCk7XG4gICAgfSk7XG4gICAgdGhpcy5rb0V4cG9ydFRvQ1NWRmlsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNlbGYuZXhwb3J0VG9TQ1ZGaWxlKFwic3VydmV5X3RyYW5zbGF0aW9uLmNzdlwiKTtcbiAgICB9O1xuICAgIHRoaXMua29JbXBvcnRGcm9tQ1NWRmlsZSA9IGZ1bmN0aW9uIChlbCkge1xuICAgICAgaWYgKGVsLmZpbGVzLmxlbmd0aCA8IDEpIHJldHVybjtcbiAgICAgIHNlbGYuaW1wb3J0RnJvbUNTVkZpbGUoZWwuZmlsZXNbMF0pO1xuICAgICAgZWwudmFsdWUgPSBcIlwiO1xuICAgIH07XG4gICAgdGhpcy5rb01lcmdlTG9jYWxlV2l0aERlZmF1bHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLm1lcmdlTG9jYWxlV2l0aERlZmF1bHQoKTtcbiAgICB9O1xuICAgIHRoaXMuc3VydmV5ID0gc3VydmV5O1xuXG4gICAgY29uc3QgaXRlbXM6IEFycmF5PElBY3Rpb24+ID0gW107XG4gICAgaXRlbXMucHVzaCg8SUFjdGlvbj57XG4gICAgICBpZDogXCJzdmQtdHJhbnNsYXRpb24tbGFuZ3VhZ2Utc2VsZWN0b3JcIixcbiAgICAgIHRpdGxlOiBcIlwiLFxuICAgICAgdG9vbHRpcDogdGhpcy5zZWxlY3RMYW5ndWFnZU9wdGlvbnNDYXB0aW9uLFxuICAgICAgYXJpYUxhYmVsOiB0aGlzLnNlbGVjdExhbmd1YWdlT3B0aW9uc0NhcHRpb24sXG4gICAgICBjb21wb25lbnQ6IFwic3ZkLWRyb3Bkb3duXCIsXG4gICAgICBhY3Rpb246IGtvLmNvbXB1dGVkKHtcbiAgICAgICAgcmVhZDogKCkgPT4gdGhpcy5rb1NlbGVjdGVkTGFuZ3VhZ2VUb0FkZCgpLFxuICAgICAgICB3cml0ZTogKHZhbDogYW55KSA9PiB0aGlzLmtvU2VsZWN0ZWRMYW5ndWFnZVRvQWRkKHZhbCksXG4gICAgICB9KSxcbiAgICAgIGl0ZW1zOiA8YW55PnRoaXMua29BdmFpbGFibGVMYW5ndWFnZXMsXG4gICAgfSk7XG4gICAgaXRlbXMucHVzaCh7XG4gICAgICBpZDogXCJzdmQtdHJhbnNsYXRpb24tc2hvdy1hbGwtc3RyaW5nc1wiLFxuICAgICAgdGl0bGU6IHRoaXMuc2hvd0FsbFN0cmluZ3NUZXh0LFxuICAgICAgdG9vbHRpcDogdGhpcy5zaG93QWxsU3RyaW5nc1RleHQsXG4gICAgICBjb21wb25lbnQ6IFwic3ZkLWJvb2xlYW5cIixcbiAgICAgIGFjdGlvbjoga28uY29tcHV0ZWQoe1xuICAgICAgICByZWFkOiAoKSA9PiB0aGlzLmtvU2hvd0FsbFN0cmluZ3MoKSxcbiAgICAgICAgd3JpdGU6ICh2YWw6IGFueSkgPT4gdGhpcy5rb1Nob3dBbGxTdHJpbmdzKHZhbCksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICBpdGVtcy5wdXNoKDxJQWN0aW9uPntcbiAgICAgIGlkOiBcInN2ZC10cmFuc2xhdGlvbi1wYWdlcy1zZWxlY3RvclwiLFxuICAgICAgdGl0bGU6IFwiXCIsXG4gICAgICB0b29sdGlwOiBcIlwiLFxuICAgICAgYXJpYUxhYmVsOiB0aGlzLnNob3dBbGxQYWdlc1RleHQsXG4gICAgICBjb21wb25lbnQ6IFwic3ZkLWRyb3Bkb3duXCIsXG4gICAgICBhY3Rpb246IGtvLmNvbXB1dGVkKHtcbiAgICAgICAgcmVhZDogKCkgPT4gdGhpcy5rb0ZpbHRlcmVkUGFnZSgpLFxuICAgICAgICB3cml0ZTogKHZhbDogYW55KSA9PiB0aGlzLmtvRmlsdGVyZWRQYWdlKHZhbCksXG4gICAgICB9KSxcbiAgICAgIGl0ZW1zOiB0aGlzLmtvRmlsdGVyZWRQYWdlcyxcbiAgICB9KTtcblxuICAgIHRoaXMudG9vbGJhckl0ZW1zKGl0ZW1zKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHN1cnZleSgpOiBTdXJ2ZXkuU3VydmV5IHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXlWYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHN1cnZleSh2YWw6IFN1cnZleS5TdXJ2ZXkpIHtcbiAgICB0aGlzLnN1cnZleVZhbHVlID0gdmFsO1xuICAgIHRoaXMudXBkYXRlRmlsdGVyZWRQYWdlcygpO1xuICAgIHRoaXMucmVzZXQoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJvb3QoKTogVHJhbnNsYXRpb25Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMucm9vdFZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgZmlsdGVyZWRQYWdlKCk6IFN1cnZleS5QYWdlIHtcbiAgICByZXR1cm4gdGhpcy5rb0ZpbHRlcmVkUGFnZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgZmlsdGVyZWRQYWdlKHZhbDogU3VydmV5LlBhZ2UpIHtcbiAgICB0aGlzLmtvRmlsdGVyZWRQYWdlKHZhbCk7XG4gIH1cbiAgcHVibGljIHJlc2V0KCkge1xuICAgIHZhciByb290T2JqID0gISF0aGlzLmZpbHRlcmVkUGFnZSA/IHRoaXMuZmlsdGVyZWRQYWdlIDogdGhpcy5zdXJ2ZXk7XG4gICAgdmFyIHJvb3ROYW1lID0gISF0aGlzLmZpbHRlcmVkUGFnZSA/IHJvb3RPYmpbXCJuYW1lXCJdIDogXCJzdXJ2ZXlcIjtcbiAgICB0aGlzLnJvb3RWYWx1ZSA9IG5ldyBUcmFuc2xhdGlvbkdyb3VwKHJvb3ROYW1lLCByb290T2JqLCB0aGlzKTtcbiAgICB0aGlzLnJvb3Quc2V0QXNSb290KCk7XG4gICAgdGhpcy5yb290LnJlc2V0KCk7XG4gICAgdGhpcy5yZXNldExvY2FsZXMoKTtcbiAgICB0aGlzLmtvSXNFbXB0eSghdGhpcy5yb290Lmhhc0l0ZW1zKTtcbiAgICB0aGlzLmtvUm9vdCh0aGlzLnJvb3QpO1xuICB9XG4gIHB1YmxpYyBnZXQgbG9jYWxlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIGxvY2FsZXMgPSB0aGlzLmtvTG9jYWxlcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzLnB1c2gobG9jYWxlc1tpXS5sb2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHB1YmxpYyBnZXQgZGVmYXVsdExvY2FsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdXJ2ZXkuc3VydmV5TG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGU7XG4gIH1cbiAgcHVibGljIGdldExvY2FsZU5hbWUobG9jOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldExvY2FsZU5hbWUobG9jLCB0aGlzLmRlZmF1bHRMb2NhbGUpO1xuICB9XG4gIHB1YmxpYyBoYXNMb2NhbGUobG9jYWxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB2YXIgbG9jYWxlcyA9IHRoaXMua29Mb2NhbGVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAobG9jYWxlc1tpXS5sb2NhbGUgPT0gbG9jYWxlKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBhZGRMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuaGFzTG9jYWxlKGxvY2FsZSkpIHtcbiAgICAgIHZhciBsb2NzID0gdGhpcy5sb2NhbGVzO1xuICAgICAgbG9jcy5wdXNoKGxvY2FsZSk7XG4gICAgICB0aGlzLnNldExvY2FsZXMobG9jcyk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyByZXNldExvY2FsZXMoKSB7XG4gICAgdmFyIGxvY2FsZXMgPSBbXCJcIl07XG4gICAgdGhpcy5yb290LmZpbGxMb2NhbGVzKGxvY2FsZXMpO1xuICAgIHRoaXMuc2V0TG9jYWxlcyhsb2NhbGVzKTtcbiAgfVxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRMb2NhbGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgbG9jcyA9IHRoaXMua29Mb2NhbGVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2NzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAobG9jc1tpXS5rb1Zpc2libGUoKSkgcmVzLnB1c2gobG9jc1tpXS5sb2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHB1YmxpYyBzZXRTZWxlY3RlZExvY2FsZXMoc2VsZWN0ZWRMb2NhbGVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgc2VsZWN0ZWRMb2NhbGVzID0gc2VsZWN0ZWRMb2NhbGVzIHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0ZWRMb2NhbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIXRoaXMuaGFzTG9jYWxlKHNlbGVjdGVkTG9jYWxlc1tpXSkpIHtcbiAgICAgICAgdGhpcy5hZGRMb2NhbGUoc2VsZWN0ZWRMb2NhbGVzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciBsb2NzID0gdGhpcy5rb0xvY2FsZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvY3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbmFibGVkID0gdGhpcy5pc0xvY2FsZUVuYWJsZWQobG9jc1tpXS5sb2NhbGUpO1xuICAgICAgbG9jc1tpXS5rb1Zpc2libGUoXG4gICAgICAgIGVuYWJsZWQgJiYgc2VsZWN0ZWRMb2NhbGVzLmluZGV4T2YobG9jc1tpXS5sb2NhbGUpID4gLTFcbiAgICAgICk7XG4gICAgICBsb2NzW2ldLmtvRW5hYmxlZChlbmFibGVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdExhbmd1YWdlT3B0aW9uc0NhcHRpb24oKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJlZC50cmFuc2xhdGlvbkFkZExhbmd1YWdlXCIpO1xuICB9XG4gIHB1YmxpYyBjYW5TaG93UHJvcGVydHkob2JqOiBTdXJ2ZXkuQmFzZSwgcHJvcDogU3VydmV5Lkpzb25PYmplY3RQcm9wZXJ0eSwgaXNFbXB0eTogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlc3VsdCA9ICFpc0VtcHR5IHx8ICF0aGlzLm9uQ2FuU2hvd1Byb3BlcnR5IHx8IHRoaXMub25DYW5TaG93UHJvcGVydHkob2JqLCBwcm9wKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblN0cmluZ1Zpc2liaWxpdHlDYWxsYmFjayA/IHRoaXMudHJhbnNsYXRpb25TdHJpbmdWaXNpYmlsaXR5Q2FsbGJhY2sob2JqLCBwcm9wLm5hbWUsIHJlc3VsdCkgOiByZXN1bHQ7XG4gIH1cbiAgcHVibGljIGdldCBzaG93QWxsU3RyaW5ncygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5rb1Nob3dBbGxTdHJpbmdzKCk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93QWxsU3RyaW5ncyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmtvU2hvd0FsbFN0cmluZ3ModmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNob3dBbGxTdHJpbmdzVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiZWQudHJhbnNsYXRpb25TaG93QWxsU3RyaW5nc1wiKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNob3dBbGxQYWdlc1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcImVkLnRyYW5zbGF0aW9uU2hvd0FsbFBhZ2VzXCIpO1xuICB9XG4gIHB1YmxpYyBnZXQgbm9TdHJpbmdzVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiZWQudHJhbnNsYXRpb25Ob1N0cmluZ3NcIik7XG4gIH1cbiAgcHVibGljIGdldCBleHBvcnRUb0NTVlRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcImVkLnRyYW5zbGF0aW9uRXhwb3J0VG9TQ1ZCdXR0b25cIik7XG4gIH1cbiAgcHVibGljIGdldCBpbXBvcnRGcm9tQ1NWVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiZWQudHJhbnNsYXRpb25JbXBvcnRGcm9tU0NWQnV0dG9uXCIpO1xuICB9XG4gIHB1YmxpYyBleHBvcnRUb0NTVigpOiBzdHJpbmcge1xuICAgIGxldCByZXMgPSBbXTtcbiAgICBsZXQgaGVhZGVyUm93ID0gW107XG4gICAgbGV0IHZpc2libGVMb2NhbGVzID0gdGhpcy5nZXRWaXNpYmxlTG9jYWxlcygpO1xuICAgIGhlYWRlclJvdy5wdXNoKFwiZGVzY3JpcHRpb24g4oaTIC0gbGFuZ3VhZ2Ug4oaSXCIpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlzaWJsZUxvY2FsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGhlYWRlclJvdy5wdXNoKCEhdmlzaWJsZUxvY2FsZXNbaV0gPyB2aXNpYmxlTG9jYWxlc1tpXSA6IFwiZGVmYXVsdFwiKTtcbiAgICB9XG4gICAgcmVzLnB1c2goaGVhZGVyUm93KTtcbiAgICBsZXQgaXRlbXNIYXNoID0gPFN1cnZleS5IYXNoVGFibGU8VHJhbnNsYXRpb25JdGVtPj57fTtcbiAgICB0aGlzLmZpbGxJdGVtc0hhc2goXCJcIiwgdGhpcy5yb290LCBpdGVtc0hhc2gpO1xuICAgIGZvciAobGV0IGtleSBpbiBpdGVtc0hhc2gpIHtcbiAgICAgIGxldCByb3cgPSBba2V5XTtcbiAgICAgIGxldCBpdGVtID0gaXRlbXNIYXNoW2tleV07XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpc2libGVMb2NhbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCB2YWwgPSBpdGVtLmxvY1N0cmluZy5nZXRMb2NhbGVUZXh0KHZpc2libGVMb2NhbGVzW2ldKTtcbiAgICAgICAgcm93LnB1c2goIXZhbCAmJiBpID09IDAgPyBpdGVtLmRlZmF1bHRWYWx1ZSA6IHZhbCk7XG4gICAgICB9XG4gICAgICByZXMucHVzaChyb3cpO1xuICAgIH1cbiAgICBsZXQgcHJlZml4ID0gc2V0dGluZ3MudHJhc2xhdGlvbi5leHBvcnRQcmVmaXg7XG4gICAgaWYgKCFwcmVmaXgpIHByZWZpeCA9IFwiXCI7XG4gICAgcmV0dXJuIChcbiAgICAgIHByZWZpeCArXG4gICAgICB1bnBhcnNlKHJlcywge1xuICAgICAgICBxdW90ZUNoYXI6ICdcIicsXG4gICAgICAgIGVzY2FwZUNoYXI6ICdcIicsXG4gICAgICAgIGRlbGltaXRlcjogVHJhbnNsYXRpb24uY3N2RGVsaW1pdGVyLFxuICAgICAgICBoZWFkZXI6IHRydWUsXG4gICAgICAgIG5ld2xpbmU6IFRyYW5zbGF0aW9uLm5ld0xpbmVEZWxpbWl0ZXIsXG4gICAgICAgIHNraXBFbXB0eUxpbmVzOiBmYWxzZSwgLy9vciAnZ3JlZWR5JyxcbiAgICAgICAgY29sdW1uczogbnVsbCwgLy9vciBhcnJheSBvZiBzdHJpbmdzXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW1wb3J0RnJvbU5lc3RlZEFycmF5KHJvd3M6IHN0cmluZ1tdW10pIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgbGV0IGxvY2FsZXMgPSByb3dzLnNoaWZ0KCkuc2xpY2UoMSk7XG4gICAgaWYgKGxvY2FsZXNbMF0gPT09IFwiZGVmYXVsdFwiKSB7XG4gICAgICBsb2NhbGVzWzBdID0gXCJcIjtcbiAgICB9XG4gICAgbGV0IHRyYW5zbGF0aW9uID0gbmV3IFRyYW5zbGF0aW9uKHRoaXMuc3VydmV5LCB0cnVlKTtcbiAgICBsZXQgaXRlbXNIYXNoID0gPFN1cnZleS5IYXNoVGFibGU8VHJhbnNsYXRpb25JdGVtPj57fTtcbiAgICB0aGlzLmZpbGxJdGVtc0hhc2goXCJcIiwgdHJhbnNsYXRpb24ucm9vdCwgaXRlbXNIYXNoKTtcbiAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgbGV0IG5hbWUgPSByb3cuc2hpZnQoKS50cmltKCk7XG4gICAgICBpZiAoIW5hbWUpIHJldHVybjtcbiAgICAgIGxldCBpdGVtID0gaXRlbXNIYXNoW25hbWVdO1xuICAgICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgICBzZWxmLnVwZGF0ZUl0ZW1XaXRoU3RyaW5ncyhpdGVtLCByb3csIGxvY2FsZXMpO1xuICAgIH0pO1xuICAgIHRoaXMucmVzZXQoKTtcbiAgICBpZiAodGhpcy5pbXBvcnRGaW5pc2hlZENhbGxiYWNrKSB0aGlzLmltcG9ydEZpbmlzaGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBleHBvcnRUb1NDVkZpbGUoZmlsZU5hbWU6IHN0cmluZykge1xuICAgIHZhciBkYXRhID0gdGhpcy5leHBvcnRUb0NTVigpO1xuICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6IFwidGV4dC9jc3ZcIiB9KTtcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvcltcIm1zU2F2ZU9yT3BlbkJsb2JcIl0pIHtcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3JbXCJtc1NhdmVCbG9iXCJdKGJsb2IsIGZpbGVOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGVsZW0gPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgICBlbGVtLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgIGVsZW0uZG93bmxvYWQgPSBmaWxlTmFtZTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbSk7XG4gICAgICBlbGVtLmNsaWNrKCk7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgaW1wb3J0RnJvbUNTVkZpbGUoZmlsZTogRmlsZSkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBwYXJzZShmaWxlLCB7XG4gICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKHJlc3VsdHMsIGZpbGUpIHtcbiAgICAgICAgc2VsZi5pbXBvcnRGcm9tTmVzdGVkQXJyYXkoPHN0cmluZ1tdW10+cmVzdWx0cy5kYXRhKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIG1lcmdlTG9jYWxlV2l0aERlZmF1bHQoKSB7XG4gICAgaWYgKCF0aGlzLmhhc0xvY2FsZSh0aGlzLmRlZmF1bHRMb2NhbGUpKSByZXR1cm47XG4gICAgdGhpcy5yb290Lm1lcmdlTG9jYWxlV2l0aERlZmF1bHQodGhpcy5kZWZhdWx0TG9jYWxlKTtcbiAgICB0aGlzLmtvTG9jYWxlcyhbXG4gICAgICB7XG4gICAgICAgIGxvY2FsZTogXCJcIixcbiAgICAgICAga29WaXNpYmxlOiBrby5vYnNlcnZhYmxlKHRydWUpLFxuICAgICAgICBrb0VuYWJsZWQ6IGtvLm9ic2VydmFibGUodHJ1ZSksXG4gICAgICB9LFxuICAgIF0pO1xuICAgIHRoaXMucmVzZXQoKTtcbiAgfVxuICBwdWJsaWMgZXhwYW5kQWxsKCkge1xuICAgIGlmICghdGhpcy5yb290KSByZXR1cm47XG4gICAgdGhpcy5yb290LmV4cGFuZEFsbCgpO1xuICB9XG4gIHB1YmxpYyBjb2xsYXBzZUFsbCgpIHtcbiAgICBpZiAoIXRoaXMucm9vdCkgcmV0dXJuO1xuICAgIHRoaXMucm9vdC5jb2xsYXBzZUFsbCgpO1xuICB9XG4gIHRyYW5zbGF0ZUl0ZW1BZnRlclJlbmRlcihpdGVtOiBUcmFuc2xhdGlvbkl0ZW0sIGVsOiBhbnksIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnRyYW5zbGF0ZUl0ZW1BZnRlclJlbmRlckNhbGxiYWNrKSByZXR1cm47XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZWwpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChlbFtpXS50YWdOYW1lID09IFwiVEVYVEFSRUFcIikge1xuICAgICAgICAgIGVsID0gZWxbaV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50cmFuc2xhdGVJdGVtQWZ0ZXJSZW5kZXJDYWxsYmFjayhpdGVtLCBlbCwgbG9jYWxlKTtcbiAgfVxuICAvKipcbiAgICogVXBkYXRlIGEgdHJhbnNsYXRpb24gaXRlbSB3aXRoIGdpdmVuIHZhbHVlc1xuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVJdGVtV2l0aFN0cmluZ3MoXG4gICAgaXRlbTogVHJhbnNsYXRpb25JdGVtLFxuICAgIHZhbHVlczogQXJyYXk8c3RyaW5nPixcbiAgICBsb2NhbGVzOiBBcnJheTxzdHJpbmc+XG4gICkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aCAmJiBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHZhbCA9IHZhbHVlc1tpXS50cmltKCk7XG4gICAgICBpZiAoIXZhbCkgY29udGludWU7XG4gICAgICBpdGVtLmtvVmFsdWUobG9jYWxlc1tpXSkodmFsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFZpc2libGVMb2NhbGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmtvTG9jYWxlcygpXG4gICAgICAuZmlsdGVyKChsb2NhbGUpID0+IGxvY2FsZS5rb1Zpc2libGUoKSlcbiAgICAgIC5tYXAoKGxvY2FsZSkgPT4gbG9jYWxlLmxvY2FsZSk7XG4gIH1cblxuICBwcml2YXRlIGZpbGxJdGVtc0hhc2goXG4gICAgcGFyZW50TmFtZTogc3RyaW5nLFxuICAgIGdyb3VwOiBUcmFuc2xhdGlvbkdyb3VwLFxuICAgIGl0ZW1zSGFzaDogU3VydmV5Lkhhc2hUYWJsZTxUcmFuc2xhdGlvbkl0ZW0+XG4gICkge1xuICAgIGxldCBuYW1lID0gcGFyZW50TmFtZSA/IHBhcmVudE5hbWUgKyBcIi5cIiArIGdyb3VwLm5hbWUgOiBncm91cC5uYW1lO1xuICAgIGdyb3VwLmxvY0l0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW1zSGFzaFtuYW1lICsgXCIuXCIgKyBpdGVtLm5hbWVdID0gaXRlbTtcbiAgICB9KTtcbiAgICBncm91cC5ncm91cHMuZm9yRWFjaCgoZ3JvdXApID0+IHRoaXMuZmlsbEl0ZW1zSGFzaChuYW1lLCBncm91cCwgaXRlbXNIYXNoKSk7XG4gIH1cbiAgcHJpdmF0ZSBzZXRMb2NhbGVzKGxvY3M6IEFycmF5PHN0cmluZz4pIHtcbiAgICB2YXIgbG9jYWxlcyA9IHRoaXMua29Mb2NhbGVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2NzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgbG9jID0gbG9jc1tpXTtcbiAgICAgIGlmICh0aGlzLmhhc0xvY2FsZShsb2MpKSBjb250aW51ZTtcbiAgICAgIGxldCBlbmFibGVkID0gdGhpcy5pc0xvY2FsZUVuYWJsZWQobG9jKTtcbiAgICAgIGxldCBzZWxlY3RlZCA9IGVuYWJsZWQgJiYgKCF0aGlzLm9uTG9jYWxlU2VsZWN0ZWQgfHwgdGhpcy5vbkxvY2FsZVNlbGVjdGVkKGxvYykpO1xuICAgICAgbG9jYWxlcy5wdXNoKHtcbiAgICAgICAgbG9jYWxlOiBsb2MsXG4gICAgICAgIGtvVmlzaWJsZToga28ub2JzZXJ2YWJsZShzZWxlY3RlZCksXG4gICAgICAgIGtvRW5hYmxlZDoga28ub2JzZXJ2YWJsZShlbmFibGVkKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmtvTG9jYWxlcyhsb2NhbGVzKTtcbiAgICB0aGlzLmtvQ2FuTWVyZ2VMb2NhbGVXaXRoRGVmYXVsdCh0aGlzLmhhc0xvY2FsZSh0aGlzLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB0aGlzLnVwZGF0ZUF2YWlsYWJsZVRyYW5sYXRpb25zKCk7XG4gIH1cbiAgcHJpdmF0ZSBpc0xvY2FsZUVuYWJsZWQobG9jYWxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIWxvY2FsZSkgcmV0dXJuIHRydWU7XG4gICAgdmFyIHN1cHBvcnRlZCA9IFN1cnZleS5zdXJ2ZXlMb2NhbGl6YXRpb24uc3VwcG9ydGVkTG9jYWxlcztcbiAgICBpZiAoIXN1cHBvcnRlZCB8fCBzdXBwb3J0ZWQubGVuZ3RoIDw9IDApIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBzdXBwb3J0ZWQuaW5kZXhPZihsb2NhbGUpID4gLTE7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVBdmFpbGFibGVUcmFubGF0aW9ucygpIHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIGxvY2FsZXMgPSAoPGFueT5TdXJ2ZXkuc3VydmV5TG9jYWxpemF0aW9uKS5nZXRMb2NhbGVzKHRydWUpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGxvYyA9IGxvY2FsZXNbaV07XG4gICAgICBpZiAoIWxvYykgY29udGludWU7XG4gICAgICBpZiAodGhpcy5oYXNMb2NhbGUobG9jKSkgY29udGludWU7XG4gICAgICBpZiAobG9jID09IHRoaXMuZGVmYXVsdExvY2FsZSkgY29udGludWU7XG4gICAgICByZXMucHVzaCh7IHZhbHVlOiBsb2MsIHRleHQ6IGVkaXRvckxvY2FsaXphdGlvbi5nZXRMb2NhbGVOYW1lKGxvYykgfSk7XG4gICAgfVxuICAgIHRoaXMua29TZWxlY3RlZExhbmd1YWdlVG9BZGQobnVsbCk7XG4gICAgcmVzLnVuc2hpZnQoeyB2YWx1ZTogbnVsbCwgdGV4dDogdGhpcy5zZWxlY3RMYW5ndWFnZU9wdGlvbnNDYXB0aW9uIH0pO1xuICAgIHRoaXMua29BdmFpbGFibGVMYW5ndWFnZXMocmVzKTtcbiAgICAhIXRoaXMuYXZhaWxhYmxlVHJhbmxhdGlvbnNDaGFuZ2VkQ2FsbGJhY2sgJiZcbiAgICAgIHRoaXMuYXZhaWxhYmxlVHJhbmxhdGlvbnNDaGFuZ2VkQ2FsbGJhY2soKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZUZpbHRlcmVkUGFnZXMoKSB7XG4gICAgdmFyIHJlcyA9IFt7IHZhbHVlOiBudWxsLCB0ZXh0OiB0aGlzLnNob3dBbGxQYWdlc1RleHQgfV07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN1cnZleS5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHBhZ2UgPSB0aGlzLnN1cnZleS5wYWdlc1tpXTtcbiAgICAgIHJlcy5wdXNoKHsgdmFsdWU6IHBhZ2UsIHRleHQ6IHBhZ2UubmFtZSB9KTtcbiAgICB9XG4gICAgdGhpcy5rb0ZpbHRlcmVkUGFnZXMocmVzKTtcbiAgfVxuICBkaXNwb3NlKCkge1xuICAgIHRoaXMuaW1wb3J0RmluaXNoZWRDYWxsYmFjayA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmF2YWlsYWJsZVRyYW5sYXRpb25zQ2hhbmdlZENhbGxiYWNrID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudHJhbmxhdGlvbkNoYW5nZWRDYWxsYmFjayA9IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25WaWV3TW9kZWwge1xuICBwdWJsaWMgbW9kZWw6IFRyYW5zbGF0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKGNyZWF0b3I6IFN1cnZleUNyZWF0b3IpIHtcbiAgICB0aGlzLm1vZGVsID0gbmV3IFRyYW5zbGF0aW9uKFxuICAgICAgY3JlYXRvci5zdXJ2ZXksXG4gICAgICBmYWxzZSxcbiAgICAgIGtvLmNvbXB1dGVkKCgpID0+IGNyZWF0b3IucmVhZE9ubHkpLFxuICAgICAgKG9iajogU3VydmV5LkJhc2UsIHByb3A6IFN1cnZleS5Kc29uT2JqZWN0UHJvcGVydHkpOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIFN1cnZleUhlbHBlci5pc1Byb3BlcnR5VmlzaWJsZShvYmosIHByb3AsIGNyZWF0b3IpO1xuICAgICAgfSxcbiAgICAgIChsb2NhbGU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBsZXQgb3B0aW9ucyA9IHsgbG9jYWxlOiBsb2NhbGUsIGlzU2VsZWN0ZWQ6IHRydWUgfTtcbiAgICAgICAgY3JlYXRvci5vblRyYW5zbGF0aW9uTG9jYWxlSW5pdGlhbGx5U2VsZWN0ZWQuZmlyZShjcmVhdG9yLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuaXNTZWxlY3RlZDtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMubW9kZWwudHJhbnNsYXRpb25TdHJpbmdWaXNpYmlsaXR5Q2FsbGJhY2sgPSAob2JqOiBTdXJ2ZXkuQmFzZSwgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHZpc2libGU6IGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7IG9iajogb2JqLCBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSwgdmlzaWJsZTogdmlzaWJsZSB9O1xuICAgICAgIWNyZWF0b3Iub25UcmFuc2xhdGlvblN0cmluZ1Zpc2liaWxpdHkuaXNFbXB0eSAmJiBjcmVhdG9yLm9uVHJhbnNsYXRpb25TdHJpbmdWaXNpYmlsaXR5LmZpcmUoY3JlYXRvciwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gb3B0aW9ucy52aXNpYmxlO1xuICAgIH07XG4gICAgdGhpcy5tb2RlbC5pbXBvcnRGaW5pc2hlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgY3JlYXRvci5vblRyYW5zbGF0aW9uSW1wb3J0ZWQuZmlyZShjcmVhdG9yLCB7fSk7XG4gICAgfTtcbiAgICB0aGlzLm1vZGVsLnRyYW5zbGF0ZUl0ZW1BZnRlclJlbmRlckNhbGxiYWNrID0gZnVuY3Rpb24gKGl0ZW06IFRyYW5zbGF0aW9uSXRlbSwgZWw6IGFueSwgbG9jYWxlOiBzdHJpbmcpIHtcbiAgICAgIGlmIChjcmVhdG9yLm9uVHJhbnNsYXRlSXRlbUFmdGVyUmVuZGVyLmlzRW1wdHkpIHJldHVybjtcbiAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICBodG1sRWxlbWVudDogZWwsXG4gICAgICAgIGxvY2FsZTogbG9jYWxlLFxuICAgICAgICBvbkRlc3Ryb3lDYWxsYmFjazogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICAgIGtvLnV0aWxzLmRvbU5vZGVEaXNwb3NhbC5hZGREaXNwb3NlQ2FsbGJhY2soZWwsICgpID0+IHtcbiAgICAgICAgaWYgKCEhb3B0aW9ucy5vbkRlc3Ryb3lDYWxsYmFjaykge1xuICAgICAgICAgIG9wdGlvbnMub25EZXN0cm95Q2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjcmVhdG9yLm9uVHJhbnNsYXRlSXRlbUFmdGVyUmVuZGVyLmZpcmUoY3JlYXRvciwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICB0aGlzLm1vZGVsLmF2YWlsYWJsZVRyYW5sYXRpb25zQ2hhbmdlZENhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgY3JlYXRvci5zZXRNb2RpZmllZCh7IHR5cGU6IFwiVFJBTlNMQVRJT05TX0NIQU5HRURcIiB9KTtcbiAgICB9O1xuICAgIHRoaXMubW9kZWwudHJhbmxhdGlvbkNoYW5nZWRDYWxsYmFjayA9IChsb2NhbGU6IHN0cmluZywgbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBjb250ZXh0OiBhbnkpID0+IHtcbiAgICAgIGNyZWF0b3Iuc2V0TW9kaWZpZWQoe1xuICAgICAgICB0eXBlOiBcIlRSQU5TTEFUSU9OU19DSEFOR0VEXCIsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICB9KTtcbiAgICB9O1xuICAgIHRoaXMubW9kZWwucmVzZXQoKTtcbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3VydmV5LXRyYW5zbGF0aW9uXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICBjb25zdCBjcmVhdG9yOiBTdXJ2ZXlDcmVhdG9yID0gcGFyYW1zLmNyZWF0b3I7XG4gICAgICBjb25zdCB2aWV3TW9kZWwgPSBuZXcgVHJhbnNsYXRpb25WaWV3TW9kZWwoY3JlYXRvcik7XG5cbiAgICAgIHZhciBzdWJzY3JWaWV3VHlwZSA9IGNyZWF0b3Iua29WaWV3VHlwZS5zdWJzY3JpYmUoKHZpZXdUeXBlKSA9PiB7XG4gICAgICAgIGlmICh2aWV3VHlwZSA9PT0gXCJ0cmFuc2xhdGlvblwiKSB7XG4gICAgICAgICAgdmlld01vZGVsLm1vZGVsLnN1cnZleSA9IGNyZWF0b3Iuc3VydmV5O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAga28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhjb21wb25lbnRJbmZvLmVsZW1lbnQsICgpID0+IHtcbiAgICAgICAgc3Vic2NyVmlld1R5cGUuZGlzcG9zZSgpO1xuICAgICAgICBjcmVhdG9yLnRyYW5zbGF0aW9uLmRpc3Bvc2UoKTtcbiAgICAgICAgY3JlYXRvci50cmFuc2xhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuXG4gICAgICBjcmVhdG9yLnRyYW5zbGF0aW9uID0gdmlld01vZGVsLm1vZGVsO1xuICAgICAgcmV0dXJuIHZpZXdNb2RlbC5tb2RlbDtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtdHJhbnNsYXRpb24tZ3JvdXBcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBtb2RlbCA9IHBhcmFtcy5tb2RlbDtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogZ3JvdXBUZW1wbGF0ZUh0bWwsXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gXCI8c2NyaXB0IHR5cGU9XFxcInRleHQvaHRtbFxcXCIgaWQ9XFxcImNvbnZlcnQtYWN0aW9uXFxcIj5cXG4gIDxzcGFuIGNsYXNzPVxcXCJzdmRhX3F1ZXN0aW9uX2FjdGlvblxcXCI+XFxuICAgIDwhLS0ga28gaWY6IGFsbG93Q2hhbmdlVHlwZSAtLT5cXG4gICAgPHNlbGVjdFxcbiAgICAgIG9ubW91c2V3aGVlbD1cXFwicmV0dXJuIGZhbHNlO1xcXCJcXG4gICAgICBjbGFzcz1cXFwic3ZkYV9jdXJyZW50X3R5cGUgc3ZkLW1haW4tY29sb3Igc3ZkLWxpZ2h0LWJnLWNvbG9yXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwiZm9yZWFjaDogYXZhaWxhYmxlVHlwZXMsIGV2ZW50OiB7IGNoYW5nZTogb25Db252ZXJ0VHlwZSB9LCBhdHRyOiB7dGl0bGU6IHRpdGxlfVxcXCJcXG4gICAgPlxcbiAgICAgIDxvcHRpb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtbGlnaHQtYmctY29sb3JcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLm5hbWUsIHZhbHVlOiAkZGF0YS52YWx1ZSwgYXR0cjp7c2VsZWN0ZWQ6ICRkYXRhLnZhbHVlID09PSAkcGFyZW50LnR5cGUgPyAnc2VsZWN0ZWQnOiBudWxsfVxcXCJcXG4gICAgICA+PC9vcHRpb24+XFxuICAgIDwvc2VsZWN0PlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPCEtLSBrbyBpZm5vdDogYWxsb3dDaGFuZ2VUeXBlIC0tPlxcbiAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6IHRleHRcXFwiIGNsYXNzPVxcXCJzdmRhX2N1cnJlbnRfdHlwZSBzdmQtbWFpbi1jb2xvclxcXCI+XFxuICAgIDwvc3Bhbj5cXG4gICAgPCEtLSAva28gLS0+XFxuICA8L3NwYW4+XFxuPC9zY3JpcHQ+XFxuXFxuPHNjcmlwdCB0eXBlPVxcXCJ0ZXh0L2h0bWxcXFwiIGlkPVxcXCJjaG9pY2UtYWN0aW9uXFxcIj5cXG4gIDwhLS0ga28gaWY6IGtvLnVud3JhcCgkZGF0YS52aXNpYmxlKSA9PT0gdW5kZWZpbmVkIHx8ICEha28udW53cmFwKCRkYXRhLnZpc2libGUpIC0tPlxcbiAgPHNwYW4gY2xhc3M9XFxcInN2ZGFfcXVlc3Rpb25fYWN0aW9uXFxcIj5cXG4gICAgPHNlbGVjdFxcbiAgICAgIG9ubW91c2V3aGVlbD1cXFwicmV0dXJuIGZhbHNlO1xcXCJcXG4gICAgICBjbGFzcz1cXFwic3ZkYV9jdXJyZW50X3R5cGUgc3ZkLW1haW4tY29sb3Igc3ZkLWxpZ2h0LWJnLWNvbG9yXFxcIlxcbiAgICAgIGRhdGEtYmluZD1cXFwiZm9yZWFjaDogY2hvaWNlcywgZXZlbnQ6IHsgY2hhbmdlOiBvbkNsaWNrIH0sIGF0dHI6IHt0aXRsZTogdGV4dCwgdmFsdWU6IHZhbHVlfVxcXCJcXG4gICAgPlxcbiAgICAgIDxvcHRpb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtbGlnaHQtYmctY29sb3JcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLnRleHQgfHwgJGRhdGEudmFsdWUgfHwgJGRhdGEsIHZhbHVlOiAkZGF0YS52YWx1ZSwgYXR0cjp7c2VsZWN0ZWQ6ICRkYXRhLnZhbHVlID09PSBrby51bndyYXAoJHBhcmVudC52YWx1ZSkgPyAnc2VsZWN0ZWQnOiBudWxsfVxcXCJcXG4gICAgICA+PC9vcHRpb24+XFxuICAgIDwvc2VsZWN0PlxcbiAgPC9zcGFuPlxcbiAgPCEtLSAva28gLS0+XFxuPC9zY3JpcHQ+XFxuXFxuPHNjcmlwdCB0eXBlPVxcXCJ0ZXh0L2h0bWxcXFwiIGlkPVxcXCJhY3Rpb24tc2VwYXJhdG9yXFxcIj5cXG4gIDxzcGFuXFxuICAgIGNsYXNzPVxcXCJzdmRhX2FjdGlvbl9zZXBhcmF0b3Igc3ZkLWRhcmstYm9yZGVyLWNvbG9yXFxcIlxcbiAgICBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvLnVud3JhcCgkZGF0YS52aXNpYmxlKSA9PT0gdW5kZWZpbmVkIHx8ICEha28udW53cmFwKCRkYXRhLnZpc2libGUpXFxcIlxcbiAgPlxcbiAgPC9zcGFuPlxcbjwvc2NyaXB0PlxcblxcbjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwiZnAtYWRkLXF1ZXN0aW9uXFxcIj5cXG4gIDxzcGFuIGNsYXNzPVxcXCJzdmRhX3F1ZXN0aW9uX2FjdGlvblxcXCI+XFxuICAgIDxzZWxlY3RcXG4gICAgICBvbm1vdXNld2hlZWw9XFxcInJldHVybiBmYWxzZTtcXFwiXFxuICAgICAgY2xhc3M9XFxcInN2ZGFfY3VycmVudF90eXBlIHN2ZC1tYWluLWNvbG9yIHN2ZC1saWdodC1iZy1jb2xvclxcXCJcXG4gICAgICBkYXRhLWJpbmQ9XFxcImV2ZW50OiB7IGNoYW5nZTogb25BZGRRdWVzdGlvbiB9LCBhdHRyOiB7dGl0bGU6IHRpdGxlfVxcXCJcXG4gICAgPlxcbiAgICAgIDxvcHRpb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtbGlnaHQtYmctY29sb3JcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6IHRpdGxlLCB2YWx1ZTogdW5kZWZpbmVkXFxcIlxcbiAgICAgID48L29wdGlvbj5cXG4gICAgICA8IS0tIGtvIGZvcmVhY2g6IGF2YWlsYWJsZVR5cGVzIC0tPlxcbiAgICAgIDxvcHRpb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtbGlnaHQtYmctY29sb3JcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6ICRkYXRhLm5hbWUgfHwgJGRhdGEsIHZhbHVlOiAkZGF0YS52YWx1ZSB8fCAkZGF0YVxcXCJcXG4gICAgICA+PC9vcHRpb24+XFxuICAgICAgPCEtLSAva28gLS0+XFxuICAgIDwvc2VsZWN0PlxcbiAgPC9zcGFuPlxcbjwvc2NyaXB0PlxcblxcbjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwic2NhLXNob3ctcHJvcGVydHktZ3JpZFxcXCI+XFxuICA8c3BhblxcbiAgICBjbGFzcz1cXFwic3ZkYV9xdWVzdGlvbl9hY3Rpb24gc3ZkYV9xdWVzdGlvbl9hY3Rpb24tLXNlcGFyYXRlZCBzdmQtbWFpbi1jb2xvclxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJrZXkyY2xpY2ssIGNsaWNrTm9Gb2N1czogZnVuY3Rpb24oKSB7IG9uQ2xpY2soJHBhcmVudC5xdWVzdGlvbik7IH0sIGF0dHI6IHt0aXRsZTogdGV4dCwgdGFiaW5kZXg6ICRkYXRhLm5lZWRGb2N1cyA9PT0gdW5kZWZpbmVkIHx8ICEhJGRhdGEubmVlZEZvY3VzID8gMCA6IHVuZGVmaW5lZCwgcm9sZTogJ2J1dHRvbicgfVxcXCJcXG4gID5cXG4gICAgPHNwYW4+XFxuICAgICAgPHN2Zy1pY29uXFxuICAgICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICAgIGRhdGEtYmluZD1cXFwiY3NzOiAkcGFyZW50LmdldFN0eWxlKCRkYXRhKVxcXCJcXG4gICAgICAgIHBhcmFtcz1cXFwiaWNvbk5hbWU6ICRwYXJlbnQuZ2V0U3R5bGUoJGRhdGEpXFxcIlxcbiAgICAgID48L3N2Zy1pY29uPlxcbiAgICA8L3NwYW4+XFxuICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogJGRhdGEuaGFzVGl0bGUgPyB0ZXh0OiAnJ1xcXCI+PC9zcGFuPlxcbiAgICA8c3Bhbj5cXG4gICAgICA8c3ZnLWljb25cXG4gICAgICAgIGNsYXNzPVxcXCJzdmQtcHJpbWFyeS1pY29uXFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJjc3M6ICRwYXJlbnQuZ2V0U3R5bGUoJGRhdGEpXFxcIlxcbiAgICAgICAgcGFyYW1zPVxcXCJpY29uTmFtZTogJ2ljb24tcmlnaHQnXFxcIlxcbiAgICAgID48L3N2Zy1pY29uPlxcbiAgICA8L3NwYW4+XFxuICA8L3NwYW4+XFxuPC9zY3JpcHQ+XFxuXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwic2UtY29tcG9uZW50LXRvb2xib3hcXFwiPlxcbiAgPGRpdiBjbGFzcz1cXFwic3ZkLXRvb2xib3gtaG9sZGVyXFxcIj5cXG4gICAgPHN2ZC10b29sYm94IHBhcmFtcz1cXFwiaXRlbXNQcm92aWRlcjogJGRhdGFcXFwiIGRhdGEtYmluZD1cXFwidmlzaWJsZTogc2hvd1Rvb2xib3hcXFwiPjwvc3ZkLXRvb2xib3g+XFxuICA8L2Rpdj5cXG48L3NjcmlwdD5cXG5cXG48c2NyaXB0IHR5cGU9XFxcInRleHQvaHRtbFxcXCIgaWQ9XFxcInNlLWNvbXBvbmVudC1wcm9wZXJ0eS1ncmlkXFxcIj5cXG4gIDxzdmQtcHJvcGVydHktZ3JpZCBwYXJhbXM9XFxcImNyZWF0b3I6JGRhdGFcXFwiPjwvc3ZkLXByb3BlcnR5LWdyaWQ+XFxuPC9zY3JpcHQ+XFxuXFxuPHNjcmlwdCB0eXBlPVxcXCJ0ZXh0L2h0bWxcXFwiIGlkPVxcXCJzZS1jb21wb25lbnQtdG9vbGJhclxcXCI+XFxuICA8c3ZkLXRvb2xiYXIgcGFyYW1zPVxcXCJpdGVtczogdG9vbGJhckl0ZW1zXFxcIj48L3N2ZC10b29sYmFyPlxcbjwvc2NyaXB0PlxcblxcbjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwic2UtY29tcG9uZW50LXBhZ2VzLWVkaXRvclxcXCI+XFxuICA8c3ZkLXBhZ2VzLWVkaXRvciBwYXJhbXM9XFxcImVkaXRvcjokZGF0YVxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiBrb1Nob3dQYWdlc1Rvb2xib3hcXFwiPlxcbiAgPC9zdmQtcGFnZXMtZWRpdG9yPlxcbjwvc2NyaXB0PlxcblwiOyIsIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2XFxuICB0YWJpbmRleD1cXFwiLTFcXFwiXFxuICBjbGFzcz1cXFwic3ZkX2NvbnRhaW5lciBzdmQtbGlnaHQtYmctY29sb3JcXFwiXFxuICBkYXRhLWJpbmQ9XFxcImNzczogdGhlbWVDc3MoKSArIChyZWFkT25seSA/ICcgc3ZkX2NvbnRhaW5lcl9kaXNhYmxlZCcgOiAnJyksIHN0eWxlOiB7IGhlaWdodDoga29EZXNpZ25lckhlaWdodCB9XFxcIlxcbj5cXG4gIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX3Jvd1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19jZWxsXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgICAgPGRpdj5cXG4gICAgICAgICAgPCEtLSBrbyBpZm5vdDogaGF2ZUNvbW1lcmNpYWxMaWNlbnNlIC0tPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmRfY29tbWVyY2lhbF9jb250YWluZXJcXFwiPlxcbiAgICAgICAgICAgIDxhXFxuICAgICAgICAgICAgICBjbGFzcz1cXFwic3ZkX2NvbW1lcmNpYWxfdGV4dFxcXCJcXG4gICAgICAgICAgICAgIGhyZWY9XFxcImh0dHBzOi8vd3d3LnN1cnZleWpzLmlvL0J1eVxcXCJcXG4gICAgICAgICAgICAgIHRhcmdldD1cXFwiX2JsYW5rXFxcIlxcbiAgICAgICAgICAgID5cXG4gICAgICAgICAgICAgIDxzcGFuPlxcbiAgICAgICAgICAgICAgICA8c3ZnLWljb25cXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cXFwic3ZkLXByaW1hcnktaWNvblxcXCJcXG4gICAgICAgICAgICAgICAgICBwYXJhbXM9XFxcImljb25OYW1lOiAnaWNvbi1ub25jb21tZXJjaWFsJywgc2l6ZTogMjBcXFwiXFxuICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxcbiAgICAgICAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcInN2ZF9jb21tZXJjaWFsX3Byb2R1Y3Qgc3ZkLW1haW4tY29sb3JcXFwiXFxuICAgICAgICAgICAgICAgID5QbGVhc2UgcHVyY2hhc2UgYSBTdXJ2ZXlKUyBDcmVhdG9yIGRldmVsb3BlciBsaWNlbnNlIHRvIHVzZSBpdFxcbiAgICAgICAgICAgICAgICBpbiB5b3VyIGFwcC48L3NwYW5cXG4gICAgICAgICAgICAgID5cXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJzdmRfbm9uY29tbWVyY2lhbF91c2Ugc3ZkLWxpZ2h0LXRleHQtY29sb3JcXFwiPjwvc3Bhbj5cXG4gICAgICAgICAgICA8L2E+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICA8IS0tIC9rbyAgLS0+XFxuICAgICAgICAgIDwhLS0ga28gaWY6IHRhYnMoKS5sZW5ndGggPiAxIC0tPlxcbiAgICAgICAgICA8dWxcXG4gICAgICAgICAgICBjbGFzcz1cXFwibmF2YmFyLWRlZmF1bHQgY29udGFpbmVyLWZsdWlkIG5hdiBuYXYtdGFicyBlZGl0b3ItdGFicyBzdmQtdGFicyBzdmQtbGlnaHQtYmctY29sb3JcXFwiXFxuICAgICAgICAgICAgcm9sZT1cXFwidGFibGlzdFxcXCJcXG4gICAgICAgICAgPlxcbiAgICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDogdGFicyAtLT5cXG4gICAgICAgICAgICA8bGlcXG4gICAgICAgICAgICAgIGNsYXNzPVxcXCJuYXYtaXRlbSBzdmQtdGFiXFxcIlxcbiAgICAgICAgICAgICAgcm9sZT1cXFwidGFiXFxcIlxcbiAgICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogYWN0aW9uLCBjc3M6IHsgYWN0aXZlOiAkcGFyZW50LmtvVmlld1R5cGUoKSA9PSBuYW1lIH0sIGF0dHI6IHsgJ2FyaWEtc2VsZWN0ZWQnOiAkcGFyZW50LmtvVmlld1R5cGUoKSA9PSBuYW1lID8gJ3RydWUnIDogJ2ZhbHNlJyB9XFxcIlxcbiAgICAgICAgICAgID5cXG4gICAgICAgICAgICAgIDxzcGFuXFxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVxcXCIwXFxcIlxcbiAgICAgICAgICAgICAgICBjbGFzcz1cXFwibmF2LWxpbmsgc3ZkLXRhYi10ZXh0XFxcIlxcbiAgICAgICAgICAgICAgICBkYXRhLWJpbmQ9XFxcInRleHQ6IHRpdGxlXFxcIlxcbiAgICAgICAgICAgICAgPjwvc3Bhbj5cXG4gICAgICAgICAgICA8L2xpPlxcbiAgICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgICA8L3VsPlxcbiAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fcm93XFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGxcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19jZWxsLWNvbnRlbnQtaG9sZGVyXFxcIj5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbC1jb250ZW50XFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJwYW5lbCBjYXJkIHN2ZF9jb250ZW50IHN2ZC1kYXJrLWJnLWNvbG9yXFxcIj5cXG4gICAgICAgICAgICAgIDwhLS0ga28gZm9yZWFjaDogdGFicyAtLT5cXG4gICAgICAgICAgICAgIDxkaXZcXG4gICAgICAgICAgICAgICAgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiAkcGFyZW50LmtvVmlld1R5cGUoKSA9PSBuYW1lXFxcIlxcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cXFwiMFxcXCJcXG4gICAgICAgICAgICAgICAgcm9sZT1cXFwidGFicGFuZWxcXFwiXFxuICAgICAgICAgICAgICAgIGNsYXNzPVxcXCJzdmQtbm8tb3V0bGluZVxcXCJcXG4gICAgICAgICAgICAgID5cXG4gICAgICAgICAgICAgICAgPCEtLSBrbyB0ZW1wbGF0ZTogeyBuYW1lOiB0ZW1wbGF0ZSwgZGF0YTogZGF0YSwgYWZ0ZXJSZW5kZXI6IGZ1bmN0aW9uKGVsZW1lbnQsIG1vZGVsKSB7ICRwYXJlbnQub25FZGl0b3JUYWJSZW5kZXJlZENhbGxiYWNrKG5hbWUsIGVsZW1lbnQsIG1vZGVsLCAkZGF0YSk7IH0gfSAtLT5cXG4gICAgICAgICAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXZcXG4gICAgICAgICAgICAgIGRhdGEtYmluZD1cXFwidGVtcGxhdGU6IHsgbmFtZTogJ3F1ZXN0aW9uZWRpdG9yJywgZGF0YTogcXVlc3Rpb25FZGl0b3JXaW5kb3cgfVxcXCJcXG4gICAgICAgICAgICA+PC9kaXY+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuPC9kaXY+XFxuXCI7IiwibW9kdWxlLmV4cG9ydHMgPSBcIjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwicHJvcGVydHllZGl0b3ItdHJpZ2dlcnNpdGVtc1xcXCI+XFxuICA8ZGl2PlxcbiAgICA8IS0ta28gaWY6IGtvSXRlbVNlbGVjdG9yKCkgIT0gbnVsbCAtLT5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiB0aXRsZVxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXAgaW5wdXQtZ3JvdXBcXFwiPlxcbiAgICAgIDxzZWxlY3RcXG4gICAgICAgIG9ubW91c2V3aGVlbD1cXFwicmV0dXJuIGZhbHNlO1xcXCJcXG4gICAgICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiXFxuICAgICAgICBtdWx0aXBsZT1cXFwibXVsdGlwbGVcXFwiXFxuICAgICAgICBkYXRhLWJpbmQ9XFxcIm9wdGlvbnM6a29JdGVtcywgc2VsZWN0ZWRPcHRpb25zOiBrb1NlbGVjdGVkRm9yRGVsZXRlXFxcIlxcbiAgICAgID48L3NlbGVjdD5cXG4gICAgICA8c3BhblxcbiAgICAgICAgY2xhc3M9XFxcImlucHV0LWdyb3VwLWFkZG9uIHN2LWJ0biBidG4tZGFuZ2VyXFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogZGVsZXRlSXRlbXNcXFwiXFxuICAgICAgPlxcbiAgICAgICAgPHNwYW4gY2xhc3M9XFxcImdseXBoaWNvbiBnbHlwaGljb24tcmVtb3ZlXFxcIj48L3NwYW4+XFxuICAgICAgPC9zcGFuPlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cCBpbnB1dC1ncm91cFxcXCI+XFxuICAgICAgPCEtLSBrbyB0ZW1wbGF0ZTogeyBuYW1lOiBcXFwiZWxlbWVudHNlbGVjdG9yXFxcIiwgZGF0YToga29JdGVtU2VsZWN0b3IoKSB9IC0tPjwhLS0gL2tvIC0tPlxcbiAgICAgIDxzcGFuXFxuICAgICAgICBjbGFzcz1cXFwiaW5wdXQtZ3JvdXAtYWRkb24gc3YtYnRuIGJ0bi1kZWZhdWx0XFxcIlxcbiAgICAgICAgZGF0YS1iaW5kPVxcXCJjbGljazogYWRkSXRlbVxcXCJcXG4gICAgICA+XFxuICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZ2x5cGhpY29uIGdseXBoaWNvbi1wbHVzIHN2ZC1tYWluLWNvbG9yXFxcIj48L3NwYW4+XFxuICAgICAgPC9zcGFuPlxcbiAgICA8L2Rpdj5cXG4gICAgPCEtLS9rbyAtLT5cXG4gIDwvZGl2Plxcbjwvc2NyaXB0PlxcblwiOyIsIm1vZHVsZS5leHBvcnRzID0gXCI8c2NyaXB0IHR5cGU9XFxcInRleHQvaHRtbFxcXCIgaWQ9XFxcInF1ZXN0aW9uZWRpdG9yXFxcIj5cXG4gIDxkaXYgaWQ9XFxcInN1cnZleXF1ZXN0aW9uZWRpdG9yd2luZG93XFxcIiBjbGFzcz1cXFwibW9kYWxcXFwiIGRhdGEtYmluZD1cXFwid2l0aDprb0VkaXRvclxcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwibW9kYWwtZGlhbG9nXFxcIj5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwibW9kYWwtY29udGVudFxcXCI+XFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJtb2RhbC1oZWFkZXJcXFwiPlxcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cXFwiYnV0dG9uXFxcIiBjbGFzcz1cXFwiY2xvc2VcXFwiIGRhdGEtYmluZD1cXFwiY2xpY2s6IG9uUmVzZXRDbGlja1xcXCI+JnRpbWVzOzwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cXFwibW9kYWwtdGl0bGVcXFwiIGRhdGEtYmluZD1cXFwidGV4dDprb1RpdGxlXFxcIj48L2g0PlxcbiAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJtb2RhbC1ib2R5IHN2ZF9ub3RvcGJvdHRvbXBhZGRpbmdzXFxcIj5cXG4gICAgICAgICAgICAgICAgICA8c3ZkLW9iamVjdC1lZGl0b3ItY29udGVudCBwYXJhbXM9XFxcImVsZW1lbnRFZGl0b3JDb250ZW50OiAkZGF0YVxcXCI+PC9zdmQtb2JqZWN0LWVkaXRvci1jb250ZW50PlxcbiAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJtb2RhbC1mb290ZXJcXFwiPlxcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVxcXCJidXR0b25cXFwiIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1wcmltYXJ5XFxcIiBkYXRhLWJpbmQ9XFxcInZpc2libGU6IGtvU2hvd0FwcGx5QnV0dG9uLCBkaXNhYmxlOiByZWFkT25seSwgY2xpY2s6IG9uQXBwbHlDbGljaywgdmFsdWU6ICRkYXRhLmdldExvY1N0cmluZygncGUuYXBwbHknKVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XFxcIndpZHRoOjEwMHB4XFxcIiAvPlxcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVxcXCJidXR0b25cXFwiIGNsYXNzPVxcXCJidG4gc3YtYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zZWNvbmRhcnlcXFwiIGRhdGEtYmluZD1cXFwiY2xpY2s6IG9uT2tDbGljaywgZGlzYWJsZTogcmVhZE9ubHksIHZhbHVlOiAkZGF0YS5nZXRMb2NTdHJpbmcoJ3BlLm9rJylcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVxcXCJ3aWR0aDoxMDBweFxcXCIgLz5cXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cXFwiYnV0dG9uXFxcIiBjbGFzcz1cXFwiYnRuIHN2LWJ0biBidG4tcHJpbWFyeVxcXCIgZGF0YS1iaW5kPVxcXCJjbGljazogb25SZXNldENsaWNrLCB2YWx1ZTogJGRhdGEuZ2V0TG9jU3RyaW5nKCdwZS5jYW5jZWwnKVxcXCIgc3R5bGU9XFxcIndpZHRoOjEwMHB4XFxcIlxcbiAgICAgICAgICAgICAgICAgIC8+XFxuICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICA8L2Rpdj5cXG48L3NjcmlwdD5cIjsiLCJtb2R1bGUuZXhwb3J0cyA9IFwiPHNjcmlwdCB0eXBlPVxcXCJ0ZXh0L2h0bWxcXFwiIGlkPVxcXCJzZS10YWItZGVzaWduZXJcXFwiPlxcbiAgPGRpdiBjbGFzcz1cXFwicm93IHN2ZF9zdXJ2ZXlfZGVzaWduZXJcXFwiPlxcbiAgICA8IS0tIGtvIGlmOiBsZWZ0Q29udGFpbmVyLmxlbmd0aCA+IDAgLS0+XFxuICAgIDxzdmQtZGVzaWduZXItY29udGFpbmVyIHBhcmFtcz1cXFwidGFiczogbGVmdENvbnRhaW5lciwgYWN0aXZlVGFiOiBsZWZ0Q29udGFpbmVyQWN0aXZlSXRlbSwgdmlzaWJsZTogbGVmdENvbnRhaW5lclZpc2libGUsIGNoYW5nZWQ6IGxheW91dENoYW5nZWRJbmRpY2F0b3IsIGNvbnRleHQ6ICRkYXRhLCBjbGFzc05hbWU6ICdzdmQtZGVzaWduZXItY29udGFpbmVyLS1sZWZ0LXNpZGUnXFxcIj48L3N2ZC1kZXNpZ25lci1jb250YWluZXI+XFxuICAgIDxzdmQtc3BsaXR0ZXIgcGFyYW1zPVxcXCJtaW5MZWZ0OiAwLCBtaW5SaWdodDogNjAwLCBvbkNoYW5nZTogbGF5b3V0Q2hhbmdlZEluZGljYXRvclxcXCI+PC9zdmQtc3BsaXR0ZXI+XFxuICAgIDwhLS0gL2tvICAtLT5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3ZkX2VkaXRvcnNcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdmVydGljYWwtY29udGFpbmVyX19yb3dcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgZGF0YS1iaW5kPVxcXCJ2aXNpYmxlOiB0b3BDb250YWluZXIubGVuZ3RoID4gMFxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj5cXG4gICAgICAgICAgICAgIDwhLS0ga28gaWY6IHRvcENvbnRhaW5lci5sZW5ndGggPiAwIC0tPlxcbiAgICAgICAgICAgICAgPHN2ZC1kZXNpZ25lci1oLWNvbnRhaW5lciBwYXJhbXM9XFxcIml0ZW1zOiB0b3BDb250YWluZXIsIGNvbnRleHQ6ICRkYXRhLCBjbGFzc05hbWU6ICdzdmQtZGVzaWduZXItY29udGFpbmVyLS10b3AnXFxcIj48L3N2ZC1kZXNpZ25lci1oLWNvbnRhaW5lcj5cXG4gICAgICAgICAgICAgIDwhLS0gL2tvICAtLT5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fcm93XFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGxcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGwtY29udGVudC1ob2xkZXJcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkLXZlcnRpY2FsLWNvbnRhaW5lcl9fY2VsbC1jb250ZW50IHN2ZC12ZXJ0aWNhbC1jb250YWluZXJfX2NlbGwtY29udGVudC0tc2Nyb2xsYWJsZVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcInN2ZF9xdWVzdGlvbnNfZWRpdG9yIHN2ZC1saWdodC1iZy1jb2xvclxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XFxcInNjcm9sbGFibGVEaXZcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYmluZD1cXFwiZXZlbnQ6IHsgZHJhZ292ZXI6IGRyYWdPdmVyUXVlc3Rpb25zRWRpdG9yLCBkcm9wOiBkcm9wT25RdWVzdGlvbnNFZGl0b3IgfVxcXCJcXG4gICAgICAgICAgICAgICAgICAgID5cXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3ZkX3N1cnZleWpzX2Rlc2lnbmVyX2NvbnRhaW5lclxcXCI+XFxuICAgICAgICAgICAgICAgICAgICAgICAgPHN1cnZleS13aWRnZXQgcGFyYW1zPVxcXCJzdXJ2ZXk6IHN1cnZleVxcXCI+PC9zdXJ2ZXktd2lkZ2V0PlxcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPCEtLSBrbyBpZjogcmlnaHRDb250YWluZXIubGVuZ3RoID4gMCAtLT5cXG4gICAgPHN2ZC1zcGxpdHRlciBwYXJhbXM9XFxcIm1pbkxlZnQ6IDYwMCwgbWluUmlnaHQ6IDAsIG9uQ2hhbmdlOiBsYXlvdXRDaGFuZ2VkSW5kaWNhdG9yXFxcIj48L3N2ZC1zcGxpdHRlcj5cXG4gICAgPHN2ZC1kZXNpZ25lci1jb250YWluZXIgcGFyYW1zPVxcXCJ0YWJzOiByaWdodENvbnRhaW5lciwgYWN0aXZlVGFiOiByaWdodENvbnRhaW5lckFjdGl2ZUl0ZW0sIHZpc2libGU6IHJpZ2h0Q29udGFpbmVyVmlzaWJsZSwgY2hhbmdlZDogbGF5b3V0Q2hhbmdlZEluZGljYXRvciwgY29udGV4dDogJGRhdGEsIGNsYXNzTmFtZTogJ3N2ZC1kZXNpZ25lci1jb250YWluZXItLXJpZ2h0LXNpZGUnXFxcIj48L3N2ZC1kZXNpZ25lci1jb250YWluZXI+XFxuICAgIDwhLS0gL2tvIC0tPlxcbiAgPC9kaXY+XFxuPC9zY3JpcHQ+XFxuXFxuPHNjcmlwdCB0eXBlPVxcXCJ0ZXh0L2h0bWxcXFwiIGlkPVxcXCJzZS10YWItdGVzdFxcXCI+XFxuICA8c3VydmV5LXRlc3RlciBpZD1cXFwic3VydmV5anNFeGFtcGxlXFxcIiBwYXJhbXM9XFxcImNyZWF0b3I6ICRkYXRhXFxcIiBkYXRhLWJpbmQ9XFxcInN0eWxlOiB7d2lkdGg6IGtvVGVzdFN1cnZleVdpZHRofVxcXCI+PC9zdXJ2ZXktdGVzdGVyPlxcbjwvc2NyaXB0PlxcblxcbjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwic2UtdGFiLWpzb24tZWRpdG9yXFxcIj5cXG4gIDxzdXJ2ZXktanNvbi1lZGl0b3IgcGFyYW1zPVxcXCJjcmVhdG9yOiAkZGF0YVxcXCI+PC9zdXJ2ZXktanNvbi1lZGl0b3I+XFxuPC9zY3JpcHQ+XFxuXFxuPHNjcmlwdCB0eXBlPVxcXCJ0ZXh0L2h0bWxcXFwiIGlkPVxcXCJzZS10YWItdHJhbnNsYXRpb25cXFwiPlxcbiAgPHN1cnZleS10cmFuc2xhdGlvbiBwYXJhbXM9XFxcImNyZWF0b3I6ICRkYXRhXFxcIj48L3N1cnZleS10cmFuc2xhdGlvbj5cXG48L3NjcmlwdD5cXG5cXG48c2NyaXB0IHR5cGU9XFxcInRleHQvaHRtbFxcXCIgaWQ9XFxcInNlLXRhYi1sb2dpY1xcXCI+XFxuICA8c3VydmV5LWxvZ2ljIHBhcmFtcz1cXFwiY3JlYXRvcjogJGRhdGFcXFwiPjwvc3VydmV5LWxvZ2ljPlxcbjwvc2NyaXB0PlxcblxcbjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwic2UtdGFiLWVtYmVkXFxcIj5cXG4gIDxzdXJ2ZXktZW1iZWQgcGFyYW1zPVxcXCJjcmVhdG9yOiAkZGF0YVxcXCI+PC9zdXJ2ZXktZW1iZWQ+XFxuPC9zY3JpcHQ+XFxuXFxuPHNjcmlwdCB0eXBlPVxcXCJ0ZXh0L2h0bWxcXFwiIGlkPVxcXCJzZS1lbXB0eS1wbGFjZWhvbGRlclxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJzdmQtc3VydmV5LXBsYWNlaG9sZGVyLXJvb3RcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC1zdXJ2ZXktcGxhY2Vob2xkZXJcXFwiPlxcbiAgICAgIDwhLS0ga28gaWY6IHBsYWNlaG9sZGVySHRtbCAtLT5cXG4gICAgICAgIDxkaXYgZGF0YS1iaW5kPVxcXCJodG1sOiBwbGFjZWhvbGRlckh0bWxcXFwiPjwvZGl2PlxcbiAgICAgIDwhLS0gL2tvIC0tPlxcbiAgICAgIDwhLS0ga28gaWZub3Q6IHBsYWNlaG9sZGVySHRtbCAtLT5cXG4gICAgICAgICAgPCEtLSBrbyBpZjogc2hvd0V4dGVybmFsSGVscExpbmsgLS0+XFxuICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInN2ZC1zdXJ2ZXktZ2FsbGVyeVxcXCI+XFxuICAgICAgICAgICAgPGEgZGF0YS1iaW5kPVxcXCJhdHRyOiB7IGhyZWY6IGdldExvY1N0cmluZygnc3VydmV5LmV4dGVybmFsSGVscExpbmtVcmwnKSB9XFxcIj5cXG4gICAgICAgICAgICA8aW1nIHNyYz1cXFwiXCIgKyByZXF1aXJlKFwiLi4vaW1hZ2VzL1lvdVR1YmUucG5nXCIpICsgXCJcXFwiIGFsdD1cXFwiWW91VHViZSB0dXRvcmlhbHNcXFwiLz5cXG4gICAgICAgICAgICA8c3BhbiBkYXRhLWJpbmQ9XFxcInRleHQ6IGdldExvY1N0cmluZygnc3VydmV5LmV4dGVybmFsSGVscExpbmsnKVxcXCI+PC9zcGFuPlxcbiAgICAgICAgICAgIDwvYT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPCEtLSAva28gLS0+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtZW1wdHktbWVzc2FnZS1jb250YWluZXJcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtZW1wdHktbWVzc2FnZVxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiBnZXRMb2NTdHJpbmcoJ3N1cnZleS5kcm9wUXVlc3Rpb24nKVxcXCI+PC9kaXY+XFxuICAgICAgICAgIDxpbWcgc3JjPVxcXCJcIiArIHJlcXVpcmUoXCIuLi9pbWFnZXMvc3RhcnQtZGVzaWduaW5nLWZvcm0uc3ZnXCIpICsgXCJcXFwiIGFsdD1cXFwiRHJvcCBxdWVzdGlvbnMgaGVyZVxcXCIgc3R5bGU9XFxcIndpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweFxcXCIvPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICA8L2Rpdj5cXG4gIDwvZGl2Plxcbjwvc2NyaXB0PlxcblwiOyIsIm1vZHVsZS5leHBvcnRzID0gXCI8c2NyaXB0IHR5cGU9XFxcInRleHQvaHRtbFxcXCIgaWQ9XFxcInN2ZC10b29sYmFyLW9wdGlvbnNcXFwiPlxcbiAgPGRpdiBjbGFzcz1cXFwiZGRtZW51LWNvbnRhaW5lciB0b29sYmFyLW9wdGlvbnMgYnRuLWdyb3VwIGlubGluZVxcXCI+XFxuICAgICAgPGRpdiBzdHlsZT1cXFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMClcXFwiIGRhdGEtYmluZD1cXFwidHJ1ZWNsaWNrXFxcIj48L2Rpdj5cXG5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJkZG1lbnVcXFwiPlxcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiYnRuIHN2LWJ0biBidG4tcHJpbWFyeVxcXCIgdGFiaW5kZXg9XFxcIjBcXFwiPlxcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiB0aXRsZVxcXCI+PC9zcGFuPlxcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImNhcmV0XFxcIj48L3NwYW4+XFxuICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgPGRpdiB0YWJpbmRleD1cXFwiMFxcXCIgZGF0YS1iaW5kPVxcXCJ0cnVlY2xpY2tcXFwiPjwvZGl2PlxcbiAgICAgICAgICA8dWwgY2xhc3M9XFxcInN2ZC1saWdodC1iZy1jb2xvclxcXCI+XFxuICAgICAgICAgICAgICA8IS0tIGtvIGZvcmVhY2g6IGl0ZW1zIC0tPlxcbiAgICAgICAgICAgICAgPGxpIGRhdGEtYmluZD1cXFwiY3NzOiAkZGF0YS5jc3NcXFwiPlxcbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XFxcIiNcXFwiIGRhdGEtYmluZD1cXFwiY2xpY2s6IGFjdGlvbiwgdGV4dDogdGl0bGVcXFwiPjwvYT5cXG4gICAgICAgICAgICAgIDwvbGk+XFxuICAgICAgICAgICAgICA8IS0tIC9rbyAtLT5cXG4gICAgICAgICAgPC91bD5cXG4gICAgICA8L2Rpdj5cXG4gIDwvZGl2Plxcbjwvc2NyaXB0PlxcbjxzY3JpcHQgdHlwZT1cXFwidGV4dC9odG1sXFxcIiBpZD1cXFwic3ZkLXRvb2xiYXItc3RhdGVcXFwiPlxcbiAgPHNwYW4gY2xhc3M9XFxcImljb25cXFwiPlxcbiAgICAgIDxzdmctaWNvbiBjbGFzcz1cXFwiaWNvbi1zdGF0dXNcXFwiIHBhcmFtcz1cXFwiaWNvbk5hbWU6IGlubmVyQ3NzLCBzaXplOiAyNFxcXCI+PC9zdmctaWNvbj5cXG4gIDwvc3Bhbj5cXG4gIDxzcGFuIGNsYXNzPVxcXCJzdmQtbGlnaHQtdGV4dC1jb2xvclxcXCIgZGF0YS1iaW5kPVxcXCJ0ZXh0OiB0aXRsZVxcXCI+PC9zcGFuPlxcbjwvc2NyaXB0PlwiOyIsImltcG9ydCB7IFN1cnZleUpTT041IH0gZnJvbSBcIi4vanNvbjVcIjtcbmltcG9ydCAqIGFzIFN1cnZleSBmcm9tIFwic3VydmV5LWtub2Nrb3V0XCI7XG5cbmNsYXNzIFN1cnZleUZvclRleHRXb3JrZXIgZXh0ZW5kcyBTdXJ2ZXkuU3VydmV5IHtcbiAgY29uc3RydWN0b3IoanNvbk9iajogYW55KSB7XG4gICAgc3VwZXIoanNvbk9iaik7XG4gIH1cbiAgcHVibGljIGdldCBpc0Rlc2lnbk1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1cnZleVRleHRXb3JrZXIge1xuICBwdWJsaWMgc3RhdGljIG5ld0xpbmVDaGFyOiBzdHJpbmc7XG4gIHB1YmxpYyBlcnJvcnM6IEFycmF5PGFueT47XG4gIHByaXZhdGUgc3VydmV5VmFsdWU6IFN1cnZleS5TdXJ2ZXk7XG4gIHByaXZhdGUganNvblZhbHVlOiBhbnk7XG4gIHByaXZhdGUgc3VydmV5T2JqZWN0czogQXJyYXk8YW55PjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGV4dDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnRleHQgfHwgdGhpcy50ZXh0LnRyaW0oKSA9PSBcIlwiKSB7XG4gICAgICB0aGlzLnRleHQgPSBcInt9XCI7XG4gICAgfVxuICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgdGhpcy5wcm9jZXNzKCk7XG4gIH1cbiAgcHVibGljIGdldCBzdXJ2ZXkoKTogU3VydmV5LlN1cnZleSB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5VmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBpc0pzb25Db3JyZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN1cnZleVZhbHVlICE9IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIHByb2Nlc3MoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuanNvblZhbHVlID0gbmV3IFN1cnZleUpTT041KDEpLnBhcnNlKHRoaXMudGV4dCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goe1xuICAgICAgICBwb3M6IHsgc3RhcnQ6IGVycm9yLmF0LCBlbmQ6IC0xIH0sXG4gICAgICAgIHRleHQ6IGVycm9yLm1lc3NhZ2VcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5qc29uVmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy51cGRhdGVKc29uUG9zaXRpb25zKHRoaXMuanNvblZhbHVlKTtcbiAgICAgIHZhciBwdXJlSnNvblZhbHVlID0gbmV3IFN1cnZleUpTT041KCkucGFyc2UodGhpcy50ZXh0KTtcbiAgICAgIHRoaXMuc3VydmV5VmFsdWUgPSBuZXcgU3VydmV5Rm9yVGV4dFdvcmtlcihwdXJlSnNvblZhbHVlKTtcbiAgICAgIGlmICh0aGlzLnN1cnZleVZhbHVlLmpzb25FcnJvcnMgIT0gbnVsbCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3VydmV5VmFsdWUuanNvbkVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBlcnJvciA9IHRoaXMuc3VydmV5VmFsdWUuanNvbkVycm9yc1tpXTtcbiAgICAgICAgICB0aGlzLmVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgIHBvczogeyBzdGFydDogZXJyb3IuYXQsIGVuZDogLTEgfSxcbiAgICAgICAgICAgIHRleHQ6IGVycm9yLmdldEZ1bGxEZXNjcmlwdGlvbigpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zdXJ2ZXlPYmplY3RzID0gdGhpcy5jcmVhdGVTdXJ2ZXlPYmplY3RzKCk7XG4gICAgdGhpcy5zZXRFZGl0b3JQb3NpdGlvbkJ5Q2hhcnRBdCh0aGlzLnN1cnZleU9iamVjdHMpO1xuICAgIHRoaXMuc2V0RWRpdG9yUG9zaXRpb25CeUNoYXJ0QXQodGhpcy5lcnJvcnMpO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlSnNvblBvc2l0aW9ucyhqc29uT2JqOiBhbnkpIHtcbiAgICBqc29uT2JqW1wicG9zXCJdW1wic2VsZlwiXSA9IGpzb25PYmo7XG4gICAgZm9yICh2YXIga2V5IGluIGpzb25PYmopIHtcbiAgICAgIHZhciBvYmogPSBqc29uT2JqW2tleV07XG4gICAgICBpZiAob2JqICYmIG9ialtcInBvc1wiXSkge1xuICAgICAgICBqc29uT2JqW1wicG9zXCJdW2tleV0gPSBvYmpbXCJwb3NcIl07XG4gICAgICAgIHRoaXMudXBkYXRlSnNvblBvc2l0aW9ucyhvYmopO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIGNyZWF0ZVN1cnZleU9iamVjdHMoKTogQXJyYXk8YW55PiB7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIGlmICh0aGlzLnN1cnZleVZhbHVlID09IG51bGwpIHJldHVybiByZXN1bHQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN1cnZleVZhbHVlLnBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcGFnZSA9IHRoaXMuc3VydmV5VmFsdWUucGFnZXNbaV07XG4gICAgICBpZiAoaSA9PSAwICYmICFwYWdlW1wicG9zXCJdKSB7XG4gICAgICAgIHBhZ2VbXCJwb3NcIl0gPSB0aGlzLnN1cnZleVZhbHVlW1wicG9zXCJdO1xuICAgICAgfVxuICAgICAgcmVzdWx0LnB1c2gocGFnZSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhZ2UucXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHBhZ2UucXVlc3Rpb25zW2pdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwcml2YXRlIHNldEVkaXRvclBvc2l0aW9uQnlDaGFydEF0KG9iamVjdHM6IGFueVtdKSB7XG4gICAgaWYgKG9iamVjdHMgPT0gbnVsbCB8fCBvYmplY3RzLmxlbmd0aCA9PSAwKSByZXR1cm47XG4gICAgdmFyIHBvc2l0aW9uID0geyByb3c6IDAsIGNvbHVtbjogMCB9O1xuICAgIHZhciBhdE9iamVjdHNBcnJheSA9IHRoaXMuZ2V0QXRBcnJheShvYmplY3RzKTtcbiAgICB2YXIgc3RhcnRBdDogbnVtYmVyID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0T2JqZWN0c0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgYXQgPSBhdE9iamVjdHNBcnJheVtpXS5hdDtcbiAgICAgIHBvc2l0aW9uID0gdGhpcy5nZXRQb3N0aW9uQnlDaGFydEF0KHBvc2l0aW9uLCBzdGFydEF0LCBhdCk7XG4gICAgICB2YXIgb2JqID0gYXRPYmplY3RzQXJyYXlbaV0ub2JqO1xuICAgICAgaWYgKCFvYmoucG9zaXRpb24pIG9iai5wb3NpdGlvbiA9IHt9O1xuICAgICAgaWYgKGF0ID09IG9iai5wb3Muc3RhcnQpIHtcbiAgICAgICAgb2JqLnBvc2l0aW9uLnN0YXJ0ID0gcG9zaXRpb247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYXQgPT0gb2JqLnBvcy5lbmQpIHtcbiAgICAgICAgICBvYmoucG9zaXRpb24uZW5kID0gcG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN0YXJ0QXQgPSBhdDtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRQb3N0aW9uQnlDaGFydEF0KFxuICAgIHN0YXJ0UG9zaXRpb246IGFueSxcbiAgICBzdGFydEF0OiBudW1iZXIsXG4gICAgYXQ6IG51bWJlclxuICApOiBhbnkge1xuICAgIHZhciByZXN1bHQgPSB7IHJvdzogc3RhcnRQb3NpdGlvbi5yb3csIGNvbHVtbjogc3RhcnRQb3NpdGlvbi5jb2x1bW4gfTtcbiAgICB2YXIgY3VyQ2hhciA9IHN0YXJ0QXQ7XG4gICAgd2hpbGUgKGN1ckNoYXIgPCBhdCkge1xuICAgICAgaWYgKHRoaXMudGV4dC5jaGFyQXQoY3VyQ2hhcikgPT0gU3VydmV5VGV4dFdvcmtlci5uZXdMaW5lQ2hhcikge1xuICAgICAgICByZXN1bHQucm93Kys7XG4gICAgICAgIHJlc3VsdC5jb2x1bW4gPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0LmNvbHVtbisrO1xuICAgICAgfVxuICAgICAgY3VyQ2hhcisrO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHByaXZhdGUgZ2V0QXRBcnJheShvYmplY3RzOiBhbnlbXSk6IGFueVtdIHtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgb2JqID0gb2JqZWN0c1tpXTtcbiAgICAgIHZhciBwb3MgPSBvYmoucG9zO1xuICAgICAgaWYgKCFwb3MpIGNvbnRpbnVlO1xuICAgICAgcmVzdWx0LnB1c2goeyBhdDogcG9zLnN0YXJ0LCBvYmo6IG9iaiB9KTtcbiAgICAgIGlmIChwb3MuZW5kID4gMCkge1xuICAgICAgICByZXN1bHQucHVzaCh7IGF0OiBwb3MuZW5kLCBvYmo6IG9iaiB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5zb3J0KChlbDEsIGVsMikgPT4ge1xuICAgICAgaWYgKGVsMS5hdCA+IGVsMi5hdCkgcmV0dXJuIDE7XG4gICAgICBpZiAoZWwxLmF0IDwgZWwyLmF0KSByZXR1cm4gLTE7XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgfVxufVxuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgSUFjdGlvbiB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcbmltcG9ydCB7IENyZWF0b3JCYXNlIH0gZnJvbSBcIi4vY3JlYXRvci1iYXNlXCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcblxuLyoqXG4gKiBUaGUgVG9vbGJveCBpdGVtIGRlc2NyaXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElRdWVzdGlvblRvb2xib3hJdGVtIGV4dGVuZHMgSUFjdGlvbiB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBuYW1lXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJY29uIG5hbWVcbiAgICovXG4gIGljb25OYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSlNPTiB0aGF0IHVzZWQgdG8gY3JlYXRlIGEgbmV3IHF1ZXN0aW9uL3BhbmVsLiBUaGUgJ3R5cGUnIGF0dHJpYnV0ZSBpcyByZXF1aXJlZC5cbiAgICovXG4gIGpzb246IGFueTtcbiAgLyoqXG4gICAqIFRvb2xib3ggaXRlbSB0aXRsZVxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRvb2xib3ggaXRlbSB0b29sdGlwLiBJdCBlcXVhbHMgdG8gdGl0bGUgaWYgaXQgaXMgZW1wdHlcbiAgICovXG4gIHRvb2x0aXA/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUcnVlLCBpZiBhbiBlbmQgdXNlciBhZGRlZCB0aGlzIGl0ZW0gaW50byBUb29sYm94IGZyb20gdGhlIHN1cnZleS5cbiAgICovXG4gIGlzQ29waWVkOiBib29sZWFuO1xuICAvKipcbiAgICogVG9vbGJveCBpdGVtIGNhdGVnb3J5LiBJZiBpdCBpcyBlbXB0eSwgaXQgZ29lcyB0byAnR2VuZXJhbCcgY2F0ZWdvcnkuXG4gICAqL1xuICBjYXRlZ29yeTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBsaXN0IG9mIFRvb2xib3ggaXRlbXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVzdGlvblRvb2xib3gge1xuICBwcml2YXRlIF9vcmRlcmVkUXVlc3Rpb25zID0gW1xuICAgIFwidGV4dFwiLFxuICAgIFwiY2hlY2tib3hcIixcbiAgICBcInJhZGlvZ3JvdXBcIixcbiAgICBcImRyb3Bkb3duXCIsXG4gICAgXCJjb21tZW50XCIsXG4gICAgXCJyYXRpbmdcIixcbiAgICBcInJhbmtpbmdcIixcbiAgICBcImltYWdlcGlja2VyXCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJpbWFnZVwiLFxuICAgIFwiaHRtbFwiLFxuICAgIFwic2lnbmF0dXJlcGFkXCIsXG4gIF07XG5cbiAgcHJpdmF0ZSBfcXVlc3Rpb25EZWZhdWx0U2V0dGluZ3MgPSB7XG4gICAgaW1hZ2VwaWNrZXI6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogXCJsaW9uXCIsXG4gICAgICAgICAgICBpbWFnZUxpbms6XG4gICAgICAgICAgICAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Db250ZW50L0ltYWdlcy9leGFtcGxlcy9pbWFnZS1waWNrZXIvbGlvbi5qcGdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiBcImdpcmFmZmVcIixcbiAgICAgICAgICAgIGltYWdlTGluazpcbiAgICAgICAgICAgICAgXCJodHRwczovL3N1cnZleWpzLmlvL0NvbnRlbnQvSW1hZ2VzL2V4YW1wbGVzL2ltYWdlLXBpY2tlci9naXJhZmZlLmpwZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IFwicGFuZGFcIixcbiAgICAgICAgICAgIGltYWdlTGluazpcbiAgICAgICAgICAgICAgXCJodHRwczovL3N1cnZleWpzLmlvL0NvbnRlbnQvSW1hZ2VzL2V4YW1wbGVzL2ltYWdlLXBpY2tlci9wYW5kYS5qcGdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiBcImNhbWVsXCIsXG4gICAgICAgICAgICBpbWFnZUxpbms6XG4gICAgICAgICAgICAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Db250ZW50L0ltYWdlcy9leGFtcGxlcy9pbWFnZS1waWNrZXIvY2FtZWwuanBnXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBpbWFnZTogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW1hZ2VMaW5rOlxuICAgICAgICAgIFwiaHR0cHM6Ly9zdXJ2ZXlqcy5pby9Db250ZW50L0ltYWdlcy9leGFtcGxlcy9pbWFnZS1waWNrZXIvbGlvbi5qcGdcIixcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogTW9kaWZ5IHRoaXMgYXJyYXkgdG8gY2hhbmdlIHRoZSB0b29sYm94IGl0ZW1zIG9yZGVyLlxuICAgKi9cbiAgcHVibGljIGdldCBvcmRlcmVkUXVlc3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcmRlcmVkUXVlc3Rpb25zO1xuICB9XG4gIHB1YmxpYyBzZXQgb3JkZXJlZFF1ZXN0aW9ucyhxdWVzdGlvbnMpIHtcbiAgICB0aGlzLl9vcmRlcmVkUXVlc3Rpb25zID0gcXVlc3Rpb25zO1xuICAgIHRoaXMucmVvcmRlckl0ZW1zKCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb3BpZWQgdG9vbGJveCBpdGVtcy4gSWYgYW4gdXNlciBhZGRpbmcgY29waWVkSXRlbU1heENvdW50ICsgMSBpdGVtLCB0aGUgZmlyc3QgYWRkZWQgaXRlbSB3aWxsIGJlIHJlbW92ZWQuXG4gICAqL1xuICBwdWJsaWMgY29waWVkSXRlbU1heENvdW50OiBudW1iZXIgPSAzO1xuICBwcml2YXRlIGFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBrZWVwQWxsQ2F0ZWdvcmllc0V4cGFuZGVkVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpdGVtc1ZhbHVlOiBBcnJheTxJUXVlc3Rpb25Ub29sYm94SXRlbT4gPSBbXTtcblxuICBrb0l0ZW1zID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gIGtvQ2F0ZWdvcmllcyA9IGtvLm9ic2VydmFibGVBcnJheSgpO1xuICBrb0FjdGl2ZUNhdGVnb3J5ID0ga28ub2JzZXJ2YWJsZShcIlwiKTtcbiAga29IYXNDYXRlZ29yaWVzID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gIGtvQ2FuQ29sbGFwc2VDYXRlZ29yaWVzID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdXBwb3J0ZWRRdWVzdGlvbnM6IEFycmF5PHN0cmluZz4gPSBudWxsLFxuICAgIHB1YmxpYyBjcmVhdG9yOiBDcmVhdG9yQmFzZTxTdXJ2ZXkuU3VydmV5PiA9IG51bGxcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVEZWZhdWx0SXRlbXMoc3VwcG9ydGVkUXVlc3Rpb25zKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5rb0FjdGl2ZUNhdGVnb3J5LnN1YnNjcmliZShmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZi5rb0NhdGVnb3JpZXMoKS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2F0ZWdvcnkgPSBzZWxmLmtvQ2F0ZWdvcmllcygpW2ldO1xuICAgICAgICAoPGFueT5jYXRlZ29yeSkua29Db2xsYXBzZWQoKDxhbnk+Y2F0ZWdvcnkpLm5hbWUgIT09IG5ld1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogVGhlIEFycmF5IG9mIFRvb2xib3ggaXRlbXMgYXMgVGV4dCBKU09OLlxuICAgKi9cbiAgcHVibGljIGdldCBqc29uVGV4dCgpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5pdGVtc1ZhbHVlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGpzb25UZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLml0ZW1zVmFsdWUgPSB2YWx1ZSA/IEpTT04ucGFyc2UodmFsdWUpIDogW107XG4gICAgdGhpcy5vbkl0ZW1zQ2hhbmdlZCgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgQXJyYXkgb2YgY29waWVkIFRvb2xib3ggaXRlbXMgYXMgVGV4dCBKU09OLlxuICAgKi9cbiAgcHVibGljIGdldCBjb3BpZWRKc29uVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmNvcGllZEl0ZW1zKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNvcGllZEpzb25UZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB2YXIgbmV3SXRlbXMgPSB2YWx1ZSA/IEpTT04ucGFyc2UodmFsdWUpIDogW107XG4gICAgdGhpcy5jbGVhckNvcGllZEl0ZW1zKCk7XG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IG5ld0l0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBuZXdJdGVtc1tpXS5pc0NvcGllZCA9IHRydWU7XG4gICAgICB0aGlzLmFkZEl0ZW0obmV3SXRlbXNbaV0pO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogVGhlIEFycmF5IG9mIFRvb2xib3ggaXRlbXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGl0ZW1zKCk6IEFycmF5PElRdWVzdGlvblRvb2xib3hJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNWYWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGl0ZW1OYW1lcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBjb25zdCByZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcy5wdXNoKHRoaXMuaXRlbXNbaV0ubmFtZSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBBcnJheSBvZiBjb3BpZWQgVG9vbGJveCBpdGVtc1xuICAgKi9cbiAgcHVibGljIGdldCBjb3BpZWRJdGVtcygpOiBBcnJheTxJUXVlc3Rpb25Ub29sYm94SXRlbT4ge1xuICAgIGNvbnN0IHJlc3VsdDogSVF1ZXN0aW9uVG9vbGJveEl0ZW1bXSA9IFtdO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLml0ZW1zVmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLml0ZW1zVmFsdWVbaV0uaXNDb3BpZWQpIHJlc3VsdC5wdXNoKHRoaXMuaXRlbXNWYWx1ZVtpXSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIEFkZCB0b29sYm94IGl0ZW1zIGludG8gdGhlIFRvb2xib3hcbiAgICogQHBhcmFtIGl0ZW1zIHRoZSBsaXN0IG9mIG5ldyBpdGVtc1xuICAgKiBAcGFyYW0gY2xlYXJBbGwgc2V0IGl0IHRvIHRydWUgdG8gY2xlYXIgYWxsIHByZXZpb3VzIGl0ZW1zLlxuICAgKi9cbiAgcHVibGljIGFkZEl0ZW1zKFxuICAgIGl0ZW1zOiBBcnJheTxJUXVlc3Rpb25Ub29sYm94SXRlbT4sXG4gICAgY2xlYXJBbGw6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBpZiAoY2xlYXJBbGwpIHtcbiAgICAgIHRoaXMuY2xlYXJJdGVtcygpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuaXRlbXNWYWx1ZS5wdXNoKGl0ZW1zW2ldKTtcbiAgICB9XG4gICAgdGhpcy5vbkl0ZW1zQ2hhbmdlZCgpO1xuICB9XG4gIC8qKlxuICAgKiBBZGQgYSBjb3BpZWQgUXVlc3Rpb24gaW50byBUb29sYm94XG4gICAqIEBwYXJhbSBxdWVzdGlvbiBhIGNvcGllZCBTdXJ2ZXkuUXVlc3Rpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgYSBqc29uIG9iamVjdCB0aGF0IGFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgcXVlc3Rpb24gcHJvcGVydGllcy4gQXR0cmlidXRlcyBhcmU6IG5hbWUsIHRpdGxlLCB0b29sdGlwLCBpc0NvcGllZCwgaWNvbk5hbWUsIGpzb24gYW5kIGNhdGVnb3J5LlxuICAgKi9cbiAgcHVibGljIGFkZENvcGllZEl0ZW0ocXVlc3Rpb246IFN1cnZleS5RdWVzdGlvbiwgb3B0aW9uczogYW55ID0gbnVsbCkge1xuICAgIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9ICEhb3B0aW9ucy5uYW1lID8gb3B0aW9ucy5uYW1lIDogcXVlc3Rpb24ubmFtZTtcbiAgICBjb25zdCB0aXRsZTogc3RyaW5nID0gISFvcHRpb25zLnRpdGxlID8gb3B0aW9ucy50aXRsZSA6IG5hbWU7XG4gICAgY29uc3QgdG9vbHRpcDogc3RyaW5nID0gISFvcHRpb25zLnRvb2x0aXAgPyBvcHRpb25zLnRvb2x0aXAgOiB0aXRsZTtcbiAgICBjb25zdCBpdGVtOiBJUXVlc3Rpb25Ub29sYm94SXRlbSA9IHtcbiAgICAgIGlkOiBuYW1lLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgIHRvb2x0aXA6IHRvb2x0aXAsXG4gICAgICBpc0NvcGllZDogb3B0aW9ucy5pc0NvcGllZCAhPT0gZmFsc2UsXG4gICAgICBpY29uTmFtZTogISFvcHRpb25zLmljb25OYW1lID8gb3B0aW9ucy5pY29uTmFtZSA6IFwiaWNvbi1kZWZhdWx0XCIsXG4gICAgICBqc29uOiAhIW9wdGlvbnMuanNvbiA/IG9wdGlvbnMuanNvbiA6IHRoaXMuZ2V0UXVlc3Rpb25KU09OKHF1ZXN0aW9uKSxcbiAgICAgIGNhdGVnb3J5OiAhIW9wdGlvbnMuY2F0ZWdvcnkgPyBvcHRpb25zLmNhdGVnb3J5IDogXCJcIixcbiAgICB9O1xuICAgIGlmICh0aGlzLnJlcGxhY2VJdGVtKGl0ZW0pKSByZXR1cm47XG4gICAgY29uc3QgY29waWVkOiBJUXVlc3Rpb25Ub29sYm94SXRlbVtdID0gdGhpcy5jb3BpZWRJdGVtcztcbiAgICBpZiAodGhpcy5jb3BpZWRJdGVtTWF4Q291bnQgPiAwICYmIGNvcGllZC5sZW5ndGggPT0gdGhpcy5jb3BpZWRJdGVtTWF4Q291bnQpXG4gICAgICB0aGlzLnJlbW92ZUl0ZW0oY29waWVkW3RoaXMuY29waWVkSXRlbU1heENvdW50IC0gMV0ubmFtZSk7XG4gICAgdGhpcy5hZGRJdGVtKGl0ZW0pO1xuICB9XG4gIC8qKlxuICAgKiBBZGQgYSB0b29sYm94IGl0ZW1cbiAgICogQHBhcmFtIGl0ZW0gdGhlIHRvb2xib3ggaXRlbSBkZXNjcmlwdGlvblxuICAgKiBAcGFyYW0gaW5kZXggdGhlIHRvb2xib3ggaW5kZXggdG8gcGxhY2UgdGhlIGl0ZW0sIHRoZSBpdGVtIGlzIGFkZGVkIHRvIHRoZSBlbmQgaWYgaW5kZXggbm90IHBhc3NlZFxuICAgKiBAc2VlIElRdWVzdGlvblRvb2xib3hJdGVtXG4gICAqL1xuICBwdWJsaWMgYWRkSXRlbShpdGVtOiBJUXVlc3Rpb25Ub29sYm94SXRlbSwgaW5kZXg/OiBudW1iZXIpIHtcbiAgICB0aGlzLmNvcnJlY3RJdGVtKGl0ZW0pO1xuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLml0ZW1zVmFsdWUucHVzaChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtc1ZhbHVlLnNwbGljZShpbmRleCwgMCwgaXRlbSk7XG4gICAgfVxuICAgIHRoaXMub25JdGVtc0NoYW5nZWQoKTtcbiAgfVxuICBwcml2YXRlIGNvcnJlY3RJdGVtKGl0ZW06IElRdWVzdGlvblRvb2xib3hJdGVtKSB7XG4gICAgaWYgKCFpdGVtLnRpdGxlKSBpdGVtLnRpdGxlID0gaXRlbS5uYW1lO1xuICAgIGlmICghaXRlbS50b29sdGlwKSBpdGVtLnRvb2x0aXAgPSBpdGVtLnRpdGxlO1xuICB9XG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgdG9vbGJveCBpdGVtLCBhZGQgZGVsZXRlIHRoZSBvbGQgaXRlbSB3aXRoIHRoZSBzYW1lIG5hbWVcbiAgICogQHBhcmFtIGl0ZW0gdGhlIHRvb2xib3ggaXRlbSBkZXNjcmlwdGlvblxuICAgKiBAc2VlIElRdWVzdGlvblRvb2xib3hJdGVtXG4gICAqL1xuICBwdWJsaWMgcmVwbGFjZUl0ZW0oaXRlbTogSVF1ZXN0aW9uVG9vbGJveEl0ZW0pOiBib29sZWFuIHtcbiAgICB0aGlzLmNvcnJlY3RJdGVtKGl0ZW0pO1xuICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLmluZGV4T2YoaXRlbS5uYW1lKTtcbiAgICBpZiAoaW5kZXggPCAwKSByZXR1cm47XG4gICAgdGhpcy5pdGVtc1ZhbHVlW2luZGV4XSA9IGl0ZW07XG4gICAgdGhpcy5vbkl0ZW1zQ2hhbmdlZCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYSB0b29sYm94IGl0ZW0gYnkgaXRzIG5hbWVcbiAgICogQHBhcmFtIG5hbWUgdG9vbGJveCBpdGVtIG5hbWVcbiAgICogQHNlZSBJUXVlc3Rpb25Ub29sYm94SXRlbVxuICAgKi9cbiAgcHVibGljIHJlbW92ZUl0ZW0obmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuaW5kZXhPZihuYW1lKTtcbiAgICBpZiAoaW5kZXggPCAwKSByZXR1cm4gZmFsc2U7XG4gICAgdGhpcy5pdGVtc1ZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5vbkl0ZW1zQ2hhbmdlZCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYWxsIHRvb2xib3ggaXRlbXMuXG4gICAqL1xuICBwdWJsaWMgY2xlYXJJdGVtcygpIHtcbiAgICB0aGlzLml0ZW1zVmFsdWUgPSBbXTtcbiAgICB0aGlzLm9uSXRlbXNDaGFuZ2VkKCk7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgY29waWVkIHRvb2xib3ggaXRlbXMuXG4gICAqL1xuICBwdWJsaWMgY2xlYXJDb3BpZWRJdGVtcygpIHtcbiAgICBjb25zdCByZW1vdmVkSXRlbXM6IElRdWVzdGlvblRvb2xib3hJdGVtW10gPSB0aGlzLmNvcGllZEl0ZW1zO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCByZW1vdmVkSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMucmVtb3ZlSXRlbShyZW1vdmVkSXRlbXNbaV0ubmFtZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRvb2xib3ggaXRlbSBieSBpdHMgbmFtZS4gUmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIHRvb2xib3ggaXRlbSB3aXRoIHRoaXMgbmFtZVxuICAgKiBAcGFyYW0gbmFtZVxuICAgKi9cbiAgcHVibGljIGdldEl0ZW1CeU5hbWUobmFtZTogc3RyaW5nKTogSVF1ZXN0aW9uVG9vbGJveEl0ZW0ge1xuICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLmluZGV4T2YobmFtZSk7XG4gICAgcmV0dXJuIGluZGV4ID4gLTEgPyB0aGlzLml0ZW1zVmFsdWVbaW5kZXhdIDogbnVsbDtcbiAgfVxuICAvKipcbiAgICogU2V0IGl0IHRvIHRydWUsIHRvIGFsbG93IGVuZC11c2VyIHRvIGV4cGFuZCBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LiBUaGVyZSB3aWxsIG5vIGFjdGl2ZSBjYXRlZ29yeSBpbiB0aGlzIGNhc2VcbiAgICogQHNlZSBhY3RpdmVDYXRlZ29yeVxuICAgKi9cbiAgcHVibGljIGdldCBhbGxvd0V4cGFuZE11bHRpcGxlQ2F0ZWdvcmllcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd0V4cGFuZE11bHRpcGxlQ2F0ZWdvcmllc1ZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgYWxsb3dFeHBhbmRNdWx0aXBsZUNhdGVnb3JpZXModmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5hbGxvd0V4cGFuZE11bHRpcGxlQ2F0ZWdvcmllc1ZhbHVlID0gdmFsO1xuICAgIHRoaXMudXBkYXRlQ2F0ZWdvcmllc1N0YXRlKCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIHRvIGV4cGFuZCBhbGwgY2F0ZWdvcmllcyBhbmQgaGlkZSBleHBhbmQvY29sbGFwc2UgY2F0ZWdvcnkgYnV0dG9uc1xuICAgKi9cbiAgcHVibGljIGdldCBrZWVwQWxsQ2F0ZWdvcmllc0V4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmtlZXBBbGxDYXRlZ29yaWVzRXhwYW5kZWRWYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IGtlZXBBbGxDYXRlZ29yaWVzRXhwYW5kZWQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5rZWVwQWxsQ2F0ZWdvcmllc0V4cGFuZGVkVmFsdWUgPSB2YWw7XG4gICAgdGhpcy5rb0NhbkNvbGxhcHNlQ2F0ZWdvcmllcyghdGhpcy5rZWVwQWxsQ2F0ZWdvcmllc0V4cGFuZGVkKTtcbiAgICB0aGlzLnVwZGF0ZUNhdGVnb3JpZXNTdGF0ZSgpO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlQ2F0ZWdvcmllc1N0YXRlKCkge1xuICAgIHZhciBub0FjdGl2ZSA9XG4gICAgICB0aGlzLmFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzIHx8IHRoaXMua2VlcEFsbENhdGVnb3JpZXNFeHBhbmRlZDtcbiAgICBpZiAobm9BY3RpdmUpIHtcbiAgICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPSBcIlwiO1xuICAgICAgaWYgKHRoaXMua2VlcEFsbENhdGVnb3JpZXNFeHBhbmRlZCkge1xuICAgICAgICB0aGlzLmV4cGFuZEFsbENhdGVnb3JpZXMoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMua29DYXRlZ29yaWVzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gKDxhbnk+dGhpcy5rb0NhdGVnb3JpZXMoKVswXSkubmFtZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSBjYXRlZ29yeSBvZiB0aGUgdG9vbGJveCBpdGVtXG4gICAqIEBwYXJhbSBuYW1lIHRoZSB0b29sYm94IGl0ZW0gbmFtZVxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgbmV3IGNhdGVnb3J5IG5hbWVcbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VDYXRlZ29yeShuYW1lOiBzdHJpbmcsIGNhdGVnb3J5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNoYW5nZUNhdGVnb3JpZXMoW3sgbmFtZTogbmFtZSwgY2F0ZWdvcnk6IGNhdGVnb3J5IH1dKTtcbiAgfVxuICAvKipcbiAgICogQ2hhbmdlIGNhdGVnb3JpZXMgZm9yIHNldmVyYWwgdG9vbGJveCBpdGVtcy5cbiAgICogQHBhcmFtIGNoYW5nZWRJdGVtcyB0aGUgYXJyYXkgb2Ygb2JqZWN0cyB7bmFtZTogXCJ5b3VyIHRvb2xib3ggaXRlbSBuYW1lXCIsIGNhdGVnb3J5OiBcIm5ldyBjYXRlZ29yeSBuYW1lXCJ9XG4gICAqL1xuICBwdWJsaWMgY2hhbmdlQ2F0ZWdvcmllcyhjaGFuZ2VkSXRlbXM6IEFycmF5PGFueT4pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5nZWRJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGl0ZW0gPSBjaGFuZ2VkSXRlbXNbaV07XG4gICAgICB2YXIgdG9vbGJveEl0ZW0gPSB0aGlzLmdldEl0ZW1CeU5hbWUoaXRlbS5uYW1lKTtcbiAgICAgIGlmICh0b29sYm94SXRlbSkge1xuICAgICAgICB0b29sYm94SXRlbS5jYXRlZ29yeSA9IGl0ZW0uY2F0ZWdvcnk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub25JdGVtc0NoYW5nZWQoKTtcbiAgfVxuICAvKipcbiAgICogU2V0IGFuZCBnZXQgYW5kIGFjdGl2ZSBjYXRlZ29yeS4gVGhpcyBwcm9wZXJ0eSBkb2Vzbid0IHdvcmsgaWYgYWxsb3dFeHBhbmRNdWx0aXBsZUNhdGVnb3JpZXMgaXMgdHJ1ZS4gSXRzIGRlZmF1bHQgdmFsdWUgaXMgZW1wdHkuXG4gICAqIEBzZWUgYWxsb3dFeHBhbmRNdWx0aXBsZUNhdGVnb3JpZXNcbiAgICogQHNlZSBleHBhbmRDYXRlZ29yeVxuICAgKiBAc2VlIGNvbGxhcHNlQ2F0ZWdvcnlcbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ2F0ZWdvcnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5rb0FjdGl2ZUNhdGVnb3J5KCk7XG4gIH1cbiAgcHVibGljIHNldCBhY3RpdmVDYXRlZ29yeSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMua29BY3RpdmVDYXRlZ29yeSh2YWwpO1xuICB9XG4gIHByaXZhdGUgZG9DYXRlZ29yeUNsaWNrKGNhdGVnb3J5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMua2VlcEFsbENhdGVnb3JpZXNFeHBhbmRlZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzKSB7XG4gICAgICB2YXIgY2F0ZWdvcnkgPSB0aGlzLmdldENhdGVnb3J5QnlOYW1lKGNhdGVnb3J5TmFtZSk7XG4gICAgICBpZiAoY2F0ZWdvcnkpIHtcbiAgICAgICAgY2F0ZWdvcnkua29Db2xsYXBzZWQoIWNhdGVnb3J5LmtvQ29sbGFwc2VkKCkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gY2F0ZWdvcnlOYW1lO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogRXhwYW5kIGEgY2F0ZWdvcnkgYnkgaXRzIG5hbWUuIElmIGFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzIGlzIGZhbHNlIChkZWZhdWx0IHZhbHVlKSwgYWxsIG90aGVyIGNhdGVnb3JpZXMgYmVjb21lIGNvbGxhcHNlZFxuICAgKiBAcGFyYW0gY2F0ZWdvcnlOYW1lIHRoZSBjYXRlZ29yeSBuYW1lXG4gICAqIEBzZWUgYWxsb3dFeHBhbmRNdWx0aXBsZUNhdGVnb3JpZXNcbiAgICogQHNlZSBjb2xsYXBzZUNhdGVnb3J5XG4gICAqL1xuICBwdWJsaWMgZXhwYW5kQ2F0ZWdvcnkoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5hbGxvd0V4cGFuZE11bHRpcGxlQ2F0ZWdvcmllcykge1xuICAgICAgdmFyIGNhdGVnb3J5ID0gdGhpcy5nZXRDYXRlZ29yeUJ5TmFtZShjYXRlZ29yeU5hbWUpO1xuICAgICAgaWYgKGNhdGVnb3J5KSB7XG4gICAgICAgIGNhdGVnb3J5LmtvQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IGNhdGVnb3J5TmFtZTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIENvbGxhcHNlIGEgY2F0ZWdvcnkgYnkgaXRzIG5hbWUuIElmIGFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzIGlzIGZhbHNlIChkZWZhdWx0IHZhbHVlKSB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZ1xuICAgKiBAcGFyYW0gY2F0ZWdvcnlOYW1lIHRoZSBjYXRlZ29yeSBuYW1lXG4gICAqIEBzZWUgYWxsb3dFeHBhbmRNdWx0aXBsZUNhdGVnb3JpZXNcbiAgICovXG4gIHB1YmxpYyBjb2xsYXBzZUNhdGVnb3J5KGNhdGVnb3J5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzKSByZXR1cm47XG4gICAgdmFyIGNhdGVnb3J5ID0gdGhpcy5nZXRDYXRlZ29yeUJ5TmFtZShjYXRlZ29yeU5hbWUpO1xuICAgIGlmIChjYXRlZ29yeSkge1xuICAgICAgY2F0ZWdvcnkua29Db2xsYXBzZWQodHJ1ZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBFeHBhbmQgYWxsIGNhdGVnb3JpZXMuIElmIGFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzIGlzIGZhbHNlIChkZWZhdWx0IHZhbHVlKSB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZ1xuICAgKiBAc2VlIGFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzXG4gICAqL1xuICBwdWJsaWMgZXhwYW5kQWxsQ2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLmV4cGFuZENvbGxhcHNlQWxsQ2F0ZWdvcmllcyhmYWxzZSk7XG4gIH1cbiAgLyoqXG4gICAqIENvbGxhcHNlIGFsbCBjYXRlZ29yaWVzLiBJZiBhbGxvd0V4cGFuZE11bHRpcGxlQ2F0ZWdvcmllcyBpcyBmYWxzZSAoZGVmYXVsdCB2YWx1ZSkgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmdcbiAgICogQHNlZSBhbGxvd0V4cGFuZE11bHRpcGxlQ2F0ZWdvcmllc1xuICAgKi9cbiAgcHVibGljIGNvbGxhcHNlQWxsQ2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLmV4cGFuZENvbGxhcHNlQWxsQ2F0ZWdvcmllcyh0cnVlKTtcbiAgfVxuICBwcml2YXRlIGV4cGFuZENvbGxhcHNlQWxsQ2F0ZWdvcmllcyhpc0NvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIHZhciBjYXRlZ29yaWVzID0gdGhpcy5rb0NhdGVnb3JpZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3JpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICg8YW55PmNhdGVnb3JpZXNbaV0pLmtvQ29sbGFwc2VkKGlzQ29sbGFwc2VkKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRDYXRlZ29yeUJ5TmFtZShjYXRlZ29yeU5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgdmFyIGNhdGVnb3JpZXMgPSB0aGlzLmtvQ2F0ZWdvcmllcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNhdGVnb3J5ID0gPGFueT5jYXRlZ29yaWVzW2ldO1xuICAgICAgaWYgKGNhdGVnb3J5Lm5hbWUgPT09IGNhdGVnb3J5TmFtZSkgcmV0dXJuIGNhdGVnb3J5O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwcm90ZWN0ZWQgb25JdGVtc0NoYW5nZWQoKSB7XG4gICAgdGhpcy5rb0l0ZW1zKFtdKTtcbiAgICB0aGlzLmtvSXRlbXModGhpcy5pdGVtc1ZhbHVlKTtcbiAgICB2YXIgY2F0ZWdvcmllcyA9IFtdO1xuICAgIHZhciBjYXRlZ29yaWVzSGFzaCA9IHt9O1xuICAgIHZhciBwcmV2QWN0aXZlQ2F0ZWdvcnkgPSB0aGlzLmtvQWN0aXZlQ2F0ZWdvcnkoKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLml0ZW1zVmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gdGhpcy5pdGVtc1ZhbHVlW2ldO1xuICAgICAgdmFyIGNhdGVnb3J5TmFtZSA9IGl0ZW0uY2F0ZWdvcnlcbiAgICAgICAgPyBpdGVtLmNhdGVnb3J5XG4gICAgICAgIDogZWRpdG9yTG9jYWxpemF0aW9uLmdldFN0cmluZyhcImVkLnRvb2xib3hHZW5lcmFsQ2F0ZWdvcnlcIik7XG4gICAgICBpZiAoIWNhdGVnb3JpZXNIYXNoW2NhdGVnb3J5TmFtZV0pIHtcbiAgICAgICAgdmFyIGNhdGVnb3J5ID0ge1xuICAgICAgICAgIG5hbWU6IGNhdGVnb3J5TmFtZSxcbiAgICAgICAgICBpdGVtczogW10sXG4gICAgICAgICAga29Db2xsYXBzZWQ6IGtvLm9ic2VydmFibGUoXG4gICAgICAgICAgICBjYXRlZ29yeU5hbWUgIT09IHByZXZBY3RpdmVDYXRlZ29yeSAmJlxuICAgICAgICAgICAgICAhdGhpcy5rZWVwQWxsQ2F0ZWdvcmllc0V4cGFuZGVkXG4gICAgICAgICAgKSxcbiAgICAgICAgICBleHBhbmQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNlbGYuZG9DYXRlZ29yeUNsaWNrKHRoaXMubmFtZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgY2F0ZWdvcmllc0hhc2hbY2F0ZWdvcnlOYW1lXSA9IGNhdGVnb3J5O1xuICAgICAgICBjYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkpO1xuICAgICAgfVxuICAgICAgY2F0ZWdvcmllc0hhc2hbY2F0ZWdvcnlOYW1lXS5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgICB0aGlzLmtvQ2F0ZWdvcmllcyhjYXRlZ29yaWVzKTtcbiAgICBpZiAoIXRoaXMua2VlcEFsbENhdGVnb3JpZXNFeHBhbmRlZCkge1xuICAgICAgaWYgKCF0aGlzLmFsbG93RXhwYW5kTXVsdGlwbGVDYXRlZ29yaWVzKSB7XG4gICAgICAgIGlmIChwcmV2QWN0aXZlQ2F0ZWdvcnkgJiYgY2F0ZWdvcmllc0hhc2hbcHJldkFjdGl2ZUNhdGVnb3J5XSkge1xuICAgICAgICAgIHRoaXMua29BY3RpdmVDYXRlZ29yeShwcmV2QWN0aXZlQ2F0ZWdvcnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMua29BY3RpdmVDYXRlZ29yeShcbiAgICAgICAgICAgIGNhdGVnb3JpZXMubGVuZ3RoID4gMCA/IGNhdGVnb3JpZXNbMF0ubmFtZSA6IFwiXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY2F0ZWdvcmllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY2F0ZWdvcmllc1swXS5rb0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rb0hhc0NhdGVnb3JpZXMoY2F0ZWdvcmllcy5sZW5ndGggPiAxKTtcbiAgfVxuICBwcml2YXRlIGluZGV4T2YobmFtZTogc3RyaW5nKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLml0ZW1zVmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLml0ZW1zVmFsdWVbaV0ubmFtZSA9PSBuYW1lKSByZXR1cm4gaTtcbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIHByaXZhdGUgcmVvcmRlckl0ZW1zKCkge1xuICAgIHRoaXMuaXRlbXNWYWx1ZS5zb3J0KChpMSwgaTIpID0+IHtcbiAgICAgIHZhciBpbmRleDEgPSB0aGlzLl9vcmRlcmVkUXVlc3Rpb25zLmluZGV4T2YoaTEubmFtZSk7XG4gICAgICBpZiAoaW5kZXgxID09PSAtMSkgaW5kZXgxID0gTnVtYmVyLk1BWF9WQUxVRTtcbiAgICAgIHZhciBpbmRleDIgPSB0aGlzLl9vcmRlcmVkUXVlc3Rpb25zLmluZGV4T2YoaTIubmFtZSk7XG4gICAgICBpZiAoaW5kZXgyID09PSAtMSkgaW5kZXgyID0gTnVtYmVyLk1BWF9WQUxVRTtcbiAgICAgIHJldHVybiBpbmRleDEgLSBpbmRleDI7XG4gICAgfSk7XG4gICAgdGhpcy5vbkl0ZW1zQ2hhbmdlZCgpO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRGVmYXVsdEl0ZW1zKHN1cHBvcnRlZFF1ZXN0aW9uczogQXJyYXk8c3RyaW5nPikge1xuICAgIHRoaXMuY2xlYXJJdGVtcygpO1xuICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLmdldFF1ZXN0aW9uVHlwZXMoc3VwcG9ydGVkUXVlc3Rpb25zKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG5hbWUgPSBxdWVzdGlvbnNbaV07XG4gICAgICB2YXIgcXVlc3Rpb24gPSBTdXJ2ZXkuRWxlbWVudEZhY3RvcnkuSW5zdGFuY2UuY3JlYXRlRWxlbWVudChuYW1lLCBcInExXCIpO1xuICAgICAgaWYgKCFxdWVzdGlvbikge1xuICAgICAgICBxdWVzdGlvbiA9IFN1cnZleS5TZXJpYWxpemVyLmNyZWF0ZUNsYXNzKG5hbWUpO1xuICAgICAgfVxuICAgICAgdmFyIGpzb24gPSB0aGlzLmdldFF1ZXN0aW9uSlNPTihxdWVzdGlvbik7XG4gICAgICB2YXIgdGl0bGUgPSBlZGl0b3JMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicXQuXCIgKyBuYW1lKTtcbiAgICAgIGNvbnN0IGl0ZW06IElRdWVzdGlvblRvb2xib3hJdGVtID0ge1xuICAgICAgICBpZDogbmFtZSxcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgaWNvbk5hbWU6IFwiaWNvbi1cIiArIG5hbWUsXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgdG9vbHRpcDogdGl0bGUsXG4gICAgICAgIGpzb246IGpzb24sXG4gICAgICAgIGlzQ29waWVkOiBmYWxzZSxcbiAgICAgICAgY2F0ZWdvcnk6IFwiXCIsXG4gICAgICB9O1xuICAgICAgdGhpcy5pdGVtc1ZhbHVlLnB1c2goaXRlbSk7XG4gICAgfVxuICAgIHRoaXMucmVnaXN0ZXJDdXN0b21XaWRnZXRzKCk7XG4gICAgdGhpcy5yZWdpc3RlckNvbXBvbmVudFF1ZXN0aW9ucygpO1xuICAgIHRoaXMub25JdGVtc0NoYW5nZWQoKTtcbiAgfVxuICBwcml2YXRlIHJlZ2lzdGVyQ3VzdG9tV2lkZ2V0cygpIHtcbiAgICB2YXIgaW5zdCA9IFN1cnZleS5DdXN0b21XaWRnZXRDb2xsZWN0aW9uLkluc3RhbmNlO1xuICAgIGlmICghaW5zdC5nZXRBY3RpdmF0ZWRCeSkgcmV0dXJuO1xuICAgIHZhciB3aWRnZXRzID0gaW5zdC53aWRnZXRzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd2lkZ2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGluc3QuZ2V0QWN0aXZhdGVkQnkod2lkZ2V0c1tpXS5uYW1lKSAhPSBcImN1c3RvbXR5cGVcIikgY29udGludWU7XG4gICAgICB2YXIgd2lkZ2V0SnNvbiA9IHdpZGdldHNbaV0ud2lkZ2V0SnNvbjtcbiAgICAgIGlmICghd2lkZ2V0SnNvbi53aWRnZXRJc0xvYWRlZCB8fCAhd2lkZ2V0SnNvbi53aWRnZXRJc0xvYWRlZCgpKSBjb250aW51ZTtcbiAgICAgIHRoaXMuYWRkSXRlbUZyb21KU09OKHdpZGdldEpzb24pO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIHJlZ2lzdGVyQ29tcG9uZW50UXVlc3Rpb25zKCkge1xuICAgIHZhciBpdGVtcyA9IHRoaXMuZ2V0Q29tcG9uZW50SXRlbXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmFkZEl0ZW1Gcm9tSlNPTihpdGVtc1tpXS5qc29uKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRDb21wb25lbnRJdGVtcygpOiBBcnJheTxhbnk+IHtcbiAgICB2YXIgaW5zdGFuY2VPd25lciA9IFN1cnZleVtcIkN1c3RvbVF1ZXN0aW9uQ29sbGVjdGlvblwiXTtcbiAgICBpZiAoIWluc3RhbmNlT3duZXIpIHtcbiAgICAgIGluc3RhbmNlT3duZXIgPSBTdXJ2ZXlbXCJDb21wb25lbnRDb2xsZWN0aW9uXCJdO1xuICAgIH1cbiAgICBpZiAoIWluc3RhbmNlT3duZXIpIHJldHVybiBbXTtcbiAgICB2YXIgaXRlbXMgPSBpbnN0YW5jZU93bmVyLkluc3RhbmNlW1wiaXRlbXNcIl07XG4gICAgcmV0dXJuICEhaXRlbXMgPyBpdGVtcyA6IFtdO1xuICB9XG4gIHByaXZhdGUgYWRkSXRlbUZyb21KU09OKGpzb246IGFueSkge1xuICAgIGlmIChqc29uLnNob3dJblRvb2xib3ggPT09IGZhbHNlKSByZXR1cm47XG4gICAgY29uc3QgaWNvbk5hbWU6IHN0cmluZyA9IGpzb24uaWNvbk5hbWUgPyBqc29uLmljb25OYW1lIDogXCJpY29uLWRlZmF1bHRcIjtcbiAgICBsZXQgdGl0bGU6IHN0cmluZyA9IGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJxdC5cIiArIGpzb24ubmFtZSk7XG4gICAgaWYgKCF0aXRsZSB8fCB0aXRsZSA9PSBqc29uLm5hbWUpIHtcbiAgICAgIHRpdGxlID0ganNvbi50aXRsZTtcbiAgICB9XG4gICAgaWYgKCF0aXRsZSkge1xuICAgICAgdGl0bGUgPSBqc29uLm5hbWU7XG4gICAgfVxuICAgIHZhciBlbGVtZW50SnNvbiA9IGpzb24uZGVmYXVsdEpTT04gPyBqc29uLmRlZmF1bHRKU09OIDoge307XG4gICAgaWYgKCFlbGVtZW50SnNvbi50eXBlKSB7XG4gICAgICBlbGVtZW50SnNvbi50eXBlID0ganNvbi5uYW1lO1xuICAgIH1cbiAgICB2YXIgY2F0ZWdvcnkgPSBqc29uLmNhdGVnb3J5ID8ganNvbi5jYXRlZ29yeSA6IFwiXCI7XG4gICAgY29uc3QgaXRlbTogSVF1ZXN0aW9uVG9vbGJveEl0ZW0gPSB7XG4gICAgICBpZDoganNvbi5uYW1lLFxuICAgICAgbmFtZToganNvbi5uYW1lLFxuICAgICAgaWNvbk5hbWU6IGljb25OYW1lLFxuICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgdG9vbHRpcDogdGl0bGUsXG4gICAgICBqc29uOiBlbGVtZW50SnNvbixcbiAgICAgIGlzQ29waWVkOiBmYWxzZSxcbiAgICAgIGNhdGVnb3J5OiBjYXRlZ29yeSxcbiAgICB9O1xuICAgIHRoaXMuaXRlbXNWYWx1ZS5wdXNoKGl0ZW0pO1xuICB9XG4gIHByaXZhdGUgZ2V0UXVlc3Rpb25KU09OKHF1ZXN0aW9uOiBhbnkpOiBhbnkge1xuICAgIHZhciBqc29uID0gbmV3IFN1cnZleS5Kc29uT2JqZWN0KCkudG9Kc29uT2JqZWN0KHF1ZXN0aW9uKTtcbiAgICBqc29uLnR5cGUgPSBxdWVzdGlvbi5nZXRUeXBlKCk7XG4gICAgaWYgKCEhdGhpcy5fcXVlc3Rpb25EZWZhdWx0U2V0dGluZ3NbanNvbi50eXBlXSkge1xuICAgICAgdmFyIGRlZmF1bHRTZXR0aW5ncyA9IHRoaXMuX3F1ZXN0aW9uRGVmYXVsdFNldHRpbmdzW2pzb24udHlwZV0oKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBkZWZhdWx0U2V0dGluZ3MpIHtcbiAgICAgICAganNvbltrZXldID0gZGVmYXVsdFNldHRpbmdzW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBqc29uO1xuICB9XG4gIHByaXZhdGUgZ2V0UXVlc3Rpb25UeXBlcyhzdXBwb3J0ZWRRdWVzdGlvbnM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYWxsVHlwZXM6IHN0cmluZ1tdID0gU3VydmV5LkVsZW1lbnRGYWN0b3J5Lkluc3RhbmNlLmdldEFsbFR5cGVzKCk7XG4gICAgaWYgKCFzdXBwb3J0ZWRRdWVzdGlvbnMgfHwgc3VwcG9ydGVkUXVlc3Rpb25zLmxlbmd0aCA9PSAwKVxuICAgICAgc3VwcG9ydGVkUXVlc3Rpb25zID0gYWxsVHlwZXM7XG4gICAgY29uc3QgcXVlc3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vcmRlcmVkUXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSB0aGlzLm9yZGVyZWRRdWVzdGlvbnNbaV07XG4gICAgICBpZiAoc3VwcG9ydGVkUXVlc3Rpb25zLmluZGV4T2YobmFtZSkgPiAtMSAmJiBhbGxUeXBlcy5pbmRleE9mKG5hbWUpID4gLTEpXG4gICAgICAgIHF1ZXN0aW9ucy5wdXNoKG5hbWUpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN1cHBvcnRlZFF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbmFtZTogc3RyaW5nID0gc3VwcG9ydGVkUXVlc3Rpb25zW2ldO1xuICAgICAgaWYgKFxuICAgICAgICBxdWVzdGlvbnMuaW5kZXhPZihzdXBwb3J0ZWRRdWVzdGlvbnNbaV0pIDwgMCAmJlxuICAgICAgICBhbGxUeXBlcy5pbmRleE9mKG5hbWUpID4gLTFcbiAgICAgIClcbiAgICAgICAgcXVlc3Rpb25zLnB1c2gobmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBxdWVzdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZGlzcG9zZSgpIHt9XG59XG4iLCJpbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgRWRpdGFibGVPYmplY3QgfSBmcm9tIFwiLi9wcm9wZXJ0eUVkaXRvcnMvZWRpdGFibGVPYmplY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJVW5kb1JlZG9DaGFuZ2Uge1xuICBvYmplY3Q6IGFueTtcbiAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XG4gIG9sZFZhbHVlOiBhbnk7XG4gIG5ld1ZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBVbmRvUmVkb01hbmFnZXIge1xuICBwdWJsaWMgb25RdWVzdGlvbk5hbWVDaGFuZ2VkQ2FsbGJhY2s6IChcbiAgICBvYmo6IFN1cnZleS5CYXNlLFxuICAgIG9sZE5hbWU6IHN0cmluZ1xuICApID0+IGFueTtcbiAgY29uc3RydWN0b3IoKSB7fVxuICBwdWJsaWMgb25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkVmFsdWU6IGFueSxcbiAgICBuZXdWYWx1ZTogYW55LFxuICAgIHNlbmRlcjogU3VydmV5LkJhc2UsXG4gICAgYXJyYXlDaGFuZ2VzOiBTdXJ2ZXkuQXJyYXlDaGFuZ2VzXG4gICkge1xuICAgIGlmICghdGhpcy5oYXNQcm9wZXJ0eUluU2VyaWFsaXplcihzZW5kZXIsIG5hbWUpKSByZXR1cm47XG4gICAgaWYgKEVkaXRhYmxlT2JqZWN0LmlzQ29weU9iamVjdChzZW5kZXIpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX2lnbm9yZUNoYW5nZXMpIHJldHVybjtcblxuICAgIGxldCB0cmFuc2FjdGlvbiA9IHRoaXMuX3ByZXBhcmluZ1RyYW5zYWN0aW9uO1xuICAgIGxldCBhY3Rpb24gPSBhcnJheUNoYW5nZXNcbiAgICAgID8gbmV3IEFycmF5QWN0aW9uKG5hbWUsIHNlbmRlciwgYXJyYXlDaGFuZ2VzKVxuICAgICAgOiBuZXcgQWN0aW9uKG5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc2VuZGVyKTtcblxuICAgIGlmICghdHJhbnNhY3Rpb24pIHtcbiAgICAgIHRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKG5hbWUpO1xuICAgICAgdHJhbnNhY3Rpb24uYWRkQWN0aW9uKGFjdGlvbik7XG4gICAgICB0aGlzLl9hZGRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJhbnNhY3Rpb24uYWRkQWN0aW9uKGFjdGlvbik7XG4gIH1cblxuICBwcml2YXRlIF9pZ25vcmVDaGFuZ2VzID0gZmFsc2U7XG4gIHByaXZhdGUgX3ByZXBhcmluZ1RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiA9IG51bGw7XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIF9jdXJyZW50VHJhbnNhY3Rpb25JbmRleDogbnVtYmVyID0gLTE7XG5cbiAgcHJpdmF0ZSBoYXNQcm9wZXJ0eUluU2VyaWFsaXplcihzZW5kZXI6IFN1cnZleS5CYXNlLCBwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAhIVN1cnZleS5TZXJpYWxpemVyLmZpbmRQcm9wZXJ0eShzZW5kZXIuZ2V0VHlwZSgpLCBwcm9wZXJ0eU5hbWUpO1xuICB9XG4gIHB1YmxpYyBpc0NvcHlPYmplY3Qoc2VuZGVyOiBTdXJ2ZXkuQmFzZSkge31cbiAgcHJpdmF0ZSBfY3V0T2ZmVGFpbCgpIHtcbiAgICBpZiAodGhpcy5fY3VycmVudFRyYW5zYWN0aW9uSW5kZXggKyAxICE9PSB0aGlzLl90cmFuc2FjdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl90cmFuc2FjdGlvbnMubGVuZ3RoID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uSW5kZXggKyAxO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9hZGRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICBpZiAodHJhbnNhY3Rpb24uaXNFbXB0eSgpKSByZXR1cm47XG5cbiAgICB0aGlzLl9jdXRPZmZUYWlsKCk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb25zLnB1c2godHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbkluZGV4Kys7XG4gICAgdGhpcy5jYW5VbmRvUmVkb0NhbGxiYWNrKCk7XG4gIH1cbiAgcHJpdmF0ZSBfZ2V0Q3VycmVudFRyYW5zYWN0aW9uKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uSW5kZXg7XG4gICAgY29uc3QgY3VycmVudFRyYW5zYWN0aW9uID0gdGhpcy5fdHJhbnNhY3Rpb25zW2luZGV4XTtcbiAgICByZXR1cm4gY3VycmVudFRyYW5zYWN0aW9uO1xuICB9XG4gIHByaXZhdGUgX2dldE5leHRUcmFuc2FjdGlvbigpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbkluZGV4O1xuICAgIGNvbnN0IG5leHRUcmFuc2FjdGlvbiA9IHRoaXMuX3RyYW5zYWN0aW9uc1tpbmRleCArIDFdO1xuICAgIHJldHVybiBuZXh0VHJhbnNhY3Rpb247XG4gIH1cbiAgcHJpdmF0ZSBub3RpZnlDaGFuZ2VzRmluaXNoZWQodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgaWYgKHRyYW5zYWN0aW9uLmFjdGlvbnMubGVuZ3RoID4gMCAmJiB0cmFuc2FjdGlvbi5hY3Rpb25zWzBdKSB7XG4gICAgICAhIXRoaXMuY2hhbmdlc0ZpbmlzaGVkQ2FsbGJhY2sgJiZcbiAgICAgICAgdGhpcy5jaGFuZ2VzRmluaXNoZWRDYWxsYmFjayh0cmFuc2FjdGlvbi5hY3Rpb25zWzBdLmNoYW5nZXMpO1xuICAgIH1cbiAgfVxuICBjYW5VbmRvUmVkb0NhbGxiYWNrKCkge31cbiAgcHJpdmF0ZSB0cmFuc2FjdGlvbkNvdW50ZXIgPSAwO1xuICBzdGFydFRyYW5zYWN0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMudHJhbnNhY3Rpb25Db3VudGVyKys7XG4gICAgaWYgKHRoaXMuX3ByZXBhcmluZ1RyYW5zYWN0aW9uKSByZXR1cm47XG4gICAgdGhpcy5fcHJlcGFyaW5nVHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24obmFtZSk7XG4gIH1cbiAgc3RvcFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uQ291bnRlciA+IDApIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25Db3VudGVyLS07XG4gICAgfVxuICAgIGlmICghdGhpcy5fcHJlcGFyaW5nVHJhbnNhY3Rpb24gfHwgdGhpcy50cmFuc2FjdGlvbkNvdW50ZXIgPiAwKSByZXR1cm47XG4gICAgdGhpcy5fYWRkVHJhbnNhY3Rpb24odGhpcy5fcHJlcGFyaW5nVHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uQ291bnRlciA9PT0gMCkge1xuICAgICAgdGhpcy5ub3RpZnlDaGFuZ2VzRmluaXNoZWQodGhpcy5fcHJlcGFyaW5nVHJhbnNhY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLl9wcmVwYXJpbmdUcmFuc2FjdGlvbiA9IG51bGw7XG4gIH1cbiAgcHVibGljIGdldCBpc1Byb2Nlc3NpbmdVbmRvUmVkbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faWdub3JlQ2hhbmdlcyA9PT0gdHJ1ZTtcbiAgfVxuICBjYW5VbmRvKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2dldEN1cnJlbnRUcmFuc2FjdGlvbigpO1xuICB9XG4gIHVuZG8oKSB7XG4gICAgY29uc3QgY3VycmVudFRyYW5zYWN0aW9uID0gdGhpcy5fZ2V0Q3VycmVudFRyYW5zYWN0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmNhblVuZG8oKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5faWdub3JlQ2hhbmdlcyA9IHRydWU7XG4gICAgY3VycmVudFRyYW5zYWN0aW9uLnJvbGxiYWNrKCk7XG4gICAgdGhpcy5faWdub3JlQ2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uSW5kZXgtLTtcbiAgICB0aGlzLmNhblVuZG9SZWRvQ2FsbGJhY2soKTtcbiAgICB0aGlzLm5vdGlmeUNoYW5nZXNGaW5pc2hlZChjdXJyZW50VHJhbnNhY3Rpb24pO1xuICB9XG4gIGNhblJlZG8oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZ2V0TmV4dFRyYW5zYWN0aW9uKCk7XG4gIH1cbiAgcmVkbygpIHtcbiAgICBjb25zdCBuZXh0VHJhbnNhY3Rpb24gPSB0aGlzLl9nZXROZXh0VHJhbnNhY3Rpb24oKTtcbiAgICBpZiAoIXRoaXMuY2FuUmVkbygpKSByZXR1cm47XG5cbiAgICB0aGlzLl9pZ25vcmVDaGFuZ2VzID0gdHJ1ZTtcbiAgICBuZXh0VHJhbnNhY3Rpb24uYXBwbHkoKTtcbiAgICB0aGlzLl9pZ25vcmVDaGFuZ2VzID0gZmFsc2U7XG5cbiAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb25JbmRleCsrO1xuICAgIHRoaXMuY2FuVW5kb1JlZG9DYWxsYmFjaygpO1xuICAgIHRoaXMubm90aWZ5Q2hhbmdlc0ZpbmlzaGVkKG5leHRUcmFuc2FjdGlvbik7XG4gIH1cbiAgcHVibGljIGNoYW5nZXNGaW5pc2hlZENhbGxiYWNrOiAoY2hhbmdlczogSVVuZG9SZWRvQ2hhbmdlKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9uYW1lOiBzdHJpbmcpIHt9XG5cbiAgcHJpdmF0ZSBfYWN0aW9uczogVW5kb1JlZG9BY3Rpb25bXSA9IFtdO1xuXG4gIGFwcGx5KCkge1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLl9hY3Rpb25zO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhY3Rpb25zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgYWN0aW9uID0gYWN0aW9uc1tpbmRleF07XG4gICAgICBhY3Rpb24uYXBwbHkoKTtcbiAgICB9XG4gIH1cblxuICByb2xsYmFjaygpIHtcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5fYWN0aW9ucztcbiAgICBmb3IgKGxldCBpbmRleCA9IGFjdGlvbnMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgICAgY29uc3QgYWN0aW9uID0gYWN0aW9uc1tpbmRleF07XG4gICAgICBhY3Rpb24ucm9sbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICBhZGRBY3Rpb24oYWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgZ2V0IGFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVuZG9SZWRvQWN0aW9uIHtcbiAgYXBwbHkoKSB7fVxuICByb2xsYmFjaygpIHt9XG4gIGdldCBjaGFuZ2VzKCk6IElVbmRvUmVkb0NoYW5nZSB7XG4gICAgcmV0dXJuIDxhbnk+e307XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3Byb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgX29sZFZhbHVlOiBhbnksXG4gICAgcHJpdmF0ZSBfbmV3VmFsdWU6IGFueSxcbiAgICBwcml2YXRlIF9zZW5kZXI6IFN1cnZleS5CYXNlXG4gICkge31cblxuICBhcHBseSgpIHtcbiAgICB0aGlzLl9zZW5kZXJbdGhpcy5fcHJvcGVydHlOYW1lXSA9IHRoaXMuX25ld1ZhbHVlO1xuICB9XG5cbiAgcm9sbGJhY2soKSB7XG4gICAgdGhpcy5fc2VuZGVyW3RoaXMuX3Byb3BlcnR5TmFtZV0gPSB0aGlzLl9vbGRWYWx1ZTtcbiAgfVxuXG4gIGdldCBjaGFuZ2VzKCk6IElVbmRvUmVkb0NoYW5nZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9iamVjdDogdGhpcy5fc2VuZGVyLFxuICAgICAgcHJvcGVydHlOYW1lOiB0aGlzLl9wcm9wZXJ0eU5hbWUsXG4gICAgICBvbGRWYWx1ZTogdGhpcy5fb2xkVmFsdWUsXG4gICAgICBuZXdWYWx1ZTogdGhpcy5fbmV3VmFsdWVcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcnJheUFjdGlvbiB7XG4gIHByaXZhdGUgX2luZGV4OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIF9pdGVtc1RvQWRkOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIF9kZWxldGVkSXRlbXM6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBfc2VuZGVyOiBTdXJ2ZXkuQmFzZSxcbiAgICBhcnJheUNoYW5nZXM6IFN1cnZleS5BcnJheUNoYW5nZXNcbiAgKSB7XG4gICAgdGhpcy5faW5kZXggPSBhcnJheUNoYW5nZXMuaW5kZXg7XG4gICAgdGhpcy5faXRlbXNUb0FkZCA9IGFycmF5Q2hhbmdlcy5pdGVtc1RvQWRkO1xuICAgIHRoaXMuX2RlbGV0ZWRJdGVtcyA9IGFycmF5Q2hhbmdlcy5kZWxldGVkSXRlbXM7XG4gIH1cbiAgYXBwbHkoKSB7XG4gICAgdGhpcy5yb2xsYmFjaygpO1xuICB9XG4gIHJvbGxiYWNrKCkge1xuICAgIGNvbnN0IGFycmF5ID0gdGhpcy5fc2VuZGVyW3RoaXMuX3Byb3BlcnR5TmFtZV07XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9pbmRleDtcbiAgICBjb25zdCBkZWxldGVDb3VudCA9IHRoaXMuX2l0ZW1zVG9BZGQubGVuZ3RoO1xuICAgIGNvbnN0IGl0ZW1zVG9BZGQgPSBbXS5jb25jYXQodGhpcy5fZGVsZXRlZEl0ZW1zKTtcblxuICAgIHRoaXMuX2RlbGV0ZWRJdGVtcyA9IGFycmF5LnNwbGljZS5hcHBseShcbiAgICAgIGFycmF5LFxuICAgICAgW2luZGV4LCBkZWxldGVDb3VudF0uY29uY2F0KGl0ZW1zVG9BZGQpXG4gICAgKTtcbiAgICB0aGlzLl9pdGVtc1RvQWRkID0gW10uY29uY2F0KGl0ZW1zVG9BZGQpO1xuICB9XG4gIGdldCBjaGFuZ2VzKCk6IElVbmRvUmVkb0NoYW5nZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9iamVjdDogdGhpcy5fc2VuZGVyLFxuICAgICAgcHJvcGVydHlOYW1lOiB0aGlzLl9wcm9wZXJ0eU5hbWUsXG4gICAgICBvbGRWYWx1ZTogdGhpcy5fZGVsZXRlZEl0ZW1zLFxuICAgICAgbmV3VmFsdWU6IHRoaXMuX2l0ZW1zVG9BZGRcbiAgICB9O1xuICB9XG59XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCJpbXBvcnQgKiBhcyBrbyBmcm9tIFwia25vY2tvdXRcIjtcblxuaW1wb3J0IFwiLi9hY2NvcmRpb24uc2Nzc1wiO1xuaW1wb3J0IHsgaXNWYXIgfSBmcm9tIFwiYmFiZWwtdHlwZXNcIjtcbnZhciB0ZW1wbGF0ZSA9IHJlcXVpcmUoXCJodG1sLWxvYWRlcj9pbnRlcnBvbGF0ZSF2YWwtbG9hZGVyIS4vYWNjb3JkaW9uLmh0bWxcIik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFjY29yZGlvbkl0ZW1EYXRhIHtcbiAgbmFtZTogc3RyaW5nIHwgYW55O1xuICB0aXRsZTogc3RyaW5nIHwgYW55O1xuICBvbkV4cGFuZDogKCkgPT4gdm9pZDtcbiAgb25Db2xsYXBzZTogKCkgPT4gdm9pZDtcbiAgZG9PbkV4cGFuZGVkKCk6IGFueTtcbiAgaHRtbFRlbXBsYXRlOiBzdHJpbmc7XG4gIHRlbXBsYXRlT2JqZWN0OiBhbnk7XG4gIGtvQWZ0ZXJSZW5kZXI/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uSXRlbU1vZGVsIHtcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGE6IElBY2NvcmRpb25JdGVtRGF0YSkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBkYXRhLm9uRXhwYW5kID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5jb2xsYXBzZWQoZmFsc2UpO1xuICAgIH07XG4gICAgZGF0YS5vbkNvbGxhcHNlID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5jb2xsYXBzZWQodHJ1ZSk7XG4gICAgfTtcbiAgfVxuICBjb2xsYXBzZWQgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICB0b2dnbGUgPSAoKSA9PiB7XG4gICAgdGhpcy5jb2xsYXBzZWQoIXRoaXMuY29sbGFwc2VkKCkpO1xuICAgIGlmICghdGhpcy5jb2xsYXBzZWQoKSAmJiAhIWRvY3VtZW50KSB7XG4gICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImVkaXRvcl90YWJfaWRfXCIgKyB0aGlzLmRhdGEubmFtZSk7XG4gICAgICBpZiAoISF0aGlzLmRhdGEuZG9PbkV4cGFuZGVkKSB7XG4gICAgICAgIHRoaXMuZGF0YS5kb09uRXhwYW5kZWQoKTtcbiAgICAgIH1cbiAgICAgIGlmICghIWVsKSB7XG4gICAgICAgIGVsLnNjcm9sbEludG9WaWV3KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGdldCB0aXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLnRpdGxlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25WaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihwYXJhbXMpIHtcbiAgICB0aGlzLnRhYnMgPSBrby5jb21wdXRlZDxBY2NvcmRpb25JdGVtTW9kZWw+KCgpID0+IHtcbiAgICAgIHZhciByZXMgPSBrb1xuICAgICAgICAudW53cmFwKHBhcmFtcy50YWJzKVxuICAgICAgICAubWFwKCh0YWJEYXRhKSA9PiBuZXcgQWNjb3JkaW9uSXRlbU1vZGVsKHRhYkRhdGEpKTtcbiAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXNbMF0uY29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSk7XG4gICAgdGhpcy5zaG93SGVhZGVyID0ga28uY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgICAgcmV0dXJuIHBhcmFtcy50YWJzKCkubGVuZ3RoID4gMTtcbiAgICB9KTtcbiAgfVxuICB0YWJzOiBhbnk7XG4gIHNob3dIZWFkZXI6IGFueTtcbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1hY2NvcmRpb25cIiwge1xuICB2aWV3TW9kZWw6IEFjY29yZGlvblZpZXdNb2RlbCxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlLFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGxhYmVsIGNsYXNzPVxcXCJzdmQtdG9vbGJhci1ib29sZWFuXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic2pzLWNiLWNvbnRhaW5lciBzdmQtdG9vbGJhci1ib29sZWFuX2NoZWNrXFxcIj5cXG4gICAgICAgIDxpbnB1dCB0eXBlPVxcXCJjaGVja2JveFxcXCIgZGF0YS1iaW5kPVxcXCJjaGVja2VkOiBhY3Rpb25cXFwiPlxcbiAgICAgICAgPHNwYW4gY2xhc3M9XFxcImNoZWNrbWFya1xcXCJcXG4gICAgICAgICAgICBkYXRhLWJpbmQ9XFxcImNzczogeyAnc3ZkLW1haW4tYmFja2dyb3VuZC1jb2xvcic6IGFjdGlvbigpLCAnc3ZkLWxpZ2h0LWJhY2tncm91bmQtY29sb3InOiAhYWN0aW9uKCkgfVxcXCI+PC9zcGFuPlxcbiAgICA8L2Rpdj5cXG4gICAgPHNwYW4gZGF0YS1iaW5kPVxcXCJ0ZXh0OiB0aXRsZVxcXCI+PC9zcGFuPlxcbjwvbGFiZWw+XCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5pbXBvcnQgeyBlZGl0b3JMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vZWRpdG9yTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgKiBhcyBTdXJ2ZXkgZnJvbSBcInN1cnZleS1rbm9ja291dFwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvciB9IGZyb20gXCIuLi9lZGl0b3JcIjtcblxuaW1wb3J0IFwiLi9ib29sZWFuLnNjc3NcIjtcblxudmFyIHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL2Jvb2xlYW4uaHRtbFwiKTtcblxuZXhwb3J0IHZhciBCb29sZWFuVmlld01vZGVsO1xuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLWJvb2xlYW5cIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBtb2RlbCA9IHBhcmFtcy5pdGVtO1xuICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH1cbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgdGFiaW5kZXg9XFxcIjBcXFwiIGNsYXNzPVxcXCJidG4gYnRuLXByaW1hcnkgc3YtYnRuIHN2ZC10b29sYmFyLWJ1dHRvblxcXCJcXG4gICAgZGF0YS1iaW5kPVxcXCJhdHRyOiB7IGRpc2FibGVkOiBkaXNhYmxlZCwgJ2FyaWEtZGlzYWJsZWQnOiBkaXNhYmxlZCwgdGl0bGU6IGhpbnQgfSwgY3NzOiBpdGVtLmlubmVyQ3NzLCBrZXkyY2xpY2ssIGNsaWNrOiBhY3Rpb25cXFwiXFxuICAgIHJvbGU9XFxcImJ1dHRvblxcXCI+XFxuICAgIDwhLS0ga28gaWY6IGl0ZW0uaWNvbk5hbWUgLS0+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZC10b29sYmFyLWJ1dHRvbl9faW1hZ2VcXFwiPlxcbiAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVxcXCJzdmQtc3ZnLWljb24gaWNvbi13aGl0ZVxcXCIgcGFyYW1zPVxcXCJpY29uTmFtZTogaXRlbS5pY29uTmFtZSwgc2l6ZTogMTZcXFwiPjwvc3ZnLWljb24+XFxuICAgIDwvZGl2PlxcbiAgICA8IS0tIC9rbyAtLT5cXG4gICAgPCEtLSBrbyBpZjogc2hvd1RpdGxlIC0tPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzdmQtdG9vbGJhci1idXR0b25fX3RpdGxlXFxcIj5cXG4gICAgICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogaXRlbS50aXRsZVxcXCI+PC9zcGFuPlxcbiAgICA8L2Rpdj5cXG4gICAgPCEtLSAva28gLS0+XFxuPC9kaXY+XFxuXCI7IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vYnV0dG9uLnNjc3NcIjtcblxudmFyIHRlbXBsYXRlSHRtbCA9IHJlcXVpcmUoXCIuL2J1dHRvbi5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgQnV0dG9uVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGl0ZW0pIHtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbS5lbmFibGVkICE9PSB1bmRlZmluZWQgJiYgIWtvLnVud3JhcCh0aGlzLml0ZW0uZW5hYmxlZCk7XG4gIH1cbiAgZ2V0IGhpbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbS50b29sdGlwIHx8IHRoaXMuaXRlbS50aXRsZTtcbiAgfVxuICBnZXQgc2hvd1RpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW0uc2hvd1RpdGxlID09PSB1bmRlZmluZWQgfHwgKCEhdGhpcy5pdGVtLmljb25OYW1lICYmICFrby51bndyYXAodGhpcy5pdGVtLnNob3dUaXRsZSkpO1xuICB9XG4gIGFjdGlvbihtb2RlbDogQnV0dG9uVmlld01vZGVsKSB7XG4gICAgaWYoIW1vZGVsLmRpc2FibGVkKSB7XG4gICAgICBtb2RlbC5pdGVtLmFjdGlvbigpO1xuICAgIH1cbiAgfVxufVxuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZkLWJ1dHRvblwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBCdXR0b25WaWV3TW9kZWwocGFyYW1zLml0ZW0pO1xuICAgIH1cbiAgfSxcbiAgdGVtcGxhdGU6IHRlbXBsYXRlSHRtbCxcbn0pO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vZGVzaWduZXItY29udGFpbmVyLnNjc3NcIjtcbmltcG9ydCB7IGVkaXRvckxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9lZGl0b3JMb2NhbGl6YXRpb25cIjtcbnZhciB0ZW1wbGF0ZSA9IHJlcXVpcmUoXCJodG1sLWxvYWRlcj9pbnRlcnBvbGF0ZSF2YWwtbG9hZGVyIS4vZGVzaWduZXItY29udGFpbmVyLmh0bWxcIik7XG5cbmV4cG9ydCBjbGFzcyBEZXNpZ25lckNvbnRhaW5lclZpZXdNb2RlbCB7XG4gIHN0YXRpYyBpY29uUmlnaHRPcGVuTmFtZSA9IFwiaWNvbi1yaWdodC1vcGVuXCI7XG4gIHN0YXRpYyBpY29uUmlnaHRDbG9zZU5hbWUgPSBcImljb24tcmlnaHQtY2xvc2VcIjtcbiAgc3RhdGljIGljb25MZWZ0T3Blbk5hbWUgPSBcImljb24tbGVmdC1vcGVuXCI7XG4gIHN0YXRpYyBpY29uTGVmdENsb3NlTmFtZSA9IFwiaWNvbi1sZWZ0LWNsb3NlXCI7XG5cbiAgcHJpdmF0ZSBfY2hhbmdlZFN1YnNjcmlwdGlvbjoga28uU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9wcmV2V2lkdGg6IGFueTtcbiAgcHJpdmF0ZSBfcHJldlN1cmZhY2VXaWR0aDogYW55O1xuICBwcml2YXRlIF9lbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgY29uc3RydWN0b3IocGFyYW1zLCBjb21wb25lbnRJbmZvKSB7XG4gICAgdGhpcy5fZWxlbWVudCA9IGNvbXBvbmVudEluZm8uZWxlbWVudDtcbiAgICB0aGlzLnRhYnMgPSBwYXJhbXMudGFicztcbiAgICB0aGlzLmNvbnRleHQgPSBwYXJhbXMuY29udGV4dDtcbiAgICB2YXIgY2hhbmdlZCA9IHBhcmFtcy5jaGFuZ2VkIHx8IGtvLm9ic2VydmFibGUoKTtcbiAgICBjb21wb25lbnRJbmZvLmVsZW1lbnQuY2xhc3NOYW1lICs9IFwiIFwiICsgcGFyYW1zLmNsYXNzTmFtZTtcbiAgICBpZiAoa28uaXNXcml0YWJsZU9ic2VydmFibGUocGFyYW1zLnZpc2libGUpKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSBwYXJhbXMudmlzaWJsZTtcbiAgICB9XG4gICAgaWYgKGtvLmlzV3JpdGFibGVPYnNlcnZhYmxlKHBhcmFtcy5hY3RpdmVUYWIpKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9IHBhcmFtcy5hY3RpdmVUYWI7XG4gICAgfVxuICAgIGlmICghdGhpcy5hY3RpdmVUYWIoKSAmJiB0aGlzLnRhYnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWIodGhpcy50YWJzWzBdKTtcbiAgICB9XG4gICAgdGhpcy5zaXplID0ga28uY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgdmFyIGlzVmlzaWJsZSA9IHRoaXMudmlzaWJsZSgpO1xuICAgICAgdGhpcy5pc09wZW4oaXNWaXNpYmxlKTtcbiAgICAgIHJldHVybiBpc1Zpc2libGUgPyBcIlwiIDogMDtcbiAgICB9KTtcbiAgICBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMudmlzaWJsZSgpIHx8IGNvbXBvbmVudEluZm8uZWxlbWVudC5vZmZzZXRXaWR0aCA9PSAwKSB7XG4gICAgICAgIGNvbXBvbmVudEluZm8uZWxlbWVudC5zdHlsZS53aWR0aCA9IHRoaXMuc2l6ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2NoYW5nZWRTdWJzY3JpcHRpb24gPSBjaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoY29tcG9uZW50SW5mby5lbGVtZW50Lm9mZnNldFBhcmVudCA9PSBudWxsKSByZXR1cm47XG4gICAgICB0aGlzLmlzT3Blbihjb21wb25lbnRJbmZvLmVsZW1lbnQub2Zmc2V0V2lkdGggPiAyNSk7XG4gICAgICB0aGlzLnZpc2libGUodGhpcy5pc09wZW4oKSk7XG4gICAgfSk7XG4gIH1cbiAgdG9nZ2xlID0gKCkgPT4ge1xuICAgIHZhciBzdXJmYWNlRWw6IEhUTUxEaXZFbGVtZW50ID0gPGFueT4oXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwic3ZkX2VkaXRvcnNcIilbMF1cbiAgICApO1xuICAgIGlmICh0aGlzLnZpc2libGUoKSkge1xuICAgICAgdGhpcy5fcHJldldpZHRoID0gdGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aDtcbiAgICAgIHRoaXMuX3ByZXZTdXJmYWNlV2lkdGggPSBzdXJmYWNlRWwuc3R5bGUud2lkdGg7XG4gICAgICBzdXJmYWNlRWwuc3R5bGUud2lkdGggPSBcIjEwMCVcIjtcbiAgICAgIHN1cmZhY2VFbC5zdHlsZS5tYXhXaWR0aCA9IFwibm9uZVwiO1xuICAgICAgc3VyZmFjZUVsLnN0eWxlLmZsZXhCYXNpcyA9IFwiYXV0b1wiO1xuICAgICAgLy8gc3VyZmFjZUVsLnN0eWxlLndpZHRoID0gc3VyZmFjZUVsLnN0eWxlLm1heFdpZHRoID0gc3VyZmFjZUVsLnN0eWxlLmZsZXhCYXNpcyA9IFwiXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLl9lbGVtZW50LnN0eWxlLm1heFdpZHRoID0gdGhpcy5fZWxlbWVudC5zdHlsZS5mbGV4QmFzaXMgPSB0aGlzLl9wcmV2V2lkdGg7XG4gICAgICAvLyBzdXJmYWNlRWwuc3R5bGUud2lkdGggPSBzdXJmYWNlRWwuc3R5bGUubWF4V2lkdGggPSBzdXJmYWNlRWwuc3R5bGUuZmxleEJhc2lzID0gdGhpcy5fcHJldlN1cmZhY2VXaWR0aDtcbiAgICB9XG4gICAgdGhpcy52aXNpYmxlKCF0aGlzLnZpc2libGUoKSk7XG4gIH07XG4gIGFjdGl2ZVRhYiA9IGtvLm9ic2VydmFibGU8c3RyaW5nPigpO1xuICB0YWJzOiBhbnk7XG4gIGNvbnRleHQ6IGFueTtcbiAgY2xhc3NOYW1lID0gXCJzdmQtZGVzaWduZXItY29udGFpbmVyXCI7XG4gIHZpc2libGUgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBpc09wZW4gPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuICBwdWJsaWMgZ2V0TG9jU3RyaW5nKHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGVkaXRvckxvY2FsaXphdGlvbi5nZXRTdHJpbmcoc3RyKTtcbiAgfVxuICBzaXplOiBhbnk7XG4gIGRpc3Bvc2UoKSB7XG4gICAgdGhpcy5fY2hhbmdlZFN1YnNjcmlwdGlvbi5kaXNwb3NlKCk7XG4gIH1cbiAgZ2V0IGljb25SaWdodE9wZW4oKSB7XG4gICAgcmV0dXJuIERlc2lnbmVyQ29udGFpbmVyVmlld01vZGVsLmljb25SaWdodE9wZW5OYW1lO1xuICB9XG4gIGdldCBpY29uUmlnaHRDbG9zZSgpIHtcbiAgICByZXR1cm4gRGVzaWduZXJDb250YWluZXJWaWV3TW9kZWwuaWNvblJpZ2h0Q2xvc2VOYW1lO1xuICB9XG4gIGdldCBpY29uTGVmdE9wZW4oKSB7XG4gICAgcmV0dXJuIERlc2lnbmVyQ29udGFpbmVyVmlld01vZGVsLmljb25MZWZ0T3Blbk5hbWU7XG4gIH1cbiAgZ2V0IGljb25MZWZ0Q2xvc2UoKSB7XG4gICAgcmV0dXJuIERlc2lnbmVyQ29udGFpbmVyVmlld01vZGVsLmljb25MZWZ0Q2xvc2VOYW1lO1xuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtZGVzaWduZXItY29udGFpbmVyXCIsIHtcbiAgdmlld01vZGVsOiB7XG4gICAgY3JlYXRlVmlld01vZGVsOiAocGFyYW1zLCBjb21wb25lbnRJbmZvKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IERlc2lnbmVyQ29udGFpbmVyVmlld01vZGVsKHBhcmFtcywgY29tcG9uZW50SW5mbyk7XG4gICAgfVxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVcbn0pO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmltcG9ydCBcIi4vZGVzaWduZXItaC1jb250YWluZXIuc2Nzc1wiO1xudmFyIHRlbXBsYXRlID0gcmVxdWlyZShcImh0bWwtbG9hZGVyP2ludGVycG9sYXRlIXZhbC1sb2FkZXIhLi9kZXNpZ25lci1oLWNvbnRhaW5lci5odG1sXCIpO1xuXG5leHBvcnQgY2xhc3MgRGVzaWduZXJIQ29udGFpbmVyVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IocGFyYW1zLCBjb21wb25lbnRJbmZvKSB7XG4gICAgdGhpcy5pdGVtcyA9IGtvLnVud3JhcChwYXJhbXMuaXRlbXMpO1xuICAgIHRoaXMuY29udGV4dCA9IHBhcmFtcy5jb250ZXh0O1xuICAgIGNvbXBvbmVudEluZm8uZWxlbWVudC5jbGFzc05hbWUgKz0gXCIgXCIgKyBwYXJhbXMuY2xhc3NOYW1lO1xuICB9XG4gIGl0ZW1zOiBhbnk7XG4gIGNvbnRleHQ6IGFueTtcbiAgY2xhc3NOYW1lID0gXCJzdmQtZGVzaWduZXItaC1jb250YWluZXJcIjtcbn1cblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN2ZC1kZXNpZ25lci1oLWNvbnRhaW5lclwiLCB7XG4gIHZpZXdNb2RlbDoge1xuICAgIGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBEZXNpZ25lckhDb250YWluZXJWaWV3TW9kZWwocGFyYW1zLCBjb21wb25lbnRJbmZvKTtcbiAgICB9XG4gIH0sXG4gIHRlbXBsYXRlOiB0ZW1wbGF0ZVxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFwiPGxhYmVsIGNsYXNzPVxcXCJzdmQtdG9vbGJhci1kcm9wZG93blxcXCI+XFxuICAgIDxzcGFuIGRhdGEtYmluZD1cXFwidGV4dDogdGl0bGUsIHZpc2libGU6IHRpdGxlXFxcIiBjbGFzcz1cXFwic3ZkLXRvb2xiYXItZHJvcGRvd25fX2xhYmVsXFxcIj48L3NwYW4+XFxuICAgIDxkaXYgY2xhc3M9XFxcInN2ZF9jdXN0b21fc2VsZWN0XFxcIj5cXG4gICAgICAgIDxzZWxlY3Qgb25tb3VzZXdoZWVsPVxcXCJyZXR1cm4gZmFsc2U7XFxcIiBjbGFzcz1cXFwic3ZkLXRvb2xiYXItZHJvcGRvd25fX3NlbGVjdFxcXCJcXG4gICAgICAgICAgICBkYXRhLWJpbmQ9XFxcIm9wdGlvbnM6IGl0ZW1zLCBvcHRpb25zVGV4dDogJ3RleHQnLCBvcHRpb25zVmFsdWU6IG9wdGlvbnNWYWx1ZSwgdmFsdWU6IGFjdGlvbiwgb3B0aW9uc0FmdGVyUmVuZGVyOiBhZnRlclJlbmRlciwgb3B0aW9uc0NhcHRpb246IG9wdGlvbnNDYXB0aW9uLCAgZGlzYWJsZTogZGlzYWJsZSwgdmFsdWVBbGxvd1Vuc2V0OiB2YWx1ZUFsbG93VW5zZXQsIGhhc0ZvY3VzOiBoYXNGb2N1cywgYXR0cjogeyAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCB9LCBzanNzZWxlY3QzOiBzZWxlY3QzXFxcIj5cXG4gICAgICAgIDwvc2VsZWN0PlxcbiAgICA8L2Rpdj5cXG48L2xhYmVsPlwiOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IFwiLi9kcm9wZG93bi5zY3NzXCI7XG52YXIgdGVtcGxhdGVIdG1sID0gcmVxdWlyZShcIi4vZHJvcGRvd24uaHRtbFwiKTtcblxuZXhwb3J0IGNsYXNzIERyb3Bkb3duVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGl0ZW1zLFxuICAgIHB1YmxpYyBhY3Rpb24sXG4gICAgcHVibGljIG9wdGlvbnNWYWx1ZSA9IFwidmFsdWVcIixcbiAgICBwdWJsaWMgb3B0aW9uc1RleHQgPSBcInRleHRcIixcbiAgICBwdWJsaWMgYWZ0ZXJSZW5kZXIgPSBudWxsLFxuICAgIHB1YmxpYyB2YWx1ZUFsbG93VW5zZXQgPSBudWxsLFxuICAgIHB1YmxpYyBvcHRpb25zQ2FwdGlvbiA9IG51bGwsXG4gICAgcHVibGljIGFyaWFMYWJlbCA9IG51bGwsXG4gICAgcHVibGljIHRpdGxlID0gbnVsbCxcbiAgICBwdWJsaWMgZGlzYWJsZSA9IG51bGwsXG4gICAgcHVibGljIGhhc0ZvY3VzID0gbnVsbCxcbiAgICBwdWJsaWMgc2VsZWN0M1xuICApIHt9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtZHJvcGRvd25cIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHZhciBtb2RlbCA9IHBhcmFtcy5pdGVtO1xuICAgICAgcmV0dXJuIG5ldyBEcm9wZG93blZpZXdNb2RlbChcbiAgICAgICAgbW9kZWwuaXRlbXMsXG4gICAgICAgIG1vZGVsLmFjdGlvbixcbiAgICAgICAgbW9kZWwub3B0aW9uc1ZhbHVlLFxuICAgICAgICBtb2RlbC5vcHRpb25zVGV4dCxcbiAgICAgICAgbW9kZWwuYWZ0ZXJSZW5kZXIsXG4gICAgICAgIG1vZGVsLnZhbHVlQWxsb3dVbnNldCxcbiAgICAgICAgbW9kZWwub3B0aW9uc0NhcHRpb24sXG4gICAgICAgIG1vZGVsLmFyaWFMYWJlbCxcbiAgICAgICAgbW9kZWwudGl0bGUsXG4gICAgICAgIG1vZGVsLmRpc2FibGUsXG4gICAgICAgIG1vZGVsLmhhc0ZvY3VzLFxuICAgICAgICBwYXJhbXMuc2VsZWN0M1xuICAgICAgKTtcbiAgICB9LFxuICB9LFxuICB0ZW1wbGF0ZTogdGVtcGxhdGVIdG1sLFxufSk7XG5cbmtvLmJpbmRpbmdIYW5kbGVyc1tcInNqc3NlbGVjdDNcIl0gPSB7XG4gIGluaXQ6IGZ1bmN0aW9uIChlbGVtZW50LCB2YWx1ZUFjY2Vzc29yLCBhbGxCaW5kaW5nc0FjY2Vzc29yKSB7XG4gICAgdmFyIHZhbHVlID0gdmFsdWVBY2Nlc3NvcigpO1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBqUXVlcnkgIT09IFwidW5kZWZpbmVkXCIgJiYgalF1ZXJ5KClbXCJzZWxlY3QyXCJdKSB7XG4gICAgICB2YXIgb3B0aW9uczogYW55ID0ge1xuICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICB9O1xuICAgICAgLy8gVE9ETzogcGFzcyBSVEwgc2V0dGluZ1xuICAgICAgLy8gaWYgKGVkaXRvci5pc1JUTFZhbHVlKSB7XG4gICAgICAvLyAgIG9wdGlvbnMuZGlyID0gXCJydGxcIjtcbiAgICAgIC8vIH1cbiAgICAgIHZhciAkb2JqZWN0U2VsZWN0b3IgPSBqUXVlcnkoZWxlbWVudCk7XG4gICAgICAkb2JqZWN0U2VsZWN0b3JbXCJzZWxlY3QyXCJdKG9wdGlvbnMpO1xuICAgICAgJG9iamVjdFNlbGVjdG9yLm9uKFwic2VsZWN0MjpzZWxlY3RcIiwgKHNlbF9ldnQ6IGFueSkgPT4ge1xuICAgICAgICBpZihrby5pc1dyaXRlYWJsZU9ic2VydmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgdmFsdWUoc2VsX2V2dC50YXJnZXQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBzdWJzY3JpcHRpb24gPSBrby5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHZhciBpdGVtID0ga28udW53cmFwKHZhbHVlKTtcbiAgICAgICAgdmFyIGVsID0gPEhUTUxFbGVtZW50PihcbiAgICAgICAgICBlbGVtZW50LnBhcmVudEVsZW1lbnQgJiYgZWxlbWVudC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkXCIpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlbCkge1xuICAgICAgICAgIGlmIChpdGVtICYmIGl0ZW0udGV4dCkge1xuICAgICAgICAgICAgZWwuaW5uZXJUZXh0ID0gaXRlbS50ZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIH0pO1xuICAgICAga28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhlbGVtZW50LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHN1YnNjcmlwdGlvbi5kaXNwb3NlKCk7XG4gICAgICAgICRvYmplY3RTZWxlY3Rvci5vZmYoXCJzZWxlY3QyOnNlbGVjdFwiKTtcbiAgICAgICAgJG9iamVjdFNlbGVjdG9yW1wic2VsZWN0MlwiXShcImRlc3Ryb3lcIik7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sXG59OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5pbXBvcnQgXCIuL3NwbGl0dGVyLnNjc3NcIjtcblxuZXhwb3J0IGNsYXNzIFNwbGl0dGVyQ29tcG9uZW50Vmlld01vZGVsIHtcbiAgcHJpdmF0ZSB1cGRhdGVTcGxpdHRlcjtcblxuICBwcml2YXRlIHVwZGF0ZVdpZHRoKGVsOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICBlbC5zdHlsZS53aWR0aCA9IHZhbHVlO1xuICAgIGVsLnN0eWxlLm1heFdpZHRoID0gdmFsdWU7XG4gICAgZWwuc3R5bGUuZmxleEJhc2lzID0gdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1pbkxlZnQ6IG51bWJlcixcbiAgICAgIG1pblJpZ2h0OiBudW1iZXIsXG4gICAgICBvbkNoYW5nZT86IGFueSxcbiAgICB9LFxuICAgIGNvbXBvbmVudEluZm9cbiAgKSB7XG4gICAgdmFyIHNwbGl0dGVyRWxlbWVudCA9IGNvbXBvbmVudEluZm8uZWxlbWVudDtcbiAgICB2YXIgY29udGFpbmVyID0gY29tcG9uZW50SW5mby5lbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgdmFyIG9uQ2hhbmdlID0gcGFyYW1zLm9uQ2hhbmdlIHx8IGtvLm9ic2VydmFibGUoMCk7XG4gICAgdmFyIHNpYmxpbmdzID0gW107XG4gICAgdmFyIG1pbkxlZnQgPSBwYXJhbXMubWluTGVmdCB8fCAxMDtcbiAgICB2YXIgbWluUmlnaHQgPSBwYXJhbXMubWluUmlnaHQgfHwgMTA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNpYmxpbmdzLnB1c2goY29udGFpbmVyLmNoaWxkcmVuW2ldKTtcbiAgICB9XG4gICAgdmFyIHNwbGl0dGVyRWxlbWVudEluZGV4ID0gc2libGluZ3MuaW5kZXhPZihzcGxpdHRlckVsZW1lbnQpO1xuICAgIHZhciBsZWZ0RWxlbWVudCA9IHNpYmxpbmdzW3NwbGl0dGVyRWxlbWVudEluZGV4IC0gMV07XG4gICAgdmFyIHJpZ2h0RWxlbWVudCA9IHNpYmxpbmdzW3NwbGl0dGVyRWxlbWVudEluZGV4ICsgMV07XG5cbiAgICB2YXIgc3RhcnRYID0gMDtcbiAgICB2YXIgaXNJbkNoYW5nZVdpZHRoID0gZmFsc2U7XG4gICAgdmFyIHVwZGF0ZSA9IChkZWx0YTogYW55KSA9PiB7XG4gICAgICBpZiAoaXNJbkNoYW5nZVdpZHRoKSByZXR1cm47XG4gICAgICBpc0luQ2hhbmdlV2lkdGggPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGlzUnRsID0gZmFsc2U7XG4gICAgICAgIGlmKHdpbmRvdyAmJiB0eXBlb2Ygd2luZG93LmdldENvbXB1dGVkU3R5bGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGNvbnN0IGNvbnB1dGVkU3R5bGVzID0gZ2V0Q29tcHV0ZWRTdHlsZShsZWZ0RWxlbWVudCk7XG4gICAgICAgICAgaXNSdGwgPSBjb25wdXRlZFN0eWxlcyAmJiBjb25wdXRlZFN0eWxlcy5kaXJlY3Rpb24gPT09IFwicnRsXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb2Zmc2V0RGVsdGEgPSBpc1J0bCA/IC1kZWx0YSA6IGRlbHRhO1xuICAgICAgICB2YXIgdG90YWxXaWR0aCA9IGxlZnRFbGVtZW50Lm9mZnNldFdpZHRoICsgcmlnaHRFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICB2YXIgbmV3TGVmdCA9IGxlZnRFbGVtZW50Lm9mZnNldFdpZHRoICsgb2Zmc2V0RGVsdGE7XG4gICAgICAgIHZhciBuZXdSaWdodCA9IHRvdGFsV2lkdGggLSBuZXdMZWZ0O1xuICAgICAgICBpZiAobmV3TGVmdCA+IG1pbkxlZnQgJiYgbmV3UmlnaHQgPiBtaW5SaWdodCkge1xuICAgICAgICAgIHN0YXJ0WCArPSBkZWx0YTtcbiAgICAgICAgICB2YXIgbGVmdFdpZHRoID1cbiAgICAgICAgICAgIE1hdGguY2VpbCgoKG5ld0xlZnQgKyAxKSAvIGNvbnRhaW5lci5jbGllbnRXaWR0aCkgKiAxMDAwMCkgLyAxMDAgK1xuICAgICAgICAgICAgXCIlXCI7XG4gICAgICAgICAgdmFyIHJpZ2h0V2lkdGggPVxuICAgICAgICAgICAgTWF0aC5jZWlsKCgobmV3UmlnaHQgKyAxKSAvIGNvbnRhaW5lci5jbGllbnRXaWR0aCkgKiAxMDAwMCkgLyAxMDAgK1xuICAgICAgICAgICAgXCIlXCI7XG4gICAgICAgICAgdGhpcy51cGRhdGVXaWR0aChsZWZ0RWxlbWVudCwgbGVmdFdpZHRoKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVdpZHRoKHJpZ2h0RWxlbWVudCwgcmlnaHRXaWR0aCk7XG4gICAgICAgICAgb25DaGFuZ2Uob25DaGFuZ2UoKSArIDEpO1xuICAgICAgICB9XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpc0luQ2hhbmdlV2lkdGggPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIG9ubW91c2Vtb3ZlID0gZXZlbnQgPT4ge1xuICAgICAgdXBkYXRlKGV2ZW50LnNjcmVlblggLSBzdGFydFgpO1xuICAgIH07XG5cbiAgICB2YXIgb25tb3VzZXVwID0gZXZlbnQgPT4ge1xuICAgICAgc3RhcnRYID0gMDtcbiAgICAgIHNwbGl0dGVyRWxlbWVudC5jbGFzc05hbWUgPSBzcGxpdHRlckVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoXG4gICAgICAgIC9cXHNzdmQtYWN0aXZlLXNwbGl0dGVyL2csXG4gICAgICAgIFwiXCJcbiAgICAgICk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIG9ubW91c2Vtb3ZlKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIG9ubW91c2V1cCk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBvbm1vdXNldXApO1xuICAgIH07XG5cbiAgICBzcGxpdHRlckVsZW1lbnQub25tb3VzZWRvd24gPSBldmVudCA9PiB7XG4gICAgICBzdGFydFggPSBldmVudC5zY3JlZW5YO1xuICAgICAgc3BsaXR0ZXJFbGVtZW50LmNsYXNzTmFtZSArPSBcIiBzdmQtYWN0aXZlLXNwbGl0dGVyXCI7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIG9ubW91c2Vtb3ZlKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIG9ubW91c2V1cCk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBvbm1vdXNldXApO1xuICAgIH07XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHVwZGF0ZSgwKSwgMTApO1xuICB9XG4gIGRpc3Bvc2UoKSB7XG4gICAgaWYgKCEhdGhpcy51cGRhdGVTcGxpdHRlcikge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnVwZGF0ZVNwbGl0dGVyKTtcbiAgICAgIHRoaXMudXBkYXRlU3BsaXR0ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbmtvLmNvbXBvbmVudHMucmVnaXN0ZXIoXCJzdmQtc3BsaXR0ZXJcIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIHJldHVybiBuZXcgU3BsaXR0ZXJDb21wb25lbnRWaWV3TW9kZWwocGFyYW1zLCBjb21wb25lbnRJbmZvKTtcbiAgICB9XG4gIH0sXG4gIHRlbXBsYXRlOlxuICAgICc8ZGl2IGNsYXNzPVwic3ZkLXNwbGl0dGVyXCI+PGRpdiBjbGFzcz1cImljb24gaWNvbi1zcGxpdFwiPjxzdmcgY2xhc3M9XCJzdmQtc3ZnLWljb25cIj48dXNlIHhsaW5rOmhyZWY9XCIjaWNvbi1zcGxpdF8xNngxNlwiPjwvdXNlPjwvc3ZnPjwvZGl2PjwvZGl2Pidcbn0pO1xuIiwiaW1wb3J0ICogYXMga28gZnJvbSBcImtub2Nrb3V0XCI7XG5cbmV4cG9ydCB2YXIgU3VydmV5V2lkZ2V0QmluZGluZztcblxua28uY29tcG9uZW50cy5yZWdpc3RlcihcInN1cnZleS13aWRnZXRcIiwge1xuICB2aWV3TW9kZWw6IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICB0aGlzLnN1cnZleSA9IHBhcmFtcy5zdXJ2ZXk7XG4gIH0sXG4gIHRlbXBsYXRlOlxuICAgICAgICBcIjwhLS0ga28gaWY6ICRkYXRhLnN1cnZleSAtLT48IS0tIGtvIHRlbXBsYXRlOiB7IG5hbWU6ICdzdXJ2ZXktY29udGVudCcsIGRhdGE6IHN1cnZleSwgYWZ0ZXJSZW5kZXI6ICRwYXJlbnQua29FdmVudEFmdGVyUmVuZGVyIH0gLS0+PCEtLSAva28gLS0+PCEtLSAva28gLS0+XCIsXG59KTtcbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuXG5leHBvcnQgdmFyIFNWR0ljb25CaW5kaW5nO1xuXG5rby5jb21wb25lbnRzLnJlZ2lzdGVyKFwic3ZnLWljb25cIiwge1xuICB2aWV3TW9kZWw6IHtcbiAgICBjcmVhdGVWaWV3TW9kZWw6IChwYXJhbXMsIGNvbXBvbmVudEluZm8pID0+IHtcbiAgICAgIGtvLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgdmFyIHNpemUgPSBrby51bndyYXAocGFyYW1zLnNpemUpO1xuICAgICAgICB2YXIgd2lkdGggPSBrby51bndyYXAocGFyYW1zLndpZHRoKTtcbiAgICAgICAgdmFyIGhlaWdodCA9IGtvLnVud3JhcChwYXJhbXMuaGVpZ2h0KTtcbiAgICAgICAgdmFyIHN2Z0VsZW06IGFueSA9IGNvbXBvbmVudEluZm8uZWxlbWVudC5jaGlsZE5vZGVzWzBdO1xuICAgICAgICBzdmdFbGVtLnN0eWxlLndpZHRoID0gKHNpemUgfHwgd2lkdGggfHwgMTYpICsgXCJweFwiO1xuICAgICAgICBzdmdFbGVtLnN0eWxlLmhlaWdodCA9IChzaXplIHx8IGhlaWdodCB8fCAxNikgKyBcInB4XCI7XG4gICAgICAgIHZhciBub2RlOiBhbnkgPSBzdmdFbGVtLmNoaWxkTm9kZXNbMF07XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlTlMoXG4gICAgICAgICAgXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gICAgICAgICAgXCJ4bGluazpocmVmXCIsXG4gICAgICAgICAgXCIjXCIgKyBrby51bndyYXAocGFyYW1zLmljb25OYW1lKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfSxcbiAgdGVtcGxhdGU6IFwiPHN2ZyBjbGFzcz0nc3ZkLXN2Zy1pY29uJz48dXNlPjwvdXNlPjwvc3ZnPlwiLFxufSk7XG5cbiIsImltcG9ydCAqIGFzIGtvIGZyb20gXCJrbm9ja291dFwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCJzdXJ2ZXkta25vY2tvdXRcIjtcblxuZnVuY3Rpb24gZ2V0TnVtZXJpY0Zyb21TdHJpbmcoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0cikgcmV0dXJuIFwiXCI7XG4gIHZhciBudW0gPSBcIlwiO1xuICBmb3IgKHZhciBpID0gc3RyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKHN0cltpXSA+PSBcIjBcIiAmJiBzdHJbaV0gPD0gXCI5XCIpIHtcbiAgICAgIG51bSA9IHN0cltpXSArIG51bTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYoISFudW0pIHJldHVybiBudW07XG4gICAgfVxuICAgIGlmIChudW0ubGVuZ3RoID09IDEwKSBicmVhaztcbiAgfVxuICByZXR1cm4gbnVtO1xufVxuY29uc3Qgb3Bvc2l0ZVZhbHVlcyA9IHtcbiAgdHJ1ZTogXCJmYWxzZVwiLFxuICBUcnVlOiBcIkZhbHNlXCIsXG4gIFRSVUU6IFwiRkFMU0VcIixcbiAgZmFsc2U6IFwidHJ1ZVwiLFxuICBGYWxzZTogXCJUcnVlXCIsXG4gIEZBTFNFOiBcIlRSVUVcIixcbiAgeWVzOiBcIm5vXCIsXG4gIFllczogXCJOb1wiLFxuICBZRVM6IFwiTk9cIixcbiAgbm86IFwieWVzXCIsXG4gIE5vOiBcIlllc1wiLFxuICBOTzogXCJZRVNcIixcbn07XG5mdW5jdGlvbiBnZXRPcG9zaXRWYWx1ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghIW9wb3NpdGVWYWx1ZXNbc3RyXSkgcmV0dXJuIG9wb3NpdGVWYWx1ZXNbc3RyXTtcbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBoYXNWYWx1ZUluQXJyYXkodmFsdWVzOiBhbnlbXSwgc2VhcmNoOiBhbnkpOiBib29sZWFuIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIXZhbHVlc1tpXSkgY29udGludWU7XG4gICAgaWYgKHZhbHVlc1tpXS50b1N0cmluZygpID09PSBzZWFyY2gpIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0VmFsdWUocHJlZml4OiBzdHJpbmcsIHZhbHVlczogYW55W10pOiBzdHJpbmcgfCBudW1iZXIge1xuICBpZiAodmFsdWVzLmxlbmd0aCA+IDApXG4gICAgdmFyIG9wb3NpdGUgPSBnZXRPcG9zaXRWYWx1ZSh2YWx1ZXNbdmFsdWVzLmxlbmd0aCAtIDFdKTtcbiAgaWYgKG9wb3NpdGUgJiYgdmFsdWVzLmluZGV4T2Yob3Bvc2l0ZSkgPCAwKSByZXR1cm4gb3Bvc2l0ZTtcbiAgdmFyIG51bVN0ciA9IFwiXCI7XG4gIHZhciBiYXNlVmFsdWU7XG4gIHZhciBudW1TdHJJbmRleCA9IC0xO1xuICBmb3IgKHZhciBpID0gdmFsdWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKCF2YWx1ZXNbaV0pIGNvbnRpbnVlO1xuICAgIHZhciBzdHIgPSB2YWx1ZXNbaV0udG9TdHJpbmcoKTtcbiAgICBudW1TdHIgPSBnZXROdW1lcmljRnJvbVN0cmluZyhzdHIpO1xuICAgIGlmICghIW51bVN0cikge1xuICAgICAgbnVtU3RySW5kZXggPSBzdHIubGFzdEluZGV4T2YobnVtU3RyKTtcbiAgICAgIGJhc2VWYWx1ZSA9IHZhbHVlc1tpXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAobnVtU3RySW5kZXggPiAtMSkge1xuICAgIHZhciBudW0gPSBwYXJzZUludChudW1TdHIpO1xuICAgIHZhciBpc051bWJlciA9IGJhc2VWYWx1ZSA9PT0gbnVtO1xuICAgIHZhciBuZXdWYWx1ZTtcbiAgICBkbyB7XG4gICAgICBpZihpc051bWJlcikge1xuICAgICAgICBuZXdWYWx1ZSA9ICsrbnVtO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBuZXdOdW0gPSAobnVtKyspLnRvU3RyaW5nKCk7XG4gICAgICAgIHdoaWxlKG51bVN0ci5sZW5ndGggPiBuZXdOdW0ubGVuZ3RoKSB7XG4gICAgICAgICAgbmV3TnVtID0gXCIwXCIgKyBuZXdOdW07XG4gICAgICAgIH1cbiAgICAgICAgbmV3VmFsdWUgPSBzdHIuc3Vic3RyKDAsIG51bVN0ckluZGV4KSArIG5ld051bSArIHN0ci5zdWJzdHIobnVtU3RySW5kZXggKyBudW1TdHIubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9IHdoaWxlIChoYXNWYWx1ZUluQXJyYXkodmFsdWVzLCBuZXdWYWx1ZSkpO1xuICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgfVxuICByZXR1cm4gcHJlZml4ICsgMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQYXJlbnROb2RlKGNsYXNzTmFtZTogc3RyaW5nLCBzb3VyY2VOb2RlOiBIVE1MRWxlbWVudCkge1xuICB2YXIgcGFyZW50ID0gc291cmNlTm9kZTtcbiAgd2hpbGUgKCEhcGFyZW50ICYmICFwYXJlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcbiAgfVxuICByZXR1cm4gcGFyZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9jdXNGaXJzdENvbnRyb2wocmVuZGVyZWRFbGVtZW50czogSFRNTEVsZW1lbnRbXSkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbmRlcmVkRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAodHlwZW9mIHJlbmRlcmVkRWxlbWVudHNbaV0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB2YXIgZWxlbWVudHMgPSA8SFRNTENvbGxlY3Rpb25PZjxIVE1MRWxlbWVudD4+KFxuICAgICAgICByZW5kZXJlZEVsZW1lbnRzW2ldLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJzdmQtZm9jdXNhYmxlXCIpXG4gICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICBlbGVtZW50cy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgcmVuZGVyZWRFbGVtZW50c1tpXS5jbGFzc05hbWUuaW5kZXhPZihcInN2ZC1mb2N1c2FibGVcIikgIT09IC0xXG4gICAgICApIHtcbiAgICAgICAgZWxlbWVudHMgPSA8YW55PltyZW5kZXJlZEVsZW1lbnRzW2ldXTtcbiAgICAgIH1cbiAgICAgIGlmIChlbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHZhciBlbGVtZW50ID0gZWxlbWVudHNbMF07XG4gICAgICAgIGlmIChlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPT0gXCJhXCIpIHtcbiAgICAgICAgICBlbGVtZW50LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3ROb25UZXh0RWxlbWVudChlbGVtZW50czogYW55KSB7XG4gIGlmICghZWxlbWVudHMgfHwgIWVsZW1lbnRzLmxlbmd0aCkgcmV0dXJuO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGVsZW1lbnRzW2ldLm5vZGVOYW1lICE9IFwiI3RleHRcIiAmJiBlbGVtZW50c1tpXS5ub2RlTmFtZSAhPSBcIiNjb21tZW50XCIpXG4gICAgICByZXR1cm4gZWxlbWVudHNbaV07XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIGFib3V0IGNvbXBvZW50SW5mbzogaHR0cHM6Ly9rbm9ja291dGpzLmNvbS9kb2N1bWVudGF0aW9uL2NvbXBvbmVudC1yZWdpc3RyYXRpb24uaHRtbFxuZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVzRnJvbUtvQ29tcG9uZW50SW5mbyhjb21wb25lbnRJbmZvKSB7XG4gIC8vIGVsZW0ubm9kZVR5cGUgPT09IDMgLy8gdGV4dCBub2RlXG4gIC8vIGVsZW0ubm9kZVR5cGUgPT09IDggLy8gY29tbWVudCBub2RlXG5cbiAgbGV0IGVsZW1lbnQgPSBjb21wb25lbnRJbmZvLmVsZW1lbnQ7XG4gIGNvbnN0IHNpYmxpbmdzID0gW107XG5cbiAgaWYgKGVsZW1lbnQubm9kZVR5cGUgIT09IDgpIHtcbiAgICByZXR1cm4gZWxlbWVudC5jaGlsZE5vZGVzO1xuICB9XG5cbiAgd2hpbGUgKChlbGVtZW50ID0gZWxlbWVudC5uZXh0U2libGluZykpIHtcbiAgICBpZiAoZWxlbWVudC5ub2RlVHlwZSA9PT0gMykgY29udGludWU7XG4gICAgc2libGluZ3MucHVzaChlbGVtZW50KTtcbiAgfVxuICByZXR1cm4gc2libGluZ3M7XG59XG5cbmtvLmJpbmRpbmdIYW5kbGVyc1tcInRydWVjbGlja1wiXSA9IHtcbiAgaW5pdDogZnVuY3Rpb24gKGVsZW1lbnQsIHZhbHVlQWNjZXNzb3IsIGFsbEJpbmRpbmdzQWNjZXNzb3IpIHtcbiAgICBlbGVtZW50Lm9uY2xpY2sgPSAoKSA9PiB0cnVlO1xuICB9LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUtleTJjbGljayhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICByZXR1cm4gKGV2OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgdmFyIGNoYXIgPSBldi53aGljaCB8fCBldi5rZXlDb2RlO1xuICAgIGlmIChjaGFyID09PSAxMyB8fCBjaGFyID09PSAzMikge1xuICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gMjcpIHtcbiAgICAgIGVsZW1lbnQuYmx1cigpO1xuICAgIH1cbiAgfTtcbn1cblxua28uYmluZGluZ0hhbmRsZXJzW1wia2V5MmNsaWNrXCJdID0ge1xuICBpbml0OiBmdW5jdGlvbiAoZWxlbWVudCwgdmFsdWVBY2Nlc3NvciwgYWxsQmluZGluZ3NBY2Nlc3Nvcikge1xuICAgIGVsZW1lbnQub25rZXl1cCA9IGNyZWF0ZUtleTJjbGljayhlbGVtZW50KTtcbiAgfSxcbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVyc1tcImNsaWNrTm9Gb2N1c1wiXSA9IHtcbiAgaW5pdDogZnVuY3Rpb24gKGVsZW1lbnQsIHZhbHVlQWNjZXNzb3IsIGFsbEJpbmRpbmdzQWNjZXNzb3IsIHZpZXdNb2RlbCkge1xuICAgIGVsZW1lbnQub25jbGljayA9IChldikgPT4ge1xuICAgICAgdmFsdWVBY2Nlc3NvcigpLmNhbGwodmlld01vZGVsLCB2aWV3TW9kZWwsIGV2KTtcbiAgICB9O1xuICB9LFxufTtcblxua28uYmluZGluZ0hhbmRsZXJzW1wiYWZ0ZXJSZW5kZXJQYXJlbnRcIl0gPSB7XG4gIGluaXQ6IGZ1bmN0aW9uIChlbGVtZW50LCB2YWx1ZUFjY2Vzc29yLCBhbGxCaW5kaW5nc0FjY2Vzc29yLCB2aWV3TW9kZWwpIHtcbiAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICB2YWx1ZUFjY2Vzc29yKCkgJiYgdmFsdWVBY2Nlc3NvcigpKFtlbGVtZW50LnBhcmVudEVsZW1lbnRdKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eUV4aXN0cyhvYmo6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpIHtcbiAgbGV0IHJlc3VsdCA9IHRydWU7XG4gIGlmICghIW9iaiAmJiB0eXBlb2Ygb2JqLmdldFR5cGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gU2VyaWFsaXplci5maW5kUHJvcGVydHkob2JqLmdldFR5cGUoKSwgcHJvcGVydHlOYW1lKTtcbiAgICByZXN1bHQgPSAhIXByb3BlcnR5O1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5VmlzaWJsZShvYmo6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpIHtcbiAgbGV0IHJlc3VsdCA9IHRydWU7XG4gIGlmICghIW9iaiAmJiB0eXBlb2Ygb2JqLmdldFR5cGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gU2VyaWFsaXplci5maW5kUHJvcGVydHkob2JqLmdldFR5cGUoKSwgcHJvcGVydHlOYW1lKTtcbiAgICByZXN1bHQgPSAhcHJvcGVydHkgfHwgcHJvcGVydHkudmlzaWJsZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJpbVZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xuICBpZiAoISF2YWx1ZSAmJiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSlcbiAgICByZXR1cm4gdmFsdWUudHJpbSgpO1xuICByZXR1cm4gdmFsdWU7XG59IiwiLyogZm9yayBvZiB0aGUgaHR0cHM6Ly9naXRodWIuY29tL1NvcnRhYmxlSlMva25vY2tvdXQtc29ydGFibGVqcyBiZWNhdXNlIG9mIGVzIG1vZHVsZXMgYnVpbGQgZXJyb3IgXG4gICAgd2FpdGluZyBmb3IgYXBwcm92ZSBwdWxscmVxdWVzdHM6XG4gICAgICogaHR0cHM6Ly9naXRodWIuY29tL1NvcnRhYmxlSlMva25vY2tvdXQtc29ydGFibGVqcy9wdWxsLzkpXG4gICAgICogaHR0cHM6Ly9naXRodWIuY29tL1NvcnRhYmxlSlMva25vY2tvdXQtc29ydGFibGVqcy9wdWxsLzEvZmlsZXNcbiAgQ2hhbmdlIGxpbmU6XG4gIGlmIChoYW5kbGVyKSBoYW5kbGVyKGUsIGl0ZW1WTSwgcGFyZW50Vk0sIGNvbGxlY3Rpb24sIGJpbmRpbmdzKTtcbiAgdG86XG4gIGlmIChoYW5kbGVyICYmIGhhbmRsZXIoZSwgaXRlbVZNLCBwYXJlbnRWTSwgY29sbGVjdGlvbiwgYmluZGluZ3MpKSByZXR1cm47XG4qL1xuXG4vKmdsb2JhbCBrbyovXG5cbihmdW5jdGlvbiAoZmFjdG9yeSkge1xuICBcInVzZSBzdHJpY3RcIjtcbiAgLy9nZXQga28gcmVmIHZpYSBnbG9iYWwgb3IgcmVxdWlyZVxuICB2YXIga29SZWY7XG4gIGlmICh0eXBlb2Yga28gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAvL2dsb2JhbCByZWYgYWxyZWFkeSBkZWZpbmVkXG4gICAga29SZWYgPSBrbztcbiAgfSBlbHNlIGlmIChcbiAgICB0eXBlb2YgcmVxdWlyZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgdHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiXG4gICkge1xuICAgIC8vY29tbW9uanMgLyBub2RlLmpzXG4gICAga29SZWYgPSByZXF1aXJlKFwia25vY2tvdXRcIik7XG4gIH1cbiAgLy9nZXQgc29ydGFibGUgcmVmIHZpYSBnbG9iYWwgb3IgcmVxdWlyZVxuICB2YXIgc29ydGFibGVSZWY7XG4gIGlmICh0eXBlb2YgU29ydGFibGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAvL2dsb2JhbCByZWYgYWxyZWFkeSBkZWZpbmVkXG4gICAgc29ydGFibGVSZWYgPSBTb3J0YWJsZTtcbiAgfSBlbHNlIGlmIChcbiAgICB0eXBlb2YgcmVxdWlyZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgdHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiXG4gICkge1xuICAgIC8vY29tbW9uanMgLyBub2RlLmpzXG4gICAgc29ydGFibGVSZWYgPSByZXF1aXJlKFwiLi9zb3J0YWJsZVwiKTtcbiAgfVxuICAvL3VzZSByZWZlcmVuY2VzIGlmIHdlIGZvdW5kIHRoZW1cbiAgaWYgKGtvUmVmICE9PSB1bmRlZmluZWQgJiYgc29ydGFibGVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgIGZhY3Rvcnkoa29SZWYsIHNvcnRhYmxlUmVmKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuICAgIC8vaWYgYm90aCByZWZlcmVuY2VzIGFyZW4ndCBmb3VuZCB5ZXQsIGdldCB2aWEgQU1EIGlmIGF2YWlsYWJsZVxuICAgIC8vd2UgbWF5IGhhdmUgYSByZWZlcmVuY2UgdG8gb25seSAxLCBvciBub25lXG4gICAgaWYgKGtvUmVmICE9PSB1bmRlZmluZWQgJiYgc29ydGFibGVSZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVmaW5lKFtcIi4vc29ydGFibGVcIl0sIGZ1bmN0aW9uIChhbWRTb3J0YWJsZVJlZikge1xuICAgICAgICBmYWN0b3J5KGtvUmVmLCBhbWRTb3J0YWJsZVJlZik7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGtvUmVmID09PSB1bmRlZmluZWQgJiYgc29ydGFibGVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVmaW5lKFtcImtub2Nrb3V0XCJdLCBmdW5jdGlvbiAoYW1kS25vY2tvdXQpIHtcbiAgICAgICAgZmFjdG9yeShhbWRLbm9ja291dCwgc29ydGFibGVSZWYpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChrb1JlZiA9PT0gdW5kZWZpbmVkICYmIHNvcnRhYmxlUmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlZmluZShbXCJrbm9ja291dFwiLCBcIi4vc29ydGFibGVcIl0sIGZhY3RvcnkpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvL25vIG1vcmUgcm91dGVzIHRvIGdldCByZWZlcmVuY2VzXG4gICAgLy9yZXBvcnQgc3BlY2lmaWMgZXJyb3JcbiAgICBpZiAoa29SZWYgIT09IHVuZGVmaW5lZCAmJiBzb3J0YWJsZVJlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJrbm9ja291dC1zb3J0YWJsZSBjb3VsZCBub3QgZ2V0IHJlZmVyZW5jZSB0byBTb3J0YWJsZVwiKTtcbiAgICB9IGVsc2UgaWYgKGtvUmVmID09PSB1bmRlZmluZWQgJiYgc29ydGFibGVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwia25vY2tvdXQtc29ydGFibGUgY291bGQgbm90IGdldCByZWZlcmVuY2UgdG8gS25vY2tvdXRcIik7XG4gICAgfSBlbHNlIGlmIChrb1JlZiA9PT0gdW5kZWZpbmVkICYmIHNvcnRhYmxlUmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJrbm9ja291dC1zb3J0YWJsZSBjb3VsZCBub3QgZ2V0IHJlZmVyZW5jZSB0byBLbm9ja291dCBvciBTb3J0YWJsZVwiXG4gICAgICApO1xuICAgIH1cbiAgfVxufSkoZnVuY3Rpb24gKGtvLCBTb3J0YWJsZSkge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgaW5pdCA9IGZ1bmN0aW9uIChcbiAgICBlbGVtZW50LFxuICAgIHZhbHVlQWNjZXNzb3IsXG4gICAgYWxsQmluZGluZ3MsXG4gICAgdmlld01vZGVsLFxuICAgIGJpbmRpbmdDb250ZXh0LFxuICAgIHNvcnRhYmxlT3B0aW9uc1xuICApIHtcbiAgICB2YXIgb3B0aW9ucyA9IGJ1aWxkT3B0aW9ucyh2YWx1ZUFjY2Vzc29yLCBzb3J0YWJsZU9wdGlvbnMpO1xuXG4gICAgLy8gSXRzIHNlZW1zIHRoYXQgd2UgY2Fubm90IHVwZGF0ZSB0aGUgZXZlbnRoYW5kbGVycyBhZnRlciB3ZSd2ZSBjcmVhdGVkXG4gICAgLy8gdGhlIHNvcnRhYmxlLCBzbyBkZWZpbmUgdGhlbSBpbiBpbml0IGluc3RlYWQgb2YgdXBkYXRlXG4gICAgW1xuICAgICAgXCJvblN0YXJ0XCIsXG4gICAgICBcIm9uRW5kXCIsXG4gICAgICBcIm9uUmVtb3ZlXCIsXG4gICAgICBcIm9uQWRkXCIsXG4gICAgICBcIm9uVXBkYXRlXCIsXG4gICAgICBcIm9uU29ydFwiLFxuICAgICAgXCJvbkZpbHRlclwiLFxuICAgICAgXCJvbk1vdmVcIixcbiAgICAgIFwib25DbG9uZVwiXG4gICAgXS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XG4gICAgICBpZiAob3B0aW9uc1tlXSB8fCBldmVudEhhbmRsZXJzW2VdKVxuICAgICAgICBvcHRpb25zW2VdID0gZnVuY3Rpb24gKFxuICAgICAgICAgIGV2ZW50VHlwZSxcbiAgICAgICAgICBwYXJlbnRWTSxcbiAgICAgICAgICBwYXJlbnRCaW5kaW5ncyxcbiAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgIGVcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGl0ZW1WTSA9IGtvLmRhdGFGb3IoZS5pdGVtKSxcbiAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgYmluZGluZ3Mgb24gdGhlIHBhcmVudCBlbGVtZW50XG4gICAgICAgICAgICBiaW5kaW5ncyA9IGtvLnV0aWxzLnBlZWtPYnNlcnZhYmxlKHBhcmVudEJpbmRpbmdzKCkpLFxuICAgICAgICAgICAgLy8gVGhlIGJpbmRpbmcgb3B0aW9ucyBmb3IgdGhlIGRyYWdnYWJsZS9zb3J0YWJsZSBiaW5kaW5nIG9mIHRoZSBwYXJlbnQgZWxlbWVudFxuICAgICAgICAgICAgYmluZGluZ0hhbmRsZXJCaW5kaW5nID0gYmluZGluZ3Muc29ydGFibGUgfHwgYmluZGluZ3MuZHJhZ2dhYmxlLFxuICAgICAgICAgICAgLy8gVGhlIGNvbGxlY3Rpb24gdGhhdCB3ZSBzaG91bGQgbW9kaWZ5XG4gICAgICAgICAgICBjb2xsZWN0aW9uID1cbiAgICAgICAgICAgICAgYmluZGluZ0hhbmRsZXJCaW5kaW5nLmNvbGxlY3Rpb24gfHxcbiAgICAgICAgICAgICAgYmluZGluZ0hhbmRsZXJCaW5kaW5nLmZvcmVhY2g7XG4gICAgICAgICAgaWYgKGhhbmRsZXIgJiYgaGFuZGxlcihlLCBpdGVtVk0sIHBhcmVudFZNLCBjb2xsZWN0aW9uLCBiaW5kaW5ncykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgaWYgKGV2ZW50SGFuZGxlcnNbZXZlbnRUeXBlXSlcbiAgICAgICAgICAgIGV2ZW50SGFuZGxlcnNbZXZlbnRUeXBlXShcbiAgICAgICAgICAgICAgZSxcbiAgICAgICAgICAgICAgaXRlbVZNLFxuICAgICAgICAgICAgICBwYXJlbnRWTSxcbiAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgYmluZGluZ3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0uYmluZCh1bmRlZmluZWQsIGUsIHZpZXdNb2RlbCwgYWxsQmluZGluZ3MsIG9wdGlvbnNbZV0pO1xuICAgIH0pO1xuXG4gICAgdmFyIHNvcnRhYmxlRWxlbWVudCA9IFNvcnRhYmxlLmNyZWF0ZShlbGVtZW50LCBvcHRpb25zKTtcblxuICAgIC8vIERlc3Ryb3kgdGhlIHNvcnRhYmxlIGlmIGtub2Nrb3V0IGRpc3Bvc2VzIHRoZSBlbGVtZW50IGl0cyBjb25uZWN0ZWQgdG9cbiAgICBrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGVsZW1lbnQsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHNvcnRhYmxlRWxlbWVudC5kZXN0cm95KCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGtvLmJpbmRpbmdIYW5kbGVycy50ZW1wbGF0ZS5pbml0KGVsZW1lbnQsIHZhbHVlQWNjZXNzb3IpO1xuICB9LFxuICAgIHVwZGF0ZSA9IGZ1bmN0aW9uIChcbiAgICAgIGVsZW1lbnQsXG4gICAgICB2YWx1ZUFjY2Vzc29yLFxuICAgICAgYWxsQmluZGluZ3MsXG4gICAgICB2aWV3TW9kZWwsXG4gICAgICBiaW5kaW5nQ29udGV4dCxcbiAgICAgIHNvcnRhYmxlT3B0aW9uc1xuICAgICkge1xuICAgICAgLy8gVGhlcmUgc2VlbXMgdG8gYmUgc29tZSBwcm9ibGVtcyB3aXRoIHVwZGF0aW5nIHRoZSBvcHRpb25zIG9mIGEgc29ydGFibGVcbiAgICAgIC8vIFRlc3RlZCB0byBjaGFuZ2UgZXZlbnRoYW5kbGVycyBhbmQgdGhlIGdyb3VwIG9wdGlvbnMgd2l0aG91dCBhbnkgbHVja1xuXG4gICAgICByZXR1cm4ga28uYmluZGluZ0hhbmRsZXJzLnRlbXBsYXRlLnVwZGF0ZShcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgdmFsdWVBY2Nlc3NvcixcbiAgICAgICAgYWxsQmluZGluZ3MsXG4gICAgICAgIHZpZXdNb2RlbCxcbiAgICAgICAgYmluZGluZ0NvbnRleHRcbiAgICAgICk7XG4gICAgfSxcbiAgICBldmVudEhhbmRsZXJzID0gKGZ1bmN0aW9uIChoYW5kbGVycykge1xuICAgICAgdmFyIG1vdmVPcGVyYXRpb25zID0gW10sXG4gICAgICAgIHRyeU1vdmVPcGVyYXRpb24gPSBmdW5jdGlvbiAoXG4gICAgICAgICAgZSxcbiAgICAgICAgICBpdGVtVk0sXG4gICAgICAgICAgcGFyZW50Vk0sXG4gICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICBwYXJlbnRCaW5kaW5nc1xuICAgICAgICApIHtcbiAgICAgICAgICAvLyBBIG1vdmUgb3BlcmF0aW9uIGlzIHRoZSBjb21iaW5hdGlvbiBvZiBhIGFkZCBhbmQgcmVtb3ZlIGV2ZW50LFxuICAgICAgICAgIC8vIHRoaXMgaXMgdG8gbWFrZSBzdXJlIHRoYXQgd2UgaGF2ZSBib3RoIHRoZSB0YXJnZXQgYW5kIG9yaWdpbiBjb2xsZWN0aW9uc1xuICAgICAgICAgIHZhciBjdXJyZW50T3BlcmF0aW9uID0ge1xuICAgICAgICAgICAgZXZlbnQ6IGUsXG4gICAgICAgICAgICBpdGVtVk06IGl0ZW1WTSxcbiAgICAgICAgICAgIHBhcmVudFZNOiBwYXJlbnRWTSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBwYXJlbnRCaW5kaW5nczogcGFyZW50QmluZGluZ3NcbiAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhpc3RpbmdPcGVyYXRpb24gPSBtb3ZlT3BlcmF0aW9ucy5maWx0ZXIoZnVuY3Rpb24gKG9wKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcC5pdGVtVk0gPT09IGN1cnJlbnRPcGVyYXRpb24uaXRlbVZNO1xuICAgICAgICAgICAgfSlbMF07XG5cbiAgICAgICAgICBpZiAoIWV4aXN0aW5nT3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBtb3ZlT3BlcmF0aW9ucy5wdXNoKGN1cnJlbnRPcGVyYXRpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBXZSdyZSBmaW5pc2hpbmcgdGhlIG9wZXJhdGlvbiBhbmQgYWxyZWFkeSBoYXZlIGEgaGFuZGxlIG9uXG4gICAgICAgICAgICAvLyB0aGUgb3BlcmF0aW9uIGl0ZW0gbWVhbmluZyB0aGF0IGl0cyBzYWZlIHRvIHJlbW92ZSBpdFxuICAgICAgICAgICAgbW92ZU9wZXJhdGlvbnMuc3BsaWNlKG1vdmVPcGVyYXRpb25zLmluZGV4T2YoZXhpc3RpbmdPcGVyYXRpb24pLCAxKTtcblxuICAgICAgICAgICAgdmFyIHJlbW92ZU9wZXJhdGlvbiA9XG4gICAgICAgICAgICAgIGN1cnJlbnRPcGVyYXRpb24uZXZlbnQudHlwZSA9PT0gXCJyZW1vdmVcIlxuICAgICAgICAgICAgICAgID8gY3VycmVudE9wZXJhdGlvblxuICAgICAgICAgICAgICAgIDogZXhpc3RpbmdPcGVyYXRpb24sXG4gICAgICAgICAgICAgIGFkZE9wZXJhdGlvbiA9XG4gICAgICAgICAgICAgICAgY3VycmVudE9wZXJhdGlvbi5ldmVudC50eXBlID09PSBcImFkZFwiXG4gICAgICAgICAgICAgICAgICA/IGN1cnJlbnRPcGVyYXRpb25cbiAgICAgICAgICAgICAgICAgIDogZXhpc3RpbmdPcGVyYXRpb247XG5cbiAgICAgICAgICAgIG1vdmVJdGVtKFxuICAgICAgICAgICAgICBpdGVtVk0sXG4gICAgICAgICAgICAgIHJlbW92ZU9wZXJhdGlvbi5jb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBhZGRPcGVyYXRpb24uY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgYWRkT3BlcmF0aW9uLmV2ZW50LmNsb25lLFxuICAgICAgICAgICAgICBhZGRPcGVyYXRpb24uZXZlbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAvLyBNb3ZlcyBhbiBpdGVtIGZyb20gdGhlIFwiZnJvbVwiIGNvbGxlY3Rpb24gdG8gdGhlIFwidG9cIiBjb2xsZWN0aW9uLCB0aGVzZVxuICAgICAgICAvLyBjYW4gYmUgcmVmZXJlbmNlcyB0byB0aGUgc2FtZSBjb2xsZWN0aW9uIHdoaWNoIG1lYW5zIGl0cyBhIHNvcnQuXG4gICAgICAgIC8vIGNsb25lIGluZGljYXRlcyBpZiB3ZSBzaG91bGQgbW92ZSBvciBjb3B5IHRoZSBpdGVtIGludG8gdGhlIG5ldyBjb2xsZWN0aW9uXG4gICAgICAgIG1vdmVJdGVtID0gZnVuY3Rpb24gKGl0ZW1WTSwgZnJvbSwgdG8sIGNsb25lLCBlKSB7XG4gICAgICAgICAgLy8gVW53cmFwcGluZyB0aGlzIGFsbG93cyB1cyB0byBtYW5pcHVsYXRlIHRoZSBhY3R1YWwgYXJyYXlcbiAgICAgICAgICB2YXIgZnJvbUFycmF5ID0gZnJvbSgpLFxuICAgICAgICAgICAgLy8gSXRzIG5vdCBjZXJ0YWluIHRoYXQgdGhlIGl0ZW1zIGFjdHVhbCBpbmRleCBpcyB0aGUgc2FtZVxuICAgICAgICAgICAgLy8gYXMgdGhlIGluZGV4IHJlcG9ydGVkIGJ5IHNvcnRhYmxlIGR1ZSB0byBmaWx0ZXJpbmcgZXRjLlxuICAgICAgICAgICAgb3JpZ2luYWxJbmRleCA9IGZyb21BcnJheS5pbmRleE9mKGl0ZW1WTSksXG4gICAgICAgICAgICBuZXdJbmRleCA9IGUubmV3SW5kZXg7XG5cbiAgICAgICAgICAvLyBXZSBoYXZlIHRvIGZpbmQgb3V0IHRoZSBhY3R1YWwgZGVzaXJlZCBpbmRleCBvZiB0aGUgdG8gYXJyYXksXG4gICAgICAgICAgLy8gYXMgdGhpcyBtaWdodCBiZSBhIGNvbXB1dGVkIGFycmF5LiBXZSBjb3VsZCBvdGhlcndpc2UgcG90ZW50aWFsbHlcbiAgICAgICAgICAvLyBkcm9wIGFuIGl0ZW0gYWJvdmUgdGhlIDNyZCB2aXNpYmxlIGl0ZW0sIGJ1dCB0aGUgMm5kIHZpc2libGUgaXRlbVxuICAgICAgICAgIC8vIGhhcyBhbiBhY3R1YWwgaW5kZXggb2YgNS5cbiAgICAgICAgICBpZiAoZS5pdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHtcbiAgICAgICAgICAgIG5ld0luZGV4ID0gdG8oKS5pbmRleE9mKGtvLmRhdGFGb3IoZS5pdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpKTtcbiAgICAgICAgICAgIG5ld0luZGV4ICs9IG5ld0luZGV4ID4gb3JpZ2luYWxJbmRleCA/IDAgOiAxO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFJlbW92ZSBzb3J0YWJsZXMgXCJ1bmJvdW5kXCIgZWxlbWVudFxuICAgICAgICAgIGUuaXRlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUuaXRlbSk7XG5cbiAgICAgICAgICAvLyBUaGlzIHNwbGljZSBpcyBuZWNlc3NhcnkgZm9yIGJvdGggY2xvbmUgYW5kIG1vdmUvc29ydFxuICAgICAgICAgIC8vIEluIHNvcnQvbW92ZSBzaW5jZSBpdCBzaG91bGRuJ3QgYmUgYXQgdGhpcyBpbmRleC9pbiB0aGlzIGFycmF5IGFueW1vcmVcbiAgICAgICAgICAvLyBJbiBjbG9uZSBzaW5jZSB3ZSBoYXZlIHRvIHdvcmsgYXJvdW5kIGtub2Nrb3V0cyB2YWx1SGFzTXV0YXRlZFxuICAgICAgICAgIC8vIHdoZW4gbWFuaXB1bGF0aW5nIGFycmF5cyBhbmQgYXZvaWQgYSBcInVuYm91bmRcIiBpdGVtIGFkZGVkIGJ5IHNvcnRhYmxlXG4gICAgICAgICAgZnJvbUFycmF5LnNwbGljZShvcmlnaW5hbEluZGV4LCAxKTtcbiAgICAgICAgICAvLyBVcGRhdGUgdGhlIGFycmF5LCB0aGlzIHdpbGwgYWxzbyByZW1vdmUgc29ydGFibGVzIFwidW5ib3VuZFwiIGNsb25lXG4gICAgICAgICAgZnJvbS52YWx1ZUhhc011dGF0ZWQoKTtcbiAgICAgICAgICBpZiAoY2xvbmUgJiYgZnJvbSAhPT0gdG8pIHtcbiAgICAgICAgICAgIC8vIFJlYWQgdGhlIGl0ZW1cbiAgICAgICAgICAgIGZyb21BcnJheS5zcGxpY2Uob3JpZ2luYWxJbmRleCwgMCwgaXRlbVZNKTtcbiAgICAgICAgICAgIC8vIEZvcmNlIGtub2Nrb3V0IHRvIHVwZGF0ZVxuICAgICAgICAgICAgZnJvbS52YWx1ZUhhc011dGF0ZWQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gRm9yY2UgZGVmZXJyZWQgdGFza3MgdG8gcnVuIG5vdywgcmVnaXN0ZXJpbmcgdGhlIHJlbW92YWxcbiAgICAgICAgICAhIWtvLnRhc2tzICYmIGtvLnRhc2tzLnJ1bkVhcmx5KCk7XG4gICAgICAgICAgLy8gSW5zZXJ0IHRoZSBpdGVtIG9uIGl0cyBuZXcgcG9zaXRpb25cbiAgICAgICAgICB0bygpLnNwbGljZShuZXdJbmRleCwgMCwgaXRlbVZNKTtcbiAgICAgICAgICAvLyBNYWtlIHN1cmUgdG8gdGVsbCBrbm9ja291dCB0aGF0IHdlJ3ZlIG1vZGlmaWVkIHRoZSBhY3R1YWwgYXJyYXkuXG4gICAgICAgICAgdG8udmFsdWVIYXNNdXRhdGVkKCk7XG4gICAgICAgIH07XG5cbiAgICAgIGhhbmRsZXJzLm9uUmVtb3ZlID0gdHJ5TW92ZU9wZXJhdGlvbjtcbiAgICAgIGhhbmRsZXJzLm9uQWRkID0gdHJ5TW92ZU9wZXJhdGlvbjtcbiAgICAgIGhhbmRsZXJzLm9uVXBkYXRlID0gZnVuY3Rpb24gKFxuICAgICAgICBlLFxuICAgICAgICBpdGVtVk0sXG4gICAgICAgIHBhcmVudFZNLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBwYXJlbnRCaW5kaW5nc1xuICAgICAgKSB7XG4gICAgICAgIC8vIFRoaXMgd2lsbCBiZSBwZXJmb3JtZWQgYXMgYSBzb3J0IHNpbmNlIHRoZSB0by9mcm9tIGNvbGxlY3Rpb25zXG4gICAgICAgIC8vIHJlZmVyZW5jZSB0aGUgc2FtZSBjb2xsZWN0aW9uIGFuZCBjbG9uZSBpcyBzZXQgdG8gZmFsc2VcbiAgICAgICAgbW92ZUl0ZW0oaXRlbVZNLCBjb2xsZWN0aW9uLCBjb2xsZWN0aW9uLCBmYWxzZSwgZSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gaGFuZGxlcnM7XG4gICAgfSkoe30pLFxuICAgIC8vIGJpbmRpbmdPcHRpb25zIGFyZSB0aGUgb3B0aW9ucyBzZXQgaW4gdGhlIFwiZGF0YS1iaW5kXCIgYXR0cmlidXRlIGluIHRoZSB1aS5cbiAgICAvLyBvcHRpb25zIGFyZSBjdXN0b20gb3B0aW9ucywgZm9yIGluc3RhbmNlIGRyYWdnYWJsZS9zb3J0YWJsZSBzcGVjaWZpYyBvcHRpb25zXG4gICAgYnVpbGRPcHRpb25zID0gZnVuY3Rpb24gKGJpbmRpbmdPcHRpb25zLCBvcHRpb25zKSB7XG4gICAgICAvLyBkZWVwIGNsb25lL2NvcHkgb2YgcHJvcGVydGllcyBmcm9tIHRoZSBcImZyb21cIiBhcmd1bWVudCBvbnRvXG4gICAgICAvLyB0aGUgXCJpbnRvXCIgYXJndW1lbnQgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIFwiaW50b1wiXG4gICAgICB2YXIgbWVyZ2UgPSBmdW5jdGlvbiAoaW50bywgZnJvbSkge1xuICAgICAgICBmb3IgKHZhciBwcm9wIGluIGZyb20pIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZnJvbVtwcm9wXSkgPT09IFwiW29iamVjdCBPYmplY3RdXCJcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGludG9bcHJvcF0pICE9PSBcIltvYmplY3QgT2JqZWN0XVwiXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgaW50b1twcm9wXSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50b1twcm9wXSA9IG1lcmdlKGludG9bcHJvcF0sIGZyb21bcHJvcF0pO1xuICAgICAgICAgIH0gZWxzZSBpbnRvW3Byb3BdID0gZnJvbVtwcm9wXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbnRvO1xuICAgICAgfSxcbiAgICAgICAgLy8gdW53cmFwIHRoZSBzdXBwbGllZCBvcHRpb25zXG4gICAgICAgIHVud3JhcHBlZE9wdGlvbnMgPVxuICAgICAgICAgIGtvLnV0aWxzLnBlZWtPYnNlcnZhYmxlKGJpbmRpbmdPcHRpb25zKCkpLm9wdGlvbnMgfHwge307XG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IG1vZGlmeSB0aGUgcHJvdmlkZWQgc2V0dGluZ3Mgb2JqZWN0XG4gICAgICBvcHRpb25zID0gbWVyZ2Uoe30sIG9wdGlvbnMpO1xuXG4gICAgICAvLyBncm91cCBpcyBoYW5kbGVkIGRpZmZlcmVudGx5IHNpbmNlIHdlIHNob3VsZCBib3RoIGFsbG93IHRvIGNoYW5nZVxuICAgICAgLy8gYSBkcmFnZ2FibGUgdG8gYSBzb3J0YWJsZSAoYW5kIHZpY2UgdmVyc2EpLCBidXQgc3RpbGwgYmUgYWJsZSB0byBzZXRcbiAgICAgIC8vIGEgbmFtZSBvbiBhIGRyYWdnYWJsZSB3aXRob3V0IGl0IGJlY29taW5nIGEgZHJvcCB0YXJnZXQuXG4gICAgICBpZiAoXG4gICAgICAgIHVud3JhcHBlZE9wdGlvbnMuZ3JvdXAgJiZcbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHVud3JhcHBlZE9wdGlvbnMuZ3JvdXApICE9PVxuICAgICAgICBcIltvYmplY3QgT2JqZWN0XVwiXG4gICAgICApIHtcbiAgICAgICAgLy8gZ3JvdXAgcHJvcGVydHkgaXMgYSBuYW1lIHN0cmluZyBkZWNsYXJhdGlvbiwgY29udmVydCB0byBvYmplY3QuXG4gICAgICAgIHVud3JhcHBlZE9wdGlvbnMuZ3JvdXAgPSB7IG5hbWU6IHVud3JhcHBlZE9wdGlvbnMuZ3JvdXAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1lcmdlKG9wdGlvbnMsIHVud3JhcHBlZE9wdGlvbnMpO1xuICAgIH07XG5cbiAga28uYmluZGluZ0hhbmRsZXJzLmRyYWdnYWJsZSA9IHtcbiAgICBzb3J0YWJsZU9wdGlvbnM6IHtcbiAgICAgIGdyb3VwOiB7IHB1bGw6IFwiY2xvbmVcIiwgcHV0OiBmYWxzZSB9LFxuICAgICAgc29ydDogZmFsc2VcbiAgICB9LFxuICAgIGluaXQ6IGZ1bmN0aW9uIChcbiAgICAgIGVsZW1lbnQsXG4gICAgICB2YWx1ZUFjY2Vzc29yLFxuICAgICAgYWxsQmluZGluZ3MsXG4gICAgICB2aWV3TW9kZWwsXG4gICAgICBiaW5kaW5nQ29udGV4dFxuICAgICkge1xuICAgICAgcmV0dXJuIGluaXQoXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIHZhbHVlQWNjZXNzb3IsXG4gICAgICAgIGFsbEJpbmRpbmdzLFxuICAgICAgICB2aWV3TW9kZWwsXG4gICAgICAgIGJpbmRpbmdDb250ZXh0LFxuICAgICAgICBrby5iaW5kaW5nSGFuZGxlcnMuZHJhZ2dhYmxlLnNvcnRhYmxlT3B0aW9uc1xuICAgICAgKTtcbiAgICB9LFxuICAgIHVwZGF0ZTogZnVuY3Rpb24gKFxuICAgICAgZWxlbWVudCxcbiAgICAgIHZhbHVlQWNjZXNzb3IsXG4gICAgICBhbGxCaW5kaW5ncyxcbiAgICAgIHZpZXdNb2RlbCxcbiAgICAgIGJpbmRpbmdDb250ZXh0XG4gICAgKSB7XG4gICAgICByZXR1cm4gdXBkYXRlKFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICB2YWx1ZUFjY2Vzc29yLFxuICAgICAgICBhbGxCaW5kaW5ncyxcbiAgICAgICAgdmlld01vZGVsLFxuICAgICAgICBiaW5kaW5nQ29udGV4dCxcbiAgICAgICAga28uYmluZGluZ0hhbmRsZXJzLmRyYWdnYWJsZS5zb3J0YWJsZU9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGtvLmJpbmRpbmdIYW5kbGVycy5zb3J0YWJsZSA9IHtcbiAgICBzb3J0YWJsZU9wdGlvbnM6IHtcbiAgICAgIGdyb3VwOiB7IHB1bGw6IHRydWUsIHB1dDogdHJ1ZSB9XG4gICAgfSxcbiAgICBpbml0OiBmdW5jdGlvbiAoXG4gICAgICBlbGVtZW50LFxuICAgICAgdmFsdWVBY2Nlc3NvcixcbiAgICAgIGFsbEJpbmRpbmdzLFxuICAgICAgdmlld01vZGVsLFxuICAgICAgYmluZGluZ0NvbnRleHRcbiAgICApIHtcbiAgICAgIHJldHVybiBpbml0KFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICB2YWx1ZUFjY2Vzc29yLFxuICAgICAgICBhbGxCaW5kaW5ncyxcbiAgICAgICAgdmlld01vZGVsLFxuICAgICAgICBiaW5kaW5nQ29udGV4dCxcbiAgICAgICAga28uYmluZGluZ0hhbmRsZXJzLnNvcnRhYmxlLnNvcnRhYmxlT3B0aW9uc1xuICAgICAgKTtcbiAgICB9LFxuICAgIHVwZGF0ZTogZnVuY3Rpb24gKFxuICAgICAgZWxlbWVudCxcbiAgICAgIHZhbHVlQWNjZXNzb3IsXG4gICAgICBhbGxCaW5kaW5ncyxcbiAgICAgIHZpZXdNb2RlbCxcbiAgICAgIGJpbmRpbmdDb250ZXh0XG4gICAgKSB7XG4gICAgICByZXR1cm4gdXBkYXRlKFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICB2YWx1ZUFjY2Vzc29yLFxuICAgICAgICBhbGxCaW5kaW5ncyxcbiAgICAgICAgdmlld01vZGVsLFxuICAgICAgICBiaW5kaW5nQ29udGV4dCxcbiAgICAgICAga28uYmluZGluZ0hhbmRsZXJzLnNvcnRhYmxlLnNvcnRhYmxlT3B0aW9uc1xuICAgICAgKTtcbiAgICB9XG4gIH07XG59KTtcbiIsIi8qIGZvcmsgb2YgdGhlIFwic29ydGFibGVqc1wiOiBcIjEuNi4xXCIgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vc3VydmV5anMvc3VydmV5LWNyZWF0b3IvaXNzdWVzLzM3MjdcblxuICBub3RoaW5nIGNoYW5nZWQgcHJvYmFseSBpc3N1ZSB3YXMgZ29uZSBiZWNhdXNlIG9mIGltcG9ydCBvcmRlclxuKi9cblxuLyoqIVxuICogU29ydGFibGVcbiAqIEBhdXRob3JcdFJ1YmFYYSAgIDx0cmFzaEBydWJheGEub3JnPlxuICogQGxpY2Vuc2UgTUlUXG4gKi9cblxuKGZ1bmN0aW9uIHNvcnRhYmxlTW9kdWxlKGZhY3RvcnkpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG4gICAgZGVmaW5lKGZhY3RvcnkpO1xuICB9XG4gIGVsc2UgaWYgKHR5cGVvZiBtb2R1bGUgIT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgbW9kdWxlLmV4cG9ydHMgIT0gXCJ1bmRlZmluZWRcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuICB9XG4gIGVsc2Uge1xuICAgIC8qIGpzaGludCBzdWI6dHJ1ZSAqL1xuICAgIHdpbmRvd1tcIlNvcnRhYmxlXCJdID0gZmFjdG9yeSgpO1xuICB9XG59KShmdW5jdGlvbiBzb3J0YWJsZUZhY3RvcnkoKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09IFwidW5kZWZpbmVkXCIgfHwgIXdpbmRvdy5kb2N1bWVudCkge1xuICAgIHJldHVybiBmdW5jdGlvbiBzb3J0YWJsZUVycm9yKCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU29ydGFibGUuanMgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50XCIpO1xuICAgIH07XG4gIH1cblxuICB2YXIgZHJhZ0VsLFxuICAgIHBhcmVudEVsLFxuICAgIGdob3N0RWwsXG4gICAgY2xvbmVFbCxcbiAgICByb290RWwsXG4gICAgbmV4dEVsLFxuICAgIGxhc3REb3duRWwsXG5cbiAgICBzY3JvbGxFbCxcbiAgICBzY3JvbGxQYXJlbnRFbCxcbiAgICBzY3JvbGxDdXN0b21GbixcblxuICAgIGxhc3RFbCxcbiAgICBsYXN0Q1NTLFxuICAgIGxhc3RQYXJlbnRDU1MsXG5cbiAgICBvbGRJbmRleCxcbiAgICBuZXdJbmRleCxcblxuICAgIGFjdGl2ZUdyb3VwLFxuICAgIHB1dFNvcnRhYmxlLFxuXG4gICAgYXV0b1Njcm9sbCA9IHt9LFxuXG4gICAgdGFwRXZ0LFxuICAgIHRvdWNoRXZ0LFxuXG4gICAgbW92ZWQsXG5cbiAgICAvKiogQGNvbnN0ICovXG4gICAgUl9TUEFDRSA9IC9cXHMrL2csXG4gICAgUl9GTE9BVCA9IC9sZWZ0fHJpZ2h0fGlubGluZS8sXG5cbiAgICBleHBhbmRvID0gJ1NvcnRhYmxlJyArIChuZXcgRGF0ZSkuZ2V0VGltZSgpLFxuXG4gICAgd2luID0gd2luZG93LFxuICAgIGRvY3VtZW50ID0gd2luLmRvY3VtZW50LFxuICAgIHBhcnNlSW50ID0gd2luLnBhcnNlSW50LFxuXG4gICAgJCA9IHdpbi5qUXVlcnkgfHwgd2luLlplcHRvLFxuICAgIFBvbHltZXIgPSB3aW4uUG9seW1lcixcblxuICAgIGNhcHR1cmVNb2RlID0gZmFsc2UsXG5cbiAgICBzdXBwb3J0RHJhZ2dhYmxlID0gISEoJ2RyYWdnYWJsZScgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpLFxuICAgIHN1cHBvcnRDc3NQb2ludGVyRXZlbnRzID0gKGZ1bmN0aW9uIChlbCkge1xuICAgICAgLy8gZmFsc2Ugd2hlbiBJRTExXG4gICAgICBpZiAoISFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9UcmlkZW50LipydlsgOl0/MTFcXC4vKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3gnKTtcbiAgICAgIGVsLnN0eWxlLmNzc1RleHQgPSAncG9pbnRlci1ldmVudHM6YXV0byc7XG4gICAgICByZXR1cm4gZWwuc3R5bGUucG9pbnRlckV2ZW50cyA9PT0gJ2F1dG8nO1xuICAgIH0pKCksXG5cbiAgICBfc2lsZW50ID0gZmFsc2UsXG5cbiAgICBhYnMgPSBNYXRoLmFicyxcbiAgICBtaW4gPSBNYXRoLm1pbixcblxuICAgIHNhdmVkSW5wdXRDaGVja2VkID0gW10sXG4gICAgdG91Y2hEcmFnT3Zlckxpc3RlbmVycyA9IFtdLFxuXG4gICAgX2F1dG9TY3JvbGwgPSBfdGhyb3R0bGUoZnVuY3Rpb24gKC8qKkV2ZW50Ki9ldnQsIC8qKk9iamVjdCovb3B0aW9ucywgLyoqSFRNTEVsZW1lbnQqL3Jvb3RFbCkge1xuICAgICAgLy8gQnVnOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MDU1MjFcbiAgICAgIGlmIChyb290RWwgJiYgb3B0aW9ucy5zY3JvbGwpIHtcbiAgICAgICAgdmFyIF90aGlzID0gcm9vdEVsW2V4cGFuZG9dLFxuICAgICAgICAgIGVsLFxuICAgICAgICAgIHJlY3QsXG4gICAgICAgICAgc2VucyA9IG9wdGlvbnMuc2Nyb2xsU2Vuc2l0aXZpdHksXG4gICAgICAgICAgc3BlZWQgPSBvcHRpb25zLnNjcm9sbFNwZWVkLFxuXG4gICAgICAgICAgeCA9IGV2dC5jbGllbnRYLFxuICAgICAgICAgIHkgPSBldnQuY2xpZW50WSxcblxuICAgICAgICAgIHdpbldpZHRoID0gd2luZG93LmlubmVyV2lkdGgsXG4gICAgICAgICAgd2luSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0LFxuXG4gICAgICAgICAgdngsXG4gICAgICAgICAgdnksXG5cbiAgICAgICAgICBzY3JvbGxPZmZzZXRYLFxuICAgICAgICAgIHNjcm9sbE9mZnNldFlcbiAgICAgICAgICA7XG5cbiAgICAgICAgLy8gRGVsZWN0IHNjcm9sbEVsXG4gICAgICAgIGlmIChzY3JvbGxQYXJlbnRFbCAhPT0gcm9vdEVsKSB7XG4gICAgICAgICAgc2Nyb2xsRWwgPSBvcHRpb25zLnNjcm9sbDtcbiAgICAgICAgICBzY3JvbGxQYXJlbnRFbCA9IHJvb3RFbDtcbiAgICAgICAgICBzY3JvbGxDdXN0b21GbiA9IG9wdGlvbnMuc2Nyb2xsRm47XG5cbiAgICAgICAgICBpZiAoc2Nyb2xsRWwgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHNjcm9sbEVsID0gcm9vdEVsO1xuXG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIGlmICgoc2Nyb2xsRWwub2Zmc2V0V2lkdGggPCBzY3JvbGxFbC5zY3JvbGxXaWR0aCkgfHxcbiAgICAgICAgICAgICAgICAoc2Nyb2xsRWwub2Zmc2V0SGVpZ2h0IDwgc2Nyb2xsRWwuc2Nyb2xsSGVpZ2h0KVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvKiBqc2hpbnQgYm9zczp0cnVlICovXG4gICAgICAgICAgICB9IHdoaWxlIChzY3JvbGxFbCA9IHNjcm9sbEVsLnBhcmVudE5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzY3JvbGxFbCkge1xuICAgICAgICAgIGVsID0gc2Nyb2xsRWw7XG4gICAgICAgICAgcmVjdCA9IHNjcm9sbEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIHZ4ID0gKGFicyhyZWN0LnJpZ2h0IC0geCkgPD0gc2VucykgLSAoYWJzKHJlY3QubGVmdCAtIHgpIDw9IHNlbnMpO1xuICAgICAgICAgIHZ5ID0gKGFicyhyZWN0LmJvdHRvbSAtIHkpIDw9IHNlbnMpIC0gKGFicyhyZWN0LnRvcCAtIHkpIDw9IHNlbnMpO1xuICAgICAgICB9XG5cblxuICAgICAgICBpZiAoISh2eCB8fCB2eSkpIHtcbiAgICAgICAgICB2eCA9ICh3aW5XaWR0aCAtIHggPD0gc2VucykgLSAoeCA8PSBzZW5zKTtcbiAgICAgICAgICB2eSA9ICh3aW5IZWlnaHQgLSB5IDw9IHNlbnMpIC0gKHkgPD0gc2Vucyk7XG5cbiAgICAgICAgICAvKiBqc2hpbnQgZXhwcjp0cnVlICovXG4gICAgICAgICAgKHZ4IHx8IHZ5KSAmJiAoZWwgPSB3aW4pO1xuICAgICAgICB9XG5cblxuICAgICAgICBpZiAoYXV0b1Njcm9sbC52eCAhPT0gdnggfHwgYXV0b1Njcm9sbC52eSAhPT0gdnkgfHwgYXV0b1Njcm9sbC5lbCAhPT0gZWwpIHtcbiAgICAgICAgICBhdXRvU2Nyb2xsLmVsID0gZWw7XG4gICAgICAgICAgYXV0b1Njcm9sbC52eCA9IHZ4O1xuICAgICAgICAgIGF1dG9TY3JvbGwudnkgPSB2eTtcblxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwoYXV0b1Njcm9sbC5waWQpO1xuXG4gICAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgICBhdXRvU2Nyb2xsLnBpZCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0WSA9IHZ5ID8gdnkgKiBzcGVlZCA6IDA7XG4gICAgICAgICAgICAgIHNjcm9sbE9mZnNldFggPSB2eCA/IHZ4ICogc3BlZWQgOiAwO1xuXG4gICAgICAgICAgICAgIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgKHNjcm9sbEN1c3RvbUZuKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzY3JvbGxDdXN0b21Gbi5jYWxsKF90aGlzLCBzY3JvbGxPZmZzZXRYLCBzY3JvbGxPZmZzZXRZLCBldnQpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGVsID09PSB3aW4pIHtcbiAgICAgICAgICAgICAgICB3aW4uc2Nyb2xsVG8od2luLnBhZ2VYT2Zmc2V0ICsgc2Nyb2xsT2Zmc2V0WCwgd2luLnBhZ2VZT2Zmc2V0ICsgc2Nyb2xsT2Zmc2V0WSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWwuc2Nyb2xsVG9wICs9IHNjcm9sbE9mZnNldFk7XG4gICAgICAgICAgICAgICAgZWwuc2Nyb2xsTGVmdCArPSBzY3JvbGxPZmZzZXRYO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAyNCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgMzApLFxuXG4gICAgX3ByZXBhcmVHcm91cCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICBmdW5jdGlvbiB0b0ZuKHZhbHVlLCBwdWxsKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdm9pZCAwIHx8IHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgdmFsdWUgPSBncm91cC5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHRvLCBmcm9tKSB7XG4gICAgICAgICAgICB2YXIgZnJvbUdyb3VwID0gZnJvbS5vcHRpb25zLmdyb3VwLm5hbWU7XG5cbiAgICAgICAgICAgIHJldHVybiBwdWxsXG4gICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgOiB2YWx1ZSAmJiAodmFsdWUuam9pblxuICAgICAgICAgICAgICAgID8gdmFsdWUuaW5kZXhPZihmcm9tR3JvdXApID4gLTFcbiAgICAgICAgICAgICAgICA6IChmcm9tR3JvdXAgPT0gdmFsdWUpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgZ3JvdXAgPSB7fTtcbiAgICAgIHZhciBvcmlnaW5hbEdyb3VwID0gb3B0aW9ucy5ncm91cDtcblxuICAgICAgaWYgKCFvcmlnaW5hbEdyb3VwIHx8IHR5cGVvZiBvcmlnaW5hbEdyb3VwICE9ICdvYmplY3QnKSB7XG4gICAgICAgIG9yaWdpbmFsR3JvdXAgPSB7IG5hbWU6IG9yaWdpbmFsR3JvdXAgfTtcbiAgICAgIH1cblxuICAgICAgZ3JvdXAubmFtZSA9IG9yaWdpbmFsR3JvdXAubmFtZTtcbiAgICAgIGdyb3VwLmNoZWNrUHVsbCA9IHRvRm4ob3JpZ2luYWxHcm91cC5wdWxsLCB0cnVlKTtcbiAgICAgIGdyb3VwLmNoZWNrUHV0ID0gdG9GbihvcmlnaW5hbEdyb3VwLnB1dCk7XG4gICAgICBncm91cC5yZXZlcnRDbG9uZSA9IG9yaWdpbmFsR3JvdXAucmV2ZXJ0Q2xvbmU7XG5cbiAgICAgIG9wdGlvbnMuZ3JvdXAgPSBncm91cDtcbiAgICB9XG4gICAgO1xuXG5cbiAgLyoqXG4gICAqIEBjbGFzcyAgU29ydGFibGVcbiAgICogQHBhcmFtICB7SFRNTEVsZW1lbnR9ICBlbFxuICAgKiBAcGFyYW0gIHtPYmplY3R9ICAgICAgIFtvcHRpb25zXVxuICAgKi9cbiAgZnVuY3Rpb24gU29ydGFibGUoZWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoIShlbCAmJiBlbC5ub2RlVHlwZSAmJiBlbC5ub2RlVHlwZSA9PT0gMSkpIHtcbiAgICAgIHRocm93ICdTb3J0YWJsZTogYGVsYCBtdXN0IGJlIEhUTUxFbGVtZW50LCBhbmQgbm90ICcgKyB7fS50b1N0cmluZy5jYWxsKGVsKTtcbiAgICB9XG5cbiAgICB0aGlzLmVsID0gZWw7IC8vIHJvb3QgZWxlbWVudFxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgPSBfZXh0ZW5kKHt9LCBvcHRpb25zKTtcblxuXG4gICAgLy8gRXhwb3J0IGluc3RhbmNlXG4gICAgZWxbZXhwYW5kb10gPSB0aGlzO1xuXG4gICAgLy8gRGVmYXVsdCBvcHRpb25zXG4gICAgdmFyIGRlZmF1bHRzID0ge1xuICAgICAgZ3JvdXA6IE1hdGgucmFuZG9tKCksXG4gICAgICBzb3J0OiB0cnVlLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgc3RvcmU6IG51bGwsXG4gICAgICBoYW5kbGU6IG51bGwsXG4gICAgICBzY3JvbGw6IHRydWUsXG4gICAgICBzY3JvbGxTZW5zaXRpdml0eTogMzAsXG4gICAgICBzY3JvbGxTcGVlZDogMTAsXG4gICAgICBkcmFnZ2FibGU6IC9bdW9dbC9pLnRlc3QoZWwubm9kZU5hbWUpID8gJ2xpJyA6ICc+KicsXG4gICAgICBnaG9zdENsYXNzOiAnc29ydGFibGUtZ2hvc3QnLFxuICAgICAgY2hvc2VuQ2xhc3M6ICdzb3J0YWJsZS1jaG9zZW4nLFxuICAgICAgZHJhZ0NsYXNzOiAnc29ydGFibGUtZHJhZycsXG4gICAgICBpZ25vcmU6ICdhLCBpbWcnLFxuICAgICAgZmlsdGVyOiBudWxsLFxuICAgICAgcHJldmVudE9uRmlsdGVyOiB0cnVlLFxuICAgICAgYW5pbWF0aW9uOiAwLFxuICAgICAgc2V0RGF0YTogZnVuY3Rpb24gKGRhdGFUcmFuc2ZlciwgZHJhZ0VsKSB7XG4gICAgICAgIGRhdGFUcmFuc2Zlci5zZXREYXRhKCdUZXh0JywgZHJhZ0VsLnRleHRDb250ZW50KTtcbiAgICAgIH0sXG4gICAgICBkcm9wQnViYmxlOiBmYWxzZSxcbiAgICAgIGRyYWdvdmVyQnViYmxlOiBmYWxzZSxcbiAgICAgIGRhdGFJZEF0dHI6ICdkYXRhLWlkJyxcbiAgICAgIGRlbGF5OiAwLFxuICAgICAgZm9yY2VGYWxsYmFjazogZmFsc2UsXG4gICAgICBmYWxsYmFja0NsYXNzOiAnc29ydGFibGUtZmFsbGJhY2snLFxuICAgICAgZmFsbGJhY2tPbkJvZHk6IGZhbHNlLFxuICAgICAgZmFsbGJhY2tUb2xlcmFuY2U6IDAsXG4gICAgICBmYWxsYmFja09mZnNldDogeyB4OiAwLCB5OiAwIH1cbiAgICB9O1xuXG5cbiAgICAvLyBTZXQgZGVmYXVsdCBvcHRpb25zXG4gICAgZm9yICh2YXIgbmFtZSBpbiBkZWZhdWx0cykge1xuICAgICAgIShuYW1lIGluIG9wdGlvbnMpICYmIChvcHRpb25zW25hbWVdID0gZGVmYXVsdHNbbmFtZV0pO1xuICAgIH1cblxuICAgIF9wcmVwYXJlR3JvdXAob3B0aW9ucyk7XG5cbiAgICAvLyBCaW5kIGFsbCBwcml2YXRlIG1ldGhvZHNcbiAgICBmb3IgKHZhciBmbiBpbiB0aGlzKSB7XG4gICAgICBpZiAoZm4uY2hhckF0KDApID09PSAnXycgJiYgdHlwZW9mIHRoaXNbZm5dID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXNbZm5dID0gdGhpc1tmbl0uYmluZCh0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXR1cCBkcmFnIG1vZGVcbiAgICB0aGlzLm5hdGl2ZURyYWdnYWJsZSA9IG9wdGlvbnMuZm9yY2VGYWxsYmFjayA/IGZhbHNlIDogc3VwcG9ydERyYWdnYWJsZTtcblxuICAgIC8vIEJpbmQgZXZlbnRzXG4gICAgX29uKGVsLCAnbW91c2Vkb3duJywgdGhpcy5fb25UYXBTdGFydCk7XG4gICAgX29uKGVsLCAndG91Y2hzdGFydCcsIHRoaXMuX29uVGFwU3RhcnQpO1xuICAgIF9vbihlbCwgJ3BvaW50ZXJkb3duJywgdGhpcy5fb25UYXBTdGFydCk7XG5cbiAgICBpZiAodGhpcy5uYXRpdmVEcmFnZ2FibGUpIHtcbiAgICAgIF9vbihlbCwgJ2RyYWdvdmVyJywgdGhpcyk7XG4gICAgICBfb24oZWwsICdkcmFnZW50ZXInLCB0aGlzKTtcbiAgICB9XG5cbiAgICB0b3VjaERyYWdPdmVyTGlzdGVuZXJzLnB1c2godGhpcy5fb25EcmFnT3Zlcik7XG5cbiAgICAvLyBSZXN0b3JlIHNvcnRpbmdcbiAgICBvcHRpb25zLnN0b3JlICYmIHRoaXMuc29ydChvcHRpb25zLnN0b3JlLmdldCh0aGlzKSk7XG4gIH1cblxuXG4gIFNvcnRhYmxlLnByb3RvdHlwZSA9IC8qKiBAbGVuZHMgU29ydGFibGUucHJvdG90eXBlICovIHtcbiAgICBjb25zdHJ1Y3RvcjogU29ydGFibGUsXG5cbiAgICBfb25UYXBTdGFydDogZnVuY3Rpb24gKC8qKiBFdmVudHxUb3VjaEV2ZW50ICovZXZ0KSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzLFxuICAgICAgICBlbCA9IHRoaXMuZWwsXG4gICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMsXG4gICAgICAgIHByZXZlbnRPbkZpbHRlciA9IG9wdGlvbnMucHJldmVudE9uRmlsdGVyLFxuICAgICAgICB0eXBlID0gZXZ0LnR5cGUsXG4gICAgICAgIHRvdWNoID0gZXZ0LnRvdWNoZXMgJiYgZXZ0LnRvdWNoZXNbMF0sXG4gICAgICAgIHRhcmdldCA9ICh0b3VjaCB8fCBldnQpLnRhcmdldCxcbiAgICAgICAgb3JpZ2luYWxUYXJnZXQgPSBldnQudGFyZ2V0LnNoYWRvd1Jvb3QgJiYgKGV2dC5wYXRoICYmIGV2dC5wYXRoWzBdKSB8fCB0YXJnZXQsXG4gICAgICAgIGZpbHRlciA9IG9wdGlvbnMuZmlsdGVyLFxuICAgICAgICBzdGFydEluZGV4O1xuXG4gICAgICBfc2F2ZUlucHV0Q2hlY2tlZFN0YXRlKGVsKTtcblxuXG4gICAgICAvLyBEb24ndCB0cmlnZ2VyIHN0YXJ0IGV2ZW50IHdoZW4gYW4gZWxlbWVudCBpcyBiZWVuIGRyYWdnZWQsIG90aGVyd2lzZSB0aGUgZXZ0Lm9sZGluZGV4IGFsd2F5cyB3cm9uZyB3aGVuIHNldCBvcHRpb24uZ3JvdXAuXG4gICAgICBpZiAoZHJhZ0VsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKC9tb3VzZWRvd258cG9pbnRlcmRvd24vLnRlc3QodHlwZSkgJiYgZXZ0LmJ1dHRvbiAhPT0gMCB8fCBvcHRpb25zLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjsgLy8gb25seSBsZWZ0IGJ1dHRvbiBvciBlbmFibGVkXG4gICAgICB9XG5cblxuICAgICAgdGFyZ2V0ID0gX2Nsb3Nlc3QodGFyZ2V0LCBvcHRpb25zLmRyYWdnYWJsZSwgZWwpO1xuXG4gICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChsYXN0RG93bkVsID09PSB0YXJnZXQpIHtcbiAgICAgICAgLy8gSWdub3JpbmcgZHVwbGljYXRlIGBkb3duYFxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEdldCB0aGUgaW5kZXggb2YgdGhlIGRyYWdnZWQgZWxlbWVudCB3aXRoaW4gaXRzIHBhcmVudFxuICAgICAgc3RhcnRJbmRleCA9IF9pbmRleCh0YXJnZXQsIG9wdGlvbnMuZHJhZ2dhYmxlKTtcblxuICAgICAgLy8gQ2hlY2sgZmlsdGVyXG4gICAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAoZmlsdGVyLmNhbGwodGhpcywgZXZ0LCB0YXJnZXQsIHRoaXMpKSB7XG4gICAgICAgICAgX2Rpc3BhdGNoRXZlbnQoX3RoaXMsIG9yaWdpbmFsVGFyZ2V0LCAnZmlsdGVyJywgdGFyZ2V0LCBlbCwgc3RhcnRJbmRleCk7XG4gICAgICAgICAgcHJldmVudE9uRmlsdGVyICYmIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHJldHVybjsgLy8gY2FuY2VsIGRuZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgZmlsdGVyID0gZmlsdGVyLnNwbGl0KCcsJykuc29tZShmdW5jdGlvbiAoY3JpdGVyaWEpIHtcbiAgICAgICAgICBjcml0ZXJpYSA9IF9jbG9zZXN0KG9yaWdpbmFsVGFyZ2V0LCBjcml0ZXJpYS50cmltKCksIGVsKTtcblxuICAgICAgICAgIGlmIChjcml0ZXJpYSkge1xuICAgICAgICAgICAgX2Rpc3BhdGNoRXZlbnQoX3RoaXMsIGNyaXRlcmlhLCAnZmlsdGVyJywgdGFyZ2V0LCBlbCwgc3RhcnRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICBwcmV2ZW50T25GaWx0ZXIgJiYgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgcmV0dXJuOyAvLyBjYW5jZWwgZG5kXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMuaGFuZGxlICYmICFfY2xvc2VzdChvcmlnaW5hbFRhcmdldCwgb3B0aW9ucy5oYW5kbGUsIGVsKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIFByZXBhcmUgYGRyYWdzdGFydGBcbiAgICAgIHRoaXMuX3ByZXBhcmVEcmFnU3RhcnQoZXZ0LCB0b3VjaCwgdGFyZ2V0LCBzdGFydEluZGV4KTtcbiAgICB9LFxuXG4gICAgX3ByZXBhcmVEcmFnU3RhcnQ6IGZ1bmN0aW9uICgvKiogRXZlbnQgKi9ldnQsIC8qKiBUb3VjaCAqL3RvdWNoLCAvKiogSFRNTEVsZW1lbnQgKi90YXJnZXQsIC8qKiBOdW1iZXIgKi9zdGFydEluZGV4KSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzLFxuICAgICAgICBlbCA9IF90aGlzLmVsLFxuICAgICAgICBvcHRpb25zID0gX3RoaXMub3B0aW9ucyxcbiAgICAgICAgb3duZXJEb2N1bWVudCA9IGVsLm93bmVyRG9jdW1lbnQsXG4gICAgICAgIGRyYWdTdGFydEZuO1xuXG4gICAgICBpZiAodGFyZ2V0ICYmICFkcmFnRWwgJiYgKHRhcmdldC5wYXJlbnROb2RlID09PSBlbCkpIHtcbiAgICAgICAgdGFwRXZ0ID0gZXZ0O1xuXG4gICAgICAgIHJvb3RFbCA9IGVsO1xuICAgICAgICBkcmFnRWwgPSB0YXJnZXQ7XG4gICAgICAgIHBhcmVudEVsID0gZHJhZ0VsLnBhcmVudE5vZGU7XG4gICAgICAgIG5leHRFbCA9IGRyYWdFbC5uZXh0U2libGluZztcbiAgICAgICAgbGFzdERvd25FbCA9IHRhcmdldDtcbiAgICAgICAgYWN0aXZlR3JvdXAgPSBvcHRpb25zLmdyb3VwO1xuICAgICAgICBvbGRJbmRleCA9IHN0YXJ0SW5kZXg7XG5cbiAgICAgICAgdGhpcy5fbGFzdFggPSAodG91Y2ggfHwgZXZ0KS5jbGllbnRYO1xuICAgICAgICB0aGlzLl9sYXN0WSA9ICh0b3VjaCB8fCBldnQpLmNsaWVudFk7XG5cbiAgICAgICAgZHJhZ0VsLnN0eWxlWyd3aWxsLWNoYW5nZSddID0gJ3RyYW5zZm9ybSc7XG5cbiAgICAgICAgZHJhZ1N0YXJ0Rm4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gRGVsYXllZCBkcmFnIGhhcyBiZWVuIHRyaWdnZXJlZFxuICAgICAgICAgIC8vIHdlIGNhbiByZS1lbmFibGUgdGhlIGV2ZW50czogdG91Y2htb3ZlL21vdXNlbW92ZVxuICAgICAgICAgIF90aGlzLl9kaXNhYmxlRGVsYXllZERyYWcoKTtcblxuICAgICAgICAgIC8vIE1ha2UgdGhlIGVsZW1lbnQgZHJhZ2dhYmxlXG4gICAgICAgICAgZHJhZ0VsLmRyYWdnYWJsZSA9IF90aGlzLm5hdGl2ZURyYWdnYWJsZTtcblxuICAgICAgICAgIC8vIENob3NlbiBpdGVtXG4gICAgICAgICAgX3RvZ2dsZUNsYXNzKGRyYWdFbCwgb3B0aW9ucy5jaG9zZW5DbGFzcywgdHJ1ZSk7XG5cbiAgICAgICAgICAvLyBCaW5kIHRoZSBldmVudHM6IGRyYWdzdGFydC9kcmFnZW5kXG4gICAgICAgICAgX3RoaXMuX3RyaWdnZXJEcmFnU3RhcnQoZXZ0LCB0b3VjaCk7XG5cbiAgICAgICAgICAvLyBEcmFnIHN0YXJ0IGV2ZW50XG4gICAgICAgICAgX2Rpc3BhdGNoRXZlbnQoX3RoaXMsIHJvb3RFbCwgJ2Nob29zZScsIGRyYWdFbCwgcm9vdEVsLCBvbGRJbmRleCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gRGlzYWJsZSBcImRyYWdnYWJsZVwiXG4gICAgICAgIG9wdGlvbnMuaWdub3JlLnNwbGl0KCcsJykuZm9yRWFjaChmdW5jdGlvbiAoY3JpdGVyaWEpIHtcbiAgICAgICAgICBfZmluZChkcmFnRWwsIGNyaXRlcmlhLnRyaW0oKSwgX2Rpc2FibGVEcmFnZ2FibGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBfb24ob3duZXJEb2N1bWVudCwgJ21vdXNldXAnLCBfdGhpcy5fb25Ecm9wKTtcbiAgICAgICAgX29uKG93bmVyRG9jdW1lbnQsICd0b3VjaGVuZCcsIF90aGlzLl9vbkRyb3ApO1xuICAgICAgICBfb24ob3duZXJEb2N1bWVudCwgJ3RvdWNoY2FuY2VsJywgX3RoaXMuX29uRHJvcCk7XG4gICAgICAgIF9vbihvd25lckRvY3VtZW50LCAncG9pbnRlcmNhbmNlbCcsIF90aGlzLl9vbkRyb3ApO1xuICAgICAgICBfb24ob3duZXJEb2N1bWVudCwgJ3NlbGVjdHN0YXJ0JywgX3RoaXMpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmRlbGF5KSB7XG4gICAgICAgICAgLy8gSWYgdGhlIHVzZXIgbW92ZXMgdGhlIHBvaW50ZXIgb3IgbGV0IGdvIHRoZSBjbGljayBvciB0b3VjaFxuICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZGVsYXkgaGFzIGJlZW4gcmVhY2hlZDpcbiAgICAgICAgICAvLyBkaXNhYmxlIHRoZSBkZWxheWVkIGRyYWdcbiAgICAgICAgICBfb24ob3duZXJEb2N1bWVudCwgJ21vdXNldXAnLCBfdGhpcy5fZGlzYWJsZURlbGF5ZWREcmFnKTtcbiAgICAgICAgICBfb24ob3duZXJEb2N1bWVudCwgJ3RvdWNoZW5kJywgX3RoaXMuX2Rpc2FibGVEZWxheWVkRHJhZyk7XG4gICAgICAgICAgX29uKG93bmVyRG9jdW1lbnQsICd0b3VjaGNhbmNlbCcsIF90aGlzLl9kaXNhYmxlRGVsYXllZERyYWcpO1xuICAgICAgICAgIF9vbihvd25lckRvY3VtZW50LCAnbW91c2Vtb3ZlJywgX3RoaXMuX2Rpc2FibGVEZWxheWVkRHJhZyk7XG4gICAgICAgICAgX29uKG93bmVyRG9jdW1lbnQsICd0b3VjaG1vdmUnLCBfdGhpcy5fZGlzYWJsZURlbGF5ZWREcmFnKTtcbiAgICAgICAgICBfb24ob3duZXJEb2N1bWVudCwgJ3BvaW50ZXJtb3ZlJywgX3RoaXMuX2Rpc2FibGVEZWxheWVkRHJhZyk7XG5cbiAgICAgICAgICBfdGhpcy5fZHJhZ1N0YXJ0VGltZXIgPSBzZXRUaW1lb3V0KGRyYWdTdGFydEZuLCBvcHRpb25zLmRlbGF5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkcmFnU3RhcnRGbigpO1xuICAgICAgICB9XG5cblxuICAgICAgfVxuICAgIH0sXG5cbiAgICBfZGlzYWJsZURlbGF5ZWREcmFnOiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgb3duZXJEb2N1bWVudCA9IHRoaXMuZWwub3duZXJEb2N1bWVudDtcblxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2RyYWdTdGFydFRpbWVyKTtcbiAgICAgIF9vZmYob3duZXJEb2N1bWVudCwgJ21vdXNldXAnLCB0aGlzLl9kaXNhYmxlRGVsYXllZERyYWcpO1xuICAgICAgX29mZihvd25lckRvY3VtZW50LCAndG91Y2hlbmQnLCB0aGlzLl9kaXNhYmxlRGVsYXllZERyYWcpO1xuICAgICAgX29mZihvd25lckRvY3VtZW50LCAndG91Y2hjYW5jZWwnLCB0aGlzLl9kaXNhYmxlRGVsYXllZERyYWcpO1xuICAgICAgX29mZihvd25lckRvY3VtZW50LCAnbW91c2Vtb3ZlJywgdGhpcy5fZGlzYWJsZURlbGF5ZWREcmFnKTtcbiAgICAgIF9vZmYob3duZXJEb2N1bWVudCwgJ3RvdWNobW92ZScsIHRoaXMuX2Rpc2FibGVEZWxheWVkRHJhZyk7XG4gICAgICBfb2ZmKG93bmVyRG9jdW1lbnQsICdwb2ludGVybW92ZScsIHRoaXMuX2Rpc2FibGVEZWxheWVkRHJhZyk7XG4gICAgfSxcblxuICAgIF90cmlnZ2VyRHJhZ1N0YXJ0OiBmdW5jdGlvbiAoLyoqIEV2ZW50ICovZXZ0LCAvKiogVG91Y2ggKi90b3VjaCkge1xuICAgICAgdG91Y2ggPSB0b3VjaCB8fCAoZXZ0LnBvaW50ZXJUeXBlID09ICd0b3VjaCcgPyBldnQgOiBudWxsKTtcblxuICAgICAgaWYgKHRvdWNoKSB7XG4gICAgICAgIC8vIFRvdWNoIGRldmljZSBzdXBwb3J0XG4gICAgICAgIHRhcEV2dCA9IHtcbiAgICAgICAgICB0YXJnZXQ6IGRyYWdFbCxcbiAgICAgICAgICBjbGllbnRYOiB0b3VjaC5jbGllbnRYLFxuICAgICAgICAgIGNsaWVudFk6IHRvdWNoLmNsaWVudFlcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9vbkRyYWdTdGFydCh0YXBFdnQsICd0b3VjaCcpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoIXRoaXMubmF0aXZlRHJhZ2dhYmxlKSB7XG4gICAgICAgIHRoaXMuX29uRHJhZ1N0YXJ0KHRhcEV2dCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgX29uKGRyYWdFbCwgJ2RyYWdlbmQnLCB0aGlzKTtcbiAgICAgICAgX29uKHJvb3RFbCwgJ2RyYWdzdGFydCcsIHRoaXMuX29uRHJhZ1N0YXJ0KTtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgIC8vIFRpbWVvdXQgbmVjY2Vzc2FyeSBmb3IgSUU5XG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5zZWxlY3Rpb24uZW1wdHkoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBfZHJhZ1N0YXJ0ZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChyb290RWwgJiYgZHJhZ0VsKSB7XG4gICAgICAgIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuXG4gICAgICAgIC8vIEFwcGx5IGVmZmVjdFxuICAgICAgICBfdG9nZ2xlQ2xhc3MoZHJhZ0VsLCBvcHRpb25zLmdob3N0Q2xhc3MsIHRydWUpO1xuICAgICAgICBfdG9nZ2xlQ2xhc3MoZHJhZ0VsLCBvcHRpb25zLmRyYWdDbGFzcywgZmFsc2UpO1xuXG4gICAgICAgIFNvcnRhYmxlLmFjdGl2ZSA9IHRoaXM7XG5cbiAgICAgICAgLy8gRHJhZyBzdGFydCBldmVudFxuICAgICAgICBfZGlzcGF0Y2hFdmVudCh0aGlzLCByb290RWwsICdzdGFydCcsIGRyYWdFbCwgcm9vdEVsLCBvbGRJbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9udWxsaW5nKCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIF9lbXVsYXRlRHJhZ092ZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICh0b3VjaEV2dCkge1xuICAgICAgICBpZiAodGhpcy5fbGFzdFggPT09IHRvdWNoRXZ0LmNsaWVudFggJiYgdGhpcy5fbGFzdFkgPT09IHRvdWNoRXZ0LmNsaWVudFkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sYXN0WCA9IHRvdWNoRXZ0LmNsaWVudFg7XG4gICAgICAgIHRoaXMuX2xhc3RZID0gdG91Y2hFdnQuY2xpZW50WTtcblxuICAgICAgICBpZiAoIXN1cHBvcnRDc3NQb2ludGVyRXZlbnRzKSB7XG4gICAgICAgICAgX2NzcyhnaG9zdEVsLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0b3VjaEV2dC5jbGllbnRYLCB0b3VjaEV2dC5jbGllbnRZKSxcbiAgICAgICAgICBwYXJlbnQgPSB0YXJnZXQsXG4gICAgICAgICAgaSA9IHRvdWNoRHJhZ092ZXJMaXN0ZW5lcnMubGVuZ3RoO1xuXG4gICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBpZiAocGFyZW50W2V4cGFuZG9dKSB7XG4gICAgICAgICAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgICAgICAgICB0b3VjaERyYWdPdmVyTGlzdGVuZXJzW2ldKHtcbiAgICAgICAgICAgICAgICAgIGNsaWVudFg6IHRvdWNoRXZ0LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICBjbGllbnRZOiB0b3VjaEV2dC5jbGllbnRZLFxuICAgICAgICAgICAgICAgICAgdGFyZ2V0OiB0YXJnZXQsXG4gICAgICAgICAgICAgICAgICByb290RWw6IHBhcmVudFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRhcmdldCA9IHBhcmVudDsgLy8gc3RvcmUgbGFzdCBlbGVtZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIC8qIGpzaGludCBib3NzOnRydWUgKi9cbiAgICAgICAgICB3aGlsZSAocGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzdXBwb3J0Q3NzUG9pbnRlckV2ZW50cykge1xuICAgICAgICAgIF9jc3MoZ2hvc3RFbCwgJ2Rpc3BsYXknLCAnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG5cbiAgICBfb25Ub3VjaE1vdmU6IGZ1bmN0aW9uICgvKipUb3VjaEV2ZW50Ki9ldnQpIHtcbiAgICAgIGlmICh0YXBFdnQpIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgZmFsbGJhY2tUb2xlcmFuY2UgPSBvcHRpb25zLmZhbGxiYWNrVG9sZXJhbmNlLFxuICAgICAgICAgIGZhbGxiYWNrT2Zmc2V0ID0gb3B0aW9ucy5mYWxsYmFja09mZnNldCxcbiAgICAgICAgICB0b3VjaCA9IGV2dC50b3VjaGVzID8gZXZ0LnRvdWNoZXNbMF0gOiBldnQsXG4gICAgICAgICAgZHggPSAodG91Y2guY2xpZW50WCAtIHRhcEV2dC5jbGllbnRYKSArIGZhbGxiYWNrT2Zmc2V0LngsXG4gICAgICAgICAgZHkgPSAodG91Y2guY2xpZW50WSAtIHRhcEV2dC5jbGllbnRZKSArIGZhbGxiYWNrT2Zmc2V0LnksXG4gICAgICAgICAgdHJhbnNsYXRlM2QgPSBldnQudG91Y2hlcyA/ICd0cmFuc2xhdGUzZCgnICsgZHggKyAncHgsJyArIGR5ICsgJ3B4LDApJyA6ICd0cmFuc2xhdGUoJyArIGR4ICsgJ3B4LCcgKyBkeSArICdweCknO1xuXG4gICAgICAgIC8vIG9ubHkgc2V0IHRoZSBzdGF0dXMgdG8gZHJhZ2dpbmcsIHdoZW4gd2UgYXJlIGFjdHVhbGx5IGRyYWdnaW5nXG4gICAgICAgIGlmICghU29ydGFibGUuYWN0aXZlKSB7XG4gICAgICAgICAgaWYgKGZhbGxiYWNrVG9sZXJhbmNlICYmXG4gICAgICAgICAgICBtaW4oYWJzKHRvdWNoLmNsaWVudFggLSB0aGlzLl9sYXN0WCksIGFicyh0b3VjaC5jbGllbnRZIC0gdGhpcy5fbGFzdFkpKSA8IGZhbGxiYWNrVG9sZXJhbmNlXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fZHJhZ1N0YXJ0ZWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFzIHdlbGwgYXMgY3JlYXRpbmcgdGhlIGdob3N0IGVsZW1lbnQgb24gdGhlIGRvY3VtZW50IGJvZHlcbiAgICAgICAgdGhpcy5fYXBwZW5kR2hvc3QoKTtcblxuICAgICAgICBtb3ZlZCA9IHRydWU7XG4gICAgICAgIHRvdWNoRXZ0ID0gdG91Y2g7XG5cbiAgICAgICAgX2NzcyhnaG9zdEVsLCAnd2Via2l0VHJhbnNmb3JtJywgdHJhbnNsYXRlM2QpO1xuICAgICAgICBfY3NzKGdob3N0RWwsICdtb3pUcmFuc2Zvcm0nLCB0cmFuc2xhdGUzZCk7XG4gICAgICAgIF9jc3MoZ2hvc3RFbCwgJ21zVHJhbnNmb3JtJywgdHJhbnNsYXRlM2QpO1xuICAgICAgICBfY3NzKGdob3N0RWwsICd0cmFuc2Zvcm0nLCB0cmFuc2xhdGUzZCk7XG5cbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIF9hcHBlbmRHaG9zdDogZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFnaG9zdEVsKSB7XG4gICAgICAgIHZhciByZWN0ID0gZHJhZ0VsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgIGNzcyA9IF9jc3MoZHJhZ0VsKSxcbiAgICAgICAgICBvcHRpb25zID0gdGhpcy5vcHRpb25zLFxuICAgICAgICAgIGdob3N0UmVjdDtcblxuICAgICAgICBnaG9zdEVsID0gZHJhZ0VsLmNsb25lTm9kZSh0cnVlKTtcblxuICAgICAgICBfdG9nZ2xlQ2xhc3MoZ2hvc3RFbCwgb3B0aW9ucy5naG9zdENsYXNzLCBmYWxzZSk7XG4gICAgICAgIF90b2dnbGVDbGFzcyhnaG9zdEVsLCBvcHRpb25zLmZhbGxiYWNrQ2xhc3MsIHRydWUpO1xuICAgICAgICBfdG9nZ2xlQ2xhc3MoZ2hvc3RFbCwgb3B0aW9ucy5kcmFnQ2xhc3MsIHRydWUpO1xuXG4gICAgICAgIF9jc3MoZ2hvc3RFbCwgJ3RvcCcsIHJlY3QudG9wIC0gcGFyc2VJbnQoY3NzLm1hcmdpblRvcCwgMTApKTtcbiAgICAgICAgX2NzcyhnaG9zdEVsLCAnbGVmdCcsIHJlY3QubGVmdCAtIHBhcnNlSW50KGNzcy5tYXJnaW5MZWZ0LCAxMCkpO1xuICAgICAgICBfY3NzKGdob3N0RWwsICd3aWR0aCcsIHJlY3Qud2lkdGgpO1xuICAgICAgICBfY3NzKGdob3N0RWwsICdoZWlnaHQnLCByZWN0LmhlaWdodCk7XG4gICAgICAgIF9jc3MoZ2hvc3RFbCwgJ29wYWNpdHknLCAnMC44Jyk7XG4gICAgICAgIF9jc3MoZ2hvc3RFbCwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XG4gICAgICAgIF9jc3MoZ2hvc3RFbCwgJ3pJbmRleCcsICcxMDAwMDAnKTtcbiAgICAgICAgX2NzcyhnaG9zdEVsLCAncG9pbnRlckV2ZW50cycsICdub25lJyk7XG5cbiAgICAgICAgb3B0aW9ucy5mYWxsYmFja09uQm9keSAmJiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGdob3N0RWwpIHx8IHJvb3RFbC5hcHBlbmRDaGlsZChnaG9zdEVsKTtcblxuICAgICAgICAvLyBGaXhpbmcgZGltZW5zaW9ucy5cbiAgICAgICAgZ2hvc3RSZWN0ID0gZ2hvc3RFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgX2NzcyhnaG9zdEVsLCAnd2lkdGgnLCByZWN0LndpZHRoICogMiAtIGdob3N0UmVjdC53aWR0aCk7XG4gICAgICAgIF9jc3MoZ2hvc3RFbCwgJ2hlaWdodCcsIHJlY3QuaGVpZ2h0ICogMiAtIGdob3N0UmVjdC5oZWlnaHQpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBfb25EcmFnU3RhcnQ6IGZ1bmN0aW9uICgvKipFdmVudCovZXZ0LCAvKipib29sZWFuKi91c2VGYWxsYmFjaykge1xuICAgICAgdmFyIGRhdGFUcmFuc2ZlciA9IGV2dC5kYXRhVHJhbnNmZXIsXG4gICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICAgIHRoaXMuX29mZlVwRXZlbnRzKCk7XG5cbiAgICAgIGlmIChhY3RpdmVHcm91cC5jaGVja1B1bGwodGhpcywgdGhpcywgZHJhZ0VsLCBldnQpKSB7XG4gICAgICAgIGNsb25lRWwgPSBfY2xvbmUoZHJhZ0VsKTtcblxuICAgICAgICBjbG9uZUVsLmRyYWdnYWJsZSA9IGZhbHNlO1xuICAgICAgICBjbG9uZUVsLnN0eWxlWyd3aWxsLWNoYW5nZSddID0gJyc7XG5cbiAgICAgICAgX2NzcyhjbG9uZUVsLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIF90b2dnbGVDbGFzcyhjbG9uZUVsLCB0aGlzLm9wdGlvbnMuY2hvc2VuQ2xhc3MsIGZhbHNlKTtcblxuICAgICAgICByb290RWwuaW5zZXJ0QmVmb3JlKGNsb25lRWwsIGRyYWdFbCk7XG4gICAgICAgIF9kaXNwYXRjaEV2ZW50KHRoaXMsIHJvb3RFbCwgJ2Nsb25lJywgZHJhZ0VsKTtcbiAgICAgIH1cblxuICAgICAgX3RvZ2dsZUNsYXNzKGRyYWdFbCwgb3B0aW9ucy5kcmFnQ2xhc3MsIHRydWUpO1xuXG4gICAgICBpZiAodXNlRmFsbGJhY2spIHtcbiAgICAgICAgaWYgKHVzZUZhbGxiYWNrID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgLy8gQmluZCB0b3VjaCBldmVudHNcbiAgICAgICAgICBfb24oZG9jdW1lbnQsICd0b3VjaG1vdmUnLCB0aGlzLl9vblRvdWNoTW92ZSk7XG4gICAgICAgICAgX29uKGRvY3VtZW50LCAndG91Y2hlbmQnLCB0aGlzLl9vbkRyb3ApO1xuICAgICAgICAgIF9vbihkb2N1bWVudCwgJ3RvdWNoY2FuY2VsJywgdGhpcy5fb25Ecm9wKTtcbiAgICAgICAgICBfb24oZG9jdW1lbnQsICdwb2ludGVybW92ZScsIHRoaXMuX29uVG91Y2hNb3ZlKTtcbiAgICAgICAgICBfb24oZG9jdW1lbnQsICdwb2ludGVydXAnLCB0aGlzLl9vbkRyb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE9sZCBicndvc2VyXG4gICAgICAgICAgX29uKGRvY3VtZW50LCAnbW91c2Vtb3ZlJywgdGhpcy5fb25Ub3VjaE1vdmUpO1xuICAgICAgICAgIF9vbihkb2N1bWVudCwgJ21vdXNldXAnLCB0aGlzLl9vbkRyb3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbG9vcElkID0gc2V0SW50ZXJ2YWwodGhpcy5fZW11bGF0ZURyYWdPdmVyLCA1MCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKGRhdGFUcmFuc2Zlcikge1xuICAgICAgICAgIGRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ21vdmUnO1xuICAgICAgICAgIG9wdGlvbnMuc2V0RGF0YSAmJiBvcHRpb25zLnNldERhdGEuY2FsbCh0aGlzLCBkYXRhVHJhbnNmZXIsIGRyYWdFbCk7XG4gICAgICAgIH1cblxuICAgICAgICBfb24oZG9jdW1lbnQsICdkcm9wJywgdGhpcyk7XG4gICAgICAgIHNldFRpbWVvdXQodGhpcy5fZHJhZ1N0YXJ0ZWQsIDApO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBfb25EcmFnT3ZlcjogZnVuY3Rpb24gKC8qKkV2ZW50Ki9ldnQpIHtcbiAgICAgIHZhciBlbCA9IHRoaXMuZWwsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgZHJhZ1JlY3QsXG4gICAgICAgIHRhcmdldFJlY3QsXG4gICAgICAgIHJldmVydCxcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMub3B0aW9ucyxcbiAgICAgICAgZ3JvdXAgPSBvcHRpb25zLmdyb3VwLFxuICAgICAgICBhY3RpdmVTb3J0YWJsZSA9IFNvcnRhYmxlLmFjdGl2ZSxcbiAgICAgICAgaXNPd25lciA9IChhY3RpdmVHcm91cCA9PT0gZ3JvdXApLFxuICAgICAgICBpc01vdmluZ0JldHdlZW5Tb3J0YWJsZSA9IGZhbHNlLFxuICAgICAgICBjYW5Tb3J0ID0gb3B0aW9ucy5zb3J0O1xuXG4gICAgICBpZiAoZXZ0LnByZXZlbnREZWZhdWx0ICE9PSB2b2lkIDApIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICFvcHRpb25zLmRyYWdvdmVyQnViYmxlICYmIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRyYWdFbC5hbmltYXRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG1vdmVkID0gdHJ1ZTtcblxuICAgICAgaWYgKGFjdGl2ZVNvcnRhYmxlICYmICFvcHRpb25zLmRpc2FibGVkICYmXG4gICAgICAgIChpc093bmVyXG4gICAgICAgICAgPyBjYW5Tb3J0IHx8IChyZXZlcnQgPSAhcm9vdEVsLmNvbnRhaW5zKGRyYWdFbCkpIC8vIFJldmVydGluZyBpdGVtIGludG8gdGhlIG9yaWdpbmFsIGxpc3RcbiAgICAgICAgICA6IChcbiAgICAgICAgICAgIHB1dFNvcnRhYmxlID09PSB0aGlzIHx8XG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgIChhY3RpdmVTb3J0YWJsZS5sYXN0UHVsbE1vZGUgPSBhY3RpdmVHcm91cC5jaGVja1B1bGwodGhpcywgYWN0aXZlU29ydGFibGUsIGRyYWdFbCwgZXZ0KSkgJiZcbiAgICAgICAgICAgICAgZ3JvdXAuY2hlY2tQdXQodGhpcywgYWN0aXZlU29ydGFibGUsIGRyYWdFbCwgZXZ0KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKSAmJlxuICAgICAgICAoZXZ0LnJvb3RFbCA9PT0gdm9pZCAwIHx8IGV2dC5yb290RWwgPT09IHRoaXMuZWwpIC8vIHRvdWNoIGZhbGxiYWNrXG4gICAgICApIHtcbiAgICAgICAgLy8gU21hcnQgYXV0by1zY3JvbGxpbmdcbiAgICAgICAgX2F1dG9TY3JvbGwoZXZ0LCBvcHRpb25zLCB0aGlzLmVsKTtcblxuICAgICAgICBpZiAoX3NpbGVudCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhcmdldCA9IF9jbG9zZXN0KGV2dC50YXJnZXQsIG9wdGlvbnMuZHJhZ2dhYmxlLCBlbCk7XG4gICAgICAgIGRyYWdSZWN0ID0gZHJhZ0VsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGlmIChwdXRTb3J0YWJsZSAhPT0gdGhpcykge1xuICAgICAgICAgIHB1dFNvcnRhYmxlID0gdGhpcztcbiAgICAgICAgICBpc01vdmluZ0JldHdlZW5Tb3J0YWJsZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmV2ZXJ0KSB7XG4gICAgICAgICAgX2Nsb25lSGlkZShhY3RpdmVTb3J0YWJsZSwgdHJ1ZSk7XG4gICAgICAgICAgcGFyZW50RWwgPSByb290RWw7IC8vIGFjdHVhbGl6YXRpb25cblxuICAgICAgICAgIGlmIChjbG9uZUVsIHx8IG5leHRFbCkge1xuICAgICAgICAgICAgcm9vdEVsLmluc2VydEJlZm9yZShkcmFnRWwsIGNsb25lRWwgfHwgbmV4dEVsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZiAoIWNhblNvcnQpIHtcbiAgICAgICAgICAgIHJvb3RFbC5hcHBlbmRDaGlsZChkcmFnRWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgaWYgKChlbC5jaGlsZHJlbi5sZW5ndGggPT09IDApIHx8IChlbC5jaGlsZHJlblswXSA9PT0gZ2hvc3RFbCkgfHxcbiAgICAgICAgICAoZWwgPT09IGV2dC50YXJnZXQpICYmIChfZ2hvc3RJc0xhc3QoZWwsIGV2dCkpXG4gICAgICAgICkge1xuICAgICAgICAgIC8vYXNzaWduIHRhcmdldCBvbmx5IGlmIGNvbmRpdGlvbiBpcyB0cnVlXG4gICAgICAgICAgaWYgKGVsLmNoaWxkcmVuLmxlbmd0aCAhPT0gMCAmJiBlbC5jaGlsZHJlblswXSAhPT0gZ2hvc3RFbCAmJiBlbCA9PT0gZXZ0LnRhcmdldCkge1xuICAgICAgICAgICAgdGFyZ2V0ID0gZWwubGFzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICBpZiAodGFyZ2V0LmFuaW1hdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGFyZ2V0UmVjdCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBfY2xvbmVIaWRlKGFjdGl2ZVNvcnRhYmxlLCBpc093bmVyKTtcblxuICAgICAgICAgIGlmIChfb25Nb3ZlKHJvb3RFbCwgZWwsIGRyYWdFbCwgZHJhZ1JlY3QsIHRhcmdldCwgdGFyZ2V0UmVjdCwgZXZ0KSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGlmICghZHJhZ0VsLmNvbnRhaW5zKGVsKSkge1xuICAgICAgICAgICAgICBlbC5hcHBlbmRDaGlsZChkcmFnRWwpO1xuICAgICAgICAgICAgICBwYXJlbnRFbCA9IGVsOyAvLyBhY3R1YWxpemF0aW9uXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2FuaW1hdGUoZHJhZ1JlY3QsIGRyYWdFbCk7XG4gICAgICAgICAgICB0YXJnZXQgJiYgdGhpcy5fYW5pbWF0ZSh0YXJnZXRSZWN0LCB0YXJnZXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0YXJnZXQgJiYgIXRhcmdldC5hbmltYXRlZCAmJiB0YXJnZXQgIT09IGRyYWdFbCAmJiAodGFyZ2V0LnBhcmVudE5vZGVbZXhwYW5kb10gIT09IHZvaWQgMCkpIHtcbiAgICAgICAgICBpZiAobGFzdEVsICE9PSB0YXJnZXQpIHtcbiAgICAgICAgICAgIGxhc3RFbCA9IHRhcmdldDtcbiAgICAgICAgICAgIGxhc3RDU1MgPSBfY3NzKHRhcmdldCk7XG4gICAgICAgICAgICBsYXN0UGFyZW50Q1NTID0gX2Nzcyh0YXJnZXQucGFyZW50Tm9kZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGFyZ2V0UmVjdCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgIHZhciB3aWR0aCA9IHRhcmdldFJlY3QucmlnaHQgLSB0YXJnZXRSZWN0LmxlZnQsXG4gICAgICAgICAgICBoZWlnaHQgPSB0YXJnZXRSZWN0LmJvdHRvbSAtIHRhcmdldFJlY3QudG9wLFxuICAgICAgICAgICAgZmxvYXRpbmcgPSBSX0ZMT0FULnRlc3QobGFzdENTUy5jc3NGbG9hdCArIGxhc3RDU1MuZGlzcGxheSlcbiAgICAgICAgICAgICAgfHwgKGxhc3RQYXJlbnRDU1MuZGlzcGxheSA9PSAnZmxleCcgJiYgbGFzdFBhcmVudENTU1snZmxleC1kaXJlY3Rpb24nXS5pbmRleE9mKCdyb3cnKSA9PT0gMCksXG4gICAgICAgICAgICBpc1dpZGUgPSAodGFyZ2V0Lm9mZnNldFdpZHRoID4gZHJhZ0VsLm9mZnNldFdpZHRoKSxcbiAgICAgICAgICAgIGlzTG9uZyA9ICh0YXJnZXQub2Zmc2V0SGVpZ2h0ID4gZHJhZ0VsLm9mZnNldEhlaWdodCksXG4gICAgICAgICAgICBoYWxmd2F5ID0gKGZsb2F0aW5nID8gKGV2dC5jbGllbnRYIC0gdGFyZ2V0UmVjdC5sZWZ0KSAvIHdpZHRoIDogKGV2dC5jbGllbnRZIC0gdGFyZ2V0UmVjdC50b3ApIC8gaGVpZ2h0KSA+IDAuNSxcbiAgICAgICAgICAgIG5leHRTaWJsaW5nID0gdGFyZ2V0Lm5leHRFbGVtZW50U2libGluZyxcbiAgICAgICAgICAgIGFmdGVyID0gZmFsc2VcbiAgICAgICAgICAgIDtcblxuICAgICAgICAgIGlmIChmbG9hdGluZykge1xuICAgICAgICAgICAgdmFyIGVsVG9wID0gZHJhZ0VsLm9mZnNldFRvcCxcbiAgICAgICAgICAgICAgdGdUb3AgPSB0YXJnZXQub2Zmc2V0VG9wO1xuXG4gICAgICAgICAgICBpZiAoZWxUb3AgPT09IHRnVG9wKSB7XG4gICAgICAgICAgICAgIGFmdGVyID0gKHRhcmdldC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nID09PSBkcmFnRWwpICYmICFpc1dpZGUgfHwgaGFsZndheSAmJiBpc1dpZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0YXJnZXQucHJldmlvdXNFbGVtZW50U2libGluZyA9PT0gZHJhZ0VsIHx8IGRyYWdFbC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nID09PSB0YXJnZXQpIHtcbiAgICAgICAgICAgICAgYWZ0ZXIgPSAoZXZ0LmNsaWVudFkgLSB0YXJnZXRSZWN0LnRvcCkgLyBoZWlnaHQgPiAwLjU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhZnRlciA9IHRnVG9wID4gZWxUb3A7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghaXNNb3ZpbmdCZXR3ZWVuU29ydGFibGUpIHtcbiAgICAgICAgICAgIGFmdGVyID0gKG5leHRTaWJsaW5nICE9PSBkcmFnRWwpICYmICFpc0xvbmcgfHwgaGFsZndheSAmJiBpc0xvbmc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIG1vdmVWZWN0b3IgPSBfb25Nb3ZlKHJvb3RFbCwgZWwsIGRyYWdFbCwgZHJhZ1JlY3QsIHRhcmdldCwgdGFyZ2V0UmVjdCwgZXZ0LCBhZnRlcik7XG5cbiAgICAgICAgICBpZiAobW92ZVZlY3RvciAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGlmIChtb3ZlVmVjdG9yID09PSAxIHx8IG1vdmVWZWN0b3IgPT09IC0xKSB7XG4gICAgICAgICAgICAgIGFmdGVyID0gKG1vdmVWZWN0b3IgPT09IDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfc2lsZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoX3Vuc2lsZW50LCAzMCk7XG5cbiAgICAgICAgICAgIF9jbG9uZUhpZGUoYWN0aXZlU29ydGFibGUsIGlzT3duZXIpO1xuXG4gICAgICAgICAgICBpZiAoIWRyYWdFbC5jb250YWlucyhlbCkpIHtcbiAgICAgICAgICAgICAgaWYgKGFmdGVyICYmICFuZXh0U2libGluZykge1xuICAgICAgICAgICAgICAgIGVsLmFwcGVuZENoaWxkKGRyYWdFbCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRyYWdFbCwgYWZ0ZXIgPyBuZXh0U2libGluZyA6IHRhcmdldCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFyZW50RWwgPSBkcmFnRWwucGFyZW50Tm9kZTsgLy8gYWN0dWFsaXphdGlvblxuXG4gICAgICAgICAgICB0aGlzLl9hbmltYXRlKGRyYWdSZWN0LCBkcmFnRWwpO1xuICAgICAgICAgICAgdGhpcy5fYW5pbWF0ZSh0YXJnZXRSZWN0LCB0YXJnZXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBfYW5pbWF0ZTogZnVuY3Rpb24gKHByZXZSZWN0LCB0YXJnZXQpIHtcbiAgICAgIHZhciBtcyA9IHRoaXMub3B0aW9ucy5hbmltYXRpb247XG5cbiAgICAgIGlmIChtcykge1xuICAgICAgICB2YXIgY3VycmVudFJlY3QgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgaWYgKHByZXZSZWN0Lm5vZGVUeXBlID09PSAxKSB7XG4gICAgICAgICAgcHJldlJlY3QgPSBwcmV2UmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIF9jc3ModGFyZ2V0LCAndHJhbnNpdGlvbicsICdub25lJyk7XG4gICAgICAgIF9jc3ModGFyZ2V0LCAndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZTNkKCdcbiAgICAgICAgICArIChwcmV2UmVjdC5sZWZ0IC0gY3VycmVudFJlY3QubGVmdCkgKyAncHgsJ1xuICAgICAgICAgICsgKHByZXZSZWN0LnRvcCAtIGN1cnJlbnRSZWN0LnRvcCkgKyAncHgsMCknXG4gICAgICAgICk7XG5cbiAgICAgICAgdGFyZ2V0Lm9mZnNldFdpZHRoOyAvLyByZXBhaW50XG5cbiAgICAgICAgX2Nzcyh0YXJnZXQsICd0cmFuc2l0aW9uJywgJ2FsbCAnICsgbXMgKyAnbXMnKTtcbiAgICAgICAgX2Nzcyh0YXJnZXQsICd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlM2QoMCwwLDApJyk7XG5cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRhcmdldC5hbmltYXRlZCk7XG4gICAgICAgIHRhcmdldC5hbmltYXRlZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF9jc3ModGFyZ2V0LCAndHJhbnNpdGlvbicsICcnKTtcbiAgICAgICAgICBfY3NzKHRhcmdldCwgJ3RyYW5zZm9ybScsICcnKTtcbiAgICAgICAgICB0YXJnZXQuYW5pbWF0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSwgbXMpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBfb2ZmVXBFdmVudHM6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBvd25lckRvY3VtZW50ID0gdGhpcy5lbC5vd25lckRvY3VtZW50O1xuXG4gICAgICBfb2ZmKGRvY3VtZW50LCAndG91Y2htb3ZlJywgdGhpcy5fb25Ub3VjaE1vdmUpO1xuICAgICAgX29mZihkb2N1bWVudCwgJ3BvaW50ZXJtb3ZlJywgdGhpcy5fb25Ub3VjaE1vdmUpO1xuICAgICAgX29mZihvd25lckRvY3VtZW50LCAnbW91c2V1cCcsIHRoaXMuX29uRHJvcCk7XG4gICAgICBfb2ZmKG93bmVyRG9jdW1lbnQsICd0b3VjaGVuZCcsIHRoaXMuX29uRHJvcCk7XG4gICAgICBfb2ZmKG93bmVyRG9jdW1lbnQsICdwb2ludGVydXAnLCB0aGlzLl9vbkRyb3ApO1xuICAgICAgX29mZihvd25lckRvY3VtZW50LCAndG91Y2hjYW5jZWwnLCB0aGlzLl9vbkRyb3ApO1xuICAgICAgX29mZihvd25lckRvY3VtZW50LCAncG9pbnRlcmNhbmNlbCcsIHRoaXMuX29uRHJvcCk7XG4gICAgICBfb2ZmKG93bmVyRG9jdW1lbnQsICdzZWxlY3RzdGFydCcsIHRoaXMpO1xuICAgIH0sXG5cbiAgICBfb25Ecm9wOiBmdW5jdGlvbiAoLyoqRXZlbnQqL2V2dCkge1xuICAgICAgdmFyIGVsID0gdGhpcy5lbCxcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcblxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9sb29wSWQpO1xuICAgICAgY2xlYXJJbnRlcnZhbChhdXRvU2Nyb2xsLnBpZCk7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fZHJhZ1N0YXJ0VGltZXIpO1xuXG4gICAgICAvLyBVbmJpbmQgZXZlbnRzXG4gICAgICBfb2ZmKGRvY3VtZW50LCAnbW91c2Vtb3ZlJywgdGhpcy5fb25Ub3VjaE1vdmUpO1xuXG4gICAgICBpZiAodGhpcy5uYXRpdmVEcmFnZ2FibGUpIHtcbiAgICAgICAgX29mZihkb2N1bWVudCwgJ2Ryb3AnLCB0aGlzKTtcbiAgICAgICAgX29mZihlbCwgJ2RyYWdzdGFydCcsIHRoaXMuX29uRHJhZ1N0YXJ0KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fb2ZmVXBFdmVudHMoKTtcblxuICAgICAgaWYgKGV2dCkge1xuICAgICAgICBpZiAobW92ZWQpIHtcbiAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAhb3B0aW9ucy5kcm9wQnViYmxlICYmIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdob3N0RWwgJiYgZ2hvc3RFbC5wYXJlbnROb2RlICYmIGdob3N0RWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnaG9zdEVsKTtcblxuICAgICAgICBpZiAocm9vdEVsID09PSBwYXJlbnRFbCB8fCBTb3J0YWJsZS5hY3RpdmUubGFzdFB1bGxNb2RlICE9PSAnY2xvbmUnKSB7XG4gICAgICAgICAgLy8gUmVtb3ZlIGNsb25lXG4gICAgICAgICAgY2xvbmVFbCAmJiBjbG9uZUVsLnBhcmVudE5vZGUgJiYgY2xvbmVFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNsb25lRWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRyYWdFbCkge1xuICAgICAgICAgIGlmICh0aGlzLm5hdGl2ZURyYWdnYWJsZSkge1xuICAgICAgICAgICAgX29mZihkcmFnRWwsICdkcmFnZW5kJywgdGhpcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX2Rpc2FibGVEcmFnZ2FibGUoZHJhZ0VsKTtcbiAgICAgICAgICBkcmFnRWwuc3R5bGVbJ3dpbGwtY2hhbmdlJ10gPSAnJztcblxuICAgICAgICAgIC8vIFJlbW92ZSBjbGFzcydzXG4gICAgICAgICAgX3RvZ2dsZUNsYXNzKGRyYWdFbCwgdGhpcy5vcHRpb25zLmdob3N0Q2xhc3MsIGZhbHNlKTtcbiAgICAgICAgICBfdG9nZ2xlQ2xhc3MoZHJhZ0VsLCB0aGlzLm9wdGlvbnMuY2hvc2VuQ2xhc3MsIGZhbHNlKTtcblxuICAgICAgICAgIC8vIERyYWcgc3RvcCBldmVudFxuICAgICAgICAgIF9kaXNwYXRjaEV2ZW50KHRoaXMsIHJvb3RFbCwgJ3VuY2hvb3NlJywgZHJhZ0VsLCByb290RWwsIG9sZEluZGV4KTtcblxuICAgICAgICAgIGlmIChyb290RWwgIT09IHBhcmVudEVsKSB7XG4gICAgICAgICAgICBuZXdJbmRleCA9IF9pbmRleChkcmFnRWwsIG9wdGlvbnMuZHJhZ2dhYmxlKTtcblxuICAgICAgICAgICAgaWYgKG5ld0luZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgLy8gQWRkIGV2ZW50XG4gICAgICAgICAgICAgIF9kaXNwYXRjaEV2ZW50KG51bGwsIHBhcmVudEVsLCAnYWRkJywgZHJhZ0VsLCByb290RWwsIG9sZEluZGV4LCBuZXdJbmRleCk7XG5cbiAgICAgICAgICAgICAgLy8gUmVtb3ZlIGV2ZW50XG4gICAgICAgICAgICAgIF9kaXNwYXRjaEV2ZW50KHRoaXMsIHJvb3RFbCwgJ3JlbW92ZScsIGRyYWdFbCwgcm9vdEVsLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuXG4gICAgICAgICAgICAgIC8vIGRyYWcgZnJvbSBvbmUgbGlzdCBhbmQgZHJvcCBpbnRvIGFub3RoZXJcbiAgICAgICAgICAgICAgX2Rpc3BhdGNoRXZlbnQobnVsbCwgcGFyZW50RWwsICdzb3J0JywgZHJhZ0VsLCByb290RWwsIG9sZEluZGV4LCBuZXdJbmRleCk7XG4gICAgICAgICAgICAgIF9kaXNwYXRjaEV2ZW50KHRoaXMsIHJvb3RFbCwgJ3NvcnQnLCBkcmFnRWwsIHJvb3RFbCwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoZHJhZ0VsLm5leHRTaWJsaW5nICE9PSBuZXh0RWwpIHtcbiAgICAgICAgICAgICAgLy8gR2V0IHRoZSBpbmRleCBvZiB0aGUgZHJhZ2dlZCBlbGVtZW50IHdpdGhpbiBpdHMgcGFyZW50XG4gICAgICAgICAgICAgIG5ld0luZGV4ID0gX2luZGV4KGRyYWdFbCwgb3B0aW9ucy5kcmFnZ2FibGUpO1xuXG4gICAgICAgICAgICAgIGlmIChuZXdJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgLy8gZHJhZyAmIGRyb3Agd2l0aGluIHRoZSBzYW1lIGxpc3RcbiAgICAgICAgICAgICAgICBfZGlzcGF0Y2hFdmVudCh0aGlzLCByb290RWwsICd1cGRhdGUnLCBkcmFnRWwsIHJvb3RFbCwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgICAgICAgICBfZGlzcGF0Y2hFdmVudCh0aGlzLCByb290RWwsICdzb3J0JywgZHJhZ0VsLCByb290RWwsIG9sZEluZGV4LCBuZXdJbmRleCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoU29ydGFibGUuYWN0aXZlKSB7XG4gICAgICAgICAgICAvKiBqc2hpbnQgZXFudWxsOnRydWUgKi9cbiAgICAgICAgICAgIGlmIChuZXdJbmRleCA9PSBudWxsIHx8IG5ld0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBuZXdJbmRleCA9IG9sZEluZGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfZGlzcGF0Y2hFdmVudCh0aGlzLCByb290RWwsICdlbmQnLCBkcmFnRWwsIHJvb3RFbCwgb2xkSW5kZXgsIG5ld0luZGV4KTtcblxuICAgICAgICAgICAgLy8gU2F2ZSBzb3J0aW5nXG4gICAgICAgICAgICB0aGlzLnNhdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICB0aGlzLl9udWxsaW5nKCk7XG4gICAgfSxcblxuICAgIF9udWxsaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgICByb290RWwgPVxuICAgICAgICBkcmFnRWwgPVxuICAgICAgICBwYXJlbnRFbCA9XG4gICAgICAgIGdob3N0RWwgPVxuICAgICAgICBuZXh0RWwgPVxuICAgICAgICBjbG9uZUVsID1cbiAgICAgICAgbGFzdERvd25FbCA9XG5cbiAgICAgICAgc2Nyb2xsRWwgPVxuICAgICAgICBzY3JvbGxQYXJlbnRFbCA9XG5cbiAgICAgICAgdGFwRXZ0ID1cbiAgICAgICAgdG91Y2hFdnQgPVxuXG4gICAgICAgIG1vdmVkID1cbiAgICAgICAgbmV3SW5kZXggPVxuXG4gICAgICAgIGxhc3RFbCA9XG4gICAgICAgIGxhc3RDU1MgPVxuXG4gICAgICAgIHB1dFNvcnRhYmxlID1cbiAgICAgICAgYWN0aXZlR3JvdXAgPVxuICAgICAgICBTb3J0YWJsZS5hY3RpdmUgPSBudWxsO1xuXG4gICAgICBzYXZlZElucHV0Q2hlY2tlZC5mb3JFYWNoKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICBlbC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgIH0pO1xuICAgICAgc2F2ZWRJbnB1dENoZWNrZWQubGVuZ3RoID0gMDtcbiAgICB9LFxuXG4gICAgaGFuZGxlRXZlbnQ6IGZ1bmN0aW9uICgvKipFdmVudCovZXZ0KSB7XG4gICAgICBzd2l0Y2ggKGV2dC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Ryb3AnOlxuICAgICAgICBjYXNlICdkcmFnZW5kJzpcbiAgICAgICAgICB0aGlzLl9vbkRyb3AoZXZ0KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdkcmFnb3Zlcic6XG4gICAgICAgIGNhc2UgJ2RyYWdlbnRlcic6XG4gICAgICAgICAgaWYgKGRyYWdFbCkge1xuICAgICAgICAgICAgdGhpcy5fb25EcmFnT3ZlcihldnQpO1xuICAgICAgICAgICAgX2dsb2JhbERyYWdPdmVyKGV2dCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3NlbGVjdHN0YXJ0JzpcbiAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBTZXJpYWxpemVzIHRoZSBpdGVtIGludG8gYW4gYXJyYXkgb2Ygc3RyaW5nLlxuICAgICAqIEByZXR1cm5zIHtTdHJpbmdbXX1cbiAgICAgKi9cbiAgICB0b0FycmF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgb3JkZXIgPSBbXSxcbiAgICAgICAgZWwsXG4gICAgICAgIGNoaWxkcmVuID0gdGhpcy5lbC5jaGlsZHJlbixcbiAgICAgICAgaSA9IDAsXG4gICAgICAgIG4gPSBjaGlsZHJlbi5sZW5ndGgsXG4gICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICAgIGZvciAoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGVsID0gY2hpbGRyZW5baV07XG4gICAgICAgIGlmIChfY2xvc2VzdChlbCwgb3B0aW9ucy5kcmFnZ2FibGUsIHRoaXMuZWwpKSB7XG4gICAgICAgICAgb3JkZXIucHVzaChlbC5nZXRBdHRyaWJ1dGUob3B0aW9ucy5kYXRhSWRBdHRyKSB8fCBfZ2VuZXJhdGVJZChlbCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvcmRlcjtcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBTb3J0cyB0aGUgZWxlbWVudHMgYWNjb3JkaW5nIHRvIHRoZSBhcnJheS5cbiAgICAgKiBAcGFyYW0gIHtTdHJpbmdbXX0gIG9yZGVyICBvcmRlciBvZiB0aGUgaXRlbXNcbiAgICAgKi9cbiAgICBzb3J0OiBmdW5jdGlvbiAob3JkZXIpIHtcbiAgICAgIHZhciBpdGVtcyA9IHt9LCByb290RWwgPSB0aGlzLmVsO1xuXG4gICAgICB0aGlzLnRvQXJyYXkoKS5mb3JFYWNoKGZ1bmN0aW9uIChpZCwgaSkge1xuICAgICAgICB2YXIgZWwgPSByb290RWwuY2hpbGRyZW5baV07XG5cbiAgICAgICAgaWYgKF9jbG9zZXN0KGVsLCB0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlLCByb290RWwpKSB7XG4gICAgICAgICAgaXRlbXNbaWRdID0gZWw7XG4gICAgICAgIH1cbiAgICAgIH0sIHRoaXMpO1xuXG4gICAgICBvcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChpZCkge1xuICAgICAgICBpZiAoaXRlbXNbaWRdKSB7XG4gICAgICAgICAgcm9vdEVsLnJlbW92ZUNoaWxkKGl0ZW1zW2lkXSk7XG4gICAgICAgICAgcm9vdEVsLmFwcGVuZENoaWxkKGl0ZW1zW2lkXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIFNhdmUgdGhlIGN1cnJlbnQgc29ydGluZ1xuICAgICAqL1xuICAgIHNhdmU6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBzdG9yZSA9IHRoaXMub3B0aW9ucy5zdG9yZTtcbiAgICAgIHN0b3JlICYmIHN0b3JlLnNldCh0aGlzKTtcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBGb3IgZWFjaCBlbGVtZW50IGluIHRoZSBzZXQsIGdldCB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IG1hdGNoZXMgdGhlIHNlbGVjdG9yIGJ5IHRlc3RpbmcgdGhlIGVsZW1lbnQgaXRzZWxmIGFuZCB0cmF2ZXJzaW5nIHVwIHRocm91Z2ggaXRzIGFuY2VzdG9ycyBpbiB0aGUgRE9NIHRyZWUuXG4gICAgICogQHBhcmFtICAge0hUTUxFbGVtZW50fSAgZWxcbiAgICAgKiBAcGFyYW0gICB7U3RyaW5nfSAgICAgICBbc2VsZWN0b3JdICBkZWZhdWx0OiBgb3B0aW9ucy5kcmFnZ2FibGVgXG4gICAgICogQHJldHVybnMge0hUTUxFbGVtZW50fG51bGx9XG4gICAgICovXG4gICAgY2xvc2VzdDogZnVuY3Rpb24gKGVsLCBzZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIF9jbG9zZXN0KGVsLCBzZWxlY3RvciB8fCB0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlLCB0aGlzLmVsKTtcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBTZXQvZ2V0IG9wdGlvblxuICAgICAqIEBwYXJhbSAgIHtzdHJpbmd9IG5hbWVcbiAgICAgKiBAcGFyYW0gICB7Kn0gICAgICBbdmFsdWVdXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgb3B0aW9uOiBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgICAgIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuXG4gICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4gb3B0aW9uc1tuYW1lXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnNbbmFtZV0gPSB2YWx1ZTtcblxuICAgICAgICBpZiAobmFtZSA9PT0gJ2dyb3VwJykge1xuICAgICAgICAgIF9wcmVwYXJlR3JvdXAob3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBEZXN0cm95XG4gICAgICovXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGVsID0gdGhpcy5lbDtcblxuICAgICAgZWxbZXhwYW5kb10gPSBudWxsO1xuXG4gICAgICBfb2ZmKGVsLCAnbW91c2Vkb3duJywgdGhpcy5fb25UYXBTdGFydCk7XG4gICAgICBfb2ZmKGVsLCAndG91Y2hzdGFydCcsIHRoaXMuX29uVGFwU3RhcnQpO1xuICAgICAgX29mZihlbCwgJ3BvaW50ZXJkb3duJywgdGhpcy5fb25UYXBTdGFydCk7XG5cbiAgICAgIGlmICh0aGlzLm5hdGl2ZURyYWdnYWJsZSkge1xuICAgICAgICBfb2ZmKGVsLCAnZHJhZ292ZXInLCB0aGlzKTtcbiAgICAgICAgX29mZihlbCwgJ2RyYWdlbnRlcicsIHRoaXMpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmUgZHJhZ2dhYmxlIGF0dHJpYnV0ZXNcbiAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZWwucXVlcnlTZWxlY3RvckFsbCgnW2RyYWdnYWJsZV0nKSwgZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnZHJhZ2dhYmxlJyk7XG4gICAgICB9KTtcblxuICAgICAgdG91Y2hEcmFnT3Zlckxpc3RlbmVycy5zcGxpY2UodG91Y2hEcmFnT3Zlckxpc3RlbmVycy5pbmRleE9mKHRoaXMuX29uRHJhZ092ZXIpLCAxKTtcblxuICAgICAgdGhpcy5fb25Ecm9wKCk7XG5cbiAgICAgIHRoaXMuZWwgPSBlbCA9IG51bGw7XG4gICAgfVxuICB9O1xuXG5cbiAgZnVuY3Rpb24gX2Nsb25lSGlkZShzb3J0YWJsZSwgc3RhdGUpIHtcbiAgICBpZiAoc29ydGFibGUubGFzdFB1bGxNb2RlICE9PSAnY2xvbmUnKSB7XG4gICAgICBzdGF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGNsb25lRWwgJiYgKGNsb25lRWwuc3RhdGUgIT09IHN0YXRlKSkge1xuICAgICAgX2NzcyhjbG9uZUVsLCAnZGlzcGxheScsIHN0YXRlID8gJ25vbmUnIDogJycpO1xuXG4gICAgICBpZiAoIXN0YXRlKSB7XG4gICAgICAgIGlmIChjbG9uZUVsLnN0YXRlKSB7XG4gICAgICAgICAgaWYgKHNvcnRhYmxlLm9wdGlvbnMuZ3JvdXAucmV2ZXJ0Q2xvbmUpIHtcbiAgICAgICAgICAgIHJvb3RFbC5pbnNlcnRCZWZvcmUoY2xvbmVFbCwgbmV4dEVsKTtcbiAgICAgICAgICAgIHNvcnRhYmxlLl9hbmltYXRlKGRyYWdFbCwgY2xvbmVFbCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvb3RFbC5pbnNlcnRCZWZvcmUoY2xvbmVFbCwgZHJhZ0VsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2xvbmVFbC5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cbiAgfVxuXG5cbiAgZnVuY3Rpb24gX2Nsb3Nlc3QoLyoqSFRNTEVsZW1lbnQqL2VsLCAvKipTdHJpbmcqL3NlbGVjdG9yLCAvKipIVE1MRWxlbWVudCovY3R4KSB7XG4gICAgaWYgKGVsKSB7XG4gICAgICBjdHggPSBjdHggfHwgZG9jdW1lbnQ7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKChzZWxlY3RvciA9PT0gJz4qJyAmJiBlbC5wYXJlbnROb2RlID09PSBjdHgpIHx8IF9tYXRjaGVzKGVsLCBzZWxlY3RvcikpIHtcbiAgICAgICAgICByZXR1cm4gZWw7XG4gICAgICAgIH1cbiAgICAgICAgLyoganNoaW50IGJvc3M6dHJ1ZSAqL1xuICAgICAgfSB3aGlsZSAoZWwgPSBfZ2V0UGFyZW50T3JIb3N0KGVsKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuXG4gIGZ1bmN0aW9uIF9nZXRQYXJlbnRPckhvc3QoZWwpIHtcbiAgICB2YXIgcGFyZW50ID0gZWwuaG9zdDtcblxuICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC5ub2RlVHlwZSkgPyBwYXJlbnQgOiBlbC5wYXJlbnROb2RlO1xuICB9XG5cblxuICBmdW5jdGlvbiBfZ2xvYmFsRHJhZ092ZXIoLyoqRXZlbnQqL2V2dCkge1xuICAgIGlmIChldnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnbW92ZSc7XG4gICAgfVxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cblxuICBmdW5jdGlvbiBfb24oZWwsIGV2ZW50LCBmbikge1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZuLCBjYXB0dXJlTW9kZSk7XG4gIH1cblxuXG4gIGZ1bmN0aW9uIF9vZmYoZWwsIGV2ZW50LCBmbikge1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGZuLCBjYXB0dXJlTW9kZSk7XG4gIH1cblxuXG4gIGZ1bmN0aW9uIF90b2dnbGVDbGFzcyhlbCwgbmFtZSwgc3RhdGUpIHtcbiAgICBpZiAoZWwpIHtcbiAgICAgIGlmIChlbC5jbGFzc0xpc3QpIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0W3N0YXRlID8gJ2FkZCcgOiAncmVtb3ZlJ10obmFtZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9ICgnICcgKyBlbC5jbGFzc05hbWUgKyAnICcpLnJlcGxhY2UoUl9TUEFDRSwgJyAnKS5yZXBsYWNlKCcgJyArIG5hbWUgKyAnICcsICcgJyk7XG4gICAgICAgIGVsLmNsYXNzTmFtZSA9IChjbGFzc05hbWUgKyAoc3RhdGUgPyAnICcgKyBuYW1lIDogJycpKS5yZXBsYWNlKFJfU1BBQ0UsICcgJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBmdW5jdGlvbiBfY3NzKGVsLCBwcm9wLCB2YWwpIHtcbiAgICB2YXIgc3R5bGUgPSBlbCAmJiBlbC5zdHlsZTtcblxuICAgIGlmIChzdHlsZSkge1xuICAgICAgaWYgKHZhbCA9PT0gdm9pZCAwKSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5kZWZhdWx0VmlldyAmJiBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKSB7XG4gICAgICAgICAgdmFsID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgJycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGVsLmN1cnJlbnRTdHlsZSkge1xuICAgICAgICAgIHZhbCA9IGVsLmN1cnJlbnRTdHlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcm9wID09PSB2b2lkIDAgPyB2YWwgOiB2YWxbcHJvcF07XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKCEocHJvcCBpbiBzdHlsZSkpIHtcbiAgICAgICAgICBwcm9wID0gJy13ZWJraXQtJyArIHByb3A7XG4gICAgICAgIH1cblxuICAgICAgICBzdHlsZVtwcm9wXSA9IHZhbCArICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyA/ICcnIDogJ3B4Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBmdW5jdGlvbiBfZmluZChjdHgsIHRhZ05hbWUsIGl0ZXJhdG9yKSB7XG4gICAgaWYgKGN0eCkge1xuICAgICAgdmFyIGxpc3QgPSBjdHguZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFnTmFtZSksIGkgPSAwLCBuID0gbGlzdC5sZW5ndGg7XG5cbiAgICAgIGlmIChpdGVyYXRvcikge1xuICAgICAgICBmb3IgKDsgaSA8IG47IGkrKykge1xuICAgICAgICAgIGl0ZXJhdG9yKGxpc3RbaV0sIGkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIHJldHVybiBbXTtcbiAgfVxuXG5cblxuICBmdW5jdGlvbiBfZGlzcGF0Y2hFdmVudChzb3J0YWJsZSwgcm9vdEVsLCBuYW1lLCB0YXJnZXRFbCwgZnJvbUVsLCBzdGFydEluZGV4LCBuZXdJbmRleCkge1xuICAgIHNvcnRhYmxlID0gKHNvcnRhYmxlIHx8IHJvb3RFbFtleHBhbmRvXSk7XG5cbiAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50JyksXG4gICAgICBvcHRpb25zID0gc29ydGFibGUub3B0aW9ucyxcbiAgICAgIG9uTmFtZSA9ICdvbicgKyBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zdWJzdHIoMSk7XG5cbiAgICBldnQuaW5pdEV2ZW50KG5hbWUsIHRydWUsIHRydWUpO1xuXG4gICAgZXZ0LnRvID0gcm9vdEVsO1xuICAgIGV2dC5mcm9tID0gZnJvbUVsIHx8IHJvb3RFbDtcbiAgICBldnQuaXRlbSA9IHRhcmdldEVsIHx8IHJvb3RFbDtcbiAgICBldnQuY2xvbmUgPSBjbG9uZUVsO1xuXG4gICAgZXZ0Lm9sZEluZGV4ID0gc3RhcnRJbmRleDtcbiAgICBldnQubmV3SW5kZXggPSBuZXdJbmRleDtcblxuICAgIHJvb3RFbCAmJiByb290RWwuZGlzcGF0Y2hFdmVudChldnQpO1xuXG4gICAgaWYgKG9wdGlvbnNbb25OYW1lXSkge1xuICAgICAgb3B0aW9uc1tvbk5hbWVdLmNhbGwoc29ydGFibGUsIGV2dCk7XG4gICAgfVxuICB9XG5cblxuICBmdW5jdGlvbiBfb25Nb3ZlKGZyb21FbCwgdG9FbCwgZHJhZ0VsLCBkcmFnUmVjdCwgdGFyZ2V0RWwsIHRhcmdldFJlY3QsIG9yaWdpbmFsRXZ0LCB3aWxsSW5zZXJ0QWZ0ZXIpIHtcbiAgICB2YXIgZXZ0LFxuICAgICAgc29ydGFibGUgPSBmcm9tRWxbZXhwYW5kb10sXG4gICAgICBvbk1vdmVGbiA9IHNvcnRhYmxlLm9wdGlvbnMub25Nb3ZlLFxuICAgICAgcmV0VmFsO1xuXG4gICAgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7XG4gICAgZXZ0LmluaXRFdmVudCgnbW92ZScsIHRydWUsIHRydWUpO1xuXG4gICAgZXZ0LnRvID0gdG9FbDtcbiAgICBldnQuZnJvbSA9IGZyb21FbDtcbiAgICBldnQuZHJhZ2dlZCA9IGRyYWdFbDtcbiAgICBldnQuZHJhZ2dlZFJlY3QgPSBkcmFnUmVjdDtcbiAgICBldnQucmVsYXRlZCA9IHRhcmdldEVsIHx8IHRvRWw7XG4gICAgZXZ0LnJlbGF0ZWRSZWN0ID0gdGFyZ2V0UmVjdCB8fCB0b0VsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGV2dC53aWxsSW5zZXJ0QWZ0ZXIgPSB3aWxsSW5zZXJ0QWZ0ZXI7XG5cbiAgICBmcm9tRWwgJiYgZnJvbUVsLmRpc3BhdGNoRXZlbnQoZXZ0KTtcblxuICAgIGlmIChvbk1vdmVGbikge1xuICAgICAgcmV0VmFsID0gb25Nb3ZlRm4uY2FsbChzb3J0YWJsZSwgZXZ0LCBvcmlnaW5hbEV2dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldFZhbDtcbiAgfVxuXG5cbiAgZnVuY3Rpb24gX2Rpc2FibGVEcmFnZ2FibGUoZWwpIHtcbiAgICBlbC5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgfVxuXG5cbiAgZnVuY3Rpb24gX3Vuc2lsZW50KCkge1xuICAgIF9zaWxlbnQgPSBmYWxzZTtcbiAgfVxuXG5cbiAgLyoqIEByZXR1cm5zIHtIVE1MRWxlbWVudHxmYWxzZX0gKi9cbiAgZnVuY3Rpb24gX2dob3N0SXNMYXN0KGVsLCBldnQpIHtcbiAgICB2YXIgbGFzdEVsID0gZWwubGFzdEVsZW1lbnRDaGlsZCxcbiAgICAgIHJlY3QgPSBsYXN0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAvLyA1IOKAlCBtaW4gZGVsdGFcbiAgICAvLyBhYnMg4oCUINC90LXQu9GM0LfRjyDQtNC+0LHQsNCy0LvRj9GC0YwsINCwINGC0L4g0LPQu9GO0LrQuCDQv9GA0Lgg0L3QsNCy0LXQtNC10L3QuNC4INGB0LLQtdGA0YXRg1xuICAgIHJldHVybiAoZXZ0LmNsaWVudFkgLSAocmVjdC50b3AgKyByZWN0LmhlaWdodCkgPiA1KSB8fFxuICAgICAgKGV2dC5jbGllbnRYIC0gKHJlY3QubGVmdCArIHJlY3Qud2lkdGgpID4gNSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBpZFxuICAgKiBAcGFyYW0gICB7SFRNTEVsZW1lbnR9IGVsXG4gICAqIEByZXR1cm5zIHtTdHJpbmd9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBmdW5jdGlvbiBfZ2VuZXJhdGVJZChlbCkge1xuICAgIHZhciBzdHIgPSBlbC50YWdOYW1lICsgZWwuY2xhc3NOYW1lICsgZWwuc3JjICsgZWwuaHJlZiArIGVsLnRleHRDb250ZW50LFxuICAgICAgaSA9IHN0ci5sZW5ndGgsXG4gICAgICBzdW0gPSAwO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgc3VtICs9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIH1cblxuICAgIHJldHVybiBzdW0udG9TdHJpbmcoMzYpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGluZGV4IG9mIGFuIGVsZW1lbnQgd2l0aGluIGl0cyBwYXJlbnQgZm9yIGEgc2VsZWN0ZWQgc2V0IG9mXG4gICAqIGVsZW1lbnRzXG4gICAqIEBwYXJhbSAge0hUTUxFbGVtZW50fSBlbFxuICAgKiBAcGFyYW0gIHtzZWxlY3Rvcn0gc2VsZWN0b3JcbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgZnVuY3Rpb24gX2luZGV4KGVsLCBzZWxlY3Rvcikge1xuICAgIHZhciBpbmRleCA9IDA7XG5cbiAgICBpZiAoIWVsIHx8ICFlbC5wYXJlbnROb2RlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgd2hpbGUgKGVsICYmIChlbCA9IGVsLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpKSB7XG4gICAgICBpZiAoKGVsLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgIT09ICdURU1QTEFURScpICYmIChzZWxlY3RvciA9PT0gJz4qJyB8fCBfbWF0Y2hlcyhlbCwgc2VsZWN0b3IpKSkge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9tYXRjaGVzKC8qKkhUTUxFbGVtZW50Ki9lbCwgLyoqU3RyaW5nKi9zZWxlY3Rvcikge1xuICAgIGlmIChlbCkge1xuICAgICAgc2VsZWN0b3IgPSBzZWxlY3Rvci5zcGxpdCgnLicpO1xuXG4gICAgICB2YXIgdGFnID0gc2VsZWN0b3Iuc2hpZnQoKS50b1VwcGVyQ2FzZSgpLFxuICAgICAgICByZSA9IG5ldyBSZWdFeHAoJ1xcXFxzKCcgKyBzZWxlY3Rvci5qb2luKCd8JykgKyAnKSg/PVxcXFxzKScsICdnJyk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgICh0YWcgPT09ICcnIHx8IGVsLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT0gdGFnKSAmJlxuICAgICAgICAoIXNlbGVjdG9yLmxlbmd0aCB8fCAoKCcgJyArIGVsLmNsYXNzTmFtZSArICcgJykubWF0Y2gocmUpIHx8IFtdKS5sZW5ndGggPT0gc2VsZWN0b3IubGVuZ3RoKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmdW5jdGlvbiBfdGhyb3R0bGUoY2FsbGJhY2ssIG1zKSB7XG4gICAgdmFyIGFyZ3MsIF90aGlzO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChhcmdzID09PSB2b2lkIDApIHtcbiAgICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY2FsbGJhY2suY2FsbChfdGhpcywgYXJnc1swXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KF90aGlzLCBhcmdzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhcmdzID0gdm9pZCAwO1xuICAgICAgICB9LCBtcyk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9leHRlbmQoZHN0LCBzcmMpIHtcbiAgICBpZiAoZHN0ICYmIHNyYykge1xuICAgICAgZm9yICh2YXIga2V5IGluIHNyYykge1xuICAgICAgICBpZiAoc3JjLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBkc3Rba2V5XSA9IHNyY1trZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRzdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9jbG9uZShlbCkge1xuICAgIHJldHVybiAkXG4gICAgICA/ICQoZWwpLmNsb25lKHRydWUpWzBdXG4gICAgICA6IChQb2x5bWVyICYmIFBvbHltZXIuZG9tXG4gICAgICAgID8gUG9seW1lci5kb20oZWwpLmNsb25lTm9kZSh0cnVlKVxuICAgICAgICA6IGVsLmNsb25lTm9kZSh0cnVlKVxuICAgICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9zYXZlSW5wdXRDaGVja2VkU3RhdGUocm9vdCkge1xuICAgIHZhciBpbnB1dHMgPSByb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpO1xuICAgIHZhciBpZHggPSBpbnB1dHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGlkeC0tKSB7XG4gICAgICB2YXIgZWwgPSBpbnB1dHNbaWR4XTtcbiAgICAgIGVsLmNoZWNrZWQgJiYgc2F2ZWRJbnB1dENoZWNrZWQucHVzaChlbCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRml4ZWQgIzk3MzogXG4gIF9vbihkb2N1bWVudCwgJ3RvdWNobW92ZScsIGZ1bmN0aW9uIChldnQpIHtcbiAgICBpZiAoU29ydGFibGUuYWN0aXZlKSB7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH0pO1xuXG4gIHRyeSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBudWxsLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNhcHR1cmVNb2RlID0ge1xuICAgICAgICAgIGNhcHR1cmU6IGZhbHNlLFxuICAgICAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSkpO1xuICB9IGNhdGNoIChlcnIpIHsgfVxuXG4gIC8vIEV4cG9ydCB1dGlsc1xuICBTb3J0YWJsZS51dGlscyA9IHtcbiAgICBvbjogX29uLFxuICAgIG9mZjogX29mZixcbiAgICBjc3M6IF9jc3MsXG4gICAgZmluZDogX2ZpbmQsXG4gICAgaXM6IGZ1bmN0aW9uIChlbCwgc2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiAhIV9jbG9zZXN0KGVsLCBzZWxlY3RvciwgZWwpO1xuICAgIH0sXG4gICAgZXh0ZW5kOiBfZXh0ZW5kLFxuICAgIHRocm90dGxlOiBfdGhyb3R0bGUsXG4gICAgY2xvc2VzdDogX2Nsb3Nlc3QsXG4gICAgdG9nZ2xlQ2xhc3M6IF90b2dnbGVDbGFzcyxcbiAgICBjbG9uZTogX2Nsb25lLFxuICAgIGluZGV4OiBfaW5kZXhcbiAgfTtcblxuXG4gIC8qKlxuICAgKiBDcmVhdGUgc29ydGFibGUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gIGVsXG4gICAqIEBwYXJhbSB7T2JqZWN0fSAgICAgIFtvcHRpb25zXVxuICAgKi9cbiAgU29ydGFibGUuY3JlYXRlID0gZnVuY3Rpb24gKGVsLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBTb3J0YWJsZShlbCwgb3B0aW9ucyk7XG4gIH07XG5cblxuICAvLyBFeHBvcnRcbiAgU29ydGFibGUudmVyc2lvbiA9ICcxLjYuMSc7XG4gIHJldHVybiBTb3J0YWJsZTtcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2tub2Nrb3V0X187IiwibW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3N1cnZleV9rbm9ja291dF9fOyJdLCJzb3VyY2VSb290IjoiIn0=","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","/*!\n * surveyjs - Survey JavaScript library v1.1.26\n * Copyright (c) 2015-2019 Devsoft Baltic OÜ - http://surveyjs.io/\n * License: MIT (http://www.opensource.org/licenses/mit-license.php)\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Survey\", [\"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Survey\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"Survey\"] = factory(root[\"Vue\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 215);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __assign; });\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = __extends;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __spreadArrays; });\nvar __assign = Object[\"assign\"] ||\n function (target) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n target[p] = s[p];\n }\n return target;\n };\nfunction __extends(thisClass, baseClass) {\n for (var p in baseClass)\n if (baseClass.hasOwnProperty(p))\n thisClass[p] = baseClass[p];\n function __() {\n this.constructor = thisClass;\n }\n thisClass.prototype =\n baseClass === null\n ? Object.create(baseClass)\n : ((__.prototype = baseClass.prototype), new __());\n}\nvar __decorate = function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3\n ? target\n : desc === null\n ? (desc = Object.getOwnPropertyDescriptor(target, key))\n : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\")\n r = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i = decorators.length - 1; i >= 0; i--)\n if ((d = decorators[i]))\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __spreadArrays = function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__localization_english__ = __webpack_require__(69);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return surveyLocalization; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return surveyStrings; });\n\nvar surveyLocalization = {\n currentLocaleValue: \"\",\n defaultLocaleValue: \"en\",\n locales: {},\n localeNames: {},\n supportedLocales: [],\n get currentLocale() {\n return this.currentLocaleValue === this.defaultLocaleValue\n ? \"\"\n : this.currentLocaleValue;\n },\n set currentLocale(val) {\n this.currentLocaleValue = val;\n },\n get defaultLocale() {\n return this.defaultLocaleValue;\n },\n set defaultLocale(val) {\n this.defaultLocaleValue = val;\n },\n getString: function (strName) {\n var loc = this.currentLocale\n ? this.locales[this.currentLocale]\n : this.locales[this.defaultLocale];\n if (!loc || !loc[strName])\n loc = this.locales[this.defaultLocale];\n var result = loc[strName];\n if (result === undefined) {\n result = this.locales[\"en\"][strName];\n }\n return result;\n },\n getLocales: function () {\n var res = [];\n res.push(\"\");\n if (this.supportedLocales && this.supportedLocales.length > 0) {\n for (var i = 0; i < this.supportedLocales.length; i++) {\n res.push(this.supportedLocales[i]);\n }\n }\n else {\n for (var key in this.locales) {\n res.push(key);\n }\n }\n res.sort();\n return res;\n }\n};\nvar surveyStrings = __WEBPACK_IMPORTED_MODULE_0__localization_english__[\"a\" /* englishStrings */];\nsurveyLocalization.locales[\"en\"] = __WEBPACK_IMPORTED_MODULE_0__localization_english__[\"a\" /* englishStrings */];\nsurveyLocalization.localeNames[\"en\"] = \"english\";\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(__webpack_require__(2));\nvar VueClassComponent = __webpack_require__(176);\nvar VueClassComponent__default = _interopDefault(VueClassComponent);\n__webpack_require__(123);\n\n/** vue-property-decorator verson 4.0.0 MIT LICENSE copyright 2017 kaorun343 */\n/**\n * decorator of an inject\n * @param key key\n * @return PropertyDecorator\n */\nfunction Inject(key) {\n return VueClassComponent.createDecorator(function (componentOptions, k) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject[k] = key || k;\n }\n });\n}\n/**\n * decorator of model\n * @param event event name\n * @return PropertyDecorator\n */\nfunction Model(event) {\n return VueClassComponent.createDecorator(function (componentOptions, prop) {\n componentOptions.model = { prop: prop, event: event };\n });\n}\n/**\n * @brief Makes a decorator for prop.\n *\n * @param options The options\n * @param target The target\n * @param key The key\n *\n * @return PropertyDecorator\n */\nfunction makePropDecorator(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n if (!Array.isArray(options) && typeof options.type === 'undefined') {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") {\n options.type = Reflect.getMetadata('design:type', target, key);\n }\n else {\n options.type = null;\n }\n }\n VueClassComponent.createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\nfunction Prop(options, key) {\n if (options === void 0) { options = {}; }\n if (options instanceof Vue) {\n return makePropDecorator()(options, key);\n }\n else {\n return makePropDecorator(options);\n }\n}\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nfunction Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return VueClassComponent.createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n componentOptions.watch[path] = { handler: handler, deep: deep, immediate: immediate };\n });\n}\nvar prop = Prop;\nvar watch = Watch;\nvar Component = VueClassComponent__default;\n\nexports.Inject = Inject;\nexports.Model = Model;\nexports.Prop = Prop;\nexports.Watch = Watch;\nexports.prop = prop;\nexports.watch = watch;\nexports.Component = Component;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = normalizeComponent;\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n scriptExports = scriptExports || {}\n\n // ES6 modules interop\n var type = typeof scriptExports.default\n if (type === 'object' || type === 'function') {\n scriptExports = scriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles(this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return JsonObjectProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CustomPropertiesCollection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return JsonMetadataClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return JsonMetadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return JsonError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return JsonUnknownPropertyError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return JsonMissingTypeErrorBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return JsonMissingTypeError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return JsonIncorrectTypeError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return JsonRequiredPropertyError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return JsonObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return Serializer; });\n\n\nvar JsonObjectProperty = /** @class */ (function () {\n function JsonObjectProperty(name, isRequired) {\n if (isRequired === void 0) { isRequired = false; }\n this.name = name;\n this.typeValue = null;\n this.choicesValue = null;\n this.baseValue = null;\n this.isRequiredValue = false;\n this.readOnlyValue = null;\n this.visibleValue = null;\n this.isLocalizableValue = null;\n this.choicesfunc = null;\n this.dependedProperties = null;\n this.isSerializable = true;\n this.isLightSerializable = true;\n this.isCustom = false;\n this.isDynamicChoices = false; //TODO obsolete, use dependsOn attribute\n this.className = null;\n this.alternativeName = null;\n this.classNamePart = null;\n this.baseClassName = null;\n this.defaultValueValue = null;\n this.serializationProperty = null;\n this.maxLength = -1;\n this.layout = null;\n this.onGetValue = null;\n this.onSetValue = null;\n this.visibleIf = null;\n this.isArray = false;\n this.isRequiredValue = isRequired;\n }\n Object.defineProperty(JsonObjectProperty.prototype, \"type\", {\n get: function () {\n return this.typeValue ? this.typeValue : \"string\";\n },\n set: function (value) {\n if (value === \"itemvalues\")\n value = \"itemvalue[]\";\n this.typeValue = value;\n if (this.typeValue.indexOf(\"[]\") === this.typeValue.length - 2) {\n this.isArray = true;\n this.className = this.typeValue.substr(0, this.typeValue.length - 2);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(JsonObjectProperty.prototype, \"isRequired\", {\n get: function () {\n return this.isRequiredValue;\n },\n set: function (val) {\n this.isRequiredValue = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(JsonObjectProperty.prototype, \"hasToUseGetValue\", {\n get: function () {\n return this.onGetValue || this.serializationProperty;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(JsonObjectProperty.prototype, \"defaultValue\", {\n get: function () {\n var result = this.defaultValueValue;\n if (!!JsonObjectProperty.getItemValuesDefaultValue &&\n JsonObject.metaData.isDescendantOf(this.className, \"itemvalue\")) {\n result = JsonObjectProperty.getItemValuesDefaultValue(this.defaultValueValue || []);\n }\n return result;\n },\n set: function (newValue) {\n this.defaultValueValue = newValue;\n },\n enumerable: true,\n configurable: true\n });\n JsonObjectProperty.prototype.isDefaultValue = function (value) {\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(this.defaultValue))\n return this.defaultValue == value;\n return ((value === false && this.type == \"boolean\") ||\n value === \"\" ||\n __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(value));\n };\n JsonObjectProperty.prototype.getValue = function (obj) {\n if (this.onGetValue)\n return this.onGetValue(obj);\n if (this.serializationProperty && !!obj[this.serializationProperty])\n return obj[this.serializationProperty].getJson();\n return obj[this.name];\n };\n JsonObjectProperty.prototype.getPropertyValue = function (obj) {\n if (this.isLocalizable)\n return obj[this.serializationProperty].text;\n return this.getValue(obj);\n };\n Object.defineProperty(JsonObjectProperty.prototype, \"hasToUseSetValue\", {\n get: function () {\n return this.onSetValue || this.serializationProperty;\n },\n enumerable: true,\n configurable: true\n });\n JsonObjectProperty.prototype.setValue = function (obj, value, jsonConv) {\n if (this.onSetValue) {\n this.onSetValue(obj, value, jsonConv);\n }\n else {\n if (this.serializationProperty && !!obj[this.serializationProperty])\n obj[this.serializationProperty].setJson(value);\n else {\n if (value && typeof value === \"string\") {\n if (this.type == \"number\") {\n value = parseInt(value);\n }\n if (this.type == \"boolean\") {\n value = value.toLowerCase() === \"true\";\n }\n }\n obj[this.name] = value;\n }\n }\n };\n JsonObjectProperty.prototype.getObjType = function (objType) {\n if (!this.classNamePart)\n return objType;\n return objType.replace(this.classNamePart, \"\");\n };\n JsonObjectProperty.prototype.getClassName = function (className) {\n if (className)\n className = className.toLowerCase();\n return this.classNamePart && className.indexOf(this.classNamePart) < 0\n ? className + this.classNamePart\n : className;\n };\n Object.defineProperty(JsonObjectProperty.prototype, \"choices\", {\n /**\n * Depricated, please use getChoices\n */\n get: function () {\n return this.getChoices(null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(JsonObjectProperty.prototype, \"hasChoices\", {\n get: function () {\n return !!this.choicesValue || !!this.choicesfunc;\n },\n enumerable: true,\n configurable: true\n });\n JsonObjectProperty.prototype.getChoices = function (obj, choicesCallback) {\n if (choicesCallback === void 0) { choicesCallback = null; }\n if (this.choicesValue != null)\n return this.choicesValue;\n if (this.choicesfunc != null)\n return this.choicesfunc(obj, choicesCallback);\n return null;\n };\n JsonObjectProperty.prototype.setChoices = function (value, valueFunc) {\n this.choicesValue = value;\n this.choicesfunc = valueFunc;\n };\n JsonObjectProperty.prototype.getBaseValue = function () {\n if (!this.baseValue)\n return \"\";\n if (typeof this.baseValue == \"function\")\n return this.baseValue();\n return this.baseValue;\n };\n JsonObjectProperty.prototype.setBaseValue = function (val) {\n this.baseValue = val;\n };\n Object.defineProperty(JsonObjectProperty.prototype, \"readOnly\", {\n get: function () {\n return this.readOnlyValue != null ? this.readOnlyValue : false;\n },\n set: function (val) {\n this.readOnlyValue = val;\n },\n enumerable: true,\n configurable: true\n });\n JsonObjectProperty.prototype.isVisible = function (layout, obj) {\n if (obj === void 0) { obj = null; }\n var isLayout = !this.layout || this.layout == layout;\n if (!this.visible || !isLayout)\n return false;\n if (!!this.visibleIf && !!obj)\n return this.visibleIf(obj);\n return true;\n };\n Object.defineProperty(JsonObjectProperty.prototype, \"visible\", {\n get: function () {\n return this.visibleValue != null ? this.visibleValue : true;\n },\n set: function (val) {\n this.visibleValue = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(JsonObjectProperty.prototype, \"isLocalizable\", {\n get: function () {\n return this.isLocalizableValue != null ? this.isLocalizableValue : false;\n },\n set: function (val) {\n this.isLocalizableValue = val;\n },\n enumerable: true,\n configurable: true\n });\n JsonObjectProperty.prototype.mergeWith = function (prop) {\n var valuesNames = JsonObjectProperty.mergableValues;\n for (var i = 0; i < valuesNames.length; i++) {\n this.mergeValue(prop, valuesNames[i]);\n }\n };\n JsonObjectProperty.prototype.addDependedProperty = function (name) {\n if (!this.dependedProperties) {\n this.dependedProperties = [];\n }\n if (this.dependedProperties.indexOf(name) < 0) {\n this.dependedProperties.push(name);\n }\n };\n JsonObjectProperty.prototype.getDependedProperties = function () {\n return !!this.dependedProperties ? this.dependedProperties : [];\n };\n JsonObjectProperty.prototype.mergeValue = function (prop, valueName) {\n if (this[valueName] == null && prop[valueName] != null) {\n this[valueName] = prop[valueName];\n }\n };\n JsonObjectProperty.mergableValues = [\n \"typeValue\",\n \"choicesValue\",\n \"baseValue\",\n \"readOnlyValue\",\n \"visibleValue\",\n \"isSerializable\",\n \"isLightSerializable\",\n \"isCustom\",\n \"isDynamicChoices\",\n \"isLocalizableValue\",\n \"className\",\n \"alternativeName\",\n \"layout\",\n \"classNamePart\",\n \"baseClassName\",\n \"defaultValue\",\n \"serializationProperty\",\n \"onGetValue\",\n \"onSetValue\",\n \"dependedProperties\",\n \"visibleIf\",\n \"maxLength\",\n \"maxValue\",\n \"minValue\"\n ];\n return JsonObjectProperty;\n}());\n\nvar CustomPropertiesCollection = /** @class */ (function () {\n function CustomPropertiesCollection() {\n }\n CustomPropertiesCollection.addProperty = function (className, property) {\n className = className.toLowerCase();\n var props = CustomPropertiesCollection.properties;\n if (!props[className]) {\n props[className] = [];\n }\n props[className].push(property);\n };\n CustomPropertiesCollection.removeProperty = function (className, propertyName) {\n className = className.toLowerCase();\n var props = CustomPropertiesCollection.properties;\n if (!props[className])\n return;\n var properties = props[className];\n for (var i = 0; i < properties.length; i++) {\n if (properties[i].name == propertyName) {\n props[className].splice(i, 1);\n break;\n }\n }\n };\n CustomPropertiesCollection.addClass = function (className, parentClassName) {\n className = className.toLowerCase();\n if (parentClassName) {\n parentClassName = parentClassName.toLowerCase();\n }\n CustomPropertiesCollection.parentClasses[className] = parentClassName;\n };\n CustomPropertiesCollection.getProperties = function (className) {\n className = className.toLowerCase();\n var res = [];\n var props = CustomPropertiesCollection.properties;\n while (className) {\n var properties = props[className];\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n res.push(properties[i]);\n }\n }\n className = CustomPropertiesCollection.parentClasses[className];\n }\n return res;\n };\n CustomPropertiesCollection.createProperties = function (obj) {\n if (!obj || !obj.getType)\n return;\n CustomPropertiesCollection.createPropertiesCore(obj, obj.getType());\n };\n CustomPropertiesCollection.createPropertiesCore = function (obj, className) {\n var props = CustomPropertiesCollection.properties;\n if (props[className]) {\n CustomPropertiesCollection.createPropertiesInObj(obj, props[className]);\n }\n var parentClass = CustomPropertiesCollection.parentClasses[className];\n if (parentClass) {\n CustomPropertiesCollection.createPropertiesCore(obj, parentClass);\n }\n };\n CustomPropertiesCollection.createPropertiesInObj = function (obj, properties) {\n for (var i = 0; i < properties.length; i++) {\n CustomPropertiesCollection.createPropertyInObj(obj, properties[i]);\n }\n };\n CustomPropertiesCollection.createPropertyInObj = function (obj, prop) {\n if (obj[prop.name] || obj.hasOwnProperty(prop.name))\n return;\n if (prop.isLocalizable &&\n prop.serializationProperty &&\n !obj[prop.serializationProperty] &&\n obj.createCustomLocalizableObj) {\n obj.createCustomLocalizableObj(prop.name);\n var locDesc = {\n get: function () {\n return obj.getLocalizableString(prop.name);\n }\n };\n Object.defineProperty(obj, prop.serializationProperty, locDesc);\n var desc = {\n get: function () {\n return obj.getLocalizableStringText(prop.name, prop.defaultValue);\n },\n set: function (v) {\n obj.setLocalizableStringText(prop.name, v);\n }\n };\n Object.defineProperty(obj, prop.name, desc);\n }\n else {\n var defaultValue = prop.defaultValue;\n if (JsonObject.metaData.isDescendantOf(prop.className, \"itemvalue\") &&\n typeof obj.createNewArray === \"function\") {\n obj.createNewArray(prop.name, function (item) {\n item.locOwner = obj;\n });\n obj.setPropertyValue(prop.name, defaultValue);\n defaultValue = null;\n }\n if (!!obj.getPropertyValue && !!obj.setPropertyValue) {\n var desc = {\n get: function () {\n return obj.getPropertyValue(prop.name, defaultValue);\n },\n set: function (v) {\n if (!!prop.onSetValue) {\n prop.onSetValue(obj, v, null);\n }\n else {\n obj.setPropertyValue(prop.name, v);\n }\n }\n };\n Object.defineProperty(obj, prop.name, desc);\n }\n }\n };\n CustomPropertiesCollection.properties = {};\n CustomPropertiesCollection.parentClasses = {};\n return CustomPropertiesCollection;\n}());\n\nvar JsonMetadataClass = /** @class */ (function () {\n function JsonMetadataClass(name, properties, creator, parentName) {\n if (creator === void 0) { creator = null; }\n if (parentName === void 0) { parentName = null; }\n this.name = name;\n this.creator = creator;\n this.parentName = parentName;\n this.properties = null;\n name = name.toLowerCase();\n if (this.parentName) {\n this.parentName = this.parentName.toLowerCase();\n CustomPropertiesCollection.addClass(name, this.parentName);\n }\n this.properties = new Array();\n for (var i = 0; i < properties.length; i++) {\n var prop = this.createProperty(properties[i]);\n if (prop) {\n this.properties.push(prop);\n }\n }\n }\n JsonMetadataClass.prototype.find = function (name) {\n for (var i = 0; i < this.properties.length; i++) {\n if (this.properties[i].name == name)\n return this.properties[i];\n }\n return null;\n };\n JsonMetadataClass.prototype.createProperty = function (propInfo) {\n var propertyName = typeof propInfo === \"string\" ? propInfo : propInfo.name;\n if (!propertyName)\n return;\n var propertyType = null;\n var typeIndex = propertyName.indexOf(JsonMetadataClass.typeSymbol);\n if (typeIndex > -1) {\n propertyType = propertyName.substring(typeIndex + 1);\n propertyName = propertyName.substring(0, typeIndex);\n }\n var isRequired = this.getIsPropertyNameRequired(propertyName) || !!propInfo.isRequired;\n propertyName = this.getPropertyName(propertyName);\n var prop = new JsonObjectProperty(propertyName, isRequired);\n if (propertyType) {\n prop.type = propertyType;\n }\n if (typeof propInfo === \"object\") {\n if (propInfo.type) {\n prop.type = propInfo.type;\n }\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(propInfo.default)) {\n prop.defaultValue = propInfo.default;\n }\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(propInfo.isSerializable)) {\n prop.isSerializable = propInfo.isSerializable;\n }\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(propInfo.isLightSerializable)) {\n prop.isLightSerializable = propInfo.isLightSerializable;\n }\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(propInfo.maxLength)) {\n prop.maxLength = propInfo.maxLength;\n }\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(propInfo.maxValue)) {\n prop.maxValue = propInfo.maxValue;\n }\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(propInfo.minValue)) {\n prop.minValue = propInfo.minValue;\n }\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(propInfo.isDynamicChoices)) {\n prop.isDynamicChoices = propInfo.isDynamicChoices;\n }\n if (propInfo.visible === false) {\n prop.visible = false;\n }\n if (!!propInfo.visibleIf) {\n prop.visibleIf = propInfo.visibleIf;\n }\n if (propInfo.choices) {\n var choicesFunc = typeof propInfo.choices === \"function\" ? propInfo.choices : null;\n var choicesValue = typeof propInfo.choices !== \"function\" ? propInfo.choices : null;\n prop.setChoices(choicesValue, choicesFunc);\n }\n if (!!propInfo.baseValue) {\n prop.setBaseValue(propInfo.baseValue);\n }\n if (propInfo.onGetValue) {\n prop.onGetValue = propInfo.onGetValue;\n }\n if (propInfo.onSetValue) {\n prop.onSetValue = propInfo.onSetValue;\n }\n if (propInfo.isLocalizable) {\n propInfo.serializationProperty = \"loc\" + propInfo.name;\n }\n if (propInfo.serializationProperty) {\n prop.serializationProperty = propInfo.serializationProperty;\n var s;\n if (prop.serializationProperty &&\n prop.serializationProperty.indexOf(\"loc\") == 0) {\n prop.isLocalizable = true;\n }\n }\n if (propInfo.isLocalizable) {\n prop.isLocalizable = propInfo.isLocalizable;\n }\n if (propInfo.className) {\n prop.className = propInfo.className;\n }\n if (propInfo.baseClassName) {\n prop.baseClassName = propInfo.baseClassName;\n }\n if (propInfo.classNamePart) {\n prop.classNamePart = propInfo.classNamePart;\n }\n if (propInfo.alternativeName) {\n prop.alternativeName = propInfo.alternativeName;\n }\n if (propInfo.layout) {\n prop.layout = propInfo.layout;\n }\n if (propInfo.dependsOn) {\n this.addDependsOnProperties(prop, propInfo.dependsOn);\n }\n }\n return prop;\n };\n JsonMetadataClass.prototype.addDependsOnProperties = function (prop, dependsOn) {\n if (Array.isArray(dependsOn)) {\n for (var i = 0; i < dependsOn.length; i++) {\n this.addDependsOnProperty(prop, dependsOn[i]);\n }\n }\n else {\n this.addDependsOnProperty(prop, dependsOn);\n }\n };\n JsonMetadataClass.prototype.addDependsOnProperty = function (prop, dependsOn) {\n var property = this.find(dependsOn);\n if (!property) {\n property = Serializer.findProperty(this.parentName, dependsOn);\n }\n if (!property)\n return;\n property.addDependedProperty(prop.name);\n };\n JsonMetadataClass.prototype.getIsPropertyNameRequired = function (propertyName) {\n return (propertyName.length > 0 &&\n propertyName[0] == JsonMetadataClass.requiredSymbol);\n };\n JsonMetadataClass.prototype.getPropertyName = function (propertyName) {\n if (!this.getIsPropertyNameRequired(propertyName))\n return propertyName;\n propertyName = propertyName.slice(1);\n return propertyName;\n };\n JsonMetadataClass.requiredSymbol = \"!\";\n JsonMetadataClass.typeSymbol = \":\";\n return JsonMetadataClass;\n}());\n\nvar JsonMetadata = /** @class */ (function () {\n function JsonMetadata() {\n this.classes = {};\n this.alternativeNames = {};\n this.childrenClasses = {};\n this.classProperties = {};\n this.classHashProperties = {};\n }\n JsonMetadata.prototype.addClass = function (name, properties, creator, parentName) {\n if (creator === void 0) { creator = null; }\n if (parentName === void 0) { parentName = null; }\n name = name.toLowerCase();\n var metaDataClass = new JsonMetadataClass(name, properties, creator, parentName);\n this.classes[name] = metaDataClass;\n if (parentName) {\n parentName = parentName.toLowerCase();\n var children = this.childrenClasses[parentName];\n if (!children) {\n this.childrenClasses[parentName] = [];\n }\n this.childrenClasses[parentName].push(metaDataClass);\n }\n return metaDataClass;\n };\n JsonMetadata.prototype.removeClass = function (name) {\n var metaClass = this.findClass(name);\n if (!metaClass)\n return;\n delete this.classes[metaClass.name];\n if (!!metaClass.parentName) {\n var index = this.childrenClasses[metaClass.parentName].indexOf(metaClass);\n if (index > -1) {\n this.childrenClasses[metaClass.parentName].splice(index, 1);\n }\n }\n };\n JsonMetadata.prototype.overrideClassCreatore = function (name, creator) {\n this.overrideClassCreator(name, creator);\n };\n JsonMetadata.prototype.overrideClassCreator = function (name, creator) {\n name = name.toLowerCase();\n var metaDataClass = this.findClass(name);\n if (metaDataClass) {\n metaDataClass.creator = creator;\n }\n };\n JsonMetadata.prototype.getProperties = function (className) {\n var metaClass = this.findClass(className);\n if (!metaClass)\n return [];\n var properties = this.classProperties[metaClass.name];\n if (!!properties)\n return properties;\n this.fillPropertiesForClass(metaClass.name);\n return this.classProperties[metaClass.name];\n };\n JsonMetadata.prototype.getHashProperties = function (className) {\n var metaClass = this.findClass(className);\n if (!metaClass)\n return {};\n var properties = this.classHashProperties[metaClass.name];\n if (!!properties)\n return properties;\n this.fillPropertiesForClass(metaClass.name);\n return this.classHashProperties[metaClass.name];\n };\n JsonMetadata.prototype.fillPropertiesForClass = function (className) {\n var properties = new Array();\n var hashProperties = {};\n this.fillProperties(className, properties, hashProperties);\n this.classProperties[className] = properties;\n this.classHashProperties[className] = hashProperties;\n };\n JsonMetadata.prototype.getDynamicProperties = function (obj) {\n if (obj.getDynamicProperties && obj.getDynamicType) {\n var names = obj.getDynamicProperties();\n return JsonObject.metaData.findProperties(obj.getDynamicType(), names);\n }\n return [];\n };\n JsonMetadata.prototype.getPropertiesByObj = function (obj) {\n if (!obj || !obj.getType)\n return [];\n var res = [];\n var props = this.getProperties(obj.getType());\n for (var i = 0; i < props.length; i++) {\n res.push(props[i]);\n }\n var dynamicProps = this.getDynamicProperties(obj);\n if (dynamicProps && dynamicProps.length > 0) {\n for (var i = 0; i < dynamicProps.length; i++) {\n res.push(dynamicProps[i]);\n }\n }\n return res;\n };\n JsonMetadata.prototype.findProperty = function (className, propertyName) {\n var hash = this.getHashProperties(className);\n var res = hash[propertyName];\n return !!res ? res : null;\n };\n JsonMetadata.prototype.findProperties = function (className, propertyNames) {\n var result = [];\n var hash = this.getHashProperties(className);\n for (var i = 0; i < propertyNames.length; i++) {\n var prop = hash[propertyNames[i]];\n if (prop) {\n result.push(prop);\n }\n }\n return result;\n };\n JsonMetadata.prototype.createClass = function (name, json) {\n if (json === void 0) { json = undefined; }\n name = name.toLowerCase();\n var metaDataClass = this.findClass(name);\n if (!metaDataClass)\n return null;\n if (metaDataClass.creator)\n return metaDataClass.creator(json);\n var parentName = metaDataClass.parentName;\n while (parentName) {\n metaDataClass = this.findClass(parentName);\n if (!metaDataClass)\n return null;\n parentName = metaDataClass.parentName;\n if (metaDataClass.creator)\n return this.createCustomType(name, metaDataClass.creator, json);\n }\n return null;\n };\n JsonMetadata.prototype.createCustomType = function (name, creator, json) {\n if (json === void 0) { json = undefined; }\n name = name.toLowerCase();\n var res = creator(json);\n var customTypeName = name;\n var customTemplateName = res.getTemplate\n ? res.getTemplate()\n : res.getType();\n res.getType = function () {\n return customTypeName;\n };\n res.getTemplate = function () {\n return customTemplateName;\n };\n CustomPropertiesCollection.createProperties(res);\n return res;\n };\n JsonMetadata.prototype.getChildrenClasses = function (name, canBeCreated) {\n if (canBeCreated === void 0) { canBeCreated = false; }\n name = name.toLowerCase();\n var result = [];\n this.fillChildrenClasses(name, canBeCreated, result);\n return result;\n };\n JsonMetadata.prototype.getRequiredProperties = function (name) {\n var properties = this.getProperties(name);\n var res = [];\n for (var i = 0; i < properties.length; i++) {\n if (properties[i].isRequired) {\n res.push(properties[i].name);\n }\n }\n return res;\n };\n JsonMetadata.prototype.addProperties = function (className, propertiesInfos) {\n className = className.toLowerCase();\n var metaDataClass = this.findClass(className);\n for (var i = 0; i < propertiesInfos.length; i++) {\n this.addCustomPropertyCore(metaDataClass, propertiesInfos[i]);\n }\n };\n JsonMetadata.prototype.addProperty = function (className, propertyInfo) {\n this.addCustomPropertyCore(this.findClass(className), propertyInfo);\n };\n JsonMetadata.prototype.addCustomPropertyCore = function (metaDataClass, propertyInfo) {\n if (!metaDataClass)\n return;\n var property = metaDataClass.createProperty(propertyInfo);\n if (property) {\n property.isCustom = true;\n this.addPropertyToClass(metaDataClass, property);\n this.emptyClassPropertiesHash(metaDataClass);\n CustomPropertiesCollection.addProperty(metaDataClass.name, property);\n }\n };\n JsonMetadata.prototype.removeProperty = function (className, propertyName) {\n var metaDataClass = this.findClass(className);\n if (!metaDataClass)\n return false;\n var property = metaDataClass.find(propertyName);\n if (property) {\n this.removePropertyFromClass(metaDataClass, property);\n this.emptyClassPropertiesHash(metaDataClass);\n CustomPropertiesCollection.removeProperty(metaDataClass.name, propertyName);\n }\n };\n JsonMetadata.prototype.addPropertyToClass = function (metaDataClass, property) {\n if (metaDataClass.find(property.name) != null)\n return;\n metaDataClass.properties.push(property);\n };\n JsonMetadata.prototype.removePropertyFromClass = function (metaDataClass, property) {\n var index = metaDataClass.properties.indexOf(property);\n if (index < 0)\n return;\n metaDataClass.properties.splice(index, 1);\n };\n JsonMetadata.prototype.emptyClassPropertiesHash = function (metaDataClass) {\n this.classProperties[metaDataClass.name] = null;\n this.classHashProperties[metaDataClass.name] = null;\n var childClasses = this.getChildrenClasses(metaDataClass.name);\n for (var i = 0; i < childClasses.length; i++) {\n this.classProperties[childClasses[i].name] = null;\n this.classHashProperties[childClasses[i].name] = null;\n }\n };\n JsonMetadata.prototype.fillChildrenClasses = function (name, canBeCreated, result) {\n var children = this.childrenClasses[name];\n if (!children)\n return;\n for (var i = 0; i < children.length; i++) {\n if (!canBeCreated || children[i].creator) {\n result.push(children[i]);\n }\n this.fillChildrenClasses(children[i].name, canBeCreated, result);\n }\n };\n JsonMetadata.prototype.findClass = function (name) {\n name = name.toLowerCase();\n var res = this.classes[name];\n if (!res) {\n var newName = this.alternativeNames[name];\n if (!!newName && newName != name)\n return this.findClass(newName);\n }\n return res;\n };\n JsonMetadata.prototype.isDescendantOf = function (className, ancestorClassName) {\n if (!className || !ancestorClassName) {\n return false;\n }\n className = className.toLowerCase();\n ancestorClassName = ancestorClassName.toLowerCase();\n var class_ = this.findClass(className);\n if (!class_) {\n return false;\n }\n var parentClass = class_;\n do {\n if (parentClass.name === ancestorClassName) {\n return true;\n }\n parentClass = this.classes[parentClass.parentName];\n } while (!!parentClass);\n return false;\n };\n JsonMetadata.prototype.addAlterNativeClassName = function (name, alternativeName) {\n this.alternativeNames[alternativeName.toLowerCase()] = name.toLowerCase();\n };\n JsonMetadata.prototype.fillProperties = function (name, list, hash) {\n var metaDataClass = this.findClass(name);\n if (!metaDataClass)\n return;\n if (metaDataClass.parentName) {\n this.fillProperties(metaDataClass.parentName, list, hash);\n }\n for (var i = 0; i < metaDataClass.properties.length; i++) {\n var prop = metaDataClass.properties[i];\n this.addPropertyCore(prop, list, hash);\n hash[prop.name] = prop;\n }\n };\n JsonMetadata.prototype.addPropertyCore = function (property, list, hash) {\n if (!hash[property.name]) {\n list.push(property);\n return;\n }\n var index = -1;\n for (var i = 0; i < list.length; i++) {\n if (list[i].name == property.name) {\n index = i;\n break;\n }\n }\n property.mergeWith(list[index]);\n list[index] = property;\n };\n return JsonMetadata;\n}());\n\nvar JsonError = /** @class */ (function () {\n function JsonError(type, message) {\n this.type = type;\n this.message = message;\n this.description = \"\";\n this.at = -1;\n }\n JsonError.prototype.getFullDescription = function () {\n return this.message + (this.description ? \"\\n\" + this.description : \"\");\n };\n return JsonError;\n}());\n\nvar JsonUnknownPropertyError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(JsonUnknownPropertyError, _super);\n function JsonUnknownPropertyError(propertyName, className) {\n var _this = _super.call(this, \"unknownproperty\", \"The property '\" +\n propertyName +\n \"' in class '\" +\n className +\n \"' is unknown.\") || this;\n _this.propertyName = propertyName;\n _this.className = className;\n var properties = JsonObject.metaData.getProperties(className);\n if (properties) {\n _this.description = \"The list of available properties are: \";\n for (var i = 0; i < properties.length; i++) {\n if (i > 0)\n _this.description += \", \";\n _this.description += properties[i].name;\n }\n _this.description += \".\";\n }\n return _this;\n }\n return JsonUnknownPropertyError;\n}(JsonError));\n\nvar JsonMissingTypeErrorBase = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(JsonMissingTypeErrorBase, _super);\n function JsonMissingTypeErrorBase(baseClassName, type, message) {\n var _this = _super.call(this, type, message) || this;\n _this.baseClassName = baseClassName;\n _this.type = type;\n _this.message = message;\n _this.description = \"The following types are available: \";\n var types = JsonObject.metaData.getChildrenClasses(baseClassName, true);\n for (var i = 0; i < types.length; i++) {\n if (i > 0)\n _this.description += \", \";\n _this.description += \"'\" + types[i].name + \"'\";\n }\n _this.description += \".\";\n return _this;\n }\n return JsonMissingTypeErrorBase;\n}(JsonError));\n\nvar JsonMissingTypeError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(JsonMissingTypeError, _super);\n function JsonMissingTypeError(propertyName, baseClassName) {\n var _this = _super.call(this, baseClassName, \"missingtypeproperty\", \"The property type is missing in the object. Please take a look at property: '\" +\n propertyName +\n \"'.\") || this;\n _this.propertyName = propertyName;\n _this.baseClassName = baseClassName;\n return _this;\n }\n return JsonMissingTypeError;\n}(JsonMissingTypeErrorBase));\n\nvar JsonIncorrectTypeError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(JsonIncorrectTypeError, _super);\n function JsonIncorrectTypeError(propertyName, baseClassName) {\n var _this = _super.call(this, baseClassName, \"incorrecttypeproperty\", \"The property type is incorrect in the object. Please take a look at property: '\" +\n propertyName +\n \"'.\") || this;\n _this.propertyName = propertyName;\n _this.baseClassName = baseClassName;\n return _this;\n }\n return JsonIncorrectTypeError;\n}(JsonMissingTypeErrorBase));\n\nvar JsonRequiredPropertyError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(JsonRequiredPropertyError, _super);\n function JsonRequiredPropertyError(propertyName, className) {\n var _this = _super.call(this, \"requiredproperty\", \"The property '\" +\n propertyName +\n \"' is required in class '\" +\n className +\n \"'.\") || this;\n _this.propertyName = propertyName;\n _this.className = className;\n return _this;\n }\n return JsonRequiredPropertyError;\n}(JsonError));\n\nvar JsonObject = /** @class */ (function () {\n function JsonObject() {\n this.errors = new Array();\n this.lightSerializing = false;\n }\n Object.defineProperty(JsonObject, \"metaData\", {\n get: function () {\n return JsonObject.metaDataValue;\n },\n enumerable: true,\n configurable: true\n });\n JsonObject.prototype.toJsonObject = function (obj, storeDefaults) {\n if (storeDefaults === void 0) { storeDefaults = false; }\n return this.toJsonObjectCore(obj, null, storeDefaults);\n };\n JsonObject.prototype.toObject = function (jsonObj, obj) {\n this.toObjectCore(jsonObj, obj);\n if (!!obj.getType) {\n var error = this.getRequiredError(jsonObj, obj.getType());\n if (!!error) {\n this.addNewError(error, jsonObj);\n }\n }\n };\n JsonObject.prototype.toObjectCore = function (jsonObj, obj) {\n if (!jsonObj)\n return;\n var properties = null;\n var objType = undefined;\n var needAddErrors = true;\n if (obj.getType) {\n objType = obj.getType();\n properties = JsonObject.metaData.getProperties(objType);\n needAddErrors =\n !!objType && !JsonObject.metaData.isDescendantOf(objType, \"itemvalue\");\n }\n if (!properties)\n return;\n if (obj.startLoadingFromJson) {\n obj.startLoadingFromJson();\n }\n properties = this.addDynamicProperties(obj, jsonObj, properties);\n for (var key in jsonObj) {\n if (key === JsonObject.typePropertyName)\n continue;\n if (key === JsonObject.positionPropertyName) {\n obj[key] = jsonObj[key];\n continue;\n }\n var property = this.findProperty(properties, key);\n if (!property) {\n if (needAddErrors) {\n this.addNewError(new JsonUnknownPropertyError(key.toString(), objType), jsonObj);\n }\n continue;\n }\n this.valueToObj(jsonObj[key], obj, property);\n }\n if (obj.endLoadingFromJson) {\n obj.endLoadingFromJson();\n }\n };\n JsonObject.prototype.toJsonObjectCore = function (obj, property, storeDefaults) {\n if (storeDefaults === void 0) { storeDefaults = false; }\n if (!obj || !obj.getType)\n return obj;\n if (typeof obj.getData === \"function\")\n return obj.getData();\n var result = {};\n if (property != null && !property.className) {\n result[JsonObject.typePropertyName] = property.getObjType(obj.getType());\n }\n this.propertiesToJson(obj, JsonObject.metaData.getProperties(obj.getType()), result, storeDefaults);\n this.propertiesToJson(obj, this.getDynamicProperties(obj), result, storeDefaults);\n return result;\n };\n JsonObject.prototype.getDynamicProperties = function (obj) {\n if (obj.getDynamicProperties && obj.getDynamicType) {\n var names = obj.getDynamicProperties();\n return JsonObject.metaData.findProperties(obj.getDynamicType(), names);\n }\n return [];\n };\n JsonObject.prototype.addDynamicProperties = function (obj, jsonObj, properties) {\n if (!obj.getDynamicPropertyName)\n return properties;\n var dynamicPropName = obj.getDynamicPropertyName();\n if (!dynamicPropName)\n return properties;\n if (jsonObj[dynamicPropName]) {\n obj[dynamicPropName] = jsonObj[dynamicPropName];\n }\n var dynamicProperties = this.getDynamicProperties(obj);\n var res = [];\n for (var i = 0; i < properties.length; i++) {\n res.push(properties[i]);\n }\n for (var i = 0; i < dynamicProperties.length; i++) {\n res.push(dynamicProperties[i]);\n }\n return res;\n };\n JsonObject.prototype.propertiesToJson = function (obj, properties, json, storeDefaults) {\n if (storeDefaults === void 0) { storeDefaults = false; }\n for (var i = 0; i < properties.length; i++) {\n this.valueToJson(obj, json, properties[i], storeDefaults);\n }\n };\n JsonObject.prototype.valueToJson = function (obj, result, property, storeDefaults) {\n if (storeDefaults === void 0) { storeDefaults = false; }\n if (property.isSerializable === false ||\n (property.isLightSerializable === false && this.lightSerializing))\n return;\n var value = property.getValue(obj);\n if (!storeDefaults && property.isDefaultValue(value))\n return;\n if (this.isValueArray(value)) {\n var arrValue = [];\n for (var i = 0; i < value.length; i++) {\n arrValue.push(this.toJsonObjectCore(value[i], property, storeDefaults));\n }\n value = arrValue.length > 0 ? arrValue : null;\n }\n else {\n value = this.toJsonObjectCore(value, property, storeDefaults);\n }\n var hasValue = typeof obj[\"getPropertyValue\"] === \"function\" &&\n obj[\"getPropertyValue\"](property.name, null) !== null;\n if ((storeDefaults && hasValue) || !property.isDefaultValue(value)) {\n result[property.name] = value;\n }\n };\n JsonObject.prototype.valueToObj = function (value, obj, property) {\n if (value == null)\n return;\n this.removePos(property, value);\n if (property != null && property.hasToUseSetValue) {\n property.setValue(obj, value, this);\n return;\n }\n if (this.isValueArray(value)) {\n this.valueToArray(value, obj, property.name, property);\n return;\n }\n var newObj = this.createNewObj(value, property);\n if (newObj.newObj) {\n this.toObjectCore(value, newObj.newObj);\n value = newObj.newObj;\n }\n if (!newObj.error) {\n if (property != null) {\n property.setValue(obj, value, this);\n }\n else {\n obj[property.name] = value;\n }\n }\n };\n JsonObject.prototype.removePos = function (property, value) {\n if (!property || !property.type || property.type.indexOf(\"value\") < 0)\n return;\n this.removePosFromObj(value);\n };\n JsonObject.prototype.removePosFromObj = function (obj) {\n if (!obj)\n return;\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n this.removePosFromObj(obj[i]);\n }\n }\n if (!!obj[JsonObject.positionPropertyName]) {\n delete obj[JsonObject.positionPropertyName];\n }\n };\n JsonObject.prototype.isValueArray = function (value) {\n return value && Array.isArray(value);\n };\n JsonObject.prototype.createNewObj = function (value, property) {\n var result = { newObj: null, error: null };\n var className = value[JsonObject.typePropertyName];\n if (!className && property != null && property.className) {\n className = property.className;\n }\n className = property.getClassName(className);\n result.newObj = className\n ? JsonObject.metaData.createClass(className, value)\n : null;\n result.error = this.checkNewObjectOnErrors(result.newObj, value, property, className);\n return result;\n };\n JsonObject.prototype.checkNewObjectOnErrors = function (newObj, value, property, className) {\n var error = null;\n if (newObj) {\n error = this.getRequiredError(value, className);\n }\n else {\n if (property.baseClassName) {\n if (!className) {\n error = new JsonMissingTypeError(property.name, property.baseClassName);\n }\n else {\n error = new JsonIncorrectTypeError(property.name, property.baseClassName);\n }\n }\n }\n if (error) {\n this.addNewError(error, value);\n }\n return error;\n };\n JsonObject.prototype.getRequiredError = function (value, className) {\n var requiredProperties = JsonObject.metaData.getRequiredProperties(className);\n if (!requiredProperties)\n return null;\n for (var i = 0; i < requiredProperties.length; i++) {\n if (!value[requiredProperties[i]]) {\n return new JsonRequiredPropertyError(requiredProperties[i], className);\n }\n }\n return null;\n };\n JsonObject.prototype.addNewError = function (error, jsonObj) {\n if (jsonObj && jsonObj[JsonObject.positionPropertyName]) {\n error.at = jsonObj[JsonObject.positionPropertyName].start;\n }\n this.errors.push(error);\n };\n JsonObject.prototype.valueToArray = function (value, obj, key, property) {\n if (obj[key] && value.length > 0)\n obj[key].splice(0, obj[key].length);\n if (!obj[key])\n obj[key] = [];\n for (var i = 0; i < value.length; i++) {\n var newValue = this.createNewObj(value[i], property);\n if (newValue.newObj) {\n if (!!value[i].name) {\n newValue.newObj.name = value[i].name;\n }\n obj[key].push(newValue.newObj);\n this.toObjectCore(value[i], newValue.newObj);\n }\n else {\n if (!newValue.error) {\n obj[key].push(value[i]);\n }\n }\n }\n };\n JsonObject.prototype.findProperty = function (properties, key) {\n if (!properties)\n return null;\n for (var i = 0; i < properties.length; i++) {\n var prop = properties[i];\n if (prop.name == key || prop.alternativeName == key)\n return prop;\n }\n return null;\n };\n JsonObject.typePropertyName = \"type\";\n JsonObject.positionPropertyName = \"pos\";\n JsonObject.metaDataValue = new JsonMetadata();\n return JsonObject;\n}());\n\nvar Serializer = JsonObject.metaData;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Helpers; });\nvar Helpers = /** @class */ (function () {\n function Helpers() {\n }\n /**\n * A static methods that returns true if a value underfined, null, empty string or empty array.\n * @param value\n */\n Helpers.isValueEmpty = function (value) {\n if (Array.isArray(value) && value.length === 0)\n return true;\n if (!!value && typeof value === \"object\" && value.constructor === Object) {\n for (var key in value) {\n if (!Helpers.isValueEmpty(value[key]))\n return false;\n }\n return true;\n }\n if (!!value && (typeof value === \"string\" || value instanceof String)) {\n value = value.trim();\n }\n return !value && value !== 0 && value !== false;\n };\n Helpers.isArrayContainsEqual = function (x, y) {\n if (!Array.isArray(x) || !Array.isArray(y))\n return false;\n if (x.length !== y.length)\n return false;\n for (var i = 0; i < x.length; i++) {\n var j = 0;\n for (; j < y.length; j++) {\n if (Helpers.isTwoValueEquals(x[i], y[j]))\n break;\n }\n if (j === y.length)\n return false;\n }\n return true;\n };\n Helpers.isArraysEqual = function (x, y, ignoreOrder) {\n if (ignoreOrder === void 0) { ignoreOrder = false; }\n if (!Array.isArray(x) || !Array.isArray(y))\n return false;\n if (x.length !== y.length)\n return false;\n if (ignoreOrder) {\n var xSorted = [];\n var ySorted = [];\n for (var i = 0; i < x.length; i++) {\n xSorted.push(x[i]);\n ySorted.push(y[i]);\n }\n xSorted.sort();\n ySorted.sort();\n x = xSorted;\n y = ySorted;\n }\n for (var i = 0; i < x.length; i++) {\n if (!Helpers.isTwoValueEquals(x[i], y[i]))\n return false;\n }\n return true;\n };\n Helpers.isTwoValueEquals = function (x, y, ignoreOrder) {\n if (ignoreOrder === void 0) { ignoreOrder = false; }\n if (x === y)\n return true;\n if (Array.isArray(x) && x.length === 0 && typeof y === \"undefined\")\n return true;\n if (Array.isArray(y) && y.length === 0 && typeof x === \"undefined\")\n return true;\n if ((x === undefined || x === null) && y === \"undefined\")\n return true;\n if ((y === undefined || y === null) && x === \"undefined\")\n return true;\n if (Helpers.isConvertibleToNumber(x) && Helpers.isConvertibleToNumber(y)) {\n if (parseInt(x) === parseInt(y) && parseFloat(x) === parseFloat(y)) {\n return true;\n }\n }\n if ((!Helpers.isValueEmpty(x) && Helpers.isValueEmpty(y)) ||\n (Helpers.isValueEmpty(x) && !Helpers.isValueEmpty(y)))\n return false;\n if ((x === true || x === false) && typeof y == \"string\") {\n return x.toString() === y.toLocaleLowerCase();\n }\n if ((y === true || y === false) && typeof x == \"string\") {\n return y.toString() === x.toLocaleLowerCase();\n }\n if (!(x instanceof Object) && !(y instanceof Object))\n return x == y;\n if (!(x instanceof Object) || !(y instanceof Object))\n return false;\n if (x[\"equals\"])\n return x.equals(y);\n if (!!x.toJSON && !!y.toJSON) {\n return this.isTwoValueEquals(x.toJSON(), y.toJSON());\n }\n if (Array.isArray(x) && Array.isArray(y))\n return Helpers.isArraysEqual(x, y, ignoreOrder);\n for (var p in x) {\n if (!x.hasOwnProperty(p))\n continue;\n if (!y.hasOwnProperty(p))\n return false;\n if (x[p] === y[p])\n continue;\n if (typeof x[p] !== \"object\")\n return false;\n if (!this.isTwoValueEquals(x[p], y[p]))\n return false;\n }\n for (p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p))\n return false;\n }\n return true;\n };\n Helpers.randomizeArray = function (array) {\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Math.random() * (i + 1));\n var temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n return array;\n };\n Helpers.getUnbindValue = function (value) {\n if (!!value && value instanceof Object) {\n //do not return the same object instance!!!\n return JSON.parse(JSON.stringify(value));\n }\n return value;\n };\n Helpers.createCopy = function (obj) {\n var res = {};\n if (!obj)\n return res;\n for (var key in obj) {\n res[key] = obj[key];\n }\n return res;\n };\n Helpers.isConvertibleToNumber = function (value) {\n return (value !== undefined &&\n value !== null &&\n !Array.isArray(value) &&\n !isNaN(value));\n };\n Helpers.isNumber = function (value) {\n if (typeof value == \"string\" &&\n !!value &&\n value.indexOf(\"0x\") == 0 &&\n value.length > 32)\n return false;\n return !isNaN(parseFloat(value)) && isFinite(value);\n };\n Helpers.getMaxLength = function (maxLength, surveyLength) {\n if (maxLength < 0) {\n maxLength = surveyLength;\n }\n return maxLength > 0 ? maxLength : null;\n };\n return Helpers;\n}());\n\nif (!String.prototype[\"format\"]) {\n String.prototype[\"format\"] = function () {\n var args = arguments;\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return typeof args[number] != \"undefined\" ? args[number] : match;\n });\n };\n}\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ElementFactory; });\n\n\n//TODO replace completely with ElementFactory\nvar QuestionFactory = /** @class */ (function () {\n function QuestionFactory() {\n this.creatorHash = {};\n }\n Object.defineProperty(QuestionFactory, \"DefaultChoices\", {\n get: function () {\n return [\n __WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"choices_Item\") + \"1\",\n __WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"choices_Item\") + \"2\",\n __WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"choices_Item\") + \"3\"\n ];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFactory, \"DefaultColums\", {\n get: function () {\n var colName = __WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"matrix_column\") + \" \";\n return [colName + \"1\", colName + \"2\", colName + \"3\"];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFactory, \"DefaultRows\", {\n get: function () {\n var rowName = __WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"matrix_row\") + \" \";\n return [rowName + \"1\", rowName + \"2\"];\n },\n enumerable: true,\n configurable: true\n });\n QuestionFactory.prototype.registerQuestion = function (questionType, questionCreator) {\n this.creatorHash[questionType] = questionCreator;\n };\n QuestionFactory.prototype.unregisterElement = function (elementType) {\n delete this.creatorHash[elementType];\n };\n QuestionFactory.prototype.clear = function () {\n this.creatorHash = {};\n };\n QuestionFactory.prototype.getAllTypes = function () {\n var result = new Array();\n for (var key in this.creatorHash) {\n result.push(key);\n }\n return result.sort();\n };\n QuestionFactory.prototype.createQuestion = function (questionType, name) {\n var creator = this.creatorHash[questionType];\n if (creator == null)\n return null;\n return creator(name);\n };\n QuestionFactory.Instance = new QuestionFactory();\n return QuestionFactory;\n}());\n\nvar ElementFactory = /** @class */ (function () {\n function ElementFactory() {\n this.creatorHash = {};\n }\n ElementFactory.prototype.registerElement = function (elementType, elementCreator) {\n this.creatorHash[elementType] = elementCreator;\n };\n ElementFactory.prototype.clear = function () {\n this.creatorHash = {};\n };\n ElementFactory.prototype.unregisterElement = function (elementType, removeFromSerializer) {\n if (removeFromSerializer === void 0) { removeFromSerializer = false; }\n delete this.creatorHash[elementType];\n QuestionFactory.Instance.unregisterElement(elementType);\n if (removeFromSerializer) {\n __WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].removeClass(elementType);\n }\n };\n ElementFactory.prototype.getAllTypes = function () {\n var result = QuestionFactory.Instance.getAllTypes();\n for (var key in this.creatorHash) {\n result.push(key);\n }\n return result.sort();\n };\n ElementFactory.prototype.createElement = function (elementType, name) {\n var creator = this.creatorHash[elementType];\n if (creator == null)\n return QuestionFactory.Instance.createQuestion(elementType, name);\n return creator(name);\n };\n ElementFactory.Instance = new ElementFactory();\n return ElementFactory;\n}());\n\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__localizablestring__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Base; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return SurveyError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return SurveyElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Event; });\n\n\n\n\n\n/**\n * The base class for SurveyJS objects.\n */\nvar Base = /** @class */ (function () {\n function Base() {\n this.propertyHash = {};\n this.isLoadingFromJsonValue = false;\n this.onPropertyChanged = new Event();\n __WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"a\" /* CustomPropertiesCollection */].createProperties(this);\n }\n Object.defineProperty(Base, \"commentPrefix\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_4__settings__[\"a\" /* settings */].commentPrefix;\n },\n set: function (val) {\n __WEBPACK_IMPORTED_MODULE_4__settings__[\"a\" /* settings */].commentPrefix = val;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * A static methods that returns true if a value underfined, null, empty string or empty array.\n * @param value\n */\n Base.prototype.isValueEmpty = function (value) {\n return __WEBPACK_IMPORTED_MODULE_2__helpers__[\"a\" /* Helpers */].isValueEmpty(value);\n };\n Base.prototype.IsPropertyEmpty = function (value) {\n return value !== \"\" && this.isValueEmpty(value);\n };\n /**\n * Returns the type of the object as a string as it represents in the json. It should be in lowcase.\n */\n Base.prototype.getType = function () {\n return \"base\";\n };\n /**\n * Returns the element template name without prefix. Typically it equals to getType().\n * @see getType\n */\n Base.prototype.getTemplate = function () {\n return this.getType();\n };\n Object.defineProperty(Base.prototype, \"isLoadingFromJson\", {\n /**\n * Returns true if the object is loading from Json at the current moment.\n */\n get: function () {\n return this.isLoadingFromJsonValue;\n },\n enumerable: true,\n configurable: true\n });\n Base.prototype.startLoadingFromJson = function () {\n this.isLoadingFromJsonValue = true;\n };\n Base.prototype.endLoadingFromJson = function () {\n this.isLoadingFromJsonValue = false;\n };\n /**\n * Deserialized the current object into JSON\n */\n Base.prototype.toJSON = function () {\n return new __WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"b\" /* JsonObject */]().toJsonObject(this);\n };\n Base.prototype.locStrsChanged = function () {\n if (!!this.arraysInfo) {\n for (var key in this.arraysInfo) {\n var item = this.arraysInfo[key];\n if (item && item.isItemValues) {\n var arr = this.getPropertyValue(key);\n if (arr && !!Base.itemValueLocStrChanged)\n Base.itemValueLocStrChanged(arr);\n }\n }\n }\n if (!!this.localizableStrings) {\n for (var key in this.localizableStrings) {\n var item = this.getLocalizableString(key);\n if (item)\n item.strChanged();\n }\n }\n };\n /**\n * Returns the property value by name\n * @param name property name\n */\n Base.prototype.getPropertyValue = function (name, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var res = this.getPropertyValueCore(this.propertyHash, name);\n if (this.IsPropertyEmpty(res)) {\n if (defaultValue != null)\n return defaultValue;\n var prop = __WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].findProperty(this.getType(), name);\n var serValue = !!prop && !prop.isCustom ? prop.defaultValue : null;\n if (!this.IsPropertyEmpty(serValue))\n return serValue;\n }\n return res;\n };\n Base.prototype.getPropertyValueCore = function (propertiesHash, name) {\n if (this.getPropertyValueCoreHandler)\n return this.getPropertyValueCoreHandler(propertiesHash, name);\n else\n return propertiesHash[name];\n };\n Base.prototype.geValueFromHash = function () {\n return this.propertyHash[\"value\"];\n };\n Base.prototype.setPropertyValueCore = function (propertiesHash, name, val) {\n if (this.setPropertyValueCoreHandler)\n this.setPropertyValueCoreHandler(propertiesHash, name, val);\n else\n propertiesHash[name] = val;\n };\n Base.prototype.iteratePropertiesHash = function (func) {\n var _this = this;\n var keys = [];\n for (var key in this.propertyHash) {\n keys.push(key);\n }\n keys.forEach(function (key) { return func(_this.propertyHash, key); });\n };\n /**\n * set property value\n * @param name property name\n * @param val new property value\n */\n Base.prototype.setPropertyValue = function (name, val) {\n var oldValue = this.getPropertyValue(name);\n if (oldValue && Array.isArray(oldValue)) {\n if (this.isTwoValueEquals(oldValue, val))\n return;\n var arrayInfo = this.arraysInfo[name];\n this.setArray(oldValue, val, arrayInfo ? arrayInfo.isItemValues : false, arrayInfo ? arrayInfo.onPush : null);\n this.propertyValueChanged(name, oldValue, oldValue);\n }\n else {\n this.setPropertyValueCore(this.propertyHash, name, val);\n if (!this.isTwoValueEquals(oldValue, val)) {\n this.propertyValueChanged(name, oldValue, val);\n }\n }\n };\n Base.prototype.onPropertyValueChangedCallback = function (name, oldValue, newValue) {\n if (!!this[\"survey\"]) {\n this[\"survey\"].onPropertyValueChangedCallback(name, oldValue, newValue);\n }\n };\n Base.prototype.propertyValueChanged = function (name, oldValue, newValue) {\n if (this.isLoadingFromJson)\n return;\n this.onPropertyChanged.fire(this, {\n name: name,\n oldValue: oldValue,\n newValue: newValue\n });\n if (!this.onPropChangeFunctions)\n return;\n for (var i = 0; i < this.onPropChangeFunctions.length; i++) {\n if (this.onPropChangeFunctions[i].name == name)\n this.onPropChangeFunctions[i].func(newValue);\n }\n this.onPropertyValueChangedCallback(name, oldValue, newValue);\n };\n /**\n * Register a function that will be called on a property value changed.\n * @param name the property name\n * @param func the function with no parameters that will be called on property changed.\n * @param key an optional parameter. If there is already a registered function for this property witht the same key, it will be overwritten.\n */\n Base.prototype.registerFunctionOnPropertyValueChanged = function (name, func, key) {\n if (key === void 0) { key = null; }\n if (!this.onPropChangeFunctions) {\n this.onPropChangeFunctions = [];\n }\n if (key) {\n for (var i = 0; i < this.onPropChangeFunctions.length; i++) {\n var item = this.onPropChangeFunctions[i];\n if (item.name == name && item.key == key) {\n item.func = func;\n return;\n }\n }\n }\n this.onPropChangeFunctions.push({ name: name, func: func, key: key });\n };\n /**\n * Register a function that will be called on a property value changed from the names list.\n * @param names the list of properties names\n * @param func the function with no parameters that will be called on property changed.\n * @param key an optional parameter. If there is already a registered function for this property witht the same key, it will be overwritten.\n */\n Base.prototype.registerFunctionOnPropertiesValueChanged = function (names, func, key) {\n if (key === void 0) { key = null; }\n for (var i = 0; i < names.length; i++) {\n this.registerFunctionOnPropertyValueChanged(names[i], func, key);\n }\n };\n /**\n * Unregister notification on property value changed\n * @param name the property name\n * @param key the key with which you have registered the notification for this property. It can be null.\n */\n Base.prototype.unRegisterFunctionOnPropertyValueChanged = function (name, key) {\n if (key === void 0) { key = null; }\n if (!this.onPropChangeFunctions)\n return;\n for (var i = 0; i < this.onPropChangeFunctions.length; i++) {\n var item = this.onPropChangeFunctions[i];\n if (item.name == name && item.key == key) {\n this.onPropChangeFunctions.splice(i, 1);\n return;\n }\n }\n };\n /**\n * Unregister notification on property value changed for all properties in the names list.\n * @param names the list of properties names\n * @param key the key with which you have registered the notification for this property. It can be null.\n */\n Base.prototype.unRegisterFunctionOnPropertiesValueChanged = function (names, key) {\n if (key === void 0) { key = null; }\n for (var i = 0; i < names.length; i++) {\n this.unRegisterFunctionOnPropertyValueChanged(names[i], key);\n }\n };\n Base.prototype.createCustomLocalizableObj = function (name) {\n var locStr = this.getLocalizableString(name);\n if (locStr || !this.getLocale)\n return;\n this.createLocalizableString(name, this);\n };\n Base.prototype.createLocalizableString = function (name, owner, useMarkDown) {\n if (useMarkDown === void 0) { useMarkDown = false; }\n var locStr = new __WEBPACK_IMPORTED_MODULE_1__localizablestring__[\"a\" /* LocalizableString */](owner, useMarkDown);\n if (!this.localizableStrings) {\n this.localizableStrings = {};\n }\n this.localizableStrings[name] = locStr;\n return locStr;\n };\n Base.prototype.getLocalizableString = function (name) {\n return !!this.localizableStrings ? this.localizableStrings[name] : null;\n };\n Base.prototype.getLocalizableStringText = function (name, defaultStr) {\n if (defaultStr === void 0) { defaultStr = \"\"; }\n var locStr = this.getLocalizableString(name);\n if (!locStr)\n return \"\";\n var res = locStr.text;\n return res ? res : defaultStr;\n };\n Base.prototype.setLocalizableStringText = function (name, value) {\n var locStr = this.getLocalizableString(name);\n if (!locStr)\n return;\n var oldValue = locStr.text;\n if (oldValue === value)\n return;\n locStr.text = value;\n this.propertyValueChanged(name, oldValue, value);\n };\n Base.prototype.addUsedLocales = function (locales) {\n if (!!this.localizableStrings) {\n for (var key in this.localizableStrings) {\n var item = this.getLocalizableString(key);\n if (item)\n this.AddLocStringToUsedLocales(item, locales);\n }\n }\n if (!!this.arraysInfo) {\n for (var key in this.arraysInfo) {\n var items = this.getPropertyValue(key);\n if (!items || !items.length)\n continue;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (item && item.addUsedLocales) {\n item.addUsedLocales(locales);\n }\n }\n }\n }\n };\n Base.prototype.AddLocStringToUsedLocales = function (locStr, locales) {\n var locs = locStr.getLocales();\n for (var i = 0; i < locs.length; i++) {\n if (locales.indexOf(locs[i]) < 0) {\n locales.push(locs[i]);\n }\n }\n };\n Base.prototype.createItemValues = function (name) {\n var self = this;\n var result = this.createNewArray(name, function (item) {\n item.locOwner = self;\n });\n this.arraysInfo[name].isItemValues = true;\n return result;\n };\n Base.prototype.notifyArrayChanged = function (ar) {\n !!ar.onArrayChanged && ar.onArrayChanged();\n };\n Base.prototype.createNewArray = function (name, onPush, onRemove) {\n if (onPush === void 0) { onPush = null; }\n if (onRemove === void 0) { onRemove = null; }\n var newArray = new Array();\n this.setPropertyValueCore(this.propertyHash, name, newArray);\n if (!this.arraysInfo) {\n this.arraysInfo = {};\n }\n this.arraysInfo[name] = { onPush: onPush, isItemValues: false };\n var self = this;\n newArray.push = function (value) {\n var result = Object.getPrototypeOf(newArray).push.call(newArray, value);\n if (onPush)\n onPush(value, newArray.length - 1);\n self.propertyValueChanged(name, newArray, newArray);\n self.notifyArrayChanged(newArray);\n return result;\n };\n newArray.unshift = function (value) {\n var result = Object.getPrototypeOf(newArray).unshift.call(newArray, value);\n if (onPush)\n onPush(value, newArray.length - 1);\n self.propertyValueChanged(name, newArray, newArray);\n self.notifyArrayChanged(newArray);\n return result;\n };\n newArray.pop = function () {\n var result = Object.getPrototypeOf(newArray).pop.call(newArray);\n if (onRemove)\n onRemove(result);\n self.propertyValueChanged(name, newArray, newArray);\n self.notifyArrayChanged(newArray);\n return result;\n };\n newArray.splice = function (start, deleteCount) {\n var _a;\n var items = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n items[_i - 2] = arguments[_i];\n }\n if (!start)\n start = 0;\n if (!deleteCount)\n deleteCount = 0;\n var result = (_a = Object.getPrototypeOf(newArray).splice).call.apply(_a, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __spreadArrays */])([newArray,\n start,\n deleteCount], items));\n if (!items)\n items = [];\n if (onRemove && result) {\n for (var i = 0; i < result.length; i++) {\n onRemove(result[i]);\n }\n }\n if (onPush) {\n for (var i = 0; i < items.length; i++) {\n onPush(items[i], start + i);\n }\n }\n self.propertyValueChanged(name, newArray, newArray);\n self.notifyArrayChanged(newArray);\n return result;\n };\n return newArray;\n };\n Base.prototype.getItemValueType = function () {\n return undefined;\n };\n Base.prototype.setArray = function (src, dest, isItemValues, onPush) {\n Object.getPrototypeOf(src).splice.call(src, 0, src.length);\n //src.splice(0, src.length);\n // src.length = 0;\n if (!dest) {\n this.notifyArrayChanged(src);\n return;\n }\n for (var i = 0; i < dest.length; i++) {\n var item = dest[i];\n if (isItemValues) {\n if (!!Base.createItemValue) {\n item = Base.createItemValue(item, this.getItemValueType());\n }\n }\n Object.getPrototypeOf(src).push.call(src, item);\n //src[\"origionalPush\"].apply(src, [item]);\n if (onPush)\n onPush(src[i]);\n }\n this.notifyArrayChanged(src);\n };\n Base.prototype.isTwoValueEquals = function (x, y, caseInSensitive) {\n if (caseInSensitive === void 0) { caseInSensitive = false; }\n if (caseInSensitive) {\n x = this.getValueInLowCase(x);\n y = this.getValueInLowCase(y);\n }\n return __WEBPACK_IMPORTED_MODULE_2__helpers__[\"a\" /* Helpers */].isTwoValueEquals(x, y);\n };\n Base.prototype.getValueInLowCase = function (val) {\n if (!!val && typeof val == \"string\")\n return val.toLowerCase();\n return val;\n };\n return Base;\n}());\n\nvar SurveyError = /** @class */ (function () {\n function SurveyError(text, errorOwner) {\n if (text === void 0) { text = null; }\n if (errorOwner === void 0) { errorOwner = null; }\n this.text = text;\n this.errorOwner = errorOwner;\n this.visible = true;\n }\n Object.defineProperty(SurveyError.prototype, \"locText\", {\n get: function () {\n if (!this.locTextValue) {\n this.locTextValue = new __WEBPACK_IMPORTED_MODULE_1__localizablestring__[\"a\" /* LocalizableString */](this.errorOwner, true);\n this.locTextValue.text = this.getText();\n }\n return this.locTextValue;\n },\n enumerable: true,\n configurable: true\n });\n SurveyError.prototype.getText = function () {\n var res = this.text;\n if (!res)\n res = this.getDefaultText();\n if (!!this.errorOwner) {\n res = this.errorOwner.getErrorCustomText(res, this);\n }\n return res;\n };\n SurveyError.prototype.getErrorType = function () {\n return \"base\";\n };\n SurveyError.prototype.getDefaultText = function () {\n return \"\";\n };\n return SurveyError;\n}());\n\nvar SurveyElement = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyElement, _super);\n function SurveyElement(name) {\n var _this = _super.call(this) || this;\n _this.selectedElementInDesignValue = _this;\n _this.name = name;\n _this.createNewArray(\"errors\");\n var self = _this;\n _this.registerFunctionOnPropertyValueChanged(\"isReadOnly\", function () {\n self.onReadOnlyChanged();\n });\n return _this;\n }\n SurveyElement.ScrollElementToTop = function (elementId) {\n if (!elementId)\n return false;\n var el = document.getElementById(elementId);\n if (!el || !el.scrollIntoView)\n return false;\n var elemTop = el.getBoundingClientRect().top;\n if (elemTop < 0)\n el.scrollIntoView();\n return elemTop < 0;\n };\n SurveyElement.GetFirstNonTextElement = function (elements) {\n if (!elements || !elements.length)\n return;\n for (var i = 0; i < elements.length; i++) {\n if (elements[i].nodeName != \"#text\" && elements[i].nodeName != \"#comment\")\n return elements[i];\n }\n return null;\n };\n SurveyElement.FocusElement = function (elementId) {\n if (!elementId)\n return false;\n var el = document.getElementById(elementId);\n if (el) {\n el.focus();\n return true;\n }\n return false;\n };\n SurveyElement.prototype.setSurveyImpl = function (value) {\n this.surveyImplValue = value;\n if (!this.surveyImplValue)\n return;\n this.surveyDataValue = this.surveyImplValue.geSurveyData();\n this.surveyValue = this.surveyImplValue.getSurvey();\n this.textProcessorValue = this.surveyImplValue.getTextProcessor();\n this.onSetData();\n };\n Object.defineProperty(SurveyElement.prototype, \"surveyImpl\", {\n get: function () {\n return this.surveyImplValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"data\", {\n get: function () {\n return this.surveyDataValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"survey\", {\n /**\n * Returns the survey object.\n */\n get: function () {\n if (!!this.surveyValue)\n return this.surveyValue;\n if (!!this.surveyImplValue) {\n this.surveyValue = this.surveyImplValue.getSurvey();\n }\n return this.surveyValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"isDesignMode\", {\n /**\n * Returns true if the question in design mode right now.\n */\n get: function () {\n return !!this.survey && this.survey.isDesignMode;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"areInvisibleElementsShowing\", {\n get: function () {\n return !!this.survey && this.survey.areInvisibleElementsShowing;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"isVisible\", {\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"isReadOnly\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"readOnly\", {\n /**\n * Set it to true to make an element question/panel/page readonly.\n * @see enableIf\n * @see isReadOnly\n */\n get: function () {\n return this.getPropertyValue(\"readOnly\", false);\n },\n set: function (val) {\n if (this.readOnly == val)\n return;\n this.setPropertyValue(\"readOnly\", val);\n if (!this.isLoadingFromJson) {\n this.setPropertyValue(\"isReadOnly\", this.isReadOnly);\n }\n },\n enumerable: true,\n configurable: true\n });\n SurveyElement.prototype.onReadOnlyChanged = function () {\n if (!!this.readOnlyChangedCallback) {\n this.readOnlyChangedCallback();\n }\n };\n Object.defineProperty(SurveyElement.prototype, \"isLoadingFromJson\", {\n get: function () {\n if (this.isLoadingFromJsonValue)\n return true;\n return this.survey ? this.survey.isLoadingFromJson : false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"name\", {\n get: function () {\n return this.getPropertyValue(\"name\", \"\");\n },\n set: function (val) {\n var oldValue = this.name;\n this.setPropertyValue(\"name\", val);\n if (!this.isLoadingFromJson && !!oldValue) {\n this.onNameChanged(oldValue);\n }\n },\n enumerable: true,\n configurable: true\n });\n SurveyElement.prototype.onNameChanged = function (oldValue) { };\n Object.defineProperty(SurveyElement.prototype, \"errors\", {\n /**\n * The list of errors. It is created by callig hasErrors functions\n * @see hasErrors\n */\n get: function () {\n return this.getPropertyValue(\"errors\");\n },\n set: function (val) {\n this.setPropertyValue(\"errors\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElement.prototype, \"containsErrors\", {\n /**\n * Returns true if a question or a container (panel/page) or their chidren have an error.\n * The value can be out of date. hasErrors function should be called to get the correct value.\n */\n get: function () {\n return this.getPropertyValue(\"containsErrors\", false);\n },\n enumerable: true,\n configurable: true\n });\n SurveyElement.prototype.updateContainsErrors = function () {\n this.setPropertyValue(\"containsErrors\", this.getContainsErrors());\n };\n SurveyElement.prototype.getContainsErrors = function () {\n return this.errors.length > 0;\n };\n SurveyElement.prototype.getElementsInDesign = function (includeHidden) {\n if (includeHidden === void 0) { includeHidden = false; }\n return [];\n };\n Object.defineProperty(SurveyElement.prototype, \"selectedElementInDesign\", {\n get: function () {\n return this.selectedElementInDesignValue;\n },\n set: function (val) {\n this.selectedElementInDesignValue = val;\n },\n enumerable: true,\n configurable: true\n });\n SurveyElement.prototype.updateCustomWidgets = function () { };\n SurveyElement.prototype.onSurveyLoad = function () { };\n SurveyElement.prototype.onFirstRendering = function () { };\n SurveyElement.prototype.endLoadingFromJson = function () {\n _super.prototype.endLoadingFromJson.call(this);\n if (!this.survey) {\n this.onSurveyLoad();\n }\n };\n SurveyElement.prototype.setVisibleIndex = function (index) {\n return 0;\n };\n Object.defineProperty(SurveyElement.prototype, \"isPage\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n SurveyElement.prototype.delete = function () { };\n SurveyElement.prototype.removeSelfFromList = function (list) {\n if (!list || !Array.isArray(list))\n return;\n var index = list.indexOf(this);\n if (index > -1) {\n list.splice(index, 1);\n }\n };\n Object.defineProperty(SurveyElement.prototype, \"textProcessor\", {\n get: function () {\n return this.textProcessorValue;\n },\n enumerable: true,\n configurable: true\n });\n SurveyElement.prototype.getProcessedHtml = function (html) {\n if (!html || !this.textProcessor)\n return html;\n return this.textProcessor.processText(html, true);\n };\n SurveyElement.prototype.onSetData = function () { };\n SurveyElement.prototype.getPage = function (parent) {\n while (parent && parent.parent)\n parent = parent.parent;\n if (parent && parent.getType() == \"page\")\n return parent;\n return null;\n };\n SurveyElement.prototype.moveToBase = function (parent, container, insertBefore) {\n if (insertBefore === void 0) { insertBefore = null; }\n if (!container)\n return false;\n parent.removeElement(this);\n var index = -1;\n if (__WEBPACK_IMPORTED_MODULE_2__helpers__[\"a\" /* Helpers */].isNumber(insertBefore)) {\n index = parseInt(insertBefore);\n }\n if (index == -1 && !!insertBefore && !!insertBefore.getType) {\n index = container.indexOf(insertBefore);\n }\n container.addElement(this, index);\n return true;\n };\n SurveyElement.prototype.setPage = function (parent, val) {\n var oldPage = this.getPage(parent);\n if (oldPage === val)\n return;\n if (parent)\n parent.removeElement(this);\n if (val) {\n val.addElement(this, -1);\n }\n };\n SurveyElement.copyObject = function (dst, src) {\n for (var key in src) {\n var source = src[key];\n if (typeof source === \"object\") {\n source = {};\n this.copyObject(source, src[key]);\n }\n dst[key] = source;\n }\n };\n SurveyElement.prototype.copyCssClasses = function (dest, source) {\n if (!source)\n return;\n if (typeof source === \"string\" || source instanceof String) {\n dest[\"root\"] = source;\n }\n else {\n SurveyElement.copyObject(dest, source);\n }\n };\n return SurveyElement;\n}(Base));\n\nvar Event = /** @class */ (function () {\n function Event() {\n }\n Object.defineProperty(Event.prototype, \"isEmpty\", {\n get: function () {\n return this.callbacks == null || this.callbacks.length == 0;\n },\n enumerable: true,\n configurable: true\n });\n Event.prototype.fire = function (sender, options) {\n if (this.callbacks == null)\n return;\n for (var i = 0; i < this.callbacks.length; i++) {\n var callResult = this.callbacks[i](sender, options);\n }\n };\n Event.prototype.clear = function () {\n this.callbacks = [];\n };\n Event.prototype.add = function (func) {\n if (this.hasFunc(func))\n return;\n if (this.callbacks == null) {\n this.callbacks = new Array();\n }\n this.callbacks.push(func);\n };\n Event.prototype.remove = function (func) {\n if (this.hasFunc(func)) {\n var index = this.callbacks.indexOf(func, 0);\n this.callbacks.splice(index, 1);\n }\n };\n Event.prototype.hasFunc = function (func) {\n if (this.callbacks == null)\n return false;\n return this.callbacks.indexOf(func, 0) > -1;\n };\n return Event;\n}());\n\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* unused harmony export QuestionVue */\n\n\n\nvar QuestionVue = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionVue, _super);\n function QuestionVue() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.innerValue = null;\n return _this;\n }\n QuestionVue.prototype.changeQuestion = function (new_val, old_val) {\n this.innerValue = null;\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], QuestionVue.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], QuestionVue.prototype, \"css\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Watch\"])(\"question\")\n ], QuestionVue.prototype, \"changeQuestion\", null);\n QuestionVue = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], QuestionVue);\n return QuestionVue;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n/* harmony default export */ __webpack_exports__[\"a\"] = QuestionVue;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return settings; });\n/**\n * Global survey settings\n */\nvar settings = {\n /**\n * The prefix that uses to store the question comment, as {questionName} + {commentPrefix}.\n * The default\n */\n commentPrefix: \"-Comment\",\n /**\n * Encode parameter on calling restfull web API\n */\n webserviceEncodeParameters: true,\n /**\n * SurveyJS web service API url\n */\n surveyServiceUrl: \"https://dxsurveyapi.azurewebsites.net/api/Survey\",\n /**\n * separator that can allow to set value and text of ItemValue object in one string as: \"value|text\"\n */\n itemValueSeparator: \"|\",\n /**\n * default locale name for localizable strings that uses during serialization, {\"default\": \"My text\", \"de\": \"Mein Text\"}\n */\n defaultLocaleName: \"default\",\n /**\n * Default row name for matrix (single choice)\n */\n matrixDefaultRowName: \"default\",\n /**\n * Default cell type for dropdown and dynamic matrices\n */\n matrixDefaultCellType: \"dropdown\",\n /**\n * Total value postfix for dropdown and dynamic matrices. The total value stores as: {matrixName} + {postfix}\n */\n matrixTotalValuePostFix: \"-total\",\n /**\n * Maximum row count in dynamic matrix\n */\n matrixMaximumRowCount: 1000,\n /**\n * Maximum panel count in dynamic panel\n */\n panelMaximumPanelCount: 100,\n /**\n * Maximum rate value count in rating question\n */\n ratingMaximumRateValueCount: 20,\n /**\n * Disable the question while choices are getting from the web service\n */\n disableOnGettingChoicesFromWeb: false\n};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__validator__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__textPreProcessor__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__localizablestring__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__defaultCss_cssstandard__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__questionCustomWidgets__ = __webpack_require__(72);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Question; });\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A base class for all questions.\n */\nvar Question = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Question, _super);\n function Question(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.conditionRunner = null;\n _this.isCustomWidgetRequested = false;\n _this.customWidgetData = { isNeedRender: true };\n _this.isReadyValue = true;\n /**\n * The event is fired when isReady property of question is changed.\n *
options.question - the question\n *
options.isReady - current value of isReady\n *
options.oldIsReady - old value of isReady\n */\n _this.onReadyChanged = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n _this._displayValue = \"\";\n _this.isRunningValidatorsValue = false;\n _this.isValueChangedInSurvey = false;\n _this.locNotificationInData = false;\n //ILocalizableOwner\n _this.locOwner = null;\n _this.id = Question.getQuestionId();\n _this.onCreating();\n var self = _this;\n _this.createNewArray(\"validators\", function (validator) {\n validator.errorOwner = self;\n });\n var locTitleValue = _this.createLocalizableString(\"title\", _this, true);\n locTitleValue.onGetTextCallback = function (text) {\n var res = self.calcFullTitle(text);\n if (!self.survey)\n return res;\n return self.survey.getUpdatedQuestionTitle(this, res);\n };\n _this.locProcessedTitle = new __WEBPACK_IMPORTED_MODULE_8__localizablestring__[\"a\" /* LocalizableString */](_this, true);\n _this.locProcessedTitle.sharedData = locTitleValue;\n _this.createLocalizableString(\"description\", _this, true);\n var locCommentText = _this.createLocalizableString(\"commentText\", _this, true);\n locCommentText.onGetTextCallback = function (text) {\n return !!text ? text : __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"otherItemText\");\n };\n _this.createLocalizableString(\"requiredErrorText\", _this);\n _this.registerFunctionOnPropertyValueChanged(\"width\", function () {\n if (!!self.parent) {\n self.parent.elementWidthChanged(self);\n }\n });\n _this.registerFunctionOnPropertiesValueChanged([\"indent\", \"rightIndent\"], function () {\n self.onIndentChanged();\n });\n _this.registerFunctionOnPropertiesValueChanged([\"hasComment\", \"hasOther\"], function () {\n self.initCommentFromSurvey();\n });\n return _this;\n }\n Question.getQuestionId = function () {\n return \"sq_\" + Question.questionCounter++;\n };\n Question.prototype.getValueName = function () {\n if (!!this.valueName)\n return this.valueName.toString();\n return this.name;\n };\n Object.defineProperty(Question.prototype, \"valueName\", {\n /**\n * Use this property if you want to store the question result in the name different from the question name.\n * Question name should be unique in the survey and valueName could be not unique. It allows to share data between several questions with the same valueName.\n * The library set the value automatically if the question.name property is not valid. For example, if it contains the period '.' symbol.\n * In this case if you set the question.name property to 'x.y' then the valueName becomes 'x y'.\n */\n get: function () {\n return this.getPropertyValue(\"valueName\", \"\");\n },\n set: function (val) {\n var oldValueName = this.getValueName();\n this.setPropertyValue(\"valueName\", val);\n this.onValueNameChanged(oldValueName);\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.onValueNameChanged = function (oldValue) {\n if (!this.survey)\n return;\n this.survey.questionRenamed(this, this.name, !!oldValue ? oldValue : this.name);\n this.initDataFromSurvey();\n };\n Question.prototype.onNameChanged = function (oldValue) {\n if (!this.survey)\n return;\n this.survey.questionRenamed(this, oldValue, this.valueName ? this.valueName : oldValue);\n };\n Object.defineProperty(Question.prototype, \"isReady\", {\n get: function () {\n return this.isReadyValue;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Get is question ready to use\n */\n Question.prototype.choicesLoaded = function () { };\n Object.defineProperty(Question.prototype, \"page\", {\n /**\n * Get/set the page where the question is located.\n */\n get: function () {\n return this.getPage(this.parent);\n },\n set: function (val) {\n this.setPage(this.parent, val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isPanel\", {\n /**\n * Always returns false.\n */\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getPanel = function () {\n return null;\n };\n Question.prototype.delete = function () {\n if (!!this.parent) {\n this.removeSelfFromList(this.parent.elements);\n }\n };\n Object.defineProperty(Question.prototype, \"isFlowLayout\", {\n get: function () {\n return this.getLayoutType() === \"flow\";\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getLayoutType = function () {\n if (!!this.parent)\n return this.parent.getChildrenLayoutType();\n return \"row\";\n };\n Question.prototype.isLayoutTypeSupported = function (layoutType) {\n return layoutType !== \"flow\";\n };\n Object.defineProperty(Question.prototype, \"visible\", {\n /**\n * Use it to get/set the question visibility.\n * @see visibleIf\n */\n get: function () {\n return this.getPropertyValue(\"visible\", true);\n },\n set: function (val) {\n if (val == this.visible)\n return;\n this.setPropertyValue(\"visible\", val);\n this.onVisibleChanged();\n if (this.survey) {\n this.survey.questionVisibilityChanged(this, this.visible);\n }\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.onVisibleChanged = function () {\n this.setPropertyValue(\"isVisible\", this.isVisible);\n if (!this.isVisible && this.errors && this.errors.length > 0) {\n this.errors = [];\n }\n };\n Object.defineProperty(Question.prototype, \"useDisplayValuesInTitle\", {\n /**\n * Use it to choose how other question values will be rendered in title if referenced in {}.\n */\n get: function () {\n return this.getPropertyValue(\"useDisplayValuesInTitle\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"useDisplayValuesInTitle\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"visibleIf\", {\n /**\n * An expression that returns true or false. If it returns true the Question becomes visible and if it returns false the Question becomes invisible. The library runs the expression on survey start and on changing a question value. If the property is empty then visible property is used.\n * @see visible\n */\n get: function () {\n return this.getPropertyValue(\"visibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"visibleIf\", val);\n this.runConditions();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isVisible\", {\n /**\n * Returns true if the question is visible or survey is in design mode right now.\n */\n get: function () {\n return this.visible || this.areInvisibleElementsShowing;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"visibleIndex\", {\n /**\n * Returns the visible index of the question in the survey. It can be from 0 to all visible questions count - 1\n */\n get: function () {\n return this.getPropertyValue(\"visibleIndex\", -1);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isAllowTitleLeft\", {\n /**\n * Returns true if the question may have a title located on the left\n */\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the type of the object as a string as it represents in the json.\n */\n Question.prototype.getType = function () {\n return \"question\";\n };\n /**\n * Move question to a new container Page/Panel. Add as a last element if insertBefore parameter is not used or inserted into the given index,\n * if insert parameter is number, or before the given element, if the insertBefore parameter is a question or panel\n * @param container Page or Panel to where a question is relocated.\n * @param insertBefore Use it if you want to set the question to a specific position. You may use a number (use 0 to insert int the beginning) or element, if you want to insert before this element.\n */\n Question.prototype.moveTo = function (container, insertBefore) {\n if (insertBefore === void 0) { insertBefore = null; }\n return this.moveToBase(this.parent, container, insertBefore);\n };\n Question.prototype.runConditions = function () {\n if (this.data && !this.isLoadingFromJson && !this.isDesignMode) {\n this.runCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());\n this.locStrsChanged();\n }\n };\n Question.prototype.setSurveyImpl = function (value) {\n _super.prototype.setSurveyImpl.call(this, value);\n if (this.survey && this.survey.isDesignMode && !this.isDesignMode) {\n this.onVisibleChanged();\n }\n this.runConditions();\n };\n Question.prototype.getDataFilteredValues = function () {\n return !!this.data ? this.data.getFilteredValues() : null;\n };\n Question.prototype.getDataFilteredProperties = function () {\n return !!this.data ? this.data.getFilteredProperties() : null;\n };\n Object.defineProperty(Question.prototype, \"parent\", {\n /**\n * A parent element. It can be panel or page.\n */\n get: function () {\n return this.getPropertyValue(\"parent\", null);\n },\n set: function (val) {\n this.setPropertyValue(\"parent\", val);\n this.onParentChanged();\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.onParentChanged = function () { };\n Object.defineProperty(Question.prototype, \"hasTitle\", {\n /**\n * Returns false if the question doesn't have a title property, for example: QuestionHtmlModel, or titleLocation property equals to \"hidden\"\n * @see titleLocation\n */\n get: function () {\n return this.getTitleLocation() !== \"hidden\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"titleLocation\", {\n /**\n * Set this property different from \"default\" to set the specific question title location for this panel/page.\n * @see SurveyModel.questionTitleLocation\n */\n get: function () {\n return this.getPropertyValue(\"titleLocation\");\n },\n set: function (value) {\n var isVisibilityChanged = this.titleLocation == \"hidden\" || value == \"hidden\";\n this.setPropertyValue(\"titleLocation\", value.toLowerCase());\n if (isVisibilityChanged && this.survey) {\n this.survey.questionVisibilityChanged(this, this.visible);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Return the title location based on question titleLocation property and QuestionTitleLocation of it's parents\n * @see titleLocation\n * @see PanelModelBase.QuestionTitleLocation\n * @see SurveyModel.QuestionTitleLocation\n */\n Question.prototype.getTitleLocation = function () {\n if (this.isFlowLayout)\n return \"hidden\";\n var location = this.getTitleLocationCore();\n if (location === \"left\" && !this.isAllowTitleLeft)\n location = \"top\";\n return location;\n };\n Question.prototype.getTitleLocationCore = function () {\n if (this.titleLocation !== \"default\")\n return this.titleLocation;\n if (!!this.parent)\n return this.parent.getQuestionTitleLocation();\n if (!!this.survey)\n return this.survey.questionTitleLocation;\n return \"top\";\n };\n Object.defineProperty(Question.prototype, \"hasTitleOnLeft\", {\n get: function () {\n return this.hasTitle && this.getTitleLocation() === \"left\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasTitleOnTop\", {\n get: function () {\n return this.hasTitle && this.getTitleLocation() === \"top\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasTitleOnBottom\", {\n get: function () {\n return this.hasTitle && this.getTitleLocation() === \"bottom\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasTitleOnLeftTop\", {\n get: function () {\n if (!this.hasTitle)\n return false;\n var location = this.getTitleLocation();\n return location === \"left\" || location === \"top\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"errorLocation\", {\n get: function () {\n return this.survey ? this.survey.questionErrorLocation : \"top\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasInput\", {\n /**\n * Returns false if the question doesn't have an input element, for example: QuestionHtmlModel\n */\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"inputId\", {\n get: function () {\n return this.id + \"i\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"title\", {\n /**\n * Question title. Use survey questionTitleTemplate property to change the title question is rendered. If it is empty, then question name property is used.\n * @see SurveyModel.questionTitleTemplate\n */\n get: function () {\n return this.getLocalizableStringText(\"title\", this.name);\n },\n set: function (val) {\n this.setLocalizableStringText(\"title\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"locTitle\", {\n get: function () {\n return this.getLocalizableString(\"title\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"description\", {\n /**\n * Question description. It renders under question title by using smaller font. Unlike the title, description can be empty.\n * @see title\n */\n get: function () {\n return this.getLocalizableStringText(\"description\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"description\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"locDescription\", {\n get: function () {\n return this.getLocalizableString(\"description\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"descriptionLocation\", {\n /**\n * Question description location. By default, value is \"default\" and it depends on survey questionDescriptionLocation property\n * You may change it to \"underInput\" to render it under question input or \"underTitle\" to rendered it under title.\n * @see description\n * @see Survey.questionDescriptionLocation\n */\n get: function () {\n return this.getPropertyValue(\"descriptionLocation\");\n },\n set: function (val) {\n this.setPropertyValue(\"descriptionLocation\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasDescriptionUnderTitle\", {\n get: function () {\n return this.getDescriptionLocation() == \"underTitle\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasDescriptionUnderInput\", {\n get: function () {\n return this.getDescriptionLocation() == \"underInput\";\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getDescriptionLocation = function () {\n if (this.descriptionLocation !== \"default\")\n return this.descriptionLocation;\n return !!this.survey\n ? this.survey.questionDescriptionLocation\n : \"underTitle\";\n };\n Object.defineProperty(Question.prototype, \"requiredErrorText\", {\n /**\n * The custom text that will be shown on required error. Use this property, if you do not want to show the default text.\n */\n get: function () {\n return this.getLocalizableStringText(\"requiredErrorText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"requiredErrorText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"locRequiredErrorText\", {\n get: function () {\n return this.getLocalizableString(\"requiredErrorText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"commentText\", {\n /**\n * Use it to get or set the comment value.\n */\n get: function () {\n return this.getLocalizableStringText(\"commentText\", __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"otherItemText\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"commentText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"locCommentText\", {\n get: function () {\n return this.getLocalizableString(\"commentText\");\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns a copy of question errors survey. For some questions like matrix and panel dynamic it includes the errors of nested questions.\n */\n Question.prototype.getAllErrors = function () {\n return this.errors.slice();\n };\n Object.defineProperty(Question.prototype, \"customWidget\", {\n /**\n * The link to the custom widget.\n */\n get: function () {\n if (!this.isCustomWidgetRequested && !this.customWidgetValue) {\n this.isCustomWidgetRequested = true;\n this.updateCustomWidget();\n }\n return this.customWidgetValue;\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.updateCustomWidget = function () {\n this.customWidgetValue = __WEBPACK_IMPORTED_MODULE_11__questionCustomWidgets__[\"b\" /* CustomWidgetCollection */].Instance.getCustomWidget(this);\n };\n Object.defineProperty(Question.prototype, \"processedTitle\", {\n /**\n * Returns the rendred question title.\n */\n get: function () {\n var res = this.locProcessedTitle.textOrHtml;\n return res ? res : this.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"fullTitle\", {\n /**\n * Returns the title after processing the question template.\n * @see SurveyModel.questionTitleTemplate\n */\n get: function () {\n return this.locTitle.renderedHtml;\n /*\n var res = this.calcFullTitle();\n if (!this.survey) return res;\n return this.survey.getUpdatedQuestionTitle(this, res);\n */\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getQuestionTitleTemplate = function () {\n if (this.questionTitleTemplateCallback)\n return this.questionTitleTemplateCallback();\n return !!this.survey ? this.survey.getQuestionTitleTemplate() : null;\n };\n Question.prototype.calcFullTitle = function (text) {\n var titleTemplate = this.getQuestionTitleTemplate();\n if (titleTemplate) {\n if (!this.textPreProcessor) {\n var self = this;\n this.textPreProcessor = new __WEBPACK_IMPORTED_MODULE_7__textPreProcessor__[\"a\" /* TextPreProcessor */]();\n this.textPreProcessor.onProcess = function (textValue) {\n self.getProcessedTextValue(textValue);\n };\n }\n return this.textPreProcessor.process(titleTemplate, this.useDisplayValuesInTitle);\n }\n if (!text) {\n text = this.name;\n }\n return text;\n };\n Object.defineProperty(Question.prototype, \"startWithNewLine\", {\n /**\n * The Question renders on the new line if the property is true. If the property is false, the question tries to render on the same line/row with a previous question/panel.\n */\n get: function () {\n return this.getPropertyValue(\"startWithNewLine\", true);\n },\n set: function (val) {\n if (this.startWithNewLine == val)\n return;\n this.setPropertyValue(\"startWithNewLine\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"cssClasses\", {\n /**\n * Returns all css classes that used for rendering the question. You may use survey.updateQuestionCssClasses event to override css classes for a question.\n * @see SurveyModel.updateQuestionCssClasses\n */\n get: function () {\n var surveyCss = this.css;\n var classes = { error: {} };\n this.copyCssClasses(classes, surveyCss.question);\n this.copyCssClasses(classes.error, surveyCss.error);\n this.updateCssClasses(classes, surveyCss);\n if (this.survey) {\n this.survey.updateQuestionCssClasses(this, classes);\n }\n return classes;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"cssMainRoot\", {\n get: function () {\n var classes = this.cssClasses;\n var res = this.isFlowLayout && !this.isDesignMode\n ? classes.flowRoot\n : classes.mainRoot;\n if (!this.isFlowLayout && this.getTitleLocation() == \"left\") {\n res += \" \" + classes.titleLeftRoot;\n }\n if (this.errors.length > 0) {\n res += \" \" + classes.hasError;\n }\n return res;\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getRootCss = function (classes) {\n return classes.question.root;\n };\n Question.prototype.updateCssClasses = function (res, surveyCss) {\n if (this.isRequired) {\n if (!!surveyCss.question.required) {\n res.root = (res.root ? res.root + \" \" : \"\") + objCss;\n }\n if (surveyCss.question.titleRequired) {\n res.title += \" \" + surveyCss.question.titleRequired;\n }\n }\n var objCss = surveyCss[this.getType()];\n if (objCss === undefined || objCss === null)\n return;\n if (typeof objCss === \"string\" || objCss instanceof String) {\n res.root = (res.root ? res.root + \" \" : \"\") + objCss;\n }\n else {\n for (var key in objCss) {\n res[key] = objCss[key];\n }\n }\n };\n Object.defineProperty(Question.prototype, \"css\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_10__defaultCss_cssstandard__[\"a\" /* surveyCss */].getCss();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"width\", {\n /**\n * Use it to set the specific width to the question like css style (%, px, em etc).\n */\n get: function () {\n return this.getPropertyValue(\"width\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"width\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"renderWidth\", {\n /**\n * The rendered width of the question.\n */\n get: function () {\n return this.getPropertyValue(\"renderWidth\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"renderWidth\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"indent\", {\n /**\n * Set it different from 0 to increase the left padding.\n */\n get: function () {\n return this.getPropertyValue(\"indent\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"indent\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"rightIndent\", {\n /**\n * Set it different from 0 to increase the right padding.\n */\n get: function () {\n return this.getPropertyValue(\"rightIndent\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"rightIndent\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"paddingLeft\", {\n get: function () {\n return this.getPropertyValue(\"paddintLeft\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"paddintLeft\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"paddingRight\", {\n get: function () {\n return this.getPropertyValue(\"paddingRight\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"paddingRight\", val);\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.onIndentChanged = function () {\n this.paddingLeft = this.getIndentSize(this.indent);\n this.paddingRight = this.getIndentSize(this.rightIndent);\n };\n Question.prototype.getIndentSize = function (indent) {\n if (indent < 1)\n return \"\";\n return indent * this.cssClasses.indent + \"px\";\n };\n /**\n * Move the focus to the input of this question.\n * @param onError set this parameter to true, to focus the input with the first error, other wise the first input will be focused.\n */\n Question.prototype.focus = function (onError) {\n if (onError === void 0) { onError = false; }\n __WEBPACK_IMPORTED_MODULE_3__base__[\"c\" /* SurveyElement */].ScrollElementToTop(this.id);\n var id = !onError\n ? this.getFirstInputElementId()\n : this.getFirstErrorInputElementId();\n if (__WEBPACK_IMPORTED_MODULE_3__base__[\"c\" /* SurveyElement */].FocusElement(id)) {\n this.fireCallback(this.focusCallback);\n }\n };\n Question.prototype.fireCallback = function (callback) {\n if (callback)\n callback();\n };\n Question.prototype.getOthersMaxLength = function () {\n if (!this.survey)\n return null;\n return this.survey.maxOthersLength > 0 ? this.survey.maxOthersLength : null;\n };\n Question.prototype.onCreating = function () { };\n Question.prototype.getFirstInputElementId = function () {\n return this.inputId;\n };\n Question.prototype.getFirstErrorInputElementId = function () {\n return this.getFirstInputElementId();\n };\n Question.prototype.getProcessedTextValue = function (textValue) {\n var name = textValue.name.toLocaleLowerCase();\n textValue.isExists =\n Object.keys(Question.TextPreprocessorValuesMap).indexOf(name) !== -1 ||\n this[textValue.name] !== undefined;\n textValue.value = this[Question.TextPreprocessorValuesMap[name] || textValue.name];\n };\n Question.prototype.supportComment = function () {\n return false;\n };\n Question.prototype.supportOther = function () {\n return false;\n };\n Object.defineProperty(Question.prototype, \"isRequired\", {\n /**\n * Set this property to true, to make the question a required. If a user doesn't answer the question then a validation error will be generated.\n */\n get: function () {\n return this.getPropertyValue(\"isRequired\", false);\n },\n set: function (val) {\n if (this.isRequired == val)\n return;\n this.setPropertyValue(\"isRequired\", val);\n if (!this.isLoadingFromJson) {\n this.locTitle.onChanged();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"requiredIf\", {\n /**\n * An expression that returns true or false. If it returns true the Question becomes required and an end-user has to answer it.\n * If it returns false the Question then an end-user may not answer it the Question maybe empty.\n * The library runs the expression on survey start and on changing a question value. If the property is empty then isRequired property is used.\n * @see isRequired\n */\n get: function () {\n return this.getPropertyValue(\"requiredIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"requiredIf\", val);\n this.runConditions();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasComment\", {\n /**\n * Set it to true, to add a comment for the question.\n */\n get: function () {\n return this.getPropertyValue(\"hasComment\", false);\n },\n set: function (val) {\n if (!this.supportComment())\n return;\n this.setPropertyValue(\"hasComment\", val);\n if (this.hasComment)\n this.hasOther = false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"id\", {\n /**\n * The unique identificator. It is generated automatically.\n */\n get: function () {\n return this.getPropertyValue(\"id\");\n },\n set: function (val) {\n this.setPropertyValue(\"id\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasOther\", {\n get: function () {\n return this.getPropertyValue(\"hasOther\", false);\n },\n set: function (val) {\n if (!this.supportOther() || this.hasOther == val)\n return;\n this.setPropertyValue(\"hasOther\", val);\n if (this.hasOther)\n this.hasComment = false;\n this.hasOtherChanged();\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.hasOtherChanged = function () { };\n Object.defineProperty(Question.prototype, \"requireUpdateCommentValue\", {\n get: function () {\n return this.hasComment || this.hasOther;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isReadOnly\", {\n /**\n * Retuns true if readOnly property is true or survey is in display mode or parent panel/page is readOnly.\n * @see SurveyModel.model\n * @see readOnly\n */\n get: function () {\n var isParentReadOnly = !!this.parent && this.parent.isReadOnly;\n var isSurveyReadOnly = !!this.survey && this.survey.isDisplayMode;\n return this.readOnly || isParentReadOnly || isSurveyReadOnly;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"enableIf\", {\n /**\n * An expression that returns true or false. If it returns false the Question becomes read only and an end-user will not able to answer on the qustion. The library runs the expression on survey start and on changing a question value. If the property is empty then readOnly property is used.\n * @see readOnly\n * @see isReadOnly\n */\n get: function () {\n return this.getPropertyValue(\"enableIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"enableIf\", val);\n this.runConditions();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Run visibleIf and enableIf expressions. If visibleIf or/and enabledIf are not empty, then the results of performing the expression (true or false) set to the visible/readOnly properties.\n * @param values Typically survey results\n * @see visible\n * @see visibleIf\n * @see readOnly\n * @see enableIf\n */\n Question.prototype.runCondition = function (values, properties) {\n if (this.isDesignMode)\n return;\n if (!properties)\n properties = {};\n properties[\"question\"] = this;\n if (!this.areInvisibleElementsShowing) {\n this.runVisibleIfCondition(values, properties);\n }\n this.runEnableIfCondition(values, properties);\n this.runRequiredIfCondition(values, properties);\n };\n Question.prototype.runVisibleIfCondition = function (values, properties) {\n var _this = this;\n if (!this.visibleIf)\n return;\n if (!this.conditionRunner)\n this.conditionRunner = new __WEBPACK_IMPORTED_MODULE_9__conditions__[\"b\" /* ConditionRunner */](this.visibleIf);\n this.conditionRunner.expression = this.visibleIf;\n this.conditionRunner.onRunComplete = function (res) {\n _this.visible = res;\n };\n this.conditionRunner.run(values, properties);\n };\n Question.prototype.runEnableIfCondition = function (values, properties) {\n var _this = this;\n if (!this.enableIf)\n return;\n if (!this.conditionEnabelRunner)\n this.conditionEnabelRunner = new __WEBPACK_IMPORTED_MODULE_9__conditions__[\"b\" /* ConditionRunner */](this.enableIf);\n this.conditionEnabelRunner.expression = this.enableIf;\n this.conditionEnabelRunner.onRunComplete = function (res) {\n _this.readOnly = !res;\n };\n this.conditionEnabelRunner.run(values, properties);\n };\n Question.prototype.runRequiredIfCondition = function (values, properties) {\n var _this = this;\n if (!this.requiredIf)\n return;\n if (!this.conditionRequiredRunner)\n this.conditionRequiredRunner = new __WEBPACK_IMPORTED_MODULE_9__conditions__[\"b\" /* ConditionRunner */](this.requiredIf);\n this.conditionRequiredRunner.expression = this.requiredIf;\n this.conditionRequiredRunner.onRunComplete = function (res) {\n _this.isRequired = res;\n };\n this.conditionRequiredRunner.run(values, properties);\n };\n Object.defineProperty(Question.prototype, \"no\", {\n /**\n * The property returns the question number. If question is invisible then it returns empty string.\n * If visibleIndex is 1, then no is 2, or 'B' if survey.questionStartIndex is 'A'.\n * @see SurveyModel.questionStartIndex\n */\n get: function () {\n if (this.visibleIndex < 0)\n return \"\";\n var startIndex = 1;\n var isNumeric = true;\n var str = \"\";\n if (this.survey && this.survey.questionStartIndex) {\n str = this.survey.questionStartIndex;\n if (parseInt(str))\n startIndex = parseInt(str);\n else if (str.length == 1)\n isNumeric = false;\n }\n if (isNumeric)\n return (this.visibleIndex + startIndex).toString();\n return String.fromCharCode(str.charCodeAt(0) + this.visibleIndex);\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.onSurveyLoad = function () {\n this.fireCallback(this.surveyLoadCallback);\n this.updateValueWithDefaults();\n this.updateDisplayValue();\n };\n Question.prototype.onSetData = function () {\n _super.prototype.onSetData.call(this);\n this.initDataFromSurvey();\n this.onSurveyValueChanged(this.value);\n this.updateValueWithDefaults();\n };\n Question.prototype.initDataFromSurvey = function () {\n if (!!this.data) {\n this.updateValueFromSurvey(this.data.getValue(this.getValueName()));\n this.initCommentFromSurvey();\n }\n };\n Question.prototype.initCommentFromSurvey = function () {\n if (!!this.data && this.requireUpdateCommentValue) {\n this.updateCommentFromSurvey(this.data.getComment(this.getValueName()));\n }\n else {\n this.updateCommentFromSurvey(\"\");\n }\n };\n Object.defineProperty(Question.prototype, \"questionValue\", {\n get: function () {\n return this.getPropertyValue(\"value\");\n },\n set: function (val) {\n this.setPropertyValue(\"value\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"questionComment\", {\n get: function () {\n return this.getPropertyValue(\"comment\");\n },\n set: function (val) {\n this.setPropertyValue(\"comment\", val);\n this.fireCallback(this.commentChangedCallback);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"value\", {\n /**\n * Get/Set the question value.\n * @see SurveyMode.setValue\n * @see SurveyMode.getValue\n */\n get: function () {\n return this.getValueCore();\n },\n set: function (newValue) {\n this.setNewValue(newValue);\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.clearValue = function () {\n this.value = null;\n this.comment = null;\n };\n Question.prototype.createValueCopy = function () {\n return __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].getUnbindValue(this.value);\n };\n Question.prototype.canClearValueAsInvisible = function () {\n if (this.isVisible && this.isParentVisible)\n return false;\n if (!!this.page && this.page.isStarted)\n return false;\n if (!this.survey || !this.valueName)\n return true;\n return !this.survey.hasVisibleQuestionByValueName(this.valueName);\n };\n Object.defineProperty(Question.prototype, \"isParentVisible\", {\n get: function () {\n var parent = this.parent;\n while (parent) {\n if (!parent.isVisible)\n return false;\n parent = parent.parent;\n }\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.clearValueIfInvisible = function () {\n if (this.canClearValueAsInvisible()) {\n this.clearValue();\n }\n };\n Object.defineProperty(Question.prototype, \"displayValue\", {\n get: function () {\n this.updateDisplayValue();\n return this._displayValue;\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.updateDisplayValue = function () {\n if (this.isLoadingFromJson)\n return;\n this._displayValue = this.getDisplayValue(true);\n };\n /**\n * Return the question value as a display text. For example, for dropdown, it would return the item text instead of item value.\n * @param keysAsText Set this value to true, to return key (in matrices questions) as display text as well.\n * @param value use this parameter, if you want to get display value for this value and not question.value. It is undefined by default.\n */\n Question.prototype.getDisplayValue = function (keysAsText, value) {\n if (value === void 0) { value = undefined; }\n if (this.customWidget) {\n var res = this.customWidget.getDisplayValue(this, value);\n if (res)\n return res;\n }\n value = value == undefined ? this.createValueCopy() : value;\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(value))\n return \"\";\n return this.getDisplayValueCore(keysAsText, value);\n };\n Question.prototype.getDisplayValueCore = function (keyAsText, value) {\n return value;\n };\n Object.defineProperty(Question.prototype, \"defaultValue\", {\n /**\n * Set the default value to the question. It will be assign to the question on loading the survey from JSON or adding a question to the survey or on setting this property of the value is empty.\n */\n get: function () {\n return this.getPropertyValue(\"defaultValue\");\n },\n set: function (val) {\n this.setPropertyValue(\"defaultValue\", val);\n this.updateValueWithDefaults();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns question answer data as a plain object: with question title, name, value and displayValue.\n * For complex questions (like matrix, etc.) isNode flag is set to true and data contains array of nested objects (rows)\n * set options.includeEmpty to false if you want to skip empty answers\n */\n Question.prototype.getPlainData = function (options) {\n var _this = this;\n if (options === void 0) { options = {\n includeEmpty: true\n }; }\n if (options.includeEmpty || !this.isEmpty()) {\n var questionPlainData = {\n name: this.name,\n title: this.title,\n value: this.value,\n displayValue: this.displayValue,\n isNode: false,\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n }\n };\n (options.calculations || []).forEach(function (calculation) {\n questionPlainData[calculation.propertyName] = _this[calculation.propertyName];\n });\n return questionPlainData;\n }\n return undefined;\n };\n Object.defineProperty(Question.prototype, \"correctAnswer\", {\n /**\n * The correct answer on the question. Set this value if you are doing a quiz.\n * @see SurveyModel.correctAnswers\n * @see SurveyModel.inCorrectAnswers\n */\n get: function () {\n return this.getPropertyValue(\"correctAnswer\");\n },\n set: function (val) {\n this.setPropertyValue(\"correctAnswer\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"quizQuestionCount\", {\n get: function () {\n if (this.isVisible &&\n this.hasInput &&\n !__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(this.correctAnswer))\n return this.getQuizQuestionCount();\n return 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"correctAnswerCount\", {\n get: function () {\n if (!this.isEmpty() && !this.isValueEmpty(this.correctAnswer))\n return this.getCorrectAnswerCount();\n return 0;\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getQuizQuestionCount = function () {\n return 1;\n };\n Question.prototype.getCorrectAnswerCount = function () {\n return this.isTwoValueEquals(this.value, this.correctAnswer, true) ? 1 : 0;\n };\n Question.prototype.isAnswerCorrect = function () {\n return this.correctAnswerCount == this.quizQuestionCount;\n };\n Question.prototype.updateValueWithDefaults = function () {\n if (this.isLoadingFromJson ||\n (!this.isDesignMode && this.isDefaultValueEmpty()))\n return;\n if (!this.isDesignMode && !this.isEmpty())\n return;\n if (this.isEmpty() && this.isDefaultValueEmpty())\n return;\n this.setDefaultValue();\n };\n Question.prototype.getQuestionFromArray = function (name, index) {\n return null;\n };\n Question.prototype.getDefaultValue = function () {\n return this.defaultValue;\n };\n Question.prototype.isDefaultValueEmpty = function () {\n return this.isValueEmpty(this.defaultValue);\n };\n Question.prototype.setDefaultValue = function () {\n this.value = this.defaultValue;\n };\n Object.defineProperty(Question.prototype, \"comment\", {\n /**\n * The question comment value.\n */\n get: function () {\n return this.getComment();\n },\n set: function (newValue) {\n if (!!newValue) {\n newValue = newValue.toString().trim();\n }\n if (this.comment == newValue)\n return;\n this.setComment(newValue);\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getComment = function () {\n return this.questionComment;\n };\n Question.prototype.setComment = function (newValue) {\n this.setNewComment(newValue);\n };\n /**\n * Returns true if the question value is empty\n */\n Question.prototype.isEmpty = function () {\n return this.isValueEmpty(this.value);\n };\n Object.defineProperty(Question.prototype, \"isAnswered\", {\n get: function () {\n return this.getPropertyValue(\"isAnswered\");\n },\n set: function (val) {\n this.setPropertyValue(\"isAnswered\", val);\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.updateIsAnswered = function () {\n this.setPropertyValue(\"isAnswered\", this.getIsAnswered());\n };\n Question.prototype.getIsAnswered = function () {\n return !this.isEmpty();\n };\n Object.defineProperty(Question.prototype, \"validators\", {\n /**\n * The list of question validators.\n */\n get: function () {\n return this.getPropertyValue(\"validators\");\n },\n set: function (val) {\n this.setPropertyValue(\"validators\", val);\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getValidators = function () {\n return this.validators;\n };\n Question.prototype.addConditionNames = function (names) {\n names.push(this.name);\n };\n Question.prototype.addConditionObjectsByContext = function (objects, context) {\n objects.push({\n name: this.name,\n text: this.processedTitle,\n question: this\n });\n };\n Question.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n var json = new __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"b\" /* JsonObject */]().toJsonObject(this);\n json[\"type\"] = this.getType();\n return json;\n };\n /**\n * Returns true if there is a validation error(s) in the question.\n * @param fireCallback set it to true to show an error in UI.\n */\n Question.prototype.hasErrors = function (fireCallback, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (rec === void 0) { rec = null; }\n var errors = this.checkForErrors();\n if (fireCallback) {\n if (!!this.survey) {\n this.survey.beforeSettingQuestionErrors(this, errors);\n }\n this.errors = errors;\n }\n this.updateContainsErrors();\n return errors.length > 0;\n };\n Object.defineProperty(Question.prototype, \"currentErrorCount\", {\n /**\n * Returns the validation errors count.\n */\n get: function () {\n return this.errors.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"requiredText\", {\n /**\n * Returns the char/string for a required question.\n * @see SurveyModel.requiredText\n */\n get: function () {\n return this.survey != null && this.isRequired\n ? this.survey.requiredText\n : \"\";\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Add error into the question error list.\n * @param error\n */\n Question.prototype.addError = function (error) {\n this.errors.push(error);\n };\n /**\n * Remove a particular error from the question error list.\n * @param error\n */\n Question.prototype.removeError = function (error) {\n var errors = this.errors;\n var index = errors.indexOf(error);\n if (index !== -1)\n errors.splice(index, 1);\n };\n Question.prototype.checkForErrors = function () {\n var qErrors = new Array();\n if (this.isVisible && !this.isReadOnly) {\n this.collectErrors(qErrors);\n }\n return qErrors;\n };\n Question.prototype.collectErrors = function (qErrors) {\n this.onCheckForErrors(qErrors);\n if (qErrors.length == 0) {\n var errors = this.runValidators();\n if (errors.length > 0) {\n //validators may change the question value.\n qErrors.length = 0;\n for (var i = 0; i < errors.length; i++) {\n qErrors.push(errors[i]);\n }\n }\n }\n if (this.survey && qErrors.length == 0) {\n var error = this.fireSurveyValidation();\n if (error) {\n qErrors.push(error);\n }\n }\n };\n Question.prototype.fireSurveyValidation = function () {\n if (this.validateValueCallback)\n return this.validateValueCallback();\n return this.survey ? this.survey.validateQuestion(this) : null;\n };\n Question.prototype.onCheckForErrors = function (errors) {\n if (this.hasRequiredError()) {\n errors.push(new __WEBPACK_IMPORTED_MODULE_5__error__[\"c\" /* AnswerRequiredError */](this.requiredErrorText, this));\n }\n };\n Question.prototype.hasRequiredError = function () {\n return this.isRequired && this.isEmpty();\n };\n Object.defineProperty(Question.prototype, \"isRunningValidators\", {\n get: function () {\n return this.getIsRunningValidators();\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getIsRunningValidators = function () {\n return this.isRunningValidatorsValue;\n };\n Question.prototype.runValidators = function () {\n var _this = this;\n if (!!this.validatorRunner) {\n this.validatorRunner.onAsyncCompleted = null;\n }\n this.validatorRunner = new __WEBPACK_IMPORTED_MODULE_6__validator__[\"i\" /* ValidatorRunner */]();\n this.isRunningValidatorsValue = true;\n this.validatorRunner.onAsyncCompleted = function (errors) {\n _this.doOnAsyncCompleted(errors);\n };\n return this.validatorRunner.run(this);\n };\n Question.prototype.doOnAsyncCompleted = function (errors) {\n for (var i = 0; i < errors.length; i++) {\n this.errors.push(errors[i]);\n }\n this.isRunningValidatorsValue = false;\n this.raiseOnCompletedAsyncValidators();\n };\n Question.prototype.raiseOnCompletedAsyncValidators = function () {\n if (!!this.onCompletedAsyncValidators && !this.isRunningValidators) {\n this.onCompletedAsyncValidators(this.getAllErrors().length > 0);\n this.onCompletedAsyncValidators = null;\n }\n };\n Question.prototype.setNewValue = function (newValue) {\n this.setNewValueInData(newValue);\n this.onValueChanged();\n };\n Question.prototype.isTextValue = function () {\n return false;\n };\n Object.defineProperty(Question.prototype, \"isSurveyInputTextUpdate\", {\n get: function () {\n return !!this.survey ? this.survey.isUpdateValueTextOnTyping : false;\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getDataLocNotification = function () {\n if (this.locNotificationInData)\n return this.locNotificationInData;\n return this.isInputTextUpdate ? \"text\" : false;\n };\n Object.defineProperty(Question.prototype, \"isInputTextUpdate\", {\n get: function () {\n return this.isSurveyInputTextUpdate && this.isTextValue();\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.setNewValueInData = function (newValue) {\n newValue = this.valueToData(newValue);\n if (!this.isValueChangedInSurvey) {\n this.setValueCore(newValue);\n }\n };\n Question.prototype.getValueCore = function () {\n return this.questionValue;\n };\n Question.prototype.setValueCore = function (newValue) {\n this.setQuestionValue(newValue);\n if (this.data != null) {\n this.data.setValue(this.getValueName(), newValue, this.getDataLocNotification());\n }\n };\n Question.prototype.valueFromData = function (val) {\n return val;\n };\n Question.prototype.valueToData = function (val) {\n return val;\n };\n Question.prototype.onValueChanged = function () { };\n Question.prototype.setNewComment = function (newValue) {\n this.questionComment = newValue;\n if (this.data != null) {\n this.data.setComment(this.getValueName(), newValue, this.isSurveyInputTextUpdate ? \"text\" : false);\n }\n };\n //IQuestion\n Question.prototype.updateValueFromSurvey = function (newValue) {\n newValue = __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].getUnbindValue(newValue);\n this.setQuestionValue(this.valueFromData(newValue));\n };\n Question.prototype.updateCommentFromSurvey = function (newValue) {\n this.questionComment = newValue;\n };\n Question.prototype.setQuestionValue = function (newValue, updateIsAnswered) {\n if (updateIsAnswered === void 0) { updateIsAnswered = true; }\n this.questionValue = newValue;\n this.fireCallback(this.valueChangedCallback);\n if (updateIsAnswered)\n this.updateIsAnswered();\n };\n Question.prototype.onSurveyValueChanged = function (newValue) {\n if (this.isLoadingFromJson)\n return;\n this.updateDisplayValue();\n };\n Question.prototype.setVisibleIndex = function (val) {\n if (!this.isVisible || !this.hasTitle) {\n val = -1;\n }\n this.setPropertyValue(\"visibleIndex\", val);\n return val < 0 ? 0 : 1;\n };\n Question.prototype.removeElement = function (element) {\n return false;\n };\n Question.prototype.supportGoNextPageAutomatic = function () {\n return false;\n };\n /**\n * Call this function to remove values from the current question, that end-user will not be able to enter.\n * For example the value that doesn't exists in a radigroup/dropdown/checkbox choices or matrix rows/columns.\n */\n Question.prototype.clearIncorrectValues = function () { };\n /**\n * Call this function to clear all errors in the question\n */\n Question.prototype.clearErrors = function () {\n this.errors = [];\n };\n Question.prototype.clearUnusedValues = function () { };\n Question.prototype.onAnyValueChanged = function (name) { };\n /**\n * Returns the current survey locale\n * @see SurveyModel.locale\n */\n Question.prototype.getLocale = function () {\n return this.survey\n ? this.survey.getLocale()\n : this.locOwner\n ? this.locOwner.getLocale()\n : \"\";\n };\n Question.prototype.getMarkdownHtml = function (text) {\n return this.survey\n ? this.survey.getSurveyMarkdownHtml(this, text)\n : this.locOwner\n ? this.locOwner.getMarkdownHtml(text)\n : null;\n };\n Question.prototype.getProcessedText = function (text) {\n if (this.textProcessor)\n return this.textProcessor.processText(text, this.useDisplayValuesInTitle);\n if (this.locOwner)\n return this.locOwner.getProcessedText(text);\n return text;\n };\n //ISurveyErrorOwner\n Question.prototype.getErrorCustomText = function (text, error) {\n if (!!this.survey)\n return this.survey.getErrorCustomText(text, error);\n return text;\n };\n //IValidatorOwner\n Question.prototype.getValidatorTitle = function () {\n return null;\n };\n Object.defineProperty(Question.prototype, \"validatedValue\", {\n get: function () {\n return this.value;\n },\n set: function (val) {\n this.value = val;\n },\n enumerable: true,\n configurable: true\n });\n Question.prototype.getAllValues = function () {\n return !!this.data ? this.data.getAllValues() : null;\n };\n Question.TextPreprocessorValuesMap = {\n title: \"processedTitle\",\n require: \"requiredText\"\n };\n Question.questionCounter = 100;\n return Question;\n}(__WEBPACK_IMPORTED_MODULE_3__base__[\"c\" /* SurveyElement */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"question\", [\n \"!name\",\n { name: \"visible:boolean\", default: true },\n { name: \"useDisplayValuesInTitle:boolean\", default: true, layout: \"row\" },\n \"visibleIf:condition\",\n { name: \"width\" },\n { name: \"startWithNewLine:boolean\", default: true, layout: \"row\" },\n { name: \"indent:number\", default: 0, choices: [0, 1, 2, 3], layout: \"row\" },\n {\n name: \"page\",\n isSerializable: false,\n choices: function (obj) {\n var survey = obj ? obj.survey : null;\n return survey\n ? survey.pages.map(function (p) {\n return { value: p.name, text: p.title };\n })\n : [];\n }\n },\n { name: \"title:text\", serializationProperty: \"locTitle\", layout: \"row\" },\n {\n name: \"description:text\",\n serializationProperty: \"locDescription\",\n layout: \"row\"\n },\n {\n name: \"descriptionLocation\",\n default: \"default\",\n choices: [\"default\", \"underInput\", \"underTitle\"]\n },\n \"valueName\",\n \"enableIf:condition\",\n \"defaultValue:value\",\n \"correctAnswer:value\",\n \"isRequired:boolean\",\n \"requiredIf:condition\",\n {\n name: \"requiredErrorText:text\",\n serializationProperty: \"locRequiredErrorText\"\n },\n \"readOnly:boolean\",\n {\n name: \"validators:validators\",\n baseClassName: \"surveyvalidator\",\n classNamePart: \"validator\"\n },\n {\n name: \"titleLocation\",\n default: \"default\",\n choices: [\"default\", \"top\", \"bottom\", \"left\", \"hidden\"],\n layout: \"row\"\n }\n]);\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addAlterNativeClassName(\"question\", \"questionbase\");\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return surveyCss; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return defaultStandardCss; });\nvar surveyCss = {\n currentType: \"\",\n getCss: function () {\n var loc = this.currentType ? this[this.currentType] : defaultStandardCss;\n if (!loc)\n loc = defaultStandardCss;\n return loc;\n }\n};\nvar defaultStandardCss = {\n root: \"sv_main sv_default_css\",\n container: \"sv_container\",\n header: \"sv_header\",\n body: \"sv_body\",\n bodyEmpty: \"sv_body sv_body_empty\",\n footer: \"sv_nav\",\n title: \"\",\n description: \"\",\n navigationButton: \"\",\n completedPage: \"sv_completed_page\",\n navigation: {\n complete: \"sv_complete_btn\",\n prev: \"sv_prev_btn\",\n next: \"sv_next_btn\",\n start: \"sv_start_btn\"\n },\n progress: \"sv_progress\",\n progressBar: \"sv_progress_bar\",\n progressTextInBar: \"sv-hidden\",\n page: {\n root: \"sv_p_root\",\n title: \"\",\n description: \"\"\n },\n // TODO: move to the page object\n pageTitle: \"sv_page_title\",\n pageDescription: \"\",\n row: \"sv_row\",\n question: {\n mainRoot: \"sv_q sv_qstn\",\n flowRoot: \"sv_q_flow sv_qstn\",\n header: \"\",\n headerLeft: \"title-left\",\n content: \"\",\n contentLeft: \"content-left\",\n titleLeftRoot: \"sv_qstn_left\",\n requiredText: \"sv_q_required_text\",\n title: \"sv_q_title\",\n number: \"sv_q_num\",\n description: \"sv_q_description\",\n comment: \"\",\n required: \"\",\n titleRequired: \"\",\n hasError: \"\",\n indent: 20,\n footer: \"sv_q_footer\",\n formGroup: \"form-group\"\n },\n panel: {\n title: \"sv_p_title\",\n titleExpandable: \"sv_p_title_expandable\",\n icon: \"sv_panel_icon\",\n iconExpanded: \"sv_expanded\",\n description: \"sv_p_description\",\n container: \"sv_p_container\"\n },\n error: {\n root: \"sv_q_erbox\",\n icon: \"\",\n item: \"\",\n locationTop: \"sv_qstn_error_top\",\n locationBottom: \"sv_qstn_error_bottom\"\n },\n boolean: {\n root: \"sv_qcbc sv_qbln\",\n item: \"sv-boolean\",\n control: \"sv-visuallyhidden\",\n itemChecked: \"sv-boolean--checked checked\",\n itemIndeterminate: \"sv-boolean--indeterminate\",\n itemDisabled: \"sv-boolean--disabled\",\n switch: \"sv-boolean__switch\",\n slider: \"sv-boolean__slider\",\n label: \"sv-boolean__label \",\n disabledLabel: \"sv-boolean__label--disabled\"\n },\n checkbox: {\n root: \"sv_qcbc sv_qcbx\",\n item: \"sv_q_checkbox\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_checkbox_inline\",\n label: \"sv_q_checkbox_label\",\n labelChecked: \"\",\n itemControl: \"sv_q_checkbox_control_item\",\n itemDecorator: \"sv-hidden\",\n controlLabel: \"sv_q_checkbox_control_label\",\n materialDecorator: \"checkbox-material\",\n other: \"sv_q_other sv_q_checkbox_other\",\n column: \"sv_q_select_column\"\n },\n comment: \"\",\n dropdown: {\n root: \"\",\n control: \"sv_q_dropdown_control\",\n selectWrapper: \"sv_select_wrapper\",\n other: \"sv_q_dd_other\"\n },\n html: { root: \"\" },\n matrix: {\n root: \"sv_q_matrix\",\n label: \"sv_q_m_label\",\n itemChecked: \"checked\",\n itemDecorator: \"sv-hidden\",\n cellText: \"sv_q_m_cell_text\",\n cellTextSelected: \"sv_q_m_cell_selected\",\n cellLabel: \"sv_q_m_cell_label\"\n },\n matrixdropdown: { root: \"sv_q_matrix_dropdown\" },\n matrixdynamic: {\n root: \"sv_q_matrix_dynamic\",\n button: \"sv_matrix_dynamic_button\",\n buttonAdd: \"\",\n buttonRemove: \"\",\n iconAdd: \"\",\n iconRemove: \"\"\n },\n paneldynamic: {\n root: \"sv_panel_dynamic\",\n title: \"sv_p_title\",\n button: \"\",\n buttonAdd: \"sv-paneldynamic__add-btn\",\n buttonRemove: \"\",\n buttonPrev: \"sv-paneldynamic__prev-btn\",\n buttonNext: \"sv-paneldynamic__next-btn\",\n progressContainer: \"sv-paneldynamic__progress-container\",\n progress: \"sv-progress\",\n progressBar: \"sv-progress__bar\",\n progressText: \"sv-paneldynamic__progress-text\"\n },\n multipletext: {\n root: \"sv_q_mt\",\n itemTitle: \"sv_q_mt_title\",\n row: \"sv_q_mt_row\",\n itemValue: \"sv_q_mt_item_value sv_q_text_root\"\n },\n radiogroup: {\n root: \"sv_qcbc\",\n item: \"sv_q_radiogroup\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_radiogroup_inline\",\n itemDecorator: \"sv-hidden\",\n label: \"sv_q_radiogroup_label\",\n labelChecked: \"\",\n itemControl: \"sv_q_radiogroup_control_item\",\n controlLabel: \"\",\n materialDecorator: \"circle\",\n other: \"sv_q_other sv_q_radiogroup_other\",\n clearButton: \"sv_q_radiogroup_clear\",\n column: \"sv_q_select_column\"\n },\n imagepicker: {\n root: \"sv_imgsel\",\n item: \"sv_q_imgsel\",\n itemChecked: \"checked\",\n label: \"sv_q_imgsel_label\",\n itemControl: \"sv_q_imgsel_control_item\",\n image: \"sv_q_imgsel_image\",\n itemInline: \"sv_q_imagepicker_inline\",\n itemText: \"sv_q_imgsel_text\",\n clearButton: \"sv_q_radiogroup_clear\"\n },\n rating: {\n root: \"sv_q_rating\",\n item: \"sv_q_rating_item\",\n selected: \"active\",\n minText: \"sv_q_rating_min_text\",\n itemText: \"sv_q_rating_item_text\",\n maxText: \"sv_q_rating_max_text\",\n disabled: \"\"\n },\n text: \"sv_q_text_root\",\n expression: \"\",\n file: {\n root: \"sv_q_file\",\n placeholderInput: \"sv_q_file_placeholder\",\n preview: \"sv_q_file_preview\",\n removeButton: \"sv_q_file_remove_button\",\n fileInput: \"sv_q_file_input\",\n removeFile: \"sv_q_file_remove\",\n removeFileSvg: \"sv-hidden\",\n fileDecorator: \"sv-hidden\",\n fileSignBottom: \"sv-hidden\",\n removeButtonBottom: \"sv-hidden\"\n },\n saveData: {\n root: \"\",\n saving: \"\",\n error: \"\",\n success: \"\",\n saveAgainButton: \"\"\n },\n window: {\n root: \"sv_window\",\n body: \"sv_window_content\",\n header: {\n root: \"sv_window_title\",\n title: \"\",\n button: \"\",\n buttonExpanded: \"\",\n buttonCollapsed: \"\"\n }\n }\n};\nsurveyCss[\"standard\"] = defaultStandardCss;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__conditionProcessValue__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__conditionsParser__ = __webpack_require__(67);\n/* unused harmony export ExpressionRunnerBase */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ConditionRunner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ExpressionRunner; });\n\n\n\nvar ExpressionRunnerBase = /** @class */ (function () {\n function ExpressionRunnerBase(expression) {\n this.processValue = new __WEBPACK_IMPORTED_MODULE_1__conditionProcessValue__[\"a\" /* ProcessValue */]();\n this.parser = new __WEBPACK_IMPORTED_MODULE_2__conditionsParser__[\"a\" /* ConditionsParser */]();\n this.isAsyncValue = false;\n this.hasFunctionValue = false;\n this.expression = expression;\n }\n Object.defineProperty(ExpressionRunnerBase.prototype, \"expression\", {\n get: function () {\n return this.expressionValue;\n },\n set: function (value) {\n if (this.expression === value)\n return;\n this.expressionValue = value;\n this.operand = this.parser.parseExpression(value);\n this.hasFunctionValue = this.canRun() ? this.operand.hasFunction() : false;\n this.isAsyncValue = this.hasFunction()\n ? this.operand.hasAsyncFunction()\n : false;\n },\n enumerable: true,\n configurable: true\n });\n ExpressionRunnerBase.prototype.getVariables = function () {\n if (!this.operand)\n return [];\n var variables = [];\n this.operand.setVariables(variables);\n return variables;\n };\n ExpressionRunnerBase.prototype.hasFunction = function () {\n return this.hasFunctionValue;\n };\n Object.defineProperty(ExpressionRunnerBase.prototype, \"isAsync\", {\n get: function () {\n return this.isAsyncValue;\n },\n enumerable: true,\n configurable: true\n });\n ExpressionRunnerBase.prototype.canRun = function () {\n return !!this.operand;\n };\n ExpressionRunnerBase.prototype.runCore = function (values, properties) {\n var _this = this;\n if (properties === void 0) { properties = null; }\n if (!this.operand)\n return null;\n this.processValue.values = values;\n this.processValue.properties = properties;\n if (!this.isAsync)\n return this.runValues();\n this.asyncFuncList = [];\n this.operand.addToAsyncList(this.asyncFuncList);\n for (var i = 0; i < this.asyncFuncList.length; i++) {\n this.asyncFuncList[i].onAsyncReady = function () {\n _this.doAsyncFunctionReady();\n };\n }\n for (var i = 0; i < this.asyncFuncList.length; i++) {\n this.asyncFuncList[i].evaluateAsync(this.processValue);\n }\n return false;\n };\n ExpressionRunnerBase.prototype.doAsyncFunctionReady = function () {\n for (var i = 0; i < this.asyncFuncList.length; i++) {\n if (!this.asyncFuncList[i].isReady)\n return;\n }\n this.runValues();\n };\n ExpressionRunnerBase.prototype.runValues = function () {\n var res = this.operand.evaluate(this.processValue);\n this.doOnComplete(res);\n return res;\n };\n ExpressionRunnerBase.prototype.doOnComplete = function (res) { };\n return ExpressionRunnerBase;\n}());\n\nvar ConditionRunner = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ConditionRunner, _super);\n function ConditionRunner() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConditionRunner.prototype.run = function (values, properties) {\n if (properties === void 0) { properties = null; }\n return this.runCore(values, properties) == true;\n };\n ConditionRunner.prototype.doOnComplete = function (res) {\n if (!!this.onRunComplete)\n this.onRunComplete(res == true);\n };\n return ConditionRunner;\n}(ExpressionRunnerBase));\n\nvar ExpressionRunner = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ExpressionRunner, _super);\n function ExpressionRunner() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExpressionRunner.prototype.run = function (values, properties) {\n if (properties === void 0) { properties = null; }\n return this.runCore(values, properties);\n };\n ExpressionRunner.prototype.doOnComplete = function (res) {\n if (!!this.onRunComplete)\n this.onRunComplete(res);\n };\n return ExpressionRunner;\n}(ExpressionRunnerBase));\n\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base__ = __webpack_require__(8);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return AnswerRequiredError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return OneAnswerRequiredError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return RequreNumericError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return ExceedSizeError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return WebRequestError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return WebRequestEmptyError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return OtherEmptyError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return UploadingFileError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return RequiredInAllRowsError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return MinRowCountError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return KeyDuplicationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CustomError; });\n\n\n\nvar AnswerRequiredError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(AnswerRequiredError, _super);\n function AnswerRequiredError(text, errorOwner) {\n if (text === void 0) { text = null; }\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n AnswerRequiredError.prototype.getErrorType = function () {\n return \"required\";\n };\n AnswerRequiredError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"requiredError\");\n };\n return AnswerRequiredError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar OneAnswerRequiredError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(OneAnswerRequiredError, _super);\n function OneAnswerRequiredError(text, errorOwner) {\n if (text === void 0) { text = null; }\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n OneAnswerRequiredError.prototype.getErrorType = function () {\n return \"requireoneanswer\";\n };\n OneAnswerRequiredError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"requiredErrorInPanel\");\n };\n return OneAnswerRequiredError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar RequreNumericError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(RequreNumericError, _super);\n function RequreNumericError(text, errorOwner) {\n if (text === void 0) { text = null; }\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n RequreNumericError.prototype.getErrorType = function () {\n return \"requirenumeric\";\n };\n RequreNumericError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"numericError\");\n };\n return RequreNumericError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar ExceedSizeError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ExceedSizeError, _super);\n function ExceedSizeError(maxSize, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, null, errorOwner) || this;\n _this.maxSize = maxSize;\n _this.locText.text = _this.getText();\n return _this;\n }\n ExceedSizeError.prototype.getErrorType = function () {\n return \"exceedsize\";\n };\n ExceedSizeError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"exceedMaxSize\")[\"format\"](this.getTextSize());\n };\n ExceedSizeError.prototype.getTextSize = function () {\n var sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n var fixed = [0, 0, 2, 3, 3];\n if (this.maxSize === 0) {\n return \"0 Byte\";\n }\n var i = Math.floor(Math.log(this.maxSize) / Math.log(1024));\n var value = this.maxSize / Math.pow(1024, i);\n return value.toFixed(fixed[i]) + \" \" + sizes[i];\n };\n return ExceedSizeError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar WebRequestError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(WebRequestError, _super);\n function WebRequestError(status, response, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, null, errorOwner) || this;\n _this.status = status;\n _this.response = response;\n return _this;\n }\n WebRequestError.prototype.getErrorType = function () {\n return \"webrequest\";\n };\n WebRequestError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"urlRequestError\")[\"format\"](this.status, this.response);\n };\n return WebRequestError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar WebRequestEmptyError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(WebRequestEmptyError, _super);\n function WebRequestEmptyError(text, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n WebRequestEmptyError.prototype.getErrorType = function () {\n return \"webrequestempty\";\n };\n WebRequestEmptyError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"urlGetChoicesError\");\n };\n return WebRequestEmptyError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar OtherEmptyError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(OtherEmptyError, _super);\n function OtherEmptyError(text, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n OtherEmptyError.prototype.getErrorType = function () {\n return \"otherempty\";\n };\n OtherEmptyError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"otherRequiredError\");\n };\n return OtherEmptyError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar UploadingFileError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(UploadingFileError, _super);\n function UploadingFileError(text, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n UploadingFileError.prototype.getErrorType = function () {\n return \"uploadingfile\";\n };\n UploadingFileError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"uploadingFile\");\n };\n return UploadingFileError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar RequiredInAllRowsError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(RequiredInAllRowsError, _super);\n function RequiredInAllRowsError(text, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n RequiredInAllRowsError.prototype.getErrorType = function () {\n return \"requiredinallrowserror\";\n };\n RequiredInAllRowsError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"requiredInAllRowsError\");\n };\n return RequiredInAllRowsError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar MinRowCountError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MinRowCountError, _super);\n function MinRowCountError(minRowCount, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, null, errorOwner) || this;\n _this.minRowCount = minRowCount;\n return _this;\n }\n MinRowCountError.prototype.getErrorType = function () {\n return \"minrowcounterror\";\n };\n MinRowCountError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"minRowCountError\")[\"format\"](this.minRowCount);\n };\n return MinRowCountError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar KeyDuplicationError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(KeyDuplicationError, _super);\n function KeyDuplicationError(text, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n KeyDuplicationError.prototype.getErrorType = function () {\n return \"keyduplicationerror\";\n };\n KeyDuplicationError.prototype.getDefaultText = function () {\n return __WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"keyDuplicationError\");\n };\n return KeyDuplicationError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\nvar CustomError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(CustomError, _super);\n function CustomError(text, errorOwner) {\n if (errorOwner === void 0) { errorOwner = null; }\n var _this = _super.call(this, text, errorOwner) || this;\n _this.text = text;\n return _this;\n }\n CustomError.prototype.getErrorType = function () {\n return \"custom\";\n };\n return CustomError;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"d\" /* SurveyError */]));\n\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__localizablestring__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ItemValue; });\n\n\n\n\n\n\n\n/**\n * Array of ItemValue is used in checkox, dropdown and radiogroup choices, matrix columns and rows.\n * It has two main properties: value and text. If text is empty, value is used for displaying.\n * The text property is localizable and support markdown.\n */\nvar ItemValue = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ItemValue, _super);\n function ItemValue(value, text, typeName) {\n if (text === void 0) { text = null; }\n if (typeName === void 0) { typeName = \"itemvalue\"; }\n var _this = _super.call(this) || this;\n _this.typeName = typeName;\n _this.visibleIfValue = \"\";\n _this.isVisibleValue = true;\n _this.locTextValue = new __WEBPACK_IMPORTED_MODULE_1__localizablestring__[\"a\" /* LocalizableString */](null, true);\n _this.locTextValue.onGetTextCallback = function (txt) {\n return txt ? txt : !_this.isValueItemEmpty ? _this.value.toString() : null;\n };\n if (text)\n _this.locText.text = text;\n if (!!value && typeof value === \"object\") {\n _this.setData(value);\n }\n else {\n _this.value = value;\n }\n _this.onCreating();\n return _this;\n }\n Object.defineProperty(ItemValue, \"Separator\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_6__settings__[\"a\" /* settings */].itemValueSeparator;\n },\n set: function (val) {\n __WEBPACK_IMPORTED_MODULE_6__settings__[\"a\" /* settings */].itemValueSeparator = val;\n },\n enumerable: true,\n configurable: true\n });\n ItemValue.createArray = function (locOwner) {\n var items = [];\n ItemValue.setupArray(items, locOwner);\n return items;\n };\n ItemValue.setupArray = function (items, locOwner) {\n items.push = function (value) {\n var result = Array.prototype.push.call(this, value);\n value.locOwner = locOwner;\n return result;\n };\n items.unshift = function (value) {\n var result = Array.prototype.unshift.call(this, value);\n value.locOwner = locOwner;\n return result;\n };\n items.splice = function (start, deleteCount) {\n var _a;\n var items = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n items[_i - 2] = arguments[_i];\n }\n var result = (_a = Array.prototype.splice).call.apply(_a, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __spreadArrays */])([this,\n start,\n deleteCount], items));\n if (!items)\n items = [];\n for (var i = 0; i < items.length; i++) {\n items[i].locOwner = locOwner;\n }\n return result;\n };\n };\n ItemValue.setData = function (items, values) {\n items.length = 0;\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n var item;\n if (typeof value.getType === \"function\") {\n item = __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].createClass(value.getType());\n }\n else {\n item = new ItemValue(null);\n }\n item.setData(value);\n items.push(item);\n }\n };\n ItemValue.getData = function (items) {\n var result = new Array();\n for (var i = 0; i < items.length; i++) {\n result.push(items[i].getData());\n }\n return result;\n };\n ItemValue.getItemByValue = function (items, val) {\n for (var i = 0; i < items.length; i++) {\n if (__WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].isTwoValueEquals(items[i].value, val))\n return items[i];\n }\n return null;\n };\n ItemValue.getTextOrHtmlByValue = function (items, val) {\n var item = ItemValue.getItemByValue(items, val);\n return item !== null ? item.locText.textOrHtml : \"\";\n };\n ItemValue.locStrsChanged = function (items) {\n for (var i = 0; i < items.length; i++) {\n items[i].locText.strChanged();\n }\n };\n ItemValue.runConditionsForItems = function (items, filteredItems, runner, values, properties, useItemExpression) {\n if (useItemExpression === void 0) { useItemExpression = true; }\n return ItemValue.runConditionsForItemsCore(items, filteredItems, runner, values, properties, true, useItemExpression);\n };\n ItemValue.runEnabledConditionsForItems = function (items, runner, values, properties) {\n return ItemValue.runConditionsForItemsCore(items, null, runner, values, properties, false);\n };\n ItemValue.runConditionsForItemsCore = function (items, filteredItems, runner, values, properties, isVisible, useItemExpression) {\n if (useItemExpression === void 0) { useItemExpression = true; }\n if (!values) {\n values = {};\n }\n var itemValue = values[\"item\"];\n var choiceValue = values[\"choice\"];\n var hasChanded = false;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n values[\"item\"] = item.value;\n values[\"choice\"] = item.value;\n var itemRunner = useItemExpression && !!item.getConditionRunner\n ? item.getConditionRunner(isVisible)\n : false;\n if (!itemRunner) {\n itemRunner = runner;\n }\n var newValue = true;\n if (itemRunner) {\n newValue = itemRunner.run(values, properties);\n }\n if (!!filteredItems && newValue) {\n filteredItems.push(item);\n }\n var oldValue = isVisible ? item.isVisible : item.isEnabled;\n if (newValue != oldValue) {\n hasChanded = true;\n if (isVisible) {\n if (!!item.setIsVisible)\n item.setIsVisible(newValue);\n }\n else {\n if (!!item.setIsEnabled)\n item.setIsEnabled(newValue);\n }\n }\n }\n if (itemValue) {\n values[\"item\"] = itemValue;\n }\n else {\n delete values[\"item\"];\n }\n if (choiceValue) {\n values[\"choice\"] = choiceValue;\n }\n else {\n delete values[\"choice\"];\n }\n return hasChanded;\n };\n ItemValue.prototype.onCreating = function () { };\n ItemValue.prototype.getType = function () {\n return !!this.typeName ? this.typeName : \"itemvalue\";\n };\n Object.defineProperty(ItemValue.prototype, \"locText\", {\n get: function () {\n return this.locTextValue;\n },\n enumerable: true,\n configurable: true\n });\n ItemValue.prototype.setLocText = function (locText) {\n this.locTextValue = locText;\n };\n Object.defineProperty(ItemValue.prototype, \"locOwner\", {\n get: function () {\n return this.locText.owner;\n },\n set: function (value) {\n this.locText.owner = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ItemValue.prototype, \"value\", {\n get: function () {\n return this.itemValue;\n },\n set: function (newValue) {\n this.itemValue = newValue;\n if (!this.itemValue)\n return;\n var str = this.itemValue.toString();\n var index = str.indexOf(__WEBPACK_IMPORTED_MODULE_6__settings__[\"a\" /* settings */].itemValueSeparator);\n if (index > -1) {\n this.itemValue = str.slice(0, index);\n this.text = str.slice(index + 1);\n }\n else if (!this.hasText) {\n this.locText.onChanged();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ItemValue.prototype, \"hasText\", {\n get: function () {\n return this.locText.pureText ? true : false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ItemValue.prototype, \"text\", {\n get: function () {\n return this.locText.calculatedText; //TODO: it will be correct to use this.locText.text, however it would require a lot of rewritting in Creator\n },\n set: function (newText) {\n this.locText.text = newText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ItemValue.prototype, \"calculatedText\", {\n get: function () {\n return this.locText.calculatedText;\n },\n enumerable: true,\n configurable: true\n });\n ItemValue.prototype.getData = function () {\n var json = this.toJSON();\n if (!!json[\"value\"] && !!json[\"value\"][\"pos\"]) {\n delete json[\"value\"][\"pos\"];\n }\n if (Object.keys(json).length == 1 && !__WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].isValueEmpty(json[\"value\"]))\n return this.value;\n return json;\n };\n ItemValue.prototype.toJSON = function () {\n var res = {};\n var properties = __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].getProperties(this.getType());\n if (!properties || properties.length == 0) {\n properties = __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].getProperties(\"itemvalue\");\n }\n var jsoObj = new __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"b\" /* JsonObject */]();\n for (var i = 0; i < properties.length; i++) {\n jsoObj.valueToJson(this, res, properties[i]);\n }\n return res;\n };\n ItemValue.prototype.setData = function (value) {\n if (__WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].isValueEmpty(value))\n return;\n if (typeof value.value !== \"undefined\") {\n var json = value;\n if (typeof value.toJSON === \"function\") {\n json = value.toJSON();\n }\n new __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"b\" /* JsonObject */]().toObject(json, this);\n }\n else {\n this.value = value;\n }\n };\n Object.defineProperty(ItemValue.prototype, \"visibleIf\", {\n get: function () {\n return this.visibleIfValue;\n },\n set: function (val) {\n this.visibleIfValue = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ItemValue.prototype, \"isVisible\", {\n get: function () {\n return this.isVisibleValue;\n },\n enumerable: true,\n configurable: true\n });\n ItemValue.prototype.setIsVisible = function (val) {\n this.isVisibleValue = val;\n };\n Object.defineProperty(ItemValue.prototype, \"isEnabled\", {\n get: function () {\n return this.getPropertyValue(\"isEnabled\", true);\n },\n enumerable: true,\n configurable: true\n });\n ItemValue.prototype.setIsEnabled = function (val) {\n this.setPropertyValue(\"isEnabled\", val);\n };\n ItemValue.prototype.addUsedLocales = function (locales) {\n this.AddLocStringToUsedLocales(this.locTextValue, locales);\n };\n ItemValue.prototype.getConditionRunner = function (isVisible) {\n if (isVisible)\n return this.getVisibleConditionRunner();\n return this.getEnableConditionRunner();\n };\n ItemValue.prototype.getVisibleConditionRunner = function () {\n if (!this.visibleIf)\n return null;\n if (!this.visibleConditionRunner)\n this.visibleConditionRunner = new __WEBPACK_IMPORTED_MODULE_4__conditions__[\"b\" /* ConditionRunner */](this.visibleIf);\n this.visibleConditionRunner.expression = this.visibleIf;\n return this.visibleConditionRunner;\n };\n ItemValue.prototype.getEnableConditionRunner = function () {\n if (!this.enableIf)\n return null;\n if (!this.enableConditionRunner)\n this.enableConditionRunner = new __WEBPACK_IMPORTED_MODULE_4__conditions__[\"b\" /* ConditionRunner */](this.enableIf);\n this.enableConditionRunner.expression = this.enableIf;\n return this.enableConditionRunner;\n };\n Object.defineProperty(ItemValue.prototype, \"isValueItemEmpty\", {\n get: function () {\n return !this.itemValue && this.itemValue !== 0 && this.itemValue !== false;\n },\n enumerable: true,\n configurable: true\n });\n return ItemValue;\n}(__WEBPACK_IMPORTED_MODULE_5__base__[\"a\" /* Base */]));\n\n__WEBPACK_IMPORTED_MODULE_5__base__[\"a\" /* Base */].createItemValue = function (source, type) {\n var item = null;\n if (!!type) {\n item = __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"b\" /* JsonObject */].metaData.createClass(type, {});\n }\n else if (typeof source.getType === \"function\") {\n item = new ItemValue(null, undefined, source.getType());\n }\n else {\n item = new ItemValue(null);\n }\n item.setData(source);\n return item;\n};\n__WEBPACK_IMPORTED_MODULE_5__base__[\"a\" /* Base */].itemValueLocStrChanged = function (arr) {\n ItemValue.locStrsChanged(arr);\n};\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"j\" /* JsonObjectProperty */].getItemValuesDefaultValue = function (val) {\n var res = new Array();\n ItemValue.setData(res, val || []);\n return res;\n};\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"itemvalue\", [\n \"value\",\n {\n name: \"text\",\n serializationProperty: \"locText\"\n },\n { name: \"visibleIf:condition\", visible: false },\n { name: \"enableIf:condition\", visible: false }\n], function (value) { return new ItemValue(value); });\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__helpers__ = __webpack_require__(6);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProcessValue; });\n\nvar ProcessValue = /** @class */ (function () {\n function ProcessValue() {\n this.values = null;\n this.properties = null;\n }\n ProcessValue.prototype.getFirstName = function (text, obj) {\n if (obj === void 0) { obj = null; }\n if (!text)\n return text;\n var res = \"\";\n if (!!obj) {\n res = this.getFirstPropertyName(text, obj);\n if (!!res)\n return res;\n }\n for (var i = 0; i < text.length; i++) {\n var ch = text[i];\n if (ch == \".\" || ch == \"[\")\n break;\n res += ch;\n }\n return res;\n };\n ProcessValue.prototype.hasValue = function (text, values) {\n if (values === void 0) { values = null; }\n if (!values)\n values = this.values;\n var res = this.getValueCore(text, values);\n return res.hasValue;\n };\n ProcessValue.prototype.setValue = function (obj, text, value) {\n if (!text)\n return;\n var nonNestedObj = this.getNonNestedObject(obj, text);\n if (!nonNestedObj)\n return;\n obj = nonNestedObj.value;\n text = nonNestedObj.text;\n if (!!obj && !!text) {\n obj[text] = value;\n }\n };\n ProcessValue.prototype.getValue = function (text, values) {\n if (values === void 0) { values = null; }\n if (!values)\n values = this.values;\n var res = this.getValueCore(text, values);\n return res.value;\n };\n ProcessValue.prototype.getValueCore = function (text, values) {\n var res = { hasValue: false, value: null };\n var curValue = values;\n if (!curValue && curValue !== 0 && curValue !== false)\n return res;\n if (text &&\n text.lastIndexOf(\".length\") > -1 &&\n text.lastIndexOf(\".length\") === text.length - \".length\".length) {\n res.value = 0;\n res.hasValue = true;\n }\n var nonNestedObj = this.getNonNestedObject(curValue, text);\n if (!nonNestedObj)\n return res;\n res.value = !!nonNestedObj.text\n ? this.getObjectValue(nonNestedObj.value, nonNestedObj.text)\n : nonNestedObj.value;\n res.hasValue = !__WEBPACK_IMPORTED_MODULE_0__helpers__[\"a\" /* Helpers */].isValueEmpty(res.value);\n return res;\n };\n ProcessValue.prototype.getNonNestedObject = function (obj, text) {\n var curName = this.getFirstPropertyName(text, obj);\n while (text != curName && !!obj) {\n var isArray = text[0] == \"[\";\n if (!isArray) {\n if (!curName && text == this.getFirstName(text))\n return { value: obj, text: text };\n obj = this.getObjectValue(obj, curName);\n if (__WEBPACK_IMPORTED_MODULE_0__helpers__[\"a\" /* Helpers */].isValueEmpty(obj))\n return null;\n text = text.substr(curName.length);\n }\n else {\n var objInArray = this.getObjInArray(obj, text);\n if (!objInArray)\n return null;\n obj = objInArray.value;\n text = objInArray.text;\n }\n if (!!text && text[0] == \".\") {\n text = text.substr(1);\n }\n curName = this.getFirstPropertyName(text, obj);\n }\n return { value: obj, text: text };\n };\n ProcessValue.prototype.getObjInArray = function (curValue, text) {\n if (!Array.isArray(curValue))\n return null;\n var index = 1;\n var str = \"\";\n while (index < text.length && text[index] != \"]\") {\n str += text[index];\n index++;\n }\n text = index < text.length ? text.substr(index + 1) : \"\";\n index = this.getIntValue(str);\n if (index < 0 || index >= curValue.length)\n return null;\n return { value: curValue[index], text: text };\n };\n ProcessValue.prototype.getFirstPropertyName = function (name, obj) {\n if (!name)\n return name;\n if (obj.hasOwnProperty(name))\n return name;\n name = name.toLowerCase();\n var A = name[0];\n var a = A.toUpperCase();\n for (var key in obj) {\n var first = key[0];\n if (first === a || first === A) {\n var keyName = key.toLowerCase();\n if (keyName == name)\n return key;\n if (name.length <= keyName.length)\n continue;\n var ch = name[keyName.length];\n if (ch != \".\" && ch != \"[\")\n continue;\n if (keyName == name.substr(0, keyName.length))\n return key;\n }\n }\n return \"\";\n };\n ProcessValue.prototype.getObjectValue = function (obj, name) {\n if (!name)\n return null;\n return obj[name];\n };\n ProcessValue.prototype.getIntValue = function (str) {\n if (str == \"0\" || ((str | 0) > 0 && str % 1 == 0))\n return Number(str);\n return -1;\n };\n return ProcessValue;\n}());\n\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return LocalizableString; });\n\n\n\n/**\n * The class represents the string that supports multi-languages and markdown.\n * It uses in all objects where support for multi-languages and markdown is required.\n */\nvar LocalizableString = /** @class */ (function () {\n function LocalizableString(owner, useMarkdown) {\n if (useMarkdown === void 0) { useMarkdown = false; }\n this.owner = owner;\n this.useMarkdown = useMarkdown;\n this.values = {};\n this.htmlValues = {};\n this.renderedText = null;\n this.calculatedTextValue = null;\n this.onGetTextCallback = null;\n this.onCreating();\n }\n Object.defineProperty(LocalizableString, \"defaultLocale\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName;\n },\n set: function (val) {\n __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"locale\", {\n get: function () {\n return this.owner ? this.owner.getLocale() : \"\";\n },\n enumerable: true,\n configurable: true\n });\n LocalizableString.prototype.strChanged = function () {\n if (this.renderedText === null)\n return;\n this.calculatedTextValue = this.calText();\n if (this.renderedText !== this.calculatedTextValue) {\n this.renderedText = null;\n this.calculatedTextValue = null;\n this.onChanged();\n }\n };\n Object.defineProperty(LocalizableString.prototype, \"text\", {\n get: function () {\n return this.pureText;\n },\n set: function (value) {\n this.setLocaleText(this.locale, value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"calculatedText\", {\n get: function () {\n this.renderedText =\n this.calculatedTextValue !== null\n ? this.calculatedTextValue\n : this.calText();\n this.calculatedTextValue = null;\n return this.renderedText;\n },\n enumerable: true,\n configurable: true\n });\n LocalizableString.prototype.calText = function () {\n var res = this.pureText;\n if (res &&\n this.owner &&\n this.owner.getProcessedText &&\n res.indexOf(\"{\") > -1) {\n res = this.owner.getProcessedText(res);\n }\n if (this.onGetTextCallback)\n res = this.onGetTextCallback(res);\n return res;\n };\n Object.defineProperty(LocalizableString.prototype, \"pureText\", {\n get: function () {\n var loc = this.locale;\n if (!loc)\n loc = __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName;\n var res = this.getValue(loc);\n if (!res && loc == __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName) {\n res = this.getValue(__WEBPACK_IMPORTED_MODULE_1__surveyStrings__[\"a\" /* surveyLocalization */].defaultLocale);\n }\n if (!res && loc !== __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName) {\n res = this.getValue(__WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName);\n }\n if (!res)\n res = \"\";\n return res;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"hasHtml\", {\n get: function () {\n return this.hasHtmlValue();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"html\", {\n get: function () {\n if (!this.hasHtml)\n return \"\";\n return this.getHtmlValue();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"isEmpty\", {\n get: function () {\n return this.getValuesKeys().length == 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"textOrHtml\", {\n get: function () {\n return this.hasHtml ? this.getHtmlValue() : this.calculatedText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"renderedHtml\", {\n get: function () {\n return this.textOrHtml;\n },\n enumerable: true,\n configurable: true\n });\n LocalizableString.prototype.getLocaleText = function (loc) {\n if (!loc)\n loc = __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName;\n var res = this.getValue(loc);\n return res ? res : \"\";\n };\n LocalizableString.prototype.setLocaleText = function (loc, value) {\n if (value == this.getLocaleText(loc))\n return;\n if (value &&\n loc &&\n loc != __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName &&\n !this.getValue(loc) &&\n value == this.getLocaleText(__WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName))\n return;\n if (!loc)\n loc = __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName;\n delete this.htmlValues[loc];\n if (!value) {\n if (this.getValue(loc))\n this.deleteValue(loc);\n }\n else {\n if (typeof value === \"string\") {\n if (loc != __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName &&\n value == this.getLocaleText(__WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName)) {\n this.setLocaleText(loc, null);\n }\n else {\n this.setValue(loc, value);\n if (loc == __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName) {\n this.deleteValuesEqualsToDefault(value);\n }\n }\n }\n }\n this.strChanged();\n };\n LocalizableString.prototype.hasNonDefaultText = function () {\n var keys = this.getValuesKeys();\n if (keys.length == 0)\n return false;\n return keys.length > 1 || keys[0] != __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName;\n };\n LocalizableString.prototype.getLocales = function () {\n var keys = this.getValuesKeys();\n if (keys.length == 0)\n return [];\n return keys;\n };\n LocalizableString.prototype.getJson = function () {\n if (!!this.sharedData)\n return this.getJson();\n var keys = this.getValuesKeys();\n if (keys.length == 0)\n return null;\n if (keys.length == 1 && keys[0] == __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName)\n return this.values[keys[0]];\n return this.values;\n };\n LocalizableString.prototype.setJson = function (value) {\n if (!!this.sharedData) {\n this.setJson(value);\n return;\n }\n this.values = {};\n this.htmlValues = {};\n if (!value)\n return;\n if (typeof value === \"string\") {\n this.setLocaleText(null, value);\n }\n else {\n for (var key in value) {\n this.setLocaleText(key, value[key]);\n }\n }\n this.strChanged();\n };\n LocalizableString.prototype.equals = function (obj) {\n if (!!this.sharedData)\n return this.equals(obj);\n if (!obj || !obj.values)\n return false;\n return __WEBPACK_IMPORTED_MODULE_0__helpers__[\"a\" /* Helpers */].isTwoValueEquals(this.values, obj.values);\n };\n LocalizableString.prototype.onChanged = function () {\n if (this.onStrChanged)\n this.onStrChanged();\n };\n LocalizableString.prototype.onCreating = function () { };\n LocalizableString.prototype.hasHtmlValue = function () {\n if (!this.owner || !this.useMarkdown)\n return false;\n var renderedText = this.calculatedText;\n if (!renderedText)\n return false;\n var loc = this.locale;\n if (!loc)\n loc = __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName;\n this.htmlValues[loc] = this.owner.getMarkdownHtml(renderedText);\n return this.htmlValues[loc] ? true : false;\n };\n LocalizableString.prototype.getHtmlValue = function () {\n var loc = this.locale;\n if (!loc)\n loc = __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName;\n return this.htmlValues[loc];\n };\n LocalizableString.prototype.deleteValuesEqualsToDefault = function (defaultValue) {\n var keys = this.getValuesKeys();\n for (var i = 0; i < keys.length; i++) {\n if (keys[i] == __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\" /* settings */].defaultLocaleName)\n continue;\n if (this.getValue(keys[i]) == defaultValue) {\n this.deleteValue(keys[i]);\n }\n }\n };\n LocalizableString.prototype.getValue = function (loc) {\n if (!!this.sharedData)\n return this.sharedData.getValue(loc);\n return this.values[loc];\n };\n LocalizableString.prototype.setValue = function (loc, value) {\n if (!!this.sharedData)\n this.sharedData.setValue(loc, value);\n else\n this.values[loc] = value;\n };\n LocalizableString.prototype.deleteValue = function (loc) {\n if (!!this.sharedData)\n this.sharedData.deleteValue(loc);\n else\n delete this.values[loc];\n };\n LocalizableString.prototype.getValuesKeys = function () {\n if (!!this.sharedData)\n return this.sharedData.getValuesKeys();\n return Object.keys(this.values);\n };\n return LocalizableString;\n}());\n\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__survey__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__surveyWindow__ = __webpack_require__(77);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__defaultCss_cssstandard__ = __webpack_require__(12);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return VueSurveyModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return VueSurveyWindowModel; });\n\n\n\n\n\nvar VueSurveyModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(VueSurveyModel, _super);\n function VueSurveyModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VueSurveyModel.updatePropertiesHash = function (obj) {\n obj.setPropertyValueCoreHandler = function (propertiesHash, name, val) {\n __WEBPACK_IMPORTED_MODULE_1_vue___default.a.set(propertiesHash, name, val);\n };\n };\n VueSurveyModel.prototype.render = function () {\n if (this.renderCallback) {\n this.renderCallback();\n }\n };\n VueSurveyModel.prototype.onLoadSurveyFromService = function () {\n this.render();\n };\n VueSurveyModel.prototype.onLoadingSurveyFromService = function () {\n this.render();\n };\n Object.defineProperty(VueSurveyModel.prototype, \"css\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_4__defaultCss_cssstandard__[\"a\" /* surveyCss */].getCss();\n },\n set: function (value) {\n this.mergeValues(value, this.css);\n },\n enumerable: true,\n configurable: true\n });\n VueSurveyModel.prototype.setDataValueCore = function (valuesHash, key, value) {\n __WEBPACK_IMPORTED_MODULE_1_vue___default.a.set(valuesHash, key, value);\n };\n VueSurveyModel.prototype.deleteDataValueCore = function (valuesHash, key) {\n __WEBPACK_IMPORTED_MODULE_1_vue___default.a.delete(valuesHash, key);\n };\n VueSurveyModel.prototype.setPropertyValueCore = function (propertiesHash, name, val) {\n __WEBPACK_IMPORTED_MODULE_1_vue___default.a.set(propertiesHash, name, val);\n };\n VueSurveyModel.prototype.questionAdded = function (question, index, parentPanel, rootPanel) {\n VueSurveyModel.updatePropertiesHash(question);\n _super.prototype.questionAdded.call(this, question, index, parentPanel, rootPanel);\n };\n VueSurveyModel.prototype.matrixCellCreated = function (question, options) {\n VueSurveyModel.updatePropertiesHash(options.cellQuestion);\n _super.prototype.matrixCellCreated.call(this, question, options);\n };\n VueSurveyModel.prototype.doOnPageAdded = function (page) {\n VueSurveyModel.updatePropertiesHash(page);\n _super.prototype.doOnPageAdded.call(this, page);\n };\n VueSurveyModel.prototype.doAfterRenderSurvey = function (el) {\n this.afterRenderSurvey(el);\n };\n VueSurveyModel.prototype.panelAdded = function (panel, index, parentPanel, rootPanel) {\n VueSurveyModel.updatePropertiesHash(panel);\n _super.prototype.panelAdded.call(this, panel, index, parentPanel, rootPanel);\n };\n return VueSurveyModel;\n}(__WEBPACK_IMPORTED_MODULE_2__survey__[\"a\" /* SurveyModel */]));\n\nvar VueSurveyWindowModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(VueSurveyWindowModel, _super);\n function VueSurveyWindowModel(jsonObj, initialModel) {\n if (initialModel === void 0) { initialModel = null; }\n return _super.call(this, jsonObj, initialModel) || this;\n }\n VueSurveyWindowModel.prototype.createSurvey = function (jsonObj) {\n return new VueSurveyModel(jsonObj);\n };\n return VueSurveyWindowModel;\n}(__WEBPACK_IMPORTED_MODULE_3__surveyWindow__[\"a\" /* SurveyWindowModel */]));\n\n__WEBPACK_IMPORTED_MODULE_2__survey__[\"a\" /* SurveyModel */].platform = \"vue\";\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__itemvalue__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__choicesRestfull__ = __webpack_require__(66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return QuestionSelectBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionCheckboxBase; });\n\n\n\n\n\n\n\n\n\n\n/**\n * It is a base class for checkbox, dropdown and radiogroup questions.\n */\nvar QuestionSelectBase = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionSelectBase, _super);\n function QuestionSelectBase(name) {\n var _this = _super.call(this, name) || this;\n _this.filteredChoicesValue = null;\n _this.otherItemValue = new __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */](\"other\");\n _this.choicesFromUrl = null;\n _this.cachedValueForUrlRequests = null;\n _this.isChoicesLoaded = false;\n _this.enableOnLoadingChoices = false;\n _this.isSettingDefaultValue = false;\n _this.isSettingComment = false;\n _this.isFirstLoadChoicesFromUrl = true;\n var self = _this;\n _this.choices = _this.createItemValues(\"choices\");\n _this.registerFunctionOnPropertyValueChanged(\"choices\", function () {\n if (!self.filterItems()) {\n self.onVisibleChoicesChanged();\n }\n });\n _this.registerFunctionOnPropertyValueChanged(\"hideIfChoicesEmpty\", function () {\n self.updateVisibilityBasedOnChoices();\n });\n _this.createNewArray(\"visibleChoices\");\n _this.choicesByUrl = _this.createRestfull();\n _this.choicesByUrl.owner = _this;\n var locOtherText = _this.createLocalizableString(\"otherText\", _this, true);\n _this.createLocalizableString(\"otherErrorText\", _this, true);\n _this.otherItemValue.locOwner = _this;\n _this.otherItemValue.setLocText(locOtherText);\n locOtherText.onGetTextCallback = function (text) {\n return !!text ? text : __WEBPACK_IMPORTED_MODULE_5__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"otherItemText\");\n };\n _this.choicesByUrl.beforeSendRequestCallback = function () {\n self.onBeforeSendRequest();\n };\n _this.choicesByUrl.getResultCallback = function (items) {\n self.onLoadChoicesFromUrl(items);\n };\n _this.choicesByUrl.updateResultCallback = function (items, serverResult) {\n if (self.survey) {\n return self.survey.updateChoicesFromServer(self, items, serverResult);\n }\n return items;\n };\n _this.createLocalizableString(\"otherPlaceHolder\", _this);\n return _this;\n }\n QuestionSelectBase.prototype.getType = function () {\n return \"selectbase\";\n };\n QuestionSelectBase.prototype.isLayoutTypeSupported = function (layoutType) {\n return true;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"otherItem\", {\n /**\n * Returns the other item. By using this property, you may change programmatically it's value and text.\n * @see hasOther\n */\n get: function () {\n return this.otherItemValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"isOtherSelected\", {\n /**\n * Returns true if a user select the 'other' item.\n */\n get: function () {\n return this.hasOther && this.getHasOther(this.renderedValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesVisibleIf\", {\n /**\n * An expression that returns true or false. It runs against each choices item and if for this item it returns true, then the item is visible otherwise the item becomes invisible. Please use {item} to get the current item value in the expression.\n * @see visibleIf\n * @see choicesEnableIf\n */\n get: function () {\n return this.getPropertyValue(\"choicesVisibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"choicesVisibleIf\", val);\n this.filterItems();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesEnableIf\", {\n /**\n * An expression that returns true or false. It runs against each choices item and if for this item it returns true, then the item is enabled otherwise the item becomes disabled. Please use {item} to get the current item value in the expression.\n * @see choicesVisibleIf\n */\n get: function () {\n return this.getPropertyValue(\"choicesEnableIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"choicesEnableIf\", val);\n this.filterItems();\n },\n enumerable: true,\n configurable: true\n });\n QuestionSelectBase.prototype.runCondition = function (values, properties) {\n _super.prototype.runCondition.call(this, values, properties);\n this.runItemsEnableCondition(values, properties);\n this.runItemsCondition(values, properties);\n };\n QuestionSelectBase.prototype.setDefaultValue = function () {\n this.isSettingDefaultValue =\n !this.isValueEmpty(this.defaultValue) &&\n this.hasUnknownValue(this.defaultValue);\n _super.prototype.setDefaultValue.call(this);\n this.isSettingDefaultValue = false;\n };\n QuestionSelectBase.prototype.filterItems = function () {\n if (this.isLoadingFromJson ||\n !this.data ||\n this.areInvisibleElementsShowing)\n return false;\n var values = this.getDataFilteredValues();\n var properties = this.getDataFilteredProperties();\n this.runItemsEnableCondition(values, properties);\n return this.runItemsCondition(values, properties);\n };\n QuestionSelectBase.prototype.runItemsCondition = function (values, properties) {\n this.setConditionalChoicesRunner();\n var hasChanges = this.runConditionsForItems(values, properties);\n if (!!this.filteredChoicesValue &&\n this.filteredChoicesValue.length === this.activeChoices.length) {\n this.filteredChoicesValue = null;\n }\n if (hasChanges) {\n if (!!this.filteredChoicesValue) {\n this.clearIncorrectValues();\n }\n this.onVisibleChoicesChanged();\n }\n return hasChanges;\n };\n QuestionSelectBase.prototype.runItemsEnableCondition = function (values, properties) {\n this.setConditionalEnableChoicesRunner();\n var hasChanged = __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].runEnabledConditionsForItems(this.activeChoices, this.conditionChoicesEnableIfRunner, values, properties);\n if (hasChanged) {\n this.clearDisabledValues();\n }\n };\n QuestionSelectBase.prototype.setConditionalChoicesRunner = function () {\n if (this.choicesVisibleIf) {\n if (!this.conditionChoicesVisibleIfRunner) {\n this.conditionChoicesVisibleIfRunner = new __WEBPACK_IMPORTED_MODULE_8__conditions__[\"b\" /* ConditionRunner */](this.choicesVisibleIf);\n }\n this.conditionChoicesVisibleIfRunner.expression = this.choicesVisibleIf;\n }\n else {\n this.conditionChoicesVisibleIfRunner = null;\n }\n };\n QuestionSelectBase.prototype.setConditionalEnableChoicesRunner = function () {\n if (this.choicesEnableIf) {\n if (!this.conditionChoicesEnableIfRunner) {\n this.conditionChoicesEnableIfRunner = new __WEBPACK_IMPORTED_MODULE_8__conditions__[\"b\" /* ConditionRunner */](this.choicesEnableIf);\n }\n this.conditionChoicesEnableIfRunner.expression = this.choicesEnableIf;\n }\n else {\n this.conditionChoicesEnableIfRunner = null;\n }\n };\n QuestionSelectBase.prototype.runConditionsForItems = function (values, properties) {\n this.filteredChoicesValue = [];\n return __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].runConditionsForItems(this.activeChoices, this.filteredChoices, this.conditionChoicesVisibleIfRunner, values, properties);\n };\n QuestionSelectBase.prototype.getHasOther = function (val) {\n return val === this.otherItem.value;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"validatedValue\", {\n get: function () {\n return this.rendredValueToDataCore(this.value);\n },\n enumerable: true,\n configurable: true\n });\n QuestionSelectBase.prototype.createRestfull = function () {\n return new __WEBPACK_IMPORTED_MODULE_7__choicesRestfull__[\"a\" /* ChoicesRestfull */]();\n };\n QuestionSelectBase.prototype.getComment = function () {\n if (!!this.commentValue)\n return this.commentValue;\n if (this.getStoreOthersAsComment())\n return _super.prototype.getComment.call(this);\n return this.commentValue;\n };\n QuestionSelectBase.prototype.setComment = function (newValue) {\n if (this.hasComment || this.getStoreOthersAsComment())\n _super.prototype.setComment.call(this, newValue);\n else {\n if (!this.isSettingComment && newValue != this.commentValue) {\n this.isSettingComment = true;\n this.commentValue = newValue;\n if (this.isOtherSelected && !this.isRenderedValueSetting) {\n this.value = this.rendredValueToData(this.renderedValue);\n }\n this.isSettingComment = false;\n }\n }\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"renderedValue\", {\n get: function () {\n return this.getPropertyValue(\"renderedValue\", null);\n },\n set: function (val) {\n this.setPropertyValue(\"renderedValue\", val);\n this.value = this.rendredValueToData(val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionSelectBase.prototype.setQuestionValue = function (newValue) {\n if (__WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isTwoValueEquals(this.value, newValue))\n return;\n _super.prototype.setQuestionValue.call(this, newValue);\n this.setPropertyValue(\"renderedValue\", this.rendredValueFromData(newValue));\n if (this.hasComment)\n return;\n var isOtherSel = this.isOtherSelected;\n if (isOtherSel && !!this.prevCommentValue) {\n var oldComment = this.prevCommentValue;\n this.prevCommentValue = \"\";\n this.comment = oldComment;\n }\n if (!isOtherSel && !!this.comment) {\n if (this.getStoreOthersAsComment()) {\n this.prevCommentValue = this.comment;\n }\n this.comment = \"\";\n }\n };\n QuestionSelectBase.prototype.setNewValue = function (newValue) {\n newValue = this.valueFromData(newValue);\n if ((!this.choicesByUrl.isRunning &&\n !this.choicesByUrl.isWaitingForParameters) ||\n !this.isValueEmpty(newValue)) {\n this.cachedValueForUrlRequests = newValue;\n }\n _super.prototype.setNewValue.call(this, newValue);\n };\n QuestionSelectBase.prototype.valueFromData = function (val) {\n var choiceitem = __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getItemByValue(this.activeChoices, val);\n if (!!choiceitem) {\n return choiceitem.value;\n }\n return _super.prototype.valueFromData.call(this, val);\n };\n QuestionSelectBase.prototype.rendredValueFromData = function (val) {\n if (this.getStoreOthersAsComment())\n return val;\n return this.renderedValueFromDataCore(val);\n };\n QuestionSelectBase.prototype.rendredValueToData = function (val) {\n if (this.getStoreOthersAsComment())\n return val;\n return this.rendredValueToDataCore(val);\n };\n QuestionSelectBase.prototype.renderedValueFromDataCore = function (val) {\n if (!this.hasUnknownValue(val, true))\n return this.valueFromData(val);\n this.comment = val;\n return this.otherItem.value;\n };\n QuestionSelectBase.prototype.rendredValueToDataCore = function (val) {\n if (val == this.otherItem.value && this.getComment()) {\n val = this.getComment();\n }\n return val;\n };\n QuestionSelectBase.prototype.hasUnknownValue = function (val, includeOther) {\n if (includeOther === void 0) { includeOther = false; }\n if (__WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isValueEmpty(val))\n return false;\n if (includeOther && val == this.otherItem.value)\n return false;\n return __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getItemByValue(this.filteredChoices, val) == null;\n };\n QuestionSelectBase.prototype.isValueDisabled = function (val) {\n var itemValue = __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getItemByValue(this.filteredChoices, val);\n return !!itemValue && !itemValue.isEnabled;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"choices\", {\n /**\n * The list of items. Every item has value and text. If text is empty, the value is rendered. The item text supports markdown.\n * @see choicesByUrl\n */\n get: function () {\n return this.getPropertyValue(\"choices\");\n },\n set: function (newValue) {\n this.setPropertyValue(\"choices\", newValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"hideIfChoicesEmpty\", {\n get: function () {\n return this.getPropertyValue(\"hideIfChoicesEmpty\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"hideIfChoicesEmpty\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"keepIncorrectValues\", {\n get: function () {\n return this.getPropertyValue(\"keepIncorrectValues\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"keepIncorrectValues\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"storeOthersAsComment\", {\n /**\n * Please use survey.storeOthersAsComment to change the behavior on the survey level. This property is depricated and invisible in Survey Creator.\n * By default the entered text in the others input in the checkbox/radiogroup/dropdown are stored as \"question name \" + \"-Comment\". The value itself is \"question name\": \"others\". Set this property to false, to store the entered text directly in the \"question name\" key.\n * Possible values are: \"default\", true, false\n * @see SurveyModel.storeOthersAsComment\n */\n get: function () {\n return this.getPropertyValue(\"storeOthersAsComment\", \"default\");\n },\n set: function (val) {\n this.setPropertyValue(\"storeOthersAsComment\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionSelectBase.prototype.hasOtherChanged = function () {\n this.onVisibleChoicesChanged();\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesOrder\", {\n /**\n * Use this property to render items in a specific order: \"asc\", \"desc\", \"random\". Default value is \"none\".\n */\n get: function () {\n return this.getPropertyValue(\"choicesOrder\");\n },\n set: function (val) {\n val = val.toLowerCase();\n if (val == this.choicesOrder)\n return;\n this.setPropertyValue(\"choicesOrder\", val);\n this.onVisibleChoicesChanged();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"otherText\", {\n /**\n * Use this property to set the different text for other item.\n */\n get: function () {\n return this.getLocalizableStringText(\"otherText\", __WEBPACK_IMPORTED_MODULE_5__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"otherItemText\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"otherText\", val);\n this.onVisibleChoicesChanged();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"locOtherText\", {\n get: function () {\n return this.getLocalizableString(\"otherText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"otherPlaceHolder\", {\n /**\n * Use this property to set the place holder text for other or comment field .\n */\n get: function () {\n return this.getLocalizableStringText(\"otherPlaceHolder\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"otherPlaceHolder\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"locOtherPlaceHolder\", {\n get: function () {\n return this.getLocalizableString(\"otherPlaceHolder\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"otherErrorText\", {\n /**\n * The text that shows when the other item is choosed by the other input is empty.\n */\n get: function () {\n return this.getLocalizableStringText(\"otherErrorText\", __WEBPACK_IMPORTED_MODULE_5__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"otherRequiredError\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"otherErrorText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"locOtherErrorText\", {\n get: function () {\n return this.getLocalizableString(\"otherErrorText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"visibleChoices\", {\n /**\n * The list of items as they will be rendered. If needed items are sorted and the other item is added.\n * @see hasOther\n * @see choicesOrder\n * @see enabledChoices\n */\n get: function () {\n return this.getPropertyValue(\"visibleChoices\", []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"enabledChoices\", {\n /**\n * The list of enabled items as they will be rendered. The disabled items are not included\n * @see hasOther\n * @see choicesOrder\n * @see visibleChoices\n */\n get: function () {\n var res = [];\n var items = this.visibleChoices;\n for (var i = 0; i < items.length; i++) {\n if (items[i].isEnabled)\n res.push(items[i]);\n }\n return res;\n },\n enumerable: true,\n configurable: true\n });\n QuestionSelectBase.prototype.updateVisibleChoices = function () {\n if (this.isLoadingFromJson)\n return;\n var newValue = new Array();\n var calcValue = this.calcVisibleChoices();\n if (!calcValue)\n calcValue = [];\n for (var i = 0; i < calcValue.length; i++) {\n newValue.push(calcValue[i]);\n }\n this.setPropertyValue(\"visibleChoices\", newValue);\n };\n QuestionSelectBase.prototype.calcVisibleChoices = function () {\n if (this.canUseFilteredChoices())\n return this.filteredChoices;\n var res = this.sortVisibleChoices(this.filteredChoices.slice());\n this.addToVisibleChoices(res);\n return res;\n };\n QuestionSelectBase.prototype.canUseFilteredChoices = function () {\n return !this.hasOther && this.choicesOrder == \"none\";\n };\n QuestionSelectBase.prototype.addToVisibleChoices = function (items) {\n if (this.hasOther) {\n items.push(this.otherItem);\n }\n };\n QuestionSelectBase.prototype.getPlainData = function (options) {\n var _this = this;\n if (options === void 0) { options = {\n includeEmpty: true\n }; }\n var questionPlainData = _super.prototype.getPlainData.call(this, options);\n if (!!questionPlainData) {\n var values = Array.isArray(this.value) ? this.value : [this.value];\n questionPlainData.isNode = true;\n questionPlainData.data = values.map(function (dataValue, index) {\n var choice = __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getItemByValue(_this.visibleChoices, dataValue);\n var choiceDataItem = {\n name: index,\n title: \"Choice\",\n value: dataValue,\n displayValue: _this.getChoicesDisplayValue(_this.visibleChoices, dataValue),\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n },\n isNode: false\n };\n if (!!choice) {\n (options.calculations || []).forEach(function (calculation) {\n choiceDataItem[calculation.propertyName] =\n choice[calculation.propertyName];\n });\n }\n return choiceDataItem;\n });\n }\n return questionPlainData;\n };\n /**\n * Returns the text for the current value. If the value is null then returns empty string. If 'other' is selected then returns the text for other value.\n */\n QuestionSelectBase.prototype.getDisplayValueCore = function (keysAsText, value) {\n return this.getChoicesDisplayValue(this.visibleChoices, value);\n };\n QuestionSelectBase.prototype.getChoicesDisplayValue = function (items, val) {\n if (val == this.otherItemValue.value)\n return this.comment ? this.comment : this.locOtherText.textOrHtml;\n var str = __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getTextOrHtmlByValue(items, val);\n return str == \"\" && val ? val : str;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"filteredChoices\", {\n get: function () {\n return this.filteredChoicesValue\n ? this.filteredChoicesValue\n : this.activeChoices;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"activeChoices\", {\n get: function () {\n return this.choicesFromUrl ? this.choicesFromUrl : this.getChoices();\n },\n enumerable: true,\n configurable: true\n });\n QuestionSelectBase.prototype.getChoices = function () {\n return this.choices;\n };\n QuestionSelectBase.prototype.supportComment = function () {\n return true;\n };\n QuestionSelectBase.prototype.supportOther = function () {\n return true;\n };\n QuestionSelectBase.prototype.onCheckForErrors = function (errors) {\n _super.prototype.onCheckForErrors.call(this, errors);\n if (!this.hasOther || !this.isOtherSelected || this.comment)\n return;\n errors.push(new __WEBPACK_IMPORTED_MODULE_6__error__[\"h\" /* OtherEmptyError */](this.otherErrorText, this));\n };\n QuestionSelectBase.prototype.setSurveyImpl = function (value) {\n _super.prototype.setSurveyImpl.call(this, value);\n this.runChoicesByUrl();\n };\n QuestionSelectBase.prototype.getStoreOthersAsComment = function () {\n if (this.isSettingDefaultValue)\n return false;\n return (this.storeOthersAsComment === true ||\n (this.storeOthersAsComment == \"default\" &&\n (this.survey != null ? this.survey.storeOthersAsComment : true)) ||\n (!this.choicesByUrl.isEmpty && !this.choicesFromUrl));\n };\n QuestionSelectBase.prototype.onSurveyLoad = function () {\n _super.prototype.onSurveyLoad.call(this);\n this.runChoicesByUrl();\n this.onVisibleChoicesChanged();\n };\n QuestionSelectBase.prototype.onAnyValueChanged = function (name) {\n _super.prototype.onAnyValueChanged.call(this, name);\n if (name != this.getValueName()) {\n this.runChoicesByUrl();\n }\n };\n QuestionSelectBase.prototype.runChoicesByUrl = function () {\n if (!this.choicesByUrl || this.isLoadingFromJson)\n return;\n var processor = this.surveyImpl\n ? this.surveyImpl.getTextProcessor()\n : this.textProcessor;\n if (!processor)\n processor = this.survey;\n if (!processor)\n return;\n this.isReadyValue = this.isChoicesLoaded || this.choicesByUrl.isEmpty;\n this.choicesByUrl.run(processor);\n };\n QuestionSelectBase.prototype.onBeforeSendRequest = function () {\n if (__WEBPACK_IMPORTED_MODULE_9__settings__[\"a\" /* settings */].disableOnGettingChoicesFromWeb === true && !this.isReadOnly) {\n this.enableOnLoadingChoices = true;\n this.readOnly = true;\n }\n };\n QuestionSelectBase.prototype.onLoadChoicesFromUrl = function (array) {\n if (this.enableOnLoadingChoices) {\n this.readOnly = false;\n }\n if (!this.isReadOnly) {\n var errors = [];\n if (this.choicesByUrl && this.choicesByUrl.error) {\n errors.push(this.choicesByUrl.error);\n }\n this.errors = errors;\n }\n var newChoices = null;\n var checkCachedValuesOnExisting = true;\n if (this.isFirstLoadChoicesFromUrl &&\n !this.cachedValueForUrlRequests &&\n this.defaultValue) {\n this.cachedValueForUrlRequests = this.defaultValue;\n checkCachedValuesOnExisting = false;\n }\n if (this.isValueEmpty(this.cachedValueForUrlRequests)) {\n this.cachedValueForUrlRequests = this.value;\n }\n this.isFirstLoadChoicesFromUrl = false;\n var cachedValues = this.createCachedValueForUrlRequests(this.cachedValueForUrlRequests, checkCachedValuesOnExisting);\n if (array && array.length > 0) {\n newChoices = new Array();\n __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].setData(newChoices, array);\n }\n this.choicesFromUrl = newChoices;\n this.filterItems();\n this.onVisibleChoicesChanged();\n if (newChoices) {\n var newValue = this.updateCachedValueForUrlRequests(cachedValues, newChoices);\n if (!!newValue && !this.isReadOnly) {\n this.locNotificationInData = true;\n this.value = undefined;\n this.locNotificationInData = false;\n this.value = newValue.value;\n }\n }\n this.choicesLoaded();\n };\n QuestionSelectBase.prototype.createCachedValueForUrlRequests = function (val, checkOnExisting) {\n if (this.isValueEmpty(val))\n return null;\n if (Array.isArray(val)) {\n var res = [];\n for (var i = 0; i < val.length; i++) {\n res.push(this.createCachedValueForUrlRequests(val[i], true));\n }\n return res;\n }\n var isExists = checkOnExisting ? !this.hasUnknownValue(val) : true;\n return { value: val, isExists: isExists };\n };\n QuestionSelectBase.prototype.updateCachedValueForUrlRequests = function (val, newChoices) {\n if (this.isValueEmpty(val))\n return null;\n if (Array.isArray(val)) {\n var res = [];\n for (var i = 0; i < val.length; i++) {\n var updatedValue = this.updateCachedValueForUrlRequests(val[i], newChoices);\n if (updatedValue && !this.isValueEmpty(updatedValue.value)) {\n var newValue = updatedValue.value;\n var item = __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getItemByValue(newChoices, updatedValue.value);\n if (!!item) {\n newValue = item.value;\n }\n res.push(newValue);\n }\n }\n return { value: res };\n }\n var value = val.isExists && this.hasUnknownValue(val.value) ? null : val.value;\n var item = __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getItemByValue(newChoices, value);\n if (!!item) {\n value = item.value;\n }\n return { value: value };\n };\n QuestionSelectBase.prototype.onVisibleChoicesChanged = function () {\n if (this.isLoadingFromJson)\n return;\n this.updateVisibleChoices();\n this.updateVisibilityBasedOnChoices();\n };\n QuestionSelectBase.prototype.updateVisibilityBasedOnChoices = function () {\n if (this.hideIfChoicesEmpty) {\n this.visible = !this.filteredChoices || this.filteredChoices.length > 0;\n }\n };\n QuestionSelectBase.prototype.sortVisibleChoices = function (array) {\n var order = this.choicesOrder.toLowerCase();\n if (order == \"asc\")\n return this.sortArray(array, 1);\n if (order == \"desc\")\n return this.sortArray(array, -1);\n if (order == \"random\")\n return this.randomizeArray(array);\n return array;\n };\n QuestionSelectBase.prototype.sortArray = function (array, mult) {\n return array.sort(function (a, b) {\n if (a.calculatedText < b.calculatedText)\n return -1 * mult;\n if (a.calculatedText > b.calculatedText)\n return 1 * mult;\n return 0;\n });\n };\n QuestionSelectBase.prototype.randomizeArray = function (array) {\n return __WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].randomizeArray(array);\n };\n QuestionSelectBase.prototype.clearIncorrectValues = function () {\n if (this.keepIncorrectValues)\n return;\n if (!!this.survey &&\n this.survey.questionCountByValueName(this.getValueName()) > 1)\n return;\n if (this.clearIncorrectValuesCallback) {\n this.clearIncorrectValuesCallback();\n }\n else {\n this.clearIncorrectValuesCore();\n }\n };\n QuestionSelectBase.prototype.clearValueIfInvisible = function () {\n _super.prototype.clearValueIfInvisible.call(this);\n this.clearIncorrectValues();\n };\n QuestionSelectBase.prototype.clearDisabledValues = function () {\n if (!this.survey || !this.survey.clearValueOnDisableItems)\n return;\n this.clearDisabledValuesCore();\n };\n QuestionSelectBase.prototype.clearIncorrectValuesCore = function () {\n var val = this.value;\n if (this.canClearValueAnUnknow(val)) {\n this.clearValue();\n }\n };\n QuestionSelectBase.prototype.canClearValueAnUnknow = function (val) {\n if (!this.getStoreOthersAsComment() && this.isOtherSelected)\n return false;\n return this.hasUnknownValue(val, true);\n };\n QuestionSelectBase.prototype.clearDisabledValuesCore = function () {\n if (this.isValueDisabled(this.value)) {\n this.clearValue();\n }\n };\n QuestionSelectBase.prototype.clearUnusedValues = function () {\n _super.prototype.clearUnusedValues.call(this);\n if (!this.isOtherSelected && !this.hasComment) {\n this.comment = \"\";\n }\n };\n QuestionSelectBase.prototype.getColumnClass = function () {\n var columnClass = this.cssClasses.column;\n if (this.hasColumns) {\n columnClass += \" sv-q-column-\" + this.colCount;\n }\n return columnClass;\n };\n QuestionSelectBase.prototype.getLabelClass = function (isChecked) {\n var labelClass = this.cssClasses.label;\n if (isChecked) {\n labelClass += \" \" + this.cssClasses.labelChecked;\n }\n return labelClass;\n };\n QuestionSelectBase.prototype.getControlLabelClass = function (isChecked) {\n var controlLabelClass = this.cssClasses.controlLabel;\n if (isChecked) {\n controlLabelClass += \" \" + this.cssClasses.controlLabelChecked;\n }\n return controlLabelClass;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"columns\", {\n get: function () {\n var columns = [];\n var colCount = this.colCount;\n if (this.hasColumns && this.visibleChoices.length > 0) {\n for (var i = 0; i < colCount; i++) {\n var column = [];\n for (var j = i; j < this.visibleChoices.length; j += colCount) {\n column.push(this.visibleChoices[j]);\n }\n columns.push(column);\n }\n }\n return columns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"hasColumns\", {\n get: function () {\n return this.colCount > 1;\n },\n enumerable: true,\n configurable: true\n });\n QuestionSelectBase.prototype.choicesLoaded = function () {\n this.isChoicesLoaded = true;\n var oldIsReady = this.isReadyValue;\n this.isReadyValue = true;\n this.onReadyChanged &&\n this.onReadyChanged.fire(this, {\n question: this,\n isReady: true,\n olsIsReady: oldIsReady\n });\n };\n return QuestionSelectBase;\n}(__WEBPACK_IMPORTED_MODULE_2__question__[\"a\" /* Question */]));\n\n/**\n * A base class for checkbox and radiogroup questions. It introduced a colCount property.\n */\nvar QuestionCheckboxBase = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionCheckboxBase, _super);\n function QuestionCheckboxBase(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n return _this;\n }\n Object.defineProperty(QuestionCheckboxBase.prototype, \"colCount\", {\n /**\n * The number of columns for radiogroup and checkbox questions. Items are rendred in one line if the value is 0.\n */\n get: function () {\n return this.getPropertyValue(\"colCount\", this.isFlowLayout ? 0 : 1);\n },\n set: function (value) {\n if (value < 0 || value > 5 || this.isFlowLayout)\n return;\n this.setPropertyValue(\"colCount\", value);\n this.fireCallback(this.colCountChangedCallback);\n },\n enumerable: true,\n configurable: true\n });\n QuestionCheckboxBase.prototype.onParentChanged = function () {\n _super.prototype.onParentChanged.call(this);\n if (this.isFlowLayout) {\n this.setPropertyValue(\"colCount\", null);\n }\n };\n return QuestionCheckboxBase;\n}(QuestionSelectBase));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"selectbase\", [\n { name: \"hasComment:boolean\", layout: \"row\" },\n {\n name: \"commentText\",\n serializationProperty: \"locCommentText\",\n layout: \"row\"\n },\n \"hasOther:boolean\",\n { name: \"otherPlaceHolder\", serializationProperty: \"locOtherPlaceHolder\" },\n {\n name: \"choices:itemvalue[]\",\n baseValue: function () {\n return __WEBPACK_IMPORTED_MODULE_5__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"choices_Item\");\n }\n },\n {\n name: \"choicesOrder\",\n default: \"none\",\n choices: [\"none\", \"asc\", \"desc\", \"random\"]\n },\n {\n name: \"choicesByUrl:restfull\",\n className: \"ChoicesRestfull\",\n onGetValue: function (obj) {\n return obj.choicesByUrl.getData();\n },\n onSetValue: function (obj, value) {\n obj.choicesByUrl.setData(value);\n }\n },\n \"hideIfChoicesEmpty:boolean\",\n \"choicesVisibleIf:condition\",\n \"choicesEnableIf:condition\",\n { name: \"otherText\", serializationProperty: \"locOtherText\" },\n { name: \"otherErrorText\", serializationProperty: \"locOtherErrorText\" },\n {\n name: \"storeOthersAsComment\",\n default: \"default\",\n choices: [\"default\", true, false],\n visible: false\n }\n], null, \"question\");\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"checkboxbase\", [\n {\n name: \"colCount:number\",\n default: 1,\n choices: [0, 1, 2, 3, 4, 5],\n layout: \"row\"\n }\n], null, \"selectbase\");\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__helpers__ = __webpack_require__(6);\n/* unused harmony export TextPreProcessorItem */\n/* unused harmony export TextPreProcessorValue */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return TextPreProcessor; });\n\nvar TextPreProcessorItem = /** @class */ (function () {\n function TextPreProcessorItem() {\n }\n return TextPreProcessorItem;\n}());\n\nvar TextPreProcessorValue = /** @class */ (function () {\n function TextPreProcessorValue(name, returnDisplayValue) {\n this.name = name;\n this.returnDisplayValue = returnDisplayValue;\n this.isExists = false;\n this.canProcess = true;\n }\n return TextPreProcessorValue;\n}());\n\nvar TextPreProcessor = /** @class */ (function () {\n function TextPreProcessor() {\n }\n TextPreProcessor.prototype.process = function (text, returnDisplayValue, doEncoding) {\n if (returnDisplayValue === void 0) { returnDisplayValue = false; }\n if (doEncoding === void 0) { doEncoding = false; }\n this.hasAllValuesOnLastRunValue = true;\n if (!text)\n return text;\n if (!this.onProcess)\n return text;\n var items = this.getItems(text);\n for (var i = items.length - 1; i >= 0; i--) {\n var item = items[i];\n var name = this.getName(text.substring(item.start + 1, item.end));\n if (!name)\n continue;\n var textValue = new TextPreProcessorValue(name, returnDisplayValue);\n this.onProcess(textValue);\n if (!textValue.isExists) {\n if (textValue.canProcess) {\n this.hasAllValuesOnLastRunValue = false;\n }\n continue;\n }\n if (__WEBPACK_IMPORTED_MODULE_0__helpers__[\"a\" /* Helpers */].isValueEmpty(textValue.value)) {\n this.hasAllValuesOnLastRunValue = false;\n }\n var replacedValue = !__WEBPACK_IMPORTED_MODULE_0__helpers__[\"a\" /* Helpers */].isValueEmpty(textValue.value)\n ? textValue.value\n : \"\";\n if (doEncoding) {\n replacedValue = encodeURIComponent(replacedValue);\n }\n text =\n text.substr(0, item.start) + replacedValue + text.substr(item.end + 1);\n }\n return text;\n };\n Object.defineProperty(TextPreProcessor.prototype, \"hasAllValuesOnLastRun\", {\n get: function () {\n return !!this.hasAllValuesOnLastRunValue;\n },\n enumerable: true,\n configurable: true\n });\n TextPreProcessor.prototype.getItems = function (text) {\n var items = [];\n var length = text.length;\n var start = -1;\n var ch = \"\";\n for (var i = 0; i < length; i++) {\n ch = text[i];\n if (ch == \"{\")\n start = i;\n if (ch == \"}\") {\n if (start > -1) {\n var item = new TextPreProcessorItem();\n item.start = start;\n item.end = i;\n items.push(item);\n }\n start = -1;\n }\n }\n return items;\n };\n TextPreProcessor.prototype.getName = function (name) {\n if (!name)\n return;\n return name.trim();\n };\n return TextPreProcessor;\n}());\n\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__defaultCss_cssstandard__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DragDropInfo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return QuestionRowModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return PanelModelBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return PanelModel; });\n\n\n\n\n\n\n\n\nvar DragDropInfo = /** @class */ (function () {\n function DragDropInfo(source, target, nestedPanelDepth) {\n if (nestedPanelDepth === void 0) { nestedPanelDepth = -1; }\n this.source = source;\n this.target = target;\n this.nestedPanelDepth = nestedPanelDepth;\n }\n return DragDropInfo;\n}());\n\nvar QuestionRowModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionRowModel, _super);\n function QuestionRowModel(panel) {\n var _this = _super.call(this) || this;\n _this.panel = panel;\n _this.visible = panel.areInvisibleElementsShowing;\n _this.createNewArray(\"elements\");\n return _this;\n }\n Object.defineProperty(QuestionRowModel.prototype, \"elements\", {\n get: function () {\n return this.getPropertyValue(\"elements\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRowModel.prototype, \"visible\", {\n get: function () {\n return this.getPropertyValue(\"visible\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"visible\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRowModel.prototype, \"visibleElements\", {\n get: function () {\n return this.elements.filter(function (e) { return e.isVisible; });\n },\n enumerable: true,\n configurable: true\n });\n QuestionRowModel.prototype.updateVisible = function () {\n this.visible = this.calcVisible();\n this.setWidth();\n };\n QuestionRowModel.prototype.addElement = function (q) {\n this.elements.push(q);\n this.updateVisible();\n };\n Object.defineProperty(QuestionRowModel.prototype, \"index\", {\n get: function () {\n return this.panel.rows.indexOf(this);\n },\n enumerable: true,\n configurable: true\n });\n QuestionRowModel.prototype.setWidth = function () {\n var visCount = this.visibleElements.length;\n if (visCount == 0)\n return;\n var counter = 0;\n for (var i = 0; i < this.elements.length; i++) {\n if (this.elements[i].isVisible) {\n var q = this.elements[i];\n q.renderWidth =\n !!q.width && typeof q.width === \"string\"\n ? q.width\n : (100 / visCount).toFixed(6) + \"%\";\n q.rightIndent = counter < visCount - 1 ? 1 : 0;\n counter++;\n }\n else {\n this.elements[i].renderWidth = \"\";\n }\n }\n };\n QuestionRowModel.prototype.calcVisible = function () {\n return this.visibleElements.length > 0;\n };\n return QuestionRowModel;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"a\" /* Base */]));\n\n/**\n * A base class for a Panel and Page objects.\n */\nvar PanelModelBase = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(PanelModelBase, _super);\n function PanelModelBase(name) {\n if (name === void 0) { name = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.isQuestionsReady = false;\n _this.questionsValue = new Array();\n _this.conditionVersion = -1;\n _this.createNewArray(\"rows\");\n _this.elementsValue = _this.createNewArray(\"elements\", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));\n _this.registerFunctionOnPropertyValueChanged(\"questionTitleLocation\", _this.onVisibleChanged.bind(_this));\n _this.id = PanelModelBase.getPanelId();\n _this.createLocalizableString(\"title\", _this, true);\n _this.createLocalizableString(\"description\", _this, true);\n _this.createLocalizableString(\"requiredErrorText\", _this);\n return _this;\n }\n PanelModelBase.getPanelId = function () {\n return \"sp_\" + PanelModelBase.panelCounter++;\n };\n PanelModelBase.prototype.getType = function () {\n return \"panelbase\";\n };\n PanelModelBase.prototype.setSurveyImpl = function (value) {\n _super.prototype.setSurveyImpl.call(this, value);\n if (this.isDesignMode)\n this.onVisibleChanged();\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].setSurveyImpl(value);\n }\n };\n PanelModelBase.prototype.endLoadingFromJson = function () {\n _super.prototype.endLoadingFromJson.call(this);\n this.markQuestionListDirty();\n this.onRowsChanged();\n };\n Object.defineProperty(PanelModelBase.prototype, \"title\", {\n /**\n * PanelModel or PageModel title property.\n * @description\n */\n get: function () {\n return this.getLocalizableStringText(\"title\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"title\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"locTitle\", {\n get: function () {\n return this.getLocalizableString(\"title\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"description\", {\n /**\n * PanelModel or PageModel description property. It renders under title by using smaller font. Unlike the title, description can be empty.\n * @see title\n */\n get: function () {\n return this.getLocalizableStringText(\"description\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"description\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"locDescription\", {\n get: function () {\n return this.getLocalizableString(\"description\");\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].locStrsChanged();\n }\n };\n Object.defineProperty(PanelModelBase.prototype, \"requiredErrorText\", {\n /**\n * The custom text that will be shown on required error. Use this property, if you do not want to show the default text.\n */\n get: function () {\n return this.getLocalizableStringText(\"requiredErrorText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"requiredErrorText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"locRequiredErrorText\", {\n get: function () {\n return this.getLocalizableString(\"requiredErrorText\");\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.getLocale = function () {\n return this.survey\n ? this.survey.getLocale()\n : \"\";\n };\n PanelModelBase.prototype.getMarkdownHtml = function (text) {\n return this.survey ? this.survey.getSurveyMarkdownHtml(this, text) : null;\n };\n PanelModelBase.prototype.getProcessedText = function (text) {\n return this.textProcessor\n ? this.textProcessor.processText(text, true)\n : text;\n };\n Object.defineProperty(PanelModelBase.prototype, \"parent\", {\n /**\n * A parent element. It is always null for the Page object and always not null for the Panel object. Panel object may contain Questions and other Panels.\n */\n get: function () {\n return this.getPropertyValue(\"parent\", null);\n },\n set: function (val) {\n this.setPropertyValue(\"parent\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"depth\", {\n get: function () {\n if (this.parent == null)\n return 0;\n return this.parent.depth + 1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"visibleIf\", {\n /**\n * An expression that returns true or false. If it returns true the Panel becomes visible and if it returns false the Panel becomes invisible. The library runs the expression on survey start and on changing a question value. If the property is empty then visible property is used.\n * @see visible\n */\n get: function () {\n return this.getPropertyValue(\"visibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"visibleIf\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"cssClasses\", {\n get: function () {\n var classes = { error: {} };\n this.copyCssClasses(classes, this.css);\n this.copyCssClasses(classes.error, this.css.error);\n if (this.survey) {\n this.survey.updatePanelCssClasses(this, classes);\n }\n return classes;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"css\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_5__defaultCss_cssstandard__[\"a\" /* surveyCss */].getCss();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"id\", {\n /**\n * A unique element identificator. It is generated automatically.\n */\n get: function () {\n return this.getPropertyValue(\"id\");\n },\n set: function (val) {\n this.setPropertyValue(\"id\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"isPanel\", {\n /**\n * Returns true if the current object is Panel. Returns false if the current object is Page (a root Panel).\n */\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.getPanel = function () {\n return this;\n };\n PanelModelBase.prototype.getLayoutType = function () {\n return \"row\";\n };\n PanelModelBase.prototype.isLayoutTypeSupported = function (layoutType) {\n return layoutType !== \"flow\";\n };\n Object.defineProperty(PanelModelBase.prototype, \"questions\", {\n /**\n * Returns the list of all questions located in the Panel/Page, including in the nested Panels.\n * @see Question\n * @see elements\n */\n get: function () {\n if (!this.isQuestionsReady) {\n this.questionsValue = [];\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n if (el.isPanel) {\n var qs = el.questions;\n for (var j = 0; j < qs.length; j++) {\n this.questionsValue.push(qs[j]);\n }\n }\n else {\n this.questionsValue.push(el);\n }\n }\n this.isQuestionsReady = true;\n }\n return this.questionsValue;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the question by its name\n * @param name the question name\n */\n PanelModelBase.prototype.getQuestionByName = function (name) {\n var questions = this.questions;\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].name == name)\n return questions[i];\n }\n return null;\n };\n /**\n * Retuns the element by its name. It works recursively.\n * @param name the element name\n */\n PanelModelBase.prototype.getElementByName = function (name) {\n var elements = this.elements;\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n if (el.name == name)\n return el;\n var pnl = el.getPanel();\n if (!!pnl) {\n var res = pnl.getElementByName(name);\n if (!!res)\n return res;\n }\n }\n return null;\n };\n PanelModelBase.prototype.getQuestionByValueName = function (valueName) {\n var questions = this.questions;\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].getValueName() == valueName)\n return questions[i];\n }\n return null;\n };\n /**\n * Returns question values on the current page\n */\n PanelModelBase.prototype.getValue = function () {\n var data = {};\n var questions = this.questions;\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n if (q.isEmpty())\n continue;\n var valueName = q.getValueName();\n data[valueName] = q.value;\n if (!!this.data) {\n var comment = this.data.getComment(valueName);\n if (!!comment) {\n data[valueName + __WEBPACK_IMPORTED_MODULE_7__settings__[\"a\" /* settings */].commentPrefix] = comment;\n }\n }\n }\n return data;\n };\n /**\n * Returns question comments on the current page\n */\n PanelModelBase.prototype.getComments = function () {\n var comments = {};\n if (!this.data)\n return comments;\n var questions = this.questions;\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n var comment = this.data.getComment(q.getValueName());\n if (!!comment) {\n comments[q.getValueName()] = comment;\n }\n }\n return comments;\n };\n /**\n * Call this function to remove all question values from the current page/panel, that end-user will not be able to enter.\n * For example the value that doesn't exists in a radigroup/dropdown/checkbox choices or matrix rows/columns.\n * Please note, this function doesn't clear values for invisible questions or values that doesn't associated with questions.\n * @see Question.clearIncorrectValues\n */\n PanelModelBase.prototype.clearIncorrectValues = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].clearIncorrectValues();\n }\n };\n /**\n * Call this function to clear all errors in the panel / page and all its child elements (panels and questions)\n */\n PanelModelBase.prototype.clearErrors = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].clearErrors();\n }\n this.errors = [];\n };\n PanelModelBase.prototype.markQuestionListDirty = function () {\n this.isQuestionsReady = false;\n if (this.parent)\n this.parent.markQuestionListDirty();\n };\n Object.defineProperty(PanelModelBase.prototype, \"elements\", {\n /**\n * Returns the list of the elements in the object, Panel/Page. Elements can be questions or panels. The function doesn't return elements in the nested Panels.\n */\n get: function () {\n return this.elementsValue;\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.getElementsInDesign = function (includeHidden) {\n if (includeHidden === void 0) { includeHidden = false; }\n return this.elements;\n };\n /**\n * Returns true if the current element belongs to the Panel/Page. It looks in nested Panels as well.\n * @param element\n * @see PanelModel\n */\n PanelModelBase.prototype.containsElement = function (element) {\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n if (el == element)\n return true;\n var pnl = el.getPanel();\n if (!!pnl) {\n if (pnl.containsElement(element))\n return true;\n }\n }\n return false;\n };\n Object.defineProperty(PanelModelBase.prototype, \"isRequired\", {\n /**\n * Set this property to true, to require the answer at least in one question in the panel.\n */\n get: function () {\n return this.getPropertyValue(\"isRequired\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isRequired\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns true, if there is an error on this Page or inside the current Panel\n * @param fireCallback set it to true, to show errors in UI\n * @param focusOnFirstError set it to true to focus on the first question that doesn't pass the validation\n */\n PanelModelBase.prototype.hasErrors = function (fireCallback, focusOnFirstError, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (focusOnFirstError === void 0) { focusOnFirstError = false; }\n if (rec === void 0) { rec = null; }\n rec = !!rec\n ? rec\n : {\n fireCallback: fireCallback,\n focuseOnFirstError: focusOnFirstError,\n firstErrorQuestion: null,\n result: false\n };\n this.hasErrorsCore(rec);\n if (rec.firstErrorQuestion) {\n rec.firstErrorQuestion.focus(true);\n }\n return rec.result;\n };\n PanelModelBase.prototype.hasErrorsInPanels = function (rec) {\n var errors = [];\n this.hasRequiredError(rec, errors);\n if (this.survey) {\n var customError = this.survey.validatePanel(this);\n if (customError) {\n errors.push(customError);\n rec.result = true;\n }\n }\n if (!!rec.fireCallback) {\n this.errors = errors;\n }\n };\n //ISurveyErrorOwner\n PanelModelBase.prototype.getErrorCustomText = function (text, error) {\n if (!!this.survey)\n return this.survey.getErrorCustomText(text, error);\n return text;\n };\n PanelModelBase.prototype.hasRequiredError = function (rec, errors) {\n if (!this.isRequired)\n return;\n var visQuestions = [];\n this.addQuestionsToList(visQuestions, true);\n if (visQuestions.length == 0)\n return;\n for (var i = 0; i < visQuestions.length; i++) {\n if (!visQuestions[i].isEmpty())\n return;\n }\n rec.result = true;\n errors.push(new __WEBPACK_IMPORTED_MODULE_6__error__[\"b\" /* OneAnswerRequiredError */](this.requiredErrorText, this));\n if (rec.focuseOnFirstError && !rec.firstErrorQuestion) {\n rec.firstErrorQuestion = visQuestions[0];\n }\n };\n PanelModelBase.prototype.hasErrorsCore = function (rec) {\n var elements = this.elements;\n var element = null;\n for (var i = 0; i < elements.length; i++) {\n element = elements[i];\n if (!element.isVisible)\n continue;\n if (element.isPanel) {\n element.hasErrorsCore(rec);\n }\n else {\n var question = element;\n if (question.isReadOnly)\n continue;\n if (question.hasErrors(rec.fireCallback, rec)) {\n if (rec.focuseOnFirstError && rec.firstErrorQuestion == null) {\n rec.firstErrorQuestion = question;\n }\n rec.result = true;\n }\n }\n }\n this.hasErrorsInPanels(rec);\n this.updateContainsErrors();\n };\n PanelModelBase.prototype.getContainsErrors = function () {\n var res = _super.prototype.getContainsErrors.call(this);\n if (res)\n return res;\n var elements = this.elements;\n for (var i = 0; i < elements.length; i++) {\n if (elements[i].containsErrors)\n return true;\n }\n return false;\n };\n PanelModelBase.prototype.updateElementVisibility = function () {\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n el.setPropertyValue(\"isVisible\", el.isVisible);\n if (el.isPanel) {\n el.updateElementVisibility();\n }\n }\n };\n PanelModelBase.prototype.getFirstQuestionToFocus = function (withError) {\n if (withError === void 0) { withError = false; }\n var elements = this.elements;\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n if (!el.isVisible)\n continue;\n if (el.isPanel) {\n var res = el.getFirstQuestionToFocus(withError);\n if (!!res)\n return res;\n }\n else {\n var q = el;\n if (q.hasInput && (!withError || q.currentErrorCount > 0))\n return q;\n }\n }\n return null;\n };\n /**\n * Call it to focus the input on the first question\n */\n PanelModelBase.prototype.focusFirstQuestion = function () {\n var q = this.getFirstQuestionToFocus();\n if (!!q) {\n q.focus();\n }\n };\n /**\n * Call it to focus the input of the first question that has an error.\n */\n PanelModelBase.prototype.focusFirstErrorQuestion = function () {\n var q = this.getFirstQuestionToFocus(true);\n if (!!q) {\n q.focus();\n }\n };\n /**\n * Fill list array with the questions.\n * @param list\n * @param visibleOnly set it to true to get visible questions only\n */\n PanelModelBase.prototype.addQuestionsToList = function (list, visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n this.addElementsToList(list, visibleOnly, includingDesignTime, false);\n };\n /**\n * Fill list array with the panels.\n * @param list\n */\n PanelModelBase.prototype.addPanelsIntoList = function (list, visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n this.addElementsToList(list, visibleOnly, includingDesignTime, true);\n };\n PanelModelBase.prototype.addElementsToList = function (list, visibleOnly, includingDesignTime, isPanel) {\n if (visibleOnly && !this.visible)\n return;\n this.addElementsToListCore(list, this.elements, visibleOnly, includingDesignTime, isPanel);\n };\n PanelModelBase.prototype.addElementsToListCore = function (list, elements, visibleOnly, includingDesignTime, isPanel) {\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n if (visibleOnly && !el.visible)\n continue;\n if ((isPanel && el.isPanel) || (!isPanel && !el.isPanel)) {\n list.push(el);\n }\n if (el.isPanel) {\n el.addElementsToListCore(list, el.elements, visibleOnly, includingDesignTime, isPanel);\n }\n else {\n if (includingDesignTime) {\n this.addElementsToListCore(list, el.getElementsInDesign(false), visibleOnly, includingDesignTime, isPanel);\n }\n }\n }\n };\n Object.defineProperty(PanelModelBase.prototype, \"isActive\", {\n /**\n * Returns true if the current object is Page and it is the current page.\n */\n get: function () {\n return !this.survey || this.survey.currentPage == this.root;\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.updateCustomWidgets = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].updateCustomWidgets();\n }\n };\n Object.defineProperty(PanelModelBase.prototype, \"questionTitleLocation\", {\n /**\n * Set this property different from \"default\" to set the specific question title location for this panel/page.\n * @see SurveyModel.questionTitleLocation\n */\n get: function () {\n return this.getPropertyValue(\"questionTitleLocation\");\n },\n set: function (value) {\n this.setPropertyValue(\"questionTitleLocation\", value.toLowerCase());\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.getQuestionTitleLocation = function () {\n if (this.onGetQuestionTitleLocation)\n return this.onGetQuestionTitleLocation();\n if (this.questionTitleLocation != \"default\")\n return this.questionTitleLocation;\n if (this.parent)\n return this.parent.getQuestionTitleLocation();\n return this.survey ? this.survey.questionTitleLocation : \"top\";\n };\n PanelModelBase.prototype.getChildrenLayoutType = function () {\n return \"row\";\n };\n Object.defineProperty(PanelModelBase.prototype, \"root\", {\n get: function () {\n var res = this;\n while (res.parent)\n res = res.parent;\n return res;\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.childVisibilityChanged = function () {\n var newIsVisibleValue = this.getIsPageVisible(null);\n var oldIsVisibleValue = this.getPropertyValue(\"isVisible\", true);\n if (newIsVisibleValue !== oldIsVisibleValue) {\n this.onVisibleChanged();\n }\n };\n PanelModelBase.prototype.createRow = function () {\n return new QuestionRowModel(this);\n };\n PanelModelBase.prototype.onSurveyLoad = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].onSurveyLoad();\n }\n this.onElementVisibilityChanged(this);\n };\n PanelModelBase.prototype.onFirstRendering = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].onFirstRendering();\n }\n this.onRowsChanged();\n };\n Object.defineProperty(PanelModelBase.prototype, \"rows\", {\n get: function () {\n return this.getPropertyValue(\"rows\");\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.onRowsChanged = function () {\n if (this.isLoadingFromJson)\n return;\n this.setPropertyValue(\"rows\", this.buildRows());\n };\n PanelModelBase.prototype.onAddElement = function (element, index) {\n element.setSurveyImpl(this.surveyImpl);\n element.parent = this;\n this.markQuestionListDirty();\n this.updateRowsOnElementAdded(element, index);\n if (element.isPanel) {\n var p = element;\n if (this.survey) {\n this.survey.panelAdded(p, index, this, this.root);\n }\n }\n else {\n if (this.survey) {\n var q = element;\n this.survey.questionAdded(q, index, this, this.root);\n }\n }\n if (!!this.addElementCallback)\n this.addElementCallback(element);\n var self = this;\n element.registerFunctionOnPropertiesValueChanged([\"visible\", \"isVisible\"], function () {\n self.onElementVisibilityChanged(element);\n }, this.id);\n element.registerFunctionOnPropertyValueChanged(\"startWithNewLine\", function () {\n self.onElementStartWithNewLineChanged(element);\n }, this.id);\n this.onElementVisibilityChanged(this);\n };\n PanelModelBase.prototype.onRemoveElement = function (element) {\n element.parent = null;\n this.markQuestionListDirty();\n element.unRegisterFunctionOnPropertiesValueChanged([\"visible\", \"isVisible\", \"startWithNewLine\"], this.id);\n this.updateRowsOnElementRemoved(element);\n if (!element.isPanel) {\n if (this.survey)\n this.survey.questionRemoved(element);\n }\n else {\n if (this.survey)\n this.survey.panelRemoved(element);\n }\n if (!!this.removeElementCallback)\n this.removeElementCallback(element);\n this.onElementVisibilityChanged(this);\n };\n PanelModelBase.prototype.onElementVisibilityChanged = function (element) {\n if (this.isLoadingFromJson)\n return;\n this.updateRowsVisibility(element);\n this.childVisibilityChanged();\n if (!!this.parent) {\n this.parent.onElementVisibilityChanged(this);\n }\n };\n PanelModelBase.prototype.onElementStartWithNewLineChanged = function (element) {\n this.onRowsChanged();\n };\n PanelModelBase.prototype.updateRowsVisibility = function (element) {\n var rows = this.rows;\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n if (row.elements.indexOf(element) > -1) {\n row.updateVisible();\n break;\n }\n }\n };\n PanelModelBase.prototype.canBuildRows = function () {\n return !this.isLoadingFromJson && this.getChildrenLayoutType() == \"row\";\n };\n PanelModelBase.prototype.buildRows = function () {\n if (!this.canBuildRows())\n return [];\n var result = new Array();\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n var isNewRow = i == 0 || el.startWithNewLine;\n var row = isNewRow ? this.createRow() : result[result.length - 1];\n if (isNewRow)\n result.push(row);\n row.addElement(el);\n }\n for (var i = 0; i < result.length; i++) {\n result[i].updateVisible();\n }\n return result;\n };\n PanelModelBase.prototype.updateRowsOnElementAdded = function (element, index) {\n if (!this.canBuildRows())\n return;\n var dragDropInfo = new DragDropInfo(null, element);\n dragDropInfo.target = element;\n dragDropInfo.isEdge = this.elements.length > 1;\n if (this.elements.length < 2) {\n dragDropInfo.destination = this;\n }\n else {\n dragDropInfo.isBottom = index > 0;\n if (index == 0) {\n dragDropInfo.destination = this.elements[1];\n }\n else {\n dragDropInfo.destination = this.elements[index - 1];\n }\n }\n this.dragDropAddTargetToRow(dragDropInfo, null);\n };\n PanelModelBase.prototype.updateRowsOnElementRemoved = function (element) {\n if (!this.canBuildRows())\n return;\n this.updateRowsRemoveElementFromRow(element, this.findRowByElement(element));\n };\n PanelModelBase.prototype.updateRowsRemoveElementFromRow = function (element, row) {\n if (!row || !row.panel)\n return;\n var elIndex = row.elements.indexOf(element);\n if (elIndex < 0)\n return;\n row.elements.splice(elIndex, 1);\n if (row.elements.length > 0) {\n row.updateVisible();\n }\n else {\n if (row.index >= 0) {\n row.panel.rows.splice(row.index, 1);\n }\n }\n };\n PanelModelBase.prototype.findRowByElement = function (el) {\n var rows = this.rows;\n for (var i = 0; i < rows.length; i++) {\n if (rows[i].elements.indexOf(el) > -1)\n return rows[i];\n }\n return null;\n };\n PanelModelBase.prototype.elementWidthChanged = function (el) {\n if (this.isLoadingFromJson)\n return;\n var row = this.findRowByElement(el);\n if (!!row) {\n row.updateVisible();\n }\n };\n Object.defineProperty(PanelModelBase.prototype, \"processedTitle\", {\n /**\n * Returns rendered title text or html.\n */\n get: function () {\n return this.getRenderedTitle(this.locTitle.textOrHtml);\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.getRenderedTitle = function (str) {\n return this.textProcessor != null\n ? this.textProcessor.processText(str, true)\n : str;\n };\n Object.defineProperty(PanelModelBase.prototype, \"visible\", {\n /**\n * Use it to get/set the object visibility.\n * @see visibleIf\n */\n get: function () {\n return this.getPropertyValue(\"visible\", true);\n },\n set: function (value) {\n if (value === this.visible)\n return;\n this.setPropertyValue(\"visible\", value);\n this.setPropertyValue(\"isVisible\", this.isVisible);\n if (!this.isLoadingFromJson)\n this.onVisibleChanged();\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.onVisibleChanged = function () {\n this.setPropertyValue(\"isVisible\", this.isVisible);\n };\n Object.defineProperty(PanelModelBase.prototype, \"isVisible\", {\n /**\n * Returns true if object is visible or survey is in design mode right now.\n */\n get: function () {\n return this.areInvisibleElementsShowing || this.getIsPageVisible(null);\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.getIsPageVisible = function (exceptionQuestion) {\n if (!this.visible)\n return false;\n for (var i = 0; i < this.elements.length; i++) {\n if (this.elements[i] == exceptionQuestion)\n continue;\n if (this.elements[i].isVisible)\n return true;\n }\n return false;\n };\n PanelModelBase.prototype.setVisibleIndex = function (index) {\n if (!this.isVisible || index < 0) {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].setVisibleIndex(-1);\n }\n return 0;\n }\n var startIndex = index;\n for (var i = 0; i < this.elements.length; i++) {\n index += this.elements[i].setVisibleIndex(index);\n }\n return index - startIndex;\n };\n Object.defineProperty(PanelModelBase.prototype, \"isReadOnly\", {\n /**\n * Retuns true if readOnly property is true or survey is in display mode or parent panel/page is readOnly.\n * @see SurveyModel.model\n * @see readOnly\n */\n get: function () {\n var isParentReadOnly = !!this.parent && this.parent.isReadOnly;\n var isSurveyReadOnly = !!this.survey && this.survey.isDisplayMode;\n return this.readOnly || isParentReadOnly || isSurveyReadOnly;\n },\n enumerable: true,\n configurable: true\n });\n PanelModelBase.prototype.onReadOnlyChanged = function () {\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n el.setPropertyValue(\"isReadOnly\", el.isReadOnly);\n }\n _super.prototype.onReadOnlyChanged.call(this);\n };\n Object.defineProperty(PanelModelBase.prototype, \"enableIf\", {\n /**\n * An expression that returns true or false. If it returns false the Panel/Page becomes read only and an end-user will not able to answer on qustions inside it.\n * The library runs the expression on survey start and on changing a question value. If the property is empty then readOnly property is used.\n * @see readOnly\n * @see isReadOnly\n */\n get: function () {\n return this.getPropertyValue(\"enableIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"enableIf\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Add an element into Panel or Page. Returns true if the element added successfully. Otherwise returns false.\n * @param element\n * @param index element index in the elements array\n */\n PanelModelBase.prototype.addElement = function (element, index) {\n if (index === void 0) { index = -1; }\n if (!this.canAddElement(element))\n return false;\n if (index < 0 || index >= this.elements.length) {\n this.elements.push(element);\n }\n else {\n this.elements.splice(index, 0, element);\n }\n return true;\n };\n PanelModelBase.prototype.canAddElement = function (element) {\n return (!!element && element.isLayoutTypeSupported(this.getChildrenLayoutType()));\n };\n /**\n * Add a question into Panel or Page. Returns true if the question added successfully. Otherwise returns false.\n * @param question\n * @param index element index in the elements array\n */\n PanelModelBase.prototype.addQuestion = function (question, index) {\n if (index === void 0) { index = -1; }\n return this.addElement(question, index);\n };\n /**\n * Add a panel into Panel or Page. Returns true if the panel added successfully. Otherwise returns false.\n * @param panel\n * @param index element index in the elements array\n */\n PanelModelBase.prototype.addPanel = function (panel, index) {\n if (index === void 0) { index = -1; }\n return this.addElement(panel, index);\n };\n /**\n * Creates a new question and adds it at location of index, by default the end of the elements list. Returns null, if the question could not be created or could not be added into page or panel.\n * @param questionType the possible values are: \"text\", \"checkbox\", \"dropdown\", \"matrix\", \"html\", \"matrixdynamic\", \"matrixdropdown\" and so on.\n * @param name a question name\n * @param index element index in the elements array\n */\n PanelModelBase.prototype.addNewQuestion = function (questionType, name, index) {\n if (name === void 0) { name = null; }\n if (index === void 0) { index = -1; }\n var question = __WEBPACK_IMPORTED_MODULE_4__questionfactory__[\"a\" /* QuestionFactory */].Instance.createQuestion(questionType, name);\n if (!this.addQuestion(question, index))\n return null;\n return question;\n };\n /**\n * Creates a new panel and adds it into the end of the elements list. Returns null, if the panel could not be created or could not be added into page or panel.\n * @param name a panel name\n */\n PanelModelBase.prototype.addNewPanel = function (name) {\n if (name === void 0) { name = null; }\n var panel = this.createNewPanel(name);\n if (!this.addPanel(panel))\n return null;\n return panel;\n };\n /**\n * Returns the index of element parameter in the elements list.\n * @param element question or panel\n */\n PanelModelBase.prototype.indexOf = function (element) {\n return this.elements.indexOf(element);\n };\n PanelModelBase.prototype.createNewPanel = function (name) {\n return new PanelModel(name);\n };\n /**\n * Remove an element (Panel or Question) from the elements list.\n * @param element\n * @see elements\n */\n PanelModelBase.prototype.removeElement = function (element) {\n var index = this.elements.indexOf(element);\n if (index < 0) {\n for (var i = 0; i < this.elements.length; i++) {\n if (this.elements[i].removeElement(element))\n return true;\n }\n return false;\n }\n this.elements.splice(index, 1);\n return true;\n };\n /**\n * Remove question from the elements list.\n * @param question\n * @see elements\n * @see removeElement\n */\n PanelModelBase.prototype.removeQuestion = function (question) {\n this.removeElement(question);\n };\n PanelModelBase.prototype.runCondition = function (values, properties) {\n if (this.isDesignMode)\n return;\n if (values.conditionVersion < this.conditionVersion)\n return;\n this.conditionVersion = values.conditionVersion;\n var elements = this.elements.slice();\n for (var i = 0; i < elements.length; i++) {\n if (values.conditionVersion < this.conditionVersion)\n return;\n elements[i].runCondition(values, properties);\n }\n if (values.conditionVersion < this.conditionVersion)\n return;\n if (!this.areInvisibleElementsShowing) {\n this.runVisibleCondition(values, properties);\n }\n this.runEnableCondition(values, properties);\n };\n PanelModelBase.prototype.runVisibleCondition = function (values, properties) {\n var _this = this;\n if (!this.visibleIf)\n return;\n var conditionRunner = new __WEBPACK_IMPORTED_MODULE_3__conditions__[\"b\" /* ConditionRunner */](this.visibleIf);\n conditionRunner.onRunComplete = function (res) {\n _this.visible = res;\n };\n conditionRunner.run(values, properties);\n };\n PanelModelBase.prototype.runEnableCondition = function (values, properties) {\n var _this = this;\n if (!this.enableIf)\n return;\n var conditionRunner = new __WEBPACK_IMPORTED_MODULE_3__conditions__[\"b\" /* ConditionRunner */](this.enableIf);\n conditionRunner.onRunComplete = function (res) {\n _this.readOnly = !res;\n };\n conditionRunner.run(values, properties);\n };\n PanelModelBase.prototype.onAnyValueChanged = function (name) {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].onAnyValueChanged(name);\n }\n };\n PanelModelBase.prototype.dragDropAddTarget = function (dragDropInfo) {\n var prevRow = this.dragDropFindRow(dragDropInfo.target);\n if (this.dragDropAddTargetToRow(dragDropInfo, prevRow)) {\n this.updateRowsRemoveElementFromRow(dragDropInfo.target, prevRow);\n }\n };\n PanelModelBase.prototype.dragDropFindRow = function (findElement) {\n if (!findElement || findElement.isPage)\n return null;\n var element = findElement;\n var rows = this.rows;\n for (var i = 0; i < rows.length; i++) {\n if (rows[i].elements.indexOf(element) > -1)\n return rows[i];\n }\n for (var i = 0; i < this.elements.length; i++) {\n var pnl = this.elements[i].getPanel();\n if (!pnl)\n continue;\n var row = pnl.dragDropFindRow(element);\n if (!!row)\n return row;\n }\n return null;\n };\n PanelModelBase.prototype.dragDropAddTargetToRow = function (dragDropInfo, prevRow) {\n if (!dragDropInfo.destination)\n return true;\n if (this.dragDropAddTargetToEmptyPanel(dragDropInfo))\n return true;\n var dest = dragDropInfo.destination;\n var destRow = this.dragDropFindRow(dest);\n if (!destRow)\n return true;\n if (!dragDropInfo.target.startWithNewLine)\n return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);\n return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);\n };\n PanelModelBase.prototype.dragDropAddTargetToEmptyPanel = function (dragDropInfo) {\n if (dragDropInfo.destination.isPage) {\n this.dragDropAddTargetToEmptyPanelCore(this.root, dragDropInfo.target, dragDropInfo.isBottom);\n return true;\n }\n var dest = dragDropInfo.destination;\n if (dest.isPanel && !dragDropInfo.isEdge) {\n var panel = dest;\n if (dragDropInfo.target[\"template\"] === dest) {\n return false;\n }\n if (dragDropInfo.nestedPanelDepth < 0 ||\n dragDropInfo.nestedPanelDepth >= panel.depth) {\n this.dragDropAddTargetToEmptyPanelCore(dest, dragDropInfo.target, dragDropInfo.isBottom);\n return true;\n }\n }\n return false;\n };\n PanelModelBase.prototype.dragDropAddTargetToExistingRow = function (dragDropInfo, destRow, prevRow) {\n var index = destRow.elements.indexOf(dragDropInfo.destination);\n if (index == 0 &&\n !dragDropInfo.isBottom &&\n destRow.elements[0].startWithNewLine) {\n if (destRow.index > 0) {\n dragDropInfo.isBottom = true;\n destRow = destRow.panel.rows[destRow.index - 1];\n dragDropInfo.destination =\n destRow.elements[destRow.elements.length - 1];\n return this.dragDropAddTargetToExistingRow(dragDropInfo, destRow, prevRow);\n }\n else {\n return this.dragDropAddTargetToNewRow(dragDropInfo, destRow, prevRow);\n }\n }\n var prevRowIndex = -1;\n if (prevRow == destRow) {\n prevRowIndex = destRow.elements.indexOf(dragDropInfo.target);\n }\n if (dragDropInfo.isBottom)\n index++;\n var srcRow = this.findRowByElement(dragDropInfo.source);\n if (srcRow == destRow &&\n srcRow.elements.indexOf(dragDropInfo.source) == index)\n return false;\n if (index == prevRowIndex)\n return false;\n if (prevRowIndex > -1) {\n destRow.elements.splice(prevRowIndex, 1);\n if (prevRowIndex < index)\n index--;\n }\n destRow.elements.splice(index, 0, dragDropInfo.target);\n destRow.updateVisible();\n return prevRowIndex < 0;\n };\n PanelModelBase.prototype.dragDropAddTargetToNewRow = function (dragDropInfo, destRow, prevRow) {\n var targetRow = destRow.panel.createRow();\n targetRow.addElement(dragDropInfo.target);\n var index = destRow.index;\n if (dragDropInfo.isBottom) {\n index++;\n }\n //same row\n if (!!prevRow && prevRow.panel == targetRow.panel && prevRow.index == index)\n return false;\n var srcRow = this.findRowByElement(dragDropInfo.source);\n if (!!srcRow &&\n srcRow.panel == targetRow.panel &&\n srcRow.elements.length == 1 &&\n srcRow.index == index)\n return false;\n destRow.panel.rows.splice(index, 0, targetRow);\n return true;\n };\n PanelModelBase.prototype.dragDropAddTargetToEmptyPanelCore = function (panel, target, isBottom) {\n var targetRow = panel.createRow();\n targetRow.addElement(target);\n if (panel.elements.length == 0 || isBottom) {\n panel.rows.push(targetRow);\n }\n else {\n panel.rows.splice(0, 0, targetRow);\n }\n };\n PanelModelBase.prototype.dragDropMoveElement = function (src, target, targetIndex) {\n var srcIndex = src.parent.elements.indexOf(src);\n if (targetIndex > srcIndex) {\n targetIndex--;\n }\n this.removeElement(src);\n this.addElement(target, targetIndex);\n };\n PanelModelBase.panelCounter = 100;\n return PanelModelBase;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"c\" /* SurveyElement */]));\n\n/**\n * A container element, similar to the Page objects. However, unlike the Page, Panel can't be a root.\n * It may contain questions and other panels.\n */\nvar PanelModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(PanelModel, _super);\n function PanelModel(name) {\n if (name === void 0) { name = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.name = name;\n var self = _this;\n _this.registerFunctionOnPropertyValueChanged(\"state\", function () {\n if (self.stateChangedCallback)\n self.stateChangedCallback();\n });\n _this.registerFunctionOnPropertyValueChanged(\"width\", function () {\n if (!!self.parent) {\n self.parent.elementWidthChanged(self);\n }\n });\n _this.registerFunctionOnPropertiesValueChanged([\"indent\", \"innerIndent\", \"rightIndent\"], function () {\n self.onIndentChanged();\n });\n return _this;\n }\n PanelModel.prototype.getType = function () {\n return \"panel\";\n };\n PanelModel.prototype.onSurveyLoad = function () {\n _super.prototype.onSurveyLoad.call(this);\n this.onIndentChanged();\n };\n Object.defineProperty(PanelModel.prototype, \"isPanel\", {\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"page\", {\n /**\n * Get/set the page where the panel is located.\n */\n get: function () {\n return this.getPage(this.parent);\n },\n set: function (val) {\n this.setPage(this.parent, val);\n },\n enumerable: true,\n configurable: true\n });\n PanelModel.prototype.delete = function () {\n if (!!this.parent) {\n this.removeSelfFromList(this.parent.elements);\n }\n };\n Object.defineProperty(PanelModel.prototype, \"state\", {\n /**\n * Set this property to \"collapsed\" to render only Panel title and expanded button and to \"expanded\" to render the collapsed button in the Panel caption\n */\n get: function () {\n return this.getPropertyValue(\"state\");\n },\n set: function (val) {\n this.setPropertyValue(\"state\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"isCollapsed\", {\n /**\n * Returns true if the Panel is in the collapsed state\n * @see state\n * @see collapse\n * @see isExpanded\n */\n get: function () {\n return this.state == \"collapsed\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"isExpanded\", {\n /**\n * Returns true if the Panel is in the expanded state\n * @see state\n * @see expand\n * @see isCollapsed\n */\n get: function () {\n if (this.isDesignMode)\n return;\n return this.state == \"expanded\";\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Collapse the Panel\n * @see state\n */\n PanelModel.prototype.collapse = function () {\n if (this.isDesignMode)\n return;\n this.state = \"collapsed\";\n };\n /**\n * Expand the Panel\n * @see state\n */\n PanelModel.prototype.expand = function () {\n this.state = \"expanded\";\n };\n /**\n * Move panel to a new container Page/Panel. Add as a last element if insertBefore parameter is not used or inserted into the given index,\n * if insert parameter is number, or before the given element, if the insertBefore parameter is a question or panel\n * @param container Page or Panel to where a question is relocated.\n * @param insertBefore Use it if you want to set the panel to a specific position. You may use a number (use 0 to insert int the beginning) or element, if you want to insert before this element.\n */\n PanelModel.prototype.moveTo = function (container, insertBefore) {\n if (insertBefore === void 0) { insertBefore = null; }\n return this.moveToBase(this.parent, container, insertBefore);\n };\n PanelModel.prototype.hasErrorsCore = function (rec) {\n _super.prototype.hasErrorsCore.call(this, rec);\n if (this.isCollapsed && rec.result && rec.fireCallback) {\n this.expand();\n }\n };\n PanelModel.prototype.getRenderedTitle = function (str) {\n if (!str) {\n if (this.isCollapsed || this.isExpanded)\n return this.name;\n if (this.isDesignMode)\n return \"[\" + this.name + \"]\";\n }\n return _super.prototype.getRenderedTitle.call(this, str);\n };\n Object.defineProperty(PanelModel.prototype, \"width\", {\n /**\n * The Panel width.\n */\n get: function () {\n return this.getPropertyValue(\"width\");\n },\n set: function (val) {\n this.setPropertyValue(\"width\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"indent\", {\n /**\n * The left indent. Set this property to increase the panel left indent.\n */\n get: function () {\n return this.getPropertyValue(\"indent\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"indent\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"innerIndent\", {\n /**\n * The inner indent. Set this property to increase the panel content margin.\n */\n get: function () {\n return this.getPropertyValue(\"innerIndent\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"innerIndent\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"renderWidth\", {\n get: function () {\n return this.getPropertyValue(\"renderWidth\");\n },\n set: function (val) {\n this.setPropertyValue(\"renderWidth\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"startWithNewLine\", {\n /**\n * The Panel renders on the new line if the property is true. If the property is false, the panel tries to render on the same line/row with a previous question/panel.\n */\n get: function () {\n return this.getPropertyValue(\"startWithNewLine\", true);\n },\n set: function (value) {\n this.setPropertyValue(\"startWithNewLine\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"rightIndent\", {\n /**\n * The right indent of the Panel.\n */\n get: function () {\n return this.getPropertyValue(\"rightIndent\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"rightIndent\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"paddingLeft\", {\n get: function () {\n return this.getPropertyValue(\"paddingLeft\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"paddingLeft\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"innerPaddingLeft\", {\n get: function () {\n return this.getPropertyValue(\"innerPaddingLeft\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"innerPaddingLeft\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"paddingRight\", {\n get: function () {\n return this.getPropertyValue(\"paddingRight\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"paddingRight\", val);\n },\n enumerable: true,\n configurable: true\n });\n PanelModel.prototype.onIndentChanged = function () {\n this.innerPaddingLeft = this.getIndentSize(this.innerIndent);\n this.paddingLeft = this.getIndentSize(this.indent);\n this.paddingRight = this.getIndentSize(this.rightIndent);\n };\n PanelModel.prototype.getIndentSize = function (indent) {\n if (indent < 1)\n return \"\";\n if (!this.data)\n return \"\";\n var css = this.survey[\"css\"];\n if (!css)\n return \"\";\n return indent * css.question.indent + \"px\";\n };\n PanelModel.prototype.onVisibleChanged = function () {\n _super.prototype.onVisibleChanged.call(this);\n this.setPropertyValue(\"isVisible\", this.isVisible);\n if (this.survey != null) {\n this.survey.panelVisibilityChanged(this, this.visible);\n }\n };\n return PanelModel;\n}(PanelModelBase));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"panelbase\", [\n \"name\",\n {\n name: \"elements\",\n alternativeName: \"questions\",\n baseClassName: \"question\",\n visible: false,\n isLightSerializable: false\n },\n { name: \"visible:boolean\", default: true },\n \"visibleIf:condition\",\n \"enableIf:condition\",\n \"readOnly:boolean\",\n {\n name: \"questionTitleLocation\",\n default: \"default\",\n choices: [\"default\", \"top\", \"bottom\", \"left\", \"hidden\"]\n },\n { name: \"title\", serializationProperty: \"locTitle\" },\n { name: \"description:text\", serializationProperty: \"locDescription\" }\n], function () {\n return new PanelModelBase();\n});\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"panel\", [\n {\n name: \"state\",\n default: \"default\",\n choices: [\"default\", \"collapsed\", \"expanded\"]\n },\n \"isRequired:boolean\",\n {\n name: \"requiredErrorText:text\",\n serializationProperty: \"locRequiredErrorText\"\n },\n { name: \"startWithNewLine:boolean\", default: true },\n { name: \"innerIndent:number\", default: 0, choices: [0, 1, 2, 3] },\n { name: \"indent:number\", default: 0, choices: [0, 1, 2, 3] },\n {\n name: \"page\",\n isSerializable: false,\n choices: function (obj) {\n var survey = obj ? obj.survey : null;\n return survey\n ? survey.pages.map(function (p) {\n return { value: p.name, text: p.title };\n })\n : [];\n }\n }\n], function () {\n return new PanelModel();\n}, \"panelbase\");\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__functionsfactory__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__conditionProcessValue__ = __webpack_require__(16);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return Operand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return BinaryOperand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return UnaryOperand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return ArrayOperand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return Const; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return Variable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FunctionOperand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return OperandMaker; });\n\n\n\n\nvar Operand = /** @class */ (function () {\n function Operand() {\n }\n Operand.prototype.toString = function (func) {\n if (func === void 0) { func = undefined; }\n return \"\";\n };\n Operand.prototype.hasFunction = function () {\n return false;\n };\n Operand.prototype.hasAsyncFunction = function () {\n return false;\n };\n Operand.prototype.addToAsyncList = function (list) { };\n return Operand;\n}());\n\nvar BinaryOperand = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(BinaryOperand, _super);\n function BinaryOperand(operatorName, left, right, isArithmeticOp) {\n if (left === void 0) { left = null; }\n if (right === void 0) { right = null; }\n if (isArithmeticOp === void 0) { isArithmeticOp = false; }\n var _this = _super.call(this) || this;\n _this.operatorName = operatorName;\n _this.left = left;\n _this.right = right;\n _this.isArithmeticValue = isArithmeticOp;\n if (isArithmeticOp) {\n _this.consumer = OperandMaker.binaryFunctions[\"arithmeticOp\"](operatorName);\n }\n else {\n _this.consumer = OperandMaker.binaryFunctions[operatorName];\n }\n if (_this.consumer == null) {\n OperandMaker.throwInvalidOperatorError(operatorName);\n }\n return _this;\n }\n BinaryOperand.prototype.getType = function () {\n return \"binary\";\n };\n Object.defineProperty(BinaryOperand.prototype, \"isArithmetic\", {\n get: function () {\n return this.isArithmeticValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BinaryOperand.prototype, \"isConjunction\", {\n get: function () {\n return this.operatorName == \"or\" || this.operatorName == \"and\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BinaryOperand.prototype, \"leftOperand\", {\n get: function () {\n return this.left;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BinaryOperand.prototype, \"rightOperand\", {\n get: function () {\n return this.right;\n },\n enumerable: true,\n configurable: true\n });\n BinaryOperand.prototype.evaluateParam = function (x, processValue) {\n return x == null ? null : x.evaluate(processValue);\n };\n BinaryOperand.prototype.evaluate = function (processValue) {\n return this.consumer.call(this, this.evaluateParam(this.left, processValue), this.evaluateParam(this.right, processValue));\n };\n BinaryOperand.prototype.toString = function (func) {\n if (func === void 0) { func = undefined; }\n if (!!func) {\n var res = func(this);\n if (!!res)\n return res;\n }\n return (\"(\" +\n OperandMaker.safeToString(this.left, func) +\n \" \" +\n OperandMaker.operatorToString(this.operatorName) +\n \" \" +\n OperandMaker.safeToString(this.right, func) +\n \")\");\n };\n BinaryOperand.prototype.setVariables = function (variables) {\n if (this.left != null)\n this.left.setVariables(variables);\n if (this.right != null)\n this.right.setVariables(variables);\n };\n BinaryOperand.prototype.hasFunction = function () {\n return ((!!this.left && this.left.hasFunction()) ||\n (!!this.right && this.right.hasFunction()));\n };\n BinaryOperand.prototype.hasAsyncFunction = function () {\n return ((!!this.left && this.left.hasAsyncFunction()) ||\n (!!this.right && this.right.hasAsyncFunction()));\n };\n BinaryOperand.prototype.addToAsyncList = function (list) {\n if (!!this.left)\n this.left.addToAsyncList(list);\n if (!!this.right)\n this.right.addToAsyncList(list);\n };\n return BinaryOperand;\n}(Operand));\n\nvar UnaryOperand = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(UnaryOperand, _super);\n function UnaryOperand(expression, operatorName) {\n var _this = _super.call(this) || this;\n _this.expression = expression;\n _this.operatorName = operatorName;\n _this.consumer = OperandMaker.unaryFunctions[operatorName];\n if (_this.consumer == null) {\n OperandMaker.throwInvalidOperatorError(operatorName);\n }\n return _this;\n }\n UnaryOperand.prototype.getType = function () {\n return \"unary\";\n };\n UnaryOperand.prototype.toString = function (func) {\n if (func === void 0) { func = undefined; }\n if (!!func) {\n var res = func(this);\n if (!!res)\n return res;\n }\n return (OperandMaker.operatorToString(this.operatorName) +\n \" \" +\n this.expression.toString(func));\n };\n UnaryOperand.prototype.evaluate = function (processValue) {\n var value = this.expression.evaluate(processValue);\n return this.consumer.call(this, value);\n };\n UnaryOperand.prototype.setVariables = function (variables) {\n this.expression.setVariables(variables);\n };\n return UnaryOperand;\n}(Operand));\n\nvar ArrayOperand = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ArrayOperand, _super);\n function ArrayOperand(values) {\n var _this = _super.call(this) || this;\n _this.values = values;\n return _this;\n }\n ArrayOperand.prototype.getType = function () {\n return \"array\";\n };\n ArrayOperand.prototype.toString = function (func) {\n if (func === void 0) { func = undefined; }\n if (!!func) {\n var res = func(this);\n if (!!res)\n return res;\n }\n return (\"[\" +\n this.values\n .map(function (el) {\n return el.toString(func);\n })\n .join(\", \") +\n \"]\");\n };\n ArrayOperand.prototype.evaluate = function (processValue) {\n return this.values.map(function (el) {\n return el.evaluate(processValue);\n });\n };\n ArrayOperand.prototype.setVariables = function (variables) {\n this.values.forEach(function (el) {\n el.setVariables(variables);\n });\n };\n ArrayOperand.prototype.hasFunction = function () {\n return this.values.some(function (operand) { return operand.hasFunction(); });\n };\n ArrayOperand.prototype.hasAsyncFunction = function () {\n return this.values.some(function (operand) { return operand.hasAsyncFunction(); });\n };\n ArrayOperand.prototype.addToAsyncList = function (list) {\n this.values.forEach(function (operand) { return operand.addToAsyncList(list); });\n };\n return ArrayOperand;\n}(Operand));\n\nvar Const = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Const, _super);\n function Const(value) {\n var _this = _super.call(this) || this;\n _this.value = value;\n return _this;\n }\n Const.prototype.getType = function () {\n return \"const\";\n };\n Const.prototype.toString = function (func) {\n if (func === void 0) { func = undefined; }\n if (!!func) {\n var res = func(this);\n if (!!res)\n return res;\n }\n return this.value.toString();\n };\n Object.defineProperty(Const.prototype, \"correctValue\", {\n get: function () {\n return this.getCorrectValue(this.value);\n },\n enumerable: true,\n configurable: true\n });\n Const.prototype.evaluate = function () {\n return this.getCorrectValue(this.value);\n };\n Const.prototype.setVariables = function (variables) { };\n Const.prototype.getCorrectValue = function (value) {\n if (!value || typeof value != \"string\")\n return value;\n if (this.isBooleanValue(value))\n return value.toLowerCase() === \"true\";\n if (OperandMaker.isNumeric(value)) {\n if (value.indexOf(\"0x\") == 0)\n return parseInt(value);\n return parseFloat(value);\n }\n return value;\n };\n Const.prototype.isBooleanValue = function (value) {\n return (value &&\n (value.toLowerCase() === \"true\" || value.toLowerCase() === \"false\"));\n };\n return Const;\n}(Operand));\n\nvar Variable = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Variable, _super);\n function Variable(variableName) {\n var _this = _super.call(this, variableName) || this;\n _this.variableName = variableName;\n return _this;\n }\n Variable.prototype.getType = function () {\n return \"variable\";\n };\n Variable.prototype.toString = function (func) {\n if (func === void 0) { func = undefined; }\n if (!!func) {\n var res = func(this);\n if (!!res)\n return res;\n }\n return \"{\" + this.variableName + \"}\";\n };\n Object.defineProperty(Variable.prototype, \"variable\", {\n get: function () {\n return this.variableName;\n },\n enumerable: true,\n configurable: true\n });\n Variable.prototype.evaluate = function (processValue) {\n return processValue.hasValue(this.variableName)\n ? this.getCorrectValue(processValue.getValue(this.variableName))\n : null;\n };\n Variable.prototype.setVariables = function (variables) {\n variables.push(this.variableName);\n };\n return Variable;\n}(Const));\n\nvar FunctionOperand = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(FunctionOperand, _super);\n function FunctionOperand(origionalValue, parameters) {\n var _this = _super.call(this) || this;\n _this.origionalValue = origionalValue;\n _this.parameters = parameters;\n _this.isReadyValue = false;\n if (Array.isArray(parameters) && parameters.length === 0) {\n _this.parameters = new ArrayOperand([]);\n }\n return _this;\n }\n FunctionOperand.prototype.getType = function () {\n return \"function\";\n };\n FunctionOperand.prototype.evaluateAsync = function (processValue) {\n var _this = this;\n this.isReadyValue = false;\n var asyncProcessValue = new __WEBPACK_IMPORTED_MODULE_3__conditionProcessValue__[\"a\" /* ProcessValue */]();\n asyncProcessValue.values = __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].createCopy(processValue.values);\n asyncProcessValue.properties = __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].createCopy(processValue.properties);\n asyncProcessValue.properties.returnResult = function (result) {\n _this.asynResult = result;\n _this.isReadyValue = true;\n _this.onAsyncReady();\n };\n this.evaluateCore(asyncProcessValue);\n };\n FunctionOperand.prototype.evaluate = function (processValue) {\n if (this.isReady)\n return this.asynResult;\n return this.evaluateCore(processValue);\n };\n FunctionOperand.prototype.evaluateCore = function (processValue) {\n return __WEBPACK_IMPORTED_MODULE_2__functionsfactory__[\"a\" /* FunctionFactory */].Instance.run(this.origionalValue, this.parameters.evaluate(processValue), processValue.properties);\n };\n FunctionOperand.prototype.toString = function (func) {\n if (func === void 0) { func = undefined; }\n if (!!func) {\n var res = func(this);\n if (!!res)\n return res;\n }\n return this.origionalValue + \"(\" + this.parameters.toString(func) + \")\";\n };\n FunctionOperand.prototype.setVariables = function (variables) {\n this.parameters.setVariables(variables);\n };\n Object.defineProperty(FunctionOperand.prototype, \"isReady\", {\n get: function () {\n return this.isReadyValue;\n },\n enumerable: true,\n configurable: true\n });\n FunctionOperand.prototype.hasFunction = function () {\n return true;\n };\n FunctionOperand.prototype.hasAsyncFunction = function () {\n return __WEBPACK_IMPORTED_MODULE_2__functionsfactory__[\"a\" /* FunctionFactory */].Instance.isAsyncFunction(this.origionalValue);\n };\n FunctionOperand.prototype.addToAsyncList = function (list) {\n if (this.hasAsyncFunction()) {\n list.push(this);\n }\n };\n return FunctionOperand;\n}(Operand));\n\nvar OperandMaker = /** @class */ (function () {\n function OperandMaker() {\n }\n OperandMaker.throwInvalidOperatorError = function (op) {\n throw new Error(\"Invalid operator: '\" + op + \"'\");\n };\n OperandMaker.safeToString = function (operand, func) {\n return operand == null ? \"\" : operand.toString(func);\n };\n OperandMaker.toOperandString = function (value) {\n if (!!value &&\n !OperandMaker.isNumeric(value) &&\n !OperandMaker.isBooleanValue(value))\n value = \"'\" + value + \"'\";\n return value;\n };\n OperandMaker.isSpaceString = function (str) {\n return !!str && !str.replace(\" \", \"\");\n };\n OperandMaker.isNumeric = function (value) {\n if (!!value &&\n (value.indexOf(\"-\") > -1 ||\n value.indexOf(\"+\") > 1 ||\n value.indexOf(\"*\") > -1 ||\n value.indexOf(\"^\") > -1 ||\n value.indexOf(\"/\") > -1 ||\n value.indexOf(\"%\") > -1))\n return false;\n if (OperandMaker.isSpaceString(value))\n return false;\n return __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isNumber(value);\n };\n OperandMaker.isBooleanValue = function (value) {\n return (!!value &&\n (value.toLowerCase() === \"true\" || value.toLowerCase() === \"false\"));\n };\n OperandMaker.operatorToString = function (operatorName) {\n var opStr = OperandMaker.signs[operatorName];\n return opStr == null ? operatorName : opStr;\n };\n OperandMaker.unaryFunctions = {\n empty: function (value) {\n return __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(value);\n },\n notempty: function (value) {\n return !OperandMaker.unaryFunctions.empty(value);\n },\n negate: function (value) {\n return !value;\n }\n };\n OperandMaker.binaryFunctions = {\n arithmeticOp: function (operatorName) {\n return function (a, b) {\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(a) && !OperandMaker.isSpaceString(a))\n a = 0;\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(b) && !OperandMaker.isSpaceString(b))\n b = 0;\n var consumer = OperandMaker.binaryFunctions[operatorName];\n return consumer == null ? null : consumer.call(this, a, b);\n };\n },\n and: function (a, b) {\n return a && b;\n },\n or: function (a, b) {\n return a || b;\n },\n plus: function (a, b) {\n return a + b;\n },\n minus: function (a, b) {\n return a - b;\n },\n mul: function (a, b) {\n return a * b;\n },\n div: function (a, b) {\n if (!b)\n return null;\n return a / b;\n },\n mod: function (a, b) {\n if (!b)\n return null;\n return a % b;\n },\n power: function (a, b) {\n return Math.pow(a, b);\n },\n greater: function (left, right) {\n if (left == null || right == null)\n return false;\n return left > right;\n },\n less: function (left, right) {\n if (left == null || right == null)\n return false;\n return left < right;\n },\n greaterorequal: function (left, right) {\n if (left == null || right == null)\n return false;\n return left >= right;\n },\n lessorequal: function (left, right) {\n if (left == null || right == null)\n return false;\n return left <= right;\n },\n equal: function (left, right) {\n return __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isTwoValueEquals(left, right, true);\n },\n notequal: function (left, right) {\n return !__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isTwoValueEquals(left, right, true);\n },\n contains: function (left, right) {\n return OperandMaker.binaryFunctions.containsCore(left, right, true);\n },\n notcontains: function (left, right) {\n if (!left && !__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(right))\n return true;\n return OperandMaker.binaryFunctions.containsCore(left, right, false);\n },\n anyof: function (left, right) {\n if (!left && __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(right))\n return true;\n if (!left || (!Array.isArray(left) && left.length === 0))\n return false;\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(right))\n return true;\n if (!Array.isArray(left))\n return OperandMaker.binaryFunctions.contains(right, left);\n if (!Array.isArray(right))\n return OperandMaker.binaryFunctions.contains(left, right);\n for (var i = 0; i < right.length; i++) {\n if (OperandMaker.binaryFunctions.contains(left, right[i]))\n return true;\n }\n return false;\n },\n allof: function (left, right) {\n if (!left && !__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(right))\n return false;\n if (!Array.isArray(right))\n return OperandMaker.binaryFunctions.contains(left, right);\n for (var i = 0; i < right.length; i++) {\n if (!OperandMaker.binaryFunctions.contains(left, right[i]))\n return false;\n }\n return true;\n },\n containsCore: function (left, right, isContains) {\n if (!left)\n return false;\n if (!left.length) {\n left = left.toString();\n }\n if (typeof left === \"string\" || left instanceof String) {\n if (!right)\n return false;\n right = right.toString();\n var found = left.indexOf(right) > -1;\n return isContains ? found : !found;\n }\n var rightArray = Array.isArray(right) ? right : [right];\n for (var rIndex = 0; rIndex < rightArray.length; rIndex++) {\n var i = 0;\n right = rightArray[rIndex];\n for (; i < left.length; i++) {\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isTwoValueEquals(left[i], right))\n break;\n }\n if (i == left.length)\n return !isContains;\n }\n return isContains;\n }\n };\n OperandMaker.signs = {\n less: \"<\",\n lessorequal: \"<=\",\n greater: \">\",\n greaterorequal: \">=\",\n equal: \"==\",\n notequal: \"!=\",\n plus: \"+\",\n minus: \"-\",\n mul: \"*\",\n div: \"/\",\n and: \"and\",\n or: \"or\",\n power: \"^\",\n mod: \"%\",\n negate: \"!\"\n };\n return OperandMaker;\n}());\n\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FunctionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return registerFunction; });\nvar FunctionFactory = /** @class */ (function () {\n function FunctionFactory() {\n this.functionHash = {};\n this.isAsyncHash = {};\n }\n FunctionFactory.prototype.register = function (name, func, isAsync) {\n if (isAsync === void 0) { isAsync = false; }\n this.functionHash[name] = func;\n if (isAsync)\n this.isAsyncHash[name] = true;\n };\n FunctionFactory.prototype.unregister = function (name) {\n delete this.functionHash[name];\n delete this.isAsyncHash[name];\n };\n FunctionFactory.prototype.hasFunction = function (name) {\n return !!this.functionHash[name];\n };\n FunctionFactory.prototype.isAsyncFunction = function (name) {\n return !!this.isAsyncHash[name];\n };\n FunctionFactory.prototype.clear = function () {\n this.functionHash = {};\n };\n FunctionFactory.prototype.getAll = function () {\n var result = [];\n for (var key in this.functionHash) {\n result.push(key);\n }\n return result.sort();\n };\n FunctionFactory.prototype.run = function (name, params, properties) {\n if (properties === void 0) { properties = null; }\n var func = this.functionHash[name];\n if (!func)\n return null;\n var classRunner = {\n func: func\n };\n if (properties) {\n for (var key in properties) {\n classRunner[key] = properties[key];\n }\n }\n return classRunner.func(params);\n };\n FunctionFactory.Instance = new FunctionFactory();\n return FunctionFactory;\n}());\n\nvar registerFunction = FunctionFactory.Instance.register;\nfunction getParamsAsArray(value, arr) {\n if (!value)\n return;\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n getParamsAsArray(value[i], arr);\n }\n }\n else {\n arr.push(value);\n }\n}\nfunction sum(params) {\n var arr = [];\n getParamsAsArray(params, arr);\n var res = 0;\n for (var i = 0; i < arr.length; i++) {\n res += arr[i];\n }\n return res;\n}\nFunctionFactory.Instance.register(\"sum\", sum);\nfunction count(params) {\n var arr = [];\n getParamsAsArray(params, arr);\n return arr.length;\n}\nFunctionFactory.Instance.register(\"count\", count);\nfunction avg(params) {\n var arr = [];\n getParamsAsArray(params, arr);\n var res = 0;\n for (var i = 0; i < arr.length; i++) {\n res += arr[i];\n }\n return arr.length > 0 ? res / arr.length : 0;\n}\nFunctionFactory.Instance.register(\"avg\", avg);\nfunction getInArrayParams(params) {\n if (params.length != 2)\n return null;\n var arr = params[0];\n if (!arr)\n return null;\n if (!Array.isArray(arr) && !Array.isArray(Object.keys(arr)))\n return null;\n var name = params[1];\n if (typeof name !== \"string\" && !(name instanceof String))\n return null;\n return { data: arr, name: name };\n}\nfunction calcInArray(params, func) {\n var v = getInArrayParams(params);\n if (!v)\n return undefined;\n var res = undefined;\n if (Array.isArray(v.data)) {\n for (var i = 0; i < v.data.length; i++) {\n var item = v.data[i];\n if (!!item && item[v.name]) {\n res = func(res, item[v.name]);\n }\n }\n }\n else {\n for (var key in v.data) {\n var item = v.data[key];\n if (!!item && item[v.name]) {\n res = func(res, item[v.name]);\n }\n }\n }\n return res;\n}\nfunction sumInArray(params) {\n var res = calcInArray(params, function (res, val) {\n if (res == undefined)\n res = 0;\n return +res + +val;\n });\n return res !== undefined ? res : 0;\n}\nFunctionFactory.Instance.register(\"sumInArray\", sumInArray);\nfunction minInArray(params) {\n return calcInArray(params, function (res, val) {\n if (res == undefined)\n return val;\n return res < val ? res : val;\n });\n}\nFunctionFactory.Instance.register(\"minInArray\", minInArray);\nfunction maxInArray(params) {\n return calcInArray(params, function (res, val) {\n if (res == undefined)\n return val;\n return res > val ? res : val;\n });\n}\nFunctionFactory.Instance.register(\"maxInArray\", maxInArray);\nfunction countInArray(params) {\n var res = calcInArray(params, function (res, val) {\n if (res == undefined)\n res = 0;\n return res + 1;\n });\n return res !== undefined ? res : 0;\n}\nFunctionFactory.Instance.register(\"countInArray\", countInArray);\nfunction avgInArray(params) {\n var count = countInArray(params);\n if (count == 0)\n return 0;\n return sumInArray(params) / count;\n}\nFunctionFactory.Instance.register(\"avgInArray\", avgInArray);\nfunction iif(params) {\n if (!params && params.length !== 3)\n return \"\";\n return params[0] ? params[1] : params[2];\n}\nFunctionFactory.Instance.register(\"iif\", iif);\nfunction getDate(params) {\n if (!params && params.length < 1)\n return null;\n if (!params[0])\n return null;\n return new Date(params[0]);\n}\nFunctionFactory.Instance.register(\"getDate\", getDate);\nfunction age(params) {\n if (!params && params.length < 1)\n return null;\n if (!params[0])\n return null;\n var birthDay = new Date(params[0]);\n var ageDifMs = Date.now() - birthDay.getTime();\n var ageDate = new Date(ageDifMs); // miliseconds from epoch\n return Math.abs(ageDate.getUTCFullYear() - 1970);\n}\nFunctionFactory.Instance.register(\"age\", age);\nfunction isContainerReady(params) {\n if (!params && params.length < 1)\n return false;\n if (!params[0] || !this.survey)\n return false;\n var name = params[0];\n var container = this.survey.getPageByName(name);\n if (!container)\n container = this.survey.getPanelByName(name);\n if (!container)\n return false;\n var questions = container.questions;\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].hasErrors(false))\n return false;\n }\n return true;\n}\nFunctionFactory.Instance.register(\"isContainerReady\", isContainerReady);\nfunction isDisplayMode() {\n return this.survey && this.survey.isDisplayMode;\n}\nFunctionFactory.Instance.register(\"isDisplayMode\", isDisplayMode);\nfunction currentDate() {\n return new Date();\n}\nFunctionFactory.Instance.register(\"currentDate\", currentDate);\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__martixBase__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__textPreProcessor__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__localizablestring__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__question_expression__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__functionsfactory__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return matrixDropdownColumnTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return MatrixDropdownColumn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MatrixDropdownCell; });\n/* unused harmony export MatrixDropdownTotalCell */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return MatrixDropdownRowModelBase; });\n/* unused harmony export MatrixDropdownTotalRowModel */\n/* unused harmony export QuestionMatrixDropdownRenderedCell */\n/* unused harmony export QuestionMatrixDropdownRenderedRow */\n/* unused harmony export QuestionMatrixDropdownRenderedTable */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return QuestionMatrixDropdownModelBase; });\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction onUpdateSelectBaseCellQuestion(cellQuestion, column, question, data) {\n if (cellQuestion.hasOther) {\n cellQuestion.storeOthersAsComment = false;\n }\n if ((!cellQuestion.choices || cellQuestion.choices.length == 0) &&\n cellQuestion.choicesByUrl.isEmpty) {\n cellQuestion.choices = question.choices;\n }\n if (!cellQuestion.choicesByUrl.isEmpty) {\n cellQuestion.choicesByUrl.run(data);\n }\n}\nvar matrixDropdownColumnTypes = {\n dropdown: {\n properties: [\n \"choices\",\n \"choicesOrder\",\n \"choicesByUrl\",\n \"optionsCaption\",\n \"otherText\",\n \"choicesVisibleIf\"\n ],\n onCellQuestionUpdate: function (cellQuestion, column, question, data) {\n onUpdateSelectBaseCellQuestion(cellQuestion, column, question, data);\n if (cellQuestion.locOptionsCaption.isEmpty &&\n !question.locOptionsCaption.isEmpty) {\n cellQuestion.optionsCaption = question.optionsCaption;\n }\n }\n },\n checkbox: {\n properties: [\n \"choices\",\n \"choicesOrder\",\n \"choicesByUrl\",\n \"otherText\",\n \"choicesVisibleIf\"\n ],\n onCellQuestionUpdate: function (cellQuestion, column, question, data) {\n onUpdateSelectBaseCellQuestion(cellQuestion, column, question, data);\n cellQuestion.colCount =\n column.colCount > -1 ? column.colCount : question.columnColCount;\n }\n },\n radiogroup: {\n properties: [\n \"choices\",\n \"choicesOrder\",\n \"choicesByUrl\",\n \"otherText\",\n \"choicesVisibleIf\"\n ],\n onCellQuestionUpdate: function (cellQuestion, column, question, data) {\n onUpdateSelectBaseCellQuestion(cellQuestion, column, question, data);\n cellQuestion.colCount =\n column.colCount > -1 ? column.colCount : question.columnColCount;\n }\n },\n text: {\n properties: [\"placeHolder\", \"inputType\", \"maxLength\"],\n onCellQuestionUpdate: function (cellQuestion, column, question, data) { }\n },\n comment: {\n properties: [\"placeHolder\", \"rows\", \"maxLength\"],\n onCellQuestionUpdate: function (cellQuestion, column, question, data) { }\n },\n boolean: {\n properties: [\"defaultValue\"],\n onCellQuestionUpdate: function (cellQuestion, column, question, data) {\n cellQuestion.showTitle = true;\n }\n },\n expression: {\n properties: [\"expression\", \"displayStyle\", \"currency\"],\n onCellQuestionUpdate: function (cellQuestion, column, question, data) { }\n },\n rating: {\n properties: [\"rateValues\"]\n }\n};\nvar MatrixDropdownColumn = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixDropdownColumn, _super);\n function MatrixDropdownColumn(name, title) {\n if (title === void 0) { title = null; }\n var _this = _super.call(this) || this;\n _this.colOwnerValue = null;\n _this.indexValue = -1;\n _this._isVisible = true;\n _this._hasVisibleCell = true;\n var self = _this;\n _this.createLocalizableString(\"totalFormat\", _this);\n _this.registerFunctionOnPropertiesValueChanged([\n \"totalType\",\n \"totalExpression\",\n \"totalFormat\",\n \"totalCurrency\",\n \"totalDisplayStyle\",\n \"totalMaximumFractionDigits\",\n \"totalMinimumFractionDigits\"\n ], function () {\n self.doColumnPropertiesChanged();\n });\n _this.updateTemplateQuestion();\n _this.name = name;\n if (title)\n _this.title = title;\n return _this;\n }\n MatrixDropdownColumn.getColumnTypes = function () {\n var res = [];\n for (var key in matrixDropdownColumnTypes) {\n res.push(key);\n }\n return res;\n };\n MatrixDropdownColumn.prototype.getDynamicPropertyName = function () {\n return \"cellType\";\n };\n MatrixDropdownColumn.prototype.getDynamicType = function () {\n return this.calcCellQuestionType();\n };\n MatrixDropdownColumn.prototype.getDynamicProperties = function () {\n var qType = this.calcCellQuestionType();\n var qDefinition = matrixDropdownColumnTypes[qType];\n if (qDefinition)\n return qDefinition.properties;\n return [];\n };\n Object.defineProperty(MatrixDropdownColumn.prototype, \"colOwner\", {\n get: function () {\n return this.colOwnerValue;\n },\n set: function (value) {\n this.colOwnerValue = value;\n this.updateTemplateQuestion();\n },\n enumerable: true,\n configurable: true\n });\n MatrixDropdownColumn.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n this.locTitle.strChanged();\n };\n MatrixDropdownColumn.prototype.addUsedLocales = function (locales) {\n _super.prototype.addUsedLocales.call(this, locales);\n this.templateQuestion.addUsedLocales(locales);\n };\n Object.defineProperty(MatrixDropdownColumn.prototype, \"index\", {\n get: function () {\n return this.indexValue;\n },\n enumerable: true,\n configurable: true\n });\n MatrixDropdownColumn.prototype.setIndex = function (val) {\n this.indexValue = val;\n };\n MatrixDropdownColumn.prototype.getType = function () {\n return \"matrixdropdowncolumn\";\n };\n Object.defineProperty(MatrixDropdownColumn.prototype, \"cellType\", {\n get: function () {\n return this.getPropertyValue(\"cellType\");\n },\n set: function (val) {\n val = val.toLocaleLowerCase();\n this.setPropertyValue(\"cellType\", val);\n this.updateTemplateQuestion();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"templateQuestion\", {\n get: function () {\n return this.templateQuestionValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"value\", {\n get: function () {\n return this.templateQuestion.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"isVisible\", {\n get: function () {\n return this._isVisible;\n },\n enumerable: true,\n configurable: true\n });\n MatrixDropdownColumn.prototype.setIsVisible = function (newVal) {\n this._isVisible = newVal;\n };\n Object.defineProperty(MatrixDropdownColumn.prototype, \"hasVisibleCell\", {\n get: function () {\n return this._hasVisibleCell;\n },\n set: function (newVal) {\n this._hasVisibleCell = newVal;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"name\", {\n get: function () {\n return this.templateQuestion.name;\n },\n set: function (val) {\n this.templateQuestion.name = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"title\", {\n get: function () {\n return this.templateQuestion.title;\n },\n set: function (val) {\n this.templateQuestion.title = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"locTitle\", {\n get: function () {\n return this.templateQuestion.locTitle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"fullTitle\", {\n get: function () {\n return this.locTitle.textOrHtml;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"isRequired\", {\n get: function () {\n return this.templateQuestion.isRequired;\n },\n set: function (val) {\n this.templateQuestion.isRequired = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"requiredErrorText\", {\n get: function () {\n return this.templateQuestion.requiredErrorText;\n },\n set: function (val) {\n this.templateQuestion.requiredErrorText = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"locRequiredErrorText\", {\n get: function () {\n return this.templateQuestion.locRequiredErrorText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"readOnly\", {\n get: function () {\n return this.templateQuestion.readOnly;\n },\n set: function (val) {\n this.templateQuestion.readOnly = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"hasOther\", {\n get: function () {\n return this.templateQuestion.hasOther;\n },\n set: function (val) {\n this.templateQuestion.hasOther = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"visibleIf\", {\n get: function () {\n return this.templateQuestion.visibleIf;\n },\n set: function (val) {\n this.templateQuestion.visibleIf = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"enableIf\", {\n get: function () {\n return this.templateQuestion.enableIf;\n },\n set: function (val) {\n this.templateQuestion.enableIf = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"requiredIf\", {\n get: function () {\n return this.templateQuestion.requiredIf;\n },\n set: function (val) {\n this.templateQuestion.requiredIf = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"hasCondition\", {\n get: function () {\n return !!this.visibleIf || !this.enableIf || !this.requiredIf;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"validators\", {\n get: function () {\n return this.templateQuestion.validators;\n },\n set: function (val) {\n this.templateQuestion.validators = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"totalType\", {\n get: function () {\n return this.getPropertyValue(\"totalType\", \"none\");\n },\n set: function (val) {\n this.setPropertyValue(\"totalType\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"totalExpression\", {\n get: function () {\n return this.getPropertyValue(\"totalExpression\");\n },\n set: function (val) {\n this.setPropertyValue(\"totalExpression\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"hasTotal\", {\n get: function () {\n return this.totalType != \"none\" || !!this.totalExpression;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"totalFormat\", {\n get: function () {\n return this.getLocalizableStringText(\"totalFormat\", \"\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"totalFormat\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"locTotalFormat\", {\n get: function () {\n return this.getLocalizableString(\"totalFormat\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"totalMaximumFractionDigits\", {\n get: function () {\n return this.getPropertyValue(\"totalMaximumFractionDigits\", -1);\n },\n set: function (val) {\n if (val < -1 || val > 20)\n return;\n this.setPropertyValue(\"totalMaximumFractionDigits\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"totalMinimumFractionDigits\", {\n get: function () {\n return this.getPropertyValue(\"totalMinimumFractionDigits\", -1);\n },\n set: function (val) {\n if (val < -1 || val > 20)\n return;\n this.setPropertyValue(\"totalMinimumFractionDigits\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"totalDisplayStyle\", {\n get: function () {\n return this.getPropertyValue(\"totalDisplayStyle\");\n },\n set: function (val) {\n this.setPropertyValue(\"totalDisplayStyle\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"totalCurrency\", {\n get: function () {\n return this.getPropertyValue(\"totalCurrency\");\n },\n set: function (val) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__question_expression__[\"b\" /* getCurrecyCodes */])().indexOf(val) < 0)\n return;\n this.setPropertyValue(\"totalCurrency\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"minWidth\", {\n get: function () {\n return this.getPropertyValue(\"minWidth\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"minWidth\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"width\", {\n get: function () {\n return this.getPropertyValue(\"width\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"width\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownColumn.prototype, \"colCount\", {\n get: function () {\n return this.getPropertyValue(\"colCount\", -1);\n },\n set: function (val) {\n if (val < -1 || val > 4)\n return;\n this.setPropertyValue(\"colCount\", val);\n },\n enumerable: true,\n configurable: true\n });\n MatrixDropdownColumn.prototype.getLocale = function () {\n return this.colOwner ? this.colOwner.getLocale() : \"\";\n };\n MatrixDropdownColumn.prototype.getMarkdownHtml = function (text) {\n return this.colOwner ? this.colOwner.getMarkdownHtml(text) : null;\n };\n MatrixDropdownColumn.prototype.getProcessedText = function (text) {\n return this.colOwner ? this.colOwner.getProcessedText(text) : text;\n };\n MatrixDropdownColumn.prototype.createCellQuestion = function (data) {\n var qType = this.calcCellQuestionType();\n var cellQuestion = this.createNewQuestion(qType);\n this.updateCellQuestion(cellQuestion, data);\n return cellQuestion;\n };\n MatrixDropdownColumn.prototype.updateCellQuestion = function (cellQuestion, data) {\n this.setQuestionProperties(cellQuestion);\n var qType = cellQuestion.getType();\n var qDefinition = matrixDropdownColumnTypes[qType];\n if (qDefinition && qDefinition[\"onCellQuestionUpdate\"]) {\n qDefinition[\"onCellQuestionUpdate\"](cellQuestion, this, this.colOwner, data);\n }\n };\n MatrixDropdownColumn.prototype.defaultCellTypeChanged = function () {\n this.updateTemplateQuestion();\n };\n MatrixDropdownColumn.prototype.calcCellQuestionType = function () {\n if (this.cellType !== \"default\")\n return this.cellType;\n if (this.colOwner)\n return this.colOwner.getCellType();\n return __WEBPACK_IMPORTED_MODULE_12__settings__[\"a\" /* settings */].matrixDefaultCellType;\n };\n MatrixDropdownColumn.prototype.updateTemplateQuestion = function () {\n var prevCellType = this.templateQuestion\n ? this.templateQuestion.getType()\n : \"\";\n var curCellType = this.calcCellQuestionType();\n if (curCellType === prevCellType)\n return;\n if (this.templateQuestion) {\n this.removeProperties(prevCellType);\n }\n this.templateQuestionValue = this.createNewQuestion(curCellType);\n this.templateQuestion.locOwner = this;\n this.addProperties(curCellType);\n var self = this;\n this.templateQuestion.onPropertyChanged.add(function () {\n self.doColumnPropertiesChanged();\n });\n };\n MatrixDropdownColumn.prototype.createNewQuestion = function (cellType) {\n var question = __WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].createClass(cellType);\n if (!question) {\n question = __WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].createClass(\"text\");\n }\n this.setQuestionProperties(question);\n return question;\n };\n MatrixDropdownColumn.prototype.setQuestionProperties = function (question) {\n if (this.templateQuestion) {\n var json = new __WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"b\" /* JsonObject */]().toJsonObject(this.templateQuestion, true);\n json.type = question.getType();\n question.startLoadingFromJson();\n new __WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"b\" /* JsonObject */]().toObject(json, question);\n question.endLoadingFromJson();\n question.onSurveyLoad();\n }\n };\n MatrixDropdownColumn.prototype.propertyValueChanged = function (name, oldValue, newValue) {\n _super.prototype.propertyValueChanged.call(this, name, oldValue, newValue);\n this.doColumnPropertiesChanged();\n };\n MatrixDropdownColumn.prototype.doColumnPropertiesChanged = function () {\n if (this.colOwner != null && !this.isLoadingFromJson) {\n this.colOwner.onColumnPropertiesChanged(this);\n }\n };\n MatrixDropdownColumn.prototype.getProperties = function (curCellType) {\n var qDef = matrixDropdownColumnTypes[curCellType];\n if (!qDef || !qDef.properties)\n return [];\n return __WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].findProperties(curCellType, qDef.properties);\n };\n MatrixDropdownColumn.prototype.removeProperties = function (curCellType) {\n var properties = this.getProperties(curCellType);\n for (var i = 0; i < properties.length; i++) {\n var prop = properties[i];\n delete this[prop.name];\n if (prop.serializationProperty) {\n delete this[prop.serializationProperty];\n }\n }\n };\n MatrixDropdownColumn.prototype.addProperties = function (curCellType) {\n var question = this.templateQuestion;\n var properties = this.getProperties(curCellType);\n for (var i = 0; i < properties.length; i++) {\n var prop = properties[i];\n this.addProperty(question, prop.name, false);\n if (prop.serializationProperty) {\n this.addProperty(question, prop.serializationProperty, true);\n }\n }\n };\n MatrixDropdownColumn.prototype.addProperty = function (question, propName, isReadOnly) {\n var desc = {\n configurable: true,\n get: function () {\n return question[propName];\n }\n };\n if (!isReadOnly) {\n desc[\"set\"] = function (v) {\n question[propName] = v;\n };\n }\n Object.defineProperty(this, propName, desc);\n };\n return MatrixDropdownColumn;\n}(__WEBPACK_IMPORTED_MODULE_4__base__[\"a\" /* Base */]));\n\nvar MatrixDropdownCell = /** @class */ (function () {\n function MatrixDropdownCell(column, row, data) {\n this.column = column;\n this.row = row;\n this.data = data;\n this.questionValue = this.createQuestion(column, row, data);\n this.questionValue.updateCustomWidget();\n }\n MatrixDropdownCell.prototype.createQuestion = function (column, row, data) {\n var res = data.createQuestion(this.row, this.column);\n res.validateValueCallback = function () {\n return data.validateCell(row, column.name, row.value);\n };\n __WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"a\" /* CustomPropertiesCollection */].getProperties(column.getType()).forEach(function (property) {\n var propertyName = property.name;\n if (column[propertyName] !== undefined) {\n res[propertyName] = column[propertyName];\n }\n });\n return res;\n };\n Object.defineProperty(MatrixDropdownCell.prototype, \"question\", {\n get: function () {\n return this.questionValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownCell.prototype, \"value\", {\n get: function () {\n return this.question.value;\n },\n set: function (value) {\n this.question.value = value;\n },\n enumerable: true,\n configurable: true\n });\n MatrixDropdownCell.prototype.runCondition = function (values, properties) {\n this.question.runCondition(values, properties);\n };\n return MatrixDropdownCell;\n}());\n\nvar MatrixDropdownTotalCell = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixDropdownTotalCell, _super);\n function MatrixDropdownTotalCell(column, row, data) {\n var _this = _super.call(this, column, row, data) || this;\n _this.column = column;\n _this.row = row;\n _this.data = data;\n _this.updateCellQuestion();\n return _this;\n }\n MatrixDropdownTotalCell.prototype.createQuestion = function (column, row, data) {\n var res = __WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].createClass(\"expression\");\n res.setSurveyImpl(row);\n return res;\n };\n MatrixDropdownTotalCell.prototype.updateCellQuestion = function () {\n this.question.locCalculation();\n this.column.updateCellQuestion(this.question, null);\n this.question.expression = this.getTotalExpression();\n this.question.format = this.column.totalFormat;\n this.question.currency = this.column.totalCurrency;\n this.question.displayStyle = this.column.totalDisplayStyle;\n this.question.maximumFractionDigits = this.column.totalMaximumFractionDigits;\n this.question.minimumFractionDigits = this.column.totalMinimumFractionDigits;\n this.question.unlocCalculation();\n };\n MatrixDropdownTotalCell.prototype.getTotalExpression = function () {\n if (!!this.column.totalExpression)\n return this.column.totalExpression;\n if (this.column.totalType == \"none\")\n return \"\";\n var funName = this.column.totalType + \"InArray\";\n if (!__WEBPACK_IMPORTED_MODULE_11__functionsfactory__[\"a\" /* FunctionFactory */].Instance.hasFunction(funName))\n return \"\";\n return funName + \"({self}, '\" + this.column.name + \"')\";\n };\n return MatrixDropdownTotalCell;\n}(MatrixDropdownCell));\n\nvar MatrixDropdownRowModelBase = /** @class */ (function () {\n function MatrixDropdownRowModelBase(data, value) {\n this.isSettingValue = false;\n this.cells = [];\n this.data = data;\n this.textPreProcessor = new __WEBPACK_IMPORTED_MODULE_5__textPreProcessor__[\"a\" /* TextPreProcessor */]();\n var self = this;\n this.textPreProcessor.onProcess = function (textValue) {\n self.getProcessedTextValue(textValue);\n };\n this.idValue = MatrixDropdownRowModelBase.getId();\n }\n MatrixDropdownRowModelBase.getId = function () {\n return \"srow_\" + MatrixDropdownRowModelBase.idCounter++;\n };\n Object.defineProperty(MatrixDropdownRowModelBase.prototype, \"id\", {\n get: function () {\n return this.idValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownRowModelBase.prototype, \"rowName\", {\n get: function () {\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownRowModelBase.prototype, \"value\", {\n get: function () {\n var result = {};\n for (var i = 0; i < this.cells.length; i++) {\n var question = this.cells[i].question;\n if (!question.isEmpty()) {\n result[question.getValueName()] = question.value;\n }\n }\n return result;\n },\n set: function (value) {\n this.isSettingValue = true;\n for (var i = 0; i < this.cells.length; i++) {\n var question = this.cells[i].question;\n var val = !!value ? value[question.getValueName()] : null;\n question.updateValueFromSurvey(val);\n question.onSurveyValueChanged(val);\n }\n this.isSettingValue = false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownRowModelBase.prototype, \"locText\", {\n get: function () {\n return null;\n },\n enumerable: true,\n configurable: true\n });\n MatrixDropdownRowModelBase.prototype.getAllValues = function () {\n return this.value;\n };\n MatrixDropdownRowModelBase.prototype.getFilteredValues = function () {\n var allValues = this.getAllValues();\n var values = { row: allValues };\n for (var key in allValues) {\n values[key] = allValues[key];\n }\n return values;\n };\n MatrixDropdownRowModelBase.prototype.getFilteredProperties = function () {\n return { survey: this.getSurvey(), row: this };\n };\n MatrixDropdownRowModelBase.prototype.runCondition = function (values, properties) {\n if (!!this.data) {\n values[MatrixDropdownRowModelBase.OwnerVariableName] = this.data.value;\n }\n values[MatrixDropdownRowModelBase.IndexVariableName] = this.rowIndex;\n if (!properties)\n properties = {};\n properties[MatrixDropdownRowModelBase.RowVariableName] = this;\n for (var i = 0; i < this.cells.length; i++) {\n values[MatrixDropdownRowModelBase.RowVariableName] = this.value;\n this.cells[i].runCondition(values, properties);\n }\n };\n MatrixDropdownRowModelBase.prototype.onAnyValueChanged = function (name) {\n for (var i = 0; i < this.cells.length; i++) {\n this.cells[i].question.onAnyValueChanged(name);\n }\n };\n MatrixDropdownRowModelBase.prototype.getDataValueCore = function (valuesHash, key) {\n var survey = this.getSurvey();\n if (!!survey) {\n return survey.getDataValueCore(valuesHash, key);\n }\n else {\n return valuesHash[key];\n }\n };\n MatrixDropdownRowModelBase.prototype.getValue = function (name) {\n var question = this.getQuestionByColumnName(name);\n return !!question ? question.value : null;\n };\n MatrixDropdownRowModelBase.prototype.setValue = function (name, newColumnValue) {\n if (this.isSettingValue)\n return;\n var newValue = this.value;\n var changedValue = this.getValue(name);\n var changedQuestion = this.getQuestionByColumnName(name);\n var changingValue = this.data.onRowChanging(this, name, newValue);\n if (!!changedQuestion &&\n !__WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].isTwoValueEquals(changingValue, changedValue)) {\n this.getQuestionByColumnName(name).value = changingValue;\n }\n else {\n this.data.onRowChanged(this, name, newValue, newColumnValue == null && !changedQuestion);\n this.onAnyValueChanged(MatrixDropdownRowModelBase.RowVariableName);\n }\n };\n MatrixDropdownRowModelBase.prototype.getVariable = function (name) {\n return undefined;\n };\n MatrixDropdownRowModelBase.prototype.setVariable = function (name, newValue) { };\n MatrixDropdownRowModelBase.prototype.getComment = function (name) {\n var result = this.getValue(name + __WEBPACK_IMPORTED_MODULE_12__settings__[\"a\" /* settings */].commentPrefix);\n return result ? result : \"\";\n };\n MatrixDropdownRowModelBase.prototype.setComment = function (name, newValue, locNotification) {\n this.setValue(name + __WEBPACK_IMPORTED_MODULE_12__settings__[\"a\" /* settings */].commentPrefix, newValue);\n };\n Object.defineProperty(MatrixDropdownRowModelBase.prototype, \"isEmpty\", {\n get: function () {\n var val = this.value;\n if (__WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].isValueEmpty(val))\n return true;\n for (var key in val) {\n if (val[key] !== undefined && val[key] !== null)\n return false;\n }\n return true;\n },\n enumerable: true,\n configurable: true\n });\n MatrixDropdownRowModelBase.prototype.getQuestionByColumn = function (column) {\n for (var i = 0; i < this.cells.length; i++) {\n if (this.cells[i].column == column)\n return this.cells[i].question;\n }\n return null;\n };\n MatrixDropdownRowModelBase.prototype.getQuestionByColumnName = function (columnName) {\n for (var i = 0; i < this.cells.length; i++) {\n if (this.cells[i].column.name == columnName)\n return this.cells[i].question;\n }\n return null;\n };\n MatrixDropdownRowModelBase.prototype.getSharedQuestionByName = function (columnName) {\n return !!this.data\n ? this.data.getSharedQuestionByName(columnName, this)\n : null;\n };\n MatrixDropdownRowModelBase.prototype.clearIncorrectValues = function (val) {\n for (var key in val) {\n var question = this.getQuestionByColumnName(key);\n if (question) {\n var qVal = question.value;\n question.clearIncorrectValues();\n if (!__WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].isTwoValueEquals(qVal, question.value)) {\n this.setValue(key, question.value);\n }\n }\n else {\n if (!this.getSharedQuestionByName(key)) {\n this.setValue(key, null);\n }\n }\n }\n };\n MatrixDropdownRowModelBase.prototype.getLocale = function () {\n return this.data ? this.data.getLocale() : \"\";\n };\n MatrixDropdownRowModelBase.prototype.getMarkdownHtml = function (text) {\n return this.data ? this.data.getMarkdownHtml(text) : null;\n };\n MatrixDropdownRowModelBase.prototype.getProcessedText = function (text) {\n return this.data ? this.data.getProcessedText(text) : text;\n };\n MatrixDropdownRowModelBase.prototype.locStrsChanged = function () {\n for (var i = 0; i < this.cells.length; i++) {\n this.cells[i].question.locStrsChanged();\n }\n };\n MatrixDropdownRowModelBase.prototype.updateCellQuestionOnColumnChanged = function (column) {\n for (var i = 0; i < this.cells.length; i++) {\n if (this.cells[i].column === column) {\n this.updateCellOnColumnChanged(this.cells[i]);\n return;\n }\n }\n };\n MatrixDropdownRowModelBase.prototype.onQuestionReadOnlyChanged = function (parentIsReadOnly) {\n for (var i = 0; i < this.cells.length; i++) {\n if (!!this.cells[i].question) {\n this.cells[i].question.readOnly = parentIsReadOnly;\n }\n }\n };\n MatrixDropdownRowModelBase.prototype.updateCellOnColumnChanged = function (cell) {\n cell.column.updateCellQuestion(cell.question, this);\n };\n MatrixDropdownRowModelBase.prototype.buildCells = function (value) {\n this.isSettingValue = true;\n var columns = this.data.columns;\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n if (!column.isVisible)\n continue;\n var cell = this.createCell(column);\n this.cells.push(cell);\n if (!!value && !__WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].isValueEmpty(value[column.name])) {\n cell.question.value = value[column.name];\n }\n }\n this.isSettingValue = false;\n };\n MatrixDropdownRowModelBase.prototype.createCell = function (column) {\n return new MatrixDropdownCell(column, this, this.data);\n };\n MatrixDropdownRowModelBase.prototype.geSurveyData = function () {\n return this;\n };\n MatrixDropdownRowModelBase.prototype.getSurvey = function () {\n return this.data ? this.data.getSurvey() : null;\n };\n Object.defineProperty(MatrixDropdownRowModelBase.prototype, \"rowIndex\", {\n get: function () {\n return !!this.data ? this.data.getRowIndex(this) + 1 : -1;\n },\n enumerable: true,\n configurable: true\n });\n //ITextProcessor\n MatrixDropdownRowModelBase.prototype.getProcessedTextValue = function (textValue) {\n var firstName = new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]().getFirstName(textValue.name);\n textValue.isExists =\n firstName == MatrixDropdownRowModelBase.RowVariableName;\n textValue.canProcess = textValue.isExists;\n if (!textValue.isExists)\n return;\n var values = { row: this.value };\n textValue.value = new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]().getValue(textValue.name, values);\n };\n MatrixDropdownRowModelBase.prototype.getTextProcessor = function () {\n return this;\n };\n MatrixDropdownRowModelBase.prototype.processText = function (text, returnDisplayValue) {\n text = this.textPreProcessor.process(text, returnDisplayValue);\n if (!this.getSurvey())\n return text;\n return this.getSurvey().processText(text, returnDisplayValue);\n };\n MatrixDropdownRowModelBase.prototype.processTextEx = function (text, returnDisplayValue) {\n text = this.processText(text, returnDisplayValue);\n if (!this.getSurvey())\n return text;\n var hasAllValuesOnLastRun = this.textPreProcessor.hasAllValuesOnLastRun;\n var res = this.getSurvey().processTextEx(text, returnDisplayValue, false);\n res.hasAllValuesOnLastRun =\n res.hasAllValuesOnLastRun && hasAllValuesOnLastRun;\n return res;\n };\n MatrixDropdownRowModelBase.RowVariableName = \"row\";\n MatrixDropdownRowModelBase.OwnerVariableName = \"self\";\n MatrixDropdownRowModelBase.IndexVariableName = \"rowIndex\";\n MatrixDropdownRowModelBase.idCounter = 1;\n return MatrixDropdownRowModelBase;\n}());\n\nvar MatrixDropdownTotalRowModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixDropdownTotalRowModel, _super);\n function MatrixDropdownTotalRowModel(data) {\n var _this = _super.call(this, data, null) || this;\n _this.buildCells(null);\n return _this;\n }\n MatrixDropdownTotalRowModel.prototype.createCell = function (column) {\n return new MatrixDropdownTotalCell(column, this, this.data);\n };\n MatrixDropdownTotalRowModel.prototype.setValue = function (name, newValue) {\n if (!!this.data) {\n this.data.onTotalValueChanged();\n }\n };\n MatrixDropdownTotalRowModel.prototype.runCondition = function (values, properties) {\n var counter = 0;\n var prevValue;\n do {\n prevValue = __WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].getUnbindValue(this.value);\n _super.prototype.runCondition.call(this, values, properties);\n counter++;\n } while (!__WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\" /* Helpers */].isTwoValueEquals(prevValue, this.value) && counter < 3);\n };\n MatrixDropdownTotalRowModel.prototype.updateCellOnColumnChanged = function (cell) {\n cell.updateCellQuestion();\n };\n return MatrixDropdownTotalRowModel;\n}(MatrixDropdownRowModelBase));\n\nvar QuestionMatrixDropdownRenderedCell = /** @class */ (function () {\n function QuestionMatrixDropdownRenderedCell() {\n this.minWidth = \"\";\n this.width = \"\";\n this.idValue = QuestionMatrixDropdownRenderedCell.counter++;\n }\n Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, \"hasQuestion\", {\n get: function () {\n return !!this.question;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, \"hasTitle\", {\n get: function () {\n return !!this.locTitle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, \"id\", {\n get: function () {\n return this.idValue;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownRenderedCell.counter = 1;\n return QuestionMatrixDropdownRenderedCell;\n}());\n\nvar QuestionMatrixDropdownRenderedRow = /** @class */ (function () {\n function QuestionMatrixDropdownRenderedRow() {\n this.cells = [];\n this.idValue = QuestionMatrixDropdownRenderedRow.counter++;\n }\n Object.defineProperty(QuestionMatrixDropdownRenderedRow.prototype, \"id\", {\n get: function () {\n return this.idValue;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownRenderedRow.counter = 1;\n return QuestionMatrixDropdownRenderedRow;\n}());\n\nvar QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionMatrixDropdownRenderedTable, _super);\n function QuestionMatrixDropdownRenderedTable(matrix) {\n var _this = _super.call(this) || this;\n _this.matrix = matrix;\n _this.createNewArray(\"rows\");\n _this.build();\n return _this;\n }\n Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, \"showHeader\", {\n get: function () {\n return this.getPropertyValue(\"showHeader\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, \"showFooter\", {\n get: function () {\n return this.matrix.hasFooter && this.matrix.isColumnLayoutHorizontal;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, \"hasFooter\", {\n get: function () {\n return !!this.footerRow;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, \"hasRemoveRows\", {\n get: function () {\n return this.hasRemoveRowsValue;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownRenderedTable.prototype.isRequireReset = function () {\n return (this.hasRemoveRows != this.matrix.canRemoveRows ||\n !this.matrix.isColumnLayoutHorizontal);\n };\n Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, \"headerRow\", {\n get: function () {\n return this.headerRowValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, \"footerRow\", {\n get: function () {\n return this.footerRowValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, \"rows\", {\n get: function () {\n return this.getPropertyValue(\"rows\");\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownRenderedTable.prototype.build = function () {\n this.hasRemoveRowsValue = this.matrix.canRemoveRows;\n //build rows now\n var rows = this.matrix.visibleRows;\n this.buildHeader();\n this.buildRows();\n this.buildFooter();\n };\n QuestionMatrixDropdownRenderedTable.prototype.onAddedRow = function () {\n if (this.rows.length >= this.matrix.visibleRows.length)\n return;\n this.rows.push(this.createHorizontalRow(this.matrix.visibleRows[this.matrix.visibleRows.length - 1]));\n };\n QuestionMatrixDropdownRenderedTable.prototype.onRemovedRow = function (index) {\n if (this.rows.length <= index)\n return;\n this.rows.splice(index, 1);\n };\n QuestionMatrixDropdownRenderedTable.prototype.buildHeader = function () {\n var colHeaders = this.matrix.isColumnLayoutHorizontal && this.matrix.showHeader;\n var isShown = colHeaders ||\n (this.matrix.hasRowText && !this.matrix.isColumnLayoutHorizontal);\n this.setPropertyValue(\"showHeader\", isShown);\n if (!isShown)\n return;\n this.headerRowValue = new QuestionMatrixDropdownRenderedRow();\n if (this.matrix.hasRowText && this.matrix.showHeader) {\n this.headerRow.cells.push(this.createHeaderCell(null));\n }\n if (this.matrix.isColumnLayoutHorizontal) {\n for (var i = 0; i < this.matrix.visibleColumns.length; i++) {\n var column = this.matrix.visibleColumns[i];\n if (!column.hasVisibleCell)\n continue;\n this.headerRow.cells.push(this.createHeaderCell(column));\n }\n }\n else {\n var rows = this.matrix.visibleRows;\n for (var i = 0; i < rows.length; i++) {\n this.headerRow.cells.push(this.createTextCell(rows[i].locText));\n }\n if (this.matrix.hasFooter) {\n this.headerRow.cells.push(this.createTextCell(this.matrix.getFooterText()));\n }\n }\n if (this.hasRemoveRows) {\n this.headerRow.cells.push(this.createHeaderCell(null));\n }\n };\n QuestionMatrixDropdownRenderedTable.prototype.buildFooter = function () {\n if (!this.showFooter)\n return;\n this.footerRowValue = new QuestionMatrixDropdownRenderedRow();\n if (this.matrix.hasRowText) {\n this.footerRow.cells.push(this.createTextCell(this.matrix.getFooterText()));\n }\n var cells = this.matrix.visibleTotalRow.cells;\n for (var i = 0; i < cells.length; i++) {\n if (!cells[i].column.hasVisibleCell)\n continue;\n this.footerRow.cells.push(this.createEditCell(cells[i]));\n }\n if (this.hasRemoveRows) {\n this.footerRow.cells.push(this.createHeaderCell(null));\n }\n };\n QuestionMatrixDropdownRenderedTable.prototype.buildRows = function () {\n var rows = this.matrix.isColumnLayoutHorizontal\n ? this.buildHorizontalRows()\n : this.buildVerticalRows();\n this.setPropertyValue(\"rows\", rows);\n };\n QuestionMatrixDropdownRenderedTable.prototype.canRemoveRow = function (row) {\n return this.matrix.canRemoveRow(row);\n };\n QuestionMatrixDropdownRenderedTable.prototype.buildHorizontalRows = function () {\n var rows = this.matrix.visibleRows;\n var renderedRows = [];\n for (var i = 0; i < rows.length; i++) {\n renderedRows.push(this.createHorizontalRow(rows[i]));\n }\n return renderedRows;\n };\n QuestionMatrixDropdownRenderedTable.prototype.createHorizontalRow = function (row) {\n var res = new QuestionMatrixDropdownRenderedRow();\n if (this.matrix.hasRowText) {\n res.cells.push(this.createTextCell(row.locText));\n }\n for (var i = 0; i < row.cells.length; i++) {\n var cell = row.cells[i];\n if (!cell.column.hasVisibleCell)\n continue;\n res.cells.push(this.createEditCell(cell));\n }\n if (this.hasRemoveRows) {\n res.cells.push(this.createRemoveRowCell(row));\n }\n return res;\n };\n QuestionMatrixDropdownRenderedTable.prototype.buildVerticalRows = function () {\n var columns = this.matrix.columns;\n var renderedRows = [];\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].isVisible && columns[i].hasVisibleCell) {\n renderedRows.push(this.createVerticalRow(columns[i], i));\n }\n }\n if (this.hasRemoveRows) {\n renderedRows.push(this.createVerticalRemoveRow());\n }\n return renderedRows;\n };\n QuestionMatrixDropdownRenderedTable.prototype.createVerticalRow = function (column, index) {\n var res = new QuestionMatrixDropdownRenderedRow();\n if (this.matrix.showHeader) {\n res.cells.push(this.createTextCell(column.locTitle));\n }\n var rows = this.matrix.visibleRows;\n for (var i = 0; i < rows.length; i++) {\n res.cells.push(this.createEditCell(rows[i].cells[index]));\n }\n if (this.matrix.hasTotal) {\n res.cells.push(this.createEditCell(this.matrix.visibleTotalRow.cells[index]));\n }\n return res;\n };\n QuestionMatrixDropdownRenderedTable.prototype.createVerticalRemoveRow = function () {\n var res = new QuestionMatrixDropdownRenderedRow();\n if (this.matrix.showHeader) {\n res.cells.push(this.createTextCell(null));\n }\n var rows = this.matrix.visibleRows;\n for (var i = 0; i < rows.length; i++) {\n res.cells.push(this.createRemoveRowCell(rows[i]));\n }\n if (this.matrix.hasTotal) {\n res.cells.push(this.createTextCell(null));\n }\n return res;\n };\n QuestionMatrixDropdownRenderedTable.prototype.createEditCell = function (cell) {\n var res = new QuestionMatrixDropdownRenderedCell();\n res.cell = cell;\n res.row = cell.row;\n res.question = cell.question;\n res.matrix = this.matrix;\n return res;\n };\n QuestionMatrixDropdownRenderedTable.prototype.createHeaderCell = function (column) {\n var cell = this.createTextCell(!!column ? column.locTitle : null);\n cell.minWidth = column != null ? this.matrix.getColumnWidth(column) : \"\";\n cell.width = column != null ? column.width : \"\";\n return cell;\n };\n QuestionMatrixDropdownRenderedTable.prototype.createRemoveRowCell = function (row) {\n var res = new QuestionMatrixDropdownRenderedCell();\n res.row = row;\n res.isRemoveRow = this.canRemoveRow(row);\n return res;\n };\n QuestionMatrixDropdownRenderedTable.prototype.createTextCell = function (locTitle) {\n var cell = new QuestionMatrixDropdownRenderedCell();\n cell.locTitle = !!locTitle\n ? locTitle\n : new __WEBPACK_IMPORTED_MODULE_9__localizablestring__[\"a\" /* LocalizableString */](this.matrix, false);\n return cell;\n };\n return QuestionMatrixDropdownRenderedTable;\n}(__WEBPACK_IMPORTED_MODULE_4__base__[\"a\" /* Base */]));\n\n/**\n * A base class for matrix dropdown and matrix dynamic questions.\n */\nvar QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionMatrixDropdownModelBase, _super);\n function QuestionMatrixDropdownModelBase(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.isRowChanging = false;\n _this.lockResetRenderedTable = false;\n _this.isDoingonAnyValueChanged = false;\n var self = _this;\n _this.choicesValue = _this.createItemValues(\"choices\");\n _this.createLocalizableString(\"optionsCaption\", _this);\n _this.registerFunctionOnPropertyValueChanged(\"columns\", function (newColumns) {\n self.updateColumnsIndexes(newColumns);\n self.generatedVisibleRows = null;\n self.generatedTotalRow = null;\n self.resetRenderedTable();\n self.fireCallback(self.columnsChangedCallback);\n });\n _this.registerFunctionOnPropertiesValueChanged([\"columnLayout\", \"addRowLocation\"], function () {\n self.fireCallback(self.columnLayoutChangedCallback);\n });\n _this.registerFunctionOnPropertiesValueChanged([\"cellType\", \"optionsCaption\", \"columnColCount\"], function () {\n self.generatedVisibleRows = null;\n self.resetRenderedTable();\n self.fireCallback(self.columnsChangedCallback);\n });\n _this.registerFunctionOnPropertiesValueChanged([\n \"columnLayout\",\n \"showHeader\",\n \"minRowCount\",\n \"isReadOnly\",\n \"rowCount\",\n \"hasFooter\"\n ], function () {\n self.resetRenderedTable();\n });\n return _this;\n }\n Object.defineProperty(QuestionMatrixDropdownModelBase, \"defaultCellType\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_12__settings__[\"a\" /* settings */].matrixDefaultCellType;\n },\n set: function (val) {\n __WEBPACK_IMPORTED_MODULE_12__settings__[\"a\" /* settings */].matrixDefaultCellType = val;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.addDefaultColumns = function (matrix) {\n var colNames = __WEBPACK_IMPORTED_MODULE_8__questionfactory__[\"a\" /* QuestionFactory */].DefaultColums;\n for (var i = 0; i < colNames.length; i++)\n matrix.addColumn(colNames[i]);\n };\n QuestionMatrixDropdownModelBase.prototype.createColumnValues = function () {\n var _this = this;\n return this.createNewArray(\"columns\", function (item) {\n item.colOwner = _this;\n });\n };\n QuestionMatrixDropdownModelBase.prototype.getType = function () {\n return \"matrixdropdownbase\";\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"isRowsDynamic\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"columnLayout\", {\n /**\n * Set columnLayout to 'vertical' to place columns vertically and rows horizontally. It makes sense when we have many columns and few rows.\n * @see columns\n * @see rowCount\n */\n get: function () {\n return this.getPropertyValue(\"columnLayout\");\n },\n set: function (val) {\n this.setPropertyValue(\"columnLayout\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"columnsLocation\", {\n get: function () {\n return this.columnLayout;\n },\n set: function (val) {\n this.columnLayout = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"isColumnLayoutHorizontal\", {\n /**\n * Returns true if columns are located horizontally\n * @see columnLayout\n */\n get: function () {\n return this.columnLayout != \"vertical\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"hasRowText\", {\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.getFooterText = function () {\n return null;\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"canRemoveRows\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.canRemoveRow = function (row) {\n return true;\n };\n QuestionMatrixDropdownModelBase.prototype.onRowsChanged = function () {\n this.resetRenderedTable();\n _super.prototype.onRowsChanged.call(this);\n };\n QuestionMatrixDropdownModelBase.prototype.onStartRowAddingRemoving = function () {\n this.lockResetRenderedTable = true;\n };\n QuestionMatrixDropdownModelBase.prototype.onEndRowAdding = function () {\n this.lockResetRenderedTable = false;\n if (!this.renderedTable)\n return;\n if (this.renderedTable.isRequireReset()) {\n this.resetRenderedTable();\n }\n else {\n this.renderedTable.onAddedRow();\n }\n };\n QuestionMatrixDropdownModelBase.prototype.onEndRowRemoving = function (index) {\n this.lockResetRenderedTable = false;\n if (this.renderedTable.isRequireReset()) {\n this.resetRenderedTable();\n }\n else {\n this.renderedTable.onRemovedRow(index);\n }\n };\n QuestionMatrixDropdownModelBase.prototype.resetRenderedTable = function () {\n if (this.lockResetRenderedTable || this.isLoadingFromJson)\n return;\n this.renderedTableValue = null;\n this.fireCallback(this.onRenderedTableResetCallback);\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"renderedTable\", {\n get: function () {\n if (!this.renderedTableValue) {\n this.renderedTableValue = this.createRenderedTable();\n if (!!this.onRenderedTableCreatedCallback) {\n this.onRenderedTableCreatedCallback(this.renderedTableValue);\n }\n }\n return this.renderedTableValue;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.createRenderedTable = function () {\n return new QuestionMatrixDropdownRenderedTable(this);\n };\n QuestionMatrixDropdownModelBase.prototype.onMatrixRowCreated = function (row) {\n if (!this.survey)\n return;\n var options = {\n rowValue: row.value,\n row: row,\n column: null,\n columnName: null,\n cell: null,\n cellQuestion: null,\n value: null\n };\n for (var i = 0; i < this.visibleColumns.length; i++) {\n options.column = this.visibleColumns[i];\n options.columnName = options.column.name;\n var cell = row.cells[i];\n options.cell = cell;\n options.cellQuestion = cell.question;\n options.value = cell.value;\n this.survey.matrixCellCreated(this, options);\n }\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"cellType\", {\n /**\n * Use this property to change the default cell type.\n */\n get: function () {\n return this.getPropertyValue(\"cellType\", __WEBPACK_IMPORTED_MODULE_12__settings__[\"a\" /* settings */].matrixDefaultCellType);\n },\n set: function (val) {\n val = val.toLowerCase();\n if (this.cellType == val)\n return;\n this.setPropertyValue(\"cellType\", val);\n this.updateColumnsCellType();\n this.fireCallback(this.updateCellsCallback);\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.updateColumnsCellType = function () {\n for (var i = 0; i < this.columns.length; i++) {\n this.columns[i].defaultCellTypeChanged();\n }\n };\n QuestionMatrixDropdownModelBase.prototype.updateColumnsIndexes = function (cols) {\n for (var i = 0; i < cols.length; i++) {\n cols[i].setIndex(i);\n }\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"columnColCount\", {\n /**\n * The default column count for radiogroup and checkbox cell types.\n */\n get: function () {\n return this.getPropertyValue(\"columnColCount\", 0);\n },\n set: function (value) {\n if (value < 0 || value > 4)\n return;\n this.setPropertyValue(\"columnColCount\", value);\n this.fireCallback(this.updateCellsCallback);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"columnMinWidth\", {\n /**\n * Use this property to set the mimimum column width.\n */\n get: function () {\n return this.getPropertyValue(\"columnMinWidth\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"columnMinWidth\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"horizontalScroll\", {\n /**\n * Set this property to true to show the horizontal scroll.\n */\n get: function () {\n return this.getPropertyValue(\"horizontalScroll\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"horizontalScroll\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.getRequiredText = function () {\n return this.survey ? this.survey.requiredText : \"\";\n };\n QuestionMatrixDropdownModelBase.prototype.onColumnPropertiesChanged = function (column) {\n this.updateHasFooter();\n if (!this.generatedVisibleRows)\n return;\n for (var i = 0; i < this.generatedVisibleRows.length; i++) {\n this.generatedVisibleRows[i].updateCellQuestionOnColumnChanged(column);\n }\n if (!!this.generatedTotalRow) {\n this.generatedTotalRow.updateCellQuestionOnColumnChanged(column);\n }\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"hasFooter\", {\n get: function () {\n return this.getPropertyValue(\"hasFooter\", false);\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.updateHasFooter = function () {\n this.setPropertyValue(\"hasFooter\", this.hasTotal);\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"hasTotal\", {\n get: function () {\n for (var i = 0; i < this.columns.length; i++) {\n if (this.columns[i].hasTotal)\n return true;\n }\n return false;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.getCellType = function () {\n return this.cellType;\n };\n QuestionMatrixDropdownModelBase.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n if (!path)\n return _super.prototype.getConditionJson.call(this);\n var columnName = \"\";\n for (var i = path.length - 1; i >= 0; i--) {\n if (path[i] == \".\")\n break;\n columnName = path[i] + columnName;\n }\n var column = this.getColumnByName(columnName);\n if (!column)\n return null;\n var question = column.createCellQuestion(null);\n if (!question)\n return null;\n return question.getConditionJson(operator);\n };\n QuestionMatrixDropdownModelBase.prototype.clearIncorrectValues = function () {\n var rows = this.visibleRows;\n if (!rows)\n return;\n for (var i = 0; i < rows.length; i++) {\n rows[i].clearIncorrectValues(this.getRowValue(i));\n }\n };\n QuestionMatrixDropdownModelBase.prototype.clearErrors = function () {\n _super.prototype.clearErrors.call(this);\n if (!!this.generatedVisibleRows) {\n for (var i = 0; i < this.generatedVisibleRows.length; i++) {\n var row = this.generatedVisibleRows[i];\n for (var j = 0; j < row.cells.length; j++) {\n row.cells[j].question.clearErrors();\n }\n }\n }\n };\n QuestionMatrixDropdownModelBase.prototype.runCondition = function (values, properties) {\n _super.prototype.runCondition.call(this, values, properties);\n this.runCellsCondition(values, properties);\n this.runTotalsCondition(values, properties);\n };\n QuestionMatrixDropdownModelBase.prototype.shouldRunColumnExpression = function () {\n return false;\n };\n QuestionMatrixDropdownModelBase.prototype.runCellsCondition = function (values, properties) {\n if (!this.generatedVisibleRows || !this.hasCellsCondition)\n return;\n var newValues = this.getRowConditionValues(values);\n var rows = this.generatedVisibleRows;\n for (var i = 0; i < rows.length; i++) {\n rows[i].runCondition(newValues, properties);\n }\n this.checkColumnsVisibility();\n };\n QuestionMatrixDropdownModelBase.prototype.checkColumnsVisibility = function () {\n var hasChanged = false;\n for (var i = 0; i < this.visibleColumns.length; i++) {\n if (!this.visibleColumns[i].visibleIf)\n continue;\n hasChanged =\n this.isColumnVisibilityChanged(this.visibleColumns[i]) || hasChanged;\n }\n if (hasChanged) {\n this.resetRenderedTable();\n }\n };\n QuestionMatrixDropdownModelBase.prototype.isColumnVisibilityChanged = function (column) {\n var curVis = column.hasVisibleCell;\n var hasVisCell = false;\n var rows = this.generatedVisibleRows;\n for (var i = 0; i < rows.length; i++) {\n var cell = rows[i].cells[column.index];\n if (!!cell && !!cell.question && cell.question.isVisible) {\n hasVisCell = true;\n break;\n }\n }\n if (curVis != hasVisCell) {\n column.hasVisibleCell = hasVisCell;\n }\n return curVis != hasVisCell;\n };\n QuestionMatrixDropdownModelBase.prototype.runTotalsCondition = function (values, properties) {\n if (!this.generatedTotalRow)\n return;\n this.generatedTotalRow.runCondition(this.getRowConditionValues(values), properties);\n };\n QuestionMatrixDropdownModelBase.prototype.getRowConditionValues = function (values) {\n var newValues = {};\n if (values && values instanceof Object) {\n newValues = JSON.parse(JSON.stringify(values));\n }\n newValues[\"row\"] = {};\n return newValues;\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"hasCellsCondition\", {\n get: function () {\n for (var i = 0; i < this.columns.length; i++) {\n if (this.columns[i].hasCondition)\n return true;\n }\n return false;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n var rows = this.generatedVisibleRows;\n if (!rows)\n return;\n var columns = this.columns;\n for (var i = 0; i < columns.length; i++) {\n columns[i].locStrsChanged();\n }\n for (var i = 0; i < rows.length; i++) {\n rows[i].locStrsChanged();\n }\n if (!!this.generatedTotalRow) {\n this.generatedTotalRow.locStrsChanged();\n }\n };\n /**\n * Returns the column by it's name. Retuns null if a column with this name doesn't exist.\n * @param column\n */\n QuestionMatrixDropdownModelBase.prototype.getColumnByName = function (columnName) {\n for (var i = 0; i < this.columns.length; i++) {\n if (this.columns[i].name == columnName)\n return this.columns[i];\n }\n return null;\n };\n QuestionMatrixDropdownModelBase.prototype.getColumnName = function (columnName) {\n return this.getColumnByName(columnName);\n };\n /**\n * Returns the column width.\n * @param column\n */\n QuestionMatrixDropdownModelBase.prototype.getColumnWidth = function (column) {\n return column.minWidth ? column.minWidth : this.columnMinWidth;\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"choices\", {\n /**\n * The default choices for dropdown, checkbox and radiogroup cell types.\n */\n get: function () {\n return this.choicesValue;\n },\n set: function (val) {\n this.setPropertyValue(\"choices\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"optionsCaption\", {\n /**\n * The default options caption for dropdown cell type.\n */\n get: function () {\n return this.getLocalizableStringText(\"optionsCaption\", __WEBPACK_IMPORTED_MODULE_7__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"optionsCaption\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"optionsCaption\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"locOptionsCaption\", {\n get: function () {\n return this.getLocalizableString(\"optionsCaption\");\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.addColumn = function (name, title) {\n if (title === void 0) { title = null; }\n var column = new MatrixDropdownColumn(name, title);\n this.columns.push(column);\n return column;\n };\n QuestionMatrixDropdownModelBase.prototype.getVisibleRows = function () {\n var _this = this;\n if (this.isLoadingFromJson)\n return null;\n if (!this.generatedVisibleRows) {\n this.generatedVisibleRows = this.generateRows();\n this.generatedVisibleRows.forEach(function (row) { return _this.onMatrixRowCreated(row); });\n if (this.data) {\n this.runCellsCondition(this.data.getFilteredValues(), this.data.getFilteredProperties());\n }\n this.updateValueOnRowsGeneration(this.generatedVisibleRows);\n }\n return this.generatedVisibleRows;\n };\n QuestionMatrixDropdownModelBase.prototype.updateValueOnRowsGeneration = function (rows) {\n var oldValue = this.createNewValue(true);\n var newValue = this.createNewValue();\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n var rowValue = this.getRowValue(i);\n var rValue = row.value;\n if (this.isTwoValueEquals(rowValue, rValue))\n continue;\n newValue = this.getNewValueOnRowChanged(row, \"\", rValue, false, newValue)\n .value;\n }\n if (this.isTwoValueEquals(oldValue, newValue))\n return;\n this.isRowChanging = true;\n this.setNewValue(newValue);\n this.isRowChanging = false;\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"totalValue\", {\n get: function () {\n if (!this.hasTotal)\n return {};\n return this.visibleTotalRow.value;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.getVisibleTotalRow = function () {\n if (this.isLoadingFromJson)\n return null;\n if (this.hasTotal) {\n if (!this.generatedTotalRow) {\n this.generatedTotalRow = this.generateTotalRow();\n if (this.data) {\n var properties = { survey: this.survey };\n this.runTotalsCondition(this.data.getAllValues(), properties);\n }\n }\n }\n else {\n this.generatedTotalRow = null;\n }\n return this.generatedTotalRow;\n };\n Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, \"visibleTotalRow\", {\n get: function () {\n return this.getVisibleTotalRow();\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModelBase.prototype.onSurveyLoad = function () {\n _super.prototype.onSurveyLoad.call(this);\n this.updateColumnsIndexes(this.columns);\n this.generatedVisibleRows = null;\n this.generatedTotalRow = null;\n this.updateHasFooter();\n };\n /**\n * Returns the row value. If the row value is empty, the object is empty: {}.\n * @param rowIndex row index from 0 to visible row count - 1.\n */\n QuestionMatrixDropdownModelBase.prototype.getRowValue = function (rowIndex) {\n if (rowIndex < 0)\n return null;\n var visRows = this.visibleRows;\n if (rowIndex >= visRows.length)\n return null;\n var newValue = this.createNewValue();\n return this.getRowValueCore(visRows[rowIndex], newValue);\n };\n /**\n * Set the row value.\n * @param rowIndex row index from 0 to visible row count - 1.\n * @param rowValue an object {\"column name\": columnValue,... }\n */\n QuestionMatrixDropdownModelBase.prototype.setRowValue = function (rowIndex, rowValue) {\n if (rowIndex < 0)\n return null;\n var visRows = this.visibleRows;\n if (rowIndex >= visRows.length)\n return null;\n this.onRowChanged(visRows[rowIndex], \"\", rowValue, false);\n this.onValueChanged();\n };\n QuestionMatrixDropdownModelBase.prototype.generateRows = function () {\n return null;\n };\n QuestionMatrixDropdownModelBase.prototype.generateTotalRow = function () {\n return new MatrixDropdownTotalRowModel(this);\n };\n QuestionMatrixDropdownModelBase.prototype.createNewValue = function (nullOnEmpty) {\n if (nullOnEmpty === void 0) { nullOnEmpty = false; }\n var res = !this.value ? {} : this.createValueCopy();\n if (nullOnEmpty && this.isMatrixValueEmpty(res))\n return null;\n return res;\n };\n QuestionMatrixDropdownModelBase.prototype.getRowValueCore = function (row, questionValue, create) {\n if (create === void 0) { create = false; }\n var result = !!questionValue && !!questionValue[row.rowName]\n ? questionValue[row.rowName]\n : null;\n if (!result && create) {\n result = {};\n if (!!questionValue) {\n questionValue[row.rowName] = result;\n }\n }\n return result;\n };\n QuestionMatrixDropdownModelBase.prototype.getRowDisplayValue = function (row, rowValue) {\n if (!rowValue)\n return rowValue;\n for (var key in rowValue) {\n var question = row.getQuestionByColumnName(key);\n if (!question) {\n question = this.getSharedQuestionByName(key, row);\n }\n if (!!question) {\n rowValue[key] = question.displayValue;\n }\n }\n return rowValue;\n };\n QuestionMatrixDropdownModelBase.prototype.getPlainData = function (options) {\n var _this = this;\n if (options === void 0) { options = {\n includeEmpty: true\n }; }\n var questionPlainData = _super.prototype.getPlainData.call(this, options);\n if (!!questionPlainData) {\n questionPlainData.isNode = true;\n questionPlainData.data = this.visibleRows.map(function (row) {\n var rowDataItem = {\n name: row.rowName,\n title: row.rowName,\n value: row.value,\n displayValue: _this.getRowDisplayValue(row, row.value),\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n },\n isNode: true,\n data: row.cells\n .map(function (cell) {\n return cell.question.getPlainData(options);\n })\n .filter(function (d) { return !!d; })\n };\n (options.calculations || []).forEach(function (calculation) {\n rowDataItem[calculation.propertyName] = row[calculation.propertyName];\n });\n return rowDataItem;\n });\n }\n return questionPlainData;\n };\n QuestionMatrixDropdownModelBase.prototype.onBeforeValueChanged = function (val) { };\n QuestionMatrixDropdownModelBase.prototype.onSetQuestionValue = function () {\n if (this.isRowChanging)\n return;\n this.onBeforeValueChanged(this.value);\n if (!this.generatedVisibleRows || this.generatedVisibleRows.length == 0)\n return;\n this.isRowChanging = true;\n var val = this.createNewValue();\n for (var i = 0; i < this.generatedVisibleRows.length; i++) {\n var row = this.generatedVisibleRows[i];\n this.generatedVisibleRows[i].value = this.getRowValueCore(row, val);\n }\n this.isRowChanging = false;\n };\n QuestionMatrixDropdownModelBase.prototype.setQuestionValue = function (newValue) {\n _super.prototype.setQuestionValue.call(this, newValue, false);\n this.onSetQuestionValue();\n this.updateIsAnswered();\n };\n QuestionMatrixDropdownModelBase.prototype.supportGoNextPageAutomatic = function () {\n var rows = this.generatedVisibleRows;\n if (!rows)\n rows = this.visibleRows;\n if (!rows)\n return true;\n for (var i = 0; i < rows.length; i++) {\n var cells = this.generatedVisibleRows[i].cells;\n if (!cells)\n continue;\n for (var colIndex = 0; colIndex < cells.length; colIndex++) {\n var question = cells[colIndex].question;\n if (question &&\n (!question.supportGoNextPageAutomatic() || !question.value))\n return false;\n }\n }\n return true;\n };\n QuestionMatrixDropdownModelBase.prototype.getContainsErrors = function () {\n return (_super.prototype.getContainsErrors.call(this) ||\n this.checkForAnswersOrErrors(function (question) { return question.containsErrors; }, false));\n };\n QuestionMatrixDropdownModelBase.prototype.getIsAnswered = function () {\n return (_super.prototype.getIsAnswered.call(this) &&\n this.checkForAnswersOrErrors(function (question) { return question.isAnswered; }, true));\n };\n QuestionMatrixDropdownModelBase.prototype.checkForAnswersOrErrors = function (predicate, every) {\n if (every === void 0) { every = false; }\n var rows = this.generatedVisibleRows;\n if (!rows)\n return false;\n for (var i = 0; i < rows.length; i++) {\n var cells = rows[i].cells;\n if (!cells)\n continue;\n for (var colIndex = 0; colIndex < cells.length; colIndex++) {\n if (!cells[colIndex])\n continue;\n var question = cells[colIndex].question;\n if (question && question.isVisible)\n if (predicate(question)) {\n if (!every)\n return true;\n }\n else {\n if (every)\n return false;\n }\n }\n }\n return every ? true : false;\n };\n QuestionMatrixDropdownModelBase.prototype.hasErrors = function (fireCallback, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (rec === void 0) { rec = null; }\n var errosInColumns = this.hasErrorInColumns(fireCallback);\n return _super.prototype.hasErrors.call(this, fireCallback) || errosInColumns;\n };\n QuestionMatrixDropdownModelBase.prototype.getIsRunningValidators = function () {\n if (_super.prototype.getIsRunningValidators.call(this))\n return true;\n if (!this.generatedVisibleRows)\n return false;\n for (var i = 0; i < this.generatedVisibleRows.length; i++) {\n var cells = this.generatedVisibleRows[i].cells;\n if (!cells)\n continue;\n for (var colIndex = 0; colIndex < cells.length; colIndex++) {\n if (!cells[colIndex])\n continue;\n var question = cells[colIndex].question;\n if (!!question && question.isRunningValidators)\n return true;\n }\n }\n return false;\n };\n QuestionMatrixDropdownModelBase.prototype.getAllErrors = function () {\n var result = _super.prototype.getAllErrors.call(this);\n var rows = this.generatedVisibleRows;\n if (rows === null)\n return result;\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n for (var j = 0; j < row.cells.length; j++) {\n var errors = row.cells[j].question.getAllErrors();\n if (errors && errors.length > 0) {\n result = result.concat(errors);\n }\n }\n }\n return result;\n };\n QuestionMatrixDropdownModelBase.prototype.hasErrorInColumns = function (fireCallback) {\n var _this = this;\n if (!this.generatedVisibleRows)\n return false;\n var res = false;\n for (var i = 0; i < this.generatedVisibleRows.length; i++) {\n var cells = this.generatedVisibleRows[i].cells;\n if (!cells)\n continue;\n for (var colIndex = 0; colIndex < cells.length; colIndex++) {\n if (!cells[colIndex])\n continue;\n var question = cells[colIndex].question;\n if (!question || !question.visible)\n continue;\n question.onCompletedAsyncValidators = function (hasErrors) {\n _this.raiseOnCompletedAsyncValidators();\n };\n res = question.hasErrors(fireCallback) || res;\n }\n }\n return res;\n };\n QuestionMatrixDropdownModelBase.prototype.getFirstInputElementId = function () {\n var question = this.getFirstCellQuestion(false);\n return question ? question.inputId : _super.prototype.getFirstInputElementId.call(this);\n };\n QuestionMatrixDropdownModelBase.prototype.getFirstErrorInputElementId = function () {\n var question = this.getFirstCellQuestion(true);\n return question ? question.inputId : _super.prototype.getFirstErrorInputElementId.call(this);\n };\n QuestionMatrixDropdownModelBase.prototype.getFirstCellQuestion = function (onError) {\n if (!this.generatedVisibleRows)\n return null;\n for (var i = 0; i < this.generatedVisibleRows.length; i++) {\n var cells = this.generatedVisibleRows[i].cells;\n for (var colIndex = 0; colIndex < cells.length; colIndex++) {\n if (!onError)\n return cells[colIndex].question;\n if (cells[colIndex].question.currentErrorCount > 0)\n return cells[colIndex].question;\n }\n }\n return null;\n };\n QuestionMatrixDropdownModelBase.prototype.onReadOnlyChanged = function () {\n _super.prototype.onReadOnlyChanged.call(this);\n if (!this.generateRows)\n return;\n for (var i = 0; i < this.visibleRows.length; i++) {\n this.visibleRows[i].onQuestionReadOnlyChanged(this.isReadOnly);\n }\n };\n //IMatrixDropdownData\n QuestionMatrixDropdownModelBase.prototype.createQuestion = function (row, column) {\n return this.createQuestionCore(row, column);\n };\n QuestionMatrixDropdownModelBase.prototype.createQuestionCore = function (row, column) {\n var question = column.createCellQuestion(row);\n if (this.isReadOnly) {\n question.readOnly = true;\n }\n question.setSurveyImpl(row);\n return question;\n };\n QuestionMatrixDropdownModelBase.prototype.deleteRowValue = function (newValue, row) {\n if (!newValue)\n return newValue;\n delete newValue[row.rowName];\n return this.isObject(newValue) && Object.keys(newValue).length == 0\n ? null\n : newValue;\n };\n QuestionMatrixDropdownModelBase.prototype.onAnyValueChanged = function (name) {\n if (this.isLoadingFromJson ||\n this.isDoingonAnyValueChanged ||\n !this.generatedVisibleRows)\n return;\n this.isDoingonAnyValueChanged = true;\n var rows = this.visibleRows;\n for (var i = 0; i < rows.length; i++) {\n rows[i].onAnyValueChanged(name);\n }\n var totalRow = this.visibleTotalRow;\n if (!!totalRow) {\n totalRow.onAnyValueChanged(name);\n }\n this.isDoingonAnyValueChanged = false;\n };\n QuestionMatrixDropdownModelBase.prototype.isObject = function (value) {\n return value !== null && typeof value === \"object\";\n };\n QuestionMatrixDropdownModelBase.prototype.getOnCellValueChangedOptions = function (row, columnName, rowValue) {\n var self = this;\n var getQuestion = function (colName) {\n for (var i = 0; self.columns.length; i++) {\n if (self.columns[i].name === colName) {\n return row.cells[i].question;\n }\n }\n return null;\n };\n return {\n row: row,\n columnName: columnName,\n rowValue: rowValue,\n value: !!rowValue ? rowValue[columnName] : null,\n getCellQuestion: getQuestion\n };\n };\n QuestionMatrixDropdownModelBase.prototype.onCellValueChanged = function (row, columnName, rowValue) {\n if (!this.survey)\n return;\n var options = this.getOnCellValueChangedOptions(row, columnName, rowValue);\n this.survey.matrixCellValueChanged(this, options);\n };\n QuestionMatrixDropdownModelBase.prototype.validateCell = function (row, columnName, rowValue) {\n if (!this.survey)\n return;\n var self = this;\n var getQuestion = function (colName) {\n for (var i = 0; self.columns.length; i++) {\n if (self.columns[i].name === colName) {\n return row.cells[i].question;\n }\n }\n return null;\n };\n var options = {\n row: row,\n columnName: columnName,\n rowValue: rowValue,\n value: rowValue[columnName],\n getCellQuestion: getQuestion\n };\n return this.survey.matrixCellValidate(this, options);\n };\n QuestionMatrixDropdownModelBase.prototype.onRowChanging = function (row, columnName, rowValue) {\n if (!this.survey)\n return !!rowValue ? rowValue[columnName] : null;\n var options = this.getOnCellValueChangedOptions(row, columnName, rowValue);\n var oldRowValue = this.getRowValueCore(row, this.createNewValue(), true);\n options.oldValue = !!oldRowValue ? oldRowValue[columnName] : null;\n this.survey.matrixCellValueChanging(this, options);\n return options.value;\n };\n QuestionMatrixDropdownModelBase.prototype.onRowChanged = function (row, columnName, newRowValue, isDeletingValue) {\n var oldValue = this.createNewValue(true);\n var combine = this.getNewValueOnRowChanged(row, columnName, newRowValue, isDeletingValue, this.createNewValue());\n if (this.isTwoValueEquals(oldValue, combine.value))\n return;\n this.isRowChanging = true;\n this.setNewValue(combine.value);\n this.isRowChanging = false;\n if (columnName) {\n this.onCellValueChanged(row, columnName, combine.rowValue);\n }\n };\n QuestionMatrixDropdownModelBase.prototype.getNewValueOnRowChanged = function (row, columnName, newRowValue, isDeletingValue, newValue) {\n var rowValue = this.getRowValueCore(row, newValue, true);\n if (isDeletingValue) {\n delete rowValue[columnName];\n }\n for (var i = 0; i < row.cells.length; i++) {\n var key = row.cells[i].question.getValueName();\n delete rowValue[key];\n }\n if (newRowValue) {\n newRowValue = JSON.parse(JSON.stringify(newRowValue));\n for (var key in newRowValue) {\n if (!this.isValueEmpty(newRowValue[key])) {\n rowValue[key] = newRowValue[key];\n }\n }\n }\n if (this.isObject(rowValue) && Object.keys(rowValue).length === 0) {\n newValue = this.deleteRowValue(newValue, row);\n }\n return { value: newValue, rowValue: rowValue };\n };\n QuestionMatrixDropdownModelBase.prototype.getRowIndex = function (row) {\n return this.visibleRows.indexOf(row);\n };\n QuestionMatrixDropdownModelBase.prototype.getSharedQuestionByName = function (columnName, row) {\n if (!this.survey || !this.valueName)\n return null;\n var index = this.getRowIndex(row);\n if (index < 0)\n return null;\n return (this.survey.getQuestionByValueNameFromArray(this.valueName, columnName, index));\n };\n QuestionMatrixDropdownModelBase.prototype.onTotalValueChanged = function () {\n if (!!this.data && !!this.visibleTotalRow) {\n this.data.setValue(this.getValueName() + __WEBPACK_IMPORTED_MODULE_12__settings__[\"a\" /* settings */].matrixTotalValuePostFix, this.totalValue, false);\n }\n };\n QuestionMatrixDropdownModelBase.prototype.getQuestionFromArray = function (name, index) {\n if (index >= this.visibleRows.length)\n return null;\n return this.visibleRows[index].getQuestionByColumnName(name);\n };\n QuestionMatrixDropdownModelBase.prototype.isMatrixValueEmpty = function (val) {\n if (!val)\n return;\n if (Array.isArray(val)) {\n for (var i = 0; i < val.length; i++) {\n if (this.isObject(val[i]) && Object.keys(val[i]).length > 0)\n return false;\n }\n return true;\n }\n return Object.keys(val).length == 0;\n };\n QuestionMatrixDropdownModelBase.prototype.getSurvey = function () {\n return this.survey;\n };\n return QuestionMatrixDropdownModelBase;\n}(__WEBPACK_IMPORTED_MODULE_2__martixBase__[\"a\" /* QuestionMatrixBaseModel */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"matrixdropdowncolumn\", [\n \"!name\",\n { name: \"title\", serializationProperty: \"locTitle\" },\n {\n name: \"cellType\",\n default: \"default\",\n choices: function () {\n var res = MatrixDropdownColumn.getColumnTypes();\n res.splice(0, 0, \"default\");\n return res;\n }\n },\n { name: \"colCount\", default: -1, choices: [-1, 0, 1, 2, 3, 4] },\n \"isRequired:boolean\",\n {\n name: \"requiredErrorText:text\",\n serializationProperty: \"locRequiredErrorText\"\n },\n \"hasOther:boolean\",\n \"readOnly:boolean\",\n \"minWidth\",\n \"width\",\n \"visibleIf:condition\",\n \"enableIf:condition\",\n \"requiredIf:condition\",\n {\n name: \"validators:validators\",\n baseClassName: \"surveyvalidator\",\n classNamePart: \"validator\"\n },\n {\n name: \"totalType\",\n default: \"none\",\n choices: [\"none\", \"sum\", \"count\", \"min\", \"max\", \"avg\"]\n },\n \"totalExpression:expression\",\n { name: \"totalFormat\", serializationProperty: \"locTotalFormat\" },\n {\n name: \"totalDisplayStyle\",\n default: \"none\",\n choices: [\"none\", \"decimal\", \"currency\", \"percent\"]\n },\n {\n name: \"totalCurrency\",\n choices: function () {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__question_expression__[\"b\" /* getCurrecyCodes */])();\n },\n default: \"USD\"\n },\n { name: \"totalMaximumFractionDigits:number\", default: -1 },\n { name: \"totalMinimumFractionDigits:number\", default: -1 }\n], function () {\n return new MatrixDropdownColumn(\"\");\n});\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"matrixdropdownbase\", [\n {\n name: \"columns:matrixdropdowncolumns\",\n className: \"matrixdropdowncolumn\"\n },\n {\n name: \"columnLayout\",\n alternativeName: \"columnsLocation\",\n default: \"horizontal\",\n choices: [\"horizontal\", \"vertical\"]\n },\n \"horizontalScroll:boolean\",\n {\n name: \"choices:itemvalue[]\"\n },\n { name: \"optionsCaption\", serializationProperty: \"locOptionsCaption\" },\n {\n name: \"cellType\",\n default: \"dropdown\",\n choices: function () {\n return MatrixDropdownColumn.getColumnTypes();\n }\n },\n { name: \"columnColCount\", default: 0, choices: [0, 1, 2, 3, 4] },\n \"columnMinWidth\"\n], function () {\n return new QuestionMatrixDropdownModelBase(\"\");\n}, \"matrixbase\");\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defaultCss_cssstandard__ = __webpack_require__(12);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return StylesManager; });\n\nvar StylesManager = /** @class */ (function () {\n function StylesManager() {\n this.sheet = null;\n if (StylesManager.Enabled) {\n this.sheet = StylesManager.findSheet(StylesManager.SurveyJSStylesSheetId);\n if (!this.sheet) {\n this.sheet = StylesManager.createSheet(StylesManager.SurveyJSStylesSheetId);\n this.initializeStyles(this.sheet);\n }\n }\n }\n StylesManager.findSheet = function (styleSheetId) {\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (!!document.styleSheets[i].ownerNode &&\n document.styleSheets[i].ownerNode[\"id\"] === styleSheetId) {\n return document.styleSheets[i];\n }\n }\n return null;\n };\n StylesManager.createSheet = function (styleSheetId) {\n var style = document.createElement(\"style\");\n style.id = styleSheetId;\n // Add a media (and/or media query) here if you'd like!\n // style.setAttribute(\"media\", \"screen\")\n // style.setAttribute(\"media\", \"only screen and (max-width : 1024px)\")\n style.appendChild(document.createTextNode(\"\"));\n document.head.appendChild(style);\n return style.sheet;\n };\n StylesManager.applyTheme = function (themeName, themeSelector) {\n if (themeName === void 0) { themeName = \"default\"; }\n if (themeSelector === void 0) { themeSelector = \".sv_main\"; }\n var ThemeCss;\n if (themeName === \"modern\")\n themeSelector = \".sv-root-modern \";\n if ([\"bootstrap\", \"bootstrapmaterial\", \"modern\"].indexOf(themeName) !== -1) {\n ThemeCss = StylesManager[themeName + \"ThemeCss\"];\n __WEBPACK_IMPORTED_MODULE_0__defaultCss_cssstandard__[\"a\" /* surveyCss */].currentType = themeName;\n }\n else {\n ThemeCss = StylesManager.ThemeCss;\n __WEBPACK_IMPORTED_MODULE_0__defaultCss_cssstandard__[\"a\" /* surveyCss */].currentType = \"standard\";\n }\n if (StylesManager.Enabled) {\n var sheet_1 = StylesManager.findSheet(themeName + themeSelector);\n if (!sheet_1) {\n sheet_1 = StylesManager.createSheet(themeName + themeSelector);\n var theme_1 = StylesManager.ThemeColors[themeName] ||\n StylesManager.ThemeColors[\"default\"];\n Object.keys(ThemeCss).forEach(function (selector) {\n var cssRuleText = ThemeCss[selector];\n Object.keys(theme_1).forEach(function (colorVariableName) {\n return (cssRuleText = cssRuleText.replace(new RegExp(\"\\\\\" + colorVariableName, \"g\"), theme_1[colorVariableName]));\n });\n sheet_1.insertRule(themeSelector + selector + \" { \" + cssRuleText + \" }\", 0);\n });\n }\n }\n };\n StylesManager.prototype.initializeStyles = function (sheet) {\n if (StylesManager.Enabled) {\n Object.keys(StylesManager.Styles).forEach(function (selector) {\n return sheet.insertRule(selector + \" { \" + StylesManager.Styles[selector] + \" }\", 0);\n });\n Object.keys(StylesManager.Media).forEach(function (selector) {\n sheet.insertRule(StylesManager.Media[selector].media +\n \" { \" +\n selector +\n \" { \" +\n StylesManager.Media[selector].style +\n \" } }\", 0);\n });\n }\n };\n StylesManager.SurveyJSStylesSheetId = \"surveyjs\";\n StylesManager.Styles = {\n // \".sv_bootstrap_css\":\n // \"position: relative; width: 100%; background-color: #f4f4f4\",\n // \".sv_bootstrap_css .sv_custom_header\":\n // \"position: absolute; width: 100%; height: 275px; background-color: #e7e7e7;\",\n // \".sv_bootstrap_css .sv_container\":\n // \"max-width: 80%; margin: auto; position: relative; color: #6d7072; padding: 0 1em;\",\n // \".sv_bootstrap_css .panel-body\":\n // \"background-color: white; padding: 1em 1em 5em 1em; border-top: 2px solid lightgray;\",\n \".sv_main span\": \"word-break: break-word;\",\n \".sv_main legend\": \"border: none; margin: 0;\",\n \".sv_bootstrap_css .sv_qstn\": \"padding: 0.5em 1em 1.5em 1em;\",\n \".sv_bootstrap_css .sv_qcbc input[type=checkbox], .sv_bootstrap_css .sv_qcbc input[type=radio]\": \"vertical-align: middle; margin-top: -1px\",\n \".sv_bootstrap_css .sv_qstn fieldset\": \"display: block;\",\n \".sv_bootstrap_css .sv_qstn .sv_q_checkbox_inline, .sv_bootstrap_css .sv_qstn .sv_q_radiogroup_inline\": \"display: inline-block;\",\n \".sv_bootstrap_css .sv-paneldynamic__progress-container \": \"position: relative; margin-right: 250px; margin-left: 40px; margin-top: 10px;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_q_radiogroup_control_label\": \"display: inline; position: static;\",\n \".sv_main.sv_bootstrapmaterial_css .checkbox\": \"margin-top:10px;margin-bottom:10px;\",\n \".sv_row\": \"clear: both;\",\n \".sv_row .sv_qstn\": \"float: left\",\n \".sv_row .sv_qstn:last-child\": \"float: none\",\n \".sv_qstn\": \"display: inline-block; vertical-align: top; overflow: auto;\",\n \".progress\": \"width: 60%;\",\n \".progress-bar\": \"width: auto; margin-left: 2px; margin-right: 2px;\",\n \".sv_p_container\": \"display: inline-block; vertical-align: top;\",\n \".sv_qbln .checkbox-material\": \"margin-right: 3px;\",\n \".sv_qcbx .checkbox-material\": \"margin-right: 5px;\",\n \".sv_qcbx .checkbox label\": \"justify-content: left; display: inline-block;\",\n \".sv_qstn .radio label\": \"justify-content: left; display: inline-block;\",\n \".sv_qstn .sv_q_imgsel > label img\": \"pointer-events: none;\",\n \".sv_qstn .sv_q_imgsel.sv_q_imagepicker_inline\": \"display: inline-block;\",\n \".sv_qstn label.sv_q_m_label\": \"position: absolute; margin: 0; display: block; width: 100%;\",\n \".sv_qstn td\": \"position: relative;\",\n \".sv_q_mt_item_value\": \"float: left;\",\n \"[dir=\\\"rtl\\\"] .sv_q_mt_item_value\": \"float: right;\",\n \".sv_qstn.sv_qstn_left\": \"margin-top: 0.75em;\",\n \".sv_qstn .title-left\": \"float: left; margin-right: 1em;\",\n \"[dir=\\\"rtl\\\"] .sv_qstn .title-left\": \"float: right; margin-left: 1em;\",\n \".sv_qstn .content-left\": \"overflow: hidden\",\n \".sv_q_radiogroup_inline .sv_q_radiogroup_other\": \"display: inline-block;\",\n \".sv_q_checkbox_inline .sv_q_checkbox_other\": \"display: inline-block;\",\n \".sv_q_checkbox_inline, .sv_q_radiogroup_inline, .sv_q_imagepicker_inline\": \"line-height: 2.5em;\",\n \".form-inline .sv_q_checkbox_inline:not(:last-child)\": \"margin-right: 1em;\",\n \".form-inline .sv_q_radiogroup_inline:not(:last-child)\": \"margin-right: 1em;\",\n \".sv_imgsel .sv_q_imagepicker_inline:not(:last-child)\": \"margin-right: 1em;\",\n \".sv_qstn fieldset\": \"border: none; margin: 0; padding: 0;\",\n \".sv_qstn .sv_q_file_placeholder\": \"display:none\",\n \".sv_p_title\": \"padding-left: 1em; padding-bottom: 0.3em;\",\n \".sv_p_title_expandable\": \"cursor: pointer;\",\n \".sv_p_title .sv_panel_icon\": \"float: right; margin-right: 1em;\",\n \".sv_p_title .sv_panel_icon::before\": \"content: ''; background-repeat: no-repeat; background-position: center; padding: 0.5em; display: inline-block; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMi4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxMCAxMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAgMTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiM2RDcwNzI7fQ0KPC9zdHlsZT4NCjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMiwyIDAsNCA1LDkgMTAsNCA4LDIgNSw1ICIvPg0KPC9zdmc+DQo=);\",\n \".sv_p_title .sv_panel_icon.sv_expanded::before\": \"transform: rotate(180deg);\",\n \".sv_q_file > input[type=file], .sv_q_file > button\": \"display: inline-block;\",\n \".sv_q_file_preview\": \"display: inline-block; vertical-align: top; border: 1px solid lightgray; padding: 5px; margin-top: 10px;\",\n \".sv_q_file_preview > a\": \"display: block; overflow: hidden; vertical-align: top; white-space: nowrap; text-overflow: ellipsis;\",\n \".sv_q_file_remove_button\": \"line-height: normal;\",\n \".sv_q_file_remove\": \"display: block; cursor: pointer;\",\n \".sv_q_m_cell_text\": \"cursor: pointer;\",\n \".sv_q_dd_other\": \"margin-top: 1em;\",\n \".sv_q_dd_other input\": \"width: 100%;\",\n \".sv_qstn .sv-q-col-1, .sv-question .sv-q-col-1\": \"width: 100%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-col-2, .sv-question .sv-q-col-2\": \"width: 50%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-col-3, .sv-question .sv-q-col-3\": \"width: 33.33333%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-col-4, .sv-question .sv-q-col-4\": \"width: 25%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-col-5, .sv-question .sv-q-col-5\": \"width: 20%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-1, .sv-question .sv-q-column-1\": \"width: 100%; max-width: 100%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-2, .sv-question .sv-q-column-2\": \"max-width: 50%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-3, .sv-question .sv-q-column-3\": \"max-width: 33.33333%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-4, .sv-question .sv-q-column-4\": \"max-width: 25%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-5, .sv-question .sv-q-column-5\": \"max-width: 20%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv_q_file_input\": \"color: transparent;\",\n \".sv_qstn .sv_q_imgsel label > div\": \"overflow: hidden; white-space: nowrap; text-overflow: ellipsis; padding: 4px; border: 1px solid lightgray; border-radius: 4px;\",\n \".sv_qstn .sv_q_imgsel label > div > img, .sv_qstn .sv_q_imgsel label > div > embed\": \"display: block;\",\n \".sv_qstn table tr td .sv_q_m_cell_label\": \"position: absolute; left: 0; right: 0; top: 0; bottom: 0;\",\n \"f-panel\": \"padding: 0.5em 1em; display: inline-block; line-height: 2em;\",\n \".sv_progress_bar > span\": \"white-space: nowrap;\",\n \".sv_qstn .sv_q_select_column\": \"display: inline-block; vertical-align: top; min-width: 10%;\",\n \".sv_qstn .sv_q_select_column > *:not(.sv_technical)\": \"display: block;\",\n \".sv_main .sv_container .sv_body .sv_p_root .sv_qstn .sv_q_select_column textarea\": \"margin-left: 0; padding-left: 0; line-height: initial;\",\n \".sv_main .sv-hidden\": \"display: none !important;\",\n \".sv_main .sv-visuallyhidden\": \"position: absolute; height: 1px; width: 1px; overflow: hidden; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);\",\n // paneldynamic progress\n \".sv_main .sv-progress\": \"height: 0.19em; background-color: $header-background-color;\",\n \".sv_main .sv-progress__bar\": \"background-color: $main-color; height: 100%; position: relative;\",\n // EO paneldynamic progress\n // paneldynamic\n \".sv_main .sv-paneldynamic__progress-container\": \"position: relative; margin-right: 250px; margin-top: 20px;\",\n \".sv_main .sv-paneldynamic__add-btn\": \"float: right; margin-top: -18px;\",\n \".sv_main .sv-paneldynamic__add-btn--list-mode\": \" float: none; margin-top: 1em;\",\n \".sv_main .sv-paneldynamic__remove-btn \": \"margin-top: 1.25em;\",\n \".sv_main .sv-paneldynamic__prev-btn, .sv_main .sv-paneldynamic__next-btn\": \"box-sizing: border-box; display: inline-block; cursor: pointer; width: 0.7em; top: -0.28em; position: absolute;\",\n \".sv_main .sv-paneldynamic__prev-btn\": \"left: -1.3em; transform: rotate(90deg);\",\n \".sv_main .sv-paneldynamic__next-btn \": \"right: -1.3em; transform: rotate(270deg);\",\n \".sv_main .sv-paneldynamic__prev-btn.sv-paneldynamic__prev-btn--disabled, .sv_main .sv-paneldynamic__next-btn.sv-paneldynamic__next-btn--disabled\": \"cursor: auto;\",\n \".sv_main .sv-paneldynamic__progress-text\": \"font-weight: bold; font-size: 0.87em; margin-top: 0.69em; margin-left: 4em\",\n // EO paneldynamic\n //boolean\n \".sv_main .sv-boolean__switch\": \"display: inline-block; box-sizing: border-box; width: 63px; height: 24px; margin-right: 17px; margin-left: 21px; padding: 2px 3px; vertical-align: middle; border-radius: 12px; cursor: pointer;\",\n \".sv_main .sv-boolean__slider\": \"display: inline-block; width: 20px; height: 20px; transition-duration: .4s; transition-property: margin-left; border: none; border-radius: 100%;\",\n \".sv_main sv-boolean__label\": \"vertical-align: middle\",\n \".sv_main .sv-boolean--indeterminate .sv-boolean__slider\": \"margin-left: calc(50% - 10px);\",\n \".sv_main .sv-boolean--checked .sv-boolean__slider\": \"margin-left: calc(100% - 20px);\"\n // EO boolean\n };\n StylesManager.Media = {\n \".sv_qstn fieldset .sv-q-col-1\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\"\n },\n \".sv_qstn fieldset .sv-q-col-2\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\"\n },\n \".sv_qstn fieldset .sv-q-col-3\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\"\n },\n \".sv_qstn fieldset .sv-q-col-4\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\"\n },\n \".sv_qstn fieldset .sv-q-col-5\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn\": {\n style: \"display: block; width: 100% !important;\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .title-left\": {\n style: \"float: none;\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .sv_q_radiogroup_inline, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .sv_q_checkbox_inline, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .sv_q_imagepicker_inline\": {\n style: \"display: block;\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table\": {\n style: \"display: block;\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table thead\": {\n style: \"display: none;\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table tbody, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table tr, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table td\": {\n style: \"display: block;\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table:not(.sv_q_matrix) td:before\": {\n style: \"content: attr(headers);\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.sv_q_matrix td:after\": {\n style: \"content: attr(headers); padding-left: 1em\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .radio label, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .checkbox label\": {\n style: \"line-height: 12px; vertical-align: top;\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_qstn label.sv_q_m_label\": {\n style: \"display: inline;\",\n media: \"@media (max-width: 600px)\"\n },\n \".sv_main .sv_custom_header\": {\n style: \"display: none;\",\n media: \"@media (max-width: 1300px)\"\n },\n \".sv_main .sv_container .sv_header h3\": {\n style: \"font-size: 1.5em;\",\n media: \"@media (max-width: 1300px)\"\n },\n \".sv_main .sv_container .sv_header h3 span\": {\n style: \"font-size: 0.75em;\",\n media: \"@media (max-width: 700px)\"\n },\n \".sv_main.sv_bootstrap_css .sv-progress__text\": {\n style: \"margin-left: 8em;\",\n media: \"@media (min-width: 768px)\"\n }\n };\n StylesManager.ThemeColors = {\n default: {\n \"$header-background-color\": \"#e7e7e7\",\n \"$body-container-background-color\": \"#f4f4f4\",\n \"$main-color\": \"#1ab394\",\n \"$main-hover-color\": \"#0aa384\",\n \"$body-background-color\": \"white\",\n \"$inputs-background-color\": \"white\",\n \"$text-color\": \"#6d7072\",\n \"$header-color\": \"#6d7072\",\n \"$border-color\": \"#e7e7e7\",\n \"$error-color\": \"#ed5565\",\n \"$error-background-color\": \"#fd6575\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n orange: {\n \"$header-background-color\": \"#4a4a4a\",\n \"$body-container-background-color\": \"#f8f8f8\",\n \"$main-color\": \"#f78119\",\n \"$main-hover-color\": \"#e77109\",\n \"$body-background-color\": \"white\",\n \"$inputs-background-color\": \"white\",\n \"$text-color\": \"#4a4a4a\",\n \"$header-color\": \"#f78119\",\n \"$border-color\": \"#e7e7e7\",\n \"$error-color\": \"#ed5565\",\n \"$error-background-color\": \"#fd6575\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n darkblue: {\n \"$header-background-color\": \"#d9d8dd\",\n \"$body-container-background-color\": \"#f6f7f2\",\n \"$main-color\": \"#3c4f6d\",\n \"$main-hover-color\": \"#2c3f5d\",\n \"$body-background-color\": \"white\",\n \"$inputs-background-color\": \"white\",\n \"$text-color\": \"#4a4a4a\",\n \"$header-color\": \"#6d7072\",\n \"$border-color\": \"#e7e7e7\",\n \"$error-color\": \"#ed5565\",\n \"$error-background-color\": \"#fd6575\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n darkrose: {\n \"$header-background-color\": \"#ddd2ce\",\n \"$body-container-background-color\": \"#f7efed\",\n \"$main-color\": \"#68656e\",\n \"$main-hover-color\": \"#58555e\",\n \"$body-background-color\": \"white\",\n \"$inputs-background-color\": \"white\",\n \"$text-color\": \"#4a4a4a\",\n \"$header-color\": \"#6d7072\",\n \"$border-color\": \"#e7e7e7\",\n \"$error-color\": \"#ed5565\",\n \"$error-background-color\": \"#fd6575\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n stone: {\n \"$header-background-color\": \"#cdccd2\",\n \"$body-container-background-color\": \"#efedf4\",\n \"$main-color\": \"#0f0f33\",\n \"$main-hover-color\": \"#191955\",\n \"$body-background-color\": \"white\",\n \"$inputs-background-color\": \"white\",\n \"$text-color\": \"#0f0f33\",\n \"$header-color\": \"#0f0f33\",\n \"$border-color\": \"#e7e7e7\",\n \"$error-color\": \"#ed5565\",\n \"$error-background-color\": \"#fd6575\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n winter: {\n \"$header-background-color\": \"#82b8da\",\n \"$body-container-background-color\": \"#dae1e7\",\n \"$main-color\": \"#3c3b40\",\n \"$main-hover-color\": \"#1e1d20\",\n \"$body-background-color\": \"white\",\n \"$inputs-background-color\": \"white\",\n \"$text-color\": \"#000\",\n \"$header-color\": \"#000\",\n \"$border-color\": \"#e7e7e7\",\n \"$error-color\": \"#ed5565\",\n \"$error-background-color\": \"#fd6575\",\n \"$disable-color\": \"#dbdbdb\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n winterstone: {\n \"$header-background-color\": \"#323232\",\n \"$body-container-background-color\": \"#f8f8f8\",\n \"$main-color\": \"#5ac8fa\",\n \"$main-hover-color\": \"#06a1e7\",\n \"$body-background-color\": \"white\",\n \"$inputs-background-color\": \"white\",\n \"$text-color\": \"#000\",\n \"$header-color\": \"#fff\",\n \"$border-color\": \"#e7e7e7\",\n \"$error-color\": \"#ed5565\",\n \"$error-background-color\": \"#fd6575\",\n \"$disable-color\": \"#dbdbdb\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n modern: {\n \"$main-color\": \"#1ab394\",\n \"$add-button-color\": \"#1948b3\",\n \"$remove-button-color\": \"#ff1800\",\n \"$disable-color\": \"#dbdbdb\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n bootstrap: {\n \"$main-color\": \"#18a689\",\n \"$text-color\": \"#404040;\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$header-background-color\": \"#e7e7e7\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n },\n bootstrapmaterial: {\n \"$main-color\": \"#18a689\",\n \"$text-color\": \"#404040;\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$header-background-color\": \"#e7e7e7\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\"\n }\n };\n StylesManager.ThemeCss = {\n \".sv_default_css\": \"background-color: $body-container-background-color;\",\n \".sv_default_css hr\": \"border-color: $border-color;\",\n \".sv_default_css input[type='button'], .sv_default_css button\": \"color: $body-background-color; background-color: $main-color;\",\n \".sv_default_css input[type='button']:hover, .sv_default_css button:hover\": \"background-color: $main-hover-color;\",\n \".sv_default_css .sv_header\": \"color: $header-color;\",\n \".sv_default_css .sv_custom_header\": \"background-color: $header-background-color;\",\n \".sv_default_css .sv_container\": \"color: $text-color;\",\n \".sv_default_css .sv_body\": \"background-color: $body-background-color; border-color: $main-color;\",\n \".sv_default_css .sv_progress\": \"background-color: $border-color;\",\n \".sv_default_css .sv_progress_bar\": \"background-color: $main-color;\",\n \".sv_default_css .sv_p_root > .sv_row\": \"border-color: $border-color;\",\n \".sv_default_css .sv_p_root > .sv_row:nth-child(odd)\": \"background-color: $body-background-color;\",\n \".sv_default_css .sv_p_root > .sv_row:nth-child(even)\": \"background-color: $body-container-background-color;\",\n \".sv_default_css .sv_q_other input\": \"color: $text-color; border-color: $border-color; background-color: $inputs-background-color;\",\n \".sv_default_css .sv_q_text_root\": \"color: $text-color; border-color: $border-color; background-color: $inputs-background-color;\",\n \".sv_default_css .sv_q_dropdown_control\": \"color: $text-color; border-color: $border-color; background-color: $inputs-background-color;\",\n \".sv_default_css input[type='text']\": \"color: $text-color; border-color: $border-color; background-color: $inputs-background-color;\",\n \".sv_default_css select\": \"color: $text-color; border-color: $border-color; background-color: $inputs-background-color;\",\n \".sv_default_css textarea\": \"color: $text-color; border-color: $border-color; background-color: $inputs-background-color;\",\n \".sv_default_css input:not([type='button']):not([type='reset']):not([type='submit']):not([type='image']):not([type='checkbox']):not([type='radio'])\": \"border: 1px solid $border-color; background-color: $inputs-background-color;color: $text-color;\",\n \".sv_default_css input:not([type='button']):not([type='reset']):not([type='submit']):not([type='image']):not([type='checkbox']):not([type='radio']):focus\": \"border: 1px solid $main-color;\",\n \".sv_default_css .sv_container .sv_body .sv_p_root .sv_q .sv_select_wrapper .sv_q_dropdown_control \": \"background-color: $inputs-background-color;\",\n \".sv_default_css .sv_q_other input:focus\": \"border-color: $main-color;\",\n \".sv_default_css .sv_q_text_root:focus\": \"border-color: $main-color;\",\n \".sv_default_css .sv_q_dropdown_control:focus\": \"border-color: $main-color;\",\n \".sv_default_css input[type='text']:focus\": \"border-color: $main-color;\",\n '.sv_default_css .sv_container .sv_body .sv_p_root .sv_q input[type=\"radio\"]:focus, .sv_default_css .sv_container .sv_body .sv_p_root .sv_q input[type=\"checkbox\"]:focus': \"outline: 1px dotted $main-color;\",\n \".sv_default_css select:focus\": \"border-color: $main-color;\",\n \".sv_default_css textarea:focus\": \"border-color: $main-color;\",\n \".sv_default_css .sv_select_wrapper\": \"background-color: $body-background-color;\",\n \".sv_default_css .sv_select_wrapper::before\": \"background-color: $main-color;\",\n \".sv_default_css .sv_q_rating_item.active .sv_q_rating_item_text\": \"background-color: $main-hover-color; border-color: $main-hover-color; color: $body-background-color;\",\n \".sv_default_css .sv_q_rating_item .sv_q_rating_item_text\": \"border-color: $border-color;\",\n \".sv_default_css .sv_q_rating_item .sv_q_rating_item_text:hover\": \"border-color: $main-hover-color;\",\n \".sv_default_css table.sv_q_matrix tr\": \"border-color: $border-color;\",\n \".sv_default_css table.sv_q_matrix_dropdown tr\": \"border-color: $border-color;\",\n \".sv_default_css table.sv_q_matrix_dynamic tr\": \"border-color: $border-color;\",\n \".sv_default_css .sv_q_m_cell_selected\": \"color: $body-background-color; background-color: $main-hover-color;\",\n \".sv_main .sv_q_file_remove:hover\": \"color: $main-color;\",\n \".sv_main .sv_q_imgsel.checked label>div\": \"background-color: $main-color\",\n \".sv_default_css .sv_p_description\": \"padding-left: 1.29em;\",\n //progress bar\n \".sv_main .sv-progress\": \"background-color: $header-background-color;\",\n \".sv_main .sv-progress__bar\": \"background-color: $main-color;\",\n //paneldynamic\n \".sv_main .sv-paneldynamic__prev-btn.sv-paneldynamic__prev-btn--disabled, .sv_main .sv-paneldynamic__next-btn.sv-paneldynamic__next-btn--disabled\": \"fill: $disable-color;\",\n \".sv_main .sv-paneldynamic__progress-text\": \"color: $progress-text-color;\",\n \".sv_main .sv-paneldynamic__prev-btn, .sv_main .sv-paneldynamic__next-btn\": \"fill: $text-color\",\n //boolean\n \".sv_main .sv-boolean__switch\": \"background-color: $main-color;\",\n \".sv_main .sv-boolean__slider\": \"background-color: $slider-color;\",\n \".sv_main .sv-boolean__label--disabled\": \"color: $disabled-label-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__switch\": \"background-color: $disabled-switch-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__slider\": \"background-color: $disabled-slider-color;\"\n //eo boolean\n };\n StylesManager.modernThemeCss = {\n \".sv-paneldynamic__add-btn\": \"background-color: $add-button-color;\",\n \".sv-paneldynamic__remove-btn\": \"background-color: $remove-button-color;\",\n \".sv-boolean__switch\": \"background-color: $main-color;\",\n \".sv-boolean__slider\": \"background-color: $slider-color;\",\n \".sv-boolean__label--disabled\": \"color: $disabled-label-color;\",\n \".sv-boolean--disabled .sv-boolean__switch\": \"background-color: $disabled-switch-color;\",\n \".sv-boolean--disabled .sv-boolean__slider\": \"background-color: $disabled-slider-color;\"\n };\n StylesManager.bootstrapThemeCss = {\n \".sv_main .sv_q_imgsel.checked label>div\": \"background-color: $main-color\",\n \".sv_main .sv_p_description\": \"padding-left: 1.66em;\",\n \".sv_main .sv_qstn_error_bottom\": \"margin-top: 20px; margin-bottom: 0;\",\n \".sv_main .progress\": \"width: 60%;\",\n \".sv_main .progress-bar\": \"width: auto; margin-left: 2px; margin-right: 2px;\",\n \".sv_main .table>tbody>tr>td\": \"min-width: 90px;\",\n \".sv_main f-panel .sv_qstn\": \"padding: 0; vertical-align: middle;\",\n //progress bar\n \".sv_main .sv-progress\": \"background-color: $header-background-color;\",\n \".sv_main .sv-progress__bar\": \"background-color: $main-color;\",\n //paneldynamic\n \".sv_main .sv-paneldynamic__prev-btn.sv-paneldynamic__prev-btn--disabled, .sv_main .sv-paneldynamic__next-btn.sv-paneldynamic__next-btn--disabled\": \"fill: $disable-color;\",\n \".sv_main .sv-paneldynamic__progress-text\": \"color: $progress-text-color;\",\n \".sv_main .sv-paneldynamic__prev-btn, .sv_main .sv-paneldynamic__next-btn\": \"fill: $text-color\",\n //boolean\n \".sv_main .sv-boolean__switch\": \"background-color: $main-color;\",\n \".sv_main .sv-boolean__slider\": \"background-color: $slider-color;\",\n \".sv_main .sv-boolean__label--disabled\": \"color: $disabled-label-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__switch\": \"background-color: $disabled-switch-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__slider\": \"background-color: $disabled-slider-color;\"\n //eo boolean\n };\n StylesManager.bootstrapmaterialThemeCss = {\n \".sv_main.sv_bootstrapmaterial_css .form-group.is-focused .form-control\": \"background-image: linear-gradient($main-color, $main-color), linear-gradient(#D2D2D2, #D2D2D2);\",\n \".sv_main.sv_bootstrapmaterial_css .form-group.is-focused label\": \"color:$main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_qstn label.sv_q_m_label\": \"height: 100%;\",\n \".sv_main.sv_bootstrapmaterial_css .checkbox input[type=checkbox]:checked + .checkbox-material .check\": \"border-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css label.checkbox-inline input[type=checkbox]:checked + .checkbox-material .check\": \"border-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .checkbox input[type=checkbox]:checked + .checkbox-material .check:before\": \"color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css label.checkbox-inline input[type=checkbox]:checked + .checkbox-material .check:before\": \"color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .radio input[type=radio]:checked ~ .circle\": \"border-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css label.radio-inline input[type=radio]:checked ~ .circle\": \"border-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .radio input[type=radio]:checked ~ .check\": \"background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css label.radio-inline input[type=radio]:checked ~ .check\": \"background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .btn-default.active\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css .btn-default:active\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css .btn-secondary.active\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css .btn-secondary:active\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css .open>.dropdown-toggle.btn-default\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css input[type='button'].btn-primary, .sv_main.sv_bootstrapmaterial_css button.btn-primary\": \"color: $body-background-color; background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css input[type='button'].btn-primary:hover, .sv_main.sv_bootstrapmaterial_css button.btn-primary:hover\": \"background-color: $main-hover-color;\",\n \".sv_main .sv_q_imgsel.checked label>div\": \"background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_q_file_remove:hover\": \"color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .form-group input[type=file]\": \"position: relative; opacity: 1;\",\n \".sv_main.sv_bootstrapmaterial_css .progress\": \"width: 60%;\",\n \".sv_main.sv_bootstrapmaterial_css .progress-bar\": \"width: auto; margin-left: 2px; margin-right: 2px;\",\n //progress bar\n \".sv_main .sv-progress\": \"background-color: $header-background-color;\",\n \".sv_main .sv-progress__bar\": \"background-color: $main-color;\",\n //paneldynamic\n \".sv_main .sv-paneldynamic__prev-btn.sv-paneldynamic__prev-btn--disabled, .sv_main .sv-paneldynamic__next-btn.sv-paneldynamic__next-btn--disabled\": \"fill: $disable-color;\",\n \".sv_main .sv-paneldynamic__progress-text\": \"color: $progress-text-color;\",\n \".sv_main .sv-paneldynamic__prev-btn, .sv_main .sv-paneldynamic__next-btn\": \"fill: $text-color\",\n //boolean\n \".sv_main .sv-boolean__switch\": \"background-color: $main-color;\",\n \".sv_main .sv-boolean__slider\": \"background-color: $slider-color;\",\n \".sv_main .sv-boolean__label--disabled\": \"color: $disabled-label-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__switch\": \"background-color: $disabled-switch-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__slider\": \"background-color: $disabled-slider-color;\"\n //eo boolean\n };\n StylesManager.Enabled = true;\n return StylesManager;\n}());\n\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__page__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__textPreProcessor__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__dxSurveyService__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__localizablestring__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__stylesmanager__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__surveytimer__ = __webpack_require__(78);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SurveyModel; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Survey object contains information about the survey. Pages, Questions, flow logic and etc.\n */\nvar SurveyModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyModel, _super);\n function SurveyModel(jsonObj) {\n if (jsonObj === void 0) { jsonObj = null; }\n var _this = _super.call(this) || this;\n _this.valuesHash = {};\n _this.variablesHash = {};\n _this.localeValue = \"\";\n _this.completedStateValue = \"\";\n _this.completedStateTextValue = \"\";\n _this.isTimerStarted = false;\n /**\n * The event is fired before the survey is completed and onComplete event is fired. You may prevent the survey from completing by setting options.allowComplete to false\n *
sender the survey object that fires the event\n *
options.allowComplete set it false to prevent the survey from completing. The default value is true.\n * @see onComplete\n */\n _this.onCompleting = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired after a user click on 'Complete' button and finished the survey. You may use it to send the data to your web server.\n *
sender the survey object that fires the event\n *
options.showDataSaving(text) call this method to show that the survey is saving the data on your server. The text is an optional parameter to show your message instead of default.\n *
options.showDataSavingError(text) call this method to show that there is an error on saving the data on your server. If you want to show a custom error, use an optional text parameter.\n *
options.showDataSavingSuccess(text) call this method to show that the data were successful saved on the server.\n *
options.showDataSavingClear call this method to hide the text about the saving progress.\n * @see data\n * @see clearInvisibleValues\n * @see completeLastPage\n * @see surveyPostId\n */\n _this.onComplete = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired after the survey changed it's state from \"starting\" to \"running\". The \"starting\" state means that survey shows the started page.\n * The firstPageIsStarted property should be set to the true, if you want to have the started page in your survey. The end-user should click on the \"Start\" button to start the survey.\n * @see firstPageIsStarted\n */\n _this.onStarted = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on clicking 'Next' page if sendResultOnPageNext is set to true. You may use it to save the intermediate results, for example, if your survey is large enough.\n *
sender the survey object that fires the event\n * @see sendResultOnPageNext\n */\n _this.onPartialSend = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired before another page becomes the current. Typically it happens when a user click on 'Next' or 'Prev' buttons.\n *
sender the survey object that fires the event\n *
option.oldCurrentPage the previous current/active page\n *
option.newCurrentPage a new current/active page\n *
option.allowChanging set it to false to disable the current page changing. It is true by default.\n * @see currentPage\n * @see currentPageNo\n * @see nextPage\n * @see prevPage\n * @see completeLastPage\n * @see onCurrentPageChanged\n **/\n _this.onCurrentPageChanging = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired when another page becomes the current. Typically it happens when a user click on 'Next' or 'Prev' buttons.\n *
sender the survey object that fires the event\n *
option.oldCurrentPage the previous current/active page\n *
option.newCurrentPage a new current/active page\n * @see currentPage\n * @see currentPageNo\n * @see nextPage\n * @see prevPage\n * @see completeLastPage\n * @see onCurrentPageChanging\n */\n _this.onCurrentPageChanged = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired before the question value is changed. It can be done via UI by a user or programmatically on calling setValue method.\n *
sender the survey object that fires the event\n *
options.name the value name that has being changed\n *
options.question a question which question.name equals to the value name. If there are several questions with the same name, the first question is taken. If there is no such questions, the options.question is null.\n *
options.oldValue old, previous value.\n *
options.value a new value. You may change it\n * @see setValue\n * @see onValueChanged\n */\n _this.onValueChanging = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired when the question value is changed. It can be done via UI by a user or programmatically on calling setValue method.\n * Please use onDynamicPanelItemValueChanged and onMatrixCellValueChanged events to handle changes a question in the Panel Dynamic and a cell question in matrices.\n *
sender the survey object that fires the event\n *
options.name the value name that has been changed\n *
options.question a question which question.name equals to the value name. If there are several questions with the same name, the first question is taken. If there is no such questions, the options.question is null.\n *
options.value a new value\n * @see setValue\n * @see onValueChanging\n * @see onDynamicPanelItemValueChanged\n * @see onMatrixCellValueChanged\n */\n _this.onValueChanged = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on changing a question visibility.\n *
sender the survey object that fires the event\n *
options.question a question which visibility has been changed\n *
options.name a question name\n *
options.visible a question visible boolean value\n * @see Question.visibile\n * @see Question.visibileIf\n */\n _this.onVisibleChanged = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on changing a page visibility.\n *
sender the survey object that fires the event\n *
options.page a page which visibility has been changed\n *
options.visible a page visible boolean value\n * @see PageModel.visibile\n * @see PageModel.visibileIf\n */\n _this.onPageVisibleChanged = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on changing a panel visibility.\n *
sender the survey object that fires the event\n *
options.panel a panel which visibility has been changed\n *
options.visible a panel visible boolean value\n * @see PanelModel.visibile\n * @see PanelModel.visibileIf\n */\n _this.onPanelVisibleChanged = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on adding a new question into survey.\n * 'question': question, 'name': question.name, 'index': index, 'parentPanel': parentPanel, 'rootPanel': rootPanel\n *
sender the survey object that fires the event\n *
options.question a newly added question object.\n *
options.name a question name\n *
options.index a index of the question in the container (page or panel)\n *
options.parentPanel a container where question is located. It can be page or panel.\n *
options.rootPanel typically it is a page.\n * @see Question\n */\n _this.onQuestionAdded = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on removing a question from survey\n *
sender the survey object that fires the event\n *
options.question a removed question object.\n *
options.name a question name\n * @see Question\n */\n _this.onQuestionRemoved = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on adding a panel into survey\n *
sender the survey object that fires the event\n *
options.panel a newly added panel object.\n *
options.name a panel name\n *
options.index a index of the panel in the container (page or panel)\n *
options.parentPanel a container where question is located. It can be page or panel.\n *
options.rootPanel typically it is a page.\n * @see PanelModel\n */\n _this.onPanelAdded = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on removing a panel from survey\n *
sender the survey object that fires the event\n *
options.panel a removed panel object.\n *
options.name a panel name\n * @see PanelModel\n */\n _this.onPanelRemoved = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on adding a page into survey\n *
sender the survey object that fires the event\n *
options.page a newly added panel object.\n * @see PanelModel\n */\n _this.onPageAdded = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on validating value in a question. Set your error to options.error and survey will show the error for the question and block completing the survey or going to the next page.\n *
sender the survey object that fires the event\n *
options.question a question\n *
options.name a question name\n *
options.value the current question value\n *
options.error an error string. It is empty by default.\n * @see onServerValidateQuestions\n * @see onSettingQuestionErrors\n */\n _this.onValidateQuestion = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired before errors are setting into question. You may add/remove/modify errors for a question.\n *
sender the survey object that fires the event\n *
options.question a question\n *
options.errors the list of errors. The list can be empty if by default there is no errors\n * @see onValidateQuestion\n */\n _this.onSettingQuestionErrors = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use this event to validate data on your server.\n *
sender the survey object that fires the event\n *
options.data the values of all non-empty questions on the current page. You can get a question value as options.data[\"myQuestionName\"].\n *
options.errors set your errors to this object as: options.errors[\"myQuestionName\"] = \"Error text\";. It will be shown as a question error.\n *
options.complete() call this function to tell survey that your server callback has been processed.\n * @see onValidateQuestion\n * @see onValidatePanel\n */\n _this.onServerValidateQuestions = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use this event to modify the html before rendering, for example html on 'Thank you' page. Options has one parameter: options.html.\n *
sender the survey object that fires the event\n *
options.html an html that you may change before text processing and then rendering.\n * @see completedHtml\n * @see loadingHtml\n * @see QuestionHtmlModel.html\n */\n /**\n * The event is fired on validating a panel. Set your error to options.error and survey will show the error for the panel and block completing the survey or going to the next page.\n *
sender the survey object that fires the event\n *
options.name a panel name\n *
options.error an error string. It is empty by default.\n * @see onValidateQuestion\n */\n _this.onValidatePanel = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use the event to change the default error text.\n *
sender the survey object that fires the event\n *
options.text an error text\n *
options.error an instance of SurveyError object\n *
options.name the error name. The following error name are available:\n * required, requireoneanswer, requirenumeric, exceedsize, webrequest, webrequestempty, otherempty,\n * uploadingfile, requiredinallrowserror, minrowcounterror, keyduplicationerror, custom\n */\n _this.onErrorCustomText = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use the this event to be notified when the survey finished validate questions on the current page. It commonly happens when a user try to go to the next page or complete the survey\n * options.questions - the list of questions that have errors\n * options.errors - the list of errors\n */\n _this.onValidatedErrorsOnCurrentPage = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use this event to modify the html before rendering, for example completeHtml or loadingHtml.\n * options.html - change this html property before the library rendered it\n * @see completedHtml\n * @see loadingHtml\n */\n _this.onProcessHtml = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use this event to change the question title in the code.\n *
sender the survey object that fires the event\n *
options.title a calcualted question title, based on question title, name, isRequired, visibleIndex (no)\n *
options.question a question object.\n */\n _this.onGetQuestionTitle = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use this event to process the markdown text.\n *
sender the survey object that fires the event\n *
options.element SurveyJS element where the string is going to be rendered. It is a question, panel, page or survey\n *
options.text a text that is going to be rendered\n *
options.html a html. It is null by default. Set it and survey will use it instead of options.text\n */\n _this.onTextMarkdown = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event fires when it get response from the [dxsurvey.com](http://www.dxsurvey.com) service on saving survey results. Use it to find out if the results have been saved successful.\n *
sender the survey object that fires the event\n *
options.success it is true if the results were sent to the service successful\n *
options.response a response from the service\n */\n _this.onSendResult = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use it to get results after calling the getResult method. It returns a simple analytic from [dxsurvey.com](http://www.dxsurvey.com) service.\n *
sender the survey object that fires the event\n *
options.success it is true if the results were got from the service successful\n *
options.data the object {AnswersCount, QuestionResult : {} }. AnswersCount is the number of posted survey results. QuestionResult is an object with all possible unique answers to the question and number of these answers.\n *
options.dataList an array of objects {name, value}, where 'name' is an unique value/answer to the question and value is a number/count of such answers.\n *
options.response the server response\n * @see getResult\n */\n _this.onGetResult = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on uploading the file in QuestionFile when storeDataAsText is set to false. You may use it to change the file name or tells the library do not accept the file. There are three properties in options: options.name, options.file and options.accept.\n *
sender the survey object that fires the event\n * name: name, file: file, accept: accept\n *
name the file name\n *
file the Javascript File object\n *
accept a boolean value, true by default. Set it to false to deny this file to upload\n * @see uploadFiles\n * @see QuestionFileModel.storeDataAsText\n */\n _this.onUploadFiles = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on downloading the file in QuestionFile. You may use it to pass the file for the preview. There are four properties in options: options.name, options.content, optins.fileValue and options.callback.\n *
sender the survey object that fires the event\n * name: name, content: content, fileValue: fileValue\n *
name the question name\n *
content the file content\n *
fileValue single file question value\n *
callback a call back function to get the status on downloading the file and the downloaded file content\n * @see downloadFile\n */\n _this.onDownloadFile = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on clearing the value in QuestionFile. You may use it to remove files stored on your server. There are three properties in options: options.name, options.value and options.callback.\n *
sender the survey object that fires the event\n * name: name, value: value\n *
name the question name\n *
value the question value\n *
fileName of the removed file, pass null to clear all files\n *
callback a call back function to get the status on clearing the files operation\n * @see clearFiles\n */\n _this.onClearFiles = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired after choices for radiogroup, checkbox and dropdown has been loaded from the RESTful service and before they are assign to the question.\n * You may change the choices, before it was assign or disable/enabled make visible/invisible question, based on loaded results\n *
question - the question where loaded choices are going to be assigned\n *
choices - the loaded choices. You may change them to assign the correct one\n *
serverResult - a result that comes from the server as it is.\n */\n _this.onLoadChoicesFromServer = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on processing the text when it finds a text in brackets: {somevalue}. By default it uses the value of survey question values and variables.\n * For example, you may use the text processing in loading choices from the web. If your choicesByUrl.url equals to \"UrlToServiceToGetAllCities/{country}/{state}\",\n * you may set on this event options.value to \"all\" or empty string when the \"state\" value/question is non selected by a user.\n *
name - the name of the processing value, for example, \"state\" in our example\n *
value - the value of the processing text\n *
isExists - a boolean value. Set it to true if you want to use the value and set it to false if you don't.\n */\n _this.onProcessTextValue = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired before rendering a question. Use it to override the default question css classes.\n * There are two parameters in options: options.question and options.cssClasses\n *
sender the survey object that fires the event\n *
options.question a question for which you may change the css classes\n *
options.cssClasses an object with css classes. For example {root: \"table\", button: \"button\"}. You may change them to your own css classes.\n */\n _this.onUpdateQuestionCssClasses = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired before rendering a panel or page. Use it to override the default panel/page css classes.\n * There are two parameters in options: options.panel and options.cssClasses\n *
sender the survey object that fires the event\n *
options.panel a panel for which you may change the css classes\n *
options.cssClasses an object with css classes. For example {title: \"sv_p_title\", description: \"small\"}. You may change them to your own css classes.\n */\n _this.onUpdatePanelCssClasses = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired right after survey is rendered in DOM. options.htmlElement is the root element.\n *
sender the survey object that fires the event\n *
options.htmlElement a root html element binded with the survey object\n */\n _this.onAfterRenderSurvey = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired right after a page is rendred in DOM. Use it to modify html elements. There are two parameters in options: options.currentPage, options.htmlElement\n *
sender the survey object that fires the event\n *
options.page a page object for which the event is fired. Typically the current/active page.\n *
options.htmlElement an html element binded with the page object\n */\n _this.onAfterRenderPage = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired right after a question is rendred in DOM. Use it to modify html elements. There are two parameters in options: options.question, options.htmlElement\n *
sender the survey object that fires the event\n *
options.question a question object for which the event is fired\n *
options.htmlElement an html element binded with the question object\n */\n _this.onAfterRenderQuestion = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired right after a panel is rendred in DOM. Use it to modify html elements. There are two parameters in options: options.panel, options.htmlElement\n *
sender the survey object that fires the event\n *
options.panel a panel object for which the event is fired\n *
options.htmlElement an html element binded with the panel object\n */\n _this.onAfterRenderPanel = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on adding a new row in Matrix Dynamic question.\n *
sender the survey object that fires the event\n *
options.question a matrix question.\n * @see QuestionMatrixDynamicModel\n * @see QuestionMatrixDynamicModel.visibleRows\n */\n _this.onMatrixRowAdded = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired before adding a new row in Matrix Dynamic question.\n *
sender the survey object that fires the event\n *
options.question a matrix question.\n *
options.canAddRow an allowing flag.\n * @see QuestionMatrixDynamicModel\n * @see QuestionMatrixDynamicModel.visibleRows\n */\n _this.onMatrixBeforeRowAdded = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on removing a row from Matrix Dynamic question.\n *
sender the survey object that fires the event\n *
options.question a matrix question.\n *
options.rowIndex a removed row index.\n *
options.row a removed row object.\n * @see QuestionMatrixDynamicModel\n * @see QuestionMatrixDynamicModel.visibleRows\n */\n _this.onMatrixRowRemoved = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired before rendering \"Remove\" button for removing a row from Matrix Dynamic question.\n *
sender the survey object that fires the event\n *
options.question a matrix question.\n *
options.rowIndex a row index.\n *
options.row a row object.\n *
options.allow a boolean property. Set it to false to disable the row removing.\n * @see QuestionMatrixDynamicModel\n */\n _this.onMatrixAllowRemoveRow = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired for every cell created in Matrix Dymic and Matrix Dropdown questions.\n *
options.question - the matrix question\n *
options.cell - the matrix cell\n *
options.cellQuestion - the question/editor in the cell. You may customize it, change it's properties, like choices or visible.\n *
options.rowValue - the value of the current row. To access the value of paticular column use: options.rowValue[\"columnValue\"]\n *
options.column - the matrix column object\n *
options.columName - the matrix column name\n *
options.row - the matrix row object\n * @see onMatrixBeforeRowAdded\n * @see onMatrixRowAdded\n * @see QuestionMatrixDynamicModel\n * @see QuestionMatrixDropdownModel\n */\n _this.onMatrixCellCreated = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired for every cell after is has been rendered in DOM.\n *
options.question - the matrix question\n *
options.cell - the matrix cell\n *
options.cellQuestion - the question/editor in the cell.\n *
options.htmlElement a html element binded with the cellQuestion object\n *
options.column - the matrix column object\n *
options.row - the matrix row object\n * @see onMatrixCellCreated\n * @see QuestionMatrixDynamicModel\n * @see QuestionMatrixDropdownModel\n */\n _this.onMatrixAfterCellRender = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired when cell value is changed in Matrix Dymic and Matrix Dropdown questions.\n *
options.question - the matrix question\n *
options.columName - the matrix column name\n *
options.value - a new value\n *
options.row - the matrix row object\n *
options.getCellQuestion(columnName) - the function that returns the cell question by column name.\n * @see onMatrixCellValueChanging\n * @see onMatrixBeforeRowAdded\n * @see onMatrixRowAdded\n * @see QuestionMatrixDynamicModel\n * @see QuestionMatrixDropdownModel\n */\n _this.onMatrixCellValueChanged = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on changing cell value in Matrix Dymic and Matrix Dropdown questions. You may change the options.value property to change the value in the cell.\n *
options.question - the matrix question\n *
options.columName - the matrix column name\n *
options.value - a new value\n *
options.oldValue - the old value\n *
options.row - the matrix row object\n *
options.getCellQuestion(columnName) - the function that returns the cell question by column name.\n * @see onMatrixCellValueChanged\n * @see onMatrixBeforeRowAdded\n * @see onMatrixRowAdded\n * @see QuestionMatrixDynamicModel\n * @see QuestionMatrixDropdownModel\n */\n _this.onMatrixCellValueChanging = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired when Matrix Dymic and Matrix Dropdown questions validate the cell value.\n *
options.question - the matrix question\n *
options.columName - the matrix column name\n *
options.value - a cell value\n *
options.row - the matrix row object\n *
options.getCellQuestion(columnName) - the function that returns the cell question by column name.\n * @see onMatrixBeforeRowAdded\n * @see onMatrixRowAdded\n * @see QuestionMatrixDynamicModel\n * @see QuestionMatrixDropdownModel\n */\n _this.onMatrixCellValidate = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on adding a new panel in Panel Dynamic question.\n *
sender the survey object that fires the event\n *
options.question a panel question.\n * @see QuestionPanelDynamicModel\n * @see QuestionPanelDynamicModel.panels\n */\n _this.onDynamicPanelAdded = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired on removing a panel from Panel Dynamic question.\n *
sender the survey object that fires the event\n *
options.question a panel question.\n *
options.panelIndex a removed panel index.\n * @see QuestionPanelDynamicModel\n * @see QuestionPanelDynamicModel.panels\n */\n _this.onDynamicPanelRemoved = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired every second if the method startTimer has been called.\n * @see startTimer\n * @see timeSpent\n * @see Page.timeSpent\n */\n _this.onTimer = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired before displaying a new information in the Timer Panel. Use it to change the default text.\n *
options.text - the timer panel info text.\n */\n _this.onTimerPanelInfoText = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The event is fired when item value is changed in Panel Dynamic question.\n *
options.question - the panel question\n *
options.panel - the dynamic panel item\n *
options.name - the item name\n *
options.value - a new value\n *
options.itemIndex - the panel item index\n *
options.itemValue - the panel item object\n * @see onDynamicPanelAdded\n * @see QuestionPanelDynamicModel\n */\n _this.onDynamicPanelItemValueChanged = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use this event to define, if the answer on the question is correct or not.\n *
sender the survey object that fires the event\n *
options.question a question on which you have to decide if the answer is correct or not.\n *
options.result return true, if the answer is correct or false if the answer is not correct. Use questions value and correctAnswer properties to return the correct value.\n *
options.correctAnswers - you may change the default number of correct or incorrect answers in the question, for example for matrix, where each row is a quiz question.\n * @see Question.value\n * @see Question.correctAnswer\n */\n _this.onIsAnswerCorrect = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * Use this event to control drag&drop operations during design mode.\n *
sender the survey object that fires the event.\n *
options.allow set it to false to disable dragging.\n *
options.target a target element that is dragging.\n *
options.source a source element. It can be null, if it is a new element, dragging from toolbox.\n *
options.parent a page or panel where target element is dragging.\n *
options.insertBefore an element before the target element is dragging. It can be null if parent container (page or panel) is empty or dragging an element under the last element of the container.\n *
options.insertAfter an element after the target element is dragging. It can be null if parent container (page or panel) is empty or dragging element to the top of the parent container.\n * @see setDesignMode\n * @see isDesignMode\n */\n _this.onDragDropAllow = new __WEBPACK_IMPORTED_MODULE_3__base__[\"b\" /* Event */]();\n /**\n * The list of errors on loading survey json. If the list is empty after loading a json then the json is correct and there is no errors in it.\n * @see JsonError\n */\n _this.jsonErrors = null;\n /**\n * Set this property to true to make all requried errors invisible\n */\n _this.hideRequiredErrors = false;\n _this.questionTitleTemplateCache = undefined;\n _this.conditionVersion = 0;\n _this._isDesignMode = false;\n /**\n * Set it to true, to ignore validation, like requried questions and others, on nextPage and completeLastPage functions.\n * @see nextPage\n * @see completeLastPage\n * @see mode\n */\n _this.ignoreValidation = false;\n _this.origionalPages = null;\n _this.isEndLoadingFromJson = null;\n _this.questionHashes = {\n names: {},\n namesInsensitive: {},\n valueNames: {},\n valueNamesInsensitive: {}\n };\n _this.timerFunc = null;\n /**\n * Returns the time in seconds end-user spends on the survey\n * @see startTimer\n * @see PageModel.timeSpent\n */\n _this.timeSpent = 0;\n var self = _this;\n if (typeof document !== \"undefined\") {\n SurveyModel.stylesManager = new __WEBPACK_IMPORTED_MODULE_11__stylesmanager__[\"a\" /* StylesManager */]();\n }\n _this.createLocalizableString(\"title\", _this, true);\n _this.createLocalizableString(\"description\", _this, true);\n _this.createLocalizableString(\"completedHtml\", _this);\n _this.createLocalizableString(\"completedBeforeHtml\", _this);\n _this.createLocalizableString(\"loadingHtml\", _this);\n _this.createLocalizableString(\"startSurvey\", _this);\n _this.createLocalizableString(\"pagePrev\", _this);\n _this.createLocalizableString(\"pageNext\", _this);\n _this.createLocalizableString(\"complete\", _this);\n _this.createLocalizableString(\"questionTitleTemplate\", _this, true);\n _this.textPreProcessor = new __WEBPACK_IMPORTED_MODULE_5__textPreProcessor__[\"a\" /* TextPreProcessor */]();\n _this.textPreProcessor.onProcess = function (textValue) {\n self.getProcessedTextValue(textValue);\n };\n _this.pagesValue = _this.createNewArray(\"pages\", function (value) {\n self.doOnPageAdded(value);\n });\n _this.createNewArray(\"triggers\", function (value) {\n value.setOwner(self);\n });\n _this.createNewArray(\"calculatedValues\", function (value) {\n value.setOwner(self);\n });\n _this.createNewArray(\"completedHtmlOnCondition\", function (value) {\n value.locOwner = self;\n });\n _this.registerFunctionOnPropertyValueChanged(\"questionTitleTemplate\", function () {\n self.questionTitleTemplateCache = undefined;\n });\n _this.registerFunctionOnPropertyValueChanged(\"firstPageIsStarted\", function () {\n self.onFirstPageIsStartedChanged();\n });\n _this.registerFunctionOnPropertyValueChanged(\"isSinglePage\", function () {\n self.onIsSinglePageChanged();\n });\n _this.registerFunctionOnPropertyValueChanged(\"mode\", function () {\n self.onModeChanged();\n });\n _this.onBeforeCreating();\n if (jsonObj) {\n if (typeof jsonObj === \"string\" || jsonObj instanceof String) {\n jsonObj = JSON.parse(jsonObj);\n }\n if (jsonObj && jsonObj.clientId) {\n _this.clientId = jsonObj.clientId;\n }\n _this.setJsonObject(jsonObj);\n if (_this.surveyId) {\n _this.loadSurveyFromService(_this.surveyId, _this.clientId);\n }\n }\n _this.onCreating();\n return _this;\n }\n Object.defineProperty(SurveyModel.prototype, \"platformName\", {\n get: function () {\n return SurveyModel.platform;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"commentPrefix\", {\n /**\n * You may show comments input for the most of questions. The entered text in the comment input will be saved as 'question name' + 'commentPrefix'.\n * @see data\n */\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_14__settings__[\"a\" /* settings */].commentPrefix;\n },\n set: function (val) {\n __WEBPACK_IMPORTED_MODULE_14__settings__[\"a\" /* settings */].commentPrefix = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"currentPageValue\", {\n get: function () {\n return this.getPropertyValue(\"currentPageValue\", null);\n },\n set: function (val) {\n this.setPropertyValue(\"currentPageValue\", val);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.getType = function () {\n return \"survey\";\n };\n Object.defineProperty(SurveyModel.prototype, \"pages\", {\n /**\n * The list of all pages in the survey, including invisible.\n * @see PageModel\n * @see visiblePages\n */\n get: function () {\n return this.pagesValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"triggers\", {\n /**\n * The list of triggers in the survey.\n * @see SurveyTrigger\n */\n get: function () {\n return this.getPropertyValue(\"triggers\");\n },\n set: function (val) {\n this.setPropertyValue(\"triggers\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"calculatedValues\", {\n /**\n * The list of calculated values in the survey.\n * @see CalculatedValue\n */\n get: function () {\n return this.getPropertyValue(\"calculatedValues\");\n },\n set: function (val) {\n this.setPropertyValue(\"calculatedValues\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"surveyId\", {\n /**\n * Set this property to automatically load survey Json from [dxsurvey.com](http://www.dxsurvey.com) service.\n * @see loadSurveyFromService\n */\n get: function () {\n return this.getPropertyValue(\"surveyId\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"surveyId\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"surveyPostId\", {\n /**\n * Set this property to automatically save the data into the [dxsurvey.com](http://www.dxsurvey.com) service.\n * @see onComplete\n * @see surveyShowDataSaving\n */\n get: function () {\n return this.getPropertyValue(\"surveyPostId\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"surveyPostId\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"clientId\", {\n /**\n * Use this property as indentificator for a user, for example e-mail or unique customer id in your web application. If you are loading survey or posting survey results from/to [dxsurvey.com](http://www.dxsurvey.com) service, then the library do not allow to run the same survey the second time. On the second run, the user will see the 'Thank you' page.\n */\n get: function () {\n return this.getPropertyValue(\"clientId\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"clientId\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"cookieName\", {\n /**\n * If the property is not empty, before starting to run the survey, the library checkes if the cookie with this name exists. If it is true, the survey goes to complete mode and an user sees the 'Thank you' page. On completing the survey the cookie with this name is created.\n */\n get: function () {\n return this.getPropertyValue(\"cookieName\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"cookieName\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"sendResultOnPageNext\", {\n /**\n * Set it to true, to save results on completing every page. onPartialSend event is fired.\n * @see onPartialSend\n * @see clientId\n */\n get: function () {\n return this.getPropertyValue(\"sendResultOnPageNext\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"sendResultOnPageNext\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"surveyShowDataSaving\", {\n /**\n * Set this property to true, to show the progress on saving/sending data into the [dxsurvey.com](http://www.dxsurvey.com) service.\n * @see surveyPostId\n */\n get: function () {\n return this.getPropertyValue(\"surveyShowDataSaving\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"surveyShowDataSaving\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"focusFirstQuestionAutomatic\", {\n /**\n * On showing the next or previous page, a first input is focused, if the property set to true.\n */\n get: function () {\n return this.getPropertyValue(\"focusFirstQuestionAutomatic\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"focusFirstQuestionAutomatic\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"focusOnFirstError\", {\n /**\n * Set this property to false (default value is true) if you do not want to bring the focus to the first question that has error on the page.\n */\n get: function () {\n return this.getPropertyValue(\"focusOnFirstError\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"focusOnFirstError\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"showNavigationButtons\", {\n /**\n * Possible values: 'bottom' (default), 'top', 'both' and 'none'. Set it to 'none' to hide 'Prev', 'Next' and 'Complete' buttons. It makes sense if you are going to create a custom navigation or have just one page or on setting goNextPageAutomatic property.\n * @see goNextPageAutomatic\n * @see showPrevButton\n */\n get: function () {\n return this.getPropertyValue(\"showNavigationButtons\");\n },\n set: function (val) {\n if (val === true || val === undefined) {\n val = \"bottom\";\n }\n if (val === false) {\n val = \"none\";\n }\n this.setPropertyValue(\"showNavigationButtons\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"showPrevButton\", {\n /**\n * Set it to false to hide the 'Prev' to disable for end-users go back to their answers.\n * @see showNavigationButtons\n */\n get: function () {\n return this.getPropertyValue(\"showPrevButton\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"showPrevButton\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"showTitle\", {\n /**\n * Set it to false hide survey title.\n * @see title\n */\n get: function () {\n return this.getPropertyValue(\"showTitle\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"showTitle\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"showPageTitles\", {\n /**\n * Set it to false to hide page titles.\n * @see PageModel.title\n */\n get: function () {\n return this.getPropertyValue(\"showPageTitles\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"showPageTitles\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"showCompletedPage\", {\n /**\n * On finishing the survey the 'Thank you', page on complete, is shown. Set the property to false, to hide the 'Thank you' page.\n * @see data\n * @see onComplete\n */\n get: function () {\n return this.getPropertyValue(\"showCompletedPage\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"showCompletedPage\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"requiredText\", {\n /**\n * A char/string that will be rendered in the title required questions.\n * @see Question.title\n */\n get: function () {\n return this.getPropertyValue(\"requiredText\", \"*\");\n },\n set: function (val) {\n this.setPropertyValue(\"requiredText\", val);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.beforeSettingQuestionErrors = function (question, errors) {\n if (this.hideRequiredErrors) {\n for (var i = 0; i < errors.length; i++) {\n if (errors[i].getErrorType() == \"required\") {\n errors[i].visible = false;\n }\n }\n }\n this.onSettingQuestionErrors.fire(this, {\n question: question,\n errors: errors\n });\n };\n Object.defineProperty(SurveyModel.prototype, \"questionStartIndex\", {\n /**\n * By default the first question index is 1. You may start it from 100 or from 'A', by setting 100 or 'A' to this property.\n * @see Question.title\n * @see requiredText\n */\n get: function () {\n return this.getPropertyValue(\"questionStartIndex\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"questionStartIndex\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"storeOthersAsComment\", {\n /**\n * By default the entered text in the others input in the checkbox/radiogroup/dropdown are stored as \"question name \" + \"-Comment\". The value itself is \"question name\": \"others\". Set this property to false, to store the entered text directly in the \"question name\" key.\n * @see commentPrefix\n */\n get: function () {\n return this.getPropertyValue(\"storeOthersAsComment\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"storeOthersAsComment\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"maxTextLength\", {\n /**\n * The default maximum length for questions like text and comment, including matrix cell questions.\n * The default value is 0, it is unlimited maxLength - 524288 characters: https://www.w3schools.com/tags/att_input_maxlength.asp\n * @see maxOthersLength\n */\n get: function () {\n return this.getPropertyValue(\"maxTextLength\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"maxTextLength\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"maxOthersLength\", {\n /**\n * The default maximum length for question comments and others\n * The default value is 0, it is unlimited maxLength - 524288 characters: https://www.w3schools.com/tags/att_input_maxlength.asp\n * @see Question.hasComment\n * @see Question.hasOther\n * @see maxTextLength\n */\n get: function () {\n return this.getPropertyValue(\"maxOthersLength\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"maxOthersLength\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"goNextPageAutomatic\", {\n /**\n * Set it to the one of the following constants if you want to go to the next page without pressing 'Next' button when all questions are anwered.\n * true - go next page and submit automatically\n * \"autogonext\" - go next page automatically but do not submit\n * false - do not go next page and not submit automatically\n * @see showNavigationButtons\n */\n get: function () {\n return this.getPropertyValue(\"goNextPageAutomatic\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"goNextPageAutomatic\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"allowCompleteSurveyAutomatic\", {\n /**\n * Set it to false if you do not want to submit survey automatically if goNextPageAutomatic=true.\n * @see goNextPageAutomatic\n */\n get: function () {\n return this.getPropertyValue(\"allowCompleteSurveyAutomatic\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"allowCompleteSurveyAutomatic\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"checkErrorsMode\", {\n /**\n * Change this property from 'onNextPage' to 'onValueChanged' to check erorrs on every question value changing,\n * or change it to 'onComplete' to validate all visible questions on complete button. If there is the error on some pages,\n * then the page with the first error becomes the current.\n * By default, library checks errors on changing current page to the next or on completing the survey.\n */\n get: function () {\n return this.getPropertyValue(\"checkErrorsMode\");\n },\n set: function (val) {\n this.setPropertyValue(\"checkErrorsMode\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"textUpdateMode\", {\n /**\n * Change this property from 'onBlur' to 'onTyping' to update the value of text questions, \"text\" and \"comment\",\n * on every key press. By default, the value is updated an input losts the focus.\n * Please note, setting to \"onTyping\" may lead to a performance degradation, in case you have many expressions in the survey\n */\n get: function () {\n return this.getPropertyValue(\"textUpdateMode\");\n },\n set: function (val) {\n this.setPropertyValue(\"textUpdateMode\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"clearInvisibleValues\", {\n /**\n * Set it to 'none' to include the invisible values into the survey data.\n *
Set it to 'onHidden' to clear the question value when it becomes invisible. If a question has value and it was invisible initially then survey clears the value on completing.\n *
Leave it equals to 'onComplete', to remove from data property values of invisible questions on survey complete. In this case, the invisible questions will not be stored on the server.\n *
The default value is 'onComplete'.\n * @see Question.visible\n * @see onComplete\n */\n get: function () {\n return this.getPropertyValue(\"clearInvisibleValues\");\n },\n set: function (val) {\n if (val === true)\n val = \"onComplete\";\n if (val === false)\n val = \"none\";\n this.setPropertyValue(\"clearInvisibleValues\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Call this function to remove all question values from the survey, that end-user will not be able to enter.\n * For example the value that doesn't exists in a radigroup/dropdown/checkbox choices or matrix rows/columns.\n * Please note, this function doesn't clear values for invisible questions or values that doesn't associated with questions.\n * In fact this function just call clearIncorrectValues function of all questions in the survery\n * @see Question.clearIncorrectValues\n * @see Page.clearIncorrectValues\n * @see Panel.clearIncorrectValues\n */\n SurveyModel.prototype.clearIncorrectValues = function () {\n for (var i = 0; i < this.pages.length; i++) {\n this.pages[i].clearIncorrectValues();\n }\n };\n Object.defineProperty(SurveyModel.prototype, \"locale\", {\n /**\n * Use it to change the survey locale. By default it is empty, 'en'. You may set it to 'de' - german, 'fr' - french and so on. The library has built-in localization for several languages. The library has a multi-language support as well.\n */\n get: function () {\n return this.localeValue;\n },\n set: function (value) {\n this.questionTitleTemplateCache = undefined;\n __WEBPACK_IMPORTED_MODULE_8__surveyStrings__[\"a\" /* surveyLocalization */].currentLocale = value;\n this.localeValue = __WEBPACK_IMPORTED_MODULE_8__surveyStrings__[\"a\" /* surveyLocalization */].currentLocale;\n this.setPropertyValue(\"locale\", this.localeValue);\n this.locStrsChanged();\n this.onLocaleChanged();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Return the array of locales that used in the current survey\n */\n SurveyModel.prototype.getUsedLocales = function () {\n var locs = new Array();\n this.addUsedLocales(locs);\n //Replace the default locale with the real one\n var index = locs.indexOf(\"default\");\n if (index > -1) {\n var defaultLoc = __WEBPACK_IMPORTED_MODULE_8__surveyStrings__[\"a\" /* surveyLocalization */].defaultLocale;\n //Remove the defaultLoc\n var defIndex = locs.indexOf(defaultLoc);\n if (defIndex > -1) {\n locs.splice(defIndex, 1);\n }\n index = locs.indexOf(\"default\");\n locs[index] = defaultLoc;\n }\n return locs;\n };\n SurveyModel.prototype.onLocaleChanged = function () { };\n //ILocalizableOwner\n SurveyModel.prototype.getLocale = function () {\n return this.locale;\n };\n SurveyModel.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n if (this.currentPage) {\n this.currentPage.locStrsChanged();\n }\n };\n SurveyModel.prototype.getMarkdownHtml = function (text) {\n return this.getSurveyMarkdownHtml(this, text);\n };\n SurveyModel.prototype.getProcessedText = function (text) {\n return this.processText(text, true);\n };\n SurveyModel.prototype.getLocString = function (str) {\n return __WEBPACK_IMPORTED_MODULE_8__surveyStrings__[\"a\" /* surveyLocalization */].getString(str);\n };\n //ISurveyErrorOwner\n SurveyModel.prototype.getErrorCustomText = function (text, error) {\n var options = { text: text, name: error.getErrorType(), error: error };\n this.onErrorCustomText.fire(this, options);\n return options.text;\n };\n Object.defineProperty(SurveyModel.prototype, \"emptySurveyText\", {\n /**\n * Returns the text that renders when there is no any visible page and question.\n */\n get: function () {\n return this.getLocString(\"emptySurvey\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"title\", {\n /**\n * Survey title.\n * @see description\n */\n get: function () {\n return this.getLocalizableStringText(\"title\");\n },\n set: function (value) {\n this.setLocalizableStringText(\"title\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locTitle\", {\n get: function () {\n return this.getLocalizableString(\"title\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"description\", {\n /**\n * Survey description. It shows under survey title\n * @see title\n */\n get: function () {\n return this.getLocalizableStringText(\"description\");\n },\n set: function (value) {\n this.setLocalizableStringText(\"description\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locDescription\", {\n get: function () {\n return this.getLocalizableString(\"description\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"completedHtml\", {\n /**\n * The html that shows on completed ('Thank you') page. Set it to change the default text.\n * @see showCompletedPage\n * @see completedHtmlOnCondition\n * @see locale\n */\n get: function () {\n return this.getLocalizableStringText(\"completedHtml\");\n },\n set: function (value) {\n this.setLocalizableStringText(\"completedHtml\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locCompletedHtml\", {\n get: function () {\n return this.getLocalizableString(\"completedHtml\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"completedHtmlOnCondition\", {\n /**\n * The list of html condition items. If the expression of this item returns true, then survey will use this item html instead of completedHtml\n * @see HtmlConditionItem\n * @see completeHtml\n */\n get: function () {\n return this.getPropertyValue(\"completedHtmlOnCondition\");\n },\n set: function (val) {\n this.setPropertyValue(\"completedHtmlOnCondition\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Perform the calculation of the given expression and returns the result value\n * @param expression\n */\n SurveyModel.prototype.runExpression = function (expression) {\n if (!expression)\n return null;\n var values = this.getFilteredValues();\n var properties = this.getFilteredProperties();\n return new __WEBPACK_IMPORTED_MODULE_13__conditions__[\"a\" /* ExpressionRunner */](expression).run(values, properties);\n };\n /**\n * Perform the calculation of the given expression and true or false\n * @param expression\n */\n SurveyModel.prototype.runCondition = function (expression) {\n if (!expression)\n return false;\n var values = this.getFilteredValues();\n var properties = this.getFilteredProperties();\n return new __WEBPACK_IMPORTED_MODULE_13__conditions__[\"b\" /* ConditionRunner */](expression).run(values, properties);\n };\n Object.defineProperty(SurveyModel.prototype, \"renderedCompletedHtml\", {\n get: function () {\n if (this.completedHtmlOnCondition.length == 0)\n return this.completedHtml;\n var values = this.getFilteredValues();\n var properties = this.getFilteredProperties();\n for (var i = 0; i < this.completedHtmlOnCondition.length; i++) {\n var item = this.completedHtmlOnCondition[i];\n if (item.runCondition(values, properties)) {\n return item.html;\n }\n }\n return this.completedHtml;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"completedBeforeHtml\", {\n /**\n * The html that shows if the end user has already completed the survey.\n * @see clientId\n * @see locale\n */\n get: function () {\n return this.getLocalizableStringText(\"completedBeforeHtml\");\n },\n set: function (value) {\n this.setLocalizableStringText(\"completedBeforeHtml\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locCompletedBeforeHtml\", {\n get: function () {\n return this.getLocalizableString(\"completedBeforeHtml\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"loadingHtml\", {\n /**\n * The html that shows on loading survey Json from the dxsurvey.com service.\n * @see surveyId\n * @see locale\n */\n get: function () {\n return this.getLocalizableStringText(\"loadingHtml\");\n },\n set: function (value) {\n this.setLocalizableStringText(\"loadingHtml\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locLoadingHtml\", {\n get: function () {\n return this.getLocalizableString(\"loadingHtml\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"startSurveyText\", {\n /**\n * A text that renders on the 'Start' button. Set it to change the default text.\n * The start button is shown on the started page. You have to set firstPageIsStarted property to true, to have the started page.\n * @see firstPageIsStarted\n * @see locale\n */\n get: function () {\n return this.getLocalizableStringText(\"startSurvey\", this.getLocString(\"startSurveyText\"));\n },\n set: function (newValue) {\n this.setLocalizableStringText(\"startSurvey\", newValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locStartSurveyText\", {\n get: function () {\n return this.getLocalizableString(\"startSurvey\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"pagePrevText\", {\n /**\n * A text that renders on the 'Prev' button. Set it to change the default text.\n * @see locale\n */\n get: function () {\n return this.getLocalizableStringText(\"pagePrev\", this.getLocString(\"pagePrevText\"));\n },\n set: function (newValue) {\n this.setLocalizableStringText(\"pagePrev\", newValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locPagePrevText\", {\n get: function () {\n return this.getLocalizableString(\"pagePrev\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"pageNextText\", {\n /**\n * A text that renders on the 'Next' button. Set it to change the default text.\n * @see locale\n */\n get: function () {\n return this.getLocalizableStringText(\"pageNext\", this.getLocString(\"pageNextText\"));\n },\n set: function (newValue) {\n this.setLocalizableStringText(\"pageNext\", newValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locPageNextText\", {\n get: function () {\n return this.getLocalizableString(\"pageNext\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"completeText\", {\n /**\n * A text that renders on the 'Complete' button. Set it to change the default text.\n * @see locale\n */\n get: function () {\n return this.getLocalizableStringText(\"complete\", this.getLocString(\"completeText\"));\n },\n set: function (newValue) {\n this.setLocalizableStringText(\"complete\", newValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"locCompleteText\", {\n get: function () {\n return this.getLocalizableString(\"complete\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"questionTitleTemplate\", {\n /**\n * A template for a question title.\n * @see QuestionModel.title\n */\n get: function () {\n return this.getLocalizableStringText(\"questionTitleTemplate\");\n },\n set: function (value) {\n if (!!value && value.indexOf(\"{no}\") !== -1) {\n var noIndex = value.indexOf(\"{no}\");\n var prevBrIndex = noIndex;\n var nextBrIndex = noIndex + 4;\n while (prevBrIndex >= 0 && value[prevBrIndex] !== \"}\")\n prevBrIndex--;\n while (nextBrIndex < value.length && value[nextBrIndex] !== \"{\")\n nextBrIndex++;\n value =\n value.substring(0, prevBrIndex + 1) + value.substring(nextBrIndex);\n }\n this.setLocalizableStringText(\"questionTitleTemplate\", value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the question title template\n * @see questionTitleTemplate\n * @see QuestionModel.title\n */\n SurveyModel.prototype.getQuestionTitleTemplate = function () {\n if (this.questionTitleTemplateCache === undefined) {\n this.questionTitleTemplateCache = this.locQuestionTitleTemplate.textOrHtml;\n }\n return this.questionTitleTemplateCache;\n };\n Object.defineProperty(SurveyModel.prototype, \"locQuestionTitleTemplate\", {\n get: function () {\n return this.getLocalizableString(\"questionTitleTemplate\");\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.getUpdatedQuestionTitle = function (question, title) {\n if (this.onGetQuestionTitle.isEmpty)\n return title;\n var options = { question: question, title: title };\n this.onGetQuestionTitle.fire(this, options);\n return options.title;\n };\n Object.defineProperty(SurveyModel.prototype, \"showPageNumbers\", {\n /**\n * Set this property to false to turn off the numbering on pages titles.\n */\n get: function () {\n return this.getPropertyValue(\"showPageNumbers\", false);\n },\n set: function (value) {\n if (value === this.showPageNumbers)\n return;\n this.setPropertyValue(\"showPageNumbers\", value);\n this.updateVisibleIndexes();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"showQuestionNumbers\", {\n /**\n * Set this property to \"off\" to turn off the numbering on questions titles or \"onpage\" to start numbering on every page. The default value is \"on\".\n */\n get: function () {\n return this.getPropertyValue(\"showQuestionNumbers\");\n },\n set: function (value) {\n value = value.toLowerCase();\n value = value === \"onpage\" ? \"onPage\" : value;\n if (value === this.showQuestionNumbers)\n return;\n this.setPropertyValue(\"showQuestionNumbers\", value);\n this.updateVisibleIndexes();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"showProgressBar\", {\n /**\n * Set this property to \"top\" to show the progress bar on the bottom or to \"bottom\" to show it on the bottom.\n */\n get: function () {\n return this.getPropertyValue(\"showProgressBar\");\n },\n set: function (newValue) {\n this.setPropertyValue(\"showProgressBar\", newValue.toLowerCase());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"progressBarType\", {\n /**\n * Type of info in the progress bar: \"pages\" (default), \"questions\" or \"correctQuestions\".\n */\n get: function () {\n return this.getPropertyValue(\"progressBarType\");\n },\n set: function (newValue) {\n this.setPropertyValue(\"progressBarType\", newValue.toLowerCase());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isShowProgressBarOnTop\", {\n get: function () {\n return this.showProgressBar === \"top\" || this.showProgressBar === \"both\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isShowProgressBarOnBottom\", {\n get: function () {\n return this.showProgressBar === \"bottom\" || this.showProgressBar === \"both\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"processedTitle\", {\n /**\n * Returns the text/html that renders as survey title.\n */\n get: function () {\n return this.locTitle.renderedHtml;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"questionTitleLocation\", {\n /**\n * Set this property to 'bottom' or 'left' to show question title under the question or on the left.\n *
Note: Some questions, for example matrixes, do not support 'left' value. The title for them will be displayed on the top.\n */\n get: function () {\n return this.getPropertyValue(\"questionTitleLocation\");\n },\n set: function (value) {\n this.setPropertyValue(\"questionTitleLocation\", value.toLowerCase());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"questionErrorLocation\", {\n /**\n * Set this property to 'bottom' to show question error(s) under the question.\n */\n get: function () {\n return this.getPropertyValue(\"questionErrorLocation\");\n },\n set: function (value) {\n this.setPropertyValue(\"questionErrorLocation\", value.toLowerCase());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"questionDescriptionLocation\", {\n /**\n * Set this property to 'underInput' to show question description under the question input instead of question title.\n */\n get: function () {\n return this.getPropertyValue(\"questionDescriptionLocation\");\n },\n set: function (value) {\n this.setPropertyValue(\"questionDescriptionLocation\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"mode\", {\n /**\n * Set this mode to 'display' to make the survey read-only. The default value is 'edit'.\n */\n get: function () {\n return this.getPropertyValue(\"mode\");\n },\n set: function (value) {\n value = value.toLowerCase();\n if (value == this.mode)\n return;\n if (value != \"edit\" && value != \"display\")\n return;\n this.setPropertyValue(\"mode\", value);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.onModeChanged = function () {\n for (var i = 0; i < this.pages.length; i++) {\n var page = this.pages[i];\n page.setPropertyValue(\"isReadOnly\", page.isReadOnly);\n }\n };\n Object.defineProperty(SurveyModel.prototype, \"data\", {\n /**\n * An object that stores the survey results/data. You may set it directly as { 'question name': questionValue, ... }\n * Note: If you are setting the data after creatig the survey, you may need to set the currentPageNo to 0, if you are using visibleIf properties for questions/pages/panels to ensure that you are starting from the first page.\n * @see setValue\n * @see getValue\n * @see currentPageNo\n */\n get: function () {\n var result = {};\n for (var i = 0; i < this.calculatedValues.length; i++) {\n var calValue = this.calculatedValues[i];\n if (calValue.includeIntoResult &&\n !!calValue.name &&\n this.getVariable(calValue.name) !== undefined) {\n result[calValue.name] = this.getVariable(calValue.name);\n }\n }\n for (var key in this.valuesHash) {\n var dataValue = this.getDataValueCore(this.valuesHash, key);\n if (dataValue !== undefined) {\n result[key] = dataValue;\n }\n }\n return result;\n },\n set: function (data) {\n this.valuesHash = {};\n if (data) {\n for (var key in data) {\n this.setDataValueCore(this.valuesHash, key, data[key]);\n }\n }\n this.updateAllQuestionsValue();\n this.notifyAllQuestionsOnValueChanged();\n this.notifyElementsOnAnyValueOrVariableChanged(\"\");\n this.runConditions();\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.getAllValues = function () {\n return this.data;\n };\n /**\n * Returns survey result data as an array of plain objects: with question title, name, value and displayValue.\n * For complex questions (like matrix, etc.) isNode flag is set to true and data contains array of nested objects (rows)\n * set options.includeEmpty to false if you want to skip empty answers\n */\n SurveyModel.prototype.getPlainData = function (options) {\n if (options === void 0) { options = {\n includeEmpty: true\n }; }\n var result = [];\n this.getAllQuestions().forEach(function (question) {\n var resultItem = question.getPlainData(options);\n if (!!resultItem) {\n result.push(resultItem);\n }\n });\n return result;\n };\n SurveyModel.prototype.getFilteredValues = function () {\n var values = {};\n for (var key in this.variablesHash)\n values[key] = this.variablesHash[key];\n for (var key in this.valuesHash)\n values[key] = this.getDataValueCore(this.valuesHash, key);\n values[\"conditionVersion\"] = ++this.conditionVersion;\n return values;\n };\n SurveyModel.prototype.getFilteredProperties = function () {\n return { survey: this };\n };\n SurveyModel.prototype.getDataValueCore = function (valuesHash, key) {\n return valuesHash[key];\n };\n SurveyModel.prototype.setDataValueCore = function (valuesHash, key, value) {\n valuesHash[key] = value;\n };\n SurveyModel.prototype.deleteDataValueCore = function (valuesHash, key) {\n delete valuesHash[key];\n };\n Object.defineProperty(SurveyModel.prototype, \"comments\", {\n // protected iterateDataValuesHash(func: (hash: any, key: any) => void) {\n // var keys: any[] = [];\n // for (var key in this.valuesHash) {\n // keys.push(key);\n // }\n // keys.forEach(key => func(this.valuesHash, key));\n // }\n /**\n * Returns all comments from the data.\n * @see data\n */\n get: function () {\n var result = {};\n for (var key in this.valuesHash) {\n if (key.indexOf(this.commentPrefix) > 0) {\n result[key] = this.getDataValueCore(this.valuesHash, key);\n }\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"visiblePages\", {\n /**\n * Returns the list of visible pages. If all pages are visible then it is the same as pages property.\n * @see pages\n * @see PageModel.visible\n * @see PageModel.visibleIf\n */\n get: function () {\n if (this.isDesignMode)\n return this.pages;\n var result = new Array();\n for (var i = 0; i < this.pages.length; i++) {\n if (this.pages[i].isVisible) {\n result.push(this.pages[i]);\n }\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isEmpty\", {\n /**\n * Returns true if there is no any page in the survey. The survey is empty.\n */\n get: function () {\n return this.pages.length == 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"PageCount\", {\n /**\n * depricated, misspelling, use pageCount property\n */\n get: function () {\n return this.pageCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"pageCount\", {\n /**\n * Returns the survey pages count.\n * @see visiblePageCount\n * @see pages\n */\n get: function () {\n return this.pages.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"visiblePageCount\", {\n /**\n * Returns the survey visible pages count\n * @see pageCount\n * @see visiblePages\n */\n get: function () {\n return this.visiblePages.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"startedPage\", {\n /**\n * Returns the started Page. firstPageIsStarted property should be equals to true\n * @see firstPageIsStarted\n */\n get: function () {\n var page = this.firstPageIsStarted && this.pages.length > 0 ? this.pages[0] : null;\n if (!!page) {\n page.onFirstRendering();\n }\n return page;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"currentPage\", {\n /**\n * Returns the current survey page. If survey is rendred then it is a page that a user can see/edit.\n */\n get: function () {\n var vPages = this.visiblePages;\n if (this.currentPageValue != null) {\n if (vPages.indexOf(this.currentPageValue) < 0) {\n this.currentPage = null;\n }\n }\n if (this.currentPageValue == null && vPages.length > 0) {\n this.currentPage = vPages[0];\n }\n return this.currentPageValue;\n },\n set: function (value) {\n var newPage = this.getPageByObject(value);\n if (!!value && !newPage)\n return;\n var vPages = this.visiblePages;\n if (newPage != null && vPages.indexOf(newPage) < 0)\n return;\n if (newPage == this.currentPageValue)\n return;\n var oldValue = this.currentPageValue;\n if (!this.currentPageChanging(newPage, oldValue))\n return;\n if (!!newPage) {\n newPage.onFirstRendering();\n }\n this.currentPageValue = newPage;\n if (!!newPage) {\n newPage.updateCustomWidgets();\n newPage.setWasShown(true);\n }\n this.locStrsChanged();\n this.currentPageChanged(newPage, oldValue);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.getPageByObject = function (value) {\n if (!value)\n return null;\n if (value.getType && value.getType() == \"page\")\n return value;\n if (typeof value === \"string\" || value instanceof String)\n return this.getPageByName(String(value));\n if (!isNaN(value)) {\n var index = Number(value);\n var vPages = this.visiblePages;\n if (value < 0 || value >= vPages.length)\n return null;\n return vPages[index];\n }\n return value;\n };\n Object.defineProperty(SurveyModel.prototype, \"currentPageNo\", {\n /**\n * The index of the current page in the visible pages array. It starts from 0.\n */\n get: function () {\n return this.visiblePages.indexOf(this.currentPage);\n },\n set: function (value) {\n var vPages = this.visiblePages;\n if (value < 0 || value >= vPages.length)\n return;\n this.currentPage = vPages[value];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"questionsOrder\", {\n /**\n * Use this property to randomize questions. Set it to 'random' to randomize questions, 'initial' to keep them in the same order. You can randomize questions on a specific page.\n * @see SurveyPage.questionsOrder\n */\n get: function () {\n return this.getPropertyValue(\"questionsOrder\");\n },\n set: function (val) {\n this.setPropertyValue(\"questionsOrder\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Set the input focus to the first question with the input.\n */\n SurveyModel.prototype.focusFirstQuestion = function () {\n var page = this.currentPage;\n if (page) {\n page.scrollToTop();\n page.focusFirstQuestion();\n }\n };\n SurveyModel.prototype.scrollToTopOnPageChange = function () {\n var page = this.currentPage;\n if (!page)\n return;\n page.scrollToTop();\n if (this.focusFirstQuestionAutomatic) {\n page.focusFirstQuestion();\n }\n };\n Object.defineProperty(SurveyModel.prototype, \"state\", {\n /**\n * Returns the current survey state: 'loading' - loading from the json, 'completed' - a user has completed the survey,\n * 'starting' - the started page is showing, running' - a user answers a questions right now, 'empty' - there is nothing to show in the current survey.\n */\n get: function () {\n if (this.isLoading)\n return \"loading\";\n if (this.isCompleted)\n return \"completed\";\n if (this.isCompletedBefore)\n return \"completedbefore\";\n if (!this.isDesignMode &&\n this.isEditMode &&\n this.isStartedState &&\n this.startedPage)\n return \"starting\";\n return this.currentPage ? \"running\" : \"empty\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isCompleted\", {\n get: function () {\n return this.getPropertyValue(\"isCompleted\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isCompleted\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isStartedState\", {\n get: function () {\n return this.getPropertyValue(\"isStartedState\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isStartedState\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isCompletedBefore\", {\n get: function () {\n return this.getPropertyValue(\"isCompletedBefore\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isCompletedBefore\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isLoading\", {\n get: function () {\n return this.getPropertyValue(\"isLoading\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isLoading\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"completedState\", {\n get: function () {\n return this.completedStateValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"completedStateText\", {\n get: function () {\n return this.completedStateTextValue;\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.setCompletedState = function (value, text) {\n this.completedStateValue = value;\n if (!text) {\n if (value == \"saving\")\n text = this.getLocString(\"savingData\");\n if (value == \"error\")\n text = this.getLocString(\"savingDataError\");\n if (value == \"success\")\n text = this.getLocString(\"savingDataSuccess\");\n }\n this.completedStateTextValue = text;\n };\n /**\n * Clear the survey data and state. If the survey has a 'completed' state, it will have a 'running' state.\n * @param clearData clear the data\n * @param gotoFirstPage make the first page as a current page.\n * @see data\n * @see state\n * @see currentPage\n */\n SurveyModel.prototype.clear = function (clearData, gotoFirstPage) {\n if (clearData === void 0) { clearData = true; }\n if (gotoFirstPage === void 0) { gotoFirstPage = true; }\n if (clearData) {\n this.data = null;\n this.variablesHash = {};\n }\n this.timeSpent = 0;\n for (var i = 0; i < this.pages.length; i++) {\n this.pages[i].timeSpent = 0;\n this.pages[i].setWasShown(false);\n }\n this.isCompleted = false;\n this.isCompletedBefore = false;\n this.isLoading = false;\n this.isStartedState = this.firstPageIsStarted;\n if (gotoFirstPage && this.visiblePageCount > 0) {\n this.currentPage = this.visiblePages[0];\n }\n if (clearData) {\n this.updateValuesWithDefaults();\n }\n };\n SurveyModel.prototype.mergeValues = function (src, dest) {\n if (!dest || !src)\n return;\n for (var key in src) {\n var value = src[key];\n if (value && typeof value === \"object\") {\n if (!dest[key])\n dest[key] = {};\n this.mergeValues(value, dest[key]);\n }\n else {\n dest[key] = value;\n }\n }\n };\n SurveyModel.prototype.updateValuesWithDefaults = function () {\n if (this.isDesignMode || this.isLoading)\n return;\n for (var i = 0; i < this.pages.length; i++) {\n var questions = this.pages[i].questions;\n for (var j = 0; j < questions.length; j++) {\n questions[j].updateValueWithDefaults();\n }\n }\n };\n SurveyModel.prototype.updateCustomWidgets = function (page) {\n if (!page)\n return;\n page.updateCustomWidgets();\n };\n SurveyModel.prototype.currentPageChanging = function (newValue, oldValue) {\n var options = {\n oldCurrentPage: oldValue,\n newCurrentPage: newValue,\n allowChanging: true\n };\n this.onCurrentPageChanging.fire(this, options);\n return options.allowChanging;\n };\n SurveyModel.prototype.currentPageChanged = function (newValue, oldValue) {\n this.onCurrentPageChanged.fire(this, {\n oldCurrentPage: oldValue,\n newCurrentPage: newValue\n });\n };\n /**\n * Returns the progress that a user made by answering on the survey.\n */\n SurveyModel.prototype.getProgress = function () {\n if (this.currentPage == null)\n return 0;\n if (this.progressBarType === \"questions\") {\n var questions = this.getAllQuestions();\n var answeredQuestionsCount = questions.reduce(function (a, b) { return a + (b.isEmpty() ? 0 : 1); }, 0);\n return Math.ceil((answeredQuestionsCount * 100) / questions.length);\n }\n if (this.progressBarType === \"correctQuestions\") {\n var questions = this.getAllQuestions();\n var correctAnswersCount = this.getCorrectedAnswerCount();\n return Math.ceil((correctAnswersCount * 100) / questions.length);\n }\n var index = this.visiblePages.indexOf(this.currentPage) + 1;\n return Math.ceil((index * 100) / this.visiblePageCount);\n };\n Object.defineProperty(SurveyModel.prototype, \"isNavigationButtonsShowing\", {\n /**\n * Returns true if navigation buttons: 'Prev', 'Next' or 'Complete' are shown.\n */\n get: function () {\n if (this.isDesignMode)\n return \"none\";\n var page = this.currentPage;\n if (!page)\n return \"none\";\n if (page.navigationButtonsVisibility === \"show\") {\n return \"bottom\";\n }\n if (page.navigationButtonsVisibility === \"hide\") {\n return \"none\";\n }\n return this.showNavigationButtons;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isEditMode\", {\n /**\n * Returns true if the survey in the edit mode.\n * @see mode\n */\n get: function () {\n return this.mode == \"edit\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isDisplayMode\", {\n /**\n * Returns true if the survey in the display mode.\n * @see mode\n */\n get: function () {\n return this.mode == \"display\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isUpdateValueTextOnTyping\", {\n get: function () {\n return this.textUpdateMode == \"onTyping\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isDesignMode\", {\n /**\n * Returns true if the survey in the design mode. It is used by SurveyJS Editor\n * @see setDesignMode\n */\n get: function () {\n return this._isDesignMode;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Call it to set the survey into the design mode.\n * @param value use true to set the survey into the design mode.\n */\n SurveyModel.prototype.setDesignMode = function (value) {\n this._isDesignMode = value;\n this.onIsSinglePageChanged();\n };\n Object.defineProperty(SurveyModel.prototype, \"showInvisibleElements\", {\n /**\n * Set this property to true, to show all elements in the survey, regardless their visibility. It is false by default.\n */\n get: function () {\n return this.getPropertyValue(\"showInvisibleElements\", false);\n },\n set: function (val) {\n var visPages = this.visiblePages;\n this.setPropertyValue(\"showInvisibleElements\", val);\n this.updateAllElementsVisibility(visPages);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.updateAllElementsVisibility = function (visPages) {\n for (var i = 0; i < this.pages.length; i++) {\n var page = this.pages[i];\n page.updateElementVisibility();\n if (visPages.indexOf(page) > -1 != page.isVisible) {\n this.onPageVisibleChanged.fire(this, {\n page: page,\n visible: page.isVisible\n });\n }\n }\n };\n Object.defineProperty(SurveyModel.prototype, \"areInvisibleElementsShowing\", {\n get: function () {\n return this.isDesignMode || this.showInvisibleElements;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"hasCookie\", {\n /**\n * Returns true, if a user has already completed the survey on this browser and there is a cookie about it. Survey goes to 'completed' state if the function returns true.\n * @see cookieName\n * @see setCookie\n * @see deleteCookie\n * @see state\n */\n get: function () {\n if (!this.cookieName)\n return false;\n var cookies = document.cookie;\n return cookies && cookies.indexOf(this.cookieName + \"=true\") > -1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Set the cookie with cookieName in the browser. It is done automatically on survey complete if cookieName is not empty.\n * @see cookieName\n * @see hasCookie\n * @see deleteCookie\n */\n SurveyModel.prototype.setCookie = function () {\n if (!this.cookieName)\n return;\n document.cookie =\n this.cookieName + \"=true; expires=Fri, 31 Dec 9999 0:0:0 GMT\";\n };\n /**\n * Delete the cookie with cookieName in the browser.\n * @see cookieName\n * @see hasCookie\n * @see setCookie\n */\n SurveyModel.prototype.deleteCookie = function () {\n if (!this.cookieName)\n return;\n document.cookie = this.cookieName + \"=;\";\n };\n /**\n * Call it to go to the next page. It returns false, if it is the last page. If there is an error, for example required question is empty, the function returns false as well.\n * @see isCurrentPageHasErrors\n * @see prevPage\n * @see completeLastPage\n */\n SurveyModel.prototype.nextPage = function () {\n if (this.isLastPage)\n return false;\n return this.doCurrentPageComplete(false);\n };\n SurveyModel.prototype.hasErrorsOnNavigate = function (doComplete) {\n if (this.ignoreValidation || !this.isEditMode)\n return false;\n if (this.checkErrorsMode == \"onComplete\") {\n if (!this.isLastPage)\n return false;\n if (this.hasErrors(true, true))\n return true;\n }\n else {\n if (this.isCurrentPageHasErrors)\n return true;\n }\n return this.checkForAsyncQuestionValidation(doComplete);\n };\n SurveyModel.prototype.checkForAsyncQuestionValidation = function (doComplete) {\n var _this = this;\n this.clearAsyncValidationQuesitons();\n var questions = this.currentPage.questions;\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].isRunningValidators) {\n questions[i].onCompletedAsyncValidators = function (hasErrors) {\n _this.onCompletedAsyncQuestionValidators(doComplete, hasErrors);\n };\n this.asyncValidationQuesitons.push(questions[i]);\n }\n }\n return this.asyncValidationQuesitons.length > 0;\n };\n SurveyModel.prototype.clearAsyncValidationQuesitons = function () {\n if (!!this.asyncValidationQuesitons) {\n var asynQuestions = this.asyncValidationQuesitons;\n for (var i = 0; i < asynQuestions.length; i++) {\n asynQuestions[i].onCompletedAsyncValidators = null;\n }\n }\n this.asyncValidationQuesitons = [];\n };\n SurveyModel.prototype.onCompletedAsyncQuestionValidators = function (doComplete, hasErrors) {\n if (hasErrors) {\n this.clearAsyncValidationQuesitons();\n return;\n }\n var asynQuestions = this.asyncValidationQuesitons;\n for (var i = 0; i < asynQuestions.length; i++) {\n if (asynQuestions[i].isRunningValidators)\n return;\n }\n this.doCurrentPageCompleteCore(doComplete);\n };\n Object.defineProperty(SurveyModel.prototype, \"isCurrentPageHasErrors\", {\n /**\n * Returns true, if there is any error on the current page. For example, the required question is empty or a question validation is failed.\n * @see nextPage\n */\n get: function () {\n return this.checkIsCurrentPageHasErrors();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns true, if there is an error on any visible page\n * @param fireCallback set it to true, to show errors in UI\n * @param focusOnFirstError set it to true to focus on the first question that doesn't pass the validation and make the page, where question located, the current.\n */\n SurveyModel.prototype.hasErrors = function (fireCallback, focusOnFirstError) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (focusOnFirstError === void 0) { focusOnFirstError = false; }\n var visPages = this.visiblePages;\n var firstErrorPage = null;\n var res = false;\n for (var i = 0; i < visPages.length; i++) {\n if (visPages[i].hasErrors(fireCallback, focusOnFirstError)) {\n if (!firstErrorPage)\n firstErrorPage = visPages[i];\n res = true;\n }\n }\n if (focusOnFirstError && !!firstErrorPage) {\n this.currentPage = firstErrorPage;\n }\n return res;\n };\n SurveyModel.prototype.checkIsCurrentPageHasErrors = function (isFocuseOnFirstError) {\n if (isFocuseOnFirstError === void 0) { isFocuseOnFirstError = undefined; }\n if (isFocuseOnFirstError === undefined) {\n isFocuseOnFirstError = this.focusOnFirstError;\n }\n if (this.currentPage == null)\n return true;\n var res = this.currentPage.hasErrors(true, isFocuseOnFirstError);\n this.fireValidatedErrorsOnCurrentPage();\n return res;\n };\n SurveyModel.prototype.fireValidatedErrorsOnCurrentPage = function () {\n if (this.onValidatedErrorsOnCurrentPage.isEmpty)\n return;\n var questionsOnPage = this.currentPage.questions;\n var questions = new Array();\n var errors = new Array();\n for (var i = 0; i < questionsOnPage.length; i++) {\n var q = questionsOnPage[i];\n if (q.errors.length > 0) {\n questions.push(q);\n for (var j = 0; j < q.errors.length; j++) {\n errors.push(q.errors[j]);\n }\n }\n }\n this.onValidatedErrorsOnCurrentPage.fire(this, {\n questions: questions,\n errors: errors\n });\n };\n /**\n * Call it to go to the previous page. It returns false if the current page is the first page already. It doesn't perform any checks, required questions can be empty.\n * @see isFirstPage\n */\n SurveyModel.prototype.prevPage = function () {\n if (this.isFirstPage)\n return false;\n var vPages = this.visiblePages;\n var index = vPages.indexOf(this.currentPage);\n this.currentPage = vPages[index - 1];\n };\n /**\n * Call it to complete the survey, if the current page is the last one. It returns false if there is an error on the page. If there is no errors on the page, it calls doComplete and returns true.\n * @see isCurrentPageHasErrors\n * @see nextPage\n * @see doComplete\n */\n SurveyModel.prototype.completeLastPage = function () {\n return this.doCurrentPageComplete(true);\n };\n SurveyModel.prototype.doCurrentPageComplete = function (doComplete) {\n if (this.hasErrorsOnNavigate(doComplete))\n return false;\n return this.doCurrentPageCompleteCore(doComplete);\n };\n SurveyModel.prototype.doCurrentPageCompleteCore = function (doComplete) {\n if (this.doServerValidation())\n return false;\n if (doComplete) {\n this.doComplete();\n }\n else {\n this.doNextPage();\n }\n return true;\n };\n Object.defineProperty(SurveyModel.prototype, \"isSinglePage\", {\n /**\n * Set this property to true, if you want to combine all your pages in one page. Pages will be converted into panels.\n */\n get: function () {\n return this.getPropertyValue(\"isSinglePage\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isSinglePage\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"firstPageIsStarted\", {\n /**\n * Set this property to true, to make the first page your starting page. The end-user could not comeback to the start page and it is not count in the progress.\n */\n get: function () {\n return this.getPropertyValue(\"firstPageIsStarted\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"firstPageIsStarted\", val);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.isPageStarted = function (page) {\n return (this.firstPageIsStarted && this.pages.length > 0 && this.pages[0] === page);\n };\n SurveyModel.prototype.onFirstPageIsStartedChanged = function () {\n if (this.pages.length == 0)\n return;\n this.isStartedState = this.firstPageIsStarted;\n this.pageVisibilityChanged(this.pages[0], !this.firstPageIsStarted);\n };\n SurveyModel.prototype.onIsSinglePageChanged = function () {\n if (!this.isSinglePage || this.isDesignMode) {\n if (this.origionalPages) {\n this.questionHashesClear();\n this.pages.splice(0, this.pages.length);\n for (var i = 0; i < this.origionalPages.length; i++) {\n this.pages.push(this.origionalPages[i]);\n }\n }\n this.origionalPages = null;\n }\n else {\n this.questionHashesClear();\n this.origionalPages = this.pages.slice(0, this.pages.length);\n var startIndex = this.firstPageIsStarted ? 1 : 0;\n _super.prototype.startLoadingFromJson.call(this);\n var singlePage = this.createSinglePage(startIndex);\n var deletedLen = this.pages.length - startIndex;\n this.pages.splice(startIndex, deletedLen, singlePage);\n _super.prototype.endLoadingFromJson.call(this);\n singlePage.endLoadingFromJson();\n singlePage.setSurveyImpl(this);\n this.doElementsOnLoad();\n }\n this.updateVisibleIndexes();\n };\n SurveyModel.prototype.createSinglePage = function (startIndex) {\n var single = this.createNewPage(\"all\");\n single.setSurveyImpl(this);\n for (var i = startIndex; i < this.pages.length; i++) {\n var page = this.pages[i];\n var panel = __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].createClass(\"panel\");\n single.addPanel(panel);\n var json = new __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"b\" /* JsonObject */]().toJsonObject(page);\n new __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"b\" /* JsonObject */]().toObject(json, panel);\n if (!this.showPageTitles) {\n panel.title = \"\";\n }\n }\n return single;\n };\n Object.defineProperty(SurveyModel.prototype, \"isFirstPage\", {\n /**\n * Returns true if the current page is the first one.\n */\n get: function () {\n if (this.currentPage == null)\n return true;\n return this.visiblePages.indexOf(this.currentPage) == 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isShowPrevButton\", {\n get: function () {\n if (this.isFirstPage || !this.showPrevButton)\n return false;\n var page = this.visiblePages[this.currentPageNo - 1];\n return this.getPageMaxTimeToFinish(page) <= 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isLastPage\", {\n /**\n * Returns true if the current page is the last one.\n */\n get: function () {\n if (this.currentPage == null)\n return true;\n var vPages = this.visiblePages;\n return vPages.indexOf(this.currentPage) == vPages.length - 1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Call it to complete the survey. It writes cookie if cookieName property is not empty, set the survey into 'completed' state, fire onComplete event and sendResult into [dxsurvey.com](http://www.dxsurvey.com) service if surveyPostId property is not empty. It doesn't perform any validation, unlike completeLastPage function.\n * @see cookieName\n * @see state\n * @see onComplete\n * @see surveyPostId\n * @see completeLastPage\n */\n SurveyModel.prototype.doComplete = function () {\n var onCompletingOptions = { allowComplete: true };\n this.onCompleting.fire(this, onCompletingOptions);\n if (!onCompletingOptions.allowComplete)\n return;\n var previousCookie = this.hasCookie;\n this.stopTimer();\n this.setCompleted();\n this.clearUnusedValues();\n this.setCookie();\n var self = this;\n var onCompleteOptions = {\n showDataSaving: function (text) {\n self.setCompletedState(\"saving\", text);\n },\n showDataSavingError: function (text) {\n self.setCompletedState(\"error\", text);\n },\n showDataSavingSuccess: function (text) {\n self.setCompletedState(\"success\", text);\n },\n showDataSavingClear: function (text) {\n self.setCompletedState(\"\", \"\");\n }\n };\n this.onComplete.fire(this, onCompleteOptions);\n if (!previousCookie && this.surveyPostId) {\n this.sendResult();\n }\n };\n /**\n * Start the survey. Change the mode from \"starting\" to \"running\". You need to call it, if there is a started page in your survey, otherwise it does nothing.\n * @see firstPageIsStarted\n */\n SurveyModel.prototype.start = function () {\n if (!this.firstPageIsStarted)\n return;\n this.isStartedState = false;\n this.startTimerFromUI();\n this.onStarted.fire(this, {});\n };\n Object.defineProperty(SurveyModel.prototype, \"isValidatingOnServer\", {\n /**\n * Returns true, if at the current moment the question values on the current page are validating on the server.\n * @see onServerValidateQuestions\n */\n get: function () {\n return this.getPropertyValue(\"isValidatingOnServer\", false);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.setIsValidatingOnServer = function (val) {\n if (val == this.isValidatingOnServer)\n return;\n this.setPropertyValue(\"isValidatingOnServer\", val);\n this.onIsValidatingOnServerChanged();\n };\n SurveyModel.prototype.onIsValidatingOnServerChanged = function () { };\n SurveyModel.prototype.doServerValidation = function () {\n if (!this.onServerValidateQuestions ||\n this.onServerValidateQuestions.isEmpty)\n return false;\n var self = this;\n var options = {\n data: {},\n errors: {},\n survey: this,\n complete: function () {\n self.completeServerValidation(options);\n }\n };\n for (var i = 0; i < this.currentPage.questions.length; i++) {\n var question = this.currentPage.questions[i];\n if (!question.visible)\n continue;\n var value = this.getValue(question.getValueName());\n if (!this.isValueEmpty(value))\n options.data[question.getValueName()] = value;\n }\n this.setIsValidatingOnServer(true);\n if (typeof this.onServerValidateQuestions === \"function\") {\n this.onServerValidateQuestions(this, options);\n }\n else {\n this.onServerValidateQuestions.fire(this, options);\n }\n return true;\n };\n SurveyModel.prototype.completeServerValidation = function (options) {\n this.setIsValidatingOnServer(false);\n if (!options && !options.survey)\n return;\n var self = options.survey;\n var hasErrors = false;\n if (options.errors) {\n for (var name in options.errors) {\n var question = self.getQuestionByName(name);\n if (question && question[\"errors\"]) {\n hasErrors = true;\n question[\"addError\"](new __WEBPACK_IMPORTED_MODULE_9__error__[\"a\" /* CustomError */](options.errors[name], this));\n }\n }\n }\n if (!hasErrors) {\n if (self.isLastPage)\n self.doComplete();\n else\n self.doNextPage();\n }\n };\n SurveyModel.prototype.doNextPage = function () {\n this.checkOnPageTriggers();\n if (!this.isCompleted) {\n if (this.sendResultOnPageNext) {\n this.sendResult(this.surveyPostId, this.clientId, true);\n }\n var vPages = this.visiblePages;\n var index = vPages.indexOf(this.currentPage);\n this.currentPage = vPages[index + 1];\n }\n else {\n this.doComplete();\n }\n };\n SurveyModel.prototype.setCompleted = function () {\n this.isCompleted = true;\n };\n Object.defineProperty(SurveyModel.prototype, \"processedCompletedHtml\", {\n /**\n * Returns the html for completed 'Thank you' page.\n * @see completedHtml\n */\n get: function () {\n var html = this.renderedCompletedHtml;\n if (html) {\n return this.processHtml(html);\n }\n return \"

\" + this.getLocString(\"completingSurvey\") + \"

\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"processedCompletedBeforeHtml\", {\n /**\n * Returns the html showing that the user has already completed the survey\n * @see completedHtml\n */\n get: function () {\n if (this.completedBeforeHtml) {\n return this.processHtml(this.completedBeforeHtml);\n }\n return \"

\" + this.getLocString(\"completingSurveyBefore\") + \"

\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"processedLoadingHtml\", {\n /**\n * Returns the html that shows on loading the json.\n */\n get: function () {\n if (this.loadingHtml) {\n return this.processHtml(this.loadingHtml);\n }\n return \"

\" + this.getLocString(\"loadingSurvey\") + \"

\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"progressText\", {\n /**\n * Returns the text for the current progress.\n */\n get: function () {\n if (this.currentPage == null)\n return \"\";\n if (this.progressBarType === \"questions\") {\n var questions = this.getAllQuestions();\n var answeredQuestionsCount = questions.reduce(function (a, b) { return a + (b.isEmpty() ? 0 : 1); }, 0);\n return this.getLocString(\"questionsProgressText\")[\"format\"](answeredQuestionsCount, questions.length);\n }\n if (this.progressBarType === \"correctQuestions\") {\n var questions = this.getAllQuestions();\n var correctAnswersCount = this.getCorrectedAnswerCount();\n return this.getLocString(\"questionsProgressText\")[\"format\"](correctAnswersCount, questions.length);\n }\n var vPages = this.visiblePages;\n var index = vPages.indexOf(this.currentPage) + 1;\n return this.getLocString(\"progressText\")[\"format\"](index, vPages.length);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.afterRenderSurvey = function (htmlElement) {\n this.onAfterRenderSurvey.fire(this, {\n survey: this,\n htmlElement: htmlElement\n });\n };\n SurveyModel.prototype.updateQuestionCssClasses = function (question, cssClasses) {\n this.onUpdateQuestionCssClasses.fire(this, {\n question: question,\n cssClasses: cssClasses\n });\n };\n SurveyModel.prototype.updatePanelCssClasses = function (panel, cssClasses) {\n this.onUpdatePanelCssClasses.fire(this, {\n panel: panel,\n cssClasses: cssClasses\n });\n };\n SurveyModel.prototype.afterRenderPage = function (htmlElement) {\n if (this.onAfterRenderPage.isEmpty)\n return;\n this.onAfterRenderPage.fire(this, {\n page: this.currentPage,\n htmlElement: htmlElement\n });\n };\n SurveyModel.prototype.afterRenderQuestion = function (question, htmlElement) {\n this.onAfterRenderQuestion.fire(this, {\n question: question,\n htmlElement: htmlElement\n });\n };\n SurveyModel.prototype.afterRenderPanel = function (panel, htmlElement) {\n this.onAfterRenderPanel.fire(this, {\n panel: panel,\n htmlElement: htmlElement\n });\n };\n SurveyModel.prototype.matrixBeforeRowAdded = function (options) {\n this.onMatrixBeforeRowAdded.fire(this, options);\n };\n SurveyModel.prototype.matrixRowAdded = function (question) {\n this.onMatrixRowAdded.fire(this, { question: question });\n };\n SurveyModel.prototype.getQuestionByValueNameFromArray = function (valueName, name, index) {\n var questions = this.getQuestionsByValueNameCore(valueName);\n if (!questions)\n return;\n for (var i = 0; i < questions.length; i++) {\n var res = questions[i].getQuestionFromArray(name, index);\n if (!!res)\n return res;\n }\n return null;\n };\n SurveyModel.prototype.matrixRowRemoved = function (question, rowIndex, row) {\n this.onMatrixRowRemoved.fire(this, {\n question: question,\n rowIndex: rowIndex,\n row: row\n });\n };\n SurveyModel.prototype.matrixAllowRemoveRow = function (question, rowIndex, row) {\n var options = {\n question: question,\n rowIndex: rowIndex,\n row: row,\n allow: true\n };\n this.onMatrixAllowRemoveRow.fire(this, options);\n return options.allow;\n };\n SurveyModel.prototype.matrixCellCreated = function (question, options) {\n options.question = question;\n this.onMatrixCellCreated.fire(this, options);\n };\n SurveyModel.prototype.matrixAfterCellRender = function (question, options) {\n options.question = question;\n this.onMatrixAfterCellRender.fire(this, options);\n };\n SurveyModel.prototype.matrixCellValueChanged = function (question, options) {\n options.question = question;\n this.onMatrixCellValueChanged.fire(this, options);\n };\n SurveyModel.prototype.matrixCellValueChanging = function (question, options) {\n options.question = question;\n this.onMatrixCellValueChanging.fire(this, options);\n };\n SurveyModel.prototype.matrixCellValidate = function (question, options) {\n options.question = question;\n this.onMatrixCellValidate.fire(this, options);\n return options.error ? new __WEBPACK_IMPORTED_MODULE_9__error__[\"a\" /* CustomError */](options.error, this) : null;\n };\n SurveyModel.prototype.dynamicPanelAdded = function (question) {\n this.onDynamicPanelAdded.fire(this, { question: question });\n };\n SurveyModel.prototype.dynamicPanelRemoved = function (question, panelIndex) {\n this.onDynamicPanelRemoved.fire(this, {\n question: question,\n panelIndex: panelIndex\n });\n };\n SurveyModel.prototype.dynamicPanelItemValueChanged = function (question, options) {\n options.question = question;\n this.onDynamicPanelItemValueChanged.fire(this, options);\n };\n SurveyModel.prototype.dragAndDropAllow = function (options) {\n options.allow = true;\n this.onDragDropAllow.fire(this, options);\n return options.allow;\n };\n /**\n * Upload the file into server\n * @param name question name\n * @param file uploading file\n * @param storeDataAsText set it to true to encode file content into the survey results\n * @param uploadingCallback a call back function to get the status on uploading the file\n */\n SurveyModel.prototype.uploadFiles = function (name, files, uploadingCallback) {\n if (this.onUploadFiles.isEmpty) {\n uploadingCallback(\"error\", files);\n }\n else {\n this.onUploadFiles.fire(this, {\n name: name,\n files: files || [],\n callback: uploadingCallback\n });\n }\n if (this.surveyPostId) {\n this.uploadFilesCore(name, files, uploadingCallback);\n }\n };\n /**\n * Download the file from server\n * @param name question name\n * @param fileValue single file question value\n * @param callback a call back function to get the status on downloading the file and the downloaded file content\n */\n SurveyModel.prototype.downloadFile = function (questionName, fileValue, callback) {\n if (this.onDownloadFile.isEmpty) {\n !!callback && callback(\"success\", fileValue.content || fileValue);\n }\n this.onDownloadFile.fire(this, {\n name: questionName,\n content: fileValue.content || fileValue,\n fileValue: fileValue,\n callback: callback\n });\n };\n /**\n * Clear files from server\n * @param name question name\n * @param value file question value\n * @param callback a call back function to get the status of the clearing operation\n */\n SurveyModel.prototype.clearFiles = function (name, value, fileName, callback) {\n if (this.onClearFiles.isEmpty) {\n !!callback && callback(\"success\", value);\n }\n this.onClearFiles.fire(this, {\n name: name,\n value: value,\n fileName: fileName,\n callback: callback\n });\n };\n SurveyModel.prototype.updateChoicesFromServer = function (question, choices, serverResult) {\n var options = {\n question: question,\n choices: choices,\n serverResult: serverResult\n };\n this.onLoadChoicesFromServer.fire(this, options);\n return options.choices;\n };\n SurveyModel.prototype.createSurveyService = function () {\n return new __WEBPACK_IMPORTED_MODULE_7__dxSurveyService__[\"a\" /* dxSurveyService */]();\n };\n SurveyModel.prototype.uploadFilesCore = function (name, files, uploadingCallback) {\n var _this = this;\n var responses = [];\n files.forEach(function (file) {\n if (uploadingCallback)\n uploadingCallback(\"uploading\", file);\n _this.createSurveyService().sendFile(_this.surveyPostId, file, function (success, response) {\n if (success) {\n responses.push({ content: response, file: file });\n if (responses.length === files.length) {\n if (uploadingCallback)\n uploadingCallback(\"success\", responses);\n }\n }\n else {\n if (uploadingCallback)\n uploadingCallback(\"error\", { response: response, file: file });\n }\n });\n });\n };\n SurveyModel.prototype.getPage = function (index) {\n return this.pages[index];\n };\n /**\n * Add a page into the survey\n * @param page\n * @see addNewPage\n */\n SurveyModel.prototype.addPage = function (page) {\n if (page == null)\n return;\n this.pages.push(page);\n this.updateVisibleIndexes();\n };\n /**\n * Creates a new page and adds it into the survey. Genarates a new name if the name parameter is not set.\n * @param name a page name\n * @see addPage\n */\n SurveyModel.prototype.addNewPage = function (name) {\n if (name === void 0) { name = null; }\n var page = this.createNewPage(name);\n this.addPage(page);\n return page;\n };\n /**\n * Remove the page from the survey\n * @param page\n */\n SurveyModel.prototype.removePage = function (page) {\n var index = this.pages.indexOf(page);\n if (index < 0)\n return;\n this.pages.splice(index, 1);\n if (this.currentPageValue == page) {\n this.currentPage = this.pages.length > 0 ? this.pages[0] : null;\n }\n this.updateVisibleIndexes();\n };\n /**\n * Returns a question by its name\n * @param name a question name\n * @param caseInsensitive\n * @see getQuestionByValueName\n */\n SurveyModel.prototype.getQuestionByName = function (name, caseInsensitive) {\n if (caseInsensitive === void 0) { caseInsensitive = false; }\n var hash = !!caseInsensitive\n ? this.questionHashes.namesInsensitive\n : this.questionHashes.names;\n var res = hash[name];\n if (!res)\n return null;\n return res[0];\n };\n /**\n * Returns a question by its value name\n * @param valueName a question name\n * @param caseInsensitive\n * @see getQuestionByName\n * @see Question.valueName\n */\n SurveyModel.prototype.getQuestionByValueName = function (valueName, caseInsensitive) {\n if (caseInsensitive === void 0) { caseInsensitive = false; }\n var res = this.getQuestionsByValueNameCore(valueName, caseInsensitive);\n return !!res ? res[0] : null;\n };\n SurveyModel.prototype.getQuestionsByValueNameCore = function (valueName, caseInsensitive) {\n if (caseInsensitive === void 0) { caseInsensitive = false; }\n var hash = !!caseInsensitive\n ? this.questionHashes.valueNamesInsensitive\n : this.questionHashes.valueNames;\n var res = hash[valueName];\n if (!res)\n return null;\n return res;\n };\n /**\n * Get a list of questions by their names\n * @param names the array of names\n * @param caseInsensitive\n */\n SurveyModel.prototype.getQuestionsByNames = function (names, caseInsensitive) {\n if (caseInsensitive === void 0) { caseInsensitive = false; }\n var result = [];\n if (!names)\n return result;\n for (var i = 0; i < names.length; i++) {\n if (!names[i])\n continue;\n var question = this.getQuestionByName(names[i], caseInsensitive);\n if (question)\n result.push(question);\n }\n return result;\n };\n /**\n * Returns a page on which an element (question or panel) is placed.\n * @param element Question or Panel\n */\n SurveyModel.prototype.getPageByElement = function (element) {\n for (var i = 0; i < this.pages.length; i++) {\n var page = this.pages[i];\n if (page.containsElement(element))\n return page;\n }\n return null;\n };\n /**\n * Returns a page on which a question is located\n * @param question\n */\n SurveyModel.prototype.getPageByQuestion = function (question) {\n return this.getPageByElement(question);\n };\n /**\n * Returns a page by it's name.\n * @param name\n */\n SurveyModel.prototype.getPageByName = function (name) {\n for (var i = 0; i < this.pages.length; i++) {\n if (this.pages[i].name == name)\n return this.pages[i];\n }\n return null;\n };\n /**\n * Rertuns a list of pages by their names\n * @param names a list of pages names\n */\n SurveyModel.prototype.getPagesByNames = function (names) {\n var result = [];\n if (!names)\n return result;\n for (var i = 0; i < names.length; i++) {\n if (!names[i])\n continue;\n var page = this.getPageByName(names[i]);\n if (page)\n result.push(page);\n }\n return result;\n };\n /**\n * Returns the list of all questions in the survey\n * @param visibleOnly set it true, if you want to get only visible questions\n */\n SurveyModel.prototype.getAllQuestions = function (visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n var result = new Array();\n for (var i = 0; i < this.pages.length; i++) {\n this.pages[i].addQuestionsToList(result, visibleOnly, includingDesignTime);\n }\n return result;\n };\n /**\n * Returns quiz questions. All visible questions that has input(s) widgets.\n * @see getQuizQuestionCount\n */\n SurveyModel.prototype.getQuizQuestions = function () {\n var result = new Array();\n var startIndex = this.firstPageIsStarted ? 1 : 0;\n for (var i = startIndex; i < this.pages.length; i++) {\n if (!this.pages[i].isVisible)\n continue;\n var questions = this.pages[i].questions;\n for (var j = 0; j < questions.length; j++) {\n var q = questions[j];\n if (q.quizQuestionCount > 0) {\n result.push(q);\n }\n }\n }\n return result;\n };\n /**\n * Returns a panel by its name\n * @param name a panel name\n * @param caseInsensitive\n * @see getQuestionByName\n */\n SurveyModel.prototype.getPanelByName = function (name, caseInsensitive) {\n if (caseInsensitive === void 0) { caseInsensitive = false; }\n var panels = this.getAllPanels();\n if (caseInsensitive)\n name = name.toLowerCase();\n for (var i = 0; i < panels.length; i++) {\n var panelName = panels[i].name;\n if (caseInsensitive)\n panelName = panelName.toLowerCase();\n if (panelName == name)\n return panels[i];\n }\n return null;\n };\n /**\n * Returns the list of all panels in the survey\n */\n SurveyModel.prototype.getAllPanels = function (visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n var result = new Array();\n for (var i = 0; i < this.pages.length; i++) {\n this.pages[i].addPanelsIntoList(result, visibleOnly, includingDesignTime);\n }\n return result;\n };\n SurveyModel.prototype.createNewPage = function (name) {\n return new __WEBPACK_IMPORTED_MODULE_4__page__[\"a\" /* PageModel */](name);\n };\n SurveyModel.prototype.questionOnValueChanging = function (valueName, newValue) {\n if (this.onValueChanging.isEmpty)\n return newValue;\n var options = {\n name: valueName,\n question: this.getQuestionByValueName(valueName),\n value: newValue,\n oldValue: this.getValue(valueName)\n };\n this.onValueChanging.fire(this, options);\n return options.value;\n };\n SurveyModel.prototype.updateQuestionValue = function (valueName, newValue) {\n if (this.isLoadingFromJson)\n return;\n var questions = this.getQuestionsByValueNameCore(valueName);\n if (!!questions) {\n for (var i = 0; i < questions.length; i++) {\n if (this.isTwoValueEquals(questions[i].value, newValue))\n continue;\n questions[i].updateValueFromSurvey(newValue);\n }\n }\n };\n SurveyModel.prototype.notifyQuestionOnValueChanged = function (valueName, newValue) {\n if (this.isLoadingFromJson)\n return;\n var questions = this.getQuestionsByValueNameCore(valueName);\n if (!!questions) {\n for (var i = 0; i < questions.length; i++) {\n var question = questions[i];\n if (this.checkErrorsMode == \"onValueChanged\") {\n var oldErrorCount = question.errors.length;\n question.hasErrors(true);\n if (oldErrorCount > 0 || question.errors.length > 0) {\n this.fireValidatedErrorsOnCurrentPage();\n }\n }\n question.onSurveyValueChanged(newValue);\n this.onValueChanged.fire(this, {\n name: valueName,\n question: question,\n value: newValue\n });\n }\n }\n else {\n this.onValueChanged.fire(this, {\n name: valueName,\n question: null,\n value: newValue\n });\n }\n this.notifyElementsOnAnyValueOrVariableChanged(valueName);\n };\n SurveyModel.prototype.notifyElementsOnAnyValueOrVariableChanged = function (name) {\n if (this.isEndLoadingFromJson === \"processing\")\n return;\n for (var i = 0; i < this.pages.length; i++) {\n this.pages[i].onAnyValueChanged(name);\n }\n if (!this.isEndLoadingFromJson) {\n this.locStrsChanged();\n }\n };\n SurveyModel.prototype.updateAllQuestionsValue = function () {\n var questions = this.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n var valName = q.getValueName();\n q.updateValueFromSurvey(this.getValue(valName));\n if (q.requireUpdateCommentValue) {\n q.updateCommentFromSurvey(this.getComment(valName));\n }\n }\n };\n SurveyModel.prototype.notifyAllQuestionsOnValueChanged = function () {\n var questions = this.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n questions[i].onSurveyValueChanged(this.getValue(questions[i].getValueName()));\n }\n };\n SurveyModel.prototype.checkOnPageTriggers = function () {\n var questions = this.getCurrentPageQuestions();\n var values = {};\n for (var i = 0; i < questions.length; i++) {\n var question = questions[i];\n var name = question.getValueName();\n values[name] = this.getValue(name);\n }\n this.checkTriggers(values, true);\n };\n SurveyModel.prototype.getCurrentPageQuestions = function () {\n var result = [];\n var page = this.currentPage;\n if (!page)\n return result;\n for (var i = 0; i < page.questions.length; i++) {\n var question = page.questions[i];\n if (!question.visible || !question.name)\n continue;\n result.push(question);\n }\n return result;\n };\n SurveyModel.prototype.checkTriggers = function (key, isOnNextPage) {\n if (this.isCompleted || this.triggers.length == 0)\n return;\n var values = this.getFilteredValues();\n var properties = this.getFilteredProperties();\n for (var i = 0; i < this.triggers.length; i++) {\n var trigger = this.triggers[i];\n if (trigger.isOnNextPage == isOnNextPage) {\n trigger.checkExpression(key, values, properties);\n }\n }\n };\n SurveyModel.prototype.doElementsOnLoad = function () {\n for (var i = 0; i < this.pages.length; i++) {\n this.pages[i].onSurveyLoad();\n }\n };\n SurveyModel.prototype.runConditions = function () {\n if (this.isCompleted || this.isEndLoadingFromJson === \"processing\")\n return;\n var pages = this.pages;\n var values = this.getFilteredValues();\n var properties = this.getFilteredProperties();\n for (var i = 0; i < this.calculatedValues.length; i++) {\n this.calculatedValues[i].runExpression(values, properties);\n }\n for (var i = 0; i < pages.length; i++) {\n pages[i].runCondition(values, properties);\n }\n };\n /**\n * Send the survey result into [dxsurvey.com](http://www.dxsurvey.com) service.\n * @param postId [dxsurvey.com](http://www.dxsurvey.com) service postId\n * @param clientId Typically a customer e-mail or an identificator\n * @param isPartialCompleted Set it to true if the survey is not completed yet and it is an intermediate results\n * @see surveyPostId\n * @see clientId\n */\n SurveyModel.prototype.sendResult = function (postId, clientId, isPartialCompleted) {\n if (postId === void 0) { postId = null; }\n if (clientId === void 0) { clientId = null; }\n if (isPartialCompleted === void 0) { isPartialCompleted = false; }\n if (!this.isEditMode)\n return;\n if (isPartialCompleted && this.onPartialSend) {\n this.onPartialSend.fire(this, null);\n }\n if (!postId && this.surveyPostId) {\n postId = this.surveyPostId;\n }\n if (!postId)\n return;\n if (clientId) {\n this.clientId = clientId;\n }\n if (isPartialCompleted && !this.clientId)\n return;\n var self = this;\n if (this.surveyShowDataSaving) {\n this.setCompletedState(\"saving\", \"\");\n }\n this.createSurveyService().sendResult(postId, this.data, function (success, response, request) {\n if (self.surveyShowDataSaving) {\n if (success) {\n self.setCompletedState(\"success\", \"\");\n }\n else {\n self.setCompletedState(\"error\", \"\");\n }\n }\n self.onSendResult.fire(self, {\n success: success,\n response: response,\n request: request\n });\n }, this.clientId, isPartialCompleted);\n };\n /**\n * It calls the [dxsurvey.com](http://www.dxsurvey.com) service and on callback fires onGetResult event with all answers that your users made for a question.\n * @param resultId [dxsurvey.com](http://www.dxsurvey.com) service resultId\n * @param name The question name\n * @see onGetResult\n */\n SurveyModel.prototype.getResult = function (resultId, name) {\n var self = this;\n this.createSurveyService().getResult(resultId, name, function (success, data, dataList, response) {\n self.onGetResult.fire(self, {\n success: success,\n data: data,\n dataList: dataList,\n response: response\n });\n });\n };\n /**\n * Loads the survey Json from the [dxsurvey.com](http://www.dxsurvey.com) service. If clientId is not null and user has already completed the survey, the survey will go into \"completedbefore\" state.\n * @param surveyId [dxsurvey.com](http://www.dxsurvey.com) service surveyId\n * @param clientId indentificator for a user, for example e-mail or unique customer id in your web application.\n * @see state\n */\n SurveyModel.prototype.loadSurveyFromService = function (surveyId, cliendId) {\n if (surveyId === void 0) { surveyId = null; }\n if (cliendId === void 0) { cliendId = null; }\n if (surveyId) {\n this.surveyId = surveyId;\n }\n if (cliendId) {\n this.clientId = cliendId;\n }\n var self = this;\n this.isLoading = true;\n this.onLoadingSurveyFromService();\n if (cliendId) {\n this.createSurveyService().getSurveyJsonAndIsCompleted(this.surveyId, this.clientId, function (success, json, isCompleted, response) {\n self.isLoading = false;\n if (success) {\n self.isCompletedBefore = isCompleted == \"completed\";\n self.loadSurveyFromServiceJson(json);\n }\n });\n }\n else {\n this.createSurveyService().loadSurvey(this.surveyId, function (success, result, response) {\n self.isLoading = false;\n if (success) {\n self.loadSurveyFromServiceJson(result);\n }\n });\n }\n };\n SurveyModel.prototype.loadSurveyFromServiceJson = function (json) {\n if (!json)\n return;\n this.setJsonObject(json);\n this.notifyAllQuestionsOnValueChanged();\n this.onLoadSurveyFromService();\n };\n SurveyModel.prototype.onLoadingSurveyFromService = function () { };\n SurveyModel.prototype.onLoadSurveyFromService = function () { };\n SurveyModel.prototype.updateVisibleIndexes = function () {\n if (this.isLoadingFromJson || !!this.isEndLoadingFromJson)\n return;\n this.updatePageVisibleIndexes(this.showPageNumbers);\n if (this.showQuestionNumbers == \"onPage\") {\n var visPages = this.visiblePages;\n for (var i = 0; i < visPages.length; i++) {\n visPages[i].setVisibleIndex(0);\n }\n }\n else {\n var index = this.showQuestionNumbers == \"on\" ? 0 : -1;\n for (var i = 0; i < this.pages.length; i++) {\n index += this.pages[i].setVisibleIndex(index);\n }\n }\n };\n SurveyModel.prototype.updatePageVisibleIndexes = function (showIndex) {\n var index = 0;\n for (var i = 0; i < this.pages.length; i++) {\n this.pages[i].visibleIndex = this.pages[i].visible ? index++ : -1;\n this.pages[i].num =\n showIndex && this.pages[i].visible\n ? this.pages[i].visibleIndex + 1\n : -1;\n }\n };\n SurveyModel.prototype.setJsonObject = function (jsonObj) {\n if (!jsonObj)\n return;\n this.questionHashesClear();\n this.jsonErrors = null;\n var jsonConverter = new __WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"b\" /* JsonObject */]();\n jsonConverter.toObject(jsonObj, this);\n if (jsonConverter.errors.length > 0) {\n this.jsonErrors = jsonConverter.errors;\n }\n };\n SurveyModel.prototype.endLoadingFromJson = function () {\n this.isEndLoadingFromJson = \"processing\";\n this.isStartedState = this.firstPageIsStarted;\n this.onIsSinglePageChanged();\n _super.prototype.endLoadingFromJson.call(this);\n if (this.hasCookie) {\n this.doComplete();\n }\n this.doElementsOnLoad();\n this.isEndLoadingFromJson = \"conditions\";\n this.runConditions();\n this.notifyElementsOnAnyValueOrVariableChanged(\"\");\n this.isEndLoadingFromJson = null;\n this.updateVisibleIndexes();\n };\n SurveyModel.prototype.onBeforeCreating = function () { };\n SurveyModel.prototype.onCreating = function () { };\n SurveyModel.prototype.getProcessedTextValue = function (textValue) {\n this.getProcessedTextValueCore(textValue);\n if (!this.onProcessTextValue.isEmpty) {\n var wasEmpty = this.isValueEmpty(textValue.value);\n this.onProcessTextValue.fire(this, textValue);\n textValue.isExists =\n textValue.isExists || (wasEmpty && !this.isValueEmpty(textValue.value));\n }\n };\n SurveyModel.prototype.getProcessedTextValueCore = function (textValue) {\n var name = textValue.name.toLocaleLowerCase();\n if ([\"no\", \"require\", \"title\"].indexOf(name) !== -1) {\n return;\n }\n if (name === \"pageno\") {\n textValue.isExists = true;\n var page = this.currentPage;\n textValue.value = page != null ? this.visiblePages.indexOf(page) + 1 : 0;\n return;\n }\n if (name === \"pagecount\") {\n textValue.isExists = true;\n textValue.value = this.visiblePageCount;\n return;\n }\n if (name === \"locale\") {\n textValue.isExists = true;\n textValue.value = !!this.locale\n ? this.locale\n : __WEBPACK_IMPORTED_MODULE_8__surveyStrings__[\"a\" /* surveyLocalization */].defaultLocale;\n return;\n }\n if (name === \"correctedanswers\" || name === \"correctedanswercount\") {\n textValue.isExists = true;\n textValue.value = this.getCorrectedAnswerCount();\n return;\n }\n if (name === \"incorrectedanswers\" || name === \"incorrectedanswercount\") {\n textValue.isExists = true;\n textValue.value = this.getInCorrectedAnswerCount();\n return;\n }\n if (name === \"questioncount\") {\n textValue.isExists = true;\n textValue.value = this.getQuizQuestionCount();\n return;\n }\n var firstName = new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]().getFirstName(name, this.data);\n var variable = this.getVariable(name);\n if (variable !== undefined) {\n textValue.isExists = true;\n textValue.value = variable;\n return;\n }\n if (!!firstName)\n firstName = firstName.toLowerCase();\n var question = this.getQuestionByValueName(firstName, true);\n if (question) {\n textValue.isExists = true;\n name = question.getValueName() + name.substr(firstName.length);\n name = name.toLocaleLowerCase();\n var values = {};\n values[firstName] = textValue.returnDisplayValue\n ? question.getDisplayValue(false, undefined)\n : question.value;\n textValue.value = new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]().getValue(name, values);\n return;\n }\n var value = this.getValue(textValue.name);\n if (value !== undefined) {\n textValue.isExists = true;\n textValue.value = value;\n }\n };\n SurveyModel.prototype.clearUnusedValues = function () {\n var questions = this.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n questions[i].clearUnusedValues();\n }\n if (this.clearInvisibleValues != \"none\") {\n this.clearInvisibleQuestionValues();\n }\n };\n SurveyModel.prototype.hasVisibleQuestionByValueName = function (valueName) {\n var questions = this.getQuestionsByValueNameCore(valueName);\n if (!questions)\n return false;\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].isVisible)\n return true;\n }\n return false;\n };\n SurveyModel.prototype.questionCountByValueName = function (valueName) {\n var questions = this.getQuestionsByValueNameCore(valueName);\n return !!questions ? questions.length : 0;\n };\n SurveyModel.prototype.clearInvisibleQuestionValues = function () {\n var questions = this.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n questions[i].clearValueIfInvisible();\n }\n };\n /**\n * Returns a variable value. Variable, unlike values, are not stored in the survey results.\n * @param name A variable name\n * @see SetVariable\n */\n SurveyModel.prototype.getVariable = function (name) {\n if (!name)\n return null;\n name = name.toLowerCase();\n var res = this.variablesHash[name];\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(res))\n return res;\n if (name.indexOf(\".\") > -1 || name.indexOf(\"[\") > -1) {\n if (new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]().hasValue(name, this.variablesHash))\n return new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]().getValue(name, this.variablesHash);\n }\n return res;\n };\n /**\n * Sets a variable value. Variable, unlike values, are not stored in the survey results.\n * @param name A variable name\n * @param newValue\n * @see GetVariable\n */\n SurveyModel.prototype.setVariable = function (name, newValue) {\n if (!name)\n return;\n name = name.toLowerCase();\n this.variablesHash[name] = newValue;\n this.notifyElementsOnAnyValueOrVariableChanged(name);\n this.runConditions();\n };\n //ISurvey data\n SurveyModel.prototype.getUnbindValue = function (value) {\n return __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].getUnbindValue(value);\n };\n /**\n * Returns a question value\n * @param name A question name\n * @see data\n * @see setValue\n */\n SurveyModel.prototype.getValue = function (name) {\n if (!name || name.length == 0)\n return null;\n var value = this.getDataValueCore(this.valuesHash, name);\n return this.getUnbindValue(value);\n };\n /**\n * Sets a question value. It runs all triggers and conditions (visibleIf properties). Goes to the next page if goNextPageAutomatic is true and all questions on the current page are answered correctly.\n * @param name A question name\n * @param newValue\n * @see data\n * @see getValue\n * @see PageModel.visibleIf\n * @see Question.visibleIf\n * @see goNextPageAutomatic\n */\n SurveyModel.prototype.setValue = function (name, newQuestionValue, locNotification) {\n if (locNotification === void 0) { locNotification = false; }\n var newValue = this.questionOnValueChanging(name, newQuestionValue);\n if (this.isValueEqual(name, newValue) &&\n this.isTwoValueEquals(newValue, newQuestionValue))\n return;\n if (this.isValueEmpty(newValue)) {\n this.deleteDataValueCore(this.valuesHash, name);\n }\n else {\n newValue = this.getUnbindValue(newValue);\n this.setDataValueCore(this.valuesHash, name, newValue);\n }\n this.updateQuestionValue(name, newValue);\n if (locNotification === true)\n return;\n var triggerKeys = {};\n triggerKeys[name] = newValue;\n this.checkTriggers(triggerKeys, false);\n this.runConditions();\n this.notifyQuestionOnValueChanged(name, newValue);\n if (locNotification !== \"text\") {\n this.tryGoNextPageAutomatic(name);\n }\n };\n SurveyModel.prototype.isValueEqual = function (name, newValue) {\n if (newValue === \"\" || newValue === undefined)\n newValue = null;\n var oldValue = this.getValue(name);\n if (oldValue === \"\" || oldValue === undefined)\n oldValue = null;\n if (newValue === null || oldValue === null)\n return newValue === oldValue;\n return this.isTwoValueEquals(newValue, oldValue);\n };\n SurveyModel.prototype.doOnPageAdded = function (page) {\n page.setSurveyImpl(this);\n if (!page.name)\n page.name = this.generateNewName(this.pages, \"page\");\n this.questionHashesPanelAdded(page);\n var options = { page: page };\n this.onPageAdded.fire(this, options);\n };\n SurveyModel.prototype.generateNewName = function (elements, baseName) {\n var keys = {};\n for (var i = 0; i < elements.length; i++)\n keys[elements[i][\"name\"]] = true;\n var index = 1;\n while (keys[baseName + index])\n index++;\n return baseName + index;\n };\n SurveyModel.prototype.tryGoNextPageAutomatic = function (name) {\n if (!!this.isEndLoadingFromJson ||\n !this.goNextPageAutomatic ||\n !this.currentPage)\n return;\n var question = this.getQuestionByValueName(name);\n if (!question ||\n (!!question &&\n (!question.visible || !question.supportGoNextPageAutomatic())))\n return;\n var questions = this.getCurrentPageQuestions();\n if (questions.indexOf(question) < 0)\n return;\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].hasInput && questions[i].isEmpty())\n return;\n }\n if (!this.checkIsCurrentPageHasErrors(false)) {\n if (!this.isLastPage) {\n this.nextPage();\n }\n else {\n if (this.goNextPageAutomatic === true &&\n this.allowCompleteSurveyAutomatic) {\n this.completeLastPage();\n }\n }\n }\n };\n /**\n * Returns the comment value\n * @param name\n * @see setComment\n */\n SurveyModel.prototype.getComment = function (name) {\n var result = this.data[name + this.commentPrefix];\n if (result == null)\n result = \"\";\n return result;\n };\n /**\n * Set the comment value\n * @param name\n * @param newValue\n * @see getComment\n */\n SurveyModel.prototype.setComment = function (name, newValue, locNotification) {\n if (locNotification === void 0) { locNotification = false; }\n if (!newValue)\n newValue = \"\";\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isTwoValueEquals(newValue, this.getComment(name)))\n return;\n var commentName = name + this.commentPrefix;\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(newValue)) {\n this.deleteDataValueCore(this.valuesHash, commentName);\n }\n else {\n this.setDataValueCore(this.valuesHash, commentName, newValue);\n }\n var questions = this.getQuestionsByValueNameCore(name);\n if (!!questions) {\n for (var i = 0; i < questions.length; i++) {\n questions[i].updateCommentFromSurvey(newValue);\n }\n }\n if (locNotification !== \"text\") {\n this.tryGoNextPageAutomatic(name);\n }\n var question = this.getQuestionByName(name);\n if (question) {\n this.onValueChanged.fire(this, {\n name: commentName,\n question: question,\n value: newValue\n });\n }\n };\n /**\n * Remove the value from the survey result.\n * @param {string} name The name of the value. Typically it is a question name\n */\n SurveyModel.prototype.clearValue = function (name) {\n this.setValue(name, null);\n this.setComment(name, null);\n };\n Object.defineProperty(SurveyModel.prototype, \"clearValueOnDisableItems\", {\n /**\n * Set this value to true, to clear value on disable items in checkbox, dropdown and radiogroup questions.\n * By default values are not cleared on disabled the corresponded items. This property is not persisted in survey json and you have to set it in code.\n */\n get: function () {\n return this.getPropertyValue(\"clearValueOnDisableItems\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"clearValueOnDisableItems\", val);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.questionVisibilityChanged = function (question, newValue) {\n this.updateVisibleIndexes();\n this.onVisibleChanged.fire(this, {\n question: question,\n name: question.name,\n visible: newValue\n });\n if (question &&\n !question.visible &&\n this.clearInvisibleValues == \"onHidden\") {\n question.clearValue();\n }\n };\n SurveyModel.prototype.pageVisibilityChanged = function (page, newValue) {\n this.updateVisibleIndexes();\n this.onPageVisibleChanged.fire(this, { page: page, visible: newValue });\n };\n SurveyModel.prototype.panelVisibilityChanged = function (panel, newValue) {\n this.updateVisibleIndexes();\n this.onPanelVisibleChanged.fire(this, { panel: panel, visible: newValue });\n };\n SurveyModel.prototype.questionAdded = function (question, index, parentPanel, rootPanel) {\n if (!question.name) {\n question.name = this.generateNewName(this.getAllQuestions(false, true), \"question\");\n }\n if (!!question.page) {\n this.questionHashesAdded(question);\n }\n if (!this.isLoadingFromJson) {\n this.updateVisibleIndexes();\n }\n this.onQuestionAdded.fire(this, {\n question: question,\n name: question.name,\n index: index,\n parentPanel: parentPanel,\n rootPanel: rootPanel\n });\n };\n SurveyModel.prototype.questionRemoved = function (question) {\n this.questionHashesRemoved(question, question.name, question.getValueName());\n this.updateVisibleIndexes();\n this.onQuestionRemoved.fire(this, {\n question: question,\n name: question.name\n });\n };\n SurveyModel.prototype.questionRenamed = function (question, oldName, oldValueName) {\n this.questionHashesRemoved(question, oldName, oldValueName);\n this.questionHashesAdded(question);\n };\n SurveyModel.prototype.questionHashesClear = function () {\n this.questionHashes.names = {};\n this.questionHashes.namesInsensitive = {};\n this.questionHashes.valueNames = {};\n this.questionHashes.valueNamesInsensitive = {};\n };\n SurveyModel.prototype.questionHashesPanelAdded = function (panel) {\n if (this.isLoadingFromJson)\n return;\n var questions = panel.questions;\n for (var i = 0; i < questions.length; i++) {\n this.questionHashesAdded(questions[i]);\n }\n };\n SurveyModel.prototype.questionHashesAdded = function (question) {\n this.questionHashAddedCore(this.questionHashes.names, question, question.name);\n this.questionHashAddedCore(this.questionHashes.namesInsensitive, question, question.name.toLowerCase());\n this.questionHashAddedCore(this.questionHashes.valueNames, question, question.getValueName());\n this.questionHashAddedCore(this.questionHashes.valueNamesInsensitive, question, question.getValueName().toLowerCase());\n };\n SurveyModel.prototype.questionHashesRemoved = function (question, name, valueName) {\n if (!!name) {\n this.questionHashRemovedCore(this.questionHashes.names, question, name);\n this.questionHashRemovedCore(this.questionHashes.namesInsensitive, question, name.toLowerCase());\n }\n if (!!valueName) {\n this.questionHashRemovedCore(this.questionHashes.valueNames, question, valueName);\n this.questionHashRemovedCore(this.questionHashes.valueNamesInsensitive, question, valueName.toLowerCase());\n }\n };\n SurveyModel.prototype.questionHashAddedCore = function (hash, question, name) {\n var res = hash[name];\n if (!!res) {\n var res = hash[name];\n if (res.indexOf(question) < 0) {\n res.push(question);\n }\n }\n else {\n hash[name] = [question];\n }\n };\n SurveyModel.prototype.questionHashRemovedCore = function (hash, question, name) {\n var res = hash[name];\n if (!res)\n return;\n var index = res.indexOf(question);\n if (index > -1) {\n res.splice(index, 1);\n }\n if (res.length == 0) {\n delete hash[name];\n }\n };\n SurveyModel.prototype.panelAdded = function (panel, index, parentPanel, rootPanel) {\n if (!panel.name) {\n panel.name = this.generateNewName(this.getAllPanels(false, true), \"panel\");\n }\n this.questionHashesPanelAdded(panel);\n this.updateVisibleIndexes();\n this.onPanelAdded.fire(this, {\n panel: panel,\n name: panel.name,\n index: index,\n parentPanel: parentPanel,\n rootPanel: rootPanel\n });\n };\n SurveyModel.prototype.panelRemoved = function (panel) {\n this.updateVisibleIndexes();\n this.onPanelRemoved.fire(this, { panel: panel, name: panel.name });\n };\n SurveyModel.prototype.validateQuestion = function (question) {\n if (this.onValidateQuestion.isEmpty)\n return null;\n var options = {\n name: question.name,\n question: question,\n value: question.value,\n error: null\n };\n this.onValidateQuestion.fire(this, options);\n return options.error ? new __WEBPACK_IMPORTED_MODULE_9__error__[\"a\" /* CustomError */](options.error, this) : null;\n };\n SurveyModel.prototype.validatePanel = function (panel) {\n if (this.onValidatePanel.isEmpty)\n return null;\n var options = {\n name: panel.name,\n panel: panel,\n error: null\n };\n this.onValidatePanel.fire(this, options);\n return options.error ? new __WEBPACK_IMPORTED_MODULE_9__error__[\"a\" /* CustomError */](options.error, this) : null;\n };\n SurveyModel.prototype.processHtml = function (html) {\n var options = { html: html };\n this.onProcessHtml.fire(this, options);\n return this.processText(options.html, true);\n };\n SurveyModel.prototype.processText = function (text, returnDisplayValue) {\n return this.processTextEx(text, returnDisplayValue, false).text;\n };\n SurveyModel.prototype.processTextEx = function (text, returnDisplayValue, doEncoding) {\n var res = {\n text: this.processTextCore(text, returnDisplayValue, doEncoding),\n hasAllValuesOnLastRun: true\n };\n res.hasAllValuesOnLastRun = this.textPreProcessor.hasAllValuesOnLastRun;\n return res;\n };\n SurveyModel.prototype.processTextCore = function (text, returnDisplayValue, doEncoding) {\n if (doEncoding === void 0) { doEncoding = false; }\n if (this.isDesignMode)\n return text;\n return this.textPreProcessor.process(text, returnDisplayValue, doEncoding);\n };\n SurveyModel.prototype.getSurveyMarkdownHtml = function (element, text) {\n var options = { element: element, text: text, html: null };\n this.onTextMarkdown.fire(this, options);\n return options.html;\n };\n /**\n * Returns the number of corrected answers on quiz\n */\n SurveyModel.prototype.getCorrectedAnswerCount = function () {\n return this.getCorrectedAnswerCountCore(true);\n };\n /**\n * Returns quiz question number. It may be different from getQuizQuestions.length because some widgets like matrix may have several questions. For example by number of rows\n * @see getQuizQuestions\n */\n SurveyModel.prototype.getQuizQuestionCount = function () {\n var questions = this.getQuizQuestions();\n var res = 0;\n for (var i = 0; i < questions.length; i++) {\n res += questions[i].quizQuestionCount;\n }\n return res;\n };\n /**\n * Returns the number of incorrected answers on quiz\n */\n SurveyModel.prototype.getInCorrectedAnswerCount = function () {\n return this.getCorrectedAnswerCountCore(false);\n };\n SurveyModel.prototype.getCorrectedAnswerCountCore = function (isCorrect) {\n var questions = this.getQuizQuestions();\n var counter = 0;\n var options = {\n question: null,\n result: false,\n correctAnswers: 0,\n incorrectAnswers: 0\n };\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n var quizQuestionCount = q.quizQuestionCount;\n options.question = q;\n options.correctAnswers = q.correctAnswerCount;\n options.incorrectAnswers = quizQuestionCount - options.correctAnswers;\n options.result = options.question.isAnswerCorrect();\n this.onIsAnswerCorrect.fire(this, options);\n if (isCorrect) {\n if (options.result || options.correctAnswers < quizQuestionCount) {\n var addCount = options.correctAnswers;\n if (addCount == 0 && options.result)\n addCount = 1;\n counter += addCount;\n }\n }\n else {\n if (!options.result || options.incorrectAnswers < quizQuestionCount) {\n counter += options.incorrectAnswers;\n }\n }\n }\n return counter;\n };\n SurveyModel.prototype.getCorrectedAnswers = function () {\n return this.getCorrectedAnswerCount();\n };\n SurveyModel.prototype.getInCorrectedAnswers = function () {\n return this.getInCorrectedAnswerCount();\n };\n Object.defineProperty(SurveyModel.prototype, \"showTimerPanel\", {\n /**\n * Set it to 'top' or 'bottom' if you want to show the Panel with information about how much time the end-user spent of the survey/page.\n * If the value doesn't equal 'none' then survey calls startTimer() method on survey rendering.\n * @see showTimerPanelMode\n * @see startTimer\n * @see stopTimer\n */\n get: function () {\n return this.getPropertyValue(\"showTimerPanel\", \"none\");\n },\n set: function (val) {\n this.setPropertyValue(\"showTimerPanel\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isTimerPanelShowingOnTop\", {\n get: function () {\n return this.isTimerStarted && this.showTimerPanel == \"top\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"isTimerPanelShowingOnBottom\", {\n get: function () {\n return this.isTimerStarted && this.showTimerPanel == \"bottom\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"showTimerPanelMode\", {\n /**\n * Set this property to 'page' or 'survey' to show the timer information for page or survey only.\n * Use onTimerPanelInfoText event to change the default text.\n * @see showTimerPanel\n * @see onTimerPanelInfoText\n */\n get: function () {\n return this.getPropertyValue(\"showTimerPanelMode\", \"all\");\n },\n set: function (val) {\n this.setPropertyValue(\"showTimerPanelMode\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"timerInfoText\", {\n get: function () {\n var options = { text: this.getTimerInfoText() };\n this.onTimerPanelInfoText.fire(this, options);\n var loc = new __WEBPACK_IMPORTED_MODULE_10__localizablestring__[\"a\" /* LocalizableString */](this, true);\n loc.text = options.text;\n return loc.textOrHtml;\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.getTimerInfoText = function () {\n var page = this.currentPage;\n if (!page)\n return \"\";\n var pageSpent = this.getDisplayTime(page.timeSpent);\n var surveySpent = this.getDisplayTime(this.timeSpent);\n var pageLimitSec = this.getPageMaxTimeToFinish(page);\n var pageLimit = this.getDisplayTime(pageLimitSec);\n var surveyLimit = this.getDisplayTime(this.maxTimeToFinish);\n if (this.showTimerPanelMode == \"page\")\n return this.getTimerInfoPageText(page, pageSpent, pageLimit);\n if (this.showTimerPanelMode == \"survey\")\n return this.getTimerInfoSurveyText(surveySpent, surveyLimit);\n if (this.showTimerPanelMode == \"all\") {\n if (pageLimitSec <= 0 && this.maxTimeToFinish <= 0) {\n return this.getLocString(\"timerSpentAll\")[\"format\"](pageSpent, surveySpent);\n }\n if (pageLimitSec > 0 && this.maxTimeToFinish > 0) {\n return this.getLocString(\"timerLimitAll\")[\"format\"](pageSpent, pageLimit, surveySpent, surveyLimit);\n }\n var pageText = this.getTimerInfoPageText(page, pageSpent, pageLimit);\n var surveyText = this.getTimerInfoSurveyText(surveySpent, surveyLimit);\n return pageText + \" \" + surveyText;\n }\n return \"\";\n };\n SurveyModel.prototype.getTimerInfoPageText = function (page, pageSpent, pageLimit) {\n return this.getPageMaxTimeToFinish(page) > 0\n ? this.getLocString(\"timerLimitPage\")[\"format\"](pageSpent, pageLimit)\n : this.getLocString(\"timerSpentPage\")[\"format\"](pageSpent, pageLimit);\n };\n SurveyModel.prototype.getTimerInfoSurveyText = function (surveySpent, surveyLimit) {\n return this.maxTimeToFinish > 0\n ? this.getLocString(\"timerLimitSurvey\")[\"format\"](surveySpent, surveyLimit)\n : this.getLocString(\"timerSpentSurvey\")[\"format\"](surveySpent, surveyLimit);\n };\n SurveyModel.prototype.getDisplayTime = function (val) {\n var min = Math.floor(val / 60);\n var sec = val % 60;\n var res = \"\";\n if (min > 0) {\n res += min + \" \" + this.getLocString(\"timerMin\");\n }\n if (res && sec == 0)\n return res;\n if (res)\n res += \" \";\n return res + sec + \" \" + this.getLocString(\"timerSec\");\n };\n /**\n * Call this method to start timer that will calculate how much time end-user spends on the survey or on pages\n * @see stopTimer\n * @see timeSpent\n */\n SurveyModel.prototype.startTimer = function () {\n if (this.isTimerStarted || this.isDesignMode)\n return;\n var self = this;\n this.timerFunc = function () {\n self.doTimer();\n };\n this.isTimerStarted = true;\n __WEBPACK_IMPORTED_MODULE_12__surveytimer__[\"a\" /* SurveyTimer */].instance.start(this.timerFunc);\n };\n SurveyModel.prototype.startTimerFromUI = function () {\n if (this.showTimerPanel != \"none\" && this.state === \"running\") {\n this.startTimer();\n }\n };\n /**\n * Stop the timer.\n * @see startTimer\n * @see timeSpent\n */\n SurveyModel.prototype.stopTimer = function () {\n if (!this.isTimerStarted)\n return;\n this.isTimerStarted = false;\n __WEBPACK_IMPORTED_MODULE_12__surveytimer__[\"a\" /* SurveyTimer */].instance.stop(this.timerFunc);\n };\n Object.defineProperty(SurveyModel.prototype, \"maxTimeToFinish\", {\n /**\n * The maximum time in seconds that end-user has to complete the survey. If the value is 0 or less, the end-user has unlimited number of time to finish the survey.\n * @see startTimer\n * @see maxTimeToFinishPage\n */\n get: function () {\n return this.getPropertyValue(\"maxTimeToFinish\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"maxTimeToFinish\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyModel.prototype, \"maxTimeToFinishPage\", {\n /**\n * The maximum time in seconds that end-user has to complete a page in the survey. If the value is 0 or less, the end-user has unlimited time. You may override this value for every page.\n * @see startTimer\n * @see maxTimeToFinish\n * @see PageModel.maxTimeToFinish\n */\n get: function () {\n return this.getPropertyValue(\"maxTimeToFinishPage\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"maxTimeToFinishPage\", val);\n },\n enumerable: true,\n configurable: true\n });\n SurveyModel.prototype.getPageMaxTimeToFinish = function (page) {\n if (!page || page.maxTimeToFinish < 0)\n return 0;\n return page.maxTimeToFinish > 0\n ? page.maxTimeToFinish\n : this.maxTimeToFinishPage;\n };\n SurveyModel.prototype.doTimer = function () {\n var page = this.currentPage;\n if (page) {\n page.timeSpent = page.timeSpent + 1;\n }\n this.timeSpent = this.timeSpent + 1;\n this.onTimer.fire(this, {});\n if (this.maxTimeToFinish > 0 && this.maxTimeToFinish == this.timeSpent) {\n this.completeLastPage();\n }\n if (page) {\n var pageLimit = this.getPageMaxTimeToFinish(page);\n if (pageLimit > 0 && pageLimit == page.timeSpent) {\n if (this.isLastPage) {\n this.completeLastPage();\n }\n else {\n this.nextPage();\n }\n }\n }\n };\n //ISurveyImplementor\n SurveyModel.prototype.geSurveyData = function () {\n return this;\n };\n SurveyModel.prototype.getSurvey = function () {\n return this;\n };\n SurveyModel.prototype.getTextProcessor = function () {\n return this;\n };\n //ISurveyTriggerOwner\n SurveyModel.prototype.getObjects = function (pages, questions) {\n var result = [];\n Array.prototype.push.apply(result, this.getPagesByNames(pages));\n Array.prototype.push.apply(result, this.getQuestionsByNames(questions));\n return result;\n };\n SurveyModel.prototype.setTriggerValue = function (name, value, isVariable) {\n if (!name)\n return;\n if (isVariable) {\n this.setVariable(name, value);\n }\n else {\n var processor = new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]();\n var firstName = processor.getFirstName(name);\n if (firstName == name) {\n this.setValue(name, value);\n }\n else {\n if (!this.getValue(firstName))\n return;\n var data = this.getUnbindValue(this.getFilteredValues());\n processor.setValue(data, name, value);\n this.setValue(firstName, data[firstName]);\n }\n }\n };\n SurveyModel.prototype.copyTriggerValue = function (name, fromName) {\n if (!name || !fromName)\n return;\n var processor = new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]();\n var value = processor.getValue(fromName, this.getFilteredValues());\n this.setTriggerValue(name, value, false);\n };\n SurveyModel.prototype.focusQuestion = function (name) {\n var question = this.getQuestionByName(name, true);\n if (!question || !question.isVisible || !question.page)\n return false;\n this.currentPage = question.page;\n question.focus();\n return true;\n };\n SurveyModel.stylesManager = null;\n SurveyModel.platform = \"unknown\";\n return SurveyModel;\n}(__WEBPACK_IMPORTED_MODULE_3__base__[\"a\" /* Base */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"survey\", [\n {\n name: \"locale\",\n choices: function () {\n return __WEBPACK_IMPORTED_MODULE_8__surveyStrings__[\"a\" /* surveyLocalization */].getLocales();\n },\n onGetValue: function (obj) {\n return obj.locale == __WEBPACK_IMPORTED_MODULE_8__surveyStrings__[\"a\" /* surveyLocalization */].defaultLocale ? null : obj.locale;\n }\n },\n { name: \"title\", serializationProperty: \"locTitle\" },\n { name: \"description:text\", serializationProperty: \"locDescription\" },\n { name: \"focusFirstQuestionAutomatic:boolean\", default: true },\n { name: \"focusOnFirstError:boolean\", default: true },\n { name: \"completedHtml:html\", serializationProperty: \"locCompletedHtml\" },\n {\n name: \"completedBeforeHtml:html\",\n serializationProperty: \"locCompletedBeforeHtml\"\n },\n {\n name: \"completedHtmlOnCondition:htmlconditions\",\n className: \"htmlconditionitem\"\n },\n { name: \"loadingHtml:html\", serializationProperty: \"locLoadingHtml\" },\n { name: \"pages\", className: \"page\", visible: false },\n {\n name: \"questions\",\n alternativeName: \"elements\",\n baseClassName: \"question\",\n visible: false,\n isLightSerializable: false,\n onGetValue: function (obj) {\n return null;\n },\n onSetValue: function (obj, value, jsonConverter) {\n var page = obj.addNewPage(\"\");\n jsonConverter.toObject({ questions: value }, page);\n }\n },\n {\n name: \"triggers:triggers\",\n baseClassName: \"surveytrigger\",\n classNamePart: \"trigger\"\n },\n {\n name: \"calculatedValues:calculatedvalues\",\n className: \"calculatedvalue\"\n },\n { name: \"surveyId\", visible: false },\n { name: \"surveyPostId\", visible: false },\n { name: \"surveyShowDataSaving:boolean\", visible: false },\n \"cookieName\",\n \"sendResultOnPageNext:boolean\",\n {\n name: \"showNavigationButtons\",\n default: \"bottom\",\n choices: [\"none\", \"top\", \"bottom\", \"both\"]\n },\n { name: \"showPrevButton:boolean\", default: true },\n { name: \"showTitle:boolean\", default: true },\n { name: \"showPageTitles:boolean\", default: true },\n { name: \"showCompletedPage:boolean\", default: true },\n {\n name: \"questionsOrder\",\n default: \"initial\",\n choices: [\"initial\", \"random\"]\n },\n \"showPageNumbers:boolean\",\n {\n name: \"showQuestionNumbers\",\n default: \"on\",\n choices: [\"on\", \"onPage\", \"off\"]\n },\n {\n name: \"questionTitleLocation\",\n default: \"top\",\n choices: [\"top\", \"bottom\", \"left\"]\n },\n {\n name: \"questionDescriptionLocation\",\n default: \"underTitle\",\n choices: [\"underInput\", \"underTitle\"]\n },\n { name: \"questionErrorLocation\", default: \"top\", choices: [\"top\", \"bottom\"] },\n {\n name: \"showProgressBar\",\n default: \"off\",\n choices: [\"off\", \"top\", \"bottom\", \"both\"]\n },\n {\n name: \"progressBarType\",\n default: \"pages\",\n choices: [\"pages\", \"questions\", \"correctQuestions\"]\n },\n { name: \"mode\", default: \"edit\", choices: [\"edit\", \"display\"] },\n { name: \"storeOthersAsComment:boolean\", default: true },\n { name: \"maxTextLength:number\", default: 0, minValue: 0 },\n { name: \"maxOthersLength:number\", default: 0, minValue: 0 },\n \"goNextPageAutomatic:boolean\",\n {\n name: \"clearInvisibleValues\",\n default: \"onComplete\",\n choices: [\"none\", \"onComplete\", \"onHidden\"]\n },\n {\n name: \"checkErrorsMode\",\n default: \"onNextPage\",\n choices: [\"onNextPage\", \"onValueChanged\", \"onComplete\"]\n },\n {\n name: \"textUpdateMode\",\n default: \"onBlur\",\n choices: [\"onBlur\", \"onTyping\"]\n },\n { name: \"startSurveyText\", serializationProperty: \"locStartSurveyText\" },\n { name: \"pagePrevText\", serializationProperty: \"locPagePrevText\" },\n { name: \"pageNextText\", serializationProperty: \"locPageNextText\" },\n { name: \"completeText\", serializationProperty: \"locCompleteText\" },\n { name: \"requiredText\", default: \"*\" },\n \"questionStartIndex\",\n {\n name: \"questionTitleTemplate\",\n serializationProperty: \"locQuestionTitleTemplate\"\n },\n { name: \"firstPageIsStarted:boolean\", default: false },\n { name: \"isSinglePage:boolean\", default: false },\n { name: \"maxTimeToFinish:number\", default: 0, minValue: 0 },\n { name: \"maxTimeToFinishPage:number\", default: 0, minValue: 0 },\n {\n name: \"showTimerPanel\",\n default: \"none\",\n choices: [\"none\", \"top\", \"bottom\"]\n },\n {\n name: \"showTimerPanelMode\",\n default: \"all\",\n choices: [\"all\", \"page\", \"survey\"]\n }\n]);\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__helpers__ = __webpack_require__(6);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return ValidatorResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return SurveyValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return ValidatorRunner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return NumericValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return TextValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AnswerCountValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return RegexValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return EmailValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return ExpressionValidator; });\n\n\n\n\n\n\n\nvar ValidatorResult = /** @class */ (function () {\n function ValidatorResult(value, error) {\n if (error === void 0) { error = null; }\n this.value = value;\n this.error = error;\n }\n return ValidatorResult;\n}());\n\n/**\n * Base SurveyJS validator class.\n */\nvar SurveyValidator = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyValidator, _super);\n function SurveyValidator() {\n var _this = _super.call(this) || this;\n _this.createLocalizableString(\"text\", _this, true);\n return _this;\n }\n Object.defineProperty(SurveyValidator.prototype, \"text\", {\n get: function () {\n return this.getLocalizableStringText(\"text\");\n },\n set: function (value) {\n this.setLocalizableStringText(\"text\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyValidator.prototype, \"isValidateAllValues\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyValidator.prototype, \"locText\", {\n get: function () {\n return this.getLocalizableString(\"text\");\n },\n enumerable: true,\n configurable: true\n });\n SurveyValidator.prototype.getErrorText = function (name) {\n if (this.text)\n return this.text;\n return this.getDefaultErrorText(name);\n };\n SurveyValidator.prototype.getDefaultErrorText = function (name) {\n return \"\";\n };\n SurveyValidator.prototype.validate = function (value, name, values, properties) {\n if (name === void 0) { name = null; }\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n return null;\n };\n Object.defineProperty(SurveyValidator.prototype, \"isRunning\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyValidator.prototype, \"isAsync\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n SurveyValidator.prototype.getLocale = function () {\n return !!this.errorOwner ? this.errorOwner.getLocale() : \"\";\n };\n SurveyValidator.prototype.getMarkdownHtml = function (text) {\n return !!this.errorOwner ? this.errorOwner.getMarkdownHtml(text) : null;\n };\n SurveyValidator.prototype.getProcessedText = function (text) {\n return !!this.errorOwner ? this.errorOwner.getProcessedText(text) : text;\n };\n SurveyValidator.prototype.createCustomError = function (name) {\n return new __WEBPACK_IMPORTED_MODULE_2__error__[\"a\" /* CustomError */](this.getErrorText(name), this.errorOwner);\n };\n SurveyValidator.prototype.toString = function () {\n var res = this.getType().replace(\"validator\", \"\");\n if (!!this.text) {\n res += \", \" + this.text;\n }\n return res;\n };\n return SurveyValidator;\n}(__WEBPACK_IMPORTED_MODULE_1__base__[\"a\" /* Base */]));\n\nvar ValidatorRunner = /** @class */ (function () {\n function ValidatorRunner() {\n }\n ValidatorRunner.prototype.run = function (owner) {\n var _this = this;\n var res = [];\n var values = null;\n var properties = null;\n this.prepareAsyncValidators();\n var asyncResults = [];\n var validators = owner.getValidators();\n for (var i = 0; i < validators.length; i++) {\n var validator = validators[i];\n if (!values && validator.isValidateAllValues) {\n values = owner.getDataFilteredValues();\n properties = owner.getDataFilteredProperties();\n }\n if (validator.isAsync) {\n this.asyncValidators.push(validator);\n validator.onAsyncCompleted = function (result) {\n if (!!result && !!result.error)\n asyncResults.push(result.error);\n if (!_this.onAsyncCompleted)\n return;\n for (var i = 0; i < _this.asyncValidators.length; i++) {\n if (_this.asyncValidators[i].isRunning)\n return;\n }\n _this.onAsyncCompleted(asyncResults);\n };\n }\n }\n validators = owner.getValidators();\n for (var i = 0; i < validators.length; i++) {\n var validator = validators[i];\n var validatorResult = validator.validate(owner.validatedValue, owner.getValidatorTitle(), values, properties);\n if (!!validatorResult && !!validatorResult.error) {\n res.push(validatorResult.error);\n }\n }\n if (this.asyncValidators.length == 0 && !!this.onAsyncCompleted)\n this.onAsyncCompleted([]);\n return res;\n };\n ValidatorRunner.prototype.prepareAsyncValidators = function () {\n if (!!this.asyncValidators) {\n for (var i = 0; i < this.asyncValidators.length; i++) {\n this.asyncValidators[i].onAsyncCompleted = null;\n }\n }\n this.asyncValidators = [];\n };\n return ValidatorRunner;\n}());\n\n/**\n * Validate numeric values.\n */\nvar NumericValidator = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(NumericValidator, _super);\n function NumericValidator(minValue, maxValue) {\n if (minValue === void 0) { minValue = null; }\n if (maxValue === void 0) { maxValue = null; }\n var _this = _super.call(this) || this;\n _this.minValue = minValue;\n _this.maxValue = maxValue;\n return _this;\n }\n NumericValidator.prototype.getType = function () {\n return \"numericvalidator\";\n };\n NumericValidator.prototype.validate = function (value, name, values, properties) {\n if (name === void 0) { name = null; }\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n if (__WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isValueEmpty(value))\n return null;\n if (!__WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isNumber(value)) {\n return new ValidatorResult(null, new __WEBPACK_IMPORTED_MODULE_2__error__[\"d\" /* RequreNumericError */](null, this.errorOwner));\n }\n var result = new ValidatorResult(parseFloat(value));\n if (this.minValue !== null && this.minValue > result.value) {\n result.error = this.createCustomError(name);\n return result;\n }\n if (this.maxValue !== null && this.maxValue < result.value) {\n result.error = this.createCustomError(name);\n return result;\n }\n return typeof value === \"number\" ? null : result;\n };\n NumericValidator.prototype.getDefaultErrorText = function (name) {\n var vName = name ? name : __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"value\");\n if (this.minValue !== null && this.maxValue !== null) {\n return __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"numericMinMax\")[\"format\"](vName, this.minValue, this.maxValue);\n }\n else {\n if (this.minValue !== null) {\n return __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"numericMin\")[\"format\"](vName, this.minValue);\n }\n return __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"numericMax\")[\"format\"](vName, this.maxValue);\n }\n };\n return NumericValidator;\n}(SurveyValidator));\n\n/**\n * Validate text values.\n */\nvar TextValidator = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(TextValidator, _super);\n function TextValidator(minLength, maxLength, allowDigits) {\n if (minLength === void 0) { minLength = 0; }\n if (maxLength === void 0) { maxLength = 0; }\n if (allowDigits === void 0) { allowDigits = true; }\n var _this = _super.call(this) || this;\n _this.minLength = minLength;\n _this.maxLength = maxLength;\n _this.allowDigits = allowDigits;\n return _this;\n }\n TextValidator.prototype.getType = function () {\n return \"textvalidator\";\n };\n TextValidator.prototype.validate = function (value, name, values, properties) {\n if (name === void 0) { name = null; }\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n if (value !== \"\" && __WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isValueEmpty(value))\n return null;\n if (!this.allowDigits) {\n var reg = /^[A-Za-z\\s]*$/;\n if (!reg.test(value)) {\n return new ValidatorResult(null, this.createCustomError(name));\n }\n }\n if (this.minLength > 0 && value.length < this.minLength) {\n return new ValidatorResult(null, this.createCustomError(name));\n }\n if (this.maxLength > 0 && value.length > this.maxLength) {\n return new ValidatorResult(null, this.createCustomError(name));\n }\n return null;\n };\n TextValidator.prototype.getDefaultErrorText = function (name) {\n if (this.minLength > 0 && this.maxLength > 0)\n return __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"textMinMaxLength\")[\"format\"](this.minLength, this.maxLength);\n if (this.minLength > 0)\n return __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"textMinLength\")[\"format\"](this.minLength);\n return __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"textMaxLength\")[\"format\"](this.maxLength);\n };\n return TextValidator;\n}(SurveyValidator));\n\nvar AnswerCountValidator = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(AnswerCountValidator, _super);\n function AnswerCountValidator(minCount, maxCount) {\n if (minCount === void 0) { minCount = null; }\n if (maxCount === void 0) { maxCount = null; }\n var _this = _super.call(this) || this;\n _this.minCount = minCount;\n _this.maxCount = maxCount;\n return _this;\n }\n AnswerCountValidator.prototype.getType = function () {\n return \"answercountvalidator\";\n };\n AnswerCountValidator.prototype.validate = function (value, name, values, properties) {\n if (name === void 0) { name = null; }\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n if (value == null || value.constructor != Array)\n return null;\n var count = value.length;\n if (this.minCount && count < this.minCount) {\n return new ValidatorResult(null, this.createCustomError(__WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"minSelectError\")[\"format\"](this.minCount)));\n }\n if (this.maxCount && count > this.maxCount) {\n return new ValidatorResult(null, this.createCustomError(__WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"maxSelectError\")[\"format\"](this.maxCount)));\n }\n return null;\n };\n AnswerCountValidator.prototype.getDefaultErrorText = function (name) {\n return name;\n };\n return AnswerCountValidator;\n}(SurveyValidator));\n\n/**\n * Use it to validate the text by regular expressions.\n */\nvar RegexValidator = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(RegexValidator, _super);\n function RegexValidator(regex) {\n if (regex === void 0) { regex = null; }\n var _this = _super.call(this) || this;\n _this.regex = regex;\n return _this;\n }\n RegexValidator.prototype.getType = function () {\n return \"regexvalidator\";\n };\n RegexValidator.prototype.validate = function (value, name, values, properties) {\n if (name === void 0) { name = null; }\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n if (!this.regex || __WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isValueEmpty(value))\n return null;\n var re = new RegExp(this.regex);\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n var res = this.hasError(re, value[i], name);\n if (res)\n return res;\n }\n }\n return this.hasError(re, value, name);\n };\n RegexValidator.prototype.hasError = function (re, value, name) {\n if (re.test(value))\n return null;\n return new ValidatorResult(value, this.createCustomError(name));\n };\n return RegexValidator;\n}(SurveyValidator));\n\n/**\n * Validate e-mail address in the text input\n */\nvar EmailValidator = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(EmailValidator, _super);\n function EmailValidator() {\n var _this = _super.call(this) || this;\n _this.re = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()=[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()=[\\]\\.,;:\\s@\\\"]{2,})$/i;\n return _this;\n }\n EmailValidator.prototype.getType = function () {\n return \"emailvalidator\";\n };\n EmailValidator.prototype.validate = function (value, name, values, properties) {\n if (name === void 0) { name = null; }\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n if (!value)\n return null;\n if (this.re.test(value))\n return null;\n return new ValidatorResult(value, this.createCustomError(name));\n };\n EmailValidator.prototype.getDefaultErrorText = function (name) {\n return __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"invalidEmail\");\n };\n return EmailValidator;\n}(SurveyValidator));\n\n/**\n * Show error if expression returns false\n */\nvar ExpressionValidator = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ExpressionValidator, _super);\n function ExpressionValidator(expression) {\n if (expression === void 0) { expression = null; }\n var _this = _super.call(this) || this;\n _this.expression = expression;\n _this.conditionRunner = null;\n _this.isRunningValue = false;\n return _this;\n }\n ExpressionValidator.prototype.getType = function () {\n return \"expressionvalidator\";\n };\n Object.defineProperty(ExpressionValidator.prototype, \"isValidateAllValues\", {\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ExpressionValidator.prototype, \"isAsync\", {\n get: function () {\n if (!this.ensureConditionRunner())\n return false;\n return this.conditionRunner.isAsync;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ExpressionValidator.prototype, \"isRunning\", {\n get: function () {\n return this.isRunningValue;\n },\n enumerable: true,\n configurable: true\n });\n ExpressionValidator.prototype.validate = function (value, name, values, properties) {\n var _this = this;\n if (name === void 0) { name = null; }\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n if (!this.ensureConditionRunner())\n return null;\n this.conditionRunner.onRunComplete = function (res) {\n _this.isRunningValue = false;\n if (!!_this.onAsyncCompleted) {\n _this.onAsyncCompleted(_this.generateError(res, value));\n }\n };\n this.isRunningValue = true;\n var res = this.conditionRunner.run(values, properties);\n if (this.conditionRunner.isAsync)\n return null;\n this.isRunningValue = false;\n return this.generateError(res, value);\n };\n ExpressionValidator.prototype.generateError = function (res, value) {\n if (!res) {\n return new ValidatorResult(value, this.createCustomError(name));\n }\n return null;\n };\n ExpressionValidator.prototype.getDefaultErrorText = function (name) {\n return __WEBPACK_IMPORTED_MODULE_3__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"invalidExpression\")[\"format\"](this.expression);\n };\n ExpressionValidator.prototype.ensureConditionRunner = function () {\n if (!!this.conditionRunner) {\n this.conditionRunner.expression = this.expression;\n return true;\n }\n if (!this.expression)\n return false;\n this.conditionRunner = new __WEBPACK_IMPORTED_MODULE_5__conditions__[\"b\" /* ConditionRunner */](this.expression);\n return true;\n };\n return ExpressionValidator;\n}(SurveyValidator));\n\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"surveyvalidator\", [\n { name: \"text\", serializationProperty: \"locText\" }\n]);\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"numericvalidator\", [\"minValue:number\", \"maxValue:number\"], function () {\n return new NumericValidator();\n}, \"surveyvalidator\");\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"textvalidator\", [\"minLength:number\", \"maxLength:number\", \"allowDigits:boolean\"], function () {\n return new TextValidator();\n}, \"surveyvalidator\");\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"answercountvalidator\", [\"minCount:number\", \"maxCount:number\"], function () {\n return new AnswerCountValidator();\n}, \"surveyvalidator\");\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"regexvalidator\", [\"regex\"], function () {\n return new RegexValidator();\n}, \"surveyvalidator\");\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"emailvalidator\", [], function () {\n return new EmailValidator();\n}, \"surveyvalidator\");\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"expressionvalidator\", [\"expression:condition\"], function () {\n return new ExpressionValidator();\n}, \"surveyvalidator\");\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Boolean; });\n\n\n\n\nvar Boolean = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Boolean, _super);\n function Boolean() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Boolean.prototype, \"itemClass\", {\n get: function () {\n var question = this.question;\n var cssClasses = question.cssClasses;\n var isChecked = question.checkedValue;\n var isDisabled = question.isReadOnly;\n var itemClass = cssClasses.item;\n if (isDisabled)\n itemClass += \" \" + cssClasses.itemDisabled;\n if (isChecked)\n itemClass += \" \" + cssClasses.itemChecked;\n else if (isChecked === null)\n itemClass += \" \" + cssClasses.itemIndeterminate;\n return itemClass;\n },\n enumerable: true,\n configurable: true\n });\n Boolean.prototype.getLabelClass = function (checked) {\n var question = this.question;\n var cssClasses = this.question.cssClasses;\n return (cssClasses.label +\n \" \" +\n (question.checkedValue === !checked || question.isReadOnly\n ? question.cssClasses.disabledLabel\n : \"\"));\n };\n Boolean = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Boolean);\n return Boolean;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-boolean\", Boolean);\n/* harmony default export */ __webpack_exports__[\"b\"] = Boolean;\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Checkbox; });\n\n\n\n\nvar Checkbox = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Checkbox, _super);\n function Checkbox() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Checkbox.prototype.getItemClass = function (item) {\n var question = this.question;\n var cssClasses = question.cssClasses;\n var isChecked = question.isItemSelected(item);\n var isDisabled = question.isReadOnly || !item.isEnabled;\n var allowHover = !isChecked && !isDisabled;\n var itemClass = cssClasses.item;\n if (!question.hasColumns) {\n itemClass +=\n question.colCount === 0\n ? \" \" + cssClasses.itemInline\n : \" sv-q-col-\" + question.colCount;\n }\n if (isDisabled)\n itemClass += \" \" + cssClasses.itemDisabled;\n if (isChecked)\n itemClass += \" \" + cssClasses.itemChecked;\n if (allowHover)\n itemClass += \" \" + cssClasses.itemHover;\n return itemClass;\n };\n Checkbox = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Checkbox);\n return Checkbox;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-checkbox\", Checkbox);\n/* harmony default export */ __webpack_exports__[\"b\"] = Checkbox;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CheckboxItem; });\n\n\n\nvar CheckboxItem = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(CheckboxItem, _super);\n function CheckboxItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(CheckboxItem.prototype, \"isAllSelected\", {\n get: function () {\n return this.question.isAllSelected;\n },\n set: function (val) {\n this.question.isAllSelected = val;\n },\n enumerable: true,\n configurable: true\n });\n CheckboxItem.prototype.getLabelClass = function (item) {\n return this.question.getLabelClass(this.question.isItemSelected(item));\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], CheckboxItem.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], CheckboxItem.prototype, \"item\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], CheckboxItem.prototype, \"index\", void 0);\n CheckboxItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], CheckboxItem);\n return CheckboxItem;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-checkbox-item\", CheckboxItem);\n/* harmony default export */ __webpack_exports__[\"b\"] = CheckboxItem;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Comment; });\n\n\n\n\nvar Comment = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Comment, _super);\n function Comment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Comment.prototype.change = function (event) {\n this.question.value = event.target.value;\n };\n Comment.prototype.keyup = function (event) {\n if (!this.question.isInputTextUpdate)\n return;\n this.question.value = event.target.value;\n };\n Comment = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Comment);\n return Comment;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-comment\", Comment);\n/* harmony default export */ __webpack_exports__[\"b\"] = Comment;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CustomWidget; });\n\n\n\nvar CustomWidget = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(CustomWidget, _super);\n function CustomWidget() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(CustomWidget.prototype, \"hasDefaultRender\", {\n get: function () {\n return this.question.customWidget.isDefaultRender || this.hasVueComponent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CustomWidget.prototype, \"hasHtml\", {\n get: function () {\n return this.question.customWidget.htmlTemplate ? true : false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CustomWidget.prototype, \"customHtml\", {\n get: function () {\n return this.question.customWidget.htmlTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CustomWidget.prototype, \"hasVueComponent\", {\n get: function () {\n var options = __WEBPACK_IMPORTED_MODULE_1_vue___default.a[\"options\"];\n if (!options)\n return false;\n return (options.components && options.components[this.question.customWidget.name]);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CustomWidget.prototype, \"componentName\", {\n get: function () {\n if (this.hasVueComponent)\n return this.question.customWidget.name;\n return \"survey-\" + this.question.getTemplate();\n },\n enumerable: true,\n configurable: true\n });\n CustomWidget.prototype.mounted = function () {\n this.question.customWidget.afterRender(this.question, this.$el);\n };\n CustomWidget.prototype.updated = function () {\n //this.question.customWidget.afterRender(this.question, this.$el);\n };\n CustomWidget.prototype.beforeDestroy = function () {\n this.question.customWidget.willUnmount(this.question, this.$el);\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], CustomWidget.prototype, \"css\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], CustomWidget.prototype, \"question\", void 0);\n CustomWidget = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], CustomWidget);\n return CustomWidget;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-customwidget\", CustomWidget);\n/* harmony default export */ __webpack_exports__[\"b\"] = CustomWidget;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Dropdown; });\n\n\n\n\nvar Dropdown = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Dropdown, _super);\n function Dropdown() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Dropdown.prototype, \"isOtherSelected\", {\n get: function () {\n var question = this.question;\n return question.hasOther && question.isOtherSelected;\n },\n enumerable: true,\n configurable: true\n });\n Dropdown = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Dropdown);\n return Dropdown;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-dropdown\", Dropdown);\n/* harmony default export */ __webpack_exports__[\"b\"] = Dropdown;\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SurveyElementVue; });\n\n\n\nvar SurveyElementVue = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyElementVue, _super);\n function SurveyElementVue() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SurveyElementVue.prototype.getWidgetComponentName = function (element) {\n if (element.customWidget) {\n return \"survey-customwidget\";\n }\n return \"survey-\" + element.getTemplate();\n };\n SurveyElementVue.prototype.getRootClass = function (element) {\n var rootClass = \"\";\n if (!!element.cssMainRoot) {\n rootClass += element.cssMainRoot;\n }\n if (element.cssClasses.small && !element.width) {\n rootClass += \" \" + element.cssClasses.small;\n }\n return rootClass;\n };\n SurveyElementVue.prototype.getContentClass = function (element) {\n var contentClass = element.cssClasses.content;\n if (element.hasTitleOnLeft) {\n contentClass += \" \" + element.cssClasses.contentLeft;\n }\n return contentClass;\n };\n Object.defineProperty(SurveyElementVue.prototype, \"hasErrorsOnTop\", {\n get: function () {\n return !this.element.isPanel && this.survey.questionErrorLocation === \"top\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyElementVue.prototype, \"hasErrorsOnBottom\", {\n get: function () {\n return (!this.element.isPanel && this.survey.questionErrorLocation === \"bottom\");\n },\n enumerable: true,\n configurable: true\n });\n SurveyElementVue.prototype.mounted = function () {\n if (this.survey && !this.element.isPanel) {\n this.survey.afterRenderQuestion(this.element, this.$el);\n }\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], SurveyElementVue.prototype, \"css\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], SurveyElementVue.prototype, \"survey\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], SurveyElementVue.prototype, \"element\", void 0);\n SurveyElementVue = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], SurveyElementVue);\n return SurveyElementVue;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-element\", SurveyElementVue);\n/* harmony default export */ __webpack_exports__[\"b\"] = SurveyElementVue;\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ElementHeader; });\n\n\n\nvar ElementHeader = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ElementHeader, _super);\n function ElementHeader() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ElementHeader.prototype.getTitleClass = function (element) {\n var cssClasses = element.cssClasses;\n var titleClass = cssClasses.title;\n if (element.containsErrors) {\n titleClass += \" \" + cssClasses.titleOnError;\n }\n else if (element.isAnswered) {\n titleClass += \" \" + cssClasses.titleOnAnswer;\n }\n return titleClass;\n };\n ElementHeader.prototype.getHeaderClass = function (element) {\n var headerClass = element.cssClasses.header;\n if (element.hasTitleOnTop) {\n headerClass += \" \" + element.cssClasses.headerTop;\n }\n if (element.hasTitleOnLeft) {\n headerClass += \" \" + element.cssClasses.headerLeft;\n }\n if (element.hasTitleOnBottom) {\n headerClass += \" \" + element.cssClasses.headerBottom;\n }\n return headerClass;\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], ElementHeader.prototype, \"element\", void 0);\n ElementHeader = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], ElementHeader);\n return ElementHeader;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-element-header\", ElementHeader);\n/* harmony default export */ __webpack_exports__[\"b\"] = ElementHeader;\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Empty; });\n\n\n\n\nvar Empty = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Empty, _super);\n function Empty() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Empty = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Empty);\n return Empty;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-empty\", Empty);\n/* harmony default export */ __webpack_exports__[\"b\"] = Empty;\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Errors; });\n\n\n\nvar Errors = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Errors, _super);\n function Errors() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Errors.prototype, \"isShow\", {\n get: function () {\n return !!this.question.errors && this.question.errors.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Errors.prototype, \"classes\", {\n get: function () {\n var question = this.question;\n var classes = question.cssClasses\n ? question.cssClasses.error.root\n : \"panel-error-root\";\n var additionalClasses = \"\";\n if (this.location === \"top\") {\n additionalClasses = question.cssClasses.error.locationTop;\n }\n else if (this.location === \"bottom\") {\n additionalClasses = question.cssClasses.error.locationBottom;\n }\n if (additionalClasses)\n classes += \" \" + additionalClasses;\n return classes;\n },\n enumerable: true,\n configurable: true\n });\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Errors.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Errors.prototype, \"location\", void 0);\n Errors = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Errors);\n return Errors;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-errors\", Errors);\n/* harmony default export */ __webpack_exports__[\"b\"] = Errors;\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Expression; });\n\n\n\n\nvar Expression = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Expression, _super);\n function Expression() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Expression = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Expression);\n return Expression;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-expression\", Expression);\n/* harmony default export */ __webpack_exports__[\"b\"] = Expression;\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_utils__ = __webpack_require__(175);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return File; });\n\n\n\n\n\nvar File = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(File, _super);\n function File() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onDragOver = function (event) {\n event.preventDefault();\n };\n _this.onDrop = function (event) {\n event.preventDefault();\n var src = event.dataTransfer;\n _this.onChange(src);\n };\n return _this;\n }\n File.prototype.doChange = function (event) {\n var src = event.target || event.srcElement;\n this.onChange(src);\n };\n File.prototype.doClean = function (event) {\n var question = this.question;\n var src = event.target || event.srcElement;\n if (question.needConfirmRemoveFile) {\n var isConfirmed = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__utils_utils__[\"a\" /* confirmAction */])(question.confirmRemoveAllMessage);\n if (!isConfirmed)\n return;\n }\n question.clear();\n src.parentElement.querySelectorAll(\"input\")[0].value = \"\";\n };\n File.prototype.doRemoveFile = function (data) {\n var question = this.question;\n if (question.needConfirmRemoveFile) {\n var isConfirmed = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__utils_utils__[\"a\" /* confirmAction */])(question.getConfirmRemoveMessage(data.name));\n if (!isConfirmed)\n return;\n }\n question.removeFile(data);\n };\n File.prototype.getPlaceholderClass = function () {\n return \"form-control \" + this.question.cssClasses.placeholderInput;\n };\n File.prototype.onChange = function (src) {\n if (!window[\"FileReader\"])\n return;\n if (!src || !src.files || src.files.length < 1)\n return;\n var files = [];\n var allowCount = this.question.allowMultiple ? src.files.length : 1;\n for (var i = 0; i < allowCount; i++) {\n files.push(src.files[i]);\n }\n src.value = \"\";\n this.question.loadFiles(files);\n };\n File = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], File);\n return File;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-file\", File);\n/* harmony default export */ __webpack_exports__[\"b\"] = File;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FlowPanel; });\n\n\n\nvar FlowPanel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(FlowPanel, _super);\n function FlowPanel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isCollapsedValue = false;\n return _this;\n }\n Object.defineProperty(FlowPanel.prototype, \"rootNode\", {\n get: function () {\n return this.rootNodeValue;\n },\n enumerable: true,\n configurable: true\n });\n FlowPanel.prototype.beforeMount = function () {\n if (!this.question)\n return;\n var self = this;\n this.question.onCustomHtmlProducing = function () {\n return \"\";\n };\n this.question.onGetHtmlForQuestion = self.renderQuestion;\n this.setRootNode();\n };\n FlowPanel.prototype.setRootNode = function () {\n var html = \"\" + this.question.produceHtml() + \"\";\n var doc = new DOMParser().parseFromString(html, \"text/xml\");\n this.rootNodeValue =\n !!doc && doc.childNodes.length > 0 ? doc.childNodes[0] : null;\n };\n FlowPanel.prototype.renderQuestion = function (question) {\n return \"\" + question.name + \"\";\n };\n FlowPanel.prototype.mounted = function () {\n if (this.question.survey) {\n this.question.survey.afterRenderPanel(this.question, this.$el);\n }\n this.isCollapsed = this.question.isCollapsed;\n var self = this;\n this.question.registerFunctionOnPropertyValueChanged(\"state\", function (val) {\n self.isCollapsed = self.question.isCollapsed;\n });\n };\n Object.defineProperty(FlowPanel.prototype, \"rootStyle\", {\n get: function () {\n var result = {};\n if (this.question.renderWidth) {\n result[\"width\"] = this.question.renderWidth;\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanel.prototype, \"showIcon\", {\n get: function () {\n return (this.question && (this.question.isExpanded || this.question.isCollapsed));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanel.prototype, \"rows\", {\n get: function () {\n return this.question.rows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanel.prototype, \"hasTitle\", {\n get: function () {\n return this.question.title.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanel.prototype, \"survey\", {\n get: function () {\n return this.question.survey;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanel.prototype, \"iconCss\", {\n get: function () {\n var result = \"sv_panel_icon\";\n if (!this.isCollapsed)\n result += \" sv_expanded\";\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanel.prototype, \"isCollapsed\", {\n get: function () {\n return this.isCollapsedValue;\n },\n set: function (val) {\n this.isCollapsedValue = val;\n },\n enumerable: true,\n configurable: true\n });\n FlowPanel.prototype.changeExpanded = function () {\n if (this.question.isCollapsed || this.question.isExpanded) {\n if (this.question.isCollapsed) {\n this.question.expand();\n }\n else {\n this.question.collapse();\n }\n }\n };\n FlowPanel.prototype.getTitleStyle = function () {\n var result = this.css.panel.title;\n if (this.question.isCollapsed || this.question.isExpanded) {\n result += \" \" + this.css.panel.titleExpandable;\n }\n return result;\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], FlowPanel.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], FlowPanel.prototype, \"isEditMode\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], FlowPanel.prototype, \"css\", void 0);\n FlowPanel = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], FlowPanel);\n return FlowPanel;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-flowpanel\", FlowPanel);\n/* harmony default export */ __webpack_exports__[\"b\"] = FlowPanel;\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FlowPanelElement; });\n\n\n\nvar FlowPanelElement = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(FlowPanelElement, _super);\n function FlowPanelElement() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.question = null;\n _this.tagName = \"span\";\n _this.nodes = [];\n _this.text = \"\";\n _this.style = {};\n return _this;\n }\n FlowPanelElement_1 = FlowPanelElement;\n FlowPanelElement.prototype.getStyle = function (nodeType) {\n var style = {};\n if (nodeType.toLowerCase() === \"b\") {\n style.fontWeight = \"bold\";\n }\n if (nodeType.toLowerCase() === \"i\") {\n style.fontStyle = \"italic\";\n }\n if (nodeType.toLowerCase() === \"u\") {\n style.textDecoration = \"underline\";\n }\n return style;\n };\n Object.defineProperty(FlowPanelElement.prototype, \"elementId\", {\n get: function () {\n if (!this.elementIdValue) {\n if (!FlowPanelElement_1.idValue) {\n FlowPanelElement_1.idValue = 0;\n }\n FlowPanelElement_1.idValue++;\n this.elementIdValue = \"fp_el\" + FlowPanelElement_1.idValue;\n }\n return this.elementIdValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanelElement.prototype, \"survey\", {\n get: function () {\n return this.panel.survey;\n },\n enumerable: true,\n configurable: true\n });\n FlowPanelElement.prototype.beforeMount = function () {\n if (!this.panel || !this.node)\n return;\n var nodeType = this.node.nodeName.toLowerCase();\n if (!this.hasTextChildNodesOnly(this.node)) {\n this.nodes = this.getChildDomNodes(this.node);\n }\n else {\n if (nodeType == \"question\") {\n this.question = this.panel.getQuestionByName(this.node.textContent);\n }\n else {\n this.text = this.node.textContent;\n }\n }\n if (nodeType == \"div\" && !this.question) {\n this.tagName = \"div\";\n }\n this.style = this.getStyle(nodeType);\n };\n //duplicated code from element.vue\n FlowPanelElement.prototype.getWidgetComponentName = function (element) {\n if (element.customWidget) {\n return \"survey-customwidget\";\n }\n return \"survey-\" + element.getTemplate();\n };\n // duplicated code from reactpages.tsx\n FlowPanelElement.prototype.hasTextChildNodesOnly = function (node) {\n var nodes = node.childNodes;\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].nodeName.toLowerCase() !== \"#text\")\n return false;\n }\n return true;\n };\n FlowPanelElement.prototype.getChildDomNodes = function (node) {\n var domNodes = [];\n for (var i = 0; i < node.childNodes.length; i++) {\n domNodes.push(node.childNodes[i]);\n }\n return domNodes;\n };\n var FlowPanelElement_1;\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], FlowPanelElement.prototype, \"node\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], FlowPanelElement.prototype, \"panel\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], FlowPanelElement.prototype, \"css\", void 0);\n FlowPanelElement = FlowPanelElement_1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], FlowPanelElement);\n return FlowPanelElement;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-flowpanelelement\", FlowPanelElement);\n/* harmony default export */ __webpack_exports__[\"b\"] = FlowPanelElement;\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Html; });\n\n\n\nvar Html = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Html, _super);\n function Html() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Html.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Html.prototype, \"css\", void 0);\n Html = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Html);\n return Html;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-html\", Html);\n/* harmony default export */ __webpack_exports__[\"b\"] = Html;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ImagePicker; });\n\n\n\n\nvar ImagePicker = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ImagePicker, _super);\n function ImagePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ImagePicker.prototype.getItemClass = function (item) {\n var question = this.question;\n var cssClasses = question.cssClasses;\n var colCount = question.colCount;\n var itemClass = cssClasses.item +\n (colCount === 0\n ? \" \" + cssClasses.itemInline\n : \" sv-q-col-\" + colCount);\n var isChecked = this.question.isItemSelected(item);\n var isDisabled = question.isReadOnly || !item.isEnabled;\n var allowHover = !isChecked && !isDisabled;\n if (isChecked) {\n itemClass += \" \" + cssClasses.itemChecked;\n }\n if (isDisabled) {\n itemClass += \" \" + cssClasses.itemDisabled;\n }\n if (allowHover) {\n itemClass += \" \" + cssClasses.itemHover;\n }\n return itemClass;\n };\n ImagePicker = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], ImagePicker);\n return ImagePicker;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-imagepicker\", ImagePicker);\n/* harmony default export */ __webpack_exports__[\"b\"] = ImagePicker;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Matrix; });\n\n\n\n\nvar Matrix = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Matrix, _super);\n function Matrix() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Matrix.prototype.getItemClass = function (row, column) {\n var question = this.question;\n var cssClasses = this.question.cssClasses;\n var isChecked = row.value == column.value;\n var isDisabled = question.isReadOnly;\n var allowHover = !isChecked && !isDisabled;\n var cellDisabledClass = question.hasCellText\n ? cssClasses.cellTextDisabled\n : cssClasses.itemDisabled;\n var cellSelectedClass = question.hasCellText\n ? cssClasses.cellTextSelected\n : cssClasses.itemChecked;\n var itemHoverClass = !question.hasCellText ? cssClasses.itemHover : \"\";\n var cellClass = question.hasCellText\n ? cssClasses.cellText\n : cssClasses.label;\n var itemClass = cellClass +\n (isChecked ? \" \" + cellSelectedClass : \"\") +\n (isDisabled ? \" \" + cellDisabledClass : \"\") +\n (allowHover ? \" \" + itemHoverClass : \"\");\n return itemClass;\n };\n Matrix.prototype.cellClick = function (row, column) {\n if (this.question.isReadOnly)\n return;\n row.value = column.value;\n };\n Matrix = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Matrix);\n return Matrix;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-matrix\", Matrix);\n/* harmony default export */ __webpack_exports__[\"b\"] = Matrix;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MatrixCell; });\n\n\n\nvar MatrixCell = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixCell, _super);\n function MatrixCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isVisible = false;\n return _this;\n }\n MatrixCell.prototype.getWidgetComponentName = function (element) {\n if (element.customWidget) {\n return \"survey-customwidget\";\n }\n return \"survey-\" + element.getType();\n };\n Object.defineProperty(MatrixCell.prototype, \"hasErrorsOnTop\", {\n get: function () {\n var q = this.cell.question;\n return q.isVisible && q.survey.questionErrorLocation === \"top\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixCell.prototype, \"hasErrorsOnBottom\", {\n get: function () {\n var q = this.cell.question;\n return q.isVisible && q.survey.questionErrorLocation === \"bottom\";\n },\n enumerable: true,\n configurable: true\n });\n MatrixCell.prototype.getHeaders = function () {\n var element = this.cell.question;\n if (!element)\n return \"\";\n return element.isVisible ? this.cell.cell.column.locTitle.renderedHtml : \"\";\n };\n MatrixCell.prototype.getCellClass = function () {\n var element = this.cell.question;\n if (!element)\n return this.question.cssClasses.cell;\n var cellClass = element.cssClasses.itemValue;\n if (!!element.errors && element.errors.length > 0) {\n cellClass += \" \" + element.cssClasses.hasError;\n }\n cellClass += \" \" + element.cssClasses.asCell;\n return cellClass;\n };\n MatrixCell.prototype.removeRowClick = function () {\n this.question.removeRowUI(this.cell.row);\n };\n MatrixCell.prototype.mounted = function () {\n if (!this.cell.hasQuestion || !this.question || !this.question.survey)\n return;\n this.onVisibilityChanged();\n var self = this;\n this.cell.question.registerFunctionOnPropertyValueChanged(\"isVisible\", function () {\n self.onVisibilityChanged();\n });\n var options = {\n cell: this.cell.cell,\n cellQuestion: this.cell.question,\n htmlElement: this.$el,\n row: this.cell.row,\n column: this.cell.cell.column\n };\n this.question.survey.matrixAfterCellRender(this.question, options);\n };\n MatrixCell.prototype.onVisibilityChanged = function () {\n this.isVisible = this.cell.question.isVisible;\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], MatrixCell.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], MatrixCell.prototype, \"cell\", void 0);\n MatrixCell = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], MatrixCell);\n return MatrixCell;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-matrixcell\", MatrixCell);\n/* harmony default export */ __webpack_exports__[\"b\"] = MatrixCell;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MatrixDropdown; });\n\n\n\n\nvar MatrixDropdown = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixDropdown, _super);\n function MatrixDropdown() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatrixDropdown = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], MatrixDropdown);\n return MatrixDropdown;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-matrixdropdown\", MatrixDropdown);\n/* harmony default export */ __webpack_exports__[\"b\"] = MatrixDropdown;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MatrixDynamic; });\n\n\n\n\nvar MatrixDynamic = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixDynamic, _super);\n function MatrixDynamic() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatrixDynamic.prototype.addRowClick = function () {\n this.question.addRow();\n };\n MatrixDynamic = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], MatrixDynamic);\n return MatrixDynamic;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-matrixdynamic\", MatrixDynamic);\n/* harmony default export */ __webpack_exports__[\"b\"] = MatrixDynamic;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MatrixTable; });\n\n\n\nvar MatrixTable = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixTable, _super);\n function MatrixTable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MatrixTable.prototype, \"table\", {\n get: function () {\n return this.question.renderedTable;\n },\n enumerable: true,\n configurable: true\n });\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], MatrixTable.prototype, \"question\", void 0);\n MatrixTable = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], MatrixTable);\n return MatrixTable;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-matrixtable\", MatrixTable);\n/* harmony default export */ __webpack_exports__[\"b\"] = MatrixTable;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MultipleText; });\n\n\n\n\nvar MultipleText = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MultipleText, _super);\n function MultipleText() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MultipleText.prototype.getWidgetComponentName = function (question) {\n if (question.customWidget) {\n return \"survey-customwidget\";\n }\n return \"survey-text\";\n };\n Object.defineProperty(MultipleText.prototype, \"hasErrorsOnTop\", {\n get: function () {\n return this.question.survey.questionErrorLocation === \"top\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleText.prototype, \"hasErrorsOnBottom\", {\n get: function () {\n return this.question.survey.questionErrorLocation === \"bottom\";\n },\n enumerable: true,\n configurable: true\n });\n MultipleText = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], MultipleText);\n return MultipleText;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-multipletext\", MultipleText);\n/* harmony default export */ __webpack_exports__[\"b\"] = MultipleText;\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return OtherChoice; });\n\n\n\nvar OtherChoice = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(OtherChoice, _super);\n function OtherChoice() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OtherChoice.prototype.change = function (event) {\n this.question.comment = event.target.value;\n };\n OtherChoice.prototype.keyup = function (event) {\n if (!this.question.isSurveyInputTextUpdate)\n return;\n this.question.comment = event.target.value;\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], OtherChoice.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], OtherChoice.prototype, \"commentClass\", void 0);\n OtherChoice = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], OtherChoice);\n return OtherChoice;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-other-choice\", OtherChoice);\n/* harmony default export */ __webpack_exports__[\"b\"] = OtherChoice;\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Page; });\n\n\n\nvar Page = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Page, _super);\n function Page() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isCurrentPageChanged = false;\n return _this;\n }\n Page.prototype.mounted = function () {\n var _this = this;\n if (this.survey) {\n this.survey.afterRenderPage(this.$el);\n this.survey.onCurrentPageChanged.add(function (sender, options) {\n _this.isCurrentPageChanged = true;\n });\n }\n };\n Page.prototype.updated = function () {\n var self = this;\n self.survey.afterRenderPage(this.$el);\n this.$nextTick(function () {\n if (this.isCurrentPageChanged) {\n this.isCurrentPageChanged = false;\n self.survey.scrollToTopOnPageChange();\n }\n });\n };\n Object.defineProperty(Page.prototype, \"showHeader\", {\n get: function () {\n return this.survey.showPageTitles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Page.prototype, \"num\", {\n get: function () {\n return this.page.num > 0 ? this.page.num + \". \" : \"\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Page.prototype, \"rows\", {\n get: function () {\n return this.page.rows;\n },\n enumerable: true,\n configurable: true\n });\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Page.prototype, \"survey\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Page.prototype, \"page\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Page.prototype, \"css\", void 0);\n Page = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Page);\n return Page;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-page\", Page);\n/* harmony default export */ __webpack_exports__[\"b\"] = Page;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Panel; });\n\n\n\nvar Panel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Panel, _super);\n function Panel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isCollapsedValue = false;\n return _this;\n }\n Panel.prototype.mounted = function () {\n if (this.question.survey) {\n this.question.survey.afterRenderPanel(this.question, this.$el);\n }\n this.isCollapsed = this.question.isCollapsed;\n var self = this;\n this.question.registerFunctionOnPropertyValueChanged(\"state\", function (val) {\n self.isCollapsed = self.question.isCollapsed;\n });\n };\n Object.defineProperty(Panel.prototype, \"rootStyle\", {\n get: function () {\n var result = {};\n if (this.question.renderWidth) {\n result[\"width\"] = this.question.renderWidth;\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Panel.prototype, \"showIcon\", {\n get: function () {\n return (this.question && (this.question.isExpanded || this.question.isCollapsed));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Panel.prototype, \"rows\", {\n get: function () {\n return this.question.rows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Panel.prototype, \"hasTitle\", {\n get: function () {\n return this.question.title.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Panel.prototype, \"survey\", {\n get: function () {\n return this.question.survey;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Panel.prototype, \"iconCss\", {\n get: function () {\n var result = this.css.panel.icon;\n if (!this.isCollapsed)\n result += \" \" + this.css.panel.iconExpanded;\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Panel.prototype, \"isCollapsed\", {\n get: function () {\n return this.isCollapsedValue;\n },\n set: function (val) {\n this.isCollapsedValue = val;\n },\n enumerable: true,\n configurable: true\n });\n Panel.prototype.changeExpanded = function () {\n if (this.question.isCollapsed || this.question.isExpanded) {\n if (this.question.isCollapsed) {\n this.question.expand();\n }\n else {\n this.question.collapse();\n }\n }\n };\n Panel.prototype.getTitleStyle = function () {\n var result = this.css.panel.title;\n if (this.question.isCollapsed || this.question.isExpanded) {\n result += \" \" + this.css.panel.titleExpandable;\n }\n return result;\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Panel.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Panel.prototype, \"isEditMode\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Panel.prototype, \"css\", void 0);\n Panel = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Panel);\n return Panel;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-panel\", Panel);\n/* harmony default export */ __webpack_exports__[\"b\"] = Panel;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return PanelDynamic; });\n\n\n\n\nvar PanelDynamic = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(PanelDynamic, _super);\n function PanelDynamic() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(PanelDynamic.prototype, \"renderedPanels\", {\n get: function () {\n if (this.question.isRenderModeList)\n return this.question.panels;\n var panels = [];\n if (this.question.currentPanel) {\n panels.push(this.question.currentPanel);\n }\n return panels;\n },\n enumerable: true,\n configurable: true\n });\n PanelDynamic.prototype.removePanelClick = function (panel) {\n this.question.removePanelUI(panel);\n };\n PanelDynamic.prototype.addPanelClick = function () {\n this.question.addPanel();\n };\n PanelDynamic.prototype.getButtonAddCss = function (question) {\n var btnClasses = question.cssClasses.button + \" \" + question.cssClasses.buttonAdd;\n if (this.question.renderMode === \"list\") {\n btnClasses += \" \" + question.cssClasses.buttonAdd + \"--list-mode\";\n }\n return btnClasses;\n };\n PanelDynamic = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], PanelDynamic);\n return PanelDynamic;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-paneldynamic\", PanelDynamic);\n/* harmony default export */ __webpack_exports__[\"b\"] = PanelDynamic;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return PanelDynamicProgress; });\n\n\n\nvar PanelDynamicProgress = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(PanelDynamicProgress, _super);\n function PanelDynamicProgress() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(PanelDynamicProgress.prototype, \"rangeMax\", {\n get: function () {\n return this.question.panelCount - 1;\n },\n enumerable: true,\n configurable: true\n });\n PanelDynamicProgress.prototype.addPanelClick = function () {\n this.question.addPanelUI();\n };\n PanelDynamicProgress.prototype.prevPanelClick = function () {\n this.question.goToPrevPanel();\n };\n PanelDynamicProgress.prototype.nextPanelClick = function () {\n this.question.goToNextPanel();\n };\n PanelDynamicProgress.prototype.changeRange = function (event) {\n this.question.currentIndex = event.target.value;\n };\n PanelDynamicProgress.prototype.getButtonAddCss = function (question) { };\n PanelDynamicProgress.prototype.getButtonPrevCss = function (question) {\n var btnClasses = question.cssClasses.buttonPrev;\n if (!question.isPrevButtonShowing) {\n btnClasses += \" \" + question.cssClasses.buttonPrev + \"--disabled\";\n }\n return btnClasses;\n };\n PanelDynamicProgress.prototype.getButtonNextCss = function (question) {\n var btnClasses = question.cssClasses.buttonNext;\n if (!question.isNextButtonShowing) {\n btnClasses += \" \" + question.cssClasses.buttonNext + \"--disabled\";\n }\n return btnClasses;\n };\n Object.defineProperty(PanelDynamicProgress.prototype, \"progress\", {\n get: function () {\n return this.question.currentIndex / this.rangeMax * 100 + \"%\";\n },\n enumerable: true,\n configurable: true\n });\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], PanelDynamicProgress.prototype, \"question\", void 0);\n PanelDynamicProgress = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], PanelDynamicProgress);\n return PanelDynamicProgress;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-paneldynamicprogress\", PanelDynamicProgress);\n/* harmony default export */ __webpack_exports__[\"b\"] = PanelDynamicProgress;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Progress; });\n\n\n\nvar Progress = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Progress, _super);\n function Progress() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Progress.prototype, \"progress\", {\n get: function () {\n return this.survey.getProgress() + \"%\";\n },\n enumerable: true,\n configurable: true\n });\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Progress.prototype, \"survey\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Progress.prototype, \"css\", void 0);\n Progress = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Progress);\n return Progress;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-progress\", Progress);\n/* harmony default export */ __webpack_exports__[\"b\"] = Progress;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Radiogroup; });\n\n\n\n\nvar Radiogroup = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Radiogroup, _super);\n function Radiogroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Radiogroup.prototype, \"choicesCount\", {\n get: function () {\n return this.question.visibleChoices.length - 1;\n },\n enumerable: true,\n configurable: true\n });\n Radiogroup.prototype.getItemClass = function (item) {\n var cssClasses = this.question.cssClasses;\n var isDisabled = this.question.isReadOnly || !item.isEnabled;\n var isChecked = item.value === this.question.renderedValue;\n var allowHover = !isDisabled && !isChecked;\n var itemClass = this.question.cssClasses.item;\n if (isDisabled)\n itemClass += \" \" + cssClasses.itemDisabled;\n if (isChecked)\n itemClass += \" \" + cssClasses.itemChecked;\n if (allowHover)\n itemClass += \" \" + cssClasses.itemHover;\n if (!this.question.hasColumns) {\n itemClass +=\n this.question.colCount === 0\n ? \" \" + cssClasses.itemInline\n : \" sv-q-col-\" + this.question.colCount;\n }\n return itemClass;\n };\n Radiogroup = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Radiogroup);\n return Radiogroup;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-radiogroup\", Radiogroup);\n/* harmony default export */ __webpack_exports__[\"b\"] = Radiogroup;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return RadiogroupItem; });\n\n\n\nvar RadiogroupItem = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(RadiogroupItem, _super);\n function RadiogroupItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RadiogroupItem.prototype.getLabelClass = function (item) {\n return this.question.getLabelClass(item.value === this.question.value);\n };\n RadiogroupItem.prototype.getControlLabelClass = function (item) {\n return this.question.getControlLabelClass(item.value === this.question.value);\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], RadiogroupItem.prototype, \"question\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], RadiogroupItem.prototype, \"item\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], RadiogroupItem.prototype, \"index\", void 0);\n RadiogroupItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], RadiogroupItem);\n return RadiogroupItem;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-radiogroup-item\", RadiogroupItem);\n/* harmony default export */ __webpack_exports__[\"b\"] = RadiogroupItem;\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Rating; });\n\n\n\n\nvar Rating = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Rating, _super);\n function Rating() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Rating.prototype.getCss = function (question, item) {\n var css = question.cssClasses.item;\n if (question.value == item.value) {\n css = css + \" \" + question.cssClasses.selected;\n }\n return css;\n };\n Rating.prototype.change = function (e) {\n this.question.value = e.target.value;\n };\n Rating.prototype.getRootClass = function (question) {\n var classes = question.cssClasses;\n if (question.isReadOnly)\n return classes.root + \" \" + classes.disabled;\n return classes.root;\n };\n Rating = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Rating);\n return Rating;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-rating\", Rating);\n/* harmony default export */ __webpack_exports__[\"b\"] = Rating;\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__surveyModel__ = __webpack_require__(18);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Row; });\n\n\n\n\nvar Row = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Row, _super);\n function Row() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Row.prototype.mounted = function () {\n if (!!this.row) {\n __WEBPACK_IMPORTED_MODULE_3__surveyModel__[\"a\" /* VueSurveyModel */].updatePropertiesHash(this.row);\n }\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Row.prototype, \"row\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Row.prototype, \"css\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Row.prototype, \"survey\", void 0);\n Row = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Row);\n return Row;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-row\", Row);\n/* harmony default export */ __webpack_exports__[\"b\"] = Row;\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SurveyString; });\n\n\n\nvar SurveyString = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyString, _super);\n function SurveyString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], SurveyString.prototype, \"locString\", void 0);\n SurveyString = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], SurveyString);\n return SurveyString;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-string\", SurveyString);\n/* harmony default export */ __webpack_exports__[\"b\"] = SurveyString;\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__defaultCss_cssstandard__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__stylesmanager__ = __webpack_require__(25);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Survey; });\n\n\n\n\n\nvar Survey = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Survey, _super);\n function Survey() {\n return _super.call(this) || this;\n }\n Survey.prototype.forceUpdate = function () {\n this.$forceUpdate();\n };\n Survey.prototype.mounted = function () {\n var el = this.$el;\n if (el && this.survey)\n this.survey.doAfterRenderSurvey(el);\n this.survey.renderCallback = this.forceUpdate;\n this.survey.startTimerFromUI();\n };\n Survey.prototype.beforeDestroy = function () {\n this.survey.stopTimer();\n this.survey.renderCallback = undefined;\n };\n Object.defineProperty(Survey.prototype, \"hasTitle\", {\n get: function () {\n return !!this.survey.title && this.survey.showTitle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Survey.prototype, \"hasCompletedPage\", {\n get: function () {\n return this.survey.showCompletedPage && this.survey.state === \"completed\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Survey.prototype, \"css\", {\n get: function () {\n return this.survey.css;\n },\n enumerable: true,\n configurable: true\n });\n Survey.prototype.getNavBtnClasses = function (btnType) {\n var btnClass = this.css.navigation[btnType];\n return this.css.navigationButton + \" \" + btnClass;\n };\n Survey.prototype.getCompletedPageClasses = function () {\n var css = this.css;\n return css.body + \" \" + css.completedPage;\n };\n Survey.prototype.getCompletedStateClasses = function () {\n return this.css.saveData[this.survey.completedState];\n };\n Survey.prototype.start = function () {\n this.survey.start();\n };\n Survey.prototype.prevPage = function () {\n this.survey.prevPage();\n };\n Survey.prototype.nextPage = function () {\n this.survey.nextPage();\n };\n Survey.prototype.completeLastPage = function () {\n this.survey.completeLastPage();\n };\n Survey.prototype.doTrySaveAgain = function () {\n this.survey.doComplete();\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Survey.prototype, \"survey\", void 0);\n Survey = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Survey);\n return Survey;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n// TODO: make this functionality available via surveyCss in all examples\nObject.defineProperty(Survey, \"cssType\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_3__defaultCss_cssstandard__[\"a\" /* surveyCss */].currentType;\n },\n set: function (newType) {\n __WEBPACK_IMPORTED_MODULE_4__stylesmanager__[\"a\" /* StylesManager */].applyTheme(newType);\n },\n enumerable: true,\n configurable: false\n});\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey\", Survey);\n/* harmony default export */ __webpack_exports__[\"b\"] = Survey;\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(9);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Text; });\n\n\n\n\nvar Text = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Text, _super);\n function Text() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Text.prototype.change = function (event) {\n this.question.value = event.target.value;\n };\n Text.prototype.keyup = function (event) {\n if (!this.question.isInputTextUpdate)\n return;\n this.question.value = event.target.value;\n };\n Text = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Text);\n return Text;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* default */]));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-text\", Text);\n/* harmony default export */ __webpack_exports__[\"b\"] = Text;\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return TimerPanel; });\n\n\n\nvar TimerPanel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(TimerPanel, _super);\n function TimerPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TimerPanel.prototype, \"text\", {\n get: function () {\n return this.survey.timerInfoText;\n },\n enumerable: true,\n configurable: true\n });\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], TimerPanel.prototype, \"survey\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], TimerPanel.prototype, \"css\", void 0);\n TimerPanel = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], TimerPanel);\n return TimerPanel;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-timerpanel\", TimerPanel);\n/* harmony default export */ __webpack_exports__[\"b\"] = TimerPanel;\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__defaultCss_cssstandard__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__surveyModel__ = __webpack_require__(18);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Window; });\n\n\n\n\n\nvar Window = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Window, _super);\n function Window() {\n var _this = _super.call(this) || this;\n if (_this.window) {\n _this.surveyWindow = _this.window;\n }\n else {\n _this.surveyWindow = new __WEBPACK_IMPORTED_MODULE_4__surveyModel__[\"b\" /* VueSurveyWindowModel */](null, _this.survey);\n }\n if (_this.isexpanded !== undefined) {\n _this.surveyWindow.isExpanded = _this.isexpanded;\n }\n if (_this.isExpanded !== undefined) {\n _this.surveyWindow.isExpanded = _this.isExpanded;\n }\n if (_this.closeOnCompleteTimeout !== undefined) {\n _this.surveyWindow.closeOnCompleteTimeout = _this.closeOnCompleteTimeout;\n }\n _this.surveyWindow.isShowing = true;\n var self = _this;\n _this.surveyWindow.closeWindowOnCompleteCallback = function () {\n self.doHide();\n };\n return _this;\n }\n Object.defineProperty(Window.prototype, \"windowSurvey\", {\n get: function () {\n return this.surveyWindow.survey;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Window.prototype, \"css\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_3__defaultCss_cssstandard__[\"a\" /* surveyCss */].getCss();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Window.prototype, \"expandedCss\", {\n get: function () {\n return this.surveyWindow.isExpanded\n ? this.css.window.header.buttonCollapsed\n : this.css.window.header.buttonExpanded;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Window.prototype, \"isExpandedSurvey\", {\n get: function () {\n return this.surveyWindow.isExpanded;\n },\n set: function (val) {\n this.surveyWindow.isExpanded = val;\n },\n enumerable: true,\n configurable: true\n });\n Window.prototype.doExpand = function () {\n this.surveyWindow.isExpanded = !this.surveyWindow.isExpanded;\n };\n Window.prototype.doHide = function () {\n __WEBPACK_IMPORTED_MODULE_1_vue___default.a.set(this.surveyWindow, \"isShowing\", false);\n };\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Window.prototype, \"window\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Window.prototype, \"survey\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Window.prototype, \"isExpanded\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Window.prototype, \"isexpanded\", void 0);\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Prop\"]\n ], Window.prototype, \"closeOnCompleteTimeout\", void 0);\n Window = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __decorate */])([\n __WEBPACK_IMPORTED_MODULE_2_vue_property_decorator__[\"Component\"]\n ], Window);\n return Window;\n}(__WEBPACK_IMPORTED_MODULE_1_vue___default.a));\n\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.component(\"survey-window\", Window);\n/* harmony default export */ __webpack_exports__[\"b\"] = Window;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__itemvalue__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ChoicesRestfull; });\n\n\n\n\n\n\nvar XmlParser = /** @class */ (function () {\n function XmlParser() {\n this.parser = new DOMParser();\n }\n XmlParser.prototype.assignValue = function (target, name, value) {\n if (Array.isArray(target[name])) {\n target[name].push(value);\n }\n else if (target[name] !== undefined) {\n target[name] = [target[name]].concat(value);\n }\n else if (typeof value === \"object\" &&\n Object.keys(value).length === 1 &&\n Object.keys(value)[0] === name) {\n target[name] = value[name];\n }\n else {\n target[name] = value;\n }\n };\n XmlParser.prototype.xml2Json = function (xmlNode, result) {\n if (xmlNode.children && xmlNode.children.length > 0) {\n for (var i = 0; i < xmlNode.children.length; i++) {\n var childNode = xmlNode.children[i];\n var childObject = {};\n this.xml2Json(childNode, childObject);\n this.assignValue(result, childNode.nodeName, childObject);\n }\n }\n else {\n this.assignValue(result, xmlNode.nodeName, xmlNode.textContent);\n }\n };\n XmlParser.prototype.parseXmlString = function (xmlString) {\n var xmlRoot = this.parser.parseFromString(xmlString, \"text/xml\");\n var json = {};\n this.xml2Json(xmlRoot, json);\n return json;\n };\n return XmlParser;\n}());\n/**\n * A definition for filling choices for checkbox, dropdown and radiogroup questions from resfull services.\n * The run method call a restfull service and results can be get on getResultCallback.\n */\nvar ChoicesRestfull = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(ChoicesRestfull, _super);\n function ChoicesRestfull() {\n var _this = _super.call(this) || this;\n _this.lastObjHash = \"\";\n _this.isRunningValue = false;\n _this.processedUrl = \"\";\n _this.processedPath = \"\";\n _this.error = null;\n return _this;\n }\n Object.defineProperty(ChoicesRestfull, \"EncodeParameters\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_5__settings__[\"a\" /* settings */].webserviceEncodeParameters;\n },\n set: function (val) {\n __WEBPACK_IMPORTED_MODULE_5__settings__[\"a\" /* settings */].webserviceEncodeParameters = val;\n },\n enumerable: true,\n configurable: true\n });\n ChoicesRestfull.clearCache = function () {\n ChoicesRestfull.itemsResult = {};\n };\n ChoicesRestfull.addSameRequest = function (obj) {\n var hash = obj.objHash;\n var res = ChoicesRestfull.sendingSameRequests[hash];\n if (!res) {\n ChoicesRestfull.sendingSameRequests[obj.objHash] = [];\n return false;\n }\n res.push(obj);\n return true;\n };\n ChoicesRestfull.unregisterSameRequests = function (obj, items) {\n var res = ChoicesRestfull.sendingSameRequests[obj.objHash];\n delete ChoicesRestfull.sendingSameRequests[obj.objHash];\n for (var i = 0; i < res.length; i++) {\n if (!!res[i].getResultCallback) {\n res[i].getResultCallback(items);\n }\n }\n };\n ChoicesRestfull.getCachedItemsResult = function (obj) {\n var hash = obj.objHash;\n var res = ChoicesRestfull.itemsResult[hash];\n if (!res)\n return false;\n if (obj.getResultCallback) {\n obj.getResultCallback(res);\n }\n return true;\n };\n ChoicesRestfull.prototype.run = function (textProcessor) {\n if (textProcessor === void 0) { textProcessor = null; }\n if (!this.url || !this.getResultCallback)\n return;\n this.processedText(textProcessor);\n if (!this.processedUrl) {\n this.doEmptyResultCallback({});\n this.lastObjHash = this.objHash;\n return;\n }\n if (this.lastObjHash === this.objHash)\n return;\n this.lastObjHash = this.objHash;\n this.error = null;\n if (this.useChangedItemsResults())\n return;\n if (ChoicesRestfull.addSameRequest(this))\n return;\n this.sendRequest();\n };\n Object.defineProperty(ChoicesRestfull.prototype, \"isRunning\", {\n get: function () {\n return this.isRunningValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ChoicesRestfull.prototype, \"isWaitingForParameters\", {\n get: function () {\n return this.url && !this.processedUrl;\n },\n enumerable: true,\n configurable: true\n });\n ChoicesRestfull.prototype.useChangedItemsResults = function () {\n return ChoicesRestfull.getCachedItemsResult(this);\n };\n ChoicesRestfull.prototype.doEmptyResultCallback = function (serverResult) {\n var items = [];\n if (this.updateResultCallback) {\n items = this.updateResultCallback(items, serverResult);\n }\n this.getResultCallback(items);\n };\n ChoicesRestfull.prototype.processedText = function (textProcessor) {\n if (textProcessor) {\n var pUrl = textProcessor.processTextEx(this.url, false, __WEBPACK_IMPORTED_MODULE_5__settings__[\"a\" /* settings */].webserviceEncodeParameters);\n var pPath = textProcessor.processTextEx(this.path, false, __WEBPACK_IMPORTED_MODULE_5__settings__[\"a\" /* settings */].webserviceEncodeParameters);\n if (!pUrl.hasAllValuesOnLastRun || !pPath.hasAllValuesOnLastRun) {\n this.processedUrl = \"\";\n this.processedPath = \"\";\n }\n else {\n this.processedUrl = pUrl.text;\n this.processedPath = pPath.text;\n }\n }\n else {\n this.processedUrl = this.url;\n this.processedPath = this.path;\n }\n };\n ChoicesRestfull.prototype.parseResponse = function (response) {\n var parsedResponse;\n if (!!response &&\n typeof response.indexOf === \"function\" &&\n response.indexOf(\"<\") === 0) {\n var parser = new XmlParser();\n parsedResponse = parser.parseXmlString(response);\n }\n else {\n try {\n parsedResponse = JSON.parse(response);\n }\n catch (_a) {\n parsedResponse = (response || \"\")\n .split(\"\\n\")\n .map(function (s) { return s.trim(\" \"); })\n .filter(function (s) { return !!s; });\n }\n }\n return parsedResponse;\n };\n ChoicesRestfull.prototype.sendRequest = function () {\n this.isRunningValue = true;\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", this.processedUrl);\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n var self = this;\n xhr.onload = function () {\n self.isRunningValue = false;\n if (xhr.status === 200) {\n self.onLoad(self.parseResponse(xhr.response));\n }\n else {\n self.onError(xhr.statusText, xhr.responseText);\n }\n };\n var options = { request: xhr };\n if (!!ChoicesRestfull.onBeforeSendRequest) {\n ChoicesRestfull.onBeforeSendRequest(this, options);\n }\n this.beforeSendRequest();\n options.request.send();\n };\n ChoicesRestfull.prototype.getType = function () {\n return \"choicesByUrl\";\n };\n Object.defineProperty(ChoicesRestfull.prototype, \"isEmpty\", {\n get: function () {\n return !this.url && !this.path && !this.valueName && !this.titleName;\n },\n enumerable: true,\n configurable: true\n });\n ChoicesRestfull.prototype.getCustomPropertiesNames = function () {\n var properties = this.getCustomProperties();\n var res = new Array();\n for (var i = 0; i < properties.length; i++) {\n res.push(this.getCustomPropertyName(properties[i].name));\n }\n return res;\n };\n ChoicesRestfull.prototype.getCustomPropertyName = function (propertyName) {\n return propertyName + \"Name\";\n };\n ChoicesRestfull.prototype.getCustomProperties = function () {\n var properties = __WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].getProperties(this.itemValueType);\n var res = [];\n for (var i = 0; i < properties.length; i++) {\n if (properties[i].name === \"value\" ||\n properties[i].name === \"text\" ||\n properties[i].name === \"visibleIf\" ||\n properties[i].name === \"enableIf\")\n continue;\n res.push(properties[i]);\n }\n return res;\n };\n ChoicesRestfull.prototype.setData = function (json) {\n this.clear();\n if (json.url)\n this.url = json.url;\n if (json.path)\n this.path = json.path;\n if (json.valueName)\n this.valueName = json.valueName;\n if (json.titleName)\n this.titleName = json.titleName;\n var properties = this.getCustomPropertiesNames();\n for (var i = 0; i < properties.length; i++) {\n if (json[properties[i]])\n this[properties[i]] = json[properties[i]];\n }\n };\n ChoicesRestfull.prototype.getData = function () {\n if (this.isEmpty)\n return null;\n var res = {};\n if (this.url)\n res[\"url\"] = this.url;\n if (this.path)\n res[\"path\"] = this.path;\n if (this.valueName)\n res[\"valueName\"] = this.valueName;\n if (this.titleName)\n res[\"titleName\"] = this.titleName;\n var properties = this.getCustomPropertiesNames();\n for (var i = 0; i < properties.length; i++) {\n if (this[properties[i]])\n res[properties[i]] = this[properties[i]];\n }\n return res;\n };\n Object.defineProperty(ChoicesRestfull.prototype, \"url\", {\n get: function () {\n return this.getPropertyValue(\"url\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"url\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ChoicesRestfull.prototype, \"path\", {\n get: function () {\n return this.getPropertyValue(\"path\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"path\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ChoicesRestfull.prototype, \"valueName\", {\n get: function () {\n return this.getPropertyValue(\"valueName\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"valueName\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ChoicesRestfull.prototype, \"titleName\", {\n get: function () {\n return this.getPropertyValue(\"titleName\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"titleName\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ChoicesRestfull.prototype, \"allowEmptyResponse\", {\n get: function () {\n return this.getPropertyValue(\"allowEmptyResponse\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"allowEmptyResponse\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ChoicesRestfull.prototype, \"itemValueType\", {\n get: function () {\n if (!this.owner)\n return \"itemvalue\";\n var prop = __WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].findProperty(this.owner.getType(), \"choices\");\n if (!prop)\n return \"itemvalue\";\n if (prop.type == \"itemvalue[]\")\n return \"itemvalue\";\n return prop.type;\n },\n enumerable: true,\n configurable: true\n });\n ChoicesRestfull.prototype.clear = function () {\n this.url = \"\";\n this.path = \"\";\n this.valueName = \"\";\n this.titleName = \"\";\n var properties = this.getCustomPropertiesNames();\n for (var i = 0; i < properties.length; i++) {\n if (this[properties[i]])\n this[properties[i]] = \"\";\n }\n };\n ChoicesRestfull.prototype.beforeSendRequest = function () {\n if (!!this.beforeSendRequestCallback) {\n this.beforeSendRequestCallback();\n }\n };\n ChoicesRestfull.prototype.onLoad = function (result) {\n var items = [];\n var updatedResult = this.getResultAfterPath(result);\n if (updatedResult && updatedResult[\"length\"]) {\n for (var i = 0; i < updatedResult.length; i++) {\n var itemValue = updatedResult[i];\n if (!itemValue)\n continue;\n var value = !!this.getItemValueCallback\n ? this.getItemValueCallback(itemValue)\n : this.getValue(itemValue);\n var title = this.getTitle(itemValue);\n var item = new __WEBPACK_IMPORTED_MODULE_2__itemvalue__[\"a\" /* ItemValue */](value, title);\n this.setCustomProperties(item, itemValue);\n items.push(item);\n }\n }\n else {\n if (!this.allowEmptyResponse) {\n this.error = new __WEBPACK_IMPORTED_MODULE_4__error__[\"k\" /* WebRequestEmptyError */](null, this.owner);\n }\n }\n if (this.updateResultCallback) {\n items = this.updateResultCallback(items, result);\n }\n ChoicesRestfull.itemsResult[this.objHash] = items;\n this.getResultCallback(items);\n ChoicesRestfull.unregisterSameRequests(this, items);\n };\n ChoicesRestfull.prototype.setCustomProperties = function (item, itemValue) {\n var properties = this.getCustomProperties();\n for (var i = 0; i < properties.length; i++) {\n var prop = properties[i];\n var val = this.getValueCore(itemValue, this.getPropertyBinding(prop.name));\n if (!this.isValueEmpty(val)) {\n item[prop.name] = val;\n }\n }\n };\n ChoicesRestfull.prototype.getPropertyBinding = function (propertyName) {\n if (this[this.getCustomPropertyName(propertyName)])\n return this[this.getCustomPropertyName(propertyName)];\n if (this[propertyName])\n return this[propertyName];\n return propertyName;\n };\n ChoicesRestfull.prototype.onError = function (status, response) {\n this.error = new __WEBPACK_IMPORTED_MODULE_4__error__[\"l\" /* WebRequestError */](status, response, this.owner);\n this.doEmptyResultCallback(response);\n ChoicesRestfull.unregisterSameRequests(this, []);\n };\n ChoicesRestfull.prototype.getResultAfterPath = function (result) {\n if (!result)\n return result;\n if (!this.processedPath)\n return result;\n var pathes = this.getPathes();\n for (var i = 0; i < pathes.length; i++) {\n result = result[pathes[i]];\n if (!result)\n return null;\n }\n return result;\n };\n ChoicesRestfull.prototype.getPathes = function () {\n var pathes = [];\n if (this.processedPath.indexOf(\";\") > -1) {\n pathes = this.path.split(\";\");\n }\n else {\n pathes = this.processedPath.split(\",\");\n }\n if (pathes.length == 0)\n pathes.push(this.processedPath);\n return pathes;\n };\n ChoicesRestfull.prototype.getValue = function (item) {\n if (!item)\n return null;\n if (this.valueName)\n return this.getValueCore(item, this.valueName);\n if (!(item instanceof Object))\n return item;\n var len = Object.keys(item).length;\n if (len < 1)\n return null;\n return item[Object.keys(item)[0]];\n };\n ChoicesRestfull.prototype.getTitle = function (item) {\n var title = this.titleName ? this.titleName : \"title\";\n return this.getValueCore(item, title);\n };\n ChoicesRestfull.prototype.getValueCore = function (item, property) {\n if (!item)\n return null;\n if (property.indexOf(\".\") < 0)\n return item[property];\n var properties = property.split(\".\");\n for (var i = 0; i < properties.length; i++) {\n item = item[properties[i]];\n if (!item)\n return null;\n }\n return item;\n };\n Object.defineProperty(ChoicesRestfull.prototype, \"objHash\", {\n get: function () {\n return (this.processedUrl +\n \";\" +\n this.processedPath +\n \";\" +\n this.valueName +\n \";\" +\n this.titleName);\n },\n enumerable: true,\n configurable: true\n });\n ChoicesRestfull.itemsResult = {};\n ChoicesRestfull.sendingSameRequests = {};\n return ChoicesRestfull;\n}(__WEBPACK_IMPORTED_MODULE_1__base__[\"a\" /* Base */]));\n\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"choicesByUrl\", [\n \"url\",\n \"path\",\n \"valueName\",\n \"titleName\",\n { name: \"allowEmptyResponse:boolean\", default: false }\n], function () {\n return new ChoicesRestfull();\n});\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__expressions_expressionParser__ = __webpack_require__(125);\n/* unused harmony export ConditionsParserError */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ConditionsParser; });\n\nvar ConditionsParserError = /** @class */ (function () {\n function ConditionsParserError(at, code) {\n this.at = at;\n this.code = code;\n }\n return ConditionsParserError;\n}());\n\nvar ConditionsParser = /** @class */ (function () {\n function ConditionsParser() {\n }\n ConditionsParser.prototype.patchExpression = function (text) {\n return text\n .replace(/=>/g, \">=\")\n .replace(/=/g, \"!=\")\n .replace(/==/g, \"= \")\n .replace(/equals/g, \"equal \")\n .replace(/notequals/g, \"notequal \");\n };\n ConditionsParser.prototype.createCondition = function (text) {\n return this.parseExpression(text);\n };\n ConditionsParser.prototype.parseExpression = function (text) {\n try {\n var result = ConditionsParser.parserCache[text];\n if (result === undefined) {\n result = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__expressions_expressionParser__[\"a\" /* parse */])(this.patchExpression(text));\n if (!result.hasAsyncFunction()) {\n ConditionsParser.parserCache[text] = result;\n }\n }\n return result;\n }\n catch (e) {\n if (e instanceof __WEBPACK_IMPORTED_MODULE_0__expressions_expressionParser__[\"b\" /* SyntaxError */]) {\n this.conditionError = new ConditionsParserError(e.location.start.offset, e.message);\n }\n }\n };\n Object.defineProperty(ConditionsParser.prototype, \"error\", {\n get: function () {\n return this.conditionError;\n },\n enumerable: true,\n configurable: true\n });\n ConditionsParser.parserCache = {};\n return ConditionsParser;\n}());\n\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return dxSurveyService; });\n\n/**\n * The class contains methods to work with www.dxsurvey.com service.\n */\nvar dxSurveyService = /** @class */ (function () {\n function dxSurveyService() {\n }\n Object.defineProperty(dxSurveyService, \"serviceUrl\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_0__settings__[\"a\" /* settings */].surveyServiceUrl;\n },\n set: function (val) {\n __WEBPACK_IMPORTED_MODULE_0__settings__[\"a\" /* settings */].surveyServiceUrl = val;\n },\n enumerable: true,\n configurable: true\n });\n dxSurveyService.prototype.loadSurvey = function (surveyId, onLoad) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", dxSurveyService.serviceUrl + \"/getSurvey?surveyId=\" + surveyId);\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n xhr.onload = function () {\n var result = JSON.parse(xhr.response);\n onLoad(xhr.status == 200, result, xhr.response);\n };\n xhr.send();\n };\n dxSurveyService.prototype.getSurveyJsonAndIsCompleted = function (surveyId, clientId, onLoad) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", dxSurveyService.serviceUrl +\n \"/getSurveyAndIsCompleted?surveyId=\" +\n surveyId +\n \"&clientId=\" +\n clientId);\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n xhr.onload = function () {\n var result = JSON.parse(xhr.response);\n var surveyJson = result ? result.survey : null;\n var isCompleted = result ? result.isCompleted : null;\n onLoad(xhr.status == 200, surveyJson, isCompleted, xhr.response);\n };\n xhr.send();\n };\n dxSurveyService.prototype.sendResult = function (postId, result, onSendResult, clientId, isPartialCompleted) {\n if (clientId === void 0) { clientId = null; }\n if (isPartialCompleted === void 0) { isPartialCompleted = false; }\n var xhr = new XMLHttpRequest();\n xhr.open(\"POST\", dxSurveyService.serviceUrl + \"/post/\");\n xhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\");\n var data = { postId: postId, surveyResult: JSON.stringify(result) };\n if (clientId)\n data[\"clientId\"] = clientId;\n if (isPartialCompleted)\n data[\"isPartialCompleted\"] = true;\n var dataStringify = JSON.stringify(data);\n var self = this;\n xhr.onload = xhr.onerror = function () {\n if (!onSendResult)\n return;\n onSendResult(xhr.status === 200, xhr.response, xhr);\n };\n xhr.send(dataStringify);\n };\n dxSurveyService.prototype.sendFile = function (postId, file, onSendFile) {\n var xhr = new XMLHttpRequest();\n xhr.onload = xhr.onerror = function () {\n if (!onSendFile)\n return;\n onSendFile(xhr.status == 200, JSON.parse(xhr.response));\n };\n xhr.open(\"POST\", dxSurveyService.serviceUrl + \"/upload/\", true);\n var formData = new FormData();\n formData.append(\"file\", file);\n formData.append(\"postId\", postId);\n xhr.send(formData);\n };\n dxSurveyService.prototype.getResult = function (resultId, name, onGetResult) {\n var xhr = new XMLHttpRequest();\n var data = \"resultId=\" + resultId + \"&name=\" + name;\n xhr.open(\"GET\", dxSurveyService.serviceUrl + \"/getResult?\" + data);\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n var self = this;\n xhr.onload = function () {\n var result = null;\n var list = null;\n if (xhr.status == 200) {\n result = JSON.parse(xhr.response);\n list = [];\n for (var key in result.QuestionResult) {\n var el = { name: key, value: result.QuestionResult[key] };\n list.push(el);\n }\n }\n onGetResult(xhr.status == 200, result, list, xhr.response);\n };\n xhr.send();\n };\n dxSurveyService.prototype.isCompleted = function (resultId, clientId, onIsCompleted) {\n var xhr = new XMLHttpRequest();\n var data = \"resultId=\" + resultId + \"&clientId=\" + clientId;\n xhr.open(\"GET\", dxSurveyService.serviceUrl + \"/isCompleted?\" + data);\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n var self = this;\n xhr.onload = function () {\n var result = null;\n if (xhr.status == 200) {\n result = JSON.parse(xhr.response);\n }\n onIsCompleted(xhr.status == 200, result, xhr.response);\n };\n xhr.send();\n };\n return dxSurveyService;\n}());\n\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return englishStrings; });\n//Uncomment this line on creating a translation file\n//import { surveyLocalization } from \"../surveyStrings\";\nvar englishStrings = {\n pagePrevText: \"Previous\",\n pageNextText: \"Next\",\n completeText: \"Complete\",\n startSurveyText: \"Start\",\n otherItemText: \"Other (describe)\",\n noneItemText: \"None\",\n selectAllItemText: \"Select All\",\n progressText: \"Page {0} of {1}\",\n panelDynamicProgressText: \"Record {0} of {1}\",\n questionsProgressText: \"Answered {0}/{1} questions\",\n emptySurvey: \"There is no visible page or question in the survey.\",\n completingSurvey: \"Thank you for completing the survey!\",\n completingSurveyBefore: \"Our records show that you have already completed this survey.\",\n loadingSurvey: \"Loading Survey...\",\n optionsCaption: \"Choose...\",\n value: \"value\",\n requiredError: \"Please answer the question.\",\n requiredErrorInPanel: \"Please answer at least one question.\",\n requiredInAllRowsError: \"Please answer questions in all rows.\",\n numericError: \"The value should be numeric.\",\n textMinLength: \"Please enter at least {0} characters.\",\n textMaxLength: \"Please enter less than {0} characters.\",\n textMinMaxLength: \"Please enter more than {0} and less than {1} characters.\",\n minRowCountError: \"Please fill in at least {0} rows.\",\n minSelectError: \"Please select at least {0} variants.\",\n maxSelectError: \"Please select no more than {0} variants.\",\n numericMinMax: \"The '{0}' should be equal or more than {1} and equal or less than {2}\",\n numericMin: \"The '{0}' should be equal or more than {1}\",\n numericMax: \"The '{0}' should be equal or less than {1}\",\n invalidEmail: \"Please enter a valid e-mail address.\",\n invalidExpression: \"The expression: {0} should return 'true'.\",\n urlRequestError: \"The request returned error '{0}'. {1}\",\n urlGetChoicesError: \"The request returned empty data or the 'path' property is incorrect\",\n exceedMaxSize: \"The file size should not exceed {0}.\",\n otherRequiredError: \"Please enter the other value.\",\n uploadingFile: \"Your file is uploading. Please wait several seconds and try again.\",\n loadingFile: \"Loading...\",\n chooseFile: \"Choose file(s)...\",\n noFileChosen: \"No file chosen\",\n confirmDelete: \"Do you want to delete the record?\",\n keyDuplicationError: \"This value should be unique.\",\n addColumn: \"Add column\",\n addRow: \"Add row\",\n removeRow: \"Remove\",\n addPanel: \"Add new\",\n removePanel: \"Remove\",\n choices_Item: \"item\",\n matrix_column: \"Column\",\n matrix_row: \"Row\",\n savingData: \"The results are saving on the server...\",\n savingDataError: \"An error occurred and we could not save the results.\",\n savingDataSuccess: \"The results were saved successfully!\",\n saveAgainButton: \"Try again\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"You have spent {0} on this page and {1} in total.\",\n timerSpentPage: \"You have spent {0} on this page.\",\n timerSpentSurvey: \"You have spent {0} in total.\",\n timerLimitAll: \"You have spent {0} of {1} on this page and {2} of {3} in total.\",\n timerLimitPage: \"You have spent {0} of {1} on this page.\",\n timerLimitSurvey: \"You have spent {0} of {1} in total.\",\n cleanCaption: \"Clean\",\n clearCaption: \"Clear\",\n chooseFileCaption: \"Choose file\",\n removeFileCaption: \"Remove this file\",\n booleanCheckedLabel: \"Yes\",\n booleanUncheckedLabel: \"No\",\n confirmRemoveFile: \"Are you sure that you want to remove this file: {0}?\",\n confirmRemoveAllFiles: \"Are you sure that you want to remove all files?\"\n};\n//Uncomment these two lines on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n//surveyLocalization.locales[\"en\"] = englishStrings;\n//surveyLocalization.localeNames[\"en\"] = \"English\";\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__itemvalue__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__helpers__ = __webpack_require__(6);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionMatrixBaseModel; });\n\n\n\n\n\n\n/**\n * A Model for a matrix base question.\n */\nvar QuestionMatrixBaseModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionMatrixBaseModel, _super);\n function QuestionMatrixBaseModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.generatedVisibleRows = null;\n _this.generatedTotalRow = null;\n _this.filteredRows = null;\n _this.filteredColumns = null;\n _this.columns = _this.createColumnValues();\n _this.rows = _this.createItemValues(\"rows\");\n return _this;\n }\n QuestionMatrixBaseModel.prototype.createColumnValues = function () {\n return this.createItemValues(\"columns\");\n };\n QuestionMatrixBaseModel.prototype.getType = function () {\n return \"matrixbase\";\n };\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"isAllowTitleLeft\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"showHeader\", {\n /**\n * Set this property to false, to hide table header. The default value is true.\n */\n get: function () {\n return this.getPropertyValue(\"showHeader\");\n },\n set: function (val) {\n this.setPropertyValue(\"showHeader\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"columns\", {\n /**\n * The list of columns. A column has a value and an optional text\n */\n get: function () {\n return this.getPropertyValue(\"columns\");\n },\n set: function (newValue) {\n this.setPropertyValue(\"columns\", newValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"visibleColumns\", {\n get: function () {\n return !!this.filteredColumns ? this.filteredColumns : this.columns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"rows\", {\n /**\n * The list of rows. A row has a value and an optional text\n */\n get: function () {\n return this.getPropertyValue(\"rows\");\n },\n set: function (newValue) {\n var newRows = this.processRowsOnSet(newValue);\n this.setPropertyValue(\"rows\", newRows);\n this.filterItems();\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixBaseModel.prototype.processRowsOnSet = function (newRows) {\n return newRows;\n };\n QuestionMatrixBaseModel.prototype.getVisibleRows = function () {\n return [];\n };\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"visibleRows\", {\n /**\n * Returns the list of visible rows as model objects.\n * @see rowsVisibleIf\n */\n get: function () {\n return this.getVisibleRows();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"rowsVisibleIf\", {\n /**\n * An expression that returns true or false. It runs against each row item and if for this item it returns true, then the item is visible otherwise the item becomes invisible. Please use {item} to get the current item value in the expression.\n * @see visibleIf\n */\n get: function () {\n return this.getPropertyValue(\"rowsVisibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"rowsVisibleIf\", val);\n this.filterItems();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"columnsVisibleIf\", {\n /**\n * An expression that returns true or false. It runs against each column item and if for this item it returns true, then the item is visible otherwise the item becomes invisible. Please use {item} to get the current item value in the expression.\n * @see rowsVisibleIf\n */\n get: function () {\n return this.getPropertyValue(\"columnsVisibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"columnsVisibleIf\", val);\n this.filterItems();\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixBaseModel.prototype.runCondition = function (values, properties) {\n _super.prototype.runCondition.call(this, values, properties);\n this.runItemsCondition(values, properties);\n };\n QuestionMatrixBaseModel.prototype.filterItems = function () {\n if (this.areInvisibleElementsShowing) {\n this.onRowsChanged();\n return false;\n }\n if (this.isLoadingFromJson || !this.data)\n return false;\n return this.runItemsCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());\n };\n QuestionMatrixBaseModel.prototype.onColumnsChanged = function () { };\n QuestionMatrixBaseModel.prototype.onRowsChanged = function () {\n this.fireCallback(this.visibleRowsChangedCallback);\n };\n QuestionMatrixBaseModel.prototype.shouldRunColumnExpression = function () {\n return true;\n };\n QuestionMatrixBaseModel.prototype.hasRowsAsItems = function () {\n return true;\n };\n QuestionMatrixBaseModel.prototype.runItemsCondition = function (values, properties) {\n var oldVisibleRows = null;\n if (!!this.filteredRows && !__WEBPACK_IMPORTED_MODULE_5__helpers__[\"a\" /* Helpers */].isValueEmpty(this.defaultValue)) {\n oldVisibleRows = [];\n for (var i = 0; i < this.filteredRows.length; i++) {\n oldVisibleRows.push(this.filteredRows[i]);\n }\n }\n var hasChanges = this.hasRowsAsItems() && this.runConditionsForRows(values, properties);\n hasChanges = this.runConditionsForColumns(values, properties) || hasChanges;\n if (hasChanges) {\n if (!!this.filteredColumns || !!this.filteredRows) {\n this.clearIncorrectValues();\n }\n if (!!oldVisibleRows) {\n this.restoreNewVisibleRowsValues(oldVisibleRows);\n }\n this.generatedVisibleRows = null;\n this.onRowsChanged();\n }\n return hasChanges;\n };\n QuestionMatrixBaseModel.prototype.runConditionsForRows = function (values, properties) {\n var runner = !!this.rowsVisibleIf\n ? new __WEBPACK_IMPORTED_MODULE_4__conditions__[\"b\" /* ConditionRunner */](this.rowsVisibleIf)\n : null;\n this.filteredRows = [];\n var hasChanged = __WEBPACK_IMPORTED_MODULE_1__itemvalue__[\"a\" /* ItemValue */].runConditionsForItems(this.rows, this.filteredRows, runner, values, properties);\n if (this.filteredRows.length === this.rows.length) {\n this.filteredRows = null;\n }\n return hasChanged;\n };\n QuestionMatrixBaseModel.prototype.runConditionsForColumns = function (values, properties) {\n var runner = !!this.columnsVisibleIf\n ? new __WEBPACK_IMPORTED_MODULE_4__conditions__[\"b\" /* ConditionRunner */](this.columnsVisibleIf)\n : null;\n this.filteredColumns = [];\n var hasChanged = __WEBPACK_IMPORTED_MODULE_1__itemvalue__[\"a\" /* ItemValue */].runConditionsForItems(this.columns, this.filteredColumns, runner, values, properties, this.shouldRunColumnExpression());\n if (this.filteredColumns.length === this.columns.length) {\n this.filteredColumns = null;\n }\n return hasChanged;\n };\n QuestionMatrixBaseModel.prototype.clearIncorrectValues = function () {\n var val = this.value;\n if (!val)\n return;\n var newVal = null;\n var isChanged = false;\n var rows = !!this.filteredRows ? this.filteredRows : this.rows;\n var columns = !!this.filteredColumns ? this.filteredColumns : this.columns;\n for (var key in val) {\n if (__WEBPACK_IMPORTED_MODULE_1__itemvalue__[\"a\" /* ItemValue */].getItemByValue(rows, key) &&\n __WEBPACK_IMPORTED_MODULE_1__itemvalue__[\"a\" /* ItemValue */].getItemByValue(columns, val[key])) {\n if (newVal == null)\n newVal = {};\n newVal[key] = val[key];\n }\n else {\n isChanged = true;\n }\n }\n if (isChanged) {\n this.value = newVal;\n }\n _super.prototype.clearIncorrectValues.call(this);\n };\n QuestionMatrixBaseModel.prototype.clearInvisibleValuesInRows = function () {\n if (this.isEmpty())\n return;\n var newData = __WEBPACK_IMPORTED_MODULE_5__helpers__[\"a\" /* Helpers */].getUnbindValue(this.value);\n var rows = this.rows;\n for (var i = 0; i < rows.length; i++) {\n var key = rows[i].value;\n if (!!newData[key] && !rows[i].isVisible) {\n delete newData[key];\n }\n }\n if (__WEBPACK_IMPORTED_MODULE_5__helpers__[\"a\" /* Helpers */].isTwoValueEquals(newData, this.value))\n return;\n this.value = newData;\n };\n QuestionMatrixBaseModel.prototype.restoreNewVisibleRowsValues = function (oldVisibleRows) {\n var rows = !!this.filteredRows ? this.filteredRows : this.rows;\n var val = this.defaultValue;\n var newValue = __WEBPACK_IMPORTED_MODULE_5__helpers__[\"a\" /* Helpers */].getUnbindValue(this.value);\n var isChanged = false;\n for (var key in val) {\n if (__WEBPACK_IMPORTED_MODULE_1__itemvalue__[\"a\" /* ItemValue */].getItemByValue(rows, key) &&\n !__WEBPACK_IMPORTED_MODULE_1__itemvalue__[\"a\" /* ItemValue */].getItemByValue(oldVisibleRows, key)) {\n if (newValue == null)\n newValue = {};\n newValue[key] = val[key];\n isChanged = true;\n }\n }\n if (isChanged) {\n this.value = newValue;\n }\n };\n return QuestionMatrixBaseModel;\n}(__WEBPACK_IMPORTED_MODULE_2__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"matrixbase\", [\n \"columnsVisibleIf:condition\",\n \"rowsVisibleIf:condition\",\n { name: \"showHeader:boolean\", default: true }\n], undefined, \"question\");\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__panel__ = __webpack_require__(21);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return PageModel; });\n\n\n\n\n\n/**\n * The page object. It has elements collection, that contains questions and panels.\n */\nvar PageModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(PageModel, _super);\n function PageModel(name) {\n if (name === void 0) { name = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.hasShownValue = false;\n _this.isRandomizing = false;\n /**\n * Time in seconds end-user spent on this page\n */\n _this.timeSpent = 0;\n var self = _this;\n _this.locTitle.onGetTextCallback = function (text) {\n if (self.num > 0)\n return self.num + \". \" + text;\n return text;\n };\n return _this;\n }\n PageModel.prototype.getType = function () {\n return \"page\";\n };\n PageModel.prototype.toString = function () {\n return this.name;\n };\n Object.defineProperty(PageModel.prototype, \"isPage\", {\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n PageModel.prototype.delete = function () {\n if (!!this.survey) {\n this.removeSelfFromList(this.survey.pages);\n }\n };\n PageModel.prototype.onFirstRendering = function () {\n if (this.wasShown)\n return;\n _super.prototype.onFirstRendering.call(this);\n };\n Object.defineProperty(PageModel.prototype, \"visibleIndex\", {\n /**\n * The visible index of the page. It has values from 0 to visible page count - 1.\n * @see SurveyModel.visiblePages\n * @see SurveyModel.pages\n */\n get: function () {\n return this.getPropertyValue(\"visibleIndex\", -1);\n },\n set: function (val) {\n this.setPropertyValue(\"visibleIndex\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"isStarted\", {\n /**\n * Returns true, if the page is started page in the survey. It can be shown on the start only and the end-user could not comeback to it after it passed it.\n */\n get: function () {\n return this.survey && this.survey.isPageStarted(this);\n },\n enumerable: true,\n configurable: true\n });\n PageModel.prototype.getIsPageVisible = function (exceptionQuestion) {\n if (this.isStarted)\n return false;\n return _super.prototype.getIsPageVisible.call(this, exceptionQuestion);\n };\n Object.defineProperty(PageModel.prototype, \"num\", {\n get: function () {\n return this.getPropertyValue(\"num\", -1);\n },\n set: function (val) {\n if (this.num == val)\n return;\n this.setPropertyValue(\"num\", val);\n this.onNumChanged(val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"navigationButtonsVisibility\", {\n /**\n * Set this property to \"hide\" to make \"Prev\", \"Next\" and \"Complete\" buttons are invisible for this page. Set this property to \"show\" to make these buttons visible, even if survey showNavigationButtons property is false.\n * @see SurveyMode.showNavigationButtons\n */\n get: function () {\n return this.getPropertyValue(\"navigationButtonsVisibility\");\n },\n set: function (val) {\n this.setPropertyValue(\"navigationButtonsVisibility\", val.toLowerCase());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"wasShown\", {\n /**\n * The property returns true, if the page has been shown to the end-user.\n */\n get: function () {\n return this.hasShownValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"hasShown\", {\n get: function () {\n return this.wasShown;\n },\n enumerable: true,\n configurable: true\n });\n PageModel.prototype.setWasShown = function (val) {\n if (val == this.hasShownValue)\n return;\n this.hasShownValue = val;\n if (this.isDesignMode)\n return;\n if (val == true && this.areQuestionsRandomized) {\n this.randomizeElements();\n }\n };\n PageModel.prototype.randomizeElements = function () {\n if (this.isRandomizing)\n return;\n this.isRandomizing = true;\n var oldElements = [];\n var elements = this.elements;\n for (var i = 0; i < elements.length; i++) {\n oldElements.push(elements[i]);\n }\n var newElements = __WEBPACK_IMPORTED_MODULE_2__helpers__[\"a\" /* Helpers */].randomizeArray(oldElements);\n this.elements.splice(0, this.elements.length);\n for (var i = 0; i < newElements.length; i++) {\n this.elements.push(newElements[i]);\n }\n this.isRandomizing = false;\n };\n Object.defineProperty(PageModel.prototype, \"areQuestionsRandomized\", {\n /**\n * The property returns true, if the elements are randomized on the page\n * @see hasShown\n * @see questionsOrder\n * @see SurveyModel.questionsOrder\n */\n get: function () {\n var order = this.questionsOrder == \"default\" && this.survey\n ? this.survey.questionsOrder\n : this.questionsOrder;\n return order == \"random\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"questionsOrder\", {\n /**\n * Use this property to randomize questions. Set it to 'random' to randomize questions, 'initial' to keep them in the same order or 'default' to use the Survey questionsOrder property\n * @see SurveyModel.questionsOrder\n * @see areQuestionsRandomized\n */\n get: function () {\n return this.getPropertyValue(\"questionsOrder\");\n },\n set: function (val) {\n this.setPropertyValue(\"questionsOrder\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Call it to scroll to the page top.\n */\n PageModel.prototype.scrollToTop = function () {\n __WEBPACK_IMPORTED_MODULE_3__base__[\"c\" /* SurveyElement */].ScrollElementToTop(this.id);\n };\n // public get timeSpent(): number {\n // return this.getPropertyValue(\"timeSpent\", 0);\n // }\n // public set timeSpent(val: number) {\n // this.setPropertyValue(\"timeSpent\", val);\n // }\n /**\n * Returns the list of all panels in the page\n */\n PageModel.prototype.getPanels = function (visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n var result = new Array();\n this.addPanelsIntoList(result, visibleOnly, includingDesignTime);\n return result;\n };\n Object.defineProperty(PageModel.prototype, \"maxTimeToFinish\", {\n /**\n * The maximum time in seconds that end-user has to complete the page. If the value is 0 or less, the end-user has unlimited number of time to finish the page.\n * @see startTimer\n * @see SurveyModel.maxTimeToFinishPage\n */\n get: function () {\n return this.getPropertyValue(\"maxTimeToFinish\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"maxTimeToFinish\", val);\n },\n enumerable: true,\n configurable: true\n });\n PageModel.prototype.onNumChanged = function (value) { };\n PageModel.prototype.onVisibleChanged = function () {\n if (this.isRandomizing)\n return;\n _super.prototype.onVisibleChanged.call(this);\n if (this.survey != null) {\n this.survey.pageVisibilityChanged(this, this.isVisible);\n }\n };\n PageModel.prototype.dragDropStart = function (src, target, nestedPanelDepth) {\n if (nestedPanelDepth === void 0) { nestedPanelDepth = -1; }\n this.dragDropInfo = new __WEBPACK_IMPORTED_MODULE_4__panel__[\"a\" /* DragDropInfo */](src, target, nestedPanelDepth);\n };\n PageModel.prototype.dragDropMoveTo = function (destination, isBottom, isEdge) {\n if (isBottom === void 0) { isBottom = false; }\n if (isEdge === void 0) { isEdge = false; }\n if (!this.dragDropInfo)\n return false;\n this.dragDropInfo.destination = destination;\n this.dragDropInfo.isBottom = isBottom;\n this.dragDropInfo.isEdge = isEdge;\n this.correctDragDropInfo(this.dragDropInfo);\n if (!this.dragDropCanDropTagert())\n return false;\n if (!this.dragDropCanDropSource() || !this.dragDropAllowFromSurvey()) {\n if (!!this.dragDropInfo.source) {\n var row = this.dragDropFindRow(this.dragDropInfo.target);\n this.updateRowsRemoveElementFromRow(this.dragDropInfo.target, row);\n }\n return false;\n }\n this.dragDropAddTarget(this.dragDropInfo);\n return true;\n };\n PageModel.prototype.correctDragDropInfo = function (dragDropInfo) {\n if (!dragDropInfo.destination)\n return;\n var panel = dragDropInfo.destination.isPanel\n ? dragDropInfo.destination\n : null;\n if (!panel)\n return;\n if (!dragDropInfo.target.isLayoutTypeSupported(panel.getChildrenLayoutType())) {\n dragDropInfo.isEdge = true;\n }\n };\n PageModel.prototype.dragDropAllowFromSurvey = function () {\n var dest = this.dragDropInfo.destination;\n if (!dest || !this.survey)\n return true;\n var insertBefore = null;\n var insertAfter = null;\n var parent = dest.isPage || (!this.dragDropInfo.isEdge && dest.isPanel)\n ? dest\n : dest.parent;\n if (!dest.isPage) {\n var container = dest.parent;\n if (!!container) {\n var elements = container.elements;\n var index = elements.indexOf(dest);\n if (index > -1) {\n insertBefore = dest;\n insertAfter = dest;\n if (this.dragDropInfo.isBottom) {\n insertBefore =\n index < elements.length - 1 ? elements[index + 1] : null;\n }\n else {\n insertAfter = index > 0 ? elements[index - 1] : null;\n }\n }\n }\n }\n var options = {\n target: this.dragDropInfo.target,\n source: this.dragDropInfo.source,\n parent: parent,\n insertAfter: insertAfter,\n insertBefore: insertBefore\n };\n return this.survey.dragAndDropAllow(options);\n };\n PageModel.prototype.dragDropFinish = function (isCancel) {\n if (isCancel === void 0) { isCancel = false; }\n if (!this.dragDropInfo)\n return;\n var target = this.dragDropInfo.target;\n var row = this.dragDropFindRow(target);\n var targetIndex = this.dragDropGetElementIndex(target, row);\n this.updateRowsRemoveElementFromRow(target, row);\n if (!isCancel && !!row) {\n var src = this.dragDropInfo.source;\n var isSamePanel = false;\n if (!!src && !!src.parent) {\n isSamePanel = row.panel == src.parent;\n if (isSamePanel) {\n row.panel.dragDropMoveElement(src, target, targetIndex);\n targetIndex = -1;\n }\n else {\n src.parent.removeElement(src);\n }\n }\n if (targetIndex > -1) {\n row.panel.addElement(target, targetIndex);\n }\n }\n this.dragDropInfo = null;\n return !isCancel ? target : null;\n };\n PageModel.prototype.dragDropGetElementIndex = function (target, row) {\n if (!row)\n return -1;\n var index = row.elements.indexOf(target);\n if (row.index == 0)\n return index;\n var prevRow = row.panel.rows[row.index - 1];\n var prevElement = prevRow.elements[prevRow.elements.length - 1];\n return index + row.panel.elements.indexOf(prevElement) + 1;\n };\n PageModel.prototype.dragDropCanDropTagert = function () {\n var destination = this.dragDropInfo.destination;\n if (!destination || destination.isPage)\n return true;\n return this.dragDropCanDropCore(this.dragDropInfo.target, destination);\n };\n PageModel.prototype.dragDropCanDropSource = function () {\n var source = this.dragDropInfo.source;\n if (!source)\n return true;\n var destination = this.dragDropInfo.destination;\n if (!this.dragDropCanDropCore(source, destination))\n return false;\n return this.dragDropCanDropNotNext(source, destination, this.dragDropInfo.isEdge, this.dragDropInfo.isBottom);\n };\n PageModel.prototype.dragDropCanDropCore = function (target, destination) {\n if (!destination)\n return true;\n if (this.dragDropIsSameElement(destination, target))\n return false;\n if (target.isPanel) {\n var pnl = target;\n if (pnl.containsElement(destination) ||\n !!pnl.getElementByName(destination.name))\n return false;\n }\n return true;\n };\n PageModel.prototype.dragDropCanDropNotNext = function (source, destination, isEdge, isBottom) {\n if (!destination || (destination.isPanel && !isEdge))\n return true;\n if (source.parent !== destination.parent)\n return true;\n var pnl = source.parent;\n var srcIndex = pnl.elements.indexOf(source);\n var destIndex = pnl.elements.indexOf(destination);\n if (destIndex < srcIndex && !isBottom)\n destIndex--;\n if (isBottom)\n destIndex++;\n return srcIndex < destIndex\n ? destIndex - srcIndex > 1\n : srcIndex - destIndex > 0;\n };\n PageModel.prototype.dragDropIsSameElement = function (el1, el2) {\n return el1 == el2 || el1.name == el2.name;\n };\n return PageModel;\n}(__WEBPACK_IMPORTED_MODULE_4__panel__[\"b\" /* PanelModelBase */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"page\", [\n {\n name: \"navigationButtonsVisibility\",\n default: \"inherit\",\n choices: [\"inherit\", \"show\", \"hide\"]\n },\n {\n name: \"questionsOrder\",\n default: \"default\",\n choices: [\"default\", \"initial\", \"random\"]\n },\n { name: \"maxTimeToFinish:number\", default: 0, minValue: 0 }\n], function () {\n return new PageModel();\n}, \"panelbase\");\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base__ = __webpack_require__(8);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionCustomWidget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CustomWidgetCollection; });\n\nvar QuestionCustomWidget = /** @class */ (function () {\n function QuestionCustomWidget(name, widgetJson) {\n this.name = name;\n this.widgetJson = widgetJson;\n this.htmlTemplate = widgetJson.htmlTemplate ? widgetJson.htmlTemplate : \"\";\n }\n QuestionCustomWidget.prototype.afterRender = function (question, el) {\n if (this.widgetJson.afterRender)\n this.widgetJson.afterRender(question, el);\n };\n QuestionCustomWidget.prototype.willUnmount = function (question, el) {\n if (this.widgetJson.willUnmount)\n this.widgetJson.willUnmount(question, el);\n };\n QuestionCustomWidget.prototype.getDisplayValue = function (question, value) {\n if (value === void 0) { value = undefined; }\n if (this.widgetJson.getDisplayValue)\n return this.widgetJson.getDisplayValue(question, value);\n return null;\n };\n QuestionCustomWidget.prototype.isFit = function (question) {\n if (this.isLibraryLoaded() && this.widgetJson.isFit)\n return this.widgetJson.isFit(question);\n return false;\n };\n QuestionCustomWidget.prototype.activatedByChanged = function (activatedBy) {\n if (this.isLibraryLoaded() && this.widgetJson.activatedByChanged) {\n this.widgetJson.activatedByChanged(activatedBy);\n }\n };\n QuestionCustomWidget.prototype.isLibraryLoaded = function () {\n if (this.widgetJson.widgetIsLoaded)\n return this.widgetJson.widgetIsLoaded() == true;\n return true;\n };\n Object.defineProperty(QuestionCustomWidget.prototype, \"isDefaultRender\", {\n get: function () {\n return this.widgetJson.isDefaultRender;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCustomWidget.prototype, \"pdfQuestionType\", {\n get: function () {\n return this.widgetJson.pdfQuestionType;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCustomWidget.prototype, \"pdfRender\", {\n get: function () {\n return this.widgetJson.pdfRender;\n },\n enumerable: true,\n configurable: true\n });\n return QuestionCustomWidget;\n}());\n\nvar CustomWidgetCollection = /** @class */ (function () {\n function CustomWidgetCollection() {\n this.widgetsValues = [];\n this.widgetsActivatedBy = {};\n this.onCustomWidgetAdded = new __WEBPACK_IMPORTED_MODULE_0__base__[\"b\" /* Event */]();\n }\n Object.defineProperty(CustomWidgetCollection.prototype, \"widgets\", {\n get: function () {\n return this.widgetsValues;\n },\n enumerable: true,\n configurable: true\n });\n CustomWidgetCollection.prototype.addCustomWidget = function (widgetJson, activatedBy) {\n if (activatedBy === void 0) { activatedBy = \"property\"; }\n var name = widgetJson.name;\n if (!name) {\n name = \"widget_\" + this.widgets.length + 1;\n }\n var customWidget = new QuestionCustomWidget(name, widgetJson);\n this.widgetsValues.push(customWidget);\n this.widgetsActivatedBy[name] = activatedBy;\n customWidget.activatedByChanged(activatedBy);\n this.onCustomWidgetAdded.fire(customWidget, null);\n };\n /**\n * Returns the way the custom wiget is activated. It can be activated by a property (\"property\"), question type (\"type\") or by new/custom question type (\"customtype\").\n * @param widgetName the custom widget name\n * @see setActivatedBy\n */\n CustomWidgetCollection.prototype.getActivatedBy = function (widgetName) {\n var res = this.widgetsActivatedBy[widgetName];\n return res ? res : \"property\";\n };\n /**\n * Sets the way the custom wiget is activated. The activation types are: property (\"property\"), question type (\"type\") or new/custom question type (\"customtype\"). A custom wiget may support all or only some of this activation types.\n * @param widgetName\n * @param activatedBy there are three possible variants: \"property\", \"type\" and \"customtype\"\n */\n CustomWidgetCollection.prototype.setActivatedBy = function (widgetName, activatedBy) {\n if (!widgetName || !activatedBy)\n return;\n var widget = this.getCustomWidgetByName(widgetName);\n if (!widget)\n return;\n this.widgetsActivatedBy[widgetName] = activatedBy;\n widget.activatedByChanged(activatedBy);\n };\n CustomWidgetCollection.prototype.clear = function () {\n this.widgetsValues = [];\n };\n CustomWidgetCollection.prototype.getCustomWidgetByName = function (name) {\n for (var i = 0; i < this.widgets.length; i++) {\n if (this.widgets[i].name == name)\n return this.widgets[i];\n }\n return null;\n };\n CustomWidgetCollection.prototype.getCustomWidget = function (question) {\n for (var i = 0; i < this.widgetsValues.length; i++) {\n if (this.widgetsValues[i].isFit(question))\n return this.widgetsValues[i];\n }\n return null;\n };\n CustomWidgetCollection.Instance = new CustomWidgetCollection();\n return CustomWidgetCollection;\n}());\n\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question_baseselect__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__itemvalue__ = __webpack_require__(15);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionDropdownModel; });\n\n\n\n\n\n\n/**\n * A Model for a dropdown question\n */\nvar QuestionDropdownModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionDropdownModel, _super);\n function QuestionDropdownModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.minMaxChoices = [];\n _this.createLocalizableString(\"optionsCaption\", _this);\n var self = _this;\n _this.registerFunctionOnPropertiesValueChanged([\"choicesMin\", \"choicesMax\", \"choicesStep\"], function () {\n self.onVisibleChoicesChanged();\n });\n return _this;\n }\n Object.defineProperty(QuestionDropdownModel.prototype, \"showOptionsCaption\", {\n /**\n * This flag controls whether to show options caption item ('Choose...').\n */\n get: function () {\n return this.getPropertyValue(\"showOptionsCaption\");\n },\n set: function (val) {\n this.setPropertyValue(\"showOptionsCaption\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionDropdownModel.prototype, \"optionsCaption\", {\n /**\n * Use this property to set the options caption different from the default value. The default value is taken from localization strings.\n */\n get: function () {\n return this.getLocalizableStringText(\"optionsCaption\", __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"optionsCaption\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"optionsCaption\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionDropdownModel.prototype, \"locOptionsCaption\", {\n get: function () {\n return this.getLocalizableString(\"optionsCaption\");\n },\n enumerable: true,\n configurable: true\n });\n QuestionDropdownModel.prototype.getType = function () {\n return \"dropdown\";\n };\n Object.defineProperty(QuestionDropdownModel.prototype, \"selectedItem\", {\n get: function () {\n if (this.isEmpty())\n return null;\n return __WEBPACK_IMPORTED_MODULE_5__itemvalue__[\"a\" /* ItemValue */].getItemByValue(this.visibleChoices, this.value);\n },\n enumerable: true,\n configurable: true\n });\n QuestionDropdownModel.prototype.supportGoNextPageAutomatic = function () {\n return true;\n };\n QuestionDropdownModel.prototype.getChoices = function () {\n var items = _super.prototype.getChoices.call(this);\n if (this.choicesMax <= this.choicesMin)\n return items;\n var res = [];\n for (var i = 0; i < items.length; i++) {\n res.push(items[i]);\n }\n if (this.minMaxChoices.length === 0 ||\n this.minMaxChoices.length !==\n (this.choicesMax - this.choicesMin) / this.choicesStep + 1) {\n this.minMaxChoices = [];\n for (var i = this.choicesMin; i <= this.choicesMax; i += this.choicesStep) {\n this.minMaxChoices.push(new __WEBPACK_IMPORTED_MODULE_5__itemvalue__[\"a\" /* ItemValue */](i));\n }\n }\n res = res.concat(this.minMaxChoices);\n return res;\n };\n Object.defineProperty(QuestionDropdownModel.prototype, \"choicesMin\", {\n /**\n * Use this and choicesMax property to automatically add choices. For example choicesMin = 1 and choicesMax = 10 will generate ten additional choices from 1 to 10.\n * @see choicesMax\n * @see choicesStep\n */\n get: function () {\n return this.getPropertyValue(\"choicesMin\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"choicesMin\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionDropdownModel.prototype, \"choicesMax\", {\n /**\n * Use this and choicesMax property to automatically add choices. For example choicesMin = 1 and choicesMax = 10 will generate ten additional choices from 1 to 10.\n * @see choicesMin\n * @see choicesStep\n */\n get: function () {\n return this.getPropertyValue(\"choicesMax\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"choicesMax\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionDropdownModel.prototype, \"choicesStep\", {\n /**\n * The default value is 1. It tells the value of the iterator between choicesMin and choicesMax properties.\n * If choicesMin = 10, choicesMax = 30 and choicesStep = 10 then you will have only three additional choices: [10, 20, 30].\n * @see choicesMin\n * @see choicesMax\n */\n get: function () {\n return this.getPropertyValue(\"choicesStep\", 1);\n },\n set: function (val) {\n if (val < 1)\n val = 1;\n this.setPropertyValue(\"choicesStep\", val);\n },\n enumerable: true,\n configurable: true\n });\n return QuestionDropdownModel;\n}(__WEBPACK_IMPORTED_MODULE_3__question_baseselect__[\"b\" /* QuestionSelectBase */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"dropdown\", [\n { name: \"optionsCaption\", serializationProperty: \"locOptionsCaption\" },\n { name: \"showOptionsCaption:boolean\", default: true },\n { name: \"choicesMin:number\", default: 0 },\n { name: \"choicesMax:number\", default: 0 },\n { name: \"choicesStep:number\", default: 1, minValue: 1 }\n], function () {\n return new QuestionDropdownModel(\"\");\n}, \"selectbase\");\n__WEBPACK_IMPORTED_MODULE_2__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"dropdown\", function (name) {\n var q = new QuestionDropdownModel(name);\n q.choices = __WEBPACK_IMPORTED_MODULE_2__questionfactory__[\"a\" /* QuestionFactory */].DefaultChoices;\n return q;\n});\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__conditions__ = __webpack_require__(13);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionExpressionModel; });\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = getCurrecyCodes;\n\n\n\n\n\n\n/**\n * A Model for expression question. It is a read-only question. It calculates value based on epxression property.\n */\nvar QuestionExpressionModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionExpressionModel, _super);\n function QuestionExpressionModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.createLocalizableString(\"format\", _this);\n var self = _this;\n _this.registerFunctionOnPropertyValueChanged(\"expression\", function () {\n if (self.expressionRunner) {\n self.expressionRunner = new __WEBPACK_IMPORTED_MODULE_5__conditions__[\"a\" /* ExpressionRunner */](self.expression);\n }\n });\n return _this;\n }\n QuestionExpressionModel.prototype.getType = function () {\n return \"expression\";\n };\n Object.defineProperty(QuestionExpressionModel.prototype, \"format\", {\n /**\n * Use this property to display the value in your own format. Make sure you have \"{0}\" substring in your string, to display the actual value.\n */\n get: function () {\n return this.getLocalizableStringText(\"format\", \"\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"format\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionExpressionModel.prototype, \"locFormat\", {\n get: function () {\n return this.getLocalizableString(\"format\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionExpressionModel.prototype, \"expression\", {\n /**\n * The Expression that used to calculate the question value. You may use standard operators like +, -, * and /, squares (). Here is the example of accessing the question value {questionname}.\n *
Example: \"({quantity} * {price}) * (100 - {discount}) / 100\"\n */\n get: function () {\n return this.getPropertyValue(\"expression\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"expression\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionExpressionModel.prototype.locCalculation = function () {\n this.expressionIsRunning = true;\n };\n QuestionExpressionModel.prototype.unlocCalculation = function () {\n this.expressionIsRunning = false;\n };\n QuestionExpressionModel.prototype.runCondition = function (values, properties) {\n var _this = this;\n _super.prototype.runCondition.call(this, values, properties);\n if (!this.expression || this.expressionIsRunning)\n return;\n this.locCalculation();\n if (!this.expressionRunner) {\n this.expressionRunner = new __WEBPACK_IMPORTED_MODULE_5__conditions__[\"a\" /* ExpressionRunner */](this.expression);\n }\n this.expressionRunner.onRunComplete = function (newValue) {\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isTwoValueEquals(newValue, _this.value)) {\n _this.value = newValue;\n }\n _this.unlocCalculation();\n };\n this.expressionRunner.run(values, properties);\n };\n Object.defineProperty(QuestionExpressionModel.prototype, \"maximumFractionDigits\", {\n /**\n * The maximum number of fraction digits to use if displayStyle is not \"none\". Possible values are from 0 to 20. The default value is -1 and it means that this property is not used.\n */\n get: function () {\n return this.getPropertyValue(\"maximumFractionDigits\", -1);\n },\n set: function (val) {\n if (val < -1 || val > 20)\n return;\n this.setPropertyValue(\"maximumFractionDigits\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionExpressionModel.prototype, \"minimumFractionDigits\", {\n /**\n * The minimum number of fraction digits to use if displayStyle is not \"none\". Possible values are from 0 to 20. The default value is -1 and it means that this property is not used.\n */\n get: function () {\n return this.getPropertyValue(\"minimumFractionDigits\", -1);\n },\n set: function (val) {\n if (val < -1 || val > 20)\n return;\n this.setPropertyValue(\"minimumFractionDigits\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionExpressionModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n var val = this.isValueEmpty(value) ? this.defaultValue : value;\n if (this.isValueEmpty(val))\n return \"\";\n var str = this.getValueAsStr(val);\n if (!this.format)\n return str;\n return this.format[\"format\"](str);\n };\n Object.defineProperty(QuestionExpressionModel.prototype, \"displayStyle\", {\n /**\n * You may set this property to \"decimal\", \"currency\", \"percent\" or \"date\". If you set it to \"currency\", you may use the currency property to display the value in currency different from USD.\n * @see currency\n */\n get: function () {\n return this.getPropertyValue(\"displayStyle\");\n },\n set: function (val) {\n this.setPropertyValue(\"displayStyle\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionExpressionModel.prototype, \"currency\", {\n /**\n * Use it to display the value in the currency differen from USD. The displayStype should be set to \"currency\".\n * @see displayStyle\n */\n get: function () {\n return this.getPropertyValue(\"currency\");\n },\n set: function (val) {\n if (getCurrecyCodes().indexOf(val) < 0)\n return;\n this.setPropertyValue(\"currency\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionExpressionModel.prototype, \"useGrouping\", {\n get: function () {\n return this.getPropertyValue(\"useGrouping\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"useGrouping\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionExpressionModel.prototype.getValueAsStr = function (val) {\n if (this.displayStyle == \"date\") {\n var d = new Date(val);\n if (!!d && !!d.toLocaleDateString)\n return d.toLocaleDateString();\n }\n if (this.displayStyle != \"none\" && __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isNumber(val)) {\n var locale = this.getLocale();\n if (!locale)\n locale = \"en\";\n var options = {\n style: this.displayStyle,\n currency: this.currency,\n useGrouping: this.useGrouping\n };\n if (this.maximumFractionDigits > -1) {\n options[\"maximumFractionDigits\"] = this.maximumFractionDigits;\n }\n if (this.minimumFractionDigits > -1) {\n options[\"minimumFractionDigits\"] = this.minimumFractionDigits;\n }\n return val.toLocaleString(locale, options);\n }\n return val.toString();\n };\n return QuestionExpressionModel;\n}(__WEBPACK_IMPORTED_MODULE_2__question__[\"a\" /* Question */]));\n\nfunction getCurrecyCodes() {\n return [\n \"AED\",\n \"AFN\",\n \"ALL\",\n \"AMD\",\n \"ANG\",\n \"AOA\",\n \"ARS\",\n \"AUD\",\n \"AWG\",\n \"AZN\",\n \"BAM\",\n \"BBD\",\n \"BDT\",\n \"BGN\",\n \"BHD\",\n \"BIF\",\n \"BMD\",\n \"BND\",\n \"BOB\",\n \"BOV\",\n \"BRL\",\n \"BSD\",\n \"BTN\",\n \"BWP\",\n \"BYN\",\n \"BZD\",\n \"CAD\",\n \"CDF\",\n \"CHE\",\n \"CHF\",\n \"CHW\",\n \"CLF\",\n \"CLP\",\n \"CNY\",\n \"COP\",\n \"COU\",\n \"CRC\",\n \"CUC\",\n \"CUP\",\n \"CVE\",\n \"CZK\",\n \"DJF\",\n \"DKK\",\n \"DOP\",\n \"DZD\",\n \"EGP\",\n \"ERN\",\n \"ETB\",\n \"EUR\",\n \"FJD\",\n \"FKP\",\n \"GBP\",\n \"GEL\",\n \"GHS\",\n \"GIP\",\n \"GMD\",\n \"GNF\",\n \"GTQ\",\n \"GYD\",\n \"HKD\",\n \"HNL\",\n \"HRK\",\n \"HTG\",\n \"HUF\",\n \"IDR\",\n \"ILS\",\n \"INR\",\n \"IQD\",\n \"IRR\",\n \"ISK\",\n \"JMD\",\n \"JOD\",\n \"JPY\",\n \"KES\",\n \"KGS\",\n \"KHR\",\n \"KMF\",\n \"KPW\",\n \"KRW\",\n \"KWD\",\n \"KYD\",\n \"KZT\",\n \"LAK\",\n \"LBP\",\n \"LKR\",\n \"LRD\",\n \"LSL\",\n \"LYD\",\n \"MAD\",\n \"MDL\",\n \"MGA\",\n \"MKD\",\n \"MMK\",\n \"MNT\",\n \"MOP\",\n \"MRO\",\n \"MUR\",\n \"MVR\",\n \"MWK\",\n \"MXN\",\n \"MXV\",\n \"MYR\",\n \"MZN\",\n \"NAD\",\n \"NGN\",\n \"NIO\",\n \"NOK\",\n \"NPR\",\n \"NZD\",\n \"OMR\",\n \"PAB\",\n \"PEN\",\n \"PGK\",\n \"PHP\",\n \"PKR\",\n \"PLN\",\n \"PYG\",\n \"QAR\",\n \"RON\",\n \"RSD\",\n \"RUB\",\n \"RWF\",\n \"SAR\",\n \"SBD\",\n \"SCR\",\n \"SDG\",\n \"SEK\",\n \"SGD\",\n \"SHP\",\n \"SLL\",\n \"SOS\",\n \"SRD\",\n \"SSP\",\n \"STD\",\n \"SVC\",\n \"SYP\",\n \"SZL\",\n \"THB\",\n \"TJS\",\n \"TMT\",\n \"TND\",\n \"TOP\",\n \"TRY\",\n \"TTD\",\n \"TWD\",\n \"TZS\",\n \"UAH\",\n \"UGX\",\n \"USD\",\n \"USN\",\n \"UYI\",\n \"UYU\",\n \"UZS\",\n \"VEF\",\n \"VND\",\n \"VUV\",\n \"WST\",\n \"XAF\",\n \"XAG\",\n \"XAU\",\n \"XBA\",\n \"XBB\",\n \"XBC\",\n \"XBD\",\n \"XCD\",\n \"XDR\",\n \"XOF\",\n \"XPD\",\n \"XPF\",\n \"XPT\",\n \"XSU\",\n \"XTS\",\n \"XUA\",\n \"XXX\",\n \"YER\",\n \"ZAR\",\n \"ZMW\",\n \"ZWL\"\n ];\n}\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"expression\", [\n \"expression:expression\",\n { name: \"format\", serializationProperty: \"locFormat\" },\n {\n name: \"displayStyle\",\n default: \"none\",\n choices: [\"none\", \"decimal\", \"currency\", \"percent\", \"date\"]\n },\n {\n name: \"currency\",\n choices: function () {\n return getCurrecyCodes();\n },\n default: \"USD\"\n },\n { name: \"maximumFractionDigits:number\", default: -1 },\n { name: \"minimumFractionDigits:number\", default: -1 },\n { name: \"useGrouping:boolean\", default: true },\n { name: \"commentText\", visible: false },\n { name: \"enableIf\", visible: false },\n { name: \"isRequired\", visible: false },\n { name: \"readOnly\", visible: false },\n { name: \"requiredErrorText\", visible: false },\n { name: \"validators\", visible: false },\n { name: \"defaultValue\", visible: false },\n { name: \"correctAnswer\", visible: false },\n { name: \"requiredIf\", visible: false }\n], function () {\n return new QuestionExpressionModel(\"\");\n}, \"question\");\n__WEBPACK_IMPORTED_MODULE_4__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"expression\", function (name) {\n return new QuestionExpressionModel(name);\n});\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__validator__ = __webpack_require__(27);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionTextModel; });\n\n\n\n\n\n\n/**\n * A Model for an input text question.\n */\nvar QuestionTextModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionTextModel, _super);\n function QuestionTextModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.createLocalizableString(\"placeHolder\", _this);\n return _this;\n }\n QuestionTextModel.prototype.isTextValue = function () {\n return this.inputType == \"text\";\n };\n QuestionTextModel.prototype.getType = function () {\n return \"text\";\n };\n Object.defineProperty(QuestionTextModel.prototype, \"inputType\", {\n /**\n * Use this property to change the default input type.\n */\n get: function () {\n return this.getPropertyValue(\"inputType\");\n },\n set: function (val) {\n val = val.toLowerCase();\n if (val == \"datetime_local\")\n val = \"datetime-local\";\n this.setPropertyValue(\"inputType\", val.toLowerCase());\n },\n enumerable: true,\n configurable: true\n });\n QuestionTextModel.prototype.getValidators = function () {\n var validators = _super.prototype.getValidators.call(this);\n if (this.inputType === \"email\" &&\n !this.validators.some(function (v) { return v.getType() === \"emailvalidator\"; })) {\n validators.push(new __WEBPACK_IMPORTED_MODULE_5__validator__[\"b\" /* EmailValidator */]());\n }\n return validators;\n };\n QuestionTextModel.prototype.isLayoutTypeSupported = function (layoutType) {\n return true;\n };\n Object.defineProperty(QuestionTextModel.prototype, \"maxLength\", {\n /**\n * The maximim text length. If it is -1, defaul value, then the survey maxTextLength property will be used.\n * If it is 0, then the value is unlimited\n * @see SurveyModel.maxTextLength\n */\n get: function () {\n return this.getPropertyValue(\"maxLength\");\n },\n set: function (val) {\n this.setPropertyValue(\"maxLength\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionTextModel.prototype.getMaxLength = function () {\n return __WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].getMaxLength(this.maxLength, this.survey ? this.survey.maxTextLength : -1);\n };\n Object.defineProperty(QuestionTextModel.prototype, \"size\", {\n /**\n * The text input size\n */\n get: function () {\n return this.getPropertyValue(\"size\");\n },\n set: function (val) {\n this.setPropertyValue(\"size\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionTextModel.prototype.isEmpty = function () {\n return _super.prototype.isEmpty.call(this) || this.value === \"\";\n };\n QuestionTextModel.prototype.supportGoNextPageAutomatic = function () {\n return true;\n };\n Object.defineProperty(QuestionTextModel.prototype, \"placeHolder\", {\n /**\n * The input place holder.\n */\n get: function () {\n return this.getLocalizableStringText(\"placeHolder\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"placeHolder\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionTextModel.prototype, \"locPlaceHolder\", {\n get: function () {\n return this.getLocalizableString(\"placeHolder\");\n },\n enumerable: true,\n configurable: true\n });\n QuestionTextModel.prototype.setNewValue = function (newValue) {\n newValue = this.correctValueType(newValue);\n _super.prototype.setNewValue.call(this, newValue);\n };\n QuestionTextModel.prototype.correctValueType = function (newValue) {\n if (!newValue)\n return newValue;\n if (this.inputType == \"number\" || this.inputType == \"range\") {\n return __WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isNumber(newValue) ? parseFloat(newValue) : \"\";\n }\n return newValue;\n };\n return QuestionTextModel;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"text\", [\n {\n name: \"inputType\",\n default: \"text\",\n choices: [\n \"color\",\n \"date\",\n \"datetime\",\n \"datetime-local\",\n \"email\",\n \"month\",\n \"number\",\n \"password\",\n \"range\",\n \"tel\",\n \"text\",\n \"time\",\n \"url\",\n \"week\"\n ]\n },\n { name: \"size:number\", default: 25 },\n { name: \"maxLength:number\", default: -1 },\n { name: \"placeHolder\", serializationProperty: \"locPlaceHolder\" }\n], function () {\n return new QuestionTextModel(\"\");\n}, \"question\");\n__WEBPACK_IMPORTED_MODULE_1__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"text\", function (name) {\n return new QuestionTextModel(name);\n});\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionNonValue; });\n\n\n\n/**\n * A Model for non value question. This question doesn't add any new functionality. It hides some properties, including the value.\n */\nvar QuestionNonValue = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionNonValue, _super);\n function QuestionNonValue(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n return _this;\n }\n QuestionNonValue.prototype.getType = function () {\n return \"nonvalue\";\n };\n Object.defineProperty(QuestionNonValue.prototype, \"hasInput\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionNonValue.prototype, \"hasTitle\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n QuestionNonValue.prototype.getTitleLocation = function () {\n return \"\";\n };\n Object.defineProperty(QuestionNonValue.prototype, \"hasComment\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n QuestionNonValue.prototype.getAllErrors = function () {\n return [];\n };\n QuestionNonValue.prototype.supportGoNextPageAutomatic = function () {\n return false;\n };\n QuestionNonValue.prototype.addConditionNames = function (names) { };\n QuestionNonValue.prototype.addConditionObjectsByContext = function (objects, context) { };\n QuestionNonValue.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n return null;\n };\n return QuestionNonValue;\n}(__WEBPACK_IMPORTED_MODULE_1__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"nonvalue\", [\n { name: \"title\", visible: false },\n { name: \"description\", visible: false },\n { name: \"valueName\", visible: false },\n { name: \"enableIf\", visible: false },\n { name: \"defaultValue\", visible: false },\n { name: \"correctAnswer\", visible: false },\n { name: \"isRequired\", visible: false },\n { name: \"requiredErrorText\", visible: false },\n { name: \"readOnly\", visible: false },\n { name: \"requiredIf\", visible: false },\n { name: \"validators\", visible: false },\n { name: \"titleLocation\", visible: false },\n { name: \"useDisplayValuesInTitle\", visible: false }\n], function () {\n return new QuestionNonValue(\"\");\n}, \"question\");\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__survey__ = __webpack_require__(26);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SurveyWindowModel; });\n\n\n\n/**\n * A Model for a survey running in the Window.\n */\nvar SurveyWindowModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyWindowModel, _super);\n function SurveyWindowModel(jsonObj, initialModel) {\n if (initialModel === void 0) { initialModel = null; }\n var _this = _super.call(this) || this;\n /**\n * Set this value to negative value, for example -1, to avoid closing the window on completing the survey. Leave it equals to 0 (default value) to close the window immediately, or set it to 3, 5, 10, ... to close the window in 3, 5, 10 seconds.\n */\n _this.closeOnCompleteTimeout = 0;\n if (initialModel) {\n _this.surveyValue = initialModel;\n }\n else {\n _this.surveyValue = _this.createSurvey(jsonObj);\n }\n _this.surveyValue.showTitle = false;\n if (\"undefined\" !== typeof document) {\n _this.windowElement = document.createElement(\"div\");\n }\n var self = _this;\n _this.survey.onComplete.add(function (survey, options) {\n self.onSurveyComplete();\n });\n return _this;\n }\n SurveyWindowModel.prototype.getType = function () {\n return \"window\";\n };\n Object.defineProperty(SurveyWindowModel.prototype, \"survey\", {\n /**\n * A survey object.\n * @see SurveyModel\n */\n get: function () {\n return this.surveyValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyWindowModel.prototype, \"isShowing\", {\n /**\n * Returns true if the window is currently showing. Set it to true to show the window and false to hide it.\n * @see show\n * @see hide\n */\n get: function () {\n return this.getPropertyValue(\"isShowing\", false);\n },\n set: function (val) {\n if (this.isShowing == val)\n return;\n this.setPropertyValue(\"isShowing\", val);\n if (this.showingChangedCallback)\n this.showingChangedCallback();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Show the window\n * @see hide\n * @see isShowing\n */\n SurveyWindowModel.prototype.show = function () {\n this.isShowing = true;\n };\n /**\n * Hide the window\n * @see show\n * @see isShowing\n */\n SurveyWindowModel.prototype.hide = function () {\n this.isShowing = false;\n };\n Object.defineProperty(SurveyWindowModel.prototype, \"isExpanded\", {\n /**\n * Returns true if the window is expanded. Set it to true to expand the window or false to collapse it.\n * @see expand\n * @see collapse\n */\n get: function () {\n return this.getPropertyValue(\"isExpanded\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isExpanded\", val);\n if (!this.isLoadingFromJson && this.expandedChangedCallback)\n this.expandedChangedCallback();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyWindowModel.prototype, \"title\", {\n /**\n * The window and survey title.\n */\n get: function () {\n return this.survey.title;\n },\n set: function (value) {\n this.survey.title = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SurveyWindowModel.prototype, \"locTitle\", {\n get: function () {\n return this.survey.locTitle;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Expand the window to show the survey.\n */\n SurveyWindowModel.prototype.expand = function () {\n this.expandcollapse(true);\n };\n /**\n * Collapse the window and show survey title only.\n */\n SurveyWindowModel.prototype.collapse = function () {\n this.expandcollapse(false);\n };\n SurveyWindowModel.prototype.createSurvey = function (jsonObj) {\n return new __WEBPACK_IMPORTED_MODULE_2__survey__[\"a\" /* SurveyModel */](jsonObj);\n };\n SurveyWindowModel.prototype.expandcollapse = function (value) {\n this.isExpanded = value;\n };\n SurveyWindowModel.prototype.onSurveyComplete = function () {\n if (this.closeOnCompleteTimeout < 0)\n return;\n if (this.closeOnCompleteTimeout == 0) {\n this.closeWindowOnComplete();\n }\n else {\n var self = this;\n var timerId = null;\n var func = function () {\n self.closeWindowOnComplete();\n window.clearInterval(timerId);\n };\n timerId = window.setInterval(func, this.closeOnCompleteTimeout * 1000);\n }\n };\n SurveyWindowModel.prototype.closeWindowOnComplete = function () {\n if (!!this.closeWindowOnCompleteCallback) {\n this.closeWindowOnCompleteCallback();\n }\n };\n SurveyWindowModel.surveyElementName = \"windowSurveyJS\";\n return SurveyWindowModel;\n}(__WEBPACK_IMPORTED_MODULE_1__base__[\"a\" /* Base */]));\n\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base__ = __webpack_require__(8);\n/* unused harmony export surveyTimerFunctions */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SurveyTimer; });\n\nvar surveyTimerFunctions = {\n setTimeout: function (func) {\n return window.setTimeout(func, 1000);\n },\n clearTimeout: function (timerId) {\n window.clearTimeout(timerId);\n }\n};\nvar SurveyTimer = /** @class */ (function () {\n function SurveyTimer() {\n this.listenerCounter = 0;\n this.timerId = -1;\n this.onTimer = new __WEBPACK_IMPORTED_MODULE_0__base__[\"b\" /* Event */]();\n }\n Object.defineProperty(SurveyTimer, \"instance\", {\n get: function () {\n if (!SurveyTimer.instanceValue) {\n SurveyTimer.instanceValue = new SurveyTimer();\n }\n return SurveyTimer.instanceValue;\n },\n enumerable: true,\n configurable: true\n });\n SurveyTimer.prototype.start = function (func) {\n var _this = this;\n if (func === void 0) { func = null; }\n if (func) {\n this.onTimer.add(func);\n }\n if (this.timerId < 0) {\n this.timerId = surveyTimerFunctions.setTimeout(function () {\n _this.doTimer();\n });\n }\n this.listenerCounter++;\n };\n SurveyTimer.prototype.stop = function (func) {\n if (func === void 0) { func = null; }\n if (func) {\n this.onTimer.remove(func);\n }\n this.listenerCounter--;\n if (this.listenerCounter == 0 && this.timerId > -1) {\n surveyTimerFunctions.clearTimeout(this.timerId);\n this.timerId = -1;\n }\n };\n SurveyTimer.prototype.doTimer = function () {\n var _this = this;\n if (this.timerId < 0)\n return;\n this.onTimer.fire(this, {});\n this.timerId = surveyTimerFunctions.setTimeout(function () {\n _this.doTimer();\n });\n };\n SurveyTimer.instanceValue = null;\n return SurveyTimer;\n}());\n\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cssstandard__ = __webpack_require__(12);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return defaultBootstrapCss; });\n\nvar defaultBootstrapCss = {\n root: \"sv_main sv_bootstrap_css\",\n container: \"sv_container\",\n header: \"panel-heading card-header\",\n body: \"panel-body card-block mt-4\",\n bodyEmpty: \"panel-body card-block mt-4 sv_body_empty\",\n footer: \"panel-footer card-footer\",\n title: \"\",\n description: \"\",\n navigationButton: \"\",\n completedPage: \"\",\n navigation: {\n complete: \"btn sv_complete_btn\",\n prev: \"btn sv_prev_btn\",\n next: \"btn sv_next_btn\",\n start: \"btn sv_start_btn\"\n },\n progress: \"progress center-block mx-auto mb-4\",\n progressBar: \"progress-bar\",\n progressTextUnderBar: \"sv-hidden\",\n page: {\n root: \"\",\n title: \"\",\n description: \"\"\n },\n pageTitle: \"\",\n pageDescription: \"small\",\n row: \"sv_row\",\n question: {\n mainRoot: \"sv_qstn\",\n flowRoot: \"sv_q_flow sv_qstn\",\n header: \"\",\n headerLeft: \"title-left\",\n content: \"\",\n contentLeft: \"content-left\",\n titleLeftRoot: \"sv_qstn_left\",\n title: \"\",\n number: \"sv_q_num\",\n description: \"small\",\n descriptionUnderInput: \"small\",\n requiredText: \"sv_q_required_text\",\n comment: \"form-control\",\n required: \"\",\n titleRequired: \"\",\n hasError: \"has-error\",\n indent: 20,\n formGroup: \"form-group\"\n },\n panel: {\n title: \"sv_p_title\",\n titleExpandable: \"sv_p_title_expandable\",\n icon: \"sv_panel_icon\",\n iconExpanded: \"sv_expanded\",\n description: \"small sv_p_description\",\n container: \"sv_p_container\"\n },\n error: {\n root: \"alert alert-danger\",\n icon: \"glyphicon glyphicon-exclamation-sign\",\n item: \"\",\n locationTop: \"sv_qstn_error_top\",\n locationBottom: \"sv_qstn_error_bottom\"\n },\n boolean: {\n root: \"sv_qbln form-inline checkbox\",\n item: \"sv-boolean\",\n control: \"sv-visuallyhidden\",\n itemChecked: \"sv-boolean--checked checked\",\n itemIndeterminate: \"sv-boolean--indeterminate\",\n itemDisabled: \"sv-boolean--disabled\",\n switch: \"sv-boolean__switch\",\n slider: \"sv-boolean__slider\",\n label: \"sv-boolean__label \",\n disabledLabel: \"sv-boolean__label--disabled\"\n },\n checkbox: {\n root: \"sv_qcbc sv_qcbx form-inline\",\n item: \"checkbox\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_checkbox_inline\",\n itemControl: \"\",\n itemDecorator: \"sv-hidden\",\n label: \"\",\n labelChecked: \"\",\n controlLabel: \"\",\n materialDecorator: \"checkbox-material\",\n other: \"sv_q_checkbox_other form-control\",\n column: \"sv_q_select_column\"\n },\n comment: \"form-control\",\n dropdown: {\n root: \"\",\n control: \"form-control\",\n other: \"sv_q_dd_other form-control\"\n },\n html: { root: \"\" },\n matrix: {\n root: \"table sv_q_matrix\",\n label: \"sv_q_m_label\",\n itemChecked: \"checked\",\n itemDecorator: \"sv-hidden\",\n cellText: \"sv_q_m_cell_text\",\n cellTextSelected: \"sv_q_m_cell_selected bg-primary\",\n cellLabel: \"sv_q_m_cell_label\"\n },\n matrixdropdown: { root: \"table\" },\n matrixdynamic: {\n root: \"table\",\n button: \"button\",\n buttonAdd: \"\",\n buttonRemove: \"\",\n iconAdd: \"\",\n iconRemove: \"\"\n },\n paneldynamic: {\n root: \"\",\n navigation: \"sv-paneldynamic__navigation\",\n progressTop: \"sv-paneldynamic__progress sv-paneldynamic__progress--top\",\n progressBottom: \"sv-paneldynamic__progress sv-paneldynamic__progress--bottom\",\n title: \"sv-title sv-question__title\",\n button: \"button\",\n buttonAdd: \"button sv-paneldynamic__add-btn\",\n buttonRemove: \"button sv-paneldynamic__remove-btn\",\n buttonPrev: \"sv-paneldynamic__prev-btn\",\n buttonNext: \"sv-paneldynamic__next-btn\",\n progressContainer: \"sv-paneldynamic__progress-container\",\n progress: \"sv-progress\",\n progressBar: \"sv-progress__bar\",\n progressText: \"sv-paneldynamic__progress-text\"\n },\n multipletext: {\n root: \"table\",\n itemTitle: \"\",\n itemValue: \"sv_q_mt_item_value form-control\"\n },\n radiogroup: {\n root: \"sv_qcbc form-inline\",\n item: \"radio\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_radiogroup_inline\",\n label: \"\",\n labelChecked: \"\",\n itemControl: \"\",\n itemDecorator: \"sv-hidden\",\n controlLabel: \"\",\n materialDecorator: \"circle\",\n other: \"sv_q_radiogroup_other form-control\",\n clearButton: \"sv_q_radiogroup_clear button\",\n column: \"sv_q_select_column\"\n },\n imagepicker: {\n root: \"sv_imgsel\",\n item: \"sv_q_imgsel\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_imagepicker_inline\",\n label: \"sv_q_imgsel_label\",\n itemControl: \"sv_q_imgsel_control_item\",\n image: \"sv_q_imgsel_image\",\n itemText: \"sv_q_imgsel_text\",\n clearButton: \"sv_q_radiogroup_clear\"\n },\n rating: {\n root: \"btn-group\",\n item: \"btn btn-default btn-secondary\",\n selected: \"active\",\n minText: \"sv_q_rating_min_text\",\n itemText: \"sv_q_rating_item_text\",\n maxText: \"sv_q_rating_max_text\",\n disabled: \"\"\n },\n text: \"form-control\",\n expression: \"form-control\",\n file: {\n root: \"sv_q_file\",\n placeholderInput: \"sv_q_file_placeholder\",\n preview: \"sv_q_file_preview\",\n removeButton: \"sv_q_file_remove_button\",\n fileInput: \"sv_q_file_input\",\n removeFile: \"sv_q_file_remove\",\n removeFileSvg: \"sv-hidden\",\n fileDecorator: \"sv-hidden\",\n fileSignBottom: \"sv-hidden\",\n removeButtonBottom: \"sv-hidden\"\n },\n saveData: {\n root: \"\",\n saving: \"alert alert-info\",\n error: \"alert alert-danger\",\n success: \"alert alert-success\",\n saveAgainButton: \"\"\n },\n window: {\n root: \"modal-content\",\n body: \"modal-body\",\n header: {\n root: \"modal-header panel-title\",\n title: \"pull-left\",\n button: \"glyphicon pull-right\",\n buttonExpanded: \"glyphicon pull-right glyphicon-chevron-up\",\n buttonCollapsed: \"glyphicon pull-right glyphicon-chevron-down\"\n }\n }\n};\n__WEBPACK_IMPORTED_MODULE_0__cssstandard__[\"a\" /* surveyCss */][\"bootstrap\"] = defaultBootstrapCss;\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cssstandard__ = __webpack_require__(12);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return defaultBootstrapMaterialCss; });\n\nvar defaultBootstrapMaterialCss = {\n root: \"sv_main sv_bootstrapmaterial_css\",\n container: \"sv_container\",\n header: \"panel-heading\",\n body: \"panel-body\",\n bodyEmpty: \"panel-body sv_body_empty\",\n footer: \"panel-footer\",\n title: \"\",\n description: \"\",\n navigationButton: \"\",\n completedPage: \"\",\n navigation: {\n complete: \"btn sv_complete_btn btn-primary\",\n prev: \"btn sv_prev_btn btn-primary\",\n next: \"btn sv_next_btn btn-primary\",\n start: \"btn sv_start_btn btn-primary\"\n },\n progress: \"progress center-block mx-auto mb-4\",\n progressBar: \"progress-bar\",\n progressTextUnderBar: \"sv-hidden\",\n page: {\n root: \"\",\n title: \"\",\n description: \"\"\n },\n pageTitle: \"\",\n pageDescription: \"small\",\n row: \"sv_row\",\n question: {\n mainRoot: \"sv_qstn form-group\",\n flowRoot: \"sv_q_flow form-group\",\n header: \"\",\n headerLeft: \"title-left\",\n content: \"\",\n contentLeft: \"content-left\",\n titleLeftRoot: \"sv_qstn_left\",\n requiredText: \"sv_q_required_text\",\n title: \"\",\n number: \"sv_q_num\",\n description: \"small\",\n descriptionUnderInput: \"small\",\n comment: \"form-control\",\n required: \"\",\n titleRequired: \"\",\n hasError: \"has-error\",\n indent: 20,\n formGroup: \"form-group\"\n },\n panel: {\n title: \"sv_p_title\",\n titleExpandable: \"sv_p_title_expandable\",\n icon: \"sv_panel_icon\",\n iconExpanded: \"sv_expanded\",\n description: \"small sv_p_description\",\n container: \"sv_p_container\"\n },\n error: {\n root: \"alert alert-danger\",\n icon: \"glyphicon glyphicon-exclamation-sign\",\n item: \"\",\n locationTop: \"sv_qstn_error_top\",\n locationBottom: \"sv_qstn_error_bottom\"\n },\n boolean: {\n root: \"sv_qbln form-inline checkbox\",\n item: \"sv-boolean\",\n control: \"sv-visuallyhidden\",\n itemChecked: \"sv-boolean--checked checked\",\n itemIndeterminate: \"sv-boolean--indeterminate\",\n itemDisabled: \"sv-boolean--disabled\",\n switch: \"sv-boolean__switch\",\n slider: \"sv-boolean__slider\",\n label: \"sv-boolean__label \",\n disabledLabel: \"sv-boolean__label--disabled\"\n },\n checkbox: {\n root: \"sv_qcbx form-inline\",\n item: \"checkbox\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_checkbox_inline\",\n itemDecorator: \"sv-hidden\",\n itemControl: \"\",\n label: \"\",\n labelChecked: \"\",\n controlLabel: \"\",\n materialDecorator: \"checkbox-material\",\n other: \"sv_q_checkbox_other form-control\",\n column: \"sv_q_select_column\"\n },\n comment: \"form-control\",\n dropdown: {\n root: \"\",\n control: \"form-control\",\n other: \"sv_q_dd_other form-control\"\n },\n html: { root: \"\" },\n matrix: {\n root: \"table sv_q_matrix\",\n row: \"form-group\",\n label: \"sv_q_m_label radio-inline\",\n cellText: \"sv_q_m_cell_text\",\n cellTextSelected: \"sv_q_m_cell_selected bg-primary\",\n cellLabel: \"sv_q_m_cell_label\",\n itemValue: \"form-control\",\n itemChecked: \"checked\",\n itemDecorator: \"sv-hidden\"\n },\n matrixdropdown: { root: \"table\", itemValue: \"form-group\" },\n matrixdynamic: {\n root: \"table\",\n button: \"btn btn-primary\",\n itemValue: \"form-group\",\n buttonAdd: \"\",\n buttonRemove: \"\",\n iconAdd: \"\",\n iconRemove: \"\"\n },\n paneldynamic: {\n root: \"\",\n navigation: \"sv-paneldynamic__navigation\",\n progressTop: \"sv-paneldynamic__progress sv-paneldynamic__progress--top\",\n progressBottom: \"sv-paneldynamic__progress sv-paneldynamic__progress--bottom\",\n title: \"sv-title sv-question__title\",\n button: \"button\",\n buttonAdd: \"button sv-paneldynamic__add-btn\",\n buttonRemove: \"button sv-paneldynamic__remove-btn\",\n buttonPrev: \"sv-paneldynamic__prev-btn\",\n buttonNext: \"sv-paneldynamic__next-btn\",\n progressContainer: \"sv-paneldynamic__progress-container\",\n progress: \"sv-progress\",\n progressBar: \"sv-progress__bar\",\n progressText: \"sv-paneldynamic__progress-text\"\n },\n multipletext: {\n root: \"table\",\n itemTitle: \"\",\n row: \"form-group\",\n itemValue: \"sv_q_mt_item_value form-control\"\n },\n radiogroup: {\n root: \"\",\n item: \"radio\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_radiogroup_inline\",\n itemDecorator: \"sv-hidden\",\n label: \"\",\n labelChecked: \"\",\n itemControl: \"\",\n controlLabel: \"sv_q_radiogroup_control_label\",\n materialDecorator: \"circle\",\n other: \"sv_q_radiogroup_other form-control\",\n clearButton: \"sv_q_radiogroup_clear button btn btn-primary\",\n column: \"sv_q_select_column\"\n },\n imagepicker: {\n root: \"sv_imgsel\",\n item: \"sv_q_imgsel\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_imagepicker_inline\",\n label: \"sv_q_imgsel_label\",\n itemControl: \"sv_q_imgsel_control_item\",\n image: \"sv_q_imgsel_image\",\n itemText: \"sv_q_imgsel_text\",\n clearButton: \"sv_q_radiogroup_clear\"\n },\n rating: {\n root: \"btn-group\",\n item: \"btn btn-default btn-secondary\",\n selected: \"active\",\n minText: \"sv_q_rating_min_text\",\n itemText: \"sv_q_rating_item_text\",\n maxText: \"sv_q_rating_max_text\",\n disabled: \"\"\n },\n text: \"form-control\",\n expression: \"form-control\",\n file: {\n root: \"form-group is-fileinput sv_q_file\",\n placeholderInput: \"\",\n preview: \"sv_q_file_preview\",\n removeButton: \"sv_q_file_remove_button\",\n fileInput: \"sv_q_file_input\",\n removeFile: \"sv_q_file_remove\",\n removeFileSvg: \"sv-hidden\",\n fileDecorator: \"sv-hidden\",\n fileSignBottom: \"sv-hidden\",\n removeButtonBottom: \"sv-hidden\"\n },\n saveData: {\n root: \"\",\n saving: \"alert alert-info\",\n error: \"alert alert-danger\",\n success: \"alert alert-success\",\n saveAgainButton: \"\"\n },\n window: {\n root: \"modal-content\",\n body: \"modal-body\",\n header: {\n root: \"modal-header panel-title\",\n title: \"pull-left\",\n button: \"glyphicon pull-right\",\n buttonExpanded: \"glyphicon pull-right glyphicon-chevron-up\",\n buttonCollapsed: \"glyphicon pull-right glyphicon-chevron-down\"\n }\n }\n};\n__WEBPACK_IMPORTED_MODULE_0__cssstandard__[\"a\" /* surveyCss */][\"bootstrapmaterial\"] = defaultBootstrapMaterialCss;\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cssstandard__ = __webpack_require__(12);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return modernCss; });\n\nvar modernCss = {\n root: \"sv-root-modern\",\n container: \"sv-container-modern\",\n header: \"sv-title sv-container-modern__title\",\n body: \"sv-body\",\n bodyEmpty: \"sv-body sv-body--empty\",\n footer: \"sv-footer sv-body__footer sv-clearfix\",\n title: \"\",\n description: \"\",\n navigationButton: \"\",\n completedPage: \"sv-completedpage\",\n navigation: {\n complete: \"sv-btn sv-footer__complete-btn\",\n prev: \"sv-btn sv-footer__prev-btn\",\n next: \"sv-btn sv-footer__next-btn\",\n start: \"sv-btn sv-footer__start-btn\"\n },\n panel: {\n title: \"sv-title sv-panel__title\",\n titleExpandable: \"sv-panel__title--expandable\",\n description: \"sv-description sv-panel__description\",\n container: \"sv-panel sv-row__panel\",\n content: \"sv-panel__content\",\n icon: \"sv-panel__icon\",\n iconExpanded: \"sv-panel__icon--expanded\"\n },\n paneldynamic: {\n root: \"sv-paneldynamic\",\n navigation: \"sv-paneldynamic__navigation\",\n title: \"sv-title sv-question__title\",\n button: \"sv-btn\",\n buttonRemove: \"sv-paneldynamic__remove-btn\",\n buttonAdd: \"sv-paneldynamic__add-btn\",\n progressTop: \"sv-paneldynamic__progress sv-paneldynamic__progress--top\",\n progressBottom: \"sv-paneldynamic__progress sv-paneldynamic__progress--bottom\",\n buttonPrev: \"sv-paneldynamic__prev-btn\",\n buttonNext: \"sv-paneldynamic__next-btn\",\n progressContainer: \"sv-paneldynamic__progress-container\",\n progress: \"sv-progress\",\n progressBar: \"sv-progress__bar\",\n progressText: \"sv-paneldynamic__progress-text\",\n separator: \"sv-paneldynamic__separator\"\n },\n progress: \"sv-progress sv-body__progress\",\n progressBar: \"sv-progress__bar\",\n progressText: \"sv-progress__text\",\n progressTextInBar: \"sv-hidden\",\n page: {\n root: \"sv-page sv-body__page\",\n title: \"sv-page__title\",\n description: \"sv-description sv-page__description\"\n },\n pageTitle: \"sv-title sv-page__title\",\n pageDescription: \"sv-description sv-page__description\",\n row: \"sv-row sv-clearfix\",\n question: {\n mainRoot: \"sv-question sv-row__question\",\n flowRoot: \"sv-question sv-row__question sv-row__question--flow\",\n asCell: \"sv-table__cell\",\n header: \"sv-question__header\",\n headerLeft: \"sv-question__header--location--left\",\n headerTop: \"sv-question__header--location--top\",\n headerBottom: \"sv-question__header--location--bottom\",\n content: \"sv-question__content\",\n contentLeft: \"sv-question__content--left\",\n titleLeftRoot: \"\",\n titleOnAnswer: \"sv-question__title--answer\",\n titleOnError: \"sv-question__title--error\",\n title: \"sv-title sv-question__title\",\n requiredText: \"sv-question__required-text\",\n number: \"sv-question__num\",\n description: \"sv-description sv-question__description\",\n descriptionUnderInput: \"sv-description sv-question__description\",\n comment: \"sv-comment\",\n required: \"sv-question--required\",\n titleRequired: \"sv-question__title--required\",\n indent: 20,\n footer: \"sv-question__footer\",\n formGroup: \"sv-question__form-group\",\n hasError: \"\"\n },\n error: {\n root: \"sv-question__erbox\",\n icon: \"\",\n item: \"\",\n locationTop: \"sv-question__erbox--location--top\",\n locationBottom: \"sv-question__erbox--location--bottom\"\n },\n checkbox: {\n root: \"sv-selectbase\",\n item: \"sv-item sv-checkbox sv-selectbase__item\",\n itemDisabled: \"sv-item--disabled sv-checkbox--disabled\",\n itemChecked: \"sv-checkbox--checked\",\n itemHover: \"sv-checkbox--allowhover\",\n itemInline: \"sv-selectbase__item--inline\",\n label: \"sv-selectbase__label\",\n labelChecked: \"\",\n itemControl: \"sv-visuallyhidden sv-item__control\",\n itemDecorator: \"sv-item__svg sv-checkbox__svg\",\n controlLabel: \"sv-item__control-label\",\n materialDecorator: \"sv-item__decorator sv-checkbox__decorator\",\n other: \"sv-comment sv-question__other\",\n column: \"sv-selectbase__column\"\n },\n radiogroup: {\n root: \"sv-selectbase\",\n item: \"sv-item sv-radio sv-selectbase__item\",\n itemInline: \"sv-selectbase__item--inline\",\n label: \"sv-selectbase__label\",\n labelChecked: \"\",\n itemDisabled: \"sv-item--disabled sv-radio--disabled\",\n itemChecked: \"sv-radio--checked\",\n itemHover: \"sv-radio--allowhover\",\n itemControl: \"sv-visuallyhidden sv-item__control\",\n itemDecorator: \"sv-item__svg sv-radio__svg\",\n controlLabel: \"sv-item__control-label\",\n materialDecorator: \"sv-item__decorator sv-radio__decorator\",\n other: \"sv-comment sv-question__other\",\n clearButton: \"sv-btn sv-selectbase__clear-btn\",\n column: \"sv-selectbase__column\"\n },\n boolean: {\n root: \"\",\n item: \"sv-boolean sv-item\",\n control: \"sv-visuallyhidden\",\n itemChecked: \"sv-boolean--checked\",\n itemIndeterminate: \"sv-boolean--indeterminate\",\n itemDisabled: \"sv-item--disabled sv-boolean--disabled\",\n switch: \"sv-boolean__switch\",\n slider: \"sv-boolean__slider\",\n label: \"sv-boolean__label \",\n disabledLabel: \"sv-boolean__label--disabled\"\n },\n text: {\n root: \"sv-text\",\n small: \"sv-row__question--small\",\n onError: \"sv-text--error\"\n },\n multipletext: {\n root: \"sv-multipletext\",\n item: \"sv-multipletext__item\",\n itemTitle: \"sv-multipletext__item-title\",\n row: \"sv-multipletext__row\",\n cell: \"sv-multipletext__cell\"\n },\n dropdown: {\n root: \"\",\n small: \"sv-row__question--small\",\n control: \"sv-dropdown\",\n selectWrapper: \"\",\n other: \"sv-comment sv-question__other\",\n onError: \"sv-dropdown--error\"\n },\n imagepicker: {\n root: \"sv-imagepicker\",\n item: \"sv-imagepicker__item\",\n itemInline: \"sv-imagepicker__item--inline\",\n itemChecked: \"sv-imagepicker__item--checked\",\n itemDisabled: \"sv-imagepicker__item--disabled\",\n itemHover: \"sv-imagepicker__item--allowhover\",\n label: \"sv-imagepicker__label\",\n itemControl: \"sv-imagepicker__control\",\n image: \"sv-imagepicker__image\",\n itemText: \"sv-imagepicker__text\",\n clearButton: \"sv-btn\",\n other: \"sv-comment sv-question__other\"\n },\n matrix: {\n tableWrapper: \"sv-matrix\",\n root: \"sv-table\",\n cell: \"sv-table__cell sv-matrix__cell\",\n headerCell: \"sv-table__cell sv-table__cell--header\",\n label: \"sv-item sv-radio sv-matrix__label\",\n itemValue: \"sv-visuallyhidden sv-item__control sv-radio__control\",\n itemChecked: \"sv-radio--checked\",\n itemDisabled: \"sv-item--disabled sv-radio--disabled\",\n itemHover: \"sv-radio--allowhover\",\n materialDecorator: \"sv-item__decorator sv-radio__decorator\",\n itemDecorator: \"sv-item__svg sv-radio__svg\",\n cellText: \"sv-matrix__text\",\n cellTextSelected: \"sv-matrix__text--сhecked\",\n cellTextDisabled: \"sv-matrix__text--disabled\"\n },\n matrixdropdown: {\n root: \"sv-table\",\n cell: \"sv-table__cell\",\n headerCell: \"sv-table__cell sv-table__cell--header\"\n },\n matrixdynamic: {\n root: \"sv-table sv-matrixdynamic\",\n cell: \"sv-table__cell\",\n headerCell: \"sv-table__cell sv-table__cell--header\",\n button: \"sv-btn\",\n buttonAdd: \"sv-matrixdynamic__add-btn\",\n buttonRemove: \"sv-matrixdynamic__remove-btn\",\n iconAdd: \"\",\n iconRemove: \"\"\n },\n rating: {\n root: \"sv-rating\",\n item: \"sv-rating__item\",\n selected: \"sv-rating__item--selected\",\n minText: \"sv-rating__min-text\",\n itemText: \"sv-rating__item-text\",\n maxText: \"sv-rating__max-text\",\n disabled: \"sv-rating--disabled\"\n },\n comment: {\n root: \"sv-comment\",\n small: \"sv-row__question--small\"\n },\n expression: \"\",\n file: {\n root: \"sv-file\",\n placeholderInput: \"sv-visuallyhidden\",\n preview: \"sv-file__preview\",\n fileSign: \"sv-hidden\",\n fileSignBottom: \"sv-file__sign\",\n fileDecorator: \"sv-file__decorator\",\n fileInput: \"sv-visuallyhidden\",\n noFileChosen: \"sv-description sv-file__no-file-chosen\",\n chooseFile: \"sv-btn sv-file__choose-btn\",\n disabled: \"sv-file__choose-btn--disabled\",\n removeButton: \"sv-hidden\",\n removeButtonBottom: \"sv-btn sv-file__clean-btn\",\n removeFile: \"sv-hidden\",\n removeFileSvg: \"sv-file__remove-svg\",\n wrapper: \"sv-file__wrapper\"\n },\n saveData: {\n root: \"\",\n saving: \"\",\n error: \"\",\n success: \"\",\n saveAgainButton: \"\"\n },\n window: {\n root: \"\",\n body: \"\",\n header: {\n root: \"\",\n title: \"\",\n button: \"\",\n buttonExpanded: \"\",\n buttonCollapsed: \"\"\n }\n }\n};\n__WEBPACK_IMPORTED_MODULE_0__cssstandard__[\"a\" /* surveyCss */][\"modern\"] = modernCss;\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__localization_arabic__ = __webpack_require__(128);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__localization_bulgarian__ = __webpack_require__(129);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__localization_catalan__ = __webpack_require__(130);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__localization_czech__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__localization_danish__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__localization_dutch__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__localization_finnish__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__localization_french__ = __webpack_require__(135);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__localization_georgian__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__localization_german__ = __webpack_require__(137);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__localization_greek__ = __webpack_require__(138);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__localization_hebrew__ = __webpack_require__(139);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__localization_hungarian__ = __webpack_require__(140);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__localization_icelandic__ = __webpack_require__(141);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__localization_indonesian__ = __webpack_require__(142);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__localization_italian__ = __webpack_require__(143);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__localization_japanese__ = __webpack_require__(144);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__localization_korean__ = __webpack_require__(145);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__localization_latvian__ = __webpack_require__(146);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__localization_lithuanian__ = __webpack_require__(147);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__localization_norwegian__ = __webpack_require__(148);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__localization_persian__ = __webpack_require__(149);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__localization_polish__ = __webpack_require__(150);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__localization_portuguese__ = __webpack_require__(151);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__localization_romanian__ = __webpack_require__(152);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__localization_russian__ = __webpack_require__(153);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__localization_simplified_chinese__ = __webpack_require__(154);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__localization_spanish__ = __webpack_require__(155);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__localization_swedish__ = __webpack_require__(156);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__localization_turkish__ = __webpack_require__(158);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__localization_traditional_chinese__ = __webpack_require__(157);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__localization_ukrainian__ = __webpack_require__(159);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__main_scss__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__main_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__main_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__modern_scss__ = __webpack_require__(122);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__modern_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__modern_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__settings__ = __webpack_require__(10);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_2__settings__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__helpers__ = __webpack_require__(6);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_3__helpers__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__validator__ = __webpack_require__(27);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"e\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"f\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"g\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"h\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return __WEBPACK_IMPORTED_MODULE_4__validator__[\"i\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__itemvalue__ = __webpack_require__(15);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return __WEBPACK_IMPORTED_MODULE_5__itemvalue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__base__ = __webpack_require__(8);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return __WEBPACK_IMPORTED_MODULE_6__base__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return __WEBPACK_IMPORTED_MODULE_6__base__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return __WEBPACK_IMPORTED_MODULE_6__base__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return __WEBPACK_IMPORTED_MODULE_6__base__[\"c\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__calculatedValue__ = __webpack_require__(124);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return __WEBPACK_IMPORTED_MODULE_7__calculatedValue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__error__ = __webpack_require__(14);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"s\", function() { return __WEBPACK_IMPORTED_MODULE_8__error__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return __WEBPACK_IMPORTED_MODULE_8__error__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"u\", function() { return __WEBPACK_IMPORTED_MODULE_8__error__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"v\", function() { return __WEBPACK_IMPORTED_MODULE_8__error__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"w\", function() { return __WEBPACK_IMPORTED_MODULE_8__error__[\"e\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__localizablestring__ = __webpack_require__(17);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"x\", function() { return __WEBPACK_IMPORTED_MODULE_9__localizablestring__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__htmlConditionItem__ = __webpack_require__(127);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"y\", function() { return __WEBPACK_IMPORTED_MODULE_10__htmlConditionItem__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__choicesRestfull__ = __webpack_require__(66);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"z\", function() { return __WEBPACK_IMPORTED_MODULE_11__choicesRestfull__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__functionsfactory__ = __webpack_require__(23);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"A\", function() { return __WEBPACK_IMPORTED_MODULE_12__functionsfactory__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"B\", function() { return __WEBPACK_IMPORTED_MODULE_12__functionsfactory__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__conditions__ = __webpack_require__(13);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"C\", function() { return __WEBPACK_IMPORTED_MODULE_13__conditions__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"D\", function() { return __WEBPACK_IMPORTED_MODULE_13__conditions__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__expressions_expressions__ = __webpack_require__(22);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"E\", function() { return __WEBPACK_IMPORTED_MODULE_14__expressions_expressions__[\"g\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"F\", function() { return __WEBPACK_IMPORTED_MODULE_14__expressions_expressions__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"G\", function() { return __WEBPACK_IMPORTED_MODULE_14__expressions_expressions__[\"f\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"H\", function() { return __WEBPACK_IMPORTED_MODULE_14__expressions_expressions__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"I\", function() { return __WEBPACK_IMPORTED_MODULE_14__expressions_expressions__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"J\", function() { return __WEBPACK_IMPORTED_MODULE_14__expressions_expressions__[\"e\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__conditionsParser__ = __webpack_require__(67);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"K\", function() { return __WEBPACK_IMPORTED_MODULE_15__conditionsParser__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__conditionProcessValue__ = __webpack_require__(16);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"L\", function() { return __WEBPACK_IMPORTED_MODULE_16__conditionProcessValue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__jsonobject__ = __webpack_require__(5);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"M\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"N\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"e\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"O\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"f\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"P\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"g\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Q\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"h\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"R\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"i\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"S\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"T\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"j\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"U\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"k\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"V\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"l\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"W\", function() { return __WEBPACK_IMPORTED_MODULE_17__jsonobject__[\"c\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__question_matrixdropdownbase__ = __webpack_require__(24);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"X\", function() { return __WEBPACK_IMPORTED_MODULE_18__question_matrixdropdownbase__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Y\", function() { return __WEBPACK_IMPORTED_MODULE_18__question_matrixdropdownbase__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Z\", function() { return __WEBPACK_IMPORTED_MODULE_18__question_matrixdropdownbase__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_0\", function() { return __WEBPACK_IMPORTED_MODULE_18__question_matrixdropdownbase__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_1\", function() { return __WEBPACK_IMPORTED_MODULE_18__question_matrixdropdownbase__[\"e\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__question_matrixdropdown__ = __webpack_require__(168);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_2\", function() { return __WEBPACK_IMPORTED_MODULE_19__question_matrixdropdown__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_3\", function() { return __WEBPACK_IMPORTED_MODULE_19__question_matrixdropdown__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__question_matrixdynamic__ = __webpack_require__(169);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_4\", function() { return __WEBPACK_IMPORTED_MODULE_20__question_matrixdynamic__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_5\", function() { return __WEBPACK_IMPORTED_MODULE_20__question_matrixdynamic__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__question_matrix__ = __webpack_require__(167);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_6\", function() { return __WEBPACK_IMPORTED_MODULE_21__question_matrix__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_7\", function() { return __WEBPACK_IMPORTED_MODULE_21__question_matrix__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_8\", function() { return __WEBPACK_IMPORTED_MODULE_21__question_matrix__[\"c\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__question_multipletext__ = __webpack_require__(170);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_9\", function() { return __WEBPACK_IMPORTED_MODULE_22__question_multipletext__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_10\", function() { return __WEBPACK_IMPORTED_MODULE_22__question_multipletext__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__panel__ = __webpack_require__(21);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_11\", function() { return __WEBPACK_IMPORTED_MODULE_23__panel__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_12\", function() { return __WEBPACK_IMPORTED_MODULE_23__panel__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_13\", function() { return __WEBPACK_IMPORTED_MODULE_23__panel__[\"d\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__flowpanel__ = __webpack_require__(126);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_14\", function() { return __WEBPACK_IMPORTED_MODULE_24__flowpanel__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__page__ = __webpack_require__(71);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_15\", function() { return __WEBPACK_IMPORTED_MODULE_25__page__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__question__ = __webpack_require__(11);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_16\", function() { return __WEBPACK_IMPORTED_MODULE_26__question__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__questionnonvalue__ = __webpack_require__(76);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_17\", function() { return __WEBPACK_IMPORTED_MODULE_27__questionnonvalue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__question_empty__ = __webpack_require__(163);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_18\", function() { return __WEBPACK_IMPORTED_MODULE_28__question_empty__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__question_baseselect__ = __webpack_require__(19);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_19\", function() { return __WEBPACK_IMPORTED_MODULE_29__question_baseselect__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_20\", function() { return __WEBPACK_IMPORTED_MODULE_29__question_baseselect__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__question_checkbox__ = __webpack_require__(161);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_21\", function() { return __WEBPACK_IMPORTED_MODULE_30__question_checkbox__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__question_comment__ = __webpack_require__(162);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_22\", function() { return __WEBPACK_IMPORTED_MODULE_31__question_comment__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__question_dropdown__ = __webpack_require__(73);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_23\", function() { return __WEBPACK_IMPORTED_MODULE_32__question_dropdown__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__questionfactory__ = __webpack_require__(7);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_24\", function() { return __WEBPACK_IMPORTED_MODULE_33__questionfactory__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_25\", function() { return __WEBPACK_IMPORTED_MODULE_33__questionfactory__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__question_file__ = __webpack_require__(164);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_26\", function() { return __WEBPACK_IMPORTED_MODULE_34__question_file__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__question_html__ = __webpack_require__(165);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_27\", function() { return __WEBPACK_IMPORTED_MODULE_35__question_html__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__question_radiogroup__ = __webpack_require__(172);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_28\", function() { return __WEBPACK_IMPORTED_MODULE_36__question_radiogroup__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__question_rating__ = __webpack_require__(173);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_29\", function() { return __WEBPACK_IMPORTED_MODULE_37__question_rating__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__question_expression__ = __webpack_require__(74);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_30\", function() { return __WEBPACK_IMPORTED_MODULE_38__question_expression__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__question_text__ = __webpack_require__(75);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_31\", function() { return __WEBPACK_IMPORTED_MODULE_39__question_text__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__question_boolean__ = __webpack_require__(160);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_32\", function() { return __WEBPACK_IMPORTED_MODULE_40__question_boolean__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__question_imagepicker__ = __webpack_require__(166);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_33\", function() { return __WEBPACK_IMPORTED_MODULE_41__question_imagepicker__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__question_paneldynamic__ = __webpack_require__(171);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_34\", function() { return __WEBPACK_IMPORTED_MODULE_42__question_paneldynamic__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_35\", function() { return __WEBPACK_IMPORTED_MODULE_42__question_paneldynamic__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__surveytimer__ = __webpack_require__(78);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_36\", function() { return __WEBPACK_IMPORTED_MODULE_43__surveytimer__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__survey__ = __webpack_require__(26);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_37\", function() { return __WEBPACK_IMPORTED_MODULE_44__survey__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__trigger__ = __webpack_require__(174);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_38\", function() { return __WEBPACK_IMPORTED_MODULE_45__trigger__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_39\", function() { return __WEBPACK_IMPORTED_MODULE_45__trigger__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_40\", function() { return __WEBPACK_IMPORTED_MODULE_45__trigger__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_41\", function() { return __WEBPACK_IMPORTED_MODULE_45__trigger__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_42\", function() { return __WEBPACK_IMPORTED_MODULE_45__trigger__[\"e\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_43\", function() { return __WEBPACK_IMPORTED_MODULE_45__trigger__[\"f\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_44\", function() { return __WEBPACK_IMPORTED_MODULE_45__trigger__[\"g\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_46__surveyWindow__ = __webpack_require__(77);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_45\", function() { return __WEBPACK_IMPORTED_MODULE_46__surveyWindow__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_47__textPreProcessor__ = __webpack_require__(20);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_46\", function() { return __WEBPACK_IMPORTED_MODULE_47__textPreProcessor__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_48__dxSurveyService__ = __webpack_require__(68);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_47\", function() { return __WEBPACK_IMPORTED_MODULE_48__dxSurveyService__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_49__localization_english__ = __webpack_require__(69);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_48\", function() { return __WEBPACK_IMPORTED_MODULE_49__localization_english__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_50__surveyStrings__ = __webpack_require__(1);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_49\", function() { return __WEBPACK_IMPORTED_MODULE_50__surveyStrings__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_50\", function() { return __WEBPACK_IMPORTED_MODULE_50__surveyStrings__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_51__questionCustomWidgets__ = __webpack_require__(72);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_51\", function() { return __WEBPACK_IMPORTED_MODULE_51__questionCustomWidgets__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_52\", function() { return __WEBPACK_IMPORTED_MODULE_51__questionCustomWidgets__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_52__stylesmanager__ = __webpack_require__(25);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"_53\", function() { return __WEBPACK_IMPORTED_MODULE_52__stylesmanager__[\"a\"]; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Version; });\n// styles\n\n\nvar Version;\nVersion = \"\" + \"1.1.26\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// export { cultureInfo } from \"../../cultureInfo\";\n\n\n//Uncomment to include the \"date\" question type.\n//export {default as QuestionDateModel} from \"../../plugins/question_date\";\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_boolean_vue__ = __webpack_require__(29);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_boolean_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1edb9dd6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_boolean_vue__ = __webpack_require__(187);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_boolean_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1edb9dd6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_boolean_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1edb9dd6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_boolean_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/boolean.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-1edb9dd6\", Component.options)\n } else {\n hotAPI.reload(\"data-v-1edb9dd6\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__ = __webpack_require__(30);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_cad276f6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__ = __webpack_require__(211);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_cad276f6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_cad276f6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/checkbox.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-cad276f6\", Component.options)\n } else {\n hotAPI.reload(\"data-v-cad276f6\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkboxitem_vue__ = __webpack_require__(31);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkboxitem_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c58c80d0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkboxitem_vue__ = __webpack_require__(210);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkboxitem_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c58c80d0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkboxitem_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c58c80d0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkboxitem_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/checkboxitem.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-c58c80d0\", Component.options)\n } else {\n hotAPI.reload(\"data-v-c58c80d0\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_comment_vue__ = __webpack_require__(32);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_comment_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_099c2c8d_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_comment_vue__ = __webpack_require__(180);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_comment_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_099c2c8d_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_comment_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_099c2c8d_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_comment_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/comment.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-099c2c8d\", Component.options)\n } else {\n hotAPI.reload(\"data-v-099c2c8d\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_customwidget_vue__ = __webpack_require__(33);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_customwidget_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1e61a7b7_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_customwidget_vue__ = __webpack_require__(186);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_customwidget_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1e61a7b7_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_customwidget_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1e61a7b7_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_customwidget_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/customwidget.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-1e61a7b7\", Component.options)\n } else {\n hotAPI.reload(\"data-v-1e61a7b7\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__ = __webpack_require__(34);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6b3215d3_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_vue__ = __webpack_require__(199);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6b3215d3_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6b3215d3_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/dropdown.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-6b3215d3\", Component.options)\n } else {\n hotAPI.reload(\"data-v-6b3215d3\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_element_vue__ = __webpack_require__(35);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_element_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_973472ac_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_element_vue__ = __webpack_require__(206);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_element_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_973472ac_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_element_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_973472ac_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_element_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/element.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-973472ac\", Component.options)\n } else {\n hotAPI.reload(\"data-v-973472ac\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_elementheader_vue__ = __webpack_require__(36);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_elementheader_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_27adc537_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_elementheader_vue__ = __webpack_require__(189);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_elementheader_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_27adc537_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_elementheader_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_27adc537_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_elementheader_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/elementheader.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-27adc537\", Component.options)\n } else {\n hotAPI.reload(\"data-v-27adc537\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_empty_vue__ = __webpack_require__(37);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_empty_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_05052c0a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_empty_vue__ = __webpack_require__(177);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_empty_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_05052c0a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_empty_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_05052c0a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_empty_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/empty.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-05052c0a\", Component.options)\n } else {\n hotAPI.reload(\"data-v-05052c0a\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_errors_vue__ = __webpack_require__(38);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_errors_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5682e6ad_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_errors_vue__ = __webpack_require__(195);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_errors_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5682e6ad_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_errors_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5682e6ad_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_errors_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/errors.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-5682e6ad\", Component.options)\n } else {\n hotAPI.reload(\"data-v-5682e6ad\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_expression_vue__ = __webpack_require__(39);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_expression_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1d20865a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_expression_vue__ = __webpack_require__(185);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_expression_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1d20865a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_expression_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1d20865a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_expression_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/expression.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-1d20865a\", Component.options)\n } else {\n hotAPI.reload(\"data-v-1d20865a\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_file_vue__ = __webpack_require__(40);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_file_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_20f70284_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_file_vue__ = __webpack_require__(188);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_file_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_20f70284_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_file_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_20f70284_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_file_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/file.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-20f70284\", Component.options)\n } else {\n hotAPI.reload(\"data-v-20f70284\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_flowpanel_vue__ = __webpack_require__(41);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_flowpanel_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_96ae1a78_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_flowpanel_vue__ = __webpack_require__(205);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_flowpanel_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_96ae1a78_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_flowpanel_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_96ae1a78_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_flowpanel_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/flowpanel.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-96ae1a78\", Component.options)\n } else {\n hotAPI.reload(\"data-v-96ae1a78\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_flowpanelelement_vue__ = __webpack_require__(42);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_flowpanelelement_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9d992c30_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_flowpanelelement_vue__ = __webpack_require__(208);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_flowpanelelement_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9d992c30_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_flowpanelelement_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9d992c30_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_flowpanelelement_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/flowpanelelement.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-9d992c30\", Component.options)\n } else {\n hotAPI.reload(\"data-v-9d992c30\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_html_vue__ = __webpack_require__(43);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_html_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0742e16d_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_html_vue__ = __webpack_require__(179);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_html_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0742e16d_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_html_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0742e16d_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_html_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/html.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-0742e16d\", Component.options)\n } else {\n hotAPI.reload(\"data-v-0742e16d\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_imagepicker_vue__ = __webpack_require__(44);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_imagepicker_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_153fe052_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_imagepicker_vue__ = __webpack_require__(184);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_imagepicker_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_153fe052_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_imagepicker_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_153fe052_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_imagepicker_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/imagepicker.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-153fe052\", Component.options)\n } else {\n hotAPI.reload(\"data-v-153fe052\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrix_vue__ = __webpack_require__(45);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrix_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7fa2f403_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrix_vue__ = __webpack_require__(203);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrix_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7fa2f403_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrix_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7fa2f403_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrix_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/matrix.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-7fa2f403\", Component.options)\n } else {\n hotAPI.reload(\"data-v-7fa2f403\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixcell_vue__ = __webpack_require__(46);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixcell_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3ca54ee5_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixcell_vue__ = __webpack_require__(192);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixcell_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3ca54ee5_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixcell_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3ca54ee5_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixcell_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/matrixcell.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-3ca54ee5\", Component.options)\n } else {\n hotAPI.reload(\"data-v-3ca54ee5\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixdropdown_vue__ = __webpack_require__(47);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixdropdown_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b4da6d8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixdropdown_vue__ = __webpack_require__(181);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixdropdown_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b4da6d8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixdropdown_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b4da6d8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixdropdown_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/matrixdropdown.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-0b4da6d8\", Component.options)\n } else {\n hotAPI.reload(\"data-v-0b4da6d8\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixdynamic_vue__ = __webpack_require__(48);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixdynamic_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9a0b88e8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixdynamic_vue__ = __webpack_require__(207);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixdynamic_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9a0b88e8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixdynamic_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9a0b88e8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixdynamic_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/matrixdynamic.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-9a0b88e8\", Component.options)\n } else {\n hotAPI.reload(\"data-v-9a0b88e8\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixtable_vue__ = __webpack_require__(49);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixtable_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_fa197e4a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixtable_vue__ = __webpack_require__(213);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_matrixtable_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_fa197e4a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixtable_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_fa197e4a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_matrixtable_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/matrixtable.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-fa197e4a\", Component.options)\n } else {\n hotAPI.reload(\"data-v-fa197e4a\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_multipletext_vue__ = __webpack_require__(50);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_multipletext_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_93fe4c02_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_multipletext_vue__ = __webpack_require__(204);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_multipletext_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_93fe4c02_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_multipletext_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_93fe4c02_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_multipletext_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/multipletext.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-93fe4c02\", Component.options)\n } else {\n hotAPI.reload(\"data-v-93fe4c02\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_otherChoice_vue__ = __webpack_require__(51);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_otherChoice_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2ed776ff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_otherChoice_vue__ = __webpack_require__(191);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_otherChoice_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2ed776ff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_otherChoice_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2ed776ff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_otherChoice_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/otherChoice.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-2ed776ff\", Component.options)\n } else {\n hotAPI.reload(\"data-v-2ed776ff\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_page_vue__ = __webpack_require__(52);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_page_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4e962a51_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_page_vue__ = __webpack_require__(194);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_page_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4e962a51_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_page_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4e962a51_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_page_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/page.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-4e962a51\", Component.options)\n } else {\n hotAPI.reload(\"data-v-4e962a51\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_panel_vue__ = __webpack_require__(53);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_panel_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c78899c_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_panel_vue__ = __webpack_require__(182);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_panel_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c78899c_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_panel_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c78899c_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_panel_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/panel.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-0c78899c\", Component.options)\n } else {\n hotAPI.reload(\"data-v-0c78899c\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paneldynamic_vue__ = __webpack_require__(54);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paneldynamic_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9dda5d06_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paneldynamic_vue__ = __webpack_require__(209);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paneldynamic_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9dda5d06_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paneldynamic_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9dda5d06_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paneldynamic_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/paneldynamic.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-9dda5d06\", Component.options)\n } else {\n hotAPI.reload(\"data-v-9dda5d06\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paneldynamicprogress_vue__ = __webpack_require__(55);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paneldynamicprogress_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_742bffac_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paneldynamicprogress_vue__ = __webpack_require__(201);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_paneldynamicprogress_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_742bffac_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paneldynamicprogress_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_742bffac_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_paneldynamicprogress_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/paneldynamicprogress.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-742bffac\", Component.options)\n } else {\n hotAPI.reload(\"data-v-742bffac\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__ = __webpack_require__(56);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_27e325ef_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__ = __webpack_require__(190);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_27e325ef_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_27e325ef_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/progress.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-27e325ef\", Component.options)\n } else {\n hotAPI.reload(\"data-v-27e325ef\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radiogroup_vue__ = __webpack_require__(57);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radiogroup_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_06c6d526_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radiogroup_vue__ = __webpack_require__(178);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radiogroup_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_06c6d526_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radiogroup_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_06c6d526_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radiogroup_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/radiogroup.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-06c6d526\", Component.options)\n } else {\n hotAPI.reload(\"data-v-06c6d526\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radiogroupitem_vue__ = __webpack_require__(58);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radiogroupitem_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5bbe97b9_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radiogroupitem_vue__ = __webpack_require__(196);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radiogroupitem_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5bbe97b9_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radiogroupitem_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5bbe97b9_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radiogroupitem_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/radiogroupitem.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-5bbe97b9\", Component.options)\n } else {\n hotAPI.reload(\"data-v-5bbe97b9\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_rating_vue__ = __webpack_require__(59);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_rating_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7092bfdf_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_rating_vue__ = __webpack_require__(200);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_rating_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7092bfdf_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_rating_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7092bfdf_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_rating_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/rating.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-7092bfdf\", Component.options)\n } else {\n hotAPI.reload(\"data-v-7092bfdf\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_row_vue__ = __webpack_require__(60);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_row_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7cc0bd88_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_row_vue__ = __webpack_require__(202);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_row_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7cc0bd88_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_row_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7cc0bd88_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_row_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/row.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-7cc0bd88\", Component.options)\n } else {\n hotAPI.reload(\"data-v-7cc0bd88\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_string_vue__ = __webpack_require__(61);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_string_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d3a3d75a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_string_vue__ = __webpack_require__(212);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_string_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d3a3d75a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_string_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d3a3d75a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_string_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/string.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-d3a3d75a\", Component.options)\n } else {\n hotAPI.reload(\"data-v-d3a3d75a\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_survey_vue__ = __webpack_require__(62);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_survey_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6874e1c8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_survey_vue__ = __webpack_require__(198);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_survey_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6874e1c8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_survey_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6874e1c8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_survey_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/survey.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-6874e1c8\", Component.options)\n } else {\n hotAPI.reload(\"data-v-6874e1c8\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_text_vue__ = __webpack_require__(63);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_text_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_40ece422_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_text_vue__ = __webpack_require__(193);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_text_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_40ece422_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_text_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_40ece422_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_text_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/text.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-40ece422\", Component.options)\n } else {\n hotAPI.reload(\"data-v-40ece422\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_timerpanel_vue__ = __webpack_require__(64);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_timerpanel_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0d2abe21_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_timerpanel_vue__ = __webpack_require__(183);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_timerpanel_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0d2abe21_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_timerpanel_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0d2abe21_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_timerpanel_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/timerpanel.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-0d2abe21\", Component.options)\n } else {\n hotAPI.reload(\"data-v-0d2abe21\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_window_vue__ = __webpack_require__(65);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_window_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_62f588b2_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_window_vue__ = __webpack_require__(197);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__ = __webpack_require__(4);\nvar disposed = false\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__[\"a\" /* default */])(\n __WEBPACK_IMPORTED_MODULE_0__ts_loader_node_modules_vue_loader_lib_selector_type_script_index_0_window_vue__[\"b\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_62f588b2_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_window_vue__[\"a\" /* render */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_62f588b2_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_window_vue__[\"b\" /* staticRenderFns */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/vue/window.vue\"\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-62f588b2\", Component.options)\n } else {\n hotAPI.reload(\"data-v-62f588b2\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* unused harmony default export */ var _unused_webpack_default_export = Component.exports;\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, global) {/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n Function(\"return this;\")();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n else {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter);\n function makeExporter(target, previous) {\n return function (key, value) {\n if (typeof target[key] !== \"function\") {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n }\n if (previous)\n previous(key, value);\n };\n }\n })(function (exporter) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var Metadata = new _WeakMap();\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(metadataKey))\n return false;\n if (metadataMap.size > 0)\n return true;\n var targetMetadata = Metadata.get(target);\n targetMetadata.delete(propertyKey);\n if (targetMetadata.size > 0)\n return true;\n Metadata.delete(target);\n return true;\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = Metadata.get(O);\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n Metadata.set(O, targetMetadata);\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n }\n return metadataMap;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n // 6 ECMAScript Data Typ0es and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n return /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (key === this._cacheKey) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (this._cacheKey !== key) {\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n return /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.values(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n if (typeof crypto !== \"undefined\")\n return crypto.getRandomValues(new Uint8Array(size));\n if (typeof msCrypto !== \"undefined\")\n return msCrypto.getRandomValues(new Uint8Array(size));\n return FillRandomBytes(new Uint8Array(size), size);\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 § 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(28), __webpack_require__(214)))\n\n/***/ }),\n/* 124 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsonobject__ = __webpack_require__(5);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CalculatedValue; });\n\n\n\n\n\n/**\n * The calculated value is a way to define the variable in Survey Creator.\n * It has two main properties: name and expression. Based on expression the value read-only property is automatically calculated.\n * The name property should be unique though all calcualted values.\n * It uses survey.getVariable/seruvey.setVariable functions to get/set its value. The class do not store its value internally.\n * You may set includeIntoResult property to true to store this calculated value into survey result.\n */\nvar CalculatedValue = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(CalculatedValue, _super);\n function CalculatedValue(name, expression) {\n if (name === void 0) { name = null; }\n if (expression === void 0) { expression = null; }\n var _this = _super.call(this) || this;\n _this.expressionIsRunning = false;\n if (!!name) {\n _this.name = name;\n }\n if (!!expression) {\n _this.expression = expression;\n }\n return _this;\n }\n CalculatedValue.prototype.setOwner = function (data) {\n this.data = data;\n this.rerunExpression();\n };\n CalculatedValue.prototype.getType = function () {\n return \"calculatedvalue\";\n };\n Object.defineProperty(CalculatedValue.prototype, \"name\", {\n /**\n * The calculated value name. It should be non empty and unique.\n */\n get: function () {\n return this.getPropertyValue(\"name\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"name\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CalculatedValue.prototype, \"includeIntoResult\", {\n /**\n * Set this property to true to include the non-empty calculated value into survey result, survey.data property.\n */\n get: function () {\n return this.getPropertyValue(\"includeIntoResult\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"includeIntoResult\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CalculatedValue.prototype, \"expression\", {\n /**\n * The Expression that used to calculate the value. You may use standard operators like +, -, * and /, squares (). Here is the example of accessing the question value {questionname}.\n *
Example: \"({quantity} * {price}) * (100 - {discount}) / 100\"\n */\n get: function () {\n return this.getPropertyValue(\"expression\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"expression\", val);\n this.rerunExpression();\n },\n enumerable: true,\n configurable: true\n });\n CalculatedValue.prototype.locCalculation = function () {\n this.expressionIsRunning = true;\n };\n CalculatedValue.prototype.unlocCalculation = function () {\n this.expressionIsRunning = false;\n };\n CalculatedValue.prototype.runExpression = function (values, properties) {\n var _this = this;\n if (!this.canRunExpression)\n return;\n this.locCalculation();\n if (!this.expressionRunner) {\n this.expressionRunner = new __WEBPACK_IMPORTED_MODULE_3__conditions__[\"a\" /* ExpressionRunner */](this.expression);\n }\n this.expressionRunner.onRunComplete = function (newValue) {\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isTwoValueEquals(newValue, _this.value)) {\n _this.setValue(newValue);\n }\n _this.unlocCalculation();\n };\n this.expressionRunner.run(values, properties);\n };\n Object.defineProperty(CalculatedValue.prototype, \"value\", {\n get: function () {\n if (!this.data)\n return undefined;\n return this.data.getVariable(this.name);\n },\n enumerable: true,\n configurable: true\n });\n CalculatedValue.prototype.setValue = function (val) {\n if (!this.data)\n return;\n this.data.setVariable(this.name, val);\n };\n Object.defineProperty(CalculatedValue.prototype, \"canRunExpression\", {\n get: function () {\n return (!!this.data &&\n !this.isLoadingFromJson &&\n !!this.expression &&\n !this.expressionIsRunning &&\n !!this.name);\n },\n enumerable: true,\n configurable: true\n });\n CalculatedValue.prototype.rerunExpression = function () {\n if (!this.canRunExpression)\n return;\n this.runExpression(this.data.getFilteredValues(), this.data.getFilteredProperties());\n };\n return CalculatedValue;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"a\" /* Base */]));\n\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"calculatedvalue\", [\"!name\", \"expression:expression\", \"includeIntoResult:boolean\"], function () {\n return new CalculatedValue();\n}, \"base\");\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__expressions__ = __webpack_require__(22);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SyntaxError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return parse; });\n// tslint:disable:only-arrow-functions\n// tslint:disable:object-literal-shorthand\n// tslint:disable:trailing-comma\n// tslint:disable:object-literal-sort-keys\n// tslint:disable:one-variable-per-declaration\n// tslint:disable:max-line-length\n// tslint:disable:no-consecutive-blank-lines\n// tslint:disable:align\n// Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.2.5 )\n//\n// https://pegjs.org/ https://github.com/metadevpro/ts-pegjs\n\n\n\nvar SyntaxError = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\n\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { Expression: peg$parseExpression };\n var peg$startRuleFunction = peg$parseExpression;\n var peg$c0 = function (head, tail) {\n return buildBinaryOperand(head, tail, true);\n };\n var peg$c1 = \"||\";\n var peg$c2 = peg$literalExpectation(\"||\", false);\n var peg$c3 = \"or\";\n var peg$c4 = peg$literalExpectation(\"or\", true);\n var peg$c5 = function () { return \"or\"; };\n var peg$c6 = \"&&\";\n var peg$c7 = peg$literalExpectation(\"&&\", false);\n var peg$c8 = \"and\";\n var peg$c9 = peg$literalExpectation(\"and\", true);\n var peg$c10 = function () { return \"and\"; };\n var peg$c11 = function (head, tail) {\n return buildBinaryOperand(head, tail);\n };\n var peg$c12 = \"<=\";\n var peg$c13 = peg$literalExpectation(\"<=\", false);\n var peg$c14 = \"lessorequal\";\n var peg$c15 = peg$literalExpectation(\"lessorequal\", true);\n var peg$c16 = function () { return \"lessorequal\"; };\n var peg$c17 = \">=\";\n var peg$c18 = peg$literalExpectation(\">=\", false);\n var peg$c19 = \"greaterorequal\";\n var peg$c20 = peg$literalExpectation(\"greaterorequal\", true);\n var peg$c21 = function () { return \"greaterorequal\"; };\n var peg$c22 = \"=\";\n var peg$c23 = peg$literalExpectation(\"=\", false);\n var peg$c24 = \"equal\";\n var peg$c25 = peg$literalExpectation(\"equal\", true);\n var peg$c26 = function () { return \"equal\"; };\n var peg$c27 = \"!=\";\n var peg$c28 = peg$literalExpectation(\"!=\", false);\n var peg$c29 = \"notequal\";\n var peg$c30 = peg$literalExpectation(\"notequal\", true);\n var peg$c31 = function () { return \"notequal\"; };\n var peg$c32 = \"<\";\n var peg$c33 = peg$literalExpectation(\"<\", false);\n var peg$c34 = \"less\";\n var peg$c35 = peg$literalExpectation(\"less\", true);\n var peg$c36 = function () { return \"less\"; };\n var peg$c37 = \">\";\n var peg$c38 = peg$literalExpectation(\">\", false);\n var peg$c39 = \"greater\";\n var peg$c40 = peg$literalExpectation(\"greater\", true);\n var peg$c41 = function () { return \"greater\"; };\n var peg$c42 = \"+\";\n var peg$c43 = peg$literalExpectation(\"+\", false);\n var peg$c44 = function () { return \"plus\"; };\n var peg$c45 = \"-\";\n var peg$c46 = peg$literalExpectation(\"-\", false);\n var peg$c47 = function () { return \"minus\"; };\n var peg$c48 = \"*\";\n var peg$c49 = peg$literalExpectation(\"*\", false);\n var peg$c50 = function () { return \"mul\"; };\n var peg$c51 = \"/\";\n var peg$c52 = peg$literalExpectation(\"/\", false);\n var peg$c53 = function () { return \"div\"; };\n var peg$c54 = \"%\";\n var peg$c55 = peg$literalExpectation(\"%\", false);\n var peg$c56 = function () { return \"mod\"; };\n var peg$c57 = \"^\";\n var peg$c58 = peg$literalExpectation(\"^\", false);\n var peg$c59 = \"power\";\n var peg$c60 = peg$literalExpectation(\"power\", true);\n var peg$c61 = function () { return \"power\"; };\n var peg$c62 = \"*=\";\n var peg$c63 = peg$literalExpectation(\"*=\", false);\n var peg$c64 = \"contains\";\n var peg$c65 = peg$literalExpectation(\"contains\", true);\n var peg$c66 = \"contain\";\n var peg$c67 = peg$literalExpectation(\"contain\", true);\n var peg$c68 = function () { return \"contains\"; };\n var peg$c69 = \"notcontains\";\n var peg$c70 = peg$literalExpectation(\"notcontains\", true);\n var peg$c71 = \"notcontain\";\n var peg$c72 = peg$literalExpectation(\"notcontain\", true);\n var peg$c73 = function () { return \"notcontains\"; };\n var peg$c74 = \"anyof\";\n var peg$c75 = peg$literalExpectation(\"anyof\", true);\n var peg$c76 = function () { return \"anyof\"; };\n var peg$c77 = \"allof\";\n var peg$c78 = peg$literalExpectation(\"allof\", true);\n var peg$c79 = function () { return \"allof\"; };\n var peg$c80 = \"(\";\n var peg$c81 = peg$literalExpectation(\"(\", false);\n var peg$c82 = \")\";\n var peg$c83 = peg$literalExpectation(\")\", false);\n var peg$c84 = function (expr) { return expr; };\n var peg$c85 = function (name, params) { return new __WEBPACK_IMPORTED_MODULE_1__expressions__[\"a\" /* FunctionOperand */](name, params); };\n var peg$c86 = \"!\";\n var peg$c87 = peg$literalExpectation(\"!\", false);\n var peg$c88 = \"negate\";\n var peg$c89 = peg$literalExpectation(\"negate\", true);\n var peg$c90 = function (expr) { return new __WEBPACK_IMPORTED_MODULE_1__expressions__[\"b\" /* UnaryOperand */](expr, \"negate\"); };\n var peg$c91 = function (expr, op) { return new __WEBPACK_IMPORTED_MODULE_1__expressions__[\"b\" /* UnaryOperand */](expr, op); };\n var peg$c92 = \"empty\";\n var peg$c93 = peg$literalExpectation(\"empty\", true);\n var peg$c94 = function () { return \"empty\"; };\n var peg$c95 = \"notempty\";\n var peg$c96 = peg$literalExpectation(\"notempty\", true);\n var peg$c97 = function () { return \"notempty\"; };\n var peg$c98 = \"undefined\";\n var peg$c99 = peg$literalExpectation(\"undefined\", false);\n var peg$c100 = \"null\";\n var peg$c101 = peg$literalExpectation(\"null\", false);\n var peg$c102 = function () { return null; };\n var peg$c103 = function (value) { return new __WEBPACK_IMPORTED_MODULE_1__expressions__[\"c\" /* Const */](value); };\n var peg$c104 = \"{\";\n var peg$c105 = peg$literalExpectation(\"{\", false);\n var peg$c106 = \"}\";\n var peg$c107 = peg$literalExpectation(\"}\", false);\n var peg$c108 = function (value) { return new __WEBPACK_IMPORTED_MODULE_1__expressions__[\"d\" /* Variable */](value); };\n var peg$c109 = \"'\";\n var peg$c110 = peg$literalExpectation(\"'\", false);\n var peg$c111 = function (value) { return value; };\n var peg$c112 = \"\\\"\";\n var peg$c113 = peg$literalExpectation(\"\\\"\", false);\n var peg$c114 = \"[\";\n var peg$c115 = peg$literalExpectation(\"[\", false);\n var peg$c116 = \"]\";\n var peg$c117 = peg$literalExpectation(\"]\", false);\n var peg$c118 = function (sequence) { return sequence; };\n var peg$c119 = \",\";\n var peg$c120 = peg$literalExpectation(\",\", false);\n var peg$c121 = function (expr, tail) {\n if (expr == null)\n return [];\n var array = [expr];\n if (Array.isArray(tail)) {\n var flatten = flattenArray(tail);\n for (var i = 3; i < flatten.length; i += 4) {\n array.push(flatten[i]);\n }\n }\n return new __WEBPACK_IMPORTED_MODULE_1__expressions__[\"e\" /* ArrayOperand */](array);\n };\n var peg$c122 = \"true\";\n var peg$c123 = peg$literalExpectation(\"true\", true);\n var peg$c124 = function () { return true; };\n var peg$c125 = \"false\";\n var peg$c126 = peg$literalExpectation(\"false\", true);\n var peg$c127 = function () { return false; };\n var peg$c128 = \"0x\";\n var peg$c129 = peg$literalExpectation(\"0x\", false);\n var peg$c130 = function () { return parseInt(text(), 16); };\n var peg$c131 = /^[\\-]/;\n var peg$c132 = peg$classExpectation([\"-\"], false, false);\n var peg$c133 = function (sign, num) { return sign == null ? num : -num; };\n var peg$c134 = \".\";\n var peg$c135 = peg$literalExpectation(\".\", false);\n var peg$c136 = function () { return parseFloat(text()); };\n var peg$c137 = function () { return parseInt(text(), 10); };\n var peg$c138 = \"0\";\n var peg$c139 = peg$literalExpectation(\"0\", false);\n var peg$c140 = function () { return 0; };\n var peg$c141 = function (chars) { return chars.join(\"\"); };\n var peg$c142 = \"\\\\'\";\n var peg$c143 = peg$literalExpectation(\"\\\\'\", false);\n var peg$c144 = function () { return \"'\"; };\n var peg$c145 = \"\\\\\\\"\";\n var peg$c146 = peg$literalExpectation(\"\\\\\\\"\", false);\n var peg$c147 = function () { return \"\\\"\"; };\n var peg$c148 = /^[^\"'{}]/;\n var peg$c149 = peg$classExpectation([\"\\\"\", \"'\", \"{\", \"}\"], true, false);\n var peg$c150 = function () { return text(); };\n var peg$c151 = /^[^{}]/;\n var peg$c152 = peg$classExpectation([\"{\", \"}\"], true, false);\n var peg$c153 = /^[0-9]/;\n var peg$c154 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c155 = /^[1-9]/;\n var peg$c156 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c157 = /^[a-zA-Z]/;\n var peg$c158 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c159 = peg$otherExpectation(\"whitespace\");\n var peg$c160 = /^[ \\t\\n\\r]/;\n var peg$c161 = peg$classExpectation([\" \", \"\\t\", \"\\n\", \"\\r\"], false, false);\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$resultsCache = {};\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parseExpression() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n var key = peg$currPos * 34 + 0;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseLogicOr();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parseOrSign();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseLogicOr();\n if (s8 !== peg$FAILED) {\n s5 = [s5, s6, s7, s8];\n s4 = s5;\n }\n else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parseOrSign();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseLogicOr();\n if (s8 !== peg$FAILED) {\n s5 = [s5, s6, s7, s8];\n s4 = s5;\n }\n else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseOrSign() {\n var s0, s1;\n var key = peg$currPos * 34 + 1;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c1) {\n s1 = peg$c1;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c2);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 2).toLowerCase() === peg$c3) {\n s1 = input.substr(peg$currPos, 2);\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c5();\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseLogicOr() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 34 + 2;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseLogicAnd();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseAndSign();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseLogicAnd();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseAndSign();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseLogicAnd();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseAndSign() {\n var s0, s1;\n var key = peg$currPos * 34 + 3;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c6) {\n s1 = peg$c6;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 3).toLowerCase() === peg$c8) {\n s1 = input.substr(peg$currPos, 3);\n peg$currPos += 3;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c10();\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseLogicAnd() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 34 + 4;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseCompOps();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseComparableOperators();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseCompOps();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseComparableOperators();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseCompOps();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseComparableOperators() {\n var s0, s1;\n var key = peg$currPos * 34 + 5;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c12) {\n s1 = peg$c12;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 11).toLowerCase() === peg$c14) {\n s1 = input.substr(peg$currPos, 11);\n peg$currPos += 11;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c18);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 14).toLowerCase() === peg$c19) {\n s1 = input.substr(peg$currPos, 14);\n peg$currPos += 14;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c20);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s1 = peg$c22;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 5).toLowerCase() === peg$c24) {\n s1 = input.substr(peg$currPos, 5);\n peg$currPos += 5;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c25);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c27) {\n s1 = peg$c27;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 8).toLowerCase() === peg$c29) {\n s1 = input.substr(peg$currPos, 8);\n peg$currPos += 8;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 60) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4).toLowerCase() === peg$c34) {\n s1 = input.substr(peg$currPos, 4);\n peg$currPos += 4;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c36();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 62) {\n s1 = peg$c37;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c38);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 7).toLowerCase() === peg$c39) {\n s1 = input.substr(peg$currPos, 7);\n peg$currPos += 7;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c40);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c41();\n }\n s0 = s1;\n }\n }\n }\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseCompOps() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 34 + 6;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parsePlusMinusOps();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsePlusMinusSigns();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsePlusMinusOps();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsePlusMinusSigns();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsePlusMinusOps();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsePlusMinusSigns() {\n var s0, s1;\n var key = peg$currPos * 34 + 7;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 43) {\n s1 = peg$c42;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c44();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c45;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c46);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c47();\n }\n s0 = s1;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsePlusMinusOps() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 34 + 8;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseMulDivOps();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseMulDivSigns();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseMulDivOps();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseMulDivSigns();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseMulDivOps();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseMulDivSigns() {\n var s0, s1;\n var key = peg$currPos * 34 + 9;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 42) {\n s1 = peg$c48;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c50();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c51;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c52);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c53();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 37) {\n s1 = peg$c54;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c55);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c56();\n }\n s0 = s1;\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseMulDivOps() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 34 + 10;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseBinaryFuncOp();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsePowerSigns();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseBinaryFuncOp();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsePowerSigns();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseBinaryFuncOp();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsePowerSigns() {\n var s0, s1;\n var key = peg$currPos * 34 + 11;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 94) {\n s1 = peg$c57;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c58);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 5).toLowerCase() === peg$c59) {\n s1 = input.substr(peg$currPos, 5);\n peg$currPos += 5;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c60);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseBinaryFuncOp() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 34 + 12;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseFactor();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseBinFunctions();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseFactor();\n if (s7 === peg$FAILED) {\n s7 = null;\n }\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseBinFunctions();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseFactor();\n if (s7 === peg$FAILED) {\n s7 = null;\n }\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseBinFunctions() {\n var s0, s1;\n var key = peg$currPos * 34 + 13;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c63);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 8).toLowerCase() === peg$c64) {\n s1 = input.substr(peg$currPos, 8);\n peg$currPos += 8;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c65);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 7).toLowerCase() === peg$c66) {\n s1 = input.substr(peg$currPos, 7);\n peg$currPos += 7;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c68();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 11).toLowerCase() === peg$c69) {\n s1 = input.substr(peg$currPos, 11);\n peg$currPos += 11;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c70);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 10).toLowerCase() === peg$c71) {\n s1 = input.substr(peg$currPos, 10);\n peg$currPos += 10;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c72);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c73();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5).toLowerCase() === peg$c74) {\n s1 = input.substr(peg$currPos, 5);\n peg$currPos += 5;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c75);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c76();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5).toLowerCase() === peg$c77) {\n s1 = input.substr(peg$currPos, 5);\n peg$currPos += 5;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c78);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c79();\n }\n s0 = s1;\n }\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseFactor() {\n var s0, s1, s2, s3, s4, s5;\n var key = peg$currPos * 34 + 14;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c80;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseExpression();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c82;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n if (s5 === peg$FAILED) {\n s5 = null;\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c84(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseFunctionOp();\n if (s0 === peg$FAILED) {\n s0 = peg$parseUnaryFunctionOp();\n if (s0 === peg$FAILED) {\n s0 = peg$parseAtom();\n if (s0 === peg$FAILED) {\n s0 = peg$parseArrayOp();\n }\n }\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseFunctionOp() {\n var s0, s1, s2, s3, s4;\n var key = peg$currPos * 34 + 15;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseLettersAndDigits();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s2 = peg$c80;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseSequence();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s4 = peg$c82;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c85(s1, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseUnaryFunctionOp() {\n var s0, s1, s2, s3;\n var key = peg$currPos * 34 + 16;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c86;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c87);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 6).toLowerCase() === peg$c88) {\n s1 = input.substr(peg$currPos, 6);\n peg$currPos += 6;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c89);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseExpression();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c90(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseAtom();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseUnFunctions();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c91(s1, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseUnFunctions() {\n var s0, s1;\n var key = peg$currPos * 34 + 17;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5).toLowerCase() === peg$c92) {\n s1 = input.substr(peg$currPos, 5);\n peg$currPos += 5;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c93);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c94();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 8).toLowerCase() === peg$c95) {\n s1 = input.substr(peg$currPos, 8);\n peg$currPos += 8;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c96);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c97();\n }\n s0 = s1;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseAtom() {\n var s0, s1, s2, s3, s4;\n var key = peg$currPos * 34 + 18;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 9) === peg$c98) {\n s2 = peg$c98;\n peg$currPos += 9;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c99);\n }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c100) {\n s2 = peg$c100;\n peg$currPos += 4;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c101);\n }\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c102();\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseConstValue();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c103(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s2 = peg$c104;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c105);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseValueInput();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s4 = peg$c106;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c107);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c108(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseConstValue() {\n var s0, s1, s2, s3;\n var key = peg$currPos * 34 + 19;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$parseLogicValue();\n if (s0 === peg$FAILED) {\n s0 = peg$parseArithmeticValue();\n if (s0 === peg$FAILED) {\n s0 = peg$parseLettersAndDigits();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c109;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c110);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseAnyInput();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c109;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c110);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c111(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 34) {\n s1 = peg$c112;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c113);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseAnyInput();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 34) {\n s3 = peg$c112;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c113);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c111(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseArrayOp() {\n var s0, s1, s2, s3;\n var key = peg$currPos * 34 + 20;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c114;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c115);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseSequence();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s3 = peg$c116;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c117);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c118(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseSequence() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 34 + 21;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseExpression();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c119;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c120);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseExpression();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c119;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c120);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseExpression();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c121(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseLogicValue() {\n var s0, s1;\n var key = peg$currPos * 34 + 22;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 4).toLowerCase() === peg$c122) {\n s1 = input.substr(peg$currPos, 4);\n peg$currPos += 4;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c123);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c124();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5).toLowerCase() === peg$c125) {\n s1 = input.substr(peg$currPos, 5);\n peg$currPos += 5;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c126);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c127();\n }\n s0 = s1;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseArithmeticValue() {\n var s0, s1, s2;\n var key = peg$currPos * 34 + 23;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c128) {\n s1 = peg$c128;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c129);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseDigits();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c130();\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (peg$c131.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c132);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c133(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseNumber() {\n var s0, s1, s2, s3;\n var key = peg$currPos * 34 + 24;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseDigits();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c134;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c135);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseDigits();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c136();\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseNonZeroDigits();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseDigits();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c137();\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c138;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c139);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c140();\n }\n s0 = s1;\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseValueInput() {\n var s0, s1, s2;\n var key = peg$currPos * 34 + 25;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseValueCharacters();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseValueCharacters();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c141(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseAnyInput() {\n var s0, s1, s2;\n var key = peg$currPos * 34 + 26;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseAnyCharacters();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseAnyCharacters();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c141(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseAnyCharacters() {\n var s0, s1;\n var key = peg$currPos * 34 + 27;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c142) {\n s1 = peg$c142;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c143);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c144();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c145) {\n s1 = peg$c145;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c146);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c147();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (peg$c148.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c149);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c150();\n }\n s0 = s1;\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseValueCharacters() {\n var s0, s1;\n var key = peg$currPos * 34 + 28;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (peg$c151.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c152);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c150();\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseLettersAndDigits() {\n var s0, s1, s2, s3, s4, s5, s6;\n var key = peg$currPos * 34 + 29;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseLetters();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parseDigits();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseLetters();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseLetters();\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parseDigits();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseLetters();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseLetters();\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c150();\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseDigits() {\n var s0, s1;\n var key = peg$currPos * 34 + 30;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = [];\n if (peg$c153.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c154);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c153.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c154);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseNonZeroDigits() {\n var s0, s1;\n var key = peg$currPos * 34 + 31;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = [];\n if (peg$c155.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c156);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c155.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c156);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseLetters() {\n var s0, s1;\n var key = peg$currPos * 34 + 32;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = [];\n if (peg$c157.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c158);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c157.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c158);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parse_() {\n var s0, s1;\n var key = peg$currPos * 34 + 33;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = [];\n if (peg$c160.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c161);\n }\n }\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c160.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c161);\n }\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c159);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function buildBinaryOperand(head, tail, isArithmeticOp) {\n if (isArithmeticOp === void 0) { isArithmeticOp = false; }\n return tail.reduce(function (result, elements) {\n return new __WEBPACK_IMPORTED_MODULE_1__expressions__[\"f\" /* BinaryOperand */](elements[1], result, elements[3], isArithmeticOp);\n }, head);\n }\n function flattenArray(array) {\n return [].concat.apply([], array);\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nvar parse = peg$parse;\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__panel__ = __webpack_require__(21);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FlowPanelModel; });\n\n\n\n/**\n * The flow panel object. It is a container with flow layout where you can mix questions with mardown text.\n *\n */\nvar FlowPanelModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(FlowPanelModel, _super);\n function FlowPanelModel(name) {\n if (name === void 0) { name = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.createLocalizableString(\"content\", _this, true);\n var self = _this;\n _this.registerFunctionOnPropertyValueChanged(\"content\", function () {\n self.onContentChanged();\n });\n return _this;\n }\n FlowPanelModel.prototype.getType = function () {\n return \"flowpanel\";\n };\n FlowPanelModel.prototype.getChildrenLayoutType = function () {\n return \"flow\";\n };\n FlowPanelModel.prototype.onSurveyLoad = function () {\n _super.prototype.onSurveyLoad.call(this);\n this.onContentChanged();\n };\n Object.defineProperty(FlowPanelModel.prototype, \"content\", {\n get: function () {\n return this.getLocalizableStringText(\"content\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"content\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanelModel.prototype, \"locContent\", {\n get: function () {\n return this.getLocalizableString(\"content\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlowPanelModel.prototype, \"html\", {\n get: function () {\n return this.getPropertyValue(\"html\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"html\", val);\n },\n enumerable: true,\n configurable: true\n });\n FlowPanelModel.prototype.onContentChanged = function () {\n var html = \"\";\n if (!!this.onCustomHtmlProducing) {\n html = this.onCustomHtmlProducing();\n }\n else {\n html = this.produceHtml();\n }\n this.html = html;\n if (!!this.contentChangedCallback)\n this.contentChangedCallback();\n };\n FlowPanelModel.prototype.produceHtml = function () {\n var html = [];\n //contentElementNamePrefix\n var regEx = /{(.*?(element:)[^$].*?)}/g;\n var str = this.content;\n var startIndex = 0;\n var res = null;\n while ((res = regEx.exec(str)) !== null) {\n if (res.index > startIndex) {\n html.push(str.substr(startIndex, res.index - startIndex));\n startIndex = res.index;\n }\n var question = this.getQuestionFromText(res[0]);\n if (!!question) {\n html.push(this.getHtmlForQuestion(question));\n }\n else {\n html.push(str.substr(startIndex, res.index + res[0].length - startIndex));\n }\n startIndex = res.index + res[0].length;\n }\n if (startIndex < str.length) {\n html.push(str.substr(startIndex, str.length - startIndex));\n }\n return html.join(\"\").replace(new RegExp(\"
\", \"g\"), \"
\");\n };\n FlowPanelModel.prototype.getQuestionFromText = function (str) {\n str = str.substr(1, str.length - 2);\n str = str.replace(FlowPanelModel.contentElementNamePrefix, \"\").trim();\n return this.getQuestionByName(str);\n };\n FlowPanelModel.prototype.getHtmlForQuestion = function (question) {\n if (!!this.onGetHtmlForQuestion)\n return this.onGetHtmlForQuestion(question);\n return \"\";\n };\n FlowPanelModel.prototype.getQuestionHtmlId = function (question) {\n return this.name + \"_\" + question.id;\n };\n FlowPanelModel.prototype.onAddElement = function (element, index) {\n _super.prototype.onAddElement.call(this, element, index);\n this.addElementToContent(element);\n element.renderWidth = \"\";\n };\n FlowPanelModel.prototype.onRemoveElement = function (element) {\n var searchStr = this.getElementContentText(element);\n this.content = this.content.replace(searchStr, \"\");\n _super.prototype.onRemoveElement.call(this, element);\n };\n FlowPanelModel.prototype.dragDropMoveElement = function (src, target, targetIndex) { };\n FlowPanelModel.prototype.addElementToContent = function (element) {\n if (this.isLoadingFromJson)\n return;\n var text = this.getElementContentText(element);\n if (!this.insertTextAtCursor(text)) {\n this.content = this.content + text;\n }\n };\n FlowPanelModel.prototype.insertTextAtCursor = function (text, prevName) {\n if (prevName === void 0) { prevName = null; }\n if (!this.isDesignMode || (!window && !window.getSelection))\n return false;\n var sel = window.getSelection();\n if (sel.getRangeAt && sel.rangeCount) {\n var range = sel.getRangeAt(0);\n range.deleteContents();\n range.insertNode(document.createTextNode(text));\n var self = this;\n if (self.getContent) {\n var str = self.getContent(prevName);\n this.content = str;\n }\n return true;\n }\n return false;\n };\n FlowPanelModel.prototype.getElementContentText = function (element) {\n return \"{\" + FlowPanelModel.contentElementNamePrefix + element.name + \"}\";\n };\n FlowPanelModel.contentElementNamePrefix = \"element:\";\n return FlowPanelModel;\n}(__WEBPACK_IMPORTED_MODULE_2__panel__[\"c\" /* PanelModel */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"flowpanel\", [{ name: \"content:html\", serializationProperty: \"locContent\" }], function () {\n return new FlowPanelModel();\n}, \"panel\");\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__conditions__ = __webpack_require__(13);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return HtmlConditionItem; });\n\n\n\n\n/**\n * A class that contains expression and html propeties. It uses in survey.completedHtmlOnCondition array.\n * If the expression returns true then html of this item uses instead of survey.completedHtml property\n * @see SurveyModel.completedHtmlOnCondition\n * @see SurveyModel.completedHtml\n */\nvar HtmlConditionItem = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(HtmlConditionItem, _super);\n function HtmlConditionItem(expression, html) {\n if (expression === void 0) { expression = null; }\n if (html === void 0) { html = null; }\n var _this = _super.call(this) || this;\n _this.createLocalizableString(\"html\", _this);\n _this.expression = expression;\n _this.html = html;\n return _this;\n }\n HtmlConditionItem.prototype.getType = function () {\n return \"htmlconditionitem\";\n };\n HtmlConditionItem.prototype.runCondition = function (values, properties) {\n if (!this.expression)\n return false;\n return new __WEBPACK_IMPORTED_MODULE_3__conditions__[\"b\" /* ConditionRunner */](this.expression).run(values, properties);\n };\n Object.defineProperty(HtmlConditionItem.prototype, \"expression\", {\n /**\n * The expression property. If this expression returns true, then survey will use html property to show on complete page.\n */\n get: function () {\n return this.getPropertyValue(\"expression\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"expression\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HtmlConditionItem.prototype, \"html\", {\n /**\n * The html that shows on completed ('Thank you') page. The expression should return true\n * @see expression\n */\n get: function () {\n return this.getLocalizableStringText(\"html\");\n },\n set: function (value) {\n this.setLocalizableStringText(\"html\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HtmlConditionItem.prototype, \"locHtml\", {\n get: function () {\n return this.getLocalizableString(\"html\");\n },\n enumerable: true,\n configurable: true\n });\n HtmlConditionItem.prototype.getLocale = function () {\n return !!this.locOwner ? this.locOwner.getLocale() : \"\";\n };\n HtmlConditionItem.prototype.getMarkdownHtml = function (text) {\n return !!this.locOwner ? this.locOwner.getMarkdownHtml(text) : null;\n };\n HtmlConditionItem.prototype.getProcessedText = function (text) {\n return this.locOwner ? this.locOwner.getProcessedText(text) : text;\n };\n return HtmlConditionItem;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"a\" /* Base */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"htmlconditionitem\", [\n \"expression:condition\",\n { name: \"html:html\", serializationProperty: \"locHtml\" }\n], function () {\n return new HtmlConditionItem();\n}, \"base\");\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export arabicSurveyStrings */\n\nvar arabicSurveyStrings = {\n pagePrevText: \"السابق\",\n pageNextText: \"التالي\",\n completeText: \"انهاء- تم\",\n progressText: \"{1} صفحة {0} من\",\n otherItemText: \"نص آخر\",\n emptySurvey: \"لا توجد صفحة مرئية أو سؤال في المسح\",\n completingSurvey: \"شكرا لك لاستكمال الاستبيان!\",\n loadingSurvey: \"...يتم تحميل الاستبيان\",\n optionsCaption: \"...اختر\",\n requiredError: \".يرجى الإجابة على السؤال\",\n requiredInAllRowsError: \"يرجى الإجابة على الأسئلة في جميع الصفوف\",\n numericError: \"يجب أن تكون القيمة الرقمية.\",\n textMinLength: \"الرجاء إدخال ما لا يقل عن {0} حرف\",\n textMaxLength: \"الرجاء إدخال أقل من {0} حرف\",\n textMinMaxLength: \"يرجى إدخال أكثر من {0} وأقل من {1} حرف\",\n minRowCountError: \"يرجى ملء ما لا يقل عن {0} الصفوف\",\n minSelectError: \"يرجى تحديد ما لا يقل عن {0} المتغيرات\",\n maxSelectError: \"يرجى تحديد ما لا يزيد عن {0} المتغيرات\",\n numericMinMax: \"و'{0}' يجب أن تكون مساوية أو أكثر من {1} ويساوي أو أقل من {2}ا\",\n numericMin: \"و'{0}' يجب أن تكون مساوية أو أكثر من {1}ا\",\n numericMax: \"و'{0}' يجب أن تكون مساوية أو أقل من {1}ا\",\n invalidEmail: \"رجاء قم بإدخال بريد الكتروني صحيح\",\n urlRequestError: \"طلب إرجاع خطأ '{0}'. {1}ا\",\n urlGetChoicesError: \"عاد طلب بيانات فارغة أو 'المسار' ممتلكات غير صحيحة \",\n exceedMaxSize: \"وينبغي ألا يتجاوز حجم الملف {0}ا\",\n otherRequiredError: \"الرجاء إدخال قيمة أخرى\",\n uploadingFile: \"الملف الخاص بك تحميل. يرجى الانتظار عدة ثوان وحاول مرة أخرى\",\n addRow: \"اضافة صف\",\n removeRow: \"إزالة صف\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"ar\"] = arabicSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"ar\"] = \"العربية\";\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export bulgarianStrings */\n//Uncomment this line on creating a translation file\n\nvar bulgarianStrings = {\n pagePrevText: \"Назад\",\n pageNextText: \"Напред\",\n completeText: \"Край\",\n startSurveyText: \"Начало\",\n otherItemText: \"Друго (опишете)\",\n noneItemText: \"Нито един\",\n selectAllItemText: \"Всички\",\n progressText: \"стр. {0}, общо стр. {1}\",\n emptySurvey: \"Анкетата не съдържа видими страници или въпроси.\",\n completingSurvey: \"Благодарим ви за участието в анкетата!\",\n completingSurveyBefore: \"Изглежда, че вие вече сте попълнили анкетата.\",\n loadingSurvey: \"Зареждане на анкетата...\",\n optionsCaption: \"Изберете...\",\n value: \"value\",\n requiredError: \"Моля, отговорете на следния въпрос.\",\n requiredErrorInPanel: \"Моля, отговорете поне на един от въпросите.\",\n requiredInAllRowsError: \"Моля, отговорете на въпросите на всички редове.\",\n numericError: \"Стойността следва да бъде число.\",\n textMinLength: \"Моля, използвайте поне {0} символа.\",\n textMaxLength: \"Моля, използвайте не повече от {0} символа.\",\n textMinMaxLength: \"Моля, използвайте повече от {0} и по-малко от {1} символа.\",\n minRowCountError: \"Моля, попълнете поне {0} реда.\",\n minSelectError: \"Моля, изберете поне {0} варианта.\",\n maxSelectError: \"Моля, изберете не повече от {0} варианта.\",\n numericMinMax: \"Стойността '{0}' следва да бъде равна или по-голяма от {1} и равна или по-малка от {2}\",\n numericMin: \"Стойността '{0}' следва да бъде равна или по-голяма от {1}\",\n numericMax: \"Стойността '{0}' следва да бъде равна или по-малка от {1}\",\n invalidEmail: \"Моля, въведете валиден адрес на електронна поща.\",\n invalidExpression: \"Изразът: {0} трябва да дава резултат 'true' (истина).\",\n urlRequestError: \"Заявката води до грешка '{0}'. {1}\",\n urlGetChoicesError: \"Заявката не връща данни или частта 'path' (път до търсения ресурс на сървъра) е неправилно зададена\",\n exceedMaxSize: \"Размерът на файла следва да не превишава {0}.\",\n otherRequiredError: \"Моля, въведете другата стойност.\",\n uploadingFile: \"Вашит файл се зарежда на сървъра. Моля, изчакайте няколко секунди и тогава опитвайте отново.\",\n loadingFile: \"Зареждане...\",\n chooseFile: \"Изберете файл(ове)...\",\n confirmDelete: \"Желаете ли да изтриете записа?\",\n keyDuplicationError: \"Стойността следва да бъде уникална.\",\n addColumn: \"Добавяне на колона\",\n addRow: \"Добавяне на ред\",\n removeRow: \"Премахване на ред\",\n addPanel: \"Добавяне на панел\",\n removePanel: \"Премахване на панел\",\n choices_Item: \"елемент\",\n matrix_column: \"Колона\",\n matrix_row: \"Ред\",\n savingData: \"Резултатите се запазват на сървъра...\",\n savingDataError: \"Поради възникнала грешка резултатите не можаха да бъдат запазени.\",\n savingDataSuccess: \"Резултатите бяха запазени успешно!\",\n saveAgainButton: \"Нов опит\",\n timerMin: \"мин\",\n timerSec: \"сек\",\n timerSpentAll: \"Вие използвахте {0} на тази страница и общо {1}.\",\n timerSpentPage: \"Вие използвахте {0} на тази страница.\",\n timerSpentSurvey: \"Вие използвахте общо {0}.\",\n timerLimitAll: \"Вие изпозвахте {0} от {1} на тази страница и общо {2} от {3}.\",\n timerLimitPage: \"Вие използвахте {0} от {1} на тази страница.\",\n timerLimitSurvey: \"Вие използвахте общо {0} от {1}.\",\n cleanCaption: \"Изчистване\",\n clearCaption: \"Начално състояние\",\n removeFileCaption: \"Премахване на файла\"\n};\n//Uncomment these two lines on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"bg\"] = bulgarianStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"bg\"] = \"Bulgarian\";\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export catalanSurveyStrings */\n\nvar catalanSurveyStrings = {\n pagePrevText: \"Anterior\",\n pageNextText: \"Següent\",\n completeText: \"Complet\",\n otherItemText: \"Un altre (descrigui)\",\n progressText: \"Pàgina {0} de {1}\",\n emptySurvey: \"No hi ha cap pàgina visible o pregunta a l'enquesta.\",\n completingSurvey: \"Gràcies per completar l'enquesta!\",\n loadingSurvey: \"L'enquesta s'està carregant ...\",\n optionsCaption: \"Selecciona ...\",\n requiredError: \"Si us plau contesti la pregunta.\",\n requiredInAllRowsError: \"Si us plau contesti les preguntes de cada filera.\",\n numericError: \"L'estimació ha de ser numèrica.\",\n textMinLength: \"Si us plau entre almenys {0} símbols.\",\n textMaxLength: \"Si us plau entre menys de {0} símbols.\",\n textMinMaxLength: \"Si us plau entre més de {0} i menys de {1} símbols.\",\n minRowCountError: \"Si us plau ompli almenys {0} fileres.\",\n minSelectError: \"Si us plau seleccioni almenys {0} variants.\",\n maxSelectError: \"Si us plau seleccioni no més de {0} variants.\",\n numericMinMax: \"El '{0}' deu ser igual o més de {1} i igual o menys de {2}\",\n numericMin: \"El '{0}' ha de ser igual o més de {1}\",\n numericMax: \"El '{0}' ha de ser igual o menys de {1}\",\n invalidEmail: \"Si us plau afegiu un correu electrònic vàlid.\",\n urlRequestError: \"La sol·licitud va tornar error '{0}'. {1}\",\n urlGetChoicesError: \"La sol·licitud va tornar buida de dates o la propietat 'trajectòria' no és correcta\",\n exceedMaxSize: \"La mida de l'arxiu no pot excedir {0}.\",\n otherRequiredError: \"Si us plau afegiu l'altra estimació.\",\n uploadingFile: \"El seu arxiu s'està pujant. Si us plau esperi uns segons i intenteu-ho de nou.\",\n addRow: \"Afegiu una filera\",\n removeRow: \"Eliminar una filera\",\n choices_firstItem: \"primer article\",\n choices_secondItem: \"segon article\",\n choices_thirdItem: \"tercer article\",\n matrix_column: \"Columna\",\n matrix_row: \"Filera\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"ca\"] = catalanSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"ca\"] = \"català\";\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export czechSurveyStrings */\n\nvar czechSurveyStrings = {\n pagePrevText: \"Předchozí\",\n pageNextText: \"Další\",\n completeText: \"Hotovo\",\n otherItemText: \"Jiná odpověď (napište)\",\n progressText: \"Strana {0} z {1}\",\n emptySurvey: \"Průzkumu neobsahuje žádné otázky.\",\n completingSurvey: \"Děkujeme za vyplnění průzkumu!\",\n loadingSurvey: \"Probíhá načítání průzkumu...\",\n optionsCaption: \"Vyber...\",\n requiredError: \"Odpovězte prosím na otázku.\",\n requiredInAllRowsError: \"Odpovězte prosím na všechny otázky.\",\n numericError: \"V tomto poli lze zadat pouze čísla.\",\n textMinLength: \"Zadejte prosím alespoň {0} znaků.\",\n textMaxLength: \"Zadejte prosím méně než {0} znaků.\",\n textMinMaxLength: \"Zadejte prosím více než {0} a méně než {1} znaků.\",\n minRowCountError: \"Vyplňte prosím alespoň {0} řádků.\",\n minSelectError: \"Vyberte prosím alespoň {0} varianty.\",\n maxSelectError: \"Nevybírejte prosím více než {0} variant.\",\n numericMinMax: \"Odpověď '{0}' by mělo být větší nebo rovno {1} a menší nebo rovno {2}\",\n numericMin: \"Odpověď '{0}' by mělo být větší nebo rovno {1}\",\n numericMax: \"Odpověď '{0}' by mělo být menší nebo rovno {1}\",\n invalidEmail: \"Zadejte prosím platnou e-mailovou adresu.\",\n urlRequestError: \"Požadavek vrátil chybu '{0}'. {1}\",\n urlGetChoicesError: \"Požadavek nevrátil data nebo cesta je neplatná\",\n exceedMaxSize: \"Velikost souboru by neměla být větší než {0}.\",\n otherRequiredError: \"Zadejte prosím jinou hodnotu.\",\n uploadingFile: \"Váš soubor se nahrává. Zkuste to prosím za několik sekund.\",\n addRow: \"Přidat řádek\",\n removeRow: \"Odstranit\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"cz\"] = czechSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"cz\"] = \"čeština\";\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export danishSurveyStrings */\n\nvar danishSurveyStrings = {\n pagePrevText: \"Tilbage\",\n pageNextText: \"Videre\",\n completeText: \"Færdig\",\n startSurveyText: \"Start\",\n otherItemText: \"Valgfrit svar...\",\n noneItemText: \"Ingen\",\n selectAllItemText: \"Vælg alle\",\n progressText: \"Side {0} af {1}\",\n emptySurvey: \"Der er ingen synlige spørgsmål.\",\n completingSurvey: \"Mange tak for din besvarelse!\",\n completingSurveyBefore: \"Vores data viser at du allerede har gennemført dette spørgeskema.\",\n loadingSurvey: \"Spørgeskemaet hentes fra serveren...\",\n optionsCaption: \"Vælg...\",\n value: \"værdi\",\n requiredError: \"Besvar venligst spørgsmålet.\",\n requiredErrorInPanel: \"Besvar venligst mindst ét spørgsmål.\",\n requiredInAllRowsError: \"Besvar venligst spørgsmål i alle rækker.\",\n numericError: \"Angiv et tal.\",\n textMinLength: \"Angiv mindst {0} tegn.\",\n textMaxLength: \"Please enter less than {0} characters.\",\n textMinMaxLength: \"Angiv mere end {0} og mindre end {1} tegn.\",\n minRowCountError: \"Udfyld mindst {0} rækker.\",\n minSelectError: \"Vælg venligst mindst {0} svarmulighed(er).\",\n maxSelectError: \"Vælg venligst færre {0} svarmuligheder(er).\",\n numericMinMax: \"'{0}' skal være lig med eller større end {1} og lig med eller mindre end {2}\",\n numericMin: \"'{0}' skal være lig med eller større end {1}\",\n numericMax: \"'{0}' skal være lig med eller mindre end {1}\",\n invalidEmail: \"Angiv venligst en gyldig e-mail adresse.\",\n invalidExpression: \"Udtrykket: {0} skal returnere 'true'.\",\n urlRequestError: \"Forespørgslen returnerede fejlen '{0}'. {1}\",\n urlGetChoicesError: \"Forespørgslen returnerede ingen data eller 'path' parameteren er forkert\",\n exceedMaxSize: \"Filstørrelsen må ikke overstige {0}.\",\n otherRequiredError: \"Angiv en værdi for dit valgfrie svar.\",\n uploadingFile: \"Din fil bliver uploadet. Vent nogle sekunder og prøv eventuelt igen.\",\n loadingFile: \"Indlæser...\",\n chooseFile: \"Vælg fil(er)...\",\n confirmDelete: \"Vil du fjerne den?\",\n keyDuplicationError: \"Denne værdi skal være unik.\",\n addColumn: \"Tilføj kolonne\",\n addRow: \"Tilføj række\",\n removeRow: \"Fjern\",\n addPanel: \"Tilføj ny\",\n removePanel: \"Fjern\",\n choices_Item: \"valg\",\n matrix_column: \"Kolonne\",\n matrix_row: \"Række\",\n savingData: \"Resultaterne bliver gemt på serveren...\",\n savingDataError: \"Der opstod en fejl og vi kunne ikke gemme resultatet.\",\n savingDataSuccess: \"Resultatet blev gemt!\",\n saveAgainButton: \"Prøv igen\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Du har brugt {0} på denne side og {1} i alt.\",\n timerSpentPage: \"Du har brugt {0} på denne side.\",\n timerSpentSurvey: \"Du har brugt {0} i alt.\",\n timerLimitAll: \"Du har brugt {0} af {1} på denne side og {2} af {3} i alt.\",\n timerLimitPage: \"Du har brugt {0} af {1} på denne side.\",\n timerLimitSurvey: \"Du har brugt {0} af {1} i alt.\",\n cleanCaption: \"Rens\",\n clearCaption: \"Fjern\",\n removeFileCaption: \"Fjern denne fil\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"da\"] = danishSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"da\"] = \"dansk\";\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export dutchSurveyStrings */\n//Created on behalf https://github.com/Frank13\n//Modified on behalf Roeland Verbakel\n\nvar dutchSurveyStrings = {\n pagePrevText: \"Vorige\",\n pageNextText: \"Volgende\",\n completeText: \"Verzenden\",\n otherItemText: \"Anders, nl.\",\n progressText: \"Pagina {0} van {1}\",\n emptySurvey: \"Er is geen zichtbare pagina of vraag in deze vragenlijst\",\n completingSurvey: \"Bedankt voor het invullen van de vragenlijst\",\n loadingSurvey: \"De vragenlijst is aan het laden...\",\n optionsCaption: \"Kies...\",\n requiredError: \"Dit is een vereiste vraag\",\n numericError: \"Het antwoord moet een getal zijn\",\n textMinLength: \"Vul minstens {0} karakters in\",\n minSelectError: \"Selecteer minimum {0} antwoorden\",\n maxSelectError: \"Selecteer niet meer dan {0} antwoorden\",\n numericMinMax: \"Uw antwoord '{0}' moet groter of gelijk zijn aan {1} en kleiner of gelijk aan {2}\",\n numericMin: \"Uw antwoord '{0}' moet groter of gelijk zijn aan {1}\",\n numericMax: \"Uw antwoord '{0}' moet groter of gelijk zijn aan {1}\",\n invalidEmail: \"Vul een geldig e-mailadres in\",\n exceedMaxSize: \"De grootte van het bestand mag niet groter zijn dan {0}\",\n otherRequiredError: \"Vul het veld 'Anders, nl.' in\",\n requiredInAllRowsError: \"Deze vraag vereist één antwoord per rij\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"nl\"] = dutchSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"nl\"] = \"nederlands\";\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export finnishSurveyStrings */\n\nvar finnishSurveyStrings = {\n pagePrevText: \"Edellinen\",\n pageNextText: \"Seuraava\",\n completeText: \"Valmis\",\n otherItemText: \"Muu (kuvaile)\",\n progressText: \"Sivu {0}/{1}\",\n emptySurvey: \"Tässä kyselyssä ei ole yhtäkään näkyvillä olevaa sivua tai kysymystä.\",\n completingSurvey: \"Kiitos kyselyyn vastaamisesta!\",\n loadingSurvey: \"Kyselyä ladataan palvelimelta...\",\n optionsCaption: \"Valitse...\",\n requiredError: \"Vastaa kysymykseen, kiitos.\",\n numericError: \"Arvon tulee olla numeerinen.\",\n textMinLength: \"Ole hyvä ja syötä vähintään {0} merkkiä.\",\n minSelectError: \"Ole hyvä ja valitse vähintään {0} vaihtoehtoa.\",\n maxSelectError: \"Ole hyvä ja valitse enintään {0} vaihtoehtoa.\",\n numericMinMax: \"'{0}' täytyy olla enemmän tai yhtä suuri kuin {1} ja vähemmän tai yhtä suuri kuin {2}\",\n numericMin: \"'{0}' täytyy olla enemmän tai yhtä suuri kuin {1}\",\n numericMax: \"'{0}' täytyy olla vähemmän tai yhtä suuri kuin {1}\",\n invalidEmail: \"Syötä validi sähköpostiosoite.\",\n otherRequiredError: 'Ole hyvä ja syötä \"Muu (kuvaile)\"'\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"fi\"] = finnishSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"fi\"] = \"suomalainen\";\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export frenchSurveyStrings */\n\nvar frenchSurveyStrings = {\n pagePrevText: \"Précédent\",\n pageNextText: \"Suivant\",\n completeText: \"Terminer\",\n startSurveyText: \"Commencer\",\n otherItemText: \"Autre (préciser)\",\n noneItemText: \"Aucun\",\n selectAllItemText: \"Tout sélectionner\",\n progressText: \"Page {0} sur {1}\",\n emptySurvey: \"Il n'y a ni page visible ni question visible dans ce questionnaire\",\n completingSurvey: \"Merci d'avoir répondu au questionnaire !\",\n completingSurveyBefore: \"Nos données indiquent que vous avez déjà rempli ce questionnaire.\",\n loadingSurvey: \"Le questionnaire est en cours de chargement...\",\n optionsCaption: \"Choisissez...\",\n value: \"valeur\",\n requiredError: \"La réponse à cette question est obligatoire.\",\n requiredErrorInPanel: \"Merci de répondre au moins à une question.\",\n requiredInAllRowsError: \"Toutes les lignes sont obligatoires\",\n numericError: \"La réponse doit être un nombre.\",\n textMinLength: \"Merci de saisir au moins {0} caractères.\",\n textMaxLength: \"Merci de saisir moins de {0} caractères.\",\n textMinMaxLength: \"Merci de saisir entre {0} et {1} caractères.\",\n minRowCountError: \"Merci de compléter au moins {0} lignes.\",\n minSelectError: \"Merci de sélectionner au minimum {0} réponses.\",\n maxSelectError: \"Merci de sélectionner au maximum {0} réponses.\",\n numericMinMax: \"Votre réponse '{0}' doit être supérieure ou égale à {1} et inférieure ou égale à {2}\",\n numericMin: \"Votre réponse '{0}' doit être supérieure ou égale à {1}\",\n numericMax: \"Votre réponse '{0}' doit être inférieure ou égale à {1}\",\n invalidEmail: \"Merci d'entrer une adresse mail valide.\",\n invalidExpression: \"L'expression: {0} doit retourner 'true'.\",\n urlRequestError: \"La requête a renvoyé une erreur '{0}'. {1}\",\n urlGetChoicesError: \"La requête a renvoyé des données vides ou la propriété 'path' est incorrecte\",\n exceedMaxSize: \"La taille du fichier ne doit pas excéder {0}.\",\n otherRequiredError: \"Merci de préciser le champ 'Autre'.\",\n uploadingFile: \"Votre fichier est en cours de chargement. Merci d'attendre quelques secondes et de réessayer.\",\n loadingFile: \"Chargement...\",\n chooseFile: \"Ajouter des fichiers...\",\n confirmDelete: \"Voulez-vous supprimer cet enregistrement ?\",\n keyDuplicationError: \"Cette valeur doit être unique.\",\n addColumn: \"Ajouter une colonne\",\n addRow: \"Ajouter une ligne\",\n removeRow: \"Supprimer\",\n addPanel: \"Ajouter\",\n removePanel: \"Supprimer\",\n choices_Item: \"item\",\n matrix_column: \"Colonne\",\n matrix_row: \"Ligne\",\n savingData: \"Les résultats sont en cours de sauvegarde sur le serveur...\",\n savingDataError: \"Une erreur est survenue et a empêché la sauvegarde des résultats.\",\n savingDataSuccess: \"Les résultats ont bien été enregistrés !\",\n saveAgainButton: \"Réessayer\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Vous avez passé {0} sur cette page et {1} au total.\",\n timerSpentPage: \"Vous avez passé {0} sur cette page.\",\n timerSpentSurvey: \"Vous avez passé {0} au total.\",\n timerLimitAll: \"Vous avez passé {0} sur {1} sur cette page et {2} sur {3} au total.\",\n timerLimitPage: \"Vous avez passé {0} sur {1} sur cette page.\",\n timerLimitSurvey: \"Vous avez passé {0} sur {1} au total.\",\n cleanCaption: \"Nettoyer\",\n clearCaption: \"Vider\",\n removeFileCaption: \"Enlever ce fichier\",\n booleanCheckedLabel: \"Oui\",\n booleanUncheckedLabel: \"Non\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"fr\"] = frenchSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"fr\"] = \"français\";\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export georgianSurveyStrings */\n\nvar georgianSurveyStrings = {\n pagePrevText: \"უკან\",\n pageNextText: \"შემდეგ\",\n completeText: \"დასრულება\",\n progressText: \"გვერდი {0} / {1}\",\n emptySurvey: \"არცერთი კითხვა არ არის.\",\n completingSurvey: \"გმადლობთ კითხვარის შევსებისთვის!\",\n loadingSurvey: \"ჩატვირთვა სერვერიდან...\",\n otherItemText: \"სხვა (გთხოვთ მიუთითეთ)\",\n optionsCaption: \"არჩევა...\",\n requiredError: \"გთხოვთ უპასუხეთ კითხვას.\",\n numericError: \"პასუხი უნდა იყოს რიცხვი.\",\n textMinLength: \"გთხოვთ შეიყვანეთ არანაკლებ {0} სიმბოლო.\",\n minSelectError: \"გთხოვთ აირჩიეთ არანაკლებ {0} ვარიანტი.\",\n maxSelectError: \"გთხოვთ აირჩიეთ არაუმეტეს {0} ვარიანტი.\",\n numericMinMax: \"'{0}' უნდა იყოს მეტი ან ტოლი, ვიდრე {1}, და ნაკლები ან ტოლი ვიდრე {2}\",\n numericMin: \"'{0}' უნდა იყოს მეტი ან ტოლი ვიდრე {1}\",\n numericMax: \"'{0}' უნდა იყოს ნაკლები ან ტოლი ვიდრე {1}\",\n invalidEmail: \"გთხოვთ შეიყვანოთ ელ. ფოსტის რეალური მისამართი.\",\n otherRequiredEror: \"გთხოვთ შეავსეთ ველი 'სხვა'\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"ka\"] = georgianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"ka\"] = \"ქართული\";\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export germanSurveyStrings */\n\nvar germanSurveyStrings = {\n pagePrevText: \"Zurück\",\n pageNextText: \"Weiter\",\n completeText: \"Abschließen\",\n startSurveyText: \"Start\",\n otherItemText: \"Sonstiges (Beschreibung)\",\n noneItemText: \"Nichts\",\n selectAllItemText: \"Alle auswählen\",\n progressText: \"Seite {0} von {1}\",\n emptySurvey: \"Es ist keine Frage vorhanden.\",\n completingSurvey: \"Danke, dass Sie die Umfrage abgeschlossen haben!\",\n completingSurveyBefore: \"Wir haben festgestellt, dass Sie diese Umfrage bereits abgeschlossen haben.\",\n loadingSurvey: \"Fragebogen wird geladen...\",\n optionsCaption: \"Bitte auswählen...\",\n value: \"Wert\",\n requiredError: \"Bitte beantworten Sie diese Frage.\",\n requiredErrorInPanel: \"Bitte beantworten Sie mindestens eine Frage.\",\n requiredInAllRowsError: \"Bitte beantworten Sie alle Fragen.\",\n numericError: \"Der Wert muss eine Zahl sein.\",\n textMinLength: \"Bitte geben sie mindestens {0} Zeichen ein.\",\n textMaxLength: \"Bitte geben Sie nicht mehr als {0} Zeichen ein.\",\n textMinMaxLength: \"Bitte geben sie mindestens {0} und maximal {1} Zeichen ein.\",\n minRowCountError: \"Bitte machen Sie in mindestens {0} Zeilen eine Eingabe.\",\n minSelectError: \"Bitte wählen Sie mindestens {0} Variante(n) aus.\",\n maxSelectError: \"Bitte wählen Sie nicht mehr als {0} Variante(n) aus.\",\n numericMinMax: \"'{0}' muss größer oder gleich {1} und kleiner oder gleich {2} sein\",\n numericMin: \"'{0}' muss größer oder gleich {1} sein\",\n numericMax: \"'{0}' muss kleiner oder gleich {1} sein\",\n invalidEmail: \"Bitte geben Sie eine gültige E-Mail-Adresse ein.\",\n invalidExpression: \"Der Ausdruck: {0} muss den Wert 'wahr'(true) zurückliefern.\",\n urlRequestError: \"Die Anfrage lieferte den folgenden Fehler zurück '{0}'. {1}\",\n urlGetChoicesError: \"Die Anfrage lieferte leere Daten zurück oder der Wert der Variable 'path' ist falsch\",\n exceedMaxSize: \"Die Dateigröße darf {0} nicht überschreiten.\",\n otherRequiredError: \"Bitte geben Sie den anderen Wert ein.\",\n uploadingFile: \"Ihre Datei wird hochgeladen. Bitte warten Sie ein paar Sekunden und versuchen Sie es dann erneut.\",\n loadingFile: \"Wird geladen...\",\n chooseFile: \"Datei(en) auswählen...\",\n confirmDelete: \"Wollen Sie den Eintrag löschen?\",\n keyDuplicationError: \"Dieser Wert muss eindeutig sein.\",\n addColumn: \"Spalte hinzufügen\",\n addRow: \"Zeile hinzufügen\",\n removeRow: \"Entfernen\",\n addPanel: \"Neu hinzufügen\",\n removePanel: \"Entfernen\",\n choices_Item: \"Element\",\n matrix_column: \"Spalte\",\n matrix_row: \"Zeile\",\n savingData: \"Die Ergebnisse werden auf dem Server gespeichert...\",\n savingDataError: \"Es ist ein Fehler aufgetreten. Die Ergebnisse konnten nicht gespeichert werden.\",\n savingDataSuccess: \"Die Ergebnisse wurden gespeichert!\",\n saveAgainButton: \"Bitte versuchen Sie es erneut\",\n timerMin: \"Min.\",\n timerSec: \"Sek.\",\n timerSpentAll: \"Sie waren {0} auf dieser Seite und insgesamt {1}.\",\n timerSpentPage: \"Sie waren {0} auf dieser Seite.\",\n timerSpentSurvey: \"Sie haben insgesamt {0} benötigt.\",\n timerLimitAll: \"Sie waren {0} von {1} auf dieser Seite und insgesamt {2} von {3}.\",\n timerLimitPage: \"Sie waren {0} von {1} auf dieser Seite.\",\n timerLimitSurvey: \"Sie haben insgesamt {0} von {1} benötigt.\",\n cleanCaption: \"Sauber\",\n clearCaption: \"Leeren\",\n removeFileCaption: \"Datei löschen\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"de\"] = germanSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"de\"] = \"deutsch\";\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export greekSurveyStrings */\n//Created by https://github.com/agelospanagiotakis\n\nvar greekSurveyStrings = {\n pagePrevText: \"Προηγούμενο\",\n pageNextText: \"Επόμενο\",\n completeText: \"Ολοκλήρωση\",\n otherItemText: \"Άλλο (παρακαλώ διευκρινίστε)\",\n progressText: \"Σελίδα {0} από {1}\",\n emptySurvey: \"Δεν υπάρχει καμία ορατή σελίδα ή ορατή ερώτηση σε αυτό το ερωτηματολόγιο.\",\n completingSurvey: \"Ευχαριστούμε για την συμπλήρωση αυτού του ερωτηματολογίου!\",\n loadingSurvey: \"Το ερωτηματολόγιο φορτώνεται απο το διακομιστή...\",\n optionsCaption: \"Επιλέξτε...\",\n requiredError: \"Παρακαλώ απαντήστε στην ερώτηση.\",\n requiredInAllRowsError: \"Παρακαλώ απαντήστε στις ερωτήσεις σε όλες τις γραμμές.\",\n numericError: \"Η τιμή πρέπει να είναι αριθμητική.\",\n textMinLength: \"Παρακαλώ συμπληρώστε τουλάχιστον {0} σύμβολα.\",\n minRowCountError: \"Παρακαλώ συμπληρώστε τουλάχιστον {0} γραμμές.\",\n minSelectError: \"Παρακαλώ επιλέξτε τουλάχιστον {0} παραλλαγές.\",\n maxSelectError: \"Παρακαλώ επιλέξτε όχι παραπάνω απο {0} παραλλαγές.\",\n numericMinMax: \"Το '{0}' θα πρέπει να είναι ίσο ή μεγαλύτερο απο το {1} και ίσο ή μικρότερο απο το {2}\",\n numericMin: \"Το '{0}' πρέπει να είναι μεγαλύτερο ή ισο με το {1}\",\n numericMax: \"Το '{0}' πρέπει να είναι μικρότερο ή ίσο απο το {1}\",\n invalidEmail: \"Παρακαλώ δώστε μια αποδεκτή διεύθυνση e-mail.\",\n urlRequestError: \"Η αίτηση επέστρεψε σφάλμα '{0}'. {1}\",\n urlGetChoicesError: \"Η αίτηση επέστρεψε κενά δεδομένα ή η ιδιότητα 'μονοπάτι/path' είναι εσφαλμένη\",\n exceedMaxSize: \"Το μέγεθος δεν μπορεί να υπερβαίνει τα {0}.\",\n otherRequiredError: \"Παρακαλώ συμπληρώστε την τιμή για το πεδίο 'άλλο'.\",\n uploadingFile: \"Το αρχείο σας ανεβαίνει. Παρακαλώ περιμένετε καποια δευτερόλεπτα και δοκιμάστε ξανά.\",\n addRow: \"Προσθήκη γραμμής\",\n removeRow: \"Αφαίρεση\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"gr\"] = greekSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"gr\"] = \"ελληνικά\";\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export hebrewSurveyStrings */\n\nvar hebrewSurveyStrings = {\n pagePrevText: \"אחורה\",\n pageNextText: \"קדימה\",\n completeText: \"סיום\",\n progressText: \"דף {1} מתוך {0}\",\n emptySurvey: \"אין שאלות\",\n completingSurvey: \"תודה על מילוי השאלון!\",\n loadingSurvey: \"טעינה מהשרת...\",\n otherItemText: \"אחר (נא לתאר)\",\n optionsCaption: \"בחר...\",\n requiredError: \"אנא השב על השאלה\",\n numericError: \"התשובה צריכה להיות מספר.\",\n textMinLength: \"הזן לפחות {0} תווים.\",\n minSelectError: \"בחר לפחות {0} אפשרויות.\",\n maxSelectError: \"בחר עד {0} אפשרויות.\",\n numericMinMax: \"'{0}' חייב להיות שווה או גדול מ {1}, ושווה ל- {2} או פחות מ- {}}\",\n numericMin: \"'{0}' חייב להיות שווה או גדול מ {1}\",\n numericMax: \"'{0}' חייב להיות שווה או קטן מ {1}\",\n invalidEmail: 'הזן כתובת דוא\"ל חוקית.',\n otherRequiredError: 'נא להזין נתונים בשדה \"אחר\"'\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"he\"] = hebrewSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"he\"] = \"עברית\";\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export hungarianSurveyStrings */\n\nvar hungarianSurveyStrings = {\n pagePrevText: \"Vissza\",\n pageNextText: \"Tovább\",\n completeText: \"Kész\",\n otherItemText: \"Egyéb (adja meg)\",\n progressText: \"{0}./{1} oldal\",\n emptySurvey: \"There is no visible page or question in the survey.\",\n completingSurvey: \"Köszönjük, hogy kitöltötte felmérésünket!\",\n completingSurveyBefore: \"Már kitöltötte a felmérést.\",\n loadingSurvey: \"Felmérés betöltése...\",\n optionsCaption: \"Válasszon...\",\n value: \"érték\",\n requiredError: \"Kérjük, válaszolja meg ezt a kérdést!\",\n requiredInAllRowsError: \"Kérjük adjon választ minden sorban!\",\n numericError: \"Az érték szám kell, hogy legyen!\",\n textMinLength: \"Adjon meg legalább {0} karaktert!\",\n textMaxLength: \"Legfeljebb {0} karaktert adjon meg!\",\n textMinMaxLength: \"Adjon meg legalább {0}, de legfeljebb {1} karaktert!\",\n minRowCountError: \"Töltsön ki minimum {0} sort!\",\n minSelectError: \"Válasszon ki legalább {0} lehetőséget!\",\n maxSelectError: \"Ne válasszon többet, mint {0} lehetőség!\",\n numericMinMax: \"'{0}' legyen nagyobb, vagy egyenlő, mint {1} és kisebb, vagy egyenlő, mint {2}!\",\n numericMin: \"'{0}' legyen legalább {1}!\",\n numericMax: \"The '{0}' ne legyen nagyobb, mint {1}!\",\n invalidEmail: \"Adjon meg egy valós email címet!\",\n urlRequestError: \"A lekérdezés hibával tért vissza: '{0}'. {1}\",\n urlGetChoicesError: \"A lekérdezés üres adattal tért vissza, vagy a 'path' paraméter helytelen.\",\n exceedMaxSize: \"A méret nem lehet nagyobb, mint {0}.\",\n otherRequiredError: \"Adja meg az egyéb értéket!\",\n uploadingFile: \"Feltöltés folyamatban. Várjon pár másodpercet, majd próbálja újra.\",\n confirmDelete: \"Törli ezt a rekordot?\",\n keyDuplicationError: \"Az értéknek egyedinek kell lennie.\",\n addRow: \"Sor hozzáadása\",\n removeRow: \"Eltávolítás\",\n addPanel: \"Új hozzáadása\",\n removePanel: \"Eltávolítás\",\n choices_Item: \"elem\",\n matrix_column: \"Oszlop\",\n matrix_row: \"Sor\",\n savingData: \"Eredmény mentése a szerverre...\",\n savingDataError: \"Egy hiba folytán nem tudtuk elmenteni az eredményt.\",\n savingDataSuccess: \"Eredmény sikeresen mentve!\",\n saveAgainButton: \"Próbálja újra\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"hu\"] = hungarianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"hu\"] = \"magyar\";\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export icelandicSurveyStrings */\n\nvar icelandicSurveyStrings = {\n pagePrevText: \"Tilbaka\",\n pageNextText: \"Áfram\",\n completeText: \"Lokið\",\n otherItemText: \"Hinn (skýring)\",\n progressText: \"Síða {0} of {1}\",\n emptySurvey: \"Það er enginn síða eða spurningar í þessari könnun.\",\n completingSurvey: \"Takk fyrir að fyllja út þessa könnun!\",\n loadingSurvey: \"Könnunin er að hlaða...\",\n optionsCaption: \"Veldu...\",\n requiredError: \"Vinsamlegast svarið spurningunni.\",\n requiredInAllRowsError: \"Vinsamlegast svarið spurningum í öllum röðum.\",\n numericError: \"Þetta gildi verður að vera tala.\",\n textMinLength: \"Það ætti að vera minnst {0} tákn.\",\n textMaxLength: \"Það ætti að vera mest {0} tákn.\",\n textMinMaxLength: \"Það ætti að vera fleiri en {0} og færri en {1} tákn.\",\n minRowCountError: \"Vinsamlegast fyllið úr að minnsta kosti {0} raðir.\",\n minSelectError: \"Vinsamlegast veljið að minnsta kosti {0} möguleika.\",\n maxSelectError: \"Vinsamlegast veljið ekki fleiri en {0} möguleika.\",\n numericMinMax: \"'{0}' ætti að vera meira en eða jafnt og {1} minna en eða jafnt og {2}\",\n numericMin: \"{0}' ætti að vera meira en eða jafnt og {1}\",\n numericMax: \"'{0}' ætti að vera minna en eða jafnt og {1}\",\n invalidEmail: \"Vinsamlegast sláið inn gilt netfang.\",\n urlRequestError: \"Beiðninn skilaði eftirfaranadi villu '{0}'. {1}\",\n urlGetChoicesError: \"Beiðninng skilaði engum gögnum eða slóðinn var röng\",\n exceedMaxSize: \"Skráinn skal ekki vera stærri en {0}.\",\n otherRequiredError: \"Vinamlegast fyllið út hitt gildið.\",\n uploadingFile: \"Skráinn þín var send. Vinsamlegast bíðið í nokkrar sekúndur og reynið aftur.\",\n addRow: \"Bæta við röð\",\n removeRow: \"Fjarlægja\",\n choices_firstItem: \"fyrsti hlutur\",\n choices_secondItem: \"annar hlutur\",\n choices_thirdItem: \"þriðji hlutur\",\n matrix_column: \"Dálkur\",\n matrix_row: \"Röð\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"is\"] = icelandicSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"is\"] = \"íslenska\";\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export indonesianStrings */\n\nvar indonesianStrings = {\n pagePrevText: \"Sebelumnya\",\n pageNextText: \"Selanjutnya\",\n completeText: \"Selesai\",\n startSurveyText: \"Mulai\",\n otherItemText: \"Lainnya (jelaskan)\",\n noneItemText: \"Tidak Ada\",\n selectAllItemText: \"Pilih Semua\",\n progressText: \"Halaman {0} dari {1}\",\n emptySurvey: \"Tidak ada halaman atau pertanyaan dalam survei.\",\n completingSurvey: \"Terima kasih telah menyelesaikan survei!\",\n completingSurveyBefore: \"Catatan kami menunjukkan bahwa Anda telah menyelesaikan survei ini.\",\n loadingSurvey: \"Memuat survei...\",\n optionsCaption: \"Pilih...\",\n value: \"nilai\",\n requiredError: \"Silahkan jawab pertanyaan berikut.\",\n requiredErrorInPanel: \"Silahkan jawab setidaknya satu petanyaan.\",\n requiredInAllRowsError: \"Silahkan jawab pertanyaan pada semua baris.\",\n numericError: \"Nilai harus berupa angka.\",\n textMinLength: \"Silahkan masukkan setidaknya {0} karakter.\",\n textMaxLength: \"Silahkan masukkan kurang {0} karakter.\",\n textMinMaxLength: \"PSilahkan masukkan lebih dari {0} dan kurang dari {1} karakter.\",\n minRowCountError: \"Silahkan isi setidaknya {0} baris.\",\n minSelectError: \"Silahkan pilih setidaknya {0} varian.\",\n maxSelectError: \"Silahkan pilih tidak lebih dari {0} varian.\",\n numericMinMax: \"'{0}' harus sama dengan atau lebih dari {1} dan harus sama dengan atau kurang dari {2}\",\n numericMin: \"'{0}' harus sama dengan atau lebih dari {1}\",\n numericMax: \"'{0}' harus sama dengan atau kurang dari {1}\",\n invalidEmail: \"Silahkan masukkan e-mail yang benar.\",\n invalidExpression: \"Ekspresi: {0} harus mengembalikan 'benar'.\",\n urlRequestError: \"Permintaan mengembalikan kesalahan '{0}'. {1}\",\n urlGetChoicesError: \"Permintaan mengembalikan data kosong atau properti 'path' salah.\",\n exceedMaxSize: \"Ukuran berkas tidak boleh melebihi {0}.\",\n otherRequiredError: \"Silahkan masukkan nilai lainnnya.\",\n uploadingFile: \"Berkas Anda sedang diunggah. Silahkan tunggu beberapa saat atau coba lagi.\",\n loadingFile: \"Memuat...\",\n chooseFile: \"Pilih berkas...\",\n confirmDelete: \"Apakah Anda ingin menghapus catatan?\",\n keyDuplicationError: \"Nilai harus unik.\",\n addColumn: \"Tambah kolom\",\n addRow: \"Tambah baris\",\n removeRow: \"Hapus\",\n addPanel: \"Tambah baru\",\n removePanel: \"Hapus\",\n choices_Item: \"item\",\n matrix_column: \"Kolom\",\n matrix_row: \"Baris\",\n savingData: \"Hasil sedang disimpan pada server...\",\n savingDataError: \"Kesalahan terjadi dan kami tidak dapat menyimpan hasil.\",\n savingDataSuccess: \"Hasil telah sukses disimpan!\",\n saveAgainButton: \"Coba lagi\",\n timerMin: \"menit\",\n timerSec: \"detik\",\n timerSpentAll: \"Anda telah menghabiskan {0} pada halaman ini dan {1} secara keseluruhan.\",\n timerSpentPage: \"YAnda telah menghabiskan {0} pada halaman ini.\",\n timerSpentSurvey: \"Anda telah menghabiskan {0} secara keseluruhan.\",\n timerLimitAll: \"Anda telah menghabiskan {0} dari {1} pada halaman ini dan {2} dari {3} secara keseluruhan.\",\n timerLimitPage: \"Anda telah menghabiskan {0} dari {1} pada halaman ini.\",\n timerLimitSurvey: \"Anda telah menghabiskan {0} dari {1} secara keseluruhan.\",\n cleanCaption: \"Bersihkan\",\n clearCaption: \"Bersihkan\",\n removeFileCaption: \"Hapus berkas ini\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"id\"] = indonesianStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"id\"] = \"Bahasa Indonesia\";\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export italianSurveyStrings */\n\nvar italianSurveyStrings = {\n pagePrevText: \"Precedente\",\n pageNextText: \"Successivo\",\n completeText: \"Salva\",\n startSurveyText: \"Inizio\",\n otherItemText: \"Altro (descrivi)\",\n progressText: \"Pagina {0} di {1}\",\n emptySurvey: \"Non ci sono pagine o domande visibili nel questionario.\",\n completingSurvey: \"Grazie per aver completato il questionario!\",\n completingSurveyBefore: \"I nostri records mostrano che hai già completato questo questionario.\",\n loadingSurvey: \"Caricamento del questionario in corso...\",\n optionsCaption: \"Scegli...\",\n value: \"valore\",\n requiredError: \"Campo obbligatorio\",\n requiredErrorInPanel: \"Per Favore, rispondi ad almeno una domanda.\",\n requiredInAllRowsError: \"Completare tutte le righe\",\n numericError: \"Il valore deve essere numerico\",\n textMinLength: \"Inserire almeno {0} caratteri\",\n textMaxLength: \"Lunghezza massima consentita {0} caratteri\",\n textMinMaxLength: \"Inserire una stringa con minimo {0} e massimo {1} caratteri\",\n minRowCountError: \"Completare almeno {0} righe.\",\n minSelectError: \"Selezionare almeno {0} varianti.\",\n maxSelectError: \"Selezionare massimo {0} varianti.\",\n numericMinMax: \"'{0}' deve essere uguale o superiore a {1} e uguale o inferiore a {2}\",\n numericMin: \"'{0}' deve essere uguale o superiore a {1}\",\n numericMax: \"'{0}' deve essere uguale o inferiore a {1}\",\n invalidEmail: \"Inserire indirizzo mail valido\",\n urlRequestError: \"La richiesta ha risposto con un errore '{0}'. {1}\",\n urlGetChoicesError: \"La richiesta ha risposto null oppure il percorso non è corretto\",\n exceedMaxSize: \"Il file non può eccedere {0}\",\n otherRequiredError: \"Inserire il valore 'altro'\",\n uploadingFile: \"File in caricamento. Attendi alcuni secondi e riprova\",\n confirmDelete: \"Sei sicuro di voler elminare il record?\",\n keyDuplicationError: \"Questo valore deve essere univoco.\",\n addRow: \"Aggiungi riga\",\n removeRow: \"Rimuovi riga\",\n addPanel: \"Aggiungi riga\",\n removePanel: \"Elimina\",\n choices_Item: \"Elemento\",\n matrix_column: \"Colonna\",\n matrix_row: \"Riga\",\n savingData: \"Salvataggio dati sul server...\",\n savingDataError: \"Si è verificato un errore e non è stato possibile salvare i risultati.\",\n savingDataSuccess: \"I risultati sono stati salvati con successo!\",\n saveAgainButton: \"Riprova\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Hai impiegato {0} su questa pagina e {1} in totale.\",\n timerSpentPage: \"Hai impiegato {0} su questa pagina.\",\n timerSpentSurvey: \"Hai impiegato {0} in totale.\",\n timerLimitAll: \"Hai impiegato {0} di {1} su questa pagina e {2} di {3} in totale.\",\n timerLimitPage: \"Hai impiegato {0} di {1} su questa pagina.\",\n timerLimitSurvey: \"Hai impiegato {0} di {1} in totale.\",\n cleanCaption: \"Pulisci\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"it\"] = italianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"it\"] = \"italiano\";\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export japaneseSurveyStrings */\n// Uncomment this line on creating a translation file\n\nvar japaneseSurveyStrings = {\n pagePrevText: \"前の\",\n pageNextText: \"次へ\",\n completeText: \"完了\",\n startSurveyText: \"スタート\",\n otherItemText: \"その他(説明)\",\n noneItemText: \"なし\",\n selectAllItemText: \"すべて選択\",\n progressText: \"{0}/{1}頁\",\n emptySurvey: \"この調査に表示できるページや質問はありません\",\n completingSurvey: \"調査を完了してくれてありがとうございました\",\n loadingSurvey: \"調査をダウンロード中\",\n optionsCaption: \"選択\",\n requiredError: \"質問にお答え下さい\",\n numericError: \"数字でご記入下さい\",\n textMinLength: \"{0} 文字以上で入力して下さい\",\n minRowCountError: \"{0}行以上で入力して下さい\",\n minSelectError: \"{0}種類以上を選択して下さい\",\n numericMin: \"'{0}' は同等か{1}より大きくなければなりません\",\n numericMax: \"'{0}' は同等か{1}より小さくなければなりません\",\n invalidEmail: \"有効なメールアドレスをご記入下さい\",\n exceedMaxSize: \"ファイルのサイズは{0}を超えてはいけません\",\n uploadingFile: \"ファイルをアップロード中です。しばらくしてから再度お試し下さい\",\n loadingFile: \"読み込み中\",\n chooseFile: \"ファイルを選択\",\n cleanCaption: \"削除\",\n clearCaption: \"空白\",\n removeFileCaption: \"このファイルを削除\"\n};\n//Uncomment these two lines on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"ja\"] = japaneseSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"ja\"] = \"日本語\";\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export koreanStrings */\n\nvar koreanStrings = {\n pagePrevText: \"이전\",\n pageNextText: \"다음\",\n completeText: \"완료\",\n startSurveyText: \"시작\",\n otherItemText: \"기타(설명)\",\n progressText: \"페이지 {1} 중 {0}\",\n emptySurvey: \"설문지에 보여지는 페이지나 질문이 없습니다\",\n completingSurvey: \"설문 조사를 완료해 주셔서 감사합니다!\",\n completingSurveyBefore: \"기록에 따르면 이미 설문 조사를 마치셨습니다.\",\n loadingSurvey: \"설문조사가 로드중입니다...\",\n optionsCaption: \"선택하십시오...\",\n value: \"값\",\n requiredError: \"질문에 답하시오.\",\n requiredErrorInPanel: \"하나 이상의 질문에 답하십시오.\",\n requiredInAllRowsError: \"모든 행에 있는 질문에 답하십시오.\",\n numericError: \"값은 숫자여야 합니다.\",\n textMinLength: \"답변의 길이는 최소 {0}자여야 입니다.\",\n textMaxLength: \"답변의 길이는 {0}자를 초과 할 수 없습니다.\",\n textMinMaxLength: \"답변의 길이는 {0} - {1}자 사이여야 합니다.\",\n minRowCountError: \"최소 {0}개의 행을 채우십시오\",\n minSelectError: \"최소 {0}개의 변수를 선택하십시오.\",\n maxSelectError: \"최대 {0}개의 변수를 선택하십시오.\",\n numericMinMax: \"'{0}'은 {1}보다 크거나 같고 {2}보다 작거나 같아야합니다.\",\n numericMin: \"'{0}'은 {1}보다 크거나 같아야합니다.\",\n numericMax: \"'{0}'은 {1}보다 작거나 같아야합니다.\",\n invalidEmail: \"올바른 이메일 주소를 입력하십시오.\",\n invalidExpression: \"표현식: {0}은 '참'이어야 합니다.\",\n urlRequestError: \"'{0}'으로 잘못된 요청입니다. {1}\",\n urlGetChoicesError: \"비어있는 데이터를 요청했거나 잘못된 속성의 경로입니다.\",\n exceedMaxSize: \"파일 크기가 {0}을 초과 할 수 없습니다.\",\n otherRequiredError: \"다른 질문을 작성하십시오.\",\n uploadingFile: \"파일 업로드 중입니다. 잠시 후 다시 시도하십시오.\",\n loadingFile: \"로드 중...\",\n chooseFile: \"파일 선택...\",\n confirmDelete: \"기록을 삭제하시겠습니까?\",\n keyDuplicationError: \" 이 값은 고유해야합니다.\",\n addColumn: \"열 추가\",\n addRow: \"행 추가\",\n removeRow: \"제거\",\n addPanel: \"새롭게 추가\",\n removePanel: \"제거\",\n choices_Item: \"항목\",\n matrix_column: \"열\",\n matrix_row: \"행\",\n savingData: \"결과가 서버에 저장 중입니다...\",\n savingDataError: \"오류가 발생하여 결과를 저장할 수 없습니다.\",\n savingDataSuccess: \"결과가 성공적으로 저장되었습니다!\",\n saveAgainButton: \"다시 시도하십시오\",\n timerMin: \"분\",\n timerSec: \"초\",\n timerSpentAll: \"현재 페이지에서 {0}을 소요해 총 {1}이 걸렸습니다.\",\n timerSpentPage: \"현재 페이지에서 {0]이 걸렸습니다\",\n timerSpentSurvey: \"총 {0}이 걸렸습니다.\",\n timerLimitAll: \"현재 페이지에서 {0}/{1}을 소요해 총 {2}/{3}이 걸렸습니다.\",\n timerLimitPage: \"현재 페이지에서 {0}/{1}이 걸렸습니다.\",\n timerLimitSurvey: \"총 {0}/{1}이 걸렸습니다.\",\n cleanCaption: \"닦기\",\n clearCaption: \"지우기\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"ko\"] = koreanStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"ko\"] = \"한국어\";\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export latvianSurveyStrings */\n\nvar latvianSurveyStrings = {\n pagePrevText: \"Atpakaļ\",\n pageNextText: \"Tālāk\",\n completeText: \"Pabeigt\",\n progressText: \"Lappuse {0} no {1}\",\n emptySurvey: \"Nav neviena jautājuma.\",\n completingSurvey: \"Pateicamies Jums par anketas aizpildīšanu!\",\n loadingSurvey: \"Ielāde no servera...\",\n otherItemText: \"Cits (lūdzu, aprakstiet!)\",\n optionsCaption: \"Izvēlēties...\",\n requiredError: \"Lūdzu, atbildiet uz jautājumu!\",\n numericError: \"Atbildei ir jābūt skaitlim.\",\n textMinLength: \"Lūdzu, ievadiet vismaz {0} simbolus.\",\n minSelectError: \"Lūdzu, izvēlieties vismaz {0} variantu.\",\n maxSelectError: \"Lūdzu, izvēlieties ne vairak par {0} variantiem.\",\n numericMinMax: \"'{0}' jābūt vienādam vai lielākam nekā {1}, un vienādam vai mazākam, nekā {2}\",\n numericMin: \"'{0}' jābūt vienādam vai lielākam {1}\",\n numericMax: \"'{0}' jābūt vienādam vai lielākam {1}\",\n invalidEmail: \"Lūdzu, ievadiet patiesu e-pasta adresi!\",\n otherRequiredError: 'Lūdzu, ievadiet datus laukā \"Cits\"'\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"lv\"] = latvianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"lv\"] = \"latviešu\";\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export lithuaniaSurveyStrings */\n//Uncomment this line on creating a translation file\n\nvar lithuaniaSurveyStrings = {\n pagePrevText: \"Atgal\",\n pageNextText: \"Toliau\",\n completeText: \"Baigti\",\n startSurveyText: \"Pradėti\",\n otherItemText: \"Kita (įvesti)\",\n noneItemText: \"Nėra\",\n selectAllItemText: \"Pasirinkti visus\",\n progressText: \"Puslapis {0} iš {1}\",\n emptySurvey: \"Apklausoje nėra matomo puslapio ar klausimo.\",\n completingSurvey: \"Dėkojame už dalyvavimą apklausoje!\",\n completingSurveyBefore: \"Mūsų įrašai rodo, kad jau atlikote šią apklausą.\",\n loadingSurvey: \"Prašome palaukti...\",\n optionsCaption: \"Pasirinkti...\",\n value: \"reikšmė\",\n requiredError: \"Būtina atsakyti į šį klausimą.\",\n requiredErrorInPanel: \"Būtina atsakyti bent į vieną klausimą.\",\n requiredInAllRowsError: \"Prašome atsakyti į klausimus visose eilutėse.\",\n numericError: \"Turi būti skaičiai.\",\n textMinLength: \"Prašome suvesti bent {0} simbolius.\",\n textMaxLength: \"Prašome suvesti mažiau nei {0} simbolių.\",\n textMinMaxLength: \"Prašome suvesti daugiau nei {0} ir mažiau nei {1} simbolių.\",\n minRowCountError: \"Prašome suvesti ne mažiau nei {0} eilučių.\",\n minSelectError: \"Prašome pasirinkti bent {0} variantų.\",\n maxSelectError: \"Pasirinkite ne daugiau kaip {0} variantus.\",\n numericMinMax: \"'{0}' turi būti lygus arba didesnis nei {1} ir lygus arba mažesnis nei {2}\",\n numericMin: \"'{0}' turėtų būti lygus arba didesnis nei {1}\",\n numericMax: \"'{0}' turėtų būti lygus ar mažesnis už {1}\",\n invalidEmail: \"Prašome įvesti galiojantį elektroninio pašto adresą.\",\n invalidExpression: \"Reikšmė: {0} turi grąžinti 'true'.\",\n urlRequestError: \"Užklausa grąžino klaidą'{0}'. {1}\",\n urlGetChoicesError: \"Užklausa grąžino tuščius duomenis arba 'path' savybė yra neteisinga\",\n exceedMaxSize: \"Failo dydis neturi viršyti {0}.\",\n otherRequiredError: \"Įveskite kitą reikšmę.\",\n uploadingFile: \"Jūsų failas yra keliamas. Palaukite keletą sekundžių ir bandykite dar kartą.\",\n loadingFile: \"Prašome palaukti...\",\n chooseFile: \"Pasirinkti failą(us)...\",\n confirmDelete: \"Ar norite ištrinti įrašą?\",\n keyDuplicationError: \"Ši reikšmė turėtų būti unikali.\",\n addColumn: \"Pridėti stulpelį\",\n addRow: \"Pridėti eilutę\",\n removeRow: \"Ištrinti\",\n addPanel: \"Pridėti naują\",\n removePanel: \"Ištrinti\",\n choices_Item: \"elementas\",\n matrix_column: \"Stulpelis\",\n matrix_row: \"Eilutė\",\n savingData: \"Rezultatai saugomi serveryje...\",\n savingDataError: \"Įvyko klaida ir mes negalėjome išsaugoti rezultatų.\",\n savingDataSuccess: \"Rezultatai buvo išsaugoti sėkmingai!\",\n saveAgainButton: \"Bandyti dar kartą\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Praleidote {0} šiame puslapyje ir {1} iš viso.\",\n timerSpentPage: \"Praleidote {0} šiame puslapyje.\",\n timerSpentSurvey: \"Praleidote {0} iš viso.\",\n timerLimitAll: \"Praleidote {0} iš {1} šiame puslapyje ir {2} iš {3} iš viso.\",\n timerLimitPage: \"Praleidote {0} iš {1} šiame puslapyje.\",\n timerLimitSurvey: \"Praleidote {0} iš {1} iš viso.\",\n cleanCaption: \"Išvalyti\",\n clearCaption: \"Valyti\",\n removeFileCaption: \"Ištrinti šį failą\"\n};\n//Uncomment these two lines on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"lt\"] = lithuaniaSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"lt\"] = \"Lietuvių\";\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export norwegianSurveyStrings */\n\nvar norwegianSurveyStrings = {\n pagePrevText: \"Forrige\",\n pageNextText: \"Neste\",\n completeText: \"Fullfør\",\n startSurveyText: \"Start\",\n otherItemText: \"Annet (beskriv)\",\n progressText: \"Side {0} av {1}\",\n emptySurvey: \"Det er ingen synlig side eller spørsmål i undersøkelsen.\",\n completingSurvey: \"Takk for at du fullførte undersøkelsen!\",\n completingSurveyBefore: \"Våre data viser at du allerede har gjennomført denne undersøkelsen.\",\n loadingSurvey: \"Undersøkelsen laster...\",\n optionsCaption: \"Velg...\",\n value: \"verdi\",\n requiredError: \"Vennligst svar på spørsmålet.\",\n requiredErrorInPanel: \"Vennligst svar på minst ett spørsmål.\",\n requiredInAllRowsError: \"Vennligst svar på spørsmål i alle rader.\",\n numericError: \"Verdien skal være numerisk.\",\n textMinLength: \"Vennligst skriv inn minst {0} tegn.\",\n textMaxLength: \"Vennligst skriv inn mindre enn {0} tegn.\",\n textMinMaxLength: \"Vennligst skriv inn mer enn {0} og mindre enn {1} tegn.\",\n minRowCountError: \"Vennligst fyll inn minst {0} rader.\",\n minSelectError: \"Vennligst velg minst {0} varianter.\",\n maxSelectError: \"Vennligst ikke velg mer enn {0} varianter.\",\n numericMinMax: \"'{0}' bør være lik eller mer enn {1} og lik eller mindre enn {2}\",\n numericMin: \"'{0}' bør være lik eller mer enn {1}\",\n numericMax: \"'{0}' bør være lik eller mindre enn {1}\",\n invalidEmail: \"Vennligst skriv inn en gyldig e-post adresse.\",\n urlRequestError: \"Forespørselen returnerte feilen '{0}'. {1}\",\n urlGetChoicesError: \"Forespørselen returnerte tomme data, eller 'sti' -egenskapen er feil\",\n exceedMaxSize: \"Filstørrelsen bør ikke overstige {0}.\",\n otherRequiredError: \"Vennligst skriv inn den andre verdien.\",\n uploadingFile: \"Filen din lastes opp. Vennligst vent noen sekunder og prøv igjen.\",\n confirmDelete: \"Ønsker du å slette posten?\",\n keyDuplicationError: \"Denne verdien skal være unik.\",\n addRow: \"Legg til rad\",\n removeRow: \"Fjern\",\n addPanel: \"Legg til ny\",\n removePanel: \"Fjerne\",\n choices_Item: \"element\",\n matrix_column: \"Kolonne\",\n matrix_row: \"Rad\",\n savingData: \"Resultatene lagres på serveren ...\",\n savingDataError: \"Det oppsto en feil, og vi kunne ikke lagre resultatene.\",\n savingDataSuccess: \"Resultatene ble lagret!\",\n saveAgainButton: \"Prøv igjen\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Du har tilbrakt {0} på denne siden og {1} totalt.\",\n timerSpentPage: \"Du har tilbrakt {0} på denne siden.\",\n timerSpentSurvey: \"Du har tilbrakt {0} totalt.\",\n timerLimitAll: \"Du har tilbrakt {0} av {1} på denne siden og totalt {2} av {3}.\",\n timerLimitPage: \"Du har tilbrakt {0} av {1} på denne siden.\",\n timerLimitSurvey: \"Du har tilbrakt {0} av {1} totalt.\",\n cleanCaption: \"Rens\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"no\"] = norwegianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"no\"] = \"norsk\";\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export persianSurveyStrings */\n\nvar persianSurveyStrings = {\n pagePrevText: \"قبلی\",\n pageNextText: \"بعدی\",\n completeText: \"تکمیل\",\n otherItemText: \"دیگر(توضیح)\",\n progressText: \"صفحه {0} از {1}\",\n emptySurvey: \"صفحه ای یا گزینه ای برای این پرسشنامه موجود نیست.\",\n completingSurvey: \"از شما بابت تکمیل این پرسشنامه متشکریم\",\n completingSurveyBefore: \"به نظر می رسد هم هم اکنون پرسشنامه را تکمیل کرده اید.\",\n loadingSurvey: \"درحال ایجاد پرسشنامه\",\n optionsCaption: \"انتخاب کنید...\",\n value: \"مقدار\",\n requiredError: \"لطفا به سوال پاسخ دهید\",\n requiredInAllRowsError: \"لطفا به تمام سطر های سوالات پاسخ دهید\",\n numericError: \"مقدار باید عددی باشد\",\n textMinLength: \"لطفا حداقل {0} حرف وارد کنید\",\n textMaxLength: \"لطفا کمتر از {0} حرف وارد کنید.\",\n textMinMaxLength: \"لطفا بیشتر از {0} حرف و کمتر از {1} حرف وارد کنید.\",\n minRowCountError: \"لطفا حداقل {0} سطر وارد کنید.\",\n minSelectError: \"حداقل {0} انتخاب کنید.\",\n maxSelectError: \"لطفا بیشتر از {0} انتخاب کنید.\",\n numericMinMax: \"'{0}' باید بین {1} و {2} باشد\",\n numericMin: \"'{0}' بزرگتر مساوی {1} باشد\",\n numericMax: \"'{0}' باید کوچکتر یا مساوی {1} باشد\",\n invalidEmail: \"لطفا ایمیل صحیح درج کنید\",\n urlRequestError: \"درخواست با خطا روبرو شد: '{0}'. {1}\",\n urlGetChoicesError: \"درخواست مسیری خالی بازگشت داده یا مسیر درست تنظیم نشده\",\n exceedMaxSize: \"بیشترین حجم مجاز فایل: {0}\",\n otherRequiredError: \"مقدار 'دیگر' را وارد کنید\",\n uploadingFile: \"فایل در حال آیلود می باشد. لطفا صبر کنید.\",\n confirmDelete: \"آیا مایل به حذف این ردیف هستید؟\",\n keyDuplicationError: \"این مقدار باید غیر تکراری باشد\",\n addRow: \"سطر جدید\",\n removeRow: \"حذف\",\n addPanel: \"جدید\",\n removePanel: \"حذف\",\n choices_Item: \"آیتم\",\n matrix_column: \"ستون\",\n matrix_row: \"سطر\",\n savingData: \"نتایج در حال ذخیره سازی در سرور می باشد\",\n savingDataError: \"خطایی در ذخیره سازی نتایج رخ داده است\",\n savingDataSuccess: \"نتایج با موفقیت ذخیره شد\",\n saveAgainButton: \"مجدد تلاش کنید\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"fa\"] = persianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"fa\"] = \"فارْسِى\";\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export polishSurveyStrings */\n\nvar polishSurveyStrings = {\n pagePrevText: \"Wstecz\",\n pageNextText: \"Dalej\",\n completeText: \"Gotowe\",\n otherItemText: \"Inna odpowiedź (wpisz)\",\n progressText: \"Strona {0} z {1}\",\n emptySurvey: \"Nie ma widocznych pytań.\",\n completingSurvey: \"Dziękujemy za wypełnienie ankiety!\",\n loadingSurvey: \"Trwa wczytywanie ankiety...\",\n optionsCaption: \"Wybierz...\",\n requiredError: \"Proszę odpowiedzieć na to pytanie.\",\n requiredInAllRowsError: \"Proszę odpowiedzieć na wszystkie pytania.\",\n numericError: \"W tym polu można wpisać tylko liczby.\",\n textMinLength: \"Proszę wpisać co najmniej {0} znaków.\",\n textMaxLength: \"Proszę wpisać mniej niż {0} znaków.\",\n textMinMaxLength: \"Proszę wpisać więcej niż {0} i mniej niż {1} znaków.\",\n minRowCountError: \"Proszę uzupełnić przynajmniej {0} wierszy.\",\n minSelectError: \"Proszę wybrać co najmniej {0} pozycji.\",\n maxSelectError: \"Proszę wybrać nie więcej niż {0} pozycji.\",\n numericMinMax: \"Odpowiedź '{0}' powinna być większa lub równa {1} oraz mniejsza lub równa {2}\",\n numericMin: \"Odpowiedź '{0}' powinna być większa lub równa {1}\",\n numericMax: \"Odpowiedź '{0}' powinna być mniejsza lub równa {1}\",\n invalidEmail: \"Proszę podać prawidłowy adres email.\",\n urlRequestError: \"Żądanie zwróciło błąd '{0}'. {1}\",\n urlGetChoicesError: \"Żądanie nie zwróciło danych albo ścieżka jest nieprawidłowa\",\n exceedMaxSize: \"Rozmiar przesłanego pliku nie może przekraczać {0}.\",\n otherRequiredError: \"Proszę podać inną odpowiedź.\",\n uploadingFile: \"Trwa przenoszenie Twojego pliku, proszę spróbować ponownie za kilka sekund.\",\n addRow: \"Dodaj wiersz\",\n removeRow: \"Usuń\",\n addPanel: \"Dodaj panel\",\n removePanel: \"Usuń\",\n choices_Item: \"element\",\n matrix_column: \"Kolumna\",\n matrix_row: \"Wiersz\",\n savingData: \"Zapisuję wyniki ankiety na serwerze...\",\n savingDataError: \"Wystąpił błąd i wyniki nie mogły zostać zapisane.\",\n savingDataSuccess: \"Wyniki zostały poprawnie zapisane!\",\n saveAgainButton: \"Spróbuj ponownie\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Spędziłeś {0} na tej stronie a w sumie {1}.\",\n timerSpentPage: \"Spędziłeś {0} na tej stronie.\",\n timerSpentSurvey: \"Spędziłeś w smumie {0}.\",\n timerLimitAll: \"Spędziłeś {0} z {1} na tej stronie a w sumie {2} z {3}.\",\n timerLimitPage: \"Spędziłeś {0} z {1} na tej stronie\",\n timerLimitSurvey: \"Spędziłeś {0} z {1}.\",\n cleanCaption: \"Wyczyść\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"pl\"] = polishSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"pl\"] = \"polski\";\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export portugueseSurveyStrings */\n\nvar portugueseSurveyStrings = {\n pagePrevText: \"Anterior\",\n pageNextText: \"Próximo\",\n completeText: \"Finalizar\",\n startSurveyText: \"Começar\",\n otherItemText: \"Outros (descrever)\",\n noneItemText: \"Nenhum\",\n selectAllItemText: \"Selecionar Todos\",\n progressText: \"Página {0} de {1}\",\n emptySurvey: \"Não há página visível ou pergunta na pesquisa.\",\n completingSurvey: \"Obrigado por finalizar a pesquisa!\",\n completingSurveyBefore: \"Nossos registros mostram que você já finalizou a pesquisa.\",\n loadingSurvey: \"A pesquisa está carregando...\",\n optionsCaption: \"Selecione...\",\n value: \"valor\",\n requiredError: \"Por favor, responda a pergunta.\",\n requiredErrorInPanel: \"Por favor, responda pelo menos uma pergunta.\",\n requiredInAllRowsError: \"Por favor, responda as perguntas em todas as linhas.\",\n numericError: \"O valor deve ser numérico.\",\n textMinLength: \"Por favor, insira pelo menos {0} caracteres.\",\n textMaxLength: \"Por favor, insira menos de {0} caracteres.\",\n textMinMaxLength: \"Por favor, insira mais de {0} e menos de {1} caracteres.\",\n minRowCountError: \"Preencha pelo menos {0} linhas.\",\n minSelectError: \"Selecione pelo menos {0} opções.\",\n maxSelectError: \"Por favor, selecione não mais do que {0} opções.\",\n numericMinMax: \"O '{0}' deve ser igual ou superior a {1} e igual ou menor que {2}\",\n numericMin: \"O '{0}' deve ser igual ou superior a {1}\",\n numericMax: \"O '{0}' deve ser igual ou inferior a {1}\",\n invalidEmail: \"Por favor, informe um e-mail válido.\",\n invalidExpression: \"A expressão: {0} deve retornar 'verdadeiro'.\",\n urlRequestError: \"A requisição retornou o erro '{0}'. {1}\",\n urlGetChoicesError: \"A requisição não retornou dados ou o 'caminho' da requisição não está correto\",\n exceedMaxSize: \"O tamanho do arquivo não deve exceder {0}.\",\n otherRequiredError: \"Por favor, informe o outro valor.\",\n uploadingFile: \"Seu arquivo está sendo carregado. Por favor, aguarde alguns segundos e tente novamente.\",\n loadingFile: \"Carregando...\",\n chooseFile: \"Selecione o(s) arquivo(s)...\",\n confirmDelete: \"Tem certeza que deseja deletar?\",\n keyDuplicationError: \"Esse valor deve ser único.\",\n addColumn: \"Adicionar coluna\",\n addRow: \"Adicionar linha\",\n removeRow: \"Remover linha\",\n addPanel: \"Adicionar novo\",\n removePanel: \"Remover\",\n choices_Item: \"item\",\n matrix_column: \"Coluna\",\n matrix_row: \"Linha\",\n savingData: \"Os resultados esto sendo salvos no servidor...\",\n savingDataError: \"Ocorreu um erro e não foi possível salvar os resultados.\",\n savingDataSuccess: \"Os resultados foram salvos com sucesso!\",\n saveAgainButton: \"Tente novamente\",\n timerMin: \"min\",\n timerSec: \"seg\",\n timerSpentAll: \"Você gastou {0} nesta página e {1} no total.\",\n timerSpentPage: \"Você gastou {0} nesta página.\",\n timerSpentSurvey: \"Você gastou {0} no total.\",\n timerLimitAll: \"Você gastou {0} de {1} nesta página e {2} de {3} no total.\",\n timerLimitPage: \"Você gastou {0} de {1} nesta página.\",\n timerLimitSurvey: \"Você gastou {0} de {1} no total.\",\n cleanCaption: \"Limpar\",\n clearCaption: \"Limpar\",\n removeFileCaption: \"Remover este arquivo\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"pt\"] = portugueseSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"pt\"] = \"português\";\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export romanianSurveyStrings */\n\nvar romanianSurveyStrings = {\n pagePrevText: \"Precedent\",\n pageNextText: \"Următor\",\n completeText: \"Finalizare\",\n otherItemText: \"Altul(precizaţi)\",\n progressText: \"Pagina {0} din {1}\",\n emptySurvey: \"Nu sunt întrebări pentru acest chestionar\",\n completingSurvey: \"Vă mulţumim pentru timpul acordat!\",\n loadingSurvey: \"Chestionarul se încarcă...\",\n optionsCaption: \"Alegeţi...\",\n requiredError: \"Răspunsul la această întrebare este obligatoriu.\",\n requiredInAllRowsError: \"Toate răspunsurile sunt obligatorii\",\n numericError: \"Răspunsul trebuie să fie numeric.\",\n textMinLength: \"Trebuie să introduceți minim {0} caractere.\",\n minSelectError: \"Trebuie să selectați minim {0} opţiuni.\",\n maxSelectError: \"Trebuie să selectați maxim {0} opţiuni.\",\n numericMinMax: \"Răspunsul '{0}' trebuie să fie mai mare sau egal ca {1} şî mai mic sau egal cu {2}\",\n numericMin: \"Răspunsul '{0}' trebuie să fie mai mare sau egal ca {1}\",\n numericMax: \"Răspunsul '{0}' trebuie să fie mai mic sau egal ca {1}\",\n invalidEmail: \"Trebuie să introduceţi o adresa de email validă.\",\n exceedMaxSize: \"Dimensiunea fişierului nu trebuie să depăşească {0}.\",\n otherRequiredError: \"Trebuie să completați câmpul 'Altul'.\",\n completingSurveyBefore: \"Din înregistrările noastre reiese că ați completat deja acest chestionar.\",\n value: \"valoare\",\n requiredErrorInPanel: \"Vă rugăm să răspundeți la cel puțin o întrebare.\",\n textMaxLength: \"Trebuie să introduceți maxim {0} caractere.\",\n textMinMaxLength: \"Trebuie să introduceți mai mult de {0} și mai puțin de {1} caractere.\",\n minRowCountError: \"Trebuie să completați minim {0} rânduri.\",\n urlRequestError: \"Request-ul a returnat eroarea '{0}'. {1}\",\n urlGetChoicesError: \"Request-ul nu a returnat date sau proprietatea 'path' este incorectă\",\n uploadingFile: \"Fișierul dumneavoastră este în curs de încărcare. Vă rugăm așteptați câteva secunde și reveniți apoi.\",\n confirmDelete: \"Sunteți sigur că doriți să ștergeți înregistrarea?\",\n keyDuplicationError: \"Valoarea trebuie să fie unică.\",\n addRow: \"Adăugare rând\",\n removeRow: \"Ștergere\",\n addPanel: \"Adăugare\",\n removePanel: \"Ștergere\",\n choices_Item: \"opțiune\",\n matrix_column: \"Coloană\",\n matrix_row: \"Rând\",\n savingData: \"Rezultatele sunt în curs de salvare...\",\n savingDataError: \"A intervenit o eroare, rezultatele nu au putut fi salvate.\",\n savingDataSuccess: \"Rezultatele au fost salvate cu succes!\",\n saveAgainButton: \"Încercați din nou\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Ați petrecut {0} pe această pagină și {1} în total.\",\n timerSpentPage: \"Ați petrecut {0} pe această pagină.\",\n timerSpentSurvey: \"Ați petrecut {0} în total.\",\n timerLimitAll: \"Ați petrecut {0} din {1} pe această pagină și {2} din {3} în total.\",\n timerLimitPage: \"Ați petrecut {0} din {1} pe această pagină.\",\n timerLimitSurvey: \"Ați petrecut {0} din {1} în total.\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"ro\"] = romanianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"ro\"] = \"română\";\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export russianSurveyStrings */\n\nvar russianSurveyStrings = {\n pagePrevText: \"Назад\",\n pageNextText: \"Далее\",\n completeText: \"Готово\",\n startSurveyText: \"Начать\",\n otherItemText: \"Другое (пожалуйста, опишите)\",\n noneItemText: \"Нет\",\n selectAllItemText: \"Выбрать всё\",\n progressText: \"Страница {0} из {1}\",\n emptySurvey: \"Нет ни одного вопроса.\",\n completingSurvey: \"Благодарим Вас за заполнение анкеты!\",\n completingSurveyBefore: \"Вы уже проходили этот опрос.\",\n loadingSurvey: \"Загрузка с сервера...\",\n optionsCaption: \"Выбрать...\",\n value: \"значение\",\n requiredError: \"Пожалуйста, ответьте на вопрос.\",\n requiredErrorInPanel: \"Пожалуйста, ответьте по крайней мере на один вопрос.\",\n requiredInAllRowsError: \"Пожалуйста, ответьте на вопросы в каждой строке.\",\n numericError: \"Ответ должен быть числом.\",\n textMinLength: \"Пожалуйста введите больше {0} символов.\",\n textMaxLength: \"Пожалуйста введите меньше {0} символов.\",\n textMinMaxLength: \"Пожалуйста введите больше {0} и меньше {1} символов.\",\n minRowCountError: \"Пожалуйста, заполните не меньше {0} строк.\",\n minSelectError: \"Пожалуйста, выберите хотя бы {0} вариантов.\",\n maxSelectError: \"Пожалуйста, выберите не более {0} вариантов.\",\n numericMinMax: \"'{0}' должно быть не меньше чем {1}, и не больше чем {2}\",\n numericMin: \"'{0}' должно быть не меньше чем {1}\",\n numericMax: \"'{0}' должно быть не больше чем {1}\",\n invalidEmail: \"Пожалуйста, введите действительный адрес электронной почты.\",\n invalidExpression: \"Выражение {0} должно возвращать 'true'.\",\n urlRequestError: \"Запрос вернул ошибку '{0}'. {1}\",\n urlGetChoicesError: \"Ответ на запрос пришел пустой или свойство 'path' указано неверно\",\n exceedMaxSize: \"Размер файла не должен превышать {0}.\",\n otherRequiredError: \"Пожалуйста, введите данные в поле 'Другое'\",\n uploadingFile: \"Ваш файл загружается. Подождите несколько секунд и попробуйте снова.\",\n loadingFile: \"Загрузка...\",\n chooseFile: \"Выберите файл(ы)...\",\n confirmDelete: \"Вы точно хотите удалить запись?\",\n keyDuplicationError: \"Это значение должно быть уникальным.\",\n addColumn: \"Добавить колонку\",\n addRow: \"Добавить строку\",\n removeRow: \"Удалить\",\n addPanel: \"Добавить новую\",\n removePanel: \"Удалить\",\n choices_Item: \"Вариант\",\n matrix_column: \"Колонка\",\n matrix_row: \"Строка\",\n savingData: \"Результаты сохраняются на сервер...\",\n savingDataError: \"Произошла ошибка, результат не был сохранён.\",\n savingDataSuccess: \"Результат успешно сохранён!\",\n saveAgainButton: \"Попробовать снова\",\n timerMin: \"мин\",\n timerSec: \"сек\",\n timerSpentAll: \"Вы потратили {0} на этой странице и {1} всего.\",\n timerSpentPage: \"Вы потратили {0} на этой странице.\",\n timerSpentSurvey: \"Вы потратили {0} в течение теста.\",\n timerLimitAll: \"Вы потратили {0} из {1} на этой странице и {2} из {3} для всего теста.\",\n timerLimitPage: \"Вы потратили {0} из {1} на этой странице.\",\n timerLimitSurvey: \"Вы потратили {0} из {1} для всего теста.\",\n cleanCaption: \"Очистить\",\n clearCaption: \"Очистить\",\n removeFileCaption: \"Удалить файл\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"ru\"] = russianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"ru\"] = \"русский\";\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export simplifiedChineseSurveyStrings */\n\nvar simplifiedChineseSurveyStrings = {\n pagePrevText: \"上一页\",\n pageNextText: \"下一页\",\n completeText: \"提交问卷\",\n startSurveyText: \"开始问卷\",\n otherItemText: \"填写其他答案\",\n noneItemText: \"无\",\n selectAllItemText: \"选择全部\",\n progressText: \"第 {0} 页, 共 {1} 页\",\n questionsProgressText: \"第 {0}/{1} 题\",\n emptySurvey: \"问卷中没有问题或页面\",\n completingSurveyBefore: \"你已完成问卷.\",\n completingSurvey: \"感谢您的参与!\",\n loadingSurvey: \"问卷正在加载中...\",\n optionsCaption: \"请选择...\",\n value: \"值\",\n requiredError: \"请填写此问题\",\n requiredErrorInPanel: \"至少回答一题.\",\n requiredInAllRowsError: \"请填写所有行中问题\",\n numericError: \"答案必须是个数字\",\n textMinLength: \"答案长度至少 {0} 个字符\",\n textMaxLength: \"答案长度不能超过 {0} 个字符\",\n textMinMaxLength: \"答案长度必须在 {0} - {1} 个字符之间\",\n minRowCountError: \"最少需要填写 {0} 行答案\",\n minSelectError: \"最少需要选择 {0} 项答案\",\n maxSelectError: \"最多只能选择 {0} 项答案\",\n numericMinMax: \"答案 '{0}' 必须大于等于 {1} 且小于等于 {2}\",\n numericMin: \"答案 '{0}' 必须大于等于 {1}\",\n numericMax: \"答案 '{0}' 必须小于等于 {1}\",\n invalidEmail: \"请输入有效的 Email 地址\",\n invalidExpression: \"公式: {0} 无效.\",\n urlRequestError: \"载入选项时发生错误 '{0}': {1}\",\n urlGetChoicesError: \"未能载入有效的选项或请求参数路径有误\",\n exceedMaxSize: \"文件大小不能超过 {0}\",\n otherRequiredError: \"请完成其他问题\",\n uploadingFile: \"文件上传中... 请耐心等待几秒后重试\",\n loadingFile: \"加载...\",\n chooseFile: \"选择文件...\",\n noFileChosen: \"未选择文件\",\n confirmDelete: \"删除记录?\",\n keyDuplicationError: \"主键不能重复\",\n addColumn: \"添加列\",\n addRow: \"添加行\",\n removeRow: \"删除答案\",\n addPanel: \"新添\",\n removePanel: \"删除\",\n choices_Item: \"选项\",\n matrix_column: \"列\",\n matrix_row: \"行\",\n savingData: \"正在将结果保存到服务器...\",\n savingDataError: \"在保存结果过程中发生了错误,结果未能保存\",\n savingDataSuccess: \"结果保存成功!\",\n saveAgainButton: \"请重试\",\n timerMin: \"分\",\n timerSec: \"秒\",\n timerSpentAll: \"本页用时 {0} 总计用时{1} .\",\n timerSpentPage: \"本页用时{0} .\",\n timerSpentSurvey: \"总计用时 {0} .\",\n timerLimitAll: \"本页用时 {0} 共 {1}, 总计用时 {2} 共 {3} .\",\n timerLimitPage: \"本页用时 {0} 共 {1} .\",\n timerLimitSurvey: \"总计用时 {0} 共 {1}.\",\n cleanCaption: \"清理\",\n clearCaption: \"清除\",\n removeFileCaption: \"移除文件\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"zh-cn\"] = simplifiedChineseSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"zh-cn\"] = \"简体中文\";\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export spanishSurveyStrings */\n\nvar spanishSurveyStrings = {\n pagePrevText: \"Anterior\",\n pageNextText: \"Siguiente\",\n completeText: \"Completo\",\n otherItemText: \"Otro (describa)\",\n progressText: \"Página {0} de {1}\",\n emptySurvey: \"No hay página visible o pregunta en la encuesta.\",\n completingSurvey: \"Gracias por completar la encuesta!\",\n loadingSurvey: \"La encuesta está cargando...\",\n optionsCaption: \"Seleccione...\",\n requiredError: \"Por favor conteste la pregunta.\",\n requiredInAllRowsError: \"Por favor conteste las preguntas en cada hilera.\",\n numericError: \"La estimación debe ser numérica.\",\n textMinLength: \"Por favor entre por lo menos {0} símbolos.\",\n textMaxLength: \"Por favor entre menos de {0} símbolos.\",\n textMinMaxLength: \"Por favor entre más de {0} y menos de {1} símbolos.\",\n minRowCountError: \"Por favor llene por lo menos {0} hileras.\",\n minSelectError: \"Por favor seleccione por lo menos {0} variantes.\",\n maxSelectError: \"Por favor seleccione no más de {0} variantes.\",\n numericMinMax: \"El '{0}' debe de ser igual o más de {1} y igual o menos de {2}\",\n numericMin: \"El '{0}' debe ser igual o más de {1}\",\n numericMax: \"El '{0}' debe ser igual o menos de {1}\",\n invalidEmail: \"Por favor agregue un correo electrónico válido.\",\n urlRequestError: \"La solicitud regresó error '{0}'. {1}\",\n urlGetChoicesError: \"La solicitud regresó vacío de data o la propiedad 'trayectoria' no es correcta\",\n exceedMaxSize: \"El tamaño del archivo no debe de exceder {0}.\",\n otherRequiredError: \"Por favor agregue la otra estimación.\",\n uploadingFile: \"Su archivo se está subiendo. Por favor espere unos segundos e intente de nuevo.\",\n addRow: \"Agregue una hilera\",\n removeRow: \"Eliminar una hilera\",\n choices_firstItem: \"primer artículo\",\n choices_secondItem: \"segundo artículo\",\n choices_thirdItem: \"tercera artículo\",\n matrix_column: \"Columna\",\n matrix_row: \"Hilera\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"es\"] = spanishSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"es\"] = \"español\";\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export swedishSurveyStrings */\n//Create by Mattias Asplund\n\nvar swedishSurveyStrings = {\n pagePrevText: \"Föregående\",\n pageNextText: \"Nästa\",\n completeText: \"Färdig\",\n otherItemText: \"Annat (beskriv)\",\n progressText: \"Sida {0} av {1}\",\n emptySurvey: \"Det finns ingen synlig sida eller fråga i enkäten.\",\n completingSurvey: \"Tack för att du genomfört enkäten!!\",\n loadingSurvey: \"Enkäten laddas...\",\n optionsCaption: \"Välj...\",\n requiredError: \"Var vänlig besvara frågan.\",\n requiredInAllRowsError: \"Var vänlig besvara frågorna på alla rader.\",\n numericError: \"Värdet ska vara numeriskt.\",\n textMinLength: \"Var vänlig ange minst {0} tecken.\",\n minRowCountError: \"Var vänlig fyll i minst {0} rader.\",\n minSelectError: \"Var vänlig välj åtminstone {0} varianter.\",\n maxSelectError: \"Var vänlig välj inte fler än {0} varianter.\",\n numericMinMax: \"'{0}' ska vara lika med eller mer än {1} samt lika med eller mindre än {2}\",\n numericMin: \"'{0}' ska vara lika med eller mer än {1}\",\n numericMax: \"'{0}' ska vara lika med eller mindre än {1}\",\n invalidEmail: \"Var vänlig ange en korrekt e-postadress.\",\n urlRequestError: \"Förfrågan returnerade felet '{0}'. {1}\",\n urlGetChoicesError: \"Antingen returnerade förfrågan ingen data eller så är egenskapen 'path' inte korrekt\",\n exceedMaxSize: \"Filstorleken får ej överstiga {0}.\",\n otherRequiredError: \"Var vänlig ange det andra värdet.\",\n uploadingFile: \"Din fil laddas upp. Var vänlig vänta några sekunder och försök sedan igen.\",\n addRow: \"Lägg till rad\",\n removeRow: \"Ta bort\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"sv\"] = swedishSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"sv\"] = \"svenska\";\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export traditionalChineseSurveyStrings */\n\nvar traditionalChineseSurveyStrings = {\n pagePrevText: \"上一頁\",\n pageNextText: \"下一頁\",\n completeText: \"提交問卷\",\n otherItemText: \"填寫其他答案\",\n progressText: \"第 {0} 頁, 共 {1} 頁\",\n emptySurvey: \"問卷中沒有問題或頁面\",\n completingSurvey: \"感謝您的參與!\",\n loadingSurvey: \"問卷載入中...\",\n optionsCaption: \"請選擇...\",\n requiredError: \"請填寫此問題\",\n requiredInAllRowsError: \"請填寫所有行中問題\",\n numericError: \"答案必須是個數字\",\n textMinLength: \"答案長度至少 {0} 個字元\",\n textMaxLength: \"答案長度不能超過 {0} 個字元\",\n textMinMaxLength: \"答案長度必須在 {0} - {1} 個字元之間\",\n minRowCountError: \"最少需要填寫 {0} 行答案\",\n minSelectError: \"最少需要選擇 {0} 項答案\",\n maxSelectError: \"最多只能選擇 {0} 項答案\",\n numericMinMax: \"答案 '{0}' 必須大於等於 {1} 且小於等於 {2}\",\n numericMin: \"答案 '{0}' 必須大於等於 {1}\",\n numericMax: \"答案 '{0}' 必須小於等於 {1}\",\n invalidEmail: \"請輸入有效的 Email 地址\",\n urlRequestError: \"載入選項時發生錯誤 '{0}': {1}\",\n urlGetChoicesError: \"未能載入有效的選項或請求參數路徑有誤\",\n exceedMaxSize: \"文件大小不能超過 {0}\",\n otherRequiredError: \"請完成其他問題\",\n uploadingFile: \"文件上傳中... 請耐心等待幾秒後重試\",\n addRow: \"添加答案\",\n removeRow: \"刪除答案\",\n choices_Item: \"選項\",\n matrix_column: \"列\",\n matrix_row: \"行\",\n savingData: \"正在將結果保存到服務器...\",\n savingDataError: \"在保存結果過程中發生了錯誤,結果未能保存\",\n savingDataSuccess: \"結果保存成功!\",\n saveAgainButton: \"請重試\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"zh-tw\"] = traditionalChineseSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"zh-tw\"] = \"繁體中文\";\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export turkishSurveyStrings */\n\nvar turkishSurveyStrings = {\n pagePrevText: \"Geri\",\n pageNextText: \"İleri\",\n completeText: \"Anketi Tamamla\",\n otherItemText: \"Diğer (açıklayınız)\",\n progressText: \"Sayfa {0} / {1}\",\n emptySurvey: \"Ankette görüntülenecek sayfa ya da soru mevcut değil.\",\n completingSurvey: \"Anketimizi tamamladığınız için teşekkür ederiz.\",\n loadingSurvey: \"Anket sunucudan yükleniyor ...\",\n optionsCaption: \"Seçiniz ...\",\n requiredError: \"Lütfen soruya cevap veriniz\",\n numericError: \"Girilen değer numerik olmalıdır\",\n textMinLength: \"En az {0} sembol giriniz.\",\n minRowCountError: \"Lütfen en az {0} satırı doldurun.\",\n minSelectError: \"Lütfen en az {0} seçeneği seçiniz.\",\n maxSelectError: \"Lütfen {0} adetten fazla seçmeyiniz.\",\n numericMinMax: \"The '{0}' should be equal or more than {1} and equal or less than {2}\",\n numericMin: \"'{0}' değeri {1} değerine eşit veya büyük olmalıdır\",\n numericMax: \"'{0}' değeri {1} değerine eşit ya da küçük olmalıdır.\",\n invalidEmail: \"Lütfen geçerli bir eposta adresi giriniz.\",\n urlRequestError: \"Talebi şu hatayı döndü '{0}'. {1}\",\n urlGetChoicesError: \"Talep herhangi bir veri dönmedi ya da 'path' özelliği hatalı.\",\n exceedMaxSize: \"Dosya boyutu {0} değerini geçemez.\",\n otherRequiredError: \"Lütfen diğer değerleri giriniz.\",\n uploadingFile: \"Dosyanız yükleniyor. LÜtfen birkaç saniye bekleyin ve tekrar deneyin.\",\n addRow: \"Satır Ekle\",\n removeRow: \"Kaldır\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"tr\"] = turkishSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"tr\"] = \"türkçe\";\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__surveyStrings__ = __webpack_require__(1);\n/* unused harmony export ukrainianSurveyStrings */\n\nvar ukrainianSurveyStrings = {\n pagePrevText: \"Назад\",\n pageNextText: \"Далі\",\n completeText: \"Завершити\",\n startSurveyText: \"Почати\",\n otherItemText: \"Інше (будь ласка, опишіть)\",\n noneItemText: \"Жоден\",\n selectAllItemText: \"Вибрати все\",\n progressText: \"Сторінка {0} з {1}\",\n questionsProgressText: \"Відповіли на {0}/{1} питань\",\n emptySurvey: \"Немає жодного питання.\",\n completingSurvey: \"Дякуємо Вам за заповнення анкети!\",\n completingSurveyBefore: \"Ви вже проходили це опитування.\",\n loadingSurvey: \"Завантаження опитування...\",\n optionsCaption: \"Вибрати...\",\n value: \"значення\",\n requiredError: \"Будь ласка, дайте відповідь.\",\n requiredErrorInPanel: \"Будь ласка, дайте відповідь хоча б на одне питання.\",\n requiredInAllRowsError: \"Будь ласка, дайте відповідь на питання в кожному рядку.\",\n numericError: \"Відповідь повинна бути числом.\",\n textMinLength: \"Будь ласка введіть більше {0} символів.\",\n textMaxLength: \"Будь ласка введіть менше {0} символів.\",\n textMinMaxLength: \"Будь ласка введіть більше {0} и менше {1} символів.\",\n minRowCountError: \"Будь ласка, заповніть не менше {0} рядків.\",\n minSelectError: \"Будь ласка, виберіть хоча б {0} варіантів.\",\n maxSelectError: \"Будь ласка, виберіть не більше {0} варіантів.\",\n numericMinMax: \"'{0}' повинно бути не менше ніж {1}, і не більше ніж {2}\",\n numericMin: \"'{0}' повинно бути не менше ніж {1}\",\n numericMax: \"'{0}' повинно бути не більше ніж {1}\",\n invalidEmail: \"Будь ласка, введіть дійсну адресу електронної пошти.\",\n invalidExpression: \"Вираз {0} повинен повертати 'true'.\",\n urlRequestError: \"Запит повернув помилку '{0}'. {1}\",\n urlGetChoicesError: \"Відповідь на запит повернулась порожньою або властивіть 'path' вказано невірно\",\n exceedMaxSize: \"Розмір файлу не повинен перевищувати {0}.\",\n otherRequiredError: \"Будь ласка, введіть дані в поле 'Інше'\",\n uploadingFile: \"Ваш файл завантажується. Зачекайте декілька секунд і спробуйте знову.\",\n loadingFile: \"Завантаження...\",\n chooseFile: \"Виберіть файл(и)...\",\n noFileChosen: \"Файл не вибрано\",\n confirmDelete: \"Ви хочете видалити запис?\",\n keyDuplicationError: \"Це значення повинно бути унікальним.\",\n addColumn: \"Додати колонку\",\n addRow: \"Додати рядок\",\n removeRow: \"Видалити\",\n addPanel: \"Додати нову\",\n removePanel: \"Видалити\",\n choices_Item: \"Варіант\",\n matrix_column: \"Колонка\",\n matrix_row: \"Рядок\",\n savingData: \"Результати зберігаються на сервер...\",\n savingDataError: \"Відбулася помилка, результат не був збережений.\",\n savingDataSuccess: \"Резвультат успішно збережений!\",\n saveAgainButton: \"Спробувати знову\",\n timerMin: \"хв\",\n timerSec: \"сек\",\n timerSpentAll: \"Ви витратили {0} на цій сторінці і {1} загалом.\",\n timerSpentPage: \"Ви витратили {0} на цій сторінці.\",\n timerSpentSurvey: \"Ви витратили {0} протягом тесту.\",\n timerLimitAll: \"Ви витратили {0} з {1} на цій сторінці і {2} з {3} для всього тесту.\",\n timerLimitPage: \"Ви витратили {0} з {1} на цій сторінці.\",\n timerLimitSurvey: \"Ви витратили {0} з {1} для всього тесту.\",\n cleanCaption: \"Очистити\",\n clearCaption: \"Очистити\",\n removeFileCaption: \"Видалити файл\"\n};\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].locales[\"ua\"] = ukrainianSurveyStrings;\n__WEBPACK_IMPORTED_MODULE_0__surveyStrings__[\"a\" /* surveyLocalization */].localeNames[\"ua\"] = \"українська\";\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__surveyStrings__ = __webpack_require__(1);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionBooleanModel; });\n\n\n\n\n\n/**\n * A Model for a boolean question.\n */\nvar QuestionBooleanModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionBooleanModel, _super);\n function QuestionBooleanModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.createLocalizableString(\"label\", _this, true);\n _this.createLocalizableString(\"labelFalse\", _this, true);\n _this.createLocalizableString(\"labelTrue\", _this, true);\n _this.labelTrue = __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"booleanCheckedLabel\");\n _this.labelFalse = __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"booleanUncheckedLabel\");\n return _this;\n }\n QuestionBooleanModel.prototype.getType = function () {\n return \"boolean\";\n };\n QuestionBooleanModel.prototype.isLayoutTypeSupported = function (layoutType) {\n return true;\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"isIndeterminate\", {\n /**\n * Returns true if the question check will be rendered in indeterminate mode. value is empty.\n */\n get: function () {\n return this.isEmpty();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"hasTitle\", {\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n QuestionBooleanModel.prototype.supportGoNextPageAutomatic = function () {\n return true;\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"checkedValue\", {\n /**\n * Get/set question value in 3 modes: indeterminate (value is empty), true (check is set) and false (check is unset).\n * @see valueTrue\n * @see valueFalse\n */\n get: function () {\n if (this.isEmpty())\n return null;\n return this.value == this.getValueTrue();\n },\n set: function (val) {\n if (this.isValueEmpty(val)) {\n this.value = null;\n }\n else {\n this.value = val == true ? this.getValueTrue() : this.getValueFalse();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"defaultValue\", {\n /**\n * Set the default state of the check: \"indeterminate\" - default (value is empty/null), \"true\" - value equals valueTrue or true, \"false\" - value equals valueFalse or false.\n */\n get: function () {\n return this.getPropertyValue(\"defaultValue\");\n },\n set: function (val) {\n if (val === true)\n val = \"true\";\n if (val === false)\n val = \"false\";\n this.setPropertyValue(\"defaultValue\", val);\n this.updateValueWithDefaults();\n },\n enumerable: true,\n configurable: true\n });\n QuestionBooleanModel.prototype.getDefaultValue = function () {\n if (this.defaultValue == \"indeterminate\")\n return null;\n return this.defaultValue == \"true\"\n ? this.getValueTrue()\n : this.getValueFalse();\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"locTitle\", {\n get: function () {\n return this.showTitle || this.isValueEmpty(this.locLabel.text)\n ? this.getLocalizableString(\"title\")\n : this.locLabel;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"label\", {\n /**\n * The checkbox label. If it is empty and showTitle is false then title is rendered\n * @see showTitle\n * @see title\n */\n get: function () {\n return this.getLocalizableStringText(\"label\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"label\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"locLabel\", {\n get: function () {\n return this.getLocalizableString(\"label\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"locDisplayLabel\", {\n get: function () {\n if (this.locLabel.text)\n return this.locLabel;\n return this.showTitle ? this.locLabel : this.locTitle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"labelTrue\", {\n /**\n * Set this property, if you want to have a different label for state when check is set.\n */\n get: function () {\n return this.getLocalizableStringText(\"labelTrue\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"labelTrue\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"locLabelTrue\", {\n get: function () {\n return this.getLocalizableString(\"labelTrue\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"labelFalse\", {\n /**\n * Set this property, if you want to have a different label for state when check is unset.\n */\n get: function () {\n return this.getLocalizableStringText(\"labelFalse\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"labelFalse\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"locLabelFalse\", {\n get: function () {\n return this.getLocalizableString(\"labelFalse\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"showTitle\", {\n /**\n * Set this property to true to show the question title. It is hidden by default.\n */\n get: function () {\n return this.getPropertyValue(\"showTitle\");\n },\n set: function (val) {\n this.setPropertyValue(\"showTitle\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"valueTrue\", {\n /**\n * Set this property, if you want to have a different value from true when check is set.\n */\n get: function () {\n return this.getPropertyValue(\"valueTrue\");\n },\n set: function (val) {\n this.setPropertyValue(\"valueTrue\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"valueFalse\", {\n /**\n * Set this property, if you want to have a different value from false when check is unset.\n */\n get: function () {\n return this.getPropertyValue(\"valueFalse\");\n },\n set: function (val) {\n this.setPropertyValue(\"valueFalse\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionBooleanModel.prototype.getValueTrue = function () {\n return this.valueTrue ? this.valueTrue : true;\n };\n QuestionBooleanModel.prototype.getValueFalse = function () {\n return this.valueFalse ? this.valueFalse : false;\n };\n QuestionBooleanModel.prototype.setDefaultValue = function () {\n if (this.defaultValue == \"true\")\n this.checkedValue = true;\n if (this.defaultValue == \"false\")\n this.checkedValue = false;\n if (this.defaultValue == \"indeterminate\")\n this.value = null;\n };\n return QuestionBooleanModel;\n}(__WEBPACK_IMPORTED_MODULE_3__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"boolean\", [\n {\n name: \"defaultValue:dropdown\",\n alternativeName: \"booleanDefaultValue\",\n default: \"indeterminate\",\n choices: [\"indeterminate\", \"false\", \"true\"]\n },\n { name: \"label:text\", serializationProperty: \"locLabel\" },\n {\n name: \"labelTrue:text\",\n serializationProperty: \"locLabelTrue\"\n },\n {\n name: \"labelFalse:text\",\n serializationProperty: \"locLabelFalse\"\n },\n \"showTitle:boolean\",\n \"valueTrue\",\n \"valueFalse\"\n], function () {\n return new QuestionBooleanModel(\"\");\n}, \"question\");\n__WEBPACK_IMPORTED_MODULE_1__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"boolean\", function (name) {\n return new QuestionBooleanModel(name);\n});\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question_baseselect__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__itemvalue__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__surveyStrings__ = __webpack_require__(1);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionCheckboxModel; });\n\n\n\n\n\n\n\n/**\n * A Model for a checkbox question\n */\nvar QuestionCheckboxModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionCheckboxModel, _super);\n function QuestionCheckboxModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.noneItemValue = new __WEBPACK_IMPORTED_MODULE_5__itemvalue__[\"a\" /* ItemValue */](\"none\");\n _this.selectAllItemValue = new __WEBPACK_IMPORTED_MODULE_5__itemvalue__[\"a\" /* ItemValue */](\"selectall\");\n var noneItemText = _this.createLocalizableString(\"noneText\", _this, true);\n noneItemText.onGetTextCallback = function (text) {\n return !!text ? text : __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"noneItemText\");\n };\n _this.noneItemValue.locOwner = _this;\n _this.noneItemValue.setLocText(noneItemText);\n var selectAllItemText = _this.createLocalizableString(\"selectAllText\", _this, true);\n selectAllItemText.onGetTextCallback = function (text) {\n return !!text ? text : __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"selectAllItemText\");\n };\n _this.selectAllItem.locOwner = _this;\n _this.selectAllItem.setLocText(selectAllItemText);\n var self = _this;\n _this.registerFunctionOnPropertiesValueChanged([\"hasNone\", \"noneText\", \"hasSelectAll\", \"selectAllText\"], function () {\n self.onVisibleChoicesChanged();\n });\n return _this;\n }\n QuestionCheckboxModel.prototype.onCreating = function () {\n _super.prototype.onCreating.call(this);\n this.createNewArray(\"renderedValue\");\n this.createNewArray(\"value\");\n };\n QuestionCheckboxModel.prototype.getFirstInputElementId = function () {\n return this.inputId + \"_0\";\n };\n Object.defineProperty(QuestionCheckboxModel.prototype, \"selectAllItem\", {\n /**\n * Returns the select all item. By using this property, you may change programmatically it's value and text.\n * @see hasSelectAll\n */\n get: function () {\n return this.selectAllItemValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"noneItem\", {\n /**\n * Returns the none item. By using this property, you may change programmatically it's value and text.\n * @see hasNone\n */\n get: function () {\n return this.noneItemValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"noneText\", {\n /**\n * Use this property to set the different text for none item.\n */\n get: function () {\n return this.getLocalizableStringText(\"noneText\", __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"noneItemText\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"noneText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"locNoneText\", {\n get: function () {\n return this.getLocalizableString(\"noneText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"selectAllText\", {\n /**\n * Use this property to set the different text for Select All item.\n */\n get: function () {\n return this.getLocalizableStringText(\"selectAllText\", __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"selectAllItemText\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"selectAllText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"locSelectAllText\", {\n get: function () {\n return this.getLocalizableString(\"selectAllText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"hasSelectAll\", {\n /**\n * Set this property to true, to show the \"Select All\" item on the top. If end-user checks this item, then all items are checked.\n */\n get: function () {\n return this.getPropertyValue(\"hasSelectAll\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"hasSelectAll\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"isAllSelected\", {\n /**\n * Returns true if all items are selected\n * @see toggleSelectAll\n */\n get: function () {\n var val = this.value;\n if (!val || !Array.isArray(val))\n return false;\n if (this.isItemSelected(this.noneItem))\n return false;\n var allItemCount = this.visibleChoices.length;\n if (this.hasOther)\n allItemCount--;\n if (this.hasNone)\n allItemCount--;\n if (this.hasSelectAll)\n allItemCount--;\n var selectedCount = val.length;\n if (this.isItemSelected(this.otherItem))\n selectedCount--;\n return selectedCount === allItemCount;\n },\n set: function (val) {\n if (val) {\n this.selectAll();\n }\n else {\n this.clearValue();\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * It will select all items, except other and none. If all items have been already selected then it will clear the value\n * @see isAllSelected\n * @see selectAll\n */\n QuestionCheckboxModel.prototype.toggleSelectAll = function () {\n this.isAllSelected = !this.isAllSelected;\n };\n /**\n * Select all items, except other and none.\n */\n QuestionCheckboxModel.prototype.selectAll = function () {\n var val = [];\n for (var i = 0; i < this.visibleChoices.length; i++) {\n var item = this.visibleChoices[i];\n if (item === this.noneItem ||\n item === this.otherItem ||\n item === this.selectAllItem)\n continue;\n val.push(item.value);\n }\n this.value = val;\n };\n Object.defineProperty(QuestionCheckboxModel.prototype, \"hasNone\", {\n /**\n * Set this property to true, to show the \"None\" item on the bottom. If end-user checks this item, all other items would be unchecked.\n */\n get: function () {\n return this.getPropertyValue(\"hasNone\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"hasNone\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns true if item is checked\n * @param item checkbox item value\n */\n QuestionCheckboxModel.prototype.isItemSelected = function (item) {\n if (item === this.selectAllItem)\n return this.isAllSelected;\n var val = this.renderedValue;\n if (!val || !Array.isArray(val))\n return false;\n for (var i = 0; i < val.length; i++) {\n if (__WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isTwoValueEquals(val[i], item.value))\n return true;\n }\n return false;\n };\n QuestionCheckboxModel.prototype.setNewValue = function (newValue) {\n newValue = this.valueFromData(newValue);\n var value = this.value;\n if (!newValue)\n newValue = [];\n if (!value)\n value = [];\n if (__WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isTwoValueEquals(value, newValue))\n return;\n if (this.hasNone) {\n var prevNoneIndex = this.noneIndexInArray(value);\n var newNoneIndex = this.noneIndexInArray(newValue);\n if (prevNoneIndex > -1) {\n if (newNoneIndex > -1 && newValue.length > 1) {\n newValue.splice(newNoneIndex, 1);\n }\n }\n else {\n if (newNoneIndex > -1) {\n newValue.splice(0, newValue.length);\n newValue.push(this.noneItem.value);\n }\n }\n }\n _super.prototype.setNewValue.call(this, newValue);\n };\n QuestionCheckboxModel.prototype.noneIndexInArray = function (val) {\n if (!val || !Array.isArray(val))\n return -1;\n var noneValue = this.noneItem.value;\n for (var i = 0; i < val.length; i++) {\n if (val[i] == noneValue)\n return i;\n }\n return -1;\n };\n QuestionCheckboxModel.prototype.canUseFilteredChoices = function () {\n return !this.hasNone && !this.hasSelectAll && _super.prototype.canUseFilteredChoices.call(this);\n };\n QuestionCheckboxModel.prototype.addToVisibleChoices = function (items) {\n if (this.hasSelectAll) {\n items.unshift(this.selectAllItem);\n }\n _super.prototype.addToVisibleChoices.call(this, items);\n if (this.hasNone) {\n items.push(this.noneItem);\n }\n };\n QuestionCheckboxModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n if (!Array.isArray(value))\n return _super.prototype.getDisplayValueCore.call(this, keysAsText, value);\n var items = this.visibleChoices;\n var str = \"\";\n for (var i = 0; i < value.length; i++) {\n var valStr = this.getChoicesDisplayValue(items, value[i]);\n if (valStr) {\n if (str)\n str += \", \";\n str += valStr;\n }\n }\n return str;\n };\n QuestionCheckboxModel.prototype.clearIncorrectValuesCore = function () {\n this.clearIncorrectAndDisabledValues(false);\n };\n QuestionCheckboxModel.prototype.clearDisabledValuesCore = function () {\n this.clearIncorrectAndDisabledValues(true);\n };\n QuestionCheckboxModel.prototype.clearIncorrectAndDisabledValues = function (clearDisabled) {\n var val = this.value;\n if (!val)\n return;\n if (!Array.isArray(val) || val.length == 0) {\n if (!clearDisabled) {\n if (this.hasComment) {\n this.value = null;\n }\n else {\n this.clearValue();\n }\n }\n return;\n }\n var newValue = [];\n for (var i = 0; i < val.length; i++) {\n if ((!clearDisabled && !this.canClearValueAnUnknow(val[i])) ||\n (clearDisabled && !this.isValueDisabled(val[i]))) {\n newValue.push(val[i]);\n }\n }\n if (newValue.length == val.length)\n return;\n if (newValue.length == 0) {\n this.clearValue();\n }\n else {\n this.value = newValue;\n }\n };\n QuestionCheckboxModel.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n var json = _super.prototype.getConditionJson.call(this);\n if (operator == \"contains\" || operator == \"notcontains\") {\n json[\"type\"] = \"radiogroup\";\n }\n return json;\n };\n QuestionCheckboxModel.prototype.isAnswerCorrect = function () {\n return __WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isArrayContainsEqual(this.value, this.correctAnswer);\n };\n QuestionCheckboxModel.prototype.setDefaultValueWithOthers = function () {\n this.value = this.renderedValueFromDataCore(this.defaultValue);\n };\n QuestionCheckboxModel.prototype.getHasOther = function (val) {\n if (!val || !Array.isArray(val))\n return false;\n return val.indexOf(this.otherItem.value) >= 0;\n };\n QuestionCheckboxModel.prototype.valueFromData = function (val) {\n if (!val)\n return val;\n if (!Array.isArray(val))\n return [_super.prototype.valueFromData.call(this, val)];\n var value = [];\n for (var i = 0; i < val.length; i++) {\n var choiceitem = __WEBPACK_IMPORTED_MODULE_5__itemvalue__[\"a\" /* ItemValue */].getItemByValue(this.activeChoices, val[i]);\n if (!!choiceitem) {\n value.push(choiceitem.value);\n }\n else {\n value.push(val[i]);\n }\n }\n return value;\n };\n QuestionCheckboxModel.prototype.renderedValueFromDataCore = function (val) {\n if (!val || !Array.isArray(val))\n val = [];\n for (var i = 0; i < val.length; i++) {\n if (val[i] == this.otherItem.value)\n return val;\n if (this.hasUnknownValue(val[i])) {\n this.comment = val[i];\n var newVal = val.slice();\n newVal[i] = this.otherItem.value;\n return newVal;\n }\n }\n return val;\n };\n QuestionCheckboxModel.prototype.rendredValueToDataCore = function (val) {\n if (!val || !val.length)\n return val;\n for (var i = 0; i < val.length; i++) {\n if (val[i] == this.otherItem.value) {\n if (this.getComment()) {\n var newVal = val.slice();\n newVal[i] = this.getComment();\n return newVal;\n }\n }\n }\n return val;\n };\n QuestionCheckboxModel.prototype.hasUnknownValue = function (val, includeOther) {\n if (includeOther === void 0) { includeOther = false; }\n if (this.hasNone && val == this.noneItemValue.value)\n return false;\n return _super.prototype.hasUnknownValue.call(this, val, includeOther);\n };\n QuestionCheckboxModel.prototype.getType = function () {\n return \"checkbox\";\n };\n return QuestionCheckboxModel;\n}(__WEBPACK_IMPORTED_MODULE_3__question_baseselect__[\"a\" /* QuestionCheckboxBase */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"checkbox\", [\n \"hasSelectAll:boolean\",\n \"hasNone:boolean\",\n { name: \"noneText\", serializationProperty: \"locNoneText\" },\n { name: \"selectAllText\", serializationProperty: \"locSelectAllText\" }\n], function () {\n return new QuestionCheckboxModel(\"\");\n}, \"checkboxbase\");\n__WEBPACK_IMPORTED_MODULE_2__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"checkbox\", function (name) {\n var q = new QuestionCheckboxModel(name);\n q.choices = __WEBPACK_IMPORTED_MODULE_2__questionfactory__[\"a\" /* QuestionFactory */].DefaultChoices;\n return q;\n});\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__helpers__ = __webpack_require__(6);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionCommentModel; });\n\n\n\n\n\n/**\n * A Model for a comment question\n */\nvar QuestionCommentModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionCommentModel, _super);\n function QuestionCommentModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.createLocalizableString(\"placeHolder\", _this);\n return _this;\n }\n QuestionCommentModel.prototype.isTextValue = function () {\n return true;\n };\n Object.defineProperty(QuestionCommentModel.prototype, \"maxLength\", {\n /**\n * The maximim text length. If it is -1, defaul value, then the survey maxTextLength property will be used.\n * If it is 0, then the value is unlimited\n * @see SurveyModel.maxTextLength\n */\n get: function () {\n return this.getPropertyValue(\"maxLength\");\n },\n set: function (val) {\n this.setPropertyValue(\"maxLength\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionCommentModel.prototype.getMaxLength = function () {\n return __WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].getMaxLength(this.maxLength, this.survey ? this.survey.maxTextLength : -1);\n };\n Object.defineProperty(QuestionCommentModel.prototype, \"placeHolder\", {\n /**\n * Use this property to set the input place holder.\n */\n get: function () {\n return this.getLocalizableStringText(\"placeHolder\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"placeHolder\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCommentModel.prototype, \"locPlaceHolder\", {\n get: function () {\n return this.getLocalizableString(\"placeHolder\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCommentModel.prototype, \"rows\", {\n /**\n * The html rows attribute.\n */\n get: function () {\n return this.getPropertyValue(\"rows\");\n },\n set: function (val) {\n this.setPropertyValue(\"rows\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionCommentModel.prototype, \"cols\", {\n /**\n * The html cols attribute.\n */\n get: function () {\n return this.getPropertyValue(\"cols\");\n },\n set: function (val) {\n this.setPropertyValue(\"cols\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionCommentModel.prototype.getType = function () {\n return \"comment\";\n };\n QuestionCommentModel.prototype.isEmpty = function () {\n return _super.prototype.isEmpty.call(this) || this.value === \"\";\n };\n return QuestionCommentModel;\n}(__WEBPACK_IMPORTED_MODULE_1__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"comment\", [\n { name: \"maxLength:number\", default: -1 },\n { name: \"cols:number\", default: 50 },\n { name: \"rows:number\", default: 4 },\n { name: \"placeHolder\", serializationProperty: \"locPlaceHolder\" }\n], function () {\n return new QuestionCommentModel(\"\");\n}, \"question\");\n__WEBPACK_IMPORTED_MODULE_3__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"comment\", function (name) {\n return new QuestionCommentModel(name);\n});\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__question__ = __webpack_require__(11);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionEmptyModel; });\n\n\n\n/**\n * A Model for an question that renders empty \"div\" tag. It used as a base class for some custom widgets\n */\nvar QuestionEmptyModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionEmptyModel, _super);\n function QuestionEmptyModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n return _this;\n }\n QuestionEmptyModel.prototype.getType = function () {\n return \"empty\";\n };\n return QuestionEmptyModel;\n}(__WEBPACK_IMPORTED_MODULE_2__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"empty\", [], function () {\n return new QuestionEmptyModel(\"\");\n}, \"question\");\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__surveyStrings__ = __webpack_require__(1);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionFileModel; });\n\n\n\n\n\n\n\n/**\n * A Model for a file question\n */\nvar QuestionFileModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionFileModel, _super);\n function QuestionFileModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.isUploading = false;\n /**\n * The event is fired after question state has been changed.\n *
sender the question object that fires the event\n *
options.state new question state value.\n */\n _this.onStateChanged = new __WEBPACK_IMPORTED_MODULE_4__base__[\"b\" /* Event */]();\n _this.previewValue = [];\n _this.currentState = \"empty\";\n return _this;\n }\n QuestionFileModel.prototype.getType = function () {\n return \"file\";\n };\n Object.defineProperty(QuestionFileModel.prototype, \"showPreview\", {\n /**\n * Set it to true, to show the preview for the image files.\n */\n get: function () {\n return this.getPropertyValue(\"showPreview\");\n },\n set: function (val) {\n this.setPropertyValue(\"showPreview\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"allowMultiple\", {\n /**\n * Set it to true, to allow select multiple files.\n */\n get: function () {\n return this.getPropertyValue(\"allowMultiple\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"allowMultiple\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"imageHeight\", {\n /**\n * The image height.\n */\n get: function () {\n return this.getPropertyValue(\"imageHeight\");\n },\n set: function (val) {\n this.setPropertyValue(\"imageHeight\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"imageWidth\", {\n /**\n * The image width.\n */\n get: function () {\n return this.getPropertyValue(\"imageWidth\");\n },\n set: function (val) {\n this.setPropertyValue(\"imageWidth\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"acceptedTypes\", {\n /**\n * Accepted file types. Passed to the 'accept' attribute of the file input tag. See https://www.w3schools.com/tags/att_input_accept.asp for more details.\n */\n get: function () {\n return this.getPropertyValue(\"acceptedTypes\");\n },\n set: function (val) {\n this.setPropertyValue(\"acceptedTypes\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"storeDataAsText\", {\n /**\n * Set it to false if you do not want to serialize file content as text in the survey.data.\n * In this case, you have to write the code onUploadFiles event to store the file content.\n * @see SurveyModel.onUploadFiles\n */\n get: function () {\n return this.getPropertyValue(\"storeDataAsText\");\n },\n set: function (val) {\n this.setPropertyValue(\"storeDataAsText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"waitForUpload\", {\n /**\n * Set it to true if you want to wait until files will be uploaded to your server.\n */\n get: function () {\n return this.getPropertyValue(\"waitForUpload\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"waitForUpload\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"allowImagesPreview\", {\n /**\n * Set it to false if you want to disable images preview.\n */\n get: function () {\n return this.getPropertyValue(\"allowImagesPreview\");\n },\n set: function (val) {\n this.setPropertyValue(\"allowImagesPreview\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"maxSize\", {\n /**\n * Use this property to setup the maximum allowed file size.\n */\n get: function () {\n return this.getPropertyValue(\"maxSize\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"maxSize\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"needConfirmRemoveFile\", {\n /**\n * Use this property to setup confirmation to remove file.\n */\n get: function () {\n return this.getPropertyValue(\"needConfirmRemoveFile\");\n },\n set: function (val) {\n this.setPropertyValue(\"needConfirmRemoveFile\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * The remove file confirmation message.\n */\n QuestionFileModel.prototype.getConfirmRemoveMessage = function (fileName) {\n return __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"confirmRemoveFile\")[\"format\"](fileName);\n };\n Object.defineProperty(QuestionFileModel.prototype, \"confirmRemoveAllMessage\", {\n /**\n * The remove all files confirmation message.\n */\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"confirmRemoveAllFiles\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"noFileChosenCaption\", {\n /**\n * The no file chosen caption for modern theme.\n */\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"noFileChosen\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"chooseButtonCaption\", {\n /**\n * The choose files button caption for modern theme.\n */\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"chooseFileCaption\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"cleanButtonCaption\", {\n /**\n * The clean files button caption.\n */\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"cleanCaption\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"removeFileCaption\", {\n /**\n * The remove file button caption.\n */\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"removeFileCaption\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionFileModel.prototype, \"inputTitle\", {\n /**\n * The input title value.\n */\n get: function () {\n if (this.isUploading)\n return __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"loadingFile\");\n if (this.isEmpty())\n return __WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"chooseFile\");\n return \" \";\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Clear value programmatically.\n */\n QuestionFileModel.prototype.clear = function (doneCallback) {\n var _this = this;\n this.survey.clearFiles(this.name, this.value, null, function (status, data) {\n if (status === \"success\") {\n _this.value = undefined;\n _this.errors = [];\n !!doneCallback && doneCallback();\n }\n });\n };\n /**\n * Remove file item programmatically.\n */\n QuestionFileModel.prototype.removeFile = function (content) {\n var _this = this;\n this.survey.clearFiles(this.name, this.value, content.name, function (status, data) {\n if (status === \"success\") {\n var oldValue = _this.value;\n if (Array.isArray(oldValue)) {\n _this.value = oldValue.filter(function (f) { return f.name !== content.name; });\n }\n else {\n _this.value = undefined;\n }\n }\n });\n };\n /**\n * Load multiple files programmatically.\n * @param files\n */\n QuestionFileModel.prototype.loadFiles = function (files) {\n var _this = this;\n if (!this.survey) {\n return;\n }\n this.errors = [];\n if (!this.allFilesOk(files)) {\n return;\n }\n this.stateChanged(\"loading\");\n var loadFilesProc = function () {\n var content = [];\n if (_this.storeDataAsText) {\n files.forEach(function (file) {\n var fileReader = new FileReader();\n fileReader.onload = function (e) {\n content = content.concat([\n { name: file.name, type: file.type, content: fileReader.result }\n ]);\n if (content.length === files.length) {\n _this.value = (_this.value || []).concat(content);\n }\n };\n fileReader.readAsDataURL(file);\n });\n }\n else {\n _this.survey.uploadFiles(_this.name, files, function (status, data) {\n if (status === \"error\") {\n _this.stateChanged(\"error\");\n }\n if (status === \"success\") {\n _this.value = (_this.value || []).concat(data.map(function (r) {\n return {\n name: r.file.name,\n type: r.file.type,\n content: r.content\n };\n }));\n }\n });\n }\n };\n if (this.allowMultiple) {\n loadFilesProc();\n }\n else {\n this.clear(loadFilesProc);\n }\n };\n QuestionFileModel.prototype.canPreviewImage = function (fileItem) {\n return this.allowImagesPreview && !!fileItem && this.isFileImage(fileItem);\n };\n QuestionFileModel.prototype.setQuestionValue = function (newValue) {\n var _this = this;\n _super.prototype.setQuestionValue.call(this, newValue);\n this.previewValue = [];\n var state = (!Array.isArray(newValue) && !!newValue) ||\n (Array.isArray(newValue) && newValue.length > 0)\n ? this.showPreview\n ? \"loading\"\n : \"loaded\"\n : \"empty\";\n this.stateChanged(state);\n if (!this.showPreview || !newValue)\n return;\n var newValues = Array.isArray(newValue)\n ? newValue\n : !!newValue\n ? [newValue]\n : [];\n if (this.storeDataAsText) {\n newValues.forEach(function (value) {\n var content = value.content || value;\n _this.previewValue = _this.previewValue.concat([\n {\n name: value.name,\n type: value.type,\n content: content\n }\n ]);\n });\n if (state === \"loading\")\n this.stateChanged(\"loaded\");\n }\n else {\n newValues.forEach(function (value) {\n var content = value.content || value;\n _this.survey.downloadFile(_this.name, value, function (status, data) {\n if (status === \"success\") {\n _this.previewValue = _this.previewValue.concat([\n {\n content: data,\n name: value.name,\n type: value.type\n }\n ]);\n if (_this.previewValue.length === newValues.length) {\n _this.stateChanged(\"loaded\");\n }\n }\n else {\n _this.stateChanged(\"error\");\n }\n });\n });\n }\n };\n QuestionFileModel.prototype.onCheckForErrors = function (errors) {\n _super.prototype.onCheckForErrors.call(this, errors);\n if (this.isUploading && this.waitForUpload) {\n errors.push(new __WEBPACK_IMPORTED_MODULE_5__error__[\"g\" /* UploadingFileError */](__WEBPACK_IMPORTED_MODULE_6__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"uploadingFile\"), this));\n }\n };\n QuestionFileModel.prototype.stateChanged = function (state) {\n if (state === \"loading\") {\n this.isUploading = true;\n }\n if (state === \"loaded\") {\n this.isUploading = false;\n }\n this.currentState = state;\n this.onStateChanged.fire(this, { state: state });\n };\n QuestionFileModel.prototype.allFilesOk = function (files) {\n var _this = this;\n var errorLength = this.errors ? this.errors.length : 0;\n (files || []).forEach(function (file) {\n if (_this.maxSize > 0 && file.size > _this.maxSize) {\n _this.errors.push(new __WEBPACK_IMPORTED_MODULE_5__error__[\"e\" /* ExceedSizeError */](_this.maxSize, _this));\n }\n });\n return errorLength === this.errors.length;\n };\n QuestionFileModel.prototype.isFileImage = function (file) {\n if (!file)\n return false;\n var imagePrefix = \"data:image\";\n var subStr = file.content && file.content.substr(0, imagePrefix.length);\n subStr = subStr && subStr.toLowerCase();\n var result = subStr === imagePrefix ||\n (!!file.type && file.type.toLowerCase().indexOf(\"image/\") === 0);\n return result;\n };\n QuestionFileModel.prototype.getPlainData = function (options) {\n if (options === void 0) { options = {\n includeEmpty: true\n }; }\n var questionPlainData = _super.prototype.getPlainData.call(this, options);\n if (!!questionPlainData && !this.isEmpty()) {\n questionPlainData.isNode = false;\n var values = Array.isArray(this.value) ? this.value : [this.value];\n questionPlainData.data = values.map(function (dataValue, index) {\n return {\n name: index,\n title: \"File\",\n value: (dataValue.content && dataValue.content) || dataValue,\n displayValue: (dataValue.name && dataValue.name) || dataValue,\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n },\n isNode: false\n };\n });\n }\n return questionPlainData;\n };\n return QuestionFileModel;\n}(__WEBPACK_IMPORTED_MODULE_1__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"file\", [\n { name: \"showPreview:boolean\", default: true },\n \"allowMultiple:boolean\",\n { name: \"allowImagesPreview:boolean\", default: true },\n \"imageHeight\",\n \"imageWidth\",\n \"acceptedTypes\",\n { name: \"storeDataAsText:boolean\", default: true },\n { name: \"waitForUpload:boolean\", default: false },\n \"maxSize:number\",\n { name: \"defaultValue\", visible: false },\n { name: \"correctAnswer\", visible: false },\n { name: \"validators\", visible: false },\n { name: \"needConfirmRemoveFile:boolean\", visible: true, default: false }\n], function () {\n return new QuestionFileModel(\"\");\n}, \"question\");\n__WEBPACK_IMPORTED_MODULE_3__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"file\", function (name) {\n return new QuestionFileModel(name);\n});\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__questionnonvalue__ = __webpack_require__(76);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__questionfactory__ = __webpack_require__(7);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionHtmlModel; });\n\n\n\n\n/**\n * A Model for html question. Unlike other questions it doesn't have value and title.\n */\nvar QuestionHtmlModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionHtmlModel, _super);\n function QuestionHtmlModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n var locHtml = _this.createLocalizableString(\"html\", _this);\n var self = _this;\n locHtml.onGetTextCallback = function (str) {\n return !!self.survey ? self.survey.processHtml(str) : str;\n };\n return _this;\n }\n QuestionHtmlModel.prototype.getType = function () {\n return \"html\";\n };\n Object.defineProperty(QuestionHtmlModel.prototype, \"html\", {\n /**\n * Set html to display it\n */\n get: function () {\n return this.getLocalizableStringText(\"html\", \"\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"html\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionHtmlModel.prototype, \"locHtml\", {\n get: function () {\n return this.getLocalizableString(\"html\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionHtmlModel.prototype, \"processedHtml\", {\n get: function () {\n return this.survey ? this.survey.processHtml(this.html) : this.html;\n },\n enumerable: true,\n configurable: true\n });\n return QuestionHtmlModel;\n}(__WEBPACK_IMPORTED_MODULE_1__questionnonvalue__[\"a\" /* QuestionNonValue */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"html\", [{ name: \"html:html\", serializationProperty: \"locHtml\" }], function () {\n return new QuestionHtmlModel(\"\");\n}, \"nonvalue\");\n__WEBPACK_IMPORTED_MODULE_3__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"html\", function (name) {\n return new QuestionHtmlModel(name);\n});\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question_baseselect__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__helpers__ = __webpack_require__(6);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionImagePickerModel; });\n\n\n\n\n\n/**\n * A Model for a select image question.\n */\nvar QuestionImagePickerModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionImagePickerModel, _super);\n function QuestionImagePickerModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.colCount = 0;\n return _this;\n }\n QuestionImagePickerModel.prototype.getType = function () {\n return \"imagepicker\";\n };\n QuestionImagePickerModel.prototype.supportGoNextPageAutomatic = function () {\n return true;\n };\n QuestionImagePickerModel.prototype.getItemValueType = function () {\n return \"imageitemvalue\";\n };\n Object.defineProperty(QuestionImagePickerModel.prototype, \"multiSelect\", {\n /**\n * Multi select option. If set to true, then allows to select multiple images.\n */\n get: function () {\n return this.getPropertyValue(\"multiSelect\", false);\n },\n set: function (newValue) {\n this.setPropertyValue(\"multiSelect\", newValue);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns true if item is checked\n * @param item image picker item value\n */\n QuestionImagePickerModel.prototype.isItemSelected = function (item) {\n var val = this.renderedValue;\n if (__WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isValueEmpty(val))\n return false;\n if (!this.multiSelect)\n return __WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isTwoValueEquals(val, item.value);\n if (!Array.isArray(val))\n return false;\n for (var i = 0; i < val.length; i++) {\n if (__WEBPACK_IMPORTED_MODULE_4__helpers__[\"a\" /* Helpers */].isTwoValueEquals(val[i], item.value))\n return true;\n }\n return false;\n };\n QuestionImagePickerModel.prototype.clearIncorrectValues = function () {\n if (this.multiSelect) {\n var val = this.value;\n if (!val)\n return;\n if (!Array.isArray(val) || val.length == 0) {\n this.clearValue();\n return;\n }\n var newValue = [];\n for (var i = 0; i < val.length; i++) {\n if (!this.hasUnknownValue(val[i], true)) {\n newValue.push(val[i]);\n }\n }\n if (newValue.length == val.length)\n return;\n if (newValue.length == 0) {\n this.clearValue();\n }\n else {\n this.value = newValue;\n }\n }\n else {\n _super.prototype.clearIncorrectValues.call(this);\n }\n };\n Object.defineProperty(QuestionImagePickerModel.prototype, \"showLabel\", {\n /**\n * Show label under the image.\n */\n get: function () {\n return this.getPropertyValue(\"showLabel\", false);\n },\n set: function (newValue) {\n this.setPropertyValue(\"showLabel\", newValue);\n },\n enumerable: true,\n configurable: true\n });\n QuestionImagePickerModel.prototype.getValueCore = function () {\n var value = _super.prototype.getValueCore.call(this);\n if (value !== undefined) {\n return value;\n }\n if (this.multiSelect) {\n return [];\n }\n return value;\n };\n Object.defineProperty(QuestionImagePickerModel.prototype, \"imageHeight\", {\n /**\n * The image height.\n */\n get: function () {\n return this.getPropertyValue(\"imageHeight\");\n },\n set: function (val) {\n this.setPropertyValue(\"imageHeight\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionImagePickerModel.prototype, \"imageWidth\", {\n /**\n * The image width.\n */\n get: function () {\n return this.getPropertyValue(\"imageWidth\");\n },\n set: function (val) {\n this.setPropertyValue(\"imageWidth\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionImagePickerModel.prototype, \"imageFit\", {\n /**\n * The image fit mode.\n */\n get: function () {\n return this.getPropertyValue(\"imageFit\");\n },\n set: function (val) {\n this.setPropertyValue(\"imageFit\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionImagePickerModel.prototype, \"contentMode\", {\n /**\n * The content mode.\n */\n get: function () {\n return this.getPropertyValue(\"contentMode\");\n },\n set: function (val) {\n this.setPropertyValue(\"contentMode\", val);\n if (val === \"video\") {\n this.showLabel = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n return QuestionImagePickerModel;\n}(__WEBPACK_IMPORTED_MODULE_3__question_baseselect__[\"a\" /* QuestionCheckboxBase */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"imageitemvalue\", [], undefined, \"itemvalue\");\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addProperty(\"imageitemvalue\", {\n name: \"imageLink\"\n});\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"imagepicker\", [\n { name: \"hasOther\", visible: false },\n { name: \"otherText\", visible: false },\n { name: \"optionsCaption\", visible: false },\n { name: \"otherErrorText\", visible: false },\n { name: \"storeOthersAsComment\", visible: false },\n {\n name: \"contentMode\",\n default: \"image\",\n choices: [\"image\", \"video\"]\n },\n {\n name: \"imageFit\",\n default: \"contain\",\n choices: [\"none\", \"contain\", \"cover\", \"fill\"]\n },\n { name: \"imageHeight:number\", default: 150, minValue: 0 },\n { name: \"imageWidth:number\", default: 200, minValue: 0 }\n], function () {\n return new QuestionImagePickerModel(\"\");\n}, \"checkboxbase\");\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addProperty(\"imagepicker\", {\n name: \"showLabel:boolean\",\n default: false\n});\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addProperty(\"imagepicker\", {\n name: \"colCount:number\",\n default: 0,\n choices: [0, 1, 2, 3, 4, 5]\n});\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addProperty(\"imagepicker\", {\n name: \"multiSelect:boolean\",\n default: false\n});\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addProperty(\"imagepicker\", {\n name: \"choices:imageitemvalue[]\"\n});\n__WEBPACK_IMPORTED_MODULE_2__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"imagepicker\", function (name) {\n var q = new QuestionImagePickerModel(name);\n //q.choices = QuestionFactory.DefaultChoices;\n return q;\n});\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__itemvalue__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__martixBase__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__localizablestring__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__question_dropdown__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MatrixRowModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return MartrixCells; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return QuestionMatrixModel; });\n\n\n\n\n\n\n\n\n\n\n\nvar MatrixRowModel = /** @class */ (function () {\n function MatrixRowModel(item, fullName, data, value) {\n this.fullName = fullName;\n this.item = item;\n this.data = data;\n this.rowValue = value;\n }\n Object.defineProperty(MatrixRowModel.prototype, \"name\", {\n get: function () {\n return this.item.value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixRowModel.prototype, \"text\", {\n get: function () {\n return this.item.text;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixRowModel.prototype, \"locText\", {\n get: function () {\n return this.item.locText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixRowModel.prototype, \"value\", {\n get: function () {\n return this.rowValue;\n },\n set: function (newValue) {\n this.rowValue = newValue;\n if (this.data)\n this.data.onMatrixRowChanged(this);\n this.onValueChanged();\n },\n enumerable: true,\n configurable: true\n });\n MatrixRowModel.prototype.onValueChanged = function () { };\n return MatrixRowModel;\n}());\n\nvar MartrixCells = /** @class */ (function () {\n function MartrixCells(cellsOwner) {\n this.cellsOwner = cellsOwner;\n this.values = {};\n }\n Object.defineProperty(MartrixCells.prototype, \"isEmpty\", {\n get: function () {\n return Object.keys(this.values).length == 0;\n },\n enumerable: true,\n configurable: true\n });\n MartrixCells.prototype.setCellText = function (row, column, val) {\n row = this.getCellRowColumnValue(row, this.rows);\n column = this.getCellRowColumnValue(column, this.columns);\n if (!row || !column)\n return;\n if (val) {\n if (!this.values[row])\n this.values[row] = {};\n if (!this.values[row][column])\n this.values[row][column] = this.createString();\n this.values[row][column].text = val;\n }\n else {\n if (this.values[row] && this.values[row][column]) {\n var loc = this.values[row][column];\n loc.text = \"\";\n if (loc.isEmpty) {\n delete this.values[row][column];\n if (Object.keys(this.values[row]).length == 0) {\n delete this.values[row];\n }\n }\n }\n }\n };\n MartrixCells.prototype.setDefaultCellText = function (column, val) {\n this.setCellText(__WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].matrixDefaultRowName, column, val);\n };\n MartrixCells.prototype.getCellLocText = function (row, column) {\n row = this.getCellRowColumnValue(row, this.rows);\n column = this.getCellRowColumnValue(column, this.columns);\n if (!row || !column)\n return null;\n if (!this.values[row])\n return null;\n if (!this.values[row][column])\n return null;\n return this.values[row][column];\n };\n MartrixCells.prototype.getDefaultCellLocText = function (column, val) {\n return this.getCellLocText(__WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].matrixDefaultRowName, column);\n };\n MartrixCells.prototype.getCellDisplayLocText = function (row, column) {\n var cellText = this.getCellLocText(row, column);\n if (cellText && !cellText.isEmpty)\n return cellText;\n cellText = this.getCellLocText(__WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].matrixDefaultRowName, column);\n if (cellText && !cellText.isEmpty)\n return cellText;\n if (typeof column == \"number\") {\n column =\n column >= 0 && column < this.columns.length\n ? this.columns[column]\n : null;\n }\n if (column && column.locText)\n return column.locText;\n return null;\n };\n MartrixCells.prototype.getCellText = function (row, column) {\n var loc = this.getCellLocText(row, column);\n return loc ? loc.calculatedText : null;\n };\n MartrixCells.prototype.getDefaultCellText = function (column) {\n var loc = this.getCellLocText(__WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].matrixDefaultRowName, column);\n return loc ? loc.calculatedText : null;\n };\n MartrixCells.prototype.getCellDisplayText = function (row, column) {\n var loc = this.getCellDisplayLocText(row, column);\n return loc ? loc.calculatedText : null;\n };\n Object.defineProperty(MartrixCells.prototype, \"rows\", {\n get: function () {\n return this.cellsOwner ? this.cellsOwner.getRows() : [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MartrixCells.prototype, \"columns\", {\n get: function () {\n return this.cellsOwner ? this.cellsOwner.getColumns() : [];\n },\n enumerable: true,\n configurable: true\n });\n MartrixCells.prototype.getCellRowColumnValue = function (val, values) {\n if (typeof val == \"number\") {\n if (val < 0 || val >= values.length)\n return null;\n val = values[val].value;\n }\n if (val.value)\n return val.value;\n return val;\n };\n MartrixCells.prototype.getJson = function () {\n if (this.isEmpty)\n return null;\n var res = {};\n for (var row in this.values) {\n var resRow = {};\n var rowValues = this.values[row];\n for (var col in rowValues) {\n resRow[col] = rowValues[col].getJson();\n }\n res[row] = resRow;\n }\n return res;\n };\n MartrixCells.prototype.setJson = function (value) {\n this.values = {};\n if (!value)\n return;\n for (var row in value) {\n if (row == \"pos\")\n continue;\n var rowValues = value[row];\n this.values[row] = {};\n for (var col in rowValues) {\n if (col == \"pos\")\n continue;\n var loc = this.createString();\n loc.setJson(rowValues[col]);\n this.values[row][col] = loc;\n }\n }\n };\n MartrixCells.prototype.createString = function () {\n return new __WEBPACK_IMPORTED_MODULE_8__localizablestring__[\"a\" /* LocalizableString */](this.cellsOwner, true);\n };\n return MartrixCells;\n}());\n\n/**\n * A Model for a simple matrix question.\n */\nvar QuestionMatrixModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionMatrixModel, _super);\n function QuestionMatrixModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.isRowChanging = false;\n _this.emptyLocalizableString = new __WEBPACK_IMPORTED_MODULE_8__localizablestring__[\"a\" /* LocalizableString */](_this);\n _this.cellsValue = new MartrixCells(_this);\n var self = _this;\n _this.registerFunctionOnPropertyValueChanged(\"columns\", function () {\n self.onColumnsChanged();\n });\n _this.registerFunctionOnPropertyValueChanged(\"rows\", function () {\n if (!self.filterItems()) {\n self.onRowsChanged();\n }\n });\n return _this;\n }\n QuestionMatrixModel.prototype.getType = function () {\n return \"matrix\";\n };\n Object.defineProperty(QuestionMatrixModel.prototype, \"isAllRowRequired\", {\n /**\n * Set this property to true, if you want a user to answer all rows.\n */\n get: function () {\n return this.getPropertyValue(\"isAllRowRequired\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isAllRowRequired\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixModel.prototype, \"hasRows\", {\n /**\n * Returns true, if there is at least one row.\n */\n get: function () {\n return this.rows.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixModel.prototype, \"rowsOrder\", {\n /**\n * Use this property to render items in a specific order: \"random\" or \"initial\". Default is \"initial\".\n */\n get: function () {\n return this.getPropertyValue(\"rowsOrder\");\n },\n set: function (val) {\n val = val.toLowerCase();\n if (val == this.rowsOrder)\n return;\n this.setPropertyValue(\"rowsOrder\", val);\n this.onRowsChanged();\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixModel.prototype.getRows = function () {\n return this.rows;\n };\n QuestionMatrixModel.prototype.getColumns = function () {\n return this.visibleColumns;\n };\n QuestionMatrixModel.prototype.getQuizQuestionCount = function () {\n var res = 0;\n for (var i = 0; i < this.rows.length; i++) {\n if (!this.isValueEmpty(this.correctAnswer[this.rows[i].value]))\n res++;\n }\n return res;\n };\n QuestionMatrixModel.prototype.getCorrectAnswerCount = function () {\n var res = 0;\n var value = this.value;\n for (var i = 0; i < this.rows.length; i++) {\n var row = this.rows[i].value;\n if (!__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(value[row]) &&\n __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isTwoValueEquals(this.correctAnswer[row], value[row]))\n res++;\n }\n return res;\n };\n QuestionMatrixModel.prototype.getVisibleRows = function () {\n var result = new Array();\n var val = this.value;\n if (!val)\n val = {};\n var rows = !!this.filteredRows ? this.filteredRows : this.rows;\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n if (this.isValueEmpty(row.value))\n continue;\n result.push(this.createMatrixRow(row, this.id + \"_\" + row.value.toString().replace(/\\s/g, \"_\"), val[row.value]));\n }\n if (result.length == 0 && !this.filteredRows) {\n result.push(this.createMatrixRow(new __WEBPACK_IMPORTED_MODULE_2__itemvalue__[\"a\" /* ItemValue */](null), this.name.replace(/\\s/g, \"_\"), val));\n }\n this.generatedVisibleRows = result;\n return result;\n };\n QuestionMatrixModel.prototype.sortVisibleRows = function (array) {\n var order = this.rowsOrder.toLowerCase();\n if (order === \"random\")\n return __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].randomizeArray(array);\n return array;\n };\n QuestionMatrixModel.prototype.endLoadingFromJson = function () {\n _super.prototype.endLoadingFromJson.call(this);\n this.rows = this.sortVisibleRows(this.rows);\n };\n QuestionMatrixModel.prototype.processRowsOnSet = function (newRows) {\n return this.sortVisibleRows(newRows);\n };\n Object.defineProperty(QuestionMatrixModel.prototype, \"visibleRows\", {\n /**\n * Returns the list of visible rows as model objects.\n * @see rowsVisibleIf\n */\n get: function () {\n return this.getVisibleRows();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixModel.prototype, \"cells\", {\n get: function () {\n return this.cellsValue;\n },\n set: function (value) {\n this.cells.setJson(value && value.getJson ? value.getJson() : null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixModel.prototype, \"hasCellText\", {\n get: function () {\n return !this.cells.isEmpty;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixModel.prototype.setCellText = function (row, column, val) {\n this.cells.setCellText(row, column, val);\n };\n QuestionMatrixModel.prototype.getCellText = function (row, column) {\n return this.cells.getCellText(row, column);\n };\n QuestionMatrixModel.prototype.setDefaultCellText = function (column, val) {\n this.cells.setDefaultCellText(column, val);\n };\n QuestionMatrixModel.prototype.getDefaultCellText = function (column) {\n return this.cells.getDefaultCellText(column);\n };\n QuestionMatrixModel.prototype.getCellDisplayText = function (row, column) {\n return this.cells.getCellDisplayText(row, column);\n };\n QuestionMatrixModel.prototype.getCellDisplayLocText = function (row, column) {\n var loc = this.cells.getCellDisplayLocText(row, column);\n return loc ? loc : this.emptyLocalizableString;\n };\n QuestionMatrixModel.prototype.supportGoNextPageAutomatic = function () {\n return this.hasValuesInAllRows();\n };\n QuestionMatrixModel.prototype.onCheckForErrors = function (errors) {\n _super.prototype.onCheckForErrors.call(this, errors);\n if (this.hasErrorInRows()) {\n errors.push(new __WEBPACK_IMPORTED_MODULE_6__error__[\"i\" /* RequiredInAllRowsError */](null, this));\n }\n };\n QuestionMatrixModel.prototype.hasErrorInRows = function () {\n if (!this.isAllRowRequired)\n return false;\n return !this.hasValuesInAllRows();\n };\n QuestionMatrixModel.prototype.hasValuesInAllRows = function () {\n var rows = this.generatedVisibleRows;\n if (!rows)\n rows = this.visibleRows;\n if (!rows)\n return true;\n for (var i = 0; i < rows.length; i++) {\n var val = rows[i].value;\n if (!val)\n return false;\n }\n return true;\n };\n QuestionMatrixModel.prototype.getIsAnswered = function () {\n return _super.prototype.getIsAnswered.call(this) && this.hasValuesInAllRows();\n };\n QuestionMatrixModel.prototype.createMatrixRow = function (item, fullName, value) {\n return new MatrixRowModel(item, fullName, this, value);\n };\n QuestionMatrixModel.prototype.setQuestionValue = function (newValue) {\n _super.prototype.setQuestionValue.call(this, newValue);\n if (this.isRowChanging ||\n !this.generatedVisibleRows ||\n this.generatedVisibleRows.length == 0)\n return;\n this.isRowChanging = true;\n var val = this.value;\n if (!val)\n val = {};\n if (this.rows.length == 0) {\n this.generatedVisibleRows[0].value = val;\n }\n else {\n for (var i = 0; i < this.generatedVisibleRows.length; i++) {\n var row = this.generatedVisibleRows[i];\n var rowVal = val[row.name] ? val[row.name] : null;\n this.generatedVisibleRows[i].value = rowVal;\n }\n }\n this.isRowChanging = false;\n };\n QuestionMatrixModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n var res = {};\n for (var key in value) {\n var newKey = keysAsText\n ? __WEBPACK_IMPORTED_MODULE_2__itemvalue__[\"a\" /* ItemValue */].getTextOrHtmlByValue(this.rows, key)\n : key;\n if (!newKey)\n newKey = key;\n var newValue = __WEBPACK_IMPORTED_MODULE_2__itemvalue__[\"a\" /* ItemValue */].getTextOrHtmlByValue(this.columns, value[key]);\n if (!newValue)\n newValue = value[key];\n res[newKey] = newValue;\n }\n return res;\n };\n QuestionMatrixModel.prototype.getPlainData = function (options) {\n var _this = this;\n if (options === void 0) { options = {\n includeEmpty: true\n }; }\n var questionPlainData = _super.prototype.getPlainData.call(this, options);\n if (!!questionPlainData) {\n var values = this.createValueCopy();\n questionPlainData.isNode = true;\n questionPlainData.data = Object.keys(values || {}).map(function (rowName) {\n var row = _this.rows.filter(function (r) { return r.value === rowName; })[0];\n var rowDataItem = {\n name: rowName,\n title: !!row ? row.text : \"row\",\n value: values[rowName],\n displayValue: __WEBPACK_IMPORTED_MODULE_2__itemvalue__[\"a\" /* ItemValue */].getTextOrHtmlByValue(_this.visibleColumns, values[rowName]),\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n },\n isNode: false\n };\n var item = __WEBPACK_IMPORTED_MODULE_2__itemvalue__[\"a\" /* ItemValue */].getItemByValue(_this.visibleColumns, values[rowName]);\n if (!!item) {\n (options.calculations || []).forEach(function (calculation) {\n rowDataItem[calculation.propertyName] =\n item[calculation.propertyName];\n });\n }\n return rowDataItem;\n });\n }\n return questionPlainData;\n };\n QuestionMatrixModel.prototype.addConditionNames = function (names) {\n for (var i = 0; i < this.rows.length; i++) {\n if (this.rows[i].value) {\n names.push(this.name + \".\" + this.rows[i].value);\n }\n }\n };\n QuestionMatrixModel.prototype.addConditionObjectsByContext = function (objects, context) {\n for (var i = 0; i < this.rows.length; i++) {\n var row = this.rows[i];\n if (!!row.value) {\n objects.push({\n name: this.name + \".\" + row.value,\n text: this.processedTitle + \".\" + row.calculatedText,\n question: this\n });\n }\n }\n };\n QuestionMatrixModel.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n if (!path)\n return _super.prototype.getConditionJson.call(this);\n var question = new __WEBPACK_IMPORTED_MODULE_9__question_dropdown__[\"a\" /* QuestionDropdownModel */](path);\n question.choices = this.columns;\n var json = new __WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"b\" /* JsonObject */]().toJsonObject(question);\n json[\"type\"] = question.getType();\n return json;\n };\n QuestionMatrixModel.prototype.clearValueIfInvisible = function () {\n _super.prototype.clearValueIfInvisible.call(this);\n if (this.hasRows) {\n this.clearInvisibleValuesInRows();\n }\n };\n QuestionMatrixModel.prototype.getFirstInputElementId = function () {\n var rows = this.generatedVisibleRows;\n if (!rows)\n rows = this.visibleRows;\n if (rows.length > 0 && this.visibleColumns.length > 0) {\n return this.inputId + \"_\" + rows[0].name + \"_\" + 0;\n }\n return _super.prototype.getFirstInputElementId.call(this);\n };\n //IMatrixData\n QuestionMatrixModel.prototype.onMatrixRowChanged = function (row) {\n if (this.isRowChanging)\n return;\n this.isRowChanging = true;\n if (!this.hasRows) {\n this.setNewValue(row.value);\n }\n else {\n var newValue = this.value;\n if (!newValue) {\n newValue = {};\n }\n newValue[row.name] = row.value;\n this.setNewValue(newValue);\n }\n this.isRowChanging = false;\n };\n return QuestionMatrixModel;\n}(__WEBPACK_IMPORTED_MODULE_3__martixBase__[\"a\" /* QuestionMatrixBaseModel */]));\n\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"matrix\", [\n {\n name: \"columns:itemvalue[]\",\n baseValue: function () {\n return __WEBPACK_IMPORTED_MODULE_5__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"matrix_column\");\n }\n },\n {\n name: \"rows:itemvalue[]\",\n baseValue: function () {\n return __WEBPACK_IMPORTED_MODULE_5__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"matrix_row\");\n }\n },\n { name: \"cells:cells\", serializationProperty: \"cells\" },\n {\n name: \"rowsOrder\",\n default: \"initial\",\n choices: [\"initial\", \"random\"]\n },\n \"isAllRowRequired:boolean\"\n], function () {\n return new QuestionMatrixModel(\"\");\n}, \"matrixbase\");\n__WEBPACK_IMPORTED_MODULE_7__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"matrix\", function (name) {\n var q = new QuestionMatrixModel(name);\n q.rows = __WEBPACK_IMPORTED_MODULE_7__questionfactory__[\"a\" /* QuestionFactory */].DefaultRows;\n q.columns = __WEBPACK_IMPORTED_MODULE_7__questionfactory__[\"a\" /* QuestionFactory */].DefaultColums;\n return q;\n});\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__ = __webpack_require__(24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__itemvalue__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__questionfactory__ = __webpack_require__(7);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MatrixDropdownRowModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return QuestionMatrixDropdownModel; });\n\n\n\n\n\nvar MatrixDropdownRowModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixDropdownRowModel, _super);\n function MatrixDropdownRowModel(name, item, data, value) {\n var _this = _super.call(this, data, value) || this;\n _this.name = name;\n _this.item = item;\n _this.buildCells(value);\n return _this;\n }\n Object.defineProperty(MatrixDropdownRowModel.prototype, \"rowName\", {\n get: function () {\n return this.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownRowModel.prototype, \"text\", {\n get: function () {\n return this.item.text;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatrixDropdownRowModel.prototype, \"locText\", {\n get: function () {\n return this.item.locText;\n },\n enumerable: true,\n configurable: true\n });\n return MatrixDropdownRowModel;\n}(__WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__[\"d\" /* MatrixDropdownRowModelBase */]));\n\n/**\n * A Model for a matrix dropdown question. You may use a dropdown, checkbox, radiogroup, text and comment questions as a cell editors.\n */\nvar QuestionMatrixDropdownModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionMatrixDropdownModel, _super);\n function QuestionMatrixDropdownModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.createLocalizableString(\"totalText\", _this, true);\n var self = _this;\n _this.registerFunctionOnPropertyValueChanged(\"rows\", function () {\n self.generatedVisibleRows = null;\n self.filterItems();\n });\n return _this;\n }\n QuestionMatrixDropdownModel.prototype.getType = function () {\n return \"matrixdropdown\";\n };\n Object.defineProperty(QuestionMatrixDropdownModel.prototype, \"totalText\", {\n /**\n * Set this property to show it on the first column for the total row.\n */\n get: function () {\n return this.getLocalizableStringText(\"totalText\", \"\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"totalText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDropdownModel.prototype, \"locTotalText\", {\n get: function () {\n return this.getLocalizableString(\"totalText\");\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDropdownModel.prototype.getFooterText = function () {\n return this.locTotalText;\n };\n QuestionMatrixDropdownModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n var values = this.createValueCopy();\n if (!values)\n return values;\n var rows = this.visibleRows;\n var res = {};\n for (var i = 0; i < rows.length; i++) {\n var rowValue = this.rows[i].value;\n var val = values[rowValue];\n if (!val)\n continue;\n if (keysAsText) {\n var displayRowValue = __WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getTextOrHtmlByValue(this.rows, rowValue);\n if (!!displayRowValue) {\n rowValue = displayRowValue;\n }\n }\n res[rowValue] = this.getRowDisplayValue(rows[i], val);\n }\n return values;\n };\n QuestionMatrixDropdownModel.prototype.addConditionNames = function (names) {\n for (var i = 0; i < this.rows.length; i++) {\n if (!this.rows[i].value)\n continue;\n var prefix = this.name + \".\" + this.rows[i].value + \".\";\n for (var j = 0; j < this.columns.length; j++) {\n names.push(prefix + this.columns[j].name);\n }\n }\n };\n QuestionMatrixDropdownModel.prototype.addConditionObjectsByContext = function (objects, context) {\n var hasContext = !!context ? this.columns.indexOf(context) > -1 : false;\n for (var i = 0; i < this.rows.length; i++) {\n var row = this.rows[i];\n if (!row.value)\n continue;\n var prefixName = this.name + \".\" + row.value + \".\";\n var prefixTitle = this.processedTitle + \".\" + row.calculatedText + \".\";\n for (var j = 0; j < this.columns.length; j++) {\n var column = this.columns[j];\n objects.push({\n name: prefixName + column.name,\n text: prefixTitle + column.fullTitle,\n question: this\n });\n }\n }\n if (hasContext) {\n for (var i = 0; i < this.columns.length; i++) {\n var column = this.columns[i];\n if (column == context)\n continue;\n objects.push({\n name: \"row.\" + column.name,\n text: \"row.\" + column.fullTitle,\n question: this\n });\n }\n }\n };\n QuestionMatrixDropdownModel.prototype.clearIncorrectValues = function () {\n var val = this.value;\n if (!val)\n return;\n var newVal = null;\n var isChanged = false;\n var rows = !!this.filteredRows ? this.filteredRows : this.rows;\n for (var key in val) {\n if (__WEBPACK_IMPORTED_MODULE_3__itemvalue__[\"a\" /* ItemValue */].getItemByValue(rows, key)) {\n if (newVal == null)\n newVal = {};\n newVal[key] = val[key];\n }\n else {\n isChanged = true;\n }\n }\n if (isChanged) {\n this.value = newVal;\n }\n _super.prototype.clearIncorrectValues.call(this);\n };\n QuestionMatrixDropdownModel.prototype.clearValueIfInvisible = function () {\n _super.prototype.clearValueIfInvisible.call(this);\n this.clearInvisibleValuesInRows();\n };\n QuestionMatrixDropdownModel.prototype.generateRows = function () {\n var result = new Array();\n var rows = !!this.filteredRows ? this.filteredRows : this.rows;\n if (!rows || rows.length === 0)\n return result;\n var val = this.value;\n if (!val)\n val = {};\n for (var i = 0; i < rows.length; i++) {\n if (!rows[i].value)\n continue;\n result.push(this.createMatrixRow(rows[i], val[rows[i].value]));\n }\n return result;\n };\n QuestionMatrixDropdownModel.prototype.createMatrixRow = function (item, value) {\n return new MatrixDropdownRowModel(item.value, item, this, value);\n };\n return QuestionMatrixDropdownModel;\n}(__WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__[\"e\" /* QuestionMatrixDropdownModelBase */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"matrixdropdown\", [\n {\n name: \"rows:itemvalue[]\"\n },\n \"rowsVisibleIf:condition\",\n { name: \"totalText\", serializationProperty: \"locTotalText\" }\n], function () {\n return new QuestionMatrixDropdownModel(\"\");\n}, \"matrixdropdownbase\");\n__WEBPACK_IMPORTED_MODULE_4__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"matrixdropdown\", function (name) {\n var q = new QuestionMatrixDropdownModel(name);\n q.choices = [1, 2, 3, 4, 5];\n q.rows = __WEBPACK_IMPORTED_MODULE_4__questionfactory__[\"a\" /* QuestionFactory */].DefaultColums;\n __WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__[\"e\" /* QuestionMatrixDropdownModelBase */].addDefaultColumns(q);\n return q;\n});\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__ = __webpack_require__(24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MatrixDynamicRowModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return QuestionMatrixDynamicModel; });\n\n\n\n\n\n\n\n\nvar MatrixDynamicRowModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MatrixDynamicRowModel, _super);\n function MatrixDynamicRowModel(index, data, value) {\n var _this = _super.call(this, data, value) || this;\n _this.index = index;\n _this.buildCells(value);\n return _this;\n }\n Object.defineProperty(MatrixDynamicRowModel.prototype, \"rowName\", {\n get: function () {\n return this.id;\n },\n enumerable: true,\n configurable: true\n });\n return MatrixDynamicRowModel;\n}(__WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__[\"d\" /* MatrixDropdownRowModelBase */]));\n\n/**\n * A Model for a matrix dymanic question. You may use a dropdown, checkbox, radiogroup, text and comment questions as a cell editors.\n * An end-user may dynamically add/remove rows, unlike in matrix dropdown question.\n */\nvar QuestionMatrixDynamicModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionMatrixDynamicModel, _super);\n function QuestionMatrixDynamicModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.rowCounter = 0;\n _this.rowCountValue = 2;\n _this.createLocalizableString(\"confirmDeleteText\", _this);\n _this.createLocalizableString(\"keyDuplicationError\", _this);\n _this.createLocalizableString(\"addRowText\", _this);\n _this.createLocalizableString(\"removeRowText\", _this);\n return _this;\n }\n QuestionMatrixDynamicModel.prototype.getType = function () {\n return \"matrixdynamic\";\n };\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"isRowsDynamic\", {\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"confirmDelete\", {\n /**\n * Set it to true, to show a confirmation dialog on removing a row\n * @see ConfirmDeleteText\n */\n get: function () {\n return this.getPropertyValue(\"confirmDelete\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"confirmDelete\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"keyName\", {\n /**\n * Set it to a column name and the library shows duplication error, if there are same values in different rows in the column.\n * @see keyDuplicationError\n */\n get: function () {\n return this.getPropertyValue(\"keyName\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"keyName\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"defaultRowValue\", {\n /**\n * If it is not empty, then this value is set to every new row, including rows created initially, unless the defaultValue is not empty\n * @see defaultValue\n * @see defaultValueFromLastRow\n */\n get: function () {\n return this.getPropertyValue(\"defaultRowValue\");\n },\n set: function (val) {\n this.setPropertyValue(\"defaultRowValue\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"defaultValueFromLastRow\", {\n /**\n * Set it to true to copy the value into new added row from the last row. If defaultRowValue is set and this property equals to true,\n * then the value for new added row is merging.\n * @see defaultValue\n * @see defaultRowValue\n */\n get: function () {\n return this.getPropertyValue(\"defaultValueFromLastRow\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"defaultValueFromLastRow\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDynamicModel.prototype.isDefaultValueEmpty = function () {\n return (_super.prototype.isDefaultValueEmpty.call(this) && this.isValueEmpty(this.defaultRowValue));\n };\n QuestionMatrixDynamicModel.prototype.setDefaultValue = function () {\n if (this.isValueEmpty(this.defaultRowValue) ||\n !this.isValueEmpty(this.defaultValue)) {\n _super.prototype.setDefaultValue.call(this);\n return;\n }\n if (!this.isEmpty() || this.rowCount == 0)\n return;\n var newValue = [];\n for (var i = 0; i < this.rowCount; i++) {\n newValue.push(this.defaultRowValue);\n }\n this.value = newValue;\n };\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"rowCount\", {\n /**\n * The number of rows in the matrix.\n * @see minRowCount\n * @see maxRowCount\n */\n get: function () {\n return this.rowCountValue;\n },\n set: function (val) {\n if (val < 0 || val > __WEBPACK_IMPORTED_MODULE_7__settings__[\"a\" /* settings */].matrixMaximumRowCount)\n return;\n var prevValue = this.rowCountValue;\n this.rowCountValue = val;\n if (this.value && this.value.length > val) {\n var qVal = this.value;\n qVal.splice(val);\n this.value = qVal;\n }\n if (this.isLoadingFromJson)\n return;\n if (this.generatedVisibleRows) {\n this.generatedVisibleRows.splice(val);\n for (var i = prevValue; i < val; i++) {\n var newRow = this.createMatrixRow(null);\n this.generatedVisibleRows.push(newRow);\n this.onMatrixRowCreated(newRow);\n }\n }\n this.onRowsChanged();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"minRowCount\", {\n /**\n * The minimum row count. A user could not delete a row if the rowCount equals to minRowCount\n * @see rowCount\n * @see maxRowCount\n */\n get: function () {\n return this.getPropertyValue(\"minRowCount\", 0);\n },\n set: function (val) {\n if (val < 0)\n val = 0;\n this.setPropertyValue(\"minRowCount\", val);\n if (val > this.maxRowCount)\n this.maxRowCount = val;\n if (this.rowCount < val)\n this.rowCount = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"maxRowCount\", {\n /**\n * The maximum row count. A user could not add a row if the rowCount equals to maxRowCount\n * @see rowCount\n * @see minRowCount\n */\n get: function () {\n return this.getPropertyValue(\"maxRowCount\", __WEBPACK_IMPORTED_MODULE_7__settings__[\"a\" /* settings */].matrixMaximumRowCount);\n },\n set: function (val) {\n if (val <= 0)\n return;\n if (val > __WEBPACK_IMPORTED_MODULE_7__settings__[\"a\" /* settings */].matrixMaximumRowCount)\n val = __WEBPACK_IMPORTED_MODULE_7__settings__[\"a\" /* settings */].matrixMaximumRowCount;\n if (val == this.maxRowCount)\n return;\n this.setPropertyValue(\"maxRowCount\", val);\n if (val < this.minRowCount)\n this.minRowCount = val;\n if (this.rowCount > val)\n this.rowCount = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"canAddRow\", {\n /**\n * Returns true, if a new row can be added.\n * @see maxRowCount\n * @see canRemoveRows\n * @see rowCount\n */\n get: function () {\n return !this.isReadOnly && this.rowCount < this.maxRowCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"canRemoveRows\", {\n /**\n * Returns true, if row can be removed.\n * @see minRowCount\n * @see canAddRow\n * @see rowCount\n */\n get: function () {\n return !this.isReadOnly && this.rowCount > this.minRowCount;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDynamicModel.prototype.canRemoveRow = function (row) {\n if (!this.survey)\n return true;\n return this.survey.matrixAllowRemoveRow(this, row.index, row);\n };\n /**\n * Creates and add a new row.\n */\n QuestionMatrixDynamicModel.prototype.addRow = function () {\n var options = { question: this, canAddRow: this.canAddRow };\n if (!!this.survey) {\n this.survey.matrixBeforeRowAdded(options);\n }\n if (!options.canAddRow)\n return;\n this.onStartRowAddingRemoving();\n this.addRowCore();\n this.onEndRowAdding();\n };\n QuestionMatrixDynamicModel.prototype.hasRowsAsItems = function () {\n return false;\n };\n QuestionMatrixDynamicModel.prototype.addRowCore = function () {\n var prevRowCount = this.rowCount;\n this.rowCount = this.rowCount + 1;\n var defaultValue = this.getDefaultRowValue(true);\n var newValue = null;\n if (!this.isValueEmpty(defaultValue)) {\n newValue = this.createNewValue();\n if (newValue.length == this.rowCount) {\n newValue[newValue.length - 1] = defaultValue;\n this.value = newValue;\n }\n }\n if (this.data) {\n this.runCellsCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());\n var row = this.visibleRows[this.rowCount - 1];\n if (!__WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isValueEmpty(row.value)) {\n if (!newValue) {\n newValue = this.createNewValue();\n }\n if (!__WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isTwoValueEquals(newValue[newValue.length - 1], row.value)) {\n newValue[newValue.length - 1] = row.value;\n this.value = newValue;\n }\n }\n }\n if (this.survey) {\n if (prevRowCount + 1 == this.rowCount) {\n this.survey.matrixRowAdded(this);\n this.onRowsChanged();\n }\n }\n };\n QuestionMatrixDynamicModel.prototype.getDefaultRowValue = function (isRowAdded) {\n var res = null;\n for (var i = 0; i < this.columns.length; i++) {\n var q = this.columns[i].templateQuestion;\n if (!!q && !this.isValueEmpty(q.getDefaultValue())) {\n res = res || {};\n res[this.columns[i].name] = q.getDefaultValue();\n }\n }\n if (!this.isValueEmpty(this.defaultRowValue)) {\n for (var key in this.defaultRowValue) {\n res = res || {};\n res[key] = this.defaultRowValue[key];\n }\n }\n if (isRowAdded && this.defaultValueFromLastRow) {\n var val = this.value;\n if (!!val && Array.isArray(val) && val.length >= this.rowCount - 1) {\n var rowValue = val[this.rowCount - 2];\n for (var key in rowValue) {\n res = res || {};\n res[key] = rowValue[key];\n }\n }\n }\n return res;\n };\n /**\n * Removes a row by it's index. If confirmDelete is true, show a confirmation dialog\n * @param index a row index, from 0 to rowCount - 1\n * @see removeRow\n * @see confirmDelete\n */\n QuestionMatrixDynamicModel.prototype.removeRowUI = function (value) {\n if (!!value && !!value.rowName) {\n var index = this.visibleRows.indexOf(value);\n if (index < 0)\n return;\n value = index;\n }\n if (!this.isRequireConfirmOnRowDelete(value) ||\n confirm(this.confirmDeleteText)) {\n this.removeRow(value);\n }\n };\n QuestionMatrixDynamicModel.prototype.isRequireConfirmOnRowDelete = function (index) {\n if (!this.confirmDelete)\n return false;\n if (index < 0 || index >= this.rowCount)\n return false;\n var value = this.createNewValue();\n if (__WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isValueEmpty(value) || !Array.isArray(value))\n return false;\n if (index >= value.length)\n return false;\n return !__WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isValueEmpty(value[index]);\n };\n /**\n * Removes a row by it's index.\n * @param index a row index, from 0 to rowCount - 1\n */\n QuestionMatrixDynamicModel.prototype.removeRow = function (index) {\n if (!this.canRemoveRows)\n return;\n if (index < 0 || index >= this.rowCount)\n return;\n this.onStartRowAddingRemoving();\n this.removeRowCore(index);\n this.onEndRowRemoving(index);\n };\n QuestionMatrixDynamicModel.prototype.removeRowCore = function (index) {\n if (this.survey) {\n var row = this.generatedVisibleRows\n ? this.generatedVisibleRows[index]\n : null;\n this.survey.matrixRowRemoved(this, index, row);\n }\n if (this.generatedVisibleRows && index < this.generatedVisibleRows.length) {\n this.generatedVisibleRows.splice(index, 1);\n }\n this.rowCountValue--;\n if (this.value) {\n var val = [];\n if (Array.isArray(this.value) && index < this.value.length) {\n val = this.createValueCopy();\n }\n else {\n val = this.createNewValue();\n }\n val.splice(index, 1);\n val = this.deleteRowValue(val, null);\n this.isRowChanging = true;\n this.value = val;\n this.isRowChanging = false;\n }\n this.onRowsChanged();\n };\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"confirmDeleteText\", {\n /**\n * Use this property to change the default text showing in the confirmation delete dialog on removing a row.\n */\n get: function () {\n return this.getLocalizableStringText(\"confirmDeleteText\", __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"confirmDelete\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"confirmDeleteText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"locConfirmDeleteText\", {\n get: function () {\n return this.getLocalizableString(\"confirmDeleteText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"keyDuplicationError\", {\n /**\n * The duplication value error text. Set it to show the text different from the default.\n * @see keyName\n */\n get: function () {\n return this.getLocalizableStringText(\"keyDuplicationError\", __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"keyDuplicationError\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"keyDuplicationError\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"locKeyDuplicationError\", {\n get: function () {\n return this.getLocalizableString(\"keyDuplicationError\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"addRowText\", {\n /**\n * Use this property to change the default value of add row button text.\n */\n get: function () {\n var defaultLocName = this.isColumnLayoutHorizontal ? \"addRow\" : \"addColumn\";\n return this.getLocalizableStringText(\"addRowText\", __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(defaultLocName));\n },\n set: function (val) {\n this.setLocalizableStringText(\"addRowText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"locAddRowText\", {\n get: function () {\n return this.getLocalizableString(\"addRowText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"addRowLocation\", {\n /**\n * By default the 'Add Row' button is shown on bottom if columnLayout is horizontal and on top if columnLayout is vertical.
\n * You may set it to \"top\", \"bottom\" or \"topBottom\" (to show on top and bottom).\n * @see columnLayout\n */\n get: function () {\n return this.getPropertyValue(\"addRowLocation\");\n },\n set: function (val) {\n this.setPropertyValue(\"addRowLocation\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"isAddRowOnTop\", {\n get: function () {\n if (!this.canAddRow)\n return false;\n if (this.addRowLocation === \"default\")\n return this.columnLayout === \"vertical\";\n return this.addRowLocation !== \"bottom\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"isAddRowOnBottom\", {\n get: function () {\n if (!this.canAddRow)\n return false;\n if (this.addRowLocation === \"default\")\n return this.columnLayout === \"horizontal\";\n return this.addRowLocation !== \"top\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"removeRowText\", {\n /**\n * Use this property to change the default value of remove row button text.\n */\n get: function () {\n return this.getLocalizableStringText(\"removeRowText\", __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"removeRow\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"removeRowText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"locRemoveRowText\", {\n get: function () {\n return this.getLocalizableString(\"removeRowText\");\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDynamicModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n var values = this.createValueCopy();\n if (!values || !Array.isArray(values))\n return values;\n var rows = this.visibleRows;\n for (var i = 0; i < rows.length && i < values.length; i++) {\n var val = values[i];\n if (!val)\n continue;\n values[i] = this.getRowDisplayValue(rows[i], val);\n }\n return values;\n };\n QuestionMatrixDynamicModel.prototype.addConditionNames = function (names) {\n for (var i = 0; i < this.columns.length; i++) {\n names.push(this.name + \"[0].\" + this.columns[i].name);\n }\n };\n QuestionMatrixDynamicModel.prototype.addConditionObjectsByContext = function (objects, context) {\n var hasContext = !!context ? this.columns.indexOf(context) > -1 : false;\n for (var i = 0; i < this.columns.length; i++) {\n var column = this.columns[i];\n objects.push({\n name: this.name + \"[0].\" + column.name,\n text: this.processedTitle + \"[0].\" + column.fullTitle,\n question: this\n });\n if (hasContext && column != context) {\n objects.push({\n name: \"row.\" + column.name,\n text: \"row.\" + column.fullTitle,\n question: this\n });\n }\n }\n };\n QuestionMatrixDynamicModel.prototype.supportGoNextPageAutomatic = function () {\n return false;\n };\n Object.defineProperty(QuestionMatrixDynamicModel.prototype, \"hasRowText\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMatrixDynamicModel.prototype.onCheckForErrors = function (errors) {\n _super.prototype.onCheckForErrors.call(this, errors);\n if (this.hasErrorInRows()) {\n errors.push(new __WEBPACK_IMPORTED_MODULE_5__error__[\"j\" /* MinRowCountError */](this.minRowCount, this));\n }\n };\n QuestionMatrixDynamicModel.prototype.hasErrors = function (fireCallback, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (rec === void 0) { rec = null; }\n var prevValue = _super.prototype.hasErrors.call(this, fireCallback);\n var isDuplicated = this.isValueDuplicated();\n return isDuplicated || prevValue;\n };\n QuestionMatrixDynamicModel.prototype.hasErrorInRows = function () {\n if (this.minRowCount <= 0 || !this.generatedVisibleRows)\n return false;\n var res = false;\n var setRowCount = 0;\n for (var rowIndex = 0; rowIndex < this.generatedVisibleRows.length; rowIndex++) {\n var row = this.generatedVisibleRows[rowIndex];\n if (!row.isEmpty)\n setRowCount++;\n }\n return setRowCount < this.minRowCount;\n };\n QuestionMatrixDynamicModel.prototype.isValueDuplicated = function () {\n if (!this.keyName || !this.generatedVisibleRows)\n return false;\n var column = this.getColumnByName(this.keyName);\n if (!column)\n return false;\n var keyValues = [];\n var res = false;\n for (var i = 0; i < this.generatedVisibleRows.length; i++) {\n res =\n this.isValueDuplicatedInRow(this.generatedVisibleRows[i], column, keyValues) || res;\n }\n return res;\n };\n QuestionMatrixDynamicModel.prototype.isValueDuplicatedInRow = function (row, column, keyValues) {\n var question = row.getQuestionByColumn(column);\n if (!question || question.isEmpty())\n return false;\n var value = question.value;\n for (var i = 0; i < keyValues.length; i++) {\n if (value == keyValues[i]) {\n question.addError(new __WEBPACK_IMPORTED_MODULE_5__error__[\"f\" /* KeyDuplicationError */](this.keyDuplicationError, this));\n return true;\n }\n }\n keyValues.push(value);\n return false;\n };\n QuestionMatrixDynamicModel.prototype.generateRows = function () {\n var result = new Array();\n if (this.rowCount === 0)\n return result;\n var val = this.createNewValue();\n for (var i = 0; i < this.rowCount; i++) {\n result.push(this.createMatrixRow(this.getRowValueByIndex(val, i)));\n }\n if (!this.isValueEmpty(this.getDefaultRowValue(false))) {\n this.value = val;\n }\n return result;\n };\n QuestionMatrixDynamicModel.prototype.createMatrixRow = function (value) {\n return new MatrixDynamicRowModel(this.rowCounter++, this, value);\n };\n QuestionMatrixDynamicModel.prototype.onBeforeValueChanged = function (val) {\n var newRowCount = val && Array.isArray(val) ? val.length : 0;\n if (newRowCount <= this.rowCount)\n return;\n this.rowCountValue = newRowCount;\n if (this.generatedVisibleRows) {\n this.generatedVisibleRows = null;\n this.generatedVisibleRows = this.visibleRows;\n this.onRowsChanged();\n }\n };\n QuestionMatrixDynamicModel.prototype.createNewValue = function () {\n var result = this.createValueCopy();\n if (!result || !Array.isArray(result))\n result = [];\n if (result.length > this.rowCount)\n result.splice(this.rowCount);\n var rowValue = this.getDefaultRowValue(false);\n rowValue = rowValue || {};\n for (var i = result.length; i < this.rowCount; i++) {\n result.push(__WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].getUnbindValue(rowValue));\n }\n return result;\n };\n QuestionMatrixDynamicModel.prototype.deleteRowValue = function (newValue, row) {\n var isEmpty = true;\n for (var i = 0; i < newValue.length; i++) {\n if (this.isObject(newValue[i]) && Object.keys(newValue[i]).length > 0) {\n isEmpty = false;\n break;\n }\n }\n return isEmpty ? null : newValue;\n };\n QuestionMatrixDynamicModel.prototype.getRowValueByIndex = function (questionValue, index) {\n return index >= 0 && index < questionValue.length\n ? questionValue[index]\n : null;\n };\n QuestionMatrixDynamicModel.prototype.getRowValueCore = function (row, questionValue, create) {\n if (create === void 0) { create = false; }\n if (!this.generatedVisibleRows)\n return {};\n var res = this.getRowValueByIndex(questionValue, this.generatedVisibleRows.indexOf(row));\n if (!res && create)\n res = {};\n return res;\n };\n return QuestionMatrixDynamicModel;\n}(__WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__[\"e\" /* QuestionMatrixDropdownModelBase */]));\n\n__WEBPACK_IMPORTED_MODULE_2__jsonobject__[\"c\" /* Serializer */].addClass(\"matrixdynamic\", [\n { name: \"rowsVisibleIf:condition\", visible: false },\n { name: \"rowCount:number\", default: 2, minValue: 0 },\n { name: \"minRowCount:number\", default: 0, minValue: 0 },\n {\n name: \"maxRowCount:number\",\n default: __WEBPACK_IMPORTED_MODULE_7__settings__[\"a\" /* settings */].matrixMaximumRowCount\n },\n { name: \"keyName\" },\n {\n name: \"keyDuplicationError\",\n serializationProperty: \"locKeyDuplicationError\"\n },\n \"defaultRowValue:rowvalue\",\n \"defaultValueFromLastRow:boolean\",\n { name: \"confirmDelete:boolean\" },\n {\n name: \"confirmDeleteText\",\n serializationProperty: \"locConfirmDeleteText\"\n },\n {\n name: \"addRowLocation\",\n default: \"default\",\n choices: [\"default\", \"top\", \"bottom\", \"topBottom\"]\n },\n { name: \"addRowText\", serializationProperty: \"locAddRowText\" },\n { name: \"removeRowText\", serializationProperty: \"locRemoveRowText\" }\n], function () {\n return new QuestionMatrixDynamicModel(\"\");\n}, \"matrixdropdownbase\");\n__WEBPACK_IMPORTED_MODULE_3__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"matrixdynamic\", function (name) {\n var q = new QuestionMatrixDynamicModel(name);\n q.choices = [1, 2, 3, 4, 5];\n __WEBPACK_IMPORTED_MODULE_1__question_matrixdropdownbase__[\"e\" /* QuestionMatrixDropdownModelBase */].addDefaultColumns(q);\n return q;\n});\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question_text__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__helpers__ = __webpack_require__(6);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MultipleTextItemModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return QuestionMultipleTextModel; });\n\n\n\n\n\n\n\nvar MultipleTextItemModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(MultipleTextItemModel, _super);\n function MultipleTextItemModel(name, title) {\n if (name === void 0) { name = null; }\n if (title === void 0) { title = null; }\n var _this = _super.call(this) || this;\n _this.editorValue = _this.createEditor(name);\n _this.editor.questionTitleTemplateCallback = function () {\n return \"\";\n };\n _this.editor.titleLocation = \"left\";\n if (title) {\n _this.title = title;\n }\n return _this;\n }\n MultipleTextItemModel.prototype.getType = function () {\n return \"multipletextitem\";\n };\n Object.defineProperty(MultipleTextItemModel.prototype, \"id\", {\n get: function () {\n return this.editor.id;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"name\", {\n /**\n * The item name.\n */\n get: function () {\n return this.editor.name;\n },\n set: function (val) {\n this.editor.name = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"editor\", {\n get: function () {\n return this.editorValue;\n },\n enumerable: true,\n configurable: true\n });\n MultipleTextItemModel.prototype.createEditor = function (name) {\n return new __WEBPACK_IMPORTED_MODULE_3__question_text__[\"a\" /* QuestionTextModel */](name);\n };\n MultipleTextItemModel.prototype.addUsedLocales = function (locales) {\n _super.prototype.addUsedLocales.call(this, locales);\n this.editor.addUsedLocales(locales);\n };\n MultipleTextItemModel.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n this.editor.locStrsChanged();\n };\n MultipleTextItemModel.prototype.setData = function (data) {\n this.data = data;\n if (!!data) {\n this.editor.defaultValue = data.getItemDefaultValue(this.name);\n this.editor.setSurveyImpl(this);\n this.editor.parent = data;\n }\n };\n Object.defineProperty(MultipleTextItemModel.prototype, \"isRequired\", {\n /**\n * Set this property to true, to make the item a required. If a user doesn't fill the item then a validation error will be generated.\n */\n get: function () {\n return this.editor.isRequired;\n },\n set: function (val) {\n this.editor.isRequired = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"inputType\", {\n /**\n * Use this property to change the default input type.\n */\n get: function () {\n return this.editor.inputType;\n },\n set: function (val) {\n this.editor.inputType = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"title\", {\n /**\n * Item title. If it is empty, the item name is rendered as title. This property supports markdown.\n * @see name\n */\n get: function () {\n return this.editor.title;\n },\n set: function (val) {\n this.editor.title = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"locTitle\", {\n get: function () {\n return this.editor.locTitle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"fullTitle\", {\n /**\n * Returns the text or html for rendering the title.\n */\n get: function () {\n return this.editor.fullTitle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"maxLength\", {\n /**\n * The maximim text length. If it is -1, defaul value, then the survey maxTextLength property will be used.\n * If it is 0, then the value is unlimited\n * @see SurveyModel.maxTextLength\n */\n get: function () {\n return this.editor.maxLength;\n },\n set: function (val) {\n this.editor.maxLength = val;\n },\n enumerable: true,\n configurable: true\n });\n MultipleTextItemModel.prototype.getMaxLength = function () {\n var survey = this.getSurvey();\n return __WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].getMaxLength(this.maxLength, survey ? survey.maxTextLength : -1);\n };\n Object.defineProperty(MultipleTextItemModel.prototype, \"placeHolder\", {\n /**\n * The input place holder.\n */\n get: function () {\n return this.editor.placeHolder;\n },\n set: function (val) {\n this.editor.placeHolder = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"locPlaceHolder\", {\n get: function () {\n return this.editor.locPlaceHolder;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"requiredErrorText\", {\n /**\n * The custom text that will be shown on required error. Use this property, if you do not want to show the default text.\n */\n get: function () {\n return this.editor.requiredErrorText;\n },\n set: function (val) {\n this.editor.requiredErrorText = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"locRequiredErrorText\", {\n get: function () {\n return this.editor.locRequiredErrorText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultipleTextItemModel.prototype, \"validators\", {\n /**\n * The list of question validators.\n */\n get: function () {\n return this.editor.validators;\n },\n set: function (val) {\n this.editor.validators = val;\n },\n enumerable: true,\n configurable: true\n });\n MultipleTextItemModel.prototype.getValidators = function () {\n return this.validators;\n };\n Object.defineProperty(MultipleTextItemModel.prototype, \"value\", {\n /**\n * The item value.\n */\n get: function () {\n return this.data ? this.data.getMultipleTextValue(this.name) : null;\n },\n set: function (value) {\n if (this.data != null) {\n this.data.setMultipleTextValue(this.name, value);\n }\n },\n enumerable: true,\n configurable: true\n });\n MultipleTextItemModel.prototype.isEmpty = function () {\n return __WEBPACK_IMPORTED_MODULE_6__helpers__[\"a\" /* Helpers */].isValueEmpty(this.value);\n };\n MultipleTextItemModel.prototype.onValueChanged = function (newValue) {\n if (this.valueChangedCallback)\n this.valueChangedCallback(newValue);\n };\n //ISurveyImpl\n MultipleTextItemModel.prototype.geSurveyData = function () {\n return this;\n };\n MultipleTextItemModel.prototype.getSurvey = function () {\n return this.data ? this.data.getSurvey() : null;\n };\n MultipleTextItemModel.prototype.getTextProcessor = function () {\n return this.data ? this.data.getTextProcessor() : null;\n };\n //ISurveyData\n MultipleTextItemModel.prototype.getValue = function (name) {\n if (!this.data)\n return null;\n return this.data.getMultipleTextValue(name);\n };\n MultipleTextItemModel.prototype.setValue = function (name, value) {\n if (this.data) {\n this.data.setMultipleTextValue(name, value);\n }\n };\n MultipleTextItemModel.prototype.getVariable = function (name) {\n return undefined;\n };\n MultipleTextItemModel.prototype.setVariable = function (name, newValue) { };\n MultipleTextItemModel.prototype.getComment = function (name) {\n return null;\n };\n MultipleTextItemModel.prototype.setComment = function (name, newValue) { };\n MultipleTextItemModel.prototype.getAllValues = function () {\n if (this.data)\n return this.data.getAllValues();\n return this.value;\n };\n MultipleTextItemModel.prototype.getFilteredValues = function () {\n return this.getAllValues();\n };\n MultipleTextItemModel.prototype.getFilteredProperties = function () {\n return { survey: this.getSurvey() };\n };\n //IValidatorOwner\n MultipleTextItemModel.prototype.getValidatorTitle = function () {\n return this.title;\n };\n Object.defineProperty(MultipleTextItemModel.prototype, \"validatedValue\", {\n get: function () {\n return this.value;\n },\n set: function (val) {\n this.value = val;\n },\n enumerable: true,\n configurable: true\n });\n MultipleTextItemModel.prototype.getDataFilteredValues = function () {\n return this.getFilteredValues();\n };\n MultipleTextItemModel.prototype.getDataFilteredProperties = function () {\n return this.getFilteredProperties();\n };\n return MultipleTextItemModel;\n}(__WEBPACK_IMPORTED_MODULE_1__base__[\"a\" /* Base */]));\n\n/**\n * A Model for a multiple text question.\n */\nvar QuestionMultipleTextModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionMultipleTextModel, _super);\n function QuestionMultipleTextModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.isMultipleItemValueChanging = false;\n var self = _this;\n _this.items = _this.createNewArray(\"items\", function (item) {\n item.setData(self);\n });\n _this.registerFunctionOnPropertyValueChanged(\"items\", function () {\n self.fireCallback(self.colCountChangedCallback);\n });\n _this.registerFunctionOnPropertyValueChanged(\"colCount\", function () {\n self.fireCallback(self.colCountChangedCallback);\n });\n return _this;\n }\n QuestionMultipleTextModel.prototype.getType = function () {\n return \"multipletext\";\n };\n QuestionMultipleTextModel.prototype.setSurveyImpl = function (value) {\n _super.prototype.setSurveyImpl.call(this, value);\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].setData(this);\n }\n };\n Object.defineProperty(QuestionMultipleTextModel.prototype, \"isAllowTitleLeft\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n QuestionMultipleTextModel.prototype.onSurveyLoad = function () {\n this.editorsOnSurveyLoad();\n _super.prototype.onSurveyLoad.call(this);\n this.fireCallback(this.colCountChangedCallback);\n };\n QuestionMultipleTextModel.prototype.setQuestionValue = function (newValue) {\n _super.prototype.setQuestionValue.call(this, newValue, false);\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n if (item.editor)\n item.editor.updateValueFromSurvey(item.value);\n }\n this.updateIsAnswered();\n };\n QuestionMultipleTextModel.prototype.onSurveyValueChanged = function (newValue) {\n _super.prototype.onSurveyValueChanged.call(this, newValue);\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n if (item.editor)\n item.editor.onSurveyValueChanged(item.value);\n }\n };\n QuestionMultipleTextModel.prototype.editorsOnSurveyLoad = function () {\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n if (item.editor) {\n item.editor.onSurveyLoad();\n }\n }\n };\n Object.defineProperty(QuestionMultipleTextModel.prototype, \"items\", {\n /**\n * The list of input items.\n */\n get: function () {\n return this.getPropertyValue(\"items\");\n },\n set: function (val) {\n this.setPropertyValue(\"items\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Add a new text item.\n * @param name a item name\n * @param title a item title (optional)\n */\n QuestionMultipleTextModel.prototype.addItem = function (name, title) {\n if (title === void 0) { title = null; }\n var item = this.createTextItem(name, title);\n this.items.push(item);\n return item;\n };\n QuestionMultipleTextModel.prototype.getItemByName = function (name) {\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i].name == name)\n return this.items[i];\n }\n return null;\n };\n QuestionMultipleTextModel.prototype.addConditionNames = function (names) {\n for (var i = 0; i < this.items.length; i++) {\n names.push(this.name + \".\" + this.items[i].name);\n }\n };\n QuestionMultipleTextModel.prototype.addConditionObjectsByContext = function (objects, context) {\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n objects.push({\n name: this.name + \".\" + item.name,\n text: this.processedTitle + \".\" + item.fullTitle,\n question: this\n });\n }\n };\n QuestionMultipleTextModel.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n if (!path)\n return _super.prototype.getConditionJson.call(this);\n var item = this.getItemByName(path);\n if (!item)\n return null;\n var json = new __WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"b\" /* JsonObject */]().toJsonObject(item);\n json[\"type\"] = \"text\";\n return json;\n };\n QuestionMultipleTextModel.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].locStrsChanged();\n }\n };\n QuestionMultipleTextModel.prototype.supportGoNextPageAutomatic = function () {\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i].isEmpty())\n return false;\n }\n return true;\n };\n Object.defineProperty(QuestionMultipleTextModel.prototype, \"colCount\", {\n /**\n * The number of columns. Items are rendred in one line if the value is 0.\n */\n get: function () {\n return this.getPropertyValue(\"colCount\");\n },\n set: function (val) {\n if (val < 1 || val > 5)\n return;\n this.setPropertyValue(\"colCount\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionMultipleTextModel.prototype, \"itemSize\", {\n /**\n * The default text input size.\n */\n get: function () {\n return this.getPropertyValue(\"itemSize\");\n },\n set: function (val) {\n this.setPropertyValue(\"itemSize\", val);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the list of rendered rows.\n */\n QuestionMultipleTextModel.prototype.getRows = function () {\n var colCount = this.colCount;\n var items = this.items;\n var rows = [];\n var index = 0;\n for (var i = 0; i < items.length; i++) {\n if (index == 0) {\n rows.push([]);\n }\n rows[rows.length - 1].push(items[i]);\n index++;\n if (index >= colCount) {\n index = 0;\n }\n }\n return rows;\n };\n QuestionMultipleTextModel.prototype.onValueChanged = function () {\n _super.prototype.onValueChanged.call(this);\n this.onItemValueChanged();\n };\n QuestionMultipleTextModel.prototype.createTextItem = function (name, title) {\n return new MultipleTextItemModel(name, title);\n };\n QuestionMultipleTextModel.prototype.onItemValueChanged = function () {\n if (this.isMultipleItemValueChanging)\n return;\n for (var i = 0; i < this.items.length; i++) {\n var itemValue = null;\n if (this.value && this.items[i].name in this.value) {\n itemValue = this.value[this.items[i].name];\n }\n this.items[i].onValueChanged(itemValue);\n }\n };\n QuestionMultipleTextModel.prototype.getIsRunningValidators = function () {\n if (_super.prototype.getIsRunningValidators.call(this))\n return true;\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i].editor.isRunningValidators)\n return true;\n }\n return false;\n };\n QuestionMultipleTextModel.prototype.hasErrors = function (fireCallback, rec) {\n var _this = this;\n if (fireCallback === void 0) { fireCallback = true; }\n if (rec === void 0) { rec = null; }\n var res = false;\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].editor.onCompletedAsyncValidators = function (hasErrors) {\n _this.raiseOnCompletedAsyncValidators();\n };\n res = this.items[i].editor.hasErrors(fireCallback) || res;\n }\n return _super.prototype.hasErrors.call(this, fireCallback) || res;\n };\n QuestionMultipleTextModel.prototype.getAllErrors = function () {\n var result = _super.prototype.getAllErrors.call(this);\n for (var i = 0; i < this.items.length; i++) {\n var errors = this.items[i].editor.getAllErrors();\n if (errors && errors.length > 0) {\n result = result.concat(errors);\n }\n }\n return result;\n };\n QuestionMultipleTextModel.prototype.clearErrors = function () {\n _super.prototype.clearErrors.call(this);\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].editor.clearErrors();\n }\n };\n QuestionMultipleTextModel.prototype.getContainsErrors = function () {\n var res = _super.prototype.getContainsErrors.call(this);\n if (res)\n return res;\n var items = this.items;\n for (var i = 0; i < items.length; i++) {\n if (items[i].editor.containsErrors)\n return true;\n }\n return false;\n };\n QuestionMultipleTextModel.prototype.getIsAnswered = function () {\n if (!_super.prototype.getIsAnswered.call(this))\n return false;\n for (var i = 0; i < this.items.length; i++) {\n var editor = this.items[i].editor;\n if (editor.isVisible && !editor.isAnswered)\n return false;\n }\n return true;\n };\n //IMultipleTextData\n QuestionMultipleTextModel.prototype.getMultipleTextValue = function (name) {\n if (!this.value)\n return null;\n return this.value[name];\n };\n QuestionMultipleTextModel.prototype.setMultipleTextValue = function (name, value) {\n this.isMultipleItemValueChanging = true;\n var newValue = this.value;\n if (!newValue) {\n newValue = {};\n }\n newValue[name] = value;\n this.setNewValue(newValue);\n this.isMultipleItemValueChanging = false;\n };\n QuestionMultipleTextModel.prototype.getItemDefaultValue = function (name) {\n return !!this.defaultValue ? this.defaultValue[name] : null;\n };\n QuestionMultipleTextModel.prototype.getSurvey = function () {\n return this.survey;\n };\n QuestionMultipleTextModel.prototype.getTextProcessor = function () {\n return this.textProcessor;\n };\n QuestionMultipleTextModel.prototype.getAllValues = function () {\n return this.data ? this.data.getAllValues() : null;\n };\n QuestionMultipleTextModel.prototype.getIsRequiredText = function () {\n return this.survey ? this.survey.requiredText : \"\";\n };\n //IPanel\n QuestionMultipleTextModel.prototype.addElement = function (element, index) { };\n QuestionMultipleTextModel.prototype.removeElement = function (element) {\n return false;\n };\n QuestionMultipleTextModel.prototype.getQuestionTitleLocation = function () {\n return \"left\";\n };\n QuestionMultipleTextModel.prototype.getChildrenLayoutType = function () {\n return \"row\";\n };\n QuestionMultipleTextModel.prototype.elementWidthChanged = function (el) { };\n Object.defineProperty(QuestionMultipleTextModel.prototype, \"elements\", {\n get: function () {\n return [];\n },\n enumerable: true,\n configurable: true\n });\n QuestionMultipleTextModel.prototype.indexOf = function (el) {\n return -1;\n };\n return QuestionMultipleTextModel;\n}(__WEBPACK_IMPORTED_MODULE_2__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"multipletextitem\", [\n \"name\",\n \"isRequired:boolean\",\n { name: \"placeHolder\", serializationProperty: \"locPlaceHolder\" },\n {\n name: \"inputType\",\n default: \"text\",\n choices: [\n \"color\",\n \"date\",\n \"datetime\",\n \"datetime-local\",\n \"email\",\n \"month\",\n \"number\",\n \"password\",\n \"range\",\n \"tel\",\n \"text\",\n \"time\",\n \"url\",\n \"week\"\n ]\n },\n { name: \"title\", serializationProperty: \"locTitle\" },\n { name: \"maxLength:number\", default: -1 },\n {\n name: \"requiredErrorText:text\",\n serializationProperty: \"locRequiredErrorText\"\n },\n {\n name: \"validators:validators\",\n baseClassName: \"surveyvalidator\",\n classNamePart: \"validator\"\n }\n], function () {\n return new MultipleTextItemModel(\"\");\n});\n__WEBPACK_IMPORTED_MODULE_4__jsonobject__[\"c\" /* Serializer */].addClass(\"multipletext\", [\n { name: \"!items:textitems\", className: \"multipletextitem\" },\n { name: \"itemSize:number\", default: 25, minValue: 0 },\n { name: \"colCount:number\", default: 1, choices: [1, 2, 3, 4, 5] }\n], function () {\n return new QuestionMultipleTextModel(\"\");\n}, \"question\");\n__WEBPACK_IMPORTED_MODULE_5__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"multipletext\", function (name) {\n var q = new QuestionMultipleTextModel(name);\n q.addItem(\"text1\");\n q.addItem(\"text2\");\n return q;\n});\n\n\n/***/ }),\n/* 171 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__textPreProcessor__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__conditionProcessValue__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__panel__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__error__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return QuestionPanelDynamicItem; });\n/* unused harmony export QuestionPanelDynamicTemplateSurveyImpl */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionPanelDynamicModel; });\n\n\n\n\n\n\n\n\n\n\n\nvar QuestionPanelDynamicItem = /** @class */ (function () {\n function QuestionPanelDynamicItem(data, panel) {\n this.data = data;\n this.panelValue = panel;\n var self = this;\n this.textPreProcessor = new __WEBPACK_IMPORTED_MODULE_3__textPreProcessor__[\"a\" /* TextPreProcessor */]();\n this.textPreProcessor.onProcess = function (textValue) {\n self.getProcessedTextValue(textValue);\n };\n this.setSurveyImpl();\n }\n Object.defineProperty(QuestionPanelDynamicItem.prototype, \"panel\", {\n get: function () {\n return this.panelValue;\n },\n enumerable: true,\n configurable: true\n });\n QuestionPanelDynamicItem.prototype.setSurveyImpl = function () {\n this.panel.setSurveyImpl(this);\n };\n QuestionPanelDynamicItem.prototype.getValue = function (name) {\n var values = this.getAllValues();\n return values[name];\n };\n QuestionPanelDynamicItem.prototype.setValue = function (name, newValue) {\n this.data.setPanelItemData(this, name, newValue);\n };\n QuestionPanelDynamicItem.prototype.getVariable = function (name) {\n return undefined;\n };\n QuestionPanelDynamicItem.prototype.setVariable = function (name, newValue) { };\n QuestionPanelDynamicItem.prototype.getComment = function (name) {\n var result = this.getValue(name + __WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].commentPrefix);\n return result ? result : \"\";\n };\n QuestionPanelDynamicItem.prototype.setComment = function (name, newValue, locNotification) {\n this.setValue(name + __WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].commentPrefix, newValue);\n };\n QuestionPanelDynamicItem.prototype.getAllValues = function () {\n return this.data.getPanelItemData(this);\n };\n QuestionPanelDynamicItem.prototype.getFilteredValues = function () {\n var values = {};\n var surveyValues = !!this.data && !!this.data.getRootData()\n ? this.data.getRootData().getFilteredValues()\n : {};\n for (var key in surveyValues) {\n values[key] = surveyValues[key];\n }\n values[QuestionPanelDynamicItem.ItemVariableName] = this.getAllValues();\n return values;\n };\n QuestionPanelDynamicItem.prototype.getFilteredProperties = function () {\n if (!!this.data && !!this.data.getRootData())\n return this.data.getRootData().getFilteredProperties();\n return { survey: this.getSurvey() };\n };\n QuestionPanelDynamicItem.prototype.geSurveyData = function () {\n return this;\n };\n QuestionPanelDynamicItem.prototype.getSurvey = function () {\n return this.data ? this.data.getSurvey() : null;\n };\n QuestionPanelDynamicItem.prototype.getTextProcessor = function () {\n return this;\n };\n //ITextProcessor\n QuestionPanelDynamicItem.prototype.getProcessedTextValue = function (textValue) {\n if (!textValue)\n return;\n var panelIndex = !!this.data ? this.data.getItemIndex(this) : -1;\n if (textValue.name == QuestionPanelDynamicItem.IndexVariableName) {\n textValue.isExists = true;\n textValue.value = panelIndex + 1;\n return;\n }\n var firstName = new __WEBPACK_IMPORTED_MODULE_4__conditionProcessValue__[\"a\" /* ProcessValue */]().getFirstName(textValue.name);\n textValue.isExists = firstName == QuestionPanelDynamicItem.ItemVariableName;\n textValue.canProcess = textValue.isExists;\n if (!textValue.canProcess)\n return;\n //name should start with the panel\n textValue.name = textValue.name.replace(QuestionPanelDynamicItem.ItemVariableName + \".\", \"\");\n var firstName = new __WEBPACK_IMPORTED_MODULE_4__conditionProcessValue__[\"a\" /* ProcessValue */]().getFirstName(textValue.name);\n var question = this.panel.getQuestionByValueName(firstName);\n if (!question && panelIndex > -1) {\n question = this.data.getSharedQuestionFromArray(firstName, panelIndex);\n }\n var values = {};\n if (question) {\n values[firstName] = textValue.returnDisplayValue\n ? question.displayValue\n : question.value;\n }\n else {\n var allValues = this.getAllValues();\n if (allValues) {\n values[firstName] = allValues[firstName];\n }\n }\n textValue.value = new __WEBPACK_IMPORTED_MODULE_4__conditionProcessValue__[\"a\" /* ProcessValue */]().getValue(textValue.name, values);\n };\n QuestionPanelDynamicItem.prototype.processText = function (text, returnDisplayValue) {\n text = this.textPreProcessor.process(text, returnDisplayValue);\n var survey = this.getSurvey();\n return survey ? survey.processText(text, returnDisplayValue) : text;\n };\n QuestionPanelDynamicItem.prototype.processTextEx = function (text, returnDisplayValue) {\n text = this.processText(text, returnDisplayValue);\n var hasAllValuesOnLastRun = this.textPreProcessor.hasAllValuesOnLastRun;\n var res = { hasAllValuesOnLastRun: true, text: text };\n if (this.getSurvey()) {\n res = this.getSurvey().processTextEx(text, returnDisplayValue, false);\n }\n res.hasAllValuesOnLastRun =\n res.hasAllValuesOnLastRun && hasAllValuesOnLastRun;\n return res;\n };\n QuestionPanelDynamicItem.ItemVariableName = \"panel\";\n QuestionPanelDynamicItem.IndexVariableName = \"panelIndex\";\n return QuestionPanelDynamicItem;\n}());\n\nvar QuestionPanelDynamicTemplateSurveyImpl = /** @class */ (function () {\n function QuestionPanelDynamicTemplateSurveyImpl(data) {\n this.data = data;\n }\n QuestionPanelDynamicTemplateSurveyImpl.prototype.geSurveyData = function () {\n return null;\n };\n QuestionPanelDynamicTemplateSurveyImpl.prototype.getSurvey = function () {\n return this.data.getSurvey();\n };\n QuestionPanelDynamicTemplateSurveyImpl.prototype.getTextProcessor = function () {\n return null;\n };\n return QuestionPanelDynamicTemplateSurveyImpl;\n}());\n\n/**\n * A Model for a panel dymanic question. You setup the template panel, but adding elements (any question or a panel) and assign a text to it's title, and this panel will be used as a template on creating dynamic panels. The number of panels is defined by panelCount property.\n * An end-user may dynamically add/remove panels, unless you forbidden this.\n */\nvar QuestionPanelDynamicModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionPanelDynamicModel, _super);\n function QuestionPanelDynamicModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.loadingPanelCount = 0;\n _this.currentIndexValue = -1;\n _this.isAddingNewPanels = false;\n _this.createNewArray(\"panels\");\n _this.templateValue = _this.createAndSetupNewPanelObject();\n _this.template.renderWidth = \"100%\";\n _this.template.selectedElementInDesign = _this;\n var self = _this;\n _this.template.addElementCallback = function (element) {\n self.addOnPropertyChangedCallback(element);\n self.rebuildPanels();\n };\n _this.template.removeElementCallback = function (element) {\n self.rebuildPanels();\n };\n _this.createLocalizableString(\"confirmDeleteText\", _this);\n _this.createLocalizableString(\"keyDuplicationError\", _this);\n _this.createLocalizableString(\"panelAddText\", _this);\n _this.createLocalizableString(\"panelRemoveText\", _this);\n _this.createLocalizableString(\"panelPrevText\", _this);\n _this.createLocalizableString(\"panelNextText\", _this);\n _this.registerFunctionOnPropertyValueChanged(\"panelsState\", function () {\n self.setPanelsState();\n });\n return _this;\n }\n QuestionPanelDynamicModel.prototype.setSurveyImpl = function (value) {\n _super.prototype.setSurveyImpl.call(this, value);\n this.setTemplatePanelSurveyImpl();\n this.setPanelsSurveyImpl();\n };\n QuestionPanelDynamicModel.prototype.assignOnPropertyChangedToTemplate = function () {\n var elements = this.template.elements;\n for (var i = 0; i < elements.length; i++) {\n this.addOnPropertyChangedCallback(elements[i]);\n }\n };\n QuestionPanelDynamicModel.prototype.addOnPropertyChangedCallback = function (element) {\n var self = this;\n element.onPropertyChanged.add(function (element, options) {\n self.onTemplateElementPropertyChanged(element, options);\n });\n if (element.isPanel) {\n element.addElementCallback = function (element) {\n self.addOnPropertyChangedCallback(element);\n };\n }\n };\n QuestionPanelDynamicModel.prototype.onTemplateElementPropertyChanged = function (element, options) {\n if (this.isLoadingFromJson || this.isDesignMode || this.panels.length == 0)\n return;\n var property = __WEBPACK_IMPORTED_MODULE_7__jsonobject__[\"c\" /* Serializer */].findProperty(element.getType(), options.name);\n if (!property)\n return;\n var panels = this.panels;\n for (var i = 0; i < panels.length; i++) {\n var question = panels[i].getQuestionByName(element.name);\n if (!!question && question[options.name] !== options.newValue) {\n question[options.name] = options.newValue;\n }\n }\n };\n QuestionPanelDynamicModel.prototype.getType = function () {\n return \"paneldynamic\";\n };\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"isAllowTitleLeft\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n QuestionPanelDynamicModel.prototype.removeElement = function (element) {\n return this.template.removeElement(element);\n };\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"template\", {\n /**\n * The template Panel. This panel is used as a template on creatign dynamic panels\n * @see templateElements\n * @see templateTitle\n * @see panelCount\n */\n get: function () {\n return this.templateValue;\n },\n enumerable: true,\n configurable: true\n });\n QuestionPanelDynamicModel.prototype.getPanel = function () {\n return this.template;\n };\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"templateElements\", {\n /**\n * The template Panel elements, questions and panels.\n * @see templateElements\n * @see template\n * @see panelCount\n */\n get: function () {\n return this.template.elements;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"templateTitle\", {\n /**\n * The template Panel title property.\n * @see templateElements\n * @see template\n * @see panelCount\n */\n get: function () {\n return this.template.title;\n },\n set: function (newValue) {\n this.template.title = newValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"locTemplateTitle\", {\n get: function () {\n return this.template.locTitle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"templateDescription\", {\n /**\n * The template Panel description property.\n * @see templateElements\n * @see template\n * @see panelCount\n * @see templateTitle\n */\n get: function () {\n return this.template.description;\n },\n set: function (newValue) {\n this.template.description = newValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"locTemplateDescription\", {\n get: function () {\n return this.template.locDescription;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"items\", {\n get: function () {\n var res = [];\n for (var i = 0; i < this.panels.length; i++) {\n res.push(this.panels[i].data);\n }\n return res;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"panels\", {\n /**\n * The array of dynamic panels created based on panel template\n * @see template\n * @see panelCount\n */\n get: function () {\n return this.getPropertyValue(\"panels\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"currentIndex\", {\n /**\n * The index of current active dynamical panel when the renderMode is not \"list\". If there is no dymamic panel (panelCount = 0) or renderMode equals \"list\" it returns -1, otherwise it returns a value from 0 to panelCount - 1.\n * @see currentPanel\n * @see panels\n * @see panelCount\n * @see renderMode\n */\n get: function () {\n if (this.isRenderModeList)\n return -1;\n if (this.isDesignMode)\n return 0;\n if (this.currentIndexValue < 0 && this.panelCount > 0) {\n this.currentIndexValue = 0;\n }\n if (this.currentIndexValue >= this.panelCount) {\n this.currentIndexValue = this.panelCount - 1;\n }\n return this.currentIndexValue;\n },\n set: function (val) {\n if (this.currentIndexValue !== val) {\n if (val >= this.panelCount)\n val = this.panelCount - 1;\n this.currentIndexValue = val;\n this.fireCallback(this.currentIndexChangedCallback);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"currentPanel\", {\n /**\n * The current active dynamical panel when the renderMode is not \"list\". If there is no dymamic panel (panelCount = 0) or renderMode equals \"list\" it returns null.\n * @see currenIndex\n * @see panels\n * @see panelCount\n * @see renderMode\n */\n get: function () {\n var index = this.currentIndex;\n if (index < 0 || index >= this.panels.length)\n return null;\n return this.panels[index];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"confirmDelete\", {\n /**\n * Set it to true, to show a confirmation dialog on removing a panel\n * @see ConfirmDeleteText\n */\n get: function () {\n return this.getPropertyValue(\"confirmDelete\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"confirmDelete\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"keyName\", {\n /**\n * Set it to a question name used in the template panel and the library shows duplication error, if there are same values in different panels of this question.\n * @see keyDuplicationError\n */\n get: function () {\n return this.getPropertyValue(\"keyName\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"keyName\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"confirmDeleteText\", {\n /**\n * Use this property to change the default text showing in the confirmation delete dialog on removing a panel.\n */\n get: function () {\n return this.getLocalizableStringText(\"confirmDeleteText\", __WEBPACK_IMPORTED_MODULE_2__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"confirmDelete\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"confirmDeleteText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"locConfirmDeleteText\", {\n get: function () {\n return this.getLocalizableString(\"confirmDeleteText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"keyDuplicationError\", {\n /**\n * The duplication value error text. Set it to show the text different from the default.\n * @see keyName\n */\n get: function () {\n return this.getLocalizableStringText(\"keyDuplicationError\", __WEBPACK_IMPORTED_MODULE_2__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"keyDuplicationError\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"keyDuplicationError\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"locKeyDuplicationError\", {\n get: function () {\n return this.getLocalizableString(\"keyDuplicationError\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"panelPrevText\", {\n /**\n * Use this property to change the default previous button text. Previous button shows the previous panel, change the currentPanel, when the renderMode doesn't equal to \"list\".\n * @see currentPanel\n * @see currentIndex\n * @see renderMode\n */\n get: function () {\n return this.getLocalizableStringText(\"panelPrevText\", __WEBPACK_IMPORTED_MODULE_2__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"pagePrevText\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"panelPrevText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"locPanelPrevText\", {\n get: function () {\n return this.getLocalizableString(\"panelPrevText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"panelNextText\", {\n /**\n * Use this property to change the default next button text. Next button shows the next panel, change the currentPanel, when the renderMode doesn't equal to \"list\".\n * @see currentPanel\n * @see currentIndex\n * @see renderMode\n */\n get: function () {\n return this.getLocalizableStringText(\"panelNextText\", __WEBPACK_IMPORTED_MODULE_2__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"pageNextText\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"panelNextText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"locPanelNextText\", {\n get: function () {\n return this.getLocalizableString(\"panelNextText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"panelAddText\", {\n /**\n * Use this property to change the default value of add panel button text.\n */\n get: function () {\n return this.getLocalizableStringText(\"panelAddText\", __WEBPACK_IMPORTED_MODULE_2__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"addPanel\"));\n },\n set: function (value) {\n this.setLocalizableStringText(\"panelAddText\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"locPanelAddText\", {\n get: function () {\n return this.getLocalizableString(\"panelAddText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"panelRemoveText\", {\n /**\n * Use this property to change the default value of remove panel button text.\n */\n get: function () {\n return this.getLocalizableStringText(\"panelRemoveText\", __WEBPACK_IMPORTED_MODULE_2__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"removePanel\"));\n },\n set: function (val) {\n this.setLocalizableStringText(\"panelRemoveText\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"locPanelRemoveText\", {\n get: function () {\n return this.getLocalizableString(\"panelRemoveText\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"isProgressTopShowing\", {\n /**\n * Returns true when the renderMode equals to \"progressTop\" or \"progressTopBottom\"\n */\n get: function () {\n return (this.renderMode == \"progressTop\" || this.renderMode == \"progressTopBottom\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"isProgressBottomShowing\", {\n /**\n * Returns true when the renderMode equals to \"progressBottom\" or \"progressTopBottom\"\n */\n get: function () {\n return (this.renderMode == \"progressBottom\" ||\n this.renderMode == \"progressTopBottom\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"isPrevButtonShowing\", {\n /**\n * Returns true when currentIndex is more than 0.\n * @see currenIndex\n * @see currenPanel\n */\n get: function () {\n return this.currentIndex > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"isNextButtonShowing\", {\n /**\n * Returns true when currentIndex is more than or equal 0 and less then panelCount - 1.\n * @see currenIndex\n * @see currenPanel\n * @see panelCount\n */\n get: function () {\n return this.currentIndex >= 0 && this.currentIndex < this.panelCount - 1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"isRangeShowing\", {\n /**\n * Returns true when showRangeInProgress equals to true, renderMode doesn't equal to \"list\" and panelCount is >= 2.\n */\n get: function () {\n return (this.showRangeInProgress && this.currentIndex >= 0 && this.panelCount > 1);\n },\n enumerable: true,\n configurable: true\n });\n QuestionPanelDynamicModel.prototype.getElementsInDesign = function (includeHidden) {\n if (includeHidden === void 0) { includeHidden = false; }\n return includeHidden ? [this.template] : this.templateElements;\n };\n QuestionPanelDynamicModel.prototype.prepareValueForPanelCreating = function () {\n this.addingNewPanelsValue = this.value;\n this.isAddingNewPanels = true;\n this.isNewPanelsValueChanged = false;\n };\n QuestionPanelDynamicModel.prototype.setValueAfterPanelsCreating = function () {\n this.isAddingNewPanels = false;\n if (this.isNewPanelsValueChanged) {\n this.isValueChangingInternally = true;\n this.value = this.addingNewPanelsValue;\n this.isValueChangingInternally = false;\n }\n };\n QuestionPanelDynamicModel.prototype.getValueCore = function () {\n return this.isAddingNewPanels\n ? this.addingNewPanelsValue\n : _super.prototype.getValueCore.call(this);\n };\n QuestionPanelDynamicModel.prototype.setValueCore = function (newValue) {\n if (this.isAddingNewPanels) {\n this.isNewPanelsValueChanged = true;\n this.addingNewPanelsValue = newValue;\n }\n else {\n _super.prototype.setValueCore.call(this, newValue);\n }\n };\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"panelCount\", {\n /**\n * Use this property to get/set the number of dynamic panels.\n * @see template\n * @see minPanelCount\n * @see maxPanelCount\n * @see addPanel\n * @see removePanel\n * @see removePanelUI\n */\n get: function () {\n return this.isLoadingFromJson || this.isDesignMode\n ? this.loadingPanelCount\n : this.panels.length;\n },\n set: function (val) {\n if (val < 0)\n return;\n if (this.isLoadingFromJson || this.isDesignMode) {\n this.loadingPanelCount = val;\n return;\n }\n if (val == this.panels.length || this.isDesignMode)\n return;\n this.prepareValueForPanelCreating();\n for (var i = this.panelCount; i < val; i++) {\n var panel = this.createNewPanel();\n this.panels.push(panel);\n if (this.renderMode == \"list\" && this.panelsState != \"default\") {\n if (this.panelsState === \"expand\") {\n panel.expand();\n }\n else {\n panel.collapse();\n }\n }\n }\n if (val < this.panelCount)\n this.panels.splice(val, this.panelCount - val);\n this.setValueAfterPanelsCreating();\n this.setValueBasedOnPanelCount();\n this.reRunCondition();\n this.fireCallback(this.panelCountChangedCallback);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"panelsState\", {\n /**\n * Use this property to allow the end-user to collapse/expand the panels. It works only if the renderMode property equals to \"list\" and templateTitle property is not empty. The following values are available:\n *
default - the default value. User can't collpase/expand panels\n *
expanded - User can collpase/expand panels and all panels are expanded by default\n *
collapsed - User can collpase/expand panels and all panels are collapsed by default\n *
firstExpanded - User can collpase/expand panels. The first panel is expanded and others are collapsed\n * @see renderMode\n * @see templateTitle\n */\n get: function () {\n return this.getPropertyValue(\"panelsState\");\n },\n set: function (val) {\n this.setPropertyValue(\"panelsState\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionPanelDynamicModel.prototype.setTemplatePanelSurveyImpl = function () {\n this.template.setSurveyImpl(this.isDesignMode\n ? this.surveyImpl\n : new QuestionPanelDynamicTemplateSurveyImpl(this));\n };\n QuestionPanelDynamicModel.prototype.setPanelsSurveyImpl = function () {\n for (var i = 0; i < this.panels.length; i++) {\n var panel = this.panels[i];\n if (panel == this.template)\n continue;\n panel.setSurveyImpl(panel.data);\n }\n };\n QuestionPanelDynamicModel.prototype.setPanelsState = function () {\n if (this.isDesignMode || this.renderMode != \"list\")\n return;\n for (var i = 0; i < this.panels.length; i++) {\n var state = this.panelsState;\n if (state === \"firstExpanded\") {\n state = i === 0 ? \"expanded\" : \"collapsed\";\n }\n this.panels[i].state = state;\n }\n };\n QuestionPanelDynamicModel.prototype.setValueBasedOnPanelCount = function () {\n var value = this.value;\n if (!value || !Array.isArray(value))\n value = [];\n if (value.length == this.panelCount)\n return;\n for (var i = value.length; i < this.panelCount; i++)\n value.push({});\n if (value.length > this.panelCount) {\n value.splice(this.panelCount, value.length - this.panelCount);\n }\n this.isValueChangingInternally = true;\n this.value = value;\n this.isValueChangingInternally = false;\n };\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"minPanelCount\", {\n /**\n * The minimum panel count. A user could not delete a panel if the panelCount equals to minPanelCount\n * @see panelCount\n * @see maxPanelCount\n */\n get: function () {\n return this.getPropertyValue(\"minPanelCount\", 0);\n },\n set: function (val) {\n if (val < 0)\n val = 0;\n if (val == this.minPanelCount)\n return;\n this.setPropertyValue(\"minPanelCount\", val);\n if (val > this.maxPanelCount)\n this.maxPanelCount = val;\n if (this.panelCount < val)\n this.panelCount = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"maxPanelCount\", {\n /**\n * The maximum panel count. A user could not add a panel if the panelCount equals to maxPanelCount\n * @see panelCount\n * @see minPanelCount\n */\n get: function () {\n return this.getPropertyValue(\"maxPanelCount\", __WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].panelMaximumPanelCount);\n },\n set: function (val) {\n if (val <= 0)\n return;\n if (val > __WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].panelMaximumPanelCount)\n val = __WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].panelMaximumPanelCount;\n if (val == this.maxPanelCount)\n return;\n this.setPropertyValue(\"maxPanelCount\", val);\n if (val < this.minPanelCount)\n this.minPanelCount = val;\n if (this.panelCount > val)\n this.panelCount = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"allowAddPanel\", {\n /**\n * Set this property to false to hide the 'Add New' button\n * @see allowRemovePanel\n */\n get: function () {\n return this.getPropertyValue(\"allowAddPanel\");\n },\n set: function (val) {\n this.setPropertyValue(\"allowAddPanel\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"allowRemovePanel\", {\n /**\n * Set this property to false to hide the 'Remove' button\n * @see allowAddPanel\n */\n get: function () {\n return this.getPropertyValue(\"allowRemovePanel\");\n },\n set: function (val) {\n this.setPropertyValue(\"allowRemovePanel\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"templateTitleLocation\", {\n /**\n * Set this property different from \"default\" to set the specific question title location for the template questions.\n * @see SurveyModel.questionTitleLocation\n * @see PanelModelBase.questionTitleLocation\n */\n get: function () {\n return this.getPropertyValue(\"templateTitleLocation\");\n },\n set: function (value) {\n this.setPropertyValue(\"templateTitleLocation\", value.toLowerCase());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"showQuestionNumbers\", {\n /**\n * Use this property to show/hide the numbers in titles in questions inside a dynamic panel.\n * By default the value is \"off\". You may set it to \"onPanel\" and the first question inside a dynamic panel will start with 1 or \"onSurvey\" to include nested questions in dymamic panels into global survey question numbering.\n */\n get: function () {\n return this.getPropertyValue(\"showQuestionNumbers\");\n },\n set: function (val) {\n this.setPropertyValue(\"showQuestionNumbers\", val);\n if (!this.isLoadingFromJson && this.survey) {\n this.survey.questionVisibilityChanged(this, this.visible);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"showRangeInProgress\", {\n /**\n * Shows the range from 1 to panelCount when renderMode doesn't equal to \"list\". Set to false to hide this element.\n * @see panelCount\n * @see renderMode\n */\n get: function () {\n return this.getPropertyValue(\"showRangeInProgress\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"showRangeInProgress\", val);\n this.fireCallback(this.currentIndexChangedCallback);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"renderMode\", {\n /**\n * By default the property equals to \"list\" and all dynamic panels are rendered one by one on the page. You may change it to: \"progressTop\", \"progressBottom\" or \"progressTopBottom\" to render only one dynamic panel at once. The progress and navigation elements can be rendred on top, bottom or both.\n */\n get: function () {\n return this.getPropertyValue(\"renderMode\");\n },\n set: function (val) {\n this.setPropertyValue(\"renderMode\", val);\n this.fireCallback(this.renderModeChangedCallback);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"isRenderModeList\", {\n /**\n * Returns true when renderMode equals to \"list\".\n * @see renderMode\n */\n get: function () {\n return this.renderMode == \"list\";\n },\n enumerable: true,\n configurable: true\n });\n QuestionPanelDynamicModel.prototype.setVisibleIndex = function (value) {\n if (!this.isVisible)\n return 0;\n var startIndex = this.showQuestionNumbers == \"onSurvey\" ? value : 0;\n for (var i = 0; i < this.panels.length; i++) {\n var counter = this.setPanelVisibleIndex(this.panels[i], startIndex, this.showQuestionNumbers != \"off\");\n if (this.showQuestionNumbers == \"onSurvey\") {\n startIndex += counter;\n }\n }\n _super.prototype.setVisibleIndex.call(this, this.showQuestionNumbers != \"onSurvey\" ? value : -1);\n return this.showQuestionNumbers != \"onSurvey\" ? 1 : startIndex - value;\n };\n QuestionPanelDynamicModel.prototype.setPanelVisibleIndex = function (panel, index, showIndex) {\n if (!showIndex) {\n panel.setVisibleIndex(-1);\n return 0;\n }\n return panel.setVisibleIndex(index);\n };\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"canAddPanel\", {\n /**\n * Returns true when an end user may add a new panel. The question is not read only and panelCount less than maxPanelCount\n * @see isReadOnly\n * @see panelCount\n * @see maxPanelCount\n */\n get: function () {\n if (this.survey && this.survey.isDesignMode)\n return false;\n return (this.allowAddPanel &&\n !this.isReadOnly &&\n this.panelCount < this.maxPanelCount);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"canRemovePanel\", {\n /**\n * Returns true when an end user may remove a panel. The question is not read only and panelCount is more than minPanelCount\n * @see isReadOnly\n * @see panelCount\n * @see minPanelCount\n */\n get: function () {\n if (this.survey && this.survey.isDesignMode)\n return false;\n return (this.allowRemovePanel &&\n !this.isReadOnly &&\n this.panelCount > this.minPanelCount);\n },\n enumerable: true,\n configurable: true\n });\n QuestionPanelDynamicModel.prototype.rebuildPanels = function () {\n var _a;\n if (this.isLoadingFromJson)\n return;\n this.prepareValueForPanelCreating();\n var panels = [];\n if (this.isDesignMode) {\n new QuestionPanelDynamicItem(this, this.template);\n panels.push(this.template);\n }\n else {\n for (var i = 0; i < this.panelCount; i++) {\n panels.push(this.createNewPanel());\n }\n }\n (_a = this.panels).splice.apply(_a, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __spreadArrays */])([0, this.panels.length], panels));\n this.setValueAfterPanelsCreating();\n this.setPanelsState();\n this.reRunCondition();\n this.fireCallback(this.panelCountChangedCallback);\n };\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"defaultPanelValue\", {\n /**\n * If it is not empty, then this value is set to every new panel, including panels created initially, unless the defaultValue is not empty\n * @see defaultValue\n * @see defaultValueFromLastRow\n */\n get: function () {\n return this.getPropertyValue(\"defaultPanelValue\");\n },\n set: function (val) {\n this.setPropertyValue(\"defaultPanelValue\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"defaultValueFromLastPanel\", {\n /**\n * Set it to true to copy the value into new added panel from the last panel. If defaultPanelValue is set and this property equals to true,\n * then the value for new added panel is merging.\n * @see defaultValue\n * @see defaultPanelValue\n */\n get: function () {\n return this.getPropertyValue(\"defaultValueFromLastPanel\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"defaultValueFromLastPanel\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionPanelDynamicModel.prototype.isDefaultValueEmpty = function () {\n return (_super.prototype.isDefaultValueEmpty.call(this) && this.isValueEmpty(this.defaultPanelValue));\n };\n QuestionPanelDynamicModel.prototype.setDefaultValue = function () {\n if (this.isValueEmpty(this.defaultPanelValue) ||\n !this.isValueEmpty(this.defaultValue)) {\n _super.prototype.setDefaultValue.call(this);\n return;\n }\n if (!this.isEmpty() || this.panelCount == 0)\n return;\n var newValue = [];\n for (var i = 0; i < this.panelCount; i++) {\n newValue.push(this.defaultPanelValue);\n }\n this.value = newValue;\n };\n QuestionPanelDynamicModel.prototype.isEmpty = function () {\n var val = this.value;\n if (!val || !Array.isArray(val))\n return true;\n for (var i = 0; i < val.length; i++) {\n if (!this.isRowEmpty(val[i]))\n return false;\n }\n return true;\n };\n QuestionPanelDynamicModel.prototype.isRowEmpty = function (val) {\n for (var prop in val) {\n if (val.hasOwnProperty(prop))\n return false;\n }\n return true;\n };\n /**\n * Add a new dynamic panel based on the template Panel. It checks if canAddPanel returns true and then calls addPanel method.\n * @see template\n * @see panelCount\n * @see panels\n * @see canAddPanel\n */\n QuestionPanelDynamicModel.prototype.addPanelUI = function () {\n if (!this.canAddPanel)\n return null;\n var newPanel = this.addPanel();\n if (this.renderMode === \"list\" && this.panelsState !== \"default\") {\n newPanel.expand();\n }\n return newPanel;\n };\n /**\n * Add a new dynamic panel based on the template Panel.\n * @see template\n * @see panelCount\n * @see panels\n */\n QuestionPanelDynamicModel.prototype.addPanel = function () {\n this.panelCount++;\n if (!this.isRenderModeList) {\n this.currentIndex = this.panelCount - 1;\n }\n var newValue = this.value;\n var hasModified = false;\n if (!this.isValueEmpty(this.defaultPanelValue)) {\n if (!!newValue &&\n Array.isArray(newValue) &&\n newValue.length == this.panelCount) {\n hasModified = true;\n this.copyValue(newValue[newValue.length - 1], this.defaultPanelValue);\n }\n }\n if (this.defaultValueFromLastPanel &&\n !!newValue &&\n Array.isArray(newValue) &&\n newValue.length > 1 &&\n newValue.length == this.panelCount) {\n hasModified = true;\n this.copyValue(newValue[newValue.length - 1], newValue[newValue.length - 2]);\n }\n if (hasModified) {\n this.value = newValue;\n }\n if (this.survey)\n this.survey.dynamicPanelAdded(this);\n return this.panels[this.panelCount - 1];\n };\n QuestionPanelDynamicModel.prototype.copyValue = function (src, dest) {\n for (var key in dest) {\n src[key] = dest[key];\n }\n };\n /**\n * Call removePanel function. Do nothing is canRemovePanel returns false. If confirmDelete set to true, it shows the confirmation dialog first.\n * @param value a panel or panel index\n * @see removePanel\n * @see confirmDelete\n * @see confirmDeleteText\n * @see canRemovePanel\n *\n */\n QuestionPanelDynamicModel.prototype.removePanelUI = function (value) {\n if (!this.canRemovePanel)\n return;\n if (!this.confirmDelete || confirm(this.confirmDeleteText)) {\n this.removePanel(value);\n }\n };\n /**\n * Goes to the next panel in the PanelDynamic\n *\n */\n QuestionPanelDynamicModel.prototype.goToNextPanel = function () {\n if (this.renderMode !== \"list\" && this.currentPanel.hasErrors())\n return;\n this.currentIndex++;\n };\n /**\n * Goes to the previous panel in the PanelDynamic\n *\n */\n QuestionPanelDynamicModel.prototype.goToPrevPanel = function () {\n this.currentIndex--;\n };\n /**\n * Removes a dynamic panel from the panels array.\n * @param value a panel or panel index\n * @see panels\n * @see template\n */\n QuestionPanelDynamicModel.prototype.removePanel = function (value) {\n var index = this.getPanelIndex(value);\n if (index < 0 || index >= this.panelCount)\n return;\n this.panels.splice(index, 1);\n var value = this.value;\n if (!value || !Array.isArray(value) || index >= value.length)\n return;\n value.splice(index, 1);\n this.value = value;\n this.fireCallback(this.panelCountChangedCallback);\n if (this.survey)\n this.survey.dynamicPanelRemoved(this, index);\n };\n QuestionPanelDynamicModel.prototype.getPanelIndex = function (val) {\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isNumber(val))\n return val;\n var items = this.items;\n for (var i = 0; i < this.panels.length; i++) {\n if (this.panels[i] === val || items[i] === val)\n return i;\n }\n return -1;\n };\n QuestionPanelDynamicModel.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n var panels = this.panels;\n for (var i = 0; i < panels.length; i++) {\n panels[i].locStrsChanged();\n }\n };\n QuestionPanelDynamicModel.prototype.clearIncorrectValues = function () {\n for (var i = 0; i < this.panels.length; i++) {\n this.clearIncorrectValuesInPanel(i);\n }\n };\n QuestionPanelDynamicModel.prototype.clearErrors = function () {\n _super.prototype.clearErrors.call(this);\n for (var i = 0; i < this.panels.length; i++) {\n this.panels[i].clearErrors();\n }\n };\n QuestionPanelDynamicModel.prototype.getQuestionFromArray = function (name, index) {\n if (index >= this.panelCount)\n return null;\n return this.panels[index].getQuestionByName(name);\n };\n QuestionPanelDynamicModel.prototype.clearIncorrectValuesInPanel = function (index) {\n var panel = this.panels[index];\n panel.clearIncorrectValues();\n var val = this.value;\n var values = !!val && index < val.length ? val[index] : null;\n if (!values)\n return;\n var isChanged = false;\n for (var key in values) {\n if (!panel.getQuestionByName(key) &&\n !this.getSharedQuestionFromArray(key, index)) {\n delete values[key];\n isChanged = true;\n }\n }\n if (isChanged) {\n val[index] = values;\n this.value = val;\n }\n };\n QuestionPanelDynamicModel.prototype.getSharedQuestionFromArray = function (name, panelIndex) {\n return !!this.survey && !!this.valueName\n ? (this.survey.getQuestionByValueNameFromArray(this.valueName, name, panelIndex))\n : null;\n };\n QuestionPanelDynamicModel.prototype.addConditionNames = function (names) {\n var prefix = this.name + \"[0].\";\n var panelNames = [];\n var questions = this.template.questions;\n for (var i = 0; i < questions.length; i++) {\n questions[i].addConditionNames(panelNames);\n }\n for (var i = 0; i < panelNames.length; i++) {\n names.push(prefix + panelNames[i]);\n }\n };\n QuestionPanelDynamicModel.prototype.addConditionObjectsByContext = function (objects, context) {\n var hasContext = !!context\n ? this.template.questions.indexOf(context) > -1\n : false;\n var prefixName = this.name + \"[0].\";\n var prefixText = this.processedTitle + \"[0].\";\n var panelObjs = new Array();\n var questions = this.template.questions;\n for (var i = 0; i < questions.length; i++) {\n questions[i].addConditionObjectsByContext(panelObjs, context);\n }\n for (var i = 0; i < panelObjs.length; i++) {\n objects.push({\n name: prefixName + panelObjs[i].name,\n text: prefixText + panelObjs[i].text,\n question: panelObjs[i].question\n });\n }\n if (hasContext) {\n for (var i = 0; i < panelObjs.length; i++) {\n if (panelObjs[i].question == context)\n continue;\n objects.push({\n name: \"panel.\" + panelObjs[i].name,\n text: \"panel.\" + panelObjs[i].text,\n question: panelObjs[i].question\n });\n }\n }\n };\n QuestionPanelDynamicModel.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n if (!path)\n return _super.prototype.getConditionJson.call(this, operator, path);\n var questionName = path;\n var pos = path.indexOf(\".\");\n if (pos > -1) {\n questionName = path.substr(0, pos);\n path = path.substr(pos + 1);\n }\n var question = this.template.getQuestionByName(questionName);\n if (!question)\n return null;\n return question.getConditionJson(operator, path);\n };\n QuestionPanelDynamicModel.prototype.onReadOnlyChanged = function () {\n var readOnly = this.isReadOnly;\n this.template.readOnly = readOnly;\n for (var i = 0; i < this.panels.length; i++) {\n this.panels[i].readOnly = readOnly;\n }\n _super.prototype.onReadOnlyChanged.call(this);\n };\n QuestionPanelDynamicModel.prototype.onSurveyLoad = function () {\n this.template.readOnly = this.isReadOnly;\n this.template.onSurveyLoad();\n if (this.loadingPanelCount > 0) {\n this.panelCount = this.loadingPanelCount;\n }\n if (this.isDesignMode) {\n this.rebuildPanels();\n }\n this.setPanelsSurveyImpl();\n this.setPanelsState();\n this.assignOnPropertyChangedToTemplate();\n _super.prototype.onSurveyLoad.call(this);\n };\n QuestionPanelDynamicModel.prototype.onFirstRendering = function () {\n this.template.onFirstRendering();\n for (var i = 0; i < this.panels.length; i++) {\n this.panels[i].onFirstRendering();\n }\n _super.prototype.onFirstRendering.call(this);\n };\n QuestionPanelDynamicModel.prototype.runCondition = function (values, properties) {\n _super.prototype.runCondition.call(this, values, properties);\n this.runPanelsCondition(values, properties);\n };\n QuestionPanelDynamicModel.prototype.reRunCondition = function () {\n if (!this.data)\n return;\n this.runCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());\n };\n QuestionPanelDynamicModel.prototype.runPanelsCondition = function (values, properties) {\n var cachedValues = {};\n if (values && values instanceof Object) {\n cachedValues = JSON.parse(JSON.stringify(values));\n }\n for (var i = 0; i < this.panels.length; i++) {\n var panelValues = this.getPanelItemData(this.panels[i].data);\n //Should be unique for every panel due async expression support\n var newValues = __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].createCopy(cachedValues);\n newValues[QuestionPanelDynamicItem.ItemVariableName.toLowerCase()] = panelValues;\n newValues[QuestionPanelDynamicItem.IndexVariableName.toLowerCase()] = i;\n this.panels[i].runCondition(newValues, properties);\n }\n };\n QuestionPanelDynamicModel.prototype.onAnyValueChanged = function (name) {\n _super.prototype.onAnyValueChanged.call(this, name);\n for (var i = 0; i < this.panels.length; i++) {\n this.panels[i].onAnyValueChanged(name);\n this.panels[i].onAnyValueChanged(QuestionPanelDynamicItem.ItemVariableName);\n }\n };\n QuestionPanelDynamicModel.prototype.hasKeysDuplicated = function (fireCallback, rec) {\n if (rec === void 0) { rec = null; }\n var keyValues = [];\n var res;\n for (var i = 0; i < this.panels.length; i++) {\n res =\n this.isValueDuplicated(this.panels[i], keyValues, rec, fireCallback) ||\n res;\n }\n return res;\n };\n QuestionPanelDynamicModel.prototype.updatePanelsContainsErrors = function () {\n var question = this.changingValueQuestion;\n var parent = question.parent;\n while (!!parent) {\n parent.updateContainsErrors();\n parent = parent.parent;\n }\n this.updateContainsErrors();\n };\n QuestionPanelDynamicModel.prototype.hasErrors = function (fireCallback, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (rec === void 0) { rec = null; }\n if (this.isValueChangingInternally)\n return false;\n var res = false;\n if (!!this.changingValueQuestion) {\n var res = this.changingValueQuestion.hasErrors(fireCallback, rec);\n res = this.hasKeysDuplicated(fireCallback, rec) || res;\n this.updatePanelsContainsErrors();\n return res;\n }\n else {\n var errosInPanels = this.hasErrorInPanels(fireCallback, rec);\n return _super.prototype.hasErrors.call(this, fireCallback) || errosInPanels;\n }\n };\n QuestionPanelDynamicModel.prototype.getContainsErrors = function () {\n var res = _super.prototype.getContainsErrors.call(this);\n if (res)\n return res;\n var panels = this.panels;\n for (var i = 0; i < panels.length; i++) {\n if (panels[i].containsErrors)\n return true;\n }\n return false;\n };\n QuestionPanelDynamicModel.prototype.getIsAnswered = function () {\n if (!_super.prototype.getIsAnswered.call(this))\n return false;\n var panels = this.panels;\n for (var i = 0; i < panels.length; i++) {\n var visibleQuestions = [];\n panels[i].addQuestionsToList(visibleQuestions, true);\n for (var j = 0; j < visibleQuestions.length; j++) {\n if (!visibleQuestions[j].isAnswered)\n return false;\n }\n }\n return true;\n };\n QuestionPanelDynamicModel.prototype.clearValueIfInvisible = function () {\n for (var i = 0; i < this.panels.length; i++) {\n var questions = this.panels[i].questions;\n for (var j = 0; j < questions.length; j++) {\n questions[j].clearValueIfInvisible();\n }\n }\n _super.prototype.clearValueIfInvisible.call(this);\n };\n QuestionPanelDynamicModel.prototype.getIsRunningValidators = function () {\n if (_super.prototype.getIsRunningValidators.call(this))\n return true;\n for (var i = 0; i < this.panels.length; i++) {\n var questions = this.panels[i].questions;\n for (var j = 0; j < questions.length; j++) {\n if (questions[j].isRunningValidators)\n return true;\n }\n }\n return false;\n };\n QuestionPanelDynamicModel.prototype.getAllErrors = function () {\n var result = _super.prototype.getAllErrors.call(this);\n for (var i = 0; i < this.panels.length; i++) {\n var questions = this.panels[i].questions;\n for (var j = 0; j < questions.length; j++) {\n var errors = questions[j].getAllErrors();\n if (errors && errors.length > 0) {\n result = result.concat(errors);\n }\n }\n }\n return result;\n };\n QuestionPanelDynamicModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n var values = this.createValueCopy();\n if (!values || !Array.isArray(values))\n return values;\n for (var i = 0; i < this.panels.length && i < values.length; i++) {\n var val = values[i];\n if (!val)\n continue;\n values[i] = this.getPanelDisplayValue(i, val, keysAsText);\n }\n return values;\n };\n QuestionPanelDynamicModel.prototype.getPanelDisplayValue = function (panelIndex, val, keysAsText) {\n if (!val)\n return val;\n var panel = this.panels[panelIndex];\n for (var key in val) {\n var question = panel.getQuestionByValueName(key);\n if (!question) {\n question = this.getSharedQuestionFromArray(key, panelIndex);\n }\n if (!!question) {\n val[key] = question.getDisplayValue(keysAsText);\n }\n }\n return val;\n };\n QuestionPanelDynamicModel.prototype.hasErrorInPanels = function (fireCallback, rec) {\n var res = false;\n var panels = this.panels;\n var keyValues = [];\n for (var i = 0; i < panels.length; i++) {\n this.setOnCompleteAsyncInPanel(panels[i]);\n }\n for (var i = 0; i < panels.length; i++) {\n var pnlError = panels[i].hasErrors(fireCallback, !!rec && rec.focuseOnFirstError, rec);\n pnlError = this.isValueDuplicated(panels[i], keyValues, rec) || pnlError;\n if (!this.isRenderModeList && pnlError && !res) {\n this.currentIndex = i;\n }\n res = pnlError || res;\n }\n return res;\n };\n QuestionPanelDynamicModel.prototype.setOnCompleteAsyncInPanel = function (panel) {\n var _this = this;\n var questions = panel.questions;\n for (var i = 0; i < questions.length; i++) {\n questions[i].onCompletedAsyncValidators = function (hasErrors) {\n _this.raiseOnCompletedAsyncValidators();\n };\n }\n };\n QuestionPanelDynamicModel.prototype.isValueDuplicated = function (panel, keyValues, rec, fireCallback) {\n if (!this.keyName)\n return false;\n var question = panel.getQuestionByValueName(this.keyName);\n if (!question || question.isEmpty())\n return false;\n var value = question.value;\n if (!!this.changingValueQuestion &&\n question != this.changingValueQuestion) {\n question.hasErrors(fireCallback, rec);\n }\n for (var i = 0; i < keyValues.length; i++) {\n if (value == keyValues[i]) {\n question.addError(new __WEBPACK_IMPORTED_MODULE_9__error__[\"f\" /* KeyDuplicationError */](this.keyDuplicationError, this));\n if (!!rec && !rec.firstErrorQuestion) {\n rec.firstErrorQuestion = question;\n }\n return true;\n }\n }\n keyValues.push(value);\n return false;\n };\n QuestionPanelDynamicModel.prototype.createNewPanel = function () {\n var panel = this.createAndSetupNewPanelObject();\n var json = this.template.toJSON();\n new __WEBPACK_IMPORTED_MODULE_7__jsonobject__[\"b\" /* JsonObject */]().toObject(json, panel);\n panel.renderWidth = \"100%\";\n panel.updateCustomWidgets();\n new QuestionPanelDynamicItem(this, panel);\n return panel;\n };\n QuestionPanelDynamicModel.prototype.createAndSetupNewPanelObject = function () {\n var panel = this.createNewPanelObject();\n var self = this;\n panel.onGetQuestionTitleLocation = function () {\n return self.getTemplateQuestionTitleLocation();\n };\n return panel;\n };\n QuestionPanelDynamicModel.prototype.getTemplateQuestionTitleLocation = function () {\n return this.templateTitleLocation != \"default\"\n ? this.templateTitleLocation\n : this.getTitleLocationCore();\n };\n QuestionPanelDynamicModel.prototype.createNewPanelObject = function () {\n return new __WEBPACK_IMPORTED_MODULE_6__panel__[\"c\" /* PanelModel */]();\n };\n QuestionPanelDynamicModel.prototype.setPanelCountBasedOnValue = function () {\n if (this.isValueChangingInternally)\n return;\n var val = this.value;\n var newPanelCount = val && Array.isArray(val) ? val.length : 0;\n if (newPanelCount == 0 && this.loadingPanelCount > 0) {\n newPanelCount = this.loadingPanelCount;\n }\n this.panelCount = newPanelCount;\n };\n QuestionPanelDynamicModel.prototype.setQuestionValue = function (newValue) {\n _super.prototype.setQuestionValue.call(this, newValue, false);\n this.setPanelCountBasedOnValue();\n for (var i = 0; i < this.panels.length; i++) {\n this.panelUpdateValueFromSurvey(this.panels[i]);\n }\n this.updateIsAnswered();\n };\n QuestionPanelDynamicModel.prototype.onSurveyValueChanged = function (newValue) {\n _super.prototype.onSurveyValueChanged.call(this, newValue);\n for (var i = 0; i < this.panels.length; i++) {\n this.panelSurveyValueChanged(this.panels[i]);\n }\n if (newValue === undefined) {\n this.setValueBasedOnPanelCount();\n }\n };\n QuestionPanelDynamicModel.prototype.panelUpdateValueFromSurvey = function (panel) {\n var questions = panel.questions;\n var values = this.getPanelItemData(panel.data);\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n q.updateValueFromSurvey(values[q.getValueName()]);\n q.updateCommentFromSurvey(values[q.getValueName() + __WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].commentPrefix]);\n }\n };\n QuestionPanelDynamicModel.prototype.panelSurveyValueChanged = function (panel) {\n var questions = panel.questions;\n var values = this.getPanelItemData(panel.data);\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n q.onSurveyValueChanged(values[q.getValueName()]);\n }\n };\n QuestionPanelDynamicModel.prototype.onSetData = function () {\n _super.prototype.onSetData.call(this);\n if (this.isDesignMode) {\n this.setTemplatePanelSurveyImpl();\n this.rebuildPanels();\n }\n };\n //IQuestionPanelDynamicData\n QuestionPanelDynamicModel.prototype.getItemIndex = function (item) {\n return this.items.indexOf(item);\n };\n QuestionPanelDynamicModel.prototype.getPanelItemData = function (item) {\n var items = this.items;\n var index = items.indexOf(item);\n var qValue = this.value;\n if (index < 0 && Array.isArray(qValue) && qValue.length > items.length) {\n index = items.length;\n }\n if (index < 0)\n return {};\n if (!qValue || !Array.isArray(qValue) || qValue.length <= index)\n return {};\n return qValue[index];\n };\n QuestionPanelDynamicModel.prototype.setPanelItemData = function (item, name, val) {\n var items = this.items;\n var index = items.indexOf(item);\n if (index < 0)\n index = items.length;\n var qValue = __WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].getUnbindValue(this.value);\n if (!qValue || !Array.isArray(qValue)) {\n qValue = [];\n }\n if (qValue.length <= index) {\n for (var i = qValue.length; i <= index; i++) {\n qValue.push({});\n }\n }\n if (!qValue[index])\n qValue[index] = {};\n if (!this.isValueEmpty(val)) {\n qValue[index][name] = val;\n }\n else {\n delete qValue[index][name];\n }\n if (index >= 0 && index < this.panels.length) {\n this.changingValueQuestion = this.panels[index].getQuestionByValueName(name);\n }\n this.value = qValue;\n this.changingValueQuestion = null;\n if (this.survey) {\n var options = {\n question: this,\n panel: item.panel,\n name: name,\n itemIndex: index,\n itemValue: qValue[index],\n value: val\n };\n this.survey.dynamicPanelItemValueChanged(this, options);\n }\n };\n QuestionPanelDynamicModel.prototype.getSurvey = function () {\n return this.survey;\n };\n QuestionPanelDynamicModel.prototype.getRootData = function () {\n return this.data;\n };\n QuestionPanelDynamicModel.prototype.getPlainData = function (options) {\n if (options === void 0) { options = {\n includeEmpty: true\n }; }\n var questionPlainData = _super.prototype.getPlainData.call(this, options);\n if (!!questionPlainData) {\n questionPlainData.isNode = true;\n questionPlainData.data = this.panels.map(function (panel, index) {\n var panelDataItem = {\n name: panel.name || index,\n title: panel.title || \"Panel\",\n value: panel.getValue(),\n displayValue: panel.getValue(),\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n },\n isNode: true,\n data: panel.questions\n .map(function (question) { return question.getPlainData(options); })\n .filter(function (d) { return !!d; })\n };\n (options.calculations || []).forEach(function (calculation) {\n panelDataItem[calculation.propertyName] = panel[calculation.propertyName];\n });\n return panelDataItem;\n });\n }\n return questionPlainData;\n };\n Object.defineProperty(QuestionPanelDynamicModel.prototype, \"progressText\", {\n get: function () {\n var rangeMax = this.panelCount;\n return __WEBPACK_IMPORTED_MODULE_2__surveyStrings__[\"a\" /* surveyLocalization */]\n .getString(\"panelDynamicProgressText\")[\"format\"](this.currentIndex + 1, rangeMax);\n },\n enumerable: true,\n configurable: true\n });\n return QuestionPanelDynamicModel;\n}(__WEBPACK_IMPORTED_MODULE_5__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_7__jsonobject__[\"c\" /* Serializer */].addClass(\"paneldynamic\", [\n {\n name: \"templateElements\",\n alternativeName: \"questions\",\n visible: false,\n isLightSerializable: false\n },\n { name: \"templateTitle:text\", serializationProperty: \"locTemplateTitle\" },\n {\n name: \"templateDescription:text\",\n serializationProperty: \"locTemplateDescription\"\n },\n { name: \"allowAddPanel:boolean\", default: true },\n { name: \"allowRemovePanel:boolean\", default: true },\n {\n name: \"panelCount:number\",\n default: 0,\n choices: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n },\n { name: \"minPanelCount:number\", default: 0, minValue: 0 },\n {\n name: \"maxPanelCount:number\",\n default: __WEBPACK_IMPORTED_MODULE_10__settings__[\"a\" /* settings */].panelMaximumPanelCount\n },\n \"defaultPanelValue:panelvalue\",\n \"defaultValueFromLastPanel:boolean\",\n {\n name: \"panelsState\",\n default: \"default\",\n choices: [\"default\", \"collapsed\", \"expanded\", \"firstExpanded\"]\n },\n { name: \"keyName\" },\n {\n name: \"keyDuplicationError\",\n serializationProperty: \"locKeyDuplicationError\"\n },\n { name: \"confirmDelete:boolean\" },\n {\n name: \"confirmDeleteText\",\n serializationProperty: \"locConfirmDeleteText\"\n },\n { name: \"panelAddText\", serializationProperty: \"locPanelAddText\" },\n { name: \"panelRemoveText\", serializationProperty: \"locPanelRemoveText\" },\n { name: \"panelPrevText\", serializationProperty: \"locPanelPrevText\" },\n { name: \"panelNextText\", serializationProperty: \"locPanelNextText\" },\n {\n name: \"showQuestionNumbers\",\n default: \"off\",\n choices: [\"off\", \"onPanel\", \"onSurvey\"]\n },\n { name: \"showRangeInProgress:boolean\", default: true },\n {\n name: \"renderMode\",\n default: \"list\",\n choices: [\"list\", \"progressTop\", \"progressBottom\", \"progressTopBottom\"]\n },\n {\n name: \"templateTitleLocation\",\n default: \"default\",\n choices: [\"default\", \"top\", \"bottom\", \"left\"]\n }\n], function () {\n return new QuestionPanelDynamicModel(\"\");\n}, \"question\");\n__WEBPACK_IMPORTED_MODULE_8__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"paneldynamic\", function (name) {\n return new QuestionPanelDynamicModel(name);\n});\n\n\n/***/ }),\n/* 172 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__question_baseselect__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__surveyStrings__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__itemvalue__ = __webpack_require__(15);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionRadiogroupModel; });\n\n\n\n\n\n\n/**\n * A Model for a radiogroup question.\n */\nvar QuestionRadiogroupModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionRadiogroupModel, _super);\n function QuestionRadiogroupModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n return _this;\n }\n QuestionRadiogroupModel.prototype.getType = function () {\n return \"radiogroup\";\n };\n QuestionRadiogroupModel.prototype.getFirstInputElementId = function () {\n return this.inputId + \"_0\";\n };\n Object.defineProperty(QuestionRadiogroupModel.prototype, \"selectedItem\", {\n get: function () {\n if (this.isEmpty())\n return null;\n return __WEBPACK_IMPORTED_MODULE_5__itemvalue__[\"a\" /* ItemValue */].getItemByValue(this.visibleChoices, this.value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRadiogroupModel.prototype, \"showClearButton\", {\n /**\n * Show \"clear button\" flag.\n */\n get: function () {\n return this.getPropertyValue(\"showClearButton\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"showClearButton\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRadiogroupModel.prototype, \"canShowClearButton\", {\n get: function () {\n return this.showClearButton && !this.isReadOnly;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRadiogroupModel.prototype, \"clearButtonCaption\", {\n get: function () {\n return __WEBPACK_IMPORTED_MODULE_4__surveyStrings__[\"a\" /* surveyLocalization */].getString(\"clearCaption\");\n },\n enumerable: true,\n configurable: true\n });\n QuestionRadiogroupModel.prototype.supportGoNextPageAutomatic = function () {\n return true;\n };\n return QuestionRadiogroupModel;\n}(__WEBPACK_IMPORTED_MODULE_3__question_baseselect__[\"a\" /* QuestionCheckboxBase */]));\n\n__WEBPACK_IMPORTED_MODULE_1__jsonobject__[\"c\" /* Serializer */].addClass(\"radiogroup\", [{ name: \"showClearButton:boolean\", default: false }], function () {\n return new QuestionRadiogroupModel(\"\");\n}, \"checkboxbase\");\n__WEBPACK_IMPORTED_MODULE_2__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"radiogroup\", function (name) {\n var q = new QuestionRadiogroupModel(name);\n q.choices = __WEBPACK_IMPORTED_MODULE_2__questionfactory__[\"a\" /* QuestionFactory */].DefaultChoices;\n return q;\n});\n\n\n/***/ }),\n/* 173 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__itemvalue__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__question__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__questionfactory__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__settings__ = __webpack_require__(10);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QuestionRatingModel; });\n\n\n\n\n\n\n/**\n * A Model for a rating question.\n */\nvar QuestionRatingModel = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(QuestionRatingModel, _super);\n function QuestionRatingModel(name) {\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.rates = _this.createItemValues(\"rates\");\n var self = _this;\n _this.registerFunctionOnPropertyValueChanged(\"rates\", function () {\n self.fireCallback(self.rateValuesChangedCallback);\n });\n _this.onPropertyChanged.add(function (sender, options) {\n if (options.name == \"rateMin\" ||\n options.name == \"rateMax\" ||\n options.name == \"rateStep\") {\n self.fireCallback(self.rateValuesChangedCallback);\n }\n });\n var locMinRateDescriptionValue = _this.createLocalizableString(\"minRateDescription\", _this, true);\n var locMaxRateDescriptionValue = _this.createLocalizableString(\"maxRateDescription\", _this, true);\n locMinRateDescriptionValue.onGetTextCallback = function (text) {\n return text ? text + \" \" : text;\n };\n locMaxRateDescriptionValue.onGetTextCallback = function (text) {\n return text ? \" \" + text : text;\n };\n return _this;\n }\n QuestionRatingModel.prototype.onSurveyLoad = function () {\n _super.prototype.onSurveyLoad.call(this);\n this.fireCallback(this.rateValuesChangedCallback);\n };\n Object.defineProperty(QuestionRatingModel.prototype, \"rateValues\", {\n /**\n * The list of rate items. Every item has value and text. If text is empty, the value is rendered. The item text supports markdown. If it is empty the array is generated by using rateMin, rateMax and rateStep properties.\n * @see rateMin\n * @see rateMax\n * @see rateStep\n */\n get: function () {\n return this.rates;\n },\n set: function (val) {\n this.setPropertyValue(\"rates\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRatingModel.prototype, \"rateMin\", {\n /**\n * This property is used to generate rate values if rateValues array is empty. It is the first value in the rating. The default value is 1.\n * @see rateValues\n * @see rateMax\n * @see rateStep\n */\n get: function () {\n return this.getPropertyValue(\"rateMin\");\n },\n set: function (val) {\n if (!this.isLoadingFromJson && val > this.rateMax - this.rateStep)\n val = this.rateMax - this.rateStep;\n this.setPropertyValue(\"rateMin\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRatingModel.prototype, \"rateMax\", {\n /**\n * This property is used to generate rate values if rateValues array is empty. It is the last value in the rating. The default value is 5.\n * @see rateValues\n * @see rateMin\n * @see rateStep\n */\n get: function () {\n return this.getPropertyValue(\"rateMax\");\n },\n set: function (val) {\n if (!this.isLoadingFromJson && val < this.rateMin + this.rateStep)\n val = this.rateMin + this.rateStep;\n this.setPropertyValue(\"rateMax\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRatingModel.prototype, \"rateStep\", {\n /**\n * This property is used to generate rate values if rateValues array is empty. It is the step value. The number of rate values are (rateMax - rateMin) / rateStep. The default value is 1.\n * @see rateValues\n * @see rateMin\n * @see rateMax\n */\n get: function () {\n return this.getPropertyValue(\"rateStep\");\n },\n set: function (val) {\n if (val <= 0)\n val = 1;\n if (!this.isLoadingFromJson && val > this.rateMax - this.rateMin)\n val = this.rateMax - this.rateMin;\n this.setPropertyValue(\"rateStep\", val);\n },\n enumerable: true,\n configurable: true\n });\n QuestionRatingModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n var res = __WEBPACK_IMPORTED_MODULE_1__itemvalue__[\"a\" /* ItemValue */].getTextOrHtmlByValue(this.visibleRateValues, value);\n return !!res ? res : value;\n };\n Object.defineProperty(QuestionRatingModel.prototype, \"visibleRateValues\", {\n get: function () {\n if (this.rateValues.length > 0)\n return this.rateValues;\n var res = [];\n var value = this.rateMin;\n while (value <= this.rateMax &&\n res.length < __WEBPACK_IMPORTED_MODULE_5__settings__[\"a\" /* settings */].ratingMaximumRateValueCount) {\n res.push(new __WEBPACK_IMPORTED_MODULE_1__itemvalue__[\"a\" /* ItemValue */](value));\n value += this.rateStep;\n }\n return res;\n },\n enumerable: true,\n configurable: true\n });\n QuestionRatingModel.prototype.getType = function () {\n return \"rating\";\n };\n QuestionRatingModel.prototype.supportGoNextPageAutomatic = function () {\n return true;\n };\n QuestionRatingModel.prototype.supportComment = function () {\n return true;\n };\n QuestionRatingModel.prototype.supportOther = function () {\n return true;\n };\n Object.defineProperty(QuestionRatingModel.prototype, \"minRateDescription\", {\n /**\n * The description of minimum (first) item.\n */\n get: function () {\n return this.getLocalizableStringText(\"minRateDescription\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"minRateDescription\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRatingModel.prototype, \"locMinRateDescription\", {\n get: function () {\n return this.getLocalizableString(\"minRateDescription\");\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRatingModel.prototype, \"maxRateDescription\", {\n /**\n * The description of maximum (last) item.\n */\n get: function () {\n return this.getLocalizableStringText(\"maxRateDescription\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"maxRateDescription\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(QuestionRatingModel.prototype, \"locMaxRateDescription\", {\n get: function () {\n return this.getLocalizableString(\"maxRateDescription\");\n },\n enumerable: true,\n configurable: true\n });\n return QuestionRatingModel;\n}(__WEBPACK_IMPORTED_MODULE_2__question__[\"a\" /* Question */]));\n\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"rating\", [\n { name: \"hasComment:boolean\", layout: \"row\" },\n {\n name: \"commentText\",\n serializationProperty: \"locCommentText\",\n layout: \"row\"\n },\n {\n name: \"rateValues:itemvalue[]\"\n },\n { name: \"rateMin:number\", default: 1 },\n { name: \"rateMax:number\", default: 5 },\n { name: \"rateStep:number\", default: 1, minValue: 1 },\n {\n name: \"minRateDescription\",\n alternativeName: \"mininumRateDescription\",\n serializationProperty: \"locMinRateDescription\"\n },\n {\n name: \"maxRateDescription\",\n alternativeName: \"maximumRateDescription\",\n serializationProperty: \"locMaxRateDescription\"\n }\n], function () {\n return new QuestionRatingModel(\"\");\n}, \"question\");\n__WEBPACK_IMPORTED_MODULE_4__questionfactory__[\"a\" /* QuestionFactory */].Instance.registerQuestion(\"rating\", function (name) {\n return new QuestionRatingModel(name);\n});\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsonobject__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__conditions__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__expressions_expressions__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__ = __webpack_require__(16);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return Trigger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SurveyTrigger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return SurveyTriggerVisible; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SurveyTriggerComplete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return SurveyTriggerSetValue; });\n/* unused harmony export SurveyTriggerSkip */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return SurveyTriggerRunExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return SurveyTriggerCopyValue; });\n\n\n\n\n\n\n\n/**\n * A base class for all triggers.\n * A trigger calls a method when the expression change the result: from false to true or from true to false.\n * Please note, it runs only one changing the expression result.\n */\nvar Trigger = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(Trigger, _super);\n function Trigger() {\n var _this = _super.call(this) || this;\n _this.usedNames = [];\n var self = _this;\n _this.registerFunctionOnPropertiesValueChanged([\"operator\", \"value\", \"name\"], function () {\n self.oldPropertiesChanged();\n });\n _this.registerFunctionOnPropertyValueChanged(\"expression\", function () {\n self.onExpressionChanged();\n });\n return _this;\n }\n Object.defineProperty(Trigger, \"operators\", {\n get: function () {\n if (Trigger.operatorsValue != null)\n return Trigger.operatorsValue;\n Trigger.operatorsValue = {\n empty: function (value, expectedValue) {\n return !value;\n },\n notempty: function (value, expectedValue) {\n return !!value;\n },\n equal: function (value, expectedValue) {\n return value == expectedValue;\n },\n notequal: function (value, expectedValue) {\n return value != expectedValue;\n },\n contains: function (value, expectedValue) {\n return value && value[\"indexOf\"] && value.indexOf(expectedValue) > -1;\n },\n notcontains: function (value, expectedValue) {\n return (!value || !value[\"indexOf\"] || value.indexOf(expectedValue) == -1);\n },\n greater: function (value, expectedValue) {\n return value > expectedValue;\n },\n less: function (value, expectedValue) {\n return value < expectedValue;\n },\n greaterorequal: function (value, expectedValue) {\n return value >= expectedValue;\n },\n lessorequal: function (value, expectedValue) {\n return value <= expectedValue;\n }\n };\n return Trigger.operatorsValue;\n },\n enumerable: true,\n configurable: true\n });\n Trigger.prototype.getType = function () {\n return \"triggerbase\";\n };\n Trigger.prototype.toString = function () {\n var res = this.getType().replace(\"trigger\", \"\");\n var exp = !!this.expression ? this.expression : this.buildExpression();\n if (exp) {\n res += \", \" + exp;\n }\n return res;\n };\n Object.defineProperty(Trigger.prototype, \"operator\", {\n get: function () {\n return this.getPropertyValue(\"operator\", \"equal\");\n },\n set: function (value) {\n if (!value)\n return;\n value = value.toLowerCase();\n if (!Trigger.operators[value])\n return;\n this.setPropertyValue(\"operator\", value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Trigger.prototype, \"value\", {\n get: function () {\n return this.getPropertyValue(\"value\", null);\n },\n set: function (val) {\n this.setPropertyValue(\"value\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Trigger.prototype, \"name\", {\n get: function () {\n return this.getPropertyValue(\"name\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"name\", val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Trigger.prototype, \"expression\", {\n get: function () {\n return this.getPropertyValue(\"expression\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"expression\", val);\n },\n enumerable: true,\n configurable: true\n });\n Trigger.prototype.checkExpression = function (keys, values, properties) {\n if (properties === void 0) { properties = null; }\n if (!this.isCheckRequired(keys))\n return;\n if (!!this.conditionRunner) {\n this.perform(values, properties);\n }\n };\n Trigger.prototype.check = function (value) {\n var triggerResult = Trigger.operators[this.operator](value, this.value);\n if (triggerResult) {\n this.onSuccess({}, null);\n }\n else {\n this.onFailure();\n }\n };\n Trigger.prototype.perform = function (values, properties) {\n var _this = this;\n this.conditionRunner.onRunComplete = function (res) {\n _this.triggerResult(res, values, properties);\n };\n this.conditionRunner.run(values, properties);\n };\n Trigger.prototype.triggerResult = function (res, values, properties) {\n if (res) {\n this.onSuccess(values, properties);\n }\n else {\n this.onFailure();\n }\n };\n Trigger.prototype.onSuccess = function (values, properties) { };\n Trigger.prototype.onFailure = function () { };\n Trigger.prototype.endLoadingFromJson = function () {\n _super.prototype.endLoadingFromJson.call(this);\n this.oldPropertiesChanged();\n };\n Trigger.prototype.oldPropertiesChanged = function () {\n this.onExpressionChanged();\n };\n Trigger.prototype.onExpressionChanged = function () {\n this.usedNames = [];\n this.hasFunction = false;\n this.conditionRunner = null;\n };\n Trigger.prototype.buildExpression = function () {\n if (!this.name)\n return \"\";\n if (__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* Helpers */].isValueEmpty(this.value) && this.isRequireValue)\n return \"\";\n return (\"{\" +\n this.name +\n \"} \" +\n this.operator +\n \" \" +\n __WEBPACK_IMPORTED_MODULE_5__expressions_expressions__[\"h\" /* OperandMaker */].toOperandString(this.value));\n };\n Trigger.prototype.isCheckRequired = function (keys) {\n if (!keys)\n return false;\n this.buildUsedNames();\n if (this.hasFunction === true)\n return true;\n for (var i = 0; i < this.usedNames.length; i++) {\n if (keys.hasOwnProperty(this.usedNames[i]))\n return true;\n }\n return false;\n };\n Trigger.prototype.buildUsedNames = function () {\n if (!!this.conditionRunner)\n return;\n var expression = this.expression;\n if (!expression) {\n expression = this.buildExpression();\n }\n if (!expression)\n return;\n this.conditionRunner = new __WEBPACK_IMPORTED_MODULE_4__conditions__[\"b\" /* ConditionRunner */](expression);\n this.hasFunction = this.conditionRunner.hasFunction();\n this.usedNames = this.conditionRunner.getVariables();\n var processValue = new __WEBPACK_IMPORTED_MODULE_6__conditionProcessValue__[\"a\" /* ProcessValue */]();\n for (var i = 0; i < this.usedNames.length; i++) {\n this.usedNames[i] = processValue.getFirstName(this.usedNames[i]);\n }\n };\n Object.defineProperty(Trigger.prototype, \"isRequireValue\", {\n get: function () {\n return this.operator !== \"empty\" && this.operator != \"notempty\";\n },\n enumerable: true,\n configurable: true\n });\n Trigger.operatorsValue = null;\n return Trigger;\n}(__WEBPACK_IMPORTED_MODULE_2__base__[\"a\" /* Base */]));\n\n/**\n * It extends the Trigger base class and add properties required for SurveyJS classes.\n */\nvar SurveyTrigger = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyTrigger, _super);\n function SurveyTrigger() {\n var _this = _super.call(this) || this;\n _this.owner = null;\n return _this;\n }\n SurveyTrigger.prototype.setOwner = function (owner) {\n this.owner = owner;\n };\n Object.defineProperty(SurveyTrigger.prototype, \"isOnNextPage\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n return SurveyTrigger;\n}(Trigger));\n\n/**\n * If expression returns true, it makes questions/pages visible.\n * Ohterwise it makes them invisible.\n */\nvar SurveyTriggerVisible = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyTriggerVisible, _super);\n function SurveyTriggerVisible() {\n var _this = _super.call(this) || this;\n _this.pages = [];\n _this.questions = [];\n return _this;\n }\n SurveyTriggerVisible.prototype.getType = function () {\n return \"visibletrigger\";\n };\n SurveyTriggerVisible.prototype.onSuccess = function (values, properties) {\n this.onTrigger(this.onItemSuccess);\n };\n SurveyTriggerVisible.prototype.onFailure = function () {\n this.onTrigger(this.onItemFailure);\n };\n SurveyTriggerVisible.prototype.onTrigger = function (func) {\n if (!this.owner)\n return;\n var objects = this.owner.getObjects(this.pages, this.questions);\n for (var i = 0; i < objects.length; i++) {\n func(objects[i]);\n }\n };\n SurveyTriggerVisible.prototype.onItemSuccess = function (item) {\n item.visible = true;\n };\n SurveyTriggerVisible.prototype.onItemFailure = function (item) {\n item.visible = false;\n };\n return SurveyTriggerVisible;\n}(SurveyTrigger));\n\n/**\n * If expression returns true, it completes the survey.\n */\nvar SurveyTriggerComplete = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyTriggerComplete, _super);\n function SurveyTriggerComplete() {\n return _super.call(this) || this;\n }\n SurveyTriggerComplete.prototype.getType = function () {\n return \"completetrigger\";\n };\n Object.defineProperty(SurveyTriggerComplete.prototype, \"isOnNextPage\", {\n get: function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n SurveyTriggerComplete.prototype.onSuccess = function (values, properties) {\n if (this.owner)\n this.owner.setCompleted();\n };\n return SurveyTriggerComplete;\n}(SurveyTrigger));\n\n/**\n * If expression returns true, the value from property **setValue** will be set to **setToName**\n */\nvar SurveyTriggerSetValue = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyTriggerSetValue, _super);\n function SurveyTriggerSetValue() {\n return _super.call(this) || this;\n }\n SurveyTriggerSetValue.prototype.getType = function () {\n return \"setvaluetrigger\";\n };\n SurveyTriggerSetValue.prototype.onSuccess = function (values, properties) {\n if (!this.setToName || !this.owner)\n return;\n this.owner.setTriggerValue(this.setToName, this.setValue, this.isVariable);\n };\n return SurveyTriggerSetValue;\n}(SurveyTrigger));\n\n/**\n * If expression returns true, the survey go to question **gotoName** and focus it.\n */\nvar SurveyTriggerSkip = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyTriggerSkip, _super);\n function SurveyTriggerSkip() {\n return _super.call(this) || this;\n }\n SurveyTriggerSkip.prototype.getType = function () {\n return \"skiptrigger\";\n };\n SurveyTriggerSkip.prototype.onSuccess = function (values, properties) {\n if (!this.gotoName || !this.owner)\n return;\n this.owner.focusQuestion(this.gotoName);\n };\n return SurveyTriggerSkip;\n}(SurveyTrigger));\n\n/**\n * If expression returns true, the **runExpression** will be run. If **setToName** property is not empty then the result of **runExpression** will be set to it.\n */\nvar SurveyTriggerRunExpression = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyTriggerRunExpression, _super);\n function SurveyTriggerRunExpression() {\n return _super.call(this) || this;\n }\n SurveyTriggerRunExpression.prototype.getType = function () {\n return \"runexpressiontrigger\";\n };\n SurveyTriggerRunExpression.prototype.onSuccess = function (values, properties) {\n var _this = this;\n if (!this.owner || !this.runExpression)\n return;\n var expression = new __WEBPACK_IMPORTED_MODULE_4__conditions__[\"a\" /* ExpressionRunner */](this.runExpression);\n if (expression.canRun) {\n expression.onRunComplete = function (res) {\n _this.onCompleteRunExpression(res);\n };\n expression.run(values, properties);\n }\n };\n SurveyTriggerRunExpression.prototype.onCompleteRunExpression = function (newValue) {\n if (!this.setToName || newValue !== undefined) {\n this.owner.setTriggerValue(this.setToName, newValue, false);\n }\n };\n return SurveyTriggerRunExpression;\n}(SurveyTrigger));\n\n/**\n * If expression returns true, the value from question **fromName** will be set into **setToName**.\n */\nvar SurveyTriggerCopyValue = /** @class */ (function (_super) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __extends */])(SurveyTriggerCopyValue, _super);\n function SurveyTriggerCopyValue() {\n return _super.call(this) || this;\n }\n SurveyTriggerCopyValue.prototype.getType = function () {\n return \"copyvaluetrigger\";\n };\n SurveyTriggerCopyValue.prototype.onSuccess = function (values, properties) {\n if (!this.setToName || !this.owner)\n return;\n this.owner.copyTriggerValue(this.setToName, this.fromName);\n };\n return SurveyTriggerCopyValue;\n}(SurveyTrigger));\n\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"trigger\", [\n { name: \"operator\", default: \"equal\", visible: false },\n { name: \"value\", visible: false },\n \"expression:condition\"\n]);\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"surveytrigger\", [{ name: \"name\", visible: false }], null, \"trigger\");\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"visibletrigger\", [\"pages:pages\", \"questions:questions\"], function () {\n return new SurveyTriggerVisible();\n}, \"surveytrigger\");\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"completetrigger\", [], function () {\n return new SurveyTriggerComplete();\n}, \"surveytrigger\");\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"setvaluetrigger\", [\n { name: \"!setToName:question\" },\n {\n name: \"!setValue:triggervalue\",\n dependsOn: \"setToName\",\n visibleIf: function (obj) {\n return !!obj && !!obj[\"setToName\"];\n }\n },\n { name: \"isVariable:boolean\", visible: false }\n], function () {\n return new SurveyTriggerSetValue();\n}, \"surveytrigger\");\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"copyvaluetrigger\", [{ name: \"!setToName:question\" }, { name: \"!fromName:question\" }], function () {\n return new SurveyTriggerCopyValue();\n}, \"surveytrigger\");\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"skiptrigger\", [{ name: \"!gotoName:question\" }], function () {\n return new SurveyTriggerSkip();\n}, \"surveytrigger\");\n__WEBPACK_IMPORTED_MODULE_3__jsonobject__[\"c\" /* Serializer */].addClass(\"runexpressiontrigger\", [{ name: \"setToName:question\" }, \"runExpression:expression\"], function () {\n return new SurveyTriggerRunExpression();\n}, \"surveytrigger\");\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export compareVersions */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return confirmAction; });\n/* unused harmony export isMobile */\nfunction compareVersions(a, b) {\n var i, diff;\n var regExStrip0 = /(\\.0+)+$/;\n var segmentsA = a.replace(regExStrip0, \"\").split(\".\");\n var segmentsB = b.replace(regExStrip0, \"\").split(\".\");\n var l = Math.min(segmentsA.length, segmentsB.length);\n for (i = 0; i < l; i++) {\n diff = parseInt(segmentsA[i], 10) - parseInt(segmentsB[i], 10);\n if (diff) {\n return diff;\n }\n }\n return segmentsA.length - segmentsB.length;\n}\nfunction confirmAction(message) {\n return confirm(message);\n}\nfunction isMobile() {\n return typeof window.orientation !== \"undefined\";\n}\n\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * vue-class-component v5.0.0\n * (c) 2015-2017 Evan You\n * @license MIT\n */\n\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(__webpack_require__(2));\n\nfunction createDecorator(factory) {\n return function (_, key, index) {\n if (typeof index !== 'number') {\n index = undefined;\n }\n $decoratorQueue.push(function (options) { return factory(options, key, index); });\n };\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n Component.prototype._init = function () {\n var _this = this;\n var keys = Object.getOwnPropertyNames(vm);\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n keys.forEach(function (key) {\n if (key.charAt(0) !== '_') {\n Object.defineProperty(_this, key, {\n get: function () { return vm[key]; },\n set: function (value) { return vm[key] = value; }\n });\n }\n });\n };\n var data = new Component();\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' +\n 'when class property is used.');\n }\n }\n return plainData;\n}\n\nvar $internalHooks = [\n 'data',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeDestroy',\n 'destroyed',\n 'beforeUpdate',\n 'updated',\n 'activated',\n 'deactivated',\n 'render'\n];\nvar $decoratorQueue = [];\nfunction componentFactory(Component, options) {\n if (options === void 0) { options = {}; }\n options.name = options.name || Component._componentTag;\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n }\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n }\n else if (descriptor.get || descriptor.set) {\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n return collectDataFromConstructor(this, Component);\n }\n });\n $decoratorQueue.forEach(function (fn) { return fn(options); });\n $decoratorQueue = [];\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue\n ? superProto.constructor\n : Vue;\n return Super.extend(options);\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n(function (Component) {\n function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, keys);\n }\n Component.registerHooks = registerHooks;\n})(Component || (Component = {}));\nvar Component$1 = Component;\n\nexports['default'] = Component$1;\nexports.createDecorator = createDecorator;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(28)))\n\n/***/ }),\n/* 177 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\")\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-05052c0a\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 178 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"fieldset\",\n { class: _vm.question.cssClasses.root },\n [\n _c(\"legend\", {\n attrs: { \"aria-label\": _vm.question.locTitle.renderedHtml }\n }),\n _vm._v(\" \"),\n _vm._l(_vm.question.visibleChoices, function(item, index) {\n return !_vm.question.hasColumns\n ? _c(\"survey-radiogroup-item\", {\n key: item.value,\n class: _vm.getItemClass(item),\n attrs: { question: _vm.question, item: item, index: index }\n })\n : _vm._e()\n }),\n _vm._v(\" \"),\n _vm._l(_vm.question.columns, function(column, colIndex) {\n return _vm.question.hasColumns\n ? _c(\n \"div\",\n { class: _vm.question.getColumnClass() },\n _vm._l(column, function(item, index) {\n return _c(\"survey-radiogroup-item\", {\n key: item.value,\n class: _vm.getItemClass(item),\n attrs: {\n question: _vm.question,\n item: item,\n index: \"\" + colIndex + index\n }\n })\n })\n )\n : _vm._e()\n }),\n _vm._v(\" \"),\n _vm.question.canShowClearButton\n ? _c(\"div\", [\n _c(\"input\", {\n class: _vm.question.cssClasses.clearButton,\n attrs: { type: \"button\", value: _vm.question.clearButtonCaption },\n on: {\n click: function() {\n _vm.question.clearValue()\n }\n }\n })\n ])\n : _vm._e()\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-06c6d526\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 179 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", {\n class: _vm.question.cssClasses.root,\n domProps: { innerHTML: _vm._s(_vm.question.locHtml.renderedHtml) }\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-0742e16d\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 180 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"textarea\", {\n class: _vm.question.cssClasses\n ? _vm.question.cssClasses.root\n : \"panel-comment-root\",\n attrs: {\n type: \"text\",\n readonly: _vm.question.isReadOnly,\n disabled: _vm.question.isReadOnly,\n id: _vm.question.inputId,\n maxlength: _vm.question.getMaxLength(),\n cols: _vm.question.cols,\n \"aria-label\": _vm.question.locTitle.renderedHtml,\n rows: _vm.question.rows,\n placeholder: _vm.question.placeHolder\n },\n domProps: { value: _vm.question.value },\n on: { change: _vm.change, keyup: _vm.keyup }\n })\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-099c2c8d\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 181 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { style: { overflowX: _vm.question.horizontalScroll ? \"scroll\" : \"\" } },\n [_c(\"survey-matrixtable\", { attrs: { question: _vm.question } })],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-0b4da6d8\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 182 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.question.isVisible\n ? _c(\n \"div\",\n {\n class: _vm.question.cssClasses.panel.container,\n style: _vm.rootStyle\n },\n [\n _c(\n \"h4\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.hasTitle,\n expression: \"hasTitle\"\n }\n ],\n class: _vm.getTitleStyle(),\n on: { click: _vm.changeExpanded }\n },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.question.locTitle }\n }),\n _vm._v(\" \"),\n _c(\"span\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showIcon,\n expression: \"showIcon\"\n }\n ],\n class: _vm.iconCss\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { class: _vm.question.cssClasses.panel.description },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.question.locDescription }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"survey-errors\", { attrs: { question: _vm.question } }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.isCollapsed,\n expression: \"!isCollapsed\"\n }\n ],\n class: _vm.question.cssClasses.panel.content,\n style: { paddingLeft: _vm.question.innerPaddingLeft }\n },\n _vm._l(_vm.rows, function(row, index) {\n return row.visible\n ? _c(\n \"div\",\n { key: _vm.question.id + \"_\" + index, class: _vm.css.row },\n [\n _c(\"survey-row\", {\n attrs: { row: row, survey: _vm.survey, css: _vm.css }\n })\n ],\n 1\n )\n : _vm._e()\n })\n )\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-0c78899c\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 183 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [_vm._v(_vm._s(_vm.text))])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-0d2abe21\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 184 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"fieldset\",\n { class: _vm.question.cssClasses.root },\n [\n _c(\"legend\", {\n attrs: { \"aria-label\": _vm.question.locTitle.renderedHtml }\n }),\n _vm._v(\" \"),\n _vm._l(_vm.question.visibleChoices, function(item, index) {\n return _c(\"div\", { key: item.value, class: _vm.getItemClass(item) }, [\n _c(\"label\", { class: _vm.question.cssClasses.label }, [\n _vm.question.multiSelect\n ? _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.question.value,\n expression: \"question.value\"\n }\n ],\n class: _vm.question.cssClasses.itemControl,\n staticStyle: { display: \"none\" },\n attrs: {\n type: \"checkbox\",\n name: _vm.question.name + \"_\" + _vm.question.id,\n id: _vm.question.inputId + \"_\" + item.value,\n disabled: _vm.question.isReadOnly || !item.isEnabled,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\": _vm.question.locTitle.renderedHtml\n },\n domProps: {\n value: item.value,\n checked: Array.isArray(_vm.question.value)\n ? _vm._i(_vm.question.value, item.value) > -1\n : _vm.question.value\n },\n on: {\n click: function($event) {\n var $$a = _vm.question.value,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = item.value,\n $$i = _vm._i($$a, $$v)\n if ($$c) {\n $$i < 0 && (_vm.question.value = $$a.concat($$v))\n } else {\n $$i > -1 &&\n (_vm.question.value = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.question.value = $$c\n }\n }\n }\n })\n : _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.question.value,\n expression: \"question.value\"\n }\n ],\n class: _vm.question.cssClasses.itemControl,\n staticStyle: { display: \"none\" },\n attrs: {\n type: \"radio\",\n name: _vm.question.name + \"_\" + _vm.question.id,\n id: _vm.question.inputId + \"_\" + item.value,\n disabled: _vm.question.isReadOnly || !item.isEnabled,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\": _vm.question.locTitle.renderedHtml\n },\n domProps: {\n value: item.value,\n checked: _vm._q(_vm.question.value, item.value)\n },\n on: {\n click: function($event) {\n _vm.question.value = item.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm.question.contentMode === \"image\"\n ? _c(\"img\", {\n class: _vm.question.cssClasses.image,\n style: { objectFit: _vm.question.imageFit },\n attrs: {\n src: item.imageLink,\n width: _vm.question.imageWidth\n ? _vm.question.imageWidth + \"px\"\n : undefined,\n height: _vm.question.imageHeight\n ? _vm.question.imageHeight + \"px\"\n : undefined,\n alt: item.text || item.value\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.contentMode === \"video\"\n ? _c(\"embed\", {\n class: _vm.question.cssClasses.image,\n style: { objectFit: _vm.question.imageFit },\n attrs: {\n src: item.imageLink,\n width: _vm.question.imageWidth\n ? _vm.question.imageWidth + \"px\"\n : undefined,\n height: _vm.question.imageHeight\n ? _vm.question.imageHeight + \"px\"\n : undefined\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.showLabel\n ? _c(\n \"span\",\n {\n class: _vm.question.cssClasses.itemText,\n attrs: { title: item.text || item.value }\n },\n [_vm._v(_vm._s(item.text || item.value))]\n )\n : _vm._e()\n ])\n ])\n ])\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-153fe052\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 185 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { class: _vm.question.cssClasses.text }, [\n _vm._v(_vm._s(_vm.question.displayValue))\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-1d20865a\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 186 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _vm.hasHtml\n ? _c(\"div\", { domProps: { innerHTML: _vm._s(_vm.customHtml) } })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.hasDefaultRender\n ? _c(_vm.componentName, {\n tag: \"component\",\n attrs: { question: _vm.question, css: _vm.css }\n })\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-1e61a7b7\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 187 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { class: _vm.question.cssClasses.root }, [\n _c(\"label\", { class: _vm.itemClass }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.question.checkedValue,\n expression: \"question.checkedValue\"\n }\n ],\n class: _vm.question.cssClasses.control,\n attrs: {\n type: \"checkbox\",\n name: _vm.question.name,\n id: _vm.question.inputId,\n disabled: _vm.question.isReadOnly,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\": _vm.question.locTitle.renderedHtml\n },\n domProps: {\n value: _vm.question.checkedValue,\n indeterminate: _vm.question.isIndeterminate,\n checked: Array.isArray(_vm.question.checkedValue)\n ? _vm._i(_vm.question.checkedValue, _vm.question.checkedValue) > -1\n : _vm.question.checkedValue\n },\n on: {\n click: function($event) {\n var $$a = _vm.question.checkedValue,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = _vm.question.checkedValue,\n $$i = _vm._i($$a, $$v)\n if ($$c) {\n $$i < 0 && (_vm.question.checkedValue = $$a.concat($$v))\n } else {\n $$i > -1 &&\n (_vm.question.checkedValue = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.question.checkedValue = $$c\n }\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"span\", { class: _vm.getLabelClass(false) }, [\n _vm._v(_vm._s(_vm.question.locLabelFalse.renderedHtml))\n ]),\n _vm._v(\" \"),\n _c(\"div\", { class: _vm.question.cssClasses.switch }, [\n _c(\"span\", { class: _vm.question.cssClasses.slider })\n ]),\n _vm._v(\" \"),\n _c(\"span\", { class: _vm.getLabelClass(true) }, [\n _vm._v(_vm._s(_vm.question.locLabelTrue.renderedHtml))\n ])\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-1edb9dd6\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 188 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { class: _vm.question.cssClasses.root }, [\n !_vm.question.isReadOnly\n ? _c(\"input\", {\n class: _vm.question.cssClasses.fileInput,\n attrs: {\n type: \"file\",\n id: _vm.question.inputId,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\": _vm.question.locTitle.renderedHtml,\n multiple: _vm.question.allowMultiple ? \"multiple\" : undefined,\n title: _vm.question.inputTitle,\n accept: _vm.question.acceptedTypes\n },\n on: { change: _vm.doChange }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.isReadOnly\n ? _c(\"input\", {\n class: _vm.getPlaceholderClass(),\n staticStyle: { color: \"transparent\" },\n attrs: { type: \"file\", disabled: \"\", placeholder: _vm.question.title }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n class: _vm.question.cssClasses.fileDecorator,\n on: { drop: _vm.onDrop, dragover: _vm.onDragOver }\n },\n [\n _c(\"div\", { class: _vm.question.cssClasses.wrapper }, [\n _c(\n \"label\",\n {\n class:\n _vm.question.cssClasses.chooseFile +\n (_vm.question.isReadOnly\n ? \" \" + _vm.question.cssClasses.disabled\n : \"\"),\n attrs: { for: _vm.question.inputId }\n },\n [_vm._v(_vm._s(_vm.question.chooseButtonCaption))]\n ),\n _vm._v(\" \"),\n _vm.question.isEmpty()\n ? _c(\"span\", { class: _vm.question.cssClasses.noFileChosen }, [\n _vm._v(_vm._s(_vm.question.noFileChosenCaption))\n ])\n : _vm._e()\n ])\n ]\n ),\n _vm._v(\" \"),\n !_vm.question.isReadOnly && !_vm.question.isEmpty()\n ? _c(\n \"button\",\n {\n class: _vm.question.cssClasses.removeButton,\n attrs: { type: \"button\" },\n on: { click: _vm.doClean }\n },\n [_vm._v(_vm._s(_vm.question.cleanButtonCaption))]\n )\n : _vm._e(),\n _vm._v(\" \"),\n !_vm.question.isEmpty()\n ? _c(\n \"div\",\n _vm._l(_vm.question.previewValue, function(val, index) {\n return _c(\n \"span\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: val,\n expression: \"val\"\n }\n ],\n key: _vm.question.inputId + \"_\" + index,\n class: _vm.question.cssClasses.preview\n },\n [\n val.name\n ? _c(\"div\", { class: _vm.question.cssClasses.fileSign }, [\n _c(\n \"a\",\n {\n attrs: {\n href: val.content,\n title: val.name,\n download: val.name,\n width: _vm.question.imageWidth\n }\n },\n [_vm._v(_vm._s(val.name))]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.canPreviewImage(val)\n ? _c(\"img\", {\n attrs: {\n src: val.content,\n height: _vm.question.imageHeight,\n width: _vm.question.imageWidth,\n alt: \"File preview\"\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n val.name && !_vm.question.isReadOnly\n ? _c(\"div\", [\n _c(\n \"span\",\n {\n class: _vm.question.cssClasses.removeFile,\n on: {\n click: function($event) {\n _vm.doRemoveFile(val)\n }\n }\n },\n [_vm._v(_vm._s(_vm.question.removeFileCaption))]\n ),\n _vm._v(\" \"),\n _c(\n \"svg\",\n {\n class: _vm.question.cssClasses.removeFileSvg,\n attrs: { viewBox: \"0 0 16 16\" },\n on: {\n click: function($event) {\n _vm.doRemoveFile(val)\n }\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M8,2C4.7,2,2,4.7,2,8s2.7,6,6,6s6-2.7,6-6S11.3,2,8,2z M11,10l-1,1L8,9l-2,2l-1-1l2-2L5,6l1-1l2,2l2-2l1,1L9,8 L11,10z\"\n }\n })\n ]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n val.name\n ? _c(\n \"div\",\n { class: _vm.question.cssClasses.fileSignBottom },\n [\n _c(\n \"a\",\n {\n attrs: {\n href: val.content,\n title: val.name,\n download: val.name,\n width: _vm.question.imageWidth\n }\n },\n [_vm._v(_vm._s(val.name))]\n )\n ]\n )\n : _vm._e()\n ]\n )\n })\n )\n : _vm._e(),\n _vm._v(\" \"),\n !_vm.question.isReadOnly && !_vm.question.isEmpty()\n ? _c(\n \"button\",\n {\n class: _vm.question.cssClasses.removeButtonBottom,\n attrs: { type: \"button\" },\n on: { click: _vm.doClean }\n },\n [_vm._v(_vm._s(_vm.question.cleanButtonCaption))]\n )\n : _vm._e()\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-20f70284\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 189 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { class: _vm.getHeaderClass(_vm.element) }, [\n _vm.element.hasTitle\n ? _c(\n \"h5\",\n { class: _vm.getTitleClass(_vm.element) },\n [\n _vm.element.no\n ? _c(\n \"span\",\n {\n class: _vm.element.cssClasses.number,\n staticStyle: { position: \"static\" }\n },\n [_vm._v(_vm._s(_vm.element.no))]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.element.no\n ? _c(\"span\", { staticStyle: { position: \"static\" } }, [\n _vm._v(\". \")\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"survey-string\", { attrs: { locString: _vm.element.locTitle } }),\n _vm._v(\" \"),\n !_vm.element.getQuestionTitleTemplate()\n ? _c(\"span\", { class: _vm.element.cssClasses.requiredText }, [\n _vm._v(_vm._s(_vm.element.requiredText))\n ])\n : _vm._e()\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.element.hasDescriptionUnderTitle\n ? _c(\n \"div\",\n { class: _vm.element.cssClasses.description },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.element.locDescription }\n })\n ],\n 1\n )\n : _vm._e()\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-27adc537\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 190 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { class: _vm.css.progress }, [\n _c(\n \"div\",\n {\n class: _vm.css.progressBar,\n style: { width: _vm.progress },\n attrs: {\n role: \"progressbar\",\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\"\n }\n },\n [\n _c(\n \"span\",\n { class: _vm.css.progressText + \" \" + _vm.css.progressTextInBar },\n [_vm._v(_vm._s(_vm.survey.progressText))]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n { class: _vm.css.progressText + \" \" + _vm.css.progressTextUnderBar },\n [_vm._v(_vm._s(_vm.survey.progressText))]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-27e325ef\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 191 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"textarea\", {\n class: _vm.question.cssClasses.other || _vm.commentClass,\n attrs: {\n readonly: _vm.question.isReadOnly,\n disabled: _vm.question.isReadOnly,\n maxlength: _vm.question.getOthersMaxLength(),\n placeholder: _vm.question.otherPlaceHolder,\n \"aria-label\": _vm.question.locTitle.renderedHtml\n },\n domProps: { value: _vm.question.comment },\n on: { change: _vm.change, keyup: _vm.keyup }\n })\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-2ed776ff\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 192 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"td\",\n { class: _vm.getCellClass(), attrs: { headers: _vm.getHeaders() } },\n [\n _vm.cell.hasQuestion\n ? _c(\n \"div\",\n [\n _vm.hasErrorsOnTop\n ? _c(\"survey-errors\", {\n attrs: { question: _vm.cell.question, location: \"top\" }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(_vm.getWidgetComponentName(_vm.cell.question), {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.isVisible,\n expression: \"isVisible\"\n }\n ],\n tag: \"component\",\n attrs: { question: _vm.cell.question }\n }),\n _vm._v(\" \"),\n _vm.hasErrorsOnBottom\n ? _c(\"survey-errors\", {\n attrs: { question: _vm.cell.question, location: \"bottom\" }\n })\n : _vm._e()\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.cell.isRemoveRow\n ? _c(\n \"button\",\n {\n class:\n _vm.question.cssClasses.button +\n \" \" +\n _vm.question.cssClasses.buttonRemove,\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n _vm.removeRowClick()\n }\n }\n },\n [\n _c(\"span\", [_vm._v(_vm._s(_vm.question.removeRowText))]),\n _vm._v(\" \"),\n _c(\"span\", { class: _vm.question.cssClasses.iconRemove })\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.cell.hasTitle\n ? _c(\"survey-string\", { attrs: { locString: _vm.cell.locTitle } })\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-3ca54ee5\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 193 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"input\", {\n class: _vm.question.cssClasses.root,\n attrs: {\n disabled: _vm.question.isReadOnly,\n type: _vm.question.inputType,\n maxlength: _vm.question.getMaxLength(),\n size: _vm.question.size,\n id: _vm.question.inputId,\n placeholder: _vm.question.placeHolder,\n \"aria-label\": _vm.question.locTitle.renderedHtml\n },\n domProps: { value: _vm.question.value },\n on: { change: _vm.change, keyup: _vm.keyup }\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-40ece422\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 194 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { class: _vm.css.page.root },\n [\n _vm.showHeader\n ? _c(\n \"h4\",\n { class: _vm.css.pageTitle },\n [_c(\"survey-string\", { attrs: { locString: _vm.page.locTitle } })],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showHeader\n ? _c(\n \"div\",\n { class: _vm.css.pageDescription },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.page.locDescription }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(_vm.rows, function(row, index) {\n return row.visible\n ? _c(\n \"div\",\n { key: _vm.page.id + \"_\" + index, class: _vm.css.row },\n [\n _c(\"survey-row\", {\n attrs: { row: row, survey: _vm.survey, css: _vm.css }\n })\n ],\n 1\n )\n : _vm._e()\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-4e962a51\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 195 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.isShow,\n expression: \"isShow\"\n }\n ],\n class: _vm.classes,\n attrs: { role: \"alert\" }\n },\n _vm._l(_vm.question.errors, function(error) {\n return _c(\"div\", [\n _c(\"span\", {\n class: _vm.question.cssClasses\n ? _vm.question.cssClasses.error.icon\n : \"panel-error-icon\",\n attrs: { \"aria-hidden\": \"true\" }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n class: _vm.question.cssClasses\n ? _vm.question.cssClasses.error.item\n : \"panel-error-item\"\n },\n [_c(\"survey-string\", { attrs: { locString: error.locText } })],\n 1\n )\n ])\n })\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-5682e6ad\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 196 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"label\", { class: _vm.getLabelClass(_vm.item) }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.question.renderedValue,\n expression: \"question.renderedValue\"\n }\n ],\n class: _vm.question.cssClasses.itemControl,\n attrs: {\n type: \"radio\",\n name: _vm.question.name + \"_\" + _vm.question.id,\n id: _vm.question.inputId + \"_\" + _vm.index,\n disabled: _vm.question.isReadOnly || !_vm.item.isEnabled,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\": _vm.item.locText.renderedHtml\n },\n domProps: {\n value: _vm.item.value,\n checked: _vm._q(_vm.question.renderedValue, _vm.item.value)\n },\n on: {\n click: function($event) {\n _vm.question.renderedValue = _vm.item.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"span\", { class: _vm.question.cssClasses.materialDecorator }, [\n _c(\n \"svg\",\n {\n class: _vm.question.cssClasses.itemDecorator,\n attrs: { viewBox: \"-12 -12 24 24\" }\n },\n [_c(\"circle\", { attrs: { r: \"6\", cx: \"0\", cy: \"0\" } })]\n )\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"check\" }),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n class: _vm.getControlLabelClass(_vm.item),\n attrs: { title: _vm.item.locText.koRenderedHtml }\n },\n [_c(\"survey-string\", { attrs: { locString: _vm.item.locText } })],\n 1\n )\n ]),\n _vm._v(\" \"),\n _vm.item.value == _vm.question.otherItem.value\n ? _c(\"survey-other-choice\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n _vm.question.hasOther &&\n _vm.question.renderedValue &&\n _vm.question.isOtherSelected,\n expression:\n \"question.hasOther && question.renderedValue && question.isOtherSelected\"\n }\n ],\n attrs: { question: _vm.question }\n })\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-5bbe97b9\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 197 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.surveyWindow.isShowing,\n expression: \"surveyWindow.isShowing\"\n }\n ],\n class: _vm.css.window.root,\n staticStyle: {\n position: \"fixed\",\n bottom: \"3px\",\n right: \"10px\",\n \"max-width\": \"60%\"\n }\n },\n [\n _c(\"div\", { class: _vm.css.window.header.root }, [\n _c(\n \"span\",\n {\n staticStyle: { width: \"100%\", cursor: \"pointer\" },\n on: { click: _vm.doExpand }\n },\n [\n _c(\n \"span\",\n {\n class: _vm.css.window.header.title,\n staticStyle: { \"padding-right\": \"10px\" }\n },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.windowSurvey.locTitle }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"span\", {\n class: _vm.expandedCss,\n attrs: { \"aria-hidden\": \"true\" }\n })\n ]\n ),\n _vm._v(\" \"),\n _vm.isExpandedSurvey\n ? _c(\n \"span\",\n {\n staticStyle: { float: \"right\", cursor: \"pointer\" },\n on: { click: _vm.doExpand }\n },\n [\n _c(\n \"span\",\n {\n class: _vm.css.window.header.title,\n staticStyle: { \"padding-right\": \"10px\" }\n },\n [_vm._v(\"X\")]\n )\n ]\n )\n : _vm._e()\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.isExpandedSurvey,\n expression: \"isExpandedSurvey\"\n }\n ],\n class: _vm.css.window.body\n },\n [_c(\"survey\", { attrs: { survey: _vm.windowSurvey } })],\n 1\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-62f588b2\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 198 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { class: _vm.css.root }, [\n _c(\"form\", { attrs: { onsubmit: \"return false;\" } }, [\n _c(\"div\", { staticClass: \"sv_custom_header\" }),\n _vm._v(\" \"),\n _c(\n \"div\",\n { class: _vm.css.container },\n [\n _vm.hasTitle\n ? _c(\"div\", { class: _vm.css.header }, [\n _c(\n \"h3\",\n { class: _vm.css.title },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.survey.locTitle }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"h5\",\n { class: _vm.css.description },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.survey.locDescription }\n })\n ],\n 1\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.state === \"starting\"\n ? [\n _c(\n \"div\",\n { class: _vm.css.body },\n [\n _vm.survey.isNavigationButtonsShowing === \"top\" ||\n _vm.survey.isNavigationButtonsShowing === \"both\"\n ? _c(\"div\", { class: _vm.css.footer }, [\n _c(\"input\", {\n class: _vm.getNavBtnClasses(\"start\"),\n attrs: {\n type: \"button\",\n value: _vm.survey.startSurveyText\n },\n on: { click: _vm.start }\n })\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"survey-page\", {\n attrs: {\n id: _vm.survey.startedPage.id,\n survey: _vm.survey,\n page: _vm.survey.startedPage,\n css: _vm.css\n }\n }),\n _vm._v(\" \"),\n _vm.survey.isNavigationButtonsShowing === \"bottom\" ||\n _vm.survey.isNavigationButtonsShowing === \"both\"\n ? _c(\"div\", { class: _vm.css.footer }, [\n _c(\"input\", {\n class: _vm.getNavBtnClasses(\"start\"),\n attrs: {\n type: \"button\",\n value: _vm.survey.startSurveyText\n },\n on: { click: _vm.start }\n })\n ])\n : _vm._e()\n ],\n 1\n )\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.state === \"running\"\n ? [\n _c(\n \"div\",\n { class: _vm.css.body },\n [\n _vm.survey.isShowProgressBarOnTop\n ? _c(\"survey-progress\", {\n attrs: { survey: _vm.survey, css: _vm.css }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.isTimerPanelShowingOnTop\n ? _c(\"survey-timerpanel\", {\n attrs: { survey: _vm.survey, css: _vm.css }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.isNavigationButtonsShowing === \"top\" ||\n _vm.survey.isNavigationButtonsShowing === \"both\"\n ? _c(\"div\", { class: _vm.css.footer }, [\n _c(\"input\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !_vm.survey.isFirstPage &&\n _vm.survey.isShowPrevButton,\n expression:\n \"!survey.isFirstPage && survey.isShowPrevButton\"\n }\n ],\n class: _vm.getNavBtnClasses(\"prev\"),\n attrs: {\n type: \"button\",\n value: _vm.survey.pagePrevText\n },\n on: { click: _vm.prevPage }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.survey.isLastPage,\n expression: \"!survey.isLastPage\"\n }\n ],\n class: _vm.getNavBtnClasses(\"next\"),\n attrs: {\n type: \"button\",\n value: _vm.survey.pageNextText\n },\n on: { click: _vm.nextPage }\n }),\n _vm._v(\" \"),\n _vm.survey.isEditMode\n ? _c(\"input\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.survey.isLastPage,\n expression: \"survey.isLastPage\"\n }\n ],\n class: _vm.getNavBtnClasses(\"complete\"),\n attrs: {\n type: \"button\",\n value: _vm.survey.completeText\n },\n on: { click: _vm.completeLastPage }\n })\n : _vm._e()\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"survey-page\", {\n attrs: {\n id: _vm.survey.currentPage.id,\n survey: _vm.survey,\n page: _vm.survey.currentPage,\n css: _vm.css\n }\n }),\n _vm._v(\" \"),\n _vm.survey.isTimerPanelShowingOnBottom\n ? _c(\"survey-timerpanel\", {\n attrs: { survey: _vm.survey, css: _vm.css }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.isShowProgressBarOnBottom\n ? _c(\"survey-progress\", {\n attrs: { survey: _vm.survey, css: _vm.css }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.isNavigationButtonsShowing === \"bottom\" ||\n _vm.survey.isNavigationButtonsShowing === \"both\"\n ? _c(\"div\", { class: _vm.css.footer }, [\n _c(\"input\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !_vm.survey.isFirstPage &&\n _vm.survey.isShowPrevButton,\n expression:\n \"!survey.isFirstPage && survey.isShowPrevButton\"\n }\n ],\n class: _vm.getNavBtnClasses(\"prev\"),\n attrs: {\n type: \"button\",\n value: _vm.survey.pagePrevText\n },\n on: { click: _vm.prevPage }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.survey.isLastPage,\n expression: \"!survey.isLastPage\"\n }\n ],\n class: _vm.getNavBtnClasses(\"next\"),\n attrs: {\n type: \"button\",\n value: _vm.survey.pageNextText\n },\n on: { click: _vm.nextPage }\n }),\n _vm._v(\" \"),\n _vm.survey.isEditMode\n ? _c(\"input\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.survey.isLastPage,\n expression: \"survey.isLastPage\"\n }\n ],\n class: _vm.getNavBtnClasses(\"complete\"),\n attrs: {\n type: \"button\",\n value: _vm.survey.completeText\n },\n on: { click: _vm.completeLastPage }\n })\n : _vm._e()\n ])\n : _vm._e()\n ],\n 1\n )\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.hasCompletedPage\n ? _c(\"div\", [\n _c(\"div\", {\n class: _vm.getCompletedPageClasses(),\n domProps: {\n innerHTML: _vm._s(_vm.survey.processedCompletedHtml)\n }\n }),\n _vm._v(\" \"),\n _vm.survey.completedState != \"\"\n ? _c(\"div\", { class: _vm.css.saveData.root }, [\n _c(\"div\", { class: _vm.getCompletedStateClasses() }, [\n _c(\"span\", [\n _vm._v(_vm._s(_vm.survey.completedStateText))\n ]),\n _vm._v(\" \"),\n _vm.survey.completedState == \"error\"\n ? _c(\"input\", {\n class: _vm.css.saveData.saveAgainButton,\n attrs: {\n type: \"button\",\n value: _vm.survey.getLocString(\n \"saveAgainButton\"\n )\n },\n on: { click: _vm.doTrySaveAgain }\n })\n : _vm._e()\n ])\n ])\n : _vm._e()\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.state === \"completedbefore\"\n ? _c(\"div\", {\n class: _vm.css.body,\n domProps: {\n innerHTML: _vm._s(_vm.survey.processedCompletedBeforeHtml)\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.state === \"loading\"\n ? _c(\"div\", {\n class: _vm.css.body,\n domProps: { innerHTML: _vm._s(_vm.survey.processedLoadingHtml) }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.survey.state === \"empty\"\n ? _c(\"div\", { class: _vm.css.bodyEmpty }, [\n _vm._v(_vm._s(_vm.survey.emptySurveyText))\n ])\n : _vm._e()\n ],\n 2\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-6874e1c8\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 199 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { class: _vm.question.cssClasses.root },\n [\n !_vm.question.isReadOnly\n ? _c(\"div\", { class: _vm.question.cssClasses.selectWrapper }, [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.question.renderedValue,\n expression: \"question.renderedValue\"\n }\n ],\n class: _vm.question.cssClasses.control,\n attrs: {\n id: _vm.question.inputId,\n \"aria-label\": _vm.question.locTitle.renderedHtml\n },\n on: {\n change: function($event) {\n _vm.question.renderedValue = Array.prototype.filter\n .call($event.target.options, function(o) {\n return o.selected\n })\n .map(function(o) {\n var val = \"_value\" in o ? o._value : o.value\n return val\n })[0]\n }\n }\n },\n [\n _vm.question.showOptionsCaption\n ? _c(\"option\", { domProps: { value: undefined } }, [\n _vm._v(_vm._s(_vm.question.optionsCaption))\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(_vm.question.visibleChoices, function(item) {\n return _c(\n \"option\",\n {\n attrs: { disabled: !item.isEnabled },\n domProps: { value: item.value }\n },\n [_vm._v(_vm._s(item.text))]\n )\n })\n ],\n 2\n )\n ])\n : _c(\n \"div\",\n { class: _vm.question.cssClasses.control, attrs: { disabled: \"\" } },\n [\n _vm._v(\n _vm._s(\n _vm.isOtherSelected\n ? _vm.question.otherText\n : _vm.question.displayValue\n )\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"survey-other-choice\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.isOtherSelected,\n expression: \"isOtherSelected\"\n }\n ],\n attrs: { question: _vm.question }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-6b3215d3\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 200 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"div\",\n { class: _vm.getRootClass(_vm.question) },\n _vm._l(_vm.question.visibleRateValues, function(item, index) {\n return _c(\n \"label\",\n { key: item.value, class: _vm.getCss(_vm.question, item) },\n [\n _c(\"input\", {\n staticClass: \"sv-visuallyhidden\",\n attrs: {\n type: \"radio\",\n name: _vm.question.name,\n id: _vm.question.name + index,\n disabled: _vm.question.isReadOnly,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\": item.locText.text\n },\n domProps: { value: item.value },\n on: { change: _vm.change }\n }),\n _vm._v(\" \"),\n index === 0\n ? _c(\n \"span\",\n { class: _vm.question.cssClasses.minText },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.question.locMinRateDescription }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"span\",\n { class: _vm.question.cssClasses.itemText },\n [_c(\"survey-string\", { attrs: { locString: item.locText } })],\n 1\n ),\n _vm._v(\" \"),\n index === _vm.question.visibleRateValues.length - 1\n ? _c(\n \"span\",\n { class: _vm.question.cssClasses.maxText },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.question.locMaxRateDescription }\n })\n ],\n 1\n )\n : _vm._e()\n ]\n )\n })\n ),\n _vm._v(\" \"),\n _c(\"survey-other-choice\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.question.hasOther,\n expression: \"question.hasOther\"\n }\n ],\n class: _vm.question.cssClasses.other,\n attrs: { question: _vm.question }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-7092bfdf\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 201 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticStyle: { clear: \"both\" } }, [\n _c(\"div\", { class: _vm.question.cssClasses.progressContainer }, [\n _c(\"div\", { attrs: { title: _vm.question.panelPrevText } }, [\n _c(\n \"svg\",\n {\n class: _vm.getButtonPrevCss(_vm.question),\n attrs: { viewBox: \"0 0 10 10\" },\n on: { click: _vm.prevPanelClick }\n },\n [_c(\"polygon\", { attrs: { points: \"2,2 0,4 5,9 10,4 8,2 5,5 \" } })]\n )\n ]),\n _vm._v(\" \"),\n _vm.question.isRangeShowing\n ? _c(\"div\", { class: _vm.question.cssClasses.progress }, [\n _c(\"div\", {\n class: _vm.question.cssClasses.progressBar,\n style: { width: _vm.progress },\n attrs: { role: \"progressbar\" }\n })\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { title: _vm.question.panelNextText } }, [\n _c(\n \"svg\",\n {\n class: _vm.getButtonNextCss(_vm.question),\n attrs: { viewBox: \"0 0 10 10\" },\n on: { click: _vm.nextPanelClick }\n },\n [_c(\"polygon\", { attrs: { points: \"2,2 0,4 5,9 10,4 8,2 5,5 \" } })]\n )\n ])\n ]),\n _vm._v(\" \"),\n _vm.question.canAddPanel\n ? _c(\"input\", {\n class:\n _vm.question.cssClasses.button +\n \" \" +\n _vm.question.cssClasses.buttonAdd,\n attrs: { type: \"button\", value: _vm.question.panelAddText },\n on: { click: _vm.addPanelClick }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { class: _vm.question.cssClasses.progressText }, [\n _vm._v(_vm._s(_vm.question.progressText))\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-742bffac\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 202 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n _vm._l(_vm.row.elements, function(element) {\n return element.visible\n ? _c(\"survey-element\", {\n key: element.idValue,\n style: {\n paddingLeft: element.paddingLeft,\n paddingRight: element.paddingRight,\n width: element.renderWidth,\n display: \"inline-block\"\n },\n attrs: {\n id: element.id,\n name: element.name,\n element: element,\n survey: _vm.survey,\n css: _vm.css\n }\n })\n : _vm._e()\n })\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-7cc0bd88\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 203 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { class: _vm.question.cssClasses.tableWrapper }, [\n _c(\"fieldset\", [\n _c(\"legend\", {\n attrs: { \"aria-label\": _vm.question.locTitle.renderedHtml }\n }),\n _vm._v(\" \"),\n _c(\"table\", { class: _vm.question.cssClasses.root }, [\n _vm.question.showHeader\n ? _c(\"thead\", [\n _c(\n \"tr\",\n [\n _c(\"td\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.question.hasRows,\n expression: \"question.hasRows\"\n }\n ]\n }),\n _vm._v(\" \"),\n _vm._l(_vm.question.visibleColumns, function(column) {\n return _c(\n \"th\",\n { class: _vm.question.cssClasses.headerCell },\n [\n _c(\"survey-string\", {\n attrs: { locString: column.locText }\n })\n ],\n 1\n )\n })\n ],\n 2\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"tbody\",\n _vm._l(_vm.question.visibleRows, function(row, rowIndex) {\n return _c(\n \"tr\",\n { class: _vm.question.cssClasses.row },\n [\n _c(\n \"td\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.question.hasRows,\n expression: \"question.hasRows\"\n }\n ],\n class: _vm.question.cssClasses.cell\n },\n [_c(\"survey-string\", { attrs: { locString: row.locText } })],\n 1\n ),\n _vm._v(\" \"),\n _vm._l(_vm.question.visibleColumns, function(\n column,\n columnIndex\n ) {\n return _vm.question.hasCellText\n ? _c(\n \"td\",\n {\n class:\n _vm.getItemClass(row, column) +\n \" \" +\n _vm.question.cssClasses.cell,\n on: {\n click: function() {\n _vm.cellClick(row, column)\n }\n }\n },\n [\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.question.getCellDisplayLocText(\n row.name,\n column\n ).renderedHtml\n )\n )\n ])\n ]\n )\n : _vm._e()\n }),\n _vm._v(\" \"),\n _vm._l(_vm.question.visibleColumns, function(\n column,\n columnIndex\n ) {\n return !_vm.question.hasCellText\n ? _c(\n \"td\",\n {\n class: _vm.question.cssClasses.cell,\n attrs: { headers: column.locText.renderedHtml },\n on: {\n click: function() {\n _vm.cellClick(row, column)\n }\n }\n },\n [\n _c(\n \"label\",\n { class: _vm.getItemClass(row, column) },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: row.value,\n expression: \"row.value\"\n }\n ],\n class: _vm.question.cssClasses.itemValue,\n attrs: {\n type: \"radio\",\n name: row.fullName,\n disabled: _vm.question.isReadOnly,\n id:\n _vm.question.inputId +\n \"_\" +\n row.name +\n \"_\" +\n columnIndex,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\":\n _vm.question.locTitle.renderedHtml\n },\n domProps: {\n value: column.value,\n checked: _vm._q(row.value, column.value)\n },\n on: {\n click: function($event) {\n row.value = column.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n class:\n _vm.question.cssClasses.materialDecorator\n },\n [\n _c(\n \"svg\",\n {\n class:\n _vm.question.cssClasses.itemDecorator,\n attrs: { viewBox: \"-12 -12 24 24\" }\n },\n [\n _c(\"circle\", {\n attrs: { r: \"6\", cx: \"0\", cy: \"0\" }\n })\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"circle\" }),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"check\" }),\n _vm._v(\" \"),\n _c(\"span\", { style: { display: \"none\" } }, [\n _vm._v(\n _vm._s(_vm.question.locTitle.renderedHtml)\n )\n ])\n ]\n )\n ]\n )\n : _vm._e()\n })\n ],\n 2\n )\n })\n )\n ])\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-7fa2f403\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 204 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"table\",\n { class: _vm.question.cssClasses.root },\n _vm._l(_vm.question.getRows(), function(row, rowindex) {\n return _c(\n \"tr\",\n {\n key: _vm.question.inputId + \"rowkey\" + rowindex,\n class: _vm.question.cssClasses.row\n },\n [\n _vm._l(row, function(item) {\n return [\n _c(\n \"td\",\n {\n key: \"label\" + item.editor.id,\n class:\n _vm.question.cssClasses.itemTitle +\n \" \" +\n _vm.question.cssClasses.cell\n },\n [_c(\"survey-string\", { attrs: { locString: item.locTitle } })],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"td\",\n {\n key: item.editor.id,\n attrs: { css: _vm.question.cssClasses.cell }\n },\n [\n _vm.hasErrorsOnTop\n ? _c(\"survey-errors\", {\n attrs: { question: item.editor, location: \"top\" }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(_vm.getWidgetComponentName(item.editor), {\n tag: \"component\",\n attrs: { question: item.editor }\n }),\n _vm._v(\" \"),\n _vm.hasErrorsOnBottom\n ? _c(\"survey-errors\", {\n attrs: { question: item.editor, location: \"bottom\" }\n })\n : _vm._e()\n ],\n 1\n )\n ]\n })\n ],\n 2\n )\n })\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-93fe4c02\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 205 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.question.isVisible\n ? _c(\n \"div\",\n {\n class: _vm.question.cssClasses.panel.container,\n style: _vm.rootStyle\n },\n [\n _c(\n \"h4\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.hasTitle,\n expression: \"hasTitle\"\n }\n ],\n class: _vm.getTitleStyle(),\n on: { click: _vm.changeExpanded }\n },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.question.locTitle }\n }),\n _vm._v(\" \"),\n _c(\"span\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showIcon,\n expression: \"showIcon\"\n }\n ],\n class: _vm.iconCss\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { class: _vm.question.cssClasses.panel.description },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.question.locDescription }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"survey-errors\", { attrs: { question: _vm.question } }),\n _vm._v(\" \"),\n _c(\n \"f-panel\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.isCollapsed,\n expression: \"!isCollapsed\"\n }\n ],\n style: { paddingLeft: _vm.question.innerPaddingLeft }\n },\n [\n _c(\"survey-flowpanelelement\", {\n attrs: { node: _vm.rootNode, panel: _vm.question, css: \"css\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-96ae1a78\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 206 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { class: _vm.getRootClass(_vm.element) },\n [\n _vm.element.hasTitleOnLeftTop\n ? _c(\"survey-element-header\", { attrs: { element: _vm.element } })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n { class: _vm.getContentClass(_vm.element) },\n [\n _vm.hasErrorsOnTop\n ? _c(\"survey-errors\", {\n attrs: { question: _vm.element, location: \"top\" }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(_vm.getWidgetComponentName(_vm.element), {\n tag: \"component\",\n attrs: { question: _vm.element, css: _vm.css }\n }),\n _vm._v(\" \"),\n _vm.element.hasComment\n ? _c(\n \"div\",\n { class: _vm.element.cssClasses.formGroup },\n [\n _c(\"div\", [_vm._v(_vm._s(_vm.element.commentText))]),\n _vm._v(\" \"),\n _c(\"survey-other-choice\", {\n attrs: {\n commentClass: _vm.css.comment,\n question: _vm.element\n }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.hasErrorsOnBottom\n ? _c(\"survey-errors\", {\n attrs: { question: _vm.element, location: \"bottom\" }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.element.hasDescriptionUnderInput\n ? _c(\n \"div\",\n { class: _vm.element.cssClasses.descriptionUnderInput },\n [\n _c(\"survey-string\", {\n attrs: { locString: _vm.element.locDescription }\n })\n ],\n 1\n )\n : _vm._e()\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.element.hasTitleOnBottom\n ? _c(\"survey-element-header\", { attrs: { element: _vm.element } })\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-973472ac\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 207 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { style: { overflowX: _vm.question.horizontalScroll ? \"scroll\" : \"\" } },\n [\n _vm.question.isAddRowOnTop\n ? _c(\"div\", { class: _vm.question.cssClasses.footer }, [\n _c(\n \"button\",\n {\n class:\n _vm.question.cssClasses.button +\n \" \" +\n _vm.question.cssClasses.buttonAdd,\n attrs: { type: \"button\" },\n on: { click: _vm.addRowClick }\n },\n [\n _c(\"span\", [_vm._v(_vm._s(_vm.question.addRowText))]),\n _vm._v(\" \"),\n _c(\"span\", { class: _vm.question.cssClasses.iconAdd })\n ]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"survey-matrixtable\", { attrs: { question: _vm.question } }),\n _vm._v(\" \"),\n _vm.question.isAddRowOnBottom\n ? _c(\"div\", { class: _vm.question.cssClasses.footer }, [\n _c(\n \"button\",\n {\n class:\n _vm.question.cssClasses.button +\n \" \" +\n _vm.question.cssClasses.buttonAdd,\n attrs: { type: \"button\" },\n on: { click: _vm.addRowClick }\n },\n [\n _c(\"span\", [_vm._v(_vm._s(_vm.question.addRowText))]),\n _vm._v(\" \"),\n _c(\"span\", { class: _vm.question.cssClasses.iconAdd })\n ]\n )\n ])\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-9a0b88e8\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 208 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"span\",\n { style: _vm.style },\n [\n !_vm.question\n ? _c(\n _vm.tagName,\n { tag: \"component\" },\n [\n _vm._l(_vm.nodes, function(elNode) {\n return _c(\"survey-flowpanelelement\", {\n key: elNode.elementId,\n attrs: { node: elNode, panel: _vm.panel, css: \"css\" }\n })\n }),\n _vm._v(\"\\n \" + _vm._s(_vm.text) + \"\\n \")\n ],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n !!_vm.question\n ? _c(\n \"span\",\n [\n _c(\"survey-element\", {\n key: _vm.question.idValue,\n style: { width: _vm.question.renderWidth },\n attrs: {\n id: _vm.question.id,\n element: _vm.question,\n survey: _vm.survey,\n css: _vm.css\n }\n })\n ],\n 1\n )\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-9d992c30\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 209 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { class: _vm.question.cssClasses.root },\n [\n _vm.question.isProgressTopShowing\n ? _c(\"survey-paneldynamicprogress\", {\n attrs: { question: _vm.question }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(_vm.renderedPanels, function(panel) {\n return _c(\n \"div\",\n { key: panel.id },\n [\n _c(\"survey-panel\", { attrs: { question: panel, css: _vm.css } }),\n _vm._v(\" \"),\n !_vm.question.isReadOnly && !panel.isCollapsed\n ? _c(\"div\", [\n _vm.question.canRemovePanel\n ? _c(\"input\", {\n class:\n _vm.question.cssClasses.button +\n \" \" +\n _vm.question.cssClasses.buttonRemove,\n attrs: {\n type: \"button\",\n value: _vm.question.panelRemoveText\n },\n on: {\n click: function($event) {\n _vm.removePanelClick(panel)\n }\n }\n })\n : _vm._e()\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"hr\", { class: _vm.question.cssClasses.separator })\n ],\n 1\n )\n }),\n _vm._v(\" \"),\n _vm.question.isProgressBottomShowing\n ? _c(\"survey-paneldynamicprogress\", {\n attrs: { question: _vm.question }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.isRenderModeList && _vm.question.canAddPanel\n ? _c(\"input\", {\n class: _vm.getButtonAddCss(_vm.question),\n attrs: { type: \"button\", value: _vm.question.panelAddText },\n on: { click: _vm.addPanelClick }\n })\n : _vm._e()\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-9dda5d06\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 210 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"label\", { class: _vm.getLabelClass(_vm.item) }, [\n _vm.item == _vm.question.selectAllItem\n ? _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.isAllSelected,\n expression: \"isAllSelected\"\n }\n ],\n class: _vm.question.cssClasses.itemControl,\n attrs: {\n type: \"checkbox\",\n name: _vm.question.name,\n id: _vm.question.inputId + \"_\" + _vm.index,\n disabled: _vm.question.isReadOnly,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\": _vm.item.locText.renderedHtml\n },\n domProps: {\n value: _vm.isAllSelected,\n checked: Array.isArray(_vm.isAllSelected)\n ? _vm._i(_vm.isAllSelected, _vm.isAllSelected) > -1\n : _vm.isAllSelected\n },\n on: {\n click: function($event) {\n var $$a = _vm.isAllSelected,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = _vm.isAllSelected,\n $$i = _vm._i($$a, $$v)\n if ($$c) {\n $$i < 0 && (_vm.isAllSelected = $$a.concat($$v))\n } else {\n $$i > -1 &&\n (_vm.isAllSelected = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.isAllSelected = $$c\n }\n }\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.item != _vm.question.selectAllItem\n ? _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.question.renderedValue,\n expression: \"question.renderedValue\"\n }\n ],\n class: _vm.question.cssClasses.itemControl,\n attrs: {\n type: \"checkbox\",\n name: _vm.question.name,\n id: _vm.question.inputId + \"_\" + _vm.index,\n disabled: _vm.question.isReadOnly || !_vm.item.isEnabled,\n \"aria-required\": _vm.question.isRequired,\n \"aria-label\": _vm.item.locText.renderedHtml\n },\n domProps: {\n value: _vm.item.value,\n checked: Array.isArray(_vm.question.renderedValue)\n ? _vm._i(_vm.question.renderedValue, _vm.item.value) > -1\n : _vm.question.renderedValue\n },\n on: {\n click: function($event) {\n var $$a = _vm.question.renderedValue,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = _vm.item.value,\n $$i = _vm._i($$a, $$v)\n if ($$c) {\n $$i < 0 && (_vm.question.renderedValue = $$a.concat($$v))\n } else {\n $$i > -1 &&\n (_vm.question.renderedValue = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.question.renderedValue = $$c\n }\n }\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"span\", { class: _vm.question.cssClasses.materialDecorator }, [\n _c(\n \"svg\",\n {\n class: _vm.question.cssClasses.itemDecorator,\n attrs: { viewBox: \"0 0 24 24\" }\n },\n [_c(\"path\", { attrs: { d: \"M5,13l2-2l3,3l7-7l2,2l-9,9L5,13z\" } })]\n ),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"check\" })\n ]),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n class: _vm.question.cssClasses.controlLabel,\n attrs: { title: _vm.item.locText.koRenderedHtml }\n },\n [_c(\"survey-string\", { attrs: { locString: _vm.item.locText } })],\n 1\n )\n ]),\n _vm._v(\" \"),\n _vm.item.value == _vm.question.otherItem.value\n ? _c(\"survey-other-choice\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n _vm.question.hasOther &&\n _vm.question.renderedValue &&\n _vm.question.isOtherSelected,\n expression:\n \"question.hasOther && question.renderedValue && question.isOtherSelected\"\n }\n ],\n attrs: { question: _vm.question }\n })\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-c58c80d0\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 211 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"fieldset\",\n { class: _vm.question.cssClasses.root },\n [\n _c(\"legend\", {\n attrs: { \"aria-label\": _vm.question.locTitle.renderedHtml }\n }),\n _vm._v(\" \"),\n _vm._l(_vm.question.visibleChoices, function(item, index) {\n return !_vm.question.hasColumns\n ? _c(\"survey-checkbox-item\", {\n key: item.value,\n class: _vm.getItemClass(item),\n attrs: { question: _vm.question, item: item, index: index }\n })\n : _vm._e()\n }),\n _vm._v(\" \"),\n _vm._l(_vm.question.columns, function(column, colIndex) {\n return _vm.question.hasColumns\n ? _c(\n \"div\",\n { class: _vm.question.getColumnClass() },\n _vm._l(column, function(item, index) {\n return _c(\"survey-checkbox-item\", {\n key: item.value,\n class: _vm.getItemClass(item),\n attrs: {\n question: _vm.question,\n item: item,\n index: \"\" + colIndex + index\n }\n })\n })\n )\n : _vm._e()\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-cad276f6\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 212 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"span\", { staticStyle: { position: \"static\" } }, [\n _vm.locString.hasHtml\n ? _c(\"span\", {\n staticStyle: { position: \"static\" },\n domProps: { innerHTML: _vm._s(_vm.locString.renderedHtml) }\n })\n : _c(\"span\", { staticStyle: { position: \"static\" } }, [\n _vm._v(_vm._s(_vm.locString.renderedHtml))\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-d3a3d75a\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 213 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"table\",\n { class: _vm.question.cssClasses.root },\n [\n _vm.table.showHeader\n ? _c(\"thead\", [\n _c(\n \"tr\",\n _vm._l(_vm.table.headerRow.cells, function(cell) {\n return _c(\n \"th\",\n {\n key: \"header_\" + cell.id,\n class: _vm.question.cssClasses.headerCell,\n style: { minWidth: cell.minWidth, width: cell.width }\n },\n [\n _c(\"survey-string\", { attrs: { locString: cell.locTitle } })\n ],\n 1\n )\n })\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"tbody\",\n _vm._l(_vm.table.rows, function(row) {\n return _c(\n \"tr\",\n { key: _vm.question.inputId + \"_\" + row.id },\n _vm._l(row.cells, function(cell, cellIndex) {\n return _c(\"survey-matrixcell\", {\n key: row.id + \"_\" + cellIndex,\n attrs: { cell: cell, question: _vm.question }\n })\n })\n )\n })\n ),\n _vm._v(\" \"),\n _vm.table.showFooter\n ? _c(\"tfoot\", [\n _c(\n \"tr\",\n _vm._l(_vm.table.footerRow.cells, function(cell, cellIndex) {\n return _c(\"survey-matrixcell\", {\n key: \"footer_\" + cellIndex,\n attrs: { cell: cell, question: _vm.question }\n })\n })\n )\n ])\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-fa197e4a\", { render: render, staticRenderFns: staticRenderFns })\n }\n}\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__chunks_model__ = __webpack_require__(83);\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Version\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"a\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"settings\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"b\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Helpers\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"c\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"AnswerCountValidator\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"d\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"EmailValidator\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"e\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"NumericValidator\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"f\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"RegexValidator\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"g\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyValidator\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"h\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"TextValidator\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"i\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ValidatorResult\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"j\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ExpressionValidator\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"k\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ValidatorRunner\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"l\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ItemValue\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"m\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Base\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"n\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Event\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"o\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"p\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyElement\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"q\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"CalculatedValue\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"r\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"CustomError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"s\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"AnswerRequiredError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"t\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"OneAnswerRequiredError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"u\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"RequreNumericError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"v\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ExceedSizeError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"w\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"LocalizableString\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"x\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"HtmlConditionItem\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"y\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ChoicesRestfull\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"z\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"FunctionFactory\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"A\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"registerFunction\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"B\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ConditionRunner\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"C\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ExpressionRunner\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"D\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Operand\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"E\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Const\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"F\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"BinaryOperand\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"G\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Variable\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"H\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"FunctionOperand\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"I\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ArrayOperand\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"J\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ConditionsParser\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"K\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ProcessValue\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"L\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"M\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonIncorrectTypeError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"N\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonMetadata\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"O\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonMetadataClass\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"P\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonMissingTypeError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"Q\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonMissingTypeErrorBase\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"R\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonObject\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"S\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonObjectProperty\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"T\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonRequiredPropertyError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"U\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"JsonUnknownPropertyError\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"V\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Serializer\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"W\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"MatrixDropdownCell\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"X\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"MatrixDropdownColumn\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"Y\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"matrixDropdownColumnTypes\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"Z\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"MatrixDropdownRowModelBase\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_0\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionMatrixDropdownModelBase\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_1\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"MatrixDropdownRowModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_2\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionMatrixDropdownModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_3\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"MatrixDynamicRowModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_4\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionMatrixDynamicModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_5\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"MatrixRowModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_6\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"MartrixCells\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_7\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionMatrixModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_8\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"MultipleTextItemModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_9\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionMultipleTextModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_10\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"PanelModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_11\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"PanelModelBase\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_12\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionRowModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_13\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"FlowPanelModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_14\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"PageModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_15\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Question\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_16\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionNonValue\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_17\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionEmptyModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_18\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionCheckboxBase\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_19\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionSelectBase\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_20\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionCheckboxModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_21\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionCommentModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_22\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionDropdownModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_23\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionFactory\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_24\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"ElementFactory\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_25\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionFileModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_26\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionHtmlModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_27\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionRadiogroupModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_28\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionRatingModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_29\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionExpressionModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_30\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionTextModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_31\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionBooleanModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_32\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionImagePickerModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_33\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionPanelDynamicModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_34\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionPanelDynamicItem\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_35\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyTimer\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_36\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_37\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyTrigger\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_38\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyTriggerComplete\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_39\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyTriggerSetValue\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_40\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyTriggerVisible\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_41\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyTriggerCopyValue\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_42\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyTriggerRunExpression\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_43\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"Trigger\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_44\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"SurveyWindowModel\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_45\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"TextPreProcessor\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_46\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"dxSurveyService\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_47\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"englishStrings\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_48\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"surveyLocalization\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_49\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"surveyStrings\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_50\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"QuestionCustomWidget\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_51\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"CustomWidgetCollection\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_52\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"StylesManager\", function() { return __WEBPACK_IMPORTED_MODULE_0__chunks_model__[\"_53\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__chunks_localization__ = __webpack_require__(82);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__chunks_helpers__ = __webpack_require__(0);\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __WEBPACK_IMPORTED_MODULE_2__chunks_helpers__[\"a\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __WEBPACK_IMPORTED_MODULE_2__chunks_helpers__[\"b\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __WEBPACK_IMPORTED_MODULE_2__chunks_helpers__[\"c\"]; });\n/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __WEBPACK_IMPORTED_MODULE_2__chunks_helpers__[\"d\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__defaultCss_cssstandard__ = __webpack_require__(12);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"surveyCss\", function() { return __WEBPACK_IMPORTED_MODULE_3__defaultCss_cssstandard__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultStandardCss\", function() { return __WEBPACK_IMPORTED_MODULE_3__defaultCss_cssstandard__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__defaultCss_cssbootstrap__ = __webpack_require__(79);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultBootstrapCss\", function() { return __WEBPACK_IMPORTED_MODULE_4__defaultCss_cssbootstrap__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__defaultCss_cssbootstrapmaterial__ = __webpack_require__(80);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultBootstrapMaterialCss\", function() { return __WEBPACK_IMPORTED_MODULE_5__defaultCss_cssbootstrapmaterial__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__defaultCss_cssmodern__ = __webpack_require__(81);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"modernCss\", function() { return __WEBPACK_IMPORTED_MODULE_6__defaultCss_cssmodern__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__vue_surveyModel__ = __webpack_require__(18);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Model\", function() { return __WEBPACK_IMPORTED_MODULE_7__vue_surveyModel__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"WindowModel\", function() { return __WEBPACK_IMPORTED_MODULE_7__vue_surveyModel__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__vue_survey_vue__ = __webpack_require__(117);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Survey\", function() { return __WEBPACK_IMPORTED_MODULE_8__vue_survey_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__vue_customwidget_vue__ = __webpack_require__(88);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomWidget\", function() { return __WEBPACK_IMPORTED_MODULE_9__vue_customwidget_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__vue_string_vue__ = __webpack_require__(116);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyString\", function() { return __WEBPACK_IMPORTED_MODULE_10__vue_string_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__vue_element_vue__ = __webpack_require__(90);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyElementVue\", function() { return __WEBPACK_IMPORTED_MODULE_11__vue_element_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__vue_window_vue__ = __webpack_require__(120);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Window\", function() { return __WEBPACK_IMPORTED_MODULE_12__vue_window_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__vue_page_vue__ = __webpack_require__(107);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Page\", function() { return __WEBPACK_IMPORTED_MODULE_13__vue_page_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__vue_radiogroup_vue__ = __webpack_require__(112);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Radiogroup\", function() { return __WEBPACK_IMPORTED_MODULE_14__vue_radiogroup_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__vue_radiogroupitem_vue__ = __webpack_require__(113);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"RadiogroupItem\", function() { return __WEBPACK_IMPORTED_MODULE_15__vue_radiogroupitem_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__vue_otherChoice_vue__ = __webpack_require__(106);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"OtherChoice\", function() { return __WEBPACK_IMPORTED_MODULE_16__vue_otherChoice_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__vue_rating_vue__ = __webpack_require__(114);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Rating\", function() { return __WEBPACK_IMPORTED_MODULE_17__vue_rating_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__vue_comment_vue__ = __webpack_require__(87);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Comment\", function() { return __WEBPACK_IMPORTED_MODULE_18__vue_comment_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__vue_checkbox_vue__ = __webpack_require__(85);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Checkbox\", function() { return __WEBPACK_IMPORTED_MODULE_19__vue_checkbox_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__vue_checkboxitem_vue__ = __webpack_require__(86);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"CheckboxItem\", function() { return __WEBPACK_IMPORTED_MODULE_20__vue_checkboxitem_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__vue_text_vue__ = __webpack_require__(118);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Text\", function() { return __WEBPACK_IMPORTED_MODULE_21__vue_text_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__vue_boolean_vue__ = __webpack_require__(84);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Boolean\", function() { return __WEBPACK_IMPORTED_MODULE_22__vue_boolean_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__vue_empty_vue__ = __webpack_require__(92);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Empty\", function() { return __WEBPACK_IMPORTED_MODULE_23__vue_empty_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__vue_multipletext_vue__ = __webpack_require__(105);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"MultipleText\", function() { return __WEBPACK_IMPORTED_MODULE_24__vue_multipletext_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__vue_matrix_vue__ = __webpack_require__(100);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Matrix\", function() { return __WEBPACK_IMPORTED_MODULE_25__vue_matrix_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__vue_dropdown_vue__ = __webpack_require__(89);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Dropdown\", function() { return __WEBPACK_IMPORTED_MODULE_26__vue_dropdown_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__vue_file_vue__ = __webpack_require__(95);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"File\", function() { return __WEBPACK_IMPORTED_MODULE_27__vue_file_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__vue_matrixcell_vue__ = __webpack_require__(101);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"MatrixCell\", function() { return __WEBPACK_IMPORTED_MODULE_28__vue_matrixcell_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__vue_matrixtable_vue__ = __webpack_require__(104);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"MatrixTable\", function() { return __WEBPACK_IMPORTED_MODULE_29__vue_matrixtable_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__vue_matrixdropdown_vue__ = __webpack_require__(102);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"MatrixDropdown\", function() { return __WEBPACK_IMPORTED_MODULE_30__vue_matrixdropdown_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__vue_matrixdynamic_vue__ = __webpack_require__(103);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"MatrixDynamic\", function() { return __WEBPACK_IMPORTED_MODULE_31__vue_matrixdynamic_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__vue_errors_vue__ = __webpack_require__(93);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Errors\", function() { return __WEBPACK_IMPORTED_MODULE_32__vue_errors_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__vue_html_vue__ = __webpack_require__(98);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Html\", function() { return __WEBPACK_IMPORTED_MODULE_33__vue_html_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__vue_expression_vue__ = __webpack_require__(94);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Expression\", function() { return __WEBPACK_IMPORTED_MODULE_34__vue_expression_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__vue_imagepicker_vue__ = __webpack_require__(99);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ImagePicker\", function() { return __WEBPACK_IMPORTED_MODULE_35__vue_imagepicker_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__vue_paneldynamic_vue__ = __webpack_require__(109);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"PanelDynamic\", function() { return __WEBPACK_IMPORTED_MODULE_36__vue_paneldynamic_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__vue_paneldynamicprogress_vue__ = __webpack_require__(110);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"PanelDynamicProgress\", function() { return __WEBPACK_IMPORTED_MODULE_37__vue_paneldynamicprogress_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__vue_progress_vue__ = __webpack_require__(111);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Progress\", function() { return __WEBPACK_IMPORTED_MODULE_38__vue_progress_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__vue_timerpanel_vue__ = __webpack_require__(119);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"TimerPanel\", function() { return __WEBPACK_IMPORTED_MODULE_39__vue_timerpanel_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__vue_panel_vue__ = __webpack_require__(108);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Panel\", function() { return __WEBPACK_IMPORTED_MODULE_40__vue_panel_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__vue_flowpanel_vue__ = __webpack_require__(96);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowPanel\", function() { return __WEBPACK_IMPORTED_MODULE_41__vue_flowpanel_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__vue_flowpanelelement_vue__ = __webpack_require__(97);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowPanelElement\", function() { return __WEBPACK_IMPORTED_MODULE_42__vue_flowpanelelement_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__vue_row_vue__ = __webpack_require__(115);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Row\", function() { return __WEBPACK_IMPORTED_MODULE_43__vue_row_vue__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__vue_elementheader_vue__ = __webpack_require__(91);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ElementHeader\", function() { return __WEBPACK_IMPORTED_MODULE_44__vue_elementheader_vue__[\"a\"]; });\n// model\n\n// localization\n\n// helpers\n\n\n// css standard\n\n// css bootstrap\n\n// css bootstrap + material\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCAwMjVlZDRjMTYyMzJiZTYzYzdkNiIsIndlYnBhY2s6Ly8vLi9zcmMvZW50cmllcy9jaHVua3MvaGVscGVycy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvc3VydmV5U3RyaW5ncy50cyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwge1wicm9vdFwiOlwiVnVlXCIsXCJjb21tb25qczJcIjpcInZ1ZVwiLFwiY29tbW9uanNcIjpcInZ1ZVwiLFwiYW1kXCI6XCJ2dWVcIn0iLCJ3ZWJwYWNrOi8vLy4vfi92dWUtcHJvcGVydHktZGVjb3JhdG9yL2xpYi92dWUtcHJvcGVydHktZGVjb3JhdG9yLmNvbW1vbi5qcyIsIndlYnBhY2s6Ly8vLi9+L3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzb25vYmplY3QudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hlbHBlcnMudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uZmFjdG9yeS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvYmFzZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3F1ZXN0aW9uLnRzIiwid2VicGFjazovLy8uL3NyYy9zZXR0aW5ncy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVlc3Rpb24udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2RlZmF1bHRDc3MvY3Nzc3RhbmRhcmQudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbmRpdGlvbnMudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2Vycm9yLnRzIiwid2VicGFjazovLy8uL3NyYy9pdGVtdmFsdWUudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbmRpdGlvblByb2Nlc3NWYWx1ZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemFibGVzdHJpbmcudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9zdXJ2ZXlNb2RlbC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVlc3Rpb25fYmFzZXNlbGVjdC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdGV4dFByZVByb2Nlc3Nvci50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcGFuZWwudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V4cHJlc3Npb25zL2V4cHJlc3Npb25zLnRzIiwid2VicGFjazovLy8uL3NyYy9mdW5jdGlvbnNmYWN0b3J5LnRzIiwid2VicGFjazovLy8uL3NyYy9xdWVzdGlvbl9tYXRyaXhkcm9wZG93bmJhc2UudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3N0eWxlc21hbmFnZXIudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3N1cnZleS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdmFsaWRhdG9yLnRzIiwid2VicGFjazovLy8uL34vcHJvY2Vzcy9icm93c2VyLmpzIiwid2VicGFjazovLy8uL3NyYy92dWUvYm9vbGVhbi52dWU/ZTFlZCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2NoZWNrYm94LnZ1ZT9mZGJjIiwid2VicGFjazovLy8uL3NyYy92dWUvY2hlY2tib3hpdGVtLnZ1ZT80Mjg4Iiwid2VicGFjazovLy8uL3NyYy92dWUvY29tbWVudC52dWU/ZjgzOSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2N1c3RvbXdpZGdldC52dWU/YjljYyIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2Ryb3Bkb3duLnZ1ZT9kZTAzIiwid2VicGFjazovLy8uL3NyYy92dWUvZWxlbWVudC52dWU/MWJlZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2VsZW1lbnRoZWFkZXIudnVlP2U3MTAiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9lbXB0eS52dWU/Yjc5MiIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2Vycm9ycy52dWU/MTRmYyIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2V4cHJlc3Npb24udnVlP2Y1YjIiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9maWxlLnZ1ZT8yYWM1Iiwid2VicGFjazovLy8uL3NyYy92dWUvZmxvd3BhbmVsLnZ1ZT82YzM2Iiwid2VicGFjazovLy8uL3NyYy92dWUvZmxvd3BhbmVsZWxlbWVudC52dWU/YjUxNCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2h0bWwudnVlPzBmM2EiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9pbWFnZXBpY2tlci52dWU/MTlhYSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL21hdHJpeC52dWU/ZDdiOSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL21hdHJpeGNlbGwudnVlPzg4MGQiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9tYXRyaXhkcm9wZG93bi52dWU/YmYyOSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL21hdHJpeGR5bmFtaWMudnVlPzUwZDgiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9tYXRyaXh0YWJsZS52dWU/OGQxZCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL211bHRpcGxldGV4dC52dWU/YTYwMSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL290aGVyQ2hvaWNlLnZ1ZT8yOTdiIiwid2VicGFjazovLy8uL3NyYy92dWUvcGFnZS52dWU/OGZjOSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3BhbmVsLnZ1ZT80OTVkIiwid2VicGFjazovLy8uL3NyYy92dWUvcGFuZWxkeW5hbWljLnZ1ZT8wNmViIiwid2VicGFjazovLy8uL3NyYy92dWUvcGFuZWxkeW5hbWljcHJvZ3Jlc3MudnVlP2QxMWEiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9wcm9ncmVzcy52dWU/ZjAzZCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3JhZGlvZ3JvdXAudnVlPzAxODAiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9yYWRpb2dyb3VwaXRlbS52dWU/Mzc5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3JhdGluZy52dWU/YjcyYSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3Jvdy52dWU/NzZkZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3N0cmluZy52dWU/MDk2NiIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3N1cnZleS52dWU/ZjdmYyIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3RleHQudnVlP2U2ZTAiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS90aW1lcnBhbmVsLnZ1ZT9kNGUwIiwid2VicGFjazovLy8uL3NyYy92dWUvd2luZG93LnZ1ZT8yODZkIiwid2VicGFjazovLy8uL3NyYy9jaG9pY2VzUmVzdGZ1bGwudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbmRpdGlvbnNQYXJzZXIudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2R4U3VydmV5U2VydmljZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2VuZ2xpc2gudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL21hcnRpeEJhc2UudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3BhZ2UudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uQ3VzdG9tV2lkZ2V0cy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVlc3Rpb25fZHJvcGRvd24udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uX2V4cHJlc3Npb24udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uX3RleHQudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9ubm9udmFsdWUudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3N1cnZleVdpbmRvdy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvc3VydmV5dGltZXIudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2RlZmF1bHRDc3MvY3NzYm9vdHN0cmFwLnRzIiwid2VicGFjazovLy8uL3NyYy9kZWZhdWx0Q3NzL2Nzc2Jvb3RzdHJhcG1hdGVyaWFsLnRzIiwid2VicGFjazovLy8uL3NyYy9kZWZhdWx0Q3NzL2Nzc21vZGVybi50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZW50cmllcy9jaHVua3MvbG9jYWxpemF0aW9uLnRzIiwid2VicGFjazovLy8uL3NyYy9lbnRyaWVzL2NodW5rcy9tb2RlbC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2Jvb2xlYW4udnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvY2hlY2tib3gudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvY2hlY2tib3hpdGVtLnZ1ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2NvbW1lbnQudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvY3VzdG9td2lkZ2V0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2Ryb3Bkb3duLnZ1ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2VsZW1lbnQudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvZWxlbWVudGhlYWRlci52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9lbXB0eS52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9lcnJvcnMudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvZXhwcmVzc2lvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9maWxlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2Zsb3dwYW5lbC52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9mbG93cGFuZWxlbGVtZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2h0bWwudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvaW1hZ2VwaWNrZXIudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvbWF0cml4LnZ1ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL21hdHJpeGNlbGwudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvbWF0cml4ZHJvcGRvd24udnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvbWF0cml4ZHluYW1pYy52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9tYXRyaXh0YWJsZS52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9tdWx0aXBsZXRleHQudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvb3RoZXJDaG9pY2UudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvcGFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9wYW5lbC52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9wYW5lbGR5bmFtaWMudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvcGFuZWxkeW5hbWljcHJvZ3Jlc3MudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvcHJvZ3Jlc3MudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvcmFkaW9ncm91cC52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9yYWRpb2dyb3VwaXRlbS52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9yYXRpbmcudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvcm93LnZ1ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3N0cmluZy52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9zdXJ2ZXkudnVlIiwid2VicGFjazovLy8uL3NyYy92dWUvdGV4dC52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS90aW1lcnBhbmVsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3dpbmRvdy52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL21haW4uc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvbW9kZXJuLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vfi9yZWZsZWN0LW1ldGFkYXRhL1JlZmxlY3QuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NhbGN1bGF0ZWRWYWx1ZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZXhwcmVzc2lvbnMvZXhwcmVzc2lvblBhcnNlci50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZmxvd3BhbmVsLnRzIiwid2VicGFjazovLy8uL3NyYy9odG1sQ29uZGl0aW9uSXRlbS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2FyYWJpYy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2J1bGdhcmlhbi50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2NhdGFsYW4udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi9jemVjaC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2RhbmlzaC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2R1dGNoLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vZmlubmlzaC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2ZyZW5jaC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2dlb3JnaWFuLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vZ2VybWFuLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vZ3JlZWsudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi9oZWJyZXcudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi9odW5nYXJpYW4udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi9pY2VsYW5kaWMudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi9pbmRvbmVzaWFuLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vaXRhbGlhbi50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2phcGFuZXNlLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24va29yZWFuLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vbGF0dmlhbi50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL2xpdGh1YW5pYW4udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi9ub3J3ZWdpYW4udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi9wZXJzaWFuLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vcG9saXNoLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vcG9ydHVndWVzZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL3JvbWFuaWFuLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vcnVzc2lhbi50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL3NpbXBsaWZpZWQtY2hpbmVzZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL3NwYW5pc2gudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi9zd2VkaXNoLnRzIiwid2VicGFjazovLy8uL3NyYy9sb2NhbGl6YXRpb24vdHJhZGl0aW9uYWwtY2hpbmVzZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvbG9jYWxpemF0aW9uL3R1cmtpc2gudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2FsaXphdGlvbi91a3JhaW5pYW4udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uX2Jvb2xlYW4udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uX2NoZWNrYm94LnRzIiwid2VicGFjazovLy8uL3NyYy9xdWVzdGlvbl9jb21tZW50LnRzIiwid2VicGFjazovLy8uL3NyYy9xdWVzdGlvbl9lbXB0eS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVlc3Rpb25fZmlsZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVlc3Rpb25faHRtbC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVlc3Rpb25faW1hZ2VwaWNrZXIudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uX21hdHJpeC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVlc3Rpb25fbWF0cml4ZHJvcGRvd24udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uX21hdHJpeGR5bmFtaWMudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3F1ZXN0aW9uX211bHRpcGxldGV4dC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVlc3Rpb25fcGFuZWxkeW5hbWljLnRzIiwid2VicGFjazovLy8uL3NyYy9xdWVzdGlvbl9yYWRpb2dyb3VwLnRzIiwid2VicGFjazovLy8uL3NyYy9xdWVzdGlvbl9yYXRpbmcudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3RyaWdnZXIudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxzL3V0aWxzLnRzIiwid2VicGFjazovLy8uL34vdnVlLWNsYXNzLWNvbXBvbmVudC9kaXN0L3Z1ZS1jbGFzcy1jb21wb25lbnQuY29tbW9uLmpzIiwid2VicGFjazovLy8uL3NyYy92dWUvZW1wdHkudnVlP2Y0ODciLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9yYWRpb2dyb3VwLnZ1ZT81NmYzIiwid2VicGFjazovLy8uL3NyYy92dWUvaHRtbC52dWU/OGE1NCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2NvbW1lbnQudnVlP2Y4MTUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9tYXRyaXhkcm9wZG93bi52dWU/OWU5ZSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3BhbmVsLnZ1ZT84YjY1Iiwid2VicGFjazovLy8uL3NyYy92dWUvdGltZXJwYW5lbC52dWU/ZGJhNiIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2ltYWdlcGlja2VyLnZ1ZT81YWZhIiwid2VicGFjazovLy8uL3NyYy92dWUvZXhwcmVzc2lvbi52dWU/ZmVkMyIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2N1c3RvbXdpZGdldC52dWU/NDFjMiIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2Jvb2xlYW4udnVlPzUyYjIiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9maWxlLnZ1ZT81MWE0Iiwid2VicGFjazovLy8uL3NyYy92dWUvZWxlbWVudGhlYWRlci52dWU/MzZlOCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3Byb2dyZXNzLnZ1ZT80N2M4Iiwid2VicGFjazovLy8uL3NyYy92dWUvb3RoZXJDaG9pY2UudnVlPzhiYTQiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9tYXRyaXhjZWxsLnZ1ZT8zMmUxIiwid2VicGFjazovLy8uL3NyYy92dWUvdGV4dC52dWU/M2E0NyIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3BhZ2UudnVlPzdhZWIiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9lcnJvcnMudnVlPzU0YWIiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9yYWRpb2dyb3VwaXRlbS52dWU/ZGYxYiIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3dpbmRvdy52dWU/NzFkZiIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3N1cnZleS52dWU/MGM0ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2Ryb3Bkb3duLnZ1ZT80ZDViIiwid2VicGFjazovLy8uL3NyYy92dWUvcmF0aW5nLnZ1ZT9hNzQ5Iiwid2VicGFjazovLy8uL3NyYy92dWUvcGFuZWxkeW5hbWljcHJvZ3Jlc3MudnVlP2FmNjMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9yb3cudnVlP2Q3NWYiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9tYXRyaXgudnVlPzEwMmMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9tdWx0aXBsZXRleHQudnVlP2RkN2MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9mbG93cGFuZWwudnVlPzZjMDkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9lbGVtZW50LnZ1ZT8xZDg4Iiwid2VicGFjazovLy8uL3NyYy92dWUvbWF0cml4ZHluYW1pYy52dWU/MGMyNCIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL2Zsb3dwYW5lbGVsZW1lbnQudnVlP2VhYzciLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9wYW5lbGR5bmFtaWMudnVlP2RkMzMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9jaGVja2JveGl0ZW0udnVlPzExZGEiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Z1ZS9jaGVja2JveC52dWU/ZGQ5NSIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL3N0cmluZy52dWU/ZTY0MiIsIndlYnBhY2s6Ly8vLi9zcmMvdnVlL21hdHJpeHRhYmxlLnZ1ZT81MDY0Iiwid2VicGFjazovLy8od2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2VudHJpZXMvdnVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLHNCQUFzQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUNBQXFDOztBQUVyQztBQUNBO0FBQ0E7O0FBRUEsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixVQUFVOzs7Ozs7Ozs7Ozs7Ozs7O0FDOUpoQjtB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QUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtB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O0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUdBQXVHO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCx1QkFBdUI7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsMEJBQTBCO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsYUFBYTtBQUNoRixxRUFBcUUsYUFBYTtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUIsaUJBQWlCO0FBQ2pCLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLHFFQUFxRSxtREFBbUQ7QUFDeEg7QUFDQSxDOzs7Ozs7QUN2RUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRDQUE0Qzs7QUFFNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3BCQTtBQUFBLFFBQVE7QUFDdUI7QUFFL0IsZUFBZTtBQUNnQjtBQUUvQixVQUFVO0FBQ3VCO0FBRXFCO0FBQ3RELGVBQWU7QUFDZ0Q7QUFDL0QsZ0JBQWdCO0FBQ2lEO0FBQ2pFLDJCQUEyQjtBQUdpQjtBQUNRO0FBRUE7QUFDakI7QUFDdUI7QUFDWDtBQUNKO0FBQ1k7QUFDTjtBQUNLO0FBQ1g7QUFDSjtBQUNZO0FBQ1E7QUFDTjtBQUNWO0FBQ0U7QUFDRTtBQUNRO0FBQ2hCO0FBQ007QUFDSjtBQUNjO0FBQ1o7QUFDSTtBQUNSO0FBQ1k7QUFDRTtBQUNNO0FBQ0Y7QUFDZDtBQUNKO0FBQ1k7QUFDRTtBQUNFO0FBQ2dCO0FBQ3hCO0FBQ0k7QUFDVjtBQUNRO0FBQ2M7QUFDMUI7QUFDb0IiLCJmaWxlIjoiLi9wYWNrYWdlcy9zdXJ2ZXktdnVlL3N1cnZleS52dWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJ2dWVcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoXCJTdXJ2ZXlcIiwgW1widnVlXCJdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIlN1cnZleVwiXSA9IGZhY3RvcnkocmVxdWlyZShcInZ1ZVwiKSk7XG5cdGVsc2Vcblx0XHRyb290W1wiU3VydmV5XCJdID0gZmFjdG9yeShyb290W1wiVnVlXCJdKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fKSB7XG5yZXR1cm4gXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDIxNSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgMDI1ZWQ0YzE2MjMyYmU2M2M3ZDYiLCJleHBvcnQgdmFyIF9fYXNzaWduID1cbiAgKDxhbnk+T2JqZWN0KVtcImFzc2lnblwiXSB8fFxuICBmdW5jdGlvbih0YXJnZXQ6IGFueSkge1xuICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgIGZvciAodmFyIHAgaW4gcylcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdGFyZ2V0W3BdID0gc1twXTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyh0aGlzQ2xhc3M6IGFueSwgYmFzZUNsYXNzOiBhbnkpIHtcbiAgZm9yICh2YXIgcCBpbiBiYXNlQ2xhc3MpXG4gICAgaWYgKGJhc2VDbGFzcy5oYXNPd25Qcm9wZXJ0eShwKSkgdGhpc0NsYXNzW3BdID0gYmFzZUNsYXNzW3BdO1xuICBmdW5jdGlvbiBfXygpIHtcbiAgICB0aGlzLmNvbnN0cnVjdG9yID0gdGhpc0NsYXNzO1xuICB9XG4gIHRoaXNDbGFzcy5wcm90b3R5cGUgPVxuICAgIGJhc2VDbGFzcyA9PT0gbnVsbFxuICAgICAgPyBPYmplY3QuY3JlYXRlKGJhc2VDbGFzcylcbiAgICAgIDogKChfXy5wcm90b3R5cGUgPSBiYXNlQ2xhc3MucHJvdG90eXBlKSwgbmV3ICg8YW55Pl9fKSgpKTtcbn1cblxuZGVjbGFyZSB2YXIgUmVmbGVjdDphbnk7XG5cbmV4cG9ydCB2YXIgX19kZWNvcmF0ZSA9IGZ1bmN0aW9uKFxuICBkZWNvcmF0b3JzOiBhbnksXG4gIHRhcmdldDogYW55LFxuICBrZXk6IGFueSxcbiAgZGVzYzogYW55XG4pIHtcbiAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgIHIgPVxuICAgICAgYyA8IDNcbiAgICAgICAgPyB0YXJnZXRcbiAgICAgICAgOiBkZXNjID09PSBudWxsXG4gICAgICAgICAgPyAoZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpKVxuICAgICAgICAgIDogZGVzYyxcbiAgICBkO1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIilcbiAgICByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gIGVsc2VcbiAgICBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSlcbiAgICAgIGlmICgoZCA9IGRlY29yYXRvcnNbaV0pKVxuICAgICAgICByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG5cbmV4cG9ydCB2YXIgX19zcHJlYWRBcnJheXMgPSBmdW5jdGlvbiAoKSB7XG4gIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xuICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXG4gICAgICBmb3IgKHZhciBhID0gYXJndW1lbnRzW2ldLCBqID0gMCwgamwgPSBhLmxlbmd0aDsgaiA8IGpsOyBqKyssIGsrKylcbiAgICAgICAgICByW2tdID0gYVtqXTtcbiAgcmV0dXJuIHI7XG59O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9lbnRyaWVzL2NodW5rcy9oZWxwZXJzLnRzIiwiaW1wb3J0IHsgZW5nbGlzaFN0cmluZ3MgfSBmcm9tIFwiLi9sb2NhbGl6YXRpb24vZW5nbGlzaFwiO1xuXG5leHBvcnQgdmFyIHN1cnZleUxvY2FsaXphdGlvbiA9IHtcbiAgY3VycmVudExvY2FsZVZhbHVlOiBcIlwiLFxuICBkZWZhdWx0TG9jYWxlVmFsdWU6IFwiZW5cIixcbiAgbG9jYWxlczogPHtbaW5kZXg6IHN0cmluZ106IGFueX0+e30sXG4gIGxvY2FsZU5hbWVzOiA8e1tpbmRleDogc3RyaW5nXTogYW55fT57fSxcbiAgc3VwcG9ydGVkTG9jYWxlczogPEFycmF5PGFueT4+W10sXG4gIGdldCBjdXJyZW50TG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMb2NhbGVWYWx1ZSA9PT0gdGhpcy5kZWZhdWx0TG9jYWxlVmFsdWVcbiAgICAgID8gXCJcIlxuICAgICAgOiB0aGlzLmN1cnJlbnRMb2NhbGVWYWx1ZTtcbiAgfSxcbiAgc2V0IGN1cnJlbnRMb2NhbGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRMb2NhbGVWYWx1ZSA9IHZhbDtcbiAgfSxcbiAgZ2V0IGRlZmF1bHRMb2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdExvY2FsZVZhbHVlO1xuICB9LFxuICBzZXQgZGVmYXVsdExvY2FsZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdExvY2FsZVZhbHVlID0gdmFsO1xuICB9LFxuICBnZXRTdHJpbmc6IGZ1bmN0aW9uKHN0ck5hbWU6IHN0cmluZykge1xuICAgIHZhciBsb2MgPSB0aGlzLmN1cnJlbnRMb2NhbGVcbiAgICAgID8gdGhpcy5sb2NhbGVzW3RoaXMuY3VycmVudExvY2FsZV1cbiAgICAgIDogdGhpcy5sb2NhbGVzW3RoaXMuZGVmYXVsdExvY2FsZV07XG4gICAgaWYgKCFsb2MgfHwgIWxvY1tzdHJOYW1lXSkgbG9jID0gdGhpcy5sb2NhbGVzW3RoaXMuZGVmYXVsdExvY2FsZV07XG4gICAgdmFyIHJlc3VsdCA9IGxvY1tzdHJOYW1lXTtcbiAgICBpZihyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0ID0gdGhpcy5sb2NhbGVzW1wiZW5cIl1bc3RyTmFtZV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIGdldExvY2FsZXM6IGZ1bmN0aW9uKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICByZXMucHVzaChcIlwiKTtcbiAgICBpZiAodGhpcy5zdXBwb3J0ZWRMb2NhbGVzICYmIHRoaXMuc3VwcG9ydGVkTG9jYWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3VwcG9ydGVkTG9jYWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICByZXMucHVzaCh0aGlzLnN1cHBvcnRlZExvY2FsZXNbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5sb2NhbGVzKSB7XG4gICAgICAgIHJlcy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlcy5zb3J0KCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxufTtcblxuZXhwb3J0IHZhciBzdXJ2ZXlTdHJpbmdzID0gZW5nbGlzaFN0cmluZ3M7XG4oPGFueT5zdXJ2ZXlMb2NhbGl6YXRpb24pLmxvY2FsZXNbXCJlblwiXSA9IGVuZ2xpc2hTdHJpbmdzO1xuKDxhbnk+c3VydmV5TG9jYWxpemF0aW9uKS5sb2NhbGVOYW1lc1tcImVuXCJdID0gXCJlbmdsaXNoXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc3VydmV5U3RyaW5ncy50cyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8yX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wicm9vdFwiOlwiVnVlXCIsXCJjb21tb25qczJcIjpcInZ1ZVwiLFwiY29tbW9uanNcIjpcInZ1ZVwiLFwiYW1kXCI6XCJ2dWVcIn1cbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcERlZmF1bHQgKGV4KSB7IHJldHVybiAoZXggJiYgKHR5cGVvZiBleCA9PT0gJ29iamVjdCcpICYmICdkZWZhdWx0JyBpbiBleCkgPyBleFsnZGVmYXVsdCddIDogZXg7IH1cblxudmFyIFZ1ZSA9IF9pbnRlcm9wRGVmYXVsdChyZXF1aXJlKCd2dWUnKSk7XG52YXIgVnVlQ2xhc3NDb21wb25lbnQgPSByZXF1aXJlKCd2dWUtY2xhc3MtY29tcG9uZW50Jyk7XG52YXIgVnVlQ2xhc3NDb21wb25lbnRfX2RlZmF1bHQgPSBfaW50ZXJvcERlZmF1bHQoVnVlQ2xhc3NDb21wb25lbnQpO1xucmVxdWlyZSgncmVmbGVjdC1tZXRhZGF0YScpO1xuXG4vKiogdnVlLXByb3BlcnR5LWRlY29yYXRvciB2ZXJzb24gNC4wLjAgTUlUIExJQ0VOU0UgY29weXJpZ2h0IDIwMTcga2FvcnVuMzQzICovXG4vKipcbiAqIGRlY29yYXRvciBvZiBhbiBpbmplY3RcbiAqIEBwYXJhbSBrZXkga2V5XG4gKiBAcmV0dXJuIFByb3BlcnR5RGVjb3JhdG9yXG4gKi9cbmZ1bmN0aW9uIEluamVjdChrZXkpIHtcbiAgICByZXR1cm4gVnVlQ2xhc3NDb21wb25lbnQuY3JlYXRlRGVjb3JhdG9yKGZ1bmN0aW9uIChjb21wb25lbnRPcHRpb25zLCBrKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY29tcG9uZW50T3B0aW9ucy5pbmplY3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb21wb25lbnRPcHRpb25zLmluamVjdCA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShjb21wb25lbnRPcHRpb25zLmluamVjdCkpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudE9wdGlvbnMuaW5qZWN0W2tdID0ga2V5IHx8IGs7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbi8qKlxuICogZGVjb3JhdG9yIG9mIG1vZGVsXG4gKiBAcGFyYW0gIGV2ZW50IGV2ZW50IG5hbWVcbiAqIEByZXR1cm4gUHJvcGVydHlEZWNvcmF0b3JcbiAqL1xuZnVuY3Rpb24gTW9kZWwoZXZlbnQpIHtcbiAgICByZXR1cm4gVnVlQ2xhc3NDb21wb25lbnQuY3JlYXRlRGVjb3JhdG9yKGZ1bmN0aW9uIChjb21wb25lbnRPcHRpb25zLCBwcm9wKSB7XG4gICAgICAgIGNvbXBvbmVudE9wdGlvbnMubW9kZWwgPSB7IHByb3A6IHByb3AsIGV2ZW50OiBldmVudCB9O1xuICAgIH0pO1xufVxuLyoqXG4gKiBAYnJpZWYgIE1ha2VzIGEgZGVjb3JhdG9yIGZvciBwcm9wLlxuICpcbiAqIEBwYXJhbSAgb3B0aW9ucyAgVGhlIG9wdGlvbnNcbiAqIEBwYXJhbSAgdGFyZ2V0ICAgVGhlIHRhcmdldFxuICogQHBhcmFtICBrZXkgICAgICBUaGUga2V5XG4gKlxuICogQHJldHVybiBQcm9wZXJ0eURlY29yYXRvclxuICovXG5mdW5jdGlvbiBtYWtlUHJvcERlY29yYXRvcihvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJiB0eXBlb2Ygb3B0aW9ucy50eXBlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnR5cGUgPSBSZWZsZWN0LmdldE1ldGFkYXRhKCdkZXNpZ246dHlwZScsIHRhcmdldCwga2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMudHlwZSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgVnVlQ2xhc3NDb21wb25lbnQuY3JlYXRlRGVjb3JhdG9yKGZ1bmN0aW9uIChjb21wb25lbnRPcHRpb25zLCBrKSB7XG4gICAgICAgICAgICAoY29tcG9uZW50T3B0aW9ucy5wcm9wcyB8fCAoY29tcG9uZW50T3B0aW9ucy5wcm9wcyA9IHt9KSlba10gPSBvcHRpb25zO1xuICAgICAgICB9KSh0YXJnZXQsIGtleSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIFByb3Aob3B0aW9ucywga2V5KSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIFZ1ZSkge1xuICAgICAgICByZXR1cm4gbWFrZVByb3BEZWNvcmF0b3IoKShvcHRpb25zLCBrZXkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG1ha2VQcm9wRGVjb3JhdG9yKG9wdGlvbnMpO1xuICAgIH1cbn1cbi8qKlxuICogZGVjb3JhdG9yIG9mIGEgd2F0Y2ggZnVuY3Rpb25cbiAqIEBwYXJhbSAgcGF0aCB0aGUgcGF0aCBvciB0aGUgZXhwcmVzc2lvbiB0byBvYnNlcnZlXG4gKiBAcGFyYW0gIFdhdGNoT3B0aW9uXG4gKiBAcmV0dXJuIE1ldGhvZERlY29yYXRvclxuICovXG5mdW5jdGlvbiBXYXRjaChwYXRoLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgX2EgPSBvcHRpb25zLmRlZXAsIGRlZXAgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSwgX2IgPSBvcHRpb25zLmltbWVkaWF0ZSwgaW1tZWRpYXRlID0gX2IgPT09IHZvaWQgMCA/IGZhbHNlIDogX2I7XG4gICAgcmV0dXJuIFZ1ZUNsYXNzQ29tcG9uZW50LmNyZWF0ZURlY29yYXRvcihmdW5jdGlvbiAoY29tcG9uZW50T3B0aW9ucywgaGFuZGxlcikge1xuICAgICAgICBpZiAodHlwZW9mIGNvbXBvbmVudE9wdGlvbnMud2F0Y2ggIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBjb21wb25lbnRPcHRpb25zLndhdGNoID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBjb21wb25lbnRPcHRpb25zLndhdGNoW3BhdGhdID0geyBoYW5kbGVyOiBoYW5kbGVyLCBkZWVwOiBkZWVwLCBpbW1lZGlhdGU6IGltbWVkaWF0ZSB9O1xuICAgIH0pO1xufVxudmFyIHByb3AgPSBQcm9wO1xudmFyIHdhdGNoID0gV2F0Y2g7XG52YXIgQ29tcG9uZW50ID0gVnVlQ2xhc3NDb21wb25lbnRfX2RlZmF1bHQ7XG5cbmV4cG9ydHMuSW5qZWN0ID0gSW5qZWN0O1xuZXhwb3J0cy5Nb2RlbCA9IE1vZGVsO1xuZXhwb3J0cy5Qcm9wID0gUHJvcDtcbmV4cG9ydHMuV2F0Y2ggPSBXYXRjaDtcbmV4cG9ydHMucHJvcCA9IHByb3A7XG5leHBvcnRzLndhdGNoID0gd2F0Y2g7XG5leHBvcnRzLkNvbXBvbmVudCA9IENvbXBvbmVudDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtcHJvcGVydHktZGVjb3JhdG9yL2xpYi92dWUtcHJvcGVydHktZGVjb3JhdG9yLmNvbW1vbi5qc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiBnbG9iYWxzIF9fVlVFX1NTUl9DT05URVhUX18gKi9cblxuLy8gSU1QT1JUQU5UOiBEbyBOT1QgdXNlIEVTMjAxNSBmZWF0dXJlcyBpbiB0aGlzIGZpbGUgKGV4Y2VwdCBmb3IgbW9kdWxlcykuXG4vLyBUaGlzIG1vZHVsZSBpcyBhIHJ1bnRpbWUgdXRpbGl0eSBmb3IgY2xlYW5lciBjb21wb25lbnQgbW9kdWxlIG91dHB1dCBhbmQgd2lsbFxuLy8gYmUgaW5jbHVkZWQgaW4gdGhlIGZpbmFsIHdlYnBhY2sgdXNlciBidW5kbGUuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbXBvbmVudCAoXG4gIHNjcmlwdEV4cG9ydHMsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmdW5jdGlvbmFsVGVtcGxhdGUsXG4gIGluamVjdFN0eWxlcyxcbiAgc2NvcGVJZCxcbiAgbW9kdWxlSWRlbnRpZmllciwgLyogc2VydmVyIG9ubHkgKi9cbiAgc2hhZG93TW9kZSAvKiB2dWUtY2xpIG9ubHkgKi9cbikge1xuICBzY3JpcHRFeHBvcnRzID0gc2NyaXB0RXhwb3J0cyB8fCB7fVxuXG4gIC8vIEVTNiBtb2R1bGVzIGludGVyb3BcbiAgdmFyIHR5cGUgPSB0eXBlb2Ygc2NyaXB0RXhwb3J0cy5kZWZhdWx0XG4gIGlmICh0eXBlID09PSAnb2JqZWN0JyB8fCB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgc2NyaXB0RXhwb3J0cyA9IHNjcmlwdEV4cG9ydHMuZGVmYXVsdFxuICB9XG5cbiAgLy8gVnVlLmV4dGVuZCBjb25zdHJ1Y3RvciBleHBvcnQgaW50ZXJvcFxuICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzY3JpcHRFeHBvcnRzID09PSAnZnVuY3Rpb24nXG4gICAgPyBzY3JpcHRFeHBvcnRzLm9wdGlvbnNcbiAgICA6IHNjcmlwdEV4cG9ydHNcblxuICAvLyByZW5kZXIgZnVuY3Rpb25zXG4gIGlmIChyZW5kZXIpIHtcbiAgICBvcHRpb25zLnJlbmRlciA9IHJlbmRlclxuICAgIG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zID0gc3RhdGljUmVuZGVyRm5zXG4gICAgb3B0aW9ucy5fY29tcGlsZWQgPSB0cnVlXG4gIH1cblxuICAvLyBmdW5jdGlvbmFsIHRlbXBsYXRlXG4gIGlmIChmdW5jdGlvbmFsVGVtcGxhdGUpIHtcbiAgICBvcHRpb25zLmZ1bmN0aW9uYWwgPSB0cnVlXG4gIH1cblxuICAvLyBzY29wZWRJZFxuICBpZiAoc2NvcGVJZCkge1xuICAgIG9wdGlvbnMuX3Njb3BlSWQgPSBzY29wZUlkXG4gIH1cblxuICB2YXIgaG9va1xuICBpZiAobW9kdWxlSWRlbnRpZmllcikgeyAvLyBzZXJ2ZXIgYnVpbGRcbiAgICBob29rID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIC8vIDIuMyBpbmplY3Rpb25cbiAgICAgIGNvbnRleHQgPVxuICAgICAgICBjb250ZXh0IHx8IC8vIGNhY2hlZCBjYWxsXG4gICAgICAgICh0aGlzLiR2bm9kZSAmJiB0aGlzLiR2bm9kZS5zc3JDb250ZXh0KSB8fCAvLyBzdGF0ZWZ1bFxuICAgICAgICAodGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuJHZub2RlICYmIHRoaXMucGFyZW50LiR2bm9kZS5zc3JDb250ZXh0KSAvLyBmdW5jdGlvbmFsXG4gICAgICAvLyAyLjIgd2l0aCBydW5Jbk5ld0NvbnRleHQ6IHRydWVcbiAgICAgIGlmICghY29udGV4dCAmJiB0eXBlb2YgX19WVUVfU1NSX0NPTlRFWFRfXyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29udGV4dCA9IF9fVlVFX1NTUl9DT05URVhUX19cbiAgICAgIH1cbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgc3R5bGVzXG4gICAgICBpZiAoaW5qZWN0U3R5bGVzKSB7XG4gICAgICAgIGluamVjdFN0eWxlcy5jYWxsKHRoaXMsIGNvbnRleHQpXG4gICAgICB9XG4gICAgICAvLyByZWdpc3RlciBjb21wb25lbnQgbW9kdWxlIGlkZW50aWZpZXIgZm9yIGFzeW5jIGNodW5rIGluZmVycmVuY2VcbiAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzKSB7XG4gICAgICAgIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzLmFkZChtb2R1bGVJZGVudGlmaWVyKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB1c2VkIGJ5IHNzciBpbiBjYXNlIGNvbXBvbmVudCBpcyBjYWNoZWQgYW5kIGJlZm9yZUNyZWF0ZVxuICAgIC8vIG5ldmVyIGdldHMgY2FsbGVkXG4gICAgb3B0aW9ucy5fc3NyUmVnaXN0ZXIgPSBob29rXG4gIH0gZWxzZSBpZiAoaW5qZWN0U3R5bGVzKSB7XG4gICAgaG9vayA9IHNoYWRvd01vZGVcbiAgICAgID8gZnVuY3Rpb24gKCkgeyBpbmplY3RTdHlsZXModGhpcy4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290KSB9XG4gICAgICA6IGluamVjdFN0eWxlc1xuICB9XG5cbiAgaWYgKGhvb2spIHtcbiAgICBpZiAob3B0aW9ucy5mdW5jdGlvbmFsKSB7XG4gICAgICAvLyBmb3IgdGVtcGxhdGUtb25seSBob3QtcmVsb2FkIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSByZW5kZXIgZm4gZG9lc24ndFxuICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgbm9ybWFsaXplclxuICAgICAgb3B0aW9ucy5faW5qZWN0U3R5bGVzID0gaG9va1xuICAgICAgLy8gcmVnaXN0ZXIgZm9yIGZ1bmN0aW9hbCBjb21wb25lbnQgaW4gdnVlIGZpbGVcbiAgICAgIHZhciBvcmlnaW5hbFJlbmRlciA9IG9wdGlvbnMucmVuZGVyXG4gICAgICBvcHRpb25zLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcldpdGhTdHlsZUluamVjdGlvbiAoaCwgY29udGV4dCkge1xuICAgICAgICBob29rLmNhbGwoY29udGV4dClcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVuZGVyKGgsIGNvbnRleHQpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgcmVnaXN0cmF0aW9uIGFzIGJlZm9yZUNyZWF0ZSBob29rXG4gICAgICB2YXIgZXhpc3RpbmcgPSBvcHRpb25zLmJlZm9yZUNyZWF0ZVxuICAgICAgb3B0aW9ucy5iZWZvcmVDcmVhdGUgPSBleGlzdGluZ1xuICAgICAgICA/IFtdLmNvbmNhdChleGlzdGluZywgaG9vaylcbiAgICAgICAgOiBbaG9va11cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4cG9ydHM6IHNjcmlwdEV4cG9ydHMsXG4gICAgb3B0aW9uczogb3B0aW9uc1xuICB9XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplci5qc1xuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJpbXBvcnQgeyBIZWxwZXJzLCBIYXNoVGFibGUgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9iamVjdCB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEpzb25PYmplY3RQcm9wZXJ0eSBpbXBsZW1lbnRzIElPYmplY3Qge1xuICBwdWJsaWMgc3RhdGljIGdldEl0ZW1WYWx1ZXNEZWZhdWx0VmFsdWU6ICh2YWw6IGFueSkgPT4gYW55O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIHByaXZhdGUgc3RhdGljIG1lcmdhYmxlVmFsdWVzID0gW1xuICAgIFwidHlwZVZhbHVlXCIsXG4gICAgXCJjaG9pY2VzVmFsdWVcIixcbiAgICBcImJhc2VWYWx1ZVwiLFxuICAgIFwicmVhZE9ubHlWYWx1ZVwiLFxuICAgIFwidmlzaWJsZVZhbHVlXCIsXG4gICAgXCJpc1NlcmlhbGl6YWJsZVwiLFxuICAgIFwiaXNMaWdodFNlcmlhbGl6YWJsZVwiLFxuICAgIFwiaXNDdXN0b21cIixcbiAgICBcImlzRHluYW1pY0Nob2ljZXNcIixcbiAgICBcImlzTG9jYWxpemFibGVWYWx1ZVwiLFxuICAgIFwiY2xhc3NOYW1lXCIsXG4gICAgXCJhbHRlcm5hdGl2ZU5hbWVcIixcbiAgICBcImxheW91dFwiLFxuICAgIFwiY2xhc3NOYW1lUGFydFwiLFxuICAgIFwiYmFzZUNsYXNzTmFtZVwiLFxuICAgIFwiZGVmYXVsdFZhbHVlXCIsXG4gICAgXCJzZXJpYWxpemF0aW9uUHJvcGVydHlcIixcbiAgICBcIm9uR2V0VmFsdWVcIixcbiAgICBcIm9uU2V0VmFsdWVcIixcbiAgICBcImRlcGVuZGVkUHJvcGVydGllc1wiLFxuICAgIFwidmlzaWJsZUlmXCIsXG4gICAgXCJtYXhMZW5ndGhcIixcbiAgICBcIm1heFZhbHVlXCIsXG4gICAgXCJtaW5WYWx1ZVwiXG4gIF07XG4gIHByaXZhdGUgdHlwZVZhbHVlOiBzdHJpbmcgPSBudWxsO1xuICBwcml2YXRlIGNob2ljZXNWYWx1ZTogQXJyYXk8YW55PiA9IG51bGw7XG4gIHByaXZhdGUgYmFzZVZhbHVlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIGlzUmVxdWlyZWRWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRPbmx5VmFsdWU6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB2aXNpYmxlVmFsdWU6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBpc0xvY2FsaXphYmxlVmFsdWU6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjaG9pY2VzZnVuYzogKG9iajogYW55LCBjaG9pY2VzQ2FsbGJhY2s6IGFueSkgPT4gQXJyYXk8YW55PiA9IG51bGw7XG4gIHByaXZhdGUgZGVwZW5kZWRQcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmc+ID0gbnVsbDtcbiAgcHVibGljIGlzU2VyaWFsaXphYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIGlzTGlnaHRTZXJpYWxpemFibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgaXNDdXN0b206IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzRHluYW1pY0Nob2ljZXM6IGJvb2xlYW4gPSBmYWxzZTsgLy9UT0RPIG9ic29sZXRlLCB1c2UgZGVwZW5kc09uIGF0dHJpYnV0ZVxuICBwdWJsaWMgY2xhc3NOYW1lOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgYWx0ZXJuYXRpdmVOYW1lOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgY2xhc3NOYW1lUGFydDogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIGJhc2VDbGFzc05hbWU6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBkZWZhdWx0VmFsdWVWYWx1ZTogYW55ID0gbnVsbDtcbiAgcHVibGljIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIG1heExlbmd0aDogbnVtYmVyID0gLTE7XG4gIHB1YmxpYyBtYXhWYWx1ZTogYW55O1xuICBwdWJsaWMgbWluVmFsdWU6IGFueTtcbiAgcHVibGljIGxheW91dDogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIG9uR2V0VmFsdWU6IChvYmo6IGFueSkgPT4gYW55ID0gbnVsbDtcbiAgcHVibGljIG9uU2V0VmFsdWU6IChvYmo6IGFueSwgdmFsdWU6IGFueSwganNvbkNvbnY6IEpzb25PYmplY3QpID0+IGFueSA9IG51bGw7XG4gIHB1YmxpYyB2aXNpYmxlSWY6IChvYmo6IGFueSkgPT4gYm9vbGVhbiA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG5hbWU6IHN0cmluZywgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5pc1JlcXVpcmVkVmFsdWUgPSBpc1JlcXVpcmVkO1xuICB9XG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGVWYWx1ZSA/IHRoaXMudHlwZVZhbHVlIDogXCJzdHJpbmdcIjtcbiAgfVxuICBwdWJsaWMgc2V0IHR5cGUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSA9PT0gXCJpdGVtdmFsdWVzXCIpIHZhbHVlID0gXCJpdGVtdmFsdWVbXVwiO1xuICAgIHRoaXMudHlwZVZhbHVlID0gdmFsdWU7XG4gICAgaWYgKHRoaXMudHlwZVZhbHVlLmluZGV4T2YoXCJbXVwiKSA9PT0gdGhpcy50eXBlVmFsdWUubGVuZ3RoIC0gMikge1xuICAgICAgdGhpcy5pc0FycmF5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xhc3NOYW1lID0gdGhpcy50eXBlVmFsdWUuc3Vic3RyKDAsIHRoaXMudHlwZVZhbHVlLmxlbmd0aCAtIDIpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgaXNBcnJheSA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IGlzUmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZXF1aXJlZFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNSZXF1aXJlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzUmVxdWlyZWRWYWx1ZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1RvVXNlR2V0VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMub25HZXRWYWx1ZSB8fCB0aGlzLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRlZmF1bHRWYWx1ZSgpIHtcbiAgICB2YXIgcmVzdWx0OiBhbnkgPSB0aGlzLmRlZmF1bHRWYWx1ZVZhbHVlO1xuICAgIGlmIChcbiAgICAgICEhSnNvbk9iamVjdFByb3BlcnR5LmdldEl0ZW1WYWx1ZXNEZWZhdWx0VmFsdWUgJiZcbiAgICAgIEpzb25PYmplY3QubWV0YURhdGEuaXNEZXNjZW5kYW50T2YodGhpcy5jbGFzc05hbWUsIFwiaXRlbXZhbHVlXCIpXG4gICAgKSB7XG4gICAgICByZXN1bHQgPSBKc29uT2JqZWN0UHJvcGVydHkuZ2V0SXRlbVZhbHVlc0RlZmF1bHRWYWx1ZShcbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWVWYWx1ZSB8fCBbXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwdWJsaWMgc2V0IGRlZmF1bHRWYWx1ZShuZXdWYWx1ZSkge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlVmFsdWUgPSBuZXdWYWx1ZTtcbiAgfVxuICBwdWJsaWMgaXNEZWZhdWx0VmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghSGVscGVycy5pc1ZhbHVlRW1wdHkodGhpcy5kZWZhdWx0VmFsdWUpKVxuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlID09IHZhbHVlO1xuICAgIHJldHVybiAoXG4gICAgICAodmFsdWUgPT09IGZhbHNlICYmIHRoaXMudHlwZSA9PSBcImJvb2xlYW5cIikgfHxcbiAgICAgIHZhbHVlID09PSBcIlwiIHx8XG4gICAgICBIZWxwZXJzLmlzVmFsdWVFbXB0eSh2YWx1ZSlcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXRWYWx1ZShvYmo6IGFueSk6IGFueSB7XG4gICAgaWYgKHRoaXMub25HZXRWYWx1ZSkgcmV0dXJuIHRoaXMub25HZXRWYWx1ZShvYmopO1xuICAgIGlmICh0aGlzLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSAmJiAhIW9ialt0aGlzLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eV0pXG4gICAgICByZXR1cm4gb2JqW3RoaXMuc2VyaWFsaXphdGlvblByb3BlcnR5XS5nZXRKc29uKCk7XG4gICAgcmV0dXJuIG9ialt0aGlzLm5hbWVdO1xuICB9XG4gIHB1YmxpYyBnZXRQcm9wZXJ0eVZhbHVlKG9iajogYW55KTogYW55IHtcbiAgICBpZiAodGhpcy5pc0xvY2FsaXphYmxlKSByZXR1cm4gb2JqW3RoaXMuc2VyaWFsaXphdGlvblByb3BlcnR5XS50ZXh0O1xuICAgIHJldHVybiB0aGlzLmdldFZhbHVlKG9iaik7XG4gIH1cbiAgcHVibGljIGdldCBoYXNUb1VzZVNldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLm9uU2V0VmFsdWUgfHwgdGhpcy5zZXJpYWxpemF0aW9uUHJvcGVydHk7XG4gIH1cbiAgcHVibGljIHNldFZhbHVlKG9iajogYW55LCB2YWx1ZTogYW55LCBqc29uQ29udjogSnNvbk9iamVjdCkge1xuICAgIGlmICh0aGlzLm9uU2V0VmFsdWUpIHtcbiAgICAgIHRoaXMub25TZXRWYWx1ZShvYmosIHZhbHVlLCBqc29uQ29udik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSAmJiAhIW9ialt0aGlzLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eV0pXG4gICAgICAgIG9ialt0aGlzLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eV0uc2V0SnNvbih2YWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9ialt0aGlzLm5hbWVdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRPYmpUeXBlKG9ialR5cGU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5jbGFzc05hbWVQYXJ0KSByZXR1cm4gb2JqVHlwZTtcbiAgICByZXR1cm4gb2JqVHlwZS5yZXBsYWNlKHRoaXMuY2xhc3NOYW1lUGFydCwgXCJcIik7XG4gIH1cbiAgcHVibGljIGdldENsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGNsYXNzTmFtZSkgY2xhc3NOYW1lID0gY2xhc3NOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMuY2xhc3NOYW1lUGFydCAmJiBjbGFzc05hbWUuaW5kZXhPZih0aGlzLmNsYXNzTmFtZVBhcnQpIDwgMFxuICAgICAgPyBjbGFzc05hbWUgKyB0aGlzLmNsYXNzTmFtZVBhcnRcbiAgICAgIDogY2xhc3NOYW1lO1xuICB9XG4gIC8qKlxuICAgKiBEZXByaWNhdGVkLCBwbGVhc2UgdXNlIGdldENob2ljZXNcbiAgICovXG4gIHB1YmxpYyBnZXQgY2hvaWNlcygpOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaG9pY2VzKG51bGwpO1xuICB9XG4gIHB1YmxpYyBnZXQgaGFzQ2hvaWNlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNob2ljZXNWYWx1ZSB8fCAhIXRoaXMuY2hvaWNlc2Z1bmM7XG4gIH1cbiAgcHVibGljIGdldENob2ljZXMob2JqOiBhbnksIGNob2ljZXNDYWxsYmFjazogYW55ID0gbnVsbCk6IEFycmF5PGFueT4ge1xuICAgIGlmICh0aGlzLmNob2ljZXNWYWx1ZSAhPSBudWxsKSByZXR1cm4gdGhpcy5jaG9pY2VzVmFsdWU7XG4gICAgaWYgKHRoaXMuY2hvaWNlc2Z1bmMgIT0gbnVsbCkgcmV0dXJuIHRoaXMuY2hvaWNlc2Z1bmMob2JqLCBjaG9pY2VzQ2FsbGJhY2spO1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBzZXRDaG9pY2VzKHZhbHVlOiBBcnJheTxhbnk+LCB2YWx1ZUZ1bmM6ICgpID0+IEFycmF5PGFueT4pIHtcbiAgICB0aGlzLmNob2ljZXNWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hvaWNlc2Z1bmMgPSB2YWx1ZUZ1bmM7XG4gIH1cbiAgcHVibGljIGdldEJhc2VWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5iYXNlVmFsdWUpIHJldHVybiBcIlwiO1xuICAgIGlmICh0eXBlb2YgdGhpcy5iYXNlVmFsdWUgPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdGhpcy5iYXNlVmFsdWUoKTtcbiAgICByZXR1cm4gdGhpcy5iYXNlVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldEJhc2VWYWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMuYmFzZVZhbHVlID0gdmFsO1xuICB9XG4gIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVhZE9ubHlWYWx1ZSAhPSBudWxsID8gdGhpcy5yZWFkT25seVZhbHVlIDogZmFsc2U7XG4gIH1cbiAgcHVibGljIHNldCByZWFkT25seSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlYWRPbmx5VmFsdWUgPSB2YWw7XG4gIH1cbiAgcHVibGljIGlzVmlzaWJsZShsYXlvdXQ6IHN0cmluZywgb2JqOiBhbnkgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzTGF5b3V0ID0gIXRoaXMubGF5b3V0IHx8IHRoaXMubGF5b3V0ID09IGxheW91dDtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSB8fCAhaXNMYXlvdXQpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoISF0aGlzLnZpc2libGVJZiAmJiAhIW9iaikgcmV0dXJuIHRoaXMudmlzaWJsZUlmKG9iaik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVWYWx1ZSAhPSBudWxsID8gdGhpcy52aXNpYmxlVmFsdWUgOiB0cnVlO1xuICB9XG4gIHB1YmxpYyBzZXQgdmlzaWJsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnZpc2libGVWYWx1ZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzTG9jYWxpemFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNMb2NhbGl6YWJsZVZhbHVlICE9IG51bGwgPyB0aGlzLmlzTG9jYWxpemFibGVWYWx1ZSA6IGZhbHNlO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNMb2NhbGl6YWJsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzTG9jYWxpemFibGVWYWx1ZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgbWVyZ2VXaXRoKHByb3A6IEpzb25PYmplY3RQcm9wZXJ0eSkge1xuICAgIHZhciB2YWx1ZXNOYW1lcyA9IEpzb25PYmplY3RQcm9wZXJ0eS5tZXJnYWJsZVZhbHVlcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlc05hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLm1lcmdlVmFsdWUocHJvcCwgdmFsdWVzTmFtZXNbaV0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgYWRkRGVwZW5kZWRQcm9wZXJ0eShuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZGVwZW5kZWRQcm9wZXJ0aWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVkUHJvcGVydGllcyA9IFtdO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZXBlbmRlZFByb3BlcnRpZXMuaW5kZXhPZihuYW1lKSA8IDApIHtcbiAgICAgIHRoaXMuZGVwZW5kZWRQcm9wZXJ0aWVzLnB1c2gobmFtZSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXREZXBlbmRlZFByb3BlcnRpZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuICEhdGhpcy5kZXBlbmRlZFByb3BlcnRpZXMgPyB0aGlzLmRlcGVuZGVkUHJvcGVydGllcyA6IFtdO1xuICB9XG4gIHByaXZhdGUgbWVyZ2VWYWx1ZShwcm9wOiBKc29uT2JqZWN0UHJvcGVydHksIHZhbHVlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXNbdmFsdWVOYW1lXSA9PSBudWxsICYmIHByb3BbdmFsdWVOYW1lXSAhPSBudWxsKSB7XG4gICAgICB0aGlzW3ZhbHVlTmFtZV0gPSBwcm9wW3ZhbHVlTmFtZV07XG4gICAgfVxuICB9XG59XG5leHBvcnQgY2xhc3MgQ3VzdG9tUHJvcGVydGllc0NvbGxlY3Rpb24ge1xuICBwcml2YXRlIHN0YXRpYyBwcm9wZXJ0aWVzOiBJT2JqZWN0ID0ge307XG4gIHByaXZhdGUgc3RhdGljIHBhcmVudENsYXNzZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgcHVibGljIHN0YXRpYyBhZGRQcm9wZXJ0eShjbGFzc05hbWU6IHN0cmluZywgcHJvcGVydHk6IGFueSkge1xuICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBwcm9wcyA9IEN1c3RvbVByb3BlcnRpZXNDb2xsZWN0aW9uLnByb3BlcnRpZXM7XG4gICAgaWYgKCFwcm9wc1tjbGFzc05hbWVdKSB7XG4gICAgICBwcm9wc1tjbGFzc05hbWVdID0gW107XG4gICAgfVxuICAgIHByb3BzW2NsYXNzTmFtZV0ucHVzaChwcm9wZXJ0eSk7XG4gIH1cbiAgcHVibGljIHN0YXRpYyByZW1vdmVQcm9wZXJ0eShjbGFzc05hbWU6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcpIHtcbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgcHJvcHMgPSBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5wcm9wZXJ0aWVzO1xuICAgIGlmICghcHJvcHNbY2xhc3NOYW1lXSkgcmV0dXJuO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gcHJvcHNbY2xhc3NOYW1lXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwcm9wZXJ0aWVzW2ldLm5hbWUgPT0gcHJvcGVydHlOYW1lKSB7XG4gICAgICAgIHByb3BzW2NsYXNzTmFtZV0uc3BsaWNlKGksIDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIHN0YXRpYyBhZGRDbGFzcyhjbGFzc05hbWU6IHN0cmluZywgcGFyZW50Q2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAocGFyZW50Q2xhc3NOYW1lKSB7XG4gICAgICBwYXJlbnRDbGFzc05hbWUgPSBwYXJlbnRDbGFzc05hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgQ3VzdG9tUHJvcGVydGllc0NvbGxlY3Rpb24ucGFyZW50Q2xhc3Nlc1tjbGFzc05hbWVdID0gcGFyZW50Q2xhc3NOYW1lO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgZ2V0UHJvcGVydGllcyhjbGFzc05hbWU6IHN0cmluZyk6IEFycmF5PGFueT4ge1xuICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgcHJvcHMgPSBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5wcm9wZXJ0aWVzO1xuICAgIHdoaWxlIChjbGFzc05hbWUpIHtcbiAgICAgIHZhciBwcm9wZXJ0aWVzID0gcHJvcHNbY2xhc3NOYW1lXTtcbiAgICAgIGlmIChwcm9wZXJ0aWVzKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHJlcy5wdXNoKHByb3BlcnRpZXNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjbGFzc05hbWUgPSBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5wYXJlbnRDbGFzc2VzW2NsYXNzTmFtZV07XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVQcm9wZXJ0aWVzKG9iajogYW55KSB7XG4gICAgaWYgKCFvYmogfHwgIW9iai5nZXRUeXBlKSByZXR1cm47XG4gICAgQ3VzdG9tUHJvcGVydGllc0NvbGxlY3Rpb24uY3JlYXRlUHJvcGVydGllc0NvcmUob2JqLCBvYmouZ2V0VHlwZSgpKTtcbiAgfVxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVQcm9wZXJ0aWVzQ29yZShvYmo6IGFueSwgY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICB2YXIgcHJvcHMgPSBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5wcm9wZXJ0aWVzO1xuICAgIGlmIChwcm9wc1tjbGFzc05hbWVdKSB7XG4gICAgICBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcmVhdGVQcm9wZXJ0aWVzSW5PYmoob2JqLCBwcm9wc1tjbGFzc05hbWVdKTtcbiAgICB9XG4gICAgdmFyIHBhcmVudENsYXNzID0gQ3VzdG9tUHJvcGVydGllc0NvbGxlY3Rpb24ucGFyZW50Q2xhc3Nlc1tjbGFzc05hbWVdO1xuICAgIGlmIChwYXJlbnRDbGFzcykge1xuICAgICAgQ3VzdG9tUHJvcGVydGllc0NvbGxlY3Rpb24uY3JlYXRlUHJvcGVydGllc0NvcmUob2JqLCBwYXJlbnRDbGFzcyk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZVByb3BlcnRpZXNJbk9iaihvYmo6IGFueSwgcHJvcGVydGllczogYW55W10pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIEN1c3RvbVByb3BlcnRpZXNDb2xsZWN0aW9uLmNyZWF0ZVByb3BlcnR5SW5PYmoob2JqLCBwcm9wZXJ0aWVzW2ldKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlUHJvcGVydHlJbk9iaihvYmo6IGFueSwgcHJvcDogSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgaWYgKG9ialtwcm9wLm5hbWVdIHx8IG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wLm5hbWUpKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgcHJvcC5pc0xvY2FsaXphYmxlICYmXG4gICAgICBwcm9wLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSAmJlxuICAgICAgIW9ialtwcm9wLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eV0gJiZcbiAgICAgIG9iai5jcmVhdGVDdXN0b21Mb2NhbGl6YWJsZU9ialxuICAgICkge1xuICAgICAgb2JqLmNyZWF0ZUN1c3RvbUxvY2FsaXphYmxlT2JqKHByb3AubmFtZSk7XG4gICAgICB2YXIgbG9jRGVzYyA9IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gb2JqLmdldExvY2FsaXphYmxlU3RyaW5nKHByb3AubmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBwcm9wLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSwgbG9jRGVzYyk7XG4gICAgICB2YXIgZGVzYyA9IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gb2JqLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChwcm9wLm5hbWUsIHByb3AuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbih2OiBhbnkpIHtcbiAgICAgICAgICBvYmouc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KHByb3AubmFtZSwgdik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBwcm9wLm5hbWUsIGRlc2MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZGVmYXVsdFZhbHVlID0gcHJvcC5kZWZhdWx0VmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIEpzb25PYmplY3QubWV0YURhdGEuaXNEZXNjZW5kYW50T2YocHJvcC5jbGFzc05hbWUsIFwiaXRlbXZhbHVlXCIpICYmXG4gICAgICAgIHR5cGVvZiBvYmouY3JlYXRlTmV3QXJyYXkgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgKSB7XG4gICAgICAgIG9iai5jcmVhdGVOZXdBcnJheShwcm9wLm5hbWUsIGZ1bmN0aW9uKGl0ZW06IGFueSkge1xuICAgICAgICAgIGl0ZW0ubG9jT3duZXIgPSBvYmo7XG4gICAgICAgIH0pO1xuICAgICAgICBvYmouc2V0UHJvcGVydHlWYWx1ZShwcm9wLm5hbWUsIGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoISFvYmouZ2V0UHJvcGVydHlWYWx1ZSAmJiAhIW9iai5zZXRQcm9wZXJ0eVZhbHVlKSB7XG4gICAgICAgIHZhciBkZXNjID0ge1xuICAgICAgICAgIGdldDogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG9iai5nZXRQcm9wZXJ0eVZhbHVlKHByb3AubmFtZSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldDogZnVuY3Rpb24odjogYW55KSB7XG4gICAgICAgICAgICBpZiAoISFwcm9wLm9uU2V0VmFsdWUpIHtcbiAgICAgICAgICAgICAgcHJvcC5vblNldFZhbHVlKG9iaiwgdiwgbnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvYmouc2V0UHJvcGVydHlWYWx1ZShwcm9wLm5hbWUsIHYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgcHJvcC5uYW1lLCBkZXNjKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpzb25NZXRhZGF0YUNsYXNzIHtcbiAgc3RhdGljIHJlcXVpcmVkU3ltYm9sID0gXCIhXCI7XG4gIHN0YXRpYyB0eXBlU3ltYm9sID0gXCI6XCI7XG4gIHByb3BlcnRpZXM6IEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4gPSBudWxsO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIHByb3BlcnRpZXM6IEFycmF5PGFueT4sXG4gICAgcHVibGljIGNyZWF0b3I6IChqc29uPzogYW55KSA9PiBhbnkgPSBudWxsLFxuICAgIHB1YmxpYyBwYXJlbnROYW1lOiBzdHJpbmcgPSBudWxsXG4gICkge1xuICAgIG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMucGFyZW50TmFtZSkge1xuICAgICAgdGhpcy5wYXJlbnROYW1lID0gdGhpcy5wYXJlbnROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5hZGRDbGFzcyhuYW1lLCB0aGlzLnBhcmVudE5hbWUpO1xuICAgIH1cbiAgICB0aGlzLnByb3BlcnRpZXMgPSBuZXcgQXJyYXk8SnNvbk9iamVjdFByb3BlcnR5PigpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHByb3AgPSB0aGlzLmNyZWF0ZVByb3BlcnR5KHByb3BlcnRpZXNbaV0pO1xuICAgICAgaWYgKHByb3ApIHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBmaW5kKG5hbWU6IHN0cmluZyk6IEpzb25PYmplY3RQcm9wZXJ0eSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLnByb3BlcnRpZXNbaV0ubmFtZSA9PSBuYW1lKSByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzW2ldO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgY3JlYXRlUHJvcGVydHkocHJvcEluZm86IGFueSk6IEpzb25PYmplY3RQcm9wZXJ0eSB7XG4gICAgdmFyIHByb3BlcnR5TmFtZSA9IHR5cGVvZiBwcm9wSW5mbyA9PT0gXCJzdHJpbmdcIiA/IHByb3BJbmZvIDogcHJvcEluZm8ubmFtZTtcbiAgICBpZiAoIXByb3BlcnR5TmFtZSkgcmV0dXJuO1xuICAgIHZhciBwcm9wZXJ0eVR5cGUgPSBudWxsO1xuICAgIHZhciB0eXBlSW5kZXggPSBwcm9wZXJ0eU5hbWUuaW5kZXhPZihKc29uTWV0YWRhdGFDbGFzcy50eXBlU3ltYm9sKTtcbiAgICBpZiAodHlwZUluZGV4ID4gLTEpIHtcbiAgICAgIHByb3BlcnR5VHlwZSA9IHByb3BlcnR5TmFtZS5zdWJzdHJpbmcodHlwZUluZGV4ICsgMSk7XG4gICAgICBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWUuc3Vic3RyaW5nKDAsIHR5cGVJbmRleCk7XG4gICAgfVxuICAgIHZhciBpc1JlcXVpcmVkID1cbiAgICAgIHRoaXMuZ2V0SXNQcm9wZXJ0eU5hbWVSZXF1aXJlZChwcm9wZXJ0eU5hbWUpIHx8ICEhcHJvcEluZm8uaXNSZXF1aXJlZDtcbiAgICBwcm9wZXJ0eU5hbWUgPSB0aGlzLmdldFByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpO1xuICAgIHZhciBwcm9wID0gbmV3IEpzb25PYmplY3RQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGlzUmVxdWlyZWQpO1xuICAgIGlmIChwcm9wZXJ0eVR5cGUpIHtcbiAgICAgIHByb3AudHlwZSA9IHByb3BlcnR5VHlwZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwcm9wSW5mbyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgaWYgKHByb3BJbmZvLnR5cGUpIHtcbiAgICAgICAgcHJvcC50eXBlID0gcHJvcEluZm8udHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghSGVscGVycy5pc1ZhbHVlRW1wdHkocHJvcEluZm8uZGVmYXVsdCkpIHtcbiAgICAgICAgcHJvcC5kZWZhdWx0VmFsdWUgPSBwcm9wSW5mby5kZWZhdWx0O1xuICAgICAgfVxuICAgICAgaWYgKCFIZWxwZXJzLmlzVmFsdWVFbXB0eShwcm9wSW5mby5pc1NlcmlhbGl6YWJsZSkpIHtcbiAgICAgICAgcHJvcC5pc1NlcmlhbGl6YWJsZSA9IHByb3BJbmZvLmlzU2VyaWFsaXphYmxlO1xuICAgICAgfVxuICAgICAgaWYgKCFIZWxwZXJzLmlzVmFsdWVFbXB0eShwcm9wSW5mby5pc0xpZ2h0U2VyaWFsaXphYmxlKSkge1xuICAgICAgICBwcm9wLmlzTGlnaHRTZXJpYWxpemFibGUgPSBwcm9wSW5mby5pc0xpZ2h0U2VyaWFsaXphYmxlO1xuICAgICAgfVxuICAgICAgaWYgKCFIZWxwZXJzLmlzVmFsdWVFbXB0eShwcm9wSW5mby5tYXhMZW5ndGgpKSB7XG4gICAgICAgIHByb3AubWF4TGVuZ3RoID0gcHJvcEluZm8ubWF4TGVuZ3RoO1xuICAgICAgfVxuICAgICAgaWYgKCFIZWxwZXJzLmlzVmFsdWVFbXB0eShwcm9wSW5mby5tYXhWYWx1ZSkpIHtcbiAgICAgICAgcHJvcC5tYXhWYWx1ZSA9IHByb3BJbmZvLm1heFZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKCFIZWxwZXJzLmlzVmFsdWVFbXB0eShwcm9wSW5mby5taW5WYWx1ZSkpIHtcbiAgICAgICAgcHJvcC5taW5WYWx1ZSA9IHByb3BJbmZvLm1pblZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKCFIZWxwZXJzLmlzVmFsdWVFbXB0eShwcm9wSW5mby5pc0R5bmFtaWNDaG9pY2VzKSkge1xuICAgICAgICBwcm9wLmlzRHluYW1pY0Nob2ljZXMgPSBwcm9wSW5mby5pc0R5bmFtaWNDaG9pY2VzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BJbmZvLnZpc2libGUgPT09IGZhbHNlKSB7XG4gICAgICAgIHByb3AudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKCEhcHJvcEluZm8udmlzaWJsZUlmKSB7XG4gICAgICAgIHByb3AudmlzaWJsZUlmID0gcHJvcEluZm8udmlzaWJsZUlmO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BJbmZvLmNob2ljZXMpIHtcbiAgICAgICAgdmFyIGNob2ljZXNGdW5jID1cbiAgICAgICAgICB0eXBlb2YgcHJvcEluZm8uY2hvaWNlcyA9PT0gXCJmdW5jdGlvblwiID8gcHJvcEluZm8uY2hvaWNlcyA6IG51bGw7XG4gICAgICAgIHZhciBjaG9pY2VzVmFsdWUgPVxuICAgICAgICAgIHR5cGVvZiBwcm9wSW5mby5jaG9pY2VzICE9PSBcImZ1bmN0aW9uXCIgPyBwcm9wSW5mby5jaG9pY2VzIDogbnVsbDtcbiAgICAgICAgcHJvcC5zZXRDaG9pY2VzKGNob2ljZXNWYWx1ZSwgY2hvaWNlc0Z1bmMpO1xuICAgICAgfVxuICAgICAgaWYgKCEhcHJvcEluZm8uYmFzZVZhbHVlKSB7XG4gICAgICAgIHByb3Auc2V0QmFzZVZhbHVlKHByb3BJbmZvLmJhc2VWYWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcEluZm8ub25HZXRWYWx1ZSkge1xuICAgICAgICBwcm9wLm9uR2V0VmFsdWUgPSBwcm9wSW5mby5vbkdldFZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BJbmZvLm9uU2V0VmFsdWUpIHtcbiAgICAgICAgcHJvcC5vblNldFZhbHVlID0gcHJvcEluZm8ub25TZXRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wSW5mby5pc0xvY2FsaXphYmxlKSB7XG4gICAgICAgIHByb3BJbmZvLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSA9IFwibG9jXCIgKyBwcm9wSW5mby5uYW1lO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BJbmZvLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSkge1xuICAgICAgICBwcm9wLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSA9IHByb3BJbmZvLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eTtcbiAgICAgICAgdmFyIHM6IHN0cmluZztcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHByb3Auc2VyaWFsaXphdGlvblByb3BlcnR5ICYmXG4gICAgICAgICAgcHJvcC5zZXJpYWxpemF0aW9uUHJvcGVydHkuaW5kZXhPZihcImxvY1wiKSA9PSAwXG4gICAgICAgICkge1xuICAgICAgICAgIHByb3AuaXNMb2NhbGl6YWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wSW5mby5pc0xvY2FsaXphYmxlKSB7XG4gICAgICAgIHByb3AuaXNMb2NhbGl6YWJsZSA9IHByb3BJbmZvLmlzTG9jYWxpemFibGU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcEluZm8uY2xhc3NOYW1lKSB7XG4gICAgICAgIHByb3AuY2xhc3NOYW1lID0gcHJvcEluZm8uY2xhc3NOYW1lO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BJbmZvLmJhc2VDbGFzc05hbWUpIHtcbiAgICAgICAgcHJvcC5iYXNlQ2xhc3NOYW1lID0gcHJvcEluZm8uYmFzZUNsYXNzTmFtZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wSW5mby5jbGFzc05hbWVQYXJ0KSB7XG4gICAgICAgIHByb3AuY2xhc3NOYW1lUGFydCA9IHByb3BJbmZvLmNsYXNzTmFtZVBhcnQ7XG4gICAgICB9XG4gICAgICBpZiAocHJvcEluZm8uYWx0ZXJuYXRpdmVOYW1lKSB7XG4gICAgICAgIHByb3AuYWx0ZXJuYXRpdmVOYW1lID0gcHJvcEluZm8uYWx0ZXJuYXRpdmVOYW1lO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BJbmZvLmxheW91dCkge1xuICAgICAgICBwcm9wLmxheW91dCA9IHByb3BJbmZvLmxheW91dDtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wSW5mby5kZXBlbmRzT24pIHtcbiAgICAgICAgdGhpcy5hZGREZXBlbmRzT25Qcm9wZXJ0aWVzKHByb3AsIHByb3BJbmZvLmRlcGVuZHNPbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wO1xuICB9XG4gIHByaXZhdGUgYWRkRGVwZW5kc09uUHJvcGVydGllcyhwcm9wOiBKc29uT2JqZWN0UHJvcGVydHksIGRlcGVuZHNPbjogYW55KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGVwZW5kc09uKSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXBlbmRzT24ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5hZGREZXBlbmRzT25Qcm9wZXJ0eShwcm9wLCBkZXBlbmRzT25baV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZERlcGVuZHNPblByb3BlcnR5KHByb3AsIGRlcGVuZHNPbik7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYWRkRGVwZW5kc09uUHJvcGVydHkocHJvcDogSnNvbk9iamVjdFByb3BlcnR5LCBkZXBlbmRzT246IHN0cmluZykge1xuICAgIHZhciBwcm9wZXJ0eSA9IHRoaXMuZmluZChkZXBlbmRzT24pO1xuICAgIGlmICghcHJvcGVydHkpIHtcbiAgICAgIHByb3BlcnR5ID0gU2VyaWFsaXplci5maW5kUHJvcGVydHkodGhpcy5wYXJlbnROYW1lLCBkZXBlbmRzT24pO1xuICAgIH1cbiAgICBpZiAoIXByb3BlcnR5KSByZXR1cm47XG4gICAgcHJvcGVydHkuYWRkRGVwZW5kZWRQcm9wZXJ0eShwcm9wLm5hbWUpO1xuICB9XG4gIHByaXZhdGUgZ2V0SXNQcm9wZXJ0eU5hbWVSZXF1aXJlZChwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBwcm9wZXJ0eU5hbWUubGVuZ3RoID4gMCAmJlxuICAgICAgcHJvcGVydHlOYW1lWzBdID09IEpzb25NZXRhZGF0YUNsYXNzLnJlcXVpcmVkU3ltYm9sXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIGdldFByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmdldElzUHJvcGVydHlOYW1lUmVxdWlyZWQocHJvcGVydHlOYW1lKSkgcmV0dXJuIHByb3BlcnR5TmFtZTtcbiAgICBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWUuc2xpY2UoMSk7XG4gICAgcmV0dXJuIHByb3BlcnR5TmFtZTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIEpzb25NZXRhZGF0YSB7XG4gIHByaXZhdGUgY2xhc3NlczogSGFzaFRhYmxlPEpzb25NZXRhZGF0YUNsYXNzPiA9IHt9O1xuICBwcml2YXRlIGFsdGVybmF0aXZlTmFtZXM6IEhhc2hUYWJsZTxzdHJpbmc+ID0ge307XG4gIHByaXZhdGUgY2hpbGRyZW5DbGFzc2VzOiBIYXNoVGFibGU8QXJyYXk8SnNvbk1ldGFkYXRhQ2xhc3M+PiA9IHt9O1xuICBwcml2YXRlIGNsYXNzUHJvcGVydGllczogSGFzaFRhYmxlPEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4+ID0ge307XG4gIHByaXZhdGUgY2xhc3NIYXNoUHJvcGVydGllczogSGFzaFRhYmxlPEhhc2hUYWJsZTxKc29uT2JqZWN0UHJvcGVydHk+PiA9IHt9O1xuICBwdWJsaWMgYWRkQ2xhc3MoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHByb3BlcnRpZXM6IEFycmF5PGFueT4sXG4gICAgY3JlYXRvcjogKGpzb24/OiBhbnkpID0+IGFueSA9IG51bGwsXG4gICAgcGFyZW50TmFtZTogc3RyaW5nID0gbnVsbFxuICApOiBKc29uTWV0YWRhdGFDbGFzcyB7XG4gICAgbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgbWV0YURhdGFDbGFzcyA9IG5ldyBKc29uTWV0YWRhdGFDbGFzcyhcbiAgICAgIG5hbWUsXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgICAgY3JlYXRvcixcbiAgICAgIHBhcmVudE5hbWVcbiAgICApO1xuICAgIHRoaXMuY2xhc3Nlc1tuYW1lXSA9IG1ldGFEYXRhQ2xhc3M7XG4gICAgaWYgKHBhcmVudE5hbWUpIHtcbiAgICAgIHBhcmVudE5hbWUgPSBwYXJlbnROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuQ2xhc3Nlc1twYXJlbnROYW1lXTtcbiAgICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbkNsYXNzZXNbcGFyZW50TmFtZV0gPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hpbGRyZW5DbGFzc2VzW3BhcmVudE5hbWVdLnB1c2gobWV0YURhdGFDbGFzcyk7XG4gICAgfVxuICAgIHJldHVybiBtZXRhRGF0YUNsYXNzO1xuICB9XG4gIHB1YmxpYyByZW1vdmVDbGFzcyhuYW1lOiBzdHJpbmcpIHtcbiAgICB2YXIgbWV0YUNsYXNzID0gdGhpcy5maW5kQ2xhc3MobmFtZSk7XG4gICAgaWYgKCFtZXRhQ2xhc3MpIHJldHVybjtcbiAgICBkZWxldGUgdGhpcy5jbGFzc2VzW21ldGFDbGFzcy5uYW1lXTtcbiAgICBpZiAoISFtZXRhQ2xhc3MucGFyZW50TmFtZSkge1xuICAgICAgdmFyIGluZGV4ID0gdGhpcy5jaGlsZHJlbkNsYXNzZXNbbWV0YUNsYXNzLnBhcmVudE5hbWVdLmluZGV4T2YobWV0YUNsYXNzKTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW5DbGFzc2VzW21ldGFDbGFzcy5wYXJlbnROYW1lXS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGVDbGFzc0NyZWF0b3JlKG5hbWU6IHN0cmluZywgY3JlYXRvcjogKCkgPT4gYW55KSB7XG4gICAgdGhpcy5vdmVycmlkZUNsYXNzQ3JlYXRvcihuYW1lLCBjcmVhdG9yKTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGVDbGFzc0NyZWF0b3IobmFtZTogc3RyaW5nLCBjcmVhdG9yOiAoKSA9PiBhbnkpIHtcbiAgICBuYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBtZXRhRGF0YUNsYXNzID0gdGhpcy5maW5kQ2xhc3MobmFtZSk7XG4gICAgaWYgKG1ldGFEYXRhQ2xhc3MpIHtcbiAgICAgIG1ldGFEYXRhQ2xhc3MuY3JlYXRvciA9IGNyZWF0b3I7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRQcm9wZXJ0aWVzKGNsYXNzTmFtZTogc3RyaW5nKTogQXJyYXk8SnNvbk9iamVjdFByb3BlcnR5PiB7XG4gICAgdmFyIG1ldGFDbGFzcyA9IHRoaXMuZmluZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgaWYgKCFtZXRhQ2xhc3MpIHJldHVybiBbXTtcbiAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMuY2xhc3NQcm9wZXJ0aWVzW21ldGFDbGFzcy5uYW1lXTtcbiAgICBpZiAoISFwcm9wZXJ0aWVzKSByZXR1cm4gcHJvcGVydGllcztcbiAgICB0aGlzLmZpbGxQcm9wZXJ0aWVzRm9yQ2xhc3MobWV0YUNsYXNzLm5hbWUpO1xuICAgIHJldHVybiB0aGlzLmNsYXNzUHJvcGVydGllc1ttZXRhQ2xhc3MubmFtZV07XG4gIH1cbiAgcHJpdmF0ZSBnZXRIYXNoUHJvcGVydGllcyhjbGFzc05hbWU6IHN0cmluZyk6IEhhc2hUYWJsZTxKc29uT2JqZWN0UHJvcGVydHk+IHtcbiAgICB2YXIgbWV0YUNsYXNzID0gdGhpcy5maW5kQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICBpZiAoIW1ldGFDbGFzcykgcmV0dXJuIHt9O1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5jbGFzc0hhc2hQcm9wZXJ0aWVzW21ldGFDbGFzcy5uYW1lXTtcbiAgICBpZiAoISFwcm9wZXJ0aWVzKSByZXR1cm4gcHJvcGVydGllcztcbiAgICB0aGlzLmZpbGxQcm9wZXJ0aWVzRm9yQ2xhc3MobWV0YUNsYXNzLm5hbWUpO1xuICAgIHJldHVybiB0aGlzLmNsYXNzSGFzaFByb3BlcnRpZXNbbWV0YUNsYXNzLm5hbWVdO1xuICB9XG4gIHByaXZhdGUgZmlsbFByb3BlcnRpZXNGb3JDbGFzcyhjbGFzc05hbWU6IHN0cmluZykge1xuICAgIHZhciBwcm9wZXJ0aWVzID0gbmV3IEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4oKTtcbiAgICB2YXIgaGFzaFByb3BlcnRpZXMgPSB7fTtcbiAgICB0aGlzLmZpbGxQcm9wZXJ0aWVzKGNsYXNzTmFtZSwgcHJvcGVydGllcywgaGFzaFByb3BlcnRpZXMpO1xuICAgIHRoaXMuY2xhc3NQcm9wZXJ0aWVzW2NsYXNzTmFtZV0gPSBwcm9wZXJ0aWVzO1xuICAgIHRoaXMuY2xhc3NIYXNoUHJvcGVydGllc1tjbGFzc05hbWVdID0gaGFzaFByb3BlcnRpZXM7XG4gIH1cbiAgcHJpdmF0ZSBnZXREeW5hbWljUHJvcGVydGllcyhvYmo6IGFueSk6IEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIGlmIChvYmouZ2V0RHluYW1pY1Byb3BlcnRpZXMgJiYgb2JqLmdldER5bmFtaWNUeXBlKSB7XG4gICAgICB2YXIgbmFtZXMgPSBvYmouZ2V0RHluYW1pY1Byb3BlcnRpZXMoKTtcbiAgICAgIHJldHVybiBKc29uT2JqZWN0Lm1ldGFEYXRhLmZpbmRQcm9wZXJ0aWVzKG9iai5nZXREeW5hbWljVHlwZSgpLCBuYW1lcyk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuICBwdWJsaWMgZ2V0UHJvcGVydGllc0J5T2JqKG9iajogYW55KTogQXJyYXk8SnNvbk9iamVjdFByb3BlcnR5PiB7XG4gICAgaWYgKCFvYmogfHwgIW9iai5nZXRUeXBlKSByZXR1cm4gW107XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciBwcm9wcyA9IHRoaXMuZ2V0UHJvcGVydGllcyhvYmouZ2V0VHlwZSgpKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMucHVzaChwcm9wc1tpXSk7XG4gICAgfVxuICAgIHZhciBkeW5hbWljUHJvcHMgPSB0aGlzLmdldER5bmFtaWNQcm9wZXJ0aWVzKG9iaik7XG4gICAgaWYgKGR5bmFtaWNQcm9wcyAmJiBkeW5hbWljUHJvcHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkeW5hbWljUHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVzLnB1c2goZHluYW1pY1Byb3BzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBmaW5kUHJvcGVydHkoXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmdcbiAgKTogSnNvbk9iamVjdFByb3BlcnR5IHtcbiAgICB2YXIgaGFzaCA9IHRoaXMuZ2V0SGFzaFByb3BlcnRpZXMoY2xhc3NOYW1lKTtcbiAgICB2YXIgcmVzID0gaGFzaFtwcm9wZXJ0eU5hbWVdO1xuICAgIHJldHVybiAhIXJlcyA/IHJlcyA6IG51bGw7XG4gIH1cbiAgcHVibGljIGZpbmRQcm9wZXJ0aWVzKFxuICAgIGNsYXNzTmFtZTogc3RyaW5nLFxuICAgIHByb3BlcnR5TmFtZXM6IEFycmF5PHN0cmluZz5cbiAgKTogQXJyYXk8SnNvbk9iamVjdFByb3BlcnR5PiB7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHZhciBoYXNoID0gdGhpcy5nZXRIYXNoUHJvcGVydGllcyhjbGFzc05hbWUpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydHlOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHByb3AgPSBoYXNoW3Byb3BlcnR5TmFtZXNbaV1dO1xuICAgICAgaWYgKHByb3ApIHtcbiAgICAgICAgcmVzdWx0LnB1c2gocHJvcCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHVibGljIGNyZWF0ZUNsYXNzKG5hbWU6IHN0cmluZywganNvbjogYW55ID0gdW5kZWZpbmVkKTogYW55IHtcbiAgICBuYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBtZXRhRGF0YUNsYXNzID0gdGhpcy5maW5kQ2xhc3MobmFtZSk7XG4gICAgaWYgKCFtZXRhRGF0YUNsYXNzKSByZXR1cm4gbnVsbDtcbiAgICBpZiAobWV0YURhdGFDbGFzcy5jcmVhdG9yKSByZXR1cm4gbWV0YURhdGFDbGFzcy5jcmVhdG9yKGpzb24pO1xuICAgIHZhciBwYXJlbnROYW1lID0gbWV0YURhdGFDbGFzcy5wYXJlbnROYW1lO1xuICAgIHdoaWxlIChwYXJlbnROYW1lKSB7XG4gICAgICBtZXRhRGF0YUNsYXNzID0gdGhpcy5maW5kQ2xhc3MocGFyZW50TmFtZSk7XG4gICAgICBpZiAoIW1ldGFEYXRhQ2xhc3MpIHJldHVybiBudWxsO1xuICAgICAgcGFyZW50TmFtZSA9IG1ldGFEYXRhQ2xhc3MucGFyZW50TmFtZTtcbiAgICAgIGlmIChtZXRhRGF0YUNsYXNzLmNyZWF0b3IpXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUN1c3RvbVR5cGUobmFtZSwgbWV0YURhdGFDbGFzcy5jcmVhdG9yLCBqc29uKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVDdXN0b21UeXBlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjcmVhdG9yOiBhbnksXG4gICAganNvbjogYW55ID0gdW5kZWZpbmVkXG4gICk6IGFueSB7XG4gICAgbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgcmVzID0gY3JlYXRvcihqc29uKTtcbiAgICB2YXIgY3VzdG9tVHlwZU5hbWUgPSBuYW1lO1xuICAgIHZhciBjdXN0b21UZW1wbGF0ZU5hbWUgPSByZXMuZ2V0VGVtcGxhdGVcbiAgICAgID8gcmVzLmdldFRlbXBsYXRlKClcbiAgICAgIDogcmVzLmdldFR5cGUoKTtcbiAgICByZXMuZ2V0VHlwZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGN1c3RvbVR5cGVOYW1lO1xuICAgIH07XG4gICAgcmVzLmdldFRlbXBsYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gY3VzdG9tVGVtcGxhdGVOYW1lO1xuICAgIH07XG4gICAgQ3VzdG9tUHJvcGVydGllc0NvbGxlY3Rpb24uY3JlYXRlUHJvcGVydGllcyhyZXMpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGdldENoaWxkcmVuQ2xhc3NlcyhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY2FuQmVDcmVhdGVkOiBib29sZWFuID0gZmFsc2VcbiAgKTogQXJyYXk8SnNvbk1ldGFkYXRhQ2xhc3M+IHtcbiAgICBuYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciByZXN1bHQ6IEFycmF5PEpzb25NZXRhZGF0YUNsYXNzPiA9IFtdO1xuICAgIHRoaXMuZmlsbENoaWxkcmVuQ2xhc3NlcyhuYW1lLCBjYW5CZUNyZWF0ZWQsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwdWJsaWMgZ2V0UmVxdWlyZWRQcm9wZXJ0aWVzKG5hbWU6IHN0cmluZyk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5nZXRQcm9wZXJ0aWVzKG5hbWUpO1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwcm9wZXJ0aWVzW2ldLmlzUmVxdWlyZWQpIHtcbiAgICAgICAgcmVzLnB1c2gocHJvcGVydGllc1tpXS5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwdWJsaWMgYWRkUHJvcGVydGllcyhjbGFzc05hbWU6IHN0cmluZywgcHJvcGVydGllc0luZm9zOiBBcnJheTxhbnk+KSB7XG4gICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFyIG1ldGFEYXRhQ2xhc3MgPSB0aGlzLmZpbmRDbGFzcyhjbGFzc05hbWUpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllc0luZm9zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmFkZEN1c3RvbVByb3BlcnR5Q29yZShtZXRhRGF0YUNsYXNzLCBwcm9wZXJ0aWVzSW5mb3NbaV0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgYWRkUHJvcGVydHkoY2xhc3NOYW1lOiBzdHJpbmcsIHByb3BlcnR5SW5mbzogYW55KSB7XG4gICAgdGhpcy5hZGRDdXN0b21Qcm9wZXJ0eUNvcmUodGhpcy5maW5kQ2xhc3MoY2xhc3NOYW1lKSwgcHJvcGVydHlJbmZvKTtcbiAgfVxuICBwcml2YXRlIGFkZEN1c3RvbVByb3BlcnR5Q29yZShcbiAgICBtZXRhRGF0YUNsYXNzOiBKc29uTWV0YWRhdGFDbGFzcyxcbiAgICBwcm9wZXJ0eUluZm86IGFueVxuICApIHtcbiAgICBpZiAoIW1ldGFEYXRhQ2xhc3MpIHJldHVybjtcbiAgICB2YXIgcHJvcGVydHkgPSBtZXRhRGF0YUNsYXNzLmNyZWF0ZVByb3BlcnR5KHByb3BlcnR5SW5mbyk7XG4gICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICBwcm9wZXJ0eS5pc0N1c3RvbSA9IHRydWU7XG4gICAgICB0aGlzLmFkZFByb3BlcnR5VG9DbGFzcyhtZXRhRGF0YUNsYXNzLCBwcm9wZXJ0eSk7XG4gICAgICB0aGlzLmVtcHR5Q2xhc3NQcm9wZXJ0aWVzSGFzaChtZXRhRGF0YUNsYXNzKTtcbiAgICAgIEN1c3RvbVByb3BlcnRpZXNDb2xsZWN0aW9uLmFkZFByb3BlcnR5KG1ldGFEYXRhQ2xhc3MubmFtZSwgcHJvcGVydHkpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgcmVtb3ZlUHJvcGVydHkoY2xhc3NOYW1lOiBzdHJpbmcsIHByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgdmFyIG1ldGFEYXRhQ2xhc3MgPSB0aGlzLmZpbmRDbGFzcyhjbGFzc05hbWUpO1xuICAgIGlmICghbWV0YURhdGFDbGFzcykgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBwcm9wZXJ0eSA9IG1ldGFEYXRhQ2xhc3MuZmluZChwcm9wZXJ0eU5hbWUpO1xuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgdGhpcy5yZW1vdmVQcm9wZXJ0eUZyb21DbGFzcyhtZXRhRGF0YUNsYXNzLCBwcm9wZXJ0eSk7XG4gICAgICB0aGlzLmVtcHR5Q2xhc3NQcm9wZXJ0aWVzSGFzaChtZXRhRGF0YUNsYXNzKTtcbiAgICAgIEN1c3RvbVByb3BlcnRpZXNDb2xsZWN0aW9uLnJlbW92ZVByb3BlcnR5KFxuICAgICAgICBtZXRhRGF0YUNsYXNzLm5hbWUsXG4gICAgICAgIHByb3BlcnR5TmFtZVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBhZGRQcm9wZXJ0eVRvQ2xhc3MoXG4gICAgbWV0YURhdGFDbGFzczogSnNvbk1ldGFkYXRhQ2xhc3MsXG4gICAgcHJvcGVydHk6IEpzb25PYmplY3RQcm9wZXJ0eVxuICApIHtcbiAgICBpZiAobWV0YURhdGFDbGFzcy5maW5kKHByb3BlcnR5Lm5hbWUpICE9IG51bGwpIHJldHVybjtcbiAgICBtZXRhRGF0YUNsYXNzLnByb3BlcnRpZXMucHVzaChwcm9wZXJ0eSk7XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVQcm9wZXJ0eUZyb21DbGFzcyhcbiAgICBtZXRhRGF0YUNsYXNzOiBKc29uTWV0YWRhdGFDbGFzcyxcbiAgICBwcm9wZXJ0eTogSnNvbk9iamVjdFByb3BlcnR5XG4gICkge1xuICAgIHZhciBpbmRleCA9IG1ldGFEYXRhQ2xhc3MucHJvcGVydGllcy5pbmRleE9mKHByb3BlcnR5KTtcbiAgICBpZiAoaW5kZXggPCAwKSByZXR1cm47XG4gICAgbWV0YURhdGFDbGFzcy5wcm9wZXJ0aWVzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cbiAgcHJpdmF0ZSBlbXB0eUNsYXNzUHJvcGVydGllc0hhc2gobWV0YURhdGFDbGFzczogSnNvbk1ldGFkYXRhQ2xhc3MpIHtcbiAgICB0aGlzLmNsYXNzUHJvcGVydGllc1ttZXRhRGF0YUNsYXNzLm5hbWVdID0gbnVsbDtcbiAgICB0aGlzLmNsYXNzSGFzaFByb3BlcnRpZXNbbWV0YURhdGFDbGFzcy5uYW1lXSA9IG51bGw7XG4gICAgdmFyIGNoaWxkQ2xhc3NlcyA9IHRoaXMuZ2V0Q2hpbGRyZW5DbGFzc2VzKG1ldGFEYXRhQ2xhc3MubmFtZSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZENsYXNzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuY2xhc3NQcm9wZXJ0aWVzW2NoaWxkQ2xhc3Nlc1tpXS5uYW1lXSA9IG51bGw7XG4gICAgICB0aGlzLmNsYXNzSGFzaFByb3BlcnRpZXNbY2hpbGRDbGFzc2VzW2ldLm5hbWVdID0gbnVsbDtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBmaWxsQ2hpbGRyZW5DbGFzc2VzKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjYW5CZUNyZWF0ZWQ6IGJvb2xlYW4sXG4gICAgcmVzdWx0OiBBcnJheTxKc29uTWV0YWRhdGFDbGFzcz5cbiAgKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbkNsYXNzZXNbbmFtZV07XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghY2FuQmVDcmVhdGVkIHx8IGNoaWxkcmVuW2ldLmNyZWF0b3IpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goY2hpbGRyZW5baV0pO1xuICAgICAgfVxuICAgICAgdGhpcy5maWxsQ2hpbGRyZW5DbGFzc2VzKGNoaWxkcmVuW2ldLm5hbWUsIGNhbkJlQ3JlYXRlZCwgcmVzdWx0KTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGZpbmRDbGFzcyhuYW1lOiBzdHJpbmcpOiBKc29uTWV0YWRhdGFDbGFzcyB7XG4gICAgbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgcmVzID0gdGhpcy5jbGFzc2VzW25hbWVdO1xuICAgIGlmICghcmVzKSB7XG4gICAgICB2YXIgbmV3TmFtZSA9IHRoaXMuYWx0ZXJuYXRpdmVOYW1lc1tuYW1lXTtcbiAgICAgIGlmICghIW5ld05hbWUgJiYgbmV3TmFtZSAhPSBuYW1lKSByZXR1cm4gdGhpcy5maW5kQ2xhc3MobmV3TmFtZSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGlzRGVzY2VuZGFudE9mKGNsYXNzTmFtZTogc3RyaW5nLCBhbmNlc3RvckNsYXNzTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFjbGFzc05hbWUgfHwgIWFuY2VzdG9yQ2xhc3NOYW1lKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGFuY2VzdG9yQ2xhc3NOYW1lID0gYW5jZXN0b3JDbGFzc05hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgY2xhc3NfID0gdGhpcy5maW5kQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICBpZiAoIWNsYXNzXykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgcGFyZW50Q2xhc3MgPSBjbGFzc187XG4gICAgZG8ge1xuICAgICAgaWYgKHBhcmVudENsYXNzLm5hbWUgPT09IGFuY2VzdG9yQ2xhc3NOYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcGFyZW50Q2xhc3MgPSB0aGlzLmNsYXNzZXNbcGFyZW50Q2xhc3MucGFyZW50TmFtZV07XG4gICAgfSB3aGlsZSAoISFwYXJlbnRDbGFzcyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBhZGRBbHRlck5hdGl2ZUNsYXNzTmFtZShuYW1lOiBzdHJpbmcsIGFsdGVybmF0aXZlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5hbHRlcm5hdGl2ZU5hbWVzW2FsdGVybmF0aXZlTmFtZS50b0xvd2VyQ2FzZSgpXSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgfVxuICBwcml2YXRlIGZpbGxQcm9wZXJ0aWVzKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBsaXN0OiBBcnJheTxKc29uT2JqZWN0UHJvcGVydHk+LFxuICAgIGhhc2g6IEhhc2hUYWJsZTxKc29uT2JqZWN0UHJvcGVydHk+XG4gICkge1xuICAgIHZhciBtZXRhRGF0YUNsYXNzID0gdGhpcy5maW5kQ2xhc3MobmFtZSk7XG4gICAgaWYgKCFtZXRhRGF0YUNsYXNzKSByZXR1cm47XG4gICAgaWYgKG1ldGFEYXRhQ2xhc3MucGFyZW50TmFtZSkge1xuICAgICAgdGhpcy5maWxsUHJvcGVydGllcyhtZXRhRGF0YUNsYXNzLnBhcmVudE5hbWUsIGxpc3QsIGhhc2gpO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1ldGFEYXRhQ2xhc3MucHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHByb3AgPSBtZXRhRGF0YUNsYXNzLnByb3BlcnRpZXNbaV07XG4gICAgICB0aGlzLmFkZFByb3BlcnR5Q29yZShwcm9wLCBsaXN0LCBoYXNoKTtcbiAgICAgIGhhc2hbcHJvcC5uYW1lXSA9IHByb3A7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYWRkUHJvcGVydHlDb3JlKFxuICAgIHByb3BlcnR5OiBKc29uT2JqZWN0UHJvcGVydHksXG4gICAgbGlzdDogQXJyYXk8SnNvbk9iamVjdFByb3BlcnR5PixcbiAgICBoYXNoOiBIYXNoVGFibGU8SnNvbk9iamVjdFByb3BlcnR5PlxuICApIHtcbiAgICBpZiAoIWhhc2hbcHJvcGVydHkubmFtZV0pIHtcbiAgICAgIGxpc3QucHVzaChwcm9wZXJ0eSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBpbmRleCA9IC0xO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGxpc3RbaV0ubmFtZSA9PSBwcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHByb3BlcnR5Lm1lcmdlV2l0aChsaXN0W2luZGV4XSk7XG4gICAgbGlzdFtpbmRleF0gPSBwcm9wZXJ0eTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIEpzb25FcnJvciB7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIGF0OiBOdW1iZXIgPSAtMTtcbiAgY29uc3RydWN0b3IocHVibGljIHR5cGU6IHN0cmluZywgcHVibGljIG1lc3NhZ2U6IHN0cmluZykge31cbiAgcHVibGljIGdldEZ1bGxEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2UgKyAodGhpcy5kZXNjcmlwdGlvbiA/IFwiXFxuXCIgKyB0aGlzLmRlc2NyaXB0aW9uIDogXCJcIik7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBKc29uVW5rbm93blByb3BlcnR5RXJyb3IgZXh0ZW5kcyBKc29uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgXCJ1bmtub3ducHJvcGVydHlcIixcbiAgICAgIFwiVGhlIHByb3BlcnR5ICdcIiArXG4gICAgICAgIHByb3BlcnR5TmFtZSArXG4gICAgICAgIFwiJyBpbiBjbGFzcyAnXCIgK1xuICAgICAgICBjbGFzc05hbWUgK1xuICAgICAgICBcIicgaXMgdW5rbm93bi5cIlxuICAgICk7XG4gICAgdmFyIHByb3BlcnRpZXMgPSBKc29uT2JqZWN0Lm1ldGFEYXRhLmdldFByb3BlcnRpZXMoY2xhc3NOYW1lKTtcbiAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IFwiVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHByb3BlcnRpZXMgYXJlOiBcIjtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaSA+IDApIHRoaXMuZGVzY3JpcHRpb24gKz0gXCIsIFwiO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uICs9IHByb3BlcnRpZXNbaV0ubmFtZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGVzY3JpcHRpb24gKz0gXCIuXCI7XG4gICAgfVxuICB9XG59XG5leHBvcnQgY2xhc3MgSnNvbk1pc3NpbmdUeXBlRXJyb3JCYXNlIGV4dGVuZHMgSnNvbkVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGJhc2VDbGFzc05hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIodHlwZSwgbWVzc2FnZSk7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IFwiVGhlIGZvbGxvd2luZyB0eXBlcyBhcmUgYXZhaWxhYmxlOiBcIjtcbiAgICB2YXIgdHlwZXMgPSBKc29uT2JqZWN0Lm1ldGFEYXRhLmdldENoaWxkcmVuQ2xhc3NlcyhiYXNlQ2xhc3NOYW1lLCB0cnVlKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoaSA+IDApIHRoaXMuZGVzY3JpcHRpb24gKz0gXCIsIFwiO1xuICAgICAgdGhpcy5kZXNjcmlwdGlvbiArPSBcIidcIiArIHR5cGVzW2ldLm5hbWUgKyBcIidcIjtcbiAgICB9XG4gICAgdGhpcy5kZXNjcmlwdGlvbiArPSBcIi5cIjtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIEpzb25NaXNzaW5nVHlwZUVycm9yIGV4dGVuZHMgSnNvbk1pc3NpbmdUeXBlRXJyb3JCYXNlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHByb3BlcnR5TmFtZTogc3RyaW5nLCBwdWJsaWMgYmFzZUNsYXNzTmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxuICAgICAgXCJtaXNzaW5ndHlwZXByb3BlcnR5XCIsXG4gICAgICBcIlRoZSBwcm9wZXJ0eSB0eXBlIGlzIG1pc3NpbmcgaW4gdGhlIG9iamVjdC4gUGxlYXNlIHRha2UgYSBsb29rIGF0IHByb3BlcnR5OiAnXCIgK1xuICAgICAgICBwcm9wZXJ0eU5hbWUgK1xuICAgICAgICBcIicuXCJcbiAgICApO1xuICB9XG59XG5leHBvcnQgY2xhc3MgSnNvbkluY29ycmVjdFR5cGVFcnJvciBleHRlbmRzIEpzb25NaXNzaW5nVHlwZUVycm9yQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9wZXJ0eU5hbWU6IHN0cmluZywgcHVibGljIGJhc2VDbGFzc05hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgYmFzZUNsYXNzTmFtZSxcbiAgICAgIFwiaW5jb3JyZWN0dHlwZXByb3BlcnR5XCIsXG4gICAgICBcIlRoZSBwcm9wZXJ0eSB0eXBlIGlzIGluY29ycmVjdCBpbiB0aGUgb2JqZWN0LiBQbGVhc2UgdGFrZSBhIGxvb2sgYXQgcHJvcGVydHk6ICdcIiArXG4gICAgICAgIHByb3BlcnR5TmFtZSArXG4gICAgICAgIFwiJy5cIlxuICAgICk7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBKc29uUmVxdWlyZWRQcm9wZXJ0eUVycm9yIGV4dGVuZHMgSnNvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIHByb3BlcnR5TmFtZTogc3RyaW5nLCBwdWJsaWMgY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihcbiAgICAgIFwicmVxdWlyZWRwcm9wZXJ0eVwiLFxuICAgICAgXCJUaGUgcHJvcGVydHkgJ1wiICtcbiAgICAgICAgcHJvcGVydHlOYW1lICtcbiAgICAgICAgXCInIGlzIHJlcXVpcmVkIGluIGNsYXNzICdcIiArXG4gICAgICAgIGNsYXNzTmFtZSArXG4gICAgICAgIFwiJy5cIlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpzb25PYmplY3Qge1xuICBwcml2YXRlIHN0YXRpYyB0eXBlUHJvcGVydHlOYW1lID0gXCJ0eXBlXCI7XG4gIHByaXZhdGUgc3RhdGljIHBvc2l0aW9uUHJvcGVydHlOYW1lID0gXCJwb3NcIjtcbiAgcHJpdmF0ZSBzdGF0aWMgbWV0YURhdGFWYWx1ZSA9IG5ldyBKc29uTWV0YWRhdGEoKTtcbiAgcHVibGljIHN0YXRpYyBnZXQgbWV0YURhdGEoKSB7XG4gICAgcmV0dXJuIEpzb25PYmplY3QubWV0YURhdGFWYWx1ZTtcbiAgfVxuICBwdWJsaWMgZXJyb3JzID0gbmV3IEFycmF5PEpzb25FcnJvcj4oKTtcbiAgcHVibGljIGxpZ2h0U2VyaWFsaXppbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHRvSnNvbk9iamVjdChvYmo6IGFueSwgc3RvcmVEZWZhdWx0cyA9IGZhbHNlKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy50b0pzb25PYmplY3RDb3JlKG9iaiwgbnVsbCwgc3RvcmVEZWZhdWx0cyk7XG4gIH1cbiAgcHVibGljIHRvT2JqZWN0KGpzb25PYmo6IGFueSwgb2JqOiBhbnkpIHtcbiAgICB0aGlzLnRvT2JqZWN0Q29yZShqc29uT2JqLCBvYmopO1xuICAgIGlmICghIW9iai5nZXRUeXBlKSB7XG4gICAgICB2YXIgZXJyb3IgPSB0aGlzLmdldFJlcXVpcmVkRXJyb3IoanNvbk9iaiwgb2JqLmdldFR5cGUoKSk7XG4gICAgICBpZiAoISFlcnJvcikge1xuICAgICAgICB0aGlzLmFkZE5ld0Vycm9yKGVycm9yLCBqc29uT2JqKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIHRvT2JqZWN0Q29yZShqc29uT2JqOiBhbnksIG9iajogYW55KSB7XG4gICAgaWYgKCFqc29uT2JqKSByZXR1cm47XG4gICAgdmFyIHByb3BlcnRpZXMgPSBudWxsO1xuICAgIHZhciBvYmpUeXBlID0gdW5kZWZpbmVkO1xuICAgIHZhciBuZWVkQWRkRXJyb3JzID0gdHJ1ZTtcbiAgICBpZiAob2JqLmdldFR5cGUpIHtcbiAgICAgIG9ialR5cGUgPSBvYmouZ2V0VHlwZSgpO1xuICAgICAgcHJvcGVydGllcyA9IEpzb25PYmplY3QubWV0YURhdGEuZ2V0UHJvcGVydGllcyhvYmpUeXBlKTtcbiAgICAgIG5lZWRBZGRFcnJvcnMgPVxuICAgICAgICAhIW9ialR5cGUgJiYgIUpzb25PYmplY3QubWV0YURhdGEuaXNEZXNjZW5kYW50T2Yob2JqVHlwZSwgXCJpdGVtdmFsdWVcIik7XG4gICAgfVxuICAgIGlmICghcHJvcGVydGllcykgcmV0dXJuO1xuICAgIGlmIChvYmouc3RhcnRMb2FkaW5nRnJvbUpzb24pIHtcbiAgICAgIG9iai5zdGFydExvYWRpbmdGcm9tSnNvbigpO1xuICAgIH1cbiAgICBwcm9wZXJ0aWVzID0gdGhpcy5hZGREeW5hbWljUHJvcGVydGllcyhvYmosIGpzb25PYmosIHByb3BlcnRpZXMpO1xuICAgIGZvciAodmFyIGtleSBpbiBqc29uT2JqKSB7XG4gICAgICBpZiAoa2V5ID09PSBKc29uT2JqZWN0LnR5cGVQcm9wZXJ0eU5hbWUpIGNvbnRpbnVlO1xuICAgICAgaWYgKGtleSA9PT0gSnNvbk9iamVjdC5wb3NpdGlvblByb3BlcnR5TmFtZSkge1xuICAgICAgICBvYmpba2V5XSA9IGpzb25PYmpba2V5XTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcGVydHkgPSB0aGlzLmZpbmRQcm9wZXJ0eShwcm9wZXJ0aWVzLCBrZXkpO1xuICAgICAgaWYgKCFwcm9wZXJ0eSkge1xuICAgICAgICBpZiAobmVlZEFkZEVycm9ycykge1xuICAgICAgICAgIHRoaXMuYWRkTmV3RXJyb3IoXG4gICAgICAgICAgICBuZXcgSnNvblVua25vd25Qcm9wZXJ0eUVycm9yKGtleS50b1N0cmluZygpLCBvYmpUeXBlKSxcbiAgICAgICAgICAgIGpzb25PYmpcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdGhpcy52YWx1ZVRvT2JqKGpzb25PYmpba2V5XSwgb2JqLCBwcm9wZXJ0eSk7XG4gICAgfVxuICAgIGlmIChvYmouZW5kTG9hZGluZ0Zyb21Kc29uKSB7XG4gICAgICBvYmouZW5kTG9hZGluZ0Zyb21Kc29uKCk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCB0b0pzb25PYmplY3RDb3JlKFxuICAgIG9iajogYW55LFxuICAgIHByb3BlcnR5OiBKc29uT2JqZWN0UHJvcGVydHksXG4gICAgc3RvcmVEZWZhdWx0cyA9IGZhbHNlXG4gICk6IGFueSB7XG4gICAgaWYgKCFvYmogfHwgIW9iai5nZXRUeXBlKSByZXR1cm4gb2JqO1xuICAgIGlmICh0eXBlb2Ygb2JqLmdldERhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG9iai5nZXREYXRhKCk7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChwcm9wZXJ0eSAhPSBudWxsICYmICFwcm9wZXJ0eS5jbGFzc05hbWUpIHtcbiAgICAgICg8YW55PnJlc3VsdClbSnNvbk9iamVjdC50eXBlUHJvcGVydHlOYW1lXSA9IHByb3BlcnR5LmdldE9ialR5cGUoXG4gICAgICAgIG9iai5nZXRUeXBlKClcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucHJvcGVydGllc1RvSnNvbihcbiAgICAgIG9iaixcbiAgICAgIEpzb25PYmplY3QubWV0YURhdGEuZ2V0UHJvcGVydGllcyhvYmouZ2V0VHlwZSgpKSxcbiAgICAgIHJlc3VsdCxcbiAgICAgIHN0b3JlRGVmYXVsdHNcbiAgICApO1xuICAgIHRoaXMucHJvcGVydGllc1RvSnNvbihcbiAgICAgIG9iaixcbiAgICAgIHRoaXMuZ2V0RHluYW1pY1Byb3BlcnRpZXMob2JqKSxcbiAgICAgIHJlc3VsdCxcbiAgICAgIHN0b3JlRGVmYXVsdHNcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHJpdmF0ZSBnZXREeW5hbWljUHJvcGVydGllcyhvYmo6IGFueSk6IEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIGlmIChvYmouZ2V0RHluYW1pY1Byb3BlcnRpZXMgJiYgb2JqLmdldER5bmFtaWNUeXBlKSB7XG4gICAgICB2YXIgbmFtZXMgPSBvYmouZ2V0RHluYW1pY1Byb3BlcnRpZXMoKTtcbiAgICAgIHJldHVybiBKc29uT2JqZWN0Lm1ldGFEYXRhLmZpbmRQcm9wZXJ0aWVzKG9iai5nZXREeW5hbWljVHlwZSgpLCBuYW1lcyk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuICBwcml2YXRlIGFkZER5bmFtaWNQcm9wZXJ0aWVzKFxuICAgIG9iajogYW55LFxuICAgIGpzb25PYmo6IGFueSxcbiAgICBwcm9wZXJ0aWVzOiBBcnJheTxKc29uT2JqZWN0UHJvcGVydHk+XG4gICk6IEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIGlmICghb2JqLmdldER5bmFtaWNQcm9wZXJ0eU5hbWUpIHJldHVybiBwcm9wZXJ0aWVzO1xuICAgIHZhciBkeW5hbWljUHJvcE5hbWUgPSBvYmouZ2V0RHluYW1pY1Byb3BlcnR5TmFtZSgpO1xuICAgIGlmICghZHluYW1pY1Byb3BOYW1lKSByZXR1cm4gcHJvcGVydGllcztcbiAgICBpZiAoanNvbk9ialtkeW5hbWljUHJvcE5hbWVdKSB7XG4gICAgICBvYmpbZHluYW1pY1Byb3BOYW1lXSA9IGpzb25PYmpbZHluYW1pY1Byb3BOYW1lXTtcbiAgICB9XG4gICAgdmFyIGR5bmFtaWNQcm9wZXJ0aWVzID0gdGhpcy5nZXREeW5hbWljUHJvcGVydGllcyhvYmopO1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcy5wdXNoKHByb3BlcnRpZXNbaV0pO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMucHVzaChkeW5hbWljUHJvcGVydGllc1tpXSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBwcm9wZXJ0aWVzVG9Kc29uKFxuICAgIG9iajogYW55LFxuICAgIHByb3BlcnRpZXM6IEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4sXG4gICAganNvbjogYW55LFxuICAgIHN0b3JlRGVmYXVsdHMgPSBmYWxzZVxuICApIHtcbiAgICBmb3IgKHZhciBpOiBudW1iZXIgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy52YWx1ZVRvSnNvbihvYmosIGpzb24sIHByb3BlcnRpZXNbaV0sIHN0b3JlRGVmYXVsdHMpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgdmFsdWVUb0pzb24oXG4gICAgb2JqOiBhbnksXG4gICAgcmVzdWx0OiBhbnksXG4gICAgcHJvcGVydHk6IEpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBzdG9yZURlZmF1bHRzID0gZmFsc2VcbiAgKSB7XG4gICAgaWYgKFxuICAgICAgcHJvcGVydHkuaXNTZXJpYWxpemFibGUgPT09IGZhbHNlIHx8XG4gICAgICAocHJvcGVydHkuaXNMaWdodFNlcmlhbGl6YWJsZSA9PT0gZmFsc2UgJiYgdGhpcy5saWdodFNlcmlhbGl6aW5nKVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICB2YXIgdmFsdWUgPSBwcm9wZXJ0eS5nZXRWYWx1ZShvYmopO1xuICAgIGlmICghc3RvcmVEZWZhdWx0cyAmJiBwcm9wZXJ0eS5pc0RlZmF1bHRWYWx1ZSh2YWx1ZSkpIHJldHVybjtcbiAgICBpZiAodGhpcy5pc1ZhbHVlQXJyYXkodmFsdWUpKSB7XG4gICAgICB2YXIgYXJyVmFsdWUgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYXJyVmFsdWUucHVzaCh0aGlzLnRvSnNvbk9iamVjdENvcmUodmFsdWVbaV0sIHByb3BlcnR5LCBzdG9yZURlZmF1bHRzKSk7XG4gICAgICB9XG4gICAgICB2YWx1ZSA9IGFyclZhbHVlLmxlbmd0aCA+IDAgPyBhcnJWYWx1ZSA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdGhpcy50b0pzb25PYmplY3RDb3JlKHZhbHVlLCBwcm9wZXJ0eSwgc3RvcmVEZWZhdWx0cyk7XG4gICAgfVxuICAgIHZhciBoYXNWYWx1ZSA9XG4gICAgICB0eXBlb2Ygb2JqW1wiZ2V0UHJvcGVydHlWYWx1ZVwiXSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICBvYmpbXCJnZXRQcm9wZXJ0eVZhbHVlXCJdKHByb3BlcnR5Lm5hbWUsIG51bGwpICE9PSBudWxsO1xuICAgIGlmICgoc3RvcmVEZWZhdWx0cyAmJiBoYXNWYWx1ZSkgfHwgIXByb3BlcnR5LmlzRGVmYXVsdFZhbHVlKHZhbHVlKSkge1xuICAgICAgcmVzdWx0W3Byb3BlcnR5Lm5hbWVdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCB2YWx1ZVRvT2JqKHZhbHVlOiBhbnksIG9iajogYW55LCBwcm9wZXJ0eTogSnNvbk9iamVjdFByb3BlcnR5KSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybjtcbiAgICB0aGlzLnJlbW92ZVBvcyhwcm9wZXJ0eSwgdmFsdWUpO1xuICAgIGlmIChwcm9wZXJ0eSAhPSBudWxsICYmIHByb3BlcnR5Lmhhc1RvVXNlU2V0VmFsdWUpIHtcbiAgICAgIHByb3BlcnR5LnNldFZhbHVlKG9iaiwgdmFsdWUsIHRoaXMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1ZhbHVlQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbHVlVG9BcnJheSh2YWx1ZSwgb2JqLCBwcm9wZXJ0eS5uYW1lLCBwcm9wZXJ0eSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB0aGlzLmNyZWF0ZU5ld09iaih2YWx1ZSwgcHJvcGVydHkpO1xuICAgIGlmIChuZXdPYmoubmV3T2JqKSB7XG4gICAgICB0aGlzLnRvT2JqZWN0Q29yZSh2YWx1ZSwgbmV3T2JqLm5ld09iaik7XG4gICAgICB2YWx1ZSA9IG5ld09iai5uZXdPYmo7XG4gICAgfVxuICAgIGlmICghbmV3T2JqLmVycm9yKSB7XG4gICAgICBpZiAocHJvcGVydHkgIT0gbnVsbCkge1xuICAgICAgICBwcm9wZXJ0eS5zZXRWYWx1ZShvYmosIHZhbHVlLCB0aGlzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialtwcm9wZXJ0eS5uYW1lXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIHJlbW92ZVBvcyhwcm9wZXJ0eTogSnNvbk9iamVjdFByb3BlcnR5LCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKCFwcm9wZXJ0eSB8fCAhcHJvcGVydHkudHlwZSB8fCBwcm9wZXJ0eS50eXBlLmluZGV4T2YoXCJ2YWx1ZVwiKSA8IDApXG4gICAgICByZXR1cm47XG4gICAgdGhpcy5yZW1vdmVQb3NGcm9tT2JqKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIHJlbW92ZVBvc0Zyb21PYmoob2JqOiBhbnkpIHtcbiAgICBpZiAoIW9iaikgcmV0dXJuO1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlUG9zRnJvbU9iaihvYmpbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoISFvYmpbSnNvbk9iamVjdC5wb3NpdGlvblByb3BlcnR5TmFtZV0pIHtcbiAgICAgIGRlbGV0ZSBvYmpbSnNvbk9iamVjdC5wb3NpdGlvblByb3BlcnR5TmFtZV07XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNWYWx1ZUFycmF5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXdPYmoodmFsdWU6IGFueSwgcHJvcGVydHk6IEpzb25PYmplY3RQcm9wZXJ0eSk6IGFueSB7XG4gICAgdmFyIHJlc3VsdDogYW55ID0geyBuZXdPYmo6IG51bGwsIGVycm9yOiBudWxsIH07XG4gICAgdmFyIGNsYXNzTmFtZSA9IHZhbHVlW0pzb25PYmplY3QudHlwZVByb3BlcnR5TmFtZV07XG4gICAgaWYgKCFjbGFzc05hbWUgJiYgcHJvcGVydHkgIT0gbnVsbCAmJiBwcm9wZXJ0eS5jbGFzc05hbWUpIHtcbiAgICAgIGNsYXNzTmFtZSA9IHByb3BlcnR5LmNsYXNzTmFtZTtcbiAgICB9XG4gICAgY2xhc3NOYW1lID0gcHJvcGVydHkuZ2V0Q2xhc3NOYW1lKGNsYXNzTmFtZSk7XG4gICAgcmVzdWx0Lm5ld09iaiA9IGNsYXNzTmFtZVxuICAgICAgPyBKc29uT2JqZWN0Lm1ldGFEYXRhLmNyZWF0ZUNsYXNzKGNsYXNzTmFtZSwgdmFsdWUpXG4gICAgICA6IG51bGw7XG4gICAgcmVzdWx0LmVycm9yID0gdGhpcy5jaGVja05ld09iamVjdE9uRXJyb3JzKFxuICAgICAgcmVzdWx0Lm5ld09iaixcbiAgICAgIHZhbHVlLFxuICAgICAgcHJvcGVydHksXG4gICAgICBjbGFzc05hbWVcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHJpdmF0ZSBjaGVja05ld09iamVjdE9uRXJyb3JzKFxuICAgIG5ld09iajogYW55LFxuICAgIHZhbHVlOiBhbnksXG4gICAgcHJvcGVydHk6IEpzb25PYmplY3RQcm9wZXJ0eSxcbiAgICBjbGFzc05hbWU6IHN0cmluZ1xuICApOiBKc29uRXJyb3Ige1xuICAgIHZhciBlcnJvciA9IG51bGw7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgZXJyb3IgPSB0aGlzLmdldFJlcXVpcmVkRXJyb3IodmFsdWUsIGNsYXNzTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9wZXJ0eS5iYXNlQ2xhc3NOYW1lKSB7XG4gICAgICAgIGlmICghY2xhc3NOYW1lKSB7XG4gICAgICAgICAgZXJyb3IgPSBuZXcgSnNvbk1pc3NpbmdUeXBlRXJyb3IoXG4gICAgICAgICAgICBwcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgICAgcHJvcGVydHkuYmFzZUNsYXNzTmFtZVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IgPSBuZXcgSnNvbkluY29ycmVjdFR5cGVFcnJvcihcbiAgICAgICAgICAgIHByb3BlcnR5Lm5hbWUsXG4gICAgICAgICAgICBwcm9wZXJ0eS5iYXNlQ2xhc3NOYW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWRkTmV3RXJyb3IoZXJyb3IsIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG4gIHByaXZhdGUgZ2V0UmVxdWlyZWRFcnJvcih2YWx1ZTogYW55LCBjbGFzc05hbWU6IHN0cmluZyk6IEpzb25FcnJvciB7XG4gICAgdmFyIHJlcXVpcmVkUHJvcGVydGllcyA9IEpzb25PYmplY3QubWV0YURhdGEuZ2V0UmVxdWlyZWRQcm9wZXJ0aWVzKFxuICAgICAgY2xhc3NOYW1lXG4gICAgKTtcbiAgICBpZiAoIXJlcXVpcmVkUHJvcGVydGllcykgcmV0dXJuIG51bGw7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXF1aXJlZFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghdmFsdWVbcmVxdWlyZWRQcm9wZXJ0aWVzW2ldXSkge1xuICAgICAgICByZXR1cm4gbmV3IEpzb25SZXF1aXJlZFByb3BlcnR5RXJyb3IocmVxdWlyZWRQcm9wZXJ0aWVzW2ldLCBjbGFzc05hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwcml2YXRlIGFkZE5ld0Vycm9yKGVycm9yOiBKc29uRXJyb3IsIGpzb25PYmo6IGFueSkge1xuICAgIGlmIChqc29uT2JqICYmIGpzb25PYmpbSnNvbk9iamVjdC5wb3NpdGlvblByb3BlcnR5TmFtZV0pIHtcbiAgICAgIGVycm9yLmF0ID0ganNvbk9ialtKc29uT2JqZWN0LnBvc2l0aW9uUHJvcGVydHlOYW1lXS5zdGFydDtcbiAgICB9XG4gICAgdGhpcy5lcnJvcnMucHVzaChlcnJvcik7XG4gIH1cbiAgcHJpdmF0ZSB2YWx1ZVRvQXJyYXkoXG4gICAgdmFsdWU6IEFycmF5PGFueT4sXG4gICAgb2JqOiBhbnksXG4gICAga2V5OiBhbnksXG4gICAgcHJvcGVydHk6IEpzb25PYmplY3RQcm9wZXJ0eVxuICApIHtcbiAgICBpZiAob2JqW2tleV0gJiYgdmFsdWUubGVuZ3RoID4gMCkgb2JqW2tleV0uc3BsaWNlKDAsIG9ialtrZXldLmxlbmd0aCk7XG4gICAgaWYgKCFvYmpba2V5XSkgb2JqW2tleV0gPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbmV3VmFsdWUgPSB0aGlzLmNyZWF0ZU5ld09iaih2YWx1ZVtpXSwgcHJvcGVydHkpO1xuICAgICAgaWYgKG5ld1ZhbHVlLm5ld09iaikge1xuICAgICAgICBpZiAoISF2YWx1ZVtpXS5uYW1lKSB7XG4gICAgICAgICAgbmV3VmFsdWUubmV3T2JqLm5hbWUgPSB2YWx1ZVtpXS5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIG9ialtrZXldLnB1c2gobmV3VmFsdWUubmV3T2JqKTtcbiAgICAgICAgdGhpcy50b09iamVjdENvcmUodmFsdWVbaV0sIG5ld1ZhbHVlLm5ld09iaik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIW5ld1ZhbHVlLmVycm9yKSB7XG4gICAgICAgICAgb2JqW2tleV0ucHVzaCh2YWx1ZVtpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBmaW5kUHJvcGVydHkoXG4gICAgcHJvcGVydGllczogQXJyYXk8SnNvbk9iamVjdFByb3BlcnR5PixcbiAgICBrZXk6IGFueVxuICApOiBKc29uT2JqZWN0UHJvcGVydHkge1xuICAgIGlmICghcHJvcGVydGllcykgcmV0dXJuIG51bGw7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcCA9IHByb3BlcnRpZXNbaV07XG4gICAgICBpZiAocHJvcC5uYW1lID09IGtleSB8fCBwcm9wLmFsdGVybmF0aXZlTmFtZSA9PSBrZXkpIHJldHVybiBwcm9wO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgdmFyIFNlcmlhbGl6ZXIgPSBKc29uT2JqZWN0Lm1ldGFEYXRhO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2pzb25vYmplY3QudHMiLCJleHBvcnQgaW50ZXJmYWNlIEhhc2hUYWJsZTxUPiB7XG4gIFtrZXk6IHN0cmluZ106IFQ7XG59XG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzIHtcbiAgLyoqXG4gICAqIEEgc3RhdGljIG1ldGhvZHMgdGhhdCByZXR1cm5zIHRydWUgaWYgYSB2YWx1ZSB1bmRlcmZpbmVkLCBudWxsLCBlbXB0eSBzdHJpbmcgb3IgZW1wdHkgYXJyYXkuXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc1ZhbHVlRW1wdHkodmFsdWU6IGFueSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuICAgIGlmICghIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgaWYgKCFIZWxwZXJzLmlzVmFsdWVFbXB0eSh2YWx1ZVtrZXldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICghIXZhbHVlICYmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcbiAgICB9XG4gICAgcmV0dXJuICF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCAmJiB2YWx1ZSAhPT0gZmFsc2U7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBpc0FycmF5Q29udGFpbnNFcXVhbCh4OiBhbnksIHk6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh4KSB8fCAhQXJyYXkuaXNBcnJheSh5KSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh4Lmxlbmd0aCAhPT0geS5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBqID0gMDtcbiAgICAgIGZvciAoOyBqIDwgeS5sZW5ndGg7IGorKykge1xuICAgICAgICBpZiAoSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKHhbaV0sIHlbal0pKSBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChqID09PSB5Lmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGlzQXJyYXlzRXF1YWwoXG4gICAgeDogYW55LFxuICAgIHk6IGFueSxcbiAgICBpZ25vcmVPcmRlcjogYm9vbGVhbiA9IGZhbHNlXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh4KSB8fCAhQXJyYXkuaXNBcnJheSh5KSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh4Lmxlbmd0aCAhPT0geS5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoaWdub3JlT3JkZXIpIHtcbiAgICAgIHZhciB4U29ydGVkID0gW107XG4gICAgICB2YXIgeVNvcnRlZCA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHhTb3J0ZWQucHVzaCh4W2ldKTtcbiAgICAgICAgeVNvcnRlZC5wdXNoKHlbaV0pO1xuICAgICAgfVxuICAgICAgeFNvcnRlZC5zb3J0KCk7XG4gICAgICB5U29ydGVkLnNvcnQoKTtcbiAgICAgIHggPSB4U29ydGVkO1xuICAgICAgeSA9IHlTb3J0ZWQ7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFIZWxwZXJzLmlzVHdvVmFsdWVFcXVhbHMoeFtpXSwgeVtpXSkpIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBpc1R3b1ZhbHVlRXF1YWxzKFxuICAgIHg6IGFueSxcbiAgICB5OiBhbnksXG4gICAgaWdub3JlT3JkZXI6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBib29sZWFuIHtcbiAgICBpZiAoeCA9PT0geSkgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh4KSAmJiB4Lmxlbmd0aCA9PT0gMCAmJiB0eXBlb2YgeSA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHkpICYmIHkubGVuZ3RoID09PSAwICYmIHR5cGVvZiB4ID09PSBcInVuZGVmaW5lZFwiKVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKCh4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbCkgJiYgeSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKCh5ID09PSB1bmRlZmluZWQgfHwgeSA9PT0gbnVsbCkgJiYgeCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAoSGVscGVycy5pc0NvbnZlcnRpYmxlVG9OdW1iZXIoeCkgJiYgSGVscGVycy5pc0NvbnZlcnRpYmxlVG9OdW1iZXIoeSkpIHtcbiAgICAgIGlmIChwYXJzZUludCh4KSA9PT0gcGFyc2VJbnQoeSkgJiYgcGFyc2VGbG9hdCh4KSA9PT0gcGFyc2VGbG9hdCh5KSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAoIUhlbHBlcnMuaXNWYWx1ZUVtcHR5KHgpICYmIEhlbHBlcnMuaXNWYWx1ZUVtcHR5KHkpKSB8fFxuICAgICAgKEhlbHBlcnMuaXNWYWx1ZUVtcHR5KHgpICYmICFIZWxwZXJzLmlzVmFsdWVFbXB0eSh5KSlcbiAgICApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCh4ID09PSB0cnVlIHx8IHggPT09IGZhbHNlKSAmJiB0eXBlb2YgeSA9PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4geC50b1N0cmluZygpID09PSB5LnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIGlmICgoeSA9PT0gdHJ1ZSB8fCB5ID09PSBmYWxzZSkgJiYgdHlwZW9mIHggPT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIHkudG9TdHJpbmcoKSA9PT0geC50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICBpZiAoISh4IGluc3RhbmNlb2YgT2JqZWN0KSAmJiAhKHkgaW5zdGFuY2VvZiBPYmplY3QpKSByZXR1cm4geCA9PSB5O1xuICAgIGlmICghKHggaW5zdGFuY2VvZiBPYmplY3QpIHx8ICEoeSBpbnN0YW5jZW9mIE9iamVjdCkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoeFtcImVxdWFsc1wiXSkgcmV0dXJuIHguZXF1YWxzKHkpO1xuICAgIGlmICghIXgudG9KU09OICYmICEheS50b0pTT04pIHtcbiAgICAgIHJldHVybiB0aGlzLmlzVHdvVmFsdWVFcXVhbHMoeC50b0pTT04oKSwgeS50b0pTT04oKSk7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHgpICYmIEFycmF5LmlzQXJyYXkoeSkpXG4gICAgICByZXR1cm4gSGVscGVycy5pc0FycmF5c0VxdWFsKHgsIHksIGlnbm9yZU9yZGVyKTtcblxuICAgIGZvciAodmFyIHAgaW4geCkge1xuICAgICAgaWYgKCF4Lmhhc093blByb3BlcnR5KHApKSBjb250aW51ZTtcbiAgICAgIGlmICgheS5oYXNPd25Qcm9wZXJ0eShwKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKHhbcF0gPT09IHlbcF0pIGNvbnRpbnVlO1xuICAgICAgaWYgKHR5cGVvZiB4W3BdICE9PSBcIm9iamVjdFwiKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoIXRoaXMuaXNUd29WYWx1ZUVxdWFscyh4W3BdLCB5W3BdKSkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKHAgaW4geSkge1xuICAgICAgaWYgKHkuaGFzT3duUHJvcGVydHkocCkgJiYgIXguaGFzT3duUHJvcGVydHkocCkpIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJhbmRvbWl6ZUFycmF5PFQ+KGFycmF5OiBBcnJheTxUPik6IEFycmF5PFQ+IHtcbiAgICBmb3IgKHZhciBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xuICAgICAgdmFyIGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoaSArIDEpKTtcbiAgICAgIHZhciB0ZW1wID0gYXJyYXlbaV07XG4gICAgICBhcnJheVtpXSA9IGFycmF5W2pdO1xuICAgICAgYXJyYXlbal0gPSB0ZW1wO1xuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBnZXRVbmJpbmRWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICBpZiAoISF2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgLy9kbyBub3QgcmV0dXJuIHRoZSBzYW1lIG9iamVjdCBpbnN0YW5jZSEhIVxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ29weShvYmo6IGFueSkge1xuICAgIHZhciByZXM6IGFueSA9IHt9O1xuICAgIGlmICghb2JqKSByZXR1cm4gcmVzO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIHJlc1trZXldID0gb2JqW2tleV07XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBpc0NvbnZlcnRpYmxlVG9OdW1iZXIodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgICAhaXNOYU4odmFsdWUpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdmFsdWUgPT0gXCJzdHJpbmdcIiAmJlxuICAgICAgISF2YWx1ZSAmJlxuICAgICAgdmFsdWUuaW5kZXhPZihcIjB4XCIpID09IDAgJiZcbiAgICAgIHZhbHVlLmxlbmd0aCA+IDMyXG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpICYmIGlzRmluaXRlKHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGdldE1heExlbmd0aChtYXhMZW5ndGg6IG51bWJlciwgc3VydmV5TGVuZ3RoOiBudW1iZXIpOiBhbnkge1xuICAgIGlmIChtYXhMZW5ndGggPCAwKSB7XG4gICAgICBtYXhMZW5ndGggPSBzdXJ2ZXlMZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiBtYXhMZW5ndGggPiAwID8gbWF4TGVuZ3RoIDogbnVsbDtcbiAgfVxufVxuaWYgKCEoPGFueT5TdHJpbmcucHJvdG90eXBlKVtcImZvcm1hdFwiXSkge1xuICAoPGFueT5TdHJpbmcucHJvdG90eXBlKVtcImZvcm1hdFwiXSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiB0aGlzLnJlcGxhY2UoL3soXFxkKyl9L2csIGZ1bmN0aW9uKG1hdGNoOiBhbnksIG51bWJlcjogYW55KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGFyZ3NbbnVtYmVyXSAhPSBcInVuZGVmaW5lZFwiID8gYXJnc1tudW1iZXJdIDogbWF0Y2g7XG4gICAgfSk7XG4gIH07XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvaGVscGVycy50cyIsImltcG9ydCB7IEhhc2hUYWJsZSB9IGZyb20gXCIuL2hlbHBlcnNcIjtcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IElFbGVtZW50IH0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vc3VydmV5U3RyaW5nc1wiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcblxuLy9UT0RPIHJlcGxhY2UgY29tcGxldGVseSB3aXRoIEVsZW1lbnRGYWN0b3J5XG5leHBvcnQgY2xhc3MgUXVlc3Rpb25GYWN0b3J5IHtcbiAgcHVibGljIHN0YXRpYyBJbnN0YW5jZTogUXVlc3Rpb25GYWN0b3J5ID0gbmV3IFF1ZXN0aW9uRmFjdG9yeSgpO1xuICBwdWJsaWMgc3RhdGljIGdldCBEZWZhdWx0Q2hvaWNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJjaG9pY2VzX0l0ZW1cIikgKyBcIjFcIixcbiAgICAgIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJjaG9pY2VzX0l0ZW1cIikgKyBcIjJcIixcbiAgICAgIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJjaG9pY2VzX0l0ZW1cIikgKyBcIjNcIlxuICAgIF07XG4gIH1cbiAgcHVibGljIHN0YXRpYyBnZXQgRGVmYXVsdENvbHVtcygpOiBzdHJpbmdbXSB7XG4gICAgdmFyIGNvbE5hbWUgPSBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwibWF0cml4X2NvbHVtblwiKSArIFwiIFwiO1xuICAgIHJldHVybiBbY29sTmFtZSArIFwiMVwiLCBjb2xOYW1lICsgXCIyXCIsIGNvbE5hbWUgKyBcIjNcIl07XG4gIH1cbiAgcHVibGljIHN0YXRpYyBnZXQgRGVmYXVsdFJvd3MoKTogc3RyaW5nW10ge1xuICAgIHZhciByb3dOYW1lID0gc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm1hdHJpeF9yb3dcIikgKyBcIiBcIjtcbiAgICByZXR1cm4gW3Jvd05hbWUgKyBcIjFcIiwgcm93TmFtZSArIFwiMlwiXTtcbiAgfVxuICBwcml2YXRlIGNyZWF0b3JIYXNoOiBIYXNoVGFibGU8KG5hbWU6IHN0cmluZykgPT4gUXVlc3Rpb24+ID0ge307XG5cbiAgcHVibGljIHJlZ2lzdGVyUXVlc3Rpb24oXG4gICAgcXVlc3Rpb25UeXBlOiBzdHJpbmcsXG4gICAgcXVlc3Rpb25DcmVhdG9yOiAobmFtZTogc3RyaW5nKSA9PiBRdWVzdGlvblxuICApIHtcbiAgICB0aGlzLmNyZWF0b3JIYXNoW3F1ZXN0aW9uVHlwZV0gPSBxdWVzdGlvbkNyZWF0b3I7XG4gIH1cbiAgcHVibGljIHVucmVnaXN0ZXJFbGVtZW50KGVsZW1lbnRUeXBlOiBzdHJpbmcpIHtcbiAgICBkZWxldGUgdGhpcy5jcmVhdG9ySGFzaFtlbGVtZW50VHlwZV07XG4gIH1cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuY3JlYXRvckhhc2ggPSB7fTtcbiAgfVxuICBwdWJsaWMgZ2V0QWxsVHlwZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgZm9yICh2YXIga2V5IGluIHRoaXMuY3JlYXRvckhhc2gpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQuc29ydCgpO1xuICB9XG4gIHB1YmxpYyBjcmVhdGVRdWVzdGlvbihxdWVzdGlvblR5cGU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogUXVlc3Rpb24ge1xuICAgIHZhciBjcmVhdG9yID0gdGhpcy5jcmVhdG9ySGFzaFtxdWVzdGlvblR5cGVdO1xuICAgIGlmIChjcmVhdG9yID09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBjcmVhdG9yKG5hbWUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbGVtZW50RmFjdG9yeSB7XG4gIHB1YmxpYyBzdGF0aWMgSW5zdGFuY2U6IEVsZW1lbnRGYWN0b3J5ID0gbmV3IEVsZW1lbnRGYWN0b3J5KCk7XG4gIHByaXZhdGUgY3JlYXRvckhhc2g6IEhhc2hUYWJsZTwobmFtZTogc3RyaW5nKSA9PiBJRWxlbWVudD4gPSB7fTtcblxuICBwdWJsaWMgcmVnaXN0ZXJFbGVtZW50KFxuICAgIGVsZW1lbnRUeXBlOiBzdHJpbmcsXG4gICAgZWxlbWVudENyZWF0b3I6IChuYW1lOiBzdHJpbmcpID0+IElFbGVtZW50XG4gICkge1xuICAgIHRoaXMuY3JlYXRvckhhc2hbZWxlbWVudFR5cGVdID0gZWxlbWVudENyZWF0b3I7XG4gIH1cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuY3JlYXRvckhhc2ggPSB7fTtcbiAgfVxuICBwdWJsaWMgdW5yZWdpc3RlckVsZW1lbnQoXG4gICAgZWxlbWVudFR5cGU6IHN0cmluZyxcbiAgICByZW1vdmVGcm9tU2VyaWFsaXplcjogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIGRlbGV0ZSB0aGlzLmNyZWF0b3JIYXNoW2VsZW1lbnRUeXBlXTtcbiAgICBRdWVzdGlvbkZhY3RvcnkuSW5zdGFuY2UudW5yZWdpc3RlckVsZW1lbnQoZWxlbWVudFR5cGUpO1xuICAgIGlmIChyZW1vdmVGcm9tU2VyaWFsaXplcikge1xuICAgICAgU2VyaWFsaXplci5yZW1vdmVDbGFzcyhlbGVtZW50VHlwZSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRBbGxUeXBlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIgcmVzdWx0ID0gUXVlc3Rpb25GYWN0b3J5Lkluc3RhbmNlLmdldEFsbFR5cGVzKCk7XG4gICAgZm9yICh2YXIga2V5IGluIHRoaXMuY3JlYXRvckhhc2gpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQuc29ydCgpO1xuICB9XG4gIHB1YmxpYyBjcmVhdGVFbGVtZW50KGVsZW1lbnRUeXBlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IElFbGVtZW50IHtcbiAgICB2YXIgY3JlYXRvciA9IHRoaXMuY3JlYXRvckhhc2hbZWxlbWVudFR5cGVdO1xuICAgIGlmIChjcmVhdG9yID09IG51bGwpXG4gICAgICByZXR1cm4gUXVlc3Rpb25GYWN0b3J5Lkluc3RhbmNlLmNyZWF0ZVF1ZXN0aW9uKGVsZW1lbnRUeXBlLCBuYW1lKTtcbiAgICByZXR1cm4gY3JlYXRvcihuYW1lKTtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uZmFjdG9yeS50cyIsImltcG9ydCB7IElMb2NhbGl6YWJsZU93bmVyLCBMb2NhbGl6YWJsZVN0cmluZyB9IGZyb20gXCIuL2xvY2FsaXphYmxlc3RyaW5nXCI7XG5pbXBvcnQgeyBIYXNoVGFibGUsIEhlbHBlcnMgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5pbXBvcnQge1xuICBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbixcbiAgSnNvbk9iamVjdCxcbiAgU2VyaWFsaXplclxufSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBzZXR0aW5ncyB9IGZyb20gXCIuL3NldHRpbmdzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN1cnZleURhdGEge1xuICBnZXRWYWx1ZShuYW1lOiBzdHJpbmcpOiBhbnk7XG4gIHNldFZhbHVlKG5hbWU6IHN0cmluZywgbmV3VmFsdWU6IGFueSwgbG9jTm90aWZpY2F0aW9uOiBhbnkpOiBhbnk7XG4gIGdldFZhcmlhYmxlKG5hbWU6IHN0cmluZyk6IGFueTtcbiAgc2V0VmFyaWFibGUobmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogYW55KTogdm9pZDtcbiAgZ2V0Q29tbWVudChuYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG4gIHNldENvbW1lbnQobmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nLCBsb2NOb3RpZmljYXRpb246IGFueSk6IGFueTtcbiAgZ2V0QWxsVmFsdWVzKCk6IGFueTtcbiAgZ2V0RmlsdGVyZWRWYWx1ZXMoKTogYW55O1xuICBnZXRGaWx0ZXJlZFByb3BlcnRpZXMoKTogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBJVGV4dFByb2Nlc3NvciB7XG4gIHByb2Nlc3NUZXh0KHRleHQ6IHN0cmluZywgcmV0dXJuRGlzcGxheVZhbHVlOiBib29sZWFuKTogc3RyaW5nO1xuICBwcm9jZXNzVGV4dEV4KFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICByZXR1cm5EaXNwbGF5VmFsdWU6IGJvb2xlYW4sXG4gICAgZG9FbmNvZGluZzogYm9vbGVhblxuICApOiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIElTdXJ2ZXlFcnJvck93bmVyIGV4dGVuZHMgSUxvY2FsaXphYmxlT3duZXIge1xuICBnZXRFcnJvckN1c3RvbVRleHQodGV4dDogc3RyaW5nLCBlcnJvcjogU3VydmV5RXJyb3IpOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIElTdXJ2ZXkgZXh0ZW5kcyBJVGV4dFByb2Nlc3NvciwgSVN1cnZleUVycm9yT3duZXIge1xuICBjdXJyZW50UGFnZTogSVBhZ2U7XG4gIHBhZ2VzOiBBcnJheTxJUGFnZT47XG4gIGlzUGFnZVN0YXJ0ZWQocGFnZTogSVBhZ2UpOiBib29sZWFuO1xuICBwYWdlVmlzaWJpbGl0eUNoYW5nZWQocGFnZTogSVBhZ2UsIG5ld1ZhbHVlOiBib29sZWFuKTogYW55O1xuICBwYW5lbFZpc2liaWxpdHlDaGFuZ2VkKHBhbmVsOiBJUGFuZWwsIG5ld1ZhbHVlOiBib29sZWFuKTogYW55O1xuICBxdWVzdGlvblZpc2liaWxpdHlDaGFuZ2VkKHF1ZXN0aW9uOiBJUXVlc3Rpb24sIG5ld1ZhbHVlOiBib29sZWFuKTogYW55O1xuICBxdWVzdGlvbnNPcmRlcjogc3RyaW5nO1xuICBxdWVzdGlvbkFkZGVkKFxuICAgIHF1ZXN0aW9uOiBJUXVlc3Rpb24sXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBwYXJlbnRQYW5lbDogYW55LFxuICAgIHJvb3RQYW5lbDogYW55XG4gICk6IGFueTtcbiAgcGFuZWxBZGRlZChcbiAgICBwYW5lbDogSUVsZW1lbnQsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBwYXJlbnRQYW5lbDogYW55LFxuICAgIHJvb3RQYW5lbDogYW55XG4gICk6IGFueTtcbiAgcXVlc3Rpb25SZW1vdmVkKHF1ZXN0aW9uOiBJUXVlc3Rpb24pOiBhbnk7XG4gIHBhbmVsUmVtb3ZlZChwYW5lbDogSUVsZW1lbnQpOiBhbnk7XG4gIHF1ZXN0aW9uUmVuYW1lZChcbiAgICBxdWVzdGlvbjogSVF1ZXN0aW9uLFxuICAgIG9sZE5hbWU6IHN0cmluZyxcbiAgICBvbGRWYWx1ZU5hbWU6IHN0cmluZ1xuICApOiBhbnk7XG4gIHZhbGlkYXRlUXVlc3Rpb24ocXVlc3Rpb246IElRdWVzdGlvbik6IFN1cnZleUVycm9yO1xuICB2YWxpZGF0ZVBhbmVsKHBhbmVsOiBJUGFuZWwpOiBTdXJ2ZXlFcnJvcjtcbiAgaGFzVmlzaWJsZVF1ZXN0aW9uQnlWYWx1ZU5hbWUodmFsdWVOYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICBxdWVzdGlvbkNvdW50QnlWYWx1ZU5hbWUodmFsdWVOYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIHByb2Nlc3NIdG1sKGh0bWw6IHN0cmluZyk6IHN0cmluZztcbiAgZ2V0U3VydmV5TWFya2Rvd25IdG1sKGVsZW1lbnQ6IEJhc2UsIHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgaXNEaXNwbGF5TW9kZTogYm9vbGVhbjtcbiAgaXNEZXNpZ25Nb2RlOiBib29sZWFuO1xuICBhcmVJbnZpc2libGVFbGVtZW50c1Nob3dpbmc6IGJvb2xlYW47XG4gIGlzTG9hZGluZ0Zyb21Kc29uOiBib29sZWFuO1xuICBpc1VwZGF0ZVZhbHVlVGV4dE9uVHlwaW5nOiBib29sZWFuO1xuXG4gIHJlcXVpcmVkVGV4dDogc3RyaW5nO1xuICBiZWZvcmVTZXR0aW5nUXVlc3Rpb25FcnJvcnMoXG4gICAgcXVlc3Rpb246IElRdWVzdGlvbixcbiAgICBlcnJvcnM6IEFycmF5PFN1cnZleUVycm9yPlxuICApOiB2b2lkO1xuICBnZXRRdWVzdGlvblRpdGxlVGVtcGxhdGUoKTogc3RyaW5nO1xuICBnZXRVcGRhdGVkUXVlc3Rpb25UaXRsZShxdWVzdGlvbjogSVF1ZXN0aW9uLCB0aXRsZTogc3RyaW5nKTogc3RyaW5nO1xuXG4gIHF1ZXN0aW9uU3RhcnRJbmRleDogc3RyaW5nO1xuICBxdWVzdGlvblRpdGxlTG9jYXRpb246IHN0cmluZztcbiAgcXVlc3Rpb25EZXNjcmlwdGlvbkxvY2F0aW9uOiBzdHJpbmc7XG4gIHF1ZXN0aW9uRXJyb3JMb2NhdGlvbjogc3RyaW5nO1xuICBzdG9yZU90aGVyc0FzQ29tbWVudDogYm9vbGVhbjtcblxuICBtYXhUZXh0TGVuZ3RoOiBudW1iZXI7XG4gIG1heE90aGVyc0xlbmd0aDogbnVtYmVyO1xuICBjbGVhclZhbHVlT25EaXNhYmxlSXRlbXM6IGJvb2xlYW47XG5cbiAgdXBsb2FkRmlsZXMoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGZpbGVzOiBGaWxlW10sXG4gICAgdXBsb2FkaW5nQ2FsbGJhY2s6IChzdGF0dXM6IHN0cmluZywgZGF0YTogYW55KSA9PiBhbnlcbiAgKTogYW55O1xuICBkb3dubG9hZEZpbGUoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHN0YXR1czogc3RyaW5nLCBkYXRhOiBhbnkpID0+IGFueVxuICApOiBhbnk7XG4gIGNsZWFyRmlsZXMoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnksXG4gICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICBjbGVhckNhbGxiYWNrOiAoc3RhdHVzOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4gYW55XG4gICk6IGFueTtcbiAgdXBkYXRlQ2hvaWNlc0Zyb21TZXJ2ZXIoXG4gICAgcXVlc3Rpb246IElRdWVzdGlvbixcbiAgICBjaG9pY2VzOiBBcnJheTxhbnk+LFxuICAgIHNlcnZlclJlc3VsdDogYW55XG4gICk6IEFycmF5PGFueT47XG4gIHVwZGF0ZVF1ZXN0aW9uQ3NzQ2xhc3NlcyhxdWVzdGlvbjogSVF1ZXN0aW9uLCBjc3NDbGFzc2VzOiBhbnkpOiBhbnk7XG4gIHVwZGF0ZVBhbmVsQ3NzQ2xhc3NlcyhwYW5lbDogSVBhbmVsLCBjc3NDbGFzc2VzOiBhbnkpOiBhbnk7XG4gIGFmdGVyUmVuZGVyUXVlc3Rpb24ocXVlc3Rpb246IElRdWVzdGlvbiwgaHRtbEVsZW1lbnQ6IGFueSk6IGFueTtcbiAgYWZ0ZXJSZW5kZXJQYW5lbChwYW5lbDogSUVsZW1lbnQsIGh0bWxFbGVtZW50OiBhbnkpOiBhbnk7XG4gIGFmdGVyUmVuZGVyUGFnZShodG1sRWxlbWVudDogYW55KTogYW55O1xuXG4gIGdldFF1ZXN0aW9uQnlWYWx1ZU5hbWVGcm9tQXJyYXkoXG4gICAgdmFsdWVOYW1lOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGluZGV4OiBudW1iZXJcbiAgKTogSVF1ZXN0aW9uO1xuICBtYXRyaXhSb3dBZGRlZChxdWVzdGlvbjogSVF1ZXN0aW9uKTogYW55O1xuICBtYXRyaXhCZWZvcmVSb3dBZGRlZChvcHRpb25zOiB7XG4gICAgcXVlc3Rpb246IElRdWVzdGlvbjtcbiAgICBjYW5BZGRSb3c6IGJvb2xlYW47XG4gIH0pOiBhbnk7XG4gIG1hdHJpeFJvd1JlbW92ZWQocXVlc3Rpb246IElRdWVzdGlvbiwgcm93SW5kZXg6IG51bWJlciwgcm93OiBhbnkpOiBhbnk7XG4gIG1hdHJpeEFsbG93UmVtb3ZlUm93KFxuICAgIHF1ZXN0aW9uOiBJUXVlc3Rpb24sXG4gICAgcm93SW5kZXg6IG51bWJlcixcbiAgICByb3c6IGFueVxuICApOiBib29sZWFuO1xuICBtYXRyaXhDZWxsQ3JlYXRlZChxdWVzdGlvbjogSVF1ZXN0aW9uLCBvcHRpb25zOiBhbnkpOiBhbnk7XG4gIG1hdHJpeEFmdGVyQ2VsbFJlbmRlcihxdWVzdGlvbjogSVF1ZXN0aW9uLCBvcHRpb25zOiBhbnkpOiBhbnk7XG4gIG1hdHJpeENlbGxWYWx1ZUNoYW5nZWQocXVlc3Rpb246IElRdWVzdGlvbiwgb3B0aW9uczogYW55KTogYW55O1xuICBtYXRyaXhDZWxsVmFsdWVDaGFuZ2luZyhxdWVzdGlvbjogSVF1ZXN0aW9uLCBvcHRpb25zOiBhbnkpOiBhbnk7XG4gIG1hdHJpeENlbGxWYWxpZGF0ZShxdWVzdGlvbjogSVF1ZXN0aW9uLCBvcHRpb25zOiBhbnkpOiBTdXJ2ZXlFcnJvcjtcbiAgZHluYW1pY1BhbmVsQWRkZWQocXVlc3Rpb246IElRdWVzdGlvbik6IGFueTtcbiAgZHluYW1pY1BhbmVsUmVtb3ZlZChxdWVzdGlvbjogSVF1ZXN0aW9uLCBwYW5lbEluZGV4OiBudW1iZXIpOiBhbnk7XG4gIGR5bmFtaWNQYW5lbEl0ZW1WYWx1ZUNoYW5nZWQocXVlc3Rpb246IElRdWVzdGlvbiwgb3B0aW9uczogYW55KTogYW55O1xuXG4gIGRyYWdBbmREcm9wQWxsb3cob3B0aW9uczogYW55KTogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSVN1cnZleUltcGwge1xuICBnZVN1cnZleURhdGEoKTogSVN1cnZleURhdGE7XG4gIGdldFN1cnZleSgpOiBJU3VydmV5O1xuICBnZXRUZXh0UHJvY2Vzc29yKCk6IElUZXh0UHJvY2Vzc29yO1xufVxuZXhwb3J0IGludGVyZmFjZSBJQ29uZGl0aW9uUnVubmVyIHtcbiAgcnVuQ29uZGl0aW9uKHZhbHVlczogSGFzaFRhYmxlPGFueT4sIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+KTogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBJU3VydmV5RWxlbWVudCB7XG4gIG5hbWU6IHN0cmluZztcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBpc1JlYWRPbmx5OiBib29sZWFuO1xuICBpc1BhZ2U6IGJvb2xlYW47XG4gIGNvbnRhaW5zRXJyb3JzOiBib29sZWFuO1xuICBzZXRTdXJ2ZXlJbXBsKHZhbHVlOiBJU3VydmV5SW1wbCk6IGFueTtcbiAgb25TdXJ2ZXlMb2FkKCk6IGFueTtcbiAgb25GaXJzdFJlbmRlcmluZygpOiBhbnk7XG4gIGdldFR5cGUoKTogc3RyaW5nO1xuICBzZXRWaXNpYmxlSW5kZXgodmFsdWU6IG51bWJlcik6IG51bWJlcjtcbiAgbG9jU3Ryc0NoYW5nZWQoKTogYW55O1xuICBkZWxldGUoKTogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBJRWxlbWVudCBleHRlbmRzIElDb25kaXRpb25SdW5uZXIsIElTdXJ2ZXlFbGVtZW50IHtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgcGFyZW50OiBJUGFuZWw7XG4gIHJlbmRlcldpZHRoOiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIHJpZ2h0SW5kZW50OiBudW1iZXI7XG4gIHN0YXJ0V2l0aE5ld0xpbmU6IGJvb2xlYW47XG4gIGlzUGFuZWw6IGJvb2xlYW47XG4gIGdldFBhbmVsKCk6IElQYW5lbDtcbiAgZ2V0TGF5b3V0VHlwZSgpOiBzdHJpbmc7XG4gIGlzTGF5b3V0VHlwZVN1cHBvcnRlZChsYXlvdXRUeXBlOiBzdHJpbmcpOiBib29sZWFuO1xuICByZW1vdmVFbGVtZW50KGVsOiBJRWxlbWVudCk6IGJvb2xlYW47XG4gIG9uQW55VmFsdWVDaGFuZ2VkKG5hbWU6IHN0cmluZyk6IGFueTtcbiAgdXBkYXRlQ3VzdG9tV2lkZ2V0cygpOiBhbnk7XG4gIGNsZWFySW5jb3JyZWN0VmFsdWVzKCk6IGFueTtcbiAgY2xlYXJFcnJvcnMoKTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElRdWVzdGlvbiBleHRlbmRzIElFbGVtZW50LCBJU3VydmV5RXJyb3JPd25lciB7XG4gIGhhc1RpdGxlOiBib29sZWFuO1xuICBpc0VtcHR5KCk6IGJvb2xlYW47XG4gIG9uU3VydmV5VmFsdWVDaGFuZ2VkKG5ld1ZhbHVlOiBhbnkpOiBhbnk7XG4gIHVwZGF0ZVZhbHVlRnJvbVN1cnZleShuZXdWYWx1ZTogYW55KTogYW55O1xuICB1cGRhdGVDb21tZW50RnJvbVN1cnZleShuZXdWYWx1ZTogYW55KTogYW55O1xuICBzdXBwb3J0R29OZXh0UGFnZUF1dG9tYXRpYygpOiBib29sZWFuO1xuICBjbGVhclVudXNlZFZhbHVlcygpOiBhbnk7XG4gIGdldERpc3BsYXlWYWx1ZShrZXlzQXNUZXh0OiBib29sZWFuLCB2YWx1ZTogYW55KTogYW55O1xuICBnZXRWYWx1ZU5hbWUoKTogc3RyaW5nO1xuICBjbGVhclZhbHVlKCk6IGFueTtcbiAgY2xlYXJWYWx1ZUlmSW52aXNpYmxlKCk6IGFueTtcbiAgaXNBbnN3ZXJDb3JyZWN0KCk6IGJvb2xlYW47XG4gIHVwZGF0ZVZhbHVlV2l0aERlZmF1bHRzKCk6IGFueTtcbiAgZ2V0UXVlc3Rpb25Gcm9tQXJyYXkobmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogSVF1ZXN0aW9uO1xuICB2YWx1ZTogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBJUGFyZW50RWxlbWVudCB7XG4gIGFkZEVsZW1lbnQoZWxlbWVudDogSUVsZW1lbnQsIGluZGV4OiBudW1iZXIpOiBhbnk7XG4gIHJlbW92ZUVsZW1lbnQoZWxlbWVudDogSUVsZW1lbnQpOiBib29sZWFuO1xuICBpc1JlYWRPbmx5OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYW5lbCBleHRlbmRzIElTdXJ2ZXlFbGVtZW50LCBJUGFyZW50RWxlbWVudCB7XG4gIGdldENoaWxkcmVuTGF5b3V0VHlwZSgpOiBzdHJpbmc7XG4gIGdldFF1ZXN0aW9uVGl0bGVMb2NhdGlvbigpOiBzdHJpbmc7XG4gIHBhcmVudDogSVBhbmVsO1xuICBlbGVtZW50V2lkdGhDaGFuZ2VkKGVsOiBJRWxlbWVudCk6IGFueTtcbiAgaW5kZXhPZihlbDogSUVsZW1lbnQpOiBudW1iZXI7XG4gIGVsZW1lbnRzOiBBcnJheTxJRWxlbWVudD47XG59XG5leHBvcnQgaW50ZXJmYWNlIElQYWdlIGV4dGVuZHMgSVBhbmVsLCBJQ29uZGl0aW9uUnVubmVyIHtcbiAgaXNTdGFydGVkOiBib29sZWFuO1xufVxuLyoqXG4gKiBUaGUgYmFzZSBjbGFzcyBmb3IgU3VydmV5SlMgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2Uge1xuICBwdWJsaWMgc3RhdGljIGdldCBjb21tZW50UHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNldHRpbmdzLmNvbW1lbnRQcmVmaXg7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBzZXQgY29tbWVudFByZWZpeCh2YWw6IHN0cmluZykge1xuICAgIHNldHRpbmdzLmNvbW1lbnRQcmVmaXggPSB2YWw7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVJdGVtVmFsdWU6IChpdGVtOiBhbnksIHR5cGU/OiBzdHJpbmcpID0+IGFueTtcbiAgcHVibGljIHN0YXRpYyBpdGVtVmFsdWVMb2NTdHJDaGFuZ2VkOiAoYXJyOiBBcnJheTxhbnk+KSA9PiB2b2lkO1xuICAvKipcbiAgICogQSBzdGF0aWMgbWV0aG9kcyB0aGF0IHJldHVybnMgdHJ1ZSBpZiBhIHZhbHVlIHVuZGVyZmluZWQsIG51bGwsIGVtcHR5IHN0cmluZyBvciBlbXB0eSBhcnJheS5cbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgaXNWYWx1ZUVtcHR5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gSGVscGVycy5pc1ZhbHVlRW1wdHkodmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBJc1Byb3BlcnR5RW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gXCJcIiAmJiB0aGlzLmlzVmFsdWVFbXB0eSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHByb3BlcnR5SGFzaDogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG4gIHByaXZhdGUgbG9jYWxpemFibGVTdHJpbmdzOiB7IFtpbmRleDogc3RyaW5nXTogTG9jYWxpemFibGVTdHJpbmcgfTtcbiAgcHJpdmF0ZSBhcnJheXNJbmZvOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH07XG4gIHByaXZhdGUgb25Qcm9wQ2hhbmdlRnVuY3Rpb25zOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGZ1bmM6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbiAgICBrZXk6IHN0cmluZztcbiAgfT47XG4gIHByb3RlY3RlZCBpc0xvYWRpbmdGcm9tSnNvblZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBvblByb3BlcnR5Q2hhbmdlZDogRXZlbnQ8XG4gICAgKHNlbmRlcjogQmFzZSwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogQmFzZSwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcblxuICBnZXRQcm9wZXJ0eVZhbHVlQ29yZUhhbmRsZXI6IChwcm9wZXJ0aWVzSGFzaDogYW55LCBuYW1lOiBzdHJpbmcpID0+IGFueTtcblxuICBzZXRQcm9wZXJ0eVZhbHVlQ29yZUhhbmRsZXI6IChcbiAgICBwcm9wZXJ0aWVzSGFzaDogYW55LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWw6IGFueVxuICApID0+IHZvaWQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIEN1c3RvbVByb3BlcnRpZXNDb2xsZWN0aW9uLmNyZWF0ZVByb3BlcnRpZXModGhpcyk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhlIG9iamVjdCBhcyBhIHN0cmluZyBhcyBpdCByZXByZXNlbnRzIGluIHRoZSBqc29uLiBJdCBzaG91bGQgYmUgaW4gbG93Y2FzZS5cbiAgICovXG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiYmFzZVwiO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlbGVtZW50IHRlbXBsYXRlIG5hbWUgd2l0aG91dCBwcmVmaXguIFR5cGljYWxseSBpdCBlcXVhbHMgdG8gZ2V0VHlwZSgpLlxuICAgKiBAc2VlIGdldFR5cGVcbiAgICovXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFR5cGUoKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgbG9hZGluZyBmcm9tIEpzb24gYXQgdGhlIGN1cnJlbnQgbW9tZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBpc0xvYWRpbmdGcm9tSnNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmdGcm9tSnNvblZhbHVlO1xuICB9XG4gIHN0YXJ0TG9hZGluZ0Zyb21Kc29uKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nRnJvbUpzb25WYWx1ZSA9IHRydWU7XG4gIH1cbiAgZW5kTG9hZGluZ0Zyb21Kc29uKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nRnJvbUpzb25WYWx1ZSA9IGZhbHNlO1xuICB9XG4gIC8qKlxuICAgKiBEZXNlcmlhbGl6ZWQgdGhlIGN1cnJlbnQgb2JqZWN0IGludG8gSlNPTlxuICAgKi9cbiAgcHVibGljIHRvSlNPTigpOiBhbnkge1xuICAgIHJldHVybiBuZXcgSnNvbk9iamVjdCgpLnRvSnNvbk9iamVjdCh0aGlzKTtcbiAgfVxuICBwdWJsaWMgbG9jU3Ryc0NoYW5nZWQoKSB7XG4gICAgaWYgKCEhdGhpcy5hcnJheXNJbmZvKSB7XG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5hcnJheXNJbmZvKSB7XG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5hcnJheXNJbmZvW2tleV07XG4gICAgICAgIGlmIChpdGVtICYmIGl0ZW0uaXNJdGVtVmFsdWVzKSB7XG4gICAgICAgICAgdmFyIGFyciA9IHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShrZXkpO1xuICAgICAgICAgIGlmIChhcnIgJiYgISFCYXNlLml0ZW1WYWx1ZUxvY1N0ckNoYW5nZWQpXG4gICAgICAgICAgICBCYXNlLml0ZW1WYWx1ZUxvY1N0ckNoYW5nZWQoYXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoISF0aGlzLmxvY2FsaXphYmxlU3RyaW5ncykge1xuICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMubG9jYWxpemFibGVTdHJpbmdzKSB7XG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhrZXkpO1xuICAgICAgICBpZiAoaXRlbSkgaXRlbS5zdHJDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZSBieSBuYW1lXG4gICAqIEBwYXJhbSBuYW1lIHByb3BlcnR5IG5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXRQcm9wZXJ0eVZhbHVlKG5hbWU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBhbnkgPSBudWxsKTogYW55IHtcbiAgICB2YXIgcmVzID0gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlQ29yZSh0aGlzLnByb3BlcnR5SGFzaCwgbmFtZSk7XG4gICAgaWYgKHRoaXMuSXNQcm9wZXJ0eUVtcHR5KHJlcykpIHtcbiAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT0gbnVsbCkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgIHZhciBwcm9wID0gU2VyaWFsaXplci5maW5kUHJvcGVydHkodGhpcy5nZXRUeXBlKCksIG5hbWUpO1xuICAgICAgdmFyIHNlclZhbHVlID0gISFwcm9wICYmICFwcm9wLmlzQ3VzdG9tID8gcHJvcC5kZWZhdWx0VmFsdWUgOiBudWxsO1xuICAgICAgaWYgKCF0aGlzLklzUHJvcGVydHlFbXB0eShzZXJWYWx1ZSkpIHJldHVybiBzZXJWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UHJvcGVydHlWYWx1ZUNvcmUocHJvcGVydGllc0hhc2g6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZ2V0UHJvcGVydHlWYWx1ZUNvcmVIYW5kbGVyKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZUNvcmVIYW5kbGVyKHByb3BlcnRpZXNIYXNoLCBuYW1lKTtcbiAgICBlbHNlIHJldHVybiBwcm9wZXJ0aWVzSGFzaFtuYW1lXTtcbiAgfVxuICBwdWJsaWMgZ2VWYWx1ZUZyb21IYXNoKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHlIYXNoW1widmFsdWVcIl07XG4gIH1cbiAgcHJvdGVjdGVkIHNldFByb3BlcnR5VmFsdWVDb3JlKHByb3BlcnRpZXNIYXNoOiBhbnksIG5hbWU6IHN0cmluZywgdmFsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5zZXRQcm9wZXJ0eVZhbHVlQ29yZUhhbmRsZXIpXG4gICAgICB0aGlzLnNldFByb3BlcnR5VmFsdWVDb3JlSGFuZGxlcihwcm9wZXJ0aWVzSGFzaCwgbmFtZSwgdmFsKTtcbiAgICBlbHNlIHByb3BlcnRpZXNIYXNoW25hbWVdID0gdmFsO1xuICB9XG4gIHB1YmxpYyBpdGVyYXRlUHJvcGVydGllc0hhc2goZnVuYzogKGhhc2g6IGFueSwga2V5OiBhbnkpID0+IHZvaWQpIHtcbiAgICB2YXIga2V5czogYW55W10gPSBbXTtcbiAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5wcm9wZXJ0eUhhc2gpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IGZ1bmModGhpcy5wcm9wZXJ0eUhhc2gsIGtleSkpO1xuICB9XG4gIC8qKlxuICAgKiBzZXQgcHJvcGVydHkgdmFsdWVcbiAgICogQHBhcmFtIG5hbWUgcHJvcGVydHkgbmFtZVxuICAgKiBAcGFyYW0gdmFsIG5ldyBwcm9wZXJ0eSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHNldFByb3BlcnR5VmFsdWUobmFtZTogc3RyaW5nLCB2YWw6IGFueSkge1xuICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKTtcbiAgICBpZiAob2xkVmFsdWUgJiYgQXJyYXkuaXNBcnJheShvbGRWYWx1ZSkpIHtcbiAgICAgIGlmICh0aGlzLmlzVHdvVmFsdWVFcXVhbHMob2xkVmFsdWUsIHZhbCkpIHJldHVybjtcbiAgICAgIHZhciBhcnJheUluZm8gPSB0aGlzLmFycmF5c0luZm9bbmFtZV07XG4gICAgICB0aGlzLnNldEFycmF5KFxuICAgICAgICBvbGRWYWx1ZSxcbiAgICAgICAgdmFsLFxuICAgICAgICBhcnJheUluZm8gPyBhcnJheUluZm8uaXNJdGVtVmFsdWVzIDogZmFsc2UsXG4gICAgICAgIGFycmF5SW5mbyA/IGFycmF5SW5mby5vblB1c2ggOiBudWxsXG4gICAgICApO1xuICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgb2xkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFByb3BlcnR5VmFsdWVDb3JlKHRoaXMucHJvcGVydHlIYXNoLCBuYW1lLCB2YWwpO1xuICAgICAgaWYgKCF0aGlzLmlzVHdvVmFsdWVFcXVhbHMob2xkVmFsdWUsIHZhbCkpIHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIG9uUHJvcGVydHlWYWx1ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkVmFsdWU6IGFueSxcbiAgICBuZXdWYWx1ZTogYW55XG4gICkge1xuICAgIGlmICghISg8YW55PnRoaXMpW1wic3VydmV5XCJdKSB7XG4gICAgICAoPGFueT50aGlzKVtcInN1cnZleVwiXS5vblByb3BlcnR5VmFsdWVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICAgIG5hbWUsXG4gICAgICAgIG9sZFZhbHVlLFxuICAgICAgICBuZXdWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJvcGVydHlWYWx1ZUNoYW5nZWQobmFtZTogc3RyaW5nLCBvbGRWYWx1ZTogYW55LCBuZXdWYWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHJldHVybjtcbiAgICB0aGlzLm9uUHJvcGVydHlDaGFuZ2VkLmZpcmUodGhpcywge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIG9sZFZhbHVlOiBvbGRWYWx1ZSxcbiAgICAgIG5ld1ZhbHVlOiBuZXdWYWx1ZVxuICAgIH0pO1xuICAgIGlmICghdGhpcy5vblByb3BDaGFuZ2VGdW5jdGlvbnMpIHJldHVybjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub25Qcm9wQ2hhbmdlRnVuY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5vblByb3BDaGFuZ2VGdW5jdGlvbnNbaV0ubmFtZSA9PSBuYW1lKVxuICAgICAgICB0aGlzLm9uUHJvcENoYW5nZUZ1bmN0aW9uc1tpXS5mdW5jKG5ld1ZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5vblByb3BlcnR5VmFsdWVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgfVxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIGEgcHJvcGVydHkgdmFsdWUgY2hhbmdlZC5cbiAgICogQHBhcmFtIG5hbWUgdGhlIHByb3BlcnR5IG5hbWVcbiAgICogQHBhcmFtIGZ1bmMgdGhlIGZ1bmN0aW9uIHdpdGggbm8gcGFyYW1ldGVycyB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIHByb3BlcnR5IGNoYW5nZWQuXG4gICAqIEBwYXJhbSBrZXkgYW4gb3B0aW9uYWwgcGFyYW1ldGVyLiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgcmVnaXN0ZXJlZCBmdW5jdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSB3aXRodCB0aGUgc2FtZSBrZXksIGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4uXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGZ1bmM6IGFueSxcbiAgICBrZXk6IHN0cmluZyA9IG51bGxcbiAgKSB7XG4gICAgaWYgKCF0aGlzLm9uUHJvcENoYW5nZUZ1bmN0aW9ucykge1xuICAgICAgdGhpcy5vblByb3BDaGFuZ2VGdW5jdGlvbnMgPSBbXTtcbiAgICB9XG4gICAgaWYgKGtleSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9uUHJvcENoYW5nZUZ1bmN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgaXRlbSA9IHRoaXMub25Qcm9wQ2hhbmdlRnVuY3Rpb25zW2ldO1xuICAgICAgICBpZiAoaXRlbS5uYW1lID09IG5hbWUgJiYgaXRlbS5rZXkgPT0ga2V5KSB7XG4gICAgICAgICAgaXRlbS5mdW5jID0gZnVuYztcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vblByb3BDaGFuZ2VGdW5jdGlvbnMucHVzaCh7IG5hbWU6IG5hbWUsIGZ1bmM6IGZ1bmMsIGtleToga2V5IH0pO1xuICB9XG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gYSBwcm9wZXJ0eSB2YWx1ZSBjaGFuZ2VkIGZyb20gdGhlIG5hbWVzIGxpc3QuXG4gICAqIEBwYXJhbSBuYW1lcyB0aGUgbGlzdCBvZiBwcm9wZXJ0aWVzIG5hbWVzXG4gICAqIEBwYXJhbSBmdW5jIHRoZSBmdW5jdGlvbiB3aXRoIG5vIHBhcmFtZXRlcnMgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBwcm9wZXJ0eSBjaGFuZ2VkLlxuICAgKiBAcGFyYW0ga2V5IGFuIG9wdGlvbmFsIHBhcmFtZXRlci4gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJlZ2lzdGVyZWQgZnVuY3Rpb24gZm9yIHRoaXMgcHJvcGVydHkgd2l0aHQgdGhlIHNhbWUga2V5LCBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgbmFtZXM6IEFycmF5PHN0cmluZz4sXG4gICAgZnVuYzogYW55LFxuICAgIGtleTogc3RyaW5nID0gbnVsbFxuICApIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKG5hbWVzW2ldLCBmdW5jLCBrZXkpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogVW5yZWdpc3RlciBub3RpZmljYXRpb24gb24gcHJvcGVydHkgdmFsdWUgY2hhbmdlZFxuICAgKiBAcGFyYW0gbmFtZSB0aGUgcHJvcGVydHkgbmFtZVxuICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgd2l0aCB3aGljaCB5b3UgaGF2ZSByZWdpc3RlcmVkIHRoZSBub3RpZmljYXRpb24gZm9yIHRoaXMgcHJvcGVydHkuIEl0IGNhbiBiZSBudWxsLlxuICAgKi9cbiAgcHVibGljIHVuUmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nID0gbnVsbFxuICApIHtcbiAgICBpZiAoIXRoaXMub25Qcm9wQ2hhbmdlRnVuY3Rpb25zKSByZXR1cm47XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9uUHJvcENoYW5nZUZ1bmN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGl0ZW0gPSB0aGlzLm9uUHJvcENoYW5nZUZ1bmN0aW9uc1tpXTtcbiAgICAgIGlmIChpdGVtLm5hbWUgPT0gbmFtZSAmJiBpdGVtLmtleSA9PSBrZXkpIHtcbiAgICAgICAgdGhpcy5vblByb3BDaGFuZ2VGdW5jdGlvbnMuc3BsaWNlKGksIDEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVyIG5vdGlmaWNhdGlvbiBvbiBwcm9wZXJ0eSB2YWx1ZSBjaGFuZ2VkIGZvciBhbGwgcHJvcGVydGllcyBpbiB0aGUgbmFtZXMgbGlzdC5cbiAgICogQHBhcmFtIG5hbWVzIHRoZSBsaXN0IG9mIHByb3BlcnRpZXMgbmFtZXNcbiAgICogQHBhcmFtIGtleSB0aGUga2V5IHdpdGggd2hpY2ggeW91IGhhdmUgcmVnaXN0ZXJlZCB0aGUgbm90aWZpY2F0aW9uIGZvciB0aGlzIHByb3BlcnR5LiBJdCBjYW4gYmUgbnVsbC5cbiAgICovXG4gIHB1YmxpYyB1blJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgbmFtZXM6IEFycmF5PHN0cmluZz4sXG4gICAga2V5OiBzdHJpbmcgPSBudWxsXG4gICkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMudW5SZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChuYW1lc1tpXSwga2V5KTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGNyZWF0ZUN1c3RvbUxvY2FsaXphYmxlT2JqKG5hbWU6IHN0cmluZykge1xuICAgIHZhciBsb2NTdHIgPSB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKG5hbWUpO1xuICAgIGlmIChsb2NTdHIgfHwgISg8YW55PnRoaXMpLmdldExvY2FsZSkgcmV0dXJuO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcobmFtZSwgPElMb2NhbGl6YWJsZU93bmVyPig8YW55PnRoaXMpKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG93bmVyOiBJTG9jYWxpemFibGVPd25lcixcbiAgICB1c2VNYXJrRG93bjogYm9vbGVhbiA9IGZhbHNlXG4gICk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICB2YXIgbG9jU3RyID0gbmV3IExvY2FsaXphYmxlU3RyaW5nKG93bmVyLCB1c2VNYXJrRG93bik7XG4gICAgaWYgKCF0aGlzLmxvY2FsaXphYmxlU3RyaW5ncykge1xuICAgICAgdGhpcy5sb2NhbGl6YWJsZVN0cmluZ3MgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5sb2NhbGl6YWJsZVN0cmluZ3NbbmFtZV0gPSBsb2NTdHI7XG4gICAgcmV0dXJuIGxvY1N0cjtcbiAgfVxuICBwdWJsaWMgZ2V0TG9jYWxpemFibGVTdHJpbmcobmFtZTogc3RyaW5nKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiAhIXRoaXMubG9jYWxpemFibGVTdHJpbmdzID8gdGhpcy5sb2NhbGl6YWJsZVN0cmluZ3NbbmFtZV0gOiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGRlZmF1bHRTdHI6IHN0cmluZyA9IFwiXCJcbiAgKTogc3RyaW5nIHtcbiAgICB2YXIgbG9jU3RyID0gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhuYW1lKTtcbiAgICBpZiAoIWxvY1N0cikgcmV0dXJuIFwiXCI7XG4gICAgdmFyIHJlcyA9IGxvY1N0ci50ZXh0O1xuICAgIHJldHVybiByZXMgPyByZXMgOiBkZWZhdWx0U3RyO1xuICB9XG4gIHB1YmxpYyBzZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdmFyIGxvY1N0ciA9IHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcobmFtZSk7XG4gICAgaWYgKCFsb2NTdHIpIHJldHVybjtcbiAgICB2YXIgb2xkVmFsdWUgPSBsb2NTdHIudGV4dDtcbiAgICBpZiAob2xkVmFsdWUgPT09IHZhbHVlKSByZXR1cm47XG4gICAgbG9jU3RyLnRleHQgPSB2YWx1ZTtcbiAgICB0aGlzLnByb3BlcnR5VmFsdWVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSk7XG4gIH1cbiAgcHVibGljIGFkZFVzZWRMb2NhbGVzKGxvY2FsZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBpZiAoISF0aGlzLmxvY2FsaXphYmxlU3RyaW5ncykge1xuICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMubG9jYWxpemFibGVTdHJpbmdzKSB7XG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhrZXkpO1xuICAgICAgICBpZiAoaXRlbSkgdGhpcy5BZGRMb2NTdHJpbmdUb1VzZWRMb2NhbGVzKGl0ZW0sIGxvY2FsZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoISF0aGlzLmFycmF5c0luZm8pIHtcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmFycmF5c0luZm8pIHtcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKGtleSk7XG4gICAgICAgIGlmICghaXRlbXMgfHwgIWl0ZW1zLmxlbmd0aCkgY29udGludWU7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsZXQgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICAgIGlmIChpdGVtICYmIGl0ZW0uYWRkVXNlZExvY2FsZXMpIHtcbiAgICAgICAgICAgIGl0ZW0uYWRkVXNlZExvY2FsZXMobG9jYWxlcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBBZGRMb2NTdHJpbmdUb1VzZWRMb2NhbGVzKFxuICAgIGxvY1N0cjogTG9jYWxpemFibGVTdHJpbmcsXG4gICAgbG9jYWxlczogQXJyYXk8c3RyaW5nPlxuICApIHtcbiAgICB2YXIgbG9jcyA9IGxvY1N0ci5nZXRMb2NhbGVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2NzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAobG9jYWxlcy5pbmRleE9mKGxvY3NbaV0pIDwgMCkge1xuICAgICAgICBsb2NhbGVzLnB1c2gobG9jc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVJdGVtVmFsdWVzKG5hbWU6IHN0cmluZyk6IEFycmF5PGFueT4ge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcmVzdWx0ID0gdGhpcy5jcmVhdGVOZXdBcnJheShuYW1lLCBmdW5jdGlvbihpdGVtOiBhbnkpIHtcbiAgICAgIGl0ZW0ubG9jT3duZXIgPSBzZWxmO1xuICAgIH0pO1xuICAgIHRoaXMuYXJyYXlzSW5mb1tuYW1lXS5pc0l0ZW1WYWx1ZXMgPSB0cnVlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHJpdmF0ZSBub3RpZnlBcnJheUNoYW5nZWQoYXI6IGFueSkge1xuICAgICEhYXIub25BcnJheUNoYW5nZWQgJiYgYXIub25BcnJheUNoYW5nZWQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTmV3QXJyYXkoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9uUHVzaDogYW55ID0gbnVsbCxcbiAgICBvblJlbW92ZTogYW55ID0gbnVsbFxuICApOiBBcnJheTxhbnk+IHtcbiAgICB2YXIgbmV3QXJyYXkgPSBuZXcgQXJyYXk8YW55PigpO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZUNvcmUodGhpcy5wcm9wZXJ0eUhhc2gsIG5hbWUsIG5ld0FycmF5KTtcbiAgICBpZiAoIXRoaXMuYXJyYXlzSW5mbykge1xuICAgICAgdGhpcy5hcnJheXNJbmZvID0ge307XG4gICAgfVxuICAgIHRoaXMuYXJyYXlzSW5mb1tuYW1lXSA9IHsgb25QdXNoOiBvblB1c2gsIGlzSXRlbVZhbHVlczogZmFsc2UgfTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgbmV3QXJyYXkucHVzaCA9IGZ1bmN0aW9uKHZhbHVlKTogbnVtYmVyIHtcbiAgICAgIHZhciByZXN1bHQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3QXJyYXkpLnB1c2guY2FsbChuZXdBcnJheSwgdmFsdWUpO1xuICAgICAgaWYgKG9uUHVzaCkgb25QdXNoKHZhbHVlLCBuZXdBcnJheS5sZW5ndGggLSAxKTtcbiAgICAgIHNlbGYucHJvcGVydHlWYWx1ZUNoYW5nZWQobmFtZSwgbmV3QXJyYXksIG5ld0FycmF5KTtcbiAgICAgIHNlbGYubm90aWZ5QXJyYXlDaGFuZ2VkKG5ld0FycmF5KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBuZXdBcnJheS51bnNoaWZ0ID0gZnVuY3Rpb24odmFsdWUpOiBudW1iZXIge1xuICAgICAgdmFyIHJlc3VsdCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXdBcnJheSkudW5zaGlmdC5jYWxsKFxuICAgICAgICBuZXdBcnJheSxcbiAgICAgICAgdmFsdWVcbiAgICAgICk7XG4gICAgICBpZiAob25QdXNoKSBvblB1c2godmFsdWUsIG5ld0FycmF5Lmxlbmd0aCAtIDEpO1xuICAgICAgc2VsZi5wcm9wZXJ0eVZhbHVlQ2hhbmdlZChuYW1lLCBuZXdBcnJheSwgbmV3QXJyYXkpO1xuICAgICAgc2VsZi5ub3RpZnlBcnJheUNoYW5nZWQobmV3QXJyYXkpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIG5ld0FycmF5LnBvcCA9IGZ1bmN0aW9uKCk6IG51bWJlciB7XG4gICAgICB2YXIgcmVzdWx0ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ld0FycmF5KS5wb3AuY2FsbChuZXdBcnJheSk7XG4gICAgICBpZiAob25SZW1vdmUpIG9uUmVtb3ZlKHJlc3VsdCk7XG4gICAgICBzZWxmLnByb3BlcnR5VmFsdWVDaGFuZ2VkKG5hbWUsIG5ld0FycmF5LCBuZXdBcnJheSk7XG4gICAgICBzZWxmLm5vdGlmeUFycmF5Q2hhbmdlZChuZXdBcnJheSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgbmV3QXJyYXkuc3BsaWNlID0gZnVuY3Rpb24oXG4gICAgICBzdGFydD86IG51bWJlcixcbiAgICAgIGRlbGV0ZUNvdW50PzogbnVtYmVyLFxuICAgICAgLi4uaXRlbXM6IGFueVtdXG4gICAgKTogYW55W10ge1xuICAgICAgaWYgKCFzdGFydCkgc3RhcnQgPSAwO1xuICAgICAgaWYgKCFkZWxldGVDb3VudCkgZGVsZXRlQ291bnQgPSAwO1xuICAgICAgdmFyIHJlc3VsdCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXdBcnJheSkuc3BsaWNlLmNhbGwoXG4gICAgICAgIG5ld0FycmF5LFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZGVsZXRlQ291bnQsXG4gICAgICAgIC4uLml0ZW1zXG4gICAgICApO1xuICAgICAgaWYgKCFpdGVtcykgaXRlbXMgPSBbXTtcbiAgICAgIGlmIChvblJlbW92ZSAmJiByZXN1bHQpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBvblJlbW92ZShyZXN1bHRbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob25QdXNoKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBvblB1c2goaXRlbXNbaV0sIHN0YXJ0ICsgaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNlbGYucHJvcGVydHlWYWx1ZUNoYW5nZWQobmFtZSwgbmV3QXJyYXksIG5ld0FycmF5KTtcbiAgICAgIHNlbGYubm90aWZ5QXJyYXlDaGFuZ2VkKG5ld0FycmF5KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIHJldHVybiBuZXdBcnJheTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0SXRlbVZhbHVlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcHJvdGVjdGVkIHNldEFycmF5KFxuICAgIHNyYzogYW55W10sXG4gICAgZGVzdDogYW55W10sXG4gICAgaXNJdGVtVmFsdWVzOiBib29sZWFuLFxuICAgIG9uUHVzaDogYW55XG4gICkge1xuICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZihzcmMpLnNwbGljZS5jYWxsKHNyYywgMCwgc3JjLmxlbmd0aCk7XG4gICAgLy9zcmMuc3BsaWNlKDAsIHNyYy5sZW5ndGgpO1xuICAgIC8vICAgIHNyYy5sZW5ndGggPSAwO1xuICAgIGlmICghZGVzdCkge1xuICAgICAgdGhpcy5ub3RpZnlBcnJheUNoYW5nZWQoc3JjKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IGRlc3RbaV07XG4gICAgICBpZiAoaXNJdGVtVmFsdWVzKSB7XG4gICAgICAgIGlmICghIUJhc2UuY3JlYXRlSXRlbVZhbHVlKSB7XG4gICAgICAgICAgaXRlbSA9IEJhc2UuY3JlYXRlSXRlbVZhbHVlKGl0ZW0sIHRoaXMuZ2V0SXRlbVZhbHVlVHlwZSgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgT2JqZWN0LmdldFByb3RvdHlwZU9mKHNyYykucHVzaC5jYWxsKHNyYywgaXRlbSk7XG4gICAgICAvL3NyY1tcIm9yaWdpb25hbFB1c2hcIl0uYXBwbHkoc3JjLCBbaXRlbV0pO1xuICAgICAgaWYgKG9uUHVzaCkgb25QdXNoKHNyY1tpXSk7XG4gICAgfVxuICAgIHRoaXMubm90aWZ5QXJyYXlDaGFuZ2VkKHNyYyk7XG4gIH1cbiAgcHJvdGVjdGVkIGlzVHdvVmFsdWVFcXVhbHMoXG4gICAgeDogYW55LFxuICAgIHk6IGFueSxcbiAgICBjYXNlSW5TZW5zaXRpdmU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBib29sZWFuIHtcbiAgICBpZiAoY2FzZUluU2Vuc2l0aXZlKSB7XG4gICAgICB4ID0gdGhpcy5nZXRWYWx1ZUluTG93Q2FzZSh4KTtcbiAgICAgIHkgPSB0aGlzLmdldFZhbHVlSW5Mb3dDYXNlKHkpO1xuICAgIH1cbiAgICByZXR1cm4gSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKHgsIHkpO1xuICB9XG4gIHByaXZhdGUgZ2V0VmFsdWVJbkxvd0Nhc2UodmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICghIXZhbCAmJiB0eXBlb2YgdmFsID09IFwic3RyaW5nXCIpIHJldHVybiB2YWwudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gdmFsO1xuICB9XG59XG5leHBvcnQgY2xhc3MgU3VydmV5RXJyb3Ige1xuICBwcml2YXRlIGxvY1RleHRWYWx1ZTogTG9jYWxpemFibGVTdHJpbmc7XG4gIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRleHQ6IHN0cmluZyA9IG51bGwsXG4gICAgcHJvdGVjdGVkIGVycm9yT3duZXI6IElTdXJ2ZXlFcnJvck93bmVyID0gbnVsbFxuICApIHt9XG4gIHB1YmxpYyBnZXQgbG9jVGV4dCgpIHtcbiAgICBpZiAoIXRoaXMubG9jVGV4dFZhbHVlKSB7XG4gICAgICB0aGlzLmxvY1RleHRWYWx1ZSA9IG5ldyBMb2NhbGl6YWJsZVN0cmluZyh0aGlzLmVycm9yT3duZXIsIHRydWUpO1xuICAgICAgdGhpcy5sb2NUZXh0VmFsdWUudGV4dCA9IHRoaXMuZ2V0VGV4dCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sb2NUZXh0VmFsdWU7XG4gIH1cbiAgcHVibGljIGdldFRleHQoKTogc3RyaW5nIHtcbiAgICB2YXIgcmVzID0gdGhpcy50ZXh0O1xuICAgIGlmICghcmVzKSByZXMgPSB0aGlzLmdldERlZmF1bHRUZXh0KCk7XG4gICAgaWYgKCEhdGhpcy5lcnJvck93bmVyKSB7XG4gICAgICByZXMgPSB0aGlzLmVycm9yT3duZXIuZ2V0RXJyb3JDdXN0b21UZXh0KHJlcywgdGhpcyk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGdldEVycm9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImJhc2VcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VydmV5RWxlbWVudCBleHRlbmRzIEJhc2UgaW1wbGVtZW50cyBJU3VydmV5RWxlbWVudCB7XG4gIHByaXZhdGUgc3VydmV5SW1wbFZhbHVlOiBJU3VydmV5SW1wbDtcbiAgcHJpdmF0ZSBzdXJ2ZXlEYXRhVmFsdWU6IElTdXJ2ZXlEYXRhO1xuICBwcml2YXRlIHN1cnZleVZhbHVlOiBJU3VydmV5O1xuICBwcml2YXRlIHRleHRQcm9jZXNzb3JWYWx1ZTogSVRleHRQcm9jZXNzb3I7XG4gIHByaXZhdGUgc2VsZWN0ZWRFbGVtZW50SW5EZXNpZ25WYWx1ZTogU3VydmV5RWxlbWVudCA9IHRoaXM7XG4gIHB1YmxpYyByZWFkT25seUNoYW5nZWRDYWxsYmFjazogKCkgPT4gdm9pZDtcblxuICBwdWJsaWMgc3RhdGljIFNjcm9sbEVsZW1lbnRUb1RvcChlbGVtZW50SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghZWxlbWVudElkKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTtcbiAgICBpZiAoIWVsIHx8ICFlbC5zY3JvbGxJbnRvVmlldykgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBlbGVtVG9wID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgIGlmIChlbGVtVG9wIDwgMCkgZWwuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICByZXR1cm4gZWxlbVRvcCA8IDA7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBHZXRGaXJzdE5vblRleHRFbGVtZW50KGVsZW1lbnRzOiBhbnkpIHtcbiAgICBpZiAoIWVsZW1lbnRzIHx8ICFlbGVtZW50cy5sZW5ndGgpIHJldHVybjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZWxlbWVudHNbaV0ubm9kZU5hbWUgIT0gXCIjdGV4dFwiICYmIGVsZW1lbnRzW2ldLm5vZGVOYW1lICE9IFwiI2NvbW1lbnRcIilcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzW2ldO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgc3RhdGljIEZvY3VzRWxlbWVudChlbGVtZW50SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghZWxlbWVudElkKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTtcbiAgICBpZiAoZWwpIHtcbiAgICAgIGVsLmZvY3VzKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmNyZWF0ZU5ld0FycmF5KFwiZXJyb3JzXCIpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFwiaXNSZWFkT25seVwiLCBmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYub25SZWFkT25seUNoYW5nZWQoKTtcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgc2V0U3VydmV5SW1wbCh2YWx1ZTogSVN1cnZleUltcGwpIHtcbiAgICB0aGlzLnN1cnZleUltcGxWYWx1ZSA9IHZhbHVlO1xuICAgIGlmICghdGhpcy5zdXJ2ZXlJbXBsVmFsdWUpIHJldHVybjtcbiAgICB0aGlzLnN1cnZleURhdGFWYWx1ZSA9IHRoaXMuc3VydmV5SW1wbFZhbHVlLmdlU3VydmV5RGF0YSgpO1xuICAgIHRoaXMuc3VydmV5VmFsdWUgPSB0aGlzLnN1cnZleUltcGxWYWx1ZS5nZXRTdXJ2ZXkoKTtcbiAgICB0aGlzLnRleHRQcm9jZXNzb3JWYWx1ZSA9IHRoaXMuc3VydmV5SW1wbFZhbHVlLmdldFRleHRQcm9jZXNzb3IoKTtcbiAgICB0aGlzLm9uU2V0RGF0YSgpO1xuICB9XG4gIHByb3RlY3RlZCBnZXQgc3VydmV5SW1wbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXlJbXBsVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBkYXRhKCk6IElTdXJ2ZXlEYXRhIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXlEYXRhVmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN1cnZleSBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN1cnZleSgpOiBJU3VydmV5IHtcbiAgICBpZiAoISF0aGlzLnN1cnZleVZhbHVlKSByZXR1cm4gdGhpcy5zdXJ2ZXlWYWx1ZTtcbiAgICBpZiAoISF0aGlzLnN1cnZleUltcGxWYWx1ZSkge1xuICAgICAgdGhpcy5zdXJ2ZXlWYWx1ZSA9IHRoaXMuc3VydmV5SW1wbFZhbHVlLmdldFN1cnZleSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXlWYWx1ZTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBxdWVzdGlvbiBpbiBkZXNpZ24gbW9kZSByaWdodCBub3cuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzRGVzaWduTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN1cnZleSAmJiB0aGlzLnN1cnZleS5pc0Rlc2lnbk1vZGU7XG4gIH1cbiAgcHVibGljIGdldCBhcmVJbnZpc2libGVFbGVtZW50c1Nob3dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zdXJ2ZXkgJiYgdGhpcy5zdXJ2ZXkuYXJlSW52aXNpYmxlRWxlbWVudHNTaG93aW5nO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIHRvIG1ha2UgYW4gZWxlbWVudCBxdWVzdGlvbi9wYW5lbC9wYWdlIHJlYWRvbmx5LlxuICAgKiBAc2VlIGVuYWJsZUlmXG4gICAqIEBzZWUgaXNSZWFkT25seVxuICAgKi9cbiAgcHVibGljIGdldCByZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicmVhZE9ubHlcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkgPT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicmVhZE9ubHlcIiwgdmFsKTtcbiAgICBpZiAoIXRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHtcbiAgICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlzUmVhZE9ubHlcIiwgdGhpcy5pc1JlYWRPbmx5KTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIG9uUmVhZE9ubHlDaGFuZ2VkKCkge1xuICAgIGlmICghIXRoaXMucmVhZE9ubHlDaGFuZ2VkQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMucmVhZE9ubHlDaGFuZ2VkQ2FsbGJhY2soKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBpc0xvYWRpbmdGcm9tSnNvbigpIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdGcm9tSnNvblZhbHVlKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkgPyB0aGlzLnN1cnZleS5pc0xvYWRpbmdGcm9tSnNvbiA6IGZhbHNlO1xuICB9XG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJuYW1lXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xuICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMubmFtZTtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJuYW1lXCIsIHZhbCk7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGluZ0Zyb21Kc29uICYmICEhb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMub25OYW1lQ2hhbmdlZChvbGRWYWx1ZSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBvbk5hbWVDaGFuZ2VkKG9sZFZhbHVlOiBzdHJpbmcpIHt9XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBlcnJvcnMuIEl0IGlzIGNyZWF0ZWQgYnkgY2FsbGlnIGhhc0Vycm9ycyBmdW5jdGlvbnNcbiAgICogQHNlZSBoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgZXJyb3JzKCk6IEFycmF5PFN1cnZleUVycm9yPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImVycm9yc1wiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGVycm9ycyh2YWw6IEFycmF5PFN1cnZleUVycm9yPikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImVycm9yc1wiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYSBxdWVzdGlvbiBvciBhIGNvbnRhaW5lciAocGFuZWwvcGFnZSkgb3IgdGhlaXIgY2hpZHJlbiBoYXZlIGFuIGVycm9yLlxuICAgKiBUaGUgdmFsdWUgY2FuIGJlIG91dCBvZiBkYXRlLiBoYXNFcnJvcnMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB0byBnZXQgdGhlIGNvcnJlY3QgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRhaW5zRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjb250YWluc0Vycm9yc1wiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHVwZGF0ZUNvbnRhaW5zRXJyb3JzKCkge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNvbnRhaW5zRXJyb3JzXCIsIHRoaXMuZ2V0Q29udGFpbnNFcnJvcnMoKSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvbnRhaW5zRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPiAwO1xuICB9XG4gIHB1YmxpYyBnZXRFbGVtZW50c0luRGVzaWduKGluY2x1ZGVIaWRkZW46IGJvb2xlYW4gPSBmYWxzZSk6IEFycmF5PElFbGVtZW50PiB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRFbGVtZW50SW5EZXNpZ24oKTogU3VydmV5RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRFbGVtZW50SW5EZXNpZ25WYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkRWxlbWVudEluRGVzaWduKHZhbDogU3VydmV5RWxlbWVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50SW5EZXNpZ25WYWx1ZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgdXBkYXRlQ3VzdG9tV2lkZ2V0cygpIHt9XG5cbiAgcHVibGljIG9uU3VydmV5TG9hZCgpIHt9XG4gIHB1YmxpYyBvbkZpcnN0UmVuZGVyaW5nKCkge31cbiAgZW5kTG9hZGluZ0Zyb21Kc29uKCkge1xuICAgIHN1cGVyLmVuZExvYWRpbmdGcm9tSnNvbigpO1xuICAgIGlmICghdGhpcy5zdXJ2ZXkpIHtcbiAgICAgIHRoaXMub25TdXJ2ZXlMb2FkKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBzZXRWaXNpYmxlSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcHVibGljIGdldCBpc1BhZ2UoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBkZWxldGUoKSB7fVxuICBwcm90ZWN0ZWQgcmVtb3ZlU2VsZkZyb21MaXN0KGxpc3Q6IEFycmF5PGFueT4pIHtcbiAgICBpZiAoIWxpc3QgfHwgIUFycmF5LmlzQXJyYXkobGlzdCkpIHJldHVybjtcbiAgICB2YXIgaW5kZXggPSBsaXN0LmluZGV4T2YodGhpcyk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdldCB0ZXh0UHJvY2Vzc29yKCk6IElUZXh0UHJvY2Vzc29yIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0UHJvY2Vzc29yVmFsdWU7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFByb2Nlc3NlZEh0bWwoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWh0bWwgfHwgIXRoaXMudGV4dFByb2Nlc3NvcikgcmV0dXJuIGh0bWw7XG4gICAgcmV0dXJuIHRoaXMudGV4dFByb2Nlc3Nvci5wcm9jZXNzVGV4dChodG1sLCB0cnVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25TZXREYXRhKCkge31cbiAgcHJvdGVjdGVkIGdldFBhZ2UocGFyZW50OiBJUGFuZWwpOiBJUGFnZSB7XG4gICAgd2hpbGUgKHBhcmVudCAmJiBwYXJlbnQucGFyZW50KSBwYXJlbnQgPSBwYXJlbnQucGFyZW50O1xuICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LmdldFR5cGUoKSA9PSBcInBhZ2VcIikgcmV0dXJuIDxJUGFnZT4oPGFueT5wYXJlbnQpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBtb3ZlVG9CYXNlKFxuICAgIHBhcmVudDogSVBhbmVsLFxuICAgIGNvbnRhaW5lcjogSVBhbmVsLFxuICAgIGluc2VydEJlZm9yZTogYW55ID0gbnVsbFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuIGZhbHNlO1xuICAgIHBhcmVudC5yZW1vdmVFbGVtZW50KDxJRWxlbWVudD4oPGFueT50aGlzKSk7XG4gICAgdmFyIGluZGV4ID0gLTE7XG4gICAgaWYgKEhlbHBlcnMuaXNOdW1iZXIoaW5zZXJ0QmVmb3JlKSkge1xuICAgICAgaW5kZXggPSBwYXJzZUludChpbnNlcnRCZWZvcmUpO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPT0gLTEgJiYgISFpbnNlcnRCZWZvcmUgJiYgISFpbnNlcnRCZWZvcmUuZ2V0VHlwZSkge1xuICAgICAgaW5kZXggPSBjb250YWluZXIuaW5kZXhPZihpbnNlcnRCZWZvcmUpO1xuICAgIH1cbiAgICBjb250YWluZXIuYWRkRWxlbWVudCg8SUVsZW1lbnQ+KDxhbnk+dGhpcyksIGluZGV4KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRQYWdlKHBhcmVudDogSVBhbmVsLCB2YWw6IElQYWdlKSB7XG4gICAgdmFyIG9sZFBhZ2UgPSB0aGlzLmdldFBhZ2UocGFyZW50KTtcbiAgICBpZiAob2xkUGFnZSA9PT0gdmFsKSByZXR1cm47XG4gICAgaWYgKHBhcmVudCkgcGFyZW50LnJlbW92ZUVsZW1lbnQoPElFbGVtZW50Pig8YW55PnRoaXMpKTtcbiAgICBpZiAodmFsKSB7XG4gICAgICB2YWwuYWRkRWxlbWVudCg8SUVsZW1lbnQ+KDxhbnk+dGhpcyksIC0xKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgY29weU9iamVjdChkc3Q6IGFueSwgc3JjOiBhbnkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gc3JjKSB7XG4gICAgICB2YXIgc291cmNlID0gc3JjW2tleV07XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBzb3VyY2UgPSB7fTtcbiAgICAgICAgdGhpcy5jb3B5T2JqZWN0KHNvdXJjZSwgc3JjW2tleV0pO1xuICAgICAgfVxuICAgICAgZHN0W2tleV0gPSBzb3VyY2U7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBjb3B5Q3NzQ2xhc3NlcyhkZXN0OiBhbnksIHNvdXJjZTogYW55KSB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybjtcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gXCJzdHJpbmdcIiB8fCBzb3VyY2UgaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgIGRlc3RbXCJyb290XCJdID0gc291cmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBTdXJ2ZXlFbGVtZW50LmNvcHlPYmplY3QoZGVzdCwgc291cmNlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50PFQgZXh0ZW5kcyBGdW5jdGlvbiwgT3B0aW9ucz4ge1xuICBwcm90ZWN0ZWQgY2FsbGJhY2tzOiBBcnJheTxUPjtcbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhbGxiYWNrcyA9PSBudWxsIHx8IHRoaXMuY2FsbGJhY2tzLmxlbmd0aCA9PSAwO1xuICB9XG4gIHB1YmxpYyBmaXJlKHNlbmRlcjogYW55LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuY2FsbGJhY2tzID09IG51bGwpIHJldHVybjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2FsbFJlc3VsdCA9IHRoaXMuY2FsbGJhY2tzW2ldKHNlbmRlciwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLmNhbGxiYWNrcyA9IFtdO1xuICB9XG4gIHB1YmxpYyBhZGQoZnVuYzogVCkge1xuICAgIGlmICh0aGlzLmhhc0Z1bmMoZnVuYykpIHJldHVybjtcbiAgICBpZiAodGhpcy5jYWxsYmFja3MgPT0gbnVsbCkge1xuICAgICAgdGhpcy5jYWxsYmFja3MgPSBuZXcgQXJyYXk8VD4oKTtcbiAgICB9XG4gICAgdGhpcy5jYWxsYmFja3MucHVzaChmdW5jKTtcbiAgfVxuICBwdWJsaWMgcmVtb3ZlKGZ1bmM6IFQpIHtcbiAgICBpZiAodGhpcy5oYXNGdW5jKGZ1bmMpKSB7XG4gICAgICB2YXIgaW5kZXggPSB0aGlzLmNhbGxiYWNrcy5pbmRleE9mKGZ1bmMsIDApO1xuICAgICAgdGhpcy5jYWxsYmFja3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGhhc0Z1bmMoZnVuYzogVCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNhbGxiYWNrcyA9PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuY2FsbGJhY2tzLmluZGV4T2YoZnVuYywgMCkgPiAtMTtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2Jhc2UudHMiLCJpbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb3AsIFdhdGNoIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uVnVlPFQgZXh0ZW5kcyBRdWVzdGlvbj4gZXh0ZW5kcyBWdWUge1xuICBwdWJsaWMgaW5uZXJWYWx1ZTphbnkgPSBudWxsO1xuXG4gIEBQcm9wIHF1ZXN0aW9uOiBUO1xuICAvLyBjc3MgcHJvcCBuZWVkIG9ubHkgZm9yIHBhbmVsLiBXaGVuIHBhbmVsIHdpbGwgaGF2ZSBjc3NDbGFzc2VzIHByb3BlcnR5IHRoaXMgcHJvcCB3aWxsIG5lZWQgdG8gcmVtb3ZlXG4gIEBQcm9wIGNzczogYW55O1xuXG4gIEBXYXRjaChcInF1ZXN0aW9uXCIpXG4gIGNoYW5nZVF1ZXN0aW9uKG5ld192YWw6IFQsIG9sZF92YWw6IFQpIHtcbiAgICB0aGlzLmlubmVyVmFsdWUgPSBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFF1ZXN0aW9uVnVlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Z1ZS9xdWVzdGlvbi50cyIsIi8qKlxuICogR2xvYmFsIHN1cnZleSBzZXR0aW5nc1xuICovXG5leHBvcnQgdmFyIHNldHRpbmdzID0ge1xuICAvKipcbiAgICogVGhlIHByZWZpeCB0aGF0IHVzZXMgdG8gc3RvcmUgdGhlIHF1ZXN0aW9uIGNvbW1lbnQsIGFzIHtxdWVzdGlvbk5hbWV9ICsge2NvbW1lbnRQcmVmaXh9LlxuICAgKiBUaGUgZGVmYXVsdFxuICAgKi9cbiAgY29tbWVudFByZWZpeDogXCItQ29tbWVudFwiLFxuICAvKipcbiAgICogRW5jb2RlIHBhcmFtZXRlciBvbiBjYWxsaW5nIHJlc3RmdWxsIHdlYiBBUElcbiAgICovXG4gIHdlYnNlcnZpY2VFbmNvZGVQYXJhbWV0ZXJzOiB0cnVlLFxuICAvKipcbiAgICogU3VydmV5SlMgd2ViIHNlcnZpY2UgQVBJIHVybFxuICAgKi9cbiAgc3VydmV5U2VydmljZVVybDogXCJodHRwczovL2R4c3VydmV5YXBpLmF6dXJld2Vic2l0ZXMubmV0L2FwaS9TdXJ2ZXlcIixcbiAgLyoqXG4gICAqIHNlcGFyYXRvciB0aGF0IGNhbiBhbGxvdyB0byBzZXQgdmFsdWUgYW5kIHRleHQgb2YgSXRlbVZhbHVlIG9iamVjdCBpbiBvbmUgc3RyaW5nIGFzOiBcInZhbHVlfHRleHRcIlxuICAgKi9cbiAgaXRlbVZhbHVlU2VwYXJhdG9yOiBcInxcIixcbiAgLyoqXG4gICAqIGRlZmF1bHQgbG9jYWxlIG5hbWUgZm9yIGxvY2FsaXphYmxlIHN0cmluZ3MgdGhhdCB1c2VzIGR1cmluZyBzZXJpYWxpemF0aW9uLCB7XCJkZWZhdWx0XCI6IFwiTXkgdGV4dFwiLCBcImRlXCI6IFwiTWVpbiBUZXh0XCJ9XG4gICAqL1xuICBkZWZhdWx0TG9jYWxlTmFtZTogXCJkZWZhdWx0XCIsXG4gIC8qKlxuICAgKiBEZWZhdWx0IHJvdyBuYW1lIGZvciBtYXRyaXggKHNpbmdsZSBjaG9pY2UpXG4gICAqL1xuICBtYXRyaXhEZWZhdWx0Um93TmFtZTogXCJkZWZhdWx0XCIsXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNlbGwgdHlwZSBmb3IgZHJvcGRvd24gYW5kIGR5bmFtaWMgbWF0cmljZXNcbiAgICovXG4gIG1hdHJpeERlZmF1bHRDZWxsVHlwZTogXCJkcm9wZG93blwiLFxuICAvKipcbiAgICogVG90YWwgdmFsdWUgcG9zdGZpeCBmb3IgZHJvcGRvd24gYW5kIGR5bmFtaWMgbWF0cmljZXMuIFRoZSB0b3RhbCB2YWx1ZSBzdG9yZXMgYXM6IHttYXRyaXhOYW1lfSArIHtwb3N0Zml4fVxuICAgKi9cbiAgbWF0cml4VG90YWxWYWx1ZVBvc3RGaXg6IFwiLXRvdGFsXCIsXG4gIC8qKlxuICAgKiBNYXhpbXVtIHJvdyBjb3VudCBpbiBkeW5hbWljIG1hdHJpeFxuICAgKi9cbiAgbWF0cml4TWF4aW11bVJvd0NvdW50OiAxMDAwLFxuICAvKipcbiAgICogTWF4aW11bSBwYW5lbCBjb3VudCBpbiBkeW5hbWljIHBhbmVsXG4gICAqL1xuICBwYW5lbE1heGltdW1QYW5lbENvdW50OiAxMDAsXG4gIC8qKlxuICAgKiBNYXhpbXVtIHJhdGUgdmFsdWUgY291bnQgaW4gcmF0aW5nIHF1ZXN0aW9uXG4gICAqL1xuICByYXRpbmdNYXhpbXVtUmF0ZVZhbHVlQ291bnQ6IDIwLFxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgcXVlc3Rpb24gd2hpbGUgY2hvaWNlcyBhcmUgZ2V0dGluZyBmcm9tIHRoZSB3ZWIgc2VydmljZVxuICAgKi9cbiAgZGlzYWJsZU9uR2V0dGluZ0Nob2ljZXNGcm9tV2ViOiBmYWxzZVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zZXR0aW5ncy50cyIsImltcG9ydCB7IEhhc2hUYWJsZSwgSGVscGVycyB9IGZyb20gXCIuL2hlbHBlcnNcIjtcbmltcG9ydCB7IEpzb25PYmplY3QsIFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQge1xuICBTdXJ2ZXlFcnJvcixcbiAgU3VydmV5RWxlbWVudCxcbiAgSUVsZW1lbnQsXG4gIElRdWVzdGlvbixcbiAgSVBhbmVsLFxuICBJQ29uZGl0aW9uUnVubmVyLFxuICBJU3VydmV5SW1wbCxcbiAgSVBhZ2UsXG4gIEV2ZW50XG59IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuL3N1cnZleVN0cmluZ3NcIjtcbmltcG9ydCB7IEFuc3dlclJlcXVpcmVkRXJyb3IgfSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgU3VydmV5VmFsaWRhdG9yLCBJVmFsaWRhdG9yT3duZXIsIFZhbGlkYXRvclJ1bm5lciB9IGZyb20gXCIuL3ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgVGV4dFByZVByb2Nlc3NvciwgVGV4dFByZVByb2Nlc3NvclZhbHVlIH0gZnJvbSBcIi4vdGV4dFByZVByb2Nlc3NvclwiO1xuaW1wb3J0IHsgSUxvY2FsaXphYmxlT3duZXIsIExvY2FsaXphYmxlU3RyaW5nIH0gZnJvbSBcIi4vbG9jYWxpemFibGVzdHJpbmdcIjtcbmltcG9ydCB7IENvbmRpdGlvblJ1bm5lciB9IGZyb20gXCIuL2NvbmRpdGlvbnNcIjtcbmltcG9ydCB7IFF1ZXN0aW9uQ3VzdG9tV2lkZ2V0IH0gZnJvbSBcIi4vcXVlc3Rpb25DdXN0b21XaWRnZXRzXCI7XG5pbXBvcnQgeyBzdXJ2ZXlDc3MgfSBmcm9tIFwiLi9kZWZhdWx0Q3NzL2Nzc3N0YW5kYXJkXCI7XG5pbXBvcnQgeyBDdXN0b21XaWRnZXRDb2xsZWN0aW9uIH0gZnJvbSBcIi4vcXVlc3Rpb25DdXN0b21XaWRnZXRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmRpdGlvbk9iamVjdCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICBxdWVzdGlvbjogUXVlc3Rpb247XG59XG5cbi8qKlxuICogQSBiYXNlIGNsYXNzIGZvciBhbGwgcXVlc3Rpb25zLlxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb24gZXh0ZW5kcyBTdXJ2ZXlFbGVtZW50XG4gIGltcGxlbWVudHMgSVF1ZXN0aW9uLCBJQ29uZGl0aW9uUnVubmVyLCBJTG9jYWxpemFibGVPd25lciwgSVZhbGlkYXRvck93bmVyIHtcbiAgW2luZGV4OiBzdHJpbmddOiBhbnk7XG4gIHByaXZhdGUgc3RhdGljIFRleHRQcmVwcm9jZXNzb3JWYWx1ZXNNYXAgPSB7XG4gICAgdGl0bGU6IFwicHJvY2Vzc2VkVGl0bGVcIixcbiAgICByZXF1aXJlOiBcInJlcXVpcmVkVGV4dFwiXG4gIH07XG4gIHByaXZhdGUgc3RhdGljIHF1ZXN0aW9uQ291bnRlciA9IDEwMDtcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0UXVlc3Rpb25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInNxX1wiICsgUXVlc3Rpb24ucXVlc3Rpb25Db3VudGVyKys7XG4gIH1cbiAgcHJpdmF0ZSBjb25kaXRpb25SdW5uZXI6IENvbmRpdGlvblJ1bm5lciA9IG51bGw7XG4gIHByaXZhdGUgaXNDdXN0b21XaWRnZXRSZXF1ZXN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBjdXN0b21XaWRnZXRWYWx1ZTogUXVlc3Rpb25DdXN0b21XaWRnZXQ7XG4gIGN1c3RvbVdpZGdldERhdGEgPSB7IGlzTmVlZFJlbmRlcjogdHJ1ZSB9O1xuICBmb2N1c0NhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICBzdXJ2ZXlMb2FkQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSB0ZXh0UHJlUHJvY2Vzc29yOiBUZXh0UHJlUHJvY2Vzc29yO1xuICBwcml2YXRlIGNvbmRpdGlvbkVuYWJlbFJ1bm5lcjogQ29uZGl0aW9uUnVubmVyO1xuICBwcml2YXRlIGNvbmRpdGlvblJlcXVpcmVkUnVubmVyOiBDb25kaXRpb25SdW5uZXI7XG4gIHZhbHVlQ2hhbmdlZENhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICBjb21tZW50Q2hhbmdlZENhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICB2YWxpZGF0ZVZhbHVlQ2FsbGJhY2s6ICgpID0+IFN1cnZleUVycm9yO1xuICBxdWVzdGlvblRpdGxlVGVtcGxhdGVDYWxsYmFjazogKCkgPT4gc3RyaW5nO1xuICBwcml2YXRlIGxvY1Byb2Nlc3NlZFRpdGxlOiBMb2NhbGl6YWJsZVN0cmluZztcbiAgcHJvdGVjdGVkIGlzUmVhZHlWYWx1ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCB3aGVuIGlzUmVhZHkgcHJvcGVydHkgb2YgcXVlc3Rpb24gaXMgY2hhbmdlZC5cbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiAtIHRoZSBxdWVzdGlvblxuICAgKiA8YnIvPiBvcHRpb25zLmlzUmVhZHkgLSBjdXJyZW50IHZhbHVlIG9mIGlzUmVhZHlcbiAgICogPGJyLz4gb3B0aW9ucy5vbGRJc1JlYWR5IC0gb2xkIHZhbHVlIG9mIGlzUmVhZHlcbiAgICovXG4gIHB1YmxpYyBvblJlYWR5Q2hhbmdlZDogRXZlbnQ8XG4gICAgKHNlbmRlcjogUXVlc3Rpb24sIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFF1ZXN0aW9uLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB0aGlzLmlkID0gUXVlc3Rpb24uZ2V0UXVlc3Rpb25JZCgpO1xuICAgIHRoaXMub25DcmVhdGluZygpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmNyZWF0ZU5ld0FycmF5KFwidmFsaWRhdG9yc1wiLCBmdW5jdGlvbih2YWxpZGF0b3I6IGFueSkge1xuICAgICAgdmFsaWRhdG9yLmVycm9yT3duZXIgPSBzZWxmO1xuICAgIH0pO1xuICAgIHZhciBsb2NUaXRsZVZhbHVlID0gdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInRpdGxlXCIsIHRoaXMsIHRydWUpO1xuICAgIGxvY1RpdGxlVmFsdWUub25HZXRUZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbih0ZXh0KSB7XG4gICAgICB2YXIgcmVzID0gc2VsZi5jYWxjRnVsbFRpdGxlKHRleHQpO1xuICAgICAgaWYgKCFzZWxmLnN1cnZleSkgcmV0dXJuIHJlcztcbiAgICAgIHJldHVybiBzZWxmLnN1cnZleS5nZXRVcGRhdGVkUXVlc3Rpb25UaXRsZSh0aGlzLCByZXMpO1xuICAgIH07XG4gICAgdGhpcy5sb2NQcm9jZXNzZWRUaXRsZSA9IG5ldyBMb2NhbGl6YWJsZVN0cmluZyh0aGlzLCB0cnVlKTtcbiAgICB0aGlzLmxvY1Byb2Nlc3NlZFRpdGxlLnNoYXJlZERhdGEgPSBsb2NUaXRsZVZhbHVlO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJkZXNjcmlwdGlvblwiLCB0aGlzLCB0cnVlKTtcbiAgICB2YXIgbG9jQ29tbWVudFRleHQgPSB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFxuICAgICAgXCJjb21tZW50VGV4dFwiLFxuICAgICAgdGhpcyxcbiAgICAgIHRydWVcbiAgICApO1xuICAgIGxvY0NvbW1lbnRUZXh0Lm9uR2V0VGV4dENhbGxiYWNrID0gZnVuY3Rpb24odGV4dCkge1xuICAgICAgcmV0dXJuICEhdGV4dCA/IHRleHQgOiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwib3RoZXJJdGVtVGV4dFwiKTtcbiAgICB9O1xuXG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInJlcXVpcmVkRXJyb3JUZXh0XCIsIHRoaXMpO1xuICAgIHRoaXMucmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXCJ3aWR0aFwiLCBmdW5jdGlvbigpIHtcbiAgICAgIGlmICghIXNlbGYucGFyZW50KSB7XG4gICAgICAgIHNlbGYucGFyZW50LmVsZW1lbnRXaWR0aENoYW5nZWQoc2VsZik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0aWVzVmFsdWVDaGFuZ2VkKFxuICAgICAgW1wiaW5kZW50XCIsIFwicmlnaHRJbmRlbnRcIl0sXG4gICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5vbkluZGVudENoYW5nZWQoKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0aWVzVmFsdWVDaGFuZ2VkKFxuICAgICAgW1wiaGFzQ29tbWVudFwiLCBcImhhc090aGVyXCJdLFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYuaW5pdENvbW1lbnRGcm9tU3VydmV5KCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0VmFsdWVOYW1lKCk6IHN0cmluZyB7XG4gICAgaWYgKCEhdGhpcy52YWx1ZU5hbWUpIHJldHVybiB0aGlzLnZhbHVlTmFtZS50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IGlmIHlvdSB3YW50IHRvIHN0b3JlIHRoZSBxdWVzdGlvbiByZXN1bHQgaW4gdGhlIG5hbWUgZGlmZmVyZW50IGZyb20gdGhlIHF1ZXN0aW9uIG5hbWUuXG4gICAqIFF1ZXN0aW9uIG5hbWUgc2hvdWxkIGJlIHVuaXF1ZSBpbiB0aGUgc3VydmV5IGFuZCB2YWx1ZU5hbWUgY291bGQgYmUgbm90IHVuaXF1ZS4gSXQgYWxsb3dzIHRvIHNoYXJlIGRhdGEgYmV0d2VlbiBzZXZlcmFsIHF1ZXN0aW9ucyB3aXRoIHRoZSBzYW1lIHZhbHVlTmFtZS5cbiAgICogVGhlIGxpYnJhcnkgc2V0IHRoZSB2YWx1ZSBhdXRvbWF0aWNhbGx5IGlmIHRoZSBxdWVzdGlvbi5uYW1lIHByb3BlcnR5IGlzIG5vdCB2YWxpZC4gRm9yIGV4YW1wbGUsIGlmIGl0IGNvbnRhaW5zIHRoZSBwZXJpb2QgJy4nIHN5bWJvbC5cbiAgICogSW4gdGhpcyBjYXNlIGlmIHlvdSBzZXQgdGhlIHF1ZXN0aW9uLm5hbWUgcHJvcGVydHkgdG8gJ3gueScgdGhlbiB0aGUgdmFsdWVOYW1lIGJlY29tZXMgJ3ggeScuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbHVlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ2YWx1ZU5hbWVcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZU5hbWUodmFsOiBzdHJpbmcpIHtcbiAgICB2YXIgb2xkVmFsdWVOYW1lID0gdGhpcy5nZXRWYWx1ZU5hbWUoKTtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJ2YWx1ZU5hbWVcIiwgdmFsKTtcbiAgICB0aGlzLm9uVmFsdWVOYW1lQ2hhbmdlZChvbGRWYWx1ZU5hbWUpO1xuICB9XG4gIHByb3RlY3RlZCBvblZhbHVlTmFtZUNoYW5nZWQob2xkVmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zdXJ2ZXkpIHJldHVybjtcbiAgICB0aGlzLnN1cnZleS5xdWVzdGlvblJlbmFtZWQoXG4gICAgICB0aGlzLFxuICAgICAgdGhpcy5uYW1lLFxuICAgICAgISFvbGRWYWx1ZSA/IG9sZFZhbHVlIDogdGhpcy5uYW1lXG4gICAgKTtcbiAgICB0aGlzLmluaXREYXRhRnJvbVN1cnZleSgpO1xuICB9XG4gIHByb3RlY3RlZCBvbk5hbWVDaGFuZ2VkKG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuc3VydmV5KSByZXR1cm47XG4gICAgdGhpcy5zdXJ2ZXkucXVlc3Rpb25SZW5hbWVkKFxuICAgICAgdGhpcyxcbiAgICAgIG9sZFZhbHVlLFxuICAgICAgdGhpcy52YWx1ZU5hbWUgPyB0aGlzLnZhbHVlTmFtZSA6IG9sZFZhbHVlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZWFkeVZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBHZXQgaXMgcXVlc3Rpb24gcmVhZHkgdG8gdXNlXG4gICAqL1xuICBwdWJsaWMgY2hvaWNlc0xvYWRlZCgpOiB2b2lkIHt9XG4gIC8qKlxuICAgKiBHZXQvc2V0IHRoZSBwYWdlIHdoZXJlIHRoZSBxdWVzdGlvbiBpcyBsb2NhdGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlKCk6IElQYWdlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlKHRoaXMucGFyZW50KTtcbiAgfVxuICBwdWJsaWMgc2V0IHBhZ2UodmFsOiBJUGFnZSkge1xuICAgIHRoaXMuc2V0UGFnZSh0aGlzLnBhcmVudCwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogQWx3YXlzIHJldHVybnMgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzUGFuZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBnZXRQYW5lbCgpOiBJUGFuZWwge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBkZWxldGUoKSB7XG4gICAgaWYgKCEhdGhpcy5wYXJlbnQpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZkZyb21MaXN0KHRoaXMucGFyZW50LmVsZW1lbnRzKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBpc0Zsb3dMYXlvdXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGF5b3V0VHlwZSgpID09PSBcImZsb3dcIjtcbiAgfVxuICBwdWJsaWMgZ2V0TGF5b3V0VHlwZSgpOiBzdHJpbmcge1xuICAgIGlmICghIXRoaXMucGFyZW50KSByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0Q2hpbGRyZW5MYXlvdXRUeXBlKCk7XG4gICAgcmV0dXJuIFwicm93XCI7XG4gIH1cbiAgaXNMYXlvdXRUeXBlU3VwcG9ydGVkKGxheW91dFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBsYXlvdXRUeXBlICE9PSBcImZsb3dcIjtcbiAgfVxuICAvKipcbiAgICogVXNlIGl0IHRvIGdldC9zZXQgdGhlIHF1ZXN0aW9uIHZpc2liaWxpdHkuXG4gICAqIEBzZWUgdmlzaWJsZUlmXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInZpc2libGVcIiwgdHJ1ZSk7XG4gIH1cbiAgcHVibGljIHNldCB2aXNpYmxlKHZhbDogYm9vbGVhbikge1xuICAgIGlmICh2YWwgPT0gdGhpcy52aXNpYmxlKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJsZVwiLCB2YWwpO1xuICAgIHRoaXMub25WaXNpYmxlQ2hhbmdlZCgpO1xuICAgIGlmICh0aGlzLnN1cnZleSkge1xuICAgICAgdGhpcy5zdXJ2ZXkucXVlc3Rpb25WaXNpYmlsaXR5Q2hhbmdlZCg8SVF1ZXN0aW9uPnRoaXMsIHRoaXMudmlzaWJsZSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBvblZpc2libGVDaGFuZ2VkKCkge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlzVmlzaWJsZVwiLCB0aGlzLmlzVmlzaWJsZSk7XG4gICAgaWYgKCF0aGlzLmlzVmlzaWJsZSAmJiB0aGlzLmVycm9ycyAmJiB0aGlzLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogVXNlIGl0IHRvIGNob29zZSBob3cgb3RoZXIgcXVlc3Rpb24gdmFsdWVzIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGl0bGUgaWYgcmVmZXJlbmNlZCBpbiB7fS5cbiAgICovXG4gIHB1YmxpYyBnZXQgdXNlRGlzcGxheVZhbHVlc0luVGl0bGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInVzZURpc3BsYXlWYWx1ZXNJblRpdGxlXCIsIHRydWUpO1xuICB9XG4gIHB1YmxpYyBzZXQgdXNlRGlzcGxheVZhbHVlc0luVGl0bGUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwidXNlRGlzcGxheVZhbHVlc0luVGl0bGVcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogQW4gZXhwcmVzc2lvbiB0aGF0IHJldHVybnMgdHJ1ZSBvciBmYWxzZS4gSWYgaXQgcmV0dXJucyB0cnVlIHRoZSBRdWVzdGlvbiBiZWNvbWVzIHZpc2libGUgYW5kIGlmIGl0IHJldHVybnMgZmFsc2UgdGhlIFF1ZXN0aW9uIGJlY29tZXMgaW52aXNpYmxlLiBUaGUgbGlicmFyeSBydW5zIHRoZSBleHByZXNzaW9uIG9uIHN1cnZleSBzdGFydCBhbmQgb24gY2hhbmdpbmcgYSBxdWVzdGlvbiB2YWx1ZS4gSWYgdGhlIHByb3BlcnR5IGlzIGVtcHR5IHRoZW4gdmlzaWJsZSBwcm9wZXJ0eSBpcyB1c2VkLlxuICAgKiBAc2VlIHZpc2libGVcbiAgICovXG4gIHB1YmxpYyBnZXQgdmlzaWJsZUlmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInZpc2libGVJZlwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZpc2libGVJZih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInZpc2libGVJZlwiLCB2YWwpO1xuICAgIHRoaXMucnVuQ29uZGl0aW9ucygpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXN0aW9uIGlzIHZpc2libGUgb3Igc3VydmV5IGlzIGluIGRlc2lnbiBtb2RlIHJpZ2h0IG5vdy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGUgfHwgdGhpcy5hcmVJbnZpc2libGVFbGVtZW50c1Nob3dpbmc7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZpc2libGUgaW5kZXggb2YgdGhlIHF1ZXN0aW9uIGluIHRoZSBzdXJ2ZXkuIEl0IGNhbiBiZSBmcm9tIDAgdG8gYWxsIHZpc2libGUgcXVlc3Rpb25zIGNvdW50IC0gMVxuICAgKi9cbiAgcHVibGljIGdldCB2aXNpYmxlSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJsZUluZGV4XCIsIC0xKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBxdWVzdGlvbiBtYXkgaGF2ZSBhIHRpdGxlIGxvY2F0ZWQgb24gdGhlIGxlZnRcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNBbGxvd1RpdGxlTGVmdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0IGFzIGEgc3RyaW5nIGFzIGl0IHJlcHJlc2VudHMgaW4gdGhlIGpzb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInF1ZXN0aW9uXCI7XG4gIH1cbiAgLyoqXG4gICAqIE1vdmUgcXVlc3Rpb24gdG8gYSBuZXcgY29udGFpbmVyIFBhZ2UvUGFuZWwuIEFkZCBhcyBhIGxhc3QgZWxlbWVudCBpZiBpbnNlcnRCZWZvcmUgcGFyYW1ldGVyIGlzIG5vdCB1c2VkIG9yIGluc2VydGVkIGludG8gdGhlIGdpdmVuIGluZGV4LFxuICAgKiBpZiBpbnNlcnQgcGFyYW1ldGVyIGlzIG51bWJlciwgb3IgYmVmb3JlIHRoZSBnaXZlbiBlbGVtZW50LCBpZiB0aGUgaW5zZXJ0QmVmb3JlIHBhcmFtZXRlciBpcyBhIHF1ZXN0aW9uIG9yIHBhbmVsXG4gICAqIEBwYXJhbSBjb250YWluZXIgUGFnZSBvciBQYW5lbCB0byB3aGVyZSBhIHF1ZXN0aW9uIGlzIHJlbG9jYXRlZC5cbiAgICogQHBhcmFtIGluc2VydEJlZm9yZSBVc2UgaXQgaWYgeW91IHdhbnQgdG8gc2V0IHRoZSBxdWVzdGlvbiB0byBhIHNwZWNpZmljIHBvc2l0aW9uLiBZb3UgbWF5IHVzZSBhIG51bWJlciAodXNlIDAgdG8gaW5zZXJ0IGludCB0aGUgYmVnaW5uaW5nKSBvciBlbGVtZW50LCBpZiB5b3Ugd2FudCB0byBpbnNlcnQgYmVmb3JlIHRoaXMgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBtb3ZlVG8oY29udGFpbmVyOiBJUGFuZWwsIGluc2VydEJlZm9yZTogYW55ID0gbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vdmVUb0Jhc2UodGhpcy5wYXJlbnQsIGNvbnRhaW5lciwgaW5zZXJ0QmVmb3JlKTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuQ29uZGl0aW9ucygpIHtcbiAgICBpZiAodGhpcy5kYXRhICYmICF0aGlzLmlzTG9hZGluZ0Zyb21Kc29uICYmICF0aGlzLmlzRGVzaWduTW9kZSkge1xuICAgICAgdGhpcy5ydW5Db25kaXRpb24oXG4gICAgICAgIHRoaXMuZ2V0RGF0YUZpbHRlcmVkVmFsdWVzKCksXG4gICAgICAgIHRoaXMuZ2V0RGF0YUZpbHRlcmVkUHJvcGVydGllcygpXG4gICAgICApO1xuICAgICAgdGhpcy5sb2NTdHJzQ2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgc2V0U3VydmV5SW1wbCh2YWx1ZTogSVN1cnZleUltcGwpIHtcbiAgICBzdXBlci5zZXRTdXJ2ZXlJbXBsKHZhbHVlKTtcbiAgICBpZiAodGhpcy5zdXJ2ZXkgJiYgdGhpcy5zdXJ2ZXkuaXNEZXNpZ25Nb2RlICYmICF0aGlzLmlzRGVzaWduTW9kZSkge1xuICAgICAgdGhpcy5vblZpc2libGVDaGFuZ2VkKCk7XG4gICAgfVxuICAgIHRoaXMucnVuQ29uZGl0aW9ucygpO1xuICB9XG4gIHB1YmxpYyBnZXREYXRhRmlsdGVyZWRWYWx1ZXMoKTogYW55IHtcbiAgICByZXR1cm4gISF0aGlzLmRhdGEgPyB0aGlzLmRhdGEuZ2V0RmlsdGVyZWRWYWx1ZXMoKSA6IG51bGw7XG4gIH1cbiAgcHVibGljIGdldERhdGFGaWx0ZXJlZFByb3BlcnRpZXMoKTogYW55IHtcbiAgICByZXR1cm4gISF0aGlzLmRhdGEgPyB0aGlzLmRhdGEuZ2V0RmlsdGVyZWRQcm9wZXJ0aWVzKCkgOiBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBBIHBhcmVudCBlbGVtZW50LiBJdCBjYW4gYmUgcGFuZWwgb3IgcGFnZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGFyZW50KCk6IElQYW5lbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhcmVudFwiLCBudWxsKTtcbiAgfVxuICBwdWJsaWMgc2V0IHBhcmVudCh2YWw6IElQYW5lbCkge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInBhcmVudFwiLCB2YWwpO1xuICAgIHRoaXMub25QYXJlbnRDaGFuZ2VkKCk7XG4gIH1cbiAgcHJvdGVjdGVkIG9uUGFyZW50Q2hhbmdlZCgpIHt9XG4gIC8qKlxuICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBxdWVzdGlvbiBkb2Vzbid0IGhhdmUgYSB0aXRsZSBwcm9wZXJ0eSwgZm9yIGV4YW1wbGU6IFF1ZXN0aW9uSHRtbE1vZGVsLCBvciB0aXRsZUxvY2F0aW9uIHByb3BlcnR5IGVxdWFscyB0byBcImhpZGRlblwiXG4gICAqIEBzZWUgdGl0bGVMb2NhdGlvblxuICAgKi9cbiAgcHVibGljIGdldCBoYXNUaXRsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUaXRsZUxvY2F0aW9uKCkgIT09IFwiaGlkZGVuXCI7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IGRpZmZlcmVudCBmcm9tIFwiZGVmYXVsdFwiIHRvIHNldCB0aGUgc3BlY2lmaWMgcXVlc3Rpb24gdGl0bGUgbG9jYXRpb24gZm9yIHRoaXMgcGFuZWwvcGFnZS5cbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC5xdWVzdGlvblRpdGxlTG9jYXRpb25cbiAgICovXG4gIHB1YmxpYyBnZXQgdGl0bGVMb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ0aXRsZUxvY2F0aW9uXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgdGl0bGVMb2NhdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdmFyIGlzVmlzaWJpbGl0eUNoYW5nZWQgPVxuICAgICAgdGhpcy50aXRsZUxvY2F0aW9uID09IFwiaGlkZGVuXCIgfHwgdmFsdWUgPT0gXCJoaWRkZW5cIjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJ0aXRsZUxvY2F0aW9uXCIsIHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmIChpc1Zpc2liaWxpdHlDaGFuZ2VkICYmIHRoaXMuc3VydmV5KSB7XG4gICAgICB0aGlzLnN1cnZleS5xdWVzdGlvblZpc2liaWxpdHlDaGFuZ2VkKHRoaXMsIHRoaXMudmlzaWJsZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHRpdGxlIGxvY2F0aW9uIGJhc2VkIG9uIHF1ZXN0aW9uIHRpdGxlTG9jYXRpb24gcHJvcGVydHkgYW5kIFF1ZXN0aW9uVGl0bGVMb2NhdGlvbiBvZiBpdCdzIHBhcmVudHNcbiAgICogQHNlZSB0aXRsZUxvY2F0aW9uXG4gICAqIEBzZWUgUGFuZWxNb2RlbEJhc2UuUXVlc3Rpb25UaXRsZUxvY2F0aW9uXG4gICAqIEBzZWUgU3VydmV5TW9kZWwuUXVlc3Rpb25UaXRsZUxvY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0VGl0bGVMb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzRmxvd0xheW91dCkgcmV0dXJuIFwiaGlkZGVuXCI7XG4gICAgdmFyIGxvY2F0aW9uID0gdGhpcy5nZXRUaXRsZUxvY2F0aW9uQ29yZSgpO1xuICAgIGlmIChsb2NhdGlvbiA9PT0gXCJsZWZ0XCIgJiYgIXRoaXMuaXNBbGxvd1RpdGxlTGVmdCkgbG9jYXRpb24gPSBcInRvcFwiO1xuICAgIHJldHVybiBsb2NhdGlvbjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0VGl0bGVMb2NhdGlvbkNvcmUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy50aXRsZUxvY2F0aW9uICE9PSBcImRlZmF1bHRcIikgcmV0dXJuIHRoaXMudGl0bGVMb2NhdGlvbjtcbiAgICBpZiAoISF0aGlzLnBhcmVudCkgcmV0dXJuIHRoaXMucGFyZW50LmdldFF1ZXN0aW9uVGl0bGVMb2NhdGlvbigpO1xuICAgIGlmICghIXRoaXMuc3VydmV5KSByZXR1cm4gdGhpcy5zdXJ2ZXkucXVlc3Rpb25UaXRsZUxvY2F0aW9uO1xuICAgIHJldHVybiBcInRvcFwiO1xuICB9XG4gIGdldCBoYXNUaXRsZU9uTGVmdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNUaXRsZSAmJiB0aGlzLmdldFRpdGxlTG9jYXRpb24oKSA9PT0gXCJsZWZ0XCI7XG4gIH1cbiAgZ2V0IGhhc1RpdGxlT25Ub3AoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzVGl0bGUgJiYgdGhpcy5nZXRUaXRsZUxvY2F0aW9uKCkgPT09IFwidG9wXCI7XG4gIH1cbiAgZ2V0IGhhc1RpdGxlT25Cb3R0b20oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzVGl0bGUgJiYgdGhpcy5nZXRUaXRsZUxvY2F0aW9uKCkgPT09IFwiYm90dG9tXCI7XG4gIH1cbiAgZ2V0IGhhc1RpdGxlT25MZWZ0VG9wKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5oYXNUaXRsZSkgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBsb2NhdGlvbiA9IHRoaXMuZ2V0VGl0bGVMb2NhdGlvbigpO1xuICAgIHJldHVybiBsb2NhdGlvbiA9PT0gXCJsZWZ0XCIgfHwgbG9jYXRpb24gPT09IFwidG9wXCI7XG4gIH1cbiAgcHVibGljIGdldCBlcnJvckxvY2F0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5ID8gdGhpcy5zdXJ2ZXkucXVlc3Rpb25FcnJvckxvY2F0aW9uIDogXCJ0b3BcIjtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgcXVlc3Rpb24gZG9lc24ndCBoYXZlIGFuIGlucHV0IGVsZW1lbnQsIGZvciBleGFtcGxlOiBRdWVzdGlvbkh0bWxNb2RlbFxuICAgKi9cbiAgcHVibGljIGdldCBoYXNJbnB1dCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCArIFwiaVwiO1xuICB9XG4gIC8qKlxuICAgKiBRdWVzdGlvbiB0aXRsZS4gVXNlIHN1cnZleSBxdWVzdGlvblRpdGxlVGVtcGxhdGUgcHJvcGVydHkgdG8gY2hhbmdlIHRoZSB0aXRsZSBxdWVzdGlvbiBpcyByZW5kZXJlZC4gSWYgaXQgaXMgZW1wdHksIHRoZW4gcXVlc3Rpb24gbmFtZSBwcm9wZXJ0eSBpcyB1c2VkLlxuICAgKiBAc2VlIFN1cnZleU1vZGVsLnF1ZXN0aW9uVGl0bGVUZW1wbGF0ZVxuICAgKi9cbiAgcHVibGljIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInRpdGxlXCIsIHRoaXMubmFtZSk7XG4gIH1cbiAgcHVibGljIHNldCB0aXRsZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwidGl0bGVcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jVGl0bGUoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwidGl0bGVcIik7XG4gIH1cbiAgLyoqXG4gICAqIFF1ZXN0aW9uIGRlc2NyaXB0aW9uLiBJdCByZW5kZXJzIHVuZGVyIHF1ZXN0aW9uIHRpdGxlIGJ5IHVzaW5nIHNtYWxsZXIgZm9udC4gVW5saWtlIHRoZSB0aXRsZSwgZGVzY3JpcHRpb24gY2FuIGJlIGVtcHR5LlxuICAgKiBAc2VlIHRpdGxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwiZGVzY3JpcHRpb25cIik7XG4gIH1cbiAgcHVibGljIHNldCBkZXNjcmlwdGlvbih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwiZGVzY3JpcHRpb25cIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jRGVzY3JpcHRpb24oKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwiZGVzY3JpcHRpb25cIik7XG4gIH1cbiAgLyoqXG4gICAqIFF1ZXN0aW9uIGRlc2NyaXB0aW9uIGxvY2F0aW9uLiBCeSBkZWZhdWx0LCB2YWx1ZSBpcyBcImRlZmF1bHRcIiBhbmQgaXQgZGVwZW5kcyBvbiBzdXJ2ZXkgcXVlc3Rpb25EZXNjcmlwdGlvbkxvY2F0aW9uIHByb3BlcnR5XG4gICAqIFlvdSBtYXkgY2hhbmdlIGl0IHRvIFwidW5kZXJJbnB1dFwiIHRvIHJlbmRlciBpdCB1bmRlciBxdWVzdGlvbiBpbnB1dCBvciBcInVuZGVyVGl0bGVcIiB0byByZW5kZXJlZCBpdCB1bmRlciB0aXRsZS5cbiAgICogQHNlZSBkZXNjcmlwdGlvblxuICAgKiBAc2VlIFN1cnZleS5xdWVzdGlvbkRlc2NyaXB0aW9uTG9jYXRpb25cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb25Mb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJkZXNjcmlwdGlvbkxvY2F0aW9uXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVzY3JpcHRpb25Mb2NhdGlvbih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImRlc2NyaXB0aW9uTG9jYXRpb25cIiwgdmFsKTtcbiAgfVxuICBnZXQgaGFzRGVzY3JpcHRpb25VbmRlclRpdGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldERlc2NyaXB0aW9uTG9jYXRpb24oKSA9PSBcInVuZGVyVGl0bGVcIjtcbiAgfVxuICBnZXQgaGFzRGVzY3JpcHRpb25VbmRlcklucHV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldERlc2NyaXB0aW9uTG9jYXRpb24oKSA9PSBcInVuZGVySW5wdXRcIjtcbiAgfVxuICBwcml2YXRlIGdldERlc2NyaXB0aW9uTG9jYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuZGVzY3JpcHRpb25Mb2NhdGlvbiAhPT0gXCJkZWZhdWx0XCIpIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uTG9jYXRpb247XG4gICAgcmV0dXJuICEhdGhpcy5zdXJ2ZXlcbiAgICAgID8gdGhpcy5zdXJ2ZXkucXVlc3Rpb25EZXNjcmlwdGlvbkxvY2F0aW9uXG4gICAgICA6IFwidW5kZXJUaXRsZVwiO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIHRleHQgdGhhdCB3aWxsIGJlIHNob3duIG9uIHJlcXVpcmVkIGVycm9yLiBVc2UgdGhpcyBwcm9wZXJ0eSwgaWYgeW91IGRvIG5vdCB3YW50IHRvIHNob3cgdGhlIGRlZmF1bHQgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRFcnJvclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJyZXF1aXJlZEVycm9yVGV4dFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkRXJyb3JUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJyZXF1aXJlZEVycm9yVGV4dFwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NSZXF1aXJlZEVycm9yVGV4dCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJyZXF1aXJlZEVycm9yVGV4dFwiKTtcbiAgfVxuICAvKipcbiAgICogVXNlIGl0IHRvIGdldCBvciBzZXQgdGhlIGNvbW1lbnQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbW1lbnRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJjb21tZW50VGV4dFwiLFxuICAgICAgc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm90aGVySXRlbVRleHRcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgY29tbWVudFRleHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImNvbW1lbnRUZXh0XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY0NvbW1lbnRUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcImNvbW1lbnRUZXh0XCIpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiBxdWVzdGlvbiBlcnJvcnMgc3VydmV5LiBGb3Igc29tZSBxdWVzdGlvbnMgbGlrZSBtYXRyaXggYW5kIHBhbmVsIGR5bmFtaWMgaXQgaW5jbHVkZXMgdGhlIGVycm9ycyBvZiBuZXN0ZWQgcXVlc3Rpb25zLlxuICAgKi9cbiAgcHVibGljIGdldEFsbEVycm9ycygpOiBBcnJheTxTdXJ2ZXlFcnJvcj4ge1xuICAgIHJldHVybiB0aGlzLmVycm9ycy5zbGljZSgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbGluayB0byB0aGUgY3VzdG9tIHdpZGdldC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VzdG9tV2lkZ2V0KCk6IFF1ZXN0aW9uQ3VzdG9tV2lkZ2V0IHtcbiAgICBpZiAoIXRoaXMuaXNDdXN0b21XaWRnZXRSZXF1ZXN0ZWQgJiYgIXRoaXMuY3VzdG9tV2lkZ2V0VmFsdWUpIHtcbiAgICAgIHRoaXMuaXNDdXN0b21XaWRnZXRSZXF1ZXN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy51cGRhdGVDdXN0b21XaWRnZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tV2lkZ2V0VmFsdWU7XG4gIH1cbiAgcHVibGljIHVwZGF0ZUN1c3RvbVdpZGdldCgpIHtcbiAgICB0aGlzLmN1c3RvbVdpZGdldFZhbHVlID0gQ3VzdG9tV2lkZ2V0Q29sbGVjdGlvbi5JbnN0YW5jZS5nZXRDdXN0b21XaWRnZXQoXG4gICAgICB0aGlzXG4gICAgKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVuZHJlZCBxdWVzdGlvbiB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvY2Vzc2VkVGl0bGUoKSB7XG4gICAgdmFyIHJlcyA9IHRoaXMubG9jUHJvY2Vzc2VkVGl0bGUudGV4dE9ySHRtbDtcbiAgICByZXR1cm4gcmVzID8gcmVzIDogdGhpcy5uYW1lO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB0aXRsZSBhZnRlciBwcm9jZXNzaW5nIHRoZSBxdWVzdGlvbiB0ZW1wbGF0ZS5cbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC5xdWVzdGlvblRpdGxlVGVtcGxhdGVcbiAgICovXG4gIHB1YmxpYyBnZXQgZnVsbFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jVGl0bGUucmVuZGVyZWRIdG1sO1xuICAgIC8qXG4gICAgdmFyIHJlcyA9IHRoaXMuY2FsY0Z1bGxUaXRsZSgpO1xuICAgIGlmICghdGhpcy5zdXJ2ZXkpIHJldHVybiByZXM7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5LmdldFVwZGF0ZWRRdWVzdGlvblRpdGxlKHRoaXMsIHJlcyk7XG4gICAgKi9cbiAgfVxuICBwdWJsaWMgZ2V0UXVlc3Rpb25UaXRsZVRlbXBsYXRlKCkge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uVGl0bGVUZW1wbGF0ZUNhbGxiYWNrKVxuICAgICAgcmV0dXJuIHRoaXMucXVlc3Rpb25UaXRsZVRlbXBsYXRlQ2FsbGJhY2soKTtcbiAgICByZXR1cm4gISF0aGlzLnN1cnZleSA/IHRoaXMuc3VydmV5LmdldFF1ZXN0aW9uVGl0bGVUZW1wbGF0ZSgpIDogbnVsbDtcbiAgfVxuICBwcml2YXRlIGNhbGNGdWxsVGl0bGUodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YXIgdGl0bGVUZW1wbGF0ZSA9IHRoaXMuZ2V0UXVlc3Rpb25UaXRsZVRlbXBsYXRlKCk7XG4gICAgaWYgKHRpdGxlVGVtcGxhdGUpIHtcbiAgICAgIGlmICghdGhpcy50ZXh0UHJlUHJvY2Vzc29yKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgICAgdGhpcy50ZXh0UHJlUHJvY2Vzc29yID0gbmV3IFRleHRQcmVQcm9jZXNzb3IoKTtcbiAgICAgICAgdGhpcy50ZXh0UHJlUHJvY2Vzc29yLm9uUHJvY2VzcyA9IGZ1bmN0aW9uKFxuICAgICAgICAgIHRleHRWYWx1ZTogVGV4dFByZVByb2Nlc3NvclZhbHVlXG4gICAgICAgICkge1xuICAgICAgICAgIHNlbGYuZ2V0UHJvY2Vzc2VkVGV4dFZhbHVlKHRleHRWYWx1ZSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy50ZXh0UHJlUHJvY2Vzc29yLnByb2Nlc3MoXG4gICAgICAgIHRpdGxlVGVtcGxhdGUsXG4gICAgICAgIHRoaXMudXNlRGlzcGxheVZhbHVlc0luVGl0bGVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghdGV4dCkge1xuICAgICAgdGV4dCA9IHRoaXMubmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBRdWVzdGlvbiByZW5kZXJzIG9uIHRoZSBuZXcgbGluZSBpZiB0aGUgcHJvcGVydHkgaXMgdHJ1ZS4gSWYgdGhlIHByb3BlcnR5IGlzIGZhbHNlLCB0aGUgcXVlc3Rpb24gdHJpZXMgdG8gcmVuZGVyIG9uIHRoZSBzYW1lIGxpbmUvcm93IHdpdGggYSBwcmV2aW91cyBxdWVzdGlvbi9wYW5lbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhcnRXaXRoTmV3TGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic3RhcnRXaXRoTmV3TGluZVwiLCB0cnVlKTtcbiAgfVxuICBwdWJsaWMgc2V0IHN0YXJ0V2l0aE5ld0xpbmUodmFsOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuc3RhcnRXaXRoTmV3TGluZSA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzdGFydFdpdGhOZXdMaW5lXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGNzcyBjbGFzc2VzIHRoYXQgdXNlZCBmb3IgcmVuZGVyaW5nIHRoZSBxdWVzdGlvbi4gWW91IG1heSB1c2Ugc3VydmV5LnVwZGF0ZVF1ZXN0aW9uQ3NzQ2xhc3NlcyBldmVudCB0byBvdmVycmlkZSBjc3MgY2xhc3NlcyBmb3IgYSBxdWVzdGlvbi5cbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC51cGRhdGVRdWVzdGlvbkNzc0NsYXNzZXNcbiAgICovXG4gIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBhbnkge1xuICAgIHZhciBzdXJ2ZXlDc3MgPSB0aGlzLmNzcztcbiAgICB2YXIgY2xhc3NlcyA9IHsgZXJyb3I6IHt9IH07XG4gICAgdGhpcy5jb3B5Q3NzQ2xhc3NlcyhjbGFzc2VzLCBzdXJ2ZXlDc3MucXVlc3Rpb24pO1xuICAgIHRoaXMuY29weUNzc0NsYXNzZXMoY2xhc3Nlcy5lcnJvciwgc3VydmV5Q3NzLmVycm9yKTtcbiAgICB0aGlzLnVwZGF0ZUNzc0NsYXNzZXMoY2xhc3Nlcywgc3VydmV5Q3NzKTtcbiAgICBpZiAodGhpcy5zdXJ2ZXkpIHtcbiAgICAgIHRoaXMuc3VydmV5LnVwZGF0ZVF1ZXN0aW9uQ3NzQ2xhc3Nlcyh0aGlzLCBjbGFzc2VzKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cbiAgcHVibGljIGdldCBjc3NNYWluUm9vdCgpOiBhbnkge1xuICAgIHZhciBjbGFzc2VzID0gdGhpcy5jc3NDbGFzc2VzO1xuICAgIHZhciByZXMgPVxuICAgICAgdGhpcy5pc0Zsb3dMYXlvdXQgJiYgIXRoaXMuaXNEZXNpZ25Nb2RlXG4gICAgICAgID8gY2xhc3Nlcy5mbG93Um9vdFxuICAgICAgICA6IGNsYXNzZXMubWFpblJvb3Q7XG4gICAgaWYgKCF0aGlzLmlzRmxvd0xheW91dCAmJiB0aGlzLmdldFRpdGxlTG9jYXRpb24oKSA9PSBcImxlZnRcIikge1xuICAgICAgcmVzICs9IFwiIFwiICsgY2xhc3Nlcy50aXRsZUxlZnRSb290O1xuICAgIH1cbiAgICBpZiAodGhpcy5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgcmVzICs9IFwiIFwiICsgY2xhc3Nlcy5oYXNFcnJvcjtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Um9vdENzcyhjbGFzc2VzOiBhbnkpIHtcbiAgICByZXR1cm4gY2xhc3Nlcy5xdWVzdGlvbi5yb290O1xuICB9XG4gIHByb3RlY3RlZCB1cGRhdGVDc3NDbGFzc2VzKHJlczogYW55LCBzdXJ2ZXlDc3M6IGFueSkge1xuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcbiAgICAgIGlmICghIXN1cnZleUNzcy5xdWVzdGlvbi5yZXF1aXJlZCkge1xuICAgICAgICByZXMucm9vdCA9IChyZXMucm9vdCA/IHJlcy5yb290ICsgXCIgXCIgOiBcIlwiKSArIG9iakNzcztcbiAgICAgIH1cbiAgICAgIGlmIChzdXJ2ZXlDc3MucXVlc3Rpb24udGl0bGVSZXF1aXJlZCkge1xuICAgICAgICByZXMudGl0bGUgKz0gXCIgXCIgKyBzdXJ2ZXlDc3MucXVlc3Rpb24udGl0bGVSZXF1aXJlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIG9iakNzcyA9IHN1cnZleUNzc1t0aGlzLmdldFR5cGUoKV07XG4gICAgaWYgKG9iakNzcyA9PT0gdW5kZWZpbmVkIHx8IG9iakNzcyA9PT0gbnVsbCkgcmV0dXJuO1xuICAgIGlmICh0eXBlb2Ygb2JqQ3NzID09PSBcInN0cmluZ1wiIHx8IG9iakNzcyBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgcmVzLnJvb3QgPSAocmVzLnJvb3QgPyByZXMucm9vdCArIFwiIFwiIDogXCJcIikgKyBvYmpDc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAodmFyIGtleSBpbiBvYmpDc3MpIHtcbiAgICAgICAgcmVzW2tleV0gPSBvYmpDc3Nba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgY3NzKCk6IGFueSB7XG4gICAgcmV0dXJuIHN1cnZleUNzcy5nZXRDc3MoKTtcbiAgfVxuICAvKipcbiAgICogVXNlIGl0IHRvIHNldCB0aGUgc3BlY2lmaWMgd2lkdGggdG8gdGhlIHF1ZXN0aW9uIGxpa2UgY3NzIHN0eWxlICglLCBweCwgZW0gZXRjKS5cbiAgICovXG4gIHB1YmxpYyBnZXQgd2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwid2lkdGhcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCB3aWR0aCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIndpZHRoXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3aWR0aCBvZiB0aGUgcXVlc3Rpb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlbmRlcldpZHRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInJlbmRlcldpZHRoXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVuZGVyV2lkdGgodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJyZW5kZXJXaWR0aFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgZGlmZmVyZW50IGZyb20gMCB0byBpbmNyZWFzZSB0aGUgbGVmdCBwYWRkaW5nLlxuICAgKi9cbiAgcHVibGljIGdldCBpbmRlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaW5kZW50XCIsIDApO1xuICB9XG4gIHB1YmxpYyBzZXQgaW5kZW50KHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaW5kZW50XCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCBkaWZmZXJlbnQgZnJvbSAwIHRvIGluY3JlYXNlIHRoZSByaWdodCBwYWRkaW5nLlxuICAgKi9cbiAgcHVibGljIGdldCByaWdodEluZGVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJyaWdodEluZGVudFwiLCAwKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJpZ2h0SW5kZW50KHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicmlnaHRJbmRlbnRcIiwgdmFsKTtcbiAgfVxuICBnZXQgcGFkZGluZ0xlZnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGludExlZnRcIiwgXCJcIik7XG4gIH1cbiAgc2V0IHBhZGRpbmdMZWZ0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGludExlZnRcIiwgdmFsKTtcbiAgfVxuICBnZXQgcGFkZGluZ1JpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhZGRpbmdSaWdodFwiLCBcIlwiKTtcbiAgfVxuICBzZXQgcGFkZGluZ1JpZ2h0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGluZ1JpZ2h0XCIsIHZhbCk7XG4gIH1cbiAgcHJpdmF0ZSBvbkluZGVudENoYW5nZWQoKSB7XG4gICAgdGhpcy5wYWRkaW5nTGVmdCA9IHRoaXMuZ2V0SW5kZW50U2l6ZSh0aGlzLmluZGVudCk7XG4gICAgdGhpcy5wYWRkaW5nUmlnaHQgPSB0aGlzLmdldEluZGVudFNpemUodGhpcy5yaWdodEluZGVudCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRJbmRlbnRTaXplKGluZGVudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoaW5kZW50IDwgMSkgcmV0dXJuIFwiXCI7XG4gICAgcmV0dXJuIGluZGVudCAqIHRoaXMuY3NzQ2xhc3Nlcy5pbmRlbnQgKyBcInB4XCI7XG4gIH1cbiAgLyoqXG4gICAqIE1vdmUgdGhlIGZvY3VzIHRvIHRoZSBpbnB1dCBvZiB0aGlzIHF1ZXN0aW9uLlxuICAgKiBAcGFyYW0gb25FcnJvciBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gdHJ1ZSwgdG8gZm9jdXMgdGhlIGlucHV0IHdpdGggdGhlIGZpcnN0IGVycm9yLCBvdGhlciB3aXNlIHRoZSBmaXJzdCBpbnB1dCB3aWxsIGJlIGZvY3VzZWQuXG4gICAqL1xuICBwdWJsaWMgZm9jdXMob25FcnJvcjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgU3VydmV5RWxlbWVudC5TY3JvbGxFbGVtZW50VG9Ub3AodGhpcy5pZCk7XG4gICAgdmFyIGlkID0gIW9uRXJyb3JcbiAgICAgID8gdGhpcy5nZXRGaXJzdElucHV0RWxlbWVudElkKClcbiAgICAgIDogdGhpcy5nZXRGaXJzdEVycm9ySW5wdXRFbGVtZW50SWQoKTtcbiAgICBpZiAoU3VydmV5RWxlbWVudC5Gb2N1c0VsZW1lbnQoaWQpKSB7XG4gICAgICB0aGlzLmZpcmVDYWxsYmFjayh0aGlzLmZvY3VzQ2FsbGJhY2spO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZmlyZUNhbGxiYWNrKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xuICB9XG4gIHB1YmxpYyBnZXRPdGhlcnNNYXhMZW5ndGgoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuc3VydmV5KSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkubWF4T3RoZXJzTGVuZ3RoID4gMCA/IHRoaXMuc3VydmV5Lm1heE90aGVyc0xlbmd0aCA6IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIG9uQ3JlYXRpbmcoKSB7fVxuICBwcm90ZWN0ZWQgZ2V0Rmlyc3RJbnB1dEVsZW1lbnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlucHV0SWQ7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEZpcnN0RXJyb3JJbnB1dEVsZW1lbnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEZpcnN0SW5wdXRFbGVtZW50SWQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UHJvY2Vzc2VkVGV4dFZhbHVlKHRleHRWYWx1ZTogVGV4dFByZVByb2Nlc3NvclZhbHVlKSB7XG4gICAgdmFyIG5hbWUgPSB0ZXh0VmFsdWUubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9XG4gICAgICBPYmplY3Qua2V5cyhRdWVzdGlvbi5UZXh0UHJlcHJvY2Vzc29yVmFsdWVzTWFwKS5pbmRleE9mKG5hbWUpICE9PSAtMSB8fFxuICAgICAgKDxhbnk+dGhpcylbdGV4dFZhbHVlLm5hbWVdICE9PSB1bmRlZmluZWQ7XG4gICAgdGV4dFZhbHVlLnZhbHVlID0gKDxhbnk+dGhpcylbXG4gICAgICAoPGFueT5RdWVzdGlvbi5UZXh0UHJlcHJvY2Vzc29yVmFsdWVzTWFwKVtuYW1lXSB8fCB0ZXh0VmFsdWUubmFtZVxuICAgIF07XG4gIH1cbiAgcHVibGljIHN1cHBvcnRDb21tZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgc3VwcG9ydE90aGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSwgdG8gbWFrZSB0aGUgcXVlc3Rpb24gYSByZXF1aXJlZC4gSWYgYSB1c2VyIGRvZXNuJ3QgYW5zd2VyIHRoZSBxdWVzdGlvbiB0aGVuIGEgdmFsaWRhdGlvbiBlcnJvciB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaXNSZXF1aXJlZFwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBpc1JlcXVpcmVkKHZhbDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQgPT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaXNSZXF1aXJlZFwiLCB2YWwpO1xuICAgIGlmICghdGhpcy5pc0xvYWRpbmdGcm9tSnNvbikge1xuICAgICAgdGhpcy5sb2NUaXRsZS5vbkNoYW5nZWQoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEFuIGV4cHJlc3Npb24gdGhhdCByZXR1cm5zIHRydWUgb3IgZmFsc2UuIElmIGl0IHJldHVybnMgdHJ1ZSB0aGUgUXVlc3Rpb24gYmVjb21lcyByZXF1aXJlZCBhbmQgYW4gZW5kLXVzZXIgaGFzIHRvIGFuc3dlciBpdC5cbiAgICogSWYgaXQgcmV0dXJucyBmYWxzZSB0aGUgUXVlc3Rpb24gdGhlbiBhbiBlbmQtdXNlciBtYXkgbm90IGFuc3dlciBpdCB0aGUgUXVlc3Rpb24gbWF5YmUgZW1wdHkuXG4gICAqIFRoZSBsaWJyYXJ5IHJ1bnMgdGhlIGV4cHJlc3Npb24gb24gc3VydmV5IHN0YXJ0IGFuZCBvbiBjaGFuZ2luZyBhIHF1ZXN0aW9uIHZhbHVlLiBJZiB0aGUgcHJvcGVydHkgaXMgZW1wdHkgdGhlbiBpc1JlcXVpcmVkIHByb3BlcnR5IGlzIHVzZWQuXG4gICAqIEBzZWUgaXNSZXF1aXJlZFxuICAgKi9cbiAgcHVibGljIGdldCByZXF1aXJlZElmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInJlcXVpcmVkSWZcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCByZXF1aXJlZElmKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicmVxdWlyZWRJZlwiLCB2YWwpO1xuICAgIHRoaXMucnVuQ29uZGl0aW9ucygpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gdHJ1ZSwgdG8gYWRkIGEgY29tbWVudCBmb3IgdGhlIHF1ZXN0aW9uLlxuICAgKi9cbiAgcHVibGljIGdldCBoYXNDb21tZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJoYXNDb21tZW50XCIsIGZhbHNlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGhhc0NvbW1lbnQodmFsOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLnN1cHBvcnRDb21tZW50KCkpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJoYXNDb21tZW50XCIsIHZhbCk7XG4gICAgaWYgKHRoaXMuaGFzQ29tbWVudCkgdGhpcy5oYXNPdGhlciA9IGZhbHNlO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpY2F0b3IuIEl0IGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJpZFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlkKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaWRcIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc090aGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJoYXNPdGhlclwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBoYXNPdGhlcih2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuc3VwcG9ydE90aGVyKCkgfHwgdGhpcy5oYXNPdGhlciA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJoYXNPdGhlclwiLCB2YWwpO1xuICAgIGlmICh0aGlzLmhhc090aGVyKSB0aGlzLmhhc0NvbW1lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmhhc090aGVyQ2hhbmdlZCgpO1xuICB9XG4gIHByb3RlY3RlZCBoYXNPdGhlckNoYW5nZWQoKSB7fVxuICBwdWJsaWMgZ2V0IHJlcXVpcmVVcGRhdGVDb21tZW50VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQ29tbWVudCB8fCB0aGlzLmhhc090aGVyO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1bnMgdHJ1ZSBpZiByZWFkT25seSBwcm9wZXJ0eSBpcyB0cnVlIG9yIHN1cnZleSBpcyBpbiBkaXNwbGF5IG1vZGUgb3IgcGFyZW50IHBhbmVsL3BhZ2UgaXMgcmVhZE9ubHkuXG4gICAqIEBzZWUgU3VydmV5TW9kZWwubW9kZWxcbiAgICogQHNlZSByZWFkT25seVxuICAgKi9cbiAgcHVibGljIGdldCBpc1JlYWRPbmx5KCkge1xuICAgIHZhciBpc1BhcmVudFJlYWRPbmx5ID0gISF0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5pc1JlYWRPbmx5O1xuICAgIHZhciBpc1N1cnZleVJlYWRPbmx5ID0gISF0aGlzLnN1cnZleSAmJiB0aGlzLnN1cnZleS5pc0Rpc3BsYXlNb2RlO1xuICAgIHJldHVybiB0aGlzLnJlYWRPbmx5IHx8IGlzUGFyZW50UmVhZE9ubHkgfHwgaXNTdXJ2ZXlSZWFkT25seTtcbiAgfVxuICAvKipcbiAgICogQW4gZXhwcmVzc2lvbiB0aGF0IHJldHVybnMgdHJ1ZSBvciBmYWxzZS4gSWYgaXQgcmV0dXJucyBmYWxzZSB0aGUgUXVlc3Rpb24gYmVjb21lcyByZWFkIG9ubHkgYW5kIGFuIGVuZC11c2VyIHdpbGwgbm90IGFibGUgdG8gYW5zd2VyIG9uIHRoZSBxdXN0aW9uLiBUaGUgbGlicmFyeSBydW5zIHRoZSBleHByZXNzaW9uIG9uIHN1cnZleSBzdGFydCBhbmQgb24gY2hhbmdpbmcgYSBxdWVzdGlvbiB2YWx1ZS4gSWYgdGhlIHByb3BlcnR5IGlzIGVtcHR5IHRoZW4gcmVhZE9ubHkgcHJvcGVydHkgaXMgdXNlZC5cbiAgICogQHNlZSByZWFkT25seVxuICAgKiBAc2VlIGlzUmVhZE9ubHlcbiAgICovXG4gIHB1YmxpYyBnZXQgZW5hYmxlSWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiZW5hYmxlSWZcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBlbmFibGVJZih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImVuYWJsZUlmXCIsIHZhbCk7XG4gICAgdGhpcy5ydW5Db25kaXRpb25zKCk7XG4gIH1cbiAgLyoqXG4gICAqIFJ1biB2aXNpYmxlSWYgYW5kIGVuYWJsZUlmIGV4cHJlc3Npb25zLiBJZiB2aXNpYmxlSWYgb3IvYW5kIGVuYWJsZWRJZiBhcmUgbm90IGVtcHR5LCB0aGVuIHRoZSByZXN1bHRzIG9mIHBlcmZvcm1pbmcgdGhlIGV4cHJlc3Npb24gKHRydWUgb3IgZmFsc2UpIHNldCB0byB0aGUgdmlzaWJsZS9yZWFkT25seSBwcm9wZXJ0aWVzLlxuICAgKiBAcGFyYW0gdmFsdWVzIFR5cGljYWxseSBzdXJ2ZXkgcmVzdWx0c1xuICAgKiBAc2VlIHZpc2libGVcbiAgICogQHNlZSB2aXNpYmxlSWZcbiAgICogQHNlZSByZWFkT25seVxuICAgKiBAc2VlIGVuYWJsZUlmXG4gICAqL1xuICBwdWJsaWMgcnVuQ29uZGl0aW9uKHZhbHVlczogSGFzaFRhYmxlPGFueT4sIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+KSB7XG4gICAgaWYgKHRoaXMuaXNEZXNpZ25Nb2RlKSByZXR1cm47XG4gICAgaWYgKCFwcm9wZXJ0aWVzKSBwcm9wZXJ0aWVzID0ge307XG4gICAgcHJvcGVydGllc1tcInF1ZXN0aW9uXCJdID0gdGhpcztcbiAgICBpZiAoIXRoaXMuYXJlSW52aXNpYmxlRWxlbWVudHNTaG93aW5nKSB7XG4gICAgICB0aGlzLnJ1blZpc2libGVJZkNvbmRpdGlvbih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIH1cbiAgICB0aGlzLnJ1bkVuYWJsZUlmQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgdGhpcy5ydW5SZXF1aXJlZElmQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gIH1cbiAgcHJpdmF0ZSBydW5WaXNpYmxlSWZDb25kaXRpb24oXG4gICAgdmFsdWVzOiBIYXNoVGFibGU8YW55PixcbiAgICBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55PlxuICApIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZUlmKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmNvbmRpdGlvblJ1bm5lcilcbiAgICAgIHRoaXMuY29uZGl0aW9uUnVubmVyID0gbmV3IENvbmRpdGlvblJ1bm5lcih0aGlzLnZpc2libGVJZik7XG4gICAgdGhpcy5jb25kaXRpb25SdW5uZXIuZXhwcmVzc2lvbiA9IHRoaXMudmlzaWJsZUlmO1xuICAgIHRoaXMuY29uZGl0aW9uUnVubmVyLm9uUnVuQ29tcGxldGUgPSAocmVzOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLnZpc2libGUgPSByZXM7XG4gICAgfTtcbiAgICB0aGlzLmNvbmRpdGlvblJ1bm5lci5ydW4odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICBwcml2YXRlIHJ1bkVuYWJsZUlmQ29uZGl0aW9uKFxuICAgIHZhbHVlczogSGFzaFRhYmxlPGFueT4sXG4gICAgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT5cbiAgKSB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZUlmKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmNvbmRpdGlvbkVuYWJlbFJ1bm5lcilcbiAgICAgIHRoaXMuY29uZGl0aW9uRW5hYmVsUnVubmVyID0gbmV3IENvbmRpdGlvblJ1bm5lcih0aGlzLmVuYWJsZUlmKTtcbiAgICB0aGlzLmNvbmRpdGlvbkVuYWJlbFJ1bm5lci5leHByZXNzaW9uID0gdGhpcy5lbmFibGVJZjtcbiAgICB0aGlzLmNvbmRpdGlvbkVuYWJlbFJ1bm5lci5vblJ1bkNvbXBsZXRlID0gKHJlczogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5yZWFkT25seSA9ICFyZXM7XG4gICAgfTtcbiAgICB0aGlzLmNvbmRpdGlvbkVuYWJlbFJ1bm5lci5ydW4odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICBwcml2YXRlIHJ1blJlcXVpcmVkSWZDb25kaXRpb24oXG4gICAgdmFsdWVzOiBIYXNoVGFibGU8YW55PixcbiAgICBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55PlxuICApIHtcbiAgICBpZiAoIXRoaXMucmVxdWlyZWRJZikgcmV0dXJuO1xuICAgIGlmICghdGhpcy5jb25kaXRpb25SZXF1aXJlZFJ1bm5lcilcbiAgICAgIHRoaXMuY29uZGl0aW9uUmVxdWlyZWRSdW5uZXIgPSBuZXcgQ29uZGl0aW9uUnVubmVyKHRoaXMucmVxdWlyZWRJZik7XG4gICAgdGhpcy5jb25kaXRpb25SZXF1aXJlZFJ1bm5lci5leHByZXNzaW9uID0gdGhpcy5yZXF1aXJlZElmO1xuICAgIHRoaXMuY29uZGl0aW9uUmVxdWlyZWRSdW5uZXIub25SdW5Db21wbGV0ZSA9IChyZXM6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHJlcztcbiAgICB9O1xuICAgIHRoaXMuY29uZGl0aW9uUmVxdWlyZWRSdW5uZXIucnVuKHZhbHVlcywgcHJvcGVydGllcyk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSByZXR1cm5zIHRoZSBxdWVzdGlvbiBudW1iZXIuIElmIHF1ZXN0aW9uIGlzIGludmlzaWJsZSB0aGVuIGl0IHJldHVybnMgZW1wdHkgc3RyaW5nLlxuICAgKiBJZiB2aXNpYmxlSW5kZXggaXMgMSwgdGhlbiBubyBpcyAyLCBvciAnQicgaWYgc3VydmV5LnF1ZXN0aW9uU3RhcnRJbmRleCBpcyAnQScuXG4gICAqIEBzZWUgU3VydmV5TW9kZWwucXVlc3Rpb25TdGFydEluZGV4XG4gICAqL1xuICBwdWJsaWMgZ2V0IG5vKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudmlzaWJsZUluZGV4IDwgMCkgcmV0dXJuIFwiXCI7XG4gICAgdmFyIHN0YXJ0SW5kZXggPSAxO1xuICAgIHZhciBpc051bWVyaWMgPSB0cnVlO1xuICAgIHZhciBzdHIgPSBcIlwiO1xuICAgIGlmICh0aGlzLnN1cnZleSAmJiB0aGlzLnN1cnZleS5xdWVzdGlvblN0YXJ0SW5kZXgpIHtcbiAgICAgIHN0ciA9IHRoaXMuc3VydmV5LnF1ZXN0aW9uU3RhcnRJbmRleDtcbiAgICAgIGlmIChwYXJzZUludChzdHIpKSBzdGFydEluZGV4ID0gcGFyc2VJbnQoc3RyKTtcbiAgICAgIGVsc2UgaWYgKHN0ci5sZW5ndGggPT0gMSkgaXNOdW1lcmljID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpc051bWVyaWMpIHJldHVybiAodGhpcy52aXNpYmxlSW5kZXggKyBzdGFydEluZGV4KS50b1N0cmluZygpO1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHN0ci5jaGFyQ29kZUF0KDApICsgdGhpcy52aXNpYmxlSW5kZXgpO1xuICB9XG4gIHB1YmxpYyBvblN1cnZleUxvYWQoKSB7XG4gICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5zdXJ2ZXlMb2FkQ2FsbGJhY2spO1xuICAgIHRoaXMudXBkYXRlVmFsdWVXaXRoRGVmYXVsdHMoKTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICB9XG4gIHByb3RlY3RlZCBvblNldERhdGEoKSB7XG4gICAgc3VwZXIub25TZXREYXRhKCk7XG4gICAgdGhpcy5pbml0RGF0YUZyb21TdXJ2ZXkoKTtcbiAgICB0aGlzLm9uU3VydmV5VmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudXBkYXRlVmFsdWVXaXRoRGVmYXVsdHMoKTtcbiAgfVxuICBwcm90ZWN0ZWQgaW5pdERhdGFGcm9tU3VydmV5KCkge1xuICAgIGlmICghIXRoaXMuZGF0YSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUZyb21TdXJ2ZXkodGhpcy5kYXRhLmdldFZhbHVlKHRoaXMuZ2V0VmFsdWVOYW1lKCkpKTtcbiAgICAgIHRoaXMuaW5pdENvbW1lbnRGcm9tU3VydmV5KCk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBpbml0Q29tbWVudEZyb21TdXJ2ZXkoKSB7XG4gICAgaWYgKCEhdGhpcy5kYXRhICYmIHRoaXMucmVxdWlyZVVwZGF0ZUNvbW1lbnRWYWx1ZSkge1xuICAgICAgdGhpcy51cGRhdGVDb21tZW50RnJvbVN1cnZleSh0aGlzLmRhdGEuZ2V0Q29tbWVudCh0aGlzLmdldFZhbHVlTmFtZSgpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQ29tbWVudEZyb21TdXJ2ZXkoXCJcIik7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IHF1ZXN0aW9uVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidmFsdWVcIik7XG4gIH1cbiAgcHJpdmF0ZSBzZXQgcXVlc3Rpb25WYWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInZhbHVlXCIsIHZhbCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgcXVlc3Rpb25Db21tZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImNvbW1lbnRcIik7XG4gIH1cbiAgcHJpdmF0ZSBzZXQgcXVlc3Rpb25Db21tZW50KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY29tbWVudFwiLCB2YWwpO1xuICAgIHRoaXMuZmlyZUNhbGxiYWNrKHRoaXMuY29tbWVudENoYW5nZWRDYWxsYmFjayk7XG4gIH1cbiAgLyoqXG4gICAqIEdldC9TZXQgdGhlIHF1ZXN0aW9uIHZhbHVlLlxuICAgKiBAc2VlIFN1cnZleU1vZGUuc2V0VmFsdWVcbiAgICogQHNlZSBTdXJ2ZXlNb2RlLmdldFZhbHVlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVDb3JlKCk7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgdGhpcy5zZXROZXdWYWx1ZShuZXdWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGNsZWFyVmFsdWUoKSB7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgdGhpcy5jb21tZW50ID0gbnVsbDtcbiAgfVxuICBwdWJsaWMgY3JlYXRlVmFsdWVDb3B5KCk6IGFueSB7XG4gICAgcmV0dXJuIEhlbHBlcnMuZ2V0VW5iaW5kVmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBjYW5DbGVhclZhbHVlQXNJbnZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNWaXNpYmxlICYmIHRoaXMuaXNQYXJlbnRWaXNpYmxlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCEhdGhpcy5wYWdlICYmIHRoaXMucGFnZS5pc1N0YXJ0ZWQpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoIXRoaXMuc3VydmV5IHx8ICF0aGlzLnZhbHVlTmFtZSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuICF0aGlzLnN1cnZleS5oYXNWaXNpYmxlUXVlc3Rpb25CeVZhbHVlTmFtZSh0aGlzLnZhbHVlTmFtZSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgaXNQYXJlbnRWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudDtcbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICBpZiAoIXBhcmVudC5pc1Zpc2libGUpIHJldHVybiBmYWxzZTtcbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHB1YmxpYyBjbGVhclZhbHVlSWZJbnZpc2libGUoKSB7XG4gICAgaWYgKHRoaXMuY2FuQ2xlYXJWYWx1ZUFzSW52aXNpYmxlKCkpIHtcbiAgICAgIHRoaXMuY2xlYXJWYWx1ZSgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9kaXNwbGF5VmFsdWUgPSBcIlwiO1xuXG4gIHB1YmxpYyBnZXQgZGlzcGxheVZhbHVlKCk6IGFueSB7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheVZhbHVlO1xuICB9XG4gIHByb3RlY3RlZCB1cGRhdGVEaXNwbGF5VmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdGcm9tSnNvbikgcmV0dXJuO1xuICAgIHRoaXMuX2Rpc3BsYXlWYWx1ZSA9IHRoaXMuZ2V0RGlzcGxheVZhbHVlKHRydWUpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHF1ZXN0aW9uIHZhbHVlIGFzIGEgZGlzcGxheSB0ZXh0LiBGb3IgZXhhbXBsZSwgZm9yIGRyb3Bkb3duLCBpdCB3b3VsZCByZXR1cm4gdGhlIGl0ZW0gdGV4dCBpbnN0ZWFkIG9mIGl0ZW0gdmFsdWUuXG4gICAqIEBwYXJhbSBrZXlzQXNUZXh0IFNldCB0aGlzIHZhbHVlIHRvIHRydWUsIHRvIHJldHVybiBrZXkgKGluIG1hdHJpY2VzIHF1ZXN0aW9ucykgYXMgZGlzcGxheSB0ZXh0IGFzIHdlbGwuXG4gICAqIEBwYXJhbSB2YWx1ZSB1c2UgdGhpcyBwYXJhbWV0ZXIsIGlmIHlvdSB3YW50IHRvIGdldCBkaXNwbGF5IHZhbHVlIGZvciB0aGlzIHZhbHVlIGFuZCBub3QgcXVlc3Rpb24udmFsdWUuIEl0IGlzIHVuZGVmaW5lZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgcHVibGljIGdldERpc3BsYXlWYWx1ZShrZXlzQXNUZXh0OiBib29sZWFuLCB2YWx1ZTogYW55ID0gdW5kZWZpbmVkKTogYW55IHtcbiAgICBpZiAodGhpcy5jdXN0b21XaWRnZXQpIHtcbiAgICAgIHZhciByZXMgPSB0aGlzLmN1c3RvbVdpZGdldC5nZXREaXNwbGF5VmFsdWUodGhpcywgdmFsdWUpO1xuICAgICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgdmFsdWUgPSB2YWx1ZSA9PSB1bmRlZmluZWQgPyB0aGlzLmNyZWF0ZVZhbHVlQ29weSgpIDogdmFsdWU7XG4gICAgaWYgKEhlbHBlcnMuaXNWYWx1ZUVtcHR5KHZhbHVlKSkgcmV0dXJuIFwiXCI7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlzcGxheVZhbHVlQ29yZShrZXlzQXNUZXh0LCB2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERpc3BsYXlWYWx1ZUNvcmUoa2V5QXNUZXh0OiBib29sZWFuLCB2YWx1ZTogYW55KTogYW55IHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCB2YWx1ZSB0byB0aGUgcXVlc3Rpb24uIEl0IHdpbGwgYmUgYXNzaWduIHRvIHRoZSBxdWVzdGlvbiBvbiBsb2FkaW5nIHRoZSBzdXJ2ZXkgZnJvbSBKU09OIG9yIGFkZGluZyBhIHF1ZXN0aW9uIHRvIHRoZSBzdXJ2ZXkgb3Igb24gc2V0dGluZyB0aGlzIHByb3BlcnR5IG9mIHRoZSB2YWx1ZSBpcyBlbXB0eS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVmYXVsdFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImRlZmF1bHRWYWx1ZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGRlZmF1bHRWYWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImRlZmF1bHRWYWx1ZVwiLCB2YWwpO1xuICAgIHRoaXMudXBkYXRlVmFsdWVXaXRoRGVmYXVsdHMoKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyBxdWVzdGlvbiBhbnN3ZXIgZGF0YSBhcyBhIHBsYWluIG9iamVjdDogd2l0aCBxdWVzdGlvbiB0aXRsZSwgbmFtZSwgdmFsdWUgYW5kIGRpc3BsYXlWYWx1ZS5cbiAgICogRm9yIGNvbXBsZXggcXVlc3Rpb25zIChsaWtlIG1hdHJpeCwgZXRjLikgaXNOb2RlIGZsYWcgaXMgc2V0IHRvIHRydWUgYW5kIGRhdGEgY29udGFpbnMgYXJyYXkgb2YgbmVzdGVkIG9iamVjdHMgKHJvd3MpXG4gICAqIHNldCBvcHRpb25zLmluY2x1ZGVFbXB0eSB0byBmYWxzZSBpZiB5b3Ugd2FudCB0byBza2lwIGVtcHR5IGFuc3dlcnNcbiAgICovXG4gIHB1YmxpYyBnZXRQbGFpbkRhdGEoXG4gICAgb3B0aW9uczoge1xuICAgICAgaW5jbHVkZUVtcHR5PzogYm9vbGVhbjtcbiAgICAgIGNhbGN1bGF0aW9ucz86IEFycmF5PHtcbiAgICAgICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XG4gICAgICB9PjtcbiAgICB9ID0ge1xuICAgICAgaW5jbHVkZUVtcHR5OiB0cnVlXG4gICAgfVxuICApIHtcbiAgICBpZiAob3B0aW9ucy5pbmNsdWRlRW1wdHkgfHwgIXRoaXMuaXNFbXB0eSgpKSB7XG4gICAgICB2YXIgcXVlc3Rpb25QbGFpbkRhdGEgPSA8YW55PntcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICB0aXRsZTogdGhpcy50aXRsZSxcbiAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgIGRpc3BsYXlWYWx1ZTogdGhpcy5kaXNwbGF5VmFsdWUsXG4gICAgICAgIGlzTm9kZTogZmFsc2UsXG4gICAgICAgIGdldFN0cmluZzogKHZhbDogYW55KSA9PlxuICAgICAgICAgIHR5cGVvZiB2YWwgPT09IFwib2JqZWN0XCIgPyBKU09OLnN0cmluZ2lmeSh2YWwpIDogdmFsXG4gICAgICB9O1xuICAgICAgKG9wdGlvbnMuY2FsY3VsYXRpb25zIHx8IFtdKS5mb3JFYWNoKGNhbGN1bGF0aW9uID0+IHtcbiAgICAgICAgcXVlc3Rpb25QbGFpbkRhdGFbY2FsY3VsYXRpb24ucHJvcGVydHlOYW1lXSA9IHRoaXNbXG4gICAgICAgICAgY2FsY3VsYXRpb24ucHJvcGVydHlOYW1lXG4gICAgICAgIF07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBxdWVzdGlvblBsYWluRGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICAvKipcbiAgICogVGhlIGNvcnJlY3QgYW5zd2VyIG9uIHRoZSBxdWVzdGlvbi4gU2V0IHRoaXMgdmFsdWUgaWYgeW91IGFyZSBkb2luZyBhIHF1aXouXG4gICAqIEBzZWUgU3VydmV5TW9kZWwuY29ycmVjdEFuc3dlcnNcbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC5pbkNvcnJlY3RBbnN3ZXJzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvcnJlY3RBbnN3ZXIoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY29ycmVjdEFuc3dlclwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNvcnJlY3RBbnN3ZXIodmFsOiBhbnkpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjb3JyZWN0QW5zd2VyXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBxdWl6UXVlc3Rpb25Db3VudCgpOiBudW1iZXIge1xuICAgIGlmIChcbiAgICAgIHRoaXMuaXNWaXNpYmxlICYmXG4gICAgICB0aGlzLmhhc0lucHV0ICYmXG4gICAgICAhSGVscGVycy5pc1ZhbHVlRW1wdHkodGhpcy5jb3JyZWN0QW5zd2VyKVxuICAgIClcbiAgICAgIHJldHVybiB0aGlzLmdldFF1aXpRdWVzdGlvbkNvdW50KCk7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcHVibGljIGdldCBjb3JyZWN0QW5zd2VyQ291bnQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuaXNFbXB0eSgpICYmICF0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmNvcnJlY3RBbnN3ZXIpKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29ycmVjdEFuc3dlckNvdW50KCk7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFF1aXpRdWVzdGlvbkNvdW50KCkge1xuICAgIHJldHVybiAxO1xuICB9XG4gIHByb3RlY3RlZCBnZXRDb3JyZWN0QW5zd2VyQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc1R3b1ZhbHVlRXF1YWxzKHRoaXMudmFsdWUsIHRoaXMuY29ycmVjdEFuc3dlciwgdHJ1ZSkgPyAxIDogMDtcbiAgfVxuICBwdWJsaWMgaXNBbnN3ZXJDb3JyZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvcnJlY3RBbnN3ZXJDb3VudCA9PSB0aGlzLnF1aXpRdWVzdGlvbkNvdW50O1xuICB9XG4gIHB1YmxpYyB1cGRhdGVWYWx1ZVdpdGhEZWZhdWx0cygpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmlzTG9hZGluZ0Zyb21Kc29uIHx8XG4gICAgICAoIXRoaXMuaXNEZXNpZ25Nb2RlICYmIHRoaXMuaXNEZWZhdWx0VmFsdWVFbXB0eSgpKVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICBpZiAoIXRoaXMuaXNEZXNpZ25Nb2RlICYmICF0aGlzLmlzRW1wdHkoKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzRW1wdHkoKSAmJiB0aGlzLmlzRGVmYXVsdFZhbHVlRW1wdHkoKSkgcmV0dXJuO1xuICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKCk7XG4gIH1cbiAgZ2V0UXVlc3Rpb25Gcm9tQXJyYXkobmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogSVF1ZXN0aW9uIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0RGVmYXVsdFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlO1xuICB9XG4gIHByb3RlY3RlZCBpc0RlZmF1bHRWYWx1ZUVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmRlZmF1bHRWYWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIHNldERlZmF1bHRWYWx1ZSgpIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5kZWZhdWx0VmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHF1ZXN0aW9uIGNvbW1lbnQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbW1lbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb21tZW50KCk7XG4gIH1cbiAgcHVibGljIHNldCBjb21tZW50KG5ld1ZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoISFuZXdWYWx1ZSkge1xuICAgICAgbmV3VmFsdWUgPSBuZXdWYWx1ZS50b1N0cmluZygpLnRyaW0oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tbWVudCA9PSBuZXdWYWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMuc2V0Q29tbWVudChuZXdWYWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvbW1lbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbkNvbW1lbnQ7XG4gIH1cbiAgcHJvdGVjdGVkIHNldENvbW1lbnQobmV3VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TmV3Q29tbWVudChuZXdWYWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcXVlc3Rpb24gdmFsdWUgaXMgZW1wdHlcbiAgICovXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLnZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzQW5zd2VyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImlzQW5zd2VyZWRcIik7XG4gIH1cbiAgcHVibGljIHNldCBpc0Fuc3dlcmVkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlzQW5zd2VyZWRcIiwgdmFsKTtcbiAgfVxuICBwcm90ZWN0ZWQgdXBkYXRlSXNBbnN3ZXJlZCgpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpc0Fuc3dlcmVkXCIsIHRoaXMuZ2V0SXNBbnN3ZXJlZCgpKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0SXNBbnN3ZXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNFbXB0eSgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBxdWVzdGlvbiB2YWxpZGF0b3JzLlxuICAgKi9cbiAgcHVibGljIGdldCB2YWxpZGF0b3JzKCk6IEFycmF5PFN1cnZleVZhbGlkYXRvcj4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ2YWxpZGF0b3JzXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsaWRhdG9ycyh2YWw6IEFycmF5PFN1cnZleVZhbGlkYXRvcj4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJ2YWxpZGF0b3JzXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldFZhbGlkYXRvcnMoKTogQXJyYXk8U3VydmV5VmFsaWRhdG9yPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdG9ycztcbiAgfVxuICBwdWJsaWMgYWRkQ29uZGl0aW9uTmFtZXMobmFtZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBuYW1lcy5wdXNoKHRoaXMubmFtZSk7XG4gIH1cbiAgcHVibGljIGFkZENvbmRpdGlvbk9iamVjdHNCeUNvbnRleHQoXG4gICAgb2JqZWN0czogQXJyYXk8SUNvbmRpdGlvbk9iamVjdD4sXG4gICAgY29udGV4dDogYW55XG4gICkge1xuICAgIG9iamVjdHMucHVzaCh7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICB0ZXh0OiB0aGlzLnByb2Nlc3NlZFRpdGxlLFxuICAgICAgcXVlc3Rpb246IHRoaXNcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgZ2V0Q29uZGl0aW9uSnNvbihvcGVyYXRvcjogc3RyaW5nID0gbnVsbCwgcGF0aDogc3RyaW5nID0gbnVsbCk6IGFueSB7XG4gICAgdmFyIGpzb24gPSBuZXcgSnNvbk9iamVjdCgpLnRvSnNvbk9iamVjdCh0aGlzKTtcbiAgICBqc29uW1widHlwZVwiXSA9IHRoaXMuZ2V0VHlwZSgpO1xuICAgIHJldHVybiBqc29uO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYSB2YWxpZGF0aW9uIGVycm9yKHMpIGluIHRoZSBxdWVzdGlvbi5cbiAgICogQHBhcmFtIGZpcmVDYWxsYmFjayBzZXQgaXQgdG8gdHJ1ZSB0byBzaG93IGFuIGVycm9yIGluIFVJLlxuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhmaXJlQ2FsbGJhY2s6IGJvb2xlYW4gPSB0cnVlLCByZWM6IGFueSA9IG51bGwpOiBib29sZWFuIHtcbiAgICB2YXIgZXJyb3JzID0gdGhpcy5jaGVja0ZvckVycm9ycygpO1xuICAgIGlmIChmaXJlQ2FsbGJhY2spIHtcbiAgICAgIGlmICghIXRoaXMuc3VydmV5KSB7XG4gICAgICAgIHRoaXMuc3VydmV5LmJlZm9yZVNldHRpbmdRdWVzdGlvbkVycm9ycyh0aGlzLCBlcnJvcnMpO1xuICAgICAgfVxuICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29udGFpbnNFcnJvcnMoKTtcbiAgICByZXR1cm4gZXJyb3JzLmxlbmd0aCA+IDA7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZhbGlkYXRpb24gZXJyb3JzIGNvdW50LlxuICAgKi9cbiAgcHVibGljIGdldCBjdXJyZW50RXJyb3JDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGg7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNoYXIvc3RyaW5nIGZvciBhIHJlcXVpcmVkIHF1ZXN0aW9uLlxuICAgKiBAc2VlIFN1cnZleU1vZGVsLnJlcXVpcmVkVGV4dFxuICAgKi9cbiAgcHVibGljIGdldCByZXF1aXJlZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkgIT0gbnVsbCAmJiB0aGlzLmlzUmVxdWlyZWRcbiAgICAgID8gdGhpcy5zdXJ2ZXkucmVxdWlyZWRUZXh0XG4gICAgICA6IFwiXCI7XG4gIH1cbiAgLyoqXG4gICAqIEFkZCBlcnJvciBpbnRvIHRoZSBxdWVzdGlvbiBlcnJvciBsaXN0LlxuICAgKiBAcGFyYW0gZXJyb3JcbiAgICovXG4gIHB1YmxpYyBhZGRFcnJvcihlcnJvcjogU3VydmV5RXJyb3IpIHtcbiAgICB0aGlzLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIGEgcGFydGljdWxhciBlcnJvciBmcm9tIHRoZSBxdWVzdGlvbiBlcnJvciBsaXN0LlxuICAgKiBAcGFyYW0gZXJyb3JcbiAgICovXG4gIHB1YmxpYyByZW1vdmVFcnJvcihlcnJvcjogU3VydmV5RXJyb3IpIHtcbiAgICB2YXIgZXJyb3JzID0gdGhpcy5lcnJvcnM7XG4gICAgdmFyIGluZGV4ID0gZXJyb3JzLmluZGV4T2YoZXJyb3IpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIGVycm9ycy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG4gIHByaXZhdGUgY2hlY2tGb3JFcnJvcnMoKTogQXJyYXk8U3VydmV5RXJyb3I+IHtcbiAgICB2YXIgcUVycm9ycyA9IG5ldyBBcnJheTxTdXJ2ZXlFcnJvcj4oKTtcbiAgICBpZiAodGhpcy5pc1Zpc2libGUgJiYgIXRoaXMuaXNSZWFkT25seSkge1xuICAgICAgdGhpcy5jb2xsZWN0RXJyb3JzKHFFcnJvcnMpO1xuICAgIH1cbiAgICByZXR1cm4gcUVycm9ycztcbiAgfVxuICBwcml2YXRlIGNvbGxlY3RFcnJvcnMocUVycm9yczogQXJyYXk8U3VydmV5RXJyb3I+KSB7XG4gICAgdGhpcy5vbkNoZWNrRm9yRXJyb3JzKHFFcnJvcnMpO1xuICAgIGlmIChxRXJyb3JzLmxlbmd0aCA9PSAwKSB7XG4gICAgICB2YXIgZXJyb3JzID0gdGhpcy5ydW5WYWxpZGF0b3JzKCk7XG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy92YWxpZGF0b3JzIG1heSBjaGFuZ2UgdGhlIHF1ZXN0aW9uIHZhbHVlLlxuICAgICAgICBxRXJyb3JzLmxlbmd0aCA9IDA7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgcUVycm9ycy5wdXNoKGVycm9yc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuc3VydmV5ICYmIHFFcnJvcnMubGVuZ3RoID09IDApIHtcbiAgICAgIHZhciBlcnJvciA9IHRoaXMuZmlyZVN1cnZleVZhbGlkYXRpb24oKTtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBxRXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIGZpcmVTdXJ2ZXlWYWxpZGF0aW9uKCk6IFN1cnZleUVycm9yIHtcbiAgICBpZiAodGhpcy52YWxpZGF0ZVZhbHVlQ2FsbGJhY2spIHJldHVybiB0aGlzLnZhbGlkYXRlVmFsdWVDYWxsYmFjaygpO1xuICAgIHJldHVybiB0aGlzLnN1cnZleSA/IHRoaXMuc3VydmV5LnZhbGlkYXRlUXVlc3Rpb24odGhpcykgOiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBvbkNoZWNrRm9yRXJyb3JzKGVycm9yczogQXJyYXk8U3VydmV5RXJyb3I+KSB7XG4gICAgaWYgKHRoaXMuaGFzUmVxdWlyZWRFcnJvcigpKSB7XG4gICAgICBlcnJvcnMucHVzaChuZXcgQW5zd2VyUmVxdWlyZWRFcnJvcih0aGlzLnJlcXVpcmVkRXJyb3JUZXh0LCB0aGlzKSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBoYXNSZXF1aXJlZEVycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQgJiYgdGhpcy5pc0VtcHR5KCk7XG4gIH1cbiAgcHJpdmF0ZSB2YWxpZGF0b3JSdW5uZXI6IFZhbGlkYXRvclJ1bm5lcjtcbiAgcHJpdmF0ZSBpc1J1bm5pbmdWYWxpZGF0b3JzVmFsdWUgPSBmYWxzZTtcbiAgcHVibGljIG9uQ29tcGxldGVkQXN5bmNWYWxpZGF0b3JzOiAoaGFzRXJyb3JzOiBib29sZWFuKSA9PiB2b2lkO1xuICBwdWJsaWMgZ2V0IGlzUnVubmluZ1ZhbGlkYXRvcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXNSdW5uaW5nVmFsaWRhdG9ycygpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRJc1J1bm5pbmdWYWxpZGF0b3JzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUnVubmluZ1ZhbGlkYXRvcnNWYWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgcnVuVmFsaWRhdG9ycygpOiBBcnJheTxTdXJ2ZXlFcnJvcj4ge1xuICAgIGlmICghIXRoaXMudmFsaWRhdG9yUnVubmVyKSB7XG4gICAgICB0aGlzLnZhbGlkYXRvclJ1bm5lci5vbkFzeW5jQ29tcGxldGVkID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0b3JSdW5uZXIgPSBuZXcgVmFsaWRhdG9yUnVubmVyKCk7XG4gICAgdGhpcy5pc1J1bm5pbmdWYWxpZGF0b3JzVmFsdWUgPSB0cnVlO1xuICAgIHRoaXMudmFsaWRhdG9yUnVubmVyLm9uQXN5bmNDb21wbGV0ZWQgPSAoZXJyb3JzOiBBcnJheTxTdXJ2ZXlFcnJvcj4pID0+IHtcbiAgICAgIHRoaXMuZG9PbkFzeW5jQ29tcGxldGVkKGVycm9ycyk7XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3JSdW5uZXIucnVuKHRoaXMpO1xuICB9XG4gIHByaXZhdGUgZG9PbkFzeW5jQ29tcGxldGVkKGVycm9yczogQXJyYXk8U3VydmV5RXJyb3I+KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goZXJyb3JzW2ldKTtcbiAgICB9XG4gICAgdGhpcy5pc1J1bm5pbmdWYWxpZGF0b3JzVmFsdWUgPSBmYWxzZTtcbiAgICB0aGlzLnJhaXNlT25Db21wbGV0ZWRBc3luY1ZhbGlkYXRvcnMoKTtcbiAgfVxuICBwcm90ZWN0ZWQgcmFpc2VPbkNvbXBsZXRlZEFzeW5jVmFsaWRhdG9ycygpIHtcbiAgICBpZiAoISF0aGlzLm9uQ29tcGxldGVkQXN5bmNWYWxpZGF0b3JzICYmICF0aGlzLmlzUnVubmluZ1ZhbGlkYXRvcnMpIHtcbiAgICAgIHRoaXMub25Db21wbGV0ZWRBc3luY1ZhbGlkYXRvcnModGhpcy5nZXRBbGxFcnJvcnMoKS5sZW5ndGggPiAwKTtcbiAgICAgIHRoaXMub25Db21wbGV0ZWRBc3luY1ZhbGlkYXRvcnMgPSBudWxsO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGlzVmFsdWVDaGFuZ2VkSW5TdXJ2ZXkgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNldE5ld1ZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnNldE5ld1ZhbHVlSW5EYXRhKG5ld1ZhbHVlKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGxvY05vdGlmaWNhdGlvbkluRGF0YSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgaXNUZXh0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNTdXJ2ZXlJbnB1dFRleHRVcGRhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zdXJ2ZXkgPyB0aGlzLnN1cnZleS5pc1VwZGF0ZVZhbHVlVGV4dE9uVHlwaW5nIDogZmFsc2U7XG4gIH1cbiAgcHJpdmF0ZSBnZXREYXRhTG9jTm90aWZpY2F0aW9uKCk6IGFueSB7XG4gICAgaWYgKHRoaXMubG9jTm90aWZpY2F0aW9uSW5EYXRhKSByZXR1cm4gdGhpcy5sb2NOb3RpZmljYXRpb25JbkRhdGE7XG4gICAgcmV0dXJuIHRoaXMuaXNJbnB1dFRleHRVcGRhdGUgPyBcInRleHRcIiA6IGZhbHNlO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNJbnB1dFRleHRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTdXJ2ZXlJbnB1dFRleHRVcGRhdGUgJiYgdGhpcy5pc1RleHRWYWx1ZSgpO1xuICB9XG4gIHByb3RlY3RlZCBzZXROZXdWYWx1ZUluRGF0YShuZXdWYWx1ZTogYW55KSB7XG4gICAgbmV3VmFsdWUgPSB0aGlzLnZhbHVlVG9EYXRhKG5ld1ZhbHVlKTtcbiAgICBpZiAoIXRoaXMuaXNWYWx1ZUNoYW5nZWRJblN1cnZleSkge1xuICAgICAgdGhpcy5zZXRWYWx1ZUNvcmUobmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZ2V0VmFsdWVDb3JlKCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uVmFsdWU7XG4gIH1cbiAgcHJvdGVjdGVkIHNldFZhbHVlQ29yZShuZXdWYWx1ZTogYW55KSB7XG4gICAgdGhpcy5zZXRRdWVzdGlvblZhbHVlKG5ld1ZhbHVlKTtcbiAgICBpZiAodGhpcy5kYXRhICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZGF0YS5zZXRWYWx1ZShcbiAgICAgICAgdGhpcy5nZXRWYWx1ZU5hbWUoKSxcbiAgICAgICAgbmV3VmFsdWUsXG4gICAgICAgIHRoaXMuZ2V0RGF0YUxvY05vdGlmaWNhdGlvbigpXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgdmFsdWVGcm9tRGF0YSh2YWw6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICBwcm90ZWN0ZWQgdmFsdWVUb0RhdGEodmFsOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB2YWw7XG4gIH1cbiAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2VkKCkge31cbiAgcHJvdGVjdGVkIHNldE5ld0NvbW1lbnQobmV3VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucXVlc3Rpb25Db21tZW50ID0gbmV3VmFsdWU7XG4gICAgaWYgKHRoaXMuZGF0YSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmRhdGEuc2V0Q29tbWVudChcbiAgICAgICAgdGhpcy5nZXRWYWx1ZU5hbWUoKSxcbiAgICAgICAgbmV3VmFsdWUsXG4gICAgICAgIHRoaXMuaXNTdXJ2ZXlJbnB1dFRleHRVcGRhdGUgPyBcInRleHRcIiA6IGZhbHNlXG4gICAgICApO1xuICAgIH1cbiAgfVxuICAvL0lRdWVzdGlvblxuICB1cGRhdGVWYWx1ZUZyb21TdXJ2ZXkobmV3VmFsdWU6IGFueSkge1xuICAgIG5ld1ZhbHVlID0gSGVscGVycy5nZXRVbmJpbmRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgdGhpcy5zZXRRdWVzdGlvblZhbHVlKHRoaXMudmFsdWVGcm9tRGF0YShuZXdWYWx1ZSkpO1xuICB9XG4gIHVwZGF0ZUNvbW1lbnRGcm9tU3VydmV5KG5ld1ZhbHVlOiBhbnkpOiBhbnkge1xuICAgIHRoaXMucXVlc3Rpb25Db21tZW50ID0gbmV3VmFsdWU7XG4gIH1cbiAgcHJvdGVjdGVkIHNldFF1ZXN0aW9uVmFsdWUobmV3VmFsdWU6IGFueSwgdXBkYXRlSXNBbnN3ZXJlZDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICB0aGlzLnF1ZXN0aW9uVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLmZpcmVDYWxsYmFjayh0aGlzLnZhbHVlQ2hhbmdlZENhbGxiYWNrKTtcbiAgICBpZiAodXBkYXRlSXNBbnN3ZXJlZCkgdGhpcy51cGRhdGVJc0Fuc3dlcmVkKCk7XG4gIH1cbiAgb25TdXJ2ZXlWYWx1ZUNoYW5nZWQobmV3VmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZ0Zyb21Kc29uKSByZXR1cm47XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0VmlzaWJsZUluZGV4KHZhbDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuaXNWaXNpYmxlIHx8ICF0aGlzLmhhc1RpdGxlKSB7XG4gICAgICB2YWwgPSAtMTtcbiAgICB9XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJsZUluZGV4XCIsIHZhbCk7XG4gICAgcmV0dXJuIHZhbCA8IDAgPyAwIDogMTtcbiAgfVxuICBwdWJsaWMgcmVtb3ZlRWxlbWVudChlbGVtZW50OiBJRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgc3VwcG9ydEdvTmV4dFBhZ2VBdXRvbWF0aWMoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gcmVtb3ZlIHZhbHVlcyBmcm9tIHRoZSBjdXJyZW50IHF1ZXN0aW9uLCB0aGF0IGVuZC11c2VyIHdpbGwgbm90IGJlIGFibGUgdG8gZW50ZXIuXG4gICAqIEZvciBleGFtcGxlIHRoZSB2YWx1ZSB0aGF0IGRvZXNuJ3QgZXhpc3RzIGluIGEgcmFkaWdyb3VwL2Ryb3Bkb3duL2NoZWNrYm94IGNob2ljZXMgb3IgbWF0cml4IHJvd3MvY29sdW1ucy5cbiAgICovXG4gIHB1YmxpYyBjbGVhckluY29ycmVjdFZhbHVlcygpIHt9XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gY2xlYXIgYWxsIGVycm9ycyBpbiB0aGUgcXVlc3Rpb25cbiAgICovXG4gIHB1YmxpYyBjbGVhckVycm9ycygpIHtcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xuICB9XG4gIHB1YmxpYyBjbGVhclVudXNlZFZhbHVlcygpIHt9XG4gIG9uQW55VmFsdWVDaGFuZ2VkKG5hbWU6IHN0cmluZykge31cbiAgLy9JTG9jYWxpemFibGVPd25lclxuICBsb2NPd25lcjogSUxvY2FsaXphYmxlT3duZXIgPSBudWxsO1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBzdXJ2ZXkgbG9jYWxlXG4gICAqIEBzZWUgU3VydmV5TW9kZWwubG9jYWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5XG4gICAgICA/ICg8SUxvY2FsaXphYmxlT3duZXI+KDxhbnk+dGhpcy5zdXJ2ZXkpKS5nZXRMb2NhbGUoKVxuICAgICAgOiB0aGlzLmxvY093bmVyXG4gICAgICA/IHRoaXMubG9jT3duZXIuZ2V0TG9jYWxlKClcbiAgICAgIDogXCJcIjtcbiAgfVxuICBwdWJsaWMgZ2V0TWFya2Rvd25IdG1sKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5XG4gICAgICA/IHRoaXMuc3VydmV5LmdldFN1cnZleU1hcmtkb3duSHRtbCh0aGlzLCB0ZXh0KVxuICAgICAgOiB0aGlzLmxvY093bmVyXG4gICAgICA/IHRoaXMubG9jT3duZXIuZ2V0TWFya2Rvd25IdG1sKHRleHQpXG4gICAgICA6IG51bGw7XG4gIH1cbiAgcHVibGljIGdldFByb2Nlc3NlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy50ZXh0UHJvY2Vzc29yKVxuICAgICAgcmV0dXJuIHRoaXMudGV4dFByb2Nlc3Nvci5wcm9jZXNzVGV4dCh0ZXh0LCB0aGlzLnVzZURpc3BsYXlWYWx1ZXNJblRpdGxlKTtcbiAgICBpZiAodGhpcy5sb2NPd25lcikgcmV0dXJuIHRoaXMubG9jT3duZXIuZ2V0UHJvY2Vzc2VkVGV4dCh0ZXh0KTtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuICAvL0lTdXJ2ZXlFcnJvck93bmVyXG4gIGdldEVycm9yQ3VzdG9tVGV4dCh0ZXh0OiBzdHJpbmcsIGVycm9yOiBTdXJ2ZXlFcnJvcik6IHN0cmluZyB7XG4gICAgaWYgKCEhdGhpcy5zdXJ2ZXkpIHJldHVybiB0aGlzLnN1cnZleS5nZXRFcnJvckN1c3RvbVRleHQodGV4dCwgZXJyb3IpO1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG4gIC8vSVZhbGlkYXRvck93bmVyXG4gIGdldFZhbGlkYXRvclRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZ2V0IHZhbGlkYXRlZFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cbiAgc2V0IHZhbGlkYXRlZFZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgfVxuICBnZXRBbGxWYWx1ZXMoKTogYW55IHtcbiAgICByZXR1cm4gISF0aGlzLmRhdGEgPyB0aGlzLmRhdGEuZ2V0QWxsVmFsdWVzKCkgOiBudWxsO1xuICB9XG59XG5TZXJpYWxpemVyLmFkZENsYXNzKFwicXVlc3Rpb25cIiwgW1xuICBcIiFuYW1lXCIsXG4gIHsgbmFtZTogXCJ2aXNpYmxlOmJvb2xlYW5cIiwgZGVmYXVsdDogdHJ1ZSB9LFxuICB7IG5hbWU6IFwidXNlRGlzcGxheVZhbHVlc0luVGl0bGU6Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlLCBsYXlvdXQ6IFwicm93XCIgfSxcbiAgXCJ2aXNpYmxlSWY6Y29uZGl0aW9uXCIsXG4gIHsgbmFtZTogXCJ3aWR0aFwiIH0sXG4gIHsgbmFtZTogXCJzdGFydFdpdGhOZXdMaW5lOmJvb2xlYW5cIiwgZGVmYXVsdDogdHJ1ZSwgbGF5b3V0OiBcInJvd1wiIH0sXG4gIHsgbmFtZTogXCJpbmRlbnQ6bnVtYmVyXCIsIGRlZmF1bHQ6IDAsIGNob2ljZXM6IFswLCAxLCAyLCAzXSwgbGF5b3V0OiBcInJvd1wiIH0sXG4gIHtcbiAgICBuYW1lOiBcInBhZ2VcIixcbiAgICBpc1NlcmlhbGl6YWJsZTogZmFsc2UsXG4gICAgY2hvaWNlczogZnVuY3Rpb24ob2JqOiBhbnkpIHtcbiAgICAgIHZhciBzdXJ2ZXkgPSBvYmogPyBvYmouc3VydmV5IDogbnVsbDtcbiAgICAgIHJldHVybiBzdXJ2ZXlcbiAgICAgICAgPyBzdXJ2ZXkucGFnZXMubWFwKChwOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBwLm5hbWUsIHRleHQ6IHAudGl0bGUgfTtcbiAgICAgICAgICB9KVxuICAgICAgICA6IFtdO1xuICAgIH1cbiAgfSxcbiAgeyBuYW1lOiBcInRpdGxlOnRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1RpdGxlXCIsIGxheW91dDogXCJyb3dcIiB9LFxuICB7XG4gICAgbmFtZTogXCJkZXNjcmlwdGlvbjp0ZXh0XCIsXG4gICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0Rlc2NyaXB0aW9uXCIsXG4gICAgbGF5b3V0OiBcInJvd1wiXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImRlc2NyaXB0aW9uTG9jYXRpb25cIixcbiAgICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgICBjaG9pY2VzOiBbXCJkZWZhdWx0XCIsIFwidW5kZXJJbnB1dFwiLCBcInVuZGVyVGl0bGVcIl1cbiAgfSxcbiAgXCJ2YWx1ZU5hbWVcIixcbiAgXCJlbmFibGVJZjpjb25kaXRpb25cIixcbiAgXCJkZWZhdWx0VmFsdWU6dmFsdWVcIixcbiAgXCJjb3JyZWN0QW5zd2VyOnZhbHVlXCIsXG4gIFwiaXNSZXF1aXJlZDpib29sZWFuXCIsXG4gIFwicmVxdWlyZWRJZjpjb25kaXRpb25cIixcbiAge1xuICAgIG5hbWU6IFwicmVxdWlyZWRFcnJvclRleHQ6dGV4dFwiLFxuICAgIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NSZXF1aXJlZEVycm9yVGV4dFwiXG4gIH0sXG4gIFwicmVhZE9ubHk6Ym9vbGVhblwiLFxuICB7XG4gICAgbmFtZTogXCJ2YWxpZGF0b3JzOnZhbGlkYXRvcnNcIixcbiAgICBiYXNlQ2xhc3NOYW1lOiBcInN1cnZleXZhbGlkYXRvclwiLFxuICAgIGNsYXNzTmFtZVBhcnQ6IFwidmFsaWRhdG9yXCJcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwidGl0bGVMb2NhdGlvblwiLFxuICAgIGRlZmF1bHQ6IFwiZGVmYXVsdFwiLFxuICAgIGNob2ljZXM6IFtcImRlZmF1bHRcIiwgXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIsIFwiaGlkZGVuXCJdLFxuICAgIGxheW91dDogXCJyb3dcIlxuICB9XG5dKTtcblNlcmlhbGl6ZXIuYWRkQWx0ZXJOYXRpdmVDbGFzc05hbWUoXCJxdWVzdGlvblwiLCBcInF1ZXN0aW9uYmFzZVwiKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9xdWVzdGlvbi50cyIsImV4cG9ydCB2YXIgc3VydmV5Q3NzOiBhbnkgPSB7XG4gIGN1cnJlbnRUeXBlOiBcIlwiLFxuICBnZXRDc3M6IGZ1bmN0aW9uKCkge1xuICAgIHZhciBsb2MgPSB0aGlzLmN1cnJlbnRUeXBlID8gdGhpc1t0aGlzLmN1cnJlbnRUeXBlXSA6IGRlZmF1bHRTdGFuZGFyZENzcztcbiAgICBpZiAoIWxvYykgbG9jID0gZGVmYXVsdFN0YW5kYXJkQ3NzO1xuICAgIHJldHVybiBsb2M7XG4gIH1cbn07XG5cbmV4cG9ydCB2YXIgZGVmYXVsdFN0YW5kYXJkQ3NzID0ge1xuICByb290OiBcInN2X21haW4gc3ZfZGVmYXVsdF9jc3NcIixcbiAgY29udGFpbmVyOiBcInN2X2NvbnRhaW5lclwiLFxuICBoZWFkZXI6IFwic3ZfaGVhZGVyXCIsXG4gIGJvZHk6IFwic3ZfYm9keVwiLFxuICBib2R5RW1wdHk6IFwic3ZfYm9keSBzdl9ib2R5X2VtcHR5XCIsXG4gIGZvb3RlcjogXCJzdl9uYXZcIixcbiAgdGl0bGU6IFwiXCIsXG4gIGRlc2NyaXB0aW9uOiBcIlwiLFxuICBuYXZpZ2F0aW9uQnV0dG9uOiBcIlwiLFxuICBjb21wbGV0ZWRQYWdlOiBcInN2X2NvbXBsZXRlZF9wYWdlXCIsXG4gIG5hdmlnYXRpb246IHtcbiAgICBjb21wbGV0ZTogXCJzdl9jb21wbGV0ZV9idG5cIixcbiAgICBwcmV2OiBcInN2X3ByZXZfYnRuXCIsXG4gICAgbmV4dDogXCJzdl9uZXh0X2J0blwiLFxuICAgIHN0YXJ0OiBcInN2X3N0YXJ0X2J0blwiXG4gIH0sXG4gIHByb2dyZXNzOiBcInN2X3Byb2dyZXNzXCIsXG4gIHByb2dyZXNzQmFyOiBcInN2X3Byb2dyZXNzX2JhclwiLFxuICBwcm9ncmVzc1RleHRJbkJhcjogXCJzdi1oaWRkZW5cIixcbiAgcGFnZToge1xuICAgIHJvb3Q6IFwic3ZfcF9yb290XCIsXG4gICAgdGl0bGU6IFwiXCIsXG4gICAgZGVzY3JpcHRpb246IFwiXCJcbiAgfSxcbiAgLy8gVE9ETzogbW92ZSB0byB0aGUgcGFnZSBvYmplY3RcbiAgcGFnZVRpdGxlOiBcInN2X3BhZ2VfdGl0bGVcIixcbiAgcGFnZURlc2NyaXB0aW9uOiBcIlwiLFxuICByb3c6IFwic3Zfcm93XCIsXG4gIHF1ZXN0aW9uOiB7XG4gICAgbWFpblJvb3Q6IFwic3ZfcSBzdl9xc3RuXCIsXG4gICAgZmxvd1Jvb3Q6IFwic3ZfcV9mbG93IHN2X3FzdG5cIixcbiAgICBoZWFkZXI6IFwiXCIsXG4gICAgaGVhZGVyTGVmdDogXCJ0aXRsZS1sZWZ0XCIsXG4gICAgY29udGVudDogXCJcIixcbiAgICBjb250ZW50TGVmdDogXCJjb250ZW50LWxlZnRcIixcbiAgICB0aXRsZUxlZnRSb290OiBcInN2X3FzdG5fbGVmdFwiLFxuICAgIHJlcXVpcmVkVGV4dDogXCJzdl9xX3JlcXVpcmVkX3RleHRcIixcbiAgICB0aXRsZTogXCJzdl9xX3RpdGxlXCIsXG4gICAgbnVtYmVyOiBcInN2X3FfbnVtXCIsXG4gICAgZGVzY3JpcHRpb246IFwic3ZfcV9kZXNjcmlwdGlvblwiLFxuICAgIGNvbW1lbnQ6IFwiXCIsXG4gICAgcmVxdWlyZWQ6IFwiXCIsXG4gICAgdGl0bGVSZXF1aXJlZDogXCJcIixcbiAgICBoYXNFcnJvcjogXCJcIixcbiAgICBpbmRlbnQ6IDIwLFxuICAgIGZvb3RlcjogXCJzdl9xX2Zvb3RlclwiLFxuICAgIGZvcm1Hcm91cDogXCJmb3JtLWdyb3VwXCJcbiAgfSxcbiAgcGFuZWw6IHtcbiAgICB0aXRsZTogXCJzdl9wX3RpdGxlXCIsXG4gICAgdGl0bGVFeHBhbmRhYmxlOiBcInN2X3BfdGl0bGVfZXhwYW5kYWJsZVwiLFxuICAgIGljb246IFwic3ZfcGFuZWxfaWNvblwiLFxuICAgIGljb25FeHBhbmRlZDogXCJzdl9leHBhbmRlZFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcInN2X3BfZGVzY3JpcHRpb25cIixcbiAgICBjb250YWluZXI6IFwic3ZfcF9jb250YWluZXJcIlxuICB9LFxuICBlcnJvcjoge1xuICAgIHJvb3Q6IFwic3ZfcV9lcmJveFwiLFxuICAgIGljb246IFwiXCIsXG4gICAgaXRlbTogXCJcIixcbiAgICBsb2NhdGlvblRvcDogXCJzdl9xc3RuX2Vycm9yX3RvcFwiLFxuICAgIGxvY2F0aW9uQm90dG9tOiBcInN2X3FzdG5fZXJyb3JfYm90dG9tXCJcbiAgfSxcblxuICBib29sZWFuOiB7XG4gICAgcm9vdDogXCJzdl9xY2JjIHN2X3FibG5cIixcbiAgICBpdGVtOiBcInN2LWJvb2xlYW5cIixcbiAgICBjb250cm9sOiBcInN2LXZpc3VhbGx5aGlkZGVuXCIsXG4gICAgaXRlbUNoZWNrZWQ6IFwic3YtYm9vbGVhbi0tY2hlY2tlZCBjaGVja2VkXCIsXG4gICAgaXRlbUluZGV0ZXJtaW5hdGU6IFwic3YtYm9vbGVhbi0taW5kZXRlcm1pbmF0ZVwiLFxuICAgIGl0ZW1EaXNhYmxlZDogXCJzdi1ib29sZWFuLS1kaXNhYmxlZFwiLFxuICAgIHN3aXRjaDogXCJzdi1ib29sZWFuX19zd2l0Y2hcIixcbiAgICBzbGlkZXI6IFwic3YtYm9vbGVhbl9fc2xpZGVyXCIsXG4gICAgbGFiZWw6IFwic3YtYm9vbGVhbl9fbGFiZWwgXCIsXG4gICAgZGlzYWJsZWRMYWJlbDogXCJzdi1ib29sZWFuX19sYWJlbC0tZGlzYWJsZWRcIlxuICB9LFxuICBjaGVja2JveDoge1xuICAgIHJvb3Q6IFwic3ZfcWNiYyBzdl9xY2J4XCIsXG4gICAgaXRlbTogXCJzdl9xX2NoZWNrYm94XCIsXG4gICAgaXRlbUNoZWNrZWQ6IFwiY2hlY2tlZFwiLFxuICAgIGl0ZW1JbmxpbmU6IFwic3ZfcV9jaGVja2JveF9pbmxpbmVcIixcbiAgICBsYWJlbDogXCJzdl9xX2NoZWNrYm94X2xhYmVsXCIsXG4gICAgbGFiZWxDaGVja2VkOiBcIlwiLFxuICAgIGl0ZW1Db250cm9sOiBcInN2X3FfY2hlY2tib3hfY29udHJvbF9pdGVtXCIsXG4gICAgaXRlbURlY29yYXRvcjogXCJzdi1oaWRkZW5cIixcbiAgICBjb250cm9sTGFiZWw6IFwic3ZfcV9jaGVja2JveF9jb250cm9sX2xhYmVsXCIsXG4gICAgbWF0ZXJpYWxEZWNvcmF0b3I6IFwiY2hlY2tib3gtbWF0ZXJpYWxcIixcbiAgICBvdGhlcjogXCJzdl9xX290aGVyIHN2X3FfY2hlY2tib3hfb3RoZXJcIixcbiAgICBjb2x1bW46IFwic3ZfcV9zZWxlY3RfY29sdW1uXCJcbiAgfSxcbiAgY29tbWVudDogXCJcIixcbiAgZHJvcGRvd246IHtcbiAgICByb290OiBcIlwiLFxuICAgIGNvbnRyb2w6IFwic3ZfcV9kcm9wZG93bl9jb250cm9sXCIsXG4gICAgc2VsZWN0V3JhcHBlcjogXCJzdl9zZWxlY3Rfd3JhcHBlclwiLFxuICAgIG90aGVyOiBcInN2X3FfZGRfb3RoZXJcIlxuICB9LFxuICBodG1sOiB7IHJvb3Q6IFwiXCIgfSxcbiAgbWF0cml4OiB7XG4gICAgcm9vdDogXCJzdl9xX21hdHJpeFwiLFxuICAgIGxhYmVsOiBcInN2X3FfbV9sYWJlbFwiLFxuICAgIGl0ZW1DaGVja2VkOiBcImNoZWNrZWRcIixcbiAgICBpdGVtRGVjb3JhdG9yOiBcInN2LWhpZGRlblwiLFxuICAgIGNlbGxUZXh0OiBcInN2X3FfbV9jZWxsX3RleHRcIixcbiAgICBjZWxsVGV4dFNlbGVjdGVkOiBcInN2X3FfbV9jZWxsX3NlbGVjdGVkXCIsXG4gICAgY2VsbExhYmVsOiBcInN2X3FfbV9jZWxsX2xhYmVsXCJcbiAgfSxcbiAgbWF0cml4ZHJvcGRvd246IHsgcm9vdDogXCJzdl9xX21hdHJpeF9kcm9wZG93blwiIH0sXG4gIG1hdHJpeGR5bmFtaWM6IHtcbiAgICByb290OiBcInN2X3FfbWF0cml4X2R5bmFtaWNcIixcbiAgICBidXR0b246IFwic3ZfbWF0cml4X2R5bmFtaWNfYnV0dG9uXCIsXG4gICAgYnV0dG9uQWRkOiBcIlwiLFxuICAgIGJ1dHRvblJlbW92ZTogXCJcIixcbiAgICBpY29uQWRkOiBcIlwiLFxuICAgIGljb25SZW1vdmU6IFwiXCJcbiAgfSxcbiAgcGFuZWxkeW5hbWljOiB7XG4gICAgcm9vdDogXCJzdl9wYW5lbF9keW5hbWljXCIsXG4gICAgdGl0bGU6IFwic3ZfcF90aXRsZVwiLFxuICAgIGJ1dHRvbjogXCJcIixcbiAgICBidXR0b25BZGQ6IFwic3YtcGFuZWxkeW5hbWljX19hZGQtYnRuXCIsXG4gICAgYnV0dG9uUmVtb3ZlOiBcIlwiLFxuICAgIGJ1dHRvblByZXY6IFwic3YtcGFuZWxkeW5hbWljX19wcmV2LWJ0blwiLFxuICAgIGJ1dHRvbk5leHQ6IFwic3YtcGFuZWxkeW5hbWljX19uZXh0LWJ0blwiLFxuICAgIHByb2dyZXNzQ29udGFpbmVyOiBcInN2LXBhbmVsZHluYW1pY19fcHJvZ3Jlc3MtY29udGFpbmVyXCIsXG4gICAgcHJvZ3Jlc3M6IFwic3YtcHJvZ3Jlc3NcIixcbiAgICBwcm9ncmVzc0JhcjogXCJzdi1wcm9ncmVzc19fYmFyXCIsXG4gICAgcHJvZ3Jlc3NUZXh0OiBcInN2LXBhbmVsZHluYW1pY19fcHJvZ3Jlc3MtdGV4dFwiXG4gIH0sXG4gIG11bHRpcGxldGV4dDoge1xuICAgIHJvb3Q6IFwic3ZfcV9tdFwiLFxuICAgIGl0ZW1UaXRsZTogXCJzdl9xX210X3RpdGxlXCIsXG4gICAgcm93OiBcInN2X3FfbXRfcm93XCIsXG4gICAgaXRlbVZhbHVlOiBcInN2X3FfbXRfaXRlbV92YWx1ZSBzdl9xX3RleHRfcm9vdFwiXG4gIH0sXG4gIHJhZGlvZ3JvdXA6IHtcbiAgICByb290OiBcInN2X3FjYmNcIixcbiAgICBpdGVtOiBcInN2X3FfcmFkaW9ncm91cFwiLFxuICAgIGl0ZW1DaGVja2VkOiBcImNoZWNrZWRcIixcbiAgICBpdGVtSW5saW5lOiBcInN2X3FfcmFkaW9ncm91cF9pbmxpbmVcIixcbiAgICBpdGVtRGVjb3JhdG9yOiBcInN2LWhpZGRlblwiLFxuICAgIGxhYmVsOiBcInN2X3FfcmFkaW9ncm91cF9sYWJlbFwiLFxuICAgIGxhYmVsQ2hlY2tlZDogXCJcIixcbiAgICBpdGVtQ29udHJvbDogXCJzdl9xX3JhZGlvZ3JvdXBfY29udHJvbF9pdGVtXCIsXG4gICAgY29udHJvbExhYmVsOiBcIlwiLFxuICAgIG1hdGVyaWFsRGVjb3JhdG9yOiBcImNpcmNsZVwiLFxuICAgIG90aGVyOiBcInN2X3Ffb3RoZXIgc3ZfcV9yYWRpb2dyb3VwX290aGVyXCIsXG4gICAgY2xlYXJCdXR0b246IFwic3ZfcV9yYWRpb2dyb3VwX2NsZWFyXCIsXG4gICAgY29sdW1uOiBcInN2X3Ffc2VsZWN0X2NvbHVtblwiXG4gIH0sXG4gIGltYWdlcGlja2VyOiB7XG4gICAgcm9vdDogXCJzdl9pbWdzZWxcIixcbiAgICBpdGVtOiBcInN2X3FfaW1nc2VsXCIsXG4gICAgaXRlbUNoZWNrZWQ6IFwiY2hlY2tlZFwiLFxuICAgIGxhYmVsOiBcInN2X3FfaW1nc2VsX2xhYmVsXCIsXG4gICAgaXRlbUNvbnRyb2w6IFwic3ZfcV9pbWdzZWxfY29udHJvbF9pdGVtXCIsXG4gICAgaW1hZ2U6IFwic3ZfcV9pbWdzZWxfaW1hZ2VcIixcbiAgICBpdGVtSW5saW5lOiBcInN2X3FfaW1hZ2VwaWNrZXJfaW5saW5lXCIsXG4gICAgaXRlbVRleHQ6IFwic3ZfcV9pbWdzZWxfdGV4dFwiLFxuICAgIGNsZWFyQnV0dG9uOiBcInN2X3FfcmFkaW9ncm91cF9jbGVhclwiXG4gIH0sXG4gIHJhdGluZzoge1xuICAgIHJvb3Q6IFwic3ZfcV9yYXRpbmdcIixcbiAgICBpdGVtOiBcInN2X3FfcmF0aW5nX2l0ZW1cIixcbiAgICBzZWxlY3RlZDogXCJhY3RpdmVcIixcbiAgICBtaW5UZXh0OiBcInN2X3FfcmF0aW5nX21pbl90ZXh0XCIsXG4gICAgaXRlbVRleHQ6IFwic3ZfcV9yYXRpbmdfaXRlbV90ZXh0XCIsXG4gICAgbWF4VGV4dDogXCJzdl9xX3JhdGluZ19tYXhfdGV4dFwiLFxuICAgIGRpc2FibGVkOiBcIlwiXG4gIH0sXG4gIHRleHQ6IFwic3ZfcV90ZXh0X3Jvb3RcIixcbiAgZXhwcmVzc2lvbjogXCJcIixcbiAgZmlsZToge1xuICAgIHJvb3Q6IFwic3ZfcV9maWxlXCIsXG4gICAgcGxhY2Vob2xkZXJJbnB1dDogXCJzdl9xX2ZpbGVfcGxhY2Vob2xkZXJcIixcbiAgICBwcmV2aWV3OiBcInN2X3FfZmlsZV9wcmV2aWV3XCIsXG4gICAgcmVtb3ZlQnV0dG9uOiBcInN2X3FfZmlsZV9yZW1vdmVfYnV0dG9uXCIsXG4gICAgZmlsZUlucHV0OiBcInN2X3FfZmlsZV9pbnB1dFwiLFxuICAgIHJlbW92ZUZpbGU6IFwic3ZfcV9maWxlX3JlbW92ZVwiLFxuICAgIHJlbW92ZUZpbGVTdmc6IFwic3YtaGlkZGVuXCIsXG4gICAgZmlsZURlY29yYXRvcjogXCJzdi1oaWRkZW5cIixcbiAgICBmaWxlU2lnbkJvdHRvbTogXCJzdi1oaWRkZW5cIixcbiAgICByZW1vdmVCdXR0b25Cb3R0b206IFwic3YtaGlkZGVuXCJcbiAgfSxcbiAgc2F2ZURhdGE6IHtcbiAgICByb290OiBcIlwiLFxuICAgIHNhdmluZzogXCJcIixcbiAgICBlcnJvcjogXCJcIixcbiAgICBzdWNjZXNzOiBcIlwiLFxuICAgIHNhdmVBZ2FpbkJ1dHRvbjogXCJcIlxuICB9LFxuICB3aW5kb3c6IHtcbiAgICByb290OiBcInN2X3dpbmRvd1wiLFxuICAgIGJvZHk6IFwic3Zfd2luZG93X2NvbnRlbnRcIixcbiAgICBoZWFkZXI6IHtcbiAgICAgIHJvb3Q6IFwic3Zfd2luZG93X3RpdGxlXCIsXG4gICAgICB0aXRsZTogXCJcIixcbiAgICAgIGJ1dHRvbjogXCJcIixcbiAgICAgIGJ1dHRvbkV4cGFuZGVkOiBcIlwiLFxuICAgICAgYnV0dG9uQ29sbGFwc2VkOiBcIlwiXG4gICAgfVxuICB9XG59O1xuXG5zdXJ2ZXlDc3NbXCJzdGFuZGFyZFwiXSA9IGRlZmF1bHRTdGFuZGFyZENzcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9kZWZhdWx0Q3NzL2Nzc3N0YW5kYXJkLnRzIiwiaW1wb3J0IHsgSGFzaFRhYmxlIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgUHJvY2Vzc1ZhbHVlIH0gZnJvbSBcIi4vY29uZGl0aW9uUHJvY2Vzc1ZhbHVlXCI7XG5cbmltcG9ydCB7IE9wZXJhbmQsIEZ1bmN0aW9uT3BlcmFuZCB9IGZyb20gXCIuL2V4cHJlc3Npb25zL2V4cHJlc3Npb25zXCI7XG5pbXBvcnQgeyBDb25kaXRpb25zUGFyc2VyIH0gZnJvbSBcIi4vY29uZGl0aW9uc1BhcnNlclwiO1xuXG5leHBvcnQgY2xhc3MgRXhwcmVzc2lvblJ1bm5lckJhc2Uge1xuICBwcml2YXRlIGV4cHJlc3Npb25WYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIG9wZXJhbmQ6IE9wZXJhbmQ7XG4gIHByaXZhdGUgcHJvY2Vzc1ZhbHVlID0gbmV3IFByb2Nlc3NWYWx1ZSgpO1xuICBwcml2YXRlIHBhcnNlciA9IG5ldyBDb25kaXRpb25zUGFyc2VyKCk7XG4gIHByaXZhdGUgaXNBc3luY1ZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaGFzRnVuY3Rpb25WYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGFzeW5jRnVuY0xpc3Q6IEFycmF5PEZ1bmN0aW9uT3BlcmFuZD47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGV4cHJlc3Npb246IHN0cmluZykge1xuICAgIHRoaXMuZXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4cHJlc3Npb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGV4cHJlc3Npb24odmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmV4cHJlc3Npb24gPT09IHZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5leHByZXNzaW9uVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9wZXJhbmQgPSB0aGlzLnBhcnNlci5wYXJzZUV4cHJlc3Npb24odmFsdWUpO1xuICAgIHRoaXMuaGFzRnVuY3Rpb25WYWx1ZSA9IHRoaXMuY2FuUnVuKCkgPyB0aGlzLm9wZXJhbmQuaGFzRnVuY3Rpb24oKSA6IGZhbHNlO1xuICAgIHRoaXMuaXNBc3luY1ZhbHVlID0gdGhpcy5oYXNGdW5jdGlvbigpXG4gICAgICA/IHRoaXMub3BlcmFuZC5oYXNBc3luY0Z1bmN0aW9uKClcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFyaWFibGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5vcGVyYW5kKSByZXR1cm4gW107XG5cbiAgICB2YXIgdmFyaWFibGVzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgdGhpcy5vcGVyYW5kLnNldFZhcmlhYmxlcyh2YXJpYWJsZXMpO1xuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBwdWJsaWMgaGFzRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRnVuY3Rpb25WYWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzQXN5bmMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNBc3luY1ZhbHVlO1xuICB9XG5cbiAgcHVibGljIGNhblJ1bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9wZXJhbmQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgcnVuQ29yZShcbiAgICB2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LFxuICAgIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+ID0gbnVsbFxuICApOiBhbnkge1xuICAgIGlmICghdGhpcy5vcGVyYW5kKSByZXR1cm4gbnVsbDtcblxuICAgIHRoaXMucHJvY2Vzc1ZhbHVlLnZhbHVlcyA9IHZhbHVlcztcbiAgICB0aGlzLnByb2Nlc3NWYWx1ZS5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICBpZiAoIXRoaXMuaXNBc3luYykgcmV0dXJuIHRoaXMucnVuVmFsdWVzKCk7XG4gICAgdGhpcy5hc3luY0Z1bmNMaXN0ID0gW107XG4gICAgdGhpcy5vcGVyYW5kLmFkZFRvQXN5bmNMaXN0KHRoaXMuYXN5bmNGdW5jTGlzdCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFzeW5jRnVuY0xpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYXN5bmNGdW5jTGlzdFtpXS5vbkFzeW5jUmVhZHkgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9Bc3luY0Z1bmN0aW9uUmVhZHkoKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hc3luY0Z1bmNMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmFzeW5jRnVuY0xpc3RbaV0uZXZhbHVhdGVBc3luYyh0aGlzLnByb2Nlc3NWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwcml2YXRlIGRvQXN5bmNGdW5jdGlvblJlYWR5KCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hc3luY0Z1bmNMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIXRoaXMuYXN5bmNGdW5jTGlzdFtpXS5pc1JlYWR5KSByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucnVuVmFsdWVzKCk7XG4gIH1cbiAgcHJpdmF0ZSBydW5WYWx1ZXMoKTogYW55IHtcbiAgICB2YXIgcmVzID0gdGhpcy5vcGVyYW5kLmV2YWx1YXRlKHRoaXMucHJvY2Vzc1ZhbHVlKTtcbiAgICB0aGlzLmRvT25Db21wbGV0ZShyZXMpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJvdGVjdGVkIGRvT25Db21wbGV0ZShyZXM6IGFueSkge31cbn1cblxuZXhwb3J0IGNsYXNzIENvbmRpdGlvblJ1bm5lciBleHRlbmRzIEV4cHJlc3Npb25SdW5uZXJCYXNlIHtcbiAgcHVibGljIG9uUnVuQ29tcGxldGU6IChyZXN1bHQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHB1YmxpYyBydW4oXG4gICAgdmFsdWVzOiBIYXNoVGFibGU8YW55PixcbiAgICBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55PiA9IG51bGxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucnVuQ29yZSh2YWx1ZXMsIHByb3BlcnRpZXMpID09IHRydWU7XG4gIH1cbiAgcHJvdGVjdGVkIGRvT25Db21wbGV0ZShyZXM6IGFueSkge1xuICAgIGlmICghIXRoaXMub25SdW5Db21wbGV0ZSkgdGhpcy5vblJ1bkNvbXBsZXRlKHJlcyA9PSB0cnVlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwcmVzc2lvblJ1bm5lciBleHRlbmRzIEV4cHJlc3Npb25SdW5uZXJCYXNlIHtcbiAgcHVibGljIG9uUnVuQ29tcGxldGU6IChyZXN1bHQ6IGFueSkgPT4gdm9pZDtcbiAgcHVibGljIHJ1bih2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LCBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55PiA9IG51bGwpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJ1bkNvcmUodmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICBwcm90ZWN0ZWQgZG9PbkNvbXBsZXRlKHJlczogYW55KSB7XG4gICAgaWYgKCEhdGhpcy5vblJ1bkNvbXBsZXRlKSB0aGlzLm9uUnVuQ29tcGxldGUocmVzKTtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbmRpdGlvbnMudHMiLCJpbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9zdXJ2ZXlTdHJpbmdzXCI7XG5pbXBvcnQgeyBJTG9jYWxpemFibGVPd25lciwgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuaW1wb3J0IHsgU3VydmV5RXJyb3IsIElTdXJ2ZXlFcnJvck93bmVyIH0gZnJvbSBcIi4vYmFzZVwiO1xuXG5leHBvcnQgY2xhc3MgQW5zd2VyUmVxdWlyZWRFcnJvciBleHRlbmRzIFN1cnZleUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRleHQ6IHN0cmluZyA9IG51bGwsXG4gICAgZXJyb3JPd25lcjogSVN1cnZleUVycm9yT3duZXIgPSBudWxsXG4gICkge1xuICAgIHN1cGVyKHRleHQsIGVycm9yT3duZXIpO1xuICB9XG4gIHB1YmxpYyBnZXRFcnJvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJyZXF1aXJlZFwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicmVxdWlyZWRFcnJvclwiKTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIE9uZUFuc3dlclJlcXVpcmVkRXJyb3IgZXh0ZW5kcyBTdXJ2ZXlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZXh0OiBzdHJpbmcgPSBudWxsLFxuICAgIGVycm9yT3duZXI6IElTdXJ2ZXlFcnJvck93bmVyID0gbnVsbFxuICApIHtcbiAgICBzdXBlcih0ZXh0LCBlcnJvck93bmVyKTtcbiAgfVxuICBwdWJsaWMgZ2V0RXJyb3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicmVxdWlyZW9uZWFuc3dlclwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicmVxdWlyZWRFcnJvckluUGFuZWxcIik7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBSZXF1cmVOdW1lcmljRXJyb3IgZXh0ZW5kcyBTdXJ2ZXlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZXh0OiBzdHJpbmcgPSBudWxsLFxuICAgIGVycm9yT3duZXI6IElTdXJ2ZXlFcnJvck93bmVyID0gbnVsbFxuICApIHtcbiAgICBzdXBlcih0ZXh0LCBlcnJvck93bmVyKTtcbiAgfVxuICBwdWJsaWMgZ2V0RXJyb3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicmVxdWlyZW51bWVyaWNcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm51bWVyaWNFcnJvclwiKTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIEV4Y2VlZFNpemVFcnJvciBleHRlbmRzIFN1cnZleUVycm9yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXhTaXplOiBudW1iZXIsIGVycm9yT3duZXI6IElTdXJ2ZXlFcnJvck93bmVyID0gbnVsbCkge1xuICAgIHN1cGVyKG51bGwsIGVycm9yT3duZXIpO1xuICAgIHRoaXMubG9jVGV4dC50ZXh0ID0gdGhpcy5nZXRUZXh0KCk7XG4gIH1cbiAgcHVibGljIGdldEVycm9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImV4Y2VlZHNpemVcIjtcbiAgfVxuICBwdWJsaWMgZ2V0RGVmYXVsdFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uXG4gICAgICAuZ2V0U3RyaW5nKFwiZXhjZWVkTWF4U2l6ZVwiKVxuICAgICAgW1wiZm9ybWF0XCJdKHRoaXMuZ2V0VGV4dFNpemUoKSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRUZXh0U2l6ZSgpIHtcbiAgICB2YXIgc2l6ZXMgPSBbXCJCeXRlc1wiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiLCBcIlRCXCJdO1xuICAgIHZhciBmaXhlZCA9IFswLCAwLCAyLCAzLCAzXTtcbiAgICBpZiAodGhpcy5tYXhTaXplID09PSAwKSB7XG4gICAgICByZXR1cm4gXCIwIEJ5dGVcIjtcbiAgICB9XG4gICAgdmFyIGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKHRoaXMubWF4U2l6ZSkgLyBNYXRoLmxvZygxMDI0KSk7XG4gICAgdmFyIHZhbHVlID0gdGhpcy5tYXhTaXplIC8gTWF0aC5wb3coMTAyNCwgaSk7XG4gICAgcmV0dXJuIHZhbHVlLnRvRml4ZWQoZml4ZWRbaV0pICsgXCIgXCIgKyBzaXplc1tpXTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIFdlYlJlcXVlc3RFcnJvciBleHRlbmRzIFN1cnZleUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN0YXR1czogc3RyaW5nLFxuICAgIHB1YmxpYyByZXNwb25zZTogc3RyaW5nLFxuICAgIGVycm9yT3duZXI6IElTdXJ2ZXlFcnJvck93bmVyID0gbnVsbFxuICApIHtcbiAgICBzdXBlcihudWxsLCBlcnJvck93bmVyKTtcbiAgfVxuICBwdWJsaWMgZ2V0RXJyb3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwid2VicmVxdWVzdFwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb25cbiAgICAgIC5nZXRTdHJpbmcoXCJ1cmxSZXF1ZXN0RXJyb3JcIilcbiAgICAgIFtcImZvcm1hdFwiXSh0aGlzLnN0YXR1cywgdGhpcy5yZXNwb25zZSk7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBXZWJSZXF1ZXN0RW1wdHlFcnJvciBleHRlbmRzIFN1cnZleUVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRleHQ6IHN0cmluZywgZXJyb3JPd25lcjogSVN1cnZleUVycm9yT3duZXIgPSBudWxsKSB7XG4gICAgc3VwZXIodGV4dCwgZXJyb3JPd25lcik7XG4gIH1cbiAgcHVibGljIGdldEVycm9yVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIndlYnJlcXVlc3RlbXB0eVwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwidXJsR2V0Q2hvaWNlc0Vycm9yXCIpO1xuICB9XG59XG5leHBvcnQgY2xhc3MgT3RoZXJFbXB0eUVycm9yIGV4dGVuZHMgU3VydmV5RXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGV4dDogc3RyaW5nLCBlcnJvck93bmVyOiBJU3VydmV5RXJyb3JPd25lciA9IG51bGwpIHtcbiAgICBzdXBlcih0ZXh0LCBlcnJvck93bmVyKTtcbiAgfVxuICBwdWJsaWMgZ2V0RXJyb3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwib3RoZXJlbXB0eVwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwib3RoZXJSZXF1aXJlZEVycm9yXCIpO1xuICB9XG59XG5leHBvcnQgY2xhc3MgVXBsb2FkaW5nRmlsZUVycm9yIGV4dGVuZHMgU3VydmV5RXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGV4dDogc3RyaW5nLCBlcnJvck93bmVyOiBJU3VydmV5RXJyb3JPd25lciA9IG51bGwpIHtcbiAgICBzdXBlcih0ZXh0LCBlcnJvck93bmVyKTtcbiAgfVxuICBwdWJsaWMgZ2V0RXJyb3JUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwidXBsb2FkaW5nZmlsZVwiO1xuICB9XG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwidXBsb2FkaW5nRmlsZVwiKTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIFJlcXVpcmVkSW5BbGxSb3dzRXJyb3IgZXh0ZW5kcyBTdXJ2ZXlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZXh0OiBzdHJpbmcsIGVycm9yT3duZXI6IElTdXJ2ZXlFcnJvck93bmVyID0gbnVsbCkge1xuICAgIHN1cGVyKHRleHQsIGVycm9yT3duZXIpO1xuICB9XG4gIHB1YmxpYyBnZXRFcnJvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJyZXF1aXJlZGluYWxscm93c2Vycm9yXCI7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJyZXF1aXJlZEluQWxsUm93c0Vycm9yXCIpO1xuICB9XG59XG5leHBvcnQgY2xhc3MgTWluUm93Q291bnRFcnJvciBleHRlbmRzIFN1cnZleUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1pblJvd0NvdW50OiBudW1iZXIsXG4gICAgZXJyb3JPd25lcjogSVN1cnZleUVycm9yT3duZXIgPSBudWxsXG4gICkge1xuICAgIHN1cGVyKG51bGwsIGVycm9yT3duZXIpO1xuICB9XG4gIHB1YmxpYyBnZXRFcnJvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJtaW5yb3djb3VudGVycm9yXCI7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvblxuICAgICAgLmdldFN0cmluZyhcIm1pblJvd0NvdW50RXJyb3JcIilcbiAgICAgIFtcImZvcm1hdFwiXSh0aGlzLm1pblJvd0NvdW50KTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIEtleUR1cGxpY2F0aW9uRXJyb3IgZXh0ZW5kcyBTdXJ2ZXlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZXh0OiBzdHJpbmcsIGVycm9yT3duZXI6IElTdXJ2ZXlFcnJvck93bmVyID0gbnVsbCkge1xuICAgIHN1cGVyKHRleHQsIGVycm9yT3duZXIpO1xuICB9XG4gIHB1YmxpYyBnZXRFcnJvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJrZXlkdXBsaWNhdGlvbmVycm9yXCI7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIpO1xuICB9XG59XG5leHBvcnQgY2xhc3MgQ3VzdG9tRXJyb3IgZXh0ZW5kcyBTdXJ2ZXlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZXh0OiBzdHJpbmcsIGVycm9yT3duZXI6IElTdXJ2ZXlFcnJvck93bmVyID0gbnVsbCkge1xuICAgIHN1cGVyKHRleHQsIGVycm9yT3duZXIpO1xuICB9XG4gIHB1YmxpYyBnZXRFcnJvclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjdXN0b21cIjtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2Vycm9yLnRzIiwiaW1wb3J0IHsgSUxvY2FsaXphYmxlT3duZXIsIExvY2FsaXphYmxlU3RyaW5nIH0gZnJvbSBcIi4vbG9jYWxpemFibGVzdHJpbmdcIjtcbmltcG9ydCB7IEpzb25PYmplY3QsIEpzb25PYmplY3RQcm9wZXJ0eSwgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5pbXBvcnQgeyBDb25kaXRpb25SdW5uZXIgfSBmcm9tIFwiLi9jb25kaXRpb25zXCI7XG5pbXBvcnQgeyBCYXNlIH0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgc2V0dGluZ3MgfSBmcm9tIFwiLi9zZXR0aW5nc1wiO1xuXG4vKipcbiAqIEFycmF5IG9mIEl0ZW1WYWx1ZSBpcyB1c2VkIGluIGNoZWNrb3gsIGRyb3Bkb3duIGFuZCByYWRpb2dyb3VwIGNob2ljZXMsIG1hdHJpeCBjb2x1bW5zIGFuZCByb3dzLlxuICogSXQgaGFzIHR3byBtYWluIHByb3BlcnRpZXM6IHZhbHVlIGFuZCB0ZXh0LiBJZiB0ZXh0IGlzIGVtcHR5LCB2YWx1ZSBpcyB1c2VkIGZvciBkaXNwbGF5aW5nLlxuICogVGhlIHRleHQgcHJvcGVydHkgaXMgbG9jYWxpemFibGUgYW5kIHN1cHBvcnQgbWFya2Rvd24uXG4gKi9cbmV4cG9ydCBjbGFzcyBJdGVtVmFsdWUgZXh0ZW5kcyBCYXNlIHtcbiAgW2luZGV4OiBzdHJpbmddOiBhbnk7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IFNlcGFyYXRvcigpIHtcbiAgICByZXR1cm4gc2V0dGluZ3MuaXRlbVZhbHVlU2VwYXJhdG9yO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgc2V0IFNlcGFyYXRvcih2YWw6IHN0cmluZykge1xuICAgIHNldHRpbmdzLml0ZW1WYWx1ZVNlcGFyYXRvciA9IHZhbDtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUFycmF5KGxvY093bmVyOiBJTG9jYWxpemFibGVPd25lcik6IEFycmF5PEl0ZW1WYWx1ZT4ge1xuICAgIHZhciBpdGVtczogQXJyYXk8SXRlbVZhbHVlPiA9IFtdO1xuICAgIEl0ZW1WYWx1ZS5zZXR1cEFycmF5KGl0ZW1zLCBsb2NPd25lcik7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgc2V0dXBBcnJheShcbiAgICBpdGVtczogQXJyYXk8SXRlbVZhbHVlPixcbiAgICBsb2NPd25lcjogSUxvY2FsaXphYmxlT3duZXJcbiAgKSB7XG4gICAgaXRlbXMucHVzaCA9IGZ1bmN0aW9uKHZhbHVlKTogbnVtYmVyIHtcbiAgICAgIHZhciByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMsIHZhbHVlKTtcbiAgICAgIHZhbHVlLmxvY093bmVyID0gbG9jT3duZXI7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgaXRlbXMudW5zaGlmdCA9IGZ1bmN0aW9uKHZhbHVlKTogbnVtYmVyIHtcbiAgICAgIHZhciByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUudW5zaGlmdC5jYWxsKHRoaXMsIHZhbHVlKTtcbiAgICAgIHZhbHVlLmxvY093bmVyID0gbG9jT3duZXI7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgaXRlbXMuc3BsaWNlID0gZnVuY3Rpb24oXG4gICAgICBzdGFydD86IG51bWJlcixcbiAgICAgIGRlbGV0ZUNvdW50PzogbnVtYmVyLFxuICAgICAgLi4uaXRlbXM6IEl0ZW1WYWx1ZVtdXG4gICAgKTogSXRlbVZhbHVlW10ge1xuICAgICAgdmFyIHJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIGRlbGV0ZUNvdW50LFxuICAgICAgICAuLi5pdGVtc1xuICAgICAgKTtcbiAgICAgIGlmICghaXRlbXMpIGl0ZW1zID0gW107XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGl0ZW1zW2ldLmxvY093bmVyID0gbG9jT3duZXI7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gIH1cbiAgcHVibGljIHN0YXRpYyBzZXREYXRhKGl0ZW1zOiBBcnJheTxJdGVtVmFsdWU+LCB2YWx1ZXM6IEFycmF5PGFueT4pIHtcbiAgICBpdGVtcy5sZW5ndGggPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdmFsdWUgPSB2YWx1ZXNbaV07XG4gICAgICB2YXIgaXRlbTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUuZ2V0VHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGl0ZW0gPSBTZXJpYWxpemVyLmNyZWF0ZUNsYXNzKHZhbHVlLmdldFR5cGUoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtID0gbmV3IEl0ZW1WYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICAgIGl0ZW0uc2V0RGF0YSh2YWx1ZSk7XG4gICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgc3RhdGljIGdldERhdGEoaXRlbXM6IEFycmF5PEl0ZW1WYWx1ZT4pOiBhbnkge1xuICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXkoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXN1bHQucHVzaChpdGVtc1tpXS5nZXREYXRhKCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgZ2V0SXRlbUJ5VmFsdWUoaXRlbXM6IEFycmF5PEl0ZW1WYWx1ZT4sIHZhbDogYW55KTogSXRlbVZhbHVlIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKGl0ZW1zW2ldLnZhbHVlLCB2YWwpKSByZXR1cm4gaXRlbXNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgZ2V0VGV4dE9ySHRtbEJ5VmFsdWUoXG4gICAgaXRlbXM6IEFycmF5PEl0ZW1WYWx1ZT4sXG4gICAgdmFsOiBhbnlcbiAgKTogc3RyaW5nIHtcbiAgICB2YXIgaXRlbSA9IEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZShpdGVtcywgdmFsKTtcbiAgICByZXR1cm4gaXRlbSAhPT0gbnVsbCA/IGl0ZW0ubG9jVGV4dC50ZXh0T3JIdG1sIDogXCJcIjtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGxvY1N0cnNDaGFuZ2VkKGl0ZW1zOiBBcnJheTxJdGVtVmFsdWU+KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgaXRlbXNbaV0ubG9jVGV4dC5zdHJDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBzdGF0aWMgcnVuQ29uZGl0aW9uc0Zvckl0ZW1zKFxuICAgIGl0ZW1zOiBBcnJheTxJdGVtVmFsdWU+LFxuICAgIGZpbHRlcmVkSXRlbXM6IEFycmF5PEl0ZW1WYWx1ZT4sXG4gICAgcnVubmVyOiBDb25kaXRpb25SdW5uZXIsXG4gICAgdmFsdWVzOiBhbnksXG4gICAgcHJvcGVydGllczogYW55LFxuICAgIHVzZUl0ZW1FeHByZXNzaW9uOiBib29sZWFuID0gdHJ1ZVxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gSXRlbVZhbHVlLnJ1bkNvbmRpdGlvbnNGb3JJdGVtc0NvcmUoXG4gICAgICBpdGVtcyxcbiAgICAgIGZpbHRlcmVkSXRlbXMsXG4gICAgICBydW5uZXIsXG4gICAgICB2YWx1ZXMsXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgICAgdHJ1ZSxcbiAgICAgIHVzZUl0ZW1FeHByZXNzaW9uXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHJ1bkVuYWJsZWRDb25kaXRpb25zRm9ySXRlbXMoXG4gICAgaXRlbXM6IEFycmF5PEl0ZW1WYWx1ZT4sXG4gICAgcnVubmVyOiBDb25kaXRpb25SdW5uZXIsXG4gICAgdmFsdWVzOiBhbnksXG4gICAgcHJvcGVydGllczogYW55XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBJdGVtVmFsdWUucnVuQ29uZGl0aW9uc0Zvckl0ZW1zQ29yZShcbiAgICAgIGl0ZW1zLFxuICAgICAgbnVsbCxcbiAgICAgIHJ1bm5lcixcbiAgICAgIHZhbHVlcyxcbiAgICAgIHByb3BlcnRpZXMsXG4gICAgICBmYWxzZVxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgcnVuQ29uZGl0aW9uc0Zvckl0ZW1zQ29yZShcbiAgICBpdGVtczogQXJyYXk8SXRlbVZhbHVlPixcbiAgICBmaWx0ZXJlZEl0ZW1zOiBBcnJheTxJdGVtVmFsdWU+LFxuICAgIHJ1bm5lcjogQ29uZGl0aW9uUnVubmVyLFxuICAgIHZhbHVlczogYW55LFxuICAgIHByb3BlcnRpZXM6IGFueSxcbiAgICBpc1Zpc2libGU6IGJvb2xlYW4sXG4gICAgdXNlSXRlbUV4cHJlc3Npb246IGJvb2xlYW4gPSB0cnVlXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghdmFsdWVzKSB7XG4gICAgICB2YWx1ZXMgPSB7fTtcbiAgICB9XG4gICAgdmFyIGl0ZW1WYWx1ZSA9IHZhbHVlc1tcIml0ZW1cIl07XG4gICAgdmFyIGNob2ljZVZhbHVlID0gdmFsdWVzW1wiY2hvaWNlXCJdO1xuICAgIHZhciBoYXNDaGFuZGVkID0gZmFsc2U7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgIHZhbHVlc1tcIml0ZW1cIl0gPSBpdGVtLnZhbHVlO1xuICAgICAgdmFsdWVzW1wiY2hvaWNlXCJdID0gaXRlbS52YWx1ZTtcbiAgICAgIHZhciBpdGVtUnVubmVyID1cbiAgICAgICAgdXNlSXRlbUV4cHJlc3Npb24gJiYgISFpdGVtLmdldENvbmRpdGlvblJ1bm5lclxuICAgICAgICAgID8gaXRlbS5nZXRDb25kaXRpb25SdW5uZXIoaXNWaXNpYmxlKVxuICAgICAgICAgIDogZmFsc2U7XG4gICAgICBpZiAoIWl0ZW1SdW5uZXIpIHtcbiAgICAgICAgaXRlbVJ1bm5lciA9IHJ1bm5lcjtcbiAgICAgIH1cbiAgICAgIHZhciBuZXdWYWx1ZSA9IHRydWU7XG4gICAgICBpZiAoaXRlbVJ1bm5lcikge1xuICAgICAgICBuZXdWYWx1ZSA9IGl0ZW1SdW5uZXIucnVuKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgICB9XG4gICAgICBpZiAoISFmaWx0ZXJlZEl0ZW1zICYmIG5ld1ZhbHVlKSB7XG4gICAgICAgIGZpbHRlcmVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICAgIHZhciBvbGRWYWx1ZSA9IGlzVmlzaWJsZSA/IGl0ZW0uaXNWaXNpYmxlIDogaXRlbS5pc0VuYWJsZWQ7XG4gICAgICBpZiAobmV3VmFsdWUgIT0gb2xkVmFsdWUpIHtcbiAgICAgICAgaGFzQ2hhbmRlZCA9IHRydWU7XG4gICAgICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICBpZiAoISFpdGVtLnNldElzVmlzaWJsZSkgaXRlbS5zZXRJc1Zpc2libGUobmV3VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghIWl0ZW0uc2V0SXNFbmFibGVkKSBpdGVtLnNldElzRW5hYmxlZChuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGl0ZW1WYWx1ZSkge1xuICAgICAgdmFsdWVzW1wiaXRlbVwiXSA9IGl0ZW1WYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHZhbHVlc1tcIml0ZW1cIl07XG4gICAgfVxuICAgIGlmIChjaG9pY2VWYWx1ZSkge1xuICAgICAgdmFsdWVzW1wiY2hvaWNlXCJdID0gY2hvaWNlVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZXNbXCJjaG9pY2VcIl07XG4gICAgfVxuICAgIHJldHVybiBoYXNDaGFuZGVkO1xuICB9XG4gIHByaXZhdGUgdmlzaWJsZUlmVmFsdWU6IHN0cmluZyA9IFwiXCI7XG4gIHByaXZhdGUgaXRlbVZhbHVlOiBhbnk7XG4gIHByaXZhdGUgbG9jVGV4dFZhbHVlOiBMb2NhbGl6YWJsZVN0cmluZztcbiAgcHJpdmF0ZSBpc1Zpc2libGVWYWx1ZTogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgdmlzaWJsZUNvbmRpdGlvblJ1bm5lcjogQ29uZGl0aW9uUnVubmVyO1xuICBwcml2YXRlIGVuYWJsZUNvbmRpdGlvblJ1bm5lcjogQ29uZGl0aW9uUnVubmVyO1xuXG4gIGNvbnN0cnVjdG9yKHZhbHVlOiBhbnksIHRleHQ6IHN0cmluZyA9IG51bGwsIHByaXZhdGUgdHlwZU5hbWUgPSBcIml0ZW12YWx1ZVwiKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxvY1RleHRWYWx1ZSA9IG5ldyBMb2NhbGl6YWJsZVN0cmluZyhudWxsLCB0cnVlKTtcbiAgICB0aGlzLmxvY1RleHRWYWx1ZS5vbkdldFRleHRDYWxsYmFjayA9IHR4dCA9PiB7XG4gICAgICByZXR1cm4gdHh0ID8gdHh0IDogIXRoaXMuaXNWYWx1ZUl0ZW1FbXB0eSA/IHRoaXMudmFsdWUudG9TdHJpbmcoKSA6IG51bGw7XG4gICAgfTtcbiAgICBpZiAodGV4dCkgdGhpcy5sb2NUZXh0LnRleHQgPSB0ZXh0O1xuICAgIGlmICghIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgdGhpcy5zZXREYXRhKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICB0aGlzLm9uQ3JlYXRpbmcoKTtcbiAgfVxuICBwdWJsaWMgb25DcmVhdGluZygpOiBhbnkge31cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gISF0aGlzLnR5cGVOYW1lID8gdGhpcy50eXBlTmFtZSA6IFwiaXRlbXZhbHVlXCI7XG4gIH1cbiAgcHVibGljIGdldCBsb2NUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2NUZXh0VmFsdWU7XG4gIH1cbiAgc2V0TG9jVGV4dChsb2NUZXh0OiBMb2NhbGl6YWJsZVN0cmluZykge1xuICAgIHRoaXMubG9jVGV4dFZhbHVlID0gbG9jVGV4dDtcbiAgfVxuICBwdWJsaWMgZ2V0IGxvY093bmVyKCk6IElMb2NhbGl6YWJsZU93bmVyIHtcbiAgICByZXR1cm4gdGhpcy5sb2NUZXh0Lm93bmVyO1xuICB9XG4gIHB1YmxpYyBzZXQgbG9jT3duZXIodmFsdWU6IElMb2NhbGl6YWJsZU93bmVyKSB7XG4gICAgdGhpcy5sb2NUZXh0Lm93bmVyID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLml0ZW1WYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLml0ZW1WYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIGlmICghdGhpcy5pdGVtVmFsdWUpIHJldHVybjtcbiAgICB2YXIgc3RyOiBzdHJpbmcgPSB0aGlzLml0ZW1WYWx1ZS50b1N0cmluZygpO1xuICAgIHZhciBpbmRleCA9IHN0ci5pbmRleE9mKHNldHRpbmdzLml0ZW1WYWx1ZVNlcGFyYXRvcik7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuaXRlbVZhbHVlID0gc3RyLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgIHRoaXMudGV4dCA9IHN0ci5zbGljZShpbmRleCArIDEpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaGFzVGV4dCkge1xuICAgICAgdGhpcy5sb2NUZXh0Lm9uQ2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1RleHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubG9jVGV4dC5wdXJlVGV4dCA/IHRydWUgOiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2NUZXh0LmNhbGN1bGF0ZWRUZXh0OyAvL1RPRE86IGl0IHdpbGwgYmUgY29ycmVjdCB0byB1c2UgdGhpcy5sb2NUZXh0LnRleHQsIGhvd2V2ZXIgaXQgd291bGQgcmVxdWlyZSBhIGxvdCBvZiByZXdyaXR0aW5nIGluIENyZWF0b3JcbiAgfVxuICBwdWJsaWMgc2V0IHRleHQobmV3VGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NUZXh0LnRleHQgPSBuZXdUZXh0O1xuICB9XG4gIHB1YmxpYyBnZXQgY2FsY3VsYXRlZFRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubG9jVGV4dC5jYWxjdWxhdGVkVGV4dDtcbiAgfVxuICBwdWJsaWMgZ2V0RGF0YSgpOiBhbnkge1xuICAgIHZhciBqc29uID0gdGhpcy50b0pTT04oKTtcbiAgICBpZiAoISFqc29uW1widmFsdWVcIl0gJiYgISFqc29uW1widmFsdWVcIl1bXCJwb3NcIl0pIHtcbiAgICAgIGRlbGV0ZSBqc29uW1widmFsdWVcIl1bXCJwb3NcIl07XG4gICAgfVxuICAgIGlmIChPYmplY3Qua2V5cyhqc29uKS5sZW5ndGggPT0gMSAmJiAhSGVscGVycy5pc1ZhbHVlRW1wdHkoanNvbltcInZhbHVlXCJdKSlcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIHJldHVybiBqc29uO1xuICB9XG4gIHB1YmxpYyB0b0pTT04oKTogYW55IHtcbiAgICB2YXIgcmVzID0ge307XG4gICAgdmFyIHByb3BlcnRpZXMgPSBTZXJpYWxpemVyLmdldFByb3BlcnRpZXModGhpcy5nZXRUeXBlKCkpO1xuICAgIGlmICghcHJvcGVydGllcyB8fCBwcm9wZXJ0aWVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICBwcm9wZXJ0aWVzID0gU2VyaWFsaXplci5nZXRQcm9wZXJ0aWVzKFwiaXRlbXZhbHVlXCIpO1xuICAgIH1cbiAgICB2YXIganNvT2JqID0gbmV3IEpzb25PYmplY3QoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGpzb09iai52YWx1ZVRvSnNvbih0aGlzLCByZXMsIHByb3BlcnRpZXNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHB1YmxpYyBzZXREYXRhKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoSGVscGVycy5pc1ZhbHVlRW1wdHkodmFsdWUpKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiB2YWx1ZS52YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdmFyIGpzb24gPSB2YWx1ZTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUudG9KU09OID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAganNvbiA9ICg8QmFzZT52YWx1ZSkudG9KU09OKCk7XG4gICAgICB9XG4gICAgICBuZXcgSnNvbk9iamVjdCgpLnRvT2JqZWN0KGpzb24sIHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdmlzaWJsZUlmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUlmVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCB2aXNpYmxlSWYodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZpc2libGVJZlZhbHVlID0gdmFsO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNWaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZVZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXRJc1Zpc2libGUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1Zpc2libGVWYWx1ZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaXNFbmFibGVkXCIsIHRydWUpO1xuICB9XG4gIHB1YmxpYyBzZXRJc0VuYWJsZWQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaXNFbmFibGVkXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGFkZFVzZWRMb2NhbGVzKGxvY2FsZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICB0aGlzLkFkZExvY1N0cmluZ1RvVXNlZExvY2FsZXModGhpcy5sb2NUZXh0VmFsdWUsIGxvY2FsZXMpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRDb25kaXRpb25SdW5uZXIoaXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgaWYgKGlzVmlzaWJsZSkgcmV0dXJuIHRoaXMuZ2V0VmlzaWJsZUNvbmRpdGlvblJ1bm5lcigpO1xuICAgIHJldHVybiB0aGlzLmdldEVuYWJsZUNvbmRpdGlvblJ1bm5lcigpO1xuICB9XG4gIHByaXZhdGUgZ2V0VmlzaWJsZUNvbmRpdGlvblJ1bm5lcigpOiBDb25kaXRpb25SdW5uZXIge1xuICAgIGlmICghdGhpcy52aXNpYmxlSWYpIHJldHVybiBudWxsO1xuICAgIGlmICghdGhpcy52aXNpYmxlQ29uZGl0aW9uUnVubmVyKVxuICAgICAgdGhpcy52aXNpYmxlQ29uZGl0aW9uUnVubmVyID0gbmV3IENvbmRpdGlvblJ1bm5lcih0aGlzLnZpc2libGVJZik7XG4gICAgdGhpcy52aXNpYmxlQ29uZGl0aW9uUnVubmVyLmV4cHJlc3Npb24gPSB0aGlzLnZpc2libGVJZjtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlQ29uZGl0aW9uUnVubmVyO1xuICB9XG4gIHByaXZhdGUgZ2V0RW5hYmxlQ29uZGl0aW9uUnVubmVyKCk6IENvbmRpdGlvblJ1bm5lciB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZUlmKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIXRoaXMuZW5hYmxlQ29uZGl0aW9uUnVubmVyKVxuICAgICAgdGhpcy5lbmFibGVDb25kaXRpb25SdW5uZXIgPSBuZXcgQ29uZGl0aW9uUnVubmVyKHRoaXMuZW5hYmxlSWYpO1xuICAgIHRoaXMuZW5hYmxlQ29uZGl0aW9uUnVubmVyLmV4cHJlc3Npb24gPSB0aGlzLmVuYWJsZUlmO1xuICAgIHJldHVybiB0aGlzLmVuYWJsZUNvbmRpdGlvblJ1bm5lcjtcbiAgfVxuICBwcml2YXRlIGdldCBpc1ZhbHVlSXRlbUVtcHR5KCkge1xuICAgIHJldHVybiAhdGhpcy5pdGVtVmFsdWUgJiYgdGhpcy5pdGVtVmFsdWUgIT09IDAgJiYgdGhpcy5pdGVtVmFsdWUgIT09IGZhbHNlO1xuICB9XG59XG5cbkJhc2UuY3JlYXRlSXRlbVZhbHVlID0gZnVuY3Rpb24oc291cmNlOiBhbnksIHR5cGU/OiBzdHJpbmcpOiBhbnkge1xuICB2YXIgaXRlbSA9IG51bGw7XG4gIGlmICghIXR5cGUpIHtcbiAgICBpdGVtID0gSnNvbk9iamVjdC5tZXRhRGF0YS5jcmVhdGVDbGFzcyh0eXBlLCB7fSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHNvdXJjZS5nZXRUeXBlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBpdGVtID0gbmV3IEl0ZW1WYWx1ZShudWxsLCB1bmRlZmluZWQsIHNvdXJjZS5nZXRUeXBlKCkpO1xuICB9IGVsc2Uge1xuICAgIGl0ZW0gPSBuZXcgSXRlbVZhbHVlKG51bGwpO1xuICB9XG4gIGl0ZW0uc2V0RGF0YShzb3VyY2UpO1xuICByZXR1cm4gaXRlbTtcbn07XG5CYXNlLml0ZW1WYWx1ZUxvY1N0ckNoYW5nZWQgPSBmdW5jdGlvbihhcnI6IEFycmF5PGFueT4pOiB2b2lkIHtcbiAgSXRlbVZhbHVlLmxvY1N0cnNDaGFuZ2VkKGFycik7XG59O1xuSnNvbk9iamVjdFByb3BlcnR5LmdldEl0ZW1WYWx1ZXNEZWZhdWx0VmFsdWUgPSBmdW5jdGlvbih2YWw6IGFueSk6IGFueSB7XG4gIHZhciByZXMgPSBuZXcgQXJyYXk8SXRlbVZhbHVlPigpO1xuICBJdGVtVmFsdWUuc2V0RGF0YShyZXMsIHZhbCB8fCBbXSk7XG4gIHJldHVybiByZXM7XG59O1xuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcIml0ZW12YWx1ZVwiLFxuICBbXG4gICAgXCJ2YWx1ZVwiLFxuICAgIHtcbiAgICAgIG5hbWU6IFwidGV4dFwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1RleHRcIlxuICAgIH0sXG4gICAgeyBuYW1lOiBcInZpc2libGVJZjpjb25kaXRpb25cIiwgdmlzaWJsZTogZmFsc2UgfSxcbiAgICB7IG5hbWU6IFwiZW5hYmxlSWY6Y29uZGl0aW9uXCIsIHZpc2libGU6IGZhbHNlIH1cbiAgXSxcbiAgKHZhbHVlOiBhbnkpID0+IG5ldyBJdGVtVmFsdWUodmFsdWUpXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2l0ZW12YWx1ZS50cyIsImltcG9ydCB7IEhlbHBlcnMsIEhhc2hUYWJsZSB9IGZyb20gXCIuL2hlbHBlcnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZUNvcmUge1xuICBoYXNWYWx1ZTogYm9vbGVhbjtcbiAgdmFsdWU6IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFByb2Nlc3NWYWx1ZSB7XG4gIHB1YmxpYyB2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+ID0gbnVsbDtcbiAgcHVibGljIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+ID0gbnVsbDtcbiAgY29uc3RydWN0b3IoKSB7fVxuICBwdWJsaWMgZ2V0Rmlyc3ROYW1lKHRleHQ6IHN0cmluZywgb2JqOiBhbnkgPSBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAoIXRleHQpIHJldHVybiB0ZXh0O1xuICAgIHZhciByZXMgPSBcIlwiO1xuICAgIGlmICghIW9iaikge1xuICAgICAgcmVzID0gdGhpcy5nZXRGaXJzdFByb3BlcnR5TmFtZSh0ZXh0LCBvYmopO1xuICAgICAgaWYgKCEhcmVzKSByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjaCA9IHRleHRbaV07XG4gICAgICBpZiAoY2ggPT0gXCIuXCIgfHwgY2ggPT0gXCJbXCIpIGJyZWFrO1xuICAgICAgcmVzICs9IGNoO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHB1YmxpYyBoYXNWYWx1ZSh0ZXh0OiBzdHJpbmcsIHZhbHVlczogSGFzaFRhYmxlPGFueT4gPSBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKCF2YWx1ZXMpIHZhbHVlcyA9IHRoaXMudmFsdWVzO1xuICAgIHZhciByZXMgPSB0aGlzLmdldFZhbHVlQ29yZSh0ZXh0LCB2YWx1ZXMpO1xuICAgIHJldHVybiByZXMuaGFzVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldFZhbHVlKG9iajogYW55LCB0ZXh0OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRleHQpIHJldHVybjtcbiAgICB2YXIgbm9uTmVzdGVkT2JqID0gdGhpcy5nZXROb25OZXN0ZWRPYmplY3Qob2JqLCB0ZXh0KTtcbiAgICBpZiAoIW5vbk5lc3RlZE9iaikgcmV0dXJuO1xuICAgIG9iaiA9IG5vbk5lc3RlZE9iai52YWx1ZTtcbiAgICB0ZXh0ID0gbm9uTmVzdGVkT2JqLnRleHQ7XG4gICAgaWYgKCEhb2JqICYmICEhdGV4dCkge1xuICAgICAgb2JqW3RleHRdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRWYWx1ZSh0ZXh0OiBzdHJpbmcsIHZhbHVlczogSGFzaFRhYmxlPGFueT4gPSBudWxsKTogYW55IHtcbiAgICBpZiAoIXZhbHVlcykgdmFsdWVzID0gdGhpcy52YWx1ZXM7XG4gICAgdmFyIHJlcyA9IHRoaXMuZ2V0VmFsdWVDb3JlKHRleHQsIHZhbHVlcyk7XG4gICAgcmV0dXJuIHJlcy52YWx1ZTtcbiAgfVxuICBwcml2YXRlIGdldFZhbHVlQ29yZSh0ZXh0OiBzdHJpbmcsIHZhbHVlczogYW55KTogYW55IHtcbiAgICB2YXIgcmVzOiBWYWx1ZUNvcmUgPSB7IGhhc1ZhbHVlOiBmYWxzZSwgdmFsdWU6IG51bGwgfTtcbiAgICB2YXIgY3VyVmFsdWUgPSB2YWx1ZXM7XG4gICAgaWYgKCFjdXJWYWx1ZSAmJiBjdXJWYWx1ZSAhPT0gMCAmJiBjdXJWYWx1ZSAhPT0gZmFsc2UpIHJldHVybiByZXM7XG4gICAgaWYgKFxuICAgICAgdGV4dCAmJlxuICAgICAgdGV4dC5sYXN0SW5kZXhPZihcIi5sZW5ndGhcIikgPiAtMSAmJlxuICAgICAgdGV4dC5sYXN0SW5kZXhPZihcIi5sZW5ndGhcIikgPT09IHRleHQubGVuZ3RoIC0gXCIubGVuZ3RoXCIubGVuZ3RoXG4gICAgKSB7XG4gICAgICByZXMudmFsdWUgPSAwO1xuICAgICAgcmVzLmhhc1ZhbHVlID0gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIG5vbk5lc3RlZE9iaiA9IHRoaXMuZ2V0Tm9uTmVzdGVkT2JqZWN0KGN1clZhbHVlLCB0ZXh0KTtcbiAgICBpZiAoIW5vbk5lc3RlZE9iaikgcmV0dXJuIHJlcztcbiAgICByZXMudmFsdWUgPSAhIW5vbk5lc3RlZE9iai50ZXh0XG4gICAgICA/IHRoaXMuZ2V0T2JqZWN0VmFsdWUobm9uTmVzdGVkT2JqLnZhbHVlLCBub25OZXN0ZWRPYmoudGV4dClcbiAgICAgIDogbm9uTmVzdGVkT2JqLnZhbHVlO1xuICAgIHJlcy5oYXNWYWx1ZSA9ICFIZWxwZXJzLmlzVmFsdWVFbXB0eShyZXMudmFsdWUpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBnZXROb25OZXN0ZWRPYmplY3Qob2JqOiBhbnksIHRleHQ6IHN0cmluZyk6IGFueSB7XG4gICAgdmFyIGN1ck5hbWUgPSB0aGlzLmdldEZpcnN0UHJvcGVydHlOYW1lKHRleHQsIG9iaik7XG4gICAgd2hpbGUgKHRleHQgIT0gY3VyTmFtZSAmJiAhIW9iaikge1xuICAgICAgdmFyIGlzQXJyYXkgPSB0ZXh0WzBdID09IFwiW1wiO1xuICAgICAgaWYgKCFpc0FycmF5KSB7XG4gICAgICAgIGlmICghY3VyTmFtZSAmJiB0ZXh0ID09IHRoaXMuZ2V0Rmlyc3ROYW1lKHRleHQpKVxuICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvYmosIHRleHQ6IHRleHQgfTtcbiAgICAgICAgb2JqID0gdGhpcy5nZXRPYmplY3RWYWx1ZShvYmosIGN1ck5hbWUpO1xuICAgICAgICBpZiAoSGVscGVycy5pc1ZhbHVlRW1wdHkob2JqKSkgcmV0dXJuIG51bGw7XG4gICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cihjdXJOYW1lLmxlbmd0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgb2JqSW5BcnJheSA9IHRoaXMuZ2V0T2JqSW5BcnJheShvYmosIHRleHQpO1xuICAgICAgICBpZiAoIW9iakluQXJyYXkpIHJldHVybiBudWxsO1xuICAgICAgICBvYmogPSBvYmpJbkFycmF5LnZhbHVlO1xuICAgICAgICB0ZXh0ID0gb2JqSW5BcnJheS50ZXh0O1xuICAgICAgfVxuICAgICAgaWYgKCEhdGV4dCAmJiB0ZXh0WzBdID09IFwiLlwiKSB7XG4gICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cigxKTtcbiAgICAgIH1cbiAgICAgIGN1ck5hbWUgPSB0aGlzLmdldEZpcnN0UHJvcGVydHlOYW1lKHRleHQsIG9iaik7XG4gICAgfVxuICAgIHJldHVybiB7IHZhbHVlOiBvYmosIHRleHQ6IHRleHQgfTtcbiAgfVxuICBwcml2YXRlIGdldE9iakluQXJyYXkoY3VyVmFsdWU6IGFueSwgdGV4dDogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY3VyVmFsdWUpKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgaW5kZXggPSAxO1xuICAgIHZhciBzdHIgPSBcIlwiO1xuICAgIHdoaWxlIChpbmRleCA8IHRleHQubGVuZ3RoICYmIHRleHRbaW5kZXhdICE9IFwiXVwiKSB7XG4gICAgICBzdHIgKz0gdGV4dFtpbmRleF07XG4gICAgICBpbmRleCsrO1xuICAgIH1cbiAgICB0ZXh0ID0gaW5kZXggPCB0ZXh0Lmxlbmd0aCA/IHRleHQuc3Vic3RyKGluZGV4ICsgMSkgOiBcIlwiO1xuICAgIGluZGV4ID0gdGhpcy5nZXRJbnRWYWx1ZShzdHIpO1xuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gY3VyVmFsdWUubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4geyB2YWx1ZTogY3VyVmFsdWVbaW5kZXhdLCB0ZXh0OiB0ZXh0IH07XG4gIH1cbiAgcHJpdmF0ZSBnZXRGaXJzdFByb3BlcnR5TmFtZShuYW1lOiBzdHJpbmcsIG9iajogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoIW5hbWUpIHJldHVybiBuYW1lO1xuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkobmFtZSkpIHJldHVybiBuYW1lO1xuICAgIG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFyIEEgPSBuYW1lWzBdO1xuICAgIHZhciBhID0gQS50b1VwcGVyQ2FzZSgpO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIHZhciBmaXJzdCA9IGtleVswXTtcbiAgICAgIGlmIChmaXJzdCA9PT0gYSB8fCBmaXJzdCA9PT0gQSkge1xuICAgICAgICB2YXIga2V5TmFtZSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoa2V5TmFtZSA9PSBuYW1lKSByZXR1cm4ga2V5O1xuICAgICAgICBpZiAobmFtZS5sZW5ndGggPD0ga2V5TmFtZS5sZW5ndGgpIGNvbnRpbnVlO1xuICAgICAgICB2YXIgY2ggPSBuYW1lW2tleU5hbWUubGVuZ3RoXTtcbiAgICAgICAgaWYgKGNoICE9IFwiLlwiICYmIGNoICE9IFwiW1wiKSBjb250aW51ZTtcbiAgICAgICAgaWYgKGtleU5hbWUgPT0gbmFtZS5zdWJzdHIoMCwga2V5TmFtZS5sZW5ndGgpKSByZXR1cm4ga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuICBwcml2YXRlIGdldE9iamVjdFZhbHVlKG9iajogYW55LCBuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghbmFtZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIG9ialtuYW1lXTtcbiAgfVxuICBwcml2YXRlIGdldEludFZhbHVlKHN0cjogYW55KSB7XG4gICAgaWYgKHN0ciA9PSBcIjBcIiB8fCAoKHN0ciB8IDApID4gMCAmJiBzdHIgJSAxID09IDApKSByZXR1cm4gTnVtYmVyKHN0cik7XG4gICAgcmV0dXJuIC0xO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvY29uZGl0aW9uUHJvY2Vzc1ZhbHVlLnRzIiwiaW1wb3J0IHsgSGVscGVycyB9IGZyb20gXCIuL2hlbHBlcnNcIjtcbmltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuL3N1cnZleVN0cmluZ3NcIjtcbmltcG9ydCB7IHNldHRpbmdzIH0gZnJvbSBcIi4vc2V0dGluZ3NcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9jYWxpemFibGVPd25lciB7XG4gIGdldExvY2FsZSgpOiBzdHJpbmc7XG4gIGdldE1hcmtkb3duSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmc7XG4gIGdldFByb2Nlc3NlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xufVxuLyoqXG4gKiBUaGUgY2xhc3MgcmVwcmVzZW50cyB0aGUgc3RyaW5nIHRoYXQgc3VwcG9ydHMgbXVsdGktbGFuZ3VhZ2VzIGFuZCBtYXJrZG93bi5cbiAqIEl0IHVzZXMgaW4gYWxsIG9iamVjdHMgd2hlcmUgc3VwcG9ydCBmb3IgbXVsdGktbGFuZ3VhZ2VzIGFuZCBtYXJrZG93biBpcyByZXF1aXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIExvY2FsaXphYmxlU3RyaW5nIHtcbiAgcHVibGljIHN0YXRpYyBnZXQgZGVmYXVsdExvY2FsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZXR0aW5ncy5kZWZhdWx0TG9jYWxlTmFtZTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHNldCBkZWZhdWx0TG9jYWxlKHZhbDogc3RyaW5nKSB7XG4gICAgc2V0dGluZ3MuZGVmYXVsdExvY2FsZU5hbWUgPSB2YWw7XG4gIH1cbiAgcHJpdmF0ZSB2YWx1ZXMgPSB7fTtcbiAgcHJpdmF0ZSBodG1sVmFsdWVzID0ge307XG4gIHByaXZhdGUgcmVuZGVyZWRUZXh0OiBzdHJpbmcgPSBudWxsO1xuICBwcml2YXRlIGNhbGN1bGF0ZWRUZXh0VmFsdWU6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBvbkdldFRleHRDYWxsYmFjazogKHN0cjogc3RyaW5nKSA9PiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgb25TdHJDaGFuZ2VkOiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgc2hhcmVkRGF0YTogTG9jYWxpemFibGVTdHJpbmc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvd25lcjogSUxvY2FsaXphYmxlT3duZXIsXG4gICAgcHVibGljIHVzZU1hcmtkb3duOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgdGhpcy5vbkNyZWF0aW5nKCk7XG4gIH1cbiAgcHVibGljIGdldCBsb2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3duZXIgPyB0aGlzLm93bmVyLmdldExvY2FsZSgpIDogXCJcIjtcbiAgfVxuICBwdWJsaWMgc3RyQ2hhbmdlZCgpIHtcbiAgICBpZiAodGhpcy5yZW5kZXJlZFRleHQgPT09IG51bGwpIHJldHVybjtcbiAgICB0aGlzLmNhbGN1bGF0ZWRUZXh0VmFsdWUgPSB0aGlzLmNhbFRleHQoKTtcbiAgICBpZiAodGhpcy5yZW5kZXJlZFRleHQgIT09IHRoaXMuY2FsY3VsYXRlZFRleHRWYWx1ZSkge1xuICAgICAgdGhpcy5yZW5kZXJlZFRleHQgPSBudWxsO1xuICAgICAgdGhpcy5jYWxjdWxhdGVkVGV4dFZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMub25DaGFuZ2VkKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnB1cmVUZXh0O1xuICB9XG4gIHB1YmxpYyBnZXQgY2FsY3VsYXRlZFRleHQoKTogc3RyaW5nIHtcbiAgICB0aGlzLnJlbmRlcmVkVGV4dCA9XG4gICAgICB0aGlzLmNhbGN1bGF0ZWRUZXh0VmFsdWUgIT09IG51bGxcbiAgICAgICAgPyB0aGlzLmNhbGN1bGF0ZWRUZXh0VmFsdWVcbiAgICAgICAgOiB0aGlzLmNhbFRleHQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZWRUZXh0VmFsdWUgPSBudWxsO1xuICAgIHJldHVybiB0aGlzLnJlbmRlcmVkVGV4dDtcbiAgfVxuICBwcml2YXRlIGNhbFRleHQoKTogc3RyaW5nIHtcbiAgICB2YXIgcmVzID0gdGhpcy5wdXJlVGV4dDtcbiAgICBpZiAoXG4gICAgICByZXMgJiZcbiAgICAgIHRoaXMub3duZXIgJiZcbiAgICAgIHRoaXMub3duZXIuZ2V0UHJvY2Vzc2VkVGV4dCAmJlxuICAgICAgcmVzLmluZGV4T2YoXCJ7XCIpID4gLTFcbiAgICApIHtcbiAgICAgIHJlcyA9IHRoaXMub3duZXIuZ2V0UHJvY2Vzc2VkVGV4dChyZXMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vbkdldFRleHRDYWxsYmFjaykgcmVzID0gdGhpcy5vbkdldFRleHRDYWxsYmFjayhyZXMpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGdldCBwdXJlVGV4dCgpIHtcbiAgICB2YXIgbG9jID0gdGhpcy5sb2NhbGU7XG4gICAgaWYgKCFsb2MpIGxvYyA9IHNldHRpbmdzLmRlZmF1bHRMb2NhbGVOYW1lO1xuICAgIHZhciByZXMgPSB0aGlzLmdldFZhbHVlKGxvYyk7XG4gICAgaWYgKCFyZXMgJiYgbG9jID09IHNldHRpbmdzLmRlZmF1bHRMb2NhbGVOYW1lKSB7XG4gICAgICByZXMgPSB0aGlzLmdldFZhbHVlKHN1cnZleUxvY2FsaXphdGlvbi5kZWZhdWx0TG9jYWxlKTtcbiAgICB9XG4gICAgaWYgKCFyZXMgJiYgbG9jICE9PSBzZXR0aW5ncy5kZWZhdWx0TG9jYWxlTmFtZSkge1xuICAgICAgcmVzID0gdGhpcy5nZXRWYWx1ZShzZXR0aW5ncy5kZWZhdWx0TG9jYWxlTmFtZSk7XG4gICAgfVxuICAgIGlmICghcmVzKSByZXMgPSBcIlwiO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGdldCBoYXNIdG1sKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0h0bWxWYWx1ZSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgaHRtbCgpIHtcbiAgICBpZiAoIXRoaXMuaGFzSHRtbCkgcmV0dXJuIFwiXCI7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SHRtbFZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFZhbHVlc0tleXMoKS5sZW5ndGggPT0gMDtcbiAgfVxuICBwdWJsaWMgZ2V0IHRleHRPckh0bWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzSHRtbCA/IHRoaXMuZ2V0SHRtbFZhbHVlKCkgOiB0aGlzLmNhbGN1bGF0ZWRUZXh0O1xuICB9XG4gIHB1YmxpYyBnZXQgcmVuZGVyZWRIdG1sKCkge1xuICAgIHJldHVybiB0aGlzLnRleHRPckh0bWw7XG4gIH1cbiAgcHVibGljIHNldCB0ZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsZVRleHQodGhpcy5sb2NhbGUsIHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0TG9jYWxlVGV4dChsb2M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFsb2MpIGxvYyA9IHNldHRpbmdzLmRlZmF1bHRMb2NhbGVOYW1lO1xuICAgIHZhciByZXMgPSB0aGlzLmdldFZhbHVlKGxvYyk7XG4gICAgcmV0dXJuIHJlcyA/IHJlcyA6IFwiXCI7XG4gIH1cbiAgcHVibGljIHNldExvY2FsZVRleHQobG9jOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPT0gdGhpcy5nZXRMb2NhbGVUZXh0KGxvYykpIHJldHVybjtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSAmJlxuICAgICAgbG9jICYmXG4gICAgICBsb2MgIT0gc2V0dGluZ3MuZGVmYXVsdExvY2FsZU5hbWUgJiZcbiAgICAgICF0aGlzLmdldFZhbHVlKGxvYykgJiZcbiAgICAgIHZhbHVlID09IHRoaXMuZ2V0TG9jYWxlVGV4dChzZXR0aW5ncy5kZWZhdWx0TG9jYWxlTmFtZSlcbiAgICApXG4gICAgICByZXR1cm47XG4gICAgaWYgKCFsb2MpIGxvYyA9IHNldHRpbmdzLmRlZmF1bHRMb2NhbGVOYW1lO1xuICAgIGRlbGV0ZSAoPGFueT50aGlzKS5odG1sVmFsdWVzW2xvY107XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuZ2V0VmFsdWUobG9jKSkgdGhpcy5kZWxldGVWYWx1ZShsb2MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBsb2MgIT0gc2V0dGluZ3MuZGVmYXVsdExvY2FsZU5hbWUgJiZcbiAgICAgICAgICB2YWx1ZSA9PSB0aGlzLmdldExvY2FsZVRleHQoc2V0dGluZ3MuZGVmYXVsdExvY2FsZU5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuc2V0TG9jYWxlVGV4dChsb2MsIG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUobG9jLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKGxvYyA9PSBzZXR0aW5ncy5kZWZhdWx0TG9jYWxlTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5kZWxldGVWYWx1ZXNFcXVhbHNUb0RlZmF1bHQodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN0ckNoYW5nZWQoKTtcbiAgfVxuICBwdWJsaWMgaGFzTm9uRGVmYXVsdFRleHQoKTogYm9vbGVhbiB7XG4gICAgdmFyIGtleXMgPSB0aGlzLmdldFZhbHVlc0tleXMoKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT0gMCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBrZXlzLmxlbmd0aCA+IDEgfHwga2V5c1swXSAhPSBzZXR0aW5ncy5kZWZhdWx0TG9jYWxlTmFtZTtcbiAgfVxuICBwdWJsaWMgZ2V0TG9jYWxlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIga2V5cyA9IHRoaXMuZ2V0VmFsdWVzS2V5cygpO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PSAwKSByZXR1cm4gW107XG4gICAgcmV0dXJuIGtleXM7XG4gIH1cbiAgcHVibGljIGdldEpzb24oKTogYW55IHtcbiAgICBpZiAoISF0aGlzLnNoYXJlZERhdGEpIHJldHVybiB0aGlzLmdldEpzb24oKTtcbiAgICB2YXIga2V5cyA9IHRoaXMuZ2V0VmFsdWVzS2V5cygpO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT0gMSAmJiBrZXlzWzBdID09IHNldHRpbmdzLmRlZmF1bHRMb2NhbGVOYW1lKVxuICAgICAgcmV0dXJuICg8YW55PnRoaXMpLnZhbHVlc1trZXlzWzBdXTtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXM7XG4gIH1cbiAgcHVibGljIHNldEpzb24odmFsdWU6IGFueSkge1xuICAgIGlmICghIXRoaXMuc2hhcmVkRGF0YSkge1xuICAgICAgdGhpcy5zZXRKc29uKHZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWx1ZXMgPSB7fTtcbiAgICB0aGlzLmh0bWxWYWx1ZXMgPSB7fTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhpcy5zZXRMb2NhbGVUZXh0KG51bGwsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0TG9jYWxlVGV4dChrZXksIHZhbHVlW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN0ckNoYW5nZWQoKTtcbiAgfVxuICBwdWJsaWMgZXF1YWxzKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCEhdGhpcy5zaGFyZWREYXRhKSByZXR1cm4gdGhpcy5lcXVhbHMob2JqKTtcbiAgICBpZiAoIW9iaiB8fCAhb2JqLnZhbHVlcykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBIZWxwZXJzLmlzVHdvVmFsdWVFcXVhbHModGhpcy52YWx1ZXMsIG9iai52YWx1ZXMpO1xuICB9XG4gIHB1YmxpYyBvbkNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMub25TdHJDaGFuZ2VkKSB0aGlzLm9uU3RyQ2hhbmdlZCgpO1xuICB9XG4gIHByb3RlY3RlZCBvbkNyZWF0aW5nKCkge31cbiAgcHJpdmF0ZSBoYXNIdG1sVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLm93bmVyIHx8ICF0aGlzLnVzZU1hcmtkb3duKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHJlbmRlcmVkVGV4dCA9IHRoaXMuY2FsY3VsYXRlZFRleHQ7XG4gICAgaWYgKCFyZW5kZXJlZFRleHQpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgbG9jID0gdGhpcy5sb2NhbGU7XG4gICAgaWYgKCFsb2MpIGxvYyA9IHNldHRpbmdzLmRlZmF1bHRMb2NhbGVOYW1lO1xuICAgICg8YW55PnRoaXMpLmh0bWxWYWx1ZXNbbG9jXSA9IHRoaXMub3duZXIuZ2V0TWFya2Rvd25IdG1sKHJlbmRlcmVkVGV4dCk7XG4gICAgcmV0dXJuICg8YW55PnRoaXMpLmh0bWxWYWx1ZXNbbG9jXSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuICBwcml2YXRlIGdldEh0bWxWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHZhciBsb2MgPSB0aGlzLmxvY2FsZTtcbiAgICBpZiAoIWxvYykgbG9jID0gc2V0dGluZ3MuZGVmYXVsdExvY2FsZU5hbWU7XG4gICAgcmV0dXJuICg8YW55PnRoaXMpLmh0bWxWYWx1ZXNbbG9jXTtcbiAgfVxuICBwcml2YXRlIGRlbGV0ZVZhbHVlc0VxdWFsc1RvRGVmYXVsdChkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHZhciBrZXlzID0gdGhpcy5nZXRWYWx1ZXNLZXlzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoa2V5c1tpXSA9PSBzZXR0aW5ncy5kZWZhdWx0TG9jYWxlTmFtZSkgY29udGludWU7XG4gICAgICBpZiAodGhpcy5nZXRWYWx1ZShrZXlzW2ldKSA9PSBkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgdGhpcy5kZWxldGVWYWx1ZShrZXlzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRWYWx1ZShsb2M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCEhdGhpcy5zaGFyZWREYXRhKSByZXR1cm4gdGhpcy5zaGFyZWREYXRhLmdldFZhbHVlKGxvYyk7XG4gICAgcmV0dXJuICg8YW55PnRoaXMpLnZhbHVlc1tsb2NdO1xuICB9XG4gIHByaXZhdGUgc2V0VmFsdWUobG9jOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoISF0aGlzLnNoYXJlZERhdGEpIHRoaXMuc2hhcmVkRGF0YS5zZXRWYWx1ZShsb2MsIHZhbHVlKTtcbiAgICBlbHNlICg8YW55PnRoaXMpLnZhbHVlc1tsb2NdID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBkZWxldGVWYWx1ZShsb2M6IHN0cmluZykge1xuICAgIGlmICghIXRoaXMuc2hhcmVkRGF0YSkgdGhpcy5zaGFyZWREYXRhLmRlbGV0ZVZhbHVlKGxvYyk7XG4gICAgZWxzZSBkZWxldGUgKDxhbnk+dGhpcykudmFsdWVzW2xvY107XG4gIH1cbiAgcHJpdmF0ZSBnZXRWYWx1ZXNLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoISF0aGlzLnNoYXJlZERhdGEpIHJldHVybiB0aGlzLnNoYXJlZERhdGEuZ2V0VmFsdWVzS2V5cygpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcyk7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YWJsZXN0cmluZy50cyIsImltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgU3VydmV5TW9kZWwgfSBmcm9tIFwiLi4vc3VydmV5XCI7XG5pbXBvcnQgeyBTdXJ2ZXlXaW5kb3dNb2RlbCB9IGZyb20gXCIuLi9zdXJ2ZXlXaW5kb3dcIjtcbmltcG9ydCB7IFBhZ2VNb2RlbCB9IGZyb20gXCIuLi9wYWdlXCI7XG5pbXBvcnQgeyBJUXVlc3Rpb24sIElFbGVtZW50IH0gZnJvbSBcIi4uL2Jhc2VcIjtcbmltcG9ydCB7IHN1cnZleUNzcyB9IGZyb20gXCIuLi9kZWZhdWx0Q3NzL2Nzc3N0YW5kYXJkXCI7XG5cbmV4cG9ydCBjbGFzcyBWdWVTdXJ2ZXlNb2RlbCBleHRlbmRzIFN1cnZleU1vZGVsIHtcbiAgcHVibGljIHN0YXRpYyB1cGRhdGVQcm9wZXJ0aWVzSGFzaChvYmo6IGFueSkge1xuICAgIG9iai5zZXRQcm9wZXJ0eVZhbHVlQ29yZUhhbmRsZXIgPSBmdW5jdGlvbihcbiAgICAgIHByb3BlcnRpZXNIYXNoOiBhbnksXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICB2YWw6IGFueVxuICAgICkge1xuICAgICAgVnVlLnNldChwcm9wZXJ0aWVzSGFzaCwgbmFtZSwgdmFsKTtcbiAgICB9O1xuICB9XG4gIHJlbmRlckNhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLnJlbmRlckNhbGxiYWNrKSB7XG4gICAgICB0aGlzLnJlbmRlckNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBvbkxvYWRTdXJ2ZXlGcm9tU2VydmljZSgpIHtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG4gIHByb3RlY3RlZCBvbkxvYWRpbmdTdXJ2ZXlGcm9tU2VydmljZSgpIHtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG4gIGdldCBjc3MoKSB7XG4gICAgcmV0dXJuIHN1cnZleUNzcy5nZXRDc3MoKTtcbiAgfVxuICBzZXQgY3NzKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm1lcmdlVmFsdWVzKHZhbHVlLCB0aGlzLmNzcyk7XG4gIH1cbiAgcHVibGljIHNldERhdGFWYWx1ZUNvcmUodmFsdWVzSGFzaDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIFZ1ZS5zZXQodmFsdWVzSGFzaCwga2V5LCB2YWx1ZSk7XG4gIH1cbiAgcHVibGljIGRlbGV0ZURhdGFWYWx1ZUNvcmUodmFsdWVzSGFzaDogYW55LCBrZXk6IHN0cmluZykge1xuICAgIFZ1ZS5kZWxldGUodmFsdWVzSGFzaCwga2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRQcm9wZXJ0eVZhbHVlQ29yZShwcm9wZXJ0aWVzSGFzaDogYW55LCBuYW1lOiBzdHJpbmcsIHZhbDogYW55KSB7XG4gICAgVnVlLnNldChwcm9wZXJ0aWVzSGFzaCwgbmFtZSwgdmFsKTtcbiAgfVxuICBxdWVzdGlvbkFkZGVkKFxuICAgIHF1ZXN0aW9uOiBJUXVlc3Rpb24sXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBwYXJlbnRQYW5lbDogYW55LFxuICAgIHJvb3RQYW5lbDogYW55XG4gICkge1xuICAgIFZ1ZVN1cnZleU1vZGVsLnVwZGF0ZVByb3BlcnRpZXNIYXNoKHF1ZXN0aW9uKTtcbiAgICBzdXBlci5xdWVzdGlvbkFkZGVkKHF1ZXN0aW9uLCBpbmRleCwgcGFyZW50UGFuZWwsIHJvb3RQYW5lbCk7XG4gIH1cbiAgbWF0cml4Q2VsbENyZWF0ZWQocXVlc3Rpb246IElRdWVzdGlvbiwgb3B0aW9uczogYW55KSB7XG4gICAgVnVlU3VydmV5TW9kZWwudXBkYXRlUHJvcGVydGllc0hhc2gob3B0aW9ucy5jZWxsUXVlc3Rpb24pO1xuICAgIHN1cGVyLm1hdHJpeENlbGxDcmVhdGVkKHF1ZXN0aW9uLCBvcHRpb25zKTtcbiAgfVxuICBwcm90ZWN0ZWQgZG9PblBhZ2VBZGRlZChwYWdlOiBQYWdlTW9kZWwpIHtcbiAgICBWdWVTdXJ2ZXlNb2RlbC51cGRhdGVQcm9wZXJ0aWVzSGFzaChwYWdlKTtcbiAgICBzdXBlci5kb09uUGFnZUFkZGVkKHBhZ2UpO1xuICB9XG4gIHB1YmxpYyBkb0FmdGVyUmVuZGVyU3VydmV5KGVsOiBhbnkpIHtcbiAgICB0aGlzLmFmdGVyUmVuZGVyU3VydmV5KGVsKTtcbiAgfVxuICBwYW5lbEFkZGVkKHBhbmVsOiBJRWxlbWVudCwgaW5kZXg6IG51bWJlciwgcGFyZW50UGFuZWw6IGFueSwgcm9vdFBhbmVsOiBhbnkpIHtcbiAgICBWdWVTdXJ2ZXlNb2RlbC51cGRhdGVQcm9wZXJ0aWVzSGFzaChwYW5lbCk7XG4gICAgc3VwZXIucGFuZWxBZGRlZChwYW5lbCwgaW5kZXgsIHBhcmVudFBhbmVsLCByb290UGFuZWwpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWdWVTdXJ2ZXlXaW5kb3dNb2RlbCBleHRlbmRzIFN1cnZleVdpbmRvd01vZGVsIHtcbiAgY29uc3RydWN0b3IoanNvbk9iajogYW55LCBpbml0aWFsTW9kZWw6IFN1cnZleU1vZGVsID0gbnVsbCkge1xuICAgIHN1cGVyKGpzb25PYmosIGluaXRpYWxNb2RlbCk7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZVN1cnZleShqc29uT2JqOiBhbnkpOiBTdXJ2ZXlNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBWdWVTdXJ2ZXlNb2RlbChqc29uT2JqKTtcbiAgfVxufVxuXG5TdXJ2ZXlNb2RlbC5wbGF0Zm9ybSA9IFwidnVlXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvdnVlL3N1cnZleU1vZGVsLnRzIiwiaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IEJhc2UsIFN1cnZleUVycm9yLCBJU3VydmV5SW1wbCB9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuaW1wb3J0IHsgSGVscGVycywgSGFzaFRhYmxlIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vc3VydmV5U3RyaW5nc1wiO1xuaW1wb3J0IHsgT3RoZXJFbXB0eUVycm9yIH0gZnJvbSBcIi4vZXJyb3JcIjtcbmltcG9ydCB7IENob2ljZXNSZXN0ZnVsbCB9IGZyb20gXCIuL2Nob2ljZXNSZXN0ZnVsbFwiO1xuaW1wb3J0IHsgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuaW1wb3J0IHsgQ29uZGl0aW9uUnVubmVyIH0gZnJvbSBcIi4vY29uZGl0aW9uc1wiO1xuaW1wb3J0IHsgc2V0dGluZ3MgfSBmcm9tIFwiLi9zZXR0aW5nc1wiO1xuXG4vKipcbiAqIEl0IGlzIGEgYmFzZSBjbGFzcyBmb3IgY2hlY2tib3gsIGRyb3Bkb3duIGFuZCByYWRpb2dyb3VwIHF1ZXN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uU2VsZWN0QmFzZSBleHRlbmRzIFF1ZXN0aW9uIHtcbiAgcHJpdmF0ZSBmaWx0ZXJlZENob2ljZXNWYWx1ZTogQXJyYXk8SXRlbVZhbHVlPiA9IG51bGw7XG4gIHByaXZhdGUgY29uZGl0aW9uQ2hvaWNlc1Zpc2libGVJZlJ1bm5lcjogQ29uZGl0aW9uUnVubmVyO1xuICBwcml2YXRlIGNvbmRpdGlvbkNob2ljZXNFbmFibGVJZlJ1bm5lcjogQ29uZGl0aW9uUnVubmVyO1xuICBwcml2YXRlIGNvbW1lbnRWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHByZXZDb21tZW50VmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBvdGhlckl0ZW1WYWx1ZTogSXRlbVZhbHVlID0gbmV3IEl0ZW1WYWx1ZShcIm90aGVyXCIpO1xuICBwcml2YXRlIGNob2ljZXNGcm9tVXJsOiBBcnJheTxJdGVtVmFsdWU+ID0gbnVsbDtcbiAgcHJpdmF0ZSBjYWNoZWRWYWx1ZUZvclVybFJlcXVlc3RzOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIGlzQ2hvaWNlc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGVuYWJsZU9uTG9hZGluZ0Nob2ljZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIGZpbGwgdGhlIGNob2ljZXMgZnJvbSBhIHJlc3RmdWwgc2VydmljZS5cbiAgICogQHNlZSBjaG9pY2VzXG4gICAqL1xuICBwdWJsaWMgY2hvaWNlc0J5VXJsOiBDaG9pY2VzUmVzdGZ1bGw7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKG5hbWUpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmNob2ljZXMgPSB0aGlzLmNyZWF0ZUl0ZW1WYWx1ZXMoXCJjaG9pY2VzXCIpO1xuICAgIHRoaXMucmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXCJjaG9pY2VzXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCFzZWxmLmZpbHRlckl0ZW1zKCkpIHtcbiAgICAgICAgc2VsZi5vblZpc2libGVDaG9pY2VzQ2hhbmdlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgICBcImhpZGVJZkNob2ljZXNFbXB0eVwiLFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYudXBkYXRlVmlzaWJpbGl0eUJhc2VkT25DaG9pY2VzKCk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmNyZWF0ZU5ld0FycmF5KFwidmlzaWJsZUNob2ljZXNcIik7XG4gICAgdGhpcy5jaG9pY2VzQnlVcmwgPSB0aGlzLmNyZWF0ZVJlc3RmdWxsKCk7XG4gICAgdGhpcy5jaG9pY2VzQnlVcmwub3duZXIgPSB0aGlzO1xuICAgIHZhciBsb2NPdGhlclRleHQgPSB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwib3RoZXJUZXh0XCIsIHRoaXMsIHRydWUpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJvdGhlckVycm9yVGV4dFwiLCB0aGlzLCB0cnVlKTtcbiAgICB0aGlzLm90aGVySXRlbVZhbHVlLmxvY093bmVyID0gdGhpcztcbiAgICB0aGlzLm90aGVySXRlbVZhbHVlLnNldExvY1RleHQobG9jT3RoZXJUZXh0KTtcbiAgICBsb2NPdGhlclRleHQub25HZXRUZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbih0ZXh0KSB7XG4gICAgICByZXR1cm4gISF0ZXh0ID8gdGV4dCA6IHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJvdGhlckl0ZW1UZXh0XCIpO1xuICAgIH07XG4gICAgdGhpcy5jaG9pY2VzQnlVcmwuYmVmb3JlU2VuZFJlcXVlc3RDYWxsYmFjayA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5vbkJlZm9yZVNlbmRSZXF1ZXN0KCk7XG4gICAgfTtcbiAgICB0aGlzLmNob2ljZXNCeVVybC5nZXRSZXN1bHRDYWxsYmFjayA9IGZ1bmN0aW9uKGl0ZW1zOiBBcnJheTxJdGVtVmFsdWU+KSB7XG4gICAgICBzZWxmLm9uTG9hZENob2ljZXNGcm9tVXJsKGl0ZW1zKTtcbiAgICB9O1xuICAgIHRoaXMuY2hvaWNlc0J5VXJsLnVwZGF0ZVJlc3VsdENhbGxiYWNrID0gZnVuY3Rpb24oXG4gICAgICBpdGVtczogQXJyYXk8SXRlbVZhbHVlPixcbiAgICAgIHNlcnZlclJlc3VsdDogYW55XG4gICAgKTogQXJyYXk8SXRlbVZhbHVlPiB7XG4gICAgICBpZiAoc2VsZi5zdXJ2ZXkpIHtcbiAgICAgICAgcmV0dXJuIHNlbGYuc3VydmV5LnVwZGF0ZUNob2ljZXNGcm9tU2VydmVyKHNlbGYsIGl0ZW1zLCBzZXJ2ZXJSZXN1bHQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH07XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcIm90aGVyUGxhY2VIb2xkZXJcIiwgdGhpcyk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJzZWxlY3RiYXNlXCI7XG4gIH1cbiAgaXNMYXlvdXRUeXBlU3VwcG9ydGVkKGxheW91dFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvdGhlciBpdGVtLiBCeSB1c2luZyB0aGlzIHByb3BlcnR5LCB5b3UgbWF5IGNoYW5nZSBwcm9ncmFtbWF0aWNhbGx5IGl0J3MgdmFsdWUgYW5kIHRleHQuXG4gICAqIEBzZWUgaGFzT3RoZXJcbiAgICovXG4gIHB1YmxpYyBnZXQgb3RoZXJJdGVtKCk6IEl0ZW1WYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMub3RoZXJJdGVtVmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhIHVzZXIgc2VsZWN0IHRoZSAnb3RoZXInIGl0ZW0uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzT3RoZXJTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNPdGhlciAmJiB0aGlzLmdldEhhc090aGVyKHRoaXMucmVuZGVyZWRWYWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIEFuIGV4cHJlc3Npb24gdGhhdCByZXR1cm5zIHRydWUgb3IgZmFsc2UuIEl0IHJ1bnMgYWdhaW5zdCBlYWNoIGNob2ljZXMgaXRlbSBhbmQgaWYgZm9yIHRoaXMgaXRlbSBpdCByZXR1cm5zIHRydWUsIHRoZW4gdGhlIGl0ZW0gaXMgdmlzaWJsZSBvdGhlcndpc2UgdGhlIGl0ZW0gYmVjb21lcyBpbnZpc2libGUuIFBsZWFzZSB1c2Uge2l0ZW19IHRvIGdldCB0aGUgY3VycmVudCBpdGVtIHZhbHVlIGluIHRoZSBleHByZXNzaW9uLlxuICAgKiBAc2VlIHZpc2libGVJZlxuICAgKiBAc2VlIGNob2ljZXNFbmFibGVJZlxuICAgKi9cbiAgcHVibGljIGdldCBjaG9pY2VzVmlzaWJsZUlmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImNob2ljZXNWaXNpYmxlSWZcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBjaG9pY2VzVmlzaWJsZUlmKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY2hvaWNlc1Zpc2libGVJZlwiLCB2YWwpO1xuICAgIHRoaXMuZmlsdGVySXRlbXMoKTtcbiAgfVxuICAvKipcbiAgICogQW4gZXhwcmVzc2lvbiB0aGF0IHJldHVybnMgdHJ1ZSBvciBmYWxzZS4gSXQgcnVucyBhZ2FpbnN0IGVhY2ggY2hvaWNlcyBpdGVtIGFuZCBpZiBmb3IgdGhpcyBpdGVtIGl0IHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUgaXRlbSBpcyBlbmFibGVkIG90aGVyd2lzZSB0aGUgaXRlbSBiZWNvbWVzIGRpc2FibGVkLiBQbGVhc2UgdXNlIHtpdGVtfSB0byBnZXQgdGhlIGN1cnJlbnQgaXRlbSB2YWx1ZSBpbiB0aGUgZXhwcmVzc2lvbi5cbiAgICogQHNlZSBjaG9pY2VzVmlzaWJsZUlmXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNob2ljZXNFbmFibGVJZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjaG9pY2VzRW5hYmxlSWZcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBjaG9pY2VzRW5hYmxlSWYodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjaG9pY2VzRW5hYmxlSWZcIiwgdmFsKTtcbiAgICB0aGlzLmZpbHRlckl0ZW1zKCk7XG4gIH1cbiAgcHVibGljIHJ1bkNvbmRpdGlvbih2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LCBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55Pikge1xuICAgIHN1cGVyLnJ1bkNvbmRpdGlvbih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIHRoaXMucnVuSXRlbXNFbmFibGVDb25kaXRpb24odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgICB0aGlzLnJ1bkl0ZW1zQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gIH1cbiAgaXNTZXR0aW5nRGVmYXVsdFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzZXREZWZhdWx0VmFsdWUoKSB7XG4gICAgdGhpcy5pc1NldHRpbmdEZWZhdWx0VmFsdWUgPVxuICAgICAgIXRoaXMuaXNWYWx1ZUVtcHR5KHRoaXMuZGVmYXVsdFZhbHVlKSAmJlxuICAgICAgdGhpcy5oYXNVbmtub3duVmFsdWUodGhpcy5kZWZhdWx0VmFsdWUpO1xuICAgIHN1cGVyLnNldERlZmF1bHRWYWx1ZSgpO1xuICAgIHRoaXMuaXNTZXR0aW5nRGVmYXVsdFZhbHVlID0gZmFsc2U7XG4gIH1cbiAgcHJvdGVjdGVkIGZpbHRlckl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMuaXNMb2FkaW5nRnJvbUpzb24gfHxcbiAgICAgICF0aGlzLmRhdGEgfHxcbiAgICAgIHRoaXMuYXJlSW52aXNpYmxlRWxlbWVudHNTaG93aW5nXG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHZhciB2YWx1ZXMgPSB0aGlzLmdldERhdGFGaWx0ZXJlZFZhbHVlcygpO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5nZXREYXRhRmlsdGVyZWRQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5ydW5JdGVtc0VuYWJsZUNvbmRpdGlvbih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIHJldHVybiB0aGlzLnJ1bkl0ZW1zQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gIH1cbiAgcHJvdGVjdGVkIHJ1bkl0ZW1zQ29uZGl0aW9uKFxuICAgIHZhbHVlczogSGFzaFRhYmxlPGFueT4sXG4gICAgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT5cbiAgKTogYm9vbGVhbiB7XG4gICAgdGhpcy5zZXRDb25kaXRpb25hbENob2ljZXNSdW5uZXIoKTtcbiAgICB2YXIgaGFzQ2hhbmdlcyA9IHRoaXMucnVuQ29uZGl0aW9uc0Zvckl0ZW1zKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgaWYgKFxuICAgICAgISF0aGlzLmZpbHRlcmVkQ2hvaWNlc1ZhbHVlICYmXG4gICAgICB0aGlzLmZpbHRlcmVkQ2hvaWNlc1ZhbHVlLmxlbmd0aCA9PT0gdGhpcy5hY3RpdmVDaG9pY2VzLmxlbmd0aFxuICAgICkge1xuICAgICAgdGhpcy5maWx0ZXJlZENob2ljZXNWYWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VzKSB7XG4gICAgICBpZiAoISF0aGlzLmZpbHRlcmVkQ2hvaWNlc1ZhbHVlKSB7XG4gICAgICAgIHRoaXMuY2xlYXJJbmNvcnJlY3RWYWx1ZXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMub25WaXNpYmxlQ2hvaWNlc0NoYW5nZWQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0NoYW5nZXM7XG4gIH1cbiAgcHJvdGVjdGVkIHJ1bkl0ZW1zRW5hYmxlQ29uZGl0aW9uKFxuICAgIHZhbHVlczogSGFzaFRhYmxlPGFueT4sXG4gICAgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT5cbiAgKTogYW55IHtcbiAgICB0aGlzLnNldENvbmRpdGlvbmFsRW5hYmxlQ2hvaWNlc1J1bm5lcigpO1xuICAgIHZhciBoYXNDaGFuZ2VkID0gSXRlbVZhbHVlLnJ1bkVuYWJsZWRDb25kaXRpb25zRm9ySXRlbXMoXG4gICAgICB0aGlzLmFjdGl2ZUNob2ljZXMsXG4gICAgICB0aGlzLmNvbmRpdGlvbkNob2ljZXNFbmFibGVJZlJ1bm5lcixcbiAgICAgIHZhbHVlcyxcbiAgICAgIHByb3BlcnRpZXNcbiAgICApO1xuICAgIGlmIChoYXNDaGFuZ2VkKSB7XG4gICAgICB0aGlzLmNsZWFyRGlzYWJsZWRWYWx1ZXMoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBzZXRDb25kaXRpb25hbENob2ljZXNSdW5uZXIoKSB7XG4gICAgaWYgKHRoaXMuY2hvaWNlc1Zpc2libGVJZikge1xuICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbkNob2ljZXNWaXNpYmxlSWZSdW5uZXIpIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25DaG9pY2VzVmlzaWJsZUlmUnVubmVyID0gbmV3IENvbmRpdGlvblJ1bm5lcihcbiAgICAgICAgICB0aGlzLmNob2ljZXNWaXNpYmxlSWZcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZGl0aW9uQ2hvaWNlc1Zpc2libGVJZlJ1bm5lci5leHByZXNzaW9uID0gdGhpcy5jaG9pY2VzVmlzaWJsZUlmO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbmRpdGlvbkNob2ljZXNWaXNpYmxlSWZSdW5uZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIHNldENvbmRpdGlvbmFsRW5hYmxlQ2hvaWNlc1J1bm5lcigpIHtcbiAgICBpZiAodGhpcy5jaG9pY2VzRW5hYmxlSWYpIHtcbiAgICAgIGlmICghdGhpcy5jb25kaXRpb25DaG9pY2VzRW5hYmxlSWZSdW5uZXIpIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25DaG9pY2VzRW5hYmxlSWZSdW5uZXIgPSBuZXcgQ29uZGl0aW9uUnVubmVyKFxuICAgICAgICAgIHRoaXMuY2hvaWNlc0VuYWJsZUlmXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbmRpdGlvbkNob2ljZXNFbmFibGVJZlJ1bm5lci5leHByZXNzaW9uID0gdGhpcy5jaG9pY2VzRW5hYmxlSWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZGl0aW9uQ2hvaWNlc0VuYWJsZUlmUnVubmVyID0gbnVsbDtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBydW5Db25kaXRpb25zRm9ySXRlbXMoXG4gICAgdmFsdWVzOiBIYXNoVGFibGU8YW55PixcbiAgICBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55PlxuICApOiBib29sZWFuIHtcbiAgICB0aGlzLmZpbHRlcmVkQ2hvaWNlc1ZhbHVlID0gW107XG4gICAgcmV0dXJuIEl0ZW1WYWx1ZS5ydW5Db25kaXRpb25zRm9ySXRlbXMoXG4gICAgICB0aGlzLmFjdGl2ZUNob2ljZXMsXG4gICAgICB0aGlzLmZpbHRlcmVkQ2hvaWNlcyxcbiAgICAgIHRoaXMuY29uZGl0aW9uQ2hvaWNlc1Zpc2libGVJZlJ1bm5lcixcbiAgICAgIHZhbHVlcyxcbiAgICAgIHByb3BlcnRpZXNcbiAgICApO1xuICB9XG4gIHByb3RlY3RlZCBnZXRIYXNPdGhlcih2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWwgPT09IHRoaXMub3RoZXJJdGVtLnZhbHVlO1xuICB9XG4gIGdldCB2YWxpZGF0ZWRWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlbmRyZWRWYWx1ZVRvRGF0YUNvcmUodGhpcy52YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc3RmdWxsKCk6IENob2ljZXNSZXN0ZnVsbCB7XG4gICAgcmV0dXJuIG5ldyBDaG9pY2VzUmVzdGZ1bGwoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29tbWVudCgpOiBzdHJpbmcge1xuICAgIGlmICghIXRoaXMuY29tbWVudFZhbHVlKSByZXR1cm4gdGhpcy5jb21tZW50VmFsdWU7XG4gICAgaWYgKHRoaXMuZ2V0U3RvcmVPdGhlcnNBc0NvbW1lbnQoKSkgcmV0dXJuIHN1cGVyLmdldENvbW1lbnQoKTtcbiAgICByZXR1cm4gdGhpcy5jb21tZW50VmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBpc1NldHRpbmdDb21tZW50OiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzZXRDb21tZW50KG5ld1ZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5oYXNDb21tZW50IHx8IHRoaXMuZ2V0U3RvcmVPdGhlcnNBc0NvbW1lbnQoKSlcbiAgICAgIHN1cGVyLnNldENvbW1lbnQobmV3VmFsdWUpO1xuICAgIGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLmlzU2V0dGluZ0NvbW1lbnQgJiYgbmV3VmFsdWUgIT0gdGhpcy5jb21tZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy5pc1NldHRpbmdDb21tZW50ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb21tZW50VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNPdGhlclNlbGVjdGVkICYmICF0aGlzLmlzUmVuZGVyZWRWYWx1ZVNldHRpbmcpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5yZW5kcmVkVmFsdWVUb0RhdGEodGhpcy5yZW5kZXJlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzU2V0dGluZ0NvbW1lbnQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCByZW5kZXJlZFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInJlbmRlcmVkVmFsdWVcIiwgbnVsbCk7XG4gIH1cbiAgcHVibGljIHNldCByZW5kZXJlZFZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicmVuZGVyZWRWYWx1ZVwiLCB2YWwpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnJlbmRyZWRWYWx1ZVRvRGF0YSh2YWwpO1xuICB9XG4gIHByb3RlY3RlZCBzZXRRdWVzdGlvblZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAoSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKHRoaXMudmFsdWUsIG5ld1ZhbHVlKSkgcmV0dXJuO1xuICAgIHN1cGVyLnNldFF1ZXN0aW9uVmFsdWUobmV3VmFsdWUpO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInJlbmRlcmVkVmFsdWVcIiwgdGhpcy5yZW5kcmVkVmFsdWVGcm9tRGF0YShuZXdWYWx1ZSkpO1xuICAgIGlmICh0aGlzLmhhc0NvbW1lbnQpIHJldHVybjtcbiAgICB2YXIgaXNPdGhlclNlbCA9IHRoaXMuaXNPdGhlclNlbGVjdGVkO1xuICAgIGlmIChpc090aGVyU2VsICYmICEhdGhpcy5wcmV2Q29tbWVudFZhbHVlKSB7XG4gICAgICB2YXIgb2xkQ29tbWVudCA9IHRoaXMucHJldkNvbW1lbnRWYWx1ZTtcbiAgICAgIHRoaXMucHJldkNvbW1lbnRWYWx1ZSA9IFwiXCI7XG4gICAgICB0aGlzLmNvbW1lbnQgPSBvbGRDb21tZW50O1xuICAgIH1cbiAgICBpZiAoIWlzT3RoZXJTZWwgJiYgISF0aGlzLmNvbW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLmdldFN0b3JlT3RoZXJzQXNDb21tZW50KCkpIHtcbiAgICAgICAgdGhpcy5wcmV2Q29tbWVudFZhbHVlID0gdGhpcy5jb21tZW50O1xuICAgICAgfVxuICAgICAgdGhpcy5jb21tZW50ID0gXCJcIjtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIHNldE5ld1ZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBuZXdWYWx1ZSA9IHRoaXMudmFsdWVGcm9tRGF0YShuZXdWYWx1ZSk7XG4gICAgaWYgKFxuICAgICAgKCF0aGlzLmNob2ljZXNCeVVybC5pc1J1bm5pbmcgJiZcbiAgICAgICAgIXRoaXMuY2hvaWNlc0J5VXJsLmlzV2FpdGluZ0ZvclBhcmFtZXRlcnMpIHx8XG4gICAgICAhdGhpcy5pc1ZhbHVlRW1wdHkobmV3VmFsdWUpXG4gICAgKSB7XG4gICAgICB0aGlzLmNhY2hlZFZhbHVlRm9yVXJsUmVxdWVzdHMgPSBuZXdWYWx1ZTtcbiAgICB9XG4gICAgc3VwZXIuc2V0TmV3VmFsdWUobmV3VmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCB2YWx1ZUZyb21EYXRhKHZhbDogYW55KTogYW55IHtcbiAgICBsZXQgY2hvaWNlaXRlbSA9IEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZSh0aGlzLmFjdGl2ZUNob2ljZXMsIHZhbCk7XG4gICAgaWYgKCEhY2hvaWNlaXRlbSkge1xuICAgICAgcmV0dXJuIGNob2ljZWl0ZW0udmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci52YWx1ZUZyb21EYXRhKHZhbCk7XG4gIH1cbiAgcHJvdGVjdGVkIHJlbmRyZWRWYWx1ZUZyb21EYXRhKHZhbDogYW55KTogYW55IHtcbiAgICBpZiAodGhpcy5nZXRTdG9yZU90aGVyc0FzQ29tbWVudCgpKSByZXR1cm4gdmFsO1xuICAgIHJldHVybiB0aGlzLnJlbmRlcmVkVmFsdWVGcm9tRGF0YUNvcmUodmFsKTtcbiAgfVxuICBwcm90ZWN0ZWQgcmVuZHJlZFZhbHVlVG9EYXRhKHZhbDogYW55KTogYW55IHtcbiAgICBpZiAodGhpcy5nZXRTdG9yZU90aGVyc0FzQ29tbWVudCgpKSByZXR1cm4gdmFsO1xuICAgIHJldHVybiB0aGlzLnJlbmRyZWRWYWx1ZVRvRGF0YUNvcmUodmFsKTtcbiAgfVxuICBwcm90ZWN0ZWQgcmVuZGVyZWRWYWx1ZUZyb21EYXRhQ29yZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKCF0aGlzLmhhc1Vua25vd25WYWx1ZSh2YWwsIHRydWUpKSByZXR1cm4gdGhpcy52YWx1ZUZyb21EYXRhKHZhbCk7XG4gICAgdGhpcy5jb21tZW50ID0gdmFsO1xuICAgIHJldHVybiB0aGlzLm90aGVySXRlbS52YWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgcmVuZHJlZFZhbHVlVG9EYXRhQ29yZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHZhbCA9PSB0aGlzLm90aGVySXRlbS52YWx1ZSAmJiB0aGlzLmdldENvbW1lbnQoKSkge1xuICAgICAgdmFsID0gdGhpcy5nZXRDb21tZW50KCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH1cbiAgcHJvdGVjdGVkIGhhc1Vua25vd25WYWx1ZSh2YWw6IGFueSwgaW5jbHVkZU90aGVyOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBpZiAoSGVscGVycy5pc1ZhbHVlRW1wdHkodmFsKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChpbmNsdWRlT3RoZXIgJiYgdmFsID09IHRoaXMub3RoZXJJdGVtLnZhbHVlKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZSh0aGlzLmZpbHRlcmVkQ2hvaWNlcywgdmFsKSA9PSBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBpc1ZhbHVlRGlzYWJsZWQodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgICB2YXIgaXRlbVZhbHVlID0gSXRlbVZhbHVlLmdldEl0ZW1CeVZhbHVlKHRoaXMuZmlsdGVyZWRDaG9pY2VzLCB2YWwpO1xuICAgIHJldHVybiAhIWl0ZW1WYWx1ZSAmJiAhaXRlbVZhbHVlLmlzRW5hYmxlZDtcbiAgfVxuICAvKipcbiAgICogSWYgdGhlIGNsZWFySW5jb3JyZWN0VmFsdWVzQ2FsbGJhY2sgaXMgc2V0LCBpdCBpcyB1c2VkIHRvIGNsZWFyIGluY29ycnJlY3QgdmFsdWVzIGluc3RlYWQgb2YgZGVmYXVsdCBiZWhhdmlvdXIuXG4gICAqL1xuICBwdWJsaWMgY2xlYXJJbmNvcnJlY3RWYWx1ZXNDYWxsYmFjazogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGl0ZW1zLiBFdmVyeSBpdGVtIGhhcyB2YWx1ZSBhbmQgdGV4dC4gSWYgdGV4dCBpcyBlbXB0eSwgdGhlIHZhbHVlIGlzIHJlbmRlcmVkLiBUaGUgaXRlbSB0ZXh0IHN1cHBvcnRzIG1hcmtkb3duLlxuICAgKiBAc2VlIGNob2ljZXNCeVVybFxuICAgKi9cbiAgcHVibGljIGdldCBjaG9pY2VzKCk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjaG9pY2VzXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY2hvaWNlcyhuZXdWYWx1ZTogQXJyYXk8YW55Pikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNob2ljZXNcIiwgbmV3VmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgaGlkZUlmQ2hvaWNlc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJoaWRlSWZDaG9pY2VzRW1wdHlcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgaGlkZUlmQ2hvaWNlc0VtcHR5KHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImhpZGVJZkNob2ljZXNFbXB0eVwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQga2VlcEluY29ycmVjdFZhbHVlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwia2VlcEluY29ycmVjdFZhbHVlc1wiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBrZWVwSW5jb3JyZWN0VmFsdWVzKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImtlZXBJbmNvcnJlY3RWYWx1ZXNcIiwgdmFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGVhc2UgdXNlIHN1cnZleS5zdG9yZU90aGVyc0FzQ29tbWVudCB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9uIHRoZSBzdXJ2ZXkgbGV2ZWwuIFRoaXMgcHJvcGVydHkgaXMgZGVwcmljYXRlZCBhbmQgaW52aXNpYmxlIGluIFN1cnZleSBDcmVhdG9yLlxuICAgKiBCeSBkZWZhdWx0IHRoZSBlbnRlcmVkIHRleHQgaW4gdGhlIG90aGVycyBpbnB1dCBpbiB0aGUgY2hlY2tib3gvcmFkaW9ncm91cC9kcm9wZG93biBhcmUgc3RvcmVkIGFzIFwicXVlc3Rpb24gbmFtZSBcIiArIFwiLUNvbW1lbnRcIi4gVGhlIHZhbHVlIGl0c2VsZiBpcyBcInF1ZXN0aW9uIG5hbWVcIjogXCJvdGhlcnNcIi4gU2V0IHRoaXMgcHJvcGVydHkgdG8gZmFsc2UsIHRvIHN0b3JlIHRoZSBlbnRlcmVkIHRleHQgZGlyZWN0bHkgaW4gdGhlIFwicXVlc3Rpb24gbmFtZVwiIGtleS5cbiAgICogUG9zc2libGUgdmFsdWVzIGFyZTogXCJkZWZhdWx0XCIsIHRydWUsIGZhbHNlXG4gICAqIEBzZWUgU3VydmV5TW9kZWwuc3RvcmVPdGhlcnNBc0NvbW1lbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgc3RvcmVPdGhlcnNBc0NvbW1lbnQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic3RvcmVPdGhlcnNBc0NvbW1lbnRcIiwgXCJkZWZhdWx0XCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc3RvcmVPdGhlcnNBc0NvbW1lbnQodmFsOiBhbnkpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzdG9yZU90aGVyc0FzQ29tbWVudFwiLCB2YWwpO1xuICB9XG4gIHByb3RlY3RlZCBoYXNPdGhlckNoYW5nZWQoKSB7XG4gICAgdGhpcy5vblZpc2libGVDaG9pY2VzQ2hhbmdlZCgpO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byByZW5kZXIgaXRlbXMgaW4gYSBzcGVjaWZpYyBvcmRlcjogXCJhc2NcIiwgXCJkZXNjXCIsIFwicmFuZG9tXCIuIERlZmF1bHQgdmFsdWUgaXMgXCJub25lXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNob2ljZXNPcmRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjaG9pY2VzT3JkZXJcIik7XG4gIH1cbiAgcHVibGljIHNldCBjaG9pY2VzT3JkZXIodmFsOiBzdHJpbmcpIHtcbiAgICB2YWwgPSB2YWwudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAodmFsID09IHRoaXMuY2hvaWNlc09yZGVyKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY2hvaWNlc09yZGVyXCIsIHZhbCk7XG4gICAgdGhpcy5vblZpc2libGVDaG9pY2VzQ2hhbmdlZCgpO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBzZXQgdGhlIGRpZmZlcmVudCB0ZXh0IGZvciBvdGhlciBpdGVtLlxuICAgKi9cbiAgcHVibGljIGdldCBvdGhlclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXG4gICAgICBcIm90aGVyVGV4dFwiLFxuICAgICAgc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm90aGVySXRlbVRleHRcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgb3RoZXJUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJvdGhlclRleHRcIiwgdmFsKTtcbiAgICB0aGlzLm9uVmlzaWJsZUNob2ljZXNDaGFuZ2VkKCk7XG4gIH1cbiAgZ2V0IGxvY090aGVyVGV4dCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJvdGhlclRleHRcIik7XG4gIH1cbiAgLyoqXG4gICAqICBVc2UgdGhpcyBwcm9wZXJ0eSB0byBzZXQgdGhlIHBsYWNlIGhvbGRlciB0ZXh0IGZvciBvdGhlciBvciBjb21tZW50IGZpZWxkICAuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG90aGVyUGxhY2VIb2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJvdGhlclBsYWNlSG9sZGVyXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgb3RoZXJQbGFjZUhvbGRlcih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwib3RoZXJQbGFjZUhvbGRlclwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NPdGhlclBsYWNlSG9sZGVyKCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcIm90aGVyUGxhY2VIb2xkZXJcIik7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRoYXQgc2hvd3Mgd2hlbiB0aGUgb3RoZXIgaXRlbSBpcyBjaG9vc2VkIGJ5IHRoZSBvdGhlciBpbnB1dCBpcyBlbXB0eS5cbiAgICovXG4gIHB1YmxpYyBnZXQgb3RoZXJFcnJvclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXG4gICAgICBcIm90aGVyRXJyb3JUZXh0XCIsXG4gICAgICBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwib3RoZXJSZXF1aXJlZEVycm9yXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IG90aGVyRXJyb3JUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJvdGhlckVycm9yVGV4dFwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NPdGhlckVycm9yVGV4dCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJvdGhlckVycm9yVGV4dFwiKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgaXRlbXMgYXMgdGhleSB3aWxsIGJlIHJlbmRlcmVkLiBJZiBuZWVkZWQgaXRlbXMgYXJlIHNvcnRlZCBhbmQgdGhlIG90aGVyIGl0ZW0gaXMgYWRkZWQuXG4gICAqIEBzZWUgaGFzT3RoZXJcbiAgICogQHNlZSBjaG9pY2VzT3JkZXJcbiAgICogQHNlZSBlbmFibGVkQ2hvaWNlc1xuICAgKi9cbiAgcHVibGljIGdldCB2aXNpYmxlQ2hvaWNlcygpOiBBcnJheTxJdGVtVmFsdWU+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJsZUNob2ljZXNcIiwgW10pO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBlbmFibGVkIGl0ZW1zIGFzIHRoZXkgd2lsbCBiZSByZW5kZXJlZC4gVGhlIGRpc2FibGVkIGl0ZW1zIGFyZSBub3QgaW5jbHVkZWRcbiAgICogQHNlZSBoYXNPdGhlclxuICAgKiBAc2VlIGNob2ljZXNPcmRlclxuICAgKiBAc2VlIHZpc2libGVDaG9pY2VzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVuYWJsZWRDaG9pY2VzKCk6IEFycmF5PEl0ZW1WYWx1ZT4ge1xuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgaXRlbXMgPSB0aGlzLnZpc2libGVDaG9pY2VzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpdGVtc1tpXS5pc0VuYWJsZWQpIHJlcy5wdXNoKGl0ZW1zW2ldKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcm90ZWN0ZWQgdXBkYXRlVmlzaWJsZUNob2ljZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHJldHVybjtcbiAgICB2YXIgbmV3VmFsdWUgPSBuZXcgQXJyYXk8SXRlbVZhbHVlPigpO1xuICAgIHZhciBjYWxjVmFsdWUgPSB0aGlzLmNhbGNWaXNpYmxlQ2hvaWNlcygpO1xuICAgIGlmICghY2FsY1ZhbHVlKSBjYWxjVmFsdWUgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGNWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgbmV3VmFsdWUucHVzaChjYWxjVmFsdWVbaV0pO1xuICAgIH1cbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJ2aXNpYmxlQ2hvaWNlc1wiLCBuZXdWYWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBjYWxjVmlzaWJsZUNob2ljZXMoKTogQXJyYXk8SXRlbVZhbHVlPiB7XG4gICAgaWYgKHRoaXMuY2FuVXNlRmlsdGVyZWRDaG9pY2VzKCkpIHJldHVybiB0aGlzLmZpbHRlcmVkQ2hvaWNlcztcbiAgICB2YXIgcmVzID0gdGhpcy5zb3J0VmlzaWJsZUNob2ljZXModGhpcy5maWx0ZXJlZENob2ljZXMuc2xpY2UoKSk7XG4gICAgdGhpcy5hZGRUb1Zpc2libGVDaG9pY2VzKHJlcyk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcm90ZWN0ZWQgY2FuVXNlRmlsdGVyZWRDaG9pY2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5oYXNPdGhlciAmJiB0aGlzLmNob2ljZXNPcmRlciA9PSBcIm5vbmVcIjtcbiAgfVxuICBwcm90ZWN0ZWQgYWRkVG9WaXNpYmxlQ2hvaWNlcyhpdGVtczogQXJyYXk8SXRlbVZhbHVlPikge1xuICAgIGlmICh0aGlzLmhhc090aGVyKSB7XG4gICAgICBpdGVtcy5wdXNoKHRoaXMub3RoZXJJdGVtKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldFBsYWluRGF0YShcbiAgICBvcHRpb25zOiB7XG4gICAgICBpbmNsdWRlRW1wdHk/OiBib29sZWFuO1xuICAgICAgY2FsY3VsYXRpb25zPzogQXJyYXk8e1xuICAgICAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgICAgIH0+O1xuICAgIH0gPSB7XG4gICAgICBpbmNsdWRlRW1wdHk6IHRydWVcbiAgICB9XG4gICkge1xuICAgIHZhciBxdWVzdGlvblBsYWluRGF0YSA9IHN1cGVyLmdldFBsYWluRGF0YShvcHRpb25zKTtcbiAgICBpZiAoISFxdWVzdGlvblBsYWluRGF0YSkge1xuICAgICAgdmFyIHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlIDogW3RoaXMudmFsdWVdO1xuICAgICAgcXVlc3Rpb25QbGFpbkRhdGEuaXNOb2RlID0gdHJ1ZTtcbiAgICAgIHF1ZXN0aW9uUGxhaW5EYXRhLmRhdGEgPSB2YWx1ZXMubWFwKChkYXRhVmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBjaG9pY2UgPSBJdGVtVmFsdWUuZ2V0SXRlbUJ5VmFsdWUodGhpcy52aXNpYmxlQ2hvaWNlcywgZGF0YVZhbHVlKTtcbiAgICAgICAgdmFyIGNob2ljZURhdGFJdGVtID0gPGFueT57XG4gICAgICAgICAgbmFtZTogaW5kZXgsXG4gICAgICAgICAgdGl0bGU6IFwiQ2hvaWNlXCIsXG4gICAgICAgICAgdmFsdWU6IGRhdGFWYWx1ZSxcbiAgICAgICAgICBkaXNwbGF5VmFsdWU6IHRoaXMuZ2V0Q2hvaWNlc0Rpc3BsYXlWYWx1ZShcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZUNob2ljZXMsXG4gICAgICAgICAgICBkYXRhVmFsdWVcbiAgICAgICAgICApLFxuICAgICAgICAgIGdldFN0cmluZzogKHZhbDogYW55KSA9PlxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiA/IEpTT04uc3RyaW5naWZ5KHZhbCkgOiB2YWwsXG4gICAgICAgICAgaXNOb2RlOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICBpZiAoISFjaG9pY2UpIHtcbiAgICAgICAgICAob3B0aW9ucy5jYWxjdWxhdGlvbnMgfHwgW10pLmZvckVhY2goY2FsY3VsYXRpb24gPT4ge1xuICAgICAgICAgICAgY2hvaWNlRGF0YUl0ZW1bY2FsY3VsYXRpb24ucHJvcGVydHlOYW1lXSA9XG4gICAgICAgICAgICAgIGNob2ljZVtjYWxjdWxhdGlvbi5wcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaG9pY2VEYXRhSXRlbTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcXVlc3Rpb25QbGFpbkRhdGE7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdGV4dCBmb3IgdGhlIGN1cnJlbnQgdmFsdWUuIElmIHRoZSB2YWx1ZSBpcyBudWxsIHRoZW4gcmV0dXJucyBlbXB0eSBzdHJpbmcuIElmICdvdGhlcicgaXMgc2VsZWN0ZWQgdGhlbiByZXR1cm5zIHRoZSB0ZXh0IGZvciBvdGhlciB2YWx1ZS5cbiAgICovXG4gIHByb3RlY3RlZCBnZXREaXNwbGF5VmFsdWVDb3JlKGtleXNBc1RleHQ6IGJvb2xlYW4sIHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldENob2ljZXNEaXNwbGF5VmFsdWUodGhpcy52aXNpYmxlQ2hvaWNlcywgdmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRDaG9pY2VzRGlzcGxheVZhbHVlKGl0ZW1zOiBJdGVtVmFsdWVbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICh2YWwgPT0gdGhpcy5vdGhlckl0ZW1WYWx1ZS52YWx1ZSlcbiAgICAgIHJldHVybiB0aGlzLmNvbW1lbnQgPyB0aGlzLmNvbW1lbnQgOiB0aGlzLmxvY090aGVyVGV4dC50ZXh0T3JIdG1sO1xuICAgIHZhciBzdHIgPSBJdGVtVmFsdWUuZ2V0VGV4dE9ySHRtbEJ5VmFsdWUoaXRlbXMsIHZhbCk7XG4gICAgcmV0dXJuIHN0ciA9PSBcIlwiICYmIHZhbCA/IHZhbCA6IHN0cjtcbiAgfVxuICBwcml2YXRlIGdldCBmaWx0ZXJlZENob2ljZXMoKTogQXJyYXk8SXRlbVZhbHVlPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDaG9pY2VzVmFsdWVcbiAgICAgID8gdGhpcy5maWx0ZXJlZENob2ljZXNWYWx1ZVxuICAgICAgOiB0aGlzLmFjdGl2ZUNob2ljZXM7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCBhY3RpdmVDaG9pY2VzKCk6IEFycmF5PEl0ZW1WYWx1ZT4ge1xuICAgIHJldHVybiB0aGlzLmNob2ljZXNGcm9tVXJsID8gdGhpcy5jaG9pY2VzRnJvbVVybCA6IHRoaXMuZ2V0Q2hvaWNlcygpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRDaG9pY2VzKCk6IEFycmF5PEl0ZW1WYWx1ZT4ge1xuICAgIHJldHVybiB0aGlzLmNob2ljZXM7XG4gIH1cbiAgcHVibGljIHN1cHBvcnRDb21tZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHB1YmxpYyBzdXBwb3J0T3RoZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJvdGVjdGVkIG9uQ2hlY2tGb3JFcnJvcnMoZXJyb3JzOiBBcnJheTxTdXJ2ZXlFcnJvcj4pIHtcbiAgICBzdXBlci5vbkNoZWNrRm9yRXJyb3JzKGVycm9ycyk7XG4gICAgaWYgKCF0aGlzLmhhc090aGVyIHx8ICF0aGlzLmlzT3RoZXJTZWxlY3RlZCB8fCB0aGlzLmNvbW1lbnQpIHJldHVybjtcbiAgICBlcnJvcnMucHVzaChuZXcgT3RoZXJFbXB0eUVycm9yKHRoaXMub3RoZXJFcnJvclRleHQsIHRoaXMpKTtcbiAgfVxuICBwdWJsaWMgc2V0U3VydmV5SW1wbCh2YWx1ZTogSVN1cnZleUltcGwpIHtcbiAgICBzdXBlci5zZXRTdXJ2ZXlJbXBsKHZhbHVlKTtcbiAgICB0aGlzLnJ1bkNob2ljZXNCeVVybCgpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRTdG9yZU90aGVyc0FzQ29tbWVudCgpIHtcbiAgICBpZiAodGhpcy5pc1NldHRpbmdEZWZhdWx0VmFsdWUpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zdG9yZU90aGVyc0FzQ29tbWVudCA9PT0gdHJ1ZSB8fFxuICAgICAgKHRoaXMuc3RvcmVPdGhlcnNBc0NvbW1lbnQgPT0gXCJkZWZhdWx0XCIgJiZcbiAgICAgICAgKHRoaXMuc3VydmV5ICE9IG51bGwgPyB0aGlzLnN1cnZleS5zdG9yZU90aGVyc0FzQ29tbWVudCA6IHRydWUpKSB8fFxuICAgICAgKCF0aGlzLmNob2ljZXNCeVVybC5pc0VtcHR5ICYmICF0aGlzLmNob2ljZXNGcm9tVXJsKVxuICAgICk7XG4gIH1cbiAgb25TdXJ2ZXlMb2FkKCkge1xuICAgIHN1cGVyLm9uU3VydmV5TG9hZCgpO1xuICAgIHRoaXMucnVuQ2hvaWNlc0J5VXJsKCk7XG4gICAgdGhpcy5vblZpc2libGVDaG9pY2VzQ2hhbmdlZCgpO1xuICB9XG4gIG9uQW55VmFsdWVDaGFuZ2VkKG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyLm9uQW55VmFsdWVDaGFuZ2VkKG5hbWUpO1xuICAgIGlmIChuYW1lICE9IHRoaXMuZ2V0VmFsdWVOYW1lKCkpIHtcbiAgICAgIHRoaXMucnVuQ2hvaWNlc0J5VXJsKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcnVuQ2hvaWNlc0J5VXJsKCkge1xuICAgIGlmICghdGhpcy5jaG9pY2VzQnlVcmwgfHwgdGhpcy5pc0xvYWRpbmdGcm9tSnNvbikgcmV0dXJuO1xuICAgIHZhciBwcm9jZXNzb3IgPSB0aGlzLnN1cnZleUltcGxcbiAgICAgID8gdGhpcy5zdXJ2ZXlJbXBsLmdldFRleHRQcm9jZXNzb3IoKVxuICAgICAgOiB0aGlzLnRleHRQcm9jZXNzb3I7XG4gICAgaWYgKCFwcm9jZXNzb3IpIHByb2Nlc3NvciA9IHRoaXMuc3VydmV5O1xuICAgIGlmICghcHJvY2Vzc29yKSByZXR1cm47XG4gICAgdGhpcy5pc1JlYWR5VmFsdWUgPSB0aGlzLmlzQ2hvaWNlc0xvYWRlZCB8fCB0aGlzLmNob2ljZXNCeVVybC5pc0VtcHR5O1xuICAgIHRoaXMuY2hvaWNlc0J5VXJsLnJ1bihwcm9jZXNzb3IpO1xuICB9XG4gIHByaXZhdGUgaXNGaXJzdExvYWRDaG9pY2VzRnJvbVVybCA9IHRydWU7XG4gIHByb3RlY3RlZCBvbkJlZm9yZVNlbmRSZXF1ZXN0KCkge1xuICAgIGlmIChzZXR0aW5ncy5kaXNhYmxlT25HZXR0aW5nQ2hvaWNlc0Zyb21XZWIgPT09IHRydWUgJiYgIXRoaXMuaXNSZWFkT25seSkge1xuICAgICAgdGhpcy5lbmFibGVPbkxvYWRpbmdDaG9pY2VzID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVhZE9ubHkgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgb25Mb2FkQ2hvaWNlc0Zyb21VcmwoYXJyYXk6IEFycmF5PEl0ZW1WYWx1ZT4pIHtcbiAgICBpZiAodGhpcy5lbmFibGVPbkxvYWRpbmdDaG9pY2VzKSB7XG4gICAgICB0aGlzLnJlYWRPbmx5ID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGhpcy5pc1JlYWRPbmx5KSB7XG4gICAgICB2YXIgZXJyb3JzID0gW107XG4gICAgICBpZiAodGhpcy5jaG9pY2VzQnlVcmwgJiYgdGhpcy5jaG9pY2VzQnlVcmwuZXJyb3IpIHtcbiAgICAgICAgZXJyb3JzLnB1c2godGhpcy5jaG9pY2VzQnlVcmwuZXJyb3IpO1xuICAgICAgfVxuICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG4gICAgfVxuICAgIHZhciBuZXdDaG9pY2VzID0gbnVsbDtcbiAgICB2YXIgY2hlY2tDYWNoZWRWYWx1ZXNPbkV4aXN0aW5nID0gdHJ1ZTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmlzRmlyc3RMb2FkQ2hvaWNlc0Zyb21VcmwgJiZcbiAgICAgICF0aGlzLmNhY2hlZFZhbHVlRm9yVXJsUmVxdWVzdHMgJiZcbiAgICAgIHRoaXMuZGVmYXVsdFZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLmNhY2hlZFZhbHVlRm9yVXJsUmVxdWVzdHMgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICAgIGNoZWNrQ2FjaGVkVmFsdWVzT25FeGlzdGluZyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1ZhbHVlRW1wdHkodGhpcy5jYWNoZWRWYWx1ZUZvclVybFJlcXVlc3RzKSkge1xuICAgICAgdGhpcy5jYWNoZWRWYWx1ZUZvclVybFJlcXVlc3RzID0gdGhpcy52YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5pc0ZpcnN0TG9hZENob2ljZXNGcm9tVXJsID0gZmFsc2U7XG4gICAgdmFyIGNhY2hlZFZhbHVlcyA9IHRoaXMuY3JlYXRlQ2FjaGVkVmFsdWVGb3JVcmxSZXF1ZXN0cyhcbiAgICAgIHRoaXMuY2FjaGVkVmFsdWVGb3JVcmxSZXF1ZXN0cyxcbiAgICAgIGNoZWNrQ2FjaGVkVmFsdWVzT25FeGlzdGluZ1xuICAgICk7XG4gICAgaWYgKGFycmF5ICYmIGFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIG5ld0Nob2ljZXMgPSBuZXcgQXJyYXk8SXRlbVZhbHVlPigpO1xuICAgICAgSXRlbVZhbHVlLnNldERhdGEobmV3Q2hvaWNlcywgYXJyYXkpO1xuICAgIH1cbiAgICB0aGlzLmNob2ljZXNGcm9tVXJsID0gbmV3Q2hvaWNlcztcbiAgICB0aGlzLmZpbHRlckl0ZW1zKCk7XG4gICAgdGhpcy5vblZpc2libGVDaG9pY2VzQ2hhbmdlZCgpO1xuICAgIGlmIChuZXdDaG9pY2VzKSB7XG4gICAgICB2YXIgbmV3VmFsdWUgPSB0aGlzLnVwZGF0ZUNhY2hlZFZhbHVlRm9yVXJsUmVxdWVzdHMoXG4gICAgICAgIGNhY2hlZFZhbHVlcyxcbiAgICAgICAgbmV3Q2hvaWNlc1xuICAgICAgKTtcbiAgICAgIGlmICghIW5ld1ZhbHVlICYmICF0aGlzLmlzUmVhZE9ubHkpIHtcbiAgICAgICAgdGhpcy5sb2NOb3RpZmljYXRpb25JbkRhdGEgPSB0cnVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmxvY05vdGlmaWNhdGlvbkluRGF0YSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWUudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hvaWNlc0xvYWRlZCgpO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVkVmFsdWVGb3JVcmxSZXF1ZXN0cyhcbiAgICB2YWw6IGFueSxcbiAgICBjaGVja09uRXhpc3Rpbmc6IGJvb2xlYW5cbiAgKTogYW55IHtcbiAgICBpZiAodGhpcy5pc1ZhbHVlRW1wdHkodmFsKSkgcmV0dXJuIG51bGw7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgdmFyIHJlcyA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVzLnB1c2godGhpcy5jcmVhdGVDYWNoZWRWYWx1ZUZvclVybFJlcXVlc3RzKHZhbFtpXSwgdHJ1ZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgdmFyIGlzRXhpc3RzID0gY2hlY2tPbkV4aXN0aW5nID8gIXRoaXMuaGFzVW5rbm93blZhbHVlKHZhbCkgOiB0cnVlO1xuICAgIHJldHVybiB7IHZhbHVlOiB2YWwsIGlzRXhpc3RzOiBpc0V4aXN0cyB9O1xuICB9XG4gIHByaXZhdGUgdXBkYXRlQ2FjaGVkVmFsdWVGb3JVcmxSZXF1ZXN0cyhcbiAgICB2YWw6IGFueSxcbiAgICBuZXdDaG9pY2VzOiBBcnJheTxJdGVtVmFsdWU+XG4gICk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZUVtcHR5KHZhbCkpIHJldHVybiBudWxsO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHZhciByZXMgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciB1cGRhdGVkVmFsdWUgPSB0aGlzLnVwZGF0ZUNhY2hlZFZhbHVlRm9yVXJsUmVxdWVzdHMoXG4gICAgICAgICAgdmFsW2ldLFxuICAgICAgICAgIG5ld0Nob2ljZXNcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHVwZGF0ZWRWYWx1ZSAmJiAhdGhpcy5pc1ZhbHVlRW1wdHkodXBkYXRlZFZhbHVlLnZhbHVlKSkge1xuICAgICAgICAgIHZhciBuZXdWYWx1ZSA9IHVwZGF0ZWRWYWx1ZS52YWx1ZTtcbiAgICAgICAgICB2YXIgaXRlbSA9IEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZShuZXdDaG9pY2VzLCB1cGRhdGVkVmFsdWUudmFsdWUpO1xuICAgICAgICAgIGlmICghIWl0ZW0pIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gaXRlbS52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzLnB1c2gobmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyB2YWx1ZTogcmVzIH07XG4gICAgfVxuICAgIHZhciB2YWx1ZSA9XG4gICAgICB2YWwuaXNFeGlzdHMgJiYgdGhpcy5oYXNVbmtub3duVmFsdWUodmFsLnZhbHVlKSA/IG51bGwgOiB2YWwudmFsdWU7XG4gICAgdmFyIGl0ZW0gPSBJdGVtVmFsdWUuZ2V0SXRlbUJ5VmFsdWUobmV3Q2hvaWNlcywgdmFsdWUpO1xuICAgIGlmICghIWl0ZW0pIHtcbiAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlIH07XG4gIH1cbiAgcHJvdGVjdGVkIG9uVmlzaWJsZUNob2ljZXNDaGFuZ2VkKCkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZ0Zyb21Kc29uKSByZXR1cm47XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlQ2hvaWNlcygpO1xuICAgIHRoaXMudXBkYXRlVmlzaWJpbGl0eUJhc2VkT25DaG9pY2VzKCk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVWaXNpYmlsaXR5QmFzZWRPbkNob2ljZXMoKSB7XG4gICAgaWYgKHRoaXMuaGlkZUlmQ2hvaWNlc0VtcHR5KSB7XG4gICAgICB0aGlzLnZpc2libGUgPSAhdGhpcy5maWx0ZXJlZENob2ljZXMgfHwgdGhpcy5maWx0ZXJlZENob2ljZXMubGVuZ3RoID4gMDtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBzb3J0VmlzaWJsZUNob2ljZXMoYXJyYXk6IEFycmF5PEl0ZW1WYWx1ZT4pOiBBcnJheTxJdGVtVmFsdWU+IHtcbiAgICB2YXIgb3JkZXIgPSB0aGlzLmNob2ljZXNPcmRlci50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChvcmRlciA9PSBcImFzY1wiKSByZXR1cm4gdGhpcy5zb3J0QXJyYXkoYXJyYXksIDEpO1xuICAgIGlmIChvcmRlciA9PSBcImRlc2NcIikgcmV0dXJuIHRoaXMuc29ydEFycmF5KGFycmF5LCAtMSk7XG4gICAgaWYgKG9yZGVyID09IFwicmFuZG9tXCIpIHJldHVybiB0aGlzLnJhbmRvbWl6ZUFycmF5KGFycmF5KTtcbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cbiAgcHJpdmF0ZSBzb3J0QXJyYXkoYXJyYXk6IEFycmF5PEl0ZW1WYWx1ZT4sIG11bHQ6IG51bWJlcik6IEFycmF5PEl0ZW1WYWx1ZT4ge1xuICAgIHJldHVybiBhcnJheS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcbiAgICAgIGlmIChhLmNhbGN1bGF0ZWRUZXh0IDwgYi5jYWxjdWxhdGVkVGV4dCkgcmV0dXJuIC0xICogbXVsdDtcbiAgICAgIGlmIChhLmNhbGN1bGF0ZWRUZXh0ID4gYi5jYWxjdWxhdGVkVGV4dCkgcmV0dXJuIDEgKiBtdWx0O1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSByYW5kb21pemVBcnJheShhcnJheTogQXJyYXk8SXRlbVZhbHVlPik6IEFycmF5PEl0ZW1WYWx1ZT4ge1xuICAgIHJldHVybiBIZWxwZXJzLnJhbmRvbWl6ZUFycmF5PEl0ZW1WYWx1ZT4oYXJyYXkpO1xuICB9XG4gIHB1YmxpYyBjbGVhckluY29ycmVjdFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5rZWVwSW5jb3JyZWN0VmFsdWVzKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgISF0aGlzLnN1cnZleSAmJlxuICAgICAgdGhpcy5zdXJ2ZXkucXVlc3Rpb25Db3VudEJ5VmFsdWVOYW1lKHRoaXMuZ2V0VmFsdWVOYW1lKCkpID4gMVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICBpZiAodGhpcy5jbGVhckluY29ycmVjdFZhbHVlc0NhbGxiYWNrKSB7XG4gICAgICB0aGlzLmNsZWFySW5jb3JyZWN0VmFsdWVzQ2FsbGJhY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGVhckluY29ycmVjdFZhbHVlc0NvcmUoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGNsZWFyVmFsdWVJZkludmlzaWJsZSgpIHtcbiAgICBzdXBlci5jbGVhclZhbHVlSWZJbnZpc2libGUoKTtcbiAgICB0aGlzLmNsZWFySW5jb3JyZWN0VmFsdWVzKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRGlzYWJsZWRWYWx1ZXMoKSB7XG4gICAgaWYgKCF0aGlzLnN1cnZleSB8fCAhdGhpcy5zdXJ2ZXkuY2xlYXJWYWx1ZU9uRGlzYWJsZUl0ZW1zKSByZXR1cm47XG4gICAgdGhpcy5jbGVhckRpc2FibGVkVmFsdWVzQ29yZSgpO1xuICB9XG4gIHByb3RlY3RlZCBjbGVhckluY29ycmVjdFZhbHVlc0NvcmUoKSB7XG4gICAgdmFyIHZhbCA9IHRoaXMudmFsdWU7XG4gICAgaWYgKHRoaXMuY2FuQ2xlYXJWYWx1ZUFuVW5rbm93KHZhbCkpIHtcbiAgICAgIHRoaXMuY2xlYXJWYWx1ZSgpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgY2FuQ2xlYXJWYWx1ZUFuVW5rbm93KHZhbDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmdldFN0b3JlT3RoZXJzQXNDb21tZW50KCkgJiYgdGhpcy5pc090aGVyU2VsZWN0ZWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5oYXNVbmtub3duVmFsdWUodmFsLCB0cnVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgY2xlYXJEaXNhYmxlZFZhbHVlc0NvcmUoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZURpc2FibGVkKHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmNsZWFyVmFsdWUoKTtcbiAgICB9XG4gIH1cbiAgY2xlYXJVbnVzZWRWYWx1ZXMoKSB7XG4gICAgc3VwZXIuY2xlYXJVbnVzZWRWYWx1ZXMoKTtcbiAgICBpZiAoIXRoaXMuaXNPdGhlclNlbGVjdGVkICYmICF0aGlzLmhhc0NvbW1lbnQpIHtcbiAgICAgIHRoaXMuY29tbWVudCA9IFwiXCI7XG4gICAgfVxuICB9XG4gIGdldENvbHVtbkNsYXNzKCkge1xuICAgIHZhciBjb2x1bW5DbGFzcyA9IHRoaXMuY3NzQ2xhc3Nlcy5jb2x1bW47XG4gICAgaWYgKHRoaXMuaGFzQ29sdW1ucykge1xuICAgICAgY29sdW1uQ2xhc3MgKz0gXCIgc3YtcS1jb2x1bW4tXCIgKyB0aGlzLmNvbENvdW50O1xuICAgIH1cbiAgICByZXR1cm4gY29sdW1uQ2xhc3M7XG4gIH1cbiAgZ2V0TGFiZWxDbGFzcyhpc0NoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICB2YXIgbGFiZWxDbGFzcyA9IHRoaXMuY3NzQ2xhc3Nlcy5sYWJlbDtcbiAgICBpZiAoaXNDaGVja2VkKSB7XG4gICAgICBsYWJlbENsYXNzICs9IFwiIFwiICsgdGhpcy5jc3NDbGFzc2VzLmxhYmVsQ2hlY2tlZDtcbiAgICB9XG4gICAgcmV0dXJuIGxhYmVsQ2xhc3M7XG4gIH1cbiAgZ2V0Q29udHJvbExhYmVsQ2xhc3MoaXNDaGVja2VkOiBib29sZWFuKSB7XG4gICAgdmFyIGNvbnRyb2xMYWJlbENsYXNzID0gdGhpcy5jc3NDbGFzc2VzLmNvbnRyb2xMYWJlbDtcbiAgICBpZiAoaXNDaGVja2VkKSB7XG4gICAgICBjb250cm9sTGFiZWxDbGFzcyArPSBcIiBcIiArIHRoaXMuY3NzQ2xhc3Nlcy5jb250cm9sTGFiZWxDaGVja2VkO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbExhYmVsQ2xhc3M7XG4gIH1cbiAgZ2V0IGNvbHVtbnMoKSB7XG4gICAgdmFyIGNvbHVtbnMgPSBbXTtcbiAgICB2YXIgY29sQ291bnQgPSB0aGlzLmNvbENvdW50O1xuICAgIGlmICh0aGlzLmhhc0NvbHVtbnMgJiYgdGhpcy52aXNpYmxlQ2hvaWNlcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbENvdW50OyBpKyspIHtcbiAgICAgICAgdmFyIGNvbHVtbiA9IFtdO1xuICAgICAgICBmb3IgKHZhciBqID0gaTsgaiA8IHRoaXMudmlzaWJsZUNob2ljZXMubGVuZ3RoOyBqICs9IGNvbENvdW50KSB7XG4gICAgICAgICAgY29sdW1uLnB1c2godGhpcy52aXNpYmxlQ2hvaWNlc1tqXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG4gIGdldCBoYXNDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLmNvbENvdW50ID4gMTtcbiAgfVxuICBwdWJsaWMgY2hvaWNlc0xvYWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzQ2hvaWNlc0xvYWRlZCA9IHRydWU7XG4gICAgbGV0IG9sZElzUmVhZHk6IGJvb2xlYW4gPSB0aGlzLmlzUmVhZHlWYWx1ZTtcbiAgICB0aGlzLmlzUmVhZHlWYWx1ZSA9IHRydWU7XG4gICAgdGhpcy5vblJlYWR5Q2hhbmdlZCAmJlxuICAgICAgdGhpcy5vblJlYWR5Q2hhbmdlZC5maXJlKHRoaXMsIHtcbiAgICAgICAgcXVlc3Rpb246IHRoaXMsXG4gICAgICAgIGlzUmVhZHk6IHRydWUsXG4gICAgICAgIG9sc0lzUmVhZHk6IG9sZElzUmVhZHlcbiAgICAgIH0pO1xuICB9XG59XG4vKipcbiAqIEEgYmFzZSBjbGFzcyBmb3IgY2hlY2tib3ggYW5kIHJhZGlvZ3JvdXAgcXVlc3Rpb25zLiBJdCBpbnRyb2R1Y2VkIGEgY29sQ291bnQgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNoZWNrYm94QmFzZSBleHRlbmRzIFF1ZXN0aW9uU2VsZWN0QmFzZSB7XG4gIGNvbENvdW50Q2hhbmdlZENhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29sdW1ucyBmb3IgcmFkaW9ncm91cCBhbmQgY2hlY2tib3ggcXVlc3Rpb25zLiBJdGVtcyBhcmUgcmVuZHJlZCBpbiBvbmUgbGluZSBpZiB0aGUgdmFsdWUgaXMgMC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29sQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY29sQ291bnRcIiwgdGhpcy5pc0Zsb3dMYXlvdXQgPyAwIDogMSk7XG4gIH1cbiAgcHVibGljIHNldCBjb2xDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDUgfHwgdGhpcy5pc0Zsb3dMYXlvdXQpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjb2xDb3VudFwiLCB2YWx1ZSk7XG4gICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5jb2xDb3VudENoYW5nZWRDYWxsYmFjayk7XG4gIH1cbiAgcHJvdGVjdGVkIG9uUGFyZW50Q2hhbmdlZCgpIHtcbiAgICBzdXBlci5vblBhcmVudENoYW5nZWQoKTtcbiAgICBpZiAodGhpcy5pc0Zsb3dMYXlvdXQpIHtcbiAgICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNvbENvdW50XCIsIG51bGwpO1xuICAgIH1cbiAgfVxufVxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJzZWxlY3RiYXNlXCIsXG4gIFtcbiAgICB7IG5hbWU6IFwiaGFzQ29tbWVudDpib29sZWFuXCIsIGxheW91dDogXCJyb3dcIiB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiY29tbWVudFRleHRcIixcbiAgICAgIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NDb21tZW50VGV4dFwiLFxuICAgICAgbGF5b3V0OiBcInJvd1wiXG4gICAgfSxcbiAgICBcImhhc090aGVyOmJvb2xlYW5cIixcbiAgICB7IG5hbWU6IFwib3RoZXJQbGFjZUhvbGRlclwiLCBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jT3RoZXJQbGFjZUhvbGRlclwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJjaG9pY2VzOml0ZW12YWx1ZVtdXCIsXG4gICAgICBiYXNlVmFsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcImNob2ljZXNfSXRlbVwiKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiY2hvaWNlc09yZGVyXCIsXG4gICAgICBkZWZhdWx0OiBcIm5vbmVcIixcbiAgICAgIGNob2ljZXM6IFtcIm5vbmVcIiwgXCJhc2NcIiwgXCJkZXNjXCIsIFwicmFuZG9tXCJdXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImNob2ljZXNCeVVybDpyZXN0ZnVsbFwiLFxuICAgICAgY2xhc3NOYW1lOiBcIkNob2ljZXNSZXN0ZnVsbFwiLFxuICAgICAgb25HZXRWYWx1ZTogZnVuY3Rpb24ob2JqOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIG9iai5jaG9pY2VzQnlVcmwuZ2V0RGF0YSgpO1xuICAgICAgfSxcbiAgICAgIG9uU2V0VmFsdWU6IGZ1bmN0aW9uKG9iajogYW55LCB2YWx1ZTogYW55KSB7XG4gICAgICAgIG9iai5jaG9pY2VzQnlVcmwuc2V0RGF0YSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBcImhpZGVJZkNob2ljZXNFbXB0eTpib29sZWFuXCIsXG4gICAgXCJjaG9pY2VzVmlzaWJsZUlmOmNvbmRpdGlvblwiLFxuICAgIFwiY2hvaWNlc0VuYWJsZUlmOmNvbmRpdGlvblwiLFxuICAgIHsgbmFtZTogXCJvdGhlclRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY090aGVyVGV4dFwiIH0sXG4gICAgeyBuYW1lOiBcIm90aGVyRXJyb3JUZXh0XCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NPdGhlckVycm9yVGV4dFwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJzdG9yZU90aGVyc0FzQ29tbWVudFwiLFxuICAgICAgZGVmYXVsdDogXCJkZWZhdWx0XCIsXG4gICAgICBjaG9pY2VzOiBbXCJkZWZhdWx0XCIsIHRydWUsIGZhbHNlXSxcbiAgICAgIHZpc2libGU6IGZhbHNlXG4gICAgfVxuICBdLFxuICBudWxsLFxuICBcInF1ZXN0aW9uXCJcbik7XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwiY2hlY2tib3hiYXNlXCIsXG4gIFtcbiAgICB7XG4gICAgICBuYW1lOiBcImNvbENvdW50Om51bWJlclwiLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIGNob2ljZXM6IFswLCAxLCAyLCAzLCA0LCA1XSxcbiAgICAgIGxheW91dDogXCJyb3dcIlxuICAgIH1cbiAgXSxcbiAgbnVsbCxcbiAgXCJzZWxlY3RiYXNlXCJcbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVlc3Rpb25fYmFzZXNlbGVjdC50cyIsImltcG9ydCB7IEhlbHBlcnMgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5cbmV4cG9ydCBjbGFzcyBUZXh0UHJlUHJvY2Vzc29ySXRlbSB7XG4gIHB1YmxpYyBzdGFydDogbnVtYmVyO1xuICBwdWJsaWMgZW5kOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0UHJlUHJvY2Vzc29yVmFsdWUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nLCBwdWJsaWMgcmV0dXJuRGlzcGxheVZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc0V4aXN0cyA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUHJvY2VzcyA9IHRydWU7XG4gIH1cbiAgcHVibGljIHZhbHVlOiBhbnk7XG4gIHB1YmxpYyBpc0V4aXN0czogYm9vbGVhbjtcbiAgcHVibGljIGNhblByb2Nlc3M6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0UHJlUHJvY2Vzc29yIHtcbiAgcHJpdmF0ZSBoYXNBbGxWYWx1ZXNPbkxhc3RSdW5WYWx1ZTogYm9vbGVhbjtcbiAgcHVibGljIG9uUHJvY2VzczogKHRleHRWYWx1ZTogVGV4dFByZVByb2Nlc3NvclZhbHVlKSA9PiB2b2lkO1xuICBjb25zdHJ1Y3RvcigpIHt9XG4gIHB1YmxpYyBwcm9jZXNzKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICByZXR1cm5EaXNwbGF5VmFsdWU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBkb0VuY29kaW5nOiBib29sZWFuID0gZmFsc2VcbiAgKTogc3RyaW5nIHtcbiAgICB0aGlzLmhhc0FsbFZhbHVlc09uTGFzdFJ1blZhbHVlID0gdHJ1ZTtcbiAgICBpZiAoIXRleHQpIHJldHVybiB0ZXh0O1xuICAgIGlmICghdGhpcy5vblByb2Nlc3MpIHJldHVybiB0ZXh0O1xuICAgIHZhciBpdGVtcyA9IHRoaXMuZ2V0SXRlbXModGV4dCk7XG4gICAgZm9yICh2YXIgaSA9IGl0ZW1zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgdmFyIG5hbWUgPSB0aGlzLmdldE5hbWUodGV4dC5zdWJzdHJpbmcoaXRlbS5zdGFydCArIDEsIGl0ZW0uZW5kKSk7XG4gICAgICBpZiAoIW5hbWUpIGNvbnRpbnVlO1xuICAgICAgdmFyIHRleHRWYWx1ZSA9IG5ldyBUZXh0UHJlUHJvY2Vzc29yVmFsdWUobmFtZSwgcmV0dXJuRGlzcGxheVZhbHVlKTtcbiAgICAgIHRoaXMub25Qcm9jZXNzKHRleHRWYWx1ZSk7XG4gICAgICBpZiAoIXRleHRWYWx1ZS5pc0V4aXN0cykge1xuICAgICAgICBpZiAodGV4dFZhbHVlLmNhblByb2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLmhhc0FsbFZhbHVlc09uTGFzdFJ1blZhbHVlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoSGVscGVycy5pc1ZhbHVlRW1wdHkodGV4dFZhbHVlLnZhbHVlKSkge1xuICAgICAgICB0aGlzLmhhc0FsbFZhbHVlc09uTGFzdFJ1blZhbHVlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgcmVwbGFjZWRWYWx1ZSA9ICFIZWxwZXJzLmlzVmFsdWVFbXB0eSh0ZXh0VmFsdWUudmFsdWUpXG4gICAgICAgID8gdGV4dFZhbHVlLnZhbHVlXG4gICAgICAgIDogXCJcIjtcbiAgICAgIGlmIChkb0VuY29kaW5nKSB7XG4gICAgICAgIHJlcGxhY2VkVmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQocmVwbGFjZWRWYWx1ZSk7XG4gICAgICB9XG4gICAgICB0ZXh0ID1cbiAgICAgICAgdGV4dC5zdWJzdHIoMCwgaXRlbS5zdGFydCkgKyByZXBsYWNlZFZhbHVlICsgdGV4dC5zdWJzdHIoaXRlbS5lbmQgKyAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbiAgcHVibGljIGdldCBoYXNBbGxWYWx1ZXNPbkxhc3RSdW4oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5oYXNBbGxWYWx1ZXNPbkxhc3RSdW5WYWx1ZTtcbiAgfVxuICBwcml2YXRlIGdldEl0ZW1zKHRleHQ6IHN0cmluZyk6IEFycmF5PFRleHRQcmVQcm9jZXNzb3JJdGVtPiB7XG4gICAgdmFyIGl0ZW1zID0gW107XG4gICAgdmFyIGxlbmd0aCA9IHRleHQubGVuZ3RoO1xuICAgIHZhciBzdGFydCA9IC0xO1xuICAgIHZhciBjaCA9IFwiXCI7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgY2ggPSB0ZXh0W2ldO1xuICAgICAgaWYgKGNoID09IFwie1wiKSBzdGFydCA9IGk7XG4gICAgICBpZiAoY2ggPT0gXCJ9XCIpIHtcbiAgICAgICAgaWYgKHN0YXJ0ID4gLTEpIHtcbiAgICAgICAgICB2YXIgaXRlbSA9IG5ldyBUZXh0UHJlUHJvY2Vzc29ySXRlbSgpO1xuICAgICAgICAgIGl0ZW0uc3RhcnQgPSBzdGFydDtcbiAgICAgICAgICBpdGVtLmVuZCA9IGk7XG4gICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IC0xO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cbiAgcHJpdmF0ZSBnZXROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFuYW1lKSByZXR1cm47XG4gICAgcmV0dXJuIG5hbWUudHJpbSgpO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvdGV4dFByZVByb2Nlc3Nvci50cyIsImltcG9ydCB7IFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBIYXNoVGFibGUgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5pbXBvcnQge1xuICBCYXNlLFxuICBJU3VydmV5SW1wbCxcbiAgSVBhZ2UsXG4gIElQYW5lbCxcbiAgSUNvbmRpdGlvblJ1bm5lcixcbiAgSVN1cnZleSxcbiAgSVN1cnZleURhdGEsXG4gIElFbGVtZW50LFxuICBJU3VydmV5RWxlbWVudCxcbiAgSVF1ZXN0aW9uLFxuICBTdXJ2ZXlFbGVtZW50LFxuICBTdXJ2ZXlFcnJvcixcbiAgSVN1cnZleUVycm9yT3duZXJcbn0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgQ29uZGl0aW9uUnVubmVyIH0gZnJvbSBcIi4vY29uZGl0aW9uc1wiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBJTG9jYWxpemFibGVPd25lciwgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuaW1wb3J0IHsgc3VydmV5Q3NzIH0gZnJvbSBcIi4vZGVmYXVsdENzcy9jc3NzdGFuZGFyZFwiO1xuaW1wb3J0IHsgT25lQW5zd2VyUmVxdWlyZWRFcnJvciB9IGZyb20gXCIuL2Vycm9yXCI7XG5pbXBvcnQgeyBRdWVzdGlvblBhbmVsRHluYW1pYyB9IGZyb20gXCIuL2tub2Nrb3V0L2tvcXVlc3Rpb25fcGFuZWxkeW5hbWljXCI7XG5pbXBvcnQgeyBQYWdlTW9kZWwgfSBmcm9tIFwiLi9wYWdlXCI7XG5pbXBvcnQgeyBzZXR0aW5ncyB9IGZyb20gXCIuL3NldHRpbmdzXCI7XG5cbmV4cG9ydCBjbGFzcyBEcmFnRHJvcEluZm8ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc291cmNlOiBJRWxlbWVudCxcbiAgICBwdWJsaWMgdGFyZ2V0OiBJRWxlbWVudCxcbiAgICBwdWJsaWMgbmVzdGVkUGFuZWxEZXB0aDogbnVtYmVyID0gLTFcbiAgKSB7fVxuICBwdWJsaWMgZGVzdGluYXRpb246IElTdXJ2ZXlFbGVtZW50O1xuICBwdWJsaWMgaXNCb3R0b206IGJvb2xlYW47XG4gIHB1YmxpYyBpc0VkZ2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBRdWVzdGlvblJvd01vZGVsIGV4dGVuZHMgQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYW5lbDogUGFuZWxNb2RlbEJhc2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudmlzaWJsZSA9IHBhbmVsLmFyZUludmlzaWJsZUVsZW1lbnRzU2hvd2luZztcbiAgICB0aGlzLmNyZWF0ZU5ld0FycmF5KFwiZWxlbWVudHNcIik7XG4gIH1cbiAgcHVibGljIGdldCBlbGVtZW50cygpOiBBcnJheTxJRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJlbGVtZW50c1wiKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInZpc2libGVcIiwgdHJ1ZSk7XG4gIH1cbiAgcHVibGljIHNldCB2aXNpYmxlKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInZpc2libGVcIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZpc2libGVFbGVtZW50cygpOiBBcnJheTxJRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzLmZpbHRlcihlID0+IGUuaXNWaXNpYmxlKTtcbiAgfVxuICBwdWJsaWMgdXBkYXRlVmlzaWJsZSgpIHtcbiAgICB0aGlzLnZpc2libGUgPSB0aGlzLmNhbGNWaXNpYmxlKCk7XG4gICAgdGhpcy5zZXRXaWR0aCgpO1xuICB9XG4gIHB1YmxpYyBhZGRFbGVtZW50KHE6IElFbGVtZW50KSB7XG4gICAgdGhpcy5lbGVtZW50cy5wdXNoKHEpO1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgaW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYW5lbC5yb3dzLmluZGV4T2YodGhpcyk7XG4gIH1cbiAgcHJpdmF0ZSBzZXRXaWR0aCgpIHtcbiAgICB2YXIgdmlzQ291bnQgPSB0aGlzLnZpc2libGVFbGVtZW50cy5sZW5ndGg7XG4gICAgaWYgKHZpc0NvdW50ID09IDApIHJldHVybjtcbiAgICB2YXIgY291bnRlciA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5lbGVtZW50c1tpXS5pc1Zpc2libGUpIHtcbiAgICAgICAgdmFyIHEgPSB0aGlzLmVsZW1lbnRzW2ldO1xuICAgICAgICBxLnJlbmRlcldpZHRoID1cbiAgICAgICAgICAhIXEud2lkdGggJiYgdHlwZW9mIHEud2lkdGggPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gcS53aWR0aFxuICAgICAgICAgICAgOiAoMTAwIC8gdmlzQ291bnQpLnRvRml4ZWQoNikgKyBcIiVcIjtcbiAgICAgICAgcS5yaWdodEluZGVudCA9IGNvdW50ZXIgPCB2aXNDb3VudCAtIDEgPyAxIDogMDtcbiAgICAgICAgY291bnRlcisrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbGVtZW50c1tpXS5yZW5kZXJXaWR0aCA9IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByaXZhdGUgY2FsY1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUVsZW1lbnRzLmxlbmd0aCA+IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGEgUGFuZWwgYW5kIFBhZ2Ugb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhbmVsTW9kZWxCYXNlIGV4dGVuZHMgU3VydmV5RWxlbWVudFxuICBpbXBsZW1lbnRzIElQYW5lbCwgSUNvbmRpdGlvblJ1bm5lciwgSUxvY2FsaXphYmxlT3duZXIsIElTdXJ2ZXlFcnJvck93bmVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcGFuZWxDb3VudGVyID0gMTAwO1xuICBwcml2YXRlIHN0YXRpYyBnZXRQYW5lbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwic3BfXCIgKyBQYW5lbE1vZGVsQmFzZS5wYW5lbENvdW50ZXIrKztcbiAgfVxuXG4gIHByaXZhdGUgZWxlbWVudHNWYWx1ZTogQXJyYXk8SUVsZW1lbnQ+O1xuICBwcml2YXRlIGlzUXVlc3Rpb25zUmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBxdWVzdGlvbnNWYWx1ZTogQXJyYXk8UXVlc3Rpb24+ID0gbmV3IEFycmF5PFF1ZXN0aW9uPigpO1xuICBhZGRFbGVtZW50Q2FsbGJhY2s6IChlbGVtZW50OiBJRWxlbWVudCkgPT4gdm9pZDtcbiAgcmVtb3ZlRWxlbWVudENhbGxiYWNrOiAoZWxlbWVudDogSUVsZW1lbnQpID0+IHZvaWQ7XG4gIG9uR2V0UXVlc3Rpb25UaXRsZUxvY2F0aW9uOiAoKSA9PiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG5hbWU6IHN0cmluZyA9IFwiXCIpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB0aGlzLmNyZWF0ZU5ld0FycmF5KFwicm93c1wiKTtcbiAgICB0aGlzLmVsZW1lbnRzVmFsdWUgPSB0aGlzLmNyZWF0ZU5ld0FycmF5KFxuICAgICAgXCJlbGVtZW50c1wiLFxuICAgICAgdGhpcy5vbkFkZEVsZW1lbnQuYmluZCh0aGlzKSxcbiAgICAgIHRoaXMub25SZW1vdmVFbGVtZW50LmJpbmQodGhpcylcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgICBcInF1ZXN0aW9uVGl0bGVMb2NhdGlvblwiLFxuICAgICAgdGhpcy5vblZpc2libGVDaGFuZ2VkLmJpbmQodGhpcylcbiAgICApO1xuICAgIHRoaXMuaWQgPSBQYW5lbE1vZGVsQmFzZS5nZXRQYW5lbElkKCk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInRpdGxlXCIsIHRoaXMsIHRydWUpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJkZXNjcmlwdGlvblwiLCB0aGlzLCB0cnVlKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwicmVxdWlyZWRFcnJvclRleHRcIiwgdGhpcyk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJwYW5lbGJhc2VcIjtcbiAgfVxuICBwdWJsaWMgc2V0U3VydmV5SW1wbCh2YWx1ZTogSVN1cnZleUltcGwpIHtcbiAgICBzdXBlci5zZXRTdXJ2ZXlJbXBsKHZhbHVlKTtcbiAgICBpZiAodGhpcy5pc0Rlc2lnbk1vZGUpIHRoaXMub25WaXNpYmxlQ2hhbmdlZCgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5lbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5lbGVtZW50c1tpXS5zZXRTdXJ2ZXlJbXBsKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgZW5kTG9hZGluZ0Zyb21Kc29uKCkge1xuICAgIHN1cGVyLmVuZExvYWRpbmdGcm9tSnNvbigpO1xuICAgIHRoaXMubWFya1F1ZXN0aW9uTGlzdERpcnR5KCk7XG4gICAgdGhpcy5vblJvd3NDaGFuZ2VkKCk7XG4gIH1cbiAgLyoqXG4gICAqIFBhbmVsTW9kZWwgb3IgUGFnZU1vZGVsIHRpdGxlIHByb3BlcnR5LlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICovXG4gIHB1YmxpYyBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJ0aXRsZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRpdGxlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJ0aXRsZVwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NUaXRsZSgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJ0aXRsZVwiKTtcbiAgfVxuICAvKipcbiAgICogUGFuZWxNb2RlbCBvciBQYWdlTW9kZWwgZGVzY3JpcHRpb24gcHJvcGVydHkuIEl0IHJlbmRlcnMgdW5kZXIgdGl0bGUgYnkgdXNpbmcgc21hbGxlciBmb250LiBVbmxpa2UgdGhlIHRpdGxlLCBkZXNjcmlwdGlvbiBjYW4gYmUgZW1wdHkuXG4gICAqIEBzZWUgdGl0bGVcbiAgICovXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJkZXNjcmlwdGlvblwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGRlc2NyaXB0aW9uKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJkZXNjcmlwdGlvblwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NEZXNjcmlwdGlvbigpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJkZXNjcmlwdGlvblwiKTtcbiAgfVxuICBwdWJsaWMgbG9jU3Ryc0NoYW5nZWQoKSB7XG4gICAgc3VwZXIubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuZWxlbWVudHNbaV0ubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdGV4dCB0aGF0IHdpbGwgYmUgc2hvd24gb24gcmVxdWlyZWQgZXJyb3IuIFVzZSB0aGlzIHByb3BlcnR5LCBpZiB5b3UgZG8gbm90IHdhbnQgdG8gc2hvdyB0aGUgZGVmYXVsdCB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCByZXF1aXJlZEVycm9yVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInJlcXVpcmVkRXJyb3JUZXh0XCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRFcnJvclRleHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInJlcXVpcmVkRXJyb3JUZXh0XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY1JlcXVpcmVkRXJyb3JUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcInJlcXVpcmVkRXJyb3JUZXh0XCIpO1xuICB9XG4gIGdldExvY2FsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN1cnZleVxuICAgICAgPyAoPElMb2NhbGl6YWJsZU93bmVyPig8YW55PnRoaXMuc3VydmV5KSkuZ2V0TG9jYWxlKClcbiAgICAgIDogXCJcIjtcbiAgfVxuICBnZXRNYXJrZG93bkh0bWwodGV4dDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5ID8gdGhpcy5zdXJ2ZXkuZ2V0U3VydmV5TWFya2Rvd25IdG1sKHRoaXMsIHRleHQpIDogbnVsbDtcbiAgfVxuICBnZXRQcm9jZXNzZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGV4dFByb2Nlc3NvclxuICAgICAgPyB0aGlzLnRleHRQcm9jZXNzb3IucHJvY2Vzc1RleHQodGV4dCwgdHJ1ZSlcbiAgICAgIDogdGV4dDtcbiAgfVxuICAvKipcbiAgICogQSBwYXJlbnQgZWxlbWVudC4gSXQgaXMgYWx3YXlzIG51bGwgZm9yIHRoZSBQYWdlIG9iamVjdCBhbmQgYWx3YXlzIG5vdCBudWxsIGZvciB0aGUgUGFuZWwgb2JqZWN0LiBQYW5lbCBvYmplY3QgbWF5IGNvbnRhaW4gUXVlc3Rpb25zIGFuZCBvdGhlciBQYW5lbHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhcmVudCgpOiBQYW5lbE1vZGVsQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhcmVudFwiLCBudWxsKTtcbiAgfVxuICBwdWJsaWMgc2V0IHBhcmVudCh2YWw6IFBhbmVsTW9kZWxCYXNlKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicGFyZW50XCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBkZXB0aCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnBhcmVudCA9PSBudWxsKSByZXR1cm4gMDtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZGVwdGggKyAxO1xuICB9XG4gIC8qKlxuICAgKiBBbiBleHByZXNzaW9uIHRoYXQgcmV0dXJucyB0cnVlIG9yIGZhbHNlLiBJZiBpdCByZXR1cm5zIHRydWUgdGhlIFBhbmVsIGJlY29tZXMgdmlzaWJsZSBhbmQgaWYgaXQgcmV0dXJucyBmYWxzZSB0aGUgUGFuZWwgYmVjb21lcyBpbnZpc2libGUuIFRoZSBsaWJyYXJ5IHJ1bnMgdGhlIGV4cHJlc3Npb24gb24gc3VydmV5IHN0YXJ0IGFuZCBvbiBjaGFuZ2luZyBhIHF1ZXN0aW9uIHZhbHVlLiBJZiB0aGUgcHJvcGVydHkgaXMgZW1wdHkgdGhlbiB2aXNpYmxlIHByb3BlcnR5IGlzIHVzZWQuXG4gICAqIEBzZWUgdmlzaWJsZVxuICAgKi9cbiAgcHVibGljIGdldCB2aXNpYmxlSWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJsZUlmXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgdmlzaWJsZUlmKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJsZUlmXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IGFueSB7XG4gICAgdmFyIGNsYXNzZXMgPSB7IGVycm9yOiB7fSB9O1xuICAgIHRoaXMuY29weUNzc0NsYXNzZXMoY2xhc3NlcywgdGhpcy5jc3MpO1xuICAgIHRoaXMuY29weUNzc0NsYXNzZXMoY2xhc3Nlcy5lcnJvciwgdGhpcy5jc3MuZXJyb3IpO1xuICAgIGlmICh0aGlzLnN1cnZleSkge1xuICAgICAgdGhpcy5zdXJ2ZXkudXBkYXRlUGFuZWxDc3NDbGFzc2VzKHRoaXMsIGNsYXNzZXMpO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuICBwcml2YXRlIGdldCBjc3MoKTogYW55IHtcbiAgICByZXR1cm4gc3VydmV5Q3NzLmdldENzcygpO1xuICB9XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBlbGVtZW50IGlkZW50aWZpY2F0b3IuIEl0IGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJpZFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlkKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaWRcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBQYW5lbC4gUmV0dXJucyBmYWxzZSBpZiB0aGUgY3VycmVudCBvYmplY3QgaXMgUGFnZSAoYSByb290IFBhbmVsKS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNQYW5lbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldFBhbmVsKCk6IElQYW5lbCB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZ2V0TGF5b3V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInJvd1wiO1xuICB9XG4gIGlzTGF5b3V0VHlwZVN1cHBvcnRlZChsYXlvdXRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbGF5b3V0VHlwZSAhPT0gXCJmbG93XCI7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYWxsIHF1ZXN0aW9ucyBsb2NhdGVkIGluIHRoZSBQYW5lbC9QYWdlLCBpbmNsdWRpbmcgaW4gdGhlIG5lc3RlZCBQYW5lbHMuXG4gICAqIEBzZWUgUXVlc3Rpb25cbiAgICogQHNlZSBlbGVtZW50c1xuICAgKi9cbiAgcHVibGljIGdldCBxdWVzdGlvbnMoKTogQXJyYXk8UXVlc3Rpb24+IHtcbiAgICBpZiAoIXRoaXMuaXNRdWVzdGlvbnNSZWFkeSkge1xuICAgICAgdGhpcy5xdWVzdGlvbnNWYWx1ZSA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlbCA9IHRoaXMuZWxlbWVudHNbaV07XG4gICAgICAgIGlmIChlbC5pc1BhbmVsKSB7XG4gICAgICAgICAgdmFyIHFzID0gKDxQYW5lbE1vZGVsPmVsKS5xdWVzdGlvbnM7XG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBxcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgdGhpcy5xdWVzdGlvbnNWYWx1ZS5wdXNoKHFzW2pdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5xdWVzdGlvbnNWYWx1ZS5wdXNoKDxRdWVzdGlvbj5lbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuaXNRdWVzdGlvbnNSZWFkeSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb25zVmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHF1ZXN0aW9uIGJ5IGl0cyBuYW1lXG4gICAqIEBwYXJhbSBuYW1lIHRoZSBxdWVzdGlvbiBuYW1lXG4gICAqL1xuICBwdWJsaWMgZ2V0UXVlc3Rpb25CeU5hbWUobmFtZTogc3RyaW5nKTogUXVlc3Rpb24ge1xuICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLnF1ZXN0aW9ucztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHF1ZXN0aW9uc1tpXS5uYW1lID09IG5hbWUpIHJldHVybiBxdWVzdGlvbnNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1bnMgdGhlIGVsZW1lbnQgYnkgaXRzIG5hbWUuIEl0IHdvcmtzIHJlY3Vyc2l2ZWx5LlxuICAgKiBAcGFyYW0gbmFtZSB0aGUgZWxlbWVudCBuYW1lXG4gICAqL1xuICBwdWJsaWMgZ2V0RWxlbWVudEJ5TmFtZShuYW1lOiBzdHJpbmcpOiBJRWxlbWVudCB7XG4gICAgdmFyIGVsZW1lbnRzID0gdGhpcy5lbGVtZW50cztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWwgPSBlbGVtZW50c1tpXTtcbiAgICAgIGlmIChlbC5uYW1lID09IG5hbWUpIHJldHVybiBlbDtcbiAgICAgIHZhciBwbmwgPSBlbC5nZXRQYW5lbCgpO1xuICAgICAgaWYgKCEhcG5sKSB7XG4gICAgICAgIHZhciByZXMgPSAoPFBhbmVsTW9kZWxCYXNlPnBubCkuZ2V0RWxlbWVudEJ5TmFtZShuYW1lKTtcbiAgICAgICAgaWYgKCEhcmVzKSByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0UXVlc3Rpb25CeVZhbHVlTmFtZSh2YWx1ZU5hbWU6IHN0cmluZyk6IFF1ZXN0aW9uIHtcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5xdWVzdGlvbnM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChxdWVzdGlvbnNbaV0uZ2V0VmFsdWVOYW1lKCkgPT0gdmFsdWVOYW1lKSByZXR1cm4gcXVlc3Rpb25zW2ldO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyBxdWVzdGlvbiB2YWx1ZXMgb24gdGhlIGN1cnJlbnQgcGFnZVxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IGFueSB7XG4gICAgdmFyIGRhdGEgPSB7fTtcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5xdWVzdGlvbnM7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHEgPSBxdWVzdGlvbnNbaV07XG4gICAgICBpZiAocS5pc0VtcHR5KCkpIGNvbnRpbnVlO1xuICAgICAgdmFyIHZhbHVlTmFtZSA9IHEuZ2V0VmFsdWVOYW1lKCk7XG4gICAgICAoPGFueT5kYXRhKVt2YWx1ZU5hbWVdID0gcS52YWx1ZTtcbiAgICAgIGlmICghIXRoaXMuZGF0YSkge1xuICAgICAgICB2YXIgY29tbWVudCA9IHRoaXMuZGF0YS5nZXRDb21tZW50KHZhbHVlTmFtZSk7XG4gICAgICAgIGlmICghIWNvbW1lbnQpIHtcbiAgICAgICAgICAoPGFueT5kYXRhKVt2YWx1ZU5hbWUgKyBzZXR0aW5ncy5jb21tZW50UHJlZml4XSA9IGNvbW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgcXVlc3Rpb24gY29tbWVudHMgb24gdGhlIGN1cnJlbnQgcGFnZVxuICAgKi9cbiAgcHVibGljIGdldENvbW1lbnRzKCk6IGFueSB7XG4gICAgdmFyIGNvbW1lbnRzID0ge307XG4gICAgaWYgKCF0aGlzLmRhdGEpIHJldHVybiBjb21tZW50cztcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5xdWVzdGlvbnM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxID0gcXVlc3Rpb25zW2ldO1xuICAgICAgdmFyIGNvbW1lbnQgPSB0aGlzLmRhdGEuZ2V0Q29tbWVudChxLmdldFZhbHVlTmFtZSgpKTtcbiAgICAgIGlmICghIWNvbW1lbnQpIHtcbiAgICAgICAgKDxhbnk+Y29tbWVudHMpW3EuZ2V0VmFsdWVOYW1lKCldID0gY29tbWVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbW1lbnRzO1xuICB9XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gcmVtb3ZlIGFsbCBxdWVzdGlvbiB2YWx1ZXMgZnJvbSB0aGUgY3VycmVudCBwYWdlL3BhbmVsLCB0aGF0IGVuZC11c2VyIHdpbGwgbm90IGJlIGFibGUgdG8gZW50ZXIuXG4gICAqIEZvciBleGFtcGxlIHRoZSB2YWx1ZSB0aGF0IGRvZXNuJ3QgZXhpc3RzIGluIGEgcmFkaWdyb3VwL2Ryb3Bkb3duL2NoZWNrYm94IGNob2ljZXMgb3IgbWF0cml4IHJvd3MvY29sdW1ucy5cbiAgICogUGxlYXNlIG5vdGUsIHRoaXMgZnVuY3Rpb24gZG9lc24ndCBjbGVhciB2YWx1ZXMgZm9yIGludmlzaWJsZSBxdWVzdGlvbnMgb3IgdmFsdWVzIHRoYXQgZG9lc24ndCBhc3NvY2lhdGVkIHdpdGggcXVlc3Rpb25zLlxuICAgKiBAc2VlIFF1ZXN0aW9uLmNsZWFySW5jb3JyZWN0VmFsdWVzXG4gICAqL1xuICBwdWJsaWMgY2xlYXJJbmNvcnJlY3RWYWx1ZXMoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmVsZW1lbnRzW2ldLmNsZWFySW5jb3JyZWN0VmFsdWVzKCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gY2xlYXIgYWxsIGVycm9ycyBpbiB0aGUgcGFuZWwgLyBwYWdlIGFuZCBhbGwgaXRzIGNoaWxkIGVsZW1lbnRzIChwYW5lbHMgYW5kIHF1ZXN0aW9ucylcbiAgICovXG4gIHB1YmxpYyBjbGVhckVycm9ycygpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuZWxlbWVudHNbaV0uY2xlYXJFcnJvcnMoKTtcbiAgICB9XG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgfVxuICBwcml2YXRlIG1hcmtRdWVzdGlvbkxpc3REaXJ0eSgpIHtcbiAgICB0aGlzLmlzUXVlc3Rpb25zUmVhZHkgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5wYXJlbnQpIHRoaXMucGFyZW50Lm1hcmtRdWVzdGlvbkxpc3REaXJ0eSgpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgb2JqZWN0LCBQYW5lbC9QYWdlLiBFbGVtZW50cyBjYW4gYmUgcXVlc3Rpb25zIG9yIHBhbmVscy4gVGhlIGZ1bmN0aW9uIGRvZXNuJ3QgcmV0dXJuIGVsZW1lbnRzIGluIHRoZSBuZXN0ZWQgUGFuZWxzLlxuICAgKi9cbiAgcHVibGljIGdldCBlbGVtZW50cygpOiBBcnJheTxJRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldEVsZW1lbnRzSW5EZXNpZ24oaW5jbHVkZUhpZGRlbjogYm9vbGVhbiA9IGZhbHNlKTogQXJyYXk8SUVsZW1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50cztcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgYmVsb25ncyB0byB0aGUgUGFuZWwvUGFnZS4gSXQgbG9va3MgaW4gbmVzdGVkIFBhbmVscyBhcyB3ZWxsLlxuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKiBAc2VlIFBhbmVsTW9kZWxcbiAgICovXG4gIHB1YmxpYyBjb250YWluc0VsZW1lbnQoZWxlbWVudDogSUVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbDogYW55ID0gdGhpcy5lbGVtZW50c1tpXTtcbiAgICAgIGlmIChlbCA9PSBlbGVtZW50KSByZXR1cm4gdHJ1ZTtcbiAgICAgIHZhciBwbmwgPSBlbC5nZXRQYW5lbCgpO1xuICAgICAgaWYgKCEhcG5sKSB7XG4gICAgICAgIGlmICgoPFBhbmVsTW9kZWxCYXNlPnBubCkuY29udGFpbnNFbGVtZW50KGVsZW1lbnQpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlLCB0byByZXF1aXJlIHRoZSBhbnN3ZXIgYXQgbGVhc3QgaW4gb25lIHF1ZXN0aW9uIGluIHRoZSBwYW5lbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaXNSZXF1aXJlZFwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBpc1JlcXVpcmVkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlzUmVxdWlyZWRcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlLCBpZiB0aGVyZSBpcyBhbiBlcnJvciBvbiB0aGlzIFBhZ2Ugb3IgaW5zaWRlIHRoZSBjdXJyZW50IFBhbmVsXG4gICAqIEBwYXJhbSBmaXJlQ2FsbGJhY2sgc2V0IGl0IHRvIHRydWUsIHRvIHNob3cgZXJyb3JzIGluIFVJXG4gICAqIEBwYXJhbSBmb2N1c09uRmlyc3RFcnJvciBzZXQgaXQgdG8gdHJ1ZSB0byBmb2N1cyBvbiB0aGUgZmlyc3QgcXVlc3Rpb24gdGhhdCBkb2Vzbid0IHBhc3MgdGhlIHZhbGlkYXRpb25cbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgZmlyZUNhbGxiYWNrOiBib29sZWFuID0gdHJ1ZSxcbiAgICBmb2N1c09uRmlyc3RFcnJvcjogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHJlYzogYW55ID0gbnVsbFxuICApOiBib29sZWFuIHtcbiAgICByZWMgPSAhIXJlY1xuICAgICAgPyByZWNcbiAgICAgIDoge1xuICAgICAgICAgIGZpcmVDYWxsYmFjazogZmlyZUNhbGxiYWNrLFxuICAgICAgICAgIGZvY3VzZU9uRmlyc3RFcnJvcjogZm9jdXNPbkZpcnN0RXJyb3IsXG4gICAgICAgICAgZmlyc3RFcnJvclF1ZXN0aW9uOiA8YW55Pm51bGwsXG4gICAgICAgICAgcmVzdWx0OiBmYWxzZVxuICAgICAgICB9O1xuICAgIHRoaXMuaGFzRXJyb3JzQ29yZShyZWMpO1xuICAgIGlmIChyZWMuZmlyc3RFcnJvclF1ZXN0aW9uKSB7XG4gICAgICByZWMuZmlyc3RFcnJvclF1ZXN0aW9uLmZvY3VzKHRydWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVjLnJlc3VsdDtcbiAgfVxuICBwcml2YXRlIGhhc0Vycm9yc0luUGFuZWxzKHJlYzogYW55KSB7XG4gICAgdmFyIGVycm9ycyA9IDxBcnJheTxhbnk+PltdO1xuICAgIHRoaXMuaGFzUmVxdWlyZWRFcnJvcihyZWMsIGVycm9ycyk7XG4gICAgaWYgKHRoaXMuc3VydmV5KSB7XG4gICAgICB2YXIgY3VzdG9tRXJyb3IgPSB0aGlzLnN1cnZleS52YWxpZGF0ZVBhbmVsKHRoaXMpO1xuICAgICAgaWYgKGN1c3RvbUVycm9yKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKGN1c3RvbUVycm9yKTtcbiAgICAgICAgcmVjLnJlc3VsdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghIXJlYy5maXJlQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzO1xuICAgIH1cbiAgfVxuICAvL0lTdXJ2ZXlFcnJvck93bmVyXG4gIGdldEVycm9yQ3VzdG9tVGV4dCh0ZXh0OiBzdHJpbmcsIGVycm9yOiBTdXJ2ZXlFcnJvcik6IHN0cmluZyB7XG4gICAgaWYgKCEhdGhpcy5zdXJ2ZXkpIHJldHVybiB0aGlzLnN1cnZleS5nZXRFcnJvckN1c3RvbVRleHQodGV4dCwgZXJyb3IpO1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNSZXF1aXJlZEVycm9yKHJlYzogYW55LCBlcnJvcnM6IEFycmF5PFN1cnZleUVycm9yPikge1xuICAgIGlmICghdGhpcy5pc1JlcXVpcmVkKSByZXR1cm47XG4gICAgdmFyIHZpc1F1ZXN0aW9ucyA9IDxBcnJheTxhbnk+PltdO1xuICAgIHRoaXMuYWRkUXVlc3Rpb25zVG9MaXN0KHZpc1F1ZXN0aW9ucywgdHJ1ZSk7XG4gICAgaWYgKHZpc1F1ZXN0aW9ucy5sZW5ndGggPT0gMCkgcmV0dXJuO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmlzUXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIXZpc1F1ZXN0aW9uc1tpXS5pc0VtcHR5KCkpIHJldHVybjtcbiAgICB9XG4gICAgcmVjLnJlc3VsdCA9IHRydWU7XG4gICAgZXJyb3JzLnB1c2gobmV3IE9uZUFuc3dlclJlcXVpcmVkRXJyb3IodGhpcy5yZXF1aXJlZEVycm9yVGV4dCwgdGhpcykpO1xuICAgIGlmIChyZWMuZm9jdXNlT25GaXJzdEVycm9yICYmICFyZWMuZmlyc3RFcnJvclF1ZXN0aW9uKSB7XG4gICAgICByZWMuZmlyc3RFcnJvclF1ZXN0aW9uID0gdmlzUXVlc3Rpb25zWzBdO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgaGFzRXJyb3JzQ29yZShyZWM6IGFueSkge1xuICAgIHZhciBlbGVtZW50cyA9IHRoaXMuZWxlbWVudHM7XG4gICAgdmFyIGVsZW1lbnQgPSBudWxsO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgZWxlbWVudCA9IGVsZW1lbnRzW2ldO1xuXG4gICAgICBpZiAoIWVsZW1lbnQuaXNWaXNpYmxlKSBjb250aW51ZTtcblxuICAgICAgaWYgKGVsZW1lbnQuaXNQYW5lbCkge1xuICAgICAgICAoPFBhbmVsTW9kZWxCYXNlPig8YW55PmVsZW1lbnQpKS5oYXNFcnJvcnNDb3JlKHJlYyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcXVlc3Rpb24gPSA8UXVlc3Rpb24+ZWxlbWVudDtcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmlzUmVhZE9ubHkpIGNvbnRpbnVlO1xuICAgICAgICBpZiAocXVlc3Rpb24uaGFzRXJyb3JzKHJlYy5maXJlQ2FsbGJhY2ssIHJlYykpIHtcbiAgICAgICAgICBpZiAocmVjLmZvY3VzZU9uRmlyc3RFcnJvciAmJiByZWMuZmlyc3RFcnJvclF1ZXN0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHJlYy5maXJzdEVycm9yUXVlc3Rpb24gPSBxdWVzdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVjLnJlc3VsdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5oYXNFcnJvcnNJblBhbmVscyhyZWMpO1xuICAgIHRoaXMudXBkYXRlQ29udGFpbnNFcnJvcnMoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29udGFpbnNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgdmFyIHJlcyA9IHN1cGVyLmdldENvbnRhaW5zRXJyb3JzKCk7XG4gICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChlbGVtZW50c1tpXS5jb250YWluc0Vycm9ycykgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB1cGRhdGVFbGVtZW50VmlzaWJpbGl0eSgpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbCA9IHRoaXMuZWxlbWVudHNbaV07XG4gICAgICAoPEJhc2U+KDxhbnk+ZWwpKS5zZXRQcm9wZXJ0eVZhbHVlKFwiaXNWaXNpYmxlXCIsIGVsLmlzVmlzaWJsZSk7XG4gICAgICBpZiAoZWwuaXNQYW5lbCkge1xuICAgICAgICAoPFBhbmVsTW9kZWxCYXNlPig8YW55PmVsKSkudXBkYXRlRWxlbWVudFZpc2liaWxpdHkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZ2V0Rmlyc3RRdWVzdGlvblRvRm9jdXMod2l0aEVycm9yOiBib29sZWFuID0gZmFsc2UpOiBRdWVzdGlvbiB7XG4gICAgdmFyIGVsZW1lbnRzID0gdGhpcy5lbGVtZW50cztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWwgPSBlbGVtZW50c1tpXTtcbiAgICAgIGlmICghZWwuaXNWaXNpYmxlKSBjb250aW51ZTtcbiAgICAgIGlmIChlbC5pc1BhbmVsKSB7XG4gICAgICAgIHZhciByZXMgPSAoPFBhbmVsTW9kZWxCYXNlPig8YW55PmVsKSkuZ2V0Rmlyc3RRdWVzdGlvblRvRm9jdXMoXG4gICAgICAgICAgd2l0aEVycm9yXG4gICAgICAgICk7XG4gICAgICAgIGlmICghIXJlcykgcmV0dXJuIHJlcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBxID0gPFF1ZXN0aW9uPmVsO1xuICAgICAgICBpZiAocS5oYXNJbnB1dCAmJiAoIXdpdGhFcnJvciB8fCBxLmN1cnJlbnRFcnJvckNvdW50ID4gMCkpIHJldHVybiBxO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvKipcbiAgICogQ2FsbCBpdCB0byBmb2N1cyB0aGUgaW5wdXQgb24gdGhlIGZpcnN0IHF1ZXN0aW9uXG4gICAqL1xuICBwdWJsaWMgZm9jdXNGaXJzdFF1ZXN0aW9uKCkge1xuICAgIHZhciBxID0gdGhpcy5nZXRGaXJzdFF1ZXN0aW9uVG9Gb2N1cygpO1xuICAgIGlmICghIXEpIHtcbiAgICAgIHEuZm9jdXMoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIENhbGwgaXQgdG8gZm9jdXMgdGhlIGlucHV0IG9mIHRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IGhhcyBhbiBlcnJvci5cbiAgICovXG4gIHB1YmxpYyBmb2N1c0ZpcnN0RXJyb3JRdWVzdGlvbigpIHtcbiAgICB2YXIgcSA9IHRoaXMuZ2V0Rmlyc3RRdWVzdGlvblRvRm9jdXModHJ1ZSk7XG4gICAgaWYgKCEhcSkge1xuICAgICAgcS5mb2N1cygpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogRmlsbCBsaXN0IGFycmF5IHdpdGggdGhlIHF1ZXN0aW9ucy5cbiAgICogQHBhcmFtIGxpc3RcbiAgICogQHBhcmFtIHZpc2libGVPbmx5IHNldCBpdCB0byB0cnVlIHRvIGdldCB2aXNpYmxlIHF1ZXN0aW9ucyBvbmx5XG4gICAqL1xuICBwdWJsaWMgYWRkUXVlc3Rpb25zVG9MaXN0KFxuICAgIGxpc3Q6IEFycmF5PElRdWVzdGlvbj4sXG4gICAgdmlzaWJsZU9ubHk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpbmNsdWRpbmdEZXNpZ25UaW1lOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgdGhpcy5hZGRFbGVtZW50c1RvTGlzdChsaXN0LCB2aXNpYmxlT25seSwgaW5jbHVkaW5nRGVzaWduVGltZSwgZmFsc2UpO1xuICB9XG4gIC8qKlxuICAgKiBGaWxsIGxpc3QgYXJyYXkgd2l0aCB0aGUgcGFuZWxzLlxuICAgKiBAcGFyYW0gbGlzdFxuICAgKi9cbiAgcHVibGljIGFkZFBhbmVsc0ludG9MaXN0KFxuICAgIGxpc3Q6IEFycmF5PElQYW5lbD4sXG4gICAgdmlzaWJsZU9ubHk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpbmNsdWRpbmdEZXNpZ25UaW1lOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgdGhpcy5hZGRFbGVtZW50c1RvTGlzdChcbiAgICAgIDxBcnJheTxJRWxlbWVudD4+KDxBcnJheTxhbnk+Pmxpc3QpLFxuICAgICAgdmlzaWJsZU9ubHksXG4gICAgICBpbmNsdWRpbmdEZXNpZ25UaW1lLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBhZGRFbGVtZW50c1RvTGlzdChcbiAgICBsaXN0OiBBcnJheTxJRWxlbWVudD4sXG4gICAgdmlzaWJsZU9ubHk6IGJvb2xlYW4sXG4gICAgaW5jbHVkaW5nRGVzaWduVGltZTogYm9vbGVhbixcbiAgICBpc1BhbmVsOiBib29sZWFuXG4gICkge1xuICAgIGlmICh2aXNpYmxlT25seSAmJiAhdGhpcy52aXNpYmxlKSByZXR1cm47XG4gICAgdGhpcy5hZGRFbGVtZW50c1RvTGlzdENvcmUoXG4gICAgICBsaXN0LFxuICAgICAgdGhpcy5lbGVtZW50cyxcbiAgICAgIHZpc2libGVPbmx5LFxuICAgICAgaW5jbHVkaW5nRGVzaWduVGltZSxcbiAgICAgIGlzUGFuZWxcbiAgICApO1xuICB9XG4gIHByaXZhdGUgYWRkRWxlbWVudHNUb0xpc3RDb3JlKFxuICAgIGxpc3Q6IEFycmF5PElFbGVtZW50PixcbiAgICBlbGVtZW50czogQXJyYXk8SUVsZW1lbnQ+LFxuICAgIHZpc2libGVPbmx5OiBib29sZWFuLFxuICAgIGluY2x1ZGluZ0Rlc2lnblRpbWU6IGJvb2xlYW4sXG4gICAgaXNQYW5lbDogYm9vbGVhblxuICApIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWwgPSBlbGVtZW50c1tpXTtcbiAgICAgIGlmICh2aXNpYmxlT25seSAmJiAhZWwudmlzaWJsZSkgY29udGludWU7XG4gICAgICBpZiAoKGlzUGFuZWwgJiYgZWwuaXNQYW5lbCkgfHwgKCFpc1BhbmVsICYmICFlbC5pc1BhbmVsKSkge1xuICAgICAgICBsaXN0LnB1c2goZWwpO1xuICAgICAgfVxuICAgICAgaWYgKGVsLmlzUGFuZWwpIHtcbiAgICAgICAgKDxQYW5lbE1vZGVsPmVsKS5hZGRFbGVtZW50c1RvTGlzdENvcmUoXG4gICAgICAgICAgbGlzdCxcbiAgICAgICAgICAoPFBhbmVsTW9kZWw+ZWwpLmVsZW1lbnRzLFxuICAgICAgICAgIHZpc2libGVPbmx5LFxuICAgICAgICAgIGluY2x1ZGluZ0Rlc2lnblRpbWUsXG4gICAgICAgICAgaXNQYW5lbFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGluY2x1ZGluZ0Rlc2lnblRpbWUpIHtcbiAgICAgICAgICB0aGlzLmFkZEVsZW1lbnRzVG9MaXN0Q29yZShcbiAgICAgICAgICAgIGxpc3QsXG4gICAgICAgICAgICAoPFN1cnZleUVsZW1lbnQ+KDxhbnk+ZWwpKS5nZXRFbGVtZW50c0luRGVzaWduKGZhbHNlKSxcbiAgICAgICAgICAgIHZpc2libGVPbmx5LFxuICAgICAgICAgICAgaW5jbHVkaW5nRGVzaWduVGltZSxcbiAgICAgICAgICAgIGlzUGFuZWxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgb2JqZWN0IGlzIFBhZ2UgYW5kIGl0IGlzIHRoZSBjdXJyZW50IHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zdXJ2ZXkgfHwgPFBhZ2VNb2RlbD50aGlzLnN1cnZleS5jdXJyZW50UGFnZSA9PSB0aGlzLnJvb3Q7XG4gIH1cbiAgcHVibGljIHVwZGF0ZUN1c3RvbVdpZGdldHMoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmVsZW1lbnRzW2ldLnVwZGF0ZUN1c3RvbVdpZGdldHMoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IGRpZmZlcmVudCBmcm9tIFwiZGVmYXVsdFwiIHRvIHNldCB0aGUgc3BlY2lmaWMgcXVlc3Rpb24gdGl0bGUgbG9jYXRpb24gZm9yIHRoaXMgcGFuZWwvcGFnZS5cbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC5xdWVzdGlvblRpdGxlTG9jYXRpb25cbiAgICovXG4gIHB1YmxpYyBnZXQgcXVlc3Rpb25UaXRsZUxvY2F0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInF1ZXN0aW9uVGl0bGVMb2NhdGlvblwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHF1ZXN0aW9uVGl0bGVMb2NhdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicXVlc3Rpb25UaXRsZUxvY2F0aW9uXCIsIHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xuICB9XG4gIGdldFF1ZXN0aW9uVGl0bGVMb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm9uR2V0UXVlc3Rpb25UaXRsZUxvY2F0aW9uKVxuICAgICAgcmV0dXJuIHRoaXMub25HZXRRdWVzdGlvblRpdGxlTG9jYXRpb24oKTtcbiAgICBpZiAodGhpcy5xdWVzdGlvblRpdGxlTG9jYXRpb24gIT0gXCJkZWZhdWx0XCIpXG4gICAgICByZXR1cm4gdGhpcy5xdWVzdGlvblRpdGxlTG9jYXRpb247XG4gICAgaWYgKHRoaXMucGFyZW50KSByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0UXVlc3Rpb25UaXRsZUxvY2F0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5ID8gdGhpcy5zdXJ2ZXkucXVlc3Rpb25UaXRsZUxvY2F0aW9uIDogXCJ0b3BcIjtcbiAgfVxuICBnZXRDaGlsZHJlbkxheW91dFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJyb3dcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHJvb3QoKTogUGFuZWxNb2RlbEJhc2Uge1xuICAgIHZhciByZXMgPSA8UGFuZWxNb2RlbEJhc2U+dGhpcztcbiAgICB3aGlsZSAocmVzLnBhcmVudCkgcmVzID0gcmVzLnBhcmVudDtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBjaGlsZFZpc2liaWxpdHlDaGFuZ2VkKCkge1xuICAgIHZhciBuZXdJc1Zpc2libGVWYWx1ZSA9IHRoaXMuZ2V0SXNQYWdlVmlzaWJsZShudWxsKTtcbiAgICB2YXIgb2xkSXNWaXNpYmxlVmFsdWUgPSB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJpc1Zpc2libGVcIiwgdHJ1ZSk7XG4gICAgaWYgKG5ld0lzVmlzaWJsZVZhbHVlICE9PSBvbGRJc1Zpc2libGVWYWx1ZSkge1xuICAgICAgdGhpcy5vblZpc2libGVDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVSb3coKTogUXVlc3Rpb25Sb3dNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBRdWVzdGlvblJvd01vZGVsKHRoaXMpO1xuICB9XG4gIHB1YmxpYyBvblN1cnZleUxvYWQoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmVsZW1lbnRzW2ldLm9uU3VydmV5TG9hZCgpO1xuICAgIH1cbiAgICB0aGlzLm9uRWxlbWVudFZpc2liaWxpdHlDaGFuZ2VkKHRoaXMpO1xuICB9XG4gIHB1YmxpYyBvbkZpcnN0UmVuZGVyaW5nKCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5lbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5lbGVtZW50c1tpXS5vbkZpcnN0UmVuZGVyaW5nKCk7XG4gICAgfVxuICAgIHRoaXMub25Sb3dzQ2hhbmdlZCgpO1xuICB9XG4gIGdldCByb3dzKCk6IEFycmF5PFF1ZXN0aW9uUm93TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicm93c1wiKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJvd3NDaGFuZ2VkKCkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZ0Zyb21Kc29uKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicm93c1wiLCB0aGlzLmJ1aWxkUm93cygpKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25BZGRFbGVtZW50KGVsZW1lbnQ6IElFbGVtZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgZWxlbWVudC5zZXRTdXJ2ZXlJbXBsKHRoaXMuc3VydmV5SW1wbCk7XG4gICAgZWxlbWVudC5wYXJlbnQgPSB0aGlzO1xuICAgIHRoaXMubWFya1F1ZXN0aW9uTGlzdERpcnR5KCk7XG4gICAgdGhpcy51cGRhdGVSb3dzT25FbGVtZW50QWRkZWQoZWxlbWVudCwgaW5kZXgpO1xuICAgIGlmIChlbGVtZW50LmlzUGFuZWwpIHtcbiAgICAgIHZhciBwID0gPFBhbmVsTW9kZWw+ZWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnN1cnZleSkge1xuICAgICAgICB0aGlzLnN1cnZleS5wYW5lbEFkZGVkKHAsIGluZGV4LCB0aGlzLCB0aGlzLnJvb3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zdXJ2ZXkpIHtcbiAgICAgICAgdmFyIHEgPSA8UXVlc3Rpb24+ZWxlbWVudDtcbiAgICAgICAgdGhpcy5zdXJ2ZXkucXVlc3Rpb25BZGRlZChxLCBpbmRleCwgdGhpcywgdGhpcy5yb290KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCEhdGhpcy5hZGRFbGVtZW50Q2FsbGJhY2spIHRoaXMuYWRkRWxlbWVudENhbGxiYWNrKGVsZW1lbnQpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAoPEJhc2U+KDxhbnk+ZWxlbWVudCkpLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXCJ2aXNpYmxlXCIsIFwiaXNWaXNpYmxlXCJdLFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYub25FbGVtZW50VmlzaWJpbGl0eUNoYW5nZWQoZWxlbWVudCk7XG4gICAgICB9LFxuICAgICAgdGhpcy5pZFxuICAgICk7XG4gICAgKDxCYXNlPig8YW55PmVsZW1lbnQpKS5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcbiAgICAgIFwic3RhcnRXaXRoTmV3TGluZVwiLFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYub25FbGVtZW50U3RhcnRXaXRoTmV3TGluZUNoYW5nZWQoZWxlbWVudCk7XG4gICAgICB9LFxuICAgICAgdGhpcy5pZFxuICAgICk7XG4gICAgdGhpcy5vbkVsZW1lbnRWaXNpYmlsaXR5Q2hhbmdlZCh0aGlzKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25SZW1vdmVFbGVtZW50KGVsZW1lbnQ6IElFbGVtZW50KSB7XG4gICAgZWxlbWVudC5wYXJlbnQgPSBudWxsO1xuICAgIHRoaXMubWFya1F1ZXN0aW9uTGlzdERpcnR5KCk7XG4gICAgKDxCYXNlPig8YW55PmVsZW1lbnQpKS51blJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXCJ2aXNpYmxlXCIsIFwiaXNWaXNpYmxlXCIsIFwic3RhcnRXaXRoTmV3TGluZVwiXSxcbiAgICAgIHRoaXMuaWRcbiAgICApO1xuICAgIHRoaXMudXBkYXRlUm93c09uRWxlbWVudFJlbW92ZWQoZWxlbWVudCk7XG4gICAgaWYgKCFlbGVtZW50LmlzUGFuZWwpIHtcbiAgICAgIGlmICh0aGlzLnN1cnZleSkgdGhpcy5zdXJ2ZXkucXVlc3Rpb25SZW1vdmVkKDxRdWVzdGlvbj5lbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuc3VydmV5KSB0aGlzLnN1cnZleS5wYW5lbFJlbW92ZWQoZWxlbWVudCk7XG4gICAgfVxuICAgIGlmICghIXRoaXMucmVtb3ZlRWxlbWVudENhbGxiYWNrKSB0aGlzLnJlbW92ZUVsZW1lbnRDYWxsYmFjayhlbGVtZW50KTtcbiAgICB0aGlzLm9uRWxlbWVudFZpc2liaWxpdHlDaGFuZ2VkKHRoaXMpO1xuICB9XG4gIHByaXZhdGUgb25FbGVtZW50VmlzaWJpbGl0eUNoYW5nZWQoZWxlbWVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHJldHVybjtcbiAgICB0aGlzLnVwZGF0ZVJvd3NWaXNpYmlsaXR5KGVsZW1lbnQpO1xuICAgIHRoaXMuY2hpbGRWaXNpYmlsaXR5Q2hhbmdlZCgpO1xuICAgIGlmICghIXRoaXMucGFyZW50KSB7XG4gICAgICB0aGlzLnBhcmVudC5vbkVsZW1lbnRWaXNpYmlsaXR5Q2hhbmdlZCh0aGlzKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBvbkVsZW1lbnRTdGFydFdpdGhOZXdMaW5lQ2hhbmdlZChlbGVtZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uUm93c0NoYW5nZWQoKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZVJvd3NWaXNpYmlsaXR5KGVsZW1lbnQ6IGFueSkge1xuICAgIHZhciByb3dzID0gdGhpcy5yb3dzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHJvdyA9IHJvd3NbaV07XG4gICAgICBpZiAocm93LmVsZW1lbnRzLmluZGV4T2YoZWxlbWVudCkgPiAtMSkge1xuICAgICAgICByb3cudXBkYXRlVmlzaWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBjYW5CdWlsZFJvd3MoKSB7XG4gICAgcmV0dXJuICF0aGlzLmlzTG9hZGluZ0Zyb21Kc29uICYmIHRoaXMuZ2V0Q2hpbGRyZW5MYXlvdXRUeXBlKCkgPT0gXCJyb3dcIjtcbiAgfVxuICBwcml2YXRlIGJ1aWxkUm93cygpOiBBcnJheTxRdWVzdGlvblJvd01vZGVsPiB7XG4gICAgaWYgKCF0aGlzLmNhbkJ1aWxkUm93cygpKSByZXR1cm4gW107XG4gICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheTxRdWVzdGlvblJvd01vZGVsPigpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5lbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsID0gdGhpcy5lbGVtZW50c1tpXTtcbiAgICAgIHZhciBpc05ld1JvdyA9IGkgPT0gMCB8fCBlbC5zdGFydFdpdGhOZXdMaW5lO1xuICAgICAgdmFyIHJvdyA9IGlzTmV3Um93ID8gdGhpcy5jcmVhdGVSb3coKSA6IHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV07XG4gICAgICBpZiAoaXNOZXdSb3cpIHJlc3VsdC5wdXNoKHJvdyk7XG4gICAgICByb3cuYWRkRWxlbWVudChlbCk7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXN1bHRbaV0udXBkYXRlVmlzaWJsZSgpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHByaXZhdGUgdXBkYXRlUm93c09uRWxlbWVudEFkZGVkKGVsZW1lbnQ6IElFbGVtZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmNhbkJ1aWxkUm93cygpKSByZXR1cm47XG4gICAgdmFyIGRyYWdEcm9wSW5mbyA9IG5ldyBEcmFnRHJvcEluZm8obnVsbCwgZWxlbWVudCk7XG4gICAgZHJhZ0Ryb3BJbmZvLnRhcmdldCA9IGVsZW1lbnQ7XG4gICAgZHJhZ0Ryb3BJbmZvLmlzRWRnZSA9IHRoaXMuZWxlbWVudHMubGVuZ3RoID4gMTtcbiAgICBpZiAodGhpcy5lbGVtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgICBkcmFnRHJvcEluZm8uZGVzdGluYXRpb24gPSB0aGlzO1xuICAgIH0gZWxzZSB7XG4gICAgICBkcmFnRHJvcEluZm8uaXNCb3R0b20gPSBpbmRleCA+IDA7XG4gICAgICBpZiAoaW5kZXggPT0gMCkge1xuICAgICAgICBkcmFnRHJvcEluZm8uZGVzdGluYXRpb24gPSB0aGlzLmVsZW1lbnRzWzFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHJhZ0Ryb3BJbmZvLmRlc3RpbmF0aW9uID0gdGhpcy5lbGVtZW50c1tpbmRleCAtIDFdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmRyYWdEcm9wQWRkVGFyZ2V0VG9Sb3coZHJhZ0Ryb3BJbmZvLCBudWxsKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZVJvd3NPbkVsZW1lbnRSZW1vdmVkKGVsZW1lbnQ6IElFbGVtZW50KSB7XG4gICAgaWYgKCF0aGlzLmNhbkJ1aWxkUm93cygpKSByZXR1cm47XG4gICAgdGhpcy51cGRhdGVSb3dzUmVtb3ZlRWxlbWVudEZyb21Sb3coXG4gICAgICBlbGVtZW50LFxuICAgICAgdGhpcy5maW5kUm93QnlFbGVtZW50KGVsZW1lbnQpXG4gICAgKTtcbiAgfVxuICBwcm90ZWN0ZWQgdXBkYXRlUm93c1JlbW92ZUVsZW1lbnRGcm9tUm93KFxuICAgIGVsZW1lbnQ6IElFbGVtZW50LFxuICAgIHJvdzogUXVlc3Rpb25Sb3dNb2RlbFxuICApIHtcbiAgICBpZiAoIXJvdyB8fCAhcm93LnBhbmVsKSByZXR1cm47XG4gICAgdmFyIGVsSW5kZXggPSByb3cuZWxlbWVudHMuaW5kZXhPZihlbGVtZW50KTtcbiAgICBpZiAoZWxJbmRleCA8IDApIHJldHVybjtcbiAgICByb3cuZWxlbWVudHMuc3BsaWNlKGVsSW5kZXgsIDEpO1xuICAgIGlmIChyb3cuZWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgcm93LnVwZGF0ZVZpc2libGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJvdy5pbmRleCA+PSAwKSB7XG4gICAgICAgIHJvdy5wYW5lbC5yb3dzLnNwbGljZShyb3cuaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIGZpbmRSb3dCeUVsZW1lbnQoZWw6IElFbGVtZW50KTogUXVlc3Rpb25Sb3dNb2RlbCB7XG4gICAgdmFyIHJvd3MgPSB0aGlzLnJvd3M7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocm93c1tpXS5lbGVtZW50cy5pbmRleE9mKGVsKSA+IC0xKSByZXR1cm4gcm93c1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZWxlbWVudFdpZHRoQ2hhbmdlZChlbDogSUVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdGcm9tSnNvbikgcmV0dXJuO1xuICAgIHZhciByb3cgPSB0aGlzLmZpbmRSb3dCeUVsZW1lbnQoZWwpO1xuICAgIGlmICghIXJvdykge1xuICAgICAgcm93LnVwZGF0ZVZpc2libGUoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgcmVuZGVyZWQgdGl0bGUgdGV4dCBvciBodG1sLlxuICAgKi9cbiAgcHVibGljIGdldCBwcm9jZXNzZWRUaXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZW5kZXJlZFRpdGxlKHRoaXMubG9jVGl0bGUudGV4dE9ySHRtbCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFJlbmRlcmVkVGl0bGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRleHRQcm9jZXNzb3IgIT0gbnVsbFxuICAgICAgPyB0aGlzLnRleHRQcm9jZXNzb3IucHJvY2Vzc1RleHQoc3RyLCB0cnVlKVxuICAgICAgOiBzdHI7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSBpdCB0byBnZXQvc2V0IHRoZSBvYmplY3QgdmlzaWJpbGl0eS5cbiAgICogQHNlZSB2aXNpYmxlSWZcbiAgICovXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJsZVwiLCB0cnVlKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMudmlzaWJsZSkgcmV0dXJuO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInZpc2libGVcIiwgdmFsdWUpO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlzVmlzaWJsZVwiLCB0aGlzLmlzVmlzaWJsZSk7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGluZ0Zyb21Kc29uKSB0aGlzLm9uVmlzaWJsZUNoYW5nZWQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25WaXNpYmxlQ2hhbmdlZCgpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpc1Zpc2libGVcIiwgdGhpcy5pc1Zpc2libGUpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgb2JqZWN0IGlzIHZpc2libGUgb3Igc3VydmV5IGlzIGluIGRlc2lnbiBtb2RlIHJpZ2h0IG5vdy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFyZUludmlzaWJsZUVsZW1lbnRzU2hvd2luZyB8fCB0aGlzLmdldElzUGFnZVZpc2libGUobnVsbCk7XG4gIH1cbiAgZ2V0SXNQYWdlVmlzaWJsZShleGNlcHRpb25RdWVzdGlvbjogSVF1ZXN0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmVsZW1lbnRzW2ldID09IGV4Y2VwdGlvblF1ZXN0aW9uKSBjb250aW51ZTtcbiAgICAgIGlmICh0aGlzLmVsZW1lbnRzW2ldLmlzVmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgc2V0VmlzaWJsZUluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5pc1Zpc2libGUgfHwgaW5kZXggPCAwKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5lbGVtZW50c1tpXS5zZXRWaXNpYmxlSW5kZXgoLTEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHZhciBzdGFydEluZGV4ID0gaW5kZXg7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbmRleCArPSB0aGlzLmVsZW1lbnRzW2ldLnNldFZpc2libGVJbmRleChpbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBpbmRleCAtIHN0YXJ0SW5kZXg7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVucyB0cnVlIGlmIHJlYWRPbmx5IHByb3BlcnR5IGlzIHRydWUgb3Igc3VydmV5IGlzIGluIGRpc3BsYXkgbW9kZSBvciBwYXJlbnQgcGFuZWwvcGFnZSBpcyByZWFkT25seS5cbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC5tb2RlbFxuICAgKiBAc2VlIHJlYWRPbmx5XG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzUmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgdmFyIGlzUGFyZW50UmVhZE9ubHkgPSAhIXRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LmlzUmVhZE9ubHk7XG4gICAgdmFyIGlzU3VydmV5UmVhZE9ubHkgPSAhIXRoaXMuc3VydmV5ICYmIHRoaXMuc3VydmV5LmlzRGlzcGxheU1vZGU7XG4gICAgcmV0dXJuIHRoaXMucmVhZE9ubHkgfHwgaXNQYXJlbnRSZWFkT25seSB8fCBpc1N1cnZleVJlYWRPbmx5O1xuICB9XG4gIHByb3RlY3RlZCBvblJlYWRPbmx5Q2hhbmdlZCgpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbCA9IDxTdXJ2ZXlFbGVtZW50Pig8YW55PnRoaXMuZWxlbWVudHNbaV0pO1xuICAgICAgZWwuc2V0UHJvcGVydHlWYWx1ZShcImlzUmVhZE9ubHlcIiwgZWwuaXNSZWFkT25seSk7XG4gICAgfVxuICAgIHN1cGVyLm9uUmVhZE9ubHlDaGFuZ2VkKCk7XG4gIH1cbiAgLyoqXG4gICAqIEFuIGV4cHJlc3Npb24gdGhhdCByZXR1cm5zIHRydWUgb3IgZmFsc2UuIElmIGl0IHJldHVybnMgZmFsc2UgdGhlIFBhbmVsL1BhZ2UgYmVjb21lcyByZWFkIG9ubHkgYW5kIGFuIGVuZC11c2VyIHdpbGwgbm90IGFibGUgdG8gYW5zd2VyIG9uIHF1c3Rpb25zIGluc2lkZSBpdC5cbiAgICogVGhlIGxpYnJhcnkgcnVucyB0aGUgZXhwcmVzc2lvbiBvbiBzdXJ2ZXkgc3RhcnQgYW5kIG9uIGNoYW5naW5nIGEgcXVlc3Rpb24gdmFsdWUuIElmIHRoZSBwcm9wZXJ0eSBpcyBlbXB0eSB0aGVuIHJlYWRPbmx5IHByb3BlcnR5IGlzIHVzZWQuXG4gICAqIEBzZWUgcmVhZE9ubHlcbiAgICogQHNlZSBpc1JlYWRPbmx5XG4gICAqL1xuICBwdWJsaWMgZ2V0IGVuYWJsZUlmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImVuYWJsZUlmXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgZW5hYmxlSWYodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJlbmFibGVJZlwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBBZGQgYW4gZWxlbWVudCBpbnRvIFBhbmVsIG9yIFBhZ2UuIFJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVudCBhZGRlZCBzdWNjZXNzZnVsbHkuIE90aGVyd2lzZSByZXR1cm5zIGZhbHNlLlxuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKiBAcGFyYW0gaW5kZXggZWxlbWVudCBpbmRleCBpbiB0aGUgZWxlbWVudHMgYXJyYXlcbiAgICovXG4gIHB1YmxpYyBhZGRFbGVtZW50KGVsZW1lbnQ6IElFbGVtZW50LCBpbmRleDogbnVtYmVyID0gLTEpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY2FuQWRkRWxlbWVudChlbGVtZW50KSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5lbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZWxlbWVudHMucHVzaChlbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50cy5zcGxpY2UoaW5kZXgsIDAsIGVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgY2FuQWRkRWxlbWVudChlbGVtZW50OiBJRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIWVsZW1lbnQgJiYgZWxlbWVudC5pc0xheW91dFR5cGVTdXBwb3J0ZWQodGhpcy5nZXRDaGlsZHJlbkxheW91dFR5cGUoKSlcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBBZGQgYSBxdWVzdGlvbiBpbnRvIFBhbmVsIG9yIFBhZ2UuIFJldHVybnMgdHJ1ZSBpZiB0aGUgcXVlc3Rpb24gYWRkZWQgc3VjY2Vzc2Z1bGx5LiBPdGhlcndpc2UgcmV0dXJucyBmYWxzZS5cbiAgICogQHBhcmFtIHF1ZXN0aW9uXG4gICAqIEBwYXJhbSBpbmRleCBlbGVtZW50IGluZGV4IGluIHRoZSBlbGVtZW50cyBhcnJheVxuICAgKi9cbiAgcHVibGljIGFkZFF1ZXN0aW9uKHF1ZXN0aW9uOiBRdWVzdGlvbiwgaW5kZXg6IG51bWJlciA9IC0xKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRWxlbWVudChxdWVzdGlvbiwgaW5kZXgpO1xuICB9XG4gIC8qKlxuICAgKiBBZGQgYSBwYW5lbCBpbnRvIFBhbmVsIG9yIFBhZ2UuICBSZXR1cm5zIHRydWUgaWYgdGhlIHBhbmVsIGFkZGVkIHN1Y2Nlc3NmdWxseS4gT3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuXG4gICAqIEBwYXJhbSBwYW5lbFxuICAgKiBAcGFyYW0gaW5kZXggZWxlbWVudCBpbmRleCBpbiB0aGUgZWxlbWVudHMgYXJyYXlcbiAgICovXG4gIHB1YmxpYyBhZGRQYW5lbChwYW5lbDogUGFuZWxNb2RlbCwgaW5kZXg6IG51bWJlciA9IC0xKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRWxlbWVudChwYW5lbCwgaW5kZXgpO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHF1ZXN0aW9uIGFuZCBhZGRzIGl0IGF0IGxvY2F0aW9uIG9mIGluZGV4LCBieSBkZWZhdWx0IHRoZSBlbmQgb2YgdGhlIGVsZW1lbnRzIGxpc3QuIFJldHVybnMgbnVsbCwgaWYgdGhlIHF1ZXN0aW9uIGNvdWxkIG5vdCBiZSBjcmVhdGVkIG9yIGNvdWxkIG5vdCBiZSBhZGRlZCBpbnRvIHBhZ2Ugb3IgcGFuZWwuXG4gICAqIEBwYXJhbSBxdWVzdGlvblR5cGUgdGhlIHBvc3NpYmxlIHZhbHVlcyBhcmU6IFwidGV4dFwiLCBcImNoZWNrYm94XCIsIFwiZHJvcGRvd25cIiwgXCJtYXRyaXhcIiwgXCJodG1sXCIsIFwibWF0cml4ZHluYW1pY1wiLCBcIm1hdHJpeGRyb3Bkb3duXCIgYW5kIHNvIG9uLlxuICAgKiBAcGFyYW0gbmFtZSBhIHF1ZXN0aW9uIG5hbWVcbiAgICogQHBhcmFtIGluZGV4IGVsZW1lbnQgaW5kZXggaW4gdGhlIGVsZW1lbnRzIGFycmF5XG4gICAqL1xuICBwdWJsaWMgYWRkTmV3UXVlc3Rpb24oXG4gICAgcXVlc3Rpb25UeXBlOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nID0gbnVsbCxcbiAgICBpbmRleDogbnVtYmVyID0gLTFcbiAgKTogUXVlc3Rpb24ge1xuICAgIHZhciBxdWVzdGlvbiA9IFF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5jcmVhdGVRdWVzdGlvbihxdWVzdGlvblR5cGUsIG5hbWUpO1xuICAgIGlmICghdGhpcy5hZGRRdWVzdGlvbihxdWVzdGlvbiwgaW5kZXgpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gcXVlc3Rpb247XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcGFuZWwgYW5kIGFkZHMgaXQgaW50byB0aGUgZW5kIG9mIHRoZSBlbGVtZW50cyBsaXN0LiBSZXR1cm5zIG51bGwsIGlmIHRoZSBwYW5lbCBjb3VsZCBub3QgYmUgY3JlYXRlZCBvciBjb3VsZCBub3QgYmUgYWRkZWQgaW50byBwYWdlIG9yIHBhbmVsLlxuICAgKiBAcGFyYW0gbmFtZSBhIHBhbmVsIG5hbWVcbiAgICovXG4gIHB1YmxpYyBhZGROZXdQYW5lbChuYW1lOiBzdHJpbmcgPSBudWxsKTogUGFuZWxNb2RlbCB7XG4gICAgdmFyIHBhbmVsID0gdGhpcy5jcmVhdGVOZXdQYW5lbChuYW1lKTtcbiAgICBpZiAoIXRoaXMuYWRkUGFuZWwocGFuZWwpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gcGFuZWw7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGluZGV4IG9mIGVsZW1lbnQgcGFyYW1ldGVyIGluIHRoZSBlbGVtZW50cyBsaXN0LlxuICAgKiBAcGFyYW0gZWxlbWVudCBxdWVzdGlvbiBvciBwYW5lbFxuICAgKi9cbiAgcHVibGljIGluZGV4T2YoZWxlbWVudDogSUVsZW1lbnQpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzLmluZGV4T2YoZWxlbWVudCk7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZU5ld1BhbmVsKG5hbWU6IHN0cmluZyk6IFBhbmVsTW9kZWwge1xuICAgIHJldHVybiBuZXcgUGFuZWxNb2RlbChuYW1lKTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIGFuIGVsZW1lbnQgKFBhbmVsIG9yIFF1ZXN0aW9uKSBmcm9tIHRoZSBlbGVtZW50cyBsaXN0LlxuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKiBAc2VlIGVsZW1lbnRzXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRWxlbWVudChlbGVtZW50OiBJRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHZhciBpbmRleCA9IHRoaXMuZWxlbWVudHMuaW5kZXhPZihlbGVtZW50KTtcbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudHNbaV0ucmVtb3ZlRWxlbWVudChlbGVtZW50KSkgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZWxlbWVudHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIHF1ZXN0aW9uICBmcm9tIHRoZSBlbGVtZW50cyBsaXN0LlxuICAgKiBAcGFyYW0gcXVlc3Rpb25cbiAgICogQHNlZSBlbGVtZW50c1xuICAgKiBAc2VlIHJlbW92ZUVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVRdWVzdGlvbihxdWVzdGlvbjogUXVlc3Rpb24pIHtcbiAgICB0aGlzLnJlbW92ZUVsZW1lbnQocXVlc3Rpb24pO1xuICB9XG4gIHByaXZhdGUgY29uZGl0aW9uVmVyc2lvbiA9IC0xO1xuICBydW5Db25kaXRpb24odmFsdWVzOiBIYXNoVGFibGU8YW55PiwgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT4pIHtcbiAgICBpZiAodGhpcy5pc0Rlc2lnbk1vZGUpIHJldHVybjtcbiAgICBpZiAodmFsdWVzLmNvbmRpdGlvblZlcnNpb24gPCB0aGlzLmNvbmRpdGlvblZlcnNpb24pIHJldHVybjtcbiAgICB0aGlzLmNvbmRpdGlvblZlcnNpb24gPSB2YWx1ZXMuY29uZGl0aW9uVmVyc2lvbjtcbiAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzLnNsaWNlKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHZhbHVlcy5jb25kaXRpb25WZXJzaW9uIDwgdGhpcy5jb25kaXRpb25WZXJzaW9uKSByZXR1cm47XG4gICAgICBlbGVtZW50c1tpXS5ydW5Db25kaXRpb24odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlcy5jb25kaXRpb25WZXJzaW9uIDwgdGhpcy5jb25kaXRpb25WZXJzaW9uKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmFyZUludmlzaWJsZUVsZW1lbnRzU2hvd2luZykge1xuICAgICAgdGhpcy5ydW5WaXNpYmxlQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgfVxuICAgIHRoaXMucnVuRW5hYmxlQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gIH1cbiAgcHJpdmF0ZSBydW5WaXNpYmxlQ29uZGl0aW9uKFxuICAgIHZhbHVlczogSGFzaFRhYmxlPGFueT4sXG4gICAgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT5cbiAgKSB7XG4gICAgaWYgKCF0aGlzLnZpc2libGVJZikgcmV0dXJuO1xuICAgIHZhciBjb25kaXRpb25SdW5uZXIgPSBuZXcgQ29uZGl0aW9uUnVubmVyKHRoaXMudmlzaWJsZUlmKTtcbiAgICBjb25kaXRpb25SdW5uZXIub25SdW5Db21wbGV0ZSA9IChyZXM6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHJlcztcbiAgICB9O1xuICAgIGNvbmRpdGlvblJ1bm5lci5ydW4odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICBwcml2YXRlIHJ1bkVuYWJsZUNvbmRpdGlvbihcbiAgICB2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LFxuICAgIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+XG4gICkge1xuICAgIGlmICghdGhpcy5lbmFibGVJZikgcmV0dXJuO1xuICAgIHZhciBjb25kaXRpb25SdW5uZXIgPSBuZXcgQ29uZGl0aW9uUnVubmVyKHRoaXMuZW5hYmxlSWYpO1xuICAgIGNvbmRpdGlvblJ1bm5lci5vblJ1bkNvbXBsZXRlID0gKHJlczogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5yZWFkT25seSA9ICFyZXM7XG4gICAgfTtcbiAgICBjb25kaXRpb25SdW5uZXIucnVuKHZhbHVlcywgcHJvcGVydGllcyk7XG4gIH1cbiAgb25BbnlWYWx1ZUNoYW5nZWQobmFtZTogc3RyaW5nKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmVsZW1lbnRzW2ldLm9uQW55VmFsdWVDaGFuZ2VkKG5hbWUpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZHJhZ0Ryb3BBZGRUYXJnZXQoZHJhZ0Ryb3BJbmZvOiBEcmFnRHJvcEluZm8pIHtcbiAgICB2YXIgcHJldlJvdyA9IHRoaXMuZHJhZ0Ryb3BGaW5kUm93KGRyYWdEcm9wSW5mby50YXJnZXQpO1xuICAgIGlmICh0aGlzLmRyYWdEcm9wQWRkVGFyZ2V0VG9Sb3coZHJhZ0Ryb3BJbmZvLCBwcmV2Um93KSkge1xuICAgICAgdGhpcy51cGRhdGVSb3dzUmVtb3ZlRWxlbWVudEZyb21Sb3coZHJhZ0Ryb3BJbmZvLnRhcmdldCwgcHJldlJvdyk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBkcmFnRHJvcEZpbmRSb3coZmluZEVsZW1lbnQ6IElTdXJ2ZXlFbGVtZW50KTogUXVlc3Rpb25Sb3dNb2RlbCB7XG4gICAgaWYgKCFmaW5kRWxlbWVudCB8fCBmaW5kRWxlbWVudC5pc1BhZ2UpIHJldHVybiBudWxsO1xuICAgIHZhciBlbGVtZW50ID0gPElFbGVtZW50PmZpbmRFbGVtZW50O1xuICAgIHZhciByb3dzID0gdGhpcy5yb3dzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHJvd3NbaV0uZWxlbWVudHMuaW5kZXhPZihlbGVtZW50KSA+IC0xKSByZXR1cm4gcm93c1tpXTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcG5sID0gdGhpcy5lbGVtZW50c1tpXS5nZXRQYW5lbCgpO1xuICAgICAgaWYgKCFwbmwpIGNvbnRpbnVlO1xuICAgICAgdmFyIHJvdyA9ICg8UGFuZWxNb2RlbEJhc2U+cG5sKS5kcmFnRHJvcEZpbmRSb3coZWxlbWVudCk7XG4gICAgICBpZiAoISFyb3cpIHJldHVybiByb3c7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByaXZhdGUgZHJhZ0Ryb3BBZGRUYXJnZXRUb1JvdyhcbiAgICBkcmFnRHJvcEluZm86IERyYWdEcm9wSW5mbyxcbiAgICBwcmV2Um93OiBRdWVzdGlvblJvd01vZGVsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghZHJhZ0Ryb3BJbmZvLmRlc3RpbmF0aW9uKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodGhpcy5kcmFnRHJvcEFkZFRhcmdldFRvRW1wdHlQYW5lbChkcmFnRHJvcEluZm8pKSByZXR1cm4gdHJ1ZTtcbiAgICB2YXIgZGVzdCA9IGRyYWdEcm9wSW5mby5kZXN0aW5hdGlvbjtcbiAgICB2YXIgZGVzdFJvdyA9IHRoaXMuZHJhZ0Ryb3BGaW5kUm93KGRlc3QpO1xuICAgIGlmICghZGVzdFJvdykgcmV0dXJuIHRydWU7XG4gICAgaWYgKCFkcmFnRHJvcEluZm8udGFyZ2V0LnN0YXJ0V2l0aE5ld0xpbmUpXG4gICAgICByZXR1cm4gdGhpcy5kcmFnRHJvcEFkZFRhcmdldFRvRXhpc3RpbmdSb3coXG4gICAgICAgIGRyYWdEcm9wSW5mbyxcbiAgICAgICAgZGVzdFJvdyxcbiAgICAgICAgcHJldlJvd1xuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5kcmFnRHJvcEFkZFRhcmdldFRvTmV3Um93KGRyYWdEcm9wSW5mbywgZGVzdFJvdywgcHJldlJvdyk7XG4gIH1cbiAgcHJpdmF0ZSBkcmFnRHJvcEFkZFRhcmdldFRvRW1wdHlQYW5lbChkcmFnRHJvcEluZm86IERyYWdEcm9wSW5mbyk6IGJvb2xlYW4ge1xuICAgIGlmIChkcmFnRHJvcEluZm8uZGVzdGluYXRpb24uaXNQYWdlKSB7XG4gICAgICB0aGlzLmRyYWdEcm9wQWRkVGFyZ2V0VG9FbXB0eVBhbmVsQ29yZShcbiAgICAgICAgdGhpcy5yb290LFxuICAgICAgICBkcmFnRHJvcEluZm8udGFyZ2V0LFxuICAgICAgICBkcmFnRHJvcEluZm8uaXNCb3R0b21cbiAgICAgICk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIGRlc3QgPSA8SUVsZW1lbnQ+ZHJhZ0Ryb3BJbmZvLmRlc3RpbmF0aW9uO1xuICAgIGlmIChkZXN0LmlzUGFuZWwgJiYgIWRyYWdEcm9wSW5mby5pc0VkZ2UpIHtcbiAgICAgIHZhciBwYW5lbCA9IDxQYW5lbE1vZGVsQmFzZT4oPGFueT5kZXN0KTtcbiAgICAgIGlmICgoPGFueT5kcmFnRHJvcEluZm8udGFyZ2V0KVtcInRlbXBsYXRlXCJdID09PSBkZXN0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgZHJhZ0Ryb3BJbmZvLm5lc3RlZFBhbmVsRGVwdGggPCAwIHx8XG4gICAgICAgIGRyYWdEcm9wSW5mby5uZXN0ZWRQYW5lbERlcHRoID49IHBhbmVsLmRlcHRoXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5kcmFnRHJvcEFkZFRhcmdldFRvRW1wdHlQYW5lbENvcmUoXG4gICAgICAgICAgPFBhbmVsTW9kZWxCYXNlPig8YW55PmRlc3QpLFxuICAgICAgICAgIGRyYWdEcm9wSW5mby50YXJnZXQsXG4gICAgICAgICAgZHJhZ0Ryb3BJbmZvLmlzQm90dG9tXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHJpdmF0ZSBkcmFnRHJvcEFkZFRhcmdldFRvRXhpc3RpbmdSb3coXG4gICAgZHJhZ0Ryb3BJbmZvOiBEcmFnRHJvcEluZm8sXG4gICAgZGVzdFJvdzogUXVlc3Rpb25Sb3dNb2RlbCxcbiAgICBwcmV2Um93OiBRdWVzdGlvblJvd01vZGVsXG4gICk6IGJvb2xlYW4ge1xuICAgIHZhciBpbmRleCA9IGRlc3RSb3cuZWxlbWVudHMuaW5kZXhPZig8SUVsZW1lbnQ+ZHJhZ0Ryb3BJbmZvLmRlc3RpbmF0aW9uKTtcbiAgICBpZiAoXG4gICAgICBpbmRleCA9PSAwICYmXG4gICAgICAhZHJhZ0Ryb3BJbmZvLmlzQm90dG9tICYmXG4gICAgICBkZXN0Um93LmVsZW1lbnRzWzBdLnN0YXJ0V2l0aE5ld0xpbmVcbiAgICApIHtcbiAgICAgIGlmIChkZXN0Um93LmluZGV4ID4gMCkge1xuICAgICAgICBkcmFnRHJvcEluZm8uaXNCb3R0b20gPSB0cnVlO1xuICAgICAgICBkZXN0Um93ID0gZGVzdFJvdy5wYW5lbC5yb3dzW2Rlc3RSb3cuaW5kZXggLSAxXTtcbiAgICAgICAgZHJhZ0Ryb3BJbmZvLmRlc3RpbmF0aW9uID1cbiAgICAgICAgICBkZXN0Um93LmVsZW1lbnRzW2Rlc3RSb3cuZWxlbWVudHMubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiB0aGlzLmRyYWdEcm9wQWRkVGFyZ2V0VG9FeGlzdGluZ1JvdyhcbiAgICAgICAgICBkcmFnRHJvcEluZm8sXG4gICAgICAgICAgZGVzdFJvdyxcbiAgICAgICAgICBwcmV2Um93XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5kcmFnRHJvcEFkZFRhcmdldFRvTmV3Um93KGRyYWdEcm9wSW5mbywgZGVzdFJvdywgcHJldlJvdyk7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBwcmV2Um93SW5kZXggPSAtMTtcbiAgICBpZiAocHJldlJvdyA9PSBkZXN0Um93KSB7XG4gICAgICBwcmV2Um93SW5kZXggPSBkZXN0Um93LmVsZW1lbnRzLmluZGV4T2YoZHJhZ0Ryb3BJbmZvLnRhcmdldCk7XG4gICAgfVxuICAgIGlmIChkcmFnRHJvcEluZm8uaXNCb3R0b20pIGluZGV4Kys7XG4gICAgdmFyIHNyY1JvdyA9IHRoaXMuZmluZFJvd0J5RWxlbWVudChkcmFnRHJvcEluZm8uc291cmNlKTtcbiAgICBpZiAoXG4gICAgICBzcmNSb3cgPT0gZGVzdFJvdyAmJlxuICAgICAgc3JjUm93LmVsZW1lbnRzLmluZGV4T2YoZHJhZ0Ryb3BJbmZvLnNvdXJjZSkgPT0gaW5kZXhcbiAgICApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGluZGV4ID09IHByZXZSb3dJbmRleCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChwcmV2Um93SW5kZXggPiAtMSkge1xuICAgICAgZGVzdFJvdy5lbGVtZW50cy5zcGxpY2UocHJldlJvd0luZGV4LCAxKTtcbiAgICAgIGlmIChwcmV2Um93SW5kZXggPCBpbmRleCkgaW5kZXgtLTtcbiAgICB9XG4gICAgZGVzdFJvdy5lbGVtZW50cy5zcGxpY2UoaW5kZXgsIDAsIGRyYWdEcm9wSW5mby50YXJnZXQpO1xuICAgIGRlc3RSb3cudXBkYXRlVmlzaWJsZSgpO1xuICAgIHJldHVybiBwcmV2Um93SW5kZXggPCAwO1xuICB9XG4gIHByaXZhdGUgZHJhZ0Ryb3BBZGRUYXJnZXRUb05ld1JvdyhcbiAgICBkcmFnRHJvcEluZm86IERyYWdEcm9wSW5mbyxcbiAgICBkZXN0Um93OiBRdWVzdGlvblJvd01vZGVsLFxuICAgIHByZXZSb3c6IFF1ZXN0aW9uUm93TW9kZWxcbiAgKTogYm9vbGVhbiB7XG4gICAgdmFyIHRhcmdldFJvdyA9IGRlc3RSb3cucGFuZWwuY3JlYXRlUm93KCk7XG4gICAgdGFyZ2V0Um93LmFkZEVsZW1lbnQoZHJhZ0Ryb3BJbmZvLnRhcmdldCk7XG4gICAgdmFyIGluZGV4ID0gZGVzdFJvdy5pbmRleDtcbiAgICBpZiAoZHJhZ0Ryb3BJbmZvLmlzQm90dG9tKSB7XG4gICAgICBpbmRleCsrO1xuICAgIH1cbiAgICAvL3NhbWUgcm93XG4gICAgaWYgKCEhcHJldlJvdyAmJiBwcmV2Um93LnBhbmVsID09IHRhcmdldFJvdy5wYW5lbCAmJiBwcmV2Um93LmluZGV4ID09IGluZGV4KVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBzcmNSb3cgPSB0aGlzLmZpbmRSb3dCeUVsZW1lbnQoZHJhZ0Ryb3BJbmZvLnNvdXJjZSk7XG4gICAgaWYgKFxuICAgICAgISFzcmNSb3cgJiZcbiAgICAgIHNyY1Jvdy5wYW5lbCA9PSB0YXJnZXRSb3cucGFuZWwgJiZcbiAgICAgIHNyY1Jvdy5lbGVtZW50cy5sZW5ndGggPT0gMSAmJlxuICAgICAgc3JjUm93LmluZGV4ID09IGluZGV4XG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGRlc3RSb3cucGFuZWwucm93cy5zcGxpY2UoaW5kZXgsIDAsIHRhcmdldFJvdyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBkcmFnRHJvcEFkZFRhcmdldFRvRW1wdHlQYW5lbENvcmUoXG4gICAgcGFuZWw6IFBhbmVsTW9kZWxCYXNlLFxuICAgIHRhcmdldDogSUVsZW1lbnQsXG4gICAgaXNCb3R0b206IGJvb2xlYW5cbiAgKSB7XG4gICAgdmFyIHRhcmdldFJvdyA9IHBhbmVsLmNyZWF0ZVJvdygpO1xuICAgIHRhcmdldFJvdy5hZGRFbGVtZW50KHRhcmdldCk7XG4gICAgaWYgKHBhbmVsLmVsZW1lbnRzLmxlbmd0aCA9PSAwIHx8IGlzQm90dG9tKSB7XG4gICAgICBwYW5lbC5yb3dzLnB1c2godGFyZ2V0Um93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFuZWwucm93cy5zcGxpY2UoMCwgMCwgdGFyZ2V0Um93KTtcbiAgICB9XG4gIH1cbiAgZHJhZ0Ryb3BNb3ZlRWxlbWVudChzcmM6IElFbGVtZW50LCB0YXJnZXQ6IElFbGVtZW50LCB0YXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgdmFyIHNyY0luZGV4ID0gKDxQYW5lbE1vZGVsQmFzZT5zcmMucGFyZW50KS5lbGVtZW50cy5pbmRleE9mKHNyYyk7XG4gICAgaWYgKHRhcmdldEluZGV4ID4gc3JjSW5kZXgpIHtcbiAgICAgIHRhcmdldEluZGV4LS07XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlRWxlbWVudChzcmMpO1xuICAgIHRoaXMuYWRkRWxlbWVudCh0YXJnZXQsIHRhcmdldEluZGV4KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgY29udGFpbmVyIGVsZW1lbnQsIHNpbWlsYXIgdG8gdGhlIFBhZ2Ugb2JqZWN0cy4gSG93ZXZlciwgdW5saWtlIHRoZSBQYWdlLCBQYW5lbCBjYW4ndCBiZSBhIHJvb3QuXG4gKiBJdCBtYXkgY29udGFpbiBxdWVzdGlvbnMgYW5kIG90aGVyIHBhbmVscy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhbmVsTW9kZWwgZXh0ZW5kcyBQYW5lbE1vZGVsQmFzZSBpbXBsZW1lbnRzIElFbGVtZW50IHtcbiAgc3RhdGVDaGFuZ2VkQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBcIlwiKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMucmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXCJzdGF0ZVwiLCBmdW5jdGlvbigpIHtcbiAgICAgIGlmIChzZWxmLnN0YXRlQ2hhbmdlZENhbGxiYWNrKSBzZWxmLnN0YXRlQ2hhbmdlZENhbGxiYWNrKCk7XG4gICAgfSk7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcIndpZHRoXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCEhc2VsZi5wYXJlbnQpIHtcbiAgICAgICAgc2VsZi5wYXJlbnQuZWxlbWVudFdpZHRoQ2hhbmdlZChzZWxmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXCJpbmRlbnRcIiwgXCJpbm5lckluZGVudFwiLCBcInJpZ2h0SW5kZW50XCJdLFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYub25JbmRlbnRDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInBhbmVsXCI7XG4gIH1cbiAgb25TdXJ2ZXlMb2FkKCkge1xuICAgIHN1cGVyLm9uU3VydmV5TG9hZCgpO1xuICAgIHRoaXMub25JbmRlbnRDaGFuZ2VkKCk7XG4gIH1cbiAgcHVibGljIGdldCBpc1BhbmVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBHZXQvc2V0IHRoZSBwYWdlIHdoZXJlIHRoZSBwYW5lbCBpcyBsb2NhdGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlKCk6IElQYWdlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlKHRoaXMucGFyZW50KTtcbiAgfVxuICBwdWJsaWMgc2V0IHBhZ2UodmFsOiBJUGFnZSkge1xuICAgIHRoaXMuc2V0UGFnZSh0aGlzLnBhcmVudCwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZGVsZXRlKCkge1xuICAgIGlmICghIXRoaXMucGFyZW50KSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGZGcm9tTGlzdCh0aGlzLnBhcmVudC5lbGVtZW50cyk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBcImNvbGxhcHNlZFwiIHRvIHJlbmRlciBvbmx5IFBhbmVsIHRpdGxlIGFuZCBleHBhbmRlZCBidXR0b24gYW5kIHRvIFwiZXhwYW5kZWRcIiB0byByZW5kZXIgdGhlIGNvbGxhcHNlZCBidXR0b24gaW4gdGhlIFBhbmVsIGNhcHRpb25cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic3RhdGVcIik7XG4gIH1cbiAgcHVibGljIHNldCBzdGF0ZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInN0YXRlXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgUGFuZWwgaXMgaW4gdGhlIGNvbGxhcHNlZCBzdGF0ZVxuICAgKiBAc2VlIHN0YXRlXG4gICAqIEBzZWUgY29sbGFwc2VcbiAgICogQHNlZSBpc0V4cGFuZGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzQ29sbGFwc2VkKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09IFwiY29sbGFwc2VkXCI7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgUGFuZWwgaXMgaW4gdGhlIGV4cGFuZGVkIHN0YXRlXG4gICAqIEBzZWUgc3RhdGVcbiAgICogQHNlZSBleHBhbmRcbiAgICogQHNlZSBpc0NvbGxhcHNlZFxuICAgKi9cbiAgcHVibGljIGdldCBpc0V4cGFuZGVkKCkge1xuICAgIGlmICh0aGlzLmlzRGVzaWduTW9kZSkgcmV0dXJuO1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09IFwiZXhwYW5kZWRcIjtcbiAgfVxuICAvKipcbiAgICogQ29sbGFwc2UgdGhlIFBhbmVsXG4gICAqIEBzZWUgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBjb2xsYXBzZSgpIHtcbiAgICBpZiAodGhpcy5pc0Rlc2lnbk1vZGUpIHJldHVybjtcbiAgICB0aGlzLnN0YXRlID0gXCJjb2xsYXBzZWRcIjtcbiAgfVxuICAvKipcbiAgICogRXhwYW5kIHRoZSBQYW5lbFxuICAgKiBAc2VlIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgZXhwYW5kKCkge1xuICAgIHRoaXMuc3RhdGUgPSBcImV4cGFuZGVkXCI7XG4gIH1cbiAgLyoqXG4gICAqIE1vdmUgcGFuZWwgdG8gYSBuZXcgY29udGFpbmVyIFBhZ2UvUGFuZWwuIEFkZCBhcyBhIGxhc3QgZWxlbWVudCBpZiBpbnNlcnRCZWZvcmUgcGFyYW1ldGVyIGlzIG5vdCB1c2VkIG9yIGluc2VydGVkIGludG8gdGhlIGdpdmVuIGluZGV4LFxuICAgKiBpZiBpbnNlcnQgcGFyYW1ldGVyIGlzIG51bWJlciwgb3IgYmVmb3JlIHRoZSBnaXZlbiBlbGVtZW50LCBpZiB0aGUgaW5zZXJ0QmVmb3JlIHBhcmFtZXRlciBpcyBhIHF1ZXN0aW9uIG9yIHBhbmVsXG4gICAqIEBwYXJhbSBjb250YWluZXIgUGFnZSBvciBQYW5lbCB0byB3aGVyZSBhIHF1ZXN0aW9uIGlzIHJlbG9jYXRlZC5cbiAgICogQHBhcmFtIGluc2VydEJlZm9yZSBVc2UgaXQgaWYgeW91IHdhbnQgdG8gc2V0IHRoZSBwYW5lbCB0byBhIHNwZWNpZmljIHBvc2l0aW9uLiBZb3UgbWF5IHVzZSBhIG51bWJlciAodXNlIDAgdG8gaW5zZXJ0IGludCB0aGUgYmVnaW5uaW5nKSBvciBlbGVtZW50LCBpZiB5b3Ugd2FudCB0byBpbnNlcnQgYmVmb3JlIHRoaXMgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBtb3ZlVG8oY29udGFpbmVyOiBJUGFuZWwsIGluc2VydEJlZm9yZTogYW55ID0gbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vdmVUb0Jhc2UodGhpcy5wYXJlbnQsIGNvbnRhaW5lciwgaW5zZXJ0QmVmb3JlKTtcbiAgfVxuICBwcm90ZWN0ZWQgaGFzRXJyb3JzQ29yZShyZWM6IGFueSkge1xuICAgIHN1cGVyLmhhc0Vycm9yc0NvcmUocmVjKTtcbiAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCAmJiByZWMucmVzdWx0ICYmIHJlYy5maXJlQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMuZXhwYW5kKCk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBnZXRSZW5kZXJlZFRpdGxlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXN0cikge1xuICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQgfHwgdGhpcy5pc0V4cGFuZGVkKSByZXR1cm4gdGhpcy5uYW1lO1xuICAgICAgaWYgKHRoaXMuaXNEZXNpZ25Nb2RlKSByZXR1cm4gXCJbXCIgKyB0aGlzLm5hbWUgKyBcIl1cIjtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmdldFJlbmRlcmVkVGl0bGUoc3RyKTtcbiAgfVxuICAvKipcbiAgICogVGhlIFBhbmVsIHdpZHRoLlxuICAgKi9cbiAgcHVibGljIGdldCB3aWR0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ3aWR0aFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHdpZHRoKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwid2lkdGhcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGxlZnQgaW5kZW50LiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBpbmNyZWFzZSB0aGUgcGFuZWwgbGVmdCBpbmRlbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGluZGVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJpbmRlbnRcIiwgMCk7XG4gIH1cbiAgcHVibGljIHNldCBpbmRlbnQodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpbmRlbnRcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGlubmVyIGluZGVudC4gU2V0IHRoaXMgcHJvcGVydHkgdG8gaW5jcmVhc2UgdGhlIHBhbmVsIGNvbnRlbnQgbWFyZ2luLlxuICAgKi9cbiAgcHVibGljIGdldCBpbm5lckluZGVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJpbm5lckluZGVudFwiLCAwKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlubmVySW5kZW50KHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaW5uZXJJbmRlbnRcIiwgdmFsKTtcbiAgfVxuICBnZXQgcmVuZGVyV2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicmVuZGVyV2lkdGhcIik7XG4gIH1cbiAgc2V0IHJlbmRlcldpZHRoKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicmVuZGVyV2lkdGhcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVGhlIFBhbmVsIHJlbmRlcnMgb24gdGhlIG5ldyBsaW5lIGlmIHRoZSBwcm9wZXJ0eSBpcyB0cnVlLiBJZiB0aGUgcHJvcGVydHkgaXMgZmFsc2UsIHRoZSBwYW5lbCB0cmllcyB0byByZW5kZXIgb24gdGhlIHNhbWUgbGluZS9yb3cgd2l0aCBhIHByZXZpb3VzIHF1ZXN0aW9uL3BhbmVsLlxuICAgKi9cbiAgcHVibGljIGdldCBzdGFydFdpdGhOZXdMaW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzdGFydFdpdGhOZXdMaW5lXCIsIHRydWUpO1xuICB9XG4gIHB1YmxpYyBzZXQgc3RhcnRXaXRoTmV3TGluZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInN0YXJ0V2l0aE5ld0xpbmVcIiwgdmFsdWUpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgcmlnaHQgaW5kZW50IG9mIHRoZSBQYW5lbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcmlnaHRJbmRlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicmlnaHRJbmRlbnRcIiwgMCk7XG4gIH1cbiAgcHVibGljIHNldCByaWdodEluZGVudCh2YWw6IG51bWJlcikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInJpZ2h0SW5kZW50XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IHBhZGRpbmdMZWZ0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhZGRpbmdMZWZ0XCIsIFwiXCIpO1xuICB9XG4gIHNldCBwYWRkaW5nTGVmdCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInBhZGRpbmdMZWZ0XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGlubmVyUGFkZGluZ0xlZnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaW5uZXJQYWRkaW5nTGVmdFwiLCBcIlwiKTtcbiAgfVxuICBzZXQgaW5uZXJQYWRkaW5nTGVmdCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlubmVyUGFkZGluZ0xlZnRcIiwgdmFsKTtcbiAgfVxuICBnZXQgcGFkZGluZ1JpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhZGRpbmdSaWdodFwiLCBcIlwiKTtcbiAgfVxuICBzZXQgcGFkZGluZ1JpZ2h0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGluZ1JpZ2h0XCIsIHZhbCk7XG4gIH1cbiAgcHJpdmF0ZSBvbkluZGVudENoYW5nZWQoKSB7XG4gICAgdGhpcy5pbm5lclBhZGRpbmdMZWZ0ID0gdGhpcy5nZXRJbmRlbnRTaXplKHRoaXMuaW5uZXJJbmRlbnQpO1xuICAgIHRoaXMucGFkZGluZ0xlZnQgPSB0aGlzLmdldEluZGVudFNpemUodGhpcy5pbmRlbnQpO1xuICAgIHRoaXMucGFkZGluZ1JpZ2h0ID0gdGhpcy5nZXRJbmRlbnRTaXplKHRoaXMucmlnaHRJbmRlbnQpO1xuICB9XG4gIHByaXZhdGUgZ2V0SW5kZW50U2l6ZShpbmRlbnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGluZGVudCA8IDEpIHJldHVybiBcIlwiO1xuICAgIGlmICghdGhpcy5kYXRhKSByZXR1cm4gXCJcIjtcbiAgICB2YXIgY3NzID0gKDxhbnk+dGhpcykuc3VydmV5W1wiY3NzXCJdO1xuICAgIGlmICghY3NzKSByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gaW5kZW50ICogY3NzLnF1ZXN0aW9uLmluZGVudCArIFwicHhcIjtcbiAgfVxuICBwcm90ZWN0ZWQgb25WaXNpYmxlQ2hhbmdlZCgpIHtcbiAgICBzdXBlci5vblZpc2libGVDaGFuZ2VkKCk7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaXNWaXNpYmxlXCIsIHRoaXMuaXNWaXNpYmxlKTtcbiAgICBpZiAodGhpcy5zdXJ2ZXkgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdXJ2ZXkucGFuZWxWaXNpYmlsaXR5Q2hhbmdlZCh0aGlzLCB0aGlzLnZpc2libGUpO1xuICAgIH1cbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcInBhbmVsYmFzZVwiLFxuICBbXG4gICAgXCJuYW1lXCIsXG4gICAge1xuICAgICAgbmFtZTogXCJlbGVtZW50c1wiLFxuICAgICAgYWx0ZXJuYXRpdmVOYW1lOiBcInF1ZXN0aW9uc1wiLFxuICAgICAgYmFzZUNsYXNzTmFtZTogXCJxdWVzdGlvblwiLFxuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICBpc0xpZ2h0U2VyaWFsaXphYmxlOiBmYWxzZVxuICAgIH0sXG4gICAgeyBuYW1lOiBcInZpc2libGU6Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlIH0sXG4gICAgXCJ2aXNpYmxlSWY6Y29uZGl0aW9uXCIsXG4gICAgXCJlbmFibGVJZjpjb25kaXRpb25cIixcbiAgICBcInJlYWRPbmx5OmJvb2xlYW5cIixcbiAgICB7XG4gICAgICBuYW1lOiBcInF1ZXN0aW9uVGl0bGVMb2NhdGlvblwiLFxuICAgICAgZGVmYXVsdDogXCJkZWZhdWx0XCIsXG4gICAgICBjaG9pY2VzOiBbXCJkZWZhdWx0XCIsIFwidG9wXCIsIFwiYm90dG9tXCIsIFwibGVmdFwiLCBcImhpZGRlblwiXVxuICAgIH0sXG4gICAgeyBuYW1lOiBcInRpdGxlXCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NUaXRsZVwiIH0sXG4gICAgeyBuYW1lOiBcImRlc2NyaXB0aW9uOnRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0Rlc2NyaXB0aW9uXCIgfVxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFBhbmVsTW9kZWxCYXNlKCk7XG4gIH1cbik7XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwicGFuZWxcIixcbiAgW1xuICAgIHtcbiAgICAgIG5hbWU6IFwic3RhdGVcIixcbiAgICAgIGRlZmF1bHQ6IFwiZGVmYXVsdFwiLFxuICAgICAgY2hvaWNlczogW1wiZGVmYXVsdFwiLCBcImNvbGxhcHNlZFwiLCBcImV4cGFuZGVkXCJdXG4gICAgfSxcbiAgICBcImlzUmVxdWlyZWQ6Ym9vbGVhblwiLFxuICAgIHtcbiAgICAgIG5hbWU6IFwicmVxdWlyZWRFcnJvclRleHQ6dGV4dFwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1JlcXVpcmVkRXJyb3JUZXh0XCJcbiAgICB9LFxuICAgIHsgbmFtZTogXCJzdGFydFdpdGhOZXdMaW5lOmJvb2xlYW5cIiwgZGVmYXVsdDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogXCJpbm5lckluZGVudDpudW1iZXJcIiwgZGVmYXVsdDogMCwgY2hvaWNlczogWzAsIDEsIDIsIDNdIH0sXG4gICAgeyBuYW1lOiBcImluZGVudDpudW1iZXJcIiwgZGVmYXVsdDogMCwgY2hvaWNlczogWzAsIDEsIDIsIDNdIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJwYWdlXCIsXG4gICAgICBpc1NlcmlhbGl6YWJsZTogZmFsc2UsXG4gICAgICBjaG9pY2VzOiBmdW5jdGlvbihvYmo6IGFueSkge1xuICAgICAgICB2YXIgc3VydmV5ID0gb2JqID8gb2JqLnN1cnZleSA6IG51bGw7XG4gICAgICAgIHJldHVybiBzdXJ2ZXlcbiAgICAgICAgICA/IHN1cnZleS5wYWdlcy5tYXAoKHA6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcC5uYW1lLCB0ZXh0OiBwLnRpdGxlIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogW107XG4gICAgICB9XG4gICAgfVxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFBhbmVsTW9kZWwoKTtcbiAgfSxcbiAgXCJwYW5lbGJhc2VcIlxuKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9wYW5lbC50cyIsImltcG9ydCB7IEhhc2hUYWJsZSwgSGVscGVycyB9IGZyb20gXCIuLi9oZWxwZXJzXCI7XG5pbXBvcnQgeyBGdW5jdGlvbkZhY3RvcnkgfSBmcm9tIFwiLi4vZnVuY3Rpb25zZmFjdG9yeVwiO1xuaW1wb3J0IHsgUHJvY2Vzc1ZhbHVlIH0gZnJvbSBcIi4uL2NvbmRpdGlvblByb2Nlc3NWYWx1ZVwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgT3BlcmFuZCB7XG4gIHB1YmxpYyB0b1N0cmluZyhmdW5jOiAob3A6IE9wZXJhbmQpID0+IHN0cmluZyA9IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbiAgcHVibGljIGFic3RyYWN0IGdldFR5cGUoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZXZhbHVhdGUocHJvY2Vzc1ZhbHVlPzogUHJvY2Vzc1ZhbHVlKTogYW55O1xuICBwdWJsaWMgYWJzdHJhY3Qgc2V0VmFyaWFibGVzKHZhcmlhYmxlczogQXJyYXk8c3RyaW5nPik6IGFueTtcbiAgcHVibGljIGhhc0Z1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgaGFzQXN5bmNGdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGFkZFRvQXN5bmNMaXN0KGxpc3Q6IEFycmF5PEZ1bmN0aW9uT3BlcmFuZD4pOiB2b2lkIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBCaW5hcnlPcGVyYW5kIGV4dGVuZHMgT3BlcmFuZCB7XG4gIHByaXZhdGUgY29uc3VtZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIGlzQXJpdGhtZXRpY1ZhbHVlOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG9wZXJhdG9yTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgbGVmdDogYW55ID0gbnVsbCxcbiAgICBwcml2YXRlIHJpZ2h0OiBhbnkgPSBudWxsLFxuICAgIGlzQXJpdGhtZXRpY09wOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlzQXJpdGhtZXRpY1ZhbHVlID0gaXNBcml0aG1ldGljT3A7XG4gICAgaWYgKGlzQXJpdGhtZXRpY09wKSB7XG4gICAgICB0aGlzLmNvbnN1bWVyID0gT3BlcmFuZE1ha2VyLmJpbmFyeUZ1bmN0aW9uc1tcImFyaXRobWV0aWNPcFwiXShcbiAgICAgICAgb3BlcmF0b3JOYW1lXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnN1bWVyID0gT3BlcmFuZE1ha2VyLmJpbmFyeUZ1bmN0aW9uc1tvcGVyYXRvck5hbWVdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnN1bWVyID09IG51bGwpIHtcbiAgICAgIE9wZXJhbmRNYWtlci50aHJvd0ludmFsaWRPcGVyYXRvckVycm9yKG9wZXJhdG9yTmFtZSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiYmluYXJ5XCI7XG4gIH1cbiAgcHVibGljIGdldCBpc0FyaXRobWV0aWMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNBcml0aG1ldGljVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBpc0Nvbmp1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdG9yTmFtZSA9PSBcIm9yXCIgfHwgdGhpcy5vcGVyYXRvck5hbWUgPT0gXCJhbmRcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGxlZnRPcGVyYW5kKCkge1xuICAgIHJldHVybiB0aGlzLmxlZnQ7XG4gIH1cbiAgcHVibGljIGdldCByaWdodE9wZXJhbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHQ7XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlUGFyYW0oeDogYW55LCBwcm9jZXNzVmFsdWU/OiBQcm9jZXNzVmFsdWUpOiBhbnkge1xuICAgIHJldHVybiB4ID09IG51bGwgPyBudWxsIDogeC5ldmFsdWF0ZShwcm9jZXNzVmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGV2YWx1YXRlKHByb2Nlc3NWYWx1ZT86IFByb2Nlc3NWYWx1ZSk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3VtZXIuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICB0aGlzLmV2YWx1YXRlUGFyYW0odGhpcy5sZWZ0LCBwcm9jZXNzVmFsdWUpLFxuICAgICAgdGhpcy5ldmFsdWF0ZVBhcmFtKHRoaXMucmlnaHQsIHByb2Nlc3NWYWx1ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKGZ1bmM6IChvcDogT3BlcmFuZCkgPT4gc3RyaW5nID0gdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoISFmdW5jKSB7XG4gICAgICB2YXIgcmVzID0gZnVuYyh0aGlzKTtcbiAgICAgIGlmICghIXJlcykgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIFwiKFwiICtcbiAgICAgIE9wZXJhbmRNYWtlci5zYWZlVG9TdHJpbmcodGhpcy5sZWZ0LCBmdW5jKSArXG4gICAgICBcIiBcIiArXG4gICAgICBPcGVyYW5kTWFrZXIub3BlcmF0b3JUb1N0cmluZyh0aGlzLm9wZXJhdG9yTmFtZSkgK1xuICAgICAgXCIgXCIgK1xuICAgICAgT3BlcmFuZE1ha2VyLnNhZmVUb1N0cmluZyh0aGlzLnJpZ2h0LCBmdW5jKSArXG4gICAgICBcIilcIlxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0VmFyaWFibGVzKHZhcmlhYmxlczogQXJyYXk8c3RyaW5nPikge1xuICAgIGlmICh0aGlzLmxlZnQgIT0gbnVsbCkgdGhpcy5sZWZ0LnNldFZhcmlhYmxlcyh2YXJpYWJsZXMpO1xuICAgIGlmICh0aGlzLnJpZ2h0ICE9IG51bGwpIHRoaXMucmlnaHQuc2V0VmFyaWFibGVzKHZhcmlhYmxlcyk7XG4gIH1cblxuICBwdWJsaWMgaGFzRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICghIXRoaXMubGVmdCAmJiB0aGlzLmxlZnQuaGFzRnVuY3Rpb24oKSkgfHxcbiAgICAgICghIXRoaXMucmlnaHQgJiYgdGhpcy5yaWdodC5oYXNGdW5jdGlvbigpKVxuICAgICk7XG4gIH1cbiAgcHVibGljIGhhc0FzeW5jRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICghIXRoaXMubGVmdCAmJiB0aGlzLmxlZnQuaGFzQXN5bmNGdW5jdGlvbigpKSB8fFxuICAgICAgKCEhdGhpcy5yaWdodCAmJiB0aGlzLnJpZ2h0Lmhhc0FzeW5jRnVuY3Rpb24oKSlcbiAgICApO1xuICB9XG4gIHB1YmxpYyBhZGRUb0FzeW5jTGlzdChsaXN0OiBBcnJheTxGdW5jdGlvbk9wZXJhbmQ+KSB7XG4gICAgaWYgKCEhdGhpcy5sZWZ0KSB0aGlzLmxlZnQuYWRkVG9Bc3luY0xpc3QobGlzdCk7XG4gICAgaWYgKCEhdGhpcy5yaWdodCkgdGhpcy5yaWdodC5hZGRUb0FzeW5jTGlzdChsaXN0KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5hcnlPcGVyYW5kIGV4dGVuZHMgT3BlcmFuZCB7XG4gIHByaXZhdGUgY29uc3VtZXI6IEZ1bmN0aW9uO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV4cHJlc3Npb246IE9wZXJhbmQsIHByaXZhdGUgb3BlcmF0b3JOYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29uc3VtZXIgPSBPcGVyYW5kTWFrZXIudW5hcnlGdW5jdGlvbnNbb3BlcmF0b3JOYW1lXTtcbiAgICBpZiAodGhpcy5jb25zdW1lciA9PSBudWxsKSB7XG4gICAgICBPcGVyYW5kTWFrZXIudGhyb3dJbnZhbGlkT3BlcmF0b3JFcnJvcihvcGVyYXRvck5hbWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInVuYXJ5XCI7XG4gIH1cbiAgcHVibGljIHRvU3RyaW5nKGZ1bmM6IChvcDogT3BlcmFuZCkgPT4gc3RyaW5nID0gdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoISFmdW5jKSB7XG4gICAgICB2YXIgcmVzID0gZnVuYyh0aGlzKTtcbiAgICAgIGlmICghIXJlcykgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIE9wZXJhbmRNYWtlci5vcGVyYXRvclRvU3RyaW5nKHRoaXMub3BlcmF0b3JOYW1lKSArXG4gICAgICBcIiBcIiArXG4gICAgICB0aGlzLmV4cHJlc3Npb24udG9TdHJpbmcoZnVuYylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGV2YWx1YXRlKHByb2Nlc3NWYWx1ZT86IFByb2Nlc3NWYWx1ZSk6IGJvb2xlYW4ge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZShwcm9jZXNzVmFsdWUpO1xuICAgIHJldHVybiB0aGlzLmNvbnN1bWVyLmNhbGwodGhpcywgdmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNldFZhcmlhYmxlcyh2YXJpYWJsZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICB0aGlzLmV4cHJlc3Npb24uc2V0VmFyaWFibGVzKHZhcmlhYmxlcyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFycmF5T3BlcmFuZCBleHRlbmRzIE9wZXJhbmQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbHVlczogQXJyYXk8T3BlcmFuZD4pIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiYXJyYXlcIjtcbiAgfVxuICBwdWJsaWMgdG9TdHJpbmcoZnVuYzogKG9wOiBPcGVyYW5kKSA9PiBzdHJpbmcgPSB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghIWZ1bmMpIHtcbiAgICAgIHZhciByZXMgPSBmdW5jKHRoaXMpO1xuICAgICAgaWYgKCEhcmVzKSByZXR1cm4gcmVzO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgXCJbXCIgK1xuICAgICAgdGhpcy52YWx1ZXNcbiAgICAgICAgLm1hcChmdW5jdGlvbihlbDogT3BlcmFuZCkge1xuICAgICAgICAgIHJldHVybiBlbC50b1N0cmluZyhmdW5jKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oXCIsIFwiKSArXG4gICAgICBcIl1cIlxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZXZhbHVhdGUocHJvY2Vzc1ZhbHVlPzogUHJvY2Vzc1ZhbHVlKTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLm1hcChmdW5jdGlvbihlbDogT3BlcmFuZCkge1xuICAgICAgcmV0dXJuIGVsLmV2YWx1YXRlKHByb2Nlc3NWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0VmFyaWFibGVzKHZhcmlhYmxlczogQXJyYXk8c3RyaW5nPikge1xuICAgIHRoaXMudmFsdWVzLmZvckVhY2goZWwgPT4ge1xuICAgICAgZWwuc2V0VmFyaWFibGVzKHZhcmlhYmxlcyk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaGFzRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLnNvbWUob3BlcmFuZCA9PiBvcGVyYW5kLmhhc0Z1bmN0aW9uKCkpO1xuICB9XG4gIHB1YmxpYyBoYXNBc3luY0Z1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5zb21lKG9wZXJhbmQgPT4gb3BlcmFuZC5oYXNBc3luY0Z1bmN0aW9uKCkpO1xuICB9XG4gIHB1YmxpYyBhZGRUb0FzeW5jTGlzdChsaXN0OiBBcnJheTxGdW5jdGlvbk9wZXJhbmQ+KSB7XG4gICAgdGhpcy52YWx1ZXMuZm9yRWFjaChvcGVyYW5kID0+IG9wZXJhbmQuYWRkVG9Bc3luY0xpc3QobGlzdCkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb25zdCBleHRlbmRzIE9wZXJhbmQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbHVlOiBhbnkpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiY29uc3RcIjtcbiAgfVxuICBwdWJsaWMgdG9TdHJpbmcoZnVuYzogKG9wOiBPcGVyYW5kKSA9PiBzdHJpbmcgPSB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghIWZ1bmMpIHtcbiAgICAgIHZhciByZXMgPSBmdW5jKHRoaXMpO1xuICAgICAgaWYgKCEhcmVzKSByZXR1cm4gcmVzO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy52YWx1ZS50b1N0cmluZygpO1xuICB9XG4gIHB1YmxpYyBnZXQgY29ycmVjdFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29ycmVjdFZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGV2YWx1YXRlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29ycmVjdFZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNldFZhcmlhYmxlcyh2YXJpYWJsZXM6IEFycmF5PHN0cmluZz4pIHt9XG4gIHByb3RlY3RlZCBnZXRDb3JyZWN0VmFsdWUodmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT0gXCJzdHJpbmdcIikgcmV0dXJuIHZhbHVlO1xuICAgIGlmICh0aGlzLmlzQm9vbGVhblZhbHVlKHZhbHVlKSkgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiO1xuICAgIGlmIChPcGVyYW5kTWFrZXIuaXNOdW1lcmljKHZhbHVlKSkge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoXCIweFwiKSA9PSAwKSByZXR1cm4gcGFyc2VJbnQodmFsdWUpO1xuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBpc0Jvb2xlYW5WYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHZhbHVlICYmXG4gICAgICAodmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIgfHwgdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJmYWxzZVwiKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZhcmlhYmxlIGV4dGVuZHMgQ29uc3Qge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhcmlhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIodmFyaWFibGVOYW1lKTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInZhcmlhYmxlXCI7XG4gIH1cbiAgcHVibGljIHRvU3RyaW5nKGZ1bmM6IChvcDogT3BlcmFuZCkgPT4gc3RyaW5nID0gdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoISFmdW5jKSB7XG4gICAgICB2YXIgcmVzID0gZnVuYyh0aGlzKTtcbiAgICAgIGlmICghIXJlcykgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV0dXJuIFwie1wiICsgdGhpcy52YXJpYWJsZU5hbWUgKyBcIn1cIjtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBldmFsdWF0ZShwcm9jZXNzVmFsdWU/OiBQcm9jZXNzVmFsdWUpOiBhbnkge1xuICAgIHJldHVybiBwcm9jZXNzVmFsdWUuaGFzVmFsdWUodGhpcy52YXJpYWJsZU5hbWUpXG4gICAgICA/IHRoaXMuZ2V0Q29ycmVjdFZhbHVlKHByb2Nlc3NWYWx1ZS5nZXRWYWx1ZSh0aGlzLnZhcmlhYmxlTmFtZSkpXG4gICAgICA6IG51bGw7XG4gIH1cbiAgcHVibGljIHNldFZhcmlhYmxlcyh2YXJpYWJsZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICB2YXJpYWJsZXMucHVzaCh0aGlzLnZhcmlhYmxlTmFtZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uT3BlcmFuZCBleHRlbmRzIE9wZXJhbmQge1xuICBwcml2YXRlIGlzUmVhZHlWYWx1ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBhc3luUmVzdWx0OiBhbnk7XG4gIHB1YmxpYyBvbkFzeW5jUmVhZHk6ICgpID0+IHZvaWQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3JpZ2lvbmFsVmFsdWU6IHN0cmluZyxcbiAgICBwcml2YXRlIHBhcmFtZXRlcnM6IEFycmF5T3BlcmFuZFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaXNSZWFkeVZhbHVlID0gZmFsc2U7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGFyYW1ldGVycykgJiYgcGFyYW1ldGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucGFyYW1ldGVycyA9IG5ldyBBcnJheU9wZXJhbmQoW10pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImZ1bmN0aW9uXCI7XG4gIH1cbiAgcHVibGljIGV2YWx1YXRlQXN5bmMocHJvY2Vzc1ZhbHVlOiBQcm9jZXNzVmFsdWUpIHtcbiAgICB0aGlzLmlzUmVhZHlWYWx1ZSA9IGZhbHNlO1xuICAgIHZhciBhc3luY1Byb2Nlc3NWYWx1ZSA9IG5ldyBQcm9jZXNzVmFsdWUoKTtcbiAgICBhc3luY1Byb2Nlc3NWYWx1ZS52YWx1ZXMgPSBIZWxwZXJzLmNyZWF0ZUNvcHkocHJvY2Vzc1ZhbHVlLnZhbHVlcyk7XG4gICAgYXN5bmNQcm9jZXNzVmFsdWUucHJvcGVydGllcyA9IEhlbHBlcnMuY3JlYXRlQ29weShwcm9jZXNzVmFsdWUucHJvcGVydGllcyk7XG4gICAgYXN5bmNQcm9jZXNzVmFsdWUucHJvcGVydGllcy5yZXR1cm5SZXN1bHQgPSAocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYXN5blJlc3VsdCA9IHJlc3VsdDtcbiAgICAgIHRoaXMuaXNSZWFkeVZhbHVlID0gdHJ1ZTtcbiAgICAgIHRoaXMub25Bc3luY1JlYWR5KCk7XG4gICAgfTtcbiAgICB0aGlzLmV2YWx1YXRlQ29yZShhc3luY1Byb2Nlc3NWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGV2YWx1YXRlKHByb2Nlc3NWYWx1ZT86IFByb2Nlc3NWYWx1ZSk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNSZWFkeSkgcmV0dXJuIHRoaXMuYXN5blJlc3VsdDtcbiAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZUNvcmUocHJvY2Vzc1ZhbHVlKTtcbiAgfVxuICBwcml2YXRlIGV2YWx1YXRlQ29yZShwcm9jZXNzVmFsdWU/OiBQcm9jZXNzVmFsdWUpOiBhbnkge1xuICAgIHJldHVybiBGdW5jdGlvbkZhY3RvcnkuSW5zdGFuY2UucnVuKFxuICAgICAgdGhpcy5vcmlnaW9uYWxWYWx1ZSxcbiAgICAgIHRoaXMucGFyYW1ldGVycy5ldmFsdWF0ZShwcm9jZXNzVmFsdWUpLFxuICAgICAgcHJvY2Vzc1ZhbHVlLnByb3BlcnRpZXNcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKGZ1bmM6IChvcDogT3BlcmFuZCkgPT4gc3RyaW5nID0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCEhZnVuYykge1xuICAgICAgdmFyIHJlcyA9IGZ1bmModGhpcyk7XG4gICAgICBpZiAoISFyZXMpIHJldHVybiByZXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9yaWdpb25hbFZhbHVlICsgXCIoXCIgKyB0aGlzLnBhcmFtZXRlcnMudG9TdHJpbmcoZnVuYykgKyBcIilcIjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYXJpYWJsZXModmFyaWFibGVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5wYXJhbWV0ZXJzLnNldFZhcmlhYmxlcyh2YXJpYWJsZXMpO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNSZWFkeSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1JlYWR5VmFsdWU7XG4gIH1cbiAgcHVibGljIGhhc0Z1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHB1YmxpYyBoYXNBc3luY0Z1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBGdW5jdGlvbkZhY3RvcnkuSW5zdGFuY2UuaXNBc3luY0Z1bmN0aW9uKHRoaXMub3JpZ2lvbmFsVmFsdWUpO1xuICB9XG4gIHB1YmxpYyBhZGRUb0FzeW5jTGlzdChsaXN0OiBBcnJheTxGdW5jdGlvbk9wZXJhbmQ+KSB7XG4gICAgaWYgKHRoaXMuaGFzQXN5bmNGdW5jdGlvbigpKSB7XG4gICAgICBsaXN0LnB1c2godGhpcyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVyYW5kTWFrZXIge1xuICBzdGF0aWMgdGhyb3dJbnZhbGlkT3BlcmF0b3JFcnJvcihvcDogc3RyaW5nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBvcGVyYXRvcjogJ1wiICsgb3AgKyBcIidcIik7XG4gIH1cblxuICBzdGF0aWMgc2FmZVRvU3RyaW5nKG9wZXJhbmQ6IE9wZXJhbmQsIGZ1bmM6IChvcDogT3BlcmFuZCkgPT4gc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gb3BlcmFuZCA9PSBudWxsID8gXCJcIiA6IG9wZXJhbmQudG9TdHJpbmcoZnVuYyk7XG4gIH1cblxuICBzdGF0aWMgdG9PcGVyYW5kU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgICEhdmFsdWUgJiZcbiAgICAgICFPcGVyYW5kTWFrZXIuaXNOdW1lcmljKHZhbHVlKSAmJlxuICAgICAgIU9wZXJhbmRNYWtlci5pc0Jvb2xlYW5WYWx1ZSh2YWx1ZSlcbiAgICApXG4gICAgICB2YWx1ZSA9IFwiJ1wiICsgdmFsdWUgKyBcIidcIjtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgaXNTcGFjZVN0cmluZyhzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXN0ciAmJiAhc3RyLnJlcGxhY2UoXCIgXCIsIFwiXCIpO1xuICB9XG5cbiAgc3RhdGljIGlzTnVtZXJpYyh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgISF2YWx1ZSAmJlxuICAgICAgKHZhbHVlLmluZGV4T2YoXCItXCIpID4gLTEgfHxcbiAgICAgICAgdmFsdWUuaW5kZXhPZihcIitcIikgPiAxIHx8XG4gICAgICAgIHZhbHVlLmluZGV4T2YoXCIqXCIpID4gLTEgfHxcbiAgICAgICAgdmFsdWUuaW5kZXhPZihcIl5cIikgPiAtMSB8fFxuICAgICAgICB2YWx1ZS5pbmRleE9mKFwiL1wiKSA+IC0xIHx8XG4gICAgICAgIHZhbHVlLmluZGV4T2YoXCIlXCIpID4gLTEpXG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChPcGVyYW5kTWFrZXIuaXNTcGFjZVN0cmluZyh2YWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gSGVscGVycy5pc051bWJlcih2YWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgaXNCb29sZWFuVmFsdWUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXZhbHVlICYmXG4gICAgICAodmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIgfHwgdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJmYWxzZVwiKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgdW5hcnlGdW5jdGlvbnM6IEhhc2hUYWJsZTxGdW5jdGlvbj4gPSB7XG4gICAgZW1wdHk6IGZ1bmN0aW9uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBIZWxwZXJzLmlzVmFsdWVFbXB0eSh2YWx1ZSk7XG4gICAgfSxcbiAgICBub3RlbXB0eTogZnVuY3Rpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFPcGVyYW5kTWFrZXIudW5hcnlGdW5jdGlvbnMuZW1wdHkodmFsdWUpO1xuICAgIH0sXG4gICAgbmVnYXRlOiBmdW5jdGlvbih2YWx1ZTogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICF2YWx1ZTtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGJpbmFyeUZ1bmN0aW9uczogSGFzaFRhYmxlPEZ1bmN0aW9uPiA9IHtcbiAgICBhcml0aG1ldGljT3Aob3BlcmF0b3JOYW1lOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihhOiBhbnksIGI6IGFueSk6IGFueSB7XG4gICAgICAgIGlmIChIZWxwZXJzLmlzVmFsdWVFbXB0eShhKSAmJiAhT3BlcmFuZE1ha2VyLmlzU3BhY2VTdHJpbmcoYSkpIGEgPSAwO1xuICAgICAgICBpZiAoSGVscGVycy5pc1ZhbHVlRW1wdHkoYikgJiYgIU9wZXJhbmRNYWtlci5pc1NwYWNlU3RyaW5nKGIpKSBiID0gMDtcblxuICAgICAgICBsZXQgY29uc3VtZXIgPSBPcGVyYW5kTWFrZXIuYmluYXJ5RnVuY3Rpb25zW29wZXJhdG9yTmFtZV07XG4gICAgICAgIHJldHVybiBjb25zdW1lciA9PSBudWxsID8gbnVsbCA6IGNvbnN1bWVyLmNhbGwodGhpcywgYSwgYik7XG4gICAgICB9O1xuICAgIH0sXG4gICAgYW5kOiBmdW5jdGlvbihhOiBib29sZWFuLCBiOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gYSAmJiBiO1xuICAgIH0sXG4gICAgb3I6IGZ1bmN0aW9uKGE6IGJvb2xlYW4sIGI6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBhIHx8IGI7XG4gICAgfSxcbiAgICBwbHVzOiBmdW5jdGlvbihhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gICAgICByZXR1cm4gYSArIGI7XG4gICAgfSxcbiAgICBtaW51czogZnVuY3Rpb24oYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIGEgLSBiO1xuICAgIH0sXG4gICAgbXVsOiBmdW5jdGlvbihhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gICAgICByZXR1cm4gYSAqIGI7XG4gICAgfSxcbiAgICBkaXY6IGZ1bmN0aW9uKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgIGlmICghYikgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gYSAvIGI7XG4gICAgfSxcbiAgICBtb2Q6IGZ1bmN0aW9uKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgIGlmICghYikgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gYSAlIGI7XG4gICAgfSxcbiAgICBwb3dlcjogZnVuY3Rpb24oYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIE1hdGgucG93KGEsIGIpO1xuICAgIH0sXG4gICAgZ3JlYXRlcjogZnVuY3Rpb24obGVmdDogYW55LCByaWdodDogYW55KTogYm9vbGVhbiB7XG4gICAgICBpZiAobGVmdCA9PSBudWxsIHx8IHJpZ2h0ID09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiBsZWZ0ID4gcmlnaHQ7XG4gICAgfSxcbiAgICBsZXNzOiBmdW5jdGlvbihsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpOiBib29sZWFuIHtcbiAgICAgIGlmIChsZWZ0ID09IG51bGwgfHwgcmlnaHQgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIGxlZnQgPCByaWdodDtcbiAgICB9LFxuICAgIGdyZWF0ZXJvcmVxdWFsOiBmdW5jdGlvbihsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpOiBib29sZWFuIHtcbiAgICAgIGlmIChsZWZ0ID09IG51bGwgfHwgcmlnaHQgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIGxlZnQgPj0gcmlnaHQ7XG4gICAgfSxcbiAgICBsZXNzb3JlcXVhbDogZnVuY3Rpb24obGVmdDogYW55LCByaWdodDogYW55KTogYm9vbGVhbiB7XG4gICAgICBpZiAobGVmdCA9PSBudWxsIHx8IHJpZ2h0ID09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiBsZWZ0IDw9IHJpZ2h0O1xuICAgIH0sXG4gICAgZXF1YWw6IGZ1bmN0aW9uKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIEhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyhsZWZ0LCByaWdodCwgdHJ1ZSk7XG4gICAgfSxcbiAgICBub3RlcXVhbDogZnVuY3Rpb24obGVmdDogYW55LCByaWdodDogYW55KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIUhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyhsZWZ0LCByaWdodCwgdHJ1ZSk7XG4gICAgfSxcbiAgICBjb250YWluczogZnVuY3Rpb24obGVmdDogYW55LCByaWdodDogYW55KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gT3BlcmFuZE1ha2VyLmJpbmFyeUZ1bmN0aW9ucy5jb250YWluc0NvcmUobGVmdCwgcmlnaHQsIHRydWUpO1xuICAgIH0sXG4gICAgbm90Y29udGFpbnM6IGZ1bmN0aW9uKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgaWYgKCFsZWZ0ICYmICFIZWxwZXJzLmlzVmFsdWVFbXB0eShyaWdodCkpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIE9wZXJhbmRNYWtlci5iaW5hcnlGdW5jdGlvbnMuY29udGFpbnNDb3JlKGxlZnQsIHJpZ2h0LCBmYWxzZSk7XG4gICAgfSxcbiAgICBhbnlvZjogZnVuY3Rpb24obGVmdDogYW55LCByaWdodDogYW55KTogYm9vbGVhbiB7XG4gICAgICBpZiAoIWxlZnQgJiYgSGVscGVycy5pc1ZhbHVlRW1wdHkocmlnaHQpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmICghbGVmdCB8fCAoIUFycmF5LmlzQXJyYXkobGVmdCkgJiYgbGVmdC5sZW5ndGggPT09IDApKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoSGVscGVycy5pc1ZhbHVlRW1wdHkocmlnaHQpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShsZWZ0KSlcbiAgICAgICAgcmV0dXJuIE9wZXJhbmRNYWtlci5iaW5hcnlGdW5jdGlvbnMuY29udGFpbnMocmlnaHQsIGxlZnQpO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJpZ2h0KSlcbiAgICAgICAgcmV0dXJuIE9wZXJhbmRNYWtlci5iaW5hcnlGdW5jdGlvbnMuY29udGFpbnMobGVmdCwgcmlnaHQpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByaWdodC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoT3BlcmFuZE1ha2VyLmJpbmFyeUZ1bmN0aW9ucy5jb250YWlucyhsZWZ0LCByaWdodFtpXSkpIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG4gICAgYWxsb2Y6IGZ1bmN0aW9uKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgaWYgKCFsZWZ0ICYmICFIZWxwZXJzLmlzVmFsdWVFbXB0eShyaWdodCkpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyaWdodCkpXG4gICAgICAgIHJldHVybiBPcGVyYW5kTWFrZXIuYmluYXJ5RnVuY3Rpb25zLmNvbnRhaW5zKGxlZnQsIHJpZ2h0KTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmlnaHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFPcGVyYW5kTWFrZXIuYmluYXJ5RnVuY3Rpb25zLmNvbnRhaW5zKGxlZnQsIHJpZ2h0W2ldKSlcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIGNvbnRhaW5zQ29yZTogZnVuY3Rpb24obGVmdDogYW55LCByaWdodDogYW55LCBpc0NvbnRhaW5zOiBhbnkpOiBib29sZWFuIHtcbiAgICAgIGlmICghbGVmdCkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKCFsZWZ0Lmxlbmd0aCkge1xuICAgICAgICBsZWZ0ID0gbGVmdC50b1N0cmluZygpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsZWZ0ID09PSBcInN0cmluZ1wiIHx8IGxlZnQgaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgICAgaWYgKCFyaWdodCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByaWdodCA9IHJpZ2h0LnRvU3RyaW5nKCk7XG4gICAgICAgIHZhciBmb3VuZCA9IGxlZnQuaW5kZXhPZihyaWdodCkgPiAtMTtcbiAgICAgICAgcmV0dXJuIGlzQ29udGFpbnMgPyBmb3VuZCA6ICFmb3VuZDtcbiAgICAgIH1cbiAgICAgIHZhciByaWdodEFycmF5ID0gQXJyYXkuaXNBcnJheShyaWdodCkgPyByaWdodCA6IFtyaWdodF07XG4gICAgICBmb3IgKHZhciBySW5kZXggPSAwOyBySW5kZXggPCByaWdodEFycmF5Lmxlbmd0aDsgckluZGV4KyspIHtcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICByaWdodCA9IHJpZ2h0QXJyYXlbckluZGV4XTtcbiAgICAgICAgZm9yICg7IGkgPCBsZWZ0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKEhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyhsZWZ0W2ldLCByaWdodCkpIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpID09IGxlZnQubGVuZ3RoKSByZXR1cm4gIWlzQ29udGFpbnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNDb250YWlucztcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIG9wZXJhdG9yVG9TdHJpbmcob3BlcmF0b3JOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBvcFN0ciA9IE9wZXJhbmRNYWtlci5zaWduc1tvcGVyYXRvck5hbWVdO1xuICAgIHJldHVybiBvcFN0ciA9PSBudWxsID8gb3BlcmF0b3JOYW1lIDogb3BTdHI7XG4gIH1cblxuICBzdGF0aWMgc2lnbnM6IEhhc2hUYWJsZTxzdHJpbmc+ID0ge1xuICAgIGxlc3M6IFwiPFwiLFxuICAgIGxlc3NvcmVxdWFsOiBcIjw9XCIsXG4gICAgZ3JlYXRlcjogXCI+XCIsXG4gICAgZ3JlYXRlcm9yZXF1YWw6IFwiPj1cIixcbiAgICBlcXVhbDogXCI9PVwiLFxuICAgIG5vdGVxdWFsOiBcIiE9XCIsXG4gICAgcGx1czogXCIrXCIsXG4gICAgbWludXM6IFwiLVwiLFxuICAgIG11bDogXCIqXCIsXG4gICAgZGl2OiBcIi9cIixcbiAgICBhbmQ6IFwiYW5kXCIsXG4gICAgb3I6IFwib3JcIixcbiAgICBwb3dlcjogXCJeXCIsXG4gICAgbW9kOiBcIiVcIixcbiAgICBuZWdhdGU6IFwiIVwiXG4gIH07XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvZXhwcmVzc2lvbnMvZXhwcmVzc2lvbnMudHMiLCJpbXBvcnQgeyBIYXNoVGFibGUgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5cbmV4cG9ydCBjbGFzcyBGdW5jdGlvbkZhY3Rvcnkge1xuICBwdWJsaWMgc3RhdGljIEluc3RhbmNlOiBGdW5jdGlvbkZhY3RvcnkgPSBuZXcgRnVuY3Rpb25GYWN0b3J5KCk7XG4gIHByaXZhdGUgZnVuY3Rpb25IYXNoOiBIYXNoVGFibGU8KHBhcmFtczogYW55W10pID0+IGFueT4gPSB7fTtcbiAgcHJpdmF0ZSBpc0FzeW5jSGFzaDogSGFzaFRhYmxlPGJvb2xlYW4+ID0ge307XG5cbiAgcHVibGljIHJlZ2lzdGVyKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBmdW5jOiAocGFyYW1zOiBhbnlbXSkgPT4gYW55LFxuICAgIGlzQXN5bmM6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICB0aGlzLmZ1bmN0aW9uSGFzaFtuYW1lXSA9IGZ1bmM7XG4gICAgaWYgKGlzQXN5bmMpIHRoaXMuaXNBc3luY0hhc2hbbmFtZV0gPSB0cnVlO1xuICB9XG4gIHB1YmxpYyB1bnJlZ2lzdGVyKG5hbWU6IHN0cmluZykge1xuICAgIGRlbGV0ZSB0aGlzLmZ1bmN0aW9uSGFzaFtuYW1lXTtcbiAgICBkZWxldGUgdGhpcy5pc0FzeW5jSGFzaFtuYW1lXTtcbiAgfVxuICBwdWJsaWMgaGFzRnVuY3Rpb24obmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5mdW5jdGlvbkhhc2hbbmFtZV07XG4gIH1cbiAgcHVibGljIGlzQXN5bmNGdW5jdGlvbihuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmlzQXN5bmNIYXNoW25hbWVdO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuZnVuY3Rpb25IYXNoID0ge307XG4gIH1cbiAgcHVibGljIGdldEFsbCgpOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgZm9yICh2YXIga2V5IGluIHRoaXMuZnVuY3Rpb25IYXNoKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LnNvcnQoKTtcbiAgfVxuICBwdWJsaWMgcnVuKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwYXJhbXM6IGFueVtdLFxuICAgIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+ID0gbnVsbFxuICApOiBhbnkge1xuICAgIHZhciBmdW5jID0gdGhpcy5mdW5jdGlvbkhhc2hbbmFtZV07XG4gICAgaWYgKCFmdW5jKSByZXR1cm4gbnVsbDtcbiAgICBsZXQgY2xhc3NSdW5uZXIgPSB7XG4gICAgICBmdW5jOiBmdW5jXG4gICAgfTtcblxuICAgIGlmIChwcm9wZXJ0aWVzKSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcGVydGllcykge1xuICAgICAgICAoPGFueT5jbGFzc1J1bm5lcilba2V5XSA9IHByb3BlcnRpZXNba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzUnVubmVyLmZ1bmMocGFyYW1zKTtcbiAgfVxufVxuXG5leHBvcnQgdmFyIHJlZ2lzdGVyRnVuY3Rpb24gPSBGdW5jdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXI7XG5cbmZ1bmN0aW9uIGdldFBhcmFtc0FzQXJyYXkodmFsdWU6IGFueSwgYXJyOiBhbnlbXSkge1xuICBpZiAoIXZhbHVlKSByZXR1cm47XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGdldFBhcmFtc0FzQXJyYXkodmFsdWVbaV0sIGFycik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGFyci5wdXNoKHZhbHVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdW0ocGFyYW1zOiBhbnlbXSk6IGFueSB7XG4gIHZhciBhcnI6IGFueVtdID0gW107XG4gIGdldFBhcmFtc0FzQXJyYXkocGFyYW1zLCBhcnIpO1xuICB2YXIgcmVzID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICByZXMgKz0gYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5GdW5jdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXIoXCJzdW1cIiwgc3VtKTtcblxuZnVuY3Rpb24gY291bnQocGFyYW1zOiBhbnlbXSk6IGFueSB7XG4gIHZhciBhcnI6IGFueVtdID0gW107XG4gIGdldFBhcmFtc0FzQXJyYXkocGFyYW1zLCBhcnIpO1xuICByZXR1cm4gYXJyLmxlbmd0aDtcbn1cbkZ1bmN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlcihcImNvdW50XCIsIGNvdW50KTtcblxuZnVuY3Rpb24gYXZnKHBhcmFtczogYW55W10pOiBhbnkge1xuICB2YXIgYXJyOiBhbnlbXSA9IFtdO1xuICBnZXRQYXJhbXNBc0FycmF5KHBhcmFtcywgYXJyKTtcbiAgdmFyIHJlcyA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgcmVzICs9IGFycltpXTtcbiAgfVxuICByZXR1cm4gYXJyLmxlbmd0aCA+IDAgPyByZXMgLyBhcnIubGVuZ3RoIDogMDtcbn1cbkZ1bmN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlcihcImF2Z1wiLCBhdmcpO1xuXG5mdW5jdGlvbiBnZXRJbkFycmF5UGFyYW1zKHBhcmFtczogYW55W10pOiBhbnkge1xuICBpZiAocGFyYW1zLmxlbmd0aCAhPSAyKSByZXR1cm4gbnVsbDtcbiAgdmFyIGFyciA9IHBhcmFtc1swXTtcbiAgaWYgKCFhcnIpIHJldHVybiBudWxsO1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyKSAmJiAhQXJyYXkuaXNBcnJheShPYmplY3Qua2V5cyhhcnIpKSkgcmV0dXJuIG51bGw7XG4gIHZhciBuYW1lID0gcGFyYW1zWzFdO1xuICBpZiAodHlwZW9mIG5hbWUgIT09IFwic3RyaW5nXCIgJiYgIShuYW1lIGluc3RhbmNlb2YgU3RyaW5nKSkgcmV0dXJuIG51bGw7XG4gIHJldHVybiB7IGRhdGE6IGFyciwgbmFtZTogbmFtZSB9O1xufVxuXG5mdW5jdGlvbiBjYWxjSW5BcnJheShcbiAgcGFyYW1zOiBhbnlbXSxcbiAgZnVuYzogKHJlczogbnVtYmVyLCB2YWw6IG51bWJlcikgPT4gbnVtYmVyXG4pOiBhbnkge1xuICB2YXIgdiA9IGdldEluQXJyYXlQYXJhbXMocGFyYW1zKTtcbiAgaWYgKCF2KSByZXR1cm4gdW5kZWZpbmVkO1xuICB2YXIgcmVzID0gdW5kZWZpbmVkO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2LmRhdGEpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2LmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gdi5kYXRhW2ldO1xuICAgICAgaWYgKCEhaXRlbSAmJiBpdGVtWzxzdHJpbmc+di5uYW1lXSkge1xuICAgICAgICByZXMgPSBmdW5jKHJlcywgaXRlbVs8c3RyaW5nPnYubmFtZV0pO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gdi5kYXRhKSB7XG4gICAgICB2YXIgaXRlbSA9IHYuZGF0YVtrZXldO1xuICAgICAgaWYgKCEhaXRlbSAmJiBpdGVtWzxzdHJpbmc+di5uYW1lXSkge1xuICAgICAgICByZXMgPSBmdW5jKHJlcywgaXRlbVs8c3RyaW5nPnYubmFtZV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG5mdW5jdGlvbiBzdW1JbkFycmF5KHBhcmFtczogYW55W10pOiBhbnkge1xuICB2YXIgcmVzID0gY2FsY0luQXJyYXkocGFyYW1zLCBmdW5jdGlvbihyZXM6IG51bWJlciwgdmFsOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChyZXMgPT0gdW5kZWZpbmVkKSByZXMgPSAwO1xuICAgIHJldHVybiArcmVzICsgK3ZhbDtcbiAgfSk7XG4gIHJldHVybiByZXMgIT09IHVuZGVmaW5lZCA/IHJlcyA6IDA7XG59XG5GdW5jdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXIoXCJzdW1JbkFycmF5XCIsIHN1bUluQXJyYXkpO1xuXG5mdW5jdGlvbiBtaW5JbkFycmF5KHBhcmFtczogYW55W10pOiBhbnkge1xuICByZXR1cm4gY2FsY0luQXJyYXkocGFyYW1zLCBmdW5jdGlvbihyZXM6IG51bWJlciwgdmFsOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChyZXMgPT0gdW5kZWZpbmVkKSByZXR1cm4gdmFsO1xuICAgIHJldHVybiByZXMgPCB2YWwgPyByZXMgOiB2YWw7XG4gIH0pO1xufVxuRnVuY3Rpb25GYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyKFwibWluSW5BcnJheVwiLCBtaW5JbkFycmF5KTtcblxuZnVuY3Rpb24gbWF4SW5BcnJheShwYXJhbXM6IGFueVtdKTogYW55IHtcbiAgcmV0dXJuIGNhbGNJbkFycmF5KHBhcmFtcywgZnVuY3Rpb24ocmVzOiBudW1iZXIsIHZhbDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAocmVzID09IHVuZGVmaW5lZCkgcmV0dXJuIHZhbDtcbiAgICByZXR1cm4gcmVzID4gdmFsID8gcmVzIDogdmFsO1xuICB9KTtcbn1cbkZ1bmN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlcihcIm1heEluQXJyYXlcIiwgbWF4SW5BcnJheSk7XG5cbmZ1bmN0aW9uIGNvdW50SW5BcnJheShwYXJhbXM6IGFueVtdKTogYW55IHtcbiAgdmFyIHJlcyA9IGNhbGNJbkFycmF5KHBhcmFtcywgZnVuY3Rpb24ocmVzOiBudW1iZXIsIHZhbDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAocmVzID09IHVuZGVmaW5lZCkgcmVzID0gMDtcbiAgICByZXR1cm4gcmVzICsgMTtcbiAgfSk7XG4gIHJldHVybiByZXMgIT09IHVuZGVmaW5lZCA/IHJlcyA6IDA7XG59XG5GdW5jdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXIoXCJjb3VudEluQXJyYXlcIiwgY291bnRJbkFycmF5KTtcblxuZnVuY3Rpb24gYXZnSW5BcnJheShwYXJhbXM6IGFueVtdKTogYW55IHtcbiAgdmFyIGNvdW50ID0gY291bnRJbkFycmF5KHBhcmFtcyk7XG4gIGlmIChjb3VudCA9PSAwKSByZXR1cm4gMDtcbiAgcmV0dXJuIHN1bUluQXJyYXkocGFyYW1zKSAvIGNvdW50O1xufVxuRnVuY3Rpb25GYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyKFwiYXZnSW5BcnJheVwiLCBhdmdJbkFycmF5KTtcblxuZnVuY3Rpb24gaWlmKHBhcmFtczogYW55W10pOiBhbnkge1xuICBpZiAoIXBhcmFtcyAmJiBwYXJhbXMubGVuZ3RoICE9PSAzKSByZXR1cm4gXCJcIjtcbiAgcmV0dXJuIHBhcmFtc1swXSA/IHBhcmFtc1sxXSA6IHBhcmFtc1syXTtcbn1cbkZ1bmN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlcihcImlpZlwiLCBpaWYpO1xuXG5mdW5jdGlvbiBnZXREYXRlKHBhcmFtczogYW55W10pOiBhbnkge1xuICBpZiAoIXBhcmFtcyAmJiBwYXJhbXMubGVuZ3RoIDwgMSkgcmV0dXJuIG51bGw7XG4gIGlmICghcGFyYW1zWzBdKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIG5ldyBEYXRlKHBhcmFtc1swXSk7XG59XG5GdW5jdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXIoXCJnZXREYXRlXCIsIGdldERhdGUpO1xuXG5mdW5jdGlvbiBhZ2UocGFyYW1zOiBhbnlbXSk6IGFueSB7XG4gIGlmICghcGFyYW1zICYmIHBhcmFtcy5sZW5ndGggPCAxKSByZXR1cm4gbnVsbDtcbiAgaWYgKCFwYXJhbXNbMF0pIHJldHVybiBudWxsO1xuICB2YXIgYmlydGhEYXkgPSBuZXcgRGF0ZShwYXJhbXNbMF0pO1xuICB2YXIgYWdlRGlmTXMgPSBEYXRlLm5vdygpIC0gYmlydGhEYXkuZ2V0VGltZSgpO1xuICB2YXIgYWdlRGF0ZSA9IG5ldyBEYXRlKGFnZURpZk1zKTsgLy8gbWlsaXNlY29uZHMgZnJvbSBlcG9jaFxuICByZXR1cm4gTWF0aC5hYnMoYWdlRGF0ZS5nZXRVVENGdWxsWWVhcigpIC0gMTk3MCk7XG59XG5GdW5jdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXIoXCJhZ2VcIiwgYWdlKTtcblxuZnVuY3Rpb24gaXNDb250YWluZXJSZWFkeShwYXJhbXM6IGFueVtdKTogYW55IHtcbiAgaWYgKCFwYXJhbXMgJiYgcGFyYW1zLmxlbmd0aCA8IDEpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFwYXJhbXNbMF0gfHwgIXRoaXMuc3VydmV5KSByZXR1cm4gZmFsc2U7XG4gIHZhciBuYW1lID0gcGFyYW1zWzBdO1xuICB2YXIgY29udGFpbmVyID0gdGhpcy5zdXJ2ZXkuZ2V0UGFnZUJ5TmFtZShuYW1lKTtcbiAgaWYgKCFjb250YWluZXIpIGNvbnRhaW5lciA9IHRoaXMuc3VydmV5LmdldFBhbmVsQnlOYW1lKG5hbWUpO1xuICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuIGZhbHNlO1xuICB2YXIgcXVlc3Rpb25zID0gY29udGFpbmVyLnF1ZXN0aW9ucztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocXVlc3Rpb25zW2ldLmhhc0Vycm9ycyhmYWxzZSkpIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbkZ1bmN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlcihcImlzQ29udGFpbmVyUmVhZHlcIiwgaXNDb250YWluZXJSZWFkeSk7XG5cbmZ1bmN0aW9uIGlzRGlzcGxheU1vZGUoKSB7XG4gIHJldHVybiB0aGlzLnN1cnZleSAmJiB0aGlzLnN1cnZleS5pc0Rpc3BsYXlNb2RlO1xufVxuRnVuY3Rpb25GYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyKFwiaXNEaXNwbGF5TW9kZVwiLCBpc0Rpc3BsYXlNb2RlKTtcblxuZnVuY3Rpb24gY3VycmVudERhdGUoKSB7XG4gIHJldHVybiBuZXcgRGF0ZSgpO1xufVxuRnVuY3Rpb25GYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyKFwiY3VycmVudERhdGVcIiwgY3VycmVudERhdGUpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2Z1bmN0aW9uc2ZhY3RvcnkudHMiLCJpbXBvcnQge1xuICBKc29uT2JqZWN0LFxuICBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbixcbiAgSnNvbk9iamVjdFByb3BlcnR5LFxuICBTZXJpYWxpemVyXG59IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IFF1ZXN0aW9uTWF0cml4QmFzZU1vZGVsIH0gZnJvbSBcIi4vbWFydGl4QmFzZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgSGFzaFRhYmxlLCBIZWxwZXJzIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHtcbiAgQmFzZSxcbiAgSVF1ZXN0aW9uLFxuICBJU3VydmV5RGF0YSxcbiAgSVN1cnZleSxcbiAgSVN1cnZleUltcGwsXG4gIElUZXh0UHJvY2Vzc29yLFxuICBTdXJ2ZXlFcnJvclxufSBmcm9tIFwiLi9iYXNlXCI7XG5pbXBvcnQgeyBUZXh0UHJlUHJvY2Vzc29yLCBUZXh0UHJlUHJvY2Vzc29yVmFsdWUgfSBmcm9tIFwiLi90ZXh0UHJlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyBQcm9jZXNzVmFsdWUgfSBmcm9tIFwiLi9jb25kaXRpb25Qcm9jZXNzVmFsdWVcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vc3VydmV5U3RyaW5nc1wiO1xuaW1wb3J0IHsgUXVlc3Rpb25TZWxlY3RCYXNlIH0gZnJvbSBcIi4vcXVlc3Rpb25fYmFzZXNlbGVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBJTG9jYWxpemFibGVPd25lciwgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuaW1wb3J0IHsgU3VydmV5VmFsaWRhdG9yIH0gZnJvbSBcIi4vdmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBnZXRDdXJyZWN5Q29kZXMgfSBmcm9tIFwiLi9xdWVzdGlvbl9leHByZXNzaW9uXCI7XG5pbXBvcnQgeyBGdW5jdGlvbkZhY3RvcnkgfSBmcm9tIFwiLi9mdW5jdGlvbnNmYWN0b3J5XCI7XG5pbXBvcnQgeyBzZXR0aW5ncyB9IGZyb20gXCIuL3NldHRpbmdzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hdHJpeERyb3Bkb3duRGF0YSB7XG4gIHZhbHVlOiBhbnk7XG4gIG9uUm93Q2hhbmdlZChcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgICBuZXdSb3dWYWx1ZTogYW55LFxuICAgIGlzRGVsZXRpbmdWYWx1ZTogYm9vbGVhblxuICApOiB2b2lkO1xuICBvblJvd0NoYW5naW5nKFxuICAgIHJvdzogTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UsXG4gICAgY29sdW1uTmFtZTogc3RyaW5nLFxuICAgIHJvd1ZhbHVlOiBhbnlcbiAgKTogYW55O1xuICBnZXRSb3dJbmRleChyb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlKTogbnVtYmVyO1xuICB2YWxpZGF0ZUNlbGwoXG4gICAgcm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSxcbiAgICBjb2x1bW5OYW1lOiBzdHJpbmcsXG4gICAgcm93VmFsdWU6IGFueVxuICApOiBTdXJ2ZXlFcnJvcjtcbiAgY29sdW1uczogQXJyYXk8TWF0cml4RHJvcGRvd25Db2x1bW4+O1xuICBjcmVhdGVRdWVzdGlvbihcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIGNvbHVtbjogTWF0cml4RHJvcGRvd25Db2x1bW5cbiAgKTogUXVlc3Rpb247XG4gIGdldExvY2FsZSgpOiBzdHJpbmc7XG4gIGdldE1hcmtkb3duSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmc7XG4gIGdldFByb2Nlc3NlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xuICBnZXRTaGFyZWRRdWVzdGlvbkJ5TmFtZShcbiAgICBjb2x1bW5OYW1lOiBzdHJpbmcsXG4gICAgcm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZVxuICApOiBRdWVzdGlvbjtcbiAgb25Ub3RhbFZhbHVlQ2hhbmdlZCgpOiBhbnk7XG4gIGdldFN1cnZleSgpOiBJU3VydmV5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXRyaXhDb2x1bW5Pd25lciBleHRlbmRzIElMb2NhbGl6YWJsZU93bmVyIHtcbiAgZ2V0UmVxdWlyZWRUZXh0KCk6IHN0cmluZztcbiAgb25Db2x1bW5Qcm9wZXJ0aWVzQ2hhbmdlZChjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uKTogdm9pZDtcbiAgZ2V0Q2VsbFR5cGUoKTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBvblVwZGF0ZVNlbGVjdEJhc2VDZWxsUXVlc3Rpb24oXG4gIGNlbGxRdWVzdGlvbjogUXVlc3Rpb25TZWxlY3RCYXNlLFxuICBjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uLFxuICBxdWVzdGlvbjogUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsQmFzZSxcbiAgZGF0YTogYW55XG4pIHtcbiAgaWYgKGNlbGxRdWVzdGlvbi5oYXNPdGhlcikge1xuICAgIGNlbGxRdWVzdGlvbi5zdG9yZU90aGVyc0FzQ29tbWVudCA9IGZhbHNlO1xuICB9XG4gIGlmIChcbiAgICAoIWNlbGxRdWVzdGlvbi5jaG9pY2VzIHx8IGNlbGxRdWVzdGlvbi5jaG9pY2VzLmxlbmd0aCA9PSAwKSAmJlxuICAgIGNlbGxRdWVzdGlvbi5jaG9pY2VzQnlVcmwuaXNFbXB0eVxuICApIHtcbiAgICBjZWxsUXVlc3Rpb24uY2hvaWNlcyA9IHF1ZXN0aW9uLmNob2ljZXM7XG4gIH1cbiAgaWYgKCFjZWxsUXVlc3Rpb24uY2hvaWNlc0J5VXJsLmlzRW1wdHkpIHtcbiAgICBjZWxsUXVlc3Rpb24uY2hvaWNlc0J5VXJsLnJ1bihkYXRhKTtcbiAgfVxufVxuZXhwb3J0IHZhciBtYXRyaXhEcm9wZG93bkNvbHVtblR5cGVzID0ge1xuICBkcm9wZG93bjoge1xuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIFwiY2hvaWNlc1wiLFxuICAgICAgXCJjaG9pY2VzT3JkZXJcIixcbiAgICAgIFwiY2hvaWNlc0J5VXJsXCIsXG4gICAgICBcIm9wdGlvbnNDYXB0aW9uXCIsXG4gICAgICBcIm90aGVyVGV4dFwiLFxuICAgICAgXCJjaG9pY2VzVmlzaWJsZUlmXCJcbiAgICBdLFxuICAgIG9uQ2VsbFF1ZXN0aW9uVXBkYXRlOiAoXG4gICAgICBjZWxsUXVlc3Rpb246IGFueSxcbiAgICAgIGNvbHVtbjogYW55LFxuICAgICAgcXVlc3Rpb246IGFueSxcbiAgICAgIGRhdGE6IGFueVxuICAgICkgPT4ge1xuICAgICAgb25VcGRhdGVTZWxlY3RCYXNlQ2VsbFF1ZXN0aW9uKGNlbGxRdWVzdGlvbiwgY29sdW1uLCBxdWVzdGlvbiwgZGF0YSk7XG4gICAgICBpZiAoXG4gICAgICAgIGNlbGxRdWVzdGlvbi5sb2NPcHRpb25zQ2FwdGlvbi5pc0VtcHR5ICYmXG4gICAgICAgICFxdWVzdGlvbi5sb2NPcHRpb25zQ2FwdGlvbi5pc0VtcHR5XG4gICAgICApIHtcbiAgICAgICAgY2VsbFF1ZXN0aW9uLm9wdGlvbnNDYXB0aW9uID0gcXVlc3Rpb24ub3B0aW9uc0NhcHRpb247XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBjaGVja2JveDoge1xuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIFwiY2hvaWNlc1wiLFxuICAgICAgXCJjaG9pY2VzT3JkZXJcIixcbiAgICAgIFwiY2hvaWNlc0J5VXJsXCIsXG4gICAgICBcIm90aGVyVGV4dFwiLFxuICAgICAgXCJjaG9pY2VzVmlzaWJsZUlmXCJcbiAgICBdLFxuICAgIG9uQ2VsbFF1ZXN0aW9uVXBkYXRlOiAoXG4gICAgICBjZWxsUXVlc3Rpb246IGFueSxcbiAgICAgIGNvbHVtbjogYW55LFxuICAgICAgcXVlc3Rpb246IGFueSxcbiAgICAgIGRhdGE6IGFueVxuICAgICkgPT4ge1xuICAgICAgb25VcGRhdGVTZWxlY3RCYXNlQ2VsbFF1ZXN0aW9uKGNlbGxRdWVzdGlvbiwgY29sdW1uLCBxdWVzdGlvbiwgZGF0YSk7XG4gICAgICBjZWxsUXVlc3Rpb24uY29sQ291bnQgPVxuICAgICAgICBjb2x1bW4uY29sQ291bnQgPiAtMSA/IGNvbHVtbi5jb2xDb3VudCA6IHF1ZXN0aW9uLmNvbHVtbkNvbENvdW50O1xuICAgIH1cbiAgfSxcbiAgcmFkaW9ncm91cDoge1xuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIFwiY2hvaWNlc1wiLFxuICAgICAgXCJjaG9pY2VzT3JkZXJcIixcbiAgICAgIFwiY2hvaWNlc0J5VXJsXCIsXG4gICAgICBcIm90aGVyVGV4dFwiLFxuICAgICAgXCJjaG9pY2VzVmlzaWJsZUlmXCJcbiAgICBdLFxuICAgIG9uQ2VsbFF1ZXN0aW9uVXBkYXRlOiAoXG4gICAgICBjZWxsUXVlc3Rpb246IGFueSxcbiAgICAgIGNvbHVtbjogYW55LFxuICAgICAgcXVlc3Rpb246IGFueSxcbiAgICAgIGRhdGE6IGFueVxuICAgICkgPT4ge1xuICAgICAgb25VcGRhdGVTZWxlY3RCYXNlQ2VsbFF1ZXN0aW9uKGNlbGxRdWVzdGlvbiwgY29sdW1uLCBxdWVzdGlvbiwgZGF0YSk7XG4gICAgICBjZWxsUXVlc3Rpb24uY29sQ291bnQgPVxuICAgICAgICBjb2x1bW4uY29sQ291bnQgPiAtMSA/IGNvbHVtbi5jb2xDb3VudCA6IHF1ZXN0aW9uLmNvbHVtbkNvbENvdW50O1xuICAgIH1cbiAgfSxcbiAgdGV4dDoge1xuICAgIHByb3BlcnRpZXM6IFtcInBsYWNlSG9sZGVyXCIsIFwiaW5wdXRUeXBlXCIsIFwibWF4TGVuZ3RoXCJdLFxuICAgIG9uQ2VsbFF1ZXN0aW9uVXBkYXRlOiAoXG4gICAgICBjZWxsUXVlc3Rpb246IGFueSxcbiAgICAgIGNvbHVtbjogYW55LFxuICAgICAgcXVlc3Rpb246IGFueSxcbiAgICAgIGRhdGE6IGFueVxuICAgICkgPT4ge31cbiAgfSxcbiAgY29tbWVudDoge1xuICAgIHByb3BlcnRpZXM6IFtcInBsYWNlSG9sZGVyXCIsIFwicm93c1wiLCBcIm1heExlbmd0aFwiXSxcbiAgICBvbkNlbGxRdWVzdGlvblVwZGF0ZTogKFxuICAgICAgY2VsbFF1ZXN0aW9uOiBhbnksXG4gICAgICBjb2x1bW46IGFueSxcbiAgICAgIHF1ZXN0aW9uOiBhbnksXG4gICAgICBkYXRhOiBhbnlcbiAgICApID0+IHt9XG4gIH0sXG4gIGJvb2xlYW46IHtcbiAgICBwcm9wZXJ0aWVzOiBbXCJkZWZhdWx0VmFsdWVcIl0sXG4gICAgb25DZWxsUXVlc3Rpb25VcGRhdGU6IChcbiAgICAgIGNlbGxRdWVzdGlvbjogYW55LFxuICAgICAgY29sdW1uOiBhbnksXG4gICAgICBxdWVzdGlvbjogYW55LFxuICAgICAgZGF0YTogYW55XG4gICAgKSA9PiB7XG4gICAgICBjZWxsUXVlc3Rpb24uc2hvd1RpdGxlID0gdHJ1ZTtcbiAgICB9XG4gIH0sXG4gIGV4cHJlc3Npb246IHtcbiAgICBwcm9wZXJ0aWVzOiBbXCJleHByZXNzaW9uXCIsIFwiZGlzcGxheVN0eWxlXCIsIFwiY3VycmVuY3lcIl0sXG4gICAgb25DZWxsUXVlc3Rpb25VcGRhdGU6IChcbiAgICAgIGNlbGxRdWVzdGlvbjogYW55LFxuICAgICAgY29sdW1uOiBhbnksXG4gICAgICBxdWVzdGlvbjogYW55LFxuICAgICAgZGF0YTogYW55XG4gICAgKSA9PiB7fVxuICB9LFxuICByYXRpbmc6IHtcbiAgICBwcm9wZXJ0aWVzOiBbIFwicmF0ZVZhbHVlc1wiIF1cbiAgfVxufTtcblxuZXhwb3J0IGNsYXNzIE1hdHJpeERyb3Bkb3duQ29sdW1uIGV4dGVuZHMgQmFzZSBpbXBsZW1lbnRzIElMb2NhbGl6YWJsZU93bmVyIHtcbiAgcHVibGljIHN0YXRpYyBnZXRDb2x1bW5UeXBlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIgcmVzID0gW107XG4gICAgZm9yICh2YXIga2V5IGluIG1hdHJpeERyb3Bkb3duQ29sdW1uVHlwZXMpIHtcbiAgICAgIHJlcy5wdXNoKGtleSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSB0ZW1wbGF0ZVF1ZXN0aW9uVmFsdWU6IFF1ZXN0aW9uO1xuICBwcml2YXRlIGNvbE93bmVyVmFsdWU6IElNYXRyaXhDb2x1bW5Pd25lciA9IG51bGw7XG4gIHByaXZhdGUgaW5kZXhWYWx1ZSA9IC0xO1xuICBwcml2YXRlIF9pc1Zpc2libGUgPSB0cnVlO1xuICBwcml2YXRlIF9oYXNWaXNpYmxlQ2VsbCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nID0gbnVsbCkge1xuICAgIHN1cGVyKCk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJ0b3RhbEZvcm1hdFwiLCB0aGlzKTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXG4gICAgICAgIFwidG90YWxUeXBlXCIsXG4gICAgICAgIFwidG90YWxFeHByZXNzaW9uXCIsXG4gICAgICAgIFwidG90YWxGb3JtYXRcIixcbiAgICAgICAgXCJ0b3RhbEN1cnJlbmN5XCIsXG4gICAgICAgIFwidG90YWxEaXNwbGF5U3R5bGVcIixcbiAgICAgICAgXCJ0b3RhbE1heGltdW1GcmFjdGlvbkRpZ2l0c1wiLFxuICAgICAgICBcInRvdGFsTWluaW11bUZyYWN0aW9uRGlnaXRzXCJcbiAgICAgIF0sXG4gICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5kb0NvbHVtblByb3BlcnRpZXNDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnVwZGF0ZVRlbXBsYXRlUXVlc3Rpb24oKTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIGlmICh0aXRsZSkgdGhpcy50aXRsZSA9IHRpdGxlO1xuICB9XG4gIGdldER5bmFtaWNQcm9wZXJ0eU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjZWxsVHlwZVwiO1xuICB9XG4gIGdldER5bmFtaWNUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FsY0NlbGxRdWVzdGlvblR5cGUoKTtcbiAgfVxuICBnZXREeW5hbWljUHJvcGVydGllcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICB2YXIgcVR5cGUgPSB0aGlzLmNhbGNDZWxsUXVlc3Rpb25UeXBlKCk7XG4gICAgdmFyIHFEZWZpbml0aW9uID0gKDxhbnk+bWF0cml4RHJvcGRvd25Db2x1bW5UeXBlcylbcVR5cGVdO1xuICAgIGlmIChxRGVmaW5pdGlvbikgcmV0dXJuIHFEZWZpbml0aW9uLnByb3BlcnRpZXM7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHB1YmxpYyBnZXQgY29sT3duZXIoKTogSU1hdHJpeENvbHVtbk93bmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb2xPd25lclZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgY29sT3duZXIodmFsdWU6IElNYXRyaXhDb2x1bW5Pd25lcikge1xuICAgIHRoaXMuY29sT3duZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlVGVtcGxhdGVRdWVzdGlvbigpO1xuICB9XG4gIHB1YmxpYyBsb2NTdHJzQ2hhbmdlZCgpIHtcbiAgICBzdXBlci5sb2NTdHJzQ2hhbmdlZCgpO1xuICAgIHRoaXMubG9jVGl0bGUuc3RyQ2hhbmdlZCgpO1xuICB9XG4gIHB1YmxpYyBhZGRVc2VkTG9jYWxlcyhsb2NhbGVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgc3VwZXIuYWRkVXNlZExvY2FsZXMobG9jYWxlcyk7XG4gICAgdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLmFkZFVzZWRMb2NhbGVzKGxvY2FsZXMpO1xuICB9XG4gIHB1YmxpYyBnZXQgaW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5kZXhWYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0SW5kZXgodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLmluZGV4VmFsdWUgPSB2YWw7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIFwibWF0cml4ZHJvcGRvd25jb2x1bW5cIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGNlbGxUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImNlbGxUeXBlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY2VsbFR5cGUodmFsOiBzdHJpbmcpIHtcbiAgICB2YWwgPSB2YWwudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjZWxsVHlwZVwiLCB2YWwpO1xuICAgIHRoaXMudXBkYXRlVGVtcGxhdGVRdWVzdGlvbigpO1xuICB9XG4gIHB1YmxpYyBnZXQgdGVtcGxhdGVRdWVzdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLm5hbWU7XG4gIH1cbiAgcHVibGljIGdldCBpc1Zpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzVmlzaWJsZTtcbiAgfVxuICBwdWJsaWMgc2V0SXNWaXNpYmxlKG5ld1ZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzVmlzaWJsZSA9IG5ld1ZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1Zpc2libGVDZWxsKCkge1xuICAgIHJldHVybiB0aGlzLl9oYXNWaXNpYmxlQ2VsbDtcbiAgfVxuICBwdWJsaWMgc2V0IGhhc1Zpc2libGVDZWxsKG5ld1ZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX2hhc1Zpc2libGVDZWxsID0gbmV3VmFsO1xuICB9XG4gIHB1YmxpYyBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLm5hbWU7XG4gIH1cbiAgcHVibGljIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLm5hbWUgPSB2YWw7XG4gIH1cbiAgcHVibGljIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlUXVlc3Rpb24udGl0bGU7XG4gIH1cbiAgcHVibGljIHNldCB0aXRsZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMudGVtcGxhdGVRdWVzdGlvbi50aXRsZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGxvY1RpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlUXVlc3Rpb24ubG9jVGl0bGU7XG4gIH1cbiAgcHVibGljIGdldCBmdWxsVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2NUaXRsZS50ZXh0T3JIdG1sO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLmlzUmVxdWlyZWQ7XG4gIH1cbiAgcHVibGljIHNldCBpc1JlcXVpcmVkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMudGVtcGxhdGVRdWVzdGlvbi5pc1JlcXVpcmVkID0gdmFsO1xuICB9XG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRFcnJvclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLnJlcXVpcmVkRXJyb3JUZXh0O1xuICB9XG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRFcnJvclRleHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRlbXBsYXRlUXVlc3Rpb24ucmVxdWlyZWRFcnJvclRleHQgPSB2YWw7XG4gIH1cbiAgZ2V0IGxvY1JlcXVpcmVkRXJyb3JUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLmxvY1JlcXVpcmVkRXJyb3JUZXh0O1xuICB9XG4gIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVRdWVzdGlvbi5yZWFkT25seTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlYWRPbmx5KHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMudGVtcGxhdGVRdWVzdGlvbi5yZWFkT25seSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc090aGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlUXVlc3Rpb24uaGFzT3RoZXI7XG4gIH1cbiAgcHVibGljIHNldCBoYXNPdGhlcih2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRlbXBsYXRlUXVlc3Rpb24uaGFzT3RoZXIgPSB2YWw7XG4gIH1cbiAgcHVibGljIGdldCB2aXNpYmxlSWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLnZpc2libGVJZjtcbiAgfVxuICBwdWJsaWMgc2V0IHZpc2libGVJZih2YWw6IHN0cmluZykge1xuICAgIHRoaXMudGVtcGxhdGVRdWVzdGlvbi52aXNpYmxlSWYgPSB2YWw7XG4gIH1cbiAgcHVibGljIGdldCBlbmFibGVJZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlUXVlc3Rpb24uZW5hYmxlSWY7XG4gIH1cbiAgcHVibGljIHNldCBlbmFibGVJZih2YWw6IHN0cmluZykge1xuICAgIHRoaXMudGVtcGxhdGVRdWVzdGlvbi5lbmFibGVJZiA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkSWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLnJlcXVpcmVkSWY7XG4gIH1cbiAgcHVibGljIHNldCByZXF1aXJlZElmKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uLnJlcXVpcmVkSWYgPSB2YWw7XG4gIH1cbiAgcHVibGljIGdldCBoYXNDb25kaXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy52aXNpYmxlSWYgfHwgIXRoaXMuZW5hYmxlSWYgfHwgIXRoaXMucmVxdWlyZWRJZjtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbGlkYXRvcnMoKTogQXJyYXk8U3VydmV5VmFsaWRhdG9yPiB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVRdWVzdGlvbi52YWxpZGF0b3JzO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsaWRhdG9ycyh2YWw6IEFycmF5PFN1cnZleVZhbGlkYXRvcj4pIHtcbiAgICB0aGlzLnRlbXBsYXRlUXVlc3Rpb24udmFsaWRhdG9ycyA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHRvdGFsVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ0b3RhbFR5cGVcIiwgXCJub25lXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgdG90YWxUeXBlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwidG90YWxUeXBlXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCB0b3RhbEV4cHJlc3Npb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidG90YWxFeHByZXNzaW9uXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgdG90YWxFeHByZXNzaW9uKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwidG90YWxFeHByZXNzaW9uXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBoYXNUb3RhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b3RhbFR5cGUgIT0gXCJub25lXCIgfHwgISF0aGlzLnRvdGFsRXhwcmVzc2lvbjtcbiAgfVxuICBwdWJsaWMgZ2V0IHRvdGFsRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwidG90YWxGb3JtYXRcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCB0b3RhbEZvcm1hdCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwidG90YWxGb3JtYXRcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jVG90YWxGb3JtYXQoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwidG90YWxGb3JtYXRcIik7XG4gIH1cbiAgcHVibGljIGdldCB0b3RhbE1heGltdW1GcmFjdGlvbkRpZ2l0cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ0b3RhbE1heGltdW1GcmFjdGlvbkRpZ2l0c1wiLCAtMSk7XG4gIH1cbiAgcHVibGljIHNldCB0b3RhbE1heGltdW1GcmFjdGlvbkRpZ2l0cyh2YWw6IG51bWJlcikge1xuICAgIGlmICh2YWwgPCAtMSB8fCB2YWwgPiAyMCkgcmV0dXJuO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInRvdGFsTWF4aW11bUZyYWN0aW9uRGlnaXRzXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCB0b3RhbE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ0b3RhbE1pbmltdW1GcmFjdGlvbkRpZ2l0c1wiLCAtMSk7XG4gIH1cbiAgcHVibGljIHNldCB0b3RhbE1pbmltdW1GcmFjdGlvbkRpZ2l0cyh2YWw6IG51bWJlcikge1xuICAgIGlmICh2YWwgPCAtMSB8fCB2YWwgPiAyMCkgcmV0dXJuO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInRvdGFsTWluaW11bUZyYWN0aW9uRGlnaXRzXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCB0b3RhbERpc3BsYXlTdHlsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ0b3RhbERpc3BsYXlTdHlsZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRvdGFsRGlzcGxheVN0eWxlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwidG90YWxEaXNwbGF5U3R5bGVcIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRvdGFsQ3VycmVuY3koKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidG90YWxDdXJyZW5jeVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRvdGFsQ3VycmVuY3kodmFsOiBzdHJpbmcpIHtcbiAgICBpZiAoZ2V0Q3VycmVjeUNvZGVzKCkuaW5kZXhPZih2YWwpIDwgMCkgcmV0dXJuO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInRvdGFsQ3VycmVuY3lcIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG1pbldpZHRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIm1pbldpZHRoXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgbWluV2lkdGgodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJtaW5XaWR0aFwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgd2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwid2lkdGhcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCB3aWR0aCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIndpZHRoXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBjb2xDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjb2xDb3VudFwiLCAtMSk7XG4gIH1cbiAgcHVibGljIHNldCBjb2xDb3VudCh2YWw6IG51bWJlcikge1xuICAgIGlmICh2YWwgPCAtMSB8fCB2YWwgPiA0KSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY29sQ291bnRcIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sT3duZXIgPyB0aGlzLmNvbE93bmVyLmdldExvY2FsZSgpIDogXCJcIjtcbiAgfVxuICBwdWJsaWMgZ2V0TWFya2Rvd25IdG1sKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sT3duZXIgPyB0aGlzLmNvbE93bmVyLmdldE1hcmtkb3duSHRtbCh0ZXh0KSA6IG51bGw7XG4gIH1cbiAgcHVibGljIGdldFByb2Nlc3NlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2xPd25lciA/IHRoaXMuY29sT3duZXIuZ2V0UHJvY2Vzc2VkVGV4dCh0ZXh0KSA6IHRleHQ7XG4gIH1cbiAgcHVibGljIGNyZWF0ZUNlbGxRdWVzdGlvbihkYXRhOiBhbnkpOiBRdWVzdGlvbiB7XG4gICAgdmFyIHFUeXBlID0gdGhpcy5jYWxjQ2VsbFF1ZXN0aW9uVHlwZSgpO1xuICAgIHZhciBjZWxsUXVlc3Rpb24gPSA8UXVlc3Rpb24+dGhpcy5jcmVhdGVOZXdRdWVzdGlvbihxVHlwZSk7XG4gICAgdGhpcy51cGRhdGVDZWxsUXVlc3Rpb24oY2VsbFF1ZXN0aW9uLCBkYXRhKTtcbiAgICByZXR1cm4gY2VsbFF1ZXN0aW9uO1xuICB9XG4gIHB1YmxpYyB1cGRhdGVDZWxsUXVlc3Rpb24oY2VsbFF1ZXN0aW9uOiBRdWVzdGlvbiwgZGF0YTogYW55KSB7XG4gICAgdGhpcy5zZXRRdWVzdGlvblByb3BlcnRpZXMoY2VsbFF1ZXN0aW9uKTtcbiAgICB2YXIgcVR5cGUgPSBjZWxsUXVlc3Rpb24uZ2V0VHlwZSgpO1xuICAgIHZhciBxRGVmaW5pdGlvbiA9ICg8YW55Pm1hdHJpeERyb3Bkb3duQ29sdW1uVHlwZXMpW3FUeXBlXTtcbiAgICBpZiAocURlZmluaXRpb24gJiYgcURlZmluaXRpb25bXCJvbkNlbGxRdWVzdGlvblVwZGF0ZVwiXSkge1xuICAgICAgcURlZmluaXRpb25bXCJvbkNlbGxRdWVzdGlvblVwZGF0ZVwiXShcbiAgICAgICAgY2VsbFF1ZXN0aW9uLFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLmNvbE93bmVyLFxuICAgICAgICBkYXRhXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBkZWZhdWx0Q2VsbFR5cGVDaGFuZ2VkKCkge1xuICAgIHRoaXMudXBkYXRlVGVtcGxhdGVRdWVzdGlvbigpO1xuICB9XG4gIHByb3RlY3RlZCBjYWxjQ2VsbFF1ZXN0aW9uVHlwZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNlbGxUeXBlICE9PSBcImRlZmF1bHRcIikgcmV0dXJuIHRoaXMuY2VsbFR5cGU7XG4gICAgaWYgKHRoaXMuY29sT3duZXIpIHJldHVybiB0aGlzLmNvbE93bmVyLmdldENlbGxUeXBlKCk7XG4gICAgcmV0dXJuIHNldHRpbmdzLm1hdHJpeERlZmF1bHRDZWxsVHlwZTtcbiAgfVxuICBwcm90ZWN0ZWQgdXBkYXRlVGVtcGxhdGVRdWVzdGlvbigpIHtcbiAgICB2YXIgcHJldkNlbGxUeXBlID0gdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uXG4gICAgICA/IHRoaXMudGVtcGxhdGVRdWVzdGlvbi5nZXRUeXBlKClcbiAgICAgIDogXCJcIjtcbiAgICB2YXIgY3VyQ2VsbFR5cGUgPSB0aGlzLmNhbGNDZWxsUXVlc3Rpb25UeXBlKCk7XG4gICAgaWYgKGN1ckNlbGxUeXBlID09PSBwcmV2Q2VsbFR5cGUpIHJldHVybjtcbiAgICBpZiAodGhpcy50ZW1wbGF0ZVF1ZXN0aW9uKSB7XG4gICAgICB0aGlzLnJlbW92ZVByb3BlcnRpZXMocHJldkNlbGxUeXBlKTtcbiAgICB9XG4gICAgdGhpcy50ZW1wbGF0ZVF1ZXN0aW9uVmFsdWUgPSB0aGlzLmNyZWF0ZU5ld1F1ZXN0aW9uKGN1ckNlbGxUeXBlKTtcbiAgICB0aGlzLnRlbXBsYXRlUXVlc3Rpb24ubG9jT3duZXIgPSB0aGlzO1xuICAgIHRoaXMuYWRkUHJvcGVydGllcyhjdXJDZWxsVHlwZSk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMudGVtcGxhdGVRdWVzdGlvbi5vblByb3BlcnR5Q2hhbmdlZC5hZGQoZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLmRvQ29sdW1uUHJvcGVydGllc0NoYW5nZWQoKTtcbiAgICB9KTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTmV3UXVlc3Rpb24oY2VsbFR5cGU6IHN0cmluZyk6IFF1ZXN0aW9uIHtcbiAgICB2YXIgcXVlc3Rpb24gPSA8UXVlc3Rpb24+U2VyaWFsaXplci5jcmVhdGVDbGFzcyhjZWxsVHlwZSk7XG4gICAgaWYgKCFxdWVzdGlvbikge1xuICAgICAgcXVlc3Rpb24gPSA8UXVlc3Rpb24+U2VyaWFsaXplci5jcmVhdGVDbGFzcyhcInRleHRcIik7XG4gICAgfVxuICAgIHRoaXMuc2V0UXVlc3Rpb25Qcm9wZXJ0aWVzKHF1ZXN0aW9uKTtcbiAgICByZXR1cm4gcXVlc3Rpb247XG4gIH1cbiAgcHJvdGVjdGVkIHNldFF1ZXN0aW9uUHJvcGVydGllcyhxdWVzdGlvbjogUXVlc3Rpb24pIHtcbiAgICBpZiAodGhpcy50ZW1wbGF0ZVF1ZXN0aW9uKSB7XG4gICAgICB2YXIganNvbiA9IG5ldyBKc29uT2JqZWN0KCkudG9Kc29uT2JqZWN0KHRoaXMudGVtcGxhdGVRdWVzdGlvbiwgdHJ1ZSk7XG4gICAgICBqc29uLnR5cGUgPSBxdWVzdGlvbi5nZXRUeXBlKCk7XG4gICAgICBxdWVzdGlvbi5zdGFydExvYWRpbmdGcm9tSnNvbigpO1xuICAgICAgbmV3IEpzb25PYmplY3QoKS50b09iamVjdChqc29uLCBxdWVzdGlvbik7XG4gICAgICBxdWVzdGlvbi5lbmRMb2FkaW5nRnJvbUpzb24oKTtcbiAgICAgIHF1ZXN0aW9uLm9uU3VydmV5TG9hZCgpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgcHJvcGVydHlWYWx1ZUNoYW5nZWQobmFtZTogc3RyaW5nLCBvbGRWYWx1ZTogYW55LCBuZXdWYWx1ZTogYW55KSB7XG4gICAgc3VwZXIucHJvcGVydHlWYWx1ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICB0aGlzLmRvQ29sdW1uUHJvcGVydGllc0NoYW5nZWQoKTtcbiAgfVxuICBwcml2YXRlIGRvQ29sdW1uUHJvcGVydGllc0NoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMuY29sT3duZXIgIT0gbnVsbCAmJiAhdGhpcy5pc0xvYWRpbmdGcm9tSnNvbikge1xuICAgICAgdGhpcy5jb2xPd25lci5vbkNvbHVtblByb3BlcnRpZXNDaGFuZ2VkKHRoaXMpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldFByb3BlcnRpZXMoY3VyQ2VsbFR5cGU6IHN0cmluZyk6IEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciBxRGVmID0gKDxhbnk+bWF0cml4RHJvcGRvd25Db2x1bW5UeXBlcylbY3VyQ2VsbFR5cGVdO1xuICAgIGlmICghcURlZiB8fCAhcURlZi5wcm9wZXJ0aWVzKSByZXR1cm4gW107XG4gICAgcmV0dXJuIFNlcmlhbGl6ZXIuZmluZFByb3BlcnRpZXMoY3VyQ2VsbFR5cGUsIHFEZWYucHJvcGVydGllcyk7XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVQcm9wZXJ0aWVzKGN1ckNlbGxUeXBlOiBzdHJpbmcpIHtcbiAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMuZ2V0UHJvcGVydGllcyhjdXJDZWxsVHlwZSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcCA9IHByb3BlcnRpZXNbaV07XG4gICAgICBkZWxldGUgKDxhbnk+dGhpcylbcHJvcC5uYW1lXTtcbiAgICAgIGlmIChwcm9wLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSkge1xuICAgICAgICBkZWxldGUgKDxhbnk+dGhpcylbcHJvcC5zZXJpYWxpemF0aW9uUHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIGFkZFByb3BlcnRpZXMoY3VyQ2VsbFR5cGU6IHN0cmluZykge1xuICAgIHZhciBxdWVzdGlvbiA9IHRoaXMudGVtcGxhdGVRdWVzdGlvbjtcbiAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMuZ2V0UHJvcGVydGllcyhjdXJDZWxsVHlwZSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcCA9IHByb3BlcnRpZXNbaV07XG4gICAgICB0aGlzLmFkZFByb3BlcnR5KHF1ZXN0aW9uLCBwcm9wLm5hbWUsIGZhbHNlKTtcbiAgICAgIGlmIChwcm9wLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSkge1xuICAgICAgICB0aGlzLmFkZFByb3BlcnR5KHF1ZXN0aW9uLCBwcm9wLnNlcmlhbGl6YXRpb25Qcm9wZXJ0eSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYWRkUHJvcGVydHkoXG4gICAgcXVlc3Rpb246IFF1ZXN0aW9uLFxuICAgIHByb3BOYW1lOiBzdHJpbmcsXG4gICAgaXNSZWFkT25seTogYm9vbGVhblxuICApIHtcbiAgICB2YXIgZGVzYyA9IHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAoPGFueT5xdWVzdGlvbilbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKCFpc1JlYWRPbmx5KSB7XG4gICAgICAoPGFueT5kZXNjKVtcInNldFwiXSA9IGZ1bmN0aW9uKHY6IGFueSkge1xuICAgICAgICAoPGFueT5xdWVzdGlvbilbcHJvcE5hbWVdID0gdjtcbiAgICAgIH07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBwcm9wTmFtZSwgZGVzYyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1hdHJpeERyb3Bkb3duQ2VsbCB7XG4gIHByaXZhdGUgcXVlc3Rpb25WYWx1ZTogUXVlc3Rpb247XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uLFxuICAgIHB1YmxpYyByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIHB1YmxpYyBkYXRhOiBJTWF0cml4RHJvcGRvd25EYXRhXG4gICkge1xuICAgIHRoaXMucXVlc3Rpb25WYWx1ZSA9IHRoaXMuY3JlYXRlUXVlc3Rpb24oY29sdW1uLCByb3csIGRhdGEpO1xuICAgIHRoaXMucXVlc3Rpb25WYWx1ZS51cGRhdGVDdXN0b21XaWRnZXQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlUXVlc3Rpb24oXG4gICAgY29sdW1uOiBNYXRyaXhEcm9wZG93bkNvbHVtbixcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIGRhdGE6IElNYXRyaXhEcm9wZG93bkRhdGFcbiAgKTogUXVlc3Rpb24ge1xuICAgIHZhciByZXMgPSBkYXRhLmNyZWF0ZVF1ZXN0aW9uKHRoaXMucm93LCB0aGlzLmNvbHVtbik7XG4gICAgcmVzLnZhbGlkYXRlVmFsdWVDYWxsYmFjayA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGRhdGEudmFsaWRhdGVDZWxsKHJvdywgY29sdW1uLm5hbWUsIHJvdy52YWx1ZSk7XG4gICAgfTtcbiAgICBDdXN0b21Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5nZXRQcm9wZXJ0aWVzKGNvbHVtbi5nZXRUeXBlKCkpLmZvckVhY2goXG4gICAgICBwcm9wZXJ0eSA9PiB7XG4gICAgICAgIGxldCBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eS5uYW1lO1xuICAgICAgICBpZiAoKDxhbnk+Y29sdW1uKVtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXNbcHJvcGVydHlOYW1lXSA9ICg8YW55PmNvbHVtbilbcHJvcGVydHlOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwdWJsaWMgZ2V0IHF1ZXN0aW9uKCk6IFF1ZXN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvblZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi52YWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJ1bkNvbmRpdGlvbih2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LCBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55Pikge1xuICAgIHRoaXMucXVlc3Rpb24ucnVuQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1hdHJpeERyb3Bkb3duVG90YWxDZWxsIGV4dGVuZHMgTWF0cml4RHJvcGRvd25DZWxsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbHVtbjogTWF0cml4RHJvcGRvd25Db2x1bW4sXG4gICAgcHVibGljIHJvdzogTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UsXG4gICAgcHVibGljIGRhdGE6IElNYXRyaXhEcm9wZG93bkRhdGFcbiAgKSB7XG4gICAgc3VwZXIoY29sdW1uLCByb3csIGRhdGEpO1xuICAgIHRoaXMudXBkYXRlQ2VsbFF1ZXN0aW9uKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZVF1ZXN0aW9uKFxuICAgIGNvbHVtbjogTWF0cml4RHJvcGRvd25Db2x1bW4sXG4gICAgcm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSxcbiAgICBkYXRhOiBJTWF0cml4RHJvcGRvd25EYXRhXG4gICk6IFF1ZXN0aW9uIHtcbiAgICB2YXIgcmVzID0gPFF1ZXN0aW9uPlNlcmlhbGl6ZXIuY3JlYXRlQ2xhc3MoXCJleHByZXNzaW9uXCIpO1xuICAgIHJlcy5zZXRTdXJ2ZXlJbXBsKHJvdyk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwdWJsaWMgdXBkYXRlQ2VsbFF1ZXN0aW9uKCkge1xuICAgIHRoaXMucXVlc3Rpb24ubG9jQ2FsY3VsYXRpb24oKTtcbiAgICB0aGlzLmNvbHVtbi51cGRhdGVDZWxsUXVlc3Rpb24odGhpcy5xdWVzdGlvbiwgbnVsbCk7XG4gICAgdGhpcy5xdWVzdGlvbi5leHByZXNzaW9uID0gdGhpcy5nZXRUb3RhbEV4cHJlc3Npb24oKTtcbiAgICB0aGlzLnF1ZXN0aW9uLmZvcm1hdCA9IHRoaXMuY29sdW1uLnRvdGFsRm9ybWF0O1xuICAgIHRoaXMucXVlc3Rpb24uY3VycmVuY3kgPSB0aGlzLmNvbHVtbi50b3RhbEN1cnJlbmN5O1xuICAgIHRoaXMucXVlc3Rpb24uZGlzcGxheVN0eWxlID0gdGhpcy5jb2x1bW4udG90YWxEaXNwbGF5U3R5bGU7XG4gICAgdGhpcy5xdWVzdGlvbi5tYXhpbXVtRnJhY3Rpb25EaWdpdHMgPSB0aGlzLmNvbHVtbi50b3RhbE1heGltdW1GcmFjdGlvbkRpZ2l0cztcbiAgICB0aGlzLnF1ZXN0aW9uLm1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9IHRoaXMuY29sdW1uLnRvdGFsTWluaW11bUZyYWN0aW9uRGlnaXRzO1xuICAgIHRoaXMucXVlc3Rpb24udW5sb2NDYWxjdWxhdGlvbigpO1xuICB9XG4gIHB1YmxpYyBnZXRUb3RhbEV4cHJlc3Npb24oKTogc3RyaW5nIHtcbiAgICBpZiAoISF0aGlzLmNvbHVtbi50b3RhbEV4cHJlc3Npb24pIHJldHVybiB0aGlzLmNvbHVtbi50b3RhbEV4cHJlc3Npb247XG4gICAgaWYgKHRoaXMuY29sdW1uLnRvdGFsVHlwZSA9PSBcIm5vbmVcIikgcmV0dXJuIFwiXCI7XG4gICAgdmFyIGZ1bk5hbWUgPSB0aGlzLmNvbHVtbi50b3RhbFR5cGUgKyBcIkluQXJyYXlcIjtcbiAgICBpZiAoIUZ1bmN0aW9uRmFjdG9yeS5JbnN0YW5jZS5oYXNGdW5jdGlvbihmdW5OYW1lKSkgcmV0dXJuIFwiXCI7XG4gICAgcmV0dXJuIGZ1bk5hbWUgKyBcIih7c2VsZn0sICdcIiArIHRoaXMuY29sdW1uLm5hbWUgKyBcIicpXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlXG4gIGltcGxlbWVudHMgSVN1cnZleURhdGEsIElTdXJ2ZXlJbXBsLCBJTG9jYWxpemFibGVPd25lciwgSVRleHRQcm9jZXNzb3Ige1xuICBwdWJsaWMgc3RhdGljIFJvd1ZhcmlhYmxlTmFtZSA9IFwicm93XCI7XG4gIHB1YmxpYyBzdGF0aWMgT3duZXJWYXJpYWJsZU5hbWUgPSBcInNlbGZcIjtcbiAgcHVibGljIHN0YXRpYyBJbmRleFZhcmlhYmxlTmFtZSA9IFwicm93SW5kZXhcIjtcblxuICBwcml2YXRlIHN0YXRpYyBpZENvdW50ZXI6IG51bWJlciA9IDE7XG4gIHByaXZhdGUgc3RhdGljIGdldElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwic3Jvd19cIiArIE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLmlkQ291bnRlcisrO1xuICB9XG4gIHByb3RlY3RlZCBkYXRhOiBJTWF0cml4RHJvcGRvd25EYXRhO1xuICBwcml2YXRlIGlzU2V0dGluZ1ZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaWRWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHRleHRQcmVQcm9jZXNzb3I6IFRleHRQcmVQcm9jZXNzb3I7XG5cbiAgcHVibGljIGNlbGxzOiBBcnJheTxNYXRyaXhEcm9wZG93bkNlbGw+ID0gW107XG5cbiAgY29uc3RydWN0b3IoZGF0YTogSU1hdHJpeERyb3Bkb3duRGF0YSwgdmFsdWU6IGFueSkge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy50ZXh0UHJlUHJvY2Vzc29yID0gbmV3IFRleHRQcmVQcm9jZXNzb3IoKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy50ZXh0UHJlUHJvY2Vzc29yLm9uUHJvY2VzcyA9IGZ1bmN0aW9uKFxuICAgICAgdGV4dFZhbHVlOiBUZXh0UHJlUHJvY2Vzc29yVmFsdWVcbiAgICApIHtcbiAgICAgIHNlbGYuZ2V0UHJvY2Vzc2VkVGV4dFZhbHVlKHRleHRWYWx1ZSk7XG4gICAgfTtcbiAgICB0aGlzLmlkVmFsdWUgPSBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZS5nZXRJZCgpO1xuICB9XG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZFZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgcm93TmFtZSgpOiBhbnkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICB2YXIgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxdWVzdGlvbiA9IHRoaXMuY2VsbHNbaV0ucXVlc3Rpb247XG4gICAgICBpZiAoIXF1ZXN0aW9uLmlzRW1wdHkoKSkge1xuICAgICAgICByZXN1bHRbcXVlc3Rpb24uZ2V0VmFsdWVOYW1lKCldID0gcXVlc3Rpb24udmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHVibGljIGdldCBsb2NUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBnZXRBbGxWYWx1ZXMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuICBnZXRGaWx0ZXJlZFZhbHVlcygpOiBhbnkge1xuICAgIHZhciBhbGxWYWx1ZXMgPSB0aGlzLmdldEFsbFZhbHVlcygpO1xuICAgIHZhciB2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7IHJvdzogYWxsVmFsdWVzIH07XG4gICAgZm9yICh2YXIga2V5IGluIGFsbFZhbHVlcykge1xuICAgICAgdmFsdWVzW2tleV0gPSBhbGxWYWx1ZXNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuICBnZXRGaWx0ZXJlZFByb3BlcnRpZXMoKTogYW55IHtcbiAgICByZXR1cm4geyBzdXJ2ZXk6IHRoaXMuZ2V0U3VydmV5KCksIHJvdzogdGhpcyB9O1xuICB9XG4gIHB1YmxpYyBydW5Db25kaXRpb24odmFsdWVzOiBIYXNoVGFibGU8YW55PiwgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT4pIHtcbiAgICBpZiAoISF0aGlzLmRhdGEpIHtcbiAgICAgIHZhbHVlc1tNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZS5Pd25lclZhcmlhYmxlTmFtZV0gPSB0aGlzLmRhdGEudmFsdWU7XG4gICAgfVxuICAgIHZhbHVlc1tNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZS5JbmRleFZhcmlhYmxlTmFtZV0gPSB0aGlzLnJvd0luZGV4O1xuICAgIGlmICghcHJvcGVydGllcykgcHJvcGVydGllcyA9IHt9O1xuICAgIHByb3BlcnRpZXNbTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UuUm93VmFyaWFibGVOYW1lXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNlbGxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWx1ZXNbTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UuUm93VmFyaWFibGVOYW1lXSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLmNlbGxzW2ldLnJ1bkNvbmRpdGlvbih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmlzU2V0dGluZ1ZhbHVlID0gdHJ1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxdWVzdGlvbiA9IHRoaXMuY2VsbHNbaV0ucXVlc3Rpb247XG4gICAgICB2YXIgdmFsID0gISF2YWx1ZSA/IHZhbHVlW3F1ZXN0aW9uLmdldFZhbHVlTmFtZSgpXSA6IG51bGw7XG4gICAgICBxdWVzdGlvbi51cGRhdGVWYWx1ZUZyb21TdXJ2ZXkodmFsKTtcbiAgICAgIHF1ZXN0aW9uLm9uU3VydmV5VmFsdWVDaGFuZ2VkKHZhbCk7XG4gICAgfVxuICAgIHRoaXMuaXNTZXR0aW5nVmFsdWUgPSBmYWxzZTtcbiAgfVxuICBwdWJsaWMgb25BbnlWYWx1ZUNoYW5nZWQobmFtZTogc3RyaW5nKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNlbGxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmNlbGxzW2ldLnF1ZXN0aW9uLm9uQW55VmFsdWVDaGFuZ2VkKG5hbWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0RGF0YVZhbHVlQ29yZSh2YWx1ZXNIYXNoOiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgdmFyIHN1cnZleSA9IHRoaXMuZ2V0U3VydmV5KCk7XG4gICAgaWYgKCEhc3VydmV5KSB7XG4gICAgICByZXR1cm4gKDxhbnk+c3VydmV5KS5nZXREYXRhVmFsdWVDb3JlKHZhbHVlc0hhc2gsIGtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZXNIYXNoW2tleV07XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRWYWx1ZShuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIHZhciBxdWVzdGlvbiA9IHRoaXMuZ2V0UXVlc3Rpb25CeUNvbHVtbk5hbWUobmFtZSk7XG4gICAgcmV0dXJuICEhcXVlc3Rpb24gPyBxdWVzdGlvbi52YWx1ZSA6IG51bGw7XG4gIH1cbiAgcHVibGljIHNldFZhbHVlKG5hbWU6IHN0cmluZywgbmV3Q29sdW1uVmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzU2V0dGluZ1ZhbHVlKSByZXR1cm47XG4gICAgdmFyIG5ld1ZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB2YXIgY2hhbmdlZFZhbHVlID0gdGhpcy5nZXRWYWx1ZShuYW1lKTtcbiAgICB2YXIgY2hhbmdlZFF1ZXN0aW9uID0gdGhpcy5nZXRRdWVzdGlvbkJ5Q29sdW1uTmFtZShuYW1lKTtcbiAgICB2YXIgY2hhbmdpbmdWYWx1ZSA9IHRoaXMuZGF0YS5vblJvd0NoYW5naW5nKHRoaXMsIG5hbWUsIG5ld1ZhbHVlKTtcbiAgICBpZiAoXG4gICAgICAhIWNoYW5nZWRRdWVzdGlvbiAmJlxuICAgICAgIUhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyhjaGFuZ2luZ1ZhbHVlLCBjaGFuZ2VkVmFsdWUpXG4gICAgKSB7XG4gICAgICB0aGlzLmdldFF1ZXN0aW9uQnlDb2x1bW5OYW1lKG5hbWUpLnZhbHVlID0gY2hhbmdpbmdWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhLm9uUm93Q2hhbmdlZChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgbmV3VmFsdWUsXG4gICAgICAgIG5ld0NvbHVtblZhbHVlID09IG51bGwgJiYgIWNoYW5nZWRRdWVzdGlvblxuICAgICAgKTtcbiAgICAgIHRoaXMub25BbnlWYWx1ZUNoYW5nZWQoTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UuUm93VmFyaWFibGVOYW1lKTtcbiAgICB9XG4gIH1cbiAgZ2V0VmFyaWFibGUobmFtZTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHNldFZhcmlhYmxlKG5hbWU6IHN0cmluZywgbmV3VmFsdWU6IGFueSkge31cbiAgcHVibGljIGdldENvbW1lbnQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YXIgcmVzdWx0ID0gdGhpcy5nZXRWYWx1ZShuYW1lICsgc2V0dGluZ3MuY29tbWVudFByZWZpeCk7XG4gICAgcmV0dXJuIHJlc3VsdCA/IHJlc3VsdCA6IFwiXCI7XG4gIH1cbiAgcHVibGljIHNldENvbW1lbnQobmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nLCBsb2NOb3RpZmljYXRpb246IGFueSkge1xuICAgIHRoaXMuc2V0VmFsdWUobmFtZSArIHNldHRpbmdzLmNvbW1lbnRQcmVmaXgsIG5ld1ZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzRW1wdHkoKSB7XG4gICAgdmFyIHZhbCA9IHRoaXMudmFsdWU7XG4gICAgaWYgKEhlbHBlcnMuaXNWYWx1ZUVtcHR5KHZhbCkpIHJldHVybiB0cnVlO1xuICAgIGZvciAodmFyIGtleSBpbiB2YWwpIHtcbiAgICAgIGlmICh2YWxba2V5XSAhPT0gdW5kZWZpbmVkICYmIHZhbFtrZXldICE9PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHB1YmxpYyBnZXRRdWVzdGlvbkJ5Q29sdW1uKGNvbHVtbjogTWF0cml4RHJvcGRvd25Db2x1bW4pOiBRdWVzdGlvbiB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNlbGxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5jZWxsc1tpXS5jb2x1bW4gPT0gY29sdW1uKSByZXR1cm4gdGhpcy5jZWxsc1tpXS5xdWVzdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHVibGljIGdldFF1ZXN0aW9uQnlDb2x1bW5OYW1lKGNvbHVtbk5hbWU6IHN0cmluZyk6IFF1ZXN0aW9uIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNlbGxzW2ldLmNvbHVtbi5uYW1lID09IGNvbHVtbk5hbWUpXG4gICAgICAgIHJldHVybiB0aGlzLmNlbGxzW2ldLnF1ZXN0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0U2hhcmVkUXVlc3Rpb25CeU5hbWUoY29sdW1uTmFtZTogc3RyaW5nKTogUXVlc3Rpb24ge1xuICAgIHJldHVybiAhIXRoaXMuZGF0YVxuICAgICAgPyB0aGlzLmRhdGEuZ2V0U2hhcmVkUXVlc3Rpb25CeU5hbWUoY29sdW1uTmFtZSwgdGhpcylcbiAgICAgIDogbnVsbDtcbiAgfVxuICBwdWJsaWMgY2xlYXJJbmNvcnJlY3RWYWx1ZXModmFsOiBhbnkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gdmFsKSB7XG4gICAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uQnlDb2x1bW5OYW1lKGtleSk7XG4gICAgICBpZiAocXVlc3Rpb24pIHtcbiAgICAgICAgdmFyIHFWYWwgPSBxdWVzdGlvbi52YWx1ZTtcbiAgICAgICAgcXVlc3Rpb24uY2xlYXJJbmNvcnJlY3RWYWx1ZXMoKTtcbiAgICAgICAgaWYgKCFIZWxwZXJzLmlzVHdvVmFsdWVFcXVhbHMocVZhbCwgcXVlc3Rpb24udmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZShrZXksIHF1ZXN0aW9uLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldFNoYXJlZFF1ZXN0aW9uQnlOYW1lKGtleSkpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKGtleSwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGdldExvY2FsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuZ2V0TG9jYWxlKCkgOiBcIlwiO1xuICB9XG4gIHB1YmxpYyBnZXRNYXJrZG93bkh0bWwodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLmdldE1hcmtkb3duSHRtbCh0ZXh0KSA6IG51bGw7XG4gIH1cbiAgcHVibGljIGdldFByb2Nlc3NlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLmdldFByb2Nlc3NlZFRleHQodGV4dCkgOiB0ZXh0O1xuICB9XG4gIHB1YmxpYyBsb2NTdHJzQ2hhbmdlZCgpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuY2VsbHNbaV0ucXVlc3Rpb24ubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHVwZGF0ZUNlbGxRdWVzdGlvbk9uQ29sdW1uQ2hhbmdlZChjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNlbGxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5jZWxsc1tpXS5jb2x1bW4gPT09IGNvbHVtbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUNlbGxPbkNvbHVtbkNoYW5nZWQodGhpcy5jZWxsc1tpXSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIG9uUXVlc3Rpb25SZWFkT25seUNoYW5nZWQocGFyZW50SXNSZWFkT25seTogYm9vbGVhbikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jZWxscy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCEhdGhpcy5jZWxsc1tpXS5xdWVzdGlvbikge1xuICAgICAgICB0aGlzLmNlbGxzW2ldLnF1ZXN0aW9uLnJlYWRPbmx5ID0gcGFyZW50SXNSZWFkT25seTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIHVwZGF0ZUNlbGxPbkNvbHVtbkNoYW5nZWQoY2VsbDogTWF0cml4RHJvcGRvd25DZWxsKSB7XG4gICAgY2VsbC5jb2x1bW4udXBkYXRlQ2VsbFF1ZXN0aW9uKGNlbGwucXVlc3Rpb24sIHRoaXMpO1xuICB9XG4gIHByb3RlY3RlZCBidWlsZENlbGxzKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmlzU2V0dGluZ1ZhbHVlID0gdHJ1ZTtcbiAgICB2YXIgY29sdW1ucyA9IHRoaXMuZGF0YS5jb2x1bW5zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNvbHVtbiA9IGNvbHVtbnNbaV07XG4gICAgICBpZiAoIWNvbHVtbi5pc1Zpc2libGUpIGNvbnRpbnVlO1xuICAgICAgdmFyIGNlbGwgPSB0aGlzLmNyZWF0ZUNlbGwoY29sdW1uKTtcbiAgICAgIHRoaXMuY2VsbHMucHVzaChjZWxsKTtcbiAgICAgIGlmICghIXZhbHVlICYmICFIZWxwZXJzLmlzVmFsdWVFbXB0eSh2YWx1ZVtjb2x1bW4ubmFtZV0pKSB7XG4gICAgICAgIGNlbGwucXVlc3Rpb24udmFsdWUgPSB2YWx1ZVtjb2x1bW4ubmFtZV07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaXNTZXR0aW5nVmFsdWUgPSBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlQ2VsbChjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uKTogTWF0cml4RHJvcGRvd25DZWxsIHtcbiAgICByZXR1cm4gbmV3IE1hdHJpeERyb3Bkb3duQ2VsbChjb2x1bW4sIHRoaXMsIHRoaXMuZGF0YSk7XG4gIH1cbiAgZ2VTdXJ2ZXlEYXRhKCk6IElTdXJ2ZXlEYXRhIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBnZXRTdXJ2ZXkoKTogSVN1cnZleSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YSA/IHRoaXMuZGF0YS5nZXRTdXJ2ZXkoKSA6IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCByb3dJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiAhIXRoaXMuZGF0YSA/IHRoaXMuZGF0YS5nZXRSb3dJbmRleCh0aGlzKSArIDEgOiAtMTtcbiAgfVxuICAvL0lUZXh0UHJvY2Vzc29yXG4gIHByaXZhdGUgZ2V0UHJvY2Vzc2VkVGV4dFZhbHVlKHRleHRWYWx1ZTogVGV4dFByZVByb2Nlc3NvclZhbHVlKSB7XG4gICAgdmFyIGZpcnN0TmFtZSA9IG5ldyBQcm9jZXNzVmFsdWUoKS5nZXRGaXJzdE5hbWUodGV4dFZhbHVlLm5hbWUpO1xuICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9XG4gICAgICBmaXJzdE5hbWUgPT0gTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UuUm93VmFyaWFibGVOYW1lO1xuICAgIHRleHRWYWx1ZS5jYW5Qcm9jZXNzID0gdGV4dFZhbHVlLmlzRXhpc3RzO1xuICAgIGlmICghdGV4dFZhbHVlLmlzRXhpc3RzKSByZXR1cm47XG4gICAgdmFyIHZhbHVlcyA9IHsgcm93OiB0aGlzLnZhbHVlIH07XG4gICAgdGV4dFZhbHVlLnZhbHVlID0gbmV3IFByb2Nlc3NWYWx1ZSgpLmdldFZhbHVlKHRleHRWYWx1ZS5uYW1lLCB2YWx1ZXMpO1xuICB9XG4gIGdldFRleHRQcm9jZXNzb3IoKTogSVRleHRQcm9jZXNzb3Ige1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHByb2Nlc3NUZXh0KHRleHQ6IHN0cmluZywgcmV0dXJuRGlzcGxheVZhbHVlOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICB0ZXh0ID0gdGhpcy50ZXh0UHJlUHJvY2Vzc29yLnByb2Nlc3ModGV4dCwgcmV0dXJuRGlzcGxheVZhbHVlKTtcbiAgICBpZiAoIXRoaXMuZ2V0U3VydmV5KCkpIHJldHVybiB0ZXh0O1xuICAgIHJldHVybiB0aGlzLmdldFN1cnZleSgpLnByb2Nlc3NUZXh0KHRleHQsIHJldHVybkRpc3BsYXlWYWx1ZSk7XG4gIH1cbiAgcHJvY2Vzc1RleHRFeCh0ZXh0OiBzdHJpbmcsIHJldHVybkRpc3BsYXlWYWx1ZTogYm9vbGVhbik6IGFueSB7XG4gICAgdGV4dCA9IHRoaXMucHJvY2Vzc1RleHQodGV4dCwgcmV0dXJuRGlzcGxheVZhbHVlKTtcbiAgICBpZiAoIXRoaXMuZ2V0U3VydmV5KCkpIHJldHVybiB0ZXh0O1xuICAgIHZhciBoYXNBbGxWYWx1ZXNPbkxhc3RSdW4gPSB0aGlzLnRleHRQcmVQcm9jZXNzb3IuaGFzQWxsVmFsdWVzT25MYXN0UnVuO1xuICAgIHZhciByZXMgPSB0aGlzLmdldFN1cnZleSgpLnByb2Nlc3NUZXh0RXgodGV4dCwgcmV0dXJuRGlzcGxheVZhbHVlLCBmYWxzZSk7XG4gICAgcmVzLmhhc0FsbFZhbHVlc09uTGFzdFJ1biA9XG4gICAgICByZXMuaGFzQWxsVmFsdWVzT25MYXN0UnVuICYmIGhhc0FsbFZhbHVlc09uTGFzdFJ1bjtcbiAgICByZXR1cm4gcmVzO1xuICB9XG59XG5leHBvcnQgY2xhc3MgTWF0cml4RHJvcGRvd25Ub3RhbFJvd01vZGVsIGV4dGVuZHMgTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2Uge1xuICBjb25zdHJ1Y3RvcihkYXRhOiBJTWF0cml4RHJvcGRvd25EYXRhKSB7XG4gICAgc3VwZXIoZGF0YSwgbnVsbCk7XG4gICAgdGhpcy5idWlsZENlbGxzKG51bGwpO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVDZWxsKGNvbHVtbjogTWF0cml4RHJvcGRvd25Db2x1bW4pOiBNYXRyaXhEcm9wZG93bkNlbGwge1xuICAgIHJldHVybiBuZXcgTWF0cml4RHJvcGRvd25Ub3RhbENlbGwoY29sdW1uLCB0aGlzLCB0aGlzLmRhdGEpO1xuICB9XG4gIHB1YmxpYyBzZXRWYWx1ZShuYW1lOiBzdHJpbmcsIG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAoISF0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuZGF0YS5vblRvdGFsVmFsdWVDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBydW5Db25kaXRpb24odmFsdWVzOiBIYXNoVGFibGU8YW55PiwgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT4pIHtcbiAgICB2YXIgY291bnRlciA9IDA7XG4gICAgdmFyIHByZXZWYWx1ZTtcbiAgICBkbyB7XG4gICAgICBwcmV2VmFsdWUgPSBIZWxwZXJzLmdldFVuYmluZFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgc3VwZXIucnVuQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgICBjb3VudGVyKys7XG4gICAgfSB3aGlsZSAoIUhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyhwcmV2VmFsdWUsIHRoaXMudmFsdWUpICYmIGNvdW50ZXIgPCAzKTtcbiAgfVxuICBwcm90ZWN0ZWQgdXBkYXRlQ2VsbE9uQ29sdW1uQ2hhbmdlZChjZWxsOiBNYXRyaXhEcm9wZG93bkNlbGwpIHtcbiAgICAoPE1hdHJpeERyb3Bkb3duVG90YWxDZWxsPmNlbGwpLnVwZGF0ZUNlbGxRdWVzdGlvbigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRDZWxsIHtcbiAgcHJpdmF0ZSBzdGF0aWMgY291bnRlciA9IDE7XG4gIHByaXZhdGUgaWRWYWx1ZTogbnVtYmVyO1xuICBwdWJsaWMgbWluV2lkdGg6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyB3aWR0aDogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIGxvY1RpdGxlOiBMb2NhbGl6YWJsZVN0cmluZztcbiAgcHVibGljIGNlbGw6IE1hdHJpeERyb3Bkb3duQ2VsbDtcbiAgcHVibGljIHJvdzogTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2U7XG4gIHB1YmxpYyBxdWVzdGlvbjogUXVlc3Rpb247XG4gIHB1YmxpYyBpc1JlbW92ZVJvdzogYm9vbGVhbjtcbiAgcHVibGljIG1hdHJpeDogUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsQmFzZTtcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWRWYWx1ZSA9IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZENlbGwuY291bnRlcisrO1xuICB9XG4gIHB1YmxpYyBnZXQgaGFzUXVlc3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5xdWVzdGlvbjtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1RpdGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubG9jVGl0bGU7XG4gIH1cbiAgcHVibGljIGdldCBpZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFJvdyB7XG4gIHByaXZhdGUgc3RhdGljIGNvdW50ZXIgPSAxO1xuICBwcml2YXRlIGlkVmFsdWU6IG51bWJlcjtcbiAgcHVibGljIGNlbGxzOiBBcnJheTxRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRDZWxsPiA9IFtdO1xuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZFZhbHVlID0gUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkUm93LmNvdW50ZXIrKztcbiAgfVxuICBwdWJsaWMgZ2V0IGlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaWRWYWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkVGFibGUgZXh0ZW5kcyBCYXNlIHtcbiAgcHJpdmF0ZSBoZWFkZXJSb3dWYWx1ZTogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkUm93O1xuICBwcml2YXRlIGZvb3RlclJvd1ZhbHVlOiBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRSb3c7XG4gIHByaXZhdGUgaGFzUmVtb3ZlUm93c1ZhbHVlOiBib29sZWFuO1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIG1hdHJpeDogUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsQmFzZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jcmVhdGVOZXdBcnJheShcInJvd3NcIik7XG4gICAgdGhpcy5idWlsZCgpO1xuICB9XG4gIHB1YmxpYyBnZXQgc2hvd0hlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic2hvd0hlYWRlclwiKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNob3dGb290ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWF0cml4Lmhhc0Zvb3RlciAmJiB0aGlzLm1hdHJpeC5pc0NvbHVtbkxheW91dEhvcml6b250YWw7XG4gIH1cbiAgcHVibGljIGdldCBoYXNGb290ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5mb290ZXJSb3c7XG4gIH1cbiAgcHVibGljIGdldCBoYXNSZW1vdmVSb3dzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc1JlbW92ZVJvd3NWYWx1ZTtcbiAgfVxuICBwdWJsaWMgaXNSZXF1aXJlUmVzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaGFzUmVtb3ZlUm93cyAhPSB0aGlzLm1hdHJpeC5jYW5SZW1vdmVSb3dzIHx8XG4gICAgICAhdGhpcy5tYXRyaXguaXNDb2x1bW5MYXlvdXRIb3Jpem9udGFsXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhlYWRlclJvdygpOiBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRSb3cge1xuICAgIHJldHVybiB0aGlzLmhlYWRlclJvd1ZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgZm9vdGVyUm93KCk6IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFJvdyB7XG4gICAgcmV0dXJuIHRoaXMuZm9vdGVyUm93VmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCByb3dzKCk6IEFycmF5PFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFJvdz4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJyb3dzXCIpO1xuICB9XG4gIHByb3RlY3RlZCBidWlsZCgpIHtcbiAgICB0aGlzLmhhc1JlbW92ZVJvd3NWYWx1ZSA9IHRoaXMubWF0cml4LmNhblJlbW92ZVJvd3M7XG4gICAgLy9idWlsZCByb3dzIG5vd1xuICAgIHZhciByb3dzID0gdGhpcy5tYXRyaXgudmlzaWJsZVJvd3M7XG4gICAgdGhpcy5idWlsZEhlYWRlcigpO1xuICAgIHRoaXMuYnVpbGRSb3dzKCk7XG4gICAgdGhpcy5idWlsZEZvb3RlcigpO1xuICB9XG4gIHB1YmxpYyBvbkFkZGVkUm93KCkge1xuICAgIGlmICh0aGlzLnJvd3MubGVuZ3RoID49IHRoaXMubWF0cml4LnZpc2libGVSb3dzLmxlbmd0aCkgcmV0dXJuO1xuICAgIHRoaXMucm93cy5wdXNoKFxuICAgICAgdGhpcy5jcmVhdGVIb3Jpem9udGFsUm93KFxuICAgICAgICB0aGlzLm1hdHJpeC52aXNpYmxlUm93c1t0aGlzLm1hdHJpeC52aXNpYmxlUm93cy5sZW5ndGggLSAxXVxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgcHVibGljIG9uUmVtb3ZlZFJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMucm93cy5sZW5ndGggPD0gaW5kZXgpIHJldHVybjtcbiAgICB0aGlzLnJvd3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuICBwcm90ZWN0ZWQgYnVpbGRIZWFkZXIoKSB7XG4gICAgdmFyIGNvbEhlYWRlcnMgPVxuICAgICAgdGhpcy5tYXRyaXguaXNDb2x1bW5MYXlvdXRIb3Jpem9udGFsICYmIHRoaXMubWF0cml4LnNob3dIZWFkZXI7XG4gICAgdmFyIGlzU2hvd24gPVxuICAgICAgY29sSGVhZGVycyB8fFxuICAgICAgKHRoaXMubWF0cml4Lmhhc1Jvd1RleHQgJiYgIXRoaXMubWF0cml4LmlzQ29sdW1uTGF5b3V0SG9yaXpvbnRhbCk7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic2hvd0hlYWRlclwiLCBpc1Nob3duKTtcbiAgICBpZiAoIWlzU2hvd24pIHJldHVybjtcbiAgICB0aGlzLmhlYWRlclJvd1ZhbHVlID0gbmV3IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFJvdygpO1xuICAgIGlmICh0aGlzLm1hdHJpeC5oYXNSb3dUZXh0ICYmIHRoaXMubWF0cml4LnNob3dIZWFkZXIpIHtcbiAgICAgIHRoaXMuaGVhZGVyUm93LmNlbGxzLnB1c2godGhpcy5jcmVhdGVIZWFkZXJDZWxsKG51bGwpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF0cml4LmlzQ29sdW1uTGF5b3V0SG9yaXpvbnRhbCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1hdHJpeC52aXNpYmxlQ29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY29sdW1uID0gdGhpcy5tYXRyaXgudmlzaWJsZUNvbHVtbnNbaV07XG4gICAgICAgIGlmICghY29sdW1uLmhhc1Zpc2libGVDZWxsKSBjb250aW51ZTtcbiAgICAgICAgdGhpcy5oZWFkZXJSb3cuY2VsbHMucHVzaCh0aGlzLmNyZWF0ZUhlYWRlckNlbGwoY29sdW1uKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByb3dzID0gdGhpcy5tYXRyaXgudmlzaWJsZVJvd3M7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5oZWFkZXJSb3cuY2VsbHMucHVzaCh0aGlzLmNyZWF0ZVRleHRDZWxsKHJvd3NbaV0ubG9jVGV4dCkpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubWF0cml4Lmhhc0Zvb3Rlcikge1xuICAgICAgICB0aGlzLmhlYWRlclJvdy5jZWxscy5wdXNoKFxuICAgICAgICAgIHRoaXMuY3JlYXRlVGV4dENlbGwodGhpcy5tYXRyaXguZ2V0Rm9vdGVyVGV4dCgpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5oYXNSZW1vdmVSb3dzKSB7XG4gICAgICB0aGlzLmhlYWRlclJvdy5jZWxscy5wdXNoKHRoaXMuY3JlYXRlSGVhZGVyQ2VsbChudWxsKSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBidWlsZEZvb3RlcigpIHtcbiAgICBpZiAoIXRoaXMuc2hvd0Zvb3RlcikgcmV0dXJuO1xuICAgIHRoaXMuZm9vdGVyUm93VmFsdWUgPSBuZXcgUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkUm93KCk7XG4gICAgaWYgKHRoaXMubWF0cml4Lmhhc1Jvd1RleHQpIHtcbiAgICAgIHRoaXMuZm9vdGVyUm93LmNlbGxzLnB1c2goXG4gICAgICAgIHRoaXMuY3JlYXRlVGV4dENlbGwodGhpcy5tYXRyaXguZ2V0Rm9vdGVyVGV4dCgpKVxuICAgICAgKTtcbiAgICB9XG4gICAgdmFyIGNlbGxzID0gdGhpcy5tYXRyaXgudmlzaWJsZVRvdGFsUm93LmNlbGxzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghY2VsbHNbaV0uY29sdW1uLmhhc1Zpc2libGVDZWxsKSBjb250aW51ZTtcbiAgICAgIHRoaXMuZm9vdGVyUm93LmNlbGxzLnB1c2godGhpcy5jcmVhdGVFZGl0Q2VsbChjZWxsc1tpXSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNSZW1vdmVSb3dzKSB7XG4gICAgICB0aGlzLmZvb3RlclJvdy5jZWxscy5wdXNoKHRoaXMuY3JlYXRlSGVhZGVyQ2VsbChudWxsKSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBidWlsZFJvd3MoKSB7XG4gICAgdmFyIHJvd3MgPSB0aGlzLm1hdHJpeC5pc0NvbHVtbkxheW91dEhvcml6b250YWxcbiAgICAgID8gdGhpcy5idWlsZEhvcml6b250YWxSb3dzKClcbiAgICAgIDogdGhpcy5idWlsZFZlcnRpY2FsUm93cygpO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInJvd3NcIiwgcm93cyk7XG4gIH1cbiAgcHJpdmF0ZSBjYW5SZW1vdmVSb3cocm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1hdHJpeC5jYW5SZW1vdmVSb3cocm93KTtcbiAgfVxuICBwcml2YXRlIGJ1aWxkSG9yaXpvbnRhbFJvd3MoKTogQXJyYXk8UXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkUm93PiB7XG4gICAgdmFyIHJvd3MgPSB0aGlzLm1hdHJpeC52aXNpYmxlUm93cztcbiAgICB2YXIgcmVuZGVyZWRSb3dzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZW5kZXJlZFJvd3MucHVzaCh0aGlzLmNyZWF0ZUhvcml6b250YWxSb3cocm93c1tpXSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVuZGVyZWRSb3dzO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlSG9yaXpvbnRhbFJvdyhcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlXG4gICk6IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFJvdyB7XG4gICAgdmFyIHJlcyA9IG5ldyBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRSb3coKTtcbiAgICBpZiAodGhpcy5tYXRyaXguaGFzUm93VGV4dCkge1xuICAgICAgcmVzLmNlbGxzLnB1c2godGhpcy5jcmVhdGVUZXh0Q2VsbChyb3cubG9jVGV4dCkpO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvdy5jZWxscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNlbGwgPSByb3cuY2VsbHNbaV07XG4gICAgICBpZiAoIWNlbGwuY29sdW1uLmhhc1Zpc2libGVDZWxsKSBjb250aW51ZTtcbiAgICAgIHJlcy5jZWxscy5wdXNoKHRoaXMuY3JlYXRlRWRpdENlbGwoY2VsbCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNSZW1vdmVSb3dzKSB7XG4gICAgICByZXMuY2VsbHMucHVzaCh0aGlzLmNyZWF0ZVJlbW92ZVJvd0NlbGwocm93KSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBidWlsZFZlcnRpY2FsUm93cygpOiBBcnJheTxRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRSb3c+IHtcbiAgICB2YXIgY29sdW1ucyA9IHRoaXMubWF0cml4LmNvbHVtbnM7XG4gICAgdmFyIHJlbmRlcmVkUm93cyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGNvbHVtbnNbaV0uaXNWaXNpYmxlICYmIGNvbHVtbnNbaV0uaGFzVmlzaWJsZUNlbGwpIHtcbiAgICAgICAgcmVuZGVyZWRSb3dzLnB1c2godGhpcy5jcmVhdGVWZXJ0aWNhbFJvdyhjb2x1bW5zW2ldLCBpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc1JlbW92ZVJvd3MpIHtcbiAgICAgIHJlbmRlcmVkUm93cy5wdXNoKHRoaXMuY3JlYXRlVmVydGljYWxSZW1vdmVSb3coKSk7XG4gICAgfVxuICAgIHJldHVybiByZW5kZXJlZFJvd3M7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVWZXJ0aWNhbFJvdyhcbiAgICBjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uLFxuICAgIGluZGV4OiBudW1iZXJcbiAgKTogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkUm93IHtcbiAgICB2YXIgcmVzID0gbmV3IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFJvdygpO1xuICAgIGlmICh0aGlzLm1hdHJpeC5zaG93SGVhZGVyKSB7XG4gICAgICByZXMuY2VsbHMucHVzaCh0aGlzLmNyZWF0ZVRleHRDZWxsKGNvbHVtbi5sb2NUaXRsZSkpO1xuICAgIH1cbiAgICB2YXIgcm93cyA9IHRoaXMubWF0cml4LnZpc2libGVSb3dzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzLmNlbGxzLnB1c2godGhpcy5jcmVhdGVFZGl0Q2VsbChyb3dzW2ldLmNlbGxzW2luZGV4XSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXRyaXguaGFzVG90YWwpIHtcbiAgICAgIHJlcy5jZWxscy5wdXNoKFxuICAgICAgICB0aGlzLmNyZWF0ZUVkaXRDZWxsKHRoaXMubWF0cml4LnZpc2libGVUb3RhbFJvdy5jZWxsc1tpbmRleF0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlVmVydGljYWxSZW1vdmVSb3coKTogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkUm93IHtcbiAgICB2YXIgcmVzID0gbmV3IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFJvdygpO1xuICAgIGlmICh0aGlzLm1hdHJpeC5zaG93SGVhZGVyKSB7XG4gICAgICByZXMuY2VsbHMucHVzaCh0aGlzLmNyZWF0ZVRleHRDZWxsKG51bGwpKTtcbiAgICB9XG4gICAgdmFyIHJvd3MgPSB0aGlzLm1hdHJpeC52aXNpYmxlUm93cztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcy5jZWxscy5wdXNoKHRoaXMuY3JlYXRlUmVtb3ZlUm93Q2VsbChyb3dzW2ldKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1hdHJpeC5oYXNUb3RhbCkge1xuICAgICAgcmVzLmNlbGxzLnB1c2godGhpcy5jcmVhdGVUZXh0Q2VsbChudWxsKSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVFZGl0Q2VsbChcbiAgICBjZWxsOiBNYXRyaXhEcm9wZG93bkNlbGxcbiAgKTogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkQ2VsbCB7XG4gICAgdmFyIHJlcyA9IG5ldyBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRDZWxsKCk7XG4gICAgcmVzLmNlbGwgPSBjZWxsO1xuICAgIHJlcy5yb3cgPSBjZWxsLnJvdztcbiAgICByZXMucXVlc3Rpb24gPSBjZWxsLnF1ZXN0aW9uO1xuICAgIHJlcy5tYXRyaXggPSB0aGlzLm1hdHJpeDtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlSGVhZGVyQ2VsbChcbiAgICBjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uXG4gICk6IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZENlbGwge1xuICAgIHZhciBjZWxsID0gdGhpcy5jcmVhdGVUZXh0Q2VsbCghIWNvbHVtbiA/IGNvbHVtbi5sb2NUaXRsZSA6IG51bGwpO1xuICAgIGNlbGwubWluV2lkdGggPSBjb2x1bW4gIT0gbnVsbCA/IHRoaXMubWF0cml4LmdldENvbHVtbldpZHRoKGNvbHVtbikgOiBcIlwiO1xuICAgIGNlbGwud2lkdGggPSBjb2x1bW4gIT0gbnVsbCA/IGNvbHVtbi53aWR0aCA6IFwiXCI7XG4gICAgcmV0dXJuIGNlbGw7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVSZW1vdmVSb3dDZWxsKFxuICAgIHJvdzogTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2VcbiAgKTogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkQ2VsbCB7XG4gICAgdmFyIHJlcyA9IG5ldyBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRDZWxsKCk7XG4gICAgcmVzLnJvdyA9IHJvdztcbiAgICByZXMuaXNSZW1vdmVSb3cgPSB0aGlzLmNhblJlbW92ZVJvdyhyb3cpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVUZXh0Q2VsbChcbiAgICBsb2NUaXRsZTogTG9jYWxpemFibGVTdHJpbmdcbiAgKTogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkQ2VsbCB7XG4gICAgdmFyIGNlbGwgPSBuZXcgUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkQ2VsbCgpO1xuICAgIGNlbGwubG9jVGl0bGUgPSAhIWxvY1RpdGxlXG4gICAgICA/IGxvY1RpdGxlXG4gICAgICA6IG5ldyBMb2NhbGl6YWJsZVN0cmluZyh0aGlzLm1hdHJpeCwgZmFsc2UpO1xuICAgIHJldHVybiBjZWxsO1xuICB9XG59XG5cbi8qKlxuICogQSBiYXNlIGNsYXNzIGZvciBtYXRyaXggZHJvcGRvd24gYW5kIG1hdHJpeCBkeW5hbWljIHF1ZXN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbEJhc2VcbiAgZXh0ZW5kcyBRdWVzdGlvbk1hdHJpeEJhc2VNb2RlbDxcbiAgICBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSxcbiAgICBNYXRyaXhEcm9wZG93bkNvbHVtblxuICA+XG4gIGltcGxlbWVudHMgSU1hdHJpeERyb3Bkb3duRGF0YSB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGRlZmF1bHRDZWxsVHlwZSgpIHtcbiAgICByZXR1cm4gc2V0dGluZ3MubWF0cml4RGVmYXVsdENlbGxUeXBlO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgc2V0IGRlZmF1bHRDZWxsVHlwZSh2YWw6IHN0cmluZykge1xuICAgIHNldHRpbmdzLm1hdHJpeERlZmF1bHRDZWxsVHlwZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGFkZERlZmF1bHRDb2x1bW5zKG1hdHJpeDogUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsQmFzZSkge1xuICAgIHZhciBjb2xOYW1lcyA9IFF1ZXN0aW9uRmFjdG9yeS5EZWZhdWx0Q29sdW1zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sTmFtZXMubGVuZ3RoOyBpKyspIG1hdHJpeC5hZGRDb2x1bW4oY29sTmFtZXNbaV0pO1xuICB9XG4gIHByaXZhdGUgY2hvaWNlc1ZhbHVlOiBBcnJheTxJdGVtVmFsdWU+O1xuICBwcml2YXRlIHJlbmRlcmVkVGFibGVWYWx1ZTogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkVGFibGU7XG4gIHByb3RlY3RlZCBpc1Jvd0NoYW5naW5nID0gZmFsc2U7XG4gIGNvbHVtbnNDaGFuZ2VkQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gIHVwZGF0ZUNlbGxzQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gIGNvbHVtbkxheW91dENoYW5nZWRDYWxsYmFjazogKCkgPT4gdm9pZDtcbiAgb25SZW5kZXJlZFRhYmxlUmVzZXRDYWxsYmFjazogKCkgPT4gdm9pZDtcbiAgb25SZW5kZXJlZFRhYmxlQ3JlYXRlZENhbGxiYWNrOiAoXG4gICAgdGFibGU6IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFRhYmxlXG4gICkgPT4gdm9pZDtcblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29sdW1uVmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU5ld0FycmF5KFwiY29sdW1uc1wiLCAoaXRlbTogYW55KSA9PiB7XG4gICAgICBpdGVtLmNvbE93bmVyID0gdGhpcztcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5jaG9pY2VzVmFsdWUgPSB0aGlzLmNyZWF0ZUl0ZW1WYWx1ZXMoXCJjaG9pY2VzXCIpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJvcHRpb25zQ2FwdGlvblwiLCB0aGlzKTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFwiY29sdW1uc1wiLCBmdW5jdGlvbihcbiAgICAgIG5ld0NvbHVtbnM6IGFueVxuICAgICkge1xuICAgICAgc2VsZi51cGRhdGVDb2x1bW5zSW5kZXhlcyhuZXdDb2x1bW5zKTtcbiAgICAgIHNlbGYuZ2VuZXJhdGVkVmlzaWJsZVJvd3MgPSBudWxsO1xuICAgICAgc2VsZi5nZW5lcmF0ZWRUb3RhbFJvdyA9IG51bGw7XG4gICAgICBzZWxmLnJlc2V0UmVuZGVyZWRUYWJsZSgpO1xuICAgICAgc2VsZi5maXJlQ2FsbGJhY2soc2VsZi5jb2x1bW5zQ2hhbmdlZENhbGxiYWNrKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXCJjb2x1bW5MYXlvdXRcIiwgXCJhZGRSb3dMb2NhdGlvblwiXSxcbiAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLmZpcmVDYWxsYmFjayhzZWxmLmNvbHVtbkxheW91dENoYW5nZWRDYWxsYmFjayk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXCJjZWxsVHlwZVwiLCBcIm9wdGlvbnNDYXB0aW9uXCIsIFwiY29sdW1uQ29sQ291bnRcIl0sXG4gICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5nZW5lcmF0ZWRWaXNpYmxlUm93cyA9IG51bGw7XG4gICAgICAgIHNlbGYucmVzZXRSZW5kZXJlZFRhYmxlKCk7XG4gICAgICAgIHNlbGYuZmlyZUNhbGxiYWNrKHNlbGYuY29sdW1uc0NoYW5nZWRDYWxsYmFjayk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXG4gICAgICAgIFwiY29sdW1uTGF5b3V0XCIsXG4gICAgICAgIFwic2hvd0hlYWRlclwiLFxuICAgICAgICBcIm1pblJvd0NvdW50XCIsXG4gICAgICAgIFwiaXNSZWFkT25seVwiLFxuICAgICAgICBcInJvd0NvdW50XCIsXG4gICAgICAgIFwiaGFzRm9vdGVyXCJcbiAgICAgIF0sXG4gICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5yZXNldFJlbmRlcmVkVGFibGUoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwibWF0cml4ZHJvcGRvd25iYXNlXCI7XG4gIH1cbiAgcHVibGljIGdldCBpc1Jvd3NEeW5hbWljKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogU2V0IGNvbHVtbkxheW91dCB0byAndmVydGljYWwnIHRvIHBsYWNlIGNvbHVtbnMgdmVydGljYWxseSBhbmQgcm93cyBob3Jpem9udGFsbHkuIEl0IG1ha2VzIHNlbnNlIHdoZW4gd2UgaGF2ZSBtYW55IGNvbHVtbnMgYW5kIGZldyByb3dzLlxuICAgKiBAc2VlIGNvbHVtbnNcbiAgICogQHNlZSByb3dDb3VudFxuICAgKi9cbiAgcHVibGljIGdldCBjb2x1bW5MYXlvdXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY29sdW1uTGF5b3V0XCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY29sdW1uTGF5b3V0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY29sdW1uTGF5b3V0XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGNvbHVtbnNMb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbkxheW91dDtcbiAgfVxuICBzZXQgY29sdW1uc0xvY2F0aW9uKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb2x1bW5MYXlvdXQgPSB2YWw7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBjb2x1bW5zIGFyZSBsb2NhdGVkIGhvcml6b250YWxseVxuICAgKiBAc2VlIGNvbHVtbkxheW91dFxuICAgKi9cbiAgcHVibGljIGdldCBpc0NvbHVtbkxheW91dEhvcml6b250YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uTGF5b3V0ICE9IFwidmVydGljYWxcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1Jvd1RleHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIGdldEZvb3RlclRleHQoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXQgY2FuUmVtb3ZlUm93cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGNhblJlbW92ZVJvdyhyb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJvdGVjdGVkIG9uUm93c0NoYW5nZWQoKSB7XG4gICAgdGhpcy5yZXNldFJlbmRlcmVkVGFibGUoKTtcbiAgICBzdXBlci5vblJvd3NDaGFuZ2VkKCk7XG4gIH1cbiAgcHJpdmF0ZSBsb2NrUmVzZXRSZW5kZXJlZFRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBvblN0YXJ0Um93QWRkaW5nUmVtb3ZpbmcoKSB7XG4gICAgdGhpcy5sb2NrUmVzZXRSZW5kZXJlZFRhYmxlID0gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgb25FbmRSb3dBZGRpbmcoKSB7XG4gICAgdGhpcy5sb2NrUmVzZXRSZW5kZXJlZFRhYmxlID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLnJlbmRlcmVkVGFibGUpIHJldHVybjtcbiAgICBpZiAodGhpcy5yZW5kZXJlZFRhYmxlLmlzUmVxdWlyZVJlc2V0KCkpIHtcbiAgICAgIHRoaXMucmVzZXRSZW5kZXJlZFRhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZWRUYWJsZS5vbkFkZGVkUm93KCk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBvbkVuZFJvd1JlbW92aW5nKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmxvY2tSZXNldFJlbmRlcmVkVGFibGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5yZW5kZXJlZFRhYmxlLmlzUmVxdWlyZVJlc2V0KCkpIHtcbiAgICAgIHRoaXMucmVzZXRSZW5kZXJlZFRhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZWRUYWJsZS5vblJlbW92ZWRSb3coaW5kZXgpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgcmVzZXRSZW5kZXJlZFRhYmxlKCkge1xuICAgIGlmICh0aGlzLmxvY2tSZXNldFJlbmRlcmVkVGFibGUgfHwgdGhpcy5pc0xvYWRpbmdGcm9tSnNvbikgcmV0dXJuO1xuICAgIHRoaXMucmVuZGVyZWRUYWJsZVZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmZpcmVDYWxsYmFjayh0aGlzLm9uUmVuZGVyZWRUYWJsZVJlc2V0Q2FsbGJhY2spO1xuICB9XG4gIHB1YmxpYyBnZXQgcmVuZGVyZWRUYWJsZSgpOiBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRUYWJsZSB7XG4gICAgaWYgKCF0aGlzLnJlbmRlcmVkVGFibGVWYWx1ZSkge1xuICAgICAgdGhpcy5yZW5kZXJlZFRhYmxlVmFsdWUgPSB0aGlzLmNyZWF0ZVJlbmRlcmVkVGFibGUoKTtcbiAgICAgIGlmICghIXRoaXMub25SZW5kZXJlZFRhYmxlQ3JlYXRlZENhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMub25SZW5kZXJlZFRhYmxlQ3JlYXRlZENhbGxiYWNrKHRoaXMucmVuZGVyZWRUYWJsZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyZWRUYWJsZVZhbHVlO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVSZW5kZXJlZFRhYmxlKCk6IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFRhYmxlIHtcbiAgICByZXR1cm4gbmV3IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZFRhYmxlKHRoaXMpO1xuICB9XG4gIHByb3RlY3RlZCBvbk1hdHJpeFJvd0NyZWF0ZWQocm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSkge1xuICAgIGlmICghdGhpcy5zdXJ2ZXkpIHJldHVybjtcbiAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgIHJvd1ZhbHVlOiByb3cudmFsdWUsXG4gICAgICByb3c6IHJvdyxcbiAgICAgIGNvbHVtbjogPGFueT5udWxsLFxuICAgICAgY29sdW1uTmFtZTogPGFueT5udWxsLFxuICAgICAgY2VsbDogPGFueT5udWxsLFxuICAgICAgY2VsbFF1ZXN0aW9uOiA8YW55Pm51bGwsXG4gICAgICB2YWx1ZTogPGFueT5udWxsXG4gICAgfTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudmlzaWJsZUNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG9wdGlvbnMuY29sdW1uID0gdGhpcy52aXNpYmxlQ29sdW1uc1tpXTtcbiAgICAgIG9wdGlvbnMuY29sdW1uTmFtZSA9IG9wdGlvbnMuY29sdW1uLm5hbWU7XG4gICAgICB2YXIgY2VsbCA9IHJvdy5jZWxsc1tpXTtcbiAgICAgIG9wdGlvbnMuY2VsbCA9IGNlbGw7XG4gICAgICBvcHRpb25zLmNlbGxRdWVzdGlvbiA9IGNlbGwucXVlc3Rpb247XG4gICAgICBvcHRpb25zLnZhbHVlID0gY2VsbC52YWx1ZTtcbiAgICAgIHRoaXMuc3VydmV5Lm1hdHJpeENlbGxDcmVhdGVkKHRoaXMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IGNlbGwgdHlwZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgY2VsbFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY2VsbFR5cGVcIiwgc2V0dGluZ3MubWF0cml4RGVmYXVsdENlbGxUeXBlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNlbGxUeXBlKHZhbDogc3RyaW5nKSB7XG4gICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMuY2VsbFR5cGUgPT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY2VsbFR5cGVcIiwgdmFsKTtcbiAgICB0aGlzLnVwZGF0ZUNvbHVtbnNDZWxsVHlwZSgpO1xuICAgIHRoaXMuZmlyZUNhbGxiYWNrKHRoaXMudXBkYXRlQ2VsbHNDYWxsYmFjayk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVDb2x1bW5zQ2VsbFR5cGUoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuY29sdW1uc1tpXS5kZWZhdWx0Q2VsbFR5cGVDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgdXBkYXRlQ29sdW1uc0luZGV4ZXMoY29sczogQXJyYXk8TWF0cml4RHJvcGRvd25Db2x1bW4+KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2xzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb2xzW2ldLnNldEluZGV4KGkpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgY29sdW1uIGNvdW50IGZvciByYWRpb2dyb3VwIGFuZCBjaGVja2JveCAgY2VsbCB0eXBlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29sdW1uQ29sQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY29sdW1uQ29sQ291bnRcIiwgMCk7XG4gIH1cbiAgcHVibGljIHNldCBjb2x1bW5Db2xDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDQpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjb2x1bW5Db2xDb3VudFwiLCB2YWx1ZSk7XG4gICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy51cGRhdGVDZWxsc0NhbGxiYWNrKTtcbiAgfVxuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcGVydHkgdG8gc2V0IHRoZSBtaW1pbXVtIGNvbHVtbiB3aWR0aC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29sdW1uTWluV2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY29sdW1uTWluV2lkdGhcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBjb2x1bW5NaW5XaWR0aCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNvbHVtbk1pbldpZHRoXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUgdG8gc2hvdyB0aGUgaG9yaXpvbnRhbCBzY3JvbGwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhvcml6b250YWxTY3JvbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImhvcml6b250YWxTY3JvbGxcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgaG9yaXpvbnRhbFNjcm9sbCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJob3Jpem9udGFsU2Nyb2xsXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldFJlcXVpcmVkVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN1cnZleSA/IHRoaXMuc3VydmV5LnJlcXVpcmVkVGV4dCA6IFwiXCI7XG4gIH1cbiAgb25Db2x1bW5Qcm9wZXJ0aWVzQ2hhbmdlZChjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uKSB7XG4gICAgdGhpcy51cGRhdGVIYXNGb290ZXIoKTtcbiAgICBpZiAoIXRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MpIHJldHVybjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV0udXBkYXRlQ2VsbFF1ZXN0aW9uT25Db2x1bW5DaGFuZ2VkKGNvbHVtbik7XG4gICAgfVxuICAgIGlmICghIXRoaXMuZ2VuZXJhdGVkVG90YWxSb3cpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVkVG90YWxSb3cudXBkYXRlQ2VsbFF1ZXN0aW9uT25Db2x1bW5DaGFuZ2VkKGNvbHVtbik7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgaGFzRm9vdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJoYXNGb290ZXJcIiwgZmFsc2UpO1xuICB9XG4gIHByb3RlY3RlZCB1cGRhdGVIYXNGb290ZXIoKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaGFzRm9vdGVyXCIsIHRoaXMuaGFzVG90YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgaGFzVG90YWwoKTogYm9vbGVhbiB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNvbHVtbnNbaV0uaGFzVG90YWwpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZ2V0Q2VsbFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jZWxsVHlwZTtcbiAgfVxuICBwdWJsaWMgZ2V0Q29uZGl0aW9uSnNvbihvcGVyYXRvcjogc3RyaW5nID0gbnVsbCwgcGF0aDogc3RyaW5nID0gbnVsbCk6IGFueSB7XG4gICAgaWYgKCFwYXRoKSByZXR1cm4gc3VwZXIuZ2V0Q29uZGl0aW9uSnNvbigpO1xuICAgIHZhciBjb2x1bW5OYW1lID0gXCJcIjtcbiAgICBmb3IgKHZhciBpID0gcGF0aC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHBhdGhbaV0gPT0gXCIuXCIpIGJyZWFrO1xuICAgICAgY29sdW1uTmFtZSA9IHBhdGhbaV0gKyBjb2x1bW5OYW1lO1xuICAgIH1cbiAgICB2YXIgY29sdW1uID0gdGhpcy5nZXRDb2x1bW5CeU5hbWUoY29sdW1uTmFtZSk7XG4gICAgaWYgKCFjb2x1bW4pIHJldHVybiBudWxsO1xuICAgIHZhciBxdWVzdGlvbiA9IGNvbHVtbi5jcmVhdGVDZWxsUXVlc3Rpb24obnVsbCk7XG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHF1ZXN0aW9uLmdldENvbmRpdGlvbkpzb24ob3BlcmF0b3IpO1xuICB9XG4gIHB1YmxpYyBjbGVhckluY29ycmVjdFZhbHVlcygpIHtcbiAgICB2YXIgcm93cyA9IHRoaXMudmlzaWJsZVJvd3M7XG4gICAgaWYgKCFyb3dzKSByZXR1cm47XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByb3dzW2ldLmNsZWFySW5jb3JyZWN0VmFsdWVzKHRoaXMuZ2V0Um93VmFsdWUoaSkpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgY2xlYXJFcnJvcnMoKSB7XG4gICAgc3VwZXIuY2xlYXJFcnJvcnMoKTtcbiAgICBpZiAoISF0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHJvdyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV07XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcm93LmNlbGxzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgcm93LmNlbGxzW2pdLnF1ZXN0aW9uLmNsZWFyRXJyb3JzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcnVuQ29uZGl0aW9uKHZhbHVlczogSGFzaFRhYmxlPGFueT4sIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+KSB7XG4gICAgc3VwZXIucnVuQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgdGhpcy5ydW5DZWxsc0NvbmRpdGlvbih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIHRoaXMucnVuVG90YWxzQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gIH1cbiAgcHJvdGVjdGVkIHNob3VsZFJ1bkNvbHVtbkV4cHJlc3Npb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBydW5DZWxsc0NvbmRpdGlvbihcbiAgICB2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LFxuICAgIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+XG4gICkge1xuICAgIGlmICghdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cyB8fCAhdGhpcy5oYXNDZWxsc0NvbmRpdGlvbikgcmV0dXJuO1xuICAgIHZhciBuZXdWYWx1ZXMgPSB0aGlzLmdldFJvd0NvbmRpdGlvblZhbHVlcyh2YWx1ZXMpO1xuICAgIHZhciByb3dzID0gdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJvd3NbaV0ucnVuQ29uZGl0aW9uKG5ld1ZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tDb2x1bW5zVmlzaWJpbGl0eSgpO1xuICB9XG4gIHByaXZhdGUgY2hlY2tDb2x1bW5zVmlzaWJpbGl0eSgpIHtcbiAgICB2YXIgaGFzQ2hhbmdlZCA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy52aXNpYmxlQ29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLnZpc2libGVDb2x1bW5zW2ldLnZpc2libGVJZikgY29udGludWU7XG4gICAgICBoYXNDaGFuZ2VkID1cbiAgICAgICAgdGhpcy5pc0NvbHVtblZpc2liaWxpdHlDaGFuZ2VkKHRoaXMudmlzaWJsZUNvbHVtbnNbaV0pIHx8IGhhc0NoYW5nZWQ7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnJlc2V0UmVuZGVyZWRUYWJsZSgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGlzQ29sdW1uVmlzaWJpbGl0eUNoYW5nZWQoY29sdW1uOiBNYXRyaXhEcm9wZG93bkNvbHVtbik6IGJvb2xlYW4ge1xuICAgIHZhciBjdXJWaXMgPSBjb2x1bW4uaGFzVmlzaWJsZUNlbGw7XG4gICAgdmFyIGhhc1Zpc0NlbGwgPSBmYWxzZTtcbiAgICB2YXIgcm93cyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3M7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2VsbCA9IHJvd3NbaV0uY2VsbHNbY29sdW1uLmluZGV4XTtcbiAgICAgIGlmICghIWNlbGwgJiYgISFjZWxsLnF1ZXN0aW9uICYmIGNlbGwucXVlc3Rpb24uaXNWaXNpYmxlKSB7XG4gICAgICAgIGhhc1Zpc0NlbGwgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGN1clZpcyAhPSBoYXNWaXNDZWxsKSB7XG4gICAgICBjb2x1bW4uaGFzVmlzaWJsZUNlbGwgPSBoYXNWaXNDZWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3VyVmlzICE9IGhhc1Zpc0NlbGw7XG4gIH1cbiAgcHJvdGVjdGVkIHJ1blRvdGFsc0NvbmRpdGlvbihcbiAgICB2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LFxuICAgIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+XG4gICkge1xuICAgIGlmICghdGhpcy5nZW5lcmF0ZWRUb3RhbFJvdykgcmV0dXJuO1xuICAgIHRoaXMuZ2VuZXJhdGVkVG90YWxSb3cucnVuQ29uZGl0aW9uKFxuICAgICAgdGhpcy5nZXRSb3dDb25kaXRpb25WYWx1ZXModmFsdWVzKSxcbiAgICAgIHByb3BlcnRpZXNcbiAgICApO1xuICB9XG4gIHByaXZhdGUgZ2V0Um93Q29uZGl0aW9uVmFsdWVzKHZhbHVlczogSGFzaFRhYmxlPGFueT4pOiBIYXNoVGFibGU8YW55PiB7XG4gICAgdmFyIG5ld1ZhbHVlczogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgaWYgKHZhbHVlcyAmJiB2YWx1ZXMgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgIG5ld1ZhbHVlcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWVzKSk7XG4gICAgfVxuICAgIG5ld1ZhbHVlc1tcInJvd1wiXSA9IHt9O1xuICAgIHJldHVybiBuZXdWYWx1ZXM7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgaGFzQ2VsbHNDb25kaXRpb24oKTogYm9vbGVhbiB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNvbHVtbnNbaV0uaGFzQ29uZGl0aW9uKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBsb2NTdHJzQ2hhbmdlZCgpIHtcbiAgICBzdXBlci5sb2NTdHJzQ2hhbmdlZCgpO1xuICAgIHZhciByb3dzID0gdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cztcbiAgICBpZiAoIXJvd3MpIHJldHVybjtcbiAgICB2YXIgY29sdW1ucyA9IHRoaXMuY29sdW1ucztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbHVtbnNbaV0ubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByb3dzW2ldLmxvY1N0cnNDaGFuZ2VkKCk7XG4gICAgfVxuICAgIGlmICghIXRoaXMuZ2VuZXJhdGVkVG90YWxSb3cpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVkVG90YWxSb3cubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbHVtbiBieSBpdCdzIG5hbWUuIFJldHVucyBudWxsIGlmIGEgY29sdW1uIHdpdGggdGhpcyBuYW1lIGRvZXNuJ3QgZXhpc3QuXG4gICAqIEBwYXJhbSBjb2x1bW5cbiAgICovXG4gIHB1YmxpYyBnZXRDb2x1bW5CeU5hbWUoY29sdW1uTmFtZTogc3RyaW5nKTogTWF0cml4RHJvcGRvd25Db2x1bW4ge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5jb2x1bW5zW2ldLm5hbWUgPT0gY29sdW1uTmFtZSkgcmV0dXJuIHRoaXMuY29sdW1uc1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZ2V0Q29sdW1uTmFtZShjb2x1bW5OYW1lOiBzdHJpbmcpOiBNYXRyaXhEcm9wZG93bkNvbHVtbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uQnlOYW1lKGNvbHVtbk5hbWUpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb2x1bW4gd2lkdGguXG4gICAqIEBwYXJhbSBjb2x1bW5cbiAgICovXG4gIHB1YmxpYyBnZXRDb2x1bW5XaWR0aChjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29sdW1uLm1pbldpZHRoID8gY29sdW1uLm1pbldpZHRoIDogdGhpcy5jb2x1bW5NaW5XaWR0aDtcbiAgfVxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgY2hvaWNlcyBmb3IgZHJvcGRvd24sIGNoZWNrYm94IGFuZCByYWRpb2dyb3VwIGNlbGwgdHlwZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNob2ljZXMoKTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hvaWNlc1ZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgY2hvaWNlcyh2YWw6IEFycmF5PGFueT4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjaG9pY2VzXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IG9wdGlvbnMgY2FwdGlvbiBmb3IgZHJvcGRvd24gY2VsbCB0eXBlLlxuICAgKi9cbiAgcHVibGljIGdldCBvcHRpb25zQ2FwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXG4gICAgICBcIm9wdGlvbnNDYXB0aW9uXCIsXG4gICAgICBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwib3B0aW9uc0NhcHRpb25cIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgb3B0aW9uc0NhcHRpb24odmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcIm9wdGlvbnNDYXB0aW9uXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBsb2NPcHRpb25zQ2FwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcIm9wdGlvbnNDYXB0aW9uXCIpO1xuICB9XG4gIHB1YmxpYyBhZGRDb2x1bW4obmFtZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nID0gbnVsbCk6IE1hdHJpeERyb3Bkb3duQ29sdW1uIHtcbiAgICB2YXIgY29sdW1uID0gbmV3IE1hdHJpeERyb3Bkb3duQ29sdW1uKG5hbWUsIHRpdGxlKTtcbiAgICB0aGlzLmNvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgIHJldHVybiBjb2x1bW47XG4gIH1cbiAgcHJvdGVjdGVkIGdldFZpc2libGVSb3dzKCk6IEFycmF5PE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlPiB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHJldHVybiBudWxsO1xuICAgIGlmICghdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cykge1xuICAgICAgdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cyA9IHRoaXMuZ2VuZXJhdGVSb3dzKCk7XG4gICAgICB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzLmZvckVhY2gocm93ID0+IHRoaXMub25NYXRyaXhSb3dDcmVhdGVkKHJvdykpO1xuICAgICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgICB0aGlzLnJ1bkNlbGxzQ29uZGl0aW9uKFxuICAgICAgICAgIHRoaXMuZGF0YS5nZXRGaWx0ZXJlZFZhbHVlcygpLFxuICAgICAgICAgIHRoaXMuZGF0YS5nZXRGaWx0ZXJlZFByb3BlcnRpZXMoKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVWYWx1ZU9uUm93c0dlbmVyYXRpb24odGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlVmFsdWVPblJvd3NHZW5lcmF0aW9uKHJvd3M6IEFycmF5PE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlPikge1xuICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMuY3JlYXRlTmV3VmFsdWUodHJ1ZSk7XG4gICAgdmFyIG5ld1ZhbHVlID0gdGhpcy5jcmVhdGVOZXdWYWx1ZSgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHJvdyA9IHJvd3NbaV07XG4gICAgICB2YXIgcm93VmFsdWUgPSB0aGlzLmdldFJvd1ZhbHVlKGkpO1xuICAgICAgdmFyIHJWYWx1ZSA9IHJvdy52YWx1ZTtcbiAgICAgIGlmICh0aGlzLmlzVHdvVmFsdWVFcXVhbHMocm93VmFsdWUsIHJWYWx1ZSkpIGNvbnRpbnVlO1xuICAgICAgbmV3VmFsdWUgPSB0aGlzLmdldE5ld1ZhbHVlT25Sb3dDaGFuZ2VkKHJvdywgXCJcIiwgclZhbHVlLCBmYWxzZSwgbmV3VmFsdWUpXG4gICAgICAgIC52YWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNUd29WYWx1ZUVxdWFscyhvbGRWYWx1ZSwgbmV3VmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy5pc1Jvd0NoYW5naW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNldE5ld1ZhbHVlKG5ld1ZhbHVlKTtcbiAgICB0aGlzLmlzUm93Q2hhbmdpbmcgPSBmYWxzZTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRvdGFsVmFsdWUoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuaGFzVG90YWwpIHJldHVybiB7fTtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlVG90YWxSb3cudmFsdWU7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFZpc2libGVUb3RhbFJvdygpOiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHJldHVybiBudWxsO1xuICAgIGlmICh0aGlzLmhhc1RvdGFsKSB7XG4gICAgICBpZiAoIXRoaXMuZ2VuZXJhdGVkVG90YWxSb3cpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZWRUb3RhbFJvdyA9IHRoaXMuZ2VuZXJhdGVUb3RhbFJvdygpO1xuICAgICAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IHN1cnZleTogdGhpcy5zdXJ2ZXkgfTtcbiAgICAgICAgICB0aGlzLnJ1blRvdGFsc0NvbmRpdGlvbih0aGlzLmRhdGEuZ2V0QWxsVmFsdWVzKCksIHByb3BlcnRpZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVkVG90YWxSb3cgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZWRUb3RhbFJvdztcbiAgfVxuICBwdWJsaWMgZ2V0IHZpc2libGVUb3RhbFJvdygpOiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmlzaWJsZVRvdGFsUm93KCk7XG4gIH1cbiAgcHVibGljIG9uU3VydmV5TG9hZCgpIHtcbiAgICBzdXBlci5vblN1cnZleUxvYWQoKTtcbiAgICB0aGlzLnVwZGF0ZUNvbHVtbnNJbmRleGVzKHRoaXMuY29sdW1ucyk7XG4gICAgdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cyA9IG51bGw7XG4gICAgdGhpcy5nZW5lcmF0ZWRUb3RhbFJvdyA9IG51bGw7XG4gICAgdGhpcy51cGRhdGVIYXNGb290ZXIoKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcm93IHZhbHVlLiBJZiB0aGUgcm93IHZhbHVlIGlzIGVtcHR5LCB0aGUgb2JqZWN0IGlzIGVtcHR5OiB7fS5cbiAgICogQHBhcmFtIHJvd0luZGV4IHJvdyBpbmRleCBmcm9tIDAgdG8gdmlzaWJsZSByb3cgY291bnQgLSAxLlxuICAgKi9cbiAgcHVibGljIGdldFJvd1ZhbHVlKHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICBpZiAocm93SW5kZXggPCAwKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgdmlzUm93cyA9IHRoaXMudmlzaWJsZVJvd3M7XG4gICAgaWYgKHJvd0luZGV4ID49IHZpc1Jvd3MubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgbmV3VmFsdWUgPSB0aGlzLmNyZWF0ZU5ld1ZhbHVlKCk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Um93VmFsdWVDb3JlKHZpc1Jvd3Nbcm93SW5kZXhdLCBuZXdWYWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGUgcm93IHZhbHVlLlxuICAgKiBAcGFyYW0gcm93SW5kZXggcm93IGluZGV4IGZyb20gMCB0byB2aXNpYmxlIHJvdyBjb3VudCAtIDEuXG4gICAqIEBwYXJhbSByb3dWYWx1ZSBhbiBvYmplY3Qge1wiY29sdW1uIG5hbWVcIjogY29sdW1uVmFsdWUsLi4uIH1cbiAgICovXG4gIHB1YmxpYyBzZXRSb3dWYWx1ZShyb3dJbmRleDogbnVtYmVyLCByb3dWYWx1ZTogYW55KTogYW55IHtcbiAgICBpZiAocm93SW5kZXggPCAwKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgdmlzUm93cyA9IHRoaXMudmlzaWJsZVJvd3M7XG4gICAgaWYgKHJvd0luZGV4ID49IHZpc1Jvd3MubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLm9uUm93Q2hhbmdlZCh2aXNSb3dzW3Jvd0luZGV4XSwgXCJcIiwgcm93VmFsdWUsIGZhbHNlKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdlbmVyYXRlUm93cygpOiBBcnJheTxNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZT4ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBnZW5lcmF0ZVRvdGFsUm93KCk6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlIHtcbiAgICByZXR1cm4gbmV3IE1hdHJpeERyb3Bkb3duVG90YWxSb3dNb2RlbCh0aGlzKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTmV3VmFsdWUobnVsbE9uRW1wdHk6IGJvb2xlYW4gPSBmYWxzZSk6IGFueSB7XG4gICAgdmFyIHJlcyA9ICF0aGlzLnZhbHVlID8ge30gOiB0aGlzLmNyZWF0ZVZhbHVlQ29weSgpO1xuICAgIGlmIChudWxsT25FbXB0eSAmJiB0aGlzLmlzTWF0cml4VmFsdWVFbXB0eShyZXMpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBnZXRSb3dWYWx1ZUNvcmUoXG4gICAgcm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSxcbiAgICBxdWVzdGlvblZhbHVlOiBhbnksXG4gICAgY3JlYXRlOiBib29sZWFuID0gZmFsc2VcbiAgKTogYW55IHtcbiAgICB2YXIgcmVzdWx0ID1cbiAgICAgICEhcXVlc3Rpb25WYWx1ZSAmJiAhIXF1ZXN0aW9uVmFsdWVbcm93LnJvd05hbWVdXG4gICAgICAgID8gcXVlc3Rpb25WYWx1ZVtyb3cucm93TmFtZV1cbiAgICAgICAgOiBudWxsO1xuICAgIGlmICghcmVzdWx0ICYmIGNyZWF0ZSkge1xuICAgICAgcmVzdWx0ID0ge307XG4gICAgICBpZiAoISFxdWVzdGlvblZhbHVlKSB7XG4gICAgICAgIHF1ZXN0aW9uVmFsdWVbcm93LnJvd05hbWVdID0gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFJvd0Rpc3BsYXlWYWx1ZShcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIHJvd1ZhbHVlOiBhbnlcbiAgKTogYW55IHtcbiAgICBpZiAoIXJvd1ZhbHVlKSByZXR1cm4gcm93VmFsdWU7XG4gICAgZm9yICh2YXIga2V5IGluIHJvd1ZhbHVlKSB7XG4gICAgICB2YXIgcXVlc3Rpb24gPSByb3cuZ2V0UXVlc3Rpb25CeUNvbHVtbk5hbWUoa2V5KTtcbiAgICAgIGlmICghcXVlc3Rpb24pIHtcbiAgICAgICAgcXVlc3Rpb24gPSB0aGlzLmdldFNoYXJlZFF1ZXN0aW9uQnlOYW1lKGtleSwgcm93KTtcbiAgICAgIH1cbiAgICAgIGlmICghIXF1ZXN0aW9uKSB7XG4gICAgICAgIHJvd1ZhbHVlW2tleV0gPSBxdWVzdGlvbi5kaXNwbGF5VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByb3dWYWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0UGxhaW5EYXRhKFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGluY2x1ZGVFbXB0eT86IGJvb2xlYW47XG4gICAgICBjYWxjdWxhdGlvbnM/OiBBcnJheTx7XG4gICAgICAgIHByb3BlcnR5TmFtZTogc3RyaW5nO1xuICAgICAgfT47XG4gICAgfSA9IHtcbiAgICAgIGluY2x1ZGVFbXB0eTogdHJ1ZVxuICAgIH1cbiAgKSB7XG4gICAgdmFyIHF1ZXN0aW9uUGxhaW5EYXRhID0gc3VwZXIuZ2V0UGxhaW5EYXRhKG9wdGlvbnMpO1xuICAgIGlmICghIXF1ZXN0aW9uUGxhaW5EYXRhKSB7XG4gICAgICBxdWVzdGlvblBsYWluRGF0YS5pc05vZGUgPSB0cnVlO1xuICAgICAgcXVlc3Rpb25QbGFpbkRhdGEuZGF0YSA9IHRoaXMudmlzaWJsZVJvd3MubWFwKFxuICAgICAgICAocm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSkgPT4ge1xuICAgICAgICAgIHZhciByb3dEYXRhSXRlbSA9IDxhbnk+e1xuICAgICAgICAgICAgbmFtZTogcm93LnJvd05hbWUsXG4gICAgICAgICAgICB0aXRsZTogcm93LnJvd05hbWUsXG4gICAgICAgICAgICB2YWx1ZTogcm93LnZhbHVlLFxuICAgICAgICAgICAgZGlzcGxheVZhbHVlOiB0aGlzLmdldFJvd0Rpc3BsYXlWYWx1ZShyb3csIHJvdy52YWx1ZSksXG4gICAgICAgICAgICBnZXRTdHJpbmc6ICh2YWw6IGFueSkgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiA/IEpTT04uc3RyaW5naWZ5KHZhbCkgOiB2YWwsXG4gICAgICAgICAgICBpc05vZGU6IHRydWUsXG4gICAgICAgICAgICBkYXRhOiByb3cuY2VsbHNcbiAgICAgICAgICAgICAgLm1hcCgoY2VsbDogTWF0cml4RHJvcGRvd25DZWxsKSA9PlxuICAgICAgICAgICAgICAgIGNlbGwucXVlc3Rpb24uZ2V0UGxhaW5EYXRhKG9wdGlvbnMpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmZpbHRlcigoZDogYW55KSA9PiAhIWQpXG4gICAgICAgICAgfTtcbiAgICAgICAgICAob3B0aW9ucy5jYWxjdWxhdGlvbnMgfHwgW10pLmZvckVhY2goY2FsY3VsYXRpb24gPT4ge1xuICAgICAgICAgICAgcm93RGF0YUl0ZW1bY2FsY3VsYXRpb24ucHJvcGVydHlOYW1lXSA9ICg8YW55PnJvdylbXG4gICAgICAgICAgICAgIGNhbGN1bGF0aW9uLnByb3BlcnR5TmFtZVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcm93RGF0YUl0ZW07XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBxdWVzdGlvblBsYWluRGF0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJlZm9yZVZhbHVlQ2hhbmdlZCh2YWw6IGFueSkge31cbiAgcHJpdmF0ZSBvblNldFF1ZXN0aW9uVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuaXNSb3dDaGFuZ2luZykgcmV0dXJuO1xuICAgIHRoaXMub25CZWZvcmVWYWx1ZUNoYW5nZWQodGhpcy52YWx1ZSk7XG4gICAgaWYgKCF0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzIHx8IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MubGVuZ3RoID09IDApXG4gICAgICByZXR1cm47XG4gICAgdGhpcy5pc1Jvd0NoYW5naW5nID0gdHJ1ZTtcbiAgICB2YXIgdmFsID0gdGhpcy5jcmVhdGVOZXdWYWx1ZSgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHJvdyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV07XG4gICAgICB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzW2ldLnZhbHVlID0gdGhpcy5nZXRSb3dWYWx1ZUNvcmUocm93LCB2YWwpO1xuICAgIH1cbiAgICB0aGlzLmlzUm93Q2hhbmdpbmcgPSBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgc2V0UXVlc3Rpb25WYWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgc3VwZXIuc2V0UXVlc3Rpb25WYWx1ZShuZXdWYWx1ZSwgZmFsc2UpO1xuICAgIHRoaXMub25TZXRRdWVzdGlvblZhbHVlKCk7XG4gICAgdGhpcy51cGRhdGVJc0Fuc3dlcmVkKCk7XG4gIH1cbiAgc3VwcG9ydEdvTmV4dFBhZ2VBdXRvbWF0aWMoKSB7XG4gICAgdmFyIHJvd3MgPSB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzO1xuICAgIGlmICghcm93cykgcm93cyA9IHRoaXMudmlzaWJsZVJvd3M7XG4gICAgaWYgKCFyb3dzKSByZXR1cm4gdHJ1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjZWxscyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV0uY2VsbHM7XG4gICAgICBpZiAoIWNlbGxzKSBjb250aW51ZTtcbiAgICAgIGZvciAodmFyIGNvbEluZGV4ID0gMDsgY29sSW5kZXggPCBjZWxscy5sZW5ndGg7IGNvbEluZGV4KyspIHtcbiAgICAgICAgdmFyIHF1ZXN0aW9uID0gY2VsbHNbY29sSW5kZXhdLnF1ZXN0aW9uO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcXVlc3Rpb24gJiZcbiAgICAgICAgICAoIXF1ZXN0aW9uLnN1cHBvcnRHb05leHRQYWdlQXV0b21hdGljKCkgfHwgIXF1ZXN0aW9uLnZhbHVlKVxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29udGFpbnNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHN1cGVyLmdldENvbnRhaW5zRXJyb3JzKCkgfHxcbiAgICAgIHRoaXMuY2hlY2tGb3JBbnN3ZXJzT3JFcnJvcnMoXG4gICAgICAgIChxdWVzdGlvbjogUXVlc3Rpb24pID0+IHF1ZXN0aW9uLmNvbnRhaW5zRXJyb3JzLFxuICAgICAgICBmYWxzZVxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldElzQW5zd2VyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHN1cGVyLmdldElzQW5zd2VyZWQoKSAmJlxuICAgICAgdGhpcy5jaGVja0ZvckFuc3dlcnNPckVycm9ycyhcbiAgICAgICAgKHF1ZXN0aW9uOiBRdWVzdGlvbikgPT4gcXVlc3Rpb24uaXNBbnN3ZXJlZCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBjaGVja0ZvckFuc3dlcnNPckVycm9ycyhcbiAgICBwcmVkaWNhdGU6IChxdWVzdGlvbjogUXVlc3Rpb24pID0+IGJvb2xlYW4sXG4gICAgZXZlcnk6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICB2YXIgcm93cyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3M7XG4gICAgaWYgKCFyb3dzKSByZXR1cm4gZmFsc2U7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2VsbHMgPSByb3dzW2ldLmNlbGxzO1xuICAgICAgaWYgKCFjZWxscykgY29udGludWU7XG4gICAgICBmb3IgKHZhciBjb2xJbmRleCA9IDA7IGNvbEluZGV4IDwgY2VsbHMubGVuZ3RoOyBjb2xJbmRleCsrKSB7XG4gICAgICAgIGlmICghY2VsbHNbY29sSW5kZXhdKSBjb250aW51ZTtcbiAgICAgICAgdmFyIHF1ZXN0aW9uID0gY2VsbHNbY29sSW5kZXhdLnF1ZXN0aW9uO1xuICAgICAgICBpZiAocXVlc3Rpb24gJiYgcXVlc3Rpb24uaXNWaXNpYmxlKVxuICAgICAgICAgIGlmIChwcmVkaWNhdGUocXVlc3Rpb24pKSB7XG4gICAgICAgICAgICBpZiAoIWV2ZXJ5KSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGV2ZXJ5KSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZXZlcnkgPyB0cnVlIDogZmFsc2U7XG4gIH1cbiAgcHVibGljIGhhc0Vycm9ycyhmaXJlQ2FsbGJhY2s6IGJvb2xlYW4gPSB0cnVlLCByZWM6IGFueSA9IG51bGwpOiBib29sZWFuIHtcbiAgICB2YXIgZXJyb3NJbkNvbHVtbnMgPSB0aGlzLmhhc0Vycm9ySW5Db2x1bW5zKGZpcmVDYWxsYmFjayk7XG4gICAgcmV0dXJuIHN1cGVyLmhhc0Vycm9ycyhmaXJlQ2FsbGJhY2spIHx8IGVycm9zSW5Db2x1bW5zO1xuICB9XG4gIHByb3RlY3RlZCBnZXRJc1J1bm5pbmdWYWxpZGF0b3JzKCk6IGJvb2xlYW4ge1xuICAgIGlmIChzdXBlci5nZXRJc1J1bm5pbmdWYWxpZGF0b3JzKCkpIHJldHVybiB0cnVlO1xuICAgIGlmICghdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cykgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNlbGxzID0gdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93c1tpXS5jZWxscztcbiAgICAgIGlmICghY2VsbHMpIGNvbnRpbnVlO1xuICAgICAgZm9yICh2YXIgY29sSW5kZXggPSAwOyBjb2xJbmRleCA8IGNlbGxzLmxlbmd0aDsgY29sSW5kZXgrKykge1xuICAgICAgICBpZiAoIWNlbGxzW2NvbEluZGV4XSkgY29udGludWU7XG4gICAgICAgIHZhciBxdWVzdGlvbiA9IGNlbGxzW2NvbEluZGV4XS5xdWVzdGlvbjtcbiAgICAgICAgaWYgKCEhcXVlc3Rpb24gJiYgcXVlc3Rpb24uaXNSdW5uaW5nVmFsaWRhdG9ycykgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgZ2V0QWxsRXJyb3JzKCk6IEFycmF5PFN1cnZleUVycm9yPiB7XG4gICAgdmFyIHJlc3VsdCA9IHN1cGVyLmdldEFsbEVycm9ycygpO1xuICAgIHZhciByb3dzID0gdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cztcblxuICAgIGlmIChyb3dzID09PSBudWxsKSByZXR1cm4gcmVzdWx0O1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcm93ID0gcm93c1tpXTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcm93LmNlbGxzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBlcnJvcnMgPSByb3cuY2VsbHNbal0ucXVlc3Rpb24uZ2V0QWxsRXJyb3JzKCk7XG4gICAgICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGVycm9ycyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwcml2YXRlIGhhc0Vycm9ySW5Db2x1bW5zKGZpcmVDYWxsYmFjazogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cykgcmV0dXJuIGZhbHNlO1xuICAgIHZhciByZXMgPSBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjZWxscyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV0uY2VsbHM7XG4gICAgICBpZiAoIWNlbGxzKSBjb250aW51ZTtcbiAgICAgIGZvciAodmFyIGNvbEluZGV4ID0gMDsgY29sSW5kZXggPCBjZWxscy5sZW5ndGg7IGNvbEluZGV4KyspIHtcbiAgICAgICAgaWYgKCFjZWxsc1tjb2xJbmRleF0pIGNvbnRpbnVlO1xuICAgICAgICB2YXIgcXVlc3Rpb24gPSBjZWxsc1tjb2xJbmRleF0ucXVlc3Rpb247XG4gICAgICAgIGlmICghcXVlc3Rpb24gfHwgIXF1ZXN0aW9uLnZpc2libGUpIGNvbnRpbnVlO1xuICAgICAgICBxdWVzdGlvbi5vbkNvbXBsZXRlZEFzeW5jVmFsaWRhdG9ycyA9IChoYXNFcnJvcnM6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICB0aGlzLnJhaXNlT25Db21wbGV0ZWRBc3luY1ZhbGlkYXRvcnMoKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVzID0gcXVlc3Rpb24uaGFzRXJyb3JzKGZpcmVDYWxsYmFjaykgfHwgcmVzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBnZXRGaXJzdElucHV0RWxlbWVudElkKCk6IHN0cmluZyB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5nZXRGaXJzdENlbGxRdWVzdGlvbihmYWxzZSk7XG4gICAgcmV0dXJuIHF1ZXN0aW9uID8gcXVlc3Rpb24uaW5wdXRJZCA6IHN1cGVyLmdldEZpcnN0SW5wdXRFbGVtZW50SWQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Rmlyc3RFcnJvcklucHV0RWxlbWVudElkKCk6IHN0cmluZyB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5nZXRGaXJzdENlbGxRdWVzdGlvbih0cnVlKTtcbiAgICByZXR1cm4gcXVlc3Rpb24gPyBxdWVzdGlvbi5pbnB1dElkIDogc3VwZXIuZ2V0Rmlyc3RFcnJvcklucHV0RWxlbWVudElkKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEZpcnN0Q2VsbFF1ZXN0aW9uKG9uRXJyb3I6IGJvb2xlYW4pOiBRdWVzdGlvbiB7XG4gICAgaWYgKCF0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzKSByZXR1cm4gbnVsbDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjZWxscyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV0uY2VsbHM7XG4gICAgICBmb3IgKHZhciBjb2xJbmRleCA9IDA7IGNvbEluZGV4IDwgY2VsbHMubGVuZ3RoOyBjb2xJbmRleCsrKSB7XG4gICAgICAgIGlmICghb25FcnJvcikgcmV0dXJuIGNlbGxzW2NvbEluZGV4XS5xdWVzdGlvbjtcbiAgICAgICAgaWYgKGNlbGxzW2NvbEluZGV4XS5xdWVzdGlvbi5jdXJyZW50RXJyb3JDb3VudCA+IDApXG4gICAgICAgICAgcmV0dXJuIGNlbGxzW2NvbEluZGV4XS5xdWVzdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIG9uUmVhZE9ubHlDaGFuZ2VkKCkge1xuICAgIHN1cGVyLm9uUmVhZE9ubHlDaGFuZ2VkKCk7XG4gICAgaWYgKCF0aGlzLmdlbmVyYXRlUm93cykgcmV0dXJuO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy52aXNpYmxlUm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy52aXNpYmxlUm93c1tpXS5vblF1ZXN0aW9uUmVhZE9ubHlDaGFuZ2VkKHRoaXMuaXNSZWFkT25seSk7XG4gICAgfVxuICB9XG5cbiAgLy9JTWF0cml4RHJvcGRvd25EYXRhXG4gIHB1YmxpYyBjcmVhdGVRdWVzdGlvbihcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIGNvbHVtbjogTWF0cml4RHJvcGRvd25Db2x1bW5cbiAgKTogUXVlc3Rpb24ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVF1ZXN0aW9uQ29yZShyb3csIGNvbHVtbik7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZVF1ZXN0aW9uQ29yZShcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIGNvbHVtbjogTWF0cml4RHJvcGRvd25Db2x1bW5cbiAgKTogUXVlc3Rpb24ge1xuICAgIHZhciBxdWVzdGlvbiA9IGNvbHVtbi5jcmVhdGVDZWxsUXVlc3Rpb24ocm93KTtcbiAgICBpZiAodGhpcy5pc1JlYWRPbmx5KSB7XG4gICAgICBxdWVzdGlvbi5yZWFkT25seSA9IHRydWU7XG4gICAgfVxuICAgIHF1ZXN0aW9uLnNldFN1cnZleUltcGwocm93KTtcbiAgICByZXR1cm4gcXVlc3Rpb247XG4gIH1cbiAgcHJvdGVjdGVkIGRlbGV0ZVJvd1ZhbHVlKFxuICAgIG5ld1ZhbHVlOiBhbnksXG4gICAgcm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZVxuICApOiBhbnkge1xuICAgIGlmICghbmV3VmFsdWUpIHJldHVybiBuZXdWYWx1ZTtcbiAgICBkZWxldGUgbmV3VmFsdWVbcm93LnJvd05hbWVdO1xuICAgIHJldHVybiB0aGlzLmlzT2JqZWN0KG5ld1ZhbHVlKSAmJiBPYmplY3Qua2V5cyhuZXdWYWx1ZSkubGVuZ3RoID09IDBcbiAgICAgID8gbnVsbFxuICAgICAgOiBuZXdWYWx1ZTtcbiAgfVxuICBwcml2YXRlIGlzRG9pbmdvbkFueVZhbHVlQ2hhbmdlZCA9IGZhbHNlO1xuICBvbkFueVZhbHVlQ2hhbmdlZChuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmlzTG9hZGluZ0Zyb21Kc29uIHx8XG4gICAgICB0aGlzLmlzRG9pbmdvbkFueVZhbHVlQ2hhbmdlZCB8fFxuICAgICAgIXRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NcbiAgICApXG4gICAgICByZXR1cm47XG4gICAgdGhpcy5pc0RvaW5nb25BbnlWYWx1ZUNoYW5nZWQgPSB0cnVlO1xuICAgIHZhciByb3dzID0gdGhpcy52aXNpYmxlUm93cztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJvd3NbaV0ub25BbnlWYWx1ZUNoYW5nZWQobmFtZSk7XG4gICAgfVxuICAgIHZhciB0b3RhbFJvdyA9IHRoaXMudmlzaWJsZVRvdGFsUm93O1xuICAgIGlmICghIXRvdGFsUm93KSB7XG4gICAgICB0b3RhbFJvdy5vbkFueVZhbHVlQ2hhbmdlZChuYW1lKTtcbiAgICB9XG4gICAgdGhpcy5pc0RvaW5nb25BbnlWYWx1ZUNoYW5nZWQgPSBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgaXNPYmplY3QodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gIH1cbiAgcHJpdmF0ZSBnZXRPbkNlbGxWYWx1ZUNoYW5nZWRPcHRpb25zKFxuICAgIHJvdzogTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UsXG4gICAgY29sdW1uTmFtZTogc3RyaW5nLFxuICAgIHJvd1ZhbHVlOiBhbnlcbiAgKTogYW55IHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIGdldFF1ZXN0aW9uID0gZnVuY3Rpb24oY29sTmFtZTogYW55KSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgc2VsZi5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLmNvbHVtbnNbaV0ubmFtZSA9PT0gY29sTmFtZSkge1xuICAgICAgICAgIHJldHVybiByb3cuY2VsbHNbaV0ucXVlc3Rpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvdzogcm93LFxuICAgICAgY29sdW1uTmFtZTogY29sdW1uTmFtZSxcbiAgICAgIHJvd1ZhbHVlOiByb3dWYWx1ZSxcbiAgICAgIHZhbHVlOiAhIXJvd1ZhbHVlID8gcm93VmFsdWVbY29sdW1uTmFtZV0gOiBudWxsLFxuICAgICAgZ2V0Q2VsbFF1ZXN0aW9uOiBnZXRRdWVzdGlvblxuICAgIH07XG4gIH1cbiAgcHJvdGVjdGVkIG9uQ2VsbFZhbHVlQ2hhbmdlZChcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgICByb3dWYWx1ZTogYW55XG4gICkge1xuICAgIGlmICghdGhpcy5zdXJ2ZXkpIHJldHVybjtcbiAgICB2YXIgb3B0aW9ucyA9IHRoaXMuZ2V0T25DZWxsVmFsdWVDaGFuZ2VkT3B0aW9ucyhyb3csIGNvbHVtbk5hbWUsIHJvd1ZhbHVlKTtcbiAgICB0aGlzLnN1cnZleS5tYXRyaXhDZWxsVmFsdWVDaGFuZ2VkKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIHZhbGlkYXRlQ2VsbChcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgICByb3dWYWx1ZTogYW55XG4gICk6IFN1cnZleUVycm9yIHtcbiAgICBpZiAoIXRoaXMuc3VydmV5KSByZXR1cm47XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBnZXRRdWVzdGlvbiA9IGZ1bmN0aW9uKGNvbE5hbWU6IGFueSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IHNlbGYuY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc2VsZi5jb2x1bW5zW2ldLm5hbWUgPT09IGNvbE5hbWUpIHtcbiAgICAgICAgICByZXR1cm4gcm93LmNlbGxzW2ldLnF1ZXN0aW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgcm93OiByb3csXG4gICAgICBjb2x1bW5OYW1lOiBjb2x1bW5OYW1lLFxuICAgICAgcm93VmFsdWU6IHJvd1ZhbHVlLFxuICAgICAgdmFsdWU6IHJvd1ZhbHVlW2NvbHVtbk5hbWVdLFxuICAgICAgZ2V0Q2VsbFF1ZXN0aW9uOiBnZXRRdWVzdGlvblxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5Lm1hdHJpeENlbGxWYWxpZGF0ZSh0aGlzLCBvcHRpb25zKTtcbiAgfVxuICBvblJvd0NoYW5naW5nKFxuICAgIHJvdzogTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UsXG4gICAgY29sdW1uTmFtZTogc3RyaW5nLFxuICAgIHJvd1ZhbHVlOiBhbnlcbiAgKTogYW55IHtcbiAgICBpZiAoIXRoaXMuc3VydmV5KSByZXR1cm4gISFyb3dWYWx1ZSA/IHJvd1ZhbHVlW2NvbHVtbk5hbWVdIDogbnVsbDtcbiAgICB2YXIgb3B0aW9ucyA9IHRoaXMuZ2V0T25DZWxsVmFsdWVDaGFuZ2VkT3B0aW9ucyhyb3csIGNvbHVtbk5hbWUsIHJvd1ZhbHVlKTtcbiAgICB2YXIgb2xkUm93VmFsdWUgPSB0aGlzLmdldFJvd1ZhbHVlQ29yZShyb3csIHRoaXMuY3JlYXRlTmV3VmFsdWUoKSwgdHJ1ZSk7XG4gICAgb3B0aW9ucy5vbGRWYWx1ZSA9ICEhb2xkUm93VmFsdWUgPyBvbGRSb3dWYWx1ZVtjb2x1bW5OYW1lXSA6IG51bGw7XG4gICAgdGhpcy5zdXJ2ZXkubWF0cml4Q2VsbFZhbHVlQ2hhbmdpbmcodGhpcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnMudmFsdWU7XG4gIH1cbiAgb25Sb3dDaGFuZ2VkKFxuICAgIHJvdzogTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UsXG4gICAgY29sdW1uTmFtZTogc3RyaW5nLFxuICAgIG5ld1Jvd1ZhbHVlOiBhbnksXG4gICAgaXNEZWxldGluZ1ZhbHVlOiBib29sZWFuXG4gICkge1xuICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMuY3JlYXRlTmV3VmFsdWUodHJ1ZSk7XG4gICAgdmFyIGNvbWJpbmUgPSB0aGlzLmdldE5ld1ZhbHVlT25Sb3dDaGFuZ2VkKFxuICAgICAgcm93LFxuICAgICAgY29sdW1uTmFtZSxcbiAgICAgIG5ld1Jvd1ZhbHVlLFxuICAgICAgaXNEZWxldGluZ1ZhbHVlLFxuICAgICAgdGhpcy5jcmVhdGVOZXdWYWx1ZSgpXG4gICAgKTtcbiAgICBpZiAodGhpcy5pc1R3b1ZhbHVlRXF1YWxzKG9sZFZhbHVlLCBjb21iaW5lLnZhbHVlKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNSb3dDaGFuZ2luZyA9IHRydWU7XG4gICAgdGhpcy5zZXROZXdWYWx1ZShjb21iaW5lLnZhbHVlKTtcbiAgICB0aGlzLmlzUm93Q2hhbmdpbmcgPSBmYWxzZTtcbiAgICBpZiAoY29sdW1uTmFtZSkge1xuICAgICAgdGhpcy5vbkNlbGxWYWx1ZUNoYW5nZWQocm93LCBjb2x1bW5OYW1lLCBjb21iaW5lLnJvd1ZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXROZXdWYWx1ZU9uUm93Q2hhbmdlZChcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgICBuZXdSb3dWYWx1ZTogYW55LFxuICAgIGlzRGVsZXRpbmdWYWx1ZTogYm9vbGVhbixcbiAgICBuZXdWYWx1ZTogYW55XG4gICk6IGFueSB7XG4gICAgdmFyIHJvd1ZhbHVlID0gdGhpcy5nZXRSb3dWYWx1ZUNvcmUocm93LCBuZXdWYWx1ZSwgdHJ1ZSk7XG4gICAgaWYgKGlzRGVsZXRpbmdWYWx1ZSkge1xuICAgICAgZGVsZXRlIHJvd1ZhbHVlW2NvbHVtbk5hbWVdO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvdy5jZWxscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IHJvdy5jZWxsc1tpXS5xdWVzdGlvbi5nZXRWYWx1ZU5hbWUoKTtcbiAgICAgIGRlbGV0ZSByb3dWYWx1ZVtrZXldO1xuICAgIH1cbiAgICBpZiAobmV3Um93VmFsdWUpIHtcbiAgICAgIG5ld1Jvd1ZhbHVlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdSb3dWYWx1ZSkpO1xuICAgICAgZm9yICh2YXIga2V5IGluIG5ld1Jvd1ZhbHVlKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbHVlRW1wdHkobmV3Um93VmFsdWVba2V5XSkpIHtcbiAgICAgICAgICByb3dWYWx1ZVtrZXldID0gbmV3Um93VmFsdWVba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc09iamVjdChyb3dWYWx1ZSkgJiYgT2JqZWN0LmtleXMocm93VmFsdWUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbmV3VmFsdWUgPSB0aGlzLmRlbGV0ZVJvd1ZhbHVlKG5ld1ZhbHVlLCByb3cpO1xuICAgIH1cbiAgICByZXR1cm4geyB2YWx1ZTogbmV3VmFsdWUsIHJvd1ZhbHVlOiByb3dWYWx1ZSB9O1xuICB9XG4gIGdldFJvd0luZGV4KHJvdzogTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVSb3dzLmluZGV4T2Yocm93KTtcbiAgfVxuICBnZXRTaGFyZWRRdWVzdGlvbkJ5TmFtZShcbiAgICBjb2x1bW5OYW1lOiBzdHJpbmcsXG4gICAgcm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZVxuICApOiBRdWVzdGlvbiB7XG4gICAgaWYgKCF0aGlzLnN1cnZleSB8fCAhdGhpcy52YWx1ZU5hbWUpIHJldHVybiBudWxsO1xuICAgIHZhciBpbmRleCA9IHRoaXMuZ2V0Um93SW5kZXgocm93KTtcbiAgICBpZiAoaW5kZXggPCAwKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gPFF1ZXN0aW9uPihcbiAgICAgIHRoaXMuc3VydmV5LmdldFF1ZXN0aW9uQnlWYWx1ZU5hbWVGcm9tQXJyYXkoXG4gICAgICAgIHRoaXMudmFsdWVOYW1lLFxuICAgICAgICBjb2x1bW5OYW1lLFxuICAgICAgICBpbmRleFxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgb25Ub3RhbFZhbHVlQ2hhbmdlZCgpOiBhbnkge1xuICAgIGlmICghIXRoaXMuZGF0YSAmJiAhIXRoaXMudmlzaWJsZVRvdGFsUm93KSB7XG4gICAgICB0aGlzLmRhdGEuc2V0VmFsdWUoXG4gICAgICAgIHRoaXMuZ2V0VmFsdWVOYW1lKCkgKyBzZXR0aW5ncy5tYXRyaXhUb3RhbFZhbHVlUG9zdEZpeCxcbiAgICAgICAgdGhpcy50b3RhbFZhbHVlLFxuICAgICAgICBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldFF1ZXN0aW9uRnJvbUFycmF5KG5hbWU6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IElRdWVzdGlvbiB7XG4gICAgaWYgKGluZGV4ID49IHRoaXMudmlzaWJsZVJvd3MubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlUm93c1tpbmRleF0uZ2V0UXVlc3Rpb25CeUNvbHVtbk5hbWUobmFtZSk7XG4gIH1cbiAgcHJpdmF0ZSBpc01hdHJpeFZhbHVlRW1wdHkodmFsOiBhbnkpIHtcbiAgICBpZiAoIXZhbCkgcmV0dXJuO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT2JqZWN0KHZhbFtpXSkgJiYgT2JqZWN0LmtleXModmFsW2ldKS5sZW5ndGggPiAwKVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXModmFsKS5sZW5ndGggPT0gMDtcbiAgfVxuICBnZXRTdXJ2ZXkoKTogSVN1cnZleSB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5O1xuICB9XG59XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwibWF0cml4ZHJvcGRvd25jb2x1bW5cIixcbiAgW1xuICAgIFwiIW5hbWVcIixcbiAgICB7IG5hbWU6IFwidGl0bGVcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1RpdGxlXCIgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImNlbGxUeXBlXCIsXG4gICAgICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgICAgIGNob2ljZXM6ICgpID0+IHtcbiAgICAgICAgdmFyIHJlcyA9IE1hdHJpeERyb3Bkb3duQ29sdW1uLmdldENvbHVtblR5cGVzKCk7XG4gICAgICAgIHJlcy5zcGxpY2UoMCwgMCwgXCJkZWZhdWx0XCIpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgIH0sXG4gICAgeyBuYW1lOiBcImNvbENvdW50XCIsIGRlZmF1bHQ6IC0xLCBjaG9pY2VzOiBbLTEsIDAsIDEsIDIsIDMsIDRdIH0sXG4gICAgXCJpc1JlcXVpcmVkOmJvb2xlYW5cIixcbiAgICB7XG4gICAgICBuYW1lOiBcInJlcXVpcmVkRXJyb3JUZXh0OnRleHRcIixcbiAgICAgIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NSZXF1aXJlZEVycm9yVGV4dFwiXG4gICAgfSxcbiAgICBcImhhc090aGVyOmJvb2xlYW5cIixcbiAgICBcInJlYWRPbmx5OmJvb2xlYW5cIixcbiAgICBcIm1pbldpZHRoXCIsXG4gICAgXCJ3aWR0aFwiLFxuICAgIFwidmlzaWJsZUlmOmNvbmRpdGlvblwiLFxuICAgIFwiZW5hYmxlSWY6Y29uZGl0aW9uXCIsXG4gICAgXCJyZXF1aXJlZElmOmNvbmRpdGlvblwiLFxuICAgIHtcbiAgICAgIG5hbWU6IFwidmFsaWRhdG9yczp2YWxpZGF0b3JzXCIsXG4gICAgICBiYXNlQ2xhc3NOYW1lOiBcInN1cnZleXZhbGlkYXRvclwiLFxuICAgICAgY2xhc3NOYW1lUGFydDogXCJ2YWxpZGF0b3JcIlxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ0b3RhbFR5cGVcIixcbiAgICAgIGRlZmF1bHQ6IFwibm9uZVwiLFxuICAgICAgY2hvaWNlczogW1wibm9uZVwiLCBcInN1bVwiLCBcImNvdW50XCIsIFwibWluXCIsIFwibWF4XCIsIFwiYXZnXCJdXG4gICAgfSxcbiAgICBcInRvdGFsRXhwcmVzc2lvbjpleHByZXNzaW9uXCIsXG4gICAgeyBuYW1lOiBcInRvdGFsRm9ybWF0XCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NUb3RhbEZvcm1hdFwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ0b3RhbERpc3BsYXlTdHlsZVwiLFxuICAgICAgZGVmYXVsdDogXCJub25lXCIsXG4gICAgICBjaG9pY2VzOiBbXCJub25lXCIsIFwiZGVjaW1hbFwiLCBcImN1cnJlbmN5XCIsIFwicGVyY2VudFwiXVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ0b3RhbEN1cnJlbmN5XCIsXG4gICAgICBjaG9pY2VzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBnZXRDdXJyZWN5Q29kZXMoKTtcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0OiBcIlVTRFwiXG4gICAgfSxcbiAgICB7IG5hbWU6IFwidG90YWxNYXhpbXVtRnJhY3Rpb25EaWdpdHM6bnVtYmVyXCIsIGRlZmF1bHQ6IC0xIH0sXG4gICAgeyBuYW1lOiBcInRvdGFsTWluaW11bUZyYWN0aW9uRGlnaXRzOm51bWJlclwiLCBkZWZhdWx0OiAtMSB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTWF0cml4RHJvcGRvd25Db2x1bW4oXCJcIik7XG4gIH1cbik7XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwibWF0cml4ZHJvcGRvd25iYXNlXCIsXG4gIFtcbiAgICB7XG4gICAgICBuYW1lOiBcImNvbHVtbnM6bWF0cml4ZHJvcGRvd25jb2x1bW5zXCIsXG4gICAgICBjbGFzc05hbWU6IFwibWF0cml4ZHJvcGRvd25jb2x1bW5cIlxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJjb2x1bW5MYXlvdXRcIixcbiAgICAgIGFsdGVybmF0aXZlTmFtZTogXCJjb2x1bW5zTG9jYXRpb25cIixcbiAgICAgIGRlZmF1bHQ6IFwiaG9yaXpvbnRhbFwiLFxuICAgICAgY2hvaWNlczogW1wiaG9yaXpvbnRhbFwiLCBcInZlcnRpY2FsXCJdXG4gICAgfSxcbiAgICBcImhvcml6b250YWxTY3JvbGw6Ym9vbGVhblwiLFxuICAgIHtcbiAgICAgIG5hbWU6IFwiY2hvaWNlczppdGVtdmFsdWVbXVwiXG4gICAgfSxcbiAgICB7IG5hbWU6IFwib3B0aW9uc0NhcHRpb25cIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY09wdGlvbnNDYXB0aW9uXCIgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImNlbGxUeXBlXCIsXG4gICAgICBkZWZhdWx0OiBcImRyb3Bkb3duXCIsXG4gICAgICBjaG9pY2VzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBNYXRyaXhEcm9wZG93bkNvbHVtbi5nZXRDb2x1bW5UeXBlcygpO1xuICAgICAgfVxuICAgIH0sXG4gICAgeyBuYW1lOiBcImNvbHVtbkNvbENvdW50XCIsIGRlZmF1bHQ6IDAsIGNob2ljZXM6IFswLCAxLCAyLCAzLCA0XSB9LFxuICAgIFwiY29sdW1uTWluV2lkdGhcIlxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbEJhc2UoXCJcIik7XG4gIH0sXG4gIFwibWF0cml4YmFzZVwiXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX21hdHJpeGRyb3Bkb3duYmFzZS50cyIsImltcG9ydCB7IHN1cnZleUNzcyB9IGZyb20gXCIuL2RlZmF1bHRDc3MvY3Nzc3RhbmRhcmRcIjtcbmV4cG9ydCBjbGFzcyBTdHlsZXNNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgU3VydmV5SlNTdHlsZXNTaGVldElkID0gXCJzdXJ2ZXlqc1wiO1xuXG4gIHB1YmxpYyBzdGF0aWMgU3R5bGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIC8vIFwiLnN2X2Jvb3RzdHJhcF9jc3NcIjpcbiAgICAvLyAgIFwicG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMTAwJTsgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNFwiLFxuICAgIC8vIFwiLnN2X2Jvb3RzdHJhcF9jc3MgLnN2X2N1c3RvbV9oZWFkZXJcIjpcbiAgICAvLyAgIFwicG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAyNzVweDsgYmFja2dyb3VuZC1jb2xvcjogI2U3ZTdlNztcIixcbiAgICAvLyBcIi5zdl9ib290c3RyYXBfY3NzIC5zdl9jb250YWluZXJcIjpcbiAgICAvLyAgIFwibWF4LXdpZHRoOiA4MCU7IG1hcmdpbjogYXV0bzsgcG9zaXRpb246IHJlbGF0aXZlOyBjb2xvcjogIzZkNzA3MjsgcGFkZGluZzogMCAxZW07XCIsXG4gICAgLy8gXCIuc3ZfYm9vdHN0cmFwX2NzcyAucGFuZWwtYm9keVwiOlxuICAgIC8vICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgcGFkZGluZzogMWVtIDFlbSA1ZW0gMWVtOyBib3JkZXItdG9wOiAycHggc29saWQgbGlnaHRncmF5O1wiLFxuXG4gICAgXCIuc3ZfbWFpbiBzcGFuXCI6IFwid29yZC1icmVhazogYnJlYWstd29yZDtcIixcblxuICAgIFwiLnN2X21haW4gbGVnZW5kXCI6IFwiYm9yZGVyOiBub25lOyBtYXJnaW46IDA7XCIsXG5cbiAgICBcIi5zdl9ib290c3RyYXBfY3NzIC5zdl9xc3RuXCI6IFwicGFkZGluZzogMC41ZW0gMWVtIDEuNWVtIDFlbTtcIixcbiAgICBcIi5zdl9ib290c3RyYXBfY3NzIC5zdl9xY2JjIGlucHV0W3R5cGU9Y2hlY2tib3hdLCAuc3ZfYm9vdHN0cmFwX2NzcyAuc3ZfcWNiYyBpbnB1dFt0eXBlPXJhZGlvXVwiOlxuICAgICAgXCJ2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBtYXJnaW4tdG9wOiAtMXB4XCIsXG4gICAgXCIuc3ZfYm9vdHN0cmFwX2NzcyAuc3ZfcXN0biBmaWVsZHNldFwiOiBcImRpc3BsYXk6IGJsb2NrO1wiLFxuICAgIFwiLnN2X2Jvb3RzdHJhcF9jc3MgLnN2X3FzdG4gIC5zdl9xX2NoZWNrYm94X2lubGluZSwgLnN2X2Jvb3RzdHJhcF9jc3MgLnN2X3FzdG4gLnN2X3FfcmFkaW9ncm91cF9pbmxpbmVcIjpcbiAgICAgIFwiZGlzcGxheTogaW5saW5lLWJsb2NrO1wiLFxuXG4gICAgXCIuc3ZfYm9vdHN0cmFwX2NzcyAuc3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcy1jb250YWluZXIgXCI6XG4gICAgICBcInBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLXJpZ2h0OiAyNTBweDsgbWFyZ2luLWxlZnQ6IDQwcHg7IG1hcmdpbi10b3A6IDEwcHg7XCIsXG5cbiAgICBcIi5zdl9tYWluLnN2X2Jvb3RzdHJhcG1hdGVyaWFsX2NzcyAuc3ZfcV9yYWRpb2dyb3VwX2NvbnRyb2xfbGFiZWxcIjpcbiAgICAgIFwiZGlzcGxheTogaW5saW5lOyBwb3NpdGlvbjogc3RhdGljO1wiLFxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5jaGVja2JveFwiOlxuICAgICAgXCJtYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4O1wiLFxuXG4gICAgXCIuc3Zfcm93XCI6IFwiY2xlYXI6IGJvdGg7XCIsXG4gICAgXCIuc3Zfcm93IC5zdl9xc3RuXCI6IFwiZmxvYXQ6IGxlZnRcIixcbiAgICBcIi5zdl9yb3cgLnN2X3FzdG46bGFzdC1jaGlsZFwiOiBcImZsb2F0OiBub25lXCIsXG4gICAgXCIuc3ZfcXN0blwiOiBcImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IHRvcDsgb3ZlcmZsb3c6IGF1dG87XCIsXG4gICAgXCIucHJvZ3Jlc3NcIjogXCJ3aWR0aDogNjAlO1wiLFxuICAgIFwiLnByb2dyZXNzLWJhclwiOiBcIndpZHRoOiBhdXRvOyBtYXJnaW4tbGVmdDogMnB4OyBtYXJnaW4tcmlnaHQ6IDJweDtcIixcbiAgICBcIi5zdl9wX2NvbnRhaW5lclwiOiBcImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IHRvcDtcIixcbiAgICBcIi5zdl9xYmxuIC5jaGVja2JveC1tYXRlcmlhbFwiOiBcIm1hcmdpbi1yaWdodDogM3B4O1wiLFxuICAgIFwiLnN2X3FjYnggLmNoZWNrYm94LW1hdGVyaWFsXCI6IFwibWFyZ2luLXJpZ2h0OiA1cHg7XCIsXG4gICAgXCIuc3ZfcWNieCAuY2hlY2tib3ggbGFiZWxcIjogXCJqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7IGRpc3BsYXk6IGlubGluZS1ibG9jaztcIixcbiAgICBcIi5zdl9xc3RuIC5yYWRpbyBsYWJlbFwiOiBcImp1c3RpZnktY29udGVudDogbGVmdDsgZGlzcGxheTogaW5saW5lLWJsb2NrO1wiLFxuICAgIFwiLnN2X3FzdG4gLnN2X3FfaW1nc2VsID4gbGFiZWwgaW1nXCI6IFwicG9pbnRlci1ldmVudHM6IG5vbmU7XCIsXG4gICAgXCIuc3ZfcXN0biAuc3ZfcV9pbWdzZWwuc3ZfcV9pbWFnZXBpY2tlcl9pbmxpbmVcIjogXCJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCIsXG4gICAgXCIuc3ZfcXN0biBsYWJlbC5zdl9xX21fbGFiZWxcIjpcbiAgICAgIFwicG9zaXRpb246IGFic29sdXRlOyBtYXJnaW46IDA7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTtcIixcbiAgICBcIi5zdl9xc3RuIHRkXCI6IFwicG9zaXRpb246IHJlbGF0aXZlO1wiLFxuICAgIFwiLnN2X3FfbXRfaXRlbV92YWx1ZVwiOiBcImZsb2F0OiBsZWZ0O1wiLFxuICAgIFwiW2Rpcj1cXFwicnRsXFxcIl0gLnN2X3FfbXRfaXRlbV92YWx1ZVwiOiBcImZsb2F0OiByaWdodDtcIixcbiAgICBcIi5zdl9xc3RuLnN2X3FzdG5fbGVmdFwiOiBcIm1hcmdpbi10b3A6IDAuNzVlbTtcIixcbiAgICBcIi5zdl9xc3RuIC50aXRsZS1sZWZ0XCI6IFwiZmxvYXQ6IGxlZnQ7IG1hcmdpbi1yaWdodDogMWVtO1wiLFxuICAgIFwiW2Rpcj1cXFwicnRsXFxcIl0gLnN2X3FzdG4gLnRpdGxlLWxlZnRcIjogXCJmbG9hdDogcmlnaHQ7IG1hcmdpbi1sZWZ0OiAxZW07XCIsXG4gICAgXCIuc3ZfcXN0biAuY29udGVudC1sZWZ0XCI6IFwib3ZlcmZsb3c6IGhpZGRlblwiLFxuICAgIFwiLnN2X3FfcmFkaW9ncm91cF9pbmxpbmUgLnN2X3FfcmFkaW9ncm91cF9vdGhlclwiOiBcImRpc3BsYXk6IGlubGluZS1ibG9jaztcIixcbiAgICBcIi5zdl9xX2NoZWNrYm94X2lubGluZSAuc3ZfcV9jaGVja2JveF9vdGhlclwiOiBcImRpc3BsYXk6IGlubGluZS1ibG9jaztcIixcbiAgICBcIi5zdl9xX2NoZWNrYm94X2lubGluZSwgLnN2X3FfcmFkaW9ncm91cF9pbmxpbmUsIC5zdl9xX2ltYWdlcGlja2VyX2lubGluZVwiOlxuICAgICAgXCJsaW5lLWhlaWdodDogMi41ZW07XCIsXG4gICAgXCIuZm9ybS1pbmxpbmUgLnN2X3FfY2hlY2tib3hfaW5saW5lOm5vdCg6bGFzdC1jaGlsZClcIjogXCJtYXJnaW4tcmlnaHQ6IDFlbTtcIixcbiAgICBcIi5mb3JtLWlubGluZSAuc3ZfcV9yYWRpb2dyb3VwX2lubGluZTpub3QoOmxhc3QtY2hpbGQpXCI6XG4gICAgICBcIm1hcmdpbi1yaWdodDogMWVtO1wiLFxuICAgIFwiLnN2X2ltZ3NlbCAuc3ZfcV9pbWFnZXBpY2tlcl9pbmxpbmU6bm90KDpsYXN0LWNoaWxkKVwiOlxuICAgICAgXCJtYXJnaW4tcmlnaHQ6IDFlbTtcIixcbiAgICBcIi5zdl9xc3RuIGZpZWxkc2V0XCI6IFwiYm9yZGVyOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7XCIsXG4gICAgXCIuc3ZfcXN0biAuc3ZfcV9maWxlX3BsYWNlaG9sZGVyXCI6IFwiZGlzcGxheTpub25lXCIsXG5cbiAgICBcIi5zdl9wX3RpdGxlXCI6IFwicGFkZGluZy1sZWZ0OiAxZW07IHBhZGRpbmctYm90dG9tOiAwLjNlbTtcIixcbiAgICBcIi5zdl9wX3RpdGxlX2V4cGFuZGFibGVcIjogXCJjdXJzb3I6IHBvaW50ZXI7XCIsXG4gICAgXCIuc3ZfcF90aXRsZSAuc3ZfcGFuZWxfaWNvblwiOiBcImZsb2F0OiByaWdodDsgbWFyZ2luLXJpZ2h0OiAxZW07XCIsXG4gICAgXCIuc3ZfcF90aXRsZSAuc3ZfcGFuZWxfaWNvbjo6YmVmb3JlXCI6XG4gICAgICBcImNvbnRlbnQ6ICcnOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IHBhZGRpbmc6IDAuNWVtOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NE5DandoTFMwZ1IyVnVaWEpoZEc5eU9pQkJaRzlpWlNCSmJHeDFjM1J5WVhSdmNpQXlNaTR3TGpFc0lGTldSeUJGZUhCdmNuUWdVR3gxWnkxSmJpQXVJRk5XUnlCV1pYSnphVzl1T2lBMkxqQXdJRUoxYVd4a0lEQXBJQ0F0TFQ0TkNqeHpkbWNnZG1WeWMybHZiajBpTVM0eElpQnBaRDBpVEdGNVpYSmZNU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JaUI0Yld4dWN6cDRiR2x1YXowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzk0YkdsdWF5SWdlRDBpTUhCNElpQjVQU0l3Y0hnaURRb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE1DQXhNQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVEFnTVRBN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajROQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStEUW9KTG5OME1IdG1hV3hzT2lNMlJEY3dOekk3ZlEwS1BDOXpkSGxzWlQ0TkNqeHdiMng1WjI5dUlHTnNZWE56UFNKemREQWlJSEJ2YVc1MGN6MGlNaXd5SURBc05DQTFMRGtnTVRBc05DQTRMRElnTlN3MUlDSXZQZzBLUEM5emRtYytEUW89KTtcIixcbiAgICBcIi5zdl9wX3RpdGxlIC5zdl9wYW5lbF9pY29uLnN2X2V4cGFuZGVkOjpiZWZvcmVcIjpcbiAgICAgIFwidHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcIixcblxuICAgIFwiLnN2X3FfZmlsZSA+IGlucHV0W3R5cGU9ZmlsZV0sIC5zdl9xX2ZpbGUgPiBidXR0b25cIjpcbiAgICAgIFwiZGlzcGxheTogaW5saW5lLWJsb2NrO1wiLFxuICAgIFwiLnN2X3FfZmlsZV9wcmV2aWV3XCI6XG4gICAgICBcImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IHRvcDsgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5OyBwYWRkaW5nOiA1cHg7IG1hcmdpbi10b3A6IDEwcHg7XCIsXG4gICAgXCIuc3ZfcV9maWxlX3ByZXZpZXcgPiBhXCI6XG4gICAgICBcImRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdzogaGlkZGVuOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcIixcbiAgICBcIi5zdl9xX2ZpbGVfcmVtb3ZlX2J1dHRvblwiOiBcImxpbmUtaGVpZ2h0OiBub3JtYWw7XCIsXG4gICAgXCIuc3ZfcV9maWxlX3JlbW92ZVwiOiBcImRpc3BsYXk6IGJsb2NrOyBjdXJzb3I6IHBvaW50ZXI7XCIsXG5cbiAgICBcIi5zdl9xX21fY2VsbF90ZXh0XCI6IFwiY3Vyc29yOiBwb2ludGVyO1wiLFxuXG4gICAgXCIuc3ZfcV9kZF9vdGhlclwiOiBcIm1hcmdpbi10b3A6IDFlbTtcIixcbiAgICBcIi5zdl9xX2RkX290aGVyIGlucHV0XCI6IFwid2lkdGg6IDEwMCU7XCIsXG5cbiAgICBcIi5zdl9xc3RuIC5zdi1xLWNvbC0xLCAuc3YtcXVlc3Rpb24gLnN2LXEtY29sLTFcIjpcbiAgICAgIFwid2lkdGg6IDEwMCU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDogMWVtOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB3b3JkLWJyZWFrOiBicmVhay13b3JkO1wiLFxuICAgIFwiLnN2X3FzdG4gLnN2LXEtY29sLTIsIC5zdi1xdWVzdGlvbiAuc3YtcS1jb2wtMlwiOlxuICAgICAgXCJ3aWR0aDogNTAlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6IDFlbTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgd29yZC1icmVhazogYnJlYWstd29yZDtcIixcbiAgICBcIi5zdl9xc3RuIC5zdi1xLWNvbC0zLCAuc3YtcXVlc3Rpb24gLnN2LXEtY29sLTNcIjpcbiAgICAgIFwid2lkdGg6IDMzLjMzMzMzJTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nLXJpZ2h0OiAxZW07IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCIsXG4gICAgXCIuc3ZfcXN0biAuc3YtcS1jb2wtNCwgLnN2LXF1ZXN0aW9uIC5zdi1xLWNvbC00XCI6XG4gICAgICBcIndpZHRoOiAyNSU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDogMWVtOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB3b3JkLWJyZWFrOiBicmVhay13b3JkO1wiLFxuICAgIFwiLnN2X3FzdG4gLnN2LXEtY29sLTUsIC5zdi1xdWVzdGlvbiAuc3YtcS1jb2wtNVwiOlxuICAgICAgXCJ3aWR0aDogMjAlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6IDFlbTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgd29yZC1icmVhazogYnJlYWstd29yZDtcIixcblxuICAgIFwiLnN2X3FzdG4gLnN2LXEtY29sdW1uLTEsIC5zdi1xdWVzdGlvbiAuc3YtcS1jb2x1bW4tMVwiOlxuICAgICAgXCJ3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiAxMDAlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6IDFlbTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgd29yZC1icmVhazogYnJlYWstd29yZDtcIixcbiAgICBcIi5zdl9xc3RuIC5zdi1xLWNvbHVtbi0yLCAuc3YtcXVlc3Rpb24gLnN2LXEtY29sdW1uLTJcIjpcbiAgICAgIFwibWF4LXdpZHRoOiA1MCU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDogMWVtOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB3b3JkLWJyZWFrOiBicmVhay13b3JkO1wiLFxuICAgIFwiLnN2X3FzdG4gLnN2LXEtY29sdW1uLTMsIC5zdi1xdWVzdGlvbiAuc3YtcS1jb2x1bW4tM1wiOlxuICAgICAgXCJtYXgtd2lkdGg6IDMzLjMzMzMzJTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nLXJpZ2h0OiAxZW07IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCIsXG4gICAgXCIuc3ZfcXN0biAuc3YtcS1jb2x1bW4tNCwgLnN2LXF1ZXN0aW9uIC5zdi1xLWNvbHVtbi00XCI6XG4gICAgICBcIm1heC13aWR0aDogMjUlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6IDFlbTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgd29yZC1icmVhazogYnJlYWstd29yZDtcIixcbiAgICBcIi5zdl9xc3RuIC5zdi1xLWNvbHVtbi01LCAuc3YtcXVlc3Rpb24gLnN2LXEtY29sdW1uLTVcIjpcbiAgICAgIFwibWF4LXdpZHRoOiAyMCU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDogMWVtOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB3b3JkLWJyZWFrOiBicmVhay13b3JkO1wiLFxuXG4gICAgXCIuc3ZfcXN0biAuc3ZfcV9maWxlX2lucHV0XCI6IFwiY29sb3I6IHRyYW5zcGFyZW50O1wiLFxuXG4gICAgXCIuc3ZfcXN0biAuc3ZfcV9pbWdzZWwgbGFiZWwgPiBkaXZcIjpcbiAgICAgIFwib3ZlcmZsb3c6IGhpZGRlbjsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHBhZGRpbmc6IDRweDsgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5OyBib3JkZXItcmFkaXVzOiA0cHg7XCIsXG4gICAgXCIuc3ZfcXN0biAuc3ZfcV9pbWdzZWwgbGFiZWwgPiBkaXYgPiBpbWcsIC5zdl9xc3RuIC5zdl9xX2ltZ3NlbCBsYWJlbCA+IGRpdiA+IGVtYmVkXCI6XG4gICAgICBcImRpc3BsYXk6IGJsb2NrO1wiLFxuXG4gICAgXCIuc3ZfcXN0biB0YWJsZSB0ciB0ZCAuc3ZfcV9tX2NlbGxfbGFiZWxcIjpcbiAgICAgIFwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgdG9wOiAwOyBib3R0b206IDA7XCIsXG5cbiAgICBcImYtcGFuZWxcIjogXCJwYWRkaW5nOiAwLjVlbSAxZW07IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbGluZS1oZWlnaHQ6IDJlbTtcIixcblxuICAgIFwiLnN2X3Byb2dyZXNzX2JhciA+IHNwYW5cIjogXCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiLFxuXG4gICAgXCIuc3ZfcXN0biAuc3ZfcV9zZWxlY3RfY29sdW1uXCI6XG4gICAgICBcImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IHRvcDsgbWluLXdpZHRoOiAxMCU7XCIsXG5cbiAgICBcIi5zdl9xc3RuIC5zdl9xX3NlbGVjdF9jb2x1bW4gPiAqOm5vdCguc3ZfdGVjaG5pY2FsKVwiOiBcImRpc3BsYXk6IGJsb2NrO1wiLFxuXG4gICAgXCIuc3ZfbWFpbiAuc3ZfY29udGFpbmVyIC5zdl9ib2R5IC5zdl9wX3Jvb3QgLnN2X3FzdG4gLnN2X3Ffc2VsZWN0X2NvbHVtbiB0ZXh0YXJlYVwiOlxuICAgICAgXCJtYXJnaW4tbGVmdDogMDsgcGFkZGluZy1sZWZ0OiAwOyBsaW5lLWhlaWdodDogaW5pdGlhbDtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1oaWRkZW5cIjogXCJkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtdmlzdWFsbHloaWRkZW5cIjpcbiAgICAgIFwicG9zaXRpb246IGFic29sdXRlOyBoZWlnaHQ6IDFweDsgd2lkdGg6IDFweDsgb3ZlcmZsb3c6IGhpZGRlbjsgY2xpcDogcmVjdCgxcHggMXB4IDFweCAxcHgpOyBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XCIsXG5cbiAgICAvLyBwYW5lbGR5bmFtaWMgcHJvZ3Jlc3NcbiAgICBcIi5zdl9tYWluIC5zdi1wcm9ncmVzc1wiOlxuICAgICAgXCJoZWlnaHQ6IDAuMTllbTsgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXByb2dyZXNzX19iYXJcIjpcbiAgICAgIFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7IGhlaWdodDogMTAwJTsgcG9zaXRpb246IHJlbGF0aXZlO1wiLFxuICAgIC8vIEVPIHBhbmVsZHluYW1pYyBwcm9ncmVzc1xuXG4gICAgLy8gcGFuZWxkeW5hbWljXG4gICAgXCIuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcy1jb250YWluZXJcIjpcbiAgICAgIFwicG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tcmlnaHQ6IDI1MHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fYWRkLWJ0blwiOiBcImZsb2F0OiByaWdodDsgbWFyZ2luLXRvcDogLTE4cHg7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19hZGQtYnRuLS1saXN0LW1vZGVcIjpcbiAgICAgIFwiICBmbG9hdDogbm9uZTsgbWFyZ2luLXRvcDogMWVtO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fcmVtb3ZlLWJ0biBcIjogXCJtYXJnaW4tdG9wOiAxLjI1ZW07XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19wcmV2LWJ0biwgLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fbmV4dC1idG5cIjpcbiAgICAgIFwiYm94LXNpemluZzogYm9yZGVyLWJveDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBjdXJzb3I6IHBvaW50ZXI7IHdpZHRoOiAwLjdlbTsgdG9wOiAtMC4yOGVtOyBwb3NpdGlvbjogYWJzb2x1dGU7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19wcmV2LWJ0blwiOlxuICAgICAgXCJsZWZ0OiAtMS4zZW07IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1wYW5lbGR5bmFtaWNfX25leHQtYnRuIFwiOlxuICAgICAgXCJyaWdodDogLTEuM2VtOyB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fcHJldi1idG4uc3YtcGFuZWxkeW5hbWljX19wcmV2LWJ0bi0tZGlzYWJsZWQsIC5zdl9tYWluIC5zdi1wYW5lbGR5bmFtaWNfX25leHQtYnRuLnN2LXBhbmVsZHluYW1pY19fbmV4dC1idG4tLWRpc2FibGVkXCI6XG4gICAgICBcImN1cnNvcjogYXV0bztcIixcbiAgICBcIi5zdl9tYWluIC5zdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzLXRleHRcIjpcbiAgICAgIFwiZm9udC13ZWlnaHQ6IGJvbGQ7IGZvbnQtc2l6ZTogMC44N2VtOyBtYXJnaW4tdG9wOiAwLjY5ZW07IG1hcmdpbi1sZWZ0OiA0ZW1cIixcbiAgICAvLyBFTyBwYW5lbGR5bmFtaWNcbiAgICAvL2Jvb2xlYW5cbiAgICBcIi5zdl9tYWluIC5zdi1ib29sZWFuX19zd2l0Y2hcIjpcbiAgICAgIFwiZGlzcGxheTogaW5saW5lLWJsb2NrOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB3aWR0aDogNjNweDsgaGVpZ2h0OiAyNHB4OyBtYXJnaW4tcmlnaHQ6IDE3cHg7IG1hcmdpbi1sZWZ0OiAyMXB4OyBwYWRkaW5nOiAycHggM3B4OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBib3JkZXItcmFkaXVzOiAxMnB4OyBjdXJzb3I6IHBvaW50ZXI7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtYm9vbGVhbl9fc2xpZGVyXCI6XG4gICAgICBcImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjRzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXJnaW4tbGVmdDsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiAxMDAlO1wiLFxuICAgIFwiLnN2X21haW4gc3YtYm9vbGVhbl9fbGFiZWxcIjogXCJ2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtYm9vbGVhbi0taW5kZXRlcm1pbmF0ZSAgLnN2LWJvb2xlYW5fX3NsaWRlclwiOlxuICAgICAgXCJtYXJnaW4tbGVmdDogY2FsYyg1MCUgLSAxMHB4KTtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1ib29sZWFuLS1jaGVja2VkICAuc3YtYm9vbGVhbl9fc2xpZGVyXCI6XG4gICAgICBcIm1hcmdpbi1sZWZ0OiBjYWxjKDEwMCUgLSAyMHB4KTtcIlxuICAgIC8vIEVPIGJvb2xlYW5cbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIE1lZGlhOiB7IFtrZXk6IHN0cmluZ106IHsgbWVkaWE6IHN0cmluZzsgc3R5bGU6IHN0cmluZyB9IH0gPSB7XG4gICAgXCIuc3ZfcXN0biBmaWVsZHNldCAuc3YtcS1jb2wtMVwiOiB7XG4gICAgICBzdHlsZTogXCJ3aWR0aDogMTAwJTtcIixcbiAgICAgIG1lZGlhOiBcIkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpXCJcbiAgICB9LFxuICAgIFwiLnN2X3FzdG4gZmllbGRzZXQgLnN2LXEtY29sLTJcIjoge1xuICAgICAgc3R5bGU6IFwid2lkdGg6IDEwMCU7XCIsXG4gICAgICBtZWRpYTogXCJAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KVwiXG4gICAgfSxcbiAgICBcIi5zdl9xc3RuIGZpZWxkc2V0IC5zdi1xLWNvbC0zXCI6IHtcbiAgICAgIHN0eWxlOiBcIndpZHRoOiAxMDAlO1wiLFxuICAgICAgbWVkaWE6IFwiQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweClcIlxuICAgIH0sXG4gICAgXCIuc3ZfcXN0biBmaWVsZHNldCAuc3YtcS1jb2wtNFwiOiB7XG4gICAgICBzdHlsZTogXCJ3aWR0aDogMTAwJTtcIixcbiAgICAgIG1lZGlhOiBcIkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpXCJcbiAgICB9LFxuICAgIFwiLnN2X3FzdG4gZmllbGRzZXQgLnN2LXEtY29sLTVcIjoge1xuICAgICAgc3R5bGU6IFwid2lkdGg6IDEwMCU7XCIsXG4gICAgICBtZWRpYTogXCJAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KVwiXG4gICAgfSxcblxuICAgIFwiLnN2X21haW4gLnN2X2NvbnRhaW5lciAucGFuZWwtYm9keS5jYXJkLWJsb2NrIC5zdl9yb3cgLnN2X3FzdG5cIjoge1xuICAgICAgc3R5bGU6IFwiZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XCIsXG4gICAgICBtZWRpYTogXCJAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpXCJcbiAgICB9LFxuICAgIFwiLnN2X21haW4gLnN2X2NvbnRhaW5lciAucGFuZWwtYm9keS5jYXJkLWJsb2NrIC5zdl9yb3cgLnN2X3FzdG4gLnRpdGxlLWxlZnRcIjoge1xuICAgICAgc3R5bGU6IFwiZmxvYXQ6IG5vbmU7XCIsXG4gICAgICBtZWRpYTogXCJAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpXCJcbiAgICB9LFxuICAgIFwiLnN2X21haW4gLnN2X2NvbnRhaW5lciAucGFuZWwtYm9keS5jYXJkLWJsb2NrIC5zdl9yb3cgLnN2X3FzdG4gLnN2X3FfcmFkaW9ncm91cF9pbmxpbmUsIC5zdl9tYWluIC5zdl9jb250YWluZXIgLnBhbmVsLWJvZHkuY2FyZC1ibG9jayAuc3Zfcm93IC5zdl9xc3RuIC5zdl9xX2NoZWNrYm94X2lubGluZSwgLnN2X21haW4gLnN2X2NvbnRhaW5lciAucGFuZWwtYm9keS5jYXJkLWJsb2NrIC5zdl9yb3cgLnN2X3FzdG4gLnN2X3FfaW1hZ2VwaWNrZXJfaW5saW5lXCI6IHtcbiAgICAgIHN0eWxlOiBcImRpc3BsYXk6IGJsb2NrO1wiLFxuICAgICAgbWVkaWE6IFwiQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KVwiXG4gICAgfSxcbiAgICBcIi5zdl9tYWluIC5zdl9jb250YWluZXIgLnBhbmVsLWJvZHkuY2FyZC1ibG9jayAuc3Zfcm93IC5zdl9xc3RuIHRhYmxlLnRhYmxlXCI6IHtcbiAgICAgIHN0eWxlOiBcImRpc3BsYXk6IGJsb2NrO1wiLFxuICAgICAgbWVkaWE6IFwiQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KVwiXG4gICAgfSxcbiAgICBcIi5zdl9tYWluIC5zdl9jb250YWluZXIgLnBhbmVsLWJvZHkuY2FyZC1ibG9jayAuc3Zfcm93IC5zdl9xc3RuIHRhYmxlLnRhYmxlIHRoZWFkXCI6IHtcbiAgICAgIHN0eWxlOiBcImRpc3BsYXk6IG5vbmU7XCIsXG4gICAgICBtZWRpYTogXCJAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpXCJcbiAgICB9LFxuICAgIFwiLnN2X21haW4gLnN2X2NvbnRhaW5lciAucGFuZWwtYm9keS5jYXJkLWJsb2NrIC5zdl9yb3cgLnN2X3FzdG4gdGFibGUudGFibGUgdGJvZHksIC5zdl9tYWluIC5zdl9jb250YWluZXIgLnBhbmVsLWJvZHkuY2FyZC1ibG9jayAuc3Zfcm93IC5zdl9xc3RuIHRhYmxlLnRhYmxlIHRyLCAuc3ZfbWFpbiAuc3ZfY29udGFpbmVyIC5wYW5lbC1ib2R5LmNhcmQtYmxvY2sgLnN2X3JvdyAuc3ZfcXN0biB0YWJsZS50YWJsZSB0ZFwiOiB7XG4gICAgICBzdHlsZTogXCJkaXNwbGF5OiBibG9jaztcIixcbiAgICAgIG1lZGlhOiBcIkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweClcIlxuICAgIH0sXG4gICAgXCIuc3ZfbWFpbiAuc3ZfY29udGFpbmVyIC5wYW5lbC1ib2R5LmNhcmQtYmxvY2sgLnN2X3JvdyAuc3ZfcXN0biB0YWJsZS50YWJsZTpub3QoLnN2X3FfbWF0cml4KSB0ZDpiZWZvcmVcIjoge1xuICAgICAgc3R5bGU6IFwiY29udGVudDogYXR0cihoZWFkZXJzKTtcIixcbiAgICAgIG1lZGlhOiBcIkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweClcIlxuICAgIH0sXG4gICAgXCIuc3ZfbWFpbiAuc3ZfY29udGFpbmVyIC5wYW5lbC1ib2R5LmNhcmQtYmxvY2sgLnN2X3JvdyAuc3ZfcXN0biB0YWJsZS5zdl9xX21hdHJpeCB0ZDphZnRlclwiOiB7XG4gICAgICBzdHlsZTogXCJjb250ZW50OiBhdHRyKGhlYWRlcnMpOyBwYWRkaW5nLWxlZnQ6IDFlbVwiLFxuICAgICAgbWVkaWE6IFwiQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KVwiXG4gICAgfSxcbiAgICBcIi5zdl9tYWluIC5zdl9jb250YWluZXIgLnBhbmVsLWJvZHkuY2FyZC1ibG9jayAuc3Zfcm93IC5zdl9xc3RuIC5yYWRpbyBsYWJlbCwgLnN2X21haW4gLnN2X2NvbnRhaW5lciAucGFuZWwtYm9keS5jYXJkLWJsb2NrIC5zdl9yb3cgLnN2X3FzdG4gLmNoZWNrYm94IGxhYmVsXCI6IHtcbiAgICAgIHN0eWxlOiBcImxpbmUtaGVpZ2h0OiAxMnB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiLFxuICAgICAgbWVkaWE6IFwiQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KVwiXG4gICAgfSxcbiAgICBcIi5zdl9xc3RuIGxhYmVsLnN2X3FfbV9sYWJlbFwiOiB7XG4gICAgICBzdHlsZTogXCJkaXNwbGF5OiBpbmxpbmU7XCIsXG4gICAgICBtZWRpYTogXCJAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpXCJcbiAgICB9LFxuICAgIFwiLnN2X21haW4gLnN2X2N1c3RvbV9oZWFkZXJcIjoge1xuICAgICAgc3R5bGU6IFwiZGlzcGxheTogbm9uZTtcIixcbiAgICAgIG1lZGlhOiBcIkBtZWRpYSAobWF4LXdpZHRoOiAxMzAwcHgpXCJcbiAgICB9LFxuICAgIFwiLnN2X21haW4gLnN2X2NvbnRhaW5lciAuc3ZfaGVhZGVyIGgzXCI6IHtcbiAgICAgIHN0eWxlOiBcImZvbnQtc2l6ZTogMS41ZW07XCIsXG4gICAgICBtZWRpYTogXCJAbWVkaWEgKG1heC13aWR0aDogMTMwMHB4KVwiXG4gICAgfSxcbiAgICBcIi5zdl9tYWluIC5zdl9jb250YWluZXIgLnN2X2hlYWRlciBoMyBzcGFuXCI6IHtcbiAgICAgIHN0eWxlOiBcImZvbnQtc2l6ZTogMC43NWVtO1wiLFxuICAgICAgbWVkaWE6IFwiQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KVwiXG4gICAgfSxcblxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwX2NzcyAuc3YtcHJvZ3Jlc3NfX3RleHRcIjoge1xuICAgICAgc3R5bGU6IFwibWFyZ2luLWxlZnQ6IDhlbTtcIixcbiAgICAgIG1lZGlhOiBcIkBtZWRpYSAobWluLXdpZHRoOiA3NjhweClcIlxuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIFRoZW1lQ29sb3JzOiB7IFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfSA9IHtcbiAgICBkZWZhdWx0OiB7XG4gICAgICBcIiRoZWFkZXItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNlN2U3ZTdcIixcbiAgICAgIFwiJGJvZHktY29udGFpbmVyLWJhY2tncm91bmQtY29sb3JcIjogXCIjZjRmNGY0XCIsXG5cbiAgICAgIFwiJG1haW4tY29sb3JcIjogXCIjMWFiMzk0XCIsXG4gICAgICBcIiRtYWluLWhvdmVyLWNvbG9yXCI6IFwiIzBhYTM4NFwiLFxuICAgICAgXCIkYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJGlucHV0cy1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJHRleHQtY29sb3JcIjogXCIjNmQ3MDcyXCIsXG4gICAgICBcIiRoZWFkZXItY29sb3JcIjogXCIjNmQ3MDcyXCIsXG4gICAgICBcIiRib3JkZXItY29sb3JcIjogXCIjZTdlN2U3XCIsXG5cbiAgICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiI2VkNTU2NVwiLFxuICAgICAgXCIkZXJyb3ItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNmZDY1NzVcIixcblxuICAgICAgXCIkcHJvZ3Jlc3MtdGV4dC1jb2xvclwiOiBcIiM5ZDlkOWRcIixcbiAgICAgIFwiJGRpc2FibGUtY29sb3JcIjogXCIjZGJkYmRiXCIsXG4gICAgICBcIiRkaXNhYmxlZC1sYWJlbC1jb2xvclwiOiBcInJnYmEoNjQsIDY0LCA2NCwgMC41KVwiLFxuICAgICAgXCIkc2xpZGVyLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJGRpc2FibGVkLXN3aXRjaC1jb2xvclwiOiBcIiM5ZjlmOWZcIixcbiAgICAgIFwiJGRpc2FibGVkLXNsaWRlci1jb2xvclwiOiBcIiNjZmNmY2ZcIlxuICAgIH0sXG4gICAgb3JhbmdlOiB7XG4gICAgICBcIiRoZWFkZXItYmFja2dyb3VuZC1jb2xvclwiOiBcIiM0YTRhNGFcIixcbiAgICAgIFwiJGJvZHktY29udGFpbmVyLWJhY2tncm91bmQtY29sb3JcIjogXCIjZjhmOGY4XCIsXG5cbiAgICAgIFwiJG1haW4tY29sb3JcIjogXCIjZjc4MTE5XCIsXG4gICAgICBcIiRtYWluLWhvdmVyLWNvbG9yXCI6IFwiI2U3NzEwOVwiLFxuICAgICAgXCIkYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJGlucHV0cy1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJHRleHQtY29sb3JcIjogXCIjNGE0YTRhXCIsXG4gICAgICBcIiRoZWFkZXItY29sb3JcIjogXCIjZjc4MTE5XCIsXG4gICAgICBcIiRib3JkZXItY29sb3JcIjogXCIjZTdlN2U3XCIsXG5cbiAgICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiI2VkNTU2NVwiLFxuICAgICAgXCIkZXJyb3ItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNmZDY1NzVcIixcblxuICAgICAgXCIkcHJvZ3Jlc3MtdGV4dC1jb2xvclwiOiBcIiM5ZDlkOWRcIixcbiAgICAgIFwiJGRpc2FibGUtY29sb3JcIjogXCIjZGJkYmRiXCIsXG4gICAgICBcIiRkaXNhYmxlZC1sYWJlbC1jb2xvclwiOiBcInJnYmEoNjQsIDY0LCA2NCwgMC41KVwiLFxuICAgICAgXCIkc2xpZGVyLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJGRpc2FibGVkLXN3aXRjaC1jb2xvclwiOiBcIiM5ZjlmOWZcIixcbiAgICAgIFwiJGRpc2FibGVkLXNsaWRlci1jb2xvclwiOiBcIiNjZmNmY2ZcIlxuICAgIH0sXG4gICAgZGFya2JsdWU6IHtcbiAgICAgIFwiJGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwiI2Q5ZDhkZFwiLFxuICAgICAgXCIkYm9keS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNmNmY3ZjJcIixcblxuICAgICAgXCIkbWFpbi1jb2xvclwiOiBcIiMzYzRmNmRcIixcbiAgICAgIFwiJG1haW4taG92ZXItY29sb3JcIjogXCIjMmMzZjVkXCIsXG4gICAgICBcIiRib2R5LWJhY2tncm91bmQtY29sb3JcIjogXCJ3aGl0ZVwiLFxuICAgICAgXCIkaW5wdXRzLWJhY2tncm91bmQtY29sb3JcIjogXCJ3aGl0ZVwiLFxuICAgICAgXCIkdGV4dC1jb2xvclwiOiBcIiM0YTRhNGFcIixcbiAgICAgIFwiJGhlYWRlci1jb2xvclwiOiBcIiM2ZDcwNzJcIixcbiAgICAgIFwiJGJvcmRlci1jb2xvclwiOiBcIiNlN2U3ZTdcIixcblxuICAgICAgXCIkZXJyb3ItY29sb3JcIjogXCIjZWQ1NTY1XCIsXG4gICAgICBcIiRlcnJvci1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwiI2ZkNjU3NVwiLFxuXG4gICAgICBcIiRwcm9ncmVzcy10ZXh0LWNvbG9yXCI6IFwiIzlkOWQ5ZFwiLFxuICAgICAgXCIkZGlzYWJsZS1jb2xvclwiOiBcIiNkYmRiZGJcIixcbiAgICAgIFwiJGRpc2FibGVkLWxhYmVsLWNvbG9yXCI6IFwicmdiYSg2NCwgNjQsIDY0LCAwLjUpXCIsXG4gICAgICBcIiRzbGlkZXItY29sb3JcIjogXCJ3aGl0ZVwiLFxuICAgICAgXCIkZGlzYWJsZWQtc3dpdGNoLWNvbG9yXCI6IFwiIzlmOWY5ZlwiLFxuICAgICAgXCIkZGlzYWJsZWQtc2xpZGVyLWNvbG9yXCI6IFwiI2NmY2ZjZlwiXG4gICAgfSxcbiAgICBkYXJrcm9zZToge1xuICAgICAgXCIkaGVhZGVyLWJhY2tncm91bmQtY29sb3JcIjogXCIjZGRkMmNlXCIsXG4gICAgICBcIiRib2R5LWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwiI2Y3ZWZlZFwiLFxuXG4gICAgICBcIiRtYWluLWNvbG9yXCI6IFwiIzY4NjU2ZVwiLFxuICAgICAgXCIkbWFpbi1ob3Zlci1jb2xvclwiOiBcIiM1ODU1NWVcIixcbiAgICAgIFwiJGJvZHktYmFja2dyb3VuZC1jb2xvclwiOiBcIndoaXRlXCIsXG4gICAgICBcIiRpbnB1dHMtYmFja2dyb3VuZC1jb2xvclwiOiBcIndoaXRlXCIsXG4gICAgICBcIiR0ZXh0LWNvbG9yXCI6IFwiIzRhNGE0YVwiLFxuICAgICAgXCIkaGVhZGVyLWNvbG9yXCI6IFwiIzZkNzA3MlwiLFxuICAgICAgXCIkYm9yZGVyLWNvbG9yXCI6IFwiI2U3ZTdlN1wiLFxuXG4gICAgICBcIiRlcnJvci1jb2xvclwiOiBcIiNlZDU1NjVcIixcbiAgICAgIFwiJGVycm9yLWJhY2tncm91bmQtY29sb3JcIjogXCIjZmQ2NTc1XCIsXG5cbiAgICAgIFwiJHByb2dyZXNzLXRleHQtY29sb3JcIjogXCIjOWQ5ZDlkXCIsXG4gICAgICBcIiRkaXNhYmxlLWNvbG9yXCI6IFwiI2RiZGJkYlwiLFxuICAgICAgXCIkZGlzYWJsZWQtbGFiZWwtY29sb3JcIjogXCJyZ2JhKDY0LCA2NCwgNjQsIDAuNSlcIixcbiAgICAgIFwiJHNsaWRlci1jb2xvclwiOiBcIndoaXRlXCIsXG4gICAgICBcIiRkaXNhYmxlZC1zd2l0Y2gtY29sb3JcIjogXCIjOWY5ZjlmXCIsXG4gICAgICBcIiRkaXNhYmxlZC1zbGlkZXItY29sb3JcIjogXCIjY2ZjZmNmXCJcbiAgICB9LFxuICAgIHN0b25lOiB7XG4gICAgICBcIiRoZWFkZXItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNjZGNjZDJcIixcbiAgICAgIFwiJGJvZHktY29udGFpbmVyLWJhY2tncm91bmQtY29sb3JcIjogXCIjZWZlZGY0XCIsXG5cbiAgICAgIFwiJG1haW4tY29sb3JcIjogXCIjMGYwZjMzXCIsXG4gICAgICBcIiRtYWluLWhvdmVyLWNvbG9yXCI6IFwiIzE5MTk1NVwiLFxuICAgICAgXCIkYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJGlucHV0cy1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJHRleHQtY29sb3JcIjogXCIjMGYwZjMzXCIsXG4gICAgICBcIiRoZWFkZXItY29sb3JcIjogXCIjMGYwZjMzXCIsXG4gICAgICBcIiRib3JkZXItY29sb3JcIjogXCIjZTdlN2U3XCIsXG5cbiAgICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiI2VkNTU2NVwiLFxuICAgICAgXCIkZXJyb3ItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNmZDY1NzVcIixcblxuICAgICAgXCIkcHJvZ3Jlc3MtdGV4dC1jb2xvclwiOiBcIiM5ZDlkOWRcIixcbiAgICAgIFwiJGRpc2FibGUtY29sb3JcIjogXCIjZGJkYmRiXCIsXG4gICAgICBcIiRkaXNhYmxlZC1sYWJlbC1jb2xvclwiOiBcInJnYmEoNjQsIDY0LCA2NCwgMC41KVwiLFxuICAgICAgXCIkc2xpZGVyLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJGRpc2FibGVkLXN3aXRjaC1jb2xvclwiOiBcIiM5ZjlmOWZcIixcbiAgICAgIFwiJGRpc2FibGVkLXNsaWRlci1jb2xvclwiOiBcIiNjZmNmY2ZcIlxuICAgIH0sXG4gICAgd2ludGVyOiB7XG4gICAgICBcIiRoZWFkZXItYmFja2dyb3VuZC1jb2xvclwiOiBcIiM4MmI4ZGFcIixcbiAgICAgIFwiJGJvZHktY29udGFpbmVyLWJhY2tncm91bmQtY29sb3JcIjogXCIjZGFlMWU3XCIsXG5cbiAgICAgIFwiJG1haW4tY29sb3JcIjogXCIjM2MzYjQwXCIsXG4gICAgICBcIiRtYWluLWhvdmVyLWNvbG9yXCI6IFwiIzFlMWQyMFwiLFxuICAgICAgXCIkYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJGlucHV0cy1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJHRleHQtY29sb3JcIjogXCIjMDAwXCIsXG4gICAgICBcIiRoZWFkZXItY29sb3JcIjogXCIjMDAwXCIsXG4gICAgICBcIiRib3JkZXItY29sb3JcIjogXCIjZTdlN2U3XCIsXG5cbiAgICAgIFwiJGVycm9yLWNvbG9yXCI6IFwiI2VkNTU2NVwiLFxuICAgICAgXCIkZXJyb3ItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNmZDY1NzVcIixcblxuICAgICAgXCIkZGlzYWJsZS1jb2xvclwiOiBcIiNkYmRiZGJcIixcbiAgICAgIFwiJHByb2dyZXNzLXRleHQtY29sb3JcIjogXCIjOWQ5ZDlkXCIsXG4gICAgICBcIiRkaXNhYmxlZC1sYWJlbC1jb2xvclwiOiBcInJnYmEoNjQsIDY0LCA2NCwgMC41KVwiLFxuICAgICAgXCIkc2xpZGVyLWNvbG9yXCI6IFwid2hpdGVcIixcbiAgICAgIFwiJGRpc2FibGVkLXN3aXRjaC1jb2xvclwiOiBcIiM5ZjlmOWZcIixcbiAgICAgIFwiJGRpc2FibGVkLXNsaWRlci1jb2xvclwiOiBcIiNjZmNmY2ZcIlxuICAgIH0sXG4gICAgd2ludGVyc3RvbmU6IHtcbiAgICAgIFwiJGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwiIzMyMzIzMlwiLFxuICAgICAgXCIkYm9keS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNmOGY4ZjhcIixcblxuICAgICAgXCIkbWFpbi1jb2xvclwiOiBcIiM1YWM4ZmFcIixcbiAgICAgIFwiJG1haW4taG92ZXItY29sb3JcIjogXCIjMDZhMWU3XCIsXG4gICAgICBcIiRib2R5LWJhY2tncm91bmQtY29sb3JcIjogXCJ3aGl0ZVwiLFxuICAgICAgXCIkaW5wdXRzLWJhY2tncm91bmQtY29sb3JcIjogXCJ3aGl0ZVwiLFxuICAgICAgXCIkdGV4dC1jb2xvclwiOiBcIiMwMDBcIixcbiAgICAgIFwiJGhlYWRlci1jb2xvclwiOiBcIiNmZmZcIixcbiAgICAgIFwiJGJvcmRlci1jb2xvclwiOiBcIiNlN2U3ZTdcIixcblxuICAgICAgXCIkZXJyb3ItY29sb3JcIjogXCIjZWQ1NTY1XCIsXG4gICAgICBcIiRlcnJvci1iYWNrZ3JvdW5kLWNvbG9yXCI6IFwiI2ZkNjU3NVwiLFxuXG4gICAgICBcIiRkaXNhYmxlLWNvbG9yXCI6IFwiI2RiZGJkYlwiLFxuICAgICAgXCIkcHJvZ3Jlc3MtdGV4dC1jb2xvclwiOiBcIiM5ZDlkOWRcIixcbiAgICAgIFwiJGRpc2FibGVkLWxhYmVsLWNvbG9yXCI6IFwicmdiYSg2NCwgNjQsIDY0LCAwLjUpXCIsXG4gICAgICBcIiRzbGlkZXItY29sb3JcIjogXCJ3aGl0ZVwiLFxuICAgICAgXCIkZGlzYWJsZWQtc3dpdGNoLWNvbG9yXCI6IFwiIzlmOWY5ZlwiLFxuICAgICAgXCIkZGlzYWJsZWQtc2xpZGVyLWNvbG9yXCI6IFwiI2NmY2ZjZlwiXG4gICAgfSxcbiAgICBtb2Rlcm46IHtcbiAgICAgIFwiJG1haW4tY29sb3JcIjogXCIjMWFiMzk0XCIsXG4gICAgICBcIiRhZGQtYnV0dG9uLWNvbG9yXCI6IFwiIzE5NDhiM1wiLFxuICAgICAgXCIkcmVtb3ZlLWJ1dHRvbi1jb2xvclwiOiBcIiNmZjE4MDBcIixcbiAgICAgIFwiJGRpc2FibGUtY29sb3JcIjogXCIjZGJkYmRiXCIsXG4gICAgICBcIiRwcm9ncmVzcy10ZXh0LWNvbG9yXCI6IFwiIzlkOWQ5ZFwiLFxuICAgICAgXCIkZGlzYWJsZWQtbGFiZWwtY29sb3JcIjogXCJyZ2JhKDY0LCA2NCwgNjQsIDAuNSlcIixcbiAgICAgIFwiJHNsaWRlci1jb2xvclwiOiBcIndoaXRlXCIsXG4gICAgICBcIiRkaXNhYmxlZC1zd2l0Y2gtY29sb3JcIjogXCIjOWY5ZjlmXCIsXG4gICAgICBcIiRkaXNhYmxlZC1zbGlkZXItY29sb3JcIjogXCIjY2ZjZmNmXCJcbiAgICB9LFxuICAgIGJvb3RzdHJhcDoge1xuICAgICAgXCIkbWFpbi1jb2xvclwiOiBcIiMxOGE2ODlcIixcbiAgICAgIFwiJHRleHQtY29sb3JcIjogXCIjNDA0MDQwO1wiLFxuICAgICAgXCIkcHJvZ3Jlc3MtdGV4dC1jb2xvclwiOiBcIiM5ZDlkOWRcIixcbiAgICAgIFwiJGRpc2FibGUtY29sb3JcIjogXCIjZGJkYmRiXCIsXG4gICAgICBcIiRoZWFkZXItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNlN2U3ZTdcIixcbiAgICAgIFwiJGRpc2FibGVkLWxhYmVsLWNvbG9yXCI6IFwicmdiYSg2NCwgNjQsIDY0LCAwLjUpXCIsXG4gICAgICBcIiRzbGlkZXItY29sb3JcIjogXCJ3aGl0ZVwiLFxuICAgICAgXCIkZGlzYWJsZWQtc3dpdGNoLWNvbG9yXCI6IFwiIzlmOWY5ZlwiLFxuICAgICAgXCIkZGlzYWJsZWQtc2xpZGVyLWNvbG9yXCI6IFwiI2NmY2ZjZlwiXG4gICAgfSxcbiAgICBib290c3RyYXBtYXRlcmlhbDoge1xuICAgICAgXCIkbWFpbi1jb2xvclwiOiBcIiMxOGE2ODlcIixcbiAgICAgIFwiJHRleHQtY29sb3JcIjogXCIjNDA0MDQwO1wiLFxuICAgICAgXCIkcHJvZ3Jlc3MtdGV4dC1jb2xvclwiOiBcIiM5ZDlkOWRcIixcbiAgICAgIFwiJGRpc2FibGUtY29sb3JcIjogXCIjZGJkYmRiXCIsXG4gICAgICBcIiRoZWFkZXItYmFja2dyb3VuZC1jb2xvclwiOiBcIiNlN2U3ZTdcIixcblxuICAgICAgXCIkZGlzYWJsZWQtbGFiZWwtY29sb3JcIjogXCJyZ2JhKDY0LCA2NCwgNjQsIDAuNSlcIixcbiAgICAgIFwiJHNsaWRlci1jb2xvclwiOiBcIndoaXRlXCIsXG4gICAgICBcIiRkaXNhYmxlZC1zd2l0Y2gtY29sb3JcIjogXCIjOWY5ZjlmXCIsXG4gICAgICBcIiRkaXNhYmxlZC1zbGlkZXItY29sb3JcIjogXCIjY2ZjZmNmXCJcbiAgICB9XG4gIH07XG4gIHB1YmxpYyBzdGF0aWMgVGhlbWVDc3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgXCIuc3ZfZGVmYXVsdF9jc3NcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjtcIixcblxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIGhyXCI6IFwiYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1wiLFxuXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgaW5wdXRbdHlwZT0nYnV0dG9uJ10sIC5zdl9kZWZhdWx0X2NzcyBidXR0b25cIjpcbiAgICAgIFwiY29sb3I6ICRib2R5LWJhY2tncm91bmQtY29sb3I7IGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIGlucHV0W3R5cGU9J2J1dHRvbiddOmhvdmVyLCAuc3ZfZGVmYXVsdF9jc3MgYnV0dG9uOmhvdmVyXCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRtYWluLWhvdmVyLWNvbG9yO1wiLFxuXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgLnN2X2hlYWRlclwiOiBcImNvbG9yOiAkaGVhZGVyLWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIC5zdl9jdXN0b21faGVhZGVyXCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItYmFja2dyb3VuZC1jb2xvcjtcIixcbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3ZfY29udGFpbmVyXCI6IFwiY29sb3I6ICR0ZXh0LWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIC5zdl9ib2R5XCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRib2R5LWJhY2tncm91bmQtY29sb3I7IGJvcmRlci1jb2xvcjogJG1haW4tY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgLnN2X3Byb2dyZXNzXCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJGJvcmRlci1jb2xvcjtcIixcbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3ZfcHJvZ3Jlc3NfYmFyXCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XCIsXG5cbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3ZfcF9yb290ID4gLnN2X3Jvd1wiOiBcImJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcIixcbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3ZfcF9yb290ID4gLnN2X3JvdzpudGgtY2hpbGQob2RkKVwiOlxuICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIC5zdl9wX3Jvb3QgPiAuc3Zfcm93Om50aC1jaGlsZChldmVuKVwiOlxuICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjtcIixcblxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIC5zdl9xX290aGVyIGlucHV0XCI6XG4gICAgICBcImNvbG9yOiAkdGV4dC1jb2xvcjsgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yOyBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXRzLWJhY2tncm91bmQtY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgLnN2X3FfdGV4dF9yb290XCI6XG4gICAgICBcImNvbG9yOiAkdGV4dC1jb2xvcjsgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yOyBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXRzLWJhY2tncm91bmQtY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgLnN2X3FfZHJvcGRvd25fY29udHJvbFwiOlxuICAgICAgXCJjb2xvcjogJHRleHQtY29sb3I7IGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjsgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0cy1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIGlucHV0W3R5cGU9J3RleHQnXVwiOlxuICAgICAgXCJjb2xvcjogJHRleHQtY29sb3I7IGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjsgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0cy1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIHNlbGVjdFwiOlxuICAgICAgXCJjb2xvcjogJHRleHQtY29sb3I7IGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjsgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0cy1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIHRleHRhcmVhXCI6XG4gICAgICBcImNvbG9yOiAkdGV4dC1jb2xvcjsgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yOyBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXRzLWJhY2tncm91bmQtY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgaW5wdXQ6bm90KFt0eXBlPSdidXR0b24nXSk6bm90KFt0eXBlPSdyZXNldCddKTpub3QoW3R5cGU9J3N1Ym1pdCddKTpub3QoW3R5cGU9J2ltYWdlJ10pOm5vdChbdHlwZT0nY2hlY2tib3gnXSk6bm90KFt0eXBlPSdyYWRpbyddKVwiOlxuICAgICAgXCJib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yOyBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXRzLWJhY2tncm91bmQtY29sb3I7Y29sb3I6ICR0ZXh0LWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIGlucHV0Om5vdChbdHlwZT0nYnV0dG9uJ10pOm5vdChbdHlwZT0ncmVzZXQnXSk6bm90KFt0eXBlPSdzdWJtaXQnXSk6bm90KFt0eXBlPSdpbWFnZSddKTpub3QoW3R5cGU9J2NoZWNrYm94J10pOm5vdChbdHlwZT0ncmFkaW8nXSk6Zm9jdXNcIjpcbiAgICAgIFwiYm9yZGVyOiAxcHggc29saWQgJG1haW4tY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgLnN2X2NvbnRhaW5lciAuc3ZfYm9keSAuc3ZfcF9yb290IC5zdl9xIC5zdl9zZWxlY3Rfd3JhcHBlciAuc3ZfcV9kcm9wZG93bl9jb250cm9sIFwiOlxuICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXRzLWJhY2tncm91bmQtY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgLnN2X3Ffb3RoZXIgaW5wdXQ6Zm9jdXNcIjogXCJib3JkZXItY29sb3I6ICRtYWluLWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIC5zdl9xX3RleHRfcm9vdDpmb2N1c1wiOiBcImJvcmRlci1jb2xvcjogJG1haW4tY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgLnN2X3FfZHJvcGRvd25fY29udHJvbDpmb2N1c1wiOlxuICAgICAgXCJib3JkZXItY29sb3I6ICRtYWluLWNvbG9yO1wiLFxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIGlucHV0W3R5cGU9J3RleHQnXTpmb2N1c1wiOiBcImJvcmRlci1jb2xvcjogJG1haW4tY29sb3I7XCIsXG4gICAgJy5zdl9kZWZhdWx0X2NzcyAuc3ZfY29udGFpbmVyIC5zdl9ib2R5IC5zdl9wX3Jvb3QgLnN2X3EgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzLCAuc3ZfZGVmYXVsdF9jc3MgLnN2X2NvbnRhaW5lciAuc3ZfYm9keSAuc3ZfcF9yb290IC5zdl9xIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cyc6XG4gICAgICBcIm91dGxpbmU6IDFweCBkb3R0ZWQgJG1haW4tY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3Mgc2VsZWN0OmZvY3VzXCI6IFwiYm9yZGVyLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcbiAgICBcIi5zdl9kZWZhdWx0X2NzcyB0ZXh0YXJlYTpmb2N1c1wiOiBcImJvcmRlci1jb2xvcjogJG1haW4tY29sb3I7XCIsXG5cbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3Zfc2VsZWN0X3dyYXBwZXJcIjpcbiAgICAgIFwiYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZC1jb2xvcjtcIixcbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3Zfc2VsZWN0X3dyYXBwZXI6OmJlZm9yZVwiOlxuICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcblxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIC5zdl9xX3JhdGluZ19pdGVtLmFjdGl2ZSAuc3ZfcV9yYXRpbmdfaXRlbV90ZXh0XCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRtYWluLWhvdmVyLWNvbG9yOyBib3JkZXItY29sb3I6ICRtYWluLWhvdmVyLWNvbG9yOyBjb2xvcjogJGJvZHktYmFja2dyb3VuZC1jb2xvcjtcIixcbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3ZfcV9yYXRpbmdfaXRlbSAuc3ZfcV9yYXRpbmdfaXRlbV90ZXh0XCI6XG4gICAgICBcImJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcIixcbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3ZfcV9yYXRpbmdfaXRlbSAuc3ZfcV9yYXRpbmdfaXRlbV90ZXh0OmhvdmVyXCI6XG4gICAgICBcImJvcmRlci1jb2xvcjogJG1haW4taG92ZXItY29sb3I7XCIsXG5cbiAgICBcIi5zdl9kZWZhdWx0X2NzcyB0YWJsZS5zdl9xX21hdHJpeCB0clwiOiBcImJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcIixcbiAgICBcIi5zdl9kZWZhdWx0X2NzcyB0YWJsZS5zdl9xX21hdHJpeF9kcm9wZG93biB0clwiOlxuICAgICAgXCJib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XCIsXG4gICAgXCIuc3ZfZGVmYXVsdF9jc3MgdGFibGUuc3ZfcV9tYXRyaXhfZHluYW1pYyB0clwiOlxuICAgICAgXCJib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XCIsXG5cbiAgICBcIi5zdl9kZWZhdWx0X2NzcyAuc3ZfcV9tX2NlbGxfc2VsZWN0ZWRcIjpcbiAgICAgIFwiY29sb3I6ICRib2R5LWJhY2tncm91bmQtY29sb3I7IGJhY2tncm91bmQtY29sb3I6ICRtYWluLWhvdmVyLWNvbG9yO1wiLFxuXG4gICAgXCIuc3ZfbWFpbiAuc3ZfcV9maWxlX3JlbW92ZTpob3ZlclwiOiBcImNvbG9yOiAkbWFpbi1jb2xvcjtcIixcblxuICAgIFwiLnN2X21haW4gLnN2X3FfaW1nc2VsLmNoZWNrZWQgbGFiZWw+ZGl2XCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3JcIixcblxuICAgIFwiLnN2X2RlZmF1bHRfY3NzIC5zdl9wX2Rlc2NyaXB0aW9uXCI6IFwicGFkZGluZy1sZWZ0OiAxLjI5ZW07XCIsXG4gICAgLy9wcm9ncmVzcyBiYXJcbiAgICBcIi5zdl9tYWluIC5zdi1wcm9ncmVzc1wiOiBcImJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItYmFja2dyb3VuZC1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1wcm9ncmVzc19fYmFyXCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XCIsXG5cbiAgICAvL3BhbmVsZHluYW1pY1xuICAgIFwiLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fcHJldi1idG4uc3YtcGFuZWxkeW5hbWljX19wcmV2LWJ0bi0tZGlzYWJsZWQsIC5zdl9tYWluIC5zdi1wYW5lbGR5bmFtaWNfX25leHQtYnRuLnN2LXBhbmVsZHluYW1pY19fbmV4dC1idG4tLWRpc2FibGVkXCI6XG4gICAgICBcImZpbGw6ICRkaXNhYmxlLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fcHJvZ3Jlc3MtdGV4dFwiOiBcImNvbG9yOiAkcHJvZ3Jlc3MtdGV4dC1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1wYW5lbGR5bmFtaWNfX3ByZXYtYnRuLCAuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19uZXh0LWJ0blwiOlxuICAgICAgXCJmaWxsOiAkdGV4dC1jb2xvclwiLFxuXG4gICAgLy9ib29sZWFuXG4gICAgXCIuc3ZfbWFpbiAuc3YtYm9vbGVhbl9fc3dpdGNoXCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtYm9vbGVhbl9fc2xpZGVyXCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1ib29sZWFuX19sYWJlbC0tZGlzYWJsZWRcIjogXCJjb2xvcjogJGRpc2FibGVkLWxhYmVsLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LWJvb2xlYW4tLWRpc2FibGVkIC5zdi1ib29sZWFuX19zd2l0Y2hcIjpcbiAgICAgIFwiYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLXN3aXRjaC1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1ib29sZWFuLS1kaXNhYmxlZCAuc3YtYm9vbGVhbl9fc2xpZGVyXCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRkaXNhYmxlZC1zbGlkZXItY29sb3I7XCJcbiAgICAvL2VvIGJvb2xlYW5cbiAgfTtcbiAgcHVibGljIHN0YXRpYyBtb2Rlcm5UaGVtZUNzczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICBcIi5zdi1wYW5lbGR5bmFtaWNfX2FkZC1idG5cIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkYWRkLWJ1dHRvbi1jb2xvcjtcIixcbiAgICBcIi5zdi1wYW5lbGR5bmFtaWNfX3JlbW92ZS1idG5cIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkcmVtb3ZlLWJ1dHRvbi1jb2xvcjtcIixcbiAgICBcIi5zdi1ib29sZWFuX19zd2l0Y2hcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcbiAgICBcIi5zdi1ib29sZWFuX19zbGlkZXJcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWNvbG9yO1wiLFxuICAgIFwiLnN2LWJvb2xlYW5fX2xhYmVsLS1kaXNhYmxlZFwiOiBcImNvbG9yOiAkZGlzYWJsZWQtbGFiZWwtY29sb3I7XCIsXG4gICAgXCIuc3YtYm9vbGVhbi0tZGlzYWJsZWQgLnN2LWJvb2xlYW5fX3N3aXRjaFwiOlxuICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiAkZGlzYWJsZWQtc3dpdGNoLWNvbG9yO1wiLFxuICAgIFwiLnN2LWJvb2xlYW4tLWRpc2FibGVkIC5zdi1ib29sZWFuX19zbGlkZXJcIjpcbiAgICAgIFwiYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLXNsaWRlci1jb2xvcjtcIlxuICB9O1xuICBwdWJsaWMgc3RhdGljIGJvb3RzdHJhcFRoZW1lQ3NzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIFwiLnN2X21haW4gLnN2X3FfaW1nc2VsLmNoZWNrZWQgbGFiZWw+ZGl2XCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3JcIixcbiAgICBcIi5zdl9tYWluIC5zdl9wX2Rlc2NyaXB0aW9uXCI6IFwicGFkZGluZy1sZWZ0OiAxLjY2ZW07XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3ZfcXN0bl9lcnJvcl9ib3R0b21cIjogXCJtYXJnaW4tdG9wOiAyMHB4OyBtYXJnaW4tYm90dG9tOiAwO1wiLFxuICAgIFwiLnN2X21haW4gLnByb2dyZXNzXCI6IFwid2lkdGg6IDYwJTtcIixcbiAgICBcIi5zdl9tYWluIC5wcm9ncmVzcy1iYXJcIjpcbiAgICAgIFwid2lkdGg6IGF1dG87IG1hcmdpbi1sZWZ0OiAycHg7IG1hcmdpbi1yaWdodDogMnB4O1wiLFxuICAgIFwiLnN2X21haW4gLnRhYmxlPnRib2R5PnRyPnRkXCI6IFwibWluLXdpZHRoOiA5MHB4O1wiLFxuICAgIFwiLnN2X21haW4gZi1wYW5lbCAuc3ZfcXN0blwiOiBcInBhZGRpbmc6IDA7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XCIsXG5cbiAgICAvL3Byb2dyZXNzIGJhclxuICAgIFwiLnN2X21haW4gLnN2LXByb2dyZXNzXCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXByb2dyZXNzX19iYXJcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcblxuICAgIC8vcGFuZWxkeW5hbWljXG4gICAgXCIuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19wcmV2LWJ0bi5zdi1wYW5lbGR5bmFtaWNfX3ByZXYtYnRuLS1kaXNhYmxlZCwgLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fbmV4dC1idG4uc3YtcGFuZWxkeW5hbWljX19uZXh0LWJ0bi0tZGlzYWJsZWRcIjpcbiAgICAgIFwiZmlsbDogJGRpc2FibGUtY29sb3I7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcy10ZXh0XCI6IFwiY29sb3I6ICRwcm9ncmVzcy10ZXh0LWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fcHJldi1idG4sIC5zdl9tYWluIC5zdi1wYW5lbGR5bmFtaWNfX25leHQtYnRuXCI6XG4gICAgICBcImZpbGw6ICR0ZXh0LWNvbG9yXCIsXG5cbiAgICAvL2Jvb2xlYW5cbiAgICBcIi5zdl9tYWluIC5zdi1ib29sZWFuX19zd2l0Y2hcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1ib29sZWFuX19zbGlkZXJcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LWJvb2xlYW5fX2xhYmVsLS1kaXNhYmxlZFwiOiBcImNvbG9yOiAkZGlzYWJsZWQtbGFiZWwtY29sb3I7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtYm9vbGVhbi0tZGlzYWJsZWQgLnN2LWJvb2xlYW5fX3N3aXRjaFwiOlxuICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiAkZGlzYWJsZWQtc3dpdGNoLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LWJvb2xlYW4tLWRpc2FibGVkICAuc3YtYm9vbGVhbl9fc2xpZGVyXCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRkaXNhYmxlZC1zbGlkZXItY29sb3I7XCJcbiAgICAvL2VvIGJvb2xlYW5cbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIGJvb3RzdHJhcG1hdGVyaWFsVGhlbWVDc3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgXCIuc3ZfbWFpbi5zdl9ib290c3RyYXBtYXRlcmlhbF9jc3MgLmZvcm0tZ3JvdXAuaXMtZm9jdXNlZCAuZm9ybS1jb250cm9sXCI6XG4gICAgICBcImJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkbWFpbi1jb2xvciwgJG1haW4tY29sb3IpLCBsaW5lYXItZ3JhZGllbnQoI0QyRDJEMiwgI0QyRDJEMik7XCIsXG4gICAgXCIuc3ZfbWFpbi5zdl9ib290c3RyYXBtYXRlcmlhbF9jc3MgLmZvcm0tZ3JvdXAuaXMtZm9jdXNlZCBsYWJlbFwiOlxuICAgICAgXCJjb2xvcjokbWFpbi1jb2xvcjtcIixcblxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5zdl9xc3RuIGxhYmVsLnN2X3FfbV9sYWJlbFwiOlxuICAgICAgXCJoZWlnaHQ6IDEwMCU7XCIsXG5cbiAgICBcIi5zdl9tYWluLnN2X2Jvb3RzdHJhcG1hdGVyaWFsX2NzcyAuY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIC5jaGVja2JveC1tYXRlcmlhbCAuY2hlY2tcIjpcbiAgICAgIFwiYm9yZGVyLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluLnN2X2Jvb3RzdHJhcG1hdGVyaWFsX2NzcyBsYWJlbC5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIC5jaGVja2JveC1tYXRlcmlhbCAuY2hlY2tcIjpcbiAgICAgIFwiYm9yZGVyLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluLnN2X2Jvb3RzdHJhcG1hdGVyaWFsX2NzcyAuY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIC5jaGVja2JveC1tYXRlcmlhbCAuY2hlY2s6YmVmb3JlXCI6XG4gICAgICBcImNvbG9yOiAkbWFpbi1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluLnN2X2Jvb3RzdHJhcG1hdGVyaWFsX2NzcyBsYWJlbC5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIC5jaGVja2JveC1tYXRlcmlhbCAuY2hlY2s6YmVmb3JlXCI6XG4gICAgICBcImNvbG9yOiAkbWFpbi1jb2xvcjtcIixcblxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmNpcmNsZVwiOlxuICAgICAgXCJib3JkZXItY29sb3I6ICRtYWluLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIGxhYmVsLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmNpcmNsZVwiOlxuICAgICAgXCJib3JkZXItY29sb3I6ICRtYWluLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmNoZWNrXCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIGxhYmVsLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmNoZWNrXCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5idG4tZGVmYXVsdC5hY3RpdmVcIjpcbiAgICAgIFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7IGNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5idG4tZGVmYXVsdDphY3RpdmVcIjpcbiAgICAgIFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7IGNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5idG4tc2Vjb25kYXJ5LmFjdGl2ZVwiOlxuICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjsgY29sb3I6ICRib2R5LWJhY2tncm91bmQtY29sb3I7XCIsXG4gICAgXCIuc3ZfbWFpbi5zdl9ib290c3RyYXBtYXRlcmlhbF9jc3MgLmJ0bi1zZWNvbmRhcnk6YWN0aXZlXCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yOyBjb2xvcjogJGJvZHktYmFja2dyb3VuZC1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluLnN2X2Jvb3RzdHJhcG1hdGVyaWFsX2NzcyAub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0XCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yOyBjb2xvcjogJGJvZHktYmFja2dyb3VuZC1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluLnN2X2Jvb3RzdHJhcG1hdGVyaWFsX2NzcyBpbnB1dFt0eXBlPSdidXR0b24nXS5idG4tcHJpbWFyeSwgLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIGJ1dHRvbi5idG4tcHJpbWFyeVwiOlxuICAgICAgXCJjb2xvcjogJGJvZHktYmFja2dyb3VuZC1jb2xvcjsgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XCIsXG4gICAgXCIuc3ZfbWFpbi5zdl9ib290c3RyYXBtYXRlcmlhbF9jc3MgaW5wdXRbdHlwZT0nYnV0dG9uJ10uYnRuLXByaW1hcnk6aG92ZXIsIC5zdl9tYWluLnN2X2Jvb3RzdHJhcG1hdGVyaWFsX2NzcyBidXR0b24uYnRuLXByaW1hcnk6aG92ZXJcIjpcbiAgICAgIFwiYmFja2dyb3VuZC1jb2xvcjogJG1haW4taG92ZXItY29sb3I7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3ZfcV9pbWdzZWwuY2hlY2tlZCBsYWJlbD5kaXZcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcblxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5zdl9xX2ZpbGVfcmVtb3ZlOmhvdmVyXCI6XG4gICAgICBcImNvbG9yOiAkbWFpbi1jb2xvcjtcIixcblxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ZmlsZV1cIjpcbiAgICAgIFwicG9zaXRpb246IHJlbGF0aXZlOyBvcGFjaXR5OiAxO1wiLFxuICAgIFwiLnN2X21haW4uc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzIC5wcm9ncmVzc1wiOiBcIndpZHRoOiA2MCU7XCIsXG4gICAgXCIuc3ZfbWFpbi5zdl9ib290c3RyYXBtYXRlcmlhbF9jc3MgLnByb2dyZXNzLWJhclwiOlxuICAgICAgXCJ3aWR0aDogYXV0bzsgbWFyZ2luLWxlZnQ6IDJweDsgbWFyZ2luLXJpZ2h0OiAycHg7XCIsXG5cbiAgICAvL3Byb2dyZXNzIGJhclxuICAgIFwiLnN2X21haW4gLnN2LXByb2dyZXNzXCI6IFwiYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXByb2dyZXNzX19iYXJcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcblxuICAgIC8vcGFuZWxkeW5hbWljXG4gICAgXCIuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19wcmV2LWJ0bi5zdi1wYW5lbGR5bmFtaWNfX3ByZXYtYnRuLS1kaXNhYmxlZCwgLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fbmV4dC1idG4uc3YtcGFuZWxkeW5hbWljX19uZXh0LWJ0bi0tZGlzYWJsZWRcIjpcbiAgICAgIFwiZmlsbDogJGRpc2FibGUtY29sb3I7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcy10ZXh0XCI6IFwiY29sb3I6ICRwcm9ncmVzcy10ZXh0LWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LXBhbmVsZHluYW1pY19fcHJldi1idG4sIC5zdl9tYWluIC5zdi1wYW5lbGR5bmFtaWNfX25leHQtYnRuXCI6XG4gICAgICBcImZpbGw6ICR0ZXh0LWNvbG9yXCIsXG5cbiAgICAvL2Jvb2xlYW5cbiAgICBcIi5zdl9tYWluIC5zdi1ib29sZWFuX19zd2l0Y2hcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcIixcbiAgICBcIi5zdl9tYWluIC5zdi1ib29sZWFuX19zbGlkZXJcIjogXCJiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LWJvb2xlYW5fX2xhYmVsLS1kaXNhYmxlZFwiOiBcImNvbG9yOiAkZGlzYWJsZWQtbGFiZWwtY29sb3I7XCIsXG4gICAgXCIuc3ZfbWFpbiAuc3YtYm9vbGVhbi0tZGlzYWJsZWQgLnN2LWJvb2xlYW5fX3N3aXRjaFwiOlxuICAgICAgXCJiYWNrZ3JvdW5kLWNvbG9yOiAkZGlzYWJsZWQtc3dpdGNoLWNvbG9yO1wiLFxuICAgIFwiLnN2X21haW4gLnN2LWJvb2xlYW4tLWRpc2FibGVkICAuc3YtYm9vbGVhbl9fc2xpZGVyXCI6XG4gICAgICBcImJhY2tncm91bmQtY29sb3I6ICRkaXNhYmxlZC1zbGlkZXItY29sb3I7XCJcbiAgICAvL2VvIGJvb2xlYW5cbiAgfTtcblxuICBwcml2YXRlIHNoZWV0OiBDU1NTdHlsZVNoZWV0ID0gbnVsbDtcblxuICBzdGF0aWMgZmluZFNoZWV0KHN0eWxlU2hlZXRJZDogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKFxuICAgICAgICAhIWRvY3VtZW50LnN0eWxlU2hlZXRzW2ldLm93bmVyTm9kZSAmJlxuICAgICAgICAoPGFueT5kb2N1bWVudCkuc3R5bGVTaGVldHNbaV0ub3duZXJOb2RlW1wiaWRcIl0gPT09IHN0eWxlU2hlZXRJZFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiA8Q1NTU3R5bGVTaGVldD5kb2N1bWVudC5zdHlsZVNoZWV0c1tpXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlU2hlZXQoc3R5bGVTaGVldElkOiBzdHJpbmcpIHtcbiAgICBsZXQgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gICAgc3R5bGUuaWQgPSBzdHlsZVNoZWV0SWQ7XG4gICAgLy8gQWRkIGEgbWVkaWEgKGFuZC9vciBtZWRpYSBxdWVyeSkgaGVyZSBpZiB5b3UnZCBsaWtlIVxuICAgIC8vIHN0eWxlLnNldEF0dHJpYnV0ZShcIm1lZGlhXCIsIFwic2NyZWVuXCIpXG4gICAgLy8gc3R5bGUuc2V0QXR0cmlidXRlKFwibWVkaWFcIiwgXCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IDEwMjRweClcIilcbiAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIlwiKSk7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgcmV0dXJuIDxDU1NTdHlsZVNoZWV0PnN0eWxlLnNoZWV0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhcHBseVRoZW1lKFxuICAgIHRoZW1lTmFtZTogc3RyaW5nID0gXCJkZWZhdWx0XCIsXG4gICAgdGhlbWVTZWxlY3Rvcjogc3RyaW5nID0gXCIuc3ZfbWFpblwiXG4gICkge1xuICAgIGxldCBUaGVtZUNzczogYW55O1xuXG4gICAgaWYgKHRoZW1lTmFtZSA9PT0gXCJtb2Rlcm5cIikgdGhlbWVTZWxlY3RvciA9IFwiLnN2LXJvb3QtbW9kZXJuIFwiO1xuXG4gICAgaWYgKFxuICAgICAgW1wiYm9vdHN0cmFwXCIsIFwiYm9vdHN0cmFwbWF0ZXJpYWxcIiwgXCJtb2Rlcm5cIl0uaW5kZXhPZih0aGVtZU5hbWUpICE9PSAtMVxuICAgICkge1xuICAgICAgVGhlbWVDc3MgPSAoPGFueT5TdHlsZXNNYW5hZ2VyKVt0aGVtZU5hbWUgKyBcIlRoZW1lQ3NzXCJdO1xuICAgICAgc3VydmV5Q3NzLmN1cnJlbnRUeXBlID0gdGhlbWVOYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICBUaGVtZUNzcyA9IFN0eWxlc01hbmFnZXIuVGhlbWVDc3M7XG4gICAgICBzdXJ2ZXlDc3MuY3VycmVudFR5cGUgPSBcInN0YW5kYXJkXCI7XG4gICAgfVxuXG4gICAgaWYgKFN0eWxlc01hbmFnZXIuRW5hYmxlZCkge1xuICAgICAgbGV0IHNoZWV0ID0gU3R5bGVzTWFuYWdlci5maW5kU2hlZXQodGhlbWVOYW1lICsgdGhlbWVTZWxlY3Rvcik7XG4gICAgICBpZiAoIXNoZWV0KSB7XG4gICAgICAgIHNoZWV0ID0gU3R5bGVzTWFuYWdlci5jcmVhdGVTaGVldCh0aGVtZU5hbWUgKyB0aGVtZVNlbGVjdG9yKTtcbiAgICAgICAgbGV0IHRoZW1lID1cbiAgICAgICAgICBTdHlsZXNNYW5hZ2VyLlRoZW1lQ29sb3JzW3RoZW1lTmFtZV0gfHxcbiAgICAgICAgICBTdHlsZXNNYW5hZ2VyLlRoZW1lQ29sb3JzW1wiZGVmYXVsdFwiXTtcblxuICAgICAgICBPYmplY3Qua2V5cyhUaGVtZUNzcykuZm9yRWFjaChzZWxlY3RvciA9PiB7XG4gICAgICAgICAgbGV0IGNzc1J1bGVUZXh0ID0gVGhlbWVDc3Nbc2VsZWN0b3JdO1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRoZW1lKS5mb3JFYWNoKFxuICAgICAgICAgICAgY29sb3JWYXJpYWJsZU5hbWUgPT5cbiAgICAgICAgICAgICAgKGNzc1J1bGVUZXh0ID0gY3NzUnVsZVRleHQucmVwbGFjZShcbiAgICAgICAgICAgICAgICBuZXcgUmVnRXhwKFwiXFxcXFwiICsgY29sb3JWYXJpYWJsZU5hbWUsIFwiZ1wiKSxcbiAgICAgICAgICAgICAgICB0aGVtZVtjb2xvclZhcmlhYmxlTmFtZV1cbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICApO1xuICAgICAgICAgIHNoZWV0Lmluc2VydFJ1bGUoXG4gICAgICAgICAgICB0aGVtZVNlbGVjdG9yICsgc2VsZWN0b3IgKyBcIiB7IFwiICsgY3NzUnVsZVRleHQgKyBcIiB9XCIsXG4gICAgICAgICAgICAwXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBFbmFibGVkID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoU3R5bGVzTWFuYWdlci5FbmFibGVkKSB7XG4gICAgICB0aGlzLnNoZWV0ID0gU3R5bGVzTWFuYWdlci5maW5kU2hlZXQoU3R5bGVzTWFuYWdlci5TdXJ2ZXlKU1N0eWxlc1NoZWV0SWQpO1xuICAgICAgaWYgKCF0aGlzLnNoZWV0KSB7XG4gICAgICAgIHRoaXMuc2hlZXQgPSBTdHlsZXNNYW5hZ2VyLmNyZWF0ZVNoZWV0KFxuICAgICAgICAgIFN0eWxlc01hbmFnZXIuU3VydmV5SlNTdHlsZXNTaGVldElkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVN0eWxlcyh0aGlzLnNoZWV0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZVN0eWxlcyhzaGVldDogQ1NTU3R5bGVTaGVldCkge1xuICAgIGlmIChTdHlsZXNNYW5hZ2VyLkVuYWJsZWQpIHtcbiAgICAgIE9iamVjdC5rZXlzKFN0eWxlc01hbmFnZXIuU3R5bGVzKS5mb3JFYWNoKHNlbGVjdG9yID0+XG4gICAgICAgIHNoZWV0Lmluc2VydFJ1bGUoXG4gICAgICAgICAgc2VsZWN0b3IgKyBcIiB7IFwiICsgU3R5bGVzTWFuYWdlci5TdHlsZXNbc2VsZWN0b3JdICsgXCIgfVwiLFxuICAgICAgICAgIDBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIE9iamVjdC5rZXlzKFN0eWxlc01hbmFnZXIuTWVkaWEpLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgICBzaGVldC5pbnNlcnRSdWxlKFxuICAgICAgICAgIFN0eWxlc01hbmFnZXIuTWVkaWFbc2VsZWN0b3JdLm1lZGlhICtcbiAgICAgICAgICAgIFwiIHsgXCIgK1xuICAgICAgICAgICAgc2VsZWN0b3IgK1xuICAgICAgICAgICAgXCIgeyBcIiArXG4gICAgICAgICAgICBTdHlsZXNNYW5hZ2VyLk1lZGlhW3NlbGVjdG9yXS5zdHlsZSArXG4gICAgICAgICAgICBcIiB9IH1cIixcbiAgICAgICAgICAwXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zdHlsZXNtYW5hZ2VyLnRzIiwiaW1wb3J0IHsgSGFzaFRhYmxlLCBIZWxwZXJzIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgSnNvbk9iamVjdCwgSnNvbkVycm9yLCBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHtcbiAgQmFzZSxcbiAgSVN1cnZleSxcbiAgSVN1cnZleURhdGEsXG4gIElTdXJ2ZXlJbXBsLFxuICBJVGV4dFByb2Nlc3NvcixcbiAgSVF1ZXN0aW9uLFxuICBJUGFuZWwsXG4gIElFbGVtZW50LFxuICBJUGFnZSxcbiAgU3VydmV5RXJyb3IsXG4gIEV2ZW50LFxuICBJU3VydmV5RXJyb3JPd25lclxufSBmcm9tIFwiLi9iYXNlXCI7XG5pbXBvcnQgeyBJU3VydmV5VHJpZ2dlck93bmVyLCBTdXJ2ZXlUcmlnZ2VyIH0gZnJvbSBcIi4vdHJpZ2dlclwiO1xuaW1wb3J0IHsgQ2FsY3VsYXRlZFZhbHVlIH0gZnJvbSBcIi4vY2FsY3VsYXRlZFZhbHVlXCI7XG5pbXBvcnQgeyBQYWdlTW9kZWwgfSBmcm9tIFwiLi9wYWdlXCI7XG5pbXBvcnQgeyBUZXh0UHJlUHJvY2Vzc29yLCBUZXh0UHJlUHJvY2Vzc29yVmFsdWUgfSBmcm9tIFwiLi90ZXh0UHJlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyBQcm9jZXNzVmFsdWUgfSBmcm9tIFwiLi9jb25kaXRpb25Qcm9jZXNzVmFsdWVcIjtcbmltcG9ydCB7IGR4U3VydmV5U2VydmljZSB9IGZyb20gXCIuL2R4U3VydmV5U2VydmljZVwiO1xuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vc3VydmV5U3RyaW5nc1wiO1xuaW1wb3J0IHsgQ3VzdG9tRXJyb3IgfSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgSUxvY2FsaXphYmxlT3duZXIsIExvY2FsaXphYmxlU3RyaW5nIH0gZnJvbSBcIi4vbG9jYWxpemFibGVzdHJpbmdcIjtcbmltcG9ydCB7IFN0eWxlc01hbmFnZXIgfSBmcm9tIFwiLi9zdHlsZXNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBTdXJ2ZXlUaW1lciB9IGZyb20gXCIuL3N1cnZleXRpbWVyXCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBJdGVtVmFsdWUgfSBmcm9tIFwiLi9pdGVtdmFsdWVcIjtcbmltcG9ydCB7IFBhbmVsTW9kZWxCYXNlIH0gZnJvbSBcIi4vcGFuZWxcIjtcbmltcG9ydCB7IEh0bWxDb25kaXRpb25JdGVtIH0gZnJvbSBcIi4vaHRtbENvbmRpdGlvbkl0ZW1cIjtcbmltcG9ydCB7IEV4cHJlc3Npb25SdW5uZXIsIENvbmRpdGlvblJ1bm5lciB9IGZyb20gXCIuL2NvbmRpdGlvbnNcIjtcbmltcG9ydCB7IHNldHRpbmdzIH0gZnJvbSBcIi4vc2V0dGluZ3NcIjtcblxuLyoqXG4gKiBTdXJ2ZXkgb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdXJ2ZXkuIFBhZ2VzLCBRdWVzdGlvbnMsIGZsb3cgbG9naWMgYW5kIGV0Yy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1cnZleU1vZGVsIGV4dGVuZHMgQmFzZVxuICBpbXBsZW1lbnRzXG4gICAgSVN1cnZleSxcbiAgICBJU3VydmV5RGF0YSxcbiAgICBJU3VydmV5SW1wbCxcbiAgICBJU3VydmV5VHJpZ2dlck93bmVyLFxuICAgIElTdXJ2ZXlFcnJvck93bmVyLFxuICAgIElMb2NhbGl6YWJsZU93bmVyIHtcbiAgW2luZGV4OiBzdHJpbmddOiBhbnk7XG4gIHByaXZhdGUgc3RhdGljIHN0eWxlc01hbmFnZXI6IFN0eWxlc01hbmFnZXIgPSBudWxsO1xuICBwdWJsaWMgc3RhdGljIHBsYXRmb3JtOiBzdHJpbmcgPSBcInVua25vd25cIjtcbiAgcHVibGljIGdldCBwbGF0Zm9ybU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3VydmV5TW9kZWwucGxhdGZvcm07XG4gIH1cbiAgLyoqXG4gICAqIFlvdSBtYXkgc2hvdyBjb21tZW50cyBpbnB1dCBmb3IgdGhlIG1vc3Qgb2YgcXVlc3Rpb25zLiBUaGUgZW50ZXJlZCB0ZXh0IGluIHRoZSBjb21tZW50IGlucHV0IHdpbGwgYmUgc2F2ZWQgYXMgJ3F1ZXN0aW9uIG5hbWUnICsgJ2NvbW1lbnRQcmVmaXgnLlxuICAgKiBAc2VlIGRhdGFcbiAgICovXG4gIHB1YmxpYyBnZXQgY29tbWVudFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZXR0aW5ncy5jb21tZW50UHJlZml4O1xuICB9XG4gIHB1YmxpYyBzZXQgY29tbWVudFByZWZpeCh2YWw6IHN0cmluZykge1xuICAgIHNldHRpbmdzLmNvbW1lbnRQcmVmaXggPSB2YWw7XG4gIH1cblxuICBwcml2YXRlIHBhZ2VzVmFsdWU6IEFycmF5PFBhZ2VNb2RlbD47XG4gIHByaXZhdGUgZ2V0IGN1cnJlbnRQYWdlVmFsdWUoKTogUGFnZU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY3VycmVudFBhZ2VWYWx1ZVwiLCBudWxsKTtcbiAgfVxuICBwcml2YXRlIHNldCBjdXJyZW50UGFnZVZhbHVlKHZhbDogUGFnZU1vZGVsKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY3VycmVudFBhZ2VWYWx1ZVwiLCB2YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWx1ZXNIYXNoOiBIYXNoVGFibGU8YW55PiA9IHt9O1xuICBwcml2YXRlIHZhcmlhYmxlc0hhc2g6IEhhc2hUYWJsZTxhbnk+ID0ge307XG5cbiAgcHJpdmF0ZSBsb2NhbGVWYWx1ZTogc3RyaW5nID0gXCJcIjtcblxuICBwcml2YXRlIHRleHRQcmVQcm9jZXNzb3I6IFRleHRQcmVQcm9jZXNzb3I7XG4gIHByaXZhdGUgY29tcGxldGVkU3RhdGVWYWx1ZTogc3RyaW5nID0gXCJcIjtcbiAgcHJpdmF0ZSBjb21wbGV0ZWRTdGF0ZVRleHRWYWx1ZTogc3RyaW5nID0gXCJcIjtcblxuICBwcml2YXRlIGlzVGltZXJTdGFydGVkOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgYmVmb3JlIHRoZSBzdXJ2ZXkgaXMgY29tcGxldGVkIGFuZCBvbkNvbXBsZXRlIGV2ZW50IGlzIGZpcmVkLiBZb3UgbWF5IHByZXZlbnQgdGhlIHN1cnZleSBmcm9tIGNvbXBsZXRpbmcgYnkgc2V0dGluZyBvcHRpb25zLmFsbG93Q29tcGxldGUgdG8gZmFsc2VcbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMuYWxsb3dDb21wbGV0ZSBzZXQgaXQgZmFsc2UgdG8gcHJldmVudCB0aGUgc3VydmV5IGZyb20gY29tcGxldGluZy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgdHJ1ZS5cbiAgICogQHNlZSBvbkNvbXBsZXRlXG4gICAqL1xuICBwdWJsaWMgb25Db21wbGV0aW5nOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgYSB1c2VyIGNsaWNrIG9uICdDb21wbGV0ZScgYnV0dG9uIGFuZCBmaW5pc2hlZCB0aGUgc3VydmV5LiBZb3UgbWF5IHVzZSBpdCB0byBzZW5kIHRoZSBkYXRhIHRvIHlvdXIgd2ViIHNlcnZlci5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMuc2hvd0RhdGFTYXZpbmcodGV4dCkgY2FsbCB0aGlzIG1ldGhvZCB0byBzaG93IHRoYXQgdGhlIHN1cnZleSBpcyBzYXZpbmcgdGhlIGRhdGEgb24geW91ciBzZXJ2ZXIuIFRoZSB0ZXh0IGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRlciB0byBzaG93IHlvdXIgbWVzc2FnZSBpbnN0ZWFkIG9mIGRlZmF1bHQuXG4gICAqIDxici8+IG9wdGlvbnMuc2hvd0RhdGFTYXZpbmdFcnJvcih0ZXh0KSBjYWxsIHRoaXMgbWV0aG9kIHRvIHNob3cgdGhhdCB0aGVyZSBpcyBhbiBlcnJvciBvbiBzYXZpbmcgdGhlIGRhdGEgb24geW91ciBzZXJ2ZXIuIElmIHlvdSB3YW50IHRvIHNob3cgYSBjdXN0b20gZXJyb3IsIHVzZSBhbiBvcHRpb25hbCB0ZXh0IHBhcmFtZXRlci5cbiAgICogPGJyLz4gb3B0aW9ucy5zaG93RGF0YVNhdmluZ1N1Y2Nlc3ModGV4dCkgY2FsbCB0aGlzIG1ldGhvZCB0byBzaG93IHRoYXQgdGhlIGRhdGEgd2VyZSBzdWNjZXNzZnVsIHNhdmVkIG9uIHRoZSBzZXJ2ZXIuXG4gICAqIDxici8+IG9wdGlvbnMuc2hvd0RhdGFTYXZpbmdDbGVhciBjYWxsIHRoaXMgbWV0aG9kIHRvIGhpZGUgdGhlIHRleHQgYWJvdXQgdGhlIHNhdmluZyBwcm9ncmVzcy5cbiAgICogQHNlZSBkYXRhXG4gICAqIEBzZWUgY2xlYXJJbnZpc2libGVWYWx1ZXNcbiAgICogQHNlZSBjb21wbGV0ZUxhc3RQYWdlXG4gICAqIEBzZWUgc3VydmV5UG9zdElkXG4gICAqL1xuICBwdWJsaWMgb25Db21wbGV0ZTogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRoZSBzdXJ2ZXkgY2hhbmdlZCBpdCdzIHN0YXRlIGZyb20gXCJzdGFydGluZ1wiIHRvIFwicnVubmluZ1wiLiBUaGUgXCJzdGFydGluZ1wiIHN0YXRlIG1lYW5zIHRoYXQgc3VydmV5IHNob3dzIHRoZSBzdGFydGVkIHBhZ2UuXG4gICAqIFRoZSBmaXJzdFBhZ2VJc1N0YXJ0ZWQgcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byB0aGUgdHJ1ZSwgaWYgeW91IHdhbnQgdG8gaGF2ZSB0aGUgc3RhcnRlZCBwYWdlIGluIHlvdXIgc3VydmV5LiBUaGUgZW5kLXVzZXIgc2hvdWxkIGNsaWNrIG9uIHRoZSBcIlN0YXJ0XCIgYnV0dG9uIHRvIHN0YXJ0IHRoZSBzdXJ2ZXkuXG4gICAqIEBzZWUgZmlyc3RQYWdlSXNTdGFydGVkXG4gICAqL1xuICBwdWJsaWMgb25TdGFydGVkOiBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCkgPT4gYW55LCBhbnk+ID0gbmV3IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsKSA9PiBhbnksXG4gICAgYW55XG4gID4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBjbGlja2luZyAnTmV4dCcgcGFnZSBpZiBzZW5kUmVzdWx0T25QYWdlTmV4dCBpcyBzZXQgdG8gdHJ1ZS4gWW91IG1heSB1c2UgaXQgdG8gc2F2ZSB0aGUgaW50ZXJtZWRpYXRlIHJlc3VsdHMsIGZvciBleGFtcGxlLCBpZiB5b3VyIHN1cnZleSBpcyBsYXJnZSBlbm91Z2guXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiBAc2VlIHNlbmRSZXN1bHRPblBhZ2VOZXh0XG4gICAqL1xuICBwdWJsaWMgb25QYXJ0aWFsU2VuZDogRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwpID0+IGFueSwgYW55PiA9IG5ldyBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCkgPT4gYW55LFxuICAgIGFueVxuICA+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgYmVmb3JlIGFub3RoZXIgcGFnZSBiZWNvbWVzIHRoZSBjdXJyZW50LiBUeXBpY2FsbHkgaXQgaGFwcGVucyB3aGVuIGEgdXNlciBjbGljayBvbiAnTmV4dCcgb3IgJ1ByZXYnIGJ1dHRvbnMuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb24ub2xkQ3VycmVudFBhZ2UgdGhlIHByZXZpb3VzIGN1cnJlbnQvYWN0aXZlIHBhZ2VcbiAgICogPGJyLz4gb3B0aW9uLm5ld0N1cnJlbnRQYWdlIGEgbmV3IGN1cnJlbnQvYWN0aXZlIHBhZ2VcbiAgICogPGJyLz4gb3B0aW9uLmFsbG93Q2hhbmdpbmcgc2V0IGl0IHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGN1cnJlbnQgcGFnZSBjaGFuZ2luZy4gSXQgaXMgdHJ1ZSBieSBkZWZhdWx0LlxuICAgKiBAc2VlIGN1cnJlbnRQYWdlXG4gICAqIEBzZWUgY3VycmVudFBhZ2VOb1xuICAgKiBAc2VlIG5leHRQYWdlXG4gICAqIEBzZWUgcHJldlBhZ2VcbiAgICogQHNlZSBjb21wbGV0ZUxhc3RQYWdlXG4gICAqIEBzZWUgb25DdXJyZW50UGFnZUNoYW5nZWRcbiAgICoqL1xuICBwdWJsaWMgb25DdXJyZW50UGFnZUNoYW5naW5nOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgd2hlbiBhbm90aGVyIHBhZ2UgYmVjb21lcyB0aGUgY3VycmVudC4gVHlwaWNhbGx5IGl0IGhhcHBlbnMgd2hlbiBhIHVzZXIgY2xpY2sgb24gJ05leHQnIG9yICdQcmV2JyBidXR0b25zLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9uLm9sZEN1cnJlbnRQYWdlIHRoZSBwcmV2aW91cyBjdXJyZW50L2FjdGl2ZSBwYWdlXG4gICAqIDxici8+IG9wdGlvbi5uZXdDdXJyZW50UGFnZSBhIG5ldyBjdXJyZW50L2FjdGl2ZSBwYWdlXG4gICAqIEBzZWUgY3VycmVudFBhZ2VcbiAgICogQHNlZSBjdXJyZW50UGFnZU5vXG4gICAqIEBzZWUgbmV4dFBhZ2VcbiAgICogQHNlZSBwcmV2UGFnZVxuICAgKiBAc2VlIGNvbXBsZXRlTGFzdFBhZ2VcbiAgICogQHNlZSBvbkN1cnJlbnRQYWdlQ2hhbmdpbmdcbiAgICovXG4gIHB1YmxpYyBvbkN1cnJlbnRQYWdlQ2hhbmdlZDogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIGJlZm9yZSB0aGUgcXVlc3Rpb24gdmFsdWUgaXMgY2hhbmdlZC4gSXQgY2FuIGJlIGRvbmUgdmlhIFVJIGJ5IGEgdXNlciBvciBwcm9ncmFtbWF0aWNhbGx5IG9uIGNhbGxpbmcgc2V0VmFsdWUgbWV0aG9kLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5uYW1lIHRoZSB2YWx1ZSBuYW1lIHRoYXQgaGFzIGJlaW5nIGNoYW5nZWRcbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiBhIHF1ZXN0aW9uIHdoaWNoIHF1ZXN0aW9uLm5hbWUgZXF1YWxzIHRvIHRoZSB2YWx1ZSBuYW1lLiBJZiB0aGVyZSBhcmUgc2V2ZXJhbCBxdWVzdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lLCB0aGUgZmlyc3QgcXVlc3Rpb24gaXMgdGFrZW4uIElmIHRoZXJlIGlzIG5vIHN1Y2ggcXVlc3Rpb25zLCB0aGUgb3B0aW9ucy5xdWVzdGlvbiBpcyBudWxsLlxuICAgKiA8YnIvPiBvcHRpb25zLm9sZFZhbHVlIG9sZCwgcHJldmlvdXMgdmFsdWUuXG4gICAqIDxici8+IG9wdGlvbnMudmFsdWUgYSBuZXcgdmFsdWUuIFlvdSBtYXkgY2hhbmdlIGl0XG4gICAqIEBzZWUgc2V0VmFsdWVcbiAgICogQHNlZSBvblZhbHVlQ2hhbmdlZFxuICAgKi9cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2luZzogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHF1ZXN0aW9uIHZhbHVlIGlzIGNoYW5nZWQuIEl0IGNhbiBiZSBkb25lIHZpYSBVSSBieSBhIHVzZXIgb3IgcHJvZ3JhbW1hdGljYWxseSBvbiBjYWxsaW5nIHNldFZhbHVlIG1ldGhvZC5cbiAgICogUGxlYXNlIHVzZSBvbkR5bmFtaWNQYW5lbEl0ZW1WYWx1ZUNoYW5nZWQgYW5kIG9uTWF0cml4Q2VsbFZhbHVlQ2hhbmdlZCBldmVudHMgdG8gaGFuZGxlIGNoYW5nZXMgYSBxdWVzdGlvbiBpbiB0aGUgUGFuZWwgRHluYW1pYyBhbmQgYSBjZWxsIHF1ZXN0aW9uIGluIG1hdHJpY2VzLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5uYW1lIHRoZSB2YWx1ZSBuYW1lIHRoYXQgaGFzIGJlZW4gY2hhbmdlZFxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIGEgcXVlc3Rpb24gd2hpY2ggcXVlc3Rpb24ubmFtZSBlcXVhbHMgdG8gdGhlIHZhbHVlIG5hbWUuIElmIHRoZXJlIGFyZSBzZXZlcmFsIHF1ZXN0aW9ucyB3aXRoIHRoZSBzYW1lIG5hbWUsIHRoZSBmaXJzdCBxdWVzdGlvbiBpcyB0YWtlbi4gSWYgdGhlcmUgaXMgbm8gc3VjaCBxdWVzdGlvbnMsIHRoZSBvcHRpb25zLnF1ZXN0aW9uIGlzIG51bGwuXG4gICAqIDxici8+IG9wdGlvbnMudmFsdWUgYSBuZXcgdmFsdWVcbiAgICogQHNlZSBzZXRWYWx1ZVxuICAgKiBAc2VlIG9uVmFsdWVDaGFuZ2luZ1xuICAgKiBAc2VlIG9uRHluYW1pY1BhbmVsSXRlbVZhbHVlQ2hhbmdlZFxuICAgKiBAc2VlIG9uTWF0cml4Q2VsbFZhbHVlQ2hhbmdlZFxuICAgKi9cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2VkOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgb24gY2hhbmdpbmcgYSBxdWVzdGlvbiB2aXNpYmlsaXR5LlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiBhIHF1ZXN0aW9uIHdoaWNoIHZpc2liaWxpdHkgaGFzIGJlZW4gY2hhbmdlZFxuICAgKiA8YnIvPiBvcHRpb25zLm5hbWUgYSBxdWVzdGlvbiBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMudmlzaWJsZSBhIHF1ZXN0aW9uIHZpc2libGUgYm9vbGVhbiB2YWx1ZVxuICAgKiBAc2VlIFF1ZXN0aW9uLnZpc2liaWxlXG4gICAqIEBzZWUgUXVlc3Rpb24udmlzaWJpbGVJZlxuICAgKi9cbiAgcHVibGljIG9uVmlzaWJsZUNoYW5nZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBjaGFuZ2luZyBhIHBhZ2UgdmlzaWJpbGl0eS5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMucGFnZSBhIHBhZ2UgIHdoaWNoIHZpc2liaWxpdHkgaGFzIGJlZW4gY2hhbmdlZFxuICAgKiA8YnIvPiBvcHRpb25zLnZpc2libGUgYSBwYWdlIHZpc2libGUgYm9vbGVhbiB2YWx1ZVxuICAgKiBAc2VlIFBhZ2VNb2RlbC52aXNpYmlsZVxuICAgKiBAc2VlIFBhZ2VNb2RlbC52aXNpYmlsZUlmXG4gICAqL1xuICBwdWJsaWMgb25QYWdlVmlzaWJsZUNoYW5nZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBjaGFuZ2luZyBhIHBhbmVsIHZpc2liaWxpdHkuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnBhbmVsIGEgcGFuZWwgd2hpY2ggdmlzaWJpbGl0eSBoYXMgYmVlbiBjaGFuZ2VkXG4gICAqIDxici8+IG9wdGlvbnMudmlzaWJsZSBhIHBhbmVsIHZpc2libGUgYm9vbGVhbiB2YWx1ZVxuICAgKiBAc2VlIFBhbmVsTW9kZWwudmlzaWJpbGVcbiAgICogQHNlZSBQYW5lbE1vZGVsLnZpc2liaWxlSWZcbiAgICovXG4gIHB1YmxpYyBvblBhbmVsVmlzaWJsZUNoYW5nZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBhZGRpbmcgYSBuZXcgcXVlc3Rpb24gaW50byBzdXJ2ZXkuXG4gICAqICdxdWVzdGlvbic6IHF1ZXN0aW9uLCAnbmFtZSc6IHF1ZXN0aW9uLm5hbWUsICdpbmRleCc6IGluZGV4LCAncGFyZW50UGFuZWwnOiBwYXJlbnRQYW5lbCwgJ3Jvb3RQYW5lbCc6IHJvb3RQYW5lbFxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiBhIG5ld2x5IGFkZGVkIHF1ZXN0aW9uIG9iamVjdC5cbiAgICogPGJyLz4gb3B0aW9ucy5uYW1lIGEgcXVlc3Rpb24gbmFtZVxuICAgKiA8YnIvPiBvcHRpb25zLmluZGV4IGEgaW5kZXggb2YgdGhlIHF1ZXN0aW9uIGluIHRoZSBjb250YWluZXIgKHBhZ2Ugb3IgcGFuZWwpXG4gICAqIDxici8+IG9wdGlvbnMucGFyZW50UGFuZWwgYSBjb250YWluZXIgd2hlcmUgcXVlc3Rpb24gaXMgbG9jYXRlZC4gSXQgY2FuIGJlIHBhZ2Ugb3IgcGFuZWwuXG4gICAqIDxici8+IG9wdGlvbnMucm9vdFBhbmVsIHR5cGljYWxseSBpdCBpcyBhIHBhZ2UuXG4gICAqIEBzZWUgUXVlc3Rpb25cbiAgICovXG4gIHB1YmxpYyBvblF1ZXN0aW9uQWRkZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiByZW1vdmluZyBhIHF1ZXN0aW9uIGZyb20gc3VydmV5XG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIGEgcmVtb3ZlZCBxdWVzdGlvbiBvYmplY3QuXG4gICAqIDxici8+IG9wdGlvbnMubmFtZSBhIHF1ZXN0aW9uIG5hbWVcbiAgICogQHNlZSBRdWVzdGlvblxuICAgKi9cbiAgcHVibGljIG9uUXVlc3Rpb25SZW1vdmVkOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgb24gYWRkaW5nIGEgcGFuZWwgaW50byBzdXJ2ZXlcbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMucGFuZWwgYSBuZXdseSBhZGRlZCBwYW5lbCBvYmplY3QuXG4gICAqIDxici8+IG9wdGlvbnMubmFtZSBhIHBhbmVsIG5hbWVcbiAgICogPGJyLz4gb3B0aW9ucy5pbmRleCBhIGluZGV4IG9mIHRoZSBwYW5lbCBpbiB0aGUgY29udGFpbmVyIChwYWdlIG9yIHBhbmVsKVxuICAgKiA8YnIvPiBvcHRpb25zLnBhcmVudFBhbmVsIGEgY29udGFpbmVyIHdoZXJlIHF1ZXN0aW9uIGlzIGxvY2F0ZWQuIEl0IGNhbiBiZSBwYWdlIG9yIHBhbmVsLlxuICAgKiA8YnIvPiBvcHRpb25zLnJvb3RQYW5lbCB0eXBpY2FsbHkgaXQgaXMgYSBwYWdlLlxuICAgKiBAc2VlIFBhbmVsTW9kZWxcbiAgICovXG4gIHB1YmxpYyBvblBhbmVsQWRkZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiByZW1vdmluZyBhIHBhbmVsIGZyb20gc3VydmV5XG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnBhbmVsIGEgcmVtb3ZlZCBwYW5lbCBvYmplY3QuXG4gICAqIDxici8+IG9wdGlvbnMubmFtZSBhIHBhbmVsIG5hbWVcbiAgICogQHNlZSBQYW5lbE1vZGVsXG4gICAqL1xuICBwdWJsaWMgb25QYW5lbFJlbW92ZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBhZGRpbmcgYSBwYWdlIGludG8gc3VydmV5XG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnBhZ2UgYSBuZXdseSBhZGRlZCBwYW5lbCBvYmplY3QuXG4gICAqIEBzZWUgUGFuZWxNb2RlbFxuICAgKi9cbiAgcHVibGljIG9uUGFnZUFkZGVkOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgb24gdmFsaWRhdGluZyB2YWx1ZSBpbiBhIHF1ZXN0aW9uLiBTZXQgeW91ciBlcnJvciB0byBvcHRpb25zLmVycm9yIGFuZCBzdXJ2ZXkgd2lsbCBzaG93IHRoZSBlcnJvciBmb3IgdGhlIHF1ZXN0aW9uIGFuZCBibG9jayBjb21wbGV0aW5nIHRoZSBzdXJ2ZXkgb3IgZ29pbmcgdG8gdGhlIG5leHQgcGFnZS5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMucXVlc3Rpb24gYSBxdWVzdGlvblxuICAgKiA8YnIvPiBvcHRpb25zLm5hbWUgYSBxdWVzdGlvbiBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMudmFsdWUgdGhlIGN1cnJlbnQgcXVlc3Rpb24gdmFsdWVcbiAgICogPGJyLz4gb3B0aW9ucy5lcnJvciBhbiBlcnJvciBzdHJpbmcuIEl0IGlzIGVtcHR5IGJ5IGRlZmF1bHQuXG4gICAqIEBzZWUgb25TZXJ2ZXJWYWxpZGF0ZVF1ZXN0aW9uc1xuICAgKiBAc2VlIG9uU2V0dGluZ1F1ZXN0aW9uRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgb25WYWxpZGF0ZVF1ZXN0aW9uOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgYmVmb3JlIGVycm9ycyBhcmUgc2V0dGluZyBpbnRvIHF1ZXN0aW9uLiBZb3UgbWF5IGFkZC9yZW1vdmUvbW9kaWZ5IGVycm9ycyBmb3IgYSBxdWVzdGlvbi5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMucXVlc3Rpb24gYSBxdWVzdGlvblxuICAgKiA8YnIvPiBvcHRpb25zLmVycm9ycyB0aGUgbGlzdCBvZiBlcnJvcnMuIFRoZSBsaXN0IGNhbiBiZSBlbXB0eSBpZiBieSBkZWZhdWx0IHRoZXJlIGlzIG5vIGVycm9yc1xuICAgKiBAc2VlIG9uVmFsaWRhdGVRdWVzdGlvblxuICAgKi9cbiAgcHVibGljIG9uU2V0dGluZ1F1ZXN0aW9uRXJyb3JzOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBldmVudCB0byB2YWxpZGF0ZSBkYXRhIG9uIHlvdXIgc2VydmVyLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5kYXRhIHRoZSB2YWx1ZXMgb2YgYWxsIG5vbi1lbXB0eSBxdWVzdGlvbnMgb24gdGhlIGN1cnJlbnQgcGFnZS4gWW91IGNhbiBnZXQgYSBxdWVzdGlvbiB2YWx1ZSBhcyBvcHRpb25zLmRhdGFbXCJteVF1ZXN0aW9uTmFtZVwiXS5cbiAgICogPGJyLz4gb3B0aW9ucy5lcnJvcnMgc2V0IHlvdXIgZXJyb3JzIHRvIHRoaXMgb2JqZWN0IGFzOiBvcHRpb25zLmVycm9yc1tcIm15UXVlc3Rpb25OYW1lXCJdID0gXCJFcnJvciB0ZXh0XCI7LiBJdCB3aWxsIGJlIHNob3duIGFzIGEgcXVlc3Rpb24gZXJyb3IuXG4gICAqIDxici8+IG9wdGlvbnMuY29tcGxldGUoKSBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gdGVsbCBzdXJ2ZXkgdGhhdCB5b3VyIHNlcnZlciBjYWxsYmFjayBoYXMgYmVlbiBwcm9jZXNzZWQuXG4gICAqIEBzZWUgb25WYWxpZGF0ZVF1ZXN0aW9uXG4gICAqIEBzZWUgb25WYWxpZGF0ZVBhbmVsXG4gICAqL1xuICBwdWJsaWMgb25TZXJ2ZXJWYWxpZGF0ZVF1ZXN0aW9uczogYW55ID0gbmV3IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPigpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gbW9kaWZ5IHRoZSBodG1sIGJlZm9yZSByZW5kZXJpbmcsIGZvciBleGFtcGxlIGh0bWwgb24gJ1RoYW5rIHlvdScgcGFnZS4gT3B0aW9ucyBoYXMgb25lIHBhcmFtZXRlcjogb3B0aW9ucy5odG1sLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5odG1sIGFuIGh0bWwgdGhhdCB5b3UgbWF5IGNoYW5nZSBiZWZvcmUgdGV4dCBwcm9jZXNzaW5nIGFuZCB0aGVuIHJlbmRlcmluZy5cbiAgICogQHNlZSBjb21wbGV0ZWRIdG1sXG4gICAqIEBzZWUgbG9hZGluZ0h0bWxcbiAgICogQHNlZSBRdWVzdGlvbkh0bWxNb2RlbC5odG1sXG4gICAqL1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIG9uIHZhbGlkYXRpbmcgYSBwYW5lbC4gU2V0IHlvdXIgZXJyb3IgdG8gb3B0aW9ucy5lcnJvciBhbmQgc3VydmV5IHdpbGwgc2hvdyB0aGUgZXJyb3IgZm9yIHRoZSBwYW5lbCBhbmQgYmxvY2sgY29tcGxldGluZyB0aGUgc3VydmV5IG9yIGdvaW5nIHRvIHRoZSBuZXh0IHBhZ2UuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLm5hbWUgYSBwYW5lbCBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMuZXJyb3IgYW4gZXJyb3Igc3RyaW5nLiBJdCBpcyBlbXB0eSBieSBkZWZhdWx0LlxuICAgKiBAc2VlIG9uVmFsaWRhdGVRdWVzdGlvblxuICAgKi9cbiAgcHVibGljIG9uVmFsaWRhdGVQYW5lbDogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVXNlIHRoZSBldmVudCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgZXJyb3IgdGV4dC5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMudGV4dCBhbiBlcnJvciB0ZXh0XG4gICAqIDxici8+IG9wdGlvbnMuZXJyb3IgYW4gaW5zdGFuY2Ugb2YgU3VydmV5RXJyb3Igb2JqZWN0XG4gICAqIDxici8+IG9wdGlvbnMubmFtZSB0aGUgZXJyb3IgbmFtZS4gVGhlIGZvbGxvd2luZyBlcnJvciBuYW1lIGFyZSBhdmFpbGFibGU6XG4gICAqIHJlcXVpcmVkLCByZXF1aXJlb25lYW5zd2VyLCByZXF1aXJlbnVtZXJpYywgZXhjZWVkc2l6ZSwgd2VicmVxdWVzdCwgd2VicmVxdWVzdGVtcHR5LCBvdGhlcmVtcHR5LFxuICAgKiB1cGxvYWRpbmdmaWxlLCByZXF1aXJlZGluYWxscm93c2Vycm9yLCBtaW5yb3djb3VudGVycm9yLCBrZXlkdXBsaWNhdGlvbmVycm9yLCBjdXN0b21cbiAgICovXG4gIHB1YmxpYyBvbkVycm9yQ3VzdG9tVGV4dDogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVXNlIHRoZSB0aGlzIGV2ZW50IHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIHN1cnZleSBmaW5pc2hlZCB2YWxpZGF0ZSBxdWVzdGlvbnMgb24gdGhlIGN1cnJlbnQgcGFnZS4gSXQgY29tbW9ubHkgaGFwcGVucyB3aGVuIGEgdXNlciB0cnkgdG8gZ28gdG8gdGhlIG5leHQgcGFnZSBvciBjb21wbGV0ZSB0aGUgc3VydmV5XG4gICAqIG9wdGlvbnMucXVlc3Rpb25zIC0gdGhlIGxpc3Qgb2YgcXVlc3Rpb25zIHRoYXQgaGF2ZSBlcnJvcnNcbiAgICogb3B0aW9ucy5lcnJvcnMgLSB0aGUgbGlzdCBvZiBlcnJvcnNcbiAgICovXG4gIHB1YmxpYyBvblZhbGlkYXRlZEVycm9yc09uQ3VycmVudFBhZ2U6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcblxuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gbW9kaWZ5IHRoZSBodG1sIGJlZm9yZSByZW5kZXJpbmcsIGZvciBleGFtcGxlIGNvbXBsZXRlSHRtbCBvciBsb2FkaW5nSHRtbC5cbiAgICogb3B0aW9ucy5odG1sIC0gY2hhbmdlIHRoaXMgaHRtbCBwcm9wZXJ0eSBiZWZvcmUgdGhlIGxpYnJhcnkgcmVuZGVyZWQgaXRcbiAgICogQHNlZSBjb21wbGV0ZWRIdG1sXG4gICAqIEBzZWUgbG9hZGluZ0h0bWxcbiAgICovXG4gIHB1YmxpYyBvblByb2Nlc3NIdG1sOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBldmVudCB0byBjaGFuZ2UgdGhlIHF1ZXN0aW9uIHRpdGxlIGluIHRoZSBjb2RlLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy50aXRsZSBhIGNhbGN1YWx0ZWQgcXVlc3Rpb24gdGl0bGUsIGJhc2VkIG9uIHF1ZXN0aW9uIHRpdGxlLCBuYW1lLCBpc1JlcXVpcmVkLCB2aXNpYmxlSW5kZXggKG5vKVxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIGEgcXVlc3Rpb24gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIG9uR2V0UXVlc3Rpb25UaXRsZTogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gcHJvY2VzcyB0aGUgbWFya2Rvd24gdGV4dC5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMuZWxlbWVudCBTdXJ2ZXlKUyBlbGVtZW50IHdoZXJlIHRoZSBzdHJpbmcgaXMgZ29pbmcgdG8gYmUgcmVuZGVyZWQuIEl0IGlzIGEgcXVlc3Rpb24sIHBhbmVsLCBwYWdlIG9yIHN1cnZleVxuICAgKiA8YnIvPiBvcHRpb25zLnRleHQgYSB0ZXh0IHRoYXQgaXMgZ29pbmcgdG8gYmUgcmVuZGVyZWRcbiAgICogPGJyLz4gb3B0aW9ucy5odG1sIGEgaHRtbC4gSXQgaXMgbnVsbCBieSBkZWZhdWx0LiBTZXQgaXQgYW5kIHN1cnZleSB3aWxsIHVzZSBpdCBpbnN0ZWFkIG9mIG9wdGlvbnMudGV4dFxuICAgKi9cbiAgcHVibGljIG9uVGV4dE1hcmtkb3duOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgZmlyZXMgd2hlbiBpdCBnZXQgcmVzcG9uc2UgZnJvbSB0aGUgW2R4c3VydmV5LmNvbV0oaHR0cDovL3d3dy5keHN1cnZleS5jb20pIHNlcnZpY2Ugb24gc2F2aW5nIHN1cnZleSByZXN1bHRzLiBVc2UgaXQgdG8gZmluZCBvdXQgaWYgdGhlIHJlc3VsdHMgaGF2ZSBiZWVuIHNhdmVkIHN1Y2Nlc3NmdWwuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnN1Y2Nlc3MgaXQgaXMgdHJ1ZSBpZiB0aGUgcmVzdWx0cyB3ZXJlIHNlbnQgdG8gdGhlIHNlcnZpY2Ugc3VjY2Vzc2Z1bFxuICAgKiA8YnIvPiBvcHRpb25zLnJlc3BvbnNlIGEgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmljZVxuICAgKi9cbiAgcHVibGljIG9uU2VuZFJlc3VsdDogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVXNlIGl0IHRvIGdldCByZXN1bHRzIGFmdGVyIGNhbGxpbmcgdGhlIGdldFJlc3VsdCBtZXRob2QuIEl0IHJldHVybnMgYSBzaW1wbGUgYW5hbHl0aWMgZnJvbSBbZHhzdXJ2ZXkuY29tXShodHRwOi8vd3d3LmR4c3VydmV5LmNvbSkgc2VydmljZS5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMuc3VjY2VzcyBpdCBpcyB0cnVlIGlmIHRoZSByZXN1bHRzIHdlcmUgZ290IGZyb20gdGhlIHNlcnZpY2Ugc3VjY2Vzc2Z1bFxuICAgKiA8YnIvPiBvcHRpb25zLmRhdGEgdGhlIG9iamVjdCB7QW5zd2Vyc0NvdW50LCBRdWVzdGlvblJlc3VsdCA6IHt9IH0uIEFuc3dlcnNDb3VudCBpcyB0aGUgbnVtYmVyIG9mIHBvc3RlZCBzdXJ2ZXkgcmVzdWx0cy4gUXVlc3Rpb25SZXN1bHQgaXMgYW4gb2JqZWN0IHdpdGggYWxsIHBvc3NpYmxlIHVuaXF1ZSBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbiBhbmQgbnVtYmVyIG9mIHRoZXNlIGFuc3dlcnMuXG4gICAqIDxici8+IG9wdGlvbnMuZGF0YUxpc3QgYW4gYXJyYXkgb2Ygb2JqZWN0cyB7bmFtZSwgdmFsdWV9LCB3aGVyZSAnbmFtZScgaXMgYW4gdW5pcXVlIHZhbHVlL2Fuc3dlciB0byB0aGUgcXVlc3Rpb24gYW5kIHZhbHVlIGlzIGEgbnVtYmVyL2NvdW50IG9mIHN1Y2ggYW5zd2Vycy5cbiAgICogPGJyLz4gb3B0aW9ucy5yZXNwb25zZSB0aGUgc2VydmVyIHJlc3BvbnNlXG4gICAqIEBzZWUgZ2V0UmVzdWx0XG4gICAqL1xuICBwdWJsaWMgb25HZXRSZXN1bHQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiB1cGxvYWRpbmcgdGhlIGZpbGUgaW4gUXVlc3Rpb25GaWxlIHdoZW4gc3RvcmVEYXRhQXNUZXh0IGlzIHNldCB0byBmYWxzZS4gWW91IG1heSB1c2UgaXQgdG8gY2hhbmdlIHRoZSBmaWxlIG5hbWUgb3IgdGVsbHMgdGhlIGxpYnJhcnkgZG8gbm90IGFjY2VwdCB0aGUgZmlsZS4gVGhlcmUgYXJlIHRocmVlIHByb3BlcnRpZXMgaW4gb3B0aW9uczogb3B0aW9ucy5uYW1lLCBvcHRpb25zLmZpbGUgYW5kIG9wdGlvbnMuYWNjZXB0LlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogbmFtZTogbmFtZSwgZmlsZTogZmlsZSwgYWNjZXB0OiBhY2NlcHRcbiAgICogPGJyLz4gbmFtZSB0aGUgZmlsZSBuYW1lXG4gICAqIDxici8+IGZpbGUgdGhlIEphdmFzY3JpcHQgRmlsZSBvYmplY3RcbiAgICogPGJyLz4gYWNjZXB0IGEgYm9vbGVhbiB2YWx1ZSwgdHJ1ZSBieSBkZWZhdWx0LiBTZXQgaXQgdG8gZmFsc2UgdG8gZGVueSB0aGlzIGZpbGUgdG8gdXBsb2FkXG4gICAqIEBzZWUgdXBsb2FkRmlsZXNcbiAgICogQHNlZSBRdWVzdGlvbkZpbGVNb2RlbC5zdG9yZURhdGFBc1RleHRcbiAgICovXG4gIHB1YmxpYyBvblVwbG9hZEZpbGVzOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgb24gZG93bmxvYWRpbmcgdGhlIGZpbGUgaW4gUXVlc3Rpb25GaWxlLiBZb3UgbWF5IHVzZSBpdCB0byBwYXNzIHRoZSBmaWxlIGZvciB0aGUgcHJldmlldy4gVGhlcmUgYXJlIGZvdXIgcHJvcGVydGllcyBpbiBvcHRpb25zOiBvcHRpb25zLm5hbWUsIG9wdGlvbnMuY29udGVudCwgb3B0aW5zLmZpbGVWYWx1ZSBhbmQgb3B0aW9ucy5jYWxsYmFjay5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIG5hbWU6IG5hbWUsIGNvbnRlbnQ6IGNvbnRlbnQsIGZpbGVWYWx1ZTogZmlsZVZhbHVlXG4gICAqIDxici8+IG5hbWUgdGhlIHF1ZXN0aW9uIG5hbWVcbiAgICogPGJyLz4gY29udGVudCB0aGUgZmlsZSBjb250ZW50XG4gICAqIDxici8+IGZpbGVWYWx1ZSBzaW5nbGUgZmlsZSBxdWVzdGlvbiB2YWx1ZVxuICAgKiA8YnIvPiBjYWxsYmFjayBhIGNhbGwgYmFjayBmdW5jdGlvbiB0byBnZXQgdGhlIHN0YXR1cyBvbiBkb3dubG9hZGluZyB0aGUgZmlsZSBhbmQgdGhlIGRvd25sb2FkZWQgZmlsZSBjb250ZW50XG4gICAqIEBzZWUgZG93bmxvYWRGaWxlXG4gICAqL1xuICBwdWJsaWMgb25Eb3dubG9hZEZpbGU6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBjbGVhcmluZyB0aGUgdmFsdWUgaW4gUXVlc3Rpb25GaWxlLiBZb3UgbWF5IHVzZSBpdCB0byByZW1vdmUgZmlsZXMgc3RvcmVkIG9uIHlvdXIgc2VydmVyLiBUaGVyZSBhcmUgdGhyZWUgcHJvcGVydGllcyBpbiBvcHRpb25zOiBvcHRpb25zLm5hbWUsIG9wdGlvbnMudmFsdWUgYW5kIG9wdGlvbnMuY2FsbGJhY2suXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiBuYW1lOiBuYW1lLCB2YWx1ZTogdmFsdWVcbiAgICogPGJyLz4gbmFtZSB0aGUgcXVlc3Rpb24gbmFtZVxuICAgKiA8YnIvPiB2YWx1ZSB0aGUgcXVlc3Rpb24gdmFsdWVcbiAgICogPGJyLz4gZmlsZU5hbWUgb2YgdGhlIHJlbW92ZWQgZmlsZSwgcGFzcyBudWxsIHRvIGNsZWFyIGFsbCBmaWxlc1xuICAgKiA8YnIvPiBjYWxsYmFjayBhIGNhbGwgYmFjayBmdW5jdGlvbiB0byBnZXQgdGhlIHN0YXR1cyBvbiBjbGVhcmluZyB0aGUgZmlsZXMgb3BlcmF0aW9uXG4gICAqIEBzZWUgY2xlYXJGaWxlc1xuICAgKi9cbiAgcHVibGljIG9uQ2xlYXJGaWxlczogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIGFmdGVyIGNob2ljZXMgZm9yIHJhZGlvZ3JvdXAsIGNoZWNrYm94IGFuZCBkcm9wZG93biBoYXMgYmVlbiBsb2FkZWQgZnJvbSB0aGUgUkVTVGZ1bCBzZXJ2aWNlIGFuZCBiZWZvcmUgdGhleSBhcmUgYXNzaWduIHRvIHRoZSBxdWVzdGlvbi5cbiAgICogWW91IG1heSBjaGFuZ2UgdGhlIGNob2ljZXMsIGJlZm9yZSBpdCB3YXMgYXNzaWduIG9yIGRpc2FibGUvZW5hYmxlZCBtYWtlIHZpc2libGUvaW52aXNpYmxlIHF1ZXN0aW9uLCBiYXNlZCBvbiBsb2FkZWQgcmVzdWx0c1xuICAgKiA8YnIvPiBxdWVzdGlvbiAtIHRoZSBxdWVzdGlvbiB3aGVyZSBsb2FkZWQgY2hvaWNlcyBhcmUgZ29pbmcgdG8gYmUgYXNzaWduZWRcbiAgICogPGJyLz4gY2hvaWNlcyAtIHRoZSBsb2FkZWQgY2hvaWNlcy4gWW91IG1heSBjaGFuZ2UgdGhlbSB0byBhc3NpZ24gdGhlIGNvcnJlY3Qgb25lXG4gICAqIDxicj4gc2VydmVyUmVzdWx0IC0gYSByZXN1bHQgdGhhdCBjb21lcyBmcm9tIHRoZSBzZXJ2ZXIgYXMgaXQgaXMuXG4gICAqL1xuICBwdWJsaWMgb25Mb2FkQ2hvaWNlc0Zyb21TZXJ2ZXI6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBwcm9jZXNzaW5nIHRoZSB0ZXh0IHdoZW4gaXQgZmluZHMgYSB0ZXh0IGluIGJyYWNrZXRzOiB7c29tZXZhbHVlfS4gQnkgZGVmYXVsdCBpdCB1c2VzIHRoZSB2YWx1ZSBvZiBzdXJ2ZXkgcXVlc3Rpb24gdmFsdWVzIGFuZCB2YXJpYWJsZXMuXG4gICAqIEZvciBleGFtcGxlLCB5b3UgbWF5IHVzZSB0aGUgdGV4dCBwcm9jZXNzaW5nIGluIGxvYWRpbmcgY2hvaWNlcyBmcm9tIHRoZSB3ZWIuIElmIHlvdXIgY2hvaWNlc0J5VXJsLnVybCBlcXVhbHMgdG8gXCJVcmxUb1NlcnZpY2VUb0dldEFsbENpdGllcy97Y291bnRyeX0ve3N0YXRlfVwiLFxuICAgKiB5b3UgbWF5IHNldCBvbiB0aGlzIGV2ZW50IG9wdGlvbnMudmFsdWUgdG8gXCJhbGxcIiBvciBlbXB0eSBzdHJpbmcgd2hlbiB0aGUgXCJzdGF0ZVwiIHZhbHVlL3F1ZXN0aW9uIGlzIG5vbiBzZWxlY3RlZCBieSBhIHVzZXIuXG4gICAqIDxici8+IG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgcHJvY2Vzc2luZyB2YWx1ZSwgZm9yIGV4YW1wbGUsIFwic3RhdGVcIiBpbiBvdXIgZXhhbXBsZVxuICAgKiA8YnIvPiB2YWx1ZSAtIHRoZSB2YWx1ZSBvZiB0aGUgcHJvY2Vzc2luZyB0ZXh0XG4gICAqIDxici8+IGlzRXhpc3RzIC0gYSBib29sZWFuIHZhbHVlLiBTZXQgaXQgdG8gdHJ1ZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIHZhbHVlIGFuZCBzZXQgaXQgdG8gZmFsc2UgaWYgeW91IGRvbid0LlxuICAgKi9cbiAgcHVibGljIG9uUHJvY2Vzc1RleHRWYWx1ZTogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIGJlZm9yZSByZW5kZXJpbmcgYSBxdWVzdGlvbi4gVXNlIGl0IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHF1ZXN0aW9uIGNzcyBjbGFzc2VzLlxuICAgKiBUaGVyZSBhcmUgdHdvIHBhcmFtZXRlcnMgaW4gb3B0aW9uczogb3B0aW9ucy5xdWVzdGlvbiBhbmQgb3B0aW9ucy5jc3NDbGFzc2VzXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIGEgcXVlc3Rpb24gZm9yIHdoaWNoIHlvdSBtYXkgY2hhbmdlIHRoZSBjc3MgY2xhc3Nlc1xuICAgKiA8YnIvPiBvcHRpb25zLmNzc0NsYXNzZXMgYW4gb2JqZWN0IHdpdGggY3NzIGNsYXNzZXMuIEZvciBleGFtcGxlIHtyb290OiBcInRhYmxlXCIsIGJ1dHRvbjogXCJidXR0b25cIn0uIFlvdSBtYXkgY2hhbmdlIHRoZW0gdG8geW91ciBvd24gY3NzIGNsYXNzZXMuXG4gICAqL1xuICBwdWJsaWMgb25VcGRhdGVRdWVzdGlvbkNzc0NsYXNzZXM6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBiZWZvcmUgcmVuZGVyaW5nIGEgcGFuZWwgb3IgcGFnZS4gVXNlIGl0IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHBhbmVsL3BhZ2UgY3NzIGNsYXNzZXMuXG4gICAqIFRoZXJlIGFyZSB0d28gcGFyYW1ldGVycyBpbiBvcHRpb25zOiBvcHRpb25zLnBhbmVsIGFuZCBvcHRpb25zLmNzc0NsYXNzZXNcbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMucGFuZWwgYSBwYW5lbCBmb3Igd2hpY2ggeW91IG1heSBjaGFuZ2UgdGhlIGNzcyBjbGFzc2VzXG4gICAqIDxici8+IG9wdGlvbnMuY3NzQ2xhc3NlcyBhbiBvYmplY3Qgd2l0aCBjc3MgY2xhc3Nlcy4gRm9yIGV4YW1wbGUge3RpdGxlOiBcInN2X3BfdGl0bGVcIiwgZGVzY3JpcHRpb246IFwic21hbGxcIn0uIFlvdSBtYXkgY2hhbmdlIHRoZW0gdG8geW91ciBvd24gY3NzIGNsYXNzZXMuXG4gICAqL1xuICBwdWJsaWMgb25VcGRhdGVQYW5lbENzc0NsYXNzZXM6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCByaWdodCBhZnRlciBzdXJ2ZXkgaXMgcmVuZGVyZWQgaW4gRE9NLiBvcHRpb25zLmh0bWxFbGVtZW50IGlzIHRoZSByb290IGVsZW1lbnQuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLmh0bWxFbGVtZW50IGEgcm9vdCBodG1sIGVsZW1lbnQgYmluZGVkIHdpdGggdGhlIHN1cnZleSBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBvbkFmdGVyUmVuZGVyU3VydmV5OiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgcmlnaHQgYWZ0ZXIgYSBwYWdlIGlzIHJlbmRyZWQgaW4gRE9NLiBVc2UgaXQgdG8gbW9kaWZ5IGh0bWwgZWxlbWVudHMuIFRoZXJlIGFyZSB0d28gcGFyYW1ldGVycyBpbiBvcHRpb25zOiBvcHRpb25zLmN1cnJlbnRQYWdlLCBvcHRpb25zLmh0bWxFbGVtZW50XG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnBhZ2UgYSBwYWdlIG9iamVjdCBmb3Igd2hpY2ggdGhlIGV2ZW50IGlzIGZpcmVkLiBUeXBpY2FsbHkgdGhlIGN1cnJlbnQvYWN0aXZlIHBhZ2UuXG4gICAqIDxici8+IG9wdGlvbnMuaHRtbEVsZW1lbnQgYW4gaHRtbCBlbGVtZW50IGJpbmRlZCB3aXRoIHRoZSBwYWdlIG9iamVjdFxuICAgKi9cbiAgcHVibGljIG9uQWZ0ZXJSZW5kZXJQYWdlOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgcmlnaHQgYWZ0ZXIgYSBxdWVzdGlvbiBpcyByZW5kcmVkIGluIERPTS4gVXNlIGl0IHRvIG1vZGlmeSBodG1sIGVsZW1lbnRzLiBUaGVyZSBhcmUgdHdvIHBhcmFtZXRlcnMgaW4gb3B0aW9uczogb3B0aW9ucy5xdWVzdGlvbiwgb3B0aW9ucy5odG1sRWxlbWVudFxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiBhIHF1ZXN0aW9uIG9iamVjdCBmb3Igd2hpY2ggdGhlIGV2ZW50IGlzIGZpcmVkXG4gICAqIDxici8+IG9wdGlvbnMuaHRtbEVsZW1lbnQgYW4gaHRtbCBlbGVtZW50IGJpbmRlZCB3aXRoIHRoZSBxdWVzdGlvbiBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBvbkFmdGVyUmVuZGVyUXVlc3Rpb246IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCByaWdodCBhZnRlciBhIHBhbmVsIGlzIHJlbmRyZWQgaW4gRE9NLiBVc2UgaXQgdG8gbW9kaWZ5IGh0bWwgZWxlbWVudHMuIFRoZXJlIGFyZSB0d28gcGFyYW1ldGVycyBpbiBvcHRpb25zOiBvcHRpb25zLnBhbmVsLCBvcHRpb25zLmh0bWxFbGVtZW50XG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnBhbmVsIGEgcGFuZWwgb2JqZWN0IGZvciB3aGljaCB0aGUgZXZlbnQgaXMgZmlyZWRcbiAgICogPGJyLz4gb3B0aW9ucy5odG1sRWxlbWVudCBhbiBodG1sIGVsZW1lbnQgYmluZGVkIHdpdGggdGhlIHBhbmVsIG9iamVjdFxuICAgKi9cbiAgcHVibGljIG9uQWZ0ZXJSZW5kZXJQYW5lbDogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIG9uIGFkZGluZyBhIG5ldyByb3cgaW4gTWF0cml4IER5bmFtaWMgcXVlc3Rpb24uXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIGEgbWF0cml4IHF1ZXN0aW9uLlxuICAgKiBAc2VlIFF1ZXN0aW9uTWF0cml4RHluYW1pY01vZGVsXG4gICAqIEBzZWUgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWwudmlzaWJsZVJvd3NcbiAgICovXG4gIHB1YmxpYyBvbk1hdHJpeFJvd0FkZGVkOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgYmVmb3JlIGFkZGluZyBhIG5ldyByb3cgaW4gTWF0cml4IER5bmFtaWMgcXVlc3Rpb24uXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIGEgbWF0cml4IHF1ZXN0aW9uLlxuICAgKiA8YnIvPiBvcHRpb25zLmNhbkFkZFJvdyBhbiBhbGxvd2luZyBmbGFnLlxuICAgKiBAc2VlIFF1ZXN0aW9uTWF0cml4RHluYW1pY01vZGVsXG4gICAqIEBzZWUgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWwudmlzaWJsZVJvd3NcbiAgICovXG4gIHB1YmxpYyBvbk1hdHJpeEJlZm9yZVJvd0FkZGVkOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgaXMgZmlyZWQgb24gcmVtb3ZpbmcgYSByb3cgZnJvbSBNYXRyaXggRHluYW1pYyBxdWVzdGlvbi5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMucXVlc3Rpb24gYSBtYXRyaXggcXVlc3Rpb24uXG4gICAqIDxici8+IG9wdGlvbnMucm93SW5kZXggYSByZW1vdmVkIHJvdyBpbmRleC5cbiAgICogPGJyLz4gb3B0aW9ucy5yb3cgYSByZW1vdmVkIHJvdyBvYmplY3QuXG4gICAqIEBzZWUgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWxcbiAgICogQHNlZSBRdWVzdGlvbk1hdHJpeER5bmFtaWNNb2RlbC52aXNpYmxlUm93c1xuICAgKi9cbiAgcHVibGljIG9uTWF0cml4Um93UmVtb3ZlZDogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIGJlZm9yZSByZW5kZXJpbmcgXCJSZW1vdmVcIiBidXR0b24gZm9yIHJlbW92aW5nIGEgcm93IGZyb20gTWF0cml4IER5bmFtaWMgcXVlc3Rpb24uXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIGEgbWF0cml4IHF1ZXN0aW9uLlxuICAgKiA8YnIvPiBvcHRpb25zLnJvd0luZGV4IGEgcm93IGluZGV4LlxuICAgKiA8YnIvPiBvcHRpb25zLnJvdyBhIHJvdyBvYmplY3QuXG4gICAqIDxici8+IG9wdGlvbnMuYWxsb3cgYSBib29sZWFuIHByb3BlcnR5LiBTZXQgaXQgdG8gZmFsc2UgdG8gZGlzYWJsZSB0aGUgcm93IHJlbW92aW5nLlxuICAgKiBAc2VlIFF1ZXN0aW9uTWF0cml4RHluYW1pY01vZGVsXG4gICAqL1xuICBwdWJsaWMgb25NYXRyaXhBbGxvd1JlbW92ZVJvdzogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIGZvciBldmVyeSBjZWxsIGNyZWF0ZWQgaW4gTWF0cml4IER5bWljIGFuZCBNYXRyaXggRHJvcGRvd24gcXVlc3Rpb25zLlxuICAgKiA8YnIvPiBvcHRpb25zLnF1ZXN0aW9uIC0gdGhlIG1hdHJpeCBxdWVzdGlvblxuICAgKiA8YnIvPiBvcHRpb25zLmNlbGwgLSB0aGUgbWF0cml4IGNlbGxcbiAgICogPGJyLz4gb3B0aW9ucy5jZWxsUXVlc3Rpb24gLSB0aGUgcXVlc3Rpb24vZWRpdG9yIGluIHRoZSBjZWxsLiBZb3UgbWF5IGN1c3RvbWl6ZSBpdCwgY2hhbmdlIGl0J3MgcHJvcGVydGllcywgbGlrZSBjaG9pY2VzIG9yIHZpc2libGUuXG4gICAqIDxici8+IG9wdGlvbnMucm93VmFsdWUgLSB0aGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQgcm93LiBUbyBhY2Nlc3MgdGhlIHZhbHVlIG9mIHBhdGljdWxhciBjb2x1bW4gdXNlOiBvcHRpb25zLnJvd1ZhbHVlW1wiY29sdW1uVmFsdWVcIl1cbiAgICogPGJyLz4gb3B0aW9ucy5jb2x1bW4gLSB0aGUgbWF0cml4IGNvbHVtbiBvYmplY3RcbiAgICogPGJyLz4gb3B0aW9ucy5jb2x1bU5hbWUgLSB0aGUgbWF0cml4IGNvbHVtbiBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMucm93IC0gdGhlIG1hdHJpeCByb3cgb2JqZWN0XG4gICAqIEBzZWUgb25NYXRyaXhCZWZvcmVSb3dBZGRlZFxuICAgKiBAc2VlIG9uTWF0cml4Um93QWRkZWRcbiAgICogQHNlZSBRdWVzdGlvbk1hdHJpeER5bmFtaWNNb2RlbFxuICAgKiBAc2VlIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbFxuICAgKi9cbiAgcHVibGljIG9uTWF0cml4Q2VsbENyZWF0ZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBmb3IgZXZlcnkgY2VsbCBhZnRlciBpcyBoYXMgYmVlbiByZW5kZXJlZCBpbiBET00uXG4gICAqIDxici8+IG9wdGlvbnMucXVlc3Rpb24gLSB0aGUgbWF0cml4IHF1ZXN0aW9uXG4gICAqIDxici8+IG9wdGlvbnMuY2VsbCAtIHRoZSBtYXRyaXggY2VsbFxuICAgKiA8YnIvPiBvcHRpb25zLmNlbGxRdWVzdGlvbiAtIHRoZSBxdWVzdGlvbi9lZGl0b3IgaW4gdGhlIGNlbGwuXG4gICAqIDxici8+IG9wdGlvbnMuaHRtbEVsZW1lbnQgYSBodG1sIGVsZW1lbnQgYmluZGVkIHdpdGggdGhlIGNlbGxRdWVzdGlvbiBvYmplY3RcbiAgICogPGJyLz4gb3B0aW9ucy5jb2x1bW4gLSB0aGUgbWF0cml4IGNvbHVtbiBvYmplY3RcbiAgICogPGJyLz4gb3B0aW9ucy5yb3cgLSB0aGUgbWF0cml4IHJvdyBvYmplY3RcbiAgICogQHNlZSBvbk1hdHJpeENlbGxDcmVhdGVkXG4gICAqIEBzZWUgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWxcbiAgICogQHNlZSBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWxcbiAgICovXG4gIHB1YmxpYyBvbk1hdHJpeEFmdGVyQ2VsbFJlbmRlcjogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIHdoZW4gY2VsbCB2YWx1ZSBpcyBjaGFuZ2VkIGluIE1hdHJpeCBEeW1pYyBhbmQgTWF0cml4IERyb3Bkb3duIHF1ZXN0aW9ucy5cbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiAtIHRoZSBtYXRyaXggcXVlc3Rpb25cbiAgICogPGJyLz4gb3B0aW9ucy5jb2x1bU5hbWUgLSB0aGUgbWF0cml4IGNvbHVtbiBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMudmFsdWUgLSBhIG5ldyB2YWx1ZVxuICAgKiA8YnIvPiBvcHRpb25zLnJvdyAtIHRoZSBtYXRyaXggcm93IG9iamVjdFxuICAgKiA8YnIvPiBvcHRpb25zLmdldENlbGxRdWVzdGlvbihjb2x1bW5OYW1lKSAtIHRoZSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGNlbGwgcXVlc3Rpb24gYnkgY29sdW1uIG5hbWUuXG4gICAqIEBzZWUgb25NYXRyaXhDZWxsVmFsdWVDaGFuZ2luZ1xuICAgKiBAc2VlIG9uTWF0cml4QmVmb3JlUm93QWRkZWRcbiAgICogQHNlZSBvbk1hdHJpeFJvd0FkZGVkXG4gICAqIEBzZWUgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWxcbiAgICogQHNlZSBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWxcbiAgICovXG4gIHB1YmxpYyBvbk1hdHJpeENlbGxWYWx1ZUNoYW5nZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiBjaGFuZ2luZyBjZWxsIHZhbHVlIGluIE1hdHJpeCBEeW1pYyBhbmQgTWF0cml4IERyb3Bkb3duIHF1ZXN0aW9ucy4gWW91IG1heSBjaGFuZ2UgdGhlIG9wdGlvbnMudmFsdWUgcHJvcGVydHkgdG8gY2hhbmdlIHRoZSB2YWx1ZSBpbiB0aGUgY2VsbC5cbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiAtIHRoZSBtYXRyaXggcXVlc3Rpb25cbiAgICogPGJyLz4gb3B0aW9ucy5jb2x1bU5hbWUgLSB0aGUgbWF0cml4IGNvbHVtbiBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMudmFsdWUgLSBhIG5ldyB2YWx1ZVxuICAgKiA8YnIvPiBvcHRpb25zLm9sZFZhbHVlIC0gdGhlIG9sZCB2YWx1ZVxuICAgKiA8YnIvPiBvcHRpb25zLnJvdyAtIHRoZSBtYXRyaXggcm93IG9iamVjdFxuICAgKiA8YnIvPiBvcHRpb25zLmdldENlbGxRdWVzdGlvbihjb2x1bW5OYW1lKSAtIHRoZSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGNlbGwgcXVlc3Rpb24gYnkgY29sdW1uIG5hbWUuXG4gICAqIEBzZWUgb25NYXRyaXhDZWxsVmFsdWVDaGFuZ2VkXG4gICAqIEBzZWUgb25NYXRyaXhCZWZvcmVSb3dBZGRlZFxuICAgKiBAc2VlIG9uTWF0cml4Um93QWRkZWRcbiAgICogQHNlZSBRdWVzdGlvbk1hdHJpeER5bmFtaWNNb2RlbFxuICAgKiBAc2VlIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbFxuICAgKi9cbiAgcHVibGljIG9uTWF0cml4Q2VsbFZhbHVlQ2hhbmdpbmc6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCB3aGVuIE1hdHJpeCBEeW1pYyBhbmQgTWF0cml4IERyb3Bkb3duIHF1ZXN0aW9ucyB2YWxpZGF0ZSB0aGUgY2VsbCB2YWx1ZS5cbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiAtIHRoZSBtYXRyaXggcXVlc3Rpb25cbiAgICogPGJyLz4gb3B0aW9ucy5jb2x1bU5hbWUgLSB0aGUgbWF0cml4IGNvbHVtbiBuYW1lXG4gICAqIDxici8+IG9wdGlvbnMudmFsdWUgLSBhIGNlbGwgdmFsdWVcbiAgICogPGJyLz4gb3B0aW9ucy5yb3cgLSB0aGUgbWF0cml4IHJvdyBvYmplY3RcbiAgICogPGJyLz4gb3B0aW9ucy5nZXRDZWxsUXVlc3Rpb24oY29sdW1uTmFtZSkgLSB0aGUgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBjZWxsIHF1ZXN0aW9uIGJ5IGNvbHVtbiBuYW1lLlxuICAgKiBAc2VlIG9uTWF0cml4QmVmb3JlUm93QWRkZWRcbiAgICogQHNlZSBvbk1hdHJpeFJvd0FkZGVkXG4gICAqIEBzZWUgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWxcbiAgICogQHNlZSBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWxcbiAgICovXG4gIHB1YmxpYyBvbk1hdHJpeENlbGxWYWxpZGF0ZTogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIG9uIGFkZGluZyBhIG5ldyBwYW5lbCBpbiBQYW5lbCBEeW5hbWljIHF1ZXN0aW9uLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiBhIHBhbmVsIHF1ZXN0aW9uLlxuICAgKiBAc2VlIFF1ZXN0aW9uUGFuZWxEeW5hbWljTW9kZWxcbiAgICogQHNlZSBRdWVzdGlvblBhbmVsRHluYW1pY01vZGVsLnBhbmVsc1xuICAgKi9cbiAgcHVibGljIG9uRHluYW1pY1BhbmVsQWRkZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBvbiByZW1vdmluZyBhIHBhbmVsIGZyb20gUGFuZWwgRHluYW1pYyBxdWVzdGlvbi5cbiAgICogPGJyLz4gc2VuZGVyIHRoZSBzdXJ2ZXkgb2JqZWN0IHRoYXQgZmlyZXMgdGhlIGV2ZW50XG4gICAqIDxici8+IG9wdGlvbnMucXVlc3Rpb24gYSBwYW5lbCBxdWVzdGlvbi5cbiAgICogPGJyLz4gb3B0aW9ucy5wYW5lbEluZGV4IGEgcmVtb3ZlZCBwYW5lbCBpbmRleC5cbiAgICogQHNlZSBRdWVzdGlvblBhbmVsRHluYW1pY01vZGVsXG4gICAqIEBzZWUgUXVlc3Rpb25QYW5lbER5bmFtaWNNb2RlbC5wYW5lbHNcbiAgICovXG4gIHB1YmxpYyBvbkR5bmFtaWNQYW5lbFJlbW92ZWQ6IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksIGFueT4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBldmVyeSBzZWNvbmQgaWYgdGhlIG1ldGhvZCBzdGFydFRpbWVyIGhhcyBiZWVuIGNhbGxlZC5cbiAgICogQHNlZSBzdGFydFRpbWVyXG4gICAqIEBzZWUgdGltZVNwZW50XG4gICAqIEBzZWUgUGFnZS50aW1lU3BlbnRcbiAgICovXG4gIHB1YmxpYyBvblRpbWVyOiBFdmVudDwoc2VuZGVyOiBTdXJ2ZXlNb2RlbCkgPT4gYW55LCBhbnk+ID0gbmV3IEV2ZW50PFxuICAgIChzZW5kZXI6IFN1cnZleU1vZGVsKSA9PiBhbnksXG4gICAgYW55XG4gID4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBiZWZvcmUgZGlzcGxheWluZyBhIG5ldyBpbmZvcm1hdGlvbiBpbiB0aGUgVGltZXIgUGFuZWwuIFVzZSBpdCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgdGV4dC5cbiAgICogPGJyLz4gb3B0aW9ucy50ZXh0IC0gdGhlIHRpbWVyIHBhbmVsIGluZm8gdGV4dC5cbiAgICovXG4gIHB1YmxpYyBvblRpbWVyUGFuZWxJbmZvVGV4dDogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGlzIGZpcmVkIHdoZW4gaXRlbSB2YWx1ZSBpcyBjaGFuZ2VkIGluIFBhbmVsIER5bmFtaWMgcXVlc3Rpb24uXG4gICAqIDxici8+IG9wdGlvbnMucXVlc3Rpb24gLSB0aGUgcGFuZWwgcXVlc3Rpb25cbiAgICogPGJyLz4gb3B0aW9ucy5wYW5lbCAtIHRoZSBkeW5hbWljIHBhbmVsIGl0ZW1cbiAgICogPGJyLz4gb3B0aW9ucy5uYW1lIC0gdGhlIGl0ZW0gbmFtZVxuICAgKiA8YnIvPiBvcHRpb25zLnZhbHVlIC0gYSBuZXcgdmFsdWVcbiAgICogPGJyLz4gb3B0aW9ucy5pdGVtSW5kZXggLSB0aGUgcGFuZWwgaXRlbSBpbmRleFxuICAgKiA8YnIvPiBvcHRpb25zLml0ZW1WYWx1ZSAtIHRoZSBwYW5lbCBpdGVtIG9iamVjdFxuICAgKiBAc2VlIG9uRHluYW1pY1BhbmVsQWRkZWRcbiAgICogQHNlZSBRdWVzdGlvblBhbmVsRHluYW1pY01vZGVsXG4gICAqL1xuICBwdWJsaWMgb25EeW5hbWljUGFuZWxJdGVtVmFsdWVDaGFuZ2VkOiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBldmVudCB0byBkZWZpbmUsIGlmIHRoZSBhbnN3ZXIgb24gdGhlIHF1ZXN0aW9uIGlzIGNvcnJlY3Qgb3Igbm90LlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHN1cnZleSBvYmplY3QgdGhhdCBmaXJlcyB0aGUgZXZlbnRcbiAgICogPGJyLz4gb3B0aW9ucy5xdWVzdGlvbiBhIHF1ZXN0aW9uIG9uIHdoaWNoIHlvdSBoYXZlIHRvIGRlY2lkZSBpZiB0aGUgYW5zd2VyIGlzIGNvcnJlY3Qgb3Igbm90LlxuICAgKiA8YnIvPiBvcHRpb25zLnJlc3VsdCByZXR1cm4gdHJ1ZSwgaWYgdGhlIGFuc3dlciBpcyBjb3JyZWN0IG9yIGZhbHNlIGlmIHRoZSBhbnN3ZXIgaXMgbm90IGNvcnJlY3QuIFVzZSBxdWVzdGlvbnMgdmFsdWUgYW5kIGNvcnJlY3RBbnN3ZXIgcHJvcGVydGllcyB0byByZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWUuXG4gICAqIDxici8+IG9wdGlvbnMuY29ycmVjdEFuc3dlcnMgLSB5b3UgbWF5IGNoYW5nZSB0aGUgZGVmYXVsdCBudW1iZXIgb2YgY29ycmVjdCBvciBpbmNvcnJlY3QgYW5zd2VycyBpbiB0aGUgcXVlc3Rpb24sIGZvciBleGFtcGxlIGZvciBtYXRyaXgsIHdoZXJlIGVhY2ggcm93IGlzIGEgcXVpeiBxdWVzdGlvbi5cbiAgICogQHNlZSBRdWVzdGlvbi52YWx1ZVxuICAgKiBAc2VlIFF1ZXN0aW9uLmNvcnJlY3RBbnN3ZXJcbiAgICovXG4gIHB1YmxpYyBvbklzQW5zd2VyQ29ycmVjdDogRXZlbnQ8XG4gICAgKHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFN1cnZleU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICAvKipcbiAgICogVXNlIHRoaXMgZXZlbnQgdG8gY29udHJvbCBkcmFnJmRyb3Agb3BlcmF0aW9ucyBkdXJpbmcgZGVzaWduIG1vZGUuXG4gICAqIDxici8+IHNlbmRlciB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudC5cbiAgICogPGJyLz4gb3B0aW9ucy5hbGxvdyBzZXQgaXQgdG8gZmFsc2UgdG8gZGlzYWJsZSBkcmFnZ2luZy5cbiAgICogPGJyLz4gb3B0aW9ucy50YXJnZXQgYSB0YXJnZXQgZWxlbWVudCB0aGF0IGlzIGRyYWdnaW5nLlxuICAgKiA8YnIvPiBvcHRpb25zLnNvdXJjZSBhIHNvdXJjZSBlbGVtZW50LiBJdCBjYW4gYmUgbnVsbCwgaWYgaXQgaXMgYSBuZXcgZWxlbWVudCwgZHJhZ2dpbmcgZnJvbSB0b29sYm94LlxuICAgKiA8YnIvPiBvcHRpb25zLnBhcmVudCBhIHBhZ2Ugb3IgcGFuZWwgd2hlcmUgdGFyZ2V0IGVsZW1lbnQgaXMgZHJhZ2dpbmcuXG4gICAqIDxici8+IG9wdGlvbnMuaW5zZXJ0QmVmb3JlIGFuIGVsZW1lbnQgYmVmb3JlIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBkcmFnZ2luZy4gSXQgY2FuIGJlIG51bGwgaWYgcGFyZW50IGNvbnRhaW5lciAocGFnZSBvciBwYW5lbCkgaXMgZW1wdHkgb3IgZHJhZ2dpbmcgYW4gZWxlbWVudCB1bmRlciB0aGUgbGFzdCBlbGVtZW50IG9mIHRoZSBjb250YWluZXIuXG4gICAqIDxici8+IG9wdGlvbnMuaW5zZXJ0QWZ0ZXIgYW4gZWxlbWVudCBhZnRlciB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgZHJhZ2dpbmcuIEl0IGNhbiBiZSBudWxsIGlmIHBhcmVudCBjb250YWluZXIgKHBhZ2Ugb3IgcGFuZWwpIGlzIGVtcHR5IG9yIGRyYWdnaW5nIGVsZW1lbnQgdG8gdGhlIHRvcCBvZiB0aGUgcGFyZW50IGNvbnRhaW5lci5cbiAgICogQHNlZSBzZXREZXNpZ25Nb2RlXG4gICAqIEBzZWUgaXNEZXNpZ25Nb2RlXG4gICAqL1xuICBwdWJsaWMgb25EcmFnRHJvcEFsbG93OiBFdmVudDxcbiAgICAoc2VuZGVyOiBTdXJ2ZXlNb2RlbCwgb3B0aW9uczogYW55KSA9PiBhbnksXG4gICAgYW55XG4gID4gPSBuZXcgRXZlbnQ8KHNlbmRlcjogU3VydmV5TW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LCBhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBlcnJvcnMgb24gbG9hZGluZyBzdXJ2ZXkganNvbi4gSWYgdGhlIGxpc3QgaXMgZW1wdHkgYWZ0ZXIgbG9hZGluZyBhIGpzb24gdGhlbiB0aGUganNvbiBpcyBjb3JyZWN0IGFuZCB0aGVyZSBpcyBubyBlcnJvcnMgaW4gaXQuXG4gICAqIEBzZWUgSnNvbkVycm9yXG4gICAqL1xuICBwdWJsaWMganNvbkVycm9yczogQXJyYXk8SnNvbkVycm9yPiA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoanNvbk9iajogYW55ID0gbnVsbCkge1xuICAgIHN1cGVyKCk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIFN1cnZleU1vZGVsLnN0eWxlc01hbmFnZXIgPSBuZXcgU3R5bGVzTWFuYWdlcigpO1xuICAgIH1cbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwidGl0bGVcIiwgdGhpcywgdHJ1ZSk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcImRlc2NyaXB0aW9uXCIsIHRoaXMsIHRydWUpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJjb21wbGV0ZWRIdG1sXCIsIHRoaXMpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJjb21wbGV0ZWRCZWZvcmVIdG1sXCIsIHRoaXMpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJsb2FkaW5nSHRtbFwiLCB0aGlzKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwic3RhcnRTdXJ2ZXlcIiwgdGhpcyk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInBhZ2VQcmV2XCIsIHRoaXMpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJwYWdlTmV4dFwiLCB0aGlzKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwiY29tcGxldGVcIiwgdGhpcyk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInF1ZXN0aW9uVGl0bGVUZW1wbGF0ZVwiLCB0aGlzLCB0cnVlKTtcblxuICAgIHRoaXMudGV4dFByZVByb2Nlc3NvciA9IG5ldyBUZXh0UHJlUHJvY2Vzc29yKCk7XG4gICAgdGhpcy50ZXh0UHJlUHJvY2Vzc29yLm9uUHJvY2VzcyA9IGZ1bmN0aW9uKFxuICAgICAgdGV4dFZhbHVlOiBUZXh0UHJlUHJvY2Vzc29yVmFsdWVcbiAgICApIHtcbiAgICAgIHNlbGYuZ2V0UHJvY2Vzc2VkVGV4dFZhbHVlKHRleHRWYWx1ZSk7XG4gICAgfTtcbiAgICB0aGlzLnBhZ2VzVmFsdWUgPSB0aGlzLmNyZWF0ZU5ld0FycmF5KFwicGFnZXNcIiwgZnVuY3Rpb24odmFsdWU6IGFueSkge1xuICAgICAgc2VsZi5kb09uUGFnZUFkZGVkKHZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLmNyZWF0ZU5ld0FycmF5KFwidHJpZ2dlcnNcIiwgZnVuY3Rpb24odmFsdWU6IGFueSkge1xuICAgICAgdmFsdWUuc2V0T3duZXIoc2VsZik7XG4gICAgfSk7XG4gICAgdGhpcy5jcmVhdGVOZXdBcnJheShcImNhbGN1bGF0ZWRWYWx1ZXNcIiwgZnVuY3Rpb24odmFsdWU6IGFueSkge1xuICAgICAgdmFsdWUuc2V0T3duZXIoc2VsZik7XG4gICAgfSk7XG4gICAgdGhpcy5jcmVhdGVOZXdBcnJheShcImNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvblwiLCBmdW5jdGlvbih2YWx1ZTogYW55KSB7XG4gICAgICB2YWx1ZS5sb2NPd25lciA9IHNlbGY7XG4gICAgfSk7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcbiAgICAgIFwicXVlc3Rpb25UaXRsZVRlbXBsYXRlXCIsXG4gICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5xdWVzdGlvblRpdGxlVGVtcGxhdGVDYWNoZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXG4gICAgICBcImZpcnN0UGFnZUlzU3RhcnRlZFwiLFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYub25GaXJzdFBhZ2VJc1N0YXJ0ZWRDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFwiaXNTaW5nbGVQYWdlXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5vbklzU2luZ2xlUGFnZUNoYW5nZWQoKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFwibW9kZVwiLCBmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYub25Nb2RlQ2hhbmdlZCgpO1xuICAgIH0pO1xuICAgIHRoaXMub25CZWZvcmVDcmVhdGluZygpO1xuICAgIGlmIChqc29uT2JqKSB7XG4gICAgICBpZiAodHlwZW9mIGpzb25PYmogPT09IFwic3RyaW5nXCIgfHwganNvbk9iaiBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgICBqc29uT2JqID0gSlNPTi5wYXJzZShqc29uT2JqIGFzIHN0cmluZyk7XG4gICAgICB9XG4gICAgICBpZiAoanNvbk9iaiAmJiBqc29uT2JqLmNsaWVudElkKSB7XG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBqc29uT2JqLmNsaWVudElkO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRKc29uT2JqZWN0KGpzb25PYmopO1xuICAgICAgaWYgKHRoaXMuc3VydmV5SWQpIHtcbiAgICAgICAgdGhpcy5sb2FkU3VydmV5RnJvbVNlcnZpY2UodGhpcy5zdXJ2ZXlJZCwgdGhpcy5jbGllbnRJZCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub25DcmVhdGluZygpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwic3VydmV5XCI7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGFsbCBwYWdlcyBpbiB0aGUgc3VydmV5LCBpbmNsdWRpbmcgaW52aXNpYmxlLlxuICAgKiBAc2VlIFBhZ2VNb2RlbFxuICAgKiBAc2VlIHZpc2libGVQYWdlc1xuICAgKi9cbiAgcHVibGljIGdldCBwYWdlcygpOiBBcnJheTxQYWdlTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5wYWdlc1ZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiB0cmlnZ2VycyBpbiB0aGUgc3VydmV5LlxuICAgKiBAc2VlIFN1cnZleVRyaWdnZXJcbiAgICovXG4gIHB1YmxpYyBnZXQgdHJpZ2dlcnMoKTogQXJyYXk8U3VydmV5VHJpZ2dlcj4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ0cmlnZ2Vyc1wiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRyaWdnZXJzKHZhbDogQXJyYXk8U3VydmV5VHJpZ2dlcj4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJ0cmlnZ2Vyc1wiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBjYWxjdWxhdGVkIHZhbHVlcyBpbiB0aGUgc3VydmV5LlxuICAgKiBAc2VlIENhbGN1bGF0ZWRWYWx1ZVxuICAgKi9cbiAgcHVibGljIGdldCBjYWxjdWxhdGVkVmFsdWVzKCk6IEFycmF5PENhbGN1bGF0ZWRWYWx1ZT4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjYWxjdWxhdGVkVmFsdWVzXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY2FsY3VsYXRlZFZhbHVlcyh2YWw6IEFycmF5PENhbGN1bGF0ZWRWYWx1ZT4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjYWxjdWxhdGVkVmFsdWVzXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGF1dG9tYXRpY2FsbHkgbG9hZCBzdXJ2ZXkgSnNvbiBmcm9tIFtkeHN1cnZleS5jb21dKGh0dHA6Ly93d3cuZHhzdXJ2ZXkuY29tKSBzZXJ2aWNlLlxuICAgKiBAc2VlIGxvYWRTdXJ2ZXlGcm9tU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldCBzdXJ2ZXlJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzdXJ2ZXlJZFwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHN1cnZleUlkKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic3VydmV5SWRcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gYXV0b21hdGljYWxseSBzYXZlIHRoZSBkYXRhIGludG8gdGhlIFtkeHN1cnZleS5jb21dKGh0dHA6Ly93d3cuZHhzdXJ2ZXkuY29tKSBzZXJ2aWNlLlxuICAgKiBAc2VlIG9uQ29tcGxldGVcbiAgICogQHNlZSBzdXJ2ZXlTaG93RGF0YVNhdmluZ1xuICAgKi9cbiAgcHVibGljIGdldCBzdXJ2ZXlQb3N0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic3VydmV5UG9zdElkXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc3VydmV5UG9zdElkKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic3VydmV5UG9zdElkXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IGFzIGluZGVudGlmaWNhdG9yIGZvciBhIHVzZXIsIGZvciBleGFtcGxlIGUtbWFpbCBvciB1bmlxdWUgY3VzdG9tZXIgaWQgaW4geW91ciB3ZWIgYXBwbGljYXRpb24uIElmIHlvdSBhcmUgbG9hZGluZyBzdXJ2ZXkgb3IgcG9zdGluZyBzdXJ2ZXkgcmVzdWx0cyAgZnJvbS90byBbZHhzdXJ2ZXkuY29tXShodHRwOi8vd3d3LmR4c3VydmV5LmNvbSkgc2VydmljZSwgdGhlbiB0aGUgbGlicmFyeSBkbyBub3QgYWxsb3cgdG8gcnVuIHRoZSBzYW1lIHN1cnZleSB0aGUgc2Vjb25kIHRpbWUuIE9uIHRoZSBzZWNvbmQgcnVuLCB0aGUgdXNlciB3aWxsIHNlZSB0aGUgJ1RoYW5rIHlvdScgcGFnZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgY2xpZW50SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY2xpZW50SWRcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBjbGllbnRJZCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNsaWVudElkXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIElmIHRoZSBwcm9wZXJ0eSBpcyBub3QgZW1wdHksIGJlZm9yZSBzdGFydGluZyB0byBydW4gdGhlIHN1cnZleSwgdGhlIGxpYnJhcnkgY2hlY2tlcyBpZiB0aGUgY29va2llIHdpdGggdGhpcyBuYW1lIGV4aXN0cy4gSWYgaXQgaXMgdHJ1ZSwgdGhlIHN1cnZleSBnb2VzIHRvIGNvbXBsZXRlIG1vZGUgYW5kIGFuIHVzZXIgc2VlcyB0aGUgJ1RoYW5rIHlvdScgcGFnZS4gT24gY29tcGxldGluZyB0aGUgc3VydmV5IHRoZSBjb29raWUgd2l0aCB0aGlzIG5hbWUgaXMgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29va2llTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjb29raWVOYW1lXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY29va2llTmFtZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNvb2tpZU5hbWVcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogU2V0IGl0IHRvIHRydWUsIHRvIHNhdmUgcmVzdWx0cyBvbiBjb21wbGV0aW5nIGV2ZXJ5IHBhZ2UuIG9uUGFydGlhbFNlbmQgZXZlbnQgaXMgZmlyZWQuXG4gICAqIEBzZWUgb25QYXJ0aWFsU2VuZFxuICAgKiBAc2VlIGNsaWVudElkXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNlbmRSZXN1bHRPblBhZ2VOZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzZW5kUmVzdWx0T25QYWdlTmV4dFwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBzZW5kUmVzdWx0T25QYWdlTmV4dCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzZW5kUmVzdWx0T25QYWdlTmV4dFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlLCB0byBzaG93IHRoZSBwcm9ncmVzcyBvbiBzYXZpbmcvc2VuZGluZyBkYXRhIGludG8gdGhlIFtkeHN1cnZleS5jb21dKGh0dHA6Ly93d3cuZHhzdXJ2ZXkuY29tKSBzZXJ2aWNlLlxuICAgKiBAc2VlIHN1cnZleVBvc3RJZFxuICAgKi9cbiAgcHVibGljIGdldCBzdXJ2ZXlTaG93RGF0YVNhdmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic3VydmV5U2hvd0RhdGFTYXZpbmdcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgc3VydmV5U2hvd0RhdGFTYXZpbmcodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic3VydmV5U2hvd0RhdGFTYXZpbmdcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogT24gc2hvd2luZyB0aGUgbmV4dCBvciBwcmV2aW91cyBwYWdlLCBhIGZpcnN0IGlucHV0IGlzIGZvY3VzZWQsIGlmIHRoZSBwcm9wZXJ0eSBzZXQgdG8gdHJ1ZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWNcIiwgdHJ1ZSk7XG4gIH1cbiAgcHVibGljIHNldCBmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWModmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGZhbHNlIChkZWZhdWx0IHZhbHVlIGlzIHRydWUpIGlmIHlvdSBkbyBub3Qgd2FudCB0byBicmluZyB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0IHF1ZXN0aW9uIHRoYXQgaGFzIGVycm9yIG9uIHRoZSBwYWdlLlxuICAgKi9cbiAgcHVibGljIGdldCBmb2N1c09uRmlyc3RFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiZm9jdXNPbkZpcnN0RXJyb3JcIiwgdHJ1ZSk7XG4gIH1cbiAgcHVibGljIHNldCBmb2N1c09uRmlyc3RFcnJvcih2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJmb2N1c09uRmlyc3RFcnJvclwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6ICdib3R0b20nIChkZWZhdWx0KSwgJ3RvcCcsICdib3RoJyBhbmQgJ25vbmUnLiBTZXQgaXQgdG8gJ25vbmUnIHRvIGhpZGUgJ1ByZXYnLCAnTmV4dCcgYW5kICdDb21wbGV0ZScgYnV0dG9ucy4gSXQgbWFrZXMgc2Vuc2UgaWYgeW91IGFyZSBnb2luZyB0byBjcmVhdGUgYSBjdXN0b20gbmF2aWdhdGlvbiBvciBoYXZlIGp1c3Qgb25lIHBhZ2Ugb3Igb24gc2V0dGluZyBnb05leHRQYWdlQXV0b21hdGljIHByb3BlcnR5LlxuICAgKiBAc2VlIGdvTmV4dFBhZ2VBdXRvbWF0aWNcbiAgICogQHNlZSBzaG93UHJldkJ1dHRvblxuICAgKi9cbiAgcHVibGljIGdldCBzaG93TmF2aWdhdGlvbkJ1dHRvbnMoKTogc3RyaW5nIHwgYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic2hvd05hdmlnYXRpb25CdXR0b25zXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd05hdmlnYXRpb25CdXR0b25zKHZhbDogc3RyaW5nIHwgYW55KSB7XG4gICAgaWYgKHZhbCA9PT0gdHJ1ZSB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsID0gXCJib3R0b21cIjtcbiAgICB9XG4gICAgaWYgKHZhbCA9PT0gZmFsc2UpIHtcbiAgICAgIHZhbCA9IFwibm9uZVwiO1xuICAgIH1cbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzaG93TmF2aWdhdGlvbkJ1dHRvbnNcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogU2V0IGl0IHRvIGZhbHNlIHRvIGhpZGUgdGhlICdQcmV2JyB0byBkaXNhYmxlIGZvciBlbmQtdXNlcnMgZ28gYmFjayB0byB0aGVpciBhbnN3ZXJzLlxuICAgKiBAc2VlIHNob3dOYXZpZ2F0aW9uQnV0dG9uc1xuICAgKi9cbiAgcHVibGljIGdldCBzaG93UHJldkJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic2hvd1ByZXZCdXR0b25cIiwgdHJ1ZSk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93UHJldkJ1dHRvbih2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzaG93UHJldkJ1dHRvblwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gZmFsc2UgaGlkZSBzdXJ2ZXkgdGl0bGUuXG4gICAqIEBzZWUgdGl0bGVcbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd1RpdGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93VGl0bGVcIiwgdHJ1ZSk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93VGl0bGUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic2hvd1RpdGxlXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byBmYWxzZSB0byBoaWRlIHBhZ2UgdGl0bGVzLlxuICAgKiBAc2VlIFBhZ2VNb2RlbC50aXRsZVxuICAgKi9cbiAgcHVibGljIGdldCBzaG93UGFnZVRpdGxlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic2hvd1BhZ2VUaXRsZXNcIiwgdHJ1ZSk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93UGFnZVRpdGxlcyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzaG93UGFnZVRpdGxlc1wiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBPbiBmaW5pc2hpbmcgdGhlIHN1cnZleSB0aGUgJ1RoYW5rIHlvdScsIHBhZ2Ugb24gY29tcGxldGUsIGlzIHNob3duLiBTZXQgdGhlIHByb3BlcnR5IHRvIGZhbHNlLCB0byBoaWRlIHRoZSAnVGhhbmsgeW91JyBwYWdlLlxuICAgKiBAc2VlIGRhdGFcbiAgICogQHNlZSBvbkNvbXBsZXRlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dDb21wbGV0ZWRQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93Q29tcGxldGVkUGFnZVwiLCB0cnVlKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNob3dDb21wbGV0ZWRQYWdlKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dDb21wbGV0ZWRQYWdlXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIEEgY2hhci9zdHJpbmcgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSB0aXRsZSByZXF1aXJlZCBxdWVzdGlvbnMuXG4gICAqIEBzZWUgUXVlc3Rpb24udGl0bGVcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInJlcXVpcmVkVGV4dFwiLCBcIipcIik7XG4gIH1cbiAgcHVibGljIHNldCByZXF1aXJlZFRleHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJyZXF1aXJlZFRleHRcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSB0byBtYWtlIGFsbCByZXF1cmllZCBlcnJvcnMgaW52aXNpYmxlXG4gICAqL1xuICBwdWJsaWMgaGlkZVJlcXVpcmVkRXJyb3JzOiBib29sZWFuID0gZmFsc2U7XG4gIGJlZm9yZVNldHRpbmdRdWVzdGlvbkVycm9ycyhcbiAgICBxdWVzdGlvbjogSVF1ZXN0aW9uLFxuICAgIGVycm9yczogQXJyYXk8U3VydmV5RXJyb3I+XG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhpZGVSZXF1aXJlZEVycm9ycykge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGVycm9yc1tpXS5nZXRFcnJvclR5cGUoKSA9PSBcInJlcXVpcmVkXCIpIHtcbiAgICAgICAgICBlcnJvcnNbaV0udmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub25TZXR0aW5nUXVlc3Rpb25FcnJvcnMuZmlyZSh0aGlzLCB7XG4gICAgICBxdWVzdGlvbjogcXVlc3Rpb24sXG4gICAgICBlcnJvcnM6IGVycm9yc1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBmaXJzdCBxdWVzdGlvbiBpbmRleCBpcyAxLiBZb3UgbWF5IHN0YXJ0IGl0IGZyb20gMTAwIG9yIGZyb20gJ0EnLCBieSBzZXR0aW5nIDEwMCBvciAnQScgdG8gdGhpcyBwcm9wZXJ0eS5cbiAgICogQHNlZSBRdWVzdGlvbi50aXRsZVxuICAgKiBAc2VlIHJlcXVpcmVkVGV4dFxuICAgKi9cbiAgcHVibGljIGdldCBxdWVzdGlvblN0YXJ0SW5kZXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicXVlc3Rpb25TdGFydEluZGV4XCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcXVlc3Rpb25TdGFydEluZGV4KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicXVlc3Rpb25TdGFydEluZGV4XCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgdGhlIGVudGVyZWQgdGV4dCBpbiB0aGUgb3RoZXJzIGlucHV0IGluIHRoZSBjaGVja2JveC9yYWRpb2dyb3VwL2Ryb3Bkb3duIGFyZSBzdG9yZWQgYXMgXCJxdWVzdGlvbiBuYW1lIFwiICsgXCItQ29tbWVudFwiLiBUaGUgdmFsdWUgaXRzZWxmIGlzIFwicXVlc3Rpb24gbmFtZVwiOiBcIm90aGVyc1wiLiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBmYWxzZSwgdG8gc3RvcmUgdGhlIGVudGVyZWQgdGV4dCBkaXJlY3RseSBpbiB0aGUgXCJxdWVzdGlvbiBuYW1lXCIga2V5LlxuICAgKiBAc2VlIGNvbW1lbnRQcmVmaXhcbiAgICovXG4gIHB1YmxpYyBnZXQgc3RvcmVPdGhlcnNBc0NvbW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInN0b3JlT3RoZXJzQXNDb21tZW50XCIsIHRydWUpO1xuICB9XG4gIHB1YmxpYyBzZXQgc3RvcmVPdGhlcnNBc0NvbW1lbnQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic3RvcmVPdGhlcnNBc0NvbW1lbnRcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgbWF4aW11bSBsZW5ndGggZm9yIHF1ZXN0aW9ucyBsaWtlIHRleHQgYW5kIGNvbW1lbnQsIGluY2x1ZGluZyBtYXRyaXggY2VsbCBxdWVzdGlvbnMuXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAsIGl0IGlzIHVubGltaXRlZCBtYXhMZW5ndGggLSA1MjQyODggY2hhcmFjdGVyczogaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS90YWdzL2F0dF9pbnB1dF9tYXhsZW5ndGguYXNwXG4gICAqIEBzZWUgbWF4T3RoZXJzTGVuZ3RoXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1heFRleHRMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwibWF4VGV4dExlbmd0aFwiLCAwKTtcbiAgfVxuICBwdWJsaWMgc2V0IG1heFRleHRMZW5ndGgodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJtYXhUZXh0TGVuZ3RoXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IG1heGltdW0gbGVuZ3RoIGZvciBxdWVzdGlvbiBjb21tZW50cyBhbmQgb3RoZXJzXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAsIGl0IGlzIHVubGltaXRlZCBtYXhMZW5ndGggLSA1MjQyODggY2hhcmFjdGVyczogaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS90YWdzL2F0dF9pbnB1dF9tYXhsZW5ndGguYXNwXG4gICAqIEBzZWUgUXVlc3Rpb24uaGFzQ29tbWVudFxuICAgKiBAc2VlIFF1ZXN0aW9uLmhhc090aGVyXG4gICAqIEBzZWUgbWF4VGV4dExlbmd0aFxuICAgKi9cbiAgcHVibGljIGdldCBtYXhPdGhlcnNMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwibWF4T3RoZXJzTGVuZ3RoXCIsIDApO1xuICB9XG4gIHB1YmxpYyBzZXQgbWF4T3RoZXJzTGVuZ3RoKHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwibWF4T3RoZXJzTGVuZ3RoXCIsIHZhbCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGl0IHRvIHRoZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBjb25zdGFudHMgaWYgeW91IHdhbnQgdG8gZ28gdG8gdGhlIG5leHQgcGFnZSB3aXRob3V0IHByZXNzaW5nICdOZXh0JyBidXR0b24gd2hlbiBhbGwgcXVlc3Rpb25zIGFyZSBhbndlcmVkLlxuICAgKiB0cnVlIC0gZ28gbmV4dCBwYWdlIGFuZCBzdWJtaXQgYXV0b21hdGljYWxseVxuICAgKiBcImF1dG9nb25leHRcIiAtIGdvIG5leHQgcGFnZSBhdXRvbWF0aWNhbGx5IGJ1dCBkbyBub3Qgc3VibWl0XG4gICAqIGZhbHNlIC0gZG8gbm90IGdvIG5leHQgcGFnZSBhbmQgbm90IHN1Ym1pdCBhdXRvbWF0aWNhbGx5XG4gICAqIEBzZWUgc2hvd05hdmlnYXRpb25CdXR0b25zXG4gICAqL1xuICBwdWJsaWMgZ2V0IGdvTmV4dFBhZ2VBdXRvbWF0aWMoKTogYm9vbGVhbiB8IFwiYXV0b2dvbmV4dFwiIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiZ29OZXh0UGFnZUF1dG9tYXRpY1wiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBnb05leHRQYWdlQXV0b21hdGljKHZhbDogYm9vbGVhbiB8IFwiYXV0b2dvbmV4dFwiKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiZ29OZXh0UGFnZUF1dG9tYXRpY1wiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gZmFsc2UgaWYgeW91IGRvIG5vdCB3YW50IHRvIHN1Ym1pdCBzdXJ2ZXkgYXV0b21hdGljYWxseSBpZiBnb05leHRQYWdlQXV0b21hdGljPXRydWUuXG4gICAqIEBzZWUgZ29OZXh0UGFnZUF1dG9tYXRpY1xuICAgKi9cbiAgcHVibGljIGdldCBhbGxvd0NvbXBsZXRlU3VydmV5QXV0b21hdGljKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJhbGxvd0NvbXBsZXRlU3VydmV5QXV0b21hdGljXCIsIHRydWUpO1xuICB9XG4gIHB1YmxpYyBzZXQgYWxsb3dDb21wbGV0ZVN1cnZleUF1dG9tYXRpYyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJhbGxvd0NvbXBsZXRlU3VydmV5QXV0b21hdGljXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIENoYW5nZSB0aGlzIHByb3BlcnR5IGZyb20gJ29uTmV4dFBhZ2UnIHRvICdvblZhbHVlQ2hhbmdlZCcgdG8gY2hlY2sgZXJvcnJzIG9uIGV2ZXJ5IHF1ZXN0aW9uIHZhbHVlIGNoYW5naW5nLFxuICAgKiBvciBjaGFuZ2UgaXQgdG8gJ29uQ29tcGxldGUnIHRvIHZhbGlkYXRlIGFsbCB2aXNpYmxlIHF1ZXN0aW9ucyBvbiBjb21wbGV0ZSBidXR0b24uIElmIHRoZXJlIGlzIHRoZSBlcnJvciBvbiBzb21lIHBhZ2VzLFxuICAgKiB0aGVuIHRoZSBwYWdlIHdpdGggdGhlIGZpcnN0IGVycm9yIGJlY29tZXMgdGhlIGN1cnJlbnQuXG4gICAqIEJ5IGRlZmF1bHQsIGxpYnJhcnkgY2hlY2tzIGVycm9ycyBvbiBjaGFuZ2luZyBjdXJyZW50IHBhZ2UgdG8gdGhlIG5leHQgb3Igb24gY29tcGxldGluZyB0aGUgc3VydmV5LlxuICAgKi9cbiAgcHVibGljIGdldCBjaGVja0Vycm9yc01vZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY2hlY2tFcnJvcnNNb2RlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY2hlY2tFcnJvcnNNb2RlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY2hlY2tFcnJvcnNNb2RlXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIENoYW5nZSB0aGlzIHByb3BlcnR5IGZyb20gJ29uQmx1cicgdG8gJ29uVHlwaW5nJyB0byB1cGRhdGUgdGhlIHZhbHVlIG9mIHRleHQgcXVlc3Rpb25zLCBcInRleHRcIiBhbmQgXCJjb21tZW50XCIsXG4gICAqIG9uIGV2ZXJ5IGtleSBwcmVzcy4gQnkgZGVmYXVsdCwgdGhlIHZhbHVlIGlzIHVwZGF0ZWQgYW4gaW5wdXQgbG9zdHMgdGhlIGZvY3VzLlxuICAgKiBQbGVhc2Ugbm90ZSwgc2V0dGluZyB0byBcIm9uVHlwaW5nXCIgbWF5IGxlYWQgdG8gYSBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiwgaW4gY2FzZSB5b3UgaGF2ZSBtYW55IGV4cHJlc3Npb25zIGluIHRoZSBzdXJ2ZXlcbiAgICovXG4gIHB1YmxpYyBnZXQgdGV4dFVwZGF0ZU1vZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidGV4dFVwZGF0ZU1vZGVcIik7XG4gIH1cbiAgcHVibGljIHNldCB0ZXh0VXBkYXRlTW9kZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInRleHRVcGRhdGVNb2RlXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byAnbm9uZScgdG8gaW5jbHVkZSB0aGUgaW52aXNpYmxlIHZhbHVlcyBpbnRvIHRoZSBzdXJ2ZXkgZGF0YS5cbiAgICogPC9icj4gU2V0IGl0IHRvICdvbkhpZGRlbicgdG8gY2xlYXIgdGhlIHF1ZXN0aW9uIHZhbHVlIHdoZW4gaXQgYmVjb21lcyBpbnZpc2libGUuIElmIGEgcXVlc3Rpb24gaGFzIHZhbHVlIGFuZCBpdCB3YXMgaW52aXNpYmxlIGluaXRpYWxseSB0aGVuIHN1cnZleSBjbGVhcnMgdGhlIHZhbHVlIG9uIGNvbXBsZXRpbmcuXG4gICAqIDwvYnI+IExlYXZlIGl0IGVxdWFscyB0byAnb25Db21wbGV0ZScsIHRvIHJlbW92ZSBmcm9tIGRhdGEgcHJvcGVydHkgdmFsdWVzIG9mIGludmlzaWJsZSBxdWVzdGlvbnMgb24gc3VydmV5IGNvbXBsZXRlLiBJbiB0aGlzIGNhc2UsIHRoZSBpbnZpc2libGUgcXVlc3Rpb25zIHdpbGwgbm90IGJlIHN0b3JlZCBvbiB0aGUgc2VydmVyLlxuICAgKiA8L2JyPiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAnb25Db21wbGV0ZScuXG4gICAqIEBzZWUgUXVlc3Rpb24udmlzaWJsZVxuICAgKiBAc2VlIG9uQ29tcGxldGVcbiAgICovXG4gIHB1YmxpYyBnZXQgY2xlYXJJbnZpc2libGVWYWx1ZXMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY2xlYXJJbnZpc2libGVWYWx1ZXNcIik7XG4gIH1cbiAgcHVibGljIHNldCBjbGVhckludmlzaWJsZVZhbHVlcyh2YWw6IGFueSkge1xuICAgIGlmICh2YWwgPT09IHRydWUpIHZhbCA9IFwib25Db21wbGV0ZVwiO1xuICAgIGlmICh2YWwgPT09IGZhbHNlKSB2YWwgPSBcIm5vbmVcIjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjbGVhckludmlzaWJsZVZhbHVlc1wiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gcmVtb3ZlIGFsbCBxdWVzdGlvbiB2YWx1ZXMgZnJvbSB0aGUgc3VydmV5LCB0aGF0IGVuZC11c2VyIHdpbGwgbm90IGJlIGFibGUgdG8gZW50ZXIuXG4gICAqIEZvciBleGFtcGxlIHRoZSB2YWx1ZSB0aGF0IGRvZXNuJ3QgZXhpc3RzIGluIGEgcmFkaWdyb3VwL2Ryb3Bkb3duL2NoZWNrYm94IGNob2ljZXMgb3IgbWF0cml4IHJvd3MvY29sdW1ucy5cbiAgICogUGxlYXNlIG5vdGUsIHRoaXMgZnVuY3Rpb24gZG9lc24ndCBjbGVhciB2YWx1ZXMgZm9yIGludmlzaWJsZSBxdWVzdGlvbnMgb3IgdmFsdWVzIHRoYXQgZG9lc24ndCBhc3NvY2lhdGVkIHdpdGggcXVlc3Rpb25zLlxuICAgKiBJbiBmYWN0IHRoaXMgZnVuY3Rpb24ganVzdCBjYWxsIGNsZWFySW5jb3JyZWN0VmFsdWVzIGZ1bmN0aW9uIG9mIGFsbCBxdWVzdGlvbnMgaW4gdGhlIHN1cnZlcnlcbiAgICogQHNlZSBRdWVzdGlvbi5jbGVhckluY29ycmVjdFZhbHVlc1xuICAgKiBAc2VlIFBhZ2UuY2xlYXJJbmNvcnJlY3RWYWx1ZXNcbiAgICogQHNlZSBQYW5lbC5jbGVhckluY29ycmVjdFZhbHVlc1xuICAgKi9cbiAgcHVibGljIGNsZWFySW5jb3JyZWN0VmFsdWVzKCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5wYWdlc1tpXS5jbGVhckluY29ycmVjdFZhbHVlcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgaXQgdG8gY2hhbmdlIHRoZSBzdXJ2ZXkgbG9jYWxlLiBCeSBkZWZhdWx0IGl0IGlzIGVtcHR5LCAnZW4nLiBZb3UgbWF5IHNldCBpdCB0byAnZGUnIC0gZ2VybWFuLCAnZnInIC0gZnJlbmNoIGFuZCBzbyBvbi4gVGhlIGxpYnJhcnkgaGFzIGJ1aWx0LWluIGxvY2FsaXphdGlvbiBmb3Igc2V2ZXJhbCBsYW5ndWFnZXMuIFRoZSBsaWJyYXJ5IGhhcyBhIG11bHRpLWxhbmd1YWdlIHN1cHBvcnQgYXMgd2VsbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgbG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxlVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucXVlc3Rpb25UaXRsZVRlbXBsYXRlQ2FjaGUgPSB1bmRlZmluZWQ7XG4gICAgc3VydmV5TG9jYWxpemF0aW9uLmN1cnJlbnRMb2NhbGUgPSB2YWx1ZTtcbiAgICB0aGlzLmxvY2FsZVZhbHVlID0gc3VydmV5TG9jYWxpemF0aW9uLmN1cnJlbnRMb2NhbGU7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwibG9jYWxlXCIsIHRoaXMubG9jYWxlVmFsdWUpO1xuICAgIHRoaXMubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICB0aGlzLm9uTG9jYWxlQ2hhbmdlZCgpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFycmF5IG9mIGxvY2FsZXMgdGhhdCB1c2VkIGluIHRoZSBjdXJyZW50IHN1cnZleVxuICAgKi9cbiAgcHVibGljIGdldFVzZWRMb2NhbGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciBsb2NzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICB0aGlzLmFkZFVzZWRMb2NhbGVzKGxvY3MpO1xuICAgIC8vUmVwbGFjZSB0aGUgZGVmYXVsdCBsb2NhbGUgd2l0aCB0aGUgcmVhbCBvbmVcbiAgICB2YXIgaW5kZXggPSBsb2NzLmluZGV4T2YoXCJkZWZhdWx0XCIpO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB2YXIgZGVmYXVsdExvYyA9IHN1cnZleUxvY2FsaXphdGlvbi5kZWZhdWx0TG9jYWxlO1xuICAgICAgLy9SZW1vdmUgdGhlIGRlZmF1bHRMb2NcbiAgICAgIHZhciBkZWZJbmRleCA9IGxvY3MuaW5kZXhPZihkZWZhdWx0TG9jKTtcbiAgICAgIGlmIChkZWZJbmRleCA+IC0xKSB7XG4gICAgICAgIGxvY3Muc3BsaWNlKGRlZkluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIGluZGV4ID0gbG9jcy5pbmRleE9mKFwiZGVmYXVsdFwiKTtcbiAgICAgIGxvY3NbaW5kZXhdID0gZGVmYXVsdExvYztcbiAgICB9XG4gICAgcmV0dXJuIGxvY3M7XG4gIH1cbiAgcHJvdGVjdGVkIG9uTG9jYWxlQ2hhbmdlZCgpIHt9XG4gIC8vSUxvY2FsaXphYmxlT3duZXJcbiAgZ2V0TG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmxvY2FsZTtcbiAgfVxuICBwdWJsaWMgbG9jU3Ryc0NoYW5nZWQoKSB7XG4gICAgc3VwZXIubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5sb2NTdHJzQ2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0TWFya2Rvd25IdG1sKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3VydmV5TWFya2Rvd25IdG1sKHRoaXMsIHRleHQpO1xuICB9XG4gIHB1YmxpYyBnZXRQcm9jZXNzZWRUZXh0KHRleHQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NUZXh0KHRleHQsIHRydWUpO1xuICB9XG4gIGdldExvY1N0cmluZyhzdHI6IHN0cmluZykge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKHN0cik7XG4gIH1cbiAgLy9JU3VydmV5RXJyb3JPd25lclxuICBnZXRFcnJvckN1c3RvbVRleHQodGV4dDogc3RyaW5nLCBlcnJvcjogU3VydmV5RXJyb3IpOiBzdHJpbmcge1xuICAgIHZhciBvcHRpb25zID0geyB0ZXh0OiB0ZXh0LCBuYW1lOiBlcnJvci5nZXRFcnJvclR5cGUoKSwgZXJyb3I6IGVycm9yIH07XG4gICAgdGhpcy5vbkVycm9yQ3VzdG9tVGV4dC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLnRleHQ7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHRleHQgdGhhdCByZW5kZXJzIHdoZW4gdGhlcmUgaXMgbm8gYW55IHZpc2libGUgcGFnZSBhbmQgcXVlc3Rpb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVtcHR5U3VydmV5VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcImVtcHR5U3VydmV5XCIpO1xuICB9XG4gIC8qKlxuICAgKiBTdXJ2ZXkgdGl0bGUuXG4gICAqIEBzZWUgZGVzY3JpcHRpb25cbiAgICovXG4gIHB1YmxpYyBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJ0aXRsZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInRpdGxlXCIsIHZhbHVlKTtcbiAgfVxuICBnZXQgbG9jVGl0bGUoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwidGl0bGVcIik7XG4gIH1cbiAgLyoqXG4gICAqIFN1cnZleSBkZXNjcmlwdGlvbi4gSXQgc2hvd3MgdW5kZXIgc3VydmV5IHRpdGxlXG4gICAqIEBzZWUgdGl0bGVcbiAgICovXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJkZXNjcmlwdGlvblwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGRlc2NyaXB0aW9uKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImRlc2NyaXB0aW9uXCIsIHZhbHVlKTtcbiAgfVxuICBnZXQgbG9jRGVzY3JpcHRpb24oKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwiZGVzY3JpcHRpb25cIik7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBodG1sIHRoYXQgc2hvd3Mgb24gY29tcGxldGVkICgnVGhhbmsgeW91JykgcGFnZS4gU2V0IGl0IHRvIGNoYW5nZSB0aGUgZGVmYXVsdCB0ZXh0LlxuICAgKiBAc2VlIHNob3dDb21wbGV0ZWRQYWdlXG4gICAqIEBzZWUgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uXG4gICAqIEBzZWUgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbXBsZXRlZEh0bWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJjb21wbGV0ZWRIdG1sXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY29tcGxldGVkSHRtbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJjb21wbGV0ZWRIdG1sXCIsIHZhbHVlKTtcbiAgfVxuICBnZXQgbG9jQ29tcGxldGVkSHRtbCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJjb21wbGV0ZWRIdG1sXCIpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBodG1sIGNvbmRpdGlvbiBpdGVtcy4gSWYgdGhlIGV4cHJlc3Npb24gb2YgdGhpcyBpdGVtIHJldHVybnMgdHJ1ZSwgdGhlbiBzdXJ2ZXkgd2lsbCB1c2UgdGhpcyBpdGVtIGh0bWwgaW5zdGVhZCBvZiBjb21wbGV0ZWRIdG1sXG4gICAqIEBzZWUgSHRtbENvbmRpdGlvbkl0ZW1cbiAgICogQHNlZSBjb21wbGV0ZUh0bWxcbiAgICovXG4gIHB1YmxpYyBnZXQgY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uKCk6IEFycmF5PEh0bWxDb25kaXRpb25JdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvblwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbih2YWw6IEFycmF5PEh0bWxDb25kaXRpb25JdGVtPikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvblwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBQZXJmb3JtIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IHZhbHVlXG4gICAqIEBwYXJhbSBleHByZXNzaW9uXG4gICAqL1xuICBwdWJsaWMgcnVuRXhwcmVzc2lvbihleHByZXNzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghZXhwcmVzc2lvbikgcmV0dXJuIG51bGw7XG4gICAgdmFyIHZhbHVlcyA9IHRoaXMuZ2V0RmlsdGVyZWRWYWx1ZXMoKTtcbiAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMuZ2V0RmlsdGVyZWRQcm9wZXJ0aWVzKCk7XG4gICAgcmV0dXJuIG5ldyBFeHByZXNzaW9uUnVubmVyKGV4cHJlc3Npb24pLnJ1bih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICB9XG4gIC8qKlxuICAgKiBQZXJmb3JtIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBhbmQgdHJ1ZSBvciBmYWxzZVxuICAgKiBAcGFyYW0gZXhwcmVzc2lvblxuICAgKi9cbiAgcHVibGljIHJ1bkNvbmRpdGlvbihleHByZXNzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIWV4cHJlc3Npb24pIHJldHVybiBmYWxzZTtcbiAgICB2YXIgdmFsdWVzID0gdGhpcy5nZXRGaWx0ZXJlZFZhbHVlcygpO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5nZXRGaWx0ZXJlZFByb3BlcnRpZXMoKTtcbiAgICByZXR1cm4gbmV3IENvbmRpdGlvblJ1bm5lcihleHByZXNzaW9uKS5ydW4odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJlbmRlcmVkQ29tcGxldGVkSHRtbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbi5sZW5ndGggPT0gMCkgcmV0dXJuIHRoaXMuY29tcGxldGVkSHRtbDtcbiAgICB2YXIgdmFsdWVzID0gdGhpcy5nZXRGaWx0ZXJlZFZhbHVlcygpO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5nZXRGaWx0ZXJlZFByb3BlcnRpZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IHRoaXMuY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uW2ldO1xuICAgICAgaWYgKGl0ZW0ucnVuQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcykpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaHRtbDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tcGxldGVkSHRtbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaHRtbCB0aGF0IHNob3dzIGlmIHRoZSBlbmQgdXNlciBoYXMgYWxyZWFkeSBjb21wbGV0ZWQgdGhlIHN1cnZleS5cbiAgICogQHNlZSBjbGllbnRJZFxuICAgKiBAc2VlIGxvY2FsZVxuICAgKi9cbiAgcHVibGljIGdldCBjb21wbGV0ZWRCZWZvcmVIdG1sKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwiY29tcGxldGVkQmVmb3JlSHRtbFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNvbXBsZXRlZEJlZm9yZUh0bWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwiY29tcGxldGVkQmVmb3JlSHRtbFwiLCB2YWx1ZSk7XG4gIH1cbiAgZ2V0IGxvY0NvbXBsZXRlZEJlZm9yZUh0bWwoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwiY29tcGxldGVkQmVmb3JlSHRtbFwiKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGh0bWwgdGhhdCBzaG93cyBvbiBsb2FkaW5nIHN1cnZleSBKc29uIGZyb20gdGhlIGR4c3VydmV5LmNvbSBzZXJ2aWNlLlxuICAgKiBAc2VlIHN1cnZleUlkXG4gICAqIEBzZWUgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGxvYWRpbmdIdG1sKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwibG9hZGluZ0h0bWxcIik7XG4gIH1cbiAgcHVibGljIHNldCBsb2FkaW5nSHRtbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJsb2FkaW5nSHRtbFwiLCB2YWx1ZSk7XG4gIH1cbiAgZ2V0IGxvY0xvYWRpbmdIdG1sKCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcImxvYWRpbmdIdG1sXCIpO1xuICB9XG4gIC8qKlxuICAgKiBBIHRleHQgdGhhdCByZW5kZXJzIG9uIHRoZSAnU3RhcnQnIGJ1dHRvbi4gU2V0IGl0IHRvIGNoYW5nZSB0aGUgZGVmYXVsdCB0ZXh0LlxuICAgKiBUaGUgc3RhcnQgYnV0dG9uIGlzIHNob3duIG9uIHRoZSBzdGFydGVkIHBhZ2UuIFlvdSBoYXZlIHRvIHNldCBmaXJzdFBhZ2VJc1N0YXJ0ZWQgcHJvcGVydHkgdG8gdHJ1ZSwgdG8gaGF2ZSB0aGUgc3RhcnRlZCBwYWdlLlxuICAgKiBAc2VlIGZpcnN0UGFnZUlzU3RhcnRlZFxuICAgKiBAc2VlIGxvY2FsZVxuICAgKi9cbiAgcHVibGljIGdldCBzdGFydFN1cnZleVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXG4gICAgICBcInN0YXJ0U3VydmV5XCIsXG4gICAgICB0aGlzLmdldExvY1N0cmluZyhcInN0YXJ0U3VydmV5VGV4dFwiKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCBzdGFydFN1cnZleVRleHQobmV3VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwic3RhcnRTdXJ2ZXlcIiwgbmV3VmFsdWUpO1xuICB9XG4gIGdldCBsb2NTdGFydFN1cnZleVRleHQoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwic3RhcnRTdXJ2ZXlcIik7XG4gIH1cbiAgLyoqXG4gICAqIEEgdGV4dCB0aGF0IHJlbmRlcnMgb24gdGhlICdQcmV2JyBidXR0b24uIFNldCBpdCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgdGV4dC5cbiAgICogQHNlZSBsb2NhbGVcbiAgICovXG4gIHB1YmxpYyBnZXQgcGFnZVByZXZUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJwYWdlUHJldlwiLFxuICAgICAgdGhpcy5nZXRMb2NTdHJpbmcoXCJwYWdlUHJldlRleHRcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgcGFnZVByZXZUZXh0KG5ld1ZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInBhZ2VQcmV2XCIsIG5ld1ZhbHVlKTtcbiAgfVxuICBnZXQgbG9jUGFnZVByZXZUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcInBhZ2VQcmV2XCIpO1xuICB9XG4gIC8qKlxuICAgKiBBIHRleHQgdGhhdCByZW5kZXJzIG9uIHRoZSAnTmV4dCcgYnV0dG9uLiBTZXQgaXQgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHRleHQuXG4gICAqIEBzZWUgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhZ2VOZXh0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcbiAgICAgIFwicGFnZU5leHRcIixcbiAgICAgIHRoaXMuZ2V0TG9jU3RyaW5nKFwicGFnZU5leHRUZXh0XCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHBhZ2VOZXh0VGV4dChuZXdWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJwYWdlTmV4dFwiLCBuZXdWYWx1ZSk7XG4gIH1cbiAgZ2V0IGxvY1BhZ2VOZXh0VGV4dCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJwYWdlTmV4dFwiKTtcbiAgfVxuICAvKipcbiAgICogQSB0ZXh0IHRoYXQgcmVuZGVycyBvbiB0aGUgJ0NvbXBsZXRlJyBidXR0b24uIFNldCBpdCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgdGV4dC5cbiAgICogQHNlZSBsb2NhbGVcbiAgICovXG4gIHB1YmxpYyBnZXQgY29tcGxldGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJjb21wbGV0ZVwiLFxuICAgICAgdGhpcy5nZXRMb2NTdHJpbmcoXCJjb21wbGV0ZVRleHRcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgY29tcGxldGVUZXh0KG5ld1ZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImNvbXBsZXRlXCIsIG5ld1ZhbHVlKTtcbiAgfVxuICBnZXQgbG9jQ29tcGxldGVUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcImNvbXBsZXRlXCIpO1xuICB9XG4gIC8qKlxuICAgKiBBIHRlbXBsYXRlIGZvciBhIHF1ZXN0aW9uIHRpdGxlLlxuICAgKiBAc2VlIFF1ZXN0aW9uTW9kZWwudGl0bGVcbiAgICovXG4gIHB1YmxpYyBnZXQgcXVlc3Rpb25UaXRsZVRlbXBsYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwicXVlc3Rpb25UaXRsZVRlbXBsYXRlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcXVlc3Rpb25UaXRsZVRlbXBsYXRlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoISF2YWx1ZSAmJiB2YWx1ZS5pbmRleE9mKFwie25vfVwiKSAhPT0gLTEpIHtcbiAgICAgIHZhciBub0luZGV4ID0gdmFsdWUuaW5kZXhPZihcIntub31cIik7XG4gICAgICB2YXIgcHJldkJySW5kZXggPSBub0luZGV4O1xuICAgICAgdmFyIG5leHRCckluZGV4ID0gbm9JbmRleCArIDQ7XG4gICAgICB3aGlsZSAocHJldkJySW5kZXggPj0gMCAmJiB2YWx1ZVtwcmV2QnJJbmRleF0gIT09IFwifVwiKSBwcmV2QnJJbmRleC0tO1xuICAgICAgd2hpbGUgKG5leHRCckluZGV4IDwgdmFsdWUubGVuZ3RoICYmIHZhbHVlW25leHRCckluZGV4XSAhPT0gXCJ7XCIpXG4gICAgICAgIG5leHRCckluZGV4Kys7XG4gICAgICB2YWx1ZSA9XG4gICAgICAgIHZhbHVlLnN1YnN0cmluZygwLCBwcmV2QnJJbmRleCArIDEpICsgdmFsdWUuc3Vic3RyaW5nKG5leHRCckluZGV4KTtcbiAgICB9XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJxdWVzdGlvblRpdGxlVGVtcGxhdGVcIiwgdmFsdWUpO1xuICB9XG4gIHByaXZhdGUgcXVlc3Rpb25UaXRsZVRlbXBsYXRlQ2FjaGU6IHN0cmluZyA9IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHF1ZXN0aW9uIHRpdGxlIHRlbXBsYXRlXG4gICAqIEBzZWUgcXVlc3Rpb25UaXRsZVRlbXBsYXRlXG4gICAqIEBzZWUgUXVlc3Rpb25Nb2RlbC50aXRsZVxuICAgKi9cbiAgcHVibGljIGdldFF1ZXN0aW9uVGl0bGVUZW1wbGF0ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uVGl0bGVUZW1wbGF0ZUNhY2hlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucXVlc3Rpb25UaXRsZVRlbXBsYXRlQ2FjaGUgPSB0aGlzLmxvY1F1ZXN0aW9uVGl0bGVUZW1wbGF0ZS50ZXh0T3JIdG1sO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvblRpdGxlVGVtcGxhdGVDYWNoZTtcbiAgfVxuICBnZXQgbG9jUXVlc3Rpb25UaXRsZVRlbXBsYXRlKCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcInF1ZXN0aW9uVGl0bGVUZW1wbGF0ZVwiKTtcbiAgfVxuICBnZXRVcGRhdGVkUXVlc3Rpb25UaXRsZShxdWVzdGlvbjogSVF1ZXN0aW9uLCB0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5vbkdldFF1ZXN0aW9uVGl0bGUuaXNFbXB0eSkgcmV0dXJuIHRpdGxlO1xuICAgIHZhciBvcHRpb25zID0geyBxdWVzdGlvbjogcXVlc3Rpb24sIHRpdGxlOiB0aXRsZSB9O1xuICAgIHRoaXMub25HZXRRdWVzdGlvblRpdGxlLmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnMudGl0bGU7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGZhbHNlIHRvIHR1cm4gb2ZmIHRoZSBudW1iZXJpbmcgb24gcGFnZXMgdGl0bGVzLlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93UGFnZU51bWJlcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInNob3dQYWdlTnVtYmVyc1wiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93UGFnZU51bWJlcnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuc2hvd1BhZ2VOdW1iZXJzKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic2hvd1BhZ2VOdW1iZXJzXCIsIHZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJbmRleGVzKCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIFwib2ZmXCIgdG8gdHVybiBvZmYgdGhlIG51bWJlcmluZyBvbiBxdWVzdGlvbnMgdGl0bGVzIG9yIFwib25wYWdlXCIgdG8gc3RhcnQgbnVtYmVyaW5nIG9uIGV2ZXJ5IHBhZ2UuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFwib25cIi5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd1F1ZXN0aW9uTnVtYmVycygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93UXVlc3Rpb25OdW1iZXJzXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd1F1ZXN0aW9uTnVtYmVycyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbHVlID0gdmFsdWUgPT09IFwib25wYWdlXCIgPyBcIm9uUGFnZVwiIDogdmFsdWU7XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLnNob3dRdWVzdGlvbk51bWJlcnMpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzaG93UXVlc3Rpb25OdW1iZXJzXCIsIHZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJbmRleGVzKCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIFwidG9wXCIgdG8gc2hvdyB0aGUgcHJvZ3Jlc3MgYmFyIG9uIHRoZSBib3R0b20gb3IgdG8gXCJib3R0b21cIiB0byBzaG93IGl0IG9uIHRoZSBib3R0b20uXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dQcm9ncmVzc0JhcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93UHJvZ3Jlc3NCYXJcIik7XG4gIH1cbiAgcHVibGljIHNldCBzaG93UHJvZ3Jlc3NCYXIobmV3VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dQcm9ncmVzc0JhclwiLCBuZXdWYWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuICAvKipcbiAgICogVHlwZSBvZiBpbmZvIGluIHRoZSBwcm9ncmVzcyBiYXI6IFwicGFnZXNcIiAoZGVmYXVsdCksIFwicXVlc3Rpb25zXCIgb3IgXCJjb3JyZWN0UXVlc3Rpb25zXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb2dyZXNzQmFyVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJwcm9ncmVzc0JhclR5cGVcIik7XG4gIH1cbiAgcHVibGljIHNldCBwcm9ncmVzc0JhclR5cGUobmV3VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInByb2dyZXNzQmFyVHlwZVwiLCBuZXdWYWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzU2hvd1Byb2dyZXNzQmFyT25Ub3AoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1Byb2dyZXNzQmFyID09PSBcInRvcFwiIHx8IHRoaXMuc2hvd1Byb2dyZXNzQmFyID09PSBcImJvdGhcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzU2hvd1Byb2dyZXNzQmFyT25Cb3R0b20oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1Byb2dyZXNzQmFyID09PSBcImJvdHRvbVwiIHx8IHRoaXMuc2hvd1Byb2dyZXNzQmFyID09PSBcImJvdGhcIjtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdGV4dC9odG1sIHRoYXQgcmVuZGVycyBhcyBzdXJ2ZXkgdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb2Nlc3NlZFRpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLmxvY1RpdGxlLnJlbmRlcmVkSHRtbDtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gJ2JvdHRvbScgb3IgJ2xlZnQnIHRvIHNob3cgcXVlc3Rpb24gdGl0bGUgdW5kZXIgdGhlIHF1ZXN0aW9uIG9yIG9uIHRoZSBsZWZ0LlxuICAgKiA8YnIvPjxiPk5vdGU6PC9iPiBTb21lIHF1ZXN0aW9ucywgZm9yIGV4YW1wbGUgbWF0cml4ZXMsIGRvIG5vdCBzdXBwb3J0ICdsZWZ0JyB2YWx1ZS4gVGhlIHRpdGxlIGZvciB0aGVtIHdpbGwgYmUgZGlzcGxheWVkIG9uIHRoZSB0b3AuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHF1ZXN0aW9uVGl0bGVMb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJxdWVzdGlvblRpdGxlTG9jYXRpb25cIik7XG4gIH1cbiAgcHVibGljIHNldCBxdWVzdGlvblRpdGxlTG9jYXRpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInF1ZXN0aW9uVGl0bGVMb2NhdGlvblwiLCB2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gJ2JvdHRvbScgdG8gc2hvdyBxdWVzdGlvbiBlcnJvcihzKSB1bmRlciB0aGUgcXVlc3Rpb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IHF1ZXN0aW9uRXJyb3JMb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJxdWVzdGlvbkVycm9yTG9jYXRpb25cIik7XG4gIH1cbiAgcHVibGljIHNldCBxdWVzdGlvbkVycm9yTG9jYXRpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInF1ZXN0aW9uRXJyb3JMb2NhdGlvblwiLCB2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gJ3VuZGVySW5wdXQnIHRvIHNob3cgcXVlc3Rpb24gZGVzY3JpcHRpb24gdW5kZXIgdGhlIHF1ZXN0aW9uIGlucHV0IGluc3RlYWQgb2YgcXVlc3Rpb24gdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHF1ZXN0aW9uRGVzY3JpcHRpb25Mb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJxdWVzdGlvbkRlc2NyaXB0aW9uTG9jYXRpb25cIik7XG4gIH1cbiAgcHVibGljIHNldCBxdWVzdGlvbkRlc2NyaXB0aW9uTG9jYXRpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInF1ZXN0aW9uRGVzY3JpcHRpb25Mb2NhdGlvblwiLCB2YWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIG1vZGUgdG8gJ2Rpc3BsYXknIHRvIG1ha2UgdGhlIHN1cnZleSByZWFkLW9ubHkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzICdlZGl0Jy5cbiAgICovXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJtb2RlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgbW9kZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICh2YWx1ZSA9PSB0aGlzLm1vZGUpIHJldHVybjtcbiAgICBpZiAodmFsdWUgIT0gXCJlZGl0XCIgJiYgdmFsdWUgIT0gXCJkaXNwbGF5XCIpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJtb2RlXCIsIHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIG9uTW9kZUNoYW5nZWQoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcGFnZSA9IHRoaXMucGFnZXNbaV07XG4gICAgICBwYWdlLnNldFByb3BlcnR5VmFsdWUoXCJpc1JlYWRPbmx5XCIsIHBhZ2UuaXNSZWFkT25seSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBBbiBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIHN1cnZleSByZXN1bHRzL2RhdGEuIFlvdSBtYXkgc2V0IGl0IGRpcmVjdGx5IGFzIHsgJ3F1ZXN0aW9uIG5hbWUnOiBxdWVzdGlvblZhbHVlLCAuLi4gfVxuICAgKiBOb3RlOiBJZiB5b3UgYXJlIHNldHRpbmcgdGhlIGRhdGEgYWZ0ZXIgY3JlYXRpZyB0aGUgc3VydmV5LCB5b3UgbWF5IG5lZWQgdG8gc2V0IHRoZSBjdXJyZW50UGFnZU5vIHRvIDAsIGlmIHlvdSBhcmUgdXNpbmcgdmlzaWJsZUlmIHByb3BlcnRpZXMgZm9yIHF1ZXN0aW9ucy9wYWdlcy9wYW5lbHMgdG8gZW5zdXJlIHRoYXQgeW91IGFyZSBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBwYWdlLlxuICAgKiBAc2VlIHNldFZhbHVlXG4gICAqIEBzZWUgZ2V0VmFsdWVcbiAgICogQHNlZSBjdXJyZW50UGFnZU5vXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRhdGEoKTogYW55IHtcbiAgICB2YXIgcmVzdWx0OiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2FsY3VsYXRlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNhbFZhbHVlID0gdGhpcy5jYWxjdWxhdGVkVmFsdWVzW2ldO1xuICAgICAgaWYgKFxuICAgICAgICBjYWxWYWx1ZS5pbmNsdWRlSW50b1Jlc3VsdCAmJlxuICAgICAgICAhIWNhbFZhbHVlLm5hbWUgJiZcbiAgICAgICAgdGhpcy5nZXRWYXJpYWJsZShjYWxWYWx1ZS5uYW1lKSAhPT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgcmVzdWx0W2NhbFZhbHVlLm5hbWVdID0gdGhpcy5nZXRWYXJpYWJsZShjYWxWYWx1ZS5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yICh2YXIga2V5IGluIHRoaXMudmFsdWVzSGFzaCkge1xuICAgICAgdmFyIGRhdGFWYWx1ZSA9IHRoaXMuZ2V0RGF0YVZhbHVlQ29yZSh0aGlzLnZhbHVlc0hhc2gsIGtleSk7XG4gICAgICBpZiAoZGF0YVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBkYXRhVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgZ2V0QWxsVmFsdWVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyBzdXJ2ZXkgcmVzdWx0IGRhdGEgYXMgYW4gYXJyYXkgb2YgcGxhaW4gb2JqZWN0czogd2l0aCBxdWVzdGlvbiB0aXRsZSwgbmFtZSwgdmFsdWUgYW5kIGRpc3BsYXlWYWx1ZS5cbiAgICogRm9yIGNvbXBsZXggcXVlc3Rpb25zIChsaWtlIG1hdHJpeCwgZXRjLikgaXNOb2RlIGZsYWcgaXMgc2V0IHRvIHRydWUgYW5kIGRhdGEgY29udGFpbnMgYXJyYXkgb2YgbmVzdGVkIG9iamVjdHMgKHJvd3MpXG4gICAqIHNldCBvcHRpb25zLmluY2x1ZGVFbXB0eSB0byBmYWxzZSBpZiB5b3Ugd2FudCB0byBza2lwIGVtcHR5IGFuc3dlcnNcbiAgICovXG4gIHB1YmxpYyBnZXRQbGFpbkRhdGEoXG4gICAgb3B0aW9uczoge1xuICAgICAgaW5jbHVkZUVtcHR5PzogYm9vbGVhbjtcbiAgICAgIGNhbGN1bGF0aW9ucz86IEFycmF5PHtcbiAgICAgICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XG4gICAgICB9PjtcbiAgICB9ID0ge1xuICAgICAgaW5jbHVkZUVtcHR5OiB0cnVlXG4gICAgfVxuICApIHtcbiAgICB2YXIgcmVzdWx0OiBBcnJheTxhbnk+ID0gW107XG4gICAgdGhpcy5nZXRBbGxRdWVzdGlvbnMoKS5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcbiAgICAgIHZhciByZXN1bHRJdGVtID0gKDxRdWVzdGlvbj5xdWVzdGlvbikuZ2V0UGxhaW5EYXRhKG9wdGlvbnMpO1xuICAgICAgaWYgKCEhcmVzdWx0SXRlbSkge1xuICAgICAgICByZXN1bHQucHVzaChyZXN1bHRJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHByaXZhdGUgY29uZGl0aW9uVmVyc2lvbiA9IDA7XG4gIGdldEZpbHRlcmVkVmFsdWVzKCk6IGFueSB7XG4gICAgdmFyIHZhbHVlczogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgZm9yICh2YXIga2V5IGluIHRoaXMudmFyaWFibGVzSGFzaCkgdmFsdWVzW2tleV0gPSB0aGlzLnZhcmlhYmxlc0hhc2hba2V5XTtcbiAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy52YWx1ZXNIYXNoKVxuICAgICAgdmFsdWVzW2tleV0gPSB0aGlzLmdldERhdGFWYWx1ZUNvcmUodGhpcy52YWx1ZXNIYXNoLCBrZXkpO1xuICAgIHZhbHVlc1tcImNvbmRpdGlvblZlcnNpb25cIl0gPSArK3RoaXMuY29uZGl0aW9uVmVyc2lvbjtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG4gIGdldEZpbHRlcmVkUHJvcGVydGllcygpOiBhbnkge1xuICAgIHJldHVybiB7IHN1cnZleTogdGhpcyB9O1xuICB9XG5cbiAgcHVibGljIHNldCBkYXRhKGRhdGE6IGFueSkge1xuICAgIHRoaXMudmFsdWVzSGFzaCA9IHt9O1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xuICAgICAgICB0aGlzLnNldERhdGFWYWx1ZUNvcmUodGhpcy52YWx1ZXNIYXNoLCBrZXksIGRhdGFba2V5XSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQWxsUXVlc3Rpb25zVmFsdWUoKTtcbiAgICB0aGlzLm5vdGlmeUFsbFF1ZXN0aW9uc09uVmFsdWVDaGFuZ2VkKCk7XG4gICAgdGhpcy5ub3RpZnlFbGVtZW50c09uQW55VmFsdWVPclZhcmlhYmxlQ2hhbmdlZChcIlwiKTtcbiAgICB0aGlzLnJ1bkNvbmRpdGlvbnMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0RGF0YVZhbHVlQ29yZSh2YWx1ZXNIYXNoOiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlc0hhc2hba2V5XTtcbiAgfVxuICBwdWJsaWMgc2V0RGF0YVZhbHVlQ29yZSh2YWx1ZXNIYXNoOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgdmFsdWVzSGFzaFtrZXldID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGRlbGV0ZURhdGFWYWx1ZUNvcmUodmFsdWVzSGFzaDogYW55LCBrZXk6IHN0cmluZykge1xuICAgIGRlbGV0ZSB2YWx1ZXNIYXNoW2tleV07XG4gIH1cbiAgLy8gcHJvdGVjdGVkIGl0ZXJhdGVEYXRhVmFsdWVzSGFzaChmdW5jOiAoaGFzaDogYW55LCBrZXk6IGFueSkgPT4gdm9pZCkge1xuICAvLyAgIHZhciBrZXlzOiBhbnlbXSA9IFtdO1xuICAvLyAgIGZvciAodmFyIGtleSBpbiB0aGlzLnZhbHVlc0hhc2gpIHtcbiAgLy8gICAgIGtleXMucHVzaChrZXkpO1xuICAvLyAgIH1cbiAgLy8gICBrZXlzLmZvckVhY2goa2V5ID0+IGZ1bmModGhpcy52YWx1ZXNIYXNoLCBrZXkpKTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBjb21tZW50cyBmcm9tIHRoZSBkYXRhLlxuICAgKiBAc2VlIGRhdGFcbiAgICovXG4gIHB1YmxpYyBnZXQgY29tbWVudHMoKTogYW55IHtcbiAgICB2YXIgcmVzdWx0OiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy52YWx1ZXNIYXNoKSB7XG4gICAgICBpZiAoa2V5LmluZGV4T2YodGhpcy5jb21tZW50UHJlZml4KSA+IDApIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0aGlzLmdldERhdGFWYWx1ZUNvcmUodGhpcy52YWx1ZXNIYXNoLCBrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHZpc2libGUgcGFnZXMuIElmIGFsbCBwYWdlcyBhcmUgdmlzaWJsZSB0aGVuIGl0IGlzIHRoZSBzYW1lIGFzIHBhZ2VzIHByb3BlcnR5LlxuICAgKiBAc2VlIHBhZ2VzXG4gICAqIEBzZWUgUGFnZU1vZGVsLnZpc2libGVcbiAgICogQHNlZSBQYWdlTW9kZWwudmlzaWJsZUlmXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZpc2libGVQYWdlcygpOiBBcnJheTxQYWdlTW9kZWw+IHtcbiAgICBpZiAodGhpcy5pc0Rlc2lnbk1vZGUpIHJldHVybiB0aGlzLnBhZ2VzO1xuICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXk8UGFnZU1vZGVsPigpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMucGFnZXNbaV0uaXNWaXNpYmxlKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRoaXMucGFnZXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgbm8gYW55IHBhZ2UgaW4gdGhlIHN1cnZleS4gVGhlIHN1cnZleSBpcyBlbXB0eS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlcy5sZW5ndGggPT0gMDtcbiAgfVxuICAvKipcbiAgICogZGVwcmljYXRlZCwgbWlzc3BlbGxpbmcsIHVzZSBwYWdlQ291bnQgcHJvcGVydHlcbiAgICovXG4gIGdldCBQYWdlQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlQ291bnQ7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN1cnZleSBwYWdlcyBjb3VudC5cbiAgICogQHNlZSB2aXNpYmxlUGFnZUNvdW50XG4gICAqIEBzZWUgcGFnZXNcbiAgICovXG4gIHB1YmxpYyBnZXQgcGFnZUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFnZXMubGVuZ3RoO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdXJ2ZXkgdmlzaWJsZSBwYWdlcyBjb3VudFxuICAgKiBAc2VlIHBhZ2VDb3VudFxuICAgKiBAc2VlIHZpc2libGVQYWdlc1xuICAgKi9cbiAgcHVibGljIGdldCB2aXNpYmxlUGFnZUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVBhZ2VzLmxlbmd0aDtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc3RhcnRlZCBQYWdlLiBmaXJzdFBhZ2VJc1N0YXJ0ZWQgcHJvcGVydHkgc2hvdWxkIGJlIGVxdWFscyB0byB0cnVlXG4gICAqIEBzZWUgZmlyc3RQYWdlSXNTdGFydGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN0YXJ0ZWRQYWdlKCk6IFBhZ2VNb2RlbCB7XG4gICAgdmFyIHBhZ2UgPVxuICAgICAgdGhpcy5maXJzdFBhZ2VJc1N0YXJ0ZWQgJiYgdGhpcy5wYWdlcy5sZW5ndGggPiAwID8gdGhpcy5wYWdlc1swXSA6IG51bGw7XG4gICAgaWYgKCEhcGFnZSkge1xuICAgICAgcGFnZS5vbkZpcnN0UmVuZGVyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiBwYWdlO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHN1cnZleSBwYWdlLiBJZiBzdXJ2ZXkgaXMgcmVuZHJlZCB0aGVuIGl0IGlzIGEgcGFnZSB0aGF0IGEgdXNlciBjYW4gc2VlL2VkaXQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnRQYWdlKCk6IGFueSB7XG4gICAgdmFyIHZQYWdlcyA9IHRoaXMudmlzaWJsZVBhZ2VzO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlVmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKHZQYWdlcy5pbmRleE9mKHRoaXMuY3VycmVudFBhZ2VWYWx1ZSkgPCAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZVZhbHVlID09IG51bGwgJiYgdlBhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB2UGFnZXNbMF07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBjdXJyZW50UGFnZSh2YWx1ZTogYW55KSB7XG4gICAgdmFyIG5ld1BhZ2UgPSB0aGlzLmdldFBhZ2VCeU9iamVjdCh2YWx1ZSk7XG4gICAgaWYgKCEhdmFsdWUgJiYgIW5ld1BhZ2UpIHJldHVybjtcbiAgICB2YXIgdlBhZ2VzID0gdGhpcy52aXNpYmxlUGFnZXM7XG4gICAgaWYgKG5ld1BhZ2UgIT0gbnVsbCAmJiB2UGFnZXMuaW5kZXhPZihuZXdQYWdlKSA8IDApIHJldHVybjtcbiAgICBpZiAobmV3UGFnZSA9PSB0aGlzLmN1cnJlbnRQYWdlVmFsdWUpIHJldHVybjtcbiAgICB2YXIgb2xkVmFsdWUgPSB0aGlzLmN1cnJlbnRQYWdlVmFsdWU7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRQYWdlQ2hhbmdpbmcobmV3UGFnZSwgb2xkVmFsdWUpKSByZXR1cm47XG4gICAgaWYgKCEhbmV3UGFnZSkge1xuICAgICAgbmV3UGFnZS5vbkZpcnN0UmVuZGVyaW5nKCk7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFBhZ2VWYWx1ZSA9IG5ld1BhZ2U7XG4gICAgaWYgKCEhbmV3UGFnZSkge1xuICAgICAgbmV3UGFnZS51cGRhdGVDdXN0b21XaWRnZXRzKCk7XG4gICAgICBuZXdQYWdlLnNldFdhc1Nob3duKHRydWUpO1xuICAgIH1cbiAgICB0aGlzLmxvY1N0cnNDaGFuZ2VkKCk7XG4gICAgdGhpcy5jdXJyZW50UGFnZUNoYW5nZWQobmV3UGFnZSwgb2xkVmFsdWUpO1xuICB9XG4gIHByaXZhdGUgZ2V0UGFnZUJ5T2JqZWN0KHZhbHVlOiBhbnkpOiBQYWdlTW9kZWwge1xuICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xuICAgIGlmICh2YWx1ZS5nZXRUeXBlICYmIHZhbHVlLmdldFR5cGUoKSA9PSBcInBhZ2VcIikgcmV0dXJuIHZhbHVlO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmcpXG4gICAgICByZXR1cm4gdGhpcy5nZXRQYWdlQnlOYW1lKFN0cmluZyh2YWx1ZSkpO1xuICAgIGlmICghaXNOYU4odmFsdWUpKSB7XG4gICAgICB2YXIgaW5kZXggPSBOdW1iZXIodmFsdWUpO1xuICAgICAgdmFyIHZQYWdlcyA9IHRoaXMudmlzaWJsZVBhZ2VzO1xuICAgICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+PSB2UGFnZXMubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiB2UGFnZXNbaW5kZXhdO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCBwYWdlIGluIHRoZSB2aXNpYmxlIHBhZ2VzIGFycmF5LiBJdCBzdGFydHMgZnJvbSAwLlxuICAgKi9cbiAgcHVibGljIGdldCBjdXJyZW50UGFnZU5vKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVBhZ2VzLmluZGV4T2YodGhpcy5jdXJyZW50UGFnZSk7XG4gIH1cbiAgcHVibGljIHNldCBjdXJyZW50UGFnZU5vKHZhbHVlOiBudW1iZXIpIHtcbiAgICB2YXIgdlBhZ2VzID0gdGhpcy52aXNpYmxlUGFnZXM7XG4gICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+PSB2UGFnZXMubGVuZ3RoKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHZQYWdlc1t2YWx1ZV07XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIHJhbmRvbWl6ZSBxdWVzdGlvbnMuIFNldCBpdCB0byAncmFuZG9tJyB0byByYW5kb21pemUgcXVlc3Rpb25zLCAnaW5pdGlhbCcgdG8ga2VlcCB0aGVtIGluIHRoZSBzYW1lIG9yZGVyLiBZb3UgY2FuIHJhbmRvbWl6ZSBxdWVzdGlvbnMgb24gYSBzcGVjaWZpYyBwYWdlLlxuICAgKiBAc2VlIFN1cnZleVBhZ2UucXVlc3Rpb25zT3JkZXJcbiAgICovXG4gIHB1YmxpYyBnZXQgcXVlc3Rpb25zT3JkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInF1ZXN0aW9uc09yZGVyXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcXVlc3Rpb25zT3JkZXIodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJxdWVzdGlvbnNPcmRlclwiLCB2YWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaW5wdXQgZm9jdXMgdG8gdGhlIGZpcnN0IHF1ZXN0aW9uIHdpdGggdGhlIGlucHV0LlxuICAgKi9cbiAgcHVibGljIGZvY3VzRmlyc3RRdWVzdGlvbigpIHtcbiAgICB2YXIgcGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgaWYgKHBhZ2UpIHtcbiAgICAgIHBhZ2Uuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgIHBhZ2UuZm9jdXNGaXJzdFF1ZXN0aW9uKCk7XG4gICAgfVxuICB9XG4gIHNjcm9sbFRvVG9wT25QYWdlQ2hhbmdlKCkge1xuICAgIHZhciBwYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcbiAgICBpZiAoIXBhZ2UpIHJldHVybjtcbiAgICBwYWdlLnNjcm9sbFRvVG9wKCk7XG4gICAgaWYgKHRoaXMuZm9jdXNGaXJzdFF1ZXN0aW9uQXV0b21hdGljKSB7XG4gICAgICBwYWdlLmZvY3VzRmlyc3RRdWVzdGlvbigpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBzdXJ2ZXkgc3RhdGU6ICdsb2FkaW5nJyAtIGxvYWRpbmcgZnJvbSB0aGUganNvbiwgJ2NvbXBsZXRlZCcgLSBhIHVzZXIgaGFzIGNvbXBsZXRlZCB0aGUgc3VydmV5LFxuICAgKiAnc3RhcnRpbmcnIC0gdGhlIHN0YXJ0ZWQgcGFnZSBpcyBzaG93aW5nLCBydW5uaW5nJyAtIGEgdXNlciBhbnN3ZXJzIGEgcXVlc3Rpb25zIHJpZ2h0IG5vdywgJ2VtcHR5JyAtIHRoZXJlIGlzIG5vdGhpbmcgdG8gc2hvdyBpbiB0aGUgY3VycmVudCBzdXJ2ZXkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN0YXRlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nKSByZXR1cm4gXCJsb2FkaW5nXCI7XG4gICAgaWYgKHRoaXMuaXNDb21wbGV0ZWQpIHJldHVybiBcImNvbXBsZXRlZFwiO1xuICAgIGlmICh0aGlzLmlzQ29tcGxldGVkQmVmb3JlKSByZXR1cm4gXCJjb21wbGV0ZWRiZWZvcmVcIjtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5pc0Rlc2lnbk1vZGUgJiZcbiAgICAgIHRoaXMuaXNFZGl0TW9kZSAmJlxuICAgICAgdGhpcy5pc1N0YXJ0ZWRTdGF0ZSAmJlxuICAgICAgdGhpcy5zdGFydGVkUGFnZVxuICAgIClcbiAgICAgIHJldHVybiBcInN0YXJ0aW5nXCI7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPyBcInJ1bm5pbmdcIiA6IFwiZW1wdHlcIjtcbiAgfVxuICBwcml2YXRlIGdldCBpc0NvbXBsZXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaXNDb21wbGV0ZWRcIiwgZmFsc2UpO1xuICB9XG4gIHByaXZhdGUgc2V0IGlzQ29tcGxldGVkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlzQ29tcGxldGVkXCIsIHZhbCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgaXNTdGFydGVkU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImlzU3RhcnRlZFN0YXRlXCIsIGZhbHNlKTtcbiAgfVxuICBwcml2YXRlIHNldCBpc1N0YXJ0ZWRTdGF0ZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpc1N0YXJ0ZWRTdGF0ZVwiLCB2YWwpO1xuICB9XG4gIHByaXZhdGUgZ2V0IGlzQ29tcGxldGVkQmVmb3JlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJpc0NvbXBsZXRlZEJlZm9yZVwiLCBmYWxzZSk7XG4gIH1cbiAgcHJpdmF0ZSBzZXQgaXNDb21wbGV0ZWRCZWZvcmUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaXNDb21wbGV0ZWRCZWZvcmVcIiwgdmFsKTtcbiAgfVxuICBwcml2YXRlIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImlzTG9hZGluZ1wiLCBmYWxzZSk7XG4gIH1cbiAgcHJpdmF0ZSBzZXQgaXNMb2FkaW5nKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlzTG9hZGluZ1wiLCB2YWwpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb21wbGV0ZWRTdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbXBsZXRlZFN0YXRlVmFsdWU7XG4gIH1cbiAgZ2V0IGNvbXBsZXRlZFN0YXRlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbXBsZXRlZFN0YXRlVGV4dFZhbHVlO1xuICB9XG4gIHByb3RlY3RlZCBzZXRDb21wbGV0ZWRTdGF0ZSh2YWx1ZTogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbXBsZXRlZFN0YXRlVmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIGlmICh2YWx1ZSA9PSBcInNhdmluZ1wiKSB0ZXh0ID0gdGhpcy5nZXRMb2NTdHJpbmcoXCJzYXZpbmdEYXRhXCIpO1xuICAgICAgaWYgKHZhbHVlID09IFwiZXJyb3JcIikgdGV4dCA9IHRoaXMuZ2V0TG9jU3RyaW5nKFwic2F2aW5nRGF0YUVycm9yXCIpO1xuICAgICAgaWYgKHZhbHVlID09IFwic3VjY2Vzc1wiKSB0ZXh0ID0gdGhpcy5nZXRMb2NTdHJpbmcoXCJzYXZpbmdEYXRhU3VjY2Vzc1wiKTtcbiAgICB9XG4gICAgdGhpcy5jb21wbGV0ZWRTdGF0ZVRleHRWYWx1ZSA9IHRleHQ7XG4gIH1cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBzdXJ2ZXkgZGF0YSBhbmQgc3RhdGUuIElmIHRoZSBzdXJ2ZXkgaGFzIGEgJ2NvbXBsZXRlZCcgc3RhdGUsIGl0IHdpbGwgaGF2ZSBhICdydW5uaW5nJyBzdGF0ZS5cbiAgICogQHBhcmFtIGNsZWFyRGF0YSBjbGVhciB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZ290b0ZpcnN0UGFnZSBtYWtlIHRoZSBmaXJzdCBwYWdlIGFzIGEgY3VycmVudCBwYWdlLlxuICAgKiBAc2VlIGRhdGFcbiAgICogQHNlZSBzdGF0ZVxuICAgKiBAc2VlIGN1cnJlbnRQYWdlXG4gICAqL1xuICBwdWJsaWMgY2xlYXIoY2xlYXJEYXRhOiBib29sZWFuID0gdHJ1ZSwgZ290b0ZpcnN0UGFnZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAoY2xlYXJEYXRhKSB7XG4gICAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgICAgdGhpcy52YXJpYWJsZXNIYXNoID0ge307XG4gICAgfVxuICAgIHRoaXMudGltZVNwZW50ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMucGFnZXNbaV0udGltZVNwZW50ID0gMDtcbiAgICAgIHRoaXMucGFnZXNbaV0uc2V0V2FzU2hvd24oZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLmlzQ29tcGxldGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc0NvbXBsZXRlZEJlZm9yZSA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc1N0YXJ0ZWRTdGF0ZSA9IHRoaXMuZmlyc3RQYWdlSXNTdGFydGVkO1xuICAgIGlmIChnb3RvRmlyc3RQYWdlICYmIHRoaXMudmlzaWJsZVBhZ2VDb3VudCA+IDApIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnZpc2libGVQYWdlc1swXTtcbiAgICB9XG4gICAgaWYgKGNsZWFyRGF0YSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZXNXaXRoRGVmYXVsdHMoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIG1lcmdlVmFsdWVzKHNyYzogYW55LCBkZXN0OiBhbnkpIHtcbiAgICBpZiAoIWRlc3QgfHwgIXNyYykgcmV0dXJuO1xuICAgIGZvciAodmFyIGtleSBpbiBzcmMpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHNyY1trZXldO1xuICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoIWRlc3Rba2V5XSkgZGVzdFtrZXldID0ge307XG4gICAgICAgIHRoaXMubWVyZ2VWYWx1ZXModmFsdWUsIGRlc3Rba2V5XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXN0W2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZXNXaXRoRGVmYXVsdHMoKSB7XG4gICAgaWYgKHRoaXMuaXNEZXNpZ25Nb2RlIHx8IHRoaXMuaXNMb2FkaW5nKSByZXR1cm47XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5wYWdlc1tpXS5xdWVzdGlvbnM7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHF1ZXN0aW9ucy5sZW5ndGg7IGorKykge1xuICAgICAgICBxdWVzdGlvbnNbal0udXBkYXRlVmFsdWVXaXRoRGVmYXVsdHMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIHVwZGF0ZUN1c3RvbVdpZGdldHMocGFnZTogUGFnZU1vZGVsKSB7XG4gICAgaWYgKCFwYWdlKSByZXR1cm47XG4gICAgcGFnZS51cGRhdGVDdXN0b21XaWRnZXRzKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGN1cnJlbnRQYWdlQ2hhbmdpbmcobmV3VmFsdWU6IFBhZ2VNb2RlbCwgb2xkVmFsdWU6IFBhZ2VNb2RlbCkge1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgb2xkQ3VycmVudFBhZ2U6IG9sZFZhbHVlLFxuICAgICAgbmV3Q3VycmVudFBhZ2U6IG5ld1ZhbHVlLFxuICAgICAgYWxsb3dDaGFuZ2luZzogdHJ1ZVxuICAgIH07XG4gICAgdGhpcy5vbkN1cnJlbnRQYWdlQ2hhbmdpbmcuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICByZXR1cm4gb3B0aW9ucy5hbGxvd0NoYW5naW5nO1xuICB9XG4gIHByb3RlY3RlZCBjdXJyZW50UGFnZUNoYW5nZWQobmV3VmFsdWU6IFBhZ2VNb2RlbCwgb2xkVmFsdWU6IFBhZ2VNb2RlbCkge1xuICAgIHRoaXMub25DdXJyZW50UGFnZUNoYW5nZWQuZmlyZSh0aGlzLCB7XG4gICAgICBvbGRDdXJyZW50UGFnZTogb2xkVmFsdWUsXG4gICAgICBuZXdDdXJyZW50UGFnZTogbmV3VmFsdWVcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcHJvZ3Jlc3MgdGhhdCBhIHVzZXIgbWFkZSBieSBhbnN3ZXJpbmcgb24gdGhlIHN1cnZleS5cbiAgICovXG4gIHB1YmxpYyBnZXRQcm9ncmVzcygpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID09IG51bGwpIHJldHVybiAwO1xuICAgIGlmICh0aGlzLnByb2dyZXNzQmFyVHlwZSA9PT0gXCJxdWVzdGlvbnNcIikge1xuICAgICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0QWxsUXVlc3Rpb25zKCk7XG4gICAgICB2YXIgYW5zd2VyZWRRdWVzdGlvbnNDb3VudCA9IHF1ZXN0aW9ucy5yZWR1Y2UoXG4gICAgICAgIChhOiBudW1iZXIsIGI6IFF1ZXN0aW9uKSA9PiBhICsgKGIuaXNFbXB0eSgpID8gMCA6IDEpLFxuICAgICAgICAwXG4gICAgICApO1xuICAgICAgcmV0dXJuIE1hdGguY2VpbCgoYW5zd2VyZWRRdWVzdGlvbnNDb3VudCAqIDEwMCkgLyBxdWVzdGlvbnMubGVuZ3RoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvZ3Jlc3NCYXJUeXBlID09PSBcImNvcnJlY3RRdWVzdGlvbnNcIikge1xuICAgICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0QWxsUXVlc3Rpb25zKCk7XG4gICAgICB2YXIgY29ycmVjdEFuc3dlcnNDb3VudCA9IHRoaXMuZ2V0Q29ycmVjdGVkQW5zd2VyQ291bnQoKTtcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoKGNvcnJlY3RBbnN3ZXJzQ291bnQgKiAxMDApIC8gcXVlc3Rpb25zLmxlbmd0aCk7XG4gICAgfVxuICAgIHZhciBpbmRleCA9IHRoaXMudmlzaWJsZVBhZ2VzLmluZGV4T2YodGhpcy5jdXJyZW50UGFnZSkgKyAxO1xuICAgIHJldHVybiBNYXRoLmNlaWwoKGluZGV4ICogMTAwKSAvIHRoaXMudmlzaWJsZVBhZ2VDb3VudCk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBuYXZpZ2F0aW9uIGJ1dHRvbnM6ICdQcmV2JywgJ05leHQnIG9yICdDb21wbGV0ZScgYXJlIHNob3duLlxuICAgKi9cbiAgcHVibGljIGdldCBpc05hdmlnYXRpb25CdXR0b25zU2hvd2luZygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzRGVzaWduTW9kZSkgcmV0dXJuIFwibm9uZVwiO1xuICAgIHZhciBwYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcbiAgICBpZiAoIXBhZ2UpIHJldHVybiBcIm5vbmVcIjtcbiAgICBpZiAocGFnZS5uYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHkgPT09IFwic2hvd1wiKSB7XG4gICAgICByZXR1cm4gXCJib3R0b21cIjtcbiAgICB9XG4gICAgaWYgKHBhZ2UubmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5ID09PSBcImhpZGVcIikge1xuICAgICAgcmV0dXJuIFwibm9uZVwiO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zaG93TmF2aWdhdGlvbkJ1dHRvbnM7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3VydmV5IGluIHRoZSBlZGl0IG1vZGUuXG4gICAqIEBzZWUgbW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBpc0VkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT0gXCJlZGl0XCI7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3VydmV5IGluIHRoZSBkaXNwbGF5IG1vZGUuXG4gICAqIEBzZWUgbW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBpc0Rpc3BsYXlNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT0gXCJkaXNwbGF5XCI7XG4gIH1cbiAgcHVibGljIGdldCBpc1VwZGF0ZVZhbHVlVGV4dE9uVHlwaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRleHRVcGRhdGVNb2RlID09IFwib25UeXBpbmdcIjtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzdXJ2ZXkgaW4gdGhlIGRlc2lnbiBtb2RlLiBJdCBpcyB1c2VkIGJ5IFN1cnZleUpTIEVkaXRvclxuICAgKiBAc2VlIHNldERlc2lnbk1vZGVcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNEZXNpZ25Nb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0Rlc2lnbk1vZGU7XG4gIH1cbiAgcHJpdmF0ZSBfaXNEZXNpZ25Nb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBDYWxsIGl0IHRvIHNldCB0aGUgc3VydmV5IGludG8gdGhlIGRlc2lnbiBtb2RlLlxuICAgKiBAcGFyYW0gdmFsdWUgdXNlIHRydWUgdG8gc2V0IHRoZSBzdXJ2ZXkgaW50byB0aGUgZGVzaWduIG1vZGUuXG4gICAqL1xuICBwdWJsaWMgc2V0RGVzaWduTW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzRGVzaWduTW9kZSA9IHZhbHVlO1xuICAgIHRoaXMub25Jc1NpbmdsZVBhZ2VDaGFuZ2VkKCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUsIHRvIHNob3cgYWxsIGVsZW1lbnRzIGluIHRoZSBzdXJ2ZXksIHJlZ2FyZGxlc3MgdGhlaXIgdmlzaWJpbGl0eS4gSXQgaXMgZmFsc2UgYnkgZGVmYXVsdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd0ludmlzaWJsZUVsZW1lbnRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93SW52aXNpYmxlRWxlbWVudHNcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd0ludmlzaWJsZUVsZW1lbnRzKHZhbDogYm9vbGVhbikge1xuICAgIHZhciB2aXNQYWdlcyA9IHRoaXMudmlzaWJsZVBhZ2VzO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dJbnZpc2libGVFbGVtZW50c1wiLCB2YWwpO1xuICAgIHRoaXMudXBkYXRlQWxsRWxlbWVudHNWaXNpYmlsaXR5KHZpc1BhZ2VzKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZUFsbEVsZW1lbnRzVmlzaWJpbGl0eSh2aXNQYWdlczogQXJyYXk8UGFnZU1vZGVsPikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHBhZ2UgPSB0aGlzLnBhZ2VzW2ldO1xuICAgICAgcGFnZS51cGRhdGVFbGVtZW50VmlzaWJpbGl0eSgpO1xuICAgICAgaWYgKHZpc1BhZ2VzLmluZGV4T2YocGFnZSkgPiAtMSAhPSBwYWdlLmlzVmlzaWJsZSkge1xuICAgICAgICB0aGlzLm9uUGFnZVZpc2libGVDaGFuZ2VkLmZpcmUodGhpcywge1xuICAgICAgICAgIHBhZ2U6IHBhZ2UsXG4gICAgICAgICAgdmlzaWJsZTogcGFnZS5pc1Zpc2libGVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgYXJlSW52aXNpYmxlRWxlbWVudHNTaG93aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGVzaWduTW9kZSB8fCB0aGlzLnNob3dJbnZpc2libGVFbGVtZW50cztcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlLCBpZiBhIHVzZXIgaGFzIGFscmVhZHkgY29tcGxldGVkIHRoZSBzdXJ2ZXkgb24gdGhpcyBicm93c2VyIGFuZCB0aGVyZSBpcyBhIGNvb2tpZSBhYm91dCBpdC4gU3VydmV5IGdvZXMgdG8gJ2NvbXBsZXRlZCcgc3RhdGUgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZS5cbiAgICogQHNlZSBjb29raWVOYW1lXG4gICAqIEBzZWUgc2V0Q29va2llXG4gICAqIEBzZWUgZGVsZXRlQ29va2llXG4gICAqIEBzZWUgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzQ29va2llKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5jb29raWVOYW1lKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGNvb2tpZXMgPSBkb2N1bWVudC5jb29raWU7XG4gICAgcmV0dXJuIGNvb2tpZXMgJiYgY29va2llcy5pbmRleE9mKHRoaXMuY29va2llTmFtZSArIFwiPXRydWVcIikgPiAtMTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoZSBjb29raWUgd2l0aCBjb29raWVOYW1lIGluIHRoZSBicm93c2VyLiBJdCBpcyBkb25lIGF1dG9tYXRpY2FsbHkgb24gc3VydmV5IGNvbXBsZXRlIGlmIGNvb2tpZU5hbWUgaXMgbm90IGVtcHR5LlxuICAgKiBAc2VlIGNvb2tpZU5hbWVcbiAgICogQHNlZSBoYXNDb29raWVcbiAgICogQHNlZSBkZWxldGVDb29raWVcbiAgICovXG4gIHB1YmxpYyBzZXRDb29raWUoKSB7XG4gICAgaWYgKCF0aGlzLmNvb2tpZU5hbWUpIHJldHVybjtcbiAgICBkb2N1bWVudC5jb29raWUgPVxuICAgICAgdGhpcy5jb29raWVOYW1lICsgXCI9dHJ1ZTsgZXhwaXJlcz1GcmksIDMxIERlYyA5OTk5IDA6MDowIEdNVFwiO1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIGNvb2tpZSB3aXRoIGNvb2tpZU5hbWUgaW4gdGhlIGJyb3dzZXIuXG4gICAqIEBzZWUgY29va2llTmFtZVxuICAgKiBAc2VlIGhhc0Nvb2tpZVxuICAgKiBAc2VlIHNldENvb2tpZVxuICAgKi9cbiAgcHVibGljIGRlbGV0ZUNvb2tpZSgpIHtcbiAgICBpZiAoIXRoaXMuY29va2llTmFtZSkgcmV0dXJuO1xuICAgIGRvY3VtZW50LmNvb2tpZSA9IHRoaXMuY29va2llTmFtZSArIFwiPTtcIjtcbiAgfVxuICAvKipcbiAgICogU2V0IGl0IHRvIHRydWUsIHRvIGlnbm9yZSB2YWxpZGF0aW9uLCBsaWtlIHJlcXVyaWVkIHF1ZXN0aW9ucyBhbmQgb3RoZXJzLCBvbiBuZXh0UGFnZSBhbmQgY29tcGxldGVMYXN0UGFnZSBmdW5jdGlvbnMuXG4gICAqIEBzZWUgbmV4dFBhZ2VcbiAgICogQHNlZSBjb21wbGV0ZUxhc3RQYWdlXG4gICAqIEBzZWUgbW9kZVxuICAgKi9cbiAgcHVibGljIGlnbm9yZVZhbGlkYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIENhbGwgaXQgdG8gZ28gdG8gdGhlIG5leHQgcGFnZS4gSXQgcmV0dXJucyBmYWxzZSwgaWYgaXQgaXMgdGhlIGxhc3QgcGFnZS4gSWYgdGhlcmUgaXMgYW4gZXJyb3IsIGZvciBleGFtcGxlIHJlcXVpcmVkIHF1ZXN0aW9uIGlzIGVtcHR5LCB0aGUgZnVuY3Rpb24gcmV0dXJucyBmYWxzZSBhcyB3ZWxsLlxuICAgKiBAc2VlIGlzQ3VycmVudFBhZ2VIYXNFcnJvcnNcbiAgICogQHNlZSBwcmV2UGFnZVxuICAgKiBAc2VlIGNvbXBsZXRlTGFzdFBhZ2VcbiAgICovXG4gIHB1YmxpYyBuZXh0UGFnZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0xhc3RQYWdlKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuZG9DdXJyZW50UGFnZUNvbXBsZXRlKGZhbHNlKTtcbiAgfVxuICBwcml2YXRlIGhhc0Vycm9yc09uTmF2aWdhdGUoZG9Db21wbGV0ZTogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlnbm9yZVZhbGlkYXRpb24gfHwgIXRoaXMuaXNFZGl0TW9kZSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmNoZWNrRXJyb3JzTW9kZSA9PSBcIm9uQ29tcGxldGVcIikge1xuICAgICAgaWYgKCF0aGlzLmlzTGFzdFBhZ2UpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmhhc0Vycm9ycyh0cnVlLCB0cnVlKSkgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlzQ3VycmVudFBhZ2VIYXNFcnJvcnMpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jaGVja0ZvckFzeW5jUXVlc3Rpb25WYWxpZGF0aW9uKGRvQ29tcGxldGUpO1xuICB9XG4gIHByaXZhdGUgYXN5bmNWYWxpZGF0aW9uUXVlc2l0b25zOiBBcnJheTxRdWVzdGlvbj47XG4gIHByaXZhdGUgY2hlY2tGb3JBc3luY1F1ZXN0aW9uVmFsaWRhdGlvbihkb0NvbXBsZXRlOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jbGVhckFzeW5jVmFsaWRhdGlvblF1ZXNpdG9ucygpO1xuICAgIHZhciBxdWVzdGlvbnM6IEFycmF5PFF1ZXN0aW9uPiA9IHRoaXMuY3VycmVudFBhZ2UucXVlc3Rpb25zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocXVlc3Rpb25zW2ldLmlzUnVubmluZ1ZhbGlkYXRvcnMpIHtcbiAgICAgICAgcXVlc3Rpb25zW2ldLm9uQ29tcGxldGVkQXN5bmNWYWxpZGF0b3JzID0gKGhhc0Vycm9yczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgIHRoaXMub25Db21wbGV0ZWRBc3luY1F1ZXN0aW9uVmFsaWRhdG9ycyhkb0NvbXBsZXRlLCBoYXNFcnJvcnMpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmFzeW5jVmFsaWRhdGlvblF1ZXNpdG9ucy5wdXNoKHF1ZXN0aW9uc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFzeW5jVmFsaWRhdGlvblF1ZXNpdG9ucy5sZW5ndGggPiAwO1xuICB9XG4gIHByaXZhdGUgY2xlYXJBc3luY1ZhbGlkYXRpb25RdWVzaXRvbnMoKSB7XG4gICAgaWYgKCEhdGhpcy5hc3luY1ZhbGlkYXRpb25RdWVzaXRvbnMpIHtcbiAgICAgIHZhciBhc3luUXVlc3Rpb25zID0gdGhpcy5hc3luY1ZhbGlkYXRpb25RdWVzaXRvbnM7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFzeW5RdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYXN5blF1ZXN0aW9uc1tpXS5vbkNvbXBsZXRlZEFzeW5jVmFsaWRhdG9ycyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYXN5bmNWYWxpZGF0aW9uUXVlc2l0b25zID0gW107XG4gIH1cbiAgcHJpdmF0ZSBvbkNvbXBsZXRlZEFzeW5jUXVlc3Rpb25WYWxpZGF0b3JzKFxuICAgIGRvQ29tcGxldGU6IGJvb2xlYW4sXG4gICAgaGFzRXJyb3JzOiBib29sZWFuXG4gICkge1xuICAgIGlmIChoYXNFcnJvcnMpIHtcbiAgICAgIHRoaXMuY2xlYXJBc3luY1ZhbGlkYXRpb25RdWVzaXRvbnMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGFzeW5RdWVzdGlvbnMgPSB0aGlzLmFzeW5jVmFsaWRhdGlvblF1ZXNpdG9ucztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFzeW5RdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhc3luUXVlc3Rpb25zW2ldLmlzUnVubmluZ1ZhbGlkYXRvcnMpIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kb0N1cnJlbnRQYWdlQ29tcGxldGVDb3JlKGRvQ29tcGxldGUpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUsIGlmIHRoZXJlIGlzIGFueSBlcnJvciBvbiB0aGUgY3VycmVudCBwYWdlLiBGb3IgZXhhbXBsZSwgdGhlIHJlcXVpcmVkIHF1ZXN0aW9uIGlzIGVtcHR5IG9yIGEgcXVlc3Rpb24gdmFsaWRhdGlvbiBpcyBmYWlsZWQuXG4gICAqIEBzZWUgbmV4dFBhZ2VcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNDdXJyZW50UGFnZUhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0lzQ3VycmVudFBhZ2VIYXNFcnJvcnMoKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlLCBpZiB0aGVyZSBpcyBhbiBlcnJvciBvbiBhbnkgdmlzaWJsZSBwYWdlXG4gICAqIEBwYXJhbSBmaXJlQ2FsbGJhY2sgc2V0IGl0IHRvIHRydWUsIHRvIHNob3cgZXJyb3JzIGluIFVJXG4gICAqIEBwYXJhbSBmb2N1c09uRmlyc3RFcnJvciBzZXQgaXQgdG8gdHJ1ZSB0byBmb2N1cyBvbiB0aGUgZmlyc3QgcXVlc3Rpb24gdGhhdCBkb2Vzbid0IHBhc3MgdGhlIHZhbGlkYXRpb24gYW5kIG1ha2UgdGhlIHBhZ2UsIHdoZXJlIHF1ZXN0aW9uIGxvY2F0ZWQsIHRoZSBjdXJyZW50LlxuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICBmaXJlQ2FsbGJhY2s6IGJvb2xlYW4gPSB0cnVlLFxuICAgIGZvY3VzT25GaXJzdEVycm9yOiBib29sZWFuID0gZmFsc2VcbiAgKTogYm9vbGVhbiB7XG4gICAgdmFyIHZpc1BhZ2VzID0gdGhpcy52aXNpYmxlUGFnZXM7XG4gICAgdmFyIGZpcnN0RXJyb3JQYWdlID0gbnVsbDtcbiAgICB2YXIgcmVzID0gZmFsc2U7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2aXNQYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHZpc1BhZ2VzW2ldLmhhc0Vycm9ycyhmaXJlQ2FsbGJhY2ssIGZvY3VzT25GaXJzdEVycm9yKSkge1xuICAgICAgICBpZiAoIWZpcnN0RXJyb3JQYWdlKSBmaXJzdEVycm9yUGFnZSA9IHZpc1BhZ2VzW2ldO1xuICAgICAgICByZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZm9jdXNPbkZpcnN0RXJyb3IgJiYgISFmaXJzdEVycm9yUGFnZSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IGZpcnN0RXJyb3JQYWdlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgY2hlY2tJc0N1cnJlbnRQYWdlSGFzRXJyb3JzKFxuICAgIGlzRm9jdXNlT25GaXJzdEVycm9yOiBib29sZWFuID0gdW5kZWZpbmVkXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChpc0ZvY3VzZU9uRmlyc3RFcnJvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpc0ZvY3VzZU9uRmlyc3RFcnJvciA9IHRoaXMuZm9jdXNPbkZpcnN0RXJyb3I7XG4gICAgfVxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID09IG51bGwpIHJldHVybiB0cnVlO1xuICAgIHZhciByZXMgPSB0aGlzLmN1cnJlbnRQYWdlLmhhc0Vycm9ycyh0cnVlLCBpc0ZvY3VzZU9uRmlyc3RFcnJvcik7XG4gICAgdGhpcy5maXJlVmFsaWRhdGVkRXJyb3JzT25DdXJyZW50UGFnZSgpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBmaXJlVmFsaWRhdGVkRXJyb3JzT25DdXJyZW50UGFnZSgpIHtcbiAgICBpZiAodGhpcy5vblZhbGlkYXRlZEVycm9yc09uQ3VycmVudFBhZ2UuaXNFbXB0eSkgcmV0dXJuO1xuICAgIHZhciBxdWVzdGlvbnNPblBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlLnF1ZXN0aW9ucztcbiAgICB2YXIgcXVlc3Rpb25zID0gbmV3IEFycmF5PFF1ZXN0aW9uPigpO1xuICAgIHZhciBlcnJvcnMgPSBuZXcgQXJyYXk8U3VydmV5RXJyb3I+KCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnNPblBhZ2UubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxID0gcXVlc3Rpb25zT25QYWdlW2ldO1xuICAgICAgaWYgKHEuZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcXVlc3Rpb25zLnB1c2gocSk7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcS5lcnJvcnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBlcnJvcnMucHVzaChxLmVycm9yc1tqXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vblZhbGlkYXRlZEVycm9yc09uQ3VycmVudFBhZ2UuZmlyZSh0aGlzLCB7XG4gICAgICBxdWVzdGlvbnM6IHF1ZXN0aW9ucyxcbiAgICAgIGVycm9yczogZXJyb3JzXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENhbGwgaXQgdG8gZ28gdG8gdGhlIHByZXZpb3VzIHBhZ2UuIEl0IHJldHVybnMgZmFsc2UgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgZmlyc3QgcGFnZSBhbHJlYWR5LiBJdCBkb2Vzbid0IHBlcmZvcm0gYW55IGNoZWNrcywgcmVxdWlyZWQgcXVlc3Rpb25zIGNhbiBiZSBlbXB0eS5cbiAgICogQHNlZSBpc0ZpcnN0UGFnZVxuICAgKi9cbiAgcHVibGljIHByZXZQYWdlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzRmlyc3RQYWdlKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHZQYWdlcyA9IHRoaXMudmlzaWJsZVBhZ2VzO1xuICAgIHZhciBpbmRleCA9IHZQYWdlcy5pbmRleE9mKHRoaXMuY3VycmVudFBhZ2UpO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB2UGFnZXNbaW5kZXggLSAxXTtcbiAgfVxuICAvKipcbiAgICogQ2FsbCBpdCB0byBjb21wbGV0ZSB0aGUgc3VydmV5LCBpZiB0aGUgY3VycmVudCBwYWdlIGlzIHRoZSBsYXN0IG9uZS4gSXQgcmV0dXJucyBmYWxzZSBpZiB0aGVyZSBpcyBhbiBlcnJvciBvbiB0aGUgcGFnZS4gSWYgdGhlcmUgaXMgbm8gZXJyb3JzIG9uIHRoZSBwYWdlLCBpdCBjYWxscyBkb0NvbXBsZXRlIGFuZCByZXR1cm5zIHRydWUuXG4gICAqIEBzZWUgaXNDdXJyZW50UGFnZUhhc0Vycm9yc1xuICAgKiBAc2VlIG5leHRQYWdlXG4gICAqIEBzZWUgZG9Db21wbGV0ZVxuICAgKi9cbiAgcHVibGljIGNvbXBsZXRlTGFzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG9DdXJyZW50UGFnZUNvbXBsZXRlKHRydWUpO1xuICB9XG4gIHByb3RlY3RlZCBkb0N1cnJlbnRQYWdlQ29tcGxldGUoZG9Db21wbGV0ZTogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmhhc0Vycm9yc09uTmF2aWdhdGUoZG9Db21wbGV0ZSkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5kb0N1cnJlbnRQYWdlQ29tcGxldGVDb3JlKGRvQ29tcGxldGUpO1xuICB9XG4gIHByaXZhdGUgZG9DdXJyZW50UGFnZUNvbXBsZXRlQ29yZShkb0NvbXBsZXRlOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZG9TZXJ2ZXJWYWxpZGF0aW9uKCkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoZG9Db21wbGV0ZSkge1xuICAgICAgdGhpcy5kb0NvbXBsZXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9OZXh0UGFnZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSwgaWYgeW91IHdhbnQgdG8gY29tYmluZSBhbGwgeW91ciBwYWdlcyBpbiBvbmUgcGFnZS4gUGFnZXMgd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBwYW5lbHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzU2luZ2xlUGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaXNTaW5nbGVQYWdlXCIsIGZhbHNlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzU2luZ2xlUGFnZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpc1NpbmdsZVBhZ2VcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSwgdG8gbWFrZSB0aGUgZmlyc3QgcGFnZSB5b3VyIHN0YXJ0aW5nIHBhZ2UuIFRoZSBlbmQtdXNlciBjb3VsZCBub3QgY29tZWJhY2sgdG8gdGhlIHN0YXJ0IHBhZ2UgYW5kIGl0IGlzIG5vdCBjb3VudCBpbiB0aGUgcHJvZ3Jlc3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZpcnN0UGFnZUlzU3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiZmlyc3RQYWdlSXNTdGFydGVkXCIsIGZhbHNlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGZpcnN0UGFnZUlzU3RhcnRlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJmaXJzdFBhZ2VJc1N0YXJ0ZWRcIiwgdmFsKTtcbiAgfVxuICBpc1BhZ2VTdGFydGVkKHBhZ2U6IElQYWdlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZmlyc3RQYWdlSXNTdGFydGVkICYmIHRoaXMucGFnZXMubGVuZ3RoID4gMCAmJiB0aGlzLnBhZ2VzWzBdID09PSBwYWdlXG4gICAgKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25GaXJzdFBhZ2VJc1N0YXJ0ZWRDaGFuZ2VkKCkge1xuICAgIGlmICh0aGlzLnBhZ2VzLmxlbmd0aCA9PSAwKSByZXR1cm47XG4gICAgdGhpcy5pc1N0YXJ0ZWRTdGF0ZSA9IHRoaXMuZmlyc3RQYWdlSXNTdGFydGVkO1xuICAgIHRoaXMucGFnZVZpc2liaWxpdHlDaGFuZ2VkKHRoaXMucGFnZXNbMF0sICF0aGlzLmZpcnN0UGFnZUlzU3RhcnRlZCk7XG4gIH1cbiAgb3JpZ2lvbmFsUGFnZXM6IGFueSA9IG51bGw7XG4gIHByb3RlY3RlZCBvbklzU2luZ2xlUGFnZUNoYW5nZWQoKSB7XG4gICAgaWYgKCF0aGlzLmlzU2luZ2xlUGFnZSB8fCB0aGlzLmlzRGVzaWduTW9kZSkge1xuICAgICAgaWYgKHRoaXMub3JpZ2lvbmFsUGFnZXMpIHtcbiAgICAgICAgdGhpcy5xdWVzdGlvbkhhc2hlc0NsZWFyKCk7XG4gICAgICAgIHRoaXMucGFnZXMuc3BsaWNlKDAsIHRoaXMucGFnZXMubGVuZ3RoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9yaWdpb25hbFBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5wYWdlcy5wdXNoKHRoaXMub3JpZ2lvbmFsUGFnZXNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLm9yaWdpb25hbFBhZ2VzID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVzdGlvbkhhc2hlc0NsZWFyKCk7XG4gICAgICB0aGlzLm9yaWdpb25hbFBhZ2VzID0gdGhpcy5wYWdlcy5zbGljZSgwLCB0aGlzLnBhZ2VzLmxlbmd0aCk7XG4gICAgICB2YXIgc3RhcnRJbmRleCA9IHRoaXMuZmlyc3RQYWdlSXNTdGFydGVkID8gMSA6IDA7XG4gICAgICBzdXBlci5zdGFydExvYWRpbmdGcm9tSnNvbigpO1xuICAgICAgdmFyIHNpbmdsZVBhZ2UgPSB0aGlzLmNyZWF0ZVNpbmdsZVBhZ2Uoc3RhcnRJbmRleCk7XG4gICAgICB2YXIgZGVsZXRlZExlbiA9IHRoaXMucGFnZXMubGVuZ3RoIC0gc3RhcnRJbmRleDtcbiAgICAgIHRoaXMucGFnZXMuc3BsaWNlKHN0YXJ0SW5kZXgsIGRlbGV0ZWRMZW4sIHNpbmdsZVBhZ2UpO1xuICAgICAgc3VwZXIuZW5kTG9hZGluZ0Zyb21Kc29uKCk7XG4gICAgICBzaW5nbGVQYWdlLmVuZExvYWRpbmdGcm9tSnNvbigpO1xuICAgICAgc2luZ2xlUGFnZS5zZXRTdXJ2ZXlJbXBsKHRoaXMpO1xuICAgICAgdGhpcy5kb0VsZW1lbnRzT25Mb2FkKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmlzaWJsZUluZGV4ZXMoKTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZVNpbmdsZVBhZ2Uoc3RhcnRJbmRleDogbnVtYmVyKTogUGFnZU1vZGVsIHtcbiAgICB2YXIgc2luZ2xlID0gdGhpcy5jcmVhdGVOZXdQYWdlKFwiYWxsXCIpO1xuICAgIHNpbmdsZS5zZXRTdXJ2ZXlJbXBsKHRoaXMpO1xuICAgIGZvciAodmFyIGkgPSBzdGFydEluZGV4OyBpIDwgdGhpcy5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHBhZ2UgPSB0aGlzLnBhZ2VzW2ldO1xuICAgICAgdmFyIHBhbmVsID0gU2VyaWFsaXplci5jcmVhdGVDbGFzcyhcInBhbmVsXCIpO1xuICAgICAgc2luZ2xlLmFkZFBhbmVsKHBhbmVsKTtcbiAgICAgIHZhciBqc29uID0gbmV3IEpzb25PYmplY3QoKS50b0pzb25PYmplY3QocGFnZSk7XG4gICAgICBuZXcgSnNvbk9iamVjdCgpLnRvT2JqZWN0KGpzb24sIHBhbmVsKTtcbiAgICAgIGlmICghdGhpcy5zaG93UGFnZVRpdGxlcykge1xuICAgICAgICBwYW5lbC50aXRsZSA9IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGU7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBwYWdlIGlzIHRoZSBmaXJzdCBvbmUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzRmlyc3RQYWdlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID09IG51bGwpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiB0aGlzLnZpc2libGVQYWdlcy5pbmRleE9mKHRoaXMuY3VycmVudFBhZ2UpID09IDA7XG4gIH1cbiAgcHVibGljIGdldCBpc1Nob3dQcmV2QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzRmlyc3RQYWdlIHx8ICF0aGlzLnNob3dQcmV2QnV0dG9uKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHBhZ2UgPSB0aGlzLnZpc2libGVQYWdlc1t0aGlzLmN1cnJlbnRQYWdlTm8gLSAxXTtcbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlTWF4VGltZVRvRmluaXNoKHBhZ2UpIDw9IDA7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBwYWdlIGlzIHRoZSBsYXN0IG9uZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNMYXN0UGFnZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA9PSBudWxsKSByZXR1cm4gdHJ1ZTtcbiAgICB2YXIgdlBhZ2VzID0gdGhpcy52aXNpYmxlUGFnZXM7XG4gICAgcmV0dXJuIHZQYWdlcy5pbmRleE9mKHRoaXMuY3VycmVudFBhZ2UpID09IHZQYWdlcy5sZW5ndGggLSAxO1xuICB9XG4gIC8qKlxuICAgKiBDYWxsIGl0IHRvIGNvbXBsZXRlIHRoZSBzdXJ2ZXkuIEl0IHdyaXRlcyBjb29raWUgaWYgY29va2llTmFtZSBwcm9wZXJ0eSBpcyBub3QgZW1wdHksIHNldCB0aGUgc3VydmV5IGludG8gJ2NvbXBsZXRlZCcgc3RhdGUsIGZpcmUgb25Db21wbGV0ZSBldmVudCBhbmQgc2VuZFJlc3VsdCBpbnRvIFtkeHN1cnZleS5jb21dKGh0dHA6Ly93d3cuZHhzdXJ2ZXkuY29tKSBzZXJ2aWNlIGlmIHN1cnZleVBvc3RJZCBwcm9wZXJ0eSBpcyBub3QgZW1wdHkuIEl0IGRvZXNuJ3QgcGVyZm9ybSBhbnkgdmFsaWRhdGlvbiwgdW5saWtlIGNvbXBsZXRlTGFzdFBhZ2UgZnVuY3Rpb24uXG4gICAqIEBzZWUgY29va2llTmFtZVxuICAgKiBAc2VlIHN0YXRlXG4gICAqIEBzZWUgb25Db21wbGV0ZVxuICAgKiBAc2VlIHN1cnZleVBvc3RJZFxuICAgKiBAc2VlIGNvbXBsZXRlTGFzdFBhZ2VcbiAgICovXG4gIHB1YmxpYyBkb0NvbXBsZXRlKCkge1xuICAgIHZhciBvbkNvbXBsZXRpbmdPcHRpb25zID0geyBhbGxvd0NvbXBsZXRlOiB0cnVlIH07XG4gICAgdGhpcy5vbkNvbXBsZXRpbmcuZmlyZSh0aGlzLCBvbkNvbXBsZXRpbmdPcHRpb25zKTtcbiAgICBpZiAoIW9uQ29tcGxldGluZ09wdGlvbnMuYWxsb3dDb21wbGV0ZSkgcmV0dXJuO1xuICAgIGxldCBwcmV2aW91c0Nvb2tpZSA9IHRoaXMuaGFzQ29va2llO1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgdGhpcy5zZXRDb21wbGV0ZWQoKTtcbiAgICB0aGlzLmNsZWFyVW51c2VkVmFsdWVzKCk7XG4gICAgdGhpcy5zZXRDb29raWUoKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIG9uQ29tcGxldGVPcHRpb25zID0ge1xuICAgICAgc2hvd0RhdGFTYXZpbmc6IGZ1bmN0aW9uKHRleHQ6IHN0cmluZykge1xuICAgICAgICBzZWxmLnNldENvbXBsZXRlZFN0YXRlKFwic2F2aW5nXCIsIHRleHQpO1xuICAgICAgfSxcbiAgICAgIHNob3dEYXRhU2F2aW5nRXJyb3I6IGZ1bmN0aW9uKHRleHQ6IHN0cmluZykge1xuICAgICAgICBzZWxmLnNldENvbXBsZXRlZFN0YXRlKFwiZXJyb3JcIiwgdGV4dCk7XG4gICAgICB9LFxuICAgICAgc2hvd0RhdGFTYXZpbmdTdWNjZXNzOiBmdW5jdGlvbih0ZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgc2VsZi5zZXRDb21wbGV0ZWRTdGF0ZShcInN1Y2Nlc3NcIiwgdGV4dCk7XG4gICAgICB9LFxuICAgICAgc2hvd0RhdGFTYXZpbmdDbGVhcjogZnVuY3Rpb24odGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHNlbGYuc2V0Q29tcGxldGVkU3RhdGUoXCJcIiwgXCJcIik7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLm9uQ29tcGxldGUuZmlyZSh0aGlzLCBvbkNvbXBsZXRlT3B0aW9ucyk7XG4gICAgaWYgKCFwcmV2aW91c0Nvb2tpZSAmJiB0aGlzLnN1cnZleVBvc3RJZCkge1xuICAgICAgdGhpcy5zZW5kUmVzdWx0KCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBTdGFydCB0aGUgc3VydmV5LiBDaGFuZ2UgdGhlIG1vZGUgZnJvbSBcInN0YXJ0aW5nXCIgdG8gXCJydW5uaW5nXCIuIFlvdSBuZWVkIHRvIGNhbGwgaXQsIGlmIHRoZXJlIGlzIGEgc3RhcnRlZCBwYWdlIGluIHlvdXIgc3VydmV5LCBvdGhlcndpc2UgaXQgZG9lcyBub3RoaW5nLlxuICAgKiBAc2VlIGZpcnN0UGFnZUlzU3RhcnRlZFxuICAgKi9cbiAgcHVibGljIHN0YXJ0KCkge1xuICAgIGlmICghdGhpcy5maXJzdFBhZ2VJc1N0YXJ0ZWQpIHJldHVybjtcbiAgICB0aGlzLmlzU3RhcnRlZFN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5zdGFydFRpbWVyRnJvbVVJKCk7XG4gICAgdGhpcy5vblN0YXJ0ZWQuZmlyZSh0aGlzLCB7fSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSwgaWYgYXQgdGhlIGN1cnJlbnQgbW9tZW50IHRoZSBxdWVzdGlvbiB2YWx1ZXMgb24gdGhlIGN1cnJlbnQgcGFnZSBhcmUgdmFsaWRhdGluZyBvbiB0aGUgc2VydmVyLlxuICAgKiBAc2VlIG9uU2VydmVyVmFsaWRhdGVRdWVzdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNWYWxpZGF0aW5nT25TZXJ2ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImlzVmFsaWRhdGluZ09uU2VydmVyXCIsIGZhbHNlKTtcbiAgfVxuICBwcml2YXRlIHNldElzVmFsaWRhdGluZ09uU2VydmVyKHZhbDogYm9vbGVhbikge1xuICAgIGlmICh2YWwgPT0gdGhpcy5pc1ZhbGlkYXRpbmdPblNlcnZlcikgcmV0dXJuO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImlzVmFsaWRhdGluZ09uU2VydmVyXCIsIHZhbCk7XG4gICAgdGhpcy5vbklzVmFsaWRhdGluZ09uU2VydmVyQ2hhbmdlZCgpO1xuICB9XG4gIHByb3RlY3RlZCBvbklzVmFsaWRhdGluZ09uU2VydmVyQ2hhbmdlZCgpIHt9XG4gIHByb3RlY3RlZCBkb1NlcnZlclZhbGlkYXRpb24oKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMub25TZXJ2ZXJWYWxpZGF0ZVF1ZXN0aW9ucyB8fFxuICAgICAgdGhpcy5vblNlcnZlclZhbGlkYXRlUXVlc3Rpb25zLmlzRW1wdHlcbiAgICApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgZGF0YTogPHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfT57fSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICBzdXJ2ZXk6IHRoaXMsXG4gICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYuY29tcGxldGVTZXJ2ZXJWYWxpZGF0aW9uKG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmN1cnJlbnRQYWdlLnF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5jdXJyZW50UGFnZS5xdWVzdGlvbnNbaV07XG4gICAgICBpZiAoIXF1ZXN0aW9uLnZpc2libGUpIGNvbnRpbnVlO1xuICAgICAgdmFyIHZhbHVlID0gdGhpcy5nZXRWYWx1ZShxdWVzdGlvbi5nZXRWYWx1ZU5hbWUoKSk7XG4gICAgICBpZiAoIXRoaXMuaXNWYWx1ZUVtcHR5KHZhbHVlKSlcbiAgICAgICAgb3B0aW9ucy5kYXRhW3F1ZXN0aW9uLmdldFZhbHVlTmFtZSgpXSA9IHZhbHVlO1xuICAgIH1cbiAgICB0aGlzLnNldElzVmFsaWRhdGluZ09uU2VydmVyKHRydWUpO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLm9uU2VydmVyVmFsaWRhdGVRdWVzdGlvbnMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhpcy5vblNlcnZlclZhbGlkYXRlUXVlc3Rpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uU2VydmVyVmFsaWRhdGVRdWVzdGlvbnMuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcml2YXRlIGNvbXBsZXRlU2VydmVyVmFsaWRhdGlvbihvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLnNldElzVmFsaWRhdGluZ09uU2VydmVyKGZhbHNlKTtcbiAgICBpZiAoIW9wdGlvbnMgJiYgIW9wdGlvbnMuc3VydmV5KSByZXR1cm47XG4gICAgdmFyIHNlbGYgPSBvcHRpb25zLnN1cnZleTtcbiAgICB2YXIgaGFzRXJyb3JzID0gZmFsc2U7XG4gICAgaWYgKG9wdGlvbnMuZXJyb3JzKSB7XG4gICAgICBmb3IgKHZhciBuYW1lIGluIG9wdGlvbnMuZXJyb3JzKSB7XG4gICAgICAgIHZhciBxdWVzdGlvbiA9IHNlbGYuZ2V0UXVlc3Rpb25CeU5hbWUobmFtZSk7XG4gICAgICAgIGlmIChxdWVzdGlvbiAmJiBxdWVzdGlvbltcImVycm9yc1wiXSkge1xuICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XG4gICAgICAgICAgcXVlc3Rpb25bXCJhZGRFcnJvclwiXShuZXcgQ3VzdG9tRXJyb3Iob3B0aW9ucy5lcnJvcnNbbmFtZV0sIHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWhhc0Vycm9ycykge1xuICAgICAgaWYgKHNlbGYuaXNMYXN0UGFnZSkgc2VsZi5kb0NvbXBsZXRlKCk7XG4gICAgICBlbHNlIHNlbGYuZG9OZXh0UGFnZSgpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZG9OZXh0UGFnZSgpIHtcbiAgICB0aGlzLmNoZWNrT25QYWdlVHJpZ2dlcnMoKTtcbiAgICBpZiAoIXRoaXMuaXNDb21wbGV0ZWQpIHtcbiAgICAgIGlmICh0aGlzLnNlbmRSZXN1bHRPblBhZ2VOZXh0KSB7XG4gICAgICAgIHRoaXMuc2VuZFJlc3VsdCh0aGlzLnN1cnZleVBvc3RJZCwgdGhpcy5jbGllbnRJZCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgICB2YXIgdlBhZ2VzID0gdGhpcy52aXNpYmxlUGFnZXM7XG4gICAgICB2YXIgaW5kZXggPSB2UGFnZXMuaW5kZXhPZih0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB2UGFnZXNbaW5kZXggKyAxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kb0NvbXBsZXRlKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBzZXRDb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5pc0NvbXBsZXRlZCA9IHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGh0bWwgZm9yIGNvbXBsZXRlZCAnVGhhbmsgeW91JyBwYWdlLlxuICAgKiBAc2VlIGNvbXBsZXRlZEh0bWxcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvY2Vzc2VkQ29tcGxldGVkSHRtbCgpOiBzdHJpbmcge1xuICAgIHZhciBodG1sID0gdGhpcy5yZW5kZXJlZENvbXBsZXRlZEh0bWw7XG4gICAgaWYgKGh0bWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NIdG1sKGh0bWwpO1xuICAgIH1cbiAgICByZXR1cm4gXCI8aDM+XCIgKyB0aGlzLmdldExvY1N0cmluZyhcImNvbXBsZXRpbmdTdXJ2ZXlcIikgKyBcIjwvaDM+XCI7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGh0bWwgc2hvd2luZyB0aGF0IHRoZSB1c2VyIGhhcyBhbHJlYWR5IGNvbXBsZXRlZCB0aGUgc3VydmV5XG4gICAqIEBzZWUgY29tcGxldGVkSHRtbFxuICAgKi9cbiAgcHVibGljIGdldCBwcm9jZXNzZWRDb21wbGV0ZWRCZWZvcmVIdG1sKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY29tcGxldGVkQmVmb3JlSHRtbCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0h0bWwodGhpcy5jb21wbGV0ZWRCZWZvcmVIdG1sKTtcbiAgICB9XG4gICAgcmV0dXJuIFwiPGgzPlwiICsgdGhpcy5nZXRMb2NTdHJpbmcoXCJjb21wbGV0aW5nU3VydmV5QmVmb3JlXCIpICsgXCI8L2gzPlwiO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBodG1sIHRoYXQgc2hvd3Mgb24gbG9hZGluZyB0aGUganNvbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvY2Vzc2VkTG9hZGluZ0h0bWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nSHRtbCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0h0bWwodGhpcy5sb2FkaW5nSHRtbCk7XG4gICAgfVxuICAgIHJldHVybiBcIjxoMz5cIiArIHRoaXMuZ2V0TG9jU3RyaW5nKFwibG9hZGluZ1N1cnZleVwiKSArIFwiPC9oMz5cIjtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdGV4dCBmb3IgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb2dyZXNzVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID09IG51bGwpIHJldHVybiBcIlwiO1xuICAgIGlmICh0aGlzLnByb2dyZXNzQmFyVHlwZSA9PT0gXCJxdWVzdGlvbnNcIikge1xuICAgICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0QWxsUXVlc3Rpb25zKCk7XG4gICAgICB2YXIgYW5zd2VyZWRRdWVzdGlvbnNDb3VudCA9IHF1ZXN0aW9ucy5yZWR1Y2UoXG4gICAgICAgIChhOiBudW1iZXIsIGI6IFF1ZXN0aW9uKSA9PiBhICsgKGIuaXNFbXB0eSgpID8gMCA6IDEpLFxuICAgICAgICAwXG4gICAgICApO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9jU3RyaW5nKFwicXVlc3Rpb25zUHJvZ3Jlc3NUZXh0XCIpW1wiZm9ybWF0XCJdKFxuICAgICAgICBhbnN3ZXJlZFF1ZXN0aW9uc0NvdW50LFxuICAgICAgICBxdWVzdGlvbnMubGVuZ3RoXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9ncmVzc0JhclR5cGUgPT09IFwiY29ycmVjdFF1ZXN0aW9uc1wiKSB7XG4gICAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5nZXRBbGxRdWVzdGlvbnMoKTtcbiAgICAgIHZhciBjb3JyZWN0QW5zd2Vyc0NvdW50ID0gdGhpcy5nZXRDb3JyZWN0ZWRBbnN3ZXJDb3VudCgpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9jU3RyaW5nKFwicXVlc3Rpb25zUHJvZ3Jlc3NUZXh0XCIpW1wiZm9ybWF0XCJdKFxuICAgICAgICBjb3JyZWN0QW5zd2Vyc0NvdW50LFxuICAgICAgICBxdWVzdGlvbnMubGVuZ3RoXG4gICAgICApO1xuICAgIH1cbiAgICB2YXIgdlBhZ2VzID0gdGhpcy52aXNpYmxlUGFnZXM7XG4gICAgdmFyIGluZGV4ID0gdlBhZ2VzLmluZGV4T2YodGhpcy5jdXJyZW50UGFnZSkgKyAxO1xuICAgIHJldHVybiB0aGlzLmdldExvY1N0cmluZyhcInByb2dyZXNzVGV4dFwiKVtcImZvcm1hdFwiXShpbmRleCwgdlBhZ2VzLmxlbmd0aCk7XG4gIH1cbiAgcHJvdGVjdGVkIGFmdGVyUmVuZGVyU3VydmV5KGh0bWxFbGVtZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uQWZ0ZXJSZW5kZXJTdXJ2ZXkuZmlyZSh0aGlzLCB7XG4gICAgICBzdXJ2ZXk6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogaHRtbEVsZW1lbnRcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVRdWVzdGlvbkNzc0NsYXNzZXMocXVlc3Rpb246IElRdWVzdGlvbiwgY3NzQ2xhc3NlczogYW55KSB7XG4gICAgdGhpcy5vblVwZGF0ZVF1ZXN0aW9uQ3NzQ2xhc3Nlcy5maXJlKHRoaXMsIHtcbiAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbixcbiAgICAgIGNzc0NsYXNzZXM6IGNzc0NsYXNzZXNcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVQYW5lbENzc0NsYXNzZXMocGFuZWw6IElQYW5lbCwgY3NzQ2xhc3NlczogYW55KSB7XG4gICAgdGhpcy5vblVwZGF0ZVBhbmVsQ3NzQ2xhc3Nlcy5maXJlKHRoaXMsIHtcbiAgICAgIHBhbmVsOiBwYW5lbCxcbiAgICAgIGNzc0NsYXNzZXM6IGNzc0NsYXNzZXNcbiAgICB9KTtcbiAgfVxuICBhZnRlclJlbmRlclBhZ2UoaHRtbEVsZW1lbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLm9uQWZ0ZXJSZW5kZXJQYWdlLmlzRW1wdHkpIHJldHVybjtcbiAgICB0aGlzLm9uQWZ0ZXJSZW5kZXJQYWdlLmZpcmUodGhpcywge1xuICAgICAgcGFnZTogdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgIGh0bWxFbGVtZW50OiBodG1sRWxlbWVudFxuICAgIH0pO1xuICB9XG4gIGFmdGVyUmVuZGVyUXVlc3Rpb24ocXVlc3Rpb246IElRdWVzdGlvbiwgaHRtbEVsZW1lbnQ6IGFueSkge1xuICAgIHRoaXMub25BZnRlclJlbmRlclF1ZXN0aW9uLmZpcmUodGhpcywge1xuICAgICAgcXVlc3Rpb246IHF1ZXN0aW9uLFxuICAgICAgaHRtbEVsZW1lbnQ6IGh0bWxFbGVtZW50XG4gICAgfSk7XG4gIH1cbiAgYWZ0ZXJSZW5kZXJQYW5lbChwYW5lbDogSUVsZW1lbnQsIGh0bWxFbGVtZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uQWZ0ZXJSZW5kZXJQYW5lbC5maXJlKHRoaXMsIHtcbiAgICAgIHBhbmVsOiBwYW5lbCxcbiAgICAgIGh0bWxFbGVtZW50OiBodG1sRWxlbWVudFxuICAgIH0pO1xuICB9XG4gIG1hdHJpeEJlZm9yZVJvd0FkZGVkKG9wdGlvbnM6IGFueSkge1xuICAgIHRoaXMub25NYXRyaXhCZWZvcmVSb3dBZGRlZC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIG1hdHJpeFJvd0FkZGVkKHF1ZXN0aW9uOiBJUXVlc3Rpb24pIHtcbiAgICB0aGlzLm9uTWF0cml4Um93QWRkZWQuZmlyZSh0aGlzLCB7IHF1ZXN0aW9uOiBxdWVzdGlvbiB9KTtcbiAgfVxuICBnZXRRdWVzdGlvbkJ5VmFsdWVOYW1lRnJvbUFycmF5KFxuICAgIHZhbHVlTmFtZTogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBpbmRleDogbnVtYmVyXG4gICk6IElRdWVzdGlvbiB7XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0UXVlc3Rpb25zQnlWYWx1ZU5hbWVDb3JlKHZhbHVlTmFtZSk7XG4gICAgaWYgKCFxdWVzdGlvbnMpIHJldHVybjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHJlcyA9IHF1ZXN0aW9uc1tpXS5nZXRRdWVzdGlvbkZyb21BcnJheShuYW1lLCBpbmRleCk7XG4gICAgICBpZiAoISFyZXMpIHJldHVybiByZXM7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIG1hdHJpeFJvd1JlbW92ZWQocXVlc3Rpb246IElRdWVzdGlvbiwgcm93SW5kZXg6IG51bWJlciwgcm93OiBhbnkpIHtcbiAgICB0aGlzLm9uTWF0cml4Um93UmVtb3ZlZC5maXJlKHRoaXMsIHtcbiAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbixcbiAgICAgIHJvd0luZGV4OiByb3dJbmRleCxcbiAgICAgIHJvdzogcm93XG4gICAgfSk7XG4gIH1cbiAgbWF0cml4QWxsb3dSZW1vdmVSb3coXG4gICAgcXVlc3Rpb246IElRdWVzdGlvbixcbiAgICByb3dJbmRleDogbnVtYmVyLFxuICAgIHJvdzogYW55XG4gICk6IGJvb2xlYW4ge1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgcXVlc3Rpb246IHF1ZXN0aW9uLFxuICAgICAgcm93SW5kZXg6IHJvd0luZGV4LFxuICAgICAgcm93OiByb3csXG4gICAgICBhbGxvdzogdHJ1ZVxuICAgIH07XG4gICAgdGhpcy5vbk1hdHJpeEFsbG93UmVtb3ZlUm93LmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnMuYWxsb3c7XG4gIH1cbiAgbWF0cml4Q2VsbENyZWF0ZWQocXVlc3Rpb246IElRdWVzdGlvbiwgb3B0aW9uczogYW55KSB7XG4gICAgb3B0aW9ucy5xdWVzdGlvbiA9IHF1ZXN0aW9uO1xuICAgIHRoaXMub25NYXRyaXhDZWxsQ3JlYXRlZC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIG1hdHJpeEFmdGVyQ2VsbFJlbmRlcihxdWVzdGlvbjogSVF1ZXN0aW9uLCBvcHRpb25zOiBhbnkpIHtcbiAgICBvcHRpb25zLnF1ZXN0aW9uID0gcXVlc3Rpb247XG4gICAgdGhpcy5vbk1hdHJpeEFmdGVyQ2VsbFJlbmRlci5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIG1hdHJpeENlbGxWYWx1ZUNoYW5nZWQocXVlc3Rpb246IElRdWVzdGlvbiwgb3B0aW9uczogYW55KSB7XG4gICAgb3B0aW9ucy5xdWVzdGlvbiA9IHF1ZXN0aW9uO1xuICAgIHRoaXMub25NYXRyaXhDZWxsVmFsdWVDaGFuZ2VkLmZpcmUodGhpcywgb3B0aW9ucyk7XG4gIH1cbiAgbWF0cml4Q2VsbFZhbHVlQ2hhbmdpbmcocXVlc3Rpb246IElRdWVzdGlvbiwgb3B0aW9uczogYW55KSB7XG4gICAgb3B0aW9ucy5xdWVzdGlvbiA9IHF1ZXN0aW9uO1xuICAgIHRoaXMub25NYXRyaXhDZWxsVmFsdWVDaGFuZ2luZy5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIG1hdHJpeENlbGxWYWxpZGF0ZShxdWVzdGlvbjogSVF1ZXN0aW9uLCBvcHRpb25zOiBhbnkpOiBTdXJ2ZXlFcnJvciB7XG4gICAgb3B0aW9ucy5xdWVzdGlvbiA9IHF1ZXN0aW9uO1xuICAgIHRoaXMub25NYXRyaXhDZWxsVmFsaWRhdGUuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICByZXR1cm4gb3B0aW9ucy5lcnJvciA/IG5ldyBDdXN0b21FcnJvcihvcHRpb25zLmVycm9yLCB0aGlzKSA6IG51bGw7XG4gIH1cbiAgZHluYW1pY1BhbmVsQWRkZWQocXVlc3Rpb246IElRdWVzdGlvbikge1xuICAgIHRoaXMub25EeW5hbWljUGFuZWxBZGRlZC5maXJlKHRoaXMsIHsgcXVlc3Rpb246IHF1ZXN0aW9uIH0pO1xuICB9XG4gIGR5bmFtaWNQYW5lbFJlbW92ZWQocXVlc3Rpb246IElRdWVzdGlvbiwgcGFuZWxJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5vbkR5bmFtaWNQYW5lbFJlbW92ZWQuZmlyZSh0aGlzLCB7XG4gICAgICBxdWVzdGlvbjogcXVlc3Rpb24sXG4gICAgICBwYW5lbEluZGV4OiBwYW5lbEluZGV4XG4gICAgfSk7XG4gIH1cbiAgZHluYW1pY1BhbmVsSXRlbVZhbHVlQ2hhbmdlZChxdWVzdGlvbjogSVF1ZXN0aW9uLCBvcHRpb25zOiBhbnkpIHtcbiAgICBvcHRpb25zLnF1ZXN0aW9uID0gcXVlc3Rpb247XG4gICAgdGhpcy5vbkR5bmFtaWNQYW5lbEl0ZW1WYWx1ZUNoYW5nZWQuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgfVxuICBkcmFnQW5kRHJvcEFsbG93KG9wdGlvbnM6IGFueSk6IGJvb2xlYW4ge1xuICAgIG9wdGlvbnMuYWxsb3cgPSB0cnVlO1xuICAgIHRoaXMub25EcmFnRHJvcEFsbG93LmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnMuYWxsb3c7XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkIHRoZSBmaWxlIGludG8gc2VydmVyXG4gICAqIEBwYXJhbSBuYW1lIHF1ZXN0aW9uIG5hbWVcbiAgICogQHBhcmFtIGZpbGUgdXBsb2FkaW5nIGZpbGVcbiAgICogQHBhcmFtIHN0b3JlRGF0YUFzVGV4dCBzZXQgaXQgdG8gdHJ1ZSB0byBlbmNvZGUgZmlsZSBjb250ZW50IGludG8gdGhlIHN1cnZleSByZXN1bHRzXG4gICAqIEBwYXJhbSB1cGxvYWRpbmdDYWxsYmFjayBhIGNhbGwgYmFjayBmdW5jdGlvbiB0byBnZXQgdGhlIHN0YXR1cyBvbiB1cGxvYWRpbmcgdGhlIGZpbGVcbiAgICovXG4gIHB1YmxpYyB1cGxvYWRGaWxlcyhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZmlsZXM6IEZpbGVbXSxcbiAgICB1cGxvYWRpbmdDYWxsYmFjazogKHN0YXR1czogc3RyaW5nLCBkYXRhOiBhbnkpID0+IGFueVxuICApIHtcbiAgICBpZiAodGhpcy5vblVwbG9hZEZpbGVzLmlzRW1wdHkpIHtcbiAgICAgIHVwbG9hZGluZ0NhbGxiYWNrKFwiZXJyb3JcIiwgZmlsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uVXBsb2FkRmlsZXMuZmlyZSh0aGlzLCB7XG4gICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgIGZpbGVzOiBmaWxlcyB8fCBbXSxcbiAgICAgICAgY2FsbGJhY2s6IHVwbG9hZGluZ0NhbGxiYWNrXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3VydmV5UG9zdElkKSB7XG4gICAgICB0aGlzLnVwbG9hZEZpbGVzQ29yZShuYW1lLCBmaWxlcywgdXBsb2FkaW5nQ2FsbGJhY2spO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogRG93bmxvYWQgdGhlIGZpbGUgZnJvbSBzZXJ2ZXJcbiAgICogQHBhcmFtIG5hbWUgcXVlc3Rpb24gbmFtZVxuICAgKiBAcGFyYW0gZmlsZVZhbHVlIHNpbmdsZSBmaWxlIHF1ZXN0aW9uIHZhbHVlXG4gICAqIEBwYXJhbSBjYWxsYmFjayBhIGNhbGwgYmFjayBmdW5jdGlvbiB0byBnZXQgdGhlIHN0YXR1cyBvbiBkb3dubG9hZGluZyB0aGUgZmlsZSBhbmQgdGhlIGRvd25sb2FkZWQgZmlsZSBjb250ZW50XG4gICAqL1xuICBwdWJsaWMgZG93bmxvYWRGaWxlKFxuICAgIHF1ZXN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGZpbGVWYWx1ZTogYW55LFxuICAgIGNhbGxiYWNrOiAoc3RhdHVzOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4gYW55XG4gICkge1xuICAgIGlmICh0aGlzLm9uRG93bmxvYWRGaWxlLmlzRW1wdHkpIHtcbiAgICAgICEhY2FsbGJhY2sgJiYgY2FsbGJhY2soXCJzdWNjZXNzXCIsIGZpbGVWYWx1ZS5jb250ZW50IHx8IGZpbGVWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMub25Eb3dubG9hZEZpbGUuZmlyZSh0aGlzLCB7XG4gICAgICBuYW1lOiBxdWVzdGlvbk5hbWUsXG4gICAgICBjb250ZW50OiBmaWxlVmFsdWUuY29udGVudCB8fCBmaWxlVmFsdWUsXG4gICAgICBmaWxlVmFsdWU6IGZpbGVWYWx1ZSxcbiAgICAgIGNhbGxiYWNrOiBjYWxsYmFja1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBDbGVhciBmaWxlcyBmcm9tIHNlcnZlclxuICAgKiBAcGFyYW0gbmFtZSBxdWVzdGlvbiBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSBmaWxlIHF1ZXN0aW9uIHZhbHVlXG4gICAqIEBwYXJhbSBjYWxsYmFjayBhIGNhbGwgYmFjayBmdW5jdGlvbiB0byBnZXQgdGhlIHN0YXR1cyBvZiB0aGUgY2xlYXJpbmcgb3BlcmF0aW9uXG4gICAqL1xuICBwdWJsaWMgY2xlYXJGaWxlcyhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IGFueSxcbiAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiAoc3RhdHVzOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4gYW55XG4gICkge1xuICAgIGlmICh0aGlzLm9uQ2xlYXJGaWxlcy5pc0VtcHR5KSB7XG4gICAgICAhIWNhbGxiYWNrICYmIGNhbGxiYWNrKFwic3VjY2Vzc1wiLCB2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMub25DbGVhckZpbGVzLmZpcmUodGhpcywge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGZpbGVOYW1lOiBmaWxlTmFtZSxcbiAgICAgIGNhbGxiYWNrOiBjYWxsYmFja1xuICAgIH0pO1xuICB9XG4gIHVwZGF0ZUNob2ljZXNGcm9tU2VydmVyKFxuICAgIHF1ZXN0aW9uOiBJUXVlc3Rpb24sXG4gICAgY2hvaWNlczogQXJyYXk8SXRlbVZhbHVlPixcbiAgICBzZXJ2ZXJSZXN1bHQ6IGFueVxuICApOiBBcnJheTxJdGVtVmFsdWU+IHtcbiAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbixcbiAgICAgIGNob2ljZXM6IGNob2ljZXMsXG4gICAgICBzZXJ2ZXJSZXN1bHQ6IHNlcnZlclJlc3VsdFxuICAgIH07XG4gICAgdGhpcy5vbkxvYWRDaG9pY2VzRnJvbVNlcnZlci5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLmNob2ljZXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlU3VydmV5U2VydmljZSgpOiBkeFN1cnZleVNlcnZpY2Uge1xuICAgIHJldHVybiBuZXcgZHhTdXJ2ZXlTZXJ2aWNlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIHVwbG9hZEZpbGVzQ29yZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZmlsZXM6IEZpbGVbXSxcbiAgICB1cGxvYWRpbmdDYWxsYmFjazogKHN0YXR1czogc3RyaW5nLCBkYXRhOiBhbnkpID0+IGFueVxuICApIHtcbiAgICB2YXIgcmVzcG9uc2VzOiBBcnJheTxhbnk+ID0gW107XG4gICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGlmICh1cGxvYWRpbmdDYWxsYmFjaykgdXBsb2FkaW5nQ2FsbGJhY2soXCJ1cGxvYWRpbmdcIiwgZmlsZSk7XG4gICAgICB0aGlzLmNyZWF0ZVN1cnZleVNlcnZpY2UoKS5zZW5kRmlsZShcbiAgICAgICAgdGhpcy5zdXJ2ZXlQb3N0SWQsXG4gICAgICAgIGZpbGUsXG4gICAgICAgIChzdWNjZXNzOiBib29sZWFuLCByZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlcy5wdXNoKHsgY29udGVudDogcmVzcG9uc2UsIGZpbGU6IGZpbGUgfSk7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2VzLmxlbmd0aCA9PT0gZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGlmICh1cGxvYWRpbmdDYWxsYmFjaykgdXBsb2FkaW5nQ2FsbGJhY2soXCJzdWNjZXNzXCIsIHJlc3BvbnNlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh1cGxvYWRpbmdDYWxsYmFjaylcbiAgICAgICAgICAgICAgdXBsb2FkaW5nQ2FsbGJhY2soXCJlcnJvclwiLCB7IHJlc3BvbnNlOiByZXNwb25zZSwgZmlsZTogZmlsZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbiAgZ2V0UGFnZShpbmRleDogbnVtYmVyKTogUGFnZU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlc1tpbmRleF07XG4gIH1cbiAgLyoqXG4gICAqIEFkZCBhIHBhZ2UgaW50byB0aGUgc3VydmV5XG4gICAqIEBwYXJhbSBwYWdlXG4gICAqIEBzZWUgYWRkTmV3UGFnZVxuICAgKi9cbiAgcHVibGljIGFkZFBhZ2UocGFnZTogUGFnZU1vZGVsKSB7XG4gICAgaWYgKHBhZ2UgPT0gbnVsbCkgcmV0dXJuO1xuICAgIHRoaXMucGFnZXMucHVzaChwYWdlKTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJbmRleGVzKCk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcGFnZSBhbmQgYWRkcyBpdCBpbnRvIHRoZSBzdXJ2ZXkuIEdlbmFyYXRlcyBhIG5ldyBuYW1lIGlmIHRoZSBuYW1lIHBhcmFtZXRlciBpcyBub3Qgc2V0LlxuICAgKiBAcGFyYW0gbmFtZSBhIHBhZ2UgbmFtZVxuICAgKiBAc2VlIGFkZFBhZ2VcbiAgICovXG4gIHB1YmxpYyBhZGROZXdQYWdlKG5hbWU6IHN0cmluZyA9IG51bGwpIHtcbiAgICB2YXIgcGFnZSA9IHRoaXMuY3JlYXRlTmV3UGFnZShuYW1lKTtcbiAgICB0aGlzLmFkZFBhZ2UocGFnZSk7XG4gICAgcmV0dXJuIHBhZ2U7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgcGFnZSBmcm9tIHRoZSBzdXJ2ZXlcbiAgICogQHBhcmFtIHBhZ2VcbiAgICovXG4gIHB1YmxpYyByZW1vdmVQYWdlKHBhZ2U6IFBhZ2VNb2RlbCkge1xuICAgIHZhciBpbmRleCA9IHRoaXMucGFnZXMuaW5kZXhPZihwYWdlKTtcbiAgICBpZiAoaW5kZXggPCAwKSByZXR1cm47XG4gICAgdGhpcy5wYWdlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlVmFsdWUgPT0gcGFnZSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMucGFnZXMubGVuZ3RoID4gMCA/IHRoaXMucGFnZXNbMF0gOiBudWxsO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJbmRleGVzKCk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSBxdWVzdGlvbiBieSBpdHMgbmFtZVxuICAgKiBAcGFyYW0gbmFtZSBhIHF1ZXN0aW9uIG5hbWVcbiAgICogQHBhcmFtIGNhc2VJbnNlbnNpdGl2ZVxuICAgKiBAc2VlIGdldFF1ZXN0aW9uQnlWYWx1ZU5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXRRdWVzdGlvbkJ5TmFtZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY2FzZUluc2Vuc2l0aXZlOiBib29sZWFuID0gZmFsc2VcbiAgKTogUXVlc3Rpb24ge1xuICAgIHZhciBoYXNoOiBIYXNoVGFibGU8YW55PiA9ICEhY2FzZUluc2Vuc2l0aXZlXG4gICAgICA/IHRoaXMucXVlc3Rpb25IYXNoZXMubmFtZXNJbnNlbnNpdGl2ZVxuICAgICAgOiB0aGlzLnF1ZXN0aW9uSGFzaGVzLm5hbWVzO1xuICAgIHZhciByZXMgPSBoYXNoW25hbWVdO1xuICAgIGlmICghcmVzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gcmVzWzBdO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcXVlc3Rpb24gYnkgaXRzIHZhbHVlIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlTmFtZSBhIHF1ZXN0aW9uIG5hbWVcbiAgICogQHBhcmFtIGNhc2VJbnNlbnNpdGl2ZVxuICAgKiBAc2VlIGdldFF1ZXN0aW9uQnlOYW1lXG4gICAqIEBzZWUgUXVlc3Rpb24udmFsdWVOYW1lXG4gICAqL1xuICBwdWJsaWMgZ2V0UXVlc3Rpb25CeVZhbHVlTmFtZShcbiAgICB2YWx1ZU5hbWU6IHN0cmluZyxcbiAgICBjYXNlSW5zZW5zaXRpdmU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBJUXVlc3Rpb24ge1xuICAgIHZhciByZXMgPSB0aGlzLmdldFF1ZXN0aW9uc0J5VmFsdWVOYW1lQ29yZSh2YWx1ZU5hbWUsIGNhc2VJbnNlbnNpdGl2ZSk7XG4gICAgcmV0dXJuICEhcmVzID8gcmVzWzBdIDogbnVsbDtcbiAgfVxuICBwcml2YXRlIGdldFF1ZXN0aW9uc0J5VmFsdWVOYW1lQ29yZShcbiAgICB2YWx1ZU5hbWU6IHN0cmluZyxcbiAgICBjYXNlSW5zZW5zaXRpdmU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBBcnJheTxRdWVzdGlvbj4ge1xuICAgIHZhciBoYXNoOiBIYXNoVGFibGU8YW55PiA9ICEhY2FzZUluc2Vuc2l0aXZlXG4gICAgICA/IHRoaXMucXVlc3Rpb25IYXNoZXMudmFsdWVOYW1lc0luc2Vuc2l0aXZlXG4gICAgICA6IHRoaXMucXVlc3Rpb25IYXNoZXMudmFsdWVOYW1lcztcbiAgICB2YXIgcmVzID0gaGFzaFt2YWx1ZU5hbWVdO1xuICAgIGlmICghcmVzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIHF1ZXN0aW9ucyBieSB0aGVpciBuYW1lc1xuICAgKiBAcGFyYW0gbmFtZXMgdGhlIGFycmF5IG9mIG5hbWVzXG4gICAqIEBwYXJhbSBjYXNlSW5zZW5zaXRpdmVcbiAgICovXG4gIHB1YmxpYyBnZXRRdWVzdGlvbnNCeU5hbWVzKFxuICAgIG5hbWVzOiBzdHJpbmdbXSxcbiAgICBjYXNlSW5zZW5zaXRpdmU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBJUXVlc3Rpb25bXSB7XG4gICAgdmFyIHJlc3VsdDogSVF1ZXN0aW9uW10gPSBbXTtcbiAgICBpZiAoIW5hbWVzKSByZXR1cm4gcmVzdWx0O1xuICAgIGZvciAodmFyIGk6IG51bWJlciA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFuYW1lc1tpXSkgY29udGludWU7XG4gICAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uQnlOYW1lKG5hbWVzW2ldLCBjYXNlSW5zZW5zaXRpdmUpO1xuICAgICAgaWYgKHF1ZXN0aW9uKSByZXN1bHQucHVzaChxdWVzdGlvbik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSBwYWdlIG9uIHdoaWNoIGFuIGVsZW1lbnQgKHF1ZXN0aW9uIG9yIHBhbmVsKSBpcyBwbGFjZWQuXG4gICAqIEBwYXJhbSBlbGVtZW50IFF1ZXN0aW9uIG9yIFBhbmVsXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFnZUJ5RWxlbWVudChlbGVtZW50OiBJRWxlbWVudCk6IFBhZ2VNb2RlbCB7XG4gICAgZm9yICh2YXIgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMucGFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwYWdlID0gdGhpcy5wYWdlc1tpXTtcbiAgICAgIGlmIChwYWdlLmNvbnRhaW5zRWxlbWVudChlbGVtZW50KSkgcmV0dXJuIHBhZ2U7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcGFnZSBvbiB3aGljaCBhIHF1ZXN0aW9uIGlzIGxvY2F0ZWRcbiAgICogQHBhcmFtIHF1ZXN0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFnZUJ5UXVlc3Rpb24ocXVlc3Rpb246IElRdWVzdGlvbik6IFBhZ2VNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UGFnZUJ5RWxlbWVudChxdWVzdGlvbik7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSBwYWdlIGJ5IGl0J3MgbmFtZS5cbiAgICogQHBhcmFtIG5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXRQYWdlQnlOYW1lKG5hbWU6IHN0cmluZyk6IFBhZ2VNb2RlbCB7XG4gICAgZm9yICh2YXIgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMucGFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLnBhZ2VzW2ldLm5hbWUgPT0gbmFtZSkgcmV0dXJuIHRoaXMucGFnZXNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBSZXJ0dW5zIGEgbGlzdCBvZiBwYWdlcyBieSB0aGVpciBuYW1lc1xuICAgKiBAcGFyYW0gbmFtZXMgYSBsaXN0IG9mIHBhZ2VzIG5hbWVzXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFnZXNCeU5hbWVzKG5hbWVzOiBzdHJpbmdbXSk6IFBhZ2VNb2RlbFtdIHtcbiAgICB2YXIgcmVzdWx0OiBQYWdlTW9kZWxbXSA9IFtdO1xuICAgIGlmICghbmFtZXMpIHJldHVybiByZXN1bHQ7XG4gICAgZm9yICh2YXIgaTogbnVtYmVyID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIW5hbWVzW2ldKSBjb250aW51ZTtcbiAgICAgIHZhciBwYWdlID0gdGhpcy5nZXRQYWdlQnlOYW1lKG5hbWVzW2ldKTtcbiAgICAgIGlmIChwYWdlKSByZXN1bHQucHVzaChwYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBhbGwgcXVlc3Rpb25zIGluIHRoZSBzdXJ2ZXlcbiAgICogQHBhcmFtIHZpc2libGVPbmx5IHNldCBpdCB0cnVlLCBpZiB5b3Ugd2FudCB0byBnZXQgb25seSB2aXNpYmxlIHF1ZXN0aW9uc1xuICAgKi9cbiAgcHVibGljIGdldEFsbFF1ZXN0aW9ucyhcbiAgICB2aXNpYmxlT25seTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGluY2x1ZGluZ0Rlc2lnblRpbWU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBBcnJheTxJUXVlc3Rpb24+IHtcbiAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5PElRdWVzdGlvbj4oKTtcbiAgICBmb3IgKHZhciBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5wYWdlc1tpXS5hZGRRdWVzdGlvbnNUb0xpc3QoXG4gICAgICAgIHJlc3VsdCxcbiAgICAgICAgdmlzaWJsZU9ubHksXG4gICAgICAgIGluY2x1ZGluZ0Rlc2lnblRpbWVcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgcXVpeiBxdWVzdGlvbnMuIEFsbCB2aXNpYmxlIHF1ZXN0aW9ucyB0aGF0IGhhcyBpbnB1dChzKSB3aWRnZXRzLlxuICAgKiBAc2VlIGdldFF1aXpRdWVzdGlvbkNvdW50XG4gICAqL1xuICBwdWJsaWMgZ2V0UXVpelF1ZXN0aW9ucygpOiBBcnJheTxJUXVlc3Rpb24+IHtcbiAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5PElRdWVzdGlvbj4oKTtcbiAgICB2YXIgc3RhcnRJbmRleCA9IHRoaXMuZmlyc3RQYWdlSXNTdGFydGVkID8gMSA6IDA7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0SW5kZXg7IGkgPCB0aGlzLnBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIXRoaXMucGFnZXNbaV0uaXNWaXNpYmxlKSBjb250aW51ZTtcbiAgICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLnBhZ2VzW2ldLnF1ZXN0aW9ucztcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBxID0gcXVlc3Rpb25zW2pdO1xuICAgICAgICBpZiAocS5xdWl6UXVlc3Rpb25Db3VudCA+IDApIHtcbiAgICAgICAgICByZXN1bHQucHVzaChxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcGFuZWwgYnkgaXRzIG5hbWVcbiAgICogQHBhcmFtIG5hbWUgYSBwYW5lbCBuYW1lXG4gICAqIEBwYXJhbSBjYXNlSW5zZW5zaXRpdmVcbiAgICogQHNlZSBnZXRRdWVzdGlvbkJ5TmFtZVxuICAgKi9cbiAgcHVibGljIGdldFBhbmVsQnlOYW1lKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjYXNlSW5zZW5zaXRpdmU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBJUGFuZWwge1xuICAgIHZhciBwYW5lbHMgPSB0aGlzLmdldEFsbFBhbmVscygpO1xuICAgIGlmIChjYXNlSW5zZW5zaXRpdmUpIG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgZm9yICh2YXIgaTogbnVtYmVyID0gMDsgaSA8IHBhbmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHBhbmVsTmFtZSA9IHBhbmVsc1tpXS5uYW1lO1xuICAgICAgaWYgKGNhc2VJbnNlbnNpdGl2ZSkgcGFuZWxOYW1lID0gcGFuZWxOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAocGFuZWxOYW1lID09IG5hbWUpIHJldHVybiBwYW5lbHNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBwYW5lbHMgaW4gdGhlIHN1cnZleVxuICAgKi9cbiAgcHVibGljIGdldEFsbFBhbmVscyhcbiAgICB2aXNpYmxlT25seTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGluY2x1ZGluZ0Rlc2lnblRpbWU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBBcnJheTxJUGFuZWw+IHtcbiAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5PElQYW5lbD4oKTtcbiAgICBmb3IgKHZhciBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5wYWdlc1tpXS5hZGRQYW5lbHNJbnRvTGlzdChyZXN1bHQsIHZpc2libGVPbmx5LCBpbmNsdWRpbmdEZXNpZ25UaW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTmV3UGFnZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFBhZ2VNb2RlbChuYW1lKTtcbiAgfVxuICBwcm90ZWN0ZWQgcXVlc3Rpb25PblZhbHVlQ2hhbmdpbmcodmFsdWVOYW1lOiBzdHJpbmcsIG5ld1ZhbHVlOiBhbnkpOiBhbnkge1xuICAgIGlmICh0aGlzLm9uVmFsdWVDaGFuZ2luZy5pc0VtcHR5KSByZXR1cm4gbmV3VmFsdWU7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBuYW1lOiB2YWx1ZU5hbWUsXG4gICAgICBxdWVzdGlvbjogdGhpcy5nZXRRdWVzdGlvbkJ5VmFsdWVOYW1lKHZhbHVlTmFtZSksXG4gICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICBvbGRWYWx1ZTogdGhpcy5nZXRWYWx1ZSh2YWx1ZU5hbWUpXG4gICAgfTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2luZy5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLnZhbHVlO1xuICB9XG4gIHByb3RlY3RlZCB1cGRhdGVRdWVzdGlvblZhbHVlKHZhbHVlTmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHJldHVybjtcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5nZXRRdWVzdGlvbnNCeVZhbHVlTmFtZUNvcmUodmFsdWVOYW1lKTtcbiAgICBpZiAoISFxdWVzdGlvbnMpIHtcbiAgICAgIGZvciAodmFyIGk6IG51bWJlciA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRoaXMuaXNUd29WYWx1ZUVxdWFscyhxdWVzdGlvbnNbaV0udmFsdWUsIG5ld1ZhbHVlKSkgY29udGludWU7XG4gICAgICAgIHF1ZXN0aW9uc1tpXS51cGRhdGVWYWx1ZUZyb21TdXJ2ZXkobmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgbm90aWZ5UXVlc3Rpb25PblZhbHVlQ2hhbmdlZCh2YWx1ZU5hbWU6IHN0cmluZywgbmV3VmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZ0Zyb21Kc29uKSByZXR1cm47XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0UXVlc3Rpb25zQnlWYWx1ZU5hbWVDb3JlKHZhbHVlTmFtZSk7XG4gICAgaWYgKCEhcXVlc3Rpb25zKSB7XG4gICAgICBmb3IgKHZhciBpOiBudW1iZXIgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBxdWVzdGlvbiA9IHF1ZXN0aW9uc1tpXTtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tFcnJvcnNNb2RlID09IFwib25WYWx1ZUNoYW5nZWRcIikge1xuICAgICAgICAgIHZhciBvbGRFcnJvckNvdW50ID0gcXVlc3Rpb24uZXJyb3JzLmxlbmd0aDtcbiAgICAgICAgICBxdWVzdGlvbi5oYXNFcnJvcnModHJ1ZSk7XG4gICAgICAgICAgaWYgKG9sZEVycm9yQ291bnQgPiAwIHx8IHF1ZXN0aW9uLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmZpcmVWYWxpZGF0ZWRFcnJvcnNPbkN1cnJlbnRQYWdlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXN0aW9uLm9uU3VydmV5VmFsdWVDaGFuZ2VkKG5ld1ZhbHVlKTtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5maXJlKHRoaXMsIHtcbiAgICAgICAgICBuYW1lOiB2YWx1ZU5hbWUsXG4gICAgICAgICAgcXVlc3Rpb246IHF1ZXN0aW9uLFxuICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5maXJlKHRoaXMsIHtcbiAgICAgICAgbmFtZTogdmFsdWVOYW1lLFxuICAgICAgICBxdWVzdGlvbjogbnVsbCxcbiAgICAgICAgdmFsdWU6IG5ld1ZhbHVlXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5ub3RpZnlFbGVtZW50c09uQW55VmFsdWVPclZhcmlhYmxlQ2hhbmdlZCh2YWx1ZU5hbWUpO1xuICB9XG4gIHByaXZhdGUgbm90aWZ5RWxlbWVudHNPbkFueVZhbHVlT3JWYXJpYWJsZUNoYW5nZWQobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNFbmRMb2FkaW5nRnJvbUpzb24gPT09IFwicHJvY2Vzc2luZ1wiKSByZXR1cm47XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnBhZ2VzW2ldLm9uQW55VmFsdWVDaGFuZ2VkKG5hbWUpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNFbmRMb2FkaW5nRnJvbUpzb24pIHtcbiAgICAgIHRoaXMubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVBbGxRdWVzdGlvbnNWYWx1ZSgpIHtcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5nZXRBbGxRdWVzdGlvbnMoKTtcbiAgICBmb3IgKHZhciBpOiBudW1iZXIgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcSA9IDxRdWVzdGlvbj5xdWVzdGlvbnNbaV07XG4gICAgICB2YXIgdmFsTmFtZSA9IHEuZ2V0VmFsdWVOYW1lKCk7XG4gICAgICBxLnVwZGF0ZVZhbHVlRnJvbVN1cnZleSh0aGlzLmdldFZhbHVlKHZhbE5hbWUpKTtcbiAgICAgIGlmIChxLnJlcXVpcmVVcGRhdGVDb21tZW50VmFsdWUpIHtcbiAgICAgICAgcS51cGRhdGVDb21tZW50RnJvbVN1cnZleSh0aGlzLmdldENvbW1lbnQodmFsTmFtZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIG5vdGlmeUFsbFF1ZXN0aW9uc09uVmFsdWVDaGFuZ2VkKCkge1xuICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLmdldEFsbFF1ZXN0aW9ucygpO1xuICAgIGZvciAodmFyIGk6IG51bWJlciA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHF1ZXN0aW9uc1tpXS5vblN1cnZleVZhbHVlQ2hhbmdlZChcbiAgICAgICAgdGhpcy5nZXRWYWx1ZShxdWVzdGlvbnNbaV0uZ2V0VmFsdWVOYW1lKCkpXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGNoZWNrT25QYWdlVHJpZ2dlcnMoKSB7XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0Q3VycmVudFBhZ2VRdWVzdGlvbnMoKTtcbiAgICB2YXIgdmFsdWVzOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHF1ZXN0aW9uID0gcXVlc3Rpb25zW2ldO1xuICAgICAgdmFyIG5hbWUgPSBxdWVzdGlvbi5nZXRWYWx1ZU5hbWUoKTtcbiAgICAgIHZhbHVlc1tuYW1lXSA9IHRoaXMuZ2V0VmFsdWUobmFtZSk7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tUcmlnZ2Vycyh2YWx1ZXMsIHRydWUpO1xuICB9XG4gIHByaXZhdGUgZ2V0Q3VycmVudFBhZ2VRdWVzdGlvbnMoKTogQXJyYXk8UXVlc3Rpb24+IHtcbiAgICB2YXIgcmVzdWx0OiBBcnJheTxRdWVzdGlvbj4gPSBbXTtcbiAgICB2YXIgcGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgaWYgKCFwYWdlKSByZXR1cm4gcmVzdWx0O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFnZS5xdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxdWVzdGlvbiA9IHBhZ2UucXVlc3Rpb25zW2ldO1xuICAgICAgaWYgKCFxdWVzdGlvbi52aXNpYmxlIHx8ICFxdWVzdGlvbi5uYW1lKSBjb250aW51ZTtcbiAgICAgIHJlc3VsdC5wdXNoKHF1ZXN0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwcml2YXRlIGNoZWNrVHJpZ2dlcnMoa2V5OiBhbnksIGlzT25OZXh0UGFnZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmlzQ29tcGxldGVkIHx8IHRoaXMudHJpZ2dlcnMubGVuZ3RoID09IDApIHJldHVybjtcbiAgICB2YXIgdmFsdWVzID0gdGhpcy5nZXRGaWx0ZXJlZFZhbHVlcygpO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5nZXRGaWx0ZXJlZFByb3BlcnRpZXMoKTtcbiAgICBmb3IgKHZhciBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy50cmlnZ2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHRyaWdnZXIgPSB0aGlzLnRyaWdnZXJzW2ldO1xuICAgICAgaWYgKHRyaWdnZXIuaXNPbk5leHRQYWdlID09IGlzT25OZXh0UGFnZSkge1xuICAgICAgICB0cmlnZ2VyLmNoZWNrRXhwcmVzc2lvbihrZXksIHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZG9FbGVtZW50c09uTG9hZCgpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMucGFnZXNbaV0ub25TdXJ2ZXlMb2FkKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcnVuQ29uZGl0aW9ucygpIHtcbiAgICBpZiAodGhpcy5pc0NvbXBsZXRlZCB8fCB0aGlzLmlzRW5kTG9hZGluZ0Zyb21Kc29uID09PSBcInByb2Nlc3NpbmdcIikgcmV0dXJuO1xuICAgIHZhciBwYWdlcyA9IHRoaXMucGFnZXM7XG4gICAgdmFyIHZhbHVlcyA9IHRoaXMuZ2V0RmlsdGVyZWRWYWx1ZXMoKTtcbiAgICB2YXIgcHJvcGVydGllcyA9IHRoaXMuZ2V0RmlsdGVyZWRQcm9wZXJ0aWVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNhbGN1bGF0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlZFZhbHVlc1tpXS5ydW5FeHByZXNzaW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHBhZ2VzW2ldLnJ1bkNvbmRpdGlvbih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogU2VuZCB0aGUgc3VydmV5IHJlc3VsdCBpbnRvIFtkeHN1cnZleS5jb21dKGh0dHA6Ly93d3cuZHhzdXJ2ZXkuY29tKSBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gcG9zdElkIFtkeHN1cnZleS5jb21dKGh0dHA6Ly93d3cuZHhzdXJ2ZXkuY29tKSBzZXJ2aWNlIHBvc3RJZFxuICAgKiBAcGFyYW0gY2xpZW50SWQgVHlwaWNhbGx5IGEgY3VzdG9tZXIgZS1tYWlsIG9yIGFuIGlkZW50aWZpY2F0b3JcbiAgICogQHBhcmFtIGlzUGFydGlhbENvbXBsZXRlZCBTZXQgaXQgdG8gdHJ1ZSBpZiB0aGUgc3VydmV5IGlzIG5vdCBjb21wbGV0ZWQgeWV0IGFuZCBpdCBpcyBhbiBpbnRlcm1lZGlhdGUgcmVzdWx0c1xuICAgKiBAc2VlIHN1cnZleVBvc3RJZFxuICAgKiBAc2VlIGNsaWVudElkXG4gICAqL1xuICBwdWJsaWMgc2VuZFJlc3VsdChcbiAgICBwb3N0SWQ6IHN0cmluZyA9IG51bGwsXG4gICAgY2xpZW50SWQ6IHN0cmluZyA9IG51bGwsXG4gICAgaXNQYXJ0aWFsQ29tcGxldGVkOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgaWYgKCF0aGlzLmlzRWRpdE1vZGUpIHJldHVybjtcbiAgICBpZiAoaXNQYXJ0aWFsQ29tcGxldGVkICYmIHRoaXMub25QYXJ0aWFsU2VuZCkge1xuICAgICAgdGhpcy5vblBhcnRpYWxTZW5kLmZpcmUodGhpcywgbnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKCFwb3N0SWQgJiYgdGhpcy5zdXJ2ZXlQb3N0SWQpIHtcbiAgICAgIHBvc3RJZCA9IHRoaXMuc3VydmV5UG9zdElkO1xuICAgIH1cbiAgICBpZiAoIXBvc3RJZCkgcmV0dXJuO1xuICAgIGlmIChjbGllbnRJZCkge1xuICAgICAgdGhpcy5jbGllbnRJZCA9IGNsaWVudElkO1xuICAgIH1cbiAgICBpZiAoaXNQYXJ0aWFsQ29tcGxldGVkICYmICF0aGlzLmNsaWVudElkKSByZXR1cm47XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmICh0aGlzLnN1cnZleVNob3dEYXRhU2F2aW5nKSB7XG4gICAgICB0aGlzLnNldENvbXBsZXRlZFN0YXRlKFwic2F2aW5nXCIsIFwiXCIpO1xuICAgIH1cbiAgICB0aGlzLmNyZWF0ZVN1cnZleVNlcnZpY2UoKS5zZW5kUmVzdWx0KFxuICAgICAgcG9zdElkLFxuICAgICAgdGhpcy5kYXRhLFxuICAgICAgZnVuY3Rpb24oc3VjY2VzczogYm9vbGVhbiwgcmVzcG9uc2U6IGFueSwgcmVxdWVzdDogYW55KSB7XG4gICAgICAgIGlmIChzZWxmLnN1cnZleVNob3dEYXRhU2F2aW5nKSB7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHNlbGYuc2V0Q29tcGxldGVkU3RhdGUoXCJzdWNjZXNzXCIsIFwiXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZWxmLnNldENvbXBsZXRlZFN0YXRlKFwiZXJyb3JcIiwgXCJcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNlbGYub25TZW5kUmVzdWx0LmZpcmUoc2VsZiwge1xuICAgICAgICAgIHN1Y2Nlc3M6IHN1Y2Nlc3MsXG4gICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLFxuICAgICAgICAgIHJlcXVlc3Q6IHJlcXVlc3RcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgdGhpcy5jbGllbnRJZCxcbiAgICAgIGlzUGFydGlhbENvbXBsZXRlZFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIEl0IGNhbGxzIHRoZSBbZHhzdXJ2ZXkuY29tXShodHRwOi8vd3d3LmR4c3VydmV5LmNvbSkgc2VydmljZSBhbmQgb24gY2FsbGJhY2sgZmlyZXMgb25HZXRSZXN1bHQgZXZlbnQgd2l0aCBhbGwgYW5zd2VycyB0aGF0IHlvdXIgdXNlcnMgbWFkZSBmb3IgYSBxdWVzdGlvbi5cbiAgICogQHBhcmFtIHJlc3VsdElkIFtkeHN1cnZleS5jb21dKGh0dHA6Ly93d3cuZHhzdXJ2ZXkuY29tKSBzZXJ2aWNlIHJlc3VsdElkXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBxdWVzdGlvbiBuYW1lXG4gICAqIEBzZWUgb25HZXRSZXN1bHRcbiAgICovXG4gIHB1YmxpYyBnZXRSZXN1bHQocmVzdWx0SWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuY3JlYXRlU3VydmV5U2VydmljZSgpLmdldFJlc3VsdChyZXN1bHRJZCwgbmFtZSwgZnVuY3Rpb24oXG4gICAgICBzdWNjZXNzOiBib29sZWFuLFxuICAgICAgZGF0YTogYW55LFxuICAgICAgZGF0YUxpc3Q6IGFueVtdLFxuICAgICAgcmVzcG9uc2U6IGFueVxuICAgICkge1xuICAgICAgc2VsZi5vbkdldFJlc3VsdC5maXJlKHNlbGYsIHtcbiAgICAgICAgc3VjY2Vzczogc3VjY2VzcyxcbiAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgZGF0YUxpc3Q6IGRhdGFMaXN0LFxuICAgICAgICByZXNwb25zZTogcmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgc3VydmV5IEpzb24gZnJvbSB0aGUgW2R4c3VydmV5LmNvbV0oaHR0cDovL3d3dy5keHN1cnZleS5jb20pIHNlcnZpY2UuIElmIGNsaWVudElkIGlzIG5vdCBudWxsIGFuZCB1c2VyIGhhcyBhbHJlYWR5IGNvbXBsZXRlZCB0aGUgc3VydmV5LCB0aGUgc3VydmV5IHdpbGwgZ28gaW50byBcImNvbXBsZXRlZGJlZm9yZVwiIHN0YXRlLlxuICAgKiBAcGFyYW0gc3VydmV5SWQgW2R4c3VydmV5LmNvbV0oaHR0cDovL3d3dy5keHN1cnZleS5jb20pIHNlcnZpY2Ugc3VydmV5SWRcbiAgICogQHBhcmFtIGNsaWVudElkIGluZGVudGlmaWNhdG9yIGZvciBhIHVzZXIsIGZvciBleGFtcGxlIGUtbWFpbCBvciB1bmlxdWUgY3VzdG9tZXIgaWQgaW4geW91ciB3ZWIgYXBwbGljYXRpb24uXG4gICAqIEBzZWUgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBsb2FkU3VydmV5RnJvbVNlcnZpY2UoXG4gICAgc3VydmV5SWQ6IHN0cmluZyA9IG51bGwsXG4gICAgY2xpZW5kSWQ6IHN0cmluZyA9IG51bGxcbiAgKSB7XG4gICAgaWYgKHN1cnZleUlkKSB7XG4gICAgICB0aGlzLnN1cnZleUlkID0gc3VydmV5SWQ7XG4gICAgfVxuICAgIGlmIChjbGllbmRJZCkge1xuICAgICAgdGhpcy5jbGllbnRJZCA9IGNsaWVuZElkO1xuICAgIH1cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMub25Mb2FkaW5nU3VydmV5RnJvbVNlcnZpY2UoKTtcbiAgICBpZiAoY2xpZW5kSWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlU3VydmV5U2VydmljZSgpLmdldFN1cnZleUpzb25BbmRJc0NvbXBsZXRlZChcbiAgICAgICAgdGhpcy5zdXJ2ZXlJZCxcbiAgICAgICAgdGhpcy5jbGllbnRJZCxcbiAgICAgICAgZnVuY3Rpb24oXG4gICAgICAgICAgc3VjY2VzczogYm9vbGVhbixcbiAgICAgICAgICBqc29uOiBzdHJpbmcsXG4gICAgICAgICAgaXNDb21wbGV0ZWQ6IHN0cmluZyxcbiAgICAgICAgICByZXNwb25zZTogYW55XG4gICAgICAgICkge1xuICAgICAgICAgIHNlbGYuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHNlbGYuaXNDb21wbGV0ZWRCZWZvcmUgPSBpc0NvbXBsZXRlZCA9PSBcImNvbXBsZXRlZFwiO1xuICAgICAgICAgICAgc2VsZi5sb2FkU3VydmV5RnJvbVNlcnZpY2VKc29uKGpzb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVTdXJ2ZXlTZXJ2aWNlKCkubG9hZFN1cnZleSh0aGlzLnN1cnZleUlkLCBmdW5jdGlvbihcbiAgICAgICAgc3VjY2VzczogYm9vbGVhbixcbiAgICAgICAgcmVzdWx0OiBzdHJpbmcsXG4gICAgICAgIHJlc3BvbnNlOiBhbnlcbiAgICAgICkge1xuICAgICAgICBzZWxmLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgIHNlbGYubG9hZFN1cnZleUZyb21TZXJ2aWNlSnNvbihyZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBsb2FkU3VydmV5RnJvbVNlcnZpY2VKc29uKGpzb246IGFueSkge1xuICAgIGlmICghanNvbikgcmV0dXJuO1xuICAgIHRoaXMuc2V0SnNvbk9iamVjdChqc29uKTtcbiAgICB0aGlzLm5vdGlmeUFsbFF1ZXN0aW9uc09uVmFsdWVDaGFuZ2VkKCk7XG4gICAgdGhpcy5vbkxvYWRTdXJ2ZXlGcm9tU2VydmljZSgpO1xuICB9XG4gIHByb3RlY3RlZCBvbkxvYWRpbmdTdXJ2ZXlGcm9tU2VydmljZSgpIHt9XG4gIHByb3RlY3RlZCBvbkxvYWRTdXJ2ZXlGcm9tU2VydmljZSgpIHt9XG4gIHByaXZhdGUgdXBkYXRlVmlzaWJsZUluZGV4ZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24gfHwgISF0aGlzLmlzRW5kTG9hZGluZ0Zyb21Kc29uKSByZXR1cm47XG4gICAgdGhpcy51cGRhdGVQYWdlVmlzaWJsZUluZGV4ZXModGhpcy5zaG93UGFnZU51bWJlcnMpO1xuICAgIGlmICh0aGlzLnNob3dRdWVzdGlvbk51bWJlcnMgPT0gXCJvblBhZ2VcIikge1xuICAgICAgdmFyIHZpc1BhZ2VzID0gdGhpcy52aXNpYmxlUGFnZXM7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZpc1BhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZpc1BhZ2VzW2ldLnNldFZpc2libGVJbmRleCgwKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGluZGV4ID0gdGhpcy5zaG93UXVlc3Rpb25OdW1iZXJzID09IFwib25cIiA/IDAgOiAtMTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpbmRleCArPSB0aGlzLnBhZ2VzW2ldLnNldFZpc2libGVJbmRleChpbmRleCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByaXZhdGUgdXBkYXRlUGFnZVZpc2libGVJbmRleGVzKHNob3dJbmRleDogYm9vbGVhbikge1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnBhZ2VzW2ldLnZpc2libGVJbmRleCA9IHRoaXMucGFnZXNbaV0udmlzaWJsZSA/IGluZGV4KysgOiAtMTtcbiAgICAgIHRoaXMucGFnZXNbaV0ubnVtID1cbiAgICAgICAgc2hvd0luZGV4ICYmIHRoaXMucGFnZXNbaV0udmlzaWJsZVxuICAgICAgICAgID8gdGhpcy5wYWdlc1tpXS52aXNpYmxlSW5kZXggKyAxXG4gICAgICAgICAgOiAtMTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHNldEpzb25PYmplY3QoanNvbk9iajogYW55KSB7XG4gICAgaWYgKCFqc29uT2JqKSByZXR1cm47XG4gICAgdGhpcy5xdWVzdGlvbkhhc2hlc0NsZWFyKCk7XG4gICAgdGhpcy5qc29uRXJyb3JzID0gbnVsbDtcbiAgICB2YXIganNvbkNvbnZlcnRlciA9IG5ldyBKc29uT2JqZWN0KCk7XG4gICAganNvbkNvbnZlcnRlci50b09iamVjdChqc29uT2JqLCB0aGlzKTtcbiAgICBpZiAoanNvbkNvbnZlcnRlci5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5qc29uRXJyb3JzID0ganNvbkNvbnZlcnRlci5lcnJvcnM7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNFbmRMb2FkaW5nRnJvbUpzb246IHN0cmluZyA9IG51bGw7XG4gIGVuZExvYWRpbmdGcm9tSnNvbigpIHtcbiAgICB0aGlzLmlzRW5kTG9hZGluZ0Zyb21Kc29uID0gXCJwcm9jZXNzaW5nXCI7XG4gICAgdGhpcy5pc1N0YXJ0ZWRTdGF0ZSA9IHRoaXMuZmlyc3RQYWdlSXNTdGFydGVkO1xuICAgIHRoaXMub25Jc1NpbmdsZVBhZ2VDaGFuZ2VkKCk7XG4gICAgc3VwZXIuZW5kTG9hZGluZ0Zyb21Kc29uKCk7XG4gICAgaWYgKHRoaXMuaGFzQ29va2llKSB7XG4gICAgICB0aGlzLmRvQ29tcGxldGUoKTtcbiAgICB9XG4gICAgdGhpcy5kb0VsZW1lbnRzT25Mb2FkKCk7XG4gICAgdGhpcy5pc0VuZExvYWRpbmdGcm9tSnNvbiA9IFwiY29uZGl0aW9uc1wiO1xuICAgIHRoaXMucnVuQ29uZGl0aW9ucygpO1xuICAgIHRoaXMubm90aWZ5RWxlbWVudHNPbkFueVZhbHVlT3JWYXJpYWJsZUNoYW5nZWQoXCJcIik7XG4gICAgdGhpcy5pc0VuZExvYWRpbmdGcm9tSnNvbiA9IG51bGw7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSW5kZXhlcygpO1xuICB9XG4gIHByb3RlY3RlZCBvbkJlZm9yZUNyZWF0aW5nKCkge31cbiAgcHJvdGVjdGVkIG9uQ3JlYXRpbmcoKSB7fVxuICBwcml2YXRlIGdldFByb2Nlc3NlZFRleHRWYWx1ZSh0ZXh0VmFsdWU6IFRleHRQcmVQcm9jZXNzb3JWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UHJvY2Vzc2VkVGV4dFZhbHVlQ29yZSh0ZXh0VmFsdWUpO1xuICAgIGlmICghdGhpcy5vblByb2Nlc3NUZXh0VmFsdWUuaXNFbXB0eSkge1xuICAgICAgdmFyIHdhc0VtcHR5ID0gdGhpcy5pc1ZhbHVlRW1wdHkodGV4dFZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMub25Qcm9jZXNzVGV4dFZhbHVlLmZpcmUodGhpcywgdGV4dFZhbHVlKTtcbiAgICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9XG4gICAgICAgIHRleHRWYWx1ZS5pc0V4aXN0cyB8fCAod2FzRW1wdHkgJiYgIXRoaXMuaXNWYWx1ZUVtcHR5KHRleHRWYWx1ZS52YWx1ZSkpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldFByb2Nlc3NlZFRleHRWYWx1ZUNvcmUodGV4dFZhbHVlOiBUZXh0UHJlUHJvY2Vzc29yVmFsdWUpOiB2b2lkIHtcbiAgICB2YXIgbmFtZSA9IHRleHRWYWx1ZS5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgaWYgKFtcIm5vXCIsIFwicmVxdWlyZVwiLCBcInRpdGxlXCJdLmluZGV4T2YobmFtZSkgIT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChuYW1lID09PSBcInBhZ2Vub1wiKSB7XG4gICAgICB0ZXh0VmFsdWUuaXNFeGlzdHMgPSB0cnVlO1xuICAgICAgdmFyIHBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlO1xuICAgICAgdGV4dFZhbHVlLnZhbHVlID0gcGFnZSAhPSBudWxsID8gdGhpcy52aXNpYmxlUGFnZXMuaW5kZXhPZihwYWdlKSArIDEgOiAwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobmFtZSA9PT0gXCJwYWdlY291bnRcIikge1xuICAgICAgdGV4dFZhbHVlLmlzRXhpc3RzID0gdHJ1ZTtcbiAgICAgIHRleHRWYWx1ZS52YWx1ZSA9IHRoaXMudmlzaWJsZVBhZ2VDb3VudDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5hbWUgPT09IFwibG9jYWxlXCIpIHtcbiAgICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9IHRydWU7XG4gICAgICB0ZXh0VmFsdWUudmFsdWUgPSAhIXRoaXMubG9jYWxlXG4gICAgICAgID8gdGhpcy5sb2NhbGVcbiAgICAgICAgOiBzdXJ2ZXlMb2NhbGl6YXRpb24uZGVmYXVsdExvY2FsZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5hbWUgPT09IFwiY29ycmVjdGVkYW5zd2Vyc1wiIHx8IG5hbWUgPT09IFwiY29ycmVjdGVkYW5zd2VyY291bnRcIikge1xuICAgICAgdGV4dFZhbHVlLmlzRXhpc3RzID0gdHJ1ZTtcbiAgICAgIHRleHRWYWx1ZS52YWx1ZSA9IHRoaXMuZ2V0Q29ycmVjdGVkQW5zd2VyQ291bnQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5hbWUgPT09IFwiaW5jb3JyZWN0ZWRhbnN3ZXJzXCIgfHwgbmFtZSA9PT0gXCJpbmNvcnJlY3RlZGFuc3dlcmNvdW50XCIpIHtcbiAgICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9IHRydWU7XG4gICAgICB0ZXh0VmFsdWUudmFsdWUgPSB0aGlzLmdldEluQ29ycmVjdGVkQW5zd2VyQ291bnQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5hbWUgPT09IFwicXVlc3Rpb25jb3VudFwiKSB7XG4gICAgICB0ZXh0VmFsdWUuaXNFeGlzdHMgPSB0cnVlO1xuICAgICAgdGV4dFZhbHVlLnZhbHVlID0gdGhpcy5nZXRRdWl6UXVlc3Rpb25Db3VudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZmlyc3ROYW1lID0gbmV3IFByb2Nlc3NWYWx1ZSgpLmdldEZpcnN0TmFtZShuYW1lLCB0aGlzLmRhdGEpO1xuICAgIHZhciB2YXJpYWJsZSA9IHRoaXMuZ2V0VmFyaWFibGUobmFtZSk7XG4gICAgaWYgKHZhcmlhYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9IHRydWU7XG4gICAgICB0ZXh0VmFsdWUudmFsdWUgPSB2YXJpYWJsZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCEhZmlyc3ROYW1lKSBmaXJzdE5hbWUgPSBmaXJzdE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uQnlWYWx1ZU5hbWUoZmlyc3ROYW1lLCB0cnVlKTtcbiAgICBpZiAocXVlc3Rpb24pIHtcbiAgICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9IHRydWU7XG4gICAgICBuYW1lID0gcXVlc3Rpb24uZ2V0VmFsdWVOYW1lKCkgKyBuYW1lLnN1YnN0cihmaXJzdE5hbWUubGVuZ3RoKTtcbiAgICAgIG5hbWUgPSBuYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgdmFsdWVzOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICAgIHZhbHVlc1tmaXJzdE5hbWVdID0gdGV4dFZhbHVlLnJldHVybkRpc3BsYXlWYWx1ZVxuICAgICAgICA/IHF1ZXN0aW9uLmdldERpc3BsYXlWYWx1ZShmYWxzZSwgdW5kZWZpbmVkKVxuICAgICAgICA6IHF1ZXN0aW9uLnZhbHVlO1xuICAgICAgdGV4dFZhbHVlLnZhbHVlID0gbmV3IFByb2Nlc3NWYWx1ZSgpLmdldFZhbHVlKG5hbWUsIHZhbHVlcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUodGV4dFZhbHVlLm5hbWUpO1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0ZXh0VmFsdWUuaXNFeGlzdHMgPSB0cnVlO1xuICAgICAgdGV4dFZhbHVlLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgY2xlYXJVbnVzZWRWYWx1ZXMoKSB7XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0QWxsUXVlc3Rpb25zKCk7XG4gICAgZm9yICh2YXIgaTogbnVtYmVyID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgcXVlc3Rpb25zW2ldLmNsZWFyVW51c2VkVmFsdWVzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNsZWFySW52aXNpYmxlVmFsdWVzICE9IFwibm9uZVwiKSB7XG4gICAgICB0aGlzLmNsZWFySW52aXNpYmxlUXVlc3Rpb25WYWx1ZXMoKTtcbiAgICB9XG4gIH1cbiAgaGFzVmlzaWJsZVF1ZXN0aW9uQnlWYWx1ZU5hbWUodmFsdWVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5nZXRRdWVzdGlvbnNCeVZhbHVlTmFtZUNvcmUodmFsdWVOYW1lKTtcbiAgICBpZiAoIXF1ZXN0aW9ucykgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAodmFyIGk6IG51bWJlciA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChxdWVzdGlvbnNbaV0uaXNWaXNpYmxlKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHF1ZXN0aW9uQ291bnRCeVZhbHVlTmFtZSh2YWx1ZU5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0UXVlc3Rpb25zQnlWYWx1ZU5hbWVDb3JlKHZhbHVlTmFtZSk7XG4gICAgcmV0dXJuICEhcXVlc3Rpb25zID8gcXVlc3Rpb25zLmxlbmd0aCA6IDA7XG4gIH1cbiAgcHJpdmF0ZSBjbGVhckludmlzaWJsZVF1ZXN0aW9uVmFsdWVzKCkge1xuICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLmdldEFsbFF1ZXN0aW9ucygpO1xuICAgIGZvciAodmFyIGk6IG51bWJlciA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHF1ZXN0aW9uc1tpXS5jbGVhclZhbHVlSWZJbnZpc2libGUoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSB2YXJpYWJsZSB2YWx1ZS4gVmFyaWFibGUsIHVubGlrZSB2YWx1ZXMsIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBzdXJ2ZXkgcmVzdWx0cy5cbiAgICogQHBhcmFtIG5hbWUgQSB2YXJpYWJsZSBuYW1lXG4gICAqIEBzZWUgU2V0VmFyaWFibGVcbiAgICovXG4gIHB1YmxpYyBnZXRWYXJpYWJsZShuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghbmFtZSkgcmV0dXJuIG51bGw7XG4gICAgbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgcmVzID0gdGhpcy52YXJpYWJsZXNIYXNoW25hbWVdO1xuICAgIGlmICghSGVscGVycy5pc1ZhbHVlRW1wdHkocmVzKSkgcmV0dXJuIHJlcztcbiAgICBpZiAobmFtZS5pbmRleE9mKFwiLlwiKSA+IC0xIHx8IG5hbWUuaW5kZXhPZihcIltcIikgPiAtMSkge1xuICAgICAgaWYgKG5ldyBQcm9jZXNzVmFsdWUoKS5oYXNWYWx1ZShuYW1lLCB0aGlzLnZhcmlhYmxlc0hhc2gpKVxuICAgICAgICByZXR1cm4gbmV3IFByb2Nlc3NWYWx1ZSgpLmdldFZhbHVlKG5hbWUsIHRoaXMudmFyaWFibGVzSGFzaCk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgYSB2YXJpYWJsZSB2YWx1ZS4gVmFyaWFibGUsIHVubGlrZSB2YWx1ZXMsIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBzdXJ2ZXkgcmVzdWx0cy5cbiAgICogQHBhcmFtIG5hbWUgQSB2YXJpYWJsZSBuYW1lXG4gICAqIEBwYXJhbSBuZXdWYWx1ZVxuICAgKiBAc2VlIEdldFZhcmlhYmxlXG4gICAqL1xuICBwdWJsaWMgc2V0VmFyaWFibGUobmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogYW55KSB7XG4gICAgaWYgKCFuYW1lKSByZXR1cm47XG4gICAgbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB0aGlzLnZhcmlhYmxlc0hhc2hbbmFtZV0gPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm5vdGlmeUVsZW1lbnRzT25BbnlWYWx1ZU9yVmFyaWFibGVDaGFuZ2VkKG5hbWUpO1xuICAgIHRoaXMucnVuQ29uZGl0aW9ucygpO1xuICB9XG4gIC8vSVN1cnZleSBkYXRhXG4gIHByb3RlY3RlZCBnZXRVbmJpbmRWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICByZXR1cm4gSGVscGVycy5nZXRVbmJpbmRWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSBxdWVzdGlvbiB2YWx1ZVxuICAgKiBAcGFyYW0gbmFtZSBBIHF1ZXN0aW9uIG5hbWVcbiAgICogQHNlZSBkYXRhXG4gICAqIEBzZWUgc2V0VmFsdWVcbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZShuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghbmFtZSB8fCBuYW1lLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgdmFsdWUgPSB0aGlzLmdldERhdGFWYWx1ZUNvcmUodGhpcy52YWx1ZXNIYXNoLCBuYW1lKTtcbiAgICByZXR1cm4gdGhpcy5nZXRVbmJpbmRWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgYSBxdWVzdGlvbiB2YWx1ZS4gSXQgcnVucyBhbGwgdHJpZ2dlcnMgYW5kIGNvbmRpdGlvbnMgKHZpc2libGVJZiBwcm9wZXJ0aWVzKS4gR29lcyB0byB0aGUgbmV4dCBwYWdlIGlmIGdvTmV4dFBhZ2VBdXRvbWF0aWMgaXMgdHJ1ZSBhbmQgYWxsIHF1ZXN0aW9ucyBvbiB0aGUgY3VycmVudCBwYWdlIGFyZSBhbnN3ZXJlZCBjb3JyZWN0bHkuXG4gICAqIEBwYXJhbSBuYW1lIEEgcXVlc3Rpb24gbmFtZVxuICAgKiBAcGFyYW0gbmV3VmFsdWVcbiAgICogQHNlZSBkYXRhXG4gICAqIEBzZWUgZ2V0VmFsdWVcbiAgICogQHNlZSBQYWdlTW9kZWwudmlzaWJsZUlmXG4gICAqIEBzZWUgUXVlc3Rpb24udmlzaWJsZUlmXG4gICAqIEBzZWUgZ29OZXh0UGFnZUF1dG9tYXRpY1xuICAgKi9cbiAgcHVibGljIHNldFZhbHVlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBuZXdRdWVzdGlvblZhbHVlOiBhbnksXG4gICAgbG9jTm90aWZpY2F0aW9uOiBhbnkgPSBmYWxzZVxuICApIHtcbiAgICB2YXIgbmV3VmFsdWUgPSB0aGlzLnF1ZXN0aW9uT25WYWx1ZUNoYW5naW5nKG5hbWUsIG5ld1F1ZXN0aW9uVmFsdWUpO1xuICAgIGlmIChcbiAgICAgIHRoaXMuaXNWYWx1ZUVxdWFsKG5hbWUsIG5ld1ZhbHVlKSAmJlxuICAgICAgdGhpcy5pc1R3b1ZhbHVlRXF1YWxzKG5ld1ZhbHVlLCBuZXdRdWVzdGlvblZhbHVlKVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICBpZiAodGhpcy5pc1ZhbHVlRW1wdHkobmV3VmFsdWUpKSB7XG4gICAgICB0aGlzLmRlbGV0ZURhdGFWYWx1ZUNvcmUodGhpcy52YWx1ZXNIYXNoLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3VmFsdWUgPSB0aGlzLmdldFVuYmluZFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgIHRoaXMuc2V0RGF0YVZhbHVlQ29yZSh0aGlzLnZhbHVlc0hhc2gsIG5hbWUsIG5ld1ZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVRdWVzdGlvblZhbHVlKG5hbWUsIG5ld1ZhbHVlKTtcbiAgICBpZiAobG9jTm90aWZpY2F0aW9uID09PSB0cnVlKSByZXR1cm47XG4gICAgdmFyIHRyaWdnZXJLZXlzOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICB0cmlnZ2VyS2V5c1tuYW1lXSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMuY2hlY2tUcmlnZ2Vycyh0cmlnZ2VyS2V5cywgZmFsc2UpO1xuICAgIHRoaXMucnVuQ29uZGl0aW9ucygpO1xuICAgIHRoaXMubm90aWZ5UXVlc3Rpb25PblZhbHVlQ2hhbmdlZChuYW1lLCBuZXdWYWx1ZSk7XG4gICAgaWYgKGxvY05vdGlmaWNhdGlvbiAhPT0gXCJ0ZXh0XCIpIHtcbiAgICAgIHRoaXMudHJ5R29OZXh0UGFnZUF1dG9tYXRpYyhuYW1lKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpc1ZhbHVlRXF1YWwobmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKG5ld1ZhbHVlID09PSBcIlwiIHx8IG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIG5ld1ZhbHVlID0gbnVsbDtcbiAgICB2YXIgb2xkVmFsdWUgPSB0aGlzLmdldFZhbHVlKG5hbWUpO1xuICAgIGlmIChvbGRWYWx1ZSA9PT0gXCJcIiB8fCBvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkKSBvbGRWYWx1ZSA9IG51bGw7XG4gICAgaWYgKG5ld1ZhbHVlID09PSBudWxsIHx8IG9sZFZhbHVlID09PSBudWxsKSByZXR1cm4gbmV3VmFsdWUgPT09IG9sZFZhbHVlO1xuICAgIHJldHVybiB0aGlzLmlzVHdvVmFsdWVFcXVhbHMobmV3VmFsdWUsIG9sZFZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZG9PblBhZ2VBZGRlZChwYWdlOiBQYWdlTW9kZWwpIHtcbiAgICBwYWdlLnNldFN1cnZleUltcGwodGhpcyk7XG4gICAgaWYgKCFwYWdlLm5hbWUpIHBhZ2UubmFtZSA9IHRoaXMuZ2VuZXJhdGVOZXdOYW1lKHRoaXMucGFnZXMsIFwicGFnZVwiKTtcbiAgICB0aGlzLnF1ZXN0aW9uSGFzaGVzUGFuZWxBZGRlZChwYWdlKTtcbiAgICB2YXIgb3B0aW9ucyA9IHsgcGFnZTogcGFnZSB9O1xuICAgIHRoaXMub25QYWdlQWRkZWQuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgfVxuICBwcml2YXRlIGdlbmVyYXRlTmV3TmFtZShlbGVtZW50czogQXJyYXk8YW55PiwgYmFzZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFyIGtleXM6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIGtleXNbZWxlbWVudHNbaV1bXCJuYW1lXCJdXSA9IHRydWU7XG4gICAgdmFyIGluZGV4ID0gMTtcbiAgICB3aGlsZSAoa2V5c1tiYXNlTmFtZSArIGluZGV4XSkgaW5kZXgrKztcbiAgICByZXR1cm4gYmFzZU5hbWUgKyBpbmRleDtcbiAgfVxuICBwcm90ZWN0ZWQgdHJ5R29OZXh0UGFnZUF1dG9tYXRpYyhuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoXG4gICAgICAhIXRoaXMuaXNFbmRMb2FkaW5nRnJvbUpzb24gfHxcbiAgICAgICF0aGlzLmdvTmV4dFBhZ2VBdXRvbWF0aWMgfHxcbiAgICAgICF0aGlzLmN1cnJlbnRQYWdlXG4gICAgKVxuICAgICAgcmV0dXJuO1xuICAgIHZhciBxdWVzdGlvbiA9IDxRdWVzdGlvbj50aGlzLmdldFF1ZXN0aW9uQnlWYWx1ZU5hbWUobmFtZSk7XG4gICAgaWYgKFxuICAgICAgIXF1ZXN0aW9uIHx8XG4gICAgICAoISFxdWVzdGlvbiAmJlxuICAgICAgICAoIXF1ZXN0aW9uLnZpc2libGUgfHwgIXF1ZXN0aW9uLnN1cHBvcnRHb05leHRQYWdlQXV0b21hdGljKCkpKVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5nZXRDdXJyZW50UGFnZVF1ZXN0aW9ucygpO1xuICAgIGlmIChxdWVzdGlvbnMuaW5kZXhPZihxdWVzdGlvbikgPCAwKSByZXR1cm47XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChxdWVzdGlvbnNbaV0uaGFzSW5wdXQgJiYgcXVlc3Rpb25zW2ldLmlzRW1wdHkoKSkgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY2hlY2tJc0N1cnJlbnRQYWdlSGFzRXJyb3JzKGZhbHNlKSkge1xuICAgICAgaWYgKCF0aGlzLmlzTGFzdFBhZ2UpIHtcbiAgICAgICAgdGhpcy5uZXh0UGFnZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuZ29OZXh0UGFnZUF1dG9tYXRpYyA9PT0gdHJ1ZSAmJlxuICAgICAgICAgIHRoaXMuYWxsb3dDb21wbGV0ZVN1cnZleUF1dG9tYXRpY1xuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlTGFzdFBhZ2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29tbWVudCB2YWx1ZVxuICAgKiBAcGFyYW0gbmFtZVxuICAgKiBAc2VlIHNldENvbW1lbnRcbiAgICovXG4gIHB1YmxpYyBnZXRDb21tZW50KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFyIHJlc3VsdCA9IHRoaXMuZGF0YVtuYW1lICsgdGhpcy5jb21tZW50UHJlZml4XTtcbiAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IFwiXCI7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoZSBjb21tZW50IHZhbHVlXG4gICAqIEBwYXJhbSBuYW1lXG4gICAqIEBwYXJhbSBuZXdWYWx1ZVxuICAgKiBAc2VlIGdldENvbW1lbnRcbiAgICovXG4gIHB1YmxpYyBzZXRDb21tZW50KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBuZXdWYWx1ZTogc3RyaW5nLFxuICAgIGxvY05vdGlmaWNhdGlvbjogYW55ID0gZmFsc2VcbiAgKSB7XG4gICAgaWYgKCFuZXdWYWx1ZSkgbmV3VmFsdWUgPSBcIlwiO1xuICAgIGlmIChIZWxwZXJzLmlzVHdvVmFsdWVFcXVhbHMobmV3VmFsdWUsIHRoaXMuZ2V0Q29tbWVudChuYW1lKSkpIHJldHVybjtcbiAgICB2YXIgY29tbWVudE5hbWUgPSBuYW1lICsgdGhpcy5jb21tZW50UHJlZml4O1xuICAgIGlmIChIZWxwZXJzLmlzVmFsdWVFbXB0eShuZXdWYWx1ZSkpIHtcbiAgICAgIHRoaXMuZGVsZXRlRGF0YVZhbHVlQ29yZSh0aGlzLnZhbHVlc0hhc2gsIGNvbW1lbnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXREYXRhVmFsdWVDb3JlKHRoaXMudmFsdWVzSGFzaCwgY29tbWVudE5hbWUsIG5ld1ZhbHVlKTtcbiAgICB9XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMuZ2V0UXVlc3Rpb25zQnlWYWx1ZU5hbWVDb3JlKG5hbWUpO1xuICAgIGlmICghIXF1ZXN0aW9ucykge1xuICAgICAgZm9yICh2YXIgaTogbnVtYmVyID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBxdWVzdGlvbnNbaV0udXBkYXRlQ29tbWVudEZyb21TdXJ2ZXkobmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobG9jTm90aWZpY2F0aW9uICE9PSBcInRleHRcIikge1xuICAgICAgdGhpcy50cnlHb05leHRQYWdlQXV0b21hdGljKG5hbWUpO1xuICAgIH1cbiAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uQnlOYW1lKG5hbWUpO1xuICAgIGlmIChxdWVzdGlvbikge1xuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5maXJlKHRoaXMsIHtcbiAgICAgICAgbmFtZTogY29tbWVudE5hbWUsXG4gICAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbixcbiAgICAgICAgdmFsdWU6IG5ld1ZhbHVlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgdmFsdWUgZnJvbSB0aGUgc3VydmV5IHJlc3VsdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIHZhbHVlLiBUeXBpY2FsbHkgaXQgaXMgYSBxdWVzdGlvbiBuYW1lXG4gICAqL1xuICBwdWJsaWMgY2xlYXJWYWx1ZShuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFZhbHVlKG5hbWUsIG51bGwpO1xuICAgIHRoaXMuc2V0Q29tbWVudChuYW1lLCBudWxsKTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgdmFsdWUgdG8gdHJ1ZSwgdG8gY2xlYXIgdmFsdWUgb24gZGlzYWJsZSBpdGVtcyBpbiBjaGVja2JveCwgZHJvcGRvd24gYW5kIHJhZGlvZ3JvdXAgcXVlc3Rpb25zLlxuICAgKiBCeSBkZWZhdWx0IHZhbHVlcyBhcmUgbm90IGNsZWFyZWQgb24gZGlzYWJsZWQgdGhlIGNvcnJlc3BvbmRlZCBpdGVtcy4gVGhpcyBwcm9wZXJ0eSBpcyBub3QgcGVyc2lzdGVkIGluIHN1cnZleSBqc29uIGFuZCB5b3UgaGF2ZSB0byBzZXQgaXQgaW4gY29kZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgY2xlYXJWYWx1ZU9uRGlzYWJsZUl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjbGVhclZhbHVlT25EaXNhYmxlSXRlbXNcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgY2xlYXJWYWx1ZU9uRGlzYWJsZUl0ZW1zKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNsZWFyVmFsdWVPbkRpc2FibGVJdGVtc1wiLCB2YWwpO1xuICB9XG4gIHF1ZXN0aW9uVmlzaWJpbGl0eUNoYW5nZWQocXVlc3Rpb246IElRdWVzdGlvbiwgbmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJbmRleGVzKCk7XG4gICAgdGhpcy5vblZpc2libGVDaGFuZ2VkLmZpcmUodGhpcywge1xuICAgICAgcXVlc3Rpb246IHF1ZXN0aW9uLFxuICAgICAgbmFtZTogcXVlc3Rpb24ubmFtZSxcbiAgICAgIHZpc2libGU6IG5ld1ZhbHVlXG4gICAgfSk7XG4gICAgaWYgKFxuICAgICAgcXVlc3Rpb24gJiZcbiAgICAgICFxdWVzdGlvbi52aXNpYmxlICYmXG4gICAgICB0aGlzLmNsZWFySW52aXNpYmxlVmFsdWVzID09IFwib25IaWRkZW5cIlxuICAgICkge1xuICAgICAgcXVlc3Rpb24uY2xlYXJWYWx1ZSgpO1xuICAgIH1cbiAgfVxuICBwYWdlVmlzaWJpbGl0eUNoYW5nZWQocGFnZTogSVBhZ2UsIG5ld1ZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSW5kZXhlcygpO1xuICAgIHRoaXMub25QYWdlVmlzaWJsZUNoYW5nZWQuZmlyZSh0aGlzLCB7IHBhZ2U6IHBhZ2UsIHZpc2libGU6IG5ld1ZhbHVlIH0pO1xuICB9XG4gIHBhbmVsVmlzaWJpbGl0eUNoYW5nZWQocGFuZWw6IElQYW5lbCwgbmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJbmRleGVzKCk7XG4gICAgdGhpcy5vblBhbmVsVmlzaWJsZUNoYW5nZWQuZmlyZSh0aGlzLCB7IHBhbmVsOiBwYW5lbCwgdmlzaWJsZTogbmV3VmFsdWUgfSk7XG4gIH1cbiAgcXVlc3Rpb25BZGRlZChcbiAgICBxdWVzdGlvbjogSVF1ZXN0aW9uLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgcGFyZW50UGFuZWw6IGFueSxcbiAgICByb290UGFuZWw6IGFueVxuICApIHtcbiAgICBpZiAoIXF1ZXN0aW9uLm5hbWUpIHtcbiAgICAgIHF1ZXN0aW9uLm5hbWUgPSB0aGlzLmdlbmVyYXRlTmV3TmFtZShcbiAgICAgICAgdGhpcy5nZXRBbGxRdWVzdGlvbnMoZmFsc2UsIHRydWUpLFxuICAgICAgICBcInF1ZXN0aW9uXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghISg8UXVlc3Rpb24+cXVlc3Rpb24pLnBhZ2UpIHtcbiAgICAgIHRoaXMucXVlc3Rpb25IYXNoZXNBZGRlZCg8UXVlc3Rpb24+cXVlc3Rpb24pO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHtcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUluZGV4ZXMoKTtcbiAgICB9XG4gICAgdGhpcy5vblF1ZXN0aW9uQWRkZWQuZmlyZSh0aGlzLCB7XG4gICAgICBxdWVzdGlvbjogcXVlc3Rpb24sXG4gICAgICBuYW1lOiBxdWVzdGlvbi5uYW1lLFxuICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgcGFyZW50UGFuZWw6IHBhcmVudFBhbmVsLFxuICAgICAgcm9vdFBhbmVsOiByb290UGFuZWxcbiAgICB9KTtcbiAgfVxuICBxdWVzdGlvblJlbW92ZWQocXVlc3Rpb246IElRdWVzdGlvbikge1xuICAgIHRoaXMucXVlc3Rpb25IYXNoZXNSZW1vdmVkKFxuICAgICAgPFF1ZXN0aW9uPnF1ZXN0aW9uLFxuICAgICAgcXVlc3Rpb24ubmFtZSxcbiAgICAgIHF1ZXN0aW9uLmdldFZhbHVlTmFtZSgpXG4gICAgKTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJbmRleGVzKCk7XG4gICAgdGhpcy5vblF1ZXN0aW9uUmVtb3ZlZC5maXJlKHRoaXMsIHtcbiAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbixcbiAgICAgIG5hbWU6IHF1ZXN0aW9uLm5hbWVcbiAgICB9KTtcbiAgfVxuICBxdWVzdGlvblJlbmFtZWQoXG4gICAgcXVlc3Rpb246IElRdWVzdGlvbixcbiAgICBvbGROYW1lOiBzdHJpbmcsXG4gICAgb2xkVmFsdWVOYW1lOiBzdHJpbmdcbiAgKTogYW55IHtcbiAgICB0aGlzLnF1ZXN0aW9uSGFzaGVzUmVtb3ZlZCg8UXVlc3Rpb24+cXVlc3Rpb24sIG9sZE5hbWUsIG9sZFZhbHVlTmFtZSk7XG4gICAgdGhpcy5xdWVzdGlvbkhhc2hlc0FkZGVkKDxRdWVzdGlvbj5xdWVzdGlvbik7XG4gIH1cbiAgcHJpdmF0ZSBxdWVzdGlvbkhhc2hlcyA9IHtcbiAgICBuYW1lczoge30sXG4gICAgbmFtZXNJbnNlbnNpdGl2ZToge30sXG4gICAgdmFsdWVOYW1lczoge30sXG4gICAgdmFsdWVOYW1lc0luc2Vuc2l0aXZlOiB7fVxuICB9O1xuICBwcml2YXRlIHF1ZXN0aW9uSGFzaGVzQ2xlYXIoKSB7XG4gICAgdGhpcy5xdWVzdGlvbkhhc2hlcy5uYW1lcyA9IHt9O1xuICAgIHRoaXMucXVlc3Rpb25IYXNoZXMubmFtZXNJbnNlbnNpdGl2ZSA9IHt9O1xuICAgIHRoaXMucXVlc3Rpb25IYXNoZXMudmFsdWVOYW1lcyA9IHt9O1xuICAgIHRoaXMucXVlc3Rpb25IYXNoZXMudmFsdWVOYW1lc0luc2Vuc2l0aXZlID0ge307XG4gIH1cbiAgcHJpdmF0ZSBxdWVzdGlvbkhhc2hlc1BhbmVsQWRkZWQocGFuZWw6IFBhbmVsTW9kZWxCYXNlKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHJldHVybjtcbiAgICB2YXIgcXVlc3Rpb25zID0gcGFuZWwucXVlc3Rpb25zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnF1ZXN0aW9uSGFzaGVzQWRkZWQocXVlc3Rpb25zW2ldKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBxdWVzdGlvbkhhc2hlc0FkZGVkKHF1ZXN0aW9uOiBRdWVzdGlvbikge1xuICAgIHRoaXMucXVlc3Rpb25IYXNoQWRkZWRDb3JlKFxuICAgICAgdGhpcy5xdWVzdGlvbkhhc2hlcy5uYW1lcyxcbiAgICAgIHF1ZXN0aW9uLFxuICAgICAgcXVlc3Rpb24ubmFtZVxuICAgICk7XG4gICAgdGhpcy5xdWVzdGlvbkhhc2hBZGRlZENvcmUoXG4gICAgICB0aGlzLnF1ZXN0aW9uSGFzaGVzLm5hbWVzSW5zZW5zaXRpdmUsXG4gICAgICBxdWVzdGlvbixcbiAgICAgIHF1ZXN0aW9uLm5hbWUudG9Mb3dlckNhc2UoKVxuICAgICk7XG4gICAgdGhpcy5xdWVzdGlvbkhhc2hBZGRlZENvcmUoXG4gICAgICB0aGlzLnF1ZXN0aW9uSGFzaGVzLnZhbHVlTmFtZXMsXG4gICAgICBxdWVzdGlvbixcbiAgICAgIHF1ZXN0aW9uLmdldFZhbHVlTmFtZSgpXG4gICAgKTtcbiAgICB0aGlzLnF1ZXN0aW9uSGFzaEFkZGVkQ29yZShcbiAgICAgIHRoaXMucXVlc3Rpb25IYXNoZXMudmFsdWVOYW1lc0luc2Vuc2l0aXZlLFxuICAgICAgcXVlc3Rpb24sXG4gICAgICBxdWVzdGlvbi5nZXRWYWx1ZU5hbWUoKS50b0xvd2VyQ2FzZSgpXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIHF1ZXN0aW9uSGFzaGVzUmVtb3ZlZChcbiAgICBxdWVzdGlvbjogUXVlc3Rpb24sXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHZhbHVlTmFtZTogc3RyaW5nXG4gICkge1xuICAgIGlmICghIW5hbWUpIHtcbiAgICAgIHRoaXMucXVlc3Rpb25IYXNoUmVtb3ZlZENvcmUodGhpcy5xdWVzdGlvbkhhc2hlcy5uYW1lcywgcXVlc3Rpb24sIG5hbWUpO1xuICAgICAgdGhpcy5xdWVzdGlvbkhhc2hSZW1vdmVkQ29yZShcbiAgICAgICAgdGhpcy5xdWVzdGlvbkhhc2hlcy5uYW1lc0luc2Vuc2l0aXZlLFxuICAgICAgICBxdWVzdGlvbixcbiAgICAgICAgbmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoISF2YWx1ZU5hbWUpIHtcbiAgICAgIHRoaXMucXVlc3Rpb25IYXNoUmVtb3ZlZENvcmUoXG4gICAgICAgIHRoaXMucXVlc3Rpb25IYXNoZXMudmFsdWVOYW1lcyxcbiAgICAgICAgcXVlc3Rpb24sXG4gICAgICAgIHZhbHVlTmFtZVxuICAgICAgKTtcbiAgICAgIHRoaXMucXVlc3Rpb25IYXNoUmVtb3ZlZENvcmUoXG4gICAgICAgIHRoaXMucXVlc3Rpb25IYXNoZXMudmFsdWVOYW1lc0luc2Vuc2l0aXZlLFxuICAgICAgICBxdWVzdGlvbixcbiAgICAgICAgdmFsdWVOYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcXVlc3Rpb25IYXNoQWRkZWRDb3JlKGhhc2g6IGFueSwgcXVlc3Rpb246IFF1ZXN0aW9uLCBuYW1lOiBzdHJpbmcpIHtcbiAgICB2YXIgcmVzID0gaGFzaFtuYW1lXTtcbiAgICBpZiAoISFyZXMpIHtcbiAgICAgIHZhciByZXMgPSBoYXNoW25hbWVdO1xuICAgICAgaWYgKHJlcy5pbmRleE9mKHF1ZXN0aW9uKSA8IDApIHtcbiAgICAgICAgcmVzLnB1c2gocXVlc3Rpb24pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBoYXNoW25hbWVdID0gW3F1ZXN0aW9uXTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBxdWVzdGlvbkhhc2hSZW1vdmVkQ29yZShoYXNoOiBhbnksIHF1ZXN0aW9uOiBRdWVzdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgdmFyIHJlcyA9IGhhc2hbbmFtZV07XG4gICAgaWYgKCFyZXMpIHJldHVybjtcbiAgICB2YXIgaW5kZXggPSByZXMuaW5kZXhPZihxdWVzdGlvbik7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHJlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgICBpZiAocmVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICBkZWxldGUgaGFzaFtuYW1lXTtcbiAgICB9XG4gIH1cbiAgcGFuZWxBZGRlZChwYW5lbDogSUVsZW1lbnQsIGluZGV4OiBudW1iZXIsIHBhcmVudFBhbmVsOiBhbnksIHJvb3RQYW5lbDogYW55KSB7XG4gICAgaWYgKCFwYW5lbC5uYW1lKSB7XG4gICAgICBwYW5lbC5uYW1lID0gdGhpcy5nZW5lcmF0ZU5ld05hbWUoXG4gICAgICAgIHRoaXMuZ2V0QWxsUGFuZWxzKGZhbHNlLCB0cnVlKSxcbiAgICAgICAgXCJwYW5lbFwiXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnF1ZXN0aW9uSGFzaGVzUGFuZWxBZGRlZCg8UGFuZWxNb2RlbEJhc2U+KDxhbnk+cGFuZWwpKTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJbmRleGVzKCk7XG4gICAgdGhpcy5vblBhbmVsQWRkZWQuZmlyZSh0aGlzLCB7XG4gICAgICBwYW5lbDogcGFuZWwsXG4gICAgICBuYW1lOiBwYW5lbC5uYW1lLFxuICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgcGFyZW50UGFuZWw6IHBhcmVudFBhbmVsLFxuICAgICAgcm9vdFBhbmVsOiByb290UGFuZWxcbiAgICB9KTtcbiAgfVxuICBwYW5lbFJlbW92ZWQocGFuZWw6IElFbGVtZW50KSB7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSW5kZXhlcygpO1xuICAgIHRoaXMub25QYW5lbFJlbW92ZWQuZmlyZSh0aGlzLCB7IHBhbmVsOiBwYW5lbCwgbmFtZTogcGFuZWwubmFtZSB9KTtcbiAgfVxuICB2YWxpZGF0ZVF1ZXN0aW9uKHF1ZXN0aW9uOiBJUXVlc3Rpb24pOiBTdXJ2ZXlFcnJvciB7XG4gICAgaWYgKHRoaXMub25WYWxpZGF0ZVF1ZXN0aW9uLmlzRW1wdHkpIHJldHVybiBudWxsO1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgbmFtZTogcXVlc3Rpb24ubmFtZSxcbiAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbixcbiAgICAgIHZhbHVlOiBxdWVzdGlvbi52YWx1ZSxcbiAgICAgIGVycm9yOiA8YW55Pm51bGxcbiAgICB9O1xuICAgIHRoaXMub25WYWxpZGF0ZVF1ZXN0aW9uLmZpcmUodGhpcywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnMuZXJyb3IgPyBuZXcgQ3VzdG9tRXJyb3Iob3B0aW9ucy5lcnJvciwgdGhpcykgOiBudWxsO1xuICB9XG4gIHZhbGlkYXRlUGFuZWwocGFuZWw6IElQYW5lbCk6IFN1cnZleUVycm9yIHtcbiAgICBpZiAodGhpcy5vblZhbGlkYXRlUGFuZWwuaXNFbXB0eSkgcmV0dXJuIG51bGw7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBuYW1lOiBwYW5lbC5uYW1lLFxuICAgICAgcGFuZWw6IHBhbmVsLFxuICAgICAgZXJyb3I6IDxhbnk+bnVsbFxuICAgIH07XG4gICAgdGhpcy5vblZhbGlkYXRlUGFuZWwuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICByZXR1cm4gb3B0aW9ucy5lcnJvciA/IG5ldyBDdXN0b21FcnJvcihvcHRpb25zLmVycm9yLCB0aGlzKSA6IG51bGw7XG4gIH1cbiAgcHJvY2Vzc0h0bWwoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YXIgb3B0aW9ucyA9IHsgaHRtbDogaHRtbCB9O1xuICAgIHRoaXMub25Qcm9jZXNzSHRtbC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NUZXh0KG9wdGlvbnMuaHRtbCwgdHJ1ZSk7XG4gIH1cbiAgcHJvY2Vzc1RleHQodGV4dDogc3RyaW5nLCByZXR1cm5EaXNwbGF5VmFsdWU6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NUZXh0RXgodGV4dCwgcmV0dXJuRGlzcGxheVZhbHVlLCBmYWxzZSkudGV4dDtcbiAgfVxuICBwcm9jZXNzVGV4dEV4KFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICByZXR1cm5EaXNwbGF5VmFsdWU6IGJvb2xlYW4sXG4gICAgZG9FbmNvZGluZzogYm9vbGVhblxuICApOiBhbnkge1xuICAgIHZhciByZXMgPSB7XG4gICAgICB0ZXh0OiB0aGlzLnByb2Nlc3NUZXh0Q29yZSh0ZXh0LCByZXR1cm5EaXNwbGF5VmFsdWUsIGRvRW5jb2RpbmcpLFxuICAgICAgaGFzQWxsVmFsdWVzT25MYXN0UnVuOiB0cnVlXG4gICAgfTtcbiAgICByZXMuaGFzQWxsVmFsdWVzT25MYXN0UnVuID0gdGhpcy50ZXh0UHJlUHJvY2Vzc29yLmhhc0FsbFZhbHVlc09uTGFzdFJ1bjtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgcHJvY2Vzc1RleHRDb3JlKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICByZXR1cm5EaXNwbGF5VmFsdWU6IGJvb2xlYW4sXG4gICAgZG9FbmNvZGluZzogYm9vbGVhbiA9IGZhbHNlXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNEZXNpZ25Nb2RlKSByZXR1cm4gdGV4dDtcbiAgICByZXR1cm4gdGhpcy50ZXh0UHJlUHJvY2Vzc29yLnByb2Nlc3ModGV4dCwgcmV0dXJuRGlzcGxheVZhbHVlLCBkb0VuY29kaW5nKTtcbiAgfVxuICBnZXRTdXJ2ZXlNYXJrZG93bkh0bWwoZWxlbWVudDogQmFzZSwgdGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YXIgb3B0aW9ucyA9IHsgZWxlbWVudDogZWxlbWVudCwgdGV4dDogdGV4dCwgaHRtbDogPGFueT5udWxsIH07XG4gICAgdGhpcy5vblRleHRNYXJrZG93bi5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvcHRpb25zLmh0bWw7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjb3JyZWN0ZWQgYW5zd2VycyBvbiBxdWl6XG4gICAqL1xuICBwdWJsaWMgZ2V0Q29ycmVjdGVkQW5zd2VyQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb3JyZWN0ZWRBbnN3ZXJDb3VudENvcmUodHJ1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgcXVpeiBxdWVzdGlvbiBudW1iZXIuIEl0IG1heSBiZSBkaWZmZXJlbnQgZnJvbSBnZXRRdWl6UXVlc3Rpb25zLmxlbmd0aCBiZWNhdXNlIHNvbWUgd2lkZ2V0cyBsaWtlIG1hdHJpeCBtYXkgaGF2ZSBzZXZlcmFsIHF1ZXN0aW9ucy4gRm9yIGV4YW1wbGUgYnkgbnVtYmVyIG9mIHJvd3NcbiAgICogQHNlZSBnZXRRdWl6UXVlc3Rpb25zXG4gICAqL1xuICBwdWJsaWMgZ2V0UXVpelF1ZXN0aW9uQ291bnQoKTogbnVtYmVyIHtcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy5nZXRRdWl6UXVlc3Rpb25zKCk7XG4gICAgdmFyIHJlcyA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcyArPSAoPFF1ZXN0aW9uPnF1ZXN0aW9uc1tpXSkucXVpelF1ZXN0aW9uQ291bnQ7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBpbmNvcnJlY3RlZCBhbnN3ZXJzIG9uIHF1aXpcbiAgICovXG4gIHB1YmxpYyBnZXRJbkNvcnJlY3RlZEFuc3dlckNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29ycmVjdGVkQW5zd2VyQ291bnRDb3JlKGZhbHNlKTtcbiAgfVxuICBwcml2YXRlIGdldENvcnJlY3RlZEFuc3dlckNvdW50Q29yZShpc0NvcnJlY3Q6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLmdldFF1aXpRdWVzdGlvbnMoKTtcbiAgICB2YXIgY291bnRlciA9IDA7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBxdWVzdGlvbjogPElRdWVzdGlvbj5udWxsLFxuICAgICAgcmVzdWx0OiBmYWxzZSxcbiAgICAgIGNvcnJlY3RBbnN3ZXJzOiAwLFxuICAgICAgaW5jb3JyZWN0QW5zd2VyczogMFxuICAgIH07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxID0gPFF1ZXN0aW9uPnF1ZXN0aW9uc1tpXTtcbiAgICAgIHZhciBxdWl6UXVlc3Rpb25Db3VudCA9IHEucXVpelF1ZXN0aW9uQ291bnQ7XG4gICAgICBvcHRpb25zLnF1ZXN0aW9uID0gcTtcbiAgICAgIG9wdGlvbnMuY29ycmVjdEFuc3dlcnMgPSBxLmNvcnJlY3RBbnN3ZXJDb3VudDtcbiAgICAgIG9wdGlvbnMuaW5jb3JyZWN0QW5zd2VycyA9IHF1aXpRdWVzdGlvbkNvdW50IC0gb3B0aW9ucy5jb3JyZWN0QW5zd2VycztcbiAgICAgIG9wdGlvbnMucmVzdWx0ID0gb3B0aW9ucy5xdWVzdGlvbi5pc0Fuc3dlckNvcnJlY3QoKTtcbiAgICAgIHRoaXMub25Jc0Fuc3dlckNvcnJlY3QuZmlyZSh0aGlzLCBvcHRpb25zKTtcbiAgICAgIGlmIChpc0NvcnJlY3QpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMucmVzdWx0IHx8IG9wdGlvbnMuY29ycmVjdEFuc3dlcnMgPCBxdWl6UXVlc3Rpb25Db3VudCkge1xuICAgICAgICAgIHZhciBhZGRDb3VudCA9IG9wdGlvbnMuY29ycmVjdEFuc3dlcnM7XG4gICAgICAgICAgaWYgKGFkZENvdW50ID09IDAgJiYgb3B0aW9ucy5yZXN1bHQpIGFkZENvdW50ID0gMTtcbiAgICAgICAgICBjb3VudGVyICs9IGFkZENvdW50O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIW9wdGlvbnMucmVzdWx0IHx8IG9wdGlvbnMuaW5jb3JyZWN0QW5zd2VycyA8IHF1aXpRdWVzdGlvbkNvdW50KSB7XG4gICAgICAgICAgY291bnRlciArPSBvcHRpb25zLmluY29ycmVjdEFuc3dlcnM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvdW50ZXI7XG4gIH1cbiAgZ2V0Q29ycmVjdGVkQW5zd2VycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldENvcnJlY3RlZEFuc3dlckNvdW50KCk7XG4gIH1cbiAgZ2V0SW5Db3JyZWN0ZWRBbnN3ZXJzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5Db3JyZWN0ZWRBbnN3ZXJDb3VudCgpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gJ3RvcCcgb3IgJ2JvdHRvbScgaWYgeW91IHdhbnQgdG8gc2hvdyB0aGUgUGFuZWwgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBob3cgbXVjaCB0aW1lIHRoZSBlbmQtdXNlciBzcGVudCBvZiB0aGUgc3VydmV5L3BhZ2UuXG4gICAqIElmIHRoZSB2YWx1ZSBkb2Vzbid0IGVxdWFsICdub25lJyB0aGVuIHN1cnZleSBjYWxscyBzdGFydFRpbWVyKCkgbWV0aG9kIG9uIHN1cnZleSByZW5kZXJpbmcuXG4gICAqIEBzZWUgc2hvd1RpbWVyUGFuZWxNb2RlXG4gICAqIEBzZWUgc3RhcnRUaW1lclxuICAgKiBAc2VlIHN0b3BUaW1lclxuICAgKi9cbiAgcHVibGljIGdldCBzaG93VGltZXJQYW5lbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93VGltZXJQYW5lbFwiLCBcIm5vbmVcIik7XG4gIH1cbiAgcHVibGljIHNldCBzaG93VGltZXJQYW5lbCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dUaW1lclBhbmVsXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBpc1RpbWVyUGFuZWxTaG93aW5nT25Ub3AoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNUaW1lclN0YXJ0ZWQgJiYgdGhpcy5zaG93VGltZXJQYW5lbCA9PSBcInRvcFwiO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNUaW1lclBhbmVsU2hvd2luZ09uQm90dG9tKCkge1xuICAgIHJldHVybiB0aGlzLmlzVGltZXJTdGFydGVkICYmIHRoaXMuc2hvd1RpbWVyUGFuZWwgPT0gXCJib3R0b21cIjtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gJ3BhZ2UnIG9yICdzdXJ2ZXknIHRvIHNob3cgdGhlIHRpbWVyIGluZm9ybWF0aW9uIGZvciBwYWdlIG9yIHN1cnZleSBvbmx5LlxuICAgKiBVc2Ugb25UaW1lclBhbmVsSW5mb1RleHQgZXZlbnQgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHRleHQuXG4gICAqIEBzZWUgc2hvd1RpbWVyUGFuZWxcbiAgICogQHNlZSBvblRpbWVyUGFuZWxJbmZvVGV4dFxuICAgKi9cbiAgcHVibGljIGdldCBzaG93VGltZXJQYW5lbE1vZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic2hvd1RpbWVyUGFuZWxNb2RlXCIsIFwiYWxsXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd1RpbWVyUGFuZWxNb2RlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic2hvd1RpbWVyUGFuZWxNb2RlXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCB0aW1lckluZm9UZXh0KCk6IHN0cmluZyB7XG4gICAgdmFyIG9wdGlvbnMgPSB7IHRleHQ6IHRoaXMuZ2V0VGltZXJJbmZvVGV4dCgpIH07XG4gICAgdGhpcy5vblRpbWVyUGFuZWxJbmZvVGV4dC5maXJlKHRoaXMsIG9wdGlvbnMpO1xuICAgIHZhciBsb2MgPSBuZXcgTG9jYWxpemFibGVTdHJpbmcodGhpcywgdHJ1ZSk7XG4gICAgbG9jLnRleHQgPSBvcHRpb25zLnRleHQ7XG4gICAgcmV0dXJuIGxvYy50ZXh0T3JIdG1sO1xuICB9XG4gIHByaXZhdGUgZ2V0VGltZXJJbmZvVGV4dCgpIHtcbiAgICB2YXIgcGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgaWYgKCFwYWdlKSByZXR1cm4gXCJcIjtcbiAgICB2YXIgcGFnZVNwZW50ID0gdGhpcy5nZXREaXNwbGF5VGltZShwYWdlLnRpbWVTcGVudCk7XG4gICAgdmFyIHN1cnZleVNwZW50ID0gdGhpcy5nZXREaXNwbGF5VGltZSh0aGlzLnRpbWVTcGVudCk7XG4gICAgdmFyIHBhZ2VMaW1pdFNlYyA9IHRoaXMuZ2V0UGFnZU1heFRpbWVUb0ZpbmlzaChwYWdlKTtcbiAgICB2YXIgcGFnZUxpbWl0ID0gdGhpcy5nZXREaXNwbGF5VGltZShwYWdlTGltaXRTZWMpO1xuICAgIHZhciBzdXJ2ZXlMaW1pdCA9IHRoaXMuZ2V0RGlzcGxheVRpbWUodGhpcy5tYXhUaW1lVG9GaW5pc2gpO1xuICAgIGlmICh0aGlzLnNob3dUaW1lclBhbmVsTW9kZSA9PSBcInBhZ2VcIilcbiAgICAgIHJldHVybiB0aGlzLmdldFRpbWVySW5mb1BhZ2VUZXh0KHBhZ2UsIHBhZ2VTcGVudCwgcGFnZUxpbWl0KTtcbiAgICBpZiAodGhpcy5zaG93VGltZXJQYW5lbE1vZGUgPT0gXCJzdXJ2ZXlcIilcbiAgICAgIHJldHVybiB0aGlzLmdldFRpbWVySW5mb1N1cnZleVRleHQoc3VydmV5U3BlbnQsIHN1cnZleUxpbWl0KTtcbiAgICBpZiAodGhpcy5zaG93VGltZXJQYW5lbE1vZGUgPT0gXCJhbGxcIikge1xuICAgICAgaWYgKHBhZ2VMaW1pdFNlYyA8PSAwICYmIHRoaXMubWF4VGltZVRvRmluaXNoIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9jU3RyaW5nKFwidGltZXJTcGVudEFsbFwiKVtcImZvcm1hdFwiXShcbiAgICAgICAgICBwYWdlU3BlbnQsXG4gICAgICAgICAgc3VydmV5U3BlbnRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYWdlTGltaXRTZWMgPiAwICYmIHRoaXMubWF4VGltZVRvRmluaXNoID4gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRMb2NTdHJpbmcoXCJ0aW1lckxpbWl0QWxsXCIpW1wiZm9ybWF0XCJdKFxuICAgICAgICAgIHBhZ2VTcGVudCxcbiAgICAgICAgICBwYWdlTGltaXQsXG4gICAgICAgICAgc3VydmV5U3BlbnQsXG4gICAgICAgICAgc3VydmV5TGltaXRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGxldCBwYWdlVGV4dCA9IHRoaXMuZ2V0VGltZXJJbmZvUGFnZVRleHQocGFnZSwgcGFnZVNwZW50LCBwYWdlTGltaXQpO1xuICAgICAgbGV0IHN1cnZleVRleHQgPSB0aGlzLmdldFRpbWVySW5mb1N1cnZleVRleHQoc3VydmV5U3BlbnQsIHN1cnZleUxpbWl0KTtcbiAgICAgIHJldHVybiBwYWdlVGV4dCArIFwiIFwiICsgc3VydmV5VGV4dDtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbiAgcHJpdmF0ZSBnZXRUaW1lckluZm9QYWdlVGV4dChcbiAgICBwYWdlOiBQYWdlTW9kZWwsXG4gICAgcGFnZVNwZW50OiBzdHJpbmcsXG4gICAgcGFnZUxpbWl0OiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlTWF4VGltZVRvRmluaXNoKHBhZ2UpID4gMFxuICAgICAgPyB0aGlzLmdldExvY1N0cmluZyhcInRpbWVyTGltaXRQYWdlXCIpW1wiZm9ybWF0XCJdKHBhZ2VTcGVudCwgcGFnZUxpbWl0KVxuICAgICAgOiB0aGlzLmdldExvY1N0cmluZyhcInRpbWVyU3BlbnRQYWdlXCIpW1wiZm9ybWF0XCJdKHBhZ2VTcGVudCwgcGFnZUxpbWl0KTtcbiAgfVxuICBwcml2YXRlIGdldFRpbWVySW5mb1N1cnZleVRleHQoXG4gICAgc3VydmV5U3BlbnQ6IHN0cmluZyxcbiAgICBzdXJ2ZXlMaW1pdDogc3RyaW5nXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWF4VGltZVRvRmluaXNoID4gMFxuICAgICAgPyB0aGlzLmdldExvY1N0cmluZyhcInRpbWVyTGltaXRTdXJ2ZXlcIilbXCJmb3JtYXRcIl0oXG4gICAgICAgICAgc3VydmV5U3BlbnQsXG4gICAgICAgICAgc3VydmV5TGltaXRcbiAgICAgICAgKVxuICAgICAgOiB0aGlzLmdldExvY1N0cmluZyhcInRpbWVyU3BlbnRTdXJ2ZXlcIilbXCJmb3JtYXRcIl0oXG4gICAgICAgICAgc3VydmV5U3BlbnQsXG4gICAgICAgICAgc3VydmV5TGltaXRcbiAgICAgICAgKTtcbiAgfVxuICBwcml2YXRlIGdldERpc3BsYXlUaW1lKHZhbDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICB2YXIgbWluID0gTWF0aC5mbG9vcih2YWwgLyA2MCk7XG4gICAgdmFyIHNlYyA9IHZhbCAlIDYwO1xuICAgIHZhciByZXMgPSBcIlwiO1xuICAgIGlmIChtaW4gPiAwKSB7XG4gICAgICByZXMgKz0gbWluICsgXCIgXCIgKyB0aGlzLmdldExvY1N0cmluZyhcInRpbWVyTWluXCIpO1xuICAgIH1cbiAgICBpZiAocmVzICYmIHNlYyA9PSAwKSByZXR1cm4gcmVzO1xuICAgIGlmIChyZXMpIHJlcyArPSBcIiBcIjtcbiAgICByZXR1cm4gcmVzICsgc2VjICsgXCIgXCIgKyB0aGlzLmdldExvY1N0cmluZyhcInRpbWVyU2VjXCIpO1xuICB9XG4gIHByaXZhdGUgdGltZXJGdW5jOiBhbnkgPSBudWxsO1xuICAvKipcbiAgICogQ2FsbCB0aGlzIG1ldGhvZCB0byBzdGFydCB0aW1lciB0aGF0IHdpbGwgY2FsY3VsYXRlIGhvdyBtdWNoIHRpbWUgZW5kLXVzZXIgc3BlbmRzIG9uIHRoZSBzdXJ2ZXkgb3Igb24gcGFnZXNcbiAgICogQHNlZSBzdG9wVGltZXJcbiAgICogQHNlZSB0aW1lU3BlbnRcbiAgICovXG4gIHB1YmxpYyBzdGFydFRpbWVyKCkge1xuICAgIGlmICh0aGlzLmlzVGltZXJTdGFydGVkIHx8IHRoaXMuaXNEZXNpZ25Nb2RlKSByZXR1cm47XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMudGltZXJGdW5jID0gZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLmRvVGltZXIoKTtcbiAgICB9O1xuICAgIHRoaXMuaXNUaW1lclN0YXJ0ZWQgPSB0cnVlO1xuICAgIFN1cnZleVRpbWVyLmluc3RhbmNlLnN0YXJ0KHRoaXMudGltZXJGdW5jKTtcbiAgfVxuICBzdGFydFRpbWVyRnJvbVVJKCkge1xuICAgIGlmICh0aGlzLnNob3dUaW1lclBhbmVsICE9IFwibm9uZVwiICYmIHRoaXMuc3RhdGUgPT09IFwicnVubmluZ1wiKSB7XG4gICAgICB0aGlzLnN0YXJ0VGltZXIoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFN0b3AgdGhlIHRpbWVyLlxuICAgKiBAc2VlIHN0YXJ0VGltZXJcbiAgICogQHNlZSB0aW1lU3BlbnRcbiAgICovXG4gIHB1YmxpYyBzdG9wVGltZXIoKSB7XG4gICAgaWYgKCF0aGlzLmlzVGltZXJTdGFydGVkKSByZXR1cm47XG4gICAgdGhpcy5pc1RpbWVyU3RhcnRlZCA9IGZhbHNlO1xuICAgIFN1cnZleVRpbWVyLmluc3RhbmNlLnN0b3AodGhpcy50aW1lckZ1bmMpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB0aW1lIGluIHNlY29uZHMgZW5kLXVzZXIgc3BlbmRzIG9uIHRoZSBzdXJ2ZXlcbiAgICogQHNlZSBzdGFydFRpbWVyXG4gICAqIEBzZWUgUGFnZU1vZGVsLnRpbWVTcGVudFxuICAgKi9cbiAgcHVibGljIHRpbWVTcGVudCA9IDA7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIHNlY29uZHMgdGhhdCBlbmQtdXNlciBoYXMgdG8gY29tcGxldGUgdGhlIHN1cnZleS4gSWYgdGhlIHZhbHVlIGlzIDAgb3IgbGVzcywgdGhlIGVuZC11c2VyIGhhcyB1bmxpbWl0ZWQgbnVtYmVyIG9mIHRpbWUgdG8gZmluaXNoIHRoZSBzdXJ2ZXkuXG4gICAqIEBzZWUgc3RhcnRUaW1lclxuICAgKiBAc2VlIG1heFRpbWVUb0ZpbmlzaFBhZ2VcbiAgICovXG4gIHB1YmxpYyBnZXQgbWF4VGltZVRvRmluaXNoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIm1heFRpbWVUb0ZpbmlzaFwiLCAwKTtcbiAgfVxuICBwdWJsaWMgc2V0IG1heFRpbWVUb0ZpbmlzaCh2YWw6IG51bWJlcikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIm1heFRpbWVUb0ZpbmlzaFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIHNlY29uZHMgdGhhdCBlbmQtdXNlciBoYXMgdG8gY29tcGxldGUgYSBwYWdlIGluIHRoZSBzdXJ2ZXkuIElmIHRoZSB2YWx1ZSBpcyAwIG9yIGxlc3MsIHRoZSBlbmQtdXNlciBoYXMgdW5saW1pdGVkIHRpbWUuIFlvdSBtYXkgb3ZlcnJpZGUgdGhpcyB2YWx1ZSBmb3IgZXZlcnkgcGFnZS5cbiAgICogQHNlZSBzdGFydFRpbWVyXG4gICAqIEBzZWUgbWF4VGltZVRvRmluaXNoXG4gICAqIEBzZWUgUGFnZU1vZGVsLm1heFRpbWVUb0ZpbmlzaFxuICAgKi9cbiAgcHVibGljIGdldCBtYXhUaW1lVG9GaW5pc2hQYWdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIm1heFRpbWVUb0ZpbmlzaFBhZ2VcIiwgMCk7XG4gIH1cbiAgcHVibGljIHNldCBtYXhUaW1lVG9GaW5pc2hQYWdlKHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwibWF4VGltZVRvRmluaXNoUGFnZVwiLCB2YWwpO1xuICB9XG4gIHByaXZhdGUgZ2V0UGFnZU1heFRpbWVUb0ZpbmlzaChwYWdlOiBQYWdlTW9kZWwpIHtcbiAgICBpZiAoIXBhZ2UgfHwgcGFnZS5tYXhUaW1lVG9GaW5pc2ggPCAwKSByZXR1cm4gMDtcbiAgICByZXR1cm4gcGFnZS5tYXhUaW1lVG9GaW5pc2ggPiAwXG4gICAgICA/IHBhZ2UubWF4VGltZVRvRmluaXNoXG4gICAgICA6IHRoaXMubWF4VGltZVRvRmluaXNoUGFnZTtcbiAgfVxuICBwcm90ZWN0ZWQgZG9UaW1lcigpIHtcbiAgICB2YXIgcGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgaWYgKHBhZ2UpIHtcbiAgICAgIHBhZ2UudGltZVNwZW50ID0gcGFnZS50aW1lU3BlbnQgKyAxO1xuICAgIH1cbiAgICB0aGlzLnRpbWVTcGVudCA9IHRoaXMudGltZVNwZW50ICsgMTtcbiAgICB0aGlzLm9uVGltZXIuZmlyZSh0aGlzLCB7fSk7XG4gICAgaWYgKHRoaXMubWF4VGltZVRvRmluaXNoID4gMCAmJiB0aGlzLm1heFRpbWVUb0ZpbmlzaCA9PSB0aGlzLnRpbWVTcGVudCkge1xuICAgICAgdGhpcy5jb21wbGV0ZUxhc3RQYWdlKCk7XG4gICAgfVxuICAgIGlmIChwYWdlKSB7XG4gICAgICB2YXIgcGFnZUxpbWl0ID0gdGhpcy5nZXRQYWdlTWF4VGltZVRvRmluaXNoKHBhZ2UpO1xuICAgICAgaWYgKHBhZ2VMaW1pdCA+IDAgJiYgcGFnZUxpbWl0ID09IHBhZ2UudGltZVNwZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzTGFzdFBhZ2UpIHtcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlTGFzdFBhZ2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm5leHRQYWdlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy9JU3VydmV5SW1wbGVtZW50b3JcbiAgZ2VTdXJ2ZXlEYXRhKCk6IElTdXJ2ZXlEYXRhIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBnZXRTdXJ2ZXkoKTogSVN1cnZleSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZ2V0VGV4dFByb2Nlc3NvcigpOiBJVGV4dFByb2Nlc3NvciB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLy9JU3VydmV5VHJpZ2dlck93bmVyXG4gIGdldE9iamVjdHMocGFnZXM6IHN0cmluZ1tdLCBxdWVzdGlvbnM6IHN0cmluZ1tdKTogYW55W10ge1xuICAgIHZhciByZXN1bHQ6IGFueVtdID0gW107XG4gICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkocmVzdWx0LCB0aGlzLmdldFBhZ2VzQnlOYW1lcyhwYWdlcykpO1xuICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHJlc3VsdCwgdGhpcy5nZXRRdWVzdGlvbnNCeU5hbWVzKHF1ZXN0aW9ucykpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgc2V0VHJpZ2dlclZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSwgaXNWYXJpYWJsZTogYm9vbGVhbikge1xuICAgIGlmICghbmFtZSkgcmV0dXJuO1xuICAgIGlmIChpc1ZhcmlhYmxlKSB7XG4gICAgICB0aGlzLnNldFZhcmlhYmxlKG5hbWUsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHByb2Nlc3NvciA9IG5ldyBQcm9jZXNzVmFsdWUoKTtcbiAgICAgIHZhciBmaXJzdE5hbWUgPSBwcm9jZXNzb3IuZ2V0Rmlyc3ROYW1lKG5hbWUpO1xuICAgICAgaWYgKGZpcnN0TmFtZSA9PSBuYW1lKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldFZhbHVlKGZpcnN0TmFtZSkpIHJldHVybjtcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLmdldFVuYmluZFZhbHVlKHRoaXMuZ2V0RmlsdGVyZWRWYWx1ZXMoKSk7XG4gICAgICAgIHByb2Nlc3Nvci5zZXRWYWx1ZShkYXRhLCBuYW1lLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZmlyc3ROYW1lLCBkYXRhW2ZpcnN0TmFtZV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb3B5VHJpZ2dlclZhbHVlKG5hbWU6IHN0cmluZywgZnJvbU5hbWU6IHN0cmluZykge1xuICAgIGlmICghbmFtZSB8fCAhZnJvbU5hbWUpIHJldHVybjtcbiAgICB2YXIgcHJvY2Vzc29yID0gbmV3IFByb2Nlc3NWYWx1ZSgpO1xuICAgIHZhciB2YWx1ZSA9IHByb2Nlc3Nvci5nZXRWYWx1ZShmcm9tTmFtZSwgdGhpcy5nZXRGaWx0ZXJlZFZhbHVlcygpKTtcbiAgICB0aGlzLnNldFRyaWdnZXJWYWx1ZShuYW1lLCB2YWx1ZSwgZmFsc2UpO1xuICB9XG4gIGZvY3VzUXVlc3Rpb24obmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5nZXRRdWVzdGlvbkJ5TmFtZShuYW1lLCB0cnVlKTtcbiAgICBpZiAoIXF1ZXN0aW9uIHx8ICFxdWVzdGlvbi5pc1Zpc2libGUgfHwgIXF1ZXN0aW9uLnBhZ2UpIHJldHVybiBmYWxzZTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcXVlc3Rpb24ucGFnZTtcbiAgICBxdWVzdGlvbi5mb2N1cygpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXCJzdXJ2ZXlcIiwgW1xuICB7XG4gICAgbmFtZTogXCJsb2NhbGVcIixcbiAgICBjaG9pY2VzOiAoKSA9PiB7XG4gICAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uLmdldExvY2FsZXMoKTtcbiAgICB9LFxuICAgIG9uR2V0VmFsdWU6IChvYmo6IGFueSk6IGFueSA9PiB7XG4gICAgICByZXR1cm4gb2JqLmxvY2FsZSA9PSBzdXJ2ZXlMb2NhbGl6YXRpb24uZGVmYXVsdExvY2FsZSA/IG51bGwgOiBvYmoubG9jYWxlO1xuICAgIH1cbiAgfSxcbiAgeyBuYW1lOiBcInRpdGxlXCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NUaXRsZVwiIH0sXG4gIHsgbmFtZTogXCJkZXNjcmlwdGlvbjp0ZXh0XCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NEZXNjcmlwdGlvblwiIH0sXG4gIHsgbmFtZTogXCJmb2N1c0ZpcnN0UXVlc3Rpb25BdXRvbWF0aWM6Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlIH0sXG4gIHsgbmFtZTogXCJmb2N1c09uRmlyc3RFcnJvcjpib29sZWFuXCIsIGRlZmF1bHQ6IHRydWUgfSxcbiAgeyBuYW1lOiBcImNvbXBsZXRlZEh0bWw6aHRtbFwiLCBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jQ29tcGxldGVkSHRtbFwiIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbXBsZXRlZEJlZm9yZUh0bWw6aHRtbFwiLFxuICAgIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NDb21wbGV0ZWRCZWZvcmVIdG1sXCJcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiY29tcGxldGVkSHRtbE9uQ29uZGl0aW9uOmh0bWxjb25kaXRpb25zXCIsXG4gICAgY2xhc3NOYW1lOiBcImh0bWxjb25kaXRpb25pdGVtXCJcbiAgfSxcbiAgeyBuYW1lOiBcImxvYWRpbmdIdG1sOmh0bWxcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0xvYWRpbmdIdG1sXCIgfSxcbiAgeyBuYW1lOiBcInBhZ2VzXCIsIGNsYXNzTmFtZTogXCJwYWdlXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gIHtcbiAgICBuYW1lOiBcInF1ZXN0aW9uc1wiLFxuICAgIGFsdGVybmF0aXZlTmFtZTogXCJlbGVtZW50c1wiLFxuICAgIGJhc2VDbGFzc05hbWU6IFwicXVlc3Rpb25cIixcbiAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICBpc0xpZ2h0U2VyaWFsaXphYmxlOiBmYWxzZSxcbiAgICBvbkdldFZhbHVlOiBmdW5jdGlvbihvYmo6IGFueSk6IGFueSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuICAgIG9uU2V0VmFsdWU6IGZ1bmN0aW9uKG9iajogYW55LCB2YWx1ZTogYW55LCBqc29uQ29udmVydGVyOiBhbnkpIHtcbiAgICAgIHZhciBwYWdlID0gb2JqLmFkZE5ld1BhZ2UoXCJcIik7XG4gICAgICBqc29uQ29udmVydGVyLnRvT2JqZWN0KHsgcXVlc3Rpb25zOiB2YWx1ZSB9LCBwYWdlKTtcbiAgICB9XG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcInRyaWdnZXJzOnRyaWdnZXJzXCIsXG4gICAgYmFzZUNsYXNzTmFtZTogXCJzdXJ2ZXl0cmlnZ2VyXCIsXG4gICAgY2xhc3NOYW1lUGFydDogXCJ0cmlnZ2VyXCJcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiY2FsY3VsYXRlZFZhbHVlczpjYWxjdWxhdGVkdmFsdWVzXCIsXG4gICAgY2xhc3NOYW1lOiBcImNhbGN1bGF0ZWR2YWx1ZVwiXG4gIH0sXG4gIHsgbmFtZTogXCJzdXJ2ZXlJZFwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICB7IG5hbWU6IFwic3VydmV5UG9zdElkXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gIHsgbmFtZTogXCJzdXJ2ZXlTaG93RGF0YVNhdmluZzpib29sZWFuXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gIFwiY29va2llTmFtZVwiLFxuICBcInNlbmRSZXN1bHRPblBhZ2VOZXh0OmJvb2xlYW5cIixcbiAge1xuICAgIG5hbWU6IFwic2hvd05hdmlnYXRpb25CdXR0b25zXCIsXG4gICAgZGVmYXVsdDogXCJib3R0b21cIixcbiAgICBjaG9pY2VzOiBbXCJub25lXCIsIFwidG9wXCIsIFwiYm90dG9tXCIsIFwiYm90aFwiXVxuICB9LFxuICB7IG5hbWU6IFwic2hvd1ByZXZCdXR0b246Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlIH0sXG4gIHsgbmFtZTogXCJzaG93VGl0bGU6Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlIH0sXG4gIHsgbmFtZTogXCJzaG93UGFnZVRpdGxlczpib29sZWFuXCIsIGRlZmF1bHQ6IHRydWUgfSxcbiAgeyBuYW1lOiBcInNob3dDb21wbGV0ZWRQYWdlOmJvb2xlYW5cIiwgZGVmYXVsdDogdHJ1ZSB9LFxuICB7XG4gICAgbmFtZTogXCJxdWVzdGlvbnNPcmRlclwiLFxuICAgIGRlZmF1bHQ6IFwiaW5pdGlhbFwiLFxuICAgIGNob2ljZXM6IFtcImluaXRpYWxcIiwgXCJyYW5kb21cIl1cbiAgfSxcbiAgXCJzaG93UGFnZU51bWJlcnM6Ym9vbGVhblwiLFxuICB7XG4gICAgbmFtZTogXCJzaG93UXVlc3Rpb25OdW1iZXJzXCIsXG4gICAgZGVmYXVsdDogXCJvblwiLFxuICAgIGNob2ljZXM6IFtcIm9uXCIsIFwib25QYWdlXCIsIFwib2ZmXCJdXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcInF1ZXN0aW9uVGl0bGVMb2NhdGlvblwiLFxuICAgIGRlZmF1bHQ6IFwidG9wXCIsXG4gICAgY2hvaWNlczogW1widG9wXCIsIFwiYm90dG9tXCIsIFwibGVmdFwiXVxuICB9LFxuICB7XG4gICAgbmFtZTogXCJxdWVzdGlvbkRlc2NyaXB0aW9uTG9jYXRpb25cIixcbiAgICBkZWZhdWx0OiBcInVuZGVyVGl0bGVcIixcbiAgICBjaG9pY2VzOiBbXCJ1bmRlcklucHV0XCIsIFwidW5kZXJUaXRsZVwiXVxuICB9LFxuICB7IG5hbWU6IFwicXVlc3Rpb25FcnJvckxvY2F0aW9uXCIsIGRlZmF1bHQ6IFwidG9wXCIsIGNob2ljZXM6IFtcInRvcFwiLCBcImJvdHRvbVwiXSB9LFxuICB7XG4gICAgbmFtZTogXCJzaG93UHJvZ3Jlc3NCYXJcIixcbiAgICBkZWZhdWx0OiBcIm9mZlwiLFxuICAgIGNob2ljZXM6IFtcIm9mZlwiLCBcInRvcFwiLCBcImJvdHRvbVwiLCBcImJvdGhcIl1cbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicHJvZ3Jlc3NCYXJUeXBlXCIsXG4gICAgZGVmYXVsdDogXCJwYWdlc1wiLFxuICAgIGNob2ljZXM6IFtcInBhZ2VzXCIsIFwicXVlc3Rpb25zXCIsIFwiY29ycmVjdFF1ZXN0aW9uc1wiXVxuICB9LFxuICB7IG5hbWU6IFwibW9kZVwiLCBkZWZhdWx0OiBcImVkaXRcIiwgY2hvaWNlczogW1wiZWRpdFwiLCBcImRpc3BsYXlcIl0gfSxcbiAgeyBuYW1lOiBcInN0b3JlT3RoZXJzQXNDb21tZW50OmJvb2xlYW5cIiwgZGVmYXVsdDogdHJ1ZSB9LFxuICB7IG5hbWU6IFwibWF4VGV4dExlbmd0aDpudW1iZXJcIiwgZGVmYXVsdDogMCwgbWluVmFsdWU6IDAgfSxcbiAgeyBuYW1lOiBcIm1heE90aGVyc0xlbmd0aDpudW1iZXJcIiwgZGVmYXVsdDogMCwgbWluVmFsdWU6IDAgfSxcbiAgXCJnb05leHRQYWdlQXV0b21hdGljOmJvb2xlYW5cIixcbiAge1xuICAgIG5hbWU6IFwiY2xlYXJJbnZpc2libGVWYWx1ZXNcIixcbiAgICBkZWZhdWx0OiBcIm9uQ29tcGxldGVcIixcbiAgICBjaG9pY2VzOiBbXCJub25lXCIsIFwib25Db21wbGV0ZVwiLCBcIm9uSGlkZGVuXCJdXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNoZWNrRXJyb3JzTW9kZVwiLFxuICAgIGRlZmF1bHQ6IFwib25OZXh0UGFnZVwiLFxuICAgIGNob2ljZXM6IFtcIm9uTmV4dFBhZ2VcIiwgXCJvblZhbHVlQ2hhbmdlZFwiLCBcIm9uQ29tcGxldGVcIl1cbiAgfSxcbiAge1xuICAgIG5hbWU6IFwidGV4dFVwZGF0ZU1vZGVcIixcbiAgICBkZWZhdWx0OiBcIm9uQmx1clwiLFxuICAgIGNob2ljZXM6IFtcIm9uQmx1clwiLCBcIm9uVHlwaW5nXCJdXG4gIH0sXG4gIHsgbmFtZTogXCJzdGFydFN1cnZleVRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1N0YXJ0U3VydmV5VGV4dFwiIH0sXG4gIHsgbmFtZTogXCJwYWdlUHJldlRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1BhZ2VQcmV2VGV4dFwiIH0sXG4gIHsgbmFtZTogXCJwYWdlTmV4dFRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1BhZ2VOZXh0VGV4dFwiIH0sXG4gIHsgbmFtZTogXCJjb21wbGV0ZVRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0NvbXBsZXRlVGV4dFwiIH0sXG4gIHsgbmFtZTogXCJyZXF1aXJlZFRleHRcIiwgZGVmYXVsdDogXCIqXCIgfSxcbiAgXCJxdWVzdGlvblN0YXJ0SW5kZXhcIixcbiAge1xuICAgIG5hbWU6IFwicXVlc3Rpb25UaXRsZVRlbXBsYXRlXCIsXG4gICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1F1ZXN0aW9uVGl0bGVUZW1wbGF0ZVwiXG4gIH0sXG4gIHsgbmFtZTogXCJmaXJzdFBhZ2VJc1N0YXJ0ZWQ6Ym9vbGVhblwiLCBkZWZhdWx0OiBmYWxzZSB9LFxuICB7IG5hbWU6IFwiaXNTaW5nbGVQYWdlOmJvb2xlYW5cIiwgZGVmYXVsdDogZmFsc2UgfSxcbiAgeyBuYW1lOiBcIm1heFRpbWVUb0ZpbmlzaDpudW1iZXJcIiwgZGVmYXVsdDogMCwgbWluVmFsdWU6IDAgfSxcbiAgeyBuYW1lOiBcIm1heFRpbWVUb0ZpbmlzaFBhZ2U6bnVtYmVyXCIsIGRlZmF1bHQ6IDAsIG1pblZhbHVlOiAwIH0sXG4gIHtcbiAgICBuYW1lOiBcInNob3dUaW1lclBhbmVsXCIsXG4gICAgZGVmYXVsdDogXCJub25lXCIsXG4gICAgY2hvaWNlczogW1wibm9uZVwiLCBcInRvcFwiLCBcImJvdHRvbVwiXVxuICB9LFxuICB7XG4gICAgbmFtZTogXCJzaG93VGltZXJQYW5lbE1vZGVcIixcbiAgICBkZWZhdWx0OiBcImFsbFwiLFxuICAgIGNob2ljZXM6IFtcImFsbFwiLCBcInBhZ2VcIiwgXCJzdXJ2ZXlcIl1cbiAgfVxuXSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc3VydmV5LnRzIiwiaW1wb3J0IHsgQmFzZSwgU3VydmV5RXJyb3IsIElTdXJ2ZXlFcnJvck93bmVyIH0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgQ3VzdG9tRXJyb3IsIFJlcXVyZU51bWVyaWNFcnJvciB9IGZyb20gXCIuL2Vycm9yXCI7XG5pbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9zdXJ2ZXlTdHJpbmdzXCI7XG5pbXBvcnQgeyBJTG9jYWxpemFibGVPd25lciwgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IENvbmRpdGlvblJ1bm5lciB9IGZyb20gXCIuL2NvbmRpdGlvbnNcIjtcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0b3JSZXN1bHQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IGFueSwgcHVibGljIGVycm9yOiBTdXJ2ZXlFcnJvciA9IG51bGwpIHt9XG59XG4vKipcbiAqIEJhc2UgU3VydmV5SlMgdmFsaWRhdG9yIGNsYXNzLlxuICovXG5leHBvcnQgY2xhc3MgU3VydmV5VmFsaWRhdG9yIGV4dGVuZHMgQmFzZSB7XG4gIHB1YmxpYyBlcnJvck93bmVyOiBJU3VydmV5RXJyb3JPd25lcjtcbiAgcHVibGljIG9uQXN5bmNDb21wbGV0ZWQ6IChyZXN1bHQ6IFZhbGlkYXRvclJlc3VsdCkgPT4gdm9pZDtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwidGV4dFwiLCB0aGlzLCB0cnVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJ0ZXh0XCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgdGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJ0ZXh0XCIsIHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzVmFsaWRhdGVBbGxWYWx1ZXMoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGdldCBsb2NUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcInRleHRcIik7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEVycm9yVGV4dChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnRleHQpIHJldHVybiB0aGlzLnRleHQ7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdEVycm9yVGV4dChuYW1lKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEVycm9yVGV4dChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIHB1YmxpYyB2YWxpZGF0ZShcbiAgICB2YWx1ZTogYW55LFxuICAgIG5hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgdmFsdWVzOiBhbnkgPSBudWxsLFxuICAgIHByb3BlcnRpZXM6IGFueSA9IG51bGxcbiAgKTogVmFsaWRhdG9yUmVzdWx0IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzUnVubmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldCBpc0FzeW5jKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBnZXRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gISF0aGlzLmVycm9yT3duZXIgPyB0aGlzLmVycm9yT3duZXIuZ2V0TG9jYWxlKCkgOiBcIlwiO1xuICB9XG4gIGdldE1hcmtkb3duSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAhIXRoaXMuZXJyb3JPd25lciA/IHRoaXMuZXJyb3JPd25lci5nZXRNYXJrZG93bkh0bWwodGV4dCkgOiBudWxsO1xuICB9XG4gIGdldFByb2Nlc3NlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gISF0aGlzLmVycm9yT3duZXIgPyB0aGlzLmVycm9yT3duZXIuZ2V0UHJvY2Vzc2VkVGV4dCh0ZXh0KSA6IHRleHQ7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZUN1c3RvbUVycm9yKG5hbWU6IHN0cmluZyk6IFN1cnZleUVycm9yIHtcbiAgICByZXR1cm4gbmV3IEN1c3RvbUVycm9yKHRoaXMuZ2V0RXJyb3JUZXh0KG5hbWUpLCB0aGlzLmVycm9yT3duZXIpO1xuICB9XG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHZhciByZXMgPSB0aGlzLmdldFR5cGUoKS5yZXBsYWNlKFwidmFsaWRhdG9yXCIsIFwiXCIpO1xuICAgIGlmICghIXRoaXMudGV4dCkge1xuICAgICAgcmVzICs9IFwiLCBcIiArIHRoaXMudGV4dDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBJVmFsaWRhdG9yT3duZXIge1xuICBnZXRWYWxpZGF0b3JzKCk6IEFycmF5PFN1cnZleVZhbGlkYXRvcj47XG4gIHZhbGlkYXRlZFZhbHVlOiBhbnk7XG4gIGdldFZhbGlkYXRvclRpdGxlKCk6IHN0cmluZztcbiAgZ2V0RGF0YUZpbHRlcmVkVmFsdWVzKCk6IGFueTtcbiAgZ2V0RGF0YUZpbHRlcmVkUHJvcGVydGllcygpOiBhbnk7XG59XG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yUnVubmVyIHtcbiAgcHJpdmF0ZSBhc3luY1ZhbGlkYXRvcnM6IEFycmF5PFN1cnZleVZhbGlkYXRvcj47XG4gIHB1YmxpYyBvbkFzeW5jQ29tcGxldGVkOiAoZXJyb3JzOiBBcnJheTxTdXJ2ZXlFcnJvcj4pID0+IHZvaWQ7XG4gIHB1YmxpYyBydW4ob3duZXI6IElWYWxpZGF0b3JPd25lcik6IEFycmF5PFN1cnZleUVycm9yPiB7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciB2YWx1ZXMgPSBudWxsO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gbnVsbDtcbiAgICB0aGlzLnByZXBhcmVBc3luY1ZhbGlkYXRvcnMoKTtcbiAgICB2YXIgYXN5bmNSZXN1bHRzOiBBcnJheTxTdXJ2ZXlFcnJvcj4gPSBbXTtcbiAgICB2YXIgdmFsaWRhdG9ycyA9IG93bmVyLmdldFZhbGlkYXRvcnMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbGlkYXRvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB2YWxpZGF0b3IgPSB2YWxpZGF0b3JzW2ldO1xuICAgICAgaWYgKCF2YWx1ZXMgJiYgdmFsaWRhdG9yLmlzVmFsaWRhdGVBbGxWYWx1ZXMpIHtcbiAgICAgICAgdmFsdWVzID0gb3duZXIuZ2V0RGF0YUZpbHRlcmVkVmFsdWVzKCk7XG4gICAgICAgIHByb3BlcnRpZXMgPSBvd25lci5nZXREYXRhRmlsdGVyZWRQcm9wZXJ0aWVzKCk7XG4gICAgICB9XG4gICAgICBpZiAodmFsaWRhdG9yLmlzQXN5bmMpIHtcbiAgICAgICAgdGhpcy5hc3luY1ZhbGlkYXRvcnMucHVzaCh2YWxpZGF0b3IpO1xuICAgICAgICB2YWxpZGF0b3Iub25Bc3luY0NvbXBsZXRlZCA9IChyZXN1bHQ6IFZhbGlkYXRvclJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmICghIXJlc3VsdCAmJiAhIXJlc3VsdC5lcnJvcikgYXN5bmNSZXN1bHRzLnB1c2gocmVzdWx0LmVycm9yKTtcbiAgICAgICAgICBpZiAoIXRoaXMub25Bc3luY0NvbXBsZXRlZCkgcmV0dXJuO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hc3luY1ZhbGlkYXRvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFzeW5jVmFsaWRhdG9yc1tpXS5pc1J1bm5pbmcpIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5vbkFzeW5jQ29tcGxldGVkKGFzeW5jUmVzdWx0cyk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHZhbGlkYXRvcnMgPSBvd25lci5nZXRWYWxpZGF0b3JzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWxpZGF0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdmFsaWRhdG9yID0gdmFsaWRhdG9yc1tpXTtcblxuICAgICAgdmFyIHZhbGlkYXRvclJlc3VsdCA9IHZhbGlkYXRvci52YWxpZGF0ZShcbiAgICAgICAgb3duZXIudmFsaWRhdGVkVmFsdWUsXG4gICAgICAgIG93bmVyLmdldFZhbGlkYXRvclRpdGxlKCksXG4gICAgICAgIHZhbHVlcyxcbiAgICAgICAgcHJvcGVydGllc1xuICAgICAgKTtcbiAgICAgIGlmICghIXZhbGlkYXRvclJlc3VsdCAmJiAhIXZhbGlkYXRvclJlc3VsdC5lcnJvcikge1xuICAgICAgICByZXMucHVzaCh2YWxpZGF0b3JSZXN1bHQuZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5hc3luY1ZhbGlkYXRvcnMubGVuZ3RoID09IDAgJiYgISF0aGlzLm9uQXN5bmNDb21wbGV0ZWQpXG4gICAgICB0aGlzLm9uQXN5bmNDb21wbGV0ZWQoW10pO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBwcmVwYXJlQXN5bmNWYWxpZGF0b3JzKCkge1xuICAgIGlmICghIXRoaXMuYXN5bmNWYWxpZGF0b3JzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYXN5bmNWYWxpZGF0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuYXN5bmNWYWxpZGF0b3JzW2ldLm9uQXN5bmNDb21wbGV0ZWQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFzeW5jVmFsaWRhdG9ycyA9IFtdO1xuICB9XG59XG4vKipcbiAqIFZhbGlkYXRlIG51bWVyaWMgdmFsdWVzLlxuICovXG5leHBvcnQgY2xhc3MgTnVtZXJpY1ZhbGlkYXRvciBleHRlbmRzIFN1cnZleVZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtaW5WYWx1ZTogbnVtYmVyID0gbnVsbCwgcHVibGljIG1heFZhbHVlOiBudW1iZXIgPSBudWxsKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIm51bWVyaWN2YWxpZGF0b3JcIjtcbiAgfVxuICBwdWJsaWMgdmFsaWRhdGUoXG4gICAgdmFsdWU6IGFueSxcbiAgICBuYW1lOiBzdHJpbmcgPSBudWxsLFxuICAgIHZhbHVlczogYW55ID0gbnVsbCxcbiAgICBwcm9wZXJ0aWVzOiBhbnkgPSBudWxsXG4gICk6IFZhbGlkYXRvclJlc3VsdCB7XG4gICAgaWYgKEhlbHBlcnMuaXNWYWx1ZUVtcHR5KHZhbHVlKSkgcmV0dXJuIG51bGw7XG4gICAgaWYgKCFIZWxwZXJzLmlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIG5ldyBWYWxpZGF0b3JSZXN1bHQoXG4gICAgICAgIG51bGwsXG4gICAgICAgIG5ldyBSZXF1cmVOdW1lcmljRXJyb3IobnVsbCwgdGhpcy5lcnJvck93bmVyKVxuICAgICAgKTtcbiAgICB9XG4gICAgdmFyIHJlc3VsdCA9IG5ldyBWYWxpZGF0b3JSZXN1bHQocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgIGlmICh0aGlzLm1pblZhbHVlICE9PSBudWxsICYmIHRoaXMubWluVmFsdWUgPiByZXN1bHQudmFsdWUpIHtcbiAgICAgIHJlc3VsdC5lcnJvciA9IHRoaXMuY3JlYXRlQ3VzdG9tRXJyb3IobmFtZSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXhWYWx1ZSAhPT0gbnVsbCAmJiB0aGlzLm1heFZhbHVlIDwgcmVzdWx0LnZhbHVlKSB7XG4gICAgICByZXN1bHQuZXJyb3IgPSB0aGlzLmNyZWF0ZUN1c3RvbUVycm9yKG5hbWUpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiA/IG51bGwgOiByZXN1bHQ7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFcnJvclRleHQobmFtZTogc3RyaW5nKSB7XG4gICAgdmFyIHZOYW1lID0gbmFtZSA/IG5hbWUgOiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwidmFsdWVcIik7XG4gICAgaWYgKHRoaXMubWluVmFsdWUgIT09IG51bGwgJiYgdGhpcy5tYXhWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvblxuICAgICAgICAuZ2V0U3RyaW5nKFwibnVtZXJpY01pbk1heFwiKVxuICAgICAgICBbXCJmb3JtYXRcIl0odk5hbWUsIHRoaXMubWluVmFsdWUsIHRoaXMubWF4VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5taW5WYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uXG4gICAgICAgICAgLmdldFN0cmluZyhcIm51bWVyaWNNaW5cIilcbiAgICAgICAgICBbXCJmb3JtYXRcIl0odk5hbWUsIHRoaXMubWluVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvblxuICAgICAgICAuZ2V0U3RyaW5nKFwibnVtZXJpY01heFwiKVxuICAgICAgICBbXCJmb3JtYXRcIl0odk5hbWUsIHRoaXMubWF4VmFsdWUpO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBWYWxpZGF0ZSB0ZXh0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFRleHRWYWxpZGF0b3IgZXh0ZW5kcyBTdXJ2ZXlWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWluTGVuZ3RoOiBudW1iZXIgPSAwLFxuICAgIHB1YmxpYyBtYXhMZW5ndGg6IG51bWJlciA9IDAsXG4gICAgcHVibGljIGFsbG93RGlnaXRzID0gdHJ1ZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwidGV4dHZhbGlkYXRvclwiO1xuICB9XG4gIHB1YmxpYyB2YWxpZGF0ZShcbiAgICB2YWx1ZTogYW55LFxuICAgIG5hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgdmFsdWVzOiBhbnkgPSBudWxsLFxuICAgIHByb3BlcnRpZXM6IGFueSA9IG51bGxcbiAgKTogVmFsaWRhdG9yUmVzdWx0IHtcbiAgICBpZiAodmFsdWUgIT09IFwiXCIgJiYgSGVscGVycy5pc1ZhbHVlRW1wdHkodmFsdWUpKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIXRoaXMuYWxsb3dEaWdpdHMpIHtcbiAgICAgIHZhciByZWcgPSAvXltBLVphLXpcXHNdKiQvO1xuICAgICAgaWYgKCFyZWcudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWYWxpZGF0b3JSZXN1bHQobnVsbCwgdGhpcy5jcmVhdGVDdXN0b21FcnJvcihuYW1lKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLm1pbkxlbmd0aCA+IDAgJiYgdmFsdWUubGVuZ3RoIDwgdGhpcy5taW5MZW5ndGgpIHtcbiAgICAgIHJldHVybiBuZXcgVmFsaWRhdG9yUmVzdWx0KG51bGwsIHRoaXMuY3JlYXRlQ3VzdG9tRXJyb3IobmFtZSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXhMZW5ndGggPiAwICYmIHZhbHVlLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbmV3IFZhbGlkYXRvclJlc3VsdChudWxsLCB0aGlzLmNyZWF0ZUN1c3RvbUVycm9yKG5hbWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFcnJvclRleHQobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubWluTGVuZ3RoID4gMCAmJiB0aGlzLm1heExlbmd0aCA+IDApXG4gICAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uXG4gICAgICAgIC5nZXRTdHJpbmcoXCJ0ZXh0TWluTWF4TGVuZ3RoXCIpXG4gICAgICAgIFtcImZvcm1hdFwiXSh0aGlzLm1pbkxlbmd0aCwgdGhpcy5tYXhMZW5ndGgpO1xuICAgIGlmICh0aGlzLm1pbkxlbmd0aCA+IDApXG4gICAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uXG4gICAgICAgIC5nZXRTdHJpbmcoXCJ0ZXh0TWluTGVuZ3RoXCIpXG4gICAgICAgIFtcImZvcm1hdFwiXSh0aGlzLm1pbkxlbmd0aCk7XG4gICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvblxuICAgICAgLmdldFN0cmluZyhcInRleHRNYXhMZW5ndGhcIilcbiAgICAgIFtcImZvcm1hdFwiXSh0aGlzLm1heExlbmd0aCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFuc3dlckNvdW50VmFsaWRhdG9yIGV4dGVuZHMgU3VydmV5VmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIG1pbkNvdW50OiBudW1iZXIgPSBudWxsLCBwdWJsaWMgbWF4Q291bnQ6IG51bWJlciA9IG51bGwpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiYW5zd2VyY291bnR2YWxpZGF0b3JcIjtcbiAgfVxuICBwdWJsaWMgdmFsaWRhdGUoXG4gICAgdmFsdWU6IGFueSxcbiAgICBuYW1lOiBzdHJpbmcgPSBudWxsLFxuICAgIHZhbHVlczogYW55ID0gbnVsbCxcbiAgICBwcm9wZXJ0aWVzOiBhbnkgPSBudWxsXG4gICk6IFZhbGlkYXRvclJlc3VsdCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUuY29uc3RydWN0b3IgIT0gQXJyYXkpIHJldHVybiBudWxsO1xuICAgIHZhciBjb3VudCA9IHZhbHVlLmxlbmd0aDtcbiAgICBpZiAodGhpcy5taW5Db3VudCAmJiBjb3VudCA8IHRoaXMubWluQ291bnQpIHtcbiAgICAgIHJldHVybiBuZXcgVmFsaWRhdG9yUmVzdWx0KFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmNyZWF0ZUN1c3RvbUVycm9yKFxuICAgICAgICAgIHN1cnZleUxvY2FsaXphdGlvblxuICAgICAgICAgICAgLmdldFN0cmluZyhcIm1pblNlbGVjdEVycm9yXCIpXG4gICAgICAgICAgICBbXCJmb3JtYXRcIl0odGhpcy5taW5Db3VudClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4Q291bnQgJiYgY291bnQgPiB0aGlzLm1heENvdW50KSB7XG4gICAgICByZXR1cm4gbmV3IFZhbGlkYXRvclJlc3VsdChcbiAgICAgICAgbnVsbCxcbiAgICAgICAgdGhpcy5jcmVhdGVDdXN0b21FcnJvcihcbiAgICAgICAgICBzdXJ2ZXlMb2NhbGl6YXRpb25cbiAgICAgICAgICAgIC5nZXRTdHJpbmcoXCJtYXhTZWxlY3RFcnJvclwiKVxuICAgICAgICAgICAgW1wiZm9ybWF0XCJdKHRoaXMubWF4Q291bnQpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBnZXREZWZhdWx0RXJyb3JUZXh0KG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBuYW1lO1xuICB9XG59XG4vKipcbiAqIFVzZSBpdCB0byB2YWxpZGF0ZSB0aGUgdGV4dCBieSByZWd1bGFyIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgUmVnZXhWYWxpZGF0b3IgZXh0ZW5kcyBTdXJ2ZXlWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVnZXg6IHN0cmluZyA9IG51bGwpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicmVnZXh2YWxpZGF0b3JcIjtcbiAgfVxuICBwdWJsaWMgdmFsaWRhdGUoXG4gICAgdmFsdWU6IGFueSxcbiAgICBuYW1lOiBzdHJpbmcgPSBudWxsLFxuICAgIHZhbHVlczogYW55ID0gbnVsbCxcbiAgICBwcm9wZXJ0aWVzOiBhbnkgPSBudWxsXG4gICk6IFZhbGlkYXRvclJlc3VsdCB7XG4gICAgaWYgKCF0aGlzLnJlZ2V4IHx8IEhlbHBlcnMuaXNWYWx1ZUVtcHR5KHZhbHVlKSkgcmV0dXJuIG51bGw7XG4gICAgdmFyIHJlID0gbmV3IFJlZ0V4cCh0aGlzLnJlZ2V4KTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHJlcyA9IHRoaXMuaGFzRXJyb3IocmUsIHZhbHVlW2ldLCBuYW1lKTtcbiAgICAgICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaGFzRXJyb3IocmUsIHZhbHVlLCBuYW1lKTtcbiAgfVxuICBwcml2YXRlIGhhc0Vycm9yKHJlOiBSZWdFeHAsIHZhbHVlOiBhbnksIG5hbWU6IHN0cmluZyk6IFZhbGlkYXRvclJlc3VsdCB7XG4gICAgaWYgKHJlLnRlc3QodmFsdWUpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbmV3IFZhbGlkYXRvclJlc3VsdCh2YWx1ZSwgdGhpcy5jcmVhdGVDdXN0b21FcnJvcihuYW1lKSk7XG4gIH1cbn1cbi8qKlxuICogVmFsaWRhdGUgZS1tYWlsIGFkZHJlc3MgaW4gdGhlIHRleHQgaW5wdXRcbiAqL1xuZXhwb3J0IGNsYXNzIEVtYWlsVmFsaWRhdG9yIGV4dGVuZHMgU3VydmV5VmFsaWRhdG9yIHtcbiAgcHJpdmF0ZSByZSA9IC9eKChbXjw+KClcXFtcXF1cXC4sOzpcXHNAXFxcIl0rKFxcLltePD4oKVxcW1xcXVxcLiw7Olxcc0BcXFwiXSspKil8KFxcXCIuK1xcXCIpKUAoKFtePD4oKT1bXFxdXFwuLDs6XFxzQFxcXCJdK1xcLikrW148PigpPVtcXF1cXC4sOzpcXHNAXFxcIl17Mix9KSQvaTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImVtYWlsdmFsaWRhdG9yXCI7XG4gIH1cbiAgcHVibGljIHZhbGlkYXRlKFxuICAgIHZhbHVlOiBhbnksXG4gICAgbmFtZTogc3RyaW5nID0gbnVsbCxcbiAgICB2YWx1ZXM6IGFueSA9IG51bGwsXG4gICAgcHJvcGVydGllczogYW55ID0gbnVsbFxuICApOiBWYWxpZGF0b3JSZXN1bHQge1xuICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xuICAgIGlmICh0aGlzLnJlLnRlc3QodmFsdWUpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbmV3IFZhbGlkYXRvclJlc3VsdCh2YWx1ZSwgdGhpcy5jcmVhdGVDdXN0b21FcnJvcihuYW1lKSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFcnJvclRleHQobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJpbnZhbGlkRW1haWxcIik7XG4gIH1cbn1cblxuLyoqXG4gKiBTaG93IGVycm9yIGlmIGV4cHJlc3Npb24gcmV0dXJucyBmYWxzZVxuICovXG5leHBvcnQgY2xhc3MgRXhwcmVzc2lvblZhbGlkYXRvciBleHRlbmRzIFN1cnZleVZhbGlkYXRvciB7XG4gIHByaXZhdGUgY29uZGl0aW9uUnVubmVyOiBDb25kaXRpb25SdW5uZXIgPSBudWxsO1xuICBwcml2YXRlIGlzUnVubmluZ1ZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBleHByZXNzaW9uOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImV4cHJlc3Npb252YWxpZGF0b3JcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzVmFsaWRhdGVBbGxWYWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIGdldCBpc0FzeW5jKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5lbnN1cmVDb25kaXRpb25SdW5uZXIoKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblJ1bm5lci5pc0FzeW5jO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNSdW5uaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUnVubmluZ1ZhbHVlO1xuICB9XG4gIHB1YmxpYyB2YWxpZGF0ZShcbiAgICB2YWx1ZTogYW55LFxuICAgIG5hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgdmFsdWVzOiBhbnkgPSBudWxsLFxuICAgIHByb3BlcnRpZXM6IGFueSA9IG51bGxcbiAgKTogVmFsaWRhdG9yUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuZW5zdXJlQ29uZGl0aW9uUnVubmVyKCkpIHJldHVybiBudWxsO1xuICAgIHRoaXMuY29uZGl0aW9uUnVubmVyLm9uUnVuQ29tcGxldGUgPSByZXMgPT4ge1xuICAgICAgdGhpcy5pc1J1bm5pbmdWYWx1ZSA9IGZhbHNlO1xuICAgICAgaWYgKCEhdGhpcy5vbkFzeW5jQ29tcGxldGVkKSB7XG4gICAgICAgIHRoaXMub25Bc3luY0NvbXBsZXRlZCh0aGlzLmdlbmVyYXRlRXJyb3IocmVzLCB2YWx1ZSkpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5pc1J1bm5pbmdWYWx1ZSA9IHRydWU7XG4gICAgdmFyIHJlcyA9IHRoaXMuY29uZGl0aW9uUnVubmVyLnJ1bih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIGlmICh0aGlzLmNvbmRpdGlvblJ1bm5lci5pc0FzeW5jKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLmlzUnVubmluZ1ZhbHVlID0gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVFcnJvcihyZXMsIHZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVFcnJvcihyZXM6IGJvb2xlYW4sIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXJlcykge1xuICAgICAgcmV0dXJuIG5ldyBWYWxpZGF0b3JSZXN1bHQodmFsdWUsIHRoaXMuY3JlYXRlQ3VzdG9tRXJyb3IobmFtZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEVycm9yVGV4dChuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uXG4gICAgICAuZ2V0U3RyaW5nKFwiaW52YWxpZEV4cHJlc3Npb25cIilcbiAgICAgIFtcImZvcm1hdFwiXSh0aGlzLmV4cHJlc3Npb24pO1xuICB9XG4gIHByb3RlY3RlZCBlbnN1cmVDb25kaXRpb25SdW5uZXIoKTogYm9vbGVhbiB7XG4gICAgaWYgKCEhdGhpcy5jb25kaXRpb25SdW5uZXIpIHtcbiAgICAgIHRoaXMuY29uZGl0aW9uUnVubmVyLmV4cHJlc3Npb24gPSB0aGlzLmV4cHJlc3Npb247XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmV4cHJlc3Npb24pIHJldHVybiBmYWxzZTtcbiAgICB0aGlzLmNvbmRpdGlvblJ1bm5lciA9IG5ldyBDb25kaXRpb25SdW5uZXIodGhpcy5leHByZXNzaW9uKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFwic3VydmV5dmFsaWRhdG9yXCIsIFtcbiAgeyBuYW1lOiBcInRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1RleHRcIiB9XG5dKTtcblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwibnVtZXJpY3ZhbGlkYXRvclwiLFxuICBbXCJtaW5WYWx1ZTpudW1iZXJcIiwgXCJtYXhWYWx1ZTpudW1iZXJcIl0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbGlkYXRvcigpO1xuICB9LFxuICBcInN1cnZleXZhbGlkYXRvclwiXG4pO1xuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJ0ZXh0dmFsaWRhdG9yXCIsXG4gIFtcIm1pbkxlbmd0aDpudW1iZXJcIiwgXCJtYXhMZW5ndGg6bnVtYmVyXCIsIFwiYWxsb3dEaWdpdHM6Ym9vbGVhblwiXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBUZXh0VmFsaWRhdG9yKCk7XG4gIH0sXG4gIFwic3VydmV5dmFsaWRhdG9yXCJcbik7XG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcImFuc3dlcmNvdW50dmFsaWRhdG9yXCIsXG4gIFtcIm1pbkNvdW50Om51bWJlclwiLCBcIm1heENvdW50Om51bWJlclwiXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBBbnN3ZXJDb3VudFZhbGlkYXRvcigpO1xuICB9LFxuICBcInN1cnZleXZhbGlkYXRvclwiXG4pO1xuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJyZWdleHZhbGlkYXRvclwiLFxuICBbXCJyZWdleFwiXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBSZWdleFZhbGlkYXRvcigpO1xuICB9LFxuICBcInN1cnZleXZhbGlkYXRvclwiXG4pO1xuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJlbWFpbHZhbGlkYXRvclwiLFxuICBbXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBFbWFpbFZhbGlkYXRvcigpO1xuICB9LFxuICBcInN1cnZleXZhbGlkYXRvclwiXG4pO1xuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcImV4cHJlc3Npb252YWxpZGF0b3JcIixcbiAgW1wiZXhwcmVzc2lvbjpjb25kaXRpb25cIl0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgRXhwcmVzc2lvblZhbGlkYXRvcigpO1xuICB9LFxuICBcInN1cnZleXZhbGlkYXRvclwiXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3ZhbGlkYXRvci50cyIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxudmFyIHByb2Nlc3MgPSBtb2R1bGUuZXhwb3J0cyA9IHt9O1xuXG4vLyBjYWNoZWQgZnJvbSB3aGF0ZXZlciBnbG9iYWwgaXMgcHJlc2VudCBzbyB0aGF0IHRlc3QgcnVubmVycyB0aGF0IHN0dWIgaXRcbi8vIGRvbid0IGJyZWFrIHRoaW5ncy4gIEJ1dCB3ZSBuZWVkIHRvIHdyYXAgaXQgaW4gYSB0cnkgY2F0Y2ggaW4gY2FzZSBpdCBpc1xuLy8gd3JhcHBlZCBpbiBzdHJpY3QgbW9kZSBjb2RlIHdoaWNoIGRvZXNuJ3QgZGVmaW5lIGFueSBnbG9iYWxzLiAgSXQncyBpbnNpZGUgYVxuLy8gZnVuY3Rpb24gYmVjYXVzZSB0cnkvY2F0Y2hlcyBkZW9wdGltaXplIGluIGNlcnRhaW4gZW5naW5lcy5cblxudmFyIGNhY2hlZFNldFRpbWVvdXQ7XG52YXIgY2FjaGVkQ2xlYXJUaW1lb3V0O1xuXG5mdW5jdGlvbiBkZWZhdWx0U2V0VGltb3V0KCkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuZnVuY3Rpb24gZGVmYXVsdENsZWFyVGltZW91dCAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbihmdW5jdGlvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhclRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgfVxufSAoKSlcbmZ1bmN0aW9uIHJ1blRpbWVvdXQoZnVuKSB7XG4gICAgaWYgKGNhY2hlZFNldFRpbWVvdXQgPT09IHNldFRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIC8vIGlmIHNldFRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRTZXRUaW1lb3V0ID09PSBkZWZhdWx0U2V0VGltb3V0IHx8ICFjYWNoZWRTZXRUaW1lb3V0KSAmJiBzZXRUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfSBjYXRjaChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbChudWxsLCBmdW4sIDApO1xuICAgICAgICB9IGNhdGNoKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3JcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwodGhpcywgZnVuLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG59XG5mdW5jdGlvbiBydW5DbGVhclRpbWVvdXQobWFya2VyKSB7XG4gICAgaWYgKGNhY2hlZENsZWFyVGltZW91dCA9PT0gY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIC8vIGlmIGNsZWFyVGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZENsZWFyVGltZW91dCA9PT0gZGVmYXVsdENsZWFyVGltZW91dCB8fCAhY2FjaGVkQ2xlYXJUaW1lb3V0KSAmJiBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0ICB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKG51bGwsIG1hcmtlcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3IuXG4gICAgICAgICAgICAvLyBTb21lIHZlcnNpb25zIG9mIEkuRS4gaGF2ZSBkaWZmZXJlbnQgcnVsZXMgZm9yIGNsZWFyVGltZW91dCB2cyBzZXRUaW1lb3V0XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwodGhpcywgbWFya2VyKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbn1cbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG52YXIgY3VycmVudFF1ZXVlO1xudmFyIHF1ZXVlSW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCkge1xuICAgIGlmICghZHJhaW5pbmcgfHwgIWN1cnJlbnRRdWV1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnRRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgcXVldWUgPSBjdXJyZW50UXVldWUuY29uY2F0KHF1ZXVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgfVxuICAgIGlmIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgZHJhaW5RdWV1ZSgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZHJhaW5RdWV1ZSgpIHtcbiAgICBpZiAoZHJhaW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgdGltZW91dCA9IHJ1blRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTtcbiAgICBkcmFpbmluZyA9IHRydWU7XG5cbiAgICB2YXIgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIHdoaWxlKGxlbikge1xuICAgICAgICBjdXJyZW50UXVldWUgPSBxdWV1ZTtcbiAgICAgICAgcXVldWUgPSBbXTtcbiAgICAgICAgd2hpbGUgKCsrcXVldWVJbmRleCA8IGxlbikge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRRdWV1ZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIHJ1bkNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmIChxdWV1ZS5sZW5ndGggPT09IDEgJiYgIWRyYWluaW5nKSB7XG4gICAgICAgIHJ1blRpbWVvdXQoZHJhaW5RdWV1ZSk7XG4gICAgfVxufTtcblxuLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0c1xuZnVuY3Rpb24gSXRlbShmdW4sIGFycmF5KSB7XG4gICAgdGhpcy5mdW4gPSBmdW47XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xufVxuSXRlbS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpO1xufTtcbnByb2Nlc3MudGl0bGUgPSAnYnJvd3Nlcic7XG5wcm9jZXNzLmJyb3dzZXIgPSB0cnVlO1xucHJvY2Vzcy5lbnYgPSB7fTtcbnByb2Nlc3MuYXJndiA9IFtdO1xucHJvY2Vzcy52ZXJzaW9uID0gJyc7IC8vIGVtcHR5IHN0cmluZyB0byBhdm9pZCByZWdleHAgaXNzdWVzXG5wcm9jZXNzLnZlcnNpb25zID0ge307XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5wcm9jZXNzLm9uID0gbm9vcDtcbnByb2Nlc3MuYWRkTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5vbmNlID0gbm9vcDtcbnByb2Nlc3Mub2ZmID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBub29wO1xucHJvY2Vzcy5lbWl0ID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZE9uY2VMaXN0ZW5lciA9IG5vb3A7XG5cbnByb2Nlc3MubGlzdGVuZXJzID0gZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIFtdIH1cblxucHJvY2Vzcy5iaW5kaW5nID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xuXG5wcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9O1xucHJvY2Vzcy5jaGRpciA9IGZ1bmN0aW9uIChkaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcbnByb2Nlc3MudW1hc2sgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vcHJvY2Vzcy9icm93c2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAyOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wLCBXYXRjaCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFF1ZXN0aW9uVnVlIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uQm9vbGVhbk1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uX2Jvb2xlYW5cIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIEJvb2xlYW4gZXh0ZW5kcyBRdWVzdGlvblZ1ZTxRdWVzdGlvbkJvb2xlYW5Nb2RlbD4ge1xuICBnZXQgaXRlbUNsYXNzKCkge1xuICAgIHZhciBxdWVzdGlvbiA9IHRoaXMucXVlc3Rpb247XG4gICAgdmFyIGNzc0NsYXNzZXMgPSBxdWVzdGlvbi5jc3NDbGFzc2VzO1xuICAgIGxldCBpc0NoZWNrZWQgPSBxdWVzdGlvbi5jaGVja2VkVmFsdWU7XG4gICAgbGV0IGlzRGlzYWJsZWQgPSBxdWVzdGlvbi5pc1JlYWRPbmx5O1xuICAgIGxldCBpdGVtQ2xhc3MgPSBjc3NDbGFzc2VzLml0ZW07XG4gICAgaWYgKGlzRGlzYWJsZWQpIGl0ZW1DbGFzcyArPSBcIiBcIiArIGNzc0NsYXNzZXMuaXRlbURpc2FibGVkO1xuICAgIGlmIChpc0NoZWNrZWQpIGl0ZW1DbGFzcyArPSBcIiBcIiArIGNzc0NsYXNzZXMuaXRlbUNoZWNrZWQ7XG4gICAgZWxzZSBpZiAoaXNDaGVja2VkID09PSBudWxsKVxuICAgICAgaXRlbUNsYXNzICs9IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtSW5kZXRlcm1pbmF0ZTtcbiAgICByZXR1cm4gaXRlbUNsYXNzO1xuICB9XG4gIGdldExhYmVsQ2xhc3MoY2hlY2tlZDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbjtcbiAgICB2YXIgY3NzQ2xhc3NlcyA9IHRoaXMucXVlc3Rpb24uY3NzQ2xhc3NlcztcbiAgICByZXR1cm4gKFxuICAgICAgY3NzQ2xhc3Nlcy5sYWJlbCArXG4gICAgICBcIiBcIiArXG4gICAgICAocXVlc3Rpb24uY2hlY2tlZFZhbHVlID09PSAhY2hlY2tlZCB8fCBxdWVzdGlvbi5pc1JlYWRPbmx5XG4gICAgICAgID8gcXVlc3Rpb24uY3NzQ2xhc3Nlcy5kaXNhYmxlZExhYmVsXG4gICAgICAgIDogXCJcIilcbiAgICApO1xuICB9XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LWJvb2xlYW5cIiwgQm9vbGVhbik7XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2xlYW47XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL2Jvb2xlYW4udnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb3AsIFdhdGNoIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgUXVlc3Rpb25WdWUgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25DaGVja2JveE1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uX2NoZWNrYm94XCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBDaGVja2JveCBleHRlbmRzIFF1ZXN0aW9uVnVlPFF1ZXN0aW9uQ2hlY2tib3hNb2RlbD4ge1xuICBnZXRJdGVtQ2xhc3MoaXRlbTogYW55KSB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbjtcbiAgICB2YXIgY3NzQ2xhc3NlcyA9IHF1ZXN0aW9uLmNzc0NsYXNzZXM7XG4gICAgdmFyIGlzQ2hlY2tlZCA9IHF1ZXN0aW9uLmlzSXRlbVNlbGVjdGVkKGl0ZW0pO1xuICAgIHZhciBpc0Rpc2FibGVkID0gcXVlc3Rpb24uaXNSZWFkT25seSB8fCAhaXRlbS5pc0VuYWJsZWQ7XG4gICAgdmFyIGFsbG93SG92ZXIgPSAhaXNDaGVja2VkICYmICFpc0Rpc2FibGVkO1xuICAgIHZhciBpdGVtQ2xhc3MgPSBjc3NDbGFzc2VzLml0ZW07XG4gICAgaWYgKCFxdWVzdGlvbi5oYXNDb2x1bW5zKSB7XG4gICAgICBpdGVtQ2xhc3MgKz1cbiAgICAgICAgcXVlc3Rpb24uY29sQ291bnQgPT09IDBcbiAgICAgICAgICA/IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtSW5saW5lXG4gICAgICAgICAgOiBcIiBzdi1xLWNvbC1cIiArIHF1ZXN0aW9uLmNvbENvdW50O1xuICAgIH1cbiAgICBpZiAoaXNEaXNhYmxlZCkgaXRlbUNsYXNzICs9IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtRGlzYWJsZWQ7XG4gICAgaWYgKGlzQ2hlY2tlZCkgaXRlbUNsYXNzICs9IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtQ2hlY2tlZDtcbiAgICBpZiAoYWxsb3dIb3ZlcikgaXRlbUNsYXNzICs9IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtSG92ZXI7XG4gICAgcmV0dXJuIGl0ZW1DbGFzcztcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1jaGVja2JveFwiLCBDaGVja2JveCk7XG5leHBvcnQgZGVmYXVsdCBDaGVja2JveDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvY2hlY2tib3gudnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBDaGVja2JveEl0ZW0gZXh0ZW5kcyBWdWUge1xuICBAUHJvcCBxdWVzdGlvbjogYW55O1xuICBAUHJvcCBpdGVtOiBhbnk7XG4gIEBQcm9wIGluZGV4OiBhbnk7XG4gIGdldCBpc0FsbFNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uLmlzQWxsU2VsZWN0ZWQ7XG4gIH1cbiAgc2V0IGlzQWxsU2VsZWN0ZWQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5xdWVzdGlvbi5pc0FsbFNlbGVjdGVkID0gdmFsO1xuICB9XG4gIGdldExhYmVsQ2xhc3MoaXRlbTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uZ2V0TGFiZWxDbGFzcyh0aGlzLnF1ZXN0aW9uLmlzSXRlbVNlbGVjdGVkKGl0ZW0pKTtcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1jaGVja2JveC1pdGVtXCIsIENoZWNrYm94SXRlbSk7XG5leHBvcnQgZGVmYXVsdCBDaGVja2JveEl0ZW07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL2NoZWNrYm94aXRlbS52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFF1ZXN0aW9uVnVlIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uQ29tbWVudE1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uX2NvbW1lbnRcIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIENvbW1lbnQgZXh0ZW5kcyBRdWVzdGlvblZ1ZTxRdWVzdGlvbkNvbW1lbnRNb2RlbD4ge1xuICBjaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucXVlc3Rpb24udmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAga2V5dXAoZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy5xdWVzdGlvbi5pc0lucHV0VGV4dFVwZGF0ZSkgcmV0dXJuO1xuICAgIHRoaXMucXVlc3Rpb24udmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbn1cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktY29tbWVudFwiLCBDb21tZW50KTtcblxuZXhwb3J0IGRlZmF1bHQgQ29tbWVudDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvY29tbWVudC52dWUiLCJcblxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSwgeyBDb21wb25lbnRPcHRpb25zIH0gZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IFN1cnZleU1vZGVsIH0gZnJvbSBcIi4uL3N1cnZleVwiO1xuaW1wb3J0IHsgSUVsZW1lbnQsIElRdWVzdGlvbiB9IGZyb20gXCIuLi9iYXNlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25DdXN0b21XaWRnZXQgfSBmcm9tIFwiLi4vcXVlc3Rpb25DdXN0b21XaWRnZXRzXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBDdXN0b21XaWRnZXQgZXh0ZW5kcyBWdWUge1xuICBAUHJvcCBjc3M6IGFueTtcbiAgQFByb3AgcXVlc3Rpb246IFF1ZXN0aW9uO1xuICBnZXQgaGFzRGVmYXVsdFJlbmRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5jdXN0b21XaWRnZXQuaXNEZWZhdWx0UmVuZGVyIHx8IHRoaXMuaGFzVnVlQ29tcG9uZW50O1xuICB9XG4gIGdldCBoYXNIdG1sKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uLmN1c3RvbVdpZGdldC5odG1sVGVtcGxhdGUgPyB0cnVlIDogZmFsc2U7XG4gIH1cbiAgZ2V0IGN1c3RvbUh0bWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5jdXN0b21XaWRnZXQuaHRtbFRlbXBsYXRlO1xuICB9XG4gIGdldCBoYXNWdWVDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgdmFyIG9wdGlvbnMgPSAoPGFueT5WdWUpW1wib3B0aW9uc1wiXTtcbiAgICBpZiAoIW9wdGlvbnMpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gKFxuICAgICAgb3B0aW9ucy5jb21wb25lbnRzICYmIG9wdGlvbnMuY29tcG9uZW50c1t0aGlzLnF1ZXN0aW9uLmN1c3RvbVdpZGdldC5uYW1lXVxuICAgICk7XG4gIH1cbiAgZ2V0IGNvbXBvbmVudE5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNWdWVDb21wb25lbnQpIHJldHVybiB0aGlzLnF1ZXN0aW9uLmN1c3RvbVdpZGdldC5uYW1lO1xuICAgIHJldHVybiBcInN1cnZleS1cIiArIHRoaXMucXVlc3Rpb24uZ2V0VGVtcGxhdGUoKTtcbiAgfVxuICBtb3VudGVkKCkge1xuICAgIHRoaXMucXVlc3Rpb24uY3VzdG9tV2lkZ2V0LmFmdGVyUmVuZGVyKHRoaXMucXVlc3Rpb24sIHRoaXMuJGVsKTtcbiAgfVxuICB1cGRhdGVkKCkge1xuICAgIC8vdGhpcy5xdWVzdGlvbi5jdXN0b21XaWRnZXQuYWZ0ZXJSZW5kZXIodGhpcy5xdWVzdGlvbiwgdGhpcy4kZWwpO1xuICB9XG4gIGJlZm9yZURlc3Ryb3koKSB7XG4gICAgdGhpcy5xdWVzdGlvbi5jdXN0b21XaWRnZXQud2lsbFVubW91bnQodGhpcy5xdWVzdGlvbiwgdGhpcy4kZWwpO1xuICB9XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LWN1c3RvbXdpZGdldFwiLCBDdXN0b21XaWRnZXQpO1xuXG5leHBvcnQgZGVmYXVsdCBDdXN0b21XaWRnZXQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL2N1c3RvbXdpZGdldC52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFF1ZXN0aW9uVnVlIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uRHJvcGRvd25Nb2RlbCB9IGZyb20gXCIuLi9xdWVzdGlvbl9kcm9wZG93blwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgRHJvcGRvd24gZXh0ZW5kcyBRdWVzdGlvblZ1ZTxRdWVzdGlvbkRyb3Bkb3duTW9kZWw+IHtcbiAgZ2V0IGlzT3RoZXJTZWxlY3RlZCgpIHtcbiAgICBjb25zdCBxdWVzdGlvbiA9IHRoaXMucXVlc3Rpb247XG4gICAgcmV0dXJuIHF1ZXN0aW9uLmhhc090aGVyICYmIHF1ZXN0aW9uLmlzT3RoZXJTZWxlY3RlZDtcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1kcm9wZG93blwiLCBEcm9wZG93bik7XG5leHBvcnQgZGVmYXVsdCBEcm9wZG93bjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvZHJvcGRvd24udnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IFN1cnZleU1vZGVsIH0gZnJvbSBcIi4uL3N1cnZleVwiO1xuaW1wb3J0IHsgSUVsZW1lbnQsIElRdWVzdGlvbiB9IGZyb20gXCIuLi9iYXNlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuLi9xdWVzdGlvblwiO1xuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIFN1cnZleUVsZW1lbnRWdWUgZXh0ZW5kcyBWdWUge1xuICBAUHJvcCBjc3M6IGFueTtcbiAgQFByb3Agc3VydmV5OiBTdXJ2ZXlNb2RlbDtcbiAgQFByb3AgZWxlbWVudDogSUVsZW1lbnQ7XG4gIGdldFdpZGdldENvbXBvbmVudE5hbWUoZWxlbWVudDogUXVlc3Rpb24pIHtcbiAgICBpZiAoZWxlbWVudC5jdXN0b21XaWRnZXQpIHtcbiAgICAgIHJldHVybiBcInN1cnZleS1jdXN0b213aWRnZXRcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwic3VydmV5LVwiICsgZWxlbWVudC5nZXRUZW1wbGF0ZSgpO1xuICB9XG4gIGdldFJvb3RDbGFzcyhlbGVtZW50OiBRdWVzdGlvbikge1xuICAgIHZhciByb290Q2xhc3MgPSBcIlwiO1xuICAgIGlmICghIWVsZW1lbnQuY3NzTWFpblJvb3QpIHtcbiAgICAgIHJvb3RDbGFzcyArPSBlbGVtZW50LmNzc01haW5Sb290O1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LmNzc0NsYXNzZXMuc21hbGwgJiYgIWVsZW1lbnQud2lkdGgpIHtcbiAgICAgIHJvb3RDbGFzcyArPSBcIiBcIiArIGVsZW1lbnQuY3NzQ2xhc3Nlcy5zbWFsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdENsYXNzO1xuICB9XG4gIGdldENvbnRlbnRDbGFzcyhlbGVtZW50OiBRdWVzdGlvbikge1xuICAgIHZhciBjb250ZW50Q2xhc3MgPSBlbGVtZW50LmNzc0NsYXNzZXMuY29udGVudDtcbiAgICBpZiAoZWxlbWVudC5oYXNUaXRsZU9uTGVmdCkge1xuICAgICAgY29udGVudENsYXNzICs9IFwiIFwiICsgZWxlbWVudC5jc3NDbGFzc2VzLmNvbnRlbnRMZWZ0O1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudENsYXNzO1xuICB9XG4gIGdldCBoYXNFcnJvcnNPblRvcCgpIHtcbiAgICByZXR1cm4gIXRoaXMuZWxlbWVudC5pc1BhbmVsICYmIHRoaXMuc3VydmV5LnF1ZXN0aW9uRXJyb3JMb2NhdGlvbiA9PT0gXCJ0b3BcIjtcbiAgfVxuICBnZXQgaGFzRXJyb3JzT25Cb3R0b20oKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLmVsZW1lbnQuaXNQYW5lbCAmJiB0aGlzLnN1cnZleS5xdWVzdGlvbkVycm9yTG9jYXRpb24gPT09IFwiYm90dG9tXCJcbiAgICApO1xuICB9XG4gIG1vdW50ZWQoKSB7XG4gICAgaWYgKHRoaXMuc3VydmV5ICYmICF0aGlzLmVsZW1lbnQuaXNQYW5lbCkge1xuICAgICAgdGhpcy5zdXJ2ZXkuYWZ0ZXJSZW5kZXJRdWVzdGlvbig8SVF1ZXN0aW9uPnRoaXMuZWxlbWVudCwgdGhpcy4kZWwpO1xuICAgIH1cbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1lbGVtZW50XCIsIFN1cnZleUVsZW1lbnRWdWUpO1xuZXhwb3J0IGRlZmF1bHQgU3VydmV5RWxlbWVudFZ1ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvZWxlbWVudC52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IFN1cnZleU1vZGVsIH0gZnJvbSBcIi4uL3N1cnZleVwiO1xuaW1wb3J0IHsgSUVsZW1lbnQsIElRdWVzdGlvbiB9IGZyb20gXCIuLi9iYXNlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuLi9xdWVzdGlvblwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgRWxlbWVudEhlYWRlciBleHRlbmRzIFZ1ZSB7XG4gIEBQcm9wIGVsZW1lbnQ6IElFbGVtZW50O1xuXG4gIGdldFRpdGxlQ2xhc3MoZWxlbWVudDogUXVlc3Rpb24pIHtcbiAgICB2YXIgY3NzQ2xhc3NlcyA9IGVsZW1lbnQuY3NzQ2xhc3NlcztcbiAgICB2YXIgdGl0bGVDbGFzcyA9IGNzc0NsYXNzZXMudGl0bGU7XG4gICAgaWYgKGVsZW1lbnQuY29udGFpbnNFcnJvcnMpIHtcbiAgICAgIHRpdGxlQ2xhc3MgKz0gXCIgXCIgKyBjc3NDbGFzc2VzLnRpdGxlT25FcnJvcjtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQuaXNBbnN3ZXJlZCkge1xuICAgICAgdGl0bGVDbGFzcyArPSBcIiBcIiArIGNzc0NsYXNzZXMudGl0bGVPbkFuc3dlcjtcbiAgICB9XG4gICAgcmV0dXJuIHRpdGxlQ2xhc3M7XG4gIH1cbiAgZ2V0SGVhZGVyQ2xhc3MoZWxlbWVudDogUXVlc3Rpb24pIHtcbiAgICB2YXIgaGVhZGVyQ2xhc3MgPSBlbGVtZW50LmNzc0NsYXNzZXMuaGVhZGVyO1xuICAgIGlmIChlbGVtZW50Lmhhc1RpdGxlT25Ub3ApIHtcbiAgICAgIGhlYWRlckNsYXNzICs9IFwiIFwiICsgZWxlbWVudC5jc3NDbGFzc2VzLmhlYWRlclRvcDtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQuaGFzVGl0bGVPbkxlZnQpIHtcbiAgICAgIGhlYWRlckNsYXNzICs9IFwiIFwiICsgZWxlbWVudC5jc3NDbGFzc2VzLmhlYWRlckxlZnQ7XG4gICAgfVxuICAgIGlmIChlbGVtZW50Lmhhc1RpdGxlT25Cb3R0b20pIHtcbiAgICAgIGhlYWRlckNsYXNzICs9IFwiIFwiICsgZWxlbWVudC5jc3NDbGFzc2VzLmhlYWRlckJvdHRvbTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlckNsYXNzO1xuICB9XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LWVsZW1lbnQtaGVhZGVyXCIsIEVsZW1lbnRIZWFkZXIpO1xuZXhwb3J0IGRlZmF1bHQgRWxlbWVudEhlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvZWxlbWVudGhlYWRlci52dWUiLCJcblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCJcbmltcG9ydCB7Q29tcG9uZW50LCBQcm9wLCBXYXRjaH0gZnJvbSAndnVlLXByb3BlcnR5LWRlY29yYXRvcidcbmltcG9ydCB7ZGVmYXVsdCBhcyBRdWVzdGlvblZ1ZX0gZnJvbSAnLi9xdWVzdGlvbidcbmltcG9ydCB7UXVlc3Rpb25FbXB0eU1vZGVsfSBmcm9tICcuLi9xdWVzdGlvbl9lbXB0eSdcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIEVtcHR5IGV4dGVuZHMgUXVlc3Rpb25WdWU8UXVlc3Rpb25FbXB0eU1vZGVsPiB7XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LWVtcHR5XCIsIEVtcHR5KVxuZXhwb3J0IGRlZmF1bHQgRW1wdHk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL2VtcHR5LnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBTdXJ2ZXlFcnJvciB9IGZyb20gXCIuLi9iYXNlXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBFcnJvcnMgZXh0ZW5kcyBWdWUge1xuICBAUHJvcCBxdWVzdGlvbjogUXVlc3Rpb247XG4gIEBQcm9wIGxvY2F0aW9uOiBTdHJpbmc7XG5cbiAgZ2V0IGlzU2hvdygpIHtcbiAgICByZXR1cm4gISF0aGlzLnF1ZXN0aW9uLmVycm9ycyAmJiB0aGlzLnF1ZXN0aW9uLmVycm9ycy5sZW5ndGggPiAwXG4gIH1cblxuICBnZXQgY2xhc3NlcygpIHtcbiAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9uO1xuICAgIHZhciBjbGFzc2VzID0gcXVlc3Rpb24uY3NzQ2xhc3Nlc1xuICAgICAgPyBxdWVzdGlvbi5jc3NDbGFzc2VzLmVycm9yLnJvb3RcbiAgICAgIDogXCJwYW5lbC1lcnJvci1yb290XCI7XG5cbiAgICB2YXIgYWRkaXRpb25hbENsYXNzZXMgPSBcIlwiO1xuXG4gICAgaWYgKHRoaXMubG9jYXRpb24gPT09IFwidG9wXCIpIHtcbiAgICAgIGFkZGl0aW9uYWxDbGFzc2VzID0gcXVlc3Rpb24uY3NzQ2xhc3Nlcy5lcnJvci5sb2NhdGlvblRvcDtcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9jYXRpb24gPT09IFwiYm90dG9tXCIpIHtcbiAgICAgIGFkZGl0aW9uYWxDbGFzc2VzID0gcXVlc3Rpb24uY3NzQ2xhc3Nlcy5lcnJvci5sb2NhdGlvbkJvdHRvbTtcbiAgICB9XG5cbiAgICBpZiAoYWRkaXRpb25hbENsYXNzZXMpIGNsYXNzZXMgKz0gXCIgXCIgKyBhZGRpdGlvbmFsQ2xhc3NlcztcblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LWVycm9yc1wiLCBFcnJvcnMpO1xuZXhwb3J0IGRlZmF1bHQgRXJyb3JzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9lcnJvcnMudnVlIiwiXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiXG5pbXBvcnQge0NvbXBvbmVudCwgUHJvcH0gZnJvbSAndnVlLXByb3BlcnR5LWRlY29yYXRvcidcbmltcG9ydCB7ZGVmYXVsdCBhcyBRdWVzdGlvblZ1ZX0gZnJvbSAnLi9xdWVzdGlvbidcbmltcG9ydCB7UXVlc3Rpb25FeHByZXNzaW9uTW9kZWx9IGZyb20gJy4uL3F1ZXN0aW9uX2V4cHJlc3Npb24nXG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBFeHByZXNzaW9uIGV4dGVuZHMgUXVlc3Rpb25WdWU8UXVlc3Rpb25FeHByZXNzaW9uTW9kZWw+IHtcbn1cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktZXhwcmVzc2lvblwiLCBFeHByZXNzaW9uKVxuZXhwb3J0IGRlZmF1bHQgRXhwcmVzc2lvbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvZXhwcmVzc2lvbi52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCwgV2F0Y2ggfSBmcm9tIFwidnVlLXByb3BlcnR5LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBRdWVzdGlvblZ1ZSB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZpbGVNb2RlbCB9IGZyb20gXCIuLi9xdWVzdGlvbl9maWxlXCI7XG5pbXBvcnQgeyBjb25maXJtQWN0aW9uIH0gZnJvbSBcIi4uL3V0aWxzL3V0aWxzXCI7XG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgRmlsZSBleHRlbmRzIFF1ZXN0aW9uVnVlPFF1ZXN0aW9uRmlsZU1vZGVsPiB7XG4gIG9uRHJhZ092ZXIgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTsgXG4gIG9uRHJvcCA9IChldmVudDogYW55KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBsZXQgc3JjID0gZXZlbnQuZGF0YVRyYW5zZmVyO1xuICAgIHRoaXMub25DaGFuZ2Uoc3JjKTtcbiAgfTtcbiAgZG9DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHZhciBzcmMgPSBldmVudC50YXJnZXQgfHwgZXZlbnQuc3JjRWxlbWVudDtcbiAgICB0aGlzLm9uQ2hhbmdlKHNyYyk7XG4gIH1cbiAgZG9DbGVhbihldmVudDogYW55KSB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbjtcbiAgICB2YXIgc3JjID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7XG4gICAgaWYgKHF1ZXN0aW9uLm5lZWRDb25maXJtUmVtb3ZlRmlsZSkge1xuICAgICAgdmFyIGlzQ29uZmlybWVkID0gY29uZmlybUFjdGlvbihxdWVzdGlvbi5jb25maXJtUmVtb3ZlQWxsTWVzc2FnZSk7XG4gICAgICBpZiAoIWlzQ29uZmlybWVkKSByZXR1cm47XG4gICAgfVxuICAgIHF1ZXN0aW9uLmNsZWFyKCk7XG4gICAgc3JjLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcImlucHV0XCIpWzBdLnZhbHVlID0gXCJcIjtcbiAgfVxuICBkb1JlbW92ZUZpbGUoZGF0YTogYW55KSB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbjtcbiAgICBpZiAocXVlc3Rpb24ubmVlZENvbmZpcm1SZW1vdmVGaWxlKSB7XG4gICAgICAgIHZhciBpc0NvbmZpcm1lZCA9IGNvbmZpcm1BY3Rpb24ocXVlc3Rpb24uZ2V0Q29uZmlybVJlbW92ZU1lc3NhZ2UoZGF0YS5uYW1lKSk7XG4gICAgICAgIGlmICghaXNDb25maXJtZWQpIHJldHVybjtcbiAgICAgIH1cbiAgICBxdWVzdGlvbi5yZW1vdmVGaWxlKGRhdGEpO1xuICB9XG4gIGdldFBsYWNlaG9sZGVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIFwiZm9ybS1jb250cm9sIFwiICsgdGhpcy5xdWVzdGlvbi5jc3NDbGFzc2VzLnBsYWNlaG9sZGVySW5wdXQ7XG4gIH1cbiAgcHJpdmF0ZSBvbkNoYW5nZShzcmM6IGFueSkge1xuICAgIGlmICghKDxhbnk+d2luZG93KVtcIkZpbGVSZWFkZXJcIl0pIHJldHVybjtcbiAgICBpZiAoIXNyYyB8fCAhc3JjLmZpbGVzIHx8IHNyYy5maWxlcy5sZW5ndGggPCAxKSByZXR1cm47XG4gICAgbGV0IGZpbGVzID0gW107XG4gICAgbGV0IGFsbG93Q291bnQgPSB0aGlzLnF1ZXN0aW9uLmFsbG93TXVsdGlwbGUgPyBzcmMuZmlsZXMubGVuZ3RoIDogMTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbG93Q291bnQ7IGkrKykge1xuICAgICAgZmlsZXMucHVzaChzcmMuZmlsZXNbaV0pO1xuICAgIH1cbiAgICBzcmMudmFsdWUgPSBcIlwiO1xuICAgIHRoaXMucXVlc3Rpb24ubG9hZEZpbGVzKGZpbGVzKTtcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1maWxlXCIsIEZpbGUpO1xuZXhwb3J0IGRlZmF1bHQgRmlsZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvZmlsZS52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb3AgfSBmcm9tIFwidnVlLXByb3BlcnR5LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgUGFuZWxNb2RlbEJhc2UsIFBhbmVsTW9kZWwsIFF1ZXN0aW9uUm93TW9kZWwgfSBmcm9tIFwiLi4vcGFuZWxcIjtcbmltcG9ydCB7IElTdXJ2ZXkgfSBmcm9tIFwiLi4vYmFzZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IEZsb3dQYW5lbE1vZGVsIH0gZnJvbSBcIi4uL2Zsb3dwYW5lbFwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgRmxvd1BhbmVsIGV4dGVuZHMgVnVlIHtcbiAgQFByb3AgcXVlc3Rpb246IEZsb3dQYW5lbE1vZGVsO1xuICBAUHJvcCBpc0VkaXRNb2RlOiBCb29sZWFuO1xuICBAUHJvcCBjc3M6IGFueTtcbiAgcHJpdmF0ZSBpc0NvbGxhcHNlZFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgcm9vdE5vZGVWYWx1ZTogTm9kZTtcblxuICBnZXQgcm9vdE5vZGUoKTogTm9kZSB7XG4gICAgcmV0dXJuIHRoaXMucm9vdE5vZGVWYWx1ZTtcbiAgfVxuICBiZWZvcmVNb3VudCgpIHtcbiAgICBpZiAoIXRoaXMucXVlc3Rpb24pIHJldHVybjtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5xdWVzdGlvbi5vbkN1c3RvbUh0bWxQcm9kdWNpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH07XG4gICAgdGhpcy5xdWVzdGlvbi5vbkdldEh0bWxGb3JRdWVzdGlvbiA9IHNlbGYucmVuZGVyUXVlc3Rpb247XG4gICAgdGhpcy5zZXRSb290Tm9kZSgpO1xuICB9XG4gIHByb3RlY3RlZCBzZXRSb290Tm9kZSgpIHtcbiAgICBsZXQgaHRtbCA9IFwiPHNwYW4+XCIgKyB0aGlzLnF1ZXN0aW9uLnByb2R1Y2VIdG1sKCkgKyBcIjwvc3Bhbj5cIjtcbiAgICBsZXQgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhodG1sLCBcInRleHQveG1sXCIpO1xuICAgIHRoaXMucm9vdE5vZGVWYWx1ZSA9XG4gICAgICAhIWRvYyAmJiBkb2MuY2hpbGROb2Rlcy5sZW5ndGggPiAwID8gZG9jLmNoaWxkTm9kZXNbMF0gOiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCByZW5kZXJRdWVzdGlvbihxdWVzdGlvbjogUXVlc3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjxxdWVzdGlvbj5cIiArIHF1ZXN0aW9uLm5hbWUgKyBcIjwvcXVlc3Rpb24+XCI7XG4gIH1cbiAgbW91bnRlZCgpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5zdXJ2ZXkpIHtcbiAgICAgIHRoaXMucXVlc3Rpb24uc3VydmV5LmFmdGVyUmVuZGVyUGFuZWwodGhpcy5xdWVzdGlvbiwgdGhpcy4kZWwpO1xuICAgIH1cbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gdGhpcy5xdWVzdGlvbi5pc0NvbGxhcHNlZDtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5xdWVzdGlvbi5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcInN0YXRlXCIsIGZ1bmN0aW9uKFxuICAgICAgdmFsOiBhbnlcbiAgICApIHtcbiAgICAgIHNlbGYuaXNDb2xsYXBzZWQgPSBzZWxmLnF1ZXN0aW9uLmlzQ29sbGFwc2VkO1xuICAgIH0pO1xuICB9XG4gIGdldCByb290U3R5bGUoKSB7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLnJlbmRlcldpZHRoKSB7XG4gICAgICAoPGFueT5yZXN1bHQpW1wid2lkdGhcIl0gPSB0aGlzLnF1ZXN0aW9uLnJlbmRlcldpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGdldCBzaG93SWNvbigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5xdWVzdGlvbiAmJiAodGhpcy5xdWVzdGlvbi5pc0V4cGFuZGVkIHx8IHRoaXMucXVlc3Rpb24uaXNDb2xsYXBzZWQpXG4gICAgKTtcbiAgfVxuICBnZXQgcm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5yb3dzO1xuICB9XG4gIGdldCBoYXNUaXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi50aXRsZS5sZW5ndGggPiAwO1xuICB9XG4gIGdldCBzdXJ2ZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uc3VydmV5O1xuICB9XG4gIGdldCBpY29uQ3NzKCkge1xuICAgIHZhciByZXN1bHQgPSBcInN2X3BhbmVsX2ljb25cIjtcbiAgICBpZiAoIXRoaXMuaXNDb2xsYXBzZWQpIHJlc3VsdCArPSBcIiBzdl9leHBhbmRlZFwiO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgZ2V0IGlzQ29sbGFwc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkVmFsdWU7XG4gIH1cbiAgc2V0IGlzQ29sbGFwc2VkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNDb2xsYXBzZWRWYWx1ZSA9IHZhbDtcbiAgfVxuICBjaGFuZ2VFeHBhbmRlZCgpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5pc0NvbGxhcHNlZCB8fCB0aGlzLnF1ZXN0aW9uLmlzRXhwYW5kZWQpIHtcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgIHRoaXMucXVlc3Rpb24uZXhwYW5kKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbGxhcHNlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldFRpdGxlU3R5bGUoKSB7XG4gICAgdmFyIHJlc3VsdCA9IHRoaXMuY3NzLnBhbmVsLnRpdGxlO1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmlzQ29sbGFwc2VkIHx8IHRoaXMucXVlc3Rpb24uaXNFeHBhbmRlZCkge1xuICAgICAgcmVzdWx0ICs9IFwiIFwiICsgdGhpcy5jc3MucGFuZWwudGl0bGVFeHBhbmRhYmxlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktZmxvd3BhbmVsXCIsIEZsb3dQYW5lbCk7XG5leHBvcnQgZGVmYXVsdCBGbG93UGFuZWw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL2Zsb3dwYW5lbC52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb3AgfSBmcm9tIFwidnVlLXByb3BlcnR5LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFN1cnZleU1vZGVsIH0gZnJvbSBcIi4uL3N1cnZleVwiO1xuaW1wb3J0IHsgRmxvd1BhbmVsTW9kZWwgfSBmcm9tIFwiLi4vZmxvd3BhbmVsXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBGbG93UGFuZWxFbGVtZW50IGV4dGVuZHMgVnVlIHtcbiAgc3RhdGljIGlkVmFsdWU6IG51bWJlcjtcbiAgQFByb3Agbm9kZTogTm9kZTtcbiAgQFByb3AgcGFuZWw6IEZsb3dQYW5lbE1vZGVsO1xuICBAUHJvcCBjc3M6IGFueTtcbiAgcHJpdmF0ZSBlbGVtZW50SWRWYWx1ZTogc3RyaW5nO1xuICBwdWJsaWMgcXVlc3Rpb246IFF1ZXN0aW9uID0gbnVsbDtcbiAgcHVibGljIHRhZ05hbWU6IHN0cmluZyA9IFwic3BhblwiO1xuICBwdWJsaWMgbm9kZXM6IEFycmF5PE5vZGU+ID0gW107XG4gIHB1YmxpYyB0ZXh0OiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgc3R5bGU6IGFueSA9IHt9O1xuXG4gIHByaXZhdGUgZ2V0U3R5bGUobm9kZVR5cGU6IHN0cmluZykge1xuICAgIHZhciBzdHlsZTogYW55ID0ge307XG4gICAgaWYgKG5vZGVUeXBlLnRvTG93ZXJDYXNlKCkgPT09IFwiYlwiKSB7XG4gICAgICBzdHlsZS5mb250V2VpZ2h0ID0gXCJib2xkXCI7XG4gICAgfVxuICAgIGlmIChub2RlVHlwZS50b0xvd2VyQ2FzZSgpID09PSBcImlcIikge1xuICAgICAgc3R5bGUuZm9udFN0eWxlID0gXCJpdGFsaWNcIjtcbiAgICB9XG4gICAgaWYgKG5vZGVUeXBlLnRvTG93ZXJDYXNlKCkgPT09IFwidVwiKSB7XG4gICAgICBzdHlsZS50ZXh0RGVjb3JhdGlvbiA9IFwidW5kZXJsaW5lXCI7XG4gICAgfVxuICAgIHJldHVybiBzdHlsZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGVsZW1lbnRJZCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5lbGVtZW50SWRWYWx1ZSkge1xuICAgICAgaWYgKCFGbG93UGFuZWxFbGVtZW50LmlkVmFsdWUpIHtcbiAgICAgICAgRmxvd1BhbmVsRWxlbWVudC5pZFZhbHVlID0gMDtcbiAgICAgIH1cbiAgICAgIEZsb3dQYW5lbEVsZW1lbnQuaWRWYWx1ZSsrO1xuICAgICAgdGhpcy5lbGVtZW50SWRWYWx1ZSA9IFwiZnBfZWxcIiArIEZsb3dQYW5lbEVsZW1lbnQuaWRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudElkVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBzdXJ2ZXkoKTogU3VydmV5TW9kZWwge1xuICAgIHJldHVybiA8U3VydmV5TW9kZWw+dGhpcy5wYW5lbC5zdXJ2ZXk7XG4gIH1cbiAgYmVmb3JlTW91bnQoKSB7XG4gICAgaWYgKCF0aGlzLnBhbmVsIHx8ICF0aGlzLm5vZGUpIHJldHVybjtcbiAgICB2YXIgbm9kZVR5cGUgPSB0aGlzLm5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIXRoaXMuaGFzVGV4dENoaWxkTm9kZXNPbmx5KHRoaXMubm9kZSkpIHtcbiAgICAgIHRoaXMubm9kZXMgPSB0aGlzLmdldENoaWxkRG9tTm9kZXModGhpcy5ub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG5vZGVUeXBlID09IFwicXVlc3Rpb25cIikge1xuICAgICAgICB0aGlzLnF1ZXN0aW9uID0gdGhpcy5wYW5lbC5nZXRRdWVzdGlvbkJ5TmFtZSh0aGlzLm5vZGUudGV4dENvbnRlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50ZXh0ID0gdGhpcy5ub2RlLnRleHRDb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZVR5cGUgPT0gXCJkaXZcIiAmJiAhdGhpcy5xdWVzdGlvbikge1xuICAgICAgdGhpcy50YWdOYW1lID0gXCJkaXZcIjtcbiAgICB9XG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZ2V0U3R5bGUobm9kZVR5cGUpO1xuICB9XG4gIC8vZHVwbGljYXRlZCBjb2RlIGZyb20gZWxlbWVudC52dWVcbiAgZ2V0V2lkZ2V0Q29tcG9uZW50TmFtZShlbGVtZW50OiBRdWVzdGlvbikge1xuICAgIGlmIChlbGVtZW50LmN1c3RvbVdpZGdldCkge1xuICAgICAgcmV0dXJuIFwic3VydmV5LWN1c3RvbXdpZGdldFwiO1xuICAgIH1cbiAgICByZXR1cm4gXCJzdXJ2ZXktXCIgKyBlbGVtZW50LmdldFRlbXBsYXRlKCk7XG4gIH1cbiAgLy8gZHVwbGljYXRlZCBjb2RlIGZyb20gcmVhY3RwYWdlcy50c3hcbiAgcHJpdmF0ZSBoYXNUZXh0Q2hpbGROb2Rlc09ubHkobm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICAgIHZhciBub2RlcyA9IG5vZGUuY2hpbGROb2RlcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAobm9kZXNbaV0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gXCIjdGV4dFwiKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByaXZhdGUgZ2V0Q2hpbGREb21Ob2Rlcyhub2RlOiBOb2RlKTogQXJyYXk8Tm9kZT4ge1xuICAgIHZhciBkb21Ob2RlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBkb21Ob2Rlcy5wdXNoKG5vZGUuY2hpbGROb2Rlc1tpXSk7XG4gICAgfVxuICAgIHJldHVybiBkb21Ob2RlcztcbiAgfVxufVxuXG5WdWUuY29tcG9uZW50KFwic3VydmV5LWZsb3dwYW5lbGVsZW1lbnRcIiwgRmxvd1BhbmVsRWxlbWVudCk7XG5leHBvcnQgZGVmYXVsdCBGbG93UGFuZWxFbGVtZW50O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9mbG93cGFuZWxlbGVtZW50LnZ1ZSIsIlxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkh0bWxNb2RlbCB9IGZyb20gXCIuLi9xdWVzdGlvbl9odG1sXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBIdG1sIGV4dGVuZHMgVnVlIHtcbiAgQFByb3AgcXVlc3Rpb246IFF1ZXN0aW9uSHRtbE1vZGVsO1xuICBAUHJvcCBjc3M6IGFueTtcbn1cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktaHRtbFwiLCBIdG1sKTtcbmV4cG9ydCBkZWZhdWx0IEh0bWw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL2h0bWwudnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwidnVlLXByb3BlcnR5LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBRdWVzdGlvblZ1ZSB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkltYWdlUGlja2VyTW9kZWwgfSBmcm9tIFwiLi4vcXVlc3Rpb25faW1hZ2VwaWNrZXJcIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIEltYWdlUGlja2VyIGV4dGVuZHMgUXVlc3Rpb25WdWU8UXVlc3Rpb25JbWFnZVBpY2tlck1vZGVsPiB7XG4gIGdldEl0ZW1DbGFzcyhpdGVtOmFueSkge1xuICB2YXIgcXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9uO1xuICB2YXIgY3NzQ2xhc3NlcyA9IHF1ZXN0aW9uLmNzc0NsYXNzZXM7XG4gIHZhciBjb2xDb3VudCA9IHF1ZXN0aW9uLmNvbENvdW50O1xuICB2YXIgaXRlbUNsYXNzID1cbiAgICAgIGNzc0NsYXNzZXMuaXRlbSArXG4gICAgICAoY29sQ291bnQgPT09IDBcbiAgICAgICAgPyBcIiBcIiArIGNzc0NsYXNzZXMuaXRlbUlubGluZVxuICAgICAgICA6IFwiIHN2LXEtY29sLVwiICsgY29sQ291bnQpO1xuICAgIHZhciBpc0NoZWNrZWQgPSB0aGlzLnF1ZXN0aW9uLmlzSXRlbVNlbGVjdGVkKGl0ZW0pO1xuICAgIHZhciBpc0Rpc2FibGVkID0gcXVlc3Rpb24uaXNSZWFkT25seSB8fCAhaXRlbS5pc0VuYWJsZWQ7IFxuICAgIHZhciBhbGxvd0hvdmVyID0gIWlzQ2hlY2tlZCAmJiAhaXNEaXNhYmxlZDtcbiAgICBpZiAoaXNDaGVja2VkKSB7XG4gICAgICBpdGVtQ2xhc3MgKz0gXCIgXCIgKyBjc3NDbGFzc2VzLml0ZW1DaGVja2VkO1xuICAgIH1cbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgaXRlbUNsYXNzICs9IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtRGlzYWJsZWQ7XG4gICAgfVxuICAgIGlmIChhbGxvd0hvdmVyKSB7XG4gICAgICBpdGVtQ2xhc3MgKz0gXCIgXCIgKyBjc3NDbGFzc2VzLml0ZW1Ib3ZlcjtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1DbGFzcztcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1pbWFnZXBpY2tlclwiLCBJbWFnZVBpY2tlcik7XG5leHBvcnQgZGVmYXVsdCBJbWFnZVBpY2tlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvaW1hZ2VwaWNrZXIudnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb3AgfSBmcm9tIFwidnVlLXByb3BlcnR5LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBRdWVzdGlvblZ1ZSB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbk1hdHJpeE1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uX21hdHJpeFwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgTWF0cml4IGV4dGVuZHMgUXVlc3Rpb25WdWU8UXVlc3Rpb25NYXRyaXhNb2RlbD4ge1xuICBnZXRJdGVtQ2xhc3Mocm93OiBhbnksIGNvbHVtbjogYW55KSB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbjtcbiAgICB2YXIgY3NzQ2xhc3NlcyA9IHRoaXMucXVlc3Rpb24uY3NzQ2xhc3NlcztcbiAgICB2YXIgaXNDaGVja2VkID0gcm93LnZhbHVlID09IGNvbHVtbi52YWx1ZTtcbiAgICB2YXIgaXNEaXNhYmxlZCA9IHF1ZXN0aW9uLmlzUmVhZE9ubHk7XG4gICAgdmFyIGFsbG93SG92ZXIgPSAhaXNDaGVja2VkICYmICFpc0Rpc2FibGVkO1xuICAgIHZhciBjZWxsRGlzYWJsZWRDbGFzcyA9IHF1ZXN0aW9uLmhhc0NlbGxUZXh0XG4gICAgICA/IGNzc0NsYXNzZXMuY2VsbFRleHREaXNhYmxlZFxuICAgICAgOiBjc3NDbGFzc2VzLml0ZW1EaXNhYmxlZDtcblxuICAgIHZhciBjZWxsU2VsZWN0ZWRDbGFzcyA9IHF1ZXN0aW9uLmhhc0NlbGxUZXh0XG4gICAgICA/IGNzc0NsYXNzZXMuY2VsbFRleHRTZWxlY3RlZFxuICAgICAgOiBjc3NDbGFzc2VzLml0ZW1DaGVja2VkO1xuXG4gICAgdmFyIGl0ZW1Ib3ZlckNsYXNzID0gIXF1ZXN0aW9uLmhhc0NlbGxUZXh0ID8gY3NzQ2xhc3Nlcy5pdGVtSG92ZXIgOiBcIlwiO1xuXG4gICAgdmFyIGNlbGxDbGFzcyA9IHF1ZXN0aW9uLmhhc0NlbGxUZXh0XG4gICAgICA/IGNzc0NsYXNzZXMuY2VsbFRleHRcbiAgICAgIDogY3NzQ2xhc3Nlcy5sYWJlbDtcblxuICAgIGxldCBpdGVtQ2xhc3MgPVxuICAgICAgY2VsbENsYXNzICtcbiAgICAgIChpc0NoZWNrZWQgPyBcIiBcIiArIGNlbGxTZWxlY3RlZENsYXNzIDogXCJcIikgK1xuICAgICAgKGlzRGlzYWJsZWQgPyBcIiBcIiArIGNlbGxEaXNhYmxlZENsYXNzIDogXCJcIikgK1xuICAgICAgKGFsbG93SG92ZXIgPyBcIiBcIiArIGl0ZW1Ib3ZlckNsYXNzIDogXCJcIik7XG4gICAgcmV0dXJuIGl0ZW1DbGFzcztcbiAgfVxuICBjZWxsQ2xpY2socm93OiBhbnksIGNvbHVtbjogYW55KSB7XG4gICAgaWYgKHRoaXMucXVlc3Rpb24uaXNSZWFkT25seSkgcmV0dXJuO1xuICAgIHJvdy52YWx1ZSA9IGNvbHVtbi52YWx1ZTtcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1tYXRyaXhcIiwgTWF0cml4KTtcbmV4cG9ydCBkZWZhdWx0IE1hdHJpeDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvbWF0cml4LnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb3AgfSBmcm9tIFwidnVlLXByb3BlcnR5LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgc3VydmV5Q3NzIH0gZnJvbSBcIi4uL2RlZmF1bHRDc3MvY3Nzc3RhbmRhcmRcIjtcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQge1xuICBNYXRyaXhEcm9wZG93bkNlbGwsXG4gIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25SZW5kZXJlZENlbGxcbn0gZnJvbSBcIi4uL3F1ZXN0aW9uX21hdHJpeGRyb3Bkb3duYmFzZVwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgTWF0cml4Q2VsbCBleHRlbmRzIFZ1ZSB7XG4gIEBQcm9wIHF1ZXN0aW9uOiBRdWVzdGlvbjtcbiAgQFByb3AgY2VsbDogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkQ2VsbDtcblxuICBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZ2V0V2lkZ2V0Q29tcG9uZW50TmFtZShlbGVtZW50OiBRdWVzdGlvbikge1xuICAgIGlmIChlbGVtZW50LmN1c3RvbVdpZGdldCkge1xuICAgICAgcmV0dXJuIFwic3VydmV5LWN1c3RvbXdpZGdldFwiO1xuICAgIH1cbiAgICByZXR1cm4gXCJzdXJ2ZXktXCIgKyBlbGVtZW50LmdldFR5cGUoKTtcbiAgfVxuICBnZXQgaGFzRXJyb3JzT25Ub3AoKSB7XG4gICAgdmFyIHEgPSB0aGlzLmNlbGwucXVlc3Rpb247XG4gICAgcmV0dXJuIHEuaXNWaXNpYmxlICYmIHEuc3VydmV5LnF1ZXN0aW9uRXJyb3JMb2NhdGlvbiA9PT0gXCJ0b3BcIjtcbiAgfVxuICBnZXQgaGFzRXJyb3JzT25Cb3R0b20oKSB7XG4gICAgdmFyIHEgPSB0aGlzLmNlbGwucXVlc3Rpb247XG4gICAgcmV0dXJuIHEuaXNWaXNpYmxlICYmIHEuc3VydmV5LnF1ZXN0aW9uRXJyb3JMb2NhdGlvbiA9PT0gXCJib3R0b21cIjtcbiAgfVxuICBnZXRIZWFkZXJzKCkge1xuICAgIHZhciBlbGVtZW50ID0gdGhpcy5jZWxsLnF1ZXN0aW9uO1xuICAgIGlmICghZWxlbWVudCkgcmV0dXJuIFwiXCI7XG4gICAgcmV0dXJuIGVsZW1lbnQuaXNWaXNpYmxlID8gdGhpcy5jZWxsLmNlbGwuY29sdW1uLmxvY1RpdGxlLnJlbmRlcmVkSHRtbCA6IFwiXCI7XG4gIH1cbiAgZ2V0Q2VsbENsYXNzKCkge1xuICAgIHZhciBlbGVtZW50ID0gdGhpcy5jZWxsLnF1ZXN0aW9uO1xuICAgIGlmICghZWxlbWVudCkgcmV0dXJuIHRoaXMucXVlc3Rpb24uY3NzQ2xhc3Nlcy5jZWxsO1xuXG4gICAgdmFyIGNlbGxDbGFzcyA9IGVsZW1lbnQuY3NzQ2xhc3Nlcy5pdGVtVmFsdWU7XG5cbiAgICBpZiAoISFlbGVtZW50LmVycm9ycyAmJiBlbGVtZW50LmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBjZWxsQ2xhc3MgKz0gXCIgXCIgKyBlbGVtZW50LmNzc0NsYXNzZXMuaGFzRXJyb3I7XG4gICAgfVxuXG4gICAgY2VsbENsYXNzICs9IFwiIFwiICsgZWxlbWVudC5jc3NDbGFzc2VzLmFzQ2VsbDtcblxuICAgIHJldHVybiBjZWxsQ2xhc3M7XG4gIH1cbiAgcmVtb3ZlUm93Q2xpY2soKSB7XG4gICAgdGhpcy5xdWVzdGlvbi5yZW1vdmVSb3dVSSh0aGlzLmNlbGwucm93KTtcbiAgfVxuICBtb3VudGVkKCkge1xuICAgIGlmICghdGhpcy5jZWxsLmhhc1F1ZXN0aW9uIHx8ICF0aGlzLnF1ZXN0aW9uIHx8ICF0aGlzLnF1ZXN0aW9uLnN1cnZleSlcbiAgICAgIHJldHVybjtcbiAgICB0aGlzLm9uVmlzaWJpbGl0eUNoYW5nZWQoKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5jZWxsLnF1ZXN0aW9uLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFxuICAgICAgXCJpc1Zpc2libGVcIixcbiAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLm9uVmlzaWJpbGl0eUNoYW5nZWQoKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgY2VsbDogdGhpcy5jZWxsLmNlbGwsXG4gICAgICBjZWxsUXVlc3Rpb246IHRoaXMuY2VsbC5xdWVzdGlvbixcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLiRlbCxcbiAgICAgIHJvdzogdGhpcy5jZWxsLnJvdyxcbiAgICAgIGNvbHVtbjogdGhpcy5jZWxsLmNlbGwuY29sdW1uXG4gICAgfTtcbiAgICB0aGlzLnF1ZXN0aW9uLnN1cnZleS5tYXRyaXhBZnRlckNlbGxSZW5kZXIodGhpcy5xdWVzdGlvbiwgb3B0aW9ucyk7XG4gIH1cbiAgcHJpdmF0ZSBvblZpc2liaWxpdHlDaGFuZ2VkKCkge1xuICAgIHRoaXMuaXNWaXNpYmxlID0gdGhpcy5jZWxsLnF1ZXN0aW9uLmlzVmlzaWJsZTtcbiAgfVxufVxuXG5WdWUuY29tcG9uZW50KFwic3VydmV5LW1hdHJpeGNlbGxcIiwgTWF0cml4Q2VsbCk7XG5leHBvcnQgZGVmYXVsdCBNYXRyaXhDZWxsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9tYXRyaXhjZWxsLnZ1ZSIsIlxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb3AgfSBmcm9tIFwidnVlLXByb3BlcnR5LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBRdWVzdGlvblZ1ZSB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWwgfSBmcm9tIFwiLi4vcXVlc3Rpb25fbWF0cml4ZHJvcGRvd25cIjtcbmltcG9ydCB7IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlIH0gZnJvbSBcIi4uL3F1ZXN0aW9uX21hdHJpeGRyb3Bkb3duYmFzZVwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgTWF0cml4RHJvcGRvd24gZXh0ZW5kcyBRdWVzdGlvblZ1ZTxRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWw+IHt9XG5cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktbWF0cml4ZHJvcGRvd25cIiwgTWF0cml4RHJvcGRvd24pO1xuZXhwb3J0IGRlZmF1bHQgTWF0cml4RHJvcGRvd247XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL21hdHJpeGRyb3Bkb3duLnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgUXVlc3Rpb25WdWUgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWwgfSBmcm9tIFwiLi4vcXVlc3Rpb25fbWF0cml4ZHluYW1pY1wiO1xuaW1wb3J0IHsgTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2UgfSBmcm9tIFwiLi4vcXVlc3Rpb25fbWF0cml4ZHJvcGRvd25iYXNlXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBNYXRyaXhEeW5hbWljIGV4dGVuZHMgUXVlc3Rpb25WdWU8UXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWw+IHtcbiAgYWRkUm93Q2xpY2soKSB7XG4gICAgdGhpcy5xdWVzdGlvbi5hZGRSb3coKTtcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1tYXRyaXhkeW5hbWljXCIsIE1hdHJpeER5bmFtaWMpO1xuZXhwb3J0IGRlZmF1bHQgTWF0cml4RHluYW1pYztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvbWF0cml4ZHluYW1pYy52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb3AgfSBmcm9tIFwidnVlLXByb3BlcnR5LWRlY29yYXRvclwiO1xuaW1wb3J0IHsgc3VydmV5Q3NzIH0gZnJvbSBcIi4uL2RlZmF1bHRDc3MvY3Nzc3RhbmRhcmRcIjtcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQge1xuICBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWxCYXNlLFxuICBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRUYWJsZVxufSBmcm9tIFwiLi4vcXVlc3Rpb25fbWF0cml4ZHJvcGRvd25iYXNlXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBNYXRyaXhUYWJsZSBleHRlbmRzIFZ1ZSB7XG4gIEBQcm9wIHF1ZXN0aW9uOiBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWxCYXNlO1xuICBnZXQgdGFibGUoKTogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkVGFibGUge1xuICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uLnJlbmRlcmVkVGFibGU7XG4gIH1cbn1cblxuVnVlLmNvbXBvbmVudChcInN1cnZleS1tYXRyaXh0YWJsZVwiLCBNYXRyaXhUYWJsZSk7XG5leHBvcnQgZGVmYXVsdCBNYXRyaXhUYWJsZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvbWF0cml4dGFibGUudnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFF1ZXN0aW9uVnVlIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSBcIi4uL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBRdWVzdGlvbk11bHRpcGxlVGV4dE1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uX211bHRpcGxldGV4dFwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgTXVsdGlwbGVUZXh0IGV4dGVuZHMgUXVlc3Rpb25WdWU8UXVlc3Rpb25NdWx0aXBsZVRleHRNb2RlbD4ge1xuICBnZXRXaWRnZXRDb21wb25lbnROYW1lKHF1ZXN0aW9uOiBRdWVzdGlvbikge1xuICAgIGlmIChxdWVzdGlvbi5jdXN0b21XaWRnZXQpIHtcbiAgICAgIHJldHVybiBcInN1cnZleS1jdXN0b213aWRnZXRcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwic3VydmV5LXRleHRcIjtcbiAgfVxuICBnZXQgaGFzRXJyb3JzT25Ub3AoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uc3VydmV5LnF1ZXN0aW9uRXJyb3JMb2NhdGlvbiA9PT0gXCJ0b3BcIjtcbiAgfVxuICBnZXQgaGFzRXJyb3JzT25Cb3R0b20oKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uc3VydmV5LnF1ZXN0aW9uRXJyb3JMb2NhdGlvbiA9PT0gXCJib3R0b21cIjtcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1tdWx0aXBsZXRleHRcIiwgTXVsdGlwbGVUZXh0KTtcbmV4cG9ydCBkZWZhdWx0IE11bHRpcGxlVGV4dDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvbXVsdGlwbGV0ZXh0LnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBzdXJ2ZXlDc3MgfSBmcm9tIFwiLi4vZGVmYXVsdENzcy9jc3NzdGFuZGFyZFwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIE90aGVyQ2hvaWNlIGV4dGVuZHMgVnVlIHtcbiAgQFByb3AgcXVlc3Rpb246IFF1ZXN0aW9uO1xuICBAUHJvcCBjb21tZW50Q2xhc3M6IGFueTtcbiAgY2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLmNvbW1lbnQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAga2V5dXAoZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy5xdWVzdGlvbi5pc1N1cnZleUlucHV0VGV4dFVwZGF0ZSkgcmV0dXJuO1xuICAgIHRoaXMucXVlc3Rpb24uY29tbWVudCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1vdGhlci1jaG9pY2VcIiwgT3RoZXJDaG9pY2UpO1xuZXhwb3J0IGRlZmF1bHQgT3RoZXJDaG9pY2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL290aGVyQ2hvaWNlLnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IHN1cnZleUNzcyB9IGZyb20gXCIuLi9kZWZhdWx0Q3NzL2Nzc3N0YW5kYXJkXCI7XG5pbXBvcnQgeyBTdXJ2ZXlNb2RlbCB9IGZyb20gXCIuLi9zdXJ2ZXlcIjtcbmltcG9ydCB7IFBhZ2VNb2RlbCB9IGZyb20gXCIuLi9wYWdlXCI7XG5pbXBvcnQgeyBQYW5lbE1vZGVsQmFzZSwgUGFuZWxNb2RlbCwgUXVlc3Rpb25Sb3dNb2RlbCB9IGZyb20gXCIuLi9wYW5lbFwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgUGFnZSBleHRlbmRzIFZ1ZSB7XG4gIEBQcm9wIHN1cnZleTogU3VydmV5TW9kZWw7XG4gIEBQcm9wIHBhZ2U6IFBhZ2VNb2RlbDtcbiAgQFByb3AgY3NzOiBPYmplY3Q7XG5cbiAgaXNDdXJyZW50UGFnZUNoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtb3VudGVkKCkge1xuICAgIGlmICh0aGlzLnN1cnZleSkge1xuICAgICAgdGhpcy5zdXJ2ZXkuYWZ0ZXJSZW5kZXJQYWdlKHRoaXMuJGVsKTtcblxuICAgICAgdGhpcy5zdXJ2ZXkub25DdXJyZW50UGFnZUNoYW5nZWQuYWRkKChzZW5kZXIsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnRQYWdlQ2hhbmdlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgdXBkYXRlZCgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5zdXJ2ZXkuYWZ0ZXJSZW5kZXJQYWdlKHRoaXMuJGVsKTtcbiAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpIHtcbiAgICAgIGlmICh0aGlzLmlzQ3VycmVudFBhZ2VDaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMuaXNDdXJyZW50UGFnZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgc2VsZi5zdXJ2ZXkuc2Nyb2xsVG9Ub3BPblBhZ2VDaGFuZ2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBnZXQgc2hvd0hlYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkuc2hvd1BhZ2VUaXRsZXM7XG4gIH1cbiAgZ2V0IG51bSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlLm51bSA+IDAgPyB0aGlzLnBhZ2UubnVtICsgXCIuIFwiIDogXCJcIjtcbiAgfVxuICBnZXQgcm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlLnJvd3M7XG4gIH1cbn1cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktcGFnZVwiLCBQYWdlKTtcbmV4cG9ydCBkZWZhdWx0IFBhZ2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL3BhZ2UudnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBQYW5lbE1vZGVsQmFzZSwgUGFuZWxNb2RlbCwgUXVlc3Rpb25Sb3dNb2RlbCB9IGZyb20gXCIuLi9wYW5lbFwiO1xuaW1wb3J0IHsgSVN1cnZleSB9IGZyb20gXCIuLi9iYXNlXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBQYW5lbCBleHRlbmRzIFZ1ZSB7XG4gIEBQcm9wIHF1ZXN0aW9uOiBQYW5lbE1vZGVsO1xuICBAUHJvcCBpc0VkaXRNb2RlOiBCb29sZWFuO1xuICBAUHJvcCBjc3M6IGFueTtcbiAgcHJpdmF0ZSBpc0NvbGxhcHNlZFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbW91bnRlZCgpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5zdXJ2ZXkpIHtcbiAgICAgIHRoaXMucXVlc3Rpb24uc3VydmV5LmFmdGVyUmVuZGVyUGFuZWwodGhpcy5xdWVzdGlvbiwgdGhpcy4kZWwpO1xuICAgIH1cbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gdGhpcy5xdWVzdGlvbi5pc0NvbGxhcHNlZDtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5xdWVzdGlvbi5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcInN0YXRlXCIsIGZ1bmN0aW9uKFxuICAgICAgdmFsOiBhbnlcbiAgICApIHtcbiAgICAgIHNlbGYuaXNDb2xsYXBzZWQgPSBzZWxmLnF1ZXN0aW9uLmlzQ29sbGFwc2VkO1xuICAgIH0pO1xuICB9XG4gIGdldCByb290U3R5bGUoKSB7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLnJlbmRlcldpZHRoKSB7XG4gICAgICAoPGFueT5yZXN1bHQpW1wid2lkdGhcIl0gPSB0aGlzLnF1ZXN0aW9uLnJlbmRlcldpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGdldCBzaG93SWNvbigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5xdWVzdGlvbiAmJiAodGhpcy5xdWVzdGlvbi5pc0V4cGFuZGVkIHx8IHRoaXMucXVlc3Rpb24uaXNDb2xsYXBzZWQpXG4gICAgKTtcbiAgfVxuICBnZXQgcm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5yb3dzO1xuICB9XG4gIGdldCBoYXNUaXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi50aXRsZS5sZW5ndGggPiAwO1xuICB9XG4gIGdldCBzdXJ2ZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uc3VydmV5O1xuICB9XG4gIGdldCBpY29uQ3NzKCkge1xuICAgIHZhciByZXN1bHQgPSB0aGlzLmNzcy5wYW5lbC5pY29uO1xuICAgIGlmICghdGhpcy5pc0NvbGxhcHNlZCkgcmVzdWx0ICs9IFwiIFwiICsgdGhpcy5jc3MucGFuZWwuaWNvbkV4cGFuZGVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgZ2V0IGlzQ29sbGFwc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkVmFsdWU7XG4gIH1cbiAgc2V0IGlzQ29sbGFwc2VkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNDb2xsYXBzZWRWYWx1ZSA9IHZhbDtcbiAgfVxuICBjaGFuZ2VFeHBhbmRlZCgpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5pc0NvbGxhcHNlZCB8fCB0aGlzLnF1ZXN0aW9uLmlzRXhwYW5kZWQpIHtcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgIHRoaXMucXVlc3Rpb24uZXhwYW5kKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbGxhcHNlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldFRpdGxlU3R5bGUoKSB7XG4gICAgdmFyIHJlc3VsdCA9IHRoaXMuY3NzLnBhbmVsLnRpdGxlO1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmlzQ29sbGFwc2VkIHx8IHRoaXMucXVlc3Rpb24uaXNFeHBhbmRlZCkge1xuICAgICAgcmVzdWx0ICs9IFwiIFwiICsgdGhpcy5jc3MucGFuZWwudGl0bGVFeHBhbmRhYmxlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LXBhbmVsXCIsIFBhbmVsKTtcbmV4cG9ydCBkZWZhdWx0IFBhbmVsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9wYW5lbC52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgUXVlc3Rpb25WdWUgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUGFuZWxNb2RlbCB9IGZyb20gXCIuLi9wYW5lbFwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uUGFuZWxEeW5hbWljTW9kZWwgfSBmcm9tIFwiLi4vcXVlc3Rpb25fcGFuZWxkeW5hbWljXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBQYW5lbER5bmFtaWMgZXh0ZW5kcyBRdWVzdGlvblZ1ZTxRdWVzdGlvblBhbmVsRHluYW1pY01vZGVsPiB7XG4gIGdldCByZW5kZXJlZFBhbmVscygpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5pc1JlbmRlck1vZGVMaXN0KSByZXR1cm4gdGhpcy5xdWVzdGlvbi5wYW5lbHM7XG4gICAgdmFyIHBhbmVscyA9IFtdO1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmN1cnJlbnRQYW5lbCkge1xuICAgICAgcGFuZWxzLnB1c2godGhpcy5xdWVzdGlvbi5jdXJyZW50UGFuZWwpO1xuICAgIH1cbiAgICByZXR1cm4gcGFuZWxzO1xuICB9XG4gIHJlbW92ZVBhbmVsQ2xpY2socGFuZWw6IGFueSkge1xuICAgIHRoaXMucXVlc3Rpb24ucmVtb3ZlUGFuZWxVSShwYW5lbCk7XG4gIH1cbiAgYWRkUGFuZWxDbGljaygpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLmFkZFBhbmVsKCk7XG4gIH1cbiAgZ2V0QnV0dG9uQWRkQ3NzKHF1ZXN0aW9uOiBRdWVzdGlvbikge1xuICAgIHZhciBidG5DbGFzc2VzID1cbiAgICAgIHF1ZXN0aW9uLmNzc0NsYXNzZXMuYnV0dG9uICsgXCIgXCIgKyBxdWVzdGlvbi5jc3NDbGFzc2VzLmJ1dHRvbkFkZDtcblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLnJlbmRlck1vZGUgPT09IFwibGlzdFwiKSB7XG4gICAgICBidG5DbGFzc2VzICs9IFwiIFwiICsgcXVlc3Rpb24uY3NzQ2xhc3Nlcy5idXR0b25BZGQgKyBcIi0tbGlzdC1tb2RlXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ0bkNsYXNzZXM7XG4gIH1cbn1cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktcGFuZWxkeW5hbWljXCIsIFBhbmVsRHluYW1pYyk7XG5leHBvcnQgZGVmYXVsdCBQYW5lbER5bmFtaWM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL3BhbmVsZHluYW1pYy52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBQYW5lbE1vZGVsIH0gZnJvbSBcIi4uL3BhbmVsXCI7XG5pbXBvcnQgeyBRdWVzdGlvblBhbmVsRHluYW1pY01vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uX3BhbmVsZHluYW1pY1wiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uUm93IH0gZnJvbSBcIi4uL2tub2Nrb3V0L2tvcGFnZVwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgUGFuZWxEeW5hbWljUHJvZ3Jlc3MgZXh0ZW5kcyBWdWUge1xuICBAUHJvcCBxdWVzdGlvbjogUXVlc3Rpb25QYW5lbER5bmFtaWNNb2RlbDtcblxuICBnZXQgcmFuZ2VNYXgoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24ucGFuZWxDb3VudCAtIDE7XG4gIH1cbiAgYWRkUGFuZWxDbGljaygpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLmFkZFBhbmVsVUkoKTtcbiAgfVxuICBwcmV2UGFuZWxDbGljaygpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLmdvVG9QcmV2UGFuZWwoKTtcbiAgfVxuICBuZXh0UGFuZWxDbGljaygpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLmdvVG9OZXh0UGFuZWwoKTtcbiAgfVxuXG4gIGNoYW5nZVJhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLmN1cnJlbnRJbmRleCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgfVxuXG4gIGdldEJ1dHRvbkFkZENzcyhxdWVzdGlvbjogUXVlc3Rpb24pIHt9XG5cbiAgZ2V0QnV0dG9uUHJldkNzcyhxdWVzdGlvbjogUXVlc3Rpb24pIHtcbiAgICB2YXIgYnRuQ2xhc3NlcyA9IHF1ZXN0aW9uLmNzc0NsYXNzZXMuYnV0dG9uUHJldjtcbiAgICBpZiAoIXF1ZXN0aW9uLmlzUHJldkJ1dHRvblNob3dpbmcpIHtcbiAgICAgIGJ0bkNsYXNzZXMgKz0gXCIgXCIgKyBxdWVzdGlvbi5jc3NDbGFzc2VzLmJ1dHRvblByZXYgKyBcIi0tZGlzYWJsZWRcIjtcbiAgICB9XG4gICAgcmV0dXJuIGJ0bkNsYXNzZXM7XG4gIH1cblxuICBnZXRCdXR0b25OZXh0Q3NzKHF1ZXN0aW9uOiBRdWVzdGlvbikge1xuICAgIHZhciBidG5DbGFzc2VzID0gcXVlc3Rpb24uY3NzQ2xhc3Nlcy5idXR0b25OZXh0O1xuICAgIGlmICghcXVlc3Rpb24uaXNOZXh0QnV0dG9uU2hvd2luZykge1xuICAgICAgYnRuQ2xhc3NlcyArPSBcIiBcIiArIHF1ZXN0aW9uLmNzc0NsYXNzZXMuYnV0dG9uTmV4dCArIFwiLS1kaXNhYmxlZFwiO1xuICAgIH1cbiAgICByZXR1cm4gYnRuQ2xhc3NlcztcbiAgfVxuXG4gIGdldCBwcm9ncmVzcygpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5jdXJyZW50SW5kZXggLyB0aGlzLnJhbmdlTWF4ICogMTAwICsgXCIlXCI7XG4gIH1cbn1cblxuVnVlLmNvbXBvbmVudChcInN1cnZleS1wYW5lbGR5bmFtaWNwcm9ncmVzc1wiLCBQYW5lbER5bmFtaWNQcm9ncmVzcyk7XG5leHBvcnQgZGVmYXVsdCBQYW5lbER5bmFtaWNQcm9ncmVzcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvcGFuZWxkeW5hbWljcHJvZ3Jlc3MudnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlNb2RlbCB9IGZyb20gXCIuLi9zdXJ2ZXlcIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIFByb2dyZXNzIGV4dGVuZHMgVnVlIHtcbiAgQFByb3Agc3VydmV5OiBTdXJ2ZXlNb2RlbDtcbiAgQFByb3AgY3NzOiBhbnk7XG4gIGdldCBwcm9ncmVzcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkuZ2V0UHJvZ3Jlc3MoKSArIFwiJVwiO1xuICB9XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LXByb2dyZXNzXCIsIFByb2dyZXNzKTtcbmV4cG9ydCBkZWZhdWx0IFByb2dyZXNzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9wcm9ncmVzcy52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgUXVlc3Rpb25WdWUgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25SYWRpb2dyb3VwTW9kZWwgfSBmcm9tIFwiLi4vcXVlc3Rpb25fcmFkaW9ncm91cFwiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgUmFkaW9ncm91cCBleHRlbmRzIFF1ZXN0aW9uVnVlPFF1ZXN0aW9uUmFkaW9ncm91cE1vZGVsPiB7XG4gIGdldCBjaG9pY2VzQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24udmlzaWJsZUNob2ljZXMubGVuZ3RoIC0gMTtcbiAgfVxuICBnZXRJdGVtQ2xhc3MoaXRlbTogYW55KSB7XG4gICAgdmFyIGNzc0NsYXNzZXMgPSB0aGlzLnF1ZXN0aW9uLmNzc0NsYXNzZXM7XG4gICAgdmFyIGlzRGlzYWJsZWQgPSB0aGlzLnF1ZXN0aW9uLmlzUmVhZE9ubHkgfHwgIWl0ZW0uaXNFbmFibGVkO1xuICAgIHZhciBpc0NoZWNrZWQgPSBpdGVtLnZhbHVlID09PSB0aGlzLnF1ZXN0aW9uLnJlbmRlcmVkVmFsdWU7XG4gICAgdmFyIGFsbG93SG92ZXIgPSAhaXNEaXNhYmxlZCAmJiAhaXNDaGVja2VkO1xuICAgIHZhciBpdGVtQ2xhc3MgPSB0aGlzLnF1ZXN0aW9uLmNzc0NsYXNzZXMuaXRlbTtcbiAgICBpZiAoaXNEaXNhYmxlZCkgaXRlbUNsYXNzICs9IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtRGlzYWJsZWQ7XG4gICAgaWYgKGlzQ2hlY2tlZCkgaXRlbUNsYXNzICs9IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtQ2hlY2tlZDtcbiAgICBpZiAoYWxsb3dIb3ZlcikgaXRlbUNsYXNzICs9IFwiIFwiICsgY3NzQ2xhc3Nlcy5pdGVtSG92ZXI7XG4gICAgaWYgKCF0aGlzLnF1ZXN0aW9uLmhhc0NvbHVtbnMpIHtcbiAgICAgIGl0ZW1DbGFzcyArPVxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbENvdW50ID09PSAwXG4gICAgICAgICAgPyBcIiBcIiArIGNzc0NsYXNzZXMuaXRlbUlubGluZVxuICAgICAgICAgIDogXCIgc3YtcS1jb2wtXCIgKyB0aGlzLnF1ZXN0aW9uLmNvbENvdW50O1xuICAgIH1cbiAgICByZXR1cm4gaXRlbUNsYXNzO1xuICB9XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LXJhZGlvZ3JvdXBcIiwgUmFkaW9ncm91cCk7XG5leHBvcnQgZGVmYXVsdCBSYWRpb2dyb3VwO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9yYWRpb2dyb3VwLnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIFJhZGlvZ3JvdXBJdGVtIGV4dGVuZHMgVnVlIHtcbiAgQFByb3AgcXVlc3Rpb246IGFueTtcbiAgQFByb3AgaXRlbTogYW55O1xuICBAUHJvcCBpbmRleDogYW55O1xuICBnZXRMYWJlbENsYXNzKGl0ZW06IGFueSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uLmdldExhYmVsQ2xhc3MoaXRlbS52YWx1ZSA9PT0gdGhpcy5xdWVzdGlvbi52YWx1ZSk7XG4gIH1cbiAgZ2V0Q29udHJvbExhYmVsQ2xhc3MoaXRlbTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uZ2V0Q29udHJvbExhYmVsQ2xhc3MoaXRlbS52YWx1ZSA9PT0gdGhpcy5xdWVzdGlvbi52YWx1ZSk7XG4gIH1cbn1cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktcmFkaW9ncm91cC1pdGVtXCIsIFJhZGlvZ3JvdXBJdGVtKTtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvZ3JvdXBJdGVtO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9yYWRpb2dyb3VwaXRlbS52dWUiLCJcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFF1ZXN0aW9uVnVlIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uUmF0aW5nTW9kZWwgfSBmcm9tIFwiLi4vcXVlc3Rpb25fcmF0aW5nXCI7XG5cbkBDb21wb25lbnRcbmV4cG9ydCBjbGFzcyBSYXRpbmcgZXh0ZW5kcyBRdWVzdGlvblZ1ZTxRdWVzdGlvblJhdGluZ01vZGVsPiB7XG4gIGdldENzcyhxdWVzdGlvbjogUXVlc3Rpb25SYXRpbmdNb2RlbCwgaXRlbTogYW55KSB7XG4gICAgbGV0IGNzcyA9IHF1ZXN0aW9uLmNzc0NsYXNzZXMuaXRlbTtcbiAgICBpZiAocXVlc3Rpb24udmFsdWUgPT0gaXRlbS52YWx1ZSkge1xuICAgICAgY3NzID0gY3NzICsgXCIgXCIgKyBxdWVzdGlvbi5jc3NDbGFzc2VzLnNlbGVjdGVkO1xuICAgIH1cbiAgICByZXR1cm4gY3NzO1xuICB9XG4gIGNoYW5nZShlOiBhbnkpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLnZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gIH1cbiAgZ2V0Um9vdENsYXNzKHF1ZXN0aW9uOiBRdWVzdGlvblJhdGluZ01vZGVsKSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHF1ZXN0aW9uLmNzc0NsYXNzZXM7XG4gICAgaWYgKHF1ZXN0aW9uLmlzUmVhZE9ubHkpIHJldHVybiBjbGFzc2VzLnJvb3QgKyBcIiBcIiArIGNsYXNzZXMuZGlzYWJsZWQ7XG4gICAgcmV0dXJuIGNsYXNzZXMucm9vdDtcbiAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS1yYXRpbmdcIiwgUmF0aW5nKTtcbmV4cG9ydCBkZWZhdWx0IFJhdGluZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvcmF0aW5nLnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBTdXJ2ZXlNb2RlbCB9IGZyb20gXCIuLi9zdXJ2ZXlcIjtcbmltcG9ydCB7IFBhbmVsTW9kZWxCYXNlLCBQYW5lbE1vZGVsLCBRdWVzdGlvblJvd01vZGVsIH0gZnJvbSBcIi4uL3BhbmVsXCI7XG5pbXBvcnQgeyBWdWVTdXJ2ZXlNb2RlbCB9IGZyb20gXCIuL3N1cnZleU1vZGVsXCI7XG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgUm93IGV4dGVuZHMgVnVlIHtcbiAgQFByb3Agcm93OiBhbnk7XG4gIEBQcm9wIGNzczogYW55O1xuICBAUHJvcCBzdXJ2ZXk6IFN1cnZleU1vZGVsO1xuICBtb3VudGVkKCkge1xuICAgIGlmICghIXRoaXMucm93KSB7XG4gICAgICBWdWVTdXJ2ZXlNb2RlbC51cGRhdGVQcm9wZXJ0aWVzSGFzaCh0aGlzLnJvdyk7XG4gICAgfVxuICB9XG59XG5WdWUuY29tcG9uZW50KFwic3VydmV5LXJvd1wiLCBSb3cpO1xuZXhwb3J0IGRlZmF1bHQgUm93O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9yb3cudnVlIiwiXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiXG5pbXBvcnQge0NvbXBvbmVudCwgUHJvcH0gZnJvbSAndnVlLXByb3BlcnR5LWRlY29yYXRvcidcbmltcG9ydCB7TG9jYWxpemFibGVTdHJpbmd9IGZyb20gXCIuLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuXG5AQ29tcG9uZW50XG5leHBvcnQgY2xhc3MgU3VydmV5U3RyaW5nIGV4dGVuZHMgVnVlIHtcbiAgICBAUHJvcFxuICAgIGxvY1N0cmluZzogTG9jYWxpemFibGVTdHJpbmdcbn1cblxuVnVlLmNvbXBvbmVudChcInN1cnZleS1zdHJpbmdcIiwgU3VydmV5U3RyaW5nKVxuZXhwb3J0IGRlZmF1bHQgU3VydmV5U3RyaW5nO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS9zdHJpbmcudnVlIiwiXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wIH0gZnJvbSBcInZ1ZS1wcm9wZXJ0eS1kZWNvcmF0b3JcIjtcbmltcG9ydCB7IHN1cnZleUNzcyB9IGZyb20gXCIuLi9kZWZhdWx0Q3NzL2Nzc3N0YW5kYXJkXCI7XG5pbXBvcnQgeyBWdWVTdXJ2ZXlNb2RlbCBhcyBTdXJ2ZXlNb2RlbCB9IGZyb20gXCIuL3N1cnZleU1vZGVsXCI7XG5pbXBvcnQgeyBTdHlsZXNNYW5hZ2VyIH0gZnJvbSBcIi4uL3N0eWxlc21hbmFnZXJcIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIFN1cnZleSBleHRlbmRzIFZ1ZSB7XG4gIEBQcm9wIHN1cnZleTogU3VydmV5TW9kZWw7XG5cbiAgZm9yY2VVcGRhdGUoKSB7XG4gICAgdGhpcy4kZm9yY2VVcGRhdGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBtb3VudGVkKCkge1xuICAgIHZhciBlbCA9IHRoaXMuJGVsO1xuICAgIGlmIChlbCAmJiB0aGlzLnN1cnZleSkgdGhpcy5zdXJ2ZXkuZG9BZnRlclJlbmRlclN1cnZleShlbCk7XG4gICAgdGhpcy5zdXJ2ZXkucmVuZGVyQ2FsbGJhY2sgPSB0aGlzLmZvcmNlVXBkYXRlO1xuICAgIHRoaXMuc3VydmV5LnN0YXJ0VGltZXJGcm9tVUkoKTtcbiAgfVxuICBiZWZvcmVEZXN0cm95KCkge1xuICAgIHRoaXMuc3VydmV5LnN0b3BUaW1lcigpO1xuICAgIHRoaXMuc3VydmV5LnJlbmRlckNhbGxiYWNrID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGhhc1RpdGxlKCkge1xuICAgIHJldHVybiAhIXRoaXMuc3VydmV5LnRpdGxlICYmIHRoaXMuc3VydmV5LnNob3dUaXRsZTtcbiAgfVxuICBnZXQgaGFzQ29tcGxldGVkUGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkuc2hvd0NvbXBsZXRlZFBhZ2UgJiYgdGhpcy5zdXJ2ZXkuc3RhdGUgPT09IFwiY29tcGxldGVkXCI7XG4gIH1cbiAgZ2V0IGNzcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkuY3NzO1xuICB9XG4gIGdldE5hdkJ0bkNsYXNzZXMoYnRuVHlwZTogYW55KSB7XG4gICAgY29uc3QgYnRuQ2xhc3MgPSB0aGlzLmNzcy5uYXZpZ2F0aW9uW2J0blR5cGVdO1xuICAgIHJldHVybiB0aGlzLmNzcy5uYXZpZ2F0aW9uQnV0dG9uICsgXCIgXCIgKyBidG5DbGFzcztcbiAgfVxuICBnZXRDb21wbGV0ZWRQYWdlQ2xhc3NlcygpIHtcbiAgICB2YXIgY3NzID0gdGhpcy5jc3M7XG4gICAgcmV0dXJuIGNzcy5ib2R5ICsgXCIgXCIgKyBjc3MuY29tcGxldGVkUGFnZTtcbiAgfVxuICBnZXRDb21wbGV0ZWRTdGF0ZUNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3NzLnNhdmVEYXRhW3RoaXMuc3VydmV5LmNvbXBsZXRlZFN0YXRlXTtcbiAgfVxuICBzdGFydCgpIHtcbiAgICB0aGlzLnN1cnZleS5zdGFydCgpO1xuICB9XG4gIHByZXZQYWdlKCkge1xuICAgIHRoaXMuc3VydmV5LnByZXZQYWdlKCk7XG4gIH1cbiAgbmV4dFBhZ2UoKSB7XG4gICAgdGhpcy5zdXJ2ZXkubmV4dFBhZ2UoKTtcbiAgfVxuICBjb21wbGV0ZUxhc3RQYWdlKCkge1xuICAgIHRoaXMuc3VydmV5LmNvbXBsZXRlTGFzdFBhZ2UoKTtcbiAgfVxuICBkb1RyeVNhdmVBZ2FpbigpIHtcbiAgICB0aGlzLnN1cnZleS5kb0NvbXBsZXRlKCk7XG4gIH1cbn1cblxuLy8gVE9ETzogbWFrZSB0aGlzIGZ1bmN0aW9uYWxpdHkgYXZhaWxhYmxlIHZpYSBzdXJ2ZXlDc3MgaW4gYWxsIGV4YW1wbGVzXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoU3VydmV5LCBcImNzc1R5cGVcIiwge1xuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBzdXJ2ZXlDc3MuY3VycmVudFR5cGU7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24obmV3VHlwZSkge1xuICAgIFN0eWxlc01hbmFnZXIuYXBwbHlUaGVtZShuZXdUeXBlKTtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiBmYWxzZVxufSk7XG5cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXlcIiwgU3VydmV5KTtcbmV4cG9ydCBkZWZhdWx0IFN1cnZleTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3NyYy92dWUvc3VydmV5LnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5pbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvcCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIFF1ZXN0aW9uVnVlIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uVGV4dE1vZGVsIH0gZnJvbSBcIi4uL3F1ZXN0aW9uX3RleHRcIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIFRleHQgZXh0ZW5kcyBRdWVzdGlvblZ1ZTxRdWVzdGlvblRleHRNb2RlbD4ge1xuICBjaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucXVlc3Rpb24udmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAga2V5dXAoZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy5xdWVzdGlvbi5pc0lucHV0VGV4dFVwZGF0ZSkgcmV0dXJuO1xuICAgIHRoaXMucXVlc3Rpb24udmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbn1cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktdGV4dFwiLCBUZXh0KTtcbmV4cG9ydCBkZWZhdWx0IFRleHQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL3RleHQudnVlIiwiXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiXG5pbXBvcnQge0NvbXBvbmVudCwgUHJvcH0gZnJvbSAndnVlLXByb3BlcnR5LWRlY29yYXRvcidcbmltcG9ydCB7U3VydmV5TW9kZWx9IGZyb20gJy4uL3N1cnZleSdcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIFRpbWVyUGFuZWwgZXh0ZW5kcyBWdWUge1xuICAgIEBQcm9wXG4gICAgc3VydmV5OiBTdXJ2ZXlNb2RlbFxuICAgIEBQcm9wXG4gICAgY3NzOiBhbnlcbiAgICBnZXQgdGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VydmV5LnRpbWVySW5mb1RleHQ7XG4gICAgfVxufVxuVnVlLmNvbXBvbmVudChcInN1cnZleS10aW1lcnBhbmVsXCIsIFRpbWVyUGFuZWwpXG5leHBvcnQgZGVmYXVsdCBUaW1lclBhbmVsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXNjcmlwdCZpbmRleD0wIS4vc3JjL3Z1ZS90aW1lcnBhbmVsLnZ1ZSIsIlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbmltcG9ydCBWdWUgZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9wLCBXYXRjaCB9IGZyb20gXCJ2dWUtcHJvcGVydHktZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBzdXJ2ZXlDc3MgfSBmcm9tIFwiLi4vZGVmYXVsdENzcy9jc3NzdGFuZGFyZFwiO1xuaW1wb3J0IHsgU3VydmV5TW9kZWwgfSBmcm9tIFwiLi4vc3VydmV5XCI7XG5pbXBvcnQgeyBTdXJ2ZXlXaW5kb3dNb2RlbCB9IGZyb20gXCIuLi9zdXJ2ZXlXaW5kb3dcIjtcbmltcG9ydCB7IFZ1ZVN1cnZleVdpbmRvd01vZGVsIH0gZnJvbSBcIi4vc3VydmV5TW9kZWxcIjtcblxuQENvbXBvbmVudFxuZXhwb3J0IGNsYXNzIFdpbmRvdyBleHRlbmRzIFZ1ZSB7XG4gIEBQcm9wIHdpbmRvdzogU3VydmV5V2luZG93TW9kZWw7XG4gIEBQcm9wIHN1cnZleTogU3VydmV5TW9kZWw7XG4gIEBQcm9wIGlzRXhwYW5kZWQ6IGJvb2xlYW47XG4gIEBQcm9wIGlzZXhwYW5kZWQ6IGJvb2xlYW47XG4gIEBQcm9wIGNsb3NlT25Db21wbGV0ZVRpbWVvdXQ6IG51bWJlcjtcblxuICBzdXJ2ZXlXaW5kb3c6IFN1cnZleVdpbmRvd01vZGVsO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICh0aGlzLndpbmRvdykge1xuICAgICAgdGhpcy5zdXJ2ZXlXaW5kb3cgPSB0aGlzLndpbmRvdztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXJ2ZXlXaW5kb3cgPSBuZXcgVnVlU3VydmV5V2luZG93TW9kZWwobnVsbCwgdGhpcy5zdXJ2ZXkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc2V4cGFuZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc3VydmV5V2luZG93LmlzRXhwYW5kZWQgPSB0aGlzLmlzZXhwYW5kZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdXJ2ZXlXaW5kb3cuaXNFeHBhbmRlZCA9IHRoaXMuaXNFeHBhbmRlZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2xvc2VPbkNvbXBsZXRlVGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN1cnZleVdpbmRvdy5jbG9zZU9uQ29tcGxldGVUaW1lb3V0ID0gdGhpcy5jbG9zZU9uQ29tcGxldGVUaW1lb3V0O1xuICAgIH1cbiAgICB0aGlzLnN1cnZleVdpbmRvdy5pc1Nob3dpbmcgPSB0cnVlO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLnN1cnZleVdpbmRvdy5jbG9zZVdpbmRvd09uQ29tcGxldGVDYWxsYmFjayA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5kb0hpZGUoKTtcbiAgICB9O1xuICB9XG4gIGdldCB3aW5kb3dTdXJ2ZXkoKTogU3VydmV5TW9kZWwge1xuICAgIHJldHVybiB0aGlzLnN1cnZleVdpbmRvdy5zdXJ2ZXk7XG4gIH1cbiAgZ2V0IGNzcygpIHtcbiAgICByZXR1cm4gc3VydmV5Q3NzLmdldENzcygpO1xuICB9XG4gIGdldCBleHBhbmRlZENzcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXlXaW5kb3cuaXNFeHBhbmRlZFxuICAgICAgPyB0aGlzLmNzcy53aW5kb3cuaGVhZGVyLmJ1dHRvbkNvbGxhcHNlZFxuICAgICAgOiB0aGlzLmNzcy53aW5kb3cuaGVhZGVyLmJ1dHRvbkV4cGFuZGVkO1xuICB9XG4gIGdldCBpc0V4cGFuZGVkU3VydmV5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN1cnZleVdpbmRvdy5pc0V4cGFuZGVkO1xuICB9XG4gIHNldCBpc0V4cGFuZGVkU3VydmV5KHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc3VydmV5V2luZG93LmlzRXhwYW5kZWQgPSB2YWw7XG4gIH1cbiAgZG9FeHBhbmQoKSB7XG4gICAgdGhpcy5zdXJ2ZXlXaW5kb3cuaXNFeHBhbmRlZCA9ICF0aGlzLnN1cnZleVdpbmRvdy5pc0V4cGFuZGVkO1xuICB9XG4gIGRvSGlkZSgpIHtcbiAgICBWdWUuc2V0KHRoaXMuc3VydmV5V2luZG93LCBcImlzU2hvd2luZ1wiLCBmYWxzZSk7XG4gIH1cbn1cblZ1ZS5jb21wb25lbnQoXCJzdXJ2ZXktd2luZG93XCIsIFdpbmRvdyk7XG5leHBvcnQgZGVmYXVsdCBXaW5kb3c7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9zcmMvdnVlL3dpbmRvdy52dWUiLCJpbXBvcnQgeyBCYXNlLCBTdXJ2ZXlFcnJvciwgSVRleHRQcm9jZXNzb3IsIElRdWVzdGlvbiB9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciwgSnNvbk9iamVjdFByb3BlcnR5IH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgV2ViUmVxdWVzdEVycm9yLCBXZWJSZXF1ZXN0RW1wdHlFcnJvciB9IGZyb20gXCIuL2Vycm9yXCI7XG5pbXBvcnQgeyBzZXR0aW5ncyB9IGZyb20gXCIuL3NldHRpbmdzXCI7XG5cbmNsYXNzIFhtbFBhcnNlciB7XG4gIHByaXZhdGUgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICBwdWJsaWMgYXNzaWduVmFsdWUodGFyZ2V0OiBhbnksIG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldFtuYW1lXSkpIHtcbiAgICAgIHRhcmdldFtuYW1lXS5wdXNoKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHRhcmdldFtuYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YXJnZXRbbmFtZV0gPSBbdGFyZ2V0W25hbWVdXS5jb25jYXQodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDEgJiZcbiAgICAgIE9iamVjdC5rZXlzKHZhbHVlKVswXSA9PT0gbmFtZVxuICAgICkge1xuICAgICAgdGFyZ2V0W25hbWVdID0gdmFsdWVbbmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldFtuYW1lXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgeG1sMkpzb24oeG1sTm9kZTogYW55LCByZXN1bHQ6IGFueSkge1xuICAgIGlmICh4bWxOb2RlLmNoaWxkcmVuICYmIHhtbE5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4bWxOb2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBjaGlsZE5vZGUgPSB4bWxOb2RlLmNoaWxkcmVuW2ldO1xuICAgICAgICBsZXQgY2hpbGRPYmplY3QgPSB7fTtcbiAgICAgICAgdGhpcy54bWwySnNvbihjaGlsZE5vZGUsIGNoaWxkT2JqZWN0KTtcbiAgICAgICAgdGhpcy5hc3NpZ25WYWx1ZShyZXN1bHQsIGNoaWxkTm9kZS5ub2RlTmFtZSwgY2hpbGRPYmplY3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFzc2lnblZhbHVlKHJlc3VsdCwgeG1sTm9kZS5ub2RlTmFtZSwgeG1sTm9kZS50ZXh0Q29udGVudCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBwYXJzZVhtbFN0cmluZyh4bWxTdHJpbmc6IHN0cmluZykge1xuICAgIGxldCB4bWxSb290ID0gdGhpcy5wYXJzZXIucGFyc2VGcm9tU3RyaW5nKHhtbFN0cmluZywgXCJ0ZXh0L3htbFwiKTtcbiAgICBsZXQganNvbiA9IHt9O1xuICAgIHRoaXMueG1sMkpzb24oeG1sUm9vdCwganNvbik7XG4gICAgcmV0dXJuIGpzb247XG4gIH1cbn1cblxuLyoqXG4gKiBBIGRlZmluaXRpb24gZm9yIGZpbGxpbmcgY2hvaWNlcyBmb3IgY2hlY2tib3gsIGRyb3Bkb3duIGFuZCByYWRpb2dyb3VwIHF1ZXN0aW9ucyBmcm9tIHJlc2Z1bGwgc2VydmljZXMuXG4gKiBUaGUgcnVuIG1ldGhvZCBjYWxsIGEgcmVzdGZ1bGwgc2VydmljZSBhbmQgcmVzdWx0cyBjYW4gYmUgZ2V0IG9uIGdldFJlc3VsdENhbGxiYWNrLlxuICovXG5leHBvcnQgY2xhc3MgQ2hvaWNlc1Jlc3RmdWxsIGV4dGVuZHMgQmFzZSB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEVuY29kZVBhcmFtZXRlcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNldHRpbmdzLndlYnNlcnZpY2VFbmNvZGVQYXJhbWV0ZXJzO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgc2V0IEVuY29kZVBhcmFtZXRlcnModmFsOiBib29sZWFuKSB7XG4gICAgc2V0dGluZ3Mud2Vic2VydmljZUVuY29kZVBhcmFtZXRlcnMgPSB2YWw7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBjbGVhckNhY2hlKCkge1xuICAgIENob2ljZXNSZXN0ZnVsbC5pdGVtc1Jlc3VsdCA9IHt9O1xuICB9XG4gIHByaXZhdGUgc3RhdGljIGl0ZW1zUmVzdWx0OiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgcHJpdmF0ZSBzdGF0aWMgc2VuZGluZ1NhbWVSZXF1ZXN0czoge1xuICAgIFtpbmRleDogc3RyaW5nXTogQXJyYXk8Q2hvaWNlc1Jlc3RmdWxsPjtcbiAgfSA9IHt9O1xuICBwcml2YXRlIHN0YXRpYyBhZGRTYW1lUmVxdWVzdChvYmo6IENob2ljZXNSZXN0ZnVsbCk6IGJvb2xlYW4ge1xuICAgIHZhciBoYXNoID0gb2JqLm9iakhhc2g7XG4gICAgdmFyIHJlcyA9IENob2ljZXNSZXN0ZnVsbC5zZW5kaW5nU2FtZVJlcXVlc3RzW2hhc2hdO1xuICAgIGlmICghcmVzKSB7XG4gICAgICBDaG9pY2VzUmVzdGZ1bGwuc2VuZGluZ1NhbWVSZXF1ZXN0c1tvYmoub2JqSGFzaF0gPSBbXTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmVzLnB1c2gob2JqKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcml2YXRlIHN0YXRpYyB1bnJlZ2lzdGVyU2FtZVJlcXVlc3RzKG9iajogQ2hvaWNlc1Jlc3RmdWxsLCBpdGVtczogYW55KSB7XG4gICAgdmFyIHJlcyA9IENob2ljZXNSZXN0ZnVsbC5zZW5kaW5nU2FtZVJlcXVlc3RzW29iai5vYmpIYXNoXTtcbiAgICBkZWxldGUgQ2hvaWNlc1Jlc3RmdWxsLnNlbmRpbmdTYW1lUmVxdWVzdHNbb2JqLm9iakhhc2hdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoISFyZXNbaV0uZ2V0UmVzdWx0Q2FsbGJhY2spIHtcbiAgICAgICAgcmVzW2ldLmdldFJlc3VsdENhbGxiYWNrKGl0ZW1zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIHN0YXRpYyBvbkJlZm9yZVNlbmRSZXF1ZXN0OiAoXG4gICAgc2VuZGVyOiBDaG9pY2VzUmVzdGZ1bGwsXG4gICAgb3B0aW9uczogeyByZXF1ZXN0OiBYTUxIdHRwUmVxdWVzdCB9XG4gICkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0Q2FjaGVkSXRlbXNSZXN1bHQob2JqOiBDaG9pY2VzUmVzdGZ1bGwpOiBib29sZWFuIHtcbiAgICB2YXIgaGFzaCA9IG9iai5vYmpIYXNoO1xuICAgIHZhciByZXMgPSBDaG9pY2VzUmVzdGZ1bGwuaXRlbXNSZXN1bHRbaGFzaF07XG4gICAgaWYgKCFyZXMpIHJldHVybiBmYWxzZTtcbiAgICBpZiAob2JqLmdldFJlc3VsdENhbGxiYWNrKSB7XG4gICAgICBvYmouZ2V0UmVzdWx0Q2FsbGJhY2socmVzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBsYXN0T2JqSGFzaDogc3RyaW5nID0gXCJcIjtcbiAgcHJpdmF0ZSBpc1J1bm5pbmdWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgcHJvY2Vzc2VkVXJsOiBzdHJpbmcgPSBcIlwiO1xuICBwcm90ZWN0ZWQgcHJvY2Vzc2VkUGF0aDogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIGdldFJlc3VsdENhbGxiYWNrOiAoaXRlbXM6IEFycmF5PEl0ZW1WYWx1ZT4pID0+IHZvaWQ7XG4gIHB1YmxpYyBiZWZvcmVTZW5kUmVxdWVzdENhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgdXBkYXRlUmVzdWx0Q2FsbGJhY2s6IChcbiAgICBpdGVtczogQXJyYXk8SXRlbVZhbHVlPixcbiAgICBzZXJ2ZXJSZXN1bHQ6IGFueVxuICApID0+IEFycmF5PEl0ZW1WYWx1ZT47XG4gIHB1YmxpYyBnZXRJdGVtVmFsdWVDYWxsYmFjazogKGl0ZW06IGFueSkgPT4gYW55O1xuICBwdWJsaWMgZXJyb3I6IFN1cnZleUVycm9yID0gbnVsbDtcbiAgcHVibGljIG93bmVyOiBJUXVlc3Rpb247XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIHJ1bih0ZXh0UHJvY2Vzc29yOiBJVGV4dFByb2Nlc3NvciA9IG51bGwpIHtcbiAgICBpZiAoIXRoaXMudXJsIHx8ICF0aGlzLmdldFJlc3VsdENhbGxiYWNrKSByZXR1cm47XG4gICAgdGhpcy5wcm9jZXNzZWRUZXh0KHRleHRQcm9jZXNzb3IpO1xuICAgIGlmICghdGhpcy5wcm9jZXNzZWRVcmwpIHtcbiAgICAgIHRoaXMuZG9FbXB0eVJlc3VsdENhbGxiYWNrKHt9KTtcbiAgICAgIHRoaXMubGFzdE9iakhhc2ggPSB0aGlzLm9iakhhc2g7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmxhc3RPYmpIYXNoID09PSB0aGlzLm9iakhhc2gpIHJldHVybjtcbiAgICB0aGlzLmxhc3RPYmpIYXNoID0gdGhpcy5vYmpIYXNoO1xuICAgIHRoaXMuZXJyb3IgPSBudWxsO1xuICAgIGlmICh0aGlzLnVzZUNoYW5nZWRJdGVtc1Jlc3VsdHMoKSkgcmV0dXJuO1xuICAgIGlmIChDaG9pY2VzUmVzdGZ1bGwuYWRkU2FtZVJlcXVlc3QodGhpcykpIHJldHVybjtcbiAgICB0aGlzLnNlbmRSZXF1ZXN0KCk7XG4gIH1cbiAgcHVibGljIGdldCBpc1J1bm5pbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNSdW5uaW5nVmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBpc1dhaXRpbmdGb3JQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnVybCAmJiAhdGhpcy5wcm9jZXNzZWRVcmw7XG4gIH1cbiAgcHJvdGVjdGVkIHVzZUNoYW5nZWRJdGVtc1Jlc3VsdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENob2ljZXNSZXN0ZnVsbC5nZXRDYWNoZWRJdGVtc1Jlc3VsdCh0aGlzKTtcbiAgfVxuICBwcml2YXRlIGRvRW1wdHlSZXN1bHRDYWxsYmFjayhzZXJ2ZXJSZXN1bHQ6IGFueSkge1xuICAgIHZhciBpdGVtczogQXJyYXk8YW55PiA9IFtdO1xuICAgIGlmICh0aGlzLnVwZGF0ZVJlc3VsdENhbGxiYWNrKSB7XG4gICAgICBpdGVtcyA9IHRoaXMudXBkYXRlUmVzdWx0Q2FsbGJhY2soaXRlbXMsIHNlcnZlclJlc3VsdCk7XG4gICAgfVxuICAgIHRoaXMuZ2V0UmVzdWx0Q2FsbGJhY2soaXRlbXMpO1xuICB9XG4gIHByaXZhdGUgcHJvY2Vzc2VkVGV4dCh0ZXh0UHJvY2Vzc29yOiBJVGV4dFByb2Nlc3Nvcikge1xuICAgIGlmICh0ZXh0UHJvY2Vzc29yKSB7XG4gICAgICB2YXIgcFVybCA9IHRleHRQcm9jZXNzb3IucHJvY2Vzc1RleHRFeChcbiAgICAgICAgdGhpcy51cmwsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICBzZXR0aW5ncy53ZWJzZXJ2aWNlRW5jb2RlUGFyYW1ldGVyc1xuICAgICAgKTtcbiAgICAgIHZhciBwUGF0aCA9IHRleHRQcm9jZXNzb3IucHJvY2Vzc1RleHRFeChcbiAgICAgICAgdGhpcy5wYXRoLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgc2V0dGluZ3Mud2Vic2VydmljZUVuY29kZVBhcmFtZXRlcnNcbiAgICAgICk7XG4gICAgICBpZiAoIXBVcmwuaGFzQWxsVmFsdWVzT25MYXN0UnVuIHx8ICFwUGF0aC5oYXNBbGxWYWx1ZXNPbkxhc3RSdW4pIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzZWRVcmwgPSBcIlwiO1xuICAgICAgICB0aGlzLnByb2Nlc3NlZFBhdGggPSBcIlwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzZWRVcmwgPSBwVXJsLnRleHQ7XG4gICAgICAgIHRoaXMucHJvY2Vzc2VkUGF0aCA9IHBQYXRoLnRleHQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2VkVXJsID0gdGhpcy51cmw7XG4gICAgICB0aGlzLnByb2Nlc3NlZFBhdGggPSB0aGlzLnBhdGg7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpIHtcbiAgICBsZXQgcGFyc2VkUmVzcG9uc2U7XG4gICAgaWYgKFxuICAgICAgISFyZXNwb25zZSAmJlxuICAgICAgdHlwZW9mIHJlc3BvbnNlLmluZGV4T2YgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgcmVzcG9uc2UuaW5kZXhPZihcIjxcIikgPT09IDBcbiAgICApIHtcbiAgICAgIHZhciBwYXJzZXIgPSBuZXcgWG1sUGFyc2VyKCk7XG4gICAgICBwYXJzZWRSZXNwb25zZSA9IHBhcnNlci5wYXJzZVhtbFN0cmluZyhyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnNlZFJlc3BvbnNlID0gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcGFyc2VkUmVzcG9uc2UgPSAocmVzcG9uc2UgfHwgXCJcIilcbiAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAubWFwKChzOiBhbnkpID0+IHMudHJpbShcIiBcIikpXG4gICAgICAgICAgLmZpbHRlcigoczogYW55KSA9PiAhIXMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkUmVzcG9uc2U7XG4gIH1cbiAgcHJvdGVjdGVkIHNlbmRSZXF1ZXN0KCkge1xuICAgIHRoaXMuaXNSdW5uaW5nVmFsdWUgPSB0cnVlO1xuICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICB4aHIub3BlbihcIkdFVFwiLCB0aGlzLnByb2Nlc3NlZFVybCk7XG4gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIik7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYuaXNSdW5uaW5nVmFsdWUgPSBmYWxzZTtcbiAgICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgc2VsZi5vbkxvYWQoc2VsZi5wYXJzZVJlc3BvbnNlKHhoci5yZXNwb25zZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZi5vbkVycm9yKHhoci5zdGF0dXNUZXh0LCB4aHIucmVzcG9uc2VUZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBvcHRpb25zID0geyByZXF1ZXN0OiB4aHIgfTtcbiAgICBpZiAoISFDaG9pY2VzUmVzdGZ1bGwub25CZWZvcmVTZW5kUmVxdWVzdCkge1xuICAgICAgQ2hvaWNlc1Jlc3RmdWxsLm9uQmVmb3JlU2VuZFJlcXVlc3QodGhpcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIHRoaXMuYmVmb3JlU2VuZFJlcXVlc3QoKTtcbiAgICBvcHRpb25zLnJlcXVlc3Quc2VuZCgpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiY2hvaWNlc0J5VXJsXCI7XG4gIH1cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy51cmwgJiYgIXRoaXMucGF0aCAmJiAhdGhpcy52YWx1ZU5hbWUgJiYgIXRoaXMudGl0bGVOYW1lO1xuICB9XG4gIHB1YmxpYyBnZXRDdXN0b21Qcm9wZXJ0aWVzTmFtZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgdmFyIHByb3BlcnRpZXMgPSB0aGlzLmdldEN1c3RvbVByb3BlcnRpZXMoKTtcbiAgICB2YXIgcmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcy5wdXNoKHRoaXMuZ2V0Q3VzdG9tUHJvcGVydHlOYW1lKHByb3BlcnRpZXNbaV0ubmFtZSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgZ2V0Q3VzdG9tUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcHJvcGVydHlOYW1lICsgXCJOYW1lXCI7XG4gIH1cbiAgcHJpdmF0ZSBnZXRDdXN0b21Qcm9wZXJ0aWVzKCk6IEFycmF5PEpzb25PYmplY3RQcm9wZXJ0eT4ge1xuICAgIHZhciBwcm9wZXJ0aWVzID0gU2VyaWFsaXplci5nZXRQcm9wZXJ0aWVzKHRoaXMuaXRlbVZhbHVlVHlwZSk7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKFxuICAgICAgICBwcm9wZXJ0aWVzW2ldLm5hbWUgPT09IFwidmFsdWVcIiB8fFxuICAgICAgICBwcm9wZXJ0aWVzW2ldLm5hbWUgPT09IFwidGV4dFwiIHx8XG4gICAgICAgIHByb3BlcnRpZXNbaV0ubmFtZSA9PT0gXCJ2aXNpYmxlSWZcIiB8fFxuICAgICAgICBwcm9wZXJ0aWVzW2ldLm5hbWUgPT09IFwiZW5hYmxlSWZcIlxuICAgICAgKVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIHJlcy5wdXNoKHByb3BlcnRpZXNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHB1YmxpYyBzZXREYXRhKGpzb246IGFueSkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICBpZiAoanNvbi51cmwpIHRoaXMudXJsID0ganNvbi51cmw7XG4gICAgaWYgKGpzb24ucGF0aCkgdGhpcy5wYXRoID0ganNvbi5wYXRoO1xuICAgIGlmIChqc29uLnZhbHVlTmFtZSkgdGhpcy52YWx1ZU5hbWUgPSBqc29uLnZhbHVlTmFtZTtcbiAgICBpZiAoanNvbi50aXRsZU5hbWUpIHRoaXMudGl0bGVOYW1lID0ganNvbi50aXRsZU5hbWU7XG4gICAgdmFyIHByb3BlcnRpZXMgPSB0aGlzLmdldEN1c3RvbVByb3BlcnRpZXNOYW1lcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGpzb25bcHJvcGVydGllc1tpXV0pICg8YW55PnRoaXMpW3Byb3BlcnRpZXNbaV1dID0ganNvbltwcm9wZXJ0aWVzW2ldXTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldERhdGEoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0VtcHR5KSByZXR1cm4gbnVsbDtcbiAgICB2YXIgcmVzOiBhbnkgPSB7fTtcbiAgICBpZiAodGhpcy51cmwpIHJlc1tcInVybFwiXSA9IHRoaXMudXJsO1xuICAgIGlmICh0aGlzLnBhdGgpIHJlc1tcInBhdGhcIl0gPSB0aGlzLnBhdGg7XG4gICAgaWYgKHRoaXMudmFsdWVOYW1lKSByZXNbXCJ2YWx1ZU5hbWVcIl0gPSB0aGlzLnZhbHVlTmFtZTtcbiAgICBpZiAodGhpcy50aXRsZU5hbWUpIHJlc1tcInRpdGxlTmFtZVwiXSA9IHRoaXMudGl0bGVOYW1lO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0aWVzTmFtZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICgoPGFueT50aGlzKVtwcm9wZXJ0aWVzW2ldXSlcbiAgICAgICAgcmVzW3Byb3BlcnRpZXNbaV1dID0gKDxhbnk+dGhpcylbcHJvcGVydGllc1tpXV07XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidXJsXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgdXJsKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwidXJsXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBwYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhdGhcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBwYXRoKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicGF0aFwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInZhbHVlTmFtZVwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlTmFtZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInZhbHVlTmFtZVwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgdGl0bGVOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInRpdGxlTmFtZVwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRpdGxlTmFtZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInRpdGxlTmFtZVwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgYWxsb3dFbXB0eVJlc3BvbnNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJhbGxvd0VtcHR5UmVzcG9uc2VcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgYWxsb3dFbXB0eVJlc3BvbnNlKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImFsbG93RW1wdHlSZXNwb25zZVwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgaXRlbVZhbHVlVHlwZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5vd25lcikgcmV0dXJuIFwiaXRlbXZhbHVlXCI7XG4gICAgdmFyIHByb3AgPSBTZXJpYWxpemVyLmZpbmRQcm9wZXJ0eSh0aGlzLm93bmVyLmdldFR5cGUoKSwgXCJjaG9pY2VzXCIpO1xuICAgIGlmICghcHJvcCkgcmV0dXJuIFwiaXRlbXZhbHVlXCI7XG4gICAgaWYgKHByb3AudHlwZSA9PSBcIml0ZW12YWx1ZVtdXCIpIHJldHVybiBcIml0ZW12YWx1ZVwiO1xuICAgIHJldHVybiBwcm9wLnR5cGU7XG4gIH1cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMudXJsID0gXCJcIjtcbiAgICB0aGlzLnBhdGggPSBcIlwiO1xuICAgIHRoaXMudmFsdWVOYW1lID0gXCJcIjtcbiAgICB0aGlzLnRpdGxlTmFtZSA9IFwiXCI7XG4gICAgdmFyIHByb3BlcnRpZXMgPSB0aGlzLmdldEN1c3RvbVByb3BlcnRpZXNOYW1lcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCg8YW55PnRoaXMpW3Byb3BlcnRpZXNbaV1dKSAoPGFueT50aGlzKVtwcm9wZXJ0aWVzW2ldXSA9IFwiXCI7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBiZWZvcmVTZW5kUmVxdWVzdCgpIHtcbiAgICBpZiAoISF0aGlzLmJlZm9yZVNlbmRSZXF1ZXN0Q2FsbGJhY2spIHtcbiAgICAgIHRoaXMuYmVmb3JlU2VuZFJlcXVlc3RDYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgb25Mb2FkKHJlc3VsdDogYW55KSB7XG4gICAgdmFyIGl0ZW1zID0gW107XG4gICAgdmFyIHVwZGF0ZWRSZXN1bHQgPSB0aGlzLmdldFJlc3VsdEFmdGVyUGF0aChyZXN1bHQpO1xuICAgIGlmICh1cGRhdGVkUmVzdWx0ICYmIHVwZGF0ZWRSZXN1bHRbXCJsZW5ndGhcIl0pIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdXBkYXRlZFJlc3VsdC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgaXRlbVZhbHVlID0gdXBkYXRlZFJlc3VsdFtpXTtcbiAgICAgICAgaWYgKCFpdGVtVmFsdWUpIGNvbnRpbnVlO1xuICAgICAgICB2YXIgdmFsdWUgPSAhIXRoaXMuZ2V0SXRlbVZhbHVlQ2FsbGJhY2tcbiAgICAgICAgICA/IHRoaXMuZ2V0SXRlbVZhbHVlQ2FsbGJhY2soaXRlbVZhbHVlKVxuICAgICAgICAgIDogdGhpcy5nZXRWYWx1ZShpdGVtVmFsdWUpO1xuICAgICAgICB2YXIgdGl0bGUgPSB0aGlzLmdldFRpdGxlKGl0ZW1WYWx1ZSk7XG4gICAgICAgIHZhciBpdGVtID0gbmV3IEl0ZW1WYWx1ZSh2YWx1ZSwgdGl0bGUpO1xuICAgICAgICB0aGlzLnNldEN1c3RvbVByb3BlcnRpZXMoaXRlbSwgaXRlbVZhbHVlKTtcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLmFsbG93RW1wdHlSZXNwb25zZSkge1xuICAgICAgICB0aGlzLmVycm9yID0gbmV3IFdlYlJlcXVlc3RFbXB0eUVycm9yKG51bGwsIHRoaXMub3duZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy51cGRhdGVSZXN1bHRDYWxsYmFjaykge1xuICAgICAgaXRlbXMgPSB0aGlzLnVwZGF0ZVJlc3VsdENhbGxiYWNrKGl0ZW1zLCByZXN1bHQpO1xuICAgIH1cbiAgICBDaG9pY2VzUmVzdGZ1bGwuaXRlbXNSZXN1bHRbdGhpcy5vYmpIYXNoXSA9IGl0ZW1zO1xuICAgIHRoaXMuZ2V0UmVzdWx0Q2FsbGJhY2soaXRlbXMpO1xuICAgIENob2ljZXNSZXN0ZnVsbC51bnJlZ2lzdGVyU2FtZVJlcXVlc3RzKHRoaXMsIGl0ZW1zKTtcbiAgfVxuICBwcml2YXRlIHNldEN1c3RvbVByb3BlcnRpZXMoaXRlbTogSXRlbVZhbHVlLCBpdGVtVmFsdWU6IGFueSkge1xuICAgIHZhciBwcm9wZXJ0aWVzID0gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0aWVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcCA9IHByb3BlcnRpZXNbaV07XG4gICAgICB2YXIgdmFsID0gdGhpcy5nZXRWYWx1ZUNvcmUoXG4gICAgICAgIGl0ZW1WYWx1ZSxcbiAgICAgICAgdGhpcy5nZXRQcm9wZXJ0eUJpbmRpbmcocHJvcC5uYW1lKVxuICAgICAgKTtcbiAgICAgIGlmICghdGhpcy5pc1ZhbHVlRW1wdHkodmFsKSkge1xuICAgICAgICAoPGFueT5pdGVtKVtwcm9wLm5hbWVdID0gdmFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldFByb3BlcnR5QmluZGluZyhwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xuICAgIGlmICgoPGFueT50aGlzKVt0aGlzLmdldEN1c3RvbVByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpXSlcbiAgICAgIHJldHVybiAoPGFueT50aGlzKVt0aGlzLmdldEN1c3RvbVByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpXTtcbiAgICBpZiAoKDxhbnk+dGhpcylbcHJvcGVydHlOYW1lXSkgcmV0dXJuICg8YW55PnRoaXMpW3Byb3BlcnR5TmFtZV07XG4gICAgcmV0dXJuIHByb3BlcnR5TmFtZTtcbiAgfVxuICBwcml2YXRlIG9uRXJyb3Ioc3RhdHVzOiBzdHJpbmcsIHJlc3BvbnNlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVycm9yID0gbmV3IFdlYlJlcXVlc3RFcnJvcihzdGF0dXMsIHJlc3BvbnNlLCB0aGlzLm93bmVyKTtcbiAgICB0aGlzLmRvRW1wdHlSZXN1bHRDYWxsYmFjayhyZXNwb25zZSk7XG4gICAgQ2hvaWNlc1Jlc3RmdWxsLnVucmVnaXN0ZXJTYW1lUmVxdWVzdHModGhpcywgW10pO1xuICB9XG4gIHByaXZhdGUgZ2V0UmVzdWx0QWZ0ZXJQYXRoKHJlc3VsdDogYW55KSB7XG4gICAgaWYgKCFyZXN1bHQpIHJldHVybiByZXN1bHQ7XG4gICAgaWYgKCF0aGlzLnByb2Nlc3NlZFBhdGgpIHJldHVybiByZXN1bHQ7XG4gICAgdmFyIHBhdGhlcyA9IHRoaXMuZ2V0UGF0aGVzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdFtwYXRoZXNbaV1dO1xuICAgICAgaWYgKCFyZXN1bHQpIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHByaXZhdGUgZ2V0UGF0aGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciBwYXRoZXMgPSBbXTtcbiAgICBpZiAodGhpcy5wcm9jZXNzZWRQYXRoLmluZGV4T2YoXCI7XCIpID4gLTEpIHtcbiAgICAgIHBhdGhlcyA9IHRoaXMucGF0aC5zcGxpdChcIjtcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhdGhlcyA9IHRoaXMucHJvY2Vzc2VkUGF0aC5zcGxpdChcIixcIik7XG4gICAgfVxuICAgIGlmIChwYXRoZXMubGVuZ3RoID09IDApIHBhdGhlcy5wdXNoKHRoaXMucHJvY2Vzc2VkUGF0aCk7XG4gICAgcmV0dXJuIHBhdGhlcztcbiAgfVxuICBwcml2YXRlIGdldFZhbHVlKGl0ZW06IGFueSk6IGFueSB7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gbnVsbDtcbiAgICBpZiAodGhpcy52YWx1ZU5hbWUpIHJldHVybiB0aGlzLmdldFZhbHVlQ29yZShpdGVtLCB0aGlzLnZhbHVlTmFtZSk7XG4gICAgaWYgKCEoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCkpIHJldHVybiBpdGVtO1xuICAgIHZhciBsZW4gPSBPYmplY3Qua2V5cyhpdGVtKS5sZW5ndGg7XG4gICAgaWYgKGxlbiA8IDEpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBpdGVtW09iamVjdC5rZXlzKGl0ZW0pWzBdXTtcbiAgfVxuICBwcml2YXRlIGdldFRpdGxlKGl0ZW06IGFueSk6IGFueSB7XG4gICAgdmFyIHRpdGxlID0gdGhpcy50aXRsZU5hbWUgPyB0aGlzLnRpdGxlTmFtZSA6IFwidGl0bGVcIjtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZUNvcmUoaXRlbSwgdGl0bGUpO1xuICB9XG4gIHByaXZhdGUgZ2V0VmFsdWVDb3JlKGl0ZW06IGFueSwgcHJvcGVydHk6IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gbnVsbDtcbiAgICBpZiAocHJvcGVydHkuaW5kZXhPZihcIi5cIikgPCAwKSByZXR1cm4gaXRlbVtwcm9wZXJ0eV07XG4gICAgdmFyIHByb3BlcnRpZXMgPSBwcm9wZXJ0eS5zcGxpdChcIi5cIik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpdGVtID0gaXRlbVtwcm9wZXJ0aWVzW2ldXTtcbiAgICAgIGlmICghaXRlbSkgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBpdGVtO1xuICB9XG4gIHByaXZhdGUgZ2V0IG9iakhhc2goKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucHJvY2Vzc2VkVXJsICtcbiAgICAgIFwiO1wiICtcbiAgICAgIHRoaXMucHJvY2Vzc2VkUGF0aCArXG4gICAgICBcIjtcIiArXG4gICAgICB0aGlzLnZhbHVlTmFtZSArXG4gICAgICBcIjtcIiArXG4gICAgICB0aGlzLnRpdGxlTmFtZVxuICAgICk7XG4gIH1cbn1cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwiY2hvaWNlc0J5VXJsXCIsXG4gIFtcbiAgICBcInVybFwiLFxuICAgIFwicGF0aFwiLFxuICAgIFwidmFsdWVOYW1lXCIsXG4gICAgXCJ0aXRsZU5hbWVcIixcbiAgICB7IG5hbWU6IFwiYWxsb3dFbXB0eVJlc3BvbnNlOmJvb2xlYW5cIiwgZGVmYXVsdDogZmFsc2UgfVxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IENob2ljZXNSZXN0ZnVsbCgpO1xuICB9XG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2Nob2ljZXNSZXN0ZnVsbC50cyIsImltcG9ydCB7IE9wZXJhbmQsIENvbnN0IH0gZnJvbSBcIi4vZXhwcmVzc2lvbnMvZXhwcmVzc2lvbnNcIjtcbmltcG9ydCB7IFN5bnRheEVycm9yLCBwYXJzZSB9IGZyb20gXCIuL2V4cHJlc3Npb25zL2V4cHJlc3Npb25QYXJzZXJcIjtcblxuZXhwb3J0IGNsYXNzIENvbmRpdGlvbnNQYXJzZXJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdDogbnVtYmVyLCBwdWJsaWMgY29kZTogc3RyaW5nKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZGl0aW9uc1BhcnNlciB7XG4gIHByaXZhdGUgY29uZGl0aW9uRXJyb3I6IENvbmRpdGlvbnNQYXJzZXJFcnJvcjtcbiAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VyQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBPcGVyYW5kIH0gPSB7fTtcblxuICBwcml2YXRlIHBhdGNoRXhwcmVzc2lvbih0ZXh0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGV4dFxuICAgICAgLnJlcGxhY2UoLz0+L2csIFwiPj1cIilcbiAgICAgIC5yZXBsYWNlKC89PC9nLCBcIjw9XCIpXG4gICAgICAucmVwbGFjZSgvPD4vZywgXCIhPVwiKVxuICAgICAgLnJlcGxhY2UoLz09L2csIFwiPSBcIilcbiAgICAgIC5yZXBsYWNlKC9lcXVhbHMvZywgXCJlcXVhbCBcIilcbiAgICAgIC5yZXBsYWNlKC9ub3RlcXVhbHMvZywgXCJub3RlcXVhbCBcIik7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQ29uZGl0aW9uKHRleHQ6IHN0cmluZyk6IE9wZXJhbmQge1xuICAgIHJldHVybiB0aGlzLnBhcnNlRXhwcmVzc2lvbih0ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBwYXJzZUV4cHJlc3Npb24odGV4dDogc3RyaW5nKTogT3BlcmFuZCB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciByZXN1bHQgPSBDb25kaXRpb25zUGFyc2VyLnBhcnNlckNhY2hlW3RleHRdO1xuICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlc3VsdCA9IHBhcnNlKHRoaXMucGF0Y2hFeHByZXNzaW9uKHRleHQpKTtcbiAgICAgICAgaWYgKCFyZXN1bHQuaGFzQXN5bmNGdW5jdGlvbigpKSB7XG4gICAgICAgICAgQ29uZGl0aW9uc1BhcnNlci5wYXJzZXJDYWNoZVt0ZXh0XSA9IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uRXJyb3IgPSBuZXcgQ29uZGl0aW9uc1BhcnNlckVycm9yKFxuICAgICAgICAgIGUubG9jYXRpb24uc3RhcnQub2Zmc2V0LFxuICAgICAgICAgIGUubWVzc2FnZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXJyb3IoKTogQ29uZGl0aW9uc1BhcnNlckVycm9yIHtcbiAgICByZXR1cm4gdGhpcy5jb25kaXRpb25FcnJvcjtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbmRpdGlvbnNQYXJzZXIudHMiLCJpbXBvcnQgeyBzZXR0aW5ncyB9IGZyb20gXCIuL3NldHRpbmdzXCI7XG4vKipcbiAqIFRoZSBjbGFzcyBjb250YWlucyBtZXRob2RzIHRvIHdvcmsgd2l0aCB3d3cuZHhzdXJ2ZXkuY29tIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBkeFN1cnZleVNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIGdldCBzZXJ2aWNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNldHRpbmdzLnN1cnZleVNlcnZpY2VVcmw7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBzZXQgc2VydmljZVVybCh2YWw6IHN0cmluZykge1xuICAgIHNldHRpbmdzLnN1cnZleVNlcnZpY2VVcmwgPSB2YWw7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7fVxuICBwdWJsaWMgbG9hZFN1cnZleShcbiAgICBzdXJ2ZXlJZDogc3RyaW5nLFxuICAgIG9uTG9hZDogKHN1Y2Nlc3M6IGJvb2xlYW4sIHJlc3VsdDogc3RyaW5nLCByZXNwb25zZTogYW55KSA9PiB2b2lkXG4gICkge1xuICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICB4aHIub3BlbihcbiAgICAgIFwiR0VUXCIsXG4gICAgICBkeFN1cnZleVNlcnZpY2Uuc2VydmljZVVybCArIFwiL2dldFN1cnZleT9zdXJ2ZXlJZD1cIiArIHN1cnZleUlkXG4gICAgKTtcbiAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKTtcbiAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gSlNPTi5wYXJzZSh4aHIucmVzcG9uc2UpO1xuICAgICAgb25Mb2FkKHhoci5zdGF0dXMgPT0gMjAwLCByZXN1bHQsIHhoci5yZXNwb25zZSk7XG4gICAgfTtcbiAgICB4aHIuc2VuZCgpO1xuICB9XG4gIHB1YmxpYyBnZXRTdXJ2ZXlKc29uQW5kSXNDb21wbGV0ZWQoXG4gICAgc3VydmV5SWQ6IHN0cmluZyxcbiAgICBjbGllbnRJZDogc3RyaW5nLFxuICAgIG9uTG9hZDogKFxuICAgICAgc3VjY2VzczogYm9vbGVhbixcbiAgICAgIHN1cnZleUpzb246IGFueSxcbiAgICAgIHJlc3VsdDogc3RyaW5nLFxuICAgICAgcmVzcG9uc2U6IGFueVxuICAgICkgPT4gdm9pZFxuICApIHtcbiAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgeGhyLm9wZW4oXG4gICAgICBcIkdFVFwiLFxuICAgICAgZHhTdXJ2ZXlTZXJ2aWNlLnNlcnZpY2VVcmwgK1xuICAgICAgICBcIi9nZXRTdXJ2ZXlBbmRJc0NvbXBsZXRlZD9zdXJ2ZXlJZD1cIiArXG4gICAgICAgIHN1cnZleUlkICtcbiAgICAgICAgXCImY2xpZW50SWQ9XCIgK1xuICAgICAgICBjbGllbnRJZFxuICAgICk7XG4gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIik7XG4gICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlc3VsdCA9IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlKTtcbiAgICAgIHZhciBzdXJ2ZXlKc29uID0gcmVzdWx0ID8gcmVzdWx0LnN1cnZleSA6IG51bGw7XG4gICAgICB2YXIgaXNDb21wbGV0ZWQgPSByZXN1bHQgPyByZXN1bHQuaXNDb21wbGV0ZWQgOiBudWxsO1xuICAgICAgb25Mb2FkKHhoci5zdGF0dXMgPT0gMjAwLCBzdXJ2ZXlKc29uLCBpc0NvbXBsZXRlZCwgeGhyLnJlc3BvbnNlKTtcbiAgICB9O1xuICAgIHhoci5zZW5kKCk7XG4gIH1cbiAgcHVibGljIHNlbmRSZXN1bHQoXG4gICAgcG9zdElkOiBzdHJpbmcsXG4gICAgcmVzdWx0OiBKU09OLFxuICAgIG9uU2VuZFJlc3VsdDogKHN1Y2Nlc3M6IGJvb2xlYW4sIHJlc3BvbnNlOiBhbnksIHJlcXVlc3Q/OiBhbnkpID0+IHZvaWQsXG4gICAgY2xpZW50SWQ6IHN0cmluZyA9IG51bGwsXG4gICAgaXNQYXJ0aWFsQ29tcGxldGVkOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIHhoci5vcGVuKFwiUE9TVFwiLCBkeFN1cnZleVNlcnZpY2Uuc2VydmljZVVybCArIFwiL3Bvc3QvXCIpO1xuICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiKTtcbiAgICB2YXIgZGF0YSA9IHsgcG9zdElkOiBwb3N0SWQsIHN1cnZleVJlc3VsdDogSlNPTi5zdHJpbmdpZnkocmVzdWx0KSB9O1xuICAgIGlmIChjbGllbnRJZCkgKDxhbnk+ZGF0YSlbXCJjbGllbnRJZFwiXSA9IGNsaWVudElkO1xuICAgIGlmIChpc1BhcnRpYWxDb21wbGV0ZWQpICg8YW55PmRhdGEpW1wiaXNQYXJ0aWFsQ29tcGxldGVkXCJdID0gdHJ1ZTtcbiAgICB2YXIgZGF0YVN0cmluZ2lmeTogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHhoci5vbmxvYWQgPSB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCFvblNlbmRSZXN1bHQpIHJldHVybjtcbiAgICAgIG9uU2VuZFJlc3VsdCh4aHIuc3RhdHVzID09PSAyMDAsIHhoci5yZXNwb25zZSwgeGhyKTtcbiAgICB9O1xuICAgIHhoci5zZW5kKGRhdGFTdHJpbmdpZnkpO1xuICB9XG4gIHB1YmxpYyBzZW5kRmlsZShcbiAgICBwb3N0SWQ6IHN0cmluZyxcbiAgICBmaWxlOiBGaWxlLFxuICAgIG9uU2VuZEZpbGU6IChzdWNjZXNzOiBib29sZWFuLCByZXNwb25zZTogYW55KSA9PiB2b2lkXG4gICkge1xuICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICB4aHIub25sb2FkID0geGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIGlmICghb25TZW5kRmlsZSkgcmV0dXJuO1xuICAgICAgb25TZW5kRmlsZSh4aHIuc3RhdHVzID09IDIwMCwgSlNPTi5wYXJzZSh4aHIucmVzcG9uc2UpKTtcbiAgICB9O1xuICAgIHhoci5vcGVuKFwiUE9TVFwiLCBkeFN1cnZleVNlcnZpY2Uuc2VydmljZVVybCArIFwiL3VwbG9hZC9cIiwgdHJ1ZSk7XG4gICAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJwb3N0SWRcIiwgcG9zdElkKTtcbiAgICB4aHIuc2VuZChmb3JtRGF0YSk7XG4gIH1cbiAgcHVibGljIGdldFJlc3VsdChcbiAgICByZXN1bHRJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvbkdldFJlc3VsdDogKFxuICAgICAgc3VjY2VzczogYm9vbGVhbixcbiAgICAgIGRhdGE6IGFueSxcbiAgICAgIGRhdGFMaXN0OiBBcnJheTxhbnk+LFxuICAgICAgcmVzcG9uc2U6IGFueVxuICAgICkgPT4gdm9pZFxuICApIHtcbiAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgdmFyIGRhdGEgPSBcInJlc3VsdElkPVwiICsgcmVzdWx0SWQgKyBcIiZuYW1lPVwiICsgbmFtZTtcbiAgICB4aHIub3BlbihcIkdFVFwiLCBkeFN1cnZleVNlcnZpY2Uuc2VydmljZVVybCArIFwiL2dldFJlc3VsdD9cIiArIGRhdGEpO1xuICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbnVsbDtcbiAgICAgIHZhciBsaXN0ID0gbnVsbDtcbiAgICAgIGlmICh4aHIuc3RhdHVzID09IDIwMCkge1xuICAgICAgICByZXN1bHQgPSBKU09OLnBhcnNlKHhoci5yZXNwb25zZSk7XG4gICAgICAgIGxpc3QgPSBbXTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHJlc3VsdC5RdWVzdGlvblJlc3VsdCkge1xuICAgICAgICAgIHZhciBlbCA9IHsgbmFtZToga2V5LCB2YWx1ZTogcmVzdWx0LlF1ZXN0aW9uUmVzdWx0W2tleV0gfTtcbiAgICAgICAgICBsaXN0LnB1c2goZWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvbkdldFJlc3VsdCh4aHIuc3RhdHVzID09IDIwMCwgcmVzdWx0LCBsaXN0LCB4aHIucmVzcG9uc2UpO1xuICAgIH07XG4gICAgeGhyLnNlbmQoKTtcbiAgfVxuICBwdWJsaWMgaXNDb21wbGV0ZWQoXG4gICAgcmVzdWx0SWQ6IHN0cmluZyxcbiAgICBjbGllbnRJZDogc3RyaW5nLFxuICAgIG9uSXNDb21wbGV0ZWQ6IChzdWNjZXNzOiBib29sZWFuLCByZXN1bHQ6IHN0cmluZywgcmVzcG9uc2U6IGFueSkgPT4gdm9pZFxuICApIHtcbiAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgdmFyIGRhdGEgPSBcInJlc3VsdElkPVwiICsgcmVzdWx0SWQgKyBcIiZjbGllbnRJZD1cIiArIGNsaWVudElkO1xuICAgIHhoci5vcGVuKFwiR0VUXCIsIGR4U3VydmV5U2VydmljZS5zZXJ2aWNlVXJsICsgXCIvaXNDb21wbGV0ZWQ/XCIgKyBkYXRhKTtcbiAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlc3VsdCA9IG51bGw7XG4gICAgICBpZiAoeGhyLnN0YXR1cyA9PSAyMDApIHtcbiAgICAgICAgcmVzdWx0ID0gSlNPTi5wYXJzZSh4aHIucmVzcG9uc2UpO1xuICAgICAgfVxuICAgICAgb25Jc0NvbXBsZXRlZCh4aHIuc3RhdHVzID09IDIwMCwgcmVzdWx0LCB4aHIucmVzcG9uc2UpO1xuICAgIH07XG4gICAgeGhyLnNlbmQoKTtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2R4U3VydmV5U2VydmljZS50cyIsIi8vVW5jb21tZW50IHRoaXMgbGluZSBvbiBjcmVhdGluZyBhIHRyYW5zbGF0aW9uIGZpbGVcbi8vaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBlbmdsaXNoU3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIlByZXZpb3VzXCIsXG4gIHBhZ2VOZXh0VGV4dDogXCJOZXh0XCIsXG4gIGNvbXBsZXRlVGV4dDogXCJDb21wbGV0ZVwiLFxuICBzdGFydFN1cnZleVRleHQ6IFwiU3RhcnRcIixcbiAgb3RoZXJJdGVtVGV4dDogXCJPdGhlciAoZGVzY3JpYmUpXCIsXG4gIG5vbmVJdGVtVGV4dDogXCJOb25lXCIsXG4gIHNlbGVjdEFsbEl0ZW1UZXh0OiBcIlNlbGVjdCBBbGxcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIlBhZ2UgezB9IG9mIHsxfVwiLFxuICBwYW5lbER5bmFtaWNQcm9ncmVzc1RleHQ6IFwiUmVjb3JkIHswfSBvZiB7MX1cIixcbiAgcXVlc3Rpb25zUHJvZ3Jlc3NUZXh0OiBcIkFuc3dlcmVkIHswfS97MX0gcXVlc3Rpb25zXCIsXG4gIGVtcHR5U3VydmV5OiBcIlRoZXJlIGlzIG5vIHZpc2libGUgcGFnZSBvciBxdWVzdGlvbiBpbiB0aGUgc3VydmV5LlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIlRoYW5rIHlvdSBmb3IgY29tcGxldGluZyB0aGUgc3VydmV5IVwiLFxuICBjb21wbGV0aW5nU3VydmV5QmVmb3JlOlxuICAgIFwiT3VyIHJlY29yZHMgc2hvdyB0aGF0IHlvdSBoYXZlIGFscmVhZHkgY29tcGxldGVkIHRoaXMgc3VydmV5LlwiLFxuICBsb2FkaW5nU3VydmV5OiBcIkxvYWRpbmcgU3VydmV5Li4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIkNob29zZS4uLlwiLFxuICB2YWx1ZTogXCJ2YWx1ZVwiLFxuICByZXF1aXJlZEVycm9yOiBcIlBsZWFzZSBhbnN3ZXIgdGhlIHF1ZXN0aW9uLlwiLFxuICByZXF1aXJlZEVycm9ySW5QYW5lbDogXCJQbGVhc2UgYW5zd2VyIGF0IGxlYXN0IG9uZSBxdWVzdGlvbi5cIixcbiAgcmVxdWlyZWRJbkFsbFJvd3NFcnJvcjogXCJQbGVhc2UgYW5zd2VyIHF1ZXN0aW9ucyBpbiBhbGwgcm93cy5cIixcbiAgbnVtZXJpY0Vycm9yOiBcIlRoZSB2YWx1ZSBzaG91bGQgYmUgbnVtZXJpYy5cIixcbiAgdGV4dE1pbkxlbmd0aDogXCJQbGVhc2UgZW50ZXIgYXQgbGVhc3QgezB9IGNoYXJhY3RlcnMuXCIsXG4gIHRleHRNYXhMZW5ndGg6IFwiUGxlYXNlIGVudGVyIGxlc3MgdGhhbiB7MH0gY2hhcmFjdGVycy5cIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCJQbGVhc2UgZW50ZXIgbW9yZSB0aGFuIHswfSBhbmQgbGVzcyB0aGFuIHsxfSBjaGFyYWN0ZXJzLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIlBsZWFzZSBmaWxsIGluIGF0IGxlYXN0IHswfSByb3dzLlwiLFxuICBtaW5TZWxlY3RFcnJvcjogXCJQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IHswfSB2YXJpYW50cy5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiUGxlYXNlIHNlbGVjdCBubyBtb3JlIHRoYW4gezB9IHZhcmlhbnRzLlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwiVGhlICd7MH0nIHNob3VsZCBiZSBlcXVhbCBvciBtb3JlIHRoYW4gezF9IGFuZCBlcXVhbCBvciBsZXNzIHRoYW4gezJ9XCIsXG4gIG51bWVyaWNNaW46IFwiVGhlICd7MH0nIHNob3VsZCBiZSBlcXVhbCBvciBtb3JlIHRoYW4gezF9XCIsXG4gIG51bWVyaWNNYXg6IFwiVGhlICd7MH0nIHNob3VsZCBiZSBlcXVhbCBvciBsZXNzIHRoYW4gezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlLW1haWwgYWRkcmVzcy5cIixcbiAgaW52YWxpZEV4cHJlc3Npb246IFwiVGhlIGV4cHJlc3Npb246IHswfSBzaG91bGQgcmV0dXJuICd0cnVlJy5cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIlRoZSByZXF1ZXN0IHJldHVybmVkIGVycm9yICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwiVGhlIHJlcXVlc3QgcmV0dXJuZWQgZW1wdHkgZGF0YSBvciB0aGUgJ3BhdGgnIHByb3BlcnR5IGlzIGluY29ycmVjdFwiLFxuICBleGNlZWRNYXhTaXplOiBcIlRoZSBmaWxlIHNpemUgc2hvdWxkIG5vdCBleGNlZWQgezB9LlwiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwiUGxlYXNlIGVudGVyIHRoZSBvdGhlciB2YWx1ZS5cIixcbiAgdXBsb2FkaW5nRmlsZTpcbiAgICBcIllvdXIgZmlsZSBpcyB1cGxvYWRpbmcuIFBsZWFzZSB3YWl0IHNldmVyYWwgc2Vjb25kcyBhbmQgdHJ5IGFnYWluLlwiLFxuICBsb2FkaW5nRmlsZTogXCJMb2FkaW5nLi4uXCIsXG4gIGNob29zZUZpbGU6IFwiQ2hvb3NlIGZpbGUocykuLi5cIixcbiAgbm9GaWxlQ2hvc2VuOiBcIk5vIGZpbGUgY2hvc2VuXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwiRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoZSByZWNvcmQ/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiVGhpcyB2YWx1ZSBzaG91bGQgYmUgdW5pcXVlLlwiLFxuICBhZGRDb2x1bW46IFwiQWRkIGNvbHVtblwiLFxuICBhZGRSb3c6IFwiQWRkIHJvd1wiLFxuICByZW1vdmVSb3c6IFwiUmVtb3ZlXCIsXG4gIGFkZFBhbmVsOiBcIkFkZCBuZXdcIixcbiAgcmVtb3ZlUGFuZWw6IFwiUmVtb3ZlXCIsXG4gIGNob2ljZXNfSXRlbTogXCJpdGVtXCIsXG4gIG1hdHJpeF9jb2x1bW46IFwiQ29sdW1uXCIsXG4gIG1hdHJpeF9yb3c6IFwiUm93XCIsXG4gIHNhdmluZ0RhdGE6IFwiVGhlIHJlc3VsdHMgYXJlIHNhdmluZyBvbiB0aGUgc2VydmVyLi4uXCIsXG4gIHNhdmluZ0RhdGFFcnJvcjogXCJBbiBlcnJvciBvY2N1cnJlZCBhbmQgd2UgY291bGQgbm90IHNhdmUgdGhlIHJlc3VsdHMuXCIsXG4gIHNhdmluZ0RhdGFTdWNjZXNzOiBcIlRoZSByZXN1bHRzIHdlcmUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IVwiLFxuICBzYXZlQWdhaW5CdXR0b246IFwiVHJ5IGFnYWluXCIsXG4gIHRpbWVyTWluOiBcIm1pblwiLFxuICB0aW1lclNlYzogXCJzZWNcIixcbiAgdGltZXJTcGVudEFsbDogXCJZb3UgaGF2ZSBzcGVudCB7MH0gb24gdGhpcyBwYWdlIGFuZCB7MX0gaW4gdG90YWwuXCIsXG4gIHRpbWVyU3BlbnRQYWdlOiBcIllvdSBoYXZlIHNwZW50IHswfSBvbiB0aGlzIHBhZ2UuXCIsXG4gIHRpbWVyU3BlbnRTdXJ2ZXk6IFwiWW91IGhhdmUgc3BlbnQgezB9IGluIHRvdGFsLlwiLFxuICB0aW1lckxpbWl0QWxsOlxuICAgIFwiWW91IGhhdmUgc3BlbnQgezB9IG9mIHsxfSBvbiB0aGlzIHBhZ2UgYW5kIHsyfSBvZiB7M30gaW4gdG90YWwuXCIsXG4gIHRpbWVyTGltaXRQYWdlOiBcIllvdSBoYXZlIHNwZW50IHswfSBvZiB7MX0gb24gdGhpcyBwYWdlLlwiLFxuICB0aW1lckxpbWl0U3VydmV5OiBcIllvdSBoYXZlIHNwZW50IHswfSBvZiB7MX0gaW4gdG90YWwuXCIsXG4gIGNsZWFuQ2FwdGlvbjogXCJDbGVhblwiLFxuICBjbGVhckNhcHRpb246IFwiQ2xlYXJcIixcbiAgY2hvb3NlRmlsZUNhcHRpb246IFwiQ2hvb3NlIGZpbGVcIixcbiAgcmVtb3ZlRmlsZUNhcHRpb246IFwiUmVtb3ZlIHRoaXMgZmlsZVwiLFxuICBib29sZWFuQ2hlY2tlZExhYmVsOiBcIlllc1wiLFxuICBib29sZWFuVW5jaGVja2VkTGFiZWw6IFwiTm9cIixcbiAgY29uZmlybVJlbW92ZUZpbGU6IFwiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdhbnQgdG8gcmVtb3ZlIHRoaXMgZmlsZTogezB9P1wiLFxuICBjb25maXJtUmVtb3ZlQWxsRmlsZXM6IFwiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBmaWxlcz9cIlxufTtcblxuLy9VbmNvbW1lbnQgdGhlc2UgdHdvIGxpbmVzIG9uIGNyZWF0aW5nIGEgdHJhbnNsYXRpb24gZmlsZS4gWW91IHNob3VsZCByZXBsYWNlIFwiZW5cIiBhbmQgZW5TdHJpbmdzIHdpdGggeW91ciBsb2NhbGUgKFwiZnJcIiwgXCJkZVwiIGFuZCBzbyBvbikgYW5kIHlvdXIgdmFyaWFibGUuXG4vL3N1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZW5cIl0gPSBlbmdsaXNoU3RyaW5ncztcbi8vc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wiZW5cIl0gPSBcIkVuZ2xpc2hcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vZW5nbGlzaC50cyIsImltcG9ydCB7IEhhc2hUYWJsZSB9IGZyb20gXCIuL2hlbHBlcnNcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IENvbmRpdGlvblJ1bm5lciB9IGZyb20gXCIuL2NvbmRpdGlvbnNcIjtcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5cbi8qKlxuICogQSBNb2RlbCBmb3IgYSBtYXRyaXggYmFzZSBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uTWF0cml4QmFzZU1vZGVsPFRSb3csIFRDb2x1bW4+IGV4dGVuZHMgUXVlc3Rpb24ge1xuICBwcm90ZWN0ZWQgZmlsdGVyZWRDb2x1bW5zOiBBcnJheTxUQ29sdW1uPjtcbiAgcHJvdGVjdGVkIGZpbHRlcmVkUm93czogQXJyYXk8SXRlbVZhbHVlPjtcbiAgcHJvdGVjdGVkIGdlbmVyYXRlZFZpc2libGVSb3dzOiBBcnJheTxUUm93PiA9IG51bGw7XG4gIHByb3RlY3RlZCBnZW5lcmF0ZWRUb3RhbFJvdzogVFJvdyA9IG51bGw7XG4gIHB1YmxpYyB2aXNpYmxlUm93c0NoYW5nZWRDYWxsYmFjazogKCkgPT4gdm9pZDtcblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29sdW1uVmFsdWVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlSXRlbVZhbHVlcyhcImNvbHVtbnNcIik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgdGhpcy5maWx0ZXJlZFJvd3MgPSBudWxsO1xuICAgIHRoaXMuZmlsdGVyZWRDb2x1bW5zID0gbnVsbDtcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmNyZWF0ZUNvbHVtblZhbHVlcygpO1xuICAgIHRoaXMucm93cyA9IHRoaXMuY3JlYXRlSXRlbVZhbHVlcyhcInJvd3NcIik7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJtYXRyaXhiYXNlXCI7XG4gIH1cbiAgcHVibGljIGdldCBpc0FsbG93VGl0bGVMZWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gZmFsc2UsIHRvIGhpZGUgdGFibGUgaGVhZGVyLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0cnVlLlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93SGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93SGVhZGVyXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd0hlYWRlcih2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzaG93SGVhZGVyXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGNvbHVtbnMuIEEgY29sdW1uIGhhcyBhIHZhbHVlIGFuZCBhbiBvcHRpb25hbCB0ZXh0XG4gICAqL1xuICBnZXQgY29sdW1ucygpOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY29sdW1uc1wiKTtcbiAgfVxuICBzZXQgY29sdW1ucyhuZXdWYWx1ZTogQXJyYXk8YW55Pikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNvbHVtbnNcIiwgbmV3VmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmlzaWJsZUNvbHVtbnMoKTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuICEhdGhpcy5maWx0ZXJlZENvbHVtbnMgPyB0aGlzLmZpbHRlcmVkQ29sdW1ucyA6IHRoaXMuY29sdW1ucztcbiAgfVxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygcm93cy4gQSByb3cgaGFzIGEgdmFsdWUgYW5kIGFuIG9wdGlvbmFsIHRleHRcbiAgICovXG4gIGdldCByb3dzKCk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJyb3dzXCIpO1xuICB9XG4gIHNldCByb3dzKG5ld1ZhbHVlOiBBcnJheTxhbnk+KSB7XG4gICAgdmFyIG5ld1Jvd3MgPSB0aGlzLnByb2Nlc3NSb3dzT25TZXQobmV3VmFsdWUpO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInJvd3NcIiwgbmV3Um93cyk7XG4gICAgdGhpcy5maWx0ZXJJdGVtcygpO1xuICB9XG4gIHByb3RlY3RlZCBwcm9jZXNzUm93c09uU2V0KG5ld1Jvd3M6IEFycmF5PGFueT4pIHtcbiAgICByZXR1cm4gbmV3Um93cztcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0VmlzaWJsZVJvd3MoKTogQXJyYXk8VFJvdz4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiB2aXNpYmxlIHJvd3MgYXMgbW9kZWwgb2JqZWN0cy5cbiAgICogQHNlZSByb3dzVmlzaWJsZUlmXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZpc2libGVSb3dzKCk6IEFycmF5PFRSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRWaXNpYmxlUm93cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIGV4cHJlc3Npb24gdGhhdCByZXR1cm5zIHRydWUgb3IgZmFsc2UuIEl0IHJ1bnMgYWdhaW5zdCBlYWNoIHJvdyBpdGVtIGFuZCBpZiBmb3IgdGhpcyBpdGVtIGl0IHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUgaXRlbSBpcyB2aXNpYmxlIG90aGVyd2lzZSB0aGUgaXRlbSBiZWNvbWVzIGludmlzaWJsZS4gUGxlYXNlIHVzZSB7aXRlbX0gdG8gZ2V0IHRoZSBjdXJyZW50IGl0ZW0gdmFsdWUgaW4gdGhlIGV4cHJlc3Npb24uXG4gICAqIEBzZWUgdmlzaWJsZUlmXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJvd3NWaXNpYmxlSWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicm93c1Zpc2libGVJZlwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJvd3NWaXNpYmxlSWYodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJyb3dzVmlzaWJsZUlmXCIsIHZhbCk7XG4gICAgdGhpcy5maWx0ZXJJdGVtcygpO1xuICB9XG4gIC8qKlxuICAgKiBBbiBleHByZXNzaW9uIHRoYXQgcmV0dXJucyB0cnVlIG9yIGZhbHNlLiBJdCBydW5zIGFnYWluc3QgZWFjaCBjb2x1bW4gaXRlbSBhbmQgaWYgZm9yIHRoaXMgaXRlbSBpdCByZXR1cm5zIHRydWUsIHRoZW4gdGhlIGl0ZW0gaXMgdmlzaWJsZSBvdGhlcndpc2UgdGhlIGl0ZW0gYmVjb21lcyBpbnZpc2libGUuIFBsZWFzZSB1c2Uge2l0ZW19IHRvIGdldCB0aGUgY3VycmVudCBpdGVtIHZhbHVlIGluIHRoZSBleHByZXNzaW9uLlxuICAgKiBAc2VlIHJvd3NWaXNpYmxlSWZcbiAgICovXG4gIHB1YmxpYyBnZXQgY29sdW1uc1Zpc2libGVJZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjb2x1bW5zVmlzaWJsZUlmXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY29sdW1uc1Zpc2libGVJZih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNvbHVtbnNWaXNpYmxlSWZcIiwgdmFsKTtcbiAgICB0aGlzLmZpbHRlckl0ZW1zKCk7XG4gIH1cbiAgcHVibGljIHJ1bkNvbmRpdGlvbih2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LCBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55Pikge1xuICAgIHN1cGVyLnJ1bkNvbmRpdGlvbih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIHRoaXMucnVuSXRlbXNDb25kaXRpb24odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICBwcm90ZWN0ZWQgZmlsdGVySXRlbXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYXJlSW52aXNpYmxlRWxlbWVudHNTaG93aW5nKSB7XG4gICAgICB0aGlzLm9uUm93c0NoYW5nZWQoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24gfHwgIXRoaXMuZGF0YSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLnJ1bkl0ZW1zQ29uZGl0aW9uKFxuICAgICAgdGhpcy5nZXREYXRhRmlsdGVyZWRWYWx1ZXMoKSxcbiAgICAgIHRoaXMuZ2V0RGF0YUZpbHRlcmVkUHJvcGVydGllcygpXG4gICAgKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25Db2x1bW5zQ2hhbmdlZCgpIHt9XG4gIHByb3RlY3RlZCBvblJvd3NDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmlyZUNhbGxiYWNrKHRoaXMudmlzaWJsZVJvd3NDaGFuZ2VkQ2FsbGJhY2spO1xuICB9XG4gIHByb3RlY3RlZCBzaG91bGRSdW5Db2x1bW5FeHByZXNzaW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByb3RlY3RlZCBoYXNSb3dzQXNJdGVtcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgcnVuSXRlbXNDb25kaXRpb24oXG4gICAgdmFsdWVzOiBIYXNoVGFibGU8YW55PixcbiAgICBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55PlxuICApOiBib29sZWFuIHtcbiAgICB2YXIgb2xkVmlzaWJsZVJvd3MgPSBudWxsO1xuICAgIGlmICghIXRoaXMuZmlsdGVyZWRSb3dzICYmICFIZWxwZXJzLmlzVmFsdWVFbXB0eSh0aGlzLmRlZmF1bHRWYWx1ZSkpIHtcbiAgICAgIG9sZFZpc2libGVSb3dzID0gW107XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZmlsdGVyZWRSb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG9sZFZpc2libGVSb3dzLnB1c2godGhpcy5maWx0ZXJlZFJvd3NbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgaGFzQ2hhbmdlcyA9XG4gICAgICB0aGlzLmhhc1Jvd3NBc0l0ZW1zKCkgJiYgdGhpcy5ydW5Db25kaXRpb25zRm9yUm93cyh2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIGhhc0NoYW5nZXMgPSB0aGlzLnJ1bkNvbmRpdGlvbnNGb3JDb2x1bW5zKHZhbHVlcywgcHJvcGVydGllcykgfHwgaGFzQ2hhbmdlcztcbiAgICBpZiAoaGFzQ2hhbmdlcykge1xuICAgICAgaWYgKCEhdGhpcy5maWx0ZXJlZENvbHVtbnMgfHwgISF0aGlzLmZpbHRlcmVkUm93cykge1xuICAgICAgICB0aGlzLmNsZWFySW5jb3JyZWN0VmFsdWVzKCk7XG4gICAgICB9XG4gICAgICBpZiAoISFvbGRWaXNpYmxlUm93cykge1xuICAgICAgICB0aGlzLnJlc3RvcmVOZXdWaXNpYmxlUm93c1ZhbHVlcyhvbGRWaXNpYmxlUm93cyk7XG4gICAgICB9XG4gICAgICB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzID0gbnVsbDtcbiAgICAgIHRoaXMub25Sb3dzQ2hhbmdlZCgpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzQ2hhbmdlcztcbiAgfVxuICBwcml2YXRlIHJ1bkNvbmRpdGlvbnNGb3JSb3dzKFxuICAgIHZhbHVlczogSGFzaFRhYmxlPGFueT4sXG4gICAgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT5cbiAgKTogYm9vbGVhbiB7XG4gICAgdmFyIHJ1bm5lciA9ICEhdGhpcy5yb3dzVmlzaWJsZUlmXG4gICAgICA/IG5ldyBDb25kaXRpb25SdW5uZXIodGhpcy5yb3dzVmlzaWJsZUlmKVxuICAgICAgOiBudWxsO1xuICAgIHRoaXMuZmlsdGVyZWRSb3dzID0gW107XG4gICAgdmFyIGhhc0NoYW5nZWQgPSBJdGVtVmFsdWUucnVuQ29uZGl0aW9uc0Zvckl0ZW1zKFxuICAgICAgdGhpcy5yb3dzLFxuICAgICAgdGhpcy5maWx0ZXJlZFJvd3MsXG4gICAgICBydW5uZXIsXG4gICAgICB2YWx1ZXMsXG4gICAgICBwcm9wZXJ0aWVzXG4gICAgKTtcbiAgICBpZiAodGhpcy5maWx0ZXJlZFJvd3MubGVuZ3RoID09PSB0aGlzLnJvd3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkUm93cyA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBoYXNDaGFuZ2VkO1xuICB9XG4gIHByaXZhdGUgcnVuQ29uZGl0aW9uc0ZvckNvbHVtbnMoXG4gICAgdmFsdWVzOiBIYXNoVGFibGU8YW55PixcbiAgICBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55PlxuICApOiBib29sZWFuIHtcbiAgICB2YXIgcnVubmVyID0gISF0aGlzLmNvbHVtbnNWaXNpYmxlSWZcbiAgICAgID8gbmV3IENvbmRpdGlvblJ1bm5lcih0aGlzLmNvbHVtbnNWaXNpYmxlSWYpXG4gICAgICA6IG51bGw7XG4gICAgdGhpcy5maWx0ZXJlZENvbHVtbnMgPSBbXTtcbiAgICB2YXIgaGFzQ2hhbmdlZCA9IEl0ZW1WYWx1ZS5ydW5Db25kaXRpb25zRm9ySXRlbXMoXG4gICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICA8YW55PnRoaXMuZmlsdGVyZWRDb2x1bW5zLFxuICAgICAgcnVubmVyLFxuICAgICAgdmFsdWVzLFxuICAgICAgcHJvcGVydGllcyxcbiAgICAgIHRoaXMuc2hvdWxkUnVuQ29sdW1uRXhwcmVzc2lvbigpXG4gICAgKTtcbiAgICBpZiAodGhpcy5maWx0ZXJlZENvbHVtbnMubGVuZ3RoID09PSB0aGlzLmNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkQ29sdW1ucyA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBoYXNDaGFuZ2VkO1xuICB9XG4gIHB1YmxpYyBjbGVhckluY29ycmVjdFZhbHVlcygpIHtcbiAgICB2YXIgdmFsID0gdGhpcy52YWx1ZTtcbiAgICBpZiAoIXZhbCkgcmV0dXJuO1xuICAgIHZhciBuZXdWYWwgPSBudWxsO1xuICAgIHZhciBpc0NoYW5nZWQgPSBmYWxzZTtcbiAgICB2YXIgcm93cyA9ICEhdGhpcy5maWx0ZXJlZFJvd3MgPyB0aGlzLmZpbHRlcmVkUm93cyA6IHRoaXMucm93cztcbiAgICB2YXIgY29sdW1ucyA9ICEhdGhpcy5maWx0ZXJlZENvbHVtbnMgPyB0aGlzLmZpbHRlcmVkQ29sdW1ucyA6IHRoaXMuY29sdW1ucztcbiAgICBmb3IgKHZhciBrZXkgaW4gdmFsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZShyb3dzLCBrZXkpICYmXG4gICAgICAgIEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZShjb2x1bW5zLCB2YWxba2V5XSlcbiAgICAgICkge1xuICAgICAgICBpZiAobmV3VmFsID09IG51bGwpIG5ld1ZhbCA9IHt9O1xuICAgICAgICAoPGFueT5uZXdWYWwpW2tleV0gPSB2YWxba2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzQ2hhbmdlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0NoYW5nZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWw7XG4gICAgfVxuICAgIHN1cGVyLmNsZWFySW5jb3JyZWN0VmFsdWVzKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGNsZWFySW52aXNpYmxlVmFsdWVzSW5Sb3dzKCkge1xuICAgIGlmICh0aGlzLmlzRW1wdHkoKSkgcmV0dXJuO1xuICAgIHZhciBuZXdEYXRhID0gSGVscGVycy5nZXRVbmJpbmRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB2YXIgcm93cyA9IHRoaXMucm93cztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSByb3dzW2ldLnZhbHVlO1xuICAgICAgaWYgKCEhbmV3RGF0YVtrZXldICYmICFyb3dzW2ldLmlzVmlzaWJsZSkge1xuICAgICAgICBkZWxldGUgbmV3RGF0YVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKG5ld0RhdGEsIHRoaXMudmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy52YWx1ZSA9IG5ld0RhdGE7XG4gIH1cbiAgcHJpdmF0ZSByZXN0b3JlTmV3VmlzaWJsZVJvd3NWYWx1ZXMob2xkVmlzaWJsZVJvd3M6IGFueSkge1xuICAgIHZhciByb3dzID0gISF0aGlzLmZpbHRlcmVkUm93cyA/IHRoaXMuZmlsdGVyZWRSb3dzIDogdGhpcy5yb3dzO1xuICAgIHZhciB2YWwgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICB2YXIgbmV3VmFsdWUgPSBIZWxwZXJzLmdldFVuYmluZFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHZhciBpc0NoYW5nZWQgPSBmYWxzZTtcbiAgICBmb3IgKHZhciBrZXkgaW4gdmFsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZShyb3dzLCBrZXkpICYmXG4gICAgICAgICFJdGVtVmFsdWUuZ2V0SXRlbUJ5VmFsdWUob2xkVmlzaWJsZVJvd3MsIGtleSlcbiAgICAgICkge1xuICAgICAgICBpZiAobmV3VmFsdWUgPT0gbnVsbCkgbmV3VmFsdWUgPSB7fTtcbiAgICAgICAgKDxhbnk+bmV3VmFsdWUpW2tleV0gPSB2YWxba2V5XTtcbiAgICAgICAgaXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzQ2hhbmdlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcIm1hdHJpeGJhc2VcIixcbiAgW1xuICAgIFwiY29sdW1uc1Zpc2libGVJZjpjb25kaXRpb25cIixcbiAgICBcInJvd3NWaXNpYmxlSWY6Y29uZGl0aW9uXCIsXG4gICAgeyBuYW1lOiBcInNob3dIZWFkZXI6Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlIH1cbiAgXSxcbiAgdW5kZWZpbmVkLFxuICBcInF1ZXN0aW9uXCJcbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbWFydGl4QmFzZS50cyIsImltcG9ydCB7IFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBIYXNoVGFibGUsIEhlbHBlcnMgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5pbXBvcnQge1xuICBJUGFnZSxcbiAgSVBhbmVsLFxuICBJRWxlbWVudCxcbiAgSVN1cnZleUVsZW1lbnQsXG4gIElRdWVzdGlvbixcbiAgU3VydmV5RWxlbWVudFxufSBmcm9tIFwiLi9iYXNlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBEcmFnRHJvcEluZm8sIFBhbmVsTW9kZWxCYXNlLCBRdWVzdGlvblJvd01vZGVsIH0gZnJvbSBcIi4vcGFuZWxcIjtcblxuLyoqXG4gKiBUaGUgcGFnZSBvYmplY3QuIEl0IGhhcyBlbGVtZW50cyBjb2xsZWN0aW9uLCB0aGF0IGNvbnRhaW5zIHF1ZXN0aW9ucyBhbmQgcGFuZWxzLlxuICovXG5leHBvcnQgY2xhc3MgUGFnZU1vZGVsIGV4dGVuZHMgUGFuZWxNb2RlbEJhc2UgaW1wbGVtZW50cyBJUGFnZSB7XG4gIHByaXZhdGUgaGFzU2hvd25WYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nID0gXCJcIikge1xuICAgIHN1cGVyKG5hbWUpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmxvY1RpdGxlLm9uR2V0VGV4dENhbGxiYWNrID0gZnVuY3Rpb24odGV4dCkge1xuICAgICAgaWYgKHNlbGYubnVtID4gMCkgcmV0dXJuIHNlbGYubnVtICsgXCIuIFwiICsgdGV4dDtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH07XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJwYWdlXCI7XG4gIH1cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzUGFnZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgZGVsZXRlKCkge1xuICAgIGlmICghIXRoaXMuc3VydmV5KSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGZGcm9tTGlzdCh0aGlzLnN1cnZleS5wYWdlcyk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBvbkZpcnN0UmVuZGVyaW5nKCkge1xuICAgIGlmICh0aGlzLndhc1Nob3duKSByZXR1cm47XG4gICAgc3VwZXIub25GaXJzdFJlbmRlcmluZygpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgdmlzaWJsZSBpbmRleCBvZiB0aGUgcGFnZS4gSXQgaGFzIHZhbHVlcyBmcm9tIDAgdG8gdmlzaWJsZSBwYWdlIGNvdW50IC0gMS5cbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC52aXNpYmxlUGFnZXNcbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC5wYWdlc1xuICAgKi9cbiAgcHVibGljIGdldCB2aXNpYmxlSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJsZUluZGV4XCIsIC0xKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZpc2libGVJbmRleCh2YWw6IG51bWJlcikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInZpc2libGVJbmRleFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUsIGlmIHRoZSBwYWdlIGlzIHN0YXJ0ZWQgcGFnZSBpbiB0aGUgc3VydmV5LiBJdCBjYW4gYmUgc2hvd24gb24gdGhlIHN0YXJ0IG9ubHkgYW5kIHRoZSBlbmQtdXNlciBjb3VsZCBub3QgY29tZWJhY2sgdG8gaXQgYWZ0ZXIgaXQgcGFzc2VkIGl0LlxuICAgKi9cbiAgcHVibGljIGdldCBpc1N0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5ICYmIHRoaXMuc3VydmV5LmlzUGFnZVN0YXJ0ZWQodGhpcyk7XG4gIH1cbiAgZ2V0SXNQYWdlVmlzaWJsZShleGNlcHRpb25RdWVzdGlvbjogSVF1ZXN0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNTdGFydGVkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHN1cGVyLmdldElzUGFnZVZpc2libGUoZXhjZXB0aW9uUXVlc3Rpb24pO1xuICB9XG4gIHB1YmxpYyBnZXQgbnVtKCkge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJudW1cIiwgLTEpO1xuICB9XG4gIHB1YmxpYyBzZXQgbnVtKHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMubnVtID09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIm51bVwiLCB2YWwpO1xuICAgIHRoaXMub25OdW1DaGFuZ2VkKHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIFwiaGlkZVwiIHRvIG1ha2UgXCJQcmV2XCIsIFwiTmV4dFwiIGFuZCBcIkNvbXBsZXRlXCIgYnV0dG9ucyBhcmUgaW52aXNpYmxlIGZvciB0aGlzIHBhZ2UuIFNldCB0aGlzIHByb3BlcnR5IHRvIFwic2hvd1wiIHRvIG1ha2UgdGhlc2UgYnV0dG9ucyB2aXNpYmxlLCBldmVuIGlmIHN1cnZleSBzaG93TmF2aWdhdGlvbkJ1dHRvbnMgcHJvcGVydHkgaXMgZmFsc2UuXG4gICAqIEBzZWUgU3VydmV5TW9kZS5zaG93TmF2aWdhdGlvbkJ1dHRvbnNcbiAgICovXG4gIHB1YmxpYyBnZXQgbmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIm5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IG5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIm5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eVwiLCB2YWwudG9Mb3dlckNhc2UoKSk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSByZXR1cm5zIHRydWUsIGlmIHRoZSBwYWdlIGhhcyBiZWVuIHNob3duIHRvIHRoZSBlbmQtdXNlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgd2FzU2hvd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzU2hvd25WYWx1ZTtcbiAgfVxuICBnZXQgaGFzU2hvd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMud2FzU2hvd247XG4gIH1cbiAgcHVibGljIHNldFdhc1Nob3duKHZhbDogYm9vbGVhbikge1xuICAgIGlmICh2YWwgPT0gdGhpcy5oYXNTaG93blZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5oYXNTaG93blZhbHVlID0gdmFsO1xuICAgIGlmICh0aGlzLmlzRGVzaWduTW9kZSkgcmV0dXJuO1xuICAgIGlmICh2YWwgPT0gdHJ1ZSAmJiB0aGlzLmFyZVF1ZXN0aW9uc1JhbmRvbWl6ZWQpIHtcbiAgICAgIHRoaXMucmFuZG9taXplRWxlbWVudHMoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpc1JhbmRvbWl6aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgcmFuZG9taXplRWxlbWVudHMoKSB7XG4gICAgaWYgKHRoaXMuaXNSYW5kb21pemluZykgcmV0dXJuO1xuICAgIHRoaXMuaXNSYW5kb21pemluZyA9IHRydWU7XG4gICAgdmFyIG9sZEVsZW1lbnRzID0gW107XG4gICAgdmFyIGVsZW1lbnRzID0gdGhpcy5lbGVtZW50cztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBvbGRFbGVtZW50cy5wdXNoKGVsZW1lbnRzW2ldKTtcbiAgICB9XG4gICAgdmFyIG5ld0VsZW1lbnRzID0gSGVscGVycy5yYW5kb21pemVBcnJheTxJRWxlbWVudD4ob2xkRWxlbWVudHMpO1xuICAgIHRoaXMuZWxlbWVudHMuc3BsaWNlKDAsIHRoaXMuZWxlbWVudHMubGVuZ3RoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ld0VsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmVsZW1lbnRzLnB1c2gobmV3RWxlbWVudHNbaV0pO1xuICAgIH1cbiAgICB0aGlzLmlzUmFuZG9taXppbmcgPSBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IHJldHVybnMgdHJ1ZSwgaWYgdGhlIGVsZW1lbnRzIGFyZSByYW5kb21pemVkIG9uIHRoZSBwYWdlXG4gICAqIEBzZWUgaGFzU2hvd25cbiAgICogQHNlZSBxdWVzdGlvbnNPcmRlclxuICAgKiBAc2VlIFN1cnZleU1vZGVsLnF1ZXN0aW9uc09yZGVyXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFyZVF1ZXN0aW9uc1JhbmRvbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgdmFyIG9yZGVyID1cbiAgICAgIHRoaXMucXVlc3Rpb25zT3JkZXIgPT0gXCJkZWZhdWx0XCIgJiYgdGhpcy5zdXJ2ZXlcbiAgICAgICAgPyB0aGlzLnN1cnZleS5xdWVzdGlvbnNPcmRlclxuICAgICAgICA6IHRoaXMucXVlc3Rpb25zT3JkZXI7XG4gICAgcmV0dXJuIG9yZGVyID09IFwicmFuZG9tXCI7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIHJhbmRvbWl6ZSBxdWVzdGlvbnMuIFNldCBpdCB0byAncmFuZG9tJyB0byByYW5kb21pemUgcXVlc3Rpb25zLCAnaW5pdGlhbCcgdG8ga2VlcCB0aGVtIGluIHRoZSBzYW1lIG9yZGVyIG9yICdkZWZhdWx0JyB0byB1c2UgdGhlIFN1cnZleSBxdWVzdGlvbnNPcmRlciBwcm9wZXJ0eVxuICAgKiBAc2VlIFN1cnZleU1vZGVsLnF1ZXN0aW9uc09yZGVyXG4gICAqIEBzZWUgYXJlUXVlc3Rpb25zUmFuZG9taXplZFxuICAgKi9cbiAgcHVibGljIGdldCBxdWVzdGlvbnNPcmRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicXVlc3Rpb25zT3JkZXJcIik7XG4gIH1cbiAgcHVibGljIHNldCBxdWVzdGlvbnNPcmRlcih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInF1ZXN0aW9uc09yZGVyXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIENhbGwgaXQgdG8gc2Nyb2xsIHRvIHRoZSBwYWdlIHRvcC5cbiAgICovXG4gIHB1YmxpYyBzY3JvbGxUb1RvcCgpIHtcbiAgICBTdXJ2ZXlFbGVtZW50LlNjcm9sbEVsZW1lbnRUb1RvcCh0aGlzLmlkKTtcbiAgfVxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIGVuZC11c2VyIHNwZW50IG9uIHRoaXMgcGFnZVxuICAgKi9cbiAgcHVibGljIHRpbWVTcGVudCA9IDA7XG4gIC8vIHB1YmxpYyBnZXQgdGltZVNwZW50KCk6IG51bWJlciB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInRpbWVTcGVudFwiLCAwKTtcbiAgLy8gfVxuICAvLyBwdWJsaWMgc2V0IHRpbWVTcGVudCh2YWw6IG51bWJlcikge1xuICAvLyAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInRpbWVTcGVudFwiLCB2YWwpO1xuICAvLyB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBwYW5lbHMgaW4gdGhlIHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnZXRQYW5lbHMoXG4gICAgdmlzaWJsZU9ubHk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpbmNsdWRpbmdEZXNpZ25UaW1lOiBib29sZWFuID0gZmFsc2VcbiAgKTogQXJyYXk8SVBhbmVsPiB7XG4gICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheTxJUGFuZWw+KCk7XG4gICAgdGhpcy5hZGRQYW5lbHNJbnRvTGlzdChyZXN1bHQsIHZpc2libGVPbmx5LCBpbmNsdWRpbmdEZXNpZ25UaW1lKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIHNlY29uZHMgdGhhdCBlbmQtdXNlciBoYXMgdG8gY29tcGxldGUgdGhlIHBhZ2UuIElmIHRoZSB2YWx1ZSBpcyAwIG9yIGxlc3MsIHRoZSBlbmQtdXNlciBoYXMgdW5saW1pdGVkIG51bWJlciBvZiB0aW1lIHRvIGZpbmlzaCB0aGUgcGFnZS5cbiAgICogQHNlZSBzdGFydFRpbWVyXG4gICAqIEBzZWUgU3VydmV5TW9kZWwubWF4VGltZVRvRmluaXNoUGFnZVxuICAgKi9cbiAgcHVibGljIGdldCBtYXhUaW1lVG9GaW5pc2goKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwibWF4VGltZVRvRmluaXNoXCIsIDApO1xuICB9XG4gIHB1YmxpYyBzZXQgbWF4VGltZVRvRmluaXNoKHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwibWF4VGltZVRvRmluaXNoXCIsIHZhbCk7XG4gIH1cbiAgcHJvdGVjdGVkIG9uTnVtQ2hhbmdlZCh2YWx1ZTogbnVtYmVyKSB7fVxuICBwcm90ZWN0ZWQgb25WaXNpYmxlQ2hhbmdlZCgpIHtcbiAgICBpZiAodGhpcy5pc1JhbmRvbWl6aW5nKSByZXR1cm47XG4gICAgc3VwZXIub25WaXNpYmxlQ2hhbmdlZCgpO1xuICAgIGlmICh0aGlzLnN1cnZleSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnN1cnZleS5wYWdlVmlzaWJpbGl0eUNoYW5nZWQodGhpcywgdGhpcy5pc1Zpc2libGUpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGRyYWdEcm9wSW5mbzogRHJhZ0Ryb3BJbmZvO1xuICBwdWJsaWMgZHJhZ0Ryb3BTdGFydChcbiAgICBzcmM6IElFbGVtZW50LFxuICAgIHRhcmdldDogSUVsZW1lbnQsXG4gICAgbmVzdGVkUGFuZWxEZXB0aDogbnVtYmVyID0gLTFcbiAgKSB7XG4gICAgdGhpcy5kcmFnRHJvcEluZm8gPSBuZXcgRHJhZ0Ryb3BJbmZvKHNyYywgdGFyZ2V0LCBuZXN0ZWRQYW5lbERlcHRoKTtcbiAgfVxuICBwdWJsaWMgZHJhZ0Ryb3BNb3ZlVG8oXG4gICAgZGVzdGluYXRpb246IElTdXJ2ZXlFbGVtZW50LFxuICAgIGlzQm90dG9tOiBib29sZWFuID0gZmFsc2UsXG4gICAgaXNFZGdlOiBib29sZWFuID0gZmFsc2VcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmRyYWdEcm9wSW5mbykgcmV0dXJuIGZhbHNlO1xuICAgIHRoaXMuZHJhZ0Ryb3BJbmZvLmRlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gICAgdGhpcy5kcmFnRHJvcEluZm8uaXNCb3R0b20gPSBpc0JvdHRvbTtcbiAgICB0aGlzLmRyYWdEcm9wSW5mby5pc0VkZ2UgPSBpc0VkZ2U7XG4gICAgdGhpcy5jb3JyZWN0RHJhZ0Ryb3BJbmZvKHRoaXMuZHJhZ0Ryb3BJbmZvKTtcbiAgICBpZiAoIXRoaXMuZHJhZ0Ryb3BDYW5Ecm9wVGFnZXJ0KCkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoIXRoaXMuZHJhZ0Ryb3BDYW5Ecm9wU291cmNlKCkgfHwgIXRoaXMuZHJhZ0Ryb3BBbGxvd0Zyb21TdXJ2ZXkoKSkge1xuICAgICAgaWYgKCEhdGhpcy5kcmFnRHJvcEluZm8uc291cmNlKSB7XG4gICAgICAgIHZhciByb3cgPSB0aGlzLmRyYWdEcm9wRmluZFJvdyh0aGlzLmRyYWdEcm9wSW5mby50YXJnZXQpO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd3NSZW1vdmVFbGVtZW50RnJvbVJvdyh0aGlzLmRyYWdEcm9wSW5mby50YXJnZXQsIHJvdyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZHJhZ0Ryb3BBZGRUYXJnZXQodGhpcy5kcmFnRHJvcEluZm8pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByaXZhdGUgY29ycmVjdERyYWdEcm9wSW5mbyhkcmFnRHJvcEluZm86IERyYWdEcm9wSW5mbykge1xuICAgIGlmICghZHJhZ0Ryb3BJbmZvLmRlc3RpbmF0aW9uKSByZXR1cm47XG4gICAgdmFyIHBhbmVsID0gKDxJRWxlbWVudD5kcmFnRHJvcEluZm8uZGVzdGluYXRpb24pLmlzUGFuZWxcbiAgICAgID8gPElQYW5lbD4oPGFueT5kcmFnRHJvcEluZm8uZGVzdGluYXRpb24pXG4gICAgICA6IG51bGw7XG4gICAgaWYgKCFwYW5lbCkgcmV0dXJuO1xuICAgIGlmIChcbiAgICAgICFkcmFnRHJvcEluZm8udGFyZ2V0LmlzTGF5b3V0VHlwZVN1cHBvcnRlZChwYW5lbC5nZXRDaGlsZHJlbkxheW91dFR5cGUoKSlcbiAgICApIHtcbiAgICAgIGRyYWdEcm9wSW5mby5pc0VkZ2UgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGRyYWdEcm9wQWxsb3dGcm9tU3VydmV5KCk6IGJvb2xlYW4ge1xuICAgIHZhciBkZXN0ID0gdGhpcy5kcmFnRHJvcEluZm8uZGVzdGluYXRpb247XG4gICAgaWYgKCFkZXN0IHx8ICF0aGlzLnN1cnZleSkgcmV0dXJuIHRydWU7XG4gICAgdmFyIGluc2VydEJlZm9yZTogSUVsZW1lbnQgPSBudWxsO1xuICAgIHZhciBpbnNlcnRBZnRlcjogSUVsZW1lbnQgPSBudWxsO1xuICAgIHZhciBwYXJlbnQgPVxuICAgICAgZGVzdC5pc1BhZ2UgfHwgKCF0aGlzLmRyYWdEcm9wSW5mby5pc0VkZ2UgJiYgKDxJRWxlbWVudD5kZXN0KS5pc1BhbmVsKVxuICAgICAgICA/IGRlc3RcbiAgICAgICAgOiAoPElFbGVtZW50PmRlc3QpLnBhcmVudDtcbiAgICBpZiAoIWRlc3QuaXNQYWdlKSB7XG4gICAgICB2YXIgY29udGFpbmVyID0gKDxJRWxlbWVudD5kZXN0KS5wYXJlbnQ7XG4gICAgICBpZiAoISFjb250YWluZXIpIHtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gKDxQYW5lbE1vZGVsQmFzZT5jb250YWluZXIpLmVsZW1lbnRzO1xuICAgICAgICB2YXIgaW5kZXggPSBlbGVtZW50cy5pbmRleE9mKDxJRWxlbWVudD5kZXN0KTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICBpbnNlcnRCZWZvcmUgPSA8SUVsZW1lbnQ+ZGVzdDtcbiAgICAgICAgICBpbnNlcnRBZnRlciA9IDxJRWxlbWVudD5kZXN0O1xuICAgICAgICAgIGlmICh0aGlzLmRyYWdEcm9wSW5mby5pc0JvdHRvbSkge1xuICAgICAgICAgICAgaW5zZXJ0QmVmb3JlID1cbiAgICAgICAgICAgICAgaW5kZXggPCBlbGVtZW50cy5sZW5ndGggLSAxID8gZWxlbWVudHNbaW5kZXggKyAxXSA6IG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluc2VydEFmdGVyID0gaW5kZXggPiAwID8gZWxlbWVudHNbaW5kZXggLSAxXSA6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgdGFyZ2V0OiB0aGlzLmRyYWdEcm9wSW5mby50YXJnZXQsXG4gICAgICBzb3VyY2U6IHRoaXMuZHJhZ0Ryb3BJbmZvLnNvdXJjZSxcbiAgICAgIHBhcmVudDogcGFyZW50LFxuICAgICAgaW5zZXJ0QWZ0ZXI6IGluc2VydEFmdGVyLFxuICAgICAgaW5zZXJ0QmVmb3JlOiBpbnNlcnRCZWZvcmVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnN1cnZleS5kcmFnQW5kRHJvcEFsbG93KG9wdGlvbnMpO1xuICB9XG4gIHB1YmxpYyBkcmFnRHJvcEZpbmlzaChpc0NhbmNlbDogYm9vbGVhbiA9IGZhbHNlKTogSUVsZW1lbnQge1xuICAgIGlmICghdGhpcy5kcmFnRHJvcEluZm8pIHJldHVybjtcbiAgICB2YXIgdGFyZ2V0ID0gdGhpcy5kcmFnRHJvcEluZm8udGFyZ2V0O1xuICAgIHZhciByb3cgPSB0aGlzLmRyYWdEcm9wRmluZFJvdyh0YXJnZXQpO1xuICAgIHZhciB0YXJnZXRJbmRleCA9IHRoaXMuZHJhZ0Ryb3BHZXRFbGVtZW50SW5kZXgodGFyZ2V0LCByb3cpO1xuICAgIHRoaXMudXBkYXRlUm93c1JlbW92ZUVsZW1lbnRGcm9tUm93KHRhcmdldCwgcm93KTtcbiAgICBpZiAoIWlzQ2FuY2VsICYmICEhcm93KSB7XG4gICAgICB2YXIgc3JjID0gdGhpcy5kcmFnRHJvcEluZm8uc291cmNlO1xuICAgICAgdmFyIGlzU2FtZVBhbmVsID0gZmFsc2U7XG4gICAgICBpZiAoISFzcmMgJiYgISFzcmMucGFyZW50KSB7XG4gICAgICAgIGlzU2FtZVBhbmVsID0gcm93LnBhbmVsID09IHNyYy5wYXJlbnQ7XG4gICAgICAgIGlmIChpc1NhbWVQYW5lbCkge1xuICAgICAgICAgIHJvdy5wYW5lbC5kcmFnRHJvcE1vdmVFbGVtZW50KHNyYywgdGFyZ2V0LCB0YXJnZXRJbmRleCk7XG4gICAgICAgICAgdGFyZ2V0SW5kZXggPSAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzcmMucGFyZW50LnJlbW92ZUVsZW1lbnQoc3JjKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRhcmdldEluZGV4ID4gLTEpIHtcbiAgICAgICAgcm93LnBhbmVsLmFkZEVsZW1lbnQodGFyZ2V0LCB0YXJnZXRJbmRleCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZHJhZ0Ryb3BJbmZvID0gbnVsbDtcbiAgICByZXR1cm4gIWlzQ2FuY2VsID8gdGFyZ2V0IDogbnVsbDtcbiAgfVxuICBwcml2YXRlIGRyYWdEcm9wR2V0RWxlbWVudEluZGV4KFxuICAgIHRhcmdldDogSUVsZW1lbnQsXG4gICAgcm93OiBRdWVzdGlvblJvd01vZGVsXG4gICk6IG51bWJlciB7XG4gICAgaWYgKCFyb3cpIHJldHVybiAtMTtcbiAgICB2YXIgaW5kZXggPSByb3cuZWxlbWVudHMuaW5kZXhPZih0YXJnZXQpO1xuICAgIGlmIChyb3cuaW5kZXggPT0gMCkgcmV0dXJuIGluZGV4O1xuICAgIHZhciBwcmV2Um93ID0gcm93LnBhbmVsLnJvd3Nbcm93LmluZGV4IC0gMV07XG4gICAgdmFyIHByZXZFbGVtZW50ID0gcHJldlJvdy5lbGVtZW50c1twcmV2Um93LmVsZW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgIHJldHVybiBpbmRleCArIHJvdy5wYW5lbC5lbGVtZW50cy5pbmRleE9mKHByZXZFbGVtZW50KSArIDE7XG4gIH1cbiAgcHJpdmF0ZSBkcmFnRHJvcENhbkRyb3BUYWdlcnQoKTogYm9vbGVhbiB7XG4gICAgdmFyIGRlc3RpbmF0aW9uID0gdGhpcy5kcmFnRHJvcEluZm8uZGVzdGluYXRpb247XG4gICAgaWYgKCFkZXN0aW5hdGlvbiB8fCBkZXN0aW5hdGlvbi5pc1BhZ2UpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiB0aGlzLmRyYWdEcm9wQ2FuRHJvcENvcmUoXG4gICAgICB0aGlzLmRyYWdEcm9wSW5mby50YXJnZXQsXG4gICAgICA8SUVsZW1lbnQ+ZGVzdGluYXRpb25cbiAgICApO1xuICB9XG4gIHByaXZhdGUgZHJhZ0Ryb3BDYW5Ecm9wU291cmNlKCk6IGJvb2xlYW4ge1xuICAgIHZhciBzb3VyY2UgPSB0aGlzLmRyYWdEcm9wSW5mby5zb3VyY2U7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiB0cnVlO1xuICAgIHZhciBkZXN0aW5hdGlvbiA9IDxJRWxlbWVudD50aGlzLmRyYWdEcm9wSW5mby5kZXN0aW5hdGlvbjtcbiAgICBpZiAoIXRoaXMuZHJhZ0Ryb3BDYW5Ecm9wQ29yZShzb3VyY2UsIGRlc3RpbmF0aW9uKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLmRyYWdEcm9wQ2FuRHJvcE5vdE5leHQoXG4gICAgICBzb3VyY2UsXG4gICAgICBkZXN0aW5hdGlvbixcbiAgICAgIHRoaXMuZHJhZ0Ryb3BJbmZvLmlzRWRnZSxcbiAgICAgIHRoaXMuZHJhZ0Ryb3BJbmZvLmlzQm90dG9tXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIGRyYWdEcm9wQ2FuRHJvcENvcmUoXG4gICAgdGFyZ2V0OiBJRWxlbWVudCxcbiAgICBkZXN0aW5hdGlvbjogSUVsZW1lbnRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkZXN0aW5hdGlvbikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHRoaXMuZHJhZ0Ryb3BJc1NhbWVFbGVtZW50KGRlc3RpbmF0aW9uLCB0YXJnZXQpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRhcmdldC5pc1BhbmVsKSB7XG4gICAgICB2YXIgcG5sID0gPFBhbmVsTW9kZWxCYXNlPig8YW55PnRhcmdldCk7XG4gICAgICBpZiAoXG4gICAgICAgIHBubC5jb250YWluc0VsZW1lbnQoZGVzdGluYXRpb24pIHx8XG4gICAgICAgICEhcG5sLmdldEVsZW1lbnRCeU5hbWUoZGVzdGluYXRpb24ubmFtZSlcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcml2YXRlIGRyYWdEcm9wQ2FuRHJvcE5vdE5leHQoXG4gICAgc291cmNlOiBJRWxlbWVudCxcbiAgICBkZXN0aW5hdGlvbjogSUVsZW1lbnQsXG4gICAgaXNFZGdlOiBib29sZWFuLFxuICAgIGlzQm90dG9tOiBib29sZWFuXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghZGVzdGluYXRpb24gfHwgKGRlc3RpbmF0aW9uLmlzUGFuZWwgJiYgIWlzRWRnZSkpIHJldHVybiB0cnVlO1xuICAgIGlmIChzb3VyY2UucGFyZW50ICE9PSBkZXN0aW5hdGlvbi5wYXJlbnQpIHJldHVybiB0cnVlO1xuICAgIHZhciBwbmwgPSA8UGFuZWxNb2RlbEJhc2U+c291cmNlLnBhcmVudDtcbiAgICB2YXIgc3JjSW5kZXggPSBwbmwuZWxlbWVudHMuaW5kZXhPZihzb3VyY2UpO1xuICAgIHZhciBkZXN0SW5kZXggPSBwbmwuZWxlbWVudHMuaW5kZXhPZihkZXN0aW5hdGlvbik7XG4gICAgaWYgKGRlc3RJbmRleCA8IHNyY0luZGV4ICYmICFpc0JvdHRvbSkgZGVzdEluZGV4LS07XG4gICAgaWYgKGlzQm90dG9tKSBkZXN0SW5kZXgrKztcbiAgICByZXR1cm4gc3JjSW5kZXggPCBkZXN0SW5kZXhcbiAgICAgID8gZGVzdEluZGV4IC0gc3JjSW5kZXggPiAxXG4gICAgICA6IHNyY0luZGV4IC0gZGVzdEluZGV4ID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZHJhZ0Ryb3BJc1NhbWVFbGVtZW50KGVsMTogSUVsZW1lbnQsIGVsMjogSUVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWwxID09IGVsMiB8fCBlbDEubmFtZSA9PSBlbDIubmFtZTtcbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcInBhZ2VcIixcbiAgW1xuICAgIHtcbiAgICAgIG5hbWU6IFwibmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5XCIsXG4gICAgICBkZWZhdWx0OiBcImluaGVyaXRcIixcbiAgICAgIGNob2ljZXM6IFtcImluaGVyaXRcIiwgXCJzaG93XCIsIFwiaGlkZVwiXVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJxdWVzdGlvbnNPcmRlclwiLFxuICAgICAgZGVmYXVsdDogXCJkZWZhdWx0XCIsXG4gICAgICBjaG9pY2VzOiBbXCJkZWZhdWx0XCIsIFwiaW5pdGlhbFwiLCBcInJhbmRvbVwiXVxuICAgIH0sXG4gICAgeyBuYW1lOiBcIm1heFRpbWVUb0ZpbmlzaDpudW1iZXJcIiwgZGVmYXVsdDogMCwgbWluVmFsdWU6IDAgfVxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFBhZ2VNb2RlbCgpO1xuICB9LFxuICBcInBhbmVsYmFzZVwiXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3BhZ2UudHMiLCJpbXBvcnQgeyBCYXNlLCBJUXVlc3Rpb24sIEV2ZW50IH0gZnJvbSBcIi4vYmFzZVwiO1xuXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25DdXN0b21XaWRnZXQge1xuICBwdWJsaWMgaHRtbFRlbXBsYXRlOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcsIHB1YmxpYyB3aWRnZXRKc29uOiBhbnkpIHtcbiAgICB0aGlzLmh0bWxUZW1wbGF0ZSA9IHdpZGdldEpzb24uaHRtbFRlbXBsYXRlID8gd2lkZ2V0SnNvbi5odG1sVGVtcGxhdGUgOiBcIlwiO1xuICB9XG4gIHB1YmxpYyBhZnRlclJlbmRlcihxdWVzdGlvbjogSVF1ZXN0aW9uLCBlbDogYW55KSB7XG4gICAgaWYgKHRoaXMud2lkZ2V0SnNvbi5hZnRlclJlbmRlcikgdGhpcy53aWRnZXRKc29uLmFmdGVyUmVuZGVyKHF1ZXN0aW9uLCBlbCk7XG4gIH1cbiAgcHVibGljIHdpbGxVbm1vdW50KHF1ZXN0aW9uOiBJUXVlc3Rpb24sIGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy53aWRnZXRKc29uLndpbGxVbm1vdW50KSB0aGlzLndpZGdldEpzb24ud2lsbFVubW91bnQocXVlc3Rpb24sIGVsKTtcbiAgfVxuICBwdWJsaWMgZ2V0RGlzcGxheVZhbHVlKHF1ZXN0aW9uOiBJUXVlc3Rpb24sIHZhbHVlOiBhbnkgPSB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLndpZGdldEpzb24uZ2V0RGlzcGxheVZhbHVlKVxuICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0SnNvbi5nZXREaXNwbGF5VmFsdWUocXVlc3Rpb24sIHZhbHVlKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBwdWJsaWMgaXNGaXQocXVlc3Rpb246IElRdWVzdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzTGlicmFyeUxvYWRlZCgpICYmIHRoaXMud2lkZ2V0SnNvbi5pc0ZpdClcbiAgICAgIHJldHVybiB0aGlzLndpZGdldEpzb24uaXNGaXQocXVlc3Rpb24pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgYWN0aXZhdGVkQnlDaGFuZ2VkKGFjdGl2YXRlZEJ5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc0xpYnJhcnlMb2FkZWQoKSAmJiB0aGlzLndpZGdldEpzb24uYWN0aXZhdGVkQnlDaGFuZ2VkKSB7XG4gICAgICB0aGlzLndpZGdldEpzb24uYWN0aXZhdGVkQnlDaGFuZ2VkKGFjdGl2YXRlZEJ5KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpc0xpYnJhcnlMb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMud2lkZ2V0SnNvbi53aWRnZXRJc0xvYWRlZClcbiAgICAgIHJldHVybiB0aGlzLndpZGdldEpzb24ud2lkZ2V0SXNMb2FkZWQoKSA9PSB0cnVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNEZWZhdWx0UmVuZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpZGdldEpzb24uaXNEZWZhdWx0UmVuZGVyO1xuICB9XG4gIHB1YmxpYyBnZXQgcGRmUXVlc3Rpb25UeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0SnNvbi5wZGZRdWVzdGlvblR5cGU7XG4gIH1cbiAgcHVibGljIGdldCBwZGZSZW5kZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0SnNvbi5wZGZSZW5kZXI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEN1c3RvbVdpZGdldENvbGxlY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIEluc3RhbmNlOiBDdXN0b21XaWRnZXRDb2xsZWN0aW9uID0gbmV3IEN1c3RvbVdpZGdldENvbGxlY3Rpb24oKTtcbiAgcHJpdmF0ZSB3aWRnZXRzVmFsdWVzOiBBcnJheTxRdWVzdGlvbkN1c3RvbVdpZGdldD4gPSBbXTtcbiAgcHJpdmF0ZSB3aWRnZXRzQWN0aXZhdGVkQnkgPSB7fTtcblxuICBwdWJsaWMgb25DdXN0b21XaWRnZXRBZGRlZDogRXZlbnQ8XG4gICAgKGN1c3RvbVdpZGdldDogUXVlc3Rpb25DdXN0b21XaWRnZXQpID0+IGFueSxcbiAgICBhbnlcbiAgPiA9IG5ldyBFdmVudDwoY3VzdG9tV2lkZ2V0OiBRdWVzdGlvbkN1c3RvbVdpZGdldCkgPT4gYW55LCBhbnk+KCk7XG5cbiAgcHVibGljIGdldCB3aWRnZXRzKCk6IEFycmF5PFF1ZXN0aW9uQ3VzdG9tV2lkZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0c1ZhbHVlcztcbiAgfVxuICBwdWJsaWMgYWRkQ3VzdG9tV2lkZ2V0KHdpZGdldEpzb246IGFueSwgYWN0aXZhdGVkQnk6IHN0cmluZyA9IFwicHJvcGVydHlcIikge1xuICAgIHZhciBuYW1lID0gd2lkZ2V0SnNvbi5uYW1lO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgbmFtZSA9IFwid2lkZ2V0X1wiICsgdGhpcy53aWRnZXRzLmxlbmd0aCArIDE7XG4gICAgfVxuICAgIHZhciBjdXN0b21XaWRnZXQgPSBuZXcgUXVlc3Rpb25DdXN0b21XaWRnZXQobmFtZSwgd2lkZ2V0SnNvbik7XG4gICAgdGhpcy53aWRnZXRzVmFsdWVzLnB1c2goY3VzdG9tV2lkZ2V0KTtcbiAgICAoPGFueT50aGlzKS53aWRnZXRzQWN0aXZhdGVkQnlbbmFtZV0gPSBhY3RpdmF0ZWRCeTtcbiAgICBjdXN0b21XaWRnZXQuYWN0aXZhdGVkQnlDaGFuZ2VkKGFjdGl2YXRlZEJ5KTtcbiAgICB0aGlzLm9uQ3VzdG9tV2lkZ2V0QWRkZWQuZmlyZShjdXN0b21XaWRnZXQsIG51bGwpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB3YXkgdGhlIGN1c3RvbSB3aWdldCBpcyBhY3RpdmF0ZWQuIEl0IGNhbiBiZSBhY3RpdmF0ZWQgYnkgYSBwcm9wZXJ0eSAoXCJwcm9wZXJ0eVwiKSwgcXVlc3Rpb24gdHlwZSAoXCJ0eXBlXCIpIG9yIGJ5IG5ldy9jdXN0b20gcXVlc3Rpb24gdHlwZSAoXCJjdXN0b210eXBlXCIpLlxuICAgKiBAcGFyYW0gd2lkZ2V0TmFtZSB0aGUgY3VzdG9tIHdpZGdldCBuYW1lXG4gICAqIEBzZWUgc2V0QWN0aXZhdGVkQnlcbiAgICovXG4gIHB1YmxpYyBnZXRBY3RpdmF0ZWRCeSh3aWRnZXROYW1lOiBzdHJpbmcpIHtcbiAgICB2YXIgcmVzID0gKDxhbnk+dGhpcykud2lkZ2V0c0FjdGl2YXRlZEJ5W3dpZGdldE5hbWVdO1xuICAgIHJldHVybiByZXMgPyByZXMgOiBcInByb3BlcnR5XCI7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgdGhlIHdheSB0aGUgY3VzdG9tIHdpZ2V0IGlzIGFjdGl2YXRlZC4gVGhlIGFjdGl2YXRpb24gdHlwZXMgYXJlOiBwcm9wZXJ0eSAoXCJwcm9wZXJ0eVwiKSwgcXVlc3Rpb24gdHlwZSAoXCJ0eXBlXCIpIG9yIG5ldy9jdXN0b20gcXVlc3Rpb24gdHlwZSAoXCJjdXN0b210eXBlXCIpLiBBIGN1c3RvbSB3aWdldCBtYXkgc3VwcG9ydCBhbGwgb3Igb25seSBzb21lIG9mIHRoaXMgYWN0aXZhdGlvbiB0eXBlcy5cbiAgICogQHBhcmFtIHdpZGdldE5hbWVcbiAgICogQHBhcmFtIGFjdGl2YXRlZEJ5IHRoZXJlIGFyZSB0aHJlZSBwb3NzaWJsZSB2YXJpYW50czogXCJwcm9wZXJ0eVwiLCBcInR5cGVcIiBhbmQgXCJjdXN0b210eXBlXCJcbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmF0ZWRCeSh3aWRnZXROYW1lOiBzdHJpbmcsIGFjdGl2YXRlZEJ5OiBzdHJpbmcpIHtcbiAgICBpZiAoIXdpZGdldE5hbWUgfHwgIWFjdGl2YXRlZEJ5KSByZXR1cm47XG4gICAgdmFyIHdpZGdldCA9IHRoaXMuZ2V0Q3VzdG9tV2lkZ2V0QnlOYW1lKHdpZGdldE5hbWUpO1xuICAgIGlmICghd2lkZ2V0KSByZXR1cm47XG4gICAgKDxhbnk+dGhpcykud2lkZ2V0c0FjdGl2YXRlZEJ5W3dpZGdldE5hbWVdID0gYWN0aXZhdGVkQnk7XG4gICAgd2lkZ2V0LmFjdGl2YXRlZEJ5Q2hhbmdlZChhY3RpdmF0ZWRCeSk7XG4gIH1cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMud2lkZ2V0c1ZhbHVlcyA9IFtdO1xuICB9XG4gIHB1YmxpYyBnZXRDdXN0b21XaWRnZXRCeU5hbWUobmFtZTogc3RyaW5nKTogUXVlc3Rpb25DdXN0b21XaWRnZXQge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy53aWRnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy53aWRnZXRzW2ldLm5hbWUgPT0gbmFtZSkgcmV0dXJuIHRoaXMud2lkZ2V0c1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHVibGljIGdldEN1c3RvbVdpZGdldChxdWVzdGlvbjogSVF1ZXN0aW9uKTogUXVlc3Rpb25DdXN0b21XaWRnZXQge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy53aWRnZXRzVmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy53aWRnZXRzVmFsdWVzW2ldLmlzRml0KHF1ZXN0aW9uKSkgcmV0dXJuIHRoaXMud2lkZ2V0c1ZhbHVlc1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9xdWVzdGlvbkN1c3RvbVdpZGdldHMudHMiLCJpbXBvcnQgeyBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBRdWVzdGlvblNlbGVjdEJhc2UgfSBmcm9tIFwiLi9xdWVzdGlvbl9iYXNlc2VsZWN0XCI7XG5pbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9zdXJ2ZXlTdHJpbmdzXCI7XG5pbXBvcnQgeyBMb2NhbGl6YWJsZVN0cmluZyB9IGZyb20gXCIuL2xvY2FsaXphYmxlc3RyaW5nXCI7XG5pbXBvcnQgeyBJdGVtVmFsdWUgfSBmcm9tIFwiLi9pdGVtdmFsdWVcIjtcblxuLyoqXG4gKiBBIE1vZGVsIGZvciBhIGRyb3Bkb3duIHF1ZXN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkRyb3Bkb3duTW9kZWwgZXh0ZW5kcyBRdWVzdGlvblNlbGVjdEJhc2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcIm9wdGlvbnNDYXB0aW9uXCIsIHRoaXMpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXCJjaG9pY2VzTWluXCIsIFwiY2hvaWNlc01heFwiLCBcImNob2ljZXNTdGVwXCJdLFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYub25WaXNpYmxlQ2hvaWNlc0NoYW5nZWQoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBUaGlzIGZsYWcgY29udHJvbHMgd2hldGhlciB0byBzaG93IG9wdGlvbnMgY2FwdGlvbiBpdGVtICgnQ2hvb3NlLi4uJykuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dPcHRpb25zQ2FwdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwic2hvd09wdGlvbnNDYXB0aW9uXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd09wdGlvbnNDYXB0aW9uKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dPcHRpb25zQ2FwdGlvblwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBzZXQgdGhlIG9wdGlvbnMgY2FwdGlvbiBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgdGFrZW4gZnJvbSBsb2NhbGl6YXRpb24gc3RyaW5ncy5cbiAgICovXG4gIHB1YmxpYyBnZXQgb3B0aW9uc0NhcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJvcHRpb25zQ2FwdGlvblwiLFxuICAgICAgc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm9wdGlvbnNDYXB0aW9uXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IG9wdGlvbnNDYXB0aW9uKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJvcHRpb25zQ2FwdGlvblwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NPcHRpb25zQ2FwdGlvbigpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJvcHRpb25zQ2FwdGlvblwiKTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImRyb3Bkb3duXCI7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZEl0ZW0oKTogSXRlbVZhbHVlIHtcbiAgICBpZiAodGhpcy5pc0VtcHR5KCkpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBJdGVtVmFsdWUuZ2V0SXRlbUJ5VmFsdWUodGhpcy52aXNpYmxlQ2hvaWNlcywgdGhpcy52YWx1ZSk7XG4gIH1cbiAgc3VwcG9ydEdvTmV4dFBhZ2VBdXRvbWF0aWMoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBtaW5NYXhDaG9pY2VzID0gPEFycmF5PEl0ZW1WYWx1ZT4+W107XG4gIHByb3RlY3RlZCBnZXRDaG9pY2VzKCk6IEFycmF5PEl0ZW1WYWx1ZT4ge1xuICAgIHZhciBpdGVtcyA9IHN1cGVyLmdldENob2ljZXMoKTtcbiAgICBpZiAodGhpcy5jaG9pY2VzTWF4IDw9IHRoaXMuY2hvaWNlc01pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHZhciByZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMucHVzaChpdGVtc1tpXSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMubWluTWF4Q2hvaWNlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHRoaXMubWluTWF4Q2hvaWNlcy5sZW5ndGggIT09XG4gICAgICAgICh0aGlzLmNob2ljZXNNYXggLSB0aGlzLmNob2ljZXNNaW4pIC8gdGhpcy5jaG9pY2VzU3RlcCArIDFcbiAgICApIHtcbiAgICAgIHRoaXMubWluTWF4Q2hvaWNlcyA9IFtdO1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIGkgPSB0aGlzLmNob2ljZXNNaW47XG4gICAgICAgIGkgPD0gdGhpcy5jaG9pY2VzTWF4O1xuICAgICAgICBpICs9IHRoaXMuY2hvaWNlc1N0ZXBcbiAgICAgICkge1xuICAgICAgICB0aGlzLm1pbk1heENob2ljZXMucHVzaChuZXcgSXRlbVZhbHVlKGkpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzID0gcmVzLmNvbmNhdCh0aGlzLm1pbk1heENob2ljZXMpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIGFuZCBjaG9pY2VzTWF4IHByb3BlcnR5IHRvIGF1dG9tYXRpY2FsbHkgYWRkIGNob2ljZXMuIEZvciBleGFtcGxlIGNob2ljZXNNaW4gPSAxIGFuZCBjaG9pY2VzTWF4ID0gMTAgd2lsbCBnZW5lcmF0ZSB0ZW4gYWRkaXRpb25hbCBjaG9pY2VzIGZyb20gMSB0byAxMC5cbiAgICogQHNlZSBjaG9pY2VzTWF4XG4gICAqIEBzZWUgY2hvaWNlc1N0ZXBcbiAgICovXG4gIHB1YmxpYyBnZXQgY2hvaWNlc01pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjaG9pY2VzTWluXCIsIDApO1xuICB9XG4gIHB1YmxpYyBzZXQgY2hvaWNlc01pbih2YWw6IG51bWJlcikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImNob2ljZXNNaW5cIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVXNlIHRoaXMgYW5kIGNob2ljZXNNYXggcHJvcGVydHkgdG8gYXV0b21hdGljYWxseSBhZGQgY2hvaWNlcy4gRm9yIGV4YW1wbGUgY2hvaWNlc01pbiA9IDEgYW5kIGNob2ljZXNNYXggPSAxMCB3aWxsIGdlbmVyYXRlIHRlbiBhZGRpdGlvbmFsIGNob2ljZXMgZnJvbSAxIHRvIDEwLlxuICAgKiBAc2VlIGNob2ljZXNNaW5cbiAgICogQHNlZSBjaG9pY2VzU3RlcFxuICAgKi9cbiAgcHVibGljIGdldCBjaG9pY2VzTWF4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImNob2ljZXNNYXhcIiwgMCk7XG4gIH1cbiAgcHVibGljIHNldCBjaG9pY2VzTWF4KHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY2hvaWNlc01heFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLiBJdCB0ZWxscyB0aGUgdmFsdWUgb2YgdGhlIGl0ZXJhdG9yIGJldHdlZW4gY2hvaWNlc01pbiBhbmQgY2hvaWNlc01heCBwcm9wZXJ0aWVzLlxuICAgKiBJZiBjaG9pY2VzTWluID0gMTAsIGNob2ljZXNNYXggPSAzMCBhbmQgY2hvaWNlc1N0ZXAgPSAxMCB0aGVuIHlvdSB3aWxsIGhhdmUgb25seSB0aHJlZSBhZGRpdGlvbmFsIGNob2ljZXM6IFsxMCwgMjAsIDMwXS5cbiAgICogQHNlZSBjaG9pY2VzTWluXG4gICAqIEBzZWUgY2hvaWNlc01heFxuICAgKi9cbiAgcHVibGljIGdldCBjaG9pY2VzU3RlcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjaG9pY2VzU3RlcFwiLCAxKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNob2ljZXNTdGVwKHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHZhbCA8IDEpIHZhbCA9IDE7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY2hvaWNlc1N0ZXBcIiwgdmFsKTtcbiAgfVxufVxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJkcm9wZG93blwiLFxuICBbXG4gICAgeyBuYW1lOiBcIm9wdGlvbnNDYXB0aW9uXCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NPcHRpb25zQ2FwdGlvblwiIH0sXG4gICAgeyBuYW1lOiBcInNob3dPcHRpb25zQ2FwdGlvbjpib29sZWFuXCIsIGRlZmF1bHQ6IHRydWUgfSxcbiAgICB7IG5hbWU6IFwiY2hvaWNlc01pbjpudW1iZXJcIiwgZGVmYXVsdDogMCB9LFxuICAgIHsgbmFtZTogXCJjaG9pY2VzTWF4Om51bWJlclwiLCBkZWZhdWx0OiAwIH0sXG4gICAgeyBuYW1lOiBcImNob2ljZXNTdGVwOm51bWJlclwiLCBkZWZhdWx0OiAxLCBtaW5WYWx1ZTogMSB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25Ecm9wZG93bk1vZGVsKFwiXCIpO1xuICB9LFxuICBcInNlbGVjdGJhc2VcIlxuKTtcblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwiZHJvcGRvd25cIiwgbmFtZSA9PiB7XG4gIHZhciBxID0gbmV3IFF1ZXN0aW9uRHJvcGRvd25Nb2RlbChuYW1lKTtcbiAgcS5jaG9pY2VzID0gUXVlc3Rpb25GYWN0b3J5LkRlZmF1bHRDaG9pY2VzO1xuICByZXR1cm4gcTtcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX2Ryb3Bkb3duLnRzIiwiaW1wb3J0IHsgSGFzaFRhYmxlLCBIZWxwZXJzIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IFF1ZXN0aW9uRmFjdG9yeSB9IGZyb20gXCIuL3F1ZXN0aW9uZmFjdG9yeVwiO1xuaW1wb3J0IHsgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuaW1wb3J0IHsgRXhwcmVzc2lvblJ1bm5lciB9IGZyb20gXCIuL2NvbmRpdGlvbnNcIjtcblxuLyoqXG4gKiBBIE1vZGVsIGZvciBleHByZXNzaW9uIHF1ZXN0aW9uLiBJdCBpcyBhIHJlYWQtb25seSBxdWVzdGlvbi4gSXQgY2FsY3VsYXRlcyB2YWx1ZSBiYXNlZCBvbiBlcHhyZXNzaW9uIHByb3BlcnR5LlxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25FeHByZXNzaW9uTW9kZWwgZXh0ZW5kcyBRdWVzdGlvbiB7XG4gIHByaXZhdGUgZXhwcmVzc2lvbklzUnVubmluZzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBleHByZXNzaW9uUnVubmVyOiBFeHByZXNzaW9uUnVubmVyO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcImZvcm1hdFwiLCB0aGlzKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcImV4cHJlc3Npb25cIiwgZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoc2VsZi5leHByZXNzaW9uUnVubmVyKSB7XG4gICAgICAgIHNlbGYuZXhwcmVzc2lvblJ1bm5lciA9IG5ldyBFeHByZXNzaW9uUnVubmVyKHNlbGYuZXhwcmVzc2lvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJleHByZXNzaW9uXCI7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIGRpc3BsYXkgdGhlIHZhbHVlIGluIHlvdXIgb3duIGZvcm1hdC4gTWFrZSBzdXJlIHlvdSBoYXZlIFwiezB9XCIgc3Vic3RyaW5nIGluIHlvdXIgc3RyaW5nLCB0byBkaXNwbGF5IHRoZSBhY3R1YWwgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImZvcm1hdFwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGZvcm1hdCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwiZm9ybWF0XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY0Zvcm1hdCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJmb3JtYXRcIik7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBFeHByZXNzaW9uIHRoYXQgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHF1ZXN0aW9uIHZhbHVlLiBZb3UgbWF5IHVzZSBzdGFuZGFyZCBvcGVyYXRvcnMgbGlrZSArLCAtLCAqIGFuZCAvLCBzcXVhcmVzICgpLiBIZXJlIGlzIHRoZSBleGFtcGxlIG9mIGFjY2Vzc2luZyB0aGUgcXVlc3Rpb24gdmFsdWUge3F1ZXN0aW9ubmFtZX0uXG4gICAqIDxici8+RXhhbXBsZTogXCIoe3F1YW50aXR5fSAqIHtwcmljZX0pICogKDEwMCAtIHtkaXNjb3VudH0pIC8gMTAwXCJcbiAgICovXG4gIHB1YmxpYyBnZXQgZXhwcmVzc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJleHByZXNzaW9uXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgZXhwcmVzc2lvbih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImV4cHJlc3Npb25cIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgbG9jQ2FsY3VsYXRpb24oKSB7XG4gICAgdGhpcy5leHByZXNzaW9uSXNSdW5uaW5nID0gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgdW5sb2NDYWxjdWxhdGlvbigpIHtcbiAgICB0aGlzLmV4cHJlc3Npb25Jc1J1bm5pbmcgPSBmYWxzZTtcbiAgfVxuICBwdWJsaWMgcnVuQ29uZGl0aW9uKHZhbHVlczogSGFzaFRhYmxlPGFueT4sIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+KSB7XG4gICAgc3VwZXIucnVuQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgaWYgKCF0aGlzLmV4cHJlc3Npb24gfHwgdGhpcy5leHByZXNzaW9uSXNSdW5uaW5nKSByZXR1cm47XG4gICAgdGhpcy5sb2NDYWxjdWxhdGlvbigpO1xuICAgIGlmICghdGhpcy5leHByZXNzaW9uUnVubmVyKSB7XG4gICAgICB0aGlzLmV4cHJlc3Npb25SdW5uZXIgPSBuZXcgRXhwcmVzc2lvblJ1bm5lcih0aGlzLmV4cHJlc3Npb24pO1xuICAgIH1cbiAgICB0aGlzLmV4cHJlc3Npb25SdW5uZXIub25SdW5Db21wbGV0ZSA9IG5ld1ZhbHVlID0+IHtcbiAgICAgIGlmICghSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKG5ld1ZhbHVlLCB0aGlzLnZhbHVlKSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgICB0aGlzLnVubG9jQ2FsY3VsYXRpb24oKTtcbiAgICB9O1xuICAgIHRoaXMuZXhwcmVzc2lvblJ1bm5lci5ydW4odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byB1c2UgaWYgZGlzcGxheVN0eWxlIGlzIG5vdCBcIm5vbmVcIi4gUG9zc2libGUgdmFsdWVzIGFyZSBmcm9tIDAgdG8gMjAuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIC0xIGFuZCBpdCBtZWFucyB0aGF0IHRoaXMgcHJvcGVydHkgaXMgbm90IHVzZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1heGltdW1GcmFjdGlvbkRpZ2l0cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJtYXhpbXVtRnJhY3Rpb25EaWdpdHNcIiwgLTEpO1xuICB9XG4gIHB1YmxpYyBzZXQgbWF4aW11bUZyYWN0aW9uRGlnaXRzKHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHZhbCA8IC0xIHx8IHZhbCA+IDIwKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwibWF4aW11bUZyYWN0aW9uRGlnaXRzXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gdXNlIGlmIGRpc3BsYXlTdHlsZSBpcyBub3QgXCJub25lXCIuIFBvc3NpYmxlIHZhbHVlcyBhcmUgZnJvbSAwIHRvIDIwLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAtMSBhbmQgaXQgbWVhbnMgdGhhdCB0aGlzIHByb3BlcnR5IGlzIG5vdCB1c2VkLlxuICAgKi9cbiAgcHVibGljIGdldCBtaW5pbXVtRnJhY3Rpb25EaWdpdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwibWluaW11bUZyYWN0aW9uRGlnaXRzXCIsIC0xKTtcbiAgfVxuICBwdWJsaWMgc2V0IG1pbmltdW1GcmFjdGlvbkRpZ2l0cyh2YWw6IG51bWJlcikge1xuICAgIGlmICh2YWwgPCAtMSB8fCB2YWwgPiAyMCkgcmV0dXJuO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIm1pbmltdW1GcmFjdGlvbkRpZ2l0c1wiLCB2YWwpO1xuICB9XG4gIHByb3RlY3RlZCBnZXREaXNwbGF5VmFsdWVDb3JlKGtleXNBc1RleHQ6IGJvb2xlYW4sIHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIHZhciB2YWwgPSB0aGlzLmlzVmFsdWVFbXB0eSh2YWx1ZSkgPyB0aGlzLmRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuICAgIGlmICh0aGlzLmlzVmFsdWVFbXB0eSh2YWwpKSByZXR1cm4gXCJcIjtcbiAgICB2YXIgc3RyID0gdGhpcy5nZXRWYWx1ZUFzU3RyKHZhbCk7XG4gICAgaWYgKCF0aGlzLmZvcm1hdCkgcmV0dXJuIHN0cjtcbiAgICByZXR1cm4gKDxhbnk+dGhpcy5mb3JtYXQpW1wiZm9ybWF0XCJdKHN0cik7XG4gIH1cbiAgLyoqXG4gICAqIFlvdSBtYXkgc2V0IHRoaXMgcHJvcGVydHkgdG8gXCJkZWNpbWFsXCIsIFwiY3VycmVuY3lcIiwgXCJwZXJjZW50XCIgb3IgXCJkYXRlXCIuIElmIHlvdSBzZXQgaXQgdG8gXCJjdXJyZW5jeVwiLCB5b3UgbWF5IHVzZSB0aGUgY3VycmVuY3kgcHJvcGVydHkgdG8gZGlzcGxheSB0aGUgdmFsdWUgaW4gY3VycmVuY3kgZGlmZmVyZW50IGZyb20gVVNELlxuICAgKiBAc2VlIGN1cnJlbmN5XG4gICAqL1xuICBwdWJsaWMgZ2V0IGRpc3BsYXlTdHlsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJkaXNwbGF5U3R5bGVcIik7XG4gIH1cbiAgcHVibGljIHNldCBkaXNwbGF5U3R5bGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJkaXNwbGF5U3R5bGVcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVXNlIGl0IHRvIGRpc3BsYXkgdGhlIHZhbHVlIGluIHRoZSBjdXJyZW5jeSBkaWZmZXJlbiBmcm9tIFVTRC4gVGhlIGRpc3BsYXlTdHlwZSBzaG91bGQgYmUgc2V0IHRvIFwiY3VycmVuY3lcIi5cbiAgICogQHNlZSBkaXNwbGF5U3R5bGVcbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY3VycmVuY3lcIik7XG4gIH1cbiAgcHVibGljIHNldCBjdXJyZW5jeSh2YWw6IHN0cmluZykge1xuICAgIGlmIChnZXRDdXJyZWN5Q29kZXMoKS5pbmRleE9mKHZhbCkgPCAwKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY3VycmVuY3lcIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHVzZUdyb3VwaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ1c2VHcm91cGluZ1wiLCB0cnVlKTtcbiAgfVxuICBwdWJsaWMgc2V0IHVzZUdyb3VwaW5nKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInVzZUdyb3VwaW5nXCIsIHZhbCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFZhbHVlQXNTdHIodmFsOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc3BsYXlTdHlsZSA9PSBcImRhdGVcIikge1xuICAgICAgdmFyIGQgPSBuZXcgRGF0ZSh2YWwpO1xuICAgICAgaWYgKCEhZCAmJiAhIWQudG9Mb2NhbGVEYXRlU3RyaW5nKSByZXR1cm4gZC50b0xvY2FsZURhdGVTdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzcGxheVN0eWxlICE9IFwibm9uZVwiICYmIEhlbHBlcnMuaXNOdW1iZXIodmFsKSkge1xuICAgICAgdmFyIGxvY2FsZSA9IHRoaXMuZ2V0TG9jYWxlKCk7XG4gICAgICBpZiAoIWxvY2FsZSkgbG9jYWxlID0gXCJlblwiO1xuICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgIHN0eWxlOiB0aGlzLmRpc3BsYXlTdHlsZSxcbiAgICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3ksXG4gICAgICAgIHVzZUdyb3VwaW5nOiB0aGlzLnVzZUdyb3VwaW5nXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMubWF4aW11bUZyYWN0aW9uRGlnaXRzID4gLTEpIHtcbiAgICAgICAgKDxhbnk+b3B0aW9ucylbXCJtYXhpbXVtRnJhY3Rpb25EaWdpdHNcIl0gPSB0aGlzLm1heGltdW1GcmFjdGlvbkRpZ2l0cztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1pbmltdW1GcmFjdGlvbkRpZ2l0cyA+IC0xKSB7XG4gICAgICAgICg8YW55Pm9wdGlvbnMpW1wibWluaW11bUZyYWN0aW9uRGlnaXRzXCJdID0gdGhpcy5taW5pbXVtRnJhY3Rpb25EaWdpdHM7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiB2YWwudG9TdHJpbmcoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVjeUNvZGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICByZXR1cm4gW1xuICAgIFwiQUVEXCIsXG4gICAgXCJBRk5cIixcbiAgICBcIkFMTFwiLFxuICAgIFwiQU1EXCIsXG4gICAgXCJBTkdcIixcbiAgICBcIkFPQVwiLFxuICAgIFwiQVJTXCIsXG4gICAgXCJBVURcIixcbiAgICBcIkFXR1wiLFxuICAgIFwiQVpOXCIsXG4gICAgXCJCQU1cIixcbiAgICBcIkJCRFwiLFxuICAgIFwiQkRUXCIsXG4gICAgXCJCR05cIixcbiAgICBcIkJIRFwiLFxuICAgIFwiQklGXCIsXG4gICAgXCJCTURcIixcbiAgICBcIkJORFwiLFxuICAgIFwiQk9CXCIsXG4gICAgXCJCT1ZcIixcbiAgICBcIkJSTFwiLFxuICAgIFwiQlNEXCIsXG4gICAgXCJCVE5cIixcbiAgICBcIkJXUFwiLFxuICAgIFwiQllOXCIsXG4gICAgXCJCWkRcIixcbiAgICBcIkNBRFwiLFxuICAgIFwiQ0RGXCIsXG4gICAgXCJDSEVcIixcbiAgICBcIkNIRlwiLFxuICAgIFwiQ0hXXCIsXG4gICAgXCJDTEZcIixcbiAgICBcIkNMUFwiLFxuICAgIFwiQ05ZXCIsXG4gICAgXCJDT1BcIixcbiAgICBcIkNPVVwiLFxuICAgIFwiQ1JDXCIsXG4gICAgXCJDVUNcIixcbiAgICBcIkNVUFwiLFxuICAgIFwiQ1ZFXCIsXG4gICAgXCJDWktcIixcbiAgICBcIkRKRlwiLFxuICAgIFwiREtLXCIsXG4gICAgXCJET1BcIixcbiAgICBcIkRaRFwiLFxuICAgIFwiRUdQXCIsXG4gICAgXCJFUk5cIixcbiAgICBcIkVUQlwiLFxuICAgIFwiRVVSXCIsXG4gICAgXCJGSkRcIixcbiAgICBcIkZLUFwiLFxuICAgIFwiR0JQXCIsXG4gICAgXCJHRUxcIixcbiAgICBcIkdIU1wiLFxuICAgIFwiR0lQXCIsXG4gICAgXCJHTURcIixcbiAgICBcIkdORlwiLFxuICAgIFwiR1RRXCIsXG4gICAgXCJHWURcIixcbiAgICBcIkhLRFwiLFxuICAgIFwiSE5MXCIsXG4gICAgXCJIUktcIixcbiAgICBcIkhUR1wiLFxuICAgIFwiSFVGXCIsXG4gICAgXCJJRFJcIixcbiAgICBcIklMU1wiLFxuICAgIFwiSU5SXCIsXG4gICAgXCJJUURcIixcbiAgICBcIklSUlwiLFxuICAgIFwiSVNLXCIsXG4gICAgXCJKTURcIixcbiAgICBcIkpPRFwiLFxuICAgIFwiSlBZXCIsXG4gICAgXCJLRVNcIixcbiAgICBcIktHU1wiLFxuICAgIFwiS0hSXCIsXG4gICAgXCJLTUZcIixcbiAgICBcIktQV1wiLFxuICAgIFwiS1JXXCIsXG4gICAgXCJLV0RcIixcbiAgICBcIktZRFwiLFxuICAgIFwiS1pUXCIsXG4gICAgXCJMQUtcIixcbiAgICBcIkxCUFwiLFxuICAgIFwiTEtSXCIsXG4gICAgXCJMUkRcIixcbiAgICBcIkxTTFwiLFxuICAgIFwiTFlEXCIsXG4gICAgXCJNQURcIixcbiAgICBcIk1ETFwiLFxuICAgIFwiTUdBXCIsXG4gICAgXCJNS0RcIixcbiAgICBcIk1NS1wiLFxuICAgIFwiTU5UXCIsXG4gICAgXCJNT1BcIixcbiAgICBcIk1ST1wiLFxuICAgIFwiTVVSXCIsXG4gICAgXCJNVlJcIixcbiAgICBcIk1XS1wiLFxuICAgIFwiTVhOXCIsXG4gICAgXCJNWFZcIixcbiAgICBcIk1ZUlwiLFxuICAgIFwiTVpOXCIsXG4gICAgXCJOQURcIixcbiAgICBcIk5HTlwiLFxuICAgIFwiTklPXCIsXG4gICAgXCJOT0tcIixcbiAgICBcIk5QUlwiLFxuICAgIFwiTlpEXCIsXG4gICAgXCJPTVJcIixcbiAgICBcIlBBQlwiLFxuICAgIFwiUEVOXCIsXG4gICAgXCJQR0tcIixcbiAgICBcIlBIUFwiLFxuICAgIFwiUEtSXCIsXG4gICAgXCJQTE5cIixcbiAgICBcIlBZR1wiLFxuICAgIFwiUUFSXCIsXG4gICAgXCJST05cIixcbiAgICBcIlJTRFwiLFxuICAgIFwiUlVCXCIsXG4gICAgXCJSV0ZcIixcbiAgICBcIlNBUlwiLFxuICAgIFwiU0JEXCIsXG4gICAgXCJTQ1JcIixcbiAgICBcIlNER1wiLFxuICAgIFwiU0VLXCIsXG4gICAgXCJTR0RcIixcbiAgICBcIlNIUFwiLFxuICAgIFwiU0xMXCIsXG4gICAgXCJTT1NcIixcbiAgICBcIlNSRFwiLFxuICAgIFwiU1NQXCIsXG4gICAgXCJTVERcIixcbiAgICBcIlNWQ1wiLFxuICAgIFwiU1lQXCIsXG4gICAgXCJTWkxcIixcbiAgICBcIlRIQlwiLFxuICAgIFwiVEpTXCIsXG4gICAgXCJUTVRcIixcbiAgICBcIlRORFwiLFxuICAgIFwiVE9QXCIsXG4gICAgXCJUUllcIixcbiAgICBcIlRURFwiLFxuICAgIFwiVFdEXCIsXG4gICAgXCJUWlNcIixcbiAgICBcIlVBSFwiLFxuICAgIFwiVUdYXCIsXG4gICAgXCJVU0RcIixcbiAgICBcIlVTTlwiLFxuICAgIFwiVVlJXCIsXG4gICAgXCJVWVVcIixcbiAgICBcIlVaU1wiLFxuICAgIFwiVkVGXCIsXG4gICAgXCJWTkRcIixcbiAgICBcIlZVVlwiLFxuICAgIFwiV1NUXCIsXG4gICAgXCJYQUZcIixcbiAgICBcIlhBR1wiLFxuICAgIFwiWEFVXCIsXG4gICAgXCJYQkFcIixcbiAgICBcIlhCQlwiLFxuICAgIFwiWEJDXCIsXG4gICAgXCJYQkRcIixcbiAgICBcIlhDRFwiLFxuICAgIFwiWERSXCIsXG4gICAgXCJYT0ZcIixcbiAgICBcIlhQRFwiLFxuICAgIFwiWFBGXCIsXG4gICAgXCJYUFRcIixcbiAgICBcIlhTVVwiLFxuICAgIFwiWFRTXCIsXG4gICAgXCJYVUFcIixcbiAgICBcIlhYWFwiLFxuICAgIFwiWUVSXCIsXG4gICAgXCJaQVJcIixcbiAgICBcIlpNV1wiLFxuICAgIFwiWldMXCJcbiAgXTtcbn1cblxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJleHByZXNzaW9uXCIsXG4gIFtcbiAgICBcImV4cHJlc3Npb246ZXhwcmVzc2lvblwiLFxuICAgIHsgbmFtZTogXCJmb3JtYXRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0Zvcm1hdFwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJkaXNwbGF5U3R5bGVcIixcbiAgICAgIGRlZmF1bHQ6IFwibm9uZVwiLFxuICAgICAgY2hvaWNlczogW1wibm9uZVwiLCBcImRlY2ltYWxcIiwgXCJjdXJyZW5jeVwiLCBcInBlcmNlbnRcIiwgXCJkYXRlXCJdXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImN1cnJlbmN5XCIsXG4gICAgICBjaG9pY2VzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBnZXRDdXJyZWN5Q29kZXMoKTtcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0OiBcIlVTRFwiXG4gICAgfSxcbiAgICB7IG5hbWU6IFwibWF4aW11bUZyYWN0aW9uRGlnaXRzOm51bWJlclwiLCBkZWZhdWx0OiAtMSB9LFxuICAgIHsgbmFtZTogXCJtaW5pbXVtRnJhY3Rpb25EaWdpdHM6bnVtYmVyXCIsIGRlZmF1bHQ6IC0xIH0sXG4gICAgeyBuYW1lOiBcInVzZUdyb3VwaW5nOmJvb2xlYW5cIiwgZGVmYXVsdDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogXCJjb21tZW50VGV4dFwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJlbmFibGVJZlwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJpc1JlcXVpcmVkXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcInJlYWRPbmx5XCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcInJlcXVpcmVkRXJyb3JUZXh0XCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcInZhbGlkYXRvcnNcIiwgdmlzaWJsZTogZmFsc2UgfSxcbiAgICB7IG5hbWU6IFwiZGVmYXVsdFZhbHVlXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcImNvcnJlY3RBbnN3ZXJcIiwgdmlzaWJsZTogZmFsc2UgfSxcbiAgICB7IG5hbWU6IFwicmVxdWlyZWRJZlwiLCB2aXNpYmxlOiBmYWxzZSB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25FeHByZXNzaW9uTW9kZWwoXCJcIik7XG4gIH0sXG4gIFwicXVlc3Rpb25cIlxuKTtcblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwiZXhwcmVzc2lvblwiLCBuYW1lID0+IHtcbiAgcmV0dXJuIG5ldyBRdWVzdGlvbkV4cHJlc3Npb25Nb2RlbChuYW1lKTtcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX2V4cHJlc3Npb24udHMiLCJpbXBvcnQgeyBRdWVzdGlvbkZhY3RvcnkgfSBmcm9tIFwiLi9xdWVzdGlvbmZhY3RvcnlcIjtcbmltcG9ydCB7IFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBMb2NhbGl6YWJsZVN0cmluZyB9IGZyb20gXCIuL2xvY2FsaXphYmxlc3RyaW5nXCI7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgRW1haWxWYWxpZGF0b3IsIFN1cnZleVZhbGlkYXRvciB9IGZyb20gXCIuL3ZhbGlkYXRvclwiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGFuIGlucHV0IHRleHQgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVzdGlvblRleHRNb2RlbCBleHRlbmRzIFF1ZXN0aW9uIHtcbiAgY29uc3RydWN0b3IocHVibGljIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKG5hbWUpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJwbGFjZUhvbGRlclwiLCB0aGlzKTtcbiAgfVxuICBwcm90ZWN0ZWQgaXNUZXh0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRUeXBlID09IFwidGV4dFwiO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwidGV4dFwiO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgaW5wdXQgdHlwZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5wdXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImlucHV0VHlwZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlucHV0VHlwZSh2YWw6IHN0cmluZykge1xuICAgIHZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICh2YWwgPT0gXCJkYXRldGltZV9sb2NhbFwiKSB2YWwgPSBcImRhdGV0aW1lLWxvY2FsXCI7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaW5wdXRUeXBlXCIsIHZhbC50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuICBwdWJsaWMgZ2V0VmFsaWRhdG9ycygpOiBBcnJheTxTdXJ2ZXlWYWxpZGF0b3I+IHtcbiAgICB2YXIgdmFsaWRhdG9ycyA9IHN1cGVyLmdldFZhbGlkYXRvcnMoKTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmlucHV0VHlwZSA9PT0gXCJlbWFpbFwiICYmXG4gICAgICAhdGhpcy52YWxpZGF0b3JzLnNvbWUodiA9PiB2LmdldFR5cGUoKSA9PT0gXCJlbWFpbHZhbGlkYXRvclwiKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKG5ldyBFbWFpbFZhbGlkYXRvcigpKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cbiAgaXNMYXlvdXRUeXBlU3VwcG9ydGVkKGxheW91dFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbWF4aW1pbSB0ZXh0IGxlbmd0aC4gSWYgaXQgaXMgLTEsIGRlZmF1bCB2YWx1ZSwgdGhlbiB0aGUgc3VydmV5IG1heFRleHRMZW5ndGggcHJvcGVydHkgd2lsbCBiZSB1c2VkLlxuICAgKiBJZiBpdCBpcyAwLCB0aGVuIHRoZSB2YWx1ZSBpcyB1bmxpbWl0ZWRcbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC5tYXhUZXh0TGVuZ3RoXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1heExlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJtYXhMZW5ndGhcIik7XG4gIH1cbiAgcHVibGljIHNldCBtYXhMZW5ndGgodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJtYXhMZW5ndGhcIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0TWF4TGVuZ3RoKCk6IGFueSB7XG4gICAgcmV0dXJuIEhlbHBlcnMuZ2V0TWF4TGVuZ3RoKFxuICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICB0aGlzLnN1cnZleSA/IHRoaXMuc3VydmV5Lm1heFRleHRMZW5ndGggOiAtMVxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IGlucHV0IHNpemVcbiAgICovXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaXplXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2l6ZSh2YWw6IG51bWJlcikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNpemVcIiwgdmFsKTtcbiAgfVxuICBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5pc0VtcHR5KCkgfHwgdGhpcy52YWx1ZSA9PT0gXCJcIjtcbiAgfVxuICBzdXBwb3J0R29OZXh0UGFnZUF1dG9tYXRpYygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogVGhlIGlucHV0IHBsYWNlIGhvbGRlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGxhY2VIb2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJwbGFjZUhvbGRlclwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHBsYWNlSG9sZGVyKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJwbGFjZUhvbGRlclwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NQbGFjZUhvbGRlcigpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJwbGFjZUhvbGRlclwiKTtcbiAgfVxuICBwcm90ZWN0ZWQgc2V0TmV3VmFsdWUobmV3VmFsdWU6IGFueSkge1xuICAgIG5ld1ZhbHVlID0gdGhpcy5jb3JyZWN0VmFsdWVUeXBlKG5ld1ZhbHVlKTtcbiAgICBzdXBlci5zZXROZXdWYWx1ZShuZXdWYWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGNvcnJlY3RWYWx1ZVR5cGUobmV3VmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKCFuZXdWYWx1ZSkgcmV0dXJuIG5ld1ZhbHVlO1xuICAgIGlmICh0aGlzLmlucHV0VHlwZSA9PSBcIm51bWJlclwiIHx8IHRoaXMuaW5wdXRUeXBlID09IFwicmFuZ2VcIikge1xuICAgICAgcmV0dXJuIEhlbHBlcnMuaXNOdW1iZXIobmV3VmFsdWUpID8gcGFyc2VGbG9hdChuZXdWYWx1ZSkgOiBcIlwiO1xuICAgIH1cbiAgICByZXR1cm4gbmV3VmFsdWU7XG4gIH1cbn1cblxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJ0ZXh0XCIsXG4gIFtcbiAgICB7XG4gICAgICBuYW1lOiBcImlucHV0VHlwZVwiLFxuICAgICAgZGVmYXVsdDogXCJ0ZXh0XCIsXG4gICAgICBjaG9pY2VzOiBbXG4gICAgICAgIFwiY29sb3JcIixcbiAgICAgICAgXCJkYXRlXCIsXG4gICAgICAgIFwiZGF0ZXRpbWVcIixcbiAgICAgICAgXCJkYXRldGltZS1sb2NhbFwiLFxuICAgICAgICBcImVtYWlsXCIsXG4gICAgICAgIFwibW9udGhcIixcbiAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgXCJwYXNzd29yZFwiLFxuICAgICAgICBcInJhbmdlXCIsXG4gICAgICAgIFwidGVsXCIsXG4gICAgICAgIFwidGV4dFwiLFxuICAgICAgICBcInRpbWVcIixcbiAgICAgICAgXCJ1cmxcIixcbiAgICAgICAgXCJ3ZWVrXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIHsgbmFtZTogXCJzaXplOm51bWJlclwiLCBkZWZhdWx0OiAyNSB9LFxuICAgIHsgbmFtZTogXCJtYXhMZW5ndGg6bnVtYmVyXCIsIGRlZmF1bHQ6IC0xIH0sXG4gICAgeyBuYW1lOiBcInBsYWNlSG9sZGVyXCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NQbGFjZUhvbGRlclwiIH1cbiAgXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBRdWVzdGlvblRleHRNb2RlbChcIlwiKTtcbiAgfSxcbiAgXCJxdWVzdGlvblwiXG4pO1xuXG5RdWVzdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJRdWVzdGlvbihcInRleHRcIiwgbmFtZSA9PiB7XG4gIHJldHVybiBuZXcgUXVlc3Rpb25UZXh0TW9kZWwobmFtZSk7XG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9xdWVzdGlvbl90ZXh0LnRzIiwiaW1wb3J0IHsgUXVlc3Rpb24sIElDb25kaXRpb25PYmplY3QgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IFN1cnZleUVycm9yIH0gZnJvbSBcIi4vYmFzZVwiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIG5vbiB2YWx1ZSBxdWVzdGlvbi4gVGhpcyBxdWVzdGlvbiBkb2Vzbid0IGFkZCBhbnkgbmV3IGZ1bmN0aW9uYWxpdHkuIEl0IGhpZGVzIHNvbWUgcHJvcGVydGllcywgaW5jbHVkaW5nIHRoZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uTm9uVmFsdWUgZXh0ZW5kcyBRdWVzdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIm5vbnZhbHVlXCI7XG4gIH1cbiAgcHVibGljIGdldCBoYXNJbnB1dCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldCBoYXNUaXRsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldFRpdGxlTG9jYXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc0NvbW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBnZXRBbGxFcnJvcnMoKTogQXJyYXk8U3VydmV5RXJyb3I+IHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcHVibGljIHN1cHBvcnRHb05leHRQYWdlQXV0b21hdGljKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgYWRkQ29uZGl0aW9uTmFtZXMobmFtZXM6IEFycmF5PHN0cmluZz4pIHt9XG4gIHB1YmxpYyBhZGRDb25kaXRpb25PYmplY3RzQnlDb250ZXh0KFxuICAgIG9iamVjdHM6IEFycmF5PElDb25kaXRpb25PYmplY3Q+LFxuICAgIGNvbnRleHQ6IGFueVxuICApIHt9XG4gIHB1YmxpYyBnZXRDb25kaXRpb25Kc29uKG9wZXJhdG9yOiBzdHJpbmcgPSBudWxsLCBwYXRoOiBzdHJpbmcgPSBudWxsKTogYW55IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJub252YWx1ZVwiLFxuICBbXG4gICAgeyBuYW1lOiBcInRpdGxlXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcImRlc2NyaXB0aW9uXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcInZhbHVlTmFtZVwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJlbmFibGVJZlwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJkZWZhdWx0VmFsdWVcIiwgdmlzaWJsZTogZmFsc2UgfSxcbiAgICB7IG5hbWU6IFwiY29ycmVjdEFuc3dlclwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJpc1JlcXVpcmVkXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcInJlcXVpcmVkRXJyb3JUZXh0XCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcInJlYWRPbmx5XCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcInJlcXVpcmVkSWZcIiwgdmlzaWJsZTogZmFsc2UgfSxcbiAgICB7IG5hbWU6IFwidmFsaWRhdG9yc1wiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJ0aXRsZUxvY2F0aW9uXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcInVzZURpc3BsYXlWYWx1ZXNJblRpdGxlXCIsIHZpc2libGU6IGZhbHNlIH1cbiAgXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBRdWVzdGlvbk5vblZhbHVlKFwiXCIpO1xuICB9LFxuICBcInF1ZXN0aW9uXCJcbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVlc3Rpb25ub252YWx1ZS50cyIsImltcG9ydCB7IEJhc2UgfSBmcm9tIFwiLi9iYXNlXCI7XG5pbXBvcnQgeyBTdXJ2ZXlNb2RlbCB9IGZyb20gXCIuL3N1cnZleVwiO1xuaW1wb3J0IHsgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGEgc3VydmV5IHJ1bm5pbmcgaW4gdGhlIFdpbmRvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1cnZleVdpbmRvd01vZGVsIGV4dGVuZHMgQmFzZSB7XG4gIHB1YmxpYyBzdGF0aWMgc3VydmV5RWxlbWVudE5hbWUgPSBcIndpbmRvd1N1cnZleUpTXCI7XG4gIHN1cnZleVZhbHVlOiBTdXJ2ZXlNb2RlbDtcbiAgd2luZG93RWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG5cbiAgdGVtcGxhdGVWYWx1ZTogc3RyaW5nO1xuICBleHBhbmRlZENoYW5nZWRDYWxsYmFjazogKCkgPT4gdm9pZDtcbiAgc2hvd2luZ0NoYW5nZWRDYWxsYmFjazogKCkgPT4gdm9pZDtcbiAgY2xvc2VXaW5kb3dPbkNvbXBsZXRlQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoanNvbk9iajogYW55LCBpbml0aWFsTW9kZWw6IFN1cnZleU1vZGVsID0gbnVsbCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKGluaXRpYWxNb2RlbCkge1xuICAgICAgdGhpcy5zdXJ2ZXlWYWx1ZSA9IGluaXRpYWxNb2RlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXJ2ZXlWYWx1ZSA9IHRoaXMuY3JlYXRlU3VydmV5KGpzb25PYmopO1xuICAgIH1cbiAgICB0aGlzLnN1cnZleVZhbHVlLnNob3dUaXRsZSA9IGZhbHNlO1xuICAgIGlmIChcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgZG9jdW1lbnQpIHtcbiAgICAgIHRoaXMud2luZG93RWxlbWVudCA9IDxIVE1MRGl2RWxlbWVudD5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIH1cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5zdXJ2ZXkub25Db21wbGV0ZS5hZGQoZnVuY3Rpb24oc3VydmV5LCBvcHRpb25zKSB7XG4gICAgICBzZWxmLm9uU3VydmV5Q29tcGxldGUoKTtcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIndpbmRvd1wiO1xuICB9XG4gIC8qKlxuICAgKiBBIHN1cnZleSBvYmplY3QuXG4gICAqIEBzZWUgU3VydmV5TW9kZWxcbiAgICovXG4gIHB1YmxpYyBnZXQgc3VydmV5KCk6IFN1cnZleU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXlWYWx1ZTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgdmFsdWUgdG8gbmVnYXRpdmUgdmFsdWUsIGZvciBleGFtcGxlIC0xLCB0byBhdm9pZCBjbG9zaW5nIHRoZSB3aW5kb3cgb24gY29tcGxldGluZyB0aGUgc3VydmV5LiBMZWF2ZSBpdCBlcXVhbHMgdG8gMCAoZGVmYXVsdCB2YWx1ZSkgdG8gY2xvc2UgdGhlIHdpbmRvdyBpbW1lZGlhdGVseSwgb3Igc2V0IGl0IHRvIDMsIDUsIDEwLCAuLi4gdG8gY2xvc2UgdGhlIHdpbmRvdyBpbiAzLCA1LCAxMCBzZWNvbmRzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlT25Db21wbGV0ZVRpbWVvdXQ6IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHdpbmRvdyBpcyBjdXJyZW50bHkgc2hvd2luZy4gU2V0IGl0IHRvIHRydWUgdG8gc2hvdyB0aGUgd2luZG93IGFuZCBmYWxzZSB0byBoaWRlIGl0LlxuICAgKiBAc2VlIHNob3dcbiAgICogQHNlZSBoaWRlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzU2hvd2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaXNTaG93aW5nXCIsIGZhbHNlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzU2hvd2luZyh2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pc1Nob3dpbmcgPT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaXNTaG93aW5nXCIsIHZhbCk7XG4gICAgaWYgKHRoaXMuc2hvd2luZ0NoYW5nZWRDYWxsYmFjaykgdGhpcy5zaG93aW5nQ2hhbmdlZENhbGxiYWNrKCk7XG4gIH1cbiAgLyoqXG4gICAqIFNob3cgdGhlIHdpbmRvd1xuICAgKiBAc2VlIGhpZGVcbiAgICogQHNlZSBpc1Nob3dpbmdcbiAgICovXG4gIHB1YmxpYyBzaG93KCkge1xuICAgIHRoaXMuaXNTaG93aW5nID0gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogSGlkZSB0aGUgd2luZG93XG4gICAqIEBzZWUgc2hvd1xuICAgKiBAc2VlIGlzU2hvd2luZ1xuICAgKi9cbiAgcHVibGljIGhpZGUoKSB7XG4gICAgdGhpcy5pc1Nob3dpbmcgPSBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB3aW5kb3cgaXMgZXhwYW5kZWQuIFNldCBpdCB0byB0cnVlIHRvIGV4cGFuZCB0aGUgd2luZG93IG9yIGZhbHNlIHRvIGNvbGxhcHNlIGl0LlxuICAgKiBAc2VlIGV4cGFuZFxuICAgKiBAc2VlIGNvbGxhcHNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImlzRXhwYW5kZWRcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNFeHBhbmRlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpc0V4cGFuZGVkXCIsIHZhbCk7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGluZ0Zyb21Kc29uICYmIHRoaXMuZXhwYW5kZWRDaGFuZ2VkQ2FsbGJhY2spXG4gICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlZENhbGxiYWNrKCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSB3aW5kb3cgYW5kIHN1cnZleSB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkudGl0bGU7XG4gIH1cbiAgcHVibGljIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdXJ2ZXkudGl0bGUgPSB2YWx1ZTtcbiAgfVxuICBnZXQgbG9jVGl0bGUoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN1cnZleS5sb2NUaXRsZTtcbiAgfVxuICAvKipcbiAgICogRXhwYW5kIHRoZSB3aW5kb3cgdG8gc2hvdyB0aGUgc3VydmV5LlxuICAgKi9cbiAgcHVibGljIGV4cGFuZCgpIHtcbiAgICB0aGlzLmV4cGFuZGNvbGxhcHNlKHRydWUpO1xuICB9XG4gIC8qKlxuICAgKiBDb2xsYXBzZSB0aGUgd2luZG93IGFuZCBzaG93IHN1cnZleSB0aXRsZSBvbmx5LlxuICAgKi9cbiAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgIHRoaXMuZXhwYW5kY29sbGFwc2UoZmFsc2UpO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVTdXJ2ZXkoanNvbk9iajogYW55KTogU3VydmV5TW9kZWwge1xuICAgIHJldHVybiBuZXcgU3VydmV5TW9kZWwoanNvbk9iaik7XG4gIH1cbiAgcHJvdGVjdGVkIGV4cGFuZGNvbGxhcHNlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc0V4cGFuZGVkID0gdmFsdWU7XG4gIH1cbiAgcHJvdGVjdGVkIG9uU3VydmV5Q29tcGxldGUoKSB7XG4gICAgaWYgKHRoaXMuY2xvc2VPbkNvbXBsZXRlVGltZW91dCA8IDApIHJldHVybjtcbiAgICBpZiAodGhpcy5jbG9zZU9uQ29tcGxldGVUaW1lb3V0ID09IDApIHtcbiAgICAgIHRoaXMuY2xvc2VXaW5kb3dPbkNvbXBsZXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIHZhciB0aW1lcklkOiBhbnkgPSBudWxsO1xuICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5jbG9zZVdpbmRvd09uQ29tcGxldGUoKTtcbiAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXJJZCk7XG4gICAgICB9O1xuICAgICAgdGltZXJJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jLCB0aGlzLmNsb3NlT25Db21wbGV0ZVRpbWVvdXQgKiAxMDAwKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGNsb3NlV2luZG93T25Db21wbGV0ZSgpIHtcbiAgICBpZiAoISF0aGlzLmNsb3NlV2luZG93T25Db21wbGV0ZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLmNsb3NlV2luZG93T25Db21wbGV0ZUNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc3VydmV5V2luZG93LnRzIiwiaW1wb3J0IHsgRXZlbnQgfSBmcm9tIFwiLi9iYXNlXCI7XG5cbmV4cG9ydCB2YXIgc3VydmV5VGltZXJGdW5jdGlvbnMgPSB7XG4gIHNldFRpbWVvdXQ6IGZ1bmN0aW9uKGZ1bmM6ICgpID0+IGFueSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmMsIDEwMDApO1xuICB9LFxuICBjbGVhclRpbWVvdXQ6IGZ1bmN0aW9uKHRpbWVySWQ6IG51bWJlcikge1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJJZCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlUaW1lciB7XG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlVmFsdWU6IFN1cnZleVRpbWVyID0gbnVsbDtcbiAgcHVibGljIHN0YXRpYyBnZXQgaW5zdGFuY2UoKSB7XG4gICAgaWYgKCFTdXJ2ZXlUaW1lci5pbnN0YW5jZVZhbHVlKSB7XG4gICAgICBTdXJ2ZXlUaW1lci5pbnN0YW5jZVZhbHVlID0gbmV3IFN1cnZleVRpbWVyKCk7XG4gICAgfVxuICAgIHJldHVybiBTdXJ2ZXlUaW1lci5pbnN0YW5jZVZhbHVlO1xuICB9XG4gIHByaXZhdGUgbGlzdGVuZXJDb3VudGVyID0gMDtcbiAgcHJpdmF0ZSB0aW1lcklkID0gLTE7XG4gIHB1YmxpYyBvblRpbWVyOiBFdmVudDwoKSA9PiBhbnksIGFueT4gPSBuZXcgRXZlbnQ8KCkgPT4gYW55LCBhbnk+KCk7XG4gIHB1YmxpYyBzdGFydChmdW5jOiAoKSA9PiBhbnkgPSBudWxsKSB7XG4gICAgaWYgKGZ1bmMpIHtcbiAgICAgIHRoaXMub25UaW1lci5hZGQoZnVuYyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRpbWVySWQgPCAwKSB7XG4gICAgICB0aGlzLnRpbWVySWQgPSBzdXJ2ZXlUaW1lckZ1bmN0aW9ucy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5kb1RpbWVyKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5saXN0ZW5lckNvdW50ZXIrKztcbiAgfVxuICBwdWJsaWMgc3RvcChmdW5jOiAoKSA9PiBhbnkgPSBudWxsKSB7XG4gICAgaWYgKGZ1bmMpIHtcbiAgICAgIHRoaXMub25UaW1lci5yZW1vdmUoZnVuYyk7XG4gICAgfVxuICAgIHRoaXMubGlzdGVuZXJDb3VudGVyLS07XG4gICAgaWYgKHRoaXMubGlzdGVuZXJDb3VudGVyID09IDAgJiYgdGhpcy50aW1lcklkID4gLTEpIHtcbiAgICAgIHN1cnZleVRpbWVyRnVuY3Rpb25zLmNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQpO1xuICAgICAgdGhpcy50aW1lcklkID0gLTE7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBkb1RpbWVyKCkge1xuICAgIGlmICh0aGlzLnRpbWVySWQgPCAwKSByZXR1cm47XG4gICAgdGhpcy5vblRpbWVyLmZpcmUodGhpcywge30pO1xuICAgIHRoaXMudGltZXJJZCA9IHN1cnZleVRpbWVyRnVuY3Rpb25zLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kb1RpbWVyKCk7XG4gICAgfSk7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zdXJ2ZXl0aW1lci50cyIsImltcG9ydCB7IHN1cnZleUNzcyB9IGZyb20gXCIuL2Nzc3N0YW5kYXJkXCI7XG5cbmV4cG9ydCB2YXIgZGVmYXVsdEJvb3RzdHJhcENzcyA9IHtcbiAgcm9vdDogXCJzdl9tYWluIHN2X2Jvb3RzdHJhcF9jc3NcIixcbiAgY29udGFpbmVyOiBcInN2X2NvbnRhaW5lclwiLFxuICBoZWFkZXI6IFwicGFuZWwtaGVhZGluZyBjYXJkLWhlYWRlclwiLFxuICBib2R5OiBcInBhbmVsLWJvZHkgY2FyZC1ibG9jayBtdC00XCIsXG4gIGJvZHlFbXB0eTogXCJwYW5lbC1ib2R5IGNhcmQtYmxvY2sgbXQtNCBzdl9ib2R5X2VtcHR5XCIsXG4gIGZvb3RlcjogXCJwYW5lbC1mb290ZXIgY2FyZC1mb290ZXJcIixcbiAgdGl0bGU6IFwiXCIsXG4gIGRlc2NyaXB0aW9uOiBcIlwiLFxuICBuYXZpZ2F0aW9uQnV0dG9uOiBcIlwiLFxuICBjb21wbGV0ZWRQYWdlOiBcIlwiLFxuICBuYXZpZ2F0aW9uOiB7XG4gICAgY29tcGxldGU6IFwiYnRuIHN2X2NvbXBsZXRlX2J0blwiLFxuICAgIHByZXY6IFwiYnRuIHN2X3ByZXZfYnRuXCIsXG4gICAgbmV4dDogXCJidG4gc3ZfbmV4dF9idG5cIixcbiAgICBzdGFydDogXCJidG4gc3Zfc3RhcnRfYnRuXCJcbiAgfSxcbiAgcHJvZ3Jlc3M6IFwicHJvZ3Jlc3MgY2VudGVyLWJsb2NrIG14LWF1dG8gbWItNFwiLFxuICBwcm9ncmVzc0JhcjogXCJwcm9ncmVzcy1iYXJcIixcbiAgcHJvZ3Jlc3NUZXh0VW5kZXJCYXI6IFwic3YtaGlkZGVuXCIsXG4gIHBhZ2U6IHtcbiAgICByb290OiBcIlwiLFxuICAgIHRpdGxlOiBcIlwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlwiXG4gIH0sXG4gIHBhZ2VUaXRsZTogXCJcIixcbiAgcGFnZURlc2NyaXB0aW9uOiBcInNtYWxsXCIsXG4gIHJvdzogXCJzdl9yb3dcIixcbiAgcXVlc3Rpb246IHtcbiAgICBtYWluUm9vdDogXCJzdl9xc3RuXCIsXG4gICAgZmxvd1Jvb3Q6IFwic3ZfcV9mbG93IHN2X3FzdG5cIixcbiAgICBoZWFkZXI6IFwiXCIsXG4gICAgaGVhZGVyTGVmdDogXCJ0aXRsZS1sZWZ0XCIsXG4gICAgY29udGVudDogXCJcIixcbiAgICBjb250ZW50TGVmdDogXCJjb250ZW50LWxlZnRcIixcbiAgICB0aXRsZUxlZnRSb290OiBcInN2X3FzdG5fbGVmdFwiLFxuICAgIHRpdGxlOiBcIlwiLFxuICAgIG51bWJlcjogXCJzdl9xX251bVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcInNtYWxsXCIsXG4gICAgZGVzY3JpcHRpb25VbmRlcklucHV0OiBcInNtYWxsXCIsXG4gICAgcmVxdWlyZWRUZXh0OiBcInN2X3FfcmVxdWlyZWRfdGV4dFwiLFxuICAgIGNvbW1lbnQ6IFwiZm9ybS1jb250cm9sXCIsXG4gICAgcmVxdWlyZWQ6IFwiXCIsXG4gICAgdGl0bGVSZXF1aXJlZDogXCJcIixcbiAgICBoYXNFcnJvcjogXCJoYXMtZXJyb3JcIixcbiAgICBpbmRlbnQ6IDIwLFxuICAgIGZvcm1Hcm91cDogXCJmb3JtLWdyb3VwXCJcbiAgfSxcbiAgcGFuZWw6IHtcbiAgICB0aXRsZTogXCJzdl9wX3RpdGxlXCIsXG4gICAgdGl0bGVFeHBhbmRhYmxlOiBcInN2X3BfdGl0bGVfZXhwYW5kYWJsZVwiLFxuICAgIGljb246IFwic3ZfcGFuZWxfaWNvblwiLFxuICAgIGljb25FeHBhbmRlZDogXCJzdl9leHBhbmRlZFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcInNtYWxsIHN2X3BfZGVzY3JpcHRpb25cIixcbiAgICBjb250YWluZXI6IFwic3ZfcF9jb250YWluZXJcIlxuICB9LFxuICBlcnJvcjoge1xuICAgIHJvb3Q6IFwiYWxlcnQgYWxlcnQtZGFuZ2VyXCIsXG4gICAgaWNvbjogXCJnbHlwaGljb24gZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ25cIixcbiAgICBpdGVtOiBcIlwiLFxuICAgIGxvY2F0aW9uVG9wOiBcInN2X3FzdG5fZXJyb3JfdG9wXCIsXG4gICAgbG9jYXRpb25Cb3R0b206IFwic3ZfcXN0bl9lcnJvcl9ib3R0b21cIlxuICB9LFxuICBib29sZWFuOiB7XG4gICAgcm9vdDogXCJzdl9xYmxuIGZvcm0taW5saW5lIGNoZWNrYm94XCIsXG4gICAgaXRlbTogXCJzdi1ib29sZWFuXCIsXG4gICAgY29udHJvbDogXCJzdi12aXN1YWxseWhpZGRlblwiLFxuICAgIGl0ZW1DaGVja2VkOiBcInN2LWJvb2xlYW4tLWNoZWNrZWQgY2hlY2tlZFwiLFxuICAgIGl0ZW1JbmRldGVybWluYXRlOiBcInN2LWJvb2xlYW4tLWluZGV0ZXJtaW5hdGVcIixcbiAgICBpdGVtRGlzYWJsZWQ6IFwic3YtYm9vbGVhbi0tZGlzYWJsZWRcIixcbiAgICBzd2l0Y2g6IFwic3YtYm9vbGVhbl9fc3dpdGNoXCIsXG4gICAgc2xpZGVyOiBcInN2LWJvb2xlYW5fX3NsaWRlclwiLFxuICAgIGxhYmVsOiBcInN2LWJvb2xlYW5fX2xhYmVsIFwiLFxuICAgIGRpc2FibGVkTGFiZWw6IFwic3YtYm9vbGVhbl9fbGFiZWwtLWRpc2FibGVkXCJcbiAgfSxcbiAgY2hlY2tib3g6IHtcbiAgICByb290OiBcInN2X3FjYmMgc3ZfcWNieCBmb3JtLWlubGluZVwiLFxuICAgIGl0ZW06IFwiY2hlY2tib3hcIixcbiAgICBpdGVtQ2hlY2tlZDogXCJjaGVja2VkXCIsXG4gICAgaXRlbUlubGluZTogXCJzdl9xX2NoZWNrYm94X2lubGluZVwiLFxuICAgIGl0ZW1Db250cm9sOiBcIlwiLFxuICAgIGl0ZW1EZWNvcmF0b3I6IFwic3YtaGlkZGVuXCIsXG4gICAgbGFiZWw6IFwiXCIsXG4gICAgbGFiZWxDaGVja2VkOiBcIlwiLFxuICAgIGNvbnRyb2xMYWJlbDogXCJcIixcbiAgICBtYXRlcmlhbERlY29yYXRvcjogXCJjaGVja2JveC1tYXRlcmlhbFwiLFxuICAgIG90aGVyOiBcInN2X3FfY2hlY2tib3hfb3RoZXIgZm9ybS1jb250cm9sXCIsXG4gICAgY29sdW1uOiBcInN2X3Ffc2VsZWN0X2NvbHVtblwiXG4gIH0sXG4gIGNvbW1lbnQ6IFwiZm9ybS1jb250cm9sXCIsXG4gIGRyb3Bkb3duOiB7XG4gICAgcm9vdDogXCJcIixcbiAgICBjb250cm9sOiBcImZvcm0tY29udHJvbFwiLFxuICAgIG90aGVyOiBcInN2X3FfZGRfb3RoZXIgZm9ybS1jb250cm9sXCJcbiAgfSxcbiAgaHRtbDogeyByb290OiBcIlwiIH0sXG4gIG1hdHJpeDoge1xuICAgIHJvb3Q6IFwidGFibGUgc3ZfcV9tYXRyaXhcIixcbiAgICBsYWJlbDogXCJzdl9xX21fbGFiZWxcIixcbiAgICBpdGVtQ2hlY2tlZDogXCJjaGVja2VkXCIsXG4gICAgaXRlbURlY29yYXRvcjogXCJzdi1oaWRkZW5cIixcbiAgICBjZWxsVGV4dDogXCJzdl9xX21fY2VsbF90ZXh0XCIsXG4gICAgY2VsbFRleHRTZWxlY3RlZDogXCJzdl9xX21fY2VsbF9zZWxlY3RlZCBiZy1wcmltYXJ5XCIsXG4gICAgY2VsbExhYmVsOiBcInN2X3FfbV9jZWxsX2xhYmVsXCJcbiAgfSxcbiAgbWF0cml4ZHJvcGRvd246IHsgcm9vdDogXCJ0YWJsZVwiIH0sXG4gIG1hdHJpeGR5bmFtaWM6IHtcbiAgICByb290OiBcInRhYmxlXCIsXG4gICAgYnV0dG9uOiBcImJ1dHRvblwiLFxuICAgIGJ1dHRvbkFkZDogXCJcIixcbiAgICBidXR0b25SZW1vdmU6IFwiXCIsXG4gICAgaWNvbkFkZDogXCJcIixcbiAgICBpY29uUmVtb3ZlOiBcIlwiXG4gIH0sXG4gIHBhbmVsZHluYW1pYzoge1xuICAgIHJvb3Q6IFwiXCIsXG4gICAgbmF2aWdhdGlvbjogXCJzdi1wYW5lbGR5bmFtaWNfX25hdmlnYXRpb25cIixcbiAgICBwcm9ncmVzc1RvcDogXCJzdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzIHN2LXBhbmVsZHluYW1pY19fcHJvZ3Jlc3MtLXRvcFwiLFxuICAgIHByb2dyZXNzQm90dG9tOlxuICAgICAgXCJzdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzIHN2LXBhbmVsZHluYW1pY19fcHJvZ3Jlc3MtLWJvdHRvbVwiLFxuICAgIHRpdGxlOiBcInN2LXRpdGxlIHN2LXF1ZXN0aW9uX190aXRsZVwiLFxuICAgIGJ1dHRvbjogXCJidXR0b25cIixcbiAgICBidXR0b25BZGQ6IFwiYnV0dG9uIHN2LXBhbmVsZHluYW1pY19fYWRkLWJ0blwiLFxuICAgIGJ1dHRvblJlbW92ZTogXCJidXR0b24gc3YtcGFuZWxkeW5hbWljX19yZW1vdmUtYnRuXCIsXG4gICAgYnV0dG9uUHJldjogXCJzdi1wYW5lbGR5bmFtaWNfX3ByZXYtYnRuXCIsXG4gICAgYnV0dG9uTmV4dDogXCJzdi1wYW5lbGR5bmFtaWNfX25leHQtYnRuXCIsXG4gICAgcHJvZ3Jlc3NDb250YWluZXI6IFwic3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcy1jb250YWluZXJcIixcbiAgICBwcm9ncmVzczogXCJzdi1wcm9ncmVzc1wiLFxuICAgIHByb2dyZXNzQmFyOiBcInN2LXByb2dyZXNzX19iYXJcIixcbiAgICBwcm9ncmVzc1RleHQ6IFwic3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcy10ZXh0XCJcbiAgfSxcbiAgbXVsdGlwbGV0ZXh0OiB7XG4gICAgcm9vdDogXCJ0YWJsZVwiLFxuICAgIGl0ZW1UaXRsZTogXCJcIixcbiAgICBpdGVtVmFsdWU6IFwic3ZfcV9tdF9pdGVtX3ZhbHVlIGZvcm0tY29udHJvbFwiXG4gIH0sXG4gIHJhZGlvZ3JvdXA6IHtcbiAgICByb290OiBcInN2X3FjYmMgZm9ybS1pbmxpbmVcIixcbiAgICBpdGVtOiBcInJhZGlvXCIsXG4gICAgaXRlbUNoZWNrZWQ6IFwiY2hlY2tlZFwiLFxuICAgIGl0ZW1JbmxpbmU6IFwic3ZfcV9yYWRpb2dyb3VwX2lubGluZVwiLFxuICAgIGxhYmVsOiBcIlwiLFxuICAgIGxhYmVsQ2hlY2tlZDogXCJcIixcbiAgICBpdGVtQ29udHJvbDogXCJcIixcbiAgICBpdGVtRGVjb3JhdG9yOiBcInN2LWhpZGRlblwiLFxuICAgIGNvbnRyb2xMYWJlbDogXCJcIixcbiAgICBtYXRlcmlhbERlY29yYXRvcjogXCJjaXJjbGVcIixcbiAgICBvdGhlcjogXCJzdl9xX3JhZGlvZ3JvdXBfb3RoZXIgZm9ybS1jb250cm9sXCIsXG4gICAgY2xlYXJCdXR0b246IFwic3ZfcV9yYWRpb2dyb3VwX2NsZWFyIGJ1dHRvblwiLFxuICAgIGNvbHVtbjogXCJzdl9xX3NlbGVjdF9jb2x1bW5cIlxuICB9LFxuICBpbWFnZXBpY2tlcjoge1xuICAgIHJvb3Q6IFwic3ZfaW1nc2VsXCIsXG4gICAgaXRlbTogXCJzdl9xX2ltZ3NlbFwiLFxuICAgIGl0ZW1DaGVja2VkOiBcImNoZWNrZWRcIixcbiAgICBpdGVtSW5saW5lOiBcInN2X3FfaW1hZ2VwaWNrZXJfaW5saW5lXCIsXG4gICAgbGFiZWw6IFwic3ZfcV9pbWdzZWxfbGFiZWxcIixcbiAgICBpdGVtQ29udHJvbDogXCJzdl9xX2ltZ3NlbF9jb250cm9sX2l0ZW1cIixcbiAgICBpbWFnZTogXCJzdl9xX2ltZ3NlbF9pbWFnZVwiLFxuICAgIGl0ZW1UZXh0OiBcInN2X3FfaW1nc2VsX3RleHRcIixcbiAgICBjbGVhckJ1dHRvbjogXCJzdl9xX3JhZGlvZ3JvdXBfY2xlYXJcIlxuICB9LFxuICByYXRpbmc6IHtcbiAgICByb290OiBcImJ0bi1ncm91cFwiLFxuICAgIGl0ZW06IFwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zZWNvbmRhcnlcIixcbiAgICBzZWxlY3RlZDogXCJhY3RpdmVcIixcbiAgICBtaW5UZXh0OiBcInN2X3FfcmF0aW5nX21pbl90ZXh0XCIsXG4gICAgaXRlbVRleHQ6IFwic3ZfcV9yYXRpbmdfaXRlbV90ZXh0XCIsXG4gICAgbWF4VGV4dDogXCJzdl9xX3JhdGluZ19tYXhfdGV4dFwiLFxuICAgIGRpc2FibGVkOiBcIlwiXG4gIH0sXG4gIHRleHQ6IFwiZm9ybS1jb250cm9sXCIsXG4gIGV4cHJlc3Npb246IFwiZm9ybS1jb250cm9sXCIsXG4gIGZpbGU6IHtcbiAgICByb290OiBcInN2X3FfZmlsZVwiLFxuICAgIHBsYWNlaG9sZGVySW5wdXQ6IFwic3ZfcV9maWxlX3BsYWNlaG9sZGVyXCIsXG4gICAgcHJldmlldzogXCJzdl9xX2ZpbGVfcHJldmlld1wiLFxuICAgIHJlbW92ZUJ1dHRvbjogXCJzdl9xX2ZpbGVfcmVtb3ZlX2J1dHRvblwiLFxuICAgIGZpbGVJbnB1dDogXCJzdl9xX2ZpbGVfaW5wdXRcIixcbiAgICByZW1vdmVGaWxlOiBcInN2X3FfZmlsZV9yZW1vdmVcIixcbiAgICByZW1vdmVGaWxlU3ZnOiBcInN2LWhpZGRlblwiLFxuICAgIGZpbGVEZWNvcmF0b3I6IFwic3YtaGlkZGVuXCIsXG4gICAgZmlsZVNpZ25Cb3R0b206IFwic3YtaGlkZGVuXCIsXG4gICAgcmVtb3ZlQnV0dG9uQm90dG9tOiBcInN2LWhpZGRlblwiXG4gIH0sXG4gIHNhdmVEYXRhOiB7XG4gICAgcm9vdDogXCJcIixcbiAgICBzYXZpbmc6IFwiYWxlcnQgYWxlcnQtaW5mb1wiLFxuICAgIGVycm9yOiBcImFsZXJ0IGFsZXJ0LWRhbmdlclwiLFxuICAgIHN1Y2Nlc3M6IFwiYWxlcnQgYWxlcnQtc3VjY2Vzc1wiLFxuICAgIHNhdmVBZ2FpbkJ1dHRvbjogXCJcIlxuICB9LFxuICB3aW5kb3c6IHtcbiAgICByb290OiBcIm1vZGFsLWNvbnRlbnRcIixcbiAgICBib2R5OiBcIm1vZGFsLWJvZHlcIixcbiAgICBoZWFkZXI6IHtcbiAgICAgIHJvb3Q6IFwibW9kYWwtaGVhZGVyIHBhbmVsLXRpdGxlXCIsXG4gICAgICB0aXRsZTogXCJwdWxsLWxlZnRcIixcbiAgICAgIGJ1dHRvbjogXCJnbHlwaGljb24gcHVsbC1yaWdodFwiLFxuICAgICAgYnV0dG9uRXhwYW5kZWQ6IFwiZ2x5cGhpY29uIHB1bGwtcmlnaHQgZ2x5cGhpY29uLWNoZXZyb24tdXBcIixcbiAgICAgIGJ1dHRvbkNvbGxhcHNlZDogXCJnbHlwaGljb24gcHVsbC1yaWdodCBnbHlwaGljb24tY2hldnJvbi1kb3duXCJcbiAgICB9XG4gIH1cbn07XG4oPGFueT5zdXJ2ZXlDc3MpW1wiYm9vdHN0cmFwXCJdID0gZGVmYXVsdEJvb3RzdHJhcENzcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9kZWZhdWx0Q3NzL2Nzc2Jvb3RzdHJhcC50cyIsImltcG9ydCB7IHN1cnZleUNzcyB9IGZyb20gXCIuL2Nzc3N0YW5kYXJkXCI7XG5cbmV4cG9ydCB2YXIgZGVmYXVsdEJvb3RzdHJhcE1hdGVyaWFsQ3NzID0ge1xuICByb290OiBcInN2X21haW4gc3ZfYm9vdHN0cmFwbWF0ZXJpYWxfY3NzXCIsXG4gIGNvbnRhaW5lcjogXCJzdl9jb250YWluZXJcIixcbiAgaGVhZGVyOiBcInBhbmVsLWhlYWRpbmdcIixcbiAgYm9keTogXCJwYW5lbC1ib2R5XCIsXG4gIGJvZHlFbXB0eTogXCJwYW5lbC1ib2R5IHN2X2JvZHlfZW1wdHlcIixcbiAgZm9vdGVyOiBcInBhbmVsLWZvb3RlclwiLFxuICB0aXRsZTogXCJcIixcbiAgZGVzY3JpcHRpb246IFwiXCIsXG4gIG5hdmlnYXRpb25CdXR0b246IFwiXCIsXG4gIGNvbXBsZXRlZFBhZ2U6IFwiXCIsXG4gIG5hdmlnYXRpb246IHtcbiAgICBjb21wbGV0ZTogXCJidG4gc3ZfY29tcGxldGVfYnRuIGJ0bi1wcmltYXJ5XCIsXG4gICAgcHJldjogXCJidG4gc3ZfcHJldl9idG4gYnRuLXByaW1hcnlcIixcbiAgICBuZXh0OiBcImJ0biBzdl9uZXh0X2J0biBidG4tcHJpbWFyeVwiLFxuICAgIHN0YXJ0OiBcImJ0biBzdl9zdGFydF9idG4gYnRuLXByaW1hcnlcIlxuICB9LFxuICBwcm9ncmVzczogXCJwcm9ncmVzcyBjZW50ZXItYmxvY2sgbXgtYXV0byBtYi00XCIsXG4gIHByb2dyZXNzQmFyOiBcInByb2dyZXNzLWJhclwiLFxuICBwcm9ncmVzc1RleHRVbmRlckJhcjogXCJzdi1oaWRkZW5cIixcbiAgcGFnZToge1xuICAgIHJvb3Q6IFwiXCIsXG4gICAgdGl0bGU6IFwiXCIsXG4gICAgZGVzY3JpcHRpb246IFwiXCJcbiAgfSxcbiAgcGFnZVRpdGxlOiBcIlwiLFxuICBwYWdlRGVzY3JpcHRpb246IFwic21hbGxcIixcbiAgcm93OiBcInN2X3Jvd1wiLFxuICBxdWVzdGlvbjoge1xuICAgIG1haW5Sb290OiBcInN2X3FzdG4gZm9ybS1ncm91cFwiLFxuICAgIGZsb3dSb290OiBcInN2X3FfZmxvdyBmb3JtLWdyb3VwXCIsXG4gICAgaGVhZGVyOiBcIlwiLFxuICAgIGhlYWRlckxlZnQ6IFwidGl0bGUtbGVmdFwiLFxuICAgIGNvbnRlbnQ6IFwiXCIsXG4gICAgY29udGVudExlZnQ6IFwiY29udGVudC1sZWZ0XCIsXG4gICAgdGl0bGVMZWZ0Um9vdDogXCJzdl9xc3RuX2xlZnRcIixcbiAgICByZXF1aXJlZFRleHQ6IFwic3ZfcV9yZXF1aXJlZF90ZXh0XCIsXG4gICAgdGl0bGU6IFwiXCIsXG4gICAgbnVtYmVyOiBcInN2X3FfbnVtXCIsXG4gICAgZGVzY3JpcHRpb246IFwic21hbGxcIixcbiAgICBkZXNjcmlwdGlvblVuZGVySW5wdXQ6IFwic21hbGxcIixcbiAgICBjb21tZW50OiBcImZvcm0tY29udHJvbFwiLFxuICAgIHJlcXVpcmVkOiBcIlwiLFxuICAgIHRpdGxlUmVxdWlyZWQ6IFwiXCIsXG4gICAgaGFzRXJyb3I6IFwiaGFzLWVycm9yXCIsXG4gICAgaW5kZW50OiAyMCxcbiAgICBmb3JtR3JvdXA6IFwiZm9ybS1ncm91cFwiXG4gIH0sXG4gIHBhbmVsOiB7XG4gICAgdGl0bGU6IFwic3ZfcF90aXRsZVwiLFxuICAgIHRpdGxlRXhwYW5kYWJsZTogXCJzdl9wX3RpdGxlX2V4cGFuZGFibGVcIixcbiAgICBpY29uOiBcInN2X3BhbmVsX2ljb25cIixcbiAgICBpY29uRXhwYW5kZWQ6IFwic3ZfZXhwYW5kZWRcIixcbiAgICBkZXNjcmlwdGlvbjogXCJzbWFsbCBzdl9wX2Rlc2NyaXB0aW9uXCIsXG4gICAgY29udGFpbmVyOiBcInN2X3BfY29udGFpbmVyXCJcbiAgfSxcbiAgZXJyb3I6IHtcbiAgICByb290OiBcImFsZXJ0IGFsZXJ0LWRhbmdlclwiLFxuICAgIGljb246IFwiZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduXCIsXG4gICAgaXRlbTogXCJcIixcbiAgICBsb2NhdGlvblRvcDogXCJzdl9xc3RuX2Vycm9yX3RvcFwiLFxuICAgIGxvY2F0aW9uQm90dG9tOiBcInN2X3FzdG5fZXJyb3JfYm90dG9tXCJcbiAgfSxcblxuICBib29sZWFuOiB7XG4gICAgcm9vdDogXCJzdl9xYmxuIGZvcm0taW5saW5lIGNoZWNrYm94XCIsXG4gICAgaXRlbTogXCJzdi1ib29sZWFuXCIsXG4gICAgY29udHJvbDogXCJzdi12aXN1YWxseWhpZGRlblwiLFxuICAgIGl0ZW1DaGVja2VkOiBcInN2LWJvb2xlYW4tLWNoZWNrZWQgY2hlY2tlZFwiLFxuICAgIGl0ZW1JbmRldGVybWluYXRlOiBcInN2LWJvb2xlYW4tLWluZGV0ZXJtaW5hdGVcIixcbiAgICBpdGVtRGlzYWJsZWQ6IFwic3YtYm9vbGVhbi0tZGlzYWJsZWRcIixcbiAgICBzd2l0Y2g6IFwic3YtYm9vbGVhbl9fc3dpdGNoXCIsXG4gICAgc2xpZGVyOiBcInN2LWJvb2xlYW5fX3NsaWRlclwiLFxuICAgIGxhYmVsOiBcInN2LWJvb2xlYW5fX2xhYmVsIFwiLFxuICAgIGRpc2FibGVkTGFiZWw6IFwic3YtYm9vbGVhbl9fbGFiZWwtLWRpc2FibGVkXCJcbiAgfSxcbiAgY2hlY2tib3g6IHtcbiAgICByb290OiBcInN2X3FjYnggZm9ybS1pbmxpbmVcIixcbiAgICBpdGVtOiBcImNoZWNrYm94XCIsXG4gICAgaXRlbUNoZWNrZWQ6IFwiY2hlY2tlZFwiLFxuICAgIGl0ZW1JbmxpbmU6IFwic3ZfcV9jaGVja2JveF9pbmxpbmVcIixcbiAgICBpdGVtRGVjb3JhdG9yOiBcInN2LWhpZGRlblwiLFxuICAgIGl0ZW1Db250cm9sOiBcIlwiLFxuICAgIGxhYmVsOiBcIlwiLFxuICAgIGxhYmVsQ2hlY2tlZDogXCJcIixcbiAgICBjb250cm9sTGFiZWw6IFwiXCIsXG4gICAgbWF0ZXJpYWxEZWNvcmF0b3I6IFwiY2hlY2tib3gtbWF0ZXJpYWxcIixcbiAgICBvdGhlcjogXCJzdl9xX2NoZWNrYm94X290aGVyIGZvcm0tY29udHJvbFwiLFxuICAgIGNvbHVtbjogXCJzdl9xX3NlbGVjdF9jb2x1bW5cIlxuICB9LFxuICBjb21tZW50OiBcImZvcm0tY29udHJvbFwiLFxuICBkcm9wZG93bjoge1xuICAgIHJvb3Q6IFwiXCIsXG4gICAgY29udHJvbDogXCJmb3JtLWNvbnRyb2xcIixcbiAgICBvdGhlcjogXCJzdl9xX2RkX290aGVyIGZvcm0tY29udHJvbFwiXG4gIH0sXG4gIGh0bWw6IHsgcm9vdDogXCJcIiB9LFxuICBtYXRyaXg6IHtcbiAgICByb290OiBcInRhYmxlIHN2X3FfbWF0cml4XCIsXG4gICAgcm93OiBcImZvcm0tZ3JvdXBcIixcbiAgICBsYWJlbDogXCJzdl9xX21fbGFiZWwgcmFkaW8taW5saW5lXCIsXG4gICAgY2VsbFRleHQ6IFwic3ZfcV9tX2NlbGxfdGV4dFwiLFxuICAgIGNlbGxUZXh0U2VsZWN0ZWQ6IFwic3ZfcV9tX2NlbGxfc2VsZWN0ZWQgYmctcHJpbWFyeVwiLFxuICAgIGNlbGxMYWJlbDogXCJzdl9xX21fY2VsbF9sYWJlbFwiLFxuICAgIGl0ZW1WYWx1ZTogXCJmb3JtLWNvbnRyb2xcIixcbiAgICBpdGVtQ2hlY2tlZDogXCJjaGVja2VkXCIsXG4gICAgaXRlbURlY29yYXRvcjogXCJzdi1oaWRkZW5cIlxuICB9LFxuICBtYXRyaXhkcm9wZG93bjogeyByb290OiBcInRhYmxlXCIsIGl0ZW1WYWx1ZTogXCJmb3JtLWdyb3VwXCIgfSxcbiAgbWF0cml4ZHluYW1pYzoge1xuICAgIHJvb3Q6IFwidGFibGVcIixcbiAgICBidXR0b246IFwiYnRuIGJ0bi1wcmltYXJ5XCIsXG4gICAgaXRlbVZhbHVlOiBcImZvcm0tZ3JvdXBcIixcbiAgICBidXR0b25BZGQ6IFwiXCIsXG4gICAgYnV0dG9uUmVtb3ZlOiBcIlwiLFxuICAgIGljb25BZGQ6IFwiXCIsXG4gICAgaWNvblJlbW92ZTogXCJcIlxuICB9LFxuICBwYW5lbGR5bmFtaWM6IHtcbiAgICByb290OiBcIlwiLFxuICAgIG5hdmlnYXRpb246IFwic3YtcGFuZWxkeW5hbWljX19uYXZpZ2F0aW9uXCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwic3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcyBzdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzLS10b3BcIixcbiAgICBwcm9ncmVzc0JvdHRvbTpcbiAgICAgIFwic3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcyBzdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzLS1ib3R0b21cIixcbiAgICB0aXRsZTogXCJzdi10aXRsZSBzdi1xdWVzdGlvbl9fdGl0bGVcIixcbiAgICBidXR0b246IFwiYnV0dG9uXCIsXG4gICAgYnV0dG9uQWRkOiBcImJ1dHRvbiBzdi1wYW5lbGR5bmFtaWNfX2FkZC1idG5cIixcbiAgICBidXR0b25SZW1vdmU6IFwiYnV0dG9uIHN2LXBhbmVsZHluYW1pY19fcmVtb3ZlLWJ0blwiLFxuICAgIGJ1dHRvblByZXY6IFwic3YtcGFuZWxkeW5hbWljX19wcmV2LWJ0blwiLFxuICAgIGJ1dHRvbk5leHQ6IFwic3YtcGFuZWxkeW5hbWljX19uZXh0LWJ0blwiLFxuICAgIHByb2dyZXNzQ29udGFpbmVyOiBcInN2LXBhbmVsZHluYW1pY19fcHJvZ3Jlc3MtY29udGFpbmVyXCIsXG4gICAgcHJvZ3Jlc3M6IFwic3YtcHJvZ3Jlc3NcIixcbiAgICBwcm9ncmVzc0JhcjogXCJzdi1wcm9ncmVzc19fYmFyXCIsXG4gICAgcHJvZ3Jlc3NUZXh0OiBcInN2LXBhbmVsZHluYW1pY19fcHJvZ3Jlc3MtdGV4dFwiXG4gIH0sXG4gIG11bHRpcGxldGV4dDoge1xuICAgIHJvb3Q6IFwidGFibGVcIixcbiAgICBpdGVtVGl0bGU6IFwiXCIsXG4gICAgcm93OiBcImZvcm0tZ3JvdXBcIixcbiAgICBpdGVtVmFsdWU6IFwic3ZfcV9tdF9pdGVtX3ZhbHVlIGZvcm0tY29udHJvbFwiXG4gIH0sXG4gIHJhZGlvZ3JvdXA6IHtcbiAgICByb290OiBcIlwiLFxuICAgIGl0ZW06IFwicmFkaW9cIixcbiAgICBpdGVtQ2hlY2tlZDogXCJjaGVja2VkXCIsXG4gICAgaXRlbUlubGluZTogXCJzdl9xX3JhZGlvZ3JvdXBfaW5saW5lXCIsXG4gICAgaXRlbURlY29yYXRvcjogXCJzdi1oaWRkZW5cIixcbiAgICBsYWJlbDogXCJcIixcbiAgICBsYWJlbENoZWNrZWQ6IFwiXCIsXG4gICAgaXRlbUNvbnRyb2w6IFwiXCIsXG4gICAgY29udHJvbExhYmVsOiBcInN2X3FfcmFkaW9ncm91cF9jb250cm9sX2xhYmVsXCIsXG4gICAgbWF0ZXJpYWxEZWNvcmF0b3I6IFwiY2lyY2xlXCIsXG4gICAgb3RoZXI6IFwic3ZfcV9yYWRpb2dyb3VwX290aGVyIGZvcm0tY29udHJvbFwiLFxuICAgIGNsZWFyQnV0dG9uOiBcInN2X3FfcmFkaW9ncm91cF9jbGVhciBidXR0b24gYnRuIGJ0bi1wcmltYXJ5XCIsXG4gICAgY29sdW1uOiBcInN2X3Ffc2VsZWN0X2NvbHVtblwiXG4gIH0sXG4gIGltYWdlcGlja2VyOiB7XG4gICAgcm9vdDogXCJzdl9pbWdzZWxcIixcbiAgICBpdGVtOiBcInN2X3FfaW1nc2VsXCIsXG4gICAgaXRlbUNoZWNrZWQ6IFwiY2hlY2tlZFwiLFxuICAgIGl0ZW1JbmxpbmU6IFwic3ZfcV9pbWFnZXBpY2tlcl9pbmxpbmVcIixcbiAgICBsYWJlbDogXCJzdl9xX2ltZ3NlbF9sYWJlbFwiLFxuICAgIGl0ZW1Db250cm9sOiBcInN2X3FfaW1nc2VsX2NvbnRyb2xfaXRlbVwiLFxuICAgIGltYWdlOiBcInN2X3FfaW1nc2VsX2ltYWdlXCIsXG4gICAgaXRlbVRleHQ6IFwic3ZfcV9pbWdzZWxfdGV4dFwiLFxuICAgIGNsZWFyQnV0dG9uOiBcInN2X3FfcmFkaW9ncm91cF9jbGVhclwiXG4gIH0sXG4gIHJhdGluZzoge1xuICAgIHJvb3Q6IFwiYnRuLWdyb3VwXCIsXG4gICAgaXRlbTogXCJidG4gYnRuLWRlZmF1bHQgYnRuLXNlY29uZGFyeVwiLFxuICAgIHNlbGVjdGVkOiBcImFjdGl2ZVwiLFxuICAgIG1pblRleHQ6IFwic3ZfcV9yYXRpbmdfbWluX3RleHRcIixcbiAgICBpdGVtVGV4dDogXCJzdl9xX3JhdGluZ19pdGVtX3RleHRcIixcbiAgICBtYXhUZXh0OiBcInN2X3FfcmF0aW5nX21heF90ZXh0XCIsXG4gICAgZGlzYWJsZWQ6IFwiXCJcbiAgfSxcbiAgdGV4dDogXCJmb3JtLWNvbnRyb2xcIixcbiAgZXhwcmVzc2lvbjogXCJmb3JtLWNvbnRyb2xcIixcbiAgZmlsZToge1xuICAgIHJvb3Q6IFwiZm9ybS1ncm91cCBpcy1maWxlaW5wdXQgc3ZfcV9maWxlXCIsXG4gICAgcGxhY2Vob2xkZXJJbnB1dDogXCJcIixcbiAgICBwcmV2aWV3OiBcInN2X3FfZmlsZV9wcmV2aWV3XCIsXG4gICAgcmVtb3ZlQnV0dG9uOiBcInN2X3FfZmlsZV9yZW1vdmVfYnV0dG9uXCIsXG4gICAgZmlsZUlucHV0OiBcInN2X3FfZmlsZV9pbnB1dFwiLFxuICAgIHJlbW92ZUZpbGU6IFwic3ZfcV9maWxlX3JlbW92ZVwiLFxuICAgIHJlbW92ZUZpbGVTdmc6IFwic3YtaGlkZGVuXCIsXG4gICAgZmlsZURlY29yYXRvcjogXCJzdi1oaWRkZW5cIixcbiAgICBmaWxlU2lnbkJvdHRvbTogXCJzdi1oaWRkZW5cIixcbiAgICByZW1vdmVCdXR0b25Cb3R0b206IFwic3YtaGlkZGVuXCJcbiAgfSxcbiAgc2F2ZURhdGE6IHtcbiAgICByb290OiBcIlwiLFxuICAgIHNhdmluZzogXCJhbGVydCBhbGVydC1pbmZvXCIsXG4gICAgZXJyb3I6IFwiYWxlcnQgYWxlcnQtZGFuZ2VyXCIsXG4gICAgc3VjY2VzczogXCJhbGVydCBhbGVydC1zdWNjZXNzXCIsXG4gICAgc2F2ZUFnYWluQnV0dG9uOiBcIlwiXG4gIH0sXG4gIHdpbmRvdzoge1xuICAgIHJvb3Q6IFwibW9kYWwtY29udGVudFwiLFxuICAgIGJvZHk6IFwibW9kYWwtYm9keVwiLFxuICAgIGhlYWRlcjoge1xuICAgICAgcm9vdDogXCJtb2RhbC1oZWFkZXIgcGFuZWwtdGl0bGVcIixcbiAgICAgIHRpdGxlOiBcInB1bGwtbGVmdFwiLFxuICAgICAgYnV0dG9uOiBcImdseXBoaWNvbiBwdWxsLXJpZ2h0XCIsXG4gICAgICBidXR0b25FeHBhbmRlZDogXCJnbHlwaGljb24gcHVsbC1yaWdodCBnbHlwaGljb24tY2hldnJvbi11cFwiLFxuICAgICAgYnV0dG9uQ29sbGFwc2VkOiBcImdseXBoaWNvbiBwdWxsLXJpZ2h0IGdseXBoaWNvbi1jaGV2cm9uLWRvd25cIlxuICAgIH1cbiAgfVxufTtcbig8YW55PnN1cnZleUNzcylbXCJib290c3RyYXBtYXRlcmlhbFwiXSA9IGRlZmF1bHRCb290c3RyYXBNYXRlcmlhbENzcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9kZWZhdWx0Q3NzL2Nzc2Jvb3RzdHJhcG1hdGVyaWFsLnRzIiwiaW1wb3J0IHsgc3VydmV5Q3NzIH0gZnJvbSBcIi4vY3Nzc3RhbmRhcmRcIjtcbmV4cG9ydCB2YXIgbW9kZXJuQ3NzID0ge1xuICByb290OiBcInN2LXJvb3QtbW9kZXJuXCIsXG4gIGNvbnRhaW5lcjogXCJzdi1jb250YWluZXItbW9kZXJuXCIsXG4gIGhlYWRlcjogXCJzdi10aXRsZSBzdi1jb250YWluZXItbW9kZXJuX190aXRsZVwiLFxuICBib2R5OiBcInN2LWJvZHlcIixcbiAgYm9keUVtcHR5OiBcInN2LWJvZHkgc3YtYm9keS0tZW1wdHlcIixcbiAgZm9vdGVyOiBcInN2LWZvb3RlciBzdi1ib2R5X19mb290ZXIgc3YtY2xlYXJmaXhcIixcbiAgdGl0bGU6IFwiXCIsXG4gIGRlc2NyaXB0aW9uOiBcIlwiLFxuICBuYXZpZ2F0aW9uQnV0dG9uOiBcIlwiLFxuICBjb21wbGV0ZWRQYWdlOiBcInN2LWNvbXBsZXRlZHBhZ2VcIixcbiAgbmF2aWdhdGlvbjoge1xuICAgIGNvbXBsZXRlOiBcInN2LWJ0biBzdi1mb290ZXJfX2NvbXBsZXRlLWJ0blwiLFxuICAgIHByZXY6IFwic3YtYnRuIHN2LWZvb3Rlcl9fcHJldi1idG5cIixcbiAgICBuZXh0OiBcInN2LWJ0biBzdi1mb290ZXJfX25leHQtYnRuXCIsXG4gICAgc3RhcnQ6IFwic3YtYnRuIHN2LWZvb3Rlcl9fc3RhcnQtYnRuXCJcbiAgfSxcbiAgcGFuZWw6IHtcbiAgICB0aXRsZTogXCJzdi10aXRsZSBzdi1wYW5lbF9fdGl0bGVcIixcbiAgICB0aXRsZUV4cGFuZGFibGU6IFwic3YtcGFuZWxfX3RpdGxlLS1leHBhbmRhYmxlXCIsXG4gICAgZGVzY3JpcHRpb246IFwic3YtZGVzY3JpcHRpb24gc3YtcGFuZWxfX2Rlc2NyaXB0aW9uXCIsXG4gICAgY29udGFpbmVyOiBcInN2LXBhbmVsIHN2LXJvd19fcGFuZWxcIixcbiAgICBjb250ZW50OiBcInN2LXBhbmVsX19jb250ZW50XCIsXG4gICAgaWNvbjogXCJzdi1wYW5lbF9faWNvblwiLFxuICAgIGljb25FeHBhbmRlZDogXCJzdi1wYW5lbF9faWNvbi0tZXhwYW5kZWRcIlxuICB9LFxuICBwYW5lbGR5bmFtaWM6IHtcbiAgICByb290OiBcInN2LXBhbmVsZHluYW1pY1wiLFxuICAgIG5hdmlnYXRpb246IFwic3YtcGFuZWxkeW5hbWljX19uYXZpZ2F0aW9uXCIsXG4gICAgdGl0bGU6IFwic3YtdGl0bGUgc3YtcXVlc3Rpb25fX3RpdGxlXCIsXG4gICAgYnV0dG9uOiBcInN2LWJ0blwiLFxuICAgIGJ1dHRvblJlbW92ZTogXCJzdi1wYW5lbGR5bmFtaWNfX3JlbW92ZS1idG5cIixcbiAgICBidXR0b25BZGQ6IFwic3YtcGFuZWxkeW5hbWljX19hZGQtYnRuXCIsXG4gICAgcHJvZ3Jlc3NUb3A6IFwic3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcyBzdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzLS10b3BcIixcbiAgICBwcm9ncmVzc0JvdHRvbTpcbiAgICAgIFwic3YtcGFuZWxkeW5hbWljX19wcm9ncmVzcyBzdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzLS1ib3R0b21cIixcbiAgICBidXR0b25QcmV2OiBcInN2LXBhbmVsZHluYW1pY19fcHJldi1idG5cIixcbiAgICBidXR0b25OZXh0OiBcInN2LXBhbmVsZHluYW1pY19fbmV4dC1idG5cIixcbiAgICBwcm9ncmVzc0NvbnRhaW5lcjogXCJzdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzLWNvbnRhaW5lclwiLFxuICAgIHByb2dyZXNzOiBcInN2LXByb2dyZXNzXCIsXG4gICAgcHJvZ3Jlc3NCYXI6IFwic3YtcHJvZ3Jlc3NfX2JhclwiLFxuICAgIHByb2dyZXNzVGV4dDogXCJzdi1wYW5lbGR5bmFtaWNfX3Byb2dyZXNzLXRleHRcIixcbiAgICBzZXBhcmF0b3I6IFwic3YtcGFuZWxkeW5hbWljX19zZXBhcmF0b3JcIlxuICB9LFxuICBwcm9ncmVzczogXCJzdi1wcm9ncmVzcyBzdi1ib2R5X19wcm9ncmVzc1wiLFxuICBwcm9ncmVzc0JhcjogXCJzdi1wcm9ncmVzc19fYmFyXCIsXG4gIHByb2dyZXNzVGV4dDogXCJzdi1wcm9ncmVzc19fdGV4dFwiLFxuICBwcm9ncmVzc1RleHRJbkJhcjogXCJzdi1oaWRkZW5cIixcbiAgcGFnZToge1xuICAgIHJvb3Q6IFwic3YtcGFnZSBzdi1ib2R5X19wYWdlXCIsXG4gICAgdGl0bGU6IFwic3YtcGFnZV9fdGl0bGVcIixcbiAgICBkZXNjcmlwdGlvbjogXCJzdi1kZXNjcmlwdGlvbiBzdi1wYWdlX19kZXNjcmlwdGlvblwiXG4gIH0sXG4gIHBhZ2VUaXRsZTogXCJzdi10aXRsZSBzdi1wYWdlX190aXRsZVwiLFxuICBwYWdlRGVzY3JpcHRpb246IFwic3YtZGVzY3JpcHRpb24gc3YtcGFnZV9fZGVzY3JpcHRpb25cIixcbiAgcm93OiBcInN2LXJvdyBzdi1jbGVhcmZpeFwiLFxuICBxdWVzdGlvbjoge1xuICAgIG1haW5Sb290OiBcInN2LXF1ZXN0aW9uIHN2LXJvd19fcXVlc3Rpb25cIixcbiAgICBmbG93Um9vdDogXCJzdi1xdWVzdGlvbiBzdi1yb3dfX3F1ZXN0aW9uIHN2LXJvd19fcXVlc3Rpb24tLWZsb3dcIixcbiAgICBhc0NlbGw6IFwic3YtdGFibGVfX2NlbGxcIixcbiAgICBoZWFkZXI6IFwic3YtcXVlc3Rpb25fX2hlYWRlclwiLFxuICAgIGhlYWRlckxlZnQ6IFwic3YtcXVlc3Rpb25fX2hlYWRlci0tbG9jYXRpb24tLWxlZnRcIixcbiAgICBoZWFkZXJUb3A6IFwic3YtcXVlc3Rpb25fX2hlYWRlci0tbG9jYXRpb24tLXRvcFwiLFxuICAgIGhlYWRlckJvdHRvbTogXCJzdi1xdWVzdGlvbl9faGVhZGVyLS1sb2NhdGlvbi0tYm90dG9tXCIsXG4gICAgY29udGVudDogXCJzdi1xdWVzdGlvbl9fY29udGVudFwiLFxuICAgIGNvbnRlbnRMZWZ0OiBcInN2LXF1ZXN0aW9uX19jb250ZW50LS1sZWZ0XCIsXG4gICAgdGl0bGVMZWZ0Um9vdDogXCJcIixcbiAgICB0aXRsZU9uQW5zd2VyOiBcInN2LXF1ZXN0aW9uX190aXRsZS0tYW5zd2VyXCIsXG4gICAgdGl0bGVPbkVycm9yOiBcInN2LXF1ZXN0aW9uX190aXRsZS0tZXJyb3JcIixcbiAgICB0aXRsZTogXCJzdi10aXRsZSBzdi1xdWVzdGlvbl9fdGl0bGVcIixcbiAgICByZXF1aXJlZFRleHQ6IFwic3YtcXVlc3Rpb25fX3JlcXVpcmVkLXRleHRcIixcbiAgICBudW1iZXI6IFwic3YtcXVlc3Rpb25fX251bVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcInN2LWRlc2NyaXB0aW9uIHN2LXF1ZXN0aW9uX19kZXNjcmlwdGlvblwiLFxuICAgIGRlc2NyaXB0aW9uVW5kZXJJbnB1dDogXCJzdi1kZXNjcmlwdGlvbiBzdi1xdWVzdGlvbl9fZGVzY3JpcHRpb25cIixcbiAgICBjb21tZW50OiBcInN2LWNvbW1lbnRcIixcbiAgICByZXF1aXJlZDogXCJzdi1xdWVzdGlvbi0tcmVxdWlyZWRcIixcbiAgICB0aXRsZVJlcXVpcmVkOiBcInN2LXF1ZXN0aW9uX190aXRsZS0tcmVxdWlyZWRcIixcbiAgICBpbmRlbnQ6IDIwLFxuICAgIGZvb3RlcjogXCJzdi1xdWVzdGlvbl9fZm9vdGVyXCIsXG4gICAgZm9ybUdyb3VwOiBcInN2LXF1ZXN0aW9uX19mb3JtLWdyb3VwXCIsXG4gICAgaGFzRXJyb3I6IFwiXCJcbiAgfSxcbiAgZXJyb3I6IHtcbiAgICByb290OiBcInN2LXF1ZXN0aW9uX19lcmJveFwiLFxuICAgIGljb246IFwiXCIsXG4gICAgaXRlbTogXCJcIixcbiAgICBsb2NhdGlvblRvcDogXCJzdi1xdWVzdGlvbl9fZXJib3gtLWxvY2F0aW9uLS10b3BcIixcbiAgICBsb2NhdGlvbkJvdHRvbTogXCJzdi1xdWVzdGlvbl9fZXJib3gtLWxvY2F0aW9uLS1ib3R0b21cIlxuICB9LFxuICBjaGVja2JveDoge1xuICAgIHJvb3Q6IFwic3Ytc2VsZWN0YmFzZVwiLFxuICAgIGl0ZW06IFwic3YtaXRlbSBzdi1jaGVja2JveCBzdi1zZWxlY3RiYXNlX19pdGVtXCIsXG4gICAgaXRlbURpc2FibGVkOiBcInN2LWl0ZW0tLWRpc2FibGVkIHN2LWNoZWNrYm94LS1kaXNhYmxlZFwiLFxuICAgIGl0ZW1DaGVja2VkOiBcInN2LWNoZWNrYm94LS1jaGVja2VkXCIsXG4gICAgaXRlbUhvdmVyOiBcInN2LWNoZWNrYm94LS1hbGxvd2hvdmVyXCIsXG4gICAgaXRlbUlubGluZTogXCJzdi1zZWxlY3RiYXNlX19pdGVtLS1pbmxpbmVcIixcbiAgICBsYWJlbDogXCJzdi1zZWxlY3RiYXNlX19sYWJlbFwiLFxuICAgIGxhYmVsQ2hlY2tlZDogXCJcIixcbiAgICBpdGVtQ29udHJvbDogXCJzdi12aXN1YWxseWhpZGRlbiBzdi1pdGVtX19jb250cm9sXCIsXG4gICAgaXRlbURlY29yYXRvcjogXCJzdi1pdGVtX19zdmcgc3YtY2hlY2tib3hfX3N2Z1wiLFxuICAgIGNvbnRyb2xMYWJlbDogXCJzdi1pdGVtX19jb250cm9sLWxhYmVsXCIsXG4gICAgbWF0ZXJpYWxEZWNvcmF0b3I6IFwic3YtaXRlbV9fZGVjb3JhdG9yIHN2LWNoZWNrYm94X19kZWNvcmF0b3JcIixcbiAgICBvdGhlcjogXCJzdi1jb21tZW50IHN2LXF1ZXN0aW9uX19vdGhlclwiLFxuICAgIGNvbHVtbjogXCJzdi1zZWxlY3RiYXNlX19jb2x1bW5cIlxuICB9LFxuICByYWRpb2dyb3VwOiB7XG4gICAgcm9vdDogXCJzdi1zZWxlY3RiYXNlXCIsXG4gICAgaXRlbTogXCJzdi1pdGVtIHN2LXJhZGlvIHN2LXNlbGVjdGJhc2VfX2l0ZW1cIixcbiAgICBpdGVtSW5saW5lOiBcInN2LXNlbGVjdGJhc2VfX2l0ZW0tLWlubGluZVwiLFxuICAgIGxhYmVsOiBcInN2LXNlbGVjdGJhc2VfX2xhYmVsXCIsXG4gICAgbGFiZWxDaGVja2VkOiBcIlwiLFxuICAgIGl0ZW1EaXNhYmxlZDogXCJzdi1pdGVtLS1kaXNhYmxlZCBzdi1yYWRpby0tZGlzYWJsZWRcIixcbiAgICBpdGVtQ2hlY2tlZDogXCJzdi1yYWRpby0tY2hlY2tlZFwiLFxuICAgIGl0ZW1Ib3ZlcjogXCJzdi1yYWRpby0tYWxsb3dob3ZlclwiLFxuICAgIGl0ZW1Db250cm9sOiBcInN2LXZpc3VhbGx5aGlkZGVuIHN2LWl0ZW1fX2NvbnRyb2xcIixcbiAgICBpdGVtRGVjb3JhdG9yOiBcInN2LWl0ZW1fX3N2ZyBzdi1yYWRpb19fc3ZnXCIsXG4gICAgY29udHJvbExhYmVsOiBcInN2LWl0ZW1fX2NvbnRyb2wtbGFiZWxcIixcbiAgICBtYXRlcmlhbERlY29yYXRvcjogXCJzdi1pdGVtX19kZWNvcmF0b3Igc3YtcmFkaW9fX2RlY29yYXRvclwiLFxuICAgIG90aGVyOiBcInN2LWNvbW1lbnQgc3YtcXVlc3Rpb25fX290aGVyXCIsXG4gICAgY2xlYXJCdXR0b246IFwic3YtYnRuIHN2LXNlbGVjdGJhc2VfX2NsZWFyLWJ0blwiLFxuICAgIGNvbHVtbjogXCJzdi1zZWxlY3RiYXNlX19jb2x1bW5cIlxuICB9LFxuICBib29sZWFuOiB7XG4gICAgcm9vdDogXCJcIixcbiAgICBpdGVtOiBcInN2LWJvb2xlYW4gc3YtaXRlbVwiLFxuICAgIGNvbnRyb2w6IFwic3YtdmlzdWFsbHloaWRkZW5cIixcbiAgICBpdGVtQ2hlY2tlZDogXCJzdi1ib29sZWFuLS1jaGVja2VkXCIsXG4gICAgaXRlbUluZGV0ZXJtaW5hdGU6IFwic3YtYm9vbGVhbi0taW5kZXRlcm1pbmF0ZVwiLFxuICAgIGl0ZW1EaXNhYmxlZDogXCJzdi1pdGVtLS1kaXNhYmxlZCBzdi1ib29sZWFuLS1kaXNhYmxlZFwiLFxuICAgIHN3aXRjaDogXCJzdi1ib29sZWFuX19zd2l0Y2hcIixcbiAgICBzbGlkZXI6IFwic3YtYm9vbGVhbl9fc2xpZGVyXCIsXG4gICAgbGFiZWw6IFwic3YtYm9vbGVhbl9fbGFiZWwgXCIsXG4gICAgZGlzYWJsZWRMYWJlbDogXCJzdi1ib29sZWFuX19sYWJlbC0tZGlzYWJsZWRcIlxuICB9LFxuICB0ZXh0OiB7XG4gICAgcm9vdDogXCJzdi10ZXh0XCIsXG4gICAgc21hbGw6IFwic3Ytcm93X19xdWVzdGlvbi0tc21hbGxcIixcbiAgICBvbkVycm9yOiBcInN2LXRleHQtLWVycm9yXCJcbiAgfSxcbiAgbXVsdGlwbGV0ZXh0OiB7XG4gICAgcm9vdDogXCJzdi1tdWx0aXBsZXRleHRcIixcbiAgICBpdGVtOiBcInN2LW11bHRpcGxldGV4dF9faXRlbVwiLFxuICAgIGl0ZW1UaXRsZTogXCJzdi1tdWx0aXBsZXRleHRfX2l0ZW0tdGl0bGVcIixcbiAgICByb3c6IFwic3YtbXVsdGlwbGV0ZXh0X19yb3dcIixcbiAgICBjZWxsOiBcInN2LW11bHRpcGxldGV4dF9fY2VsbFwiXG4gIH0sXG4gIGRyb3Bkb3duOiB7XG4gICAgcm9vdDogXCJcIixcbiAgICBzbWFsbDogXCJzdi1yb3dfX3F1ZXN0aW9uLS1zbWFsbFwiLFxuICAgIGNvbnRyb2w6IFwic3YtZHJvcGRvd25cIixcbiAgICBzZWxlY3RXcmFwcGVyOiBcIlwiLFxuICAgIG90aGVyOiBcInN2LWNvbW1lbnQgc3YtcXVlc3Rpb25fX290aGVyXCIsXG4gICAgb25FcnJvcjogXCJzdi1kcm9wZG93bi0tZXJyb3JcIlxuICB9LFxuICBpbWFnZXBpY2tlcjoge1xuICAgIHJvb3Q6IFwic3YtaW1hZ2VwaWNrZXJcIixcbiAgICBpdGVtOiBcInN2LWltYWdlcGlja2VyX19pdGVtXCIsXG4gICAgaXRlbUlubGluZTogXCJzdi1pbWFnZXBpY2tlcl9faXRlbS0taW5saW5lXCIsXG4gICAgaXRlbUNoZWNrZWQ6IFwic3YtaW1hZ2VwaWNrZXJfX2l0ZW0tLWNoZWNrZWRcIixcbiAgICBpdGVtRGlzYWJsZWQ6IFwic3YtaW1hZ2VwaWNrZXJfX2l0ZW0tLWRpc2FibGVkXCIsXG4gICAgaXRlbUhvdmVyOiBcInN2LWltYWdlcGlja2VyX19pdGVtLS1hbGxvd2hvdmVyXCIsXG4gICAgbGFiZWw6IFwic3YtaW1hZ2VwaWNrZXJfX2xhYmVsXCIsXG4gICAgaXRlbUNvbnRyb2w6IFwic3YtaW1hZ2VwaWNrZXJfX2NvbnRyb2xcIixcbiAgICBpbWFnZTogXCJzdi1pbWFnZXBpY2tlcl9faW1hZ2VcIixcbiAgICBpdGVtVGV4dDogXCJzdi1pbWFnZXBpY2tlcl9fdGV4dFwiLFxuICAgIGNsZWFyQnV0dG9uOiBcInN2LWJ0blwiLFxuICAgIG90aGVyOiBcInN2LWNvbW1lbnQgc3YtcXVlc3Rpb25fX290aGVyXCJcbiAgfSxcbiAgbWF0cml4OiB7XG4gICAgdGFibGVXcmFwcGVyOiBcInN2LW1hdHJpeFwiLFxuICAgIHJvb3Q6IFwic3YtdGFibGVcIixcbiAgICBjZWxsOiBcInN2LXRhYmxlX19jZWxsIHN2LW1hdHJpeF9fY2VsbFwiLFxuICAgIGhlYWRlckNlbGw6IFwic3YtdGFibGVfX2NlbGwgc3YtdGFibGVfX2NlbGwtLWhlYWRlclwiLFxuICAgIGxhYmVsOiBcInN2LWl0ZW0gc3YtcmFkaW8gc3YtbWF0cml4X19sYWJlbFwiLFxuICAgIGl0ZW1WYWx1ZTogXCJzdi12aXN1YWxseWhpZGRlbiBzdi1pdGVtX19jb250cm9sIHN2LXJhZGlvX19jb250cm9sXCIsXG4gICAgaXRlbUNoZWNrZWQ6IFwic3YtcmFkaW8tLWNoZWNrZWRcIixcbiAgICBpdGVtRGlzYWJsZWQ6IFwic3YtaXRlbS0tZGlzYWJsZWQgc3YtcmFkaW8tLWRpc2FibGVkXCIsXG4gICAgaXRlbUhvdmVyOiBcInN2LXJhZGlvLS1hbGxvd2hvdmVyXCIsXG4gICAgbWF0ZXJpYWxEZWNvcmF0b3I6IFwic3YtaXRlbV9fZGVjb3JhdG9yIHN2LXJhZGlvX19kZWNvcmF0b3JcIixcbiAgICBpdGVtRGVjb3JhdG9yOiBcInN2LWl0ZW1fX3N2ZyBzdi1yYWRpb19fc3ZnXCIsXG4gICAgY2VsbFRleHQ6IFwic3YtbWF0cml4X190ZXh0XCIsXG4gICAgY2VsbFRleHRTZWxlY3RlZDogXCJzdi1tYXRyaXhfX3RleHQtLdGBaGVja2VkXCIsXG4gICAgY2VsbFRleHREaXNhYmxlZDogXCJzdi1tYXRyaXhfX3RleHQtLWRpc2FibGVkXCJcbiAgfSxcbiAgbWF0cml4ZHJvcGRvd246IHtcbiAgICByb290OiBcInN2LXRhYmxlXCIsXG4gICAgY2VsbDogXCJzdi10YWJsZV9fY2VsbFwiLFxuICAgIGhlYWRlckNlbGw6IFwic3YtdGFibGVfX2NlbGwgc3YtdGFibGVfX2NlbGwtLWhlYWRlclwiXG4gIH0sXG4gIG1hdHJpeGR5bmFtaWM6IHtcbiAgICByb290OiBcInN2LXRhYmxlIHN2LW1hdHJpeGR5bmFtaWNcIixcbiAgICBjZWxsOiBcInN2LXRhYmxlX19jZWxsXCIsXG4gICAgaGVhZGVyQ2VsbDogXCJzdi10YWJsZV9fY2VsbCBzdi10YWJsZV9fY2VsbC0taGVhZGVyXCIsXG4gICAgYnV0dG9uOiBcInN2LWJ0blwiLFxuICAgIGJ1dHRvbkFkZDogXCJzdi1tYXRyaXhkeW5hbWljX19hZGQtYnRuXCIsXG4gICAgYnV0dG9uUmVtb3ZlOiBcInN2LW1hdHJpeGR5bmFtaWNfX3JlbW92ZS1idG5cIixcbiAgICBpY29uQWRkOiBcIlwiLFxuICAgIGljb25SZW1vdmU6IFwiXCJcbiAgfSxcbiAgcmF0aW5nOiB7XG4gICAgcm9vdDogXCJzdi1yYXRpbmdcIixcbiAgICBpdGVtOiBcInN2LXJhdGluZ19faXRlbVwiLFxuICAgIHNlbGVjdGVkOiBcInN2LXJhdGluZ19faXRlbS0tc2VsZWN0ZWRcIixcbiAgICBtaW5UZXh0OiBcInN2LXJhdGluZ19fbWluLXRleHRcIixcbiAgICBpdGVtVGV4dDogXCJzdi1yYXRpbmdfX2l0ZW0tdGV4dFwiLFxuICAgIG1heFRleHQ6IFwic3YtcmF0aW5nX19tYXgtdGV4dFwiLFxuICAgIGRpc2FibGVkOiBcInN2LXJhdGluZy0tZGlzYWJsZWRcIlxuICB9LFxuICBjb21tZW50OiB7XG4gICAgcm9vdDogXCJzdi1jb21tZW50XCIsXG4gICAgc21hbGw6IFwic3Ytcm93X19xdWVzdGlvbi0tc21hbGxcIlxuICB9LFxuICBleHByZXNzaW9uOiBcIlwiLFxuICBmaWxlOiB7XG4gICAgcm9vdDogXCJzdi1maWxlXCIsXG4gICAgcGxhY2Vob2xkZXJJbnB1dDogXCJzdi12aXN1YWxseWhpZGRlblwiLFxuICAgIHByZXZpZXc6IFwic3YtZmlsZV9fcHJldmlld1wiLFxuICAgIGZpbGVTaWduOiBcInN2LWhpZGRlblwiLFxuICAgIGZpbGVTaWduQm90dG9tOiBcInN2LWZpbGVfX3NpZ25cIixcbiAgICBmaWxlRGVjb3JhdG9yOiBcInN2LWZpbGVfX2RlY29yYXRvclwiLFxuICAgIGZpbGVJbnB1dDogXCJzdi12aXN1YWxseWhpZGRlblwiLFxuICAgIG5vRmlsZUNob3NlbjogXCJzdi1kZXNjcmlwdGlvbiBzdi1maWxlX19uby1maWxlLWNob3NlblwiLFxuICAgIGNob29zZUZpbGU6IFwic3YtYnRuIHN2LWZpbGVfX2Nob29zZS1idG5cIixcbiAgICBkaXNhYmxlZDogXCJzdi1maWxlX19jaG9vc2UtYnRuLS1kaXNhYmxlZFwiLFxuICAgIHJlbW92ZUJ1dHRvbjogXCJzdi1oaWRkZW5cIixcbiAgICByZW1vdmVCdXR0b25Cb3R0b206IFwic3YtYnRuIHN2LWZpbGVfX2NsZWFuLWJ0blwiLFxuICAgIHJlbW92ZUZpbGU6IFwic3YtaGlkZGVuXCIsXG4gICAgcmVtb3ZlRmlsZVN2ZzogXCJzdi1maWxlX19yZW1vdmUtc3ZnXCIsXG4gICAgd3JhcHBlcjogXCJzdi1maWxlX193cmFwcGVyXCJcbiAgfSxcbiAgc2F2ZURhdGE6IHtcbiAgICByb290OiBcIlwiLFxuICAgIHNhdmluZzogXCJcIixcbiAgICBlcnJvcjogXCJcIixcbiAgICBzdWNjZXNzOiBcIlwiLFxuICAgIHNhdmVBZ2FpbkJ1dHRvbjogXCJcIlxuICB9LFxuICB3aW5kb3c6IHtcbiAgICByb290OiBcIlwiLFxuICAgIGJvZHk6IFwiXCIsXG4gICAgaGVhZGVyOiB7XG4gICAgICByb290OiBcIlwiLFxuICAgICAgdGl0bGU6IFwiXCIsXG4gICAgICBidXR0b246IFwiXCIsXG4gICAgICBidXR0b25FeHBhbmRlZDogXCJcIixcbiAgICAgIGJ1dHRvbkNvbGxhcHNlZDogXCJcIlxuICAgIH1cbiAgfVxufTtcblxuc3VydmV5Q3NzW1wibW9kZXJuXCJdID0gbW9kZXJuQ3NzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2RlZmF1bHRDc3MvY3NzbW9kZXJuLnRzIiwiaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2FyYWJpY1wiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2J1bGdhcmlhblwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2NhdGFsYW5cIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi9jemVjaFwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2RhbmlzaFwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2R1dGNoXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vZmlubmlzaFwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2ZyZW5jaFwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2dlb3JnaWFuXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vZ2VybWFuXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vZ3JlZWtcIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi9oZWJyZXdcIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi9odW5nYXJpYW5cIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi9pY2VsYW5kaWNcIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi9pbmRvbmVzaWFuXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vaXRhbGlhblwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2phcGFuZXNlXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24va29yZWFuXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vbGF0dmlhblwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL2xpdGh1YW5pYW5cIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi9ub3J3ZWdpYW5cIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi9wZXJzaWFuXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vcG9saXNoXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vcG9ydHVndWVzZVwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL3JvbWFuaWFuXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vcnVzc2lhblwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL3NpbXBsaWZpZWQtY2hpbmVzZVwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL3NwYW5pc2hcIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi9zd2VkaXNoXCI7XG5pbXBvcnQgXCIuLi8uLi9sb2NhbGl6YXRpb24vdHVya2lzaFwiO1xuaW1wb3J0IFwiLi4vLi4vbG9jYWxpemF0aW9uL3RyYWRpdGlvbmFsLWNoaW5lc2VcIjtcbmltcG9ydCBcIi4uLy4uL2xvY2FsaXphdGlvbi91a3JhaW5pYW5cIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9lbnRyaWVzL2NodW5rcy9sb2NhbGl6YXRpb24udHMiLCIvLyBzdHlsZXNcbmltcG9ydCBcIi4uLy4uL21haW4uc2Nzc1wiO1xuaW1wb3J0IFwiLi4vLi4vbW9kZXJuLnNjc3NcIjtcblxuZXhwb3J0IGxldCBWZXJzaW9uOiBzdHJpbmc7XG5WZXJzaW9uID0gYCR7cHJvY2Vzcy5lbnYuVkVSU0lPTn1gO1xuXG5leHBvcnQgeyBzZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9zZXR0aW5nc1wiO1xuZXhwb3J0IHsgSGVscGVycyB9IGZyb20gXCIuLi8uLi9oZWxwZXJzXCI7XG5leHBvcnQge1xuICBBbnN3ZXJDb3VudFZhbGlkYXRvcixcbiAgRW1haWxWYWxpZGF0b3IsXG4gIE51bWVyaWNWYWxpZGF0b3IsXG4gIFJlZ2V4VmFsaWRhdG9yLFxuICBTdXJ2ZXlWYWxpZGF0b3IsXG4gIFRleHRWYWxpZGF0b3IsXG4gIFZhbGlkYXRvclJlc3VsdCxcbiAgRXhwcmVzc2lvblZhbGlkYXRvcixcbiAgVmFsaWRhdG9yUnVubmVyXG59IGZyb20gXCIuLi8uLi92YWxpZGF0b3JcIjtcbmV4cG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuLi8uLi9pdGVtdmFsdWVcIjtcbmV4cG9ydCB7IEJhc2UsIEV2ZW50LCBTdXJ2ZXlFcnJvciwgSVN1cnZleSwgU3VydmV5RWxlbWVudCB9IGZyb20gXCIuLi8uLi9iYXNlXCI7XG5leHBvcnQgeyBDYWxjdWxhdGVkVmFsdWUgfSBmcm9tIFwiLi4vLi4vY2FsY3VsYXRlZFZhbHVlXCI7XG5leHBvcnQge1xuICBDdXN0b21FcnJvcixcbiAgQW5zd2VyUmVxdWlyZWRFcnJvcixcbiAgT25lQW5zd2VyUmVxdWlyZWRFcnJvcixcbiAgUmVxdXJlTnVtZXJpY0Vycm9yLFxuICBFeGNlZWRTaXplRXJyb3Jcbn0gZnJvbSBcIi4uLy4uL2Vycm9yXCI7XG5leHBvcnQgeyBJTG9jYWxpemFibGVPd25lciwgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi4vLi4vbG9jYWxpemFibGVzdHJpbmdcIjtcbmV4cG9ydCB7IEh0bWxDb25kaXRpb25JdGVtIH0gZnJvbSBcIi4uLy4uL2h0bWxDb25kaXRpb25JdGVtXCI7XG5leHBvcnQgeyBDaG9pY2VzUmVzdGZ1bGwgfSBmcm9tIFwiLi4vLi4vY2hvaWNlc1Jlc3RmdWxsXCI7XG5leHBvcnQgeyBGdW5jdGlvbkZhY3RvcnksIHJlZ2lzdGVyRnVuY3Rpb24gfSBmcm9tIFwiLi4vLi4vZnVuY3Rpb25zZmFjdG9yeVwiO1xuZXhwb3J0IHsgQ29uZGl0aW9uUnVubmVyLCBFeHByZXNzaW9uUnVubmVyIH0gZnJvbSBcIi4uLy4uL2NvbmRpdGlvbnNcIjtcbmV4cG9ydCB7XG4gIE9wZXJhbmQsXG4gIENvbnN0LFxuICBCaW5hcnlPcGVyYW5kLFxuICBWYXJpYWJsZSxcbiAgRnVuY3Rpb25PcGVyYW5kLFxuICBBcnJheU9wZXJhbmRcbn0gZnJvbSBcIi4uLy4uL2V4cHJlc3Npb25zL2V4cHJlc3Npb25zXCI7XG5leHBvcnQgeyBDb25kaXRpb25zUGFyc2VyIH0gZnJvbSBcIi4uLy4uL2NvbmRpdGlvbnNQYXJzZXJcIjtcbmV4cG9ydCB7IFByb2Nlc3NWYWx1ZSB9IGZyb20gXCIuLi8uLi9jb25kaXRpb25Qcm9jZXNzVmFsdWVcIjtcbmV4cG9ydCB7XG4gIEpzb25FcnJvcixcbiAgSnNvbkluY29ycmVjdFR5cGVFcnJvcixcbiAgSnNvbk1ldGFkYXRhLFxuICBKc29uTWV0YWRhdGFDbGFzcyxcbiAgSnNvbk1pc3NpbmdUeXBlRXJyb3IsXG4gIEpzb25NaXNzaW5nVHlwZUVycm9yQmFzZSxcbiAgSnNvbk9iamVjdCxcbiAgSnNvbk9iamVjdFByb3BlcnR5LFxuICBKc29uUmVxdWlyZWRQcm9wZXJ0eUVycm9yLFxuICBKc29uVW5rbm93blByb3BlcnR5RXJyb3IsXG4gIFNlcmlhbGl6ZXJcbn0gZnJvbSBcIi4uLy4uL2pzb25vYmplY3RcIjtcbmV4cG9ydCB7XG4gIE1hdHJpeERyb3Bkb3duQ2VsbCxcbiAgTWF0cml4RHJvcGRvd25Db2x1bW4sXG4gIG1hdHJpeERyb3Bkb3duQ29sdW1uVHlwZXMsXG4gIE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWxCYXNlXG59IGZyb20gXCIuLi8uLi9xdWVzdGlvbl9tYXRyaXhkcm9wZG93bmJhc2VcIjtcbmV4cG9ydCB7XG4gIE1hdHJpeERyb3Bkb3duUm93TW9kZWwsXG4gIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbFxufSBmcm9tIFwiLi4vLi4vcXVlc3Rpb25fbWF0cml4ZHJvcGRvd25cIjtcbmV4cG9ydCB7XG4gIE1hdHJpeER5bmFtaWNSb3dNb2RlbCxcbiAgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWxcbn0gZnJvbSBcIi4uLy4uL3F1ZXN0aW9uX21hdHJpeGR5bmFtaWNcIjtcbmV4cG9ydCB7XG4gIE1hdHJpeFJvd01vZGVsLFxuICBNYXJ0cml4Q2VsbHMsXG4gIFF1ZXN0aW9uTWF0cml4TW9kZWxcbn0gZnJvbSBcIi4uLy4uL3F1ZXN0aW9uX21hdHJpeFwiO1xuZXhwb3J0IHtcbiAgTXVsdGlwbGVUZXh0SXRlbU1vZGVsLFxuICBRdWVzdGlvbk11bHRpcGxlVGV4dE1vZGVsXG59IGZyb20gXCIuLi8uLi9xdWVzdGlvbl9tdWx0aXBsZXRleHRcIjtcbmV4cG9ydCB7IFBhbmVsTW9kZWwsIFBhbmVsTW9kZWxCYXNlLCBRdWVzdGlvblJvd01vZGVsIH0gZnJvbSBcIi4uLy4uL3BhbmVsXCI7XG5leHBvcnQgeyBGbG93UGFuZWxNb2RlbCB9IGZyb20gXCIuLi8uLi9mbG93cGFuZWxcIjtcbmV4cG9ydCB7IFBhZ2VNb2RlbCB9IGZyb20gXCIuLi8uLi9wYWdlXCI7XG5leHBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuLi8uLi9xdWVzdGlvblwiO1xuZXhwb3J0IHsgUXVlc3Rpb25Ob25WYWx1ZSB9IGZyb20gXCIuLi8uLi9xdWVzdGlvbm5vbnZhbHVlXCI7XG5leHBvcnQgeyBRdWVzdGlvbkVtcHR5TW9kZWwgfSBmcm9tIFwiLi4vLi4vcXVlc3Rpb25fZW1wdHlcIjtcbmV4cG9ydCB7XG4gIFF1ZXN0aW9uQ2hlY2tib3hCYXNlLFxuICBRdWVzdGlvblNlbGVjdEJhc2Vcbn0gZnJvbSBcIi4uLy4uL3F1ZXN0aW9uX2Jhc2VzZWxlY3RcIjtcbmV4cG9ydCB7IFF1ZXN0aW9uQ2hlY2tib3hNb2RlbCB9IGZyb20gXCIuLi8uLi9xdWVzdGlvbl9jaGVja2JveFwiO1xuZXhwb3J0IHsgUXVlc3Rpb25Db21tZW50TW9kZWwgfSBmcm9tIFwiLi4vLi4vcXVlc3Rpb25fY29tbWVudFwiO1xuZXhwb3J0IHsgUXVlc3Rpb25Ecm9wZG93bk1vZGVsIH0gZnJvbSBcIi4uLy4uL3F1ZXN0aW9uX2Ryb3Bkb3duXCI7XG5leHBvcnQgeyBRdWVzdGlvbkZhY3RvcnksIEVsZW1lbnRGYWN0b3J5IH0gZnJvbSBcIi4uLy4uL3F1ZXN0aW9uZmFjdG9yeVwiO1xuZXhwb3J0IHsgUXVlc3Rpb25GaWxlTW9kZWwgfSBmcm9tIFwiLi4vLi4vcXVlc3Rpb25fZmlsZVwiO1xuZXhwb3J0IHsgUXVlc3Rpb25IdG1sTW9kZWwgfSBmcm9tIFwiLi4vLi4vcXVlc3Rpb25faHRtbFwiO1xuZXhwb3J0IHsgUXVlc3Rpb25SYWRpb2dyb3VwTW9kZWwgfSBmcm9tIFwiLi4vLi4vcXVlc3Rpb25fcmFkaW9ncm91cFwiO1xuZXhwb3J0IHsgUXVlc3Rpb25SYXRpbmdNb2RlbCB9IGZyb20gXCIuLi8uLi9xdWVzdGlvbl9yYXRpbmdcIjtcbmV4cG9ydCB7IFF1ZXN0aW9uRXhwcmVzc2lvbk1vZGVsIH0gZnJvbSBcIi4uLy4uL3F1ZXN0aW9uX2V4cHJlc3Npb25cIjtcbmV4cG9ydCB7IFF1ZXN0aW9uVGV4dE1vZGVsIH0gZnJvbSBcIi4uLy4uL3F1ZXN0aW9uX3RleHRcIjtcbmV4cG9ydCB7IFF1ZXN0aW9uQm9vbGVhbk1vZGVsIH0gZnJvbSBcIi4uLy4uL3F1ZXN0aW9uX2Jvb2xlYW5cIjtcbmV4cG9ydCB7IFF1ZXN0aW9uSW1hZ2VQaWNrZXJNb2RlbCB9IGZyb20gXCIuLi8uLi9xdWVzdGlvbl9pbWFnZXBpY2tlclwiO1xuZXhwb3J0IHtcbiAgUXVlc3Rpb25QYW5lbER5bmFtaWNNb2RlbCxcbiAgUXVlc3Rpb25QYW5lbER5bmFtaWNJdGVtXG59IGZyb20gXCIuLi8uLi9xdWVzdGlvbl9wYW5lbGR5bmFtaWNcIjtcbmV4cG9ydCB7IFN1cnZleVRpbWVyIH0gZnJvbSBcIi4uLy4uL3N1cnZleXRpbWVyXCI7XG5leHBvcnQgeyBTdXJ2ZXlNb2RlbCB9IGZyb20gXCIuLi8uLi9zdXJ2ZXlcIjtcbmV4cG9ydCB7XG4gIFN1cnZleVRyaWdnZXIsXG4gIFN1cnZleVRyaWdnZXJDb21wbGV0ZSxcbiAgU3VydmV5VHJpZ2dlclNldFZhbHVlLFxuICBTdXJ2ZXlUcmlnZ2VyVmlzaWJsZSxcbiAgU3VydmV5VHJpZ2dlckNvcHlWYWx1ZSxcbiAgU3VydmV5VHJpZ2dlclJ1bkV4cHJlc3Npb24sXG4gIFRyaWdnZXJcbn0gZnJvbSBcIi4uLy4uL3RyaWdnZXJcIjtcbmV4cG9ydCB7IFN1cnZleVdpbmRvd01vZGVsIH0gZnJvbSBcIi4uLy4uL3N1cnZleVdpbmRvd1wiO1xuZXhwb3J0IHsgVGV4dFByZVByb2Nlc3NvciB9IGZyb20gXCIuLi8uLi90ZXh0UHJlUHJvY2Vzc29yXCI7XG5cbmV4cG9ydCB7IGR4U3VydmV5U2VydmljZSB9IGZyb20gXCIuLi8uLi9keFN1cnZleVNlcnZpY2VcIjtcbmV4cG9ydCB7IGVuZ2xpc2hTdHJpbmdzIH0gZnJvbSBcIi4uLy4uL2xvY2FsaXphdGlvbi9lbmdsaXNoXCI7XG5leHBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24sIHN1cnZleVN0cmluZ3MgfSBmcm9tIFwiLi4vLi4vc3VydmV5U3RyaW5nc1wiO1xuLy8gZXhwb3J0IHsgY3VsdHVyZUluZm8gfSBmcm9tIFwiLi4vLi4vY3VsdHVyZUluZm9cIjtcbmV4cG9ydCB7XG4gIFF1ZXN0aW9uQ3VzdG9tV2lkZ2V0LFxuICBDdXN0b21XaWRnZXRDb2xsZWN0aW9uXG59IGZyb20gXCIuLi8uLi9xdWVzdGlvbkN1c3RvbVdpZGdldHNcIjtcblxuZXhwb3J0IHsgU3R5bGVzTWFuYWdlciB9IGZyb20gXCIuLi8uLi9zdHlsZXNtYW5hZ2VyXCI7XG5cbi8vVW5jb21tZW50IHRvIGluY2x1ZGUgdGhlIFwiZGF0ZVwiIHF1ZXN0aW9uIHR5cGUuXG4vL2V4cG9ydCB7ZGVmYXVsdCBhcyBRdWVzdGlvbkRhdGVNb2RlbH0gZnJvbSBcIi4uLy4uL3BsdWdpbnMvcXVlc3Rpb25fZGF0ZVwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2VudHJpZXMvY2h1bmtzL21vZGVsLnRzIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vYm9vbGVhbi52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2Jvb2xlYW4udnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTFlZGI5ZGQ2XFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vYm9vbGVhbi52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvYm9vbGVhbi52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtMWVkYjlkZDZcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi0xZWRiOWRkNlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvYm9vbGVhbi52dWVcbi8vIG1vZHVsZSBpZCA9IDg0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2NoZWNrYm94LnZ1ZVwiXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vY2hlY2tib3gudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LWNhZDI3NmY2XFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vY2hlY2tib3gudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL2NoZWNrYm94LnZ1ZVwiXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi1jYWQyNzZmNlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LWNhZDI3NmY2XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9XG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoZGF0YSkge1xuICAgIGRpc3Bvc2VkID0gdHJ1ZVxuICB9KVxufSkoKX1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50LmV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Z1ZS9jaGVja2JveC52dWVcbi8vIG1vZHVsZSBpZCA9IDg1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2NoZWNrYm94aXRlbS52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2NoZWNrYm94aXRlbS52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtYzU4YzgwZDBcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9jaGVja2JveGl0ZW0udnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL2NoZWNrYm94aXRlbS52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtYzU4YzgwZDBcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi1jNThjODBkMFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvY2hlY2tib3hpdGVtLnZ1ZVxuLy8gbW9kdWxlIGlkID0gODZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vY29tbWVudC52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2NvbW1lbnQudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTA5OWMyYzhkXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vY29tbWVudC52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvY29tbWVudC52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtMDk5YzJjOGRcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi0wOTljMmM4ZFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvY29tbWVudC52dWVcbi8vIG1vZHVsZSBpZCA9IDg3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2N1c3RvbXdpZGdldC52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2N1c3RvbXdpZGdldC52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtMWU2MWE3YjdcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9jdXN0b213aWRnZXQudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL2N1c3RvbXdpZGdldC52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtMWU2MWE3YjdcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi0xZTYxYTdiN1wiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvY3VzdG9td2lkZ2V0LnZ1ZVxuLy8gbW9kdWxlIGlkID0gODhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vZHJvcGRvd24udnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9kcm9wZG93bi52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtNmIzMjE1ZDNcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9kcm9wZG93bi52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvZHJvcGRvd24udnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTZiMzIxNWQzXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtNmIzMjE1ZDNcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL2Ryb3Bkb3duLnZ1ZVxuLy8gbW9kdWxlIGlkID0gODlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vZWxlbWVudC52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2VsZW1lbnQudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTk3MzQ3MmFjXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vZWxlbWVudC52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvZWxlbWVudC52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtOTczNDcyYWNcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi05NzM0NzJhY1wiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvZWxlbWVudC52dWVcbi8vIG1vZHVsZSBpZCA9IDkwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2VsZW1lbnRoZWFkZXIudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9lbGVtZW50aGVhZGVyLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi0yN2FkYzUzN1xcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL2VsZW1lbnRoZWFkZXIudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL2VsZW1lbnRoZWFkZXIudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTI3YWRjNTM3XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtMjdhZGM1MzdcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL2VsZW1lbnRoZWFkZXIudnVlXG4vLyBtb2R1bGUgaWQgPSA5MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuLyogc2NyaXB0ICovXG5leHBvcnQgKiBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9lbXB0eS52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2VtcHR5LnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi0wNTA1MmMwYVxcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL2VtcHR5LnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG5pbXBvcnQgbm9ybWFsaXplQ29tcG9uZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXJcIlxudmFyIENvbXBvbmVudCA9IG5vcm1hbGl6ZUNvbXBvbmVudChcbiAgX192dWVfc2NyaXB0X18sXG4gIF9fdnVlX3JlbmRlcl9fLFxuICBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL3Z1ZS9lbXB0eS52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtMDUwNTJjMGFcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi0wNTA1MmMwYVwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvZW1wdHkudnVlXG4vLyBtb2R1bGUgaWQgPSA5MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuLyogc2NyaXB0ICovXG5leHBvcnQgKiBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9lcnJvcnMudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9lcnJvcnMudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTU2ODJlNmFkXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vZXJyb3JzLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG5pbXBvcnQgbm9ybWFsaXplQ29tcG9uZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXJcIlxudmFyIENvbXBvbmVudCA9IG5vcm1hbGl6ZUNvbXBvbmVudChcbiAgX192dWVfc2NyaXB0X18sXG4gIF9fdnVlX3JlbmRlcl9fLFxuICBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL3Z1ZS9lcnJvcnMudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTU2ODJlNmFkXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtNTY4MmU2YWRcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL2Vycm9ycy52dWVcbi8vIG1vZHVsZSBpZCA9IDkzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2V4cHJlc3Npb24udnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9leHByZXNzaW9uLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi0xZDIwODY1YVxcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL2V4cHJlc3Npb24udnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL2V4cHJlc3Npb24udnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTFkMjA4NjVhXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtMWQyMDg2NWFcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL2V4cHJlc3Npb24udnVlXG4vLyBtb2R1bGUgaWQgPSA5NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuLyogc2NyaXB0ICovXG5leHBvcnQgKiBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9maWxlLnZ1ZVwiXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vZmlsZS52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtMjBmNzAyODRcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9maWxlLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG5pbXBvcnQgbm9ybWFsaXplQ29tcG9uZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXJcIlxudmFyIENvbXBvbmVudCA9IG5vcm1hbGl6ZUNvbXBvbmVudChcbiAgX192dWVfc2NyaXB0X18sXG4gIF9fdnVlX3JlbmRlcl9fLFxuICBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL3Z1ZS9maWxlLnZ1ZVwiXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi0yMGY3MDI4NFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTIwZjcwMjg0XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9XG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoZGF0YSkge1xuICAgIGRpc3Bvc2VkID0gdHJ1ZVxuICB9KVxufSkoKX1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50LmV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Z1ZS9maWxlLnZ1ZVxuLy8gbW9kdWxlIGlkID0gOTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vZmxvd3BhbmVsLnZ1ZVwiXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vZmxvd3BhbmVsLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi05NmFlMWE3OFxcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL2Zsb3dwYW5lbC52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvZmxvd3BhbmVsLnZ1ZVwiXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi05NmFlMWE3OFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTk2YWUxYTc4XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9XG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoZGF0YSkge1xuICAgIGRpc3Bvc2VkID0gdHJ1ZVxuICB9KVxufSkoKX1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50LmV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Z1ZS9mbG93cGFuZWwudnVlXG4vLyBtb2R1bGUgaWQgPSA5NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuLyogc2NyaXB0ICovXG5leHBvcnQgKiBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9mbG93cGFuZWxlbGVtZW50LnZ1ZVwiXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vZmxvd3BhbmVsZWxlbWVudC52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtOWQ5OTJjMzBcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9mbG93cGFuZWxlbGVtZW50LnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG5pbXBvcnQgbm9ybWFsaXplQ29tcG9uZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXJcIlxudmFyIENvbXBvbmVudCA9IG5vcm1hbGl6ZUNvbXBvbmVudChcbiAgX192dWVfc2NyaXB0X18sXG4gIF9fdnVlX3JlbmRlcl9fLFxuICBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL3Z1ZS9mbG93cGFuZWxlbGVtZW50LnZ1ZVwiXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi05ZDk5MmMzMFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTlkOTkyYzMwXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9XG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoZGF0YSkge1xuICAgIGRpc3Bvc2VkID0gdHJ1ZVxuICB9KVxufSkoKX1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50LmV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Z1ZS9mbG93cGFuZWxlbGVtZW50LnZ1ZVxuLy8gbW9kdWxlIGlkID0gOTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vaHRtbC52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2h0bWwudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTA3NDJlMTZkXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vaHRtbC52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvaHRtbC52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtMDc0MmUxNmRcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi0wNzQyZTE2ZFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvaHRtbC52dWVcbi8vIG1vZHVsZSBpZCA9IDk4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL2ltYWdlcGlja2VyLnZ1ZVwiXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vaW1hZ2VwaWNrZXIudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTE1M2ZlMDUyXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vaW1hZ2VwaWNrZXIudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL2ltYWdlcGlja2VyLnZ1ZVwiXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi0xNTNmZTA1MlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTE1M2ZlMDUyXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9XG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoZGF0YSkge1xuICAgIGRpc3Bvc2VkID0gdHJ1ZVxuICB9KVxufSkoKX1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50LmV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Z1ZS9pbWFnZXBpY2tlci52dWVcbi8vIG1vZHVsZSBpZCA9IDk5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL21hdHJpeC52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL21hdHJpeC52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtN2ZhMmY0MDNcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9tYXRyaXgudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL21hdHJpeC52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtN2ZhMmY0MDNcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi03ZmEyZjQwM1wiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvbWF0cml4LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTAwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL21hdHJpeGNlbGwudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9tYXRyaXhjZWxsLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi0zY2E1NGVlNVxcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL21hdHJpeGNlbGwudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL21hdHJpeGNlbGwudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTNjYTU0ZWU1XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtM2NhNTRlZTVcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL21hdHJpeGNlbGwudnVlXG4vLyBtb2R1bGUgaWQgPSAxMDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vbWF0cml4ZHJvcGRvd24udnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9tYXRyaXhkcm9wZG93bi52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtMGI0ZGE2ZDhcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9tYXRyaXhkcm9wZG93bi52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvbWF0cml4ZHJvcGRvd24udnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTBiNGRhNmQ4XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtMGI0ZGE2ZDhcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL21hdHJpeGRyb3Bkb3duLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL21hdHJpeGR5bmFtaWMudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9tYXRyaXhkeW5hbWljLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi05YTBiODhlOFxcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL21hdHJpeGR5bmFtaWMudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL21hdHJpeGR5bmFtaWMudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTlhMGI4OGU4XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtOWEwYjg4ZThcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL21hdHJpeGR5bmFtaWMudnVlXG4vLyBtb2R1bGUgaWQgPSAxMDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vbWF0cml4dGFibGUudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9tYXRyaXh0YWJsZS52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtZmExOTdlNGFcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9tYXRyaXh0YWJsZS52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvbWF0cml4dGFibGUudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LWZhMTk3ZTRhXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtZmExOTdlNGFcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL21hdHJpeHRhYmxlLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTA0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL211bHRpcGxldGV4dC52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL211bHRpcGxldGV4dC52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtOTNmZTRjMDJcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9tdWx0aXBsZXRleHQudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL211bHRpcGxldGV4dC52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtOTNmZTRjMDJcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi05M2ZlNGMwMlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvbXVsdGlwbGV0ZXh0LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL290aGVyQ2hvaWNlLnZ1ZVwiXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vb3RoZXJDaG9pY2UudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTJlZDc3NmZmXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vb3RoZXJDaG9pY2UudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL290aGVyQ2hvaWNlLnZ1ZVwiXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi0yZWQ3NzZmZlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTJlZDc3NmZmXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9XG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoZGF0YSkge1xuICAgIGRpc3Bvc2VkID0gdHJ1ZVxuICB9KVxufSkoKX1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50LmV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Z1ZS9vdGhlckNob2ljZS52dWVcbi8vIG1vZHVsZSBpZCA9IDEwNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuLyogc2NyaXB0ICovXG5leHBvcnQgKiBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9wYWdlLnZ1ZVwiXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vcGFnZS52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtNGU5NjJhNTFcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9wYWdlLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG5pbXBvcnQgbm9ybWFsaXplQ29tcG9uZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXJcIlxudmFyIENvbXBvbmVudCA9IG5vcm1hbGl6ZUNvbXBvbmVudChcbiAgX192dWVfc2NyaXB0X18sXG4gIF9fdnVlX3JlbmRlcl9fLFxuICBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL3Z1ZS9wYWdlLnZ1ZVwiXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi00ZTk2MmE1MVwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTRlOTYyYTUxXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9XG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoZGF0YSkge1xuICAgIGRpc3Bvc2VkID0gdHJ1ZVxuICB9KVxufSkoKX1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50LmV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Z1ZS9wYWdlLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3BhbmVsLnZ1ZVwiXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vcGFuZWwudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTBjNzg4OTljXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vcGFuZWwudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL3BhbmVsLnZ1ZVwiXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi0wYzc4ODk5Y1wiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTBjNzg4OTljXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9XG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoZGF0YSkge1xuICAgIGRpc3Bvc2VkID0gdHJ1ZVxuICB9KVxufSkoKX1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50LmV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Z1ZS9wYW5lbC52dWVcbi8vIG1vZHVsZSBpZCA9IDEwOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuLyogc2NyaXB0ICovXG5leHBvcnQgKiBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9wYW5lbGR5bmFtaWMudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9wYW5lbGR5bmFtaWMudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTlkZGE1ZDA2XFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vcGFuZWxkeW5hbWljLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG5pbXBvcnQgbm9ybWFsaXplQ29tcG9uZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXJcIlxudmFyIENvbXBvbmVudCA9IG5vcm1hbGl6ZUNvbXBvbmVudChcbiAgX192dWVfc2NyaXB0X18sXG4gIF9fdnVlX3JlbmRlcl9fLFxuICBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL3Z1ZS9wYW5lbGR5bmFtaWMudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTlkZGE1ZDA2XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtOWRkYTVkMDZcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL3BhbmVsZHluYW1pYy52dWVcbi8vIG1vZHVsZSBpZCA9IDEwOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuLyogc2NyaXB0ICovXG5leHBvcnQgKiBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9wYW5lbGR5bmFtaWNwcm9ncmVzcy52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3BhbmVsZHluYW1pY3Byb2dyZXNzLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi03NDJiZmZhY1xcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3BhbmVsZHluYW1pY3Byb2dyZXNzLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG5pbXBvcnQgbm9ybWFsaXplQ29tcG9uZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXJcIlxudmFyIENvbXBvbmVudCA9IG5vcm1hbGl6ZUNvbXBvbmVudChcbiAgX192dWVfc2NyaXB0X18sXG4gIF9fdnVlX3JlbmRlcl9fLFxuICBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL3Z1ZS9wYW5lbGR5bmFtaWNwcm9ncmVzcy52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtNzQyYmZmYWNcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi03NDJiZmZhY1wiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvcGFuZWxkeW5hbWljcHJvZ3Jlc3MudnVlXG4vLyBtb2R1bGUgaWQgPSAxMTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vcHJvZ3Jlc3MudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9wcm9ncmVzcy52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtMjdlMzI1ZWZcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9wcm9ncmVzcy52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvcHJvZ3Jlc3MudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTI3ZTMyNWVmXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtMjdlMzI1ZWZcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL3Byb2dyZXNzLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3JhZGlvZ3JvdXAudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9yYWRpb2dyb3VwLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi0wNmM2ZDUyNlxcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3JhZGlvZ3JvdXAudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL3JhZGlvZ3JvdXAudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTA2YzZkNTI2XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtMDZjNmQ1MjZcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL3JhZGlvZ3JvdXAudnVlXG4vLyBtb2R1bGUgaWQgPSAxMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vcmFkaW9ncm91cGl0ZW0udnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi9yYWRpb2dyb3VwaXRlbS52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtNWJiZTk3YjlcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9yYWRpb2dyb3VwaXRlbS52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvcmFkaW9ncm91cGl0ZW0udnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTViYmU5N2I5XCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtNWJiZTk3YjlcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL3JhZGlvZ3JvdXBpdGVtLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3JhdGluZy52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3JhdGluZy52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtNzA5MmJmZGZcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9yYXRpbmcudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL3JhdGluZy52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtNzA5MmJmZGZcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi03MDkyYmZkZlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvcmF0aW5nLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3Jvdy52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3Jvdy52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtN2NjMGJkODhcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9yb3cudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL3Jvdy52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtN2NjMGJkODhcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi03Y2MwYmQ4OFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvcm93LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTE1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3N0cmluZy52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3N0cmluZy52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtZDNhM2Q3NWFcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zdHJpbmcudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL3N0cmluZy52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtZDNhM2Q3NWFcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi1kM2EzZDc1YVwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvc3RyaW5nLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3N1cnZleS52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3N1cnZleS52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCB7cmVuZGVyIGFzIF9fdnVlX3JlbmRlcl9fLCBzdGF0aWNSZW5kZXJGbnMgYXMgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfX30gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtNjg3NGUxYzhcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zdXJ2ZXkudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL3N1cnZleS52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtNjg3NGUxYzhcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi02ODc0ZTFjOFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvc3VydmV5LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTE3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBkaXNwb3NlZCA9IGZhbHNlXG4vKiBzY3JpcHQgKi9cbmV4cG9ydCAqIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3RleHQudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi90ZXh0LnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IHtyZW5kZXIgYXMgX192dWVfcmVuZGVyX18sIHN0YXRpY1JlbmRlckZucyBhcyBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19ffSBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXIvaW5kZXg/e1xcXCJpZFxcXCI6XFxcImRhdGEtdi00MGVjZTQyMlxcXCIsXFxcImhhc1Njb3BlZFxcXCI6ZmFsc2UsXFxcImJ1YmxlXFxcIjp7XFxcInRyYW5zZm9ybXNcXFwiOnt9fX0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3RleHQudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbmltcG9ydCBub3JtYWxpemVDb21wb25lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnQtbm9ybWFsaXplclwiXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfcmVuZGVyX18sXG4gIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX18sXG4gIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyxcbiAgX192dWVfc3R5bGVzX18sXG4gIF9fdnVlX3Njb3BlSWRfXyxcbiAgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfX1xuKVxuQ29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvdnVlL3RleHQudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTQwZWNlNDIyXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtNDBlY2U0MjJcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL3RleHQudnVlXG4vLyBtb2R1bGUgaWQgPSAxMThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGRpc3Bvc2VkID0gZmFsc2Vcbi8qIHNjcmlwdCAqL1xuZXhwb3J0ICogZnJvbSBcIiEhdHMtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wIS4vdGltZXJwYW5lbC52dWVcIlxuaW1wb3J0IF9fdnVlX3NjcmlwdF9fIGZyb20gXCIhIXRzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL3RpbWVycGFuZWwudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTBkMmFiZTIxXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vdGltZXJwYW5lbC52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IG51bGxcbi8qIHNjb3BlSWQgKi9cbnZhciBfX3Z1ZV9zY29wZUlkX18gPSBudWxsXG4vKiBtb2R1bGVJZGVudGlmaWVyIChzZXJ2ZXIgb25seSkgKi9cbnZhciBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fID0gbnVsbFxuaW1wb3J0IG5vcm1hbGl6ZUNvbXBvbmVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudC1ub3JtYWxpemVyXCJcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV9yZW5kZXJfXyxcbiAgX192dWVfc3RhdGljX3JlbmRlcl9mbnNfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy92dWUvdGltZXJwYW5lbC52dWVcIlxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtMGQyYWJlMjFcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi0wZDJhYmUyMVwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy92dWUvdGltZXJwYW5lbC52dWVcbi8vIG1vZHVsZSBpZCA9IDExOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuLyogc2NyaXB0ICovXG5leHBvcnQgKiBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi93aW5kb3cudnVlXCJcbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISF0cy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAhLi93aW5kb3cudnVlXCJcbi8qIHRlbXBsYXRlICovXG5pbXBvcnQge3JlbmRlciBhcyBfX3Z1ZV9yZW5kZXJfXywgc3RhdGljUmVuZGVyRm5zIGFzIF9fdnVlX3N0YXRpY19yZW5kZXJfZm5zX199IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LTYyZjU4OGIyXFxcIixcXFwiaGFzU2NvcGVkXFxcIjpmYWxzZSxcXFwiYnVibGVcXFwiOntcXFwidHJhbnNmb3Jtc1xcXCI6e319fSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vd2luZG93LnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG5pbXBvcnQgbm9ybWFsaXplQ29tcG9uZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50LW5vcm1hbGl6ZXJcIlxudmFyIENvbXBvbmVudCA9IG5vcm1hbGl6ZUNvbXBvbmVudChcbiAgX192dWVfc2NyaXB0X18sXG4gIF9fdnVlX3JlbmRlcl9fLFxuICBfX3Z1ZV9zdGF0aWNfcmVuZGVyX2Zuc19fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL3Z1ZS93aW5kb3cudnVlXCJcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LTYyZjU4OGIyXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtNjJmNTg4YjJcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdnVlL3dpbmRvdy52dWVcbi8vIG1vZHVsZSBpZCA9IDEyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL21haW4uc2Nzc1xuLy8gbW9kdWxlIGlkID0gMTIxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvbW9kZXJuLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDEyMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoQykgTWljcm9zb2Z0LiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXG50aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZVxuTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVEhJUyBDT0RFIElTIFBST1ZJREVEIE9OIEFOICpBUyBJUyogQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRFxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcbk1FUkNIQU5UQUJMSVRZIE9SIE5PTi1JTkZSSU5HRU1FTlQuXG5cblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbnZhciBSZWZsZWN0O1xuKGZ1bmN0aW9uIChSZWZsZWN0KSB7XG4gICAgLy8gTWV0YWRhdGEgUHJvcG9zYWxcbiAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhL1xuICAgIChmdW5jdGlvbiAoZmFjdG9yeSkge1xuICAgICAgICB2YXIgcm9vdCA9IHR5cGVvZiBnbG9iYWwgPT09IFwib2JqZWN0XCIgPyBnbG9iYWwgOlxuICAgICAgICAgICAgdHlwZW9mIHNlbGYgPT09IFwib2JqZWN0XCIgPyBzZWxmIDpcbiAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcyA9PT0gXCJvYmplY3RcIiA/IHRoaXMgOlxuICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbihcInJldHVybiB0aGlzO1wiKSgpO1xuICAgICAgICB2YXIgZXhwb3J0ZXIgPSBtYWtlRXhwb3J0ZXIoUmVmbGVjdCk7XG4gICAgICAgIGlmICh0eXBlb2Ygcm9vdC5SZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICByb290LlJlZmxlY3QgPSBSZWZsZWN0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0ZXIgPSBtYWtlRXhwb3J0ZXIocm9vdC5SZWZsZWN0LCBleHBvcnRlcik7XG4gICAgICAgIH1cbiAgICAgICAgZmFjdG9yeShleHBvcnRlcik7XG4gICAgICAgIGZ1bmN0aW9uIG1ha2VFeHBvcnRlcih0YXJnZXQsIHByZXZpb3VzKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRhcmdldFtrZXldICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzKVxuICAgICAgICAgICAgICAgICAgICBwcmV2aW91cyhrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KShmdW5jdGlvbiAoZXhwb3J0ZXIpIHtcbiAgICAgICAgdmFyIGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgICAgIC8vIGZlYXR1cmUgdGVzdCBmb3IgU3ltYm9sIHN1cHBvcnRcbiAgICAgICAgdmFyIHN1cHBvcnRzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiO1xuICAgICAgICB2YXIgdG9QcmltaXRpdmVTeW1ib2wgPSBzdXBwb3J0c1N5bWJvbCAmJiB0eXBlb2YgU3ltYm9sLnRvUHJpbWl0aXZlICE9PSBcInVuZGVmaW5lZFwiID8gU3ltYm9sLnRvUHJpbWl0aXZlIDogXCJAQHRvUHJpbWl0aXZlXCI7XG4gICAgICAgIHZhciBpdGVyYXRvclN5bWJvbCA9IHN1cHBvcnRzU3ltYm9sICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgIT09IFwidW5kZWZpbmVkXCIgPyBTeW1ib2wuaXRlcmF0b3IgOiBcIkBAaXRlcmF0b3JcIjtcbiAgICAgICAgdmFyIHN1cHBvcnRzQ3JlYXRlID0gdHlwZW9mIE9iamVjdC5jcmVhdGUgPT09IFwiZnVuY3Rpb25cIjsgLy8gZmVhdHVyZSB0ZXN0IGZvciBPYmplY3QuY3JlYXRlIHN1cHBvcnRcbiAgICAgICAgdmFyIHN1cHBvcnRzUHJvdG8gPSB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5OyAvLyBmZWF0dXJlIHRlc3QgZm9yIF9fcHJvdG9fXyBzdXBwb3J0XG4gICAgICAgIHZhciBkb3duTGV2ZWwgPSAhc3VwcG9ydHNDcmVhdGUgJiYgIXN1cHBvcnRzUHJvdG87XG4gICAgICAgIHZhciBIYXNoTWFwID0ge1xuICAgICAgICAgICAgLy8gY3JlYXRlIGFuIG9iamVjdCBpbiBkaWN0aW9uYXJ5IG1vZGUgKGEuay5hLiBcInNsb3dcIiBtb2RlIGluIHY4KVxuICAgICAgICAgICAgY3JlYXRlOiBzdXBwb3J0c0NyZWF0ZVxuICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKCkgeyByZXR1cm4gTWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSk7IH1cbiAgICAgICAgICAgICAgICA6IHN1cHBvcnRzUHJvdG9cbiAgICAgICAgICAgICAgICAgICAgPyBmdW5jdGlvbiAoKSB7IHJldHVybiBNYWtlRGljdGlvbmFyeSh7IF9fcHJvdG9fXzogbnVsbCB9KTsgfVxuICAgICAgICAgICAgICAgICAgICA6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE1ha2VEaWN0aW9uYXJ5KHt9KTsgfSxcbiAgICAgICAgICAgIGhhczogZG93bkxldmVsXG4gICAgICAgICAgICAgICAgPyBmdW5jdGlvbiAobWFwLCBrZXkpIHsgcmV0dXJuIGhhc093bi5jYWxsKG1hcCwga2V5KTsgfVxuICAgICAgICAgICAgICAgIDogZnVuY3Rpb24gKG1hcCwga2V5KSB7IHJldHVybiBrZXkgaW4gbWFwOyB9LFxuICAgICAgICAgICAgZ2V0OiBkb3duTGV2ZWxcbiAgICAgICAgICAgICAgICA/IGZ1bmN0aW9uIChtYXAsIGtleSkgeyByZXR1cm4gaGFzT3duLmNhbGwobWFwLCBrZXkpID8gbWFwW2tleV0gOiB1bmRlZmluZWQ7IH1cbiAgICAgICAgICAgICAgICA6IGZ1bmN0aW9uIChtYXAsIGtleSkgeyByZXR1cm4gbWFwW2tleV07IH0sXG4gICAgICAgIH07XG4gICAgICAgIC8vIExvYWQgZ2xvYmFsIG9yIHNoaW0gdmVyc2lvbnMgb2YgTWFwLCBTZXQsIGFuZCBXZWFrTWFwXG4gICAgICAgIHZhciBmdW5jdGlvblByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihGdW5jdGlvbik7XG4gICAgICAgIHZhciB1c2VQb2x5ZmlsbCA9IHR5cGVvZiBwcm9jZXNzID09PSBcIm9iamVjdFwiICYmIHByb2Nlc3MuZW52ICYmIHByb2Nlc3MuZW52W1wiUkVGTEVDVF9NRVRBREFUQV9VU0VfTUFQX1BPTFlGSUxMXCJdID09PSBcInRydWVcIjtcbiAgICAgICAgdmFyIF9NYXAgPSAhdXNlUG9seWZpbGwgJiYgdHlwZW9mIE1hcCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBNYXAucHJvdG90eXBlLmVudHJpZXMgPT09IFwiZnVuY3Rpb25cIiA/IE1hcCA6IENyZWF0ZU1hcFBvbHlmaWxsKCk7XG4gICAgICAgIHZhciBfU2V0ID0gIXVzZVBvbHlmaWxsICYmIHR5cGVvZiBTZXQgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU2V0LnByb3RvdHlwZS5lbnRyaWVzID09PSBcImZ1bmN0aW9uXCIgPyBTZXQgOiBDcmVhdGVTZXRQb2x5ZmlsbCgpO1xuICAgICAgICB2YXIgX1dlYWtNYXAgPSAhdXNlUG9seWZpbGwgJiYgdHlwZW9mIFdlYWtNYXAgPT09IFwiZnVuY3Rpb25cIiA/IFdlYWtNYXAgOiBDcmVhdGVXZWFrTWFwUG9seWZpbGwoKTtcbiAgICAgICAgLy8gW1tNZXRhZGF0YV1dIGludGVybmFsIHNsb3RcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnktb2JqZWN0LWludGVybmFsLW1ldGhvZHMtYW5kLWludGVybmFsLXNsb3RzXG4gICAgICAgIHZhciBNZXRhZGF0YSA9IG5ldyBfV2Vha01hcCgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQXBwbGllcyBhIHNldCBvZiBkZWNvcmF0b3JzIHRvIGEgcHJvcGVydHkgb2YgYSB0YXJnZXQgb2JqZWN0LlxuICAgICAgICAgKiBAcGFyYW0gZGVjb3JhdG9ycyBBbiBhcnJheSBvZiBkZWNvcmF0b3JzLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0LlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IHRvIGRlY29yYXRlLlxuICAgICAgICAgKiBAcGFyYW0gYXR0cmlidXRlcyAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGZvciB0aGUgdGFyZ2V0IGtleS5cbiAgICAgICAgICogQHJlbWFya3MgRGVjb3JhdG9ycyBhcmUgYXBwbGllZCBpbiByZXZlcnNlIG9yZGVyLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHkgZGVjbGFyYXRpb25zIGFyZSBub3QgcGFydCBvZiBFUzYsIHRob3VnaCB0aGV5IGFyZSB2YWxpZCBpbiBUeXBlU2NyaXB0OlxuICAgICAgICAgKiAgICAgICAgIC8vIHN0YXRpYyBzdGF0aWNQcm9wZXJ0eTtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgICAgICBjb25zdHJ1Y3RvcihwKSB7IH1cbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICBFeGFtcGxlID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzQXJyYXksIEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzQXJyYXksIEV4YW1wbGUsIFwic3RhdGljUHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzQXJyYXksIEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiLFxuICAgICAgICAgKiAgICAgICAgIFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9yc0FycmF5LCBFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiLFxuICAgICAgICAgKiAgICAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpKSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIixcbiAgICAgICAgICogICAgICAgICBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnNBcnJheSwgRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIsXG4gICAgICAgICAqICAgICAgICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpKSk7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBkZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIHByb3BlcnR5S2V5LCBhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSkge1xuICAgICAgICAgICAgICAgIGlmICghSXNBcnJheShkZWNvcmF0b3JzKSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QoYXR0cmlidXRlcykgJiYgIUlzVW5kZWZpbmVkKGF0dHJpYnV0ZXMpICYmICFJc051bGwoYXR0cmlidXRlcykpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBpZiAoSXNOdWxsKGF0dHJpYnV0ZXMpKVxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIERlY29yYXRlUHJvcGVydHkoZGVjb3JhdG9ycywgdGFyZ2V0LCBwcm9wZXJ0eUtleSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIUlzQXJyYXkoZGVjb3JhdG9ycykpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBpZiAoIUlzQ29uc3RydWN0b3IodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBEZWNvcmF0ZUNvbnN0cnVjdG9yKGRlY29yYXRvcnMsIHRhcmdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJkZWNvcmF0ZVwiLCBkZWNvcmF0ZSk7XG4gICAgICAgIC8vIDQuMS4yIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI3JlZmxlY3QubWV0YWRhdGFcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgZGVmYXVsdCBtZXRhZGF0YSBkZWNvcmF0b3IgZmFjdG9yeSB0aGF0IGNhbiBiZSB1c2VkIG9uIGEgY2xhc3MsIGNsYXNzIG1lbWJlciwgb3IgcGFyYW1ldGVyLlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgVGhlIGtleSBmb3IgdGhlIG1ldGFkYXRhIGVudHJ5LlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFWYWx1ZSBUaGUgdmFsdWUgZm9yIHRoZSBtZXRhZGF0YSBlbnRyeS5cbiAgICAgICAgICogQHJldHVybnMgQSBkZWNvcmF0b3IgZnVuY3Rpb24uXG4gICAgICAgICAqIEByZW1hcmtzXG4gICAgICAgICAqIElmIGBtZXRhZGF0YUtleWAgaXMgYWxyZWFkeSBkZWZpbmVkIGZvciB0aGUgdGFyZ2V0IGFuZCB0YXJnZXQga2V5LCB0aGVcbiAgICAgICAgICogbWV0YWRhdGFWYWx1ZSBmb3IgdGhhdCBrZXkgd2lsbCBiZSBvdmVyd3JpdHRlbi5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICBAUmVmbGVjdC5tZXRhZGF0YShrZXksIHZhbHVlKVxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IsIFR5cGVTY3JpcHQgb25seSlcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIEBSZWZsZWN0Lm1ldGFkYXRhKGtleSwgdmFsdWUpXG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSwgVHlwZVNjcmlwdCBvbmx5KVxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgQFJlZmxlY3QubWV0YWRhdGEoa2V5LCB2YWx1ZSlcbiAgICAgICAgICogICAgICAgICBwcm9wZXJ0eTtcbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICBAUmVmbGVjdC5tZXRhZGF0YShrZXksIHZhbHVlKVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QoKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgQFJlZmxlY3QubWV0YWRhdGEoa2V5LCB2YWx1ZSlcbiAgICAgICAgICogICAgICAgICBtZXRob2QoKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIG1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XG4gICAgICAgICAgICBmdW5jdGlvbiBkZWNvcmF0b3IodGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpICYmICFJc1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIE9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGRlY29yYXRvcjtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcIm1ldGFkYXRhXCIsIG1ldGFkYXRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlZmluZSBhIHVuaXF1ZSBtZXRhZGF0YSBlbnRyeSBvbiB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSBtZXRhZGF0YVZhbHVlIEEgdmFsdWUgdGhhdCBjb250YWlucyBhdHRhY2hlZCBtZXRhZGF0YS5cbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCBvbiB3aGljaCB0byBkZWZpbmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgb3B0aW9ucywgRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBkZWNvcmF0b3IgZmFjdG9yeSBhcyBtZXRhZGF0YS1wcm9kdWNpbmcgYW5ub3RhdGlvbi5cbiAgICAgICAgICogICAgIGZ1bmN0aW9uIE15QW5ub3RhdGlvbihvcHRpb25zKTogRGVjb3JhdG9yIHtcbiAgICAgICAgICogICAgICAgICByZXR1cm4gKHRhcmdldCwga2V5PykgPT4gUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIG9wdGlvbnMsIHRhcmdldCwga2V5KTtcbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGRlZmluZU1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlLCB0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkpXG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeURlZmluZU93bk1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImRlZmluZU1ldGFkYXRhXCIsIGRlZmluZU1ldGFkYXRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhcmdldCBvYmplY3Qgb3IgaXRzIHByb3RvdHlwZSBjaGFpbiBoYXMgdGhlIHByb3ZpZGVkIG1ldGFkYXRhIGtleSBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdGhlIG1ldGFkYXRhIGlzIGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbWV0YWRhdGEga2V5IHdhcyBkZWZpbmVkIG9uIHRoZSB0YXJnZXQgb2JqZWN0IG9yIGl0cyBwcm90b3R5cGUgY2hhaW47IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBhcnQgb2YgRVM2LCB0aG91Z2ggdGhleSBhcmUgdmFsaWQgaW4gVHlwZVNjcmlwdDpcbiAgICAgICAgICogICAgICAgICAvLyBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAgICAgY29uc3RydWN0b3IocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgICAgICBtZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBjb25zdHJ1Y3RvclxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljUHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuaGFzTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUucHJvdG90eXBlLCBcIm1ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGhhc01ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkpXG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeUhhc01ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImhhc01ldGFkYXRhXCIsIGhhc01ldGFkYXRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhcmdldCBvYmplY3QgaGFzIHRoZSBwcm92aWRlZCBtZXRhZGF0YSBrZXkgZGVmaW5lZC5cbiAgICAgICAgICogQHBhcmFtIG1ldGFkYXRhS2V5IEEga2V5IHVzZWQgdG8gc3RvcmUgYW5kIHJldHJpZXZlIG1ldGFkYXRhLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG1ldGFkYXRhIGtleSB3YXMgZGVmaW5lZCBvbiB0aGUgdGFyZ2V0IG9iamVjdDsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHkgZGVjbGFyYXRpb25zIGFyZSBub3QgcGFydCBvZiBFUzYsIHRob3VnaCB0aGV5IGFyZSB2YWxpZCBpbiBUeXBlU2NyaXB0OlxuICAgICAgICAgKiAgICAgICAgIC8vIHN0YXRpYyBzdGF0aWNQcm9wZXJ0eTtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgICAgICBjb25zdHJ1Y3RvcihwKSB7IH1cbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNQcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwicHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNPd25NZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gaGFzT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUtleSA9IFRvUHJvcGVydHlLZXkocHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIE9yZGluYXJ5SGFzT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydGVyKFwiaGFzT3duTWV0YWRhdGFcIiwgaGFzT3duTWV0YWRhdGEpO1xuICAgICAgICAvKipcbiAgICAgICAgICogR2V0cyB0aGUgbWV0YWRhdGEgdmFsdWUgZm9yIHRoZSBwcm92aWRlZCBtZXRhZGF0YSBrZXkgb24gdGhlIHRhcmdldCBvYmplY3Qgb3IgaXRzIHByb3RvdHlwZSBjaGFpbi5cbiAgICAgICAgICogQHBhcmFtIG1ldGFkYXRhS2V5IEEga2V5IHVzZWQgdG8gc3RvcmUgYW5kIHJldHJpZXZlIG1ldGFkYXRhLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBUaGUgbWV0YWRhdGEgdmFsdWUgZm9yIHRoZSBtZXRhZGF0YSBrZXkgaWYgZm91bmQ7IG90aGVyd2lzZSwgYHVuZGVmaW5lZGAuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnZXRNZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlHZXRNZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJnZXRNZXRhZGF0YVwiLCBnZXRNZXRhZGF0YSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBtZXRhZGF0YSB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIG1ldGFkYXRhIGtleSBvbiB0aGUgdGFyZ2V0IG9iamVjdC5cbiAgICAgICAgICogQHBhcmFtIG1ldGFkYXRhS2V5IEEga2V5IHVzZWQgdG8gc3RvcmUgYW5kIHJldHJpZXZlIG1ldGFkYXRhLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBUaGUgbWV0YWRhdGEgdmFsdWUgZm9yIHRoZSBtZXRhZGF0YSBrZXkgaWYgZm91bmQ7IG90aGVyd2lzZSwgYHVuZGVmaW5lZGAuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnZXRPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlHZXRPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJnZXRPd25NZXRhZGF0YVwiLCBnZXRPd25NZXRhZGF0YSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBtZXRhZGF0YSBrZXlzIGRlZmluZWQgb24gdGhlIHRhcmdldCBvYmplY3Qgb3IgaXRzIHByb3RvdHlwZSBjaGFpbi5cbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCBvbiB3aGljaCB0aGUgbWV0YWRhdGEgaXMgZGVmaW5lZC5cbiAgICAgICAgICogQHBhcmFtIHByb3BlcnR5S2V5IChPcHRpb25hbCkgVGhlIHByb3BlcnR5IGtleSBmb3IgdGhlIHRhcmdldC5cbiAgICAgICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgdW5pcXVlIG1ldGFkYXRhIGtleXMuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGFLZXlzKEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YUtleXMoRXhhbXBsZSwgXCJzdGF0aWNQcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE1ldGFkYXRhS2V5cyhFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE1ldGFkYXRhS2V5cyhFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YUtleXMoRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZ2V0TWV0YWRhdGFLZXlzKHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUtleSA9IFRvUHJvcGVydHlLZXkocHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIE9yZGluYXJ5TWV0YWRhdGFLZXlzKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydGVyKFwiZ2V0TWV0YWRhdGFLZXlzXCIsIGdldE1ldGFkYXRhS2V5cyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSB1bmlxdWUgbWV0YWRhdGEga2V5cyBkZWZpbmVkIG9uIHRoZSB0YXJnZXQgb2JqZWN0LlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB1bmlxdWUgbWV0YWRhdGEga2V5cy5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBhcnQgb2YgRVM2LCB0aG91Z2ggdGhleSBhcmUgdmFsaWQgaW4gVHlwZVNjcmlwdDpcbiAgICAgICAgICogICAgICAgICAvLyBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAgICAgY29uc3RydWN0b3IocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgICAgICBtZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBjb25zdHJ1Y3RvclxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YUtleXMoRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhS2V5cyhFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGFLZXlzKEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGFLZXlzKEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhS2V5cyhFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnZXRPd25NZXRhZGF0YUtleXModGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlPd25NZXRhZGF0YUtleXModGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJnZXRPd25NZXRhZGF0YUtleXNcIiwgZ2V0T3duTWV0YWRhdGFLZXlzKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlbGV0ZXMgdGhlIG1ldGFkYXRhIGVudHJ5IGZyb20gdGhlIHRhcmdldCBvYmplY3Qgd2l0aCB0aGUgcHJvdmlkZWQga2V5LlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdGhlIG1ldGFkYXRhIGlzIGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbWV0YWRhdGEgZW50cnkgd2FzIGZvdW5kIGFuZCBkZWxldGVkOyBvdGhlcndpc2UsIGZhbHNlLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHkgZGVjbGFyYXRpb25zIGFyZSBub3QgcGFydCBvZiBFUzYsIHRob3VnaCB0aGV5IGFyZSB2YWxpZCBpbiBUeXBlU2NyaXB0OlxuICAgICAgICAgKiAgICAgICAgIC8vIHN0YXRpYyBzdGF0aWNQcm9wZXJ0eTtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgICAgICBjb25zdHJ1Y3RvcihwKSB7IH1cbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNQcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwicHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5kZWxldGVNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZGVsZXRlTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUtleSA9IFRvUHJvcGVydHlLZXkocHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgdmFyIG1ldGFkYXRhTWFwID0gR2V0T3JDcmVhdGVNZXRhZGF0YU1hcCh0YXJnZXQsIHByb3BlcnR5S2V5LCAvKkNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChtZXRhZGF0YU1hcCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFtZXRhZGF0YU1hcC5kZWxldGUobWV0YWRhdGFLZXkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGlmIChtZXRhZGF0YU1hcC5zaXplID4gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIHZhciB0YXJnZXRNZXRhZGF0YSA9IE1ldGFkYXRhLmdldCh0YXJnZXQpO1xuICAgICAgICAgICAgdGFyZ2V0TWV0YWRhdGEuZGVsZXRlKHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIGlmICh0YXJnZXRNZXRhZGF0YS5zaXplID4gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIE1ldGFkYXRhLmRlbGV0ZSh0YXJnZXQpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJkZWxldGVNZXRhZGF0YVwiLCBkZWxldGVNZXRhZGF0YSk7XG4gICAgICAgIGZ1bmN0aW9uIERlY29yYXRlQ29uc3RydWN0b3IoZGVjb3JhdG9ycywgdGFyZ2V0KSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgICAgIHZhciBkZWNvcmF0b3IgPSBkZWNvcmF0b3JzW2ldO1xuICAgICAgICAgICAgICAgIHZhciBkZWNvcmF0ZWQgPSBkZWNvcmF0b3IodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKGRlY29yYXRlZCkgJiYgIUlzTnVsbChkZWNvcmF0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNDb25zdHJ1Y3RvcihkZWNvcmF0ZWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSBkZWNvcmF0ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBEZWNvcmF0ZVByb3BlcnR5KGRlY29yYXRvcnMsIHRhcmdldCwgcHJvcGVydHlLZXksIGRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRlY29yYXRvciA9IGRlY29yYXRvcnNbaV07XG4gICAgICAgICAgICAgICAgdmFyIGRlY29yYXRlZCA9IGRlY29yYXRvcih0YXJnZXQsIHByb3BlcnR5S2V5LCBkZXNjcmlwdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKGRlY29yYXRlZCkgJiYgIUlzTnVsbChkZWNvcmF0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QoZGVjb3JhdGVkKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvciA9IGRlY29yYXRlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBHZXRPckNyZWF0ZU1ldGFkYXRhTWFwKE8sIFAsIENyZWF0ZSkge1xuICAgICAgICAgICAgdmFyIHRhcmdldE1ldGFkYXRhID0gTWV0YWRhdGEuZ2V0KE8pO1xuICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKHRhcmdldE1ldGFkYXRhKSkge1xuICAgICAgICAgICAgICAgIGlmICghQ3JlYXRlKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHRhcmdldE1ldGFkYXRhID0gbmV3IF9NYXAoKTtcbiAgICAgICAgICAgICAgICBNZXRhZGF0YS5zZXQoTywgdGFyZ2V0TWV0YWRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIG1ldGFkYXRhTWFwID0gdGFyZ2V0TWV0YWRhdGEuZ2V0KFApO1xuICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKG1ldGFkYXRhTWFwKSkge1xuICAgICAgICAgICAgICAgIGlmICghQ3JlYXRlKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhTWFwID0gbmV3IF9NYXAoKTtcbiAgICAgICAgICAgICAgICB0YXJnZXRNZXRhZGF0YS5zZXQoUCwgbWV0YWRhdGFNYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1ldGFkYXRhTWFwO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuMS4xLjEgT3JkaW5hcnlIYXNNZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUClcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnloYXNtZXRhZGF0YVxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUhhc01ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gICAgICAgICAgICB2YXIgaGFzT3duID0gT3JkaW5hcnlIYXNPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCk7XG4gICAgICAgICAgICBpZiAoaGFzT3duKVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgdmFyIHBhcmVudCA9IE9yZGluYXJ5R2V0UHJvdG90eXBlT2YoTyk7XG4gICAgICAgICAgICBpZiAoIUlzTnVsbChwYXJlbnQpKVxuICAgICAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeUhhc01ldGFkYXRhKE1ldGFkYXRhS2V5LCBwYXJlbnQsIFApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuMS4yLjEgT3JkaW5hcnlIYXNPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUClcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnloYXNvd25tZXRhZGF0YVxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUhhc093bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gICAgICAgICAgICB2YXIgbWV0YWRhdGFNYXAgPSBHZXRPckNyZWF0ZU1ldGFkYXRhTWFwKE8sIFAsIC8qQ3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKG1ldGFkYXRhTWFwKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gVG9Cb29sZWFuKG1ldGFkYXRhTWFwLmhhcyhNZXRhZGF0YUtleSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuMS4zLjEgT3JkaW5hcnlHZXRNZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUClcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnlnZXRtZXRhZGF0YVxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUdldE1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gICAgICAgICAgICB2YXIgaGFzT3duID0gT3JkaW5hcnlIYXNPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCk7XG4gICAgICAgICAgICBpZiAoaGFzT3duKVxuICAgICAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeUdldE93bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKTtcbiAgICAgICAgICAgIHZhciBwYXJlbnQgPSBPcmRpbmFyeUdldFByb3RvdHlwZU9mKE8pO1xuICAgICAgICAgICAgaWYgKCFJc051bGwocGFyZW50KSlcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlHZXRNZXRhZGF0YShNZXRhZGF0YUtleSwgcGFyZW50LCBQKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMy4xLjQuMSBPcmRpbmFyeUdldE93bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKVxuICAgICAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhLyNvcmRpbmFyeWdldG93bm1ldGFkYXRhXG4gICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5R2V0T3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApIHtcbiAgICAgICAgICAgIHZhciBtZXRhZGF0YU1hcCA9IEdldE9yQ3JlYXRlTWV0YWRhdGFNYXAoTywgUCwgLypDcmVhdGUqLyBmYWxzZSk7XG4gICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQobWV0YWRhdGFNYXApKVxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXR1cm4gbWV0YWRhdGFNYXAuZ2V0KE1ldGFkYXRhS2V5KTtcbiAgICAgICAgfVxuICAgICAgICAvLyAzLjEuNS4xIE9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE1ldGFkYXRhVmFsdWUsIE8sIFApXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5ZGVmaW5lb3dubWV0YWRhdGFcbiAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlEZWZpbmVPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTWV0YWRhdGFWYWx1ZSwgTywgUCkge1xuICAgICAgICAgICAgdmFyIG1ldGFkYXRhTWFwID0gR2V0T3JDcmVhdGVNZXRhZGF0YU1hcChPLCBQLCAvKkNyZWF0ZSovIHRydWUpO1xuICAgICAgICAgICAgbWV0YWRhdGFNYXAuc2V0KE1ldGFkYXRhS2V5LCBNZXRhZGF0YVZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyAzLjEuNi4xIE9yZGluYXJ5TWV0YWRhdGFLZXlzKE8sIFApXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5bWV0YWRhdGFrZXlzXG4gICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5TWV0YWRhdGFLZXlzKE8sIFApIHtcbiAgICAgICAgICAgIHZhciBvd25LZXlzID0gT3JkaW5hcnlPd25NZXRhZGF0YUtleXMoTywgUCk7XG4gICAgICAgICAgICB2YXIgcGFyZW50ID0gT3JkaW5hcnlHZXRQcm90b3R5cGVPZihPKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG93bktleXM7XG4gICAgICAgICAgICB2YXIgcGFyZW50S2V5cyA9IE9yZGluYXJ5TWV0YWRhdGFLZXlzKHBhcmVudCwgUCk7XG4gICAgICAgICAgICBpZiAocGFyZW50S2V5cy5sZW5ndGggPD0gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gb3duS2V5cztcbiAgICAgICAgICAgIGlmIChvd25LZXlzLmxlbmd0aCA8PSAwKVxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnRLZXlzO1xuICAgICAgICAgICAgdmFyIHNldCA9IG5ldyBfU2V0KCk7XG4gICAgICAgICAgICB2YXIga2V5cyA9IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBvd25LZXlzXzEgPSBvd25LZXlzOyBfaSA8IG93bktleXNfMS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0gb3duS2V5c18xW19pXTtcbiAgICAgICAgICAgICAgICB2YXIgaGFzS2V5ID0gc2V0LmhhcyhrZXkpO1xuICAgICAgICAgICAgICAgIGlmICghaGFzS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldC5hZGQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgX2EgPSAwLCBwYXJlbnRLZXlzXzEgPSBwYXJlbnRLZXlzOyBfYSA8IHBhcmVudEtleXNfMS5sZW5ndGg7IF9hKyspIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0gcGFyZW50S2V5c18xW19hXTtcbiAgICAgICAgICAgICAgICB2YXIgaGFzS2V5ID0gc2V0LmhhcyhrZXkpO1xuICAgICAgICAgICAgICAgIGlmICghaGFzS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldC5hZGQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMy4xLjcuMSBPcmRpbmFyeU93bk1ldGFkYXRhS2V5cyhPLCBQKVxuICAgICAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhLyNvcmRpbmFyeW93bm1ldGFkYXRha2V5c1xuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeU93bk1ldGFkYXRhS2V5cyhPLCBQKSB7XG4gICAgICAgICAgICB2YXIga2V5cyA9IFtdO1xuICAgICAgICAgICAgdmFyIG1ldGFkYXRhTWFwID0gR2V0T3JDcmVhdGVNZXRhZGF0YU1hcChPLCBQLCAvKkNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChtZXRhZGF0YU1hcCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgICAgICB2YXIga2V5c09iaiA9IG1ldGFkYXRhTWFwLmtleXMoKTtcbiAgICAgICAgICAgIHZhciBpdGVyYXRvciA9IEdldEl0ZXJhdG9yKGtleXNPYmopO1xuICAgICAgICAgICAgdmFyIGsgPSAwO1xuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IEl0ZXJhdG9yU3RlcChpdGVyYXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIGtleXMubGVuZ3RoID0gaztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBuZXh0VmFsdWUgPSBJdGVyYXRvclZhbHVlKG5leHQpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGtleXNba10gPSBuZXh0VmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaysrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIDYgRUNNQVNjcmlwdCBEYXRhIFR5cDBlcyBhbmQgVmFsdWVzXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWVjbWFzY3JpcHQtZGF0YS10eXBlcy1hbmQtdmFsdWVzXG4gICAgICAgIGZ1bmN0aW9uIFR5cGUoeCkge1xuICAgICAgICAgICAgaWYgKHggPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIDEgLyogTnVsbCAqLztcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHgpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6IHJldHVybiAwIC8qIFVuZGVmaW5lZCAqLztcbiAgICAgICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOiByZXR1cm4gMiAvKiBCb29sZWFuICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjogcmV0dXJuIDMgLyogU3RyaW5nICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjogcmV0dXJuIDQgLyogU3ltYm9sICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjogcmV0dXJuIDUgLyogTnVtYmVyICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjogcmV0dXJuIHggPT09IG51bGwgPyAxIC8qIE51bGwgKi8gOiA2IC8qIE9iamVjdCAqLztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gNiAvKiBPYmplY3QgKi87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gNi4xLjEgVGhlIFVuZGVmaW5lZCBUeXBlXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMtdW5kZWZpbmVkLXR5cGVcbiAgICAgICAgZnVuY3Rpb24gSXNVbmRlZmluZWQoeCkge1xuICAgICAgICAgICAgcmV0dXJuIHggPT09IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyA2LjEuMiBUaGUgTnVsbCBUeXBlXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMtbnVsbC10eXBlXG4gICAgICAgIGZ1bmN0aW9uIElzTnVsbCh4KSB7XG4gICAgICAgICAgICByZXR1cm4geCA9PT0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICAvLyA2LjEuNSBUaGUgU3ltYm9sIFR5cGVcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcy1zeW1ib2wtdHlwZVxuICAgICAgICBmdW5jdGlvbiBJc1N5bWJvbCh4KSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHggPT09IFwic3ltYm9sXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNi4xLjcgVGhlIE9iamVjdCBUeXBlXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC10eXBlXG4gICAgICAgIGZ1bmN0aW9uIElzT2JqZWN0KHgpIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiA/IHggIT09IG51bGwgOiB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMSBUeXBlIENvbnZlcnNpb25cbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdHlwZS1jb252ZXJzaW9uXG4gICAgICAgIC8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b3ByaW1pdGl2ZVxuICAgICAgICBmdW5jdGlvbiBUb1ByaW1pdGl2ZShpbnB1dCwgUHJlZmVycmVkVHlwZSkge1xuICAgICAgICAgICAgc3dpdGNoIChUeXBlKGlucHV0KSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMCAvKiBVbmRlZmluZWQgKi86IHJldHVybiBpbnB1dDtcbiAgICAgICAgICAgICAgICBjYXNlIDEgLyogTnVsbCAqLzogcmV0dXJuIGlucHV0O1xuICAgICAgICAgICAgICAgIGNhc2UgMiAvKiBCb29sZWFuICovOiByZXR1cm4gaW5wdXQ7XG4gICAgICAgICAgICAgICAgY2FzZSAzIC8qIFN0cmluZyAqLzogcmV0dXJuIGlucHV0O1xuICAgICAgICAgICAgICAgIGNhc2UgNCAvKiBTeW1ib2wgKi86IHJldHVybiBpbnB1dDtcbiAgICAgICAgICAgICAgICBjYXNlIDUgLyogTnVtYmVyICovOiByZXR1cm4gaW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaGludCA9IFByZWZlcnJlZFR5cGUgPT09IDMgLyogU3RyaW5nICovID8gXCJzdHJpbmdcIiA6IFByZWZlcnJlZFR5cGUgPT09IDUgLyogTnVtYmVyICovID8gXCJudW1iZXJcIiA6IFwiZGVmYXVsdFwiO1xuICAgICAgICAgICAgdmFyIGV4b3RpY1RvUHJpbSA9IEdldE1ldGhvZChpbnB1dCwgdG9QcmltaXRpdmVTeW1ib2wpO1xuICAgICAgICAgICAgaWYgKGV4b3RpY1RvUHJpbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGV4b3RpY1RvUHJpbS5jYWxsKGlucHV0LCBoaW50KTtcbiAgICAgICAgICAgICAgICBpZiAoSXNPYmplY3QocmVzdWx0KSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlUb1ByaW1pdGl2ZShpbnB1dCwgaGludCA9PT0gXCJkZWZhdWx0XCIgPyBcIm51bWJlclwiIDogaGludCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4xLjEuMSBPcmRpbmFyeVRvUHJpbWl0aXZlKE8sIGhpbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbiAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlUb1ByaW1pdGl2ZShPLCBoaW50KSB7XG4gICAgICAgICAgICBpZiAoaGludCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHZhciB0b1N0cmluZ18xID0gTy50b1N0cmluZztcbiAgICAgICAgICAgICAgICBpZiAoSXNDYWxsYWJsZSh0b1N0cmluZ18xKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdG9TdHJpbmdfMS5jYWxsKE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVPZiA9IE8udmFsdWVPZjtcbiAgICAgICAgICAgICAgICBpZiAoSXNDYWxsYWJsZSh2YWx1ZU9mKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdmFsdWVPZi5jYWxsKE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciB2YWx1ZU9mID0gTy52YWx1ZU9mO1xuICAgICAgICAgICAgICAgIGlmIChJc0NhbGxhYmxlKHZhbHVlT2YpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB2YWx1ZU9mLmNhbGwoTyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QocmVzdWx0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB0b1N0cmluZ18yID0gTy50b1N0cmluZztcbiAgICAgICAgICAgICAgICBpZiAoSXNDYWxsYWJsZSh0b1N0cmluZ18yKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdG9TdHJpbmdfMi5jYWxsKE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjEuMiBUb0Jvb2xlYW4oYXJndW1lbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8yMDE2LyNzZWMtdG9ib29sZWFuXG4gICAgICAgIGZ1bmN0aW9uIFRvQm9vbGVhbihhcmd1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuICEhYXJndW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4xLjEyIFRvU3RyaW5nKGFyZ3VtZW50KVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b3N0cmluZ1xuICAgICAgICBmdW5jdGlvbiBUb1N0cmluZyhhcmd1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCIgKyBhcmd1bWVudDtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjEuMTQgVG9Qcm9wZXJ0eUtleShhcmd1bWVudClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdG9wcm9wZXJ0eWtleVxuICAgICAgICBmdW5jdGlvbiBUb1Byb3BlcnR5S2V5KGFyZ3VtZW50KSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gVG9QcmltaXRpdmUoYXJndW1lbnQsIDMgLyogU3RyaW5nICovKTtcbiAgICAgICAgICAgIGlmIChJc1N5bWJvbChrZXkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgICAgICByZXR1cm4gVG9TdHJpbmcoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjIgVGVzdGluZyBhbmQgQ29tcGFyaXNvbiBPcGVyYXRpb25zXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRlc3RpbmctYW5kLWNvbXBhcmlzb24tb3BlcmF0aW9uc1xuICAgICAgICAvLyA3LjIuMiBJc0FycmF5KGFyZ3VtZW50KVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pc2FycmF5XG4gICAgICAgIGZ1bmN0aW9uIElzQXJyYXkoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5XG4gICAgICAgICAgICAgICAgPyBBcnJheS5pc0FycmF5KGFyZ3VtZW50KVxuICAgICAgICAgICAgICAgIDogYXJndW1lbnQgaW5zdGFuY2VvZiBPYmplY3RcbiAgICAgICAgICAgICAgICAgICAgPyBhcmd1bWVudCBpbnN0YW5jZW9mIEFycmF5XG4gICAgICAgICAgICAgICAgICAgIDogT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KSA9PT0gXCJbb2JqZWN0IEFycmF5XVwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMi4zIElzQ2FsbGFibGUoYXJndW1lbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWlzY2FsbGFibGVcbiAgICAgICAgZnVuY3Rpb24gSXNDYWxsYWJsZShhcmd1bWVudCkge1xuICAgICAgICAgICAgLy8gTk9URTogVGhpcyBpcyBhbiBhcHByb3hpbWF0aW9uIGFzIHdlIGNhbm5vdCBjaGVjayBmb3IgW1tDYWxsXV0gaW50ZXJuYWwgbWV0aG9kLlxuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBhcmd1bWVudCA9PT0gXCJmdW5jdGlvblwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMi40IElzQ29uc3RydWN0b3IoYXJndW1lbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWlzY29uc3RydWN0b3JcbiAgICAgICAgZnVuY3Rpb24gSXNDb25zdHJ1Y3Rvcihhcmd1bWVudCkge1xuICAgICAgICAgICAgLy8gTk9URTogVGhpcyBpcyBhbiBhcHByb3hpbWF0aW9uIGFzIHdlIGNhbm5vdCBjaGVjayBmb3IgW1tDb25zdHJ1Y3RdXSBpbnRlcm5hbCBtZXRob2QuXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09PSBcImZ1bmN0aW9uXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4yLjcgSXNQcm9wZXJ0eUtleShhcmd1bWVudClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXNwcm9wZXJ0eWtleVxuICAgICAgICBmdW5jdGlvbiBJc1Byb3BlcnR5S2V5KGFyZ3VtZW50KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKFR5cGUoYXJndW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAzIC8qIFN0cmluZyAqLzogcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgY2FzZSA0IC8qIFN5bWJvbCAqLzogcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIDcuMyBPcGVyYXRpb25zIG9uIE9iamVjdHNcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb3BlcmF0aW9ucy1vbi1vYmplY3RzXG4gICAgICAgIC8vIDcuMy45IEdldE1ldGhvZChWLCBQKVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1nZXRtZXRob2RcbiAgICAgICAgZnVuY3Rpb24gR2V0TWV0aG9kKFYsIFApIHtcbiAgICAgICAgICAgIHZhciBmdW5jID0gVltQXTtcbiAgICAgICAgICAgIGlmIChmdW5jID09PSB1bmRlZmluZWQgfHwgZnVuYyA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCFJc0NhbGxhYmxlKGZ1bmMpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuNCBPcGVyYXRpb25zIG9uIEl0ZXJhdG9yIE9iamVjdHNcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb3BlcmF0aW9ucy1vbi1pdGVyYXRvci1vYmplY3RzXG4gICAgICAgIGZ1bmN0aW9uIEdldEl0ZXJhdG9yKG9iaikge1xuICAgICAgICAgICAgdmFyIG1ldGhvZCA9IEdldE1ldGhvZChvYmosIGl0ZXJhdG9yU3ltYm9sKTtcbiAgICAgICAgICAgIGlmICghSXNDYWxsYWJsZShtZXRob2QpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTsgLy8gZnJvbSBDYWxsXG4gICAgICAgICAgICB2YXIgaXRlcmF0b3IgPSBtZXRob2QuY2FsbChvYmopO1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdChpdGVyYXRvcikpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuNC40IEl0ZXJhdG9yVmFsdWUoaXRlclJlc3VsdClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLzIwMTYvI3NlYy1pdGVyYXRvcnZhbHVlXG4gICAgICAgIGZ1bmN0aW9uIEl0ZXJhdG9yVmFsdWUoaXRlclJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZXJSZXN1bHQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy40LjUgSXRlcmF0b3JTdGVwKGl0ZXJhdG9yKVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pdGVyYXRvcnN0ZXBcbiAgICAgICAgZnVuY3Rpb24gSXRlcmF0b3JTdGVwKGl0ZXJhdG9yKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5kb25lID8gZmFsc2UgOiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy40LjYgSXRlcmF0b3JDbG9zZShpdGVyYXRvciwgY29tcGxldGlvbilcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXRlcmF0b3JjbG9zZVxuICAgICAgICBmdW5jdGlvbiBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yKSB7XG4gICAgICAgICAgICB2YXIgZiA9IGl0ZXJhdG9yW1wicmV0dXJuXCJdO1xuICAgICAgICAgICAgaWYgKGYpXG4gICAgICAgICAgICAgICAgZi5jYWxsKGl0ZXJhdG9yKTtcbiAgICAgICAgfVxuICAgICAgICAvLyA5LjEgT3JkaW5hcnkgT2JqZWN0IEludGVybmFsIE1ldGhvZHMgYW5kIEludGVybmFsIFNsb3RzXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9yZGluYXJ5LW9iamVjdC1pbnRlcm5hbC1tZXRob2RzLWFuZC1pbnRlcm5hbC1zbG90c1xuICAgICAgICAvLyA5LjEuMS4xIE9yZGluYXJ5R2V0UHJvdG90eXBlT2YoTylcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb3JkaW5hcnlnZXRwcm90b3R5cGVvZlxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUdldFByb3RvdHlwZU9mKE8pIHtcbiAgICAgICAgICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihPKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgTyAhPT0gXCJmdW5jdGlvblwiIHx8IE8gPT09IGZ1bmN0aW9uUHJvdG90eXBlKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm90bztcbiAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgZG9lc24ndCBzZXQgX19wcm90b19fIGluIEVTNSwgYXMgaXQncyBub24tc3RhbmRhcmQuXG4gICAgICAgICAgICAvLyBUcnkgdG8gZGV0ZXJtaW5lIHRoZSBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLiBDb21wYXRpYmxlIGltcGxlbWVudGF0aW9uc1xuICAgICAgICAgICAgLy8gbXVzdCBlaXRoZXIgc2V0IF9fcHJvdG9fXyBvbiBhIHN1YmNsYXNzIGNvbnN0cnVjdG9yIHRvIHRoZSBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLFxuICAgICAgICAgICAgLy8gb3IgZW5zdXJlIGVhY2ggY2xhc3MgaGFzIGEgdmFsaWQgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSBvbiBpdHMgcHJvdG90eXBlIHRoYXRcbiAgICAgICAgICAgIC8vIHBvaW50cyBiYWNrIHRvIHRoZSBjb25zdHJ1Y3Rvci5cbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgbm90IHRoZSBzYW1lIGFzIEZ1bmN0aW9uLltbUHJvdG90eXBlXV0sIHRoZW4gdGhpcyBpcyBkZWZpbmF0ZWx5IGluaGVyaXRlZC5cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlbiBpbiBFUzYgb3Igd2hlbiB1c2luZyBfX3Byb3RvX18gaW4gYSBjb21wYXRpYmxlIGJyb3dzZXIuXG4gICAgICAgICAgICBpZiAocHJvdG8gIT09IGZ1bmN0aW9uUHJvdG90eXBlKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm90bztcbiAgICAgICAgICAgIC8vIElmIHRoZSBzdXBlciBwcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZSwgbnVsbCwgb3IgdW5kZWZpbmVkLCB0aGVuIHdlIGNhbm5vdCBkZXRlcm1pbmUgdGhlIGhlcml0YWdlLlxuICAgICAgICAgICAgdmFyIHByb3RvdHlwZSA9IE8ucHJvdG90eXBlO1xuICAgICAgICAgICAgdmFyIHByb3RvdHlwZVByb3RvID0gcHJvdG90eXBlICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90b3R5cGUpO1xuICAgICAgICAgICAgaWYgKHByb3RvdHlwZVByb3RvID09IG51bGwgfHwgcHJvdG90eXBlUHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3RvO1xuICAgICAgICAgICAgLy8gSWYgdGhlIGNvbnN0cnVjdG9yIHdhcyBub3QgYSBmdW5jdGlvbiwgdGhlbiB3ZSBjYW5ub3QgZGV0ZXJtaW5lIHRoZSBoZXJpdGFnZS5cbiAgICAgICAgICAgIHZhciBjb25zdHJ1Y3RvciA9IHByb3RvdHlwZVByb3RvLmNvbnN0cnVjdG9yO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25zdHJ1Y3RvciAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm90bztcbiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgc29tZSBraW5kIG9mIHNlbGYtcmVmZXJlbmNlLCB0aGVuIHdlIGNhbm5vdCBkZXRlcm1pbmUgdGhlIGhlcml0YWdlLlxuICAgICAgICAgICAgaWYgKGNvbnN0cnVjdG9yID09PSBPKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm90bztcbiAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBwcmV0dHkgZ29vZCBndWVzcyBhdCB0aGUgaGVyaXRhZ2UuXG4gICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmFpdmUgTWFwIHNoaW1cbiAgICAgICAgZnVuY3Rpb24gQ3JlYXRlTWFwUG9seWZpbGwoKSB7XG4gICAgICAgICAgICB2YXIgY2FjaGVTZW50aW5lbCA9IHt9O1xuICAgICAgICAgICAgdmFyIGFycmF5U2VudGluZWwgPSBbXTtcbiAgICAgICAgICAgIHZhciBNYXBJdGVyYXRvciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBNYXBJdGVyYXRvcihrZXlzLCB2YWx1ZXMsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cyA9IGtleXM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgTWFwSXRlcmF0b3IucHJvdG90eXBlW1wiQEBpdGVyYXRvclwiXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG4gICAgICAgICAgICAgICAgTWFwSXRlcmF0b3IucHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG4gICAgICAgICAgICAgICAgTWFwSXRlcmF0b3IucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2luZGV4O1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMuX2tleXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5fc2VsZWN0b3IodGhpcy5fa2V5c1tpbmRleF0sIHRoaXMuX3ZhbHVlc1tpbmRleF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA+PSB0aGlzLl9rZXlzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cyA9IGFycmF5U2VudGluZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gYXJyYXlTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIE1hcEl0ZXJhdG9yLnByb3RvdHlwZS50aHJvdyA9IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleXMgPSBhcnJheVNlbnRpbmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gYXJyYXlTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIE1hcEl0ZXJhdG9yLnByb3RvdHlwZS5yZXR1cm4gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2luZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzID0gYXJyYXlTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IGFycmF5U2VudGluZWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlLCBkb25lOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWFwSXRlcmF0b3I7XG4gICAgICAgICAgICB9KCkpO1xuICAgICAgICAgICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBNYXAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlS2V5ID0gY2FjaGVTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVJbmRleCA9IC0yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWFwLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9rZXlzLmxlbmd0aDsgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiAoa2V5KSB7IHJldHVybiB0aGlzLl9maW5kKGtleSwgLyppbnNlcnQqLyBmYWxzZSkgPj0gMDsgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZChrZXksIC8qaW5zZXJ0Ki8gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXggPj0gMCA/IHRoaXMuX3ZhbHVlc1tpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmQoa2V5LCAvKmluc2VydCovIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXNbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5kZWxldGUgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmQoa2V5LCAvKmluc2VydCovIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzaXplID0gdGhpcy5fa2V5cy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gaW5kZXggKyAxOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5c1tpIC0gMV0gPSB0aGlzLl9rZXlzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlc1tpIC0gMV0gPSB0aGlzLl92YWx1ZXNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzLmxlbmd0aC0tO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzLmxlbmd0aC0tO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gdGhpcy5fY2FjaGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUtleSA9IGNhY2hlU2VudGluZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVJbmRleCA9IC0yO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXMubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVLZXkgPSBjYWNoZVNlbnRpbmVsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUluZGV4ID0gLTI7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgTWFwSXRlcmF0b3IodGhpcy5fa2V5cywgdGhpcy5fdmFsdWVzLCBnZXRLZXkpOyB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IE1hcEl0ZXJhdG9yKHRoaXMuX2tleXMsIHRoaXMuX3ZhbHVlcywgZ2V0VmFsdWUpOyB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBNYXBJdGVyYXRvcih0aGlzLl9rZXlzLCB0aGlzLl92YWx1ZXMsIGdldEVudHJ5KTsgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlW1wiQEBpdGVyYXRvclwiXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuZW50cmllcygpOyB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGVbaXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzKCk7IH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5fZmluZCA9IGZ1bmN0aW9uIChrZXksIGluc2VydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2FjaGVLZXkgIT09IGtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVJbmRleCA9IHRoaXMuX2tleXMuaW5kZXhPZih0aGlzLl9jYWNoZUtleSA9IGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NhY2hlSW5kZXggPCAwICYmIGluc2VydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVJbmRleCA9IHRoaXMuX2tleXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXMucHVzaCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jYWNoZUluZGV4O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hcDtcbiAgICAgICAgICAgIH0oKSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRLZXkoa2V5LCBfKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIGdldFZhbHVlKF8sIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gZ2V0RW50cnkoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmFpdmUgU2V0IHNoaW1cbiAgICAgICAgZnVuY3Rpb24gQ3JlYXRlU2V0UG9seWZpbGwoKSB7XG4gICAgICAgICAgICByZXR1cm4gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFNldCgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwID0gbmV3IF9NYXAoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNldC5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fbWFwLnNpemU7IH0sXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiB0aGlzLl9tYXAuaGFzKHZhbHVlKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh2YWx1ZSkgeyByZXR1cm4gdGhpcy5fbWFwLnNldCh2YWx1ZSwgdmFsdWUpLCB0aGlzOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUuZGVsZXRlID0gZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiB0aGlzLl9tYXAuZGVsZXRlKHZhbHVlKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkgeyB0aGlzLl9tYXAuY2xlYXIoKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9tYXAua2V5cygpOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fbWFwLnZhbHVlcygpOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX21hcC5lbnRyaWVzKCk7IH07XG4gICAgICAgICAgICAgICAgU2V0LnByb3RvdHlwZVtcIkBAaXRlcmF0b3JcIl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLmtleXMoKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMua2V5cygpOyB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBTZXQ7XG4gICAgICAgICAgICB9KCkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5haXZlIFdlYWtNYXAgc2hpbVxuICAgICAgICBmdW5jdGlvbiBDcmVhdGVXZWFrTWFwUG9seWZpbGwoKSB7XG4gICAgICAgICAgICB2YXIgVVVJRF9TSVpFID0gMTY7XG4gICAgICAgICAgICB2YXIga2V5cyA9IEhhc2hNYXAuY3JlYXRlKCk7XG4gICAgICAgICAgICB2YXIgcm9vdEtleSA9IENyZWF0ZVVuaXF1ZUtleSgpO1xuICAgICAgICAgICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBXZWFrTWFwKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXkgPSBDcmVhdGVVbmlxdWVLZXkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgV2Vha01hcC5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFibGUgPSBHZXRPckNyZWF0ZVdlYWtNYXBUYWJsZSh0YXJnZXQsIC8qY3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGUgIT09IHVuZGVmaW5lZCA/IEhhc2hNYXAuaGFzKHRhYmxlLCB0aGlzLl9rZXkpIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBXZWFrTWFwLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0YWJsZSA9IEdldE9yQ3JlYXRlV2Vha01hcFRhYmxlKHRhcmdldCwgLypjcmVhdGUqLyBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZSAhPT0gdW5kZWZpbmVkID8gSGFzaE1hcC5nZXQodGFibGUsIHRoaXMuX2tleSkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBXZWFrTWFwLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAodGFyZ2V0LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFibGUgPSBHZXRPckNyZWF0ZVdlYWtNYXBUYWJsZSh0YXJnZXQsIC8qY3JlYXRlKi8gdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRhYmxlW3RoaXMuX2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBXZWFrTWFwLnByb3RvdHlwZS5kZWxldGUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0YWJsZSA9IEdldE9yQ3JlYXRlV2Vha01hcFRhYmxlKHRhcmdldCwgLypjcmVhdGUqLyBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZSAhPT0gdW5kZWZpbmVkID8gZGVsZXRlIHRhYmxlW3RoaXMuX2tleV0gOiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFdlYWtNYXAucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBub3QgYSByZWFsIGNsZWFyLCBqdXN0IG1ha2VzIHRoZSBwcmV2aW91cyBkYXRhIHVucmVhY2hhYmxlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleSA9IENyZWF0ZVVuaXF1ZUtleSgpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIFdlYWtNYXA7XG4gICAgICAgICAgICB9KCkpO1xuICAgICAgICAgICAgZnVuY3Rpb24gQ3JlYXRlVW5pcXVlS2V5KCkge1xuICAgICAgICAgICAgICAgIHZhciBrZXk7XG4gICAgICAgICAgICAgICAgZG9cbiAgICAgICAgICAgICAgICAgICAga2V5ID0gXCJAQFdlYWtNYXBAQFwiICsgQ3JlYXRlVVVJRCgpO1xuICAgICAgICAgICAgICAgIHdoaWxlIChIYXNoTWFwLmhhcyhrZXlzLCBrZXkpKTtcbiAgICAgICAgICAgICAgICBrZXlzW2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBHZXRPckNyZWF0ZVdlYWtNYXBUYWJsZSh0YXJnZXQsIGNyZWF0ZSkge1xuICAgICAgICAgICAgICAgIGlmICghaGFzT3duLmNhbGwodGFyZ2V0LCByb290S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNyZWF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHJvb3RLZXksIHsgdmFsdWU6IEhhc2hNYXAuY3JlYXRlKCkgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRbcm9vdEtleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBGaWxsUmFuZG9tQnl0ZXMoYnVmZmVyLCBzaXplKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyArK2kpXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpXSA9IE1hdGgucmFuZG9tKCkgKiAweGZmIHwgMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gR2VuUmFuZG9tQnl0ZXMoc2l6ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgVWludDhBcnJheSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY3J5cHRvICE9PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoc2l6ZSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG1zQ3J5cHRvICE9PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheShzaXplKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBGaWxsUmFuZG9tQnl0ZXMobmV3IFVpbnQ4QXJyYXkoc2l6ZSksIHNpemUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gRmlsbFJhbmRvbUJ5dGVzKG5ldyBBcnJheShzaXplKSwgc2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBDcmVhdGVVVUlEKCkge1xuICAgICAgICAgICAgICAgIHZhciBkYXRhID0gR2VuUmFuZG9tQnl0ZXMoVVVJRF9TSVpFKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIHJhbmRvbSAtIFJGQyA0MTIyIMKnIDQuNFxuICAgICAgICAgICAgICAgIGRhdGFbNl0gPSBkYXRhWzZdICYgMHg0ZiB8IDB4NDA7XG4gICAgICAgICAgICAgICAgZGF0YVs4XSA9IGRhdGFbOF0gJiAweGJmIHwgMHg4MDtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gXCJcIjtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBvZmZzZXQgPSAwOyBvZmZzZXQgPCBVVUlEX1NJWkU7ICsrb2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBieXRlID0gZGF0YVtvZmZzZXRdO1xuICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09PSA0IHx8IG9mZnNldCA9PT0gNiB8fCBvZmZzZXQgPT09IDgpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gXCItXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChieXRlIDwgMTYpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gXCIwXCI7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBieXRlLnRvU3RyaW5nKDE2KS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHVzZXMgYSBoZXVyaXN0aWMgdXNlZCBieSB2OCBhbmQgY2hha3JhIHRvIGZvcmNlIGFuIG9iamVjdCBpbnRvIGRpY3Rpb25hcnkgbW9kZS5cbiAgICAgICAgZnVuY3Rpb24gTWFrZURpY3Rpb25hcnkob2JqKSB7XG4gICAgICAgICAgICBvYmouX18gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBkZWxldGUgb2JqLl9fO1xuICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgfVxuICAgIH0pO1xufSkoUmVmbGVjdCB8fCAoUmVmbGVjdCA9IHt9KSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vcmVmbGVjdC1tZXRhZGF0YS9SZWZsZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSAxMjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiaW1wb3J0IHsgSGFzaFRhYmxlLCBIZWxwZXJzIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgQmFzZSwgSVN1cnZleURhdGEgfSBmcm9tIFwiLi9iYXNlXCI7XG5pbXBvcnQgeyBFeHByZXNzaW9uUnVubmVyIH0gZnJvbSBcIi4vY29uZGl0aW9uc1wiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcblxuLyoqXG4gKiBUaGUgY2FsY3VsYXRlZCB2YWx1ZSBpcyBhIHdheSB0byBkZWZpbmUgdGhlIHZhcmlhYmxlIGluIFN1cnZleSBDcmVhdG9yLlxuICogSXQgaGFzIHR3byBtYWluIHByb3BlcnRpZXM6IG5hbWUgYW5kIGV4cHJlc3Npb24uIEJhc2VkIG9uIGV4cHJlc3Npb24gdGhlIHZhbHVlIHJlYWQtb25seSBwcm9wZXJ0eSBpcyBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQuXG4gKiBUaGUgbmFtZSBwcm9wZXJ0eSBzaG91bGQgYmUgdW5pcXVlIHRob3VnaCBhbGwgY2FsY3VhbHRlZCB2YWx1ZXMuXG4gKiBJdCB1c2VzIHN1cnZleS5nZXRWYXJpYWJsZS9zZXJ1dmV5LnNldFZhcmlhYmxlIGZ1bmN0aW9ucyB0byBnZXQvc2V0IGl0cyB2YWx1ZS4gVGhlIGNsYXNzIGRvIG5vdCBzdG9yZSBpdHMgdmFsdWUgaW50ZXJuYWxseS5cbiAqIFlvdSBtYXkgc2V0IGluY2x1ZGVJbnRvUmVzdWx0IHByb3BlcnR5IHRvIHRydWUgdG8gc3RvcmUgdGhpcyBjYWxjdWxhdGVkIHZhbHVlIGludG8gc3VydmV5IHJlc3VsdC5cbiAqL1xuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZWRWYWx1ZSBleHRlbmRzIEJhc2Uge1xuICBwcml2YXRlIGRhdGE6IElTdXJ2ZXlEYXRhO1xuICBwcml2YXRlIGV4cHJlc3Npb25Jc1J1bm5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBleHByZXNzaW9uUnVubmVyOiBFeHByZXNzaW9uUnVubmVyO1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcgPSBudWxsLCBleHByZXNzaW9uOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoISFuYW1lKSB7XG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIH1cbiAgICBpZiAoISFleHByZXNzaW9uKSB7XG4gICAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgc2V0T3duZXIoZGF0YTogSVN1cnZleURhdGEpIHtcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIHRoaXMucmVydW5FeHByZXNzaW9uKCk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjYWxjdWxhdGVkdmFsdWVcIjtcbiAgfVxuICAvKipcbiAgICogVGhlIGNhbGN1bGF0ZWQgdmFsdWUgbmFtZS4gSXQgc2hvdWxkIGJlIG5vbiBlbXB0eSBhbmQgdW5pcXVlLlxuICAgKi9cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIm5hbWVcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwibmFtZVwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIHRvIGluY2x1ZGUgdGhlIG5vbi1lbXB0eSBjYWxjdWxhdGVkIHZhbHVlIGludG8gc3VydmV5IHJlc3VsdCwgc3VydmV5LmRhdGEgcHJvcGVydHkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGluY2x1ZGVJbnRvUmVzdWx0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJpbmNsdWRlSW50b1Jlc3VsdFwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBpbmNsdWRlSW50b1Jlc3VsdCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpbmNsdWRlSW50b1Jlc3VsdFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgRXhwcmVzc2lvbiB0aGF0IHVzZWQgdG8gY2FsY3VsYXRlIHRoZSB2YWx1ZS4gWW91IG1heSB1c2Ugc3RhbmRhcmQgb3BlcmF0b3JzIGxpa2UgKywgLSwgKiBhbmQgLywgc3F1YXJlcyAoKS4gSGVyZSBpcyB0aGUgZXhhbXBsZSBvZiBhY2Nlc3NpbmcgdGhlIHF1ZXN0aW9uIHZhbHVlIHtxdWVzdGlvbm5hbWV9LlxuICAgKiA8YnIvPkV4YW1wbGU6IFwiKHtxdWFudGl0eX0gKiB7cHJpY2V9KSAqICgxMDAgLSB7ZGlzY291bnR9KSAvIDEwMFwiXG4gICAqL1xuICBwdWJsaWMgZ2V0IGV4cHJlc3Npb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiZXhwcmVzc2lvblwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGV4cHJlc3Npb24odmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJleHByZXNzaW9uXCIsIHZhbCk7XG4gICAgdGhpcy5yZXJ1bkV4cHJlc3Npb24oKTtcbiAgfVxuICBwdWJsaWMgbG9jQ2FsY3VsYXRpb24oKSB7XG4gICAgdGhpcy5leHByZXNzaW9uSXNSdW5uaW5nID0gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgdW5sb2NDYWxjdWxhdGlvbigpIHtcbiAgICB0aGlzLmV4cHJlc3Npb25Jc1J1bm5pbmcgPSBmYWxzZTtcbiAgfVxuICBwdWJsaWMgcnVuRXhwcmVzc2lvbih2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LCBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55Pikge1xuICAgIGlmICghdGhpcy5jYW5SdW5FeHByZXNzaW9uKSByZXR1cm47XG4gICAgdGhpcy5sb2NDYWxjdWxhdGlvbigpO1xuICAgIGlmICghdGhpcy5leHByZXNzaW9uUnVubmVyKSB7XG4gICAgICB0aGlzLmV4cHJlc3Npb25SdW5uZXIgPSBuZXcgRXhwcmVzc2lvblJ1bm5lcih0aGlzLmV4cHJlc3Npb24pO1xuICAgIH1cbiAgICB0aGlzLmV4cHJlc3Npb25SdW5uZXIub25SdW5Db21wbGV0ZSA9IG5ld1ZhbHVlID0+IHtcbiAgICAgIGlmICghSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKG5ld1ZhbHVlLCB0aGlzLnZhbHVlKSkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudW5sb2NDYWxjdWxhdGlvbigpO1xuICAgIH07XG4gICAgdGhpcy5leHByZXNzaW9uUnVubmVyLnJ1bih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuZGF0YSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmdldFZhcmlhYmxlKHRoaXMubmFtZSk7XG4gIH1cbiAgcHJvdGVjdGVkIHNldFZhbHVlKHZhbDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmRhdGEpIHJldHVybjtcbiAgICB0aGlzLmRhdGEuc2V0VmFyaWFibGUodGhpcy5uYW1lLCB2YWwpO1xuICB9XG4gIHByaXZhdGUgZ2V0IGNhblJ1bkV4cHJlc3Npb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5kYXRhICYmXG4gICAgICAhdGhpcy5pc0xvYWRpbmdGcm9tSnNvbiAmJlxuICAgICAgISF0aGlzLmV4cHJlc3Npb24gJiZcbiAgICAgICF0aGlzLmV4cHJlc3Npb25Jc1J1bm5pbmcgJiZcbiAgICAgICEhdGhpcy5uYW1lXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIHJlcnVuRXhwcmVzc2lvbigpIHtcbiAgICBpZiAoIXRoaXMuY2FuUnVuRXhwcmVzc2lvbikgcmV0dXJuO1xuICAgIHRoaXMucnVuRXhwcmVzc2lvbihcbiAgICAgIHRoaXMuZGF0YS5nZXRGaWx0ZXJlZFZhbHVlcygpLFxuICAgICAgdGhpcy5kYXRhLmdldEZpbHRlcmVkUHJvcGVydGllcygpXG4gICAgKTtcbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcImNhbGN1bGF0ZWR2YWx1ZVwiLFxuICBbXCIhbmFtZVwiLCBcImV4cHJlc3Npb246ZXhwcmVzc2lvblwiLCBcImluY2x1ZGVJbnRvUmVzdWx0OmJvb2xlYW5cIl0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgQ2FsY3VsYXRlZFZhbHVlKCk7XG4gIH0sXG4gIFwiYmFzZVwiXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NhbGN1bGF0ZWRWYWx1ZS50cyIsIi8vIHRzbGludDpkaXNhYmxlOm9ubHktYXJyb3ctZnVuY3Rpb25zXG4vLyB0c2xpbnQ6ZGlzYWJsZTpvYmplY3QtbGl0ZXJhbC1zaG9ydGhhbmRcbi8vIHRzbGludDpkaXNhYmxlOnRyYWlsaW5nLWNvbW1hXG4vLyB0c2xpbnQ6ZGlzYWJsZTpvYmplY3QtbGl0ZXJhbC1zb3J0LWtleXNcbi8vIHRzbGludDpkaXNhYmxlOm9uZS12YXJpYWJsZS1wZXItZGVjbGFyYXRpb25cbi8vIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aFxuLy8gdHNsaW50OmRpc2FibGU6bm8tY29uc2VjdXRpdmUtYmxhbmstbGluZXNcbi8vIHRzbGludDpkaXNhYmxlOmFsaWduXG5cblxuLy8gR2VuZXJhdGVkIGJ5IFBFRy5qcyB2LiAwLjEwLjAgKHRzLXBlZ2pzIHBsdWdpbiB2LiAwLjIuNSApXG4vL1xuLy8gaHR0cHM6Ly9wZWdqcy5vcmcvICAgaHR0cHM6Ly9naXRodWIuY29tL21ldGFkZXZwcm8vdHMtcGVnanNcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7XG5Db25zdCxcbkJpbmFyeU9wZXJhbmQsXG5WYXJpYWJsZSxcbk9wZXJhbmQsXG5VbmFyeU9wZXJhbmQsXG5GdW5jdGlvbk9wZXJhbmQsXG5BcnJheU9wZXJhbmRcbn0gZnJvbSBcIi4vZXhwcmVzc2lvbnNcIjtcbmV4cG9ydCBpbnRlcmZhY2UgSUZpbGVQb3NpdGlvbiB7XG4gIG9mZnNldDogbnVtYmVyO1xuICBsaW5lOiBudW1iZXI7XG4gIGNvbHVtbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWxlUmFuZ2Uge1xuICBzdGFydDogSUZpbGVQb3NpdGlvbjtcbiAgZW5kOiBJRmlsZVBvc2l0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMaXRlcmFsRXhwZWN0YXRpb24ge1xuICB0eXBlOiBcImxpdGVyYWxcIjtcbiAgdGV4dDogc3RyaW5nO1xuICBpZ25vcmVDYXNlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGFzc1BhcnRzIGV4dGVuZHMgQXJyYXk8c3RyaW5nIHwgSUNsYXNzUGFydHM+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsYXNzRXhwZWN0YXRpb24ge1xuICB0eXBlOiBcImNsYXNzXCI7XG4gIHBhcnRzOiBJQ2xhc3NQYXJ0cztcbiAgaW52ZXJ0ZWQ6IGJvb2xlYW47XG4gIGlnbm9yZUNhc2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFueUV4cGVjdGF0aW9uIHtcbiAgdHlwZTogXCJhbnlcIjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW5kRXhwZWN0YXRpb24ge1xuICB0eXBlOiBcImVuZFwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdGhlckV4cGVjdGF0aW9uIHtcbiAgdHlwZTogXCJvdGhlclwiO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFeHBlY3RhdGlvbiA9IElMaXRlcmFsRXhwZWN0YXRpb24gfCBJQ2xhc3NFeHBlY3RhdGlvbiB8IElBbnlFeHBlY3RhdGlvbiB8IElFbmRFeHBlY3RhdGlvbiB8IElPdGhlckV4cGVjdGF0aW9uO1xuXG5leHBvcnQgY2xhc3MgU3ludGF4RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBzdGF0aWMgYnVpbGRNZXNzYWdlKGV4cGVjdGVkOiBFeHBlY3RhdGlvbltdLCBmb3VuZDogc3RyaW5nIHwgbnVsbCkge1xuICAgIGZ1bmN0aW9uIGhleChjaDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBjaC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpdGVyYWxFc2NhcGUoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBzXG4gICAgICAgIC5yZXBsYWNlKC9cXFxcL2csIFwiXFxcXFxcXFxcIilcbiAgICAgICAgLnJlcGxhY2UoL1wiL2csICBcIlxcXFxcXFwiXCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXDAvZywgXCJcXFxcMFwiKVxuICAgICAgICAucmVwbGFjZSgvXFx0L2csIFwiXFxcXHRcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXHIvZywgXCJcXFxcclwiKVxuICAgICAgICAucmVwbGFjZSgvW1xceDAwLVxceDBGXS9nLCAgICAgICAgICAgIChjaCkgPT4gXCJcXFxceDBcIiArIGhleChjaCkgKVxuICAgICAgICAucmVwbGFjZSgvW1xceDEwLVxceDFGXFx4N0YtXFx4OUZdL2csIChjaCkgPT4gXCJcXFxceFwiICArIGhleChjaCkgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbGFzc0VzY2FwZShzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHNcbiAgICAgICAgLnJlcGxhY2UoL1xcXFwvZywgXCJcXFxcXFxcXFwiKVxuICAgICAgICAucmVwbGFjZSgvXFxdL2csIFwiXFxcXF1cIilcbiAgICAgICAgLnJlcGxhY2UoL1xcXi9nLCBcIlxcXFxeXCIpXG4gICAgICAgIC5yZXBsYWNlKC8tL2csICBcIlxcXFwtXCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXDAvZywgXCJcXFxcMFwiKVxuICAgICAgICAucmVwbGFjZSgvXFx0L2csIFwiXFxcXHRcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXHIvZywgXCJcXFxcclwiKVxuICAgICAgICAucmVwbGFjZSgvW1xceDAwLVxceDBGXS9nLCAgICAgICAgICAgIChjaCkgPT4gXCJcXFxceDBcIiArIGhleChjaCkgKVxuICAgICAgICAucmVwbGFjZSgvW1xceDEwLVxceDFGXFx4N0YtXFx4OUZdL2csIChjaCkgPT4gXCJcXFxceFwiICArIGhleChjaCkgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZXNjcmliZUV4cGVjdGF0aW9uKGV4cGVjdGF0aW9uOiBFeHBlY3RhdGlvbikge1xuICAgICAgc3dpdGNoIChleHBlY3RhdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJsaXRlcmFsXCI6XG4gICAgICAgICAgcmV0dXJuIFwiXFxcIlwiICsgbGl0ZXJhbEVzY2FwZShleHBlY3RhdGlvbi50ZXh0KSArIFwiXFxcIlwiO1xuICAgICAgICBjYXNlIFwiY2xhc3NcIjpcbiAgICAgICAgICBjb25zdCBlc2NhcGVkUGFydHMgPSBleHBlY3RhdGlvbi5wYXJ0cy5tYXAoKHBhcnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBhcnQpXG4gICAgICAgICAgICAgID8gY2xhc3NFc2NhcGUocGFydFswXSBhcyBzdHJpbmcpICsgXCItXCIgKyBjbGFzc0VzY2FwZShwYXJ0WzFdIGFzIHN0cmluZylcbiAgICAgICAgICAgICAgOiBjbGFzc0VzY2FwZShwYXJ0KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiBcIltcIiArIChleHBlY3RhdGlvbi5pbnZlcnRlZCA/IFwiXlwiIDogXCJcIikgKyBlc2NhcGVkUGFydHMgKyBcIl1cIjtcbiAgICAgICAgY2FzZSBcImFueVwiOlxuICAgICAgICAgIHJldHVybiBcImFueSBjaGFyYWN0ZXJcIjtcbiAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgIHJldHVybiBcImVuZCBvZiBpbnB1dFwiO1xuICAgICAgICBjYXNlIFwib3RoZXJcIjpcbiAgICAgICAgICByZXR1cm4gZXhwZWN0YXRpb24uZGVzY3JpcHRpb247XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVzY3JpYmVFeHBlY3RlZChleHBlY3RlZDE6IEV4cGVjdGF0aW9uW10pIHtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9ucyA9IGV4cGVjdGVkMS5tYXAoZGVzY3JpYmVFeHBlY3RhdGlvbik7XG4gICAgICBsZXQgaTtcbiAgICAgIGxldCBqO1xuXG4gICAgICBkZXNjcmlwdGlvbnMuc29ydCgpO1xuXG4gICAgICBpZiAoZGVzY3JpcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChpID0gMSwgaiA9IDE7IGkgPCBkZXNjcmlwdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoZGVzY3JpcHRpb25zW2kgLSAxXSAhPT0gZGVzY3JpcHRpb25zW2ldKSB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbnNbal0gPSBkZXNjcmlwdGlvbnNbaV07XG4gICAgICAgICAgICBqKys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlc2NyaXB0aW9ucy5sZW5ndGggPSBqO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKGRlc2NyaXB0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbnNbMF07XG5cbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbnNbMF0gKyBcIiBvciBcIiArIGRlc2NyaXB0aW9uc1sxXTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbnMuc2xpY2UoMCwgLTEpLmpvaW4oXCIsIFwiKVxuICAgICAgICAgICAgKyBcIiwgb3IgXCJcbiAgICAgICAgICAgICsgZGVzY3JpcHRpb25zW2Rlc2NyaXB0aW9ucy5sZW5ndGggLSAxXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZXNjcmliZUZvdW5kKGZvdW5kMTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgcmV0dXJuIGZvdW5kMSA/IFwiXFxcIlwiICsgbGl0ZXJhbEVzY2FwZShmb3VuZDEpICsgXCJcXFwiXCIgOiBcImVuZCBvZiBpbnB1dFwiO1xuICAgIH1cblxuICAgIHJldHVybiBcIkV4cGVjdGVkIFwiICsgZGVzY3JpYmVFeHBlY3RlZChleHBlY3RlZCkgKyBcIiBidXQgXCIgKyBkZXNjcmliZUZvdW5kKGZvdW5kKSArIFwiIGZvdW5kLlwiO1xuICB9XG5cbiAgcHVibGljIG1lc3NhZ2U6IHN0cmluZztcbiAgcHVibGljIGV4cGVjdGVkOiBFeHBlY3RhdGlvbltdO1xuICBwdWJsaWMgZm91bmQ6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBsb2NhdGlvbjogSUZpbGVSYW5nZTtcbiAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGV4cGVjdGVkOiBFeHBlY3RhdGlvbltdLCBmb3VuZDogc3RyaW5nIHwgbnVsbCwgbG9jYXRpb246IElGaWxlUmFuZ2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5leHBlY3RlZCA9IGV4cGVjdGVkO1xuICAgIHRoaXMuZm91bmQgPSBmb3VuZDtcbiAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb247XG4gICAgdGhpcy5uYW1lID0gXCJTeW50YXhFcnJvclwiO1xuXG4gICAgaWYgKHR5cGVvZiAoRXJyb3IgYXMgYW55KS5jYXB0dXJlU3RhY2tUcmFjZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAoRXJyb3IgYXMgYW55KS5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCBTeW50YXhFcnJvcik7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhY2hlZCB7XG4gIG5leHRQb3M6IG51bWJlcjtcbiAgcmVzdWx0OiBhbnk7XG59XG5cbmZ1bmN0aW9uIHBlZyRwYXJzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogSVBhcnNlT3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucyA6IHt9O1xuXG4gIGNvbnN0IHBlZyRGQUlMRUQ6IGFueSA9IHt9O1xuXG4gIGNvbnN0IHBlZyRzdGFydFJ1bGVGdW5jdGlvbnM6IHtbaWQ6IHN0cmluZ106IGFueX0gPSB7IEV4cHJlc3Npb246IHBlZyRwYXJzZUV4cHJlc3Npb24gfTtcbiAgbGV0IHBlZyRzdGFydFJ1bGVGdW5jdGlvbjogKCkgPT4gYW55ID0gcGVnJHBhcnNlRXhwcmVzc2lvbjtcblxuICBjb25zdCBwZWckYzAgPSBmdW5jdGlvbihoZWFkOiBhbnksIHRhaWw6IGFueSk6IGFueSB7XG4gICAgICByZXR1cm4gYnVpbGRCaW5hcnlPcGVyYW5kKGhlYWQsIHRhaWwsIHRydWUpO1xuICAgIH07XG4gIGNvbnN0IHBlZyRjMSA9IFwifHxcIjtcbiAgY29uc3QgcGVnJGMyID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcInx8XCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMzID0gXCJvclwiO1xuICBjb25zdCBwZWckYzQgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwib3JcIiwgdHJ1ZSk7XG4gIGNvbnN0IHBlZyRjNSA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBcIm9yXCI7IH07XG4gIGNvbnN0IHBlZyRjNiA9IFwiJiZcIjtcbiAgY29uc3QgcGVnJGM3ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIiYmXCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGM4ID0gXCJhbmRcIjtcbiAgY29uc3QgcGVnJGM5ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcImFuZFwiLCB0cnVlKTtcbiAgY29uc3QgcGVnJGMxMCA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBcImFuZFwiOyB9O1xuICBjb25zdCBwZWckYzExID0gZnVuY3Rpb24oaGVhZDogYW55LCB0YWlsOiBhbnkpOiBhbnkge1xuICAgICAgcmV0dXJuIGJ1aWxkQmluYXJ5T3BlcmFuZChoZWFkLCB0YWlsKTtcbiAgICB9O1xuICBjb25zdCBwZWckYzEyID0gXCI8PVwiO1xuICBjb25zdCBwZWckYzEzID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIjw9XCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxNCA9IFwibGVzc29yZXF1YWxcIjtcbiAgY29uc3QgcGVnJGMxNSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJsZXNzb3JlcXVhbFwiLCB0cnVlKTtcbiAgY29uc3QgcGVnJGMxNiA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBcImxlc3NvcmVxdWFsXCI7IH07XG4gIGNvbnN0IHBlZyRjMTcgPSBcIj49XCI7XG4gIGNvbnN0IHBlZyRjMTggPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiPj1cIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzE5ID0gXCJncmVhdGVyb3JlcXVhbFwiO1xuICBjb25zdCBwZWckYzIwID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcImdyZWF0ZXJvcmVxdWFsXCIsIHRydWUpO1xuICBjb25zdCBwZWckYzIxID0gZnVuY3Rpb24oKTogYW55IHsgcmV0dXJuIFwiZ3JlYXRlcm9yZXF1YWxcIjsgfTtcbiAgY29uc3QgcGVnJGMyMiA9IFwiPVwiO1xuICBjb25zdCBwZWckYzIzID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIj1cIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzI0ID0gXCJlcXVhbFwiO1xuICBjb25zdCBwZWckYzI1ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcImVxdWFsXCIsIHRydWUpO1xuICBjb25zdCBwZWckYzI2ID0gZnVuY3Rpb24oKTogYW55IHsgcmV0dXJuIFwiZXF1YWxcIjsgfTtcbiAgY29uc3QgcGVnJGMyNyA9IFwiIT1cIjtcbiAgY29uc3QgcGVnJGMyOCA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCIhPVwiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjMjkgPSBcIm5vdGVxdWFsXCI7XG4gIGNvbnN0IHBlZyRjMzAgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwibm90ZXF1YWxcIiwgdHJ1ZSk7XG4gIGNvbnN0IHBlZyRjMzEgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gXCJub3RlcXVhbFwiOyB9O1xuICBjb25zdCBwZWckYzMyID0gXCI8XCI7XG4gIGNvbnN0IHBlZyRjMzMgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiPFwiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjMzQgPSBcImxlc3NcIjtcbiAgY29uc3QgcGVnJGMzNSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJsZXNzXCIsIHRydWUpO1xuICBjb25zdCBwZWckYzM2ID0gZnVuY3Rpb24oKTogYW55IHsgcmV0dXJuIFwibGVzc1wiOyB9O1xuICBjb25zdCBwZWckYzM3ID0gXCI+XCI7XG4gIGNvbnN0IHBlZyRjMzggPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiPlwiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjMzkgPSBcImdyZWF0ZXJcIjtcbiAgY29uc3QgcGVnJGM0MCA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJncmVhdGVyXCIsIHRydWUpO1xuICBjb25zdCBwZWckYzQxID0gZnVuY3Rpb24oKTogYW55IHsgcmV0dXJuIFwiZ3JlYXRlclwiOyB9O1xuICBjb25zdCBwZWckYzQyID0gXCIrXCI7XG4gIGNvbnN0IHBlZyRjNDMgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiK1wiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjNDQgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gXCJwbHVzXCI7ICB9O1xuICBjb25zdCBwZWckYzQ1ID0gXCItXCI7XG4gIGNvbnN0IHBlZyRjNDYgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiLVwiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjNDcgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gXCJtaW51c1wiOyB9O1xuICBjb25zdCBwZWckYzQ4ID0gXCIqXCI7XG4gIGNvbnN0IHBlZyRjNDkgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiKlwiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjNTAgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gXCJtdWxcIjsgfTtcbiAgY29uc3QgcGVnJGM1MSA9IFwiL1wiO1xuICBjb25zdCBwZWckYzUyID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIi9cIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzUzID0gZnVuY3Rpb24oKTogYW55IHsgcmV0dXJuIFwiZGl2XCI7IH07XG4gIGNvbnN0IHBlZyRjNTQgPSBcIiVcIjtcbiAgY29uc3QgcGVnJGM1NSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCIlXCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGM1NiA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBcIm1vZFwiOyB9O1xuICBjb25zdCBwZWckYzU3ID0gXCJeXCI7XG4gIGNvbnN0IHBlZyRjNTggPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiXlwiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjNTkgPSBcInBvd2VyXCI7XG4gIGNvbnN0IHBlZyRjNjAgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwicG93ZXJcIiwgdHJ1ZSk7XG4gIGNvbnN0IHBlZyRjNjEgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gXCJwb3dlclwiOyB9O1xuICBjb25zdCBwZWckYzYyID0gXCIqPVwiO1xuICBjb25zdCBwZWckYzYzID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIio9XCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGM2NCA9IFwiY29udGFpbnNcIjtcbiAgY29uc3QgcGVnJGM2NSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJjb250YWluc1wiLCB0cnVlKTtcbiAgY29uc3QgcGVnJGM2NiA9IFwiY29udGFpblwiO1xuICBjb25zdCBwZWckYzY3ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcImNvbnRhaW5cIiwgdHJ1ZSk7XG4gIGNvbnN0IHBlZyRjNjggPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gXCJjb250YWluc1wiOyB9O1xuICBjb25zdCBwZWckYzY5ID0gXCJub3Rjb250YWluc1wiO1xuICBjb25zdCBwZWckYzcwID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIm5vdGNvbnRhaW5zXCIsIHRydWUpO1xuICBjb25zdCBwZWckYzcxID0gXCJub3Rjb250YWluXCI7XG4gIGNvbnN0IHBlZyRjNzIgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwibm90Y29udGFpblwiLCB0cnVlKTtcbiAgY29uc3QgcGVnJGM3MyA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBcIm5vdGNvbnRhaW5zXCI7IH07XG4gIGNvbnN0IHBlZyRjNzQgPSBcImFueW9mXCI7XG4gIGNvbnN0IHBlZyRjNzUgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiYW55b2ZcIiwgdHJ1ZSk7XG4gIGNvbnN0IHBlZyRjNzYgPSBmdW5jdGlvbigpOiBhbnkge3JldHVybiBcImFueW9mXCI7IH07XG4gIGNvbnN0IHBlZyRjNzcgPSBcImFsbG9mXCI7XG4gIGNvbnN0IHBlZyRjNzggPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiYWxsb2ZcIiwgdHJ1ZSk7XG4gIGNvbnN0IHBlZyRjNzkgPSBmdW5jdGlvbigpOiBhbnkge3JldHVybiBcImFsbG9mXCI7IH07XG4gIGNvbnN0IHBlZyRjODAgPSBcIihcIjtcbiAgY29uc3QgcGVnJGM4MSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCIoXCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGM4MiA9IFwiKVwiO1xuICBjb25zdCBwZWckYzgzID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIilcIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzg0ID0gZnVuY3Rpb24oZXhwcjogYW55KTogYW55IHsgcmV0dXJuIGV4cHI7IH07XG4gIGNvbnN0IHBlZyRjODUgPSBmdW5jdGlvbihuYW1lOiBhbnksIHBhcmFtczogYW55KTogYW55IHsgcmV0dXJuIG5ldyBGdW5jdGlvbk9wZXJhbmQobmFtZSwgcGFyYW1zKTsgfTtcbiAgY29uc3QgcGVnJGM4NiA9IFwiIVwiO1xuICBjb25zdCBwZWckYzg3ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIiFcIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzg4ID0gXCJuZWdhdGVcIjtcbiAgY29uc3QgcGVnJGM4OSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJuZWdhdGVcIiwgdHJ1ZSk7XG4gIGNvbnN0IHBlZyRjOTAgPSBmdW5jdGlvbihleHByOiBhbnkpOiBhbnkgeyByZXR1cm4gbmV3IFVuYXJ5T3BlcmFuZChleHByLCBcIm5lZ2F0ZVwiKTsgfTtcbiAgY29uc3QgcGVnJGM5MSA9IGZ1bmN0aW9uKGV4cHI6IGFueSwgb3A6IGFueSk6IGFueSB7IHJldHVybiBuZXcgVW5hcnlPcGVyYW5kKGV4cHIsIG9wKTsgfTtcbiAgY29uc3QgcGVnJGM5MiA9IFwiZW1wdHlcIjtcbiAgY29uc3QgcGVnJGM5MyA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJlbXB0eVwiLCB0cnVlKTtcbiAgY29uc3QgcGVnJGM5NCA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBcImVtcHR5XCI7IH07XG4gIGNvbnN0IHBlZyRjOTUgPSBcIm5vdGVtcHR5XCI7XG4gIGNvbnN0IHBlZyRjOTYgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwibm90ZW1wdHlcIiwgdHJ1ZSk7XG4gIGNvbnN0IHBlZyRjOTcgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gXCJub3RlbXB0eVwiOyB9O1xuICBjb25zdCBwZWckYzk4ID0gXCJ1bmRlZmluZWRcIjtcbiAgY29uc3QgcGVnJGM5OSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJ1bmRlZmluZWRcIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzEwMCA9IFwibnVsbFwiO1xuICBjb25zdCBwZWckYzEwMSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJudWxsXCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxMDIgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gbnVsbDsgfTtcbiAgY29uc3QgcGVnJGMxMDMgPSBmdW5jdGlvbih2YWx1ZTogYW55KTogYW55IHsgcmV0dXJuIG5ldyBDb25zdCh2YWx1ZSk7IH07XG4gIGNvbnN0IHBlZyRjMTA0ID0gXCJ7XCI7XG4gIGNvbnN0IHBlZyRjMTA1ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIntcIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzEwNiA9IFwifVwiO1xuICBjb25zdCBwZWckYzEwNyA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJ9XCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxMDggPSBmdW5jdGlvbih2YWx1ZTogYW55KTogYW55IHsgcmV0dXJuIG5ldyBWYXJpYWJsZSh2YWx1ZSk7IH07XG4gIGNvbnN0IHBlZyRjMTA5ID0gXCInXCI7XG4gIGNvbnN0IHBlZyRjMTEwID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIidcIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzExMSA9IGZ1bmN0aW9uKHZhbHVlOiBhbnkpOiBhbnkgeyByZXR1cm4gdmFsdWU7IH07XG4gIGNvbnN0IHBlZyRjMTEyID0gXCJcXFwiXCI7XG4gIGNvbnN0IHBlZyRjMTEzID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIlxcXCJcIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzExNCA9IFwiW1wiO1xuICBjb25zdCBwZWckYzExNSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJbXCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxMTYgPSBcIl1cIjtcbiAgY29uc3QgcGVnJGMxMTcgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiXVwiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjMTE4ID0gZnVuY3Rpb24oc2VxdWVuY2U6IGFueSk6IGFueSB7IHJldHVybiBzZXF1ZW5jZTsgfTtcbiAgY29uc3QgcGVnJGMxMTkgPSBcIixcIjtcbiAgY29uc3QgcGVnJGMxMjAgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiLFwiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjMTIxID0gZnVuY3Rpb24oZXhwcjogYW55LCB0YWlsOiBhbnkpOiBhbnkge1xuICAgICAgaWYgKGV4cHIgPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIFtdO1xuXG4gICAgICB2YXIgYXJyYXkgPSBbZXhwcl07XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YWlsKSkge1xuICAgICAgICB2YXIgZmxhdHRlbiA9IGZsYXR0ZW5BcnJheSh0YWlsKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDM7IGkgPCBmbGF0dGVuLmxlbmd0aDsgaSArPSA0KSB7XG4gICAgICAgICAgYXJyYXkucHVzaChmbGF0dGVuW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IEFycmF5T3BlcmFuZChhcnJheSk7XG4gICAgfTtcbiAgY29uc3QgcGVnJGMxMjIgPSBcInRydWVcIjtcbiAgY29uc3QgcGVnJGMxMjMgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwidHJ1ZVwiLCB0cnVlKTtcbiAgY29uc3QgcGVnJGMxMjQgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gdHJ1ZTsgfTtcbiAgY29uc3QgcGVnJGMxMjUgPSBcImZhbHNlXCI7XG4gIGNvbnN0IHBlZyRjMTI2ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcImZhbHNlXCIsIHRydWUpO1xuICBjb25zdCBwZWckYzEyNyA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBmYWxzZTsgfTtcbiAgY29uc3QgcGVnJGMxMjggPSBcIjB4XCI7XG4gIGNvbnN0IHBlZyRjMTI5ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIjB4XCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxMzAgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gcGFyc2VJbnQodGV4dCgpLCAxNik7IH07XG4gIGNvbnN0IHBlZyRjMTMxID0gL15bXFwtXS87XG4gIGNvbnN0IHBlZyRjMTMyID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiLVwiXSwgZmFsc2UsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxMzMgPSBmdW5jdGlvbihzaWduOiBhbnksIG51bTogYW55KTogYW55IHsgcmV0dXJuIHNpZ24gPT0gbnVsbCA/IG51bSA6IC1udW07IH07XG4gIGNvbnN0IHBlZyRjMTM0ID0gXCIuXCI7XG4gIGNvbnN0IHBlZyRjMTM1ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIi5cIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzEzNiA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBwYXJzZUZsb2F0KHRleHQoKSk7IH07XG4gIGNvbnN0IHBlZyRjMTM3ID0gZnVuY3Rpb24oKTogYW55IHsgcmV0dXJuIHBhcnNlSW50KHRleHQoKSwgMTApOyB9O1xuICBjb25zdCBwZWckYzEzOCA9IFwiMFwiO1xuICBjb25zdCBwZWckYzEzOSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCIwXCIsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxNDAgPSBmdW5jdGlvbigpOiBhbnkgeyByZXR1cm4gMDsgfTtcbiAgY29uc3QgcGVnJGMxNDEgPSBmdW5jdGlvbihjaGFyczogYW55KTogYW55IHsgcmV0dXJuIGNoYXJzLmpvaW4oXCJcIik7IH07XG4gIGNvbnN0IHBlZyRjMTQyID0gXCJcXFxcJ1wiO1xuICBjb25zdCBwZWckYzE0MyA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJcXFxcJ1wiLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjMTQ0ID0gZnVuY3Rpb24oKTogYW55IHsgcmV0dXJuIFwiJ1wiOyB9O1xuICBjb25zdCBwZWckYzE0NSA9IFwiXFxcXFxcXCJcIjtcbiAgY29uc3QgcGVnJGMxNDYgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiXFxcXFxcXCJcIiwgZmFsc2UpO1xuICBjb25zdCBwZWckYzE0NyA9IGZ1bmN0aW9uKCk6IGFueSB7IHJldHVybiBcIlxcXCJcIjsgfTtcbiAgY29uc3QgcGVnJGMxNDggPSAvXlteXCIne31dLztcbiAgY29uc3QgcGVnJGMxNDkgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJcXFwiXCIsIFwiJ1wiLCBcIntcIiwgXCJ9XCJdLCB0cnVlLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjMTUwID0gZnVuY3Rpb24oKTogYW55IHsgcmV0dXJuIHRleHQoKTsgfTtcbiAgY29uc3QgcGVnJGMxNTEgPSAvXltee31dLztcbiAgY29uc3QgcGVnJGMxNTIgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJ7XCIsIFwifVwiXSwgdHJ1ZSwgZmFsc2UpO1xuICBjb25zdCBwZWckYzE1MyA9IC9eWzAtOV0vO1xuICBjb25zdCBwZWckYzE1NCA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtbXCIwXCIsIFwiOVwiXV0sIGZhbHNlLCBmYWxzZSk7XG4gIGNvbnN0IHBlZyRjMTU1ID0gL15bMS05XS87XG4gIGNvbnN0IHBlZyRjMTU2ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1tcIjFcIiwgXCI5XCJdXSwgZmFsc2UsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxNTcgPSAvXlthLXpBLVpdLztcbiAgY29uc3QgcGVnJGMxNTggPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbW1wiYVwiLCBcInpcIl0sIFtcIkFcIiwgXCJaXCJdXSwgZmFsc2UsIGZhbHNlKTtcbiAgY29uc3QgcGVnJGMxNTkgPSBwZWckb3RoZXJFeHBlY3RhdGlvbihcIndoaXRlc3BhY2VcIik7XG4gIGNvbnN0IHBlZyRjMTYwID0gL15bIFxcdFxcblxccl0vO1xuICBjb25zdCBwZWckYzE2MSA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIiBcIiwgXCJcXHRcIiwgXCJcXG5cIiwgXCJcXHJcIl0sIGZhbHNlLCBmYWxzZSk7XG5cbiAgbGV0IHBlZyRjdXJyUG9zID0gMDtcbiAgbGV0IHBlZyRzYXZlZFBvcyA9IDA7XG4gIGNvbnN0IHBlZyRwb3NEZXRhaWxzQ2FjaGUgPSBbeyBsaW5lOiAxLCBjb2x1bW46IDEgfV07XG4gIGxldCBwZWckbWF4RmFpbFBvcyA9IDA7XG4gIGxldCBwZWckbWF4RmFpbEV4cGVjdGVkOiBhbnlbXSA9IFtdO1xuICBsZXQgcGVnJHNpbGVudEZhaWxzID0gMDtcblxuICBjb25zdCBwZWckcmVzdWx0c0NhY2hlOiB7W2lkOiBudW1iZXJdOiBJQ2FjaGVkfSA9IHt9O1xuXG4gIGxldCBwZWckcmVzdWx0O1xuXG4gIGlmIChvcHRpb25zLnN0YXJ0UnVsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCEob3B0aW9ucy5zdGFydFJ1bGUgaW4gcGVnJHN0YXJ0UnVsZUZ1bmN0aW9ucykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IHN0YXJ0IHBhcnNpbmcgZnJvbSBydWxlIFxcXCJcIiArIG9wdGlvbnMuc3RhcnRSdWxlICsgXCJcXFwiLlwiKTtcbiAgICB9XG5cbiAgICBwZWckc3RhcnRSdWxlRnVuY3Rpb24gPSBwZWckc3RhcnRSdWxlRnVuY3Rpb25zW29wdGlvbnMuc3RhcnRSdWxlXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaW5wdXQuc3Vic3RyaW5nKHBlZyRzYXZlZFBvcywgcGVnJGN1cnJQb3MpO1xuICB9XG5cbiAgZnVuY3Rpb24gbG9jYXRpb24oKTogSUZpbGVSYW5nZSB7XG4gICAgcmV0dXJuIHBlZyRjb21wdXRlTG9jYXRpb24ocGVnJHNhdmVkUG9zLCBwZWckY3VyclBvcyk7XG4gIH1cblxuICBmdW5jdGlvbiBleHBlY3RlZChkZXNjcmlwdGlvbjogc3RyaW5nLCBsb2NhdGlvbjE/OiBJRmlsZVJhbmdlKSB7XG4gICAgbG9jYXRpb24xID0gbG9jYXRpb24xICE9PSB1bmRlZmluZWRcbiAgICAgID8gbG9jYXRpb24xXG4gICAgICA6IHBlZyRjb21wdXRlTG9jYXRpb24ocGVnJHNhdmVkUG9zLCBwZWckY3VyclBvcyk7XG5cbiAgICB0aHJvdyBwZWckYnVpbGRTdHJ1Y3R1cmVkRXJyb3IoXG4gICAgICBbcGVnJG90aGVyRXhwZWN0YXRpb24oZGVzY3JpcHRpb24pXSxcbiAgICAgIGlucHV0LnN1YnN0cmluZyhwZWckc2F2ZWRQb3MsIHBlZyRjdXJyUG9zKSxcbiAgICAgIGxvY2F0aW9uMVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIGxvY2F0aW9uMT86IElGaWxlUmFuZ2UpIHtcbiAgICBsb2NhdGlvbjEgPSBsb2NhdGlvbjEgIT09IHVuZGVmaW5lZFxuICAgICAgPyBsb2NhdGlvbjFcbiAgICAgIDogcGVnJGNvbXB1dGVMb2NhdGlvbihwZWckc2F2ZWRQb3MsIHBlZyRjdXJyUG9zKTtcblxuICAgIHRocm93IHBlZyRidWlsZFNpbXBsZUVycm9yKG1lc3NhZ2UsIGxvY2F0aW9uMSk7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKHRleHQxOiBzdHJpbmcsIGlnbm9yZUNhc2U6IGJvb2xlYW4pOiBJTGl0ZXJhbEV4cGVjdGF0aW9uIHtcbiAgICByZXR1cm4geyB0eXBlOiBcImxpdGVyYWxcIiwgdGV4dDogdGV4dDEsIGlnbm9yZUNhc2U6IGlnbm9yZUNhc2UgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRjbGFzc0V4cGVjdGF0aW9uKHBhcnRzOiBJQ2xhc3NQYXJ0cywgaW52ZXJ0ZWQ6IGJvb2xlYW4sIGlnbm9yZUNhc2U6IGJvb2xlYW4pOiBJQ2xhc3NFeHBlY3RhdGlvbiB7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJjbGFzc1wiLCBwYXJ0czogcGFydHMsIGludmVydGVkOiBpbnZlcnRlZCwgaWdub3JlQ2FzZTogaWdub3JlQ2FzZSB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGFueUV4cGVjdGF0aW9uKCk6IElBbnlFeHBlY3RhdGlvbiB7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJhbnlcIiB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGVuZEV4cGVjdGF0aW9uKCk6IElFbmRFeHBlY3RhdGlvbiB7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJlbmRcIiB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJG90aGVyRXhwZWN0YXRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IElPdGhlckV4cGVjdGF0aW9uIHtcbiAgICByZXR1cm4geyB0eXBlOiBcIm90aGVyXCIsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGNvbXB1dGVQb3NEZXRhaWxzKHBvczogbnVtYmVyKSB7XG4gICAgbGV0IGRldGFpbHMgPSBwZWckcG9zRGV0YWlsc0NhY2hlW3Bvc107XG4gICAgbGV0IHA7XG5cbiAgICBpZiAoZGV0YWlscykge1xuICAgICAgcmV0dXJuIGRldGFpbHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHAgPSBwb3MgLSAxO1xuICAgICAgd2hpbGUgKCFwZWckcG9zRGV0YWlsc0NhY2hlW3BdKSB7XG4gICAgICAgIHAtLTtcbiAgICAgIH1cblxuICAgICAgZGV0YWlscyA9IHBlZyRwb3NEZXRhaWxzQ2FjaGVbcF07XG4gICAgICBkZXRhaWxzID0ge1xuICAgICAgICBsaW5lOiBkZXRhaWxzLmxpbmUsXG4gICAgICAgIGNvbHVtbjogZGV0YWlscy5jb2x1bW5cbiAgICAgIH07XG5cbiAgICAgIHdoaWxlIChwIDwgcG9zKSB7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHApID09PSAxMCkge1xuICAgICAgICAgIGRldGFpbHMubGluZSsrO1xuICAgICAgICAgIGRldGFpbHMuY29sdW1uID0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZXRhaWxzLmNvbHVtbisrO1xuICAgICAgICB9XG5cbiAgICAgICAgcCsrO1xuICAgICAgfVxuXG4gICAgICBwZWckcG9zRGV0YWlsc0NhY2hlW3Bvc10gPSBkZXRhaWxzO1xuXG4gICAgICByZXR1cm4gZGV0YWlscztcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwZWckY29tcHV0ZUxvY2F0aW9uKHN0YXJ0UG9zOiBudW1iZXIsIGVuZFBvczogbnVtYmVyKTogSUZpbGVSYW5nZSB7XG4gICAgY29uc3Qgc3RhcnRQb3NEZXRhaWxzID0gcGVnJGNvbXB1dGVQb3NEZXRhaWxzKHN0YXJ0UG9zKTtcbiAgICBjb25zdCBlbmRQb3NEZXRhaWxzID0gcGVnJGNvbXB1dGVQb3NEZXRhaWxzKGVuZFBvcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHtcbiAgICAgICAgb2Zmc2V0OiBzdGFydFBvcyxcbiAgICAgICAgbGluZTogc3RhcnRQb3NEZXRhaWxzLmxpbmUsXG4gICAgICAgIGNvbHVtbjogc3RhcnRQb3NEZXRhaWxzLmNvbHVtblxuICAgICAgfSxcbiAgICAgIGVuZDoge1xuICAgICAgICBvZmZzZXQ6IGVuZFBvcyxcbiAgICAgICAgbGluZTogZW5kUG9zRGV0YWlscy5saW5lLFxuICAgICAgICBjb2x1bW46IGVuZFBvc0RldGFpbHMuY29sdW1uXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRmYWlsKGV4cGVjdGVkMTogRXhwZWN0YXRpb24pIHtcbiAgICBpZiAocGVnJGN1cnJQb3MgPCBwZWckbWF4RmFpbFBvcykgeyByZXR1cm47IH1cblxuICAgIGlmIChwZWckY3VyclBvcyA+IHBlZyRtYXhGYWlsUG9zKSB7XG4gICAgICBwZWckbWF4RmFpbFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgcGVnJG1heEZhaWxFeHBlY3RlZCA9IFtdO1xuICAgIH1cblxuICAgIHBlZyRtYXhGYWlsRXhwZWN0ZWQucHVzaChleHBlY3RlZDEpO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGJ1aWxkU2ltcGxlRXJyb3IobWVzc2FnZTogc3RyaW5nLCBsb2NhdGlvbjE6IElGaWxlUmFuZ2UpIHtcbiAgICByZXR1cm4gbmV3IFN5bnRheEVycm9yKG1lc3NhZ2UsIFtdLCBcIlwiLCBsb2NhdGlvbjEpO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGJ1aWxkU3RydWN0dXJlZEVycm9yKGV4cGVjdGVkMTogRXhwZWN0YXRpb25bXSwgZm91bmQ6IHN0cmluZyB8IG51bGwsIGxvY2F0aW9uMTogSUZpbGVSYW5nZSkge1xuICAgIHJldHVybiBuZXcgU3ludGF4RXJyb3IoXG4gICAgICBTeW50YXhFcnJvci5idWlsZE1lc3NhZ2UoZXhwZWN0ZWQxLCBmb3VuZCksXG4gICAgICBleHBlY3RlZDEsXG4gICAgICBmb3VuZCxcbiAgICAgIGxvY2F0aW9uMVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VFeHByZXNzaW9uKCk6IE9wZXJhbmQge1xuICAgIGxldCBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNiwgczcsIHM4O1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDA7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZV8oKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJHBhcnNlTG9naWNPcigpO1xuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gW107XG4gICAgICAgIHM0ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHM1ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNiA9IHBlZyRwYXJzZU9yU2lnbigpO1xuICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczcgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VMb2dpY09yKCk7XG4gICAgICAgICAgICAgIGlmIChzOCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM1ID0gW3M1LCBzNiwgczcsIHM4XTtcbiAgICAgICAgICAgICAgICBzNCA9IHM1O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHM0O1xuICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzLnB1c2goczQpO1xuICAgICAgICAgIHM0ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgczUgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNiA9IHBlZyRwYXJzZU9yU2lnbigpO1xuICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZUxvZ2ljT3IoKTtcbiAgICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM1ID0gW3M1LCBzNiwgczcsIHM4XTtcbiAgICAgICAgICAgICAgICAgIHM0ID0gczU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHM0O1xuICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjMChzMiwgczMpO1xuICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VPclNpZ24oKTogYW55IHtcbiAgICBsZXQgczAsIHMxO1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDE7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAyKSA9PT0gcGVnJGMxKSB7XG4gICAgICBzMSA9IHBlZyRjMTtcbiAgICAgIHBlZyRjdXJyUG9zICs9IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyKTsgfVxuICAgIH1cbiAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDIpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjMykge1xuICAgICAgICBzMSA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMik7XG4gICAgICAgIHBlZyRjdXJyUG9zICs9IDI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM0KTsgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzUoKTtcbiAgICB9XG4gICAgczAgPSBzMTtcblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUxvZ2ljT3IoKTogQmluYXJ5T3BlcmFuZCB7XG4gICAgbGV0IHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2LCBzNztcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyAyO1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VMb2dpY0FuZCgpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBbXTtcbiAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICBzNCA9IHBlZyRwYXJzZV8oKTtcbiAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzNSA9IHBlZyRwYXJzZUFuZFNpZ24oKTtcbiAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczYgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNyA9IHBlZyRwYXJzZUxvZ2ljQW5kKCk7XG4gICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczQgPSBbczQsIHM1LCBzNiwgczddO1xuICAgICAgICAgICAgICBzMyA9IHM0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBzNCA9IHBlZyRwYXJzZV8oKTtcbiAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczUgPSBwZWckcGFyc2VBbmRTaWduKCk7XG4gICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNiA9IHBlZyRwYXJzZV8oKTtcbiAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZUxvZ2ljQW5kKCk7XG4gICAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM0ID0gW3M0LCBzNSwgczYsIHM3XTtcbiAgICAgICAgICAgICAgICBzMyA9IHM0O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgIHMxID0gcGVnJGMwKHMxLCBzMik7XG4gICAgICAgIHMwID0gczE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcGVnJHJlc3VsdHNDYWNoZVtrZXldID0geyBuZXh0UG9zOiBwZWckY3VyclBvcywgcmVzdWx0OiBzMCB9O1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlQW5kU2lnbigpOiBhbnkge1xuICAgIGxldCBzMCwgczE7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMztcbiAgICBjb25zdCBjYWNoZWQ6IElDYWNoZWQgPSBwZWckcmVzdWx0c0NhY2hlW2tleV07XG5cbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBwZWckY3VyclBvcyA9IGNhY2hlZC5uZXh0UG9zO1xuXG4gICAgICByZXR1cm4gY2FjaGVkLnJlc3VsdDtcbiAgICB9XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDIpID09PSBwZWckYzYpIHtcbiAgICAgIHMxID0gcGVnJGM2O1xuICAgICAgcGVnJGN1cnJQb3MgKz0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzcpOyB9XG4gICAgfVxuICAgIGlmIChzMSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMykudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGM4KSB7XG4gICAgICAgIHMxID0gaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAzKTtcbiAgICAgICAgcGVnJGN1cnJQb3MgKz0gMztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzkpOyB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICBzMSA9IHBlZyRjMTAoKTtcbiAgICB9XG4gICAgczAgPSBzMTtcblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUxvZ2ljQW5kKCk6IEJpbmFyeU9wZXJhbmQge1xuICAgIGxldCBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNiwgczc7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgNDtcbiAgICBjb25zdCBjYWNoZWQ6IElDYWNoZWQgPSBwZWckcmVzdWx0c0NhY2hlW2tleV07XG5cbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBwZWckY3VyclBvcyA9IGNhY2hlZC5uZXh0UG9zO1xuXG4gICAgICByZXR1cm4gY2FjaGVkLnJlc3VsdDtcbiAgICB9XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlQ29tcE9wcygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBbXTtcbiAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICBzNCA9IHBlZyRwYXJzZV8oKTtcbiAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzNSA9IHBlZyRwYXJzZUNvbXBhcmFibGVPcGVyYXRvcnMoKTtcbiAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczYgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNyA9IHBlZyRwYXJzZUNvbXBPcHMoKTtcbiAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNCA9IFtzNCwgczUsIHM2LCBzN107XG4gICAgICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHM0ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNSA9IHBlZyRwYXJzZUNvbXBhcmFibGVPcGVyYXRvcnMoKTtcbiAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM2ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlQ29tcE9wcygpO1xuICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNCA9IFtzNCwgczUsIHM2LCBzN107XG4gICAgICAgICAgICAgICAgczMgPSBzNDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjMTEoczEsIHMyKTtcbiAgICAgICAgczAgPSBzMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VDb21wYXJhYmxlT3BlcmF0b3JzKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMTtcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyA1O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMikgPT09IHBlZyRjMTIpIHtcbiAgICAgIHMxID0gcGVnJGMxMjtcbiAgICAgIHBlZyRjdXJyUG9zICs9IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMyk7IH1cbiAgICB9XG4gICAgaWYgKHMxID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAxMSkudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGMxNCkge1xuICAgICAgICBzMSA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMTEpO1xuICAgICAgICBwZWckY3VyclBvcyArPSAxMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1KTsgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzE2KCk7XG4gICAgfVxuICAgIHMwID0gczE7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMikgPT09IHBlZyRjMTcpIHtcbiAgICAgICAgczEgPSBwZWckYzE3O1xuICAgICAgICBwZWckY3VyclBvcyArPSAyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTgpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMTQpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjMTkpIHtcbiAgICAgICAgICBzMSA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMTQpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDE0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzIxKCk7XG4gICAgICB9XG4gICAgICBzMCA9IHMxO1xuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNjEpIHtcbiAgICAgICAgICBzMSA9IHBlZyRjMjI7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjMjQpIHtcbiAgICAgICAgICAgIHMxID0gaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA1KTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyNSk7IH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgczEgPSBwZWckYzI2KCk7XG4gICAgICAgIH1cbiAgICAgICAgczAgPSBzMTtcbiAgICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAyKSA9PT0gcGVnJGMyNykge1xuICAgICAgICAgICAgczEgPSBwZWckYzI3O1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gMjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzI4KTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDgpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjMjkpIHtcbiAgICAgICAgICAgICAgczEgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDgpO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyArPSA4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMzApOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjMzEoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDYwKSB7XG4gICAgICAgICAgICAgIHMxID0gcGVnJGMzMjtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzMzKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHMxID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDQpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjMzQpIHtcbiAgICAgICAgICAgICAgICBzMSA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNCk7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzM1KTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgIHMxID0gcGVnJGMzNigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDYyKSB7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzM3O1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMzOCk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA3KS50b0xvd2VyQ2FzZSgpID09PSBwZWckYzM5KSB7XG4gICAgICAgICAgICAgICAgICBzMSA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNyk7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyArPSA3O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNDApOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGM0MSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGVnJHJlc3VsdHNDYWNoZVtrZXldID0geyBuZXh0UG9zOiBwZWckY3VyclBvcywgcmVzdWx0OiBzMCB9O1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlQ29tcE9wcygpOiBCaW5hcnlPcGVyYW5kIHtcbiAgICBsZXQgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczYsIHM3O1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDY7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZVBsdXNNaW51c09wcygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBbXTtcbiAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICBzNCA9IHBlZyRwYXJzZV8oKTtcbiAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzNSA9IHBlZyRwYXJzZVBsdXNNaW51c1NpZ25zKCk7XG4gICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM2ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczcgPSBwZWckcGFyc2VQbHVzTWludXNPcHMoKTtcbiAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNCA9IFtzNCwgczUsIHM2LCBzN107XG4gICAgICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHM0ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNSA9IHBlZyRwYXJzZVBsdXNNaW51c1NpZ25zKCk7XG4gICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNiA9IHBlZyRwYXJzZV8oKTtcbiAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZVBsdXNNaW51c09wcygpO1xuICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNCA9IFtzNCwgczUsIHM2LCBzN107XG4gICAgICAgICAgICAgICAgczMgPSBzNDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjMChzMSwgczIpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVBsdXNNaW51c1NpZ25zKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMTtcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyA3O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA0Mykge1xuICAgICAgczEgPSBwZWckYzQyO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzQzKTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzQ0KCk7XG4gICAgfVxuICAgIHMwID0gczE7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA0NSkge1xuICAgICAgICBzMSA9IHBlZyRjNDU7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM0Nik7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzQ3KCk7XG4gICAgICB9XG4gICAgICBzMCA9IHMxO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVBsdXNNaW51c09wcygpOiBCaW5hcnlPcGVyYW5kIHtcbiAgICBsZXQgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczYsIHM3O1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDg7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZU11bERpdk9wcygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBbXTtcbiAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICBzNCA9IHBlZyRwYXJzZV8oKTtcbiAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzNSA9IHBlZyRwYXJzZU11bERpdlNpZ25zKCk7XG4gICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM2ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczcgPSBwZWckcGFyc2VNdWxEaXZPcHMoKTtcbiAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNCA9IFtzNCwgczUsIHM2LCBzN107XG4gICAgICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHM0ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNSA9IHBlZyRwYXJzZU11bERpdlNpZ25zKCk7XG4gICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNiA9IHBlZyRwYXJzZV8oKTtcbiAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZU11bERpdk9wcygpO1xuICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNCA9IFtzNCwgczUsIHM2LCBzN107XG4gICAgICAgICAgICAgICAgczMgPSBzNDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjMChzMSwgczIpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZU11bERpdlNpZ25zKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMTtcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyA5O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA0Mikge1xuICAgICAgczEgPSBwZWckYzQ4O1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzQ5KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzUwKCk7XG4gICAgfVxuICAgIHMwID0gczE7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA0Nykge1xuICAgICAgICBzMSA9IHBlZyRjNTE7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM1Mik7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzUzKCk7XG4gICAgICB9XG4gICAgICBzMCA9IHMxO1xuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMzcpIHtcbiAgICAgICAgICBzMSA9IHBlZyRjNTQ7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzU1KTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGM1NigpO1xuICAgICAgICB9XG4gICAgICAgIHMwID0gczE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGVnJHJlc3VsdHNDYWNoZVtrZXldID0geyBuZXh0UG9zOiBwZWckY3VyclBvcywgcmVzdWx0OiBzMCB9O1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlTXVsRGl2T3BzKCk6IEJpbmFyeU9wZXJhbmQge1xuICAgIGxldCBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNiwgczc7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMTA7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZUJpbmFyeUZ1bmNPcCgpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBbXTtcbiAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICBzNCA9IHBlZyRwYXJzZV8oKTtcbiAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzNSA9IHBlZyRwYXJzZVBvd2VyU2lnbnMoKTtcbiAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczYgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNyA9IHBlZyRwYXJzZUJpbmFyeUZ1bmNPcCgpO1xuICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM0ID0gW3M0LCBzNSwgczYsIHM3XTtcbiAgICAgICAgICAgICAgczMgPSBzNDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMi5wdXNoKHMzKTtcbiAgICAgICAgczMgPSBwZWckY3VyclBvcztcbiAgICAgICAgczQgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM1ID0gcGVnJHBhcnNlUG93ZXJTaWducygpO1xuICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczYgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VCaW5hcnlGdW5jT3AoKTtcbiAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczQgPSBbczQsIHM1LCBzNiwgczddO1xuICAgICAgICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzAoczEsIHMyKTtcbiAgICAgICAgczAgPSBzMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VQb3dlclNpZ25zKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMTtcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyAxMTtcbiAgICBjb25zdCBjYWNoZWQ6IElDYWNoZWQgPSBwZWckcmVzdWx0c0NhY2hlW2tleV07XG5cbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBwZWckY3VyclBvcyA9IGNhY2hlZC5uZXh0UG9zO1xuXG4gICAgICByZXR1cm4gY2FjaGVkLnJlc3VsdDtcbiAgICB9XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTQpIHtcbiAgICAgIHMxID0gcGVnJGM1NztcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM1OCk7IH1cbiAgICB9XG4gICAgaWYgKHMxID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA1KS50b0xvd2VyQ2FzZSgpID09PSBwZWckYzU5KSB7XG4gICAgICAgIHMxID0gaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA1KTtcbiAgICAgICAgcGVnJGN1cnJQb3MgKz0gNTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzYwKTsgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzYxKCk7XG4gICAgfVxuICAgIHMwID0gczE7XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VCaW5hcnlGdW5jT3AoKTogYW55IHtcbiAgICBsZXQgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczYsIHM3O1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDEyO1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VGYWN0b3IoKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gW107XG4gICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgczQgPSBwZWckcGFyc2VfKCk7XG4gICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczUgPSBwZWckcGFyc2VCaW5GdW5jdGlvbnMoKTtcbiAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczYgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNyA9IHBlZyRwYXJzZUZhY3RvcigpO1xuICAgICAgICAgICAgaWYgKHM3ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM3ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNCA9IFtzNCwgczUsIHM2LCBzN107XG4gICAgICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHM0ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNSA9IHBlZyRwYXJzZUJpbkZ1bmN0aW9ucygpO1xuICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczYgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VGYWN0b3IoKTtcbiAgICAgICAgICAgICAgaWYgKHM3ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczcgPSBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM0ID0gW3M0LCBzNSwgczYsIHM3XTtcbiAgICAgICAgICAgICAgICBzMyA9IHM0O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgIHMxID0gcGVnJGMxMShzMSwgczIpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUJpbkZ1bmN0aW9ucygpOiBhbnkge1xuICAgIGxldCBzMCwgczE7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMTM7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAyKSA9PT0gcGVnJGM2Mikge1xuICAgICAgczEgPSBwZWckYzYyO1xuICAgICAgcGVnJGN1cnJQb3MgKz0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzYzKTsgfVxuICAgIH1cbiAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDgpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjNjQpIHtcbiAgICAgICAgczEgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDgpO1xuICAgICAgICBwZWckY3VyclBvcyArPSA4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNjUpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNykudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGM2Nikge1xuICAgICAgICAgIHMxID0gaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA3KTtcbiAgICAgICAgICBwZWckY3VyclBvcyArPSA3O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNjcpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgIHMxID0gcGVnJGM2OCgpO1xuICAgIH1cbiAgICBzMCA9IHMxO1xuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDExKS50b0xvd2VyQ2FzZSgpID09PSBwZWckYzY5KSB7XG4gICAgICAgIHMxID0gaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAxMSk7XG4gICAgICAgIHBlZyRjdXJyUG9zICs9IDExO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNzApOyB9XG4gICAgICB9XG4gICAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMTApLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjNzEpIHtcbiAgICAgICAgICBzMSA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMTApO1xuICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDEwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNzIpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzczKCk7XG4gICAgICB9XG4gICAgICBzMCA9IHMxO1xuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjNzQpIHtcbiAgICAgICAgICBzMSA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNSk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzc1KTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGM3NigpO1xuICAgICAgICB9XG4gICAgICAgIHMwID0gczE7XG4gICAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNSkudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGM3Nykge1xuICAgICAgICAgICAgczEgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzc4KTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgczEgPSBwZWckYzc5KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHMwID0gczE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VGYWN0b3IoKTogT3BlcmFuZCB7XG4gICAgbGV0IHMwLCBzMSwgczIsIHMzLCBzNCwgczU7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMTQ7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDQwKSB7XG4gICAgICBzMSA9IHBlZyRjODA7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODEpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VfKCk7XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA0MSkge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRjODI7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4Myk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgIHMxID0gcGVnJGM4NChzMyk7XG4gICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckcGFyc2VGdW5jdGlvbk9wKCk7XG4gICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczAgPSBwZWckcGFyc2VVbmFyeUZ1bmN0aW9uT3AoKTtcbiAgICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczAgPSBwZWckcGFyc2VBdG9tKCk7XG4gICAgICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMCA9IHBlZyRwYXJzZUFycmF5T3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VGdW5jdGlvbk9wKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMSwgczIsIHMzLCBzNDtcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyAxNTtcbiAgICBjb25zdCBjYWNoZWQ6IElDYWNoZWQgPSBwZWckcmVzdWx0c0NhY2hlW2tleV07XG5cbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBwZWckY3VyclBvcyA9IGNhY2hlZC5uZXh0UG9zO1xuXG4gICAgICByZXR1cm4gY2FjaGVkLnJlc3VsdDtcbiAgICB9XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlTGV0dGVyc0FuZERpZ2l0cygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA0MCkge1xuICAgICAgICBzMiA9IHBlZyRjODA7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZVNlcXVlbmNlKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNDEpIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJGM4MjtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4Myk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNCA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjODUoczEsIHMzKTtcbiAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcGVnJHJlc3VsdHNDYWNoZVtrZXldID0geyBuZXh0UG9zOiBwZWckY3VyclBvcywgcmVzdWx0OiBzMCB9O1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlVW5hcnlGdW5jdGlvbk9wKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMSwgczIsIHMzO1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDE2O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAzMykge1xuICAgICAgczEgPSBwZWckYzg2O1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzg3KTsgfVxuICAgIH1cbiAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDYpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjODgpIHtcbiAgICAgICAgczEgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDYpO1xuICAgICAgICBwZWckY3VyclBvcyArPSA2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODkpOyB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VfKCk7XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGM5MChzMyk7XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICBzMSA9IHBlZyRwYXJzZUF0b20oKTtcbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IHBlZyRwYXJzZV8oKTtcbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczMgPSBwZWckcGFyc2VVbkZ1bmN0aW9ucygpO1xuICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjOTEoczEsIHMzKTtcbiAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGVnJHJlc3VsdHNDYWNoZVtrZXldID0geyBuZXh0UG9zOiBwZWckY3VyclBvcywgcmVzdWx0OiBzMCB9O1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlVW5GdW5jdGlvbnMoKTogYW55IHtcbiAgICBsZXQgczAsIHMxO1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDE3O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNSkudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGM5Mikge1xuICAgICAgczEgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpO1xuICAgICAgcGVnJGN1cnJQb3MgKz0gNTtcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzkzKTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzk0KCk7XG4gICAgfVxuICAgIHMwID0gczE7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgOCkudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGM5NSkge1xuICAgICAgICBzMSA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgOCk7XG4gICAgICAgIHBlZyRjdXJyUG9zICs9IDg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM5Nik7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzk3KCk7XG4gICAgICB9XG4gICAgICBzMCA9IHMxO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUF0b20oKTogYW55IHtcbiAgICBsZXQgczAsIHMxLCBzMiwgczMsIHM0O1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDE4O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VfKCk7XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA5KSA9PT0gcGVnJGM5OCkge1xuICAgICAgICBzMiA9IHBlZyRjOTg7XG4gICAgICAgIHBlZyRjdXJyUG9zICs9IDk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM5OSk7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA0KSA9PT0gcGVnJGMxMDApIHtcbiAgICAgICAgICBzMiA9IHBlZyRjMTAwO1xuICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMDEpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzEwMigpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICBzMSA9IHBlZyRwYXJzZV8oKTtcbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IHBlZyRwYXJzZUNvbnN0VmFsdWUoKTtcbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgczEgPSBwZWckYzEwMyhzMik7XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHMxID0gcGVnJHBhcnNlXygpO1xuICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyMykge1xuICAgICAgICAgICAgczIgPSBwZWckYzEwNDtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMDUpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMgPSBwZWckcGFyc2VWYWx1ZUlucHV0KCk7XG4gICAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICAgICAgICBzNCA9IHBlZyRjMTA2O1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMDcpOyB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzEwOChzMyk7XG4gICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUNvbnN0VmFsdWUoKTogYW55IHtcbiAgICBsZXQgczAsIHMxLCBzMiwgczM7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMTk7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckcGFyc2VMb2dpY1ZhbHVlKCk7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRwYXJzZUFyaXRobWV0aWNWYWx1ZSgpO1xuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJHBhcnNlTGV0dGVyc0FuZERpZ2l0cygpO1xuICAgICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMzkpIHtcbiAgICAgICAgICAgIHMxID0gcGVnJGMxMDk7XG4gICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTEwKTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMyID0gcGVnJHBhcnNlQW55SW5wdXQoKTtcbiAgICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDM5KSB7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckYzEwOTtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTEwKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGMxMTEoczIpO1xuICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAzNCkge1xuICAgICAgICAgICAgICBzMSA9IHBlZyRjMTEyO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTEzKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHMyID0gcGVnJHBhcnNlQW55SW5wdXQoKTtcbiAgICAgICAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAzNCkge1xuICAgICAgICAgICAgICAgICAgczMgPSBwZWckYzExMjtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTMpOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMTExKHMyKTtcbiAgICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGVnJHJlc3VsdHNDYWNoZVtrZXldID0geyBuZXh0UG9zOiBwZWckY3VyclBvcywgcmVzdWx0OiBzMCB9O1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlQXJyYXlPcCgpOiBhbnkge1xuICAgIGxldCBzMCwgczEsIHMyLCBzMztcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyAyMDtcbiAgICBjb25zdCBjYWNoZWQ6IElDYWNoZWQgPSBwZWckcmVzdWx0c0NhY2hlW2tleV07XG5cbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBwZWckY3VyclBvcyA9IGNhY2hlZC5uZXh0UG9zO1xuXG4gICAgICByZXR1cm4gY2FjaGVkLnJlc3VsdDtcbiAgICB9XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTEpIHtcbiAgICAgIHMxID0gcGVnJGMxMTQ7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTE1KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJHBhcnNlU2VxdWVuY2UoKTtcbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkzKSB7XG4gICAgICAgICAgczMgPSBwZWckYzExNjtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTE3KTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGMxMTgoczIpO1xuICAgICAgICAgIHMwID0gczE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VTZXF1ZW5jZSgpOiBBcnJheU9wZXJhbmQge1xuICAgIGxldCBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNiwgczc7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMjE7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZUV4cHJlc3Npb24oKTtcbiAgICBpZiAoczEgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMxID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IFtdO1xuICAgICAgczMgPSBwZWckY3VyclBvcztcbiAgICAgIHM0ID0gcGVnJHBhcnNlXygpO1xuICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNDQpIHtcbiAgICAgICAgICBzNSA9IHBlZyRjMTE5O1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMjApOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczYgPSBwZWckcGFyc2VfKCk7XG4gICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNyA9IHBlZyRwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNCA9IFtzNCwgczUsIHM2LCBzN107XG4gICAgICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHM0ID0gcGVnJHBhcnNlXygpO1xuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDQ0KSB7XG4gICAgICAgICAgICBzNSA9IHBlZyRjMTE5O1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEyMCk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNiA9IHBlZyRwYXJzZV8oKTtcbiAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczQgPSBbczQsIHM1LCBzNiwgczddO1xuICAgICAgICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzEyMShzMSwgczIpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUxvZ2ljVmFsdWUoKTogYW55IHtcbiAgICBsZXQgczAsIHMxO1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDIyO1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNCkudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGMxMjIpIHtcbiAgICAgIHMxID0gaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA0KTtcbiAgICAgIHBlZyRjdXJyUG9zICs9IDQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMjMpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICBzMSA9IHBlZyRjMTI0KCk7XG4gICAgfVxuICAgIHMwID0gczE7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNSkudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGMxMjUpIHtcbiAgICAgICAgczEgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpO1xuICAgICAgICBwZWckY3VyclBvcyArPSA1O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTI2KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjMTI3KCk7XG4gICAgICB9XG4gICAgICBzMCA9IHMxO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUFyaXRobWV0aWNWYWx1ZSgpOiBhbnkge1xuICAgIGxldCBzMCwgczEsIHMyO1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDIzO1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMikgPT09IHBlZyRjMTI4KSB7XG4gICAgICBzMSA9IHBlZyRjMTI4O1xuICAgICAgcGVnJGN1cnJQb3MgKz0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEyOSk7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZURpZ2l0cygpO1xuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjMTMwKCk7XG4gICAgICAgIHMwID0gczE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIGlmIChwZWckYzEzMS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEzMik7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMSA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBwZWckcGFyc2VOdW1iZXIoKTtcbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgczEgPSBwZWckYzEzMyhzMSwgczIpO1xuICAgICAgICAgIHMwID0gczE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VOdW1iZXIoKTogYW55IHtcbiAgICBsZXQgczAsIHMxLCBzMiwgczM7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMjQ7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZURpZ2l0cygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA0Nikge1xuICAgICAgICBzMiA9IHBlZyRjMTM0O1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTM1KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlRGlnaXRzKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGMxMzYoKTtcbiAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIHMxID0gcGVnJHBhcnNlTm9uWmVyb0RpZ2l0cygpO1xuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gcGVnJHBhcnNlRGlnaXRzKCk7XG4gICAgICAgIGlmIChzMiA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICBzMSA9IHBlZyRjMTM3KCk7XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNDgpIHtcbiAgICAgICAgICBzMSA9IHBlZyRjMTM4O1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMzkpOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgczEgPSBwZWckYzE0MCgpO1xuICAgICAgICB9XG4gICAgICAgIHMwID0gczE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGVnJHJlc3VsdHNDYWNoZVtrZXldID0geyBuZXh0UG9zOiBwZWckY3VyclBvcywgcmVzdWx0OiBzMCB9O1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlVmFsdWVJbnB1dCgpOiBhbnkge1xuICAgIGxldCBzMCwgczEsIHMyO1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDI1O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBbXTtcbiAgICBzMiA9IHBlZyRwYXJzZVZhbHVlQ2hhcmFjdGVycygpO1xuICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMxLnB1c2goczIpO1xuICAgICAgICBzMiA9IHBlZyRwYXJzZVZhbHVlQ2hhcmFjdGVycygpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICBzMSA9IHBlZyRjMTQxKHMxKTtcbiAgICB9XG4gICAgczAgPSBzMTtcblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUFueUlucHV0KCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMSwgczI7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMjY7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IFtdO1xuICAgIHMyID0gcGVnJHBhcnNlQW55Q2hhcmFjdGVycygpO1xuICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMxLnB1c2goczIpO1xuICAgICAgICBzMiA9IHBlZyRwYXJzZUFueUNoYXJhY3RlcnMoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzE0MShzMSk7XG4gICAgfVxuICAgIHMwID0gczE7XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VBbnlDaGFyYWN0ZXJzKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMTtcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyAyNztcbiAgICBjb25zdCBjYWNoZWQ6IElDYWNoZWQgPSBwZWckcmVzdWx0c0NhY2hlW2tleV07XG5cbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBwZWckY3VyclBvcyA9IGNhY2hlZC5uZXh0UG9zO1xuXG4gICAgICByZXR1cm4gY2FjaGVkLnJlc3VsdDtcbiAgICB9XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDIpID09PSBwZWckYzE0Mikge1xuICAgICAgczEgPSBwZWckYzE0MjtcbiAgICAgIHBlZyRjdXJyUG9zICs9IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDMpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICBzMSA9IHBlZyRjMTQ0KCk7XG4gICAgfVxuICAgIHMwID0gczE7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMikgPT09IHBlZyRjMTQ1KSB7XG4gICAgICAgIHMxID0gcGVnJGMxNDU7XG4gICAgICAgIHBlZyRjdXJyUG9zICs9IDI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDYpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgIHMxID0gcGVnJGMxNDcoKTtcbiAgICAgIH1cbiAgICAgIHMwID0gczE7XG4gICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgICAgaWYgKHBlZyRjMTQ4LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE0OSk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICBzMSA9IHBlZyRjMTUwKCk7XG4gICAgICAgIH1cbiAgICAgICAgczAgPSBzMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VWYWx1ZUNoYXJhY3RlcnMoKTogYW55IHtcbiAgICBsZXQgczAsIHMxO1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDI4O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKHBlZyRjMTUxLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNTIpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICBzMSA9IHBlZyRjMTUwKCk7XG4gICAgfVxuICAgIHMwID0gczE7XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VMZXR0ZXJzQW5kRGlnaXRzKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2O1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDI5O1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VMZXR0ZXJzKCk7XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IFtdO1xuICAgICAgczMgPSBwZWckY3VyclBvcztcbiAgICAgIHM0ID0gcGVnJHBhcnNlRGlnaXRzKCk7XG4gICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczUgPSBbXTtcbiAgICAgICAgczYgPSBwZWckcGFyc2VMZXR0ZXJzKCk7XG4gICAgICAgIHdoaWxlIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM1LnB1c2goczYpO1xuICAgICAgICAgIHM2ID0gcGVnJHBhcnNlTGV0dGVycygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gW3M0LCBzNV07XG4gICAgICAgICAgczMgPSBzNDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBzNCA9IHBlZyRwYXJzZURpZ2l0cygpO1xuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNSA9IFtdO1xuICAgICAgICAgIHM2ID0gcGVnJHBhcnNlTGV0dGVycygpO1xuICAgICAgICAgIHdoaWxlIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczUucHVzaChzNik7XG4gICAgICAgICAgICBzNiA9IHBlZyRwYXJzZUxldHRlcnMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNCA9IFtzNCwgczVdO1xuICAgICAgICAgICAgczMgPSBzNDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzE1MCgpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZURpZ2l0cygpOiBhbnkge1xuICAgIGxldCBzMCwgczE7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMzA7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgczAgPSBbXTtcbiAgICBpZiAocGVnJGMxNTMudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1NCk7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICB3aGlsZSAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczAucHVzaChzMSk7XG4gICAgICAgIGlmIChwZWckYzE1My50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNTQpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZU5vblplcm9EaWdpdHMoKTogYW55IHtcbiAgICBsZXQgczAsIHMxO1xuXG4gICAgY29uc3Qga2V5ID0gcGVnJGN1cnJQb3MgKiAzNCArIDMxO1xuICAgIGNvbnN0IGNhY2hlZDogSUNhY2hlZCA9IHBlZyRyZXN1bHRzQ2FjaGVba2V5XTtcblxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gY2FjaGVkLm5leHRQb3M7XG5cbiAgICAgIHJldHVybiBjYWNoZWQucmVzdWx0O1xuICAgIH1cblxuICAgIHMwID0gW107XG4gICAgaWYgKHBlZyRjMTU1LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNTYpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwLnB1c2goczEpO1xuICAgICAgICBpZiAocGVnJGMxNTUudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU2KTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICBwZWckcmVzdWx0c0NhY2hlW2tleV0gPSB7IG5leHRQb3M6IHBlZyRjdXJyUG9zLCByZXN1bHQ6IHMwIH07XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VMZXR0ZXJzKCk6IGFueSB7XG4gICAgbGV0IHMwLCBzMTtcblxuICAgIGNvbnN0IGtleSA9IHBlZyRjdXJyUG9zICogMzQgKyAzMjtcbiAgICBjb25zdCBjYWNoZWQ6IElDYWNoZWQgPSBwZWckcmVzdWx0c0NhY2hlW2tleV07XG5cbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBwZWckY3VyclBvcyA9IGNhY2hlZC5uZXh0UG9zO1xuXG4gICAgICByZXR1cm4gY2FjaGVkLnJlc3VsdDtcbiAgICB9XG5cbiAgICBzMCA9IFtdO1xuICAgIGlmIChwZWckYzE1Ny50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU4KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHdoaWxlIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMC5wdXNoKHMxKTtcbiAgICAgICAgaWYgKHBlZyRjMTU3LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1OCk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcGVnJHJlc3VsdHNDYWNoZVtrZXldID0geyBuZXh0UG9zOiBwZWckY3VyclBvcywgcmVzdWx0OiBzMCB9O1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlXygpOiBhbnkge1xuICAgIGxldCBzMCwgczE7XG5cbiAgICBjb25zdCBrZXkgPSBwZWckY3VyclBvcyAqIDM0ICsgMzM7XG4gICAgY29uc3QgY2FjaGVkOiBJQ2FjaGVkID0gcGVnJHJlc3VsdHNDYWNoZVtrZXldO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcGVnJGN1cnJQb3MgPSBjYWNoZWQubmV4dFBvcztcblxuICAgICAgcmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG4gICAgfVxuXG4gICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgczAgPSBbXTtcbiAgICBpZiAocGVnJGMxNjAudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE2MSk7IH1cbiAgICB9XG4gICAgd2hpbGUgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMC5wdXNoKHMxKTtcbiAgICAgIGlmIChwZWckYzE2MC50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE2MSk7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU5KTsgfVxuICAgIH1cblxuICAgIHBlZyRyZXN1bHRzQ2FjaGVba2V5XSA9IHsgbmV4dFBvczogcGVnJGN1cnJQb3MsIHJlc3VsdDogczAgfTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG5cbiAgICBmdW5jdGlvbiBidWlsZEJpbmFyeU9wZXJhbmQoaGVhZDogT3BlcmFuZCwgdGFpbDogQXJyYXk8YW55PiwgaXNBcml0aG1ldGljT3A6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHRhaWwucmVkdWNlKFxuICAgICAgICBmdW5jdGlvbihyZXN1bHQsIGVsZW1lbnRzKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBCaW5hcnlPcGVyYW5kKGVsZW1lbnRzWzFdLCByZXN1bHQsIGVsZW1lbnRzWzNdLCBpc0FyaXRobWV0aWNPcCk7XG4gICAgICAgIH0sIFxuICAgICAgICBoZWFkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmbGF0dGVuQXJyYXkoYXJyYXk6IEFycmF5PGFueT4pOiBBcnJheTxhbnk+IHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQuYXBwbHkoW10sIGFycmF5KTtcbiAgICB9XG5cblxuICBwZWckcmVzdWx0ID0gcGVnJHN0YXJ0UnVsZUZ1bmN0aW9uKCk7XG5cbiAgaWYgKHBlZyRyZXN1bHQgIT09IHBlZyRGQUlMRUQgJiYgcGVnJGN1cnJQb3MgPT09IGlucHV0Lmxlbmd0aCkge1xuICAgIHJldHVybiBwZWckcmVzdWx0O1xuICB9IGVsc2Uge1xuICAgIGlmIChwZWckcmVzdWx0ICE9PSBwZWckRkFJTEVEICYmIHBlZyRjdXJyUG9zIDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgICBwZWckZmFpbChwZWckZW5kRXhwZWN0YXRpb24oKSk7XG4gICAgfVxuXG4gICAgdGhyb3cgcGVnJGJ1aWxkU3RydWN0dXJlZEVycm9yKFxuICAgICAgcGVnJG1heEZhaWxFeHBlY3RlZCxcbiAgICAgIHBlZyRtYXhGYWlsUG9zIDwgaW5wdXQubGVuZ3RoID8gaW5wdXQuY2hhckF0KHBlZyRtYXhGYWlsUG9zKSA6IG51bGwsXG4gICAgICBwZWckbWF4RmFpbFBvcyA8IGlucHV0Lmxlbmd0aFxuICAgICAgICA/IHBlZyRjb21wdXRlTG9jYXRpb24ocGVnJG1heEZhaWxQb3MsIHBlZyRtYXhGYWlsUG9zICsgMSlcbiAgICAgICAgOiBwZWckY29tcHV0ZUxvY2F0aW9uKHBlZyRtYXhGYWlsUG9zLCBwZWckbWF4RmFpbFBvcylcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBhcnNlT3B0aW9ucyB7XG4gIGZpbGVuYW1lPzogc3RyaW5nO1xuICBzdGFydFJ1bGU/OiBzdHJpbmc7XG4gIHRyYWNlcj86IGFueTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuZXhwb3J0IHR5cGUgUGFyc2VGdW5jdGlvbiA9IChpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogSVBhcnNlT3B0aW9ucykgPT4gYW55O1xuZXhwb3J0IGNvbnN0IHBhcnNlOiBQYXJzZUZ1bmN0aW9uID0gcGVnJHBhcnNlO1xuXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvZXhwcmVzc2lvbnMvZXhwcmVzc2lvblBhcnNlci50cyIsImltcG9ydCB7IFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBJRWxlbWVudCwgSVF1ZXN0aW9uIH0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgUGFuZWxNb2RlbCB9IGZyb20gXCIuL3BhbmVsXCI7XG5pbXBvcnQgeyBMb2NhbGl6YWJsZVN0cmluZyB9IGZyb20gXCIuL2xvY2FsaXphYmxlc3RyaW5nXCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5cbi8qKlxuICogVGhlIGZsb3cgcGFuZWwgb2JqZWN0LiBJdCBpcyBhIGNvbnRhaW5lciB3aXRoIGZsb3cgbGF5b3V0IHdoZXJlIHlvdSBjYW4gbWl4IHF1ZXN0aW9ucyB3aXRoIG1hcmRvd24gdGV4dC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBGbG93UGFuZWxNb2RlbCBleHRlbmRzIFBhbmVsTW9kZWwge1xuICBzdGF0aWMgY29udGVudEVsZW1lbnROYW1lUHJlZml4ID0gXCJlbGVtZW50OlwiO1xuICBwdWJsaWMgY29udGVudENoYW5nZWRDYWxsYmFjazogKCkgPT4gdm9pZDtcbiAgcHVibGljIG9uR2V0SHRtbEZvclF1ZXN0aW9uOiAocXVlc3Rpb246IFF1ZXN0aW9uKSA9PiBzdHJpbmc7XG4gIHB1YmxpYyBvbkN1c3RvbUh0bWxQcm9kdWNpbmc6ICgpID0+IHN0cmluZztcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nID0gXCJcIikge1xuICAgIHN1cGVyKG5hbWUpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJjb250ZW50XCIsIHRoaXMsIHRydWUpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFwiY29udGVudFwiLCBmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYub25Db250ZW50Q2hhbmdlZCgpO1xuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiZmxvd3BhbmVsXCI7XG4gIH1cbiAgZ2V0Q2hpbGRyZW5MYXlvdXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiZmxvd1wiO1xuICB9XG4gIG9uU3VydmV5TG9hZCgpOiBhbnkge1xuICAgIHN1cGVyLm9uU3VydmV5TG9hZCgpO1xuICAgIHRoaXMub25Db250ZW50Q2hhbmdlZCgpO1xuICB9XG4gIHB1YmxpYyBnZXQgY29udGVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImNvbnRlbnRcIik7XG4gIH1cbiAgcHVibGljIHNldCBjb250ZW50KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJjb250ZW50XCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBsb2NDb250ZW50KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcImNvbnRlbnRcIik7XG4gIH1cbiAgcHVibGljIGdldCBodG1sKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImh0bWxcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBodG1sKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaHRtbFwiLCB2YWwpO1xuICB9XG4gIHByb3RlY3RlZCBvbkNvbnRlbnRDaGFuZ2VkKCk6IGFueSB7XG4gICAgdmFyIGh0bWwgPSBcIlwiO1xuICAgIGlmICghIXRoaXMub25DdXN0b21IdG1sUHJvZHVjaW5nKSB7XG4gICAgICBodG1sID0gdGhpcy5vbkN1c3RvbUh0bWxQcm9kdWNpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaHRtbCA9IHRoaXMucHJvZHVjZUh0bWwoKTtcbiAgICB9XG4gICAgdGhpcy5odG1sID0gaHRtbDtcbiAgICBpZiAoISF0aGlzLmNvbnRlbnRDaGFuZ2VkQ2FsbGJhY2spIHRoaXMuY29udGVudENoYW5nZWRDYWxsYmFjaygpO1xuICB9XG4gIHB1YmxpYyBwcm9kdWNlSHRtbCgpOiBzdHJpbmcge1xuICAgIHZhciBodG1sID0gW107XG4gICAgLy9jb250ZW50RWxlbWVudE5hbWVQcmVmaXhcbiAgICB2YXIgcmVnRXggPSAveyguKj8oZWxlbWVudDopW14kXS4qPyl9L2c7XG4gICAgdmFyIHN0ciA9IHRoaXMuY29udGVudDtcbiAgICB2YXIgc3RhcnRJbmRleCA9IDA7XG4gICAgdmFyIHJlcyA9IG51bGw7XG4gICAgd2hpbGUgKChyZXMgPSByZWdFeC5leGVjKHN0cikpICE9PSBudWxsKSB7XG4gICAgICBpZiAocmVzLmluZGV4ID4gc3RhcnRJbmRleCkge1xuICAgICAgICBodG1sLnB1c2goc3RyLnN1YnN0cihzdGFydEluZGV4LCByZXMuaW5kZXggLSBzdGFydEluZGV4KSk7XG4gICAgICAgIHN0YXJ0SW5kZXggPSByZXMuaW5kZXg7XG4gICAgICB9XG4gICAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uRnJvbVRleHQocmVzWzBdKTtcbiAgICAgIGlmICghIXF1ZXN0aW9uKSB7XG4gICAgICAgIGh0bWwucHVzaCh0aGlzLmdldEh0bWxGb3JRdWVzdGlvbihxdWVzdGlvbikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaHRtbC5wdXNoKFxuICAgICAgICAgIHN0ci5zdWJzdHIoc3RhcnRJbmRleCwgcmVzLmluZGV4ICsgcmVzWzBdLmxlbmd0aCAtIHN0YXJ0SW5kZXgpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzdGFydEluZGV4ID0gcmVzLmluZGV4ICsgcmVzWzBdLmxlbmd0aDtcbiAgICB9XG4gICAgaWYgKHN0YXJ0SW5kZXggPCBzdHIubGVuZ3RoKSB7XG4gICAgICBodG1sLnB1c2goc3RyLnN1YnN0cihzdGFydEluZGV4LCBzdHIubGVuZ3RoIC0gc3RhcnRJbmRleCkpO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbC5qb2luKFwiXCIpLnJlcGxhY2UobmV3IFJlZ0V4cChcIjxicj5cIiwgXCJnXCIpLCBcIjxici8+XCIpO1xuICB9XG4gIHB1YmxpYyBnZXRRdWVzdGlvbkZyb21UZXh0KHN0cjogc3RyaW5nKTogUXVlc3Rpb24ge1xuICAgIHN0ciA9IHN0ci5zdWJzdHIoMSwgc3RyLmxlbmd0aCAtIDIpO1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKEZsb3dQYW5lbE1vZGVsLmNvbnRlbnRFbGVtZW50TmFtZVByZWZpeCwgXCJcIikudHJpbSgpO1xuICAgIHJldHVybiB0aGlzLmdldFF1ZXN0aW9uQnlOYW1lKHN0cik7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEh0bWxGb3JRdWVzdGlvbihxdWVzdGlvbjogUXVlc3Rpb24pOiBzdHJpbmcge1xuICAgIGlmICghIXRoaXMub25HZXRIdG1sRm9yUXVlc3Rpb24pIHJldHVybiB0aGlzLm9uR2V0SHRtbEZvclF1ZXN0aW9uKHF1ZXN0aW9uKTtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UXVlc3Rpb25IdG1sSWQocXVlc3Rpb246IFF1ZXN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lICsgXCJfXCIgKyBxdWVzdGlvbi5pZDtcbiAgfVxuICBwcm90ZWN0ZWQgb25BZGRFbGVtZW50KGVsZW1lbnQ6IElFbGVtZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgc3VwZXIub25BZGRFbGVtZW50KGVsZW1lbnQsIGluZGV4KTtcbiAgICB0aGlzLmFkZEVsZW1lbnRUb0NvbnRlbnQoZWxlbWVudCk7XG4gICAgZWxlbWVudC5yZW5kZXJXaWR0aCA9IFwiXCI7XG4gIH1cbiAgcHJvdGVjdGVkIG9uUmVtb3ZlRWxlbWVudChlbGVtZW50OiBJRWxlbWVudCkge1xuICAgIHZhciBzZWFyY2hTdHIgPSB0aGlzLmdldEVsZW1lbnRDb250ZW50VGV4dChlbGVtZW50KTtcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQucmVwbGFjZShzZWFyY2hTdHIsIFwiXCIpO1xuICAgIHN1cGVyLm9uUmVtb3ZlRWxlbWVudChlbGVtZW50KTtcbiAgfVxuICBkcmFnRHJvcE1vdmVFbGVtZW50KHNyYzogSUVsZW1lbnQsIHRhcmdldDogSUVsZW1lbnQsIHRhcmdldEluZGV4OiBudW1iZXIpIHt9XG4gIHByaXZhdGUgYWRkRWxlbWVudFRvQ29udGVudChlbGVtZW50OiBJRWxlbWVudCkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZ0Zyb21Kc29uKSByZXR1cm47XG4gICAgdmFyIHRleHQgPSB0aGlzLmdldEVsZW1lbnRDb250ZW50VGV4dChlbGVtZW50KTtcbiAgICBpZiAoIXRoaXMuaW5zZXJ0VGV4dEF0Q3Vyc29yKHRleHQpKSB7XG4gICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQgKyB0ZXh0O1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGluc2VydFRleHRBdEN1cnNvcih0ZXh0OiBzdHJpbmcsIHByZXZOYW1lOiBzdHJpbmcgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzRGVzaWduTW9kZSB8fCAoIXdpbmRvdyAmJiAhd2luZG93LmdldFNlbGVjdGlvbikpIHJldHVybiBmYWxzZTtcbiAgICBsZXQgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWwuZ2V0UmFuZ2VBdCAmJiBzZWwucmFuZ2VDb3VudCkge1xuICAgICAgbGV0IHJhbmdlID0gc2VsLmdldFJhbmdlQXQoMCk7XG4gICAgICByYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XG4gICAgICB2YXIgc2VsZiA9IDxhbnk+dGhpcztcbiAgICAgIGlmIChzZWxmLmdldENvbnRlbnQpIHtcbiAgICAgICAgdmFyIHN0ciA9IHNlbGYuZ2V0Q29udGVudChwcmV2TmFtZSk7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHN0cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldEVsZW1lbnRDb250ZW50VGV4dChlbGVtZW50OiBJRWxlbWVudCkge1xuICAgIHJldHVybiBcIntcIiArIEZsb3dQYW5lbE1vZGVsLmNvbnRlbnRFbGVtZW50TmFtZVByZWZpeCArIGVsZW1lbnQubmFtZSArIFwifVwiO1xuICB9XG59XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwiZmxvd3BhbmVsXCIsXG4gIFt7IG5hbWU6IFwiY29udGVudDpodG1sXCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NDb250ZW50XCIgfV0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgRmxvd1BhbmVsTW9kZWwoKTtcbiAgfSxcbiAgXCJwYW5lbFwiXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2Zsb3dwYW5lbC50cyIsImltcG9ydCB7IFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBCYXNlIH0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgSUxvY2FsaXphYmxlT3duZXIsIExvY2FsaXphYmxlU3RyaW5nIH0gZnJvbSBcIi4vbG9jYWxpemFibGVzdHJpbmdcIjtcbmltcG9ydCB7IENvbmRpdGlvblJ1bm5lciB9IGZyb20gXCIuL2NvbmRpdGlvbnNcIjtcblxuLyoqXG4gKiBBIGNsYXNzIHRoYXQgY29udGFpbnMgZXhwcmVzc2lvbiBhbmQgaHRtbCBwcm9wZXRpZXMuIEl0IHVzZXMgaW4gc3VydmV5LmNvbXBsZXRlZEh0bWxPbkNvbmRpdGlvbiBhcnJheS5cbiAqIElmIHRoZSBleHByZXNzaW9uIHJldHVybnMgdHJ1ZSB0aGVuIGh0bWwgb2YgdGhpcyBpdGVtIHVzZXMgaW5zdGVhZCBvZiBzdXJ2ZXkuY29tcGxldGVkSHRtbCBwcm9wZXJ0eVxuICogQHNlZSBTdXJ2ZXlNb2RlbC5jb21wbGV0ZWRIdG1sT25Db25kaXRpb25cbiAqIEBzZWUgU3VydmV5TW9kZWwuY29tcGxldGVkSHRtbFxuICovXG5leHBvcnQgY2xhc3MgSHRtbENvbmRpdGlvbkl0ZW0gZXh0ZW5kcyBCYXNlIGltcGxlbWVudHMgSUxvY2FsaXphYmxlT3duZXIge1xuICBwdWJsaWMgbG9jT3duZXI6IElMb2NhbGl6YWJsZU93bmVyO1xuICBjb25zdHJ1Y3RvcihleHByZXNzaW9uOiBzdHJpbmcgPSBudWxsLCBodG1sOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwiaHRtbFwiLCB0aGlzKTtcbiAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICAgIHRoaXMuaHRtbCA9IGh0bWw7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJodG1sY29uZGl0aW9uaXRlbVwiO1xuICB9XG4gIHB1YmxpYyBydW5Db25kaXRpb24odmFsdWVzOiBhbnksIHByb3BlcnRpZXM6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5leHByZXNzaW9uKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBDb25kaXRpb25SdW5uZXIodGhpcy5leHByZXNzaW9uKS5ydW4odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gcHJvcGVydHkuIElmIHRoaXMgZXhwcmVzc2lvbiByZXR1cm5zIHRydWUsIHRoZW4gc3VydmV5IHdpbGwgdXNlIGh0bWwgcHJvcGVydHkgdG8gc2hvdyBvbiBjb21wbGV0ZSBwYWdlLlxuICAgKi9cbiAgcHVibGljIGdldCBleHByZXNzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImV4cHJlc3Npb25cIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBleHByZXNzaW9uKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiZXhwcmVzc2lvblwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaHRtbCB0aGF0IHNob3dzIG9uIGNvbXBsZXRlZCAoJ1RoYW5rIHlvdScpIHBhZ2UuIFRoZSBleHByZXNzaW9uIHNob3VsZCByZXR1cm4gdHJ1ZVxuICAgKiBAc2VlIGV4cHJlc3Npb25cbiAgICovXG4gIHB1YmxpYyBnZXQgaHRtbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImh0bWxcIik7XG4gIH1cbiAgcHVibGljIHNldCBodG1sKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImh0bWxcIiwgdmFsdWUpO1xuICB9XG4gIGdldCBsb2NIdG1sKCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcImh0bWxcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICEhdGhpcy5sb2NPd25lciA/IHRoaXMubG9jT3duZXIuZ2V0TG9jYWxlKCkgOiBcIlwiO1xuICB9XG4gIHB1YmxpYyBnZXRNYXJrZG93bkh0bWwodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gISF0aGlzLmxvY093bmVyID8gdGhpcy5sb2NPd25lci5nZXRNYXJrZG93bkh0bWwodGV4dCkgOiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXRQcm9jZXNzZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jT3duZXIgPyB0aGlzLmxvY093bmVyLmdldFByb2Nlc3NlZFRleHQodGV4dCkgOiB0ZXh0O1xuICB9XG59XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwiaHRtbGNvbmRpdGlvbml0ZW1cIixcbiAgW1xuICAgIFwiZXhwcmVzc2lvbjpjb25kaXRpb25cIixcbiAgICB7IG5hbWU6IFwiaHRtbDpodG1sXCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NIdG1sXCIgfVxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IEh0bWxDb25kaXRpb25JdGVtKCk7XG4gIH0sXG4gIFwiYmFzZVwiXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2h0bWxDb25kaXRpb25JdGVtLnRzIiwiaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBhcmFiaWNTdXJ2ZXlTdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwi2KfZhNiz2KfYqNmCXCIsXG4gIHBhZ2VOZXh0VGV4dDogXCLYp9mE2KrYp9mE2YpcIixcbiAgY29tcGxldGVUZXh0OiBcItin2YbZh9in2KEtINiq2YVcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcInsxfSDYtdmB2K3YqSB7MH0g2YXZhlwiLFxuICBvdGhlckl0ZW1UZXh0OiBcItmG2LUg2KLYrtixXCIsXG4gIGVtcHR5U3VydmV5OiBcItmE2Kcg2KrZiNis2K8g2LXZgdit2Kkg2YXYsdim2YrYqSDYo9mIINiz2KTYp9mEINmB2Yog2KfZhNmF2LPYrVwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIti02YPYsdinINmE2YMg2YTYp9iz2KrZg9mF2KfZhCDYp9mE2KfYs9iq2KjZitin2YYhXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwiLi4u2YrYqtmFINiq2K3ZhdmK2YQg2KfZhNin2LPYqtio2YrYp9mGXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIi4uLtin2K7YqtixXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwiLtmK2LHYrNmJINin2YTYpdis2KfYqNipINi52YTZiSDYp9mE2LPYpNin2YRcIixcbiAgcmVxdWlyZWRJbkFsbFJvd3NFcnJvcjogXCLZitix2KzZiSDYp9mE2KXYrNin2KjYqSDYudmE2Ykg2KfZhNij2LPYptmE2Kkg2YHZiiDYrNmF2YrYuSDYp9mE2LXZgdmI2YFcIixcbiAgbnVtZXJpY0Vycm9yOiBcItmK2KzYqCDYo9mGINiq2YPZiNmGINin2YTZgtmK2YXYqSDYp9mE2LHZgtmF2YrYqS5cIixcbiAgdGV4dE1pbkxlbmd0aDogXCLYp9mE2LHYrNin2KEg2KXYr9iu2KfZhCDZhdinINmE2Kcg2YrZgtmEINi52YYgezB9INit2LHZgVwiLFxuICB0ZXh0TWF4TGVuZ3RoOiBcItin2YTYsdis2KfYoSDYpdiv2K7Yp9mEINij2YLZhCDZhdmGIHswfSDYrdix2YFcIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCLZitix2KzZiSDYpdiv2K7Yp9mEINij2YPYq9ixINmF2YYgezB9INmI2KPZgtmEINmF2YYgezF9INit2LHZgVwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcItmK2LHYrNmJINmF2YTYoSDZhdinINmE2Kcg2YrZgtmEINi52YYgezB9INin2YTYtdmB2YjZgVwiLFxuICBtaW5TZWxlY3RFcnJvcjogXCLZitix2KzZiSDYqtit2K/ZitivINmF2Kcg2YTYpyDZitmC2YQg2LnZhiB7MH0g2KfZhNmF2KrYutmK2LHYp9iqXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcItmK2LHYrNmJINiq2K3Yr9mK2K8g2YXYpyDZhNinINmK2LLZitivINi52YYgezB9INin2YTZhdiq2LrZitix2KfYqlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwi2YgnezB9JyDZitis2Kgg2KPZhiDYqtmD2YjZhiDZhdiz2KfZiNmK2Kkg2KPZiCDYo9mD2KvYsSDZhdmGIHsxfSDZiNmK2LPYp9mI2Yog2KPZiCDYo9mC2YQg2YXZhiB7Mn3Yp1wiLFxuICBudW1lcmljTWluOiBcItmIJ3swfScg2YrYrNioINij2YYg2KrZg9mI2YYg2YXYs9in2YjZitipINij2Ygg2KPZg9ir2LEg2YXZhiB7MX3Yp1wiLFxuICBudW1lcmljTWF4OiBcItmIJ3swfScg2YrYrNioINij2YYg2KrZg9mI2YYg2YXYs9in2YjZitipINij2Ygg2KPZgtmEINmF2YYgezF92KdcIixcbiAgaW52YWxpZEVtYWlsOiBcItix2KzYp9ihINmC2YUg2KjYpdiv2K7Yp9mEINio2LHZitivINin2YTZg9iq2LHZiNmG2Yog2LXYrdmK2K1cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIti32YTYqCDYpdix2KzYp9i5INiu2LfYoyAnezB9Jy4gezF92KdcIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOiBcIti52KfYryDYt9mE2Kgg2KjZitin2YbYp9iqINmB2KfYsdi62Kkg2KPZiCAn2KfZhNmF2LPYp9ixJyDZhdmF2KrZhNmD2KfYqiDYutmK2LEg2LXYrdmK2K3YqSBcIixcbiAgZXhjZWVkTWF4U2l6ZTogXCLZiNmK2YbYqNi62Yog2KPZhNinINmK2KrYrNin2YjYsiDYrdis2YUg2KfZhNmF2YTZgSB7MH3Yp1wiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwi2KfZhNix2KzYp9ihINil2K/Yrtin2YQg2YLZitmF2Kkg2KPYrtix2YlcIixcbiAgdXBsb2FkaW5nRmlsZTogXCLYp9mE2YXZhNmBINin2YTYrtin2LUg2KjZgyDYqtit2YXZitmELiDZitix2KzZiSDYp9mE2KfZhtiq2LjYp9ixINi52K/YqSDYq9mI2KfZhiDZiNit2KfZiNmEINmF2LHYqSDYo9iu2LHZiVwiLFxuICBhZGRSb3c6IFwi2KfYttin2YHYqSDYtdmBXCIsXG4gIHJlbW92ZVJvdzogXCLYpdiy2KfZhNipINi12YFcIlxufTtcblxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJhclwiXSA9IGFyYWJpY1N1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJhclwiXSA9IFwi2KfZhNi52LHYqNmK2KlcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vYXJhYmljLnRzIiwiLy9VbmNvbW1lbnQgdGhpcyBsaW5lIG9uIGNyZWF0aW5nIGEgdHJhbnNsYXRpb24gZmlsZVxuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBidWxnYXJpYW5TdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwi0J3QsNC30LDQtFwiLFxuICBwYWdlTmV4dFRleHQ6IFwi0J3QsNC/0YDQtdC0XCIsXG4gIGNvbXBsZXRlVGV4dDogXCLQmtGA0LDQuVwiLFxuICBzdGFydFN1cnZleVRleHQ6IFwi0J3QsNGH0LDQu9C+XCIsXG4gIG90aGVySXRlbVRleHQ6IFwi0JTRgNGD0LPQviAo0L7Qv9C40YjQtdGC0LUpXCIsXG4gIG5vbmVJdGVtVGV4dDogXCLQndC40YLQviDQtdC00LjQvVwiLFxuICBzZWxlY3RBbGxJdGVtVGV4dDogXCLQktGB0LjRh9C60LhcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcItGB0YLRgC4gezB9LCDQvtCx0YnQviDRgdGC0YAuIHsxfVwiLFxuICBlbXB0eVN1cnZleTogXCLQkNC90LrQtdGC0LDRgtCwINC90LUg0YHRitC00YrRgNC20LAg0LLQuNC00LjQvNC4INGB0YLRgNCw0L3QuNGG0Lgg0LjQu9C4INCy0YrQv9GA0L7RgdC4LlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcItCR0LvQsNCz0L7QtNCw0YDQuNC8INCy0Lgg0LfQsCDRg9GH0LDRgdGC0LjQtdGC0L4g0LIg0LDQvdC60LXRgtCw0YLQsCFcIixcbiAgY29tcGxldGluZ1N1cnZleUJlZm9yZTpcbiAgICBcItCY0LfQs9C70LXQttC00LAsINGH0LUg0LLQuNC1INCy0LXRh9C1INGB0YLQtSDQv9C+0L/RitC70L3QuNC70Lgg0LDQvdC60LXRgtCw0YLQsC5cIixcbiAgbG9hZGluZ1N1cnZleTogXCLQl9Cw0YDQtdC20LTQsNC90LUg0L3QsCDQsNC90LrQtdGC0LDRgtCwLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcItCY0LfQsdC10YDQtdGC0LUuLi5cIixcbiAgdmFsdWU6IFwidmFsdWVcIixcbiAgcmVxdWlyZWRFcnJvcjogXCLQnNC+0LvRjywg0L7RgtCz0L7QstC+0YDQtdGC0LUg0L3QsCDRgdC70LXQtNC90LjRjyDQstGK0L/RgNC+0YEuXCIsXG4gIHJlcXVpcmVkRXJyb3JJblBhbmVsOiBcItCc0L7Qu9GPLCDQvtGC0LPQvtCy0L7RgNC10YLQtSDQv9C+0L3QtSDQvdCwINC10LTQuNC9INC+0YIg0LLRitC/0YDQvtGB0LjRgtC1LlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcItCc0L7Qu9GPLCDQvtGC0LPQvtCy0L7RgNC10YLQtSDQvdCwINCy0YrQv9GA0L7RgdC40YLQtSDQvdCwINCy0YHQuNGH0LrQuCDRgNC10LTQvtCy0LUuXCIsXG4gIG51bWVyaWNFcnJvcjogXCLQodGC0L7QudC90L7RgdGC0YLQsCDRgdC70LXQtNCy0LAg0LTQsCDQsdGK0LTQtSDRh9C40YHQu9C+LlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcItCc0L7Qu9GPLCDQuNC30L/QvtC70LfQstCw0LnRgtC1INC/0L7QvdC1IHswfSDRgdC40LzQstC+0LvQsC5cIixcbiAgdGV4dE1heExlbmd0aDogXCLQnNC+0LvRjywg0LjQt9C/0L7Qu9C30LLQsNC50YLQtSDQvdC1INC/0L7QstC10YfQtSDQvtGCIHswfSDRgdC40LzQstC+0LvQsC5cIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCLQnNC+0LvRjywg0LjQt9C/0L7Qu9C30LLQsNC50YLQtSDQv9C+0LLQtdGH0LUg0L7RgiB7MH0g0Lgg0L/Qvi3QvNCw0LvQutC+INC+0YIgezF9INGB0LjQvNCy0L7Qu9CwLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcItCc0L7Qu9GPLCDQv9C+0L/RitC70L3QtdGC0LUg0L/QvtC90LUgezB9INGA0LXQtNCwLlwiLFxuICBtaW5TZWxlY3RFcnJvcjogXCLQnNC+0LvRjywg0LjQt9Cx0LXRgNC10YLQtSDQv9C+0L3QtSB7MH0g0LLQsNGA0LjQsNC90YLQsC5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwi0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0L3QtSDQv9C+0LLQtdGH0LUg0L7RgiB7MH0g0LLQsNGA0LjQsNC90YLQsC5cIixcbiAgbnVtZXJpY01pbk1heDpcbiAgICBcItCh0YLQvtC50L3QvtGB0YLRgtCwICd7MH0nINGB0LvQtdC00LLQsCDQtNCwINCx0YrQtNC1INGA0LDQstC90LAg0LjQu9C4INC/0L4t0LPQvtC70Y/QvNCwINC+0YIgezF9INC4INGA0LDQstC90LAg0LjQu9C4INC/0L4t0LzQsNC70LrQsCDQvtGCIHsyfVwiLFxuICBudW1lcmljTWluOiBcItCh0YLQvtC50L3QvtGB0YLRgtCwICd7MH0nINGB0LvQtdC00LLQsCDQtNCwINCx0YrQtNC1INGA0LDQstC90LAg0LjQu9C4INC/0L4t0LPQvtC70Y/QvNCwINC+0YIgezF9XCIsXG4gIG51bWVyaWNNYXg6IFwi0KHRgtC+0LnQvdC+0YHRgtGC0LAgJ3swfScg0YHQu9C10LTQstCwINC00LAg0LHRitC00LUg0YDQsNCy0L3QsCDQuNC70Lgg0L/Qvi3QvNCw0LvQutCwINC+0YIgezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCLQnNC+0LvRjywg0LLRitCy0LXQtNC10YLQtSDQstCw0LvQuNC00LXQvSDQsNC00YDQtdGBINC90LAg0LXQu9C10LrRgtGA0L7QvdC90LAg0L/QvtGJ0LAuXCIsXG4gIGludmFsaWRFeHByZXNzaW9uOiBcItCY0LfRgNCw0LfRitGCOiB7MH0g0YLRgNGP0LHQstCwINC00LAg0LTQsNCy0LAg0YDQtdC30YPQu9GC0LDRgiAndHJ1ZScgKNC40YHRgtC40L3QsCkuXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCLQl9Cw0Y/QstC60LDRgtCwINCy0L7QtNC4INC00L4g0LPRgNC10YjQutCwICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwi0JfQsNGP0LLQutCw0YLQsCDQvdC1INCy0YDRitGJ0LAg0LTQsNC90L3QuCDQuNC70Lgg0YfQsNGB0YLRgtCwICdwYXRoJyAo0L/RitGCINC00L4g0YLRitGA0YHQtdC90LjRjyDRgNC10YHRg9GA0YEg0L3QsCDRgdGK0YDQstGK0YDQsCkg0LUg0L3QtdC/0YDQsNCy0LjQu9C90L4g0LfQsNC00LDQtNC10L3QsFwiLFxuICBleGNlZWRNYXhTaXplOiBcItCg0LDQt9C80LXRgNGK0YIg0L3QsCDRhNCw0LnQu9CwINGB0LvQtdC00LLQsCDQtNCwINC90LUg0L/RgNC10LLQuNGI0LDQstCwIHswfS5cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiBcItCc0L7Qu9GPLCDQstGK0LLQtdC00LXRgtC1INC00YDRg9Cz0LDRgtCwINGB0YLQvtC50L3QvtGB0YIuXCIsXG4gIHVwbG9hZGluZ0ZpbGU6XG4gICAgXCLQktCw0YjQuNGCINGE0LDQudC7INGB0LUg0LfQsNGA0LXQttC00LAg0L3QsCDRgdGK0YDQstGK0YDQsC4g0JzQvtC70Y8sINC40LfRh9Cw0LrQsNC50YLQtSDQvdGP0LrQvtC70LrQviDRgdC10LrRg9C90LTQuCDQuCDRgtC+0LPQsNCy0LAg0L7Qv9C40YLQstCw0LnRgtC1INC+0YLQvdC+0LLQvi5cIixcbiAgbG9hZGluZ0ZpbGU6IFwi0JfQsNGA0LXQttC00LDQvdC1Li4uXCIsXG4gIGNob29zZUZpbGU6IFwi0JjQt9Cx0LXRgNC10YLQtSDRhNCw0LnQuyjQvtCy0LUpLi4uXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwi0JbQtdC70LDQtdGC0LUg0LvQuCDQtNCwINC40LfRgtGA0LjQtdGC0LUg0LfQsNC/0LjRgdCwP1wiLFxuICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcItCh0YLQvtC50L3QvtGB0YLRgtCwINGB0LvQtdC00LLQsCDQtNCwINCx0YrQtNC1INGD0L3QuNC60LDQu9C90LAuXCIsXG4gIGFkZENvbHVtbjogXCLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0LrQvtC70L7QvdCwXCIsXG4gIGFkZFJvdzogXCLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0YDQtdC0XCIsXG4gIHJlbW92ZVJvdzogXCLQn9GA0LXQvNCw0YXQstCw0L3QtSDQvdCwINGA0LXQtFwiLFxuICBhZGRQYW5lbDogXCLQlNC+0LHQsNCy0Y/QvdC1INC90LAg0L/QsNC90LXQu1wiLFxuICByZW1vdmVQYW5lbDogXCLQn9GA0LXQvNCw0YXQstCw0L3QtSDQvdCwINC/0LDQvdC10LtcIixcbiAgY2hvaWNlc19JdGVtOiBcItC10LvQtdC80LXQvdGCXCIsXG4gIG1hdHJpeF9jb2x1bW46IFwi0JrQvtC70L7QvdCwXCIsXG4gIG1hdHJpeF9yb3c6IFwi0KDQtdC0XCIsXG4gIHNhdmluZ0RhdGE6IFwi0KDQtdC30YPQu9GC0LDRgtC40YLQtSDRgdC1INC30LDQv9Cw0LfQstCw0YIg0L3QsCDRgdGK0YDQstGK0YDQsC4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwi0J/QvtGA0LDQtNC4INCy0YrQt9C90LjQutC90LDQu9CwINCz0YDQtdGI0LrQsCDRgNC10LfRg9C70YLQsNGC0LjRgtC1INC90LUg0LzQvtC20LDRhdCwINC00LAg0LHRitC00LDRgiDQt9Cw0L/QsNC30LXQvdC4LlwiLFxuICBzYXZpbmdEYXRhU3VjY2VzczogXCLQoNC10LfRg9C70YLQsNGC0LjRgtC1INCx0Y/RhdCwINC30LDQv9Cw0LfQtdC90Lgg0YPRgdC/0LXRiNC90L4hXCIsXG4gIHNhdmVBZ2FpbkJ1dHRvbjogXCLQndC+0LIg0L7Qv9C40YJcIixcbiAgdGltZXJNaW46IFwi0LzQuNC9XCIsXG4gIHRpbWVyU2VjOiBcItGB0LXQulwiLFxuICB0aW1lclNwZW50QWxsOiBcItCS0LjQtSDQuNC30L/QvtC70LfQstCw0YXRgtC1IHswfSDQvdCwINGC0LDQt9C4INGB0YLRgNCw0L3QuNGG0LAg0Lgg0L7QsdGJ0L4gezF9LlwiLFxuICB0aW1lclNwZW50UGFnZTogXCLQktC40LUg0LjQt9C/0L7Qu9C30LLQsNGF0YLQtSB7MH0g0L3QsCDRgtCw0LfQuCDRgdGC0YDQsNC90LjRhtCwLlwiLFxuICB0aW1lclNwZW50U3VydmV5OiBcItCS0LjQtSDQuNC30L/QvtC70LfQstCw0YXRgtC1INC+0LHRidC+IHswfS5cIixcbiAgdGltZXJMaW1pdEFsbDpcbiAgICBcItCS0LjQtSDQuNC30L/QvtC30LLQsNGF0YLQtSB7MH0g0L7RgiB7MX0g0L3QsCDRgtCw0LfQuCDRgdGC0YDQsNC90LjRhtCwINC4INC+0LHRidC+IHsyfSDQvtGCIHszfS5cIixcbiAgdGltZXJMaW1pdFBhZ2U6IFwi0JLQuNC1INC40LfQv9C+0LvQt9Cy0LDRhdGC0LUgezB9INC+0YIgezF9INC90LAg0YLQsNC30Lgg0YHRgtGA0LDQvdC40YbQsC5cIixcbiAgdGltZXJMaW1pdFN1cnZleTogXCLQktC40LUg0LjQt9C/0L7Qu9C30LLQsNGF0YLQtSDQvtCx0YnQviB7MH0g0L7RgiB7MX0uXCIsXG4gIGNsZWFuQ2FwdGlvbjogXCLQmNC30YfQuNGB0YLQstCw0L3QtVwiLFxuICBjbGVhckNhcHRpb246IFwi0J3QsNGH0LDQu9C90L4g0YHRitGB0YLQvtGP0L3QuNC1XCIsXG4gIHJlbW92ZUZpbGVDYXB0aW9uOiBcItCf0YDQtdC80LDRhdCy0LDQvdC1INC90LAg0YTQsNC50LvQsFwiXG59O1xuXG4vL1VuY29tbWVudCB0aGVzZSB0d28gbGluZXMgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlLiBZb3Ugc2hvdWxkIHJlcGxhY2UgXCJlblwiIGFuZCBlblN0cmluZ3Mgd2l0aCB5b3VyIGxvY2FsZSAoXCJmclwiLCBcImRlXCIgYW5kIHNvIG9uKSBhbmQgeW91ciB2YXJpYWJsZS5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiYmdcIl0gPSBidWxnYXJpYW5TdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wiYmdcIl0gPSBcIkJ1bGdhcmlhblwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi9idWxnYXJpYW4udHMiLCJpbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vc3VydmV5U3RyaW5nc1wiO1xuXG5leHBvcnQgdmFyIGNhdGFsYW5TdXJ2ZXlTdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwiQW50ZXJpb3JcIixcbiAgcGFnZU5leHRUZXh0OiBcIlNlZ8O8ZW50XCIsXG4gIGNvbXBsZXRlVGV4dDogXCJDb21wbGV0XCIsXG4gIG90aGVySXRlbVRleHQ6IFwiVW4gYWx0cmUgKGRlc2NyaWd1aSlcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIlDDoGdpbmEgezB9IGRlIHsxfVwiLFxuICBlbXB0eVN1cnZleTogXCJObyBoaSBoYSBjYXAgcMOgZ2luYSB2aXNpYmxlIG8gcHJlZ3VudGEgYSBsJ2VucXVlc3RhLlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIkdyw6BjaWVzIHBlciBjb21wbGV0YXIgbCdlbnF1ZXN0YSFcIixcbiAgbG9hZGluZ1N1cnZleTogXCJMJ2VucXVlc3RhIHMnZXN0w6AgY2FycmVnYW50IC4uLlwiLFxuICBvcHRpb25zQ2FwdGlvbjogXCJTZWxlY2Npb25hIC4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIlNpIHVzIHBsYXUgY29udGVzdGkgbGEgcHJlZ3VudGEuXCIsXG4gIHJlcXVpcmVkSW5BbGxSb3dzRXJyb3I6IFwiU2kgdXMgcGxhdSBjb250ZXN0aSBsZXMgcHJlZ3VudGVzIGRlIGNhZGEgZmlsZXJhLlwiLFxuICBudW1lcmljRXJyb3I6IFwiTCdlc3RpbWFjacOzIGhhIGRlIHNlciBudW3DqHJpY2EuXCIsXG4gIHRleHRNaW5MZW5ndGg6IFwiU2kgdXMgcGxhdSBlbnRyZSBhbG1lbnlzIHswfSBzw61tYm9scy5cIixcbiAgdGV4dE1heExlbmd0aDogXCJTaSB1cyBwbGF1IGVudHJlIG1lbnlzIGRlIHswfSBzw61tYm9scy5cIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCJTaSB1cyBwbGF1IGVudHJlIG3DqXMgZGUgezB9IGkgbWVueXMgZGUgezF9IHPDrW1ib2xzLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIlNpIHVzIHBsYXUgb21wbGkgYWxtZW55cyB7MH0gZmlsZXJlcy5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiU2kgdXMgcGxhdSBzZWxlY2Npb25pIGFsbWVueXMgezB9IHZhcmlhbnRzLlwiLFxuICBtYXhTZWxlY3RFcnJvcjogXCJTaSB1cyBwbGF1IHNlbGVjY2lvbmkgbm8gbcOpcyBkZSB7MH0gdmFyaWFudHMuXCIsXG4gIG51bWVyaWNNaW5NYXg6IFwiRWwgJ3swfScgZGV1IHNlciBpZ3VhbCBvIG3DqXMgZGUgezF9IGkgaWd1YWwgbyBtZW55cyBkZSB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCJFbCAnezB9JyBoYSBkZSBzZXIgaWd1YWwgbyBtw6lzIGRlIHsxfVwiLFxuICBudW1lcmljTWF4OiBcIkVsICd7MH0nIGhhIGRlIHNlciBpZ3VhbCBvIG1lbnlzIGRlIHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwiU2kgdXMgcGxhdSBhZmVnaXUgdW4gY29ycmV1IGVsZWN0csOybmljIHbDoGxpZC5cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIkxhIHNvbMK3bGljaXR1ZCB2YSB0b3JuYXIgZXJyb3IgJ3swfScuIHsxfVwiLFxuICB1cmxHZXRDaG9pY2VzRXJyb3I6XG4gICAgXCJMYSBzb2zCt2xpY2l0dWQgdmEgdG9ybmFyIGJ1aWRhIGRlIGRhdGVzIG8gbGEgcHJvcGlldGF0ICd0cmFqZWN0w7JyaWEnIG5vIMOpcyBjb3JyZWN0YVwiLFxuICBleGNlZWRNYXhTaXplOiBcIkxhIG1pZGEgZGUgbCdhcnhpdSBubyBwb3QgZXhjZWRpciB7MH0uXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJTaSB1cyBwbGF1IGFmZWdpdSBsJ2FsdHJhIGVzdGltYWNpw7MuXCIsXG4gIHVwbG9hZGluZ0ZpbGU6XG4gICAgXCJFbCBzZXUgYXJ4aXUgcydlc3TDoCBwdWphbnQuIFNpIHVzIHBsYXUgZXNwZXJpIHVucyBzZWdvbnMgaSBpbnRlbnRldS1obyBkZSBub3UuXCIsXG4gIGFkZFJvdzogXCJBZmVnaXUgdW5hIGZpbGVyYVwiLFxuICByZW1vdmVSb3c6IFwiRWxpbWluYXIgdW5hIGZpbGVyYVwiLFxuICBjaG9pY2VzX2ZpcnN0SXRlbTogXCJwcmltZXIgYXJ0aWNsZVwiLFxuICBjaG9pY2VzX3NlY29uZEl0ZW06IFwic2Vnb24gYXJ0aWNsZVwiLFxuICBjaG9pY2VzX3RoaXJkSXRlbTogXCJ0ZXJjZXIgYXJ0aWNsZVwiLFxuICBtYXRyaXhfY29sdW1uOiBcIkNvbHVtbmFcIixcbiAgbWF0cml4X3JvdzogXCJGaWxlcmFcIlxufTtcblxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJjYVwiXSA9IGNhdGFsYW5TdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wiY2FcIl0gPSBcImNhdGFsw6BcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vY2F0YWxhbi50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgY3plY2hTdXJ2ZXlTdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwiUMWZZWRjaG96w61cIixcbiAgcGFnZU5leHRUZXh0OiBcIkRhbMWhw61cIixcbiAgY29tcGxldGVUZXh0OiBcIkhvdG92b1wiLFxuICBvdGhlckl0ZW1UZXh0OiBcIkppbsOhIG9kcG92xJvEjyAobmFwacWhdGUpXCIsXG4gIHByb2dyZXNzVGV4dDogXCJTdHJhbmEgezB9IHogezF9XCIsXG4gIGVtcHR5U3VydmV5OiBcIlByxa96a3VtdSBuZW9ic2FodWplIMW+w6FkbsOpIG90w6F6a3kuXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXk6IFwiRMSba3VqZW1lIHphIHZ5cGxuxJtuw60gcHLFr3prdW11IVwiLFxuICBsb2FkaW5nU3VydmV5OiBcIlByb2LDrWjDoSBuYcSNw610w6Fuw60gcHLFr3prdW11Li4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIlZ5YmVyLi4uXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwiT2Rwb3bEm3p0ZSBwcm9zw61tIG5hIG90w6F6a3UuXCIsXG4gIHJlcXVpcmVkSW5BbGxSb3dzRXJyb3I6IFwiT2Rwb3bEm3p0ZSBwcm9zw61tIG5hIHbFoWVjaG55IG90w6F6a3kuXCIsXG4gIG51bWVyaWNFcnJvcjogXCJWIHRvbXRvIHBvbGkgbHplIHphZGF0IHBvdXplIMSNw61zbGEuXCIsXG4gIHRleHRNaW5MZW5ndGg6IFwiWmFkZWp0ZSBwcm9zw61tIGFsZXNwb8WIIHswfSB6bmFrxa8uXCIsXG4gIHRleHRNYXhMZW5ndGg6IFwiWmFkZWp0ZSBwcm9zw61tIG3DqW7EmyBuZcW+IHswfSB6bmFrxa8uXCIsXG4gIHRleHRNaW5NYXhMZW5ndGg6IFwiWmFkZWp0ZSBwcm9zw61tIHbDrWNlIG5lxb4gezB9IGEgbcOpbsSbIG5lxb4gezF9IHpuYWvFry5cIixcbiAgbWluUm93Q291bnRFcnJvcjogXCJWeXBsxYh0ZSBwcm9zw61tIGFsZXNwb8WIIHswfSDFmcOhZGvFry5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiVnliZXJ0ZSBwcm9zw61tIGFsZXNwb8WIIHswfSB2YXJpYW50eS5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiTmV2eWLDrXJlanRlIHByb3PDrW0gdsOtY2UgbmXFviB7MH0gdmFyaWFudC5cIixcbiAgbnVtZXJpY01pbk1heDpcbiAgICBcIk9kcG92xJvEjyAnezB9JyBieSBtxJtsbyBiw710IHbEm3TFocOtIG5lYm8gcm92bm8gezF9IGEgbWVuxaHDrSBuZWJvIHJvdm5vIHsyfVwiLFxuICBudW1lcmljTWluOiBcIk9kcG92xJvEjyAnezB9JyBieSBtxJtsbyBiw710IHbEm3TFocOtIG5lYm8gcm92bm8gezF9XCIsXG4gIG51bWVyaWNNYXg6IFwiT2Rwb3bEm8SPICd7MH0nIGJ5IG3Em2xvIGLDvXQgbWVuxaHDrSBuZWJvIHJvdm5vIHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwiWmFkZWp0ZSBwcm9zw61tIHBsYXRub3UgZS1tYWlsb3ZvdSBhZHJlc3UuXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCJQb8W+YWRhdmVrIHZyw6F0aWwgY2h5YnUgJ3swfScuIHsxfVwiLFxuICB1cmxHZXRDaG9pY2VzRXJyb3I6IFwiUG/FvmFkYXZlayBuZXZyw6F0aWwgZGF0YSBuZWJvIGNlc3RhIGplIG5lcGxhdG7DoVwiLFxuICBleGNlZWRNYXhTaXplOiBcIlZlbGlrb3N0IHNvdWJvcnUgYnkgbmVtxJtsYSBiw710IHbEm3TFocOtIG5lxb4gezB9LlwiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwiWmFkZWp0ZSBwcm9zw61tIGppbm91IGhvZG5vdHUuXCIsXG4gIHVwbG9hZGluZ0ZpbGU6IFwiVsOhxaEgc291Ym9yIHNlIG5haHLDoXbDoS4gWmt1c3RlIHRvIHByb3PDrW0gemEgbsSba29saWsgc2VrdW5kLlwiLFxuICBhZGRSb3c6IFwiUMWZaWRhdCDFmcOhZGVrXCIsXG4gIHJlbW92ZVJvdzogXCJPZHN0cmFuaXRcIlxufTtcblxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJjelwiXSA9IGN6ZWNoU3VydmV5U3RyaW5ncztcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVOYW1lc1tcImN6XCJdID0gXCLEjWXFoXRpbmFcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vY3plY2gudHMiLCJpbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vc3VydmV5U3RyaW5nc1wiO1xuXG5leHBvcnQgdmFyIGRhbmlzaFN1cnZleVN0cmluZ3MgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCJUaWxiYWdlXCIsXG4gIHBhZ2VOZXh0VGV4dDogXCJWaWRlcmVcIixcbiAgY29tcGxldGVUZXh0OiBcIkbDpnJkaWdcIixcbiAgc3RhcnRTdXJ2ZXlUZXh0OiBcIlN0YXJ0XCIsXG4gIG90aGVySXRlbVRleHQ6IFwiVmFsZ2ZyaXQgc3Zhci4uLlwiLFxuICBub25lSXRlbVRleHQ6IFwiSW5nZW5cIixcbiAgc2VsZWN0QWxsSXRlbVRleHQ6IFwiVsOmbGcgYWxsZVwiLFxuICBwcm9ncmVzc1RleHQ6IFwiU2lkZSB7MH0gYWYgezF9XCIsXG4gIGVtcHR5U3VydmV5OiBcIkRlciBlciBpbmdlbiBzeW5saWdlIHNww7hyZ3Ntw6VsLlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIk1hbmdlIHRhayBmb3IgZGluIGJlc3ZhcmVsc2UhXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXlCZWZvcmU6XG4gICAgXCJWb3JlcyBkYXRhIHZpc2VyIGF0IGR1IGFsbGVyZWRlIGhhciBnZW5uZW1mw7hydCBkZXR0ZSBzcMO4cmdlc2tlbWEuXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwiU3DDuHJnZXNrZW1hZXQgaGVudGVzIGZyYSBzZXJ2ZXJlbi4uLlwiLFxuICBvcHRpb25zQ2FwdGlvbjogXCJWw6ZsZy4uLlwiLFxuICB2YWx1ZTogXCJ2w6ZyZGlcIixcbiAgcmVxdWlyZWRFcnJvcjogXCJCZXN2YXIgdmVubGlnc3Qgc3DDuHJnc23DpWxldC5cIixcbiAgcmVxdWlyZWRFcnJvckluUGFuZWw6IFwiQmVzdmFyIHZlbmxpZ3N0IG1pbmRzdCDDqXQgc3DDuHJnc23DpWwuXCIsXG4gIHJlcXVpcmVkSW5BbGxSb3dzRXJyb3I6IFwiQmVzdmFyIHZlbmxpZ3N0IHNww7hyZ3Ntw6VsIGkgYWxsZSByw6Zra2VyLlwiLFxuICBudW1lcmljRXJyb3I6IFwiQW5naXYgZXQgdGFsLlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIkFuZ2l2IG1pbmRzdCB7MH0gdGVnbi5cIixcbiAgdGV4dE1heExlbmd0aDogXCJQbGVhc2UgZW50ZXIgbGVzcyB0aGFuIHswfSBjaGFyYWN0ZXJzLlwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcIkFuZ2l2IG1lcmUgZW5kIHswfSBvZyBtaW5kcmUgZW5kIHsxfSB0ZWduLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIlVkZnlsZCBtaW5kc3QgezB9IHLDpmtrZXIuXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIlbDpmxnIHZlbmxpZ3N0IG1pbmRzdCB7MH0gc3Zhcm11bGlnaGVkKGVyKS5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiVsOmbGcgdmVubGlnc3QgZsOmcnJlIHswfSBzdmFybXVsaWdoZWRlcihlcikuXCIsXG4gIG51bWVyaWNNaW5NYXg6XG4gICAgXCInezB9JyBza2FsIHbDpnJlIGxpZyBtZWQgZWxsZXIgc3TDuHJyZSBlbmQgezF9IG9nIGxpZyBtZWQgZWxsZXIgbWluZHJlIGVuZCB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCInezB9JyBza2FsIHbDpnJlIGxpZyBtZWQgZWxsZXIgc3TDuHJyZSBlbmQgezF9XCIsXG4gIG51bWVyaWNNYXg6IFwiJ3swfScgc2thbCB2w6ZyZSBsaWcgbWVkIGVsbGVyIG1pbmRyZSBlbmQgezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJBbmdpdiB2ZW5saWdzdCBlbiBneWxkaWcgZS1tYWlsIGFkcmVzc2UuXCIsXG4gIGludmFsaWRFeHByZXNzaW9uOiBcIlVkdHJ5a2tldDogezB9IHNrYWwgcmV0dXJuZXJlICd0cnVlJy5cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIkZvcmVzcMO4cmdzbGVuIHJldHVybmVyZWRlIGZlamxlbiAnezB9Jy4gezF9XCIsXG4gIHVybEdldENob2ljZXNFcnJvcjpcbiAgICBcIkZvcmVzcMO4cmdzbGVuIHJldHVybmVyZWRlIGluZ2VuIGRhdGEgZWxsZXIgJ3BhdGgnIHBhcmFtZXRlcmVuIGVyIGZvcmtlcnRcIixcbiAgZXhjZWVkTWF4U2l6ZTogXCJGaWxzdMO4cnJlbHNlbiBtw6UgaWtrZSBvdmVyc3RpZ2UgezB9LlwiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwiQW5naXYgZW4gdsOmcmRpIGZvciBkaXQgdmFsZ2ZyaWUgc3Zhci5cIixcbiAgdXBsb2FkaW5nRmlsZTpcbiAgICBcIkRpbiBmaWwgYmxpdmVyIHVwbG9hZGV0LiBWZW50IG5vZ2xlIHNla3VuZGVyIG9nIHByw7h2IGV2ZW50dWVsdCBpZ2VuLlwiLFxuICBsb2FkaW5nRmlsZTogXCJJbmRsw6ZzZXIuLi5cIixcbiAgY2hvb3NlRmlsZTogXCJWw6ZsZyBmaWwoZXIpLi4uXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwiVmlsIGR1IGZqZXJuZSBkZW4/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiRGVubmUgdsOmcmRpIHNrYWwgdsOmcmUgdW5pay5cIixcbiAgYWRkQ29sdW1uOiBcIlRpbGbDuGoga29sb25uZVwiLFxuICBhZGRSb3c6IFwiVGlsZsO4aiByw6Zra2VcIixcbiAgcmVtb3ZlUm93OiBcIkZqZXJuXCIsXG4gIGFkZFBhbmVsOiBcIlRpbGbDuGogbnlcIixcbiAgcmVtb3ZlUGFuZWw6IFwiRmplcm5cIixcbiAgY2hvaWNlc19JdGVtOiBcInZhbGdcIixcbiAgbWF0cml4X2NvbHVtbjogXCJLb2xvbm5lXCIsXG4gIG1hdHJpeF9yb3c6IFwiUsOma2tlXCIsXG4gIHNhdmluZ0RhdGE6IFwiUmVzdWx0YXRlcm5lIGJsaXZlciBnZW10IHDDpSBzZXJ2ZXJlbi4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwiRGVyIG9wc3RvZCBlbiBmZWpsIG9nIHZpIGt1bm5lIGlra2UgZ2VtbWUgcmVzdWx0YXRldC5cIixcbiAgc2F2aW5nRGF0YVN1Y2Nlc3M6IFwiUmVzdWx0YXRldCBibGV2IGdlbXQhXCIsXG4gIHNhdmVBZ2FpbkJ1dHRvbjogXCJQcsO4diBpZ2VuXCIsXG4gIHRpbWVyTWluOiBcIm1pblwiLFxuICB0aW1lclNlYzogXCJzZWtcIixcbiAgdGltZXJTcGVudEFsbDogXCJEdSBoYXIgYnJ1Z3QgezB9IHDDpSBkZW5uZSBzaWRlIG9nIHsxfSBpIGFsdC5cIixcbiAgdGltZXJTcGVudFBhZ2U6IFwiRHUgaGFyIGJydWd0IHswfSBww6UgZGVubmUgc2lkZS5cIixcbiAgdGltZXJTcGVudFN1cnZleTogXCJEdSBoYXIgYnJ1Z3QgezB9IGkgYWx0LlwiLFxuICB0aW1lckxpbWl0QWxsOlxuICAgIFwiRHUgaGFyIGJydWd0IHswfSBhZiB7MX0gcMOlIGRlbm5lIHNpZGUgb2cgezJ9IGFmIHszfSBpIGFsdC5cIixcbiAgdGltZXJMaW1pdFBhZ2U6IFwiRHUgaGFyIGJydWd0IHswfSBhZiB7MX0gcMOlIGRlbm5lIHNpZGUuXCIsXG4gIHRpbWVyTGltaXRTdXJ2ZXk6IFwiRHUgaGFyIGJydWd0IHswfSBhZiB7MX0gaSBhbHQuXCIsXG4gIGNsZWFuQ2FwdGlvbjogXCJSZW5zXCIsXG4gIGNsZWFyQ2FwdGlvbjogXCJGamVyblwiLFxuICByZW1vdmVGaWxlQ2FwdGlvbjogXCJGamVybiBkZW5uZSBmaWxcIlxufTtcblxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJkYVwiXSA9IGRhbmlzaFN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJkYVwiXSA9IFwiZGFuc2tcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vZGFuaXNoLnRzIiwiLy9DcmVhdGVkIG9uIGJlaGFsZiBodHRwczovL2dpdGh1Yi5jb20vRnJhbmsxM1xuLy9Nb2RpZmllZCBvbiBiZWhhbGYgUm9lbGFuZCBWZXJiYWtlbFxuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBkdXRjaFN1cnZleVN0cmluZ3MgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCJWb3JpZ2VcIixcbiAgcGFnZU5leHRUZXh0OiBcIlZvbGdlbmRlXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJWZXJ6ZW5kZW5cIixcbiAgb3RoZXJJdGVtVGV4dDogXCJBbmRlcnMsIG5sLlwiLFxuICBwcm9ncmVzc1RleHQ6IFwiUGFnaW5hIHswfSB2YW4gezF9XCIsXG4gIGVtcHR5U3VydmV5OiBcIkVyIGlzIGdlZW4gemljaHRiYXJlIHBhZ2luYSBvZiB2cmFhZyBpbiBkZXplIHZyYWdlbmxpanN0XCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXk6IFwiQmVkYW5rdCB2b29yIGhldCBpbnZ1bGxlbiB2YW4gZGUgdnJhZ2VubGlqc3RcIixcbiAgbG9hZGluZ1N1cnZleTogXCJEZSB2cmFnZW5saWpzdCBpcyBhYW4gaGV0IGxhZGVuLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIktpZXMuLi5cIixcbiAgcmVxdWlyZWRFcnJvcjogXCJEaXQgaXMgZWVuIHZlcmVpc3RlIHZyYWFnXCIsXG4gIG51bWVyaWNFcnJvcjogXCJIZXQgYW50d29vcmQgbW9ldCBlZW4gZ2V0YWwgemlqblwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIlZ1bCBtaW5zdGVucyB7MH0ga2FyYWt0ZXJzIGluXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIlNlbGVjdGVlciBtaW5pbXVtIHswfSBhbnR3b29yZGVuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIlNlbGVjdGVlciBuaWV0IG1lZXIgZGFuIHswfSBhbnR3b29yZGVuXCIsXG4gIG51bWVyaWNNaW5NYXg6XG4gICAgXCJVdyBhbnR3b29yZCAnezB9JyBtb2V0IGdyb3RlciBvZiBnZWxpamsgemlqbiBhYW4gezF9IGVuIGtsZWluZXIgb2YgZ2VsaWprIGFhbiB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCJVdyBhbnR3b29yZCAnezB9JyBtb2V0IGdyb3RlciBvZiBnZWxpamsgemlqbiBhYW4gezF9XCIsXG4gIG51bWVyaWNNYXg6IFwiVXcgYW50d29vcmQgJ3swfScgbW9ldCBncm90ZXIgb2YgZ2VsaWprIHppam4gYWFuIHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwiVnVsIGVlbiBnZWxkaWcgZS1tYWlsYWRyZXMgaW5cIixcbiAgZXhjZWVkTWF4U2l6ZTogXCJEZSBncm9vdHRlIHZhbiBoZXQgYmVzdGFuZCBtYWcgbmlldCBncm90ZXIgemlqbiBkYW4gezB9XCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJWdWwgaGV0IHZlbGQgJ0FuZGVycywgbmwuJyBpblwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIkRlemUgdnJhYWcgdmVyZWlzdCDDqcOpbiBhbnR3b29yZCBwZXIgcmlqXCJcbn07XG5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wibmxcIl0gPSBkdXRjaFN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJubFwiXSA9IFwibmVkZXJsYW5kc1wiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi9kdXRjaC50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgZmlubmlzaFN1cnZleVN0cmluZ3MgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCJFZGVsbGluZW5cIixcbiAgcGFnZU5leHRUZXh0OiBcIlNldXJhYXZhXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJWYWxtaXNcIixcbiAgb3RoZXJJdGVtVGV4dDogXCJNdXUgKGt1dmFpbGUpXCIsXG4gIHByb2dyZXNzVGV4dDogXCJTaXZ1IHswfS97MX1cIixcbiAgZW1wdHlTdXJ2ZXk6XG4gICAgXCJUw6Rzc8OkIGt5c2VseXNzw6QgZWkgb2xlIHlodMOka8Okw6RuIG7DpGt5dmlsbMOkIG9sZXZhYSBzaXZ1YSB0YWkga3lzeW15c3TDpC5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJLaWl0b3Mga3lzZWx5eW4gdmFzdGFhbWlzZXN0YSFcIixcbiAgbG9hZGluZ1N1cnZleTogXCJLeXNlbHnDpCBsYWRhdGFhbiBwYWx2ZWxpbWVsdGEuLi5cIixcbiAgb3B0aW9uc0NhcHRpb246IFwiVmFsaXRzZS4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIlZhc3RhYSBreXN5bXlrc2Vlbiwga2lpdG9zLlwiLFxuICBudW1lcmljRXJyb3I6IFwiQXJ2b24gdHVsZWUgb2xsYSBudW1lZXJpbmVuLlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIk9sZSBoeXbDpCBqYSBzecO2dMOkIHbDpGhpbnTDpMOkbiB7MH0gbWVya2tpw6QuXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIk9sZSBoeXbDpCBqYSB2YWxpdHNlIHbDpGhpbnTDpMOkbiB7MH0gdmFpaHRvZWh0b2EuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIk9sZSBoeXbDpCBqYSB2YWxpdHNlIGVuaW50w6TDpG4gezB9IHZhaWh0b2VodG9hLlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwiJ3swfScgdMOkeXR5eSBvbGxhIGVuZW1tw6RuIHRhaSB5aHTDpCBzdXVyaSBrdWluIHsxfSBqYSB2w6RoZW1tw6RuIHRhaSB5aHTDpCBzdXVyaSBrdWluIHsyfVwiLFxuICBudW1lcmljTWluOiBcIid7MH0nIHTDpHl0eXkgb2xsYSBlbmVtbcOkbiB0YWkgeWh0w6Qgc3V1cmkga3VpbiB7MX1cIixcbiAgbnVtZXJpY01heDogXCInezB9JyB0w6R5dHl5IG9sbGEgdsOkaGVtbcOkbiB0YWkgeWh0w6Qgc3V1cmkga3VpbiB7MX1cIixcbiAgaW52YWxpZEVtYWlsOiBcIlN5w7Z0w6QgdmFsaWRpIHPDpGhrw7Zwb3N0aW9zb2l0ZS5cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiAnT2xlIGh5dsOkIGphIHN5w7Z0w6QgXCJNdXUgKGt1dmFpbGUpXCInXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcImZpXCJdID0gZmlubmlzaFN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJmaVwiXSA9IFwic3VvbWFsYWluZW5cIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vZmlubmlzaC50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgZnJlbmNoU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIlByw6ljw6lkZW50XCIsXG4gIHBhZ2VOZXh0VGV4dDogXCJTdWl2YW50XCIsXG4gIGNvbXBsZXRlVGV4dDogXCJUZXJtaW5lclwiLFxuICBzdGFydFN1cnZleVRleHQ6IFwiQ29tbWVuY2VyXCIsXG4gIG90aGVySXRlbVRleHQ6IFwiQXV0cmUgKHByw6ljaXNlcilcIixcbiAgbm9uZUl0ZW1UZXh0OiBcIkF1Y3VuXCIsXG4gIHNlbGVjdEFsbEl0ZW1UZXh0OiBcIlRvdXQgc8OpbGVjdGlvbm5lclwiLFxuICBwcm9ncmVzc1RleHQ6IFwiUGFnZSB7MH0gc3VyIHsxfVwiLFxuICBlbXB0eVN1cnZleTogXCJJbCBuJ3kgYSBuaSBwYWdlIHZpc2libGUgbmkgcXVlc3Rpb24gdmlzaWJsZSBkYW5zIGNlIHF1ZXN0aW9ubmFpcmVcIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJNZXJjaSBkJ2F2b2lyIHLDqXBvbmR1IGF1IHF1ZXN0aW9ubmFpcmUgIVwiLFxuICBjb21wbGV0aW5nU3VydmV5QmVmb3JlOiBcIk5vcyBkb25uw6llcyBpbmRpcXVlbnQgcXVlIHZvdXMgYXZleiBkw6lqw6AgcmVtcGxpIGNlIHF1ZXN0aW9ubmFpcmUuXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwiTGUgcXVlc3Rpb25uYWlyZSBlc3QgZW4gY291cnMgZGUgY2hhcmdlbWVudC4uLlwiLFxuICBvcHRpb25zQ2FwdGlvbjogXCJDaG9pc2lzc2V6Li4uXCIsXG4gIHZhbHVlOiBcInZhbGV1clwiLFxuICByZXF1aXJlZEVycm9yOiBcIkxhIHLDqXBvbnNlIMOgIGNldHRlIHF1ZXN0aW9uIGVzdCBvYmxpZ2F0b2lyZS5cIixcbiAgcmVxdWlyZWRFcnJvckluUGFuZWw6IFwiTWVyY2kgZGUgcsOpcG9uZHJlIGF1IG1vaW5zIMOgIHVuZSBxdWVzdGlvbi5cIixcbiAgcmVxdWlyZWRJbkFsbFJvd3NFcnJvcjogXCJUb3V0ZXMgbGVzIGxpZ25lcyBzb250IG9ibGlnYXRvaXJlc1wiLFxuICBudW1lcmljRXJyb3I6IFwiTGEgcsOpcG9uc2UgZG9pdCDDqnRyZSB1biBub21icmUuXCIsXG4gIHRleHRNaW5MZW5ndGg6IFwiTWVyY2kgZGUgc2Fpc2lyIGF1IG1vaW5zIHswfSBjYXJhY3TDqHJlcy5cIixcbiAgdGV4dE1heExlbmd0aDogXCJNZXJjaSBkZSBzYWlzaXIgbW9pbnMgZGUgezB9IGNhcmFjdMOocmVzLlwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcIk1lcmNpIGRlIHNhaXNpciBlbnRyZSB7MH0gZXQgezF9IGNhcmFjdMOocmVzLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIk1lcmNpIGRlIGNvbXBsw6l0ZXIgYXUgbW9pbnMgezB9IGxpZ25lcy5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiTWVyY2kgZGUgc8OpbGVjdGlvbm5lciBhdSBtaW5pbXVtIHswfSByw6lwb25zZXMuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIk1lcmNpIGRlIHPDqWxlY3Rpb25uZXIgYXUgbWF4aW11bSB7MH0gcsOpcG9uc2VzLlwiLFxuICBudW1lcmljTWluTWF4OiBcIlZvdHJlIHLDqXBvbnNlICd7MH0nIGRvaXQgw6p0cmUgc3Vww6lyaWV1cmUgb3Ugw6lnYWxlIMOgIHsxfSBldCBpbmbDqXJpZXVyZSBvdSDDqWdhbGUgw6AgezJ9XCIsXG4gIG51bWVyaWNNaW46IFwiVm90cmUgcsOpcG9uc2UgJ3swfScgZG9pdCDDqnRyZSBzdXDDqXJpZXVyZSBvdSDDqWdhbGUgw6AgezF9XCIsXG4gIG51bWVyaWNNYXg6IFwiVm90cmUgcsOpcG9uc2UgJ3swfScgZG9pdCDDqnRyZSBpbmbDqXJpZXVyZSBvdSDDqWdhbGUgw6AgezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJNZXJjaSBkJ2VudHJlciB1bmUgYWRyZXNzZSBtYWlsIHZhbGlkZS5cIixcbiAgaW52YWxpZEV4cHJlc3Npb246IFwiTCdleHByZXNzaW9uOiB7MH0gZG9pdCByZXRvdXJuZXIgJ3RydWUnLlwiLFxuICB1cmxSZXF1ZXN0RXJyb3I6IFwiTGEgcmVxdcOqdGUgYSByZW52b3nDqSB1bmUgZXJyZXVyICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOiBcIkxhIHJlcXXDqnRlIGEgcmVudm95w6kgZGVzIGRvbm7DqWVzIHZpZGVzIG91IGxhIHByb3ByacOpdMOpICdwYXRoJyBlc3QgaW5jb3JyZWN0ZVwiLFxuICBleGNlZWRNYXhTaXplOiBcIkxhIHRhaWxsZSBkdSBmaWNoaWVyIG5lIGRvaXQgcGFzIGV4Y8OpZGVyIHswfS5cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiBcIk1lcmNpIGRlIHByw6ljaXNlciBsZSBjaGFtcCAnQXV0cmUnLlwiLFxuICB1cGxvYWRpbmdGaWxlOiBcIlZvdHJlIGZpY2hpZXIgZXN0IGVuIGNvdXJzIGRlIGNoYXJnZW1lbnQuIE1lcmNpIGQnYXR0ZW5kcmUgcXVlbHF1ZXMgc2Vjb25kZXMgZXQgZGUgcsOpZXNzYXllci5cIixcbiAgbG9hZGluZ0ZpbGU6IFwiQ2hhcmdlbWVudC4uLlwiLFxuICBjaG9vc2VGaWxlOiBcIkFqb3V0ZXIgZGVzIGZpY2hpZXJzLi4uXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwiVm91bGV6LXZvdXMgc3VwcHJpbWVyIGNldCBlbnJlZ2lzdHJlbWVudCA/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiQ2V0dGUgdmFsZXVyIGRvaXQgw6p0cmUgdW5pcXVlLlwiLFxuICBhZGRDb2x1bW46IFwiQWpvdXRlciB1bmUgY29sb25uZVwiLFxuICBhZGRSb3c6IFwiQWpvdXRlciB1bmUgbGlnbmVcIixcbiAgcmVtb3ZlUm93OiBcIlN1cHByaW1lclwiLFxuICBhZGRQYW5lbDogXCJBam91dGVyXCIsXG4gIHJlbW92ZVBhbmVsOiBcIlN1cHByaW1lclwiLFxuICBjaG9pY2VzX0l0ZW06IFwiaXRlbVwiLFxuICBtYXRyaXhfY29sdW1uOiBcIkNvbG9ubmVcIixcbiAgbWF0cml4X3JvdzogXCJMaWduZVwiLFxuICBzYXZpbmdEYXRhOiBcIkxlcyByw6lzdWx0YXRzIHNvbnQgZW4gY291cnMgZGUgc2F1dmVnYXJkZSBzdXIgbGUgc2VydmV1ci4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwiVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgZXQgYSBlbXDDqmNow6kgbGEgc2F1dmVnYXJkZSBkZXMgcsOpc3VsdGF0cy5cIixcbiAgc2F2aW5nRGF0YVN1Y2Nlc3M6IFwiTGVzIHLDqXN1bHRhdHMgb250IGJpZW4gw6l0w6kgZW5yZWdpc3Ryw6lzICFcIixcbiAgc2F2ZUFnYWluQnV0dG9uOiBcIlLDqWVzc2F5ZXJcIixcbiAgdGltZXJNaW46IFwibWluXCIsXG4gIHRpbWVyU2VjOiBcInNlY1wiLFxuICB0aW1lclNwZW50QWxsOiBcIlZvdXMgYXZleiBwYXNzw6kgezB9IHN1ciBjZXR0ZSBwYWdlIGV0IHsxfSBhdSB0b3RhbC5cIixcbiAgdGltZXJTcGVudFBhZ2U6IFwiVm91cyBhdmV6IHBhc3PDqSB7MH0gc3VyIGNldHRlIHBhZ2UuXCIsXG4gIHRpbWVyU3BlbnRTdXJ2ZXk6IFwiVm91cyBhdmV6IHBhc3PDqSB7MH0gYXUgdG90YWwuXCIsXG4gIHRpbWVyTGltaXRBbGw6IFwiVm91cyBhdmV6IHBhc3PDqSB7MH0gc3VyIHsxfSBzdXIgY2V0dGUgcGFnZSBldCB7Mn0gc3VyIHszfSBhdSB0b3RhbC5cIixcbiAgdGltZXJMaW1pdFBhZ2U6IFwiVm91cyBhdmV6IHBhc3PDqSB7MH0gc3VyIHsxfSBzdXIgY2V0dGUgcGFnZS5cIixcbiAgdGltZXJMaW1pdFN1cnZleTogXCJWb3VzIGF2ZXogcGFzc8OpIHswfSBzdXIgezF9IGF1IHRvdGFsLlwiLFxuICBjbGVhbkNhcHRpb246IFwiTmV0dG95ZXJcIixcbiAgY2xlYXJDYXB0aW9uOiBcIlZpZGVyXCIsXG4gIHJlbW92ZUZpbGVDYXB0aW9uOiBcIkVubGV2ZXIgY2UgZmljaGllclwiLFxuICBib29sZWFuQ2hlY2tlZExhYmVsOiBcIk91aVwiLFxuICBib29sZWFuVW5jaGVja2VkTGFiZWw6IFwiTm9uXCJcbn07XG5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZnJcIl0gPSBmcmVuY2hTdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wiZnJcIl0gPSBcImZyYW7Dp2Fpc1wiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi9mcmVuY2gudHMiLCJpbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vc3VydmV5U3RyaW5nc1wiO1xuXG5leHBvcnQgdmFyIGdlb3JnaWFuU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIuGDo+GDmeGDkOGDnFwiLFxuICBwYWdlTmV4dFRleHQ6IFwi4YOo4YOU4YOb4YOT4YOU4YOSXCIsXG4gIGNvbXBsZXRlVGV4dDogXCLhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Thg5Hhg5BcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIuGDkuGDleGDlOGDoOGDk+GDmCB7MH0gLyB7MX1cIixcbiAgZW1wdHlTdXJ2ZXk6IFwi4YOQ4YOg4YOq4YOU4YOg4YOX4YOYIOGDmeGDmOGDl+GDruGDleGDkCDhg5Dhg6Ag4YOQ4YOg4YOY4YOhLlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIuGDkuGDm+GDkOGDk+GDmuGDneGDkeGDlyDhg5nhg5jhg5fhg67hg5Xhg5Dhg6Dhg5jhg6Eg4YOo4YOU4YOV4YOh4YOU4YOR4YOY4YOh4YOX4YOV4YOY4YOhIVwiLFxuICBsb2FkaW5nU3VydmV5OiBcIuGDqeGDkOGDouGDleGDmOGDoOGDl+GDleGDkCDhg6Hhg5Thg6Dhg5Xhg5Thg6Dhg5jhg5Phg5Dhg5wuLi5cIixcbiAgb3RoZXJJdGVtVGV4dDogXCLhg6Hhg67hg5Xhg5AgKOGDkuGDl+GDruGDneGDleGDlyDhg5vhg5jhg6Phg5fhg5jhg5fhg5Thg5cpXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIuGDkOGDoOGDqeGDlOGDleGDkC4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIuGDkuGDl+GDruGDneGDleGDlyDhg6Phg57hg5Dhg6Hhg6Phg67hg5Thg5cg4YOZ4YOY4YOX4YOu4YOV4YOQ4YOhLlwiLFxuICBudW1lcmljRXJyb3I6IFwi4YOe4YOQ4YOh4YOj4YOu4YOYIOGDo+GDnOGDk+GDkCDhg5jhg6fhg53hg6Eg4YOg4YOY4YOq4YOu4YOV4YOYLlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIuGDkuGDl+GDruGDneGDleGDlyDhg6jhg5Thg5jhg6fhg5Xhg5Dhg5zhg5Thg5cg4YOQ4YOg4YOQ4YOc4YOQ4YOZ4YOa4YOU4YORIHswfSDhg6Hhg5jhg5vhg5Hhg53hg5rhg50uXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIuGDkuGDl+GDruGDneGDleGDlyDhg5Dhg5jhg6Dhg6nhg5jhg5Thg5cg4YOQ4YOg4YOQ4YOc4YOQ4YOZ4YOa4YOU4YORIHswfSDhg5Xhg5Dhg6Dhg5jhg5Dhg5zhg6Lhg5guXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIuGDkuGDl+GDruGDneGDleGDlyDhg5Dhg5jhg6Dhg6nhg5jhg5Thg5cg4YOQ4YOg4YOQ4YOj4YOb4YOU4YOi4YOU4YOhIHswfSDhg5Xhg5Dhg6Dhg5jhg5Dhg5zhg6Lhg5guXCIsXG4gIG51bWVyaWNNaW5NYXg6XG4gICAgXCInezB9JyDhg6Phg5zhg5Phg5Ag4YOY4YOn4YOd4YOhIOGDm+GDlOGDouGDmCDhg5Dhg5wg4YOi4YOd4YOa4YOYLCDhg5Xhg5jhg5Phg6Dhg5QgezF9LCDhg5Phg5Ag4YOc4YOQ4YOZ4YOa4YOU4YOR4YOYIOGDkOGDnCDhg6Lhg53hg5rhg5gg4YOV4YOY4YOT4YOg4YOUIHsyfVwiLFxuICBudW1lcmljTWluOiBcIid7MH0nIOGDo+GDnOGDk+GDkCDhg5jhg6fhg53hg6Eg4YOb4YOU4YOi4YOYIOGDkOGDnCDhg6Lhg53hg5rhg5gg4YOV4YOY4YOT4YOg4YOUIHsxfVwiLFxuICBudW1lcmljTWF4OiBcIid7MH0nIOGDo+GDnOGDk+GDkCDhg5jhg6fhg53hg6Eg4YOc4YOQ4YOZ4YOa4YOU4YOR4YOYIOGDkOGDnCDhg6Lhg53hg5rhg5gg4YOV4YOY4YOT4YOg4YOUIHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwi4YOS4YOX4YOu4YOd4YOV4YOXIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDneGDlyDhg5Thg5ouIOGDpOGDneGDoeGDouGDmOGDoSDhg6Dhg5Thg5Dhg5rhg6Phg6Dhg5gg4YOb4YOY4YOh4YOQ4YOb4YOQ4YOg4YOX4YOYLlwiLFxuICBvdGhlclJlcXVpcmVkRXJvcjogXCLhg5Lhg5fhg67hg53hg5Xhg5cg4YOo4YOU4YOQ4YOV4YOh4YOU4YOXIOGDleGDlOGDmuGDmCAn4YOh4YOu4YOV4YOQJ1wiXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcImthXCJdID0gZ2VvcmdpYW5TdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wia2FcIl0gPSBcIuGDpeGDkOGDoOGDl+GDo+GDmuGDmFwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi9nZW9yZ2lhbi50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgZ2VybWFuU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIlp1csO8Y2tcIixcbiAgcGFnZU5leHRUZXh0OiBcIldlaXRlclwiLFxuICBjb21wbGV0ZVRleHQ6IFwiQWJzY2hsaWXDn2VuXCIsXG4gIHN0YXJ0U3VydmV5VGV4dDogXCJTdGFydFwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIlNvbnN0aWdlcyAoQmVzY2hyZWlidW5nKVwiLFxuICBub25lSXRlbVRleHQ6IFwiTmljaHRzXCIsXG4gIHNlbGVjdEFsbEl0ZW1UZXh0OiBcIkFsbGUgYXVzd8OkaGxlblwiLFxuICBwcm9ncmVzc1RleHQ6IFwiU2VpdGUgezB9IHZvbiB7MX1cIixcbiAgZW1wdHlTdXJ2ZXk6IFwiRXMgaXN0IGtlaW5lIEZyYWdlIHZvcmhhbmRlbi5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJEYW5rZSwgZGFzcyBTaWUgZGllIFVtZnJhZ2UgYWJnZXNjaGxvc3NlbiBoYWJlbiFcIixcbiAgY29tcGxldGluZ1N1cnZleUJlZm9yZTpcbiAgICBcIldpciBoYWJlbiBmZXN0Z2VzdGVsbHQsIGRhc3MgU2llIGRpZXNlIFVtZnJhZ2UgYmVyZWl0cyBhYmdlc2NobG9zc2VuIGhhYmVuLlwiLFxuICBsb2FkaW5nU3VydmV5OiBcIkZyYWdlYm9nZW4gd2lyZCBnZWxhZGVuLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIkJpdHRlIGF1c3fDpGhsZW4uLi5cIixcbiAgdmFsdWU6IFwiV2VydFwiLFxuICByZXF1aXJlZEVycm9yOiBcIkJpdHRlIGJlYW50d29ydGVuIFNpZSBkaWVzZSBGcmFnZS5cIixcbiAgcmVxdWlyZWRFcnJvckluUGFuZWw6IFwiQml0dGUgYmVhbnR3b3J0ZW4gU2llIG1pbmRlc3RlbnMgZWluZSBGcmFnZS5cIixcbiAgcmVxdWlyZWRJbkFsbFJvd3NFcnJvcjogXCJCaXR0ZSBiZWFudHdvcnRlbiBTaWUgYWxsZSBGcmFnZW4uXCIsXG4gIG51bWVyaWNFcnJvcjogXCJEZXIgV2VydCBtdXNzIGVpbmUgWmFobCBzZWluLlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIkJpdHRlIGdlYmVuIHNpZSBtaW5kZXN0ZW5zIHswfSBaZWljaGVuIGVpbi5cIixcbiAgdGV4dE1heExlbmd0aDogXCJCaXR0ZSBnZWJlbiBTaWUgbmljaHQgbWVociBhbHMgezB9IFplaWNoZW4gZWluLlwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcIkJpdHRlIGdlYmVuIHNpZSBtaW5kZXN0ZW5zIHswfSB1bmQgbWF4aW1hbCB7MX0gWmVpY2hlbiBlaW4uXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwiQml0dGUgbWFjaGVuIFNpZSBpbiBtaW5kZXN0ZW5zIHswfSBaZWlsZW4gZWluZSBFaW5nYWJlLlwiLFxuICBtaW5TZWxlY3RFcnJvcjogXCJCaXR0ZSB3w6RobGVuIFNpZSBtaW5kZXN0ZW5zIHswfSBWYXJpYW50ZShuKSBhdXMuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIkJpdHRlIHfDpGhsZW4gU2llIG5pY2h0IG1laHIgYWxzIHswfSBWYXJpYW50ZShuKSBhdXMuXCIsXG4gIG51bWVyaWNNaW5NYXg6XG4gICAgXCInezB9JyBtdXNzIGdyw7bDn2VyIG9kZXIgZ2xlaWNoIHsxfSB1bmQga2xlaW5lciBvZGVyIGdsZWljaCB7Mn0gc2VpblwiLFxuICBudW1lcmljTWluOiBcIid7MH0nIG11c3MgZ3LDtsOfZXIgb2RlciBnbGVpY2ggezF9IHNlaW5cIixcbiAgbnVtZXJpY01heDogXCInezB9JyBtdXNzIGtsZWluZXIgb2RlciBnbGVpY2ggezF9IHNlaW5cIixcbiAgaW52YWxpZEVtYWlsOiBcIkJpdHRlIGdlYmVuIFNpZSBlaW5lIGfDvGx0aWdlIEUtTWFpbC1BZHJlc3NlIGVpbi5cIixcbiAgaW52YWxpZEV4cHJlc3Npb246IFwiRGVyIEF1c2RydWNrOiB7MH0gbXVzcyBkZW4gV2VydCAnd2FocicodHJ1ZSkgenVyw7xja2xpZWZlcm4uXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCJEaWUgQW5mcmFnZSBsaWVmZXJ0ZSBkZW4gZm9sZ2VuZGVuIEZlaGxlciB6dXLDvGNrICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwiRGllIEFuZnJhZ2UgbGllZmVydGUgbGVlcmUgRGF0ZW4genVyw7xjayBvZGVyIGRlciBXZXJ0IGRlciBWYXJpYWJsZSAncGF0aCcgaXN0IGZhbHNjaFwiLFxuICBleGNlZWRNYXhTaXplOiBcIkRpZSBEYXRlaWdyw7bDn2UgZGFyZiB7MH0gbmljaHQgw7xiZXJzY2hyZWl0ZW4uXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJCaXR0ZSBnZWJlbiBTaWUgZGVuIGFuZGVyZW4gV2VydCBlaW4uXCIsXG4gIHVwbG9hZGluZ0ZpbGU6XG4gICAgXCJJaHJlIERhdGVpIHdpcmQgaG9jaGdlbGFkZW4uIEJpdHRlIHdhcnRlbiBTaWUgZWluIHBhYXIgU2VrdW5kZW4gdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZGFubiBlcm5ldXQuXCIsXG4gIGxvYWRpbmdGaWxlOiBcIldpcmQgZ2VsYWRlbi4uLlwiLFxuICBjaG9vc2VGaWxlOiBcIkRhdGVpKGVuKSBhdXN3w6RobGVuLi4uXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwiV29sbGVuIFNpZSBkZW4gRWludHJhZyBsw7ZzY2hlbj9cIixcbiAga2V5RHVwbGljYXRpb25FcnJvcjogXCJEaWVzZXIgV2VydCBtdXNzIGVpbmRldXRpZyBzZWluLlwiLFxuICBhZGRDb2x1bW46IFwiU3BhbHRlIGhpbnp1ZsO8Z2VuXCIsXG4gIGFkZFJvdzogXCJaZWlsZSBoaW56dWbDvGdlblwiLFxuICByZW1vdmVSb3c6IFwiRW50ZmVybmVuXCIsXG4gIGFkZFBhbmVsOiBcIk5ldSBoaW56dWbDvGdlblwiLFxuICByZW1vdmVQYW5lbDogXCJFbnRmZXJuZW5cIixcbiAgY2hvaWNlc19JdGVtOiBcIkVsZW1lbnRcIixcbiAgbWF0cml4X2NvbHVtbjogXCJTcGFsdGVcIixcbiAgbWF0cml4X3JvdzogXCJaZWlsZVwiLFxuICBzYXZpbmdEYXRhOiBcIkRpZSBFcmdlYm5pc3NlIHdlcmRlbiBhdWYgZGVtIFNlcnZlciBnZXNwZWljaGVydC4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwiRXMgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uIERpZSBFcmdlYm5pc3NlIGtvbm50ZW4gbmljaHQgZ2VzcGVpY2hlcnQgd2VyZGVuLlwiLFxuICBzYXZpbmdEYXRhU3VjY2VzczogXCJEaWUgRXJnZWJuaXNzZSB3dXJkZW4gZ2VzcGVpY2hlcnQhXCIsXG4gIHNhdmVBZ2FpbkJ1dHRvbjogXCJCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dFwiLFxuICB0aW1lck1pbjogXCJNaW4uXCIsXG4gIHRpbWVyU2VjOiBcIlNlay5cIixcbiAgdGltZXJTcGVudEFsbDogXCJTaWUgd2FyZW4gezB9IGF1ZiBkaWVzZXIgU2VpdGUgdW5kIGluc2dlc2FtdCB7MX0uXCIsXG4gIHRpbWVyU3BlbnRQYWdlOiBcIlNpZSB3YXJlbiB7MH0gYXVmIGRpZXNlciBTZWl0ZS5cIixcbiAgdGltZXJTcGVudFN1cnZleTogXCJTaWUgaGFiZW4gaW5zZ2VzYW10IHswfSBiZW7DtnRpZ3QuXCIsXG4gIHRpbWVyTGltaXRBbGw6XG4gICAgXCJTaWUgd2FyZW4gezB9IHZvbiB7MX0gYXVmIGRpZXNlciBTZWl0ZSB1bmQgaW5zZ2VzYW10IHsyfSB2b24gezN9LlwiLFxuICB0aW1lckxpbWl0UGFnZTogXCJTaWUgd2FyZW4gezB9IHZvbiB7MX0gYXVmIGRpZXNlciBTZWl0ZS5cIixcbiAgdGltZXJMaW1pdFN1cnZleTogXCJTaWUgaGFiZW4gaW5zZ2VzYW10IHswfSB2b24gezF9IGJlbsO2dGlndC5cIixcbiAgY2xlYW5DYXB0aW9uOiBcIlNhdWJlclwiLFxuICBjbGVhckNhcHRpb246IFwiTGVlcmVuXCIsXG4gIHJlbW92ZUZpbGVDYXB0aW9uOiBcIkRhdGVpIGzDtnNjaGVuXCJcbn07XG5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZGVcIl0gPSBnZXJtYW5TdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wiZGVcIl0gPSBcImRldXRzY2hcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vZ2VybWFuLnRzIiwiLy9DcmVhdGVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9hZ2Vsb3NwYW5hZ2lvdGFraXNcbmltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgZ3JlZWtTdXJ2ZXlTdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwizqDPgc6/zrfOs86/z43OvM61zr3Ov1wiLFxuICBwYWdlTmV4dFRleHQ6IFwizpXPgM+MzrzOtc69zr9cIixcbiAgY29tcGxldGVUZXh0OiBcIs6fzrvOv866zrvOrs+Bz4nPg863XCIsXG4gIG90aGVySXRlbVRleHQ6IFwizobOu867zr8gKM+AzrHPgc6xzrrOsc67z44gzrTOuc61z4XOus+BzrnOvc6vz4PPhM61KVwiLFxuICBwcm9ncmVzc1RleHQ6IFwizqPOtc67zq/OtM6xIHswfSDOsc+Az4wgezF9XCIsXG4gIGVtcHR5U3VydmV5OlxuICAgIFwizpTOtc69IM+Fz4DOrM+Bz4fOtc65IM66zrHOvM6vzrEgzr/Pgc6xz4TOriDPg861zrvOr860zrEgzq4gzr/Pgc6xz4TOriDOtc+Bz47PhM63z4POtyDPg861IM6xz4XPhM+MIM+Ezr8gzrXPgc+Jz4TOt868zrHPhM6/zrvPjM6zzrnOvy5cIixcbiAgY29tcGxldGluZ1N1cnZleTpcbiAgICBcIs6Vz4XPh86xz4HOuc+Dz4TOv8+NzrzOtSDOs865zrEgz4TOt869IM+Dz4XOvM+AzrvOrs+Bz4nPg863IM6xz4XPhM6/z40gz4TOv8+FIM61z4HPic+EzrfOvM6xz4TOv867zr/Os86vzr/PhSFcIixcbiAgbG9hZGluZ1N1cnZleTogXCLOpM6/IM61z4HPic+EzrfOvM6xz4TOv867z4zOs865zr8gz4bOv8+Bz4TPjs69zrXPhM6xzrkgzrHPgM6/IM+Ezr8gzrTOuc6xzrrOv868zrnPg8+Ezq4uLi5cIixcbiAgb3B0aW9uc0NhcHRpb246IFwizpXPgM65zrvOrc6+z4TOtS4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIs6gzrHPgc6xzrrOsc67z44gzrHPgM6xzr3PhM6uz4PPhM61IM+Dz4TOt869IM61z4HPjs+EzrfPg863LlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOlxuICAgIFwizqDOsc+BzrHOus6xzrvPjiDOsc+AzrHOvc+Ezq7Pg8+EzrUgz4PPhM65z4IgzrXPgc+Jz4TOrs+DzrXOuc+CIM+DzrUgz4zOu861z4Igz4TOuc+CIM6zz4HOsc68zrzOrc+CLlwiLFxuICBudW1lcmljRXJyb3I6IFwizpcgz4TOuc68zq4gz4DPgc6tz4DOtc65IM69zrEgzrXOr869zrHOuSDOsc+BzrnOuM68zrfPhM65zrrOri5cIixcbiAgdGV4dE1pbkxlbmd0aDogXCLOoM6xz4HOsc66zrHOu8+OIM+Dz4XOvM+AzrvOt8+Bz47Pg8+EzrUgz4TOv8+FzrvOrM+HzrnPg8+Ezr/OvSB7MH0gz4PPjc68zrLOv867zrEuXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwizqDOsc+BzrHOus6xzrvPjiDPg8+FzrzPgM67zrfPgc+Oz4PPhM61IM+Ezr/Phc67zqzPh865z4PPhM6/zr0gezB9IM6zz4HOsc68zrzOrc+CLlwiLFxuICBtaW5TZWxlY3RFcnJvcjogXCLOoM6xz4HOsc66zrHOu8+OIM61z4DOuc67zq3Ovs+EzrUgz4TOv8+FzrvOrM+HzrnPg8+Ezr/OvSB7MH0gz4DOsc+BzrHOu867zrHOs86tz4IuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIs6gzrHPgc6xzrrOsc67z44gzrXPgM65zrvOrc6+z4TOtSDPjM+Hzrkgz4DOsc+BzrHPgM6szr3PiSDOsc+Azr8gezB9IM+AzrHPgc6xzrvOu86xzrPOrc+CLlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwizqTOvyAnezB9JyDOuM6xIM+Az4HOrc+AzrXOuSDOvc6xIM61zq/Ovc6xzrkgzq/Pg86/IM6uIM68zrXOs86xzrvPjc+EzrXPgc6/IM6xz4DOvyDPhM6/IHsxfSDOus6xzrkgzq/Pg86/IM6uIM68zrnOus+Bz4zPhM61z4HOvyDOsc+Azr8gz4TOvyB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCLOpM6/ICd7MH0nIM+Az4HOrc+AzrXOuSDOvc6xIM61zq/Ovc6xzrkgzrzOtc6zzrHOu8+Nz4TOtc+Bzr8gzq4gzrnPg86/IM68zrUgz4TOvyB7MX1cIixcbiAgbnVtZXJpY01heDogXCLOpM6/ICd7MH0nIM+Az4HOrc+AzrXOuSDOvc6xIM61zq/Ovc6xzrkgzrzOuc66z4HPjM+EzrXPgc6/IM6uIM6vz4POvyDOsc+Azr8gz4TOvyB7MX1cIixcbiAgaW52YWxpZEVtYWlsOiBcIs6gzrHPgc6xzrrOsc67z44gzrTPjs+Dz4TOtSDOvM65zrEgzrHPgM6/zrTOtc66z4TOriDOtM65zrXPjc64z4XOvc+DzrcgZS1tYWlsLlwiLFxuICB1cmxSZXF1ZXN0RXJyb3I6IFwizpcgzrHOr8+EzrfPg863IM61z4DOrc+Dz4TPgc61z4jOtSDPg8+GzqzOu868zrEgJ3swfScuIHsxfVwiLFxuICB1cmxHZXRDaG9pY2VzRXJyb3I6XG4gICAgXCLOlyDOsc6vz4TOt8+DzrcgzrXPgM6tz4PPhM+BzrXPiM61IM66zrXOvc6sIM60zrXOtM6/zrzOrc69zrEgzq4gzrcgzrnOtM65z4zPhM63z4TOsSAnzrzOv869zr/PgM6sz4TOuS9wYXRoJyDOtc6vzr3Osc65IM61z4PPhs6xzrvOvM6tzr3Ot1wiLFxuICBleGNlZWRNYXhTaXplOiBcIs6kzr8gzrzOrc6zzrXOuM6/z4IgzrTOtc69IM68z4DOv8+BzrXOryDOvc6xIM+Fz4DOtc+BzrLOsc6vzr3Otc65IM+EzrEgezB9LlwiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwizqDOsc+BzrHOus6xzrvPjiDPg8+FzrzPgM67zrfPgc+Oz4PPhM61IM+EzrfOvSDPhM65zrzOriDOs865zrEgz4TOvyDPgM61zrTOr86/ICfOrM67zrvOvycuXCIsXG4gIHVwbG9hZGluZ0ZpbGU6XG4gICAgXCLOpM6/IM6xz4HPh861zq/OvyDPg86xz4IgzrHOvc61zrLOsc6vzr3Otc65LiDOoM6xz4HOsc66zrHOu8+OIM+AzrXPgc65zrzOrc69zrXPhM61IM66zrHPgM6/zrnOsSDOtM61z4XPhM61z4HPjM67zrXPgM+EzrEgzrrOsc65IM60zr/Ous65zrzOrM+Dz4TOtSDOvs6xzr3OrC5cIixcbiAgYWRkUm93OiBcIs6gz4HOv8+DzrjOrs66zrcgzrPPgc6xzrzOvM6uz4JcIixcbiAgcmVtb3ZlUm93OiBcIs6Rz4bOsc6vz4HOtc+DzrdcIlxufTtcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiZ3JcIl0gPSBncmVla1N1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJnclwiXSA9IFwizrXOu867zrfOvc65zrrOrFwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi9ncmVlay50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgaGVicmV3U3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIteQ15fXldeo15RcIixcbiAgcGFnZU5leHRUZXh0OiBcIten15PXmdee15RcIixcbiAgY29tcGxldGVUZXh0OiBcIteh15nXldedXCIsXG4gIHByb2dyZXNzVGV4dDogXCLXk9ejIHsxfSDXnteq15XXmiB7MH1cIixcbiAgZW1wdHlTdXJ2ZXk6IFwi15DXmdefINep15DXnNeV16pcIixcbiAgY29tcGxldGluZ1N1cnZleTogXCLXqteV15PXlCDXotecINee15nXnNeV15kg15TXqdeQ15zXldefIVwiLFxuICBsb2FkaW5nU3VydmV5OiBcIteY16LXmdeg15Qg157XlNep16jXqi4uLlwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIteQ15fXqCAo16DXkCDXnNeq15DXqClcIixcbiAgb3B0aW9uc0NhcHRpb246IFwi15HXl9eoLi4uXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwi15DXoNeQINeU16nXkSDXotecINeU16nXkNec15RcIixcbiAgbnVtZXJpY0Vycm9yOiBcIteU16rXqdeV15HXlCDXpteo15nXm9eUINec15TXmdeV16og157Xodek16guXCIsXG4gIHRleHRNaW5MZW5ndGg6IFwi15TXltefINec16TXl9eV16ogezB9INeq15XXldeZ150uXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIteR15fXqCDXnNek15fXldeqIHswfSDXkNek16nXqNeV15nXldeqLlwiLFxuICBtYXhTZWxlY3RFcnJvcjogXCLXkdeX16gg16LXkyB7MH0g15DXpNep16jXldeZ15XXqi5cIixcbiAgbnVtZXJpY01pbk1heDpcbiAgICBcIid7MH0nINeX15nXmdeRINec15TXmdeV16og16nXldeV15Qg15DXlSDXkteT15XXnCDXniB7MX0sINeV16nXldeV15Qg15wtIHsyfSDXkNeVINek15fXldeqINeeLSB7fX1cIixcbiAgbnVtZXJpY01pbjogXCInezB9JyDXl9eZ15nXkSDXnNeU15nXldeqINep15XXldeUINeQ15Ug15LXk9eV15wg154gezF9XCIsXG4gIG51bWVyaWNNYXg6IFwiJ3swfScg15fXmdeZ15Eg15zXlNeZ15XXqiDXqdeV15XXlCDXkNeVINen15jXnyDXniB7MX1cIixcbiAgaW52YWxpZEVtYWlsOiAn15TXltefINeb16rXldeR16og15PXldeQXCLXnCDXl9eV16fXmdeqLicsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogJ9eg15Ag15zXlNeW15nXnyDXoNeq15XXoNeZ150g15HXqdeT15QgXCLXkNeX16hcIidcbn07XG5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiaGVcIl0gPSBoZWJyZXdTdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wiaGVcIl0gPSBcItei15HXqNeZ16pcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vaGVicmV3LnRzIiwiaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBodW5nYXJpYW5TdXJ2ZXlTdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwiVmlzc3phXCIsXG4gIHBhZ2VOZXh0VGV4dDogXCJUb3bDoWJiXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJLw6lzelwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIkVnecOpYiAoYWRqYSBtZWcpXCIsXG4gIHByb2dyZXNzVGV4dDogXCJ7MH0uL3sxfSBvbGRhbFwiLFxuICBlbXB0eVN1cnZleTogXCJUaGVyZSBpcyBubyB2aXNpYmxlIHBhZ2Ugb3IgcXVlc3Rpb24gaW4gdGhlIHN1cnZleS5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJLw7ZzesO2bmrDvGssIGhvZ3kga2l0w7ZsdMO2dHRlIGZlbG3DqXLDqXPDvG5rZXQhXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXlCZWZvcmU6IFwiTcOhciBraXTDtmx0w7Z0dGUgYSBmZWxtw6lyw6lzdC5cIixcbiAgbG9hZGluZ1N1cnZleTogXCJGZWxtw6lyw6lzIGJldMO2bHTDqXNlLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIlbDoWxhc3N6b24uLi5cIixcbiAgdmFsdWU6IFwiw6lydMOpa1wiLFxuICByZXF1aXJlZEVycm9yOiBcIkvDqXJqw7xrLCB2w6FsYXN6b2xqYSBtZWcgZXp0IGEga8OpcmTDqXN0IVwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIkvDqXJqw7xrIGFkam9uIHbDoWxhc3p0IG1pbmRlbiBzb3JiYW4hXCIsXG4gIG51bWVyaWNFcnJvcjogXCJBeiDDqXJ0w6lrIHN6w6FtIGtlbGwsIGhvZ3kgbGVneWVuIVwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIkFkam9uIG1lZyBsZWdhbMOhYmIgezB9IGthcmFrdGVydCFcIixcbiAgdGV4dE1heExlbmd0aDogXCJMZWdmZWxqZWJiIHswfSBrYXJha3RlcnQgYWRqb24gbWVnIVwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcIkFkam9uIG1lZyBsZWdhbMOhYmIgezB9LCBkZSBsZWdmZWxqZWJiIHsxfSBrYXJha3RlcnQhXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwiVMO2bHRzw7ZuIGtpIG1pbmltdW0gezB9IHNvcnQhXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIlbDoWxhc3N6b24ga2kgbGVnYWzDoWJiIHswfSBsZWhldMWRc8OpZ2V0IVwiLFxuICBtYXhTZWxlY3RFcnJvcjogXCJOZSB2w6FsYXNzem9uIHTDtmJiZXQsIG1pbnQgezB9IGxlaGV0xZFzw6lnIVwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwiJ3swfScgbGVneWVuIG5hZ3lvYmIsIHZhZ3kgZWd5ZW5sxZEsIG1pbnQgezF9IMOpcyBraXNlYmIsIHZhZ3kgZWd5ZW5sxZEsIG1pbnQgezJ9IVwiLFxuICBudW1lcmljTWluOiBcIid7MH0nIGxlZ3llbiBsZWdhbMOhYmIgezF9IVwiLFxuICBudW1lcmljTWF4OiBcIlRoZSAnezB9JyBuZSBsZWd5ZW4gbmFneW9iYiwgbWludCB7MX0hXCIsXG4gIGludmFsaWRFbWFpbDogXCJBZGpvbiBtZWcgZWd5IHZhbMOzcyBlbWFpbCBjw61tZXQhXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCJBIGxla8OpcmRlesOpcyBoaWLDoXZhbCB0w6lydCB2aXNzemE6ICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwiQSBsZWvDqXJkZXrDqXMgw7xyZXMgYWRhdHRhbCB0w6lydCB2aXNzemEsIHZhZ3kgYSAncGF0aCcgcGFyYW3DqXRlciBoZWx5dGVsZW4uXCIsXG4gIGV4Y2VlZE1heFNpemU6IFwiQSBtw6lyZXQgbmVtIGxlaGV0IG5hZ3lvYmIsIG1pbnQgezB9LlwiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwiQWRqYSBtZWcgYXogZWd5w6liIMOpcnTDqWtldCFcIixcbiAgdXBsb2FkaW5nRmlsZTpcbiAgICBcIkZlbHTDtmx0w6lzIGZvbHlhbWF0YmFuLiBWw6Fyam9uIHDDoXIgbcOhc29kcGVyY2V0LCBtYWpkIHByw7Niw6FsamEgw7pqcmEuXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwiVMO2cmxpIGV6dCBhIHJla29yZG90P1wiLFxuICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcIkF6IMOpcnTDqWtuZWsgZWd5ZWRpbmVrIGtlbGwgbGVubmllLlwiLFxuICBhZGRSb3c6IFwiU29yIGhvenrDoWFkw6FzYVwiLFxuICByZW1vdmVSb3c6IFwiRWx0w6F2b2zDrXTDoXNcIixcbiAgYWRkUGFuZWw6IFwiw5pqIGhvenrDoWFkw6FzYVwiLFxuICByZW1vdmVQYW5lbDogXCJFbHTDoXZvbMOtdMOhc1wiLFxuICBjaG9pY2VzX0l0ZW06IFwiZWxlbVwiLFxuICBtYXRyaXhfY29sdW1uOiBcIk9zemxvcFwiLFxuICBtYXRyaXhfcm93OiBcIlNvclwiLFxuICBzYXZpbmdEYXRhOiBcIkVyZWRtw6lueSBtZW50w6lzZSBhIHN6ZXJ2ZXJyZS4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwiRWd5IGhpYmEgZm9seXTDoW4gbmVtIHR1ZHR1ayBlbG1lbnRlbmkgYXogZXJlZG3DqW55dC5cIixcbiAgc2F2aW5nRGF0YVN1Y2Nlc3M6IFwiRXJlZG3DqW55IHNpa2VyZXNlbiBtZW50dmUhXCIsXG4gIHNhdmVBZ2FpbkJ1dHRvbjogXCJQcsOzYsOhbGphIMO6anJhXCJcbn07XG5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiaHVcIl0gPSBodW5nYXJpYW5TdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wiaHVcIl0gPSBcIm1hZ3lhclwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi9odW5nYXJpYW4udHMiLCJpbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vc3VydmV5U3RyaW5nc1wiO1xuXG5leHBvcnQgdmFyIGljZWxhbmRpY1N1cnZleVN0cmluZ3MgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCJUaWxiYWthXCIsXG4gIHBhZ2VOZXh0VGV4dDogXCLDgWZyYW1cIixcbiAgY29tcGxldGVUZXh0OiBcIkxva2nDsFwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIkhpbm4gKHNrw71yaW5nKVwiLFxuICBwcm9ncmVzc1RleHQ6IFwiU8Otw7BhIHswfSBvZiB7MX1cIixcbiAgZW1wdHlTdXJ2ZXk6IFwiw55hw7AgZXIgZW5naW5uIHPDrcOwYSBlw7BhIHNwdXJuaW5nYXIgw60gw75lc3Nhcmkga8O2bm51bi5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJUYWtrIGZ5cmlyIGHDsCBmeWxsamEgw7p0IMO+ZXNzYSBrw7ZubnVuIVwiLFxuICBsb2FkaW5nU3VydmV5OiBcIkvDtm5udW5pbiBlciBhw7AgaGxhw7BhLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIlZlbGR1Li4uXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwiVmluc2FtbGVnYXN0IHN2YXJpw7Agc3B1cm5pbmd1bm5pLlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIlZpbnNhbWxlZ2FzdCBzdmFyacOwIHNwdXJuaW5ndW0gw60gw7ZsbHVtIHLDtsOwdW0uXCIsXG4gIG51bWVyaWNFcnJvcjogXCLDnmV0dGEgZ2lsZGkgdmVyw7B1ciBhw7AgdmVyYSB0YWxhLlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIsOeYcOwIMOmdHRpIGHDsCB2ZXJhIG1pbm5zdCB7MH0gdMOha24uXCIsXG4gIHRleHRNYXhMZW5ndGg6IFwiw55hw7Agw6Z0dGkgYcOwIHZlcmEgbWVzdCB7MH0gdMOha24uXCIsXG4gIHRleHRNaW5NYXhMZW5ndGg6IFwiw55hw7Agw6Z0dGkgYcOwIHZlcmEgZmxlaXJpIGVuIHswfSBvZyBmw6ZycmkgZW4gezF9IHTDoWtuLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIlZpbnNhbWxlZ2FzdCBmeWxsacOwIMO6ciBhw7AgbWlubnN0YSBrb3N0aSB7MH0gcmHDsGlyLlwiLFxuICBtaW5TZWxlY3RFcnJvcjogXCJWaW5zYW1sZWdhc3QgdmVsamnDsCBhw7AgbWlubnN0YSBrb3N0aSB7MH0gbcO2Z3VsZWlrYS5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiVmluc2FtbGVnYXN0IHZlbGppw7AgZWtraSBmbGVpcmkgZW4gezB9IG3Dtmd1bGVpa2EuXCIsXG4gIG51bWVyaWNNaW5NYXg6XG4gICAgXCInezB9JyDDpnR0aSBhw7AgdmVyYSBtZWlyYSBlbiBlw7BhIGphZm50IG9nIHsxfSBtaW5uYSBlbiBlw7BhIGphZm50IG9nIHsyfVwiLFxuICBudW1lcmljTWluOiBcInswfScgw6Z0dGkgYcOwIHZlcmEgbWVpcmEgZW4gZcOwYSBqYWZudCBvZyB7MX1cIixcbiAgbnVtZXJpY01heDogXCInezB9JyDDpnR0aSBhw7AgdmVyYSBtaW5uYSBlbiBlw7BhIGphZm50IG9nIHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwiVmluc2FtbGVnYXN0IHNsw6Fpw7AgaW5uIGdpbHQgbmV0ZmFuZy5cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIkJlacOwbmlubiBza2lsYcOwaSBlZnRpcmZhcmFuYWRpIHZpbGx1ICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOiBcIkJlacOwbmlubmcgc2tpbGHDsGkgZW5ndW0gZ8O2Z251bSBlw7BhIHNsw7PDsGlubiB2YXIgcsO2bmdcIixcbiAgZXhjZWVkTWF4U2l6ZTogXCJTa3LDoWlubiBza2FsIGVra2kgdmVyYSBzdMOmcnJpIGVuIHswfS5cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiBcIlZpbmFtbGVnYXN0IGZ5bGxpw7Agw7p0IGhpdHQgZ2lsZGnDsC5cIixcbiAgdXBsb2FkaW5nRmlsZTpcbiAgICBcIlNrcsOhaW5uIMO+w61uIHZhciBzZW5kLiBWaW5zYW1sZWdhc3QgYsOtw7Bpw7Agw60gbm9ra3JhciBzZWvDum5kdXIgb2cgcmV5bmnDsCBhZnR1ci5cIixcbiAgYWRkUm93OiBcIkLDpnRhIHZpw7AgcsO2w7BcIixcbiAgcmVtb3ZlUm93OiBcIkZqYXJsw6ZnamFcIixcbiAgY2hvaWNlc19maXJzdEl0ZW06IFwiZnlyc3RpIGhsdXR1clwiLFxuICBjaG9pY2VzX3NlY29uZEl0ZW06IFwiYW5uYXIgaGx1dHVyXCIsXG4gIGNob2ljZXNfdGhpcmRJdGVtOiBcIsO+cmnDsGppIGhsdXR1clwiLFxuICBtYXRyaXhfY29sdW1uOiBcIkTDoWxrdXJcIixcbiAgbWF0cml4X3JvdzogXCJSw7bDsFwiXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcImlzXCJdID0gaWNlbGFuZGljU3VydmV5U3RyaW5ncztcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVOYW1lc1tcImlzXCJdID0gXCLDrXNsZW5za2FcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vaWNlbGFuZGljLnRzIiwiaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBpbmRvbmVzaWFuU3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIlNlYmVsdW1ueWFcIixcbiAgcGFnZU5leHRUZXh0OiBcIlNlbGFuanV0bnlhXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJTZWxlc2FpXCIsXG4gIHN0YXJ0U3VydmV5VGV4dDogXCJNdWxhaVwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIkxhaW5ueWEgKGplbGFza2FuKVwiLFxuICBub25lSXRlbVRleHQ6IFwiVGlkYWsgQWRhXCIsXG4gIHNlbGVjdEFsbEl0ZW1UZXh0OiBcIlBpbGloIFNlbXVhXCIsXG4gIHByb2dyZXNzVGV4dDogXCJIYWxhbWFuIHswfSBkYXJpIHsxfVwiLFxuICBlbXB0eVN1cnZleTogXCJUaWRhayBhZGEgaGFsYW1hbiBhdGF1IHBlcnRhbnlhYW4gZGFsYW0gc3VydmVpLlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIlRlcmltYSBrYXNpaCB0ZWxhaCBtZW55ZWxlc2Fpa2FuIHN1cnZlaSFcIixcbiAgY29tcGxldGluZ1N1cnZleUJlZm9yZTpcbiAgICBcIkNhdGF0YW4ga2FtaSBtZW51bmp1a2thbiBiYWh3YSBBbmRhIHRlbGFoIG1lbnllbGVzYWlrYW4gc3VydmVpIGluaS5cIixcbiAgbG9hZGluZ1N1cnZleTogXCJNZW11YXQgc3VydmVpLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIlBpbGloLi4uXCIsXG4gIHZhbHVlOiBcIm5pbGFpXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwiU2lsYWhrYW4gamF3YWIgcGVydGFueWFhbiBiZXJpa3V0LlwiLFxuICByZXF1aXJlZEVycm9ySW5QYW5lbDogXCJTaWxhaGthbiBqYXdhYiBzZXRpZGFrbnlhIHNhdHUgcGV0YW55YWFuLlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIlNpbGFoa2FuIGphd2FiIHBlcnRhbnlhYW4gcGFkYSBzZW11YSBiYXJpcy5cIixcbiAgbnVtZXJpY0Vycm9yOiBcIk5pbGFpIGhhcnVzIGJlcnVwYSBhbmdrYS5cIixcbiAgdGV4dE1pbkxlbmd0aDogXCJTaWxhaGthbiBtYXN1a2thbiBzZXRpZGFrbnlhIHswfSBrYXJha3Rlci5cIixcbiAgdGV4dE1heExlbmd0aDogXCJTaWxhaGthbiBtYXN1a2thbiBrdXJhbmcgezB9IGthcmFrdGVyLlwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcIlBTaWxhaGthbiBtYXN1a2thbiBsZWJpaCBkYXJpIHswfSBkYW4ga3VyYW5nIGRhcmkgezF9IGthcmFrdGVyLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIlNpbGFoa2FuIGlzaSBzZXRpZGFrbnlhIHswfSBiYXJpcy5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiU2lsYWhrYW4gcGlsaWggc2V0aWRha255YSB7MH0gdmFyaWFuLlwiLFxuICBtYXhTZWxlY3RFcnJvcjogXCJTaWxhaGthbiBwaWxpaCB0aWRhayBsZWJpaCBkYXJpIHswfSB2YXJpYW4uXCIsXG4gIG51bWVyaWNNaW5NYXg6IFwiJ3swfScgaGFydXMgc2FtYSBkZW5nYW4gYXRhdSBsZWJpaCBkYXJpIHsxfSBkYW4gaGFydXMgc2FtYSBkZW5nYW4gYXRhdSBrdXJhbmcgZGFyaSB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCInezB9JyBoYXJ1cyBzYW1hIGRlbmdhbiBhdGF1IGxlYmloIGRhcmkgezF9XCIsXG4gIG51bWVyaWNNYXg6IFwiJ3swfScgaGFydXMgc2FtYSBkZW5nYW4gYXRhdSBrdXJhbmcgZGFyaSB7MX1cIixcbiAgaW52YWxpZEVtYWlsOiBcIlNpbGFoa2FuIG1hc3Vra2FuIGUtbWFpbCB5YW5nIGJlbmFyLlwiLFxuICBpbnZhbGlkRXhwcmVzc2lvbjogXCJFa3NwcmVzaTogezB9IGhhcnVzIG1lbmdlbWJhbGlrYW4gJ2JlbmFyJy5cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIlBlcm1pbnRhYW4gbWVuZ2VtYmFsaWthbiBrZXNhbGFoYW4gJ3swfScuIHsxfVwiLFxuICB1cmxHZXRDaG9pY2VzRXJyb3I6IFwiUGVybWludGFhbiBtZW5nZW1iYWxpa2FuIGRhdGEga29zb25nIGF0YXUgcHJvcGVydGkgJ3BhdGgnIHNhbGFoLlwiLFxuICBleGNlZWRNYXhTaXplOiBcIlVrdXJhbiBiZXJrYXMgdGlkYWsgYm9sZWggbWVsZWJpaGkgezB9LlwiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwiU2lsYWhrYW4gbWFzdWtrYW4gbmlsYWkgbGFpbm5ueWEuXCIsXG4gIHVwbG9hZGluZ0ZpbGU6IFwiQmVya2FzIEFuZGEgc2VkYW5nIGRpdW5nZ2FoLiBTaWxhaGthbiB0dW5nZ3UgYmViZXJhcGEgc2FhdCBhdGF1IGNvYmEgbGFnaS5cIixcbiAgbG9hZGluZ0ZpbGU6IFwiTWVtdWF0Li4uXCIsXG4gIGNob29zZUZpbGU6IFwiUGlsaWggYmVya2FzLi4uXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwiQXBha2FoIEFuZGEgaW5naW4gbWVuZ2hhcHVzIGNhdGF0YW4/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiTmlsYWkgaGFydXMgdW5pay5cIixcbiAgYWRkQ29sdW1uOiBcIlRhbWJhaCBrb2xvbVwiLFxuICBhZGRSb3c6IFwiVGFtYmFoIGJhcmlzXCIsXG4gIHJlbW92ZVJvdzogXCJIYXB1c1wiLFxuICBhZGRQYW5lbDogXCJUYW1iYWggYmFydVwiLFxuICByZW1vdmVQYW5lbDogXCJIYXB1c1wiLFxuICBjaG9pY2VzX0l0ZW06IFwiaXRlbVwiLFxuICBtYXRyaXhfY29sdW1uOiBcIktvbG9tXCIsXG4gIG1hdHJpeF9yb3c6IFwiQmFyaXNcIixcbiAgc2F2aW5nRGF0YTogXCJIYXNpbCBzZWRhbmcgZGlzaW1wYW4gcGFkYSBzZXJ2ZXIuLi5cIixcbiAgc2F2aW5nRGF0YUVycm9yOiBcIktlc2FsYWhhbiB0ZXJqYWRpIGRhbiBrYW1pIHRpZGFrIGRhcGF0IG1lbnlpbXBhbiBoYXNpbC5cIixcbiAgc2F2aW5nRGF0YVN1Y2Nlc3M6IFwiSGFzaWwgdGVsYWggc3Vrc2VzIGRpc2ltcGFuIVwiLFxuICBzYXZlQWdhaW5CdXR0b246IFwiQ29iYSBsYWdpXCIsXG4gIHRpbWVyTWluOiBcIm1lbml0XCIsXG4gIHRpbWVyU2VjOiBcImRldGlrXCIsXG4gIHRpbWVyU3BlbnRBbGw6IFwiQW5kYSB0ZWxhaCBtZW5naGFiaXNrYW4gezB9IHBhZGEgaGFsYW1hbiBpbmkgZGFuIHsxfSBzZWNhcmEga2VzZWx1cnVoYW4uXCIsXG4gIHRpbWVyU3BlbnRQYWdlOiBcIllBbmRhIHRlbGFoIG1lbmdoYWJpc2thbiB7MH0gcGFkYSBoYWxhbWFuIGluaS5cIixcbiAgdGltZXJTcGVudFN1cnZleTogXCJBbmRhIHRlbGFoIG1lbmdoYWJpc2thbiB7MH0gc2VjYXJhIGtlc2VsdXJ1aGFuLlwiLFxuICB0aW1lckxpbWl0QWxsOlxuICAgIFwiQW5kYSB0ZWxhaCBtZW5naGFiaXNrYW4gezB9IGRhcmkgezF9IHBhZGEgaGFsYW1hbiBpbmkgZGFuIHsyfSBkYXJpIHszfSBzZWNhcmEga2VzZWx1cnVoYW4uXCIsXG4gIHRpbWVyTGltaXRQYWdlOiBcIkFuZGEgdGVsYWggbWVuZ2hhYmlza2FuIHswfSBkYXJpIHsxfSBwYWRhIGhhbGFtYW4gaW5pLlwiLFxuICB0aW1lckxpbWl0U3VydmV5OiBcIkFuZGEgdGVsYWggbWVuZ2hhYmlza2FuIHswfSBkYXJpIHsxfSBzZWNhcmEga2VzZWx1cnVoYW4uXCIsXG4gIGNsZWFuQ2FwdGlvbjogXCJCZXJzaWhrYW5cIixcbiAgY2xlYXJDYXB0aW9uOiBcIkJlcnNpaGthblwiLFxuICByZW1vdmVGaWxlQ2FwdGlvbjogXCJIYXB1cyBiZXJrYXMgaW5pXCJcbn07XG5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiaWRcIl0gPSBpbmRvbmVzaWFuU3RyaW5ncztcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVOYW1lc1tcImlkXCJdID0gXCJCYWhhc2EgSW5kb25lc2lhXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYWxpemF0aW9uL2luZG9uZXNpYW4udHMiLCJpbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vc3VydmV5U3RyaW5nc1wiO1xuXG5leHBvcnQgdmFyIGl0YWxpYW5TdXJ2ZXlTdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwiUHJlY2VkZW50ZVwiLFxuICBwYWdlTmV4dFRleHQ6IFwiU3VjY2Vzc2l2b1wiLFxuICBjb21wbGV0ZVRleHQ6IFwiU2FsdmFcIixcbiAgc3RhcnRTdXJ2ZXlUZXh0OiBcIkluaXppb1wiLFxuICBvdGhlckl0ZW1UZXh0OiBcIkFsdHJvIChkZXNjcml2aSlcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIlBhZ2luYSB7MH0gZGkgezF9XCIsXG4gIGVtcHR5U3VydmV5OiBcIk5vbiBjaSBzb25vIHBhZ2luZSBvIGRvbWFuZGUgdmlzaWJpbGkgbmVsIHF1ZXN0aW9uYXJpby5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJHcmF6aWUgcGVyIGF2ZXIgY29tcGxldGF0byBpbCBxdWVzdGlvbmFyaW8hXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXlCZWZvcmU6XCJJIG5vc3RyaSByZWNvcmRzIG1vc3RyYW5vIGNoZSBoYWkgZ2nDoCBjb21wbGV0YXRvIHF1ZXN0byBxdWVzdGlvbmFyaW8uXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwiQ2FyaWNhbWVudG8gZGVsIHF1ZXN0aW9uYXJpbyBpbiBjb3Jzby4uLlwiLFxuICBvcHRpb25zQ2FwdGlvbjogXCJTY2VnbGkuLi5cIixcbiAgdmFsdWU6IFwidmFsb3JlXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwiQ2FtcG8gb2JibGlnYXRvcmlvXCIsXG4gIHJlcXVpcmVkRXJyb3JJblBhbmVsOiBcIlBlciBGYXZvcmUsIHJpc3BvbmRpIGFkIGFsbWVubyB1bmEgZG9tYW5kYS5cIixcbiAgcmVxdWlyZWRJbkFsbFJvd3NFcnJvcjogXCJDb21wbGV0YXJlIHR1dHRlIGxlIHJpZ2hlXCIsXG4gIG51bWVyaWNFcnJvcjogXCJJbCB2YWxvcmUgZGV2ZSBlc3NlcmUgbnVtZXJpY29cIixcbiAgdGV4dE1pbkxlbmd0aDogXCJJbnNlcmlyZSBhbG1lbm8gezB9IGNhcmF0dGVyaVwiLFxuICB0ZXh0TWF4TGVuZ3RoOiBcIkx1bmdoZXp6YSBtYXNzaW1hIGNvbnNlbnRpdGEgezB9IGNhcmF0dGVyaVwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOlxuICAgIFwiSW5zZXJpcmUgdW5hIHN0cmluZ2EgY29uIG1pbmltbyB7MH0gZSBtYXNzaW1vIHsxfSBjYXJhdHRlcmlcIixcbiAgbWluUm93Q291bnRFcnJvcjogXCJDb21wbGV0YXJlIGFsbWVubyB7MH0gcmlnaGUuXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIlNlbGV6aW9uYXJlIGFsbWVubyB7MH0gdmFyaWFudGkuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIlNlbGV6aW9uYXJlIG1hc3NpbW8gezB9IHZhcmlhbnRpLlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwiJ3swfScgZGV2ZSBlc3NlcmUgdWd1YWxlIG8gc3VwZXJpb3JlIGEgezF9IGUgdWd1YWxlIG8gaW5mZXJpb3JlIGEgezJ9XCIsXG4gIG51bWVyaWNNaW46IFwiJ3swfScgZGV2ZSBlc3NlcmUgdWd1YWxlIG8gc3VwZXJpb3JlIGEgezF9XCIsXG4gIG51bWVyaWNNYXg6IFwiJ3swfScgZGV2ZSBlc3NlcmUgdWd1YWxlIG8gaW5mZXJpb3JlIGEgezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJJbnNlcmlyZSBpbmRpcml6em8gbWFpbCB2YWxpZG9cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIkxhIHJpY2hpZXN0YSBoYSByaXNwb3N0byBjb24gdW4gZXJyb3JlICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwiTGEgcmljaGllc3RhIGhhIHJpc3Bvc3RvIG51bGwgb3BwdXJlIGlsIHBlcmNvcnNvIG5vbiDDqCBjb3JyZXR0b1wiLFxuICBleGNlZWRNYXhTaXplOiBcIklsIGZpbGUgbm9uIHB1w7IgZWNjZWRlcmUgezB9XCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJJbnNlcmlyZSBpbCB2YWxvcmUgJ2FsdHJvJ1wiLFxuICB1cGxvYWRpbmdGaWxlOiBcIkZpbGUgaW4gY2FyaWNhbWVudG8uIEF0dGVuZGkgYWxjdW5pIHNlY29uZGkgZSByaXByb3ZhXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwiU2VpIHNpY3VybyBkaSB2b2xlciBlbG1pbmFyZSBpbCByZWNvcmQ/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiUXVlc3RvIHZhbG9yZSBkZXZlIGVzc2VyZSB1bml2b2NvLlwiLFxuICBhZGRSb3c6IFwiQWdnaXVuZ2kgcmlnYVwiLFxuICByZW1vdmVSb3c6IFwiUmltdW92aSByaWdhXCIsXG4gIGFkZFBhbmVsOiBcIkFnZ2l1bmdpIHJpZ2FcIixcbiAgcmVtb3ZlUGFuZWw6IFwiRWxpbWluYVwiLFxuICBjaG9pY2VzX0l0ZW06IFwiRWxlbWVudG9cIixcbiAgbWF0cml4X2NvbHVtbjogXCJDb2xvbm5hXCIsXG4gIG1hdHJpeF9yb3c6IFwiUmlnYVwiLFxuICBzYXZpbmdEYXRhOiBcIlNhbHZhdGFnZ2lvIGRhdGkgc3VsIHNlcnZlci4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwiU2kgw6ggdmVyaWZpY2F0byB1biBlcnJvcmUgZSBub24gw6ggc3RhdG8gcG9zc2liaWxlIHNhbHZhcmUgaSByaXN1bHRhdGkuXCIsXG4gIHNhdmluZ0RhdGFTdWNjZXNzOiBcIkkgcmlzdWx0YXRpIHNvbm8gc3RhdGkgc2FsdmF0aSBjb24gc3VjY2Vzc28hXCIsXG4gIHNhdmVBZ2FpbkJ1dHRvbjogXCJSaXByb3ZhXCIsXG4gIHRpbWVyTWluOiBcIm1pblwiLFxuICB0aW1lclNlYzogXCJzZWNcIixcbiAgdGltZXJTcGVudEFsbDogXCJIYWkgaW1waWVnYXRvIHswfSBzdSBxdWVzdGEgcGFnaW5hIGUgezF9IGluIHRvdGFsZS5cIixcbiAgdGltZXJTcGVudFBhZ2U6IFwiSGFpIGltcGllZ2F0byB7MH0gc3UgcXVlc3RhIHBhZ2luYS5cIixcbiAgdGltZXJTcGVudFN1cnZleTogXCJIYWkgaW1waWVnYXRvIHswfSBpbiB0b3RhbGUuXCIsXG4gIHRpbWVyTGltaXRBbGw6XG4gICAgXCJIYWkgaW1waWVnYXRvIHswfSBkaSB7MX0gc3UgcXVlc3RhIHBhZ2luYSBlIHsyfSBkaSB7M30gaW4gdG90YWxlLlwiLFxuICB0aW1lckxpbWl0UGFnZTogXCJIYWkgaW1waWVnYXRvIHswfSBkaSB7MX0gc3UgcXVlc3RhIHBhZ2luYS5cIixcbiAgdGltZXJMaW1pdFN1cnZleTogXCJIYWkgaW1waWVnYXRvIHswfSBkaSB7MX0gaW4gdG90YWxlLlwiLFxuICBjbGVhbkNhcHRpb246IFwiUHVsaXNjaVwiXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcIml0XCJdID0gaXRhbGlhblN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJpdFwiXSA9IFwiaXRhbGlhbm9cIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vaXRhbGlhbi50cyIsIi8vIFVuY29tbWVudCB0aGlzIGxpbmUgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlXHJcbmltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XHJcblxyXG5leHBvcnQgdmFyIGphcGFuZXNlU3VydmV5U3RyaW5ncyA9IHtcclxuICBwYWdlUHJldlRleHQ6IFwi5YmN44GuXCIsXHJcbiAgcGFnZU5leHRUZXh0OiBcIuasoeOBuFwiLFxyXG4gIGNvbXBsZXRlVGV4dDogXCLlrozkuoZcIixcclxuICBzdGFydFN1cnZleVRleHQ6IFwi44K544K/44O844OIXCIsXHJcbiAgb3RoZXJJdGVtVGV4dDogXCLjgZ3jga7ku5bvvIjoqqzmmI7vvIlcIixcclxuICBub25lSXRlbVRleHQ6IFwi44Gq44GXXCIsXHJcbiAgc2VsZWN0QWxsSXRlbVRleHQ6IFwi44GZ44G544Gm6YG45oqeXCIsXHJcbiAgcHJvZ3Jlc3NUZXh0OiBcInswfS97MX3poIFcIixcclxuICBlbXB0eVN1cnZleTogXCLjgZPjga7oqr/mn7vjgavooajnpLrjgafjgY3jgovjg5rjg7zjgrjjgoTos6rllY/jga/jgYLjgorjgb7jgZvjgpNcIixcclxuICBjb21wbGV0aW5nU3VydmV5OiBcIuiqv+afu+OCkuWujOS6huOBl+OBpuOBj+OCjOOBpuOBguOCiuOBjOOBqOOBhuOBlOOBluOBhOOBvuOBl+OBn1wiLFxyXG4gIGxvYWRpbmdTdXJ2ZXk6IFwi6Kq/5p+744KS44OA44Km44Oz44Ot44O844OJ5LitXCIsXHJcbiAgb3B0aW9uc0NhcHRpb246IFwi6YG45oqeXCIsXHJcbiAgcmVxdWlyZWRFcnJvcjogXCLos6rllY/jgavjgYrnrZTjgYjkuIvjgZXjgYRcIixcclxuICBudW1lcmljRXJyb3I6IFwi5pWw5a2X44Gn44GU6KiY5YWl5LiL44GV44GEXCIsXHJcbiAgdGV4dE1pbkxlbmd0aDogXCJ7MH0g5paH5a2X5Lul5LiK44Gn5YWl5Yqb44GX44Gm5LiL44GV44GEXCIsXHJcbiAgbWluUm93Q291bnRFcnJvcjogXCJ7MH3ooYzku6XkuIrjgaflhaXlipvjgZfjgabkuIvjgZXjgYRcIixcclxuICBtaW5TZWxlY3RFcnJvcjogXCJ7MH3nqK7poZ7ku6XkuIrjgpLpgbjmip7jgZfjgabkuIvjgZXjgYRcIixcclxuICBudW1lcmljTWluOiBcIid7MH0nIOOBr+WQjOetieOBi3sxfeOCiOOCiuWkp+OBjeOBj+OBquOBkeOCjOOBsOOBquOCiuOBvuOBm+OCk1wiLFxyXG4gIG51bWVyaWNNYXg6IFwiJ3swfScg44Gv5ZCM562J44GLezF944KI44KK5bCP44GV44GP44Gq44GR44KM44Gw44Gq44KK44G+44Gb44KTXCIsXHJcbiAgaW52YWxpZEVtYWlsOiBcIuacieWKueOBquODoeODvOODq+OCouODieODrOOCueOCkuOBlOiomOWFpeS4i+OBleOBhFwiLFxyXG4gIGV4Y2VlZE1heFNpemU6IFwi44OV44Kh44Kk44Or44Gu44K144Kk44K644GvezB944KS6LaF44GI44Gm44Gv44GE44GR44G+44Gb44KTXCIsXHJcbiAgdXBsb2FkaW5nRmlsZTpcclxuICAgIFwi44OV44Kh44Kk44Or44KS44Ki44OD44OX44Ot44O844OJ5Lit44Gn44GZ44CC44GX44Gw44KJ44GP44GX44Gm44GL44KJ5YaN5bqm44GK6Kmm44GX5LiL44GV44GEXCIsXHJcbiAgbG9hZGluZ0ZpbGU6IFwi6Kqt44G/6L6844G/5LitXCIsXHJcbiAgY2hvb3NlRmlsZTogXCLjg5XjgqHjgqTjg6vjgpLpgbjmip5cIixcclxuICBjbGVhbkNhcHRpb246IFwi5YmK6ZmkXCIsXHJcbiAgY2xlYXJDYXB0aW9uOiBcIuepuueZvVwiLFxyXG4gIHJlbW92ZUZpbGVDYXB0aW9uOiBcIuOBk+OBruODleOCoeOCpOODq+OCkuWJiumZpFwiXHJcbn07XHJcblxyXG4vL1VuY29tbWVudCB0aGVzZSB0d28gbGluZXMgb24gY3JlYXRpbmcgYSB0cmFuc2xhdGlvbiBmaWxlLiBZb3Ugc2hvdWxkIHJlcGxhY2UgXCJlblwiIGFuZCBlblN0cmluZ3Mgd2l0aCB5b3VyIGxvY2FsZSAoXCJmclwiLCBcImRlXCIgYW5kIHNvIG9uKSBhbmQgeW91ciB2YXJpYWJsZS5cclxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJqYVwiXSA9IGphcGFuZXNlU3VydmV5U3RyaW5ncztcclxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wiamFcIl0gPSBcIuaXpeacrOiqnlwiO1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYWxpemF0aW9uL2phcGFuZXNlLnRzIiwiaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBrb3JlYW5TdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwi7J207KCEXCIsXG4gIHBhZ2VOZXh0VGV4dDogXCLri6TsnYxcIixcbiAgY29tcGxldGVUZXh0OiBcIuyZhOujjFwiLFxuICBzdGFydFN1cnZleVRleHQ6IFwi7Iuc7J6RXCIsXG4gIG90aGVySXRlbVRleHQ6IFwi6riw7YOAKOyEpOuqhSlcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIu2OmOydtOyngCB7MX0g7KSRIHswfVwiLFxuICBlbXB0eVN1cnZleTogXCLshKTrrLjsp4Dsl5Ag67O07Jes7KeA64qUIO2OmOydtOyngOuCmCDsp4jrrLjsnbQg7JeG7Iq164uI64ukXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXk6IFwi7ISk66y4IOyhsOyCrOulvCDsmYTro4ztlbQg7KO87IWU7IScIOqwkOyCrO2VqeuLiOuLpCFcIixcbiAgY29tcGxldGluZ1N1cnZleUJlZm9yZTogXCLquLDroZ3sl5Ag65Sw66W066m0IOydtOuvuCDshKTrrLgg7KGw7IKs66W8IOuniOy5mOyFqOyKteuLiOuLpC5cIixcbiAgbG9hZGluZ1N1cnZleTogXCLshKTrrLjsobDsgqzqsIAg66Gc65Oc7KSR7J6F64uI64ukLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIuyEoO2Dne2VmOyLreyLnOyYpC4uLlwiLFxuICB2YWx1ZTogXCLqsJJcIixcbiAgcmVxdWlyZWRFcnJvcjogXCLsp4jrrLjsl5Ag64u17ZWY7Iuc7JikLlwiLFxuICByZXF1aXJlZEVycm9ySW5QYW5lbDogXCLtlZjrgpgg7J207IOB7J2YIOyniOusuOyXkCDri7XtlZjsi63si5zsmKQuXCIsXG4gIHJlcXVpcmVkSW5BbGxSb3dzRXJyb3I6IFwi66qo65OgIO2WieyXkCDsnojripQg7KeI66y47JeQIOuLte2VmOyLreyLnOyYpC5cIixcbiAgbnVtZXJpY0Vycm9yOiBcIuqwkuydgCDsiKvsnpDsl6zslbwg7ZWp64uI64ukLlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIuuLteuzgOydmCDquLjsnbTripQg7LWc7IaMIHswfeyekOyXrOyVvCDsnoXri4jri6QuXCIsXG4gIHRleHRNYXhMZW5ndGg6IFwi64u167OA7J2YIOq4uOydtOuKlCB7MH3snpDrpbwg7LSI6rO8IO2VoCDsiJgg7JeG7Iq164uI64ukLlwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcIuuLteuzgOydmCDquLjsnbTripQgezB9IC0gezF97J6QIOyCrOydtOyXrOyVvCDtlanri4jri6QuXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwi7LWc7IaMIHswfeqwnOydmCDtlonsnYQg7LGE7Jqw7Iut7Iuc7JikXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIuy1nOyGjCB7MH3qsJzsnZgg67OA7IiY66W8IOyEoO2Dne2VmOyLreyLnOyYpC5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwi7LWc64yAIHswfeqwnOydmCDrs4DsiJjrpbwg7ISg7YOd7ZWY7Iut7Iuc7JikLlwiLFxuICBudW1lcmljTWluTWF4OiBcIid7MH0n7J2AIHsxfeuztOuLpCDtgazqsbDrgpgg6rCZ6rOgIHsyfeuztOuLpCDsnpHqsbDrgpgg6rCZ7JWE7JW87ZWp64uI64ukLlwiLFxuICBudW1lcmljTWluOiBcIid7MH0n7J2AIHsxfeuztOuLpCDtgazqsbDrgpgg6rCZ7JWE7JW87ZWp64uI64ukLlwiLFxuICBudW1lcmljTWF4OiBcIid7MH0n7J2AIHsxfeuztOuLpCDsnpHqsbDrgpgg6rCZ7JWE7JW87ZWp64uI64ukLlwiLFxuICBpbnZhbGlkRW1haWw6IFwi7Jis67CU66W4IOydtOuplOydvCDso7zshozrpbwg7J6F66Cl7ZWY7Iut7Iuc7JikLlwiLFxuICBpbnZhbGlkRXhwcmVzc2lvbjogXCLtkZztmITsi506IHswfeydgCAn7LC4J+ydtOyWtOyVvCDtlanri4jri6QuXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCInezB9J+ycvOuhnCDsnpjrqrvrkJwg7JqU7LKt7J6F64uI64ukLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOiBcIuu5hOyWtOyeiOuKlCDrjbDsnbTthLDrpbwg7JqU7LKt7ZaI6rGw64KYIOyemOuqu+uQnCDsho3shLHsnZgg6rK966Gc7J6F64uI64ukLlwiLFxuICBleGNlZWRNYXhTaXplOiBcIu2MjOydvCDtgazquLDqsIAgezB97J2EIOy0iOqzvCDtlaAg7IiYIOyXhuyKteuLiOuLpC5cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiBcIuuLpOuluCDsp4jrrLjsnYQg7J6R7ISx7ZWY7Iut7Iuc7JikLlwiLFxuICB1cGxvYWRpbmdGaWxlOiBcIu2MjOydvCDsl4XroZzrk5wg7KSR7J6F64uI64ukLiDsnqDsi5wg7ZuEIOuLpOyLnCDsi5zrj4TtlZjsi63si5zsmKQuXCIsXG4gIGxvYWRpbmdGaWxlOiBcIuuhnOuTnCDspJEuLi5cIixcbiAgY2hvb3NlRmlsZTogXCLtjIzsnbwg7ISg7YOdLi4uXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwi6riw66Gd7J2EIOyCreygnO2VmOyLnOqyoOyKteuLiOq5jD9cIixcbiAga2V5RHVwbGljYXRpb25FcnJvcjogXCIg7J20IOqwkuydgCDqs6DsnKDtlbTslbztlanri4jri6QuXCIsXG4gIGFkZENvbHVtbjogXCLsl7Qg7LaU6rCAXCIsXG4gIGFkZFJvdzogXCLtlokg7LaU6rCAXCIsXG4gIHJlbW92ZVJvdzogXCLsoJzqsbBcIixcbiAgYWRkUGFuZWw6IFwi7IOI66Gt6rKMIOy2lOqwgFwiLFxuICByZW1vdmVQYW5lbDogXCLsoJzqsbBcIixcbiAgY2hvaWNlc19JdGVtOiBcIu2VreuqqVwiLFxuICBtYXRyaXhfY29sdW1uOiBcIuyXtFwiLFxuICBtYXRyaXhfcm93OiBcIu2WiVwiLFxuICBzYXZpbmdEYXRhOiBcIuqysOqzvOqwgCDshJzrsoTsl5Ag7KCA7J6lIOykkeyeheuLiOuLpC4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwi7Jik66WY6rCAIOuwnOyDne2VmOyXrCDqsrDqs7zrpbwg7KCA7J6l7ZWgIOyImCDsl4bsirXri4jri6QuXCIsXG4gIHNhdmluZ0RhdGFTdWNjZXNzOiBcIuqysOqzvOqwgCDshLHqs7XsoIHsnLzroZwg7KCA7J6l65CY7JeI7Iq164uI64ukIVwiLFxuICBzYXZlQWdhaW5CdXR0b246IFwi64uk7IucIOyLnOuPhO2VmOyLreyLnOyYpFwiLFxuICB0aW1lck1pbjogXCLrtoRcIixcbiAgdGltZXJTZWM6IFwi7LSIXCIsXG4gIHRpbWVyU3BlbnRBbGw6IFwi7ZiE7J6sIO2OmOydtOyngOyXkOyEnCB7MH3snYQg7IaM7JqU7ZW0IOy0nSB7MX3snbQg6rG466C47Iq164uI64ukLlwiLFxuICB0aW1lclNwZW50UGFnZTogXCLtmITsnqwg7Y6Y7J207KeA7JeQ7IScIHswXeydtCDqsbjroLjsirXri4jri6RcIixcbiAgdGltZXJTcGVudFN1cnZleTogXCLstJ0gezB97J20IOqxuOuguOyKteuLiOuLpC5cIixcbiAgdGltZXJMaW1pdEFsbDogXCLtmITsnqwg7Y6Y7J207KeA7JeQ7IScIHswfS97MX3snYQg7IaM7JqU7ZW0IOy0nSB7Mn0vezN97J20IOqxuOuguOyKteuLiOuLpC5cIixcbiAgdGltZXJMaW1pdFBhZ2U6IFwi7ZiE7J6sIO2OmOydtOyngOyXkOyEnCB7MH0vezF97J20IOqxuOuguOyKteuLiOuLpC5cIixcbiAgdGltZXJMaW1pdFN1cnZleTogXCLstJ0gezB9L3sxfeydtCDqsbjroLjsirXri4jri6QuXCIsXG4gIGNsZWFuQ2FwdGlvbjogXCLri6bquLBcIixcbiAgY2xlYXJDYXB0aW9uOiBcIuyngOyasOq4sFwiXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcImtvXCJdID0ga29yZWFuU3RyaW5ncztcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVOYW1lc1tcImtvXCJdID0gXCLtlZzqta3slrRcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24va29yZWFuLnRzIiwiaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBsYXR2aWFuU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIkF0cGFrYcS8XCIsXG4gIHBhZ2VOZXh0VGV4dDogXCJUxIFsxIFrXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJQYWJlaWd0XCIsXG4gIHByb2dyZXNzVGV4dDogXCJMYXBwdXNlIHswfSBubyB7MX1cIixcbiAgZW1wdHlTdXJ2ZXk6IFwiTmF2IG5ldmllbmEgamF1dMSBanVtYS5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJQYXRlaWNhbWllcyBKdW1zIHBhciBhbmtldGFzIGFpenBpbGTEq8WhYW51IVwiLFxuICBsb2FkaW5nU3VydmV5OiBcIkllbMSBZGUgbm8gc2VydmVyYS4uLlwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIkNpdHMgKGzFq2R6dSwgYXByYWtzdGlldCEpXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIkl6dsSTbMSTdGllcy4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIkzFq2R6dSwgYXRiaWxkaWV0IHV6IGphdXTEgWp1bXUhXCIsXG4gIG51bWVyaWNFcnJvcjogXCJBdGJpbGRlaSBpciBqxIFixat0IHNrYWl0bGltLlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIkzFq2R6dSwgaWV2YWRpZXQgdmlzbWF6IHswfSBzaW1ib2x1cy5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiTMWrZHp1LCBpenbEk2xpZXRpZXMgdmlzbWF6IHswfSB2YXJpYW50dS5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiTMWrZHp1LCBpenbEk2xpZXRpZXMgbmUgdmFpcmFrIHBhciB7MH0gdmFyaWFudGllbS5cIixcbiAgbnVtZXJpY01pbk1heDpcbiAgICBcIid7MH0nIGrEgWLFq3QgdmllbsSBZGFtIHZhaSBsaWVsxIFrYW0gbmVrxIEgezF9LCB1biB2aWVuxIFkYW0gdmFpIG1hesSBa2FtLCBuZWvEgSB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCInezB9JyBqxIFixat0IHZpZW7EgWRhbSB2YWkgbGllbMSBa2FtIHsxfVwiLFxuICBudW1lcmljTWF4OiBcIid7MH0nIGrEgWLFq3QgdmllbsSBZGFtIHZhaSBsaWVsxIFrYW0gezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJMxatkenUsIGlldmFkaWV0IHBhdGllc3UgZS1wYXN0YSBhZHJlc2khXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogJ0zFq2R6dSwgaWV2YWRpZXQgZGF0dXMgbGF1a8SBIFwiQ2l0c1wiJ1xufTtcblxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJsdlwiXSA9IGxhdHZpYW5TdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wibHZcIl0gPSBcImxhdHZpZcWhdVwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi9sYXR2aWFuLnRzIiwiLy9VbmNvbW1lbnQgdGhpcyBsaW5lIG9uIGNyZWF0aW5nIGEgdHJhbnNsYXRpb24gZmlsZVxuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBsaXRodWFuaWFTdXJ2ZXlTdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwiQXRnYWxcIixcbiAgcGFnZU5leHRUZXh0OiBcIlRvbGlhdVwiLFxuICBjb21wbGV0ZVRleHQ6IFwiQmFpZ3RpXCIsXG4gIHN0YXJ0U3VydmV5VGV4dDogXCJQcmFkxJd0aVwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIktpdGEgKMSvdmVzdGkpXCIsXG4gIG5vbmVJdGVtVGV4dDogXCJOxJdyYVwiLFxuICBzZWxlY3RBbGxJdGVtVGV4dDogXCJQYXNpcmlua3RpIHZpc3VzXCIsXG4gIHByb2dyZXNzVGV4dDogXCJQdXNsYXBpcyB7MH0gacWhIHsxfVwiLFxuICBlbXB0eVN1cnZleTogXCJBcGtsYXVzb2plIG7El3JhIG1hdG9tbyBwdXNsYXBpbyBhciBrbGF1c2ltby5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJExJdrb2phbWUgdcW+IGRhbHl2YXZpbcSFIGFwa2xhdXNvamUhXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXlCZWZvcmU6XG4gICAgXCJNxatzxbMgxK9yYcWhYWkgcm9kbywga2FkIGphdSBhdGxpa290ZSDFoWnEhSBhcGtsYXVzxIUuXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwiUHJhxaFvbWUgcGFsYXVrdGkuLi5cIixcbiAgb3B0aW9uc0NhcHRpb246IFwiUGFzaXJpbmt0aS4uLlwiLFxuICB2YWx1ZTogXCJyZWlrxaFtxJdcIixcbiAgcmVxdWlyZWRFcnJvcjogXCJCxat0aW5hIGF0c2FreXRpIMSvIMWhxK8ga2xhdXNpbcSFLlwiLFxuICByZXF1aXJlZEVycm9ySW5QYW5lbDogXCJCxat0aW5hIGF0c2FreXRpIGJlbnQgxK8gdmllbsSFIGtsYXVzaW3EhS5cIixcbiAgcmVxdWlyZWRJbkFsbFJvd3NFcnJvcjogXCJQcmHFoW9tZSBhdHNha3l0aSDEryBrbGF1c2ltdXMgdmlzb3NlIGVpbHV0xJdzZS5cIixcbiAgbnVtZXJpY0Vycm9yOiBcIlR1cmkgYsWrdGkgc2thacSNaWFpLlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIlByYcWhb21lIHN1dmVzdGkgYmVudCB7MH0gc2ltYm9saXVzLlwiLFxuICB0ZXh0TWF4TGVuZ3RoOiBcIlByYcWhb21lIHN1dmVzdGkgbWHFvmlhdSBuZWkgezB9IHNpbWJvbGnFsy5cIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCJQcmHFoW9tZSBzdXZlc3RpIGRhdWdpYXUgbmVpIHswfSBpciBtYcW+aWF1IG5laSB7MX0gc2ltYm9sacWzLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIlByYcWhb21lIHN1dmVzdGkgbmUgbWHFvmlhdSBuZWkgezB9IGVpbHXEjWnFsy5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiUHJhxaFvbWUgcGFzaXJpbmt0aSBiZW50IHswfSB2YXJpYW50xbMuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIlBhc2lyaW5raXRlIG5lIGRhdWdpYXUga2FpcCB7MH0gdmFyaWFudHVzLlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwiJ3swfScgdHVyaSBixat0aSBseWd1cyBhcmJhIGRpZGVzbmlzIG5laSB7MX0gaXIgbHlndXMgYXJiYSBtYcW+ZXNuaXMgbmVpIHsyfVwiLFxuICBudW1lcmljTWluOiBcIid7MH0nIHR1csSXdMWzIGLFq3RpIGx5Z3VzIGFyYmEgZGlkZXNuaXMgbmVpIHsxfVwiLFxuICBudW1lcmljTWF4OiBcIid7MH0nIHR1csSXdMWzIGLFq3RpIGx5Z3VzIGFyIG1hxb5lc25pcyB1xb4gezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJQcmHFoW9tZSDEr3Zlc3RpIGdhbGlvamFudMSvIGVsZWt0cm9uaW5pbyBwYcWhdG8gYWRyZXPEhS5cIixcbiAgaW52YWxpZEV4cHJlc3Npb246IFwiUmVpa8WhbcSXOiB7MH0gdHVyaSBncsSFxb5pbnRpICd0cnVlJy5cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIlXFvmtsYXVzYSBncsSFxb5pbm8ga2xhaWTEhSd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwiVcW+a2xhdXNhIGdyxIXFvmlubyB0dcWhxI1pdXMgZHVvbWVuaXMgYXJiYSAncGF0aCcgc2F2eWLElyB5cmEgbmV0ZWlzaW5nYVwiLFxuICBleGNlZWRNYXhTaXplOiBcIkZhaWxvIGR5ZGlzIG5ldHVyaSB2aXLFoXl0aSB7MH0uXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCLErnZlc2tpdGUga2l0xIUgcmVpa8WhbcSZLlwiLFxuICB1cGxvYWRpbmdGaWxlOlxuICAgIFwiSsWrc8WzIGZhaWxhcyB5cmEga2VsaWFtYXMuIFBhbGF1a2l0ZSBrZWxldMSFIHNla3VuZMW+acWzIGlyIGJhbmR5a2l0ZSBkYXIga2FydMSFLlwiLFxuICBsb2FkaW5nRmlsZTogXCJQcmHFoW9tZSBwYWxhdWt0aS4uLlwiLFxuICBjaG9vc2VGaWxlOiBcIlBhc2lyaW5rdGkgZmFpbMSFKHVzKS4uLlwiLFxuICBjb25maXJtRGVsZXRlOiBcIkFyIG5vcml0ZSBpxaF0cmludGkgxK9yYcWhxIU/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwixaBpIHJlaWvFoW3ElyB0dXLEl3TFsyBixat0aSB1bmlrYWxpLlwiLFxuICBhZGRDb2x1bW46IFwiUHJpZMSXdGkgc3R1bHBlbMSvXCIsXG4gIGFkZFJvdzogXCJQcmlkxJd0aSBlaWx1dMSZXCIsXG4gIHJlbW92ZVJvdzogXCJJxaF0cmludGlcIixcbiAgYWRkUGFuZWw6IFwiUHJpZMSXdGkgbmF1asSFXCIsXG4gIHJlbW92ZVBhbmVsOiBcIknFoXRyaW50aVwiLFxuICBjaG9pY2VzX0l0ZW06IFwiZWxlbWVudGFzXCIsXG4gIG1hdHJpeF9jb2x1bW46IFwiU3R1bHBlbGlzXCIsXG4gIG1hdHJpeF9yb3c6IFwiRWlsdXTEl1wiLFxuICBzYXZpbmdEYXRhOiBcIlJlenVsdGF0YWkgc2F1Z29taSBzZXJ2ZXJ5amUuLi5cIixcbiAgc2F2aW5nRGF0YUVycm9yOiBcIsSudnlrbyBrbGFpZGEgaXIgbWVzIG5lZ2FsxJdqb21lIGnFoXNhdWdvdGkgcmV6dWx0YXTFsy5cIixcbiAgc2F2aW5nRGF0YVN1Y2Nlc3M6IFwiUmV6dWx0YXRhaSBidXZvIGnFoXNhdWdvdGkgc8SXa21pbmdhaSFcIixcbiAgc2F2ZUFnYWluQnV0dG9uOiBcIkJhbmR5dGkgZGFyIGthcnTEhVwiLFxuICB0aW1lck1pbjogXCJtaW5cIixcbiAgdGltZXJTZWM6IFwic2VrXCIsXG4gIHRpbWVyU3BlbnRBbGw6IFwiUHJhbGVpZG90ZSB7MH0gxaFpYW1lIHB1c2xhcHlqZSBpciB7MX0gacWhIHZpc28uXCIsXG4gIHRpbWVyU3BlbnRQYWdlOiBcIlByYWxlaWRvdGUgezB9IMWhaWFtZSBwdXNsYXB5amUuXCIsXG4gIHRpbWVyU3BlbnRTdXJ2ZXk6IFwiUHJhbGVpZG90ZSB7MH0gacWhIHZpc28uXCIsXG4gIHRpbWVyTGltaXRBbGw6XG4gICAgXCJQcmFsZWlkb3RlIHswfSBpxaEgezF9IMWhaWFtZSBwdXNsYXB5amUgaXIgezJ9IGnFoSB7M30gacWhIHZpc28uXCIsXG4gIHRpbWVyTGltaXRQYWdlOiBcIlByYWxlaWRvdGUgezB9IGnFoSB7MX0gxaFpYW1lIHB1c2xhcHlqZS5cIixcbiAgdGltZXJMaW1pdFN1cnZleTogXCJQcmFsZWlkb3RlIHswfSBpxaEgezF9IGnFoSB2aXNvLlwiLFxuICBjbGVhbkNhcHRpb246IFwiScWhdmFseXRpXCIsXG4gIGNsZWFyQ2FwdGlvbjogXCJWYWx5dGlcIixcbiAgcmVtb3ZlRmlsZUNhcHRpb246IFwiScWhdHJpbnRpIMWhxK8gZmFpbMSFXCJcbn07XG5cbi8vVW5jb21tZW50IHRoZXNlIHR3byBsaW5lcyBvbiBjcmVhdGluZyBhIHRyYW5zbGF0aW9uIGZpbGUuIFlvdSBzaG91bGQgcmVwbGFjZSBcImVuXCIgYW5kIGVuU3RyaW5ncyB3aXRoIHlvdXIgbG9jYWxlIChcImZyXCIsIFwiZGVcIiBhbmQgc28gb24pIGFuZCB5b3VyIHZhcmlhYmxlLlxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJsdFwiXSA9IGxpdGh1YW5pYVN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJsdFwiXSA9IFwiTGlldHV2acWzXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYWxpemF0aW9uL2xpdGh1YW5pYW4udHMiLCJpbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vc3VydmV5U3RyaW5nc1wiO1xuXG5leHBvcnQgdmFyIG5vcndlZ2lhblN1cnZleVN0cmluZ3MgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCJGb3JyaWdlXCIsXG4gIHBhZ2VOZXh0VGV4dDogXCJOZXN0ZVwiLFxuICBjb21wbGV0ZVRleHQ6IFwiRnVsbGbDuHJcIixcbiAgc3RhcnRTdXJ2ZXlUZXh0OiBcIlN0YXJ0XCIsXG4gIG90aGVySXRlbVRleHQ6IFwiQW5uZXQgKGJlc2tyaXYpXCIsXG4gIHByb2dyZXNzVGV4dDogXCJTaWRlIHswfSBhdiB7MX1cIixcbiAgZW1wdHlTdXJ2ZXk6IFwiRGV0IGVyIGluZ2VuIHN5bmxpZyBzaWRlIGVsbGVyIHNww7hyc23DpWwgaSB1bmRlcnPDuGtlbHNlbi5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJUYWtrIGZvciBhdCBkdSBmdWxsZsO4cnRlIHVuZGVyc8O4a2Vsc2VuIVwiLFxuICBjb21wbGV0aW5nU3VydmV5QmVmb3JlOlxuICAgIFwiVsOlcmUgZGF0YSB2aXNlciBhdCBkdSBhbGxlcmVkZSBoYXIgZ2plbm5vbWbDuHJ0IGRlbm5lIHVuZGVyc8O4a2Vsc2VuLlwiLFxuICBsb2FkaW5nU3VydmV5OiBcIlVuZGVyc8O4a2Vsc2VuIGxhc3Rlci4uLlwiLFxuICBvcHRpb25zQ2FwdGlvbjogXCJWZWxnLi4uXCIsXG4gIHZhbHVlOiBcInZlcmRpXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwiVmVubmxpZ3N0IHN2YXIgcMOlIHNww7hyc23DpWxldC5cIixcbiAgcmVxdWlyZWRFcnJvckluUGFuZWw6IFwiVmVubmxpZ3N0IHN2YXIgcMOlIG1pbnN0IGV0dCBzcMO4cnNtw6VsLlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIlZlbm5saWdzdCBzdmFyIHDDpSBzcMO4cnNtw6VsIGkgYWxsZSByYWRlci5cIixcbiAgbnVtZXJpY0Vycm9yOiBcIlZlcmRpZW4gc2thbCB2w6ZyZSBudW1lcmlzay5cIixcbiAgdGV4dE1pbkxlbmd0aDogXCJWZW5ubGlnc3Qgc2tyaXYgaW5uIG1pbnN0IHswfSB0ZWduLlwiLFxuICB0ZXh0TWF4TGVuZ3RoOiBcIlZlbm5saWdzdCBza3JpdiBpbm4gbWluZHJlIGVubiB7MH0gdGVnbi5cIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCJWZW5ubGlnc3Qgc2tyaXYgaW5uIG1lciBlbm4gezB9IG9nIG1pbmRyZSBlbm4gezF9IHRlZ24uXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwiVmVubmxpZ3N0IGZ5bGwgaW5uIG1pbnN0IHswfSByYWRlci5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiVmVubmxpZ3N0IHZlbGcgbWluc3QgezB9IHZhcmlhbnRlci5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiVmVubmxpZ3N0IGlra2UgdmVsZyBtZXIgZW5uIHswfSB2YXJpYW50ZXIuXCIsXG4gIG51bWVyaWNNaW5NYXg6XG4gICAgXCInezB9JyBiw7hyIHbDpnJlIGxpayBlbGxlciBtZXIgZW5uIHsxfSBvZyBsaWsgZWxsZXIgbWluZHJlIGVubiB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCInezB9JyBiw7hyIHbDpnJlIGxpayBlbGxlciBtZXIgZW5uIHsxfVwiLFxuICBudW1lcmljTWF4OiBcIid7MH0nIGLDuHIgdsOmcmUgbGlrIGVsbGVyIG1pbmRyZSBlbm4gezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIGd5bGRpZyBlLXBvc3QgYWRyZXNzZS5cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcIkZvcmVzcMO4cnNlbGVuIHJldHVybmVydGUgZmVpbGVuICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwiRm9yZXNww7hyc2VsZW4gcmV0dXJuZXJ0ZSB0b21tZSBkYXRhLCBlbGxlciAnc3RpJyAtZWdlbnNrYXBlbiBlciBmZWlsXCIsXG4gIGV4Y2VlZE1heFNpemU6IFwiRmlsc3TDuHJyZWxzZW4gYsO4ciBpa2tlIG92ZXJzdGlnZSB7MH0uXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJWZW5ubGlnc3Qgc2tyaXYgaW5uIGRlbiBhbmRyZSB2ZXJkaWVuLlwiLFxuICB1cGxvYWRpbmdGaWxlOlxuICAgIFwiRmlsZW4gZGluIGxhc3RlcyBvcHAuIFZlbm5saWdzdCB2ZW50IG5vZW4gc2VrdW5kZXIgb2cgcHLDuHYgaWdqZW4uXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwiw5huc2tlciBkdSDDpSBzbGV0dGUgcG9zdGVuP1wiLFxuICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcIkRlbm5lIHZlcmRpZW4gc2thbCB2w6ZyZSB1bmlrLlwiLFxuICBhZGRSb3c6IFwiTGVnZyB0aWwgcmFkXCIsXG4gIHJlbW92ZVJvdzogXCJGamVyblwiLFxuICBhZGRQYW5lbDogXCJMZWdnIHRpbCBueVwiLFxuICByZW1vdmVQYW5lbDogXCJGamVybmVcIixcbiAgY2hvaWNlc19JdGVtOiBcImVsZW1lbnRcIixcbiAgbWF0cml4X2NvbHVtbjogXCJLb2xvbm5lXCIsXG4gIG1hdHJpeF9yb3c6IFwiUmFkXCIsXG4gIHNhdmluZ0RhdGE6IFwiUmVzdWx0YXRlbmUgbGFncmVzIHDDpSBzZXJ2ZXJlbiAuLi5cIixcbiAgc2F2aW5nRGF0YUVycm9yOiBcIkRldCBvcHBzdG8gZW4gZmVpbCwgb2cgdmkga3VubmUgaWtrZSBsYWdyZSByZXN1bHRhdGVuZS5cIixcbiAgc2F2aW5nRGF0YVN1Y2Nlc3M6IFwiUmVzdWx0YXRlbmUgYmxlIGxhZ3JldCFcIixcbiAgc2F2ZUFnYWluQnV0dG9uOiBcIlByw7h2IGlnamVuXCIsXG4gIHRpbWVyTWluOiBcIm1pblwiLFxuICB0aW1lclNlYzogXCJzZWtcIixcbiAgdGltZXJTcGVudEFsbDogXCJEdSBoYXIgdGlsYnJha3QgezB9IHDDpSBkZW5uZSBzaWRlbiBvZyB7MX0gdG90YWx0LlwiLFxuICB0aW1lclNwZW50UGFnZTogXCJEdSBoYXIgdGlsYnJha3QgezB9IHDDpSBkZW5uZSBzaWRlbi5cIixcbiAgdGltZXJTcGVudFN1cnZleTogXCJEdSBoYXIgdGlsYnJha3QgezB9IHRvdGFsdC5cIixcbiAgdGltZXJMaW1pdEFsbDpcbiAgICBcIkR1IGhhciB0aWxicmFrdCB7MH0gYXYgezF9IHDDpSBkZW5uZSBzaWRlbiBvZyB0b3RhbHQgezJ9IGF2IHszfS5cIixcbiAgdGltZXJMaW1pdFBhZ2U6IFwiRHUgaGFyIHRpbGJyYWt0IHswfSBhdiB7MX0gcMOlIGRlbm5lIHNpZGVuLlwiLFxuICB0aW1lckxpbWl0U3VydmV5OiBcIkR1IGhhciB0aWxicmFrdCB7MH0gYXYgezF9IHRvdGFsdC5cIixcbiAgY2xlYW5DYXB0aW9uOiBcIlJlbnNcIlxufTtcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wibm9cIl0gPSBub3J3ZWdpYW5TdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wibm9cIl0gPSBcIm5vcnNrXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYWxpemF0aW9uL25vcndlZ2lhbi50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgcGVyc2lhblN1cnZleVN0cmluZ3MgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCLZgtio2YTbjFwiLFxuICBwYWdlTmV4dFRleHQ6IFwi2KjYudiv24xcIixcbiAgY29tcGxldGVUZXh0OiBcItiq2qnZhduM2YRcIixcbiAgb3RoZXJJdGVtVGV4dDogXCLYr9uM2q/YsSjYqtmI2LbbjNitKVwiLFxuICBwcm9ncmVzc1RleHQ6IFwi2LXZgdit2YcgezB9INin2LIgezF9XCIsXG4gIGVtcHR5U3VydmV5OiBcIti12YHYrdmHINin24wg24zYpyDar9iy24zZhtmHINin24wg2KjYsdin24wg2KfbjNmGINm+2LHYs9i02YbYp9mF2Ycg2YXZiNis2YjYryDZhtuM2LPYqi5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCLYp9iyINi02YXYpyDYqNin2KjYqiDYqtqp2YXbjNmEINin24zZhiDZvtix2LPYtNmG2KfZhdmHINmF2KrYtNqp2LHbjNmFXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXlCZWZvcmU6XG4gICAgXCLYqNmHINmG2LjYsSDZhduMINix2LPYryDZh9mFINmH2YUg2KfaqdmG2YjZhiDZvtix2LPYtNmG2KfZhdmHINix2Kcg2KraqdmF24zZhCDaqdix2K/ZhyDYp9uM2K8uXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwi2K/Ysdit2KfZhCDYp9uM2KzYp9ivINm+2LHYs9i02YbYp9mF2YdcIixcbiAgb3B0aW9uc0NhcHRpb246IFwi2KfZhtiq2K7Yp9ioINqp2YbbjNivLi4uXCIsXG4gIHZhbHVlOiBcItmF2YLYr9in2LFcIixcbiAgcmVxdWlyZWRFcnJvcjogXCLZhNi32YHYpyDYqNmHINiz2YjYp9mEINm+2KfYs9iuINiv2YfbjNivXCIsXG4gIHJlcXVpcmVkSW5BbGxSb3dzRXJyb3I6IFwi2YTYt9mB2Kcg2KjZhyDYqtmF2KfZhSDYs9i32LEg2YfYp9uMINiz2YjYp9mE2KfYqiDZvtin2LPYriDYr9mH24zYr1wiLFxuICBudW1lcmljRXJyb3I6IFwi2YXZgtiv2KfYsSDYqNin24zYryDYudiv2K/bjCDYqNin2LTYr1wiLFxuICB0ZXh0TWluTGVuZ3RoOiBcItmE2LfZgdinINit2K/Yp9mC2YQgIHswfSDYrdix2YEg2YjYp9ix2K8g2qnZhtuM2K9cIixcbiAgdGV4dE1heExlbmd0aDogXCLZhNi32YHYpyDaqdmF2KrYsSDYp9iyICB7MH0g2K3YsdmBINmI2KfYsdivINqp2YbbjNivLlwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcItmE2LfZgdinINio24zYtNiq2LEg2KfYsiAgezB9INit2LHZgSDZiCDaqdmF2KrYsSDYp9iyIHsxfSDYrdix2YEg2YjYp9ix2K8g2qnZhtuM2K8uXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwi2YTYt9mB2Kcg2K3Yr9in2YLZhCB7MH0g2LPYt9ixINmI2KfYsdivINqp2YbbjNivLlwiLFxuICBtaW5TZWxlY3RFcnJvcjogXCLYrdiv2KfZgtmEIHswfSDYp9mG2KrYrtin2Kgg2qnZhtuM2K8uXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcItmE2LfZgdinINio24zYtNiq2LEg2KfYsiAgezB9INin2YbYqtiu2KfYqCDaqdmG24zYry5cIixcbiAgbnVtZXJpY01pbk1heDogXCInezB9JyDYqNin24zYryDYqNuM2YYgezF9INmIIHsyfSDYqNin2LTYr1wiLFxuICBudW1lcmljTWluOiBcIid7MH0nINio2LLYsdqv2KrYsSDZhdiz2KfZiNuMIHsxfSDYqNin2LTYr1wiLFxuICBudW1lcmljTWF4OiBcIid7MH0nINio2KfbjNivINqp2Yjahtqp2KrYsSDbjNinINmF2LPYp9mI24wgezF9INio2KfYtNivXCIsXG4gIGludmFsaWRFbWFpbDogXCLZhNi32YHYpyDYp9uM2YXbjNmEINi12K3bjNitINiv2LHYrCDaqdmG24zYr1wiLFxuICB1cmxSZXF1ZXN0RXJyb3I6IFwi2K/Ysdiu2YjYp9iz2Kog2KjYpyDYrti32Kcg2LHZiNio2LHZiCDYtNivOiAnezB9Jy4gezF9XCIsXG4gIHVybEdldENob2ljZXNFcnJvcjogXCLYr9ix2K7ZiNin2LPYqiDZhdiz24zYsduMINiu2KfZhNuMINio2KfYstqv2LTYqiDYr9in2K/ZhyDbjNinINmF2LPbjNixINiv2LHYs9iqINiq2YbYuNuM2YUg2YbYtNiv2YdcIixcbiAgZXhjZWVkTWF4U2l6ZTogXCLYqNuM2LTYqtix24zZhiDYrdis2YUg2YXYrNin2LIg2YHYp9uM2YQ6IHswfVwiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwi2YXZgtiv2KfYsSAn2K/bjNqv2LEnINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIixcbiAgdXBsb2FkaW5nRmlsZTogXCLZgdin24zZhCDYr9ixINit2KfZhCDYotuM2YTZiNivINmF24wg2KjYp9i02K8uINmE2LfZgdinINi12KjYsSDaqdmG24zYry5cIixcbiAgY29uZmlybURlbGV0ZTogXCLYotuM2Kcg2YXYp9uM2YQg2KjZhyDYrdiw2YEg2KfbjNmGINix2K/bjNmBINmH2LPYqtuM2K/Yn1wiLFxuICBrZXlEdXBsaWNhdGlvbkVycm9yOiBcItin24zZhiDZhdmC2K/Yp9ixINio2KfbjNivINi624zYsSDYqtqp2LHYp9ix24wg2KjYp9i02K9cIixcbiAgYWRkUm93OiBcItiz2LfYsSDYrNiv24zYr1wiLFxuICByZW1vdmVSb3c6IFwi2K3YsNmBXCIsXG4gIGFkZFBhbmVsOiBcItis2K/bjNivXCIsXG4gIHJlbW92ZVBhbmVsOiBcItit2LDZgVwiLFxuICBjaG9pY2VzX0l0ZW06IFwi2KLbjNiq2YVcIixcbiAgbWF0cml4X2NvbHVtbjogXCLYs9iq2YjZhlwiLFxuICBtYXRyaXhfcm93OiBcItiz2LfYsVwiLFxuICBzYXZpbmdEYXRhOiBcItmG2KrYp9uM2Kwg2K/YsSDYrdin2YQg2LDYrtuM2LHZhyDYs9in2LLbjCDYr9ixINiz2LHZiNixINmF24wg2KjYp9i02K9cIixcbiAgc2F2aW5nRGF0YUVycm9yOiBcItiu2LfYp9uM24wg2K/YsSDYsNiu24zYsdmHINiz2KfYstuMINmG2KrYp9uM2Kwg2LHYriDYr9in2K/ZhyDYp9iz2KpcIixcbiAgc2F2aW5nRGF0YVN1Y2Nlc3M6IFwi2YbYqtin24zYrCDYqNinINmF2YjZgdmC24zYqiDYsNiu24zYsdmHINi02K9cIixcbiAgc2F2ZUFnYWluQnV0dG9uOiBcItmF2KzYr9ivINiq2YTYp9i0INqp2YbbjNivXCJcbn07XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcImZhXCJdID0gcGVyc2lhblN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJmYVwiXSA9IFwi2YHYp9ix2ZLYs9mQ2YlcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vcGVyc2lhbi50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgcG9saXNoU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIldzdGVjelwiLFxuICBwYWdlTmV4dFRleHQ6IFwiRGFsZWpcIixcbiAgY29tcGxldGVUZXh0OiBcIkdvdG93ZVwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIklubmEgb2Rwb3dpZWTFuiAod3Bpc3opXCIsXG4gIHByb2dyZXNzVGV4dDogXCJTdHJvbmEgezB9IHogezF9XCIsXG4gIGVtcHR5U3VydmV5OiBcIk5pZSBtYSB3aWRvY3pueWNoIHB5dGHFhC5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJEemnEmWt1amVteSB6YSB3eXBlxYJuaWVuaWUgYW5raWV0eSFcIixcbiAgbG9hZGluZ1N1cnZleTogXCJUcndhIHdjenl0eXdhbmllIGFua2lldHkuLi5cIixcbiAgb3B0aW9uc0NhcHRpb246IFwiV3liaWVyei4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIlByb3N6xJkgb2Rwb3dpZWR6aWXEhyBuYSB0byBweXRhbmllLlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIlByb3N6xJkgb2Rwb3dpZWR6aWXEhyBuYSB3c3p5c3RraWUgcHl0YW5pYS5cIixcbiAgbnVtZXJpY0Vycm9yOiBcIlcgdHltIHBvbHUgbW/FvG5hIHdwaXNhxIcgdHlsa28gbGljemJ5LlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIlByb3N6xJkgd3Bpc2HEhyBjbyBuYWptbmllaiB7MH0gem5ha8Ozdy5cIixcbiAgdGV4dE1heExlbmd0aDogXCJQcm9zesSZIHdwaXNhxIcgbW5pZWogbmnFvCB7MH0gem5ha8Ozdy5cIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCJQcm9zesSZIHdwaXNhxIcgd2nEmWNlaiBuacW8IHswfSBpIG1uaWVqIG5pxbwgezF9IHpuYWvDs3cuXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwiUHJvc3rEmSB1enVwZcWCbmnEhyBwcnp5bmFqbW5pZWogezB9IHdpZXJzenkuXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIlByb3N6xJkgd3licmHEhyBjbyBuYWptbmllaiB7MH0gcG96eWNqaS5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiUHJvc3rEmSB3eWJyYcSHIG5pZSB3acSZY2VqIG5pxbwgezB9IHBvenljamkuXCIsXG4gIG51bWVyaWNNaW5NYXg6XG4gICAgXCJPZHBvd2llZMW6ICd7MH0nIHBvd2lubmEgYnnEhyB3acSZa3N6YSBsdWIgcsOzd25hIHsxfSBvcmF6IG1uaWVqc3phIGx1YiByw7N3bmEgezJ9XCIsXG4gIG51bWVyaWNNaW46IFwiT2Rwb3dpZWTFuiAnezB9JyBwb3dpbm5hIGJ5xIcgd2nEmWtzemEgbHViIHLDs3duYSB7MX1cIixcbiAgbnVtZXJpY01heDogXCJPZHBvd2llZMW6ICd7MH0nIHBvd2lubmEgYnnEhyBtbmllanN6YSBsdWIgcsOzd25hIHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwiUHJvc3rEmSBwb2RhxIcgcHJhd2lkxYJvd3kgYWRyZXMgZW1haWwuXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCLFu8SFZGFuaWUgendyw7NjacWCbyBixYLEhWQgJ3swfScuIHsxfVwiLFxuICB1cmxHZXRDaG9pY2VzRXJyb3I6XG4gICAgXCLFu8SFZGFuaWUgbmllIHp3csOzY2nFgm8gZGFueWNoIGFsYm8gxZtjaWXFvGthIGplc3QgbmllcHJhd2lkxYJvd2FcIixcbiAgZXhjZWVkTWF4U2l6ZTogXCJSb3ptaWFyIHByemVzxYJhbmVnbyBwbGlrdSBuaWUgbW/FvGUgcHJ6ZWtyYWN6YcSHIHswfS5cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiBcIlByb3N6xJkgcG9kYcSHIGlubsSFIG9kcG93aWVkxbouXCIsXG4gIHVwbG9hZGluZ0ZpbGU6XG4gICAgXCJUcndhIHByemVub3N6ZW5pZSBUd29qZWdvIHBsaWt1LCBwcm9zesSZIHNwcsOzYm93YcSHIHBvbm93bmllIHphIGtpbGthIHNla3VuZC5cIixcbiAgYWRkUm93OiBcIkRvZGFqIHdpZXJzelwiLFxuICByZW1vdmVSb3c6IFwiVXN1xYRcIixcbiAgYWRkUGFuZWw6IFwiRG9kYWogcGFuZWxcIixcbiAgcmVtb3ZlUGFuZWw6IFwiVXN1xYRcIixcbiAgY2hvaWNlc19JdGVtOiBcImVsZW1lbnRcIixcbiAgbWF0cml4X2NvbHVtbjogXCJLb2x1bW5hXCIsXG4gIG1hdHJpeF9yb3c6IFwiV2llcnN6XCIsXG4gIHNhdmluZ0RhdGE6IFwiWmFwaXN1asSZIHd5bmlraSBhbmtpZXR5IG5hIHNlcndlcnplLi4uXCIsXG4gIHNhdmluZ0RhdGFFcnJvcjogXCJXeXN0xIVwacWCIGLFgsSFZCBpIHd5bmlraSBuaWUgbW9nxYJ5IHpvc3RhxIcgemFwaXNhbmUuXCIsXG4gIHNhdmluZ0RhdGFTdWNjZXNzOiBcIld5bmlraSB6b3N0YcWCeSBwb3ByYXduaWUgemFwaXNhbmUhXCIsXG4gIHNhdmVBZ2FpbkJ1dHRvbjogXCJTcHLDs2J1aiBwb25vd25pZVwiLFxuICB0aW1lck1pbjogXCJtaW5cIixcbiAgdGltZXJTZWM6IFwic2VrXCIsXG4gIHRpbWVyU3BlbnRBbGw6IFwiU3DEmWR6acWCZcWbIHswfSBuYSB0ZWogc3Ryb25pZSBhIHcgc3VtaWUgezF9LlwiLFxuICB0aW1lclNwZW50UGFnZTogXCJTcMSZZHppxYJlxZsgezB9IG5hIHRlaiBzdHJvbmllLlwiLFxuICB0aW1lclNwZW50U3VydmV5OiBcIlNwxJlkemnFgmXFmyB3IHNtdW1pZSB7MH0uXCIsXG4gIHRpbWVyTGltaXRBbGw6IFwiU3DEmWR6acWCZcWbIHswfSB6IHsxfSBuYSB0ZWogc3Ryb25pZSBhIHcgc3VtaWUgezJ9IHogezN9LlwiLFxuICB0aW1lckxpbWl0UGFnZTogXCJTcMSZZHppxYJlxZsgezB9IHogezF9IG5hIHRlaiBzdHJvbmllXCIsXG4gIHRpbWVyTGltaXRTdXJ2ZXk6IFwiU3DEmWR6acWCZcWbIHswfSB6IHsxfS5cIixcbiAgY2xlYW5DYXB0aW9uOiBcIld5Y3p5xZvEh1wiXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcInBsXCJdID0gcG9saXNoU3VydmV5U3RyaW5ncztcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVOYW1lc1tcInBsXCJdID0gXCJwb2xza2lcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vcG9saXNoLnRzIiwiaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBwb3J0dWd1ZXNlU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIkFudGVyaW9yXCIsXG4gIHBhZ2VOZXh0VGV4dDogXCJQcsOzeGltb1wiLFxuICBjb21wbGV0ZVRleHQ6IFwiRmluYWxpemFyXCIsXG4gIHN0YXJ0U3VydmV5VGV4dDogXCJDb21lw6dhclwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIk91dHJvcyAoZGVzY3JldmVyKVwiLFxuICBub25lSXRlbVRleHQ6IFwiTmVuaHVtXCIsXG4gIHNlbGVjdEFsbEl0ZW1UZXh0OiBcIlNlbGVjaW9uYXIgVG9kb3NcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIlDDoWdpbmEgezB9IGRlIHsxfVwiLFxuICBlbXB0eVN1cnZleTogXCJOw6NvIGjDoSBww6FnaW5hIHZpc8OtdmVsIG91IHBlcmd1bnRhIG5hIHBlc3F1aXNhLlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIk9icmlnYWRvIHBvciBmaW5hbGl6YXIgYSBwZXNxdWlzYSFcIixcbiAgY29tcGxldGluZ1N1cnZleUJlZm9yZTpcbiAgICBcIk5vc3NvcyByZWdpc3Ryb3MgbW9zdHJhbSBxdWUgdm9jw6ogasOhIGZpbmFsaXpvdSBhIHBlc3F1aXNhLlwiLFxuICBsb2FkaW5nU3VydmV5OiBcIkEgcGVzcXVpc2EgZXN0w6EgY2FycmVnYW5kby4uLlwiLFxuICBvcHRpb25zQ2FwdGlvbjogXCJTZWxlY2lvbmUuLi5cIixcbiAgdmFsdWU6IFwidmFsb3JcIixcbiAgcmVxdWlyZWRFcnJvcjogXCJQb3IgZmF2b3IsIHJlc3BvbmRhIGEgcGVyZ3VudGEuXCIsXG4gIHJlcXVpcmVkRXJyb3JJblBhbmVsOiBcIlBvciBmYXZvciwgcmVzcG9uZGEgcGVsbyBtZW5vcyB1bWEgcGVyZ3VudGEuXCIsXG4gIHJlcXVpcmVkSW5BbGxSb3dzRXJyb3I6IFwiUG9yIGZhdm9yLCByZXNwb25kYSBhcyBwZXJndW50YXMgZW0gdG9kYXMgYXMgbGluaGFzLlwiLFxuICBudW1lcmljRXJyb3I6IFwiTyB2YWxvciBkZXZlIHNlciBudW3DqXJpY28uXCIsXG4gIHRleHRNaW5MZW5ndGg6IFwiUG9yIGZhdm9yLCBpbnNpcmEgcGVsbyBtZW5vcyB7MH0gY2FyYWN0ZXJlcy5cIixcbiAgdGV4dE1heExlbmd0aDogXCJQb3IgZmF2b3IsIGluc2lyYSBtZW5vcyBkZSB7MH0gY2FyYWN0ZXJlcy5cIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCJQb3IgZmF2b3IsIGluc2lyYSBtYWlzIGRlIHswfSBlIG1lbm9zIGRlIHsxfSBjYXJhY3RlcmVzLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIlByZWVuY2hhIHBlbG8gbWVub3MgezB9IGxpbmhhcy5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiU2VsZWNpb25lIHBlbG8gbWVub3MgezB9IG9ww6fDtWVzLlwiLFxuICBtYXhTZWxlY3RFcnJvcjogXCJQb3IgZmF2b3IsIHNlbGVjaW9uZSBuw6NvIG1haXMgZG8gcXVlIHswfSBvcMOnw7Vlcy5cIixcbiAgbnVtZXJpY01pbk1heDpcbiAgICBcIk8gJ3swfScgZGV2ZSBzZXIgaWd1YWwgb3Ugc3VwZXJpb3IgYSB7MX0gZSBpZ3VhbCBvdSBtZW5vciBxdWUgezJ9XCIsXG4gIG51bWVyaWNNaW46IFwiTyAnezB9JyBkZXZlIHNlciBpZ3VhbCBvdSBzdXBlcmlvciBhIHsxfVwiLFxuICBudW1lcmljTWF4OiBcIk8gJ3swfScgZGV2ZSBzZXIgaWd1YWwgb3UgaW5mZXJpb3IgYSB7MX1cIixcbiAgaW52YWxpZEVtYWlsOiBcIlBvciBmYXZvciwgaW5mb3JtZSB1bSBlLW1haWwgdsOhbGlkby5cIixcbiAgaW52YWxpZEV4cHJlc3Npb246IFwiQSBleHByZXNzw6NvOiB7MH0gZGV2ZSByZXRvcm5hciAndmVyZGFkZWlybycuXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCJBIHJlcXVpc2nDp8OjbyByZXRvcm5vdSBvIGVycm8gJ3swfScuIHsxfVwiLFxuICB1cmxHZXRDaG9pY2VzRXJyb3I6XG4gICAgXCJBIHJlcXVpc2nDp8OjbyBuw6NvIHJldG9ybm91IGRhZG9zIG91IG8gJ2NhbWluaG8nIGRhIHJlcXVpc2nDp8OjbyBuw6NvIGVzdMOhIGNvcnJldG9cIixcbiAgZXhjZWVkTWF4U2l6ZTogXCJPIHRhbWFuaG8gZG8gYXJxdWl2byBuw6NvIGRldmUgZXhjZWRlciB7MH0uXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJQb3IgZmF2b3IsIGluZm9ybWUgbyBvdXRybyB2YWxvci5cIixcbiAgdXBsb2FkaW5nRmlsZTpcbiAgICBcIlNldSBhcnF1aXZvIGVzdMOhIHNlbmRvIGNhcnJlZ2Fkby4gUG9yIGZhdm9yLCBhZ3VhcmRlIGFsZ3VucyBzZWd1bmRvcyBlIHRlbnRlIG5vdmFtZW50ZS5cIixcbiAgbG9hZGluZ0ZpbGU6IFwiQ2FycmVnYW5kby4uLlwiLFxuICBjaG9vc2VGaWxlOiBcIlNlbGVjaW9uZSBvKHMpIGFycXVpdm8ocykuLi5cIixcbiAgY29uZmlybURlbGV0ZTogXCJUZW0gY2VydGV6YSBxdWUgZGVzZWphIGRlbGV0YXI/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwiRXNzZSB2YWxvciBkZXZlIHNlciDDum5pY28uXCIsXG4gIGFkZENvbHVtbjogXCJBZGljaW9uYXIgY29sdW5hXCIsXG4gIGFkZFJvdzogXCJBZGljaW9uYXIgbGluaGFcIixcbiAgcmVtb3ZlUm93OiBcIlJlbW92ZXIgbGluaGFcIixcbiAgYWRkUGFuZWw6IFwiQWRpY2lvbmFyIG5vdm9cIixcbiAgcmVtb3ZlUGFuZWw6IFwiUmVtb3ZlclwiLFxuICBjaG9pY2VzX0l0ZW06IFwiaXRlbVwiLFxuICBtYXRyaXhfY29sdW1uOiBcIkNvbHVuYVwiLFxuICBtYXRyaXhfcm93OiBcIkxpbmhhXCIsXG4gIHNhdmluZ0RhdGE6IFwiT3MgcmVzdWx0YWRvcyBlc3RvIHNlbmRvIHNhbHZvcyBubyBzZXJ2aWRvci4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwiT2NvcnJldSB1bSBlcnJvIGUgbsOjbyBmb2kgcG9zc8OtdmVsIHNhbHZhciBvcyByZXN1bHRhZG9zLlwiLFxuICBzYXZpbmdEYXRhU3VjY2VzczogXCJPcyByZXN1bHRhZG9zIGZvcmFtIHNhbHZvcyBjb20gc3VjZXNzbyFcIixcbiAgc2F2ZUFnYWluQnV0dG9uOiBcIlRlbnRlIG5vdmFtZW50ZVwiLFxuICB0aW1lck1pbjogXCJtaW5cIixcbiAgdGltZXJTZWM6IFwic2VnXCIsXG4gIHRpbWVyU3BlbnRBbGw6IFwiVm9jw6ogZ2FzdG91IHswfSBuZXN0YSBww6FnaW5hIGUgezF9IG5vIHRvdGFsLlwiLFxuICB0aW1lclNwZW50UGFnZTogXCJWb2PDqiBnYXN0b3UgezB9IG5lc3RhIHDDoWdpbmEuXCIsXG4gIHRpbWVyU3BlbnRTdXJ2ZXk6IFwiVm9jw6ogZ2FzdG91IHswfSBubyB0b3RhbC5cIixcbiAgdGltZXJMaW1pdEFsbDpcbiAgICBcIlZvY8OqIGdhc3RvdSB7MH0gZGUgezF9IG5lc3RhIHDDoWdpbmEgZSB7Mn0gZGUgezN9IG5vIHRvdGFsLlwiLFxuICB0aW1lckxpbWl0UGFnZTogXCJWb2PDqiBnYXN0b3UgezB9IGRlIHsxfSBuZXN0YSBww6FnaW5hLlwiLFxuICB0aW1lckxpbWl0U3VydmV5OiBcIlZvY8OqIGdhc3RvdSB7MH0gZGUgezF9IG5vIHRvdGFsLlwiLFxuICBjbGVhbkNhcHRpb246IFwiTGltcGFyXCIsXG4gIGNsZWFyQ2FwdGlvbjogXCJMaW1wYXJcIixcbiAgcmVtb3ZlRmlsZUNhcHRpb246IFwiUmVtb3ZlciBlc3RlIGFycXVpdm9cIlxufTtcblxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJwdFwiXSA9IHBvcnR1Z3Vlc2VTdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wicHRcIl0gPSBcInBvcnR1Z3XDqnNcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vcG9ydHVndWVzZS50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgcm9tYW5pYW5TdXJ2ZXlTdHJpbmdzOiBhbnkgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCJQcmVjZWRlbnRcIixcbiAgcGFnZU5leHRUZXh0OiBcIlVybcSDdG9yXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJGaW5hbGl6YXJlXCIsXG4gIG90aGVySXRlbVRleHQ6IFwiQWx0dWwocHJlY2l6YcWjaSlcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIlBhZ2luYSB7MH0gZGluIHsxfVwiLFxuICBlbXB0eVN1cnZleTogXCJOdSBzdW50IMOubnRyZWLEg3JpIHBlbnRydSBhY2VzdCBjaGVzdGlvbmFyXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXk6IFwiVsSDIG11bMWjdW1pbSBwZW50cnUgdGltcHVsIGFjb3JkYXQhXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwiQ2hlc3Rpb25hcnVsIHNlIMOubmNhcmPEgy4uLlwiLFxuICBvcHRpb25zQ2FwdGlvbjogXCJBbGVnZcWjaS4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIlLEg3NwdW5zdWwgbGEgYWNlYXN0xIMgw65udHJlYmFyZSBlc3RlIG9ibGlnYXRvcml1LlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIlRvYXRlIHLEg3NwdW5zdXJpbGUgc3VudCBvYmxpZ2F0b3JpaVwiLFxuICBudW1lcmljRXJyb3I6IFwiUsSDc3B1bnN1bCB0cmVidWllIHPEgyBmaWUgbnVtZXJpYy5cIixcbiAgdGV4dE1pbkxlbmd0aDogXCJUcmVidWllIHPEgyBpbnRyb2R1Y2XIm2kgbWluaW0gezB9IGNhcmFjdGVyZS5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiVHJlYnVpZSBzxIMgc2VsZWN0YcibaSBtaW5pbSB7MH0gb3DFo2l1bmkuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIlRyZWJ1aWUgc8SDIHNlbGVjdGHIm2kgbWF4aW0gezB9IG9wxaNpdW5pLlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwiUsSDc3B1bnN1bCAnezB9JyB0cmVidWllIHPEgyBmaWUgbWFpIG1hcmUgc2F1IGVnYWwgY2EgezF9IMWfw64gbWFpIG1pYyBzYXUgZWdhbCBjdSB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCJSxINzcHVuc3VsICd7MH0nIHRyZWJ1aWUgc8SDIGZpZSBtYWkgbWFyZSBzYXUgZWdhbCBjYSB7MX1cIixcbiAgbnVtZXJpY01heDogXCJSxINzcHVuc3VsICd7MH0nIHRyZWJ1aWUgc8SDIGZpZSBtYWkgbWljIHNhdSBlZ2FsIGNhIHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwiVHJlYnVpZSBzxIMgaW50cm9kdWNlxaNpIG8gYWRyZXNhIGRlIGVtYWlsIHZhbGlkxIMuXCIsXG4gIGV4Y2VlZE1heFNpemU6IFwiRGltZW5zaXVuZWEgZmnFn2llcnVsdWkgbnUgdHJlYnVpZSBzxIMgZGVwxIPFn2Vhc2PEgyB7MH0uXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJUcmVidWllIHPEgyBjb21wbGV0YcibaSBjw6JtcHVsICdBbHR1bCcuXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXlCZWZvcmU6XG4gICAgXCJEaW4gw65ucmVnaXN0csSDcmlsZSBub2FzdHJlIHJlaWVzZSBjxIMgYcibaSBjb21wbGV0YXQgZGVqYSBhY2VzdCBjaGVzdGlvbmFyLlwiLFxuICB2YWx1ZTogXCJ2YWxvYXJlXCIsXG4gIHJlcXVpcmVkRXJyb3JJblBhbmVsOiBcIlbEgyBydWfEg20gc8SDIHLEg3NwdW5kZcibaSBsYSBjZWwgcHXIm2luIG8gw65udHJlYmFyZS5cIixcbiAgdGV4dE1heExlbmd0aDogXCJUcmVidWllIHPEgyBpbnRyb2R1Y2XIm2kgbWF4aW0gezB9IGNhcmFjdGVyZS5cIixcbiAgdGV4dE1pbk1heExlbmd0aDpcbiAgICBcIlRyZWJ1aWUgc8SDIGludHJvZHVjZcibaSBtYWkgbXVsdCBkZSB7MH0gyJlpIG1haSBwdcibaW4gZGUgezF9IGNhcmFjdGVyZS5cIixcbiAgbWluUm93Q291bnRFcnJvcjogXCJUcmVidWllIHPEgyBjb21wbGV0YcibaSBtaW5pbSB7MH0gcsOibmR1cmkuXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCJSZXF1ZXN0LXVsIGEgcmV0dXJuYXQgZXJvYXJlYSAnezB9Jy4gezF9XCIsXG4gIHVybEdldENob2ljZXNFcnJvcjpcbiAgICBcIlJlcXVlc3QtdWwgbnUgYSByZXR1cm5hdCBkYXRlIHNhdSBwcm9wcmlldGF0ZWEgJ3BhdGgnIGVzdGUgaW5jb3JlY3TEg1wiLFxuICB1cGxvYWRpbmdGaWxlOlxuICAgIFwiRmnImWllcnVsIGR1bW5lYXZvYXN0csSDIGVzdGUgw65uIGN1cnMgZGUgw65uY8SDcmNhcmUuIFbEgyBydWfEg20gYciZdGVwdGHIm2kgY8OidGV2YSBzZWN1bmRlIMiZaSByZXZlbmnIm2kgYXBvaS5cIixcbiAgY29uZmlybURlbGV0ZTogXCJTdW50ZcibaSBzaWd1ciBjxIMgZG9yacibaSBzxIMgyJl0ZXJnZcibaSDDrm5yZWdpc3RyYXJlYT9cIixcbiAga2V5RHVwbGljYXRpb25FcnJvcjogXCJWYWxvYXJlYSB0cmVidWllIHPEgyBmaWUgdW5pY8SDLlwiLFxuICBhZGRSb3c6IFwiQWTEg3VnYXJlIHLDom5kXCIsXG4gIHJlbW92ZVJvdzogXCLImHRlcmdlcmVcIixcbiAgYWRkUGFuZWw6IFwiQWTEg3VnYXJlXCIsXG4gIHJlbW92ZVBhbmVsOiBcIsiYdGVyZ2VyZVwiLFxuICBjaG9pY2VzX0l0ZW06IFwib3DIm2l1bmVcIixcbiAgbWF0cml4X2NvbHVtbjogXCJDb2xvYW7Eg1wiLFxuICBtYXRyaXhfcm93OiBcIlLDom5kXCIsXG4gIHNhdmluZ0RhdGE6IFwiUmV6dWx0YXRlbGUgc3VudCDDrm4gY3VycyBkZSBzYWx2YXJlLi4uXCIsXG4gIHNhdmluZ0RhdGFFcnJvcjogXCJBIGludGVydmVuaXQgbyBlcm9hcmUsIHJlenVsdGF0ZWxlIG51IGF1IHB1dHV0IGZpIHNhbHZhdGUuXCIsXG4gIHNhdmluZ0RhdGFTdWNjZXNzOiBcIlJlenVsdGF0ZWxlIGF1IGZvc3Qgc2FsdmF0ZSBjdSBzdWNjZXMhXCIsXG4gIHNhdmVBZ2FpbkJ1dHRvbjogXCLDjm5jZXJjYcibaSBkaW4gbm91XCIsXG4gIHRpbWVyTWluOiBcIm1pblwiLFxuICB0aW1lclNlYzogXCJzZWNcIixcbiAgdGltZXJTcGVudEFsbDogXCJByJtpIHBldHJlY3V0IHswfSBwZSBhY2Vhc3TEgyBwYWdpbsSDIMiZaSB7MX0gw65uIHRvdGFsLlwiLFxuICB0aW1lclNwZW50UGFnZTogXCJByJtpIHBldHJlY3V0IHswfSBwZSBhY2Vhc3TEgyBwYWdpbsSDLlwiLFxuICB0aW1lclNwZW50U3VydmV5OiBcIkHIm2kgcGV0cmVjdXQgezB9IMOubiB0b3RhbC5cIixcbiAgdGltZXJMaW1pdEFsbDpcbiAgICBcIkHIm2kgcGV0cmVjdXQgezB9IGRpbiB7MX0gcGUgYWNlYXN0xIMgcGFnaW7EgyDImWkgezJ9IGRpbiB7M30gw65uIHRvdGFsLlwiLFxuICB0aW1lckxpbWl0UGFnZTogXCJByJtpIHBldHJlY3V0IHswfSBkaW4gezF9IHBlIGFjZWFzdMSDIHBhZ2luxIMuXCIsXG4gIHRpbWVyTGltaXRTdXJ2ZXk6IFwiQcibaSBwZXRyZWN1dCB7MH0gZGluIHsxfSDDrm4gdG90YWwuXCJcbn07XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcInJvXCJdID0gcm9tYW5pYW5TdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wicm9cIl0gPSBcInJvbcOibsSDXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYWxpemF0aW9uL3JvbWFuaWFuLnRzIiwiaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBydXNzaWFuU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcItCd0LDQt9Cw0LRcIixcbiAgcGFnZU5leHRUZXh0OiBcItCU0LDQu9C10LVcIixcbiAgY29tcGxldGVUZXh0OiBcItCT0L7RgtC+0LLQvlwiLFxuICBzdGFydFN1cnZleVRleHQ6IFwi0J3QsNGH0LDRgtGMXCIsXG4gIG90aGVySXRlbVRleHQ6IFwi0JTRgNGD0LPQvtC1ICjQv9C+0LbQsNC70YPQudGB0YLQsCwg0L7Qv9C40YjQuNGC0LUpXCIsXG4gIG5vbmVJdGVtVGV4dDogXCLQndC10YJcIixcbiAgc2VsZWN0QWxsSXRlbVRleHQ6IFwi0JLRi9Cx0YDQsNGC0Ywg0LLRgdGRXCIsXG4gIHByb2dyZXNzVGV4dDogXCLQodGC0YDQsNC90LjRhtCwIHswfSDQuNC3IHsxfVwiLFxuICBlbXB0eVN1cnZleTogXCLQndC10YIg0L3QuCDQvtC00L3QvtCz0L4g0LLQvtC/0YDQvtGB0LAuXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXk6IFwi0JHQu9Cw0LPQvtC00LDRgNC40Lwg0JLQsNGBINC30LAg0LfQsNC/0L7Qu9C90LXQvdC40LUg0LDQvdC60LXRgtGLIVwiLFxuICBjb21wbGV0aW5nU3VydmV5QmVmb3JlOlxuICAgIFwi0JLRiyDRg9C20LUg0L/RgNC+0YXQvtC00LjQu9C4INGN0YLQvtGCINC+0L/RgNC+0YEuXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwi0JfQsNCz0YDRg9C30LrQsCDRgSDRgdC10YDQstC10YDQsC4uLlwiLFxuICBvcHRpb25zQ2FwdGlvbjogXCLQktGL0LHRgNCw0YLRjC4uLlwiLFxuICB2YWx1ZTogXCLQt9C90LDRh9C10L3QuNC1XCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwi0J/QvtC20LDQu9GD0LnRgdGC0LAsINC+0YLQstC10YLRjNGC0LUg0L3QsCDQstC+0L/RgNC+0YEuXCIsXG4gIHJlcXVpcmVkRXJyb3JJblBhbmVsOiBcItCf0L7QttCw0LvRg9C50YHRgtCwLCDQvtGC0LLQtdGC0YzRgtC1INC/0L4g0LrRgNCw0LnQvdC10Lkg0LzQtdGA0LUg0L3QsCDQvtC00LjQvSDQstC+0L/RgNC+0YEuXCIsXG4gIHJlcXVpcmVkSW5BbGxSb3dzRXJyb3I6IFwi0J/QvtC20LDQu9GD0LnRgdGC0LAsINC+0YLQstC10YLRjNGC0LUg0L3QsCDQstC+0L/RgNC+0YHRiyDQsiDQutCw0LbQtNC+0Lkg0YHRgtGA0L7QutC1LlwiLFxuICBudW1lcmljRXJyb3I6IFwi0J7RgtCy0LXRgiDQtNC+0LvQttC10L0g0LHRi9GC0Ywg0YfQuNGB0LvQvtC8LlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcItCf0L7QttCw0LvRg9C50YHRgtCwINCy0LLQtdC00LjRgtC1INCx0L7Qu9GM0YjQtSB7MH0g0YHQuNC80LLQvtC70L7Qsi5cIixcbiAgdGV4dE1heExlbmd0aDogXCLQn9C+0LbQsNC70YPQudGB0YLQsCDQstCy0LXQtNC40YLQtSDQvNC10L3RjNGI0LUgezB9INGB0LjQvNCy0L7Qu9C+0LIuXCIsXG4gIHRleHRNaW5NYXhMZW5ndGg6IFwi0J/QvtC20LDQu9GD0LnRgdGC0LAg0LLQstC10LTQuNGC0LUg0LHQvtC70YzRiNC1IHswfSDQuCDQvNC10L3RjNGI0LUgezF9INGB0LjQvNCy0L7Qu9C+0LIuXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwi0J/QvtC20LDQu9GD0LnRgdGC0LAsINC30LDQv9C+0LvQvdC40YLQtSDQvdC1INC80LXQvdGM0YjQtSB7MH0g0YHRgtGA0L7Qui5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwi0J/QvtC20LDQu9GD0LnRgdGC0LAsINCy0YvQsdC10YDQuNGC0LUg0YXQvtGC0Y8g0LHRiyB7MH0g0LLQsNGA0LjQsNC90YLQvtCyLlwiLFxuICBtYXhTZWxlY3RFcnJvcjogXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLRi9Cx0LXRgNC40YLQtSDQvdC1INCx0L7Qu9C10LUgezB9INCy0LDRgNC40LDQvdGC0L7Qsi5cIixcbiAgbnVtZXJpY01pbk1heDpcbiAgICBcIid7MH0nINC00L7Qu9C20L3QviDQsdGL0YLRjCDQvdC1INC80LXQvdGM0YjQtSDRh9C10LwgezF9LCDQuCDQvdC1INCx0L7Qu9GM0YjQtSDRh9C10LwgezJ9XCIsXG4gIG51bWVyaWNNaW46IFwiJ3swfScg0LTQvtC70LbQvdC+INCx0YvRgtGMINC90LUg0LzQtdC90YzRiNC1INGH0LXQvCB7MX1cIixcbiAgbnVtZXJpY01heDogXCInezB9JyDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L3QtSDQsdC+0LvRjNGI0LUg0YfQtdC8IHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwi0J/QvtC20LDQu9GD0LnRgdGC0LAsINCy0LLQtdC00LjRgtC1INC00LXQudGB0YLQstC40YLQtdC70YzQvdGL0Lkg0LDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YsuXCIsXG4gIGludmFsaWRFeHByZXNzaW9uOiBcItCS0YvRgNCw0LbQtdC90LjQtSB7MH0g0LTQvtC70LbQvdC+INCy0L7Qt9Cy0YDQsNGJ0LDRgtGMICd0cnVlJy5cIixcbiAgdXJsUmVxdWVzdEVycm9yOiBcItCX0LDQv9GA0L7RgSDQstC10YDQvdGD0Lsg0L7RiNC40LHQutGDICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwi0J7RgtCy0LXRgiDQvdCwINC30LDQv9GA0L7RgSDQv9GA0LjRiNC10Lsg0L/Rg9GB0YLQvtC5INC40LvQuCDRgdCy0L7QudGB0YLQstC+ICdwYXRoJyDRg9C60LDQt9Cw0L3QviDQvdC10LLQtdGA0L3QvlwiLFxuICBleGNlZWRNYXhTaXplOiBcItCg0LDQt9C80LXRgCDRhNCw0LnQu9CwINC90LUg0LTQvtC70LbQtdC9INC/0YDQtdCy0YvRiNCw0YLRjCB7MH0uXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCLQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LTQsNC90L3Ri9C1INCyINC/0L7Qu9C1ICfQlNGA0YPQs9C+0LUnXCIsXG4gIHVwbG9hZGluZ0ZpbGU6XG4gICAgXCLQktCw0Ygg0YTQsNC50Lsg0LfQsNCz0YDRg9C20LDQtdGC0YHRjy4g0J/QvtC00L7QttC00LjRgtC1INC90LXRgdC60L7Qu9GM0LrQviDRgdC10LrRg9C90LQg0Lgg0L/QvtC/0YDQvtCx0YPQudGC0LUg0YHQvdC+0LLQsC5cIixcbiAgbG9hZGluZ0ZpbGU6IFwi0JfQsNCz0YDRg9C30LrQsC4uLlwiLFxuICBjaG9vc2VGaWxlOiBcItCS0YvQsdC10YDQuNGC0LUg0YTQsNC50Lso0YspLi4uXCIsXG4gIGNvbmZpcm1EZWxldGU6IFwi0JLRiyDRgtC+0YfQvdC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDQt9Cw0L/QuNGB0Yw/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwi0K3RgtC+INC30L3QsNGH0LXQvdC40LUg0LTQvtC70LbQvdC+INCx0YvRgtGMINGD0L3QuNC60LDQu9GM0L3Ri9C8LlwiLFxuICBhZGRDb2x1bW46IFwi0JTQvtCx0LDQstC40YLRjCDQutC+0LvQvtC90LrRg1wiLFxuICBhZGRSb3c6IFwi0JTQvtCx0LDQstC40YLRjCDRgdGC0YDQvtC60YNcIixcbiAgcmVtb3ZlUm93OiBcItCj0LTQsNC70LjRgtGMXCIsXG4gIGFkZFBhbmVsOiBcItCU0L7QsdCw0LLQuNGC0Ywg0L3QvtCy0YPRjlwiLFxuICByZW1vdmVQYW5lbDogXCLQo9C00LDQu9C40YLRjFwiLFxuICBjaG9pY2VzX0l0ZW06IFwi0JLQsNGA0LjQsNC90YJcIixcbiAgbWF0cml4X2NvbHVtbjogXCLQmtC+0LvQvtC90LrQsFwiLFxuICBtYXRyaXhfcm93OiBcItCh0YLRgNC+0LrQsFwiLFxuICBzYXZpbmdEYXRhOiBcItCg0LXQt9GD0LvRjNGC0LDRgtGLINGB0L7RhdGA0LDQvdGP0Y7RgtGB0Y8g0L3QsCDRgdC10YDQstC10YAuLi5cIixcbiAgc2F2aW5nRGF0YUVycm9yOiBcItCf0YDQvtC40LfQvtGI0LvQsCDQvtGI0LjQsdC60LAsINGA0LXQt9GD0LvRjNGC0LDRgiDQvdC1INCx0YvQuyDRgdC+0YXRgNCw0L3RkdC9LlwiLFxuICBzYXZpbmdEYXRhU3VjY2VzczogXCLQoNC10LfRg9C70YzRgtCw0YIg0YPRgdC/0LXRiNC90L4g0YHQvtGF0YDQsNC90ZHQvSFcIixcbiAgc2F2ZUFnYWluQnV0dG9uOiBcItCf0L7Qv9GA0L7QsdC+0LLQsNGC0Ywg0YHQvdC+0LLQsFwiLFxuICB0aW1lck1pbjogXCLQvNC40L1cIixcbiAgdGltZXJTZWM6IFwi0YHQtdC6XCIsXG4gIHRpbWVyU3BlbnRBbGw6IFwi0JLRiyDQv9C+0YLRgNCw0YLQuNC70LggezB9INC90LAg0Y3RgtC+0Lkg0YHRgtGA0LDQvdC40YbQtSDQuCB7MX0g0LLRgdC10LPQvi5cIixcbiAgdGltZXJTcGVudFBhZ2U6IFwi0JLRiyDQv9C+0YLRgNCw0YLQuNC70LggezB9INC90LAg0Y3RgtC+0Lkg0YHRgtGA0LDQvdC40YbQtS5cIixcbiAgdGltZXJTcGVudFN1cnZleTogXCLQktGLINC/0L7RgtGA0LDRgtC40LvQuCB7MH0g0LIg0YLQtdGH0LXQvdC40LUg0YLQtdGB0YLQsC5cIixcbiAgdGltZXJMaW1pdEFsbDpcbiAgICBcItCS0Ysg0L/QvtGC0YDQsNGC0LjQu9C4IHswfSDQuNC3IHsxfSDQvdCwINGN0YLQvtC5INGB0YLRgNCw0L3QuNGG0LUg0LggezJ9INC40LcgezN9INC00LvRjyDQstGB0LXQs9C+INGC0LXRgdGC0LAuXCIsXG4gIHRpbWVyTGltaXRQYWdlOiBcItCS0Ysg0L/QvtGC0YDQsNGC0LjQu9C4IHswfSDQuNC3IHsxfSDQvdCwINGN0YLQvtC5INGB0YLRgNCw0L3QuNGG0LUuXCIsXG4gIHRpbWVyTGltaXRTdXJ2ZXk6IFwi0JLRiyDQv9C+0YLRgNCw0YLQuNC70LggezB9INC40LcgezF9INC00LvRjyDQstGB0LXQs9C+INGC0LXRgdGC0LAuXCIsXG4gIGNsZWFuQ2FwdGlvbjogXCLQntGH0LjRgdGC0LjRgtGMXCIsXG4gIGNsZWFyQ2FwdGlvbjogXCLQntGH0LjRgdGC0LjRgtGMXCIsXG4gIHJlbW92ZUZpbGVDYXB0aW9uOiBcItCj0LTQsNC70LjRgtGMINGE0LDQudC7XCJcbn07XG5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wicnVcIl0gPSBydXNzaWFuU3VydmV5U3RyaW5ncztcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVOYW1lc1tcInJ1XCJdID0gXCLRgNGD0YHRgdC60LjQuVwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi9ydXNzaWFuLnRzIiwiaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBzaW1wbGlmaWVkQ2hpbmVzZVN1cnZleVN0cmluZ3MgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCLkuIrkuIDpobVcIixcbiAgcGFnZU5leHRUZXh0OiBcIuS4i+S4gOmhtVwiLFxuICBjb21wbGV0ZVRleHQ6IFwi5o+Q5Lqk6Zeu5Y23XCIsXG4gIHN0YXJ0U3VydmV5VGV4dDogXCLlvIDlp4vpl67ljbdcIixcbiAgb3RoZXJJdGVtVGV4dDogXCLloavlhpnlhbbku5bnrZTmoYhcIixcbiAgbm9uZUl0ZW1UZXh0OiBcIuaXoFwiLFxuICBzZWxlY3RBbGxJdGVtVGV4dDogXCLpgInmi6nlhajpg6hcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIuesrCB7MH0g6aG1LCDlhbEgezF9IOmhtVwiLFxuICBxdWVzdGlvbnNQcm9ncmVzc1RleHQ6IFwi56ysIHswfS97MX0g6aKYXCIsXG4gIGVtcHR5U3VydmV5OiBcIumXruWNt+S4reayoeaciemXrumimOaIlumhtemdolwiLFxuICBjb21wbGV0aW5nU3VydmV5QmVmb3JlOiBcIuS9oOW3suWujOaIkOmXruWNty5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCLmhJ/osKLmgqjnmoTlj4LkuI4hXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwi6Zeu5Y235q2j5Zyo5Yqg6L295LitLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIuivt+mAieaLqS4uLlwiLFxuICB2YWx1ZTogXCLlgLxcIixcbiAgcmVxdWlyZWRFcnJvcjogXCLor7floavlhpnmraTpl67pophcIixcbiAgcmVxdWlyZWRFcnJvckluUGFuZWw6IFwi6Iez5bCR5Zue562U5LiA6aKYLlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIuivt+Whq+WGmeaJgOacieihjOS4remXrumimFwiLFxuICBudW1lcmljRXJyb3I6IFwi562U5qGI5b+F6aG75piv5Liq5pWw5a2XXCIsXG4gIHRleHRNaW5MZW5ndGg6IFwi562U5qGI6ZW/5bqm6Iez5bCRIHswfSDkuKrlrZfnrKZcIixcbiAgdGV4dE1heExlbmd0aDogXCLnrZTmoYjplb/luqbkuI3og73otoXov4cgezB9IOS4quWtl+esplwiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcIuetlOahiOmVv+W6puW/hemhu+WcqCB7MH0gLSB7MX0g5Liq5a2X56ym5LmL6Ze0XCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwi5pyA5bCR6ZyA6KaB5aGr5YaZIHswfSDooYznrZTmoYhcIixcbiAgbWluU2VsZWN0RXJyb3I6IFwi5pyA5bCR6ZyA6KaB6YCJ5oupIHswfSDpobnnrZTmoYhcIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwi5pyA5aSa5Y+q6IO96YCJ5oupIHswfSDpobnnrZTmoYhcIixcbiAgbnVtZXJpY01pbk1heDogXCLnrZTmoYggJ3swfScg5b+F6aG75aSn5LqO562J5LqOIHsxfSDkuJTlsI/kuo7nrYnkuo4gezJ9XCIsXG4gIG51bWVyaWNNaW46IFwi562U5qGIICd7MH0nIOW/hemhu+Wkp+S6juetieS6jiB7MX1cIixcbiAgbnVtZXJpY01heDogXCLnrZTmoYggJ3swfScg5b+F6aG75bCP5LqO562J5LqOIHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwi6K+36L6T5YWl5pyJ5pWI55qEIEVtYWlsIOWcsOWdgFwiLFxuICBpbnZhbGlkRXhwcmVzc2lvbjogXCLlhazlvI86IHswfSDml6DmlYguXCIsIFxuICB1cmxSZXF1ZXN0RXJyb3I6IFwi6L295YWl6YCJ6aG55pe25Y+R55Sf6ZSZ6K+vICd7MH0nOiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOiBcIuacquiDvei9veWFpeacieaViOeahOmAiemhueaIluivt+axguWPguaVsOi3r+W+hOacieivr1wiLFxuICBleGNlZWRNYXhTaXplOiBcIuaWh+S7tuWkp+Wwj+S4jeiDvei2hei/hyB7MH1cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiBcIuivt+WujOaIkOWFtuS7lumXrumimFwiLFxuICB1cGxvYWRpbmdGaWxlOiBcIuaWh+S7tuS4iuS8oOS4rS4uLiDor7fogJDlv4PnrYnlvoXlh6Dnp5LlkI7ph43or5VcIixcbiAgbG9hZGluZ0ZpbGU6IFwi5Yqg6L29Li4uXCIsXG4gIGNob29zZUZpbGU6IFwi6YCJ5oup5paH5Lu2Li4uXCIsXG4gIG5vRmlsZUNob3NlbjogXCLmnKrpgInmi6nmlofku7ZcIixcbiAgY29uZmlybURlbGV0ZTogXCLliKDpmaTorrDlvZU/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwi5Li76ZSu5LiN6IO96YeN5aSNXCIsXG4gIGFkZENvbHVtbjogXCLmt7vliqDliJdcIixcbiAgYWRkUm93OiBcIua3u+WKoOihjFwiLFxuICByZW1vdmVSb3c6IFwi5Yig6Zmk562U5qGIXCIsXG4gIGFkZFBhbmVsOiBcIuaWsOa3u1wiLFxuICByZW1vdmVQYW5lbDogXCLliKDpmaRcIixcbiAgY2hvaWNlc19JdGVtOiBcIumAiemhuVwiLFxuICBtYXRyaXhfY29sdW1uOiBcIuWIl1wiLFxuICBtYXRyaXhfcm93OiBcIuihjFwiLFxuICBzYXZpbmdEYXRhOiBcIuato+WcqOWwhue7k+aenOS/neWtmOWIsOacjeWKoeWZqC4uLlwiLFxuICBzYXZpbmdEYXRhRXJyb3I6IFwi5Zyo5L+d5a2Y57uT5p6c6L+H56iL5Lit5Y+R55Sf5LqG6ZSZ6K+v77yM57uT5p6c5pyq6IO95L+d5a2YXCIsXG4gIHNhdmluZ0RhdGFTdWNjZXNzOiBcIue7k+aenOS/neWtmOaIkOWKnyFcIixcbiAgc2F2ZUFnYWluQnV0dG9uOiBcIuivt+mHjeivlVwiLFxuICB0aW1lck1pbjogXCLliIZcIixcbiAgdGltZXJTZWM6IFwi56eSXCIsXG4gIHRpbWVyU3BlbnRBbGw6IFwi5pys6aG155So5pe2IHswfSDmgLvorqHnlKjml7Z7MX0gLlwiLFxuICB0aW1lclNwZW50UGFnZTogXCLmnKzpobXnlKjml7Z7MH0gLlwiLFxuICB0aW1lclNwZW50U3VydmV5OiBcIuaAu+iuoeeUqOaXtiB7MH0gLlwiLFxuICB0aW1lckxpbWl0QWxsOlxuICAgIFwi5pys6aG155So5pe2IHswfSDlhbEgezF977yMIOaAu+iuoeeUqOaXtiB7Mn0g5YWxIHszfSAuXCIsXG4gIHRpbWVyTGltaXRQYWdlOiBcIuacrOmhteeUqOaXtiB7MH0g5YWxIHsxfSAuXCIsXG4gIHRpbWVyTGltaXRTdXJ2ZXk6IFwi5oC76K6h55So5pe2IHswfSDlhbEgezF9LlwiLFxuICBjbGVhbkNhcHRpb246IFwi5riF55CGXCIsXG4gIGNsZWFyQ2FwdGlvbjogXCLmuIXpmaRcIixcbiAgcmVtb3ZlRmlsZUNhcHRpb246IFwi56e76Zmk5paH5Lu2XCJcbn07XG5cbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVzW1wiemgtY25cIl0gPSBzaW1wbGlmaWVkQ2hpbmVzZVN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJ6aC1jblwiXSA9IFwi566A5L2T5Lit5paHXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYWxpemF0aW9uL3NpbXBsaWZpZWQtY2hpbmVzZS50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgc3BhbmlzaFN1cnZleVN0cmluZ3MgPSB7XG4gIHBhZ2VQcmV2VGV4dDogXCJBbnRlcmlvclwiLFxuICBwYWdlTmV4dFRleHQ6IFwiU2lndWllbnRlXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJDb21wbGV0b1wiLFxuICBvdGhlckl0ZW1UZXh0OiBcIk90cm8gKGRlc2NyaWJhKVwiLFxuICBwcm9ncmVzc1RleHQ6IFwiUMOhZ2luYSB7MH0gZGUgezF9XCIsXG4gIGVtcHR5U3VydmV5OiBcIk5vIGhheSBww6FnaW5hIHZpc2libGUgbyBwcmVndW50YSBlbiBsYSBlbmN1ZXN0YS5cIixcbiAgY29tcGxldGluZ1N1cnZleTogXCJHcmFjaWFzIHBvciBjb21wbGV0YXIgbGEgZW5jdWVzdGEhXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwiTGEgZW5jdWVzdGEgZXN0w6EgY2FyZ2FuZG8uLi5cIixcbiAgb3B0aW9uc0NhcHRpb246IFwiU2VsZWNjaW9uZS4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIlBvciBmYXZvciBjb250ZXN0ZSBsYSBwcmVndW50YS5cIixcbiAgcmVxdWlyZWRJbkFsbFJvd3NFcnJvcjogXCJQb3IgZmF2b3IgY29udGVzdGUgbGFzIHByZWd1bnRhcyBlbiBjYWRhIGhpbGVyYS5cIixcbiAgbnVtZXJpY0Vycm9yOiBcIkxhIGVzdGltYWNpw7NuIGRlYmUgc2VyIG51bcOpcmljYS5cIixcbiAgdGV4dE1pbkxlbmd0aDogXCJQb3IgZmF2b3IgZW50cmUgcG9yIGxvIG1lbm9zIHswfSBzw61tYm9sb3MuXCIsXG4gIHRleHRNYXhMZW5ndGg6IFwiUG9yIGZhdm9yIGVudHJlIG1lbm9zIGRlIHswfSBzw61tYm9sb3MuXCIsXG4gIHRleHRNaW5NYXhMZW5ndGg6IFwiUG9yIGZhdm9yIGVudHJlIG3DoXMgZGUgezB9IHkgbWVub3MgZGUgezF9IHPDrW1ib2xvcy5cIixcbiAgbWluUm93Q291bnRFcnJvcjogXCJQb3IgZmF2b3IgbGxlbmUgcG9yIGxvIG1lbm9zIHswfSBoaWxlcmFzLlwiLFxuICBtaW5TZWxlY3RFcnJvcjogXCJQb3IgZmF2b3Igc2VsZWNjaW9uZSBwb3IgbG8gbWVub3MgezB9IHZhcmlhbnRlcy5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiUG9yIGZhdm9yIHNlbGVjY2lvbmUgbm8gbcOhcyBkZSB7MH0gdmFyaWFudGVzLlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwiRWwgJ3swfScgZGViZSBkZSBzZXIgaWd1YWwgbyBtw6FzIGRlIHsxfSB5IGlndWFsIG8gbWVub3MgZGUgezJ9XCIsXG4gIG51bWVyaWNNaW46IFwiRWwgJ3swfScgZGViZSBzZXIgaWd1YWwgbyBtw6FzIGRlIHsxfVwiLFxuICBudW1lcmljTWF4OiBcIkVsICd7MH0nIGRlYmUgc2VyIGlndWFsIG8gbWVub3MgZGUgezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJQb3IgZmF2b3IgYWdyZWd1ZSB1biBjb3JyZW8gZWxlY3Ryw7NuaWNvIHbDoWxpZG8uXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCJMYSBzb2xpY2l0dWQgcmVncmVzw7MgZXJyb3IgJ3swfScuIHsxfVwiLFxuICB1cmxHZXRDaG9pY2VzRXJyb3I6XG4gICAgXCJMYSBzb2xpY2l0dWQgcmVncmVzw7MgdmFjw61vIGRlIGRhdGEgbyBsYSBwcm9waWVkYWQgJ3RyYXllY3RvcmlhJyBubyBlcyBjb3JyZWN0YVwiLFxuICBleGNlZWRNYXhTaXplOiBcIkVsIHRhbWHDsW8gZGVsIGFyY2hpdm8gbm8gZGViZSBkZSBleGNlZGVyIHswfS5cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiBcIlBvciBmYXZvciBhZ3JlZ3VlIGxhIG90cmEgZXN0aW1hY2nDs24uXCIsXG4gIHVwbG9hZGluZ0ZpbGU6XG4gICAgXCJTdSBhcmNoaXZvIHNlIGVzdMOhIHN1YmllbmRvLiBQb3IgZmF2b3IgZXNwZXJlIHVub3Mgc2VndW5kb3MgZSBpbnRlbnRlIGRlIG51ZXZvLlwiLFxuICBhZGRSb3c6IFwiQWdyZWd1ZSB1bmEgaGlsZXJhXCIsXG4gIHJlbW92ZVJvdzogXCJFbGltaW5hciB1bmEgaGlsZXJhXCIsXG4gIGNob2ljZXNfZmlyc3RJdGVtOiBcInByaW1lciBhcnTDrWN1bG9cIixcbiAgY2hvaWNlc19zZWNvbmRJdGVtOiBcInNlZ3VuZG8gYXJ0w61jdWxvXCIsXG4gIGNob2ljZXNfdGhpcmRJdGVtOiBcInRlcmNlcmEgYXJ0w61jdWxvXCIsXG4gIG1hdHJpeF9jb2x1bW46IFwiQ29sdW1uYVwiLFxuICBtYXRyaXhfcm93OiBcIkhpbGVyYVwiXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcImVzXCJdID0gc3BhbmlzaFN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJlc1wiXSA9IFwiZXNwYcOxb2xcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vc3BhbmlzaC50cyIsIi8vQ3JlYXRlIGJ5IE1hdHRpYXMgQXNwbHVuZFxuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL3N1cnZleVN0cmluZ3NcIjtcblxuZXhwb3J0IHZhciBzd2VkaXNoU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIkbDtnJlZ8OlZW5kZVwiLFxuICBwYWdlTmV4dFRleHQ6IFwiTsOkc3RhXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJGw6RyZGlnXCIsXG4gIG90aGVySXRlbVRleHQ6IFwiQW5uYXQgKGJlc2tyaXYpXCIsXG4gIHByb2dyZXNzVGV4dDogXCJTaWRhIHswfSBhdiB7MX1cIixcbiAgZW1wdHlTdXJ2ZXk6IFwiRGV0IGZpbm5zIGluZ2VuIHN5bmxpZyBzaWRhIGVsbGVyIGZyw6VnYSBpIGVua8OkdGVuLlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIlRhY2sgZsO2ciBhdHQgZHUgZ2Vub21mw7ZydCBlbmvDpHRlbiEhXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwiRW5rw6R0ZW4gbGFkZGFzLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIlbDpGxqLi4uXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwiVmFyIHbDpG5saWcgYmVzdmFyYSBmcsOlZ2FuLlwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIlZhciB2w6RubGlnIGJlc3ZhcmEgZnLDpWdvcm5hIHDDpSBhbGxhIHJhZGVyLlwiLFxuICBudW1lcmljRXJyb3I6IFwiVsOkcmRldCBza2EgdmFyYSBudW1lcmlza3QuXCIsXG4gIHRleHRNaW5MZW5ndGg6IFwiVmFyIHbDpG5saWcgYW5nZSBtaW5zdCB7MH0gdGVja2VuLlwiLFxuICBtaW5Sb3dDb3VudEVycm9yOiBcIlZhciB2w6RubGlnIGZ5bGwgaSBtaW5zdCB7MH0gcmFkZXIuXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcIlZhciB2w6RubGlnIHbDpGxqIMOldG1pbnN0b25lIHswfSB2YXJpYW50ZXIuXCIsXG4gIG1heFNlbGVjdEVycm9yOiBcIlZhciB2w6RubGlnIHbDpGxqIGludGUgZmxlciDDpG4gezB9IHZhcmlhbnRlci5cIixcbiAgbnVtZXJpY01pbk1heDpcbiAgICBcIid7MH0nIHNrYSB2YXJhIGxpa2EgbWVkIGVsbGVyIG1lciDDpG4gezF9IHNhbXQgbGlrYSBtZWQgZWxsZXIgbWluZHJlIMOkbiB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCInezB9JyBza2EgdmFyYSBsaWthIG1lZCBlbGxlciBtZXIgw6RuIHsxfVwiLFxuICBudW1lcmljTWF4OiBcIid7MH0nIHNrYSB2YXJhIGxpa2EgbWVkIGVsbGVyIG1pbmRyZSDDpG4gezF9XCIsXG4gIGludmFsaWRFbWFpbDogXCJWYXIgdsOkbmxpZyBhbmdlIGVuIGtvcnJla3QgZS1wb3N0YWRyZXNzLlwiLFxuICB1cmxSZXF1ZXN0RXJyb3I6IFwiRsO2cmZyw6VnYW4gcmV0dXJuZXJhZGUgZmVsZXQgJ3swfScuIHsxfVwiLFxuICB1cmxHZXRDaG9pY2VzRXJyb3I6XG4gICAgXCJBbnRpbmdlbiByZXR1cm5lcmFkZSBmw7ZyZnLDpWdhbiBpbmdlbiBkYXRhIGVsbGVyIHPDpSDDpHIgZWdlbnNrYXBlbiAncGF0aCcgaW50ZSBrb3JyZWt0XCIsXG4gIGV4Y2VlZE1heFNpemU6IFwiRmlsc3Rvcmxla2VuIGbDpXIgZWogw7Z2ZXJzdGlnYSB7MH0uXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJWYXIgdsOkbmxpZyBhbmdlIGRldCBhbmRyYSB2w6RyZGV0LlwiLFxuICB1cGxvYWRpbmdGaWxlOlxuICAgIFwiRGluIGZpbCBsYWRkYXMgdXBwLiBWYXIgdsOkbmxpZyB2w6RudGEgbsOlZ3JhIHNla3VuZGVyIG9jaCBmw7Zyc8O2ayBzZWRhbiBpZ2VuLlwiLFxuICBhZGRSb3c6IFwiTMOkZ2cgdGlsbCByYWRcIixcbiAgcmVtb3ZlUm93OiBcIlRhIGJvcnRcIlxufTtcblxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJzdlwiXSA9IHN3ZWRpc2hTdXJ2ZXlTdHJpbmdzO1xuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZU5hbWVzW1wic3ZcIl0gPSBcInN2ZW5za2FcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vc3dlZGlzaC50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgdHJhZGl0aW9uYWxDaGluZXNlU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcIuS4iuS4gOmggVwiLFxuICBwYWdlTmV4dFRleHQ6IFwi5LiL5LiA6aCBXCIsXG4gIGNvbXBsZXRlVGV4dDogXCLmj5DkuqTllY/ljbdcIixcbiAgb3RoZXJJdGVtVGV4dDogXCLloavlr6vlhbbku5bnrZTmoYhcIixcbiAgcHJvZ3Jlc3NUZXh0OiBcIuesrCB7MH0g6aCBLCDlhbEgezF9IOmggVwiLFxuICBlbXB0eVN1cnZleTogXCLllY/ljbfkuK3mspLmnInllY/poYzmiJbpoIHpnaJcIixcbiAgY29tcGxldGluZ1N1cnZleTogXCLmhJ/orJ3mgqjnmoTlj4PoiIchXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwi5ZWP5Y236LyJ5YWl5LitLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcIuiri+mBuOaThy4uLlwiLFxuICByZXF1aXJlZEVycm9yOiBcIuiri+Whq+Wvq+atpOWVj+mhjFwiLFxuICByZXF1aXJlZEluQWxsUm93c0Vycm9yOiBcIuiri+Whq+Wvq+aJgOacieihjOS4reWVj+mhjFwiLFxuICBudW1lcmljRXJyb3I6IFwi562U5qGI5b+F6aCI5piv5YCL5pW45a2XXCIsXG4gIHRleHRNaW5MZW5ndGg6IFwi562U5qGI6ZW35bqm6Iez5bCRIHswfSDlgIvlrZflhYNcIixcbiAgdGV4dE1heExlbmd0aDogXCLnrZTmoYjplbfluqbkuI3og73otoXpgY4gezB9IOWAi+Wtl+WFg1wiLFxuICB0ZXh0TWluTWF4TGVuZ3RoOiBcIuetlOahiOmVt+W6puW/hemgiOWcqCB7MH0gLSB7MX0g5YCL5a2X5YWD5LmL6ZaTXCIsXG4gIG1pblJvd0NvdW50RXJyb3I6IFwi5pyA5bCR6ZyA6KaB5aGr5a+rIHswfSDooYznrZTmoYhcIixcbiAgbWluU2VsZWN0RXJyb3I6IFwi5pyA5bCR6ZyA6KaB6YG45pOHIHswfSDpoIXnrZTmoYhcIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwi5pyA5aSa5Y+q6IO96YG45pOHIHswfSDpoIXnrZTmoYhcIixcbiAgbnVtZXJpY01pbk1heDogXCLnrZTmoYggJ3swfScg5b+F6aCI5aSn5pa8562J5pa8IHsxfSDkuJTlsI/mlrznrYnmlrwgezJ9XCIsXG4gIG51bWVyaWNNaW46IFwi562U5qGIICd7MH0nIOW/hemgiOWkp+aWvOetieaWvCB7MX1cIixcbiAgbnVtZXJpY01heDogXCLnrZTmoYggJ3swfScg5b+F6aCI5bCP5pa8562J5pa8IHsxfVwiLFxuICBpbnZhbGlkRW1haWw6IFwi6KuL6Ly45YWl5pyJ5pWI55qEIEVtYWlsIOWcsOWdgFwiLFxuICB1cmxSZXF1ZXN0RXJyb3I6IFwi6LyJ5YWl6YG46aCF5pmC55m855Sf6Yyv6KqkICd7MH0nOiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOiBcIuacquiDvei8ieWFpeacieaViOeahOmBuOmgheaIluiri+axguWPg+aVuOi3r+W+keacieiqpFwiLFxuICBleGNlZWRNYXhTaXplOiBcIuaWh+S7tuWkp+Wwj+S4jeiDvei2hemBjiB7MH1cIixcbiAgb3RoZXJSZXF1aXJlZEVycm9yOiBcIuiri+WujOaIkOWFtuS7luWVj+mhjFwiLFxuICB1cGxvYWRpbmdGaWxlOiBcIuaWh+S7tuS4iuWCs+S4rS4uLiDoq4vogJDlv4PnrYnlvoXlub7np5Llvozph43oqaZcIixcbiAgYWRkUm93OiBcIua3u+WKoOetlOahiFwiLFxuICByZW1vdmVSb3c6IFwi5Yiq6Zmk562U5qGIXCIsXG4gIGNob2ljZXNfSXRlbTogXCLpgbjpoIVcIixcbiAgbWF0cml4X2NvbHVtbjogXCLliJdcIixcbiAgbWF0cml4X3JvdzogXCLooYxcIixcbiAgc2F2aW5nRGF0YTogXCLmraPlnKjlsIfntZDmnpzkv53lrZjliLDmnI3li5nlmaguLi5cIixcbiAgc2F2aW5nRGF0YUVycm9yOiBcIuWcqOS/neWtmOe1kOaenOmBjueoi+S4reeZvOeUn+S6humMr+iqpO+8jOe1kOaenOacquiDveS/neWtmFwiLFxuICBzYXZpbmdEYXRhU3VjY2VzczogXCLntZDmnpzkv53lrZjmiJDlip8hXCIsXG4gIHNhdmVBZ2FpbkJ1dHRvbjogXCLoq4vph43oqaZcIlxufTtcblxuc3VydmV5TG9jYWxpemF0aW9uLmxvY2FsZXNbXCJ6aC10d1wiXSA9IHRyYWRpdGlvbmFsQ2hpbmVzZVN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJ6aC10d1wiXSA9IFwi57mB6auU5Lit5paHXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYWxpemF0aW9uL3RyYWRpdGlvbmFsLWNoaW5lc2UudHMiLCJpbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vc3VydmV5U3RyaW5nc1wiO1xuXG5leHBvcnQgdmFyIHR1cmtpc2hTdXJ2ZXlTdHJpbmdzID0ge1xuICBwYWdlUHJldlRleHQ6IFwiR2VyaVwiLFxuICBwYWdlTmV4dFRleHQ6IFwixLBsZXJpXCIsXG4gIGNvbXBsZXRlVGV4dDogXCJBbmtldGkgVGFtYW1sYVwiLFxuICBvdGhlckl0ZW1UZXh0OiBcIkRpxJ9lciAoYcOnxLFrbGF5xLFuxLF6KVwiLFxuICBwcm9ncmVzc1RleHQ6IFwiU2F5ZmEgezB9IC8gezF9XCIsXG4gIGVtcHR5U3VydmV5OiBcIkFua2V0dGUgZ8O2csO8bnTDvGxlbmVjZWsgc2F5ZmEgeWEgZGEgc29ydSBtZXZjdXQgZGXEn2lsLlwiLFxuICBjb21wbGV0aW5nU3VydmV5OiBcIkFua2V0aW1pemkgdGFtYW1sYWTEscSfxLFuxLF6IGnDp2luIHRlxZ9la2vDvHIgZWRlcml6LlwiLFxuICBsb2FkaW5nU3VydmV5OiBcIkFua2V0IHN1bnVjdWRhbiB5w7xrbGVuaXlvciAuLi5cIixcbiAgb3B0aW9uc0NhcHRpb246IFwiU2XDp2luaXogLi4uXCIsXG4gIHJlcXVpcmVkRXJyb3I6IFwiTMO8dGZlbiBzb3J1eWEgY2V2YXAgdmVyaW5pelwiLFxuICBudW1lcmljRXJyb3I6IFwiR2lyaWxlbiBkZcSfZXIgbnVtZXJpayBvbG1hbMSxZMSxclwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcIkVuIGF6IHswfSBzZW1ib2wgZ2lyaW5pei5cIixcbiAgbWluUm93Q291bnRFcnJvcjogXCJMw7x0ZmVuIGVuIGF6IHswfSBzYXTEsXLEsSBkb2xkdXJ1bi5cIixcbiAgbWluU2VsZWN0RXJyb3I6IFwiTMO8dGZlbiBlbiBheiB7MH0gc2XDp2VuZcSfaSBzZcOnaW5pei5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwiTMO8dGZlbiB7MH0gYWRldHRlbiBmYXpsYSBzZcOnbWV5aW5pei5cIixcbiAgbnVtZXJpY01pbk1heDpcbiAgICBcIlRoZSAnezB9JyBzaG91bGQgYmUgZXF1YWwgb3IgbW9yZSB0aGFuIHsxfSBhbmQgZXF1YWwgb3IgbGVzcyB0aGFuIHsyfVwiLFxuICBudW1lcmljTWluOiBcIid7MH0nIGRlxJ9lcmkgezF9IGRlxJ9lcmluZSBlxZ9pdCB2ZXlhIGLDvHnDvGsgb2xtYWzEsWTEsXJcIixcbiAgbnVtZXJpY01heDogXCInezB9JyBkZcSfZXJpIHsxfSBkZcSfZXJpbmUgZcWfaXQgeWEgZGEga8O8w6fDvGsgb2xtYWzEsWTEsXIuXCIsXG4gIGludmFsaWRFbWFpbDogXCJMw7x0ZmVuIGdlw6dlcmxpIGJpciBlcG9zdGEgYWRyZXNpIGdpcmluaXouXCIsXG4gIHVybFJlcXVlc3RFcnJvcjogXCJUYWxlYmkgxZ91IGhhdGF5xLEgZMO2bmTDvCAnezB9Jy4gezF9XCIsXG4gIHVybEdldENob2ljZXNFcnJvcjpcbiAgICBcIlRhbGVwIGhlcmhhbmdpIGJpciB2ZXJpIGTDtm5tZWRpIHlhIGRhICdwYXRoJyDDtnplbGxpxJ9pIGhhdGFsxLEuXCIsXG4gIGV4Y2VlZE1heFNpemU6IFwiRG9zeWEgYm95dXR1IHswfSBkZcSfZXJpbmkgZ2XDp2VtZXouXCIsXG4gIG90aGVyUmVxdWlyZWRFcnJvcjogXCJMw7x0ZmVuIGRpxJ9lciBkZcSfZXJsZXJpIGdpcmluaXouXCIsXG4gIHVwbG9hZGluZ0ZpbGU6XG4gICAgXCJEb3N5YW7EsXogecO8a2xlbml5b3IuIEzDnHRmZW4gYmlya2HDpyBzYW5peWUgYmVrbGV5aW4gdmUgdGVrcmFyIGRlbmV5aW4uXCIsXG4gIGFkZFJvdzogXCJTYXTEsXIgRWtsZVwiLFxuICByZW1vdmVSb3c6IFwiS2FsZMSxclwiXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcInRyXCJdID0gdHVya2lzaFN1cnZleVN0cmluZ3M7XG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlTmFtZXNbXCJ0clwiXSA9IFwidMO8cmvDp2VcIjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhbGl6YXRpb24vdHVya2lzaC50cyIsImltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbmV4cG9ydCB2YXIgdWtyYWluaWFuU3VydmV5U3RyaW5ncyA9IHtcbiAgcGFnZVByZXZUZXh0OiBcItCd0LDQt9Cw0LRcIixcbiAgcGFnZU5leHRUZXh0OiBcItCU0LDQu9GWXCIsXG4gIGNvbXBsZXRlVGV4dDogXCLQl9Cw0LLQtdGA0YjQuNGC0LhcIixcbiAgc3RhcnRTdXJ2ZXlUZXh0OiBcItCf0L7Rh9Cw0YLQuFwiLFxuICBvdGhlckl0ZW1UZXh0OiBcItCG0L3RiNC1ICjQsdGD0LTRjCDQu9Cw0YHQutCwLCDQvtC/0LjRiNGW0YLRjClcIixcbiAgbm9uZUl0ZW1UZXh0OiBcItCW0L7QtNC10L1cIixcbiAgc2VsZWN0QWxsSXRlbVRleHQ6IFwi0JLQuNCx0YDQsNGC0Lgg0LLRgdC1XCIsXG4gIHByb2dyZXNzVGV4dDogXCLQodGC0L7RgNGW0L3QutCwIHswfSDQtyB7MX1cIixcbiAgcXVlc3Rpb25zUHJvZ3Jlc3NUZXh0OiBcItCS0ZbQtNC/0L7QstGW0LvQuCDQvdCwIHswfS97MX0g0L/QuNGC0LDQvdGMXCIsXG4gIGVtcHR5U3VydmV5OiBcItCd0LXQvNCw0ZQg0LbQvtC00L3QvtCz0L4g0L/QuNGC0LDQvdC90Y8uXCIsXG4gIGNvbXBsZXRpbmdTdXJ2ZXk6IFwi0JTRj9C60YPRlNC80L4g0JLQsNC8INC30LAg0LfQsNC/0L7QstC90LXQvdC90Y8g0LDQvdC60LXRgtC4IVwiLFxuICBjb21wbGV0aW5nU3VydmV5QmVmb3JlOlxuICAgIFwi0JLQuCDQstC20LUg0L/RgNC+0YXQvtC00LjQu9C4INGG0LUg0L7Qv9C40YLRg9Cy0LDQvdC90Y8uXCIsXG4gIGxvYWRpbmdTdXJ2ZXk6IFwi0JfQsNCy0LDQvdGC0LDQttC10L3QvdGPINC+0L/QuNGC0YPQstCw0L3QvdGPLi4uXCIsXG4gIG9wdGlvbnNDYXB0aW9uOiBcItCS0LjQsdGA0LDRgtC4Li4uXCIsXG4gIHZhbHVlOiBcItC30L3QsNGH0LXQvdC90Y9cIixcbiAgcmVxdWlyZWRFcnJvcjogXCLQkdGD0LTRjCDQu9Cw0YHQutCwLCDQtNCw0LnRgtC1INCy0ZbQtNC/0L7QstGW0LTRjC5cIixcbiAgcmVxdWlyZWRFcnJvckluUGFuZWw6IFwi0JHRg9C00Ywg0LvQsNGB0LrQsCwg0LTQsNC50YLQtSDQstGW0LTQv9C+0LLRltC00Ywg0YXQvtGH0LAg0LEg0L3QsCDQvtC00L3QtSDQv9C40YLQsNC90L3Rjy5cIixcbiAgcmVxdWlyZWRJbkFsbFJvd3NFcnJvcjogXCLQkdGD0LTRjCDQu9Cw0YHQutCwLCDQtNCw0LnRgtC1INCy0ZbQtNC/0L7QstGW0LTRjCDQvdCwINC/0LjRgtCw0L3QvdGPINCyINC60L7QttC90L7QvNGDINGA0Y/QtNC60YMuXCIsXG4gIG51bWVyaWNFcnJvcjogXCLQktGW0LTQv9C+0LLRltC00Ywg0L/QvtCy0LjQvdC90LAg0LHRg9GC0Lgg0YfQuNGB0LvQvtC8LlwiLFxuICB0ZXh0TWluTGVuZ3RoOiBcItCR0YPQtNGMINC70LDRgdC60LAg0LLQstC10LTRltGC0Ywg0LHRltC70YzRiNC1IHswfSDRgdC40LzQstC+0LvRltCyLlwiLFxuICB0ZXh0TWF4TGVuZ3RoOiBcItCR0YPQtNGMINC70LDRgdC60LAg0LLQstC10LTRltGC0Ywg0LzQtdC90YjQtSB7MH0g0YHQuNC80LLQvtC70ZbQsi5cIixcbiAgdGV4dE1pbk1heExlbmd0aDogXCLQkdGD0LTRjCDQu9Cw0YHQutCwINCy0LLQtdC00ZbRgtGMINCx0ZbQu9GM0YjQtSB7MH0g0Lgg0LzQtdC90YjQtSB7MX0g0YHQuNC80LLQvtC70ZbQsi5cIixcbiAgbWluUm93Q291bnRFcnJvcjogXCLQkdGD0LTRjCDQu9Cw0YHQutCwLCDQt9Cw0L/QvtCy0L3RltGC0Ywg0L3QtSDQvNC10L3RiNC1IHswfSDRgNGP0LTQutGW0LIuXCIsXG4gIG1pblNlbGVjdEVycm9yOiBcItCR0YPQtNGMINC70LDRgdC60LAsINCy0LjQsdC10YDRltGC0Ywg0YXQvtGH0LAg0LEgezB9INCy0LDRgNGW0LDQvdGC0ZbQsi5cIixcbiAgbWF4U2VsZWN0RXJyb3I6IFwi0JHRg9C00Ywg0LvQsNGB0LrQsCwg0LLQuNCx0LXRgNGW0YLRjCDQvdC1INCx0ZbQu9GM0YjQtSB7MH0g0LLQsNGA0ZbQsNC90YLRltCyLlwiLFxuICBudW1lcmljTWluTWF4OlxuICAgIFwiJ3swfScg0L/QvtCy0LjQvdC90L4g0LHRg9GC0Lgg0L3QtSDQvNC10L3RiNC1INC90ZbQtiB7MX0sINGWINC90LUg0LHRltC70YzRiNC1INC90ZbQtiB7Mn1cIixcbiAgbnVtZXJpY01pbjogXCInezB9JyDQv9C+0LLQuNC90L3QviDQsdGD0YLQuCDQvdC1INC80LXQvdGI0LUg0L3RltC2IHsxfVwiLFxuICBudW1lcmljTWF4OiBcIid7MH0nINC/0L7QstC40L3QvdC+INCx0YPRgtC4INC90LUg0LHRltC70YzRiNC1INC90ZbQtiB7MX1cIixcbiAgaW52YWxpZEVtYWlsOiBcItCR0YPQtNGMINC70LDRgdC60LAsINCy0LLQtdC00ZbRgtGMINC00ZbQudGB0L3RgyDQsNC00YDQtdGB0YMg0LXQu9C10LrRgtGA0L7QvdC90L7RlyDQv9C+0YjRgtC4LlwiLFxuICBpbnZhbGlkRXhwcmVzc2lvbjogXCLQktC40YDQsNC3IHswfSDQv9C+0LLQuNC90LXQvSDQv9C+0LLQtdGA0YLQsNGC0LggJ3RydWUnLlwiLFxuICB1cmxSZXF1ZXN0RXJyb3I6IFwi0JfQsNC/0LjRgiDQv9C+0LLQtdGA0L3Rg9CyINC/0L7QvNC40LvQutGDICd7MH0nLiB7MX1cIixcbiAgdXJsR2V0Q2hvaWNlc0Vycm9yOlxuICAgIFwi0JLRltC00L/QvtCy0ZbQtNGMINC90LAg0LfQsNC/0LjRgiDQv9C+0LLQtdGA0L3Rg9C70LDRgdGMINC/0L7RgNC+0LbQvdGM0L7RjiDQsNCx0L4g0LLQu9Cw0YHRgtC40LLRltGC0YwgJ3BhdGgnINCy0LrQsNC30LDQvdC+INC90LXQstGW0YDQvdC+XCIsXG4gIGV4Y2VlZE1heFNpemU6IFwi0KDQvtC30LzRltGAINGE0LDQudC70YMg0L3QtSDQv9C+0LLQuNC90LXQvSDQv9C10YDQtdCy0LjRidGD0LLQsNGC0LggezB9LlwiLFxuICBvdGhlclJlcXVpcmVkRXJyb3I6IFwi0JHRg9C00Ywg0LvQsNGB0LrQsCwg0LLQstC10LTRltGC0Ywg0LTQsNC90ZYg0LIg0L/QvtC70LUgJ9CG0L3RiNC1J1wiLFxuICB1cGxvYWRpbmdGaWxlOlxuICAgIFwi0JLQsNGIINGE0LDQudC7INC30LDQstCw0L3RgtCw0LbRg9GU0YLRjNGB0Y8uINCX0LDRh9C10LrQsNC50YLQtSDQtNC10LrRltC70YzQutCwINGB0LXQutGD0L3QtCDRliDRgdC/0YDQvtCx0YPQudGC0LUg0LfQvdC+0LLRgy5cIixcbiAgbG9hZGluZ0ZpbGU6IFwi0JfQsNCy0LDQvdGC0LDQttC10L3QvdGPLi4uXCIsXG4gIGNob29zZUZpbGU6IFwi0JLQuNCx0LXRgNGW0YLRjCDRhNCw0LnQuyjQuCkuLi5cIixcbiAgbm9GaWxlQ2hvc2VuOiBcItCk0LDQudC7INC90LUg0LLQuNCx0YDQsNC90L5cIixcbiAgY29uZmlybURlbGV0ZTogXCLQktC4INGF0L7Rh9C10YLQtSDQstC40LTQsNC70LjRgtC4INC30LDQv9C40YE/XCIsXG4gIGtleUR1cGxpY2F0aW9uRXJyb3I6IFwi0KbQtSDQt9C90LDRh9C10L3QvdGPINC/0L7QstC40L3QvdC+INCx0YPRgtC4INGD0L3RltC60LDQu9GM0L3QuNC8LlwiLFxuICBhZGRDb2x1bW46IFwi0JTQvtC00LDRgtC4INC60L7Qu9C+0L3QutGDXCIsXG4gIGFkZFJvdzogXCLQlNC+0LTQsNGC0Lgg0YDRj9C00L7QulwiLFxuICByZW1vdmVSb3c6IFwi0JLQuNC00LDQu9C40YLQuFwiLFxuICBhZGRQYW5lbDogXCLQlNC+0LTQsNGC0Lgg0L3QvtCy0YNcIixcbiAgcmVtb3ZlUGFuZWw6IFwi0JLQuNC00LDQu9C40YLQuFwiLFxuICBjaG9pY2VzX0l0ZW06IFwi0JLQsNGA0ZbQsNC90YJcIixcbiAgbWF0cml4X2NvbHVtbjogXCLQmtC+0LvQvtC90LrQsFwiLFxuICBtYXRyaXhfcm93OiBcItCg0Y/QtNC+0LpcIixcbiAgc2F2aW5nRGF0YTogXCLQoNC10LfRg9C70YzRgtCw0YLQuCDQt9Cx0LXRgNGW0LPQsNGO0YLRjNGB0Y8g0L3QsCDRgdC10YDQstC10YAuLi5cIixcbiAgc2F2aW5nRGF0YUVycm9yOiBcItCS0ZbQtNCx0YPQu9Cw0YHRjyDQv9C+0LzQuNC70LrQsCwg0YDQtdC30YPQu9GM0YLQsNGCINC90LUg0LHRg9CyINC30LHQtdGA0LXQttC10L3QuNC5LlwiLFxuICBzYXZpbmdEYXRhU3VjY2VzczogXCLQoNC10LfQstGD0LvRjNGC0LDRgiDRg9GB0L/RltGI0L3QviDQt9Cx0LXRgNC10LbQtdC90LjQuSFcIixcbiAgc2F2ZUFnYWluQnV0dG9uOiBcItCh0L/RgNC+0LHRg9Cy0LDRgtC4INC30L3QvtCy0YNcIixcbiAgdGltZXJNaW46IFwi0YXQslwiLFxuICB0aW1lclNlYzogXCLRgdC10LpcIixcbiAgdGltZXJTcGVudEFsbDogXCLQktC4INCy0LjRgtGA0LDRgtC40LvQuCB7MH0g0L3QsCDRhtGW0Lkg0YHRgtC+0YDRltC90YbRliDRliB7MX0g0LfQsNCz0LDQu9C+0LwuXCIsXG4gIHRpbWVyU3BlbnRQYWdlOiBcItCS0Lgg0LLQuNGC0YDQsNGC0LjQu9C4IHswfSDQvdCwINGG0ZbQuSDRgdGC0L7RgNGW0L3RhtGWLlwiLFxuICB0aW1lclNwZW50U3VydmV5OiBcItCS0Lgg0LLQuNGC0YDQsNGC0LjQu9C4IHswfSDQv9GA0L7RgtGP0LPQvtC8INGC0LXRgdGC0YMuXCIsXG4gIHRpbWVyTGltaXRBbGw6XG4gICAgXCLQktC4INCy0LjRgtGA0LDRgtC40LvQuCB7MH0g0LcgezF9INC90LAg0YbRltC5INGB0YLQvtGA0ZbQvdGG0ZYg0ZYgezJ9INC3IHszfSDQtNC70Y8g0LLRgdGM0L7Qs9C+INGC0LXRgdGC0YMuXCIsXG4gIHRpbWVyTGltaXRQYWdlOiBcItCS0Lgg0LLQuNGC0YDQsNGC0LjQu9C4IHswfSDQtyB7MX0g0L3QsCDRhtGW0Lkg0YHRgtC+0YDRltC90YbRli5cIixcbiAgdGltZXJMaW1pdFN1cnZleTogXCLQktC4INCy0LjRgtGA0LDRgtC40LvQuCB7MH0g0LcgezF9INC00LvRjyDQstGB0YzQvtCz0L4g0YLQtdGB0YLRgy5cIixcbiAgY2xlYW5DYXB0aW9uOiBcItCe0YfQuNGB0YLQuNGC0LhcIixcbiAgY2xlYXJDYXB0aW9uOiBcItCe0YfQuNGB0YLQuNGC0LhcIixcbiAgcmVtb3ZlRmlsZUNhcHRpb246IFwi0JLQuNC00LDQu9C40YLQuCDRhNCw0LnQu1wiXG59O1xuXG5zdXJ2ZXlMb2NhbGl6YXRpb24ubG9jYWxlc1tcInVhXCJdID0gdWtyYWluaWFuU3VydmV5U3RyaW5ncztcbnN1cnZleUxvY2FsaXphdGlvbi5sb2NhbGVOYW1lc1tcInVhXCJdID0gXCLRg9C60YDQsNGX0L3RgdGM0LrQsFwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2FsaXphdGlvbi91a3JhaW5pYW4udHMiLCJpbXBvcnQgeyBRdWVzdGlvbkZhY3RvcnkgfSBmcm9tIFwiLi9xdWVzdGlvbmZhY3RvcnlcIjtcbmltcG9ydCB7IFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBMb2NhbGl6YWJsZVN0cmluZyB9IGZyb20gXCIuL2xvY2FsaXphYmxlc3RyaW5nXCI7XG5pbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9zdXJ2ZXlTdHJpbmdzXCI7XG5cbi8qKlxuICogQSBNb2RlbCBmb3IgYSBib29sZWFuIHF1ZXN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Cb29sZWFuTW9kZWwgZXh0ZW5kcyBRdWVzdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwibGFiZWxcIiwgdGhpcywgdHJ1ZSk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcImxhYmVsRmFsc2VcIiwgdGhpcywgdHJ1ZSk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcImxhYmVsVHJ1ZVwiLCB0aGlzLCB0cnVlKTtcbiAgICB0aGlzLmxhYmVsVHJ1ZSA9IHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJib29sZWFuQ2hlY2tlZExhYmVsXCIpO1xuICAgIHRoaXMubGFiZWxGYWxzZSA9IHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJib29sZWFuVW5jaGVja2VkTGFiZWxcIik7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJib29sZWFuXCI7XG4gIH1cbiAgaXNMYXlvdXRUeXBlU3VwcG9ydGVkKGxheW91dFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXN0aW9uIGNoZWNrIHdpbGwgYmUgcmVuZGVyZWQgaW4gaW5kZXRlcm1pbmF0ZSBtb2RlLiB2YWx1ZSBpcyBlbXB0eS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRW1wdHkoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc1RpdGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHN1cHBvcnRHb05leHRQYWdlQXV0b21hdGljKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBHZXQvc2V0IHF1ZXN0aW9uIHZhbHVlIGluIDMgbW9kZXM6IGluZGV0ZXJtaW5hdGUgKHZhbHVlIGlzIGVtcHR5KSwgdHJ1ZSAoY2hlY2sgaXMgc2V0KSBhbmQgZmFsc2UgKGNoZWNrIGlzIHVuc2V0KS5cbiAgICogQHNlZSB2YWx1ZVRydWVcbiAgICogQHNlZSB2YWx1ZUZhbHNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNoZWNrZWRWYWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzRW1wdHkoKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPT0gdGhpcy5nZXRWYWx1ZVRydWUoKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNoZWNrZWRWYWx1ZSh2YWw6IGFueSkge1xuICAgIGlmICh0aGlzLmlzVmFsdWVFbXB0eSh2YWwpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbCA9PSB0cnVlID8gdGhpcy5nZXRWYWx1ZVRydWUoKSA6IHRoaXMuZ2V0VmFsdWVGYWxzZSgpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IHN0YXRlIG9mIHRoZSBjaGVjazogXCJpbmRldGVybWluYXRlXCIgLSBkZWZhdWx0ICh2YWx1ZSBpcyBlbXB0eS9udWxsKSwgXCJ0cnVlXCIgLSB2YWx1ZSBlcXVhbHMgdmFsdWVUcnVlIG9yIHRydWUsIFwiZmFsc2VcIiAtIHZhbHVlIGVxdWFscyB2YWx1ZUZhbHNlIG9yIGZhbHNlLlxuICAgKi9cbiAgcHVibGljIGdldCBkZWZhdWx0VmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiZGVmYXVsdFZhbHVlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVmYXVsdFZhbHVlKHZhbDogYW55KSB7XG4gICAgaWYgKHZhbCA9PT0gdHJ1ZSkgdmFsID0gXCJ0cnVlXCI7XG4gICAgaWYgKHZhbCA9PT0gZmFsc2UpIHZhbCA9IFwiZmFsc2VcIjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJkZWZhdWx0VmFsdWVcIiwgdmFsKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlV2l0aERlZmF1bHRzKCk7XG4gIH1cbiAgcHVibGljIGdldERlZmF1bHRWYWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSA9PSBcImluZGV0ZXJtaW5hdGVcIikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlID09IFwidHJ1ZVwiXG4gICAgICA/IHRoaXMuZ2V0VmFsdWVUcnVlKClcbiAgICAgIDogdGhpcy5nZXRWYWx1ZUZhbHNlKCk7XG4gIH1cbiAgcHVibGljIGdldCBsb2NUaXRsZSgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1RpdGxlIHx8IHRoaXMuaXNWYWx1ZUVtcHR5KHRoaXMubG9jTGFiZWwudGV4dClcbiAgICAgID8gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcInRpdGxlXCIpXG4gICAgICA6IHRoaXMubG9jTGFiZWw7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjaGVja2JveCBsYWJlbC4gSWYgaXQgaXMgZW1wdHkgYW5kIHNob3dUaXRsZSBpcyBmYWxzZSB0aGVuIHRpdGxlIGlzIHJlbmRlcmVkXG4gICAqIEBzZWUgc2hvd1RpdGxlXG4gICAqIEBzZWUgdGl0bGVcbiAgICovXG4gIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJsYWJlbFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGxhYmVsKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJsYWJlbFwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NMYWJlbCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJsYWJlbFwiKTtcbiAgfVxuICBnZXQgbG9jRGlzcGxheUxhYmVsKCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICBpZiAodGhpcy5sb2NMYWJlbC50ZXh0KSByZXR1cm4gdGhpcy5sb2NMYWJlbDtcbiAgICByZXR1cm4gdGhpcy5zaG93VGl0bGUgPyB0aGlzLmxvY0xhYmVsIDogdGhpcy5sb2NUaXRsZTtcbiAgfVxuIFxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHksIGlmIHlvdSB3YW50IHRvIGhhdmUgYSBkaWZmZXJlbnQgbGFiZWwgZm9yIHN0YXRlIHdoZW4gY2hlY2sgaXMgc2V0LlxuICAgKi9cbiAgcHVibGljIGdldCBsYWJlbFRydWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJsYWJlbFRydWVcIik7XG4gIH1cbiAgcHVibGljIHNldCBsYWJlbFRydWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImxhYmVsVHJ1ZVwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NMYWJlbFRydWUoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwibGFiZWxUcnVlXCIpO1xuICB9XG4gXG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSwgaWYgeW91IHdhbnQgdG8gaGF2ZSBhIGRpZmZlcmVudCBsYWJlbCBmb3Igc3RhdGUgd2hlbiBjaGVjayBpcyB1bnNldC5cbiAgICovXG4gIHB1YmxpYyBnZXQgbGFiZWxGYWxzZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImxhYmVsRmFsc2VcIik7XG4gIH1cbiAgcHVibGljIHNldCBsYWJlbEZhbHNlKHZhbDogYW55KSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJsYWJlbEZhbHNlXCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY0xhYmVsRmFsc2UoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwibGFiZWxGYWxzZVwiKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUgdG8gc2hvdyB0aGUgcXVlc3Rpb24gdGl0bGUuIEl0IGlzIGhpZGRlbiBieSBkZWZhdWx0LlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93VGl0bGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInNob3dUaXRsZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNob3dUaXRsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzaG93VGl0bGVcIiwgdmFsKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5LCBpZiB5b3Ugd2FudCB0byBoYXZlIGEgZGlmZmVyZW50IHZhbHVlIGZyb20gdHJ1ZSB3aGVuIGNoZWNrIGlzIHNldC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsdWVUcnVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInZhbHVlVHJ1ZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlVHJ1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInZhbHVlVHJ1ZVwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSwgaWYgeW91IHdhbnQgdG8gaGF2ZSBhIGRpZmZlcmVudCB2YWx1ZSBmcm9tIGZhbHNlIHdoZW4gY2hlY2sgaXMgdW5zZXQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbHVlRmFsc2UoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidmFsdWVGYWxzZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlRmFsc2UodmFsOiBhbnkpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJ2YWx1ZUZhbHNlXCIsIHZhbCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRWYWx1ZVRydWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVRydWUgPyB0aGlzLnZhbHVlVHJ1ZSA6IHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBnZXRWYWx1ZUZhbHNlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVGYWxzZSA/IHRoaXMudmFsdWVGYWxzZSA6IGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBzZXREZWZhdWx0VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlID09IFwidHJ1ZVwiKSB0aGlzLmNoZWNrZWRWYWx1ZSA9IHRydWU7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlID09IFwiZmFsc2VcIikgdGhpcy5jaGVja2VkVmFsdWUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUgPT0gXCJpbmRldGVybWluYXRlXCIpIHRoaXMudmFsdWUgPSBudWxsO1xuICB9XG59XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwiYm9vbGVhblwiLFxuICBbXG4gICAge1xuICAgICAgbmFtZTogXCJkZWZhdWx0VmFsdWU6ZHJvcGRvd25cIixcbiAgICAgIGFsdGVybmF0aXZlTmFtZTogXCJib29sZWFuRGVmYXVsdFZhbHVlXCIsXG4gICAgICBkZWZhdWx0OiBcImluZGV0ZXJtaW5hdGVcIixcbiAgICAgIGNob2ljZXM6IFtcImluZGV0ZXJtaW5hdGVcIiwgXCJmYWxzZVwiLCBcInRydWVcIl1cbiAgICB9LFxuICAgIHsgbmFtZTogXCJsYWJlbDp0ZXh0XCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NMYWJlbFwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJsYWJlbFRydWU6dGV4dFwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0xhYmVsVHJ1ZVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImxhYmVsRmFsc2U6dGV4dFwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0xhYmVsRmFsc2VcIlxuICAgIH0sXG4gICAgXCJzaG93VGl0bGU6Ym9vbGVhblwiLFxuICAgIFwidmFsdWVUcnVlXCIsXG4gICAgXCJ2YWx1ZUZhbHNlXCJcbiAgXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBRdWVzdGlvbkJvb2xlYW5Nb2RlbChcIlwiKTtcbiAgfSxcbiAgXCJxdWVzdGlvblwiXG4pO1xuUXVlc3Rpb25GYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyUXVlc3Rpb24oXCJib29sZWFuXCIsIG5hbWUgPT4ge1xuICByZXR1cm4gbmV3IFF1ZXN0aW9uQm9vbGVhbk1vZGVsKG5hbWUpO1xufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVlc3Rpb25fYm9vbGVhbi50cyIsImltcG9ydCB7IFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZhY3RvcnkgfSBmcm9tIFwiLi9xdWVzdGlvbmZhY3RvcnlcIjtcbmltcG9ydCB7IFF1ZXN0aW9uQ2hlY2tib3hCYXNlIH0gZnJvbSBcIi4vcXVlc3Rpb25fYmFzZXNlbGVjdFwiO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gXCIuL2hlbHBlcnNcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vc3VydmV5U3RyaW5nc1wiO1xuaW1wb3J0IHsgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGEgY2hlY2tib3ggcXVlc3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uQ2hlY2tib3hNb2RlbCBleHRlbmRzIFF1ZXN0aW9uQ2hlY2tib3hCYXNlIHtcbiAgcHJpdmF0ZSBub25lSXRlbVZhbHVlOiBJdGVtVmFsdWUgPSBuZXcgSXRlbVZhbHVlKFwibm9uZVwiKTtcbiAgcHJpdmF0ZSBzZWxlY3RBbGxJdGVtVmFsdWU6IEl0ZW1WYWx1ZSA9IG5ldyBJdGVtVmFsdWUoXCJzZWxlY3RhbGxcIik7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB2YXIgbm9uZUl0ZW1UZXh0ID0gdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcIm5vbmVUZXh0XCIsIHRoaXMsIHRydWUpO1xuICAgIG5vbmVJdGVtVGV4dC5vbkdldFRleHRDYWxsYmFjayA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgIHJldHVybiAhIXRleHQgPyB0ZXh0IDogc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm5vbmVJdGVtVGV4dFwiKTtcbiAgICB9O1xuICAgIHRoaXMubm9uZUl0ZW1WYWx1ZS5sb2NPd25lciA9IHRoaXM7XG4gICAgdGhpcy5ub25lSXRlbVZhbHVlLnNldExvY1RleHQobm9uZUl0ZW1UZXh0KTtcblxuICAgIHZhciBzZWxlY3RBbGxJdGVtVGV4dCA9IHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXG4gICAgICBcInNlbGVjdEFsbFRleHRcIixcbiAgICAgIHRoaXMsXG4gICAgICB0cnVlXG4gICAgKTtcbiAgICBzZWxlY3RBbGxJdGVtVGV4dC5vbkdldFRleHRDYWxsYmFjayA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgIHJldHVybiAhIXRleHQgPyB0ZXh0IDogc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcInNlbGVjdEFsbEl0ZW1UZXh0XCIpO1xuICAgIH07XG4gICAgdGhpcy5zZWxlY3RBbGxJdGVtLmxvY093bmVyID0gdGhpcztcbiAgICB0aGlzLnNlbGVjdEFsbEl0ZW0uc2V0TG9jVGV4dChzZWxlY3RBbGxJdGVtVGV4dCk7XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0aWVzVmFsdWVDaGFuZ2VkKFxuICAgICAgW1wiaGFzTm9uZVwiLCBcIm5vbmVUZXh0XCIsIFwiaGFzU2VsZWN0QWxsXCIsIFwic2VsZWN0QWxsVGV4dFwiXSxcbiAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLm9uVmlzaWJsZUNob2ljZXNDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25DcmVhdGluZygpIHtcbiAgICBzdXBlci5vbkNyZWF0aW5nKCk7XG4gICAgdGhpcy5jcmVhdGVOZXdBcnJheShcInJlbmRlcmVkVmFsdWVcIik7XG4gICAgdGhpcy5jcmVhdGVOZXdBcnJheShcInZhbHVlXCIpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRGaXJzdElucHV0RWxlbWVudElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRJZCArIFwiXzBcIjtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2VsZWN0IGFsbCBpdGVtLiBCeSB1c2luZyB0aGlzIHByb3BlcnR5LCB5b3UgbWF5IGNoYW5nZSBwcm9ncmFtbWF0aWNhbGx5IGl0J3MgdmFsdWUgYW5kIHRleHQuXG4gICAqIEBzZWUgaGFzU2VsZWN0QWxsXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNlbGVjdEFsbEl0ZW0oKTogSXRlbVZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RBbGxJdGVtVmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG5vbmUgaXRlbS4gQnkgdXNpbmcgdGhpcyBwcm9wZXJ0eSwgeW91IG1heSBjaGFuZ2UgcHJvZ3JhbW1hdGljYWxseSBpdCdzIHZhbHVlIGFuZCB0ZXh0LlxuICAgKiBAc2VlIGhhc05vbmVcbiAgICovXG4gIHB1YmxpYyBnZXQgbm9uZUl0ZW0oKTogSXRlbVZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5ub25lSXRlbVZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBzZXQgdGhlIGRpZmZlcmVudCB0ZXh0IGZvciBub25lIGl0ZW0uXG4gICAqL1xuICBwdWJsaWMgZ2V0IG5vbmVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJub25lVGV4dFwiLFxuICAgICAgc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm5vbmVJdGVtVGV4dFwiKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCBub25lVGV4dCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwibm9uZVRleHRcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jTm9uZVRleHQoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwibm9uZVRleHRcIik7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIHNldCB0aGUgZGlmZmVyZW50IHRleHQgZm9yIFNlbGVjdCBBbGwgaXRlbS5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0QWxsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcbiAgICAgIFwic2VsZWN0QWxsVGV4dFwiLFxuICAgICAgc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcInNlbGVjdEFsbEl0ZW1UZXh0XCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNlbGVjdEFsbFRleHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInNlbGVjdEFsbFRleHRcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jU2VsZWN0QWxsVGV4dCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJzZWxlY3RBbGxUZXh0XCIpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlLCB0byBzaG93IHRoZSBcIlNlbGVjdCBBbGxcIiBpdGVtIG9uIHRoZSB0b3AuIElmIGVuZC11c2VyIGNoZWNrcyB0aGlzIGl0ZW0sIHRoZW4gYWxsIGl0ZW1zIGFyZSBjaGVja2VkLlxuICAgKi9cbiAgcHVibGljIGdldCBoYXNTZWxlY3RBbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImhhc1NlbGVjdEFsbFwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBoYXNTZWxlY3RBbGwodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiaGFzU2VsZWN0QWxsXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhbGwgaXRlbXMgYXJlIHNlbGVjdGVkXG4gICAqIEBzZWUgdG9nZ2xlU2VsZWN0QWxsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgdmFyIHZhbCA9IHRoaXMudmFsdWU7XG4gICAgaWYgKCF2YWwgfHwgIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmlzSXRlbVNlbGVjdGVkKHRoaXMubm9uZUl0ZW0pKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGFsbEl0ZW1Db3VudCA9IHRoaXMudmlzaWJsZUNob2ljZXMubGVuZ3RoO1xuICAgIGlmICh0aGlzLmhhc090aGVyKSBhbGxJdGVtQ291bnQtLTtcbiAgICBpZiAodGhpcy5oYXNOb25lKSBhbGxJdGVtQ291bnQtLTtcbiAgICBpZiAodGhpcy5oYXNTZWxlY3RBbGwpIGFsbEl0ZW1Db3VudC0tO1xuICAgIHZhciBzZWxlY3RlZENvdW50ID0gdmFsLmxlbmd0aDtcbiAgICBpZiAodGhpcy5pc0l0ZW1TZWxlY3RlZCh0aGlzLm90aGVySXRlbSkpIHNlbGVjdGVkQ291bnQtLTtcbiAgICByZXR1cm4gc2VsZWN0ZWRDb3VudCA9PT0gYWxsSXRlbUNvdW50O1xuICB9XG4gIHB1YmxpYyBzZXQgaXNBbGxTZWxlY3RlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyVmFsdWUoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEl0IHdpbGwgc2VsZWN0IGFsbCBpdGVtcywgZXhjZXB0IG90aGVyIGFuZCBub25lLiBJZiBhbGwgaXRlbXMgaGF2ZSBiZWVuIGFscmVhZHkgc2VsZWN0ZWQgdGhlbiBpdCB3aWxsIGNsZWFyIHRoZSB2YWx1ZVxuICAgKiBAc2VlIGlzQWxsU2VsZWN0ZWRcbiAgICogQHNlZSBzZWxlY3RBbGxcbiAgICovXG4gIHB1YmxpYyB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkID0gIXRoaXMuaXNBbGxTZWxlY3RlZDtcbiAgfVxuICAvKipcbiAgICogU2VsZWN0IGFsbCBpdGVtcywgZXhjZXB0IG90aGVyIGFuZCBub25lLlxuICAgKi9cbiAgcHVibGljIHNlbGVjdEFsbCgpIHtcbiAgICB2YXIgdmFsID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnZpc2libGVDaG9pY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IHRoaXMudmlzaWJsZUNob2ljZXNbaV07XG4gICAgICBpZiAoXG4gICAgICAgIGl0ZW0gPT09IHRoaXMubm9uZUl0ZW0gfHxcbiAgICAgICAgaXRlbSA9PT0gdGhpcy5vdGhlckl0ZW0gfHxcbiAgICAgICAgaXRlbSA9PT0gdGhpcy5zZWxlY3RBbGxJdGVtXG4gICAgICApXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgdmFsLnB1c2goaXRlbS52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUsIHRvIHNob3cgdGhlIFwiTm9uZVwiIGl0ZW0gb24gdGhlIGJvdHRvbS4gSWYgZW5kLXVzZXIgY2hlY2tzIHRoaXMgaXRlbSwgYWxsIG90aGVyIGl0ZW1zIHdvdWxkIGJlIHVuY2hlY2tlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzTm9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaGFzTm9uZVwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBoYXNOb25lKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImhhc05vbmVcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGl0ZW0gaXMgY2hlY2tlZFxuICAgKiBAcGFyYW0gaXRlbSBjaGVja2JveCBpdGVtIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgaXNJdGVtU2VsZWN0ZWQoaXRlbTogSXRlbVZhbHVlKTogYm9vbGVhbiB7XG4gICAgaWYgKGl0ZW0gPT09IHRoaXMuc2VsZWN0QWxsSXRlbSkgcmV0dXJuIHRoaXMuaXNBbGxTZWxlY3RlZDtcbiAgICB2YXIgdmFsID0gdGhpcy5yZW5kZXJlZFZhbHVlO1xuICAgIGlmICghdmFsIHx8ICFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKEhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyh2YWxbaV0sIGl0ZW0udmFsdWUpKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBzZXROZXdWYWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgbmV3VmFsdWUgPSB0aGlzLnZhbHVlRnJvbURhdGEobmV3VmFsdWUpO1xuICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgaWYgKCFuZXdWYWx1ZSkgbmV3VmFsdWUgPSBbXTtcbiAgICBpZiAoIXZhbHVlKSB2YWx1ZSA9IFtdO1xuICAgIGlmIChIZWxwZXJzLmlzVHdvVmFsdWVFcXVhbHModmFsdWUsIG5ld1ZhbHVlKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmhhc05vbmUpIHtcbiAgICAgIHZhciBwcmV2Tm9uZUluZGV4ID0gdGhpcy5ub25lSW5kZXhJbkFycmF5KHZhbHVlKTtcbiAgICAgIHZhciBuZXdOb25lSW5kZXggPSB0aGlzLm5vbmVJbmRleEluQXJyYXkobmV3VmFsdWUpO1xuICAgICAgaWYgKHByZXZOb25lSW5kZXggPiAtMSkge1xuICAgICAgICBpZiAobmV3Tm9uZUluZGV4ID4gLTEgJiYgbmV3VmFsdWUubGVuZ3RoID4gMSkge1xuICAgICAgICAgIG5ld1ZhbHVlLnNwbGljZShuZXdOb25lSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobmV3Tm9uZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICBuZXdWYWx1ZS5zcGxpY2UoMCwgbmV3VmFsdWUubGVuZ3RoKTtcbiAgICAgICAgICBuZXdWYWx1ZS5wdXNoKHRoaXMubm9uZUl0ZW0udmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyLnNldE5ld1ZhbHVlKG5ld1ZhbHVlKTtcbiAgfVxuICBwcml2YXRlIG5vbmVJbmRleEluQXJyYXkodmFsOiBhbnkpIHtcbiAgICBpZiAoIXZhbCB8fCAhQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gLTE7XG4gICAgdmFyIG5vbmVWYWx1ZSA9IHRoaXMubm9uZUl0ZW0udmFsdWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh2YWxbaV0gPT0gbm9uZVZhbHVlKSByZXR1cm4gaTtcbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIHByb3RlY3RlZCBjYW5Vc2VGaWx0ZXJlZENob2ljZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmhhc05vbmUgJiYgIXRoaXMuaGFzU2VsZWN0QWxsICYmIHN1cGVyLmNhblVzZUZpbHRlcmVkQ2hvaWNlcygpO1xuICB9XG4gIHByb3RlY3RlZCBhZGRUb1Zpc2libGVDaG9pY2VzKGl0ZW1zOiBBcnJheTxJdGVtVmFsdWU+KSB7XG4gICAgaWYgKHRoaXMuaGFzU2VsZWN0QWxsKSB7XG4gICAgICBpdGVtcy51bnNoaWZ0KHRoaXMuc2VsZWN0QWxsSXRlbSk7XG4gICAgfVxuICAgIHN1cGVyLmFkZFRvVmlzaWJsZUNob2ljZXMoaXRlbXMpO1xuICAgIGlmICh0aGlzLmhhc05vbmUpIHtcbiAgICAgIGl0ZW1zLnB1c2godGhpcy5ub25lSXRlbSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBnZXREaXNwbGF5VmFsdWVDb3JlKGtleXNBc1RleHQ6IGJvb2xlYW4sIHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICByZXR1cm4gc3VwZXIuZ2V0RGlzcGxheVZhbHVlQ29yZShrZXlzQXNUZXh0LCB2YWx1ZSk7XG4gICAgdmFyIGl0ZW1zID0gdGhpcy52aXNpYmxlQ2hvaWNlcztcbiAgICB2YXIgc3RyID0gXCJcIjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdmFsU3RyID0gdGhpcy5nZXRDaG9pY2VzRGlzcGxheVZhbHVlKGl0ZW1zLCB2YWx1ZVtpXSk7XG4gICAgICBpZiAodmFsU3RyKSB7XG4gICAgICAgIGlmIChzdHIpIHN0ciArPSBcIiwgXCI7XG4gICAgICAgIHN0ciArPSB2YWxTdHI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgcHJvdGVjdGVkIGNsZWFySW5jb3JyZWN0VmFsdWVzQ29yZSgpIHtcbiAgICB0aGlzLmNsZWFySW5jb3JyZWN0QW5kRGlzYWJsZWRWYWx1ZXMoZmFsc2UpO1xuICB9XG4gIHByb3RlY3RlZCBjbGVhckRpc2FibGVkVmFsdWVzQ29yZSgpIHtcbiAgICB0aGlzLmNsZWFySW5jb3JyZWN0QW5kRGlzYWJsZWRWYWx1ZXModHJ1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBjbGVhckluY29ycmVjdEFuZERpc2FibGVkVmFsdWVzKGNsZWFyRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB2YXIgdmFsID0gdGhpcy52YWx1ZTtcbiAgICBpZiAoIXZhbCkgcmV0dXJuO1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpIHx8IHZhbC5sZW5ndGggPT0gMCkge1xuICAgICAgaWYgKCFjbGVhckRpc2FibGVkKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc0NvbW1lbnQpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNsZWFyVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgbmV3VmFsdWUgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKFxuICAgICAgICAoIWNsZWFyRGlzYWJsZWQgJiYgIXRoaXMuY2FuQ2xlYXJWYWx1ZUFuVW5rbm93KHZhbFtpXSkpIHx8XG4gICAgICAgIChjbGVhckRpc2FibGVkICYmICF0aGlzLmlzVmFsdWVEaXNhYmxlZCh2YWxbaV0pKVxuICAgICAgKSB7XG4gICAgICAgIG5ld1ZhbHVlLnB1c2godmFsW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5ld1ZhbHVlLmxlbmd0aCA9PSB2YWwubGVuZ3RoKSByZXR1cm47XG4gICAgaWYgKG5ld1ZhbHVlLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLmNsZWFyVmFsdWUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0Q29uZGl0aW9uSnNvbihvcGVyYXRvcjogc3RyaW5nID0gbnVsbCwgcGF0aDogc3RyaW5nID0gbnVsbCk6IGFueSB7XG4gICAgdmFyIGpzb24gPSBzdXBlci5nZXRDb25kaXRpb25Kc29uKCk7XG4gICAgaWYgKG9wZXJhdG9yID09IFwiY29udGFpbnNcIiB8fCBvcGVyYXRvciA9PSBcIm5vdGNvbnRhaW5zXCIpIHtcbiAgICAgIGpzb25bXCJ0eXBlXCJdID0gXCJyYWRpb2dyb3VwXCI7XG4gICAgfVxuICAgIHJldHVybiBqc29uO1xuICB9XG4gIHB1YmxpYyBpc0Fuc3dlckNvcnJlY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEhlbHBlcnMuaXNBcnJheUNvbnRhaW5zRXF1YWwodGhpcy52YWx1ZSwgdGhpcy5jb3JyZWN0QW5zd2VyKTtcbiAgfVxuICBwcm90ZWN0ZWQgc2V0RGVmYXVsdFZhbHVlV2l0aE90aGVycygpIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5yZW5kZXJlZFZhbHVlRnJvbURhdGFDb3JlKHRoaXMuZGVmYXVsdFZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0SGFzT3RoZXIodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIXZhbCB8fCAhQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHZhbC5pbmRleE9mKHRoaXMub3RoZXJJdGVtLnZhbHVlKSA+PSAwO1xuICB9XG4gIHByb3RlY3RlZCB2YWx1ZUZyb21EYXRhKHZhbDogYW55KTogYW55IHtcbiAgICBpZiAoIXZhbCkgcmV0dXJuIHZhbDtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIFtzdXBlci52YWx1ZUZyb21EYXRhKHZhbCldO1xuICAgIGxldCB2YWx1ZSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgY2hvaWNlaXRlbSA9IEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZSh0aGlzLmFjdGl2ZUNob2ljZXMsIHZhbFtpXSk7XG4gICAgICBpZiAoISFjaG9pY2VpdGVtKSB7XG4gICAgICAgIHZhbHVlLnB1c2goY2hvaWNlaXRlbS52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZS5wdXNoKHZhbFtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgcmVuZGVyZWRWYWx1ZUZyb21EYXRhQ29yZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKCF2YWwgfHwgIUFycmF5LmlzQXJyYXkodmFsKSkgdmFsID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh2YWxbaV0gPT0gdGhpcy5vdGhlckl0ZW0udmFsdWUpIHJldHVybiB2YWw7XG4gICAgICBpZiAodGhpcy5oYXNVbmtub3duVmFsdWUodmFsW2ldKSkge1xuICAgICAgICB0aGlzLmNvbW1lbnQgPSB2YWxbaV07XG4gICAgICAgIHZhciBuZXdWYWwgPSB2YWwuc2xpY2UoKTtcbiAgICAgICAgbmV3VmFsW2ldID0gdGhpcy5vdGhlckl0ZW0udmFsdWU7XG4gICAgICAgIHJldHVybiBuZXdWYWw7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH1cbiAgcHJvdGVjdGVkIHJlbmRyZWRWYWx1ZVRvRGF0YUNvcmUodmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICghdmFsIHx8ICF2YWwubGVuZ3RoKSByZXR1cm4gdmFsO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodmFsW2ldID09IHRoaXMub3RoZXJJdGVtLnZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLmdldENvbW1lbnQoKSkge1xuICAgICAgICAgIHZhciBuZXdWYWwgPSB2YWwuc2xpY2UoKTtcbiAgICAgICAgICBuZXdWYWxbaV0gPSB0aGlzLmdldENvbW1lbnQoKTtcbiAgICAgICAgICByZXR1cm4gbmV3VmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH1cbiAgcHJvdGVjdGVkIGhhc1Vua25vd25WYWx1ZSh2YWw6IGFueSwgaW5jbHVkZU90aGVyOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5oYXNOb25lICYmIHZhbCA9PSB0aGlzLm5vbmVJdGVtVmFsdWUudmFsdWUpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gc3VwZXIuaGFzVW5rbm93blZhbHVlKHZhbCwgaW5jbHVkZU90aGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiY2hlY2tib3hcIjtcbiAgfVxufVxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJjaGVja2JveFwiLFxuICBbXG4gICAgXCJoYXNTZWxlY3RBbGw6Ym9vbGVhblwiLFxuICAgIFwiaGFzTm9uZTpib29sZWFuXCIsXG4gICAgeyBuYW1lOiBcIm5vbmVUZXh0XCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NOb25lVGV4dFwiIH0sXG4gICAgeyBuYW1lOiBcInNlbGVjdEFsbFRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1NlbGVjdEFsbFRleHRcIiB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25DaGVja2JveE1vZGVsKFwiXCIpO1xuICB9LFxuICBcImNoZWNrYm94YmFzZVwiXG4pO1xuUXVlc3Rpb25GYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyUXVlc3Rpb24oXCJjaGVja2JveFwiLCBuYW1lID0+IHtcbiAgdmFyIHEgPSBuZXcgUXVlc3Rpb25DaGVja2JveE1vZGVsKG5hbWUpO1xuICBxLmNob2ljZXMgPSBRdWVzdGlvbkZhY3RvcnkuRGVmYXVsdENob2ljZXM7XG4gIHJldHVybiBxO1xufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVlc3Rpb25fY2hlY2tib3gudHMiLCJpbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBMb2NhbGl6YWJsZVN0cmluZyB9IGZyb20gXCIuL2xvY2FsaXphYmxlc3RyaW5nXCI7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGEgY29tbWVudCBxdWVzdGlvblxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Db21tZW50TW9kZWwgZXh0ZW5kcyBRdWVzdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwicGxhY2VIb2xkZXJcIiwgdGhpcyk7XG4gIH1cbiAgcHJvdGVjdGVkIGlzVGV4dFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgbWF4aW1pbSB0ZXh0IGxlbmd0aC4gSWYgaXQgaXMgLTEsIGRlZmF1bCB2YWx1ZSwgdGhlbiB0aGUgc3VydmV5IG1heFRleHRMZW5ndGggcHJvcGVydHkgd2lsbCBiZSB1c2VkLlxuICAgKiBJZiBpdCBpcyAwLCB0aGVuIHRoZSB2YWx1ZSBpcyB1bmxpbWl0ZWRcbiAgICogQHNlZSBTdXJ2ZXlNb2RlbC5tYXhUZXh0TGVuZ3RoXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1heExlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJtYXhMZW5ndGhcIik7XG4gIH1cbiAgcHVibGljIHNldCBtYXhMZW5ndGgodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJtYXhMZW5ndGhcIiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0TWF4TGVuZ3RoKCk6IGFueSB7XG4gICAgcmV0dXJuIEhlbHBlcnMuZ2V0TWF4TGVuZ3RoKFxuICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICB0aGlzLnN1cnZleSA/IHRoaXMuc3VydmV5Lm1heFRleHRMZW5ndGggOiAtMVxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIHNldCB0aGUgaW5wdXQgcGxhY2UgaG9sZGVyLlxuICAgKi9cbiAgcHVibGljIGdldCBwbGFjZUhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInBsYWNlSG9sZGVyXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcGxhY2VIb2xkZXIodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInBsYWNlSG9sZGVyXCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY1BsYWNlSG9sZGVyKCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcInBsYWNlSG9sZGVyXCIpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaHRtbCByb3dzIGF0dHJpYnV0ZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgcm93cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJyb3dzXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcm93cyh2YWw6IG51bWJlcikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInJvd3NcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGh0bWwgY29scyBhdHRyaWJ1dGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY29sc1wiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNvbHModmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjb2xzXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjb21tZW50XCI7XG4gIH1cbiAgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuaXNFbXB0eSgpIHx8IHRoaXMudmFsdWUgPT09IFwiXCI7XG4gIH1cbn1cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwiY29tbWVudFwiLFxuICBbXG4gICAgeyBuYW1lOiBcIm1heExlbmd0aDpudW1iZXJcIiwgZGVmYXVsdDogLTEgfSxcbiAgICB7IG5hbWU6IFwiY29sczpudW1iZXJcIiwgZGVmYXVsdDogNTAgfSxcbiAgICB7IG5hbWU6IFwicm93czpudW1iZXJcIiwgZGVmYXVsdDogNCB9LFxuICAgIHsgbmFtZTogXCJwbGFjZUhvbGRlclwiLCBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jUGxhY2VIb2xkZXJcIiB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25Db21tZW50TW9kZWwoXCJcIik7XG4gIH0sXG4gIFwicXVlc3Rpb25cIlxuKTtcblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwiY29tbWVudFwiLCBuYW1lID0+IHtcbiAgcmV0dXJuIG5ldyBRdWVzdGlvbkNvbW1lbnRNb2RlbChuYW1lKTtcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX2NvbW1lbnQudHMiLCJpbXBvcnQgeyBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGFuIHF1ZXN0aW9uIHRoYXQgcmVuZGVycyBlbXB0eSBcImRpdlwiIHRhZy4gSXQgdXNlZCBhcyBhIGJhc2UgY2xhc3MgZm9yIHNvbWUgY3VzdG9tIHdpZGdldHNcbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uRW1wdHlNb2RlbCBleHRlbmRzIFF1ZXN0aW9uIHtcbiAgY29uc3RydWN0b3IocHVibGljIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKG5hbWUpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiZW1wdHlcIjtcbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcImVtcHR5XCIsXG4gIFtdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXN0aW9uRW1wdHlNb2RlbChcIlwiKTtcbiAgfSxcbiAgXCJxdWVzdGlvblwiXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX2VtcHR5LnRzIiwiaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IFF1ZXN0aW9uRmFjdG9yeSB9IGZyb20gXCIuL3F1ZXN0aW9uZmFjdG9yeVwiO1xuaW1wb3J0IHsgU3VydmV5RXJyb3IsIEV2ZW50IH0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgVXBsb2FkaW5nRmlsZUVycm9yLCBFeGNlZWRTaXplRXJyb3IgfSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vc3VydmV5U3RyaW5nc1wiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGEgZmlsZSBxdWVzdGlvblxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25GaWxlTW9kZWwgZXh0ZW5kcyBRdWVzdGlvbiB7XG4gIHByaXZhdGUgaXNVcGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBpcyBmaXJlZCBhZnRlciBxdWVzdGlvbiBzdGF0ZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgKiA8YnIvPiBzZW5kZXIgdGhlIHF1ZXN0aW9uIG9iamVjdCB0aGF0IGZpcmVzIHRoZSBldmVudFxuICAgKiA8YnIvPiBvcHRpb25zLnN0YXRlIG5ldyBxdWVzdGlvbiBzdGF0ZSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBvblN0YXRlQ2hhbmdlZDogRXZlbnQ8XG4gICAgKHNlbmRlcjogUXVlc3Rpb25GaWxlTW9kZWwsIG9wdGlvbnM6IGFueSkgPT4gYW55LFxuICAgIGFueVxuICA+ID0gbmV3IEV2ZW50PChzZW5kZXI6IFF1ZXN0aW9uRmlsZU1vZGVsLCBvcHRpb25zOiBhbnkpID0+IGFueSwgYW55PigpO1xuICBwdWJsaWMgcHJldmlld1ZhbHVlOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgY3VycmVudFN0YXRlID0gXCJlbXB0eVwiO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJmaWxlXCI7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlLCB0byBzaG93IHRoZSBwcmV2aWV3IGZvciB0aGUgaW1hZ2UgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dQcmV2aWV3KCkge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93UHJldmlld1wiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNob3dQcmV2aWV3KHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dQcmV2aWV3XCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlLCB0byBhbGxvdyBzZWxlY3QgbXVsdGlwbGUgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFsbG93TXVsdGlwbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImFsbG93TXVsdGlwbGVcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgYWxsb3dNdWx0aXBsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJhbGxvd011bHRpcGxlXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSBoZWlnaHQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltYWdlSGVpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImltYWdlSGVpZ2h0XCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgaW1hZ2VIZWlnaHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpbWFnZUhlaWdodFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2Ugd2lkdGguXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltYWdlV2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaW1hZ2VXaWR0aFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGltYWdlV2lkdGgodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpbWFnZVdpZHRoXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIEFjY2VwdGVkIGZpbGUgdHlwZXMuIFBhc3NlZCB0byB0aGUgJ2FjY2VwdCcgYXR0cmlidXRlIG9mIHRoZSBmaWxlIGlucHV0IHRhZy4gU2VlIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vdGFncy9hdHRfaW5wdXRfYWNjZXB0LmFzcCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgKi9cbiAgcHVibGljIGdldCBhY2NlcHRlZFR5cGVzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImFjY2VwdGVkVHlwZXNcIik7XG4gIH1cbiAgcHVibGljIHNldCBhY2NlcHRlZFR5cGVzKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiYWNjZXB0ZWRUeXBlc1wiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gZmFsc2UgaWYgeW91IGRvIG5vdCB3YW50IHRvIHNlcmlhbGl6ZSBmaWxlIGNvbnRlbnQgYXMgdGV4dCBpbiB0aGUgc3VydmV5LmRhdGEuXG4gICAqIEluIHRoaXMgY2FzZSwgeW91IGhhdmUgdG8gd3JpdGUgdGhlIGNvZGUgb25VcGxvYWRGaWxlcyBldmVudCB0byBzdG9yZSB0aGUgZmlsZSBjb250ZW50LlxuICAgKiBAc2VlIFN1cnZleU1vZGVsLm9uVXBsb2FkRmlsZXNcbiAgICovXG4gIHB1YmxpYyBnZXQgc3RvcmVEYXRhQXNUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzdG9yZURhdGFBc1RleHRcIik7XG4gIH1cbiAgcHVibGljIHNldCBzdG9yZURhdGFBc1RleHQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwic3RvcmVEYXRhQXNUZXh0XCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIGlmIHlvdSB3YW50IHRvIHdhaXQgdW50aWwgZmlsZXMgd2lsbCBiZSB1cGxvYWRlZCB0byB5b3VyIHNlcnZlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgd2FpdEZvclVwbG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwid2FpdEZvclVwbG9hZFwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCB3YWl0Rm9yVXBsb2FkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIndhaXRGb3JVcGxvYWRcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogU2V0IGl0IHRvIGZhbHNlIGlmIHlvdSB3YW50IHRvIGRpc2FibGUgaW1hZ2VzIHByZXZpZXcuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFsbG93SW1hZ2VzUHJldmlldygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiYWxsb3dJbWFnZXNQcmV2aWV3XCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgYWxsb3dJbWFnZXNQcmV2aWV3KHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImFsbG93SW1hZ2VzUHJldmlld1wiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBzZXR1cCB0aGUgbWF4aW11bSBhbGxvd2VkIGZpbGUgc2l6ZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgbWF4U2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJtYXhTaXplXCIsIDApO1xuICB9XG4gIHB1YmxpYyBzZXQgbWF4U2l6ZSh2YWw6IG51bWJlcikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIm1heFNpemVcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcGVydHkgdG8gc2V0dXAgY29uZmlybWF0aW9uIHRvIHJlbW92ZSBmaWxlLlxuICAgKi9cbiAgcHVibGljIGdldCBuZWVkQ29uZmlybVJlbW92ZUZpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIm5lZWRDb25maXJtUmVtb3ZlRmlsZVwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IG5lZWRDb25maXJtUmVtb3ZlRmlsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJuZWVkQ29uZmlybVJlbW92ZUZpbGVcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVGhlIHJlbW92ZSBmaWxlIGNvbmZpcm1hdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIGdldENvbmZpcm1SZW1vdmVNZXNzYWdlKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb25cbiAgICAgIC5nZXRTdHJpbmcoXCJjb25maXJtUmVtb3ZlRmlsZVwiKVxuICAgICAgW1wiZm9ybWF0XCJdKGZpbGVOYW1lKTtcbiAgfVxuICAvKipcbiAgICogVGhlIHJlbW92ZSBhbGwgZmlsZXMgY29uZmlybWF0aW9uIG1lc3NhZ2UuXG4gICAqL1xuICBnZXQgY29uZmlybVJlbW92ZUFsbE1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcImNvbmZpcm1SZW1vdmVBbGxGaWxlc1wiKTtcbiAgfVxuICAvKipcbiAgICogVGhlIG5vIGZpbGUgY2hvc2VuIGNhcHRpb24gZm9yIG1vZGVybiB0aGVtZS5cbiAgICovXG4gIGdldCBub0ZpbGVDaG9zZW5DYXB0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJub0ZpbGVDaG9zZW5cIik7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjaG9vc2UgZmlsZXMgYnV0dG9uIGNhcHRpb24gZm9yIG1vZGVybiB0aGVtZS5cbiAgICovXG4gIGdldCBjaG9vc2VCdXR0b25DYXB0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJjaG9vc2VGaWxlQ2FwdGlvblwiKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGNsZWFuIGZpbGVzIGJ1dHRvbiBjYXB0aW9uLlxuICAgKi9cbiAgZ2V0IGNsZWFuQnV0dG9uQ2FwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiY2xlYW5DYXB0aW9uXCIpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgcmVtb3ZlIGZpbGUgYnV0dG9uIGNhcHRpb24uXG4gICAqL1xuICBnZXQgcmVtb3ZlRmlsZUNhcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcInJlbW92ZUZpbGVDYXB0aW9uXCIpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgdGl0bGUgdmFsdWUuXG4gICAqL1xuICBnZXQgaW5wdXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzVXBsb2FkaW5nKSByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcImxvYWRpbmdGaWxlXCIpO1xuICAgIGlmICh0aGlzLmlzRW1wdHkoKSkgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJjaG9vc2VGaWxlXCIpO1xuICAgIHJldHVybiBcIiBcIjtcbiAgfVxuICAvKipcbiAgICogQ2xlYXIgdmFsdWUgcHJvZ3JhbW1hdGljYWxseS5cbiAgICovXG4gIHB1YmxpYyBjbGVhcihkb25lQ2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5zdXJ2ZXkuY2xlYXJGaWxlcyh0aGlzLm5hbWUsIHRoaXMudmFsdWUsIG51bGwsIChzdGF0dXMsIGRhdGEpID0+IHtcbiAgICAgIGlmIChzdGF0dXMgPT09IFwic3VjY2Vzc1wiKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgICAgICEhZG9uZUNhbGxiYWNrICYmIGRvbmVDYWxsYmFjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgZmlsZSBpdGVtIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmlsZShjb250ZW50OiB7IG5hbWU6IHN0cmluZyB9KSB7XG4gICAgdGhpcy5zdXJ2ZXkuY2xlYXJGaWxlcyhcbiAgICAgIHRoaXMubmFtZSxcbiAgICAgIHRoaXMudmFsdWUsXG4gICAgICBjb250ZW50Lm5hbWUsXG4gICAgICAoc3RhdHVzLCBkYXRhKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFwic3VjY2Vzc1wiKSB7XG4gICAgICAgICAgdmFyIG9sZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBvbGRWYWx1ZS5maWx0ZXIoZiA9PiBmLm5hbWUgIT09IGNvbnRlbnQubmFtZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICAvKipcbiAgICogTG9hZCBtdWx0aXBsZSBmaWxlcyBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKiBAcGFyYW0gZmlsZXNcbiAgICovXG4gIHB1YmxpYyBsb2FkRmlsZXMoZmlsZXM6IEZpbGVbXSkge1xuICAgIGlmICghdGhpcy5zdXJ2ZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICBpZiAoIXRoaXMuYWxsRmlsZXNPayhmaWxlcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlQ2hhbmdlZChcImxvYWRpbmdcIik7XG5cbiAgICB2YXIgbG9hZEZpbGVzUHJvYyA9ICgpID0+IHtcbiAgICAgIHZhciBjb250ZW50ID0gPEFycmF5PGFueT4+W107XG4gICAgICBpZiAodGhpcy5zdG9yZURhdGFBc1RleHQpIHtcbiAgICAgICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgICAgICBsZXQgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSBlID0+IHtcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LmNvbmNhdChbXG4gICAgICAgICAgICAgIHsgbmFtZTogZmlsZS5uYW1lLCB0eXBlOiBmaWxlLnR5cGUsIGNvbnRlbnQ6IGZpbGVSZWFkZXIucmVzdWx0IH1cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQubGVuZ3RoID09PSBmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICh0aGlzLnZhbHVlIHx8IFtdKS5jb25jYXQoY29udGVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdXJ2ZXkudXBsb2FkRmlsZXModGhpcy5uYW1lLCBmaWxlcywgKHN0YXR1cywgZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMgPT09IFwiZXJyb3JcIikge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZWQoXCJlcnJvclwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSAodGhpcy52YWx1ZSB8fCBbXSkuY29uY2F0KFxuICAgICAgICAgICAgICBkYXRhLm1hcCgocjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHIuZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgdHlwZTogci5maWxlLnR5cGUsXG4gICAgICAgICAgICAgICAgICBjb250ZW50OiByLmNvbnRlbnRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKHRoaXMuYWxsb3dNdWx0aXBsZSkge1xuICAgICAgbG9hZEZpbGVzUHJvYygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyKGxvYWRGaWxlc1Byb2MpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgY2FuUHJldmlld0ltYWdlKGZpbGVJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd0ltYWdlc1ByZXZpZXcgJiYgISFmaWxlSXRlbSAmJiB0aGlzLmlzRmlsZUltYWdlKGZpbGVJdGVtKTtcbiAgfVxuICBwcm90ZWN0ZWQgc2V0UXVlc3Rpb25WYWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgc3VwZXIuc2V0UXVlc3Rpb25WYWx1ZShuZXdWYWx1ZSk7XG4gICAgdGhpcy5wcmV2aWV3VmFsdWUgPSBbXTtcbiAgICB2YXIgc3RhdGUgPVxuICAgICAgKCFBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSAmJiAhIW5ld1ZhbHVlKSB8fFxuICAgICAgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpICYmIG5ld1ZhbHVlLmxlbmd0aCA+IDApXG4gICAgICAgID8gdGhpcy5zaG93UHJldmlld1xuICAgICAgICAgID8gXCJsb2FkaW5nXCJcbiAgICAgICAgICA6IFwibG9hZGVkXCJcbiAgICAgICAgOiBcImVtcHR5XCI7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZWQoc3RhdGUpO1xuICAgIGlmICghdGhpcy5zaG93UHJldmlldyB8fCAhbmV3VmFsdWUpIHJldHVybjtcbiAgICB2YXIgbmV3VmFsdWVzID0gQXJyYXkuaXNBcnJheShuZXdWYWx1ZSlcbiAgICAgID8gbmV3VmFsdWVcbiAgICAgIDogISFuZXdWYWx1ZVxuICAgICAgICA/IFtuZXdWYWx1ZV1cbiAgICAgICAgOiBbXTtcblxuICAgIGlmICh0aGlzLnN0b3JlRGF0YUFzVGV4dCkge1xuICAgICAgbmV3VmFsdWVzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICB2YXIgY29udGVudCA9IHZhbHVlLmNvbnRlbnQgfHwgdmFsdWU7XG4gICAgICAgIHRoaXMucHJldmlld1ZhbHVlID0gdGhpcy5wcmV2aWV3VmFsdWUuY29uY2F0KFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiB2YWx1ZS5uYW1lLFxuICAgICAgICAgICAgdHlwZTogdmFsdWUudHlwZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRcbiAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgICAgfSk7XG4gICAgICBpZiAoc3RhdGUgPT09IFwibG9hZGluZ1wiKSB0aGlzLnN0YXRlQ2hhbmdlZChcImxvYWRlZFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3VmFsdWVzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICB2YXIgY29udGVudCA9IHZhbHVlLmNvbnRlbnQgfHwgdmFsdWU7XG4gICAgICAgIHRoaXMuc3VydmV5LmRvd25sb2FkRmlsZSh0aGlzLm5hbWUsIHZhbHVlLCAoc3RhdHVzLCBkYXRhKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlld1ZhbHVlID0gdGhpcy5wcmV2aWV3VmFsdWUuY29uY2F0KFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGRhdGEsXG4gICAgICAgICAgICAgICAgbmFtZTogdmFsdWUubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiB2YWx1ZS50eXBlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldmlld1ZhbHVlLmxlbmd0aCA9PT0gbmV3VmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlZChcImxvYWRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZWQoXCJlcnJvclwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBvbkNoZWNrRm9yRXJyb3JzKGVycm9yczogQXJyYXk8U3VydmV5RXJyb3I+KSB7XG4gICAgc3VwZXIub25DaGVja0ZvckVycm9ycyhlcnJvcnMpO1xuICAgIGlmICh0aGlzLmlzVXBsb2FkaW5nICYmIHRoaXMud2FpdEZvclVwbG9hZCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIG5ldyBVcGxvYWRpbmdGaWxlRXJyb3IoXG4gICAgICAgICAgc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcInVwbG9hZGluZ0ZpbGVcIiksXG4gICAgICAgICAgdGhpc1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgc3RhdGVDaGFuZ2VkKHN0YXRlOiBzdHJpbmcpIHtcbiAgICBpZiAoc3RhdGUgPT09IFwibG9hZGluZ1wiKSB7XG4gICAgICB0aGlzLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHN0YXRlID09PSBcImxvYWRlZFwiKSB7XG4gICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5vblN0YXRlQ2hhbmdlZC5maXJlKHRoaXMsIHsgc3RhdGU6IHN0YXRlIH0pO1xuICB9XG4gIHByaXZhdGUgYWxsRmlsZXNPayhmaWxlczogRmlsZVtdKTogYm9vbGVhbiB7XG4gICAgdmFyIGVycm9yTGVuZ3RoID0gdGhpcy5lcnJvcnMgPyB0aGlzLmVycm9ycy5sZW5ndGggOiAwO1xuICAgIChmaWxlcyB8fCBbXSkuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGlmICh0aGlzLm1heFNpemUgPiAwICYmIGZpbGUuc2l6ZSA+IHRoaXMubWF4U2l6ZSkge1xuICAgICAgICB0aGlzLmVycm9ycy5wdXNoKG5ldyBFeGNlZWRTaXplRXJyb3IodGhpcy5tYXhTaXplLCB0aGlzKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGVycm9yTGVuZ3RoID09PSB0aGlzLmVycm9ycy5sZW5ndGg7XG4gIH1cbiAgcHJpdmF0ZSBpc0ZpbGVJbWFnZShmaWxlOiB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdHlwZT86IHN0cmluZztcbiAgfSk6IGJvb2xlYW4ge1xuICAgIGlmICghZmlsZSkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGltYWdlUHJlZml4ID0gXCJkYXRhOmltYWdlXCI7XG4gICAgdmFyIHN1YlN0ciA9IGZpbGUuY29udGVudCAmJiBmaWxlLmNvbnRlbnQuc3Vic3RyKDAsIGltYWdlUHJlZml4Lmxlbmd0aCk7XG4gICAgc3ViU3RyID0gc3ViU3RyICYmIHN1YlN0ci50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciByZXN1bHQgPVxuICAgICAgc3ViU3RyID09PSBpbWFnZVByZWZpeCB8fFxuICAgICAgKCEhZmlsZS50eXBlICYmIGZpbGUudHlwZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJpbWFnZS9cIikgPT09IDApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHVibGljIGdldFBsYWluRGF0YShcbiAgICBvcHRpb25zOiB7XG4gICAgICBpbmNsdWRlRW1wdHk/OiBib29sZWFuO1xuICAgICAgY2FsY3VsYXRpb25zPzogQXJyYXk8e1xuICAgICAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgICAgIH0+O1xuICAgIH0gPSB7XG4gICAgICBpbmNsdWRlRW1wdHk6IHRydWVcbiAgICB9XG4gICkge1xuICAgIHZhciBxdWVzdGlvblBsYWluRGF0YSA9IHN1cGVyLmdldFBsYWluRGF0YShvcHRpb25zKTtcbiAgICBpZiAoISFxdWVzdGlvblBsYWluRGF0YSAmJiAhdGhpcy5pc0VtcHR5KCkpIHtcbiAgICAgIHF1ZXN0aW9uUGxhaW5EYXRhLmlzTm9kZSA9IGZhbHNlO1xuICAgICAgdmFyIHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlIDogW3RoaXMudmFsdWVdO1xuICAgICAgcXVlc3Rpb25QbGFpbkRhdGEuZGF0YSA9IHZhbHVlcy5tYXAoKGRhdGFWYWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBpbmRleCxcbiAgICAgICAgICB0aXRsZTogXCJGaWxlXCIsXG4gICAgICAgICAgdmFsdWU6IChkYXRhVmFsdWUuY29udGVudCAmJiBkYXRhVmFsdWUuY29udGVudCkgfHwgZGF0YVZhbHVlLFxuICAgICAgICAgIGRpc3BsYXlWYWx1ZTogKGRhdGFWYWx1ZS5uYW1lICYmIGRhdGFWYWx1ZS5uYW1lKSB8fCBkYXRhVmFsdWUsXG4gICAgICAgICAgZ2V0U3RyaW5nOiAodmFsOiBhbnkpID0+XG4gICAgICAgICAgICB0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiID8gSlNPTi5zdHJpbmdpZnkodmFsKSA6IHZhbCxcbiAgICAgICAgICBpc05vZGU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXN0aW9uUGxhaW5EYXRhO1xuICB9XG59XG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcImZpbGVcIixcbiAgW1xuICAgIHsgbmFtZTogXCJzaG93UHJldmlldzpib29sZWFuXCIsIGRlZmF1bHQ6IHRydWUgfSxcbiAgICBcImFsbG93TXVsdGlwbGU6Ym9vbGVhblwiLFxuICAgIHsgbmFtZTogXCJhbGxvd0ltYWdlc1ByZXZpZXc6Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlIH0sXG4gICAgXCJpbWFnZUhlaWdodFwiLFxuICAgIFwiaW1hZ2VXaWR0aFwiLFxuICAgIFwiYWNjZXB0ZWRUeXBlc1wiLFxuICAgIHsgbmFtZTogXCJzdG9yZURhdGFBc1RleHQ6Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlIH0sXG4gICAgeyBuYW1lOiBcIndhaXRGb3JVcGxvYWQ6Ym9vbGVhblwiLCBkZWZhdWx0OiBmYWxzZSB9LFxuICAgIFwibWF4U2l6ZTpudW1iZXJcIixcbiAgICB7IG5hbWU6IFwiZGVmYXVsdFZhbHVlXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcImNvcnJlY3RBbnN3ZXJcIiwgdmlzaWJsZTogZmFsc2UgfSxcbiAgICB7IG5hbWU6IFwidmFsaWRhdG9yc1wiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJuZWVkQ29uZmlybVJlbW92ZUZpbGU6Ym9vbGVhblwiLCB2aXNpYmxlOiB0cnVlLCBkZWZhdWx0OiBmYWxzZSB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25GaWxlTW9kZWwoXCJcIik7XG4gIH0sXG4gIFwicXVlc3Rpb25cIlxuKTtcblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwiZmlsZVwiLCBuYW1lID0+IHtcbiAgcmV0dXJuIG5ldyBRdWVzdGlvbkZpbGVNb2RlbChuYW1lKTtcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX2ZpbGUudHMiLCJpbXBvcnQgeyBRdWVzdGlvbk5vblZhbHVlIH0gZnJvbSBcIi4vcXVlc3Rpb25ub252YWx1ZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IFF1ZXN0aW9uRmFjdG9yeSB9IGZyb20gXCIuL3F1ZXN0aW9uZmFjdG9yeVwiO1xuaW1wb3J0IHsgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGh0bWwgcXVlc3Rpb24uIFVubGlrZSBvdGhlciBxdWVzdGlvbnMgaXQgZG9lc24ndCBoYXZlIHZhbHVlIGFuZCB0aXRsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uSHRtbE1vZGVsIGV4dGVuZHMgUXVlc3Rpb25Ob25WYWx1ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB2YXIgbG9jSHRtbCA9IHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJodG1sXCIsIHRoaXMpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBsb2NIdG1sLm9uR2V0VGV4dENhbGxiYWNrID0gZnVuY3Rpb24oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICEhc2VsZi5zdXJ2ZXkgPyBzZWxmLnN1cnZleS5wcm9jZXNzSHRtbChzdHIpIDogc3RyO1xuICAgIH07XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJodG1sXCI7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBodG1sIHRvIGRpc3BsYXkgaXRcbiAgICovXG4gIHB1YmxpYyBnZXQgaHRtbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImh0bWxcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBodG1sKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJodG1sXCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY0h0bWwoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwiaHRtbFwiKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHByb2Nlc3NlZEh0bWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5ID8gdGhpcy5zdXJ2ZXkucHJvY2Vzc0h0bWwodGhpcy5odG1sKSA6IHRoaXMuaHRtbDtcbiAgfVxufVxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJodG1sXCIsXG4gIFt7IG5hbWU6IFwiaHRtbDpodG1sXCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NIdG1sXCIgfV0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25IdG1sTW9kZWwoXCJcIik7XG4gIH0sXG4gIFwibm9udmFsdWVcIlxuKTtcblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwiaHRtbFwiLCBuYW1lID0+IHtcbiAgcmV0dXJuIG5ldyBRdWVzdGlvbkh0bWxNb2RlbChuYW1lKTtcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX2h0bWwudHMiLCJpbXBvcnQgeyBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBRdWVzdGlvbkNoZWNrYm94QmFzZSB9IGZyb20gXCIuL3F1ZXN0aW9uX2Jhc2VzZWxlY3RcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gXCIuL2hlbHBlcnNcIjtcblxuLyoqXG4gKiBBIE1vZGVsIGZvciBhIHNlbGVjdCBpbWFnZSBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uSW1hZ2VQaWNrZXJNb2RlbCBleHRlbmRzIFF1ZXN0aW9uQ2hlY2tib3hCYXNlIHtcbiAgY29uc3RydWN0b3IocHVibGljIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKG5hbWUpO1xuICAgIHRoaXMuY29sQ291bnQgPSAwO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiaW1hZ2VwaWNrZXJcIjtcbiAgfVxuICBzdXBwb3J0R29OZXh0UGFnZUF1dG9tYXRpYygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJdGVtVmFsdWVUeXBlKCkge1xuICAgIHJldHVybiBcImltYWdlaXRlbXZhbHVlXCI7XG4gIH1cbiAgLyoqXG4gICAqIE11bHRpIHNlbGVjdCBvcHRpb24uIElmIHNldCB0byB0cnVlLCB0aGVuIGFsbG93cyB0byBzZWxlY3QgbXVsdGlwbGUgaW1hZ2VzLlxuICAgKi9cbiAgcHVibGljIGdldCBtdWx0aVNlbGVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwibXVsdGlTZWxlY3RcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgbXVsdGlTZWxlY3QobmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJtdWx0aVNlbGVjdFwiLCBuZXdWYWx1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBpdGVtIGlzIGNoZWNrZWRcbiAgICogQHBhcmFtIGl0ZW0gaW1hZ2UgcGlja2VyIGl0ZW0gdmFsdWVcbiAgICovXG4gIHB1YmxpYyBpc0l0ZW1TZWxlY3RlZChpdGVtOiBJdGVtVmFsdWUpOiBib29sZWFuIHtcbiAgICB2YXIgdmFsID0gdGhpcy5yZW5kZXJlZFZhbHVlO1xuICAgIGlmIChIZWxwZXJzLmlzVmFsdWVFbXB0eSh2YWwpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCF0aGlzLm11bHRpU2VsZWN0KSByZXR1cm4gSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKHZhbCwgaXRlbS52YWx1ZSk7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKEhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyh2YWxbaV0sIGl0ZW0udmFsdWUpKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBjbGVhckluY29ycmVjdFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdmFyIHZhbCA9IHRoaXMudmFsdWU7XG4gICAgICBpZiAoIXZhbCkgcmV0dXJuO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkgfHwgdmFsLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIHRoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgbmV3VmFsdWUgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghdGhpcy5oYXNVbmtub3duVmFsdWUodmFsW2ldLCB0cnVlKSkge1xuICAgICAgICAgIG5ld1ZhbHVlLnB1c2godmFsW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG5ld1ZhbHVlLmxlbmd0aCA9PSB2YWwubGVuZ3RoKSByZXR1cm47XG4gICAgICBpZiAobmV3VmFsdWUubGVuZ3RoID09IDApIHtcbiAgICAgICAgdGhpcy5jbGVhclZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLmNsZWFySW5jb3JyZWN0VmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgbGFiZWwgdW5kZXIgdGhlIGltYWdlLlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93TGFiZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInNob3dMYWJlbFwiLCBmYWxzZSk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93TGFiZWwobmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJzaG93TGFiZWxcIiwgbmV3VmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBnZXRWYWx1ZUNvcmUoKSB7XG4gICAgdmFyIHZhbHVlID0gc3VwZXIuZ2V0VmFsdWVDb3JlKCk7XG4gICAgaWYodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZih0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiAgdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSBoZWlnaHQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltYWdlSGVpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImltYWdlSGVpZ2h0XCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgaW1hZ2VIZWlnaHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpbWFnZUhlaWdodFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2Ugd2lkdGguXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltYWdlV2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaW1hZ2VXaWR0aFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGltYWdlV2lkdGgodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpbWFnZVdpZHRoXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSBmaXQgbW9kZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW1hZ2VGaXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiaW1hZ2VGaXRcIik7XG4gIH1cbiAgcHVibGljIHNldCBpbWFnZUZpdCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImltYWdlRml0XCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG1vZGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRlbnRNb2RlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImNvbnRlbnRNb2RlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgY29udGVudE1vZGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjb250ZW50TW9kZVwiLCB2YWwpO1xuICAgIGlmICh2YWwgPT09IFwidmlkZW9cIikge1xuICAgICAgdGhpcy5zaG93TGFiZWwgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFwiaW1hZ2VpdGVtdmFsdWVcIiwgW10sIHVuZGVmaW5lZCwgXCJpdGVtdmFsdWVcIik7XG5TZXJpYWxpemVyLmFkZFByb3BlcnR5KFwiaW1hZ2VpdGVtdmFsdWVcIiwge1xuICBuYW1lOiBcImltYWdlTGlua1wiXG59KTtcblxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJpbWFnZXBpY2tlclwiLFxuICBbXG4gICAgeyBuYW1lOiBcImhhc090aGVyXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiBcIm90aGVyVGV4dFwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJvcHRpb25zQ2FwdGlvblwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJvdGhlckVycm9yVGV4dFwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJzdG9yZU90aGVyc0FzQ29tbWVudFwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiY29udGVudE1vZGVcIixcbiAgICAgIGRlZmF1bHQ6IFwiaW1hZ2VcIixcbiAgICAgIGNob2ljZXM6IFtcImltYWdlXCIsIFwidmlkZW9cIl1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiaW1hZ2VGaXRcIixcbiAgICAgIGRlZmF1bHQ6IFwiY29udGFpblwiLFxuICAgICAgY2hvaWNlczogW1wibm9uZVwiLCBcImNvbnRhaW5cIiwgXCJjb3ZlclwiLCBcImZpbGxcIl1cbiAgICB9LFxuICAgIHsgbmFtZTogXCJpbWFnZUhlaWdodDpudW1iZXJcIiwgZGVmYXVsdDogMTUwLCBtaW5WYWx1ZTogMCB9LFxuICAgIHsgbmFtZTogXCJpbWFnZVdpZHRoOm51bWJlclwiLCBkZWZhdWx0OiAyMDAsIG1pblZhbHVlOiAwIH1cbiAgXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBRdWVzdGlvbkltYWdlUGlja2VyTW9kZWwoXCJcIik7XG4gIH0sXG4gIFwiY2hlY2tib3hiYXNlXCJcbik7XG5TZXJpYWxpemVyLmFkZFByb3BlcnR5KFwiaW1hZ2VwaWNrZXJcIiwge1xuICBuYW1lOiBcInNob3dMYWJlbDpib29sZWFuXCIsXG4gIGRlZmF1bHQ6IGZhbHNlXG59KTtcblNlcmlhbGl6ZXIuYWRkUHJvcGVydHkoXCJpbWFnZXBpY2tlclwiLCB7XG4gIG5hbWU6IFwiY29sQ291bnQ6bnVtYmVyXCIsXG4gIGRlZmF1bHQ6IDAsXG4gIGNob2ljZXM6IFswLCAxLCAyLCAzLCA0LCA1XVxufSk7XG5TZXJpYWxpemVyLmFkZFByb3BlcnR5KFwiaW1hZ2VwaWNrZXJcIiwge1xuICBuYW1lOiBcIm11bHRpU2VsZWN0OmJvb2xlYW5cIixcbiAgZGVmYXVsdDogZmFsc2Vcbn0pO1xuU2VyaWFsaXplci5hZGRQcm9wZXJ0eShcImltYWdlcGlja2VyXCIsIHtcbiAgbmFtZTogXCJjaG9pY2VzOmltYWdlaXRlbXZhbHVlW11cIlxufSk7XG5cblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwiaW1hZ2VwaWNrZXJcIiwgbmFtZSA9PiB7XG4gIHZhciBxID0gbmV3IFF1ZXN0aW9uSW1hZ2VQaWNrZXJNb2RlbChuYW1lKTtcbiAgLy9xLmNob2ljZXMgPSBRdWVzdGlvbkZhY3RvcnkuRGVmYXVsdENob2ljZXM7XG4gIHJldHVybiBxO1xufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVlc3Rpb25faW1hZ2VwaWNrZXIudHMiLCJpbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgSXRlbVZhbHVlIH0gZnJvbSBcIi4vaXRlbXZhbHVlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbk1hdHJpeEJhc2VNb2RlbCB9IGZyb20gXCIuL21hcnRpeEJhc2VcIjtcbmltcG9ydCB7IEpzb25PYmplY3QsIFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9qc29ub2JqZWN0XCI7XG5pbXBvcnQgeyBTdXJ2ZXlFcnJvciB9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuL3N1cnZleVN0cmluZ3NcIjtcbmltcG9ydCB7IFJlcXVpcmVkSW5BbGxSb3dzRXJyb3IgfSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBMb2NhbGl6YWJsZVN0cmluZywgSUxvY2FsaXphYmxlT3duZXIgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuaW1wb3J0IHsgUXVlc3Rpb25Ecm9wZG93bk1vZGVsIH0gZnJvbSBcIi4vcXVlc3Rpb25fZHJvcGRvd25cIjtcbmltcG9ydCB7IElDb25kaXRpb25PYmplY3QgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgc2V0dGluZ3MgfSBmcm9tIFwiLi9zZXR0aW5nc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElNYXRyaXhEYXRhIHtcbiAgb25NYXRyaXhSb3dDaGFuZ2VkKHJvdzogTWF0cml4Um93TW9kZWwpOiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgTWF0cml4Um93TW9kZWwge1xuICBwcml2YXRlIGRhdGE6IElNYXRyaXhEYXRhO1xuICBwcml2YXRlIGl0ZW06IEl0ZW1WYWx1ZTtcbiAgcHJvdGVjdGVkIHJvd1ZhbHVlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaXRlbTogSXRlbVZhbHVlLFxuICAgIHB1YmxpYyBmdWxsTmFtZTogc3RyaW5nLFxuICAgIGRhdGE6IElNYXRyaXhEYXRhLFxuICAgIHZhbHVlOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5pdGVtID0gaXRlbTtcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIHRoaXMucm93VmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtLnZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW0udGV4dDtcbiAgfVxuICBwdWJsaWMgZ2V0IGxvY1RleHQoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW0ubG9jVGV4dDtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnJvd1ZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUobmV3VmFsdWU6IGFueSkge1xuICAgIHRoaXMucm93VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICBpZiAodGhpcy5kYXRhKSB0aGlzLmRhdGEub25NYXRyaXhSb3dDaGFuZ2VkKHRoaXMpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZWQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25WYWx1ZUNoYW5nZWQoKSB7fVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXRyaXhDZWxsc093bmVyIGV4dGVuZHMgSUxvY2FsaXphYmxlT3duZXIge1xuICBnZXRSb3dzKCk6IEFycmF5PGFueT47XG4gIGdldENvbHVtbnMoKTogQXJyYXk8YW55Pjtcbn1cblxuZXhwb3J0IGNsYXNzIE1hcnRyaXhDZWxscyB7XG4gIHByaXZhdGUgdmFsdWVzOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBjZWxsc093bmVyOiBJTWF0cml4Q2VsbHNPd25lcikge31cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykubGVuZ3RoID09IDA7XG4gIH1cbiAgcHVibGljIHNldENlbGxUZXh0KHJvdzogYW55LCBjb2x1bW46IGFueSwgdmFsOiBzdHJpbmcpIHtcbiAgICByb3cgPSB0aGlzLmdldENlbGxSb3dDb2x1bW5WYWx1ZShyb3csIHRoaXMucm93cyk7XG4gICAgY29sdW1uID0gdGhpcy5nZXRDZWxsUm93Q29sdW1uVmFsdWUoY29sdW1uLCB0aGlzLmNvbHVtbnMpO1xuICAgIGlmICghcm93IHx8ICFjb2x1bW4pIHJldHVybjtcbiAgICBpZiAodmFsKSB7XG4gICAgICBpZiAoIXRoaXMudmFsdWVzW3Jvd10pIHRoaXMudmFsdWVzW3Jvd10gPSB7fTtcbiAgICAgIGlmICghdGhpcy52YWx1ZXNbcm93XVtjb2x1bW5dKVxuICAgICAgICB0aGlzLnZhbHVlc1tyb3ddW2NvbHVtbl0gPSB0aGlzLmNyZWF0ZVN0cmluZygpO1xuICAgICAgdGhpcy52YWx1ZXNbcm93XVtjb2x1bW5dLnRleHQgPSB2YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnZhbHVlc1tyb3ddICYmIHRoaXMudmFsdWVzW3Jvd11bY29sdW1uXSkge1xuICAgICAgICB2YXIgbG9jID0gdGhpcy52YWx1ZXNbcm93XVtjb2x1bW5dO1xuICAgICAgICBsb2MudGV4dCA9IFwiXCI7XG4gICAgICAgIGlmIChsb2MuaXNFbXB0eSkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLnZhbHVlc1tyb3ddW2NvbHVtbl07XG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMudmFsdWVzW3Jvd10pLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy52YWx1ZXNbcm93XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIHNldERlZmF1bHRDZWxsVGV4dChjb2x1bW46IGFueSwgdmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldENlbGxUZXh0KHNldHRpbmdzLm1hdHJpeERlZmF1bHRSb3dOYW1lLCBjb2x1bW4sIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldENlbGxMb2NUZXh0KHJvdzogYW55LCBjb2x1bW46IGFueSk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByb3cgPSB0aGlzLmdldENlbGxSb3dDb2x1bW5WYWx1ZShyb3csIHRoaXMucm93cyk7XG4gICAgY29sdW1uID0gdGhpcy5nZXRDZWxsUm93Q29sdW1uVmFsdWUoY29sdW1uLCB0aGlzLmNvbHVtbnMpO1xuICAgIGlmICghcm93IHx8ICFjb2x1bW4pIHJldHVybiBudWxsO1xuICAgIGlmICghdGhpcy52YWx1ZXNbcm93XSkgcmV0dXJuIG51bGw7XG4gICAgaWYgKCF0aGlzLnZhbHVlc1tyb3ddW2NvbHVtbl0pIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLnZhbHVlc1tyb3ddW2NvbHVtbl07XG4gIH1cbiAgcHVibGljIGdldERlZmF1bHRDZWxsTG9jVGV4dChjb2x1bW46IGFueSwgdmFsOiBzdHJpbmcpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2VsbExvY1RleHQoc2V0dGluZ3MubWF0cml4RGVmYXVsdFJvd05hbWUsIGNvbHVtbik7XG4gIH1cbiAgcHVibGljIGdldENlbGxEaXNwbGF5TG9jVGV4dChyb3c6IGFueSwgY29sdW1uOiBhbnkpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgdmFyIGNlbGxUZXh0ID0gdGhpcy5nZXRDZWxsTG9jVGV4dChyb3csIGNvbHVtbik7XG4gICAgaWYgKGNlbGxUZXh0ICYmICFjZWxsVGV4dC5pc0VtcHR5KSByZXR1cm4gY2VsbFRleHQ7XG4gICAgY2VsbFRleHQgPSB0aGlzLmdldENlbGxMb2NUZXh0KHNldHRpbmdzLm1hdHJpeERlZmF1bHRSb3dOYW1lLCBjb2x1bW4pO1xuICAgIGlmIChjZWxsVGV4dCAmJiAhY2VsbFRleHQuaXNFbXB0eSkgcmV0dXJuIGNlbGxUZXh0O1xuICAgIGlmICh0eXBlb2YgY29sdW1uID09IFwibnVtYmVyXCIpIHtcbiAgICAgIGNvbHVtbiA9XG4gICAgICAgIGNvbHVtbiA+PSAwICYmIGNvbHVtbiA8IHRoaXMuY29sdW1ucy5sZW5ndGhcbiAgICAgICAgICA/IHRoaXMuY29sdW1uc1tjb2x1bW5dXG4gICAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5sb2NUZXh0KSByZXR1cm4gY29sdW1uLmxvY1RleHQ7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHVibGljIGdldENlbGxUZXh0KHJvdzogYW55LCBjb2x1bW46IGFueSk6IHN0cmluZyB7XG4gICAgdmFyIGxvYyA9IHRoaXMuZ2V0Q2VsbExvY1RleHQocm93LCBjb2x1bW4pO1xuICAgIHJldHVybiBsb2MgPyBsb2MuY2FsY3VsYXRlZFRleHQgOiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXREZWZhdWx0Q2VsbFRleHQoY29sdW1uOiBhbnkpOiBzdHJpbmcge1xuICAgIHZhciBsb2MgPSB0aGlzLmdldENlbGxMb2NUZXh0KHNldHRpbmdzLm1hdHJpeERlZmF1bHRSb3dOYW1lLCBjb2x1bW4pO1xuICAgIHJldHVybiBsb2MgPyBsb2MuY2FsY3VsYXRlZFRleHQgOiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXRDZWxsRGlzcGxheVRleHQocm93OiBhbnksIGNvbHVtbjogYW55KTogc3RyaW5nIHtcbiAgICB2YXIgbG9jID0gdGhpcy5nZXRDZWxsRGlzcGxheUxvY1RleHQocm93LCBjb2x1bW4pO1xuICAgIHJldHVybiBsb2MgPyBsb2MuY2FsY3VsYXRlZFRleHQgOiBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXQgcm93cygpOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jZWxsc093bmVyID8gdGhpcy5jZWxsc093bmVyLmdldFJvd3MoKSA6IFtdO1xuICB9XG4gIHB1YmxpYyBnZXQgY29sdW1ucygpOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jZWxsc093bmVyID8gdGhpcy5jZWxsc093bmVyLmdldENvbHVtbnMoKSA6IFtdO1xuICB9XG4gIHByaXZhdGUgZ2V0Q2VsbFJvd0NvbHVtblZhbHVlKHZhbDogYW55LCB2YWx1ZXM6IEFycmF5PGFueT4pOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdmFsID09IFwibnVtYmVyXCIpIHtcbiAgICAgIGlmICh2YWwgPCAwIHx8IHZhbCA+PSB2YWx1ZXMubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhbCA9IHZhbHVlc1t2YWxdLnZhbHVlO1xuICAgIH1cbiAgICBpZiAodmFsLnZhbHVlKSByZXR1cm4gdmFsLnZhbHVlO1xuICAgIHJldHVybiB2YWw7XG4gIH1cbiAgcHVibGljIGdldEpzb24oKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0VtcHR5KSByZXR1cm4gbnVsbDtcbiAgICB2YXIgcmVzOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBmb3IgKHZhciByb3cgaW4gdGhpcy52YWx1ZXMpIHtcbiAgICAgIHZhciByZXNSb3c6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgICAgdmFyIHJvd1ZhbHVlcyA9IHRoaXMudmFsdWVzW3Jvd107XG4gICAgICBmb3IgKHZhciBjb2wgaW4gcm93VmFsdWVzKSB7XG4gICAgICAgIHJlc1Jvd1tjb2xdID0gcm93VmFsdWVzW2NvbF0uZ2V0SnNvbigpO1xuICAgICAgfVxuICAgICAgcmVzW3Jvd10gPSByZXNSb3c7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHVibGljIHNldEpzb24odmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWVzID0ge307XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIGZvciAodmFyIHJvdyBpbiB2YWx1ZSkge1xuICAgICAgaWYgKHJvdyA9PSBcInBvc1wiKSBjb250aW51ZTtcbiAgICAgIHZhciByb3dWYWx1ZXMgPSB2YWx1ZVtyb3ddO1xuICAgICAgdGhpcy52YWx1ZXNbcm93XSA9IHt9O1xuICAgICAgZm9yICh2YXIgY29sIGluIHJvd1ZhbHVlcykge1xuICAgICAgICBpZiAoY29sID09IFwicG9zXCIpIGNvbnRpbnVlO1xuICAgICAgICB2YXIgbG9jID0gdGhpcy5jcmVhdGVTdHJpbmcoKTtcbiAgICAgICAgbG9jLnNldEpzb24ocm93VmFsdWVzW2NvbF0pO1xuICAgICAgICB0aGlzLnZhbHVlc1tyb3ddW2NvbF0gPSBsb2M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVTdHJpbmcoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiBuZXcgTG9jYWxpemFibGVTdHJpbmcodGhpcy5jZWxsc093bmVyLCB0cnVlKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGEgc2ltcGxlIG1hdHJpeCBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uTWF0cml4TW9kZWxcbiAgZXh0ZW5kcyBRdWVzdGlvbk1hdHJpeEJhc2VNb2RlbDxNYXRyaXhSb3dNb2RlbCwgSXRlbVZhbHVlPlxuICBpbXBsZW1lbnRzIElNYXRyaXhEYXRhLCBJTWF0cml4Q2VsbHNPd25lciB7XG4gIHByaXZhdGUgaXNSb3dDaGFuZ2luZyA9IGZhbHNlO1xuICBwcml2YXRlIGNlbGxzVmFsdWU6IE1hcnRyaXhDZWxscztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgdGhpcy5jZWxsc1ZhbHVlID0gbmV3IE1hcnRyaXhDZWxscyh0aGlzKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcImNvbHVtbnNcIiwgZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLm9uQ29sdW1uc0NoYW5nZWQoKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFwicm93c1wiLCBmdW5jdGlvbigpIHtcbiAgICAgIGlmICghc2VsZi5maWx0ZXJJdGVtcygpKSB7XG4gICAgICAgIHNlbGYub25Sb3dzQ2hhbmdlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwibWF0cml4XCI7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUsIGlmIHlvdSB3YW50IGEgdXNlciB0byBhbnN3ZXIgYWxsIHJvd3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzQWxsUm93UmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImlzQWxsUm93UmVxdWlyZWRcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNBbGxSb3dSZXF1aXJlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpc0FsbFJvd1JlcXVpcmVkXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSwgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHJvdy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzUm93cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb3dzLmxlbmd0aCA+IDA7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIHJlbmRlciBpdGVtcyBpbiBhIHNwZWNpZmljIG9yZGVyOiBcInJhbmRvbVwiIG9yIFwiaW5pdGlhbFwiLiBEZWZhdWx0IGlzIFwiaW5pdGlhbFwiLlxuICAgKi9cbiAgcHVibGljIGdldCByb3dzT3JkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwicm93c09yZGVyXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcm93c09yZGVyKHZhbDogc3RyaW5nKSB7XG4gICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHZhbCA9PSB0aGlzLnJvd3NPcmRlcikgcmV0dXJuO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInJvd3NPcmRlclwiLCB2YWwpO1xuICAgIHRoaXMub25Sb3dzQ2hhbmdlZCgpO1xuICB9XG4gIGdldFJvd3MoKTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucm93cztcbiAgfVxuICBnZXRDb2x1bW5zKCk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVDb2x1bW5zO1xuICB9XG4gIHByb3RlY3RlZCBnZXRRdWl6UXVlc3Rpb25Db3VudCgpIHtcbiAgICB2YXIgcmVzID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmNvcnJlY3RBbnN3ZXJbdGhpcy5yb3dzW2ldLnZhbHVlXSkpIHJlcysrO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByb3RlY3RlZCBnZXRDb3JyZWN0QW5zd2VyQ291bnQoKTogbnVtYmVyIHtcbiAgICB2YXIgcmVzID0gMDtcbiAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5yb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcm93ID0gdGhpcy5yb3dzW2ldLnZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICAhSGVscGVycy5pc1ZhbHVlRW1wdHkodmFsdWVbcm93XSkgJiZcbiAgICAgICAgSGVscGVycy5pc1R3b1ZhbHVlRXF1YWxzKHRoaXMuY29ycmVjdEFuc3dlcltyb3ddLCB2YWx1ZVtyb3ddKVxuICAgICAgKVxuICAgICAgICByZXMrKztcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRWaXNpYmxlUm93cygpOiBBcnJheTxNYXRyaXhSb3dNb2RlbD4ge1xuICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXk8TWF0cml4Um93TW9kZWw+KCk7XG4gICAgdmFyIHZhbCA9IHRoaXMudmFsdWU7XG4gICAgaWYgKCF2YWwpIHZhbCA9IHt9O1xuICAgIHZhciByb3dzID0gISF0aGlzLmZpbHRlcmVkUm93cyA/IHRoaXMuZmlsdGVyZWRSb3dzIDogdGhpcy5yb3dzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHJvdyA9IHJvd3NbaV07XG4gICAgICBpZiAodGhpcy5pc1ZhbHVlRW1wdHkocm93LnZhbHVlKSkgY29udGludWU7XG4gICAgICByZXN1bHQucHVzaChcbiAgICAgICAgdGhpcy5jcmVhdGVNYXRyaXhSb3coXG4gICAgICAgICAgcm93LFxuICAgICAgICAgIHRoaXMuaWQgKyBcIl9cIiArIHJvdy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoL1xccy9nLCBcIl9cIiksXG4gICAgICAgICAgdmFsW3Jvdy52YWx1ZV1cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPT0gMCAmJiAhdGhpcy5maWx0ZXJlZFJvd3MpIHtcbiAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICB0aGlzLmNyZWF0ZU1hdHJpeFJvdyhcbiAgICAgICAgICBuZXcgSXRlbVZhbHVlKG51bGwpLFxuICAgICAgICAgIHRoaXMubmFtZS5yZXBsYWNlKC9cXHMvZywgXCJfXCIpLFxuICAgICAgICAgIHZhbFxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzID0gcmVzdWx0O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHJvdGVjdGVkIHNvcnRWaXNpYmxlUm93cyhcbiAgICBhcnJheTogQXJyYXk8TWF0cml4Um93TW9kZWw+XG4gICk6IEFycmF5PE1hdHJpeFJvd01vZGVsPiB7XG4gICAgdmFyIG9yZGVyID0gdGhpcy5yb3dzT3JkZXIudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAob3JkZXIgPT09IFwicmFuZG9tXCIpXG4gICAgICByZXR1cm4gSGVscGVycy5yYW5kb21pemVBcnJheTxNYXRyaXhSb3dNb2RlbD4oYXJyYXkpO1xuICAgIHJldHVybiBhcnJheTtcbiAgfVxuICBlbmRMb2FkaW5nRnJvbUpzb24oKSB7XG4gICAgc3VwZXIuZW5kTG9hZGluZ0Zyb21Kc29uKCk7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5zb3J0VmlzaWJsZVJvd3ModGhpcy5yb3dzKTtcbiAgfVxuICBwcm90ZWN0ZWQgcHJvY2Vzc1Jvd3NPblNldChuZXdSb3dzOiBBcnJheTxhbnk+KSB7XG4gICAgcmV0dXJuIHRoaXMuc29ydFZpc2libGVSb3dzKG5ld1Jvd3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgdmlzaWJsZSByb3dzIGFzIG1vZGVsIG9iamVjdHMuXG4gICAqIEBzZWUgcm93c1Zpc2libGVJZlxuICAgKi9cbiAgcHVibGljIGdldCB2aXNpYmxlUm93cygpOiBBcnJheTxNYXRyaXhSb3dNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldFZpc2libGVSb3dzKCk7XG4gIH1cbiAgcHVibGljIGdldCBjZWxscygpOiBNYXJ0cml4Q2VsbHMge1xuICAgIHJldHVybiB0aGlzLmNlbGxzVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBjZWxscyh2YWx1ZTogTWFydHJpeENlbGxzKSB7XG4gICAgdGhpcy5jZWxscy5zZXRKc29uKHZhbHVlICYmIHZhbHVlLmdldEpzb24gPyB2YWx1ZS5nZXRKc29uKCkgOiBudWxsKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGhhc0NlbGxUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5jZWxscy5pc0VtcHR5O1xuICB9XG4gIHB1YmxpYyBzZXRDZWxsVGV4dChyb3c6IGFueSwgY29sdW1uOiBhbnksIHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5jZWxscy5zZXRDZWxsVGV4dChyb3csIGNvbHVtbiwgdmFsKTtcbiAgfVxuICBwdWJsaWMgZ2V0Q2VsbFRleHQocm93OiBhbnksIGNvbHVtbjogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jZWxscy5nZXRDZWxsVGV4dChyb3csIGNvbHVtbik7XG4gIH1cbiAgcHVibGljIHNldERlZmF1bHRDZWxsVGV4dChjb2x1bW46IGFueSwgdmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNlbGxzLnNldERlZmF1bHRDZWxsVGV4dChjb2x1bW4sIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldERlZmF1bHRDZWxsVGV4dChjb2x1bW46IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbHMuZ2V0RGVmYXVsdENlbGxUZXh0KGNvbHVtbik7XG4gIH1cbiAgcHVibGljIGdldENlbGxEaXNwbGF5VGV4dChyb3c6IGFueSwgY29sdW1uOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNlbGxzLmdldENlbGxEaXNwbGF5VGV4dChyb3csIGNvbHVtbik7XG4gIH1cbiAgcHJpdmF0ZSBlbXB0eUxvY2FsaXphYmxlU3RyaW5nID0gbmV3IExvY2FsaXphYmxlU3RyaW5nKHRoaXMpO1xuICBwdWJsaWMgZ2V0Q2VsbERpc3BsYXlMb2NUZXh0KHJvdzogYW55LCBjb2x1bW46IGFueSk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICB2YXIgbG9jID0gdGhpcy5jZWxscy5nZXRDZWxsRGlzcGxheUxvY1RleHQocm93LCBjb2x1bW4pO1xuICAgIHJldHVybiBsb2MgPyBsb2MgOiB0aGlzLmVtcHR5TG9jYWxpemFibGVTdHJpbmc7XG4gIH1cbiAgc3VwcG9ydEdvTmV4dFBhZ2VBdXRvbWF0aWMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzVmFsdWVzSW5BbGxSb3dzKCk7XG4gIH1cbiAgcHJvdGVjdGVkIG9uQ2hlY2tGb3JFcnJvcnMoZXJyb3JzOiBBcnJheTxTdXJ2ZXlFcnJvcj4pIHtcbiAgICBzdXBlci5vbkNoZWNrRm9yRXJyb3JzKGVycm9ycyk7XG4gICAgaWYgKHRoaXMuaGFzRXJyb3JJblJvd3MoKSkge1xuICAgICAgZXJyb3JzLnB1c2gobmV3IFJlcXVpcmVkSW5BbGxSb3dzRXJyb3IobnVsbCwgdGhpcykpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGhhc0Vycm9ySW5Sb3dzKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0FsbFJvd1JlcXVpcmVkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICF0aGlzLmhhc1ZhbHVlc0luQWxsUm93cygpO1xuICB9XG4gIHByaXZhdGUgaGFzVmFsdWVzSW5BbGxSb3dzKCk6IGJvb2xlYW4ge1xuICAgIHZhciByb3dzID0gdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cztcbiAgICBpZiAoIXJvd3MpIHJvd3MgPSB0aGlzLnZpc2libGVSb3dzO1xuICAgIGlmICghcm93cykgcmV0dXJuIHRydWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdmFsID0gcm93c1tpXS52YWx1ZTtcbiAgICAgIGlmICghdmFsKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHByb3RlY3RlZCBnZXRJc0Fuc3dlcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5nZXRJc0Fuc3dlcmVkKCkgJiYgdGhpcy5oYXNWYWx1ZXNJbkFsbFJvd3MoKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTWF0cml4Um93KFxuICAgIGl0ZW06IEl0ZW1WYWx1ZSxcbiAgICBmdWxsTmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnlcbiAgKTogTWF0cml4Um93TW9kZWwge1xuICAgIHJldHVybiBuZXcgTWF0cml4Um93TW9kZWwoaXRlbSwgZnVsbE5hbWUsIHRoaXMsIHZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgc2V0UXVlc3Rpb25WYWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgc3VwZXIuc2V0UXVlc3Rpb25WYWx1ZShuZXdWYWx1ZSk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pc1Jvd0NoYW5naW5nIHx8XG4gICAgICAhdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cyB8fFxuICAgICAgdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cy5sZW5ndGggPT0gMFxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICB0aGlzLmlzUm93Q2hhbmdpbmcgPSB0cnVlO1xuICAgIHZhciB2YWwgPSB0aGlzLnZhbHVlO1xuICAgIGlmICghdmFsKSB2YWwgPSB7fTtcbiAgICBpZiAodGhpcy5yb3dzLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzWzBdLnZhbHVlID0gdmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHJvdyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV07XG4gICAgICAgIHZhciByb3dWYWwgPSB2YWxbcm93Lm5hbWVdID8gdmFsW3Jvdy5uYW1lXSA6IG51bGw7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV0udmFsdWUgPSByb3dWYWw7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaXNSb3dDaGFuZ2luZyA9IGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBnZXREaXNwbGF5VmFsdWVDb3JlKGtleXNBc1RleHQ6IGJvb2xlYW4sIHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIHZhciByZXM6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgICAgdmFyIG5ld0tleSA9IGtleXNBc1RleHRcbiAgICAgICAgPyBJdGVtVmFsdWUuZ2V0VGV4dE9ySHRtbEJ5VmFsdWUodGhpcy5yb3dzLCBrZXkpXG4gICAgICAgIDoga2V5O1xuICAgICAgaWYgKCFuZXdLZXkpIG5ld0tleSA9IGtleTtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IEl0ZW1WYWx1ZS5nZXRUZXh0T3JIdG1sQnlWYWx1ZSh0aGlzLmNvbHVtbnMsIHZhbHVlW2tleV0pO1xuICAgICAgaWYgKCFuZXdWYWx1ZSkgbmV3VmFsdWUgPSB2YWx1ZVtrZXldO1xuICAgICAgcmVzW25ld0tleV0gPSBuZXdWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwdWJsaWMgZ2V0UGxhaW5EYXRhKFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGluY2x1ZGVFbXB0eT86IGJvb2xlYW47XG4gICAgICBjYWxjdWxhdGlvbnM/OiBBcnJheTx7XG4gICAgICAgIHByb3BlcnR5TmFtZTogc3RyaW5nO1xuICAgICAgfT47XG4gICAgfSA9IHtcbiAgICAgIGluY2x1ZGVFbXB0eTogdHJ1ZVxuICAgIH1cbiAgKSB7XG4gICAgdmFyIHF1ZXN0aW9uUGxhaW5EYXRhID0gc3VwZXIuZ2V0UGxhaW5EYXRhKG9wdGlvbnMpO1xuICAgIGlmICghIXF1ZXN0aW9uUGxhaW5EYXRhKSB7XG4gICAgICB2YXIgdmFsdWVzID0gdGhpcy5jcmVhdGVWYWx1ZUNvcHkoKTtcbiAgICAgIHF1ZXN0aW9uUGxhaW5EYXRhLmlzTm9kZSA9IHRydWU7XG4gICAgICBxdWVzdGlvblBsYWluRGF0YS5kYXRhID0gT2JqZWN0LmtleXModmFsdWVzIHx8IHt9KS5tYXAocm93TmFtZSA9PiB7XG4gICAgICAgIHZhciByb3cgPSB0aGlzLnJvd3MuZmlsdGVyKFxuICAgICAgICAgIChyOiBNYXRyaXhSb3dNb2RlbCkgPT4gci52YWx1ZSA9PT0gcm93TmFtZVxuICAgICAgICApWzBdO1xuICAgICAgICB2YXIgcm93RGF0YUl0ZW0gPSA8YW55PntcbiAgICAgICAgICBuYW1lOiByb3dOYW1lLFxuICAgICAgICAgIHRpdGxlOiAhIXJvdyA/IHJvdy50ZXh0IDogXCJyb3dcIixcbiAgICAgICAgICB2YWx1ZTogdmFsdWVzW3Jvd05hbWVdLFxuICAgICAgICAgIGRpc3BsYXlWYWx1ZTogSXRlbVZhbHVlLmdldFRleHRPckh0bWxCeVZhbHVlKFxuICAgICAgICAgICAgdGhpcy52aXNpYmxlQ29sdW1ucyxcbiAgICAgICAgICAgIHZhbHVlc1tyb3dOYW1lXVxuICAgICAgICAgICksXG4gICAgICAgICAgZ2V0U3RyaW5nOiAodmFsOiBhbnkpID0+XG4gICAgICAgICAgICB0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiID8gSlNPTi5zdHJpbmdpZnkodmFsKSA6IHZhbCxcbiAgICAgICAgICBpc05vZGU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHZhciBpdGVtID0gSXRlbVZhbHVlLmdldEl0ZW1CeVZhbHVlKFxuICAgICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMsXG4gICAgICAgICAgdmFsdWVzW3Jvd05hbWVdXG4gICAgICAgICk7XG4gICAgICAgIGlmICghIWl0ZW0pIHtcbiAgICAgICAgICAob3B0aW9ucy5jYWxjdWxhdGlvbnMgfHwgW10pLmZvckVhY2goY2FsY3VsYXRpb24gPT4ge1xuICAgICAgICAgICAgcm93RGF0YUl0ZW1bY2FsY3VsYXRpb24ucHJvcGVydHlOYW1lXSA9XG4gICAgICAgICAgICAgIGl0ZW1bY2FsY3VsYXRpb24ucHJvcGVydHlOYW1lXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm93RGF0YUl0ZW07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXN0aW9uUGxhaW5EYXRhO1xuICB9XG4gIHB1YmxpYyBhZGRDb25kaXRpb25OYW1lcyhuYW1lczogQXJyYXk8c3RyaW5nPikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5yb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5yb3dzW2ldLnZhbHVlKSB7XG4gICAgICAgIG5hbWVzLnB1c2godGhpcy5uYW1lICsgXCIuXCIgKyB0aGlzLnJvd3NbaV0udmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwdWJsaWMgYWRkQ29uZGl0aW9uT2JqZWN0c0J5Q29udGV4dChcbiAgICBvYmplY3RzOiBBcnJheTxJQ29uZGl0aW9uT2JqZWN0PixcbiAgICBjb250ZXh0OiBhbnlcbiAgKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciByb3cgPSB0aGlzLnJvd3NbaV07XG4gICAgICBpZiAoISFyb3cudmFsdWUpIHtcbiAgICAgICAgb2JqZWN0cy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUgKyBcIi5cIiArIHJvdy52YWx1ZSxcbiAgICAgICAgICB0ZXh0OiB0aGlzLnByb2Nlc3NlZFRpdGxlICsgXCIuXCIgKyByb3cuY2FsY3VsYXRlZFRleHQsXG4gICAgICAgICAgcXVlc3Rpb246IHRoaXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRDb25kaXRpb25Kc29uKG9wZXJhdG9yOiBzdHJpbmcgPSBudWxsLCBwYXRoOiBzdHJpbmcgPSBudWxsKTogYW55IHtcbiAgICBpZiAoIXBhdGgpIHJldHVybiBzdXBlci5nZXRDb25kaXRpb25Kc29uKCk7XG4gICAgdmFyIHF1ZXN0aW9uID0gbmV3IFF1ZXN0aW9uRHJvcGRvd25Nb2RlbChwYXRoKTtcbiAgICBxdWVzdGlvbi5jaG9pY2VzID0gdGhpcy5jb2x1bW5zO1xuICAgIHZhciBqc29uID0gbmV3IEpzb25PYmplY3QoKS50b0pzb25PYmplY3QocXVlc3Rpb24pO1xuICAgIGpzb25bXCJ0eXBlXCJdID0gcXVlc3Rpb24uZ2V0VHlwZSgpO1xuICAgIHJldHVybiBqc29uO1xuICB9XG4gIHB1YmxpYyBjbGVhclZhbHVlSWZJbnZpc2libGUoKSB7XG4gICAgc3VwZXIuY2xlYXJWYWx1ZUlmSW52aXNpYmxlKCk7XG4gICAgaWYgKHRoaXMuaGFzUm93cykge1xuICAgICAgdGhpcy5jbGVhckludmlzaWJsZVZhbHVlc0luUm93cygpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Rmlyc3RJbnB1dEVsZW1lbnRJZCgpOiBzdHJpbmcge1xuICAgIHZhciByb3dzID0gdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cztcbiAgICBpZiAoIXJvd3MpIHJvd3MgPSB0aGlzLnZpc2libGVSb3dzO1xuICAgIGlmIChyb3dzLmxlbmd0aCA+IDAgJiYgdGhpcy52aXNpYmxlQ29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnB1dElkICsgXCJfXCIgKyByb3dzWzBdLm5hbWUgKyBcIl9cIiArIDA7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5nZXRGaXJzdElucHV0RWxlbWVudElkKCk7XG4gIH1cbiAgLy9JTWF0cml4RGF0YVxuICBvbk1hdHJpeFJvd0NoYW5nZWQocm93OiBNYXRyaXhSb3dNb2RlbCkge1xuICAgIGlmICh0aGlzLmlzUm93Q2hhbmdpbmcpIHJldHVybjtcbiAgICB0aGlzLmlzUm93Q2hhbmdpbmcgPSB0cnVlO1xuICAgIGlmICghdGhpcy5oYXNSb3dzKSB7XG4gICAgICB0aGlzLnNldE5ld1ZhbHVlKHJvdy52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICBpZiAoIW5ld1ZhbHVlKSB7XG4gICAgICAgIG5ld1ZhbHVlID0ge307XG4gICAgICB9XG4gICAgICBuZXdWYWx1ZVtyb3cubmFtZV0gPSByb3cudmFsdWU7XG4gICAgICB0aGlzLnNldE5ld1ZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5pc1Jvd0NoYW5naW5nID0gZmFsc2U7XG4gIH1cbn1cblxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJtYXRyaXhcIixcbiAgW1xuICAgIHtcbiAgICAgIG5hbWU6IFwiY29sdW1uczppdGVtdmFsdWVbXVwiLFxuICAgICAgYmFzZVZhbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJtYXRyaXhfY29sdW1uXCIpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJyb3dzOml0ZW12YWx1ZVtdXCIsXG4gICAgICBiYXNlVmFsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcIm1hdHJpeF9yb3dcIik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7IG5hbWU6IFwiY2VsbHM6Y2VsbHNcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImNlbGxzXCIgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInJvd3NPcmRlclwiLFxuICAgICAgZGVmYXVsdDogXCJpbml0aWFsXCIsXG4gICAgICBjaG9pY2VzOiBbXCJpbml0aWFsXCIsIFwicmFuZG9tXCJdXG4gICAgfSxcbiAgICBcImlzQWxsUm93UmVxdWlyZWQ6Ym9vbGVhblwiXG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25NYXRyaXhNb2RlbChcIlwiKTtcbiAgfSxcbiAgXCJtYXRyaXhiYXNlXCJcbik7XG5cblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwibWF0cml4XCIsIG5hbWUgPT4ge1xuICB2YXIgcSA9IG5ldyBRdWVzdGlvbk1hdHJpeE1vZGVsKG5hbWUpO1xuICBxLnJvd3MgPSBRdWVzdGlvbkZhY3RvcnkuRGVmYXVsdFJvd3M7XG4gIHEuY29sdW1ucyA9IFF1ZXN0aW9uRmFjdG9yeS5EZWZhdWx0Q29sdW1zO1xuICByZXR1cm4gcTtcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX21hdHJpeC50cyIsImltcG9ydCB7XG4gIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbEJhc2UsXG4gIE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlLFxuICBJTWF0cml4RHJvcGRvd25EYXRhXG59IGZyb20gXCIuL3F1ZXN0aW9uX21hdHJpeGRyb3Bkb3duYmFzZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBMb2NhbGl6YWJsZVN0cmluZyB9IGZyb20gXCIuL2xvY2FsaXphYmxlc3RyaW5nXCI7XG5pbXBvcnQgeyBJQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcblxuZXhwb3J0IGNsYXNzIE1hdHJpeERyb3Bkb3duUm93TW9kZWwgZXh0ZW5kcyBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSB7XG4gIHByaXZhdGUgaXRlbTogSXRlbVZhbHVlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIGl0ZW06IEl0ZW1WYWx1ZSxcbiAgICBkYXRhOiBJTWF0cml4RHJvcGRvd25EYXRhLFxuICAgIHZhbHVlOiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoZGF0YSwgdmFsdWUpO1xuICAgIHRoaXMuaXRlbSA9IGl0ZW07XG4gICAgdGhpcy5idWlsZENlbGxzKHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJvd05hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG4gIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW0udGV4dDtcbiAgfVxuICBwdWJsaWMgZ2V0IGxvY1RleHQoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW0ubG9jVGV4dDtcbiAgfVxufVxuLyoqXG4gKiBBIE1vZGVsIGZvciBhIG1hdHJpeCBkcm9wZG93biBxdWVzdGlvbi4gWW91IG1heSB1c2UgYSBkcm9wZG93biwgY2hlY2tib3gsIHJhZGlvZ3JvdXAsIHRleHQgYW5kIGNvbW1lbnQgcXVlc3Rpb25zIGFzIGEgY2VsbCBlZGl0b3JzLlxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsIGV4dGVuZHMgUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsQmFzZVxuICBpbXBsZW1lbnRzIElNYXRyaXhEcm9wZG93bkRhdGEge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInRvdGFsVGV4dFwiLCB0aGlzLCB0cnVlKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcInJvd3NcIiwgZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLmdlbmVyYXRlZFZpc2libGVSb3dzID0gbnVsbDtcbiAgICAgIHNlbGYuZmlsdGVySXRlbXMoKTtcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIm1hdHJpeGRyb3Bkb3duXCI7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIHNob3cgaXQgb24gdGhlIGZpcnN0IGNvbHVtbiBmb3IgdGhlIHRvdGFsIHJvdy5cbiAgICovXG4gIHB1YmxpYyBnZXQgdG90YWxUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInRvdGFsVGV4dFwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRvdGFsVGV4dCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwidG90YWxUZXh0XCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBsb2NUb3RhbFRleHQoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwidG90YWxUZXh0XCIpO1xuICB9XG4gIHB1YmxpYyBnZXRGb290ZXJUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2NUb3RhbFRleHQ7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERpc3BsYXlWYWx1ZUNvcmUoa2V5c0FzVGV4dDogYm9vbGVhbiwgdmFsdWU6IGFueSk6IGFueSB7XG4gICAgdmFyIHZhbHVlcyA9IHRoaXMuY3JlYXRlVmFsdWVDb3B5KCk7XG4gICAgaWYgKCF2YWx1ZXMpIHJldHVybiB2YWx1ZXM7XG4gICAgdmFyIHJvd3MgPSB0aGlzLnZpc2libGVSb3dzO1xuICAgIHZhciByZXMgPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciByb3dWYWx1ZSA9IHRoaXMucm93c1tpXS52YWx1ZTtcbiAgICAgIHZhciB2YWwgPSB2YWx1ZXNbcm93VmFsdWVdO1xuICAgICAgaWYgKCF2YWwpIGNvbnRpbnVlO1xuICAgICAgaWYgKGtleXNBc1RleHQpIHtcbiAgICAgICAgdmFyIGRpc3BsYXlSb3dWYWx1ZSA9IEl0ZW1WYWx1ZS5nZXRUZXh0T3JIdG1sQnlWYWx1ZShcbiAgICAgICAgICB0aGlzLnJvd3MsXG4gICAgICAgICAgcm93VmFsdWVcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCEhZGlzcGxheVJvd1ZhbHVlKSB7XG4gICAgICAgICAgcm93VmFsdWUgPSBkaXNwbGF5Um93VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICg8YW55PnJlcylbcm93VmFsdWVdID0gdGhpcy5nZXRSb3dEaXNwbGF5VmFsdWUocm93c1tpXSwgdmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuICBwdWJsaWMgYWRkQ29uZGl0aW9uTmFtZXMobmFtZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLnJvd3NbaV0udmFsdWUpIGNvbnRpbnVlO1xuICAgICAgdmFyIHByZWZpeCA9IHRoaXMubmFtZSArIFwiLlwiICsgdGhpcy5yb3dzW2ldLnZhbHVlICsgXCIuXCI7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuY29sdW1ucy5sZW5ndGg7IGorKykge1xuICAgICAgICBuYW1lcy5wdXNoKHByZWZpeCArIHRoaXMuY29sdW1uc1tqXS5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGFkZENvbmRpdGlvbk9iamVjdHNCeUNvbnRleHQoXG4gICAgb2JqZWN0czogQXJyYXk8SUNvbmRpdGlvbk9iamVjdD4sXG4gICAgY29udGV4dDogYW55XG4gICkge1xuICAgIHZhciBoYXNDb250ZXh0ID0gISFjb250ZXh0ID8gdGhpcy5jb2x1bW5zLmluZGV4T2YoY29udGV4dCkgPiAtMSA6IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5yb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcm93ID0gdGhpcy5yb3dzW2ldO1xuICAgICAgaWYgKCFyb3cudmFsdWUpIGNvbnRpbnVlO1xuICAgICAgdmFyIHByZWZpeE5hbWUgPSB0aGlzLm5hbWUgKyBcIi5cIiArIHJvdy52YWx1ZSArIFwiLlwiO1xuICAgICAgdmFyIHByZWZpeFRpdGxlID0gdGhpcy5wcm9jZXNzZWRUaXRsZSArIFwiLlwiICsgcm93LmNhbGN1bGF0ZWRUZXh0ICsgXCIuXCI7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuY29sdW1ucy5sZW5ndGg7IGorKykge1xuICAgICAgICB2YXIgY29sdW1uID0gdGhpcy5jb2x1bW5zW2pdO1xuICAgICAgICBvYmplY3RzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IHByZWZpeE5hbWUgKyBjb2x1bW4ubmFtZSxcbiAgICAgICAgICB0ZXh0OiBwcmVmaXhUaXRsZSArIGNvbHVtbi5mdWxsVGl0bGUsXG4gICAgICAgICAgcXVlc3Rpb246IHRoaXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNDb250ZXh0KSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY29sdW1uID0gdGhpcy5jb2x1bW5zW2ldO1xuICAgICAgICBpZiAoY29sdW1uID09IGNvbnRleHQpIGNvbnRpbnVlO1xuICAgICAgICBvYmplY3RzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IFwicm93LlwiICsgY29sdW1uLm5hbWUsXG4gICAgICAgICAgdGV4dDogXCJyb3cuXCIgKyBjb2x1bW4uZnVsbFRpdGxlLFxuICAgICAgICAgIHF1ZXN0aW9uOiB0aGlzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwdWJsaWMgY2xlYXJJbmNvcnJlY3RWYWx1ZXMoKSB7XG4gICAgdmFyIHZhbCA9IHRoaXMudmFsdWU7XG4gICAgaWYgKCF2YWwpIHJldHVybjtcbiAgICB2YXIgbmV3VmFsID0gbnVsbDtcbiAgICB2YXIgaXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgdmFyIHJvd3MgPSAhIXRoaXMuZmlsdGVyZWRSb3dzID8gdGhpcy5maWx0ZXJlZFJvd3MgOiB0aGlzLnJvd3M7XG4gICAgZm9yICh2YXIga2V5IGluIHZhbCkge1xuICAgICAgaWYgKEl0ZW1WYWx1ZS5nZXRJdGVtQnlWYWx1ZShyb3dzLCBrZXkpKSB7XG4gICAgICAgIGlmIChuZXdWYWwgPT0gbnVsbCkgbmV3VmFsID0ge307XG4gICAgICAgICg8YW55Pm5ld1ZhbClba2V5XSA9IHZhbFtrZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzQ2hhbmdlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbDtcbiAgICB9XG4gICAgc3VwZXIuY2xlYXJJbmNvcnJlY3RWYWx1ZXMoKTtcbiAgfVxuICBwdWJsaWMgY2xlYXJWYWx1ZUlmSW52aXNpYmxlKCkge1xuICAgIHN1cGVyLmNsZWFyVmFsdWVJZkludmlzaWJsZSgpO1xuICAgIHRoaXMuY2xlYXJJbnZpc2libGVWYWx1ZXNJblJvd3MoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVSb3dzKCk6IEFycmF5PE1hdHJpeERyb3Bkb3duUm93TW9kZWw+IHtcbiAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5PE1hdHJpeERyb3Bkb3duUm93TW9kZWw+KCk7XG4gICAgdmFyIHJvd3MgPSAhIXRoaXMuZmlsdGVyZWRSb3dzID8gdGhpcy5maWx0ZXJlZFJvd3MgOiB0aGlzLnJvd3M7XG4gICAgaWYgKCFyb3dzIHx8IHJvd3MubGVuZ3RoID09PSAwKSByZXR1cm4gcmVzdWx0O1xuICAgIHZhciB2YWwgPSB0aGlzLnZhbHVlO1xuICAgIGlmICghdmFsKSB2YWwgPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghcm93c1tpXS52YWx1ZSkgY29udGludWU7XG4gICAgICByZXN1bHQucHVzaCh0aGlzLmNyZWF0ZU1hdHJpeFJvdyhyb3dzW2ldLCB2YWxbcm93c1tpXS52YWx1ZV0pKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTWF0cml4Um93KFxuICAgIGl0ZW06IEl0ZW1WYWx1ZSxcbiAgICB2YWx1ZTogYW55XG4gICk6IE1hdHJpeERyb3Bkb3duUm93TW9kZWwge1xuICAgIHJldHVybiBuZXcgTWF0cml4RHJvcGRvd25Sb3dNb2RlbChpdGVtLnZhbHVlLCBpdGVtLCB0aGlzLCB2YWx1ZSk7XG4gIH1cbn1cblxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJtYXRyaXhkcm9wZG93blwiLFxuICBbXG4gICAge1xuICAgICAgbmFtZTogXCJyb3dzOml0ZW12YWx1ZVtdXCJcbiAgICB9LFxuICAgIFwicm93c1Zpc2libGVJZjpjb25kaXRpb25cIixcbiAgICB7IG5hbWU6IFwidG90YWxUZXh0XCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NUb3RhbFRleHRcIiB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsKFwiXCIpO1xuICB9LFxuICBcIm1hdHJpeGRyb3Bkb3duYmFzZVwiXG4pO1xuXG5RdWVzdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJRdWVzdGlvbihcIm1hdHJpeGRyb3Bkb3duXCIsIG5hbWUgPT4ge1xuICB2YXIgcSA9IG5ldyBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWwobmFtZSk7XG4gIHEuY2hvaWNlcyA9IFsxLCAyLCAzLCA0LCA1XTtcbiAgcS5yb3dzID0gUXVlc3Rpb25GYWN0b3J5LkRlZmF1bHRDb2x1bXM7XG4gIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbEJhc2UuYWRkRGVmYXVsdENvbHVtbnMocSk7XG4gIHJldHVybiBxO1xufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVlc3Rpb25fbWF0cml4ZHJvcGRvd24udHMiLCJpbXBvcnQge1xuICBRdWVzdGlvbk1hdHJpeERyb3Bkb3duTW9kZWxCYXNlLFxuICBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSxcbiAgSU1hdHJpeERyb3Bkb3duRGF0YSxcbiAgTWF0cml4RHJvcGRvd25Db2x1bW5cbn0gZnJvbSBcIi4vcXVlc3Rpb25fbWF0cml4ZHJvcGRvd25iYXNlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBzdXJ2ZXlMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9zdXJ2ZXlTdHJpbmdzXCI7XG5pbXBvcnQgeyBTdXJ2ZXlFcnJvciB9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCB7IExvY2FsaXphYmxlU3RyaW5nIH0gZnJvbSBcIi4vbG9jYWxpemFibGVzdHJpbmdcIjtcbmltcG9ydCB7IE1pblJvd0NvdW50RXJyb3IsIEtleUR1cGxpY2F0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgSUNvbmRpdGlvbk9iamVjdCB9IGZyb20gXCIuL3F1ZXN0aW9uXCI7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgc2V0dGluZ3MgfSBmcm9tIFwiLi9zZXR0aW5nc1wiO1xuXG5leHBvcnQgY2xhc3MgTWF0cml4RHluYW1pY1Jvd01vZGVsIGV4dGVuZHMgTWF0cml4RHJvcGRvd25Sb3dNb2RlbEJhc2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaW5kZXg6IG51bWJlciwgZGF0YTogSU1hdHJpeERyb3Bkb3duRGF0YSwgdmFsdWU6IGFueSkge1xuICAgIHN1cGVyKGRhdGEsIHZhbHVlKTtcbiAgICB0aGlzLmJ1aWxkQ2VsbHModmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgcm93TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pZDtcbiAgfVxufVxuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGEgbWF0cml4IGR5bWFuaWMgcXVlc3Rpb24uIFlvdSBtYXkgdXNlIGEgZHJvcGRvd24sIGNoZWNrYm94LCByYWRpb2dyb3VwLCB0ZXh0IGFuZCBjb21tZW50IHF1ZXN0aW9ucyBhcyBhIGNlbGwgZWRpdG9ycy5cbiAqIEFuIGVuZC11c2VyIG1heSBkeW5hbWljYWxseSBhZGQvcmVtb3ZlIHJvd3MsIHVubGlrZSBpbiBtYXRyaXggZHJvcGRvd24gcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVzdGlvbk1hdHJpeER5bmFtaWNNb2RlbCBleHRlbmRzIFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbEJhc2VcbiAgaW1wbGVtZW50cyBJTWF0cml4RHJvcGRvd25EYXRhIHtcbiAgcHJpdmF0ZSByb3dDb3VudGVyID0gMDtcbiAgcHJpdmF0ZSByb3dDb3VudFZhbHVlOiBudW1iZXIgPSAyO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwiY29uZmlybURlbGV0ZVRleHRcIiwgdGhpcyk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcImtleUR1cGxpY2F0aW9uRXJyb3JcIiwgdGhpcyk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcImFkZFJvd1RleHRcIiwgdGhpcyk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInJlbW92ZVJvd1RleHRcIiwgdGhpcyk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJtYXRyaXhkeW5hbWljXCI7XG4gIH1cbiAgcHVibGljIGdldCBpc1Jvd3NEeW5hbWljKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gdHJ1ZSwgdG8gc2hvdyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgb24gcmVtb3ZpbmcgYSByb3dcbiAgICogQHNlZSBDb25maXJtRGVsZXRlVGV4dFxuICAgKi9cbiAgcHVibGljIGdldCBjb25maXJtRGVsZXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjb25maXJtRGVsZXRlXCIsIGZhbHNlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNvbmZpcm1EZWxldGUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY29uZmlybURlbGV0ZVwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gYSBjb2x1bW4gbmFtZSBhbmQgdGhlIGxpYnJhcnkgc2hvd3MgZHVwbGljYXRpb24gZXJyb3IsIGlmIHRoZXJlIGFyZSBzYW1lIHZhbHVlcyBpbiBkaWZmZXJlbnQgcm93cyBpbiB0aGUgY29sdW1uLlxuICAgKiBAc2VlIGtleUR1cGxpY2F0aW9uRXJyb3JcbiAgICovXG4gIHB1YmxpYyBnZXQga2V5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJrZXlOYW1lXCIsIFwiXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQga2V5TmFtZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImtleU5hbWVcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogSWYgaXQgaXMgbm90IGVtcHR5LCB0aGVuIHRoaXMgdmFsdWUgaXMgc2V0IHRvIGV2ZXJ5IG5ldyByb3csIGluY2x1ZGluZyByb3dzIGNyZWF0ZWQgaW5pdGlhbGx5LCB1bmxlc3MgdGhlIGRlZmF1bHRWYWx1ZSBpcyBub3QgZW1wdHlcbiAgICogQHNlZSBkZWZhdWx0VmFsdWVcbiAgICogQHNlZSBkZWZhdWx0VmFsdWVGcm9tTGFzdFJvd1xuICAgKi9cbiAgcHVibGljIGdldCBkZWZhdWx0Um93VmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiZGVmYXVsdFJvd1ZhbHVlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVmYXVsdFJvd1ZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiZGVmYXVsdFJvd1ZhbHVlXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIHRvIGNvcHkgdGhlIHZhbHVlIGludG8gbmV3IGFkZGVkIHJvdyBmcm9tIHRoZSBsYXN0IHJvdy4gSWYgZGVmYXVsdFJvd1ZhbHVlIGlzIHNldCBhbmQgdGhpcyBwcm9wZXJ0eSBlcXVhbHMgdG8gdHJ1ZSxcbiAgICogdGhlbiB0aGUgdmFsdWUgZm9yIG5ldyBhZGRlZCByb3cgaXMgbWVyZ2luZy5cbiAgICogQHNlZSBkZWZhdWx0VmFsdWVcbiAgICogQHNlZSBkZWZhdWx0Um93VmFsdWVcbiAgICovXG4gIHB1YmxpYyBnZXQgZGVmYXVsdFZhbHVlRnJvbUxhc3RSb3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImRlZmF1bHRWYWx1ZUZyb21MYXN0Um93XCIsIGZhbHNlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGRlZmF1bHRWYWx1ZUZyb21MYXN0Um93KHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImRlZmF1bHRWYWx1ZUZyb21MYXN0Um93XCIsIHZhbCk7XG4gIH1cbiAgcHJvdGVjdGVkIGlzRGVmYXVsdFZhbHVlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHN1cGVyLmlzRGVmYXVsdFZhbHVlRW1wdHkoKSAmJiB0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmRlZmF1bHRSb3dWYWx1ZSlcbiAgICApO1xuICB9XG4gIHByb3RlY3RlZCBzZXREZWZhdWx0VmFsdWUoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pc1ZhbHVlRW1wdHkodGhpcy5kZWZhdWx0Um93VmFsdWUpIHx8XG4gICAgICAhdGhpcy5pc1ZhbHVlRW1wdHkodGhpcy5kZWZhdWx0VmFsdWUpXG4gICAgKSB7XG4gICAgICBzdXBlci5zZXREZWZhdWx0VmFsdWUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzRW1wdHkoKSB8fCB0aGlzLnJvd0NvdW50ID09IDApIHJldHVybjtcbiAgICB2YXIgbmV3VmFsdWUgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucm93Q291bnQ7IGkrKykge1xuICAgICAgbmV3VmFsdWUucHVzaCh0aGlzLmRlZmF1bHRSb3dWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgfVxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByb3dzIGluIHRoZSBtYXRyaXguXG4gICAqIEBzZWUgbWluUm93Q291bnRcbiAgICogQHNlZSBtYXhSb3dDb3VudFxuICAgKi9cbiAgcHVibGljIGdldCByb3dDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnJvd0NvdW50VmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCByb3dDb3VudCh2YWw6IG51bWJlcikge1xuICAgIGlmICh2YWwgPCAwIHx8IHZhbCA+IHNldHRpbmdzLm1hdHJpeE1heGltdW1Sb3dDb3VudCkgcmV0dXJuO1xuICAgIHZhciBwcmV2VmFsdWUgPSB0aGlzLnJvd0NvdW50VmFsdWU7XG4gICAgdGhpcy5yb3dDb3VudFZhbHVlID0gdmFsO1xuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gdmFsKSB7XG4gICAgICB2YXIgcVZhbCA9IHRoaXMudmFsdWU7XG4gICAgICBxVmFsLnNwbGljZSh2YWwpO1xuICAgICAgdGhpcy52YWx1ZSA9IHFWYWw7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzTG9hZGluZ0Zyb21Kc29uKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3Muc3BsaWNlKHZhbCk7XG4gICAgICBmb3IgKHZhciBpID0gcHJldlZhbHVlOyBpIDwgdmFsOyBpKyspIHtcbiAgICAgICAgdmFyIG5ld1JvdyA9IHRoaXMuY3JlYXRlTWF0cml4Um93KG51bGwpO1xuICAgICAgICB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzLnB1c2gobmV3Um93KTtcbiAgICAgICAgdGhpcy5vbk1hdHJpeFJvd0NyZWF0ZWQobmV3Um93KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vblJvd3NDaGFuZ2VkKCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHJvdyBjb3VudC4gQSB1c2VyIGNvdWxkIG5vdCBkZWxldGUgYSByb3cgaWYgdGhlIHJvd0NvdW50IGVxdWFscyB0byBtaW5Sb3dDb3VudFxuICAgKiBAc2VlIHJvd0NvdW50XG4gICAqIEBzZWUgbWF4Um93Q291bnRcbiAgICovXG4gIHB1YmxpYyBnZXQgbWluUm93Q291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwibWluUm93Q291bnRcIiwgMCk7XG4gIH1cbiAgcHVibGljIHNldCBtaW5Sb3dDb3VudCh2YWw6IG51bWJlcikge1xuICAgIGlmICh2YWwgPCAwKSB2YWwgPSAwO1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIm1pblJvd0NvdW50XCIsIHZhbCk7XG4gICAgaWYgKHZhbCA+IHRoaXMubWF4Um93Q291bnQpIHRoaXMubWF4Um93Q291bnQgPSB2YWw7XG4gICAgaWYgKHRoaXMucm93Q291bnQgPCB2YWwpIHRoaXMucm93Q291bnQgPSB2YWw7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHJvdyBjb3VudC4gQSB1c2VyIGNvdWxkIG5vdCBhZGQgYSByb3cgaWYgdGhlIHJvd0NvdW50IGVxdWFscyB0byBtYXhSb3dDb3VudFxuICAgKiBAc2VlIHJvd0NvdW50XG4gICAqIEBzZWUgbWluUm93Q291bnRcbiAgICovXG4gIHB1YmxpYyBnZXQgbWF4Um93Q291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwibWF4Um93Q291bnRcIiwgc2V0dGluZ3MubWF0cml4TWF4aW11bVJvd0NvdW50KTtcbiAgfVxuICBwdWJsaWMgc2V0IG1heFJvd0NvdW50KHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHZhbCA8PSAwKSByZXR1cm47XG4gICAgaWYgKHZhbCA+IHNldHRpbmdzLm1hdHJpeE1heGltdW1Sb3dDb3VudClcbiAgICAgIHZhbCA9IHNldHRpbmdzLm1hdHJpeE1heGltdW1Sb3dDb3VudDtcbiAgICBpZiAodmFsID09IHRoaXMubWF4Um93Q291bnQpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJtYXhSb3dDb3VudFwiLCB2YWwpO1xuICAgIGlmICh2YWwgPCB0aGlzLm1pblJvd0NvdW50KSB0aGlzLm1pblJvd0NvdW50ID0gdmFsO1xuICAgIGlmICh0aGlzLnJvd0NvdW50ID4gdmFsKSB0aGlzLnJvd0NvdW50ID0gdmFsO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUsIGlmIGEgbmV3IHJvdyBjYW4gYmUgYWRkZWQuXG4gICAqIEBzZWUgbWF4Um93Q291bnRcbiAgICogQHNlZSBjYW5SZW1vdmVSb3dzXG4gICAqIEBzZWUgcm93Q291bnRcbiAgICovXG4gIHB1YmxpYyBnZXQgY2FuQWRkUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMucm93Q291bnQgPCB0aGlzLm1heFJvd0NvdW50O1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUsIGlmIHJvdyBjYW4gYmUgcmVtb3ZlZC5cbiAgICogQHNlZSBtaW5Sb3dDb3VudFxuICAgKiBAc2VlIGNhbkFkZFJvd1xuICAgKiBAc2VlIHJvd0NvdW50XG4gICAqL1xuICBwdWJsaWMgZ2V0IGNhblJlbW92ZVJvd3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzUmVhZE9ubHkgJiYgdGhpcy5yb3dDb3VudCA+IHRoaXMubWluUm93Q291bnQ7XG4gIH1cbiAgcHVibGljIGNhblJlbW92ZVJvdyhyb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnN1cnZleSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIHRoaXMuc3VydmV5Lm1hdHJpeEFsbG93UmVtb3ZlUm93KFxuICAgICAgdGhpcyxcbiAgICAgICg8TWF0cml4RHluYW1pY1Jvd01vZGVsPnJvdykuaW5kZXgsXG4gICAgICByb3dcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW5kIGFkZCBhIG5ldyByb3cuXG4gICAqL1xuICBwdWJsaWMgYWRkUm93KCkge1xuICAgIHZhciBvcHRpb25zID0geyBxdWVzdGlvbjogdGhpcywgY2FuQWRkUm93OiB0aGlzLmNhbkFkZFJvdyB9O1xuICAgIGlmICghIXRoaXMuc3VydmV5KSB7XG4gICAgICB0aGlzLnN1cnZleS5tYXRyaXhCZWZvcmVSb3dBZGRlZChvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLmNhbkFkZFJvdykgcmV0dXJuO1xuICAgIHRoaXMub25TdGFydFJvd0FkZGluZ1JlbW92aW5nKCk7XG4gICAgdGhpcy5hZGRSb3dDb3JlKCk7XG4gICAgdGhpcy5vbkVuZFJvd0FkZGluZygpO1xuICB9XG4gIHByb3RlY3RlZCBoYXNSb3dzQXNJdGVtcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHJpdmF0ZSBhZGRSb3dDb3JlKCkge1xuICAgIHZhciBwcmV2Um93Q291bnQgPSB0aGlzLnJvd0NvdW50O1xuICAgIHRoaXMucm93Q291bnQgPSB0aGlzLnJvd0NvdW50ICsgMTtcbiAgICB2YXIgZGVmYXVsdFZhbHVlID0gdGhpcy5nZXREZWZhdWx0Um93VmFsdWUodHJ1ZSk7XG4gICAgdmFyIG5ld1ZhbHVlID0gbnVsbDtcbiAgICBpZiAoIXRoaXMuaXNWYWx1ZUVtcHR5KGRlZmF1bHRWYWx1ZSkpIHtcbiAgICAgIG5ld1ZhbHVlID0gdGhpcy5jcmVhdGVOZXdWYWx1ZSgpO1xuICAgICAgaWYgKG5ld1ZhbHVlLmxlbmd0aCA9PSB0aGlzLnJvd0NvdW50KSB7XG4gICAgICAgIG5ld1ZhbHVlW25ld1ZhbHVlLmxlbmd0aCAtIDFdID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMucnVuQ2VsbHNDb25kaXRpb24oXG4gICAgICAgIHRoaXMuZ2V0RGF0YUZpbHRlcmVkVmFsdWVzKCksXG4gICAgICAgIHRoaXMuZ2V0RGF0YUZpbHRlcmVkUHJvcGVydGllcygpXG4gICAgICApO1xuICAgICAgdmFyIHJvdyA9IHRoaXMudmlzaWJsZVJvd3NbdGhpcy5yb3dDb3VudCAtIDFdO1xuICAgICAgaWYgKCFIZWxwZXJzLmlzVmFsdWVFbXB0eShyb3cudmFsdWUpKSB7XG4gICAgICAgIGlmICghbmV3VmFsdWUpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMuY3JlYXRlTmV3VmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIUhlbHBlcnMuaXNUd29WYWx1ZUVxdWFscyhuZXdWYWx1ZVtuZXdWYWx1ZS5sZW5ndGggLSAxXSwgcm93LnZhbHVlKVxuICAgICAgICApIHtcbiAgICAgICAgICBuZXdWYWx1ZVtuZXdWYWx1ZS5sZW5ndGggLSAxXSA9IHJvdy52YWx1ZTtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuc3VydmV5KSB7XG4gICAgICBpZiAocHJldlJvd0NvdW50ICsgMSA9PSB0aGlzLnJvd0NvdW50KSB7XG4gICAgICAgIHRoaXMuc3VydmV5Lm1hdHJpeFJvd0FkZGVkKHRoaXMpO1xuICAgICAgICB0aGlzLm9uUm93c0NoYW5nZWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXREZWZhdWx0Um93VmFsdWUoaXNSb3dBZGRlZDogYm9vbGVhbik6IGFueSB7XG4gICAgdmFyIHJlcyA9IG51bGw7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxID0gdGhpcy5jb2x1bW5zW2ldLnRlbXBsYXRlUXVlc3Rpb247XG4gICAgICBpZiAoISFxICYmICF0aGlzLmlzVmFsdWVFbXB0eShxLmdldERlZmF1bHRWYWx1ZSgpKSkge1xuICAgICAgICByZXMgPSByZXMgfHwge307XG4gICAgICAgICg8YW55PnJlcylbdGhpcy5jb2x1bW5zW2ldLm5hbWVdID0gcS5nZXREZWZhdWx0VmFsdWUoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmRlZmF1bHRSb3dWYWx1ZSkpIHtcbiAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLmRlZmF1bHRSb3dWYWx1ZSkge1xuICAgICAgICByZXMgPSByZXMgfHwge307XG4gICAgICAgICg8YW55PnJlcylba2V5XSA9IHRoaXMuZGVmYXVsdFJvd1ZhbHVlW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc1Jvd0FkZGVkICYmIHRoaXMuZGVmYXVsdFZhbHVlRnJvbUxhc3RSb3cpIHtcbiAgICAgIHZhciB2YWwgPSB0aGlzLnZhbHVlO1xuICAgICAgaWYgKCEhdmFsICYmIEFycmF5LmlzQXJyYXkodmFsKSAmJiB2YWwubGVuZ3RoID49IHRoaXMucm93Q291bnQgLSAxKSB7XG4gICAgICAgIHZhciByb3dWYWx1ZSA9IHZhbFt0aGlzLnJvd0NvdW50IC0gMl07XG4gICAgICAgIGZvciAodmFyIGtleSBpbiByb3dWYWx1ZSkge1xuICAgICAgICAgIHJlcyA9IHJlcyB8fCB7fTtcbiAgICAgICAgICAoPGFueT5yZXMpW2tleV0gPSByb3dWYWx1ZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSByb3cgYnkgaXQncyBpbmRleC4gSWYgY29uZmlybURlbGV0ZSBpcyB0cnVlLCBzaG93IGEgY29uZmlybWF0aW9uIGRpYWxvZ1xuICAgKiBAcGFyYW0gaW5kZXggYSByb3cgaW5kZXgsIGZyb20gMCB0byByb3dDb3VudCAtIDFcbiAgICogQHNlZSByZW1vdmVSb3dcbiAgICogQHNlZSBjb25maXJtRGVsZXRlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlUm93VUkodmFsdWU6IGFueSkge1xuICAgIGlmICghIXZhbHVlICYmICEhdmFsdWUucm93TmFtZSkge1xuICAgICAgdmFyIGluZGV4ID0gdGhpcy52aXNpYmxlUm93cy5pbmRleE9mKHZhbHVlKTtcbiAgICAgIGlmIChpbmRleCA8IDApIHJldHVybjtcbiAgICAgIHZhbHVlID0gaW5kZXg7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICF0aGlzLmlzUmVxdWlyZUNvbmZpcm1PblJvd0RlbGV0ZSh2YWx1ZSkgfHxcbiAgICAgIGNvbmZpcm0odGhpcy5jb25maXJtRGVsZXRlVGV4dClcbiAgICApIHtcbiAgICAgIHRoaXMucmVtb3ZlUm93KHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGlzUmVxdWlyZUNvbmZpcm1PblJvd0RlbGV0ZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNvbmZpcm1EZWxldGUpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMucm93Q291bnQpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgdmFsdWUgPSB0aGlzLmNyZWF0ZU5ld1ZhbHVlKCk7XG4gICAgaWYgKEhlbHBlcnMuaXNWYWx1ZUVtcHR5KHZhbHVlKSB8fCAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoaW5kZXggPj0gdmFsdWUubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICFIZWxwZXJzLmlzVmFsdWVFbXB0eSh2YWx1ZVtpbmRleF0pO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgcm93IGJ5IGl0J3MgaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBhIHJvdyBpbmRleCwgZnJvbSAwIHRvIHJvd0NvdW50IC0gMVxuICAgKi9cbiAgcHVibGljIHJlbW92ZVJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmNhblJlbW92ZVJvd3MpIHJldHVybjtcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMucm93Q291bnQpIHJldHVybjtcbiAgICB0aGlzLm9uU3RhcnRSb3dBZGRpbmdSZW1vdmluZygpO1xuICAgIHRoaXMucmVtb3ZlUm93Q29yZShpbmRleCk7XG4gICAgdGhpcy5vbkVuZFJvd1JlbW92aW5nKGluZGV4KTtcbiAgfVxuICBwcml2YXRlIHJlbW92ZVJvd0NvcmUoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnN1cnZleSkge1xuICAgICAgdmFyIHJvdyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NcbiAgICAgICAgPyB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzW2luZGV4XVxuICAgICAgICA6IG51bGw7XG4gICAgICB0aGlzLnN1cnZleS5tYXRyaXhSb3dSZW1vdmVkKHRoaXMsIGluZGV4LCByb3cpO1xuICAgIH1cbiAgICBpZiAodGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cyAmJiBpbmRleCA8IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIHRoaXMucm93Q291bnRWYWx1ZS0tO1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB2YXIgdmFsID0gW107XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJiBpbmRleCA8IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIHZhbCA9IHRoaXMuY3JlYXRlVmFsdWVDb3B5KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWwgPSB0aGlzLmNyZWF0ZU5ld1ZhbHVlKCk7XG4gICAgICB9XG4gICAgICB2YWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHZhbCA9IHRoaXMuZGVsZXRlUm93VmFsdWUodmFsLCBudWxsKTtcbiAgICAgIHRoaXMuaXNSb3dDaGFuZ2luZyA9IHRydWU7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgICAgdGhpcy5pc1Jvd0NoYW5naW5nID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMub25Sb3dzQ2hhbmdlZCgpO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgdGV4dCBzaG93aW5nIGluIHRoZSBjb25maXJtYXRpb24gZGVsZXRlIGRpYWxvZyBvbiByZW1vdmluZyBhIHJvdy5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29uZmlybURlbGV0ZVRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJjb25maXJtRGVsZXRlVGV4dFwiLFxuICAgICAgc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcImNvbmZpcm1EZWxldGVcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgY29uZmlybURlbGV0ZVRleHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImNvbmZpcm1EZWxldGVUZXh0XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY0NvbmZpcm1EZWxldGVUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwiY29uZmlybURlbGV0ZVRleHRcIik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGR1cGxpY2F0aW9uIHZhbHVlIGVycm9yIHRleHQuIFNldCBpdCB0byBzaG93IHRoZSB0ZXh0IGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0LlxuICAgKiBAc2VlIGtleU5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXQga2V5RHVwbGljYXRpb25FcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXG4gICAgICBcImtleUR1cGxpY2F0aW9uRXJyb3JcIixcbiAgICAgIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IGtleUR1cGxpY2F0aW9uRXJyb3IodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImtleUR1cGxpY2F0aW9uRXJyb3JcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jS2V5RHVwbGljYXRpb25FcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcImtleUR1cGxpY2F0aW9uRXJyb3JcIik7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBhZGQgcm93IGJ1dHRvbiB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCBhZGRSb3dUZXh0KCkge1xuICAgIHZhciBkZWZhdWx0TG9jTmFtZSA9IHRoaXMuaXNDb2x1bW5MYXlvdXRIb3Jpem9udGFsID8gXCJhZGRSb3dcIiA6IFwiYWRkQ29sdW1uXCI7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJhZGRSb3dUZXh0XCIsXG4gICAgICBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKGRlZmF1bHRMb2NOYW1lKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCBhZGRSb3dUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJhZGRSb3dUZXh0XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY0FkZFJvd1RleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJhZGRSb3dUZXh0XCIpO1xuICB9XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSAnQWRkIFJvdycgYnV0dG9uIGlzIHNob3duIG9uIGJvdHRvbSBpZiBjb2x1bW5MYXlvdXQgaXMgaG9yaXpvbnRhbCBhbmQgb24gdG9wIGlmIGNvbHVtbkxheW91dCBpcyB2ZXJ0aWNhbC4gPGJyLz5cbiAgICogWW91IG1heSBzZXQgaXQgdG8gXCJ0b3BcIiwgXCJib3R0b21cIiBvciBcInRvcEJvdHRvbVwiICh0byBzaG93IG9uIHRvcCBhbmQgYm90dG9tKS5cbiAgICogQHNlZSBjb2x1bW5MYXlvdXRcbiAgICovXG4gIHB1YmxpYyBnZXQgYWRkUm93TG9jYXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiYWRkUm93TG9jYXRpb25cIik7XG4gIH1cbiAgcHVibGljIHNldCBhZGRSb3dMb2NhdGlvbih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImFkZFJvd0xvY2F0aW9uXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBpc0FkZFJvd09uVG9wKCkge1xuICAgIGlmICghdGhpcy5jYW5BZGRSb3cpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5hZGRSb3dMb2NhdGlvbiA9PT0gXCJkZWZhdWx0XCIpXG4gICAgICByZXR1cm4gdGhpcy5jb2x1bW5MYXlvdXQgPT09IFwidmVydGljYWxcIjtcbiAgICByZXR1cm4gdGhpcy5hZGRSb3dMb2NhdGlvbiAhPT0gXCJib3R0b21cIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzQWRkUm93T25Cb3R0b20oKSB7XG4gICAgaWYgKCF0aGlzLmNhbkFkZFJvdykgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmFkZFJvd0xvY2F0aW9uID09PSBcImRlZmF1bHRcIilcbiAgICAgIHJldHVybiB0aGlzLmNvbHVtbkxheW91dCA9PT0gXCJob3Jpem9udGFsXCI7XG4gICAgcmV0dXJuIHRoaXMuYWRkUm93TG9jYXRpb24gIT09IFwidG9wXCI7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiByZW1vdmUgcm93IGJ1dHRvbiB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCByZW1vdmVSb3dUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcbiAgICAgIFwicmVtb3ZlUm93VGV4dFwiLFxuICAgICAgc3VydmV5TG9jYWxpemF0aW9uLmdldFN0cmluZyhcInJlbW92ZVJvd1wiKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCByZW1vdmVSb3dUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJyZW1vdmVSb3dUZXh0XCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY1JlbW92ZVJvd1RleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJyZW1vdmVSb3dUZXh0XCIpO1xuICB9XG4gIHByb3RlY3RlZCBnZXREaXNwbGF5VmFsdWVDb3JlKGtleXNBc1RleHQ6IGJvb2xlYW4sIHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIHZhciB2YWx1ZXMgPSB0aGlzLmNyZWF0ZVZhbHVlQ29weSgpO1xuICAgIGlmICghdmFsdWVzIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlcykpIHJldHVybiB2YWx1ZXM7XG4gICAgdmFyIHJvd3MgPSB0aGlzLnZpc2libGVSb3dzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGggJiYgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHZhbCA9IHZhbHVlc1tpXTtcbiAgICAgIGlmICghdmFsKSBjb250aW51ZTtcbiAgICAgIHZhbHVlc1tpXSA9IHRoaXMuZ2V0Um93RGlzcGxheVZhbHVlKHJvd3NbaV0sIHZhbCk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cbiAgcHVibGljIGFkZENvbmRpdGlvbk5hbWVzKG5hbWVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG5hbWVzLnB1c2godGhpcy5uYW1lICsgXCJbMF0uXCIgKyB0aGlzLmNvbHVtbnNbaV0ubmFtZSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBhZGRDb25kaXRpb25PYmplY3RzQnlDb250ZXh0KFxuICAgIG9iamVjdHM6IEFycmF5PElDb25kaXRpb25PYmplY3Q+LFxuICAgIGNvbnRleHQ6IGFueVxuICApIHtcbiAgICB2YXIgaGFzQ29udGV4dCA9ICEhY29udGV4dCA/IHRoaXMuY29sdW1ucy5pbmRleE9mKGNvbnRleHQpID4gLTEgOiBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNvbHVtbiA9IHRoaXMuY29sdW1uc1tpXTtcbiAgICAgIG9iamVjdHMucHVzaCh7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSArIFwiWzBdLlwiICsgY29sdW1uLm5hbWUsXG4gICAgICAgIHRleHQ6IHRoaXMucHJvY2Vzc2VkVGl0bGUgKyBcIlswXS5cIiArIGNvbHVtbi5mdWxsVGl0bGUsXG4gICAgICAgIHF1ZXN0aW9uOiB0aGlzXG4gICAgICB9KTtcbiAgICAgIGlmIChoYXNDb250ZXh0ICYmIGNvbHVtbiAhPSBjb250ZXh0KSB7XG4gICAgICAgIG9iamVjdHMucHVzaCh7XG4gICAgICAgICAgbmFtZTogXCJyb3cuXCIgKyBjb2x1bW4ubmFtZSxcbiAgICAgICAgICB0ZXh0OiBcInJvdy5cIiArIGNvbHVtbi5mdWxsVGl0bGUsXG4gICAgICAgICAgcXVlc3Rpb246IHRoaXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBzdXBwb3J0R29OZXh0UGFnZUF1dG9tYXRpYygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGdldCBoYXNSb3dUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgb25DaGVja0ZvckVycm9ycyhlcnJvcnM6IEFycmF5PFN1cnZleUVycm9yPikge1xuICAgIHN1cGVyLm9uQ2hlY2tGb3JFcnJvcnMoZXJyb3JzKTtcbiAgICBpZiAodGhpcy5oYXNFcnJvckluUm93cygpKSB7XG4gICAgICBlcnJvcnMucHVzaChuZXcgTWluUm93Q291bnRFcnJvcih0aGlzLm1pblJvd0NvdW50LCB0aGlzKSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBoYXNFcnJvcnMoZmlyZUNhbGxiYWNrOiBib29sZWFuID0gdHJ1ZSwgcmVjOiBhbnkgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgdmFyIHByZXZWYWx1ZSA9IHN1cGVyLmhhc0Vycm9ycyhmaXJlQ2FsbGJhY2spO1xuICAgIHZhciBpc0R1cGxpY2F0ZWQgPSB0aGlzLmlzVmFsdWVEdXBsaWNhdGVkKCk7XG4gICAgcmV0dXJuIGlzRHVwbGljYXRlZCB8fCBwcmV2VmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBoYXNFcnJvckluUm93cygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5taW5Sb3dDb3VudCA8PSAwIHx8ICF0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHJlcyA9IGZhbHNlO1xuICAgIHZhciBzZXRSb3dDb3VudCA9IDA7XG4gICAgZm9yIChcbiAgICAgIHZhciByb3dJbmRleCA9IDA7XG4gICAgICByb3dJbmRleCA8IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MubGVuZ3RoO1xuICAgICAgcm93SW5kZXgrK1xuICAgICkge1xuICAgICAgdmFyIHJvdyA9IHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3Nbcm93SW5kZXhdO1xuICAgICAgaWYgKCFyb3cuaXNFbXB0eSkgc2V0Um93Q291bnQrKztcbiAgICB9XG4gICAgcmV0dXJuIHNldFJvd0NvdW50IDwgdGhpcy5taW5Sb3dDb3VudDtcbiAgfVxuICBwcml2YXRlIGlzVmFsdWVEdXBsaWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5rZXlOYW1lIHx8ICF0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uQnlOYW1lKHRoaXMua2V5TmFtZSk7XG4gICAgaWYgKCFjb2x1bW4pIHJldHVybiBmYWxzZTtcbiAgICB2YXIga2V5VmFsdWVzID0gPEFycmF5PGFueT4+W107XG4gICAgdmFyIHJlcyA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzID1cbiAgICAgICAgdGhpcy5pc1ZhbHVlRHVwbGljYXRlZEluUm93KFxuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3NbaV0sXG4gICAgICAgICAgY29sdW1uLFxuICAgICAgICAgIGtleVZhbHVlc1xuICAgICAgICApIHx8IHJlcztcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwcml2YXRlIGlzVmFsdWVEdXBsaWNhdGVkSW5Sb3coXG4gICAgcm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSxcbiAgICBjb2x1bW46IE1hdHJpeERyb3Bkb3duQ29sdW1uLFxuICAgIGtleVZhbHVlczogQXJyYXk8YW55PlxuICApOiBib29sZWFuIHtcbiAgICB2YXIgcXVlc3Rpb24gPSByb3cuZ2V0UXVlc3Rpb25CeUNvbHVtbihjb2x1bW4pO1xuICAgIGlmICghcXVlc3Rpb24gfHwgcXVlc3Rpb24uaXNFbXB0eSgpKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHZhbHVlID0gcXVlc3Rpb24udmFsdWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlWYWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh2YWx1ZSA9PSBrZXlWYWx1ZXNbaV0pIHtcbiAgICAgICAgcXVlc3Rpb24uYWRkRXJyb3IoXG4gICAgICAgICAgbmV3IEtleUR1cGxpY2F0aW9uRXJyb3IodGhpcy5rZXlEdXBsaWNhdGlvbkVycm9yLCB0aGlzKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAga2V5VmFsdWVzLnB1c2godmFsdWUpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVSb3dzKCk6IEFycmF5PE1hdHJpeER5bmFtaWNSb3dNb2RlbD4ge1xuICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXk8TWF0cml4RHluYW1pY1Jvd01vZGVsPigpO1xuICAgIGlmICh0aGlzLnJvd0NvdW50ID09PSAwKSByZXR1cm4gcmVzdWx0O1xuICAgIHZhciB2YWwgPSB0aGlzLmNyZWF0ZU5ld1ZhbHVlKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnJvd0NvdW50OyBpKyspIHtcbiAgICAgIHJlc3VsdC5wdXNoKHRoaXMuY3JlYXRlTWF0cml4Um93KHRoaXMuZ2V0Um93VmFsdWVCeUluZGV4KHZhbCwgaSkpKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmdldERlZmF1bHRSb3dWYWx1ZShmYWxzZSkpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVNYXRyaXhSb3codmFsdWU6IGFueSk6IE1hdHJpeER5bmFtaWNSb3dNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBNYXRyaXhEeW5hbWljUm93TW9kZWwodGhpcy5yb3dDb3VudGVyKyssIHRoaXMsIHZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgb25CZWZvcmVWYWx1ZUNoYW5nZWQodmFsOiBhbnkpIHtcbiAgICB2YXIgbmV3Um93Q291bnQgPSB2YWwgJiYgQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsLmxlbmd0aCA6IDA7XG4gICAgaWYgKG5ld1Jvd0NvdW50IDw9IHRoaXMucm93Q291bnQpIHJldHVybjtcbiAgICB0aGlzLnJvd0NvdW50VmFsdWUgPSBuZXdSb3dDb3VudDtcbiAgICBpZiAodGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cykge1xuICAgICAgdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cyA9IG51bGw7XG4gICAgICB0aGlzLmdlbmVyYXRlZFZpc2libGVSb3dzID0gdGhpcy52aXNpYmxlUm93cztcbiAgICAgIHRoaXMub25Sb3dzQ2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlTmV3VmFsdWUoKTogYW55IHtcbiAgICB2YXIgcmVzdWx0ID0gdGhpcy5jcmVhdGVWYWx1ZUNvcHkoKTtcbiAgICBpZiAoIXJlc3VsdCB8fCAhQXJyYXkuaXNBcnJheShyZXN1bHQpKSByZXN1bHQgPSBbXTtcbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IHRoaXMucm93Q291bnQpIHJlc3VsdC5zcGxpY2UodGhpcy5yb3dDb3VudCk7XG4gICAgdmFyIHJvd1ZhbHVlID0gdGhpcy5nZXREZWZhdWx0Um93VmFsdWUoZmFsc2UpO1xuICAgIHJvd1ZhbHVlID0gcm93VmFsdWUgfHwge307XG4gICAgZm9yICh2YXIgaSA9IHJlc3VsdC5sZW5ndGg7IGkgPCB0aGlzLnJvd0NvdW50OyBpKyspIHtcbiAgICAgIHJlc3VsdC5wdXNoKEhlbHBlcnMuZ2V0VW5iaW5kVmFsdWUocm93VmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBwcm90ZWN0ZWQgZGVsZXRlUm93VmFsdWUoXG4gICAgbmV3VmFsdWU6IGFueSxcbiAgICByb3c6IE1hdHJpeERyb3Bkb3duUm93TW9kZWxCYXNlXG4gICk6IGFueSB7XG4gICAgdmFyIGlzRW1wdHkgPSB0cnVlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3VmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmlzT2JqZWN0KG5ld1ZhbHVlW2ldKSAmJiBPYmplY3Qua2V5cyhuZXdWYWx1ZVtpXSkubGVuZ3RoID4gMCkge1xuICAgICAgICBpc0VtcHR5ID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNFbXB0eSA/IG51bGwgOiBuZXdWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um93VmFsdWVCeUluZGV4KHF1ZXN0aW9uVmFsdWU6IGFueSwgaW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuIGluZGV4ID49IDAgJiYgaW5kZXggPCBxdWVzdGlvblZhbHVlLmxlbmd0aFxuICAgICAgPyBxdWVzdGlvblZhbHVlW2luZGV4XVxuICAgICAgOiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBnZXRSb3dWYWx1ZUNvcmUoXG4gICAgcm93OiBNYXRyaXhEcm9wZG93blJvd01vZGVsQmFzZSxcbiAgICBxdWVzdGlvblZhbHVlOiBhbnksXG4gICAgY3JlYXRlOiBib29sZWFuID0gZmFsc2VcbiAgKTogYW55IHtcbiAgICBpZiAoIXRoaXMuZ2VuZXJhdGVkVmlzaWJsZVJvd3MpIHJldHVybiB7fTtcbiAgICB2YXIgcmVzID0gdGhpcy5nZXRSb3dWYWx1ZUJ5SW5kZXgoXG4gICAgICBxdWVzdGlvblZhbHVlLFxuICAgICAgdGhpcy5nZW5lcmF0ZWRWaXNpYmxlUm93cy5pbmRleE9mKHJvdylcbiAgICApO1xuICAgIGlmICghcmVzICYmIGNyZWF0ZSkgcmVzID0ge307XG4gICAgcmV0dXJuIHJlcztcbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcIm1hdHJpeGR5bmFtaWNcIixcbiAgW1xuICAgIHsgbmFtZTogXCJyb3dzVmlzaWJsZUlmOmNvbmRpdGlvblwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogXCJyb3dDb3VudDpudW1iZXJcIiwgZGVmYXVsdDogMiwgbWluVmFsdWU6IDAgfSxcbiAgICB7IG5hbWU6IFwibWluUm93Q291bnQ6bnVtYmVyXCIsIGRlZmF1bHQ6IDAsIG1pblZhbHVlOiAwIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJtYXhSb3dDb3VudDpudW1iZXJcIixcbiAgICAgIGRlZmF1bHQ6IHNldHRpbmdzLm1hdHJpeE1heGltdW1Sb3dDb3VudFxuICAgIH0sXG4gICAgeyBuYW1lOiBcImtleU5hbWVcIiB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwia2V5RHVwbGljYXRpb25FcnJvclwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0tleUR1cGxpY2F0aW9uRXJyb3JcIlxuICAgIH0sXG4gICAgXCJkZWZhdWx0Um93VmFsdWU6cm93dmFsdWVcIixcbiAgICBcImRlZmF1bHRWYWx1ZUZyb21MYXN0Um93OmJvb2xlYW5cIixcbiAgICB7IG5hbWU6IFwiY29uZmlybURlbGV0ZTpib29sZWFuXCIgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImNvbmZpcm1EZWxldGVUZXh0XCIsXG4gICAgICBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jQ29uZmlybURlbGV0ZVRleHRcIlxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJhZGRSb3dMb2NhdGlvblwiLFxuICAgICAgZGVmYXVsdDogXCJkZWZhdWx0XCIsXG4gICAgICBjaG9pY2VzOiBbXCJkZWZhdWx0XCIsIFwidG9wXCIsIFwiYm90dG9tXCIsIFwidG9wQm90dG9tXCJdXG4gICAgfSxcbiAgICB7IG5hbWU6IFwiYWRkUm93VGV4dFwiLCBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jQWRkUm93VGV4dFwiIH0sXG4gICAgeyBuYW1lOiBcInJlbW92ZVJvd1RleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1JlbW92ZVJvd1RleHRcIiB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWwoXCJcIik7XG4gIH0sXG4gIFwibWF0cml4ZHJvcGRvd25iYXNlXCJcbik7XG5cblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwibWF0cml4ZHluYW1pY1wiLCBuYW1lID0+IHtcbiAgdmFyIHEgPSBuZXcgUXVlc3Rpb25NYXRyaXhEeW5hbWljTW9kZWwobmFtZSk7XG4gIHEuY2hvaWNlcyA9IFsxLCAyLCAzLCA0LCA1XTtcbiAgUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsQmFzZS5hZGREZWZhdWx0Q29sdW1ucyhxKTtcbiAgcmV0dXJuIHE7XG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9xdWVzdGlvbl9tYXRyaXhkeW5hbWljLnRzIiwiaW1wb3J0IHtcbiAgQmFzZSxcbiAgSVN1cnZleURhdGEsXG4gIElTdXJ2ZXlJbXBsLFxuICBJU3VydmV5LFxuICBJUGFuZWwsXG4gIElFbGVtZW50LFxuICBJVGV4dFByb2Nlc3NvclxufSBmcm9tIFwiLi9iYXNlXCI7XG5pbXBvcnQgeyBTdXJ2ZXlWYWxpZGF0b3IsIElWYWxpZGF0b3JPd25lciB9IGZyb20gXCIuL3ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgUXVlc3Rpb24sIElDb25kaXRpb25PYmplY3QgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25UZXh0TW9kZWwgfSBmcm9tIFwiLi9xdWVzdGlvbl90ZXh0XCI7XG5pbXBvcnQgeyBKc29uT2JqZWN0LCBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBTdXJ2ZXlFcnJvciB9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCB7IEFuc3dlclJlcXVpcmVkRXJyb3IgfSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgSUxvY2FsaXphYmxlT3duZXIsIExvY2FsaXphYmxlU3RyaW5nIH0gZnJvbSBcIi4vbG9jYWxpemFibGVzdHJpbmdcIjtcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU11bHRpcGxlVGV4dERhdGEgZXh0ZW5kcyBJTG9jYWxpemFibGVPd25lciwgSVBhbmVsIHtcbiAgZ2V0U3VydmV5KCk6IElTdXJ2ZXk7XG4gIGdldFRleHRQcm9jZXNzb3IoKTogSVRleHRQcm9jZXNzb3I7XG4gIGdldEFsbFZhbHVlcygpOiBhbnk7XG4gIGdldE11bHRpcGxlVGV4dFZhbHVlKG5hbWU6IHN0cmluZyk6IGFueTtcbiAgc2V0TXVsdGlwbGVUZXh0VmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55O1xuICBnZXRJdGVtRGVmYXVsdFZhbHVlKG5hbWU6IHN0cmluZyk6IGFueTtcbiAgZ2V0SXNSZXF1aXJlZFRleHQoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTXVsdGlwbGVUZXh0SXRlbU1vZGVsIGV4dGVuZHMgQmFzZVxuICBpbXBsZW1lbnRzIElWYWxpZGF0b3JPd25lciwgSVN1cnZleURhdGEsIElTdXJ2ZXlJbXBsIHtcbiAgcHJpdmF0ZSBlZGl0b3JWYWx1ZTogUXVlc3Rpb25UZXh0TW9kZWw7XG4gIHByaXZhdGUgZGF0YTogSU11bHRpcGxlVGV4dERhdGE7XG5cbiAgdmFsdWVDaGFuZ2VkQ2FsbGJhY2s6IChuZXdWYWx1ZTogYW55KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IGFueSA9IG51bGwsIHRpdGxlOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmVkaXRvclZhbHVlID0gdGhpcy5jcmVhdGVFZGl0b3IobmFtZSk7XG4gICAgdGhpcy5lZGl0b3IucXVlc3Rpb25UaXRsZVRlbXBsYXRlQ2FsbGJhY2sgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH07XG4gICAgdGhpcy5lZGl0b3IudGl0bGVMb2NhdGlvbiA9IFwibGVmdFwiO1xuICAgIGlmICh0aXRsZSkge1xuICAgICAgdGhpcy50aXRsZSA9IHRpdGxlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIm11bHRpcGxldGV4dGl0ZW1cIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLmlkO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaXRlbSBuYW1lLlxuICAgKi9cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLm5hbWU7XG4gIH1cbiAgcHVibGljIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5lZGl0b3IubmFtZSA9IHZhbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGVkaXRvcigpOiBRdWVzdGlvblRleHRNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yVmFsdWU7XG4gIH1cbiAgcHJvdGVjdGVkIGNyZWF0ZUVkaXRvcihuYW1lOiBzdHJpbmcpOiBRdWVzdGlvblRleHRNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBRdWVzdGlvblRleHRNb2RlbChuYW1lKTtcbiAgfVxuICBwdWJsaWMgYWRkVXNlZExvY2FsZXMobG9jYWxlczogQXJyYXk8c3RyaW5nPikge1xuICAgIHN1cGVyLmFkZFVzZWRMb2NhbGVzKGxvY2FsZXMpO1xuICAgIHRoaXMuZWRpdG9yLmFkZFVzZWRMb2NhbGVzKGxvY2FsZXMpO1xuICB9XG4gIHB1YmxpYyBsb2NTdHJzQ2hhbmdlZCgpIHtcbiAgICBzdXBlci5sb2NTdHJzQ2hhbmdlZCgpO1xuICAgIHRoaXMuZWRpdG9yLmxvY1N0cnNDaGFuZ2VkKCk7XG4gIH1cbiAgc2V0RGF0YShkYXRhOiBJTXVsdGlwbGVUZXh0RGF0YSkge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgaWYgKCEhZGF0YSkge1xuICAgICAgdGhpcy5lZGl0b3IuZGVmYXVsdFZhbHVlID0gZGF0YS5nZXRJdGVtRGVmYXVsdFZhbHVlKHRoaXMubmFtZSk7XG4gICAgICB0aGlzLmVkaXRvci5zZXRTdXJ2ZXlJbXBsKHRoaXMpO1xuICAgICAgdGhpcy5lZGl0b3IucGFyZW50ID0gZGF0YTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUsIHRvIG1ha2UgdGhlIGl0ZW0gYSByZXF1aXJlZC4gSWYgYSB1c2VyIGRvZXNuJ3QgZmlsbCB0aGUgaXRlbSB0aGVuIGEgdmFsaWRhdGlvbiBlcnJvciB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IuaXNSZXF1aXJlZDtcbiAgfVxuICBwdWJsaWMgc2V0IGlzUmVxdWlyZWQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5lZGl0b3IuaXNSZXF1aXJlZCA9IHZhbDtcbiAgfVxuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IGlucHV0IHR5cGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlucHV0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVkaXRvci5pbnB1dFR5cGU7XG4gIH1cbiAgcHVibGljIHNldCBpbnB1dFR5cGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVkaXRvci5pbnB1dFR5cGUgPSB2YWw7XG4gIH1cbiAgLyoqXG4gICAqIEl0ZW0gdGl0bGUuIElmIGl0IGlzIGVtcHR5LCB0aGUgaXRlbSBuYW1lIGlzIHJlbmRlcmVkIGFzIHRpdGxlLiBUaGlzIHByb3BlcnR5IHN1cHBvcnRzIG1hcmtkb3duLlxuICAgKiBAc2VlIG5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IudGl0bGU7XG4gIH1cbiAgcHVibGljIHNldCB0aXRsZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuZWRpdG9yLnRpdGxlID0gdmFsO1xuICB9XG4gIGdldCBsb2NUaXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IubG9jVGl0bGU7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHRleHQgb3IgaHRtbCBmb3IgcmVuZGVyaW5nIHRoZSB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZnVsbFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLmZ1bGxUaXRsZTtcbiAgfVxuICAvKipcbiAgICogVGhlIG1heGltaW0gdGV4dCBsZW5ndGguIElmIGl0IGlzIC0xLCBkZWZhdWwgdmFsdWUsIHRoZW4gdGhlIHN1cnZleSBtYXhUZXh0TGVuZ3RoIHByb3BlcnR5IHdpbGwgYmUgdXNlZC5cbiAgICogSWYgaXQgaXMgMCwgdGhlbiB0aGUgdmFsdWUgaXMgdW5saW1pdGVkXG4gICAqIEBzZWUgU3VydmV5TW9kZWwubWF4VGV4dExlbmd0aFxuICAgKi9cbiAgcHVibGljIGdldCBtYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IubWF4TGVuZ3RoO1xuICB9XG4gIHB1YmxpYyBzZXQgbWF4TGVuZ3RoKHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5lZGl0b3IubWF4TGVuZ3RoID0gdmFsO1xuICB9XG4gIHB1YmxpYyBnZXRNYXhMZW5ndGgoKTogYW55IHtcbiAgICB2YXIgc3VydmV5ID0gdGhpcy5nZXRTdXJ2ZXkoKTtcbiAgICByZXR1cm4gSGVscGVycy5nZXRNYXhMZW5ndGgoXG4gICAgICB0aGlzLm1heExlbmd0aCxcbiAgICAgIHN1cnZleSA/IHN1cnZleS5tYXhUZXh0TGVuZ3RoIDogLTFcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcGxhY2UgaG9sZGVyLlxuICAgKi9cbiAgcHVibGljIGdldCBwbGFjZUhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVkaXRvci5wbGFjZUhvbGRlcjtcbiAgfVxuICBwdWJsaWMgc2V0IHBsYWNlSG9sZGVyKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5lZGl0b3IucGxhY2VIb2xkZXIgPSB2YWw7XG4gIH1cbiAgZ2V0IGxvY1BsYWNlSG9sZGVyKCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IubG9jUGxhY2VIb2xkZXI7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdGV4dCB0aGF0IHdpbGwgYmUgc2hvd24gb24gcmVxdWlyZWQgZXJyb3IuIFVzZSB0aGlzIHByb3BlcnR5LCBpZiB5b3UgZG8gbm90IHdhbnQgdG8gc2hvdyB0aGUgZGVmYXVsdCB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCByZXF1aXJlZEVycm9yVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVkaXRvci5yZXF1aXJlZEVycm9yVGV4dDtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkRXJyb3JUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5lZGl0b3IucmVxdWlyZWRFcnJvclRleHQgPSB2YWw7XG4gIH1cbiAgZ2V0IGxvY1JlcXVpcmVkRXJyb3JUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IubG9jUmVxdWlyZWRFcnJvclRleHQ7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHF1ZXN0aW9uIHZhbGlkYXRvcnMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbGlkYXRvcnMoKTogQXJyYXk8U3VydmV5VmFsaWRhdG9yPiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLnZhbGlkYXRvcnM7XG4gIH1cbiAgcHVibGljIHNldCB2YWxpZGF0b3JzKHZhbDogQXJyYXk8U3VydmV5VmFsaWRhdG9yPikge1xuICAgIHRoaXMuZWRpdG9yLnZhbGlkYXRvcnMgPSB2YWw7XG4gIH1cbiAgcHVibGljIGdldFZhbGlkYXRvcnMoKTogQXJyYXk8U3VydmV5VmFsaWRhdG9yPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdG9ycztcbiAgfVxuICAvKipcbiAgICogVGhlIGl0ZW0gdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuZ2V0TXVsdGlwbGVUZXh0VmFsdWUodGhpcy5uYW1lKSA6IG51bGw7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuZGF0YSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmRhdGEuc2V0TXVsdGlwbGVUZXh0VmFsdWUodGhpcy5uYW1lLCB2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBpc0VtcHR5KCkge1xuICAgIHJldHVybiBIZWxwZXJzLmlzVmFsdWVFbXB0eSh0aGlzLnZhbHVlKTtcbiAgfVxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQobmV3VmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlZENhbGxiYWNrKSB0aGlzLnZhbHVlQ2hhbmdlZENhbGxiYWNrKG5ld1ZhbHVlKTtcbiAgfVxuICAvL0lTdXJ2ZXlJbXBsXG4gIGdlU3VydmV5RGF0YSgpOiBJU3VydmV5RGF0YSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZ2V0U3VydmV5KCk6IElTdXJ2ZXkge1xuICAgIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuZ2V0U3VydmV5KCkgOiBudWxsO1xuICB9XG4gIGdldFRleHRQcm9jZXNzb3IoKTogSVRleHRQcm9jZXNzb3Ige1xuICAgIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuZ2V0VGV4dFByb2Nlc3NvcigpIDogbnVsbDtcbiAgfVxuICAvL0lTdXJ2ZXlEYXRhXG4gIGdldFZhbHVlKG5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKCF0aGlzLmRhdGEpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmRhdGEuZ2V0TXVsdGlwbGVUZXh0VmFsdWUobmFtZSk7XG4gIH1cbiAgc2V0VmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5kYXRhLnNldE11bHRpcGxlVGV4dFZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgZ2V0VmFyaWFibGUobmFtZTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHNldFZhcmlhYmxlKG5hbWU6IHN0cmluZywgbmV3VmFsdWU6IGFueSkge31cbiAgZ2V0Q29tbWVudChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHNldENvbW1lbnQobmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nKSB7fVxuICBnZXRBbGxWYWx1ZXMoKTogYW55IHtcbiAgICBpZiAodGhpcy5kYXRhKSByZXR1cm4gdGhpcy5kYXRhLmdldEFsbFZhbHVlcygpO1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG4gIGdldEZpbHRlcmVkVmFsdWVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsVmFsdWVzKCk7XG4gIH1cbiAgZ2V0RmlsdGVyZWRQcm9wZXJ0aWVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHsgc3VydmV5OiB0aGlzLmdldFN1cnZleSgpIH07XG4gIH1cbiAgLy9JVmFsaWRhdG9yT3duZXJcbiAgZ2V0VmFsaWRhdG9yVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZTtcbiAgfVxuICBnZXQgdmFsaWRhdGVkVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuICBzZXQgdmFsaWRhdGVkVmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICB9XG4gIGdldERhdGFGaWx0ZXJlZFZhbHVlcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldEZpbHRlcmVkVmFsdWVzKCk7XG4gIH1cbiAgZ2V0RGF0YUZpbHRlcmVkUHJvcGVydGllcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldEZpbHRlcmVkUHJvcGVydGllcygpO1xuICB9XG59XG5cbi8qKlxuICogQSBNb2RlbCBmb3IgYSBtdWx0aXBsZSB0ZXh0IHF1ZXN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25NdWx0aXBsZVRleHRNb2RlbCBleHRlbmRzIFF1ZXN0aW9uXG4gIGltcGxlbWVudHMgSU11bHRpcGxlVGV4dERhdGEsIElQYW5lbCB7XG4gIGNvbENvdW50Q2hhbmdlZENhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNyZWF0ZU5ld0FycmF5KFwiaXRlbXNcIiwgZnVuY3Rpb24oaXRlbTogYW55KSB7XG4gICAgICBpdGVtLnNldERhdGEoc2VsZik7XG4gICAgfSk7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcIml0ZW1zXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5maXJlQ2FsbGJhY2soc2VsZi5jb2xDb3VudENoYW5nZWRDYWxsYmFjayk7XG4gICAgfSk7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcImNvbENvdW50XCIsIGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5maXJlQ2FsbGJhY2soc2VsZi5jb2xDb3VudENoYW5nZWRDYWxsYmFjayk7XG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJtdWx0aXBsZXRleHRcIjtcbiAgfVxuICBwdWJsaWMgc2V0U3VydmV5SW1wbCh2YWx1ZTogSVN1cnZleUltcGwpIHtcbiAgICBzdXBlci5zZXRTdXJ2ZXlJbXBsKHZhbHVlKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuaXRlbXNbaV0uc2V0RGF0YSh0aGlzKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBpc0FsbG93VGl0bGVMZWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBvblN1cnZleUxvYWQoKSB7XG4gICAgdGhpcy5lZGl0b3JzT25TdXJ2ZXlMb2FkKCk7XG4gICAgc3VwZXIub25TdXJ2ZXlMb2FkKCk7XG4gICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5jb2xDb3VudENoYW5nZWRDYWxsYmFjayk7XG4gIH1cbiAgc2V0UXVlc3Rpb25WYWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgc3VwZXIuc2V0UXVlc3Rpb25WYWx1ZShuZXdWYWx1ZSwgZmFsc2UpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGl0ZW0gPSB0aGlzLml0ZW1zW2ldO1xuICAgICAgaWYgKGl0ZW0uZWRpdG9yKSBpdGVtLmVkaXRvci51cGRhdGVWYWx1ZUZyb21TdXJ2ZXkoaXRlbS52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlSXNBbnN3ZXJlZCgpO1xuICB9XG4gIG9uU3VydmV5VmFsdWVDaGFuZ2VkKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci5vblN1cnZleVZhbHVlQ2hhbmdlZChuZXdWYWx1ZSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IHRoaXMuaXRlbXNbaV07XG4gICAgICBpZiAoaXRlbS5lZGl0b3IpIGl0ZW0uZWRpdG9yLm9uU3VydmV5VmFsdWVDaGFuZ2VkKGl0ZW0udmFsdWUpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGVkaXRvcnNPblN1cnZleUxvYWQoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IHRoaXMuaXRlbXNbaV07XG4gICAgICBpZiAoaXRlbS5lZGl0b3IpIHtcbiAgICAgICAgKDxhbnk+aXRlbSkuZWRpdG9yLm9uU3VydmV5TG9hZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgaW5wdXQgaXRlbXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGl0ZW1zKCk6IEFycmF5PE11bHRpcGxlVGV4dEl0ZW1Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJpdGVtc1wiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGl0ZW1zKHZhbDogQXJyYXk8TXVsdGlwbGVUZXh0SXRlbU1vZGVsPikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcIml0ZW1zXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyB0ZXh0IGl0ZW0uXG4gICAqIEBwYXJhbSBuYW1lIGEgaXRlbSBuYW1lXG4gICAqIEBwYXJhbSB0aXRsZSBhIGl0ZW0gdGl0bGUgKG9wdGlvbmFsKVxuICAgKi9cbiAgcHVibGljIGFkZEl0ZW0obmFtZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nID0gbnVsbCk6IE11bHRpcGxlVGV4dEl0ZW1Nb2RlbCB7XG4gICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVRleHRJdGVtKG5hbWUsIHRpdGxlKTtcbiAgICB0aGlzLml0ZW1zLnB1c2goaXRlbSk7XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cbiAgcHVibGljIGdldEl0ZW1CeU5hbWUobmFtZTogc3RyaW5nKTogTXVsdGlwbGVUZXh0SXRlbU1vZGVsIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLml0ZW1zW2ldLm5hbWUgPT0gbmFtZSkgcmV0dXJuIHRoaXMuaXRlbXNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHB1YmxpYyBhZGRDb25kaXRpb25OYW1lcyhuYW1lczogQXJyYXk8c3RyaW5nPikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgbmFtZXMucHVzaCh0aGlzLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbXNbaV0ubmFtZSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBhZGRDb25kaXRpb25PYmplY3RzQnlDb250ZXh0KFxuICAgIG9iamVjdHM6IEFycmF5PElDb25kaXRpb25PYmplY3Q+LFxuICAgIGNvbnRleHQ6IGFueVxuICApIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gdGhpcy5pdGVtc1tpXTtcbiAgICAgIG9iamVjdHMucHVzaCh7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSArIFwiLlwiICsgaXRlbS5uYW1lLFxuICAgICAgICB0ZXh0OiB0aGlzLnByb2Nlc3NlZFRpdGxlICsgXCIuXCIgKyBpdGVtLmZ1bGxUaXRsZSxcbiAgICAgICAgcXVlc3Rpb246IHRoaXNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0Q29uZGl0aW9uSnNvbihvcGVyYXRvcjogc3RyaW5nID0gbnVsbCwgcGF0aDogc3RyaW5nID0gbnVsbCk6IGFueSB7XG4gICAgaWYgKCFwYXRoKSByZXR1cm4gc3VwZXIuZ2V0Q29uZGl0aW9uSnNvbigpO1xuICAgIHZhciBpdGVtID0gdGhpcy5nZXRJdGVtQnlOYW1lKHBhdGgpO1xuICAgIGlmICghaXRlbSkgcmV0dXJuIG51bGw7XG4gICAgdmFyIGpzb24gPSBuZXcgSnNvbk9iamVjdCgpLnRvSnNvbk9iamVjdChpdGVtKTtcbiAgICBqc29uW1widHlwZVwiXSA9IFwidGV4dFwiO1xuICAgIHJldHVybiBqc29uO1xuICB9XG4gIHB1YmxpYyBsb2NTdHJzQ2hhbmdlZCgpIHtcbiAgICBzdXBlci5sb2NTdHJzQ2hhbmdlZCgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5pdGVtc1tpXS5sb2NTdHJzQ2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuICBzdXBwb3J0R29OZXh0UGFnZUF1dG9tYXRpYygpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLml0ZW1zW2ldLmlzRW1wdHkoKSkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb2x1bW5zLiBJdGVtcyBhcmUgcmVuZHJlZCBpbiBvbmUgbGluZSBpZiB0aGUgdmFsdWUgaXMgMC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29sQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiY29sQ291bnRcIik7XG4gIH1cbiAgcHVibGljIHNldCBjb2xDb3VudCh2YWw6IG51bWJlcikge1xuICAgIGlmICh2YWwgPCAxIHx8IHZhbCA+IDUpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJjb2xDb3VudFwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCB0ZXh0IGlucHV0IHNpemUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGl0ZW1TaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIml0ZW1TaXplXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgaXRlbVNpemUodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJpdGVtU2l6ZVwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHJlbmRlcmVkIHJvd3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0Um93cygpOiBBcnJheTxhbnk+IHtcbiAgICB2YXIgY29sQ291bnQgPSB0aGlzLmNvbENvdW50O1xuICAgIHZhciBpdGVtcyA9IHRoaXMuaXRlbXM7XG4gICAgdmFyIHJvd3MgPSBbXTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpbmRleCA9PSAwKSB7XG4gICAgICAgIHJvd3MucHVzaChbXSk7XG4gICAgICB9XG4gICAgICByb3dzW3Jvd3MubGVuZ3RoIC0gMV0ucHVzaChpdGVtc1tpXSk7XG4gICAgICBpbmRleCsrO1xuICAgICAgaWYgKGluZGV4ID49IGNvbENvdW50KSB7XG4gICAgICAgIGluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJvd3M7XG4gIH1cbiAgcHJpdmF0ZSBpc011bHRpcGxlSXRlbVZhbHVlQ2hhbmdpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2VkKCkge1xuICAgIHN1cGVyLm9uVmFsdWVDaGFuZ2VkKCk7XG4gICAgdGhpcy5vbkl0ZW1WYWx1ZUNoYW5nZWQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgY3JlYXRlVGV4dEl0ZW0obmFtZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKTogTXVsdGlwbGVUZXh0SXRlbU1vZGVsIHtcbiAgICByZXR1cm4gbmV3IE11bHRpcGxlVGV4dEl0ZW1Nb2RlbChuYW1lLCB0aXRsZSk7XG4gIH1cbiAgcHJvdGVjdGVkIG9uSXRlbVZhbHVlQ2hhbmdlZCgpIHtcbiAgICBpZiAodGhpcy5pc011bHRpcGxlSXRlbVZhbHVlQ2hhbmdpbmcpIHJldHVybjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtVmFsdWUgPSBudWxsO1xuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy5pdGVtc1tpXS5uYW1lIGluIHRoaXMudmFsdWUpIHtcbiAgICAgICAgaXRlbVZhbHVlID0gdGhpcy52YWx1ZVt0aGlzLml0ZW1zW2ldLm5hbWVdO1xuICAgICAgfVxuICAgICAgdGhpcy5pdGVtc1tpXS5vblZhbHVlQ2hhbmdlZChpdGVtVmFsdWUpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZ2V0SXNSdW5uaW5nVmFsaWRhdG9ycygpOiBib29sZWFuIHtcbiAgICBpZiAoc3VwZXIuZ2V0SXNSdW5uaW5nVmFsaWRhdG9ycygpKSByZXR1cm4gdHJ1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLml0ZW1zW2ldLmVkaXRvci5pc1J1bm5pbmdWYWxpZGF0b3JzKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBoYXNFcnJvcnMoZmlyZUNhbGxiYWNrOiBib29sZWFuID0gdHJ1ZSwgcmVjOiBhbnkgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgdmFyIHJlcyA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5pdGVtc1tpXS5lZGl0b3Iub25Db21wbGV0ZWRBc3luY1ZhbGlkYXRvcnMgPSAoXG4gICAgICAgIGhhc0Vycm9yczogYm9vbGVhblxuICAgICAgKSA9PiB7XG4gICAgICAgIHRoaXMucmFpc2VPbkNvbXBsZXRlZEFzeW5jVmFsaWRhdG9ycygpO1xuICAgICAgfTtcbiAgICAgIHJlcyA9IHRoaXMuaXRlbXNbaV0uZWRpdG9yLmhhc0Vycm9ycyhmaXJlQ2FsbGJhY2spIHx8IHJlcztcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmhhc0Vycm9ycyhmaXJlQ2FsbGJhY2spIHx8IHJlcztcbiAgfVxuICBwdWJsaWMgZ2V0QWxsRXJyb3JzKCk6IEFycmF5PFN1cnZleUVycm9yPiB7XG4gICAgdmFyIHJlc3VsdCA9IHN1cGVyLmdldEFsbEVycm9ycygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVycm9ycyA9IHRoaXMuaXRlbXNbaV0uZWRpdG9yLmdldEFsbEVycm9ycygpO1xuICAgICAgaWYgKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGVycm9ycyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHVibGljIGNsZWFyRXJyb3JzKCkge1xuICAgIHN1cGVyLmNsZWFyRXJyb3JzKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLml0ZW1zW2ldLmVkaXRvci5jbGVhckVycm9ycygpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29udGFpbnNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgdmFyIHJlcyA9IHN1cGVyLmdldENvbnRhaW5zRXJyb3JzKCk7XG4gICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICB2YXIgaXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpdGVtc1tpXS5lZGl0b3IuY29udGFpbnNFcnJvcnMpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHJvdGVjdGVkIGdldElzQW5zd2VyZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdXBlci5nZXRJc0Fuc3dlcmVkKCkpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlZGl0b3IgPSB0aGlzLml0ZW1zW2ldLmVkaXRvcjtcbiAgICAgIGlmIChlZGl0b3IuaXNWaXNpYmxlICYmICFlZGl0b3IuaXNBbnN3ZXJlZCkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vSU11bHRpcGxlVGV4dERhdGFcbiAgZ2V0TXVsdGlwbGVUZXh0VmFsdWUobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVtuYW1lXTtcbiAgfVxuICBzZXRNdWx0aXBsZVRleHRWYWx1ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmlzTXVsdGlwbGVJdGVtVmFsdWVDaGFuZ2luZyA9IHRydWU7XG4gICAgdmFyIG5ld1ZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICBpZiAoIW5ld1ZhbHVlKSB7XG4gICAgICBuZXdWYWx1ZSA9IHt9O1xuICAgIH1cbiAgICBuZXdWYWx1ZVtuYW1lXSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0TmV3VmFsdWUobmV3VmFsdWUpO1xuICAgIHRoaXMuaXNNdWx0aXBsZUl0ZW1WYWx1ZUNoYW5naW5nID0gZmFsc2U7XG4gIH1cbiAgZ2V0SXRlbURlZmF1bHRWYWx1ZShuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiAhIXRoaXMuZGVmYXVsdFZhbHVlID8gdGhpcy5kZWZhdWx0VmFsdWVbbmFtZV0gOiBudWxsO1xuICB9XG4gIGdldFN1cnZleSgpOiBJU3VydmV5IHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXk7XG4gIH1cbiAgZ2V0VGV4dFByb2Nlc3NvcigpOiBJVGV4dFByb2Nlc3NvciB7XG4gICAgcmV0dXJuIHRoaXMudGV4dFByb2Nlc3NvcjtcbiAgfVxuICBnZXRBbGxWYWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YSA/IHRoaXMuZGF0YS5nZXRBbGxWYWx1ZXMoKSA6IG51bGw7XG4gIH1cbiAgZ2V0SXNSZXF1aXJlZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdXJ2ZXkgPyB0aGlzLnN1cnZleS5yZXF1aXJlZFRleHQgOiBcIlwiO1xuICB9XG4gIC8vSVBhbmVsXG4gIGFkZEVsZW1lbnQoZWxlbWVudDogSUVsZW1lbnQsIGluZGV4OiBudW1iZXIpIHt9XG4gIHJlbW92ZUVsZW1lbnQoZWxlbWVudDogSUVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZ2V0UXVlc3Rpb25UaXRsZUxvY2F0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwibGVmdFwiO1xuICB9XG4gIGdldENoaWxkcmVuTGF5b3V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInJvd1wiO1xuICB9XG4gIGVsZW1lbnRXaWR0aENoYW5nZWQoZWw6IElFbGVtZW50KSB7fVxuICBnZXQgZWxlbWVudHMoKTogQXJyYXk8SUVsZW1lbnQ+IHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgaW5kZXhPZihlbDogSUVsZW1lbnQpOiBudW1iZXIge1xuICAgIHJldHVybiAtMTtcbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcIm11bHRpcGxldGV4dGl0ZW1cIixcbiAgW1xuICAgIFwibmFtZVwiLFxuICAgIFwiaXNSZXF1aXJlZDpib29sZWFuXCIsXG4gICAgeyBuYW1lOiBcInBsYWNlSG9sZGVyXCIsIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NQbGFjZUhvbGRlclwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJpbnB1dFR5cGVcIixcbiAgICAgIGRlZmF1bHQ6IFwidGV4dFwiLFxuICAgICAgY2hvaWNlczogW1xuICAgICAgICBcImNvbG9yXCIsXG4gICAgICAgIFwiZGF0ZVwiLFxuICAgICAgICBcImRhdGV0aW1lXCIsXG4gICAgICAgIFwiZGF0ZXRpbWUtbG9jYWxcIixcbiAgICAgICAgXCJlbWFpbFwiLFxuICAgICAgICBcIm1vbnRoXCIsXG4gICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgIFwicGFzc3dvcmRcIixcbiAgICAgICAgXCJyYW5nZVwiLFxuICAgICAgICBcInRlbFwiLFxuICAgICAgICBcInRleHRcIixcbiAgICAgICAgXCJ0aW1lXCIsXG4gICAgICAgIFwidXJsXCIsXG4gICAgICAgIFwid2Vla1wiXG4gICAgICBdXG4gICAgfSxcbiAgICB7IG5hbWU6IFwidGl0bGVcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1RpdGxlXCIgfSxcbiAgICB7IG5hbWU6IFwibWF4TGVuZ3RoOm51bWJlclwiLCBkZWZhdWx0OiAtMSB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwicmVxdWlyZWRFcnJvclRleHQ6dGV4dFwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1JlcXVpcmVkRXJyb3JUZXh0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwidmFsaWRhdG9yczp2YWxpZGF0b3JzXCIsXG4gICAgICBiYXNlQ2xhc3NOYW1lOiBcInN1cnZleXZhbGlkYXRvclwiLFxuICAgICAgY2xhc3NOYW1lUGFydDogXCJ2YWxpZGF0b3JcIlxuICAgIH1cbiAgXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBNdWx0aXBsZVRleHRJdGVtTW9kZWwoXCJcIik7XG4gIH1cbik7XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwibXVsdGlwbGV0ZXh0XCIsXG4gIFtcbiAgICB7IG5hbWU6IFwiIWl0ZW1zOnRleHRpdGVtc1wiLCBjbGFzc05hbWU6IFwibXVsdGlwbGV0ZXh0aXRlbVwiIH0sXG4gICAgeyBuYW1lOiBcIml0ZW1TaXplOm51bWJlclwiLCBkZWZhdWx0OiAyNSwgbWluVmFsdWU6IDAgfSxcbiAgICB7IG5hbWU6IFwiY29sQ291bnQ6bnVtYmVyXCIsIGRlZmF1bHQ6IDEsIGNob2ljZXM6IFsxLCAyLCAzLCA0LCA1XSB9XG4gIF0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUXVlc3Rpb25NdWx0aXBsZVRleHRNb2RlbChcIlwiKTtcbiAgfSxcbiAgXCJxdWVzdGlvblwiXG4pO1xuXG5RdWVzdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJRdWVzdGlvbihcIm11bHRpcGxldGV4dFwiLCBuYW1lID0+IHtcbiAgdmFyIHEgPSBuZXcgUXVlc3Rpb25NdWx0aXBsZVRleHRNb2RlbChuYW1lKTtcbiAgcS5hZGRJdGVtKFwidGV4dDFcIik7XG4gIHEuYWRkSXRlbShcInRleHQyXCIpO1xuICByZXR1cm4gcTtcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3F1ZXN0aW9uX211bHRpcGxldGV4dC50cyIsImltcG9ydCB7IEhhc2hUYWJsZSwgSGVscGVycyB9IGZyb20gXCIuL2hlbHBlcnNcIjtcbmltcG9ydCB7XG4gIElFbGVtZW50LFxuICBJUXVlc3Rpb24sXG4gIEJhc2UsXG4gIElQYW5lbCxcbiAgU3VydmV5RXJyb3IsXG4gIElTdXJ2ZXlEYXRhLFxuICBJU3VydmV5LFxuICBJU3VydmV5SW1wbCxcbiAgSVRleHRQcm9jZXNzb3Jcbn0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgc3VydmV5TG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vc3VydmV5U3RyaW5nc1wiO1xuaW1wb3J0IHsgSUxvY2FsaXphYmxlT3duZXIsIExvY2FsaXphYmxlU3RyaW5nIH0gZnJvbSBcIi4vbG9jYWxpemFibGVzdHJpbmdcIjtcbmltcG9ydCB7IFRleHRQcmVQcm9jZXNzb3IsIFRleHRQcmVQcm9jZXNzb3JWYWx1ZSB9IGZyb20gXCIuL3RleHRQcmVQcm9jZXNzb3JcIjtcbmltcG9ydCB7IFByb2Nlc3NWYWx1ZSB9IGZyb20gXCIuL2NvbmRpdGlvblByb2Nlc3NWYWx1ZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24sIElDb25kaXRpb25PYmplY3QgfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUGFuZWxNb2RlbCB9IGZyb20gXCIuL3BhbmVsXCI7XG5pbXBvcnQgeyBKc29uT2JqZWN0LCBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBLZXlEdXBsaWNhdGlvbkVycm9yIH0gZnJvbSBcIi4vZXJyb3JcIjtcbmltcG9ydCB7IHNldHRpbmdzIH0gZnJvbSBcIi4vc2V0dGluZ3NcIjtcbmltcG9ydCB7IFBhbmVsIH0gZnJvbSBcIi4va25vY2tvdXQva29wYWdlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVF1ZXN0aW9uUGFuZWxEeW5hbWljRGF0YSB7XG4gIGdldEl0ZW1JbmRleChpdGVtOiBJU3VydmV5RGF0YSk6IG51bWJlcjtcbiAgZ2V0UGFuZWxJdGVtRGF0YShpdGVtOiBJU3VydmV5RGF0YSk6IGFueTtcbiAgc2V0UGFuZWxJdGVtRGF0YShpdGVtOiBJU3VydmV5RGF0YSwgbmFtZTogc3RyaW5nLCB2YWw6IGFueSk6IGFueTtcbiAgZ2V0U2hhcmVkUXVlc3Rpb25Gcm9tQXJyYXkobmFtZTogc3RyaW5nLCBwYW5lbEluZGV4OiBudW1iZXIpOiBRdWVzdGlvbjtcbiAgZ2V0U3VydmV5KCk6IElTdXJ2ZXk7XG4gIGdldFJvb3REYXRhKCk6IElTdXJ2ZXlEYXRhO1xufVxuXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25QYW5lbER5bmFtaWNJdGVtXG4gIGltcGxlbWVudHMgSVN1cnZleURhdGEsIElTdXJ2ZXlJbXBsLCBJVGV4dFByb2Nlc3NvciB7XG4gIHB1YmxpYyBzdGF0aWMgSXRlbVZhcmlhYmxlTmFtZSA9IFwicGFuZWxcIjtcbiAgcHVibGljIHN0YXRpYyBJbmRleFZhcmlhYmxlTmFtZSA9IFwicGFuZWxJbmRleFwiO1xuICBwcml2YXRlIHBhbmVsVmFsdWU6IFBhbmVsTW9kZWw7XG4gIHByaXZhdGUgZGF0YTogSVF1ZXN0aW9uUGFuZWxEeW5hbWljRGF0YTtcbiAgcHJpdmF0ZSB0ZXh0UHJlUHJvY2Vzc29yOiBUZXh0UHJlUHJvY2Vzc29yO1xuICBjb25zdHJ1Y3RvcihkYXRhOiBJUXVlc3Rpb25QYW5lbER5bmFtaWNEYXRhLCBwYW5lbDogUGFuZWxNb2RlbCkge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy5wYW5lbFZhbHVlID0gcGFuZWw7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMudGV4dFByZVByb2Nlc3NvciA9IG5ldyBUZXh0UHJlUHJvY2Vzc29yKCk7XG4gICAgdGhpcy50ZXh0UHJlUHJvY2Vzc29yLm9uUHJvY2VzcyA9IGZ1bmN0aW9uKFxuICAgICAgdGV4dFZhbHVlOiBUZXh0UHJlUHJvY2Vzc29yVmFsdWVcbiAgICApIHtcbiAgICAgIHNlbGYuZ2V0UHJvY2Vzc2VkVGV4dFZhbHVlKHRleHRWYWx1ZSk7XG4gICAgfTtcbiAgICB0aGlzLnNldFN1cnZleUltcGwoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHBhbmVsKCk6IFBhbmVsTW9kZWwge1xuICAgIHJldHVybiB0aGlzLnBhbmVsVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldFN1cnZleUltcGwoKSB7XG4gICAgdGhpcy5wYW5lbC5zZXRTdXJ2ZXlJbXBsKHRoaXMpO1xuICB9XG4gIHB1YmxpYyBnZXRWYWx1ZShuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIHZhciB2YWx1ZXMgPSB0aGlzLmdldEFsbFZhbHVlcygpO1xuICAgIHJldHVybiB2YWx1ZXNbbmFtZV07XG4gIH1cbiAgcHVibGljIHNldFZhbHVlKG5hbWU6IHN0cmluZywgbmV3VmFsdWU6IGFueSkge1xuICAgIHRoaXMuZGF0YS5zZXRQYW5lbEl0ZW1EYXRhKHRoaXMsIG5hbWUsIG5ld1ZhbHVlKTtcbiAgfVxuICBnZXRWYXJpYWJsZShuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgc2V0VmFyaWFibGUobmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogYW55KSB7fVxuICBwdWJsaWMgZ2V0Q29tbWVudChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHZhciByZXN1bHQgPSB0aGlzLmdldFZhbHVlKG5hbWUgKyBzZXR0aW5ncy5jb21tZW50UHJlZml4KTtcbiAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0IDogXCJcIjtcbiAgfVxuICBwdWJsaWMgc2V0Q29tbWVudChuYW1lOiBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcsIGxvY05vdGlmaWNhdGlvbjogYW55KSB7XG4gICAgdGhpcy5zZXRWYWx1ZShuYW1lICsgc2V0dGluZ3MuY29tbWVudFByZWZpeCwgbmV3VmFsdWUpO1xuICB9XG4gIGdldEFsbFZhbHVlcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuZ2V0UGFuZWxJdGVtRGF0YSh0aGlzKTtcbiAgfVxuICBnZXRGaWx0ZXJlZFZhbHVlcygpOiBhbnkge1xuICAgIHZhciB2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICB2YXIgc3VydmV5VmFsdWVzID1cbiAgICAgICEhdGhpcy5kYXRhICYmICEhdGhpcy5kYXRhLmdldFJvb3REYXRhKClcbiAgICAgICAgPyB0aGlzLmRhdGEuZ2V0Um9vdERhdGEoKS5nZXRGaWx0ZXJlZFZhbHVlcygpXG4gICAgICAgIDoge307XG4gICAgZm9yICh2YXIga2V5IGluIHN1cnZleVZhbHVlcykge1xuICAgICAgdmFsdWVzW2tleV0gPSBzdXJ2ZXlWYWx1ZXNba2V5XTtcbiAgICB9XG4gICAgdmFsdWVzW1F1ZXN0aW9uUGFuZWxEeW5hbWljSXRlbS5JdGVtVmFyaWFibGVOYW1lXSA9IHRoaXMuZ2V0QWxsVmFsdWVzKCk7XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuICBnZXRGaWx0ZXJlZFByb3BlcnRpZXMoKTogYW55IHtcbiAgICBpZiAoISF0aGlzLmRhdGEgJiYgISF0aGlzLmRhdGEuZ2V0Um9vdERhdGEoKSlcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZ2V0Um9vdERhdGEoKS5nZXRGaWx0ZXJlZFByb3BlcnRpZXMoKTtcbiAgICByZXR1cm4geyBzdXJ2ZXk6IHRoaXMuZ2V0U3VydmV5KCkgfTtcbiAgfVxuICBnZVN1cnZleURhdGEoKTogSVN1cnZleURhdGEge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGdldFN1cnZleSgpOiBJU3VydmV5IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLmdldFN1cnZleSgpIDogbnVsbDtcbiAgfVxuICBnZXRUZXh0UHJvY2Vzc29yKCk6IElUZXh0UHJvY2Vzc29yIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvL0lUZXh0UHJvY2Vzc29yXG4gIHByaXZhdGUgZ2V0UHJvY2Vzc2VkVGV4dFZhbHVlKHRleHRWYWx1ZTogVGV4dFByZVByb2Nlc3NvclZhbHVlKSB7XG4gICAgaWYgKCF0ZXh0VmFsdWUpIHJldHVybjtcbiAgICB2YXIgcGFuZWxJbmRleCA9ICEhdGhpcy5kYXRhID8gdGhpcy5kYXRhLmdldEl0ZW1JbmRleCh0aGlzKSA6IC0xO1xuICAgIGlmICh0ZXh0VmFsdWUubmFtZSA9PSBRdWVzdGlvblBhbmVsRHluYW1pY0l0ZW0uSW5kZXhWYXJpYWJsZU5hbWUpIHtcbiAgICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9IHRydWU7XG4gICAgICB0ZXh0VmFsdWUudmFsdWUgPSBwYW5lbEluZGV4ICsgMTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGZpcnN0TmFtZSA9IG5ldyBQcm9jZXNzVmFsdWUoKS5nZXRGaXJzdE5hbWUodGV4dFZhbHVlLm5hbWUpO1xuICAgIHRleHRWYWx1ZS5pc0V4aXN0cyA9IGZpcnN0TmFtZSA9PSBRdWVzdGlvblBhbmVsRHluYW1pY0l0ZW0uSXRlbVZhcmlhYmxlTmFtZTtcbiAgICB0ZXh0VmFsdWUuY2FuUHJvY2VzcyA9IHRleHRWYWx1ZS5pc0V4aXN0cztcbiAgICBpZiAoIXRleHRWYWx1ZS5jYW5Qcm9jZXNzKSByZXR1cm47XG4gICAgLy9uYW1lIHNob3VsZCBzdGFydCB3aXRoIHRoZSBwYW5lbFxuICAgIHRleHRWYWx1ZS5uYW1lID0gdGV4dFZhbHVlLm5hbWUucmVwbGFjZShcbiAgICAgIFF1ZXN0aW9uUGFuZWxEeW5hbWljSXRlbS5JdGVtVmFyaWFibGVOYW1lICsgXCIuXCIsXG4gICAgICBcIlwiXG4gICAgKTtcbiAgICB2YXIgZmlyc3ROYW1lID0gbmV3IFByb2Nlc3NWYWx1ZSgpLmdldEZpcnN0TmFtZSh0ZXh0VmFsdWUubmFtZSk7XG4gICAgdmFyIHF1ZXN0aW9uID0gPFF1ZXN0aW9uPnRoaXMucGFuZWwuZ2V0UXVlc3Rpb25CeVZhbHVlTmFtZShmaXJzdE5hbWUpO1xuICAgIGlmICghcXVlc3Rpb24gJiYgcGFuZWxJbmRleCA+IC0xKSB7XG4gICAgICBxdWVzdGlvbiA9IHRoaXMuZGF0YS5nZXRTaGFyZWRRdWVzdGlvbkZyb21BcnJheShmaXJzdE5hbWUsIHBhbmVsSW5kZXgpO1xuICAgIH1cbiAgICB2YXIgdmFsdWVzID0ge307XG4gICAgaWYgKHF1ZXN0aW9uKSB7XG4gICAgICAoPGFueT52YWx1ZXMpW2ZpcnN0TmFtZV0gPSB0ZXh0VmFsdWUucmV0dXJuRGlzcGxheVZhbHVlXG4gICAgICAgID8gcXVlc3Rpb24uZGlzcGxheVZhbHVlXG4gICAgICAgIDogcXVlc3Rpb24udmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBhbGxWYWx1ZXMgPSB0aGlzLmdldEFsbFZhbHVlcygpO1xuICAgICAgaWYgKGFsbFZhbHVlcykge1xuICAgICAgICAoPGFueT52YWx1ZXMpW2ZpcnN0TmFtZV0gPSBhbGxWYWx1ZXNbZmlyc3ROYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGV4dFZhbHVlLnZhbHVlID0gbmV3IFByb2Nlc3NWYWx1ZSgpLmdldFZhbHVlKHRleHRWYWx1ZS5uYW1lLCB2YWx1ZXMpO1xuICB9XG4gIHByb2Nlc3NUZXh0KHRleHQ6IHN0cmluZywgcmV0dXJuRGlzcGxheVZhbHVlOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICB0ZXh0ID0gdGhpcy50ZXh0UHJlUHJvY2Vzc29yLnByb2Nlc3ModGV4dCwgcmV0dXJuRGlzcGxheVZhbHVlKTtcbiAgICB2YXIgc3VydmV5ID0gdGhpcy5nZXRTdXJ2ZXkoKTtcbiAgICByZXR1cm4gc3VydmV5ID8gc3VydmV5LnByb2Nlc3NUZXh0KHRleHQsIHJldHVybkRpc3BsYXlWYWx1ZSkgOiB0ZXh0O1xuICB9XG4gIHByb2Nlc3NUZXh0RXgodGV4dDogc3RyaW5nLCByZXR1cm5EaXNwbGF5VmFsdWU6IGJvb2xlYW4pOiBhbnkge1xuICAgIHRleHQgPSB0aGlzLnByb2Nlc3NUZXh0KHRleHQsIHJldHVybkRpc3BsYXlWYWx1ZSk7XG4gICAgdmFyIGhhc0FsbFZhbHVlc09uTGFzdFJ1biA9IHRoaXMudGV4dFByZVByb2Nlc3Nvci5oYXNBbGxWYWx1ZXNPbkxhc3RSdW47XG4gICAgdmFyIHJlcyA9IHsgaGFzQWxsVmFsdWVzT25MYXN0UnVuOiB0cnVlLCB0ZXh0OiB0ZXh0IH07XG4gICAgaWYgKHRoaXMuZ2V0U3VydmV5KCkpIHtcbiAgICAgIHJlcyA9IHRoaXMuZ2V0U3VydmV5KCkucHJvY2Vzc1RleHRFeCh0ZXh0LCByZXR1cm5EaXNwbGF5VmFsdWUsIGZhbHNlKTtcbiAgICB9XG4gICAgcmVzLmhhc0FsbFZhbHVlc09uTGFzdFJ1biA9XG4gICAgICByZXMuaGFzQWxsVmFsdWVzT25MYXN0UnVuICYmIGhhc0FsbFZhbHVlc09uTGFzdFJ1bjtcbiAgICByZXR1cm4gcmVzO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBRdWVzdGlvblBhbmVsRHluYW1pY1RlbXBsYXRlU3VydmV5SW1wbCBpbXBsZW1lbnRzIElTdXJ2ZXlJbXBsIHtcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGE6IElRdWVzdGlvblBhbmVsRHluYW1pY0RhdGEpIHt9XG4gIGdlU3VydmV5RGF0YSgpOiBJU3VydmV5RGF0YSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZ2V0U3VydmV5KCk6IElTdXJ2ZXkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuZ2V0U3VydmV5KCk7XG4gIH1cbiAgZ2V0VGV4dFByb2Nlc3NvcigpOiBJVGV4dFByb2Nlc3NvciB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBBIE1vZGVsIGZvciBhIHBhbmVsIGR5bWFuaWMgcXVlc3Rpb24uIFlvdSBzZXR1cCB0aGUgdGVtcGxhdGUgcGFuZWwsIGJ1dCBhZGRpbmcgZWxlbWVudHMgKGFueSBxdWVzdGlvbiBvciBhIHBhbmVsKSBhbmQgYXNzaWduIGEgdGV4dCB0byBpdCdzIHRpdGxlLCBhbmQgdGhpcyBwYW5lbCB3aWxsIGJlIHVzZWQgYXMgYSB0ZW1wbGF0ZSBvbiBjcmVhdGluZyBkeW5hbWljIHBhbmVscy4gVGhlIG51bWJlciBvZiBwYW5lbHMgaXMgZGVmaW5lZCBieSBwYW5lbENvdW50IHByb3BlcnR5LlxuICogQW4gZW5kLXVzZXIgbWF5IGR5bmFtaWNhbGx5IGFkZC9yZW1vdmUgcGFuZWxzLCB1bmxlc3MgeW91IGZvcmJpZGRlbiB0aGlzLlxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25QYW5lbER5bmFtaWNNb2RlbCBleHRlbmRzIFF1ZXN0aW9uXG4gIGltcGxlbWVudHMgSVF1ZXN0aW9uUGFuZWxEeW5hbWljRGF0YSB7XG4gIHByaXZhdGUgdGVtcGxhdGVWYWx1ZTogUGFuZWxNb2RlbDtcbiAgcHJpdmF0ZSBsb2FkaW5nUGFuZWxDb3VudDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBpc1ZhbHVlQ2hhbmdpbmdJbnRlcm5hbGx5OiBib29sZWFuO1xuICBwcml2YXRlIGNoYW5naW5nVmFsdWVRdWVzdGlvbjogUXVlc3Rpb247XG4gIHByaXZhdGUgY3VycmVudEluZGV4VmFsdWU6IG51bWJlciA9IC0xO1xuXG4gIHJlbmRlck1vZGVDaGFuZ2VkQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gIHBhbmVsQ291bnRDaGFuZ2VkQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gIGN1cnJlbnRJbmRleENoYW5nZWRDYWxsYmFjazogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gICAgdGhpcy5jcmVhdGVOZXdBcnJheShcInBhbmVsc1wiKTtcbiAgICB0aGlzLnRlbXBsYXRlVmFsdWUgPSB0aGlzLmNyZWF0ZUFuZFNldHVwTmV3UGFuZWxPYmplY3QoKTtcbiAgICB0aGlzLnRlbXBsYXRlLnJlbmRlcldpZHRoID0gXCIxMDAlXCI7XG4gICAgdGhpcy50ZW1wbGF0ZS5zZWxlY3RlZEVsZW1lbnRJbkRlc2lnbiA9IHRoaXM7XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy50ZW1wbGF0ZS5hZGRFbGVtZW50Q2FsbGJhY2sgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICBzZWxmLmFkZE9uUHJvcGVydHlDaGFuZ2VkQ2FsbGJhY2soZWxlbWVudCk7XG4gICAgICBzZWxmLnJlYnVpbGRQYW5lbHMoKTtcbiAgICB9O1xuICAgIHRoaXMudGVtcGxhdGUucmVtb3ZlRWxlbWVudENhbGxiYWNrID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgc2VsZi5yZWJ1aWxkUGFuZWxzKCk7XG4gICAgfTtcblxuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJjb25maXJtRGVsZXRlVGV4dFwiLCB0aGlzKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwia2V5RHVwbGljYXRpb25FcnJvclwiLCB0aGlzKTtcbiAgICB0aGlzLmNyZWF0ZUxvY2FsaXphYmxlU3RyaW5nKFwicGFuZWxBZGRUZXh0XCIsIHRoaXMpO1xuICAgIHRoaXMuY3JlYXRlTG9jYWxpemFibGVTdHJpbmcoXCJwYW5lbFJlbW92ZVRleHRcIiwgdGhpcyk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInBhbmVsUHJldlRleHRcIiwgdGhpcyk7XG4gICAgdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcInBhbmVsTmV4dFRleHRcIiwgdGhpcyk7XG4gICAgdGhpcy5yZWdpc3RlckZ1bmN0aW9uT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZChcInBhbmVsc1N0YXRlXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5zZXRQYW5lbHNTdGF0ZSgpO1xuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBzZXRTdXJ2ZXlJbXBsKHZhbHVlOiBJU3VydmV5SW1wbCkge1xuICAgIHN1cGVyLnNldFN1cnZleUltcGwodmFsdWUpO1xuICAgIHRoaXMuc2V0VGVtcGxhdGVQYW5lbFN1cnZleUltcGwoKTtcbiAgICB0aGlzLnNldFBhbmVsc1N1cnZleUltcGwoKTtcbiAgfVxuICBwcml2YXRlIGFzc2lnbk9uUHJvcGVydHlDaGFuZ2VkVG9UZW1wbGF0ZSgpIHtcbiAgICB2YXIgZWxlbWVudHMgPSB0aGlzLnRlbXBsYXRlLmVsZW1lbnRzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYWRkT25Qcm9wZXJ0eUNoYW5nZWRDYWxsYmFjayhlbGVtZW50c1tpXSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYWRkT25Qcm9wZXJ0eUNoYW5nZWRDYWxsYmFjayhlbGVtZW50OiBJRWxlbWVudCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAoPEJhc2U+KDxhbnk+ZWxlbWVudCkpLm9uUHJvcGVydHlDaGFuZ2VkLmFkZChmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICBzZWxmLm9uVGVtcGxhdGVFbGVtZW50UHJvcGVydHlDaGFuZ2VkKGVsZW1lbnQsIG9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGlmIChlbGVtZW50LmlzUGFuZWwpIHtcbiAgICAgICg8UGFuZWxNb2RlbD4oPGFueT5lbGVtZW50KSkuYWRkRWxlbWVudENhbGxiYWNrID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICBzZWxmLmFkZE9uUHJvcGVydHlDaGFuZ2VkQ2FsbGJhY2soZWxlbWVudCk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBwcml2YXRlIG9uVGVtcGxhdGVFbGVtZW50UHJvcGVydHlDaGFuZ2VkKGVsZW1lbnQ6IGFueSwgb3B0aW9uczogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24gfHwgdGhpcy5pc0Rlc2lnbk1vZGUgfHwgdGhpcy5wYW5lbHMubGVuZ3RoID09IDApXG4gICAgICByZXR1cm47XG4gICAgdmFyIHByb3BlcnR5ID0gU2VyaWFsaXplci5maW5kUHJvcGVydHkoZWxlbWVudC5nZXRUeXBlKCksIG9wdGlvbnMubmFtZSk7XG4gICAgaWYgKCFwcm9wZXJ0eSkgcmV0dXJuO1xuICAgIHZhciBwYW5lbHMgPSB0aGlzLnBhbmVscztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhbmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHF1ZXN0aW9uID0gcGFuZWxzW2ldLmdldFF1ZXN0aW9uQnlOYW1lKGVsZW1lbnQubmFtZSk7XG4gICAgICBpZiAoISFxdWVzdGlvbiAmJiAoPGFueT5xdWVzdGlvbilbb3B0aW9ucy5uYW1lXSAhPT0gb3B0aW9ucy5uZXdWYWx1ZSkge1xuICAgICAgICAoPGFueT5xdWVzdGlvbilbb3B0aW9ucy5uYW1lXSA9IG9wdGlvbnMubmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicGFuZWxkeW5hbWljXCI7XG4gIH1cbiAgcHVibGljIGdldCBpc0FsbG93VGl0bGVMZWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgcmVtb3ZlRWxlbWVudChlbGVtZW50OiBJRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlLnJlbW92ZUVsZW1lbnQoZWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIFBhbmVsLiBUaGlzIHBhbmVsIGlzIHVzZWQgYXMgYSB0ZW1wbGF0ZSBvbiBjcmVhdGlnbiBkeW5hbWljIHBhbmVsc1xuICAgKiBAc2VlICB0ZW1wbGF0ZUVsZW1lbnRzXG4gICAqIEBzZWUgdGVtcGxhdGVUaXRsZVxuICAgKiBAc2VlIHBhbmVsQ291bnRcbiAgICovXG4gIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogUGFuZWxNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVWYWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0UGFuZWwoKTogSVBhbmVsIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZTtcbiAgfVxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIFBhbmVsIGVsZW1lbnRzLCBxdWVzdGlvbnMgYW5kIHBhbmVscy5cbiAgICogQHNlZSAgdGVtcGxhdGVFbGVtZW50c1xuICAgKiBAc2VlIHRlbXBsYXRlXG4gICAqIEBzZWUgcGFuZWxDb3VudFxuICAgKi9cbiAgcHVibGljIGdldCB0ZW1wbGF0ZUVsZW1lbnRzKCk6IEFycmF5PElFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGUuZWxlbWVudHM7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBQYW5lbCB0aXRsZSBwcm9wZXJ0eS5cbiAgICogQHNlZSAgdGVtcGxhdGVFbGVtZW50c1xuICAgKiBAc2VlIHRlbXBsYXRlXG4gICAqIEBzZWUgcGFuZWxDb3VudFxuICAgKi9cbiAgcHVibGljIGdldCB0ZW1wbGF0ZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGUudGl0bGU7XG4gIH1cbiAgcHVibGljIHNldCB0ZW1wbGF0ZVRpdGxlKG5ld1ZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRlbXBsYXRlLnRpdGxlID0gbmV3VmFsdWU7XG4gIH1cbiAgZ2V0IGxvY1RlbXBsYXRlVGl0bGUoKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlLmxvY1RpdGxlO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgUGFuZWwgZGVzY3JpcHRpb24gcHJvcGVydHkuXG4gICAqIEBzZWUgIHRlbXBsYXRlRWxlbWVudHNcbiAgICogQHNlZSB0ZW1wbGF0ZVxuICAgKiBAc2VlIHBhbmVsQ291bnRcbiAgICogQHNlZSB0ZW1wbGF0ZVRpdGxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRlbXBsYXRlRGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZS5kZXNjcmlwdGlvbjtcbiAgfVxuICBwdWJsaWMgc2V0IHRlbXBsYXRlRGVzY3JpcHRpb24obmV3VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGVtcGxhdGUuZGVzY3JpcHRpb24gPSBuZXdWYWx1ZTtcbiAgfVxuICBnZXQgbG9jVGVtcGxhdGVEZXNjcmlwdGlvbigpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGUubG9jRGVzY3JpcHRpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGl0ZW1zKCk6IEFycmF5PElTdXJ2ZXlEYXRhPiB7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcy5wdXNoKHRoaXMucGFuZWxzW2ldLmRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgYXJyYXkgb2YgZHluYW1pYyBwYW5lbHMgY3JlYXRlZCBiYXNlZCBvbiBwYW5lbCB0ZW1wbGF0ZVxuICAgKiBAc2VlIHRlbXBsYXRlXG4gICAqIEBzZWUgcGFuZWxDb3VudFxuICAgKi9cbiAgcHVibGljIGdldCBwYW5lbHMoKTogQXJyYXk8UGFuZWxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJwYW5lbHNcIik7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiBjdXJyZW50IGFjdGl2ZSBkeW5hbWljYWwgcGFuZWwgd2hlbiB0aGUgcmVuZGVyTW9kZSBpcyBub3QgXCJsaXN0XCIuIElmIHRoZXJlIGlzIG5vIGR5bWFtaWMgcGFuZWwgKHBhbmVsQ291bnQgPSAwKSBvciByZW5kZXJNb2RlIGVxdWFscyBcImxpc3RcIiBpdCByZXR1cm5zIC0xLCBvdGhlcndpc2UgaXQgcmV0dXJucyBhIHZhbHVlIGZyb20gMCB0byBwYW5lbENvdW50IC0gMS5cbiAgICogQHNlZSBjdXJyZW50UGFuZWxcbiAgICogQHNlZSBwYW5lbHNcbiAgICogQHNlZSBwYW5lbENvdW50XG4gICAqIEBzZWUgcmVuZGVyTW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBjdXJyZW50SW5kZXgoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pc1JlbmRlck1vZGVMaXN0KSByZXR1cm4gLTE7XG4gICAgaWYgKHRoaXMuaXNEZXNpZ25Nb2RlKSByZXR1cm4gMDtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5kZXhWYWx1ZSA8IDAgJiYgdGhpcy5wYW5lbENvdW50ID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXhWYWx1ZSA9IDA7XG4gICAgfVxuICAgIGlmICh0aGlzLmN1cnJlbnRJbmRleFZhbHVlID49IHRoaXMucGFuZWxDb3VudCkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXhWYWx1ZSA9IHRoaXMucGFuZWxDb3VudCAtIDE7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbmRleFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgY3VycmVudEluZGV4KHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudEluZGV4VmFsdWUgIT09IHZhbCkge1xuICAgICAgaWYgKHZhbCA+PSB0aGlzLnBhbmVsQ291bnQpIHZhbCA9IHRoaXMucGFuZWxDb3VudCAtIDE7XG4gICAgICB0aGlzLmN1cnJlbnRJbmRleFZhbHVlID0gdmFsO1xuICAgICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5jdXJyZW50SW5kZXhDaGFuZ2VkQ2FsbGJhY2spO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgYWN0aXZlIGR5bmFtaWNhbCBwYW5lbCB3aGVuIHRoZSByZW5kZXJNb2RlIGlzIG5vdCBcImxpc3RcIi4gSWYgdGhlcmUgaXMgbm8gZHltYW1pYyBwYW5lbCAocGFuZWxDb3VudCA9IDApIG9yIHJlbmRlck1vZGUgZXF1YWxzIFwibGlzdFwiIGl0IHJldHVybnMgbnVsbC5cbiAgICogQHNlZSBjdXJyZW5JbmRleFxuICAgKiBAc2VlIHBhbmVsc1xuICAgKiBAc2VlIHBhbmVsQ291bnRcbiAgICogQHNlZSByZW5kZXJNb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnRQYW5lbCgpOiBQYW5lbE1vZGVsIHtcbiAgICB2YXIgaW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleDtcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMucGFuZWxzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMucGFuZWxzW2luZGV4XTtcbiAgfVxuICAvKipcbiAgICogU2V0IGl0IHRvIHRydWUsIHRvIHNob3cgYSBjb25maXJtYXRpb24gZGlhbG9nIG9uIHJlbW92aW5nIGEgcGFuZWxcbiAgICogQHNlZSBDb25maXJtRGVsZXRlVGV4dFxuICAgKi9cbiAgcHVibGljIGdldCBjb25maXJtRGVsZXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJjb25maXJtRGVsZXRlXCIsIGZhbHNlKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNvbmZpcm1EZWxldGUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiY29uZmlybURlbGV0ZVwiLCB2YWwpO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgaXQgdG8gYSBxdWVzdGlvbiBuYW1lIHVzZWQgaW4gdGhlIHRlbXBsYXRlIHBhbmVsIGFuZCB0aGUgbGlicmFyeSBzaG93cyBkdXBsaWNhdGlvbiBlcnJvciwgaWYgdGhlcmUgYXJlIHNhbWUgdmFsdWVzIGluIGRpZmZlcmVudCBwYW5lbHMgb2YgdGhpcyBxdWVzdGlvbi5cbiAgICogQHNlZSBrZXlEdXBsaWNhdGlvbkVycm9yXG4gICAqL1xuICBwdWJsaWMgZ2V0IGtleU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwia2V5TmFtZVwiLCBcIlwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IGtleU5hbWUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJrZXlOYW1lXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIGNoYW5nZSB0aGUgZGVmYXVsdCB0ZXh0IHNob3dpbmcgaW4gdGhlIGNvbmZpcm1hdGlvbiBkZWxldGUgZGlhbG9nIG9uIHJlbW92aW5nIGEgcGFuZWwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbmZpcm1EZWxldGVUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcbiAgICAgIFwiY29uZmlybURlbGV0ZVRleHRcIixcbiAgICAgIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJjb25maXJtRGVsZXRlXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNvbmZpcm1EZWxldGVUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJjb25maXJtRGVsZXRlVGV4dFwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NDb25maXJtRGVsZXRlVGV4dCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJjb25maXJtRGVsZXRlVGV4dFwiKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGR1cGxpY2F0aW9uIHZhbHVlIGVycm9yIHRleHQuIFNldCBpdCB0byBzaG93IHRoZSB0ZXh0IGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0LlxuICAgKiBAc2VlIGtleU5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXQga2V5RHVwbGljYXRpb25FcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXG4gICAgICBcImtleUR1cGxpY2F0aW9uRXJyb3JcIixcbiAgICAgIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IGtleUR1cGxpY2F0aW9uRXJyb3IodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcImtleUR1cGxpY2F0aW9uRXJyb3JcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jS2V5RHVwbGljYXRpb25FcnJvcigpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJrZXlEdXBsaWNhdGlvbkVycm9yXCIpO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgcHJldmlvdXMgYnV0dG9uIHRleHQuIFByZXZpb3VzIGJ1dHRvbiBzaG93cyB0aGUgcHJldmlvdXMgcGFuZWwsIGNoYW5nZSB0aGUgY3VycmVudFBhbmVsLCB3aGVuIHRoZSByZW5kZXJNb2RlIGRvZXNuJ3QgZXF1YWwgdG8gXCJsaXN0XCIuXG4gICAqIEBzZWUgY3VycmVudFBhbmVsXG4gICAqIEBzZWUgY3VycmVudEluZGV4XG4gICAqIEBzZWUgcmVuZGVyTW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBwYW5lbFByZXZUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJwYW5lbFByZXZUZXh0XCIsXG4gICAgICBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGFnZVByZXZUZXh0XCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHBhbmVsUHJldlRleHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInBhbmVsUHJldlRleHRcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jUGFuZWxQcmV2VGV4dCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJwYW5lbFByZXZUZXh0XCIpO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgbmV4dCBidXR0b24gdGV4dC4gTmV4dCBidXR0b24gc2hvd3MgdGhlIG5leHQgcGFuZWwsIGNoYW5nZSB0aGUgY3VycmVudFBhbmVsLCB3aGVuIHRoZSByZW5kZXJNb2RlIGRvZXNuJ3QgZXF1YWwgdG8gXCJsaXN0XCIuXG4gICAqIEBzZWUgY3VycmVudFBhbmVsXG4gICAqIEBzZWUgY3VycmVudEluZGV4XG4gICAqIEBzZWUgcmVuZGVyTW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBwYW5lbE5leHRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJwYW5lbE5leHRUZXh0XCIsXG4gICAgICBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicGFnZU5leHRUZXh0XCIpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHBhbmVsTmV4dFRleHQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcInBhbmVsTmV4dFRleHRcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jUGFuZWxOZXh0VGV4dCgpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJwYW5lbE5leHRUZXh0XCIpO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYWRkIHBhbmVsIGJ1dHRvbiB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCBwYW5lbEFkZFRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFxuICAgICAgXCJwYW5lbEFkZFRleHRcIixcbiAgICAgIHN1cnZleUxvY2FsaXphdGlvbi5nZXRTdHJpbmcoXCJhZGRQYW5lbFwiKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCBwYW5lbEFkZFRleHQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwicGFuZWxBZGRUZXh0XCIsIHZhbHVlKTtcbiAgfVxuICBnZXQgbG9jUGFuZWxBZGRUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcInBhbmVsQWRkVGV4dFwiKTtcbiAgfVxuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHJlbW92ZSBwYW5lbCBidXR0b24gdGV4dC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGFuZWxSZW1vdmVUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcbiAgICAgIFwicGFuZWxSZW1vdmVUZXh0XCIsXG4gICAgICBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwicmVtb3ZlUGFuZWxcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgcGFuZWxSZW1vdmVUZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJwYW5lbFJlbW92ZVRleHRcIiwgdmFsKTtcbiAgfVxuICBnZXQgbG9jUGFuZWxSZW1vdmVUZXh0KCk6IExvY2FsaXphYmxlU3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZyhcInBhbmVsUmVtb3ZlVGV4dFwiKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHJlbmRlck1vZGUgZXF1YWxzIHRvIFwicHJvZ3Jlc3NUb3BcIiBvciBcInByb2dyZXNzVG9wQm90dG9tXCJcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNQcm9ncmVzc1RvcFNob3dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucmVuZGVyTW9kZSA9PSBcInByb2dyZXNzVG9wXCIgfHwgdGhpcy5yZW5kZXJNb2RlID09IFwicHJvZ3Jlc3NUb3BCb3R0b21cIlxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSByZW5kZXJNb2RlIGVxdWFscyB0byBcInByb2dyZXNzQm90dG9tXCIgb3IgXCJwcm9ncmVzc1RvcEJvdHRvbVwiXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzUHJvZ3Jlc3NCb3R0b21TaG93aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnJlbmRlck1vZGUgPT0gXCJwcm9ncmVzc0JvdHRvbVwiIHx8XG4gICAgICB0aGlzLnJlbmRlck1vZGUgPT0gXCJwcm9ncmVzc1RvcEJvdHRvbVwiXG4gICAgKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHdoZW4gY3VycmVudEluZGV4IGlzIG1vcmUgdGhhbiAwLlxuICAgKiBAc2VlIGN1cnJlbkluZGV4XG4gICAqIEBzZWUgY3VycmVuUGFuZWxcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNQcmV2QnV0dG9uU2hvd2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50SW5kZXggPiAwO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgd2hlbiBjdXJyZW50SW5kZXggaXMgbW9yZSB0aGFuIG9yIGVxdWFsIDAgYW5kIGxlc3MgdGhlbiBwYW5lbENvdW50IC0gMS5cbiAgICogQHNlZSBjdXJyZW5JbmRleFxuICAgKiBAc2VlIGN1cnJlblBhbmVsXG4gICAqIEBzZWUgcGFuZWxDb3VudFxuICAgKi9cbiAgcHVibGljIGdldCBpc05leHRCdXR0b25TaG93aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbmRleCA+PSAwICYmIHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5wYW5lbENvdW50IC0gMTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHdoZW4gc2hvd1JhbmdlSW5Qcm9ncmVzcyBlcXVhbHMgdG8gdHJ1ZSwgcmVuZGVyTW9kZSBkb2Vzbid0IGVxdWFsIHRvIFwibGlzdFwiIGFuZCBwYW5lbENvdW50IGlzID49IDIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzUmFuZ2VTaG93aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNob3dSYW5nZUluUHJvZ3Jlc3MgJiYgdGhpcy5jdXJyZW50SW5kZXggPj0gMCAmJiB0aGlzLnBhbmVsQ291bnQgPiAxXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0RWxlbWVudHNJbkRlc2lnbihpbmNsdWRlSGlkZGVuOiBib29sZWFuID0gZmFsc2UpOiBBcnJheTxJRWxlbWVudD4ge1xuICAgIHJldHVybiBpbmNsdWRlSGlkZGVuID8gW3RoaXMudGVtcGxhdGVdIDogdGhpcy50ZW1wbGF0ZUVsZW1lbnRzO1xuICB9XG4gIHByaXZhdGUgaXNBZGRpbmdOZXdQYW5lbHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBhZGRpbmdOZXdQYW5lbHNWYWx1ZTogYW55O1xuICBwcml2YXRlIGlzTmV3UGFuZWxzVmFsdWVDaGFuZ2VkOiBib29sZWFuO1xuICBwcml2YXRlIHByZXBhcmVWYWx1ZUZvclBhbmVsQ3JlYXRpbmcoKSB7XG4gICAgdGhpcy5hZGRpbmdOZXdQYW5lbHNWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5pc0FkZGluZ05ld1BhbmVscyA9IHRydWU7XG4gICAgdGhpcy5pc05ld1BhbmVsc1ZhbHVlQ2hhbmdlZCA9IGZhbHNlO1xuICB9XG4gIHByaXZhdGUgc2V0VmFsdWVBZnRlclBhbmVsc0NyZWF0aW5nKCkge1xuICAgIHRoaXMuaXNBZGRpbmdOZXdQYW5lbHMgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5pc05ld1BhbmVsc1ZhbHVlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5pc1ZhbHVlQ2hhbmdpbmdJbnRlcm5hbGx5ID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmFkZGluZ05ld1BhbmVsc1ZhbHVlO1xuICAgICAgdGhpcy5pc1ZhbHVlQ2hhbmdpbmdJbnRlcm5hbGx5ID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBnZXRWYWx1ZUNvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNBZGRpbmdOZXdQYW5lbHNcbiAgICAgID8gdGhpcy5hZGRpbmdOZXdQYW5lbHNWYWx1ZVxuICAgICAgOiBzdXBlci5nZXRWYWx1ZUNvcmUoKTtcbiAgfVxuICBwcm90ZWN0ZWQgc2V0VmFsdWVDb3JlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0FkZGluZ05ld1BhbmVscykge1xuICAgICAgdGhpcy5pc05ld1BhbmVsc1ZhbHVlQ2hhbmdlZCA9IHRydWU7XG4gICAgICB0aGlzLmFkZGluZ05ld1BhbmVsc1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLnNldFZhbHVlQ29yZShuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBnZXQvc2V0IHRoZSBudW1iZXIgb2YgZHluYW1pYyBwYW5lbHMuXG4gICAqIEBzZWUgdGVtcGxhdGVcbiAgICogQHNlZSBtaW5QYW5lbENvdW50XG4gICAqIEBzZWUgbWF4UGFuZWxDb3VudFxuICAgKiBAc2VlIGFkZFBhbmVsXG4gICAqIEBzZWUgcmVtb3ZlUGFuZWxcbiAgICogQHNlZSByZW1vdmVQYW5lbFVJXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhbmVsQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmdGcm9tSnNvbiB8fCB0aGlzLmlzRGVzaWduTW9kZVxuICAgICAgPyB0aGlzLmxvYWRpbmdQYW5lbENvdW50XG4gICAgICA6IHRoaXMucGFuZWxzLmxlbmd0aDtcbiAgfVxuICBwdWJsaWMgc2V0IHBhbmVsQ291bnQodmFsOiBudW1iZXIpIHtcbiAgICBpZiAodmFsIDwgMCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzTG9hZGluZ0Zyb21Kc29uIHx8IHRoaXMuaXNEZXNpZ25Nb2RlKSB7XG4gICAgICB0aGlzLmxvYWRpbmdQYW5lbENvdW50ID0gdmFsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodmFsID09IHRoaXMucGFuZWxzLmxlbmd0aCB8fCB0aGlzLmlzRGVzaWduTW9kZSkgcmV0dXJuO1xuICAgIHRoaXMucHJlcGFyZVZhbHVlRm9yUGFuZWxDcmVhdGluZygpO1xuICAgIGZvciAobGV0IGkgPSB0aGlzLnBhbmVsQ291bnQ7IGkgPCB2YWw7IGkrKykge1xuICAgICAgdmFyIHBhbmVsID0gdGhpcy5jcmVhdGVOZXdQYW5lbCgpO1xuICAgICAgdGhpcy5wYW5lbHMucHVzaChwYW5lbCk7XG4gICAgICBpZiAodGhpcy5yZW5kZXJNb2RlID09IFwibGlzdFwiICYmIHRoaXMucGFuZWxzU3RhdGUgIT0gXCJkZWZhdWx0XCIpIHtcbiAgICAgICAgaWYgKHRoaXMucGFuZWxzU3RhdGUgPT09IFwiZXhwYW5kXCIpIHtcbiAgICAgICAgICBwYW5lbC5leHBhbmQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYW5lbC5jb2xsYXBzZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2YWwgPCB0aGlzLnBhbmVsQ291bnQpIHRoaXMucGFuZWxzLnNwbGljZSh2YWwsIHRoaXMucGFuZWxDb3VudCAtIHZhbCk7XG4gICAgdGhpcy5zZXRWYWx1ZUFmdGVyUGFuZWxzQ3JlYXRpbmcoKTtcbiAgICB0aGlzLnNldFZhbHVlQmFzZWRPblBhbmVsQ291bnQoKTtcbiAgICB0aGlzLnJlUnVuQ29uZGl0aW9uKCk7XG4gICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5wYW5lbENvdW50Q2hhbmdlZENhbGxiYWNrKTtcbiAgfVxuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcGVydHkgdG8gYWxsb3cgdGhlIGVuZC11c2VyIHRvIGNvbGxhcHNlL2V4cGFuZCB0aGUgcGFuZWxzLiBJdCB3b3JrcyBvbmx5IGlmIHRoZSByZW5kZXJNb2RlIHByb3BlcnR5IGVxdWFscyB0byBcImxpc3RcIiBhbmQgdGVtcGxhdGVUaXRsZSBwcm9wZXJ0eSBpcyBub3QgZW1wdHkuIFRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBhdmFpbGFibGU6XG4gICAqIDxici8+IGRlZmF1bHQgLSB0aGUgZGVmYXVsdCB2YWx1ZS4gVXNlciBjYW4ndCBjb2xscGFzZS9leHBhbmQgcGFuZWxzXG4gICAqIDxici8+IGV4cGFuZGVkIC0gVXNlciBjYW4gY29sbHBhc2UvZXhwYW5kIHBhbmVscyBhbmQgYWxsIHBhbmVscyBhcmUgZXhwYW5kZWQgYnkgZGVmYXVsdFxuICAgKiA8YnIvPiBjb2xsYXBzZWQgLSBVc2VyIGNhbiBjb2xscGFzZS9leHBhbmQgcGFuZWxzIGFuZCBhbGwgcGFuZWxzIGFyZSBjb2xsYXBzZWQgYnkgZGVmYXVsdFxuICAgKiA8YnIvPiBmaXJzdEV4cGFuZGVkIC0gVXNlciBjYW4gY29sbHBhc2UvZXhwYW5kIHBhbmVscy4gVGhlIGZpcnN0IHBhbmVsIGlzIGV4cGFuZGVkIGFuZCBvdGhlcnMgYXJlIGNvbGxhcHNlZFxuICAgKiBAc2VlIHJlbmRlck1vZGVcbiAgICogQHNlZSB0ZW1wbGF0ZVRpdGxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhbmVsc1N0YXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhbmVsc1N0YXRlXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcGFuZWxzU3RhdGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJwYW5lbHNTdGF0ZVwiLCB2YWwpO1xuICB9XG4gIHByaXZhdGUgc2V0VGVtcGxhdGVQYW5lbFN1cnZleUltcGwoKSB7XG4gICAgdGhpcy50ZW1wbGF0ZS5zZXRTdXJ2ZXlJbXBsKFxuICAgICAgdGhpcy5pc0Rlc2lnbk1vZGVcbiAgICAgICAgPyB0aGlzLnN1cnZleUltcGxcbiAgICAgICAgOiBuZXcgUXVlc3Rpb25QYW5lbER5bmFtaWNUZW1wbGF0ZVN1cnZleUltcGwodGhpcylcbiAgICApO1xuICB9XG4gIHByaXZhdGUgc2V0UGFuZWxzU3VydmV5SW1wbCgpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFuZWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcGFuZWwgPSB0aGlzLnBhbmVsc1tpXTtcbiAgICAgIGlmIChwYW5lbCA9PSB0aGlzLnRlbXBsYXRlKSBjb250aW51ZTtcbiAgICAgIHBhbmVsLnNldFN1cnZleUltcGwoPFF1ZXN0aW9uUGFuZWxEeW5hbWljSXRlbT5wYW5lbC5kYXRhKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBzZXRQYW5lbHNTdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5pc0Rlc2lnbk1vZGUgfHwgdGhpcy5yZW5kZXJNb2RlICE9IFwibGlzdFwiKSByZXR1cm47XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHN0YXRlID0gdGhpcy5wYW5lbHNTdGF0ZTtcbiAgICAgIGlmIChzdGF0ZSA9PT0gXCJmaXJzdEV4cGFuZGVkXCIpIHtcbiAgICAgICAgc3RhdGUgPSBpID09PSAwID8gXCJleHBhbmRlZFwiIDogXCJjb2xsYXBzZWRcIjtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFuZWxzW2ldLnN0YXRlID0gc3RhdGU7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc2V0VmFsdWVCYXNlZE9uUGFuZWxDb3VudCgpIHtcbiAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGlmICghdmFsdWUgfHwgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFtdO1xuICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gdGhpcy5wYW5lbENvdW50KSByZXR1cm47XG4gICAgZm9yICh2YXIgaSA9IHZhbHVlLmxlbmd0aDsgaSA8IHRoaXMucGFuZWxDb3VudDsgaSsrKSB2YWx1ZS5wdXNoKHt9KTtcbiAgICBpZiAodmFsdWUubGVuZ3RoID4gdGhpcy5wYW5lbENvdW50KSB7XG4gICAgICB2YWx1ZS5zcGxpY2UodGhpcy5wYW5lbENvdW50LCB2YWx1ZS5sZW5ndGggLSB0aGlzLnBhbmVsQ291bnQpO1xuICAgIH1cbiAgICB0aGlzLmlzVmFsdWVDaGFuZ2luZ0ludGVybmFsbHkgPSB0cnVlO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmlzVmFsdWVDaGFuZ2luZ0ludGVybmFsbHkgPSBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogVGhlIG1pbmltdW0gcGFuZWwgY291bnQuIEEgdXNlciBjb3VsZCBub3QgZGVsZXRlIGEgcGFuZWwgaWYgdGhlIHBhbmVsQ291bnQgZXF1YWxzIHRvIG1pblBhbmVsQ291bnRcbiAgICogQHNlZSBwYW5lbENvdW50XG4gICAqIEBzZWUgbWF4UGFuZWxDb3VudFxuICAgKi9cbiAgcHVibGljIGdldCBtaW5QYW5lbENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIm1pblBhbmVsQ291bnRcIiwgMCk7XG4gIH1cbiAgcHVibGljIHNldCBtaW5QYW5lbENvdW50KHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHZhbCA8IDApIHZhbCA9IDA7XG4gICAgaWYgKHZhbCA9PSB0aGlzLm1pblBhbmVsQ291bnQpIHJldHVybjtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJtaW5QYW5lbENvdW50XCIsIHZhbCk7XG4gICAgaWYgKHZhbCA+IHRoaXMubWF4UGFuZWxDb3VudCkgdGhpcy5tYXhQYW5lbENvdW50ID0gdmFsO1xuICAgIGlmICh0aGlzLnBhbmVsQ291bnQgPCB2YWwpIHRoaXMucGFuZWxDb3VudCA9IHZhbDtcbiAgfVxuICAvKipcbiAgICogVGhlIG1heGltdW0gcGFuZWwgY291bnQuIEEgdXNlciBjb3VsZCBub3QgYWRkIGEgcGFuZWwgaWYgdGhlIHBhbmVsQ291bnQgZXF1YWxzIHRvIG1heFBhbmVsQ291bnRcbiAgICogQHNlZSBwYW5lbENvdW50XG4gICAqIEBzZWUgbWluUGFuZWxDb3VudFxuICAgKi9cbiAgcHVibGljIGdldCBtYXhQYW5lbENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgIFwibWF4UGFuZWxDb3VudFwiLFxuICAgICAgc2V0dGluZ3MucGFuZWxNYXhpbXVtUGFuZWxDb3VudFxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCBtYXhQYW5lbENvdW50KHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHZhbCA8PSAwKSByZXR1cm47XG4gICAgaWYgKHZhbCA+IHNldHRpbmdzLnBhbmVsTWF4aW11bVBhbmVsQ291bnQpXG4gICAgICB2YWwgPSBzZXR0aW5ncy5wYW5lbE1heGltdW1QYW5lbENvdW50O1xuICAgIGlmICh2YWwgPT0gdGhpcy5tYXhQYW5lbENvdW50KSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwibWF4UGFuZWxDb3VudFwiLCB2YWwpO1xuICAgIGlmICh2YWwgPCB0aGlzLm1pblBhbmVsQ291bnQpIHRoaXMubWluUGFuZWxDb3VudCA9IHZhbDtcbiAgICBpZiAodGhpcy5wYW5lbENvdW50ID4gdmFsKSB0aGlzLnBhbmVsQ291bnQgPSB2YWw7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGZhbHNlIHRvIGhpZGUgdGhlICdBZGQgTmV3JyBidXR0b25cbiAgICogQHNlZSBhbGxvd1JlbW92ZVBhbmVsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFsbG93QWRkUGFuZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImFsbG93QWRkUGFuZWxcIik7XG4gIH1cbiAgcHVibGljIHNldCBhbGxvd0FkZFBhbmVsKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImFsbG93QWRkUGFuZWxcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgdG8gZmFsc2UgdG8gaGlkZSB0aGUgJ1JlbW92ZScgYnV0dG9uXG4gICAqIEBzZWUgYWxsb3dBZGRQYW5lbFxuICAgKi9cbiAgcHVibGljIGdldCBhbGxvd1JlbW92ZVBhbmVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJhbGxvd1JlbW92ZVBhbmVsXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgYWxsb3dSZW1vdmVQYW5lbCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJhbGxvd1JlbW92ZVBhbmVsXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5IGRpZmZlcmVudCBmcm9tIFwiZGVmYXVsdFwiIHRvIHNldCB0aGUgc3BlY2lmaWMgcXVlc3Rpb24gdGl0bGUgbG9jYXRpb24gZm9yIHRoZSB0ZW1wbGF0ZSBxdWVzdGlvbnMuXG4gICAqIEBzZWUgU3VydmV5TW9kZWwucXVlc3Rpb25UaXRsZUxvY2F0aW9uXG4gICAqIEBzZWUgUGFuZWxNb2RlbEJhc2UucXVlc3Rpb25UaXRsZUxvY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRlbXBsYXRlVGl0bGVMb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJ0ZW1wbGF0ZVRpdGxlTG9jYXRpb25cIik7XG4gIH1cbiAgcHVibGljIHNldCB0ZW1wbGF0ZVRpdGxlTG9jYXRpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInRlbXBsYXRlVGl0bGVMb2NhdGlvblwiLCB2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcGVydHkgdG8gc2hvdy9oaWRlIHRoZSBudW1iZXJzIGluIHRpdGxlcyBpbiBxdWVzdGlvbnMgaW5zaWRlIGEgZHluYW1pYyBwYW5lbC5cbiAgICogQnkgZGVmYXVsdCB0aGUgdmFsdWUgaXMgXCJvZmZcIi4gWW91IG1heSBzZXQgaXQgdG8gXCJvblBhbmVsXCIgYW5kIHRoZSBmaXJzdCBxdWVzdGlvbiBpbnNpZGUgYSBkeW5hbWljIHBhbmVsIHdpbGwgc3RhcnQgd2l0aCAxIG9yIFwib25TdXJ2ZXlcIiB0byBpbmNsdWRlIG5lc3RlZCBxdWVzdGlvbnMgaW4gZHltYW1pYyBwYW5lbHMgaW50byBnbG9iYWwgc3VydmV5IHF1ZXN0aW9uIG51bWJlcmluZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd1F1ZXN0aW9uTnVtYmVycygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93UXVlc3Rpb25OdW1iZXJzXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd1F1ZXN0aW9uTnVtYmVycyh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dRdWVzdGlvbk51bWJlcnNcIiwgdmFsKTtcbiAgICBpZiAoIXRoaXMuaXNMb2FkaW5nRnJvbUpzb24gJiYgdGhpcy5zdXJ2ZXkpIHtcbiAgICAgIHRoaXMuc3VydmV5LnF1ZXN0aW9uVmlzaWJpbGl0eUNoYW5nZWQodGhpcywgdGhpcy52aXNpYmxlKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFNob3dzIHRoZSByYW5nZSBmcm9tIDEgdG8gcGFuZWxDb3VudCB3aGVuIHJlbmRlck1vZGUgZG9lc24ndCBlcXVhbCB0byBcImxpc3RcIi4gU2V0IHRvIGZhbHNlIHRvIGhpZGUgdGhpcyBlbGVtZW50LlxuICAgKiBAc2VlIHBhbmVsQ291bnRcbiAgICogQHNlZSByZW5kZXJNb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3dSYW5nZUluUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInNob3dSYW5nZUluUHJvZ3Jlc3NcIiwgdHJ1ZSk7XG4gIH1cbiAgcHVibGljIHNldCBzaG93UmFuZ2VJblByb2dyZXNzKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dSYW5nZUluUHJvZ3Jlc3NcIiwgdmFsKTtcbiAgICB0aGlzLmZpcmVDYWxsYmFjayh0aGlzLmN1cnJlbnRJbmRleENoYW5nZWRDYWxsYmFjayk7XG4gIH1cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgdGhlIHByb3BlcnR5IGVxdWFscyB0byBcImxpc3RcIiBhbmQgYWxsIGR5bmFtaWMgcGFuZWxzIGFyZSByZW5kZXJlZCBvbmUgYnkgb25lIG9uIHRoZSBwYWdlLiBZb3UgbWF5IGNoYW5nZSBpdCB0bzogXCJwcm9ncmVzc1RvcFwiLCBcInByb2dyZXNzQm90dG9tXCIgb3IgXCJwcm9ncmVzc1RvcEJvdHRvbVwiIHRvIHJlbmRlciBvbmx5IG9uZSBkeW5hbWljIHBhbmVsIGF0IG9uY2UuIFRoZSBwcm9ncmVzcyBhbmQgbmF2aWdhdGlvbiBlbGVtZW50cyBjYW4gYmUgcmVuZHJlZCBvbiB0b3AsIGJvdHRvbSBvciBib3RoLlxuICAgKi9cbiAgcHVibGljIGdldCByZW5kZXJNb2RlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcInJlbmRlck1vZGVcIik7XG4gIH1cbiAgcHVibGljIHNldCByZW5kZXJNb2RlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicmVuZGVyTW9kZVwiLCB2YWwpO1xuICAgIHRoaXMuZmlyZUNhbGxiYWNrKHRoaXMucmVuZGVyTW9kZUNoYW5nZWRDYWxsYmFjayk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSB3aGVuIHJlbmRlck1vZGUgZXF1YWxzIHRvIFwibGlzdFwiLlxuICAgKiBAc2VlIHJlbmRlck1vZGVcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNSZW5kZXJNb2RlTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJNb2RlID09IFwibGlzdFwiO1xuICB9XG4gIHB1YmxpYyBzZXRWaXNpYmxlSW5kZXgodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLmlzVmlzaWJsZSkgcmV0dXJuIDA7XG4gICAgdmFyIHN0YXJ0SW5kZXggPSB0aGlzLnNob3dRdWVzdGlvbk51bWJlcnMgPT0gXCJvblN1cnZleVwiID8gdmFsdWUgOiAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjb3VudGVyID0gdGhpcy5zZXRQYW5lbFZpc2libGVJbmRleChcbiAgICAgICAgdGhpcy5wYW5lbHNbaV0sXG4gICAgICAgIHN0YXJ0SW5kZXgsXG4gICAgICAgIHRoaXMuc2hvd1F1ZXN0aW9uTnVtYmVycyAhPSBcIm9mZlwiXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuc2hvd1F1ZXN0aW9uTnVtYmVycyA9PSBcIm9uU3VydmV5XCIpIHtcbiAgICAgICAgc3RhcnRJbmRleCArPSBjb3VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBzdXBlci5zZXRWaXNpYmxlSW5kZXgodGhpcy5zaG93UXVlc3Rpb25OdW1iZXJzICE9IFwib25TdXJ2ZXlcIiA/IHZhbHVlIDogLTEpO1xuICAgIHJldHVybiB0aGlzLnNob3dRdWVzdGlvbk51bWJlcnMgIT0gXCJvblN1cnZleVwiID8gMSA6IHN0YXJ0SW5kZXggLSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIHNldFBhbmVsVmlzaWJsZUluZGV4KFxuICAgIHBhbmVsOiBQYW5lbE1vZGVsLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgc2hvd0luZGV4OiBib29sZWFuXG4gICk6IG51bWJlciB7XG4gICAgaWYgKCFzaG93SW5kZXgpIHtcbiAgICAgIHBhbmVsLnNldFZpc2libGVJbmRleCgtMSk7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHBhbmVsLnNldFZpc2libGVJbmRleChpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHdoZW4gYW4gZW5kIHVzZXIgbWF5IGFkZCBhIG5ldyBwYW5lbC4gVGhlIHF1ZXN0aW9uIGlzIG5vdCByZWFkIG9ubHkgYW5kIHBhbmVsQ291bnQgbGVzcyB0aGFuIG1heFBhbmVsQ291bnRcbiAgICogQHNlZSBpc1JlYWRPbmx5XG4gICAqIEBzZWUgcGFuZWxDb3VudFxuICAgKiBAc2VlIG1heFBhbmVsQ291bnRcbiAgICovXG4gIHB1YmxpYyBnZXQgY2FuQWRkUGFuZWwoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuc3VydmV5ICYmIHRoaXMuc3VydmV5LmlzRGVzaWduTW9kZSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmFsbG93QWRkUGFuZWwgJiZcbiAgICAgICF0aGlzLmlzUmVhZE9ubHkgJiZcbiAgICAgIHRoaXMucGFuZWxDb3VudCA8IHRoaXMubWF4UGFuZWxDb3VudFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSB3aGVuIGFuIGVuZCB1c2VyIG1heSByZW1vdmUgYSBwYW5lbC4gVGhlIHF1ZXN0aW9uIGlzIG5vdCByZWFkIG9ubHkgYW5kIHBhbmVsQ291bnQgaXMgbW9yZSB0aGFuIG1pblBhbmVsQ291bnRcbiAgICogQHNlZSBpc1JlYWRPbmx5XG4gICAqIEBzZWUgcGFuZWxDb3VudFxuICAgKiBAc2VlIG1pblBhbmVsQ291bnRcbiAgICovXG4gIHB1YmxpYyBnZXQgY2FuUmVtb3ZlUGFuZWwoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuc3VydmV5ICYmIHRoaXMuc3VydmV5LmlzRGVzaWduTW9kZSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmFsbG93UmVtb3ZlUGFuZWwgJiZcbiAgICAgICF0aGlzLmlzUmVhZE9ubHkgJiZcbiAgICAgIHRoaXMucGFuZWxDb3VudCA+IHRoaXMubWluUGFuZWxDb3VudFxuICAgICk7XG4gIH1cbiAgcHJvdGVjdGVkIHJlYnVpbGRQYW5lbHMoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nRnJvbUpzb24pIHJldHVybjtcbiAgICB0aGlzLnByZXBhcmVWYWx1ZUZvclBhbmVsQ3JlYXRpbmcoKTtcbiAgICB2YXIgcGFuZWxzID0gW107XG4gICAgaWYgKHRoaXMuaXNEZXNpZ25Nb2RlKSB7XG4gICAgICBuZXcgUXVlc3Rpb25QYW5lbER5bmFtaWNJdGVtKHRoaXMsIHRoaXMudGVtcGxhdGUpO1xuICAgICAgcGFuZWxzLnB1c2godGhpcy50ZW1wbGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbENvdW50OyBpKyspIHtcbiAgICAgICAgcGFuZWxzLnB1c2godGhpcy5jcmVhdGVOZXdQYW5lbCgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wYW5lbHMuc3BsaWNlKDAsIHRoaXMucGFuZWxzLmxlbmd0aCwgLi4ucGFuZWxzKTtcbiAgICB0aGlzLnNldFZhbHVlQWZ0ZXJQYW5lbHNDcmVhdGluZygpO1xuICAgIHRoaXMuc2V0UGFuZWxzU3RhdGUoKTtcbiAgICB0aGlzLnJlUnVuQ29uZGl0aW9uKCk7XG4gICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5wYW5lbENvdW50Q2hhbmdlZENhbGxiYWNrKTtcbiAgfVxuICAvKipcbiAgICogSWYgaXQgaXMgbm90IGVtcHR5LCB0aGVuIHRoaXMgdmFsdWUgaXMgc2V0IHRvIGV2ZXJ5IG5ldyBwYW5lbCwgaW5jbHVkaW5nIHBhbmVscyBjcmVhdGVkIGluaXRpYWxseSwgdW5sZXNzIHRoZSBkZWZhdWx0VmFsdWUgaXMgbm90IGVtcHR5XG4gICAqIEBzZWUgZGVmYXVsdFZhbHVlXG4gICAqIEBzZWUgZGVmYXVsdFZhbHVlRnJvbUxhc3RSb3dcbiAgICovXG4gIHB1YmxpYyBnZXQgZGVmYXVsdFBhbmVsVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwiZGVmYXVsdFBhbmVsVmFsdWVcIik7XG4gIH1cbiAgcHVibGljIHNldCBkZWZhdWx0UGFuZWxWYWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcImRlZmF1bHRQYW5lbFZhbHVlXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBpdCB0byB0cnVlIHRvIGNvcHkgdGhlIHZhbHVlIGludG8gbmV3IGFkZGVkIHBhbmVsIGZyb20gdGhlIGxhc3QgcGFuZWwuIElmIGRlZmF1bHRQYW5lbFZhbHVlIGlzIHNldCBhbmQgdGhpcyBwcm9wZXJ0eSBlcXVhbHMgdG8gdHJ1ZSxcbiAgICogdGhlbiB0aGUgdmFsdWUgZm9yIG5ldyBhZGRlZCBwYW5lbCBpcyBtZXJnaW5nLlxuICAgKiBAc2VlIGRlZmF1bHRWYWx1ZVxuICAgKiBAc2VlIGRlZmF1bHRQYW5lbFZhbHVlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRlZmF1bHRWYWx1ZUZyb21MYXN0UGFuZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImRlZmF1bHRWYWx1ZUZyb21MYXN0UGFuZWxcIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVmYXVsdFZhbHVlRnJvbUxhc3RQYW5lbCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJkZWZhdWx0VmFsdWVGcm9tTGFzdFBhbmVsXCIsIHZhbCk7XG4gIH1cbiAgcHJvdGVjdGVkIGlzRGVmYXVsdFZhbHVlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHN1cGVyLmlzRGVmYXVsdFZhbHVlRW1wdHkoKSAmJiB0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmRlZmF1bHRQYW5lbFZhbHVlKVxuICAgICk7XG4gIH1cbiAgcHJvdGVjdGVkIHNldERlZmF1bHRWYWx1ZSgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmlzVmFsdWVFbXB0eSh0aGlzLmRlZmF1bHRQYW5lbFZhbHVlKSB8fFxuICAgICAgIXRoaXMuaXNWYWx1ZUVtcHR5KHRoaXMuZGVmYXVsdFZhbHVlKVxuICAgICkge1xuICAgICAgc3VwZXIuc2V0RGVmYXVsdFZhbHVlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0VtcHR5KCkgfHwgdGhpcy5wYW5lbENvdW50ID09IDApIHJldHVybjtcbiAgICB2YXIgbmV3VmFsdWUgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFuZWxDb3VudDsgaSsrKSB7XG4gICAgICBuZXdWYWx1ZS5wdXNoKHRoaXMuZGVmYXVsdFBhbmVsVmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gIH1cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgdmFyIHZhbCA9IHRoaXMudmFsdWU7XG4gICAgaWYgKCF2YWwgfHwgIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIHRydWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghdGhpcy5pc1Jvd0VtcHR5KHZhbFtpXSkpIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHJpdmF0ZSBpc1Jvd0VtcHR5KHZhbDogYW55KSB7XG4gICAgZm9yICh2YXIgcHJvcCBpbiB2YWwpIHtcbiAgICAgIGlmICh2YWwuaGFzT3duUHJvcGVydHkocHJvcCkpIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IGR5bmFtaWMgcGFuZWwgYmFzZWQgb24gdGhlIHRlbXBsYXRlIFBhbmVsLiBJdCBjaGVja3MgaWYgY2FuQWRkUGFuZWwgcmV0dXJucyB0cnVlIGFuZCB0aGVuIGNhbGxzIGFkZFBhbmVsIG1ldGhvZC5cbiAgICogQHNlZSB0ZW1wbGF0ZVxuICAgKiBAc2VlIHBhbmVsQ291bnRcbiAgICogQHNlZSBwYW5lbHNcbiAgICogQHNlZSBjYW5BZGRQYW5lbFxuICAgKi9cbiAgcHVibGljIGFkZFBhbmVsVUkoKTogUGFuZWxNb2RlbCB7XG4gICAgaWYgKCF0aGlzLmNhbkFkZFBhbmVsKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgbmV3UGFuZWwgPSB0aGlzLmFkZFBhbmVsKCk7XG4gICAgaWYgKHRoaXMucmVuZGVyTW9kZSA9PT0gXCJsaXN0XCIgJiYgdGhpcy5wYW5lbHNTdGF0ZSAhPT0gXCJkZWZhdWx0XCIpIHtcbiAgICAgIG5ld1BhbmVsLmV4cGFuZCgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3UGFuZWw7XG4gIH1cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBkeW5hbWljIHBhbmVsIGJhc2VkIG9uIHRoZSB0ZW1wbGF0ZSBQYW5lbC5cbiAgICogQHNlZSB0ZW1wbGF0ZVxuICAgKiBAc2VlIHBhbmVsQ291bnRcbiAgICogQHNlZSBwYW5lbHNcbiAgICovXG4gIHB1YmxpYyBhZGRQYW5lbCgpOiBQYW5lbE1vZGVsIHtcbiAgICB0aGlzLnBhbmVsQ291bnQrKztcbiAgICBpZiAoIXRoaXMuaXNSZW5kZXJNb2RlTGlzdCkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSB0aGlzLnBhbmVsQ291bnQgLSAxO1xuICAgIH1cbiAgICB2YXIgbmV3VmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIHZhciBoYXNNb2RpZmllZCA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5pc1ZhbHVlRW1wdHkodGhpcy5kZWZhdWx0UGFuZWxWYWx1ZSkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgISFuZXdWYWx1ZSAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSAmJlxuICAgICAgICBuZXdWYWx1ZS5sZW5ndGggPT0gdGhpcy5wYW5lbENvdW50XG4gICAgICApIHtcbiAgICAgICAgaGFzTW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvcHlWYWx1ZShuZXdWYWx1ZVtuZXdWYWx1ZS5sZW5ndGggLSAxXSwgdGhpcy5kZWZhdWx0UGFuZWxWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuZGVmYXVsdFZhbHVlRnJvbUxhc3RQYW5lbCAmJlxuICAgICAgISFuZXdWYWx1ZSAmJlxuICAgICAgQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgJiZcbiAgICAgIG5ld1ZhbHVlLmxlbmd0aCA+IDEgJiZcbiAgICAgIG5ld1ZhbHVlLmxlbmd0aCA9PSB0aGlzLnBhbmVsQ291bnRcbiAgICApIHtcbiAgICAgIGhhc01vZGlmaWVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29weVZhbHVlKFxuICAgICAgICBuZXdWYWx1ZVtuZXdWYWx1ZS5sZW5ndGggLSAxXSxcbiAgICAgICAgbmV3VmFsdWVbbmV3VmFsdWUubGVuZ3RoIC0gMl1cbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChoYXNNb2RpZmllZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdXJ2ZXkpIHRoaXMuc3VydmV5LmR5bmFtaWNQYW5lbEFkZGVkKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnBhbmVsc1t0aGlzLnBhbmVsQ291bnQgLSAxXTtcbiAgfVxuICBwcml2YXRlIGNvcHlWYWx1ZShzcmM6IGFueSwgZGVzdDogYW55KSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRlc3QpIHtcbiAgICAgIHNyY1trZXldID0gZGVzdFtrZXldO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQ2FsbCByZW1vdmVQYW5lbCBmdW5jdGlvbi4gRG8gbm90aGluZyBpcyBjYW5SZW1vdmVQYW5lbCByZXR1cm5zIGZhbHNlLiBJZiBjb25maXJtRGVsZXRlIHNldCB0byB0cnVlLCBpdCBzaG93cyB0aGUgY29uZmlybWF0aW9uIGRpYWxvZyBmaXJzdC5cbiAgICogQHBhcmFtIHZhbHVlIGEgcGFuZWwgb3IgcGFuZWwgaW5kZXhcbiAgICogQHNlZSByZW1vdmVQYW5lbFxuICAgKiBAc2VlIGNvbmZpcm1EZWxldGVcbiAgICogQHNlZSBjb25maXJtRGVsZXRlVGV4dFxuICAgKiBAc2VlIGNhblJlbW92ZVBhbmVsXG4gICAqXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlUGFuZWxVSSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLmNhblJlbW92ZVBhbmVsKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmNvbmZpcm1EZWxldGUgfHwgY29uZmlybSh0aGlzLmNvbmZpcm1EZWxldGVUZXh0KSkge1xuICAgICAgdGhpcy5yZW1vdmVQYW5lbCh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBHb2VzIHRvIHRoZSBuZXh0IHBhbmVsIGluIHRoZSBQYW5lbER5bmFtaWNcbiAgICpcbiAgICovXG4gIHB1YmxpYyBnb1RvTmV4dFBhbmVsKCkge1xuICAgIGlmICh0aGlzLnJlbmRlck1vZGUgIT09IFwibGlzdFwiICYmIHRoaXMuY3VycmVudFBhbmVsLmhhc0Vycm9ycygpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50SW5kZXgrKztcbiAgfVxuICAvKipcbiAgICogR29lcyB0byB0aGUgcHJldmlvdXMgcGFuZWwgaW4gdGhlIFBhbmVsRHluYW1pY1xuICAgKlxuICAgKi9cbiAgcHVibGljIGdvVG9QcmV2UGFuZWwoKSB7XG4gICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlcyBhIGR5bmFtaWMgcGFuZWwgZnJvbSB0aGUgcGFuZWxzIGFycmF5LlxuICAgKiBAcGFyYW0gdmFsdWUgYSBwYW5lbCBvciBwYW5lbCBpbmRleFxuICAgKiBAc2VlIHBhbmVsc1xuICAgKiBAc2VlIHRlbXBsYXRlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlUGFuZWwodmFsdWU6IGFueSkge1xuICAgIHZhciBpbmRleCA9IHRoaXMuZ2V0UGFuZWxJbmRleCh2YWx1ZSk7XG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhbmVsQ291bnQpIHJldHVybjtcbiAgICB0aGlzLnBhbmVscy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgaWYgKCF2YWx1ZSB8fCAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgaW5kZXggPj0gdmFsdWUubGVuZ3RoKSByZXR1cm47XG4gICAgdmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5wYW5lbENvdW50Q2hhbmdlZENhbGxiYWNrKTtcbiAgICBpZiAodGhpcy5zdXJ2ZXkpIHRoaXMuc3VydmV5LmR5bmFtaWNQYW5lbFJlbW92ZWQodGhpcywgaW5kZXgpO1xuICB9XG4gIHByaXZhdGUgZ2V0UGFuZWxJbmRleCh2YWw6IGFueSk6IG51bWJlciB7XG4gICAgaWYgKEhlbHBlcnMuaXNOdW1iZXIodmFsKSkgcmV0dXJuIHZhbDtcbiAgICB2YXIgaXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLnBhbmVsc1tpXSA9PT0gdmFsIHx8IGl0ZW1zW2ldID09PSB2YWwpIHJldHVybiBpO1xuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgcHVibGljIGxvY1N0cnNDaGFuZ2VkKCkge1xuICAgIHN1cGVyLmxvY1N0cnNDaGFuZ2VkKCk7XG4gICAgdmFyIHBhbmVscyA9IHRoaXMucGFuZWxzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFuZWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBwYW5lbHNbaV0ubG9jU3Ryc0NoYW5nZWQoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGNsZWFySW5jb3JyZWN0VmFsdWVzKCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuY2xlYXJJbmNvcnJlY3RWYWx1ZXNJblBhbmVsKGkpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgY2xlYXJFcnJvcnMoKSB7XG4gICAgc3VwZXIuY2xlYXJFcnJvcnMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFuZWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnBhbmVsc1tpXS5jbGVhckVycm9ycygpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0UXVlc3Rpb25Gcm9tQXJyYXkobmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogSVF1ZXN0aW9uIHtcbiAgICBpZiAoaW5kZXggPj0gdGhpcy5wYW5lbENvdW50KSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5wYW5lbHNbaW5kZXhdLmdldFF1ZXN0aW9uQnlOYW1lKG5hbWUpO1xuICB9XG4gIHByaXZhdGUgY2xlYXJJbmNvcnJlY3RWYWx1ZXNJblBhbmVsKGluZGV4OiBudW1iZXIpIHtcbiAgICB2YXIgcGFuZWwgPSB0aGlzLnBhbmVsc1tpbmRleF07XG4gICAgcGFuZWwuY2xlYXJJbmNvcnJlY3RWYWx1ZXMoKTtcbiAgICB2YXIgdmFsID0gdGhpcy52YWx1ZTtcbiAgICB2YXIgdmFsdWVzID0gISF2YWwgJiYgaW5kZXggPCB2YWwubGVuZ3RoID8gdmFsW2luZGV4XSA6IG51bGw7XG4gICAgaWYgKCF2YWx1ZXMpIHJldHVybjtcbiAgICB2YXIgaXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgZm9yICh2YXIga2V5IGluIHZhbHVlcykge1xuICAgICAgaWYgKFxuICAgICAgICAhcGFuZWwuZ2V0UXVlc3Rpb25CeU5hbWUoa2V5KSAmJlxuICAgICAgICAhdGhpcy5nZXRTaGFyZWRRdWVzdGlvbkZyb21BcnJheShrZXksIGluZGV4KVxuICAgICAgKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZXNba2V5XTtcbiAgICAgICAgaXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzQ2hhbmdlZCkge1xuICAgICAgdmFsW2luZGV4XSA9IHZhbHVlcztcbiAgICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXRTaGFyZWRRdWVzdGlvbkZyb21BcnJheShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgcGFuZWxJbmRleDogbnVtYmVyXG4gICk6IFF1ZXN0aW9uIHtcbiAgICByZXR1cm4gISF0aGlzLnN1cnZleSAmJiAhIXRoaXMudmFsdWVOYW1lXG4gICAgICA/IDxRdWVzdGlvbj4oXG4gICAgICAgICAgdGhpcy5zdXJ2ZXkuZ2V0UXVlc3Rpb25CeVZhbHVlTmFtZUZyb21BcnJheShcbiAgICAgICAgICAgIHRoaXMudmFsdWVOYW1lLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHBhbmVsSW5kZXhcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIDogbnVsbDtcbiAgfVxuICBwdWJsaWMgYWRkQ29uZGl0aW9uTmFtZXMobmFtZXM6IEFycmF5PHN0cmluZz4pIHtcbiAgICB2YXIgcHJlZml4ID0gdGhpcy5uYW1lICsgXCJbMF0uXCI7XG4gICAgdmFyIHBhbmVsTmFtZXM6IEFycmF5PGFueT4gPSBbXTtcbiAgICB2YXIgcXVlc3Rpb25zID0gdGhpcy50ZW1wbGF0ZS5xdWVzdGlvbnM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHF1ZXN0aW9uc1tpXS5hZGRDb25kaXRpb25OYW1lcyhwYW5lbE5hbWVzKTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5lbE5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBuYW1lcy5wdXNoKHByZWZpeCArIHBhbmVsTmFtZXNbaV0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgYWRkQ29uZGl0aW9uT2JqZWN0c0J5Q29udGV4dChcbiAgICBvYmplY3RzOiBBcnJheTxJQ29uZGl0aW9uT2JqZWN0PixcbiAgICBjb250ZXh0OiBhbnlcbiAgKSB7XG4gICAgdmFyIGhhc0NvbnRleHQgPSAhIWNvbnRleHRcbiAgICAgID8gdGhpcy50ZW1wbGF0ZS5xdWVzdGlvbnMuaW5kZXhPZihjb250ZXh0KSA+IC0xXG4gICAgICA6IGZhbHNlO1xuICAgIHZhciBwcmVmaXhOYW1lID0gdGhpcy5uYW1lICsgXCJbMF0uXCI7XG4gICAgdmFyIHByZWZpeFRleHQgPSB0aGlzLnByb2Nlc3NlZFRpdGxlICsgXCJbMF0uXCI7XG4gICAgdmFyIHBhbmVsT2JqcyA9IG5ldyBBcnJheTxJQ29uZGl0aW9uT2JqZWN0PigpO1xuICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLnRlbXBsYXRlLnF1ZXN0aW9ucztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgcXVlc3Rpb25zW2ldLmFkZENvbmRpdGlvbk9iamVjdHNCeUNvbnRleHQocGFuZWxPYmpzLCBjb250ZXh0KTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5lbE9ianMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG9iamVjdHMucHVzaCh7XG4gICAgICAgIG5hbWU6IHByZWZpeE5hbWUgKyBwYW5lbE9ianNbaV0ubmFtZSxcbiAgICAgICAgdGV4dDogcHJlZml4VGV4dCArIHBhbmVsT2Jqc1tpXS50ZXh0LFxuICAgICAgICBxdWVzdGlvbjogcGFuZWxPYmpzW2ldLnF1ZXN0aW9uXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGhhc0NvbnRleHQpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFuZWxPYmpzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChwYW5lbE9ianNbaV0ucXVlc3Rpb24gPT0gY29udGV4dCkgY29udGludWU7XG4gICAgICAgIG9iamVjdHMucHVzaCh7XG4gICAgICAgICAgbmFtZTogXCJwYW5lbC5cIiArIHBhbmVsT2Jqc1tpXS5uYW1lLFxuICAgICAgICAgIHRleHQ6IFwicGFuZWwuXCIgKyBwYW5lbE9ianNbaV0udGV4dCxcbiAgICAgICAgICBxdWVzdGlvbjogcGFuZWxPYmpzW2ldLnF1ZXN0aW9uXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0Q29uZGl0aW9uSnNvbihvcGVyYXRvcjogc3RyaW5nID0gbnVsbCwgcGF0aDogc3RyaW5nID0gbnVsbCk6IGFueSB7XG4gICAgaWYgKCFwYXRoKSByZXR1cm4gc3VwZXIuZ2V0Q29uZGl0aW9uSnNvbihvcGVyYXRvciwgcGF0aCk7XG4gICAgdmFyIHF1ZXN0aW9uTmFtZSA9IHBhdGg7XG4gICAgdmFyIHBvcyA9IHBhdGguaW5kZXhPZihcIi5cIik7XG4gICAgaWYgKHBvcyA+IC0xKSB7XG4gICAgICBxdWVzdGlvbk5hbWUgPSBwYXRoLnN1YnN0cigwLCBwb3MpO1xuICAgICAgcGF0aCA9IHBhdGguc3Vic3RyKHBvcyArIDEpO1xuICAgIH1cbiAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLnRlbXBsYXRlLmdldFF1ZXN0aW9uQnlOYW1lKHF1ZXN0aW9uTmFtZSk7XG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHF1ZXN0aW9uLmdldENvbmRpdGlvbkpzb24ob3BlcmF0b3IsIHBhdGgpO1xuICB9XG4gIHByb3RlY3RlZCBvblJlYWRPbmx5Q2hhbmdlZCgpIHtcbiAgICB2YXIgcmVhZE9ubHkgPSB0aGlzLmlzUmVhZE9ubHk7XG4gICAgdGhpcy50ZW1wbGF0ZS5yZWFkT25seSA9IHJlYWRPbmx5O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMucGFuZWxzW2ldLnJlYWRPbmx5ID0gcmVhZE9ubHk7XG4gICAgfVxuICAgIHN1cGVyLm9uUmVhZE9ubHlDaGFuZ2VkKCk7XG4gIH1cbiAgcHVibGljIG9uU3VydmV5TG9hZCgpIHtcbiAgICB0aGlzLnRlbXBsYXRlLnJlYWRPbmx5ID0gdGhpcy5pc1JlYWRPbmx5O1xuICAgIHRoaXMudGVtcGxhdGUub25TdXJ2ZXlMb2FkKCk7XG4gICAgaWYgKHRoaXMubG9hZGluZ1BhbmVsQ291bnQgPiAwKSB7XG4gICAgICB0aGlzLnBhbmVsQ291bnQgPSB0aGlzLmxvYWRpbmdQYW5lbENvdW50O1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0Rlc2lnbk1vZGUpIHtcbiAgICAgIHRoaXMucmVidWlsZFBhbmVscygpO1xuICAgIH1cbiAgICB0aGlzLnNldFBhbmVsc1N1cnZleUltcGwoKTtcbiAgICB0aGlzLnNldFBhbmVsc1N0YXRlKCk7XG4gICAgdGhpcy5hc3NpZ25PblByb3BlcnR5Q2hhbmdlZFRvVGVtcGxhdGUoKTtcbiAgICBzdXBlci5vblN1cnZleUxvYWQoKTtcbiAgfVxuICBwdWJsaWMgb25GaXJzdFJlbmRlcmluZygpIHtcbiAgICB0aGlzLnRlbXBsYXRlLm9uRmlyc3RSZW5kZXJpbmcoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFuZWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnBhbmVsc1tpXS5vbkZpcnN0UmVuZGVyaW5nKCk7XG4gICAgfVxuICAgIHN1cGVyLm9uRmlyc3RSZW5kZXJpbmcoKTtcbiAgfVxuICBwdWJsaWMgcnVuQ29uZGl0aW9uKHZhbHVlczogSGFzaFRhYmxlPGFueT4sIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+KSB7XG4gICAgc3VwZXIucnVuQ29uZGl0aW9uKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgdGhpcy5ydW5QYW5lbHNDb25kaXRpb24odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICBwcml2YXRlIHJlUnVuQ29uZGl0aW9uKCkge1xuICAgIGlmICghdGhpcy5kYXRhKSByZXR1cm47XG4gICAgdGhpcy5ydW5Db25kaXRpb24oXG4gICAgICB0aGlzLmdldERhdGFGaWx0ZXJlZFZhbHVlcygpLFxuICAgICAgdGhpcy5nZXREYXRhRmlsdGVyZWRQcm9wZXJ0aWVzKClcbiAgICApO1xuICB9XG4gIHByb3RlY3RlZCBydW5QYW5lbHNDb25kaXRpb24oXG4gICAgdmFsdWVzOiBIYXNoVGFibGU8YW55PixcbiAgICBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55PlxuICApIHtcbiAgICB2YXIgY2FjaGVkVmFsdWVzOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBpZiAodmFsdWVzICYmIHZhbHVlcyBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgY2FjaGVkVmFsdWVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2YWx1ZXMpKTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHBhbmVsVmFsdWVzID0gdGhpcy5nZXRQYW5lbEl0ZW1EYXRhKHRoaXMucGFuZWxzW2ldLmRhdGEpO1xuICAgICAgLy9TaG91bGQgYmUgdW5pcXVlIGZvciBldmVyeSBwYW5lbCBkdWUgYXN5bmMgZXhwcmVzc2lvbiBzdXBwb3J0XG4gICAgICB2YXIgbmV3VmFsdWVzID0gSGVscGVycy5jcmVhdGVDb3B5KGNhY2hlZFZhbHVlcyk7XG4gICAgICBuZXdWYWx1ZXNbXG4gICAgICAgIFF1ZXN0aW9uUGFuZWxEeW5hbWljSXRlbS5JdGVtVmFyaWFibGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgIF0gPSBwYW5lbFZhbHVlcztcbiAgICAgIG5ld1ZhbHVlc1tRdWVzdGlvblBhbmVsRHluYW1pY0l0ZW0uSW5kZXhWYXJpYWJsZU5hbWUudG9Mb3dlckNhc2UoKV0gPSBpO1xuICAgICAgdGhpcy5wYW5lbHNbaV0ucnVuQ29uZGl0aW9uKG5ld1ZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgfVxuICB9XG4gIG9uQW55VmFsdWVDaGFuZ2VkKG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyLm9uQW55VmFsdWVDaGFuZ2VkKG5hbWUpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMucGFuZWxzW2ldLm9uQW55VmFsdWVDaGFuZ2VkKG5hbWUpO1xuICAgICAgdGhpcy5wYW5lbHNbaV0ub25BbnlWYWx1ZUNoYW5nZWQoXG4gICAgICAgIFF1ZXN0aW9uUGFuZWxEeW5hbWljSXRlbS5JdGVtVmFyaWFibGVOYW1lXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGhhc0tleXNEdXBsaWNhdGVkKGZpcmVDYWxsYmFjazogYm9vbGVhbiwgcmVjOiBhbnkgPSBudWxsKSB7XG4gICAgdmFyIGtleVZhbHVlczogQXJyYXk8YW55PiA9IFtdO1xuICAgIHZhciByZXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzID1cbiAgICAgICAgdGhpcy5pc1ZhbHVlRHVwbGljYXRlZCh0aGlzLnBhbmVsc1tpXSwga2V5VmFsdWVzLCByZWMsIGZpcmVDYWxsYmFjaykgfHxcbiAgICAgICAgcmVzO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgdXBkYXRlUGFuZWxzQ29udGFpbnNFcnJvcnMoKSB7XG4gICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5jaGFuZ2luZ1ZhbHVlUXVlc3Rpb247XG4gICAgdmFyIHBhcmVudCA9IDxQYW5lbD5xdWVzdGlvbi5wYXJlbnQ7XG4gICAgd2hpbGUgKCEhcGFyZW50KSB7XG4gICAgICBwYXJlbnQudXBkYXRlQ29udGFpbnNFcnJvcnMoKTtcbiAgICAgIHBhcmVudCA9IDxQYW5lbD5wYXJlbnQucGFyZW50O1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUNvbnRhaW5zRXJyb3JzKCk7XG4gIH1cbiAgcHVibGljIGhhc0Vycm9ycyhmaXJlQ2FsbGJhY2s6IGJvb2xlYW4gPSB0cnVlLCByZWM6IGFueSA9IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc1ZhbHVlQ2hhbmdpbmdJbnRlcm5hbGx5KSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHJlcyA9IGZhbHNlO1xuICAgIGlmICghIXRoaXMuY2hhbmdpbmdWYWx1ZVF1ZXN0aW9uKSB7XG4gICAgICB2YXIgcmVzID0gdGhpcy5jaGFuZ2luZ1ZhbHVlUXVlc3Rpb24uaGFzRXJyb3JzKGZpcmVDYWxsYmFjaywgcmVjKTtcbiAgICAgIHJlcyA9IHRoaXMuaGFzS2V5c0R1cGxpY2F0ZWQoZmlyZUNhbGxiYWNrLCByZWMpIHx8IHJlcztcbiAgICAgIHRoaXMudXBkYXRlUGFuZWxzQ29udGFpbnNFcnJvcnMoKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBlcnJvc0luUGFuZWxzID0gdGhpcy5oYXNFcnJvckluUGFuZWxzKGZpcmVDYWxsYmFjaywgcmVjKTtcbiAgICAgIHJldHVybiBzdXBlci5oYXNFcnJvcnMoZmlyZUNhbGxiYWNrKSB8fCBlcnJvc0luUGFuZWxzO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29udGFpbnNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgdmFyIHJlcyA9IHN1cGVyLmdldENvbnRhaW5zRXJyb3JzKCk7XG4gICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICB2YXIgcGFuZWxzID0gdGhpcy5wYW5lbHM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwYW5lbHNbaV0uY29udGFpbnNFcnJvcnMpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHJvdGVjdGVkIGdldElzQW5zd2VyZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdXBlci5nZXRJc0Fuc3dlcmVkKCkpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgcGFuZWxzID0gdGhpcy5wYW5lbHM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB2aXNpYmxlUXVlc3Rpb25zID0gPEFycmF5PGFueT4+W107XG4gICAgICBwYW5lbHNbaV0uYWRkUXVlc3Rpb25zVG9MaXN0KHZpc2libGVRdWVzdGlvbnMsIHRydWUpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2aXNpYmxlUXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmICghdmlzaWJsZVF1ZXN0aW9uc1tqXS5pc0Fuc3dlcmVkKSByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHB1YmxpYyBjbGVhclZhbHVlSWZJbnZpc2libGUoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMucGFuZWxzW2ldLnF1ZXN0aW9ucztcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHF1ZXN0aW9uc1tqXS5jbGVhclZhbHVlSWZJbnZpc2libGUoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc3VwZXIuY2xlYXJWYWx1ZUlmSW52aXNpYmxlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldElzUnVubmluZ1ZhbGlkYXRvcnMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHN1cGVyLmdldElzUnVubmluZ1ZhbGlkYXRvcnMoKSkgcmV0dXJuIHRydWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHF1ZXN0aW9ucyA9IHRoaXMucGFuZWxzW2ldLnF1ZXN0aW9ucztcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmIChxdWVzdGlvbnNbal0uaXNSdW5uaW5nVmFsaWRhdG9ycykgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwdWJsaWMgZ2V0QWxsRXJyb3JzKCk6IEFycmF5PFN1cnZleUVycm9yPiB7XG4gICAgdmFyIHJlc3VsdCA9IHN1cGVyLmdldEFsbEVycm9ycygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxdWVzdGlvbnMgPSB0aGlzLnBhbmVsc1tpXS5xdWVzdGlvbnM7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHF1ZXN0aW9ucy5sZW5ndGg7IGorKykge1xuICAgICAgICB2YXIgZXJyb3JzID0gcXVlc3Rpb25zW2pdLmdldEFsbEVycm9ycygpO1xuICAgICAgICBpZiAoZXJyb3JzICYmIGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChlcnJvcnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHJvdGVjdGVkIGdldERpc3BsYXlWYWx1ZUNvcmUoa2V5c0FzVGV4dDogYm9vbGVhbiwgdmFsdWU6IGFueSk6IGFueSB7XG4gICAgdmFyIHZhbHVlcyA9IHRoaXMuY3JlYXRlVmFsdWVDb3B5KCk7XG4gICAgaWYgKCF2YWx1ZXMgfHwgIUFycmF5LmlzQXJyYXkodmFsdWVzKSkgcmV0dXJuIHZhbHVlcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFuZWxzLmxlbmd0aCAmJiBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdmFsID0gdmFsdWVzW2ldO1xuICAgICAgaWYgKCF2YWwpIGNvbnRpbnVlO1xuICAgICAgdmFsdWVzW2ldID0gdGhpcy5nZXRQYW5lbERpc3BsYXlWYWx1ZShpLCB2YWwsIGtleXNBc1RleHQpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYW5lbERpc3BsYXlWYWx1ZShcbiAgICBwYW5lbEluZGV4OiBudW1iZXIsXG4gICAgdmFsOiBhbnksXG4gICAga2V5c0FzVGV4dDogYm9vbGVhblxuICApOiBhbnkge1xuICAgIGlmICghdmFsKSByZXR1cm4gdmFsO1xuICAgIHZhciBwYW5lbCA9IHRoaXMucGFuZWxzW3BhbmVsSW5kZXhdO1xuICAgIGZvciAodmFyIGtleSBpbiB2YWwpIHtcbiAgICAgIHZhciBxdWVzdGlvbiA9IHBhbmVsLmdldFF1ZXN0aW9uQnlWYWx1ZU5hbWUoa2V5KTtcbiAgICAgIGlmICghcXVlc3Rpb24pIHtcbiAgICAgICAgcXVlc3Rpb24gPSB0aGlzLmdldFNoYXJlZFF1ZXN0aW9uRnJvbUFycmF5KGtleSwgcGFuZWxJbmRleCk7XG4gICAgICB9XG4gICAgICBpZiAoISFxdWVzdGlvbikge1xuICAgICAgICB2YWxba2V5XSA9IHF1ZXN0aW9uLmdldERpc3BsYXlWYWx1ZShrZXlzQXNUZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICBwcml2YXRlIGhhc0Vycm9ySW5QYW5lbHMoZmlyZUNhbGxiYWNrOiBib29sZWFuLCByZWM6IGFueSk6IGJvb2xlYW4ge1xuICAgIHZhciByZXMgPSBmYWxzZTtcbiAgICB2YXIgcGFuZWxzID0gdGhpcy5wYW5lbHM7XG4gICAgdmFyIGtleVZhbHVlczogQXJyYXk8YW55PiA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFuZWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnNldE9uQ29tcGxldGVBc3luY0luUGFuZWwocGFuZWxzW2ldKTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwbmxFcnJvciA9IHBhbmVsc1tpXS5oYXNFcnJvcnMoXG4gICAgICAgIGZpcmVDYWxsYmFjayxcbiAgICAgICAgISFyZWMgJiYgcmVjLmZvY3VzZU9uRmlyc3RFcnJvcixcbiAgICAgICAgcmVjXG4gICAgICApO1xuICAgICAgcG5sRXJyb3IgPSB0aGlzLmlzVmFsdWVEdXBsaWNhdGVkKHBhbmVsc1tpXSwga2V5VmFsdWVzLCByZWMpIHx8IHBubEVycm9yO1xuICAgICAgaWYgKCF0aGlzLmlzUmVuZGVyTW9kZUxpc3QgJiYgcG5sRXJyb3IgJiYgIXJlcykge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGk7XG4gICAgICB9XG4gICAgICByZXMgPSBwbmxFcnJvciB8fCByZXM7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgcHJpdmF0ZSBzZXRPbkNvbXBsZXRlQXN5bmNJblBhbmVsKHBhbmVsOiBQYW5lbE1vZGVsKSB7XG4gICAgdmFyIHF1ZXN0aW9ucyA9IHBhbmVsLnF1ZXN0aW9ucztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgcXVlc3Rpb25zW2ldLm9uQ29tcGxldGVkQXN5bmNWYWxpZGF0b3JzID0gKGhhc0Vycm9yczogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLnJhaXNlT25Db21wbGV0ZWRBc3luY1ZhbGlkYXRvcnMoKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNWYWx1ZUR1cGxpY2F0ZWQoXG4gICAgcGFuZWw6IFBhbmVsTW9kZWwsXG4gICAga2V5VmFsdWVzOiBBcnJheTxhbnk+LFxuICAgIHJlYzogYW55LFxuICAgIGZpcmVDYWxsYmFjaz86IGJvb2xlYW5cbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmtleU5hbWUpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgcXVlc3Rpb24gPSA8UXVlc3Rpb24+cGFuZWwuZ2V0UXVlc3Rpb25CeVZhbHVlTmFtZSh0aGlzLmtleU5hbWUpO1xuICAgIGlmICghcXVlc3Rpb24gfHwgcXVlc3Rpb24uaXNFbXB0eSgpKSByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHZhbHVlID0gcXVlc3Rpb24udmFsdWU7XG4gICAgaWYgKFxuICAgICAgISF0aGlzLmNoYW5naW5nVmFsdWVRdWVzdGlvbiAmJlxuICAgICAgcXVlc3Rpb24gIT0gdGhpcy5jaGFuZ2luZ1ZhbHVlUXVlc3Rpb25cbiAgICApIHtcbiAgICAgIHF1ZXN0aW9uLmhhc0Vycm9ycyhmaXJlQ2FsbGJhY2ssIHJlYyk7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5VmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodmFsdWUgPT0ga2V5VmFsdWVzW2ldKSB7XG4gICAgICAgIHF1ZXN0aW9uLmFkZEVycm9yKFxuICAgICAgICAgIG5ldyBLZXlEdXBsaWNhdGlvbkVycm9yKHRoaXMua2V5RHVwbGljYXRpb25FcnJvciwgdGhpcylcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCEhcmVjICYmICFyZWMuZmlyc3RFcnJvclF1ZXN0aW9uKSB7XG4gICAgICAgICAgcmVjLmZpcnN0RXJyb3JRdWVzdGlvbiA9IHF1ZXN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBrZXlWYWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVOZXdQYW5lbCgpOiBQYW5lbE1vZGVsIHtcbiAgICB2YXIgcGFuZWwgPSB0aGlzLmNyZWF0ZUFuZFNldHVwTmV3UGFuZWxPYmplY3QoKTtcbiAgICB2YXIganNvbiA9IHRoaXMudGVtcGxhdGUudG9KU09OKCk7XG4gICAgbmV3IEpzb25PYmplY3QoKS50b09iamVjdChqc29uLCBwYW5lbCk7XG4gICAgcGFuZWwucmVuZGVyV2lkdGggPSBcIjEwMCVcIjtcbiAgICBwYW5lbC51cGRhdGVDdXN0b21XaWRnZXRzKCk7XG4gICAgbmV3IFF1ZXN0aW9uUGFuZWxEeW5hbWljSXRlbSh0aGlzLCBwYW5lbCk7XG4gICAgcmV0dXJuIHBhbmVsO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVBbmRTZXR1cE5ld1BhbmVsT2JqZWN0KCk6IFBhbmVsTW9kZWwge1xuICAgIHZhciBwYW5lbCA9IHRoaXMuY3JlYXRlTmV3UGFuZWxPYmplY3QoKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgcGFuZWwub25HZXRRdWVzdGlvblRpdGxlTG9jYXRpb24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBzZWxmLmdldFRlbXBsYXRlUXVlc3Rpb25UaXRsZUxvY2F0aW9uKCk7XG4gICAgfTtcbiAgICByZXR1cm4gcGFuZWw7XG4gIH1cbiAgcHJpdmF0ZSBnZXRUZW1wbGF0ZVF1ZXN0aW9uVGl0bGVMb2NhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVRpdGxlTG9jYXRpb24gIT0gXCJkZWZhdWx0XCJcbiAgICAgID8gdGhpcy50ZW1wbGF0ZVRpdGxlTG9jYXRpb25cbiAgICAgIDogdGhpcy5nZXRUaXRsZUxvY2F0aW9uQ29yZSgpO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVOZXdQYW5lbE9iamVjdCgpOiBQYW5lbE1vZGVsIHtcbiAgICByZXR1cm4gbmV3IFBhbmVsTW9kZWwoKTtcbiAgfVxuICBwcml2YXRlIHNldFBhbmVsQ291bnRCYXNlZE9uVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZUNoYW5naW5nSW50ZXJuYWxseSkgcmV0dXJuO1xuICAgIHZhciB2YWwgPSB0aGlzLnZhbHVlO1xuICAgIHZhciBuZXdQYW5lbENvdW50ID0gdmFsICYmIEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbC5sZW5ndGggOiAwO1xuICAgIGlmIChuZXdQYW5lbENvdW50ID09IDAgJiYgdGhpcy5sb2FkaW5nUGFuZWxDb3VudCA+IDApIHtcbiAgICAgIG5ld1BhbmVsQ291bnQgPSB0aGlzLmxvYWRpbmdQYW5lbENvdW50O1xuICAgIH1cbiAgICB0aGlzLnBhbmVsQ291bnQgPSBuZXdQYW5lbENvdW50O1xuICB9XG4gIHB1YmxpYyBzZXRRdWVzdGlvblZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci5zZXRRdWVzdGlvblZhbHVlKG5ld1ZhbHVlLCBmYWxzZSk7XG4gICAgdGhpcy5zZXRQYW5lbENvdW50QmFzZWRPblZhbHVlKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5wYW5lbFVwZGF0ZVZhbHVlRnJvbVN1cnZleSh0aGlzLnBhbmVsc1tpXSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlSXNBbnN3ZXJlZCgpO1xuICB9XG4gIHB1YmxpYyBvblN1cnZleVZhbHVlQ2hhbmdlZChuZXdWYWx1ZTogYW55KSB7XG4gICAgc3VwZXIub25TdXJ2ZXlWYWx1ZUNoYW5nZWQobmV3VmFsdWUpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMucGFuZWxTdXJ2ZXlWYWx1ZUNoYW5nZWQodGhpcy5wYW5lbHNbaV0pO1xuICAgIH1cbiAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZXRWYWx1ZUJhc2VkT25QYW5lbENvdW50KCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcGFuZWxVcGRhdGVWYWx1ZUZyb21TdXJ2ZXkocGFuZWw6IFBhbmVsTW9kZWwpIHtcbiAgICB2YXIgcXVlc3Rpb25zID0gcGFuZWwucXVlc3Rpb25zO1xuICAgIHZhciB2YWx1ZXMgPSB0aGlzLmdldFBhbmVsSXRlbURhdGEocGFuZWwuZGF0YSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxID0gcXVlc3Rpb25zW2ldO1xuICAgICAgcS51cGRhdGVWYWx1ZUZyb21TdXJ2ZXkodmFsdWVzW3EuZ2V0VmFsdWVOYW1lKCldKTtcbiAgICAgIHEudXBkYXRlQ29tbWVudEZyb21TdXJ2ZXkoXG4gICAgICAgIHZhbHVlc1txLmdldFZhbHVlTmFtZSgpICsgc2V0dGluZ3MuY29tbWVudFByZWZpeF1cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcGFuZWxTdXJ2ZXlWYWx1ZUNoYW5nZWQocGFuZWw6IFBhbmVsTW9kZWwpIHtcbiAgICB2YXIgcXVlc3Rpb25zID0gcGFuZWwucXVlc3Rpb25zO1xuICAgIHZhciB2YWx1ZXMgPSB0aGlzLmdldFBhbmVsSXRlbURhdGEocGFuZWwuZGF0YSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxID0gcXVlc3Rpb25zW2ldO1xuICAgICAgcS5vblN1cnZleVZhbHVlQ2hhbmdlZCh2YWx1ZXNbcS5nZXRWYWx1ZU5hbWUoKV0pO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgb25TZXREYXRhKCkge1xuICAgIHN1cGVyLm9uU2V0RGF0YSgpO1xuICAgIGlmICh0aGlzLmlzRGVzaWduTW9kZSkge1xuICAgICAgdGhpcy5zZXRUZW1wbGF0ZVBhbmVsU3VydmV5SW1wbCgpO1xuICAgICAgdGhpcy5yZWJ1aWxkUGFuZWxzKCk7XG4gICAgfVxuICB9XG4gIC8vSVF1ZXN0aW9uUGFuZWxEeW5hbWljRGF0YVxuICBnZXRJdGVtSW5kZXgoaXRlbTogSVN1cnZleURhdGEpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmluZGV4T2YoaXRlbSk7XG4gIH1cbiAgZ2V0UGFuZWxJdGVtRGF0YShpdGVtOiBJU3VydmV5RGF0YSk6IGFueSB7XG4gICAgdmFyIGl0ZW1zID0gdGhpcy5pdGVtcztcbiAgICB2YXIgaW5kZXggPSBpdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgIHZhciBxVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGlmIChpbmRleCA8IDAgJiYgQXJyYXkuaXNBcnJheShxVmFsdWUpICYmIHFWYWx1ZS5sZW5ndGggPiBpdGVtcy5sZW5ndGgpIHtcbiAgICAgIGluZGV4ID0gaXRlbXMubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPCAwKSByZXR1cm4ge307XG4gICAgaWYgKCFxVmFsdWUgfHwgIUFycmF5LmlzQXJyYXkocVZhbHVlKSB8fCBxVmFsdWUubGVuZ3RoIDw9IGluZGV4KSByZXR1cm4ge307XG4gICAgcmV0dXJuIHFWYWx1ZVtpbmRleF07XG4gIH1cbiAgc2V0UGFuZWxJdGVtRGF0YShpdGVtOiBJU3VydmV5RGF0YSwgbmFtZTogc3RyaW5nLCB2YWw6IGFueSkge1xuICAgIHZhciBpdGVtcyA9IHRoaXMuaXRlbXM7XG4gICAgdmFyIGluZGV4ID0gaXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXggPCAwKSBpbmRleCA9IGl0ZW1zLmxlbmd0aDtcbiAgICB2YXIgcVZhbHVlID0gSGVscGVycy5nZXRVbmJpbmRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICBpZiAoIXFWYWx1ZSB8fCAhQXJyYXkuaXNBcnJheShxVmFsdWUpKSB7XG4gICAgICBxVmFsdWUgPSBbXTtcbiAgICB9XG4gICAgaWYgKHFWYWx1ZS5sZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgIGZvciAodmFyIGkgPSBxVmFsdWUubGVuZ3RoOyBpIDw9IGluZGV4OyBpKyspIHtcbiAgICAgICAgcVZhbHVlLnB1c2goe30pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXFWYWx1ZVtpbmRleF0pIHFWYWx1ZVtpbmRleF0gPSB7fTtcbiAgICBpZiAoIXRoaXMuaXNWYWx1ZUVtcHR5KHZhbCkpIHtcbiAgICAgIHFWYWx1ZVtpbmRleF1bbmFtZV0gPSB2YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBxVmFsdWVbaW5kZXhdW25hbWVdO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMucGFuZWxzLmxlbmd0aCkge1xuICAgICAgdGhpcy5jaGFuZ2luZ1ZhbHVlUXVlc3Rpb24gPSB0aGlzLnBhbmVsc1tpbmRleF0uZ2V0UXVlc3Rpb25CeVZhbHVlTmFtZShcbiAgICAgICAgbmFtZVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHFWYWx1ZTtcbiAgICB0aGlzLmNoYW5naW5nVmFsdWVRdWVzdGlvbiA9IG51bGw7XG4gICAgaWYgKHRoaXMuc3VydmV5KSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgcXVlc3Rpb246IHRoaXMsXG4gICAgICAgIHBhbmVsOiAoPFF1ZXN0aW9uUGFuZWxEeW5hbWljSXRlbT5pdGVtKS5wYW5lbCxcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgaXRlbUluZGV4OiBpbmRleCxcbiAgICAgICAgaXRlbVZhbHVlOiBxVmFsdWVbaW5kZXhdLFxuICAgICAgICB2YWx1ZTogdmFsXG4gICAgICB9O1xuICAgICAgdGhpcy5zdXJ2ZXkuZHluYW1pY1BhbmVsSXRlbVZhbHVlQ2hhbmdlZCh0aGlzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cbiAgZ2V0U3VydmV5KCk6IElTdXJ2ZXkge1xuICAgIHJldHVybiB0aGlzLnN1cnZleTtcbiAgfVxuICBnZXRSb290RGF0YSgpOiBJU3VydmV5RGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgfVxuICBwdWJsaWMgZ2V0UGxhaW5EYXRhKFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGluY2x1ZGVFbXB0eT86IGJvb2xlYW47XG4gICAgICBjYWxjdWxhdGlvbnM/OiBBcnJheTx7XG4gICAgICAgIHByb3BlcnR5TmFtZTogc3RyaW5nO1xuICAgICAgfT47XG4gICAgfSA9IHtcbiAgICAgIGluY2x1ZGVFbXB0eTogdHJ1ZVxuICAgIH1cbiAgKSB7XG4gICAgdmFyIHF1ZXN0aW9uUGxhaW5EYXRhID0gc3VwZXIuZ2V0UGxhaW5EYXRhKG9wdGlvbnMpO1xuICAgIGlmICghIXF1ZXN0aW9uUGxhaW5EYXRhKSB7XG4gICAgICBxdWVzdGlvblBsYWluRGF0YS5pc05vZGUgPSB0cnVlO1xuICAgICAgcXVlc3Rpb25QbGFpbkRhdGEuZGF0YSA9IHRoaXMucGFuZWxzLm1hcChcbiAgICAgICAgKHBhbmVsOiBQYW5lbE1vZGVsLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgdmFyIHBhbmVsRGF0YUl0ZW0gPSA8YW55PntcbiAgICAgICAgICAgIG5hbWU6IHBhbmVsLm5hbWUgfHwgaW5kZXgsXG4gICAgICAgICAgICB0aXRsZTogcGFuZWwudGl0bGUgfHwgXCJQYW5lbFwiLFxuICAgICAgICAgICAgdmFsdWU6IHBhbmVsLmdldFZhbHVlKCksXG4gICAgICAgICAgICBkaXNwbGF5VmFsdWU6IHBhbmVsLmdldFZhbHVlKCksXG4gICAgICAgICAgICBnZXRTdHJpbmc6ICh2YWw6IGFueSkgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiA/IEpTT04uc3RyaW5naWZ5KHZhbCkgOiB2YWwsXG4gICAgICAgICAgICBpc05vZGU6IHRydWUsXG4gICAgICAgICAgICBkYXRhOiBwYW5lbC5xdWVzdGlvbnNcbiAgICAgICAgICAgICAgLm1hcCgocXVlc3Rpb246IFF1ZXN0aW9uKSA9PiBxdWVzdGlvbi5nZXRQbGFpbkRhdGEob3B0aW9ucykpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGQ6IGFueSkgPT4gISFkKVxuICAgICAgICAgIH07XG4gICAgICAgICAgKG9wdGlvbnMuY2FsY3VsYXRpb25zIHx8IFtdKS5mb3JFYWNoKGNhbGN1bGF0aW9uID0+IHtcbiAgICAgICAgICAgIHBhbmVsRGF0YUl0ZW1bY2FsY3VsYXRpb24ucHJvcGVydHlOYW1lXSA9ICg8YW55PnBhbmVsKVtcbiAgICAgICAgICAgICAgY2FsY3VsYXRpb24ucHJvcGVydHlOYW1lXG4gICAgICAgICAgICBdO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBwYW5lbERhdGFJdGVtO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcXVlc3Rpb25QbGFpbkRhdGE7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByb2dyZXNzVGV4dCgpOiBzdHJpbmcge1xuICAgIHZhciByYW5nZU1heCA9IHRoaXMucGFuZWxDb3VudDtcbiAgICByZXR1cm4gc3VydmV5TG9jYWxpemF0aW9uXG4gICAgICAuZ2V0U3RyaW5nKFwicGFuZWxEeW5hbWljUHJvZ3Jlc3NUZXh0XCIpXG4gICAgICBbXCJmb3JtYXRcIl0odGhpcy5jdXJyZW50SW5kZXggKyAxLCByYW5nZU1heCk7XG4gIH1cbn1cblxuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJwYW5lbGR5bmFtaWNcIixcbiAgW1xuICAgIHtcbiAgICAgIG5hbWU6IFwidGVtcGxhdGVFbGVtZW50c1wiLFxuICAgICAgYWx0ZXJuYXRpdmVOYW1lOiBcInF1ZXN0aW9uc1wiLFxuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICBpc0xpZ2h0U2VyaWFsaXphYmxlOiBmYWxzZVxuICAgIH0sXG4gICAgeyBuYW1lOiBcInRlbXBsYXRlVGl0bGU6dGV4dFwiLCBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jVGVtcGxhdGVUaXRsZVwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ0ZW1wbGF0ZURlc2NyaXB0aW9uOnRleHRcIixcbiAgICAgIHNlcmlhbGl6YXRpb25Qcm9wZXJ0eTogXCJsb2NUZW1wbGF0ZURlc2NyaXB0aW9uXCJcbiAgICB9LFxuICAgIHsgbmFtZTogXCJhbGxvd0FkZFBhbmVsOmJvb2xlYW5cIiwgZGVmYXVsdDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogXCJhbGxvd1JlbW92ZVBhbmVsOmJvb2xlYW5cIiwgZGVmYXVsdDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwicGFuZWxDb3VudDpudW1iZXJcIixcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICBjaG9pY2VzOiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdXG4gICAgfSxcbiAgICB7IG5hbWU6IFwibWluUGFuZWxDb3VudDpudW1iZXJcIiwgZGVmYXVsdDogMCwgbWluVmFsdWU6IDAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcIm1heFBhbmVsQ291bnQ6bnVtYmVyXCIsXG4gICAgICBkZWZhdWx0OiBzZXR0aW5ncy5wYW5lbE1heGltdW1QYW5lbENvdW50XG4gICAgfSxcbiAgICBcImRlZmF1bHRQYW5lbFZhbHVlOnBhbmVsdmFsdWVcIixcbiAgICBcImRlZmF1bHRWYWx1ZUZyb21MYXN0UGFuZWw6Ym9vbGVhblwiLFxuICAgIHtcbiAgICAgIG5hbWU6IFwicGFuZWxzU3RhdGVcIixcbiAgICAgIGRlZmF1bHQ6IFwiZGVmYXVsdFwiLFxuICAgICAgY2hvaWNlczogW1wiZGVmYXVsdFwiLCBcImNvbGxhcHNlZFwiLCBcImV4cGFuZGVkXCIsIFwiZmlyc3RFeHBhbmRlZFwiXVxuICAgIH0sXG4gICAgeyBuYW1lOiBcImtleU5hbWVcIiB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwia2V5RHVwbGljYXRpb25FcnJvclwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0tleUR1cGxpY2F0aW9uRXJyb3JcIlxuICAgIH0sXG4gICAgeyBuYW1lOiBcImNvbmZpcm1EZWxldGU6Ym9vbGVhblwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJjb25maXJtRGVsZXRlVGV4dFwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY0NvbmZpcm1EZWxldGVUZXh0XCJcbiAgICB9LFxuICAgIHsgbmFtZTogXCJwYW5lbEFkZFRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1BhbmVsQWRkVGV4dFwiIH0sXG4gICAgeyBuYW1lOiBcInBhbmVsUmVtb3ZlVGV4dFwiLCBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jUGFuZWxSZW1vdmVUZXh0XCIgfSxcbiAgICB7IG5hbWU6IFwicGFuZWxQcmV2VGV4dFwiLCBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jUGFuZWxQcmV2VGV4dFwiIH0sXG4gICAgeyBuYW1lOiBcInBhbmVsTmV4dFRleHRcIiwgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY1BhbmVsTmV4dFRleHRcIiB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwic2hvd1F1ZXN0aW9uTnVtYmVyc1wiLFxuICAgICAgZGVmYXVsdDogXCJvZmZcIixcbiAgICAgIGNob2ljZXM6IFtcIm9mZlwiLCBcIm9uUGFuZWxcIiwgXCJvblN1cnZleVwiXVxuICAgIH0sXG4gICAgeyBuYW1lOiBcInNob3dSYW5nZUluUHJvZ3Jlc3M6Ym9vbGVhblwiLCBkZWZhdWx0OiB0cnVlIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJyZW5kZXJNb2RlXCIsXG4gICAgICBkZWZhdWx0OiBcImxpc3RcIixcbiAgICAgIGNob2ljZXM6IFtcImxpc3RcIiwgXCJwcm9ncmVzc1RvcFwiLCBcInByb2dyZXNzQm90dG9tXCIsIFwicHJvZ3Jlc3NUb3BCb3R0b21cIl1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwidGVtcGxhdGVUaXRsZUxvY2F0aW9uXCIsXG4gICAgICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgICAgIGNob2ljZXM6IFtcImRlZmF1bHRcIiwgXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCJdXG4gICAgfVxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXN0aW9uUGFuZWxEeW5hbWljTW9kZWwoXCJcIik7XG4gIH0sXG4gIFwicXVlc3Rpb25cIlxuKTtcblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwicGFuZWxkeW5hbWljXCIsIG5hbWUgPT4ge1xuICByZXR1cm4gbmV3IFF1ZXN0aW9uUGFuZWxEeW5hbWljTW9kZWwobmFtZSk7XG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9xdWVzdGlvbl9wYW5lbGR5bmFtaWMudHMiLCJpbXBvcnQgeyBTZXJpYWxpemVyIH0gZnJvbSBcIi4vanNvbm9iamVjdFwiO1xuaW1wb3J0IHsgUXVlc3Rpb25GYWN0b3J5IH0gZnJvbSBcIi4vcXVlc3Rpb25mYWN0b3J5XCI7XG5pbXBvcnQgeyBRdWVzdGlvbkNoZWNrYm94QmFzZSB9IGZyb20gXCIuL3F1ZXN0aW9uX2Jhc2VzZWxlY3RcIjtcbmltcG9ydCB7IHN1cnZleUxvY2FsaXphdGlvbiB9IGZyb20gXCIuL3N1cnZleVN0cmluZ3NcIjtcbmltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGEgcmFkaW9ncm91cCBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uUmFkaW9ncm91cE1vZGVsIGV4dGVuZHMgUXVlc3Rpb25DaGVja2JveEJhc2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJyYWRpb2dyb3VwXCI7XG4gIH1cbiAgcHJvdGVjdGVkIGdldEZpcnN0SW5wdXRFbGVtZW50SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dElkICsgXCJfMFwiO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtKCk6IEl0ZW1WYWx1ZSB7XG4gICAgaWYgKHRoaXMuaXNFbXB0eSgpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gSXRlbVZhbHVlLmdldEl0ZW1CeVZhbHVlKHRoaXMudmlzaWJsZUNob2ljZXMsIHRoaXMudmFsdWUpO1xuICB9XG4gIC8qKlxuICAgKiBTaG93IFwiY2xlYXIgYnV0dG9uXCIgZmxhZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd0NsZWFyQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJzaG93Q2xlYXJCdXR0b25cIiwgZmFsc2UpO1xuICB9XG4gIHB1YmxpYyBzZXQgc2hvd0NsZWFyQnV0dG9uKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInNob3dDbGVhckJ1dHRvblwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBnZXQgY2FuU2hvd0NsZWFyQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dDbGVhckJ1dHRvbiAmJiAhdGhpcy5pc1JlYWRPbmx5O1xuICB9XG4gIHB1YmxpYyBnZXQgY2xlYXJCdXR0b25DYXB0aW9uKCkge1xuICAgIHJldHVybiBzdXJ2ZXlMb2NhbGl6YXRpb24uZ2V0U3RyaW5nKFwiY2xlYXJDYXB0aW9uXCIpO1xuICB9XG4gIHN1cHBvcnRHb05leHRQYWdlQXV0b21hdGljKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwicmFkaW9ncm91cFwiLFxuICBbeyBuYW1lOiBcInNob3dDbGVhckJ1dHRvbjpib29sZWFuXCIsIGRlZmF1bHQ6IGZhbHNlIH1dLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXN0aW9uUmFkaW9ncm91cE1vZGVsKFwiXCIpO1xuICB9LFxuICBcImNoZWNrYm94YmFzZVwiXG4pO1xuXG5RdWVzdGlvbkZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJRdWVzdGlvbihcInJhZGlvZ3JvdXBcIiwgbmFtZSA9PiB7XG4gIHZhciBxID0gbmV3IFF1ZXN0aW9uUmFkaW9ncm91cE1vZGVsKG5hbWUpO1xuICBxLmNob2ljZXMgPSBRdWVzdGlvbkZhY3RvcnkuRGVmYXVsdENob2ljZXM7XG4gIHJldHVybiBxO1xufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVlc3Rpb25fcmFkaW9ncm91cC50cyIsImltcG9ydCB7IEl0ZW1WYWx1ZSB9IGZyb20gXCIuL2l0ZW12YWx1ZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwiLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IFF1ZXN0aW9uRmFjdG9yeSB9IGZyb20gXCIuL3F1ZXN0aW9uZmFjdG9yeVwiO1xuaW1wb3J0IHsgTG9jYWxpemFibGVTdHJpbmcgfSBmcm9tIFwiLi9sb2NhbGl6YWJsZXN0cmluZ1wiO1xuaW1wb3J0IHsgc2V0dGluZ3MgfSBmcm9tIFwiLi9zZXR0aW5nc1wiO1xuXG4vKipcbiAqIEEgTW9kZWwgZm9yIGEgcmF0aW5nIHF1ZXN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25SYXRpbmdNb2RlbCBleHRlbmRzIFF1ZXN0aW9uIHtcbiAgcHJpdmF0ZSByYXRlczogQXJyYXk8SXRlbVZhbHVlPjtcblxuICByYXRlVmFsdWVzQ2hhbmdlZENhbGxiYWNrOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgICB0aGlzLnJhdGVzID0gdGhpcy5jcmVhdGVJdGVtVmFsdWVzKFwicmF0ZXNcIik7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRoaXMucmVnaXN0ZXJGdW5jdGlvbk9uUHJvcGVydHlWYWx1ZUNoYW5nZWQoXCJyYXRlc1wiLCBmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYuZmlyZUNhbGxiYWNrKHNlbGYucmF0ZVZhbHVlc0NoYW5nZWRDYWxsYmFjayk7XG4gICAgfSk7XG4gICAgdGhpcy5vblByb3BlcnR5Q2hhbmdlZC5hZGQoZnVuY3Rpb24oc2VuZGVyOiBhbnksIG9wdGlvbnM6IGFueSkge1xuICAgICAgaWYgKFxuICAgICAgICBvcHRpb25zLm5hbWUgPT0gXCJyYXRlTWluXCIgfHxcbiAgICAgICAgb3B0aW9ucy5uYW1lID09IFwicmF0ZU1heFwiIHx8XG4gICAgICAgIG9wdGlvbnMubmFtZSA9PSBcInJhdGVTdGVwXCJcbiAgICAgICkge1xuICAgICAgICBzZWxmLmZpcmVDYWxsYmFjayhzZWxmLnJhdGVWYWx1ZXNDaGFuZ2VkQ2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFyIGxvY01pblJhdGVEZXNjcmlwdGlvblZhbHVlID0gdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcbiAgICAgIFwibWluUmF0ZURlc2NyaXB0aW9uXCIsXG4gICAgICB0aGlzLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gICAgdmFyIGxvY01heFJhdGVEZXNjcmlwdGlvblZhbHVlID0gdGhpcy5jcmVhdGVMb2NhbGl6YWJsZVN0cmluZyhcbiAgICAgIFwibWF4UmF0ZURlc2NyaXB0aW9uXCIsXG4gICAgICB0aGlzLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gICAgbG9jTWluUmF0ZURlc2NyaXB0aW9uVmFsdWUub25HZXRUZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbih0ZXh0KSB7XG4gICAgICByZXR1cm4gdGV4dCA/IHRleHQgKyBcIiBcIiA6IHRleHQ7XG4gICAgfTtcbiAgICBsb2NNYXhSYXRlRGVzY3JpcHRpb25WYWx1ZS5vbkdldFRleHRDYWxsYmFjayA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgIHJldHVybiB0ZXh0ID8gXCIgXCIgKyB0ZXh0IDogdGV4dDtcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBvblN1cnZleUxvYWQoKSB7XG4gICAgc3VwZXIub25TdXJ2ZXlMb2FkKCk7XG4gICAgdGhpcy5maXJlQ2FsbGJhY2sodGhpcy5yYXRlVmFsdWVzQ2hhbmdlZENhbGxiYWNrKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgcmF0ZSBpdGVtcy4gRXZlcnkgaXRlbSBoYXMgdmFsdWUgYW5kIHRleHQuIElmIHRleHQgaXMgZW1wdHksIHRoZSB2YWx1ZSBpcyByZW5kZXJlZC4gVGhlIGl0ZW0gdGV4dCBzdXBwb3J0cyBtYXJrZG93bi4gSWYgaXQgaXMgZW1wdHkgdGhlIGFycmF5IGlzIGdlbmVyYXRlZCBieSB1c2luZyByYXRlTWluLCByYXRlTWF4IGFuZCByYXRlU3RlcCBwcm9wZXJ0aWVzLlxuICAgKiBAc2VlIHJhdGVNaW5cbiAgICogQHNlZSByYXRlTWF4XG4gICAqIEBzZWUgcmF0ZVN0ZXBcbiAgICovXG4gIHB1YmxpYyBnZXQgcmF0ZVZhbHVlcygpOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5yYXRlcztcbiAgfVxuICBwdWJsaWMgc2V0IHJhdGVWYWx1ZXModmFsOiBBcnJheTxhbnk+KSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicmF0ZXNcIiwgdmFsKTtcbiAgfVxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIHRvIGdlbmVyYXRlIHJhdGUgdmFsdWVzIGlmIHJhdGVWYWx1ZXMgYXJyYXkgaXMgZW1wdHkuIEl0IGlzIHRoZSBmaXJzdCB2YWx1ZSBpbiB0aGUgcmF0aW5nLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLlxuICAgKiBAc2VlIHJhdGVWYWx1ZXNcbiAgICogQHNlZSByYXRlTWF4XG4gICAqIEBzZWUgcmF0ZVN0ZXBcbiAgICovXG4gIHB1YmxpYyBnZXQgcmF0ZU1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJyYXRlTWluXCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcmF0ZU1pbih2YWw6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5pc0xvYWRpbmdGcm9tSnNvbiAmJiB2YWwgPiB0aGlzLnJhdGVNYXggLSB0aGlzLnJhdGVTdGVwKVxuICAgICAgdmFsID0gdGhpcy5yYXRlTWF4IC0gdGhpcy5yYXRlU3RlcDtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJyYXRlTWluXCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgdXNlZCB0byBnZW5lcmF0ZSByYXRlIHZhbHVlcyBpZiByYXRlVmFsdWVzIGFycmF5IGlzIGVtcHR5LiBJdCBpcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgcmF0aW5nLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA1LlxuICAgKiBAc2VlIHJhdGVWYWx1ZXNcbiAgICogQHNlZSByYXRlTWluXG4gICAqIEBzZWUgcmF0ZVN0ZXBcbiAgICovXG4gIHB1YmxpYyBnZXQgcmF0ZU1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJyYXRlTWF4XCIpO1xuICB9XG4gIHB1YmxpYyBzZXQgcmF0ZU1heCh2YWw6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5pc0xvYWRpbmdGcm9tSnNvbiAmJiB2YWwgPCB0aGlzLnJhdGVNaW4gKyB0aGlzLnJhdGVTdGVwKVxuICAgICAgdmFsID0gdGhpcy5yYXRlTWluICsgdGhpcy5yYXRlU3RlcDtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWUoXCJyYXRlTWF4XCIsIHZhbCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgdXNlZCB0byBnZW5lcmF0ZSByYXRlIHZhbHVlcyBpZiByYXRlVmFsdWVzIGFycmF5IGlzIGVtcHR5LiBJdCBpcyB0aGUgc3RlcCB2YWx1ZS4gVGhlIG51bWJlciBvZiByYXRlIHZhbHVlcyBhcmUgKHJhdGVNYXggLSByYXRlTWluKSAvIHJhdGVTdGVwLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLlxuICAgKiBAc2VlIHJhdGVWYWx1ZXNcbiAgICogQHNlZSByYXRlTWluXG4gICAqIEBzZWUgcmF0ZU1heFxuICAgKi9cbiAgcHVibGljIGdldCByYXRlU3RlcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUoXCJyYXRlU3RlcFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJhdGVTdGVwKHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHZhbCA8PSAwKSB2YWwgPSAxO1xuICAgIGlmICghdGhpcy5pc0xvYWRpbmdGcm9tSnNvbiAmJiB2YWwgPiB0aGlzLnJhdGVNYXggLSB0aGlzLnJhdGVNaW4pXG4gICAgICB2YWwgPSB0aGlzLnJhdGVNYXggLSB0aGlzLnJhdGVNaW47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwicmF0ZVN0ZXBcIiwgdmFsKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0RGlzcGxheVZhbHVlQ29yZShrZXlzQXNUZXh0OiBib29sZWFuLCB2YWx1ZTogYW55KTogYW55IHtcbiAgICB2YXIgcmVzID0gSXRlbVZhbHVlLmdldFRleHRPckh0bWxCeVZhbHVlKFxuICAgICAgdGhpcy52aXNpYmxlUmF0ZVZhbHVlcyxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgICByZXR1cm4gISFyZXMgPyByZXMgOiB2YWx1ZTtcbiAgfVxuICBnZXQgdmlzaWJsZVJhdGVWYWx1ZXMoKTogSXRlbVZhbHVlW10ge1xuICAgIGlmICh0aGlzLnJhdGVWYWx1ZXMubGVuZ3RoID4gMCkgcmV0dXJuIHRoaXMucmF0ZVZhbHVlcztcbiAgICB2YXIgcmVzID0gW107XG4gICAgdmFyIHZhbHVlID0gdGhpcy5yYXRlTWluO1xuICAgIHdoaWxlIChcbiAgICAgIHZhbHVlIDw9IHRoaXMucmF0ZU1heCAmJlxuICAgICAgcmVzLmxlbmd0aCA8IHNldHRpbmdzLnJhdGluZ01heGltdW1SYXRlVmFsdWVDb3VudFxuICAgICkge1xuICAgICAgcmVzLnB1c2gobmV3IEl0ZW1WYWx1ZSh2YWx1ZSkpO1xuICAgICAgdmFsdWUgKz0gdGhpcy5yYXRlU3RlcDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInJhdGluZ1wiO1xuICB9XG4gIHN1cHBvcnRHb05leHRQYWdlQXV0b21hdGljKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHB1YmxpYyBzdXBwb3J0Q29tbWVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwdWJsaWMgc3VwcG9ydE90aGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgbWluaW11bSAoZmlyc3QpIGl0ZW0uXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1pblJhdGVEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nVGV4dChcIm1pblJhdGVEZXNjcmlwdGlvblwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IG1pblJhdGVEZXNjcmlwdGlvbih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxpemFibGVTdHJpbmdUZXh0KFwibWluUmF0ZURlc2NyaXB0aW9uXCIsIHZhbCk7XG4gIH1cbiAgZ2V0IGxvY01pblJhdGVEZXNjcmlwdGlvbigpOiBMb2NhbGl6YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxpemFibGVTdHJpbmcoXCJtaW5SYXRlRGVzY3JpcHRpb25cIik7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiBtYXhpbXVtIChsYXN0KSBpdGVtLlxuICAgKi9cbiAgcHVibGljIGdldCBtYXhSYXRlRGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YWJsZVN0cmluZ1RleHQoXCJtYXhSYXRlRGVzY3JpcHRpb25cIik7XG4gIH1cbiAgcHVibGljIHNldCBtYXhSYXRlRGVzY3JpcHRpb24odmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvY2FsaXphYmxlU3RyaW5nVGV4dChcIm1heFJhdGVEZXNjcmlwdGlvblwiLCB2YWwpO1xuICB9XG4gIGdldCBsb2NNYXhSYXRlRGVzY3JpcHRpb24oKTogTG9jYWxpemFibGVTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphYmxlU3RyaW5nKFwibWF4UmF0ZURlc2NyaXB0aW9uXCIpO1xuICB9XG59XG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcInJhdGluZ1wiLFxuICBbXG4gICAgeyBuYW1lOiBcImhhc0NvbW1lbnQ6Ym9vbGVhblwiLCBsYXlvdXQ6IFwicm93XCIgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImNvbW1lbnRUZXh0XCIsXG4gICAgICBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jQ29tbWVudFRleHRcIixcbiAgICAgIGxheW91dDogXCJyb3dcIlxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJyYXRlVmFsdWVzOml0ZW12YWx1ZVtdXCJcbiAgICB9LFxuICAgIHsgbmFtZTogXCJyYXRlTWluOm51bWJlclwiLCBkZWZhdWx0OiAxIH0sXG4gICAgeyBuYW1lOiBcInJhdGVNYXg6bnVtYmVyXCIsIGRlZmF1bHQ6IDUgfSxcbiAgICB7IG5hbWU6IFwicmF0ZVN0ZXA6bnVtYmVyXCIsIGRlZmF1bHQ6IDEsIG1pblZhbHVlOiAxIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJtaW5SYXRlRGVzY3JpcHRpb25cIixcbiAgICAgIGFsdGVybmF0aXZlTmFtZTogXCJtaW5pbnVtUmF0ZURlc2NyaXB0aW9uXCIsXG4gICAgICBzZXJpYWxpemF0aW9uUHJvcGVydHk6IFwibG9jTWluUmF0ZURlc2NyaXB0aW9uXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwibWF4UmF0ZURlc2NyaXB0aW9uXCIsXG4gICAgICBhbHRlcm5hdGl2ZU5hbWU6IFwibWF4aW11bVJhdGVEZXNjcmlwdGlvblwiLFxuICAgICAgc2VyaWFsaXphdGlvblByb3BlcnR5OiBcImxvY01heFJhdGVEZXNjcmlwdGlvblwiXG4gICAgfVxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXN0aW9uUmF0aW5nTW9kZWwoXCJcIik7XG4gIH0sXG4gIFwicXVlc3Rpb25cIlxuKTtcblF1ZXN0aW9uRmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlclF1ZXN0aW9uKFwicmF0aW5nXCIsIG5hbWUgPT4ge1xuICByZXR1cm4gbmV3IFF1ZXN0aW9uUmF0aW5nTW9kZWwobmFtZSk7XG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9xdWVzdGlvbl9yYXRpbmcudHMiLCJpbXBvcnQgeyBIYXNoVGFibGUsIEhlbHBlcnMgfSBmcm9tIFwiLi9oZWxwZXJzXCI7XG5pbXBvcnQgeyBCYXNlIH0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXplciB9IGZyb20gXCIuL2pzb25vYmplY3RcIjtcbmltcG9ydCB7IENvbmRpdGlvblJ1bm5lciwgRXhwcmVzc2lvblJ1bm5lciB9IGZyb20gXCIuL2NvbmRpdGlvbnNcIjtcbmltcG9ydCB7IE9wZXJhbmRNYWtlciB9IGZyb20gXCIuL2V4cHJlc3Npb25zL2V4cHJlc3Npb25zXCI7XG5pbXBvcnQgeyBQcm9jZXNzVmFsdWUgfSBmcm9tIFwiLi9jb25kaXRpb25Qcm9jZXNzVmFsdWVcIjtcblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGFsbCB0cmlnZ2Vycy5cbiAqIEEgdHJpZ2dlciBjYWxscyBhIG1ldGhvZCB3aGVuIHRoZSBleHByZXNzaW9uIGNoYW5nZSB0aGUgcmVzdWx0OiBmcm9tIGZhbHNlIHRvIHRydWUgb3IgZnJvbSB0cnVlIHRvIGZhbHNlLlxuICogUGxlYXNlIG5vdGUsIGl0IHJ1bnMgb25seSBvbmUgY2hhbmdpbmcgdGhlIGV4cHJlc3Npb24gcmVzdWx0LlxuICovXG5leHBvcnQgY2xhc3MgVHJpZ2dlciBleHRlbmRzIEJhc2Uge1xuICBzdGF0aWMgb3BlcmF0b3JzVmFsdWU6IEhhc2hUYWJsZTxGdW5jdGlvbj4gPSBudWxsO1xuICBzdGF0aWMgZ2V0IG9wZXJhdG9ycygpIHtcbiAgICBpZiAoVHJpZ2dlci5vcGVyYXRvcnNWYWx1ZSAhPSBudWxsKSByZXR1cm4gVHJpZ2dlci5vcGVyYXRvcnNWYWx1ZTtcbiAgICBUcmlnZ2VyLm9wZXJhdG9yc1ZhbHVlID0ge1xuICAgICAgZW1wdHk6IGZ1bmN0aW9uKHZhbHVlOiBhbnksIGV4cGVjdGVkVmFsdWU6IGFueSkge1xuICAgICAgICByZXR1cm4gIXZhbHVlO1xuICAgICAgfSxcbiAgICAgIG5vdGVtcHR5OiBmdW5jdGlvbih2YWx1ZTogYW55LCBleHBlY3RlZFZhbHVlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuICEhdmFsdWU7XG4gICAgICB9LFxuICAgICAgZXF1YWw6IGZ1bmN0aW9uKHZhbHVlOiBhbnksIGV4cGVjdGVkVmFsdWU6IGFueSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT0gZXhwZWN0ZWRWYWx1ZTtcbiAgICAgIH0sXG4gICAgICBub3RlcXVhbDogZnVuY3Rpb24odmFsdWU6IGFueSwgZXhwZWN0ZWRWYWx1ZTogYW55KSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPSBleHBlY3RlZFZhbHVlO1xuICAgICAgfSxcbiAgICAgIGNvbnRhaW5zOiBmdW5jdGlvbih2YWx1ZTogYW55LCBleHBlY3RlZFZhbHVlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlW1wiaW5kZXhPZlwiXSAmJiB2YWx1ZS5pbmRleE9mKGV4cGVjdGVkVmFsdWUpID4gLTE7XG4gICAgICB9LFxuICAgICAgbm90Y29udGFpbnM6IGZ1bmN0aW9uKHZhbHVlOiBhbnksIGV4cGVjdGVkVmFsdWU6IGFueSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICF2YWx1ZSB8fCAhdmFsdWVbXCJpbmRleE9mXCJdIHx8IHZhbHVlLmluZGV4T2YoZXhwZWN0ZWRWYWx1ZSkgPT0gLTFcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBncmVhdGVyOiBmdW5jdGlvbih2YWx1ZTogYW55LCBleHBlY3RlZFZhbHVlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID4gZXhwZWN0ZWRWYWx1ZTtcbiAgICAgIH0sXG4gICAgICBsZXNzOiBmdW5jdGlvbih2YWx1ZTogYW55LCBleHBlY3RlZFZhbHVlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIDwgZXhwZWN0ZWRWYWx1ZTtcbiAgICAgIH0sXG4gICAgICBncmVhdGVyb3JlcXVhbDogZnVuY3Rpb24odmFsdWU6IGFueSwgZXhwZWN0ZWRWYWx1ZTogYW55KSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA+PSBleHBlY3RlZFZhbHVlO1xuICAgICAgfSxcbiAgICAgIGxlc3NvcmVxdWFsOiBmdW5jdGlvbih2YWx1ZTogYW55LCBleHBlY3RlZFZhbHVlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIDw9IGV4cGVjdGVkVmFsdWU7XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gVHJpZ2dlci5vcGVyYXRvcnNWYWx1ZTtcbiAgfVxuICBwcml2YXRlIGNvbmRpdGlvblJ1bm5lcjogQ29uZGl0aW9uUnVubmVyO1xuICBwcml2YXRlIHVzZWROYW1lczogQXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSBoYXNGdW5jdGlvbjogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnVzZWROYW1lcyA9IFtdO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnRpZXNWYWx1ZUNoYW5nZWQoXG4gICAgICBbXCJvcGVyYXRvclwiLCBcInZhbHVlXCIsIFwibmFtZVwiXSxcbiAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLm9sZFByb3BlcnRpZXNDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyRnVuY3Rpb25PblByb3BlcnR5VmFsdWVDaGFuZ2VkKFwiZXhwcmVzc2lvblwiLCBmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYub25FeHByZXNzaW9uQ2hhbmdlZCgpO1xuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwidHJpZ2dlcmJhc2VcIjtcbiAgfVxuICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICB2YXIgcmVzID0gdGhpcy5nZXRUeXBlKCkucmVwbGFjZShcInRyaWdnZXJcIiwgXCJcIik7XG4gICAgdmFyIGV4cCA9ICEhdGhpcy5leHByZXNzaW9uID8gdGhpcy5leHByZXNzaW9uIDogdGhpcy5idWlsZEV4cHJlc3Npb24oKTtcbiAgICBpZiAoZXhwKSB7XG4gICAgICByZXMgKz0gXCIsIFwiICsgZXhwO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHB1YmxpYyBnZXQgb3BlcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwib3BlcmF0b3JcIiwgXCJlcXVhbFwiKTtcbiAgfVxuICBwdWJsaWMgc2V0IG9wZXJhdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghVHJpZ2dlci5vcGVyYXRvcnNbdmFsdWVdKSByZXR1cm47XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwib3BlcmF0b3JcIiwgdmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKFwidmFsdWVcIiwgbnVsbCk7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMuc2V0UHJvcGVydHlWYWx1ZShcInZhbHVlXCIsIHZhbCk7XG4gIH1cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcIm5hbWVcIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwibmFtZVwiLCB2YWwpO1xuICB9XG5cbiAgcHVibGljIGdldCBleHByZXNzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShcImV4cHJlc3Npb25cIiwgXCJcIik7XG4gIH1cbiAgcHVibGljIHNldCBleHByZXNzaW9uKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlKFwiZXhwcmVzc2lvblwiLCB2YWwpO1xuICB9XG4gIHB1YmxpYyBjaGVja0V4cHJlc3Npb24oXG4gICAga2V5czogYW55LFxuICAgIHZhbHVlczogSGFzaFRhYmxlPGFueT4sXG4gICAgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT4gPSBudWxsXG4gICkge1xuICAgIGlmICghdGhpcy5pc0NoZWNrUmVxdWlyZWQoa2V5cykpIHJldHVybjtcbiAgICBpZiAoISF0aGlzLmNvbmRpdGlvblJ1bm5lcikge1xuICAgICAgdGhpcy5wZXJmb3JtKHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBjaGVjayh2YWx1ZTogYW55KSB7XG4gICAgdmFyIHRyaWdnZXJSZXN1bHQgPSBUcmlnZ2VyLm9wZXJhdG9yc1t0aGlzLm9wZXJhdG9yXSh2YWx1ZSwgdGhpcy52YWx1ZSk7XG4gICAgaWYgKHRyaWdnZXJSZXN1bHQpIHtcbiAgICAgIHRoaXMub25TdWNjZXNzKHt9LCBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkZhaWx1cmUoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBwZXJmb3JtKHZhbHVlczogSGFzaFRhYmxlPGFueT4sIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+KSB7XG4gICAgdGhpcy5jb25kaXRpb25SdW5uZXIub25SdW5Db21wbGV0ZSA9IChyZXM6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlclJlc3VsdChyZXMsIHZhbHVlcywgcHJvcGVydGllcyk7XG4gICAgfTtcbiAgICB0aGlzLmNvbmRpdGlvblJ1bm5lci5ydW4odmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgfVxuICBwcml2YXRlIHRyaWdnZXJSZXN1bHQoXG4gICAgcmVzOiBib29sZWFuLFxuICAgIHZhbHVlczogSGFzaFRhYmxlPGFueT4sXG4gICAgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT5cbiAgKSB7XG4gICAgaWYgKHJlcykge1xuICAgICAgdGhpcy5vblN1Y2Nlc3ModmFsdWVzLCBwcm9wZXJ0aWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkZhaWx1cmUoKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIG9uU3VjY2Vzcyh2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LCBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55Pikge31cbiAgcHJvdGVjdGVkIG9uRmFpbHVyZSgpIHt9XG4gIGVuZExvYWRpbmdGcm9tSnNvbigpIHtcbiAgICBzdXBlci5lbmRMb2FkaW5nRnJvbUpzb24oKTtcbiAgICB0aGlzLm9sZFByb3BlcnRpZXNDaGFuZ2VkKCk7XG4gIH1cbiAgcHJpdmF0ZSBvbGRQcm9wZXJ0aWVzQ2hhbmdlZCgpIHtcbiAgICB0aGlzLm9uRXhwcmVzc2lvbkNoYW5nZWQoKTtcbiAgfVxuICBwcml2YXRlIG9uRXhwcmVzc2lvbkNoYW5nZWQoKSB7XG4gICAgdGhpcy51c2VkTmFtZXMgPSBbXTtcbiAgICB0aGlzLmhhc0Z1bmN0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5jb25kaXRpb25SdW5uZXIgPSBudWxsO1xuICB9XG4gIHB1YmxpYyBidWlsZEV4cHJlc3Npb24oKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMubmFtZSkgcmV0dXJuIFwiXCI7XG4gICAgaWYgKEhlbHBlcnMuaXNWYWx1ZUVtcHR5KHRoaXMudmFsdWUpICYmIHRoaXMuaXNSZXF1aXJlVmFsdWUpIHJldHVybiBcIlwiO1xuICAgIHJldHVybiAoXG4gICAgICBcIntcIiArXG4gICAgICB0aGlzLm5hbWUgK1xuICAgICAgXCJ9IFwiICtcbiAgICAgIHRoaXMub3BlcmF0b3IgK1xuICAgICAgXCIgXCIgK1xuICAgICAgT3BlcmFuZE1ha2VyLnRvT3BlcmFuZFN0cmluZyh0aGlzLnZhbHVlKVxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBpc0NoZWNrUmVxdWlyZWQoa2V5czogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCFrZXlzKSByZXR1cm4gZmFsc2U7XG4gICAgdGhpcy5idWlsZFVzZWROYW1lcygpO1xuICAgIGlmICh0aGlzLmhhc0Z1bmN0aW9uID09PSB0cnVlKSByZXR1cm4gdHJ1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudXNlZE5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoa2V5cy5oYXNPd25Qcm9wZXJ0eSh0aGlzLnVzZWROYW1lc1tpXSkpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHJpdmF0ZSBidWlsZFVzZWROYW1lcygpIHtcbiAgICBpZiAoISF0aGlzLmNvbmRpdGlvblJ1bm5lcikgcmV0dXJuO1xuICAgIHZhciBleHByZXNzaW9uID0gdGhpcy5leHByZXNzaW9uO1xuICAgIGlmICghZXhwcmVzc2lvbikge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMuYnVpbGRFeHByZXNzaW9uKCk7XG4gICAgfVxuICAgIGlmICghZXhwcmVzc2lvbikgcmV0dXJuO1xuICAgIHRoaXMuY29uZGl0aW9uUnVubmVyID0gbmV3IENvbmRpdGlvblJ1bm5lcihleHByZXNzaW9uKTtcbiAgICB0aGlzLmhhc0Z1bmN0aW9uID0gdGhpcy5jb25kaXRpb25SdW5uZXIuaGFzRnVuY3Rpb24oKTtcbiAgICB0aGlzLnVzZWROYW1lcyA9IHRoaXMuY29uZGl0aW9uUnVubmVyLmdldFZhcmlhYmxlcygpO1xuICAgIHZhciBwcm9jZXNzVmFsdWUgPSBuZXcgUHJvY2Vzc1ZhbHVlKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnVzZWROYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy51c2VkTmFtZXNbaV0gPSBwcm9jZXNzVmFsdWUuZ2V0Rmlyc3ROYW1lKHRoaXMudXNlZE5hbWVzW2ldKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgaXNSZXF1aXJlVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0b3IgIT09IFwiZW1wdHlcIiAmJiB0aGlzLm9wZXJhdG9yICE9IFwibm90ZW1wdHlcIjtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdXJ2ZXlUcmlnZ2VyT3duZXIge1xuICBnZXRPYmplY3RzKHBhZ2VzOiBzdHJpbmdbXSwgcXVlc3Rpb25zOiBzdHJpbmdbXSk6IGFueVtdO1xuICBzZXRDb21wbGV0ZWQoKTogYW55O1xuICBzZXRUcmlnZ2VyVmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBpc1ZhcmlhYmxlOiBib29sZWFuKTogYW55O1xuICBjb3B5VHJpZ2dlclZhbHVlKG5hbWU6IHN0cmluZywgZnJvbU5hbWU6IHN0cmluZyk6IGFueTtcbiAgZm9jdXNRdWVzdGlvbihuYW1lOiBzdHJpbmcpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEl0IGV4dGVuZHMgdGhlIFRyaWdnZXIgYmFzZSBjbGFzcyBhbmQgYWRkIHByb3BlcnRpZXMgcmVxdWlyZWQgZm9yIFN1cnZleUpTIGNsYXNzZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlUcmlnZ2VyIGV4dGVuZHMgVHJpZ2dlciB7XG4gIHByb3RlY3RlZCBvd25lcjogSVN1cnZleVRyaWdnZXJPd25lciA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIHNldE93bmVyKG93bmVyOiBJU3VydmV5VHJpZ2dlck93bmVyKSB7XG4gICAgdGhpcy5vd25lciA9IG93bmVyO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNPbk5leHRQYWdlKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuLyoqXG4gKiBJZiBleHByZXNzaW9uIHJldHVybnMgdHJ1ZSwgaXQgbWFrZXMgcXVlc3Rpb25zL3BhZ2VzIHZpc2libGUuXG4gKiBPaHRlcndpc2UgaXQgbWFrZXMgdGhlbSBpbnZpc2libGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlUcmlnZ2VyVmlzaWJsZSBleHRlbmRzIFN1cnZleVRyaWdnZXIge1xuICBwdWJsaWMgcGFnZXM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBxdWVzdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJ2aXNpYmxldHJpZ2dlclwiO1xuICB9XG4gIHByb3RlY3RlZCBvblN1Y2Nlc3ModmFsdWVzOiBIYXNoVGFibGU8YW55PiwgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT4pIHtcbiAgICB0aGlzLm9uVHJpZ2dlcih0aGlzLm9uSXRlbVN1Y2Nlc3MpO1xuICB9XG4gIHByb3RlY3RlZCBvbkZhaWx1cmUoKSB7XG4gICAgdGhpcy5vblRyaWdnZXIodGhpcy5vbkl0ZW1GYWlsdXJlKTtcbiAgfVxuICBwcml2YXRlIG9uVHJpZ2dlcihmdW5jOiBGdW5jdGlvbikge1xuICAgIGlmICghdGhpcy5vd25lcikgcmV0dXJuO1xuICAgIHZhciBvYmplY3RzID0gdGhpcy5vd25lci5nZXRPYmplY3RzKHRoaXMucGFnZXMsIHRoaXMucXVlc3Rpb25zKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZ1bmMob2JqZWN0c1tpXSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBvbkl0ZW1TdWNjZXNzKGl0ZW06IGFueSkge1xuICAgIGl0ZW0udmlzaWJsZSA9IHRydWU7XG4gIH1cbiAgcHJvdGVjdGVkIG9uSXRlbUZhaWx1cmUoaXRlbTogYW55KSB7XG4gICAgaXRlbS52aXNpYmxlID0gZmFsc2U7XG4gIH1cbn1cbi8qKlxuICogSWYgZXhwcmVzc2lvbiByZXR1cm5zIHRydWUsIGl0IGNvbXBsZXRlcyB0aGUgc3VydmV5LlxuICovXG5leHBvcnQgY2xhc3MgU3VydmV5VHJpZ2dlckNvbXBsZXRlIGV4dGVuZHMgU3VydmV5VHJpZ2dlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjb21wbGV0ZXRyaWdnZXJcIjtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzT25OZXh0UGFnZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgb25TdWNjZXNzKHZhbHVlczogSGFzaFRhYmxlPGFueT4sIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+KSB7XG4gICAgaWYgKHRoaXMub3duZXIpIHRoaXMub3duZXIuc2V0Q29tcGxldGVkKCk7XG4gIH1cbn1cbi8qKlxuICogSWYgZXhwcmVzc2lvbiByZXR1cm5zIHRydWUsIHRoZSB2YWx1ZSBmcm9tIHByb3BlcnR5ICoqc2V0VmFsdWUqKiB3aWxsIGJlIHNldCB0byAqKnNldFRvTmFtZSoqXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlUcmlnZ2VyU2V0VmFsdWUgZXh0ZW5kcyBTdXJ2ZXlUcmlnZ2VyIHtcbiAgcHVibGljIHNldFRvTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgc2V0VmFsdWU6IGFueTtcbiAgcHVibGljIGlzVmFyaWFibGU6IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJzZXR2YWx1ZXRyaWdnZXJcIjtcbiAgfVxuICBwcm90ZWN0ZWQgb25TdWNjZXNzKHZhbHVlczogSGFzaFRhYmxlPGFueT4sIHByb3BlcnRpZXM6IEhhc2hUYWJsZTxhbnk+KSB7XG4gICAgaWYgKCF0aGlzLnNldFRvTmFtZSB8fCAhdGhpcy5vd25lcikgcmV0dXJuO1xuICAgIHRoaXMub3duZXIuc2V0VHJpZ2dlclZhbHVlKHRoaXMuc2V0VG9OYW1lLCB0aGlzLnNldFZhbHVlLCB0aGlzLmlzVmFyaWFibGUpO1xuICB9XG59XG4vKipcbiAqIElmIGV4cHJlc3Npb24gcmV0dXJucyB0cnVlLCB0aGUgc3VydmV5IGdvIHRvIHF1ZXN0aW9uICoqZ290b05hbWUqKiBhbmQgZm9jdXMgaXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlUcmlnZ2VyU2tpcCBleHRlbmRzIFN1cnZleVRyaWdnZXIge1xuICBwdWJsaWMgZ290b05hbWU6IHN0cmluZztcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcInNraXB0cmlnZ2VyXCI7XG4gIH1cbiAgcHJvdGVjdGVkIG9uU3VjY2Vzcyh2YWx1ZXM6IEhhc2hUYWJsZTxhbnk+LCBwcm9wZXJ0aWVzOiBIYXNoVGFibGU8YW55Pikge1xuICAgIGlmICghdGhpcy5nb3RvTmFtZSB8fCAhdGhpcy5vd25lcikgcmV0dXJuO1xuICAgIHRoaXMub3duZXIuZm9jdXNRdWVzdGlvbih0aGlzLmdvdG9OYW1lKTtcbiAgfVxufVxuLyoqXG4gKiBJZiBleHByZXNzaW9uIHJldHVybnMgdHJ1ZSwgdGhlICoqcnVuRXhwcmVzc2lvbioqIHdpbGwgYmUgcnVuLiBJZiAqKnNldFRvTmFtZSoqIHByb3BlcnR5IGlzIG5vdCBlbXB0eSB0aGVuIHRoZSByZXN1bHQgb2YgKipydW5FeHByZXNzaW9uKiogd2lsbCBiZSBzZXQgdG8gaXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJ2ZXlUcmlnZ2VyUnVuRXhwcmVzc2lvbiBleHRlbmRzIFN1cnZleVRyaWdnZXIge1xuICBwdWJsaWMgc2V0VG9OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBydW5FeHByZXNzaW9uOiBhbnk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJydW5leHByZXNzaW9udHJpZ2dlclwiO1xuICB9XG4gIHByb3RlY3RlZCBvblN1Y2Nlc3ModmFsdWVzOiBIYXNoVGFibGU8YW55PiwgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT4pIHtcbiAgICBpZiAoIXRoaXMub3duZXIgfHwgIXRoaXMucnVuRXhwcmVzc2lvbikgcmV0dXJuO1xuICAgIHZhciBleHByZXNzaW9uID0gbmV3IEV4cHJlc3Npb25SdW5uZXIodGhpcy5ydW5FeHByZXNzaW9uKTtcbiAgICBpZiAoZXhwcmVzc2lvbi5jYW5SdW4pIHtcbiAgICAgIGV4cHJlc3Npb24ub25SdW5Db21wbGV0ZSA9IHJlcyA9PiB7XG4gICAgICAgIHRoaXMub25Db21wbGV0ZVJ1bkV4cHJlc3Npb24ocmVzKTtcbiAgICAgIH07XG4gICAgICBleHByZXNzaW9uLnJ1bih2YWx1ZXMsIHByb3BlcnRpZXMpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIG9uQ29tcGxldGVSdW5FeHByZXNzaW9uKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuc2V0VG9OYW1lIHx8IG5ld1ZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub3duZXIuc2V0VHJpZ2dlclZhbHVlKHRoaXMuc2V0VG9OYW1lLCBuZXdWYWx1ZSwgZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIElmIGV4cHJlc3Npb24gcmV0dXJucyB0cnVlLCB0aGUgdmFsdWUgZnJvbSBxdWVzdGlvbiAqKmZyb21OYW1lKiogd2lsbCBiZSBzZXQgaW50byAqKnNldFRvTmFtZSoqLlxuICovXG5leHBvcnQgY2xhc3MgU3VydmV5VHJpZ2dlckNvcHlWYWx1ZSBleHRlbmRzIFN1cnZleVRyaWdnZXIge1xuICBwdWJsaWMgc2V0VG9OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBmcm9tTmFtZTogYW55O1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHB1YmxpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiY29weXZhbHVldHJpZ2dlclwiO1xuICB9XG4gIHByb3RlY3RlZCBvblN1Y2Nlc3ModmFsdWVzOiBIYXNoVGFibGU8YW55PiwgcHJvcGVydGllczogSGFzaFRhYmxlPGFueT4pIHtcbiAgICBpZiAoIXRoaXMuc2V0VG9OYW1lIHx8ICF0aGlzLm93bmVyKSByZXR1cm47XG4gICAgdGhpcy5vd25lci5jb3B5VHJpZ2dlclZhbHVlKHRoaXMuc2V0VG9OYW1lLCB0aGlzLmZyb21OYW1lKTtcbiAgfVxufVxuXG5TZXJpYWxpemVyLmFkZENsYXNzKFwidHJpZ2dlclwiLCBbXG4gIHsgbmFtZTogXCJvcGVyYXRvclwiLCBkZWZhdWx0OiBcImVxdWFsXCIsIHZpc2libGU6IGZhbHNlIH0sXG4gIHsgbmFtZTogXCJ2YWx1ZVwiLCB2aXNpYmxlOiBmYWxzZSB9LFxuICBcImV4cHJlc3Npb246Y29uZGl0aW9uXCJcbl0pO1xuU2VyaWFsaXplci5hZGRDbGFzcyhcbiAgXCJzdXJ2ZXl0cmlnZ2VyXCIsXG4gIFt7IG5hbWU6IFwibmFtZVwiLCB2aXNpYmxlOiBmYWxzZSB9XSxcbiAgbnVsbCxcbiAgXCJ0cmlnZ2VyXCJcbik7XG5TZXJpYWxpemVyLmFkZENsYXNzKFxuICBcInZpc2libGV0cmlnZ2VyXCIsXG4gIFtcInBhZ2VzOnBhZ2VzXCIsIFwicXVlc3Rpb25zOnF1ZXN0aW9uc1wiXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlUcmlnZ2VyVmlzaWJsZSgpO1xuICB9LFxuICBcInN1cnZleXRyaWdnZXJcIlxuKTtcblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwiY29tcGxldGV0cmlnZ2VyXCIsXG4gIFtdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleVRyaWdnZXJDb21wbGV0ZSgpO1xuICB9LFxuICBcInN1cnZleXRyaWdnZXJcIlxuKTtcblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwic2V0dmFsdWV0cmlnZ2VyXCIsXG4gIFtcbiAgICB7IG5hbWU6IFwiIXNldFRvTmFtZTpxdWVzdGlvblwiIH0sXG4gICAge1xuICAgICAgbmFtZTogXCIhc2V0VmFsdWU6dHJpZ2dlcnZhbHVlXCIsXG4gICAgICBkZXBlbmRzT246IFwic2V0VG9OYW1lXCIsXG4gICAgICB2aXNpYmxlSWY6IGZ1bmN0aW9uKG9iajogYW55KSB7XG4gICAgICAgIHJldHVybiAhIW9iaiAmJiAhIW9ialtcInNldFRvTmFtZVwiXTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHsgbmFtZTogXCJpc1ZhcmlhYmxlOmJvb2xlYW5cIiwgdmlzaWJsZTogZmFsc2UgfVxuICBdLFxuICBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFN1cnZleVRyaWdnZXJTZXRWYWx1ZSgpO1xuICB9LFxuICBcInN1cnZleXRyaWdnZXJcIlxuKTtcblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwiY29weXZhbHVldHJpZ2dlclwiLFxuICBbeyBuYW1lOiBcIiFzZXRUb05hbWU6cXVlc3Rpb25cIiB9LCB7IG5hbWU6IFwiIWZyb21OYW1lOnF1ZXN0aW9uXCIgfV0sXG4gIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgU3VydmV5VHJpZ2dlckNvcHlWYWx1ZSgpO1xuICB9LFxuICBcInN1cnZleXRyaWdnZXJcIlxuKTtcblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwic2tpcHRyaWdnZXJcIixcbiAgW3sgbmFtZTogXCIhZ290b05hbWU6cXVlc3Rpb25cIiB9XSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlUcmlnZ2VyU2tpcCgpO1xuICB9LFxuICBcInN1cnZleXRyaWdnZXJcIlxuKTtcblNlcmlhbGl6ZXIuYWRkQ2xhc3MoXG4gIFwicnVuZXhwcmVzc2lvbnRyaWdnZXJcIixcbiAgW3sgbmFtZTogXCJzZXRUb05hbWU6cXVlc3Rpb25cIiB9LCBcInJ1bkV4cHJlc3Npb246ZXhwcmVzc2lvblwiXSxcbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBTdXJ2ZXlUcmlnZ2VyUnVuRXhwcmVzc2lvbigpO1xuICB9LFxuICBcInN1cnZleXRyaWdnZXJcIlxuKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy90cmlnZ2VyLnRzIiwiZnVuY3Rpb24gY29tcGFyZVZlcnNpb25zKGE6IGFueSwgYjogYW55KSB7XG4gIHZhciBpLCBkaWZmO1xuICB2YXIgcmVnRXhTdHJpcDAgPSAvKFxcLjArKSskLztcbiAgdmFyIHNlZ21lbnRzQSA9IGEucmVwbGFjZShyZWdFeFN0cmlwMCwgXCJcIikuc3BsaXQoXCIuXCIpO1xuICB2YXIgc2VnbWVudHNCID0gYi5yZXBsYWNlKHJlZ0V4U3RyaXAwLCBcIlwiKS5zcGxpdChcIi5cIik7XG4gIHZhciBsID0gTWF0aC5taW4oc2VnbWVudHNBLmxlbmd0aCwgc2VnbWVudHNCLmxlbmd0aCk7XG5cbiAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgIGRpZmYgPSBwYXJzZUludChzZWdtZW50c0FbaV0sIDEwKSAtIHBhcnNlSW50KHNlZ21lbnRzQltpXSwgMTApO1xuICAgIGlmIChkaWZmKSB7XG4gICAgICByZXR1cm4gZGlmZjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlZ21lbnRzQS5sZW5ndGggLSBzZWdtZW50c0IubGVuZ3RoO1xufVxuZnVuY3Rpb24gY29uZmlybUFjdGlvbihtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGNvbmZpcm0obWVzc2FnZSk7XG59XG5mdW5jdGlvbiBpc01vYmlsZSgpIHtcbiAgcmV0dXJuIHR5cGVvZiB3aW5kb3cub3JpZW50YXRpb24gIT09IFwidW5kZWZpbmVkXCI7XG59XG5cbmV4cG9ydCB7IGNvbXBhcmVWZXJzaW9ucywgY29uZmlybUFjdGlvbiwgaXNNb2JpbGUgfTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy91dGlscy91dGlscy50cyIsIi8qKlxuICAqIHZ1ZS1jbGFzcy1jb21wb25lbnQgdjUuMC4wXG4gICogKGMpIDIwMTUtMjAxNyBFdmFuIFlvdVxuICAqIEBsaWNlbnNlIE1JVFxuICAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcERlZmF1bHQgKGV4KSB7IHJldHVybiAoZXggJiYgKHR5cGVvZiBleCA9PT0gJ29iamVjdCcpICYmICdkZWZhdWx0JyBpbiBleCkgPyBleFsnZGVmYXVsdCddIDogZXg7IH1cblxudmFyIFZ1ZSA9IF9pbnRlcm9wRGVmYXVsdChyZXF1aXJlKCd2dWUnKSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZURlY29yYXRvcihmYWN0b3J5KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChfLCBrZXksIGluZGV4KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5kZXggIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBpbmRleCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAkZGVjb3JhdG9yUXVldWUucHVzaChmdW5jdGlvbiAob3B0aW9ucykgeyByZXR1cm4gZmFjdG9yeShvcHRpb25zLCBrZXksIGluZGV4KTsgfSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHdhcm4obWVzc2FnZSkge1xuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbdnVlLWNsYXNzLWNvbXBvbmVudF0gJyArIG1lc3NhZ2UpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gY29sbGVjdERhdGFGcm9tQ29uc3RydWN0b3Iodm0sIENvbXBvbmVudCkge1xuICAgIENvbXBvbmVudC5wcm90b3R5cGUuX2luaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModm0pO1xuICAgICAgICBpZiAodm0uJG9wdGlvbnMucHJvcHMpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiB2bS4kb3B0aW9ucy5wcm9wcykge1xuICAgICAgICAgICAgICAgIGlmICghdm0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGlmIChrZXkuY2hhckF0KDApICE9PSAnXycpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX3RoaXMsIGtleSwge1xuICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHZtW2tleV07IH0sXG4gICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiB2bVtrZXldID0gdmFsdWU7IH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICB2YXIgZGF0YSA9IG5ldyBDb21wb25lbnQoKTtcbiAgICB2YXIgcGxhaW5EYXRhID0ge307XG4gICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGlmIChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGxhaW5EYXRhW2tleV0gPSBkYXRhW2tleV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoIShDb21wb25lbnQucHJvdG90eXBlIGluc3RhbmNlb2YgVnVlKSAmJiBPYmplY3Qua2V5cyhwbGFpbkRhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHdhcm4oJ0NvbXBvbmVudCBjbGFzcyBtdXN0IGluaGVyaXQgVnVlIG9yIGl0cyBkZXNjZW5kYW50IGNsYXNzICcgK1xuICAgICAgICAgICAgICAgICd3aGVuIGNsYXNzIHByb3BlcnR5IGlzIHVzZWQuJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBsYWluRGF0YTtcbn1cblxudmFyICRpbnRlcm5hbEhvb2tzID0gW1xuICAgICdkYXRhJyxcbiAgICAnYmVmb3JlQ3JlYXRlJyxcbiAgICAnY3JlYXRlZCcsXG4gICAgJ2JlZm9yZU1vdW50JyxcbiAgICAnbW91bnRlZCcsXG4gICAgJ2JlZm9yZURlc3Ryb3knLFxuICAgICdkZXN0cm95ZWQnLFxuICAgICdiZWZvcmVVcGRhdGUnLFxuICAgICd1cGRhdGVkJyxcbiAgICAnYWN0aXZhdGVkJyxcbiAgICAnZGVhY3RpdmF0ZWQnLFxuICAgICdyZW5kZXInXG5dO1xudmFyICRkZWNvcmF0b3JRdWV1ZSA9IFtdO1xuZnVuY3Rpb24gY29tcG9uZW50RmFjdG9yeShDb21wb25lbnQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIG9wdGlvbnMubmFtZSA9IG9wdGlvbnMubmFtZSB8fCBDb21wb25lbnQuX2NvbXBvbmVudFRhZztcbiAgICB2YXIgcHJvdG8gPSBDb21wb25lbnQucHJvdG90eXBlO1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3RvKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICgkaW50ZXJuYWxIb29rcy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgb3B0aW9uc1trZXldID0gcHJvdG9ba2V5XTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIGtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgKG9wdGlvbnMubWV0aG9kcyB8fCAob3B0aW9ucy5tZXRob2RzID0ge30pKVtrZXldID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkZXNjcmlwdG9yLmdldCB8fCBkZXNjcmlwdG9yLnNldCkge1xuICAgICAgICAgICAgKG9wdGlvbnMuY29tcHV0ZWQgfHwgKG9wdGlvbnMuY29tcHV0ZWQgPSB7fSkpW2tleV0gPSB7XG4gICAgICAgICAgICAgICAgZ2V0OiBkZXNjcmlwdG9yLmdldCxcbiAgICAgICAgICAgICAgICBzZXQ6IGRlc2NyaXB0b3Iuc2V0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgKG9wdGlvbnMubWl4aW5zIHx8IChvcHRpb25zLm1peGlucyA9IFtdKSkucHVzaCh7XG4gICAgICAgIGRhdGE6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xsZWN0RGF0YUZyb21Db25zdHJ1Y3Rvcih0aGlzLCBDb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgJGRlY29yYXRvclF1ZXVlLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7IHJldHVybiBmbihvcHRpb25zKTsgfSk7XG4gICAgJGRlY29yYXRvclF1ZXVlID0gW107XG4gICAgdmFyIHN1cGVyUHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoQ29tcG9uZW50LnByb3RvdHlwZSk7XG4gICAgdmFyIFN1cGVyID0gc3VwZXJQcm90byBpbnN0YW5jZW9mIFZ1ZVxuICAgICAgICA/IHN1cGVyUHJvdG8uY29uc3RydWN0b3JcbiAgICAgICAgOiBWdWU7XG4gICAgcmV0dXJuIFN1cGVyLmV4dGVuZChvcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gQ29tcG9uZW50KG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3Rvcnkob3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiAoQ29tcG9uZW50KSB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRGYWN0b3J5KENvbXBvbmVudCwgb3B0aW9ucyk7XG4gICAgfTtcbn1cbihmdW5jdGlvbiAoQ29tcG9uZW50KSB7XG4gICAgZnVuY3Rpb24gcmVnaXN0ZXJIb29rcyhrZXlzKSB7XG4gICAgICAgICRpbnRlcm5hbEhvb2tzLnB1c2guYXBwbHkoJGludGVybmFsSG9va3MsIGtleXMpO1xuICAgIH1cbiAgICBDb21wb25lbnQucmVnaXN0ZXJIb29rcyA9IHJlZ2lzdGVySG9va3M7XG59KShDb21wb25lbnQgfHwgKENvbXBvbmVudCA9IHt9KSk7XG52YXIgQ29tcG9uZW50JDEgPSBDb21wb25lbnQ7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENvbXBvbmVudCQxO1xuZXhwb3J0cy5jcmVhdGVEZWNvcmF0b3IgPSBjcmVhdGVEZWNvcmF0b3I7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWNsYXNzLWNvbXBvbmVudC9kaXN0L3Z1ZS1jbGFzcy1jb21wb25lbnQuY29tbW9uLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH1cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtMDUwNTJjMGFcIiwgeyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfSlcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTA1MDUyYzBhXCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy92dWUvZW1wdHkudnVlXG4vLyBtb2R1bGUgaWQgPSAxNzdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcImZpZWxkc2V0XCIsXG4gICAgeyBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMucm9vdCB9LFxuICAgIFtcbiAgICAgIF9jKFwibGVnZW5kXCIsIHtcbiAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWxhYmVsXCI6IF92bS5xdWVzdGlvbi5sb2NUaXRsZS5yZW5kZXJlZEh0bWwgfVxuICAgICAgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLl9sKF92bS5xdWVzdGlvbi52aXNpYmxlQ2hvaWNlcywgZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuICFfdm0ucXVlc3Rpb24uaGFzQ29sdW1uc1xuICAgICAgICAgID8gX2MoXCJzdXJ2ZXktcmFkaW9ncm91cC1pdGVtXCIsIHtcbiAgICAgICAgICAgICAga2V5OiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgICBjbGFzczogX3ZtLmdldEl0ZW1DbGFzcyhpdGVtKSxcbiAgICAgICAgICAgICAgYXR0cnM6IHsgcXVlc3Rpb246IF92bS5xdWVzdGlvbiwgaXRlbTogaXRlbSwgaW5kZXg6IGluZGV4IH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLl9sKF92bS5xdWVzdGlvbi5jb2x1bW5zLCBmdW5jdGlvbihjb2x1bW4sIGNvbEluZGV4KSB7XG4gICAgICAgIHJldHVybiBfdm0ucXVlc3Rpb24uaGFzQ29sdW1uc1xuICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5nZXRDb2x1bW5DbGFzcygpIH0sXG4gICAgICAgICAgICAgIF92bS5fbChjb2x1bW4sIGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jKFwic3VydmV5LXJhZGlvZ3JvdXAtaXRlbVwiLCB7XG4gICAgICAgICAgICAgICAgICBrZXk6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmdldEl0ZW1DbGFzcyhpdGVtKSxcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uOiBfdm0ucXVlc3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBcIlwiICsgY29sSW5kZXggKyBpbmRleFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLnF1ZXN0aW9uLmNhblNob3dDbGVhckJ1dHRvblxuICAgICAgICA/IF9jKFwiZGl2XCIsIFtcbiAgICAgICAgICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuY2xlYXJCdXR0b24sXG4gICAgICAgICAgICAgIGF0dHJzOiB7IHR5cGU6IFwiYnV0dG9uXCIsIHZhbHVlOiBfdm0ucXVlc3Rpb24uY2xlYXJCdXR0b25DYXB0aW9uIH0sXG4gICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNsZWFyVmFsdWUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdKVxuICAgICAgICA6IF92bS5fZSgpXG4gICAgXSxcbiAgICAyXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTA2YzZkNTI2XCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi0wNmM2ZDUyNlwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL3JhZGlvZ3JvdXAudnVlXG4vLyBtb2R1bGUgaWQgPSAxNzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnJvb3QsXG4gICAgZG9tUHJvcHM6IHsgaW5uZXJIVE1MOiBfdm0uX3MoX3ZtLnF1ZXN0aW9uLmxvY0h0bWwucmVuZGVyZWRIdG1sKSB9XG4gIH0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi0wNzQyZTE2ZFwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtMDc0MmUxNmRcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9odG1sLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTc5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXCJkaXZcIiwgW1xuICAgIF9jKFwidGV4dGFyZWFcIiwge1xuICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzXG4gICAgICAgID8gX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMucm9vdFxuICAgICAgICA6IFwicGFuZWwtY29tbWVudC1yb290XCIsXG4gICAgICBhdHRyczoge1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgcmVhZG9ubHk6IF92bS5xdWVzdGlvbi5pc1JlYWRPbmx5LFxuICAgICAgICBkaXNhYmxlZDogX3ZtLnF1ZXN0aW9uLmlzUmVhZE9ubHksXG4gICAgICAgIGlkOiBfdm0ucXVlc3Rpb24uaW5wdXRJZCxcbiAgICAgICAgbWF4bGVuZ3RoOiBfdm0ucXVlc3Rpb24uZ2V0TWF4TGVuZ3RoKCksXG4gICAgICAgIGNvbHM6IF92bS5xdWVzdGlvbi5jb2xzLFxuICAgICAgICBcImFyaWEtbGFiZWxcIjogX3ZtLnF1ZXN0aW9uLmxvY1RpdGxlLnJlbmRlcmVkSHRtbCxcbiAgICAgICAgcm93czogX3ZtLnF1ZXN0aW9uLnJvd3MsXG4gICAgICAgIHBsYWNlaG9sZGVyOiBfdm0ucXVlc3Rpb24ucGxhY2VIb2xkZXJcbiAgICAgIH0sXG4gICAgICBkb21Qcm9wczogeyB2YWx1ZTogX3ZtLnF1ZXN0aW9uLnZhbHVlIH0sXG4gICAgICBvbjogeyBjaGFuZ2U6IF92bS5jaGFuZ2UsIGtleXVwOiBfdm0ua2V5dXAgfVxuICAgIH0pXG4gIF0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi0wOTljMmM4ZFwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtMDk5YzJjOGRcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9jb21tZW50LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTgwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7IHN0eWxlOiB7IG92ZXJmbG93WDogX3ZtLnF1ZXN0aW9uLmhvcml6b250YWxTY3JvbGwgPyBcInNjcm9sbFwiIDogXCJcIiB9IH0sXG4gICAgW19jKFwic3VydmV5LW1hdHJpeHRhYmxlXCIsIHsgYXR0cnM6IHsgcXVlc3Rpb246IF92bS5xdWVzdGlvbiB9IH0pXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTBiNGRhNmQ4XCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi0wYjRkYTZkOFwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL21hdHJpeGRyb3Bkb3duLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTgxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX3ZtLnF1ZXN0aW9uLmlzVmlzaWJsZVxuICAgID8gX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMucGFuZWwuY29udGFpbmVyLFxuICAgICAgICAgIHN0eWxlOiBfdm0ucm9vdFN0eWxlXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcbiAgICAgICAgICAgIFwiaDRcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LXNob3dcIixcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uaGFzVGl0bGUsXG4gICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBcImhhc1RpdGxlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGNsYXNzOiBfdm0uZ2V0VGl0bGVTdHlsZSgpLFxuICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLmNoYW5nZUV4cGFuZGVkIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF9jKFwic3VydmV5LXN0cmluZ1wiLCB7XG4gICAgICAgICAgICAgICAgYXR0cnM6IHsgbG9jU3RyaW5nOiBfdm0ucXVlc3Rpb24ubG9jVGl0bGUgfVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgX2MoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLnNob3dJY29uLFxuICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBcInNob3dJY29uXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0uaWNvbkNzc1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMucGFuZWwuZGVzY3JpcHRpb24gfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgICBhdHRyczogeyBsb2NTdHJpbmc6IF92bS5xdWVzdGlvbi5sb2NEZXNjcmlwdGlvbiB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgICksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfYyhcInN1cnZleS1lcnJvcnNcIiwgeyBhdHRyczogeyBxdWVzdGlvbjogX3ZtLnF1ZXN0aW9uIH0gfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfYyhcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogIV92bS5pc0NvbGxhcHNlZCxcbiAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwiIWlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5wYW5lbC5jb250ZW50LFxuICAgICAgICAgICAgICBzdHlsZTogeyBwYWRkaW5nTGVmdDogX3ZtLnF1ZXN0aW9uLmlubmVyUGFkZGluZ0xlZnQgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF92bS5fbChfdm0ucm93cywgZnVuY3Rpb24ocm93LCBpbmRleCkge1xuICAgICAgICAgICAgICByZXR1cm4gcm93LnZpc2libGVcbiAgICAgICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogX3ZtLnF1ZXN0aW9uLmlkICsgXCJfXCIgKyBpbmRleCwgY2xhc3M6IF92bS5jc3Mucm93IH0sXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcInN1cnZleS1yb3dcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgcm93OiByb3csIHN1cnZleTogX3ZtLnN1cnZleSwgY3NzOiBfdm0uY3NzIH1cbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgIClcbiAgICA6IF92bS5fZSgpXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi0wYzc4ODk5Y1wiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtMGM3ODg5OWNcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9wYW5lbC52dWVcbi8vIG1vZHVsZSBpZCA9IDE4MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIFtfdm0uX3YoX3ZtLl9zKF92bS50ZXh0KSldKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH1cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtMGQyYWJlMjFcIiwgeyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfSlcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTBkMmFiZTIxXCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy92dWUvdGltZXJwYW5lbC52dWVcbi8vIG1vZHVsZSBpZCA9IDE4M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZmllbGRzZXRcIixcbiAgICB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5yb290IH0sXG4gICAgW1xuICAgICAgX2MoXCJsZWdlbmRcIiwge1xuICAgICAgICBhdHRyczogeyBcImFyaWEtbGFiZWxcIjogX3ZtLnF1ZXN0aW9uLmxvY1RpdGxlLnJlbmRlcmVkSHRtbCB9XG4gICAgICB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uX2woX3ZtLnF1ZXN0aW9uLnZpc2libGVDaG9pY2VzLCBmdW5jdGlvbihpdGVtLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gX2MoXCJkaXZcIiwgeyBrZXk6IGl0ZW0udmFsdWUsIGNsYXNzOiBfdm0uZ2V0SXRlbUNsYXNzKGl0ZW0pIH0sIFtcbiAgICAgICAgICBfYyhcImxhYmVsXCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmxhYmVsIH0sIFtcbiAgICAgICAgICAgIF92bS5xdWVzdGlvbi5tdWx0aVNlbGVjdFxuICAgICAgICAgICAgICA/IF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJtb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0ucXVlc3Rpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJxdWVzdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuaXRlbUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgICBzdGF0aWNTdHlsZTogeyBkaXNwbGF5OiBcIm5vbmVcIiB9LFxuICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBfdm0ucXVlc3Rpb24ubmFtZSArIFwiX1wiICsgX3ZtLnF1ZXN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICBpZDogX3ZtLnF1ZXN0aW9uLmlucHV0SWQgKyBcIl9cIiArIGl0ZW0udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBfdm0ucXVlc3Rpb24uaXNSZWFkT25seSB8fCAhaXRlbS5pc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1yZXF1aXJlZFwiOiBfdm0ucXVlc3Rpb24uaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IF92bS5xdWVzdGlvbi5sb2NUaXRsZS5yZW5kZXJlZEh0bWxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBkb21Qcm9wczoge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogQXJyYXkuaXNBcnJheShfdm0ucXVlc3Rpb24udmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgPyBfdm0uX2koX3ZtLnF1ZXN0aW9uLnZhbHVlLCBpdGVtLnZhbHVlKSA+IC0xXG4gICAgICAgICAgICAgICAgICAgICAgOiBfdm0ucXVlc3Rpb24udmFsdWVcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyICQkYSA9IF92bS5xdWVzdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICQkZWwgPSAkZXZlbnQudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgJCRjID0gJCRlbC5jaGVja2VkID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJCRhKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyICQkdiA9IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICQkaSA9IF92bS5faSgkJGEsICQkdilcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkJGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJCRpIDwgMCAmJiAoX3ZtLnF1ZXN0aW9uLnZhbHVlID0gJCRhLmNvbmNhdCgkJHYpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJCRpID4gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX3ZtLnF1ZXN0aW9uLnZhbHVlID0gJCRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgJCRpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbmNhdCgkJGEuc2xpY2UoJCRpICsgMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdm0ucXVlc3Rpb24udmFsdWUgPSAkJGNcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICA6IF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJtb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0ucXVlc3Rpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJxdWVzdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuaXRlbUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgICBzdGF0aWNTdHlsZTogeyBkaXNwbGF5OiBcIm5vbmVcIiB9LFxuICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYWRpb1wiLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBfdm0ucXVlc3Rpb24ubmFtZSArIFwiX1wiICsgX3ZtLnF1ZXN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICBpZDogX3ZtLnF1ZXN0aW9uLmlucHV0SWQgKyBcIl9cIiArIGl0ZW0udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBfdm0ucXVlc3Rpb24uaXNSZWFkT25seSB8fCAhaXRlbS5pc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1yZXF1aXJlZFwiOiBfdm0ucXVlc3Rpb24uaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IF92bS5xdWVzdGlvbi5sb2NUaXRsZS5yZW5kZXJlZEh0bWxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBkb21Qcm9wczoge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogX3ZtLl9xKF92bS5xdWVzdGlvbi52YWx1ZSwgaXRlbS52YWx1ZSlcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLnZhbHVlID0gaXRlbS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgX2MoXCJkaXZcIiwgW1xuICAgICAgICAgICAgICBfdm0ucXVlc3Rpb24uY29udGVudE1vZGUgPT09IFwiaW1hZ2VcIlxuICAgICAgICAgICAgICAgID8gX2MoXCJpbWdcIiwge1xuICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuaW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IG9iamVjdEZpdDogX3ZtLnF1ZXN0aW9uLmltYWdlRml0IH0sXG4gICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3JjOiBpdGVtLmltYWdlTGluayxcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogX3ZtLnF1ZXN0aW9uLmltYWdlV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gX3ZtLnF1ZXN0aW9uLmltYWdlV2lkdGggKyBcInB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogX3ZtLnF1ZXN0aW9uLmltYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICA/IF92bS5xdWVzdGlvbi5pbWFnZUhlaWdodCArIFwicHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgYWx0OiBpdGVtLnRleHQgfHwgaXRlbS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jb250ZW50TW9kZSA9PT0gXCJ2aWRlb1wiXG4gICAgICAgICAgICAgICAgPyBfYyhcImVtYmVkXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmltYWdlLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBvYmplY3RGaXQ6IF92bS5xdWVzdGlvbi5pbWFnZUZpdCB9LFxuICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgIHNyYzogaXRlbS5pbWFnZUxpbmssXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IF92bS5xdWVzdGlvbi5pbWFnZVdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICA/IF92bS5xdWVzdGlvbi5pbWFnZVdpZHRoICsgXCJweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IF92bS5xdWVzdGlvbi5pbWFnZUhlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBfdm0ucXVlc3Rpb24uaW1hZ2VIZWlnaHQgKyBcInB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLnNob3dMYWJlbFxuICAgICAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLml0ZW1UZXh0LFxuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHRpdGxlOiBpdGVtLnRleHQgfHwgaXRlbS52YWx1ZSB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoX3ZtLl9zKGl0ZW0udGV4dCB8fCBpdGVtLnZhbHVlKSldXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICBdKVxuICAgICAgICBdKVxuICAgICAgfSlcbiAgICBdLFxuICAgIDJcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH1cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtMTUzZmUwNTJcIiwgeyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfSlcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTE1M2ZlMDUyXCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy92dWUvaW1hZ2VwaWNrZXIudnVlXG4vLyBtb2R1bGUgaWQgPSAxODRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy50ZXh0IH0sIFtcbiAgICBfdm0uX3YoX3ZtLl9zKF92bS5xdWVzdGlvbi5kaXNwbGF5VmFsdWUpKVxuICBdKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH1cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtMWQyMDg2NWFcIiwgeyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfSlcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTFkMjA4NjVhXCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy92dWUvZXhwcmVzc2lvbi52dWVcbi8vIG1vZHVsZSBpZCA9IDE4NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgW1xuICAgICAgX3ZtLmhhc0h0bWxcbiAgICAgICAgPyBfYyhcImRpdlwiLCB7IGRvbVByb3BzOiB7IGlubmVySFRNTDogX3ZtLl9zKF92bS5jdXN0b21IdG1sKSB9IH0pXG4gICAgICAgIDogX3ZtLl9lKCksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLmhhc0RlZmF1bHRSZW5kZXJcbiAgICAgICAgPyBfYyhfdm0uY29tcG9uZW50TmFtZSwge1xuICAgICAgICAgICAgdGFnOiBcImNvbXBvbmVudFwiLFxuICAgICAgICAgICAgYXR0cnM6IHsgcXVlc3Rpb246IF92bS5xdWVzdGlvbiwgY3NzOiBfdm0uY3NzIH1cbiAgICAgICAgICB9KVxuICAgICAgICA6IF92bS5fZSgpXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTFlNjFhN2I3XCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi0xZTYxYTdiN1wiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL2N1c3RvbXdpZGdldC52dWVcbi8vIG1vZHVsZSBpZCA9IDE4NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnJvb3QgfSwgW1xuICAgIF9jKFwibGFiZWxcIiwgeyBjbGFzczogX3ZtLml0ZW1DbGFzcyB9LCBbXG4gICAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgICAgdmFsdWU6IF92bS5xdWVzdGlvbi5jaGVja2VkVmFsdWUsXG4gICAgICAgICAgICBleHByZXNzaW9uOiBcInF1ZXN0aW9uLmNoZWNrZWRWYWx1ZVwiXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuY29udHJvbCxcbiAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgICAgbmFtZTogX3ZtLnF1ZXN0aW9uLm5hbWUsXG4gICAgICAgICAgaWQ6IF92bS5xdWVzdGlvbi5pbnB1dElkLFxuICAgICAgICAgIGRpc2FibGVkOiBfdm0ucXVlc3Rpb24uaXNSZWFkT25seSxcbiAgICAgICAgICBcImFyaWEtcmVxdWlyZWRcIjogX3ZtLnF1ZXN0aW9uLmlzUmVxdWlyZWQsXG4gICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IF92bS5xdWVzdGlvbi5sb2NUaXRsZS5yZW5kZXJlZEh0bWxcbiAgICAgICAgfSxcbiAgICAgICAgZG9tUHJvcHM6IHtcbiAgICAgICAgICB2YWx1ZTogX3ZtLnF1ZXN0aW9uLmNoZWNrZWRWYWx1ZSxcbiAgICAgICAgICBpbmRldGVybWluYXRlOiBfdm0ucXVlc3Rpb24uaXNJbmRldGVybWluYXRlLFxuICAgICAgICAgIGNoZWNrZWQ6IEFycmF5LmlzQXJyYXkoX3ZtLnF1ZXN0aW9uLmNoZWNrZWRWYWx1ZSlcbiAgICAgICAgICAgID8gX3ZtLl9pKF92bS5xdWVzdGlvbi5jaGVja2VkVmFsdWUsIF92bS5xdWVzdGlvbi5jaGVja2VkVmFsdWUpID4gLTFcbiAgICAgICAgICAgIDogX3ZtLnF1ZXN0aW9uLmNoZWNrZWRWYWx1ZVxuICAgICAgICB9LFxuICAgICAgICBvbjoge1xuICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciAkJGEgPSBfdm0ucXVlc3Rpb24uY2hlY2tlZFZhbHVlLFxuICAgICAgICAgICAgICAkJGVsID0gJGV2ZW50LnRhcmdldCxcbiAgICAgICAgICAgICAgJCRjID0gJCRlbC5jaGVja2VkID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkJGEpKSB7XG4gICAgICAgICAgICAgIHZhciAkJHYgPSBfdm0ucXVlc3Rpb24uY2hlY2tlZFZhbHVlLFxuICAgICAgICAgICAgICAgICQkaSA9IF92bS5faSgkJGEsICQkdilcbiAgICAgICAgICAgICAgaWYgKCQkYykge1xuICAgICAgICAgICAgICAgICQkaSA8IDAgJiYgKF92bS5xdWVzdGlvbi5jaGVja2VkVmFsdWUgPSAkJGEuY29uY2F0KCQkdikpXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJCRpID4gLTEgJiZcbiAgICAgICAgICAgICAgICAgIChfdm0ucXVlc3Rpb24uY2hlY2tlZFZhbHVlID0gJCRhXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCAkJGkpXG4gICAgICAgICAgICAgICAgICAgIC5jb25jYXQoJCRhLnNsaWNlKCQkaSArIDEpKSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNoZWNrZWRWYWx1ZSA9ICQkY1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJzcGFuXCIsIHsgY2xhc3M6IF92bS5nZXRMYWJlbENsYXNzKGZhbHNlKSB9LCBbXG4gICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLnF1ZXN0aW9uLmxvY0xhYmVsRmFsc2UucmVuZGVyZWRIdG1sKSlcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnN3aXRjaCB9LCBbXG4gICAgICAgIF9jKFwic3BhblwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5zbGlkZXIgfSlcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwic3BhblwiLCB7IGNsYXNzOiBfdm0uZ2V0TGFiZWxDbGFzcyh0cnVlKSB9LCBbXG4gICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLnF1ZXN0aW9uLmxvY0xhYmVsVHJ1ZS5yZW5kZXJlZEh0bWwpKVxuICAgICAgXSlcbiAgICBdKVxuICBdKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH1cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtMWVkYjlkZDZcIiwgeyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfSlcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTFlZGI5ZGQ2XCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy92dWUvYm9vbGVhbi52dWVcbi8vIG1vZHVsZSBpZCA9IDE4N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnJvb3QgfSwgW1xuICAgICFfdm0ucXVlc3Rpb24uaXNSZWFkT25seVxuICAgICAgPyBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuZmlsZUlucHV0LFxuICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICB0eXBlOiBcImZpbGVcIixcbiAgICAgICAgICAgIGlkOiBfdm0ucXVlc3Rpb24uaW5wdXRJZCxcbiAgICAgICAgICAgIFwiYXJpYS1yZXF1aXJlZFwiOiBfdm0ucXVlc3Rpb24uaXNSZXF1aXJlZCxcbiAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBfdm0ucXVlc3Rpb24ubG9jVGl0bGUucmVuZGVyZWRIdG1sLFxuICAgICAgICAgICAgbXVsdGlwbGU6IF92bS5xdWVzdGlvbi5hbGxvd011bHRpcGxlID8gXCJtdWx0aXBsZVwiIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdGl0bGU6IF92bS5xdWVzdGlvbi5pbnB1dFRpdGxlLFxuICAgICAgICAgICAgYWNjZXB0OiBfdm0ucXVlc3Rpb24uYWNjZXB0ZWRUeXBlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgb246IHsgY2hhbmdlOiBfdm0uZG9DaGFuZ2UgfVxuICAgICAgICB9KVxuICAgICAgOiBfdm0uX2UoKSxcbiAgICBfdm0uX3YoXCIgXCIpLFxuICAgIF92bS5xdWVzdGlvbi5pc1JlYWRPbmx5XG4gICAgICA/IF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgIGNsYXNzOiBfdm0uZ2V0UGxhY2Vob2xkZXJDbGFzcygpLFxuICAgICAgICAgIHN0YXRpY1N0eWxlOiB7IGNvbG9yOiBcInRyYW5zcGFyZW50XCIgfSxcbiAgICAgICAgICBhdHRyczogeyB0eXBlOiBcImZpbGVcIiwgZGlzYWJsZWQ6IFwiXCIsIHBsYWNlaG9sZGVyOiBfdm0ucXVlc3Rpb24udGl0bGUgfVxuICAgICAgICB9KVxuICAgICAgOiBfdm0uX2UoKSxcbiAgICBfdm0uX3YoXCIgXCIpLFxuICAgIF9jKFxuICAgICAgXCJkaXZcIixcbiAgICAgIHtcbiAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmZpbGVEZWNvcmF0b3IsXG4gICAgICAgIG9uOiB7IGRyb3A6IF92bS5vbkRyb3AsIGRyYWdvdmVyOiBfdm0ub25EcmFnT3ZlciB9XG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy53cmFwcGVyIH0sIFtcbiAgICAgICAgICBfYyhcbiAgICAgICAgICAgIFwibGFiZWxcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3M6XG4gICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuY2hvb3NlRmlsZSArXG4gICAgICAgICAgICAgICAgKF92bS5xdWVzdGlvbi5pc1JlYWRPbmx5XG4gICAgICAgICAgICAgICAgICA/IFwiIFwiICsgX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgIDogXCJcIiksXG4gICAgICAgICAgICAgIGF0dHJzOiB7IGZvcjogX3ZtLnF1ZXN0aW9uLmlucHV0SWQgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtfdm0uX3YoX3ZtLl9zKF92bS5xdWVzdGlvbi5jaG9vc2VCdXR0b25DYXB0aW9uKSldXG4gICAgICAgICAgKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF92bS5xdWVzdGlvbi5pc0VtcHR5KClcbiAgICAgICAgICAgID8gX2MoXCJzcGFuXCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLm5vRmlsZUNob3NlbiB9LCBbXG4gICAgICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0ucXVlc3Rpb24ubm9GaWxlQ2hvc2VuQ2FwdGlvbikpXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgIF0pXG4gICAgICBdXG4gICAgKSxcbiAgICBfdm0uX3YoXCIgXCIpLFxuICAgICFfdm0ucXVlc3Rpb24uaXNSZWFkT25seSAmJiAhX3ZtLnF1ZXN0aW9uLmlzRW1wdHkoKVxuICAgICAgPyBfYyhcbiAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5yZW1vdmVCdXR0b24sXG4gICAgICAgICAgICBhdHRyczogeyB0eXBlOiBcImJ1dHRvblwiIH0sXG4gICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLmRvQ2xlYW4gfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgW192bS5fdihfdm0uX3MoX3ZtLnF1ZXN0aW9uLmNsZWFuQnV0dG9uQ2FwdGlvbikpXVxuICAgICAgICApXG4gICAgICA6IF92bS5fZSgpLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgIV92bS5xdWVzdGlvbi5pc0VtcHR5KClcbiAgICAgID8gX2MoXG4gICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICBfdm0uX2woX3ZtLnF1ZXN0aW9uLnByZXZpZXdWYWx1ZSwgZnVuY3Rpb24odmFsLCBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwidmFsXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGtleTogX3ZtLnF1ZXN0aW9uLmlucHV0SWQgKyBcIl9cIiArIGluZGV4LFxuICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5wcmV2aWV3XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB2YWwubmFtZVxuICAgICAgICAgICAgICAgICAgPyBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5maWxlU2lnbiB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmOiB2YWwuY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdmFsLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQ6IHZhbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBfdm0ucXVlc3Rpb24uaW1hZ2VXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW192bS5fdihfdm0uX3ModmFsLm5hbWUpKV1cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNhblByZXZpZXdJbWFnZSh2YWwpXG4gICAgICAgICAgICAgICAgICA/IF9jKFwiaW1nXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiB2YWwuY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogX3ZtLnF1ZXN0aW9uLmltYWdlSGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IF92bS5xdWVzdGlvbi5pbWFnZVdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiBcIkZpbGUgcHJldmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgIHZhbC5uYW1lICYmICFfdm0ucXVlc3Rpb24uaXNSZWFkT25seVxuICAgICAgICAgICAgICAgICAgPyBfYyhcImRpdlwiLCBbXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnJlbW92ZUZpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmRvUmVtb3ZlRmlsZSh2YWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW192bS5fdihfdm0uX3MoX3ZtLnF1ZXN0aW9uLnJlbW92ZUZpbGVDYXB0aW9uKSldXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHZpZXdCb3g6IFwiMCAwIDE2IDE2XCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uZG9SZW1vdmVGaWxlKHZhbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwicGF0aFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTTgsMkM0LjcsMiwyLDQuNywyLDhzMi43LDYsNiw2czYtMi43LDYtNlMxMS4zLDIsOCwyeiBNMTEsMTBsLTEsMUw4LDlsLTIsMmwtMS0xbDItMkw1LDZsMS0xbDIsMmwyLTJsMSwxTDksOCBMMTEsMTB6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgIHZhbC5uYW1lXG4gICAgICAgICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuZmlsZVNpZ25Cb3R0b20gfSxcbiAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogdmFsLmNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdmFsLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZDogdmFsLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogX3ZtLnF1ZXN0aW9uLmltYWdlV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoX3ZtLl9zKHZhbC5uYW1lKSldXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICA6IF92bS5fZSgpLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgIV92bS5xdWVzdGlvbi5pc1JlYWRPbmx5ICYmICFfdm0ucXVlc3Rpb24uaXNFbXB0eSgpXG4gICAgICA/IF9jKFxuICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnJlbW92ZUJ1dHRvbkJvdHRvbSxcbiAgICAgICAgICAgIGF0dHJzOiB7IHR5cGU6IFwiYnV0dG9uXCIgfSxcbiAgICAgICAgICAgIG9uOiB7IGNsaWNrOiBfdm0uZG9DbGVhbiB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbX3ZtLl92KF92bS5fcyhfdm0ucXVlc3Rpb24uY2xlYW5CdXR0b25DYXB0aW9uKSldXG4gICAgICAgIClcbiAgICAgIDogX3ZtLl9lKClcbiAgXSlcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTIwZjcwMjg0XCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi0yMGY3MDI4NFwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL2ZpbGUudnVlXG4vLyBtb2R1bGUgaWQgPSAxODhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0uZ2V0SGVhZGVyQ2xhc3MoX3ZtLmVsZW1lbnQpIH0sIFtcbiAgICBfdm0uZWxlbWVudC5oYXNUaXRsZVxuICAgICAgPyBfYyhcbiAgICAgICAgICBcImg1XCIsXG4gICAgICAgICAgeyBjbGFzczogX3ZtLmdldFRpdGxlQ2xhc3MoX3ZtLmVsZW1lbnQpIH0sXG4gICAgICAgICAgW1xuICAgICAgICAgICAgX3ZtLmVsZW1lbnQubm9cbiAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmVsZW1lbnQuY3NzQ2xhc3Nlcy5udW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIHN0YXRpY1N0eWxlOiB7IHBvc2l0aW9uOiBcInN0YXRpY1wiIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBbX3ZtLl92KF92bS5fcyhfdm0uZWxlbWVudC5ubykpXVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICBfdm0uZWxlbWVudC5ub1xuICAgICAgICAgICAgICA/IF9jKFwic3BhblwiLCB7IHN0YXRpY1N0eWxlOiB7IHBvc2l0aW9uOiBcInN0YXRpY1wiIH0gfSwgW1xuICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiLsKgXCIpXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICBfYyhcInN1cnZleS1zdHJpbmdcIiwgeyBhdHRyczogeyBsb2NTdHJpbmc6IF92bS5lbGVtZW50LmxvY1RpdGxlIH0gfSksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgIV92bS5lbGVtZW50LmdldFF1ZXN0aW9uVGl0bGVUZW1wbGF0ZSgpXG4gICAgICAgICAgICAgID8gX2MoXCJzcGFuXCIsIHsgY2xhc3M6IF92bS5lbGVtZW50LmNzc0NsYXNzZXMucmVxdWlyZWRUZXh0IH0sIFtcbiAgICAgICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLmVsZW1lbnQucmVxdWlyZWRUZXh0KSlcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgXSxcbiAgICAgICAgICAxXG4gICAgICAgIClcbiAgICAgIDogX3ZtLl9lKCksXG4gICAgX3ZtLl92KFwiIFwiKSxcbiAgICBfdm0uZWxlbWVudC5oYXNEZXNjcmlwdGlvblVuZGVyVGl0bGVcbiAgICAgID8gX2MoXG4gICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICB7IGNsYXNzOiBfdm0uZWxlbWVudC5jc3NDbGFzc2VzLmRlc2NyaXB0aW9uIH0sXG4gICAgICAgICAgW1xuICAgICAgICAgICAgX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgYXR0cnM6IHsgbG9jU3RyaW5nOiBfdm0uZWxlbWVudC5sb2NEZXNjcmlwdGlvbiB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF0sXG4gICAgICAgICAgMVxuICAgICAgICApXG4gICAgICA6IF92bS5fZSgpXG4gIF0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi0yN2FkYzUzN1wiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtMjdhZGM1MzdcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9lbGVtZW50aGVhZGVyLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTg5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXCJkaXZcIiwgeyBjbGFzczogX3ZtLmNzcy5wcm9ncmVzcyB9LCBbXG4gICAgX2MoXG4gICAgICBcImRpdlwiLFxuICAgICAge1xuICAgICAgICBjbGFzczogX3ZtLmNzcy5wcm9ncmVzc0JhcixcbiAgICAgICAgc3R5bGU6IHsgd2lkdGg6IF92bS5wcm9ncmVzcyB9LFxuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHJvbGU6IFwicHJvZ3Jlc3NiYXJcIixcbiAgICAgICAgICBcImFyaWEtdmFsdWVtaW5cIjogXCIwXCIsXG4gICAgICAgICAgXCJhcmlhLXZhbHVlbWF4XCI6IFwiMTAwXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtcbiAgICAgICAgX2MoXG4gICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgeyBjbGFzczogX3ZtLmNzcy5wcm9ncmVzc1RleHQgKyBcIiBcIiArIF92bS5jc3MucHJvZ3Jlc3NUZXh0SW5CYXIgfSxcbiAgICAgICAgICBbX3ZtLl92KF92bS5fcyhfdm0uc3VydmV5LnByb2dyZXNzVGV4dCkpXVxuICAgICAgICApXG4gICAgICBdXG4gICAgKSxcbiAgICBfdm0uX3YoXCIgXCIpLFxuICAgIF9jKFxuICAgICAgXCJzcGFuXCIsXG4gICAgICB7IGNsYXNzOiBfdm0uY3NzLnByb2dyZXNzVGV4dCArIFwiIFwiICsgX3ZtLmNzcy5wcm9ncmVzc1RleHRVbmRlckJhciB9LFxuICAgICAgW192bS5fdihfdm0uX3MoX3ZtLnN1cnZleS5wcm9ncmVzc1RleHQpKV1cbiAgICApXG4gIF0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi0yN2UzMjVlZlwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtMjdlMzI1ZWZcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9wcm9ncmVzcy52dWVcbi8vIG1vZHVsZSBpZCA9IDE5MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZm9ybS1ncm91cFwiIH0sIFtcbiAgICBfYyhcInRleHRhcmVhXCIsIHtcbiAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5vdGhlciB8fCBfdm0uY29tbWVudENsYXNzLFxuICAgICAgYXR0cnM6IHtcbiAgICAgICAgcmVhZG9ubHk6IF92bS5xdWVzdGlvbi5pc1JlYWRPbmx5LFxuICAgICAgICBkaXNhYmxlZDogX3ZtLnF1ZXN0aW9uLmlzUmVhZE9ubHksXG4gICAgICAgIG1heGxlbmd0aDogX3ZtLnF1ZXN0aW9uLmdldE90aGVyc01heExlbmd0aCgpLFxuICAgICAgICBwbGFjZWhvbGRlcjogX3ZtLnF1ZXN0aW9uLm90aGVyUGxhY2VIb2xkZXIsXG4gICAgICAgIFwiYXJpYS1sYWJlbFwiOiBfdm0ucXVlc3Rpb24ubG9jVGl0bGUucmVuZGVyZWRIdG1sXG4gICAgICB9LFxuICAgICAgZG9tUHJvcHM6IHsgdmFsdWU6IF92bS5xdWVzdGlvbi5jb21tZW50IH0sXG4gICAgICBvbjogeyBjaGFuZ2U6IF92bS5jaGFuZ2UsIGtleXVwOiBfdm0ua2V5dXAgfVxuICAgIH0pXG4gIF0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi0yZWQ3NzZmZlwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtMmVkNzc2ZmZcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9vdGhlckNob2ljZS52dWVcbi8vIG1vZHVsZSBpZCA9IDE5MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwidGRcIixcbiAgICB7IGNsYXNzOiBfdm0uZ2V0Q2VsbENsYXNzKCksIGF0dHJzOiB7IGhlYWRlcnM6IF92bS5nZXRIZWFkZXJzKCkgfSB9LFxuICAgIFtcbiAgICAgIF92bS5jZWxsLmhhc1F1ZXN0aW9uXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfdm0uaGFzRXJyb3JzT25Ub3BcbiAgICAgICAgICAgICAgICA/IF9jKFwic3VydmV5LWVycm9yc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHF1ZXN0aW9uOiBfdm0uY2VsbC5xdWVzdGlvbiwgbG9jYXRpb246IFwidG9wXCIgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICBfYyhfdm0uZ2V0V2lkZ2V0Q29tcG9uZW50TmFtZShfdm0uY2VsbC5xdWVzdGlvbiksIHtcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLmlzVmlzaWJsZSxcbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJpc1Zpc2libGVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgdGFnOiBcImNvbXBvbmVudFwiLFxuICAgICAgICAgICAgICAgIGF0dHJzOiB7IHF1ZXN0aW9uOiBfdm0uY2VsbC5xdWVzdGlvbiB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICBfdm0uaGFzRXJyb3JzT25Cb3R0b21cbiAgICAgICAgICAgICAgICA/IF9jKFwic3VydmV5LWVycm9yc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHF1ZXN0aW9uOiBfdm0uY2VsbC5xdWVzdGlvbiwgbG9jYXRpb246IFwiYm90dG9tXCIgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgIClcbiAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uY2VsbC5pc1JlbW92ZVJvd1xuICAgICAgICA/IF9jKFxuICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3M6XG4gICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuYnV0dG9uICtcbiAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuYnV0dG9uUmVtb3ZlLFxuICAgICAgICAgICAgICBhdHRyczogeyB0eXBlOiBcImJ1dHRvblwiIH0sXG4gICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgX3ZtLnJlbW92ZVJvd0NsaWNrKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF9jKFwic3BhblwiLCBbX3ZtLl92KF92bS5fcyhfdm0ucXVlc3Rpb24ucmVtb3ZlUm93VGV4dCkpXSksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF9jKFwic3BhblwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5pY29uUmVtb3ZlIH0pXG4gICAgICAgICAgICBdXG4gICAgICAgICAgKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5jZWxsLmhhc1RpdGxlXG4gICAgICAgID8gX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHsgYXR0cnM6IHsgbG9jU3RyaW5nOiBfdm0uY2VsbC5sb2NUaXRsZSB9IH0pXG4gICAgICAgIDogX3ZtLl9lKClcbiAgICBdLFxuICAgIDFcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH1cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtM2NhNTRlZTVcIiwgeyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfSlcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTNjYTU0ZWU1XCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy92dWUvbWF0cml4Y2VsbC52dWVcbi8vIG1vZHVsZSBpZCA9IDE5MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiaW5wdXRcIiwge1xuICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5yb290LFxuICAgIGF0dHJzOiB7XG4gICAgICBkaXNhYmxlZDogX3ZtLnF1ZXN0aW9uLmlzUmVhZE9ubHksXG4gICAgICB0eXBlOiBfdm0ucXVlc3Rpb24uaW5wdXRUeXBlLFxuICAgICAgbWF4bGVuZ3RoOiBfdm0ucXVlc3Rpb24uZ2V0TWF4TGVuZ3RoKCksXG4gICAgICBzaXplOiBfdm0ucXVlc3Rpb24uc2l6ZSxcbiAgICAgIGlkOiBfdm0ucXVlc3Rpb24uaW5wdXRJZCxcbiAgICAgIHBsYWNlaG9sZGVyOiBfdm0ucXVlc3Rpb24ucGxhY2VIb2xkZXIsXG4gICAgICBcImFyaWEtbGFiZWxcIjogX3ZtLnF1ZXN0aW9uLmxvY1RpdGxlLnJlbmRlcmVkSHRtbFxuICAgIH0sXG4gICAgZG9tUHJvcHM6IHsgdmFsdWU6IF92bS5xdWVzdGlvbi52YWx1ZSB9LFxuICAgIG9uOiB7IGNoYW5nZTogX3ZtLmNoYW5nZSwga2V5dXA6IF92bS5rZXl1cCB9XG4gIH0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi00MGVjZTQyMlwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtNDBlY2U0MjJcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS90ZXh0LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTkzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7IGNsYXNzOiBfdm0uY3NzLnBhZ2Uucm9vdCB9LFxuICAgIFtcbiAgICAgIF92bS5zaG93SGVhZGVyXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBcImg0XCIsXG4gICAgICAgICAgICB7IGNsYXNzOiBfdm0uY3NzLnBhZ2VUaXRsZSB9LFxuICAgICAgICAgICAgW19jKFwic3VydmV5LXN0cmluZ1wiLCB7IGF0dHJzOiB7IGxvY1N0cmluZzogX3ZtLnBhZ2UubG9jVGl0bGUgfSB9KV0sXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5zaG93SGVhZGVyXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBjbGFzczogX3ZtLmNzcy5wYWdlRGVzY3JpcHRpb24gfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgICBhdHRyczogeyBsb2NTdHJpbmc6IF92bS5wYWdlLmxvY0Rlc2NyaXB0aW9uIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5fbChfdm0ucm93cywgZnVuY3Rpb24ocm93LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gcm93LnZpc2libGVcbiAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICB7IGtleTogX3ZtLnBhZ2UuaWQgKyBcIl9cIiArIGluZGV4LCBjbGFzczogX3ZtLmNzcy5yb3cgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIF9jKFwic3VydmV5LXJvd1wiLCB7XG4gICAgICAgICAgICAgICAgICBhdHRyczogeyByb3c6IHJvdywgc3VydmV5OiBfdm0uc3VydmV5LCBjc3M6IF92bS5jc3MgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICB9KVxuICAgIF0sXG4gICAgMlxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi00ZTk2MmE1MVwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtNGU5NjJhNTFcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9wYWdlLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTk0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgIHZhbHVlOiBfdm0uaXNTaG93LFxuICAgICAgICAgIGV4cHJlc3Npb246IFwiaXNTaG93XCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIGNsYXNzOiBfdm0uY2xhc3NlcyxcbiAgICAgIGF0dHJzOiB7IHJvbGU6IFwiYWxlcnRcIiB9XG4gICAgfSxcbiAgICBfdm0uX2woX3ZtLnF1ZXN0aW9uLmVycm9ycywgZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgIHJldHVybiBfYyhcImRpdlwiLCBbXG4gICAgICAgIF9jKFwic3BhblwiLCB7XG4gICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzXG4gICAgICAgICAgICA/IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmVycm9yLmljb25cbiAgICAgICAgICAgIDogXCJwYW5lbC1lcnJvci1pY29uXCIsXG4gICAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9XG4gICAgICAgIH0pLFxuICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICBfYyhcbiAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXNcbiAgICAgICAgICAgICAgPyBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5lcnJvci5pdGVtXG4gICAgICAgICAgICAgIDogXCJwYW5lbC1lcnJvci1pdGVtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFtfYyhcInN1cnZleS1zdHJpbmdcIiwgeyBhdHRyczogeyBsb2NTdHJpbmc6IGVycm9yLmxvY1RleHQgfSB9KV0sXG4gICAgICAgICAgMVxuICAgICAgICApXG4gICAgICBdKVxuICAgIH0pXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTU2ODJlNmFkXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi01NjgyZTZhZFwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL2Vycm9ycy52dWVcbi8vIG1vZHVsZSBpZCA9IDE5NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgW1xuICAgICAgX2MoXCJsYWJlbFwiLCB7IGNsYXNzOiBfdm0uZ2V0TGFiZWxDbGFzcyhfdm0uaXRlbSkgfSwgW1xuICAgICAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LW1vZGVsXCIsXG4gICAgICAgICAgICAgIHZhbHVlOiBfdm0ucXVlc3Rpb24ucmVuZGVyZWRWYWx1ZSxcbiAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJxdWVzdGlvbi5yZW5kZXJlZFZhbHVlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtQ29udHJvbCxcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgdHlwZTogXCJyYWRpb1wiLFxuICAgICAgICAgICAgbmFtZTogX3ZtLnF1ZXN0aW9uLm5hbWUgKyBcIl9cIiArIF92bS5xdWVzdGlvbi5pZCxcbiAgICAgICAgICAgIGlkOiBfdm0ucXVlc3Rpb24uaW5wdXRJZCArIFwiX1wiICsgX3ZtLmluZGV4LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IF92bS5xdWVzdGlvbi5pc1JlYWRPbmx5IHx8ICFfdm0uaXRlbS5pc0VuYWJsZWQsXG4gICAgICAgICAgICBcImFyaWEtcmVxdWlyZWRcIjogX3ZtLnF1ZXN0aW9uLmlzUmVxdWlyZWQsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogX3ZtLml0ZW0ubG9jVGV4dC5yZW5kZXJlZEh0bWxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRvbVByb3BzOiB7XG4gICAgICAgICAgICB2YWx1ZTogX3ZtLml0ZW0udmFsdWUsXG4gICAgICAgICAgICBjaGVja2VkOiBfdm0uX3EoX3ZtLnF1ZXN0aW9uLnJlbmRlcmVkVmFsdWUsIF92bS5pdGVtLnZhbHVlKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLnJlbmRlcmVkVmFsdWUgPSBfdm0uaXRlbS52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgIF9jKFwic3BhblwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5tYXRlcmlhbERlY29yYXRvciB9LCBbXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcInN2Z1wiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuaXRlbURlY29yYXRvcixcbiAgICAgICAgICAgICAgYXR0cnM6IHsgdmlld0JveDogXCItMTIgLTEyIDI0IDI0XCIgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtfYyhcImNpcmNsZVwiLCB7IGF0dHJzOiB7IHI6IFwiNlwiLCBjeDogXCIwXCIsIGN5OiBcIjBcIiB9IH0pXVxuICAgICAgICAgIClcbiAgICAgICAgXSksXG4gICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgIF9jKFwic3BhblwiLCB7IHN0YXRpY0NsYXNzOiBcImNoZWNrXCIgfSksXG4gICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgIF9jKFxuICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzOiBfdm0uZ2V0Q29udHJvbExhYmVsQ2xhc3MoX3ZtLml0ZW0pLFxuICAgICAgICAgICAgYXR0cnM6IHsgdGl0bGU6IF92bS5pdGVtLmxvY1RleHQua29SZW5kZXJlZEh0bWwgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgW19jKFwic3VydmV5LXN0cmluZ1wiLCB7IGF0dHJzOiB7IGxvY1N0cmluZzogX3ZtLml0ZW0ubG9jVGV4dCB9IH0pXSxcbiAgICAgICAgICAxXG4gICAgICAgIClcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5pdGVtLnZhbHVlID09IF92bS5xdWVzdGlvbi5vdGhlckl0ZW0udmFsdWVcbiAgICAgICAgPyBfYyhcInN1cnZleS1vdGhlci1jaG9pY2VcIiwge1xuICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LXNob3dcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5oYXNPdGhlciAmJlxuICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLnJlbmRlcmVkVmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5pc090aGVyU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbjpcbiAgICAgICAgICAgICAgICAgIFwicXVlc3Rpb24uaGFzT3RoZXIgJiYgcXVlc3Rpb24ucmVuZGVyZWRWYWx1ZSAmJiBxdWVzdGlvbi5pc090aGVyU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgYXR0cnM6IHsgcXVlc3Rpb246IF92bS5xdWVzdGlvbiB9XG4gICAgICAgICAgfSlcbiAgICAgICAgOiBfdm0uX2UoKVxuICAgIF0sXG4gICAgMVxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi01YmJlOTdiOVwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtNWJiZTk3YjlcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9yYWRpb2dyb3VwaXRlbS52dWVcbi8vIG1vZHVsZSBpZCA9IDE5NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAge1xuICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgcmF3TmFtZTogXCJ2LXNob3dcIixcbiAgICAgICAgICB2YWx1ZTogX3ZtLnN1cnZleVdpbmRvdy5pc1Nob3dpbmcsXG4gICAgICAgICAgZXhwcmVzc2lvbjogXCJzdXJ2ZXlXaW5kb3cuaXNTaG93aW5nXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIGNsYXNzOiBfdm0uY3NzLndpbmRvdy5yb290LFxuICAgICAgc3RhdGljU3R5bGU6IHtcbiAgICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgICAgYm90dG9tOiBcIjNweFwiLFxuICAgICAgICByaWdodDogXCIxMHB4XCIsXG4gICAgICAgIFwibWF4LXdpZHRoXCI6IFwiNjAlXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIF9jKFwiZGl2XCIsIHsgY2xhc3M6IF92bS5jc3Mud2luZG93LmhlYWRlci5yb290IH0sIFtcbiAgICAgICAgX2MoXG4gICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3RhdGljU3R5bGU6IHsgd2lkdGg6IFwiMTAwJVwiLCBjdXJzb3I6IFwicG9pbnRlclwiIH0sXG4gICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLmRvRXhwYW5kIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0uY3NzLndpbmRvdy5oZWFkZXIudGl0bGUsXG4gICAgICAgICAgICAgICAgc3RhdGljU3R5bGU6IHsgXCJwYWRkaW5nLXJpZ2h0XCI6IFwiMTBweFwiIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIF9jKFwic3VydmV5LXN0cmluZ1wiLCB7XG4gICAgICAgICAgICAgICAgICBhdHRyczogeyBsb2NTdHJpbmc6IF92bS53aW5kb3dTdXJ2ZXkubG9jVGl0bGUgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgX2MoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgY2xhc3M6IF92bS5leHBhbmRlZENzcyxcbiAgICAgICAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgKSxcbiAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgX3ZtLmlzRXhwYW5kZWRTdXJ2ZXlcbiAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0YXRpY1N0eWxlOiB7IGZsb2F0OiBcInJpZ2h0XCIsIGN1cnNvcjogXCJwb2ludGVyXCIgfSxcbiAgICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLmRvRXhwYW5kIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0uY3NzLndpbmRvdy5oZWFkZXIudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXRpY1N0eWxlOiB7IFwicGFkZGluZy1yaWdodFwiOiBcIjEwcHhcIiB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgW192bS5fdihcIlhcIildXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICB2YWx1ZTogX3ZtLmlzRXhwYW5kZWRTdXJ2ZXksXG4gICAgICAgICAgICAgIGV4cHJlc3Npb246IFwiaXNFeHBhbmRlZFN1cnZleVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBjbGFzczogX3ZtLmNzcy53aW5kb3cuYm9keVxuICAgICAgICB9LFxuICAgICAgICBbX2MoXCJzdXJ2ZXlcIiwgeyBhdHRyczogeyBzdXJ2ZXk6IF92bS53aW5kb3dTdXJ2ZXkgfSB9KV0sXG4gICAgICAgIDFcbiAgICAgIClcbiAgICBdXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTYyZjU4OGIyXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi02MmY1ODhiMlwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL3dpbmRvdy52dWVcbi8vIG1vZHVsZSBpZCA9IDE5N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgY2xhc3M6IF92bS5jc3Mucm9vdCB9LCBbXG4gICAgX2MoXCJmb3JtXCIsIHsgYXR0cnM6IHsgb25zdWJtaXQ6IFwicmV0dXJuIGZhbHNlO1wiIH0gfSwgW1xuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJzdl9jdXN0b21faGVhZGVyXCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgY2xhc3M6IF92bS5jc3MuY29udGFpbmVyIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfdm0uaGFzVGl0bGVcbiAgICAgICAgICAgID8gX2MoXCJkaXZcIiwgeyBjbGFzczogX3ZtLmNzcy5oZWFkZXIgfSwgW1xuICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgXCJoM1wiLFxuICAgICAgICAgICAgICAgICAgeyBjbGFzczogX3ZtLmNzcy50aXRsZSB9LFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcInN1cnZleS1zdHJpbmdcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IGxvY1N0cmluZzogX3ZtLnN1cnZleS5sb2NUaXRsZSB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgIFwiaDVcIixcbiAgICAgICAgICAgICAgICAgIHsgY2xhc3M6IF92bS5jc3MuZGVzY3JpcHRpb24gfSxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBsb2NTdHJpbmc6IF92bS5zdXJ2ZXkubG9jRGVzY3JpcHRpb24gfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX3ZtLnN1cnZleS5zdGF0ZSA9PT0gXCJzdGFydGluZ1wiXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICB7IGNsYXNzOiBfdm0uY3NzLmJvZHkgfSxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgX3ZtLnN1cnZleS5pc05hdmlnYXRpb25CdXR0b25zU2hvd2luZyA9PT0gXCJ0b3BcIiB8fFxuICAgICAgICAgICAgICAgICAgICBfdm0uc3VydmV5LmlzTmF2aWdhdGlvbkJ1dHRvbnNTaG93aW5nID09PSBcImJvdGhcIlxuICAgICAgICAgICAgICAgICAgICAgID8gX2MoXCJkaXZcIiwgeyBjbGFzczogX3ZtLmNzcy5mb290ZXIgfSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmdldE5hdkJ0bkNsYXNzZXMoXCJzdGFydFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uc3VydmV5LnN0YXJ0U3VydmV5VGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5zdGFydCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgIF9jKFwic3VydmV5LXBhZ2VcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogX3ZtLnN1cnZleS5zdGFydGVkUGFnZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cnZleTogX3ZtLnN1cnZleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IF92bS5zdXJ2ZXkuc3RhcnRlZFBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjc3M6IF92bS5jc3NcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICBfdm0uc3VydmV5LmlzTmF2aWdhdGlvbkJ1dHRvbnNTaG93aW5nID09PSBcImJvdHRvbVwiIHx8XG4gICAgICAgICAgICAgICAgICAgIF92bS5zdXJ2ZXkuaXNOYXZpZ2F0aW9uQnV0dG9uc1Nob3dpbmcgPT09IFwiYm90aFwiXG4gICAgICAgICAgICAgICAgICAgICAgPyBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0uY3NzLmZvb3RlciB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0uZ2V0TmF2QnRuQ2xhc3NlcyhcInN0YXJ0XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5zdXJ2ZXkuc3RhcnRTdXJ2ZXlUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLnN0YXJ0IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfdm0uc3VydmV5LnN0YXRlID09PSBcInJ1bm5pbmdcIlxuICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgeyBjbGFzczogX3ZtLmNzcy5ib2R5IH0sXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIF92bS5zdXJ2ZXkuaXNTaG93UHJvZ3Jlc3NCYXJPblRvcFxuICAgICAgICAgICAgICAgICAgICAgID8gX2MoXCJzdXJ2ZXktcHJvZ3Jlc3NcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBzdXJ2ZXk6IF92bS5zdXJ2ZXksIGNzczogX3ZtLmNzcyB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgIF92bS5zdXJ2ZXkuaXNUaW1lclBhbmVsU2hvd2luZ09uVG9wXG4gICAgICAgICAgICAgICAgICAgICAgPyBfYyhcInN1cnZleS10aW1lcnBhbmVsXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgc3VydmV5OiBfdm0uc3VydmV5LCBjc3M6IF92bS5jc3MgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICBfdm0uc3VydmV5LmlzTmF2aWdhdGlvbkJ1dHRvbnNTaG93aW5nID09PSBcInRvcFwiIHx8XG4gICAgICAgICAgICAgICAgICAgIF92bS5zdXJ2ZXkuaXNOYXZpZ2F0aW9uQnV0dG9uc1Nob3dpbmcgPT09IFwiYm90aFwiXG4gICAgICAgICAgICAgICAgICAgICAgPyBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0uY3NzLmZvb3RlciB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFfdm0uc3VydmV5LmlzRmlyc3RQYWdlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLnN1cnZleS5pc1Nob3dQcmV2QnV0dG9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIXN1cnZleS5pc0ZpcnN0UGFnZSAmJiBzdXJ2ZXkuaXNTaG93UHJldkJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmdldE5hdkJ0bkNsYXNzZXMoXCJwcmV2XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5zdXJ2ZXkucGFnZVByZXZUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLnByZXZQYWdlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAhX3ZtLnN1cnZleS5pc0xhc3RQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBcIiFzdXJ2ZXkuaXNMYXN0UGFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmdldE5hdkJ0bkNsYXNzZXMoXCJuZXh0XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5zdXJ2ZXkucGFnZU5leHRUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLm5leHRQYWdlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5zdXJ2ZXkuaXNFZGl0TW9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX2MoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLnN1cnZleS5pc0xhc3RQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJzdXJ2ZXkuaXNMYXN0UGFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmdldE5hdkJ0bkNsYXNzZXMoXCJjb21wbGV0ZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uc3VydmV5LmNvbXBsZXRlVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLmNvbXBsZXRlTGFzdFBhZ2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgIF9jKFwic3VydmV5LXBhZ2VcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogX3ZtLnN1cnZleS5jdXJyZW50UGFnZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cnZleTogX3ZtLnN1cnZleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IF92bS5zdXJ2ZXkuY3VycmVudFBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjc3M6IF92bS5jc3NcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICBfdm0uc3VydmV5LmlzVGltZXJQYW5lbFNob3dpbmdPbkJvdHRvbVxuICAgICAgICAgICAgICAgICAgICAgID8gX2MoXCJzdXJ2ZXktdGltZXJwYW5lbFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHN1cnZleTogX3ZtLnN1cnZleSwgY3NzOiBfdm0uY3NzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgX3ZtLnN1cnZleS5pc1Nob3dQcm9ncmVzc0Jhck9uQm90dG9tXG4gICAgICAgICAgICAgICAgICAgICAgPyBfYyhcInN1cnZleS1wcm9ncmVzc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHN1cnZleTogX3ZtLnN1cnZleSwgY3NzOiBfdm0uY3NzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgX3ZtLnN1cnZleS5pc05hdmlnYXRpb25CdXR0b25zU2hvd2luZyA9PT0gXCJib3R0b21cIiB8fFxuICAgICAgICAgICAgICAgICAgICBfdm0uc3VydmV5LmlzTmF2aWdhdGlvbkJ1dHRvbnNTaG93aW5nID09PSBcImJvdGhcIlxuICAgICAgICAgICAgICAgICAgICAgID8gX2MoXCJkaXZcIiwgeyBjbGFzczogX3ZtLmNzcy5mb290ZXIgfSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhX3ZtLnN1cnZleS5pc0ZpcnN0UGFnZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5zdXJ2ZXkuaXNTaG93UHJldkJ1dHRvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiFzdXJ2ZXkuaXNGaXJzdFBhZ2UgJiYgc3VydmV5LmlzU2hvd1ByZXZCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5nZXROYXZCdG5DbGFzc2VzKFwicHJldlwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uc3VydmV5LnBhZ2VQcmV2VGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5wcmV2UGFnZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogIV92bS5zdXJ2ZXkuaXNMYXN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCIhc3VydmV5LmlzTGFzdFBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5nZXROYXZCdG5DbGFzc2VzKFwibmV4dFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uc3VydmV5LnBhZ2VOZXh0VGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5uZXh0UGFnZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uc3VydmV5LmlzRWRpdE1vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5zdXJ2ZXkuaXNMYXN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwic3VydmV5LmlzTGFzdFBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5nZXROYXZCdG5DbGFzc2VzKFwiY29tcGxldGVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLnN1cnZleS5jb21wbGV0ZVRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5jb21wbGV0ZUxhc3RQYWdlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF92bS5oYXNDb21wbGV0ZWRQYWdlXG4gICAgICAgICAgICA/IF9jKFwiZGl2XCIsIFtcbiAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmdldENvbXBsZXRlZFBhZ2VDbGFzc2VzKCksXG4gICAgICAgICAgICAgICAgICBkb21Qcm9wczoge1xuICAgICAgICAgICAgICAgICAgICBpbm5lckhUTUw6IF92bS5fcyhfdm0uc3VydmV5LnByb2Nlc3NlZENvbXBsZXRlZEh0bWwpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICBfdm0uc3VydmV5LmNvbXBsZXRlZFN0YXRlICE9IFwiXCJcbiAgICAgICAgICAgICAgICAgID8gX2MoXCJkaXZcIiwgeyBjbGFzczogX3ZtLmNzcy5zYXZlRGF0YS5yb290IH0sIFtcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0uZ2V0Q29tcGxldGVkU3RhdGVDbGFzc2VzKCkgfSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgX2MoXCJzcGFuXCIsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0uc3VydmV5LmNvbXBsZXRlZFN0YXRlVGV4dCkpXG4gICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBfdm0uc3VydmV5LmNvbXBsZXRlZFN0YXRlID09IFwiZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5jc3Muc2F2ZURhdGEuc2F2ZUFnYWluQnV0dG9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5zdXJ2ZXkuZ2V0TG9jU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic2F2ZUFnYWluQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7IGNsaWNrOiBfdm0uZG9UcnlTYXZlQWdhaW4gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogX3ZtLl9lKClcbiAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF92bS5zdXJ2ZXkuc3RhdGUgPT09IFwiY29tcGxldGVkYmVmb3JlXCJcbiAgICAgICAgICAgID8gX2MoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0uY3NzLmJvZHksXG4gICAgICAgICAgICAgICAgZG9tUHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGlubmVySFRNTDogX3ZtLl9zKF92bS5zdXJ2ZXkucHJvY2Vzc2VkQ29tcGxldGVkQmVmb3JlSHRtbClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX3ZtLnN1cnZleS5zdGF0ZSA9PT0gXCJsb2FkaW5nXCJcbiAgICAgICAgICAgID8gX2MoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0uY3NzLmJvZHksXG4gICAgICAgICAgICAgICAgZG9tUHJvcHM6IHsgaW5uZXJIVE1MOiBfdm0uX3MoX3ZtLnN1cnZleS5wcm9jZXNzZWRMb2FkaW5nSHRtbCkgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF92bS5zdXJ2ZXkuc3RhdGUgPT09IFwiZW1wdHlcIlxuICAgICAgICAgICAgPyBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0uY3NzLmJvZHlFbXB0eSB9LCBbXG4gICAgICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0uc3VydmV5LmVtcHR5U3VydmV5VGV4dCkpXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgIF0sXG4gICAgICAgIDJcbiAgICAgIClcbiAgICBdKVxuICBdKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH1cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtNjg3NGUxYzhcIiwgeyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfSlcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTY4NzRlMWM4XCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy92dWUvc3VydmV5LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTk4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5yb290IH0sXG4gICAgW1xuICAgICAgIV92bS5xdWVzdGlvbi5pc1JlYWRPbmx5XG4gICAgICAgID8gX2MoXCJkaXZcIiwgeyBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuc2VsZWN0V3JhcHBlciB9LCBbXG4gICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgXCJzZWxlY3RcIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJtb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtbW9kZWxcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5xdWVzdGlvbi5yZW5kZXJlZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBcInF1ZXN0aW9uLnJlbmRlcmVkVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmNvbnRyb2wsXG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgIGlkOiBfdm0ucXVlc3Rpb24uaW5wdXRJZCxcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBfdm0ucXVlc3Rpb24ubG9jVGl0bGUucmVuZGVyZWRIdG1sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgY2hhbmdlOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLnJlbmRlcmVkVmFsdWUgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgLmNhbGwoJGV2ZW50LnRhcmdldC5vcHRpb25zLCBmdW5jdGlvbihvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gby5zZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcChmdW5jdGlvbihvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsID0gXCJfdmFsdWVcIiBpbiBvID8gby5fdmFsdWUgOiBvLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsXG4gICAgICAgICAgICAgICAgICAgICAgfSlbMF1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBfdm0ucXVlc3Rpb24uc2hvd09wdGlvbnNDYXB0aW9uXG4gICAgICAgICAgICAgICAgICA/IF9jKFwib3B0aW9uXCIsIHsgZG9tUHJvcHM6IHsgdmFsdWU6IHVuZGVmaW5lZCB9IH0sIFtcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS5xdWVzdGlvbi5vcHRpb25zQ2FwdGlvbikpXG4gICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgX3ZtLl9sKF92bS5xdWVzdGlvbi52aXNpYmxlQ2hvaWNlcywgZnVuY3Rpb24oaXRlbSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgICBcIm9wdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgZGlzYWJsZWQ6ICFpdGVtLmlzRW5hYmxlZCB9LFxuICAgICAgICAgICAgICAgICAgICAgIGRvbVByb3BzOiB7IHZhbHVlOiBpdGVtLnZhbHVlIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW192bS5fdihfdm0uX3MoaXRlbS50ZXh0KSldXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgKVxuICAgICAgICAgIF0pXG4gICAgICAgIDogX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuY29udHJvbCwgYXR0cnM6IHsgZGlzYWJsZWQ6IFwiXCIgfSB9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgX3ZtLl9zKFxuICAgICAgICAgICAgICAgICAgX3ZtLmlzT3RoZXJTZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICA/IF92bS5xdWVzdGlvbi5vdGhlclRleHRcbiAgICAgICAgICAgICAgICAgICAgOiBfdm0ucXVlc3Rpb24uZGlzcGxheVZhbHVlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdXG4gICAgICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcInN1cnZleS1vdGhlci1jaG9pY2VcIiwge1xuICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgdmFsdWU6IF92bS5pc090aGVyU2VsZWN0ZWQsXG4gICAgICAgICAgICBleHByZXNzaW9uOiBcImlzT3RoZXJTZWxlY3RlZFwiXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBhdHRyczogeyBxdWVzdGlvbjogX3ZtLnF1ZXN0aW9uIH1cbiAgICAgIH0pXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTZiMzIxNWQzXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi02YjMyMTVkM1wiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL2Ryb3Bkb3duLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMTk5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICBbXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBjbGFzczogX3ZtLmdldFJvb3RDbGFzcyhfdm0ucXVlc3Rpb24pIH0sXG4gICAgICAgIF92bS5fbChfdm0ucXVlc3Rpb24udmlzaWJsZVJhdGVWYWx1ZXMsIGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgXCJsYWJlbFwiLFxuICAgICAgICAgICAgeyBrZXk6IGl0ZW0udmFsdWUsIGNsYXNzOiBfdm0uZ2V0Q3NzKF92bS5xdWVzdGlvbiwgaXRlbSkgfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwic3YtdmlzdWFsbHloaWRkZW5cIixcbiAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYWRpb1wiLFxuICAgICAgICAgICAgICAgICAgbmFtZTogX3ZtLnF1ZXN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICBpZDogX3ZtLnF1ZXN0aW9uLm5hbWUgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBfdm0ucXVlc3Rpb24uaXNSZWFkT25seSxcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1yZXF1aXJlZFwiOiBfdm0ucXVlc3Rpb24uaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpdGVtLmxvY1RleHQudGV4dFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZG9tUHJvcHM6IHsgdmFsdWU6IGl0ZW0udmFsdWUgfSxcbiAgICAgICAgICAgICAgICBvbjogeyBjaGFuZ2U6IF92bS5jaGFuZ2UgfVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgaW5kZXggPT09IDBcbiAgICAgICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMubWluVGV4dCB9LFxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IGxvY1N0cmluZzogX3ZtLnF1ZXN0aW9uLmxvY01pblJhdGVEZXNjcmlwdGlvbiB9XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLml0ZW1UZXh0IH0sXG4gICAgICAgICAgICAgICAgW19jKFwic3VydmV5LXN0cmluZ1wiLCB7IGF0dHJzOiB7IGxvY1N0cmluZzogaXRlbS5sb2NUZXh0IH0gfSldLFxuICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgaW5kZXggPT09IF92bS5xdWVzdGlvbi52aXNpYmxlUmF0ZVZhbHVlcy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLm1heFRleHQgfSxcbiAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgIF9jKFwic3VydmV5LXN0cmluZ1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBsb2NTdHJpbmc6IF92bS5xdWVzdGlvbi5sb2NNYXhSYXRlRGVzY3JpcHRpb24gfVxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICBdXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcInN1cnZleS1vdGhlci1jaG9pY2VcIiwge1xuICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgdmFsdWU6IF92bS5xdWVzdGlvbi5oYXNPdGhlcixcbiAgICAgICAgICAgIGV4cHJlc3Npb246IFwicXVlc3Rpb24uaGFzT3RoZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLm90aGVyLFxuICAgICAgICBhdHRyczogeyBxdWVzdGlvbjogX3ZtLnF1ZXN0aW9uIH1cbiAgICAgIH0pXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTcwOTJiZmRmXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi03MDkyYmZkZlwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL3JhdGluZy52dWVcbi8vIG1vZHVsZSBpZCA9IDIwMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljU3R5bGU6IHsgY2xlYXI6IFwiYm90aFwiIH0gfSwgW1xuICAgIF9jKFwiZGl2XCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnByb2dyZXNzQ29udGFpbmVyIH0sIFtcbiAgICAgIF9jKFwiZGl2XCIsIHsgYXR0cnM6IHsgdGl0bGU6IF92bS5xdWVzdGlvbi5wYW5lbFByZXZUZXh0IH0gfSwgW1xuICAgICAgICBfYyhcbiAgICAgICAgICBcInN2Z1wiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzOiBfdm0uZ2V0QnV0dG9uUHJldkNzcyhfdm0ucXVlc3Rpb24pLFxuICAgICAgICAgICAgYXR0cnM6IHsgdmlld0JveDogXCIwIDAgMTAgMTBcIiB9LFxuICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5wcmV2UGFuZWxDbGljayB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbX2MoXCJwb2x5Z29uXCIsIHsgYXR0cnM6IHsgcG9pbnRzOiBcIjIsMiAwLDQgNSw5IDEwLDQgOCwyIDUsNSBcIiB9IH0pXVxuICAgICAgICApXG4gICAgICBdKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0ucXVlc3Rpb24uaXNSYW5nZVNob3dpbmdcbiAgICAgICAgPyBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5wcm9ncmVzcyB9LCBbXG4gICAgICAgICAgICBfYyhcImRpdlwiLCB7XG4gICAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5wcm9ncmVzc0JhcixcbiAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6IF92bS5wcm9ncmVzcyB9LFxuICAgICAgICAgICAgICBhdHRyczogeyByb2xlOiBcInByb2dyZXNzYmFyXCIgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgYXR0cnM6IHsgdGl0bGU6IF92bS5xdWVzdGlvbi5wYW5lbE5leHRUZXh0IH0gfSwgW1xuICAgICAgICBfYyhcbiAgICAgICAgICBcInN2Z1wiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzOiBfdm0uZ2V0QnV0dG9uTmV4dENzcyhfdm0ucXVlc3Rpb24pLFxuICAgICAgICAgICAgYXR0cnM6IHsgdmlld0JveDogXCIwIDAgMTAgMTBcIiB9LFxuICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5uZXh0UGFuZWxDbGljayB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbX2MoXCJwb2x5Z29uXCIsIHsgYXR0cnM6IHsgcG9pbnRzOiBcIjIsMiAwLDQgNSw5IDEwLDQgOCwyIDUsNSBcIiB9IH0pXVxuICAgICAgICApXG4gICAgICBdKVxuICAgIF0pLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgX3ZtLnF1ZXN0aW9uLmNhbkFkZFBhbmVsXG4gICAgICA/IF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgIGNsYXNzOlxuICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuYnV0dG9uICtcbiAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmJ1dHRvbkFkZCxcbiAgICAgICAgICBhdHRyczogeyB0eXBlOiBcImJ1dHRvblwiLCB2YWx1ZTogX3ZtLnF1ZXN0aW9uLnBhbmVsQWRkVGV4dCB9LFxuICAgICAgICAgIG9uOiB7IGNsaWNrOiBfdm0uYWRkUGFuZWxDbGljayB9XG4gICAgICAgIH0pXG4gICAgICA6IF92bS5fZSgpLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgX2MoXCJkaXZcIiwgeyBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMucHJvZ3Jlc3NUZXh0IH0sIFtcbiAgICAgIF92bS5fdihfdm0uX3MoX3ZtLnF1ZXN0aW9uLnByb2dyZXNzVGV4dCkpXG4gICAgXSlcbiAgXSlcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTc0MmJmZmFjXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi03NDJiZmZhY1wiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL3BhbmVsZHluYW1pY3Byb2dyZXNzLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMjAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICBfdm0uX2woX3ZtLnJvdy5lbGVtZW50cywgZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQudmlzaWJsZVxuICAgICAgICA/IF9jKFwic3VydmV5LWVsZW1lbnRcIiwge1xuICAgICAgICAgICAga2V5OiBlbGVtZW50LmlkVmFsdWUsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogZWxlbWVudC5wYWRkaW5nTGVmdCxcbiAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiBlbGVtZW50LnBhZGRpbmdSaWdodCxcbiAgICAgICAgICAgICAgd2lkdGg6IGVsZW1lbnQucmVuZGVyV2lkdGgsXG4gICAgICAgICAgICAgIGRpc3BsYXk6IFwiaW5saW5lLWJsb2NrXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBpZDogZWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgbmFtZTogZWxlbWVudC5uYW1lLFxuICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LFxuICAgICAgICAgICAgICBzdXJ2ZXk6IF92bS5zdXJ2ZXksXG4gICAgICAgICAgICAgIGNzczogX3ZtLmNzc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIDogX3ZtLl9lKClcbiAgICB9KVxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi03Y2MwYmQ4OFwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtN2NjMGJkODhcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9yb3cudnVlXG4vLyBtb2R1bGUgaWQgPSAyMDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy50YWJsZVdyYXBwZXIgfSwgW1xuICAgIF9jKFwiZmllbGRzZXRcIiwgW1xuICAgICAgX2MoXCJsZWdlbmRcIiwge1xuICAgICAgICBhdHRyczogeyBcImFyaWEtbGFiZWxcIjogX3ZtLnF1ZXN0aW9uLmxvY1RpdGxlLnJlbmRlcmVkSHRtbCB9XG4gICAgICB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcInRhYmxlXCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnJvb3QgfSwgW1xuICAgICAgICBfdm0ucXVlc3Rpb24uc2hvd0hlYWRlclxuICAgICAgICAgID8gX2MoXCJ0aGVhZFwiLCBbXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwidHJcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBfYyhcInRkXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LXNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0ucXVlc3Rpb24uaGFzUm93cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwicXVlc3Rpb24uaGFzUm93c1wiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICBfdm0uX2woX3ZtLnF1ZXN0aW9uLnZpc2libGVDb2x1bW5zLCBmdW5jdGlvbihjb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgICAgIFwidGhcIixcbiAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5oZWFkZXJDZWxsIH0sXG4gICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgbG9jU3RyaW5nOiBjb2x1bW4ubG9jVGV4dCB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdKVxuICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgIF9jKFxuICAgICAgICAgIFwidGJvZHlcIixcbiAgICAgICAgICBfdm0uX2woX3ZtLnF1ZXN0aW9uLnZpc2libGVSb3dzLCBmdW5jdGlvbihyb3csIHJvd0luZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gX2MoXG4gICAgICAgICAgICAgIFwidHJcIixcbiAgICAgICAgICAgICAgeyBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMucm93IH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgIFwidGRcIixcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LXNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0ucXVlc3Rpb24uaGFzUm93cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwicXVlc3Rpb24uaGFzUm93c1wiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuY2VsbFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFtfYyhcInN1cnZleS1zdHJpbmdcIiwgeyBhdHRyczogeyBsb2NTdHJpbmc6IHJvdy5sb2NUZXh0IH0gfSldLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICBfdm0uX2woX3ZtLnF1ZXN0aW9uLnZpc2libGVDb2x1bW5zLCBmdW5jdGlvbihcbiAgICAgICAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gX3ZtLnF1ZXN0aW9uLmhhc0NlbGxUZXh0XG4gICAgICAgICAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5nZXRJdGVtQ2xhc3Mocm93LCBjb2x1bW4pICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuY2VsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uY2VsbENsaWNrKHJvdywgY29sdW1uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX2MoXCJzcGFuXCIsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5nZXRDZWxsRGlzcGxheUxvY1RleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkucmVuZGVyZWRIdG1sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgX3ZtLl9sKF92bS5xdWVzdGlvbi52aXNpYmxlQ29sdW1ucywgZnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuICFfdm0ucXVlc3Rpb24uaGFzQ2VsbFRleHRcbiAgICAgICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmNlbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IGhlYWRlcnM6IGNvbHVtbi5sb2NUZXh0LnJlbmRlcmVkSHRtbCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5jZWxsQ2xpY2socm93LCBjb2x1bW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxhYmVsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogX3ZtLmdldEl0ZW1DbGFzcyhyb3csIGNvbHVtbikgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvdy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwicm93LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYWRpb1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHJvdy5mdWxsTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogX3ZtLnF1ZXN0aW9uLmlzUmVhZE9ubHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0ucXVlc3Rpb24uaW5wdXRJZCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIl9cIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cubmFtZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIl9cIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtcmVxdWlyZWRcIjogX3ZtLnF1ZXN0aW9uLmlzUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0ucXVlc3Rpb24ubG9jVGl0bGUucmVuZGVyZWRIdG1sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbVByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbHVtbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkOiBfdm0uX3Eocm93LnZhbHVlLCBjb2x1bW4udmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93LnZhbHVlID0gY29sdW1uLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLm1hdGVyaWFsRGVjb3JhdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3ZnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLml0ZW1EZWNvcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHZpZXdCb3g6IFwiLTEyIC0xMiAyNCAyNFwiIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiY2lyY2xlXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyByOiBcIjZcIiwgY3g6IFwiMFwiLCBjeTogXCIwXCIgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcInNwYW5cIiwgeyBzdGF0aWNDbGFzczogXCJjaXJjbGVcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcInNwYW5cIiwgeyBzdGF0aWNDbGFzczogXCJjaGVja1wiIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwic3BhblwiLCB7IHN0eWxlOiB7IGRpc3BsYXk6IFwibm9uZVwiIH0gfSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9zKF92bS5xdWVzdGlvbi5sb2NUaXRsZS5yZW5kZXJlZEh0bWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIF0pXG4gICAgXSlcbiAgXSlcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTdmYTJmNDAzXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi03ZmEyZjQwM1wiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL21hdHJpeC52dWVcbi8vIG1vZHVsZSBpZCA9IDIwM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwidGFibGVcIixcbiAgICB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5yb290IH0sXG4gICAgX3ZtLl9sKF92bS5xdWVzdGlvbi5nZXRSb3dzKCksIGZ1bmN0aW9uKHJvdywgcm93aW5kZXgpIHtcbiAgICAgIHJldHVybiBfYyhcbiAgICAgICAgXCJ0clwiLFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBfdm0ucXVlc3Rpb24uaW5wdXRJZCArIFwicm93a2V5XCIgKyByb3dpbmRleCxcbiAgICAgICAgICBjbGFzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMucm93XG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfdm0uX2wocm93LCBmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICBcInRkXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAga2V5OiBcImxhYmVsXCIgKyBpdGVtLmVkaXRvci5pZCxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOlxuICAgICAgICAgICAgICAgICAgICBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtVGl0bGUgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmNlbGxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtfYyhcInN1cnZleS1zdHJpbmdcIiwgeyBhdHRyczogeyBsb2NTdHJpbmc6IGl0ZW0ubG9jVGl0bGUgfSB9KV0sXG4gICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICBcInRkXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLmVkaXRvci5pZCxcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IGNzczogX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuY2VsbCB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBfdm0uaGFzRXJyb3JzT25Ub3BcbiAgICAgICAgICAgICAgICAgICAgPyBfYyhcInN1cnZleS1lcnJvcnNcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgcXVlc3Rpb246IGl0ZW0uZWRpdG9yLCBsb2NhdGlvbjogXCJ0b3BcIiB9XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICBfYyhfdm0uZ2V0V2lkZ2V0Q29tcG9uZW50TmFtZShpdGVtLmVkaXRvciksIHtcbiAgICAgICAgICAgICAgICAgICAgdGFnOiBcImNvbXBvbmVudFwiLFxuICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBxdWVzdGlvbjogaXRlbS5lZGl0b3IgfVxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgX3ZtLmhhc0Vycm9yc09uQm90dG9tXG4gICAgICAgICAgICAgICAgICAgID8gX2MoXCJzdXJ2ZXktZXJyb3JzXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHF1ZXN0aW9uOiBpdGVtLmVkaXRvciwgbG9jYXRpb246IFwiYm90dG9tXCIgfVxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIDogX3ZtLl9lKClcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICAgIF0sXG4gICAgICAgIDJcbiAgICAgIClcbiAgICB9KVxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi05M2ZlNGMwMlwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtOTNmZTRjMDJcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9tdWx0aXBsZXRleHQudnVlXG4vLyBtb2R1bGUgaWQgPSAyMDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfdm0ucXVlc3Rpb24uaXNWaXNpYmxlXG4gICAgPyBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5wYW5lbC5jb250YWluZXIsXG4gICAgICAgICAgc3R5bGU6IF92bS5yb290U3R5bGVcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJoNFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5oYXNUaXRsZSxcbiAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwiaGFzVGl0bGVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgY2xhc3M6IF92bS5nZXRUaXRsZVN0eWxlKCksXG4gICAgICAgICAgICAgIG9uOiB7IGNsaWNrOiBfdm0uY2hhbmdlRXhwYW5kZWQgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgICBhdHRyczogeyBsb2NTdHJpbmc6IF92bS5xdWVzdGlvbi5sb2NUaXRsZSB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICBfYyhcInNwYW5cIiwge1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uc2hvd0ljb24sXG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwic2hvd0ljb25cIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgY2xhc3M6IF92bS5pY29uQ3NzXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgICksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfYyhcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5wYW5lbC5kZXNjcmlwdGlvbiB9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfYyhcInN1cnZleS1zdHJpbmdcIiwge1xuICAgICAgICAgICAgICAgIGF0dHJzOiB7IGxvY1N0cmluZzogX3ZtLnF1ZXN0aW9uLmxvY0Rlc2NyaXB0aW9uIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFwic3VydmV5LWVycm9yc1wiLCB7IGF0dHJzOiB7IHF1ZXN0aW9uOiBfdm0ucXVlc3Rpb24gfSB9KSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJmLXBhbmVsXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogIV92bS5pc0NvbGxhcHNlZCxcbiAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwiIWlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHN0eWxlOiB7IHBhZGRpbmdMZWZ0OiBfdm0ucXVlc3Rpb24uaW5uZXJQYWRkaW5nTGVmdCB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfYyhcInN1cnZleS1mbG93cGFuZWxlbGVtZW50XCIsIHtcbiAgICAgICAgICAgICAgICBhdHRyczogeyBub2RlOiBfdm0ucm9vdE5vZGUsIHBhbmVsOiBfdm0ucXVlc3Rpb24sIGNzczogXCJjc3NcIiB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgIClcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKVxuICAgIDogX3ZtLl9lKClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTk2YWUxYTc4XCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi05NmFlMWE3OFwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL2Zsb3dwYW5lbC52dWVcbi8vIG1vZHVsZSBpZCA9IDIwNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgeyBjbGFzczogX3ZtLmdldFJvb3RDbGFzcyhfdm0uZWxlbWVudCkgfSxcbiAgICBbXG4gICAgICBfdm0uZWxlbWVudC5oYXNUaXRsZU9uTGVmdFRvcFxuICAgICAgICA/IF9jKFwic3VydmV5LWVsZW1lbnQtaGVhZGVyXCIsIHsgYXR0cnM6IHsgZWxlbWVudDogX3ZtLmVsZW1lbnQgfSB9KVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IGNsYXNzOiBfdm0uZ2V0Q29udGVudENsYXNzKF92bS5lbGVtZW50KSB9LFxuICAgICAgICBbXG4gICAgICAgICAgX3ZtLmhhc0Vycm9yc09uVG9wXG4gICAgICAgICAgICA/IF9jKFwic3VydmV5LWVycm9yc1wiLCB7XG4gICAgICAgICAgICAgICAgYXR0cnM6IHsgcXVlc3Rpb246IF92bS5lbGVtZW50LCBsb2NhdGlvbjogXCJ0b3BcIiB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoX3ZtLmdldFdpZGdldENvbXBvbmVudE5hbWUoX3ZtLmVsZW1lbnQpLCB7XG4gICAgICAgICAgICB0YWc6IFwiY29tcG9uZW50XCIsXG4gICAgICAgICAgICBhdHRyczogeyBxdWVzdGlvbjogX3ZtLmVsZW1lbnQsIGNzczogX3ZtLmNzcyB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfdm0uZWxlbWVudC5oYXNDb21tZW50XG4gICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgeyBjbGFzczogX3ZtLmVsZW1lbnQuY3NzQ2xhc3Nlcy5mb3JtR3JvdXAgfSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCBbX3ZtLl92KF92bS5fcyhfdm0uZWxlbWVudC5jb21tZW50VGV4dCkpXSksXG4gICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktb3RoZXItY2hvaWNlXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb21tZW50Q2xhc3M6IF92bS5jc3MuY29tbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbjogX3ZtLmVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF92bS5oYXNFcnJvcnNPbkJvdHRvbVxuICAgICAgICAgICAgPyBfYyhcInN1cnZleS1lcnJvcnNcIiwge1xuICAgICAgICAgICAgICAgIGF0dHJzOiB7IHF1ZXN0aW9uOiBfdm0uZWxlbWVudCwgbG9jYXRpb246IFwiYm90dG9tXCIgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF92bS5lbGVtZW50Lmhhc0Rlc2NyaXB0aW9uVW5kZXJJbnB1dFxuICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIHsgY2xhc3M6IF92bS5lbGVtZW50LmNzc0NsYXNzZXMuZGVzY3JpcHRpb25VbmRlcklucHV0IH0sXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgbG9jU3RyaW5nOiBfdm0uZWxlbWVudC5sb2NEZXNjcmlwdGlvbiB9XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLmVsZW1lbnQuaGFzVGl0bGVPbkJvdHRvbVxuICAgICAgICA/IF9jKFwic3VydmV5LWVsZW1lbnQtaGVhZGVyXCIsIHsgYXR0cnM6IHsgZWxlbWVudDogX3ZtLmVsZW1lbnQgfSB9KVxuICAgICAgICA6IF92bS5fZSgpXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTk3MzQ3MmFjXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi05NzM0NzJhY1wiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL2VsZW1lbnQudnVlXG4vLyBtb2R1bGUgaWQgPSAyMDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcImRpdlwiLFxuICAgIHsgc3R5bGU6IHsgb3ZlcmZsb3dYOiBfdm0ucXVlc3Rpb24uaG9yaXpvbnRhbFNjcm9sbCA/IFwic2Nyb2xsXCIgOiBcIlwiIH0gfSxcbiAgICBbXG4gICAgICBfdm0ucXVlc3Rpb24uaXNBZGRSb3dPblRvcFxuICAgICAgICA/IF9jKFwiZGl2XCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmZvb3RlciB9LCBbXG4gICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzOlxuICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuYnV0dG9uICtcbiAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmJ1dHRvbkFkZCxcbiAgICAgICAgICAgICAgICBhdHRyczogeyB0eXBlOiBcImJ1dHRvblwiIH0sXG4gICAgICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5hZGRSb3dDbGljayB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBfYyhcInNwYW5cIiwgW192bS5fdihfdm0uX3MoX3ZtLnF1ZXN0aW9uLmFkZFJvd1RleHQpKV0pLFxuICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgX2MoXCJzcGFuXCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmljb25BZGQgfSlcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgKVxuICAgICAgICAgIF0pXG4gICAgICAgIDogX3ZtLl9lKCksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJzdXJ2ZXktbWF0cml4dGFibGVcIiwgeyBhdHRyczogeyBxdWVzdGlvbjogX3ZtLnF1ZXN0aW9uIH0gfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLnF1ZXN0aW9uLmlzQWRkUm93T25Cb3R0b21cbiAgICAgICAgPyBfYyhcImRpdlwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5mb290ZXIgfSwgW1xuICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzczpcbiAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmJ1dHRvbiArXG4gICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5idXR0b25BZGQsXG4gICAgICAgICAgICAgICAgYXR0cnM6IHsgdHlwZTogXCJidXR0b25cIiB9LFxuICAgICAgICAgICAgICAgIG9uOiB7IGNsaWNrOiBfdm0uYWRkUm93Q2xpY2sgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgX2MoXCJzcGFuXCIsIFtfdm0uX3YoX3ZtLl9zKF92bS5xdWVzdGlvbi5hZGRSb3dUZXh0KSldKSxcbiAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgIF9jKFwic3BhblwiLCB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5pY29uQWRkIH0pXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIClcbiAgICAgICAgICBdKVxuICAgICAgICA6IF92bS5fZSgpXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTlhMGI4OGU4XCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi05YTBiODhlOFwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL21hdHJpeGR5bmFtaWMudnVlXG4vLyBtb2R1bGUgaWQgPSAyMDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcInNwYW5cIixcbiAgICB7IHN0eWxlOiBfdm0uc3R5bGUgfSxcbiAgICBbXG4gICAgICAhX3ZtLnF1ZXN0aW9uXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBfdm0udGFnTmFtZSxcbiAgICAgICAgICAgIHsgdGFnOiBcImNvbXBvbmVudFwiIH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF92bS5fbChfdm0ubm9kZXMsIGZ1bmN0aW9uKGVsTm9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfYyhcInN1cnZleS1mbG93cGFuZWxlbGVtZW50XCIsIHtcbiAgICAgICAgICAgICAgICAgIGtleTogZWxOb2RlLmVsZW1lbnRJZCxcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IG5vZGU6IGVsTm9kZSwgcGFuZWw6IF92bS5wYW5lbCwgY3NzOiBcImNzc1wiIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiXFxuICAgIFwiICsgX3ZtLl9zKF92bS50ZXh0KSArIFwiXFxuICBcIilcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICEhX3ZtLnF1ZXN0aW9uXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJzdXJ2ZXktZWxlbWVudFwiLCB7XG4gICAgICAgICAgICAgICAga2V5OiBfdm0ucXVlc3Rpb24uaWRWYWx1ZSxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogX3ZtLnF1ZXN0aW9uLnJlbmRlcldpZHRoIH0sXG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgIGlkOiBfdm0ucXVlc3Rpb24uaWQsXG4gICAgICAgICAgICAgICAgICBlbGVtZW50OiBfdm0ucXVlc3Rpb24sXG4gICAgICAgICAgICAgICAgICBzdXJ2ZXk6IF92bS5zdXJ2ZXksXG4gICAgICAgICAgICAgICAgICBjc3M6IF92bS5jc3NcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgIClcbiAgICAgICAgOiBfdm0uX2UoKVxuICAgIF0sXG4gICAgMVxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfVxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi05ZDk5MmMzMFwiLCB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9KVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtOWQ5OTJjMzBcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL3Z1ZS9mbG93cGFuZWxlbGVtZW50LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMjA4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5yb290IH0sXG4gICAgW1xuICAgICAgX3ZtLnF1ZXN0aW9uLmlzUHJvZ3Jlc3NUb3BTaG93aW5nXG4gICAgICAgID8gX2MoXCJzdXJ2ZXktcGFuZWxkeW5hbWljcHJvZ3Jlc3NcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHsgcXVlc3Rpb246IF92bS5xdWVzdGlvbiB9XG4gICAgICAgICAgfSlcbiAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uX2woX3ZtLnJlbmRlcmVkUGFuZWxzLCBmdW5jdGlvbihwYW5lbCkge1xuICAgICAgICByZXR1cm4gX2MoXG4gICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICB7IGtleTogcGFuZWwuaWQgfSxcbiAgICAgICAgICBbXG4gICAgICAgICAgICBfYyhcInN1cnZleS1wYW5lbFwiLCB7IGF0dHJzOiB7IHF1ZXN0aW9uOiBwYW5lbCwgY3NzOiBfdm0uY3NzIH0gfSksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgIV92bS5xdWVzdGlvbi5pc1JlYWRPbmx5ICYmICFwYW5lbC5pc0NvbGxhcHNlZFxuICAgICAgICAgICAgICA/IF9jKFwiZGl2XCIsIFtcbiAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jYW5SZW1vdmVQYW5lbFxuICAgICAgICAgICAgICAgICAgICA/IF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmJ1dHRvbiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmNzc0NsYXNzZXMuYnV0dG9uUmVtb3ZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5xdWVzdGlvbi5wYW5lbFJlbW92ZVRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLnJlbW92ZVBhbmVsQ2xpY2socGFuZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICBfYyhcImhyXCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLnNlcGFyYXRvciB9KVxuICAgICAgICAgIF0sXG4gICAgICAgICAgMVxuICAgICAgICApXG4gICAgICB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0ucXVlc3Rpb24uaXNQcm9ncmVzc0JvdHRvbVNob3dpbmdcbiAgICAgICAgPyBfYyhcInN1cnZleS1wYW5lbGR5bmFtaWNwcm9ncmVzc1wiLCB7XG4gICAgICAgICAgICBhdHRyczogeyBxdWVzdGlvbjogX3ZtLnF1ZXN0aW9uIH1cbiAgICAgICAgICB9KVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5xdWVzdGlvbi5pc1JlbmRlck1vZGVMaXN0ICYmIF92bS5xdWVzdGlvbi5jYW5BZGRQYW5lbFxuICAgICAgICA/IF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgY2xhc3M6IF92bS5nZXRCdXR0b25BZGRDc3MoX3ZtLnF1ZXN0aW9uKSxcbiAgICAgICAgICAgIGF0dHJzOiB7IHR5cGU6IFwiYnV0dG9uXCIsIHZhbHVlOiBfdm0ucXVlc3Rpb24ucGFuZWxBZGRUZXh0IH0sXG4gICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLmFkZFBhbmVsQ2xpY2sgfVxuICAgICAgICAgIH0pXG4gICAgICAgIDogX3ZtLl9lKClcbiAgICBdLFxuICAgIDJcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH1cbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtOWRkYTVkMDZcIiwgeyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfSlcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTlkZGE1ZDA2XCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy92dWUvcGFuZWxkeW5hbWljLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMjA5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICBbXG4gICAgICBfYyhcImxhYmVsXCIsIHsgY2xhc3M6IF92bS5nZXRMYWJlbENsYXNzKF92bS5pdGVtKSB9LCBbXG4gICAgICAgIF92bS5pdGVtID09IF92bS5xdWVzdGlvbi5zZWxlY3RBbGxJdGVtXG4gICAgICAgICAgPyBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5pc0FsbFNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJpc0FsbFNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtQ29udHJvbCxcbiAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgICAgICAgICAgbmFtZTogX3ZtLnF1ZXN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgaWQ6IF92bS5xdWVzdGlvbi5pbnB1dElkICsgXCJfXCIgKyBfdm0uaW5kZXgsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IF92bS5xdWVzdGlvbi5pc1JlYWRPbmx5LFxuICAgICAgICAgICAgICAgIFwiYXJpYS1yZXF1aXJlZFwiOiBfdm0ucXVlc3Rpb24uaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogX3ZtLml0ZW0ubG9jVGV4dC5yZW5kZXJlZEh0bWxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZG9tUHJvcHM6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLmlzQWxsU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgY2hlY2tlZDogQXJyYXkuaXNBcnJheShfdm0uaXNBbGxTZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgID8gX3ZtLl9pKF92bS5pc0FsbFNlbGVjdGVkLCBfdm0uaXNBbGxTZWxlY3RlZCkgPiAtMVxuICAgICAgICAgICAgICAgICAgOiBfdm0uaXNBbGxTZWxlY3RlZFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgIHZhciAkJGEgPSBfdm0uaXNBbGxTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgJCRlbCA9ICRldmVudC50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgICQkYyA9ICQkZWwuY2hlY2tlZCA/IHRydWUgOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJCRhKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJCR2ID0gX3ZtLmlzQWxsU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgJCRpID0gX3ZtLl9pKCQkYSwgJCR2KVxuICAgICAgICAgICAgICAgICAgICBpZiAoJCRjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgJCRpIDwgMCAmJiAoX3ZtLmlzQWxsU2VsZWN0ZWQgPSAkJGEuY29uY2F0KCQkdikpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgJCRpID4gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChfdm0uaXNBbGxTZWxlY3RlZCA9ICQkYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgJCRpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAuY29uY2F0KCQkYS5zbGljZSgkJGkgKyAxKSkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF92bS5pc0FsbFNlbGVjdGVkID0gJCRjXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgIF92bS5pdGVtICE9IF92bS5xdWVzdGlvbi5zZWxlY3RBbGxJdGVtXG4gICAgICAgICAgPyBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5xdWVzdGlvbi5yZW5kZXJlZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJxdWVzdGlvbi5yZW5kZXJlZFZhbHVlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtQ29udHJvbCxcbiAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgICAgICAgICAgbmFtZTogX3ZtLnF1ZXN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgaWQ6IF92bS5xdWVzdGlvbi5pbnB1dElkICsgXCJfXCIgKyBfdm0uaW5kZXgsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IF92bS5xdWVzdGlvbi5pc1JlYWRPbmx5IHx8ICFfdm0uaXRlbS5pc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgXCJhcmlhLXJlcXVpcmVkXCI6IF92bS5xdWVzdGlvbi5pc1JlcXVpcmVkLFxuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBfdm0uaXRlbS5sb2NUZXh0LnJlbmRlcmVkSHRtbFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBkb21Qcm9wczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uaXRlbS52YWx1ZSxcbiAgICAgICAgICAgICAgICBjaGVja2VkOiBBcnJheS5pc0FycmF5KF92bS5xdWVzdGlvbi5yZW5kZXJlZFZhbHVlKVxuICAgICAgICAgICAgICAgICAgPyBfdm0uX2koX3ZtLnF1ZXN0aW9uLnJlbmRlcmVkVmFsdWUsIF92bS5pdGVtLnZhbHVlKSA+IC0xXG4gICAgICAgICAgICAgICAgICA6IF92bS5xdWVzdGlvbi5yZW5kZXJlZFZhbHVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgdmFyICQkYSA9IF92bS5xdWVzdGlvbi5yZW5kZXJlZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAkJGVsID0gJGV2ZW50LnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgJCRjID0gJCRlbC5jaGVja2VkID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkJGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkJHYgPSBfdm0uaXRlbS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAkJGkgPSBfdm0uX2koJCRhLCAkJHYpXG4gICAgICAgICAgICAgICAgICAgIGlmICgkJGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAkJGkgPCAwICYmIChfdm0ucXVlc3Rpb24ucmVuZGVyZWRWYWx1ZSA9ICQkYS5jb25jYXQoJCR2KSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAkJGkgPiAtMSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKF92bS5xdWVzdGlvbi5yZW5kZXJlZFZhbHVlID0gJCRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCAkJGkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoJCRhLnNsaWNlKCQkaSArIDEpKSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLnJlbmRlcmVkVmFsdWUgPSAkJGNcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgX2MoXCJzcGFuXCIsIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLm1hdGVyaWFsRGVjb3JhdG9yIH0sIFtcbiAgICAgICAgICBfYyhcbiAgICAgICAgICAgIFwic3ZnXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtRGVjb3JhdG9yLFxuICAgICAgICAgICAgICBhdHRyczogeyB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbX2MoXCJwYXRoXCIsIHsgYXR0cnM6IHsgZDogXCJNNSwxM2wyLTJsMywzbDctN2wyLDJsLTksOUw1LDEzelwiIH0gfSldXG4gICAgICAgICAgKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFwic3BhblwiLCB7IHN0YXRpY0NsYXNzOiBcImNoZWNrXCIgfSlcbiAgICAgICAgXSksXG4gICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgIF9jKFxuICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5jb250cm9sTGFiZWwsXG4gICAgICAgICAgICBhdHRyczogeyB0aXRsZTogX3ZtLml0ZW0ubG9jVGV4dC5rb1JlbmRlcmVkSHRtbCB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbX2MoXCJzdXJ2ZXktc3RyaW5nXCIsIHsgYXR0cnM6IHsgbG9jU3RyaW5nOiBfdm0uaXRlbS5sb2NUZXh0IH0gfSldLFxuICAgICAgICAgIDFcbiAgICAgICAgKVxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLml0ZW0udmFsdWUgPT0gX3ZtLnF1ZXN0aW9uLm90aGVySXRlbS52YWx1ZVxuICAgICAgICA/IF9jKFwic3VydmV5LW90aGVyLWNob2ljZVwiLCB7XG4gICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmhhc090aGVyICYmXG4gICAgICAgICAgICAgICAgICBfdm0ucXVlc3Rpb24ucmVuZGVyZWRWYWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgX3ZtLnF1ZXN0aW9uLmlzT3RoZXJTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uOlxuICAgICAgICAgICAgICAgICAgXCJxdWVzdGlvbi5oYXNPdGhlciAmJiBxdWVzdGlvbi5yZW5kZXJlZFZhbHVlICYmIHF1ZXN0aW9uLmlzT3RoZXJTZWxlY3RlZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhdHRyczogeyBxdWVzdGlvbjogX3ZtLnF1ZXN0aW9uIH1cbiAgICAgICAgICB9KVxuICAgICAgICA6IF92bS5fZSgpXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LWM1OGM4MGQwXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi1jNThjODBkMFwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL2NoZWNrYm94aXRlbS52dWVcbi8vIG1vZHVsZSBpZCA9IDIxMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZmllbGRzZXRcIixcbiAgICB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5yb290IH0sXG4gICAgW1xuICAgICAgX2MoXCJsZWdlbmRcIiwge1xuICAgICAgICBhdHRyczogeyBcImFyaWEtbGFiZWxcIjogX3ZtLnF1ZXN0aW9uLmxvY1RpdGxlLnJlbmRlcmVkSHRtbCB9XG4gICAgICB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uX2woX3ZtLnF1ZXN0aW9uLnZpc2libGVDaG9pY2VzLCBmdW5jdGlvbihpdGVtLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gIV92bS5xdWVzdGlvbi5oYXNDb2x1bW5zXG4gICAgICAgICAgPyBfYyhcInN1cnZleS1jaGVja2JveC1pdGVtXCIsIHtcbiAgICAgICAgICAgICAga2V5OiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgICBjbGFzczogX3ZtLmdldEl0ZW1DbGFzcyhpdGVtKSxcbiAgICAgICAgICAgICAgYXR0cnM6IHsgcXVlc3Rpb246IF92bS5xdWVzdGlvbiwgaXRlbTogaXRlbSwgaW5kZXg6IGluZGV4IH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLl9sKF92bS5xdWVzdGlvbi5jb2x1bW5zLCBmdW5jdGlvbihjb2x1bW4sIGNvbEluZGV4KSB7XG4gICAgICAgIHJldHVybiBfdm0ucXVlc3Rpb24uaGFzQ29sdW1uc1xuICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHsgY2xhc3M6IF92bS5xdWVzdGlvbi5nZXRDb2x1bW5DbGFzcygpIH0sXG4gICAgICAgICAgICAgIF92bS5fbChjb2x1bW4sIGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jKFwic3VydmV5LWNoZWNrYm94LWl0ZW1cIiwge1xuICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5nZXRJdGVtQ2xhc3MoaXRlbSksXG4gICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbjogX3ZtLnF1ZXN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICBpbmRleDogXCJcIiArIGNvbEluZGV4ICsgaW5kZXhcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogX3ZtLl9lKClcbiAgICAgIH0pXG4gICAgXSxcbiAgICAyXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LWNhZDI3NmY2XCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi1jYWQyNzZmNlwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL2NoZWNrYm94LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMjExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXCJzcGFuXCIsIHsgc3RhdGljU3R5bGU6IHsgcG9zaXRpb246IFwic3RhdGljXCIgfSB9LCBbXG4gICAgX3ZtLmxvY1N0cmluZy5oYXNIdG1sXG4gICAgICA/IF9jKFwic3BhblwiLCB7XG4gICAgICAgICAgc3RhdGljU3R5bGU6IHsgcG9zaXRpb246IFwic3RhdGljXCIgfSxcbiAgICAgICAgICBkb21Qcm9wczogeyBpbm5lckhUTUw6IF92bS5fcyhfdm0ubG9jU3RyaW5nLnJlbmRlcmVkSHRtbCkgfVxuICAgICAgICB9KVxuICAgICAgOiBfYyhcInNwYW5cIiwgeyBzdGF0aWNTdHlsZTogeyBwb3NpdGlvbjogXCJzdGF0aWNcIiB9IH0sIFtcbiAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS5sb2NTdHJpbmcucmVuZGVyZWRIdG1sKSlcbiAgICAgICAgXSlcbiAgXSlcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LWQzYTNkNzVhXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi1kM2EzZDc1YVwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL3N0cmluZy52dWVcbi8vIG1vZHVsZSBpZCA9IDIxMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwidGFibGVcIixcbiAgICB7IGNsYXNzOiBfdm0ucXVlc3Rpb24uY3NzQ2xhc3Nlcy5yb290IH0sXG4gICAgW1xuICAgICAgX3ZtLnRhYmxlLnNob3dIZWFkZXJcbiAgICAgICAgPyBfYyhcInRoZWFkXCIsIFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcInRyXCIsXG4gICAgICAgICAgICAgIF92bS5fbChfdm0udGFibGUuaGVhZGVyUm93LmNlbGxzLCBmdW5jdGlvbihjZWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgXCJ0aFwiLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IFwiaGVhZGVyX1wiICsgY2VsbC5pZCxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5xdWVzdGlvbi5jc3NDbGFzc2VzLmhlYWRlckNlbGwsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IG1pbldpZHRoOiBjZWxsLm1pbldpZHRoLCB3aWR0aDogY2VsbC53aWR0aCB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcInN1cnZleS1zdHJpbmdcIiwgeyBhdHRyczogeyBsb2NTdHJpbmc6IGNlbGwubG9jVGl0bGUgfSB9KVxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgXSlcbiAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJ0Ym9keVwiLFxuICAgICAgICBfdm0uX2woX3ZtLnRhYmxlLnJvd3MsIGZ1bmN0aW9uKHJvdykge1xuICAgICAgICAgIHJldHVybiBfYyhcbiAgICAgICAgICAgIFwidHJcIixcbiAgICAgICAgICAgIHsga2V5OiBfdm0ucXVlc3Rpb24uaW5wdXRJZCArIFwiX1wiICsgcm93LmlkIH0sXG4gICAgICAgICAgICBfdm0uX2wocm93LmNlbGxzLCBmdW5jdGlvbihjZWxsLCBjZWxsSW5kZXgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF9jKFwic3VydmV5LW1hdHJpeGNlbGxcIiwge1xuICAgICAgICAgICAgICAgIGtleTogcm93LmlkICsgXCJfXCIgKyBjZWxsSW5kZXgsXG4gICAgICAgICAgICAgICAgYXR0cnM6IHsgY2VsbDogY2VsbCwgcXVlc3Rpb246IF92bS5xdWVzdGlvbiB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLnRhYmxlLnNob3dGb290ZXJcbiAgICAgICAgPyBfYyhcInRmb290XCIsIFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcInRyXCIsXG4gICAgICAgICAgICAgIF92bS5fbChfdm0udGFibGUuZm9vdGVyUm93LmNlbGxzLCBmdW5jdGlvbihjZWxsLCBjZWxsSW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX2MoXCJzdXJ2ZXktbWF0cml4Y2VsbFwiLCB7XG4gICAgICAgICAgICAgICAgICBrZXk6IFwiZm9vdGVyX1wiICsgY2VsbEluZGV4LFxuICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgY2VsbDogY2VsbCwgcXVlc3Rpb246IF92bS5xdWVzdGlvbiB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICBdKVxuICAgICAgICA6IF92bS5fZSgpXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9XG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LWZhMTk3ZTRhXCIsIHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH0pXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi1mYTE5N2U0YVwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vfi92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvdnVlL21hdHJpeHRhYmxlLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMjEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBnO1xyXG5cclxuLy8gVGhpcyB3b3JrcyBpbiBub24tc3RyaWN0IG1vZGVcclxuZyA9IChmdW5jdGlvbigpIHtcclxuXHRyZXR1cm4gdGhpcztcclxufSkoKTtcclxuXHJcbnRyeSB7XHJcblx0Ly8gVGhpcyB3b3JrcyBpZiBldmFsIGlzIGFsbG93ZWQgKHNlZSBDU1ApXHJcblx0ZyA9IGcgfHwgRnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpIHx8ICgxLGV2YWwpKFwidGhpc1wiKTtcclxufSBjYXRjaChlKSB7XHJcblx0Ly8gVGhpcyB3b3JrcyBpZiB0aGUgd2luZG93IHJlZmVyZW5jZSBpcyBhdmFpbGFibGVcclxuXHRpZih0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiKVxyXG5cdFx0ZyA9IHdpbmRvdztcclxufVxyXG5cclxuLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLlxyXG4vLyBXZSByZXR1cm4gdW5kZWZpbmVkLCBpbnN0ZWFkIG9mIG5vdGhpbmcgaGVyZSwgc28gaXQnc1xyXG4vLyBlYXNpZXIgdG8gaGFuZGxlIHRoaXMgY2FzZS4gaWYoIWdsb2JhbCkgeyAuLi59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGc7XHJcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vICh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qc1xuLy8gbW9kdWxlIGlkID0gMjE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8vIG1vZGVsXG5leHBvcnQgKiBmcm9tIFwiLi9jaHVua3MvbW9kZWxcIjtcblxuLy8gbG9jYWxpemF0aW9uXG5pbXBvcnQgXCIuL2NodW5rcy9sb2NhbGl6YXRpb25cIjtcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSBcIi4vY2h1bmtzL2hlbHBlcnNcIjtcblxuZXhwb3J0IHsgc3VydmV5Q3NzIH0gZnJvbSBcIi4uL2RlZmF1bHRDc3MvY3Nzc3RhbmRhcmRcIjtcbi8vIGNzcyBzdGFuZGFyZFxuZXhwb3J0IHsgZGVmYXVsdFN0YW5kYXJkQ3NzIH0gZnJvbSBcIi4uL2RlZmF1bHRDc3MvY3Nzc3RhbmRhcmRcIjtcbi8vIGNzcyBib290c3RyYXBcbmV4cG9ydCB7IGRlZmF1bHRCb290c3RyYXBDc3MgfSBmcm9tIFwiLi4vZGVmYXVsdENzcy9jc3Nib290c3RyYXBcIjtcbi8vIGNzcyBib290c3RyYXAgKyBtYXRlcmlhbFxuZXhwb3J0IHtcbiAgZGVmYXVsdEJvb3RzdHJhcE1hdGVyaWFsQ3NzXG59IGZyb20gXCIuLi9kZWZhdWx0Q3NzL2Nzc2Jvb3RzdHJhcG1hdGVyaWFsXCI7XG5leHBvcnQgeyBtb2Rlcm5Dc3MgfSBmcm9tIFwiLi4vZGVmYXVsdENzcy9jc3Ntb2Rlcm5cIjtcblxuaW1wb3J0IHsgVnVlU3VydmV5TW9kZWwgfSBmcm9tIFwiLi4vdnVlL3N1cnZleU1vZGVsXCI7XG5leHBvcnQgeyBWdWVTdXJ2ZXlNb2RlbCBhcyBNb2RlbCB9O1xuaW1wb3J0IHsgVnVlU3VydmV5V2luZG93TW9kZWwgfSBmcm9tIFwiLi4vdnVlL3N1cnZleU1vZGVsXCI7XG5leHBvcnQgeyBWdWVTdXJ2ZXlXaW5kb3dNb2RlbCBhcyBXaW5kb3dNb2RlbCB9O1xuZXhwb3J0IHsgU3VydmV5IH0gZnJvbSBcIi4uL3Z1ZS9zdXJ2ZXkudnVlXCI7XG5leHBvcnQgeyBDdXN0b21XaWRnZXQgfSBmcm9tIFwiLi4vdnVlL2N1c3RvbXdpZGdldC52dWVcIjtcbmV4cG9ydCB7IFN1cnZleVN0cmluZyB9IGZyb20gXCIuLi92dWUvc3RyaW5nLnZ1ZVwiO1xuZXhwb3J0IHsgU3VydmV5RWxlbWVudFZ1ZSB9IGZyb20gXCIuLi92dWUvZWxlbWVudC52dWVcIjtcbmV4cG9ydCB7IFdpbmRvdyB9IGZyb20gXCIuLi92dWUvd2luZG93LnZ1ZVwiO1xuZXhwb3J0IHsgUGFnZSB9IGZyb20gXCIuLi92dWUvcGFnZS52dWVcIjtcbmV4cG9ydCB7IFJhZGlvZ3JvdXAgfSBmcm9tIFwiLi4vdnVlL3JhZGlvZ3JvdXAudnVlXCI7XG5leHBvcnQgeyBSYWRpb2dyb3VwSXRlbSB9IGZyb20gXCIuLi92dWUvcmFkaW9ncm91cGl0ZW0udnVlXCI7XG5leHBvcnQgeyBPdGhlckNob2ljZSB9IGZyb20gXCIuLi92dWUvb3RoZXJDaG9pY2UudnVlXCI7XG5leHBvcnQgeyBSYXRpbmcgfSBmcm9tIFwiLi4vdnVlL3JhdGluZy52dWVcIjtcbmV4cG9ydCB7IENvbW1lbnQgfSBmcm9tIFwiLi4vdnVlL2NvbW1lbnQudnVlXCI7XG5leHBvcnQgeyBDaGVja2JveCB9IGZyb20gXCIuLi92dWUvY2hlY2tib3gudnVlXCI7XG5leHBvcnQgeyBDaGVja2JveEl0ZW0gfSBmcm9tIFwiLi4vdnVlL2NoZWNrYm94aXRlbS52dWVcIjtcbmV4cG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vdnVlL3RleHQudnVlXCI7XG5leHBvcnQgeyBCb29sZWFuIH0gZnJvbSBcIi4uL3Z1ZS9ib29sZWFuLnZ1ZVwiO1xuZXhwb3J0IHsgRW1wdHkgfSBmcm9tIFwiLi4vdnVlL2VtcHR5LnZ1ZVwiO1xuZXhwb3J0IHsgTXVsdGlwbGVUZXh0IH0gZnJvbSBcIi4uL3Z1ZS9tdWx0aXBsZXRleHQudnVlXCI7XG5leHBvcnQgeyBNYXRyaXggfSBmcm9tIFwiLi4vdnVlL21hdHJpeC52dWVcIjtcbmV4cG9ydCB7IERyb3Bkb3duIH0gZnJvbSBcIi4uL3Z1ZS9kcm9wZG93bi52dWVcIjtcbmV4cG9ydCB7IEZpbGUgfSBmcm9tIFwiLi4vdnVlL2ZpbGUudnVlXCI7XG5leHBvcnQgeyBNYXRyaXhDZWxsIH0gZnJvbSBcIi4uL3Z1ZS9tYXRyaXhjZWxsLnZ1ZVwiO1xuZXhwb3J0IHsgTWF0cml4VGFibGUgfSBmcm9tIFwiLi4vdnVlL21hdHJpeHRhYmxlLnZ1ZVwiO1xuZXhwb3J0IHsgTWF0cml4RHJvcGRvd24gfSBmcm9tIFwiLi4vdnVlL21hdHJpeGRyb3Bkb3duLnZ1ZVwiO1xuZXhwb3J0IHsgTWF0cml4RHluYW1pYyB9IGZyb20gXCIuLi92dWUvbWF0cml4ZHluYW1pYy52dWVcIjtcbmV4cG9ydCB7IEVycm9ycyB9IGZyb20gXCIuLi92dWUvZXJyb3JzLnZ1ZVwiO1xuZXhwb3J0IHsgSHRtbCB9IGZyb20gXCIuLi92dWUvaHRtbC52dWVcIjtcbmV4cG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tIFwiLi4vdnVlL2V4cHJlc3Npb24udnVlXCI7XG5leHBvcnQgeyBJbWFnZVBpY2tlciB9IGZyb20gXCIuLi92dWUvaW1hZ2VwaWNrZXIudnVlXCI7XG5leHBvcnQgeyBQYW5lbER5bmFtaWMgfSBmcm9tIFwiLi4vdnVlL3BhbmVsZHluYW1pYy52dWVcIjtcbmV4cG9ydCB7IFBhbmVsRHluYW1pY1Byb2dyZXNzIH0gZnJvbSBcIi4uL3Z1ZS9wYW5lbGR5bmFtaWNwcm9ncmVzcy52dWVcIjtcbmV4cG9ydCB7IFByb2dyZXNzIH0gZnJvbSBcIi4uL3Z1ZS9wcm9ncmVzcy52dWVcIjtcbmV4cG9ydCB7IFRpbWVyUGFuZWwgfSBmcm9tIFwiLi4vdnVlL3RpbWVycGFuZWwudnVlXCI7XG5leHBvcnQgeyBQYW5lbCB9IGZyb20gXCIuLi92dWUvcGFuZWwudnVlXCI7XG5leHBvcnQgeyBGbG93UGFuZWwgfSBmcm9tIFwiLi4vdnVlL2Zsb3dwYW5lbC52dWVcIjtcbmV4cG9ydCB7IEZsb3dQYW5lbEVsZW1lbnQgfSBmcm9tIFwiLi4vdnVlL2Zsb3dwYW5lbGVsZW1lbnQudnVlXCI7XG5leHBvcnQgeyBSb3cgfSBmcm9tIFwiLi4vdnVlL3Jvdy52dWVcIjtcbmV4cG9ydCB7IEVsZW1lbnRIZWFkZXIgfSBmcm9tIFwiLi4vdnVlL2VsZW1lbnRoZWFkZXIudnVlXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvZW50cmllcy92dWUudHMiXSwic291cmNlUm9vdCI6IiJ9","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","module.exports = false;\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","exports.f = require('./_wks');\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","exports.f = {}.propertyIsEnumerable;\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","/*!\n * vue2-editor v2.10.3 \n * (c) 2021 David Royer\n * Released under the MIT License.\n */\nimport Quill from 'quill';\nexport { default as Quill } from 'quill';\n\nvar defaultToolbar = [[{\n header: [false, 1, 2, 3, 4, 5, 6]\n}], [\"bold\", \"italic\", \"underline\", \"strike\"], // toggled buttons\n[{\n align: \"\"\n}, {\n align: \"center\"\n}, {\n align: \"right\"\n}, {\n align: \"justify\"\n}], [\"blockquote\", \"code-block\"], [{\n list: \"ordered\"\n}, {\n list: \"bullet\"\n}, {\n list: \"check\"\n}], [{\n indent: \"-1\"\n}, {\n indent: \"+1\"\n}], // outdent/indent\n[{\n color: []\n}, {\n background: []\n}], // dropdown with defaults from theme\n[\"link\", \"image\", \"video\"], [\"clean\"] // remove formatting button\n];\n\nvar oldApi = {\n props: {\n customModules: Array\n },\n methods: {\n registerCustomModules: function registerCustomModules(Quill) {\n if (this.customModules !== undefined) {\n this.customModules.forEach(function (customModule) {\n Quill.register(\"modules/\" + customModule.alias, customModule.module);\n });\n }\n }\n }\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\n/**\n * Performs a deep merge of `source` into `target`.\n * Mutates `target` only but not its objects and arrays.\n *\n */\nfunction mergeDeep(target, source) {\n var isObject = function isObject(obj) {\n return obj && _typeof(obj) === \"object\";\n };\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach(function (key) {\n var targetValue = target[key];\n var sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n return target;\n}\n\nvar BlockEmbed = Quill.import(\"blots/block/embed\");\n\nvar HorizontalRule =\n/*#__PURE__*/\nfunction (_BlockEmbed) {\n _inherits(HorizontalRule, _BlockEmbed);\n\n function HorizontalRule() {\n _classCallCheck(this, HorizontalRule);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalRule).apply(this, arguments));\n }\n\n return HorizontalRule;\n}(BlockEmbed);\n\nHorizontalRule.blotName = \"hr\";\nHorizontalRule.tagName = \"hr\";\nQuill.register(\"formats/horizontal\", HorizontalRule);\n\nvar MarkdownShortcuts =\n/*#__PURE__*/\nfunction () {\n function MarkdownShortcuts(quill, options) {\n var _this = this;\n\n _classCallCheck(this, MarkdownShortcuts);\n\n this.quill = quill;\n this.options = options;\n this.ignoreTags = [\"PRE\"];\n this.matches = [{\n name: \"header\",\n pattern: /^(#){1,6}\\s/g,\n action: function action(text, selection, pattern) {\n var match = pattern.exec(text);\n if (!match) return;\n var size = match[0].length; // Need to defer this action https://github.com/quilljs/quill/issues/1134\n\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 0, \"header\", size - 1);\n\n _this.quill.deleteText(selection.index - size, size);\n }, 0);\n }\n }, {\n name: \"blockquote\",\n pattern: /^(>)\\s/g,\n action: function action(_text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"blockquote\", true);\n\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: \"code-block\",\n pattern: /^`{3}(?:\\s|\\n)/g,\n action: function action(_text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"code-block\", true);\n\n _this.quill.deleteText(selection.index - 4, 4);\n }, 0);\n }\n }, {\n name: \"bolditalic\",\n pattern: /(?:\\*|_){3}(.+?)(?:\\*|_){3}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n bold: true,\n italic: true\n });\n\n _this.quill.format(\"bold\", false);\n }, 0);\n }\n }, {\n name: \"bold\",\n pattern: /(?:\\*|_){2}(.+?)(?:\\*|_){2}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n bold: true\n });\n\n _this.quill.format(\"bold\", false);\n }, 0);\n }\n }, {\n name: \"italic\",\n pattern: /(?:\\*|_){1}(.+?)(?:\\*|_){1}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n italic: true\n });\n\n _this.quill.format(\"italic\", false);\n }, 0);\n }\n }, {\n name: \"strikethrough\",\n pattern: /(?:~~)(.+?)(?:~~)/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n strike: true\n });\n\n _this.quill.format(\"strike\", false);\n }, 0);\n }\n }, {\n name: \"code\",\n pattern: /(?:`)(.+?)(?:`)/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n code: true\n });\n\n _this.quill.format(\"code\", false);\n\n _this.quill.insertText(_this.quill.getSelection(), \" \");\n }, 0);\n }\n }, {\n name: \"hr\",\n pattern: /^([-*]\\s?){3}/g,\n action: function action(text, selection) {\n var startIndex = selection.index - text.length;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, text.length);\n\n _this.quill.insertEmbed(startIndex + 1, \"hr\", true, Quill.sources.USER);\n\n _this.quill.insertText(startIndex + 2, \"\\n\", Quill.sources.SILENT);\n\n _this.quill.setSelection(startIndex + 2, Quill.sources.SILENT);\n }, 0);\n }\n }, {\n name: \"asterisk-ul\",\n pattern: /^(\\*|\\+)\\s$/g,\n // eslint-disable-next-line no-unused-vars\n action: function action(_text, selection, _pattern) {\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"list\", \"unordered\");\n\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: \"image\",\n pattern: /(?:!\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0]; // const hrefText = text.match(/(?:!\\[(.*?)\\])/g)[0]\n\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n\n _this.quill.insertEmbed(start, \"image\", hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }, {\n name: \"link\",\n pattern: /(?:\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0];\n var hrefText = text.match(/(?:\\[(.*?)\\])/g)[0];\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n\n _this.quill.insertText(start, hrefText.slice(1, hrefText.length - 1), \"link\", hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }]; // Handler that looks for insert deltas that match specific characters\n // eslint-disable-next-line no-unused-vars\n\n this.quill.on(\"text-change\", function (delta, _oldContents, _source) {\n for (var i = 0; i < delta.ops.length; i++) {\n if (delta.ops[i].hasOwnProperty(\"insert\")) {\n if (delta.ops[i].insert === \" \") {\n _this.onSpace();\n } else if (delta.ops[i].insert === \"\\n\") {\n _this.onEnter();\n }\n }\n }\n });\n }\n\n _createClass(MarkdownShortcuts, [{\n key: \"isValid\",\n value: function isValid(text, tagName) {\n return typeof text !== \"undefined\" && text && this.ignoreTags.indexOf(tagName) === -1;\n }\n }, {\n key: \"onSpace\",\n value: function onSpace() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _this$quill$getLine = this.quill.getLine(selection.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 2),\n line = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n\n var text = line.domNode.textContent;\n var lineStart = selection.index - offset;\n\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.matches[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var match = _step.value;\n var matchedText = text.match(match.pattern);\n\n if (matchedText) {\n // We need to replace only matched text not the whole line\n console.log(\"matched:\", match.name, text);\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _this$quill$getLine3 = this.quill.getLine(selection.index),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 2),\n line = _this$quill$getLine4[0],\n offset = _this$quill$getLine4[1];\n\n var text = line.domNode.textContent + \" \";\n var lineStart = selection.index - offset;\n selection.length = selection.index++;\n\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = this.matches[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var match = _step2.value;\n var matchedText = text.match(match.pattern);\n\n if (matchedText) {\n console.log(\"matched\", match.name, text);\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n }]);\n\n return MarkdownShortcuts;\n}(); // module.exports = MarkdownShortcuts;\n\n//\nvar script = {\n name: \"VueEditor\",\n mixins: [oldApi],\n props: {\n id: {\n type: String,\n default: \"quill-container\"\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n value: {\n type: String,\n default: \"\"\n },\n disabled: {\n type: Boolean\n },\n editorToolbar: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n editorOptions: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n useCustomImageHandler: {\n type: Boolean,\n default: false\n },\n useMarkdownShortcuts: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n quill: null\n };\n },\n watch: {\n value: function value(val) {\n if (val != this.quill.root.innerHTML && !this.quill.hasFocus()) {\n this.quill.root.innerHTML = val;\n }\n },\n disabled: function disabled(status) {\n this.quill.enable(!status);\n }\n },\n mounted: function mounted() {\n this.registerCustomModules(Quill);\n this.registerPrototypes();\n this.initializeEditor();\n },\n beforeDestroy: function beforeDestroy() {\n this.quill = null;\n delete this.quill;\n },\n methods: {\n initializeEditor: function initializeEditor() {\n this.setupQuillEditor();\n this.checkForCustomImageHandler();\n this.handleInitialContent();\n this.registerEditorEventListeners();\n this.$emit(\"ready\", this.quill);\n },\n setupQuillEditor: function setupQuillEditor() {\n var editorConfig = {\n debug: false,\n modules: this.setModules(),\n theme: \"snow\",\n placeholder: this.placeholder ? this.placeholder : \"\",\n readOnly: this.disabled ? this.disabled : false\n };\n this.prepareEditorConfig(editorConfig);\n this.quill = new Quill(this.$refs.quillContainer, editorConfig);\n },\n setModules: function setModules() {\n var modules = {\n toolbar: this.editorToolbar.length ? this.editorToolbar : defaultToolbar\n };\n\n if (this.useMarkdownShortcuts) {\n Quill.register(\"modules/markdownShortcuts\", MarkdownShortcuts, true);\n modules[\"markdownShortcuts\"] = {};\n }\n\n return modules;\n },\n prepareEditorConfig: function prepareEditorConfig(editorConfig) {\n if (Object.keys(this.editorOptions).length > 0 && this.editorOptions.constructor === Object) {\n if (this.editorOptions.modules && typeof this.editorOptions.modules.toolbar !== \"undefined\") {\n // We don't want to merge default toolbar with provided toolbar.\n delete editorConfig.modules.toolbar;\n }\n\n mergeDeep(editorConfig, this.editorOptions);\n }\n },\n registerPrototypes: function registerPrototypes() {\n Quill.prototype.getHTML = function () {\n return this.container.querySelector(\".ql-editor\").innerHTML;\n };\n\n Quill.prototype.getWordCount = function () {\n return this.container.querySelector(\".ql-editor\").innerText.length;\n };\n },\n registerEditorEventListeners: function registerEditorEventListeners() {\n this.quill.on(\"text-change\", this.handleTextChange);\n this.quill.on(\"selection-change\", this.handleSelectionChange);\n this.listenForEditorEvent(\"text-change\");\n this.listenForEditorEvent(\"selection-change\");\n this.listenForEditorEvent(\"editor-change\");\n },\n listenForEditorEvent: function listenForEditorEvent(type) {\n var _this = this;\n\n this.quill.on(type, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this.$emit.apply(_this, [type].concat(args));\n });\n },\n handleInitialContent: function handleInitialContent() {\n if (this.value) this.quill.root.innerHTML = this.value; // Set initial editor content\n },\n handleSelectionChange: function handleSelectionChange(range, oldRange) {\n if (!range && oldRange) this.$emit(\"blur\", this.quill);else if (range && !oldRange) this.$emit(\"focus\", this.quill);\n },\n handleTextChange: function handleTextChange(delta, oldContents) {\n var editorContent = this.quill.getHTML() === \"


\" ? \"\" : this.quill.getHTML();\n this.$emit(\"input\", editorContent);\n if (this.useCustomImageHandler) this.handleImageRemoved(delta, oldContents);\n },\n handleImageRemoved: function handleImageRemoved(delta, oldContents) {\n var _this2 = this;\n\n var currrentContents = this.quill.getContents();\n var deletedContents = currrentContents.diff(oldContents);\n var operations = deletedContents.ops;\n operations.map(function (operation) {\n if (operation.insert && operation.insert.hasOwnProperty(\"image\")) {\n var image = operation.insert.image;\n\n _this2.$emit(\"image-removed\", image);\n }\n });\n },\n checkForCustomImageHandler: function checkForCustomImageHandler() {\n this.useCustomImageHandler === true ? this.setupCustomImageHandler() : \"\";\n },\n setupCustomImageHandler: function setupCustomImageHandler() {\n var toolbar = this.quill.getModule(\"toolbar\");\n toolbar.addHandler(\"image\", this.customImageHandler);\n },\n customImageHandler: function customImageHandler() {\n this.$refs.fileInput.click();\n },\n emitImageInfo: function emitImageInfo($event) {\n var resetUploader = function resetUploader() {\n var uploader = document.getElementById(\"file-upload\");\n uploader.value = \"\";\n };\n\n var file = $event.target.files[0];\n var Editor = this.quill;\n var range = Editor.getSelection();\n var cursorLocation = range.index;\n this.$emit(\"image-added\", file, Editor, cursorLocation, resetUploader);\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\n\nvar HEAD;\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n\n if (HEAD === undefined) {\n HEAD = document.head || document.getElementsByTagName('head')[0];\n }\n\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nvar browser = createInjector;\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"quillWrapper\"},[_vm._t(\"toolbar\"),_vm._v(\" \"),_c('div',{ref:\"quillContainer\",attrs:{\"id\":_vm.id}}),_vm._v(\" \"),(_vm.useCustomImageHandler)?_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"file-upload\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":function($event){return _vm.emitImageInfo($event)}}}):_vm._e()],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = function (inject) {\n if (!inject) return\n inject(\"data-v-776e788e_0\", { source: \"/*!\\n * Quill Editor v1.3.6\\n * https://quilljs.com/\\n * Copyright (c) 2014, Jason Chen\\n * Copyright (c) 2013, salesforce.com\\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li::before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:0;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li::before{content:'\\\\2022'}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li::before,.ql-editor ul[data-checked=true]>li::before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li::before{content:'\\\\2611'}.ql-editor ul[data-checked=false]>li::before{content:'\\\\2610'}.ql-editor li::before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl)::before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl::before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) '. '}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) '. '}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) '. '}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) '. '}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) '. '}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) '. '}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) '. '}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) '. '}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) '. '}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) '. '}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank::before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:'';display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:0 0;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:0}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow{box-sizing:border-box}.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:'';display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label::before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item::before,.ql-snow .ql-picker.ql-header .ql-picker-label::before{content:'Normal'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"1\\\"]::before{content:'Heading 1'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"2\\\"]::before{content:'Heading 2'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"3\\\"]::before{content:'Heading 3'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"4\\\"]::before{content:'Heading 4'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"5\\\"]::before{content:'Heading 5'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"6\\\"]::before{content:'Heading 6'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item::before,.ql-snow .ql-picker.ql-font .ql-picker-label::before{content:'Sans Serif'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before{content:'Serif'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before{content:'Monospace'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item::before,.ql-snow .ql-picker.ql-size .ql-picker-label::before{content:'Normal'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before{content:'Small'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before{content:'Large'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before{content:'Huge'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:rgba(0,0,0,.2) 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{border-color:#ccc}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip::before{content:\\\"Visit URL:\\\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action::after{border-right:1px solid #ccc;content:'Edit';margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove::before{content:'Remove';margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action::after{border-right:0;content:'Save';padding-right:0}.ql-snow .ql-tooltip[data-mode=link]::before{content:\\\"Enter link:\\\"}.ql-snow .ql-tooltip[data-mode=formula]::before{content:\\\"Enter formula:\\\"}.ql-snow .ql-tooltip[data-mode=video]::before{content:\\\"Enter video:\\\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}\", map: undefined, media: undefined })\n,inject(\"data-v-776e788e_1\", { source: \".ql-editor{min-height:200px;font-size:16px}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1px!important}.quillWrapper .ql-snow.ql-toolbar{padding-top:8px;padding-bottom:4px}.quillWrapper .ql-snow.ql-toolbar .ql-formats{margin-bottom:10px}.ql-snow .ql-toolbar button svg,.quillWrapper .ql-snow.ql-toolbar button svg{width:22px;height:22px}.quillWrapper .ql-editor ul[data-checked=false]>li::before,.quillWrapper .ql-editor ul[data-checked=true]>li::before{font-size:1.35em;vertical-align:baseline;bottom:-.065em;font-weight:900;color:#222}.quillWrapper .ql-snow .ql-stroke{stroke:rgba(63,63,63,.95);stroke-linecap:square;stroke-linejoin:initial;stroke-width:1.7px}.quillWrapper .ql-picker-label{font-size:15px}.quillWrapper .ql-snow .ql-active .ql-stroke{stroke-width:2.25px}.quillWrapper .ql-toolbar.ql-snow .ql-formats{vertical-align:top}.ql-picker:not(.ql-background){position:relative;top:2px}.ql-picker.ql-color-picker svg{width:22px!important;height:22px!important}.quillWrapper .imageResizeActive img{display:block;cursor:pointer}.quillWrapper .imageResizeActive~div svg{cursor:pointer}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject SSR */\n \n\n \n var VueEditor = normalizeComponent_1(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n browser,\n undefined\n );\n\nvar version = \"2.10.3\"; // Declare install function executed by Vue.use()\n\nfunction install(Vue) {\n if (install.installed) return;\n install.installed = true;\n Vue.component(\"VueEditor\", VueEditor);\n}\nvar VPlugin = {\n install: install,\n version: version,\n Quill: Quill,\n VueEditor: VueEditor\n}; // Auto-install when vue is found (eg. in browser via \";\n };\n SurveyTemplateText.prototype.replaceText = function (replaceText, id, questionType) {\n if (questionType === void 0) { questionType = null; }\n var posId = this.getId(id, questionType);\n var pos = this.text.indexOf(posId);\n if (pos < 0) {\n this.addText(replaceText, id, questionType);\n return;\n }\n pos = this.text.indexOf(\">\", pos);\n if (pos < 0)\n return;\n var startPos = pos + 1;\n var endString = \"\";\n pos = this.text.indexOf(endString, startPos);\n if (pos < 0)\n return;\n this.text =\n this.text.substring(0, startPos) + replaceText + this.text.substring(pos);\n };\n SurveyTemplateText.prototype.getId = function (id, questionType) {\n var result = 'id=\"survey-' + id;\n if (questionType) {\n result += \"-\" + questionType;\n }\n return result + '\"';\n };\n Object.defineProperty(SurveyTemplateText.prototype, \"text\", {\n get: function () {\n return koTemplate;\n },\n set: function (value) {\n koTemplate = value;\n },\n enumerable: false,\n configurable: true\n });\n return SurveyTemplateText;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/comment.html\":\n/*!*********************************************!*\\\n !*** ./src/knockout/templates/comment.html ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/flowpanel.html\":\n/*!***********************************************!*\\\n !*** ./src/knockout/templates/flowpanel.html ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/header.html\":\n/*!********************************************!*\\\n !*** ./src/knockout/templates/header.html ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/index.html\":\n/*!*******************************************!*\\\n !*** ./src/knockout/templates/index.html ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/page.html\":\n/*!******************************************!*\\\n !*** ./src/knockout/templates/page.html ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/panel.html\":\n/*!*******************************************!*\\\n !*** ./src/knockout/templates/panel.html ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/popup-pointer.html\":\n/*!***************************************************!*\\\n !*** ./src/knockout/templates/popup-pointer.html ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-boolean.html\":\n/*!******************************************************!*\\\n !*** ./src/knockout/templates/question-boolean.html ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-buttongroup.html\":\n/*!**********************************************************!*\\\n !*** ./src/knockout/templates/question-buttongroup.html ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-checkbox.html\":\n/*!*******************************************************!*\\\n !*** ./src/knockout/templates/question-checkbox.html ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-comment.html\":\n/*!******************************************************!*\\\n !*** ./src/knockout/templates/question-comment.html ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-composite.html\":\n/*!********************************************************!*\\\n !*** ./src/knockout/templates/question-composite.html ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-custom.html\":\n/*!*****************************************************!*\\\n !*** ./src/knockout/templates/question-custom.html ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-dropdown.html\":\n/*!*******************************************************!*\\\n !*** ./src/knockout/templates/question-dropdown.html ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-empty.html\":\n/*!****************************************************!*\\\n !*** ./src/knockout/templates/question-empty.html ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-errors.html\":\n/*!*****************************************************!*\\\n !*** ./src/knockout/templates/question-errors.html ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-expression.html\":\n/*!*********************************************************!*\\\n !*** ./src/knockout/templates/question-expression.html ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-file.html\":\n/*!***************************************************!*\\\n !*** ./src/knockout/templates/question-file.html ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-html.html\":\n/*!***************************************************!*\\\n !*** ./src/knockout/templates/question-html.html ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-image.html\":\n/*!****************************************************!*\\\n !*** ./src/knockout/templates/question-image.html ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-imagepicker.html\":\n/*!**********************************************************!*\\\n !*** ./src/knockout/templates/question-imagepicker.html ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-matrix.html\":\n/*!*****************************************************!*\\\n !*** ./src/knockout/templates/question-matrix.html ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-matrixdropdown.html\":\n/*!*************************************************************!*\\\n !*** ./src/knockout/templates/question-matrixdropdown.html ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-matrixdynamic.html\":\n/*!************************************************************!*\\\n !*** ./src/knockout/templates/question-matrixdynamic.html ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-multipletext.html\":\n/*!***********************************************************!*\\\n !*** ./src/knockout/templates/question-multipletext.html ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-paneldynamic-navigator.html\":\n/*!*********************************************************************!*\\\n !*** ./src/knockout/templates/question-paneldynamic-navigator.html ***!\n \\*********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-paneldynamic.html\":\n/*!***********************************************************!*\\\n !*** ./src/knockout/templates/question-paneldynamic.html ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-radiogroup.html\":\n/*!*********************************************************!*\\\n !*** ./src/knockout/templates/question-radiogroup.html ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-ranking.html\":\n/*!******************************************************!*\\\n !*** ./src/knockout/templates/question-ranking.html ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-rating.html\":\n/*!*****************************************************!*\\\n !*** ./src/knockout/templates/question-rating.html ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-signaturepad.html\":\n/*!***********************************************************!*\\\n !*** ./src/knockout/templates/question-signaturepad.html ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-tagbox.html\":\n/*!*****************************************************!*\\\n !*** ./src/knockout/templates/question-tagbox.html ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question-text.html\":\n/*!***************************************************!*\\\n !*** ./src/knockout/templates/question-text.html ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/question.html\":\n/*!**********************************************!*\\\n !*** ./src/knockout/templates/question.html ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/questioncontent.html\":\n/*!*****************************************************!*\\\n !*** ./src/knockout/templates/questioncontent.html ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/questiontitle.html\":\n/*!***************************************************!*\\\n !*** ./src/knockout/templates/questiontitle.html ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/row.html\":\n/*!*****************************************!*\\\n !*** ./src/knockout/templates/row.html ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/rows.html\":\n/*!******************************************!*\\\n !*** ./src/knockout/templates/rows.html ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/string.html\":\n/*!********************************************!*\\\n !*** ./src/knockout/templates/string.html ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/knockout/templates/timerpanel.html\":\n/*!************************************************!*\\\n !*** ./src/knockout/templates/timerpanel.html ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\";\n\n/***/ }),\n\n/***/ \"./src/list.ts\":\n/*!*********************!*\\\n !*** ./src/list.ts ***!\n \\*********************/\n/*! exports provided: defaultListCss, ListModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultListCss\", function() { return defaultListCss; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ListModel\", function() { return ListModel; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./actions/container */ \"./src/actions/container.ts\");\n/* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./actions/action */ \"./src/actions/action.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _element_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./element-helper */ \"./src/element-helper.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nvar defaultListCss = {\n root: \"sv-list__container\",\n item: \"sv-list__item\",\n searchClearButtonIcon: \"sv-list__filter-clear-button\",\n loadingIndicator: \"sv-list__loading-indicator\",\n itemSelected: \"sv-list__item--selected\",\n itemWithIcon: \"sv-list__item--with-icon\",\n itemDisabled: \"sv-list__item--disabled\",\n itemFocused: \"sv-list__item--focused\",\n itemTextWrap: \"sv-list__item-text--wrap\",\n itemIcon: \"sv-list__item-icon\",\n itemSeparator: \"sv-list__item-separator\",\n itemBody: \"sv-list__item-body\",\n itemsContainer: \"sv-list\",\n itemsContainerFiltering: \"sv-list--filtering\",\n filter: \"sv-list__filter\",\n filterIcon: \"sv-list__filter-icon\",\n filterInput: \"sv-list__input\",\n emptyContainer: \"sv-list__empty-container\",\n emptyText: \"sv-list__empty-text\"\n};\nvar ListModel = /** @class */ (function (_super) {\n __extends(ListModel, _super);\n function ListModel(items, onSelectionChanged, allowSelection, selectedItem, elementId) {\n var _this = _super.call(this) || this;\n _this.onSelectionChanged = onSelectionChanged;\n _this.allowSelection = allowSelection;\n _this.elementId = elementId;\n _this.onItemClick = function (itemValue) {\n if (_this.isItemDisabled(itemValue)) {\n return;\n }\n _this.isExpanded = false;\n if (_this.allowSelection) {\n _this.selectedItem = itemValue;\n }\n if (!!_this.onSelectionChanged) {\n _this.onSelectionChanged(itemValue);\n }\n };\n _this.isItemDisabled = function (itemValue) {\n return itemValue.enabled !== undefined && !itemValue.enabled;\n };\n _this.isItemSelected = function (itemValue) {\n return _this.areSameItems(_this.selectedItem, itemValue);\n };\n _this.isItemFocused = function (itemValue) {\n return _this.areSameItems(_this.focusedItem, itemValue);\n };\n _this.getListClass = function () {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__[\"CssClassBuilder\"]()\n .append(_this.cssClasses.itemsContainer)\n .append(_this.cssClasses.itemsContainerFiltering, !!_this.filterString && _this.visibleActions.length !== _this.visibleItems.length)\n .toString();\n };\n _this.getItemClass = function (itemValue) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__[\"CssClassBuilder\"]()\n .append(_this.cssClasses.item)\n .append(_this.cssClasses.itemWithIcon, !!itemValue.iconName)\n .append(_this.cssClasses.itemDisabled, _this.isItemDisabled(itemValue))\n .append(_this.cssClasses.itemFocused, _this.isItemFocused(itemValue))\n .append(_this.cssClasses.itemSelected, _this.isItemSelected(itemValue))\n .append(_this.cssClasses.itemTextWrap, _this.textWrapEnabled)\n .append(itemValue.css)\n .toString();\n };\n _this.getItemIndent = function (itemValue) {\n var level = itemValue.level || 0;\n return (level + 1) * ListModel.INDENT + \"px\";\n };\n _this.setItems(items);\n _this.selectedItem = selectedItem;\n return _this;\n }\n ListModel.prototype.hasText = function (item, filterStringInLow) {\n if (!filterStringInLow)\n return true;\n var text = item.title || \"\";\n if (this.onTextSearchCallback)\n return this.onTextSearchCallback(item, filterStringInLow);\n var textInLow = text.toLocaleLowerCase();\n textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__[\"settings\"].comparator.normalizeTextCallback(textInLow, \"filter\");\n return textInLow.indexOf(filterStringInLow.toLocaleLowerCase()) > -1;\n };\n ListModel.prototype.isItemVisible = function (item) {\n return item.visible && (!this.shouldProcessFilter || this.hasText(item, this.filterString));\n };\n Object.defineProperty(ListModel.prototype, \"visibleItems\", {\n get: function () {\n var _this = this;\n return this.visibleActions.filter(function (item) { return _this.isItemVisible(item); });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ListModel.prototype, \"shouldProcessFilter\", {\n get: function () {\n return !this.onFilterStringChangedCallback;\n },\n enumerable: false,\n configurable: true\n });\n ListModel.prototype.onFilterStringChanged = function (text) {\n var _this = this;\n if (!!this.onFilterStringChangedCallback) {\n this.onFilterStringChangedCallback(text);\n }\n this.isEmpty = this.renderedActions.filter(function (action) { return _this.isItemVisible(action); }).length === 0;\n };\n ListModel.prototype.scrollToItem = function (selector, ms) {\n var _this = this;\n if (ms === void 0) { ms = 0; }\n setTimeout(function () {\n if (!_this.listContainerHtmlElement)\n return;\n var item = _this.listContainerHtmlElement.querySelector(\".\" + selector);\n if (item) {\n setTimeout(function () {\n item.scrollIntoView({ behavior: \"smooth\", block: \"nearest\", inline: \"start\" });\n }, ms);\n }\n }, ms);\n };\n ListModel.prototype.setOnFilterStringChangedCallback = function (callback) {\n this.onFilterStringChangedCallback = callback;\n };\n ListModel.prototype.setOnTextSearchCallback = function (callback) {\n this.onTextSearchCallback = callback;\n };\n ListModel.prototype.setItems = function (items, sortByVisibleIndex) {\n var _this = this;\n if (sortByVisibleIndex === void 0) { sortByVisibleIndex = true; }\n _super.prototype.setItems.call(this, items, sortByVisibleIndex);\n if (this.elementId) {\n this.renderedActions.forEach(function (action) { action.elementId = _this.elementId + action.id; });\n }\n if (!this.isAllDataLoaded && !!this.actions.length) {\n this.actions.push(this.loadingIndicator);\n }\n };\n ListModel.prototype.onSet = function () {\n this.showFilter = this.searchEnabled && (this.forceShowFilter || (this.actions || []).length > ListModel.MINELEMENTCOUNT);\n _super.prototype.onSet.call(this);\n };\n ListModel.prototype.getDefaultCssClasses = function () {\n return defaultListCss;\n };\n ListModel.prototype.areSameItems = function (item1, item2) {\n if (!!this.areSameItemsCallback)\n return this.areSameItemsCallback(item1, item2);\n return !!item1 && !!item2 && item1.id == item2.id;\n };\n Object.defineProperty(ListModel.prototype, \"filterStringPlaceholder\", {\n get: function () {\n return this.getLocalizationString(\"filterStringPlaceholder\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ListModel.prototype, \"emptyMessage\", {\n get: function () {\n return this.isAllDataLoaded ? this.getLocalizationString(\"emptyMessage\") : this.loadingText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ListModel.prototype, \"scrollableContainer\", {\n get: function () {\n return this.listContainerHtmlElement.querySelector(\".\" + this.getDefaultCssClasses().itemsContainer);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ListModel.prototype, \"loadingText\", {\n get: function () {\n return this.getLocalizationString(\"loadingFile\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ListModel.prototype, \"loadingIndicator\", {\n get: function () {\n if (!this.loadingIndicatorValue) {\n this.loadingIndicatorValue = (new _actions_action__WEBPACK_IMPORTED_MODULE_2__[\"Action\"]({\n id: \"loadingIndicator\",\n title: this.loadingText,\n action: function () { },\n css: this.cssClasses.loadingIndicator\n }));\n }\n return this.loadingIndicatorValue;\n },\n enumerable: false,\n configurable: true\n });\n ListModel.prototype.goToItems = function (event) {\n if (event.key === \"ArrowDown\" || event.keyCode === 40) {\n var currentElement = event.target.parentElement;\n var listElement = currentElement.parentElement.querySelector(\"ul\");\n var firstChild = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"getFirstVisibleChild\"])(listElement);\n if (!!listElement && !!firstChild) {\n _element_helper__WEBPACK_IMPORTED_MODULE_4__[\"ElementHelper\"].focusElement(firstChild);\n event.preventDefault();\n }\n }\n };\n ListModel.prototype.onMouseMove = function (event) {\n this.resetFocusedItem();\n };\n ListModel.prototype.onKeyDown = function (event) {\n var currentElement = event.target;\n if (event.key === \"ArrowDown\" || event.keyCode === 40) {\n _element_helper__WEBPACK_IMPORTED_MODULE_4__[\"ElementHelper\"].focusElement(_element_helper__WEBPACK_IMPORTED_MODULE_4__[\"ElementHelper\"].getNextElementPreorder(currentElement));\n event.preventDefault();\n }\n else if (event.key === \"ArrowUp\" || event.keyCode === 38) {\n _element_helper__WEBPACK_IMPORTED_MODULE_4__[\"ElementHelper\"].focusElement(_element_helper__WEBPACK_IMPORTED_MODULE_4__[\"ElementHelper\"].getNextElementPostorder(currentElement));\n event.preventDefault();\n }\n };\n ListModel.prototype.onPointerDown = function (event, item) { };\n ListModel.prototype.refresh = function () {\n this.filterString = \"\";\n this.resetFocusedItem();\n };\n ListModel.prototype.onClickSearchClearButton = function (event) {\n event.currentTarget.parentElement.querySelector(\"input\").focus();\n this.refresh();\n };\n ListModel.prototype.resetFocusedItem = function () {\n this.focusedItem = undefined;\n };\n ListModel.prototype.focusFirstVisibleItem = function () {\n this.focusedItem = this.visibleItems[0];\n };\n ListModel.prototype.focusLastVisibleItem = function () {\n this.focusedItem = this.visibleItems[this.visibleItems.length - 1];\n };\n ListModel.prototype.initFocusedItem = function () {\n var _this = this;\n this.focusedItem = this.visibleItems.filter(function (item) { return item.visible && _this.isItemSelected(item); })[0];\n if (!this.focusedItem) {\n this.focusFirstVisibleItem();\n }\n };\n ListModel.prototype.focusNextVisibleItem = function () {\n if (!this.focusedItem) {\n this.initFocusedItem();\n }\n else {\n var items = this.visibleItems;\n var currentFocusedItemIndex = items.indexOf(this.focusedItem);\n var nextItem = items[currentFocusedItemIndex + 1];\n if (nextItem) {\n this.focusedItem = nextItem;\n }\n else {\n this.focusFirstVisibleItem();\n }\n }\n };\n ListModel.prototype.focusPrevVisibleItem = function () {\n if (!this.focusedItem) {\n this.initFocusedItem();\n }\n else {\n var items = this.visibleItems;\n var currentFocusedItemIndex = items.indexOf(this.focusedItem);\n var prevItem = items[currentFocusedItemIndex - 1];\n if (prevItem) {\n this.focusedItem = prevItem;\n }\n else {\n this.focusLastVisibleItem();\n }\n }\n };\n ListModel.prototype.selectFocusedItem = function () {\n !!this.focusedItem && this.onItemClick(this.focusedItem);\n };\n ListModel.prototype.initListContainerHtmlElement = function (htmlElement) {\n this.listContainerHtmlElement = htmlElement;\n };\n ListModel.prototype.onLastItemRended = function (item) {\n if (this.isAllDataLoaded)\n return;\n if (item === this.actions[this.actions.length - 1] && !!this.listContainerHtmlElement) {\n this.hasVerticalScroller = _element_helper__WEBPACK_IMPORTED_MODULE_4__[\"ElementHelper\"].hasVerticalScroller(this.scrollableContainer);\n }\n };\n ListModel.prototype.scrollToFocusedItem = function () {\n this.scrollToItem(this.getDefaultCssClasses().itemFocused);\n };\n ListModel.prototype.scrollToSelectedItem = function () {\n this.scrollToItem(this.getDefaultCssClasses().itemSelected, 110);\n };\n ListModel.prototype.addScrollEventListener = function (handler) {\n if (!!handler) {\n this.scrollHandler = handler;\n }\n if (!!this.scrollHandler) {\n this.scrollableContainer.addEventListener(\"scroll\", this.scrollHandler);\n }\n };\n ListModel.prototype.removeScrollEventListener = function () {\n if (!!this.scrollHandler) {\n this.scrollableContainer.removeEventListener(\"scroll\", this.scrollHandler);\n }\n };\n ListModel.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n if (!!this.loadingIndicatorValue) {\n this.loadingIndicatorValue.dispose();\n }\n this.listContainerHtmlElement = undefined;\n };\n ListModel.INDENT = 16;\n ListModel.MINELEMENTCOUNT = 10;\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({\n defaultValue: true,\n onSet: function (newValue, target) {\n target.onSet();\n }\n })\n ], ListModel.prototype, \"searchEnabled\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: false })\n ], ListModel.prototype, \"showFilter\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: false })\n ], ListModel.prototype, \"forceShowFilter\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: false })\n ], ListModel.prototype, \"isExpanded\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({})\n ], ListModel.prototype, \"selectedItem\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], ListModel.prototype, \"focusedItem\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({\n onSet: function (_, target) {\n target.onFilterStringChanged(target.filterString);\n }\n })\n ], ListModel.prototype, \"filterString\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: false })\n ], ListModel.prototype, \"hasVerticalScroller\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: true })\n ], ListModel.prototype, \"isAllDataLoaded\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: false })\n ], ListModel.prototype, \"showSearchClearButton\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: true })\n ], ListModel.prototype, \"renderElements\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: false })\n ], ListModel.prototype, \"textWrapEnabled\", void 0);\n return ListModel;\n}(_actions_container__WEBPACK_IMPORTED_MODULE_1__[\"ActionContainer\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/localizablestring.ts\":\n/*!**********************************!*\\\n !*** ./src/localizablestring.ts ***!\n \\**********************************/\n/*! exports provided: LocalizableString, LocalizableStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LocalizableString\", function() { return LocalizableString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LocalizableStrings\", function() { return LocalizableStrings; });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"./src/helpers.ts\");\n/* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./surveyStrings */ \"./src/surveyStrings.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base */ \"./src/base.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _survey_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./survey-element */ \"./src/survey-element.ts\");\n\n\n\n\n\n\n/**\n * The class represents the string that supports multi-languages and markdown.\n * It uses in all objects where support for multi-languages and markdown is required.\n */\nvar LocalizableString = /** @class */ (function () {\n function LocalizableString(owner, useMarkdown, name) {\n if (useMarkdown === void 0) { useMarkdown = false; }\n var _a;\n this.owner = owner;\n this.useMarkdown = useMarkdown;\n this.name = name;\n this.values = {};\n this.htmlValues = {};\n this._allowLineBreaks = false;\n this.onStringChanged = new _base__WEBPACK_IMPORTED_MODULE_3__[\"EventBase\"]();\n if (owner instanceof _survey_element__WEBPACK_IMPORTED_MODULE_5__[\"SurveyElementCore\"]) {\n this._allowLineBreaks = ((_a = _jsonobject__WEBPACK_IMPORTED_MODULE_4__[\"Serializer\"].findProperty(owner.getType(), name)) === null || _a === void 0 ? void 0 : _a.type) == \"text\";\n }\n this.onCreating();\n }\n Object.defineProperty(LocalizableString, \"defaultLocale\", {\n get: function () {\n return _settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.defaultLocaleName;\n },\n set: function (val) {\n _settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.defaultLocaleName = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"localizationName\", {\n get: function () {\n return this._localizationName;\n },\n set: function (val) {\n if (this._localizationName != val) {\n this._localizationName = val;\n this.strChanged();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"allowLineBreaks\", {\n get: function () {\n return this._allowLineBreaks;\n },\n enumerable: false,\n configurable: true\n });\n LocalizableString.prototype.getIsMultiple = function () { return false; };\n Object.defineProperty(LocalizableString.prototype, \"locale\", {\n get: function () {\n if (this.owner && this.owner.getLocale) {\n var res = this.owner.getLocale();\n if (!!res || !this.sharedData)\n return res;\n }\n if (!!this.sharedData)\n return this.sharedData.locale;\n return \"\";\n },\n enumerable: false,\n configurable: true\n });\n LocalizableString.prototype.strChanged = function () {\n this.searchableText = undefined;\n if (this.renderedText === undefined)\n return;\n this.calculatedTextValue = this.calcText();\n if (this.renderedText !== this.calculatedTextValue) {\n this.renderedText = undefined;\n this.calculatedTextValue = undefined;\n }\n this.htmlValues = {};\n this.onChanged();\n this.onStringChanged.fire(this, {});\n };\n Object.defineProperty(LocalizableString.prototype, \"text\", {\n get: function () {\n return this.pureText;\n },\n set: function (value) {\n this.setLocaleText(this.locale, value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"calculatedText\", {\n get: function () {\n this.renderedText =\n this.calculatedTextValue !== undefined\n ? this.calculatedTextValue\n : this.calcText();\n this.calculatedTextValue = undefined;\n return this.renderedText;\n },\n enumerable: false,\n configurable: true\n });\n LocalizableString.prototype.calcText = function () {\n var res = this.pureText;\n if (res &&\n this.owner &&\n this.owner.getProcessedText &&\n res.indexOf(\"{\") > -1) {\n res = this.owner.getProcessedText(res);\n }\n if (this.onGetTextCallback)\n res = this.onGetTextCallback(res);\n return res;\n };\n Object.defineProperty(LocalizableString.prototype, \"pureText\", {\n get: function () {\n var loc = this.locale;\n if (!loc)\n loc = this.defaultLoc;\n var res = this.getValue(loc);\n if (this.isValueEmpty(res) && loc === this.defaultLoc) {\n res = this.getValue(_surveyStrings__WEBPACK_IMPORTED_MODULE_1__[\"surveyLocalization\"].defaultLocale);\n }\n if (this.isValueEmpty(res)) {\n var dialect = this.getRootDialect(loc);\n if (!!dialect) {\n res = this.getValue(dialect);\n }\n }\n if (this.isValueEmpty(res) && loc !== this.defaultLoc) {\n res = this.getValue(this.defaultLoc);\n }\n if (this.isValueEmpty(res) && !!this.getLocalizationName()) {\n res = this.getLocalizationStr();\n if (!!this.onGetLocalizationTextCallback) {\n res = this.onGetLocalizationTextCallback(res);\n }\n }\n if (!res)\n res = this.defaultValue || \"\";\n return res;\n },\n enumerable: false,\n configurable: true\n });\n LocalizableString.prototype.getRootDialect = function (loc) {\n if (!loc)\n return loc;\n var index = loc.indexOf(\"-\");\n return index > -1 ? loc.substring(0, index) : \"\";\n };\n LocalizableString.prototype.getLocalizationName = function () {\n return !!this.sharedData ? this.sharedData.localizationName : this.localizationName;\n };\n LocalizableString.prototype.getLocalizationStr = function () {\n var name = this.getLocalizationName();\n return !!name ? _surveyStrings__WEBPACK_IMPORTED_MODULE_1__[\"surveyLocalization\"].getString(name, this.locale) : \"\";\n };\n Object.defineProperty(LocalizableString.prototype, \"hasHtml\", {\n get: function () {\n return this.hasHtmlValue();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"html\", {\n get: function () {\n if (!this.hasHtml)\n return \"\";\n return this.getHtmlValue();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"isEmpty\", {\n get: function () {\n return this.getValuesKeys().length == 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"textOrHtml\", {\n get: function () {\n return this.hasHtml ? this.getHtmlValue() : this.calculatedText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"renderedHtml\", {\n get: function () {\n return this.textOrHtml;\n },\n enumerable: false,\n configurable: true\n });\n LocalizableString.prototype.getLocaleText = function (loc) {\n var res = this.getLocaleTextCore(loc);\n return res ? res : \"\";\n };\n LocalizableString.prototype.getLocaleTextCore = function (loc) {\n if (!loc)\n loc = this.defaultLoc;\n return this.getValue(loc);\n };\n LocalizableString.prototype.isLocaleTextEqualsWithDefault = function (loc, val) {\n var res = this.getLocaleTextCore(loc);\n if (res === val)\n return true;\n return this.isValueEmpty(res) && this.isValueEmpty(val);\n };\n LocalizableString.prototype.clear = function () {\n this.setJson(undefined);\n };\n LocalizableString.prototype.clearLocale = function (loc) {\n this.setLocaleText(loc, undefined);\n };\n LocalizableString.prototype.setLocaleText = function (loc, value) {\n loc = this.getValueLoc(loc);\n if (!this.storeDefaultText && this.isLocaleTextEqualsWithDefault(loc, value)) {\n if (!this.isValueEmpty(value) || !!loc && loc !== this.defaultLoc)\n return;\n var dl = _surveyStrings__WEBPACK_IMPORTED_MODULE_1__[\"surveyLocalization\"].defaultLocale;\n var oldValue_1 = this.getValue(dl);\n if (!!dl && !this.isValueEmpty(oldValue_1)) {\n this.setValue(dl, value);\n this.fireStrChanged(dl, oldValue_1);\n }\n return;\n }\n if (!_settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.storeDuplicatedTranslations &&\n !this.isValueEmpty(value) && loc && loc != this.defaultLoc &&\n !this.getValue(loc) &&\n value == this.getLocaleText(this.defaultLoc))\n return;\n var curLoc = this.curLocale;\n if (!loc)\n loc = this.defaultLoc;\n var oldValue = this.onStrChanged && loc === curLoc ? this.pureText : undefined;\n delete this.htmlValues[loc];\n if (this.isValueEmpty(value)) {\n this.deleteValue(loc);\n }\n else {\n if (typeof value === \"string\") {\n if (this.canRemoveLocValue(loc, value)) {\n this.setLocaleText(loc, null);\n }\n else {\n this.setValue(loc, value);\n if (loc == this.defaultLoc) {\n this.deleteValuesEqualsToDefault(value);\n }\n }\n }\n }\n this.fireStrChanged(loc, oldValue);\n };\n LocalizableString.prototype.isValueEmpty = function (val) {\n if (val === undefined || val === null)\n return true;\n if (this.localizationName)\n return false;\n return val === \"\";\n };\n Object.defineProperty(LocalizableString.prototype, \"curLocale\", {\n get: function () {\n return !!this.locale ? this.locale : this.defaultLoc;\n },\n enumerable: false,\n configurable: true\n });\n LocalizableString.prototype.canRemoveLocValue = function (loc, val) {\n if (_settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.storeDuplicatedTranslations)\n return false;\n if (loc === this.defaultLoc)\n return false;\n var dialect = this.getRootDialect(loc);\n if (!!dialect) {\n var dialectVal = this.getLocaleText(dialect);\n if (!!dialectVal)\n return dialectVal == val;\n return this.canRemoveLocValue(dialect, val);\n }\n else {\n return val == this.getLocaleText(this.defaultLoc);\n }\n };\n LocalizableString.prototype.fireStrChanged = function (loc, oldValue) {\n this.strChanged();\n if (!this.onStrChanged)\n return;\n var value = this.pureText;\n if (loc !== this.curLocale || oldValue !== value) {\n this.onStrChanged(oldValue, value);\n }\n };\n LocalizableString.prototype.hasNonDefaultText = function () {\n var keys = this.getValuesKeys();\n if (keys.length == 0)\n return false;\n return keys.length > 1 || keys[0] != this.defaultLoc;\n };\n LocalizableString.prototype.getLocales = function () {\n var keys = this.getValuesKeys();\n if (keys.length == 0)\n return [];\n return keys;\n };\n LocalizableString.prototype.getJson = function () {\n if (!!this.sharedData)\n return this.sharedData.getJson();\n var keys = this.getValuesKeys();\n if (keys.length == 0)\n return null;\n if (keys.length == 1 &&\n keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.defaultLocaleName &&\n !_settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].serialization.localizableStringSerializeAsObject)\n return this.values[keys[0]];\n var res = {};\n for (var key in this.values) {\n res[key] = this.values[key];\n }\n return res;\n };\n LocalizableString.prototype.setJson = function (value) {\n if (!!this.sharedData) {\n this.sharedData.setJson(value);\n return;\n }\n this.values = {};\n this.htmlValues = {};\n if (value === null || value === undefined)\n return;\n if (typeof value === \"string\") {\n this.setLocaleText(null, value);\n }\n else {\n for (var key in value) {\n this.setLocaleText(key, value[key]);\n }\n }\n this.strChanged();\n };\n Object.defineProperty(LocalizableString.prototype, \"renderAs\", {\n get: function () {\n if (!this.owner || typeof this.owner.getRenderer !== \"function\") {\n return LocalizableString.defaultRenderer;\n }\n return this.owner.getRenderer(this.name) || LocalizableString.defaultRenderer;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableString.prototype, \"renderAsData\", {\n get: function () {\n if (!this.owner || typeof this.owner.getRendererContext !== \"function\") {\n return this;\n }\n return this.owner.getRendererContext(this) || this;\n },\n enumerable: false,\n configurable: true\n });\n LocalizableString.prototype.equals = function (obj) {\n if (!!this.sharedData)\n return this.sharedData.equals(obj);\n if (!obj || !obj.values)\n return false;\n return _helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].isTwoValueEquals(this.values, obj.values, false, true, false);\n };\n LocalizableString.prototype.setFindText = function (text) {\n if (this.searchText == text)\n return;\n this.searchText = text;\n if (!this.searchableText) {\n var textOrHtml = this.textOrHtml;\n this.searchableText = !!textOrHtml ? textOrHtml.toLowerCase() : \"\";\n }\n var str = this.searchableText;\n var index = !!str && !!text ? str.indexOf(text) : undefined;\n if (index < 0)\n index = undefined;\n if (index != undefined || this.searchIndex != index) {\n this.searchIndex = index;\n if (!!this.onSearchChanged) {\n this.onSearchChanged();\n }\n }\n return this.searchIndex != undefined;\n };\n LocalizableString.prototype.onChanged = function () { };\n LocalizableString.prototype.onCreating = function () { };\n LocalizableString.prototype.hasHtmlValue = function () {\n if (!this.owner || !this.useMarkdown)\n return false;\n var loc = this.locale;\n if (!loc)\n loc = this.defaultLoc;\n if (this.htmlValues[loc] !== undefined)\n return !!this.htmlValues[loc];\n var renderedText = this.calculatedText;\n if (!renderedText) {\n this.setHtmlValue(loc, \"\");\n return false;\n }\n if (!!this.getLocalizationName() && renderedText === this.getLocalizationStr()) {\n this.setHtmlValue(loc, \"\");\n return false;\n }\n var res = this.owner.getMarkdownHtml(renderedText, this.name);\n this.setHtmlValue(loc, res);\n return !!res;\n };\n LocalizableString.prototype.setHtmlValue = function (loc, val) {\n this.htmlValues[loc] = val;\n };\n LocalizableString.prototype.getHtmlValue = function () {\n var loc = this.locale;\n if (!loc)\n loc = this.defaultLoc;\n return this.htmlValues[loc];\n };\n LocalizableString.prototype.deleteValuesEqualsToDefault = function (defaultValue) {\n if (_settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.storeDuplicatedTranslations)\n return;\n var keys = this.getValuesKeys();\n for (var i = 0; i < keys.length; i++) {\n if (keys[i] == this.defaultLoc)\n continue;\n if (this.getValue(keys[i]) == defaultValue) {\n this.deleteValue(keys[i]);\n }\n }\n };\n LocalizableString.prototype.getValue = function (loc) {\n if (!!this.sharedData)\n return this.sharedData.getValue(loc);\n return this.values[this.getValueLoc(loc)];\n };\n LocalizableString.prototype.setValue = function (loc, value) {\n if (!!this.sharedData)\n this.sharedData.setValue(loc, value);\n else\n this.values[this.getValueLoc(loc)] = value;\n };\n LocalizableString.prototype.deleteValue = function (loc) {\n if (!!this.sharedData)\n this.sharedData.deleteValue(loc);\n else\n delete this.values[this.getValueLoc(loc)];\n };\n LocalizableString.prototype.getValueLoc = function (loc) {\n if (this.disableLocalization)\n return _settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.defaultLocaleName;\n return loc;\n };\n LocalizableString.prototype.getValuesKeys = function () {\n if (!!this.sharedData)\n return this.sharedData.getValuesKeys();\n return Object.keys(this.values);\n };\n Object.defineProperty(LocalizableString.prototype, \"defaultLoc\", {\n get: function () {\n return _settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.defaultLocaleName;\n },\n enumerable: false,\n configurable: true\n });\n LocalizableString.SerializeAsObject = false;\n LocalizableString.defaultRenderer = \"sv-string-viewer\";\n LocalizableString.editableRenderer = \"sv-string-editor\";\n return LocalizableString;\n}());\n\n/**\n * The class represents the list of strings that supports multi-languages.\n */\nvar LocalizableStrings = /** @class */ (function () {\n function LocalizableStrings(owner) {\n this.owner = owner;\n this.values = {};\n }\n LocalizableStrings.prototype.getIsMultiple = function () { return true; };\n Object.defineProperty(LocalizableStrings.prototype, \"locale\", {\n get: function () {\n return this.owner && this.owner.getLocale ? this.owner.getLocale() : \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableStrings.prototype, \"value\", {\n get: function () {\n return this.getValue(\"\");\n },\n set: function (val) {\n this.setValue(\"\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalizableStrings.prototype, \"text\", {\n get: function () {\n return Array.isArray(this.value) ? this.value.join(\"\\n\") : \"\";\n },\n set: function (val) {\n this.value = !!val ? val.split(\"\\n\") : [];\n },\n enumerable: false,\n configurable: true\n });\n LocalizableStrings.prototype.getLocaleText = function (loc) {\n var res = this.getValueCore(loc, !loc || loc === this.locale);\n if (!res || !Array.isArray(res) || res.length == 0)\n return \"\";\n return res.join(\"\\n\");\n };\n LocalizableStrings.prototype.setLocaleText = function (loc, newValue) {\n var val = !!newValue ? newValue.split(\"\\n\") : null;\n this.setValue(loc, val);\n };\n LocalizableStrings.prototype.getValue = function (loc) {\n return this.getValueCore(loc);\n };\n LocalizableStrings.prototype.getValueCore = function (loc, useDefault) {\n if (useDefault === void 0) { useDefault = true; }\n loc = this.getLocale(loc);\n if (this.values[loc])\n return this.values[loc];\n if (useDefault) {\n var defLoc = _settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.defaultLocaleName;\n if (loc !== defLoc && this.values[defLoc])\n return this.values[defLoc];\n }\n return [];\n };\n LocalizableStrings.prototype.setValue = function (loc, val) {\n loc = this.getLocale(loc);\n var oldValue = _helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].createCopy(this.values);\n if (!val || val.length == 0) {\n delete this.values[loc];\n }\n else {\n this.values[loc] = val;\n }\n if (!!this.onValueChanged) {\n this.onValueChanged(oldValue, this.values);\n }\n };\n LocalizableStrings.prototype.hasValue = function (loc) {\n if (loc === void 0) { loc = \"\"; }\n return !this.isEmpty && this.getValue(loc).length > 0;\n };\n Object.defineProperty(LocalizableStrings.prototype, \"isEmpty\", {\n get: function () {\n return this.getValuesKeys().length == 0;\n },\n enumerable: false,\n configurable: true\n });\n LocalizableStrings.prototype.getLocale = function (loc) {\n if (!!loc)\n return loc;\n loc = this.locale;\n return !!loc ? loc : _settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.defaultLocaleName;\n };\n LocalizableStrings.prototype.getLocales = function () {\n var keys = this.getValuesKeys();\n if (keys.length == 0)\n return [];\n return keys;\n };\n LocalizableStrings.prototype.getJson = function () {\n var keys = this.getValuesKeys();\n if (keys.length == 0)\n return null;\n if (keys.length == 1 &&\n keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].localization.defaultLocaleName &&\n !_settings__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].serialization.localizableStringSerializeAsObject)\n return this.values[keys[0]];\n return _helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].createCopy(this.values);\n };\n LocalizableStrings.prototype.setJson = function (value) {\n this.values = {};\n if (!value)\n return;\n if (Array.isArray(value)) {\n this.setValue(null, value);\n }\n else {\n for (var key in value) {\n this.setValue(key, value[key]);\n }\n }\n };\n LocalizableStrings.prototype.getValuesKeys = function () {\n return Object.keys(this.values);\n };\n return LocalizableStrings;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/localization/arabic.ts\":\n/*!************************************!*\\\n !*** ./src/localization/arabic.ts ***!\n \\************************************/\n/*! exports provided: arabicSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arabicSurveyStrings\", function() { return arabicSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar arabicSurveyStrings = {\n pagePrevText: \"السابق\",\n pageNextText: \"التالي\",\n completeText: \"إرسال البيانات\",\n previewText: \"معاينة\",\n editText: \"تعديل\",\n startSurveyText: \"بداية\",\n otherItemText: \"نص آخر\",\n noneItemText: \"لا شيء\",\n refuseItemText: \"رفض الإجابة\",\n dontKnowItemText: \"لا أعرف\",\n selectAllItemText: \"اختر الكل\",\n progressText: \"{1} صفحة {0} من\",\n indexText: \"{0} من {1}\",\n panelDynamicProgressText: \"سجل {0} من {1}\",\n panelDynamicTabTextFormat: \"لوحة {بانل إندكس}\",\n questionsProgressText: \"تمت الإجابة على أسئلة {0} / {1}\",\n emptySurvey: \"لا توجد صفحة مرئية أو سؤال في النموذج\",\n completingSurvey: \"شكرا لكم لاستكمال النموذج!\",\n completingSurveyBefore: \"تظهر سجلاتنا أنك قد أكملت هذا الاستطلاع بالفعل.\",\n loadingSurvey: \"...يتم تحميل النموذج\",\n placeholder: \"...اختر\",\n ratingOptionsCaption: \"اختار...\",\n value: \"القيمة\",\n requiredError: \".يرجى الإجابة على السؤال\",\n requiredErrorInPanel: \"الرجاء الإجابة على سؤال واحد على الأقل.\",\n requiredInAllRowsError: \"يرجى الإجابة على الأسئلة في جميع الصفوف\",\n eachRowUniqueError: \"يجب أن يكون لكل صف قيمة فريدة.\",\n numericError: \"يجب أن تكون القيمة رقمية.\",\n minError: \"يجب ألا تقل القيمة عن {0}\",\n maxError: \"يجب ألا تزيد القيمة عن {0}\",\n textMinLength: \"الرجاء إدخال ما لا يقل عن {0} حروف\",\n textMaxLength: \"الرجاء إدخال أقل من {0} حروف\",\n textMinMaxLength: \"يرجى إدخال أكثر من {0} وأقل من {1} حروف\",\n minRowCountError: \"يرجى ملء ما لا يقل عن {0} الصفوف\",\n minSelectError: \"يرجى تحديد ما لا يقل عن {0} المتغيرات\",\n maxSelectError: \"يرجى تحديد ما لا يزيد عن {0} المتغيرات\",\n numericMinMax: \"و'{0}' يجب أن تكون مساوية أو أكثر من {1} وتساوي أو أقل من {2}ا\",\n numericMin: \"و'{0}' يجب أن تكون مساوية أو أكثر من {1}ا\",\n numericMax: \"و'{0}' يجب أن تكون مساوية أو أقل من {1}ا\",\n invalidEmail: \"الرجاء إدخال بريد الكتروني صحيح\",\n invalidExpression: \"يجب أن يعرض التعبير: {0} 'صواب'.\",\n urlRequestError: \"طلب إرجاع خطأ '{0}'. {1}ا\",\n urlGetChoicesError: \"عاد طلب البيانات فارغ أو 'المسار' غير صحيح \",\n exceedMaxSize: \"ينبغي ألا يتجاوز حجم الملف {0}ا\",\n noUploadFilesHandler: \"لا يمكن تحميل الملفات. يرجى إضافة معالج لحدث \\\"onUploadFiles\\\".\",\n otherRequiredError: \"الرجاء إدخال قيمة أخرى\",\n uploadingFile: \"تحميل الملف الخاص بك. يرجى الانتظار عدة ثوان والمحاولة لاحقًا\",\n loadingFile: \"جار التحميل...\",\n chooseFile: \"اختر الملفات...\",\n noFileChosen: \"لم تقم باختيار ملف\",\n filePlaceholder: \"اسحب ملفا وأفلته هنا أو انقر فوق الزر أدناه واختر ملفا لتحميله.\",\n confirmDelete: \"هل تريد حذف السجل؟\",\n keyDuplicationError: \"يجب أن تكون هذه القيمة فريدة.\",\n addColumn: \"أضف العمود\",\n addRow: \"اضافة صف\",\n removeRow: \"إزالة صف\",\n emptyRowsText: \"لا توجد صفوف.\",\n addPanel: \"اضف جديد\",\n removePanel: \"إزالة\",\n showDetails: \"اظهر التفاصيل\",\n hideDetails: \"إخفاء التفاصيل\",\n choices_Item: \"بند\",\n matrix_column: \"عمود\",\n matrix_row: \"صف\",\n multipletext_itemname: \"نص\",\n savingData: \"يتم حفظ النتائج على الخادم ...\",\n savingDataError: \"حدث خطأ ولم نتمكن من حفظ النتائج.\",\n savingDataSuccess: \"تم حفظ النتائج بنجاح!\",\n savingExceedSize: \"ردك يتجاوز 64 كيلوبايت. يرجى تقليل حجم الملف (الملفات) والمحاولة مرة أخرى أو الاتصال بمالك الاستطلاع.\",\n saveAgainButton: \"حاول مجددا\",\n timerMin: \"دقيقة\",\n timerSec: \"ثانية\",\n timerSpentAll: \"لقد أنفقت {0} على هذه الصفحة و {1} إجمالاً.\",\n timerSpentPage: \"لقد أنفقت {0} على هذه الصفحة.\",\n timerSpentSurvey: \"لقد أنفقت {0} إجمالاً.\",\n timerLimitAll: \"لقد أنفقت {0} من {1} في هذه الصفحة و {2} من إجمالي {3}.\",\n timerLimitPage: \"لقد أنفقت {0} من {1} في هذه الصفحة.\",\n timerLimitSurvey: \"لقد أنفقت {0} من إجمالي {1}.\",\n clearCaption: \"واضح\",\n signaturePlaceHolder: \"وقع هنا\",\n signaturePlaceHolderReadOnly: \"لا يوجد توقيع\",\n chooseFileCaption: \"اختر ملف\",\n takePhotoCaption: \"التقاط صورة\",\n photoPlaceholder: \"انقر فوق الزر أدناه لالتقاط صورة باستخدام الكاميرا.\",\n fileOrPhotoPlaceholder: \"قم بسحب ملف وإفلاته أو تحديده لتحميله أو التقاط صورة باستخدام الكاميرا.\",\n replaceFileCaption: \"استبدال الملف\",\n removeFileCaption: \"قم بإزالة هذا الملف\",\n booleanCheckedLabel: \"نعم\",\n booleanUncheckedLabel: \"لا\",\n confirmRemoveFile: \"هل أنت متأكد أنك تريد إزالة هذا الملف: {0}؟\",\n confirmRemoveAllFiles: \"هل أنت متأكد أنك تريد إزالة كافة الملفات؟\",\n questionTitlePatternText: \"عنوان السؤال\",\n modalCancelButtonText: \"إلغاء الأمر\",\n modalApplyButtonText: \"طبق\",\n filterStringPlaceholder: \"اكتب للبحث...\",\n emptyMessage: \"لا توجد بيانات للعرض\",\n noEntriesText: \"لا توجد إدخالات حتى الآن.\\nانقر فوق الزر أدناه لإضافة إدخال جديد.\",\n noEntriesReadonlyText: \"لا توجد إدخالات.\",\n more: \"أكثر\",\n tagboxDoneButtonCaption: \"موافق\",\n selectToRankEmptyRankedAreaText: \"يتم ترتيب جميع الخيارات\",\n selectToRankEmptyUnrankedAreaText: \"قم بسحب وإسقاط الخيارات هنا لترتيبها\",\n ok: \"موافق\",\n cancel: \"إلغاء الأمر\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ar\"] = arabicSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ar\"] = \"العربية\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} من {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"لوحة {بانل إندكس}\"\n// ratingOptionsCaption: \"Select...\" => \"اختار...\"\n// minError: \"The value should not be less than {0}\" => \"يجب ألا تقل القيمة عن {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"يجب ألا تزيد القيمة عن {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"اسحب ملفا وأفلته هنا أو انقر فوق الزر أدناه واختر ملفا لتحميله.\"\n// emptyRowsText: \"There are no rows.\" => \"لا توجد صفوف.\"\n// multipletext_itemname: \"text\" => \"نص\"\n// signaturePlaceHolder: \"Sign here\" => \"وقع هنا\"\n// modalCancelButtonText: \"Cancel\" => \"إلغاء الأمر\"\n// modalApplyButtonText: \"Apply\" => \"طبق\"\n// filterStringPlaceholder: \"Type to search...\" => \"اكتب للبحث...\"\n// emptyMessage: \"No data to display\" => \"لا توجد بيانات للعرض\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"لا توجد إدخالات حتى الآن.\\nانقر فوق الزر أدناه لإضافة إدخال جديد.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"لا توجد إدخالات.\"\n// more: \"More\" => \"أكثر\"\n// tagboxDoneButtonCaption: \"OK\" => \"موافق\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"يتم ترتيب جميع الخيارات\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"قم بسحب وإسقاط الخيارات هنا لترتيبها\"// takePhotoCaption: \"Take Photo\" => \"التقاط صورة\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"انقر فوق الزر أدناه لالتقاط صورة باستخدام الكاميرا.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"قم بسحب ملف وإفلاته أو تحديده لتحميله أو التقاط صورة باستخدام الكاميرا.\"\n// replaceFileCaption: \"Replace file\" => \"استبدال الملف\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"يجب أن يكون لكل صف قيمة فريدة.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"لا يمكن تحميل الملفات. يرجى إضافة معالج لحدث \\\"onUploadFiles\\\".\"\n// showDetails: \"Show Details\" => \"اظهر التفاصيل\"\n// hideDetails: \"Hide Details\" => \"إخفاء التفاصيل\"\n// ok: \"OK\" => \"موافق\"\n// cancel: \"Cancel\" => \"إلغاء الأمر\"\n// refuseItemText: \"Refuse to answer\" => \"رفض الإجابة\"\n// dontKnowItemText: \"Don't know\" => \"لا أعرف\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"ردك يتجاوز 64 كيلوبايت. يرجى تقليل حجم الملف (الملفات) والمحاولة مرة أخرى أو الاتصال بمالك الاستطلاع.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"لا يوجد توقيع\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/basque.ts\":\n/*!************************************!*\\\n !*** ./src/localization/basque.ts ***!\n \\************************************/\n/*! exports provided: basqueSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"basqueSurveyStrings\", function() { return basqueSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar basqueSurveyStrings = {\n pagePrevText: \"Aurrekoa\",\n pageNextText: \"Hurrengoa\",\n completeText: \"Bukatu\",\n previewText: \"Aurrebista\",\n editText: \"Editatu\",\n startSurveyText: \"Hasi\",\n otherItemText: \"Beste bat (zehaztu)\",\n noneItemText: \"Bat ere ez\",\n refuseItemText: \"Erantzuteari uko egin\",\n dontKnowItemText: \"Ez dakit\",\n selectAllItemText: \"Guztia hautatu\",\n progressText: \"{1}-(e)tik {0} orrialde\",\n indexText: \"{1} {0}\",\n panelDynamicProgressText: \"{0} errigistro {1}-(e)tik\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Erantzundako galderak {0}/{1}\",\n emptySurvey: \"Ez dago orrialde bistaragarririk edo ez dago galderarik.\",\n completingSurvey: \"Eskerrik asko galdetegia erantzuteagatik!\",\n completingSurveyBefore: \"Gure datuek diote dagoeneko galdetegia erantzun duzula.\",\n loadingSurvey: \"Galdetegia kargatzen...\",\n placeholder: \"Hautatu...\",\n ratingOptionsCaption: \"Aukeratu...\",\n value: \"balioa\",\n requiredError: \"Mesedez, galdera erantzun.\",\n requiredErrorInPanel: \"Mesedez, gutxienez galdera bat erantzun.\",\n requiredInAllRowsError: \"Mesedez, errenkadako galdera guztiak erantzun.\",\n eachRowUniqueError: \"Ilara bakoitzak balio bakarra izan behar du.\",\n numericError: \"Estimazioa zenbakizkoa izan behar du.\",\n minError: \"Balioa ez da {0} baino txikiagoa izan behar\",\n maxError: \"Balioa ez da {0} baino handiagoa izan behar\",\n textMinLength: \"Mesedez, gutxienez {0} karaktere erabili behar dira.\",\n textMaxLength: \"Mesedez, gehienez {0} karaktere erabili behar dira.\",\n textMinMaxLength: \"Mesedez, gehienez {0} eta gutxienez {1} karaktere erabili behar dira.\",\n minRowCountError: \"Mesedez, gutxienez {0} errenkada bete.\",\n minSelectError: \"Mesedez, gutxienez {0} aukera hautatu.\",\n maxSelectError: \"Mesedez, {0} aukera baino gehiago ez hautatu.\",\n numericMinMax: \"El '{0}' debe de ser igual o más de {1} y igual o menos de {2}\",\n numericMin: \"'{0}' {1} baino handiagoa edo berdin izan behar da\",\n numericMax: \"'{0}' {1} baino txikiago edo berdin izan behar da\",\n invalidEmail: \"Mesedez, baliozko emaila idatz ezazu.\",\n invalidExpression: \"{0} adierazpenak 'egiazkoa' itzuli beharko luke.\",\n urlRequestError: \"Eskaerak '{0}' errorea itzuli du. {1}\",\n urlGetChoicesError: \"La solicitud regresó vacío de data o la propiedad 'trayectoria' no es correcta\",\n exceedMaxSize: \"Fitxategiaren tamaina ez da {0} baino handiagoa izan behar.\",\n noUploadFilesHandler: \"Artxiboak ezin dira kargatu. Gaineratu kontrolatzaile bat 'onUploadFiles' ekitaldirako.\",\n otherRequiredError: \"Mesedez, beste estimazioa gehitu.\",\n uploadingFile: \"Zure fitxategia igotzen ari da. Mesedez, segundo batzuk itxaron eta saiatu berriro.\",\n loadingFile: \"Kargatzen...\",\n chooseFile: \"Fitxategia(k) hautatu...\",\n noFileChosen: \"Ez da inolako fitxategirik hautatu\",\n filePlaceholder: \"Arrastatu eta askatu artxibo bat hemen edo klik egin beheko botoian eta aukeratu artxibo bat kargatzeko.\",\n confirmDelete: \"¿Erregistroa borratu nahi al duzu?\",\n keyDuplicationError: \"Balio hau bakarra izan behar du.\",\n addColumn: \"Zutabe bat gehitu\",\n addRow: \"Errenkada bat gehitu\",\n removeRow: \"Errenkada bat kendu\",\n emptyRowsText: \"Ez dago errenkadarik.\",\n addPanel: \"Berria gehitu\",\n removePanel: \"Kendu\",\n showDetails: \"Xehetasunak erakutsi\",\n hideDetails: \"Xehetasunak ezkutatu\",\n choices_Item: \"artikulua\",\n matrix_column: \"Zutabea\",\n matrix_row: \"Errenkada\",\n multipletext_itemname: \"testua\",\n savingData: \"Erantzunak zerbitzarian gordetzen ari dira...\",\n savingDataError: \"Erroreren bat gertatu eta erantzunak ez dira zerbitzarian gorde ahal izan.\",\n savingDataSuccess: \"Erantzunak egoki gorde dira!\",\n savingExceedSize: \"Erantzuna 64 KB-tik gorakoa da. Murriztu artxiboaren tamaina, eta berriro saiatu edo jarri harremanetan inkesta baten jabearekin.\",\n saveAgainButton: \"Berriro saiatu.\",\n timerMin: \"min\",\n timerSec: \"seg\",\n timerSpentAll: \"{0} erabili duzu orrialde honetan eta orotara {1}.\",\n timerSpentPage: \"Zuk {0} erabili duzu.\",\n timerSpentSurvey: \"Orotara gastatu duzu.\",\n timerLimitAll: \"{0} gastatu duzu {1}-(e)tik orrialde honetan eta orotara {2} {3}-(e)tik.\",\n timerLimitPage: \"{0} gastatu duzu orrialde honetan {1}-(e)tik.\",\n timerLimitSurvey: \"Zuk orotara {0} gastatu duzu {1}-(e)tik.\",\n clearCaption: \"Hustu\",\n signaturePlaceHolder: \"Sinatu hemen\",\n signaturePlaceHolderReadOnly: \"Sinadurarik gabe\",\n chooseFileCaption: \"Fitxategia hautatu\",\n takePhotoCaption: \"Argazkia hartu\",\n photoPlaceholder: \"Egin klik beheko botoian, kamerarekin argazki bat hartzeko.\",\n fileOrPhotoPlaceholder: \"Arrastatu eta askatu artxibo bat kamerarekin argazki bat kargatzeko edo hartzeko.\",\n replaceFileCaption: \"Artxiboa ordeztu\",\n removeFileCaption: \"Fitxategi hau ezabatu\",\n booleanCheckedLabel: \"Bai\",\n booleanUncheckedLabel: \"Ez\",\n confirmRemoveFile: \"Ziur zaude hurrengo fitxategia ezabatu nahi duzula: {0}?\",\n confirmRemoveAllFiles: \"Ziur al zaude fitxategi guztiak ezabatu nahi dituzula?\",\n questionTitlePatternText: \"Galderaren izenburua\",\n modalCancelButtonText: \"Ezeztatu\",\n modalApplyButtonText: \"Ezarri\",\n filterStringPlaceholder: \"Idatzi bila...\",\n emptyMessage: \"Ez daturik erakusteko\",\n noEntriesText: \"Oraindik ez sarrerarik.\\nKlik beheko botoian klik egin sarrera berri bat eransteko.\",\n noEntriesReadonlyText: \"Ez sarrerarik.\",\n more: \"Gehiago\",\n tagboxDoneButtonCaption: \"Ados\",\n selectToRankEmptyRankedAreaText: \"Aukera guztiak sailkatuta daude\",\n selectToRankEmptyUnrankedAreaText: \"Arrastaka eta askatzen ditu hemen sailkatzeko\",\n ok: \"Ados\",\n cancel: \"Ezeztatu\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"eu\"] = basqueSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"eu\"] = \"Euskara\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{1} {0}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Aukeratu...\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Arrastatu eta askatu artxibo bat hemen edo klik egin beheko botoian eta aukeratu artxibo bat kargatzeko.\"\n// filterStringPlaceholder: \"Type to search...\" => \"Idatzi bila...\"\n// emptyMessage: \"No data to display\" => \"Ez daturik erakusteko\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Oraindik ez sarrerarik.\\nKlik beheko botoian klik egin sarrera berri bat eransteko.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Ez sarrerarik.\"\n// more: \"More\" => \"Gehiago\"\n// tagboxDoneButtonCaption: \"OK\" => \"Ados\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Aukera guztiak sailkatuta daude\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Arrastaka eta askatzen ditu hemen sailkatzeko\"// takePhotoCaption: \"Take Photo\" => \"Argazkia hartu\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Egin klik beheko botoian, kamerarekin argazki bat hartzeko.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Arrastatu eta askatu artxibo bat kamerarekin argazki bat kargatzeko edo hartzeko.\"\n// replaceFileCaption: \"Replace file\" => \"Artxiboa ordeztu\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Ilara bakoitzak balio bakarra izan behar du.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Artxiboak ezin dira kargatu. Gaineratu kontrolatzaile bat 'onUploadFiles' ekitaldirako.\"\n// showDetails: \"Show Details\" => \"Xehetasunak erakutsi\"\n// hideDetails: \"Hide Details\" => \"Xehetasunak ezkutatu\"\n// ok: \"OK\" => \"Ados\"\n// cancel: \"Cancel\" => \"Ezeztatu\"\n// refuseItemText: \"Refuse to answer\" => \"Erantzuteari uko egin\"\n// dontKnowItemText: \"Don't know\" => \"Ez dakit\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Erantzuna 64 KB-tik gorakoa da. Murriztu artxiboaren tamaina, eta berriro saiatu edo jarri harremanetan inkesta baten jabearekin.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Sinadurarik gabe\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/bulgarian.ts\":\n/*!***************************************!*\\\n !*** ./src/localization/bulgarian.ts ***!\n \\***************************************/\n/*! exports provided: bulgarianStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bulgarianStrings\", function() { return bulgarianStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar bulgarianStrings = {\n pagePrevText: \"Назад\",\n pageNextText: \"Напред\",\n completeText: \"Край\",\n previewText: \"Визуализация\",\n editText: \"редактиране\",\n startSurveyText: \"Начало\",\n otherItemText: \"Друго (опишете)\",\n noneItemText: \"Нито един\",\n refuseItemText: \"Отказва да отговори\",\n dontKnowItemText: \"Не знам\",\n selectAllItemText: \"Всички\",\n progressText: \"стр. {0}, общо стр. {1}\",\n indexText: \"{0} на {1}\",\n panelDynamicProgressText: \"Запис {0} от {1}\",\n panelDynamicTabTextFormat: \"Панел {panelIndex}\",\n questionsProgressText: \"Отговорени на {0} / {1} въпроса\",\n emptySurvey: \"Анкетата не съдържа видими страници или въпроси.\",\n completingSurvey: \"Благодарим ви за участието в анкетата!\",\n completingSurveyBefore: \"Изглежда, че вие вече сте попълнили анкетата.\",\n loadingSurvey: \"Зареждане на анкетата...\",\n placeholder: \"Изберете...\",\n ratingOptionsCaption: \"Отбран...\",\n value: \"value\",\n requiredError: \"Моля, отговорете на следния въпрос.\",\n requiredErrorInPanel: \"Моля, отговорете поне на един от въпросите.\",\n requiredInAllRowsError: \"Моля, отговорете на въпросите на всички редове.\",\n eachRowUniqueError: \"Всеки ред трябва да има уникална стойност.\",\n numericError: \"Стойността следва да бъде число.\",\n minError: \"Стойността не трябва да бъде по-малка от {0}\",\n maxError: \"Стойността не трябва да бъде по-голяма от {0}\",\n textMinLength: \"Моля, използвайте поне {0} символа.\",\n textMaxLength: \"Моля, използвайте не повече от {0} символа.\",\n textMinMaxLength: \"Моля, използвайте повече от {0} и по-малко от {1} символа.\",\n minRowCountError: \"Моля, попълнете поне {0} реда.\",\n minSelectError: \"Моля, изберете поне {0} варианта.\",\n maxSelectError: \"Моля, изберете не повече от {0} варианта.\",\n numericMinMax: \"Стойността '{0}' следва да бъде равна или по-голяма от {1} и равна или по-малка от {2}\",\n numericMin: \"Стойността '{0}' следва да бъде равна или по-голяма от {1}\",\n numericMax: \"Стойността '{0}' следва да бъде равна или по-малка от {1}\",\n invalidEmail: \"Моля, въведете валиден адрес на електронна поща.\",\n invalidExpression: \"Изразът: {0} трябва да дава резултат 'true' (истина).\",\n urlRequestError: \"Заявката води до грешка '{0}'. {1}\",\n urlGetChoicesError: \"Заявката не връща данни или частта 'path' (път до търсения ресурс на сървъра) е неправилно зададена\",\n exceedMaxSize: \"Размерът на файла следва да не превишава {0}.\",\n noUploadFilesHandler: \"Файловете не могат да бъдат качени. Моля, добавете манипулатор за събитието \\\"onUploadFiles\\\".\",\n otherRequiredError: \"Моля, въведете другата стойност.\",\n uploadingFile: \"Вашит файл се зарежда на сървъра. Моля, изчакайте няколко секунди и тогава опитвайте отново.\",\n loadingFile: \"Зареждане...\",\n chooseFile: \"Изберете файл(ове)...\",\n noFileChosen: \"Няма избран файл\",\n filePlaceholder: \"Плъзнете и пуснете файл тук или щракнете върху бутона по-долу и изберете файл за качване.\",\n confirmDelete: \"Желаете ли да изтриете записа?\",\n keyDuplicationError: \"Стойността следва да бъде уникална.\",\n addColumn: \"Добавяне на колона\",\n addRow: \"Добавяне на ред\",\n removeRow: \"Премахване на ред\",\n emptyRowsText: \"Няма редове.\",\n addPanel: \"Добавяне на панел\",\n removePanel: \"Премахване на панел\",\n showDetails: \"Показване на подробни данни\",\n hideDetails: \"Скрий подробните данни\",\n choices_Item: \"елемент\",\n matrix_column: \"Колона\",\n matrix_row: \"Ред\",\n multipletext_itemname: \"Текст\",\n savingData: \"Резултатите се запазват на сървъра...\",\n savingDataError: \"Поради възникнала грешка резултатите не можаха да бъдат запазени.\",\n savingDataSuccess: \"Резултатите бяха запазени успешно!\",\n savingExceedSize: \"Вашият отговор надхвърля 64KB. Намалете размера на вашите файлове и опитайте отново или се свържете със собственика на проучването.\",\n saveAgainButton: \"Нов опит\",\n timerMin: \"мин\",\n timerSec: \"сек\",\n timerSpentAll: \"Вие използвахте {0} на тази страница и общо {1}.\",\n timerSpentPage: \"Вие използвахте {0} на тази страница.\",\n timerSpentSurvey: \"Вие използвахте общо {0}.\",\n timerLimitAll: \"Вие изпозвахте {0} от {1} на тази страница и общо {2} от {3}.\",\n timerLimitPage: \"Вие използвахте {0} от {1} на тази страница.\",\n timerLimitSurvey: \"Вие използвахте общо {0} от {1}.\",\n clearCaption: \"Начално състояние\",\n signaturePlaceHolder: \"Подпишете тук\",\n signaturePlaceHolderReadOnly: \"Няма подпис\",\n chooseFileCaption: \"Изберете файл\",\n takePhotoCaption: \"Направете снимка\",\n photoPlaceholder: \"Кликнете върху бутона по-долу, за да направите снимка с помощта на камерата.\",\n fileOrPhotoPlaceholder: \"Плъзнете и пуснете или изберете файл за качване или правене на снимка с помощта на камерата.\",\n replaceFileCaption: \"Заместване на файл\",\n removeFileCaption: \"Премахване на файла\",\n booleanCheckedLabel: \"Да\",\n booleanUncheckedLabel: \"Не\",\n confirmRemoveFile: \"Наистина ли искате да премахнете този файл: {0}?\",\n confirmRemoveAllFiles: \"Наистина ли искате да премахнете всички файлове?\",\n questionTitlePatternText: \"Заглавие на въпроса\",\n modalCancelButtonText: \"Отмени\",\n modalApplyButtonText: \"Прилагам\",\n filterStringPlaceholder: \"Въведете за търсене...\",\n emptyMessage: \"Няма данни за показване\",\n noEntriesText: \"Все още няма записи.\\nЩракнете върху бутона по-долу, за да добавите нов запис.\",\n noEntriesReadonlyText: \"Няма записи.\",\n more: \"Още\",\n tagboxDoneButtonCaption: \"Добре\",\n selectToRankEmptyRankedAreaText: \"Всички възможности за избор са класирани\",\n selectToRankEmptyUnrankedAreaText: \"Плъзнете и пуснете опции тук, за да ги класирате\",\n ok: \"Добре\",\n cancel: \"Отмени\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"bg\"] = bulgarianStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"bg\"] = \"български\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} на {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Панел {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Отбран...\"\n// minError: \"The value should not be less than {0}\" => \"Стойността не трябва да бъде по-малка от {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Стойността не трябва да бъде по-голяма от {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Плъзнете и пуснете файл тук или щракнете върху бутона по-долу и изберете файл за качване.\"\n// emptyRowsText: \"There are no rows.\" => \"Няма редове.\"\n// multipletext_itemname: \"text\" => \"Текст\"\n// signaturePlaceHolder: \"Sign here\" => \"Подпишете тук\"\n// modalCancelButtonText: \"Cancel\" => \"Отмени\"\n// modalApplyButtonText: \"Apply\" => \"Прилагам\"\n// filterStringPlaceholder: \"Type to search...\" => \"Въведете за търсене...\"\n// emptyMessage: \"No data to display\" => \"Няма данни за показване\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Все още няма записи.\\nЩракнете върху бутона по-долу, за да добавите нов запис.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Няма записи.\"\n// more: \"More\" => \"Още\"\n// tagboxDoneButtonCaption: \"OK\" => \"Добре\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Всички възможности за избор са класирани\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Плъзнете и пуснете опции тук, за да ги класирате\"// takePhotoCaption: \"Take Photo\" => \"Направете снимка\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Кликнете върху бутона по-долу, за да направите снимка с помощта на камерата.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Плъзнете и пуснете или изберете файл за качване или правене на снимка с помощта на камерата.\"\n// replaceFileCaption: \"Replace file\" => \"Заместване на файл\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Всеки ред трябва да има уникална стойност.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Файловете не могат да бъдат качени. Моля, добавете манипулатор за събитието \\\"onUploadFiles\\\".\"\n// showDetails: \"Show Details\" => \"Показване на подробни данни\"\n// hideDetails: \"Hide Details\" => \"Скрий подробните данни\"\n// ok: \"OK\" => \"Добре\"\n// cancel: \"Cancel\" => \"Отмени\"\n// refuseItemText: \"Refuse to answer\" => \"Отказва да отговори\"\n// dontKnowItemText: \"Don't know\" => \"Не знам\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Вашият отговор надхвърля 64KB. Намалете размера на вашите файлове и опитайте отново или се свържете със собственика на проучването.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Няма подпис\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/catalan.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/catalan.ts ***!\n \\*************************************/\n/*! exports provided: catalanSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"catalanSurveyStrings\", function() { return catalanSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar catalanSurveyStrings = {\n pagePrevText: \"Anterior\",\n pageNextText: \"Següent\",\n completeText: \"Complet\",\n previewText: \"Preestrena\",\n editText: \"Editar\",\n startSurveyText: \"Començar\",\n otherItemText: \"Un altre (descrigui)\",\n noneItemText: \"Cap\",\n refuseItemText: \"Negar-se a respondre\",\n dontKnowItemText: \"No sé\",\n selectAllItemText: \"Selecciona-ho tot\",\n progressText: \"Pàgina {0} de {1}\",\n indexText: \"{0} de {1}\",\n panelDynamicProgressText: \"{0} de {1}\",\n panelDynamicTabTextFormat: \"Panell {panelIndex}\",\n questionsProgressText: \"Respostes {0}/{1} preguntes\",\n emptySurvey: \"No hi ha cap pàgina visible o pregunta a l'enquesta.\",\n completingSurvey: \"Gràcies per completar l'enquesta!\",\n completingSurveyBefore: \"Els nostres registres mostren que ja heu completat aquesta enquesta.\",\n loadingSurvey: \"L'enquesta s'està carregant ...\",\n placeholder: \"Selecciona ...\",\n ratingOptionsCaption: \"Seleccionar...\",\n value: \"valor\",\n requiredError: \"Si us plau contesti la pregunta.\",\n requiredErrorInPanel: \"Resposta necessària: respondre almenys una pregunta.\",\n requiredInAllRowsError: \"Si us plau contesti les preguntes de cada filera.\",\n eachRowUniqueError: \"Cada fila ha de tenir un valor únic.\",\n numericError: \"L'estimació ha de ser numèrica.\",\n minError: \"El valor no ha de ser inferior a {0}\",\n maxError: \"El valor no ha de ser superior a {0}\",\n textMinLength: \"Si us plau entre almenys {0} símbols.\",\n textMaxLength: \"Si us plau entre menys de {0} símbols.\",\n textMinMaxLength: \"Si us plau entre més de {0} i menys de {1} símbols.\",\n minRowCountError: \"Si us plau ompli almenys {0} fileres.\",\n minSelectError: \"Si us plau seleccioni almenys {0} variants.\",\n maxSelectError: \"Si us plau seleccioni no més de {0} variants.\",\n numericMinMax: \"El '{0}' deu ser igual o més de {1} i igual o menys de {2}\",\n numericMin: \"El '{0}' ha de ser igual o més de {1}\",\n numericMax: \"El '{0}' ha de ser igual o menys de {1}\",\n invalidEmail: \"Si us plau afegiu un correu electrònic vàlid.\",\n invalidExpression: \"L'expressió: {0} ha de tornar 'veritable'.\",\n urlRequestError: \"La sol·licitud va tornar error '{0}'. {1}\",\n urlGetChoicesError: \"La sol·licitud va tornar buida de dates o la propietat 'trajectòria' no és correcta\",\n exceedMaxSize: \"La mida de l'arxiu no pot excedir {0}.\",\n noUploadFilesHandler: \"No es poden carregar fitxers. Afegiu un controlador per a l'esdeveniment 'onUploadFiles'.\",\n otherRequiredError: \"Si us plau afegiu l'altra estimació.\",\n uploadingFile: \"El seu arxiu s'està pujant. Si us plau esperi uns segons i intenteu-ho de nou.\",\n loadingFile: \"Càrrega...\",\n chooseFile: \"Trieu fitxer(s)...\",\n noFileChosen: \"No s'ha triat cap fitxer\",\n filePlaceholder: \"Arrossegueu i deixeu anar un fitxer aquí o feu clic al botó següent i trieu un fitxer per carregar.\",\n confirmDelete: \"Vols eliminar el registre?\",\n keyDuplicationError: \"Aquest valor ha de ser únic.\",\n addColumn: \"Afegeix una columna\",\n addRow: \"Afegiu una filera\",\n removeRow: \"Eliminar una filera\",\n emptyRowsText: \"No hi ha files.\",\n addPanel: \"Afegeix un nou\",\n removePanel: \"Treure\",\n showDetails: \"Mostra els detalls\",\n hideDetails: \"Amaga els detalls\",\n choices_Item: \"ítem\",\n matrix_column: \"Columna\",\n matrix_row: \"Filera\",\n multipletext_itemname: \"SMS\",\n savingData: \"Els resultats s'estan guardant al servidor...\",\n savingDataError: \"S'ha produït un error i no hem pogut guardar els resultats.\",\n savingDataSuccess: \"Els resultats es van salvar amb èxit!\",\n savingExceedSize: \"La teva resposta supera els 64KB. Reduïu la mida dels fitxers i torneu-ho a provar o poseu-vos en contacte amb el propietari de l'enquesta.\",\n saveAgainButton: \"Prova una altra vegada\",\n timerMin: \"min\",\n timerSec: \"Seg\",\n timerSpentAll: \"Heu passat {0} en aquesta pàgina i {1} en total.\",\n timerSpentPage: \"Has passat {0} en aquesta pàgina.\",\n timerSpentSurvey: \"Has gastat {0} en total.\",\n timerLimitAll: \"Heu passat {0} de {1} en aquesta pàgina i {2} de {3} en total.\",\n timerLimitPage: \"Has passat {0} de {1} en aquesta pàgina.\",\n timerLimitSurvey: \"Has gastat {0} d'{1} en total.\",\n clearCaption: \"Clar\",\n signaturePlaceHolder: \"Inscriu-te aquí\",\n signaturePlaceHolderReadOnly: \"Sense signatura\",\n chooseFileCaption: \"Tria un fitxer\",\n takePhotoCaption: \"Fer foto\",\n photoPlaceholder: \"Feu clic al botó següent per fer una foto amb la càmera.\",\n fileOrPhotoPlaceholder: \"Arrossegueu i deixeu anar o seleccioneu un fitxer per penjar-lo o fer-ne una foto amb la càmera.\",\n replaceFileCaption: \"Substitueix el fitxer\",\n removeFileCaption: \"Suprimeix aquest fitxer\",\n booleanCheckedLabel: \"Sí\",\n booleanUncheckedLabel: \"No\",\n confirmRemoveFile: \"Esteu segur que voleu eliminar aquest fitxer: {0}?\",\n confirmRemoveAllFiles: \"Esteu segur que voleu eliminar tots els fitxers?\",\n questionTitlePatternText: \"Títol de la pregunta\",\n modalCancelButtonText: \"Cancel·lar\",\n modalApplyButtonText: \"Aplicar\",\n filterStringPlaceholder: \"Escriviu per cercar...\",\n emptyMessage: \"No hi ha dades per mostrar\",\n noEntriesText: \"Encara no hi ha entrades.\\nFeu clic al botó següent per afegir una entrada nova.\",\n noEntriesReadonlyText: \"No hi ha entrades.\",\n more: \"Més\",\n tagboxDoneButtonCaption: \"D'ACORD\",\n selectToRankEmptyRankedAreaText: \"Totes les opcions estan classificades\",\n selectToRankEmptyUnrankedAreaText: \"Arrossegueu i deixeu anar les opcions aquí per classificar-les\",\n ok: \"D'ACORD\",\n cancel: \"Cancel·lar\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ca\"] = catalanSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ca\"] = \"català\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// previewText: \"Preview\" => \"Preestrena\"\n// editText: \"Edit\" => \"Editar\"\n// startSurveyText: \"Start\" => \"Començar\"\n// noneItemText: \"None\" => \"Cap\"\n// selectAllItemText: \"Select All\" => \"Selecciona-ho tot\"\n// indexText: \"{0} of {1}\" => \"{0} de {1}\"\n// panelDynamicProgressText: \"{0} of {1}\" => \"{0} de {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panell {panelIndex}\"\n// questionsProgressText: \"Answered {0}/{1} questions\" => \"Respostes {0}/{1} preguntes\"\n// completingSurveyBefore: \"Our records show that you have already completed this survey.\" => \"Els nostres registres mostren que ja heu completat aquesta enquesta.\"\n// ratingOptionsCaption: \"Select...\" => \"Seleccionar...\"\n// value: \"value\" => \"valor\"\n// requiredErrorInPanel: \"Response required: answer at least one question.\" => \"Resposta necessària: respondre almenys una pregunta.\"\n// minError: \"The value should not be less than {0}\" => \"El valor no ha de ser inferior a {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"El valor no ha de ser superior a {0}\"\n// invalidExpression: \"The expression: {0} should return 'true'.\" => \"L'expressió: {0} ha de tornar 'veritable'.\"\n// loadingFile: \"Loading...\" => \"Càrrega...\"\n// chooseFile: \"Choose file(s)...\" => \"Trieu fitxer(s)...\"\n// noFileChosen: \"No file chosen\" => \"No s'ha triat cap fitxer\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Arrossegueu i deixeu anar un fitxer aquí o feu clic al botó següent i trieu un fitxer per carregar.\"\n// confirmDelete: \"Do you want to delete the record?\" => \"Vols eliminar el registre?\"\n// keyDuplicationError: \"This value should be unique.\" => \"Aquest valor ha de ser únic.\"\n// addColumn: \"Add Column\" => \"Afegeix una columna\"\n// emptyRowsText: \"There are no rows.\" => \"No hi ha files.\"\n// addPanel: \"Add new\" => \"Afegeix un nou\"\n// removePanel: \"Remove\" => \"Treure\"\n// choices_Item: \"item\" => \"ítem\"\n// multipletext_itemname: \"text\" => \"SMS\"\n// savingData: \"The results are being saved on the server...\" => \"Els resultats s'estan guardant al servidor...\"\n// savingDataError: \"An error occurred and we could not save the results.\" => \"S'ha produït un error i no hem pogut guardar els resultats.\"\n// savingDataSuccess: \"The results were saved successfully!\" => \"Els resultats es van salvar amb èxit!\"\n// saveAgainButton: \"Try again\" => \"Prova una altra vegada\"\n// timerMin: \"min\" => \"min\"\n// timerSec: \"sec\" => \"Seg\"\n// timerSpentAll: \"You have spent {0} on this page and {1} in total.\" => \"Heu passat {0} en aquesta pàgina i {1} en total.\"\n// timerSpentPage: \"You have spent {0} on this page.\" => \"Has passat {0} en aquesta pàgina.\"\n// timerSpentSurvey: \"You have spent {0} in total.\" => \"Has gastat {0} en total.\"\n// timerLimitAll: \"You have spent {0} of {1} on this page and {2} of {3} in total.\" => \"Heu passat {0} de {1} en aquesta pàgina i {2} de {3} en total.\"\n// timerLimitPage: \"You have spent {0} of {1} on this page.\" => \"Has passat {0} de {1} en aquesta pàgina.\"\n// timerLimitSurvey: \"You have spent {0} of {1} in total.\" => \"Has gastat {0} d'{1} en total.\"\n// clearCaption: \"Clear\" => \"Clar\"\n// signaturePlaceHolder: \"Sign here\" => \"Inscriu-te aquí\"\n// chooseFileCaption: \"Choose file\" => \"Tria un fitxer\"\n// removeFileCaption: \"Remove this file\" => \"Suprimeix aquest fitxer\"\n// booleanCheckedLabel: \"Yes\" => \"Sí\"\n// booleanUncheckedLabel: \"No\" => \"No\"\n// confirmRemoveFile: \"Are you sure that you want to remove this file: {0}?\" => \"Esteu segur que voleu eliminar aquest fitxer: {0}?\"\n// confirmRemoveAllFiles: \"Are you sure that you want to remove all files?\" => \"Esteu segur que voleu eliminar tots els fitxers?\"\n// questionTitlePatternText: \"Question Title\" => \"Títol de la pregunta\"\n// modalCancelButtonText: \"Cancel\" => \"Cancel·lar\"\n// modalApplyButtonText: \"Apply\" => \"Aplicar\"\n// filterStringPlaceholder: \"Type to search...\" => \"Escriviu per cercar...\"\n// emptyMessage: \"No data to display\" => \"No hi ha dades per mostrar\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Encara no hi ha entrades.\\nFeu clic al botó següent per afegir una entrada nova.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"No hi ha entrades.\"\n// more: \"More\" => \"Més\"\n// tagboxDoneButtonCaption: \"OK\" => \"D'ACORD\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Totes les opcions estan classificades\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Arrossegueu i deixeu anar les opcions aquí per classificar-les\"// takePhotoCaption: \"Take Photo\" => \"Fer foto\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Feu clic al botó següent per fer una foto amb la càmera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Arrossegueu i deixeu anar o seleccioneu un fitxer per penjar-lo o fer-ne una foto amb la càmera.\"\n// replaceFileCaption: \"Replace file\" => \"Substitueix el fitxer\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Cada fila ha de tenir un valor únic.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"No es poden carregar fitxers. Afegiu un controlador per a l'esdeveniment 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Mostra els detalls\"\n// hideDetails: \"Hide Details\" => \"Amaga els detalls\"\n// ok: \"OK\" => \"D'ACORD\"\n// cancel: \"Cancel\" => \"Cancel·lar\"\n// refuseItemText: \"Refuse to answer\" => \"Negar-se a respondre\"\n// dontKnowItemText: \"Don't know\" => \"No sé\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"La teva resposta supera els 64KB. Reduïu la mida dels fitxers i torneu-ho a provar o poseu-vos en contacte amb el propietari de l'enquesta.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Sense signatura\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/croatian.ts\":\n/*!**************************************!*\\\n !*** ./src/localization/croatian.ts ***!\n \\**************************************/\n/*! exports provided: croatianStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"croatianStrings\", function() { return croatianStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar croatianStrings = {\n pagePrevText: \"Prethodni\",\n pageNextText: \"Sljedeći\",\n completeText: \"Kompletan\",\n previewText: \"Pregled\",\n editText: \"Uređivanje\",\n startSurveyText: \"Početak\",\n otherItemText: \"Ostali (opis)\",\n noneItemText: \"Nitko\",\n refuseItemText: \"Odbijte odgovoriti\",\n dontKnowItemText: \"Ne znam\",\n selectAllItemText: \"Select All\",\n progressText: \"Stranica {0} od {1}\",\n indexText: \"{0} {1}\",\n panelDynamicProgressText: \"Zapisa {0} od {1}\",\n panelDynamicTabTextFormat: \"Ploča {panelIndex}\",\n questionsProgressText: \"Odgovorio na {0}/{1} pitanja\",\n emptySurvey: \"U anketi nema vidljive stranice ili pitanja.\",\n completingSurvey: \"Hvala vam što ste završili anketu!\",\n completingSurveyBefore: \"Naši zapisi pokazuju da ste već završili ovu anketu.\",\n loadingSurvey: \"Anketa o učitavanje...\",\n placeholder: \"Odaberite...\",\n ratingOptionsCaption: \"Odabirati...\",\n value: \"vrijednost\",\n requiredError: \"Molim vas odgovorite na pitanje.\",\n requiredErrorInPanel: \"Molim vas odgovorite na barem jedno pitanje.\",\n requiredInAllRowsError: \"Odgovorite na pitanja u svim redovima.\",\n eachRowUniqueError: \"Svaki redak mora imati jedinstvenu vrijednost.\",\n numericError: \"Vrijednost bi trebala biti brojčana.\",\n minError: \"Vrijednost ne smije biti manja od {0}\",\n maxError: \"Vrijednost ne smije biti veća od {0}\",\n textMinLength: \"Unesite najmanje {0} znak(ova).\",\n textMaxLength: \"Unesite manje od {0} znak(ova).\",\n textMinMaxLength: \"Unesite više od {0} i manje od {1} znakova.\",\n minRowCountError: \"Molimo ispunite najmanje {0} redaka.\",\n minSelectError: \"Odaberite barem {0} varijante.\",\n maxSelectError: \"Odaberite ne više od {0} varijanti.\",\n numericMinMax: \"'{0}'bi trebao biti jednak ili više od {1} i jednak ili manji od {2}.\",\n numericMin: \"'{0}' bi trebao biti jednak ili više od {1}.\",\n numericMax: \"'{0}' bi trebao biti jednak ili manji od {1}\",\n invalidEmail: \"Unesite valjanu e-mail adresu.\",\n invalidExpression: \"Izraz: {0} treba vratiti 'true'.\",\n urlRequestError: \"Zahtjev vratio pogrešku '{0}'. {1}\",\n urlGetChoicesError: \"Zahtjev je vratio prazne podatke ili je 'path' svojstvo netočna.\",\n exceedMaxSize: \"Veličina datoteke ne smije prelaziti {0}.\",\n noUploadFilesHandler: \"Datoteke se ne mogu prenijeti. Dodajte rukovatelja za događaj 'onUploadFiles'.\",\n otherRequiredError: \"Unesite drugu vrijednost.\",\n uploadingFile: \"Vaša datoteka se prenosi. Pričekajte nekoliko sekundi i pokušajte ponovno.\",\n loadingFile: \"Učitavanje...\",\n chooseFile: \"Odaberite datoteku...\",\n noFileChosen: \"Nije odabrana datoteka\",\n filePlaceholder: \"Povucite i ispustite datoteku ovdje ili kliknite donji gumb i odaberite datoteku koju želite prenijeti.\",\n confirmDelete: \"Želite li izbrisati zapis?\",\n keyDuplicationError: \"Ta bi vrijednost trebala biti jedinstvena.\",\n addColumn: \"Dodavanje stupca\",\n addRow: \"Dodavanje redaka\",\n removeRow: \"Ukloniti\",\n emptyRowsText: \"Nema redova.\",\n addPanel: \"Dodavanje novih\",\n removePanel: \"Ukloniti\",\n showDetails: \"Pokaži detalje\",\n hideDetails: \"Sakrij detalje\",\n choices_Item: \"stavku\",\n matrix_column: \"Stupca\",\n matrix_row: \"Redak\",\n multipletext_itemname: \"Tekstualna poruka\",\n savingData: \"Rezultati se spremaju na poslužitelju...\",\n savingDataError: \"Došlo je do pogreške i nismo mogli spremiti rezultate.\",\n savingDataSuccess: \"Rezultati su uspješno spremljeni!\",\n savingExceedSize: \"Vaš odgovor premašuje 64KB. Smanjite veličinu datoteka i pokušajte ponovno ili se obratite vlasniku upitnika.\",\n saveAgainButton: \"Pokušaj ponovo\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Vi ste proveli {0} na ovoj stranici i {1} ukupno.\",\n timerSpentPage: \"Potrošili ste {0} na ovu stranicu.\",\n timerSpentSurvey: \"You have spent {0} in total. {0}.\",\n timerLimitAll: \"Vi ste proveli {0} od {1} na ovoj stranici i {2} od {3} ukupno.\",\n timerLimitPage: \"Potrošio si {0} od {1} na ovoj stranici.\",\n timerLimitSurvey: \"Ukupno ste potrošili {0} od {1}.\",\n clearCaption: \"Očistiti\",\n signaturePlaceHolder: \"Potpiši ovdje\",\n signaturePlaceHolderReadOnly: \"Bez potpisa\",\n chooseFileCaption: \"Odaberite datoteku\",\n takePhotoCaption: \"Snimi fotografiju\",\n photoPlaceholder: \"Kliknite donji gumb da biste snimili fotografiju pomoću kamere.\",\n fileOrPhotoPlaceholder: \"Povucite i ispustite ili odaberite datoteku za prijenos ili snimanje fotografije pomoću kamere.\",\n replaceFileCaption: \"Zamijeni datoteku\",\n removeFileCaption: \"Uklonite ovu datoteku\",\n booleanCheckedLabel: \"Da\",\n booleanUncheckedLabel: \"Ne\",\n confirmRemoveFile: \"Jeste li sigurni da želite ukloniti ovu datoteku: {0}?\",\n confirmRemoveAllFiles: \"Jeste li sigurni da želite ukloniti sve datoteke?\",\n questionTitlePatternText: \"Naslov pitanja\",\n modalCancelButtonText: \"Otkazati\",\n modalApplyButtonText: \"Primijeniti\",\n filterStringPlaceholder: \"Upišite za pretraživanje...\",\n emptyMessage: \"Nema podataka za prikaz\",\n noEntriesText: \"Još nema unosa.\\nKliknite donji gumb da biste dodali novi unos.\",\n noEntriesReadonlyText: \"Nema unosa.\",\n more: \"Više\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Svi izbori su rangirani\",\n selectToRankEmptyUnrankedAreaText: \"Ovdje povucite i ispustite odabire da biste ih rangirali\",\n ok: \"OK\",\n cancel: \"Otkazati\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"hr\"] = croatianStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"hr\"] = \"hrvatski\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Ploča {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Odabirati...\"\n// minError: \"The value should not be less than {0}\" => \"Vrijednost ne smije biti manja od {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Vrijednost ne smije biti veća od {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Povucite i ispustite datoteku ovdje ili kliknite donji gumb i odaberite datoteku koju želite prenijeti.\"\n// emptyRowsText: \"There are no rows.\" => \"Nema redova.\"\n// multipletext_itemname: \"text\" => \"Tekstualna poruka\"\n// signaturePlaceHolder: \"Sign here\" => \"Potpiši ovdje\"\n// filterStringPlaceholder: \"Type to search...\" => \"Upišite za pretraživanje...\"\n// emptyMessage: \"No data to display\" => \"Nema podataka za prikaz\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Još nema unosa.\\nKliknite donji gumb da biste dodali novi unos.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Nema unosa.\"\n// more: \"More\" => \"Više\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Svi izbori su rangirani\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Ovdje povucite i ispustite odabire da biste ih rangirali\"// takePhotoCaption: \"Take Photo\" => \"Snimi fotografiju\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Kliknite donji gumb da biste snimili fotografiju pomoću kamere.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Povucite i ispustite ili odaberite datoteku za prijenos ili snimanje fotografije pomoću kamere.\"\n// replaceFileCaption: \"Replace file\" => \"Zamijeni datoteku\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Svaki redak mora imati jedinstvenu vrijednost.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Datoteke se ne mogu prenijeti. Dodajte rukovatelja za događaj 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Pokaži detalje\"\n// hideDetails: \"Hide Details\" => \"Sakrij detalje\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Otkazati\"\n// refuseItemText: \"Refuse to answer\" => \"Odbijte odgovoriti\"\n// dontKnowItemText: \"Don't know\" => \"Ne znam\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Vaš odgovor premašuje 64KB. Smanjite veličinu datoteka i pokušajte ponovno ili se obratite vlasniku upitnika.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Bez potpisa\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/czech.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/czech.ts ***!\n \\***********************************/\n/*! exports provided: czechSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"czechSurveyStrings\", function() { return czechSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar czechSurveyStrings = {\n pagePrevText: \"Předchozí\",\n pageNextText: \"Další\",\n completeText: \"Dokončit\",\n previewText: \"Náhled\",\n editText: \"Upravit\",\n startSurveyText: \"Začít\",\n otherItemText: \"Jiná odpověď (napište)\",\n noneItemText: \"Žádný\",\n refuseItemText: \"Odmítnout odpovědět\",\n dontKnowItemText: \"Nevím\",\n selectAllItemText: \"Vybrat vše\",\n progressText: \"Strana {0} z {1}\",\n indexText: \"{0} z {1}\",\n panelDynamicProgressText: \"Záznam {0} z {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Zodpovězené otázky: {0} / {1}\",\n emptySurvey: \"Průzkum neobsahuje žádné otázky.\",\n completingSurvey: \"Děkujeme za vyplnění průzkumu!\",\n completingSurveyBefore: \"Naše záznamy ukazují, že jste tento průzkum již dokončil/a.\",\n loadingSurvey: \"Probíhá načítání průzkumu...\",\n placeholder: \"Vyberte...\",\n ratingOptionsCaption: \"Vybrat...\",\n value: \"hodnota\",\n requiredError: \"Odpovězte prosím na otázku.\",\n requiredErrorInPanel: \"Odpovězte prosím alespoň jednu otázku.\",\n requiredInAllRowsError: \"Odpovězte prosím na všechny otázky.\",\n eachRowUniqueError: \"Každý řádek musí mít jedinečnou hodnotu.\",\n numericError: \"V tomto poli lze zadat pouze čísla.\",\n minError: \"Hodnota by neměla být menší než {0}\",\n maxError: \"Hodnota by neměla být větší než {0}\",\n textMinLength: \"Zadejte prosím alespoň {0} znaků.\",\n textMaxLength: \"Zadejte prosím méně než {0} znaků.\",\n textMinMaxLength: \"Zadejte prosím více než {0} a méně než {1} znaků.\",\n minRowCountError: \"Vyplňte prosím alespoň {0} řádků.\",\n minSelectError: \"Vyberte prosím alespoň {0} varianty.\",\n maxSelectError: \"Nevybírejte prosím více než {0} variant.\",\n numericMinMax: \"Odpověď '{0}' by mělo být větší nebo rovno {1} a menší nebo rovno {2}\",\n numericMin: \"Odpověď '{0}' by mělo být větší nebo rovno {1}\",\n numericMax: \"Odpověď '{0}' by mělo být menší nebo rovno {1}\",\n invalidEmail: \"Zadejte prosím platnou e-mailovou adresu.\",\n invalidExpression: \"Výraz: {0} by měl vrátit hodnotu „true“.\",\n urlRequestError: \"Požadavek vrátil chybu '{0}'. {1}\",\n urlGetChoicesError: \"Požadavek nevrátil data nebo je neplatná vlastnost 'path'\",\n exceedMaxSize: \"Velikost souboru by neměla být větší než {0}.\",\n noUploadFilesHandler: \"Soubory nelze nahrát. Přidejte obslužnou rutinu pro událost 'onUploadFiles'.\",\n otherRequiredError: \"Zadejte prosím jinou hodnotu.\",\n uploadingFile: \"Váš soubor se nahrává. Zkuste to prosím za několik sekund.\",\n loadingFile: \"Načítání...\",\n chooseFile: \"Vyberte soubory...\",\n noFileChosen: \"Není zvolený žádný soubor\",\n filePlaceholder: \"Přetáhněte sem soubor nebo klikněte na tlačítko níže a vyberte soubor, který chcete nahrát.\",\n confirmDelete: \"Chcete záznam smazat?\",\n keyDuplicationError: \"Tato hodnota by měla být unikátní.\",\n addColumn: \"Přidat sloupec\",\n addRow: \"Přidat řádek\",\n removeRow: \"Odstranit\",\n emptyRowsText: \"Neexistují žádné řádky.\",\n addPanel: \"Přidat nový\",\n removePanel: \"Odstranit\",\n showDetails: \"Zobrazit podrobnosti\",\n hideDetails: \"Skrýt podrobnosti\",\n choices_Item: \"položka\",\n matrix_column: \"Sloupec\",\n matrix_row: \"Řádek\",\n multipletext_itemname: \"Text\",\n savingData: \"Výsledky se ukládají na server...\",\n savingDataError: \"Došlo k chybě a výsledky jsme nemohli uložit.\",\n savingDataSuccess: \"Výsledky byly úspěšně uloženy!\",\n savingExceedSize: \"Vaše odpověď překračuje 64 kB. Zmenšete prosím velikost svých souborů a zkuste to znovu nebo kontaktujte vlastníka průzkumu.\",\n saveAgainButton: \"Zkuste to znovu\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Na této stránce jste strávil/a celkem {0} z {1}.\",\n timerSpentPage: \"Na této stránce jste strávil/a {0}.\",\n timerSpentSurvey: \"Celkem jste strávil/a {0}.\",\n timerLimitAll: \"Na této stránce jste strávil/a {0} z {1} a celkem {2} z {3}.\",\n timerLimitPage: \"Na této stránce jste strávil/a {0} z {1}.\",\n timerLimitSurvey: \"Celkově jste strávil/a {0} z {1}.\",\n clearCaption: \"Vymazat\",\n signaturePlaceHolder: \"Podepište se zde\",\n signaturePlaceHolderReadOnly: \"Bez podpisu\",\n chooseFileCaption: \"Vyberte soubor\",\n takePhotoCaption: \"Pořídit fotografii\",\n photoPlaceholder: \"Kliknutím na tlačítko níže pořídíte fotografii pomocí fotoaparátu.\",\n fileOrPhotoPlaceholder: \"Přetáhněte nebo vyberte soubor, který chcete nahrát nebo pořiďte fotografii pomocí fotoaparátu.\",\n replaceFileCaption: \"Nahradit soubor\",\n removeFileCaption: \"Odeberte tento soubor\",\n booleanCheckedLabel: \"Ano\",\n booleanUncheckedLabel: \"Ne\",\n confirmRemoveFile: \"Opravdu chcete odebrat tento soubor: {0}?\",\n confirmRemoveAllFiles: \"Opravdu chcete odstranit všechny soubory?\",\n questionTitlePatternText: \"Název otázky\",\n modalCancelButtonText: \"Zrušit\",\n modalApplyButtonText: \"Použít\",\n filterStringPlaceholder: \"Zadejte hledaný text...\",\n emptyMessage: \"Žádná data k zobrazení\",\n noEntriesText: \"Zatím nejsou žádné záznamy.\\nKliknutím na tlačítko níže přidáte novou položku.\",\n noEntriesReadonlyText: \"Nejsou zde žádné položky.\",\n more: \"Více\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Všechny možnosti jsou seřazeny\",\n selectToRankEmptyUnrankedAreaText: \"Přetáhněte volby zde a seřaďte je\",\n ok: \"OK\",\n cancel: \"Zrušit\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"cs\"] = czechSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"cs\"] = \"čeština\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} z {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Vybrat...\"\n// minError: \"The value should not be less than {0}\" => \"Hodnota by neměla být menší než {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Hodnota by neměla být větší než {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Přetáhněte sem soubor nebo klikněte na tlačítko níže a vyberte soubor, který chcete nahrát.\"\n// emptyRowsText: \"There are no rows.\" => \"Neexistují žádné řádky.\"\n// multipletext_itemname: \"text\" => \"Text\"\n// signaturePlaceHolder: \"Sign here\" => \"Podepište se zde\"\n// modalCancelButtonText: \"Cancel\" => \"Zrušit\"\n// modalApplyButtonText: \"Apply\" => \"Použít\"\n// filterStringPlaceholder: \"Type to search...\" => \"Zadejte hledaný text...\"\n// emptyMessage: \"No data to display\" => \"Žádná data k zobrazení\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Zatím nejsou žádné záznamy.\\nKliknutím na tlačítko níže přidáte novou položku.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Nejsou zde žádné položky.\"\n// more: \"More\" => \"Více\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Všechny možnosti jsou seřazeny\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Přetáhněte volby zde a seřaďte je\"// takePhotoCaption: \"Take Photo\" => \"Pořídit fotografii\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Kliknutím na tlačítko níže pořídíte fotografii pomocí fotoaparátu.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Přetáhněte nebo vyberte soubor, který chcete nahrát nebo pořiďte fotografii pomocí fotoaparátu.\"\n// replaceFileCaption: \"Replace file\" => \"Nahradit soubor\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Každý řádek musí mít jedinečnou hodnotu.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Soubory nelze nahrát. Přidejte obslužnou rutinu pro událost 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Zobrazit podrobnosti\"\n// hideDetails: \"Hide Details\" => \"Skrýt podrobnosti\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Zrušit\"\n// refuseItemText: \"Refuse to answer\" => \"Odmítnout odpovědět\"\n// dontKnowItemText: \"Don't know\" => \"Nevím\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Vaše odpověď překračuje 64 kB. Zmenšete prosím velikost svých souborů a zkuste to znovu nebo kontaktujte vlastníka průzkumu.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Bez podpisu\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/danish.ts\":\n/*!************************************!*\\\n !*** ./src/localization/danish.ts ***!\n \\************************************/\n/*! exports provided: danishSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"danishSurveyStrings\", function() { return danishSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar danishSurveyStrings = {\n pagePrevText: \"Tilbage\",\n pageNextText: \"Videre\",\n completeText: \"Færdig\",\n previewText: \"Forpremiere\",\n editText: \"Redigér\",\n startSurveyText: \"Start\",\n otherItemText: \"Valgfrit svar...\",\n noneItemText: \"Ingen\",\n refuseItemText: \"Nægt at svare\",\n dontKnowItemText: \"Ved ikke\",\n selectAllItemText: \"Vælg alle\",\n progressText: \"Side {0} af {1}\",\n indexText: \"{0} af {1}\",\n panelDynamicProgressText: \"Optag {0} af {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Besvarede {0} / {1} spørgsmål\",\n emptySurvey: \"Der er ingen synlige spørgsmål.\",\n completingSurvey: \"Mange tak for din besvarelse!\",\n completingSurveyBefore: \"Vores data viser at du allerede har gennemført dette spørgeskema.\",\n loadingSurvey: \"Spørgeskemaet hentes fra serveren...\",\n placeholder: \"Vælg...\",\n ratingOptionsCaption: \"Markere...\",\n value: \"værdi\",\n requiredError: \"Besvar venligst spørgsmålet.\",\n requiredErrorInPanel: \"Besvar venligst mindst ét spørgsmål.\",\n requiredInAllRowsError: \"Besvar venligst spørgsmål i alle rækker.\",\n eachRowUniqueError: \"Hver række skal have en entydig værdi.\",\n numericError: \"Angiv et tal.\",\n minError: \"Værdien bør ikke være mindre end {0}\",\n maxError: \"Værdien bør ikke være større end {0}\",\n textMinLength: \"Angiv mindst {0} tegn.\",\n textMaxLength: \"Please enter less than {0} characters.\",\n textMinMaxLength: \"Angiv mere end {0} og mindre end {1} tegn.\",\n minRowCountError: \"Udfyld mindst {0} rækker.\",\n minSelectError: \"Vælg venligst mindst {0} svarmulighed(er).\",\n maxSelectError: \"Vælg venligst færre {0} svarmuligheder(er).\",\n numericMinMax: \"'{0}' skal være lig med eller større end {1} og lig med eller mindre end {2}\",\n numericMin: \"'{0}' skal være lig med eller større end {1}\",\n numericMax: \"'{0}' skal være lig med eller mindre end {1}\",\n invalidEmail: \"Angiv venligst en gyldig e-mail adresse.\",\n invalidExpression: \"Udtrykket: {0} skal returnere 'true'.\",\n urlRequestError: \"Forespørgslen returnerede fejlen '{0}'. {1}\",\n urlGetChoicesError: \"Forespørgslen returnerede ingen data eller 'path' parameteren er forkert\",\n exceedMaxSize: \"Filstørrelsen må ikke overstige {0}.\",\n noUploadFilesHandler: \"Filer kan ikke uploades. Tilføj en handler for hændelsen 'onUploadFiles'.\",\n otherRequiredError: \"Angiv en værdi for dit valgfrie svar.\",\n uploadingFile: \"Din fil bliver uploadet. Vent nogle sekunder og prøv eventuelt igen.\",\n loadingFile: \"Indlæser...\",\n chooseFile: \"Vælg fil(er)...\",\n noFileChosen: \"Ingen fil er valgt\",\n filePlaceholder: \"Træk og slip en fil her, eller klik på knappen nedenfor, og vælg en fil, der skal uploades.\",\n confirmDelete: \"Vil du fjerne den?\",\n keyDuplicationError: \"Denne værdi skal være unik.\",\n addColumn: \"Tilføj kolonne\",\n addRow: \"Tilføj række\",\n removeRow: \"Fjern\",\n emptyRowsText: \"Der er ingen rækker.\",\n addPanel: \"Tilføj ny\",\n removePanel: \"Fjern\",\n showDetails: \"Vis detaljer\",\n hideDetails: \"Skjul detaljer\",\n choices_Item: \"valg\",\n matrix_column: \"Kolonne\",\n matrix_row: \"Række\",\n multipletext_itemname: \"Tekst\",\n savingData: \"Resultaterne bliver gemt på serveren...\",\n savingDataError: \"Der opstod en fejl og vi kunne ikke gemme resultatet.\",\n savingDataSuccess: \"Resultatet blev gemt!\",\n savingExceedSize: \"Dit svar overstiger 64 KB. Reducer størrelsen på din(e) fil(er), og prøv igen, eller kontakt en undersøgelsesejer.\",\n saveAgainButton: \"Prøv igen\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Du har brugt {0} på denne side og {1} i alt.\",\n timerSpentPage: \"Du har brugt {0} på denne side.\",\n timerSpentSurvey: \"Du har brugt {0} i alt.\",\n timerLimitAll: \"Du har brugt {0} af {1} på denne side og {2} af {3} i alt.\",\n timerLimitPage: \"Du har brugt {0} af {1} på denne side.\",\n timerLimitSurvey: \"Du har brugt {0} af {1} i alt.\",\n clearCaption: \"Fjern\",\n signaturePlaceHolder: \"Tilmeld dig her\",\n signaturePlaceHolderReadOnly: \"Ingen underskrift\",\n chooseFileCaption: \"Vælg fil\",\n takePhotoCaption: \"Tag billede\",\n photoPlaceholder: \"Klik på knappen nedenfor for at tage et billede med kameraet.\",\n fileOrPhotoPlaceholder: \"Træk og slip, eller vælg en fil, der skal uploades, eller tag et billede med kameraet.\",\n replaceFileCaption: \"Erstat fil\",\n removeFileCaption: \"Fjern denne fil\",\n booleanCheckedLabel: \"Ja\",\n booleanUncheckedLabel: \"Ingen\",\n confirmRemoveFile: \"Er du sikker på, at du vil fjerne denne fil: {0}?\",\n confirmRemoveAllFiles: \"Er du sikker på, at du vil fjerne alle filer?\",\n questionTitlePatternText: \"Spørgsmåls titel\",\n modalCancelButtonText: \"Aflyse\",\n modalApplyButtonText: \"Anvende\",\n filterStringPlaceholder: \"Skriv for at søge...\",\n emptyMessage: \"Ingen data at vise\",\n noEntriesText: \"Der er endnu ingen tilmeldinger.\\nKlik på knappen nedenfor for at tilføje en ny post.\",\n noEntriesReadonlyText: \"Der er ingen poster.\",\n more: \"Mere\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Alle valg er rangeret\",\n selectToRankEmptyUnrankedAreaText: \"Træk og slip valg her for at rangere dem\",\n ok: \"OK\",\n cancel: \"Aflyse\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"da\"] = danishSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"da\"] = \"dansk\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} af {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Markere...\"\n// minError: \"The value should not be less than {0}\" => \"Værdien bør ikke være mindre end {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Værdien bør ikke være større end {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Træk og slip en fil her, eller klik på knappen nedenfor, og vælg en fil, der skal uploades.\"\n// emptyRowsText: \"There are no rows.\" => \"Der er ingen rækker.\"\n// multipletext_itemname: \"text\" => \"Tekst\"\n// signaturePlaceHolder: \"Sign here\" => \"Tilmeld dig her\"\n// modalCancelButtonText: \"Cancel\" => \"Aflyse\"\n// modalApplyButtonText: \"Apply\" => \"Anvende\"\n// filterStringPlaceholder: \"Type to search...\" => \"Skriv for at søge...\"\n// emptyMessage: \"No data to display\" => \"Ingen data at vise\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Der er endnu ingen tilmeldinger.\\nKlik på knappen nedenfor for at tilføje en ny post.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Der er ingen poster.\"\n// more: \"More\" => \"Mere\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Alle valg er rangeret\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Træk og slip valg her for at rangere dem\"// takePhotoCaption: \"Take Photo\" => \"Tag billede\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Klik på knappen nedenfor for at tage et billede med kameraet.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Træk og slip, eller vælg en fil, der skal uploades, eller tag et billede med kameraet.\"\n// replaceFileCaption: \"Replace file\" => \"Erstat fil\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Hver række skal have en entydig værdi.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Filer kan ikke uploades. Tilføj en handler for hændelsen 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Vis detaljer\"\n// hideDetails: \"Hide Details\" => \"Skjul detaljer\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Aflyse\"\n// refuseItemText: \"Refuse to answer\" => \"Nægt at svare\"\n// dontKnowItemText: \"Don't know\" => \"Ved ikke\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Dit svar overstiger 64 KB. Reducer størrelsen på din(e) fil(er), og prøv igen, eller kontakt en undersøgelsesejer.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Ingen underskrift\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/dutch.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/dutch.ts ***!\n \\***********************************/\n/*! exports provided: dutchSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dutchSurveyStrings\", function() { return dutchSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar dutchSurveyStrings = {\n pagePrevText: \"Vorige\",\n pageNextText: \"Volgende\",\n completeText: \"Verzenden\",\n previewText: \"Voorbeeld\",\n editText: \"Bewerk\",\n startSurveyText: \"Start\",\n otherItemText: \"Anders, nl.\",\n noneItemText: \"Geen\",\n refuseItemText: \"Weiger te antwoorden\",\n dontKnowItemText: \"Weet niet\",\n selectAllItemText: \"Selecteer Alles\",\n progressText: \"Pagina {0} van {1}\",\n indexText: \"{0} van {1}\",\n panelDynamicProgressText: \"Record {0} of {1}\",\n panelDynamicTabTextFormat: \"Paneel {panelIndex}\",\n questionsProgressText: \"Geantwoord {0}/{1} vragen\",\n emptySurvey: \"Er is geen zichtbare pagina of vraag in deze vragenlijst\",\n completingSurvey: \"Bedankt voor het invullen van de vragenlijst\",\n completingSurveyBefore: \"Onze gegevens tonen aan dat je deze vragenlijst reeds beantwoord hebt.\",\n loadingSurvey: \"De vragenlijst is aan het laden...\",\n placeholder: \"Kies...\",\n ratingOptionsCaption: \"Selecteren...\",\n value: \"waarde\",\n requiredError: \"Dit is een vereiste vraag\",\n requiredErrorInPanel: \"Gelieve ten minste een vraag te beantwoorden.\",\n requiredInAllRowsError: \"Deze vraag vereist één antwoord per rij\",\n eachRowUniqueError: \"Elke rij moet een unieke waarde hebben.\",\n numericError: \"Het antwoord moet een getal zijn\",\n minError: \"De waarde mag niet lager zijn dan {0}\",\n maxError: \"De waarde mag niet groter zijn dan {0}\",\n textMinLength: \"Vul minstens {0} karakters in\",\n textMaxLength: \"Gelieve minder dan {0} karakters in te vullen.\",\n textMinMaxLength: \"Gelieve meer dan {0} en minder dan {1} karakters in te vullen.\",\n minRowCountError: \"Gelieve ten minste {0} rijen in te vullen.\",\n minSelectError: \"Selecteer minimum {0} antwoorden\",\n maxSelectError: \"Selecteer niet meer dan {0} antwoorden\",\n numericMinMax: \"Uw antwoord '{0}' moet groter of gelijk zijn aan {1} en kleiner of gelijk aan {2}\",\n numericMin: \"Uw antwoord '{0}' moet groter of gelijk zijn aan {1}\",\n numericMax: \"Uw antwoord '{0}' moet groter of gelijk zijn aan {1}\",\n invalidEmail: \"Vul een geldig e-mailadres in\",\n invalidExpression: \"De uitdrukking: {0} moet 'waar' teruggeven.\",\n urlRequestError: \"De vraag keerde een fout terug '{0}'. {1}\",\n urlGetChoicesError: \"De vraag gaf een leeg antwoord terug of de 'pad' eigenschap is niet correct\",\n exceedMaxSize: \"De grootte van het bestand mag niet groter zijn dan {0}\",\n noUploadFilesHandler: \"Bestanden kunnen niet worden geüpload. Voeg een handler toe voor de gebeurtenis 'onUploadFiles'.\",\n otherRequiredError: \"Vul het veld 'Anders, nl.' in\",\n uploadingFile: \"Uw bestand wordt geüpload. Gelieve enkele seconden te wachten en opnieuw te proberen.\",\n loadingFile: \"Laden...\",\n chooseFile: \"Kies uw bestand(en)...\",\n noFileChosen: \"Geen bestand gekozen\",\n filePlaceholder: \"Sleep het bestand naar hier\",\n confirmDelete: \"Wilt u deze gegevens verwijderen?\",\n keyDuplicationError: \"Deze waarde moet uniek zijn.\",\n addColumn: \"Voeg kolom toe\",\n addRow: \"Voeg rij toe\",\n removeRow: \"Verwijder\",\n emptyRowsText: \"Er zijn geen rijen.\",\n addPanel: \"Nieuwe toevoegen\",\n removePanel: \"Verwijder\",\n showDetails: \"Toon details\",\n hideDetails: \"Verberg details\",\n choices_Item: \"onderwerp\",\n matrix_column: \"Kolom\",\n matrix_row: \"Rij\",\n multipletext_itemname: \"Sms\",\n savingData: \"De resultaten worden bewaard op de server...\",\n savingDataError: \"Er was een probleem en we konden de resultaten niet bewaren.\",\n savingDataSuccess: \"De resultaten werden succesvol bewaard!\",\n savingExceedSize: \"Uw antwoord is groter dan 64 kB. Verklein de grootte van uw bestand(en) en probeer het opnieuw of neem contact op met een enquête-eigenaar.\",\n saveAgainButton: \"Probeer opnieuw\",\n timerMin: \"minimum\",\n timerSec: \"sec\",\n timerSpentAll: \"U heeft {0} gespendeerd op deze pagina en {1} in totaal.\",\n timerSpentPage: \"U heeft {0} op deze pagina gespendeerd.\",\n timerSpentSurvey: \"U heeft in totaal {0} gespendeerd.\",\n timerLimitAll: \"U heeft {0} van {1} op deze pagina gespendeerd en {2} van {3} in totaal.\",\n timerLimitPage: \"U heeft {0} van {1} gespendeerd op deze pagina.\",\n timerLimitSurvey: \"U heeft {0} van {1} in het totaal.\",\n clearCaption: \"Verwijder\",\n signaturePlaceHolder: \"Hier tekenen\",\n signaturePlaceHolderReadOnly: \"Geen handtekening\",\n chooseFileCaption: \"Gekozen bestand\",\n takePhotoCaption: \"Foto maken\",\n photoPlaceholder: \"Klik op de onderstaande knop om een foto te maken met de camera.\",\n fileOrPhotoPlaceholder: \"Sleep en zet neer of selecteer een bestand om te uploaden of maak een foto met de camera.\",\n replaceFileCaption: \"Bestand vervangen\",\n removeFileCaption: \"Verwijder dit bestand\",\n booleanCheckedLabel: \"Ja\",\n booleanUncheckedLabel: \"Nee\",\n confirmRemoveFile: \"Weet u zeker dat u deze file wilt verwijderen: {0}?\",\n confirmRemoveAllFiles: \"Weet u zeker dat u al deze files wilt verwijderen?\",\n questionTitlePatternText: \"Titel van de vraag\",\n modalCancelButtonText: \"Annuleren\",\n modalApplyButtonText: \"Toepassen\",\n filterStringPlaceholder: \"Typ om te zoeken...\",\n emptyMessage: \"Geen gegevens om weer te geven\",\n noEntriesText: \"Er zijn nog geen inzendingen.\\nKlik op de onderstaande knop om een nieuw item toe te voegen.\",\n noEntriesReadonlyText: \"Er zijn geen inzendingen.\",\n more: \"Meer\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Alle keuzes zijn gerangschikt\",\n selectToRankEmptyUnrankedAreaText: \"Drag en drop keuzes hier om ze te rangschikken\",\n ok: \"OK\",\n cancel: \"Annuleren\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"nl\"] = dutchSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"nl\"] = \"nederlands\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} van {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Paneel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Selecteren...\"\n// minError: \"The value should not be less than {0}\" => \"De waarde mag niet lager zijn dan {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"De waarde mag niet groter zijn dan {0}\"\n// emptyRowsText: \"There are no rows.\" => \"Er zijn geen rijen.\"\n// multipletext_itemname: \"text\" => \"Sms\"\n// modalCancelButtonText: \"Cancel\" => \"Annuleren\"\n// modalApplyButtonText: \"Apply\" => \"Toepassen\"\n// filterStringPlaceholder: \"Type to search...\" => \"Typ om te zoeken...\"\n// emptyMessage: \"No data to display\" => \"Geen gegevens om weer te geven\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Er zijn nog geen inzendingen.\\nKlik op de onderstaande knop om een nieuw item toe te voegen.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Er zijn geen inzendingen.\"\n// more: \"More\" => \"Meer\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Alle keuzes zijn gerangschikt\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Drag en drop keuzes hier om ze te rangschikken\"// takePhotoCaption: \"Take Photo\" => \"Foto maken\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Klik op de onderstaande knop om een foto te maken met de camera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Sleep en zet neer of selecteer een bestand om te uploaden of maak een foto met de camera.\"\n// replaceFileCaption: \"Replace file\" => \"Bestand vervangen\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Elke rij moet een unieke waarde hebben.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Bestanden kunnen niet worden geüpload. Voeg een handler toe voor de gebeurtenis 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Toon details\"\n// hideDetails: \"Hide Details\" => \"Verberg details\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Annuleren\"\n// refuseItemText: \"Refuse to answer\" => \"Weiger te antwoorden\"\n// dontKnowItemText: \"Don't know\" => \"Weet niet\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Uw antwoord is groter dan 64 kB. Verklein de grootte van uw bestand(en) en probeer het opnieuw of neem contact op met een enquête-eigenaar.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Geen handtekening\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/english.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/english.ts ***!\n \\*************************************/\n/*! exports provided: englishStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"englishStrings\", function() { return englishStrings; });\n// Uncomment the line below if you create a custom dictionary\n// import { surveyLocalization } from \"survey-core\";\nvar englishStrings = {\n pagePrevText: \"Previous\",\n pageNextText: \"Next\",\n completeText: \"Complete\",\n previewText: \"Preview\",\n editText: \"Edit\",\n startSurveyText: \"Start\",\n otherItemText: \"Other (describe)\",\n noneItemText: \"None\",\n refuseItemText: \"Refuse to answer\",\n dontKnowItemText: \"Don't know\",\n selectAllItemText: \"Select All\",\n progressText: \"Page {0} of {1}\",\n indexText: \"{0} of {1}\",\n panelDynamicProgressText: \"{0} of {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Answered {0}/{1} questions\",\n emptySurvey: \"The survey doesn't contain any visible elements.\",\n completingSurvey: \"Thank you for completing the survey\",\n completingSurveyBefore: \"You have already completed this survey.\",\n loadingSurvey: \"Loading Survey...\",\n placeholder: \"Select...\",\n ratingOptionsCaption: \"Select...\",\n value: \"value\",\n requiredError: \"Response required.\",\n requiredErrorInPanel: \"Response required: answer at least one question.\",\n requiredInAllRowsError: \"Response required: answer questions in all rows.\",\n eachRowUniqueError: \"Each row must have a unique value.\",\n numericError: \"The value should be numeric.\",\n minError: \"The value should not be less than {0}\",\n maxError: \"The value should not be greater than {0}\",\n textMinLength: \"Please enter at least {0} character(s).\",\n textMaxLength: \"Please enter no more than {0} character(s).\",\n textMinMaxLength: \"Please enter at least {0} and no more than {1} characters.\",\n minRowCountError: \"Please fill in at least {0} row(s).\",\n minSelectError: \"Please select at least {0} option(s).\",\n maxSelectError: \"Please select no more than {0} option(s).\",\n numericMinMax: \"The '{0}' should be at least {1} and at most {2}\",\n numericMin: \"The '{0}' should be at least {1}\",\n numericMax: \"The '{0}' should be at most {1}\",\n invalidEmail: \"Please enter a valid e-mail address.\",\n invalidExpression: \"The expression: {0} should return 'true'.\",\n urlRequestError: \"The request returned error '{0}'. {1}\",\n urlGetChoicesError: \"The request returned empty data or the 'path' property is incorrect\",\n exceedMaxSize: \"The file size should not exceed {0}.\",\n noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\",\n otherRequiredError: \"Response required: enter another value.\",\n uploadingFile: \"Your file is uploading. Please wait several seconds and try again.\",\n loadingFile: \"Loading...\",\n chooseFile: \"Choose file(s)...\",\n noFileChosen: \"No file selected\",\n filePlaceholder: \"Drag and drop a file here or click the button below to select a file to upload.\",\n confirmDelete: \"Are you sure you want to delete this record?\",\n keyDuplicationError: \"This value should be unique.\",\n addColumn: \"Add Column\",\n addRow: \"Add Row\",\n removeRow: \"Remove\",\n emptyRowsText: \"There are no rows.\",\n addPanel: \"Add new\",\n removePanel: \"Remove\",\n showDetails: \"Show Details\",\n hideDetails: \"Hide Details\",\n choices_Item: \"item\",\n matrix_column: \"Column\",\n matrix_row: \"Row\",\n multipletext_itemname: \"text\",\n savingData: \"The results are being saved on the server...\",\n savingDataError: \"An error occurred and we could not save the results.\",\n savingDataSuccess: \"The results were saved successfully!\",\n savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact the survey owner.\",\n saveAgainButton: \"Try again\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"You have spent {0} on this page and {1} in total.\",\n timerSpentPage: \"You have spent {0} on this page.\",\n timerSpentSurvey: \"You have spent {0} in total.\",\n timerLimitAll: \"You have spent {0} of {1} on this page and {2} of {3} in total.\",\n timerLimitPage: \"You have spent {0} of {1} on this page.\",\n timerLimitSurvey: \"You have spent {0} of {1} in total.\",\n clearCaption: \"Clear\",\n signaturePlaceHolder: \"Sign here\",\n signaturePlaceHolderReadOnly: \"No signature\",\n chooseFileCaption: \"Select File\",\n takePhotoCaption: \"Take Photo\",\n photoPlaceholder: \"Click the button below to take a photo using the camera.\",\n fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\",\n replaceFileCaption: \"Replace file\",\n removeFileCaption: \"Remove this file\",\n booleanCheckedLabel: \"Yes\",\n booleanUncheckedLabel: \"No\",\n confirmRemoveFile: \"Are you sure that you want to remove this file: {0}?\",\n confirmRemoveAllFiles: \"Are you sure that you want to remove all files?\",\n questionTitlePatternText: \"Question Title\",\n modalCancelButtonText: \"Cancel\",\n modalApplyButtonText: \"Apply\",\n filterStringPlaceholder: \"Type to search...\",\n emptyMessage: \"No data to display\",\n noEntriesText: \"No entries yet.\\nClick the button below to add a new entry.\",\n noEntriesReadonlyText: \"No entries\",\n more: \"More\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"All choices are selected for ranking\",\n selectToRankEmptyUnrankedAreaText: \"Drag choices here to rank them\",\n ok: \"OK\",\n cancel: \"Cancel\",\n};\n// Uncomment the lines below if you create a custom dictionary.\n// Replace \"en\" with a custom locale code (for example, \"fr\" or \"de\"),\n// Replace `englishStrings` with the name of the variable that contains the custom dictionary.\n// surveyLocalization.locales[\"en\"] = englishStrings;\n// surveyLocalization.localeNames[\"en\"] = \"English\";\n\n\n/***/ }),\n\n/***/ \"./src/localization/estonian.ts\":\n/*!**************************************!*\\\n !*** ./src/localization/estonian.ts ***!\n \\**************************************/\n/*! exports provided: estonianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"estonianSurveyStrings\", function() { return estonianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar estonianSurveyStrings = {\n pagePrevText: \"Tagasi\",\n pageNextText: \"Edasi\",\n completeText: \"Lõpeta\",\n previewText: \"Eelvaade\",\n editText: \"Muuda\",\n startSurveyText: \"Alusta\",\n otherItemText: \"Muu (täpsusta)\",\n noneItemText: \"Mitte midagi\",\n refuseItemText: \"Keeldu vastamast\",\n dontKnowItemText: \"Ei tea\",\n selectAllItemText: \"Vali kõik\",\n progressText: \"Lehekülg {0}/{1}\",\n indexText: \"{0} {1}\",\n panelDynamicProgressText: \"Kirje {0}/{1}\",\n panelDynamicTabTextFormat: \"Paneel {panelIndex}\",\n questionsProgressText: \"Vastatud {0} küsimust {1}-st\",\n emptySurvey: \"Selles uuringus ei ole ühtki nähtavat lehekülge või küsimust.\",\n completingSurvey: \"Aitäh, et vastasid ankeedile!\",\n completingSurveyBefore: \"Meie andmetel oled sa sellele ankeedile juba vastanud.\",\n loadingSurvey: \"Laen ankeeti...\",\n placeholder: \"Vali...\",\n ratingOptionsCaption: \"Valima...\",\n value: \"väärtus\",\n requiredError: \"Palun vasta küsimusele.\",\n requiredErrorInPanel: \"Palun vasta vähemalt ühele küsimusele.\",\n requiredInAllRowsError: \"Palun anna vastus igal real.\",\n eachRowUniqueError: \"Igal real peab olema kordumatu väärtus.\",\n numericError: \"See peaks olema numbriline väärtus.\",\n minError: \"Väärtus ei tohiks olla väiksem kui {0}\",\n maxError: \"Väärtus ei tohiks olla suurem kui {0}\",\n textMinLength: \"Palun sisesta vähemalt {0} tähemärki.\",\n textMaxLength: \"Palun ära sisesta rohkem kui {0} tähemärki.\",\n textMinMaxLength: \"Sisesta palun {0} - {1} tähemärki.\",\n minRowCountError: \"Sisesta plaun vähemalt {0} rida.\",\n minSelectError: \"Palun vali vähemalt {0} varianti.\",\n maxSelectError: \"Palun vali kõige rohkem {0} varianti.\",\n numericMinMax: \"'{0}' peaks olema võrdne või suurem kui {1} ja võrdne või väiksem kui {2}\",\n numericMin: \"'{0}' peaks olema võrdne või suurem kui {1}\",\n numericMax: \"'{0}' peaks olema võrnde või väiksem kui {1}\",\n invalidEmail: \"Sisesta palun korrektne e-posti aadress.\",\n invalidExpression: \"Avaldis: {0} peaks tagastama tõese.\",\n urlRequestError: \"Taotlus tagastas vea „{0}”. {1}\",\n urlGetChoicesError: \"Taotlus tagastas tühjad andmed või atribuut 'path' on vale\",\n exceedMaxSize: \"Faili suurus ei tohi ületada {0}.\",\n noUploadFilesHandler: \"Faile ei saa üles laadida. Palun lisage sündmuse \\\"onUploadFiles\\\" jaoks käitleja.\",\n otherRequiredError: \"Sisesta palun muu vastus.\",\n uploadingFile: \"Sinu fail laeb üles. Palun oota mõned sekundid ning proovi seejärel uuesti.\",\n loadingFile: \"Laen...\",\n chooseFile: \"Vali fail(id)...\",\n noFileChosen: \"Faili pole valitud\",\n filePlaceholder: \"Pukseerige fail siia või klõpsake allolevat nuppu ja valige üleslaaditav fail.\",\n confirmDelete: \"Kas tahad kirje kustutada?\",\n keyDuplicationError: \"See väärtus peab olema unikaalne.\",\n addColumn: \"Lisa veerg\",\n addRow: \"Lisa rida\",\n removeRow: \"Eemalda\",\n emptyRowsText: \"Ridu pole.\",\n addPanel: \"Lisa uus\",\n removePanel: \"Eemalda\",\n showDetails: \"Näita detaile\",\n hideDetails: \"Peida üksikasjad\",\n choices_Item: \"üksus\",\n matrix_column: \"Veerg\",\n matrix_row: \"Rida\",\n multipletext_itemname: \"Tekst\",\n savingData: \"Salvestan andmed serveris...\",\n savingDataError: \"Tekkis viga ning me ei saanud vastuseid salvestada.\",\n savingDataSuccess: \"Vastuste salvestamine õnnestus!\",\n savingExceedSize: \"Teie vastus ületab 64 KB. Vähendage faili(de) mahtu ja proovige uuesti või võtke ühendust uuringu omanikuga.\",\n saveAgainButton: \"Proovi uuesti\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Oled veetnud {0} sellel lehel ning kokku {1}.\",\n timerSpentPage: \"Oled veetnud {0} sellel lehel.\",\n timerSpentSurvey: \"Oled veetnud {0} kokku.\",\n timerLimitAll: \"Oled kulutanud {0} võimalikust {1} sellel lehel ning {2} võimalikust {3} kokku.\",\n timerLimitPage: \"Oled kulutanud {0} võimalikust {1} sellel lehel.\",\n timerLimitSurvey: \"Oled kulutanud {0} võimalikust {1} koguajast.\",\n clearCaption: \"Puhasta\",\n signaturePlaceHolder: \"Allkirjasta siin\",\n signaturePlaceHolderReadOnly: \"Allkiri puudub\",\n chooseFileCaption: \"Vali fail\",\n takePhotoCaption: \"Pildistamine\",\n photoPlaceholder: \"Kaamera abil pildistamiseks klõpsake allolevat nuppu.\",\n fileOrPhotoPlaceholder: \"Pukseerige või valige üleslaaditav fail või pildistage seda kaamera abil.\",\n replaceFileCaption: \"Asenda fail\",\n removeFileCaption: \"Eemalda see fail\",\n booleanCheckedLabel: \"Jah\",\n booleanUncheckedLabel: \"Ei\",\n confirmRemoveFile: \"Oled sa kindel, et soovid selle faili eemaldada: {0}?\",\n confirmRemoveAllFiles: \"Oled sa kindel, et soovid eemaldada kõik failid?\",\n questionTitlePatternText: \"Küsimuse pealkiri\",\n modalCancelButtonText: \"Tühistama\",\n modalApplyButtonText: \"Kohaldata\",\n filterStringPlaceholder: \"Tippige otsimiseks...\",\n emptyMessage: \"Kuvatavaid andmeid pole\",\n noEntriesText: \"Sissekandeid veel ei ole.\\nUue kirje lisamiseks klõpsake allolevat nuppu.\",\n noEntriesReadonlyText: \"Kirjeid ei ole.\",\n more: \"Rohkem\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Kõik valikud on järjestatud\",\n selectToRankEmptyUnrankedAreaText: \"Lohistage valikuid siia, et neid järjestada\",\n ok: \"OK\",\n cancel: \"Tühistama\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"et\"] = estonianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"et\"] = \"eesti keel\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Paneel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Valima...\"\n// minError: \"The value should not be less than {0}\" => \"Väärtus ei tohiks olla väiksem kui {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Väärtus ei tohiks olla suurem kui {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Pukseerige fail siia või klõpsake allolevat nuppu ja valige üleslaaditav fail.\"\n// emptyRowsText: \"There are no rows.\" => \"Ridu pole.\"\n// multipletext_itemname: \"text\" => \"Tekst\"\n// signaturePlaceHolder: \"Sign here\" => \"Allkirjasta siin\"\n// modalCancelButtonText: \"Cancel\" => \"Tühistama\"\n// modalApplyButtonText: \"Apply\" => \"Kohaldata\"\n// filterStringPlaceholder: \"Type to search...\" => \"Tippige otsimiseks...\"\n// emptyMessage: \"No data to display\" => \"Kuvatavaid andmeid pole\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Sissekandeid veel ei ole.\\nUue kirje lisamiseks klõpsake allolevat nuppu.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Kirjeid ei ole.\"\n// more: \"More\" => \"Rohkem\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Kõik valikud on järjestatud\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Lohistage valikuid siia, et neid järjestada\"// takePhotoCaption: \"Take Photo\" => \"Pildistamine\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Kaamera abil pildistamiseks klõpsake allolevat nuppu.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Pukseerige või valige üleslaaditav fail või pildistage seda kaamera abil.\"\n// replaceFileCaption: \"Replace file\" => \"Asenda fail\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Igal real peab olema kordumatu väärtus.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Faile ei saa üles laadida. Palun lisage sündmuse \\\"onUploadFiles\\\" jaoks käitleja.\"\n// showDetails: \"Show Details\" => \"Näita detaile\"\n// hideDetails: \"Hide Details\" => \"Peida üksikasjad\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Tühistama\"\n// refuseItemText: \"Refuse to answer\" => \"Keeldu vastamast\"\n// dontKnowItemText: \"Don't know\" => \"Ei tea\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Teie vastus ületab 64 KB. Vähendage faili(de) mahtu ja proovige uuesti või võtke ühendust uuringu omanikuga.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Allkiri puudub\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/finnish.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/finnish.ts ***!\n \\*************************************/\n/*! exports provided: finnishSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"finnishSurveyStrings\", function() { return finnishSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar finnishSurveyStrings = {\n pagePrevText: \"Edellinen\",\n pageNextText: \"Seuraava\",\n completeText: \"Valmis\",\n previewText: \"Esikatselu\",\n editText: \"Muokkaa\",\n startSurveyText: \"Aloita\",\n otherItemText: \"Muu (tarkenna)\",\n noneItemText: \"Ei mitään\",\n refuseItemText: \"Kieltäydy vastaamasta\",\n dontKnowItemText: \"Ei tiedä\",\n selectAllItemText: \"Valitse kaikki\",\n progressText: \"Sivu {0} / {1}\",\n indexText: \"{0} / {1}\",\n panelDynamicProgressText: \"Osio {0} / {1}\",\n panelDynamicTabTextFormat: \"Paneeli {panelIndex}\",\n questionsProgressText: \"Olet vastannut {0} / {1} kysymykseen.\",\n emptySurvey: \"Tässä kyselyssä ei ole yhtään näkyvillä olevaa sivua tai kysymystä.\",\n completingSurvey: \"Kiitos kyselyyn vastaamisesta!\",\n completingSurveyBefore: \"Tietojemme mukaan olet jo suorittanut tämän kyselyn.\",\n loadingSurvey: \"Kyselyä ladataan palvelimelta...\",\n placeholder: \"Valitse...\",\n ratingOptionsCaption: \"Arvioi napauttamalla tätä...\",\n value: \"arvo\",\n requiredError: \"Vastaa kysymykseen, kiitos.\",\n requiredErrorInPanel: \"Vastaa ainakin yhteen kysymykseen.\",\n requiredInAllRowsError: \"Vastaa kysymyksiin kaikilla riveillä.\",\n eachRowUniqueError: \"Jokaisella rivillä on oltava yksilöllinen arvo.\",\n numericError: \"Arvon tulee olla numeerinen.\",\n minError: \"Arvo ei saa olla pienempi kuin {0}\",\n maxError: \"Arvo ei saa olla suurempi kuin {0}\",\n textMinLength: \"Syötä vähintään {0} merkkiä.\",\n textMaxLength: \"Älä syötä yli {0} merkkiä.\",\n textMinMaxLength: \"Syötä vähintään {0} ja enintään {1} merkkiä.\",\n minRowCountError: \"Täytä vähintään {0} riviä.\",\n minSelectError: \"Valitse vähintään {0} vaihtoehtoa.\",\n maxSelectError: \"Valitse enintään {0} vaihtoehtoa.\",\n numericMinMax: \"Luvun '{0}' tulee olla vähintään {1} ja korkeintaan {2}.\",\n numericMin: \"Luvun '{0}' tulee olla vähintään {1}.\",\n numericMax: \"Luvun '{0}' tulee olla korkeintaan {1}.\",\n invalidEmail: \"Syötä validi sähköpostiosoite.\",\n invalidExpression: \"Lausekkeen: {0} pitäisi palauttaa 'true'.\",\n urlRequestError: \"Pyyntö palautti virheen {0}. {1}\",\n urlGetChoicesError: \"Pyyntö palautti tyhjän tiedoston tai 'path'-asetus on väärä\",\n exceedMaxSize: \"Tiedoston koko ei saa olla suurempi kuin {0}.\",\n noUploadFilesHandler: \"Tiedostoja ei voi ladata. Lisää käsittelijä onUploadFiles-tapahtumalle.\",\n otherRequiredError: \"Tarkenna vastaustasi tekstikenttään.\",\n uploadingFile: \"Tiedostoa lähetetään. Odota muutama sekunti ja yritä uudelleen.\",\n loadingFile: \"Ladataan...\",\n chooseFile: \"Valitse tiedosto(t)...\",\n noFileChosen: \"Ei tiedostoa valittuna\",\n filePlaceholder: \"Pudota tiedosto tähän tai lataa tiedosto napsauttamalla alla olevaa painiketta.\",\n confirmDelete: \"Haluatko poistaa osion?\",\n keyDuplicationError: \"Tämä arvo on jo käytössä. Syötä toinen arvo.\",\n addColumn: \"Lisää sarake\",\n addRow: \"Lisää rivi\",\n removeRow: \"Poista\",\n emptyRowsText: \"Ei rivejä\",\n addPanel: \"Lisää uusi\",\n removePanel: \"Poista\",\n showDetails: \"Näytä tiedot\",\n hideDetails: \"Piilota tiedot\",\n choices_Item: \"kohde\",\n matrix_column: \"Sarake\",\n matrix_row: \"Rivi\",\n multipletext_itemname: \"teksti\",\n savingData: \"Tietoja tallennetaan palvelimelle...\",\n savingDataError: \"Tapahtui virhe, emmekä voineet tallentaa kyselyn tietoja.\",\n savingDataSuccess: \"Tiedot tallennettiin onnistuneesti!\",\n savingExceedSize: \"Vastauksesi ylittää 64 kt. Pienennä tiedostojesi kokoa ja yritä uudelleen tai ota yhteyttä kyselyn omistajaan.\",\n saveAgainButton: \"Yritä uudelleen\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Olet käyttänyt {0} tällä sivulla ja yhteensä {1}.\",\n timerSpentPage: \"Olet käyttänyt {0} tällä sivulla.\",\n timerSpentSurvey: \"Olet käyttänyt yhteensä {0}.\",\n timerLimitAll: \"Olet käyttänyt tällä sivulla {0} / {1} ja yhteensä {2} / {3}.\",\n timerLimitPage: \"Olet käyttänyt {0} / {1} tällä sivulla.\",\n timerLimitSurvey: \"Olet käyttänyt yhteensä {0} / {1}.\",\n clearCaption: \"Tyhjennä\",\n signaturePlaceHolder: \"Allekirjoita tähän\",\n signaturePlaceHolderReadOnly: \"Ei allekirjoitusta\",\n chooseFileCaption: \"Valitse tiedosto\",\n takePhotoCaption: \"Ota valokuva\",\n photoPlaceholder: \"Napsauta alla olevaa painiketta ottaaksesi valokuvan kameralla.\",\n fileOrPhotoPlaceholder: \"Vedä ja pudota tai valitse ladattava tiedosto tai ota valokuva kameralla.\",\n replaceFileCaption: \"Korvaa tiedosto\",\n removeFileCaption: \"Poista tämä tiedosto\",\n booleanCheckedLabel: \"Kyllä\",\n booleanUncheckedLabel: \"Ei\",\n confirmRemoveFile: \"Haluatko varmasti poistaa tämän tiedoston: {0}?\",\n confirmRemoveAllFiles: \"Haluatko varmasti poistaa kaikki tiedostot?\",\n questionTitlePatternText: \"Kysymyksen otsikko\",\n modalCancelButtonText: \"Peruuta\",\n modalApplyButtonText: \"Käytä\",\n filterStringPlaceholder: \"Hae kirjoittamalla...\",\n emptyMessage: \"Ei näytettäviä tietoja\",\n noEntriesText: \"Merkintöjä ei ole vielä.\\nLisää uusi merkintä napsauttamalla alla olevaa painiketta.\",\n noEntriesReadonlyText: \"Merkintöjä ei ole.\",\n more: \"Enemmän\",\n tagboxDoneButtonCaption: \"OKEI\",\n selectToRankEmptyRankedAreaText: \"Kaikki valinnat asetetaan paremmuusjärjestykseen\",\n selectToRankEmptyUnrankedAreaText: \"Vedä ja pudota vaihtoehdot tähän luokitellaksesi ne\",\n ok: \"OKEI\",\n cancel: \"Perua\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"fi\"] = finnishSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"fi\"] = \"suomi\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Paneeli {panelIndex}\"\n// emptyMessage: \"No data to display\" => \"Ei näytettäviä tietoja\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Merkintöjä ei ole.\"\n// more: \"More\" => \"Enemmän\"\n// tagboxDoneButtonCaption: \"OK\" => \"OKEI\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Kaikki valinnat asetetaan paremmuusjärjestykseen\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Vedä ja pudota vaihtoehdot tähän luokitellaksesi ne\"// takePhotoCaption: \"Take Photo\" => \"Ota valokuva\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Napsauta alla olevaa painiketta ottaaksesi valokuvan kameralla.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Vedä ja pudota tai valitse ladattava tiedosto tai ota valokuva kameralla.\"\n// replaceFileCaption: \"Replace file\" => \"Korvaa tiedosto\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Jokaisella rivillä on oltava yksilöllinen arvo.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Tiedostoja ei voi ladata. Lisää käsittelijä onUploadFiles-tapahtumalle.\"\n// showDetails: \"Show Details\" => \"Näytä tiedot\"\n// hideDetails: \"Hide Details\" => \"Piilota tiedot\"\n// ok: \"OK\" => \"OKEI\"\n// cancel: \"Cancel\" => \"Perua\"\n// refuseItemText: \"Refuse to answer\" => \"Kieltäydy vastaamasta\"\n// dontKnowItemText: \"Don't know\" => \"Ei tiedä\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Vastauksesi ylittää 64 kt. Pienennä tiedostojesi kokoa ja yritä uudelleen tai ota yhteyttä kyselyn omistajaan.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Ei allekirjoitusta\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/french.ts\":\n/*!************************************!*\\\n !*** ./src/localization/french.ts ***!\n \\************************************/\n/*! exports provided: frenchSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"frenchSurveyStrings\", function() { return frenchSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar frenchSurveyStrings = {\n pagePrevText: \"Précédent\",\n pageNextText: \"Suivant\",\n completeText: \"Terminer\",\n previewText: \"Aperçu\",\n editText: \"Modifier\",\n startSurveyText: \"Commencer\",\n otherItemText: \"Autre (préciser)\",\n noneItemText: \"Aucun\",\n refuseItemText: \"Refuser de répondre\",\n dontKnowItemText: \"Sais pas\",\n selectAllItemText: \"Tout sélectionner\",\n progressText: \"Page {0} sur {1}\",\n indexText: \"{0} sur {1}\",\n panelDynamicProgressText: \"Enregistrement {0} sur {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"{0}/{1} question(s) répondue(s)\",\n emptySurvey: \"Il n'y a ni page visible ni question visible dans ce questionnaire\",\n completingSurvey: \"Merci d'avoir répondu au questionnaire !\",\n completingSurveyBefore: \"Nos données indiquent que vous avez déjà rempli ce questionnaire.\",\n loadingSurvey: \"Le questionnaire est en cours de chargement...\",\n placeholder: \"Choisissez...\",\n ratingOptionsCaption: \"Appuyez ici pour noter...\",\n value: \"valeur\",\n requiredError: \"La réponse à cette question est obligatoire.\",\n requiredErrorInPanel: \"Merci de répondre au moins à une question.\",\n requiredInAllRowsError: \"Toutes les lignes sont obligatoires\",\n eachRowUniqueError: \"Chaque ligne doit avoir une valeur unique.\",\n numericError: \"La réponse doit être un nombre.\",\n minError: \"La valeur ne doit pas être inférieure à {0}\",\n maxError: \"La valeur ne doit pas être supérieure à {0}\",\n textMinLength: \"Merci de saisir au moins {0} caractères.\",\n textMaxLength: \"Merci de saisir moins de {0} caractères.\",\n textMinMaxLength: \"Merci de saisir entre {0} et {1} caractères.\",\n minRowCountError: \"Merci de compléter au moins {0} lignes.\",\n minSelectError: \"Merci de sélectionner au minimum {0} réponses.\",\n maxSelectError: \"Merci de sélectionner au maximum {0} réponses.\",\n numericMinMax: \"Votre réponse '{0}' doit être supérieure ou égale à {1} et inférieure ou égale à {2}\",\n numericMin: \"Votre réponse '{0}' doit être supérieure ou égale à {1}\",\n numericMax: \"Votre réponse '{0}' doit être inférieure ou égale à {1}\",\n invalidEmail: \"Merci d'entrer une adresse mail valide.\",\n invalidExpression: \"L'expression: {0} doit retourner 'true'.\",\n urlRequestError: \"La requête a renvoyé une erreur '{0}'. {1}\",\n urlGetChoicesError: \"La requête a renvoyé des données vides ou la propriété 'path' est incorrecte\",\n exceedMaxSize: \"La taille du fichier ne doit pas excéder {0}.\",\n noUploadFilesHandler: \"Les fichiers ne peuvent pas être téléchargés. Veuillez ajouter un gestionnaire pour l’événement 'onUploadFiles'.\",\n otherRequiredError: \"Merci de préciser le champ 'Autre'.\",\n uploadingFile: \"Votre fichier est en cours de chargement. Merci d'attendre quelques secondes et de réessayer.\",\n loadingFile: \"Chargement...\",\n chooseFile: \"Ajouter des fichiers...\",\n noFileChosen: \"Aucun fichier ajouté\",\n filePlaceholder: \"Déposez un fichier ici ou cliquez sur le bouton ci-dessous pour charger le fichier.\",\n confirmDelete: \"Voulez-vous supprimer cet enregistrement ?\",\n keyDuplicationError: \"Cette valeur doit être unique.\",\n addColumn: \"Ajouter une colonne\",\n addRow: \"Ajouter une ligne\",\n removeRow: \"Supprimer\",\n emptyRowsText: \"Il n'y a pas de lignes.\",\n addPanel: \"Ajouter\",\n removePanel: \"Supprimer\",\n showDetails: \"Afficher les détails\",\n hideDetails: \"Masquer les détails\",\n choices_Item: \"item\",\n matrix_column: \"Colonne\",\n matrix_row: \"Ligne\",\n multipletext_itemname: \"texte\",\n savingData: \"Les résultats sont en cours de sauvegarde sur le serveur...\",\n savingDataError: \"Une erreur est survenue et a empêché la sauvegarde des résultats.\",\n savingDataSuccess: \"Les résultats ont bien été enregistrés !\",\n savingExceedSize: \"Votre réponse dépasse 64 Ko. Veuillez réduire la taille de votre ou vos fichiers et réessayer ou contacter un propriétaire de sondage.\",\n saveAgainButton: \"Réessayer\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Vous avez passé {0} sur cette page et {1} au total.\",\n timerSpentPage: \"Vous avez passé {0} sur cette page.\",\n timerSpentSurvey: \"Vous avez passé {0} au total.\",\n timerLimitAll: \"Vous avez passé {0} sur {1} sur cette page et {2} sur {3} au total.\",\n timerLimitPage: \"Vous avez passé {0} sur {1} sur cette page.\",\n timerLimitSurvey: \"Vous avez passé {0} sur {1} au total.\",\n clearCaption: \"Vider\",\n signaturePlaceHolder: \"Signez ici\",\n signaturePlaceHolderReadOnly: \"Pas de signature\",\n chooseFileCaption: \"Ajouter un fichier\",\n takePhotoCaption: \"Prendre une photo\",\n photoPlaceholder: \"Cliquez sur le bouton ci-dessous pour prendre une photo à l’aide de l’appareil photo.\",\n fileOrPhotoPlaceholder: \"Faites glisser et déposez ou sélectionnez un fichier à télécharger ou à prendre une photo à l’aide de l’appareil photo.\",\n replaceFileCaption: \"Remplacer le fichier\",\n removeFileCaption: \"Enlever ce fichier\",\n booleanCheckedLabel: \"Oui\",\n booleanUncheckedLabel: \"Non\",\n confirmRemoveFile: \"Êtes-vous certains de vouloir supprimer ce fichier : {0}?\",\n confirmRemoveAllFiles: \"Êtes-vous certains de vouloir supprimer tous les fichiers?\",\n questionTitlePatternText: \"Titre de la question\",\n modalCancelButtonText: \"Annuler\",\n modalApplyButtonText: \"Appliquer\",\n filterStringPlaceholder: \"Tapez pour rechercher...\",\n emptyMessage: \"Aucune donnée à afficher\",\n noEntriesText: \"Il n'y a pas encore d'entrées.\\nCliquez sur le bouton ci-dessous pour ajouter une nouvelle entrée.\",\n noEntriesReadonlyText: \"Il n’y a pas d’entrées.\",\n more: \"Plus\",\n tagboxDoneButtonCaption: \"D’ACCORD\",\n selectToRankEmptyRankedAreaText: \"Tous les choix sont classés\",\n selectToRankEmptyUnrankedAreaText: \"Faites glisser et déposez les choix ici pour les classer\",\n ok: \"D’ACCORD\",\n cancel: \"Annuler\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"fr\"] = frenchSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"fr\"] = \"français\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// emptyMessage: \"No data to display\" => \"Aucune donnée à afficher\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Il n’y a pas d’entrées.\"\n// more: \"More\" => \"Plus\"\n// tagboxDoneButtonCaption: \"OK\" => \"D’ACCORD\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Tous les choix sont classés\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Faites glisser et déposez les choix ici pour les classer\"// takePhotoCaption: \"Take Photo\" => \"Prendre une photo\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Cliquez sur le bouton ci-dessous pour prendre une photo à l’aide de l’appareil photo.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Faites glisser et déposez ou sélectionnez un fichier à télécharger ou à prendre une photo à l’aide de l’appareil photo.\"\n// replaceFileCaption: \"Replace file\" => \"Remplacer le fichier\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Chaque ligne doit avoir une valeur unique.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Les fichiers ne peuvent pas être téléchargés. Veuillez ajouter un gestionnaire pour l’événement 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Afficher les détails\"\n// hideDetails: \"Hide Details\" => \"Masquer les détails\"\n// ok: \"OK\" => \"D’ACCORD\"\n// cancel: \"Cancel\" => \"Annuler\"\n// refuseItemText: \"Refuse to answer\" => \"Refuser de répondre\"\n// dontKnowItemText: \"Don't know\" => \"Sais pas\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Votre réponse dépasse 64 Ko. Veuillez réduire la taille de votre ou vos fichiers et réessayer ou contacter un propriétaire de sondage.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Pas de signature\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/georgian.ts\":\n/*!**************************************!*\\\n !*** ./src/localization/georgian.ts ***!\n \\**************************************/\n/*! exports provided: georgianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"georgianSurveyStrings\", function() { return georgianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar georgianSurveyStrings = {\n pagePrevText: \"უკან\",\n pageNextText: \"შემდეგ\",\n completeText: \"დასრულება\",\n previewText: \"გადახედვა\",\n editText: \"რედაქტირება\",\n startSurveyText: \"დაქოქვა\",\n otherItemText: \"სხვა (გთხოვთ მიუთითეთ)\",\n noneItemText: \"არცერთი\",\n refuseItemText: \"უარი პასუხზე\",\n dontKnowItemText: \"არ ვიცი\",\n selectAllItemText: \"ყველას მონიშნა\",\n progressText: \"გვერდი {0} / {1}\",\n indexText: \"{1} {0}\",\n panelDynamicProgressText: \"{1} {0}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"უპასუხეთ {0}/{1} კითხვებს\",\n emptySurvey: \"არცერთი კითხვა არ არის.\",\n completingSurvey: \"გმადლობთ კითხვარის შევსებისთვის!\",\n completingSurveyBefore: \"ჩვენი ჩანაწერები აჩვენებს, რომ თქვენ უკვე დაასრულეთ ეს გამოკითხვა.\",\n loadingSurvey: \"ჩატვირთვა სერვერიდან...\",\n placeholder: \"არჩევა...\",\n ratingOptionsCaption: \"აირჩიეთ...\",\n value: \"ღირებულება\",\n requiredError: \"გთხოვთ უპასუხეთ კითხვას.\",\n requiredErrorInPanel: \"საჭიროა პასუხი: უპასუხეთ მინიმუმ ერთ კითხვას.\",\n requiredInAllRowsError: \"საჭიროა პასუხი: უპასუხეთ კითხვებს ყველა რიგში.\",\n eachRowUniqueError: \"თითოეულ რიგს უნდა ჰქონდეს უნიკალური მნიშვნელობა.\",\n numericError: \"პასუხი უნდა იყოს რიცხვი.\",\n minError: \"ღირებულება არ უნდა იყოს ნაკლები {0}\",\n maxError: \"ღირებულება არ უნდა იყოს {0}\",\n textMinLength: \"გთხოვთ შეიყვანეთ არანაკლებ {0} სიმბოლო.\",\n textMaxLength: \"გთხოვთ, შეიყვანოთ არაუმეტეს {0} სიმბოლო(ებ)ი.\",\n textMinMaxLength: \"გთხოვთ, შეიყვანოთ მინიმუმ {0} და არაუმეტეს {1} სიმბოლო.\",\n minRowCountError: \"გთხოვთ შეავსოთ მინიმუმ {0} რიგი( ებ)ი.\",\n minSelectError: \"გთხოვთ აირჩიეთ არანაკლებ {0} ვარიანტი.\",\n maxSelectError: \"გთხოვთ აირჩიეთ არაუმეტეს {0} ვარიანტი.\",\n numericMinMax: \"'{0}' უნდა იყოს მეტი ან ტოლი, ვიდრე {1}, და ნაკლები ან ტოლი ვიდრე {2}\",\n numericMin: \"'{0}' უნდა იყოს მეტი ან ტოლი ვიდრე {1}\",\n numericMax: \"'{0}' უნდა იყოს ნაკლები ან ტოლი ვიდრე {1}\",\n invalidEmail: \"გთხოვთ შეიყვანოთ ელ. ფოსტის რეალური მისამართი.\",\n invalidExpression: \"გამოთქმა: {0} უნდა დაბრუნდეს \\\"ჭეშმარიტი\\\".\",\n urlRequestError: \"მოთხოვნა დაუბრუნდა შეცდომას '{0}'. {1}\",\n urlGetChoicesError: \"მოთხოვნამ დაუბრუნა ცარიელი მონაცემები ან \\\"ბილიკის\\\" ქონება არასწორია\",\n exceedMaxSize: \"ფაილის ზომა არ უნდა აღემატებოდეს {0}.\",\n noUploadFilesHandler: \"ფაილების ატვირთვა შეუძლებელია. გთხოვთ, დაამატოთ დამმუშავებელი 'onUploadFiles' ღონისძიებისთვის.\",\n otherRequiredError: \"საჭიროა პასუხი: შეიყვანეთ სხვა მნიშვნელობა.\",\n uploadingFile: \"თქვენი ფაილი ატვირთვაა. გთხოვთ დაელოდოთ რამდენიმე წამს და კიდევ სცადოთ.\",\n loadingFile: \"იტვირთება...\",\n chooseFile: \"აირჩიეთ ფაილი...\",\n noFileChosen: \"ფაილის არჩევა არ არის\",\n filePlaceholder: \"გადაიტანეთ და ჩამოაგდეთ ფაილი აქ ან დააჭირეთ ქვემოთ მოცემულ ღილაკს და აირჩიეთ ფაილი ასატვირთად.\",\n confirmDelete: \"გსურთ ჩანაწერის წაშლა?\",\n keyDuplicationError: \"ეს მნიშვნელობა უნდა იყოს უნიკალური.\",\n addColumn: \"სვეტის დამატება\",\n addRow: \"რიგის დამატება\",\n removeRow: \"წაშლა\",\n emptyRowsText: \"რიგები არ არის.\",\n addPanel: \"ახალი დამატება\",\n removePanel: \"წაშლა\",\n showDetails: \"დეტალების ჩვენება\",\n hideDetails: \"დეტალების დამალვა\",\n choices_Item: \"ნივთი\",\n matrix_column: \"სვეტი\",\n matrix_row: \"რიგი\",\n multipletext_itemname: \"ტექსტი\",\n savingData: \"შედეგები ინახება სერვერზე...\",\n savingDataError: \"დაფიქსირდა შეცდომა და შედეგი ვერ შევინახავდით.\",\n savingDataSuccess: \"შედეგები წარმატებით გადაარჩინეს!\",\n savingExceedSize: \"თქვენი პასუხი აღემატება 64KB. გთხოვთ, შეამციროთ თქვენი ფაილ(ებ)ის ზომა და სცადოთ ხელახლა ან დაუკავშირდეთ გამოკითხვის მფლობელს.\",\n saveAgainButton: \"კიდევ სცადე\",\n timerMin: \"წთ\",\n timerSec: \"წმ\",\n timerSpentAll: \"თქვენ დახარჯეთ {0} ამ გვერდზე და ჯამში {1}.\",\n timerSpentPage: \"თქვენ {0} დახარჯეთ ამ გვერდზე.\",\n timerSpentSurvey: \"თქვენ სულ {0} დახარჯეთ.\",\n timerLimitAll: \"თქვენ დახარჯეთ {1} {0} ამ გვერდზე და ჯამში {3} {2}.\",\n timerLimitPage: \"თქვენ ამ გვერდზე {1} {0} დახარჯეთ.\",\n timerLimitSurvey: \"თქვენ სულ {1} {0} დახარჯეთ.\",\n clearCaption: \"მოწმენდილი ცა\",\n signaturePlaceHolder: \"შესვლა აქ\",\n signaturePlaceHolderReadOnly: \"ხელმოწერა არ არის\",\n chooseFileCaption: \"ვაუჩერის ნახვა\",\n takePhotoCaption: \"გადაიღეთ ფოტო\",\n photoPlaceholder: \"დააჭირეთ ქვემოთ მოცემულ ღილაკს, რომ გადაიღოთ ფოტო კამერის გამოყენებით.\",\n fileOrPhotoPlaceholder: \"გადაიტანეთ და ჩამოაგდეთ ან შეარჩიეთ ფაილი კამერის გამოყენებით ფოტოს ასატვირთად ან გადასაღებად.\",\n replaceFileCaption: \"ფაილის შეცვლა\",\n removeFileCaption: \"ამ ფაილის წაშლა\",\n booleanCheckedLabel: \"დიახ\",\n booleanUncheckedLabel: \"არა\",\n confirmRemoveFile: \"დარწმუნებული ხართ, რომ გსურთ ამ ფაილის წაშლა: {0}?\",\n confirmRemoveAllFiles: \"დარწმუნებული ხართ, რომ გსურთ ყველა ფაილის წაშლა?\",\n questionTitlePatternText: \"კითხვის სათაური\",\n modalCancelButtonText: \"გაუქმება\",\n modalApplyButtonText: \"მიღება\",\n filterStringPlaceholder: \"ჩაწერეთ ძებნა...\",\n emptyMessage: \"მონაცემები არ არის საჩვენებლად\",\n noEntriesText: \"ჯერ არ არის ჩანაწერები.\\nდააჭირეთ ქვემოთ მოცემულ ღილაკს, რომ დაამატოთ ახალი ჩანაწერი.\",\n noEntriesReadonlyText: \"არ არსებობს ჩანაწერები.\",\n more: \"სრულად\",\n tagboxDoneButtonCaption: \"კარგი\",\n selectToRankEmptyRankedAreaText: \"ყველა არჩევანი რანჟირებულია\",\n selectToRankEmptyUnrankedAreaText: \"გადაიტანეთ და ჩამოაგდეთ არჩევანი აქ, რომ დაასახელოთ ისინი\",\n ok: \"კარგი\",\n cancel: \"გაუქმება\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ka\"] = georgianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ka\"] = \"ქართული\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// previewText: \"Preview\" => \"გადახედვა\"\n// editText: \"Edit\" => \"რედაქტირება\"\n// startSurveyText: \"Start\" => \"დაქოქვა\"\n// noneItemText: \"None\" => \"არცერთი\"\n// selectAllItemText: \"Select All\" => \"ყველას მონიშნა\"\n// indexText: \"{0} of {1}\" => \"{1} {0}\"\n// panelDynamicProgressText: \"{0} of {1}\" => \"{1} {0}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// questionsProgressText: \"Answered {0}/{1} questions\" => \"უპასუხეთ {0}/{1} კითხვებს\"\n// completingSurveyBefore: \"Our records show that you have already completed this survey.\" => \"ჩვენი ჩანაწერები აჩვენებს, რომ თქვენ უკვე დაასრულეთ ეს გამოკითხვა.\"\n// ratingOptionsCaption: \"Select...\" => \"აირჩიეთ...\"\n// value: \"value\" => \"ღირებულება\"\n// requiredErrorInPanel: \"Response required: answer at least one question.\" => \"საჭიროა პასუხი: უპასუხეთ მინიმუმ ერთ კითხვას.\"\n// requiredInAllRowsError: \"Response required: answer questions in all rows.\" => \"საჭიროა პასუხი: უპასუხეთ კითხვებს ყველა რიგში.\"\n// minError: \"The value should not be less than {0}\" => \"ღირებულება არ უნდა იყოს ნაკლები {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"ღირებულება არ უნდა იყოს {0}\"\n// textMaxLength: \"Please enter no more than {0} character(s).\" => \"გთხოვთ, შეიყვანოთ არაუმეტეს {0} სიმბოლო(ებ)ი.\"\n// textMinMaxLength: \"Please enter at least {0} and no more than {1} characters.\" => \"გთხოვთ, შეიყვანოთ მინიმუმ {0} და არაუმეტეს {1} სიმბოლო.\"\n// minRowCountError: \"Please fill in at least {0} row(s).\" => \"გთხოვთ შეავსოთ მინიმუმ {0} რიგი( ებ)ი.\"\n// invalidExpression: \"The expression: {0} should return 'true'.\" => \"გამოთქმა: {0} უნდა დაბრუნდეს \\\"ჭეშმარიტი\\\".\"\n// urlRequestError: \"The request returned error '{0}'. {1}\" => \"მოთხოვნა დაუბრუნდა შეცდომას '{0}'. {1}\"\n// urlGetChoicesError: \"The request returned empty data or the 'path' property is incorrect\" => \"მოთხოვნამ დაუბრუნა ცარიელი მონაცემები ან \\\"ბილიკის\\\" ქონება არასწორია\"\n// exceedMaxSize: \"The file size should not exceed {0}.\" => \"ფაილის ზომა არ უნდა აღემატებოდეს {0}.\"\n// otherRequiredError: \"Response required: enter another value.\" => \"საჭიროა პასუხი: შეიყვანეთ სხვა მნიშვნელობა.\"\n// uploadingFile: \"Your file is uploading. Please wait several seconds and try again.\" => \"თქვენი ფაილი ატვირთვაა. გთხოვთ დაელოდოთ რამდენიმე წამს და კიდევ სცადოთ.\"\n// loadingFile: \"Loading...\" => \"იტვირთება...\"\n// chooseFile: \"Choose file(s)...\" => \"აირჩიეთ ფაილი...\"\n// noFileChosen: \"No file chosen\" => \"ფაილის არჩევა არ არის\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"გადაიტანეთ და ჩამოაგდეთ ფაილი აქ ან დააჭირეთ ქვემოთ მოცემულ ღილაკს და აირჩიეთ ფაილი ასატვირთად.\"\n// confirmDelete: \"Do you want to delete the record?\" => \"გსურთ ჩანაწერის წაშლა?\"\n// keyDuplicationError: \"This value should be unique.\" => \"ეს მნიშვნელობა უნდა იყოს უნიკალური.\"\n// addColumn: \"Add Column\" => \"სვეტის დამატება\"\n// addRow: \"Add Row\" => \"რიგის დამატება\"\n// removeRow: \"Remove\" => \"წაშლა\"\n// emptyRowsText: \"There are no rows.\" => \"რიგები არ არის.\"\n// addPanel: \"Add new\" => \"ახალი დამატება\"\n// removePanel: \"Remove\" => \"წაშლა\"\n// choices_Item: \"item\" => \"ნივთი\"\n// matrix_column: \"Column\" => \"სვეტი\"\n// matrix_row: \"Row\" => \"რიგი\"\n// multipletext_itemname: \"text\" => \"ტექსტი\"\n// savingData: \"The results are being saved on the server...\" => \"შედეგები ინახება სერვერზე...\"\n// savingDataError: \"An error occurred and we could not save the results.\" => \"დაფიქსირდა შეცდომა და შედეგი ვერ შევინახავდით.\"\n// savingDataSuccess: \"The results were saved successfully!\" => \"შედეგები წარმატებით გადაარჩინეს!\"\n// saveAgainButton: \"Try again\" => \"კიდევ სცადე\"\n// timerMin: \"min\" => \"წთ\"\n// timerSec: \"sec\" => \"წმ\"\n// timerSpentAll: \"You have spent {0} on this page and {1} in total.\" => \"თქვენ დახარჯეთ {0} ამ გვერდზე და ჯამში {1}.\"\n// timerSpentPage: \"You have spent {0} on this page.\" => \"თქვენ {0} დახარჯეთ ამ გვერდზე.\"\n// timerSpentSurvey: \"You have spent {0} in total.\" => \"თქვენ სულ {0} დახარჯეთ.\"\n// timerLimitAll: \"You have spent {0} of {1} on this page and {2} of {3} in total.\" => \"თქვენ დახარჯეთ {1} {0} ამ გვერდზე და ჯამში {3} {2}.\"\n// timerLimitPage: \"You have spent {0} of {1} on this page.\" => \"თქვენ ამ გვერდზე {1} {0} დახარჯეთ.\"\n// timerLimitSurvey: \"You have spent {0} of {1} in total.\" => \"თქვენ სულ {1} {0} დახარჯეთ.\"\n// clearCaption: \"Clear\" => \"მოწმენდილი ცა\"\n// signaturePlaceHolder: \"Sign here\" => \"შესვლა აქ\"\n// chooseFileCaption: \"Choose file\" => \"ვაუჩერის ნახვა\"\n// removeFileCaption: \"Remove this file\" => \"ამ ფაილის წაშლა\"\n// booleanCheckedLabel: \"Yes\" => \"დიახ\"\n// booleanUncheckedLabel: \"No\" => \"არა\"\n// confirmRemoveFile: \"Are you sure that you want to remove this file: {0}?\" => \"დარწმუნებული ხართ, რომ გსურთ ამ ფაილის წაშლა: {0}?\"\n// confirmRemoveAllFiles: \"Are you sure that you want to remove all files?\" => \"დარწმუნებული ხართ, რომ გსურთ ყველა ფაილის წაშლა?\"\n// questionTitlePatternText: \"Question Title\" => \"კითხვის სათაური\"\n// modalCancelButtonText: \"Cancel\" => \"გაუქმება\"\n// modalApplyButtonText: \"Apply\" => \"მიღება\"\n// filterStringPlaceholder: \"Type to search...\" => \"ჩაწერეთ ძებნა...\"\n// emptyMessage: \"No data to display\" => \"მონაცემები არ არის საჩვენებლად\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"ჯერ არ არის ჩანაწერები.\\nდააჭირეთ ქვემოთ მოცემულ ღილაკს, რომ დაამატოთ ახალი ჩანაწერი.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"არ არსებობს ჩანაწერები.\"\n// more: \"More\" => \"სრულად\"\n// tagboxDoneButtonCaption: \"OK\" => \"კარგი\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"ყველა არჩევანი რანჟირებულია\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"გადაიტანეთ და ჩამოაგდეთ არჩევანი აქ, რომ დაასახელოთ ისინი\"// takePhotoCaption: \"Take Photo\" => \"გადაიღეთ ფოტო\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"დააჭირეთ ქვემოთ მოცემულ ღილაკს, რომ გადაიღოთ ფოტო კამერის გამოყენებით.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"გადაიტანეთ და ჩამოაგდეთ ან შეარჩიეთ ფაილი კამერის გამოყენებით ფოტოს ასატვირთად ან გადასაღებად.\"\n// replaceFileCaption: \"Replace file\" => \"ფაილის შეცვლა\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"თითოეულ რიგს უნდა ჰქონდეს უნიკალური მნიშვნელობა.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"ფაილების ატვირთვა შეუძლებელია. გთხოვთ, დაამატოთ დამმუშავებელი 'onUploadFiles' ღონისძიებისთვის.\"\n// showDetails: \"Show Details\" => \"დეტალების ჩვენება\"\n// hideDetails: \"Hide Details\" => \"დეტალების დამალვა\"\n// ok: \"OK\" => \"კარგი\"\n// cancel: \"Cancel\" => \"გაუქმება\"\n// refuseItemText: \"Refuse to answer\" => \"უარი პასუხზე\"\n// dontKnowItemText: \"Don't know\" => \"არ ვიცი\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"თქვენი პასუხი აღემატება 64KB. გთხოვთ, შეამციროთ თქვენი ფაილ(ებ)ის ზომა და სცადოთ ხელახლა ან დაუკავშირდეთ გამოკითხვის მფლობელს.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"ხელმოწერა არ არის\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/german.ts\":\n/*!************************************!*\\\n !*** ./src/localization/german.ts ***!\n \\************************************/\n/*! exports provided: germanSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"germanSurveyStrings\", function() { return germanSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar germanSurveyStrings = {\n pagePrevText: \"Zurück\",\n pageNextText: \"Weiter\",\n completeText: \"Abschließen\",\n previewText: \"Vorschau\",\n editText: \"Bearbeiten\",\n startSurveyText: \"Start\",\n otherItemText: \"Sonstiges (Bitte angeben)\",\n noneItemText: \"Nichts trifft zu\",\n refuseItemText: \"Antwort verweigern\",\n dontKnowItemText: \"Weiß ich nicht\",\n selectAllItemText: \"Alles auswählen\",\n progressText: \"Seite {0} von {1}\",\n indexText: \"{0} von {1}\",\n panelDynamicProgressText: \"Eintrag {0} von {1}\",\n panelDynamicTabTextFormat: \"Bereich {panelIndex}\",\n questionsProgressText: \"{0}/{1} Fragen beantwortet\",\n emptySurvey: \"Es sind keine Fragen vorhanden.\",\n completingSurvey: \"Vielen Dank, dass Sie die Umfrage abgeschlossen haben!\",\n completingSurveyBefore: \"Sie haben diese Umfrage bereits abgeschlossen.\",\n loadingSurvey: \"Umfrage wird geladen...\",\n placeholder: \"Bitte auswählen...\",\n ratingOptionsCaption: \"Tippen Sie hier, um zu bewerten...\",\n value: \"Wert\",\n requiredError: \"Bitte beantworten Sie diese Frage.\",\n requiredErrorInPanel: \"Bitte beantworten Sie mindestens eine Frage.\",\n requiredInAllRowsError: \"Bitte beantworten Sie alle Fragen.\",\n eachRowUniqueError: \"Jede Zeile muss einen eindeutigen Wert haben.\",\n numericError: \"Der Wert muss eine Zahl sein.\",\n minError: \"Der Wert sollte nicht kleiner als {0} sein\",\n maxError: \"Der Wert sollte nicht größer als {0} sein\",\n textMinLength: \"Bitte geben Sie mindestens {0} Zeichen ein.\",\n textMaxLength: \"Bitte geben Sie nicht mehr als {0} Zeichen ein.\",\n textMinMaxLength: \"Bitte geben Sie mindestens {0} und maximal {1} Zeichen ein.\",\n minRowCountError: \"Bitte machen Sie in mindestens {0} Zeilen eine Eingabe.\",\n minSelectError: \"Bitte wählen Sie mindestens {0} Antwort(en) aus.\",\n maxSelectError: \"Bitte wählen Sie nicht mehr als {0} Antwort(en) aus.\",\n numericMinMax: \"'{0}' muss größer oder gleich {1} und kleiner oder gleich {2} sein\",\n numericMin: \"'{0}' muss größer oder gleich {1} sein\",\n numericMax: \"'{0}' muss kleiner oder gleich {1} sein\",\n invalidEmail: \"Bitte geben Sie eine gültige E-Mail-Adresse ein.\",\n invalidExpression: \"Der Ausdruck: {0} muss den Wert 'wahr' zurückgeben.\",\n urlRequestError: \"Ein Netzwerkdienst hat folgenden Fehler zurückgegeben '{0}'. {1}\",\n urlGetChoicesError: \"Eine Netzwerkdienst hat ungültige Daten zurückgegeben\",\n exceedMaxSize: \"Die Datei darf nicht größer als {0} sein.\",\n noUploadFilesHandler: \"Dateien können nicht hochgeladen werden. Fügen Sie einen Handler für das Ereignis 'onUploadFiles' hinzu.\",\n otherRequiredError: \"Bitte geben Sie einen Wert an.\",\n uploadingFile: \"Bitte warten Sie bis der Upload Ihrer Dateien abgeschlossen ist.\",\n loadingFile: \"Wird hochgeladen...\",\n chooseFile: \"Datei(en) auswählen...\",\n noFileChosen: \"Keine Datei ausgewählt\",\n filePlaceholder: \"Legen Sie hier eine Datei ab oder klicken Sie auf die Schaltfläche unten, um die Datei zu laden.\",\n confirmDelete: \"Wollen Sie den Eintrag löschen?\",\n keyDuplicationError: \"Dieser Wert muss einmalig sein.\",\n addColumn: \"Spalte hinzufügen\",\n addRow: \"Zeile hinzufügen\",\n removeRow: \"Entfernen\",\n emptyRowsText: \"Es gibt keine Reihen.\",\n addPanel: \"Neu hinzufügen\",\n removePanel: \"Entfernen\",\n showDetails: \"Details anzeigen\",\n hideDetails: \"Details ausblenden\",\n choices_Item: \"Element\",\n matrix_column: \"Spalte\",\n matrix_row: \"Zeile\",\n multipletext_itemname: \"Text\",\n savingData: \"Die Ergebnisse werden auf dem Server gespeichert...\",\n savingDataError: \"Es ist ein Fehler aufgetreten. Die Ergebnisse konnten nicht gespeichert werden.\",\n savingDataSuccess: \"Die Ergebnisse wurden gespeichert!\",\n savingExceedSize: \"Ihre Antwort überschreitet 64 KB. Reduzieren Sie die Größe Ihrer Datei(en) und versuchen Sie es erneut, oder wenden Sie sich an den Umfragebesitzer.\",\n saveAgainButton: \"Erneut absenden\",\n timerMin: \"Min.\",\n timerSec: \"Sek.\",\n timerSpentAll: \"Sie waren {0} auf dieser Seite und brauchten insgesamt {1}.\",\n timerSpentPage: \"Sie waren {0} auf dieser Seite.\",\n timerSpentSurvey: \"Sie haben insgesamt {0} gebraucht.\",\n timerLimitAll: \"Sie waren {0} von {1} auf dieser Seite und brauchten insgesamt {2} von {3}.\",\n timerLimitPage: \"Sie waren {0} von {1} auf dieser Seite.\",\n timerLimitSurvey: \"Sie haben insgesamt {0} von {1} gebraucht.\",\n clearCaption: \"Auswahl entfernen\",\n signaturePlaceHolder: \"Hier unterschreiben\",\n signaturePlaceHolderReadOnly: \"Keine Unterschrift\",\n chooseFileCaption: \"Datei auswählen\",\n takePhotoCaption: \"Foto machen\",\n photoPlaceholder: \"Klicken Sie auf die Schaltfläche unten, um ein Foto mit der Kamera aufzunehmen.\",\n fileOrPhotoPlaceholder: \"Ziehen Sie eine Datei per Drag & Drop oder wählen Sie sie aus, um sie hochzuladen oder machen Sie ein Foto mit der Kamera.\",\n replaceFileCaption: \"Datei ersetzen\",\n removeFileCaption: \"Datei löschen\",\n booleanCheckedLabel: \"Ja\",\n booleanUncheckedLabel: \"Nein\",\n confirmRemoveFile: \"Sind Sie sicher, dass Sie diese Datei löschen möchten: {0}?\",\n confirmRemoveAllFiles: \"Sind Sie sicher, dass Sie alle Dateien löschen möchten?\",\n questionTitlePatternText: \"Fragentitel\",\n modalCancelButtonText: \"Abbrechen\",\n modalApplyButtonText: \"Anwenden\",\n filterStringPlaceholder: \"Tippen Sie, um zu suchen...\",\n emptyMessage: \"Es gibt noch keine Daten.\",\n noEntriesText: \"Es gibt noch keine Einträge.\\nKlicken Sie auf die Schaltfläche unten, um einen neuen Eintrag hinzuzufügen.\",\n noEntriesReadonlyText: \"Es gibt keine Einträge.\",\n more: \"Mehr\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Alle Auswahlmöglichkeiten sind in einer Rangfolge angeordnet\",\n selectToRankEmptyUnrankedAreaText: \"Ziehen Sie die Auswahl hierher, um sie zu ordnen\",\n ok: \"OK\",\n cancel: \"Abbrechen\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"de\"] = germanSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"de\"] = \"deutsch\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n\n\n/***/ }),\n\n/***/ \"./src/localization/greek.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/greek.ts ***!\n \\***********************************/\n/*! exports provided: greekSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"greekSurveyStrings\", function() { return greekSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar greekSurveyStrings = {\n pagePrevText: \"Προηγούμενο\",\n pageNextText: \"Επόμενο\",\n completeText: \"Ολοκλήρωση\",\n previewText: \"Προεπισκόπηση\",\n editText: \"Επεξεργασία\",\n startSurveyText: \"Αρχή\",\n otherItemText: \"Άλλο (παρακαλώ διευκρινίστε)\",\n noneItemText: \"Κανένας\",\n refuseItemText: \"Αρνηθείτε να απαντήσετε\",\n dontKnowItemText: \"Δεν ξέρω\",\n selectAllItemText: \"Επιλογή όλων\",\n progressText: \"Σελίδα {0} από {1}\",\n indexText: \"{0} από {1}\",\n panelDynamicProgressText: \"Εγγραφή {0} από {1}\",\n panelDynamicTabTextFormat: \"Πίνακας {panelIndex}\",\n questionsProgressText: \"Απαντήθηκαν {0} / {1} ερωτήσεις\",\n emptySurvey: \"Δεν υπάρχει καμία ορατή σελίδα ή ορατή ερώτηση σε αυτό το ερωτηματολόγιο.\",\n completingSurvey: \"Ευχαριστούμε για την συμπλήρωση αυτού του ερωτηματολογίου!\",\n completingSurveyBefore: \"Τα αρχεία μας δείχνουν ότι έχετε ήδη ολοκληρώσει αυτήν την έρευνα.\",\n loadingSurvey: \"Το ερωτηματολόγιο φορτώνεται απο το διακομιστή...\",\n placeholder: \"Επιλέξτε...\",\n ratingOptionsCaption: \"Πατήστε για να βαθμολογήσετε εδώ...\",\n value: \"τιμή\",\n requiredError: \"Παρακαλώ απαντήστε στην ερώτηση.\",\n requiredErrorInPanel: \"Απαντήστε σε τουλάχιστον μία ερώτηση.\",\n requiredInAllRowsError: \"Παρακαλώ απαντήστε τις ερωτήσεις σε όλες τις γραμμές.\",\n eachRowUniqueError: \"Κάθε γραμμή πρέπει να έχει μια μοναδική τιμή.\",\n numericError: \"Η τιμή πρέπει να είναι αριθμητική.\",\n minError: \"Η τιμή δεν πρέπει να είναι μικρότερη από {0}\",\n maxError: \"Η τιμή δεν πρέπει να είναι μεγαλύτερη από {0}\",\n textMinLength: \"Παρακαλώ συμπληρώστε τουλάχιστον {0} χαρακτήρες.\",\n textMaxLength: \"Εισαγάγετε λιγότερους από {0} χαρακτήρες.\",\n textMinMaxLength: \"Εισαγάγετε περισσότερους από {0} και λιγότερους από {1} χαρακτήρες.\",\n minRowCountError: \"Παρακαλώ συμπληρώστε τουλάχιστον {0} γραμμές.\",\n minSelectError: \"Παρακαλώ επιλέξτε τουλάχιστον {0} παραλλαγές.\",\n maxSelectError: \"Παρακαλώ επιλέξτε όχι παραπάνω απο {0} παραλλαγές.\",\n numericMinMax: \"Το '{0}' θα πρέπει να είναι ίσο ή μεγαλύτερο απο το {1} και ίσο ή μικρότερο απο το {2}\",\n numericMin: \"Το '{0}' πρέπει να είναι μεγαλύτερο ή ισο με το {1}\",\n numericMax: \"Το '{0}' πρέπει να είναι μικρότερο ή ίσο απο το {1}\",\n invalidEmail: \"Παρακαλώ δώστε μια αποδεκτή διεύθυνση e-mail.\",\n invalidExpression: \"Η έκφραση: {0} θα πρέπει να επιστρέψει 'true'.\",\n urlRequestError: \"Η αίτηση επέστρεψε σφάλμα '{0}'. {1}\",\n urlGetChoicesError: \"Η αίτηση επέστρεψε κενά δεδομένα ή η ιδιότητα 'μονοπάτι/path' είναι εσφαλμένη\",\n exceedMaxSize: \"Το μέγεθος του αρχείου δεν μπορεί να υπερβαίνει τα {0}.\",\n noUploadFilesHandler: \"Δεν είναι δυνατή η αποστολή αρχείων. Προσθέστε ένα πρόγραμμα χειρισμού για το συμβάν 'onUploadFiles'.\",\n otherRequiredError: \"Παρακαλώ συμπληρώστε την τιμή για το πεδίο 'άλλο'.\",\n uploadingFile: \"Το αρχείο σας ανεβαίνει. Παρακαλώ περιμένετε μερικά δευτερόλεπτα και δοκιμάστε ξανά.\",\n loadingFile: \"Φόρτωση...\",\n chooseFile: \"Επιλογή αρχείων ...\",\n noFileChosen: \"Δεν έχει επιλεγεί αρχείο\",\n filePlaceholder: \"Αποθέστε το αρχείο σας εδώ ή κάντε κλικ στο κουμπί παρακάτω για να φορτώσετε το αρχείο.\",\n confirmDelete: \"Θέλετε να διαγράψετε την εγγραφή;\",\n keyDuplicationError: \"Αυτή η τιμή πρέπει να είναι μοναδική.\",\n addColumn: \"Προσθήκη στήλης\",\n addRow: \"Προσθήκη γραμμής\",\n removeRow: \"Αφαίρεση\",\n emptyRowsText: \"Δεν υπάρχουν εγγραφές.\",\n addPanel: \"Προσθέστε νέο\",\n removePanel: \"Αφαίρεση\",\n showDetails: \"Εμφάνιση λεπτομερειών\",\n hideDetails: \"Απόκρυψη λεπτομερειών\",\n choices_Item: \"είδος\",\n matrix_column: \"Στήλη\",\n matrix_row: \"Γραμμή\",\n multipletext_itemname: \"κείμενο\",\n savingData: \"Τα αποτελέσματα αποθηκεύονται στον διακομιστή ...\",\n savingDataError: \"Παρουσιάστηκε σφάλμα και δεν ήταν δυνατή η αποθήκευση των αποτελεσμάτων.\",\n savingDataSuccess: \"Τα αποτελέσματα αποθηκεύτηκαν με επιτυχία!\",\n savingExceedSize: \"Η απάντησή σας υπερβαίνει τα 64KB. Μειώστε το μέγεθος των αρχείων σας και προσπαθήστε ξανά ή επικοινωνήστε με έναν κάτοχο έρευνας.\",\n saveAgainButton: \"Προσπάθησε ξανά\",\n timerMin: \"ελάχ\",\n timerSec: \"δευτ\",\n timerSpentAll: \"Έχετε δαπανήσει {0} σε αυτήν τη σελίδα και {1} συνολικά.\",\n timerSpentPage: \"Έχετε ξοδέψει {0} σε αυτήν τη σελίδα.\",\n timerSpentSurvey: \"Έχετε ξοδέψει συνολικά {0}.\",\n timerLimitAll: \"Έχετε δαπανήσει {0} από {1} σε αυτήν τη σελίδα και {2} από {3} συνολικά.\",\n timerLimitPage: \"Έχετε ξοδέψει {0} από {1} σε αυτήν τη σελίδα.\",\n timerLimitSurvey: \"Έχετε ξοδέψει {0} από {1} συνολικά.\",\n clearCaption: \"Εκκαθάριση\",\n signaturePlaceHolder: \"Υπογράψτε εδώ\",\n signaturePlaceHolderReadOnly: \"Χωρίς υπογραφή\",\n chooseFileCaption: \"Επιλέξτε αρχείο\",\n takePhotoCaption: \"Λήψη φωτογραφίας\",\n photoPlaceholder: \"Κάντε κλικ στο παρακάτω κουμπί για να τραβήξετε μια φωτογραφία χρησιμοποιώντας την κάμερα.\",\n fileOrPhotoPlaceholder: \"Σύρετε και αποθέστε ή επιλέξτε ένα αρχείο για αποστολή ή λήψη φωτογραφίας χρησιμοποιώντας την κάμερα.\",\n replaceFileCaption: \"Αντικατάσταση αρχείου\",\n removeFileCaption: \"Διαγράψτε αυτό το αρχείο\",\n booleanCheckedLabel: \"Ναι\",\n booleanUncheckedLabel: \"Όχι\",\n confirmRemoveFile: \"Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το αρχείο: {0};\",\n confirmRemoveAllFiles: \"Είστε βέβαιοι ότι θέλετε να διαγράψετε όλα τα αρχεία;\",\n questionTitlePatternText: \"Τίτλος ερώτησης\",\n modalCancelButtonText: \"Άκυρο\",\n modalApplyButtonText: \"Εφαρμογή\",\n filterStringPlaceholder: \"Πληκτρολογήστε για αναζήτηση...\",\n emptyMessage: \"Δεν υπάρχουν δεδομένα προς εμφάνιση\",\n noEntriesText: \"Δεν υπάρχουν ακόμη εγγραφές.\\nΚάντε κλικ στο κουμπί παρακάτω για να προσθέσετε μια νέα εγγραφή.\",\n noEntriesReadonlyText: \"Δεν υπάρχουν καταχωρήσεις.\",\n more: \"Περισσότερα\",\n tagboxDoneButtonCaption: \"ΟΚ\",\n selectToRankEmptyRankedAreaText: \"Όλες οι επιλογές κατατάσσονται\",\n selectToRankEmptyUnrankedAreaText: \"Σύρετε και αποθέστε επιλογές εδώ για να τις κατατάξετε\",\n ok: \"OK\",\n cancel: \"Ακυρώνω\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"gr\"] = greekSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"gr\"] = \"ελληνικά\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Πίνακας {panelIndex}\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Δεν υπάρχουν καταχωρήσεις.\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Όλες οι επιλογές κατατάσσονται\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Σύρετε και αποθέστε επιλογές εδώ για να τις κατατάξετε\"// takePhotoCaption: \"Take Photo\" => \"Λήψη φωτογραφίας\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Κάντε κλικ στο παρακάτω κουμπί για να τραβήξετε μια φωτογραφία χρησιμοποιώντας την κάμερα.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Σύρετε και αποθέστε ή επιλέξτε ένα αρχείο για αποστολή ή λήψη φωτογραφίας χρησιμοποιώντας την κάμερα.\"\n// replaceFileCaption: \"Replace file\" => \"Αντικατάσταση αρχείου\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Κάθε γραμμή πρέπει να έχει μια μοναδική τιμή.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Δεν είναι δυνατή η αποστολή αρχείων. Προσθέστε ένα πρόγραμμα χειρισμού για το συμβάν 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Εμφάνιση λεπτομερειών\"\n// hideDetails: \"Hide Details\" => \"Απόκρυψη λεπτομερειών\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Ακυρώνω\"\n// refuseItemText: \"Refuse to answer\" => \"Αρνηθείτε να απαντήσετε\"\n// dontKnowItemText: \"Don't know\" => \"Δεν ξέρω\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Η απάντησή σας υπερβαίνει τα 64KB. Μειώστε το μέγεθος των αρχείων σας και προσπαθήστε ξανά ή επικοινωνήστε με έναν κάτοχο έρευνας.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Χωρίς υπογραφή\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/hebrew.ts\":\n/*!************************************!*\\\n !*** ./src/localization/hebrew.ts ***!\n \\************************************/\n/*! exports provided: hebrewSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hebrewSurveyStrings\", function() { return hebrewSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar hebrewSurveyStrings = {\n pagePrevText: \"אחורה\",\n pageNextText: \"קדימה\",\n completeText: \"סיום\",\n previewText: \"תצוגה מקדימה\",\n editText: \"לַעֲרוֹך\",\n startSurveyText: \"הַתחָלָה\",\n otherItemText: \"אחר (נא לתאר)\",\n noneItemText: \"אף אחד\",\n refuseItemText: \"מסרבים לענות\",\n dontKnowItemText: \"לא יודע\",\n selectAllItemText: \"בחר הכל\",\n progressText: \"דף {1} מתוך {0}\",\n indexText: \"{0} מתוך {1}\",\n panelDynamicProgressText: \"הקלטה {0} מתוך {1}\",\n panelDynamicTabTextFormat: \"לוח {panelIndex}\",\n questionsProgressText: \"ענה על שאלות\",\n emptySurvey: \"אין שאלות\",\n completingSurvey: \"תודה על מילוי השאלון!\",\n completingSurveyBefore: \"הרשומות שלנו מראות שכבר סיימת את הסקר הזה.\",\n loadingSurvey: \"טעינה מהשרת...\",\n placeholder: \"בחר...\",\n ratingOptionsCaption: \"בחר...\",\n value: \"ערך\",\n requiredError: \"אנא השב על השאלה\",\n requiredErrorInPanel: \"אנא ענה לפחות על שאלה אחת.\",\n requiredInAllRowsError: \"אנא ענה על שאלות בכל השורות.\",\n eachRowUniqueError: \"לכל שורה חייב להיות ערך ייחודי.\",\n numericError: \"התשובה צריכה להיות מספר.\",\n minError: \"הערך לא צריך להיות קטן מ {0}\",\n maxError: \"הערך לא צריך להיות גדול מ- {0}\",\n textMinLength: \"הזן לפחות {0} תווים.\",\n textMaxLength: \"הזן פחות מ- {0} תווים.\",\n textMinMaxLength: \"הזן יותר מ- {0} ופחות מ- {1} תווים.\",\n minRowCountError: \"אנא מלא לפחות {0} שורות.\",\n minSelectError: \"בחר לפחות {0} אפשרויות.\",\n maxSelectError: \"בחר עד {0} אפשרויות.\",\n numericMinMax: \"'{0}' חייב להיות שווה או גדול מ {1}, ושווה ל- {2} או פחות מ- {}}\",\n numericMin: \"'{0}' חייב להיות שווה או גדול מ {1}\",\n numericMax: \"'{0}' חייב להיות שווה או קטן מ {1}\",\n invalidEmail: \"הזן כתובת דוא\\\"ל חוקית.\",\n invalidExpression: \"הביטוי: {0} צריך להחזיר 'אמת'.\",\n urlRequestError: \"הבקשה החזירה את השגיאה '{0}'. {1}\",\n urlGetChoicesError: \"הבקשה החזירה נתונים ריקים או שהמאפיין 'נתיב' שגוי\",\n exceedMaxSize: \"גודל הקובץ לא יעלה על {0}.\",\n noUploadFilesHandler: \"לא ניתן להעלות קבצים. אנא הוסף מטפל לאירוע 'onUploadFiles'.\",\n otherRequiredError: \"נא להזין נתונים בשדה \\\"אחר\\\"\",\n uploadingFile: \"הקובץ שלך נטען. המתן מספר שניות ונסה שוב.\",\n loadingFile: \"טוען...\",\n chooseFile: \"לבחור קבצים...\",\n noFileChosen: \"לא נבחר קובץ\",\n filePlaceholder: \"גרור ושחרר קובץ לכאן או לחץ על הלחצן למטה ובחר קובץ להעלאה.\",\n confirmDelete: \"האם אתה רוצה למחוק את הרשומה?\",\n keyDuplicationError: \"ערך זה צריך להיות ייחודי.\",\n addColumn: \"הוסף עמודה\",\n addRow: \"להוסיף שורה\",\n removeRow: \"לְהַסִיר\",\n emptyRowsText: \"אין שורות.\",\n addPanel: \"הוסף חדש\",\n removePanel: \"לְהַסִיר\",\n showDetails: \"הראה פרטים\",\n hideDetails: \"הסתר פרטים\",\n choices_Item: \"פריט\",\n matrix_column: \"טור\",\n matrix_row: \"שׁוּרָה\",\n multipletext_itemname: \"טקסט\",\n savingData: \"התוצאות נשמרות בשרת ...\",\n savingDataError: \"אירעה שגיאה ולא הצלחנו לשמור את התוצאות.\",\n savingDataSuccess: \"התוצאות נשמרו בהצלחה!\",\n savingExceedSize: \"תגובתך עולה על 64KB. הקטן את גודל הקבצים שלך ונסה שוב או פנה לבעלים של סקר.\",\n saveAgainButton: \"נסה שוב\",\n timerMin: \"דקה\",\n timerSec: \"שניות\",\n timerSpentAll: \"הוצאת {0} בדף זה ובסך הכל {1}.\",\n timerSpentPage: \"הוצאת {0} בדף זה.\",\n timerSpentSurvey: \"הוצאת סכום כולל של {0}.\",\n timerLimitAll: \"הוצאת {0} מתוך {1} בדף זה ו- {2} מתוך {3} בסך הכל.\",\n timerLimitPage: \"הוצאת {0} מתוך {1} בדף זה.\",\n timerLimitSurvey: \"הוצאת סכום כולל של {0} מתוך {1}.\",\n clearCaption: \"לנקות\",\n signaturePlaceHolder: \"חתום כאן\",\n signaturePlaceHolderReadOnly: \"אין חתימה\",\n chooseFileCaption: \"בחר קובץ\",\n takePhotoCaption: \"צלם תמונה\",\n photoPlaceholder: \"לחץ על הלחצן למטה כדי לצלם תמונה באמצעות המצלמה.\",\n fileOrPhotoPlaceholder: \"גרור ושחרר או בחר קובץ כדי להעלות או לצלם תמונה באמצעות המצלמה.\",\n replaceFileCaption: \"החלפת קובץ\",\n removeFileCaption: \"הסר קובץ זה\",\n booleanCheckedLabel: \"כן\",\n booleanUncheckedLabel: \"לא\",\n confirmRemoveFile: \"האם אתה בטוח שברצונך להסיר קובץ זה: {0}?\",\n confirmRemoveAllFiles: \"האם אתה בטוח שברצונך להסיר את כל הקבצים?\",\n questionTitlePatternText: \"כותרת שאלה\",\n modalCancelButtonText: \"ביטל\",\n modalApplyButtonText: \"החל\",\n filterStringPlaceholder: \"הקלד כדי לחפש...\",\n emptyMessage: \"אין נתונים להצגה\",\n noEntriesText: \"אין עדיין ערכים.\\nלחץ על הלחצן למטה כדי להוסיף ערך חדש.\",\n noEntriesReadonlyText: \"אין ערכים.\",\n more: \"עוד\",\n tagboxDoneButtonCaption: \"אוקיי\",\n selectToRankEmptyRankedAreaText: \"כל האפשרויות מדורגות\",\n selectToRankEmptyUnrankedAreaText: \"גרור ושחרר אפשרויות לכאן כדי לדרג אותן\",\n ok: \"אוקיי\",\n cancel: \"ביטל\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"he\"] = hebrewSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"he\"] = \"עברית\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} מתוך {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"לוח {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"בחר...\"\n// minError: \"The value should not be less than {0}\" => \"הערך לא צריך להיות קטן מ {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"הערך לא צריך להיות גדול מ- {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"גרור ושחרר קובץ לכאן או לחץ על הלחצן למטה ובחר קובץ להעלאה.\"\n// emptyRowsText: \"There are no rows.\" => \"אין שורות.\"\n// multipletext_itemname: \"text\" => \"טקסט\"\n// signaturePlaceHolder: \"Sign here\" => \"חתום כאן\"\n// modalCancelButtonText: \"Cancel\" => \"ביטל\"\n// modalApplyButtonText: \"Apply\" => \"החל\"\n// filterStringPlaceholder: \"Type to search...\" => \"הקלד כדי לחפש...\"\n// emptyMessage: \"No data to display\" => \"אין נתונים להצגה\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"אין עדיין ערכים.\\nלחץ על הלחצן למטה כדי להוסיף ערך חדש.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"אין ערכים.\"\n// more: \"More\" => \"עוד\"\n// tagboxDoneButtonCaption: \"OK\" => \"אוקיי\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"כל האפשרויות מדורגות\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"גרור ושחרר אפשרויות לכאן כדי לדרג אותן\"// takePhotoCaption: \"Take Photo\" => \"צלם תמונה\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"לחץ על הלחצן למטה כדי לצלם תמונה באמצעות המצלמה.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"גרור ושחרר או בחר קובץ כדי להעלות או לצלם תמונה באמצעות המצלמה.\"\n// replaceFileCaption: \"Replace file\" => \"החלפת קובץ\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"לכל שורה חייב להיות ערך ייחודי.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"לא ניתן להעלות קבצים. אנא הוסף מטפל לאירוע 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"הראה פרטים\"\n// hideDetails: \"Hide Details\" => \"הסתר פרטים\"\n// ok: \"OK\" => \"אוקיי\"\n// cancel: \"Cancel\" => \"ביטל\"\n// refuseItemText: \"Refuse to answer\" => \"מסרבים לענות\"\n// dontKnowItemText: \"Don't know\" => \"לא יודע\"\n// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"תגובתך עולה על 64KB. הקטן את גודל הקבצים שלך ונסה שוב או פנה לבעלים של סקר.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"אין חתימה\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/hindi.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/hindi.ts ***!\n \\***********************************/\n/*! exports provided: hindiStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hindiStrings\", function() { return hindiStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar hindiStrings = {\n pagePrevText: \"पिछला\",\n pageNextText: \"अगला\",\n completeText: \"पूरा\",\n previewText: \"पूर्वसमीक्षा\",\n editText: \"संपादित\",\n startSurveyText: \"शुरू\",\n otherItemText: \"दूसरा (वर्णन करें)\",\n noneItemText: \"कोई नहीं\",\n refuseItemText: \"जवाब देने से इनकार\",\n dontKnowItemText: \"नहीं मालूम\",\n selectAllItemText: \"सभी का चयन करें\",\n progressText: \"पृष्ठ 1 में से 0\",\n indexText: \"{1} का {0}\",\n panelDynamicProgressText: \" दस्तावेज {1} के {0}\",\n panelDynamicTabTextFormat: \"पैनल {panelIndex}\",\n questionsProgressText: \"{1} सवालों में से {0} के जवाब दिए\",\n emptySurvey: \"सर्वेक्षण में कोई दृश्यमान पृष्ठ या प्रश्न नहीं है\",\n completingSurvey: \"सर्वेक्षण को पूरा करने के लिए धन्यवाद\",\n completingSurveyBefore: \" हमारे रिकॉर्ड बताते हैं कि आप पहले ही इस सर्वेक्षण को पूरा कर चुके हैं\",\n loadingSurvey: \"सर्वेक्षण खुल रहा है.…\",\n placeholder: \"चुनें\",\n ratingOptionsCaption: \"चुनना।।।\",\n value: \"मूल्य\",\n requiredError: \"कृपया प्रश्न का उत्तर दें\",\n requiredErrorInPanel: \"कृपया कम से कम एक प्रश्न का उत्तर दें\",\n requiredInAllRowsError: \"कृपया सभी पंक्तियों में सवालों के जवाब दें\",\n eachRowUniqueError: \"प्रत्येक पंक्ति का एक अद्वितीय मान होना चाहिए.\",\n numericError: \"मूल्य संख्यात्मक होना चाहिए\",\n minError: \"मान {0} से कम नहीं होना चाहिए\",\n maxError: \"मान {0} से अधिक नहीं होना चाहिए\",\n textMinLength: \"कृपया कम से कम {0} वर्ण दर्ज करें\",\n textMaxLength: \"कृपया {0} से कम वर्ण दर्ज करें\",\n textMinMaxLength: \"कृपया {0} से अधिक और {1} से कम पात्रों में प्रवेश करें\",\n minRowCountError: \"कृपया कम से कम {0} पंक्तियों को भरें\",\n minSelectError: \"कृपया कम से कम {0} विकल्प का चयन करें\",\n maxSelectError: \"कृपया {0} विकल्पों से अधिक नहीं चुनें\",\n numericMinMax: \"'{0}' {1} से बराबर या अधिक और {2} से बराबर या कम होना चाहिए\",\n numericMin: \"'{0}' {1} से बराबर या अधिक होना चाहिए\",\n numericMax: \"'{0}' {1} से बराबर या कम होना चाहिए\",\n invalidEmail: \"कृपया एक वैध ईमेल पता दर्ज करें\",\n invalidExpression: \"अभिव्यक्ति: {0} को ' सच ' लौटना चाहिए\",\n urlRequestError: \"अनुरोध लौटाया त्रुटि '{0}' . {1}\",\n urlGetChoicesError: \"अनुरोध ने खाली डेटा वापस कर दिया है \",\n exceedMaxSize: \"फ़ाइल का आकार {0} से अधिक नहीं होना चाहिए या फिर 'पाथ' प्रॉपर्टी गलत है\",\n noUploadFilesHandler: \"फ़ाइलें अपलोड नहीं की जा सकती. कृपया 'onloadFiles' ईवेंट के लिए एक हैंडलर जोड़ें.\",\n otherRequiredError: \"कृपया दूसरा मूल्य दर्ज करें\",\n uploadingFile: \"आपकी फाइल अपलोड हो रही है। कृपया कई सेकंड इंतजार करें और फिर से प्रयास करें।\",\n loadingFile: \"लोडिंग\",\n chooseFile: \"फ़ाइल चुनें\",\n noFileChosen: \"कोई फाइल नहीं चुनी गई\",\n filePlaceholder: \"यहां एक फ़ाइल खींचें और छोड़ें या नीचे दिए गए बटन पर क्लिक करें और अपलोड करने के लिए एक फ़ाइल चुनें।\",\n confirmDelete: \"क्या आप रिकॉर्ड हटाना चाहते हैं\",\n keyDuplicationError: \"यह मान अनोखा होना चाहिए\",\n addColumn: \"कॉलम जोड़ें\",\n addRow: \"पंक्ति जोड़ें\",\n removeRow: \"हटाए\",\n emptyRowsText: \"कोई पंक्तियाँ नहीं हैं.\",\n addPanel: \"नया जोड़ें\",\n removePanel: \"हटाए\",\n showDetails: \"विवरण दिखाएँ\",\n hideDetails: \"विवरण छुपाएँ\",\n choices_Item: \"मद\",\n matrix_column: \"कॉलम\",\n matrix_row: \"पंक्ति\",\n multipletext_itemname: \"टेक्स्ट\",\n savingData: \"परिणाम सर्वर पर सेव हो रहे हैं\",\n savingDataError: \"एक त्रुटि हुई और हम परिणामों को नहीं सेव कर सके\",\n savingDataSuccess: \"परिणाम सफलतापूर्वक सेव हो गए\",\n savingExceedSize: \"आपकी प्रतिक्रिया 64KB से अधिक है। कृपया अपनी फ़ाइल(फ़ाइलों) का आकार घटाएँ और पुन: प्रयास करें या सर्वेक्षण स्वामी से संपर्क करें.\",\n saveAgainButton: \"फिर कोशिश करो\",\n timerMin: \"मिनट\",\n timerSec: \"सेकंड\",\n timerSpentAll: \"आपने इस पृष्ठ पर {0} खर्च किए हैं और कुल {1}\",\n timerSpentPage: \"आपने इस पृष्ठ पर {0} खर्च किया है\",\n timerSpentSurvey: \"आपने कुल {0} खर्च किया है\",\n timerLimitAll: \"आपने इस पृष्ठ पर {1} की {0} और कुल {3} की {2} खर्च की है।\",\n timerLimitPage: \"आपने इस पृष्ठ पर {1} का {0} खर्च किया है\",\n timerLimitSurvey: \"आपने कुल {1} की {0} खर्च की है\",\n clearCaption: \"स्पष्ट\",\n signaturePlaceHolder: \"यहां साइन करें\",\n signaturePlaceHolderReadOnly: \"कोई हस्ताक्षर नहीं\",\n chooseFileCaption: \"फ़ाइल चुनें\",\n takePhotoCaption: \"फोटो ले लो\",\n photoPlaceholder: \"कैमरे का उपयोग करके फोटो लेने के लिए नीचे दिए गए बटन पर क्लिक करें।\",\n fileOrPhotoPlaceholder: \"कैमरे का उपयोग करके फ़ोटो अपलोड करने या फ़ोटो लेने के लिए किसी फ़ाइल को खींचें और छोड़ें या चुनें.\",\n replaceFileCaption: \"फ़ाइल बदलें\",\n removeFileCaption: \"इस फाइल को निकालें\",\n booleanCheckedLabel: \"हाँ\",\n booleanUncheckedLabel: \"नहीं\",\n confirmRemoveFile: \"क्या आप सुनिश्चित हैं कि आप इस फ़ाइल को हटाना चाहते हैं: {0}\",\n confirmRemoveAllFiles: \"क्या आप सुनिश्चित हैं कि आप सभी फ़ाइलों को हटाना चाहते हैं\",\n questionTitlePatternText: \"प्रश्न का शीर्षक\",\n modalCancelButtonText: \"रद्द करना\",\n modalApplyButtonText: \"लागू करना\",\n filterStringPlaceholder: \"खोज करने के लिए टाइप करें...\",\n emptyMessage: \"प्रदर्शित करने के लिए कोई डेटा नहीं\",\n noEntriesText: \"अभी तक कोई प्रविष्टियां नहीं हैं।\\nनई प्रविष्टि जोड़ने के लिए नीचे दिए गए बटन पर क्लिक करें.\",\n noEntriesReadonlyText: \"कोई प्रविष्टियाँ नहीं हैं.\",\n more: \"अधिक\",\n tagboxDoneButtonCaption: \"ठीक है\",\n selectToRankEmptyRankedAreaText: \"सभी विकल्पों को रैंक किया गया है\",\n selectToRankEmptyUnrankedAreaText: \"विकल्पों को रैंक करने के लिए उन्हें यहां खींचें और छोड़ दें\",\n ok: \"ठीक है\",\n cancel: \"रद्द करना\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"hi\"] = hindiStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"hi\"] = \"hindi\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// noneItemText: \"None\" => \"कोई नहीं\"\n// indexText: \"{0} of {1}\" => \"{1} का {0}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"पैनल {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"चुनना।।।\"\n// minError: \"The value should not be less than {0}\" => \"मान {0} से कम नहीं होना चाहिए\"\n// maxError: \"The value should not be greater than {0}\" => \"मान {0} से अधिक नहीं होना चाहिए\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"यहां एक फ़ाइल खींचें और छोड़ें या नीचे दिए गए बटन पर क्लिक करें और अपलोड करने के लिए एक फ़ाइल चुनें।\"\n// emptyRowsText: \"There are no rows.\" => \"कोई पंक्तियाँ नहीं हैं.\"\n// multipletext_itemname: \"text\" => \"टेक्स्ट\"\n// signaturePlaceHolder: \"Sign here\" => \"यहां साइन करें\"\n// modalCancelButtonText: \"Cancel\" => \"रद्द करना\"\n// modalApplyButtonText: \"Apply\" => \"लागू करना\"\n// filterStringPlaceholder: \"Type to search...\" => \"खोज करने के लिए टाइप करें...\"\n// emptyMessage: \"No data to display\" => \"प्रदर्शित करने के लिए कोई डेटा नहीं\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"अभी तक कोई प्रविष्टियां नहीं हैं।\\nनई प्रविष्टि जोड़ने के लिए नीचे दिए गए बटन पर क्लिक करें.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"कोई प्रविष्टियाँ नहीं हैं.\"\n// more: \"More\" => \"अधिक\"\n// tagboxDoneButtonCaption: \"OK\" => \"ठीक है\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"सभी विकल्पों को रैंक किया गया है\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"विकल्पों को रैंक करने के लिए उन्हें यहां खींचें और छोड़ दें\"// takePhotoCaption: \"Take Photo\" => \"फोटो ले लो\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"कैमरे का उपयोग करके फोटो लेने के लिए नीचे दिए गए बटन पर क्लिक करें।\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"कैमरे का उपयोग करके फ़ोटो अपलोड करने या फ़ोटो लेने के लिए किसी फ़ाइल को खींचें और छोड़ें या चुनें.\"\n// replaceFileCaption: \"Replace file\" => \"फ़ाइल बदलें\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"प्रत्येक पंक्ति का एक अद्वितीय मान होना चाहिए.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"फ़ाइलें अपलोड नहीं की जा सकती. कृपया 'onloadFiles' ईवेंट के लिए एक हैंडलर जोड़ें.\"\n// showDetails: \"Show Details\" => \"विवरण दिखाएँ\"\n// hideDetails: \"Hide Details\" => \"विवरण छुपाएँ\"\n// ok: \"OK\" => \"ठीक है\"\n// cancel: \"Cancel\" => \"रद्द करना\"// refuseItemText: \"Refuse to answer\" => \"जवाब देने से इनकार\"\n// dontKnowItemText: \"Don't know\" => \"नहीं मालूम\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"आपकी प्रतिक्रिया 64KB से अधिक है। कृपया अपनी फ़ाइल(फ़ाइलों) का आकार घटाएँ और पुन: प्रयास करें या सर्वेक्षण स्वामी से संपर्क करें.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"कोई हस्ताक्षर नहीं\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/hungarian.ts\":\n/*!***************************************!*\\\n !*** ./src/localization/hungarian.ts ***!\n \\***************************************/\n/*! exports provided: hungarianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hungarianSurveyStrings\", function() { return hungarianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar hungarianSurveyStrings = {\n pagePrevText: \"Vissza\",\n pageNextText: \"Tovább\",\n completeText: \"Kész\",\n previewText: \"Előnézet\",\n editText: \"Szerkesztés\",\n startSurveyText: \"Rajt\",\n otherItemText: \"Egyéb (adja meg)\",\n noneItemText: \"Egyik sem\",\n refuseItemText: \"A válaszadás megtagadása\",\n dontKnowItemText: \"Nem tudom\",\n selectAllItemText: \"Mindet kiválaszt\",\n progressText: \"{0}./{1} oldal\",\n indexText: \"{0} {1} közül\",\n panelDynamicProgressText: \"{0} / {1} rekord\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Válaszolt kérdések: {0} / {1}\",\n emptySurvey: \"The survey doesn't contain any visible elements.\",\n completingSurvey: \"Köszönjük, hogy kitöltötte felmérésünket!\",\n completingSurveyBefore: \"Már kitöltötte a felmérést.\",\n loadingSurvey: \"Felmérés betöltése...\",\n placeholder: \"Válasszon...\",\n ratingOptionsCaption: \"Kiválaszt...\",\n value: \"érték\",\n requiredError: \"Kérjük, válaszolja meg ezt a kérdést!\",\n requiredErrorInPanel: \"Kérjük, válaszoljon legalább egy kérdésre.\",\n requiredInAllRowsError: \"Kérjük adjon választ minden sorban!\",\n eachRowUniqueError: \"Minden sornak egyedi értékkel kell rendelkeznie.\",\n numericError: \"Az érték szám kell, hogy legyen!\",\n minError: \"Az érték nem lehet kisebb, mint {0}\",\n maxError: \"Az érték nem lehet nagyobb, mint {0}\",\n textMinLength: \"Adjon meg legalább {0} karaktert!\",\n textMaxLength: \"Legfeljebb {0} karaktert adjon meg!\",\n textMinMaxLength: \"Adjon meg legalább {0}, de legfeljebb {1} karaktert!\",\n minRowCountError: \"Töltsön ki minimum {0} sort!\",\n minSelectError: \"Válasszon ki legalább {0} lehetőséget!\",\n maxSelectError: \"Ne válasszon többet, mint {0} lehetőség!\",\n numericMinMax: \"'{0}' legyen nagyobb, vagy egyenlő, mint {1} és kisebb, vagy egyenlő, mint {2}!\",\n numericMin: \"'{0}' legyen legalább {1}!\",\n numericMax: \"The '{0}' ne legyen nagyobb, mint {1}!\",\n invalidEmail: \"Adjon meg egy valós email címet!\",\n invalidExpression: \"A következő kifejezés: {0} vissza kell adnia az „igaz” értéket.\",\n urlRequestError: \"A lekérdezés hibával tért vissza: '{0}'. {1}\",\n urlGetChoicesError: \"A lekérdezés üres adattal tért vissza, vagy a 'path' paraméter helytelen.\",\n exceedMaxSize: \"A méret nem lehet nagyobb, mint {0}.\",\n noUploadFilesHandler: \"A fájlok nem tölthetők fel. Adjon hozzá egy kezelőt az \\\"onUploadFiles\\\" eseményhez.\",\n otherRequiredError: \"Adja meg az egyéb értéket!\",\n uploadingFile: \"Feltöltés folyamatban. Várjon pár másodpercet, majd próbálja újra.\",\n loadingFile: \"Betöltés...\",\n chooseFile: \"Fájlok kiválasztása ...\",\n noFileChosen: \"Nincs kiválasztva fájl\",\n filePlaceholder: \"Dobjon ide egy fájlt, vagy kattintson az alábbi gombra a fájl betöltéséhez.\",\n confirmDelete: \"Törli ezt a rekordot?\",\n keyDuplicationError: \"Az értéknek egyedinek kell lennie.\",\n addColumn: \"Oszlop hozzáadása\",\n addRow: \"Sor hozzáadása\",\n removeRow: \"Eltávolítás\",\n emptyRowsText: \"Nincsenek sorok.\",\n addPanel: \"Új hozzáadása\",\n removePanel: \"Eltávolítás\",\n showDetails: \"Mutasd a részleteket\",\n hideDetails: \"Részletek elrejtése\",\n choices_Item: \"elem\",\n matrix_column: \"Oszlop\",\n matrix_row: \"Sor\",\n multipletext_itemname: \"SMS\",\n savingData: \"Eredmény mentése a szerverre...\",\n savingDataError: \"Egy hiba folytán nem tudtuk elmenteni az eredményt.\",\n savingDataSuccess: \"Eredmény sikeresen mentve!\",\n savingExceedSize: \"A válasz meghaladja a 64 KB-ot. Kérjük, csökkentse a fájl(ok) méretét, és próbálja újra, vagy lépjen kapcsolatba egy felmérés tulajdonosával.\",\n saveAgainButton: \"Próbálja újra\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Ön {0} összeget költött ezen az oldalon, és összesen {1}.\",\n timerSpentPage: \"{0} összeget költött ezen az oldalon.\",\n timerSpentSurvey: \"Összesen {0} költött.\",\n timerLimitAll: \"Ön {0} / {1} összeget költött ezen az oldalon, és összesen {2} / {3}.\",\n timerLimitPage: \"Ön {0} / {1} összeget költött ezen az oldalon.\",\n timerLimitSurvey: \"Összesen {0} / {1} összeget költött el.\",\n clearCaption: \"Egyértelmű\",\n signaturePlaceHolder: \"Írja alá itt\",\n signaturePlaceHolderReadOnly: \"Nincs aláírás\",\n chooseFileCaption: \"Válassz fájlt\",\n takePhotoCaption: \"Fotó készítése\",\n photoPlaceholder: \"Kattintson az alábbi gombra, hogy fényképet készítsen a fényképezőgéppel.\",\n fileOrPhotoPlaceholder: \"Húzzon át vagy válasszon ki egy fájlt, amelyet fel szeretne tölteni vagy fényképet szeretne készíteni a kamerával.\",\n replaceFileCaption: \"Fájl cseréje\",\n removeFileCaption: \"Távolítsa el ezt a fájlt\",\n booleanCheckedLabel: \"Igen\",\n booleanUncheckedLabel: \"Nem\",\n confirmRemoveFile: \"Biztosan eltávolítja ezt a fájlt: {0}?\",\n confirmRemoveAllFiles: \"Biztosan el akarja távolítani az összes fájlt?\",\n questionTitlePatternText: \"Kérdés címe\",\n modalCancelButtonText: \"Érvénytelenít\",\n modalApplyButtonText: \"Alkalmaz\",\n filterStringPlaceholder: \"Írja be a kereséshez...\",\n emptyMessage: \"Nincs megjeleníthető adat\",\n noEntriesText: \"Még nincsenek bejegyzések.\\nKattintson az alábbi gombra egy új bejegyzés hozzáadásához.\",\n noEntriesReadonlyText: \"Nincsenek bejegyzések.\",\n more: \"Több\",\n tagboxDoneButtonCaption: \"OKÉ\",\n selectToRankEmptyRankedAreaText: \"Minden választási lehetőség rangsorolva van\",\n selectToRankEmptyUnrankedAreaText: \"Húzza ide a választási lehetőségeket a rangsoroláshoz\",\n ok: \"OKÉ\",\n cancel: \"Érvénytelenít\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"hu\"] = hungarianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"hu\"] = \"magyar\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} {1} közül\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Kiválaszt...\"\n// minError: \"The value should not be less than {0}\" => \"Az érték nem lehet kisebb, mint {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Az érték nem lehet nagyobb, mint {0}\"\n// emptyRowsText: \"There are no rows.\" => \"Nincsenek sorok.\"\n// multipletext_itemname: \"text\" => \"SMS\"\n// signaturePlaceHolder: \"Sign here\" => \"Írja alá itt\"\n// modalCancelButtonText: \"Cancel\" => \"Érvénytelenít\"\n// modalApplyButtonText: \"Apply\" => \"Alkalmaz\"\n// filterStringPlaceholder: \"Type to search...\" => \"Írja be a kereséshez...\"\n// emptyMessage: \"No data to display\" => \"Nincs megjeleníthető adat\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Még nincsenek bejegyzések.\\nKattintson az alábbi gombra egy új bejegyzés hozzáadásához.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Nincsenek bejegyzések.\"\n// more: \"More\" => \"Több\"\n// tagboxDoneButtonCaption: \"OK\" => \"OKÉ\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Minden választási lehetőség rangsorolva van\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Húzza ide a választási lehetőségeket a rangsoroláshoz\"// takePhotoCaption: \"Take Photo\" => \"Fotó készítése\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Kattintson az alábbi gombra, hogy fényképet készítsen a fényképezőgéppel.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Húzzon át vagy válasszon ki egy fájlt, amelyet fel szeretne tölteni vagy fényképet szeretne készíteni a kamerával.\"\n// replaceFileCaption: \"Replace file\" => \"Fájl cseréje\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Minden sornak egyedi értékkel kell rendelkeznie.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"A fájlok nem tölthetők fel. Adjon hozzá egy kezelőt az \\\"onUploadFiles\\\" eseményhez.\"\n// showDetails: \"Show Details\" => \"Mutasd a részleteket\"\n// hideDetails: \"Hide Details\" => \"Részletek elrejtése\"\n// ok: \"OK\" => \"OKÉ\"\n// cancel: \"Cancel\" => \"Érvénytelenít\"\n// refuseItemText: \"Refuse to answer\" => \"A válaszadás megtagadása\"\n// dontKnowItemText: \"Don't know\" => \"Nem tudom\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"A válasz meghaladja a 64 KB-ot. Kérjük, csökkentse a fájl(ok) méretét, és próbálja újra, vagy lépjen kapcsolatba egy felmérés tulajdonosával.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Nincs aláírás\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/icelandic.ts\":\n/*!***************************************!*\\\n !*** ./src/localization/icelandic.ts ***!\n \\***************************************/\n/*! exports provided: icelandicSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"icelandicSurveyStrings\", function() { return icelandicSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar icelandicSurveyStrings = {\n pagePrevText: \"Tilbaka\",\n pageNextText: \"Áfram\",\n completeText: \"Lokið\",\n previewText: \"Forskoða\",\n editText: \"Breyta\",\n startSurveyText: \"Byrjaðu\",\n otherItemText: \"Hinn (skýring)\",\n noneItemText: \"Enginn\",\n refuseItemText: \"Neita að svara\",\n dontKnowItemText: \"Veit ekki\",\n selectAllItemText: \"Velja allt\",\n progressText: \"Síða {0} of {1}\",\n indexText: \"{0} af {1}\",\n panelDynamicProgressText: \"Taka upp {0} af {1}\",\n panelDynamicTabTextFormat: \"Pallborð {panelIndex}\",\n questionsProgressText: \"Svarað {0} / {1} spurningum\",\n emptySurvey: \"Það er enginn síða eða spurningar í þessari könnun.\",\n completingSurvey: \"Takk fyrir að fyllja út þessa könnun!\",\n completingSurveyBefore: \"Skrár okkar sýna að þú hefur þegar lokið þessari könnun.\",\n loadingSurvey: \"Könnunin er að hlaða...\",\n placeholder: \"Veldu...\",\n ratingOptionsCaption: \"Velja...\",\n value: \"gildi\",\n requiredError: \"Vinsamlegast svarið spurningunni.\",\n requiredErrorInPanel: \"Vinsamlegast svaraðu að minnsta kosti einni spurningu.\",\n requiredInAllRowsError: \"Vinsamlegast svarið spurningum í öllum röðum.\",\n eachRowUniqueError: \"Hver lína verður að hafa einstakt gildi.\",\n numericError: \"Þetta gildi verður að vera tala.\",\n minError: \"Gildið má ekki vera lægra en {0}\",\n maxError: \"Gildið má ekki vera hærra en {0}\",\n textMinLength: \"Það ætti að vera minnst {0} tákn.\",\n textMaxLength: \"Það ætti að vera mest {0} tákn.\",\n textMinMaxLength: \"Það ætti að vera fleiri en {0} og færri en {1} tákn.\",\n minRowCountError: \"Vinsamlegast fyllið úr að minnsta kosti {0} raðir.\",\n minSelectError: \"Vinsamlegast veljið að minnsta kosti {0} möguleika.\",\n maxSelectError: \"Vinsamlegast veljið ekki fleiri en {0} möguleika.\",\n numericMinMax: \"'{0}' ætti að vera meira en eða jafnt og {1} minna en eða jafnt og {2}\",\n numericMin: \"{0}' ætti að vera meira en eða jafnt og {1}\",\n numericMax: \"'{0}' ætti að vera minna en eða jafnt og {1}\",\n invalidEmail: \"Vinsamlegast sláið inn gilt netfang.\",\n invalidExpression: \"Tjáningin: {0} ætti að skila 'satt'.\",\n urlRequestError: \"Beiðninn skilaði eftirfaranadi villu '{0}'. {1}\",\n urlGetChoicesError: \"Beiðninng skilaði engum gögnum eða slóðinn var röng\",\n exceedMaxSize: \"Skráinn skal ekki vera stærri en {0}.\",\n noUploadFilesHandler: \"Ekki er hægt að hlaða upp skrám. Vinsamlegast bættu við rekli fyrir 'onUploadFiles' atvikið.\",\n otherRequiredError: \"Vinamlegast fyllið út hitt gildið.\",\n uploadingFile: \"Skráinn þín var send. Vinsamlegast bíðið í nokkrar sekúndur og reynið aftur.\",\n loadingFile: \"Hleður ...\",\n chooseFile: \"Veldu skrár ...\",\n noFileChosen: \"Engin skrá valin\",\n filePlaceholder: \"Dragðu og slepptu skrá hér eða smelltu á hnappinn hér að neðan og veldu skrá til að hlaða upp.\",\n confirmDelete: \"Viltu eyða skránni?\",\n keyDuplicationError: \"Þetta gildi ætti að vera einstakt.\",\n addColumn: \"Bæta við dálki\",\n addRow: \"Bæta við röð\",\n removeRow: \"Fjarlægja\",\n emptyRowsText: \"Það eru engar raðir.\",\n addPanel: \"Bæta við nýju\",\n removePanel: \"Fjarlægðu\",\n showDetails: \"Sýna upplýsingar\",\n hideDetails: \"Fela upplýsingar\",\n choices_Item: \"hlutur\",\n matrix_column: \"Dálkur\",\n matrix_row: \"Röð\",\n multipletext_itemname: \"Texti\",\n savingData: \"Niðurstöðurnar eru að spara á netþjóninum ... \",\n savingDataError: \"Villa kom upp og við gátum ekki vistað niðurstöðurnar.\",\n savingDataSuccess: \"Árangurinn var vistaður með góðum árangri!\",\n savingExceedSize: \"Svar þitt fer yfir 64KB. Vinsamlegast minnkaðu stærð skráa þinna og reyndu aftur eða hafðu samband við eiganda könnunarinnar.\",\n saveAgainButton: \"Reyndu aftur\",\n timerMin: \"mín\",\n timerSec: \"sek\",\n timerSpentAll: \"Þú hefur eytt {0} á þessari síðu og {1} samtals.\",\n timerSpentPage: \"Þú hefur eytt {0} á þessari síðu.\",\n timerSpentSurvey: \"Þú hefur eytt {0} samtals.\",\n timerLimitAll: \"Þú hefur eytt {0} af {1} á þessari síðu og {2} af {3} samtals.\",\n timerLimitPage: \"Þú hefur eytt {0} af {1} á þessari síðu.\",\n timerLimitSurvey: \"Þú hefur eytt {0} af {1} samtals.\",\n clearCaption: \"Hreinsa\",\n signaturePlaceHolder: \"Kvittađu hér\",\n signaturePlaceHolderReadOnly: \"Engin undirskrift\",\n chooseFileCaption: \"Veldu skrá\",\n takePhotoCaption: \"Taka mynd\",\n photoPlaceholder: \"Smelltu á hnappinn hér að neðan til að taka mynd með myndavélinni.\",\n fileOrPhotoPlaceholder: \"Dragðu og slepptu eða veldu skrá til að hlaða upp eða taka mynd með myndavélinni.\",\n replaceFileCaption: \"Skipta út skrá\",\n removeFileCaption: \"Fjarlægðu þessa skrá\",\n booleanCheckedLabel: \"Já\",\n booleanUncheckedLabel: \"Nei\",\n confirmRemoveFile: \"Ertu viss um að þú viljir fjarlægja þessa skrá: {0}?\",\n confirmRemoveAllFiles: \"Ertu viss um að þú viljir fjarlægja allar skrár?\",\n questionTitlePatternText: \"Spurningartitill\",\n modalCancelButtonText: \"Afturkalla\",\n modalApplyButtonText: \"Nota\",\n filterStringPlaceholder: \"Sláðu inn til að leita...\",\n emptyMessage: \"Engin gögn til að birta\",\n noEntriesText: \"Það eru engar færslur ennþá.\\nSmelltu á hnappinn hér að neðan til að bæta við nýrri færslu.\",\n noEntriesReadonlyText: \"Það eru engar færslur.\",\n more: \"Fleiri\",\n tagboxDoneButtonCaption: \"ÓKEI\",\n selectToRankEmptyRankedAreaText: \"Öllum valkostum er raðað\",\n selectToRankEmptyUnrankedAreaText: \"Dragðu og slepptu valkostum hér til að raða þeim\",\n ok: \"ÓKEI\",\n cancel: \"Afturkalla\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"is\"] = icelandicSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"is\"] = \"íslenska\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} af {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Pallborð {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Velja...\"\n// minError: \"The value should not be less than {0}\" => \"Gildið má ekki vera lægra en {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Gildið má ekki vera hærra en {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Dragðu og slepptu skrá hér eða smelltu á hnappinn hér að neðan og veldu skrá til að hlaða upp.\"\n// emptyRowsText: \"There are no rows.\" => \"Það eru engar raðir.\"\n// multipletext_itemname: \"text\" => \"Texti\"\n// signaturePlaceHolder: \"Sign here\" => \"Kvittađu hér\"\n// modalCancelButtonText: \"Cancel\" => \"Afturkalla\"\n// modalApplyButtonText: \"Apply\" => \"Nota\"\n// filterStringPlaceholder: \"Type to search...\" => \"Sláðu inn til að leita...\"\n// emptyMessage: \"No data to display\" => \"Engin gögn til að birta\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Það eru engar færslur ennþá.\\nSmelltu á hnappinn hér að neðan til að bæta við nýrri færslu.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Það eru engar færslur.\"\n// more: \"More\" => \"Fleiri\"\n// tagboxDoneButtonCaption: \"OK\" => \"ÓKEI\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Öllum valkostum er raðað\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Dragðu og slepptu valkostum hér til að raða þeim\"// takePhotoCaption: \"Take Photo\" => \"Taka mynd\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Smelltu á hnappinn hér að neðan til að taka mynd með myndavélinni.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Dragðu og slepptu eða veldu skrá til að hlaða upp eða taka mynd með myndavélinni.\"\n// replaceFileCaption: \"Replace file\" => \"Skipta út skrá\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Hver lína verður að hafa einstakt gildi.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Ekki er hægt að hlaða upp skrám. Vinsamlegast bættu við rekli fyrir 'onUploadFiles' atvikið.\"\n// showDetails: \"Show Details\" => \"Sýna upplýsingar\"\n// hideDetails: \"Hide Details\" => \"Fela upplýsingar\"\n// ok: \"OK\" => \"ÓKEI\"\n// cancel: \"Cancel\" => \"Afturkalla\"\n// refuseItemText: \"Refuse to answer\" => \"Neita að svara\"\n// dontKnowItemText: \"Don't know\" => \"Veit ekki\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Svar þitt fer yfir 64KB. Vinsamlegast minnkaðu stærð skráa þinna og reyndu aftur eða hafðu samband við eiganda könnunarinnar.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Engin undirskrift\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/indonesian.ts\":\n/*!****************************************!*\\\n !*** ./src/localization/indonesian.ts ***!\n \\****************************************/\n/*! exports provided: indonesianStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"indonesianStrings\", function() { return indonesianStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar indonesianStrings = {\n pagePrevText: \"Sebelumnya\",\n pageNextText: \"Selanjutnya\",\n completeText: \"Selesai\",\n previewText: \"Pratinjau\",\n editText: \"Sunting\",\n startSurveyText: \"Mulai\",\n otherItemText: \"Lainnya (jelaskan)\",\n noneItemText: \"Tidak Ada\",\n refuseItemText: \"Menolak untuk menjawab\",\n dontKnowItemText: \"Tidak tahu\",\n selectAllItemText: \"Pilih Semua\",\n progressText: \"Halaman {0} dari {1}\",\n indexText: \"{0} dari {1}\",\n panelDynamicProgressText: \"Rekam {0} dari {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Menjawab pertanyaan {0} / {1}\",\n emptySurvey: \"Tidak ada halaman atau pertanyaan dalam survei.\",\n completingSurvey: \"Terima kasih telah menyelesaikan survei!\",\n completingSurveyBefore: \"Catatan kami menunjukkan bahwa Anda telah menyelesaikan survei ini.\",\n loadingSurvey: \"Memuat survei...\",\n placeholder: \"Pilih...\",\n ratingOptionsCaption: \"Pilih...\",\n value: \"nilai\",\n requiredError: \"Silahkan jawab pertanyaan berikut.\",\n requiredErrorInPanel: \"Silahkan jawab setidaknya satu petanyaan.\",\n requiredInAllRowsError: \"Silahkan jawab pertanyaan pada semua baris.\",\n eachRowUniqueError: \"Setiap baris harus memiliki nilai unik.\",\n numericError: \"Nilai harus berupa angka.\",\n minError: \"Nilainya tidak boleh kurang dari {0}\",\n maxError: \"Nilai tidak boleh lebih besar dari {0}\",\n textMinLength: \"Silahkan masukkan setidaknya {0} karakter.\",\n textMaxLength: \"Silahkan masukkan kurang {0} karakter.\",\n textMinMaxLength: \"PSilahkan masukkan lebih dari {0} dan kurang dari {1} karakter.\",\n minRowCountError: \"Silahkan isi setidaknya {0} baris.\",\n minSelectError: \"Silahkan pilih setidaknya {0} varian.\",\n maxSelectError: \"Silahkan pilih tidak lebih dari {0} varian.\",\n numericMinMax: \"'{0}' harus sama dengan atau lebih dari {1} dan harus sama dengan atau kurang dari {2}\",\n numericMin: \"'{0}' harus sama dengan atau lebih dari {1}\",\n numericMax: \"'{0}' harus sama dengan atau kurang dari {1}\",\n invalidEmail: \"Silahkan masukkan e-mail yang benar.\",\n invalidExpression: \"Ekspresi: {0} harus mengembalikan 'benar'.\",\n urlRequestError: \"Permintaan mengembalikan kesalahan '{0}'. {1}\",\n urlGetChoicesError: \"Permintaan mengembalikan data kosong atau properti 'path' salah.\",\n exceedMaxSize: \"Ukuran berkas tidak boleh melebihi {0}.\",\n noUploadFilesHandler: \"File tidak dapat diunggah. Harap tambahkan handler untuk acara 'onUploadFiles'.\",\n otherRequiredError: \"Silahkan masukkan nilai lainnnya.\",\n uploadingFile: \"Berkas Anda sedang diunggah. Silahkan tunggu beberapa saat atau coba lagi.\",\n loadingFile: \"Memuat...\",\n chooseFile: \"Pilih berkas...\",\n noFileChosen: \"Tidak ada file yang dipilih\",\n filePlaceholder: \"Seret dan jatuhkan file di sini atau klik tombol di bawah ini dan pilih file yang akan diunggah.\",\n confirmDelete: \"Apakah Anda ingin menghapus catatan?\",\n keyDuplicationError: \"Nilai harus unik.\",\n addColumn: \"Tambah kolom\",\n addRow: \"Tambah baris\",\n removeRow: \"Hapus\",\n emptyRowsText: \"Tidak ada baris.\",\n addPanel: \"Tambah baru\",\n removePanel: \"Hapus\",\n showDetails: \"Tampilkan Detail\",\n hideDetails: \"Sembunyikan Detail\",\n choices_Item: \"item\",\n matrix_column: \"Kolom\",\n matrix_row: \"Baris\",\n multipletext_itemname: \"Teks\",\n savingData: \"Hasil sedang disimpan pada server...\",\n savingDataError: \"Kesalahan terjadi dan kami tidak dapat menyimpan hasil.\",\n savingDataSuccess: \"Hasil telah sukses disimpan!\",\n savingExceedSize: \"Respons Anda melebihi 64 KB. Harap kurangi ukuran file Anda dan coba lagi atau hubungi pemilik survei.\",\n saveAgainButton: \"Coba lagi\",\n timerMin: \"menit\",\n timerSec: \"detik\",\n timerSpentAll: \"Anda telah menghabiskan {0} pada halaman ini dan {1} secara keseluruhan.\",\n timerSpentPage: \"YAnda telah menghabiskan {0} pada halaman ini.\",\n timerSpentSurvey: \"Anda telah menghabiskan {0} secara keseluruhan.\",\n timerLimitAll: \"Anda telah menghabiskan {0} dari {1} pada halaman ini dan {2} dari {3} secara keseluruhan.\",\n timerLimitPage: \"Anda telah menghabiskan {0} dari {1} pada halaman ini.\",\n timerLimitSurvey: \"Anda telah menghabiskan {0} dari {1} secara keseluruhan.\",\n clearCaption: \"Bersihkan\",\n signaturePlaceHolder: \"Tanda tangan di sini\",\n signaturePlaceHolderReadOnly: \"Tidak ada tanda tangan\",\n chooseFileCaption: \"Pilih File\",\n takePhotoCaption: \"Ambil Foto\",\n photoPlaceholder: \"Klik tombol di bawah ini untuk mengambil foto menggunakan kamera.\",\n fileOrPhotoPlaceholder: \"Seret dan lepas atau pilih file untuk diunggah atau mengambil foto menggunakan kamera.\",\n replaceFileCaption: \"Ganti file\",\n removeFileCaption: \"Hapus berkas ini\",\n booleanCheckedLabel: \"Iya\",\n booleanUncheckedLabel: \"Tidak\",\n confirmRemoveFile: \"Anda yakin ingin menghapus file ini: {0}?\",\n confirmRemoveAllFiles: \"Anda yakin ingin menghapus semua file?\",\n questionTitlePatternText: \"Judul pertanyaan\",\n modalCancelButtonText: \"Membatalkan\",\n modalApplyButtonText: \"Berlaku\",\n filterStringPlaceholder: \"Ketik untuk mencari...\",\n emptyMessage: \"Tidak ada data untuk ditampilkan\",\n noEntriesText: \"Belum ada entri.\\nKlik tombol di bawah ini untuk menambahkan entri baru.\",\n noEntriesReadonlyText: \"Tidak ada entri.\",\n more: \"Lebih\",\n tagboxDoneButtonCaption: \"OKE\",\n selectToRankEmptyRankedAreaText: \"Semua pilihan diberi peringkat\",\n selectToRankEmptyUnrankedAreaText: \"Seret dan lepas pilihan di sini untuk memberi peringkat\",\n ok: \"OKE\",\n cancel: \"Membatalkan\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"id\"] = indonesianStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"id\"] = \"bahasa Indonesia\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} dari {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Pilih...\"\n// minError: \"The value should not be less than {0}\" => \"Nilainya tidak boleh kurang dari {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Nilai tidak boleh lebih besar dari {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Seret dan jatuhkan file di sini atau klik tombol di bawah ini dan pilih file yang akan diunggah.\"\n// emptyRowsText: \"There are no rows.\" => \"Tidak ada baris.\"\n// multipletext_itemname: \"text\" => \"Teks\"\n// signaturePlaceHolder: \"Sign here\" => \"Tanda tangan di sini\"\n// modalCancelButtonText: \"Cancel\" => \"Membatalkan\"\n// modalApplyButtonText: \"Apply\" => \"Berlaku\"\n// filterStringPlaceholder: \"Type to search...\" => \"Ketik untuk mencari...\"\n// emptyMessage: \"No data to display\" => \"Tidak ada data untuk ditampilkan\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Belum ada entri.\\nKlik tombol di bawah ini untuk menambahkan entri baru.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Tidak ada entri.\"\n// more: \"More\" => \"Lebih\"\n// tagboxDoneButtonCaption: \"OK\" => \"OKE\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Semua pilihan diberi peringkat\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Seret dan lepas pilihan di sini untuk memberi peringkat\"// takePhotoCaption: \"Take Photo\" => \"Ambil Foto\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Klik tombol di bawah ini untuk mengambil foto menggunakan kamera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Seret dan lepas atau pilih file untuk diunggah atau mengambil foto menggunakan kamera.\"\n// replaceFileCaption: \"Replace file\" => \"Ganti file\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Setiap baris harus memiliki nilai unik.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"File tidak dapat diunggah. Harap tambahkan handler untuk acara 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Tampilkan Detail\"\n// hideDetails: \"Hide Details\" => \"Sembunyikan Detail\"\n// ok: \"OK\" => \"OKE\"\n// cancel: \"Cancel\" => \"Membatalkan\"\n// refuseItemText: \"Refuse to answer\" => \"Menolak untuk menjawab\"\n// dontKnowItemText: \"Don't know\" => \"Tidak tahu\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Respons Anda melebihi 64 KB. Harap kurangi ukuran file Anda dan coba lagi atau hubungi pemilik survei.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Tidak ada tanda tangan\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/italian.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/italian.ts ***!\n \\*************************************/\n/*! exports provided: italianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"italianSurveyStrings\", function() { return italianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar italianSurveyStrings = {\n pagePrevText: \"Precedente\",\n pageNextText: \"Successivo\",\n completeText: \"Salva\",\n previewText: \"Anteprima\",\n editText: \"Modifica\",\n startSurveyText: \"Inizio\",\n otherItemText: \"Altro (descrivi)\",\n noneItemText: \"Nessuno\",\n refuseItemText: \"Rifiuta di rispondere\",\n dontKnowItemText: \"Non lo so\",\n selectAllItemText: \"Seleziona tutti\",\n progressText: \"Pagina {0} di {1}\",\n indexText: \"{0} da {1}\",\n panelDynamicProgressText: \"Record di {0} di {1}\",\n panelDynamicTabTextFormat: \"Pannello {panelIndex}\",\n questionsProgressText: \"Risposte a {0}/{1} domande\",\n emptySurvey: \"Non ci sono pagine o domande visibili nel questionario.\",\n completingSurvey: \"Grazie per aver completato il questionario!\",\n completingSurveyBefore: \"I nostri records mostrano che hai già completato questo questionario.\",\n loadingSurvey: \"Caricamento del questionario in corso...\",\n placeholder: \"Scegli...\",\n ratingOptionsCaption: \"Tocca qui per valutare...\",\n value: \"valore\",\n requiredError: \"Campo obbligatorio\",\n requiredErrorInPanel: \"Per Favore, rispondi ad almeno una domanda.\",\n requiredInAllRowsError: \"Completare tutte le righe\",\n eachRowUniqueError: \"Ogni riga deve avere un valore univoco.\",\n numericError: \"Il valore deve essere numerico\",\n minError: \"Il valore non deve essere inferiore a {0}\",\n maxError: \"Il valore non deve essere maggiore di {0}\",\n textMinLength: \"Inserire almeno {0} caratteri\",\n textMaxLength: \"Lunghezza massima consentita {0} caratteri\",\n textMinMaxLength: \"Inserire una stringa con minimo {0} e massimo {1} caratteri\",\n minRowCountError: \"Completare almeno {0} righe.\",\n minSelectError: \"Selezionare almeno {0} varianti.\",\n maxSelectError: \"Selezionare massimo {0} varianti.\",\n numericMinMax: \"'{0}' deve essere uguale o superiore a {1} e uguale o inferiore a {2}\",\n numericMin: \"'{0}' deve essere uguale o superiore a {1}\",\n numericMax: \"'{0}' deve essere uguale o inferiore a {1}\",\n invalidEmail: \"Inserire indirizzo mail valido\",\n invalidExpression: \"L'espressione: {0} dovrebbe tornare 'vero'.\",\n urlRequestError: \"La richiesta ha risposto con un errore '{0}'. {1}\",\n urlGetChoicesError: \"La richiesta ha risposto null oppure il percorso non è corretto\",\n exceedMaxSize: \"Il file non può eccedere {0}\",\n noUploadFilesHandler: \"I file non possono essere caricati. Aggiungere un gestore per l'evento 'onUploadFiles'.\",\n otherRequiredError: \"Inserire il valore 'altro'\",\n uploadingFile: \"File in caricamento. Attendi alcuni secondi e riprova\",\n loadingFile: \"Caricamento...\",\n chooseFile: \"Selezionare file(s)...\",\n noFileChosen: \"Nessun file selezionato\",\n filePlaceholder: \"Trascina un file qui o fai clic sul pulsante in basso per caricare il file.\",\n confirmDelete: \"Sei sicuro di voler elminare il record?\",\n keyDuplicationError: \"Questo valore deve essere univoco.\",\n addColumn: \"Aggiungi colonna\",\n addRow: \"Aggiungi riga\",\n removeRow: \"Rimuovi riga\",\n emptyRowsText: \"Non ci sono righe.\",\n addPanel: \"Aggiungi riga\",\n removePanel: \"Elimina\",\n showDetails: \"Mostra dettagli\",\n hideDetails: \"Nascondi dettagli\",\n choices_Item: \"Elemento\",\n matrix_column: \"Colonna\",\n matrix_row: \"Riga\",\n multipletext_itemname: \"testo\",\n savingData: \"Salvataggio dati sul server...\",\n savingDataError: \"Si è verificato un errore e non è stato possibile salvare i risultati.\",\n savingDataSuccess: \"I risultati sono stati salvati con successo!\",\n savingExceedSize: \"La tua risposta supera i 64 KB. Riduci le dimensioni dei tuoi file e riprova o contatta il proprietario di un'indagine.\",\n saveAgainButton: \"Riprova\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Hai impiegato {0} su questa pagina e {1} in totale.\",\n timerSpentPage: \"Hai impiegato {0} su questa pagina.\",\n timerSpentSurvey: \"Hai impiegato {0} in totale.\",\n timerLimitAll: \"Hai impiegato {0} di {1} su questa pagina e {2} di {3} in totale.\",\n timerLimitPage: \"Hai impiegato {0} di {1} su questa pagina.\",\n timerLimitSurvey: \"Hai impiegato {0} di {1} in totale.\",\n clearCaption: \"Cancella\",\n signaturePlaceHolder: \"Firmare qui\",\n signaturePlaceHolderReadOnly: \"Nessuna firma\",\n chooseFileCaption: \"Scegliere il file\",\n takePhotoCaption: \"Scatta foto\",\n photoPlaceholder: \"Fai clic sul pulsante qui sotto per scattare una foto utilizzando la fotocamera.\",\n fileOrPhotoPlaceholder: \"Trascina e rilascia o seleziona un file da caricare o scattare una foto utilizzando la fotocamera.\",\n replaceFileCaption: \"Sostituisci file\",\n removeFileCaption: \"Rimuovere questo file\",\n booleanCheckedLabel: \"Sì\",\n booleanUncheckedLabel: \"No\",\n confirmRemoveFile: \"Sei sicuro di voler elminare questo file: {0}?\",\n confirmRemoveAllFiles: \"Sei sicuro di voler elminare tutti i files?\",\n questionTitlePatternText: \"Titolo della domanda\",\n modalCancelButtonText: \"Annulla\",\n modalApplyButtonText: \"Applicare\",\n filterStringPlaceholder: \"Digita per cercare...\",\n emptyMessage: \"Nessun dato da visualizzare\",\n noEntriesText: \"Non ci sono ancora voci.\\nFai clic sul pulsante qui sotto per aggiungere una nuova voce.\",\n noEntriesReadonlyText: \"Non ci sono voci.\",\n more: \"Più\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Tutte le scelte sono classificate\",\n selectToRankEmptyUnrankedAreaText: \"Trascina e rilascia le scelte qui per classificarle\",\n ok: \"OK\",\n cancel: \"Annulla\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"it\"] = italianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"it\"] = \"italiano\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Pannello {panelIndex}\"\n// emptyMessage: \"No data to display\" => \"Nessun dato da visualizzare\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Non ci sono voci.\"\n// more: \"More\" => \"Più\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Tutte le scelte sono classificate\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Trascina e rilascia le scelte qui per classificarle\"// takePhotoCaption: \"Take Photo\" => \"Scatta foto\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Fai clic sul pulsante qui sotto per scattare una foto utilizzando la fotocamera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Trascina e rilascia o seleziona un file da caricare o scattare una foto utilizzando la fotocamera.\"\n// replaceFileCaption: \"Replace file\" => \"Sostituisci file\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Ogni riga deve avere un valore univoco.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"I file non possono essere caricati. Aggiungere un gestore per l'evento 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Mostra dettagli\"\n// hideDetails: \"Hide Details\" => \"Nascondi dettagli\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Annulla\"\n// refuseItemText: \"Refuse to answer\" => \"Rifiuta di rispondere\"\n// dontKnowItemText: \"Don't know\" => \"Non lo so\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"La tua risposta supera i 64 KB. Riduci le dimensioni dei tuoi file e riprova o contatta il proprietario di un'indagine.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Nessuna firma\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/japanese.ts\":\n/*!**************************************!*\\\n !*** ./src/localization/japanese.ts ***!\n \\**************************************/\n/*! exports provided: japaneseSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"japaneseSurveyStrings\", function() { return japaneseSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar japaneseSurveyStrings = {\n pagePrevText: \"前へ\",\n pageNextText: \"次へ\",\n completeText: \"完了\",\n previewText: \"プレビュー\",\n editText: \"編集\",\n startSurveyText: \"スタート\",\n otherItemText: \"その他(説明)\",\n noneItemText: \"なし\",\n refuseItemText: \"回答を拒否する\",\n dontKnowItemText: \"わかりません\",\n selectAllItemText: \"すべて選択\",\n progressText: \"{0}/{1}頁\",\n indexText: \"{1}の{0}\",\n panelDynamicProgressText: \"{1}の{0}を記録する\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"{0}/{1}の質問に回答しました。\",\n emptySurvey: \"この調査に表示できるページや質問はありません\",\n completingSurvey: \"調査を完了してくれてありがとうございました\",\n completingSurveyBefore: \"当社の記録によると、この調査はすでに完了しています。\",\n loadingSurvey: \"調査をダウンロード中\",\n placeholder: \"選択\",\n ratingOptionsCaption: \"選ぶ。。。\",\n value: \"値打ち\",\n requiredError: \"質問にお答え下さい\",\n requiredErrorInPanel: \"最低でも1つの質問に答えてください。\",\n requiredInAllRowsError: \"質問には全列で回答してください。\",\n eachRowUniqueError: \"各行には一意の値が必要です。\",\n numericError: \"数字でご記入下さい\",\n minError: \"値は {0} 値より小さくすることはできません\",\n maxError: \"値は {0} を超えてはなりません。\",\n textMinLength: \"{0} 文字以上で入力して下さい\",\n textMaxLength: \"{0}文字以下で入力してください。\",\n textMinMaxLength: \"{0}以上{1}未満の文字を入力してください。\",\n minRowCountError: \"{0}行以上で入力して下さい\",\n minSelectError: \"{0}種類以上を選択して下さい\",\n maxSelectError: \"{0}以上のバリアントを選択しないでください。\",\n numericMinMax: \"{0}は{1}以上であり、{2}以下であることが望ましい。\",\n numericMin: \"'{0}' は同等か{1}より大きくなければなりません\",\n numericMax: \"'{0}' は同等か{1}より小さくなければなりません\",\n invalidEmail: \"有効なメールアドレスをご記入下さい\",\n invalidExpression: \"式は {0}は'true'を返すべきです。\",\n urlRequestError: \"リクエストはエラー '{0}' を返しました。{1}\",\n urlGetChoicesError: \"リクエストが空のデータを返したか、'path' プロパティが正しくありません。\",\n exceedMaxSize: \"ファイルのサイズは{0}を超えてはいけません\",\n noUploadFilesHandler: \"ファイルはアップロードできません。「onUploadFiles」イベントのハンドラーを追加してください。\",\n otherRequiredError: \"その他の値を入力してください。\",\n uploadingFile: \"ファイルをアップロード中です。しばらくしてから再度お試し下さい\",\n loadingFile: \"読み込み中\",\n chooseFile: \"ファイルを選択\",\n noFileChosen: \"選択されたファイルはありません\",\n filePlaceholder: \"ここにファイルをドラッグ&ドロップするか、下のボタンをクリックしてアップロードするファイルを選択してください。\",\n confirmDelete: \"レコードを削除しますか?\",\n keyDuplicationError: \"この値は一意でなければなりません。\",\n addColumn: \"列の追加\",\n addRow: \"追加行\",\n removeRow: \"除去\",\n emptyRowsText: \"行はありません。\",\n addPanel: \"新規追加\",\n removePanel: \"除去\",\n showDetails: \"詳細を表示\",\n hideDetails: \"詳細を隠す\",\n choices_Item: \"品目\",\n matrix_column: \"コラム\",\n matrix_row: \"行\",\n multipletext_itemname: \"テキスト\",\n savingData: \"結果はサーバーに保存されています...。\",\n savingDataError: \"エラーが発生し、結果を保存できませんでした。\",\n savingDataSuccess: \"結果は無事に保存されました\",\n savingExceedSize: \"回答は 64 KB を超えています。ファイルのサイズを小さくしてもう一度お試しいただくか、アンケートの所有者にお問い合わせください。\",\n saveAgainButton: \"もう一度試してみてください。\",\n timerMin: \"僅少\",\n timerSec: \"セック\",\n timerSpentAll: \"あなたはこのページに{0}を費やし、合計で{1}を費やしました。\",\n timerSpentPage: \"あなたはこのページに{0}を費やしました。\",\n timerSpentSurvey: \"合計で{0}を使ったことになります。\",\n timerLimitAll: \"このページに{1}のうち{0}を費やし、{3}のうち{2}を合計で費やしました。\",\n timerLimitPage: \"このページで{1}の{0}を使ったことがあります。\",\n timerLimitSurvey: \"合計で{1}の{0}を使ったことがあります。\",\n clearCaption: \"空白\",\n signaturePlaceHolder: \"ここに署名\",\n signaturePlaceHolderReadOnly: \"署名なし\",\n chooseFileCaption: \"ファイルを選択\",\n takePhotoCaption: \"写真を撮る\",\n photoPlaceholder: \"下のボタンをクリックして、カメラを使用して写真を撮ります。\",\n fileOrPhotoPlaceholder: \"アップロードするファイルをドラッグアンドドロップまたは選択するか、カメラを使用して写真を撮ります。\",\n replaceFileCaption: \"ファイルの置換\",\n removeFileCaption: \"このファイルを削除\",\n booleanCheckedLabel: \"噫\",\n booleanUncheckedLabel: \"否\",\n confirmRemoveFile: \"このファイルを削除してもよろしいですか?{0}?\",\n confirmRemoveAllFiles: \"すべてのファイルを削除してもよろしいですか?\",\n questionTitlePatternText: \"質問名\",\n modalCancelButtonText: \"キャンセル\",\n modalApplyButtonText: \"申し込む\",\n filterStringPlaceholder: \"検索するタイプ...\",\n emptyMessage: \"表示するデータがありません\",\n noEntriesText: \"エントリはまだありません。\\n下のボタンをクリックして、新しいエントリを追加します。\",\n noEntriesReadonlyText: \"エントリはありません。\",\n more: \"もっとその\",\n tagboxDoneButtonCaption: \"わかりました\",\n selectToRankEmptyRankedAreaText: \"すべての選択肢がランク付けされます\",\n selectToRankEmptyUnrankedAreaText: \"ここに選択肢をドラッグアンドドロップしてランク付けします\",\n ok: \"わかりました\",\n cancel: \"キャンセル\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ja\"] = japaneseSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ja\"] = \"日本語\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{1}の{0}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"選ぶ。。。\"\n// minError: \"The value should not be less than {0}\" => \"値は {0} 値より小さくすることはできません\"\n// maxError: \"The value should not be greater than {0}\" => \"値は {0} を超えてはなりません。\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"ここにファイルをドラッグ&ドロップするか、下のボタンをクリックしてアップロードするファイルを選択してください。\"\n// emptyRowsText: \"There are no rows.\" => \"行はありません。\"\n// multipletext_itemname: \"text\" => \"テキスト\"\n// signaturePlaceHolder: \"Sign here\" => \"ここに署名\"\n// modalCancelButtonText: \"Cancel\" => \"キャンセル\"\n// modalApplyButtonText: \"Apply\" => \"申し込む\"\n// filterStringPlaceholder: \"Type to search...\" => \"検索するタイプ...\"\n// emptyMessage: \"No data to display\" => \"表示するデータがありません\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"エントリはまだありません。\\n下のボタンをクリックして、新しいエントリを追加します。\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"エントリはありません。\"\n// more: \"More\" => \"もっとその\"\n// tagboxDoneButtonCaption: \"OK\" => \"わかりました\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"すべての選択肢がランク付けされます\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"ここに選択肢をドラッグアンドドロップしてランク付けします\"// takePhotoCaption: \"Take Photo\" => \"写真を撮る\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"下のボタンをクリックして、カメラを使用して写真を撮ります。\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"アップロードするファイルをドラッグアンドドロップまたは選択するか、カメラを使用して写真を撮ります。\"\n// replaceFileCaption: \"Replace file\" => \"ファイルの置換\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"各行には一意の値が必要です。\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"ファイルはアップロードできません。「onUploadFiles」イベントのハンドラーを追加してください。\"\n// showDetails: \"Show Details\" => \"詳細を表示\"\n// hideDetails: \"Hide Details\" => \"詳細を隠す\"\n// ok: \"OK\" => \"わかりました\"\n// cancel: \"Cancel\" => \"キャンセル\"\n// refuseItemText: \"Refuse to answer\" => \"回答を拒否する\"\n// dontKnowItemText: \"Don't know\" => \"わかりません\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"回答は 64 KB を超えています。ファイルのサイズを小さくしてもう一度お試しいただくか、アンケートの所有者にお問い合わせください。\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"署名なし\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/kazakh.ts\":\n/*!************************************!*\\\n !*** ./src/localization/kazakh.ts ***!\n \\************************************/\n/*! exports provided: kazakhStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kazakhStrings\", function() { return kazakhStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar kazakhStrings = {\n pagePrevText: \"Артқа\",\n pageNextText: \"Келесі\",\n completeText: \"Дайын\",\n previewText: \"Алдын ала қарау\",\n editText: \"Редакциялау\",\n startSurveyText: \"Бастау\",\n otherItemText: \"Басқа (өтінеміз, жазыңыз)\",\n noneItemText: \"Жоқ\",\n refuseItemText: \"Жауап беруден бас тарту\",\n dontKnowItemText: \"Білмеймін\",\n selectAllItemText: \"Барлығын таңдау\",\n progressText: \"{0} ден {1} бет \",\n indexText: \"{1} {0}\",\n panelDynamicProgressText: \"{0} ден {1} жазба\",\n panelDynamicTabTextFormat: \"Панель {panelIndex}\",\n questionsProgressText: \"{0}/{1} сұрақтарға жауап\",\n emptySurvey: \"Бір де бір сұрақ жоқ.\",\n completingSurvey: \"Сауалнаманы толтырғаныңыз үшін рахмет!\",\n completingSurveyBefore: \"Сіз бұл сауалнаманы өтіп қойдыңыз.\",\n loadingSurvey: \"Серверден жүктеу...\",\n placeholder: \"Таңдау...\",\n ratingOptionsCaption: \"Таңдау...\",\n value: \"мәні\",\n requiredError: \"Өтінеміз, сұраққа жауап беріңіз.\",\n requiredErrorInPanel: \"Өтінеміз, кем дегенде бір сұраққа жауап беріңіз.\",\n requiredInAllRowsError: \"Өтінеміз, әрбір жолдың сұрағаны жауап беріңіз.\",\n eachRowUniqueError: \"Әр жолдың бірегей мәні болуы тиіс.\",\n numericError: \"Жауап сан түрінде болуы керек.\",\n minError: \"Мәні {0} кем болмауы тиіс\",\n maxError: \"Мән {0} артық болмауы тиіс\",\n textMinLength: \"Өтінеміз, {0} ден көп таңба енгізіңіз.\",\n textMaxLength: \"Өтінеміз, {0} ден аз таңба енгізіңіз.\",\n textMinMaxLength: \"Өтінеміз, {0} аз және {1} көп таңба енгізіңіз.\",\n minRowCountError: \"Өтінеміз, {0} ден кем емес жол толтырыңыз.\",\n minSelectError: \"Өтінеміз, тым болмаса {0} нұсқа таңдаңыз.\",\n maxSelectError: \"Өтінеміз, {0} нұсқадан көп таңдамаңыз.\",\n numericMinMax: \"'{0}' {1} ден кем емес және {2} ден көп емес болу керек\",\n numericMin: \"'{0}' {1} ден кем емес болу керек\",\n numericMax: \"'{0}' {1} ден көп емес болу керек\",\n invalidEmail: \"Өтінеміз, жарамды электрондық поштаңызды енгізіңіз.\",\n invalidExpression: \"{0} өрнегі 'true' қайтару керек.\",\n urlRequestError: \"Сұратым қателікті қайтарды'{0}'. {1}\",\n urlGetChoicesError: \"Сұратымға жауап бос келді немесе 'path' қасиеті қате көрсетілген \",\n exceedMaxSize: \"Файлдың мөлшері {0} аспау керек.\",\n noUploadFilesHandler: \"Файлдарды кері жүктеу мүмкін емес. 'OnUploadFiles' оқиғасына өңдеушіні қосуыңызды сұраймыз.\",\n otherRequiredError: \"Өтінеміз, “Басқа” жолына деректі енгізіңіз\",\n uploadingFile: \"Сіздің файлыңыз жүктеліп жатыр. Бірнеше секунд тосып, қайтадан байқап көріңіз.\",\n loadingFile: \"Жүктеу...\",\n chooseFile: \"Файлдарды таңдаңыз...\",\n noFileChosen: \"Файл таңдалынбады\",\n filePlaceholder: \"Файлды осы жерге апарып тастаңыз немесе төмендегі түймені басыңыз және кері жүктеу үшін файлды таңдаңыз.\",\n confirmDelete: \"Сіз жазбаны жоятыныңызға сенімдісіз бе?\",\n keyDuplicationError: \"Бұл мән бірегей болу керек.\",\n addColumn: \"Бағана қосу\",\n addRow: \"Жолды қосу\",\n removeRow: \"Өшіру\",\n emptyRowsText: \"Қатарлар жоқ.\",\n addPanel: \"Жаңа қосу\",\n removePanel: \"Өшіру\",\n showDetails: \"Егжей-тегжейін көрсету\",\n hideDetails: \"Егжей- тегжейін жасы\",\n choices_Item: \"Нұсқа\",\n matrix_column: \"Бағана\",\n matrix_row: \"Жол\",\n multipletext_itemname: \"мәтін\",\n savingData: \"Нәтижелер серверде сақталады...\",\n savingDataError: \"Қателік туындады, нәтиже сақталынбады.\",\n savingDataSuccess: \"Нәтиже ойдағыдай сақталды!\",\n savingExceedSize: \"Сіздің жауабыңыз 64КБ-тан асады. Файлдың өлшемін азайтып, қайталап көріңіз немесе сауалнама иесіне хабарласыңыз.\",\n saveAgainButton: \"Қайтадан байқап көру\",\n timerMin: \"мин\",\n timerSec: \"сек\",\n timerSpentAll: \"Сіз бұл бетте {0} кетірдіңіз және барлығы {1}.\",\n timerSpentPage: \"Сіз бұл бетте {0} кетірдіңіз.\",\n timerSpentSurvey: \"Сіз сауалнама кезінде {0} кетірдіңіз.\",\n timerLimitAll: \"Сіз бұл бетте {0} ден {1} кетірдіңіз және {2} ден {3} бүкіл сауалнама үшін.\",\n timerLimitPage: \"Сіз бұл бетте {0} ден {1} кетірдіңіз.\",\n timerLimitSurvey: \"Сіз бүкіл сауалнама үшін {0} ден {1} кетірдіңіз \",\n clearCaption: \"Тазалау\",\n signaturePlaceHolder: \"Осында кіру\",\n signaturePlaceHolderReadOnly: \"Қолдың No\",\n chooseFileCaption: \"Файл таңдаңыз\",\n takePhotoCaption: \"Фотосуретке түсу\",\n photoPlaceholder: \"Камераны пайдаланып суретке түсу үшін төмендегі түймені басыңыз.\",\n fileOrPhotoPlaceholder: \"Фотоаппаратты пайдаланып кері жүктеу немесе суретке түсіру үшін файлды апарып тастаыңыз немесе таңдаңыз.\",\n replaceFileCaption: \"Файлды ауыстыру\",\n removeFileCaption: \"Файлды жойыңыз\",\n booleanCheckedLabel: \"Иә\",\n booleanUncheckedLabel: \"Жоқ\",\n confirmRemoveFile: \"Сіз бұл файлды жоятыныңызға сенімдісіз бе: {0}?\",\n confirmRemoveAllFiles: \"Сіз барлық файлдарды жоятыныңызға сенімдісіз бе?\",\n questionTitlePatternText: \"Сұрақтың атауы\",\n modalCancelButtonText: \"Болдырмау\",\n modalApplyButtonText: \"Қолдану\",\n filterStringPlaceholder: \"Іздеу үшін теріңіз...\",\n emptyMessage: \"Көрсетілетін деректер жоқ\",\n noEntriesText: \"Әзірге жазбалар жоқ.\\nЖаңа жазбаны қосу үшін төмендегі түймешігіңді басыңыз.\",\n noEntriesReadonlyText: \"Жазбалар жоқ.\",\n more: \"Қосымша\",\n tagboxDoneButtonCaption: \"ЖАҚСЫ\",\n selectToRankEmptyRankedAreaText: \"Барлық таңдаулар ранжирленген\",\n selectToRankEmptyUnrankedAreaText: \"Таңдауды рангтеу үшін осында апарып тастау\",\n ok: \"ЖАҚСЫ\",\n cancel: \"Болдырмау\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"kk\"] = kazakhStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"kk\"] = \"Kazakh\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{1} {0}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Панель {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Таңдау...\"\n// minError: \"The value should not be less than {0}\" => \"Мәні {0} кем болмауы тиіс\"\n// maxError: \"The value should not be greater than {0}\" => \"Мән {0} артық болмауы тиіс\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Файлды осы жерге апарып тастаңыз немесе төмендегі түймені басыңыз және кері жүктеу үшін файлды таңдаңыз.\"\n// emptyRowsText: \"There are no rows.\" => \"Қатарлар жоқ.\"\n// multipletext_itemname: \"text\" => \"мәтін\"\n// signaturePlaceHolder: \"Sign here\" => \"Осында кіру\"\n// modalCancelButtonText: \"Cancel\" => \"Болдырмау\"\n// modalApplyButtonText: \"Apply\" => \"Қолдану\"\n// filterStringPlaceholder: \"Type to search...\" => \"Іздеу үшін теріңіз...\"\n// emptyMessage: \"No data to display\" => \"Көрсетілетін деректер жоқ\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Әзірге жазбалар жоқ.\\nЖаңа жазбаны қосу үшін төмендегі түймешігіңді басыңыз.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Жазбалар жоқ.\"\n// more: \"More\" => \"Қосымша\"\n// tagboxDoneButtonCaption: \"OK\" => \"ЖАҚСЫ\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Барлық таңдаулар ранжирленген\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Таңдауды рангтеу үшін осында апарып тастау\"// takePhotoCaption: \"Take Photo\" => \"Фотосуретке түсу\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Камераны пайдаланып суретке түсу үшін төмендегі түймені басыңыз.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Фотоаппаратты пайдаланып кері жүктеу немесе суретке түсіру үшін файлды апарып тастаыңыз немесе таңдаңыз.\"\n// replaceFileCaption: \"Replace file\" => \"Файлды ауыстыру\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Әр жолдың бірегей мәні болуы тиіс.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Файлдарды кері жүктеу мүмкін емес. 'OnUploadFiles' оқиғасына өңдеушіні қосуыңызды сұраймыз.\"\n// showDetails: \"Show Details\" => \"Егжей-тегжейін көрсету\"\n// hideDetails: \"Hide Details\" => \"Егжей- тегжейін жасы\"\n// ok: \"OK\" => \"ЖАҚСЫ\"\n// cancel: \"Cancel\" => \"Болдырмау\"\n// refuseItemText: \"Refuse to answer\" => \"Жауап беруден бас тарту\"\n// dontKnowItemText: \"Don't know\" => \"Білмеймін\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Сіздің жауабыңыз 64КБ-тан асады. Файлдың өлшемін азайтып, қайталап көріңіз немесе сауалнама иесіне хабарласыңыз.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Қолдың No\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/korean.ts\":\n/*!************************************!*\\\n !*** ./src/localization/korean.ts ***!\n \\************************************/\n/*! exports provided: koreanStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"koreanStrings\", function() { return koreanStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar koreanStrings = {\n pagePrevText: \"이전\",\n pageNextText: \"다음\",\n completeText: \"완료\",\n previewText: \"미리보기\",\n editText: \"수정\",\n startSurveyText: \"시작\",\n otherItemText: \"기타 (설명)\",\n noneItemText: \"없음\",\n refuseItemText: \"대답 거부\",\n dontKnowItemText: \"모르다\",\n selectAllItemText: \"모두 선택\",\n progressText: \"페이지 {1} / {0}\",\n indexText: \"{0} / {1}\",\n panelDynamicProgressText: \"{0} / {1}\",\n panelDynamicTabTextFormat: \"패널 {panelIndex}\",\n questionsProgressText: \"{0} / {1} 개의 질문에 답변함\",\n emptySurvey: \"설문지에 보여지는 페이지나 질문이 없습니다.\",\n completingSurvey: \"설문조사를 완료해 주셔서 감사합니다.\",\n completingSurveyBefore: \"기록에 따르면 이미 설문 조사를 마치셨습니다.\",\n loadingSurvey: \"설문조사가 로드중입니다...\",\n placeholder: \"선택...\",\n ratingOptionsCaption: \"등급을 매기려면 누르세요.\",\n value: \"값\",\n requiredError: \"질문에 답하시오.\",\n requiredErrorInPanel: \"하나 이상의 질문에 답하십시오.\",\n requiredInAllRowsError: \"모든 행에 있는 질문에 답하십시오.\",\n eachRowUniqueError: \"각 행에는 고유한 값이 있어야 합니다.\",\n numericError: \"값은 숫자여야 합니다.\",\n minError: \"값은 {0}보다 작으면 안됩니다.\",\n maxError: \"값은 {0}보다 클 수 없습니다.\",\n textMinLength: \"답변의 길이는 최소 {0}자여야 입니다.\",\n textMaxLength: \"답변의 길이는 {0}자를 초과 할 수 없습니다.\",\n textMinMaxLength: \"답변의 길이는 {0} - {1}자 사이여야 합니다.\",\n minRowCountError: \"최소 {0}개의 행을 채우십시오\",\n minSelectError: \"최소 {0}개의 변수를 선택하십시오.\",\n maxSelectError: \"최대 {0}개의 변수를 선택하십시오.\",\n numericMinMax: \"'{0}'은 {1}보다 크거나 같고 {2}보다 작거나 같아야합니다.\",\n numericMin: \"'{0}'은 {1}보다 크거나 같아야합니다.\",\n numericMax: \"'{0}'은 {1}보다 작거나 같아야합니다.\",\n invalidEmail: \"올바른 이메일 주소를 입력하십시오.\",\n invalidExpression: \"표현식: {0}은 '참'이어야 합니다.\",\n urlRequestError: \"'{0}'으로 잘못된 요청입니다. {1}\",\n urlGetChoicesError: \"비어있는 데이터를 요청했거나 잘못된 속성의 경로입니다.\",\n exceedMaxSize: \"파일 크기가 {0}을 초과 할 수 없습니다.\",\n noUploadFilesHandler: \"파일을 업로드할 수 없습니다. 'onUploadFiles'이벤트에 대한 핸들러를 추가하십시오.\",\n otherRequiredError: \"다른 질문을 작성하십시오.\",\n uploadingFile: \"파일 업로드 중입니다. 잠시 후 다시 시도하십시오.\",\n loadingFile: \"로드 중...\",\n chooseFile: \"파일 선택...\",\n noFileChosen: \"선택된 파일이 없습니다.\",\n filePlaceholder: \"파일을 여기에 놓거나 아래 버튼을 클릭하여 파일을 불러오세요.\",\n confirmDelete: \"기록을 삭제하시겠습니까?\",\n keyDuplicationError: \" 이 값은 고유해야합니다.\",\n addColumn: \"열 추가\",\n addRow: \"행 추가\",\n removeRow: \"제거\",\n emptyRowsText: \"행이 없습니다.\",\n addPanel: \"추가\",\n removePanel: \"제거\",\n showDetails: \"세부 정보 표시\",\n hideDetails: \"세부 정보 숨기기\",\n choices_Item: \"항목\",\n matrix_column: \"열\",\n matrix_row: \"행\",\n multipletext_itemname: \"텍스트\",\n savingData: \"결과가 서버에 저장 중입니다...\",\n savingDataError: \"오류가 발생하여 결과를 저장할 수 없습니다.\",\n savingDataSuccess: \"결과가 성공적으로 저장되었습니다.\",\n savingExceedSize: \"응답이 64KB를 초과합니다. 파일 크기를 줄인 후 다시 시도하거나 설문조사 소유자에게 문의하세요.\",\n saveAgainButton: \"다시 시도하세요.\",\n timerMin: \"분\",\n timerSec: \"초\",\n timerSpentAll: \"현재 페이지에서 {0}을 소요해 총 {1}이 걸렸습니다.\",\n timerSpentPage: \"현재 페이지에서 {0}이 걸렸습니다.\",\n timerSpentSurvey: \"총 {0}이 걸렸습니다.\",\n timerLimitAll: \"현재 페이지에서 {0}/{1}을 소요해 총 {2}/{3}이 걸렸습니다.\",\n timerLimitPage: \"현재 페이지에서 {0}/{1}이 걸렸습니다.\",\n timerLimitSurvey: \"총 {0}/{1}이 걸렸습니다.\",\n clearCaption: \"지우기\",\n signaturePlaceHolder: \"서명하세요.\",\n signaturePlaceHolderReadOnly: \"서명 없음\",\n chooseFileCaption: \"파일 선택\",\n takePhotoCaption: \"사진 찍기\",\n photoPlaceholder: \"아래 버튼을 클릭하여 카메라로 사진을 찍습니다.\",\n fileOrPhotoPlaceholder: \"업로드할 파일을 드래그 앤 드롭하거나 선택하거나 카메라를 사용하여 사진을 찍습니다.\",\n replaceFileCaption: \"파일 바꾸기\",\n removeFileCaption: \"파일 제거\",\n booleanCheckedLabel: \"예\",\n booleanUncheckedLabel: \"아니오\",\n confirmRemoveFile: \"{0} 파일을 제거 하시겠습니까?\",\n confirmRemoveAllFiles: \"모든 파일을 제거 하시겠습니까?\",\n questionTitlePatternText: \"질문 제목\",\n modalCancelButtonText: \"취소\",\n modalApplyButtonText: \"적용\",\n filterStringPlaceholder: \"검색 유형...\",\n emptyMessage: \"표시할 데이터가 없습니다.\",\n noEntriesText: \"아직 항목이 없습니다.\\n새 항목을 추가하려면 아래 버튼을 클릭하세요.\",\n noEntriesReadonlyText: \"항목이 없습니다.\",\n more: \"더보기\",\n tagboxDoneButtonCaption: \"그래\",\n selectToRankEmptyRankedAreaText: \"모든 선택 항목이 순위가 매겨집니다.\",\n selectToRankEmptyUnrankedAreaText: \"여기에 선택 항목을 끌어다 놓아 순위를 매깁니다.\",\n ok: \"그래\",\n cancel: \"취소\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ko\"] = koreanStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ko\"] = \"한국어\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"패널 {panelIndex}\"\n// emptyMessage: \"No data to display\" => \"표시할 데이터가 없습니다.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"항목이 없습니다.\"\n// tagboxDoneButtonCaption: \"OK\" => \"그래\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"모든 선택 항목이 순위가 매겨집니다.\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"여기에 선택 항목을 끌어다 놓아 순위를 매깁니다.\"// takePhotoCaption: \"Take Photo\" => \"사진 찍기\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"아래 버튼을 클릭하여 카메라로 사진을 찍습니다.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"업로드할 파일을 드래그 앤 드롭하거나 선택하거나 카메라를 사용하여 사진을 찍습니다.\"\n// replaceFileCaption: \"Replace file\" => \"파일 바꾸기\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"각 행에는 고유한 값이 있어야 합니다.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"파일을 업로드할 수 없습니다. 'onUploadFiles'이벤트에 대한 핸들러를 추가하십시오.\"\n// showDetails: \"Show Details\" => \"세부 정보 표시\"\n// hideDetails: \"Hide Details\" => \"세부 정보 숨기기\"\n// ok: \"OK\" => \"그래\"\n// cancel: \"Cancel\" => \"취소\"\n// refuseItemText: \"Refuse to answer\" => \"대답 거부\"\n// dontKnowItemText: \"Don't know\" => \"모르다\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"응답이 64KB를 초과합니다. 파일 크기를 줄인 후 다시 시도하거나 설문조사 소유자에게 문의하세요.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"서명 없음\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/latvian.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/latvian.ts ***!\n \\*************************************/\n/*! exports provided: latvianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"latvianSurveyStrings\", function() { return latvianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar latvianSurveyStrings = {\n pagePrevText: \"Iepriekšēja lapa\",\n pageNextText: \"Nākamā lapa\",\n completeText: \"Iesniegt\",\n previewText: \"Priekšskatījums\",\n editText: \"Rediģēt\",\n startSurveyText: \"Sākt\",\n otherItemText: \"Cits (lūdzu, aprakstiet!)\",\n noneItemText: \"Nav\",\n refuseItemText: \"Atteikties atbildēt\",\n dontKnowItemText: \"Es nezinu\",\n selectAllItemText: \"Izvēlēties visus\",\n progressText: \"{0}. lapa no {1}\",\n indexText: \"{0} no {1}\",\n panelDynamicProgressText: \"Ierakstīt {0} no {1}\",\n panelDynamicTabTextFormat: \"Panelis {panelIndex}\",\n questionsProgressText: \"Atbildēts uz {0} / {1} jautājumiem\",\n emptySurvey: \"Nav neviena jautājuma.\",\n completingSurvey: \"Pateicamies Jums par anketas aizpildīšanu!\",\n completingSurveyBefore: \"Mūsu ieraksti liecina, ka Jūs jau esat aizpildījis šo aptauju.\",\n loadingSurvey: \"Ielāde no servera...\",\n placeholder: \"Izvēlēties...\",\n ratingOptionsCaption: \"Nospiediet šeit, lai novērtētu...\",\n value: \"value\",\n requiredError: \"Lūdzu, atbildiet uz jautājumu!\",\n requiredErrorInPanel: \"Lūdzu, atbildiet uz vismaz vienu jautājumu.\",\n requiredInAllRowsError: \"Lūdzu, atbildiet uz jautājumiem visās rindās.\",\n eachRowUniqueError: \"Katrai rindai jābūt unikālai vērtībai.\",\n numericError: \"Atbildei ir jābūt skaitlim.\",\n minError: \"Vērtība nedrīkst būt mazāka par {0}\",\n maxError: \"Vērtība nedrīkst būt lielāka par {0}\",\n textMinLength: \"Lūdzu, ievadiet vismaz {0} simbolus.\",\n textMaxLength: \"Lūdzu, ievadiet mazāk nekā {0} rakstzīmes.\",\n textMinMaxLength: \"Lūdzu, ievadiet vairāk nekā {0} rakstzīmes un mazāk nekā {1} rakstzīmes.\",\n minRowCountError: \"Lūdzu, aizpildiet vismaz {0} rindas.\",\n minSelectError: \"Lūdzu, izvēlieties vismaz {0} variantu.\",\n maxSelectError: \"Lūdzu, izvēlieties ne vairak par {0} variantiem.\",\n numericMinMax: \"'{0}' jābūt vienādam vai lielākam nekā {1}, un vienādam vai mazākam, nekā {2}\",\n numericMin: \"'{0}' jābūt vienādam vai lielākam {1}\",\n numericMax: \"'{0}' jābūt vienādam vai lielākam {1}\",\n invalidEmail: \"Lūdzu, ievadiet pareizu e-pasta adresi!\",\n invalidExpression: \"Izteicienam: {0} jāatgriež “true”.\",\n urlRequestError: \"Pieprasījumā tika atgriezta kļūda “{0}”. {1}\",\n urlGetChoicesError: \"Pieprasījums atgrieza tukšus datus vai rekvizīts “path” ir nepareizs\",\n exceedMaxSize: \"Faila lielums nedrīkst pārsniegt {0}.\",\n noUploadFilesHandler: \"Failus nevar augšupielādēt. Lūdzu, pievienojiet apdarinātāju notikumam \\\"onUploadFiles\\\".\",\n otherRequiredError: \"Lūdzu, ievadiet datus laukā 'Cits'\",\n uploadingFile: \"Jūsu fails tiek augšupielādēts. Lūdzu, uzgaidiet dažas sekundes un mēģiniet vēlreiz.\",\n loadingFile: \"Notiek ielāde ...\",\n chooseFile: \"Izvēlieties failus ...\",\n noFileChosen: \"Nav izvēlēts neviens fails\",\n filePlaceholder: \"Lai pievienotu, ievelciet failu šeit vai arī klikšķiniet uz zemāk redzamās pogas\",\n confirmDelete: \"Vai vēlaties izdzēst ierakstu?\",\n keyDuplicationError: \"Šai vērtībai jābūt unikālai.\",\n addColumn: \"Pievienot kolonnu\",\n addRow: \"Pievienot rindu\",\n removeRow: \"Noņemt\",\n emptyRowsText: \"Nav rindu.\",\n addPanel: \"Pievieno jaunu\",\n removePanel: \"Noņemt\",\n showDetails: \"Rādīt detalizētu informāciju\",\n hideDetails: \"Slēpt detaļas\",\n choices_Item: \"vienums\",\n matrix_column: \"Sleja\",\n matrix_row: \"Rinda\",\n multipletext_itemname: \"teksts\",\n savingData: \"Rezultāti tiek saglabāti serverī ...\",\n savingDataError: \"Radās kļūda, un mēs nevarējām saglabāt rezultātus.\",\n savingDataSuccess: \"Rezultāti tika veiksmīgi saglabāti!\",\n savingExceedSize: \"Jūsu atbilde pārsniedz 64 KB. Lūdzu, samaziniet sava(-u) faila(-u) lielumu un mēģiniet vēlreiz vai sazinieties ar aptaujas īpašnieku.\",\n saveAgainButton: \"Mēģiniet vēlreiz\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Šajā lapā esat iztērējis {0} un kopā {1}.\",\n timerSpentPage: \"Šajā lapā esat iztērējis {0}.\",\n timerSpentSurvey: \"Kopā esat iztērējis {0}.\",\n timerLimitAll: \"Šajā lapā esat iztērējis {0} no {1} un kopā {2} no {3}.\",\n timerLimitPage: \"Šajā lapā esat iztērējis {0} no {1}.\",\n timerLimitSurvey: \"Kopā esat iztērējis {0} no {1}.\",\n clearCaption: \"Iztīrīt\",\n signaturePlaceHolder: \"Parakstieties šeit\",\n signaturePlaceHolderReadOnly: \"Nav paraksta\",\n chooseFileCaption: \"Izvēlēties failu\",\n takePhotoCaption: \"Uzņemt fotoattēlu\",\n photoPlaceholder: \"Noklikšķiniet uz pogas zemāk, lai uzņemtu fotoattēlu, izmantojot kameru.\",\n fileOrPhotoPlaceholder: \"Velciet un nometiet vai atlasiet failu, ko augšupielādēt vai uzņemt fotoattēlu, izmantojot kameru.\",\n replaceFileCaption: \"Aizstāt failu\",\n removeFileCaption: \"Noņemiet šo failu\",\n booleanCheckedLabel: \"Jā\",\n booleanUncheckedLabel: \"Nē\",\n confirmRemoveFile: \"Vai tiešām vēlaties noņemt šo failu: {0}?\",\n confirmRemoveAllFiles: \"Vai tiešām vēlaties noņemt visus failus?\",\n questionTitlePatternText: \"Jautājuma nosaukums\",\n modalCancelButtonText: \"Atcelt\",\n modalApplyButtonText: \"Pielietot\",\n filterStringPlaceholder: \"Ierakstiet, lai meklētu...\",\n emptyMessage: \"Nav datu, ko rādīt\",\n noEntriesText: \"Vēl nav neviena ieraksta.\\nNoklikšķiniet uz zemāk esošās pogas, lai pievienotu jaunu ierakstu.\",\n noEntriesReadonlyText: \"Ierakstu nav.\",\n more: \"Vairāk\",\n tagboxDoneButtonCaption: \"LABI\",\n selectToRankEmptyRankedAreaText: \"Visas izvēles ir sarindotas\",\n selectToRankEmptyUnrankedAreaText: \"Velciet un nometiet izvēles iespējas šeit, lai tās sarindotu\",\n ok: \"LABI\",\n cancel: \"Atcelt\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"lv\"] = latvianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"lv\"] = \"latviešu\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panelis {panelIndex}\"\n// emptyMessage: \"No data to display\" => \"Nav datu, ko rādīt\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Ierakstu nav.\"\n// more: \"More\" => \"Vairāk\"\n// tagboxDoneButtonCaption: \"OK\" => \"LABI\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Visas izvēles ir sarindotas\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Velciet un nometiet izvēles iespējas šeit, lai tās sarindotu\"// takePhotoCaption: \"Take Photo\" => \"Uzņemt fotoattēlu\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Noklikšķiniet uz pogas zemāk, lai uzņemtu fotoattēlu, izmantojot kameru.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Velciet un nometiet vai atlasiet failu, ko augšupielādēt vai uzņemt fotoattēlu, izmantojot kameru.\"\n// replaceFileCaption: \"Replace file\" => \"Aizstāt failu\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Katrai rindai jābūt unikālai vērtībai.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Failus nevar augšupielādēt. Lūdzu, pievienojiet apdarinātāju notikumam \\\"onUploadFiles\\\".\"\n// showDetails: \"Show Details\" => \"Rādīt detalizētu informāciju\"\n// hideDetails: \"Hide Details\" => \"Slēpt detaļas\"\n// ok: \"OK\" => \"LABI\"\n// cancel: \"Cancel\" => \"Atcelt\"\n// refuseItemText: \"Refuse to answer\" => \"Atteikties atbildēt\"\n// dontKnowItemText: \"Don't know\" => \"Es nezinu\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Jūsu atbilde pārsniedz 64 KB. Lūdzu, samaziniet sava(-u) faila(-u) lielumu un mēģiniet vēlreiz vai sazinieties ar aptaujas īpašnieku.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Nav paraksta\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/lithuanian.ts\":\n/*!****************************************!*\\\n !*** ./src/localization/lithuanian.ts ***!\n \\****************************************/\n/*! exports provided: lithuaniaSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lithuaniaSurveyStrings\", function() { return lithuaniaSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar lithuaniaSurveyStrings = {\n pagePrevText: \"Atgal\",\n pageNextText: \"Toliau\",\n completeText: \"Baigti\",\n previewText: \"Peržiūra\",\n editText: \"Redaguoti\",\n startSurveyText: \"Pradėti\",\n otherItemText: \"Kita (įvesti)\",\n noneItemText: \"Nėra\",\n refuseItemText: \"Atsisakyti atsakyti\",\n dontKnowItemText: \"Nežinau\",\n selectAllItemText: \"Pasirinkti visus\",\n progressText: \"Puslapis {0} iš {1}\",\n indexText: \"{1} {0}\",\n panelDynamicProgressText: \"Įrašyti {0} iš {1}\",\n panelDynamicTabTextFormat: \"Skydelis {panelIndex}\",\n questionsProgressText: \"Atsakė į {0} / {1} klausimus\",\n emptySurvey: \"Apklausoje nėra matomo puslapio ar klausimo.\",\n completingSurvey: \"Dėkojame už dalyvavimą apklausoje!\",\n completingSurveyBefore: \"Mūsų įrašai rodo, kad jau atlikote šią apklausą.\",\n loadingSurvey: \"Prašome palaukti...\",\n placeholder: \"Pasirinkti...\",\n ratingOptionsCaption: \"Žymėti...\",\n value: \"reikšmė\",\n requiredError: \"Būtina atsakyti į šį klausimą.\",\n requiredErrorInPanel: \"Būtina atsakyti bent į vieną klausimą.\",\n requiredInAllRowsError: \"Prašome atsakyti į klausimus visose eilutėse.\",\n eachRowUniqueError: \"Kiekviena eilutė turi turėti unikalią reikšmę.\",\n numericError: \"Turi būti skaičiai.\",\n minError: \"Vertė neturėtų būti mažesnė nei {0}\",\n maxError: \"Vertė neturėtų būti didesnė nei {0}\",\n textMinLength: \"Prašome suvesti bent {0} simbolius.\",\n textMaxLength: \"Prašome suvesti mažiau nei {0} simbolių.\",\n textMinMaxLength: \"Prašome suvesti daugiau nei {0} ir mažiau nei {1} simbolių.\",\n minRowCountError: \"Prašome suvesti ne mažiau nei {0} eilučių.\",\n minSelectError: \"Prašome pasirinkti bent {0} variantų.\",\n maxSelectError: \"Pasirinkite ne daugiau kaip {0} variantus.\",\n numericMinMax: \"'{0}' turi būti lygus arba didesnis nei {1} ir lygus arba mažesnis nei {2}\",\n numericMin: \"'{0}' turėtų būti lygus arba didesnis nei {1}\",\n numericMax: \"'{0}' turėtų būti lygus ar mažesnis už {1}\",\n invalidEmail: \"Prašome įvesti galiojantį elektroninio pašto adresą.\",\n invalidExpression: \"Reikšmė: {0} turi grąžinti 'true'.\",\n urlRequestError: \"Užklausa grąžino klaidą'{0}'. {1}\",\n urlGetChoicesError: \"Užklausa grąžino tuščius duomenis arba 'path' savybė yra neteisinga\",\n exceedMaxSize: \"Failo dydis neturi viršyti {0}.\",\n noUploadFilesHandler: \"Failų įkelti negalima. Pridėkite įvykio \\\"onUploadFiles\\\" tvarkytoją.\",\n otherRequiredError: \"Įveskite kitą reikšmę.\",\n uploadingFile: \"Jūsų failas yra keliamas. Palaukite keletą sekundžių ir bandykite dar kartą.\",\n loadingFile: \"Prašome palaukti...\",\n chooseFile: \"Pasirinkti failą(us)...\",\n noFileChosen: \"Nepasirinktas joks failas\",\n filePlaceholder: \"Nuvilkite failą čia arba spustelėkite žemiau esantį mygtuką ir pasirinkite failą, kurį norite įkelti.\",\n confirmDelete: \"Ar norite ištrinti įrašą?\",\n keyDuplicationError: \"Ši reikšmė turėtų būti unikali.\",\n addColumn: \"Pridėti stulpelį\",\n addRow: \"Pridėti eilutę\",\n removeRow: \"Ištrinti\",\n emptyRowsText: \"Eilių nėra.\",\n addPanel: \"Pridėti naują\",\n removePanel: \"Ištrinti\",\n showDetails: \"Rodyti išsamią informaciją\",\n hideDetails: \"Slėpti išsamią informaciją\",\n choices_Item: \"elementas\",\n matrix_column: \"Stulpelis\",\n matrix_row: \"Eilutė\",\n multipletext_itemname: \"SMS žinutė\",\n savingData: \"Rezultatai saugomi serveryje...\",\n savingDataError: \"Įvyko klaida ir mes negalėjome išsaugoti rezultatų.\",\n savingDataSuccess: \"Rezultatai buvo išsaugoti sėkmingai!\",\n savingExceedSize: \"Jūsų atsakymas viršija 64 KB. Sumažinkite failo (-ų) dydį ir bandykite dar kartą arba susisiekite su apklausos savininku.\",\n saveAgainButton: \"Bandyti dar kartą\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Praleidote {0} šiame puslapyje ir {1} iš viso.\",\n timerSpentPage: \"Praleidote {0} šiame puslapyje.\",\n timerSpentSurvey: \"Praleidote {0} iš viso.\",\n timerLimitAll: \"Praleidote {0} iš {1} šiame puslapyje ir {2} iš {3} iš viso.\",\n timerLimitPage: \"Praleidote {0} iš {1} šiame puslapyje.\",\n timerLimitSurvey: \"Praleidote {0} iš {1} iš viso.\",\n clearCaption: \"Valyti\",\n signaturePlaceHolder: \"Pasirašykite čia\",\n signaturePlaceHolderReadOnly: \"Nėra parašo\",\n chooseFileCaption: \"Pasirinkti failą\",\n takePhotoCaption: \"Fotografuoti\",\n photoPlaceholder: \"Spustelėkite žemiau esantį mygtuką, kad nufotografuotumėte fotoaparatu.\",\n fileOrPhotoPlaceholder: \"Nuvilkite arba pasirinkite failą, kurį norite įkelti arba nufotografuoti naudodami fotoaparatą.\",\n replaceFileCaption: \"Pakeiskite failą\",\n removeFileCaption: \"Ištrinti šį failą\",\n booleanCheckedLabel: \"Taip\",\n booleanUncheckedLabel: \"Ne\",\n confirmRemoveFile: \"Ar tikrai norite pašalinti šį failą: {0}?\",\n confirmRemoveAllFiles: \"Ar tikrai norite pašalinti visus failus?\",\n questionTitlePatternText: \"Klausimo pavadinimas\",\n modalCancelButtonText: \"Atšaukti\",\n modalApplyButtonText: \"Vartoti\",\n filterStringPlaceholder: \"Įveskite, kad ieškotumėte...\",\n emptyMessage: \"Nėra rodomų duomenų\",\n noEntriesText: \"Įrašų dar nėra.\\nSpustelėkite žemiau esantį mygtuką, kad pridėtumėte naują įrašą.\",\n noEntriesReadonlyText: \"Įrašų nėra.\",\n more: \"Daugiau\",\n tagboxDoneButtonCaption: \"GERAI\",\n selectToRankEmptyRankedAreaText: \"Visi pasirinkimai yra reitinguojami\",\n selectToRankEmptyUnrankedAreaText: \"Nuvilkite pasirinkimus čia, kad juos reitinguotumėte\",\n ok: \"GERAI\",\n cancel: \"Atšaukti\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"lt\"] = lithuaniaSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"lt\"] = \"lietuvių\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{1} {0}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Skydelis {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Žymėti...\"\n// minError: \"The value should not be less than {0}\" => \"Vertė neturėtų būti mažesnė nei {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Vertė neturėtų būti didesnė nei {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Nuvilkite failą čia arba spustelėkite žemiau esantį mygtuką ir pasirinkite failą, kurį norite įkelti.\"\n// emptyRowsText: \"There are no rows.\" => \"Eilių nėra.\"\n// multipletext_itemname: \"text\" => \"SMS žinutė\"\n// signaturePlaceHolder: \"Sign here\" => \"Pasirašykite čia\"\n// modalCancelButtonText: \"Cancel\" => \"Atšaukti\"\n// modalApplyButtonText: \"Apply\" => \"Vartoti\"\n// filterStringPlaceholder: \"Type to search...\" => \"Įveskite, kad ieškotumėte...\"\n// emptyMessage: \"No data to display\" => \"Nėra rodomų duomenų\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Įrašų dar nėra.\\nSpustelėkite žemiau esantį mygtuką, kad pridėtumėte naują įrašą.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Įrašų nėra.\"\n// more: \"More\" => \"Daugiau\"\n// tagboxDoneButtonCaption: \"OK\" => \"GERAI\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Visi pasirinkimai yra reitinguojami\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Nuvilkite pasirinkimus čia, kad juos reitinguotumėte\"// takePhotoCaption: \"Take Photo\" => \"Fotografuoti\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Spustelėkite žemiau esantį mygtuką, kad nufotografuotumėte fotoaparatu.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Nuvilkite arba pasirinkite failą, kurį norite įkelti arba nufotografuoti naudodami fotoaparatą.\"\n// replaceFileCaption: \"Replace file\" => \"Pakeiskite failą\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Kiekviena eilutė turi turėti unikalią reikšmę.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Failų įkelti negalima. Pridėkite įvykio \\\"onUploadFiles\\\" tvarkytoją.\"\n// showDetails: \"Show Details\" => \"Rodyti išsamią informaciją\"\n// hideDetails: \"Hide Details\" => \"Slėpti išsamią informaciją\"\n// ok: \"OK\" => \"GERAI\"\n// cancel: \"Cancel\" => \"Atšaukti\"\n// refuseItemText: \"Refuse to answer\" => \"Atsisakyti atsakyti\"\n// dontKnowItemText: \"Don't know\" => \"Nežinau\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Jūsų atsakymas viršija 64 KB. Sumažinkite failo (-ų) dydį ir bandykite dar kartą arba susisiekite su apklausos savininku.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Nėra parašo\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/macedonian.ts\":\n/*!****************************************!*\\\n !*** ./src/localization/macedonian.ts ***!\n \\****************************************/\n/*! exports provided: macedonianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"macedonianSurveyStrings\", function() { return macedonianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar macedonianSurveyStrings = {\n pagePrevText: \"Претходна\",\n pageNextText: \"Следно\",\n completeText: \"Заврши\",\n previewText: \"Преглед\",\n editText: \"Уредување\",\n startSurveyText: \"Започнете\",\n otherItemText: \"Друго (опиши)\",\n noneItemText: \"Ништо\",\n refuseItemText: \"Одбиј да одговориш.\",\n dontKnowItemText: \"Не знам\",\n selectAllItemText: \"Селектирај се\",\n progressText: \"Страница {0} од {1}\",\n indexText: \"{0} на {1}\",\n panelDynamicProgressText: \"Сними {0} од {1}\",\n panelDynamicTabTextFormat: \"Панел {панел Индекс}\",\n questionsProgressText: \"Одговорени на {0} / {1} прашања\",\n emptySurvey: \"Нема видлива страница или прашање во истражувањето.\",\n completingSurvey: \"Ви благодариме што го завршивте истражувањето!\",\n completingSurveyBefore: \"Нашите записи покажуваат дека веќе сте го завршиле ова истражување.\",\n loadingSurvey: \"Анкетата се вчитува ...\",\n placeholder: \"Изберете ...\",\n ratingOptionsCaption: \"Изберете...\",\n value: \"вредност\",\n requiredError: \"Ве молам, одговорете на прашањето.\",\n requiredErrorInPanel: \"Ве молам, одговорете барем на едно прашање.\",\n requiredInAllRowsError: \"Ве молиме, одговорете на прашања во сите редови.\",\n eachRowUniqueError: \"Секој ред мора да има уникатна вредност.\",\n numericError: \"Вредноста треба да биде нумеричка.\",\n minError: \"Вредноста не треба да биде помала од {0}\",\n maxError: \"Вредноста не треба да биде поголема од {0}\",\n textMinLength: \"Внесете најмалку {0} знак/ци.\",\n textMaxLength: \"Внесете не повеќе од {0} знак/ци.\",\n textMinMaxLength: \"Внесете најмалку {0} и не повеќе од {1} знаци.\",\n minRowCountError: \"Пополнете најмалку {0} ред(ови).\",\n minSelectError: \"Ве молиме изберете најмалку {0} варијанта(и).\",\n maxSelectError: \"Изберете не повеќе од {0} варијанта(и).\",\n numericMinMax: \"'{0}' треба да биде најмалку {1} и најмногу {2}\",\n numericMin: \"'{0}' треба да биде најмалку {1}\",\n numericMax: \"'{0}' треба да биде најмногу {1}\",\n invalidEmail: \"Ве молиме внесете валидна е-маил адреса.\",\n invalidExpression: \"Изразот: {0} треба да се врати 'true'.\",\n urlRequestError: \"Барањето врати грешка '{0}'. {1} \",\n urlGetChoicesError: \"Барањето врати празни податоци или својството 'path' е неточно\",\n exceedMaxSize: \"Големината на датотеката не треба да надминува {0}.\",\n noUploadFilesHandler: \"Фајловите не можат да се качуваат. Ве молиме додадете раководител за настанот 'onUploadFiles'.\",\n otherRequiredError: \"Внесете ја другата вредност.\",\n uploadingFile: \"Вашата датотека се поставува. Ве молиме почекајте неколку секунди и обидете се повторно.\",\n loadingFile: \"Се вчитува ...\",\n chooseFile: \"Изберете датотека (и) ...\",\n noFileChosen: \"Не се избрани датотеки\",\n filePlaceholder: \"Пуштете датотека овде или кликнете на копчето подолу за да ја вчитате датотеката.\",\n confirmDelete: \"Дали сакате да го избришете записот?\",\n keyDuplicationError: \"Оваа вредност треба да биде единствена.\",\n addColumn: \"Додај колона\",\n addRow: \"Додади ред\",\n removeRow: \"Отстрани\",\n emptyRowsText: \"Нема редови.\",\n addPanel: \"Додади ново\",\n removePanel: \"Отстрани\",\n showDetails: \"Прикажување на деталите\",\n hideDetails: \"Сокриј ги деталите.\",\n choices_Item: \"ставка\",\n matrix_column: \"Колона\",\n matrix_row: \"Ред\",\n multipletext_itemname: \"текст.\",\n savingData: \"Резултатите се зачувуваат на серверот ...\",\n savingDataError: \"Настана грешка и не можевме да ги зачуваме резултатите.\",\n savingDataSuccess: \"Резултатите беа успешно зачувани!\",\n savingExceedSize: \"Вашиот одговор надминува 64KB. Ве молиме да ја намалите големината на вашата(ите) датотека(и) и обидете се повторно или контактирајте го сопственикот на истражувањето.\",\n saveAgainButton: \"Обиди се повторно\",\n timerMin: \"мин\",\n timerSec: \"сек\",\n timerSpentAll: \"Поминавте {0} на оваа страница и вкупно {1}.\",\n timerSpentPage: \"Поминавте {0} на оваа страница.\",\n timerSpentSurvey: \"Вие потрошивте вкупно {0}.\",\n timerLimitAll: \"Поминавте {0} од {1} на оваа страница и {2} од {3} вкупно.\",\n timerLimitPage: \"Поминавте {0} од {1} на оваа страница.\",\n timerLimitSurvey: \"Вие потрошивте вкупно {0} од {1}.\",\n clearCaption: \"Да расчисти\",\n signaturePlaceHolder: \"Потпиши се овде.\",\n signaturePlaceHolderReadOnly: \"Нема потпис\",\n chooseFileCaption: \"Изберете датотека\",\n takePhotoCaption: \"Фотографирајте\",\n photoPlaceholder: \"Кликнете на копчето подолу за да фотографирате користејќи ја камерата.\",\n fileOrPhotoPlaceholder: \"Влечете и фрлајте или изберете датотека за качување или фотографирање користејќи ја камерата.\",\n replaceFileCaption: \"Заменете го фајлот.\",\n removeFileCaption: \"Отстранете ја оваа датотека\",\n booleanCheckedLabel: \"Да\",\n booleanUncheckedLabel: \"Не\",\n confirmRemoveFile: \"Дали сте сигурни дека сакате да ја отстраните оваа датотека: {0}?\",\n confirmRemoveAllFiles: \"Дали сте сигурни дека сакате да ги отстраните сите датотеки?\",\n questionTitlePatternText: \"Наслов на прашањето\",\n modalCancelButtonText: \"Откажи\",\n modalApplyButtonText: \"Аплицирај\",\n filterStringPlaceholder: \"Тип за пребарување...\",\n emptyMessage: \"Нема податоци за прикажување\",\n noEntriesText: \"Сеуште нема влезници.\\nКликнете на копчето подолу за да додадете нов влез.\",\n noEntriesReadonlyText: \"Нема влезници.\",\n more: \"Повеќе\",\n tagboxDoneButtonCaption: \"ДОБРО\",\n selectToRankEmptyRankedAreaText: \"Сите избори се рангирани\",\n selectToRankEmptyUnrankedAreaText: \"Влечете и фрлете го изборот овде за да ги рангирате\",\n ok: \"ДОБРО\",\n cancel: \"Откажи\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"mk\"] = macedonianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"mk\"] = \"Македонски\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} на {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Панел {панел Индекс}\"\n// ratingOptionsCaption: \"Select...\" => \"Изберете...\"\n// multipletext_itemname: \"text\" => \"текст.\"\n// signaturePlaceHolder: \"Sign here\" => \"Потпиши се овде.\"\n// filterStringPlaceholder: \"Type to search...\" => \"Тип за пребарување...\"\n// emptyMessage: \"No data to display\" => \"Нема податоци за прикажување\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Сеуште нема влезници.\\nКликнете на копчето подолу за да додадете нов влез.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Нема влезници.\"\n// more: \"More\" => \"Повеќе\"\n// tagboxDoneButtonCaption: \"OK\" => \"ДОБРО\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Сите избори се рангирани\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Влечете и фрлете го изборот овде за да ги рангирате\"// takePhotoCaption: \"Take Photo\" => \"Фотографирајте\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Кликнете на копчето подолу за да фотографирате користејќи ја камерата.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Влечете и фрлајте или изберете датотека за качување или фотографирање користејќи ја камерата.\"\n// replaceFileCaption: \"Replace file\" => \"Заменете го фајлот.\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Секој ред мора да има уникатна вредност.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Фајловите не можат да се качуваат. Ве молиме додадете раководител за настанот 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Прикажување на деталите\"\n// hideDetails: \"Hide Details\" => \"Сокриј ги деталите.\"\n// ok: \"OK\" => \"ДОБРО\"\n// cancel: \"Cancel\" => \"Откажи\"\n// refuseItemText: \"Refuse to answer\" => \"Одбиј да одговориш.\"\n// dontKnowItemText: \"Don't know\" => \"Не знам\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Вашиот одговор надминува 64KB. Ве молиме да ја намалите големината на вашата(ите) датотека(и) и обидете се повторно или контактирајте го сопственикот на истражувањето.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Нема потпис\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/malay.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/malay.ts ***!\n \\***********************************/\n/*! exports provided: malaySurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"malaySurveyStrings\", function() { return malaySurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar malaySurveyStrings = {\n pagePrevText: \"Sebelumnya\",\n pageNextText: \"Seterusnya\",\n completeText: \"Selesai\",\n previewText: \"Pratonton\",\n editText: \"Edit\",\n startSurveyText: \"Mula\",\n otherItemText: \"Lain (terangkan)\",\n noneItemText: \"Tiada\",\n refuseItemText: \"Enggan menjawab\",\n dontKnowItemText: \"Tak tahu\",\n selectAllItemText: \"Pilih Semua\",\n progressText: \"Halaman {0} daripada {1}\",\n indexText: \"{0} {1}\",\n panelDynamicProgressText: \"Rekod {0} daripada {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"{0}/{1} soalan telah dijawab\",\n emptySurvey: \"Tiada halaman atau soalan boleh dilihat dalam tinjauan.\",\n completingSurvey: \"Terima kasih kerana melengkapkan tinjauan!\",\n completingSurveyBefore: \"Rekod kami menunjukkan yang anda telah melengkapkan tinjauan ini.\",\n loadingSurvey: \"Memuatkan Tinjauan...\",\n placeholder: \"Pilih...\",\n ratingOptionsCaption: \"Pilih...\",\n value: \"nilai\",\n requiredError: \"Respons diperlukan.\",\n requiredErrorInPanel: \"Respons diperlukan: jawab sekurang-kurangnya satu soalan.\",\n requiredInAllRowsError: \"Respons diperlukan: jawab soalan dalam semua baris.\",\n eachRowUniqueError: \"Setiap baris mesti mempunyai nilai yang unik.\",\n numericError: \"Nilai mestilah numerik.\",\n minError: \"Nilai tidak boleh kurang daripada {0}\",\n maxError: \"Nilai tidak boleh lebih besar daripada {0}\",\n textMinLength: \"Sila masukkan sekurang-kurangnya {0} aksara.\",\n textMaxLength: \"Sila masukkan tidak lebih daripada {0} aksara.\",\n textMinMaxLength: \"Sila masukkan sekurang-kurangnya {0} dan tidak lebih daripada {1} aksara.\",\n minRowCountError: \"Sila isikan sekurang-kurangnya {0} baris.\",\n minSelectError: \"Sila pilih sekurang-kurangnya {0} varian.\",\n maxSelectError: \"Sila pilih tidak lebih daripada {0} varian.\",\n numericMinMax: \"'{0}' mestilah sekurang-kurangnya {1} dan paling banyak {2}\",\n numericMin: \"'{0}' mestilah sekurang-kurangnya {1}\",\n numericMax: \"'{0}' mestilah paling banyak {1}\",\n invalidEmail: \"Sila masukkan alamat e-mel yang sah.\",\n invalidExpression: \"Ekspresi: {0} hendaklah mengembalikan nilai 'benar'.\",\n urlRequestError: \"Permintaan mengembalikan ralat '{0}'. {1}\",\n urlGetChoicesError: \"Permintaan mengembalikan data kosong atau ciri 'laluan' salah\",\n exceedMaxSize: \"Saiz fail hendaklah tidak melebihi {0}.\",\n noUploadFilesHandler: \"Fail tidak boleh dimuat naik. Sila tambah pengendali untuk acara 'onUploadFiles'.\",\n otherRequiredError: \"Respons diperlukan: masukkan nilai lain.\",\n uploadingFile: \"Fail anda sedang dimuat naik. Sila tunggu beberapa saat dan cuba lagi.\",\n loadingFile: \"Memuat...\",\n chooseFile: \"Pilih fail...\",\n noFileChosen: \"Tiada fail dipilih\",\n filePlaceholder: \"Letakkan fail di sini atau klik butang di bawah untuk memuatkan fail.\",\n confirmDelete: \"Adakah anda ingin memadamkan rekod?\",\n keyDuplicationError: \"Nilai ini hendaklah unik.\",\n addColumn: \"Tambahkan lajur\",\n addRow: \"Tambahkan baris\",\n removeRow: \"Alih keluar\",\n emptyRowsText: \"Tiada baris.\",\n addPanel: \"Tambah baharu\",\n removePanel: \"Alih keluar\",\n showDetails: \"Tunjukkan Butiran\",\n hideDetails: \"Sembunyikan Butiran\",\n choices_Item: \"item\",\n matrix_column: \"Lajur\",\n matrix_row: \"Baris\",\n multipletext_itemname: \"teks\",\n savingData: \"Keputusan sedang disimpan pada pelayan...\",\n savingDataError: \"Ralat berlaku dan kami tidak dapat menyimpan keputusan.\",\n savingDataSuccess: \"Keputusan berjaya disimpan!\",\n savingExceedSize: \"Jawapan anda melebihi 64KB. Sila kurangkan saiz fail anda dan cuba lagi atau hubungi pemilik tinjauan.\",\n saveAgainButton: \"Cuba lagi\",\n timerMin: \"min\",\n timerSec: \"saat\",\n timerSpentAll: \"Anda telah meluangkan {0} pada halaman ini dan {1} secara keseluruhan.\",\n timerSpentPage: \"Anda telah meluangkan {0} pada halaman ini.\",\n timerSpentSurvey: \"Anda telah meluangkan {0} secara keseluruhan.\",\n timerLimitAll: \"Anda telah meluangkan {0} daripada {1} pada halaman ini dan {2} daripada {3} secara keseluruhan.\",\n timerLimitPage: \"Anda telah meluangkan {0} daripada {1} pada halaman ini.\",\n timerLimitSurvey: \"Anda telah meluangkan {0} daripada {1} secara keseluruhan.\",\n clearCaption: \"Kosongkan\",\n signaturePlaceHolder: \"Tandatangan di sini\",\n signaturePlaceHolderReadOnly: \"Tiada tandatangan\",\n chooseFileCaption: \"Pilih fail\",\n takePhotoCaption: \"Ambil gambar\",\n photoPlaceholder: \"Klik butang di bawah untuk mengambil gambar menggunakan kamera.\",\n fileOrPhotoPlaceholder: \"Seret dan lepas atau pilih fail untuk memuat naik atau mengambil foto menggunakan kamera.\",\n replaceFileCaption: \"Gantikan fail\",\n removeFileCaption: \"Alih keluar fail ini\",\n booleanCheckedLabel: \"Ya\",\n booleanUncheckedLabel: \"Tidak\",\n confirmRemoveFile: \"Anda pasti ingin mengalih keluar fail ini: {0}?\",\n confirmRemoveAllFiles: \"Anda pasti ingin mengalih keluar semua fail?\",\n questionTitlePatternText: \"Tajuk Soalan\",\n modalCancelButtonText: \"Batal\",\n modalApplyButtonText: \"Guna\",\n filterStringPlaceholder: \"Taip untuk membuat carian...\",\n emptyMessage: \"Tiada data untuk dipaparkan\",\n noEntriesText: \"Belum ada entri.\\nKlik butang di bawah untuk menambahkan entri.\",\n noEntriesReadonlyText: \"Tiada penyertaan.\",\n more: \"Lebih banyak\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Semua pilihan disenaraikan\",\n selectToRankEmptyUnrankedAreaText: \"Seret dan lepaskan pilihan di sini untuk meletakkannya\",\n ok: \"OK\",\n cancel: \"Batal\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ms\"] = malaySurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ms\"] = \"melayu\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Pilih...\"\n// emptyMessage: \"No data to display\" => \"Tiada data untuk dipaparkan\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Tiada penyertaan.\"\n// more: \"More\" => \"Lebih banyak\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Semua pilihan disenaraikan\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Seret dan lepaskan pilihan di sini untuk meletakkannya\"// takePhotoCaption: \"Take Photo\" => \"Ambil gambar\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Klik butang di bawah untuk mengambil gambar menggunakan kamera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Seret dan lepas atau pilih fail untuk memuat naik atau mengambil foto menggunakan kamera.\"\n// replaceFileCaption: \"Replace file\" => \"Gantikan fail\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Setiap baris mesti mempunyai nilai yang unik.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Fail tidak boleh dimuat naik. Sila tambah pengendali untuk acara 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Tunjukkan Butiran\"\n// hideDetails: \"Hide Details\" => \"Sembunyikan Butiran\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Batal\"\n// refuseItemText: \"Refuse to answer\" => \"Enggan menjawab\"\n// dontKnowItemText: \"Don't know\" => \"Tak tahu\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Jawapan anda melebihi 64KB. Sila kurangkan saiz fail anda dan cuba lagi atau hubungi pemilik tinjauan.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Tiada tandatangan\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/nl-BE.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/nl-BE.ts ***!\n \\***********************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n/* harmony import */ var _dutch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dutch */ \"./src/localization/dutch.ts\");\n\n\n/**\n * This is initialized as a copy of the Dutch strings, when they start to deviate a choice has to be made:\n * - Copy the Dutch set once and move forward as if it are 2 totally different languages\n * - Override the relevant strings only\n */\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"nl-BE\"] = _dutch__WEBPACK_IMPORTED_MODULE_1__[\"dutchSurveyStrings\"];\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"nl-BE\"] = \"vlaams\";\n\n\n/***/ }),\n\n/***/ \"./src/localization/norwegian.ts\":\n/*!***************************************!*\\\n !*** ./src/localization/norwegian.ts ***!\n \\***************************************/\n/*! exports provided: norwegianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"norwegianSurveyStrings\", function() { return norwegianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar norwegianSurveyStrings = {\n pagePrevText: \"Forrige\",\n pageNextText: \"Neste\",\n completeText: \"Fullfør\",\n previewText: \"Forhåndsvisning\",\n editText: \"Redigere\",\n startSurveyText: \"Start\",\n otherItemText: \"Annet (beskriv)\",\n noneItemText: \"Ingen\",\n refuseItemText: \"Nekter å svare\",\n dontKnowItemText: \"Vet ikke\",\n selectAllItemText: \"Velg alle\",\n progressText: \"Side {0} av {1}\",\n indexText: \"{0} av {1}\",\n panelDynamicProgressText: \"Ta opp {0} av {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Besvarte {0} / {1} spørsmål\",\n emptySurvey: \"Det er ingen synlig side eller spørsmål i undersøkelsen.\",\n completingSurvey: \"Takk for at du fullførte undersøkelsen!\",\n completingSurveyBefore: \"Våre data viser at du allerede har gjennomført denne undersøkelsen.\",\n loadingSurvey: \"Undersøkelsen laster...\",\n placeholder: \"Velg...\",\n ratingOptionsCaption: \"Velge...\",\n value: \"verdi\",\n requiredError: \"Vennligst svar på spørsmålet.\",\n requiredErrorInPanel: \"Vennligst svar på minst ett spørsmål.\",\n requiredInAllRowsError: \"Vennligst svar på spørsmål i alle rader.\",\n eachRowUniqueError: \"Hver rad må ha en unik verdi.\",\n numericError: \"Verdien skal være numerisk.\",\n minError: \"Verdien bør ikke være mindre enn {0}\",\n maxError: \"Verdien bør ikke være større enn {0}\",\n textMinLength: \"Vennligst skriv inn minst {0} tegn.\",\n textMaxLength: \"Vennligst skriv inn mindre enn {0} tegn.\",\n textMinMaxLength: \"Vennligst skriv inn mer enn {0} og mindre enn {1} tegn.\",\n minRowCountError: \"Vennligst fyll inn minst {0} rader.\",\n minSelectError: \"Vennligst velg minst {0} varianter.\",\n maxSelectError: \"Vennligst ikke velg mer enn {0} varianter.\",\n numericMinMax: \"'{0}' bør være lik eller mer enn {1} og lik eller mindre enn {2}\",\n numericMin: \"'{0}' bør være lik eller mer enn {1}\",\n numericMax: \"'{0}' bør være lik eller mindre enn {1}\",\n invalidEmail: \"Vennligst skriv inn en gyldig e-post adresse.\",\n invalidExpression: \"Uttrykket: {0} skal returnere 'sant'.\",\n urlRequestError: \"Forespørselen returnerte feilen '{0}'. {1}\",\n urlGetChoicesError: \"Forespørselen returnerte tomme data, eller 'sti' -egenskapen er feil\",\n exceedMaxSize: \"Filstørrelsen bør ikke overstige {0}.\",\n noUploadFilesHandler: \"Filer kan ikke lastes opp. Legg til et behandlingsprogram for onUploadFiles-hendelsen.\",\n otherRequiredError: \"Vennligst skriv inn den andre verdien.\",\n uploadingFile: \"Filen din lastes opp. Vennligst vent noen sekunder og prøv igjen.\",\n loadingFile: \"Laster inn ...\",\n chooseFile: \"Velg fil (er) ...\",\n noFileChosen: \"Ingen fil valgt\",\n filePlaceholder: \"Dra og slipp en fil her, eller klikk på knappen nedenfor og velg en fil du vil laste opp.\",\n confirmDelete: \"Ønsker du å slette posten?\",\n keyDuplicationError: \"Denne verdien skal være unik.\",\n addColumn: \"Legg til kolonne\",\n addRow: \"Legg til rad\",\n removeRow: \"Fjern\",\n emptyRowsText: \"Det er ingen rader.\",\n addPanel: \"Legg til ny\",\n removePanel: \"Fjerne\",\n showDetails: \"Vis detaljer\",\n hideDetails: \"Skjul detaljer\",\n choices_Item: \"element\",\n matrix_column: \"Kolonne\",\n matrix_row: \"Rad\",\n multipletext_itemname: \"Tekst\",\n savingData: \"Resultatene lagres på serveren ...\",\n savingDataError: \"Det oppsto en feil, og vi kunne ikke lagre resultatene.\",\n savingDataSuccess: \"Resultatene ble lagret!\",\n savingExceedSize: \"Svaret ditt overstiger 64 kB. Reduser størrelsen på filen(e) din(e), og prøv på nytt, eller kontakt eieren av en spørreundersøkelse.\",\n saveAgainButton: \"Prøv igjen\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Du har tilbrakt {0} på denne siden og {1} totalt.\",\n timerSpentPage: \"Du har tilbrakt {0} på denne siden.\",\n timerSpentSurvey: \"Du har tilbrakt {0} totalt.\",\n timerLimitAll: \"Du har tilbrakt {0} av {1} på denne siden og totalt {2} av {3}.\",\n timerLimitPage: \"Du har tilbrakt {0} av {1} på denne siden.\",\n timerLimitSurvey: \"Du har tilbrakt {0} av {1} totalt.\",\n clearCaption: \"Klar\",\n signaturePlaceHolder: \"Logg inn her\",\n signaturePlaceHolderReadOnly: \"Ingen signatur\",\n chooseFileCaption: \"Velg Fil\",\n takePhotoCaption: \"Ta bilde\",\n photoPlaceholder: \"Klikk på knappen nedenfor for å ta et bilde med kameraet.\",\n fileOrPhotoPlaceholder: \"Dra og slipp eller velg en fil for å laste opp eller ta et bilde med kameraet.\",\n replaceFileCaption: \"Erstatt fil\",\n removeFileCaption: \"Fjern denne filen\",\n booleanCheckedLabel: \"Ja\",\n booleanUncheckedLabel: \"Nei\",\n confirmRemoveFile: \"Er du sikker på at du vil fjerne denne filen: {0}?\",\n confirmRemoveAllFiles: \"Er du sikker på at du vil fjerne alle filene?\",\n questionTitlePatternText: \"Spørsmålstittel\",\n modalCancelButtonText: \"Annullere\",\n modalApplyButtonText: \"Bruke\",\n filterStringPlaceholder: \"Skriv for å søke ...\",\n emptyMessage: \"Ingen data å vise\",\n noEntriesText: \"Det er ingen oppføringer ennå.\\nKlikk på knappen nedenfor for å legge til en ny oppføring.\",\n noEntriesReadonlyText: \"Det er ingen oppføringer.\",\n more: \"Mer\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Alle valg er rangert\",\n selectToRankEmptyUnrankedAreaText: \"Dra og slipp valg her for å rangere dem\",\n ok: \"OK\",\n cancel: \"Annullere\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"no\"] = norwegianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"no\"] = \"norsk\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} av {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Velge...\"\n// minError: \"The value should not be less than {0}\" => \"Verdien bør ikke være mindre enn {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Verdien bør ikke være større enn {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Dra og slipp en fil her, eller klikk på knappen nedenfor og velg en fil du vil laste opp.\"\n// emptyRowsText: \"There are no rows.\" => \"Det er ingen rader.\"\n// multipletext_itemname: \"text\" => \"Tekst\"\n// signaturePlaceHolder: \"Sign here\" => \"Logg inn her\"\n// modalCancelButtonText: \"Cancel\" => \"Annullere\"\n// modalApplyButtonText: \"Apply\" => \"Bruke\"\n// filterStringPlaceholder: \"Type to search...\" => \"Skriv for å søke ...\"\n// emptyMessage: \"No data to display\" => \"Ingen data å vise\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Det er ingen oppføringer ennå.\\nKlikk på knappen nedenfor for å legge til en ny oppføring.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Det er ingen oppføringer.\"\n// more: \"More\" => \"Mer\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Alle valg er rangert\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Dra og slipp valg her for å rangere dem\"// takePhotoCaption: \"Take Photo\" => \"Ta bilde\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Klikk på knappen nedenfor for å ta et bilde med kameraet.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Dra og slipp eller velg en fil for å laste opp eller ta et bilde med kameraet.\"\n// replaceFileCaption: \"Replace file\" => \"Erstatt fil\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Hver rad må ha en unik verdi.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Filer kan ikke lastes opp. Legg til et behandlingsprogram for onUploadFiles-hendelsen.\"\n// showDetails: \"Show Details\" => \"Vis detaljer\"\n// hideDetails: \"Hide Details\" => \"Skjul detaljer\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Annullere\"\n// refuseItemText: \"Refuse to answer\" => \"Nekter å svare\"\n// dontKnowItemText: \"Don't know\" => \"Vet ikke\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Svaret ditt overstiger 64 kB. Reduser størrelsen på filen(e) din(e), og prøv på nytt, eller kontakt eieren av en spørreundersøkelse.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Ingen signatur\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/persian.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/persian.ts ***!\n \\*************************************/\n/*! exports provided: persianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"persianSurveyStrings\", function() { return persianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar persianSurveyStrings = {\n pagePrevText: \"قبلی\",\n pageNextText: \"بعدی\",\n completeText: \"تکمیل\",\n previewText: \"پیش نمایش\",\n editText: \"ویرایش\",\n startSurveyText: \"شروع\",\n otherItemText: \"دیگر(توضیح)\",\n noneItemText: \"هیچ\",\n refuseItemText: \"امتناع از پاسخ دادن\",\n dontKnowItemText: \"نمی دانم\",\n selectAllItemText: \"انتخاب همه\",\n progressText: \"صفحه {0} از {1}\",\n indexText: \"{0} {1}\",\n panelDynamicProgressText: \"مورد {0} از {1}\",\n panelDynamicTabTextFormat: \"پنل {panelIndex}\",\n questionsProgressText: \"تعداد پاسخ {0}/{1} سوال\",\n emptySurvey: \"صفحه ای یا گزینه ای برای این پرسشنامه موجود نیست.\",\n completingSurvey: \"از شما بابت تکمیل این پرسشنامه متشکریم\",\n completingSurveyBefore: \"به نظر می رسد هم هم اکنون پرسشنامه را تکمیل کرده اید.\",\n loadingSurvey: \"درحال ایجاد پرسشنامه\",\n placeholder: \"انتخاب کنید...\",\n ratingOptionsCaption: \"انتخاب...\",\n value: \"مقدار\",\n requiredError: \"لطفا به سوال پاسخ دهید\",\n requiredErrorInPanel: \"لطفا حداقل به یک سوال پاسخ دهید.\",\n requiredInAllRowsError: \"لطفا سوالات تمام سطرها را پاسخ دهید.\",\n eachRowUniqueError: \"هر سطر باید یک مقدار منحصر به فرد داشته باشد.\",\n numericError: \"مقدار باید عددی باشد\",\n minError: \"ارزش نباید کمتر از {0}\",\n maxError: \"ارزش نباید بیشتر از {0}\",\n textMinLength: \"لطفا حداقل {0} حرف وارد کنید\",\n textMaxLength: \"لطفا کمتر از {0} حرف وارد کنید.\",\n textMinMaxLength: \"لطفا بیشتر از {0} حرف و کمتر از {1} حرف وارد کنید.\",\n minRowCountError: \"لطفا حداقل {0} سطر وارد کنید.\",\n minSelectError: \"حداقل {0} انتخاب کنید.\",\n maxSelectError: \"لطفا بیشتر از {0} انتخاب کنید.\",\n numericMinMax: \"'{0}' باید بین {1} و {2} باشد\",\n numericMin: \"'{0}' بزرگتر مساوی {1} باشد\",\n numericMax: \"'{0}' باید کوچکتر یا مساوی {1} باشد\",\n invalidEmail: \"لطفا ایمیل صحیح درج کنید\",\n invalidExpression: \"عبارت: {0} پاسخ باید 'true' باشد.\",\n urlRequestError: \"درخواست با خطا روبرو شد: '{0}'. {1}\",\n urlGetChoicesError: \"درخواست مسیری خالی بازگشت داده یا مسیر درست تنظیم نشده\",\n exceedMaxSize: \"بیشترین حجم مجاز فایل: {0}\",\n noUploadFilesHandler: \"پروندهها را نمیتوان بارگذاری کرد. لطفا یک گرداننده برای رویداد \\\"onUploadFiles\\\" اضافه کنید.\",\n otherRequiredError: \"مقدار 'دیگر' را وارد کنید\",\n uploadingFile: \"فایل در حال آیلود است. لطفا صبر کنید.\",\n loadingFile: \"بارگیری...\",\n chooseFile: \"انتخاب فایل(ها)...\",\n noFileChosen: \"هیچ فایلی انتخاب نشده\",\n filePlaceholder: \"کشیدن و رها کردن یک فایل در اینجا و یا کلیک بر روی دکمه زیر و یک فایل برای اپلود را انتخاب کنید.\",\n confirmDelete: \"آیا مایل به حذف این ردیف هستید؟\",\n keyDuplicationError: \"این مقدار باید غیر تکراری باشد\",\n addColumn: \"ستون جدید\",\n addRow: \"سطر جدید\",\n removeRow: \"حذف\",\n emptyRowsText: \"هیچ ردیفی وجود ندارد.\",\n addPanel: \"جدید\",\n removePanel: \"حذف\",\n showDetails: \"نمایش جزئیات\",\n hideDetails: \"مخفی کردن جزئیات\",\n choices_Item: \"آیتم\",\n matrix_column: \"ستون\",\n matrix_row: \"سطر\",\n multipletext_itemname: \"پیامک\",\n savingData: \"نتایج در حال ذخیره سازی در سرور است\",\n savingDataError: \"خطایی در ذخیره سازی نتایج رخ داده است\",\n savingDataSuccess: \"نتایج با موفقیت ذخیره شد\",\n savingExceedSize: \"پاسخ شما بیش از 64KB است. لطفا اندازه فایل(های) خود را کاهش دهید و دوباره تلاش کنید یا با صاحب نظرسنجی تماس بگیرید.\",\n saveAgainButton: \"مجدد تلاش کنید\",\n timerMin: \"دقیقه\",\n timerSec: \"ثانیه\",\n timerSpentAll: \"شما مدت {0} در این صفحه و مدت {1} را در مجموع سپری کرده اید.\",\n timerSpentPage: \"شما مدت {0} را در این صفحه سپری کرده اید.\",\n timerSpentSurvey: \"شما مدت {0} را در مجموع سپری کرده اید.\",\n timerLimitAll: \"شما مدت {0} از {1} در این صفحه و مدت {2} از {3} را در مجموع سپری کرده اید.\",\n timerLimitPage: \"شما مدت {0} از {1} را در این صفحه سپری کرده اید.\",\n timerLimitSurvey: \"شما مدت {0} از {1} را در مجموع سپری کرده اید.\",\n clearCaption: \"خالی کردن\",\n signaturePlaceHolder: \"اینجا را امضا کنید\",\n signaturePlaceHolderReadOnly: \"بدون امضا\",\n chooseFileCaption: \"انتخاب فایل\",\n takePhotoCaption: \"گرفتن عکس\",\n photoPlaceholder: \"روی دکمه زیر کلیک کنید تا با استفاده از دوربین عکس بگیرید.\",\n fileOrPhotoPlaceholder: \"کشیدن و رها کردن یا انتخاب یک فایل برای اپلود یا گرفتن عکس با استفاده از دوربین.\",\n replaceFileCaption: \"جایگزینی پرونده\",\n removeFileCaption: \"حذف این فایل\",\n booleanCheckedLabel: \"بله\",\n booleanUncheckedLabel: \"خیر\",\n confirmRemoveFile: \"آیا میخواهید این فایل را پاک کنید: {0}?\",\n confirmRemoveAllFiles: \"آیا میخواهید تمام فایل ها را پاک کنید?\",\n questionTitlePatternText: \"عنوان سوال\",\n modalCancelButtonText: \"لغو\",\n modalApplyButtonText: \"درخواست\",\n filterStringPlaceholder: \"تایپ برای جستجو...\",\n emptyMessage: \"داده ای برای نمایش وجود ندارد\",\n noEntriesText: \"هنوز هیچ ورودی وجود ندارد.\\nروی دکمه زیر کلیک کنید تا یک ورودی جدید اضافه شود.\",\n noEntriesReadonlyText: \"هیچ ورودی وجود ندارد.\",\n more: \"بیشتر\",\n tagboxDoneButtonCaption: \"باشه\",\n selectToRankEmptyRankedAreaText: \"همه انتخاب ها رتبه بندی می شوند\",\n selectToRankEmptyUnrankedAreaText: \"انتخاب های کشیدن و رها کردن در اینجا برای رتبه بندی انها\",\n ok: \"باشه\",\n cancel: \"لغو\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"fa\"] = persianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"fa\"] = \"فارْسِى\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"پنل {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"انتخاب...\"\n// minError: \"The value should not be less than {0}\" => \"ارزش نباید کمتر از {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"ارزش نباید بیشتر از {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"کشیدن و رها کردن یک فایل در اینجا و یا کلیک بر روی دکمه زیر و یک فایل برای اپلود را انتخاب کنید.\"\n// emptyRowsText: \"There are no rows.\" => \"هیچ ردیفی وجود ندارد.\"\n// multipletext_itemname: \"text\" => \"پیامک\"\n// signaturePlaceHolder: \"Sign here\" => \"اینجا را امضا کنید\"\n// modalCancelButtonText: \"Cancel\" => \"لغو\"\n// modalApplyButtonText: \"Apply\" => \"درخواست\"\n// filterStringPlaceholder: \"Type to search...\" => \"تایپ برای جستجو...\"\n// emptyMessage: \"No data to display\" => \"داده ای برای نمایش وجود ندارد\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"هنوز هیچ ورودی وجود ندارد.\\nروی دکمه زیر کلیک کنید تا یک ورودی جدید اضافه شود.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"هیچ ورودی وجود ندارد.\"\n// more: \"More\" => \"بیشتر\"\n// tagboxDoneButtonCaption: \"OK\" => \"باشه\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"همه انتخاب ها رتبه بندی می شوند\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"انتخاب های کشیدن و رها کردن در اینجا برای رتبه بندی انها\"// takePhotoCaption: \"Take Photo\" => \"گرفتن عکس\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"روی دکمه زیر کلیک کنید تا با استفاده از دوربین عکس بگیرید.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"کشیدن و رها کردن یا انتخاب یک فایل برای اپلود یا گرفتن عکس با استفاده از دوربین.\"\n// replaceFileCaption: \"Replace file\" => \"جایگزینی پرونده\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"هر سطر باید یک مقدار منحصر به فرد داشته باشد.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"پروندهها را نمیتوان بارگذاری کرد. لطفا یک گرداننده برای رویداد \\\"onUploadFiles\\\" اضافه کنید.\"\n// showDetails: \"Show Details\" => \"نمایش جزئیات\"\n// hideDetails: \"Hide Details\" => \"مخفی کردن جزئیات\"\n// ok: \"OK\" => \"باشه\"\n// cancel: \"Cancel\" => \"لغو\"\n// refuseItemText: \"Refuse to answer\" => \"امتناع از پاسخ دادن\"\n// dontKnowItemText: \"Don't know\" => \"نمی دانم\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"پاسخ شما بیش از 64KB است. لطفا اندازه فایل(های) خود را کاهش دهید و دوباره تلاش کنید یا با صاحب نظرسنجی تماس بگیرید.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"بدون امضا\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/polish.ts\":\n/*!************************************!*\\\n !*** ./src/localization/polish.ts ***!\n \\************************************/\n/*! exports provided: polishSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"polishSurveyStrings\", function() { return polishSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar polishSurveyStrings = {\n pagePrevText: \"Wstecz\",\n pageNextText: \"Dalej\",\n completeText: \"Gotowe\",\n previewText: \"Premiera\",\n editText: \"Edycja\",\n startSurveyText: \"Start\",\n otherItemText: \"Inna odpowiedź (wpisz)\",\n noneItemText: \"Brak\",\n refuseItemText: \"Odmów odpowiedzi\",\n dontKnowItemText: \"Nie wiem\",\n selectAllItemText: \"Wybierz wszystkie\",\n progressText: \"Strona {0} z {1}\",\n indexText: \"{0} od {1}\",\n panelDynamicProgressText: \"Zapis {0} z {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Odpowiedzi na {0}/{1} pytania\",\n emptySurvey: \"Nie ma widocznych pytań.\",\n completingSurvey: \"Dziękujemy za wypełnienie ankiety!\",\n completingSurveyBefore: \"Z naszych zapisów wynika, że wypełniłeś już tę ankietę.\",\n loadingSurvey: \"Trwa wczytywanie ankiety...\",\n placeholder: \"Wybierz...\",\n ratingOptionsCaption: \"Kliknij tutaj, aby ocenić...\",\n value: \"Wartość\",\n requiredError: \"Proszę odpowiedzieć na to pytanie.\",\n requiredErrorInPanel: \"Proszę odpowiedzieć na co najmniej jedno pytanie.\",\n requiredInAllRowsError: \"Proszę odpowiedzieć na wszystkie pytania.\",\n eachRowUniqueError: \"Każdy wiersz musi mieć unikatową wartość.\",\n numericError: \"W tym polu można wpisać tylko liczby.\",\n minError: \"Wartość nie powinna być mniejsza niż {0}\",\n maxError: \"Wartość nie powinna być większa niż {0}\",\n textMinLength: \"Proszę wpisać co najmniej {0} znaków.\",\n textMaxLength: \"Proszę wpisać mniej niż {0} znaków.\",\n textMinMaxLength: \"Proszę wpisać więcej niż {0} i mniej niż {1} znaków.\",\n minRowCountError: \"Proszę uzupełnić przynajmniej {0} wierszy.\",\n minSelectError: \"Proszę wybrać co najmniej {0} pozycji.\",\n maxSelectError: \"Proszę wybrać nie więcej niż {0} pozycji.\",\n numericMinMax: \"Odpowiedź '{0}' powinna być większa lub równa {1} oraz mniejsza lub równa {2}\",\n numericMin: \"Odpowiedź '{0}' powinna być większa lub równa {1}\",\n numericMax: \"Odpowiedź '{0}' powinna być mniejsza lub równa {1}\",\n invalidEmail: \"Proszę podać prawidłowy adres email.\",\n invalidExpression: \"Wyrażenie: {0} powinno wracać 'prawdziwe'.\",\n urlRequestError: \"Żądanie zwróciło błąd '{0}'. {1}\",\n urlGetChoicesError: \"Żądanie nie zwróciło danych albo ścieżka jest nieprawidłowa\",\n exceedMaxSize: \"Rozmiar przesłanego pliku nie może przekraczać {0}.\",\n noUploadFilesHandler: \"Nie można przesłać plików. Dodaj moduł obsługi zdarzenia \\\"onUploadFiles\\\".\",\n otherRequiredError: \"Proszę podać inną odpowiedź.\",\n uploadingFile: \"Trwa przenoszenie Twojego pliku, proszę spróbować ponownie za kilka sekund.\",\n loadingFile: \"Ładowanie...\",\n chooseFile: \"Wybierz plik(i)...\",\n noFileChosen: \"Nie wybrano żadnego pliku\",\n filePlaceholder: \"Upuść plik tutaj lub kliknij przycisk poniżej, aby załadować plik.\",\n confirmDelete: \"Chcesz skasować nagranie?\",\n keyDuplicationError: \"Ta wartość powinna być wyjątkowa.\",\n addColumn: \"Dodaj kolumnę\",\n addRow: \"Dodaj wiersz\",\n removeRow: \"Usuń\",\n emptyRowsText: \"Nie ma rzędów.\",\n addPanel: \"Dodaj panel\",\n removePanel: \"Usuń\",\n showDetails: \"Pokaż szczegóły\",\n hideDetails: \"Ukryj szczegóły\",\n choices_Item: \"element\",\n matrix_column: \"Kolumna\",\n matrix_row: \"Wiersz\",\n multipletext_itemname: \"tekst\",\n savingData: \"Zapisuję wyniki ankiety na serwerze...\",\n savingDataError: \"Wystąpił błąd i wyniki nie mogły zostać zapisane.\",\n savingDataSuccess: \"Wyniki zostały poprawnie zapisane!\",\n savingExceedSize: \"Twoja odpowiedź przekracza 64 KB. Zmniejsz rozmiar plików i spróbuj ponownie lub skontaktuj się z właścicielem ankiety.\",\n saveAgainButton: \"Spróbuj ponownie\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Spędziłeś {0} na tej stronie a w sumie {1}.\",\n timerSpentPage: \"Spędziłeś {0} na tej stronie.\",\n timerSpentSurvey: \"Spędziłeś w sumie {0}.\",\n timerLimitAll: \"Spędziłeś {0} z {1} na tej stronie a w sumie {2} z {3}.\",\n timerLimitPage: \"Spędziłeś {0} z {1} na tej stronie\",\n timerLimitSurvey: \"Spędziłeś {0} z {1}.\",\n clearCaption: \"Wyczyść\",\n signaturePlaceHolder: \"Podpisz tutaj\",\n signaturePlaceHolderReadOnly: \"Brak podpisu\",\n chooseFileCaption: \"Wybierz plik\",\n takePhotoCaption: \"Zrób zdjęcie\",\n photoPlaceholder: \"Kliknij przycisk poniżej, aby zrobić zdjęcie aparatem.\",\n fileOrPhotoPlaceholder: \"Przeciągnij i upuść lub wybierz plik, który chcesz przesłać lub zrobić zdjęcie za pomocą aparatu.\",\n replaceFileCaption: \"Zastąp plik\",\n removeFileCaption: \"Usuń ten plik\",\n booleanCheckedLabel: \"Tak\",\n booleanUncheckedLabel: \"Nie\",\n confirmRemoveFile: \"Jesteś pewien, że chcesz usunąć ten plik: {0}?\",\n confirmRemoveAllFiles: \"Jesteś pewien, że chcesz usunąć wszystkie pliki?\",\n questionTitlePatternText: \"Tytuł pytania\",\n modalCancelButtonText: \"Anulować\",\n modalApplyButtonText: \"Zastosować\",\n filterStringPlaceholder: \"Wpisz aby wyszukać...\",\n emptyMessage: \"Brak danych do wyświetlenia\",\n noEntriesText: \"Nie ma jeszcze wpisów.\\nKliknij przycisk poniżej, aby dodać nowy wpis.\",\n noEntriesReadonlyText: \"Brak wpisów.\",\n more: \"Więcej\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Wszystkie wybory są uszeregowane\",\n selectToRankEmptyUnrankedAreaText: \"Przeciągnij i upuść tutaj wybory, aby je uszeregować\",\n ok: \"OK\",\n cancel: \"Anuluj\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"pl\"] = polishSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"pl\"] = \"polski\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// emptyMessage: \"No data to display\" => \"Brak danych do wyświetlenia\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Brak wpisów.\"\n// more: \"More\" => \"Więcej\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Wszystkie wybory są uszeregowane\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Przeciągnij i upuść tutaj wybory, aby je uszeregować\"// takePhotoCaption: \"Take Photo\" => \"Zrób zdjęcie\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Kliknij przycisk poniżej, aby zrobić zdjęcie aparatem.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Przeciągnij i upuść lub wybierz plik, który chcesz przesłać lub zrobić zdjęcie za pomocą aparatu.\"\n// replaceFileCaption: \"Replace file\" => \"Zastąp plik\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Każdy wiersz musi mieć unikatową wartość.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Nie można przesłać plików. Dodaj moduł obsługi zdarzenia \\\"onUploadFiles\\\".\"\n// showDetails: \"Show Details\" => \"Pokaż szczegóły\"\n// hideDetails: \"Hide Details\" => \"Ukryj szczegóły\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Anuluj\"\n// refuseItemText: \"Refuse to answer\" => \"Odmów odpowiedzi\"\n// dontKnowItemText: \"Don't know\" => \"Nie wiem\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Twoja odpowiedź przekracza 64 KB. Zmniejsz rozmiar plików i spróbuj ponownie lub skontaktuj się z właścicielem ankiety.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Brak podpisu\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/portuguese-br.ts\":\n/*!*******************************************!*\\\n !*** ./src/localization/portuguese-br.ts ***!\n \\*******************************************/\n/*! exports provided: portugueseBrSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"portugueseBrSurveyStrings\", function() { return portugueseBrSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\n/**\n * You don't need to translate strings that have the same value as Portuguese translation\n */\nvar portugueseBrSurveyStrings = {\n pagePrevText: \"Anterior\",\n pageNextText: \"Próximo\",\n completeText: \"Completar\",\n previewText: \"Visualizar\",\n editText: \"Editar\",\n startSurveyText: \"Começar\",\n otherItemText: \"Outros (descrever)\",\n noneItemText: \"Nenhum\",\n refuseItemText: \"Recusar-se a responder\",\n dontKnowItemText: \"Não sei\",\n selectAllItemText: \"Selecionar tudo\",\n progressText: \"Página {0} de {1}\",\n indexText: \"{0} de {1}\",\n panelDynamicProgressText: \"{0} de {1}\",\n panelDynamicTabTextFormat: \"Painel {panelIndex}\",\n questionsProgressText: \"Perguntas respondidas {0}/{1}\",\n emptySurvey: \"Não há página visível ou pergunta na pesquisa.\",\n completingSurvey: \"Obrigado por finalizar a pesquisa!\",\n completingSurveyBefore: \"Nossos registros mostram que você já finalizou a pesquisa.\",\n loadingSurvey: \"A pesquisa está carregando...\",\n placeholder: \"Selecionar...\",\n ratingOptionsCaption: \"Selecionar...\",\n value: \"valor\",\n requiredError: \"Por favor, responda a pergunta.\",\n requiredErrorInPanel: \"Por favor, responda pelo menos uma pergunta.\",\n requiredInAllRowsError: \"Por favor, responda as perguntas em todas as linhas.\",\n eachRowUniqueError: \"Cada linha deve ter um valor exclusivo.\",\n numericError: \"O valor deve ser numérico.\",\n minError: \"O valor não deve ser inferior a {0}\",\n maxError: \"O valor não deve ser maior que {0}\",\n textMinLength: \"Introduza pelo menos {0} caractere(s).\",\n textMaxLength: \"Introduza no máximo {0} caractere(s).\",\n textMinMaxLength: \"Insira pelo menos {0} e não mais do que {1} caracteres.\",\n minRowCountError: \"Por favor, preencha pelo menos {0} linha(s).\",\n minSelectError: \"Selecione pelo menos {0} variante(s).\",\n maxSelectError: \"Por favor, selecione não mais do que {0} opções.\",\n numericMinMax: \"O \\\"{0}\\\" deve ser pelo menos {1} e no máximo {2}\",\n numericMin: \"O \\\"{0}\\\" deve ser pelo menos {1}\",\n numericMax: \"O \\\"{0}\\\" deve ser no máximo {1}\",\n invalidEmail: \"Por favor, informe um e-mail válido.\",\n invalidExpression: \"A expressão: {0} deve retornar 'verdadeiro'.\",\n urlRequestError: \"A requisição retornou o erro '{0}'. {1}\",\n urlGetChoicesError: \"A requisição não retornou dados ou o 'caminho' da requisição não está correto\",\n exceedMaxSize: \"O tamanho do arquivo não deve exceder {0}.\",\n noUploadFilesHandler: \"Os arquivos não podem ser carregados. Adicione um manipulador para o evento 'onUploadFiles'.\",\n otherRequiredError: \"Por favor, informe o outro valor.\",\n uploadingFile: \"Seu arquivo está sendo carregado. Por favor, aguarde alguns segundos e tente novamente.\",\n loadingFile: \"Carregando...\",\n chooseFile: \"Escolha o(s) arquivo(s)...\",\n noFileChosen: \"Nenhum arquivo escolhido\",\n filePlaceholder: \"Arraste e solte um arquivo aqui ou clique no botão abaixo e escolha um arquivo para carregar.\",\n confirmDelete: \"Tem certeza que deseja deletar?\",\n keyDuplicationError: \"Esse valor deve ser único.\",\n addColumn: \"Adicionar coluna\",\n addRow: \"Adicionar linha\",\n removeRow: \"Retirar\",\n emptyRowsText: \"Não há filas.\",\n addPanel: \"Adicionar novo\",\n removePanel: \"Retirar\",\n showDetails: \"Mostrar detalhes\",\n hideDetails: \"Ocultar detalhes\",\n choices_Item: \"item\",\n matrix_column: \"Coluna\",\n matrix_row: \"Remar\",\n multipletext_itemname: \"Texto\",\n savingData: \"Os resultados esto sendo salvos no servidor...\",\n savingDataError: \"Ocorreu um erro e não foi possível salvar os resultados.\",\n savingDataSuccess: \"Os resultados foram salvos com sucesso!\",\n savingExceedSize: \"Sua resposta excede 64KB. Reduza o tamanho do(s) seu(s) arquivo(s) e tente novamente ou entre em contato com o proprietário do questionário.\",\n saveAgainButton: \"Tentar novamente\",\n timerMin: \"Min\",\n timerSec: \"segundo\",\n timerSpentAll: \"Você gastou {0} nesta página e {1} no total.\",\n timerSpentPage: \"Você passou {0} nesta página.\",\n timerSpentSurvey: \"Gastou {0} no total.\",\n timerLimitAll: \"Você gastou {0} de {1} nesta página e {2} de {3} no total.\",\n timerLimitPage: \"Você gastou {0} de {1} nesta página.\",\n timerLimitSurvey: \"Gastou {0} de {1} no total.\",\n clearCaption: \"Claro\",\n signaturePlaceHolder: \"Assine aqui\",\n signaturePlaceHolderReadOnly: \"Sem assinatura\",\n chooseFileCaption: \"Escolher arquivo\",\n takePhotoCaption: \"Tirar foto\",\n photoPlaceholder: \"Clique no botão abaixo para tirar uma foto usando a câmera.\",\n fileOrPhotoPlaceholder: \"Arraste e solte ou selecione um arquivo para carregar ou tirar uma foto usando a câmera.\",\n replaceFileCaption: \"Substituir arquivo\",\n removeFileCaption: \"Remover este arquivo\",\n booleanCheckedLabel: \"Sim\",\n booleanUncheckedLabel: \"Não\",\n confirmRemoveFile: \"Tem certeza que deseja remover este arquivo: {0}?\",\n confirmRemoveAllFiles: \"Tem certeza que deseja remover todos os arquivos?\",\n questionTitlePatternText: \"Título da pergunta\",\n modalCancelButtonText: \"Cancelar\",\n modalApplyButtonText: \"Aplicar\",\n filterStringPlaceholder: \"Digite para pesquisar...\",\n emptyMessage: \"Nenhum dado a ser exibido\",\n noEntriesText: \"Ainda não há inscrições.\\nClique no botão abaixo para adicionar uma nova entrada.\",\n noEntriesReadonlyText: \"Não há entradas.\",\n more: \"Mais\",\n tagboxDoneButtonCaption: \"OKEY\",\n selectToRankEmptyRankedAreaText: \"Todas as opções são classificadas\",\n selectToRankEmptyUnrankedAreaText: \"Arraste e solte as opções aqui para classificá-las\",\n ok: \"OKEY\",\n cancel: \"Cancelar\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"pt-br\"] = portugueseBrSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"pt-br\"] = \"português brasileiro\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// pagePrevText: \"Previous\" => \"Anterior\"\n// pageNextText: \"Next\" => \"Próximo\"\n// completeText: \"Complete\" => \"Completar\"\n// previewText: \"Preview\" => \"Visualizar\"\n// editText: \"Edit\" => \"Editar\"\n// startSurveyText: \"Start\" => \"Começar\"\n// otherItemText: \"Other (describe)\" => \"Outros (descrever)\"\n// noneItemText: \"None\" => \"Nenhum\"\n// selectAllItemText: \"Select All\" => \"Selecionar tudo\"\n// progressText: \"Page {0} of {1}\" => \"Página {0} de {1}\"\n// indexText: \"{0} of {1}\" => \"{0} de {1}\"\n// panelDynamicProgressText: \"{0} of {1}\" => \"{0} de {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Painel {panelIndex}\"\n// questionsProgressText: \"Answered {0}/{1} questions\" => \"Perguntas respondidas {0}/{1}\"\n// placeholder: \"Select...\" => \"Selecionar...\"\n// ratingOptionsCaption: \"Select...\" => \"Selecionar...\"\n// value: \"value\" => \"valor\"\n// numericError: \"The value should be numeric.\" => \"O valor deve ser numérico.\"\n// minError: \"The value should not be less than {0}\" => \"O valor não deve ser inferior a {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"O valor não deve ser maior que {0}\"\n// textMinLength: \"Please enter at least {0} character(s).\" => \"Introduza pelo menos {0} caractere(s).\"\n// textMaxLength: \"Please enter no more than {0} character(s).\" => \"Introduza no máximo {0} caractere(s).\"\n// textMinMaxLength: \"Please enter at least {0} and no more than {1} characters.\" => \"Insira pelo menos {0} e não mais do que {1} caracteres.\"\n// minRowCountError: \"Please fill in at least {0} row(s).\" => \"Por favor, preencha pelo menos {0} linha(s).\"\n// minSelectError: \"Please select at least {0} variant(s).\" => \"Selecione pelo menos {0} variante(s).\"\n// numericMinMax: \"The '{0}' should be at least {1} and at most {2}\" => \"O \\\"{0}\\\" deve ser pelo menos {1} e no máximo {2}\"\n// numericMin: \"The '{0}' should be at least {1}\" => \"O \\\"{0}\\\" deve ser pelo menos {1}\"\n// numericMax: \"The '{0}' should be at most {1}\" => \"O \\\"{0}\\\" deve ser no máximo {1}\"\n// invalidExpression: \"The expression: {0} should return 'true'.\" => \"A expressão: {0} deve retornar 'verdadeiro'.\"\n// exceedMaxSize: \"The file size should not exceed {0}.\" => \"O tamanho do arquivo não deve exceder {0}.\"\n// chooseFile: \"Choose file(s)...\" => \"Escolha o(s) arquivo(s)...\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Arraste e solte um arquivo aqui ou clique no botão abaixo e escolha um arquivo para carregar.\"\n// addColumn: \"Add Column\" => \"Adicionar coluna\"\n// addRow: \"Add Row\" => \"Adicionar linha\"\n// removeRow: \"Remove\" => \"Retirar\"\n// emptyRowsText: \"There are no rows.\" => \"Não há filas.\"\n// addPanel: \"Add new\" => \"Adicionar novo\"\n// removePanel: \"Remove\" => \"Retirar\"\n// choices_Item: \"item\" => \"item\"\n// matrix_column: \"Column\" => \"Coluna\"\n// matrix_row: \"Row\" => \"Remar\"\n// multipletext_itemname: \"text\" => \"Texto\"\n// saveAgainButton: \"Try again\" => \"Tentar novamente\"\n// timerMin: \"min\" => \"Min\"\n// timerSec: \"sec\" => \"segundo\"\n// timerSpentAll: \"You have spent {0} on this page and {1} in total.\" => \"Você gastou {0} nesta página e {1} no total.\"\n// timerSpentPage: \"You have spent {0} on this page.\" => \"Você passou {0} nesta página.\"\n// timerSpentSurvey: \"You have spent {0} in total.\" => \"Gastou {0} no total.\"\n// timerLimitAll: \"You have spent {0} of {1} on this page and {2} of {3} in total.\" => \"Você gastou {0} de {1} nesta página e {2} de {3} no total.\"\n// timerLimitPage: \"You have spent {0} of {1} on this page.\" => \"Você gastou {0} de {1} nesta página.\"\n// timerLimitSurvey: \"You have spent {0} of {1} in total.\" => \"Gastou {0} de {1} no total.\"\n// clearCaption: \"Clear\" => \"Claro\"\n// signaturePlaceHolder: \"Sign here\" => \"Assine aqui\"\n// booleanCheckedLabel: \"Yes\" => \"Sim\"\n// booleanUncheckedLabel: \"No\" => \"Não\"\n// questionTitlePatternText: \"Question Title\" => \"Título da pergunta\"\n// modalCancelButtonText: \"Cancel\" => \"Cancelar\"\n// modalApplyButtonText: \"Apply\" => \"Aplicar\"\n// filterStringPlaceholder: \"Type to search...\" => \"Digite para pesquisar...\"\n// emptyMessage: \"No data to display\" => \"Nenhum dado a ser exibido\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Ainda não há inscrições.\\nClique no botão abaixo para adicionar uma nova entrada.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Não há entradas.\"\n// more: \"More\" => \"Mais\"\n// tagboxDoneButtonCaption: \"OK\" => \"OKEY\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Todas as opções são classificadas\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Arraste e solte as opções aqui para classificá-las\"// takePhotoCaption: \"Take Photo\" => \"Tirar foto\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Clique no botão abaixo para tirar uma foto usando a câmera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Arraste e solte ou selecione um arquivo para carregar ou tirar uma foto usando a câmera.\"\n// replaceFileCaption: \"Replace file\" => \"Substituir arquivo\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Cada linha deve ter um valor exclusivo.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Os arquivos não podem ser carregados. Adicione um manipulador para o evento 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Mostrar detalhes\"\n// hideDetails: \"Hide Details\" => \"Ocultar detalhes\"\n// ok: \"OK\" => \"OKEY\"\n// cancel: \"Cancel\" => \"Cancelar\"\n// refuseItemText: \"Refuse to answer\" => \"Recusar-se a responder\"\n// dontKnowItemText: \"Don't know\" => \"Não sei\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Sua resposta excede 64KB. Reduza o tamanho do(s) seu(s) arquivo(s) e tente novamente ou entre em contato com o proprietário do questionário.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Sem assinatura\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/portuguese.ts\":\n/*!****************************************!*\\\n !*** ./src/localization/portuguese.ts ***!\n \\****************************************/\n/*! exports provided: portugueseSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"portugueseSurveyStrings\", function() { return portugueseSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar portugueseSurveyStrings = {\n pagePrevText: \"Anterior\",\n pageNextText: \"Próximo\",\n completeText: \"Finalizar\",\n previewText: \"Pré-visualização\",\n editText: \"Editar\",\n startSurveyText: \"Começar\",\n otherItemText: \"Outros (descrever)\",\n noneItemText: \"Nenhum\",\n refuseItemText: \"Recusar-se a responder\",\n dontKnowItemText: \"Não sei\",\n selectAllItemText: \"Selecionar Todos\",\n progressText: \"Página {0} de {1}\",\n indexText: \"{0} de {1}\",\n panelDynamicProgressText: \"Registo {0} de {1}\",\n panelDynamicTabTextFormat: \"Painel {panelIndex}\",\n questionsProgressText: \"Respostas {0}/{1} perguntas\",\n emptySurvey: \"Não há página visível ou pergunta no questionário.\",\n completingSurvey: \"Obrigado por finalizar o questionário!\",\n completingSurveyBefore: \"Os nossos registos mostram que já finalizou o questionário.\",\n loadingSurvey: \"O questionário está a carregar...\",\n placeholder: \"Selecione...\",\n ratingOptionsCaption: \"Selecione aqui para avaliar...\",\n value: \"valor\",\n requiredError: \"Por favor, responda à pergunta.\",\n requiredErrorInPanel: \"Por favor, responda pelo menos a uma pergunta.\",\n requiredInAllRowsError: \"Por favor, responda às perguntas em todas as linhas.\",\n eachRowUniqueError: \"Cada linha deve ter um valor exclusivo.\",\n numericError: \"O valor deve ser numérico.\",\n minError: \"O valor não deverá ser menor que {0}\",\n maxError: \"O valor não deverá ser maior que {0}\",\n textMinLength: \"Por favor, insira pelo menos {0} caracteres.\",\n textMaxLength: \"Por favor, insira menos de {0} caracteres.\",\n textMinMaxLength: \"Por favor, insira mais de {0} e menos de {1} caracteres.\",\n minRowCountError: \"Preencha pelo menos {0} linhas.\",\n minSelectError: \"Selecione pelo menos {0} opções.\",\n maxSelectError: \"Por favor, selecione no máximo {0} opções.\",\n numericMinMax: \"O '{0}' deve ser igual ou superior a {1} e igual ou menor que {2}\",\n numericMin: \"O '{0}' deve ser igual ou superior a {1}\",\n numericMax: \"O '{0}' deve ser igual ou inferior a {1}\",\n invalidEmail: \"Por favor, insira um e-mail válido.\",\n invalidExpression: \"A expressão: {0} deve retornar 'verdadeiro'.\",\n urlRequestError: \"O pedido retornou o erro '{0}'. {1}\",\n urlGetChoicesError: \"O pedido não retornou dados ou o 'caminho' do pedido não está correto\",\n exceedMaxSize: \"O tamanho do arquivo não deve exceder {0}.\",\n noUploadFilesHandler: \"Os arquivos não podem ser carregados. Adicione um manipulador para o evento 'onUploadFiles'.\",\n otherRequiredError: \"Por favor, insira o outro valor.\",\n uploadingFile: \"O seu ficheiro está a carregar. Por favor, aguarde alguns segundos e tente novamente.\",\n loadingFile: \"A carregar...\",\n chooseFile: \"Selecione o(s) arquivo(s)...\",\n noFileChosen: \"Nenhum ficheiro escolhido\",\n filePlaceholder: \"Arraste um ficheiro aqui ou clique no botão abaixo para carregar o ficheiro.\",\n confirmDelete: \"Tem a certeza que deseja apagar?\",\n keyDuplicationError: \"Este valor deve ser único.\",\n addColumn: \"Adicionar coluna\",\n addRow: \"Adicionar linha\",\n removeRow: \"Remover linha\",\n emptyRowsText: \"Não existem linhas.\",\n addPanel: \"Adicionar novo\",\n removePanel: \"Remover\",\n showDetails: \"Mostrar detalhes\",\n hideDetails: \"Ocultar detalhes\",\n choices_Item: \"item\",\n matrix_column: \"Coluna\",\n matrix_row: \"Linha\",\n multipletext_itemname: \"texto\",\n savingData: \"Os resultados estão a ser guardados no servidor...\",\n savingDataError: \"Ocorreu um erro e não foi possível guardar os resultados.\",\n savingDataSuccess: \"Os resultados foram guardados com sucesso!\",\n savingExceedSize: \"Sua resposta excede 64KB. Reduza o tamanho do(s) seu(s) arquivo(s) e tente novamente ou entre em contato com o proprietário do questionário.\",\n saveAgainButton: \"Tente novamente\",\n timerMin: \"min\",\n timerSec: \"seg\",\n timerSpentAll: \"Você gastou {0} nesta página e {1} no total.\",\n timerSpentPage: \"Você gastou {0} nesta página.\",\n timerSpentSurvey: \"Você gastou {0} no total.\",\n timerLimitAll: \"Você gastou {0} de {1} nesta página e {2} de {3} no total.\",\n timerLimitPage: \"Você gastou {0} de {1} nesta página.\",\n timerLimitSurvey: \"Você gastou {0} de {1} no total.\",\n clearCaption: \"Limpar\",\n signaturePlaceHolder: \"Assine aqui\",\n signaturePlaceHolderReadOnly: \"Sem assinatura\",\n chooseFileCaption: \"Escolher ficheiro\",\n takePhotoCaption: \"Tirar foto\",\n photoPlaceholder: \"Clique no botão abaixo para tirar uma foto usando a câmera.\",\n fileOrPhotoPlaceholder: \"Arraste e solte ou selecione um arquivo para carregar ou tirar uma foto usando a câmera.\",\n replaceFileCaption: \"Substituir arquivo\",\n removeFileCaption: \"Remover este ficheiro\",\n booleanCheckedLabel: \"Sim\",\n booleanUncheckedLabel: \"Não\",\n confirmRemoveFile: \"Tem a certeza que deseja remover este ficheiro: {0}?\",\n confirmRemoveAllFiles: \"Tem a certeza que deseja remover todos os ficheiros?\",\n questionTitlePatternText: \"Título da questão\",\n modalCancelButtonText: \"Cancelar\",\n modalApplyButtonText: \"Aplicar\",\n filterStringPlaceholder: \"Digite para pesquisar...\",\n emptyMessage: \"Não existe informação a mostrar\",\n noEntriesText: \"Ainda não existem registos.\\nClique no botão abaixo para adicionar um novo registo.\",\n noEntriesReadonlyText: \"Não há entradas.\",\n more: \"Mais\",\n tagboxDoneButtonCaption: \"Terminado\",\n selectToRankEmptyRankedAreaText: \"Todas as opções são classificadas\",\n selectToRankEmptyUnrankedAreaText: \"Arraste e solte as opções aqui para classificá-las\",\n ok: \"OKEY\",\n cancel: \"Cancelar\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"pt\"] = portugueseSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"pt\"] = \"português\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Painel {panelIndex}\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Não há entradas.\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Todas as opções são classificadas\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Arraste e solte as opções aqui para classificá-las\"// takePhotoCaption: \"Take Photo\" => \"Tirar foto\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Clique no botão abaixo para tirar uma foto usando a câmera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Arraste e solte ou selecione um arquivo para carregar ou tirar uma foto usando a câmera.\"\n// replaceFileCaption: \"Replace file\" => \"Substituir arquivo\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Cada linha deve ter um valor exclusivo.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Os arquivos não podem ser carregados. Adicione um manipulador para o evento 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Mostrar detalhes\"\n// hideDetails: \"Hide Details\" => \"Ocultar detalhes\"\n// ok: \"OK\" => \"OKEY\"\n// cancel: \"Cancel\" => \"Cancelar\"\n// refuseItemText: \"Refuse to answer\" => \"Recusar-se a responder\"\n// dontKnowItemText: \"Don't know\" => \"Não sei\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Sua resposta excede 64KB. Reduza o tamanho do(s) seu(s) arquivo(s) e tente novamente ou entre em contato com o proprietário do questionário.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Sem assinatura\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/romanian.ts\":\n/*!**************************************!*\\\n !*** ./src/localization/romanian.ts ***!\n \\**************************************/\n/*! exports provided: romanianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"romanianSurveyStrings\", function() { return romanianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar romanianSurveyStrings = {\n pagePrevText: \"Precedent\",\n pageNextText: \"Următor\",\n completeText: \"Finalizare\",\n previewText: \"previzualizare\",\n editText: \"Editați\",\n startSurveyText: \"start\",\n otherItemText: \"Altul(precizaţi)\",\n noneItemText: \"Nici unul\",\n refuseItemText: \"Refuză să răspundă\",\n dontKnowItemText: \"Nu ştiu\",\n selectAllItemText: \"Selectează tot\",\n progressText: \"Pagina {0} din {1}\",\n indexText: \"{0} de {1}\",\n panelDynamicProgressText: \"Înregistrare {0} din {1}\",\n panelDynamicTabTextFormat: \"Panou {panelIndex}\",\n questionsProgressText: \"Răspunsuri la {0} / {1} întrebări\",\n emptySurvey: \"Nu sunt întrebări pentru acest chestionar\",\n completingSurvey: \"Vă mulţumim pentru timpul acordat!\",\n completingSurveyBefore: \"Din înregistrările noastre reiese că ați completat deja acest chestionar.\",\n loadingSurvey: \"Chestionarul se încarcă...\",\n placeholder: \"Alegeţi...\",\n ratingOptionsCaption: \"Alege...\",\n value: \"valoare\",\n requiredError: \"Răspunsul la această întrebare este obligatoriu.\",\n requiredErrorInPanel: \"Vă rugăm să răspundeți la cel puțin o întrebare.\",\n requiredInAllRowsError: \"Toate răspunsurile sunt obligatorii\",\n eachRowUniqueError: \"Fiecare rând trebuie să aibă o valoare unică.\",\n numericError: \"Răspunsul trebuie să fie numeric.\",\n minError: \"Valoarea nu trebuie să fie mai mică de {0}\",\n maxError: \"Valoarea nu trebuie să fie mai mare de {0}\",\n textMinLength: \"Trebuie să introduceți minim {0} caractere.\",\n textMaxLength: \"Trebuie să introduceți maxim {0} caractere.\",\n textMinMaxLength: \"Trebuie să introduceți mai mult de {0} și mai puțin de {1} caractere.\",\n minRowCountError: \"Trebuie să completați minim {0} rânduri.\",\n minSelectError: \"Trebuie să selectați minim {0} opţiuni.\",\n maxSelectError: \"Trebuie să selectați maxim {0} opţiuni.\",\n numericMinMax: \"Răspunsul '{0}' trebuie să fie mai mare sau egal ca {1} şî mai mic sau egal cu {2}\",\n numericMin: \"Răspunsul '{0}' trebuie să fie mai mare sau egal ca {1}\",\n numericMax: \"Răspunsul '{0}' trebuie să fie mai mic sau egal ca {1}\",\n invalidEmail: \"Trebuie să introduceţi o adresa de email validă.\",\n invalidExpression: \"Expresia: {0} ar trebui să returneze „adevărat”.\",\n urlRequestError: \"Request-ul a returnat eroarea '{0}'. {1}\",\n urlGetChoicesError: \"Request-ul nu a returnat date sau proprietatea 'path' este incorectă\",\n exceedMaxSize: \"Dimensiunea fişierului nu trebuie să depăşească {0}.\",\n noUploadFilesHandler: \"Fișierele nu pot fi încărcate. Vă rugăm să adăugați un handler pentru evenimentul \\\"onUploadFiles\\\".\",\n otherRequiredError: \"Trebuie să completați câmpul 'Altul'.\",\n uploadingFile: \"Fișierul dumneavoastră este în curs de încărcare. Vă rugăm așteptați câteva secunde și reveniți apoi.\",\n loadingFile: \"Se încarcă...\",\n chooseFile: \"Alege fisierele...\",\n noFileChosen: \"Niciun fișier ales\",\n filePlaceholder: \"Glisați și fixați un fișier aici sau faceți clic pe butonul de mai jos și alegeți un fișier de încărcat.\",\n confirmDelete: \"Sunteți sigur că doriți să ștergeți înregistrarea?\",\n keyDuplicationError: \"Valoarea trebuie să fie unică.\",\n addColumn: \"Adăugați coloană\",\n addRow: \"Adăugare rând\",\n removeRow: \"Ștergere\",\n emptyRowsText: \"Nu există rânduri.\",\n addPanel: \"Adăugare\",\n removePanel: \"Ștergere\",\n showDetails: \"Arată detalii\",\n hideDetails: \"Ascunde detalii\",\n choices_Item: \"opțiune\",\n matrix_column: \"Coloană\",\n matrix_row: \"Rând\",\n multipletext_itemname: \"Text\",\n savingData: \"Rezultatele sunt în curs de salvare...\",\n savingDataError: \"A intervenit o eroare, rezultatele nu au putut fi salvate.\",\n savingDataSuccess: \"Rezultatele au fost salvate cu succes!\",\n savingExceedSize: \"Răspunsul tău depășește 64KB. Reduceți dimensiunea fișierelor și încercați din nou sau contactați un proprietar de sondaj.\",\n saveAgainButton: \"Încercați din nou\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Ați petrecut {0} pe această pagină și {1} în total.\",\n timerSpentPage: \"Ați petrecut {0} pe această pagină.\",\n timerSpentSurvey: \"Ați petrecut {0} în total.\",\n timerLimitAll: \"Ați petrecut {0} din {1} pe această pagină și {2} din {3} în total.\",\n timerLimitPage: \"Ați petrecut {0} din {1} pe această pagină.\",\n timerLimitSurvey: \"Ați petrecut {0} din {1} în total.\",\n clearCaption: \"clar\",\n signaturePlaceHolder: \"Semnează aici\",\n signaturePlaceHolderReadOnly: \"Fără semnătură\",\n chooseFileCaption: \"Alege fișierul\",\n takePhotoCaption: \"Faceți o fotografie\",\n photoPlaceholder: \"Faceți clic pe butonul de mai jos pentru a face o fotografie folosind camera.\",\n fileOrPhotoPlaceholder: \"Glisați și fixați sau selectați un fișier pentru a încărca sau a face o fotografie folosind camera.\",\n replaceFileCaption: \"Înlocuire fișier\",\n removeFileCaption: \"Eliminați acest fișier\",\n booleanCheckedLabel: \"da\",\n booleanUncheckedLabel: \"Nu\",\n confirmRemoveFile: \"Sigur doriți să eliminați acest fișier: {0}?\",\n confirmRemoveAllFiles: \"Sigur doriți să eliminați toate fișierele?\",\n questionTitlePatternText: \"Titlul intrebarii\",\n modalCancelButtonText: \"Anula\",\n modalApplyButtonText: \"Aplica\",\n filterStringPlaceholder: \"Tastați pentru a căuta...\",\n emptyMessage: \"Nu există date de afișat\",\n noEntriesText: \"Nu există încă intrări.\\nFaceți clic pe butonul de mai jos pentru a adăuga o intrare nouă.\",\n noEntriesReadonlyText: \"Nu există intrări.\",\n more: \"Mai mult\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Toate opțiunile sunt clasificate\",\n selectToRankEmptyUnrankedAreaText: \"Glisați și fixați opțiunile aici pentru a le clasifica\",\n ok: \"OK\",\n cancel: \"Anula\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ro\"] = romanianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ro\"] = \"română\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} de {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panou {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Alege...\"\n// minError: \"The value should not be less than {0}\" => \"Valoarea nu trebuie să fie mai mică de {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Valoarea nu trebuie să fie mai mare de {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Glisați și fixați un fișier aici sau faceți clic pe butonul de mai jos și alegeți un fișier de încărcat.\"\n// emptyRowsText: \"There are no rows.\" => \"Nu există rânduri.\"\n// multipletext_itemname: \"text\" => \"Text\"\n// signaturePlaceHolder: \"Sign here\" => \"Semnează aici\"\n// modalCancelButtonText: \"Cancel\" => \"Anula\"\n// modalApplyButtonText: \"Apply\" => \"Aplica\"\n// filterStringPlaceholder: \"Type to search...\" => \"Tastați pentru a căuta...\"\n// emptyMessage: \"No data to display\" => \"Nu există date de afișat\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Nu există încă intrări.\\nFaceți clic pe butonul de mai jos pentru a adăuga o intrare nouă.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Nu există intrări.\"\n// more: \"More\" => \"Mai mult\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Toate opțiunile sunt clasificate\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Glisați și fixați opțiunile aici pentru a le clasifica\"// takePhotoCaption: \"Take Photo\" => \"Faceți o fotografie\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Faceți clic pe butonul de mai jos pentru a face o fotografie folosind camera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Glisați și fixați sau selectați un fișier pentru a încărca sau a face o fotografie folosind camera.\"\n// replaceFileCaption: \"Replace file\" => \"Înlocuire fișier\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Fiecare rând trebuie să aibă o valoare unică.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Fișierele nu pot fi încărcate. Vă rugăm să adăugați un handler pentru evenimentul \\\"onUploadFiles\\\".\"\n// showDetails: \"Show Details\" => \"Arată detalii\"\n// hideDetails: \"Hide Details\" => \"Ascunde detalii\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Anula\"\n// refuseItemText: \"Refuse to answer\" => \"Refuză să răspundă\"\n// dontKnowItemText: \"Don't know\" => \"Nu ştiu\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Răspunsul tău depășește 64KB. Reduceți dimensiunea fișierelor și încercați din nou sau contactați un proprietar de sondaj.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Fără semnătură\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/russian.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/russian.ts ***!\n \\*************************************/\n/*! exports provided: russianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"russianSurveyStrings\", function() { return russianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar russianSurveyStrings = {\n pagePrevText: \"Назад\",\n pageNextText: \"Далее\",\n completeText: \"Готово\",\n previewText: \"Предварительный просмотр\",\n editText: \"Редактирование\",\n startSurveyText: \"Начать\",\n otherItemText: \"Другое (пожалуйста, опишите)\",\n noneItemText: \"Нет\",\n refuseItemText: \"Отказываюсь отвечать\",\n dontKnowItemText: \"Не знаю\",\n selectAllItemText: \"Выбрать всё\",\n progressText: \"Страница {0} из {1}\",\n indexText: \"{0} из {1}\",\n panelDynamicProgressText: \"Запись {0} из {1}\",\n panelDynamicTabTextFormat: \"Панель {panelIndex}\",\n questionsProgressText: \"Oтвечено на {0}/{1} вопросов\",\n emptySurvey: \"Нет ни одного вопроса.\",\n completingSurvey: \"Благодарим Вас за заполнение анкеты!\",\n completingSurveyBefore: \"Вы уже проходили этот опрос.\",\n loadingSurvey: \"Загрузка с сервера...\",\n placeholder: \"Выбрать...\",\n ratingOptionsCaption: \"Нажмите здесь, чтобы оценить...\",\n value: \"значение\",\n requiredError: \"Пожалуйста, ответьте на вопрос.\",\n requiredErrorInPanel: \"Пожалуйста, ответьте по крайней мере на один вопрос.\",\n requiredInAllRowsError: \"Пожалуйста, ответьте на вопросы в каждой строке.\",\n eachRowUniqueError: \"Каждая строка должна иметь уникальное значение.\",\n numericError: \"Ответ должен быть числом.\",\n minError: \"Значение не должно быть меньше {0}.\",\n maxError: \"Значение не должно превышать {0}.\",\n textMinLength: \"Пожалуйста введите больше {0} символов.\",\n textMaxLength: \"Пожалуйста введите меньше {0} символов.\",\n textMinMaxLength: \"Пожалуйста введите больше {0} и меньше {1} символов.\",\n minRowCountError: \"Пожалуйста, заполните не меньше {0} строк.\",\n minSelectError: \"Пожалуйста, выберите хотя бы {0} вариантов.\",\n maxSelectError: \"Пожалуйста, выберите не более {0} вариантов.\",\n numericMinMax: \"'{0}' должно быть не меньше чем {1}, и не больше чем {2}\",\n numericMin: \"'{0}' должно быть не меньше чем {1}\",\n numericMax: \"'{0}' должно быть не больше чем {1}\",\n invalidEmail: \"Пожалуйста, введите действительный адрес электронной почты.\",\n invalidExpression: \"Выражение {0} должно возвращать 'true'.\",\n urlRequestError: \"Запрос вернул ошибку '{0}'. {1}\",\n urlGetChoicesError: \"Ответ на запрос пришел пустой или свойство 'path' указано неверно\",\n exceedMaxSize: \"Размер файла не должен превышать {0}.\",\n noUploadFilesHandler: \"Файлы не могут быть загружены. Пожалуйста, добавьте обработчик для события 'onUploadFiles'.\",\n otherRequiredError: \"Пожалуйста, введите данные в поле 'Другое'\",\n uploadingFile: \"Ваш файл загружается. Подождите несколько секунд и попробуйте снова.\",\n loadingFile: \"Загрузка...\",\n chooseFile: \"Выберите файл(ы)...\",\n noFileChosen: \"Файл не выбран\",\n filePlaceholder: \"Перетащите файл сюда или нажмите кнопку ниже, чтобы загрузить файл.\",\n confirmDelete: \"Вы точно хотите удалить запись?\",\n keyDuplicationError: \"Это значение должно быть уникальным.\",\n addColumn: \"Добавить колонку\",\n addRow: \"Добавить строку\",\n removeRow: \"Удалить\",\n emptyRowsText: \"Рядов нет.\",\n addPanel: \"Добавить новую\",\n removePanel: \"Удалить\",\n showDetails: \"Показать подробности\",\n hideDetails: \"Скрыть подробности\",\n choices_Item: \"Вариант\",\n matrix_column: \"Колонка\",\n matrix_row: \"Строка\",\n multipletext_itemname: \"текст\",\n savingData: \"Результаты сохраняются на сервер...\",\n savingDataError: \"Произошла ошибка, результат не был сохранён.\",\n savingDataSuccess: \"Результат успешно сохранён!\",\n savingExceedSize: \"Ваш ответ превышает 64 КБ. Уменьшите размер файла (файлов) и повторите попытку или обратитесь к владельцу опроса.\",\n saveAgainButton: \"Попробовать снова\",\n timerMin: \"мин\",\n timerSec: \"сек\",\n timerSpentAll: \"Вы потратили {0} на этой странице и {1} всего.\",\n timerSpentPage: \"Вы потратили {0} на этой странице.\",\n timerSpentSurvey: \"Вы потратили {0} в течение теста.\",\n timerLimitAll: \"Вы потратили {0} из {1} на этой странице и {2} из {3} для всего теста.\",\n timerLimitPage: \"Вы потратили {0} из {1} на этой странице.\",\n timerLimitSurvey: \"Вы потратили {0} из {1} для всего теста.\",\n clearCaption: \"Очистить\",\n signaturePlaceHolder: \"Подпишите здесь\",\n signaturePlaceHolderReadOnly: \"Без подписи\",\n chooseFileCaption: \"Выберите файл\",\n takePhotoCaption: \"Сделать фото\",\n photoPlaceholder: \"Нажмите кнопку ниже, чтобы сделать снимок с помощью камеры.\",\n fileOrPhotoPlaceholder: \"Перетащите или выберите файл для загрузки или съемки с помощью камеры.\",\n replaceFileCaption: \"Заменить файл\",\n removeFileCaption: \"Удалить файл\",\n booleanCheckedLabel: \"Да\",\n booleanUncheckedLabel: \"Нет\",\n confirmRemoveFile: \"Вы уверены, что хотите удалить этот файл: {0}?\",\n confirmRemoveAllFiles: \"Вы уверены, что хотите удалить все файлы?\",\n questionTitlePatternText: \"Название вопроса\",\n modalCancelButtonText: \"Отменить\",\n modalApplyButtonText: \"Применять\",\n filterStringPlaceholder: \"Введите для поиска...\",\n emptyMessage: \"Нет данных для отображения\",\n noEntriesText: \"Пока нет записей.\\nНажмите кнопку ниже, чтобы добавить новую запись.\",\n noEntriesReadonlyText: \"Записей нет.\",\n more: \"Больше\",\n tagboxDoneButtonCaption: \"Хорошо\",\n selectToRankEmptyRankedAreaText: \"Все варианты ранжируются\",\n selectToRankEmptyUnrankedAreaText: \"Перетащите сюда варианты, чтобы ранжировать их\",\n ok: \"Хорошо\",\n cancel: \"Отмена\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ru\"] = russianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ru\"] = \"русский\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Панель {panelIndex}\"\n// emptyMessage: \"No data to display\" => \"Нет данных для отображения\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Записей нет.\"\n// more: \"More\" => \"Больше\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Все варианты ранжируются\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Перетащите сюда варианты, чтобы ранжировать их\"// takePhotoCaption: \"Take Photo\" => \"Сделать фото\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Нажмите кнопку ниже, чтобы сделать снимок с помощью камеры.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Перетащите или выберите файл для загрузки или съемки с помощью камеры.\"\n// replaceFileCaption: \"Replace file\" => \"Заменить файл\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Каждая строка должна иметь уникальное значение.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Файлы не могут быть загружены. Пожалуйста, добавьте обработчик для события 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Показать подробности\"\n// hideDetails: \"Hide Details\" => \"Скрыть подробности\"\n// cancel: \"Cancel\" => \"Отмена\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Ваш ответ превышает 64 КБ. Уменьшите размер файла (файлов) и повторите попытку или обратитесь к владельцу опроса.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Без подписи\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/serbian.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/serbian.ts ***!\n \\*************************************/\n/*! exports provided: serbianStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"serbianStrings\", function() { return serbianStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar serbianStrings = {\n pagePrevText: \"Nazad\",\n pageNextText: \"Dalje\",\n completeText: \"Završi\",\n previewText: \"Pregledaj\",\n editText: \"Izmeni\",\n startSurveyText: \"Započni\",\n otherItemText: \"Drugo (upiši)\",\n noneItemText: \"Ništa\",\n refuseItemText: \"Odbijanje odgovora\",\n dontKnowItemText: \"Ne znam\",\n selectAllItemText: \"Izaberi sve\",\n progressText: \"Stranica {0} od {1}\",\n indexText: \"{0} {1}\",\n panelDynamicProgressText: \"Upis {0} od {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Odgovoreno na {0}/{1} pitanja\",\n emptySurvey: \"Nema vidljivih stranica ili pitanja u anketi.\",\n completingSurvey: \"Hvala na popunjavanju ankete!\",\n completingSurveyBefore: \"Prema našim podacima, već ste popunili ovu anketu.\",\n loadingSurvey: \"Učitavam anketu...\",\n placeholder: \"Izaberi...\",\n ratingOptionsCaption: \"Izaberite...\",\n value: \"vrednost\",\n requiredError: \"Molimo odgovorite na ovo pitanje.\",\n requiredErrorInPanel: \"Molimo odgovorite na bar jedno pitanje.\",\n requiredInAllRowsError: \"Molimo odgovorite na pitanja u svim redovima.\",\n eachRowUniqueError: \"Svaki red mora imati jedinstvenu vrednost.\",\n numericError: \"Vrednost bi trebalo da bude numerička.\",\n minError: \"Vrednost ne bi trebalo da bude manja od {0}\",\n maxError: \"Vrednost ne bi trebalo da bude veća od {0}\",\n textMinLength: \"Molimo unesite bar {0} znak(ov)a.\",\n textMaxLength: \"Molimo unesite najviše {0} znak(ov)a.\",\n textMinMaxLength: \"Molimo unesite najmanje {0} i ne više od {1} znak(ov)a.\",\n minRowCountError: \"Molimo popunite najmanje {0} red(ova).\",\n minSelectError: \"Molimo izaberite najmanje {0} opcija/e.\",\n maxSelectError: \"Molimo izaberite najviše {0} opcija/e.\",\n numericMinMax: \"'{0}' bi trebalo da bude najmanje {1} i najviše {2}\",\n numericMin: \"'{0}' bi trebalo da bude najmanje {1}\",\n numericMax: \"'{0}' bi trebalo da bude najviše {1}\",\n invalidEmail: \"Molimo unesite ispravnu e-mail adresu.\",\n invalidExpression: \"Izraz: {0} bi trebalo da bude tačan.\",\n urlRequestError: \"Zahtev je naišao na grešku '{0}'. {1}\",\n urlGetChoicesError: \"Zahtev nije pronašao podatke, ili je putanja netačna\",\n exceedMaxSize: \"Veličina fajla ne bi trebalo da prelazi {0}.\",\n noUploadFilesHandler: \"Nije moguće otpremiti datoteke. Dodajte rukovaoca za događaj \\\"onUploadFiles\\\".\",\n otherRequiredError: \"Molimo unesite drugu vrednost.\",\n uploadingFile: \"Fajl se šalje. Molimo sačekajte neko vreme i pokušajte ponovo.\",\n loadingFile: \"Učitavanje...\",\n chooseFile: \"Izaberite fajlove...\",\n noFileChosen: \"Nije izabran nijedan fajl\",\n filePlaceholder: \"Prevucite i otpustite datoteku ovde ili kliknite na dugme ispod i odaberite datoteku za otpremanje.\",\n confirmDelete: \"Da li želite da izbrišete unos?\",\n keyDuplicationError: \"Ova vrednost treba da bude jedinstvena.\",\n addColumn: \"Dodaj kolonu\",\n addRow: \"Dodaj red\",\n removeRow: \"Ukloni\",\n emptyRowsText: \"Nema redova.\",\n addPanel: \"Dodaj novo\",\n removePanel: \"Ukloni\",\n showDetails: \"Prikaži detalje\",\n hideDetails: \"Sakrij detalje\",\n choices_Item: \"stavka\",\n matrix_column: \"Kolona\",\n matrix_row: \"Red\",\n multipletext_itemname: \"tekst\",\n savingData: \"U toku je čuvanje podataka na serveru...\",\n savingDataError: \"Došlo je do greške i rezultati nisu sačuvani.\",\n savingDataSuccess: \"Rezultati su uspešno sačuvani!\",\n savingExceedSize: \"Vaš odgovor premašuje 64KB. Smanjite veličinu datoteka i pokušajte ponovo ili se obratite vlasniku ankete.\",\n saveAgainButton: \"Pokušajte ponovo\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Proveli ste {0} na ovoj stranici i {1} ukupno.\",\n timerSpentPage: \"Proveli ste {0} na ovoj stranici.\",\n timerSpentSurvey: \"Proveli ste {0} ukupno.\",\n timerLimitAll: \"Proveli ste {0} od {1} na ovoj stranici i {2} od {3} ukupno.\",\n timerLimitPage: \"Proveli ste {0} od {1} na ovoj stranici.\",\n timerLimitSurvey: \"Proveli ste {0} od {1} ukupno.\",\n clearCaption: \"Poništi\",\n signaturePlaceHolder: \"Potpišite ovde\",\n signaturePlaceHolderReadOnly: \"Bez potpisa\",\n chooseFileCaption: \"Izaberi fajl\",\n takePhotoCaption: \"Fotografisanje\",\n photoPlaceholder: \"Kliknite na dugme ispod da biste snimili fotografiju pomoću fotoaparata.\",\n fileOrPhotoPlaceholder: \"Prevucite i otpustite ili izaberite datoteku za otpremanje ili snimanje fotografije pomoću fotoaparata.\",\n replaceFileCaption: \"Zameni datoteku\",\n removeFileCaption: \"Ukloni ovaj fajl\",\n booleanCheckedLabel: \"Da\",\n booleanUncheckedLabel: \"Ne\",\n confirmRemoveFile: \"Da li ste sigurni da želite da uklonite ovaj fajl: {0}?\",\n confirmRemoveAllFiles: \"Da li ste sigurni da želite da uklonite sve fajlove?\",\n questionTitlePatternText: \"Naslov pitanja\",\n modalCancelButtonText: \"Otkaži\",\n modalApplyButtonText: \"Primeni\",\n filterStringPlaceholder: \"Otkucajte da biste pretražili...\",\n emptyMessage: \"Nema podataka za prikazivanje\",\n noEntriesText: \"Još uvek nema stavki.\\nKliknite na dugme ispod da biste dodali novu stavku.\",\n noEntriesReadonlyText: \"Nema stavki.\",\n more: \"Viљe\",\n tagboxDoneButtonCaption: \"U redu\",\n selectToRankEmptyRankedAreaText: \"Svi izbori su rangirani\",\n selectToRankEmptyUnrankedAreaText: \"Prevucite i otpustite izbor ovde da biste ih rangirali\",\n ok: \"U redu\",\n cancel: \"Otkaži\"\n};\n//Uncomment these two lines on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"rs\"] = serbianStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"rs\"] = \"Srpski\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Izaberite...\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Prevucite i otpustite datoteku ovde ili kliknite na dugme ispod i odaberite datoteku za otpremanje.\"\n// signaturePlaceHolder: \"Sign here\" => \"Potpišite ovde\"\n// filterStringPlaceholder: \"Type to search...\" => \"Otkucajte da biste pretražili...\"\n// emptyMessage: \"No data to display\" => \"Nema podataka za prikazivanje\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Još uvek nema stavki.\\nKliknite na dugme ispod da biste dodali novu stavku.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Nema stavki.\"\n// more: \"More\" => \"Viљe\"\n// tagboxDoneButtonCaption: \"OK\" => \"U redu\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Svi izbori su rangirani\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Prevucite i otpustite izbor ovde da biste ih rangirali\"// takePhotoCaption: \"Take Photo\" => \"Fotografisanje\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Kliknite na dugme ispod da biste snimili fotografiju pomoću fotoaparata.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Prevucite i otpustite ili izaberite datoteku za otpremanje ili snimanje fotografije pomoću fotoaparata.\"\n// replaceFileCaption: \"Replace file\" => \"Zameni datoteku\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Svaki red mora imati jedinstvenu vrednost.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Nije moguće otpremiti datoteke. Dodajte rukovaoca za događaj \\\"onUploadFiles\\\".\"\n// showDetails: \"Show Details\" => \"Prikaži detalje\"\n// hideDetails: \"Hide Details\" => \"Sakrij detalje\"\n// ok: \"OK\" => \"U redu\"\n// cancel: \"Cancel\" => \"Otkaži\"\n// refuseItemText: \"Refuse to answer\" => \"Odbijanje odgovora\"\n// dontKnowItemText: \"Don't know\" => \"Ne znam\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Vaš odgovor premašuje 64KB. Smanjite veličinu datoteka i pokušajte ponovo ili se obratite vlasniku ankete.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Bez potpisa\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/simplified-chinese.ts\":\n/*!************************************************!*\\\n !*** ./src/localization/simplified-chinese.ts ***!\n \\************************************************/\n/*! exports provided: simplifiedChineseSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"simplifiedChineseSurveyStrings\", function() { return simplifiedChineseSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar simplifiedChineseSurveyStrings = {\n pagePrevText: \"上一页\",\n pageNextText: \"下一页\",\n completeText: \"提交问卷\",\n previewText: \"预览\",\n editText: \"编辑\",\n startSurveyText: \"开始问卷\",\n otherItemText: \"填写其他答案\",\n noneItemText: \"无\",\n refuseItemText: \"拒绝回答\",\n dontKnowItemText: \"不知道\",\n selectAllItemText: \"选择全部\",\n progressText: \"第 {0} 页, 共 {1} 页\",\n indexText: \"{1}{0}\",\n panelDynamicProgressText: \"{0} of {1}\",\n panelDynamicTabTextFormat: \"面板 {面板索引}\",\n questionsProgressText: \"第 {0}/{1} 题\",\n emptySurvey: \"问卷中没有问题或页面\",\n completingSurvey: \"感谢您的参与!\",\n completingSurveyBefore: \"你已完成问卷.\",\n loadingSurvey: \"问卷正在加载中...\",\n placeholder: \"请选择...\",\n ratingOptionsCaption: \"选择。。。\",\n value: \"值\",\n requiredError: \"请填写此问题\",\n requiredErrorInPanel: \"至少回答一题.\",\n requiredInAllRowsError: \"请填写所有行中问题\",\n eachRowUniqueError: \"每行必须具有唯一值。\",\n numericError: \"答案必须是个数字\",\n minError: \"该值不能小于 {0}\",\n maxError: \"该值不能大于 {0}\",\n textMinLength: \"答案长度至少 {0} 个字符\",\n textMaxLength: \"答案长度不能超过 {0} 个字符\",\n textMinMaxLength: \"答案长度必须在 {0} - {1} 个字符之间\",\n minRowCountError: \"最少需要填写 {0} 行答案\",\n minSelectError: \"最少需要选择 {0} 项答案\",\n maxSelectError: \"最多只能选择 {0} 项答案\",\n numericMinMax: \"答案 '{0}' 必须大于等于 {1} 且小于等于 {2}\",\n numericMin: \"答案 '{0}' 必须大于等于 {1}\",\n numericMax: \"答案 '{0}' 必须小于等于 {1}\",\n invalidEmail: \"请输入有效的 Email 地址\",\n invalidExpression: \"公式: {0} 无效.\",\n urlRequestError: \"载入选项时发生错误 '{0}': {1}\",\n urlGetChoicesError: \"未能载入有效的选项或请求参数路径有误\",\n exceedMaxSize: \"文件大小不能超过 {0}\",\n noUploadFilesHandler: \"无法上传文件。请为“onUploadFiles”事件添加处理程序。\",\n otherRequiredError: \"请完成其他问题\",\n uploadingFile: \"文件上传中... 请耐心等待几秒后重试\",\n loadingFile: \"加载...\",\n chooseFile: \"选择文件...\",\n noFileChosen: \"未选择文件\",\n filePlaceholder: \"将文件拖放到此处或单击下面的按钮并选择要上传的文件。\",\n confirmDelete: \"删除记录?\",\n keyDuplicationError: \"主键不能重复\",\n addColumn: \"添加列\",\n addRow: \"添加行\",\n removeRow: \"删除答案\",\n emptyRowsText: \"无内容\",\n addPanel: \"新添\",\n removePanel: \"删除\",\n showDetails: \"显示详细信息\",\n hideDetails: \"隐藏详细信息\",\n choices_Item: \"选项\",\n matrix_column: \"列\",\n matrix_row: \"行\",\n multipletext_itemname: \"文本\",\n savingData: \"正在将结果保存到服务器...\",\n savingDataError: \"在保存结果过程中发生了错误,结果未能保存\",\n savingDataSuccess: \"结果保存成功!\",\n savingExceedSize: \"您的回复超过 64KB。请减小文件的大小,然后重试或联系调查所有者。\",\n saveAgainButton: \"请重试\",\n timerMin: \"分\",\n timerSec: \"秒\",\n timerSpentAll: \"本页用时 {0} 总计用时{1} .\",\n timerSpentPage: \"本页用时{0} .\",\n timerSpentSurvey: \"总计用时 {0} .\",\n timerLimitAll: \"本页用时 {0} 共 {1}, 总计用时 {2} 共 {3} .\",\n timerLimitPage: \"本页用时 {0} 共 {1} .\",\n timerLimitSurvey: \"总计用时 {0} 共 {1}.\",\n clearCaption: \"清除\",\n signaturePlaceHolder: \"在此签名\",\n signaturePlaceHolderReadOnly: \"无签名\",\n chooseFileCaption: \"选择文件\",\n takePhotoCaption: \"拍照\",\n photoPlaceholder: \"单击下面的按钮使用相机拍照。\",\n fileOrPhotoPlaceholder: \"拖放或选择要上传的文件或使用相机拍摄照片。\",\n replaceFileCaption: \"替换文件\",\n removeFileCaption: \"移除文件\",\n booleanCheckedLabel: \"是\",\n booleanUncheckedLabel: \"否\",\n confirmRemoveFile: \"删除文件: {0}?\",\n confirmRemoveAllFiles: \"删除所有文件?\",\n questionTitlePatternText: \"标题\",\n modalCancelButtonText: \"取消\",\n modalApplyButtonText: \"确定\",\n filterStringPlaceholder: \"键入以搜索...\",\n emptyMessage: \"没有要显示的数据\",\n noEntriesText: \"尚无条目。\\n单击下面的按钮以添加新条目。\",\n noEntriesReadonlyText: \"没有条目。\",\n more: \"更多\",\n tagboxDoneButtonCaption: \"还行\",\n selectToRankEmptyRankedAreaText: \"所有选择均已排名\",\n selectToRankEmptyUnrankedAreaText: \"将选项拖放到此处进行排名\",\n ok: \"还行\",\n cancel: \"取消\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"zh-cn\"] = simplifiedChineseSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"zh-cn\"] = \"简体中文\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{1}{0}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"面板 {面板索引}\"\n// ratingOptionsCaption: \"Select...\" => \"选择。。。\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"将文件拖放到此处或单击下面的按钮并选择要上传的文件。\"\n// signaturePlaceHolder: \"Sign here\" => \"在此签名\"\n// filterStringPlaceholder: \"Type to search...\" => \"键入以搜索...\"\n// emptyMessage: \"No data to display\" => \"没有要显示的数据\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"尚无条目。\\n单击下面的按钮以添加新条目。\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"没有条目。\"\n// more: \"More\" => \"更多\"\n// tagboxDoneButtonCaption: \"OK\" => \"还行\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"所有选择均已排名\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"将选项拖放到此处进行排名\"// takePhotoCaption: \"Take Photo\" => \"拍照\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"单击下面的按钮使用相机拍照。\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"拖放或选择要上传的文件或使用相机拍摄照片。\"\n// replaceFileCaption: \"Replace file\" => \"替换文件\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"每行必须具有唯一值。\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"无法上传文件。请为“onUploadFiles”事件添加处理程序。\"\n// showDetails: \"Show Details\" => \"显示详细信息\"\n// hideDetails: \"Hide Details\" => \"隐藏详细信息\"\n// ok: \"OK\" => \"还行\"\n// cancel: \"Cancel\" => \"取消\"\n// refuseItemText: \"Refuse to answer\" => \"拒绝回答\"\n// dontKnowItemText: \"Don't know\" => \"不知道\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"您的回复超过 64KB。请减小文件的大小,然后重试或联系调查所有者。\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"无签名\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/slovak.ts\":\n/*!************************************!*\\\n !*** ./src/localization/slovak.ts ***!\n \\************************************/\n/*! exports provided: slovakSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"slovakSurveyStrings\", function() { return slovakSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar slovakSurveyStrings = {\n pagePrevText: \"Predchádzajúca\",\n pageNextText: \"Ďalej\",\n completeText: \"Dokončené\",\n previewText: \"Ukážka\",\n editText: \"Upraviť\",\n startSurveyText: \"Spustiť\",\n otherItemText: \"Iné (opíšte)\",\n noneItemText: \"Žiadne\",\n refuseItemText: \"Odmietnuť odpovedať\",\n dontKnowItemText: \"Neviem\",\n selectAllItemText: \"Vybrať všetky\",\n progressText: \"Strana {0} z {1}\",\n indexText: \"{0} {1}\",\n panelDynamicProgressText: \"Záznam {0} z {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Zodpovedané otázky {0}/{1}\",\n emptySurvey: \"V prieskume nie je žiadna vidieľná stránka ani otázka.\",\n completingSurvey: \"Ďakujeme vám za dokončenie prieskumu.\",\n completingSurveyBefore: \"Podľa našich záznamov ste už tento prieskum dokončili.\",\n loadingSurvey: \"Načítanie prieskumu...\",\n placeholder: \"Vybrať...\",\n ratingOptionsCaption: \"Vybrať...\",\n value: \"hodnota\",\n requiredError: \"Požaduje sa odozva.\",\n requiredErrorInPanel: \"Požaduje sa odozva: zodpovedajte aspoň jednu otázku.\",\n requiredInAllRowsError: \"Požaduje sa odozva: zodpovedajte otázky vo všetkých riadkoch.\",\n eachRowUniqueError: \"Každý riadok musí mať jedinečnú hodnotu.\",\n numericError: \"Hodnota má byť číselná.\",\n minError: \"Hodnota nemá byť nižšia než {0}\",\n maxError: \"Hodnota nemá byť vyššia než {0}\",\n textMinLength: \"Zadajte aspoň {0} znak(-y/-ov).\",\n textMaxLength: \"Nezadávajte viac než {0} znak(-y/-ov).\",\n textMinMaxLength: \"Zadajte aspoň {0} a nie viac než {1} znaky(-ov).\",\n minRowCountError: \"Vyplňte aspoň {0} riadok(-y/-ov).\",\n minSelectError: \"Vyberte aspoň {0} variant(-y/-ov).\",\n maxSelectError: \"Nevyberajte viac než {0} variant(-y/-ov).\",\n numericMinMax: \"„{0}“ má byť minimálne {1} a maximálne {2}\",\n numericMin: \"„{0}“ má byť minimálne {1}\",\n numericMax: \"„{0}“ má byť maximálne {1}\",\n invalidEmail: \"Zadajte platnú e-mailovú adresu.\",\n invalidExpression: \"Výraz: {0} má vrátiť hodnotu „true“.\",\n urlRequestError: \"Požiadavky vrátila hodnotu „{0}“. {1}\",\n urlGetChoicesError: \"Požiadavka vrátila prázdne údaje alebo je vlastnosť „cesta“ nesprávna\",\n exceedMaxSize: \"Veľkosť súboru nemá prekročiť {0}.\",\n noUploadFilesHandler: \"Súbory nie je možné nahrať. Pridajte obslužný program pre udalosť \\\"onUploadFiles\\\".\",\n otherRequiredError: \"Požaduje sa odozva: zadajte inú hodnotu.\",\n uploadingFile: \"Súbor sa odovzdáva. Počkajte niekoľko sekúnd a skúste to znova.\",\n loadingFile: \"Načítanie...\",\n chooseFile: \"Vyberte súbor(-y)...\",\n noFileChosen: \"Žiadny vybratý súbor\",\n filePlaceholder: \"Presuňte súbor sem alebo kliknite na nasledujúce tlačidlo a načítajte súbor.\",\n confirmDelete: \"Chcete záznam odstrániť?\",\n keyDuplicationError: \"Táto hodnota má byť jedinečná.\",\n addColumn: \"Pridať stĺpec\",\n addRow: \"Pridať riadok\",\n removeRow: \"Odstrániť\",\n emptyRowsText: \"K dispozícii nie sú žiadne riadky.\",\n addPanel: \"Pridať nové\",\n removePanel: \"Odstrániť\",\n showDetails: \"Zobraziť podrobnosti\",\n hideDetails: \"Skryť podrobnosti\",\n choices_Item: \"položka\",\n matrix_column: \"Stĺpec\",\n matrix_row: \"Riadok\",\n multipletext_itemname: \"text\",\n savingData: \"Výsledky sa ukladajú na server...\",\n savingDataError: \"V dôsledku chyby sa nepodarilo výsledky uložiť.\",\n savingDataSuccess: \"Výsledky sa úspešne uložili.\",\n savingExceedSize: \"Vaša odpoveď presahuje 64 kB. Zmenšite veľkosť svojich súborov a skúste to znova alebo kontaktujte vlastníka prieskumu.\",\n saveAgainButton: \"Skúste to znova\",\n timerMin: \"min\",\n timerSec: \"s\",\n timerSpentAll: \"Na tejto stránke ste strávili {0} a celkovo {1}.\",\n timerSpentPage: \"Na tejto stránke ste strávili {0}.\",\n timerSpentSurvey: \"Celkovo ste strávili {0}.\",\n timerLimitAll: \"Na tejto stránke ste strávili {0} z {1} a celkovo {2} z {3}.\",\n timerLimitPage: \"Na tejto stránke ste strávili {0} z {1}.\",\n timerLimitSurvey: \"Celkovo ste strávili {0} z {1}.\",\n clearCaption: \"Vymazať\",\n signaturePlaceHolder: \"Podpísať tu\",\n signaturePlaceHolderReadOnly: \"Bez podpisu\",\n chooseFileCaption: \"Vybrať súbor\",\n takePhotoCaption: \"Odfotiť\",\n photoPlaceholder: \"Kliknutím na tlačidlo nižšie nasnímate fotografiu pomocou fotoaparátu.\",\n fileOrPhotoPlaceholder: \"Presuňte myšou alebo vyberte súbor, ktorý chcete nahrať alebo nasnímať fotografiu pomocou fotoaparátu.\",\n replaceFileCaption: \"Nahradenie súboru\",\n removeFileCaption: \"Odstrániť tento súbor\",\n booleanCheckedLabel: \"Áno\",\n booleanUncheckedLabel: \"Nie\",\n confirmRemoveFile: \"Naozaj chcete odstrániť tento súbor: {0}?\",\n confirmRemoveAllFiles: \"Naozaj chcete odstrániť všetky súbory?\",\n questionTitlePatternText: \"Titul otázky\",\n modalCancelButtonText: \"Zrušiť\",\n modalApplyButtonText: \"Použiť\",\n filterStringPlaceholder: \"Vyhľadávanie písaním...\",\n emptyMessage: \"Žiadne údaje na zobrazenie\",\n noEntriesText: \"K dispozícii ešte nie sú žiadne zadania.\\nKliknutím na nasledujúce tlačidlo pridajte nové zadanie.\",\n noEntriesReadonlyText: \"Nie sú k dispozícii žiadne záznamy.\",\n more: \"Viacej\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Všetky možnosti sú zoradené\",\n selectToRankEmptyUnrankedAreaText: \"Presuňte sem voľby, aby ste ich zoradili\",\n ok: \"OK\",\n cancel: \"Zrušiť\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"sk\"] = slovakSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"sk\"] = \"slovak\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Vybrať...\"\n// emptyMessage: \"No data to display\" => \"Žiadne údaje na zobrazenie\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Nie sú k dispozícii žiadne záznamy.\"\n// more: \"More\" => \"Viacej\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Všetky možnosti sú zoradené\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Presuňte sem voľby, aby ste ich zoradili\"// takePhotoCaption: \"Take Photo\" => \"Odfotiť\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Kliknutím na tlačidlo nižšie nasnímate fotografiu pomocou fotoaparátu.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Presuňte myšou alebo vyberte súbor, ktorý chcete nahrať alebo nasnímať fotografiu pomocou fotoaparátu.\"\n// replaceFileCaption: \"Replace file\" => \"Nahradenie súboru\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Každý riadok musí mať jedinečnú hodnotu.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Súbory nie je možné nahrať. Pridajte obslužný program pre udalosť \\\"onUploadFiles\\\".\"\n// showDetails: \"Show Details\" => \"Zobraziť podrobnosti\"\n// hideDetails: \"Hide Details\" => \"Skryť podrobnosti\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Zrušiť\"\n// refuseItemText: \"Refuse to answer\" => \"Odmietnuť odpovedať\"\n// dontKnowItemText: \"Don't know\" => \"Neviem\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Vaša odpoveď presahuje 64 kB. Zmenšite veľkosť svojich súborov a skúste to znova alebo kontaktujte vlastníka prieskumu.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Bez podpisu\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/spanish.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/spanish.ts ***!\n \\*************************************/\n/*! exports provided: spanishSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spanishSurveyStrings\", function() { return spanishSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar spanishSurveyStrings = {\n pagePrevText: \"Anterior\",\n pageNextText: \"Siguiente\",\n completeText: \"Completar\",\n previewText: \"Vista previa\",\n editText: \"Edita\",\n startSurveyText: \"Comienza\",\n otherItemText: \"Otro (describa)\",\n noneItemText: \"Ninguno\",\n refuseItemText: \"Negarse a responder\",\n dontKnowItemText: \"No sé\",\n selectAllItemText: \"Seleccionar todo\",\n progressText: \"Página {0} de {1}\",\n indexText: \"{0} de {1}\",\n panelDynamicProgressText: \"Registro {0} de {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Respondió a {0}/{1} preguntas\",\n emptySurvey: \"No hay página visible o pregunta en la encuesta.\",\n completingSurvey: \"¡Gracias por completar la encuesta!\",\n completingSurveyBefore: \"Nuestros registros muestran que ya ha completado esta encuesta.\",\n loadingSurvey: \"La encuesta está cargando...\",\n placeholder: \"Seleccione...\",\n ratingOptionsCaption: \"Toca aquí para calificar...\",\n value: \"valor\",\n requiredError: \"Por favor conteste la pregunta.\",\n requiredErrorInPanel: \"Por favor, responda al menos una pregunta.\",\n requiredInAllRowsError: \"Por favor conteste las preguntas en cada hilera.\",\n eachRowUniqueError: \"Cada fila debe tener un valor único.\",\n numericError: \"La estimación debe ser numérica.\",\n minError: \"La estimación no debe ser menor que {0}\",\n maxError: \"La estimación no debe ser mayor que {0}\",\n textMinLength: \"Por favor entre por lo menos {0} símbolos.\",\n textMaxLength: \"Por favor entre menos de {0} símbolos.\",\n textMinMaxLength: \"Por favor entre más de {0} y menos de {1} símbolos.\",\n minRowCountError: \"Por favor llene por lo menos {0} hileras.\",\n minSelectError: \"Por favor seleccione por lo menos {0} variantes.\",\n maxSelectError: \"Por favor seleccione no más de {0} variantes.\",\n numericMinMax: \"El '{0}' debe de ser igual o más de {1} y igual o menos de {2}\",\n numericMin: \"El '{0}' debe ser igual o más de {1}\",\n numericMax: \"El '{0}' debe ser igual o menos de {1}\",\n invalidEmail: \"Por favor agregue un correo electrónico válido.\",\n invalidExpression: \"La expresión: {0} debería devolver 'verdadero'.\",\n urlRequestError: \"La solicitud regresó error '{0}'. {1}\",\n urlGetChoicesError: \"La solicitud regresó vacío de data o la propiedad 'trayectoria' no es correcta\",\n exceedMaxSize: \"El tamaño del archivo no debe de exceder {0}.\",\n noUploadFilesHandler: \"Los archivos no se pueden cargar. Agregue un controlador para el evento 'onUploadFiles'.\",\n otherRequiredError: \"Por favor agregue la otra estimación.\",\n uploadingFile: \"Su archivo se está subiendo. Por favor espere unos segundos e intente de nuevo.\",\n loadingFile: \"Cargando...\",\n chooseFile: \"Elija archivo(s)...\",\n noFileChosen: \"No se ha elegido ningún archivo\",\n filePlaceholder: \"Suelte un archivo aquí o haga clic en el botón de abajo para cargar el archivo\",\n confirmDelete: \"¿Quieres borrar el registro?\",\n keyDuplicationError: \"Este valor debe ser único.\",\n addColumn: \"Añadir columna\",\n addRow: \"Agregue una hilera\",\n removeRow: \"Eliminar una hilera\",\n emptyRowsText: \"No hay hileras.\",\n addPanel: \"Añadir nuevo\",\n removePanel: \"Retire\",\n showDetails: \"Mostrar detalles\",\n hideDetails: \"Ocultar detalles\",\n choices_Item: \"artículo\",\n matrix_column: \"Columna\",\n matrix_row: \"Hilera\",\n multipletext_itemname: \"texto\",\n savingData: \"Los resultados se están guardando en el servidor...\",\n savingDataError: \"Los resultados se están guardando en el servidor...\",\n savingDataSuccess: \"¡Los resultados se guardaron con éxito!\",\n savingExceedSize: \"Su respuesta supera los 64 KB. Reduzca el tamaño de su(s) archivo(s) e inténtelo de nuevo o póngase en contacto con el propietario de una encuesta.\",\n saveAgainButton: \"Inténtalo de nuevo.\",\n timerMin: \"min\",\n timerSec: \"sec\",\n timerSpentAll: \"Has gastado {0} en esta página y {1} en total.\",\n timerSpentPage: \"Usted ha pasado {0} en esta página.\",\n timerSpentSurvey: \"Has gastado en total.\",\n timerLimitAll: \"Has gastado {0} de {1} en esta página y {2} de {3} en total.\",\n timerLimitPage: \"Has gastado {0} de {1} en esta página.\",\n timerLimitSurvey: \"Usted ha gastado {0} de {1} en total.\",\n clearCaption: \"Borrar\",\n signaturePlaceHolder: \"Firma aqui\",\n signaturePlaceHolderReadOnly: \"Sin firma\",\n chooseFileCaption: \"Elija el archivo\",\n takePhotoCaption: \"Tomar foto\",\n photoPlaceholder: \"Haga clic en el botón de abajo para tomar una foto con la cámara.\",\n fileOrPhotoPlaceholder: \"Arrastre y suelte o seleccione un archivo para cargar o tomar una foto con la cámara.\",\n replaceFileCaption: \"Reemplazar archivo\",\n removeFileCaption: \"Elimina este archivo\",\n booleanCheckedLabel: \"Sí\",\n booleanUncheckedLabel: \"No\",\n confirmRemoveFile: \"¿Estás seguro de que quieres eliminar este archivo: {0}?\",\n confirmRemoveAllFiles: \"¿Estás seguro de que quieres eliminar todos los archivos?\",\n questionTitlePatternText: \"Título de la pregunta\",\n modalCancelButtonText: \"Anular\",\n modalApplyButtonText: \"Aplicar\",\n filterStringPlaceholder: \"Escribe para buscar...\",\n emptyMessage: \"No hay datos para mostrar\",\n noEntriesText: \"Aún no hay entradas.\\nHaga clic en el botón de abajo para agregar una nueva entrada.\",\n noEntriesReadonlyText: \"No hay entradas.\",\n more: \"Más\",\n tagboxDoneButtonCaption: \"De acuerdo\",\n selectToRankEmptyRankedAreaText: \"Todas las opciones están clasificadas\",\n selectToRankEmptyUnrankedAreaText: \"Arrastra y suelta opciones aquí para clasificarlas\",\n ok: \"De acuerdo\",\n cancel: \"Cancelar\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"es\"] = spanishSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"es\"] = \"español\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// emptyMessage: \"No data to display\" => \"No hay datos para mostrar\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"No hay entradas.\"\n// more: \"More\" => \"Más\"\n// tagboxDoneButtonCaption: \"OK\" => \"De acuerdo\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Todas las opciones están clasificadas\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Arrastra y suelta opciones aquí para clasificarlas\"// takePhotoCaption: \"Take Photo\" => \"Tomar foto\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Haga clic en el botón de abajo para tomar una foto con la cámara.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Arrastre y suelte o seleccione un archivo para cargar o tomar una foto con la cámara.\"\n// replaceFileCaption: \"Replace file\" => \"Reemplazar archivo\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Cada fila debe tener un valor único.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Los archivos no se pueden cargar. Agregue un controlador para el evento 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Mostrar detalles\"\n// hideDetails: \"Hide Details\" => \"Ocultar detalles\"\n// ok: \"OK\" => \"De acuerdo\"\n// cancel: \"Cancel\" => \"Cancelar\"\n// refuseItemText: \"Refuse to answer\" => \"Negarse a responder\"\n// dontKnowItemText: \"Don't know\" => \"No sé\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Su respuesta supera los 64 KB. Reduzca el tamaño de su(s) archivo(s) e inténtelo de nuevo o póngase en contacto con el propietario de una encuesta.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Sin firma\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/swahili.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/swahili.ts ***!\n \\*************************************/\n/*! exports provided: swahiliStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"swahiliStrings\", function() { return swahiliStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar swahiliStrings = {\n pagePrevText: \"Iliyotangulia\",\n pageNextText: \"Ifuatayo\",\n completeText: \"Kamili\",\n previewText: \"Hakiki\",\n editText: \"Hariri\",\n startSurveyText: \"Anza\",\n otherItemText: \"Nyingine (eleza)\",\n noneItemText: \"Hakuna\",\n refuseItemText: \"Kukataa kujibu\",\n dontKnowItemText: \"Sijui\",\n selectAllItemText: \"Chagua Zote\",\n progressText: \"Ukurasa {0} wa {1}\",\n indexText: \"{0} ya {1}\",\n panelDynamicProgressText: \"Rekodi {0} ya {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Yaliyojibiwa {0}/{1} maswali\",\n emptySurvey: \"Hakuna ukurasa unaoonekana au swali katika utafiti.\",\n completingSurvey: \"Asanti kwa kukamilisha utafiti!\",\n completingSurveyBefore: \"Recodi zetu zinatuonyesha tayari umekamilisha utafiti.\",\n loadingSurvey: \"Tunaandaa utafiti...\",\n placeholder: \"Chagua...\",\n ratingOptionsCaption: \"Teua...\",\n value: \"thamani\",\n requiredError: \"Tafadhali jibu hili swali.\",\n requiredErrorInPanel: \"Tafadhali jibu swali angalau moja.\",\n requiredInAllRowsError: \"Tafadhali jibu maswali katika safu zote.\",\n eachRowUniqueError: \"Kila safu lazima iwe na thamani ya kipekee.\",\n numericError: \"Thamani inapaswa kuwa ya nambari.\",\n minError: \"Thamani haipaswi kuwa chini ya {0}\",\n maxError: \"Thamani haipaswi kuwa kubwa kuliko {0}\",\n textMinLength: \"Tafadhali ingiza angalau{0} husika.\",\n textMaxLength: \"Tafadhali ingiza isiozidi {0} husika.\",\n textMinMaxLength: \"Tafadhali ingiza kiwango zaidi ya {0} na kisichopungua {1} husika.\",\n minRowCountError: \"Tafadhali jaza isiopungua {0} safu.\",\n minSelectError: \"Tafadhali chagua angalau {0} lahaja.\",\n maxSelectError: \"Tafadhali changua isiozidi {0} lahaja.\",\n numericMinMax: \" '{0}' inapaswa kuwa sawa au zaidi ya {1} na sawa au chini ya {2}\",\n numericMin: \" '{0}'inapaswa kuwa sawa au zaidi ya {1}\",\n numericMax: \" '{0}'inapaswa kuwa sawa au chini ya {1}\",\n invalidEmail: \"Tafadhali ingiza anwani halali ya barua-pepe.\",\n invalidExpression: \"Usemi:{0} inapaswa kurudi 'kweli'.\",\n urlRequestError: \"Ombi lina kosa '{0}'. {1}\",\n urlGetChoicesError: \"Ombi lilirudisha data tupu au the 'path' mali ya njia sio sahihi\",\n exceedMaxSize: \"Saizi ya faili haipaswi kuzidi {0}.\",\n noUploadFilesHandler: \"Faili haziwezi kupakiwa. Tafadhali ongeza kishiko kwa tukio la 'onUploadFiles'.\",\n otherRequiredError: \"Tafadhali ingiza thamani nyingine.\",\n uploadingFile: \"Faili yako inapakia.Tafadhali subiri sekunde kadhaa na ujaribu tena.\",\n loadingFile: \"Inapakia...\",\n chooseFile: \"Chagua faili...\",\n noFileChosen: \"Hujachagua faili\",\n filePlaceholder: \"Buruta na udondoshe faili hapa au bofya kitufe hapa chini na uchague faili ya kupakia.\",\n confirmDelete: \"Je! Unataka kufuta rekodi?\",\n keyDuplicationError: \"Thamani hii inapaswa kuwa ya kipekee.\",\n addColumn: \"Ongeza Kolamu\",\n addRow: \"Ongeza safu\",\n removeRow: \"Toa\",\n emptyRowsText: \"Hakuna safu.\",\n addPanel: \"Ongeza mpya\",\n removePanel: \"Toa\",\n showDetails: \"Onyesha Maelezo\",\n hideDetails: \"Ficha Maelezo\",\n choices_Item: \"kitu\",\n matrix_column: \"Kolamu\",\n matrix_row: \"Safu\",\n multipletext_itemname: \"Ujumbe\",\n savingData: \"Matokeo yamehifadhiwa kwa seva...\",\n savingDataError: \"Kosa limetokea na hatukuweza kuhifadhi matokeo.\",\n savingDataSuccess: \"Matokeo yamehifadhiwa!\",\n savingExceedSize: \"Jibu lako ni zaidi ya 64KB. Tafadhali punguza ukubwa wa faili yako na jaribu tena au wasiliana na mmiliki wa utafiti.\",\n saveAgainButton: \"Jaribu tena\",\n timerMin: \"dakika\",\n timerSec: \"sekunde\",\n timerSpentAll: \"Umetumia {0} kwenye ukurasa huu na {1} kwa jumla.\",\n timerSpentPage: \"Umetumia {0} kwenye ukurasa huu.\",\n timerSpentSurvey: \"Umetumia {0} kwa jumla.\",\n timerLimitAll: \"Umetumia {0} ya {1} kwenye ukurasa huu {2} wa {3} kwa jumla.\",\n timerLimitPage: \"Umetumia {0} ya {1} kwenye ukurasa huu.\",\n timerLimitSurvey: \"Umetumia {0} ya {1} kwa jumla.\",\n clearCaption: \"Ondoa\",\n signaturePlaceHolder: \"Ingia hapa\",\n signaturePlaceHolderReadOnly: \"Hakuna saini\",\n chooseFileCaption: \"Chagua faili\",\n takePhotoCaption: \"Chukua Picha\",\n photoPlaceholder: \"Bonyeza kitufe hapa chini ili kupiga picha kwa kutumia kamera.\",\n fileOrPhotoPlaceholder: \"Drag na kuacha au kuchagua faili kupakia au kuchukua picha kwa kutumia kamera.\",\n replaceFileCaption: \"Badilisha faili\",\n removeFileCaption: \"Ondoa faili\",\n booleanCheckedLabel: \"Ndio\",\n booleanUncheckedLabel: \"Hapana\",\n confirmRemoveFile: \"Je! Una uhakika kuwa unataka kuondoa faili hii: {0}?\",\n confirmRemoveAllFiles: \"Je! Una uhakika kuwa unataka kuondoa faili zote?\",\n questionTitlePatternText: \"Kichwa cha Swali\",\n modalCancelButtonText: \"Katisha\",\n modalApplyButtonText: \"Tekeleza\",\n filterStringPlaceholder: \"Andika ili kutafuta...\",\n emptyMessage: \"Hakuna data ya kuonyesha\",\n noEntriesText: \"Hakuna maingizo kwa sasa.\\nBofya kitufe hapa chini ili kuongeza ingizo jipya.\",\n noEntriesReadonlyText: \"Hakuna viingilio.\",\n more: \"Zaidi\",\n tagboxDoneButtonCaption: \"Sawa kabisa\",\n selectToRankEmptyRankedAreaText: \"Chaguzi zote zimeorodheshwa\",\n selectToRankEmptyUnrankedAreaText: \"Buruta na uache uchaguzi hapa ili kuziorodhesha\",\n ok: \"Sawa kabisa\",\n cancel: \"Katisha\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"sw\"] = swahiliStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"sw\"] = \"swahili\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} ya {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Teua...\"\n// minError: \"The value should not be less than {0}\" => \"Thamani haipaswi kuwa chini ya {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Thamani haipaswi kuwa kubwa kuliko {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Buruta na udondoshe faili hapa au bofya kitufe hapa chini na uchague faili ya kupakia.\"\n// emptyRowsText: \"There are no rows.\" => \"Hakuna safu.\"\n// multipletext_itemname: \"text\" => \"Ujumbe\"\n// signaturePlaceHolder: \"Sign here\" => \"Ingia hapa\"\n// modalCancelButtonText: \"Cancel\" => \"Katisha\"\n// modalApplyButtonText: \"Apply\" => \"Tekeleza\"\n// filterStringPlaceholder: \"Type to search...\" => \"Andika ili kutafuta...\"\n// emptyMessage: \"No data to display\" => \"Hakuna data ya kuonyesha\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Hakuna maingizo kwa sasa.\\nBofya kitufe hapa chini ili kuongeza ingizo jipya.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Hakuna viingilio.\"\n// more: \"More\" => \"Zaidi\"\n// tagboxDoneButtonCaption: \"OK\" => \"Sawa kabisa\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Chaguzi zote zimeorodheshwa\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Buruta na uache uchaguzi hapa ili kuziorodhesha\"// takePhotoCaption: \"Take Photo\" => \"Chukua Picha\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Bonyeza kitufe hapa chini ili kupiga picha kwa kutumia kamera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Drag na kuacha au kuchagua faili kupakia au kuchukua picha kwa kutumia kamera.\"\n// replaceFileCaption: \"Replace file\" => \"Badilisha faili\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Kila safu lazima iwe na thamani ya kipekee.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Faili haziwezi kupakiwa. Tafadhali ongeza kishiko kwa tukio la 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Onyesha Maelezo\"\n// hideDetails: \"Hide Details\" => \"Ficha Maelezo\"\n// ok: \"OK\" => \"Sawa kabisa\"\n// cancel: \"Cancel\" => \"Katisha\"\n// refuseItemText: \"Refuse to answer\" => \"Kukataa kujibu\"\n// dontKnowItemText: \"Don't know\" => \"Sijui\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Jibu lako ni zaidi ya 64KB. Tafadhali punguza ukubwa wa faili yako na jaribu tena au wasiliana na mmiliki wa utafiti.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Hakuna saini\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/swedish.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/swedish.ts ***!\n \\*************************************/\n/*! exports provided: swedishSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"swedishSurveyStrings\", function() { return swedishSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar swedishSurveyStrings = {\n pagePrevText: \"Föregående\",\n pageNextText: \"Nästa\",\n completeText: \"Slutför\",\n previewText: \"Förhandsvisning\",\n editText: \"Redigera\",\n startSurveyText: \"Börja\",\n otherItemText: \"Annat (beskriv)\",\n noneItemText: \"Ingen\",\n refuseItemText: \"Vägra svara\",\n dontKnowItemText: \"Vet inte\",\n selectAllItemText: \"Välj alla\",\n progressText: \"Sida {0} av {1}\",\n indexText: \"{0} av {1}\",\n panelDynamicProgressText: \"{0} av {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"{0} / {1} frågor besvarade\",\n emptySurvey: \"Det finns ingen synlig sida eller fråga i enkäten.\",\n completingSurvey: \"Tack för att du genomfört enkäten!!\",\n completingSurveyBefore: \"Våra register visar att du redan har slutfört denna undersökning.\",\n loadingSurvey: \"Enkäten laddas...\",\n placeholder: \"Välj...\",\n ratingOptionsCaption: \"Tryck här för att betygsätta...\",\n value: \"värde\",\n requiredError: \"Frågan är obligatorisk.\",\n requiredErrorInPanel: \"Vänligen svara på minst en fråga.\",\n requiredInAllRowsError: \"Var vänlig besvara frågorna på alla rader.\",\n eachRowUniqueError: \"Varje rad måste ha ett unikt värde.\",\n numericError: \"Värdet ska vara numeriskt.\",\n minError: \"Värdet får inte vara mindre än {0}\",\n maxError: \"Värdet får inte vara större än {0}\",\n textMinLength: \"Ange minst {0} tecken.\",\n textMaxLength: \"Ange färre än {0} tecken.\",\n textMinMaxLength: \"Ange mer än {0} och färre än {1} tecken.\",\n minRowCountError: \"Var vänlig fyll i minst {0} rader.\",\n minSelectError: \"Var vänlig välj åtminstone {0} varianter.\",\n maxSelectError: \"Var vänlig välj inte fler än {0} varianter.\",\n numericMinMax: \"'{0}' ska vara lika med eller mer än {1} samt lika med eller mindre än {2}\",\n numericMin: \"'{0}' ska vara lika med eller mer än {1}\",\n numericMax: \"'{0}' ska vara lika med eller mindre än {1}\",\n invalidEmail: \"Var vänlig ange en korrekt e-postadress.\",\n invalidExpression: \"Uttrycket: {0} ska returnera 'true'.\",\n urlRequestError: \"Förfrågan returnerade felet '{0}'. {1}\",\n urlGetChoicesError: \"Antingen returnerade förfrågan ingen data eller så är egenskapen 'path' inte korrekt\",\n exceedMaxSize: \"Filstorleken får ej överstiga {0}.\",\n noUploadFilesHandler: \"Filer kan inte laddas upp. Lägg till en hanterare för händelsen 'onUploadFiles'.\",\n otherRequiredError: \"Var vänlig ange det andra värdet.\",\n uploadingFile: \"Din fil laddas upp. Var vänlig vänta några sekunder och försök sedan igen.\",\n loadingFile: \"Laddar...\",\n chooseFile: \"Välj fil(er) ...\",\n noFileChosen: \"Ingen fil vald\",\n filePlaceholder: \"Dra och släpp en fil här eller klicka på knappen nedan och välj en fil att ladda upp.\",\n confirmDelete: \"Vill du radera posten?\",\n keyDuplicationError: \"Detta värde ska vara unikt.\",\n addColumn: \"Lägg till kolumn\",\n addRow: \"Lägg till rad\",\n removeRow: \"Ta bort\",\n emptyRowsText: \"Det finns inga rader.\",\n addPanel: \"Lägg till ny\",\n removePanel: \"Ta bort\",\n showDetails: \"Detaljer\",\n hideDetails: \"Göm detaljer\",\n choices_Item: \"Artikel\",\n matrix_column: \"Kolumn\",\n matrix_row: \"Rad\",\n multipletext_itemname: \"text\",\n savingData: \"Resultaten sparas på servern ...\",\n savingDataError: \"Ett fel inträffade och vi kunde inte spara resultaten.\",\n savingDataSuccess: \"Resultaten lyckades sparas!\",\n savingExceedSize: \"Ditt svar överskrider 64 kB. Minska storleken på dina filer och försök igen eller kontakta en undersökningsägare.\",\n saveAgainButton: \"Försök igen\",\n timerMin: \"min\",\n timerSec: \"sek\",\n timerSpentAll: \"Du har spenderat {0} på den här sidan och {1} totalt.\",\n timerSpentPage: \"Du har spenderat {0} på den här sidan.\",\n timerSpentSurvey: \"Du har spenderat {0} totalt.\",\n timerLimitAll: \"Du har spenderat {0} av {1} på den här sidan och {2} av {3} totalt.\",\n timerLimitPage: \"Du har spenderat {0} av {1} på den här sidan.\",\n timerLimitSurvey: \"Du har spenderat {0} av {1} totalt.\",\n clearCaption: \"Klar\",\n signaturePlaceHolder: \"Signera här\",\n signaturePlaceHolderReadOnly: \"Ingen signatur\",\n chooseFileCaption: \"Välj fil\",\n takePhotoCaption: \"Ta foto\",\n photoPlaceholder: \"Klicka på knappen nedan för att ta ett foto med kameran.\",\n fileOrPhotoPlaceholder: \"Dra och släpp eller välj en fil att ladda upp eller ta ett foto med kameran.\",\n replaceFileCaption: \"Ersätt fil\",\n removeFileCaption: \"Ta bort den här filen\",\n booleanCheckedLabel: \"Ja\",\n booleanUncheckedLabel: \"Nej\",\n confirmRemoveFile: \"Är du säker på att du vill ta bort den här filen: {0}?\",\n confirmRemoveAllFiles: \"Är du säker på att du vill ta bort alla filer?\",\n questionTitlePatternText: \"Frågetitel\",\n modalCancelButtonText: \"Avbryt\",\n modalApplyButtonText: \"Spara\",\n filterStringPlaceholder: \"Skriv för att söka...\",\n emptyMessage: \"Ingen data finns\",\n noEntriesText: \"Det finns inga värden än.\\nKlicka på knappen nedan för att lägga till nytt värde.\",\n noEntriesReadonlyText: \"Det finns inga poster.\",\n more: \"Mer\",\n tagboxDoneButtonCaption: \"OKEJ\",\n selectToRankEmptyRankedAreaText: \"Alla val rangordnas\",\n selectToRankEmptyUnrankedAreaText: \"Dra och släpp val här för att rangordna dem\",\n ok: \"OKEJ\",\n cancel: \"Annullera\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"sv\"] = swedishSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"sv\"] = \"svenska\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Dra och släpp en fil här eller klicka på knappen nedan och välj en fil att ladda upp.\"\n// emptyRowsText: \"There are no rows.\" => \"Det finns inga rader.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Det finns inga poster.\"\n// tagboxDoneButtonCaption: \"OK\" => \"OKEJ\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Alla val rangordnas\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Dra och släpp val här för att rangordna dem\"// takePhotoCaption: \"Take Photo\" => \"Ta foto\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Klicka på knappen nedan för att ta ett foto med kameran.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Dra och släpp eller välj en fil att ladda upp eller ta ett foto med kameran.\"\n// replaceFileCaption: \"Replace file\" => \"Ersätt fil\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Varje rad måste ha ett unikt värde.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Filer kan inte laddas upp. Lägg till en hanterare för händelsen 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Detaljer\"\n// hideDetails: \"Hide Details\" => \"Göm detaljer\"\n// ok: \"OK\" => \"OKEJ\"\n// cancel: \"Cancel\" => \"Annullera\"\n// refuseItemText: \"Refuse to answer\" => \"Vägra svara\"\n// dontKnowItemText: \"Don't know\" => \"Vet inte\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Ditt svar överskrider 64 kB. Minska storleken på dina filer och försök igen eller kontakta en undersökningsägare.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Ingen signatur\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/tajik.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/tajik.ts ***!\n \\***********************************/\n/*! exports provided: tajikSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tajikSurveyStrings\", function() { return tajikSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n// This dictionary contains 25 untranslated or inherited localization strings.\n// These strings are commented out. Uncomment and edit them if you want to add your translations.\n\nvar tajikSurveyStrings = {\n pagePrevText: \"Бозгашт\",\n pageNextText: \"Оянда\",\n completeText: \"Иҷро шуд\",\n // previewText: \"Preview\",\n // editText: \"Edit\",\n startSurveyText: \"Оғоз\",\n otherItemText: \"Дигар (лутфан тавсиф кунед)\",\n noneItemText: \"Не\",\n selectAllItemText: \"Ҳамаро интихоб кардан\",\n progressText: \"Саҳифаи {0} аз {1}\",\n // indexText: \"{0} of {1}\",\n // panelDynamicProgressText: \"{0} of {1}\",\n // questionsProgressText: \"Answered {0}/{1} questions\",\n emptySurvey: \"Ягон савол вуҷуд надорад.\",\n completingSurvey: \"Ташаккур барои пур кардани саволнома!\",\n completingSurveyBefore: \"Шумо аллакай ин пурсишро анҷом додаед.\",\n loadingSurvey: \"Боргирӣ аз сервер...\",\n placeholder: \"Интихоб кардан...\",\n // ratingOptionsCaption: \"Select...\",\n value: \"қиммат\",\n requiredError: \"Илтимос, ба савол ҷавоб диҳед.\",\n requiredErrorInPanel: \"Илтимос, ақалан ба як савол ҷавоб диҳед.\",\n requiredInAllRowsError: \"Илтимос, ба ҳамаи саволҳо дар ҳамаи сатрҳо ҷавоб диҳед.\",\n numericError: \"Ҷавоб бояд рақам бошад.\",\n // minError: \"The value should not be less than {0}\",\n // maxError: \"The value should not be greater than {0}\",\n textMinLength: \"Илтимос, аз {0} зиёдтар рамз ворид кунед.\",\n textMaxLength: \"Илтимос, аз {0} камтар рамз ворид кунед.\",\n textMinMaxLength: \"Илтимос, аз {0} зиёдтар ва аз {1} камтар рамз ворид кунед.\",\n minRowCountError: \"Илтимос, на камтар аз {0} сатр пур кунед.\",\n minSelectError: \"Илтимос, ақалан {0} вариант интихоб кунед.\",\n maxSelectError: \"Илтимос, на зиёдтар аз {0} вариант интихоб кунед.\",\n numericMinMax: \"'{0}' бояд на кам аз {1} ва на бисёр аз {2} бошад\",\n numericMin: \"'{0}' бояд на кам аз {1} бошад\",\n numericMax: \"'{0}' бояд на зиёд аз {1} бошад\",\n invalidEmail: \"Илтимос, почтаи электронии воқеиро ворид кунед.\",\n invalidExpression: \"Ифодаи {0} бояд 'true' баргардонад.\",\n urlRequestError: \"Дархост хатогӣ бозгардонд '{0}'. {1}\",\n urlGetChoicesError: \"Ҷавоб ба дархост холӣ омад ё хосияти 'path' нодуруст муайян карда шудааст\",\n exceedMaxSize: \"Андозаи файл бояд на калон аз {0} бошад.\",\n otherRequiredError: \"Илтимос, ба майдони 'Дигар' додаҳоро ворид кунед\",\n uploadingFile: \"Файли шумо бор шуда истодааст. Якчанд сония интизор шавед ва бори дигар кӯшиш кунед.\",\n loadingFile: \"Боркунӣ...\",\n chooseFile: \"Файл(ҳо)-ро интихоб кунед...\",\n // noFileChosen: \"No file chosen\",\n // filePlaceholder: \"Drop a file here or click the button below to load the file.\",\n confirmDelete: \"Шумо мутмаин ҳастед, ки мехоҳед воридро тоза кунед?\",\n keyDuplicationError: \"Ин арзиш бояд беназир бошад.\",\n addColumn: \"Иловаи сутун\",\n addRow: \"Иловаи сатр\",\n removeRow: \"Нест кардан\",\n // emptyRowsText: \"There are no rows.\",\n addPanel: \"Илова кардан\",\n removePanel: \"Нест кардан\",\n choices_Item: \"Вариант\",\n matrix_column: \"Сутун\",\n matrix_row: \"Сатр\",\n // multipletext_itemname: \"text\",\n savingData: \"Натиҷа ба сервер сабт шуда истодаанд...\",\n savingDataError: \"Хатогӣ ба амал омад, натиҷа сабт нашуд.\",\n savingDataSuccess: \"Натиҷа бомуваффакият сабт шуд!\",\n saveAgainButton: \"Бори дигар кӯшиш карданд\",\n timerMin: \"дақ\",\n timerSec: \"сон\",\n timerSpentAll: \"Шумо {0} дар ин саҳифа ва {1} дар умум сарф кардед.\",\n timerSpentPage: \"Шумо {0} дар ин саҳифа сарф кардед.\",\n timerSpentSurvey: \"Шумо {0} дар ин тест сарф намудед.\",\n timerLimitAll: \"Шумо {0} аз {1} дар ин саҳифа ва {2} аз {3} дар умум сарф кардед дар дохили ин тест.\",\n timerLimitPage: \"Шумо {0} аз {1} дар ин саҳифа сарф кардед.\",\n timerLimitSurvey: \"Шумо {0} аз {1} дар ҳамаи тест сарф кардед.\",\n clearCaption: \"Тоза кардан\",\n // signaturePlaceHolder: \"Sign here\",\n // chooseFileCaption: \"Choose file\",\n removeFileCaption: \"Файлро нест кардан\",\n // booleanCheckedLabel: \"Yes\",\n // booleanUncheckedLabel: \"No\",\n // confirmRemoveFile: \"Are you sure that you want to remove this file: {0}?\",\n // confirmRemoveAllFiles: \"Are you sure that you want to remove all files?\",\n // questionTitlePatternText: \"Question Title\",\n // modalCancelButtonText: \"Cancel\",\n // modalApplyButtonText: \"Apply\",\n // filterStringPlaceholder: \"Type to search...\",\n // emptyMessage: \"No data to display\",\n // noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\",\n // more: \"More\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"tg\"] = tajikSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"tg\"] = \"тоҷикӣ\";\n\n\n/***/ }),\n\n/***/ \"./src/localization/telugu.ts\":\n/*!************************************!*\\\n !*** ./src/localization/telugu.ts ***!\n \\************************************/\n/*! exports provided: teluguStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"teluguStrings\", function() { return teluguStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar teluguStrings = {\n pagePrevText: \"వెనకటి\",\n pageNextText: \"తరువాయ\",\n completeText: \"పూర్తి చేయండి\",\n previewText: \"ముందుగా వీక్షించు\",\n editText: \"మార్పులు చెయ్యి\",\n startSurveyText: \"ప్రారంభించు\",\n otherItemText: \"ఇతరమైన(వివరించండి)\",\n noneItemText: \"ఎవరు కాదు\",\n refuseItemText: \"సమాధానం ఇవ్వడానికి నిరాకరించండి\",\n dontKnowItemText: \"తెలియదు\",\n selectAllItemText: \"అన్ని ఎంచుకో\",\n progressText: \"పేజీ{0}/{1}\",\n indexText: \"{1} {0}[మార్చు]\",\n panelDynamicProgressText: \"దాఖలాలు{0}/{1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"{0}/{1} ప్రశ్నలకు జవాబు ఇవ్వడం అయినది\",\n emptySurvey: \"ఈ సర్వేలో పేజీలు గాని ప్రశ్నలు గాని కనబడుట లేదు\",\n completingSurvey: \"సర్వేను ముగించి నందుకు ధన్యవాదములు\",\n completingSurveyBefore: \" మీరు ఇప్పటికే సర్వేను ముగించినట్లు మా రికార్డులు చూపిస్తున్నాయి\",\n loadingSurvey: \"సర్వే లోడ్ అవుతుంది\",\n placeholder: \"ఎన్నుకోండి\",\n ratingOptionsCaption: \"ఎంచు...\",\n value: \"విలువ\",\n requiredError: \"దయచేసి ప్రశ్నకు జవాబు ఇవ్వండి\",\n requiredErrorInPanel: \"దయచేసి కనీసం ఒక్క ప్రశ్నకైనా జవాబు ఇవ్వండి\",\n requiredInAllRowsError: \"దయచేసి అన్ని వరుసలలో ఉన్న ప్రశ్నలకు జవాబు ఇవ్వండి\",\n eachRowUniqueError: \"ప్రతి వరుసకు ఒక ప్రత్యేకమైన విలువ ఉండాలి.\",\n numericError: \"విలువను సంఖ్యలలో తెలియజేయండి\",\n minError: \"విలువ {0} కంటే తక్కువగా ఉండకూడదు.\",\n maxError: \"విలువ {0} కంటే ఎక్కువ ఉండకూడదు.\",\n textMinLength: \"దయచేసి కనీసం {0} అక్షరాలను నమోదు చేయండి\",\n textMaxLength: \"దయచేసి {0} కన్నా తక్కువ అక్షరాలను నమోదు చేయండి\",\n textMinMaxLength: \"దయచేసి {0} కన్నా ఎక్కువ మరియు{1} కన్నా తక్కువ అక్షరాలను నమోదు చేయండి\",\n minRowCountError: \"దయచేసి కనీసం {0}వరుసలను పూరించండి\",\n minSelectError: \"దయచేసి కనీసం{0} రకాలను ఎన్నుకోండి\",\n maxSelectError: \"దయచేసి {0} కన్నా ఎక్కువ రకాలను ఎన్నుకో కండి\",\n numericMinMax: \"'{0}' {1}తొ సమానంగా లేదా {1} కన్నా ఎక్కువ గా మరియు {2}కన్నా తక్కువ ఉండాలి లెదా {2}తొ సమానంగా ఉండాలి\",\n numericMin: \"''{0}' {1}తొ సమానంగా లేదా {1}కన్నా ఎక్కువగా ఉండాలి\",\n numericMax: \"'{0}' {1} తక్కువ లేదా సమానంగా ఉండాలి\",\n invalidEmail: \"దయచేసి సరైన ఈమెయిల్ నమోదు చేయండి\",\n invalidExpression: \"{0} 'నిజం' అని తిరిగివ్వాలి\",\n urlRequestError: \"విన్నపము {0} ని తప్పుగా గుర్తించింది {1}\",\n urlGetChoicesError: \"విన్నపము ఖాళీ డేటాని తిరిగిచ్చింది, లేదా path తప్పైన ది\",\n exceedMaxSize: \"ఫైల్ పరిమాణం{0} కంటే పెద్దదిగా ఉండకూడదు\",\n noUploadFilesHandler: \"ఫైళ్లను అప్ లోడ్ చేయలేం. దయచేసి 'ఆన్ అప్ లోడ్ ఫైల్స్' ఈవెంట్ కొరకు ఒక హ్యాండ్లర్ ని జోడించండి.\",\n otherRequiredError: \"దయచేసి ఇతర విలువలను నమో దించండి\",\n uploadingFile: \"మీ ఫైల్ అప్లోడ్ అవుతున్నది దయచేసి కొన్ని సెకండ్లు వేచి ఉండండి మరియు మళ్లీ ప్రయత్నించండి\",\n loadingFile: \"లోడ్ అవుతున్నది\",\n chooseFile: \"ఫైళ్లను ఎన్నుకోండి\",\n noFileChosen: \"ఏ ఫైల్ ఎన్నుకో లేదు\",\n filePlaceholder: \"ఇక్కడ ఒక ఫైల్ ను డ్రాగ్ చేసి డ్రాప్ చేయండి లేదా దిగువ బటన్ క్లిక్ చేయండి మరియు అప్ లోడ్ చేయడానికి ఫైల్ ఎంచుకోండి.\",\n confirmDelete: \"మీరు రికార్డులను తొలగించాలని అనుకుంటున్నారా\",\n keyDuplicationError: \"విలువ ప్రత్యేకంగా ఉండాలి\",\n addColumn: \"కాలం చేర్పించండి\",\n addRow: \"వరుసలు చేర్పించండి\",\n removeRow: \"తీసేయండి\",\n emptyRowsText: \"వరుసలు లేవు.\",\n addPanel: \"కొత్త దాన్ని చేర్పించండి\",\n removePanel: \"తీసేయండి\",\n showDetails: \"వివరాలు చూపించు\",\n hideDetails: \"వివరాలను దాచండి\",\n choices_Item: \"వస్తువులు\",\n matrix_column: \"కాలం \",\n matrix_row: \"వరుస\",\n multipletext_itemname: \"వచనం\",\n savingData: \"ఫలితాంశాలు సర్వర్లో సేవ్ అవుతున్నాయి\",\n savingDataError: \"ఒక లోపము సంభవించినది అందుకని ఫలితాంశాలను సేవ్ చేయలేకపోయాము \",\n savingDataSuccess: \"ఫలితాంశాలను విజయవంతంగా సేవ్ చేసాము\",\n savingExceedSize: \"మీ ప్రతిస్పందన 64KBని మించిపోయింది. దయచేసి మీ ఫైల్(లు) పరిమాణాన్ని తగ్గించండి మరియు మళ్లీ ప్రయత్నించండి లేదా సర్వే యజమానిని సంప్రదించండి.\",\n saveAgainButton: \"మళ్లీ ప్రయత్నించు\",\n timerMin: \"నిమిషాలు \",\n timerSec: \"సెకండ్లు\",\n timerSpentAll: \"ఈ పేజీ పైన మీరు{0} ఉపయోగించారు మొత్తంగా {1} ఉపయోగించారు\",\n timerSpentPage: \"ఈ పేజీ పైన మీరు{0} ఉపయోగించారు\",\n timerSpentSurvey: \"మీరు మొత్తంగా {0} ఉపయోగించారు\",\n timerLimitAll: \"ఈ పేజీ పైన మీరు {1}లో {0} భాగాన్ని ఉపయోగించారు. మోతంగా {3}లో {2} భాగాన్ని ఉపయోగించారు.\",\n timerLimitPage: \"ఈ పేజీలో మీరు {1}లోని{0} ని ఉపయోగించారు\",\n timerLimitSurvey: \" మొత్తంగా మీరు {1} లో {0} ని ఉపయోగించారు \",\n clearCaption: \"స్పష్టమ్\",\n signaturePlaceHolder: \"ఇక్కడ సంతకం చేయండి\",\n signaturePlaceHolderReadOnly: \"సంతకం లేదు\",\n chooseFileCaption: \"ఫైల్ ఎంచుకోండి\",\n takePhotoCaption: \"ఫోటో తీసుకోండి\",\n photoPlaceholder: \"కెమెరాను ఉపయోగించి ఫోటో తీయడానికి దిగువ బటన్ మీద క్లిక్ చేయండి.\",\n fileOrPhotoPlaceholder: \"కెమెరాను ఉపయోగించి ఫోటోను అప్ లోడ్ చేయడానికి లేదా తీయడానికి ఫైల్ ను డ్రాగ్ మరియు డ్రాప్ చేయండి లేదా ఎంచుకోండి.\",\n replaceFileCaption: \"ఫైలు మార్చండి\",\n removeFileCaption: \"ఈ ఫైల్ తీసేయండి\",\n booleanCheckedLabel: \"అవును\",\n booleanUncheckedLabel: \"లేదు\",\n confirmRemoveFile: \" ఈ ఫైల్ని తీయించాలని మీరు ఖచ్చితంగా అనుకుంటున్నారా:{0} ?\",\n confirmRemoveAllFiles: \"అన్ని ఫైళ్లను తీసేయాలని మీరు ఖచ్చితంగా అనుకుంటున్నారా\",\n questionTitlePatternText: \"ప్రశ్న శీర్షిక\",\n modalCancelButtonText: \"రద్దు\",\n modalApplyButtonText: \"సరిపడు\",\n filterStringPlaceholder: \"శోధించడానికి టైప్ చేయండి...\",\n emptyMessage: \"డిస్ ప్లే చేయడానికి డేటా లేదు\",\n noEntriesText: \"ఇంకా ఎలాంటి ఎంట్రీలు లేవు.\\nకొత్త ఎంట్రీని జోడించడం కొరకు దిగువ బటన్ మీద క్లిక్ చేయండి.\",\n noEntriesReadonlyText: \"ఎలాంటి ఎంట్రీలు లేవు.\",\n more: \"ఎక్కువ\",\n tagboxDoneButtonCaption: \"సరే\",\n selectToRankEmptyRankedAreaText: \"అన్ని ఎంపికలు ర్యాంక్ చేయబడతాయి\",\n selectToRankEmptyUnrankedAreaText: \"వాటిని ర్యాంక్ చేయడం కొరకు ఎంపికలను ఇక్కడ డ్రాగ్ మరియు డ్రాప్ చేయండి\",\n ok: \"సరే\",\n cancel: \"రద్దు\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"tel\"] = teluguStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"tel\"] = \"Telugu\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// noneItemText: \"None\" => \"ఎవరు కాదు\"\n// indexText: \"{0} of {1}\" => \"{1} {0}[మార్చు]\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"ఎంచు...\"\n// minError: \"The value should not be less than {0}\" => \"విలువ {0} కంటే తక్కువగా ఉండకూడదు.\"\n// maxError: \"The value should not be greater than {0}\" => \"విలువ {0} కంటే ఎక్కువ ఉండకూడదు.\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"ఇక్కడ ఒక ఫైల్ ను డ్రాగ్ చేసి డ్రాప్ చేయండి లేదా దిగువ బటన్ క్లిక్ చేయండి మరియు అప్ లోడ్ చేయడానికి ఫైల్ ఎంచుకోండి.\"\n// emptyRowsText: \"There are no rows.\" => \"వరుసలు లేవు.\"\n// multipletext_itemname: \"text\" => \"వచనం\"\n// signaturePlaceHolder: \"Sign here\" => \"ఇక్కడ సంతకం చేయండి\"\n// modalCancelButtonText: \"Cancel\" => \"రద్దు\"\n// modalApplyButtonText: \"Apply\" => \"సరిపడు\"\n// filterStringPlaceholder: \"Type to search...\" => \"శోధించడానికి టైప్ చేయండి...\"\n// emptyMessage: \"No data to display\" => \"డిస్ ప్లే చేయడానికి డేటా లేదు\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"ఇంకా ఎలాంటి ఎంట్రీలు లేవు.\\nకొత్త ఎంట్రీని జోడించడం కొరకు దిగువ బటన్ మీద క్లిక్ చేయండి.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"ఎలాంటి ఎంట్రీలు లేవు.\"\n// more: \"More\" => \"ఎక్కువ\"\n// tagboxDoneButtonCaption: \"OK\" => \"సరే\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"అన్ని ఎంపికలు ర్యాంక్ చేయబడతాయి\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"వాటిని ర్యాంక్ చేయడం కొరకు ఎంపికలను ఇక్కడ డ్రాగ్ మరియు డ్రాప్ చేయండి\"// takePhotoCaption: \"Take Photo\" => \"ఫోటో తీసుకోండి\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"కెమెరాను ఉపయోగించి ఫోటో తీయడానికి దిగువ బటన్ మీద క్లిక్ చేయండి.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"కెమెరాను ఉపయోగించి ఫోటోను అప్ లోడ్ చేయడానికి లేదా తీయడానికి ఫైల్ ను డ్రాగ్ మరియు డ్రాప్ చేయండి లేదా ఎంచుకోండి.\"\n// replaceFileCaption: \"Replace file\" => \"ఫైలు మార్చండి\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"ప్రతి వరుసకు ఒక ప్రత్యేకమైన విలువ ఉండాలి.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"ఫైళ్లను అప్ లోడ్ చేయలేం. దయచేసి 'ఆన్ అప్ లోడ్ ఫైల్స్' ఈవెంట్ కొరకు ఒక హ్యాండ్లర్ ని జోడించండి.\"\n// showDetails: \"Show Details\" => \"వివరాలు చూపించు\"\n// hideDetails: \"Hide Details\" => \"వివరాలను దాచండి\"\n// ok: \"OK\" => \"సరే\"\n// cancel: \"Cancel\" => \"రద్దు\"// refuseItemText: \"Refuse to answer\" => \"సమాధానం ఇవ్వడానికి నిరాకరించండి\"\n// dontKnowItemText: \"Don't know\" => \"తెలియదు\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"మీ ప్రతిస్పందన 64KBని మించిపోయింది. దయచేసి మీ ఫైల్(లు) పరిమాణాన్ని తగ్గించండి మరియు మళ్లీ ప్రయత్నించండి లేదా సర్వే యజమానిని సంప్రదించండి.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"సంతకం లేదు\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/thai.ts\":\n/*!**********************************!*\\\n !*** ./src/localization/thai.ts ***!\n \\**********************************/\n/*! exports provided: thaiStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"thaiStrings\", function() { return thaiStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar thaiStrings = {\n pagePrevText: \"ก่อนหน้า\",\n pageNextText: \"ถัดไป\",\n completeText: \"สำเร็จ\",\n previewText: \"ดูตัวอย่าง\",\n editText: \"แก้ไข\",\n startSurveyText: \"เริ่ม\",\n otherItemText: \"อื่นๆ (โปรดระบุ)\",\n noneItemText: \"ไม่มี\",\n refuseItemText: \"ปฏิเสธที่จะตอบ\",\n dontKnowItemText: \"ไม่ทราบ\",\n selectAllItemText: \"เลือกทั้งหมด\",\n progressText: \"หน้าที่ {0} จาก {1}\",\n indexText: \"{0} of {1}\",\n panelDynamicProgressText: \"รายการที่ {0} จาก {1}\",\n panelDynamicTabTextFormat: \"แผง {panelIndex}\",\n questionsProgressText: \"คำตอบที่ {0}/{1} จำนวนคำถาม\",\n emptySurvey: \"ไม่มีหน้าเพจที่มองเห็น หรือ คำถามใน survey นี้\",\n completingSurvey: \"ขอบคุณที่ทำ survey จนเสร็จ\",\n completingSurveyBefore: \"รายการของเราแสดงว่าคุณได้ทำ survey เสร็จเรียบร้อยแล้ว\",\n loadingSurvey: \"กำลังโหลด Survey...\",\n placeholder: \"เลือก...\",\n ratingOptionsCaption: \"เลือก \",\n value: \"ข้อมูล\",\n requiredError: \"กรุณาตอบคำถาม\",\n requiredErrorInPanel: \"กรุณาตอบขั้นต่ำหนึ่งคำถาม\",\n requiredInAllRowsError: \"กรุณาตอบคำถามในทุกๆแถว\",\n eachRowUniqueError: \"แต่ละแถวต้องมีค่าที่ไม่ซ้ํากัน\",\n numericError: \"ข้อมูลที่ใส่ต้องเป็นตัวเลข\",\n minError: \"ค่าไม่ควรน้อยกว่า {0}\",\n maxError: \"ค่าไม่ควรเกิน{0}\",\n textMinLength: \"กรุณาใส่ขั้นต่ำจำนวน {0} ตัวอักษร\",\n textMaxLength: \"กรุณาใส่ไม่เกินจำนวน {0} ตัวอักษร\",\n textMinMaxLength: \"กรุณาใส่ขั้นต่ำจำนวน {0} และไม่เกินจำนวน {1} ตัวอักษร\",\n minRowCountError: \"กรุณาใส่ขั้นต่ำจำนวน {0} แถว\",\n minSelectError: \"กรุณาเลือกอย่างน้อย {0} รายการ\",\n maxSelectError: \"กรุณาเลือกไม่เกิน {0} รายการ\",\n numericMinMax: \"'{0}' ต้องมากกว่าหรือเท่ากับ {1} และน้อยกว่าหรือเท่ากับ {2}\",\n numericMin: \"'{0}' ต้องมากกว่าหรือเท่ากับ {1}\",\n numericMax: \"'{0}' น้อยกว่าหรือเท่ากับ {1}\",\n invalidEmail: \"กรุณาใส่อีเมล์แอดเดรสที่ถูกต้อง\",\n invalidExpression: \"The expression: {0} ต้องรีเทิร์น 'true'.\",\n urlRequestError: \"รีเควสรีเทิร์น error '{0}'. {1}\",\n urlGetChoicesError: \"รีเควสรีเทิร์นข้อมูลว่างเปล่า หรือ 'path' property ไม่ถูกต้อง\",\n exceedMaxSize: \"ขนาดไฟล์ต้องไม่เกิน {0}.\",\n noUploadFilesHandler: \"ไม่สามารถอัปโหลดไฟล์ได้ โปรดเพิ่มตัวจัดการสําหรับเหตุการณ์ 'onUploadFiles'\",\n otherRequiredError: \"กรุณาใส่ค่าอื่น\",\n uploadingFile: \"ไฟล์ของคุณกำลังอัพโหลดอยู่. กรุณารอสักครู่แล้วทำการลองอีกครั้ง\",\n loadingFile: \"กำลังโหลด...\",\n chooseFile: \"เลือกไฟล์...\",\n noFileChosen: \"ไม่ไฟล์ที่เลือก\",\n filePlaceholder: \"ลากและวางไฟล์ที่นี่หรือคลิกปุ่มด้านล่างและเลือกไฟล์ที่จะอัปโหลด\",\n confirmDelete: \"คุณต้องการลบรายการนี้จริงหรือไม่?\",\n keyDuplicationError: \"ข้อมูลนี้ต้องเป็น unique.\",\n addColumn: \"เพิ่มคอลัมน์\",\n addRow: \"เพิ่มแถว\",\n removeRow: \"ลบ\",\n emptyRowsText: \"ไม่มีแถว\",\n addPanel: \"เพิ่ม\",\n removePanel: \"ลบ\",\n showDetails: \"แสดงรายละเอียด\",\n hideDetails: \"ซ่อนรายละเอียด\",\n choices_Item: \"ชิ้น\",\n matrix_column: \"คอลัมน์\",\n matrix_row: \"แถว\",\n multipletext_itemname: \"ข้อความ\",\n savingData: \"ผลลัพท์กำลังบันทึกลงที่เซิร์ฟเวอร์...\",\n savingDataError: \"มีความผิดพลาดเกิดขึ้นส่งผลให้ไม่สามารถบันทึกผลได้\",\n savingDataSuccess: \"บันทึกสำเร็จแล้ว\",\n savingExceedSize: \"คําตอบของคุณเกิน 64KB โปรดลดขนาดไฟล์ของคุณแล้วลองอีกครั้งหรือติดต่อเจ้าของแบบสํารวจ\",\n saveAgainButton: \"รบกวนลองอีกครั้ง\",\n timerMin: \"นาที\",\n timerSec: \"วินาที\",\n timerSpentAll: \"คุณใช้เวลา {0} บนหน้านี้และ {1} รวมทั้งหมด\",\n timerSpentPage: \"คุณใช้เวลา {0} บนหน้านี้\",\n timerSpentSurvey: \"คุณใช้เวลา {0} รวมทั้งหมด\",\n timerLimitAll: \"คุณใช้เวลา {0} ของ {1} บนหน้านี้และ {2} ของ {3} รวมทั้งหมด\",\n timerLimitPage: \"คุณใช้เวลา {0} ของ {1} บนหน้านี้\",\n timerLimitSurvey: \"คุณใช้เวลา {0} ของ {1} รวมทั้งหมด\",\n clearCaption: \"เคลียร์\",\n signaturePlaceHolder: \"ลงชื่อที่นี่\",\n signaturePlaceHolderReadOnly: \"ไม่มีลายเซ็น\",\n chooseFileCaption: \"เลือกไฟล์\",\n takePhotoCaption: \"ถ่ายรูป\",\n photoPlaceholder: \"คลิกปุ่มด้านล่างเพื่อถ่ายภาพโดยใช้กล้อง\",\n fileOrPhotoPlaceholder: \"ลากและวางหรือเลือกไฟล์ที่จะอัปโหลดหรือถ่ายภาพโดยใช้กล้อง\",\n replaceFileCaption: \"แทนที่ไฟล์\",\n removeFileCaption: \"นำไฟล์นี้ออก\",\n booleanCheckedLabel: \"ใช่\",\n booleanUncheckedLabel: \"ไม่ใช่\",\n confirmRemoveFile: \"คุณแน่ใจที่จะนำไฟล์นี้ออกใช่หรือไม่: {0}?\",\n confirmRemoveAllFiles: \"คุณแน่ใจที่จะนำไฟล์ทั้งหมดออกใช่หรือไม่\",\n questionTitlePatternText: \"ชื่อคำถาม\",\n modalCancelButtonText: \"ยกเลิก\",\n modalApplyButtonText: \"ใช้\",\n filterStringPlaceholder: \"พิมพ์เพื่อค้นหา...\",\n emptyMessage: \"ไม่มีข้อมูลที่จะแสดง\",\n noEntriesText: \"ยังไม่มีรายการ\\nคลิกปุ่มด้านล่างเพื่อเพิ่มรายการใหม่\",\n noEntriesReadonlyText: \"ไม่มีรายการ\",\n more: \"อีก\",\n tagboxDoneButtonCaption: \"ตกลง, ได้\",\n selectToRankEmptyRankedAreaText: \"ตัวเลือกทั้งหมดจะถูกจัดอันดับ\",\n selectToRankEmptyUnrankedAreaText: \"ลากและวางตัวเลือกที่นี่เพื่อจัดอันดับ\",\n ok: \"ตกลง, ได้\",\n cancel: \"ยกเลิก\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"th\"] = thaiStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"th\"] = \"ไทย\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} of {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"แผง {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"เลือก \"\n// minError: \"The value should not be less than {0}\" => \"ค่าไม่ควรน้อยกว่า {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"ค่าไม่ควรเกิน{0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"ลากและวางไฟล์ที่นี่หรือคลิกปุ่มด้านล่างและเลือกไฟล์ที่จะอัปโหลด\"\n// emptyRowsText: \"There are no rows.\" => \"ไม่มีแถว\"\n// multipletext_itemname: \"text\" => \"ข้อความ\"\n// signaturePlaceHolder: \"Sign here\" => \"ลงชื่อที่นี่\"\n// modalCancelButtonText: \"Cancel\" => \"ยกเลิก\"\n// modalApplyButtonText: \"Apply\" => \"ใช้\"\n// filterStringPlaceholder: \"Type to search...\" => \"พิมพ์เพื่อค้นหา...\"\n// emptyMessage: \"No data to display\" => \"ไม่มีข้อมูลที่จะแสดง\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"ยังไม่มีรายการ\\nคลิกปุ่มด้านล่างเพื่อเพิ่มรายการใหม่\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"ไม่มีรายการ\"\n// more: \"More\" => \"อีก\"\n// tagboxDoneButtonCaption: \"OK\" => \"ตกลง, ได้\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"ตัวเลือกทั้งหมดจะถูกจัดอันดับ\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"ลากและวางตัวเลือกที่นี่เพื่อจัดอันดับ\"// takePhotoCaption: \"Take Photo\" => \"ถ่ายรูป\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"คลิกปุ่มด้านล่างเพื่อถ่ายภาพโดยใช้กล้อง\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"ลากและวางหรือเลือกไฟล์ที่จะอัปโหลดหรือถ่ายภาพโดยใช้กล้อง\"\n// replaceFileCaption: \"Replace file\" => \"แทนที่ไฟล์\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"แต่ละแถวต้องมีค่าที่ไม่ซ้ํากัน\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"ไม่สามารถอัปโหลดไฟล์ได้ โปรดเพิ่มตัวจัดการสําหรับเหตุการณ์ 'onUploadFiles'\"\n// showDetails: \"Show Details\" => \"แสดงรายละเอียด\"\n// hideDetails: \"Hide Details\" => \"ซ่อนรายละเอียด\"\n// ok: \"OK\" => \"ตกลง, ได้\"\n// cancel: \"Cancel\" => \"ยกเลิก\"// refuseItemText: \"Refuse to answer\" => \"ปฏิเสธที่จะตอบ\"\n// dontKnowItemText: \"Don't know\" => \"ไม่ทราบ\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"คําตอบของคุณเกิน 64KB โปรดลดขนาดไฟล์ของคุณแล้วลองอีกครั้งหรือติดต่อเจ้าของแบบสํารวจ\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"ไม่มีลายเซ็น\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/traditional-chinese.ts\":\n/*!*************************************************!*\\\n !*** ./src/localization/traditional-chinese.ts ***!\n \\*************************************************/\n/*! exports provided: traditionalChineseSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"traditionalChineseSurveyStrings\", function() { return traditionalChineseSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar traditionalChineseSurveyStrings = {\n pagePrevText: \"上一頁\",\n pageNextText: \"下一頁\",\n completeText: \"提交問卷\",\n previewText: \"預覽\",\n editText: \"編輯\",\n startSurveyText: \"開始\",\n otherItemText: \"填寫其他答案\",\n noneItemText: \"沒有\",\n refuseItemText: \"拒絕回答\",\n dontKnowItemText: \"不知道\",\n selectAllItemText: \"全選\",\n progressText: \"第 {0} 頁, 共 {1} 頁\",\n indexText: \"{1}{0}\",\n panelDynamicProgressText: \"{1}{0}\",\n panelDynamicTabTextFormat: \"面板 {面板索引}\",\n questionsProgressText: \"回答了{0}/{1}問題\",\n emptySurvey: \"問卷中沒有問題或頁面\",\n completingSurvey: \"感謝您的參與!\",\n completingSurveyBefore: \"我們的記錄顯示您已經完成了此調查。\",\n loadingSurvey: \"問卷載入中...\",\n placeholder: \"請選擇...\",\n ratingOptionsCaption: \"選擇。。。\",\n value: \"價值\",\n requiredError: \"請填寫此問題\",\n requiredErrorInPanel: \"需要回答:至少回答一個問題。\",\n requiredInAllRowsError: \"請填寫所有行中問題\",\n eachRowUniqueError: \"每行必須具有唯一值。\",\n numericError: \"答案必須是個數字\",\n minError: \"該值不應小於 {0}\",\n maxError: \"該值不應大於 {0}\",\n textMinLength: \"答案長度至少 {0} 個字元\",\n textMaxLength: \"答案長度不能超過 {0} 個字元\",\n textMinMaxLength: \"答案長度必須在 {0} - {1} 個字元之間\",\n minRowCountError: \"最少需要填寫 {0} 行答案\",\n minSelectError: \"最少需要選擇 {0} 項答案\",\n maxSelectError: \"最多只能選擇 {0} 項答案\",\n numericMinMax: \"答案 '{0}' 必須大於等於 {1} 且小於等於 {2}\",\n numericMin: \"答案 '{0}' 必須大於等於 {1}\",\n numericMax: \"答案 '{0}' 必須小於等於 {1}\",\n invalidEmail: \"請輸入有效的 Email 地址\",\n invalidExpression: \"表達式:{0}應返回「true」。\",\n urlRequestError: \"載入選項時發生錯誤 '{0}': {1}\",\n urlGetChoicesError: \"未能載入有效的選項或請求參數路徑有誤\",\n exceedMaxSize: \"文件大小不能超過 {0}\",\n noUploadFilesHandler: \"無法上傳檔。請為「onUploadFiles」事件添加處理程式。\",\n otherRequiredError: \"請完成其他問題\",\n uploadingFile: \"文件上傳中... 請耐心等待幾秒後重試\",\n loadingFile: \"裝載。。。\",\n chooseFile: \"選擇檔案...\",\n noFileChosen: \"未選擇任何檔\",\n filePlaceholder: \"將檔案拖放到此處或按下下面的按鈕並選擇要上傳的檔。\",\n confirmDelete: \"是否要刪除記錄?\",\n keyDuplicationError: \"此值應該是唯一的。\",\n addColumn: \"添加列\",\n addRow: \"添加答案\",\n removeRow: \"刪除答案\",\n emptyRowsText: \"沒有行。\",\n addPanel: \"新增\",\n removePanel: \"刪除\",\n showDetails: \"顯示詳細資訊\",\n hideDetails: \"隱藏詳細資訊\",\n choices_Item: \"選項\",\n matrix_column: \"列\",\n matrix_row: \"行\",\n multipletext_itemname: \"發簡訊\",\n savingData: \"正在將結果保存到服務器...\",\n savingDataError: \"在保存結果過程中發生了錯誤,結果未能保存\",\n savingDataSuccess: \"結果保存成功!\",\n savingExceedSize: \"您的回復超過 64KB。請減小檔的大小,然後重試或聯繫調查擁有者。\",\n saveAgainButton: \"請重試\",\n timerMin: \"最小\",\n timerSec: \"秒\",\n timerSpentAll: \"您在此頁面上花費了{0},總共{1}。\",\n timerSpentPage: \"您在此頁面上花費了{0}。\",\n timerSpentSurvey: \"你總共花了{0}。\",\n timerLimitAll: \"您在此頁面上花費了{0}{1},總共花費了{2}{3}。\",\n timerLimitPage: \"您在此頁面上花費了{0}{1}。\",\n timerLimitSurvey: \"您總共花費了{1}的{0}。\",\n clearCaption: \"清楚\",\n signaturePlaceHolder: \"在此簽名\",\n signaturePlaceHolderReadOnly: \"無簽名\",\n chooseFileCaption: \"選擇檔案\",\n takePhotoCaption: \"拍照\",\n photoPlaceholder: \"按下下面的按鈕使用相機拍照。\",\n fileOrPhotoPlaceholder: \"拖放或選擇要上傳的檔或使用相機拍攝照片。\",\n replaceFileCaption: \"替換檔\",\n removeFileCaption: \"刪除此檔\",\n booleanCheckedLabel: \"是的\",\n booleanUncheckedLabel: \"不\",\n confirmRemoveFile: \"是否確實要刪除此檔:{0}?\",\n confirmRemoveAllFiles: \"是否確實要刪除所有檔?\",\n questionTitlePatternText: \"問題標題\",\n modalCancelButtonText: \"取消\",\n modalApplyButtonText: \"應用\",\n filterStringPlaceholder: \"鍵入以搜尋...\",\n emptyMessage: \"沒有要顯示的數據\",\n noEntriesText: \"尚無條目。\\n按下下面的按鈕以添加新條目。\",\n noEntriesReadonlyText: \"沒有條目。\",\n more: \"更多\",\n tagboxDoneButtonCaption: \"還行\",\n selectToRankEmptyRankedAreaText: \"所有選擇均已排名\",\n selectToRankEmptyUnrankedAreaText: \"將選項拖放到此處進行排名\",\n ok: \"還行\",\n cancel: \"取消\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"zh-tw\"] = traditionalChineseSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"zh-tw\"] = \"繁體中文\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// previewText: \"Preview\" => \"預覽\"\n// editText: \"Edit\" => \"編輯\"\n// startSurveyText: \"Start\" => \"開始\"\n// noneItemText: \"None\" => \"沒有\"\n// selectAllItemText: \"Select All\" => \"全選\"\n// indexText: \"{0} of {1}\" => \"{1}{0}\"\n// panelDynamicProgressText: \"{0} of {1}\" => \"{1}{0}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"面板 {面板索引}\"\n// questionsProgressText: \"Answered {0}/{1} questions\" => \"回答了{0}/{1}問題\"\n// completingSurveyBefore: \"Our records show that you have already completed this survey.\" => \"我們的記錄顯示您已經完成了此調查。\"\n// ratingOptionsCaption: \"Select...\" => \"選擇。。。\"\n// value: \"value\" => \"價值\"\n// requiredErrorInPanel: \"Response required: answer at least one question.\" => \"需要回答:至少回答一個問題。\"\n// minError: \"The value should not be less than {0}\" => \"該值不應小於 {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"該值不應大於 {0}\"\n// invalidExpression: \"The expression: {0} should return 'true'.\" => \"表達式:{0}應返回「true」。\"\n// loadingFile: \"Loading...\" => \"裝載。。。\"\n// chooseFile: \"Choose file(s)...\" => \"選擇檔案...\"\n// noFileChosen: \"No file chosen\" => \"未選擇任何檔\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"將檔案拖放到此處或按下下面的按鈕並選擇要上傳的檔。\"\n// confirmDelete: \"Do you want to delete the record?\" => \"是否要刪除記錄?\"\n// keyDuplicationError: \"This value should be unique.\" => \"此值應該是唯一的。\"\n// addColumn: \"Add Column\" => \"添加列\"\n// emptyRowsText: \"There are no rows.\" => \"沒有行。\"\n// addPanel: \"Add new\" => \"新增\"\n// removePanel: \"Remove\" => \"刪除\"\n// multipletext_itemname: \"text\" => \"發簡訊\"\n// timerMin: \"min\" => \"最小\"\n// timerSec: \"sec\" => \"秒\"\n// timerSpentAll: \"You have spent {0} on this page and {1} in total.\" => \"您在此頁面上花費了{0},總共{1}。\"\n// timerSpentPage: \"You have spent {0} on this page.\" => \"您在此頁面上花費了{0}。\"\n// timerSpentSurvey: \"You have spent {0} in total.\" => \"你總共花了{0}。\"\n// timerLimitAll: \"You have spent {0} of {1} on this page and {2} of {3} in total.\" => \"您在此頁面上花費了{0}{1},總共花費了{2}{3}。\"\n// timerLimitPage: \"You have spent {0} of {1} on this page.\" => \"您在此頁面上花費了{0}{1}。\"\n// timerLimitSurvey: \"You have spent {0} of {1} in total.\" => \"您總共花費了{1}的{0}。\"\n// clearCaption: \"Clear\" => \"清楚\"\n// signaturePlaceHolder: \"Sign here\" => \"在此簽名\"\n// chooseFileCaption: \"Choose file\" => \"選擇檔案\"\n// removeFileCaption: \"Remove this file\" => \"刪除此檔\"\n// booleanCheckedLabel: \"Yes\" => \"是的\"\n// booleanUncheckedLabel: \"No\" => \"不\"\n// confirmRemoveFile: \"Are you sure that you want to remove this file: {0}?\" => \"是否確實要刪除此檔:{0}?\"\n// confirmRemoveAllFiles: \"Are you sure that you want to remove all files?\" => \"是否確實要刪除所有檔?\"\n// questionTitlePatternText: \"Question Title\" => \"問題標題\"\n// modalCancelButtonText: \"Cancel\" => \"取消\"\n// modalApplyButtonText: \"Apply\" => \"應用\"\n// filterStringPlaceholder: \"Type to search...\" => \"鍵入以搜尋...\"\n// emptyMessage: \"No data to display\" => \"沒有要顯示的數據\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"尚無條目。\\n按下下面的按鈕以添加新條目。\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"沒有條目。\"\n// more: \"More\" => \"更多\"\n// tagboxDoneButtonCaption: \"OK\" => \"還行\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"所有選擇均已排名\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"將選項拖放到此處進行排名\"// takePhotoCaption: \"Take Photo\" => \"拍照\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"按下下面的按鈕使用相機拍照。\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"拖放或選擇要上傳的檔或使用相機拍攝照片。\"\n// replaceFileCaption: \"Replace file\" => \"替換檔\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"每行必須具有唯一值。\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"無法上傳檔。請為「onUploadFiles」事件添加處理程式。\"\n// showDetails: \"Show Details\" => \"顯示詳細資訊\"\n// hideDetails: \"Hide Details\" => \"隱藏詳細資訊\"\n// ok: \"OK\" => \"還行\"\n// cancel: \"Cancel\" => \"取消\"// refuseItemText: \"Refuse to answer\" => \"拒絕回答\"\n// dontKnowItemText: \"Don't know\" => \"不知道\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"您的回復超過 64KB。請減小檔的大小,然後重試或聯繫調查擁有者。\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"無簽名\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/turkish.ts\":\n/*!*************************************!*\\\n !*** ./src/localization/turkish.ts ***!\n \\*************************************/\n/*! exports provided: turkishSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"turkishSurveyStrings\", function() { return turkishSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar turkishSurveyStrings = {\n pagePrevText: \"Önceki\",\n pageNextText: \"Sonraki\",\n completeText: \"Tamamla\",\n previewText: \"Önizleme\",\n editText: \"Düzenle\",\n startSurveyText: \"Başlat\",\n otherItemText: \"Diğer (açıklayınız)\",\n noneItemText: \"Hiçbiri\",\n refuseItemText: \"Cevap vermeyi reddet\",\n dontKnowItemText: \"Bilmiyorum\",\n selectAllItemText: \"Tümünü Seç\",\n progressText: \"Sayfa {0}/{1}\",\n indexText: \"{0}/{1}\",\n panelDynamicProgressText: \"{0}/{1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"{0}/{1} soru yanıtlandı\",\n emptySurvey: \"Ankette görüntülenecek sayfa ya da soru mevcut değil.\",\n completingSurvey: \"Anketi tamamladığınız için teşekkür ederiz\",\n completingSurveyBefore: \"Kayıtlarımız bu anketi zaten tamamladığınızı gösteriyor.\",\n loadingSurvey: \"Anket Yükleniyor...\",\n placeholder: \"Seçiniz...\",\n ratingOptionsCaption: \"Seçiniz...\",\n value: \"değer\",\n requiredError: \"Lütfen soruya cevap verin.\",\n requiredErrorInPanel: \"Lütfen en az bir soruyu yanıtlayın.\",\n requiredInAllRowsError: \"Lütfen tüm satırlardaki soruları cevaplayın.\",\n eachRowUniqueError: \"Her satırın benzersiz bir değeri olmalıdır.\",\n numericError: \"Değer sayısal olmalıdır.\",\n minError: \"Değer {0}'den küçük olmamalıdır\",\n maxError: \"Değer {0}'dan büyük olmamalıdır\",\n textMinLength: \"Lütfen en az {0} karakter girin.\",\n textMaxLength: \"Lütfen en fazla {0} karakter girin.\",\n textMinMaxLength: \"Lütfen {0}’den fazla ve {1}’den az karakter girin.\",\n minRowCountError: \"Lütfen en az {0} satırı doldurun.\",\n minSelectError: \"Lütfen en az {0} seçeneği seçin.\",\n maxSelectError: \"Lütfen en fazla {0} seçeneği seçin.\",\n numericMinMax: \"'{0}', {1}'e eşit veya daha büyük ve {2}'ye eşit veya daha küçük olmalıdır\",\n numericMin: \"'{0}' değeri {1} değerine eşit veya büyük olmalıdır\",\n numericMax: \"'{0}' değeri {1} değerine eşit ya da küçük olmalıdır.\",\n invalidEmail: \"Lütfen geçerli bir e-posta adresi girin.\",\n invalidExpression: \"İfade: {0} 'true' döndürmelidir.\",\n urlRequestError: \"İstek '{0}' hatasını döndürdü. {1}\",\n urlGetChoicesError: \"İstek boş veri döndürdü veya 'path' özelliği yanlış\",\n exceedMaxSize: \"Dosya boyutu {0} değerini geçemez.\",\n noUploadFilesHandler: \"Dosyalar yüklenemiyor. Lütfen 'onUploadFiles' olayı için bir işleyici ekleyin.\",\n otherRequiredError: \"Lütfen diğer değerleri girin.\",\n uploadingFile: \"Dosyanız yükleniyor. Lütfen birkaç saniye bekleyin ve tekrar deneyin.\",\n loadingFile: \"Yükleniyor...\",\n chooseFile: \"Dosyaları seçin...\",\n noFileChosen: \"Dosya seçili değil\",\n filePlaceholder: \"Buraya bir dosya bırakın veya dosyayı yüklemek için aşağıdaki düğmeyi tıklayın.\",\n confirmDelete: \"Kaydı silmek istiyor musunuz?\",\n keyDuplicationError: \"Bu değer benzersiz olmalıdır.\",\n addColumn: \"Sütun Ekle\",\n addRow: \"Satır Ekle\",\n removeRow: \"Kaldır\",\n emptyRowsText: \"Satır yok.\",\n addPanel: \"Yeni ekle\",\n removePanel: \"Kaldır\",\n showDetails: \"Detayları göster\",\n hideDetails: \"Detayları Gizle\",\n choices_Item: \"öğe\",\n matrix_column: \"Sütun\",\n matrix_row: \"Satır\",\n multipletext_itemname: \"metin\",\n savingData: \"Sonuçlar sunucuya kaydediliyor...\",\n savingDataError: \"Bir hata oluştu ve sonuçlar kaydedilemedi.\",\n savingDataSuccess: \"Sonuçlar başarıyla kaydedildi!\",\n savingExceedSize: \"Yanıtınız 64 KB'ı aşıyor. Lütfen dosyalarınızın boyutunu küçültün ve tekrar deneyin veya bir anket sahibiyle iletişime geçin.\",\n saveAgainButton: \"Tekrar deneyin\",\n timerMin: \"dakika\",\n timerSec: \"saniye\",\n timerSpentAll: \"Bu sayfada {0} ve toplamda {1} harcadınız.\",\n timerSpentPage: \"Bu sayfaya {0} harcadınız.\",\n timerSpentSurvey: \"Toplamda {0} harcadınız.\",\n timerLimitAll: \"Bu sayfaya {0}/{1} ve toplamda {2}/{3} harcadınız.\",\n timerLimitPage: \"Bu sayfaya {0}/{1} harcadınız.\",\n timerLimitSurvey: \"Toplamda {0}/{1} harcadınız.\",\n clearCaption: \"Temizle\",\n signaturePlaceHolder: \"Burayı imzalayın\",\n signaturePlaceHolderReadOnly: \"İmza yok\",\n chooseFileCaption: \"Dosya seçin\",\n takePhotoCaption: \"Fotoğraf Çekin\",\n photoPlaceholder: \"Kamerayı kullanarak fotoğraf çekmek için aşağıdaki düğmeyi tıklayın.\",\n fileOrPhotoPlaceholder: \"Kamerayı kullanarak fotoğraf yüklemek veya fotoğraf çekmek için bir dosyayı sürükleyip bırakın veya seçin.\",\n replaceFileCaption: \"Dosyayı değiştir\",\n removeFileCaption: \"Bu dosyayı kaldır\",\n booleanCheckedLabel: \"Evet\",\n booleanUncheckedLabel: \"Hayır\",\n confirmRemoveFile: \"Bu dosyayı kaldırmak istediğinizden emin misiniz: {0}?\",\n confirmRemoveAllFiles: \"Tüm dosyaları kaldırmak istediğinizden emin misiniz?\",\n questionTitlePatternText: \"Soru Başlığı\",\n modalCancelButtonText: \"İptal\",\n modalApplyButtonText: \"Uygula\",\n filterStringPlaceholder: \"Aramak için yazın...\",\n emptyMessage: \"Görüntülenecek veri yok\",\n noEntriesText: \"Henüz giriş yok.\\nYeni bir giriş eklemek için aşağıdaki düğmeyi tıklayın.\",\n noEntriesReadonlyText: \"Giriş yok.\",\n more: \"Daha fazla\",\n tagboxDoneButtonCaption: \"TAMAM\",\n selectToRankEmptyRankedAreaText: \"Tüm seçenekler sıralanmıştır\",\n selectToRankEmptyUnrankedAreaText: \"Seçimleri sıralamak için buraya sürükleyip bırakın\",\n ok: \"TAMAM\",\n cancel: \"İptal\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"tr\"] = turkishSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"tr\"] = \"türkçe\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// takePhotoCaption: \"Take Photo\" => \"Fotoğraf Çekin\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Kamerayı kullanarak fotoğraf çekmek için aşağıdaki düğmeyi tıklayın.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Kamerayı kullanarak fotoğraf yüklemek veya fotoğraf çekmek için bir dosyayı sürükleyip bırakın veya seçin.\"\n// replaceFileCaption: \"Replace file\" => \"Dosyayı değiştir\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Her satırın benzersiz bir değeri olmalıdır.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Dosyalar yüklenemiyor. Lütfen 'onUploadFiles' olayı için bir işleyici ekleyin.\"\n// showDetails: \"Show Details\" => \"Detayları göster\"\n// hideDetails: \"Hide Details\" => \"Detayları Gizle\"\n// ok: \"OK\" => \"TAMAM\"\n// cancel: \"Cancel\" => \"İptal\"// refuseItemText: \"Refuse to answer\" => \"Cevap vermeyi reddet\"\n// dontKnowItemText: \"Don't know\" => \"Bilmiyorum\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Yanıtınız 64 KB'ı aşıyor. Lütfen dosyalarınızın boyutunu küçültün ve tekrar deneyin veya bir anket sahibiyle iletişime geçin.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"İmza yok\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/ukrainian.ts\":\n/*!***************************************!*\\\n !*** ./src/localization/ukrainian.ts ***!\n \\***************************************/\n/*! exports provided: ukrainianSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ukrainianSurveyStrings\", function() { return ukrainianSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar ukrainianSurveyStrings = {\n pagePrevText: \"Назад\",\n pageNextText: \"Далі\",\n completeText: \"Завершити\",\n previewText: \"Попередній перегляд\",\n editText: \"Редагувати\",\n startSurveyText: \"Почати\",\n otherItemText: \"Інше (будь ласка, опишіть)\",\n noneItemText: \"Жоден\",\n refuseItemText: \"Відмовтеся відповідати\",\n dontKnowItemText: \"Не знаю\",\n selectAllItemText: \"Вибрати все\",\n progressText: \"Сторінка {0} з {1}\",\n indexText: \"{0} {1}\",\n panelDynamicProgressText: \"Запис {0} із {1}\",\n panelDynamicTabTextFormat: \"Панель {panelIndex}\",\n questionsProgressText: \"Відповіли на {0}/{1} питань\",\n emptySurvey: \"Немає жодного питання.\",\n completingSurvey: \"Дякуємо Вам за заповнення анкети!\",\n completingSurveyBefore: \"Ви вже проходили це опитування.\",\n loadingSurvey: \"Завантаження опитування...\",\n placeholder: \"Вибрати...\",\n ratingOptionsCaption: \"Виберіть...\",\n value: \"значення\",\n requiredError: \"Будь ласка, дайте відповідь.\",\n requiredErrorInPanel: \"Будь ласка, дайте відповідь хоча б на одне питання.\",\n requiredInAllRowsError: \"Будь ласка, дайте відповідь на питання в кожному рядку.\",\n eachRowUniqueError: \"Кожен рядок повинен мати унікальне значення.\",\n numericError: \"Відповідь повинна бути числом.\",\n minError: \"Значення не повинно бути менше {0}\",\n maxError: \"Значення не повинно бути більше {0}\",\n textMinLength: \"Будь ласка введіть більше {0} символів.\",\n textMaxLength: \"Будь ласка введіть менше {0} символів.\",\n textMinMaxLength: \"Будь ласка введіть більше {0} и менше {1} символів.\",\n minRowCountError: \"Будь ласка, заповніть не менше {0} рядків.\",\n minSelectError: \"Будь ласка, виберіть хоча б {0} варіантів.\",\n maxSelectError: \"Будь ласка, виберіть не більше {0} варіантів.\",\n numericMinMax: \"'{0}' повинно бути не менше ніж {1}, і не більше ніж {2}\",\n numericMin: \"'{0}' повинно бути не менше ніж {1}\",\n numericMax: \"'{0}' повинно бути не більше ніж {1}\",\n invalidEmail: \"Будь ласка, введіть дійсну адресу електронної пошти.\",\n invalidExpression: \"Вираз {0} повинен повертати 'true'.\",\n urlRequestError: \"Запит повернув помилку '{0}'. {1}\",\n urlGetChoicesError: \"Відповідь на запит повернулась порожньою або властивіть 'path' вказано невірно\",\n exceedMaxSize: \"Розмір файлу не повинен перевищувати {0}.\",\n noUploadFilesHandler: \"Файли не можна завантажити. Будь ласка, додайте обробник для події 'onUploadFiles'.\",\n otherRequiredError: \"Будь ласка, введіть дані в поле 'Інше'\",\n uploadingFile: \"Ваш файл завантажується. Зачекайте декілька секунд і спробуйте знову.\",\n loadingFile: \"Завантаження...\",\n chooseFile: \"Виберіть файл(и)...\",\n noFileChosen: \"Файл не вибрано\",\n filePlaceholder: \"Перетягніть файл сюди або натисніть кнопку нижче та виберіть файл для завантаження.\",\n confirmDelete: \"Ви хочете видалити запис?\",\n keyDuplicationError: \"Це значення повинно бути унікальним.\",\n addColumn: \"Додати колонку\",\n addRow: \"Додати рядок\",\n removeRow: \"Видалити\",\n emptyRowsText: \"Рядів немає.\",\n addPanel: \"Додати нову\",\n removePanel: \"Видалити\",\n showDetails: \"Показати подробиці\",\n hideDetails: \"Сховати подробиці\",\n choices_Item: \"Варіант\",\n matrix_column: \"Колонка\",\n matrix_row: \"Рядок\",\n multipletext_itemname: \"Текст\",\n savingData: \"Результати зберігаються на сервер...\",\n savingDataError: \"Відбулася помилка, результат не був збережений.\",\n savingDataSuccess: \"Резвультат успішно збережений!\",\n savingExceedSize: \"Ваша відповідь перевищує 64 КБ. Будь ласка, зменшіть розмір файлу (файлів) і повторіть спробу або зв'яжіться з власником опитування.\",\n saveAgainButton: \"Спробувати знову\",\n timerMin: \"хв\",\n timerSec: \"сек\",\n timerSpentAll: \"Ви витратили {0} на цій сторінці і {1} загалом.\",\n timerSpentPage: \"Ви витратили {0} на цій сторінці.\",\n timerSpentSurvey: \"Ви витратили {0} протягом тесту.\",\n timerLimitAll: \"Ви витратили {0} з {1} на цій сторінці і {2} з {3} для всього тесту.\",\n timerLimitPage: \"Ви витратили {0} з {1} на цій сторінці.\",\n timerLimitSurvey: \"Ви витратили {0} з {1} для всього тесту.\",\n clearCaption: \"Очистити\",\n signaturePlaceHolder: \"Підпишіться тут\",\n signaturePlaceHolderReadOnly: \"Без підпису\",\n chooseFileCaption: \"Виберіть файл\",\n takePhotoCaption: \"Зробити фото\",\n photoPlaceholder: \"Натисніть кнопку нижче, щоб зробити фото за допомогою камери.\",\n fileOrPhotoPlaceholder: \"Перетягніть або виберіть файл, щоб завантажити або зробити фотографію за допомогою камери.\",\n replaceFileCaption: \"Замінити файл\",\n removeFileCaption: \"Видалити файл\",\n booleanCheckedLabel: \"Так\",\n booleanUncheckedLabel: \"Ні\",\n confirmRemoveFile: \"Ви впевнені, що хочете видалити цей файл: {0}?\",\n confirmRemoveAllFiles: \"Ви впевнені, що хочете видалити всі файли?\",\n questionTitlePatternText: \"Назва запитання\",\n modalCancelButtonText: \"Скасувати\",\n modalApplyButtonText: \"Застосовувати\",\n filterStringPlaceholder: \"Введіть для пошуку...\",\n emptyMessage: \"Немає даних для відображення\",\n noEntriesText: \"Записів поки немає.\\nНатисніть кнопку нижче, щоб додати новий запис.\",\n noEntriesReadonlyText: \"Записів немає.\",\n more: \"Більше\",\n tagboxDoneButtonCaption: \"ГАРАЗД\",\n selectToRankEmptyRankedAreaText: \"Всі варіанти ранжуються\",\n selectToRankEmptyUnrankedAreaText: \"Перетягніть варіанти тут, щоб оцінити їх\",\n ok: \"ГАРАЗД\",\n cancel: \"Скасувати\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"ua\"] = ukrainianSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"ua\"] = \"українська\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Панель {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Виберіть...\"\n// minError: \"The value should not be less than {0}\" => \"Значення не повинно бути менше {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Значення не повинно бути більше {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Перетягніть файл сюди або натисніть кнопку нижче та виберіть файл для завантаження.\"\n// emptyRowsText: \"There are no rows.\" => \"Рядів немає.\"\n// multipletext_itemname: \"text\" => \"Текст\"\n// signaturePlaceHolder: \"Sign here\" => \"Підпишіться тут\"\n// modalCancelButtonText: \"Cancel\" => \"Скасувати\"\n// modalApplyButtonText: \"Apply\" => \"Застосовувати\"\n// filterStringPlaceholder: \"Type to search...\" => \"Введіть для пошуку...\"\n// emptyMessage: \"No data to display\" => \"Немає даних для відображення\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Записів поки немає.\\nНатисніть кнопку нижче, щоб додати новий запис.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Записів немає.\"\n// more: \"More\" => \"Більше\"\n// tagboxDoneButtonCaption: \"OK\" => \"ГАРАЗД\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Всі варіанти ранжуються\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Перетягніть варіанти тут, щоб оцінити їх\"// takePhotoCaption: \"Take Photo\" => \"Зробити фото\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Натисніть кнопку нижче, щоб зробити фото за допомогою камери.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Перетягніть або виберіть файл, щоб завантажити або зробити фотографію за допомогою камери.\"\n// replaceFileCaption: \"Replace file\" => \"Замінити файл\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Кожен рядок повинен мати унікальне значення.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Файли не можна завантажити. Будь ласка, додайте обробник для події 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Показати подробиці\"\n// hideDetails: \"Hide Details\" => \"Сховати подробиці\"\n// ok: \"OK\" => \"ГАРАЗД\"\n// cancel: \"Cancel\" => \"Скасувати\"// refuseItemText: \"Refuse to answer\" => \"Відмовтеся відповідати\"\n// dontKnowItemText: \"Don't know\" => \"Не знаю\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Ваша відповідь перевищує 64 КБ. Будь ласка, зменшіть розмір файлу (файлів) і повторіть спробу або зв'яжіться з власником опитування.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Без підпису\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/vietnamese.ts\":\n/*!****************************************!*\\\n !*** ./src/localization/vietnamese.ts ***!\n \\****************************************/\n/*! exports provided: vietnameseSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vietnameseSurveyStrings\", function() { return vietnameseSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar vietnameseSurveyStrings = {\n pagePrevText: \"Trở về\",\n pageNextText: \"Tiếp theo\",\n completeText: \"Hoàn thành\",\n previewText: \"Xem trước\",\n editText: \"Chỉnh sửa\",\n startSurveyText: \"Bắt đầu\",\n otherItemText: \"Khác (mô tả)\",\n noneItemText: \"Trống\",\n refuseItemText: \"Từ chối trả lời\",\n dontKnowItemText: \"Không biết\",\n selectAllItemText: \"Chọn tất cả\",\n progressText: \"Trang {0} / {1}\",\n indexText: \"{0} của {1}\",\n panelDynamicProgressText: \"Dòng {0} / {1}\",\n panelDynamicTabTextFormat: \"Bảng điều khiển {panelIndex}\",\n questionsProgressText: \"Đã trả lời {0}/{1} câu hỏi\",\n emptySurvey: \"Không có trang hoặc câu hỏi nào được hiển thị trong cuộc khảo sát này.\",\n completingSurvey: \"Cảm ơn đã hoàn thành khảo sát!\",\n completingSurveyBefore: \"Hồ sơ chúng tôi cho thấy rằng bạn đã hoàn thành cuộc khảo sát này.\",\n loadingSurvey: \"Đang tải khảo sát...\",\n placeholder: \"Chọn...\",\n ratingOptionsCaption: \"Lựa...\",\n value: \"Giá trị\",\n requiredError: \"Vui lòng trả lời câu hỏi.\",\n requiredErrorInPanel: \"Vui lòng trả lời ít nhất một câu hỏi.\",\n requiredInAllRowsError: \"Vui lòng trả lời các câu hỏi trên tất cả các dòng.\",\n eachRowUniqueError: \"Mỗi hàng phải có một giá trị duy nhất.\",\n numericError: \"Giá trị nên là kiểu số.\",\n minError: \"Giá trị không được nhỏ hơn {0}\",\n maxError: \"Giá trị không được lớn hơn {0}\",\n textMinLength: \"Vui lòng nhập ít nhất {0} kí tự.\",\n textMaxLength: \"Vui lòng nhập ít hơn {0} kí tự.\",\n textMinMaxLength: \"Vui lòng nhập nhiều hơn {0} hoặc ít hơn {1} kí tự.\",\n minRowCountError: \"Vui lòng nhập ít nhất {0} dòng.\",\n minSelectError: \"Vui lòng chọn ít nhất {0} loại.\",\n maxSelectError: \"Vui lòng không chọn nhiều hơn {0} loại.\",\n numericMinMax: \"Giá trị '{0}' nên bằng hoặc lớn hơn {1} và bằng hoặc nhỏ hơn {2}\",\n numericMin: \"Giá trị '{0}' nên bằng hoặc lớn hơn {1}\",\n numericMax: \"Giá trị '{0}' nên bằng hoặc nhỏ hơn {1}\",\n invalidEmail: \"Vui lòng điền địa chỉ email hợp lệ.\",\n invalidExpression: \"Biểu thức: {0} nên trả về 'true'.\",\n urlRequestError: \"Yêu cầu trả về lỗi '{0}'. {1}\",\n urlGetChoicesError: \"Yêu cầu trả về dữ liệu trống hoặc thuộc tính 'path' không đúng\",\n exceedMaxSize: \"Kích thước tập tin không nên vượt quá {0}.\",\n noUploadFilesHandler: \"Không thể tải tệp lên. Vui lòng thêm trình xử lý cho sự kiện 'onUploadFiles'.\",\n otherRequiredError: \"Vui lòng điền giá trị khác.\",\n uploadingFile: \"Tập tin đang được tải lên. Vui lòng chờ một lúc và thử lại.\",\n loadingFile: \"Đang tải...\",\n chooseFile: \"Chọn các tập tin...\",\n noFileChosen: \"Không có tập tin nào được chọn\",\n filePlaceholder: \"Kéo và thả tệp vào đây hoặc nhấp vào nút bên dưới và chọn tệp để tải lên.\",\n confirmDelete: \"Bạn muốn xóa dòng này?\",\n keyDuplicationError: \"Giá trị này không nên bị trùng lặp.\",\n addColumn: \"Thêm cột\",\n addRow: \"Thêm dòng\",\n removeRow: \"Xóa\",\n emptyRowsText: \"Không có hàng.\",\n addPanel: \"Thêm mới\",\n removePanel: \"Xóa\",\n showDetails: \"Hiển thị chi tiết\",\n hideDetails: \"Ẩn chi tiết\",\n choices_Item: \"mục\",\n matrix_column: \"Cột\",\n matrix_row: \"Dòng\",\n multipletext_itemname: \"Nhắn tin\",\n savingData: \"Kết quả đang lưu lại trên hệ thống...\",\n savingDataError: \"Có lỗi xảy ra và chúng ta không thể lưu kết quả.\",\n savingDataSuccess: \"Kết quả đã được lưu thành công!\",\n savingExceedSize: \"Phản hồi của bạn vượt quá 64KB. Vui lòng giảm kích thước (các) tệp của bạn và thử lại hoặc liên hệ với chủ sở hữu khảo sát.\",\n saveAgainButton: \"Thử lại\",\n timerMin: \"phút\",\n timerSec: \"giây\",\n timerSpentAll: \"Bạn đã sử dụng {0} trên trang này và {1} trên toàn bộ.\",\n timerSpentPage: \"Bạn đã sử dụng {0} trên trang.\",\n timerSpentSurvey: \"Bạn đã sử dụng {0} trên toàn bộ.\",\n timerLimitAll: \"Bạn đã sử dụng {0} / {1} trên trang này và {2} / {3} trên toàn bộ.\",\n timerLimitPage: \"Bạn đã sử dụng {0} / {1} trên trang này.\",\n timerLimitSurvey: \"Bạn đã sử dụng {0} / {1} trên toàn bộ.\",\n clearCaption: \"Xóa\",\n signaturePlaceHolder: \"Ký tên tại đây\",\n signaturePlaceHolderReadOnly: \"Không có chữ ký\",\n chooseFileCaption: \"Chọn tập tin\",\n takePhotoCaption: \"Chụp ảnh\",\n photoPlaceholder: \"Nhấp vào nút bên dưới để chụp ảnh bằng máy ảnh.\",\n fileOrPhotoPlaceholder: \"Kéo và thả hoặc chọn tệp để tải lên hoặc chụp ảnh bằng máy ảnh.\",\n replaceFileCaption: \"Thay thế tập tin\",\n removeFileCaption: \"Xóa tập tin\",\n booleanCheckedLabel: \"Có\",\n booleanUncheckedLabel: \"Không\",\n confirmRemoveFile: \"Bạn có chắc chắn muốn xóa tập tin này: {0}?\",\n confirmRemoveAllFiles: \"Bạn có chắc chắn muốn xóa toàn bộ tập tin?\",\n questionTitlePatternText: \"Tiêu đề câu hỏi\",\n modalCancelButtonText: \"Hủy\",\n modalApplyButtonText: \"Áp dụng\",\n filterStringPlaceholder: \"Nhập để tìm kiếm...\",\n emptyMessage: \"Không có dữ liệu để hiển thị\",\n noEntriesText: \"Chưa có mục nào.\\nNhấp vào nút bên dưới để thêm mục nhập mới.\",\n noEntriesReadonlyText: \"Không có mục.\",\n more: \"Nhiều hơn\",\n tagboxDoneButtonCaption: \"OK\",\n selectToRankEmptyRankedAreaText: \"Tất cả các lựa chọn được xếp hạng\",\n selectToRankEmptyUnrankedAreaText: \"Kéo và thả các lựa chọn vào đây để xếp hạng chúng\",\n ok: \"OK\",\n cancel: \"Hủy\"\n};\n//Uncomment these two lines on creating a translation file. You should replace \"en\" and enStrings with your locale (\"fr\", \"de\" and so on) and your variable.\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"vi\"] = vietnameseSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"vi\"] = \"Việt Nam\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} của {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Bảng điều khiển {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Lựa...\"\n// minError: \"The value should not be less than {0}\" => \"Giá trị không được nhỏ hơn {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Giá trị không được lớn hơn {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Kéo và thả tệp vào đây hoặc nhấp vào nút bên dưới và chọn tệp để tải lên.\"\n// emptyRowsText: \"There are no rows.\" => \"Không có hàng.\"\n// multipletext_itemname: \"text\" => \"Nhắn tin\"\n// signaturePlaceHolder: \"Sign here\" => \"Ký tên tại đây\"\n// modalCancelButtonText: \"Cancel\" => \"Hủy\"\n// modalApplyButtonText: \"Apply\" => \"Áp dụng\"\n// filterStringPlaceholder: \"Type to search...\" => \"Nhập để tìm kiếm...\"\n// emptyMessage: \"No data to display\" => \"Không có dữ liệu để hiển thị\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Chưa có mục nào.\\nNhấp vào nút bên dưới để thêm mục nhập mới.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Không có mục.\"\n// more: \"More\" => \"Nhiều hơn\"\n// tagboxDoneButtonCaption: \"OK\" => \"OK\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Tất cả các lựa chọn được xếp hạng\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Kéo và thả các lựa chọn vào đây để xếp hạng chúng\"// takePhotoCaption: \"Take Photo\" => \"Chụp ảnh\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Nhấp vào nút bên dưới để chụp ảnh bằng máy ảnh.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Kéo và thả hoặc chọn tệp để tải lên hoặc chụp ảnh bằng máy ảnh.\"\n// replaceFileCaption: \"Replace file\" => \"Thay thế tập tin\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Mỗi hàng phải có một giá trị duy nhất.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Không thể tải tệp lên. Vui lòng thêm trình xử lý cho sự kiện 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Hiển thị chi tiết\"\n// hideDetails: \"Hide Details\" => \"Ẩn chi tiết\"\n// ok: \"OK\" => \"OK\"\n// cancel: \"Cancel\" => \"Hủy\"// refuseItemText: \"Refuse to answer\" => \"Từ chối trả lời\"\n// dontKnowItemText: \"Don't know\" => \"Không biết\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Phản hồi của bạn vượt quá 64KB. Vui lòng giảm kích thước (các) tệp của bạn và thử lại hoặc liên hệ với chủ sở hữu khảo sát.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Không có chữ ký\"\n\n\n/***/ }),\n\n/***/ \"./src/localization/welsh.ts\":\n/*!***********************************!*\\\n !*** ./src/localization/welsh.ts ***!\n \\***********************************/\n/*! exports provided: welshSurveyStrings */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"welshSurveyStrings\", function() { return welshSurveyStrings; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nvar welshSurveyStrings = {\n pagePrevText: \"Blaenorol\",\n pageNextText: \"Nesaf\",\n completeText: \"Cwblhau\",\n previewText: \"Rhagolwg\",\n editText: \"Golygu\",\n startSurveyText: \"Dechrau\",\n otherItemText: \"Arall (disgrifiwch)\",\n noneItemText: \"Dim\",\n refuseItemText: \"Gwrthod ateb\",\n dontKnowItemText: \"Ddim yn gwybod\",\n selectAllItemText: \"Dewis y Cyfan \",\n progressText: \"Tudalen {0} o {1}\",\n indexText: \"{0} o {1}\",\n panelDynamicProgressText: \"Cofnod {0} o {1}\",\n panelDynamicTabTextFormat: \"Panel {panelIndex}\",\n questionsProgressText: \"Wedi ateb {0}/{1} cwestiwn\",\n emptySurvey: \"Does dim modd gweld tudalen na chwestiwn yn yr arolwg.\",\n completingSurvey: \"Diolch am lenwi’r holiadur!\",\n completingSurveyBefore: \"Rydych chi wedi llenwi’r arolwg hwn yn barod yn ôl ein cofnodion.\",\n loadingSurvey: \"Wrthi’n Llwytho’r Arolwg...\",\n placeholder: \"Dewiswch...\",\n ratingOptionsCaption: \"Dewis...\",\n value: \"gwerth\",\n requiredError: \"Atebwch y cwestiwn.\",\n requiredErrorInPanel: \"Atebwch o leiaf un cwestiwn.\",\n requiredInAllRowsError: \"Atebwch y cwestiynau ym mhob rhes.\",\n eachRowUniqueError: \"Rhaid i bob rhes fod â gwerth unigryw.\",\n numericError: \"Dylai’r gwerth fod yn rhif.\",\n minError: \"Ni ddylai'r gwerth fod yn llai na {0}\",\n maxError: \"Ni ddylai'r gwerth fod yn fwy na {0}\",\n textMinLength: \"Rhowch o leiaf {0} nod.\",\n textMaxLength: \"Rhowch lai na {0} nod.\",\n textMinMaxLength: \"Rhowch o leiaf {0} nod ond dim mwy na {1}.\",\n minRowCountError: \"Llenwch o leiaf {0} rhes.\",\n minSelectError: \"Dewiswch o leiaf {0} amrywiolyn.\",\n maxSelectError: \"Peidiwch â dewis mwy na {0} amrywiolyn.\",\n numericMinMax: \"Dylai’r '{0}' fod yr un fath â {1} neu’n fwy, a’r fath â {2} neu’n llai\",\n numericMin: \"Dylai’r '{0}' fod yr un fath â {1} neu’n fwy\",\n numericMax: \"Dylai’r '{0}' fod yr un fath â {1} neu’n llai\",\n invalidEmail: \"Rhowch gyfeiriad e-bost dilys.\",\n invalidExpression: \"Dylai’r mynegiad {0} arwain at 'true'.\",\n urlRequestError: \"Roedd y cais wedi arwain at y gwall '{0}'. {1}\",\n urlGetChoicesError: \"Roedd y cais wedi arwain at ddata gwag neu mae priodwedd y ‘path’ yn anghywir \",\n exceedMaxSize: \"Ddylai’r ffeil ddim bod yn fwy na {0}.\",\n noUploadFilesHandler: \"Ni ellir llwytho ffeiliau i fyny. Ychwanegwch handler ar gyfer y digwyddiad 'onUploadFiles'.\",\n otherRequiredError: \"Rhowch y gwerth arall.\",\n uploadingFile: \"Mae eich ffeil wrthi’n llwytho i fyny. Arhoswch ychydig o eiliadau a rhoi cynnig arall arni.\",\n loadingFile: \"Wrthi’n llwytho...\",\n chooseFile: \"Dewiswch ffeil(iau)...\",\n noFileChosen: \"Heb ddewis ffeil \",\n filePlaceholder: \"Llusgwch a gollwng ffeil yma neu cliciwch y botwm isod a dewiswch ffeil i'w lanlwytho.\",\n confirmDelete: \"Ydych chi am ddileu’r cofnod?\",\n keyDuplicationError: \"Dylai’r gwerth hwn fod yn unigryw.\",\n addColumn: \"Ychwanegu colofn \",\n addRow: \"Ychwanegu rhes\",\n removeRow: \"Tynnu\",\n emptyRowsText: \"Nid oes unrhyw ffraeau.\",\n addPanel: \"Ychwanegu o’r newydd\",\n removePanel: \"Tynnu\",\n showDetails: \"Dangos manylion\",\n hideDetails: \"Manylion Cuddio\",\n choices_Item: \"eitem\",\n matrix_column: \"Colofn\",\n matrix_row: \"Rhes\",\n multipletext_itemname: \"Testun\",\n savingData: \"Mae’r canlyniadau’n cael eu cadw ar y gweinydd...\",\n savingDataError: \"Roedd gwall a doedd dim modd cadw’r canlyniadau.\",\n savingDataSuccess: \"Wedi llwyddo i gadw’r canlyniadau!\",\n savingExceedSize: \"Mae eich ymateb yn fwy na 64KB. Lleihau maint eich ffeil(au) a cheisiwch eto neu cysylltwch â pherchennog yr arolwg.\",\n saveAgainButton: \"Rhowch gynnig arall arni\",\n timerMin: \"mun\",\n timerSec: \"eil\",\n timerSpentAll: \"Rydych chi wedi treulio {0} ar y dudalen hon a {1} gyda’i gilydd.\",\n timerSpentPage: \"Rydych chi wedi treulio {0} ar y dudalen hon.\",\n timerSpentSurvey: \"Rydych chi wedi treulio {0} gyda’i gilydd.\",\n timerLimitAll: \"Rydych chi wedi treulio {0} o {1} ar y dudalen hon a {2} o {3} gyda’i gilydd.\",\n timerLimitPage: \"Rydych chi wedi treulio {0} o {1} ar y dudalen hon.\",\n timerLimitSurvey: \"Rydych chi wedi treulio {0} o {1} gyda’i gilydd.\",\n clearCaption: \"Clirio\",\n signaturePlaceHolder: \"Arwydd yma\",\n signaturePlaceHolderReadOnly: \"Dim llofnod\",\n chooseFileCaption: \"Dewiswch ffeil \",\n takePhotoCaption: \"Tynnu Llun\",\n photoPlaceholder: \"Cliciwch y botwm isod i dynnu llun gan ddefnyddio'r camera.\",\n fileOrPhotoPlaceholder: \"Llusgwch a gollwng neu dewiswch ffeil i lanlwytho neu dynnu llun gan ddefnyddio'r camera.\",\n replaceFileCaption: \"Amnewid ffeil\",\n removeFileCaption: \"Tynnu’r ffeil hon \",\n booleanCheckedLabel: \"Iawn\",\n booleanUncheckedLabel: \"Na\",\n confirmRemoveFile: \"Ydych chi’n siŵr eich bod am dynnu’r ffeil hon: {0}?\",\n confirmRemoveAllFiles: \"Ydych chi’n siŵr eich bod am dynnu pob ffeil?\",\n questionTitlePatternText: \"Teitl y Cwestiwn \",\n modalCancelButtonText: \"Canslo\",\n modalApplyButtonText: \"Cynnig\",\n filterStringPlaceholder: \"Teipiwch i chwilio...\",\n emptyMessage: \"Dim data i'w arddangos\",\n noEntriesText: \"Nid oes unrhyw gofnodion hyd yn hyn.\\nCliciwch y botwm isod i ychwanegu cofnod newydd.\",\n noEntriesReadonlyText: \"Nid oes unrhyw gofnodion.\",\n more: \"Rhagor\",\n tagboxDoneButtonCaption: \"OCÊ\",\n selectToRankEmptyRankedAreaText: \"Mae'r holl ddewisiadau yn cael eu rhestru\",\n selectToRankEmptyUnrankedAreaText: \"Dewisiadau llusgo a gollwng yma i'w graddio\",\n ok: \"OCÊ\",\n cancel: \"Canslo\"\n};\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].locales[\"cy\"] = welshSurveyStrings;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyLocalization\"].localeNames[\"cy\"] = \"cymraeg\";\n// The following strings have been translated by a machine translation service\n// Remove those strings that you have corrected manually\n// indexText: \"{0} of {1}\" => \"{0} o {1}\"\n// panelDynamicTabTextFormat: \"Panel {panelIndex}\" => \"Panel {panelIndex}\"\n// ratingOptionsCaption: \"Select...\" => \"Dewis...\"\n// minError: \"The value should not be less than {0}\" => \"Ni ddylai'r gwerth fod yn llai na {0}\"\n// maxError: \"The value should not be greater than {0}\" => \"Ni ddylai'r gwerth fod yn fwy na {0}\"\n// filePlaceholder: \"Drag and drop a file here or click the button below and choose a file to upload.\" => \"Llusgwch a gollwng ffeil yma neu cliciwch y botwm isod a dewiswch ffeil i'w lanlwytho.\"\n// emptyRowsText: \"There are no rows.\" => \"Nid oes unrhyw ffraeau.\"\n// multipletext_itemname: \"text\" => \"Testun\"\n// signaturePlaceHolder: \"Sign here\" => \"Arwydd yma\"\n// modalCancelButtonText: \"Cancel\" => \"Canslo\"\n// modalApplyButtonText: \"Apply\" => \"Cynnig\"\n// filterStringPlaceholder: \"Type to search...\" => \"Teipiwch i chwilio...\"\n// emptyMessage: \"No data to display\" => \"Dim data i'w arddangos\"\n// noEntriesText: \"There are no entries yet.\\nClick the button below to add a new entry.\" => \"Nid oes unrhyw gofnodion hyd yn hyn.\\nCliciwch y botwm isod i ychwanegu cofnod newydd.\"\n// noEntriesReadonlyText: \"There are no entries.\" => \"Nid oes unrhyw gofnodion.\"\n// more: \"More\" => \"Rhagor\"\n// tagboxDoneButtonCaption: \"OK\" => \"OCÊ\"\n// selectToRankEmptyRankedAreaText: \"All choices are ranked\" => \"Mae'r holl ddewisiadau yn cael eu rhestru\"\n// selectToRankEmptyUnrankedAreaText: \"Drag and drop choices here to rank them\" => \"Dewisiadau llusgo a gollwng yma i'w graddio\"// takePhotoCaption: \"Take Photo\" => \"Tynnu Llun\"\n// photoPlaceholder: \"Click the button below to take a photo using the camera.\" => \"Cliciwch y botwm isod i dynnu llun gan ddefnyddio'r camera.\"\n// fileOrPhotoPlaceholder: \"Drag and drop or select a file to upload or take a photo using the camera.\" => \"Llusgwch a gollwng neu dewiswch ffeil i lanlwytho neu dynnu llun gan ddefnyddio'r camera.\"\n// replaceFileCaption: \"Replace file\" => \"Amnewid ffeil\"// eachRowUniqueError: \"Each row must have a unique value.\" => \"Rhaid i bob rhes fod â gwerth unigryw.\"\n// noUploadFilesHandler: \"Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event.\" => \"Ni ellir llwytho ffeiliau i fyny. Ychwanegwch handler ar gyfer y digwyddiad 'onUploadFiles'.\"\n// showDetails: \"Show Details\" => \"Dangos manylion\"\n// hideDetails: \"Hide Details\" => \"Manylion Cuddio\"\n// ok: \"OK\" => \"OCÊ\"\n// cancel: \"Cancel\" => \"Canslo\"// refuseItemText: \"Refuse to answer\" => \"Gwrthod ateb\"\n// dontKnowItemText: \"Don't know\" => \"Ddim yn gwybod\"// savingExceedSize: \"Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.\" => \"Mae eich ymateb yn fwy na 64KB. Lleihau maint eich ffeil(au) a cheisiwch eto neu cysylltwch â pherchennog yr arolwg.\"\n// signaturePlaceHolderReadOnly: \"No signature\" => \"Dim llofnod\"\n\n\n/***/ }),\n\n/***/ \"./src/martixBase.ts\":\n/*!***************************!*\\\n !*** ./src/martixBase.ts ***!\n \\***************************/\n/*! exports provided: QuestionMatrixBaseModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionMatrixBaseModel\", function() { return QuestionMatrixBaseModel; });\n/* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./itemvalue */ \"./src/itemvalue.ts\");\n/* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./question */ \"./src/question.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _conditions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./conditions */ \"./src/conditions.ts\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers */ \"./src/helpers.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n/**\n * A base class for all matrix question types.\n */\nvar QuestionMatrixBaseModel = /** @class */ (function (_super) {\n __extends(QuestionMatrixBaseModel, _super);\n function QuestionMatrixBaseModel(name) {\n var _this = _super.call(this, name) || this;\n _this.generatedVisibleRows = null;\n _this.generatedTotalRow = null;\n _this.filteredRows = null;\n _this.filteredColumns = null;\n _this.columns = _this.createColumnValues();\n _this.rows = _this.createItemValues(\"rows\");\n return _this;\n }\n QuestionMatrixBaseModel.prototype.createColumnValues = function () {\n return this.createItemValues(\"columns\");\n };\n QuestionMatrixBaseModel.prototype.getType = function () {\n return \"matrixbase\";\n };\n QuestionMatrixBaseModel.prototype.endLoadingFromJson = function () {\n _super.prototype.endLoadingFromJson.call(this);\n this.updateVisibilityBasedOnRows();\n };\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"isCompositeQuestion\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"showHeader\", {\n /**\n * Specifies whether to display the table header that contains column captions.\n *\n * Default value: `true`\n */\n get: function () {\n return this.getPropertyValue(\"showHeader\");\n },\n set: function (val) {\n this.setPropertyValue(\"showHeader\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"columns\", {\n /**\n * An array of matrix columns.\n *\n * For a Single-Select Matrix, the `columns` array can contain configuration objects with the `text` (display value) and `value` (value to be saved in survey results) properties. Alternatively, the array can contain primitive values that will be used as both the display values and values to be saved in survey results.\n *\n * [View \"Single-Select Matrix\" Demo](https://surveyjs.io/form-library/examples/single-selection-matrix-table-question/ (linkStyle))\n *\n * For a Multi-Select Matrix or Dynamic Matrix, the `columns` array should contain configuration objects with properties described in the [`MatrixDropdownColumn`](https://surveyjs.io/form-library/documentation/api-reference/multi-select-matrix-column-values) API Reference section.\n *\n * [View \"Multi-Select Matrix\" Demo](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/ (linkStyle))\n */\n get: function () {\n return this.getPropertyValue(\"columns\");\n },\n set: function (newValue) {\n this.setPropertyValue(\"columns\", newValue);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"visibleColumns\", {\n get: function () {\n return !!this.filteredColumns ? this.filteredColumns : this.columns;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"rows\", {\n /**\n * An array of matrix rows.\n *\n * This array can contain primitive values or objects with the `text` (display value) and `value` (value to be saved in survey results) properties.\n *\n * [View Demo](https://surveyjs.io/form-library/examples/single-selection-matrix-table-question/ (linkStyle))\n */\n get: function () {\n return this.getPropertyValue(\"rows\");\n },\n set: function (newValue) {\n var newRows = this.processRowsOnSet(newValue);\n this.setPropertyValue(\"rows\", newRows);\n this.filterItems();\n },\n enumerable: false,\n configurable: true\n });\n QuestionMatrixBaseModel.prototype.processRowsOnSet = function (newRows) {\n return newRows;\n };\n QuestionMatrixBaseModel.prototype.getVisibleRows = function () {\n return [];\n };\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"visibleRows\", {\n /**\n * Returns an array of visible matrix rows.\n * @see rowsVisibleIf\n */\n get: function () {\n return this.getVisibleRows();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"rowsVisibleIf\", {\n /**\n * A Boolean expression that is evaluated against each matrix row. If the expression evaluates to `false`, the row becomes hidden.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Use the `{item}` placeholder to reference the current row in the expression.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see visibleRows\n * @see columnsVisibleIf\n */\n get: function () {\n return this.getPropertyValue(\"rowsVisibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"rowsVisibleIf\", val);\n this.filterItems();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"columnsVisibleIf\", {\n /**\n * A Boolean expression that is evaluated against each matrix column. If the expression evaluates to `false`, the column becomes hidden.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Use the `{item}` placeholder to reference the current column in the expression.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see rowsVisibleIf\n */\n get: function () {\n return this.getPropertyValue(\"columnsVisibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"columnsVisibleIf\", val);\n this.filterItems();\n },\n enumerable: false,\n configurable: true\n });\n QuestionMatrixBaseModel.prototype.runCondition = function (values, properties) {\n _super.prototype.runCondition.call(this, values, properties);\n this.runItemsCondition(values, properties);\n };\n QuestionMatrixBaseModel.prototype.filterItems = function () {\n if (this.areInvisibleElementsShowing) {\n this.onRowsChanged();\n return false;\n }\n if (this.isLoadingFromJson || !this.data)\n return false;\n return this.runItemsCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());\n };\n QuestionMatrixBaseModel.prototype.onColumnsChanged = function () { };\n QuestionMatrixBaseModel.prototype.onRowsChanged = function () {\n this.updateVisibilityBasedOnRows();\n this.fireCallback(this.visibleRowsChangedCallback);\n };\n QuestionMatrixBaseModel.prototype.updateVisibilityBasedOnRows = function () {\n if (this.hideIfRowsEmpty) {\n this.visible =\n this.rows.length > 0 &&\n (!this.filteredRows || this.filteredRows.length > 0);\n }\n };\n QuestionMatrixBaseModel.prototype.shouldRunColumnExpression = function () {\n return !this.survey || !this.survey.areInvisibleElementsShowing;\n };\n QuestionMatrixBaseModel.prototype.hasRowsAsItems = function () {\n return true;\n };\n QuestionMatrixBaseModel.prototype.runItemsCondition = function (values, properties) {\n var oldVisibleRows = null;\n if (!!this.filteredRows && !_helpers__WEBPACK_IMPORTED_MODULE_4__[\"Helpers\"].isValueEmpty(this.defaultValue)) {\n oldVisibleRows = [];\n for (var i = 0; i < this.filteredRows.length; i++) {\n oldVisibleRows.push(this.filteredRows[i]);\n }\n }\n var hasChanges = this.hasRowsAsItems() && this.runConditionsForRows(values, properties);\n var hasColumnsChanged = this.runConditionsForColumns(values, properties);\n hasChanges = hasColumnsChanged || hasChanges;\n if (hasChanges) {\n if (this.isClearValueOnHidden && (!!this.filteredColumns || !!this.filteredRows)) {\n this.clearIncorrectValues();\n }\n if (!!oldVisibleRows) {\n this.restoreNewVisibleRowsValues(oldVisibleRows);\n }\n this.clearGeneratedRows();\n if (hasColumnsChanged) {\n this.onColumnsChanged();\n }\n this.onRowsChanged();\n }\n return hasChanges;\n };\n QuestionMatrixBaseModel.prototype.clearGeneratedRows = function () {\n this.generatedVisibleRows = null;\n };\n QuestionMatrixBaseModel.prototype.runConditionsForRows = function (values, properties) {\n var showInvisibile = !!this.survey && this.survey.areInvisibleElementsShowing;\n var runner = !showInvisibile && !!this.rowsVisibleIf\n ? new _conditions__WEBPACK_IMPORTED_MODULE_3__[\"ConditionRunner\"](this.rowsVisibleIf)\n : null;\n this.filteredRows = [];\n var hasChanged = _itemvalue__WEBPACK_IMPORTED_MODULE_0__[\"ItemValue\"].runConditionsForItems(this.rows, this.filteredRows, runner, values, properties, !showInvisibile);\n if (this.filteredRows.length === this.rows.length) {\n this.filteredRows = null;\n }\n return hasChanged;\n };\n QuestionMatrixBaseModel.prototype.runConditionsForColumns = function (values, properties) {\n var useColumnsExpression = !!this.survey && !this.survey.areInvisibleElementsShowing;\n var runner = useColumnsExpression && !!this.columnsVisibleIf\n ? new _conditions__WEBPACK_IMPORTED_MODULE_3__[\"ConditionRunner\"](this.columnsVisibleIf)\n : null;\n this.filteredColumns = [];\n var hasChanged = _itemvalue__WEBPACK_IMPORTED_MODULE_0__[\"ItemValue\"].runConditionsForItems(this.columns, this.filteredColumns, runner, values, properties, this.shouldRunColumnExpression());\n if (this.filteredColumns.length === this.columns.length) {\n this.filteredColumns = null;\n }\n return hasChanged;\n };\n QuestionMatrixBaseModel.prototype.clearIncorrectValues = function () {\n var val = this.value;\n if (!val)\n return;\n var newVal = null;\n var isChanged = false;\n var rows = !!this.filteredRows ? this.filteredRows : this.rows;\n var columns = !!this.filteredColumns ? this.filteredColumns : this.columns;\n for (var key in val) {\n if (_itemvalue__WEBPACK_IMPORTED_MODULE_0__[\"ItemValue\"].getItemByValue(rows, key) &&\n _itemvalue__WEBPACK_IMPORTED_MODULE_0__[\"ItemValue\"].getItemByValue(columns, val[key])) {\n if (newVal == null)\n newVal = {};\n newVal[key] = val[key];\n }\n else {\n isChanged = true;\n }\n }\n if (isChanged) {\n this.value = newVal;\n }\n _super.prototype.clearIncorrectValues.call(this);\n };\n QuestionMatrixBaseModel.prototype.clearInvisibleValuesInRows = function () {\n if (this.isEmpty())\n return;\n var newData = this.getUnbindValue(this.value);\n var rows = this.rows;\n for (var i = 0; i < rows.length; i++) {\n var key = rows[i].value;\n if (!!newData[key] && !rows[i].isVisible) {\n delete newData[key];\n }\n }\n if (this.isTwoValueEquals(newData, this.value))\n return;\n this.value = newData;\n };\n QuestionMatrixBaseModel.prototype.restoreNewVisibleRowsValues = function (oldVisibleRows) {\n var rows = !!this.filteredRows ? this.filteredRows : this.rows;\n var val = this.defaultValue;\n var newValue = this.getUnbindValue(this.value);\n var isChanged = false;\n for (var key in val) {\n if (_itemvalue__WEBPACK_IMPORTED_MODULE_0__[\"ItemValue\"].getItemByValue(rows, key) &&\n !_itemvalue__WEBPACK_IMPORTED_MODULE_0__[\"ItemValue\"].getItemByValue(oldVisibleRows, key)) {\n if (newValue == null)\n newValue = {};\n newValue[key] = val[key];\n isChanged = true;\n }\n }\n if (isChanged) {\n this.value = newValue;\n }\n };\n QuestionMatrixBaseModel.prototype.needResponsiveWidth = function () {\n //TODO: make it mor intelligent\n return true;\n };\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"columnsAutoWidth\", {\n get: function () {\n return !this.isMobile && !this.columns.some(function (col) { return !!col.width; });\n },\n enumerable: false,\n configurable: true\n });\n QuestionMatrixBaseModel.prototype.getTableCss = function () {\n var _a;\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__[\"CssClassBuilder\"]()\n .append(this.cssClasses.root)\n .append(this.cssClasses.columnsAutoWidth, this.columnsAutoWidth)\n .append(this.cssClasses.noHeader, !this.showHeader)\n .append(this.cssClasses.hasFooter, !!((_a = this.renderedTable) === null || _a === void 0 ? void 0 : _a.showAddRowOnBottom))\n .append(this.cssClasses.rootAlternateRows, this.alternateRows)\n .append(this.cssClasses.rootVerticalAlignTop, (this.verticalAlign === \"top\"))\n .append(this.cssClasses.rootVerticalAlignMiddle, (this.verticalAlign === \"middle\")).toString();\n };\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"columnMinWidth\", {\n /**\n * Minimum column width in CSS values.\n *\n * @see width\n */\n get: function () {\n return this.getPropertyValue(\"columnMinWidth\") || \"\";\n },\n set: function (val) {\n this.setPropertyValue(\"columnMinWidth\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"rowTitleWidth\", {\n /**\n * A width for the column that displays row titles (first column). Accepts CSS values.\n */\n get: function () {\n return this.getPropertyValue(\"rowTitleWidth\") || \"\";\n },\n set: function (val) {\n this.setPropertyValue(\"rowTitleWidth\", val);\n },\n enumerable: false,\n configurable: true\n });\n //a11y\n QuestionMatrixBaseModel.prototype.getCellAriaLabel = function (rowTitle, columnTitle) {\n var row = (this.getLocalizationString(\"matrix_row\") || \"row\").toLocaleLowerCase();\n var column = (this.getLocalizationString(\"matrix_column\") || \"column\").toLocaleLowerCase();\n return row + \" \" + rowTitle + \", \" + column + \" \" + columnTitle;\n };\n Object.defineProperty(QuestionMatrixBaseModel.prototype, \"isNewA11yStructure\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__[\"property\"])()\n ], QuestionMatrixBaseModel.prototype, \"verticalAlign\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__[\"property\"])()\n ], QuestionMatrixBaseModel.prototype, \"alternateRows\", void 0);\n return QuestionMatrixBaseModel;\n}(_question__WEBPACK_IMPORTED_MODULE_1__[\"Question\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_2__[\"Serializer\"].addClass(\"matrixbase\", [\n { name: \"showCommentArea:switch\", layout: \"row\", visible: true, category: \"general\" },\n \"columnsVisibleIf:condition\",\n \"rowsVisibleIf:condition\",\n \"columnMinWidth\",\n { name: \"showHeader:boolean\", default: true },\n {\n name: \"verticalAlign\",\n choices: [\"top\", \"middle\"],\n default: \"middle\",\n },\n { name: \"alternateRows:boolean\", default: false }\n], undefined, \"question\");\n\n\n/***/ }),\n\n/***/ \"./src/mask/input_element_adapter.ts\":\n/*!*******************************************!*\\\n !*** ./src/mask/input_element_adapter.ts ***!\n \\*******************************************/\n/*! exports provided: InputElementAdapter */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InputElementAdapter\", function() { return InputElementAdapter; });\nvar InputElementAdapter = /** @class */ (function () {\n function InputElementAdapter(inputMaskInstance, inputElement, value) {\n var _this = this;\n this.inputMaskInstance = inputMaskInstance;\n this.inputElement = inputElement;\n this.prevUnmaskedValue = undefined;\n this.inputMaskInstancePropertyChangedHandler = function (sender, options) {\n if (options.name !== \"saveMaskedValue\") {\n var maskedValue = _this.inputMaskInstance.getMaskedValue(_this.prevUnmaskedValue);\n _this.inputElement.value = maskedValue;\n }\n };\n this.clickHandler = function (event) {\n if (_this.inputElement.value == _this.inputMaskInstance.getMaskedValue(\"\")) {\n _this.inputElement.setSelectionRange(0, 0);\n event.preventDefault();\n }\n };\n this.beforeInputHandler = function (event) {\n var args = _this.createArgs(event);\n var result = _this.inputMaskInstance.processInput(args);\n _this.inputElement.value = result.value;\n _this.inputElement.setSelectionRange(result.caretPosition, result.caretPosition);\n if (!result.cancelPreventDefault) {\n event.preventDefault();\n }\n };\n var _value = value;\n if (_value === null || _value === undefined) {\n _value = \"\";\n }\n this.inputElement.value = inputMaskInstance.getMaskedValue(_value);\n this.prevUnmaskedValue = _value;\n inputMaskInstance.onPropertyChanged.add(this.inputMaskInstancePropertyChangedHandler);\n this.addInputEventListener();\n }\n InputElementAdapter.prototype.createArgs = function (event) {\n var args = {\n insertedChars: event.data,\n selectionStart: event.target.selectionStart,\n selectionEnd: event.target.selectionEnd,\n prevValue: event.target.value,\n inputDirection: \"forward\"\n };\n if (event.inputType === \"deleteContentBackward\") {\n args.inputDirection = \"backward\";\n if (args.selectionStart === args.selectionEnd) {\n args.selectionStart = Math.max(args.selectionStart - 1, 0);\n }\n }\n if (event.inputType === \"deleteContentForward\" && args.selectionStart === args.selectionEnd) {\n args.selectionEnd += 1;\n }\n return args;\n };\n InputElementAdapter.prototype.addInputEventListener = function () {\n if (!!this.inputElement) {\n this.inputElement.addEventListener(\"beforeinput\", this.beforeInputHandler);\n this.inputElement.addEventListener(\"click\", this.clickHandler);\n this.inputElement.addEventListener(\"focus\", this.clickHandler);\n }\n };\n InputElementAdapter.prototype.removeInputEventListener = function () {\n if (!!this.inputElement) {\n this.inputElement.removeEventListener(\"beforeinput\", this.beforeInputHandler);\n this.inputElement.removeEventListener(\"click\", this.clickHandler);\n this.inputElement.removeEventListener(\"focus\", this.clickHandler);\n }\n };\n InputElementAdapter.prototype.dispose = function () {\n this.removeInputEventListener();\n this.inputMaskInstance.onPropertyChanged.remove(this.inputMaskInstancePropertyChangedHandler);\n };\n return InputElementAdapter;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/mask/mask_base.ts\":\n/*!*******************************!*\\\n !*** ./src/mask/mask_base.ts ***!\n \\*******************************/\n/*! exports provided: InputMaskBase */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InputMaskBase\", function() { return InputMaskBase; });\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../base */ \"./src/base.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../jsonobject */ \"./src/jsonobject.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n/**\n * A base class for classes that implement input masks:\n *\n * - [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/inputmasknumeric)\n * - [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/inputmaskcurrency)\n * - [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/inputmaskdatetime)\n * - [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/inputmaskpattern)\n */\nvar InputMaskBase = /** @class */ (function (_super) {\n __extends(InputMaskBase, _super);\n function InputMaskBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InputMaskBase.prototype.getType = function () {\n return \"masksettings\";\n };\n InputMaskBase.prototype.setData = function (json) {\n var _this = this;\n var properties = _jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].getProperties(this.getType());\n properties.forEach(function (property) {\n var currentValue = json[property.name];\n _this[property.name] = currentValue !== undefined ? currentValue : property.defaultValue;\n });\n };\n InputMaskBase.prototype.getData = function () {\n var _this = this;\n var res = {};\n var properties = _jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].getProperties(this.getType());\n properties.forEach(function (property) {\n var currentValue = _this[property.name];\n if (!property.isDefaultValue(currentValue)) {\n res[property.name] = currentValue;\n }\n });\n return res;\n };\n InputMaskBase.prototype.processInput = function (args) {\n return { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };\n };\n InputMaskBase.prototype.getUnmaskedValue = function (src) { return src; };\n InputMaskBase.prototype.getMaskedValue = function (src) { return src; };\n InputMaskBase.prototype.getTextAlignment = function () { return \"auto\"; };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], InputMaskBase.prototype, \"saveMaskedValue\", void 0);\n return InputMaskBase;\n}(_base__WEBPACK_IMPORTED_MODULE_0__[\"Base\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].addClass(\"masksettings\", [\n {\n name: \"saveMaskedValue:boolean\",\n visibleIf: function (obj) {\n if (!obj)\n return false;\n return obj.getType() !== \"masksettings\";\n },\n },\n], function () {\n return new InputMaskBase();\n});\n\n\n/***/ }),\n\n/***/ \"./src/mask/mask_currency.ts\":\n/*!***********************************!*\\\n !*** ./src/mask/mask_currency.ts ***!\n \\***********************************/\n/*! exports provided: InputMaskCurrency */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InputMaskCurrency\", function() { return InputMaskCurrency; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _mask_numeric__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mask_numeric */ \"./src/mask/mask_numeric.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n/**\n * A class that describes an input mask of the `\"currency\"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).\n *\n * The following code shows how to specify the properties of this class within a survey JSON schema:\n *\n * ```js\n * const surveyJson = {\n * \"elements\": [{\n * \"name\": \"textquestion1\"\n * \"type\": \"text\",\n * \"maskType\": \"currency\",\n * \"maskSettings\": {\n * // Specify the properties of a currency input mask here\n * }\n * }]\n * }\n * ```\n *\n * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))\n */\nvar InputMaskCurrency = /** @class */ (function (_super) {\n __extends(InputMaskCurrency, _super);\n function InputMaskCurrency() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InputMaskCurrency.prototype.getType = function () {\n return \"currencymask\";\n };\n InputMaskCurrency.prototype.wrapText = function (str) {\n var prefixValue = this.prefix || \"\";\n var suffixValue = this.suffix || \"\";\n var result = str;\n if (!result)\n return result;\n if (result.indexOf(prefixValue) === -1) {\n result = prefixValue + result;\n }\n if (result.indexOf(suffixValue) === -1) {\n result += suffixValue;\n }\n return result;\n };\n InputMaskCurrency.prototype.unwrapInputArgs = function (args) {\n var result = args.prevValue;\n if (!result)\n return;\n if (this.prefix && result.indexOf(this.prefix) !== -1) {\n result = result.slice(result.indexOf(this.prefix) + this.prefix.length);\n var preffixPadding = (this.prefix || \"\").length;\n args.selectionStart = Math.max((args.selectionStart - preffixPadding), 0);\n args.selectionEnd -= preffixPadding;\n }\n if (this.suffix && result.indexOf(this.suffix) !== -1) {\n result = result.slice(0, result.indexOf(this.suffix));\n }\n args.prevValue = result;\n };\n InputMaskCurrency.prototype.processInput = function (args) {\n this.unwrapInputArgs(args);\n var result = _super.prototype.processInput.call(this, args);\n var preffixPadding = (this.prefix || \"\").length;\n if (!!result.value) {\n result.caretPosition += preffixPadding;\n }\n result.value = this.wrapText(result.value);\n return result;\n };\n InputMaskCurrency.prototype.getMaskedValue = function (src) {\n var result = _super.prototype.getMaskedValue.call(this, src);\n return this.wrapText(result);\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskCurrency.prototype, \"prefix\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskCurrency.prototype, \"suffix\", void 0);\n return InputMaskCurrency;\n}(_mask_numeric__WEBPACK_IMPORTED_MODULE_1__[\"InputMaskNumeric\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"currencymask\", [\n { name: \"prefix\" },\n { name: \"suffix\" },\n], function () {\n return new InputMaskCurrency();\n}, \"numericmask\");\n\n\n/***/ }),\n\n/***/ \"./src/mask/mask_datetime.ts\":\n/*!***********************************!*\\\n !*** ./src/mask/mask_datetime.ts ***!\n \\***********************************/\n/*! exports provided: getDateTimeLexems, InputMaskDateTime */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDateTimeLexems\", function() { return getDateTimeLexems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InputMaskDateTime\", function() { return InputMaskDateTime; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _mask_pattern__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mask_pattern */ \"./src/mask/mask_pattern.ts\");\n/* harmony import */ var _mask_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mask_utils */ \"./src/mask/mask_utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\nfunction getMaxCountLexem(currentLexemType, count) {\n switch (currentLexemType) {\n case \"hour\":\n case \"minute\":\n case \"second\":\n case \"day\":\n case \"month\": {\n return 2;\n }\n case \"timeMarker\":\n case \"year\": {\n return count;\n }\n default: {\n return 1;\n }\n }\n}\nfunction trimDatePart(lexem, data) {\n var result = data;\n if (lexem.count < lexem.maxCount && ((lexem.type === \"day\" && parseInt(data[0]) === 0) || (lexem.type === \"month\" && parseInt(data[0]) === 0))) {\n result = data.slice(1, data.length);\n }\n return result;\n}\nfunction getDefaultYearForValidation(minYear, maxYear) {\n var defaultVal = 2000;\n if (defaultVal > maxYear) {\n defaultVal = parseInt(maxYear.toString().slice(0, maxYear.toString().length - 2)) * 100;\n }\n if (defaultVal < minYear) {\n var middle = (maxYear - minYear) / 2 + minYear;\n defaultVal = parseInt(middle.toString().slice(0, middle.toString().length - 1)) * 10;\n }\n if (defaultVal >= minYear && defaultVal <= maxYear) {\n return defaultVal;\n }\n return minYear;\n}\nfunction getDateTimeLexems(pattern) {\n var result = [];\n var prevLexemType;\n var createOrUpdateLexem = function (currentLexemType, currentChar, upperCase) {\n if (upperCase === void 0) { upperCase = false; }\n if (!!prevLexemType && prevLexemType === currentLexemType) {\n result[result.length - 1].count++;\n var maxCount = getMaxCountLexem(currentLexemType, result[result.length - 1].count);\n result[result.length - 1].maxCount = maxCount;\n }\n else {\n var maxCount = getMaxCountLexem(currentLexemType, 1);\n // result.push({ type: currentLexemType, value: currentChar, count: 1, data: { value: \"\", isCompleted: false, isCorrect: false }, maxCount: maxCount });\n result.push({ type: currentLexemType, value: currentChar, count: 1, maxCount: maxCount, upperCase: upperCase });\n }\n };\n for (var index = 0; index < pattern.length; index++) {\n var currentChar = pattern[index];\n switch (currentChar) {\n case \"m\":\n createOrUpdateLexem(\"month\", currentChar);\n break;\n case \"d\":\n createOrUpdateLexem(\"day\", currentChar);\n break;\n case \"y\":\n createOrUpdateLexem(\"year\", currentChar);\n break;\n case \"h\":\n createOrUpdateLexem(\"hour\", currentChar, false);\n break;\n case \"H\":\n createOrUpdateLexem(\"hour\", currentChar, true);\n break;\n case \"M\":\n createOrUpdateLexem(\"minute\", currentChar);\n break;\n case \"s\":\n createOrUpdateLexem(\"second\", currentChar);\n break;\n case \"t\":\n createOrUpdateLexem(\"timeMarker\", currentChar);\n break;\n case \"T\":\n createOrUpdateLexem(\"timeMarker\", currentChar, true);\n break;\n default:\n result.push({ type: \"separator\", value: currentChar, count: 1, maxCount: 1, upperCase: false });\n break;\n }\n prevLexemType = result[result.length - 1].type;\n }\n return result;\n}\n/**\n * A class that describes an input mask of the `\"datetime\"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).\n *\n * The following code shows how to specify the properties of this class within a survey JSON schema:\n *\n * ```js\n * const surveyJson = {\n * \"elements\": [{\n * \"name\": \"textquestion1\"\n * \"type\": \"text\",\n * \"maskType\": \"datetime\",\n * \"maskSettings\": {\n * // Specify the properties of a date-time input mask here\n * }\n * }]\n * }\n * ```\n *\n * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))\n */\nvar InputMaskDateTime = /** @class */ (function (_super) {\n __extends(InputMaskDateTime, _super);\n function InputMaskDateTime() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.defaultDate = \"1970-01-01T\";\n _this.turnOfTheCentury = 68;\n _this.twelve = 12;\n _this.lexems = [];\n _this.inputDateTimeData = [];\n _this.validBeginningOfNumbers = {\n hour: 1,\n hourU: 2,\n minute: 5,\n second: 5,\n day: 3,\n month: 1,\n };\n return _this;\n }\n Object.defineProperty(InputMaskDateTime.prototype, \"hasDatePart\", {\n get: function () {\n return this.lexems.some(function (l) { return l.type === \"day\" || l.type === \"month\" || l.type === \"year\"; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InputMaskDateTime.prototype, \"hasTimePart\", {\n get: function () {\n return this.lexems.some(function (l) { return l.type === \"hour\" || l.type === \"minute\" || l.type === \"second\"; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InputMaskDateTime.prototype, \"is12Hours\", {\n get: function () {\n return this.lexems.filter(function (l) { return l.type === \"hour\" && !l.upperCase; }).length > 0;\n },\n enumerable: false,\n configurable: true\n });\n InputMaskDateTime.prototype.getType = function () {\n return \"datetimemask\";\n };\n InputMaskDateTime.prototype.updateLiterals = function () {\n this.lexems = getDateTimeLexems(this.pattern || \"\");\n };\n InputMaskDateTime.prototype.leaveOnlyNumbers = function (input) {\n var result = \"\";\n for (var index = 0; index < input.length; index++) {\n if (input[index].match(_mask_utils__WEBPACK_IMPORTED_MODULE_2__[\"numberDefinition\"])) {\n result += input[index];\n }\n }\n return result;\n };\n InputMaskDateTime.prototype.getMaskedStrFromISO = function (str) {\n var _this = this;\n var date = new Date(str);\n this.initInputDateTimeData();\n if (!this.hasDatePart) {\n date = new Date(this.defaultDate + str);\n }\n if (!isNaN(date)) {\n this.lexems.forEach(function (lexem, index) {\n var inputData = _this.inputDateTimeData[index];\n inputData.isCompleted = true;\n switch (lexem.type) {\n case \"hour\": {\n if (!_this.is12Hours) {\n inputData.value = date.getHours().toString();\n }\n else {\n inputData.value = ((date.getHours() - 1) % _this.twelve + 1).toString();\n }\n break;\n }\n case \"minute\": {\n inputData.value = date.getMinutes().toString();\n break;\n }\n case \"second\": {\n inputData.value = date.getSeconds().toString();\n break;\n }\n case \"timeMarker\": {\n var marker = (date.getHours() >= _this.twelve) ? \"pm\" : \"am\";\n inputData.value = lexem.upperCase ? marker.toUpperCase() : marker;\n break;\n }\n case \"day\": {\n inputData.value = date.getDate().toString();\n break;\n }\n case \"month\": {\n inputData.value = (date.getMonth() + 1).toString();\n break;\n }\n case \"year\": {\n var year = date.getFullYear();\n if (lexem.count == 2)\n year = year % 100;\n inputData.value = year.toString();\n break;\n }\n default: {\n break;\n }\n }\n });\n }\n return this.getFormatedString(true);\n };\n InputMaskDateTime.prototype.initInputDateTimeData = function () {\n var _this = this;\n this.inputDateTimeData = [];\n this.lexems.forEach(function (lexem) {\n _this.inputDateTimeData.push({ lexem: lexem, isCompleted: false, value: undefined });\n });\n };\n InputMaskDateTime.prototype.getISO_8601Format = function (dateTime) {\n var date = [];\n var time = [];\n if (dateTime.year !== undefined) {\n var year = this.getPlaceholder(4, dateTime.year.toString(), \"0\") + dateTime.year;\n date.push(year);\n }\n if (dateTime.month !== undefined && dateTime.year !== undefined) {\n var month = this.getPlaceholder(2, dateTime.month.toString(), \"0\") + dateTime.month;\n date.push(month);\n }\n if (dateTime.day !== undefined && dateTime.month !== undefined && dateTime.year !== undefined) {\n var day = this.getPlaceholder(2, dateTime.day.toString(), \"0\") + dateTime.day;\n date.push(day);\n }\n if (dateTime.hour !== undefined) {\n var hour = this.getPlaceholder(2, dateTime.hour.toString(), \"0\") + dateTime.hour;\n time.push(hour);\n }\n if (dateTime.minute !== undefined && dateTime.hour !== undefined) {\n var minute = this.getPlaceholder(2, dateTime.minute.toString(), \"0\") + dateTime.minute;\n time.push(minute);\n }\n if (dateTime.second !== undefined && dateTime.minute !== undefined && dateTime.hour !== undefined) {\n var second = this.getPlaceholder(2, dateTime.second.toString(), \"0\") + dateTime.second;\n time.push(second);\n }\n var result = [];\n if (date.length > 0) {\n result.push(date.join(\"-\"));\n }\n if (time.length > 1) {\n result.push(time.join(\":\"));\n }\n return result.join(\"T\");\n };\n InputMaskDateTime.prototype.isYearValid = function (dateTime) {\n if (dateTime.min === undefined && dateTime.max === undefined)\n return false;\n var data = dateTime.year.toString();\n var minYearPart = dateTime.min.toISOString().slice(0, data.length);\n var maxYearPart = dateTime.max.toISOString().slice(0, data.length);\n return dateTime.year >= parseInt(minYearPart) && dateTime.year <= parseInt(maxYearPart);\n };\n InputMaskDateTime.prototype.createIDateTimeCompositionWithDefaults = function (dateTime, isUpperLimit) {\n var min = dateTime.min;\n var max = dateTime.max;\n var year = dateTime.year !== undefined ? dateTime.year : getDefaultYearForValidation(min.getFullYear(), max.getFullYear());\n var month = dateTime.month !== undefined ? dateTime.month : (isUpperLimit && this.hasDatePart ? 12 : 1);\n var day = dateTime.day !== undefined ? dateTime.day : (isUpperLimit && this.hasDatePart ? this.getMaxDateForMonth(year, month) : 1);\n var hour = dateTime.hour !== undefined ? dateTime.hour : (isUpperLimit ? 23 : 0);\n var minute = dateTime.minute !== undefined ? dateTime.minute : (isUpperLimit ? 59 : 0);\n var second = dateTime.second !== undefined ? dateTime.second : (isUpperLimit ? 59 : 0);\n return { year: year, month: month, day: day, hour: hour, minute: minute, second: second };\n };\n InputMaskDateTime.prototype.getMaxDateForMonth = function (year, month) {\n if (month == 2)\n return year % 4 == 0 && year % 100 != 0 || year % 400 ? 29 : 28;\n return [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1];\n };\n InputMaskDateTime.prototype.isDateValid = function (dateTime) {\n var min = dateTime.min;\n var max = dateTime.max;\n var year = dateTime.year !== undefined ? dateTime.year : getDefaultYearForValidation(min.getFullYear(), max.getFullYear());\n var month = dateTime.month !== undefined ? dateTime.month : 1;\n var day = dateTime.day !== undefined ? dateTime.day : 1;\n var monthIndex = month - 1;\n var date = new Date(this.getISO_8601Format(this.createIDateTimeCompositionWithDefaults(dateTime, false)));\n var dateH = new Date(this.getISO_8601Format(this.createIDateTimeCompositionWithDefaults(dateTime, true)));\n return !isNaN(date) &&\n date.getDate() === day &&\n date.getMonth() === monthIndex &&\n date.getFullYear() === year &&\n dateH >= dateTime.min && date <= dateTime.max;\n };\n InputMaskDateTime.prototype.getPlaceholder = function (lexemLength, str, char) {\n var paddingsLength = lexemLength - (str || \"\").length;\n var paddings = paddingsLength > 0 ? char.repeat(paddingsLength) : \"\";\n return paddings;\n };\n InputMaskDateTime.prototype.isDateValid12 = function (dateTime12) {\n if (!this.is12Hours)\n return this.isDateValid(dateTime12);\n if (this.is12Hours && dateTime12.hour > this.twelve) {\n return false;\n }\n if (!dateTime12.timeMarker) {\n if (this.isDateValid(dateTime12))\n return true;\n dateTime12.hour += this.twelve;\n return this.isDateValid(dateTime12);\n }\n else if (dateTime12.timeMarker[0].toLowerCase() === \"p\") {\n if (dateTime12.hour !== this.twelve) {\n dateTime12.hour += this.twelve;\n }\n return this.isDateValid(dateTime12);\n }\n else {\n if (dateTime12.hour === this.twelve) {\n dateTime12.hour = 0;\n }\n return this.isDateValid(dateTime12);\n }\n };\n InputMaskDateTime.prototype.updateTimeMarkerInputDateTimeData = function (newItem, dateTime) {\n var data = newItem.value;\n if (!data)\n return;\n var propertyName = \"timeMarker\";\n var tempDateTime = __assign({}, dateTime);\n tempDateTime[propertyName] = data;\n if (this.isDateValid12(tempDateTime)) {\n newItem.isCompleted = true;\n }\n else {\n data = data.slice(0, data.length - 1);\n }\n newItem.value = data || undefined;\n dateTime[propertyName] = data || undefined;\n return;\n };\n InputMaskDateTime.prototype.updateInputDateTimeData = function (newItem, dateTime) {\n var data = newItem.value;\n if (!data)\n return;\n var propertyName = newItem.lexem.type;\n var tempDateTime = __assign({}, dateTime);\n tempDateTime[propertyName] = parseInt(data);\n if (data.length === newItem.lexem.maxCount) {\n if (this.isDateValid12(tempDateTime)) {\n newItem.isCompleted = true;\n newItem.value = data || undefined;\n dateTime[propertyName] = parseInt(data) > 0 ? parseInt(data) : undefined;\n return;\n }\n else {\n data = data.slice(0, data.length - 1);\n }\n }\n tempDateTime[propertyName] = parseInt(data);\n var firstDigit = parseInt(data[0]);\n var validBeginningOfNumber = this.validBeginningOfNumbers[propertyName + (newItem.lexem.upperCase ? \"U\" : \"\")];\n if ((propertyName === \"year\" && !this.isYearValid(tempDateTime))) {\n data = data.slice(0, data.length - 1);\n newItem.isCompleted = false;\n }\n else if (validBeginningOfNumber !== undefined && firstDigit > validBeginningOfNumber) {\n if (this.isDateValid12(tempDateTime)) {\n newItem.isCompleted = true;\n }\n else {\n data = data.slice(0, data.length - 1);\n }\n }\n else if (validBeginningOfNumber !== undefined && firstDigit !== 0 && firstDigit <= validBeginningOfNumber) {\n this.checkValidationDateTimePart(tempDateTime, propertyName, newItem);\n if (newItem.isCompleted && !this.isDateValid12(tempDateTime)) {\n data = data.slice(0, data.length - 1);\n }\n }\n newItem.value = data || undefined;\n dateTime[propertyName] = parseInt(data) > 0 ? parseInt(data) : undefined;\n };\n InputMaskDateTime.prototype.checkValidationDateTimePart = function (dateTime, propertyName, newItem) {\n var prevValue = dateTime[propertyName];\n var tempValue = prevValue * 10;\n var maxValue = 10;\n if (propertyName === \"month\")\n maxValue = 3;\n if (propertyName === \"hour\")\n maxValue = this.is12Hours ? 3 : 5;\n newItem.isCompleted = true;\n for (var index = 0; index < maxValue; index++) {\n dateTime[propertyName] = tempValue + index;\n if (this.isDateValid12(dateTime)) {\n newItem.isCompleted = false;\n break;\n }\n }\n dateTime[propertyName] = prevValue;\n };\n InputMaskDateTime.prototype.getCorrectDatePartFormat = function (inputData, matchWholeMask) {\n var lexem = inputData.lexem;\n var dataStr = inputData.value || \"\";\n if (!!dataStr && lexem.type === \"timeMarker\") {\n if (matchWholeMask) {\n dataStr = dataStr + this.getPlaceholder(lexem.count, dataStr, lexem.value);\n }\n return dataStr;\n }\n if (!!dataStr && inputData.isCompleted) {\n dataStr = parseInt(dataStr).toString();\n }\n if (!!dataStr && inputData.isCompleted) {\n var zeroPaddings = this.getPlaceholder(lexem.count, dataStr, \"0\");\n dataStr = zeroPaddings + dataStr;\n }\n else {\n // !!!\n dataStr = trimDatePart(lexem, dataStr);\n if (matchWholeMask) {\n dataStr += this.getPlaceholder(lexem.count, dataStr, lexem.value);\n }\n }\n return dataStr;\n };\n InputMaskDateTime.prototype.createIDateTimeComposition = function () {\n var isoMin, isoMax;\n if (this.hasDatePart) {\n isoMin = this.min || \"0001-01-01\";\n isoMax = this.max || \"9999-12-31\";\n }\n else {\n isoMin = this.defaultDate + (this.min || \"00:00:00\");\n isoMax = this.defaultDate + (this.max || \"23:59:59\");\n }\n var tempDateTime = {\n hour: undefined,\n minute: undefined,\n second: undefined,\n day: undefined,\n month: undefined,\n year: undefined,\n min: new Date(isoMin),\n max: new Date(isoMax)\n };\n return tempDateTime;\n };\n InputMaskDateTime.prototype.parseTwoDigitYear = function (data) {\n var inputData = data.value;\n if (data.lexem.type !== \"year\" || data.lexem.count > 2)\n return inputData;\n if (!!this.max && this.max.length >= 4) {\n this.turnOfTheCentury = parseInt(this.max.slice(2, 4));\n }\n var year = parseInt(inputData);\n var result = (year > this.turnOfTheCentury ? \"19\" : \"20\") + inputData;\n return result;\n };\n InputMaskDateTime.prototype.getFormatedString = function (matchWholeMask) {\n var result = \"\";\n var prevSeparator = \"\";\n var prevIsCompleted = false;\n var lastItemWithDataIndex = this.inputDateTimeData.length - 1;\n if (!matchWholeMask) {\n var arr = this.inputDateTimeData.filter(function (item) { return !!item.value; });\n lastItemWithDataIndex = this.inputDateTimeData.indexOf(arr[arr.length - 1]);\n }\n for (var index = 0; index < this.inputDateTimeData.length; index++) {\n var inputData = this.inputDateTimeData[index];\n switch (inputData.lexem.type) {\n case \"timeMarker\":\n case \"hour\":\n case \"minute\":\n case \"second\":\n case \"day\":\n case \"month\":\n case \"year\":\n if (inputData.value === undefined && !matchWholeMask) {\n result += (prevIsCompleted ? prevSeparator : \"\");\n return result;\n }\n else {\n var _matchWholeMask = matchWholeMask || lastItemWithDataIndex > index;\n var data = this.getCorrectDatePartFormat(inputData, _matchWholeMask);\n result += (prevSeparator + data);\n prevIsCompleted = inputData.isCompleted;\n }\n break;\n case \"separator\":\n prevSeparator = inputData.lexem.value;\n break;\n }\n }\n return result;\n };\n InputMaskDateTime.prototype.cleanTimeMarker = function (str, upperCase) {\n var result = \"\";\n str = str.toUpperCase();\n for (var i = 0; i < str.length; i++) {\n if (!result && (str[i] == \"P\" || str[i] == \"A\") || result && str[i] == \"M\")\n result += str[i];\n }\n if (upperCase) {\n result = result.toUpperCase();\n }\n else {\n result = result.toLowerCase();\n }\n return result;\n };\n InputMaskDateTime.prototype.setInputDateTimeData = function (numberParts) {\n var _this = this;\n var numberPartsArrayIndex = 0;\n this.initInputDateTimeData();\n this.lexems.forEach(function (lexem, index) {\n if (numberParts.length > 0 && numberPartsArrayIndex < numberParts.length) {\n if (lexem.type === \"separator\")\n return;\n var inputData = _this.inputDateTimeData[index];\n var currentPart = numberParts[numberPartsArrayIndex];\n var _data = void 0;\n if (lexem.type === \"timeMarker\") {\n _data = _this.cleanTimeMarker(currentPart, lexem.upperCase);\n }\n else {\n _data = _this.leaveOnlyNumbers(currentPart);\n }\n inputData.value = _data.slice(0, lexem.maxCount);\n numberPartsArrayIndex++;\n }\n });\n };\n InputMaskDateTime.prototype._getMaskedValue = function (src, matchWholeMask) {\n var _this = this;\n if (matchWholeMask === void 0) { matchWholeMask = true; }\n var input = (src === undefined || src === null) ? \"\" : src.toString();\n var inputParts = this.getParts(input);\n this.setInputDateTimeData(inputParts);\n var tempDateTime = this.createIDateTimeComposition();\n this.inputDateTimeData.forEach(function (itemData) {\n if (itemData.lexem.type === \"timeMarker\") {\n _this.updateTimeMarkerInputDateTimeData(itemData, tempDateTime);\n }\n else {\n _this.updateInputDateTimeData(itemData, tempDateTime);\n }\n });\n var result = this.getFormatedString(matchWholeMask);\n return result;\n };\n InputMaskDateTime.prototype.getParts = function (input) {\n var inputParts = [];\n var lexemsWithValue = this.lexems.filter(function (l) { return l.type !== \"separator\"; });\n var separators = this.lexems.filter(function (l) { return l.type === \"separator\"; }).map(function (s) { return s.value; });\n var curPart = \"\";\n var foundSeparator = false;\n var foundPseudoSeparator = false;\n for (var i = 0; i < input.length; i++) {\n var inputChar = input[i];\n if (inputChar.match(_mask_utils__WEBPACK_IMPORTED_MODULE_2__[\"numberDefinition\"]) || inputChar === lexemsWithValue[inputParts.length].value) {\n foundSeparator = false;\n foundPseudoSeparator = false;\n curPart += inputChar;\n }\n else if (lexemsWithValue[inputParts.length].type === \"timeMarker\") {\n foundSeparator = false;\n foundPseudoSeparator = false;\n curPart += inputChar;\n }\n else {\n if (separators.indexOf(inputChar) !== -1) {\n if (!foundPseudoSeparator) {\n foundSeparator = true;\n inputParts.push(curPart);\n curPart = \"\";\n }\n }\n else {\n if (!foundSeparator) {\n foundPseudoSeparator = true;\n inputParts.push(curPart);\n curPart = \"\";\n }\n }\n }\n if (inputParts.length >= lexemsWithValue.length) {\n foundSeparator = false;\n break;\n }\n }\n if (curPart != \"\" || foundSeparator) {\n inputParts.push(curPart);\n }\n return inputParts;\n };\n InputMaskDateTime.prototype.getUnmaskedValue = function (src) {\n var _this = this;\n var _a;\n var input = (src === undefined || src === null) ? \"\" : src.toString();\n var inputParts = this.getParts(input);\n this.setInputDateTimeData(inputParts);\n var timeMarker = (_a = this.inputDateTimeData.filter(function (idtd) { return idtd.lexem.type === \"timeMarker\"; })[0]) === null || _a === void 0 ? void 0 : _a.value.toLowerCase()[0];\n var tempDateTime = this.createIDateTimeComposition();\n var uncompleted = false;\n this.inputDateTimeData.forEach(function (inputData) {\n var str = inputData.value;\n if (inputData.lexem.type == \"timeMarker\" || inputData.lexem.type == \"separator\")\n return;\n if (!str || str.length < inputData.lexem.count) {\n uncompleted = true;\n return;\n }\n var value = parseInt(_this.parseTwoDigitYear(inputData));\n if (inputData.lexem.type == \"hour\" && timeMarker === \"p\" && value != _this.twelve)\n value += _this.twelve;\n tempDateTime[inputData.lexem.type] = value;\n });\n return uncompleted ? \"\" : this.getISO_8601Format(tempDateTime);\n };\n InputMaskDateTime.prototype.getMaskedValue = function (src) {\n return this.getMaskedStrFromISO(src);\n };\n InputMaskDateTime.prototype.processInput = function (args) {\n var result = { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };\n var leftPart = args.prevValue.slice(0, args.selectionStart);\n var rightPart = args.prevValue.slice(args.selectionEnd);\n result.value = this._getMaskedValue(leftPart + (args.insertedChars || \"\") + rightPart);\n if (!args.insertedChars && args.inputDirection === \"backward\") {\n result.caretPosition = args.selectionStart;\n }\n else {\n result.caretPosition = this._getMaskedValue(leftPart + (args.insertedChars || \"\"), false).length;\n }\n return result;\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskDateTime.prototype, \"min\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskDateTime.prototype, \"max\", void 0);\n return InputMaskDateTime;\n}(_mask_pattern__WEBPACK_IMPORTED_MODULE_1__[\"InputMaskPattern\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"datetimemask\", [\n {\n name: \"min\",\n type: \"datetime\",\n enableIf: function (obj) {\n return !!obj.pattern;\n }\n },\n {\n name: \"max\",\n type: \"datetime\",\n enableIf: function (obj) {\n return !!obj.pattern;\n }\n }\n], function () {\n return new InputMaskDateTime();\n}, \"patternmask\");\n\n\n/***/ }),\n\n/***/ \"./src/mask/mask_numeric.ts\":\n/*!**********************************!*\\\n !*** ./src/mask/mask_numeric.ts ***!\n \\**********************************/\n/*! exports provided: splitString, InputMaskNumeric */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"splitString\", function() { return splitString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InputMaskNumeric\", function() { return InputMaskNumeric; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _mask_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mask_base */ \"./src/mask/mask_base.ts\");\n/* harmony import */ var _mask_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mask_utils */ \"./src/mask/mask_utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\nfunction splitString(str, reverse, n) {\n if (reverse === void 0) { reverse = true; }\n if (n === void 0) { n = 3; }\n var arr = [];\n if (reverse) {\n for (var i = str.length - n; i > -n; i -= n) {\n arr.push(str.substring(i, i + n));\n }\n arr = arr.reverse();\n }\n else {\n for (var i = 0; i < str.length; i += n) {\n arr.push(str.substring(i, i + n));\n }\n }\n return arr;\n}\n/**\n * A class that describes an input mask of the `\"numeric\"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).\n *\n * The following code shows how to specify the properties of this class within a survey JSON schema:\n *\n * ```js\n * const surveyJson = {\n * \"elements\": [{\n * \"name\": \"textquestion1\"\n * \"type\": \"text\",\n * \"maskType\": \"numeric\",\n * \"maskSettings\": {\n * // Specify the properties of a numeric input mask here\n * }\n * }]\n * }\n * ```\n *\n * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))\n */\nvar InputMaskNumeric = /** @class */ (function (_super) {\n __extends(InputMaskNumeric, _super);\n function InputMaskNumeric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InputMaskNumeric.prototype.calccaretPosition = function (leftPart, args, maskedValue) {\n var leftPartMaskedLength = !!leftPart ? this.displayNumber(this.parseNumber(leftPart), false).length : 0;\n var validCharIndex = 0;\n var result = args.selectionStart;\n // let result = 0;\n var isDeleteKeyOperation = !args.insertedChars && args.inputDirection === \"forward\";\n for (var index = 0; index < maskedValue.length; index++) {\n var currentChar = maskedValue[index];\n if (currentChar !== this.thousandsSeparator) {\n validCharIndex++;\n }\n if (validCharIndex === (leftPartMaskedLength + (isDeleteKeyOperation ? 1 : 0))) {\n if (isDeleteKeyOperation) {\n result = index;\n }\n else {\n result = index + 1;\n }\n break;\n }\n // if (validCharIndex === leftPartMaskedLength) {\n // result = index + 1;\n // break;\n // }\n }\n return result;\n };\n InputMaskNumeric.prototype.displayNumber = function (parsedNumber, insertThousandsSeparator, matchWholeMask) {\n if (insertThousandsSeparator === void 0) { insertThousandsSeparator = true; }\n if (matchWholeMask === void 0) { matchWholeMask = false; }\n var displayIntegralPart = parsedNumber.integralPart;\n if (insertThousandsSeparator && !!displayIntegralPart) {\n displayIntegralPart = splitString(displayIntegralPart).join(this.thousandsSeparator);\n }\n var displayFractionalPart = parsedNumber.fractionalPart;\n var minusSign = parsedNumber.isNegative ? \"-\" : \"\";\n if (displayFractionalPart === \"\") {\n if (matchWholeMask) {\n return (!displayIntegralPart || displayIntegralPart === \"0\") ? displayIntegralPart : minusSign + displayIntegralPart;\n }\n else {\n var displayDecimalSeparator = parsedNumber.hasDecimalSeparator && !matchWholeMask ? this.decimalSeparator : \"\";\n var src = displayIntegralPart + displayDecimalSeparator;\n return src === \"0\" ? src : minusSign + src;\n }\n }\n else {\n displayIntegralPart = displayIntegralPart || \"0\";\n displayFractionalPart = displayFractionalPart.substring(0, this.precision);\n return [minusSign + displayIntegralPart, displayFractionalPart].join(this.decimalSeparator);\n }\n };\n InputMaskNumeric.prototype.convertNumber = function (parsedNumber) {\n var value;\n var minusSign = parsedNumber.isNegative ? \"-\" : \"\";\n if (!!parsedNumber.fractionalPart) {\n value = parseFloat(minusSign + (parsedNumber.integralPart || \"0\") + \".\" + parsedNumber.fractionalPart.substring(0, this.precision));\n }\n else {\n value = parseInt(minusSign + parsedNumber.integralPart || \"0\");\n }\n return value;\n };\n InputMaskNumeric.prototype.validateNumber = function (number, matchWholeMask) {\n var min = this.min || Number.MIN_SAFE_INTEGER;\n var max = this.max || Number.MAX_SAFE_INTEGER;\n if (this.min !== undefined || this.max !== undefined) {\n var value = this.convertNumber(number);\n if (Number.isNaN(value)) {\n return true;\n }\n if (!matchWholeMask) {\n return value >= 0 && value <= max || value < 0 && value >= min;\n }\n else {\n return value >= min && value <= max;\n }\n }\n return true;\n };\n InputMaskNumeric.prototype.parseNumber = function (src) {\n var result = { integralPart: \"\", fractionalPart: \"\", hasDecimalSeparator: false, isNegative: false };\n var input = (src === undefined || src === null) ? \"\" : src.toString();\n var minusCharCount = 0;\n for (var inputIndex = 0; inputIndex < input.length; inputIndex++) {\n var currentChar = input[inputIndex];\n switch (currentChar) {\n case \"-\": {\n if (this.allowNegativeValues && (this.min === undefined || this.min < 0)) {\n minusCharCount++;\n }\n break;\n }\n case this.decimalSeparator: {\n if (this.precision > 0) {\n result.hasDecimalSeparator = true;\n }\n break;\n }\n case this.thousandsSeparator: {\n break;\n }\n default: {\n if (currentChar.match(_mask_utils__WEBPACK_IMPORTED_MODULE_2__[\"numberDefinition\"])) {\n if (result.hasDecimalSeparator) {\n result.fractionalPart += currentChar;\n }\n else {\n result.integralPart += currentChar;\n }\n }\n }\n }\n }\n result.isNegative = minusCharCount % 2 !== 0;\n if (result.integralPart.length > 1 && result.integralPart[0] === \"0\") {\n result.integralPart = result.integralPart.slice(1);\n }\n return result;\n };\n InputMaskNumeric.prototype.getNumberMaskedValue = function (src, matchWholeMask) {\n if (matchWholeMask === void 0) { matchWholeMask = false; }\n var parsedNumber = this.parseNumber(src);\n if (!this.validateNumber(parsedNumber, matchWholeMask)) {\n return null;\n }\n var displayText = this.displayNumber(parsedNumber, true, matchWholeMask);\n return displayText;\n };\n InputMaskNumeric.prototype.getNumberUnmaskedValue = function (str) {\n var parsedNumber = this.parseNumber(str);\n return this.convertNumber(parsedNumber);\n };\n InputMaskNumeric.prototype.getTextAlignment = function () {\n return \"right\";\n };\n InputMaskNumeric.prototype.getMaskedValue = function (src) {\n var input = (src === undefined || src === null) ? \"\" : src.toString();\n input = input.replace(\".\", this.decimalSeparator);\n return this.getNumberMaskedValue(input, true);\n };\n InputMaskNumeric.prototype.getUnmaskedValue = function (src) {\n return this.getNumberUnmaskedValue(src);\n };\n InputMaskNumeric.prototype.processInput = function (args) {\n var result = { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };\n var leftPart = args.prevValue.slice(0, args.selectionStart) + (args.insertedChars || \"\");\n var rightPart = args.prevValue.slice(args.selectionEnd);\n var src = leftPart + rightPart;\n var parsedNumber = this.parseNumber(src);\n if (!this.validateNumber(parsedNumber, false)) {\n return result;\n }\n var maskedValue = this.getNumberMaskedValue(src);\n var caretPosition = this.calccaretPosition(leftPart, args, maskedValue);\n result.value = maskedValue;\n result.caretPosition = caretPosition;\n return result;\n };\n InputMaskNumeric.prototype.getType = function () {\n return \"numericmask\";\n };\n InputMaskNumeric.prototype.isPropertyEmpty = function (value) {\n return value === \"\" || value === undefined || value === null;\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskNumeric.prototype, \"allowNegativeValues\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskNumeric.prototype, \"decimalSeparator\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskNumeric.prototype, \"precision\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskNumeric.prototype, \"thousandsSeparator\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskNumeric.prototype, \"min\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], InputMaskNumeric.prototype, \"max\", void 0);\n return InputMaskNumeric;\n}(_mask_base__WEBPACK_IMPORTED_MODULE_1__[\"InputMaskBase\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"numericmask\", [\n { name: \"allowNegativeValues:boolean\", default: true },\n { name: \"decimalSeparator\", default: \".\", maxLength: 1 },\n { name: \"thousandsSeparator\", default: \",\", maxLength: 1 },\n { name: \"precision:number\", default: 2, minValue: 0 },\n { name: \"min:number\" },\n { name: \"max:number\" },\n], function () {\n return new InputMaskNumeric();\n}, \"masksettings\");\n\n\n/***/ }),\n\n/***/ \"./src/mask/mask_pattern.ts\":\n/*!**********************************!*\\\n !*** ./src/mask/mask_pattern.ts ***!\n \\**********************************/\n/*! exports provided: getLiterals, getMaskedValueByPattern, getUnmaskedValueByPattern, InputMaskPattern */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLiterals\", function() { return getLiterals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMaskedValueByPattern\", function() { return getMaskedValueByPattern; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUnmaskedValueByPattern\", function() { return getUnmaskedValueByPattern; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InputMaskPattern\", function() { return InputMaskPattern; });\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../settings */ \"./src/settings.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _mask_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mask_base */ \"./src/mask/mask_base.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\nfunction getLiterals(pattern) {\n var result = [];\n var prevCharIsEscaped = false;\n var definitionsKeys = Object.keys(_settings__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].maskSettings.patternDefinitions);\n for (var index = 0; index < pattern.length; index++) {\n var currentChar = pattern[index];\n if (currentChar === _settings__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].maskSettings.patternEscapeChar) {\n prevCharIsEscaped = true;\n }\n else if (prevCharIsEscaped) {\n prevCharIsEscaped = false;\n result.push({ type: \"fixed\", value: currentChar });\n }\n else {\n result.push({ type: definitionsKeys.indexOf(currentChar) !== -1 ? \"regex\" : \"const\", value: currentChar });\n }\n }\n return result;\n}\nfunction getFirstMatch(str, strIndex, literal) {\n var currentDefinition = _settings__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].maskSettings.patternDefinitions[literal.value];\n while (strIndex < str.length) {\n if (str[strIndex].match(currentDefinition)) {\n return strIndex;\n }\n strIndex++;\n }\n return strIndex;\n}\nfunction getMaskedValueByPattern(src, pattern, matchWholeMask) {\n var input = (src === undefined || src === null) ? \"\" : src;\n var result = \"\";\n var strIndex = 0;\n var literals = (typeof pattern === \"string\") ? getLiterals(pattern) : pattern;\n for (var maskIndex = 0; maskIndex < literals.length; maskIndex++) {\n switch (literals[maskIndex].type) {\n case \"regex\":\n if (strIndex < input.length) {\n strIndex = getFirstMatch(input, strIndex, literals[maskIndex]);\n }\n if (strIndex < input.length) {\n result += input[strIndex];\n }\n else if (matchWholeMask) {\n result += _settings__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].maskSettings.patternPlaceholderChar;\n }\n else {\n return result;\n }\n strIndex++;\n break;\n case \"const\":\n case \"fixed\":\n result += literals[maskIndex].value;\n if (literals[maskIndex].value === input[strIndex]) {\n strIndex++;\n }\n break;\n }\n }\n return result;\n}\nfunction getUnmaskedValueByPattern(str, pattern, matchWholeMask, skipFixedChar) {\n if (skipFixedChar === void 0) { skipFixedChar = false; }\n var result = \"\";\n if (!str)\n return result;\n var literals = (typeof pattern === \"string\") ? getLiterals(pattern) : pattern;\n for (var index = 0; index < literals.length; index++) {\n if (literals[index].type === \"fixed\" && !skipFixedChar) {\n result += literals[index].value;\n }\n if (literals[index].type === \"regex\") {\n var currentDefinition = _settings__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].maskSettings.patternDefinitions[literals[index].value];\n if (!!str[index] && str[index].match(currentDefinition)) {\n result += str[index];\n }\n else if (matchWholeMask) {\n result = \"\";\n break;\n }\n else {\n break;\n }\n }\n }\n return result;\n}\n/**\n * A class that describes an input mask of the `\"pattern\"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).\n *\n * The following code shows how to specify the properties of this class within a survey JSON schema:\n *\n * ```js\n * const surveyJson = {\n * \"elements\": [{\n * \"name\": \"textquestion1\"\n * \"type\": \"text\",\n * \"maskType\": \"pattern\",\n * \"maskSettings\": {\n * // Specify the properties of a pattern input mask here\n * }\n * }]\n * }\n * ```\n *\n * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))\n */\nvar InputMaskPattern = /** @class */ (function (_super) {\n __extends(InputMaskPattern, _super);\n function InputMaskPattern() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.literals = [];\n return _this;\n }\n InputMaskPattern.prototype.updateLiterals = function () {\n this.literals = getLiterals(this.pattern || \"\");\n };\n InputMaskPattern.prototype.onPropertyValueChanged = function (name, oldValue, newValue) {\n if (name === \"pattern\") {\n this.updateLiterals();\n }\n };\n InputMaskPattern.prototype.getType = function () {\n return \"patternmask\";\n };\n InputMaskPattern.prototype.fromJSON = function (json, options) {\n _super.prototype.fromJSON.call(this, json, options);\n this.updateLiterals();\n };\n InputMaskPattern.prototype._getMaskedValue = function (src, matchWholeMask) {\n if (matchWholeMask === void 0) { matchWholeMask = false; }\n var input = (src === undefined || src === null) ? \"\" : src;\n return getMaskedValueByPattern(input, this.literals, matchWholeMask);\n };\n InputMaskPattern.prototype._getUnmaskedValue = function (src, matchWholeMask) {\n if (matchWholeMask === void 0) { matchWholeMask = false; }\n var input = (src === undefined || src === null) ? \"\" : src;\n return getUnmaskedValueByPattern(input, this.literals, matchWholeMask);\n };\n InputMaskPattern.prototype.processInput = function (args) {\n var result = { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };\n if (!args.insertedChars && args.selectionStart === args.selectionEnd) {\n return result;\n }\n var leftPart = args.prevValue.slice(0, args.selectionStart) + (args.insertedChars || \"\");\n var leftPartUnmasked = getUnmaskedValueByPattern(args.prevValue.slice(0, args.selectionStart), this.literals.slice(0, args.selectionStart), false);\n var rightPartUnmasked = getUnmaskedValueByPattern(args.prevValue.slice(args.selectionEnd), this.literals.slice(args.selectionEnd), false, true);\n result.value = this._getMaskedValue(leftPartUnmasked + (args.insertedChars || \"\") + rightPartUnmasked, true);\n if (!args.insertedChars && args.inputDirection === \"backward\") {\n result.caretPosition = args.selectionStart;\n }\n else {\n result.caretPosition = this._getMaskedValue(leftPart).length;\n }\n return result;\n };\n InputMaskPattern.prototype.getMaskedValue = function (src) {\n return this._getMaskedValue(src, true);\n };\n InputMaskPattern.prototype.getUnmaskedValue = function (src) {\n return this._getUnmaskedValue(src, true);\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], InputMaskPattern.prototype, \"pattern\", void 0);\n return InputMaskPattern;\n}(_mask_base__WEBPACK_IMPORTED_MODULE_2__[\"InputMaskBase\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].addClass(\"patternmask\", [\n { name: \"pattern\" },\n], function () {\n return new InputMaskPattern();\n}, \"masksettings\");\n\n\n/***/ }),\n\n/***/ \"./src/mask/mask_utils.ts\":\n/*!********************************!*\\\n !*** ./src/mask/mask_utils.ts ***!\n \\********************************/\n/*! exports provided: numberDefinition */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberDefinition\", function() { return numberDefinition; });\nvar numberDefinition = /[0-9]/;\n\n\n/***/ }),\n\n/***/ \"./src/multiSelectListModel.ts\":\n/*!*************************************!*\\\n !*** ./src/multiSelectListModel.ts ***!\n \\*************************************/\n/*! exports provided: MultiSelectListModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MultiSelectListModel\", function() { return MultiSelectListModel; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./list */ \"./src/list.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\nvar MultiSelectListModel = /** @class */ (function (_super) {\n __extends(MultiSelectListModel, _super);\n function MultiSelectListModel(items, onSelectionChanged, allowSelection, selectedItems, elementId) {\n var _this = _super.call(this, items, onSelectionChanged, allowSelection, undefined, elementId) || this;\n _this.onItemClick = function (item) {\n if (_this.isItemDisabled(item))\n return;\n _this.isExpanded = false;\n if (_this.isItemSelected(item)) {\n _this.selectedItems.splice(_this.selectedItems.indexOf(item), 1)[0];\n !!_this.onSelectionChanged && (_this.onSelectionChanged(item, \"removed\"));\n }\n else {\n _this.selectedItems.push(item);\n !!_this.onSelectionChanged && (_this.onSelectionChanged(item, \"added\"));\n }\n };\n _this.isItemDisabled = function (itemValue) {\n return itemValue.enabled !== undefined && !itemValue.enabled;\n };\n _this.isItemSelected = function (itemValue) {\n return !!_this.allowSelection && _this.selectedItems.filter(function (item) { return _this.areSameItems(item, itemValue); }).length > 0;\n };\n _this.setSelectedItems(selectedItems || []);\n return _this;\n }\n MultiSelectListModel.prototype.updateItemState = function () {\n var _this = this;\n this.actions.forEach(function (action) {\n var isSelected = _this.isItemSelected(action);\n action.visible = _this.hideSelectedItems ? !isSelected : true;\n });\n };\n MultiSelectListModel.prototype.updateState = function () {\n var _this = this;\n this.updateItemState();\n this.isEmpty = this.renderedActions.filter(function (action) { return _this.isItemVisible(action); }).length === 0;\n };\n MultiSelectListModel.prototype.setSelectedItems = function (newItems) {\n this.selectedItems = newItems;\n this.updateState();\n };\n MultiSelectListModel.prototype.selectFocusedItem = function () {\n _super.prototype.selectFocusedItem.call(this);\n if (this.hideSelectedItems) {\n this.focusNextVisibleItem();\n }\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], MultiSelectListModel.prototype, \"hideSelectedItems\", void 0);\n return MultiSelectListModel;\n}(_list__WEBPACK_IMPORTED_MODULE_1__[\"ListModel\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/notifier.ts\":\n/*!*************************!*\\\n !*** ./src/notifier.ts ***!\n \\*************************/\n/*! exports provided: Notifier */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Notifier\", function() { return Notifier; });\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ \"./src/base.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./actions/container */ \"./src/actions/container.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\nvar Notifier = /** @class */ (function (_super) {\n __extends(Notifier, _super);\n function Notifier(cssClasses) {\n var _this = _super.call(this) || this;\n _this.cssClasses = cssClasses;\n _this.timeout = _settings__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].notifications.lifetime;\n _this.timer = undefined;\n _this.actionsVisibility = {};\n _this.showActions = true;\n _this.actionBar = new _actions_container__WEBPACK_IMPORTED_MODULE_4__[\"ActionContainer\"]();\n _this.actionBar.updateCallback = function (isResetInitialized) {\n _this.actionBar.actions.forEach(function (action) { return action.cssClasses = {}; });\n };\n _this.css = _this.cssClasses.root;\n return _this;\n }\n Notifier.prototype.getCssClass = function (type) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__[\"CssClassBuilder\"]()\n .append(this.cssClasses.root)\n .append(this.cssClasses.rootWithButtons, this.actionBar.visibleActions.length > 0)\n .append(this.cssClasses.info, type !== \"error\" && type !== \"success\")\n .append(this.cssClasses.error, type === \"error\")\n .append(this.cssClasses.success, type === \"success\")\n .append(this.cssClasses.shown, this.active)\n .toString();\n };\n Notifier.prototype.updateActionsVisibility = function (type) {\n var _this = this;\n this.actionBar.actions.forEach(function (action) { return action.visible = _this.showActions && (_this.actionsVisibility[action.id] === type); });\n };\n Notifier.prototype.notify = function (message, type, waitUserAction) {\n var _this = this;\n if (type === void 0) { type = \"info\"; }\n if (waitUserAction === void 0) { waitUserAction = false; }\n this.isDisplayed = true;\n setTimeout(function () {\n _this.updateActionsVisibility(type);\n _this.message = message;\n _this.active = true;\n _this.css = _this.getCssClass(type);\n if (!!_this.timer) {\n clearTimeout(_this.timer);\n _this.timer = undefined;\n }\n if (!waitUserAction) {\n _this.timer = setTimeout(function () {\n _this.timer = undefined;\n _this.active = false;\n _this.css = _this.getCssClass(type);\n }, _this.timeout);\n }\n }, 1);\n };\n Notifier.prototype.addAction = function (action, notificationType) {\n action.visible = false;\n action.innerCss = this.cssClasses.button;\n var res = this.actionBar.addAction(action);\n this.actionsVisibility[res.id] = notificationType;\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__[\"property\"])({ defaultValue: false })\n ], Notifier.prototype, \"active\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__[\"property\"])({ defaultValue: false })\n ], Notifier.prototype, \"isDisplayed\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__[\"property\"])()\n ], Notifier.prototype, \"message\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__[\"property\"])()\n ], Notifier.prototype, \"css\", void 0);\n return Notifier;\n}(_base__WEBPACK_IMPORTED_MODULE_0__[\"Base\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/page.ts\":\n/*!*********************!*\\\n !*** ./src/page.ts ***!\n \\*********************/\n/*! exports provided: PageModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PageModel\", function() { return PageModel; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _panel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./panel */ \"./src/panel.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _drag_drop_page_helper_v1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./drag-drop-page-helper-v1 */ \"./src/drag-drop-page-helper-v1.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n/**\n * The `PageModel` object describes a survey page and contains properties and methods that allow you to control the page and access its elements (panels and questions).\n *\n * [View Demo](https://surveyjs.io/form-library/examples/nps-question/ (linkStyle))\n */\nvar PageModel = /** @class */ (function (_super) {\n __extends(PageModel, _super);\n function PageModel(name) {\n if (name === void 0) { name = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.hasShownValue = false;\n /**\n * A time period that a respondent has spent on this page so far; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).\n * @see maxTimeToFinish\n */\n _this.timeSpent = 0;\n _this.locTitle.onGetTextCallback = function (text) {\n if (_this.canShowPageNumber() && text)\n return _this.num + \". \" + text;\n return text;\n };\n _this.createLocalizableString(\"navigationDescription\", _this, true);\n _this.dragDropPageHelper = new _drag_drop_page_helper_v1__WEBPACK_IMPORTED_MODULE_3__[\"DragDropPageHelperV1\"](_this);\n return _this;\n }\n PageModel.prototype.getType = function () {\n return \"page\";\n };\n PageModel.prototype.toString = function () {\n return this.name;\n };\n Object.defineProperty(PageModel.prototype, \"isPage\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n PageModel.prototype.canShowPageNumber = function () {\n return this.survey && this.survey.showPageNumbers;\n };\n PageModel.prototype.canShowTitle = function () {\n return this.survey && this.survey.showPageTitles;\n };\n Object.defineProperty(PageModel.prototype, \"navigationTitle\", {\n /**\n * A caption displayed on a navigation button in the TOC or progress bar. Applies when [`showTOC`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTOC) is `true` or when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `\"pages\"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.\n *\n * If navigation titles are unspecified, the navigation buttons display page [titles](https://surveyjs.io/form-library/documentation/api-reference/page-model#title) or [names](https://surveyjs.io/form-library/documentation/pagemodel#name).\n */\n get: function () {\n return this.getLocalizableStringText(\"navigationTitle\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"navigationTitle\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"navigationDescription\", {\n /**\n * Explanatory text displayed under a navigation button in the progress bar. Applies when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), `SurveyModel`'s [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `\"pages\"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.\n */\n get: function () {\n return this.getLocalizableStringText(\"navigationDescription\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"navigationDescription\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"locNavigationDescription\", {\n get: function () {\n return this.getLocalizableString(\"navigationDescription\");\n },\n enumerable: false,\n configurable: true\n });\n PageModel.prototype.navigationLocStrChanged = function () {\n if (this.locNavigationTitle.isEmpty) {\n this.locTitle.strChanged();\n }\n this.locNavigationTitle.strChanged();\n this.locNavigationDescription.strChanged();\n };\n Object.defineProperty(PageModel.prototype, \"passed\", {\n get: function () {\n return this.getPropertyValue(\"passed\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"passed\", val);\n },\n enumerable: false,\n configurable: true\n });\n PageModel.prototype.removeFromParent = function () {\n if (!!this.survey) {\n this.removeSelfFromList(this.survey.pages);\n }\n };\n PageModel.prototype.onFirstRendering = function () {\n if (this.wasShown)\n return;\n _super.prototype.onFirstRendering.call(this);\n };\n Object.defineProperty(PageModel.prototype, \"visibleIndex\", {\n /**\n * The visible index of the page. It has values from 0 to visible page count - 1.\n * @see SurveyModel.visiblePages\n * @see SurveyModel.pages\n */\n get: function () {\n return this.getPropertyValue(\"visibleIndex\", -1);\n },\n set: function (val) {\n this.setPropertyValue(\"visibleIndex\", val);\n },\n enumerable: false,\n configurable: true\n });\n PageModel.prototype.canRenderFirstRows = function () {\n return !this.isDesignMode || this.visibleIndex == 0;\n };\n Object.defineProperty(PageModel.prototype, \"isStartPage\", {\n /**\n * Returns `true` if this page is a start page.\n *\n * Refer to the following help topic for more information on how to configure a start page: [Start Page](https://surveyjs.io/form-library/documentation/design-survey-create-a-multi-page-survey#start-page).\n */\n get: function () {\n return this.survey && this.survey.isPageStarted(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"isStarted\", {\n get: function () { return this.isStartPage; },\n enumerable: false,\n configurable: true\n });\n PageModel.prototype.calcCssClasses = function (css) {\n var classes = { page: {}, error: {}, pageTitle: \"\", pageDescription: \"\", row: \"\", rowMultiple: \"\", pageRow: \"\", rowCompact: \"\", rowFadeIn: \"\", rowFadeOut: \"\", rowFadeOutActive: \"\" };\n this.copyCssClasses(classes.page, css.page);\n this.copyCssClasses(classes.error, css.error);\n if (!!css.pageTitle) {\n classes.pageTitle = css.pageTitle;\n }\n if (!!css.pageDescription) {\n classes.pageDescription = css.pageDescription;\n }\n if (!!css.row) {\n classes.row = css.row;\n }\n if (!!css.pageRow) {\n classes.pageRow = css.pageRow;\n }\n if (!!css.rowMultiple) {\n classes.rowMultiple = css.rowMultiple;\n }\n if (!!css.rowCompact) {\n classes.rowCompact = css.rowCompact;\n }\n if (!!css.rowFadeIn) {\n classes.rowFadeIn = css.rowFadeIn;\n }\n if (!!css.rowFadeOut) {\n classes.rowFadeOut = css.rowFadeOut;\n }\n if (!!css.rowFadeOutActive) {\n classes.rowFadeOutActive = css.rowFadeOutActive;\n }\n if (this.survey) {\n this.survey.updatePageCssClasses(this, classes);\n }\n return classes;\n };\n Object.defineProperty(PageModel.prototype, \"cssTitle\", {\n get: function () {\n if (!this.cssClasses.page)\n return \"\";\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__[\"CssClassBuilder\"]()\n .append(this.cssClasses.page.title)\n .toString();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"cssRoot\", {\n get: function () {\n if (!this.cssClasses.page || !this.survey)\n return \"\";\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__[\"CssClassBuilder\"]()\n .append(this.cssClasses.page.root)\n .append(this.cssClasses.page.emptyHeaderRoot, !this.survey.renderedHasHeader &&\n !(this.survey.isShowProgressBarOnTop && !this.survey.isStaring))\n .toString();\n },\n enumerable: false,\n configurable: true\n });\n PageModel.prototype.getCssError = function (cssClasses) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__[\"CssClassBuilder\"]()\n .append(_super.prototype.getCssError.call(this, cssClasses))\n .append(cssClasses.page.errorsContainer).toString();\n };\n Object.defineProperty(PageModel.prototype, \"navigationButtonsVisibility\", {\n /**\n * Set this property to \"hide\" to make \"Prev\", \"Next\" and \"Complete\" buttons are invisible for this page. Set this property to \"show\" to make these buttons visible, even if survey showNavigationButtons property is false.\n * @see SurveyMode.showNavigationButtons\n */\n get: function () {\n return this.getPropertyValue(\"navigationButtonsVisibility\");\n },\n set: function (val) {\n this.setPropertyValue(\"navigationButtonsVisibility\", val.toLowerCase());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"isActive\", {\n /**\n * Returns `true` if this is the current page.\n * @see SurveyModel.currentPage\n */\n get: function () {\n return !!this.survey && this.survey.currentPage === this;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"wasShown\", {\n /**\n * Returns `true` if the respondent has already seen this page during the current session.\n */\n get: function () {\n return this.hasShownValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PageModel.prototype, \"hasShown\", {\n get: function () {\n return this.wasShown;\n },\n enumerable: false,\n configurable: true\n });\n PageModel.prototype.setWasShown = function (val) {\n if (val == this.hasShownValue)\n return;\n this.hasShownValue = val;\n if (this.isDesignMode || val !== true)\n return;\n var els = this.elements;\n for (var i = 0; i < els.length; i++) {\n if (els[i].isPanel) {\n els[i].randomizeElements(this.areQuestionsRandomized);\n }\n }\n this.randomizeElements(this.areQuestionsRandomized);\n };\n /**\n * Scrolls this page to the top.\n */\n PageModel.prototype.scrollToTop = function () {\n if (!!this.survey) {\n this.survey.scrollElementToTop(this, null, this, this.id);\n }\n };\n // public get timeSpent(): number {\n // return this.getPropertyValue(\"timeSpent\", 0);\n // }\n // public set timeSpent(val: number) {\n // this.setPropertyValue(\"timeSpent\", val);\n // }\n /**\n * Returns a list of all panels on this page.\n * @param visibleOnly A Boolean value that specifies whether to include only visible panels.\n * @param includingDesignTime For internal use.\n */\n PageModel.prototype.getAllPanels = function (visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n var result = new Array();\n this.addPanelsIntoList(result, visibleOnly, includingDesignTime);\n return result;\n };\n PageModel.prototype.getPanels = function (visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n return this.getAllPanels(visibleOnly, includingDesignTime);\n };\n Object.defineProperty(PageModel.prototype, \"maxTimeToFinish\", {\n /**\n * A time period that a respondent has to complete this page; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).\n *\n * A negative value or 0 sets an unlimited time period.\n *\n * Alternatively, you can use the `SurveyModel`'s [`maxTimeToFinishPage`](https://surveyjs.io/form-library/documentation/surveymodel#maxTimeToFinishPage) property to specify identical time periods for all survey pages.\n * @see timeSpent\n */\n get: function () {\n return this.getPropertyValue(\"maxTimeToFinish\", 0);\n },\n set: function (val) {\n this.setPropertyValue(\"maxTimeToFinish\", val);\n },\n enumerable: false,\n configurable: true\n });\n PageModel.prototype.onNumChanged = function (value) { };\n PageModel.prototype.onVisibleChanged = function () {\n if (this.isRandomizing)\n return;\n _super.prototype.onVisibleChanged.call(this);\n if (this.survey != null) {\n this.survey.pageVisibilityChanged(this, this.isVisible);\n }\n };\n PageModel.prototype.getDragDropInfo = function () { return this.dragDropPageHelper.getDragDropInfo(); };\n PageModel.prototype.dragDropStart = function (src, target, nestedPanelDepth) {\n if (nestedPanelDepth === void 0) { nestedPanelDepth = -1; }\n this.dragDropPageHelper.dragDropStart(src, target, nestedPanelDepth);\n };\n PageModel.prototype.dragDropMoveTo = function (destination, isBottom, isEdge) {\n if (isBottom === void 0) { isBottom = false; }\n if (isEdge === void 0) { isEdge = false; }\n return this.dragDropPageHelper.dragDropMoveTo(destination, isBottom, isEdge);\n };\n PageModel.prototype.dragDropFinish = function (isCancel) {\n if (isCancel === void 0) { isCancel = false; }\n return this.dragDropPageHelper.dragDropFinish(isCancel);\n };\n PageModel.prototype.ensureRowsVisibility = function () {\n _super.prototype.ensureRowsVisibility.call(this);\n this.getPanels().forEach(function (panel) { return panel.ensureRowsVisibility(); });\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: -1, onSet: function (val, target) { return target.onNumChanged(val); } })\n ], PageModel.prototype, \"num\", void 0);\n return PageModel;\n}(_panel__WEBPACK_IMPORTED_MODULE_1__[\"PanelModelBase\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"page\", [\n {\n name: \"navigationButtonsVisibility\",\n default: \"inherit\",\n choices: [\"inherit\", \"show\", \"hide\"],\n },\n { name: \"maxTimeToFinish:number\", default: 0, minValue: 0 },\n {\n name: \"navigationTitle\",\n visibleIf: function (obj) {\n return !!obj.survey && (obj.survey.progressBarType === \"buttons\" || obj.survey.showTOC);\n },\n serializationProperty: \"locNavigationTitle\",\n },\n {\n name: \"navigationDescription\",\n visibleIf: function (obj) {\n return !!obj.survey && obj.survey.progressBarType === \"buttons\";\n },\n serializationProperty: \"locNavigationDescription\",\n },\n { name: \"title:text\", serializationProperty: \"locTitle\" },\n { name: \"description:text\", serializationProperty: \"locDescription\" },\n], function () {\n return new PageModel();\n}, \"panelbase\");\n\n\n/***/ }),\n\n/***/ \"./src/panel.ts\":\n/*!**********************!*\\\n !*** ./src/panel.ts ***!\n \\**********************/\n/*! exports provided: QuestionRowModel, PanelModelBase, PanelModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionRowModel\", function() { return QuestionRowModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PanelModelBase\", function() { return PanelModelBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PanelModel\", function() { return PanelModel; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ \"./src/helpers.ts\");\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base */ \"./src/base.ts\");\n/* harmony import */ var _survey_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./survey-element */ \"./src/survey-element.ts\");\n/* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./question */ \"./src/question.ts\");\n/* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./questionfactory */ \"./src/questionfactory.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./error */ \"./src/error.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _drag_drop_panel_helper_v1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./drag-drop-panel-helper-v1 */ \"./src/drag-drop-panel-helper-v1.ts\");\n/* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/animation */ \"./src/utils/animation.ts\");\n/* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./global_variables_utils */ \"./src/global_variables_utils.ts\");\n/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./page */ \"./src/page.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar QuestionRowModel = /** @class */ (function (_super) {\n __extends(QuestionRowModel, _super);\n function QuestionRowModel(panel) {\n var _this = _super.call(this) || this;\n _this.panel = panel;\n _this._scrollableParent = undefined;\n _this._updateVisibility = undefined;\n _this.visibleElementsAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_11__[\"AnimationGroup\"](_this.getVisibleElementsAnimationOptions(), function (value) {\n _this.setPropertyValue(\"visibleElements\", value);\n _this.setWidth();\n }, function () { return _this.visibleElements; });\n _this.idValue = QuestionRowModel.getRowId();\n _this.visible = panel.areInvisibleElementsShowing;\n _this.createNewArray(\"elements\");\n _this.createNewArray(\"visibleElements\");\n return _this;\n }\n QuestionRowModel.getRowId = function () {\n return \"pr_\" + QuestionRowModel.rowCounter++;\n };\n QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {\n var _this = this;\n if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__[\"findScrollableParent\"]; }\n if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_12__[\"DomDocumentHelper\"].isAvailable())\n return;\n this._scrollableParent = findScrollableContainer(rowContainerDiv);\n // if this._scrollableParent is html the scroll event isn't fired, so we should use window\n if (this._scrollableParent === _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__[\"DomDocumentHelper\"].getDocumentElement()) {\n this._scrollableParent = _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__[\"DomWindowHelper\"].getWindow();\n }\n var hasScroll = this._scrollableParent.scrollHeight > this._scrollableParent.clientHeight;\n this.isNeedRender = !hasScroll;\n if (hasScroll) {\n this._updateVisibility = function () {\n var isRowContainerDivVisible = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__[\"isElementVisible\"])(rowContainerDiv, 50);\n if (!_this.isNeedRender && isRowContainerDivVisible) {\n _this.isNeedRender = true;\n _this.stopLazyRendering();\n }\n };\n setTimeout(function () {\n if (!!_this._scrollableParent &&\n !!_this._scrollableParent.addEventListener) {\n _this._scrollableParent.addEventListener(\"scroll\", _this._updateVisibility);\n }\n _this.ensureVisibility();\n }, 10);\n }\n };\n QuestionRowModel.prototype.ensureVisibility = function () {\n if (!!this._updateVisibility) {\n this._updateVisibility();\n }\n };\n QuestionRowModel.prototype.stopLazyRendering = function () {\n if (!!this._scrollableParent &&\n !!this._updateVisibility &&\n !!this._scrollableParent.removeEventListener) {\n this._scrollableParent.removeEventListener(\"scroll\", this._updateVisibility);\n }\n this._scrollableParent = undefined;\n this._updateVisibility = undefined;\n };\n QuestionRowModel.prototype.setIsLazyRendering = function (val) {\n this.isLazyRenderingValue = val;\n this.isNeedRender = !val;\n };\n QuestionRowModel.prototype.isLazyRendering = function () {\n return this.isLazyRenderingValue === true;\n };\n Object.defineProperty(QuestionRowModel.prototype, \"id\", {\n get: function () {\n return this.idValue;\n },\n enumerable: false,\n configurable: true\n });\n QuestionRowModel.prototype.equalsCore = function (obj) {\n return this == obj;\n };\n Object.defineProperty(QuestionRowModel.prototype, \"elements\", {\n get: function () {\n return this.getPropertyValue(\"elements\");\n },\n enumerable: false,\n configurable: true\n });\n QuestionRowModel.prototype.getIsAnimationAllowed = function () {\n var _a;\n return _super.prototype.getIsAnimationAllowed.call(this) && this.visible && ((_a = this.panel) === null || _a === void 0 ? void 0 : _a.animationAllowed);\n };\n QuestionRowModel.prototype.getVisibleElementsAnimationOptions = function () {\n var _this = this;\n var beforeRunAnimation = function (el) {\n el.style.setProperty(\"--animation-height\", el.offsetHeight + \"px\");\n el.style.setProperty(\"--animation-width\", Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__[\"getElementWidth\"])(el) + \"px\");\n };\n return {\n isAnimationEnabled: function () { return _this.animationAllowed; },\n getAnimatedElement: function (element) { return element.getWrapperElement(); },\n getLeaveOptions: function (element) {\n var surveyElement = element;\n var cssClasses = element.isPanel ? surveyElement.cssClasses.panel : surveyElement.cssClasses;\n return {\n cssClass: cssClasses.fadeOut,\n onBeforeRunAnimation: beforeRunAnimation\n };\n },\n getEnterOptions: function (element) {\n var surveyElement = element;\n var cssClasses = element.isPanel ? surveyElement.cssClasses.panel : surveyElement.cssClasses;\n return {\n cssClass: cssClasses.fadeIn,\n onBeforeRunAnimation: beforeRunAnimation\n };\n }\n };\n };\n Object.defineProperty(QuestionRowModel.prototype, \"visibleElements\", {\n get: function () {\n return this.getPropertyValue(\"visibleElements\");\n },\n set: function (val) {\n if (!val.length) {\n this.visible = false;\n this.visibleElementsAnimation.cancel();\n return;\n }\n else {\n this.visible = true;\n }\n this.visibleElementsAnimation.sync(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionRowModel.prototype, \"visible\", {\n get: function () {\n return this.getPropertyValue(\"visible\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"visible\", val);\n this.onVisibleChangedCallback && this.onVisibleChangedCallback();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionRowModel.prototype, \"isNeedRender\", {\n get: function () {\n return this.getPropertyValue(\"isneedrender\", true);\n },\n set: function (val) {\n this.setPropertyValue(\"isneedrender\", val);\n },\n enumerable: false,\n configurable: true\n });\n QuestionRowModel.prototype.updateVisible = function () {\n var visElements = [];\n for (var i = 0; i < this.elements.length; i++) {\n if (this.elements[i].isVisible) {\n visElements.push(this.elements[i]);\n }\n }\n this.visibleElements = visElements;\n return;\n };\n QuestionRowModel.prototype.addElement = function (q) {\n this.elements.push(q);\n this.updateVisible();\n };\n Object.defineProperty(QuestionRowModel.prototype, \"index\", {\n get: function () {\n return this.panel.rows.indexOf(this);\n },\n enumerable: false,\n configurable: true\n });\n QuestionRowModel.prototype.setWidth = function () {\n var _a;\n var visCount = this.visibleElements.length;\n if (visCount == 0)\n return;\n var isSingleInRow = this.visibleElements.length === 1;\n var counter = 0;\n var preSetWidthElements = [];\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n if (el.isVisible) {\n el.isSingleInRow = isSingleInRow;\n var width = this.getElementWidth(el);\n if (!!width) {\n el.renderWidth = this.getRenderedWidthFromWidth(width);\n preSetWidthElements.push(el);\n }\n if (counter < visCount - 1 && !(this.panel.isDefaultV2Theme || ((_a = this.panel.parentQuestion) === null || _a === void 0 ? void 0 : _a.isDefaultV2Theme))) {\n el.rightIndent = 1;\n }\n else {\n el.rightIndent = 0;\n }\n counter++;\n }\n else {\n el.renderWidth = \"\";\n }\n }\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n if (!el.isVisible || preSetWidthElements.indexOf(el) > -1)\n continue;\n if (preSetWidthElements.length == 0) {\n el.renderWidth = Number.parseFloat((100 / visCount).toFixed(6)) + \"%\";\n }\n else {\n el.renderWidth = this.getRenderedCalcWidth(el, preSetWidthElements, visCount);\n }\n }\n };\n QuestionRowModel.prototype.getRenderedCalcWidth = function (el, preSetWidthElements, visCount) {\n var expression = \"100%\";\n for (var i = 0; i < preSetWidthElements.length; i++) {\n expression += \" - \" + preSetWidthElements[i].renderWidth;\n }\n var calcWidthEl = visCount - preSetWidthElements.length;\n if (calcWidthEl > 1) {\n expression = \"(\" + expression + \")/\" + calcWidthEl.toString();\n }\n return \"calc(\" + expression + \")\";\n };\n QuestionRowModel.prototype.getElementWidth = function (el) {\n var width = el.width;\n if (!width || typeof width !== \"string\")\n return \"\";\n return width.trim();\n };\n QuestionRowModel.prototype.getRenderedWidthFromWidth = function (width) {\n return _helpers__WEBPACK_IMPORTED_MODULE_1__[\"Helpers\"].isNumber(width) ? width + \"px\" : width;\n };\n QuestionRowModel.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this.stopLazyRendering();\n };\n QuestionRowModel.prototype.getRowCss = function () {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__[\"CssClassBuilder\"]()\n .append(this.panel.cssClasses.row)\n .append(this.panel.cssClasses.rowCompact, this.panel[\"isCompact\"])\n .append(this.panel.cssClasses.pageRow, this.panel.isPage || this.panel.showPanelAsPage)\n .append(this.panel.cssClasses.rowMultiple, this.visibleElements.length > 1)\n .toString();\n };\n QuestionRowModel.prototype.setRootElement = function (element) {\n this.rootElement = element;\n };\n QuestionRowModel.prototype.getRootElement = function () {\n return this.rootElement;\n };\n QuestionRowModel.rowCounter = 100;\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: null })\n ], QuestionRowModel.prototype, \"dragTypeOverMe\", void 0);\n return QuestionRowModel;\n}(_base__WEBPACK_IMPORTED_MODULE_2__[\"Base\"]));\n\n/**\n * A base class for the [PanelModel](https://surveyjs.io/form-library/documentation/panelmodel) and [PageModel](https://surveyjs.io/form-library/documentation/pagemodel) classes.\n */\nvar PanelModelBase = /** @class */ (function (_super) {\n __extends(PanelModelBase, _super);\n function PanelModelBase(name) {\n if (name === void 0) { name = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.isQuestionsReady = false;\n _this.questionsValue = new Array();\n _this.rowsAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_11__[\"AnimationGroup\"](_this.getRowsAnimationOptions(), function (value) {\n _this.setPropertyValue(\"visibleRows\", value);\n }, function () { return _this.visibleRows; });\n _this.isRandomizing = false;\n _this.locCountRowUpdates = 0;\n _this.createNewArray(\"rows\", function (el, index) { _this.onAddRow(el); }, function (el) { _this.onRemoveRow(el); });\n _this.createNewArray(\"visibleRows\");\n _this.elementsValue = _this.createNewArray(\"elements\", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));\n _this.id = PanelModelBase.getPanelId();\n _this.addExpressionProperty(\"visibleIf\", function (obj, res) { _this.visible = res === true; }, function (obj) { return !_this.areInvisibleElementsShowing; });\n _this.addExpressionProperty(\"enableIf\", function (obj, res) { _this.readOnly = res === false; });\n _this.addExpressionProperty(\"requiredIf\", function (obj, res) { _this.isRequired = res === true; });\n _this.createLocalizableString(\"requiredErrorText\", _this);\n _this.createLocalizableString(\"navigationTitle\", _this, true).onGetTextCallback = function (text) {\n return text || _this.title || _this.name;\n };\n _this.registerPropertyChangedHandlers([\"questionTitleLocation\"], function () {\n _this.onVisibleChanged.bind(_this);\n _this.updateElementCss(true);\n });\n _this.registerPropertyChangedHandlers([\"questionStartIndex\", \"showQuestionNumbers\"], function () {\n _this.updateVisibleIndexes();\n });\n _this.dragDropPanelHelper = new _drag_drop_panel_helper_v1__WEBPACK_IMPORTED_MODULE_10__[\"DragDropPanelHelperV1\"](_this);\n return _this;\n }\n PanelModelBase.getPanelId = function () {\n return \"sp_\" + PanelModelBase.panelCounter++;\n };\n PanelModelBase.prototype.onAddRow = function (row) {\n var _this = this;\n this.onRowVisibleChanged();\n row.onVisibleChangedCallback = function () { return _this.onRowVisibleChanged(); };\n };\n PanelModelBase.prototype.getRowsAnimationOptions = function () {\n var _this = this;\n var beforeRunAnimation = function (el) {\n el.style.setProperty(\"--animation-height\", el.offsetHeight + \"px\");\n };\n return {\n isAnimationEnabled: function () { return _this.animationAllowed; },\n getAnimatedElement: function (row) { return row.getRootElement(); },\n getLeaveOptions: function (_) {\n return { cssClass: _this.cssClasses.rowFadeOut,\n onBeforeRunAnimation: beforeRunAnimation\n };\n },\n getEnterOptions: function (_) {\n return {\n cssClass: _this.cssClasses.rowFadeIn,\n onBeforeRunAnimation: beforeRunAnimation\n };\n }\n };\n };\n Object.defineProperty(PanelModelBase.prototype, \"visibleRows\", {\n get: function () {\n return this.getPropertyValue(\"visibleRows\");\n },\n set: function (val) {\n this.rowsAnimation.sync(val);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.onRemoveRow = function (row) {\n row.visibleElementsAnimation.cancel();\n this.visibleRows = this.rows.filter(function (row) { return row.visible; });\n row.onVisibleChangedCallback = undefined;\n };\n PanelModelBase.prototype.onRowVisibleChanged = function () {\n this.visibleRows = this.rows.filter(function (row) { return row.visible; });\n };\n PanelModelBase.prototype.getType = function () {\n return \"panelbase\";\n };\n PanelModelBase.prototype.setSurveyImpl = function (value, isLight) {\n this.blockAnimations();\n _super.prototype.setSurveyImpl.call(this, value, isLight);\n if (this.isDesignMode)\n this.onVisibleChanged();\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].setSurveyImpl(value, isLight);\n }\n this.releaseAnimations();\n };\n PanelModelBase.prototype.endLoadingFromJson = function () {\n _super.prototype.endLoadingFromJson.call(this);\n this.updateDescriptionVisibility(this.description);\n this.markQuestionListDirty();\n this.onRowsChanged();\n };\n Object.defineProperty(PanelModelBase.prototype, \"hasTitle\", {\n get: function () {\n return ((this.canShowTitle() && this.locTitle.textOrHtml.length > 0) ||\n (this.isDesignMode && (this.showTitle && _settings__WEBPACK_IMPORTED_MODULE_7__[\"settings\"].designMode.showEmptyTitles)));\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.delete = function (doDispose) {\n if (doDispose === void 0) { doDispose = true; }\n this.removeFromParent();\n if (doDispose) {\n this.dispose();\n }\n };\n PanelModelBase.prototype.removeFromParent = function () { };\n PanelModelBase.prototype.canShowTitle = function () { return true; };\n Object.defineProperty(PanelModelBase.prototype, \"_showDescription\", {\n get: function () {\n if (!this.hasTitle && this.isDesignMode)\n return false;\n return this.survey && this.survey.showPageTitles && this.hasDescription ||\n (this.showDescription && this.isDesignMode &&\n _settings__WEBPACK_IMPORTED_MODULE_7__[\"settings\"].designMode.showEmptyDescriptions);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.localeChanged = function () {\n _super.prototype.localeChanged.call(this);\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].localeChanged();\n }\n };\n PanelModelBase.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].locStrsChanged();\n }\n };\n PanelModelBase.prototype.getMarkdownHtml = function (text, name) {\n if (name === \"navigationTitle\" && this.locNavigationTitle.isEmpty) {\n return this.locTitle.renderedHtml || this.name;\n }\n return _super.prototype.getMarkdownHtml.call(this, text, name);\n };\n Object.defineProperty(PanelModelBase.prototype, \"locNavigationTitle\", {\n get: function () {\n return this.getLocalizableString(\"navigationTitle\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"renderedNavigationTitle\", {\n get: function () {\n return this.locNavigationTitle.renderedHtml;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"requiredText\", {\n /**\n * Returns a character or text string that indicates a required panel/page.\n * @see SurveyModel.requiredText\n * @see isRequired\n */\n get: function () {\n return !!this.survey && this.isRequired\n ? this.survey.requiredText\n : \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"titlePattern\", {\n get: function () {\n return !!this.survey ? this.survey.questionTitlePattern : \"numTitleRequire\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"isRequireTextOnStart\", {\n get: function () {\n return this.isRequired && this.titlePattern == \"requireNumTitle\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"isRequireTextBeforeTitle\", {\n get: function () {\n return this.isRequired && this.titlePattern == \"numRequireTitle\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"isRequireTextAfterTitle\", {\n get: function () {\n return this.isRequired && this.titlePattern == \"numTitleRequire\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"requiredErrorText\", {\n /**\n * Specifies a custom error message for a required panel/page.\n * @see isRequired\n * @see requiredIf\n */\n get: function () {\n return this.getLocalizableStringText(\"requiredErrorText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"requiredErrorText\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"locRequiredErrorText\", {\n get: function () {\n return this.getLocalizableString(\"requiredErrorText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"questionsOrder\", {\n /**\n * Specifies the sort order of questions in the panel/page.\n *\n * Possible values:\n *\n * - `\"initial\"` - Preserves the original order of questions.\n * - `\"random\"` - Displays questions in random order.\n * - `\"default\"` (default) - Inherits the setting from the Survey's `questionsOrder` property.\n * @see SurveyModel.questionsOrder\n * @see areQuestionsRandomized\n */\n get: function () {\n return this.getPropertyValue(\"questionsOrder\");\n },\n set: function (val) {\n this.setPropertyValue(\"questionsOrder\", val);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.canRandomize = function (isRandom) {\n return isRandom && (this.questionsOrder !== \"initial\") || this.questionsOrder === \"random\";\n };\n PanelModelBase.prototype.randomizeElements = function (isRandom) {\n if (!this.canRandomize(isRandom) || this.isRandomizing)\n return;\n this.isRandomizing = true;\n var oldElements = [];\n var elements = this.elements;\n for (var i = 0; i < elements.length; i++) {\n oldElements.push(elements[i]);\n }\n var newElements = _helpers__WEBPACK_IMPORTED_MODULE_1__[\"Helpers\"].randomizeArray(oldElements);\n this.setArrayPropertyDirectly(\"elements\", newElements, false);\n this.updateRows();\n this.updateVisibleIndexes();\n this.isRandomizing = false;\n };\n Object.defineProperty(PanelModelBase.prototype, \"areQuestionsRandomized\", {\n /**\n * Returns `true` if elements in this panel/page are arranged in random order.\n * @see questionsOrder\n */\n get: function () {\n var order = this.questionsOrder == \"default\" && this.survey\n ? this.survey.questionsOrder\n : this.questionsOrder;\n return order == \"random\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"parent\", {\n /**\n * Returns a survey element (panel or page) that contains this panel and allows you to move this question to a different survey element.\n *\n * This property is always `null` for the `PageModel` object.\n */\n get: function () {\n return this.getPropertyValue(\"parent\", null);\n },\n set: function (val) {\n this.setPropertyValue(\"parent\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"depth\", {\n get: function () {\n if (this.parent == null)\n return 0;\n return this.parent.depth + 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"visibleIf\", {\n /**\n * A Boolean expression. If it evaluates to `false`, this panel/page becomes hidden.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see visible\n * @see isVisible\n */\n get: function () {\n return this.getPropertyValue(\"visibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"visibleIf\", val);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.calcCssClasses = function (css) {\n var classes = { panel: {}, error: {}, row: \"\", rowFadeIn: \"\", rowFadeOut: \"\", rowFadeOutActive: \"\", rowMultiple: \"\", pageRow: \"\", rowCompact: \"\" };\n this.copyCssClasses(classes.panel, css.panel);\n this.copyCssClasses(classes.error, css.error);\n if (!!css.pageRow) {\n classes.pageRow = css.pageRow;\n }\n if (!!css.rowCompact) {\n classes.rowCompact = css.rowCompact;\n }\n if (!!css.row) {\n classes.row = css.row;\n }\n if (!!css.rowFadeIn) {\n classes.rowFadeIn = css.rowFadeIn;\n }\n if (!!css.rowFadeOut) {\n classes.rowFadeOut = css.rowFadeOut;\n }\n if (!!css.rowFadeOutActive) {\n classes.rowFadeOutActive = css.rowFadeOutActive;\n }\n if (!!css.rowMultiple) {\n classes.rowMultiple = css.rowMultiple;\n }\n if (this.survey) {\n this.survey.updatePanelCssClasses(this, classes);\n }\n return classes;\n };\n Object.defineProperty(PanelModelBase.prototype, \"id\", {\n /**\n * An auto-generated unique element identifier.\n */\n get: function () {\n return this.getPropertyValue(\"id\");\n },\n set: function (val) {\n this.setPropertyValue(\"id\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"isPanel\", {\n /**\n * Returns `true` if the survey element is a panel.\n * @see Base.getType\n */\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.getPanel = function () {\n return this;\n };\n PanelModelBase.prototype.getLayoutType = function () {\n return \"row\";\n };\n PanelModelBase.prototype.isLayoutTypeSupported = function (layoutType) {\n return layoutType !== \"flow\";\n };\n Object.defineProperty(PanelModelBase.prototype, \"questions\", {\n /**\n * An array of all questions within this panel/page. Includes questions within nested panels.\n * @see elements\n */\n get: function () {\n if (!this.isQuestionsReady) {\n this.questionsValue = [];\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n if (el.isPanel) {\n var qs = el.questions;\n for (var j = 0; j < qs.length; j++) {\n this.questionsValue.push(qs[j]);\n }\n }\n else {\n this.questionsValue.push(el);\n }\n }\n this.isQuestionsReady = true;\n }\n return this.questionsValue;\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.getQuestions = function (includeNested) {\n var res = this.questions;\n if (!includeNested)\n return res;\n var res2 = [];\n res.forEach(function (q) {\n res2.push(q);\n q.getNestedQuestions().forEach(function (nQ) { return res2.push(nQ); });\n });\n return res2;\n };\n PanelModelBase.prototype.getValidName = function (name) {\n if (!!name)\n return name.trim();\n return name;\n };\n /**\n * Returns a question with a specified `name`. This method does not find questions within nested panels.\n * @param name A question name.\n */\n PanelModelBase.prototype.getQuestionByName = function (name) {\n var questions = this.questions;\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].name == name)\n return questions[i];\n }\n return null;\n };\n /**\n * Returns a survey element with a specified `name`. This method can find survey elements within nested elements.\n * @param name An element name.\n */\n PanelModelBase.prototype.getElementByName = function (name) {\n var elements = this.elements;\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n if (el.name == name)\n return el;\n var pnl = el.getPanel();\n if (!!pnl) {\n var res = pnl.getElementByName(name);\n if (!!res)\n return res;\n }\n }\n return null;\n };\n PanelModelBase.prototype.getQuestionByValueName = function (valueName) {\n var questions = this.questions;\n for (var i = 0; i < questions.length; i++) {\n if (questions[i].getValueName() == valueName)\n return questions[i];\n }\n return null;\n };\n /**\n * Returns a JSON object with question values nested in the panel/page.\n * @see getDisplayValue\n */\n PanelModelBase.prototype.getValue = function () {\n var data = {};\n this.collectValues(data, 0);\n return data;\n };\n PanelModelBase.prototype.collectValues = function (data, level) {\n var elements = this.elements;\n if (level === 0) {\n elements = this.questions;\n }\n var hasValue = false;\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n if (el.isPanel || el.isPage) {\n var panelData = {};\n if (el.collectValues(panelData, level - 1)) {\n data[el.name] = panelData;\n hasValue = true;\n }\n }\n else {\n var q = el;\n if (!q.isEmpty()) {\n var valueName = q.getValueName();\n data[valueName] = q.value;\n if (!!this.data) {\n var comment = this.data.getComment(valueName);\n if (!!comment) {\n data[valueName + _base__WEBPACK_IMPORTED_MODULE_2__[\"Base\"].commentSuffix] = comment;\n }\n }\n }\n hasValue = true;\n }\n }\n return true;\n };\n /**\n * Returns a JSON object with display texts that correspond to question values nested in the panel/page.\n * @param keysAsText Pass `true` if not only values in the object should be display texts, but also keys. Default value: `false`.\n * @see getValue\n */\n PanelModelBase.prototype.getDisplayValue = function (keysAsText) {\n var data = {};\n var questions = this.questions;\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n if (q.isEmpty())\n continue;\n var valueName = keysAsText ? q.title : q.getValueName();\n data[valueName] = q.getDisplayValue(keysAsText);\n }\n return data;\n };\n /**\n * Returns a JSON object with comments left to questions within this panel/page. Question names are used as keys.\n */\n PanelModelBase.prototype.getComments = function () {\n var comments = {};\n if (!this.data)\n return comments;\n var questions = this.questions;\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n var comment = this.data.getComment(q.getValueName());\n if (!!comment) {\n comments[q.getValueName()] = comment;\n }\n }\n return comments;\n };\n /**\n * Removes values that cannot be assigned to nested questions, for example, choices unlisted in the `choices` array.\n *\n * Call this method after you assign new question values in code to ensure that they are acceptable.\n *\n * > This method does not remove values for invisible questions and values that fail validation. Call the `validate()` method to validate newly assigned values.\n *\n * @see validate\n */\n PanelModelBase.prototype.clearIncorrectValues = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].clearIncorrectValues();\n }\n };\n /**\n * Empties the `errors` array for this panel/page and all its child elements (panels and questions).\n * @see errors\n */\n PanelModelBase.prototype.clearErrors = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].clearErrors();\n }\n this.errors = [];\n };\n PanelModelBase.prototype.markQuestionListDirty = function () {\n this.isQuestionsReady = false;\n if (this.parent)\n this.parent.markQuestionListDirty();\n };\n Object.defineProperty(PanelModelBase.prototype, \"elements\", {\n /**\n * An array of all survey elements (questions or panels) within this panel/page. Does not include questions within nested panels.\n * @see questions\n */\n get: function () {\n return this.elementsValue;\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.getElementsInDesign = function (includeHidden) {\n if (includeHidden === void 0) { includeHidden = false; }\n return this.elements;\n };\n /**\n * Checks whether a given element belongs to this panel/page or nested panels.\n * @param element A survey element to check.\n */\n PanelModelBase.prototype.containsElement = function (element) {\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n if (el == element)\n return true;\n var pnl = el.getPanel();\n if (!!pnl) {\n if (pnl.containsElement(element))\n return true;\n }\n }\n return false;\n };\n Object.defineProperty(PanelModelBase.prototype, \"isRequired\", {\n /**\n * Makes the panel/page require an answer at least in one nested question. If a respondent leaves the panel/page without any answers, the survey displays a validation error.\n * @see requiredIf\n * @see [Data Validation](https://surveyjs.io/form-library/documentation/data-validation)\n */\n get: function () {\n return this.getPropertyValue(\"isRequired\");\n },\n set: function (val) {\n this.setPropertyValue(\"isRequired\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"requiredIf\", {\n /**\n * A Boolean expression. If it evaluates to `true`, this panel/page becomes required (at least one question in the panel/page should have an answer).\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see isRequired\n */\n get: function () {\n return this.getPropertyValue(\"requiredIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"requiredIf\", val);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.searchText = function (text, founded) {\n _super.prototype.searchText.call(this, text, founded);\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].searchText(text, founded);\n }\n };\n PanelModelBase.prototype.hasErrors = function (fireCallback, focusOnFirstError, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (focusOnFirstError === void 0) { focusOnFirstError = false; }\n if (rec === void 0) { rec = null; }\n return !this.validate(fireCallback, focusOnFirstError, rec);\n };\n /**\n * Validates questions within this panel or page and returns `false` if the validation fails.\n * @param fireCallback *(Optional)* Pass `false` if you do not want to show validation errors in the UI.\n * @param focusOnFirstError *(Optional)* Pass `true` if you want to focus the first question with a validation error.\n * @see [Data Validation](https://surveyjs.io/form-library/documentation/data-validation)\n */\n PanelModelBase.prototype.validate = function (fireCallback, focusOnFirstError, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (focusOnFirstError === void 0) { focusOnFirstError = false; }\n if (rec === void 0) { rec = null; }\n rec = !!rec\n ? rec\n : {\n fireCallback: fireCallback,\n focuseOnFirstError: focusOnFirstError,\n firstErrorQuestion: null,\n result: false,\n };\n if (rec.result !== true)\n rec.result = false;\n this.hasErrorsCore(rec);\n if (rec.focuseOnFirstError && rec.firstErrorQuestion) {\n rec.firstErrorQuestion.focus(true);\n }\n return !rec.result;\n };\n PanelModelBase.prototype.validateContainerOnly = function () {\n this.hasErrorsInPanels({ fireCallback: true });\n if (!!this.parent) {\n this.parent.validateContainerOnly();\n }\n };\n PanelModelBase.prototype.hasErrorsInPanels = function (rec) {\n var errors = [];\n this.hasRequiredError(rec, errors);\n if (this.survey) {\n var customError = this.survey.validatePanel(this);\n if (customError) {\n errors.push(customError);\n rec.result = true;\n }\n }\n if (!!rec.fireCallback) {\n if (!!this.survey) {\n this.survey.beforeSettingPanelErrors(this, errors);\n }\n this.errors = errors;\n }\n };\n //ISurveyErrorOwner\n PanelModelBase.prototype.getErrorCustomText = function (text, error) {\n if (!!this.survey)\n return this.survey.getSurveyErrorCustomText(this, text, error);\n return text;\n };\n PanelModelBase.prototype.hasRequiredError = function (rec, errors) {\n if (!this.isRequired)\n return;\n var visQuestions = [];\n this.addQuestionsToList(visQuestions, true);\n if (visQuestions.length == 0)\n return;\n for (var i = 0; i < visQuestions.length; i++) {\n if (!visQuestions[i].isEmpty())\n return;\n }\n rec.result = true;\n errors.push(new _error__WEBPACK_IMPORTED_MODULE_6__[\"OneAnswerRequiredError\"](this.requiredErrorText, this));\n if (rec.focuseOnFirstError && !rec.firstErrorQuestion) {\n rec.firstErrorQuestion = visQuestions[0];\n }\n };\n PanelModelBase.prototype.hasErrorsCore = function (rec) {\n var elements = this.elements;\n var element = null;\n for (var i = 0; i < elements.length; i++) {\n element = elements[i];\n if (!element.isVisible)\n continue;\n if (element.isPanel) {\n element.hasErrorsCore(rec);\n }\n else {\n var question = element;\n if (!question.validate(rec.fireCallback, rec)) {\n if (rec.focuseOnFirstError && rec.firstErrorQuestion == null) {\n rec.firstErrorQuestion = question;\n }\n rec.result = true;\n }\n }\n }\n this.hasErrorsInPanels(rec);\n this.updateContainsErrors();\n };\n PanelModelBase.prototype.getContainsErrors = function () {\n var res = _super.prototype.getContainsErrors.call(this);\n if (res)\n return res;\n var elements = this.elements;\n for (var i = 0; i < elements.length; i++) {\n if (elements[i].containsErrors)\n return true;\n }\n return false;\n };\n PanelModelBase.prototype.updateElementVisibility = function () {\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n el.setPropertyValue(\"isVisible\", el.isVisible);\n if (el.isPanel) {\n el.updateElementVisibility();\n }\n }\n };\n PanelModelBase.prototype.getFirstQuestionToFocus = function (withError, ignoreCollapseState) {\n if (withError === void 0) { withError = false; }\n if (ignoreCollapseState === void 0) { ignoreCollapseState = false; }\n if (!withError && !ignoreCollapseState && this.isCollapsed)\n return null;\n var elements = this.elements;\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n if (!el.isVisible || !ignoreCollapseState && el.isCollapsed)\n continue;\n if (el.isPanel) {\n var res = el.getFirstQuestionToFocus(withError, ignoreCollapseState);\n if (!!res)\n return res;\n }\n else {\n var q = el.getFirstQuestionToFocus(withError);\n if (!!q)\n return q;\n }\n }\n return null;\n };\n /**\n * Focuses the first question in this panel/page.\n * @see focusFirstErrorQuestion\n */\n PanelModelBase.prototype.focusFirstQuestion = function () {\n var q = this.getFirstQuestionToFocus();\n if (!!q) {\n q.focus();\n }\n };\n /**\n * Focuses the first question with a validation error in this panel/page.\n * @see validate\n * @see focusFirstQuestion\n */\n PanelModelBase.prototype.focusFirstErrorQuestion = function () {\n var q = this.getFirstQuestionToFocus(true);\n if (!!q) {\n q.focus();\n }\n };\n PanelModelBase.prototype.addQuestionsToList = function (list, visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n this.addElementsToList(list, visibleOnly, includingDesignTime, false);\n };\n PanelModelBase.prototype.addPanelsIntoList = function (list, visibleOnly, includingDesignTime) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (includingDesignTime === void 0) { includingDesignTime = false; }\n this.addElementsToList(list, visibleOnly, includingDesignTime, true);\n };\n PanelModelBase.prototype.addElementsToList = function (list, visibleOnly, includingDesignTime, isPanel) {\n if (visibleOnly && !this.visible)\n return;\n this.addElementsToListCore(list, this.elements, visibleOnly, includingDesignTime, isPanel);\n };\n PanelModelBase.prototype.addElementsToListCore = function (list, elements, visibleOnly, includingDesignTime, isPanel) {\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n if (visibleOnly && !el.visible)\n continue;\n if ((isPanel && el.isPanel) || (!isPanel && !el.isPanel)) {\n list.push(el);\n }\n if (el.isPanel) {\n el.addElementsToListCore(list, el.elements, visibleOnly, includingDesignTime, isPanel);\n }\n else {\n if (includingDesignTime) {\n this.addElementsToListCore(list, el.getElementsInDesign(false), visibleOnly, includingDesignTime, isPanel);\n }\n }\n }\n };\n PanelModelBase.prototype.updateCustomWidgets = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].updateCustomWidgets();\n }\n };\n Object.defineProperty(PanelModelBase.prototype, \"questionTitleLocation\", {\n /**\n * Sets a title location relative to the input field for questions that belong to this panel/page.\n *\n * Use this property to override the `questionTitleLocation` property specified for the survey. You can also set the `titleLocation` property for individual questions.\n *\n * Possible values:\n *\n * - `\"default\"` (default) - Inherits the setting from the `questionTitleLocation` property specified for the survey.\n * - `\"top\"` - Displays the title above the input field.\n * - `\"bottom\"` - Displays the title below the input field.\n * - `\"left\"` - Displays the title to the left of the input field.\n * - `\"hidden\"` - Hides the question title.\n *\n * > Certain question types (Matrix, Multiple Text) do not support the `\"left\"` value. For them, the `\"top\"` value is used.\n * @see SurveyModel.questionTitleLocation\n */\n get: function () {\n return this.getPropertyValue(\"questionTitleLocation\");\n },\n set: function (value) {\n this.setPropertyValue(\"questionTitleLocation\", value.toLowerCase());\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.getQuestionTitleLocation = function () {\n if (this.onGetQuestionTitleLocation)\n return this.onGetQuestionTitleLocation();\n if (this.questionTitleLocation != \"default\")\n return this.questionTitleLocation;\n if (this.parent)\n return this.parent.getQuestionTitleLocation();\n return this.survey ? this.survey.questionTitleLocation : \"top\";\n };\n PanelModelBase.prototype.getStartIndex = function () {\n if (!!this.parent)\n return this.parent.getQuestionStartIndex();\n if (!!this.survey)\n return this.survey.questionStartIndex;\n return \"\";\n };\n PanelModelBase.prototype.getQuestionStartIndex = function () {\n return this.getStartIndex();\n };\n PanelModelBase.prototype.getChildrenLayoutType = function () {\n return \"row\";\n };\n PanelModelBase.prototype.getProgressInfo = function () {\n return _survey_element__WEBPACK_IMPORTED_MODULE_3__[\"SurveyElement\"].getProgressInfoByElements(this.elements, this.isRequired);\n };\n Object.defineProperty(PanelModelBase.prototype, \"root\", {\n get: function () {\n var res = this;\n while (res.parent)\n res = res.parent;\n return res;\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.childVisibilityChanged = function () {\n var newIsVisibleValue = this.getIsPageVisible(null);\n var oldIsVisibleValue = this.getPropertyValue(\"isVisible\", true);\n if (newIsVisibleValue !== oldIsVisibleValue) {\n this.onVisibleChanged();\n }\n };\n PanelModelBase.prototype.createRowAndSetLazy = function (index) {\n var row = this.createRow();\n row.setIsLazyRendering(this.isLazyRenderInRow(index));\n return row;\n };\n PanelModelBase.prototype.createRow = function () {\n return new QuestionRowModel(this);\n };\n PanelModelBase.prototype.onSurveyLoad = function () {\n this.blockAnimations();\n _super.prototype.onSurveyLoad.call(this);\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].onSurveyLoad();\n }\n this.onElementVisibilityChanged(this);\n this.releaseAnimations();\n };\n PanelModelBase.prototype.onFirstRendering = function () {\n _super.prototype.onFirstRendering.call(this);\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].onFirstRendering();\n }\n this.onRowsChanged();\n };\n PanelModelBase.prototype.updateRows = function () {\n if (this.isLoadingFromJson)\n return;\n for (var i = 0; i < this.elements.length; i++) {\n if (this.elements[i].isPanel) {\n this.elements[i].updateRows();\n }\n }\n this.onRowsChanged();\n };\n Object.defineProperty(PanelModelBase.prototype, \"rows\", {\n get: function () {\n return this.getPropertyValue(\"rows\");\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.ensureRowsVisibility = function () {\n this.rows.forEach(function (row) {\n row.ensureVisibility();\n });\n };\n PanelModelBase.prototype.onRowsChanged = function () {\n if (this.isLoadingFromJson)\n return;\n this.blockAnimations();\n this.setArrayPropertyDirectly(\"rows\", this.buildRows());\n this.releaseAnimations();\n };\n PanelModelBase.prototype.blockRowsUpdates = function () {\n this.locCountRowUpdates++;\n };\n PanelModelBase.prototype.releaseRowsUpdates = function () {\n this.locCountRowUpdates--;\n };\n PanelModelBase.prototype.updateRowsBeforeElementRemoved = function (element) {\n var _this = this;\n var elementRow = this.findRowByElement(element);\n var elementRowIndex = this.rows.indexOf(elementRow);\n var elementIndexInRow = elementRow.elements.indexOf(element);\n elementRow.elements.splice(elementIndexInRow, 1);\n if (elementRow.elements.length == 0) {\n this.rows.splice(elementRowIndex, 1);\n }\n else if (!elementRow.elements[0].startWithNewLine && this.rows[elementRowIndex - 1]) {\n elementRow.elements.forEach(function (el) { return _this.rows[elementRowIndex - 1].addElement(el); });\n this.rows.splice(elementRowIndex, 1);\n }\n else {\n elementRow.updateVisible();\n }\n };\n PanelModelBase.prototype.updateRowsOnElementAdded = function (element) {\n var _this = this;\n var index = this.elements.indexOf(element);\n var targetElement = this.elements[index + 1];\n var createRowAtIndex = function (index) {\n var row = _this.createRowAndSetLazy(index);\n if (_this.isDesignModeV2) {\n row.setIsLazyRendering(false);\n }\n _this.rows.splice(index, 0, row);\n return row;\n };\n var updateRow = function (row, start, deleteCount) {\n var _a;\n var elements = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n elements[_i - 3] = arguments[_i];\n }\n var removedElements = (_a = row.elements).splice.apply(_a, __spreadArray([start, deleteCount], elements));\n row.updateVisible();\n return removedElements;\n };\n if (!targetElement) {\n if (index == 0 || element.startWithNewLine) {\n updateRow(createRowAtIndex(this.rows.length), 0, 0, element);\n }\n else {\n this.rows[this.rows.length - 1].addElement(element);\n }\n return;\n }\n var targetRow = this.findRowByElement(targetElement);\n if (!targetRow)\n return;\n var targetRowIndex = this.rows.indexOf(targetRow);\n var targetElementIndexInRow = targetRow.elements.indexOf(targetElement);\n if (targetElementIndexInRow == 0) {\n if (!targetElement.startWithNewLine) {\n updateRow(targetRow, 0, 0, element);\n }\n else if (element.startWithNewLine || targetRowIndex < 1) {\n createRowAtIndex(targetRowIndex).addElement(element);\n }\n else {\n this.rows[targetRowIndex - 1].addElement(element);\n }\n }\n else {\n if (element.startWithNewLine) {\n updateRow.apply(void 0, __spreadArray([createRowAtIndex(targetRowIndex + 1), 0, 0], [element].concat(updateRow(targetRow, targetElementIndexInRow, targetRow.elements.length))));\n }\n else {\n updateRow(targetRow, targetElementIndexInRow, 0, element);\n }\n }\n };\n PanelModelBase.prototype.onAddElement = function (element, index) {\n var _this = this;\n element.setSurveyImpl(this.surveyImpl);\n element.parent = this;\n this.markQuestionListDirty();\n if (this.canBuildRows()) {\n this.updateRowsOnElementAdded(element);\n }\n if (element.isPanel) {\n var p = element;\n if (this.survey) {\n this.survey.panelAdded(p, index, this, this.root);\n }\n }\n else {\n if (this.survey) {\n var q = element;\n this.survey.questionAdded(q, index, this, this.root);\n }\n }\n if (!!this.addElementCallback)\n this.addElementCallback(element);\n var self = this;\n element.registerPropertyChangedHandlers([\"visible\", \"isVisible\"], function () {\n _this.onElementVisibilityChanged(element);\n }, this.id);\n element.registerPropertyChangedHandlers([\"startWithNewLine\"], function () {\n _this.onElementStartWithNewLineChanged(element);\n }, this.id);\n this.onElementVisibilityChanged(this);\n };\n PanelModelBase.prototype.onRemoveElement = function (element) {\n element.parent = null;\n this.markQuestionListDirty();\n element.unregisterPropertyChangedHandlers([\"visible\", \"isVisible\", \"startWithNewLine\"], this.id);\n this.updateRowsOnElementRemoved(element);\n if (this.isRandomizing)\n return;\n if (!element.isPanel) {\n if (this.survey)\n this.survey.questionRemoved(element);\n }\n else {\n if (this.survey)\n this.survey.panelRemoved(element);\n }\n if (!!this.removeElementCallback)\n this.removeElementCallback(element);\n this.onElementVisibilityChanged(this);\n };\n PanelModelBase.prototype.onElementVisibilityChanged = function (element) {\n if (this.isLoadingFromJson || this.isRandomizing)\n return;\n this.updateRowsVisibility(element);\n this.childVisibilityChanged();\n if (!!this.parent) {\n this.parent.onElementVisibilityChanged(this);\n }\n };\n PanelModelBase.prototype.onElementStartWithNewLineChanged = function (element) {\n if (this.locCountRowUpdates > 0)\n return;\n this.updateRowsBeforeElementRemoved(element);\n this.updateRowsOnElementAdded(element);\n };\n PanelModelBase.prototype.updateRowsVisibility = function (element) {\n var rows = this.rows;\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n if (row.elements.indexOf(element) > -1) {\n row.updateVisible();\n if (row.visible && !row.isNeedRender) {\n row.isNeedRender = true;\n }\n break;\n }\n }\n };\n PanelModelBase.prototype.canBuildRows = function () {\n return !this.isLoadingFromJson && this.getChildrenLayoutType() == \"row\";\n };\n PanelModelBase.prototype.buildRows = function () {\n if (!this.canBuildRows())\n return [];\n var result = new Array();\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n var isNewRow = i == 0 || el.startWithNewLine;\n var row = isNewRow ? this.createRowAndSetLazy(result.length) : result[result.length - 1];\n if (isNewRow)\n result.push(row);\n row.addElement(el);\n }\n for (var i = 0; i < result.length; i++) {\n result[i].updateVisible();\n }\n return result;\n };\n PanelModelBase.prototype.isLazyRenderInRow = function (rowIndex) {\n if (!this.survey || !this.survey.isLazyRendering)\n return false;\n return (rowIndex >= this.survey.lazyRenderingFirstBatchSize ||\n !this.canRenderFirstRows());\n };\n PanelModelBase.prototype.canRenderFirstRows = function () {\n return this.isPage;\n };\n PanelModelBase.prototype.getDragDropInfo = function () {\n var page = this.getPage(this.parent);\n return !!page ? page.getDragDropInfo() : undefined;\n };\n PanelModelBase.prototype.updateRowsOnElementRemoved = function (element) {\n if (!this.canBuildRows())\n return;\n this.updateRowsRemoveElementFromRow(element, this.findRowByElement(element));\n };\n PanelModelBase.prototype.updateRowsRemoveElementFromRow = function (element, row) {\n if (!row || !row.panel)\n return;\n var elIndex = row.elements.indexOf(element);\n if (elIndex < 0)\n return;\n row.elements.splice(elIndex, 1);\n if (row.elements.length > 0) {\n this.blockRowsUpdates();\n row.elements[0].startWithNewLine = true;\n this.releaseRowsUpdates();\n row.updateVisible();\n }\n else {\n if (row.index >= 0) {\n row.panel.rows.splice(row.index, 1);\n }\n }\n };\n PanelModelBase.prototype.findRowByElement = function (el) {\n var rows = this.rows;\n for (var i = 0; i < rows.length; i++) {\n if (rows[i].elements.indexOf(el) > -1)\n return rows[i];\n }\n return null;\n };\n PanelModelBase.prototype.elementWidthChanged = function (el) {\n if (this.isLoadingFromJson)\n return;\n var row = this.findRowByElement(el);\n if (!!row) {\n row.updateVisible();\n }\n };\n Object.defineProperty(PanelModelBase.prototype, \"processedTitle\", {\n get: function () {\n return this.getRenderedTitle(this.locTitle.textOrHtml);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.getRenderedTitle = function (str) {\n return this.textProcessor != null\n ? this.textProcessor.processText(str, true)\n : str;\n };\n Object.defineProperty(PanelModelBase.prototype, \"visible\", {\n /**\n * Gets or sets panel/page visibility.\n *\n * If you want to display or hide a survey element based on a condition, specify the `visibleIf` property. Refer to the following help topic for information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see visibleIf\n * @see isVisible\n */\n get: function () {\n return this.getPropertyValue(\"visible\", true);\n },\n set: function (value) {\n if (value === this.visible)\n return;\n this.setPropertyValue(\"visible\", value);\n this.setPropertyValue(\"isVisible\", this.isVisible);\n if (!this.isLoadingFromJson)\n this.onVisibleChanged();\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.onHidingContent = function () {\n this.questions.forEach(function (q) { return q.onHidingContent(); });\n };\n PanelModelBase.prototype.onVisibleChanged = function () {\n if (this.isRandomizing)\n return;\n this.setPropertyValue(\"isVisible\", this.isVisible);\n if (!!this.survey && this.survey.getQuestionClearIfInvisible(\"default\") !== \"none\" &&\n !this.isLoadingFromJson) {\n var questions = this.questions;\n var isVisible = this.isVisible;\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n if (!isVisible) {\n q.clearValueIfInvisible(\"onHiddenContainer\");\n q.onHidingContent();\n }\n else {\n q.updateValueWithDefaults();\n }\n }\n }\n };\n PanelModelBase.prototype.notifyStateChanged = function (prevState) {\n var _this = this;\n _super.prototype.notifyStateChanged.call(this, prevState);\n if (this.isCollapsed) {\n this.questions.forEach(function (q) { return q.onHidingContent(); });\n }\n if (this.survey != null && !this.isLoadingFromJson && this.isExpanded && prevState === \"collapsed\") {\n var q_1 = this.getFirstQuestionToFocus(false);\n if (!!q_1) {\n setTimeout(function () {\n if (!_this.isDisposed && !!_this.survey) {\n _this.survey.scrollElementToTop(q_1, q_1, null, q_1.inputId, false);\n }\n }, 15);\n }\n }\n };\n Object.defineProperty(PanelModelBase.prototype, \"isVisible\", {\n /**\n * Returns `true` if the panel/page is visible or the survey is currently in design mode.\n *\n * If you want to display or hide a question based on a condition, specify the `visibleIf` property. Refer to the following help topic for information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see visibleIf\n * @see visible\n */\n get: function () {\n return this.areInvisibleElementsShowing || this.getIsPageVisible(null);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.getIsContentVisible = function (exceptionQuestion) {\n if (this.areInvisibleElementsShowing)\n return true;\n for (var i = 0; i < this.elements.length; i++) {\n if (this.elements[i] == exceptionQuestion)\n continue;\n if (this.elements[i].isVisible)\n return true;\n }\n return false;\n };\n PanelModelBase.prototype.getIsPageVisible = function (exceptionQuestion) {\n return this.visible && this.getIsContentVisible(exceptionQuestion);\n };\n PanelModelBase.prototype.setVisibleIndex = function (index) {\n if (!this.isVisible || index < 0) {\n this.resetVisibleIndexes();\n return 0;\n }\n this.lastVisibleIndex = index;\n var startIndex = index;\n index += this.beforeSetVisibleIndex(index);\n var panelStartIndex = this.getPanelStartIndex(index);\n var panelIndex = panelStartIndex;\n for (var i = 0; i < this.elements.length; i++) {\n panelIndex += this.elements[i].setVisibleIndex(panelIndex);\n }\n if (this.isContinueNumbering()) {\n index += panelIndex - panelStartIndex;\n }\n return index - startIndex;\n };\n PanelModelBase.prototype.updateVisibleIndexes = function () {\n if (this.lastVisibleIndex === undefined)\n return;\n this.resetVisibleIndexes();\n this.setVisibleIndex(this.lastVisibleIndex);\n };\n PanelModelBase.prototype.resetVisibleIndexes = function () {\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].setVisibleIndex(-1);\n }\n };\n PanelModelBase.prototype.beforeSetVisibleIndex = function (index) {\n return 0;\n };\n PanelModelBase.prototype.getPanelStartIndex = function (index) {\n return index;\n };\n PanelModelBase.prototype.isContinueNumbering = function () {\n return true;\n };\n Object.defineProperty(PanelModelBase.prototype, \"isReadOnly\", {\n get: function () {\n var isParentReadOnly = !!this.parent && this.parent.isReadOnly;\n var isSurveyReadOnly = !!this.survey && this.survey.isDisplayMode;\n return this.readOnly || isParentReadOnly || isSurveyReadOnly;\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.onReadOnlyChanged = function () {\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n el.setPropertyValue(\"isReadOnly\", el.isReadOnly);\n }\n _super.prototype.onReadOnlyChanged.call(this);\n };\n PanelModelBase.prototype.updateElementCss = function (reNew) {\n _super.prototype.updateElementCss.call(this, reNew);\n for (var i = 0; i < this.elements.length; i++) {\n var el = this.elements[i];\n el.updateElementCss(reNew);\n }\n };\n Object.defineProperty(PanelModelBase.prototype, \"enableIf\", {\n /**\n * A Boolean expression. If it evaluates to `false`, this panel/page becomes read-only.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see readOnly\n * @see isReadOnly\n */\n get: function () {\n return this.getPropertyValue(\"enableIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"enableIf\", val);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Adds a survey element (question or panel) to this panel/page. Returns `true` if the element was added successfully; `false` otherwise.\n * @param element A survey element to add.\n * @param index A desired index of this element in the `elements` array.\n * @see addNewQuestion\n * @see addNewPanel\n */\n PanelModelBase.prototype.addElement = function (element, index) {\n if (index === void 0) { index = -1; }\n if (!this.canAddElement(element))\n return false;\n if (index < 0 || index >= this.elements.length) {\n this.elements.push(element);\n }\n else {\n this.elements.splice(index, 0, element);\n }\n if (this.wasRendered) {\n element.onFirstRendering();\n }\n return true;\n };\n PanelModelBase.prototype.insertElement = function (element, dest, location) {\n if (location === void 0) { location = \"bottom\"; }\n if (!dest) {\n this.addElement(element);\n return;\n }\n this.blockRowsUpdates();\n var index = this.elements.indexOf(dest);\n var destRow = this.findRowByElement(dest);\n if (location == \"left\" || location == \"right\") {\n if (location == \"right\") {\n element.startWithNewLine = false;\n index++;\n }\n else {\n if (destRow.elements.indexOf(dest) == 0) {\n dest.startWithNewLine = false;\n element.startWithNewLine = true;\n }\n else {\n element.startWithNewLine = false;\n }\n }\n }\n else {\n element.startWithNewLine = true;\n if (location == \"top\") {\n index = this.elements.indexOf(destRow.elements[0]);\n }\n else {\n index = this.elements.indexOf(destRow.elements[destRow.elements.length - 1]) + 1;\n }\n }\n this.releaseRowsUpdates();\n this.addElement(element, index);\n };\n PanelModelBase.prototype.insertElementAfter = function (element, after) {\n var index = this.elements.indexOf(after);\n if (index >= 0)\n this.addElement(element, index + 1);\n };\n PanelModelBase.prototype.insertElementBefore = function (element, before) {\n var index = this.elements.indexOf(before);\n if (index >= 0)\n this.addElement(element, index);\n };\n PanelModelBase.prototype.canAddElement = function (element) {\n return (!!element && element.isLayoutTypeSupported(this.getChildrenLayoutType()));\n };\n PanelModelBase.prototype.addQuestion = function (question, index) {\n if (index === void 0) { index = -1; }\n return this.addElement(question, index);\n };\n PanelModelBase.prototype.addPanel = function (panel, index) {\n if (index === void 0) { index = -1; }\n return this.addElement(panel, index);\n };\n /**\n * Creates a new question of a given type and adds it to the `elements` array at a specified index.\n *\n * This method returns `null` if the question cannot be created or added to this panel/page; otherwise, the method returns the created question.\n *\n * @param questionType A [question type](https://surveyjs.io/form-library/documentation/question#getType).\n * @param name A question name.\n * @param index A desired index of the new question in the `elements` array.\n * @see elements\n * @see addElement\n */\n PanelModelBase.prototype.addNewQuestion = function (questionType, name, index) {\n if (name === void 0) { name = null; }\n if (index === void 0) { index = -1; }\n var question = _questionfactory__WEBPACK_IMPORTED_MODULE_5__[\"QuestionFactory\"].Instance.createQuestion(questionType, name);\n if (!this.addQuestion(question, index))\n return null;\n return question;\n };\n /**\n * Creates a new panel and adds it to the end of the `elements` array.\n *\n * This method returns `null` if the panel cannot be created or added to this panel/page; otherwise, the method returns the created panel.\n * @param name A panel name.\n * @see elementsup\n * @see addElement\n */\n PanelModelBase.prototype.addNewPanel = function (name) {\n if (name === void 0) { name = null; }\n var panel = this.createNewPanel(name);\n if (!this.addPanel(panel))\n return null;\n return panel;\n };\n PanelModelBase.prototype.indexOf = function (element) {\n return this.elements.indexOf(element);\n };\n PanelModelBase.prototype.createNewPanel = function (name) {\n var res = _jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].createClass(\"panel\");\n res.name = name;\n return res;\n };\n /**\n * Deletes a survey element (question or panel) from this panel/page. Returns `true` if the element was deleted successfully; `false` otherwise.\n * @param element A survey element to delete.\n * @see elements\n */\n PanelModelBase.prototype.removeElement = function (element) {\n var index = this.elements.indexOf(element);\n if (index < 0) {\n for (var i = 0; i < this.elements.length; i++) {\n if (this.elements[i].removeElement(element))\n return true;\n }\n return false;\n }\n this.elements.splice(index, 1);\n return true;\n };\n PanelModelBase.prototype.removeQuestion = function (question) {\n this.removeElement(question);\n };\n PanelModelBase.prototype.runCondition = function (values, properties) {\n if (this.isDesignMode || this.isLoadingFromJson)\n return;\n var elements = this.elements.slice();\n for (var i = 0; i < elements.length; i++) {\n elements[i].runCondition(values, properties);\n }\n this.runConditionCore(values, properties);\n };\n PanelModelBase.prototype.onAnyValueChanged = function (name, questionName) {\n var els = this.elements;\n for (var i = 0; i < els.length; i++) {\n els[i].onAnyValueChanged(name, questionName);\n }\n };\n PanelModelBase.prototype.checkBindings = function (valueName, value) {\n var els = this.elements;\n for (var i = 0; i < els.length; i++) {\n els[i].checkBindings(valueName, value);\n }\n };\n PanelModelBase.prototype.dragDropAddTarget = function (dragDropInfo) {\n this.dragDropPanelHelper.dragDropAddTarget(dragDropInfo);\n };\n PanelModelBase.prototype.dragDropFindRow = function (findElement) {\n return this.dragDropPanelHelper.dragDropFindRow(findElement);\n };\n PanelModelBase.prototype.dragDropMoveElement = function (src, target, targetIndex) {\n this.dragDropPanelHelper.dragDropMoveElement(src, target, targetIndex);\n };\n PanelModelBase.prototype.needResponsiveWidth = function () {\n var result = false;\n this.elements.forEach(function (e) {\n if (e.needResponsiveWidth())\n result = true;\n });\n this.rows.forEach(function (r) {\n if (r.elements.length > 1)\n result = true;\n });\n return result;\n };\n Object.defineProperty(PanelModelBase.prototype, \"hasDescriptionUnderTitle\", {\n get: function () {\n return this.hasDescription;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"cssHeader\", {\n get: function () {\n return this.cssClasses.panel.header;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"cssDescription\", {\n get: function () {\n return this.cssClasses.panel.description;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"questionErrorLocation\", {\n /**\n * Specifies the error message position for questions that belong to this page/panel.\n *\n * Use this property to override the [`questionErrorLocation`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#questionErrorLocation) property specified for the survey. You can also set the [`errorLocation`](https://surveyjs.io/form-library/documentation/question#errorLocation) property for individual questions.\n *\n * Possible values:\n *\n * - `\"default\"` (default) - Inherits the setting from the `questionErrorLocation` property specified for the survey.\n * - `\"top\"` - Displays error messages above questions.\n * - `\"bottom\"` - Displays error messages below questions.\n */\n get: function () {\n return this.getPropertyValue(\"questionErrorLocation\");\n },\n set: function (val) {\n this.setPropertyValue(\"questionErrorLocation\", val);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.getQuestionErrorLocation = function () {\n if (this.questionErrorLocation !== \"default\")\n return this.questionErrorLocation;\n if (this.parent)\n return this.parent.getQuestionErrorLocation();\n return this.survey ? this.survey.questionErrorLocation : \"top\";\n };\n Object.defineProperty(PanelModelBase.prototype, \"no\", {\n //ITitleOwner\n get: function () { return \"\"; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModelBase.prototype, \"cssError\", {\n get: function () {\n return this.getCssError(this.cssClasses);\n },\n enumerable: false,\n configurable: true\n });\n PanelModelBase.prototype.getCssError = function (cssClasses) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__[\"CssClassBuilder\"]().append(cssClasses.error.root).toString();\n };\n PanelModelBase.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n if (this.rows) {\n for (var i = 0; i < this.rows.length; i++) {\n this.rows[i].dispose();\n }\n this.rows.splice(0, this.rows.length);\n }\n for (var i = 0; i < this.elements.length; i++) {\n this.elements[i].dispose();\n }\n this.elements.splice(0, this.elements.length);\n };\n PanelModelBase.panelCounter = 100;\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: true })\n ], PanelModelBase.prototype, \"showTitle\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: true })\n ], PanelModelBase.prototype, \"showDescription\", void 0);\n return PanelModelBase;\n}(_survey_element__WEBPACK_IMPORTED_MODULE_3__[\"SurveyElement\"]));\n\n/**\n * A class that describes the Panel container element.\n *\n * A panel can contain questions and other panels. Refer to the following help topic for an illustration: [Survey Structure](https://surveyjs.io/form-library/documentation/design-survey-create-a-simple-survey#survey-structure).\n *\n * [View Demo](https://surveyjs.io/form-library/examples/questiontype-panel/ (linkStyle))\n */\nvar PanelModel = /** @class */ (function (_super) {\n __extends(PanelModel, _super);\n function PanelModel(name) {\n if (name === void 0) { name = \"\"; }\n var _this = _super.call(this, name) || this;\n _this.createNewArray(\"footerActions\");\n _this.registerPropertyChangedHandlers([\"width\"], function () {\n if (!!_this.parent) {\n _this.parent.elementWidthChanged(_this);\n }\n });\n _this.registerPropertyChangedHandlers([\"indent\", \"innerIndent\", \"rightIndent\"], function () { _this.onIndentChanged(); });\n return _this;\n }\n PanelModel.prototype.getType = function () {\n return \"panel\";\n };\n Object.defineProperty(PanelModel.prototype, \"contentId\", {\n get: function () {\n return this.id + \"_content\";\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.getSurvey = function (live) {\n if (live === void 0) { live = false; }\n if (live) {\n return !!this.parent ? this.parent.getSurvey(live) : null;\n }\n return _super.prototype.getSurvey.call(this, live);\n };\n PanelModel.prototype.onSurveyLoad = function () {\n _super.prototype.onSurveyLoad.call(this);\n this.onIndentChanged();\n };\n PanelModel.prototype.onSetData = function () {\n _super.prototype.onSetData.call(this);\n this.onIndentChanged();\n };\n Object.defineProperty(PanelModel.prototype, \"isPanel\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"page\", {\n /**\n * Returns a page to which the panel belongs and allows you to move this panel to a different page.\n * @see PanelModelBase.parent\n */\n get: function () {\n return this.getPage(this.parent);\n },\n set: function (val) {\n this.setPage(this.parent, val);\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.removeFromParent = function () {\n if (!!this.parent) {\n this.removeSelfFromList(this.parent.elements);\n }\n };\n PanelModel.prototype.moveTo = function (container, insertBefore) {\n if (insertBefore === void 0) { insertBefore = null; }\n return this.moveToBase(this.parent, container, insertBefore);\n };\n Object.defineProperty(PanelModel.prototype, \"visibleIndex\", {\n /**\n * Returns the visible index of the panel in the survey. Commonly it is -1 and it doesn't show.\n * You have to set showNumber to true to show index/numbering for the Panel\n * @see showNumber\n */\n get: function () {\n return this.getPropertyValue(\"visibleIndex\", -1);\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.getTitleOwner = function () { return this; };\n Object.defineProperty(PanelModel.prototype, \"showNumber\", {\n /**\n * Specifies whether to show the panel number in the title.\n *\n * Default value: `false`\n * @see SurveyModel.showQuestionNumbers\n * @see SurveyModel.questionTitlePattern\n */\n get: function () {\n return this.getPropertyValue(\"showNumber\");\n },\n set: function (val) {\n this.setPropertyValue(\"showNumber\", val);\n this.notifySurveyOnVisibilityChanged();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"showQuestionNumbers\", {\n /**\n * Gets or sets a value that specifies how the elements numbers inside panel are displayed.\n *\n * The following options are available:\n *\n * - `default` - display questions numbers as defined in parent panel or survey\n * - `onpanel` - display questions numbers, start numbering from beginning of this page\n * - `off` - turn off the numbering for questions titles\n * @see showNumber\n */\n get: function () {\n return this.getPropertyValue(\"showQuestionNumbers\");\n },\n set: function (value) {\n this.setPropertyValue(\"showQuestionNumbers\", value);\n this.notifySurveyOnVisibilityChanged();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"questionStartIndex\", {\n /**\n * Specifies a number or letter used to start numbering of elements inside the panel.\n *\n * You can include desired prefixes and postfixes alongside the number or letter:\n *\n * ```js\n * \"questionStartIndex\": \"a.\", // a., b., c., ...\n * \"questionStartIndex\": \"#3\", // #3, #4, #5, ...\n * \"questionStartIndex\": \"(B).\" // (B)., (C)., (D)., ...\n * ```\n * Default value: `\"1.\"` (inherited from `SurveyModel`'s `questionStartIndex` property)\n * @see SurveyModel.questionStartIndex\n * @see showQuestionNumbers\n */\n get: function () {\n return this.getPropertyValue(\"questionStartIndex\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"questionStartIndex\", val);\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.getQuestionStartIndex = function () {\n if (!!this.questionStartIndex)\n return this.questionStartIndex;\n return _super.prototype.getQuestionStartIndex.call(this);\n };\n Object.defineProperty(PanelModel.prototype, \"no\", {\n /**\n * A question number or letter (depends on the `questionStartIndex` property).\n *\n * When the question number, title, or the entire question is invisible, this property returns an empty string.\n * @see questionStartIndex\n * @see showNumber\n * @see visibleIf\n */\n get: function () {\n return this.getPropertyValue(\"no\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.setNo = function (visibleIndex) {\n this.setPropertyValue(\"no\", _helpers__WEBPACK_IMPORTED_MODULE_1__[\"Helpers\"].getNumberByIndex(this.visibleIndex, this.getStartIndex()));\n };\n PanelModel.prototype.notifyStateChanged = function (prevState) {\n if (!this.isLoadingFromJson) {\n this.locTitle.strChanged();\n }\n _super.prototype.notifyStateChanged.call(this, prevState);\n };\n PanelModel.prototype.createLocTitleProperty = function () {\n var _this = this;\n var locTitleValue = _super.prototype.createLocTitleProperty.call(this);\n locTitleValue.onGetTextCallback = function (text) {\n if (!text && (_this.state !== \"default\")) {\n text = _this.name;\n }\n return text;\n };\n return locTitleValue;\n };\n PanelModel.prototype.beforeSetVisibleIndex = function (index) {\n var visibleIndex = -1;\n if (this.showNumber && (this.isDesignMode || !this.locTitle.isEmpty)) {\n visibleIndex = index;\n }\n this.setPropertyValue(\"visibleIndex\", visibleIndex);\n this.setNo(visibleIndex);\n return visibleIndex < 0 ? 0 : 1;\n };\n PanelModel.prototype.getPanelStartIndex = function (index) {\n if (this.showQuestionNumbers == \"off\")\n return -1;\n if (this.showQuestionNumbers == \"onpanel\")\n return 0;\n return index;\n };\n PanelModel.prototype.isContinueNumbering = function () {\n return (this.showQuestionNumbers != \"off\" && this.showQuestionNumbers != \"onpanel\");\n };\n PanelModel.prototype.notifySurveyOnVisibilityChanged = function () {\n if (this.survey != null && !this.isLoadingFromJson) {\n this.survey.panelVisibilityChanged(this, this.isVisible);\n }\n };\n PanelModel.prototype.hasErrorsCore = function (rec) {\n _super.prototype.hasErrorsCore.call(this, rec);\n if (this.isCollapsed && rec.result && rec.fireCallback) {\n this.expand();\n }\n };\n PanelModel.prototype.getRenderedTitle = function (str) {\n if (!str) {\n if (this.isCollapsed || this.isExpanded)\n return this.name;\n if (this.isDesignMode)\n return \"[\" + this.name + \"]\";\n }\n return _super.prototype.getRenderedTitle.call(this, str);\n };\n Object.defineProperty(PanelModel.prototype, \"innerIndent\", {\n /**\n * Increases or decreases an indent of panel content from the left edge. Accepts positive integer values and 0.\n */\n get: function () {\n return this.getPropertyValue(\"innerIndent\");\n },\n set: function (val) {\n this.setPropertyValue(\"innerIndent\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"startWithNewLine\", {\n /**\n * Disable this property if you want to render the current panel on the same line or row with the previous question or panel.\n */\n get: function () {\n return this.getPropertyValue(\"startWithNewLine\");\n },\n set: function (value) {\n this.setPropertyValue(\"startWithNewLine\", value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"allowAdaptiveActions\", {\n get: function () {\n return this.getPropertyValue(\"allowAdaptiveActions\");\n },\n set: function (val) {\n this.setPropertyValue(\"allowAdaptiveActions\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"innerPaddingLeft\", {\n get: function () {\n return this.getPropertyValue(\"innerPaddingLeft\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"innerPaddingLeft\", val);\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.onIndentChanged = function () {\n if (!this.getSurvey())\n return;\n this.innerPaddingLeft = this.getIndentSize(this.innerIndent);\n this.paddingLeft = this.getIndentSize(this.indent);\n this.paddingRight = this.getIndentSize(this.rightIndent);\n };\n PanelModel.prototype.getIndentSize = function (indent) {\n if (indent < 1)\n return \"\";\n var css = this.survey[\"css\"];\n if (!css || !css.question.indent)\n return \"\";\n return indent * css.question.indent + \"px\";\n };\n PanelModel.prototype.clearOnDeletingContainer = function () {\n this.elements.forEach(function (element) {\n if (element instanceof _question__WEBPACK_IMPORTED_MODULE_4__[\"Question\"] || element instanceof PanelModel) {\n element.clearOnDeletingContainer();\n }\n });\n };\n Object.defineProperty(PanelModel.prototype, \"footerActions\", {\n get: function () {\n return this.getPropertyValue(\"footerActions\");\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.getFooterToolbar = function () {\n var _this = this;\n var _a, _b;\n if (!this.footerToolbarValue) {\n var actions = this.footerActions;\n if (this.hasEditButton) {\n actions.push({\n id: \"cancel-preview\",\n locTitle: this.survey.locEditText,\n innerCss: this.survey.cssNavigationEdit,\n component: \"sv-nav-btn\",\n action: function () { _this.cancelPreview(); }\n });\n }\n if (!!this.onGetFooterActionsCallback) {\n actions = this.onGetFooterActionsCallback();\n }\n else {\n actions = (_a = this.survey) === null || _a === void 0 ? void 0 : _a.getUpdatedPanelFooterActions(this, actions);\n }\n this.footerToolbarValue = this.createActionContainer(this.allowAdaptiveActions);\n var footerCss = this.onGetFooterToolbarCssCallback ? this.onGetFooterToolbarCssCallback() : \"\";\n if (!footerCss) {\n footerCss = (_b = this.cssClasses.panel) === null || _b === void 0 ? void 0 : _b.footer;\n }\n if (footerCss) {\n this.footerToolbarValue.containerCss = footerCss;\n }\n this.footerToolbarValue.setItems(actions);\n }\n return this.footerToolbarValue;\n };\n Object.defineProperty(PanelModel.prototype, \"hasEditButton\", {\n get: function () {\n if (this.survey && this.survey.state === \"preview\")\n return (this.parent && this.parent instanceof _page__WEBPACK_IMPORTED_MODULE_13__[\"PageModel\"]);\n return false;\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.cancelPreview = function () {\n if (!this.hasEditButton)\n return;\n this.survey.cancelPreviewByPage(this);\n };\n Object.defineProperty(PanelModel.prototype, \"cssTitle\", {\n get: function () {\n return this.getCssTitle(this.cssClasses.panel);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PanelModel.prototype, \"showErrorsAbovePanel\", {\n get: function () {\n return this.isDefaultV2Theme && !this.showPanelAsPage;\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.getCssError = function (cssClasses) {\n var builder = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__[\"CssClassBuilder\"]()\n .append(_super.prototype.getCssError.call(this, cssClasses))\n .append(cssClasses.panel.errorsContainer);\n return builder.append(\"panel-error-root\", builder.isEmpty()).toString();\n };\n PanelModel.prototype.onVisibleChanged = function () {\n _super.prototype.onVisibleChanged.call(this);\n this.notifySurveyOnVisibilityChanged();\n };\n PanelModel.prototype.needResponsiveWidth = function () {\n if (!this.startWithNewLine) {\n return true;\n }\n else {\n return _super.prototype.needResponsiveWidth.call(this);\n }\n };\n PanelModel.prototype.focusIn = function () {\n if (!this.survey)\n return;\n this.survey.whenPanelFocusIn(this);\n };\n PanelModel.prototype.getHasFrameV2 = function () {\n return _super.prototype.getHasFrameV2.call(this) && !this.showPanelAsPage;\n };\n PanelModel.prototype.getIsNested = function () {\n return _super.prototype.getIsNested.call(this) && this.parent !== undefined;\n };\n Object.defineProperty(PanelModel.prototype, \"showPanelAsPage\", {\n get: function () {\n var panel = this;\n if (!!panel.originalPage)\n return true;\n return panel.survey.isShowingPreview && panel.survey.isSinglePage && !!panel.parent && !!panel.parent.originalPage;\n },\n enumerable: false,\n configurable: true\n });\n PanelModel.prototype.getCssRoot = function (cssClasses) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__[\"CssClassBuilder\"]()\n .append(_super.prototype.getCssRoot.call(this, cssClasses))\n .append(cssClasses.container)\n .append(cssClasses.asPage, this.showPanelAsPage)\n .append(cssClasses.invisible, !this.isDesignMode && this.areInvisibleElementsShowing && !this.visible)\n .toString();\n };\n PanelModel.prototype.getContainerCss = function () {\n return this.getCssRoot(this.cssClasses.panel);\n };\n return PanelModel;\n}(PanelModelBase));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"panelbase\", [\n \"name\",\n {\n name: \"elements\",\n alternativeName: \"questions\",\n baseClassName: \"question\",\n visible: false,\n isLightSerializable: false,\n },\n { name: \"visible:switch\", default: true, overridingProperty: \"visibleIf\" },\n { name: \"readOnly:boolean\", overridingProperty: \"enableIf\" },\n \"visibleIf:condition\",\n \"enableIf:condition\",\n \"requiredIf:condition\",\n {\n name: \"questionTitleLocation\",\n default: \"default\",\n choices: [\"default\", \"top\", \"bottom\", \"left\", \"hidden\"],\n },\n { name: \"title:text\", serializationProperty: \"locTitle\" },\n { name: \"description:text\", serializationProperty: \"locDescription\" },\n {\n name: \"questionsOrder\",\n default: \"default\",\n choices: [\"default\", \"initial\", \"random\"],\n },\n { name: \"questionErrorLocation\", default: \"default\", choices: [\"default\", \"top\", \"bottom\"] }\n], function () {\n return new PanelModelBase();\n});\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"panel\", [\n {\n name: \"state\",\n default: \"default\",\n choices: [\"default\", \"collapsed\", \"expanded\"],\n },\n { name: \"isRequired:switch\", overridingProperty: \"requiredIf\" },\n {\n name: \"requiredErrorText:text\",\n serializationProperty: \"locRequiredErrorText\",\n },\n { name: \"startWithNewLine:boolean\", default: true },\n \"width\",\n { name: \"minWidth\", defaultFunc: function () { return \"auto\"; } },\n { name: \"maxWidth\", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__[\"settings\"].maxWidth; } },\n { name: \"innerIndent:number\", default: 0, choices: [0, 1, 2, 3] },\n { name: \"indent:number\", default: 0, choices: [0, 1, 2, 3], visible: false },\n {\n name: \"page\",\n isSerializable: false,\n visibleIf: function (obj) {\n var survey = obj ? obj.survey : null;\n return !survey || !survey.pages || survey.pages.length > 1;\n },\n choices: function (obj) {\n var survey = obj ? obj.survey : null;\n return survey\n ? survey.pages.map(function (p) {\n return { value: p.name, text: p.title };\n })\n : [];\n },\n },\n \"showNumber:boolean\",\n {\n name: \"showQuestionNumbers\",\n default: \"default\",\n choices: [\"default\", \"onpanel\", \"off\"],\n },\n \"questionStartIndex\",\n { name: \"allowAdaptiveActions:boolean\", default: true, visible: false },\n], function () {\n return new PanelModel();\n}, \"panelbase\");\n_questionfactory__WEBPACK_IMPORTED_MODULE_5__[\"ElementFactory\"].Instance.registerElement(\"panel\", function (name) {\n return new PanelModel(name);\n});\n\n\n/***/ }),\n\n/***/ \"./src/plugins/themes/bootstrap/cssbootstrap.ts\":\n/*!******************************************************!*\\\n !*** ./src/plugins/themes/bootstrap/cssbootstrap.ts ***!\n \\******************************************************/\n/*! exports provided: defaultCss */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultCss\", function() { return defaultCss; });\nvar defaultCss = {\n root: \"sv_main sv_bootstrap_css\",\n container: \"sv_container\",\n header: \"panel-heading card-header\",\n body: \"panel-body card-block mt-4\",\n bodyEmpty: \"panel-body card-block mt-4 sv_body_empty\",\n footer: \"panel-footer card-footer\",\n title: \"\",\n description: \"\",\n logo: \"sv_logo\",\n logoImage: \"sv_logo__image\",\n headerText: \"sv_header__text\",\n navigationButton: \"btn sv_nav_btn\",\n completedPage: \"\",\n navigation: {\n complete: \"sv_complete_btn\",\n prev: \"sv_prev_btn\",\n next: \"sv_next_btn\",\n start: \"sv_start_btn\",\n preview: \"sv_preview_btn\",\n edit: \"sv_edit_btn\",\n },\n progress: \"progress center-block mx-auto mb-4\",\n progressBar: \"progress-bar\",\n progressTextUnderBar: \"sv-hidden\",\n progressTextInBar: \"sv-hidden\",\n progressButtonsContainerCenter: \"sv_progress-buttons__container-center\",\n progressButtonsContainer: \"sv_progress-buttons__container\",\n progressButtonsImageButtonLeft: \"sv_progress-buttons__image-button-left\",\n progressButtonsImageButtonRight: \"sv_progress-buttons__image-button-right\",\n progressButtonsImageButtonHidden: \"sv_progress-buttons__image-button--hidden\",\n progressButtonsListContainer: \"sv_progress-buttons__list-container\",\n progressButtonsList: \"sv_progress-buttons__list\",\n progressButtonsListElementPassed: \"sv_progress-buttons__list-element--passed\",\n progressButtonsListElementCurrent: \"sv_progress-buttons__list-element--current\",\n progressButtonsListElementNonClickable: \"sv_progress-buttons__list-element--nonclickable\",\n progressButtonsPageTitle: \"sv_progress-buttons__page-title\",\n progressButtonsPageDescription: \"sv_progress-buttons__page-description\",\n page: {\n root: \"\",\n title: \"\",\n description: \"small\",\n },\n pageTitle: \"\",\n pageDescription: \"small\",\n row: \"sv_row\",\n question: {\n mainRoot: \"sv_qstn\",\n flowRoot: \"sv_q_flow sv_qstn\",\n header: \"\",\n headerLeft: \"title-left\",\n content: \"\",\n contentLeft: \"content-left\",\n titleLeftRoot: \"sv_qstn_left\",\n title: \"\",\n titleExpandable: \"sv_q_title_expandable\",\n titleExpanded: \"sv_q_title_expanded\",\n titleCollapsed: \"sv_q_title_collapsed\",\n number: \"sv_q_num\",\n description: \"small\",\n descriptionUnderInput: \"small\",\n requiredText: \"sv_q_required_text\",\n comment: \"form-control\",\n required: \"\",\n titleRequired: \"\",\n hasError: \"has-error\",\n indent: 20,\n formGroup: \"form-group\",\n disabled: \"sv_q--disabled\",\n },\n panel: {\n title: \"sv_p_title\",\n titleExpandable: \"sv_p_title_expandable\",\n titleExpanded: \"sv_p_title_expanded\",\n titleCollapsed: \"sv_p_title_collapsed\",\n titleOnError: \"\",\n icon: \"sv_panel_icon\",\n iconExpanded: \"sv_expanded\",\n description: \"small sv_p_description\",\n container: \"sv_p_container\",\n footer: \"sv_p_footer\",\n number: \"sv_q_num\",\n requiredText: \"sv_q_required_text\",\n },\n error: {\n root: \"alert alert-danger\",\n icon: \"glyphicon glyphicon-exclamation-sign\",\n item: \"\",\n locationTop: \"sv_qstn_error_top\",\n locationBottom: \"sv_qstn_error_bottom\",\n },\n boolean: {\n root: \"sv_qbln form-inline checkbox\",\n rootRadio: \"sv_qbln form-inline checkbox\",\n item: \"sv-boolean\",\n control: \"sv-visuallyhidden\",\n controlCheckbox: \"sv-visuallyhidden\",\n itemChecked: \"sv-boolean--checked checked\",\n itemIndeterminate: \"sv-boolean--indeterminate\",\n itemDisabled: \"sv-boolean--disabled\",\n switch: \"sv-boolean__switch\",\n slider: \"sv-boolean__slider\",\n label: \"sv-boolean__label \",\n disabledLabel: \"sv-boolean__label--disabled\",\n sliderGhost: \"sv-boolean__thumb-ghost\",\n materialDecorator: \"sv-item__decorator sv-boolean__decorator\",\n itemDecorator: \"sv-item__svg sv-boolean__svg\",\n checkedPath: \"sv-boolean__checked-path\",\n uncheckedPath: \"sv-boolean__unchecked-path\",\n indeterminatePath: \"sv-boolean__indeterminate-path\",\n },\n checkbox: {\n root: \"sv_qcbc sv_qcbx form-inline\",\n item: \"checkbox\",\n itemChecked: \"checked\",\n itemSelectAll: \"sv_q_checkbox_selectall\",\n itemNone: \"sv_q_checkbox_none\",\n itemInline: \"sv_q_checkbox_inline\",\n itemControl: \"\",\n itemDecorator: \"sv-hidden\",\n label: \"\",\n labelChecked: \"\",\n controlLabel: \"\",\n materialDecorator: \"checkbox-material\",\n other: \"sv_q_checkbox_other form-control\",\n column: \"sv_q_select_column\",\n },\n ranking: {\n root: \"sv-ranking\",\n rootMobileMod: \"sv-ranking--mobile\",\n rootDragMod: \"sv-ranking--drag\",\n rootDisabled: \"sv-ranking--disabled\",\n rootDragHandleAreaIcon: \"sv-ranking--drag-handle-area-icon\",\n rootSelectToRankMod: \"sv-ranking--select-to-rank\",\n rootSelectToRankAlignVertical: \"sv-ranking--select-to-rank-vertical\",\n rootSelectToRankAlignHorizontal: \"sv-ranking--select-to-rank-horizontal\",\n item: \"sv-ranking-item\",\n itemContent: \"sv-ranking-item__content\",\n itemIndex: \"sv-ranking-item__index\",\n itemIndexEmptyMode: \"sv-ranking-item__index--empty\",\n // itemText: \"sv-ranking-item__text\",\n controlLabel: \"sv-ranking-item__text\",\n itemGhostNode: \"sv-ranking-item__ghost\",\n itemIconContainer: \"sv-ranking-item__icon-container\",\n itemIcon: \"sv-ranking-item__icon\",\n itemIconHoverMod: \"sv-ranking-item__icon--hover\",\n itemIconFocusMod: \"sv-ranking-item__icon--focus\",\n itemGhostMod: \"sv-ranking-item--ghost\",\n itemDragMod: \"sv-ranking-item--drag\",\n container: \"sv-ranking__container\",\n containerEmptyMode: \"sv-ranking__container--empty\",\n containerFromMode: \"sv-ranking__container--from\",\n containerToMode: \"sv-ranking__container--to\",\n containerPlaceholder: \"sv-ranking__container-placeholder\",\n containersDivider: \"sv-ranking__containers-divider\",\n },\n comment: \"form-control\",\n dropdown: {\n root: \"sv_q_dd_root\",\n popup: \"sv-dropdown-popup\",\n selectWrapper: \"sv_q_dd_select_wrapper\",\n control: \"form-control sv_q_dd_control\",\n controlValue: \"sv_q_dd_value\",\n other: \"sv_q_dd_other form-control\",\n cleanButton: \"sv_q_dd_clean-button\",\n cleanButtonSvg: \"sv_q_dd_clean-button-svg\",\n cleanButtonIconId: \"icon-clear_16x16\",\n filterStringInput: \"sv_q_dd_filter-string-input\",\n hintPrefix: \"sv_q_dd_hint-prefix\",\n hintSuffix: \"sv_q_dd_hint-suffix\"\n },\n tagbox: {\n root: \"sv_q_dd_root\",\n popup: \"sv-dropdown-popup\",\n selectWrapper: \"sv_q_dd_select_wrapper\",\n control: \"form-control sv_q_dd_control\",\n controlValue: \"sv_q_dd_value\",\n other: \"sv_q_dd_other form-control\",\n cleanButton: \"sv_q_dd_clean-button\",\n cleanButtonSvg: \"sv_q_dd_clean-button-svg\",\n cleanButtonIconId: \"icon-clear_16x16\",\n filterStringInput: \"sv_q_dd_filter-string-input\",\n },\n html: { root: \"\" },\n image: { root: \"sv_q_image\", image: \"sv_image_image\" },\n matrix: {\n root: \"table sv_q_matrix\",\n label: \"sv_q_m_label\",\n itemChecked: \"checked\",\n itemDecorator: \"sv-hidden\",\n cellText: \"sv_q_m_cell_text\",\n cellTextSelected: \"sv_q_m_cell_selected bg-primary\",\n cellLabel: \"sv_q_m_cell_label\",\n cellResponsiveTitle: \"sv-hidden\"\n },\n matrixdropdown: {\n root: \"table\",\n cell: \"sv_matrix_cell\",\n headerCell: \"sv_matrix_cell_header\",\n row: \"sv_matrix_row\",\n rowAdditional: \"sv-matrix__row--additional\",\n detailRow: \"sv_matrix_detail_row\",\n detailRowText: \"sv_matrix_cell_detail_rowtext\",\n detailCell: \"sv_matrix_cell_detail\",\n detailButton: \"sv_matrix_cell_detail_button\",\n detailButtonExpanded: \"sv_matrix_cell_detail_button_expanded\",\n detailIcon: \"sv_detail_panel_icon\",\n detailIconExpanded: \"sv_detail_expanded\",\n detailPanelCell: \"sv_matrix_cell_detail_panel\",\n actionsCell: \"sv_matrix_cell sv_matrix_cell_actions\",\n },\n matrixdynamic: {\n root: \"table\",\n button: \"button\",\n buttonAdd: \"\",\n buttonRemove: \"\",\n iconAdd: \"\",\n iconRemove: \"\",\n iconDrag: \"sv-matrixdynamic__drag-icon\",\n headerCell: \"sv_matrix_cell_header\",\n row: \"sv_matrix_row\",\n detailRow: \"sv_matrix_detail_row\",\n detailCell: \"sv_matrix_cell_detail\",\n detailButton: \"sv_matrix_cell_detail_button\",\n detailButtonExpanded: \"sv_matrix_cell_detail_button_expanded\",\n detailIcon: \"sv_detail_panel_icon\",\n detailIconExpanded: \"sv_detail_expanded\",\n detailPanelCell: \"sv_matrix_cell_detail_panel\",\n actionsCell: \"sv_matrix_cell sv_matrix_cell_actions\",\n emptyRowsSection: \"sv_matrix_empty_rows_section\",\n emptyRowsText: \"sv_matrix_empty_rows_text\",\n emptyRowsButton: \"\",\n ghostRow: \"sv-matrix-row--drag-drop-ghost-mod\"\n },\n paneldynamic: {\n root: \"\",\n navigation: \"sv-paneldynamic__navigation\",\n progressTop: \"sv-paneldynamic__progress sv-paneldynamic__progress--top\",\n progressBottom: \"sv-paneldynamic__progress sv-paneldynamic__progress--bottom\",\n title: \"sv-title sv-question__title\",\n button: \"button\",\n buttonAdd: \"button sv-paneldynamic__add-btn\",\n buttonRemove: \"sv_p_remove_btn\",\n buttonRemoveRight: \"button sv-paneldynamic__remove-btn--right\",\n buttonPrev: \"sv-paneldynamic__prev-btn\",\n buttonNext: \"sv-paneldynamic__next-btn\",\n buttonPrevDisabled: \"sv-paneldynamic__prev-btn--disabled\",\n buttonNextDisabled: \"sv-paneldynamic__next-btn--disabled\",\n progressContainer: \"sv-paneldynamic__progress-container\",\n progress: \"sv-progress\",\n progressBar: \"sv-progress__bar\",\n progressText: \"sv-paneldynamic__progress-text\",\n panelWrapper: \"sv_p_wrapper\",\n panelWrapperInRow: \"sv_p_wrapper_in_row\",\n footer: \"\",\n progressBtnIcon: \"icon-progressbutton\"\n },\n multipletext: {\n root: \"sv_q_mt table\",\n itemTitle: \"sv_q_mt_title\",\n item: \"sv_q_mt_item\",\n itemLabel: \"sv_q_mt_label\",\n row: \"form-group bmd-form-group\",\n itemValue: \"sv_q_mt_item_value form-control\",\n },\n radiogroup: {\n root: \"sv_qcbc form-inline\",\n item: \"radio\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_radiogroup_inline\",\n label: \"\",\n labelChecked: \"\",\n itemControl: \"\",\n itemDecorator: \"sv-hidden\",\n controlLabel: \"\",\n materialDecorator: \"circle\",\n other: \"sv_q_radiogroup_other form-control\",\n clearButton: \"sv_q_radiogroup_clear button\",\n column: \"sv_q_select_column\",\n },\n buttongroup: {\n root: \"sv-button-group\",\n item: \"sv-button-group__item\",\n itemIcon: \"sv-button-group__item-icon\",\n itemDecorator: \"sv-button-group__item-decorator\",\n itemCaption: \"sv-button-group__item-caption\",\n itemHover: \"sv-button-group__item--hover\",\n itemSelected: \"sv-button-group__item--selected\",\n itemDisabled: \"sv-button-group__item--disabled\",\n itemControl: \"sv-visuallyhidden\",\n },\n imagepicker: {\n root: \"sv_imgsel\",\n item: \"sv_q_imgsel\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_imagepicker_inline\",\n label: \"sv_q_imgsel_label\",\n itemControl: \"sv_q_imgsel_control_item\",\n image: \"sv_q_imgsel_image\",\n itemText: \"sv_q_imgsel_text\",\n clearButton: \"sv_q_radiogroup_clear\",\n },\n rating: {\n root: \"btn-group\",\n item: \"btn btn-default btn-secondary\",\n selected: \"active\",\n minText: \"sv_q_rating_min_text\",\n itemText: \"sv_q_rating_item_text\",\n maxText: \"sv_q_rating_max_text\",\n disabled: \"\",\n },\n text: \"form-control\",\n expression: \"form-control\",\n file: {\n root: \"sv_q_file\",\n placeholderInput: \"sv_q_file_placeholder\",\n preview: \"sv_q_file_preview\",\n removeButton: \"sv_q_file_remove_button\",\n fileInput: \"sv_q_file_input\",\n removeFile: \"sv_q_file_remove\",\n fileDecorator: \"sv-hidden\",\n fileSign: \"sv_q_file_sign\",\n removeButtonBottom: \"sv-hidden\",\n dragAreaPlaceholder: \"sv-hidden\",\n fileList: \"\",\n },\n signaturepad: {\n root: \"sv_q_signaturepad sjs_sp_container\",\n controls: \"sjs_sp_controls\",\n placeholder: \"sjs_sp_placeholder\",\n canvas: \"sjs_sp_canvas\",\n backgroundImage: \"sjs_sp__background-image\",\n clearButton: \"sjs_sp_clear\",\n },\n saveData: {\n root: \"\",\n info: \"alert alert-info\",\n error: \"alert alert-danger\",\n success: \"alert alert-success\",\n button: \"\",\n },\n window: {\n root: \"modal-content\",\n body: \"modal-body\",\n header: {\n root: \"modal-header panel-title\",\n title: \"pull-left\",\n button: \"glyphicon pull-right\",\n buttonExpanded: \"glyphicon pull-right glyphicon-chevron-up\",\n buttonCollapsed: \"glyphicon pull-right glyphicon-chevron-down\",\n },\n },\n};\n\n\n/***/ }),\n\n/***/ \"./src/plugins/themes/bootstrap/theme-settings.ts\":\n/*!********************************************************!*\\\n !*** ./src/plugins/themes/bootstrap/theme-settings.ts ***!\n \\********************************************************/\n/*! exports provided: bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bootstrapThemeName\", function() { return bootstrapThemeName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bootstrapThemeColors\", function() { return bootstrapThemeColors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bootstrapThemeCssRules\", function() { return bootstrapThemeCssRules; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n/* harmony import */ var _common_theme_settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common-theme-settings */ \"./src/plugins/themes/common-theme-settings.ts\");\n/* harmony import */ var _cssbootstrap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssbootstrap */ \"./src/plugins/themes/bootstrap/cssbootstrap.ts\");\n\n\n\nvar bootstrapThemeName = \"bootstrap\";\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyCss\"][bootstrapThemeName] = _cssbootstrap__WEBPACK_IMPORTED_MODULE_2__[\"defaultCss\"];\nvar bootstrapThemeColors = {\n \"$main-color\": \"#18a689\",\n \"$text-color\": \"#404040;\",\n \"$text-input-color\": \"#404040;\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$header-background-color\": \"#e7e7e7\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\",\n \"$foreground-light\": \"#909090\",\n \"$foreground-disabled\": \"#161616\",\n \"$background-dim\": \"#f3f3f3\",\n \"$progress-buttons-color\": \"#8dd6c7\",\n \"$progress-buttons-line-color\": \"#d4d4d4\",\n};\nvar bootstrapThemeCssRules = {\n \".sv_main .sv_q_imgsel.checked label>div\": \"background-color: $main-color\",\n \".sv_main .sv_p_description\": \"padding-left: 1.66em;\",\n \".sv_main .sv_qstn_error_bottom\": \"margin-top: 20px; margin-bottom: 0;\",\n \".sv_main .progress\": \"width: 60%;\",\n \".sv_main .progress-bar\": \"width: auto; margin-left: 2px; margin-right: 2px;\",\n \".sv_main .table>tbody>tr>td\": \"min-width: 90px;\",\n \".sv_main f-panel .sv_qstn\": \"padding: 0; vertical-align: middle;\",\n \".sv_main .sv_q_image\": \"display: inline-block;\",\n \".sv_main .sv_row .sv_qstn:first-child:last-child\": \"flex: none !important;\",\n \".sv_main .sv_row .sv_p_container:first-child:last-child\": \"flex: none !important;\",\n //progress bar\n \".sv_main .sv-progress\": \"background-color: $header-background-color;\",\n \".sv_main .sv-progress__bar\": \"background-color: $main-color;\",\n //progress buttons\n \".sv_main .sv_progress-buttons__list li:before\": \"border-color: $progress-buttons-color; background-color: $progress-buttons-color;\",\n \".sv_main .sv_progress-buttons__list li:after\": \"background-color: $progress-buttons-line-color;\",\n \".sv_main .sv_progress-buttons__list .sv_progress-buttons__page-title\": \"color: $text-color;\",\n \".sv_main .sv_progress-buttons__list .sv_progress-buttons__page-description\": \"color: $text-color;\",\n \".sv_main .sv_progress-buttons__list li.sv_progress-buttons__list-element--passed:before\": \"border-color: $main-color; background-color: $main-color;\",\n \".sv_main .sv_progress-buttons__list li.sv_progress-buttons__list-element--passed + li:after\": \"background-color: $progress-buttons-color\",\n \".sv_main .sv_progress-buttons__list li.sv_progress-buttons__list-element--current:before\": \"border-color: $main-color; background-color: white;\",\n \".sv_main .sv_progress-buttons__list li.sv_progress-buttons__list-element--passed.sv_progress-buttons__list-element--current:before\": \"border-color: $main-color; background-color: white;\",\n //paneldynamic\n \".sv_main .sv-paneldynamic__prev-btn.sv-paneldynamic__prev-btn--disabled, .sv_main .sv-paneldynamic__next-btn.sv-paneldynamic__next-btn--disabled\": \"fill: $disable-color;\",\n \".sv_main .sv-paneldynamic__progress-text\": \"color: $progress-text-color;\",\n \".sv_main .sv-paneldynamic__prev-btn, .sv_main .sv-paneldynamic__next-btn\": \"fill: $text-color\",\n //boolean\n \".sv_main .sv-boolean__switch\": \"background-color: $main-color;\",\n \".sv_main .sv-boolean__slider\": \"background-color: $slider-color;\",\n \".sv_main .sv-boolean__label--disabled\": \"color: $disabled-label-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__switch\": \"background-color: $disabled-switch-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__slider\": \"background-color: $disabled-slider-color;\",\n //eo boolean\n //signature pad\n \".sv_main .sjs_sp_container\": \"border: 1px dashed $disable-color;\",\n \".sv_main .sjs_sp_placeholder\": \"color: $foreground-light;\",\n \".sv_main .sv_matrix_detail_row\": \"background-color: #ededed; border-top: 1px solid $header-background-color; border-bottom: 1px solid $header-background-color;\",\n \".sv_main .sv-action-bar-item\": \"color: $text-color;\",\n \".sv_main .sv-action-bar-item__icon use\": \"fill: $foreground-light;\",\n \".sv_main .sv-action-bar-item:hover\": \"background-color: $background-dim;\",\n \".sv-skeleton-element\": \"background-color: $background-dim;\",\n};\nObject(_common_theme_settings__WEBPACK_IMPORTED_MODULE_1__[\"setStyles\"])();\nObject(_common_theme_settings__WEBPACK_IMPORTED_MODULE_1__[\"setMediaStyles\"])();\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"StylesManager\"].ThemeColors[bootstrapThemeName] = bootstrapThemeColors;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"StylesManager\"].ThemeCss[bootstrapThemeName] = bootstrapThemeCssRules;\n\n\n/***/ }),\n\n/***/ \"./src/plugins/themes/bootstrapmaterial/cssbootstrapmaterial.ts\":\n/*!**********************************************************************!*\\\n !*** ./src/plugins/themes/bootstrapmaterial/cssbootstrapmaterial.ts ***!\n \\**********************************************************************/\n/*! exports provided: defaultCss */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultCss\", function() { return defaultCss; });\nvar defaultCss = {\n root: \"sv_main sv_bootstrapmaterial_css\",\n container: \"sv_container\",\n header: \"card-heading\",\n body: \"card-body\",\n bodyEmpty: \"card-body sv_body_empty\",\n footer: \"card-footer\",\n title: \"\",\n description: \"\",\n logo: \"sv_logo\",\n logoImage: \"sv_logo__image\",\n headerText: \"sv_header__text\",\n navigationButton: \"btn-primary sv_nav_btn\",\n completedPage: \"\",\n navigation: {\n complete: \"sv_complete_btn\",\n prev: \"sv_prev_btn\",\n next: \"sv_next_btn\",\n start: \"sv_start_btn\",\n preview: \"sv_preview_btn\",\n edit: \"sv_edit_btn\",\n },\n progress: \"progress center-block mx-auto mb-4\",\n progressBar: \"progress-bar\",\n progressTextUnderBar: \"sv-hidden\",\n progressTextInBar: \"sv-hidden\",\n progressButtonsContainerCenter: \"sv_progress-buttons__container-center\",\n progressButtonsContainer: \"sv_progress-buttons__container\",\n progressButtonsImageButtonLeft: \"sv_progress-buttons__image-button-left\",\n progressButtonsImageButtonRight: \"sv_progress-buttons__image-button-right\",\n progressButtonsImageButtonHidden: \"sv_progress-buttons__image-button--hidden\",\n progressButtonsListContainer: \"sv_progress-buttons__list-container\",\n progressButtonsList: \"sv_progress-buttons__list\",\n progressButtonsListElementPassed: \"sv_progress-buttons__list-element--passed\",\n progressButtonsListElementCurrent: \"sv_progress-buttons__list-element--current\",\n progressButtonsListElementNonClickable: \"sv_progress-buttons__list-element--nonclickable\",\n progressButtonsPageTitle: \"sv_progress-buttons__page-title\",\n progressButtonsPageDescription: \"sv_progress-buttons__page-description\",\n page: {\n root: \"\",\n title: \"\",\n description: \"small\",\n },\n pageTitle: \"\",\n pageDescription: \"small\",\n row: \"sv_row\",\n question: {\n mainRoot: \"sv_qstn form-group bmd-form-group\",\n flowRoot: \"sv_q_flow form-group bmd-form-group\",\n header: \"\",\n headerLeft: \"title-left\",\n content: \"\",\n contentLeft: \"content-left\",\n titleLeftRoot: \"sv_qstn_left\",\n requiredText: \"sv_q_required_text\",\n title: \"\",\n titleExpandable: \"sv_q_title_expandable\",\n titleExpanded: \"sv_q_title_expanded\",\n titleCollapsed: \"sv_q_title_collapsed\",\n number: \"sv_q_num\",\n description: \"small\",\n descriptionUnderInput: \"small\",\n comment: \"form-control\",\n required: \"\",\n titleRequired: \"\",\n hasError: \"has-error\",\n indent: 20,\n formGroup: \"form-group bmd-form-group\",\n disabled: \"sv_q--disabled\",\n },\n panel: {\n title: \"sv_p_title\",\n titleExpandable: \"sv_p_title_expandable\",\n titleExpanded: \"sv_p_title_expanded\",\n titleCollapsed: \"sv_p_title_collapsed\",\n titleOnError: \"\",\n icon: \"sv_panel_icon\",\n iconExpanded: \"sv_expanded\",\n description: \"small sv_p_description\",\n container: \"sv_p_container\",\n footer: \"sv_p_footer\",\n number: \"sv_q_num\",\n requiredText: \"sv_q_required_text\",\n },\n error: {\n root: \"alert alert-danger\",\n icon: \"glyphicon glyphicon-exclamation-sign\",\n item: \"\",\n locationTop: \"sv_qstn_error_top\",\n locationBottom: \"sv_qstn_error_bottom\",\n },\n boolean: {\n root: \"sv_qbln checkbox\",\n rootRadio: \"sv_qbln form-inline checkbox\",\n item: \"sv-boolean\",\n control: \"sv-visuallyhidden\",\n controlCheckbox: \"sv-visuallyhidden\",\n itemChecked: \"sv-boolean--checked checked\",\n itemIndeterminate: \"sv-boolean--indeterminate\",\n itemDisabled: \"sv-boolean--disabled\",\n switch: \"sv-boolean__switch\",\n slider: \"sv-boolean__slider\",\n label: \"sv-boolean__label \",\n disabledLabel: \"sv-boolean__label--disabled\",\n sliderGhost: \"sv-boolean__thumb-ghost\",\n materialDecorator: \"sv-item__decorator sv-boolean__decorator\",\n itemDecorator: \"sv-item__svg sv-boolean__svg\",\n checkedPath: \"sv-boolean__checked-path\",\n uncheckedPath: \"sv-boolean__unchecked-path\",\n indeterminatePath: \"sv-boolean__indeterminate-path\",\n },\n checkbox: {\n root: \"sv_qcbx\",\n item: \"checkbox\",\n itemChecked: \"checked\",\n itemSelectAll: \"sv_q_checkbox_selectall\",\n itemNone: \"sv_q_checkbox_none\",\n itemInline: \"sv_q_checkbox_inline\",\n itemDecorator: \"sv-hidden\",\n itemControl: \"\",\n label: \"\",\n labelChecked: \"\",\n controlLabel: \"\",\n materialDecorator: \"checkbox-decorator\",\n other: \"sv_q_checkbox_other form-control\",\n column: \"sv_q_select_column\",\n },\n ranking: {\n root: \"sv-ranking\",\n rootMobileMod: \"sv-ranking--mobile\",\n rootDragMod: \"sv-ranking--drag\",\n rootDisabled: \"sv-ranking--disabled\",\n rootDragHandleAreaIcon: \"sv-ranking--drag-handle-area-icon\",\n rootSelectToRankMod: \"sv-ranking--select-to-rank\",\n rootSelectToRankAlignVertical: \"sv-ranking--select-to-rank-vertical\",\n rootSelectToRankAlignHorizontal: \"sv-ranking--select-to-rank-horizontal\",\n item: \"sv-ranking-item\",\n itemContent: \"sv-ranking-item__content\",\n itemIndex: \"sv-ranking-item__index\",\n itemIndexEmptyMode: \"sv-ranking-item__index--empty\",\n // itemText: \"sv-ranking-item__text\",\n controlLabel: \"sv-ranking-item__text\",\n itemGhostNode: \"sv-ranking-item__ghost\",\n itemIconContainer: \"sv-ranking-item__icon-container\",\n itemIcon: \"sv-ranking-item__icon\",\n itemIconHoverMod: \"sv-ranking-item__icon--hover\",\n itemIconFocusMod: \"sv-ranking-item__icon--focus\",\n itemGhostMod: \"sv-ranking-item--ghost\",\n itemDragMod: \"sv-ranking-item--drag\",\n container: \"sv-ranking__container\",\n containerEmptyMode: \"sv-ranking__container--empty\",\n containerFromMode: \"sv-ranking__container--from\",\n containerToMode: \"sv-ranking__container--to\",\n containerPlaceholder: \"sv-ranking__container-placeholder\",\n containersDivider: \"sv-ranking__containers-divider\",\n },\n comment: \"form-control\",\n dropdown: {\n root: \"sv_q_dd_root\",\n popup: \"sv-dropdown-popup\",\n selectWrapper: \"sv_q_dd_select_wrapper\",\n control: \"form-control sv_q_dd_control\",\n controlValue: \"sv_q_dd_value\",\n other: \"sv_q_dd_other form-control\",\n cleanButton: \"sv_q_dd_clean-button\",\n cleanButtonSvg: \"sv_q_dd_clean-button-svg\",\n cleanButtonIconId: \"icon-clear_16x16\",\n filterStringInput: \"sv_q_dd_filter-string-input\",\n },\n tagbox: {\n root: \"sv_q_dd_root\",\n popup: \"sv-dropdown-popup\",\n selectWrapper: \"sv_q_dd_select_wrapper\",\n control: \"form-control sv_q_dd_control\",\n controlValue: \"sv_q_dd_value\",\n other: \"sv_q_dd_other form-control\",\n cleanButton: \"sv_q_dd_clean-button\",\n cleanButtonSvg: \"sv_q_dd_clean-button-svg\",\n cleanButtonIconId: \"icon-clear_16x16\",\n filterStringInput: \"sv_q_dd_filter-string-input\",\n },\n html: { root: \"\" },\n image: { root: \"sv_q_image\", image: \"sv_image_image\" },\n matrix: {\n root: \"table sv_q_matrix\",\n row: \"form-group bmd-form-group\",\n label: \"sv_q_m_label radio-inline\",\n cellText: \"sv_q_m_cell_text\",\n cellTextSelected: \"sv_q_m_cell_selected bg-primary\",\n cellLabel: \"sv_q_m_cell_label\",\n itemValue: \"form-control\",\n itemChecked: \"checked\",\n itemDecorator: \"sv-hidden\",\n materialDecorator: \"bmd-radio\",\n cellResponsiveTitle: \"sv-hidden\"\n },\n matrixdropdown: {\n root: \"table\",\n itemValue: \"form-group bmd-form-group\",\n headerCell: \"sv_matrix_cell_header\",\n row: \"sv_matrix_row\",\n rowAdditional: \"sv-matrix__row--additional\",\n detailRow: \"sv_matrix_detail_row\",\n detailRowText: \"sv_matrix_cell_detail_rowtext\",\n detailCell: \"sv_matrix_cell_detail\",\n detailButton: \"sv_matrix_cell_detail_button\",\n detailButtonExpanded: \"sv_matrix_cell_detail_button_expanded\",\n detailIcon: \"sv_detail_panel_icon\",\n detailIconExpanded: \"sv_detail_expanded\",\n detailPanelCell: \"sv_matrix_cell_detail_panel\",\n actionsCell: \"sv_matrix_cell sv_matrix_cell_actions\",\n },\n matrixdynamic: {\n mainRoot: \"sv_qstn\",\n flowRoot: \"sv_q_flow\",\n root: \"table\",\n button: \"btn btn-primary\",\n itemValue: \"form-group bmd-form-group\",\n buttonAdd: \"\",\n buttonRemove: \"\",\n iconAdd: \"\",\n iconRemove: \"\",\n iconDrag: \"sv-matrixdynamic__drag-icon\",\n headerCell: \"sv_matrix_cell_header\",\n row: \"sv_matrix_row\",\n detailRow: \"sv_matrix_detail_row\",\n detailCell: \"sv_matrix_cell_detail\",\n detailButton: \"sv_matrix_cell_detail_button\",\n detailButtonExpanded: \"sv_matrix_cell_detail_button_expanded\",\n detailIcon: \"sv_detail_panel_icon\",\n detailIconExpanded: \"sv_detail_expanded\",\n detailPanelCell: \"sv_matrix_cell_detail_panel\",\n actionsCell: \"sv_matrix_cell sv_matrix_cell_actions\",\n emptyRowsSection: \"sv_matrix_empty_rows_section\",\n emptyRowsText: \"sv_matrix_empty_rows_text\",\n emptyRowsButton: \"\",\n ghostRow: \"sv-matrix-row--drag-drop-ghost-mod\"\n },\n paneldynamic: {\n root: \"\",\n navigation: \"sv-paneldynamic__navigation\",\n progressTop: \"sv-paneldynamic__progress sv-paneldynamic__progress--top\",\n progressBottom: \"sv-paneldynamic__progress sv-paneldynamic__progress--bottom\",\n title: \"sv-title sv-question__title\",\n button: \"button\",\n buttonAdd: \"button sv-paneldynamic__add-btn btn btn-primary\",\n buttonRemove: \"button sv-paneldynamic__remove-btn btn btn-primary\",\n buttonRemoveRight: \"sv-paneldynamic__remove-btn--right\",\n buttonPrev: \"sv-paneldynamic__prev-btn\",\n buttonNext: \"sv-paneldynamic__next-btn\",\n buttonPrevDisabled: \"sv-paneldynamic__prev-btn--disabled\",\n buttonNextDisabled: \"sv-paneldynamic__next-btn--disabled\",\n progressContainer: \"sv-paneldynamic__progress-container\",\n progress: \"sv-progress\",\n progressBar: \"sv-progress__bar\",\n progressText: \"sv-paneldynamic__progress-text\",\n panelWrapper: \"sv_p_wrapper\",\n panelWrapperInRow: \"sv_p_wrapper_in_row\",\n progressBtnIcon: \"icon-progressbutton\",\n footer: \"\"\n },\n multipletext: {\n root: \"sv_q_mt table\",\n itemTitle: \"sv_q_mt_title\",\n item: \"sv_q_mt_item\",\n itemLabel: \"sv_q_mt_label\",\n row: \"form-group bmd-form-group\",\n itemValue: \"sv_q_mt_item_value form-control\",\n },\n radiogroup: {\n root: \"\",\n item: \"radio\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_radiogroup_inline\",\n itemDecorator: \"sv-hidden\",\n label: \"\",\n labelChecked: \"\",\n itemControl: \"\",\n controlLabel: \"sv_q_radiogroup_control_label\",\n materialDecorator: \"bmd-radio\",\n other: \"sv_q_radiogroup_other form-control\",\n clearButton: \"sv_q_radiogroup_clear button btn btn-primary\",\n column: \"sv_q_select_column\",\n },\n buttongroup: {\n root: \"sv-button-group\",\n item: \"sv-button-group__item\",\n itemIcon: \"sv-button-group__item-icon\",\n itemDecorator: \"sv-button-group__item-decorator\",\n itemCaption: \"sv-button-group__item-caption\",\n itemSelected: \"sv-button-group__item--selected\",\n itemHover: \"sv-button-group__item--hover\",\n itemDisabled: \"sv-button-group__item--disabled\",\n itemControl: \"sv-visuallyhidden\",\n },\n imagepicker: {\n root: \"sv_imgsel\",\n item: \"sv_q_imgsel\",\n itemChecked: \"checked\",\n itemInline: \"sv_q_imagepicker_inline\",\n label: \"sv_q_imgsel_label\",\n itemControl: \"sv_q_imgsel_control_item\",\n image: \"sv_q_imgsel_image\",\n itemText: \"sv_q_imgsel_text\",\n clearButton: \"sv_q_radiogroup_clear\",\n },\n rating: {\n root: \"btn-group\",\n item: \"btn btn-default btn-secondary\",\n selected: \"active\",\n minText: \"sv_q_rating_min_text\",\n itemText: \"sv_q_rating_item_text\",\n maxText: \"sv_q_rating_max_text\",\n disabled: \"\",\n },\n text: \"form-control\",\n expression: \"form-control\",\n file: {\n root: \"form-group bmd-form-group is-fileinput sv_q_file\",\n placeholderInput: \"\",\n preview: \"sv_q_file_preview\",\n removeButton: \"sv_q_file_remove_button\",\n fileInput: \"sv_q_file_input\",\n fileSign: \"sv_q_file_sign\",\n removeFile: \"sv_q_file_remove\",\n fileDecorator: \"sv-hidden\",\n removeButtonBottom: \"sv-hidden\",\n dragAreaPlaceholder: \"sv-hidden\",\n fileList: \"\",\n },\n signaturepad: {\n root: \"sv_q_signaturepad sjs_sp_container\",\n controls: \"sjs_sp_controls\",\n placeholder: \"sjs_sp_placeholder\",\n canvas: \"sjs_sp_canvas\",\n backgroundImage: \"sjs_sp__background-image\",\n clearButton: \"sjs_sp_clear\",\n },\n saveData: {\n root: \"\",\n info: \"alert alert-info\",\n error: \"alert alert-danger\",\n success: \"alert alert-success\",\n button: \"\",\n },\n window: {\n root: \"modal-content\",\n body: \"modal-body\",\n header: {\n root: \"modal-header card-title\",\n title: \"pull-left\",\n button: \"glyphicon pull-right\",\n buttonExpanded: \"glyphicon pull-right glyphicon-chevron-up\",\n buttonCollapsed: \"glyphicon pull-right glyphicon-chevron-down\",\n },\n },\n};\n\n\n/***/ }),\n\n/***/ \"./src/plugins/themes/bootstrapmaterial/theme-settings.ts\":\n/*!****************************************************************!*\\\n !*** ./src/plugins/themes/bootstrapmaterial/theme-settings.ts ***!\n \\****************************************************************/\n/*! exports provided: bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bootstrapMaterialThemeName\", function() { return bootstrapMaterialThemeName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bootstrapMaterialThemeColors\", function() { return bootstrapMaterialThemeColors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bootstrapMaterialThemeCssRules\", function() { return bootstrapMaterialThemeCssRules; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n/* harmony import */ var _common_theme_settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common-theme-settings */ \"./src/plugins/themes/common-theme-settings.ts\");\n/* harmony import */ var _cssbootstrapmaterial__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssbootstrapmaterial */ \"./src/plugins/themes/bootstrapmaterial/cssbootstrapmaterial.ts\");\n\n\n\nvar bootstrapMaterialThemeName = \"bootstrapmaterial\";\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"surveyCss\"][bootstrapMaterialThemeName] = _cssbootstrapmaterial__WEBPACK_IMPORTED_MODULE_2__[\"defaultCss\"];\nvar bootstrapMaterialThemeColors = {\n \"$main-color\": \"#18a689\",\n \"$text-color\": \"#404040;\",\n \"$text-input-color\": \"#404040;\",\n \"$progress-text-color\": \"#9d9d9d\",\n \"$disable-color\": \"#dbdbdb\",\n \"$header-background-color\": \"#e7e7e7\",\n \"$disabled-label-color\": \"rgba(64, 64, 64, 0.5)\",\n \"$slider-color\": \"white\",\n \"$disabled-switch-color\": \"#9f9f9f\",\n \"$disabled-slider-color\": \"#cfcfcf\",\n \"$body-background-color\": \"#ffffff\",\n \"$foreground-light\": \"#909090\",\n \"$foreground-disabled\": \"#161616\",\n \"$background-dim\": \"#f3f3f3\",\n \"$progress-buttons-color\": \"#8dd6c7\",\n \"$progress-buttons-line-color\": \"#d4d4d4\",\n};\nvar bootstrapMaterialThemeCssRules = {\n \".sv_main.sv_bootstrapmaterial_css .form-group.is-focused .form-control\": \"linear-gradient(0deg, $main-color 2px, $main-color 0),linear-gradient(0deg, #D2D2D2 1px, transparent 0);\",\n \".sv_main.sv_bootstrapmaterial_css .sv_qstn\": \"margin-bottom: 1rem;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_qstn label.sv_q_m_label\": \"height: 100%;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_q_image\": \"display: inline-block;\",\n \".sv_main .sv_row .sv_qstn:first-child:last-child\": \"flex: none !important;\",\n \".sv_main .sv_row .sv_p_container:first-child:last-child\": \"flex: none !important;\",\n \".sv_main.sv_bootstrapmaterial_css .checkbox input[type=checkbox]:checked + .checkbox-material .check\": \"border-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css label.checkbox-inline input[type=checkbox]:checked + .checkbox-material .check\": \"border-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .checkbox input[type=checkbox]:checked + .checkbox-material .check:before\": \"color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css label.checkbox-inline input[type=checkbox]:checked + .checkbox-material .check:before\": \"color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .radio input[type=radio]:checked ~ .circle\": \"border-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css label.radio-inline input[type=radio]:checked ~ .circle\": \"border-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .radio input[type=radio]:checked ~ .check\": \"background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css label.radio-inline input[type=radio]:checked ~ .check\": \"background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .btn-default.active\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css .btn-default:active\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css .btn-secondary.active\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css .btn-secondary:active\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css .open>.dropdown-toggle.btn-default\": \"background-color: $main-color; color: $body-background-color;\",\n \".sv_main.sv_bootstrapmaterial_css input[type='button'].btn-primary, .sv_main.sv_bootstrapmaterial_css button.btn-primary\": \"color: $body-background-color; background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css input[type='button'].btn-primary:hover, .sv_main.sv_bootstrapmaterial_css button.btn-primary:hover\": \"background-color: $main-hover-color;\",\n \".sv_main .sv_q_imgsel.checked label>div\": \"background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_q_file_remove:hover\": \"color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .form-group input[type=file]\": \"position: relative; opacity: 1;\",\n \".sv_main.sv_bootstrapmaterial_css .progress\": \"width: 60%; height: 1.5em;\",\n \".sv_main.sv_bootstrapmaterial_css .progress-bar\": \"width: auto; margin-left: 2px; margin-right: 2px;\",\n //progress bar\n \".sv_main .sv-progress\": \"background-color: $header-background-color;\",\n \".sv_main .sv-progress__bar\": \"background-color: $main-color;\",\n //progress buttons\n \".sv_main.sv_bootstrapmaterial_css .sv_progress-buttons__list li:before\": \"border-color: $progress-buttons-color; background-color: $progress-buttons-color;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_progress-buttons__list li:after\": \"background-color: $progress-buttons-line-color;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_progress-buttons__list .sv_progress-buttons__page-title\": \"color: $text-color;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_progress-buttons__list .sv_progress-buttons__page-description\": \"color: $text-color;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_progress-buttons__list li.sv_progress-buttons__list-element--passed:before\": \"border-color: $main-color; background-color: $main-color;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_progress-buttons__list li.sv_progress-buttons__list-element--passed + li:after\": \"background-color: $progress-buttons-color\",\n \".sv_main.sv_bootstrapmaterial_css .sv_progress-buttons__list li.sv_progress-buttons__list-element--current:before\": \"border-color: $main-color; background-color: white;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_progress-buttons__list li.sv_progress-buttons__list-element--passed.sv_progress-buttons__list-element--current:before\": \"border-color: $main-color; background-color: white;\",\n //paneldynamic\n \".sv_main .sv-paneldynamic__prev-btn.sv-paneldynamic__prev-btn--disabled, .sv_main .sv-paneldynamic__next-btn.sv-paneldynamic__next-btn--disabled\": \"fill: $disable-color;\",\n \".sv_main .sv-paneldynamic__progress-text\": \"color: $progress-text-color;\",\n \".sv_main .sv-paneldynamic__prev-btn, .sv_main .sv-paneldynamic__next-btn\": \"fill: $text-color\",\n //boolean\n \".sv_main .sv-boolean .checkbox-decorator\": \"display: none;\",\n \".sv_main .sv-boolean__switch\": \"background-color: $main-color;\",\n \".sv_main .sv-boolean__slider\": \"background-color: $slider-color;\",\n \".sv_main .sv-boolean__label.sv-boolean__label--disabled\": \"color: $disabled-label-color;\",\n \".sv_main .sv-boolean__label\": \"color: $text-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__switch\": \"background-color: $disabled-switch-color;\",\n \".sv_main .sv-boolean--disabled .sv-boolean__slider\": \"background-color: $disabled-slider-color;\",\n //eo boolean\n \".sv_main .sv_matrix_detail_row\": \"background-color: #ededed; border-top: 1px solid $header-background-color; border-bottom: 1px solid $header-background-color;\",\n //signature pad\n \".sv_main .sjs_sp_container\": \"border: 1px dashed $disable-color;\",\n \".sv_main .sjs_sp_placeholder\": \"color: $foreground-light;\",\n \".sv_main .sv-action-bar-item\": \"color: $text-color;\",\n \".sv_main .sv-action-bar-item__icon use\": \"fill: $foreground-light;\",\n \".sv_main .sv-action-bar-item:hover\": \"background-color: $background-dim;\",\n \".sv-skeleton-element\": \"background-color: $background-dim;\",\n};\nObject(_common_theme_settings__WEBPACK_IMPORTED_MODULE_1__[\"setStyles\"])();\nObject(_common_theme_settings__WEBPACK_IMPORTED_MODULE_1__[\"setMediaStyles\"])();\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"StylesManager\"].ThemeColors[bootstrapMaterialThemeName] = bootstrapMaterialThemeColors;\nsurvey_core__WEBPACK_IMPORTED_MODULE_0__[\"StylesManager\"].ThemeCss[bootstrapMaterialThemeName] = bootstrapMaterialThemeCssRules;\n\n\n/***/ }),\n\n/***/ \"./src/plugins/themes/common-theme-settings.ts\":\n/*!*****************************************************!*\\\n !*** ./src/plugins/themes/common-theme-settings.ts ***!\n \\*****************************************************/\n/*! exports provided: setMediaStyles, setStyles */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setMediaStyles\", function() { return setMediaStyles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setStyles\", function() { return setStyles; });\n/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ \"./src/entries/core.ts\");\n\nfunction setMediaStyles() {\n survey_core__WEBPACK_IMPORTED_MODULE_0__[\"StylesManager\"].Media = {\n \".sv_qstn fieldset .sv-q-col-1\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\",\n },\n \".sv_qstn fieldset .sv-q-col-2\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\",\n },\n \".sv_qstn fieldset .sv-q-col-3\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\",\n },\n \".sv_qstn fieldset .sv-q-col-4\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\",\n },\n \".sv_qstn fieldset .sv-q-col-5\": {\n style: \"width: 100%;\",\n media: \"@media only screen and (max-width: 480px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn\": {\n style: \"display: block; width: 100% !important;\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .title-left\": {\n style: \"float: none;\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .sv_q_radiogroup_inline, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .sv_q_checkbox_inline, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .sv_q_imagepicker_inline\": {\n style: \"display: block;\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table\": {\n style: \"display: block;\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table thead\": {\n style: \"display: none;\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table tbody, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table tr, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table td\": {\n style: \"display: block;\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.table:not(.sv_q_matrix) td:before\": {\n style: \"content: attr(data-responsive-title);\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn table.sv_q_matrix td:after\": {\n style: \"content: attr(data-responsive-title); padding-left: 1em\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .radio label, .sv_main .sv_container .panel-body.card-block .sv_row .sv_qstn .checkbox label\": {\n style: \"line-height: 12px; vertical-align: top;\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_qstn label.sv_q_m_label\": {\n style: \"display: inline;\",\n media: \"@media (max-width: 600px)\",\n },\n \".sv_main .sv_custom_header\": {\n style: \"display: none;\",\n media: \"@media (max-width: 1300px)\",\n },\n \".sv_main .sv_container .sv_header h3\": {\n style: \"font-size: 1.5em;\",\n media: \"@media (max-width: 1300px)\",\n },\n \".sv_main .sv_container .sv_header h3 span\": {\n style: \"font-size: 0.75em;\",\n media: \"@media (max-width: 700px)\",\n },\n \".sv_main.sv_bootstrap_css .sv-progress__text\": {\n style: \"margin-left: 8em;\",\n media: \"@media (min-width: 768px)\",\n },\n \".sv_row\": {\n style: \" display: flex; flex-wrap: wrap;\",\n media: \"@supports (display: flex)\",\n },\n \".sv-row > .sv-row__panel, .sv-row__question:not(:last-child)\": {\n style: \"float: left;\",\n media: \"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)\",\n },\n \"[dir='rtl'],[style*='direction:rtl'] .sv-row__question:not(:last-child)\": {\n style: \"float: right;\",\n media: \"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)\",\n },\n \".sv-row > .sv-row__panel, .sv-row__question\": {\n style: \"width: 100% !important; padding-right: 0 !important;\",\n media: \"@media only screen and (max-width: 600px)\",\n },\n };\n}\nfunction setStyles() {\n survey_core__WEBPACK_IMPORTED_MODULE_0__[\"StylesManager\"].Styles = {\n // \".sv_bootstrap_css\": \"position: relative; width: 100%; background-color: #f4f4f4\",\n // \".sv_bootstrap_css .sv_custom_header\": \"position: absolute; width: 100%; height: 275px; background-color: #e7e7e7;\",\n // \".sv_bootstrap_css .sv_container\": \"max-width: 80%; margin: auto; position: relative; color: #6d7072; padding: 0 1em;\",\n // \".sv_bootstrap_css .panel-body\": \"background-color: white; padding: 1em 1em 5em 1em; border-top: 2px solid lightgray;\",\n \".sv_main span\": \"word-break: break-word;\",\n \".sv_main legend\": \"border: none; margin: 0;\",\n \".sv_bootstrap_css .sv_qstn\": \"padding: 0.5em var(--sv-element-add-padding-right, 1em) 1.5em var(--sv-element-add-padding-left, 1em);\",\n \".sv_bootstrap_css .sv_qcbc input[type=checkbox], .sv_bootstrap_css .sv_qcbc input[type=radio]\": \"vertical-align: middle; margin-top: -1px\",\n \".sv_bootstrap_css .sv_qstn fieldset\": \"display: block;\",\n \".sv_bootstrap_css .sv_qstn .sv_q_checkbox_inline, .sv_bootstrap_css .sv_qstn .sv_q_radiogroup_inline\": \"display: inline-block;\",\n \".sv_bootstrap_css .sv-paneldynamic__progress-container \": \"position: relative; margin-right: 250px; margin-left: 40px; margin-top: 10px;\",\n \".sv_main.sv_bootstrapmaterial_css .sv_q_radiogroup_control_label\": \"display: inline; position: static;\",\n \".sv_main.sv_bootstrapmaterial_css .checkbox\": \"margin-top:10px;margin-bottom:10px;\",\n \".sv_row\": \"clear: both; min-width:300px;\",\n \".sv_row .sv_qstn\": \"float: left\",\n \".sv_row .sv_qstn:last-child\": \"float: none\",\n \".sv_qstn\": \"display: vertical-align: top; overflow: auto; min-width:300px;\",\n \".sv_p_container\": \"display: vertical-align: top; min-width:300px;\",\n \".sv_q_title .sv_question_icon\": \"float: right; margin-right: 1em;\",\n \".sv_q_title .sv_question_icon::before\": \"content: ''; background-repeat: no-repeat; background-position: center; padding: 0.5em; display: inline-block; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMi4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxMCAxMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAgMTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiM2RDcwNzI7fQ0KPC9zdHlsZT4NCjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMiwyIDAsNCA1LDkgMTAsNCA4LDIgNSw1ICIvPg0KPC9zdmc+DQo=);\",\n \".sv_q_title .sv_question_icon.sv_expanded::before\": \"transform: rotate(180deg);\",\n \".sv_qbln .checkbox-material\": \"margin-right: 3px;\",\n \".sv_qcbx .checkbox-material\": \"margin-right: 5px;\",\n \".sv_qcbx .checkbox label\": \"justify-content: left; display: inline-block;\",\n \".sv_qstn .radio label\": \"justify-content: left; display: inline-block;\",\n \".sv_qstn .sv_q_imgsel > label img\": \"pointer-events: none;\",\n \".sv_qstn .sv_q_imgsel.sv_q_imagepicker_inline\": \"display: inline-block;\",\n \".sv_qstn label.sv_q_m_label\": \"position: absolute; margin: 0; display: block; width: 100%;\",\n \".sv_qstn td\": \"position: relative;\",\n \".sv_q_mt\": \"table-layout: fixed;\",\n \".sv_q_mt_label\": \"display: flex; align-items: center; font-weight: inherit;\",\n \".sv_q_mt_title\": \"margin-right: 0.5em; width: 33%;\",\n \".sv_q_mt_item\": \"flex: 1;\",\n \".sv_q_mt_item_value\": \"float: left;\",\n '[dir=\"rtl\"] .sv_q_mt_item_value': \"float: right;\",\n \".sv_qstn.sv_qstn_left\": \"margin-top: 0.75em;\",\n \".sv_qstn .title-left\": \"float: left; margin-right: 1em; max-width: 50%\",\n '[dir=\"rtl\"] .sv_qstn .title-left': \"float: right; margin-left: 1em;\",\n \".sv_qstn .content-left\": \"overflow: hidden\",\n \".sv_q_radiogroup_inline .sv_q_radiogroup_other\": \"display: inline-block;\",\n \".sv_q_checkbox_inline .sv_q_checkbox_other\": \"display: inline-block;\",\n \".sv_q_checkbox_inline, .sv_q_radiogroup_inline, .sv_q_imagepicker_inline\": \"line-height: 2.5em;\",\n \".form-inline .sv_q_checkbox_inline:not(:last-child)\": \"margin-right: 1em;\",\n \".form-inline .sv_q_radiogroup_inline:not(:last-child)\": \"margin-right: 1em;\",\n \".sv_imgsel .sv_q_imagepicker_inline:not(:last-child)\": \"margin-right: 1em;\",\n \".sv_qstn fieldset\": \"border: none; margin: 0; padding: 0;\",\n \".sv_qstn .sv_q_file_placeholder\": \"display:none\",\n \".sv_p_title\": \"padding-left: 1em; padding-bottom: 0.3em;\",\n \".sv_p_title_expandable, .sv_q_title_expandable\": \"cursor: pointer; position: relative; display: flex; align-items: center; padding-right: 24px;\",\n \".sv_p_title_expandable::after, .sv_q_title_expandable::after\": \"content: \\\"\\\"; display: block;background-image: url(\\\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3C!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 10 10' style='enable-background:new 0 0 10 10;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0%7Bfill:%23404040;%7D%0A%3C/style%3E%3Cpolygon class='st0' points='2,2 0,4 5,9 10,4 8,2 5,5 '/%3E%3C/svg%3E%0A\\\"); background-repeat: no-repeat; background-position: center center; background-size: 10px 12px; width: 24px; height: 24px; position: absolute; right: 0;\",\n \".sv_p_title_expanded::after, .sv_q_title_expanded::after\": \"transform: rotate(180deg);\",\n \".sv_p_title .sv_panel_icon\": \"float: right; margin-right: 1em;\",\n \".sv_p_title .sv_panel_icon::before\": \"content: ''; background-repeat: no-repeat; background-position: center; padding: 0.5em; display: inline-block; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMi4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxMCAxMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAgMTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiM2RDcwNzI7fQ0KPC9zdHlsZT4NCjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMiwyIDAsNCA1LDkgMTAsNCA4LDIgNSw1ICIvPg0KPC9zdmc+DQo=);\",\n \".sv_p_title .sv_panel_icon.sv_expanded::before\": \"transform: rotate(180deg);\",\n \".sv_p_footer\": \"padding-left: 1em; padding-bottom: 1em;padding-top: 1em;\",\n \".sv_matrix_cell_detail_button\": \"position: relative\",\n \".sv_detail_panel_icon\": \"display: block; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 14px; height: 14px;\",\n \".sv_detail_panel_icon::before\": \"content: ''; background-repeat: no-repeat; background-position: center; width: 14px; height: 14px; display: block; transform: rotate(270deg); background-image: url(\\\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3C!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' style='enable-background:new 0 0 15 15;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0%7Bfill:%23FFFFFF;%7D%0A%3C/style%3E%3Cpolygon class='st0' points='14,5.5 12.6,4.1 7.5,9.1 2.4,4.1 1,5.5 7.5,12 '/%3E%3C/svg%3E%0A\\\");\",\n \".sv_detail_panel_icon.sv_detail_expanded::before\": \"transform: rotate(0deg)\",\n \".sv_matrix_empty_rows_section\": \"text-align: center; vertical-align: middle;\",\n \".sv_matrix_empty_rows_text\": \"padding:20px\",\n \".sv_q_file > input[type=file], .sv_q_file > button\": \"display: inline-block;\",\n \".sv_q_file_preview\": \"display: inline-block; vertical-align: top; border: 1px solid lightgray; padding: 5px; margin-top: 10px;\",\n \".sv_q_file_preview > a\": \"display: block; overflow: hidden; vertical-align: top; white-space: nowrap; text-overflow: ellipsis;\",\n \".sv_q_file_remove_button\": \"line-height: normal;\",\n \".sv_q_file_remove\": \"display: block; cursor: pointer;\",\n \".sv_q_m_cell_text\": \"cursor: pointer;\",\n \".sv_q_dd_other\": \"margin-top: 1em;\",\n \".sv_q_dd_other input\": \"width: 100%;\",\n \".sv_q_dd_clean-button\": \"margin: 0.15em 3em;\",\n \".sv_q_dd_clean-button-svg\": \"width: 1em; height: 1em;\",\n \".sv_q_dd_control\": \"display: flex; justify-content: space-between; appearance: none;\",\n \".sv_q_dd_value\": \"width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; position: relative;\",\n \".sv_q_dd_hint-prefix span\": \"white-space: pre;\",\n \".sv_q_dd_hint-suffix\": \"display: flex;\",\n \".sv_q_dd_root\": \"position: relative;\",\n \".sv_q_dd_select_wrapper\": \"position: relative;\",\n \".sv_q_dd_select_wrapper::after\": \"content: \\\"\\\"; display: block;background-image: url(\\\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3C!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 10 10' style='enable-background:new 0 0 10 10;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0%7Bfill:%23404040;%7D%0A%3C/style%3E%3Cpolygon class='st0' points='2,2 0,4 5,9 10,4 8,2 5,5 '/%3E%3C/svg%3E%0A\\\"); background-repeat: no-repeat; background-position: center center; background-size: 10px 12px; width: 34px; height: 100%; position: absolute; inset-inline-end: 0; top: 0;\",\n \".sv_q_dd_filter-string-input\": \"outline: none; border: none; background-color: transparent; position: absolute; inset-inline-start: 0; inset-block-start: 0; width: 100%; max-width: 100%; padding: 0;\",\n \".sv_q_dropdown_clean-button\": \"margin: auto 2em;\",\n \".sv_q_tagbox__placeholder\": \"position: absolute; top: 0; inset-inline-start: 1em; max-width: 100%; width: auto; height: 100%; text-align: start; cursor: text; pointer-events: none;\",\n \".sv_qstn .sv-q-col-1, .sv-question .sv-q-col-1\": \"width: 100%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-col-2, .sv-question .sv-q-col-2\": \"width: calc(50% - 1em); display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-col-3, .sv-question .sv-q-col-3\": \"width: calc(33.33333% - 1em); display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-col-4, .sv-question .sv-q-col-4\": \"width: calc(25% - 1em); display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-col-5, .sv-question .sv-q-col-5\": \"width: calc(20% - 1em); display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-1, .sv-question .sv-q-column-1\": \"width: 100%; max-width: 100%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-2, .sv-question .sv-q-column-2\": \"max-width: 50%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-3, .sv-question .sv-q-column-3\": \"max-width: 33.33333%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-4, .sv-question .sv-q-column-4\": \"max-width: 25%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv-q-column-5, .sv-question .sv-q-column-5\": \"max-width: 20%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;\",\n \".sv_qstn .sv_q_file_input\": \"color: transparent;\",\n \".sv_qstn .sv_q_imgsel label > div\": \"overflow: hidden; white-space: nowrap; text-overflow: ellipsis; padding: 4px; border: 1px solid lightgray; border-radius: 4px;\",\n \".sv_qstn .sv_q_imgsel label > div > img, .sv_qstn .sv_q_imgsel label > div > embed\": \"display: block;\",\n \".sv_qstn table tr td .sv_q_m_cell_label\": \"position: absolute; left: 0; right: 0; top: 0; bottom: 0;\",\n \"f-panel\": \"padding: 0.5em 1em; display: inline-block; line-height: 2em;\",\n \".sv_progress_bar > span\": \"white-space: nowrap;\",\n //progress buttons\n \".sv_progress-buttons__container-center\": \"text-align: center;\",\n \".sv_progress-buttons__container\": \"display: inline-block; font-size: 0; width: 100%; max-width: 1100px; white-space: nowrap; overflow: hidden;\",\n \".sv_progress-buttons__image-button-left\": \"display: inline-block; vertical-align: top; margin-top: 22px; font-size: 14px; width: 16px; height: 16px; cursor: pointer; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMi4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMTEsMTIgOSwxNCAzLDggOSwyIDExLDQgNyw4ICIvPg0KPC9zdmc+DQo=);\",\n \".sv_progress-buttons__image-button-right\": \"display: inline-block; vertical-align: top; margin-top: 22px; font-size: 14px; width: 16px; height: 16px; cursor: pointer; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMi4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iNSw0IDcsMiAxMyw4IDcsMTQgNSwxMiA5LDggIi8+DQo8L3N2Zz4NCg==);\",\n \".sv_progress-buttons__image-button--hidden\": \"visibility: hidden;\",\n \".sv_progress-buttons__list-container\": \"max-width: calc(100% - 36px); display: inline-block; overflow: hidden;\",\n \".sv_progress-buttons__list\": \"display: inline-block; width: max-content; padding-left: 28px; padding-right: 28px; margin-top: 14px; margin-bottom: 14px;\",\n \".sv_progress-buttons__list li\": \"width: 138px; font-size: 14px; font-family: var(--font-family, $font-family); position: relative; text-align: center; vertical-align: top; display: inline-block;\",\n \".sv_progress-buttons__list li:before\": \"width: 24px; height: 24px; content: ''; line-height: 30px; display: block; margin: 0 auto 10px auto; border: 3px solid; border-radius: 50%; box-sizing: content-box; cursor: pointer;\",\n \".sv_progress-buttons__list li:after\": \"width: 73%; height: 3px; content: ''; position: absolute; top: 15px; left: -36.5%;\",\n \".sv_progress-buttons__list li:first-child:after\": \"content: none;\",\n \".sv_progress-buttons__list .sv_progress-buttons__page-title\": \"width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: bold;\",\n \".sv_progress-buttons__list .sv_progress-buttons__page-description\": \"width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\",\n \".sv_progress-buttons__list li.sv_progress-buttons__list-element--nonclickable:before\": \"cursor: not-allowed;\",\n // ranking\n \".sv-ranking\": \"outline: none; user-select: none;\",\n \".sv-ranking-item\": \"cursor: pointer; position: relative;\",\n \".sv-ranking-item:focus .sv-ranking-item__icon--hover\": \"visibility: hidden;\",\n \".sv-ranking-item:hover .sv-ranking-item__icon--hover\": \"visibility: visible;\",\n \".sv-question--disabled .sv-ranking-item:hover .sv-ranking-item__icon--hover\": \"visibility: hidden;\",\n \".sv-ranking-item:focus\": \"outline: none;\",\n \".sv-ranking-item:focus .sv-ranking-item__icon--focus\": \"visibility: visible; top: 15px;\",\n \".sv-ranking-item:focus .sv-ranking-item__index\": \"background: white; border: 2px solid var(--primary, #19b394);\",\n \".sv-ranking-item__content\": \"display: flex; align-items: center; line-height: 1em; padding: 5px 0px; border-radius: 100px;\",\n \".sv-ranking-item__icon-container\": \"left: 0;top: 0;bottom: 0;width: calc(3 * var(--base-unit, 8px)); flex-shrink: 0;\",\n \".sv-ranking-item__icon\": \"visibility: hidden;top:20px; fill: var(--primary, #19b394); position: absolute;\",\n \".sv-ranking-item__index\": \"display: flex; flex-shrink: 0; align-items: center; justify-content: center; background: var(--primary-light, rgba(25, 179, 148, 0.1)); color: var(--foreground); border-radius: 100%; border:2px solid transparent; width: 40px; height: 40px; line-height: 1em;\",\n \".sv-ranking-item__text\": \"display: inline-block; overflow:hidden; text-overflow: ellipsis; white-space: nowrap; margin: 0 calc(2 * var(--base-unit, 8px));\",\n \".sv-ranking-item__ghost\": \"display: none; background-color: var(--background-dim, #f3f3f3); border-radius: 100px;width: 200px;height: 55px;z-index: 1;position: absolute;left: 25px;\",\n \"[dir='rtl'] .sv-ranking-item__ghost\": \"left: initilal; right: 25px;\",\n \".sv-ranking-item--ghost .sv-ranking-item__ghost\": \"display: block;\",\n \".sv-ranking-item--ghost .sv-ranking-item__content\": \"visibility: hidden;\",\n \".sv-ranking-item--drag .sv-ranking-item__content\": \"box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1);border-radius: 100px;\",\n \".sv-ranking--drag .sv-ranking-item:hover .sv-ranking-item__icon\": \"visibility: hidden;\",\n \".sv-ranking-item--drag .sv-ranking-item__icon--hover\": \"visibility: visible;\",\n \".sv-ranking--mobile .sv-ranking-item__icon--hover\": \"visibility:visible; fill:#9f9f9f;\",\n \".sv-ranking--mobile.sv-ranking--drag .sv-ranking-item--ghost .sv-ranking-item__icon.sv-ranking-item__icon--hover\": \"visibility:hidden;\",\n \".sv-ranking--mobile.sv-ranking-shortcut\": \"max-width: 80%;\",\n \".sv-ranking--design-mode .sv-ranking-item:hover .sv-ranking-item__icon\": \"visibility: hidden;\",\n \".sv-ranking--disabled\": \"opacity: 0.8;\",\n \".sv-ranking-shortcut .sv-ranking-item__icon\": \"fill: var(--primary, #19b394); \",\n \".sv-ranking--drag-handle-area-icon .sv-ranking-item\": \"cursor: initial\",\n \".sv-ranking--drag-handle-area-icon .sv-ranking-item__icon--hover\": \"cursor: pointer;\",\n // EO ranking\n // drag drop\n \".sv-dragged-element-shortcut\": \"height: 24px; min-width: 100px; border-radius: 36px; background-color: white; padding: 16px; cursor: grabbing; position: absolute; z-index: 10000; box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1); font-family: var(--font-family, $font-family); font-size: 16px; padding-left: 20px;line-height: 24px;\",\n \".sv-matrixdynamic__drag-icon\": \"padding-top:14px\",\n \".sv-matrixdynamic__drag-icon:after\": \"content: ' '; display: block; height: 6px; width: 20px; border: 1px solid #e7e7e7; box-sizing: border-box; border-radius: 10px; cursor: move; margin-top: 12px;\",\n \".sv-matrix-row--drag-drop-ghost-mod td\": \"background-color: #f3f3f3;\",\n \".sv-matrix-row--drag-drop-ghost-mod td > *\": \"visibility: hidden\",\n //eo drag-drop\n \".sv_qstn .sv_q_select_column\": \"display: inline-block; vertical-align: top; min-width: 10%;\",\n \".sv_qstn .sv_q_select_column > *:not(.sv_technical)\": \"display: block;\",\n \".sv_main .sv_container .sv_body .sv_p_root .sv_qstn .sv_q_select_column textarea\": \"margin-left: 0; padding-left: 0; line-height: initial;\",\n \".sv_main .sv-hidden\": \"display: none !important;\",\n \".sv_main .sv-visuallyhidden\": \"position: absolute; height: 1px !important; width: 1px !important; overflow: hidden; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);\",\n // paneldynamic progress\n \".sv_main .sv-progress\": \"height: 0.19em; background-color: $header-background-color; position: relative;\",\n \".sv_main .sv-progress__bar\": \"background-color: $main-color; height: 100%; position: relative;\",\n // EO paneldynamic progress\n // paneldynamic\n \".sv_main .sv-paneldynamic__progress-container\": \"position: relative; display: inline-block; width: calc(100% - 250px); margin-top: 20px;\",\n \".sv_main .sv-paneldynamic__add-btn\": \"float: right;\",\n \".sv_main .sv-paneldynamic__add-btn--list-mode\": \"float: none; margin-top: 0;\",\n \".sv_main .sv-paneldynamic__remove-btn\": \"margin-top: 1.25em;\",\n \".sv_main .sv-paneldynamic__remove-btn--right\": \"margin-top: 0; margin-left: 1.25em;\",\n \".sv_main .sv-paneldynamic__prev-btn, .sv_main .sv-paneldynamic__next-btn\": \"box-sizing: border-box; display: inline-block; cursor: pointer; width: 0.7em; top: -0.28em; position: absolute;\",\n \".sv_main .sv-paneldynamic__prev-btn svg, .sv_main .sv-paneldynamic__next-btn svg\": \"width: 0.7em; height: 0.7em; display: block;\",\n \".sv_main .sv-paneldynamic__prev-btn\": \"left: -1.3em; transform: rotate(90deg);\",\n \".sv_main .sv-paneldynamic__next-btn \": \"right: -1.3em; transform: rotate(270deg);\",\n \".sv_main .sv-paneldynamic__prev-btn.sv-paneldynamic__prev-btn--disabled, .sv_main .sv-paneldynamic__next-btn.sv-paneldynamic__next-btn--disabled\": \"cursor: auto;\",\n \".sv_main .sv-paneldynamic__progress-text\": \"font-weight: bold; font-size: 0.87em; margin-top: 0.69em; margin-left: 4em\",\n // EO paneldynamic\n //boolean\n \".sv_main .sv-boolean__switch\": \"display: inline-block; box-sizing: border-box; width: 63px; height: 24px; margin-right: 17px; margin-left: 21px; padding: 2px 3px; vertical-align: middle; border-radius: 12px; cursor: pointer;\",\n \".sv_main .sv-boolean__slider\": \"display: inline-block; width: 20px; height: 20px; transition-duration: .4s; transition-property: margin-left; border: none; border-radius: 100%;\",\n \".sv_main .sv-boolean__label\": \"vertical-align: middle; cursor: pointer;\",\n \".sv_main .sv-boolean--indeterminate .sv-boolean__slider\": \"margin-left: calc(50% - 10px);\",\n \".sv_main .sv-boolean input:focus ~ .sv-boolean__switch\": \"outline-width: 1px; outline-style: solid; outline-offset: 1px;\",\n \".sv_main .sv-boolean--checked .sv-boolean__slider\": \"margin-left: calc(100% - 20px);\",\n \"[dir='rtl'] .sv-boolean__label \": \"float: right;\",\n \"[dir='rtl'] .sv-boolean--indeterminate .sv-boolean__slider\": \"margin-right: calc(50% - 0.625em);\",\n \"[dir='rtl'] .sv-boolean--checked .sv-boolean__slider\": \"margin-right: calc(100% - 1.25em);\",\n \"[dir='rtl'] .sv-boolean__switch\": \"float: right;\",\n \"[style*='direction:rtl'] .sv-boolean__label \": \"float: right;\",\n \"[style*='direction:rtl'] .sv-boolean--indeterminate .sv-boolean__slider\": \"margin-right: calc(50% - 0.625em);\",\n \"[style*='direction:rtl'] .sv-boolean--checked .sv-boolean__slider\": \"margin-right: calc(100% - 1.25em);\",\n \"[style*='direction:rtl'] .sv-boolean__switch\": \"float: right;\",\n // EO boolean\n \".sv_main .sv_q_num\": \"\",\n \".sv_main .sv_q_num + span\": \"\",\n // SignaturePad\n \".sv_main .sjs_sp_container\": \"position: relative; box-sizing: content-box;\",\n \".sv_main .sjs_sp_controls\": \"position: absolute; left: 0; bottom: 0;\",\n \".sv_main .sjs_sp_controls > button\": \"user-select: none;\",\n \".sv_main .sjs_sp_container>div>canvas:focus\": \"outline: none;\",\n \".sv_main .sjs_sp_placeholder\": \"display: flex; align-items: center; justify-content: center; position: absolute; z-index: 0; user-select: none; pointer-events: none; width: 100%; height: 100%;\",\n \".sv_main .sjs_sp_canvas\": \"position: absolute; top: 0; left: 0;\",\n \".sv_main .sjs_sp__background-image\": \"position: absolute; top: 0; left: 0;\",\n // logo\n // \".sv_main .sv_header\": \"white-space: nowrap;\",\n \".sv_main .sv_logo\": \"\",\n \".sv_main .sv-logo--left\": \"display: inline-block; vertical-align: top; margin-right: 2em;\",\n \".sv_main .sv-logo--right\": \"display: inline-block; vertical-align: top; margin-left: 2em; \",\n \".sv_main .sv-logo--top\": \"display: block; width: 100%; text-align: center;\",\n \".sv_main .sv-logo--bottom\": \"display: block; width: 100%; text-align: center;\",\n \".sv_main .sv_header__text\": \"display: inline-block; vertical-align: top; max-width: 100%; width: 100%\",\n \".sv_main .sv-expand-action:before\": \"content: \\\"\\\"; display: inline-block; background-image: url(\\\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3C!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 10 10' style='enable-background:new 0 0 10 10;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0%7Bfill:%23404040;%7D%0A%3C/style%3E%3Cpolygon class='st0' points='2,2 0,4 5,9 10,4 8,2 5,5 '/%3E%3C/svg%3E%0A\\\"); background-repeat: no-repeat; background-position: center center; height: 10px; width: 12px; margin: auto 8px;\",\n \".sv_main .sv-expand-action--expanded:before\": \"transform: rotate(180deg);\",\n \".sv_main .sv-action-bar\": \"display: flex; position: relative; align-items: center; margin-left: auto; padding: 0 0 0 16px; overflow: hidden; white-space: nowrap;\",\n \".sv_main .sv-action-bar-separator\": \"display: inline-block; width: 1px; height: 24px; vertical-align: middle; margin-right: 16px; background-color: #d6d6d6;\",\n \".sv_main .sv-action-bar-item\": \"-webkit-appearance: none; -moz-appearance: none; appearance: none; display: flex; height: 40px; padding: 8px; box-sizing: border-box; margin-right: 16px; border: none; border-radius: 2px; background-color: transparent; cursor: pointer; line-height: 24px; font-size: 16px; overflow-x: hidden; white-space: nowrap; min-width: auto; font-weight: normal\",\n \".sv_main .sv-action-bar-item__title\": \"vertical-align: middle; white-space: nowrap;\",\n \".sv_main .sv-action-bar-item__title--with-icon\": \"margin-left: 8px;\",\n \".sv_main .sv-action__content\": \"display: flex; flex-direction: row; align-items: center;\",\n \".sv_main .sv-action__content > *\": \"flex: 0 0 auto;\",\n \".sv_main .sv-action--hidden\": \"width: 0px; height: 0px; overflow: hidden;\",\n \".sv_main .sv-action-bar-item__icon svg\": \"display: block;\",\n \".sv_main .sv-action-bar-item:active\": \"opacity: 0.5;\",\n \".sv_main .sv-action-bar-item:focus\": \"outline: none;\",\n \".sv_main .sv-title-actions\": \"display: flex; align-items: center; width: 100%;\",\n \".sv_main .sv-title-actions__title\": \"flex-wrap: wrap; max-width: 90%; min-width: 50%;\",\n \".sv_main .sv-title-actions__bar\": \"min-width: 56px;\",\n \".sv_main .sv-title-actions .sv-title-actions__title\": \"min-width: unset; max-width: unset; flex-wrap: wrap; flex: 0 0 auto;\",\n \".sv_main .sv-title-actions .sv-action-title-bar\": \"min-width: unset; flex: 1 1 auto; justify-content: flex-end;\",\n \".sv_main .sv_matrix_cell_actions .sv-action-bar\": \"margin-left: 0; padding-left: 0;\",\n \".sv_main .sv_p_wrapper_in_row\": \"display: flex; flex-direction: row; align-items: center;\",\n \".sv_main .sv_p_remove_btn_right\": \"margin-left: 1em;\",\n //button-group\n \".sv_main .sv-button-group\": \"display: flex; align-items: center; flex-direction: row; font-size: 16px; height: 48px; overflow: auto;\",\n \".sv_main .sv-button-group__item\": \"display: flex; box-sizing: border-box; flex-direction: row; justify-content: center; align-items: center; width: 100%; padding: 11px 16px; line-height: 24px; border-width: 1px; border-style: solid; outline: none; font-size: 16px; font-weight: 400; cursor: pointer; overflow: hidden;\",\n \".sv_main .sv-button-group__item:not(:first-of-type)\": \"margin-left: -1px;\",\n \".sv_main .sv-button-group__item-icon\": \"display: block; height: 24px;\",\n \".sv_main .sv-button-group__item--selected\": \"font-weight: 600;\",\n \".sv_main .sv-button-group__item-decorator\": \"display: flex; align-items: center; max-width: 100%;\",\n \".sv_main .sv-button-group__item-icon + .sv-button-group__item-caption\": \"margin-left: 8px\",\n \".sv_main .sv-button-group__item-caption\": \"display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\",\n \".sv_main .sv-button-group__item--disabled\": \"color: cursor: default;\",\n //eo button-group\n //popup\n \"sv-popup\": \"display: block; position: absolute; z-index: -1;\",\n \".sv-popup\": \"position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; outline: none; z-index: 1500;\",\n \".sv-popup.sv-dropdown-popup\": \"height: 0;\",\n \".sv-popup__container\": \"box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.1); position: absolute; padding: 0;\",\n \".sv-popup__body-content\": \"background-color: var(--background, #fff); border-radius: calc(0.5 * var(--base-unit, 8px)); width: 100%; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; max-height: 90vh; max-width: 100vw;\",\n \".sv-popup--modal .sv-list__filter\": \"padding-top: 8px;\",\n \".sv-popup--modal .sv-list__filter-icon\": \"top: 20px;\",\n \".sv-popup--overlay .sv-list__filter\": \"padding-top: 8px;\",\n \".sv-popup--overlay .sv-list__filter-icon\": \"top: 20px;\",\n \".sv-popup--modal\": \"display: flex; align-items: center; justify-content: center;\",\n \".sv-popup--modal .sv-popup__container\": \"position: static;\",\n \".sv-popup--modal .sv-popup__body-content\": \"padding: calc(4 * var(--base-unit, 8px));\",\n \".sv-popup--overlay\": \"width: 100%;\",\n \".sv-popup--overlay .sv-popup__container\": \"background: rgba(144, 144, 144, 0.5); max-width: 100vw; max-height: calc(100vh - 1 * var(--base-unit, 8px)); height: calc(100vh - 1 * var(--base-unit, 8px)); width: 100%; padding-top: calc(2 * var(--base-unit, 8px)); border: unset;\",\n \".sv-popup__shadow\": \"width: 100%; height: 100%; border-radius: calc(1 * var(--base-unit, 8px));\",\n \".sv-popup--overlay .sv-popup__body-content\": \"border-radius: calc(2 * var(--base-unit, 8px)) calc(2 * var(--base-unit, 8px)) 0px 0px; background: var(--background, #fff); box-shadow: 0px calc(1 * var(--base-unit, 8px)) calc(2 * var(--base-unit, 8px)) rgba(0, 0, 0, 0.1); padding: calc(3 * var(--base-unit, 8px)) calc(2 * var(--base-unit, 8px)) calc(2 * var(--base-unit, 8px)); height: calc(100% - calc(1 * var(--base-unit, 8px))); max-height: 100vh; max-width: 100vw;\",\n \".sv-popup--overlay .sv-popup__scrolling-content\": \"height: calc(100% - (10 * var(--base-unit, 8px)));\",\n \".sv-popup--overlay .sv-popup__body-footer\": \"margin-top: calc(2 * var(--base-unit, 8px));\",\n \".sv-popup--overlay .sv-popup__body-footer .sv-action\": \"width: 100%;\",\n \".sv-popup--overlay .sv-popup__body-footer .sv-action-bar\": \"width: 100%;\",\n \".sv-popup--overlay .sv-popup__body-footer-item\": \"width: 100%;\",\n \".sv-popup--overlay .sv-popup__button\": \"background-color: var(--primary, #19b394); border: 2px solid var(--primary, #19b394); color: var(--primary-foreground, #fff);\",\n \".sv-popup__scrolling-content\": \"height: 100%; overflow: auto; display: flex; flex-direction: column;\",\n \".sv-popup__scrolling-content::-webkit-scrollbar\": \"height: 6px; width: 6px; background-color: var(--background-dim, #f3f3f3);\",\n \".sv-popup__scrolling-content::-webkit-scrollbar-thumb\": \"background: var(--primary-light, rgba(25, 179, 148, 0.1));\",\n \".sv-popup__content\": \"min-width: 100%; height: 100%; display: flex; flex-direction: column; min-height: 0;\",\n \".sv-popup--show-pointer.sv-popup--top .sv-popup__pointer\": \"transform: translate(calc(-1 * var(--base-unit, 8px))) rotate(180deg);\",\n \".sv-popup--show-pointer.sv-popup--bottom .sv-popup__pointer\": \"transform: translate(calc(-1 * var(--base-unit, 8px)), calc(-1 * var(--base-unit, 8px)));\",\n \".sv-popup--show-pointer.sv-popup--right\": \"transform: translate(calc(1 * var(--base-unit, 8px)));\",\n \".sv-popup--show-pointer.sv-popup--right .sv-popup__pointer\": \"transform: translate(-12px, -4px) rotate(-90deg);\",\n \".sv-popup--show-pointer.sv-popup--left\": \"transform: translate(calc(-1 * var(--base-unit, 8px)));\",\n \".sv-popup--show-pointer.sv-popup--left .sv-popup__pointer\": \"transform: translate(-4px, -4px) rotate(90deg);\",\n \".sv-popup__pointer\": \"display: block; position: absolute;\",\n \".sv-popup__pointer:after\": \"content: ' '; display: block; width: 0; height: 0; border-left: calc(1 * var(--base-unit, 8px)) solid transparent; border-right: calc(1 * var(--base-unit, 8px)) solid transparent; border-bottom: calc(1 * var(--base-unit, 8px)) solid var(--background, #fff); align-self: center;\",\n \".sv-popup__body-header\": \"font-family: var(--font-family, $font-family); font-size: calc(3 * var(--base-unit, 8px)); line-height: calc(4 * var(--base-unit, 8px)); font-style: normal; font-weight: 700; margin-bottom: calc(2 * var(--base-unit, 8px)); color: var(--foreground, #161616);\",\n \".sv-popup__body-footer\": \"display: flex; margin-top: calc(4 * var(--base-unit, 8px));\",\n \".sv-popup__body-footer .sv-action-bar\": \"gap: calc(1.5 * var(--base-unit, 8px));\",\n \".sv-popup__button\": \"padding: calc(2 * var(--base-unit, 8px)) calc(6 * var(--base-unit, 8px)); background: var(--background, #fff); box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.15); border-radius: 4px; margin: 2px; cursor: pointer; font-family: var(--font-family, $font-family); font-style: normal; font-weight: 600; font-size: calc(2 * var(--base-unit, 8px)); line-height: calc(3 * var(--base-unit, 8px)); text-align: center; color: var(--primary, #19b394); border: none; outline: none;\",\n \".sv-popup__button:hover\": \"box-shadow: 0 0 0 2px var(--primary, #19b394);\",\n \".sv-popup__button:disabled\": \"color: var(--foreground-disabled, rgba(#161616, 0.16)); cursor: default;\",\n \".sv-popup__button:disabled:hover\": \"box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.15);\",\n \".sv-popup__button.sv-popup__button--apply\": \"background-color: var(--primary, #19b394); color: var(--primary-foreground, #fff);\",\n \".sv-popup__button.sv-popup__button--apply:disabled\": \"background-color: var(--background-dim, #f3f3f3);\",\n \".sv-popup__button.sv-popup__button--danger\": \"background-color: var(--sjs-special-red, #E50A3E); color: var(--primary-foreground, #fff);\",\n //eo popup\n //list\n \".sv-list\": \"padding: 0; margin: 0; background: var(--background, #fff); list-style-type: none; overflow-y: auto;\",\n \".sv-list__item--with-icon\": \"padding-top: 12px; padding-bottom: 12px;\",\n \".sv-list__item\": \"width: 100%; box-sizing: border-box; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\",\n \".sv-list__item-body\": \"width: 100%; box-sizing: border-box; font-size: calc(2 * var(--base-unit, 8px)); line-height: calc(3 * var(--base-unit, 8px)); padding-top: calc(1 * var(--base-unit, 8px)); padding-bottom: calc(1 * var(--base-unit, 8px)); padding-inline-end: calc(8 * var(--base-unit, 8px)); padding-inline-start: calc(2 * var(--base-unit, 8px)); cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; gap: calc(2 * 8px);\",\n \".sv-list__item-icon\": \"float: left; width: calc(3 * 8px); height: calc(3 * 8px);\",\n \".sv-list__item-icon svg\": \"display: block;\",\n \".sv-list__item-icon use\": \"fill: #909090;\",\n \".sv-list__item:hover .sv-list__item-body\": \"background-color: var(--background-dim, #f3f3f3);\",\n \".sv-list__item.sv-list__item--focused .sv-list__item-body\": \"background-color: var(--background-dim, #f3f3f3);\",\n \".sv-list__loading-indicator\": \"pointer-events: none;\",\n \".sv-list__loading-indicator .sv-list__item-body\": \"background-color: transparent\",\n // \".sv-list__item--selected\": \"background-color: var(--primary, #19b394); color: var(--primary-foreground, #fff);\",\n \".sv-list__item--selected .sv-list__item-icon use\": \"fill: var(--primary-foreground, #fff);\",\n \".sv-list__item.sv-list__item--disabled\": \"color: var(--foreground-light, #909090); cursor: default;\",\n \".sv-list__item span\": \"white-space: nowrap;\",\n \".sv-list__container\": \"position: relative; display: flex; flex-direction: column; height: 100%; display: flex; flex-direction: column; min-height: 0;\",\n \".sv-list__filter\": \"border-bottom: 1px solid rgba(0, 0, 0, 0.16); background: var(--background, #fff); padding-bottom: calcSize(1);\",\n \".sv-list__input\": \"-webkit-appearance: none; -moz-appearance: none; appearance: none; display: block; box-sizing: border-box; width: 100%; line-height: 24px; padding-left: 56px; padding-right: 24px; padding-top: 12px; padding-bottom: 12px; outline: none; font-size: 1em; border: none\",\n \".sv-list__filter-icon\": \"display: block; position: absolute; top: 12px; left: 16px;\",\n \".sv-list__filter-icon .sv-svg-icon\": \"width: 24px; height: 24px;\",\n \".sv-list__empty-container\": \"width: 100%; box-sizing: border-box; padding: 12px 64px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\",\n \".sv-list__empty-text\": \"line-height: 24px; font-size: 16px; font-weight: 400; text-align: center; color: var(--foreground-light, #909090);\",\n //eo list\n \".sv-skeleton-element\": \"min-height: 50px;\",\n };\n}\n\n\n/***/ }),\n\n/***/ \"./src/popup-dropdown-view-model.ts\":\n/*!******************************************!*\\\n !*** ./src/popup-dropdown-view-model.ts ***!\n \\******************************************/\n/*! exports provided: PopupDropdownViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PopupDropdownViewModel\", function() { return PopupDropdownViewModel; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _utils_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/popup */ \"./src/utils/popup.ts\");\n/* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./popup-view-model */ \"./src/popup-view-model.ts\");\n/* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/devices */ \"./src/utils/devices.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\n/* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./survey */ \"./src/survey.ts\");\n/* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./global_variables_utils */ \"./src/global_variables_utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nvar PopupDropdownViewModel = /** @class */ (function (_super) {\n __extends(PopupDropdownViewModel, _super);\n function PopupDropdownViewModel(model, targetElement) {\n var _this = _super.call(this, model) || this;\n _this.targetElement = targetElement;\n _this.scrollEventCallBack = function (event) {\n if (_this.isOverlay && _utils_devices__WEBPACK_IMPORTED_MODULE_3__[\"IsTouch\"]) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n _this.hidePopup();\n };\n _this.resizeEventCallback = function () {\n if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].isAvailable())\n return;\n var visualViewport = _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getVisualViewport();\n var documentElement = _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomDocumentHelper\"].getDocumentElement();\n if (!!documentElement && !!visualViewport) {\n documentElement.style.setProperty(\"--sv-popup-overlay-height\", visualViewport.height * visualViewport.scale + \"px\");\n }\n };\n _this.resizeWindowCallback = function () {\n if (!_this.isOverlay) {\n _this.updatePosition(true, _survey__WEBPACK_IMPORTED_MODULE_5__[\"SurveyModel\"].platform === \"vue\" || _survey__WEBPACK_IMPORTED_MODULE_5__[\"SurveyModel\"].platform === \"vue3\" || _survey__WEBPACK_IMPORTED_MODULE_5__[\"SurveyModel\"].platform == \"react\");\n }\n };\n _this.clientY = 0;\n _this.isTablet = false;\n _this.touchStartEventCallback = function (event) {\n _this.clientY = event.touches[0].clientY;\n };\n _this.touchMoveEventCallback = function (event) {\n _this.preventScrollOuside(event, _this.clientY - event.changedTouches[0].clientY);\n };\n _this.model.onRecalculatePosition.add(_this.recalculatePositionHandler);\n return _this;\n }\n PopupDropdownViewModel.prototype.calculateIsTablet = function (windowWidth, windowHeight) {\n var width = Math.min(windowWidth, windowHeight);\n this.isTablet = width >= PopupDropdownViewModel.tabletSizeBreakpoint;\n };\n PopupDropdownViewModel.prototype._updatePosition = function () {\n var _a, _b, _c;\n if (!this.targetElement)\n return;\n var targetElementRect = this.targetElement.getBoundingClientRect();\n var popupContainer = (_a = this.container) === null || _a === void 0 ? void 0 : _a.querySelector(this.containerSelector);\n if (!popupContainer)\n return;\n var fixedPopupContainer = (_b = this.container) === null || _b === void 0 ? void 0 : _b.querySelector(this.fixedPopupContainer);\n var scrollContent = popupContainer.querySelector(this.scrollingContentSelector);\n var popupComputedStyle = _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomDocumentHelper\"].getComputedStyle(popupContainer);\n var marginLeft = (parseFloat(popupComputedStyle.marginLeft) || 0);\n var marginRight = (parseFloat(popupComputedStyle.marginRight) || 0);\n var height = popupContainer.offsetHeight - scrollContent.offsetHeight + scrollContent.scrollHeight;\n var width = popupContainer.getBoundingClientRect().width;\n this.model.setWidthByTarget && (this.minWidth = targetElementRect.width + \"px\");\n var verticalPosition = this.model.verticalPosition;\n var actualHorizontalPosition = this.getActualHorizontalPosition();\n if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].isAvailable()) {\n var heightValues = [height, _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getInnerHeight() * 0.9, (_c = _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getVisualViewport()) === null || _c === void 0 ? void 0 : _c.height];\n height = Math.ceil(Math.min.apply(Math, heightValues.filter(function (each) { return typeof each === \"number\"; })));\n verticalPosition = _utils_popup__WEBPACK_IMPORTED_MODULE_1__[\"PopupUtils\"].updateVerticalPosition(targetElementRect, height, this.model.verticalPosition, this.model.showPointer, _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getInnerHeight());\n }\n this.popupDirection = _utils_popup__WEBPACK_IMPORTED_MODULE_1__[\"PopupUtils\"].calculatePopupDirection(verticalPosition, actualHorizontalPosition);\n var pos = _utils_popup__WEBPACK_IMPORTED_MODULE_1__[\"PopupUtils\"].calculatePosition(targetElementRect, height, width + marginLeft + marginRight, verticalPosition, actualHorizontalPosition, this.showHeader, this.model.positionMode);\n if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].isAvailable()) {\n var newVerticalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__[\"PopupUtils\"].getCorrectedVerticalDimensions(pos.top, height, _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getInnerHeight(), verticalPosition);\n if (!!newVerticalDimensions) {\n this.height = newVerticalDimensions.height + \"px\";\n pos.top = newVerticalDimensions.top;\n }\n if (this.model.setWidthByTarget) {\n this.width = targetElementRect.width + \"px\";\n pos.left = targetElementRect.left;\n }\n else {\n var newHorizontalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__[\"PopupUtils\"].updateHorizontalDimensions(pos.left, width, _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getInnerWidth(), actualHorizontalPosition, this.model.positionMode, { left: marginLeft, right: marginRight });\n if (!!newHorizontalDimensions) {\n this.width = newHorizontalDimensions.width ? newHorizontalDimensions.width + \"px\" : undefined;\n pos.left = newHorizontalDimensions.left;\n }\n }\n }\n if (!!fixedPopupContainer) {\n var rect = fixedPopupContainer.getBoundingClientRect();\n pos.top -= rect.top;\n pos.left -= rect.left;\n }\n this.left = pos.left + \"px\";\n this.top = pos.top + \"px\";\n if (this.showHeader) {\n this.pointerTarget = _utils_popup__WEBPACK_IMPORTED_MODULE_1__[\"PopupUtils\"].calculatePointerTarget(targetElementRect, pos.top, pos.left, verticalPosition, actualHorizontalPosition, marginLeft, marginRight);\n this.pointerTarget.top += \"px\";\n this.pointerTarget.left += \"px\";\n }\n };\n PopupDropdownViewModel.prototype.getActualHorizontalPosition = function () {\n var actualHorizontalPosition = this.model.horizontalPosition;\n if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomDocumentHelper\"].isAvailable()) {\n var isRtl = _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomDocumentHelper\"].getComputedStyle(_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomDocumentHelper\"].getBody()).direction == \"rtl\";\n if (isRtl) {\n if (this.model.horizontalPosition === \"left\") {\n actualHorizontalPosition = \"right\";\n }\n else if (this.model.horizontalPosition === \"right\") {\n actualHorizontalPosition = \"left\";\n }\n }\n }\n return actualHorizontalPosition;\n };\n PopupDropdownViewModel.prototype.getStyleClass = function () {\n return _super.prototype.getStyleClass.call(this)\n .append(\"sv-popup--dropdown\", !this.isOverlay)\n .append(\"sv-popup--dropdown-overlay\", this.isOverlay && this.model.overlayDisplayMode !== \"overlay\")\n .append(\"sv-popup--tablet\", this.isTablet && this.isOverlay)\n .append(\"sv-popup--show-pointer\", !this.isOverlay && this.showHeader)\n .append(\"sv-popup--\" + this.popupDirection, !this.isOverlay && (this.showHeader || this.popupDirection == \"top\" || this.popupDirection == \"bottom\"));\n };\n PopupDropdownViewModel.prototype.getShowHeader = function () {\n return this.model.showPointer && !this.isOverlay;\n };\n PopupDropdownViewModel.prototype.getPopupHeaderTemplate = function () {\n return \"popup-pointer\";\n };\n PopupDropdownViewModel.prototype.setComponentElement = function (componentRoot, targetElement) {\n _super.prototype.setComponentElement.call(this, componentRoot);\n if (!!componentRoot && !!componentRoot.parentElement && !this.isModal) {\n this.targetElement = targetElement || componentRoot.parentElement;\n }\n };\n PopupDropdownViewModel.prototype.resetComponentElement = function () {\n _super.prototype.resetComponentElement.call(this);\n this.targetElement = undefined;\n };\n PopupDropdownViewModel.prototype.updateOnShowing = function () {\n var root = _settings__WEBPACK_IMPORTED_MODULE_4__[\"settings\"].environment.root;\n this.prevActiveElement = root.activeElement;\n if (this.isOverlay) {\n this.resetDimensionsAndPositionStyleProperties();\n }\n else {\n this.updatePosition(true, false);\n }\n this.switchFocus();\n _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].addEventListener(\"resize\", this.resizeWindowCallback);\n if (this.shouldCreateResizeCallback) {\n _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getVisualViewport().addEventListener(\"resize\", this.resizeEventCallback);\n if (this.container) {\n this.container.addEventListener(\"touchstart\", this.touchStartEventCallback);\n this.container.addEventListener(\"touchmove\", this.touchMoveEventCallback);\n }\n this.calculateIsTablet(_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getInnerWidth(), _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getInnerHeight());\n this.resizeEventCallback();\n }\n _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].addEventListener(\"scroll\", this.scrollEventCallBack);\n this._isPositionSetValue = true;\n };\n Object.defineProperty(PopupDropdownViewModel.prototype, \"shouldCreateResizeCallback\", {\n get: function () {\n return !!_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getVisualViewport() && this.isOverlay && _utils_devices__WEBPACK_IMPORTED_MODULE_3__[\"IsTouch\"];\n },\n enumerable: false,\n configurable: true\n });\n PopupDropdownViewModel.prototype.updatePosition = function (isResetHeight, isDelayUpdating) {\n var _this = this;\n if (isDelayUpdating === void 0) { isDelayUpdating = true; }\n if (isResetHeight) {\n this.height = \"auto\";\n }\n if (isDelayUpdating) {\n setTimeout(function () {\n _this._updatePosition();\n }, 1);\n }\n else {\n this._updatePosition();\n }\n };\n PopupDropdownViewModel.prototype.updateOnHiding = function () {\n _super.prototype.updateOnHiding.call(this);\n _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].removeEventListener(\"resize\", this.resizeWindowCallback);\n if (this.shouldCreateResizeCallback) {\n _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].getVisualViewport().removeEventListener(\"resize\", this.resizeEventCallback);\n if (this.container) {\n this.container.removeEventListener(\"touchstart\", this.touchStartEventCallback);\n this.container.removeEventListener(\"touchmove\", this.touchMoveEventCallback);\n }\n }\n _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__[\"DomWindowHelper\"].removeEventListener(\"scroll\", this.scrollEventCallBack);\n if (!this.isDisposed) {\n this.top = undefined;\n this.left = undefined;\n this.height = undefined;\n this.width = undefined;\n this.minWidth = undefined;\n }\n };\n PopupDropdownViewModel.prototype.onModelChanging = function (newModel) {\n var _this = this;\n if (!!this.model) {\n this.model.onRecalculatePosition.remove(this.recalculatePositionHandler);\n }\n if (!this.recalculatePositionHandler) {\n this.recalculatePositionHandler = function (_, options) {\n if (!_this.isOverlay) {\n _this.updatePosition(options.isResetHeight);\n }\n };\n }\n _super.prototype.onModelChanging.call(this, newModel);\n newModel.onRecalculatePosition.add(this.recalculatePositionHandler);\n };\n PopupDropdownViewModel.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this.updateOnHiding();\n if (!!this.model) {\n this.model.onRecalculatePosition.remove(this.recalculatePositionHandler);\n this.recalculatePositionHandler = undefined;\n }\n this.resetComponentElement();\n };\n PopupDropdownViewModel.tabletSizeBreakpoint = 600;\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], PopupDropdownViewModel.prototype, \"isTablet\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: \"left\" })\n ], PopupDropdownViewModel.prototype, \"popupDirection\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ defaultValue: { left: \"0px\", top: \"0px\" } })\n ], PopupDropdownViewModel.prototype, \"pointerTarget\", void 0);\n return PopupDropdownViewModel;\n}(_popup_view_model__WEBPACK_IMPORTED_MODULE_2__[\"PopupBaseViewModel\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/popup-modal-view-model.ts\":\n/*!***************************************!*\\\n !*** ./src/popup-modal-view-model.ts ***!\n \\***************************************/\n/*! exports provided: PopupModalViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PopupModalViewModel\", function() { return PopupModalViewModel; });\n/* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./popup-view-model */ \"./src/popup-view-model.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar PopupModalViewModel = /** @class */ (function (_super) {\n __extends(PopupModalViewModel, _super);\n function PopupModalViewModel(model) {\n var _this = _super.call(this, model) || this;\n _this.onScrollOutsideCallback = function (event) {\n _this.preventScrollOuside(event, event.deltaY);\n };\n return _this;\n }\n PopupModalViewModel.prototype.getStyleClass = function () {\n return _super.prototype.getStyleClass.call(this)\n .append(\"sv-popup--modal\", !this.isOverlay);\n };\n PopupModalViewModel.prototype.getShowFooter = function () {\n return true;\n };\n PopupModalViewModel.prototype.createFooterActionBar = function () {\n var _this = this;\n _super.prototype.createFooterActionBar.call(this);\n this.footerToolbarValue.addAction({\n id: \"apply\",\n visibleIndex: 20,\n title: this.applyButtonText,\n innerCss: \"sv-popup__body-footer-item sv-popup__button sv-popup__button--apply sd-btn sd-btn--action\",\n action: function () { _this.apply(); }\n });\n };\n Object.defineProperty(PopupModalViewModel.prototype, \"applyButtonText\", {\n get: function () {\n return this.getLocalizationString(\"modalApplyButtonText\");\n },\n enumerable: false,\n configurable: true\n });\n PopupModalViewModel.prototype.apply = function () {\n if (!!this.model.onApply && !this.model.onApply())\n return;\n this.hidePopup();\n };\n PopupModalViewModel.prototype.clickOutside = function () {\n return;\n };\n PopupModalViewModel.prototype.onKeyDown = function (event) {\n if (event.key === \"Escape\" || event.keyCode === 27) {\n this.model.onCancel();\n }\n _super.prototype.onKeyDown.call(this, event);\n };\n PopupModalViewModel.prototype.updateOnShowing = function () {\n if (this.container) {\n this.container.addEventListener(\"wheel\", this.onScrollOutsideCallback, { passive: false });\n }\n _super.prototype.updateOnShowing.call(this);\n };\n PopupModalViewModel.prototype.updateOnHiding = function () {\n if (this.container) {\n this.container.removeEventListener(\"wheel\", this.onScrollOutsideCallback);\n }\n _super.prototype.updateOnHiding.call(this);\n };\n return PopupModalViewModel;\n}(_popup_view_model__WEBPACK_IMPORTED_MODULE_0__[\"PopupBaseViewModel\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/popup-survey.ts\":\n/*!*****************************!*\\\n !*** ./src/popup-survey.ts ***!\n \\*****************************/\n/*! exports provided: PopupSurveyModel, SurveyWindowModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PopupSurveyModel\", function() { return PopupSurveyModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SurveyWindowModel\", function() { return SurveyWindowModel; });\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ \"./src/base.ts\");\n/* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./survey */ \"./src/survey.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./global_variables_utils */ \"./src/global_variables_utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n/**\n * A class that renders a survey in a pop-up window.\n *\n * [View Demo](https://surveyjs.io/form-library/examples/popup-survey/ (linkStyle))\n */\nvar PopupSurveyModel = /** @class */ (function (_super) {\n __extends(PopupSurveyModel, _super);\n function PopupSurveyModel(jsonObj, initialModel) {\n if (initialModel === void 0) { initialModel = null; }\n var _this = _super.call(this) || this;\n /**\n * Specifies how many seconds the pop-up window should remain open after users complete the survey.\n *\n * Default value: 0 (the window is closed immediately)\n *\n * Set this property to a negative value (for instance, -1) to keep the pop-up window open without a time limit.\n */\n _this.closeOnCompleteTimeout = 0;\n if (initialModel) {\n _this.surveyValue = initialModel;\n }\n else {\n _this.surveyValue = _this.createSurvey(jsonObj);\n }\n _this.surveyValue.fitToContainer = true;\n _this.windowElement = _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__[\"DomDocumentHelper\"].createElement(\"div\");\n _this.survey.onComplete.add(function (survey, options) {\n _this.onSurveyComplete();\n });\n _this.registerPropertyChangedHandlers([\"isShowing\"], function () {\n if (!!_this.showingChangedCallback)\n _this.showingChangedCallback();\n });\n _this.registerPropertyChangedHandlers([\"isExpanded\"], function () {\n _this.onExpandedChanged();\n });\n _this.width = new _base__WEBPACK_IMPORTED_MODULE_0__[\"ComputedUpdater\"](function () { return _this.survey.width; });\n _this.width = _this.survey.width;\n _this.updateCss();\n _this.onCreating();\n return _this;\n }\n PopupSurveyModel.prototype.onCreating = function () { };\n PopupSurveyModel.prototype.getType = function () {\n return \"popupsurvey\";\n };\n Object.defineProperty(PopupSurveyModel.prototype, \"survey\", {\n /**\n * A [`SurveyModel`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model) instance rendered in the pop-up window.\n */\n get: function () {\n return this.surveyValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"isShowing\", {\n /**\n * Indicates whether the pop-up survey appears on the page, regardless of its [expand state](#isExpanded).\n *\n * You can set this property to `true` or `false` to control visibility of the pop-up survey. Alternatively, you can use the [`show()`](#show) and [`hide()`](#hide) methods.\n */\n get: function () {\n return this.getPropertyValue(\"isShowing\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isShowing\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"isFullScreen\", {\n get: function () {\n return this.getPropertyValue(\"isFullScreen\", false);\n },\n set: function (val) {\n if (!this.isExpanded && !!val) {\n this.isExpanded = true;\n }\n this.setPropertyValue(\"isFullScreen\", val);\n this.setCssRoot();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Shows the pop-up survey. The survey may appear [expanded or collapsed](#isExpanded).\n *\n * As an alternative to this method, you can set the [`isShowing`](#isShowing) property to `true`.\n * @see hide\n */\n PopupSurveyModel.prototype.show = function () {\n this.isShowing = true;\n };\n /**\n * Hides the pop-up survey.\n *\n * As an alternative to this method, you can set the [`isShowing`](#isShowing) property to `false`.\n * @see show\n * @see expand\n * @see collapse\n */\n PopupSurveyModel.prototype.hide = function () {\n this.isShowing = false;\n };\n PopupSurveyModel.prototype.toggleFullScreen = function () {\n this.isFullScreen = !this.isFullScreen;\n };\n Object.defineProperty(PopupSurveyModel.prototype, \"isExpanded\", {\n /**\n * Indicates whether the pop-up window is expanded or collapsed.\n *\n * You can set this property to `true` or `false` to control the expand state of the pop-up survey. Alternatively, you can use the [`expand()`](#expand) and [`collapse()`](#collapse) methods.\n */\n get: function () {\n return this.getPropertyValue(\"isExpanded\", false);\n },\n set: function (val) {\n if (!!this.isFullScreen && !val) {\n this.isFullScreen = false;\n }\n this.setPropertyValue(\"isExpanded\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"isCollapsed\", {\n get: function () {\n return !this.isExpanded;\n },\n enumerable: false,\n configurable: true\n });\n PopupSurveyModel.prototype.onExpandedChanged = function () {\n if (!!this.expandedChangedCallback) {\n this.expandedChangedCallback();\n }\n this.updateCssButton();\n };\n Object.defineProperty(PopupSurveyModel.prototype, \"title\", {\n /**\n * A title for the pop-up window. If this property is undefined, the title is taken from [`SurveyModel`](#survey)'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.\n */\n get: function () {\n return this.survey.title;\n },\n set: function (value) {\n this.survey.title = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"locTitle\", {\n get: function () {\n if (this.survey.locTitle.isEmpty)\n return null;\n return this.survey.locTitle;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"locDescription\", {\n get: function () {\n if (this.survey.locTitle.isEmpty)\n return null;\n return this.survey.locDescription;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Expands the pop-up window.\n *\n * As an alternative to this method, you can set the [`isExpanded`](#isExpanded) property to `true`.\n * @see collapse\n */\n PopupSurveyModel.prototype.expand = function () {\n this.isExpanded = true;\n };\n /**\n * Collapses the pop-up window, leaving only the survey title visible.\n *\n * As an alternative to this method, you can set the [`isExpanded`](#isExpanded) property to `false`.\n * @see expand\n */\n PopupSurveyModel.prototype.collapse = function () {\n this.isExpanded = false;\n };\n PopupSurveyModel.prototype.changeExpandCollapse = function () {\n this.isExpanded = !this.isExpanded;\n };\n Object.defineProperty(PopupSurveyModel.prototype, \"allowClose\", {\n /**\n * Specifies whether to display a button that closes the pop-up window.\n *\n * Default value: `false`\n *\n * If you allow users to close the pop-up window, make sure to implement a UI element that opens it. This element should call the [`show()`](#show) method or enable the [`isShowing`](#isShowing) property.\n * @see expand\n * @see collapse\n * @see hide\n */\n get: function () {\n return this.getPropertyValue(\"allowClose\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"allowClose\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"allowFullScreen\", {\n /**\n * Specifies whether to display a button that allows respondents to show the pop-up survey in full screen mode.\n *\n * Default value: `false`\n */\n get: function () {\n return this.getPropertyValue(\"allowFullScreen\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"allowFullScreen\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"css\", {\n get: function () {\n return this.survey.css;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssButton\", {\n get: function () {\n return this.getPropertyValue(\"cssButton\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssRoot\", {\n get: function () {\n var result = this.getPropertyValue(\"cssRoot\", \"\");\n if (this.isCollapsed)\n result += \" \" + this.getPropertyValue(\"cssRootCollapsedMod\", \"\");\n return result;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssRootCollapsedMod\", {\n get: function () {\n return this.getPropertyValue(\"cssRootCollapsedMod\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssRootContent\", {\n get: function () {\n return this.getPropertyValue(\"cssRootContent\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssBody\", {\n get: function () {\n return this.getPropertyValue(\"cssBody\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssHeaderRoot\", {\n get: function () {\n return this.getPropertyValue(\"cssHeaderRoot\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssHeaderTitleCollapsed\", {\n get: function () {\n return this.getPropertyValue(\"cssHeaderTitleCollapsed\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssHeaderButtonsContainer\", {\n get: function () {\n return this.getPropertyValue(\"cssHeaderButtonsContainer\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssHeaderCollapseButton\", {\n get: function () {\n return this.getPropertyValue(\"cssHeaderCollapseButton\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssHeaderCloseButton\", {\n get: function () {\n return this.getPropertyValue(\"cssHeaderCloseButton\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"cssHeaderFullScreenButton\", {\n get: function () {\n return this.getPropertyValue(\"cssHeaderFullScreenButton\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupSurveyModel.prototype, \"renderedWidth\", {\n get: function () {\n var width = this.getPropertyValue(\"width\", \"60%\");\n if (width && !isNaN(width))\n width = width + \"px\";\n return width;\n },\n enumerable: false,\n configurable: true\n });\n PopupSurveyModel.prototype.updateCss = function () {\n if (!this.css || !this.css.window)\n return;\n var cssWindow = this.css.window;\n this.setCssRoot();\n this.setPropertyValue(\"cssRootCollapsedMod\", cssWindow.rootCollapsedMod);\n this.setPropertyValue(\"cssRootContent\", cssWindow.rootContent);\n this.setPropertyValue(\"cssBody\", cssWindow.body);\n var cssHeader = cssWindow.header;\n if (!cssHeader)\n return;\n this.setPropertyValue(\"cssHeaderRoot\", cssHeader.root);\n this.setPropertyValue(\"cssHeaderTitleCollapsed\", cssHeader.titleCollapsed);\n this.setPropertyValue(\"cssHeaderButtonsContainer\", cssHeader.buttonsContainer);\n this.setPropertyValue(\"cssHeaderCollapseButton\", cssHeader.collapseButton);\n this.setPropertyValue(\"cssHeaderCloseButton\", cssHeader.closeButton);\n this.setPropertyValue(\"cssHeaderFullScreenButton\", cssHeader.fullScreenButton);\n this.updateCssButton();\n };\n PopupSurveyModel.prototype.setCssRoot = function () {\n var cssWindow = this.css.window;\n if (this.isFullScreen) {\n this.setPropertyValue(\"cssRoot\", cssWindow.root + \" \" + cssWindow.rootFullScreenMode);\n }\n else {\n this.setPropertyValue(\"cssRoot\", cssWindow.root);\n }\n };\n PopupSurveyModel.prototype.updateCssButton = function () {\n var cssHeader = !!this.css.window ? this.css.window.header : null;\n if (!cssHeader)\n return;\n this.setCssButton(this.isExpanded ? cssHeader.buttonExpanded : cssHeader.buttonCollapsed);\n };\n PopupSurveyModel.prototype.setCssButton = function (val) {\n if (!val)\n return;\n this.setPropertyValue(\"cssButton\", val);\n };\n PopupSurveyModel.prototype.createSurvey = function (jsonObj) {\n return new _survey__WEBPACK_IMPORTED_MODULE_1__[\"SurveyModel\"](jsonObj);\n };\n PopupSurveyModel.prototype.onSurveyComplete = function () {\n if (this.closeOnCompleteTimeout < 0)\n return;\n if (this.closeOnCompleteTimeout == 0) {\n this.hide();\n }\n else {\n var self = this;\n var timerId = null;\n var func = function () {\n self.hide();\n clearInterval(timerId);\n };\n timerId = setInterval(func, this.closeOnCompleteTimeout * 1000);\n }\n };\n PopupSurveyModel.prototype.onScroll = function () {\n this.survey.onScroll();\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__[\"property\"])()\n ], PopupSurveyModel.prototype, \"width\", void 0);\n return PopupSurveyModel;\n}(_base__WEBPACK_IMPORTED_MODULE_0__[\"Base\"]));\n\n/**\n * Obsolete. Please use PopupSurvey\n */\nvar SurveyWindowModel = /** @class */ (function (_super) {\n __extends(SurveyWindowModel, _super);\n function SurveyWindowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return SurveyWindowModel;\n}(PopupSurveyModel));\n\n\n\n/***/ }),\n\n/***/ \"./src/popup-utils.ts\":\n/*!****************************!*\\\n !*** ./src/popup-utils.ts ***!\n \\****************************/\n/*! exports provided: createPopupModalViewModel, createPopupViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createPopupModalViewModel\", function() { return createPopupModalViewModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createPopupViewModel\", function() { return createPopupViewModel; });\n/* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./global_variables_utils */ \"./src/global_variables_utils.ts\");\n/* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./popup */ \"./src/popup.ts\");\n/* harmony import */ var _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./popup-dropdown-view-model */ \"./src/popup-dropdown-view-model.ts\");\n/* harmony import */ var _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./popup-modal-view-model */ \"./src/popup-modal-view-model.ts\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\n\nfunction createPopupModalViewModel(options, rootElement) {\n var _a;\n var popupOptions = __assign({}, options);\n popupOptions.verticalPosition = \"top\";\n popupOptions.horizontalPosition = \"left\";\n popupOptions.showPointer = false;\n popupOptions.isModal = true;\n popupOptions.displayMode = options.displayMode || \"popup\";\n var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_1__[\"PopupModel\"](options.componentName, options.data, popupOptions);\n popupModel.isFocusedContent = (_a = options.isFocusedContent) !== null && _a !== void 0 ? _a : true;\n var popupViewModel = new _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__[\"PopupModalViewModel\"](popupModel);\n if (!!rootElement && !!rootElement.appendChild) {\n var container = _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__[\"DomDocumentHelper\"].createElement(\"div\");\n rootElement.appendChild(container);\n popupViewModel.setComponentElement(container);\n }\n if (!popupViewModel.container) {\n popupViewModel.initializePopupContainer();\n }\n var onVisibilityChangedCallback = function (sender, options) {\n if (!options.isVisible) {\n if (!!container) {\n popupViewModel.resetComponentElement();\n }\n }\n popupViewModel.onVisibilityChanged.remove(onVisibilityChangedCallback);\n };\n popupViewModel.onVisibilityChanged.add(onVisibilityChangedCallback);\n return popupViewModel;\n}\nfunction createPopupViewModel(model, targetElement) {\n if (model.isModal) {\n return new _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__[\"PopupModalViewModel\"](model);\n }\n else {\n return new _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_2__[\"PopupDropdownViewModel\"](model, targetElement);\n }\n}\n\n\n/***/ }),\n\n/***/ \"./src/popup-view-model.ts\":\n/*!*********************************!*\\\n !*** ./src/popup-view-model.ts ***!\n \\*********************************/\n/*! exports provided: FOCUS_INPUT_SELECTOR, PopupBaseViewModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FOCUS_INPUT_SELECTOR\", function() { return FOCUS_INPUT_SELECTOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PopupBaseViewModel\", function() { return PopupBaseViewModel; });\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ \"./src/base.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/container */ \"./src/actions/container.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/animation */ \"./src/utils/animation.ts\");\n/* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./global_variables_utils */ \"./src/global_variables_utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nvar FOCUS_INPUT_SELECTOR = \"input:not(:disabled):not([readonly]):not([type=hidden]),select:not(:disabled):not([readonly]),textarea:not(:disabled):not([readonly]), button:not(:disabled):not([readonly]), [tabindex]:not([tabindex^=\\\"-\\\"])\";\nvar PopupBaseViewModel = /** @class */ (function (_super) {\n __extends(PopupBaseViewModel, _super);\n function PopupBaseViewModel(model) {\n var _this = _super.call(this) || this;\n _this.popupSelector = \".sv-popup\";\n _this.fixedPopupContainer = \".sv-popup\";\n _this.containerSelector = \".sv-popup__container\";\n _this.scrollingContentSelector = \".sv-popup__scrolling-content\";\n _this.visibilityAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_6__[\"AnimationBoolean\"](_this, function (val) {\n if (_this._isVisible !== val) {\n if (!val) {\n _this.updateOnHiding();\n _this.updateIsVisible(val);\n _this._isPositionSetValue = false;\n }\n else {\n _this.updateIsVisible(val);\n }\n }\n }, function () { return _this._isVisible; });\n _this.onVisibilityChanged = new _base__WEBPACK_IMPORTED_MODULE_0__[\"EventBase\"]();\n _this.onModelIsVisibleChangedCallback = function () {\n _this.isVisible = _this.model.isVisible;\n };\n _this._isPositionSetValue = false;\n _this.model = model;\n _this.locale = _this.model.locale;\n return _this;\n }\n PopupBaseViewModel.prototype.updateIsVisible = function (val) {\n this._isVisible = val;\n this.onVisibilityChanged.fire(this, { isVisible: val });\n };\n PopupBaseViewModel.prototype.getLeaveOptions = function () {\n return { cssClass: \"sv-popup--animate-leave\" };\n };\n PopupBaseViewModel.prototype.getEnterOptions = function () {\n return { cssClass: \"sv-popup--animate-enter\" };\n };\n PopupBaseViewModel.prototype.getAnimatedElement = function () {\n return this.getAnimationContainer();\n };\n PopupBaseViewModel.prototype.isAnimationEnabled = function () {\n return this.model.displayMode !== \"overlay\" && _settings__WEBPACK_IMPORTED_MODULE_4__[\"settings\"].animationEnabled;\n };\n PopupBaseViewModel.prototype.getAnimationContainer = function () {\n var _a;\n return (_a = this.container) === null || _a === void 0 ? void 0 : _a.querySelector(this.fixedPopupContainer);\n };\n Object.defineProperty(PopupBaseViewModel.prototype, \"isVisible\", {\n get: function () {\n return this._isVisible;\n },\n set: function (val) {\n this.visibilityAnimation.sync(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"container\", {\n get: function () {\n return this.containerElement || this.createdContainer;\n },\n enumerable: false,\n configurable: true\n });\n PopupBaseViewModel.prototype.getLocale = function () {\n if (!!this.locale)\n return this.locale;\n return _super.prototype.getLocale.call(this);\n };\n PopupBaseViewModel.prototype.hidePopup = function () {\n this.model.isVisible = false;\n };\n PopupBaseViewModel.prototype.getStyleClass = function () {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__[\"CssClassBuilder\"]()\n .append(this.model.cssClass)\n .append(\"sv-popup--\" + this.model.displayMode, this.isOverlay);\n };\n PopupBaseViewModel.prototype.getShowFooter = function () {\n return this.isOverlay;\n };\n PopupBaseViewModel.prototype.getShowHeader = function () {\n return false;\n };\n PopupBaseViewModel.prototype.getPopupHeaderTemplate = function () {\n return undefined;\n };\n PopupBaseViewModel.prototype.createFooterActionBar = function () {\n var _this = this;\n this.footerToolbarValue = new _actions_container__WEBPACK_IMPORTED_MODULE_3__[\"ActionContainer\"]();\n this.footerToolbar.updateCallback = function (isResetInitialized) {\n _this.footerToolbarValue.actions.forEach(function (action) { return action.cssClasses = {\n item: \"sv-popup__body-footer-item sv-popup__button sd-btn\"\n }; });\n };\n var footerActions = [{\n id: \"cancel\",\n visibleIndex: 10,\n title: this.cancelButtonText,\n innerCss: \"sv-popup__button--cancel sd-btn\",\n action: function () { _this.cancel(); }\n }];\n footerActions = this.model.updateFooterActions(footerActions);\n this.footerToolbarValue.setItems(footerActions);\n };\n PopupBaseViewModel.prototype.resetDimensionsAndPositionStyleProperties = function () {\n var nullableValue = \"inherit\";\n this.top = nullableValue;\n this.left = nullableValue;\n this.height = nullableValue;\n this.width = nullableValue;\n this.minWidth = nullableValue;\n };\n PopupBaseViewModel.prototype.onModelChanging = function (newModel) {\n };\n PopupBaseViewModel.prototype.setupModel = function (model) {\n if (!!this.model) {\n this.model.onVisibilityChanged.remove(this.onModelIsVisibleChangedCallback);\n }\n this.onModelChanging(model);\n this._model = model;\n model.onVisibilityChanged.add(this.onModelIsVisibleChangedCallback);\n this.onModelIsVisibleChangedCallback();\n };\n Object.defineProperty(PopupBaseViewModel.prototype, \"model\", {\n get: function () {\n return this._model;\n },\n set: function (model) {\n this.setupModel(model);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"title\", {\n get: function () {\n return this.model.title;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"contentComponentName\", {\n get: function () {\n return this.model.contentComponentName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"contentComponentData\", {\n get: function () {\n return this.model.contentComponentData;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"isModal\", {\n get: function () {\n return this.model.isModal;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"isFocusedContent\", {\n get: function () {\n return this.model.isFocusedContent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"isFocusedContainer\", {\n get: function () {\n return this.model.isFocusedContainer;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"showFooter\", {\n get: function () {\n return this.getShowFooter();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"showHeader\", {\n get: function () {\n return this.getShowHeader();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"popupHeaderTemplate\", {\n get: function () {\n return this.getPopupHeaderTemplate();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"isOverlay\", {\n get: function () {\n return this.model.displayMode === \"overlay\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"styleClass\", {\n get: function () {\n return this.getStyleClass().toString();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"cancelButtonText\", {\n get: function () {\n return this.getLocalizationString(\"modalCancelButtonText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupBaseViewModel.prototype, \"footerToolbar\", {\n get: function () {\n if (!this.footerToolbarValue) {\n this.createFooterActionBar();\n }\n return this.footerToolbarValue;\n },\n enumerable: false,\n configurable: true\n });\n PopupBaseViewModel.prototype.onKeyDown = function (event) {\n if (event.key === \"Tab\" || event.keyCode === 9) {\n this.trapFocus(event);\n }\n else if (event.key === \"Escape\" || event.keyCode === 27) {\n this.hidePopup();\n }\n };\n PopupBaseViewModel.prototype.trapFocus = function (event) {\n var focusableElements = this.container.querySelectorAll(FOCUS_INPUT_SELECTOR);\n var firstFocusableElement = focusableElements[0];\n var lastFocusableElement = focusableElements[focusableElements.length - 1];\n if (event.shiftKey) {\n if (_settings__WEBPACK_IMPORTED_MODULE_4__[\"settings\"].environment.root.activeElement === firstFocusableElement) {\n lastFocusableElement.focus();\n event.preventDefault();\n }\n }\n else {\n if (_settings__WEBPACK_IMPORTED_MODULE_4__[\"settings\"].environment.root.activeElement === lastFocusableElement) {\n firstFocusableElement.focus();\n event.preventDefault();\n }\n }\n };\n PopupBaseViewModel.prototype.switchFocus = function () {\n if (this.isFocusedContent) {\n this.focusFirstInput();\n }\n else if (this.isFocusedContainer) {\n this.focusContainer();\n }\n };\n Object.defineProperty(PopupBaseViewModel.prototype, \"isPositionSet\", {\n get: function () {\n return this._isPositionSetValue;\n },\n enumerable: false,\n configurable: true\n });\n PopupBaseViewModel.prototype.updateOnShowing = function () {\n this.prevActiveElement = _settings__WEBPACK_IMPORTED_MODULE_4__[\"settings\"].environment.root.activeElement;\n if (this.isOverlay) {\n this.resetDimensionsAndPositionStyleProperties();\n }\n this.switchFocus();\n this._isPositionSetValue = true;\n };\n PopupBaseViewModel.prototype.updateOnHiding = function () {\n if (this.isFocusedContent && this.prevActiveElement) {\n this.prevActiveElement.focus();\n }\n };\n PopupBaseViewModel.prototype.focusContainer = function () {\n if (!this.container)\n return;\n var popup = this.container.querySelector(this.popupSelector);\n popup === null || popup === void 0 ? void 0 : popup.focus();\n };\n PopupBaseViewModel.prototype.focusFirstInput = function () {\n var _this = this;\n setTimeout(function () {\n if (!_this.container)\n return;\n var el = _this.container.querySelector(_this.model.focusFirstInputSelector || FOCUS_INPUT_SELECTOR);\n if (!!el)\n el.focus();\n else\n _this.focusContainer();\n }, 100);\n };\n PopupBaseViewModel.prototype.clickOutside = function (event) {\n this.hidePopup();\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n };\n PopupBaseViewModel.prototype.cancel = function () {\n this.model.onCancel();\n this.hidePopup();\n };\n PopupBaseViewModel.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n if (this.model) {\n this.model.onVisibilityChanged.remove(this.onModelIsVisibleChangedCallback);\n }\n if (!!this.createdContainer) {\n this.createdContainer.remove();\n this.createdContainer = undefined;\n }\n if (!!this.footerToolbarValue) {\n this.footerToolbarValue.dispose();\n }\n this.resetComponentElement();\n };\n PopupBaseViewModel.prototype.initializePopupContainer = function () {\n if (!this.container) {\n var container = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__[\"DomDocumentHelper\"].createElement(\"div\");\n this.createdContainer = container;\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__[\"getElement\"])(_settings__WEBPACK_IMPORTED_MODULE_4__[\"settings\"].environment.popupMountContainer).appendChild(container);\n }\n };\n PopupBaseViewModel.prototype.setComponentElement = function (componentRoot, targetElement) {\n if (!!componentRoot) {\n this.containerElement = componentRoot;\n }\n };\n PopupBaseViewModel.prototype.resetComponentElement = function () {\n this.containerElement = undefined;\n this.prevActiveElement = undefined;\n };\n PopupBaseViewModel.prototype.preventScrollOuside = function (event, deltaY) {\n var currentElement = event.target;\n while (currentElement !== this.container) {\n if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__[\"DomDocumentHelper\"].getComputedStyle(currentElement).overflowY === \"auto\" && currentElement.scrollHeight !== currentElement.offsetHeight) {\n var scrollHeight = currentElement.scrollHeight, scrollTop = currentElement.scrollTop, clientHeight = currentElement.clientHeight;\n if (!(deltaY > 0 && Math.abs(scrollHeight - clientHeight - scrollTop) < 1) && !(deltaY < 0 && scrollTop <= 0)) {\n return;\n }\n }\n currentElement = currentElement.parentElement;\n }\n if (event.cancelable) {\n event.preventDefault();\n }\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"0px\" })\n ], PopupBaseViewModel.prototype, \"top\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"0px\" })\n ], PopupBaseViewModel.prototype, \"left\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"auto\" })\n ], PopupBaseViewModel.prototype, \"height\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"auto\" })\n ], PopupBaseViewModel.prototype, \"width\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"auto\" })\n ], PopupBaseViewModel.prototype, \"minWidth\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: false })\n ], PopupBaseViewModel.prototype, \"_isVisible\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], PopupBaseViewModel.prototype, \"locale\", void 0);\n return PopupBaseViewModel;\n}(_base__WEBPACK_IMPORTED_MODULE_0__[\"Base\"]));\n\n\n\n/***/ }),\n\n/***/ \"./src/popup.ts\":\n/*!**********************!*\\\n !*** ./src/popup.ts ***!\n \\**********************/\n/*! exports provided: PopupModel, createDialogOptions */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PopupModel\", function() { return PopupModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createDialogOptions\", function() { return createDialogOptions; });\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ \"./src/base.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _console_warnings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./console-warnings */ \"./src/console-warnings.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\nvar PopupModel = /** @class */ (function (_super) {\n __extends(PopupModel, _super);\n function PopupModel(contentComponentName, contentComponentData, option1, option2) {\n var _this = _super.call(this) || this;\n _this.focusFirstInputSelector = \"\";\n _this.onCancel = function () { };\n _this.onApply = function () { return true; };\n _this.onHide = function () { };\n _this.onShow = function () { };\n _this.onDispose = function () { };\n _this.onVisibilityChanged = _this.addEvent();\n _this.onFooterActionsCreated = _this.addEvent();\n _this.onRecalculatePosition = _this.addEvent();\n _this.contentComponentName = contentComponentName;\n _this.contentComponentData = contentComponentData;\n if (!!option1 && typeof option1 === \"string\") {\n _this.verticalPosition = option1;\n _this.horizontalPosition = option2;\n }\n else if (!!option1) {\n var popupOptions = option1;\n for (var key in popupOptions) {\n _this[key] = popupOptions[key];\n }\n }\n return _this;\n }\n PopupModel.prototype.refreshInnerModel = function () {\n var innerModel = this.contentComponentData[\"model\"];\n innerModel && innerModel.refresh && innerModel.refresh();\n };\n Object.defineProperty(PopupModel.prototype, \"isVisible\", {\n get: function () {\n return this.getPropertyValue(\"isVisible\", false);\n },\n set: function (value) {\n if (this.isVisible === value) {\n return;\n }\n this.setPropertyValue(\"isVisible\", value);\n this.onVisibilityChanged.fire(this, { model: this, isVisible: value });\n if (this.isVisible) {\n this.onShow();\n }\n else {\n this.refreshInnerModel();\n this.onHide();\n }\n },\n enumerable: false,\n configurable: true\n });\n PopupModel.prototype.toggleVisibility = function () {\n this.isVisible = !this.isVisible;\n };\n PopupModel.prototype.recalculatePosition = function (isResetHeight) {\n this.onRecalculatePosition.fire(this, { isResetHeight: isResetHeight });\n };\n PopupModel.prototype.updateFooterActions = function (footerActions) {\n var options = { actions: footerActions };\n this.onFooterActionsCreated.fire(this, options);\n return options.actions;\n };\n PopupModel.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this.onDispose();\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], PopupModel.prototype, \"contentComponentName\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], PopupModel.prototype, \"contentComponentData\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"bottom\" })\n ], PopupModel.prototype, \"verticalPosition\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"left\" })\n ], PopupModel.prototype, \"horizontalPosition\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: true })\n ], PopupModel.prototype, \"showPointer\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: false })\n ], PopupModel.prototype, \"isModal\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: true })\n ], PopupModel.prototype, \"isFocusedContent\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: true })\n ], PopupModel.prototype, \"isFocusedContainer\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"\" })\n ], PopupModel.prototype, \"cssClass\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"\" })\n ], PopupModel.prototype, \"title\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"auto\" })\n ], PopupModel.prototype, \"overlayDisplayMode\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"popup\" })\n ], PopupModel.prototype, \"displayMode\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: \"flex\" })\n ], PopupModel.prototype, \"positionMode\", void 0);\n return PopupModel;\n}(_base__WEBPACK_IMPORTED_MODULE_0__[\"Base\"]));\n\nfunction createDialogOptions(componentName, data, onApply, onCancel, onHide, onShow, cssClass, title, displayMode) {\n if (onHide === void 0) { onHide = function () { }; }\n if (onShow === void 0) { onShow = function () { }; }\n if (displayMode === void 0) { displayMode = \"popup\"; }\n _console_warnings__WEBPACK_IMPORTED_MODULE_2__[\"ConsoleWarnings\"].warn(\"The `showModal()` and `createDialogOptions()` methods are obsolete. Use the `showDialog()` method instead.\");\n return {\n componentName: componentName,\n data: data,\n onApply: onApply,\n onCancel: onCancel,\n onHide: onHide,\n onShow: onShow,\n cssClass: cssClass,\n title: title,\n displayMode: displayMode\n };\n}\n\n\n/***/ }),\n\n/***/ \"./src/progress-buttons.ts\":\n/*!*********************************!*\\\n !*** ./src/progress-buttons.ts ***!\n \\*********************************/\n/*! exports provided: ProgressButtons, ProgressButtonsResponsivityManager */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ProgressButtons\", function() { return ProgressButtons; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ProgressButtonsResponsivityManager\", function() { return ProgressButtonsResponsivityManager; });\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ \"./src/base.ts\");\n/* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultCss/defaultV2Css */ \"./src/defaultCss/defaultV2Css.ts\");\n/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./page */ \"./src/page.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar ProgressButtons = /** @class */ (function (_super) {\n __extends(ProgressButtons, _super);\n function ProgressButtons(survey) {\n var _this = _super.call(this) || this;\n _this.survey = survey;\n _this.onResize = _this.addEvent();\n return _this;\n }\n ProgressButtons.prototype.isListElementClickable = function (index) {\n if (!this.survey.onServerValidateQuestions ||\n this.survey.onServerValidateQuestions.isEmpty ||\n this.survey.checkErrorsMode === \"onComplete\") {\n return true;\n }\n return index <= this.survey.currentPageNo + 1;\n };\n ProgressButtons.prototype.getRootCss = function (container) {\n if (container === void 0) { container = \"center\"; }\n var result = this.survey.css.progressButtonsContainerCenter;\n if (this.survey.css.progressButtonsRoot) {\n result += \" \" + this.survey.css.progressButtonsRoot + \" \" + this.survey.css.progressButtonsRoot + \"--\" + ([\"footer\", \"contentBottom\"].indexOf(container) !== -1 ? \"bottom\" : \"top\");\n result += \" \" + this.survey.css.progressButtonsRoot + \"--\" + (this.showItemTitles ? \"with-titles\" : \"no-titles\");\n }\n if (this.showItemNumbers && this.survey.css.progressButtonsNumbered) {\n result += \" \" + this.survey.css.progressButtonsNumbered;\n }\n if (this.isFitToSurveyWidth) {\n result += \" \" + this.survey.css.progressButtonsFitSurveyWidth;\n }\n return result;\n };\n ProgressButtons.prototype.getListElementCss = function (index) {\n if (index >= this.survey.visiblePages.length)\n return;\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__[\"CssClassBuilder\"]()\n .append(this.survey.css.progressButtonsListElementPassed, this.survey.visiblePages[index].passed)\n .append(this.survey.css.progressButtonsListElementCurrent, this.survey.currentPageNo === index)\n .append(this.survey.css.progressButtonsListElementNonClickable, !this.isListElementClickable(index))\n .toString();\n };\n ProgressButtons.prototype.getScrollButtonCss = function (hasScroller, isLeftScroll) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__[\"CssClassBuilder\"]()\n .append(this.survey.css.progressButtonsImageButtonLeft, isLeftScroll)\n .append(this.survey.css.progressButtonsImageButtonRight, !isLeftScroll)\n .append(this.survey.css.progressButtonsImageButtonHidden, !hasScroller)\n .toString();\n };\n ProgressButtons.prototype.clickListElement = function (element) {\n if (!(element instanceof _page__WEBPACK_IMPORTED_MODULE_2__[\"PageModel\"])) {\n element = this.survey.visiblePages[element];\n }\n this.survey.tryNavigateToPage(element);\n };\n ProgressButtons.prototype.isListContainerHasScroller = function (element) {\n var listContainerElement = element.querySelector(\".\" + this.survey.css.progressButtonsListContainer);\n if (!!listContainerElement) {\n return listContainerElement.scrollWidth > listContainerElement.offsetWidth;\n }\n return false;\n };\n ProgressButtons.prototype.isCanShowItemTitles = function (element) {\n var listContainerElement = element.querySelector(\"ul\");\n if (!listContainerElement || listContainerElement.children.length < 2)\n return true;\n if (listContainerElement.clientWidth > listContainerElement.parentElement.clientWidth) {\n return false;\n }\n var expectedElementWidth = listContainerElement.children[0].clientWidth;\n for (var i = 0; i < listContainerElement.children.length; i++) {\n if (Math.abs(listContainerElement.children[i].clientWidth - expectedElementWidth) > 5) {\n return false;\n }\n }\n return true;\n };\n ProgressButtons.prototype.clearConnectorsWidth = function (element) {\n var listContainerElements = element.querySelectorAll(\".sd-progress-buttons__connector\");\n for (var i = 0; i < listContainerElements.length; i++) {\n listContainerElements[i].style.width = \"\";\n }\n };\n ProgressButtons.prototype.adjustConnectors = function (element) {\n var listContainerElement = element.querySelector(\"ul\");\n if (!listContainerElement)\n return;\n var listContainerElements = element.querySelectorAll(\".sd-progress-buttons__connector\");\n var circleWidth = this.showItemNumbers ? 17 : 5;\n var connectorWidth = listContainerElement.clientWidth / (listContainerElement.children.length - 1) - circleWidth;\n for (var i = 0; i < listContainerElements.length; i++) {\n listContainerElements[i].style.width = connectorWidth + \"px\";\n }\n };\n Object.defineProperty(ProgressButtons.prototype, \"isFitToSurveyWidth\", {\n get: function () {\n if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__[\"surveyCss\"].currentType !== \"defaultV2\") {\n return false;\n }\n return this.survey.progressBarInheritWidthFrom === \"survey\" && this.survey.widthMode == \"static\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ProgressButtons.prototype, \"progressWidth\", {\n get: function () {\n if (this.isFitToSurveyWidth) {\n return this.survey.width;\n }\n return \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ProgressButtons.prototype, \"showItemNumbers\", {\n get: function () {\n if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__[\"surveyCss\"].currentType !== \"defaultV2\") {\n return false;\n }\n return this.survey.progressBarShowPageNumbers;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ProgressButtons.prototype, \"showItemTitles\", {\n get: function () {\n if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__[\"surveyCss\"].currentType !== \"defaultV2\") {\n return true;\n }\n return this.survey.progressBarShowPageTitles;\n },\n enumerable: false,\n configurable: true\n });\n ProgressButtons.prototype.getItemNumber = function (page) {\n var result = \"\";\n if (this.showItemNumbers) {\n result += this.survey.visiblePages.indexOf(page) + 1;\n }\n return result;\n };\n Object.defineProperty(ProgressButtons.prototype, \"headerText\", {\n get: function () {\n return this.survey.currentPage ? this.survey.currentPage.renderedNavigationTitle : \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ProgressButtons.prototype, \"footerText\", {\n get: function () {\n return this.survey.progressText;\n },\n enumerable: false,\n configurable: true\n });\n ProgressButtons.prototype.processResponsiveness = function (width) {\n this.onResize.fire(this, { width: width });\n };\n return ProgressButtons;\n}(_base__WEBPACK_IMPORTED_MODULE_0__[\"Base\"]));\n\nvar ProgressButtonsResponsivityManager = /** @class */ (function () {\n function ProgressButtonsResponsivityManager(model, element, viewModel) {\n var _this = this;\n this.model = model;\n this.element = element;\n this.viewModel = viewModel;\n this.criticalProperties = [\"progressBarType\", \"progressBarShowPageTitles\"];\n this.canShowItemTitles = true;\n this.processResponsiveness = function (model, options) {\n _this.viewModel.onUpdateScroller(model.isListContainerHasScroller(_this.element));\n if (!model.showItemTitles) {\n _this.model.adjustConnectors(_this.element);\n return;\n }\n if (model.survey.isMobile) {\n _this.prevWidth = options.width;\n _this.canShowItemTitles = false;\n _this.model.adjustConnectors(_this.element);\n _this.viewModel.onResize(_this.canShowItemTitles);\n return;\n }\n _this.model.clearConnectorsWidth(_this.element);\n if (_this.timer !== undefined) {\n clearTimeout(_this.timer);\n }\n _this.timer = setTimeout(function () {\n if (_this.prevWidth === undefined || _this.prevWidth < options.width && !_this.canShowItemTitles || _this.prevWidth > options.width && _this.canShowItemTitles) {\n _this.prevWidth = options.width;\n _this.canShowItemTitles = model.isCanShowItemTitles(_this.element);\n _this.viewModel.onResize(_this.canShowItemTitles);\n _this.timer = undefined;\n }\n }, 10);\n };\n this.model.survey.registerFunctionOnPropertiesValueChanged(this.criticalProperties, function () { return _this.forceUpdate(); }, \"ProgressButtonsResponsivityManager\" + this.viewModel.container);\n this.model.onResize.add(this.processResponsiveness);\n this.forceUpdate();\n }\n ProgressButtonsResponsivityManager.prototype.forceUpdate = function () {\n this.viewModel.onUpdateSettings();\n this.processResponsiveness(this.model, {});\n };\n ProgressButtonsResponsivityManager.prototype.dispose = function () {\n clearTimeout(this.timer);\n this.model.onResize.remove(this.processResponsiveness);\n this.model.survey.unRegisterFunctionOnPropertiesValueChanged(this.criticalProperties, \"ProgressButtonsResponsivityManager\" + this.viewModel.container);\n this.element = undefined;\n this.model = undefined;\n };\n return ProgressButtonsResponsivityManager;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/question.ts\":\n/*!*************************!*\\\n !*** ./src/question.ts ***!\n \\*************************/\n/*! exports provided: Question */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Question\", function() { return Question; });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"./src/helpers.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _survey_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./survey-element */ \"./src/survey-element.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./error */ \"./src/error.ts\");\n/* harmony import */ var _validator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./validator */ \"./src/validator.ts\");\n/* harmony import */ var _localizablestring__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./localizablestring */ \"./src/localizablestring.ts\");\n/* harmony import */ var _conditions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./conditions */ \"./src/conditions.ts\");\n/* harmony import */ var _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./questionCustomWidgets */ \"./src/questionCustomWidgets.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\n/* harmony import */ var _rendererFactory__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./rendererFactory */ \"./src/rendererFactory.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _console_warnings__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./console-warnings */ \"./src/console-warnings.ts\");\n/* harmony import */ var _conditionProcessValue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./conditionProcessValue */ \"./src/conditionProcessValue.ts\");\n/* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./global_variables_utils */ \"./src/global_variables_utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar TriggerExpressionInfo = /** @class */ (function () {\n function TriggerExpressionInfo(name, canRun, doComplete) {\n this.name = name;\n this.canRun = canRun;\n this.doComplete = doComplete;\n this.runSecondCheck = function (keys) { return false; };\n }\n return TriggerExpressionInfo;\n}());\n/**\n * A base class for all questions.\n */\nvar Question = /** @class */ (function (_super) {\n __extends(Question, _super);\n function Question(name) {\n var _this = _super.call(this, name) || this;\n _this.customWidgetData = { isNeedRender: true };\n _this.hasCssErrorCallback = function () { return false; };\n _this.isReadyValue = true;\n _this.dependedQuestions = [];\n /**\n * An event that is raised when the question's ready state has changed (expressions are evaluated, choices are loaded from a web resource specified by the `choicesByUrl` property, etc.).\n *\n * Parameters:\n *\n * - `sender`: `SurveyModel`\\\n * A survey instance that contains the question whose ready state has changed.\n * - `options.isReady`: `boolean`\\\n * Indicates whether the question is ready.\n * - `options.oldIsReady`: `boolean`\\\n * Indicates the previous ready state.\n */\n _this.onReadyChanged = _this.addEvent();\n _this.triggersInfo = [];\n _this.isRunningValidatorsValue = false;\n _this.isValueChangedInSurvey = false;\n _this.allowNotifyValueChanged = true;\n _this.id = Question.getQuestionId();\n _this.onCreating();\n _this.createNewArray(\"validators\", function (validator) {\n validator.errorOwner = _this;\n });\n _this.addExpressionProperty(\"visibleIf\", function (obj, res) { _this.visible = res === true; }, function (obj) { return !_this.areInvisibleElementsShowing; });\n _this.addExpressionProperty(\"enableIf\", function (obj, res) { _this.readOnly = res === false; });\n _this.addExpressionProperty(\"requiredIf\", function (obj, res) { _this.isRequired = res === true; });\n _this.createLocalizableString(\"commentText\", _this, true, \"otherItemText\");\n _this.createLocalizableString(\"requiredErrorText\", _this);\n _this.addTriggerInfo(\"resetValueIf\", function () { return !_this.isEmpty(); }, function () {\n _this.clearValue();\n _this.updateValueWithDefaults();\n });\n var setValueIfInfo = _this.addTriggerInfo(\"setValueIf\", function () { return true; }, function () { return _this.runSetValueExpression(); });\n setValueIfInfo.runSecondCheck = function (keys) { return _this.checkExpressionIf(keys); };\n _this.registerPropertyChangedHandlers([\"width\"], function () {\n _this.updateQuestionCss();\n if (!!_this.parent) {\n _this.parent.elementWidthChanged(_this);\n }\n });\n _this.registerPropertyChangedHandlers([\"isRequired\"], function () {\n if (!_this.isRequired && _this.errors.length > 0) {\n _this.validate();\n }\n _this.locTitle.strChanged();\n _this.clearCssClasses();\n });\n _this.registerPropertyChangedHandlers([\"indent\", \"rightIndent\"], function () {\n _this.onIndentChanged();\n });\n _this.registerPropertyChangedHandlers([\"showCommentArea\", \"showOtherItem\"], function () {\n _this.initCommentFromSurvey();\n });\n _this.registerFunctionOnPropertiesValueChanged([\"no\", \"readOnly\", \"hasVisibleErrors\", \"containsErrors\"], function () {\n _this.updateQuestionCss();\n });\n _this.registerPropertyChangedHandlers([\"isMobile\"], function () { _this.onMobileChanged(); });\n return _this;\n }\n Question.getQuestionId = function () {\n return \"sq_\" + Question.questionCounter++;\n };\n Question.prototype.isReadOnlyRenderDiv = function () {\n return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].readOnly.commentRenderMode === \"div\";\n };\n Question.prototype.allowMobileInDesignMode = function () {\n return false;\n };\n Question.prototype.updateIsMobileFromSurvey = function () {\n this.setIsMobile(this.survey._isMobile);\n };\n Question.prototype.setIsMobile = function (val) {\n this.isMobile = val && (this.allowMobileInDesignMode() || !this.isDesignMode);\n };\n Question.prototype.themeChanged = function (theme) { };\n Question.prototype.getDefaultTitle = function () { return this.name; };\n Question.prototype.createLocTitleProperty = function () {\n var _this = this;\n var locTitleValue = _super.prototype.createLocTitleProperty.call(this);\n locTitleValue.storeDefaultText = true;\n locTitleValue.onGetTextCallback = function (text) {\n if (!text) {\n text = _this.getDefaultTitle();\n }\n if (!_this.survey)\n return text;\n return _this.survey.getUpdatedQuestionTitle(_this, text);\n };\n this.locProcessedTitle = new _localizablestring__WEBPACK_IMPORTED_MODULE_5__[\"LocalizableString\"](this, true);\n this.locProcessedTitle.sharedData = locTitleValue;\n return locTitleValue;\n };\n Question.prototype.getSurvey = function (live) {\n if (live === void 0) { live = false; }\n if (live) {\n return !!this.parent ? this.parent.getSurvey(live) : null;\n }\n if (!!this.onGetSurvey)\n return this.onGetSurvey();\n return _super.prototype.getSurvey.call(this);\n };\n Question.prototype.getValueName = function () {\n if (!!this.valueName)\n return this.valueName.toString();\n return this.name;\n };\n Object.defineProperty(Question.prototype, \"valueName\", {\n /**\n * Specifies an object property that should store the question value.\n *\n * Refer to the [Merge Question Values](https://surveyjs.io/form-library/documentation/design-survey-merge-question-values) help topic for more information.\n */\n get: function () {\n return this.getPropertyValue(\"valueName\", \"\");\n },\n set: function (val) {\n var oldValueName = this.getValueName();\n this.setPropertyValue(\"valueName\", val);\n this.onValueNameChanged(oldValueName);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.onValueNameChanged = function (oldValue) {\n if (!this.survey)\n return;\n this.survey.questionRenamed(this, this.name, !!oldValue ? oldValue : this.name);\n this.initDataFromSurvey();\n };\n Question.prototype.onNameChanged = function (oldValue) {\n this.locTitle.strChanged();\n if (!this.survey)\n return;\n this.survey.questionRenamed(this, oldValue, this.valueName ? this.valueName : oldValue);\n };\n Object.defineProperty(Question.prototype, \"isReady\", {\n get: function () {\n return this.isReadyValue;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.onAsyncRunningChanged = function () {\n this.updateIsReady();\n };\n Question.prototype.updateIsReady = function () {\n var res = this.getIsQuestionReady();\n if (res) {\n var questions = this.getIsReadyDependsOn();\n for (var i = 0; i < questions.length; i++) {\n if (!questions[i].getIsQuestionReady()) {\n res = false;\n break;\n }\n }\n }\n this.setIsReady(res);\n };\n Question.prototype.getIsQuestionReady = function () {\n return !this.isAsyncExpressionRunning && this.getAreNestedQuestionsReady();\n };\n Question.prototype.getAreNestedQuestionsReady = function () {\n var questions = this.getIsReadyNestedQuestions();\n if (!Array.isArray(questions))\n return true;\n for (var i = 0; i < questions.length; i++) {\n if (!questions[i].isReady)\n return false;\n }\n return true;\n };\n Question.prototype.getIsReadyNestedQuestions = function () {\n return this.getNestedQuestions();\n };\n Question.prototype.setIsReady = function (val) {\n var oldIsReady = this.isReadyValue;\n this.isReadyValue = val;\n if (oldIsReady != val) {\n this.getIsReadyDependends().forEach(function (q) { return q.updateIsReady(); });\n this.onReadyChanged.fire(this, {\n question: this,\n isReady: val,\n oldIsReady: oldIsReady,\n });\n }\n };\n Question.prototype.getIsReadyDependsOn = function () {\n return this.getIsReadyDependendCore(true);\n };\n Question.prototype.getIsReadyDependends = function () {\n return this.getIsReadyDependendCore(false);\n };\n Question.prototype.getIsReadyDependendCore = function (isDependOn) {\n var _this = this;\n if (!this.survey)\n return [];\n var questions = this.survey.questionsByValueName(this.getValueName());\n var res = new Array();\n questions.forEach(function (q) { if (q !== _this)\n res.push(q); });\n if (!isDependOn) {\n if (this.parentQuestion) {\n res.push(this.parentQuestion);\n }\n if (this.dependedQuestions.length > 0) {\n this.dependedQuestions.forEach(function (q) { return res.push(q); });\n }\n }\n return res;\n };\n Question.prototype.choicesLoaded = function () { };\n Object.defineProperty(Question.prototype, \"page\", {\n /**\n * Returns a page to which the question belongs and allows you to move this question to a different page.\n */\n get: function () {\n if (!!this.parentQuestion)\n return this.parentQuestion.page;\n return this.getPage(this.parent);\n },\n set: function (val) {\n this.setPage(this.parent, val);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getPanel = function () {\n return null;\n };\n Question.prototype.delete = function (doDispose) {\n if (doDispose === void 0) { doDispose = true; }\n this.removeFromParent();\n if (doDispose) {\n this.dispose();\n }\n else {\n this.resetDependedQuestions();\n }\n };\n Question.prototype.removeFromParent = function () {\n if (!!this.parent) {\n this.removeSelfFromList(this.parent.elements);\n }\n };\n Question.prototype.addDependedQuestion = function (question) {\n if (!question || this.dependedQuestions.indexOf(question) > -1)\n return;\n this.dependedQuestions.push(question);\n };\n Question.prototype.removeDependedQuestion = function (question) {\n if (!question)\n return;\n var index = this.dependedQuestions.indexOf(question);\n if (index > -1) {\n this.dependedQuestions.splice(index, 1);\n }\n };\n Question.prototype.updateDependedQuestions = function () {\n for (var i = 0; i < this.dependedQuestions.length; i++) {\n this.dependedQuestions[i].updateDependedQuestion();\n }\n };\n Question.prototype.updateDependedQuestion = function () { };\n Question.prototype.resetDependedQuestion = function () { };\n Object.defineProperty(Question.prototype, \"isFlowLayout\", {\n get: function () {\n return this.getLayoutType() === \"flow\";\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getLayoutType = function () {\n if (!!this.parent)\n return this.parent.getChildrenLayoutType();\n return \"row\";\n };\n Question.prototype.isLayoutTypeSupported = function (layoutType) {\n return layoutType !== \"flow\";\n };\n Object.defineProperty(Question.prototype, \"visible\", {\n /**\n * Gets or sets question visibility.\n *\n * If you want to display or hide a question based on a condition, specify the [`visibleIf`](https://surveyjs.io/form-library/documentation/question#visibleIf) property. Refer to the following help topic for information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see isVisible\n * @see visibleIf\n */\n get: function () {\n return this.getPropertyValue(\"visible\", true);\n },\n set: function (val) {\n if (val == this.visible)\n return;\n this.setPropertyValue(\"visible\", val);\n this.onVisibleChanged();\n this.notifySurveyVisibilityChanged();\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.onVisibleChanged = function () {\n this.updateIsVisibleProp();\n if (!this.isVisible && this.errors && this.errors.length > 0) {\n this.errors = [];\n }\n };\n Question.prototype.notifyStateChanged = function (prevState) {\n _super.prototype.notifyStateChanged.call(this, prevState);\n if (this.isCollapsed) {\n this.onHidingContent();\n }\n };\n Question.prototype.updateIsVisibleProp = function () {\n var prev = this.getPropertyValue(\"isVisible\");\n var val = this.isVisible;\n if (prev !== val) {\n this.setPropertyValue(\"isVisible\", val);\n if (!val) {\n this.onHidingContent();\n }\n }\n };\n Object.defineProperty(Question.prototype, \"useDisplayValuesInDynamicTexts\", {\n /**\n * Specifies whether to use display names for question values in placeholders.\n *\n * Default value: `true`\n *\n * This property applies to questions whose values are defined as objects with the `value` and `text` properties (for example, [choice items](https://surveyjs.io/form-library/documentation/questionradiogroupmodel#choices) in Radiogroup, Checkbox, and Dropdown questions).\n *\n * You can use question values as placeholders in the following places:\n *\n * - Survey element titles and descriptions\n * - The [`html`](https://surveyjs.io/form-library/documentation/questionhtmlmodel#html) property of the [HTML](https://surveyjs.io/form-library/documentation/questionhtmlmodel) question\n *\n * To use a question value as a placeholder, specify the question `name` in curly brackets: `{questionName}`. Refer to the following help topic for more information: [Dynamic Texts - Question Values](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#question-values).\n */\n get: function () {\n return this.getPropertyValue(\"useDisplayValuesInDynamicTexts\");\n },\n set: function (val) {\n this.setPropertyValue(\"useDisplayValuesInDynamicTexts\", val);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getUseDisplayValuesInDynamicTexts = function () { return this.useDisplayValuesInDynamicTexts; };\n Object.defineProperty(Question.prototype, \"visibleIf\", {\n /**\n * A Boolean expression. If it evaluates to `false`, this question becomes hidden.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see visible\n * @see isVisible\n */\n get: function () {\n return this.getPropertyValue(\"visibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"visibleIf\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isVisible\", {\n /**\n * Returns `true` if the question is visible or the survey is currently in design mode.\n *\n * If you want to display or hide a question based on a condition, specify the [`visibleIf`](https://surveyjs.io/form-library/documentation/question#visibleIf) property. Refer to the following help topic for information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see visibleIf\n * @see visible\n * @see isParentVisible\n */\n get: function () {\n if (this.survey && this.survey.areEmptyElementsHidden && this.isEmpty())\n return false;\n if (this.areInvisibleElementsShowing)\n return true;\n return this.isVisibleCore();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isVisibleInSurvey\", {\n get: function () {\n return this.isVisible && this.isParentVisible;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.isVisibleCore = function () {\n return this.visible;\n };\n Object.defineProperty(Question.prototype, \"visibleIndex\", {\n /**\n * Returns the visible index of the question in the survey. It can be from 0 to all visible questions count - 1\n * The visibleIndex is -1 if the title is 'hidden' or hideNumber is true\n * @see titleLocation\n * @see hideNumber\n */\n get: function () {\n return this.getPropertyValue(\"visibleIndex\", -1);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.onHidingContent = function () { };\n Object.defineProperty(Question.prototype, \"hideNumber\", {\n /**\n * Hides the question number from the title and excludes the question from numbering.\n *\n * If you want to disable question numbering in the entire survey, set `SurveyModel`'s `showQuestionNumbers` property to `false`.\n * @see SurveyModel.showQuestionNumbers\n */\n get: function () {\n return this.getPropertyValue(\"hideNumber\");\n },\n set: function (val) {\n this.setPropertyValue(\"hideNumber\", val);\n this.notifySurveyVisibilityChanged();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isAllowTitleLeft\", {\n /**\n * Returns `true` if the question can display its title to the left of the input field.\n * @see titleLocation\n * @see getTitleLocation\n * @see hasTitle\n */\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns the question type.\n * Possible values:\n * - [*\"boolean\"*](https://surveyjs.io/Documentation/Library?id=questionbooleanmodel)\n * - [*\"checkbox\"*](https://surveyjs.io/Documentation/Library?id=questioncheckboxmodel)\n * - [*\"comment\"*](https://surveyjs.io/Documentation/Library?id=questioncommentmodel)\n * - [*\"dropdown\"*](https://surveyjs.io/Documentation/Library?id=questiondropdownmodel)\n * - [*\"tagbox\"*](https://surveyjs.io/form-library/documentation/questiontagboxmodel)\n * - [*\"expression\"*](https://surveyjs.io/Documentation/Library?id=questionexpressionmodel)\n * - [*\"file\"*](https://surveyjs.io/Documentation/Library?id=questionfilemodel)\n * - [*\"html\"*](https://surveyjs.io/Documentation/Library?id=questionhtmlmodel)\n * - [*\"image\"*](https://surveyjs.io/Documentation/Library?id=questionimagemodel)\n * - [*\"imagepicker\"*](https://surveyjs.io/Documentation/Library?id=questionimagepickermodel)\n * - [*\"matrix\"*](https://surveyjs.io/Documentation/Library?id=questionmatrixmodel)\n * - [*\"matrixdropdown\"*](https://surveyjs.io/Documentation/Library?id=questionmatrixdropdownmodel)\n * - [*\"matrixdynamic\"*](https://surveyjs.io/Documentation/Library?id=questionmatrixdynamicmodel)\n * - [*\"multipletext\"*](https://surveyjs.io/Documentation/Library?id=questionmultipletextmodel)\n * - [*\"panel\"*](https://surveyjs.io/Documentation/Library?id=panelmodel)\n * - [*\"paneldynamic\"*](https://surveyjs.io/Documentation/Library?id=questionpaneldynamicmodel)\n * - [*\"radiogroup\"*](https://surveyjs.io/Documentation/Library?id=questionradiogroupmodel)\n * - [*\"rating\"*](https://surveyjs.io/Documentation/Library?id=questionratingmodel)\n * - [*\"ranking\"*](https://surveyjs.io/Documentation/Library?id=questionrankingmodel)\n * - [*\"signaturepad\"*](https://surveyjs.io/Documentation/Library?id=questionsignaturepadmodel)\n * - [*\"text\"*](https://surveyjs.io/Documentation/Library?id=questiontextmodel)\n */\n Question.prototype.getType = function () {\n return \"question\";\n };\n Object.defineProperty(Question.prototype, \"isQuestion\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.moveTo = function (container, insertBefore) {\n if (insertBefore === void 0) { insertBefore = null; }\n return this.moveToBase(this.parent, container, insertBefore);\n };\n Question.prototype.getProgressInfo = function () {\n if (!this.hasInput)\n return _super.prototype.getProgressInfo.call(this);\n return {\n questionCount: 1,\n answeredQuestionCount: !this.isEmpty() ? 1 : 0,\n requiredQuestionCount: this.isRequired ? 1 : 0,\n requiredAnsweredQuestionCount: !this.isEmpty() && this.isRequired ? 1 : 0,\n };\n };\n Question.prototype.ensureSetValueExpressionRunner = function () {\n var _this = this;\n if (!this.setValueExpressionRunner) {\n this.setValueExpressionRunner = new _conditions__WEBPACK_IMPORTED_MODULE_6__[\"ExpressionRunner\"](this.setValueExpression);\n this.setValueExpressionRunner.onRunComplete = function (res) {\n if (!_this.isTwoValueEquals(_this.value, res)) {\n _this.value = res;\n }\n };\n }\n else {\n this.setValueExpressionRunner.expression = this.setValueExpression;\n }\n };\n Question.prototype.runSetValueExpression = function () {\n if (!this.setValueExpression) {\n this.clearValue();\n }\n else {\n this.ensureSetValueExpressionRunner();\n this.setValueExpressionRunner.run(this.getDataFilteredValues(), this.getDataFilteredProperties());\n }\n };\n Question.prototype.checkExpressionIf = function (keys) {\n this.ensureSetValueExpressionRunner();\n if (!this.setValueExpressionRunner)\n return false;\n return new _conditionProcessValue__WEBPACK_IMPORTED_MODULE_13__[\"ProcessValue\"]().isAnyKeyChanged(keys, this.setValueExpressionRunner.getVariables());\n };\n Question.prototype.addTriggerInfo = function (name, canRun, doComplete) {\n var info = new TriggerExpressionInfo(name, canRun, doComplete);\n this.triggersInfo.push(info);\n return info;\n };\n Question.prototype.runTriggerInfo = function (info, name, value) {\n var expression = this[info.name];\n var keys = {};\n keys[name] = value;\n if (!expression || info.isRunning || !info.canRun()) {\n if (info.runSecondCheck(keys)) {\n info.doComplete();\n }\n return;\n }\n if (!info.runner) {\n info.runner = new _conditions__WEBPACK_IMPORTED_MODULE_6__[\"ExpressionRunner\"](expression);\n info.runner.onRunComplete = function (res) {\n if (res === true) {\n info.doComplete();\n }\n info.isRunning = false;\n };\n }\n else {\n info.runner.expression = expression;\n }\n if (!new _conditionProcessValue__WEBPACK_IMPORTED_MODULE_13__[\"ProcessValue\"]().isAnyKeyChanged(keys, info.runner.getVariables()) && !info.runSecondCheck(keys))\n return;\n info.isRunning = true;\n info.runner.run(this.getDataFilteredValues(), this.getDataFilteredProperties());\n };\n Question.prototype.runTriggers = function (name, value) {\n var _this = this;\n if (this.isSettingQuestionValue || (this.parentQuestion && this.parentQuestion.getValueName() === name))\n return;\n this.triggersInfo.forEach(function (info) {\n _this.runTriggerInfo(info, name, value);\n });\n };\n Question.prototype.runConditions = function () {\n if (this.data && !this.isLoadingFromJson) {\n if (!this.isDesignMode) {\n this.runCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());\n }\n this.locStrsChanged();\n }\n };\n Question.prototype.setSurveyImpl = function (value, isLight) {\n _super.prototype.setSurveyImpl.call(this, value);\n if (!this.survey)\n return;\n this.survey.questionCreated(this);\n if (isLight !== true) {\n this.runConditions();\n }\n this.calcRenderedCommentPlaceholder();\n if (!this.visible) {\n this.updateIsVisibleProp();\n }\n this.updateIsMobileFromSurvey();\n };\n Object.defineProperty(Question.prototype, \"parent\", {\n /**\n * Returns a survey element (panel or page) that contains the question and allows you to move this question to a different survey element.\n */\n get: function () {\n return this.getPropertyValue(\"parent\", null);\n },\n set: function (val) {\n if (this.parent === val)\n return;\n this.removeFromParent();\n this.setPropertyValue(\"parent\", val);\n this.updateQuestionCss();\n this.onParentChanged();\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.onParentChanged = function () { };\n Object.defineProperty(Question.prototype, \"hasTitle\", {\n /**\n * Returns `false` if the `titleLocation` property is set to `\"hidden\"` or if the question cannot have a title (for example, an [HTML](https://surveyjs.io/form-library/documentation/questionhtmlmodel) question).\n *\n * If the `title` property is `undefined` or set to an empty string, the `hasTitle` property returns `true`, because the question uses its `name` as a title in this case.\n * @see title\n * @see titleLocation\n */\n get: function () {\n return this.getTitleLocation() !== \"hidden\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"titleLocation\", {\n /**\n * Sets question title location relative to the input field. Overrides the `questionTitleLocation` property specified for the question's container (survey, page, or panel).\n *\n * Possible values:\n *\n * - `\"default\"` (default) - Inherits the setting from the `questionTitleLocation` property specified for the question's container.\n * - `\"top\"` - Displays the title above the input field.\n * - `\"bottom\"` - Displays the title below the input field.\n * - `\"left\"` - Displays the title to the left of the input field.\n * - `\"hidden\"` - Hides the question title.\n *\n * > Certain question types (Matrix, Multiple Text) do not support the `\"left\"` value. For them, the `\"top\"` value is used.\n * @see SurveyModel.questionTitleLocation\n * @see getTitleLocation\n * @see isAllowTitleLeft\n */\n get: function () {\n return this.getPropertyValue(\"titleLocation\");\n },\n set: function (value) {\n var isVisibilityChanged = this.titleLocation == \"hidden\" || value == \"hidden\";\n this.setPropertyValue(\"titleLocation\", value.toLowerCase());\n this.updateQuestionCss();\n if (isVisibilityChanged) {\n this.notifySurveyVisibilityChanged();\n }\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getTitleOwner = function () { return this; };\n Question.prototype.getIsTitleRenderedAsString = function () { return this.titleLocation === \"hidden\"; };\n Question.prototype.notifySurveyOnChildrenVisibilityChanged = function () { return false; };\n Question.prototype.notifySurveyVisibilityChanged = function () {\n if (!this.survey || this.isLoadingFromJson)\n return;\n this.survey.questionVisibilityChanged(this, this.isVisible, !this.parentQuestion || this.parentQuestion.notifySurveyOnChildrenVisibilityChanged());\n var isClearOnHidden = this.isClearValueOnHidden;\n if (!this.visible) {\n this.clearValueOnHidding(isClearOnHidden);\n }\n if (isClearOnHidden && this.isVisibleInSurvey) {\n this.updateValueWithDefaults();\n }\n };\n Question.prototype.clearValueOnHidding = function (isClearOnHidden) {\n if (isClearOnHidden) {\n this.clearValueIfInvisible();\n }\n };\n /**\n * Returns title location calculated based on the question's `titleLocation` property and the `questionTitleLocation` property of the question's containers (survey, page, or panel).\n * @see titleLocation\n * @see SurveyModel.questionTitleLocation\n */\n Question.prototype.getTitleLocation = function () {\n if (this.isFlowLayout)\n return \"hidden\";\n var location = this.getTitleLocationCore();\n if (location === \"left\" && !this.isAllowTitleLeft)\n location = \"top\";\n return location;\n };\n Question.prototype.getTitleLocationCore = function () {\n if (this.titleLocation !== \"default\")\n return this.titleLocation;\n if (!!this.parent)\n return this.parent.getQuestionTitleLocation();\n if (!!this.survey)\n return this.survey.questionTitleLocation;\n return \"top\";\n };\n Object.defineProperty(Question.prototype, \"hasTitleOnLeft\", {\n get: function () {\n return this.hasTitle && this.getTitleLocation() === \"left\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasTitleOnTop\", {\n get: function () {\n return this.hasTitle && this.getTitleLocation() === \"top\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasTitleOnBottom\", {\n get: function () {\n return this.hasTitle && this.getTitleLocation() === \"bottom\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasTitleOnLeftTop\", {\n get: function () {\n if (!this.hasTitle)\n return false;\n var location = this.getTitleLocation();\n return location === \"left\" || location === \"top\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"errorLocation\", {\n /**\n * Specifies the error message position. Overrides the `questionErrorLocation` property specified for the question's container ([survey](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#questionErrorLocation), [page](https://surveyjs.io/form-library/documentation/api-reference/page-model#questionErrorLocation), or [panel](https://surveyjs.io/form-library/documentation/api-reference/panel-model#questionErrorLocation)).\n *\n * Possible values:\n *\n * - `\"default\"` (default) - Inherits the setting from the `questionErrorLocation` property specified for the question's container.\n * - `\"top\"` - Displays error messages above questions.\n * - `\"bottom\"` - Displays error messages below questions.\n */\n get: function () {\n return this.getPropertyValue(\"errorLocation\");\n },\n set: function (val) {\n this.setPropertyValue(\"errorLocation\", val);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getErrorLocation = function () {\n if (this.errorLocation !== \"default\")\n return this.errorLocation;\n if (this.parentQuestion)\n return this.parentQuestion.getChildErrorLocation(this);\n if (this.parent)\n return this.parent.getQuestionErrorLocation();\n return this.survey ? this.survey.questionErrorLocation : \"top\";\n };\n Question.prototype.getChildErrorLocation = function (child) {\n return this.getErrorLocation();\n };\n Object.defineProperty(Question.prototype, \"hasInput\", {\n /**\n * Returns `false` if the question has no input fields ([HTML](https://surveyjs.io/form-library/documentation/questionhtmlmodel), [Image](https://surveyjs.io/form-library/documentation/questionimagemodel), and similar question types).\n * @see hasSingleInput\n */\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasSingleInput\", {\n /**\n * Returns `false` if the question has no input fields ([HTML](https://surveyjs.io/form-library/documentation/questionhtmlmodel), [Image](https://surveyjs.io/form-library/documentation/questionimagemodel)) or has multiple input fields ([Matrix](https://surveyjs.io/form-library/documentation/questionmatrixmodel), [Multiple Text](https://surveyjs.io/form-library/documentation/questionmultipletextmodel)).\n * @see hasInput\n */\n get: function () {\n return this.hasInput;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"inputId\", {\n get: function () {\n return this.id + \"i\";\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getDefaultTitleValue = function () { return this.name; };\n Question.prototype.getDefaultTitleTagName = function () {\n return _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].titleTags.question;\n };\n Object.defineProperty(Question.prototype, \"descriptionLocation\", {\n /**\n * Specifies where to display a question description.\n *\n * Possible values:\n *\n * - `\"default\"` (default) - Inherits the setting from the Survey's [`questionDescriptionLocation`](https://surveyjs.io/form-library/documentation/surveymodel#questionDescriptionLocation) property.\n * - `\"underTitle\"` - Displays the description under the question title.\n * - `\"underInput\"` - Displays the description under the interactive area.\n * @see description\n * @see hasDescription\n */\n get: function () {\n return this.getPropertyValue(\"descriptionLocation\");\n },\n set: function (val) {\n this.setPropertyValue(\"descriptionLocation\", val);\n this.updateQuestionCss();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasDescriptionUnderTitle\", {\n get: function () {\n return this.getDescriptionLocation() == \"underTitle\" && this.hasDescription;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasDescriptionUnderInput\", {\n get: function () {\n return this.getDescriptionLocation() == \"underInput\" && this.hasDescription;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getDescriptionLocation = function () {\n if (this.descriptionLocation !== \"default\")\n return this.descriptionLocation;\n return !!this.survey\n ? this.survey.questionDescriptionLocation\n : \"underTitle\";\n };\n Question.prototype.needClickTitleFunction = function () {\n return _super.prototype.needClickTitleFunction.call(this) || this.hasInput;\n };\n Question.prototype.processTitleClick = function () {\n var _this = this;\n _super.prototype.processTitleClick.call(this);\n if (this.isCollapsed)\n return;\n setTimeout(function () {\n _this.focus();\n }, 1);\n return true;\n };\n Object.defineProperty(Question.prototype, \"requiredErrorText\", {\n /**\n * Specifies a custom error message for a required form field.\n * @see isRequired\n */\n get: function () {\n return this.getLocalizableStringText(\"requiredErrorText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"requiredErrorText\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"locRequiredErrorText\", {\n get: function () {\n return this.getLocalizableString(\"requiredErrorText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"commentText\", {\n /**\n * Specifies a caption displayed above the comment area. Applies when the `showCommentArea` property is `true`.\n * @see showCommentArea\n * @see comment\n */\n get: function () {\n return this.getLocalizableStringText(\"commentText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"commentText\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"locCommentText\", {\n get: function () {\n return this.getLocalizableString(\"commentText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"commentPlaceHolder\", {\n get: function () {\n return this.commentPlaceholder;\n },\n set: function (newValue) {\n this.commentPlaceholder = newValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"renderedCommentPlaceholder\", {\n get: function () {\n return this.getPropertyValue(\"renderedCommentPlaceholder\");\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.calcRenderedCommentPlaceholder = function () {\n var res = !this.isReadOnly ? this.commentPlaceHolder : undefined;\n this.setPropertyValue(\"renderedCommentPlaceholder\", res);\n };\n Question.prototype.getAllErrors = function () {\n return this.errors.slice();\n };\n Question.prototype.getErrorByType = function (errorType) {\n for (var i = 0; i < this.errors.length; i++) {\n if (this.errors[i].getErrorType() === errorType)\n return this.errors[i];\n }\n return null;\n };\n Object.defineProperty(Question.prototype, \"customWidget\", {\n get: function () {\n if (!this.isCustomWidgetRequested && !this.customWidgetValue) {\n this.isCustomWidgetRequested = true;\n this.updateCustomWidget();\n }\n return this.customWidgetValue;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.updateCustomWidget = function () {\n this.customWidgetValue = _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_7__[\"CustomWidgetCollection\"].Instance.getCustomWidget(this);\n };\n Question.prototype.localeChanged = function () {\n _super.prototype.localeChanged.call(this);\n this.calcRenderedCommentPlaceholder();\n if (!!this.localeChangedCallback) {\n this.localeChangedCallback();\n }\n };\n Object.defineProperty(Question.prototype, \"isCompositeQuestion\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isContainer\", {\n get: function () { return false; },\n enumerable: false,\n configurable: true\n });\n Question.prototype.updateCommentElements = function () {\n if (!this.autoGrowComment || !Array.isArray(this.commentElements))\n return;\n for (var i = 0; i < this.commentElements.length; i++) {\n var el = this.commentElements[i];\n if (el)\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__[\"increaseHeightByContent\"])(el);\n }\n };\n Question.prototype.onCommentInput = function (event) {\n if (this.isInputTextUpdate) {\n if (event.target) {\n this.comment = event.target.value;\n }\n }\n else {\n this.updateCommentElements();\n }\n };\n Question.prototype.onCommentChange = function (event) {\n this.comment = event.target.value;\n if (this.comment !== event.target.value) {\n event.target.value = this.comment;\n }\n };\n Question.prototype.afterRenderQuestionElement = function (el) {\n if (!this.survey || !this.hasSingleInput)\n return;\n this.survey.afterRenderQuestionInput(this, el);\n };\n Question.prototype.afterRender = function (el) {\n var _this = this;\n this.afterRenderCore(el);\n if (!this.survey)\n return;\n this.survey.afterRenderQuestion(this, el);\n if (!!this.afterRenderQuestionCallback) {\n this.afterRenderQuestionCallback(this, el);\n }\n if (this.supportComment() || this.supportOther()) {\n this.commentElements = [];\n this.getCommentElementsId().forEach(function (id) {\n var root = _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].environment.root;\n var el = root.getElementById(id);\n if (el)\n _this.commentElements.push(el);\n });\n this.updateCommentElements();\n }\n this.checkForResponsiveness(el);\n };\n Question.prototype.afterRenderCore = function (el) {\n };\n Question.prototype.getCommentElementsId = function () {\n return [this.commentId];\n };\n Question.prototype.beforeDestroyQuestionElement = function (el) {\n this.commentElements = undefined;\n };\n Object.defineProperty(Question.prototype, \"processedTitle\", {\n get: function () {\n var res = this.locProcessedTitle.textOrHtml;\n return res ? res : this.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"fullTitle\", {\n get: function () {\n return this.locTitle.renderedHtml;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"titlePattern\", {\n get: function () {\n return !!this.survey ? this.survey.questionTitlePattern : \"numTitleRequire\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isRequireTextOnStart\", {\n get: function () {\n return this.isRequired && this.titlePattern == \"requireNumTitle\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isRequireTextBeforeTitle\", {\n get: function () {\n return this.isRequired && this.titlePattern == \"numRequireTitle\" && this.requiredText !== \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isRequireTextAfterTitle\", {\n get: function () {\n return this.isRequired && this.titlePattern == \"numTitleRequire\" && this.requiredText !== \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"startWithNewLine\", {\n /**\n * Disable this property if you want to render the current question on the same line or row with the previous question or panel.\n */\n get: function () {\n return this.getPropertyValue(\"startWithNewLine\");\n },\n set: function (val) {\n if (this.startWithNewLine == val)\n return;\n this.setPropertyValue(\"startWithNewLine\", val);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.calcCssClasses = function (css) {\n var classes = { error: {} };\n this.copyCssClasses(classes, css.question);\n this.copyCssClasses(classes.error, css.error);\n this.updateCssClasses(classes, css);\n if (this.survey) {\n this.survey.updateQuestionCssClasses(this, classes);\n }\n if (this.onUpdateCssClassesCallback) {\n this.onUpdateCssClassesCallback(classes);\n }\n return classes;\n };\n Object.defineProperty(Question.prototype, \"cssRoot\", {\n get: function () {\n this.ensureElementCss();\n return this.getPropertyValue(\"cssRoot\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.setCssRoot = function (val) {\n this.setPropertyValue(\"cssRoot\", val);\n };\n Question.prototype.getCssRoot = function (cssClasses) {\n var hasError = this.hasCssError();\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(_super.prototype.getCssRoot.call(this, cssClasses))\n .append(this.isFlowLayout && !this.isDesignMode\n ? cssClasses.flowRoot\n : cssClasses.mainRoot)\n .append(cssClasses.titleLeftRoot, !this.isFlowLayout && this.hasTitleOnLeft)\n .append(cssClasses.titleTopRoot, !this.isFlowLayout && this.hasTitleOnTop)\n .append(cssClasses.titleBottomRoot, !this.isFlowLayout && this.hasTitleOnBottom)\n .append(cssClasses.descriptionUnderInputRoot, !this.isFlowLayout && this.hasDescriptionUnderInput)\n .append(cssClasses.hasError, hasError)\n .append(cssClasses.hasErrorTop, hasError && this.getErrorLocation() == \"top\")\n .append(cssClasses.hasErrorBottom, hasError && this.getErrorLocation() == \"bottom\")\n .append(cssClasses.small, !this.width)\n .append(cssClasses.answered, this.isAnswered)\n .toString();\n };\n Object.defineProperty(Question.prototype, \"cssHeader\", {\n get: function () {\n this.ensureElementCss();\n return this.getPropertyValue(\"cssHeader\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.setCssHeader = function (val) {\n this.setPropertyValue(\"cssHeader\", val);\n };\n Question.prototype.getCssHeader = function (cssClasses) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(cssClasses.header)\n .append(cssClasses.headerTop, this.hasTitleOnTop)\n .append(cssClasses.headerLeft, this.hasTitleOnLeft)\n .append(cssClasses.headerBottom, this.hasTitleOnBottom)\n .toString();\n };\n Question.prototype.supportContainerQueries = function () {\n return false;\n };\n Object.defineProperty(Question.prototype, \"cssContent\", {\n get: function () {\n this.ensureElementCss();\n return this.getPropertyValue(\"cssContent\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.setCssContent = function (val) {\n this.setPropertyValue(\"cssContent\", val);\n };\n Question.prototype.getCssContent = function (cssClasses) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(cssClasses.content)\n .append(cssClasses.contentSupportContainerQueries, this.supportContainerQueries())\n .append(cssClasses.contentLeft, this.hasTitleOnLeft)\n .toString();\n };\n Object.defineProperty(Question.prototype, \"cssTitle\", {\n get: function () {\n this.ensureElementCss();\n return this.getPropertyValue(\"cssTitle\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.setCssTitle = function (val) {\n this.setPropertyValue(\"cssTitle\", val);\n };\n Question.prototype.getCssTitle = function (cssClasses) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(_super.prototype.getCssTitle.call(this, cssClasses))\n .append(cssClasses.titleOnAnswer, !this.containsErrors && this.isAnswered)\n .append(cssClasses.titleEmpty, !this.title.trim())\n .toString();\n };\n Object.defineProperty(Question.prototype, \"cssDescription\", {\n get: function () {\n this.ensureElementCss();\n return this.getPropertyValue(\"cssDescription\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.setCssDescription = function (val) {\n this.setPropertyValue(\"cssDescription\", val);\n };\n Question.prototype.getCssDescription = function (cssClasses) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(cssClasses.description, this.hasDescriptionUnderTitle)\n .append(cssClasses.descriptionUnderInput, this.hasDescriptionUnderInput)\n .toString();\n };\n Question.prototype.showErrorOnCore = function (location) {\n return !this.showErrorsAboveQuestion && !this.showErrorsBelowQuestion && this.getErrorLocation() === location;\n };\n Object.defineProperty(Question.prototype, \"showErrorOnTop\", {\n get: function () {\n return this.showErrorOnCore(\"top\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"showErrorOnBottom\", {\n get: function () {\n return this.showErrorOnCore(\"bottom\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"showErrorsOutsideQuestion\", {\n get: function () {\n return this.isDefaultV2Theme;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"showErrorsAboveQuestion\", {\n get: function () {\n return this.showErrorsOutsideQuestion && this.getErrorLocation() === \"top\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"showErrorsBelowQuestion\", {\n get: function () {\n return this.showErrorsOutsideQuestion && this.getErrorLocation() === \"bottom\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"cssError\", {\n get: function () {\n this.ensureElementCss();\n return this.getPropertyValue(\"cssError\", \"\");\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.setCssError = function (val) {\n this.setPropertyValue(\"cssError\", val);\n };\n Question.prototype.getCssError = function (cssClasses) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(cssClasses.error.root)\n .append(cssClasses.errorsContainer, this.showErrorsBelowQuestion || this.showErrorsAboveQuestion)\n .append(cssClasses.errorsContainerTop, this.showErrorsAboveQuestion)\n .append(cssClasses.errorsContainerBottom, this.showErrorsBelowQuestion)\n .append(cssClasses.error.locationTop, this.showErrorOnTop)\n .append(cssClasses.error.locationBottom, this.showErrorOnBottom)\n .toString();\n };\n Question.prototype.hasCssError = function () {\n return this.errors.length > 0 || this.hasCssErrorCallback();\n };\n Question.prototype.getRootCss = function () {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(this.cssRoot)\n .append(this.cssClasses.readOnly, this.isReadOnlyStyle)\n .append(this.cssClasses.disabled, this.isDisabledStyle)\n .append(this.cssClasses.preview, this.isPreviewStyle)\n .append(this.cssClasses.invisible, !this.isDesignMode && this.areInvisibleElementsShowing && !this.visible)\n .toString();\n };\n Question.prototype.getQuestionRootCss = function () {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(this.cssClasses.root)\n .append(this.cssClasses.rootMobile, this.isMobile)\n .toString();\n };\n Question.prototype.updateElementCss = function (reNew) {\n _super.prototype.updateElementCss.call(this, reNew);\n if (reNew) {\n this.updateQuestionCss(true);\n }\n this.onIndentChanged();\n };\n Question.prototype.updateQuestionCss = function (reNew) {\n if (this.isLoadingFromJson ||\n !this.survey ||\n (reNew !== true && !this.cssClassesValue))\n return;\n this.updateElementCssCore(this.cssClasses);\n };\n Question.prototype.ensureElementCss = function () {\n if (!this.cssClassesValue) {\n this.updateQuestionCss(true);\n }\n };\n Question.prototype.updateElementCssCore = function (cssClasses) {\n this.setCssRoot(this.getCssRoot(cssClasses));\n this.setCssHeader(this.getCssHeader(cssClasses));\n this.setCssContent(this.getCssContent(cssClasses));\n this.setCssTitle(this.getCssTitle(cssClasses));\n this.setCssDescription(this.getCssDescription(cssClasses));\n this.setCssError(this.getCssError(cssClasses));\n };\n Question.prototype.updateCssClasses = function (res, css) {\n if (!css.question)\n return;\n var objCss = css[this.getCssType()];\n var titleBuilder = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]().append(res.title)\n .append(css.question.titleRequired, this.isRequired);\n res.title = titleBuilder.toString();\n var rootBuilder = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]().append(res.root)\n .append(objCss, this.isRequired && !!css.question.required);\n if (objCss === undefined || objCss === null) {\n res.root = rootBuilder.toString();\n }\n else if (typeof objCss === \"string\" || objCss instanceof String) {\n res.root = rootBuilder.append(objCss.toString()).toString();\n }\n else {\n res.root = rootBuilder.toString();\n for (var key in objCss) {\n res[key] = objCss[key];\n }\n }\n };\n Question.prototype.getCssType = function () {\n return this.getType();\n };\n Object.defineProperty(Question.prototype, \"renderCssRoot\", {\n get: function () {\n return this.cssClasses.root || undefined;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.onIndentChanged = function () {\n this.paddingLeft = this.getIndentSize(this.indent);\n this.paddingRight = this.getIndentSize(this.rightIndent);\n };\n Question.prototype.getIndentSize = function (indent) {\n if (indent < 1 || !this.getSurvey() || !this.cssClasses || !this.cssClasses.indent)\n return \"\";\n return indent * this.cssClasses.indent + \"px\";\n };\n /**\n * Moves focus to the input field of this question.\n * @param onError Pass `true` if you want to focus an input field with the first validation error. Default value: `false` (focuses the first input field). Applies to question types with multiple input fields.\n */\n Question.prototype.focus = function (onError, scrollIfVisible) {\n if (onError === void 0) { onError = false; }\n if (this.isDesignMode || !this.isVisible || !this.survey)\n return;\n var page = this.page;\n var shouldChangePage = !!page && this.survey.activePage !== page;\n if (shouldChangePage) {\n this.survey.focusQuestionByInstance(this, onError);\n }\n else {\n this.focuscore(onError, scrollIfVisible);\n }\n };\n Question.prototype.focuscore = function (onError, scrollIfVisible) {\n if (onError === void 0) { onError = false; }\n if (!!this.survey) {\n this.expandAllParents(this);\n this.survey.scrollElementToTop(this, this, null, this.id, scrollIfVisible);\n }\n var id = !onError\n ? this.getFirstInputElementId()\n : this.getFirstErrorInputElementId();\n if (_survey_element__WEBPACK_IMPORTED_MODULE_2__[\"SurveyElement\"].FocusElement(id)) {\n this.fireCallback(this.focusCallback);\n }\n };\n Question.prototype.expandAllParents = function (element) {\n if (!element)\n return;\n if (element.isCollapsed) {\n element.expand();\n }\n this.expandAllParents(element.parent);\n this.expandAllParents(element.parentQuestion);\n };\n Question.prototype.focusIn = function () {\n if (!this.survey || this.isDisposed || this.isContainer)\n return;\n this.survey.whenQuestionFocusIn(this);\n };\n Question.prototype.fireCallback = function (callback) {\n if (callback)\n callback();\n };\n Question.prototype.getOthersMaxLength = function () {\n if (!this.survey)\n return null;\n return this.survey.maxOthersLength > 0 ? this.survey.maxOthersLength : null;\n };\n Question.prototype.onCreating = function () { };\n Question.prototype.getFirstQuestionToFocus = function (withError) {\n return this.hasInput && (!withError || this.currentErrorCount > 0) ? this : null;\n };\n Question.prototype.getFirstInputElementId = function () {\n return this.inputId;\n };\n Question.prototype.getFirstErrorInputElementId = function () {\n return this.getFirstInputElementId();\n };\n Question.prototype.getProcessedTextValue = function (textValue) {\n var name = textValue.name.toLocaleLowerCase();\n textValue.isExists =\n Object.keys(Question.TextPreprocessorValuesMap).indexOf(name) !== -1 ||\n this[textValue.name] !== undefined;\n textValue.value = this[Question.TextPreprocessorValuesMap[name] || textValue.name];\n };\n Question.prototype.supportComment = function () {\n var prop = this.getPropertyByName(\"showCommentArea\");\n return !prop || prop.visible;\n };\n Question.prototype.supportOther = function () {\n return false;\n };\n Object.defineProperty(Question.prototype, \"isRequired\", {\n /**\n * Makes the question required. If a respondent skips a required question, the survey displays a validation error.\n * @see requiredIf\n * @see [Data Validation](https://surveyjs.io/form-library/documentation/data-validation)\n */\n get: function () {\n return this.getPropertyValue(\"isRequired\");\n },\n set: function (val) {\n this.setPropertyValue(\"isRequired\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"requiredIf\", {\n /**\n * A Boolean expression. If it evaluates to `true`, this question becomes required.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see isRequired\n */\n get: function () {\n return this.getPropertyValue(\"requiredIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"requiredIf\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"showCommentArea\", {\n /**\n * Specifies whether to display a comment area. Incompatible with the `showOtherItem` property.\n * @see comment\n * @see commentText\n * @see showOtherItem\n */\n get: function () {\n return this.getPropertyValue(\"showCommentArea\", false);\n },\n set: function (val) {\n if (!this.supportComment())\n return;\n this.setPropertyValue(\"showCommentArea\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasComment\", {\n get: function () {\n return this.showCommentArea;\n },\n set: function (val) {\n this.showCommentArea = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"id\", {\n /**\n * A value to assign to the `id` attribute of the rendered HTML element. A default `id` is generated automatically.\n */\n get: function () {\n return this.getPropertyValue(\"id\");\n },\n set: function (val) {\n this.setPropertyValue(\"id\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaTitleId\", {\n get: function () {\n return this.id + \"_ariaTitle\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaDescriptionId\", {\n get: function () {\n return this.id + \"_ariaDescription\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"commentId\", {\n get: function () {\n return this.id + \"_comment\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"showOtherItem\", {\n /**\n * Specifies whether to display the \"Other\" choice item. Incompatible with the `showCommentArea` property.\n *\n * @see otherText\n * @see otherItem\n * @see otherErrorText\n * @see showCommentArea\n * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)\n */\n get: function () {\n return this.getPropertyValue(\"showOtherItem\", false);\n },\n set: function (val) {\n if (!this.supportOther() || this.showOtherItem == val)\n return;\n this.setPropertyValue(\"showOtherItem\", val);\n this.hasOtherChanged();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasOther\", {\n get: function () {\n return this.showOtherItem;\n },\n set: function (val) {\n this.showOtherItem = val;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.hasOtherChanged = function () { };\n Object.defineProperty(Question.prototype, \"requireUpdateCommentValue\", {\n get: function () {\n return this.hasComment || this.hasOther;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isReadOnly\", {\n get: function () {\n var isParentReadOnly = !!this.parent && this.parent.isReadOnly;\n var isPareQuestionReadOnly = !!this.parentQuestion && this.parentQuestion.isReadOnly;\n var isSurveyReadOnly = !!this.survey && this.survey.isDisplayMode;\n return this.readOnly || isParentReadOnly || isSurveyReadOnly || isPareQuestionReadOnly;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isInputReadOnly\", {\n get: function () {\n if (this.forceIsInputReadOnly !== undefined) {\n return this.forceIsInputReadOnly;\n }\n return this.isReadOnly || this.isDesignModeV2;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"renderedInputReadOnly\", {\n get: function () {\n return this.isInputReadOnly ? \"\" : undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"renderedInputDisabled\", {\n get: function () {\n return this.isInputReadOnly ? \"\" : undefined;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.onReadOnlyChanged = function () {\n this.setPropertyValue(\"isInputReadOnly\", this.isInputReadOnly);\n _super.prototype.onReadOnlyChanged.call(this);\n if (this.isReadOnly) {\n this.clearErrors();\n }\n this.updateQuestionCss();\n this.calcRenderedCommentPlaceholder();\n };\n Object.defineProperty(Question.prototype, \"enableIf\", {\n /**\n * A Boolean expression. If it evaluates to `false`, this question becomes read-only.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see readOnly\n * @see isReadOnly\n */\n get: function () {\n return this.getPropertyValue(\"enableIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"enableIf\", val);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.surveyChoiceItemVisibilityChange = function () { };\n Question.prototype.runCondition = function (values, properties) {\n if (this.isDesignMode)\n return;\n if (!properties)\n properties = {};\n properties[\"question\"] = this;\n this.runConditionCore(values, properties);\n if (!this.isValueChangedDirectly && (!this.isClearValueOnHidden || this.isVisibleInSurvey)) {\n this.defaultValueRunner = this.getDefaultRunner(this.defaultValueRunner, this.defaultValueExpression);\n this.runDefaultValueExpression(this.defaultValueRunner, values, properties);\n }\n };\n Object.defineProperty(Question.prototype, \"no\", {\n /**\n * A question number or letter (depends on the `questionStartIndex` property of the question container (panel, page, or survey)).\n *\n * When the question number, title, or the entire question is invisible, this property returns an empty string.\n * @see SurveyModel.questionStartIndex\n * @see hideNumber\n * @see titleLocation\n * @see visibleIf\n */\n get: function () {\n return this.getPropertyValue(\"no\");\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.calcNo = function () {\n if (!this.hasTitle || this.hideNumber)\n return \"\";\n var no = _helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].getNumberByIndex(this.visibleIndex, this.getStartIndex());\n if (!!this.survey) {\n no = this.survey.getUpdatedQuestionNo(this, no);\n }\n return no;\n };\n Question.prototype.getStartIndex = function () {\n if (!!this.parent)\n return this.parent.getQuestionStartIndex();\n if (!!this.survey)\n return this.survey.questionStartIndex;\n return \"\";\n };\n Question.prototype.onSurveyLoad = function () {\n this.isCustomWidgetRequested = false;\n this.fireCallback(this.surveyLoadCallback);\n this.updateValueWithDefaults();\n if (this.isEmpty()) {\n this.initDataFromSurvey();\n }\n this.calcRenderedCommentPlaceholder();\n this.onIndentChanged();\n };\n Question.prototype.onSetData = function () {\n _super.prototype.onSetData.call(this);\n if (!this.survey)\n return;\n this.initDataFromSurvey();\n this.onSurveyValueChanged(this.value);\n this.updateValueWithDefaults();\n this.onIndentChanged();\n this.updateQuestionCss();\n this.updateIsAnswered();\n };\n Question.prototype.initDataFromSurvey = function () {\n if (!!this.data) {\n var val = this.data.getValue(this.getValueName());\n if (!_helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].isValueEmpty(val) || !this.isLoadingFromJson) {\n this.updateValueFromSurvey(val);\n }\n this.initCommentFromSurvey();\n }\n };\n Question.prototype.initCommentFromSurvey = function () {\n if (!!this.data && this.requireUpdateCommentValue) {\n this.updateCommentFromSurvey(this.data.getComment(this.getValueName()));\n }\n else {\n this.updateCommentFromSurvey(\"\");\n }\n };\n Question.prototype.runExpression = function (expression) {\n if (!this.survey || !expression)\n return undefined;\n return this.survey.runExpression(expression);\n };\n Object.defineProperty(Question.prototype, \"autoGrowComment\", {\n get: function () {\n return this.survey && this.survey.autoGrowComment;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"allowResizeComment\", {\n get: function () {\n return this.survey && this.survey.allowResizeComment;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"questionValue\", {\n get: function () {\n return this.getPropertyValueWithoutDefault(\"value\");\n },\n set: function (val) {\n this.setPropertyValue(\"value\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"questionComment\", {\n get: function () {\n return this.getPropertyValueWithoutDefault(\"comment\");\n },\n set: function (val) {\n this.setPropertyValue(\"comment\", val);\n this.fireCallback(this.commentChangedCallback);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"isValueArray\", {\n get: function () { return false; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"value\", {\n /**\n * Gets or sets the question value.\n *\n * The following table illustrates how the value type depends on the question type:\n *\n * | Question type | Value type(s) |\n * | ------------- | ------------- |\n * | Checkboxes | `Array` |\n * | Dropdown | `string` \\| `number` |\n * | Dynamic Matrix | `Array` |\n * | Dynamic Panel | `Array` |\n * | Expression | `string` \\| `number` \\| `boolean` |\n * | File Upload | `File` \\| `Array` |\n * | HTML | (no value) |\n * | Image | (no value) |\n * | Image Picker | `Array` |\n * | Long Text | `string` |\n * | Multi-Select Dropdown | `object` |\n * | Multi-Select Matrix | `object` |\n * | Multiple Textboxes | `Array` |\n * | Panel | (no value) |\n * | Radio Button Group | `string` \\| `number` |\n * | Ranking | `Array` |\n * | Rating Scale | `number` \\| `string` |\n * | Signature | `string` (base64-encoded image) |\n * | Single-Line Input | `string` \\| `number` \\| `Date` |\n * | Single-Select Matrix | `object` |\n * | Yes/No (Boolean) | `boolean` \\| `string` |\n */\n get: function () {\n return this.getValueCore();\n },\n set: function (newValue) {\n this.setNewValue(newValue);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"hasFilteredValue\", {\n get: function () { return false; },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getFilteredValue = function () { return this.value; };\n Question.prototype.getFilteredName = function () { return this.getValueName(); };\n Object.defineProperty(Question.prototype, \"valueForSurvey\", {\n get: function () {\n if (!!this.valueToDataCallback) {\n return this.valueToDataCallback(this.value);\n }\n return this.value;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Sets the question's `value` and `comment` properties to `undefined`.\n * @see value\n * @see comment\n */\n Question.prototype.clearValue = function () {\n if (this.value !== undefined) {\n this.value = undefined;\n }\n if (!!this.comment) {\n this.comment = undefined;\n }\n this.setValueChangedDirectly(false);\n };\n Question.prototype.unbindValue = function () {\n this.clearValue();\n };\n Question.prototype.createValueCopy = function () {\n return this.getUnbindValue(this.value);\n };\n Question.prototype.initDataUI = function () { };\n Question.prototype.getUnbindValue = function (value) {\n if (this.isValueSurveyElement(value))\n return value;\n return _helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].getUnbindValue(value);\n };\n Question.prototype.isValueSurveyElement = function (val) {\n if (!val)\n return false;\n if (Array.isArray(val))\n return val.length > 0 ? this.isValueSurveyElement(val[0]) : false;\n return !!val.getType && !!val.onPropertyChanged;\n };\n Question.prototype.canClearValueAsInvisible = function (reason) {\n if (reason === \"onHiddenContainer\" && !this.isParentVisible)\n return true;\n if (this.isVisibleInSurvey)\n return false;\n if (!!this.page && this.page.isStartPage)\n return false;\n if (!this.survey)\n return true;\n return !this.survey.hasVisibleQuestionByValueName(this.getValueName());\n };\n Object.defineProperty(Question.prototype, \"isParentVisible\", {\n /**\n * Returns `true` if a parent element (page or panel) is visible.\n */\n get: function () {\n if (this.parentQuestion && !this.parentQuestion.isVisible)\n return false;\n var parent = this.parent;\n while (parent) {\n if (!parent.isVisible)\n return false;\n parent = parent.parent;\n }\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.clearValueIfInvisible = function (reason) {\n if (reason === void 0) { reason = \"onHidden\"; }\n var clearIf = this.getClearIfInvisible();\n if (clearIf === \"none\")\n return;\n if (reason === \"onHidden\" && clearIf === \"onComplete\")\n return;\n if (reason === \"onHiddenContainer\" && clearIf !== reason)\n return;\n this.clearValueIfInvisibleCore(reason);\n };\n Question.prototype.clearValueIfInvisibleCore = function (reason) {\n if (this.canClearValueAsInvisible(reason)) {\n this.clearValue();\n this.setValueChangedDirectly(undefined);\n }\n };\n Object.defineProperty(Question.prototype, \"clearIfInvisible\", {\n /**\n * Specifies when to clear the question value if the question becomes invisible.\n *\n * Possible values:\n *\n * - `\"default\"` (default) - Inherits the setting from the Survey's [`clearInvisibleValues`](https://surveyjs.io/form-library/documentation/surveymodel#clearInvisibleValues) property.\n * - `\"onHidden\"` - Clears the value when the question becomes invisible. If a question is invisible on startup and has an initial value, this value will be cleared when the survey is complete.\n * - `\"onHiddenContainer\"` - Clears the value when the question or its container (page or panel) becomes invisible. If a question is invisible on startup and has an initial value, this value will be cleared when the survey is complete.\n * - `\"onComplete\"` - Clears the value when the survey is complete.\n * - `\"none\"` - Never clears the value of an invisible question.\n * @see SurveyModel.clearInvisibleValues\n * @see visible\n * @see SurveyModel.onComplete\n */\n get: function () {\n return this.getPropertyValue(\"clearIfInvisible\");\n },\n set: function (val) {\n this.setPropertyValue(\"clearIfInvisible\", val);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getClearIfInvisible = function () {\n var res = this.clearIfInvisible;\n if (!!this.survey)\n return this.survey.getQuestionClearIfInvisible(res);\n return res !== \"default\" ? res : \"onComplete\";\n };\n Object.defineProperty(Question.prototype, \"displayValue\", {\n get: function () {\n if (this.isLoadingFromJson)\n return \"\";\n return this.getDisplayValue(true);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns a display text that corresponds to the question value. For example, if you call this method for a Dropdown question, it returns an item text instead of an item value.\n * @param keysAsText Applies when the question value is an object (in Matrix, Multiple Text, and similar questions). Pass `true` if not only values in the object should be display texts, but also keys. Default value: `false`.\n * @param value Specify this parameter to get a display text for a specific value, not for the current question value. If the question value is an object, this parameter should be a similar object.\n */\n Question.prototype.getDisplayValue = function (keysAsText, value) {\n if (value === void 0) { value = undefined; }\n var res = this.calcDisplayValue(keysAsText, value);\n if (this.survey) {\n res = this.survey.getQuestionDisplayValue(this, res);\n }\n return !!this.displayValueCallback ? this.displayValueCallback(res) : res;\n };\n Question.prototype.calcDisplayValue = function (keysAsText, value) {\n if (value === void 0) { value = undefined; }\n if (this.customWidget) {\n var res = this.customWidget.getDisplayValue(this, value);\n if (res)\n return res;\n }\n value = value == undefined ? this.createValueCopy() : value;\n if (this.isValueEmpty(value, !this.allowSpaceAsAnswer))\n return this.getDisplayValueEmpty();\n return this.getDisplayValueCore(keysAsText, value);\n };\n Question.prototype.getDisplayValueCore = function (keyAsText, value) {\n return value;\n };\n Question.prototype.getDisplayValueEmpty = function () {\n return \"\";\n };\n Object.defineProperty(Question.prototype, \"defaultValue\", {\n /**\n * A default value for the question. Ignored for question types that cannot have a [value](https://surveyjs.io/form-library/documentation/question#value) (for example, HTML).\n *\n * The default value is used as a question value in the following cases:\n *\n * - While the survey is being loaded from JSON.\n * - The question is just added to the survey and does not yet have an answer.\n * - The respondent left the answer empty.\n * @see defaultValueExpression\n */\n get: function () {\n return this.getPropertyValue(\"defaultValue\");\n },\n set: function (val) {\n if (this.isValueExpression(val)) {\n this.defaultValueExpression = val.substring(1);\n return;\n }\n this.setPropertyValue(\"defaultValue\", this.convertDefaultValue(val));\n this.updateValueWithDefaults();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"defaultValueExpression\", {\n /**\n * An expression used to calculate the [defaultValue](https://surveyjs.io/form-library/documentation/question#defaultValue).\n *\n * This expression applies until the question [value](https://surveyjs.io/form-library/documentation/question#value) is specified by an end user or programmatically.\n *\n * An expression can reference other questions as follows:\n *\n * - `{other_question_name}`\n * - `{panel.other_question_name}` (to access questions inside the same dynamic panel)\n * - `{row.other_question_name}` (to access questions inside the same dynamic matrix or multi-column dropdown)\n *\n * An expression can also include built-in and custom functions for advanced calculations. For example, if the `defaultValue` should be today's date, set the `defaultValueExpression` to `\"today()\"`, and the corresponding built-in function will be executed each time the survey is loaded. Refer to the following help topic for more information: [Built-In Functions](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#built-in-functions).\n *\n * [View Demo](https://surveyjs.io/form-library/examples/specify-default-question-value-dynamically (linkStyle))\n * @see defaultValue\n * @see setValueExpression\n */\n get: function () {\n return this.getPropertyValue(\"defaultValueExpression\");\n },\n set: function (val) {\n this.setPropertyValue(\"defaultValueExpression\", val);\n this.defaultValueRunner = undefined;\n this.updateValueWithDefaults();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"resetValueIf\", {\n /**\n * A Boolean expression. If it evaluates to `true`, the question value is reset to [default](#defaultValue).\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * [Expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions (linkStyle))\n * @see setValueIf\n */\n get: function () {\n return this.getPropertyValue(\"resetValueIf\");\n },\n set: function (val) {\n this.setPropertyValue(\"resetValueIf\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"setValueIf\", {\n /**\n * A Boolean expression. If it evaluates to `true`, the question value is set to a value calculated using the [`setValueExpression`](#setValueExpression).\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * [Expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions (linkStyle))\n * @see resetValueIf\n */\n get: function () {\n return this.getPropertyValue(\"setValueIf\");\n },\n set: function (val) {\n this.setPropertyValue(\"setValueIf\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"setValueExpression\", {\n /**\n * An expression used to calculate the question value.\n *\n * You can use `setValueExpression` as a standalone property or in conjunction with the [`setValueIf`](#setValueIf) expression, in which case the calculated question value applies only when `setValueIf` evaluates to `true`.\n *\n * [Expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions (linkStyle))\n * @see defaultValueExpression\n * @see resetValueIf\n */\n get: function () {\n return this.getPropertyValue(\"setValueExpression\");\n },\n set: function (val) {\n this.setPropertyValue(\"setValueExpression\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"resizeStyle\", {\n get: function () {\n return this.allowResizeComment ? \"both\" : \"none\";\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns the question value as an object in which the question name, title, value, and other parameters are stored as individual properties.\n *\n * If the question can have more than one value (Matrix, Multiple Text), the object enables the `isNode` flag and stores information about these values in the `data` property. Refer to the following help topic for more information: [Access Full Survey Results](https://surveyjs.io/form-library/documentation/handle-survey-results-access#access-full-survey-results).\n *\n * Pass an object with the `includeEmpty` property set to `false` if you want to skip empty answers.\n */\n Question.prototype.getPlainData = function (options) {\n var _this = this;\n if (!options) {\n options = { includeEmpty: true, includeQuestionTypes: false };\n }\n if (options.includeEmpty || !this.isEmpty()) {\n var questionPlainData = {\n name: this.name,\n title: this.locTitle.renderedHtml,\n value: this.value,\n displayValue: this.displayValue,\n isNode: false,\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n },\n };\n if (options.includeQuestionTypes === true) {\n questionPlainData.questionType = this.getType();\n }\n (options.calculations || []).forEach(function (calculation) {\n questionPlainData[calculation.propertyName] = _this.getPlainDataCalculatedValue(calculation.propertyName);\n });\n if (this.hasComment) {\n questionPlainData.isNode = true;\n questionPlainData.data = [\n {\n name: 0,\n isComment: true,\n title: \"Comment\",\n value: _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].commentSuffix,\n displayValue: this.comment,\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n },\n isNode: false,\n },\n ];\n }\n return questionPlainData;\n }\n return undefined;\n };\n Question.prototype.getPlainDataCalculatedValue = function (propName) {\n return this[propName];\n };\n Object.defineProperty(Question.prototype, \"correctAnswer\", {\n /**\n * A correct answer to this question. Specify this property if you want to [create a quiz](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).\n * @see SurveyModel.getCorrectAnswerCount\n * @see SurveyModel.getInCorrectAnswerCount\n */\n get: function () {\n return this.getPropertyValue(\"correctAnswer\");\n },\n set: function (val) {\n this.setPropertyValue(\"correctAnswer\", this.convertDefaultValue(val));\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.convertDefaultValue = function (val) {\n return val;\n };\n Object.defineProperty(Question.prototype, \"quizQuestionCount\", {\n /**\n * The number of quiz questions. A question counts if it is visible, has an input field, and specifies `correctAnswer`.\n * @see [Create a Quiz](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz)\n * @see correctAnswer\n * @see SurveyModel.getQuizQuestions\n */\n get: function () {\n if (this.isVisible &&\n this.hasInput &&\n !this.isValueEmpty(this.correctAnswer))\n return this.getQuizQuestionCount();\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"correctAnswerCount\", {\n get: function () {\n if (!this.isEmpty() && !this.isValueEmpty(this.correctAnswer))\n return this.getCorrectAnswerCount();\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getQuizQuestionCount = function () {\n return 1;\n };\n Question.prototype.getCorrectAnswerCount = function () {\n return this.checkIfAnswerCorrect() ? 1 : 0;\n };\n Question.prototype.checkIfAnswerCorrect = function () {\n var isEqual = _helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].isTwoValueEquals(this.value, this.correctAnswer, this.getAnswerCorrectIgnoreOrder(), _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].comparator.caseSensitive, true);\n var correct = isEqual ? 1 : 0;\n var options = { result: isEqual, correctAnswer: correct, correctAnswers: correct, incorrectAnswers: this.quizQuestionCount - correct };\n if (!!this.survey) {\n this.survey.onCorrectQuestionAnswer(this, options);\n }\n return options.result;\n };\n Question.prototype.getAnswerCorrectIgnoreOrder = function () { return false; };\n /**\n * Returns `true` if a question answer matches the `correctAnswer` property value.\n *\n * [View Demo](https://surveyjs.io/form-library/examples/create-a-scored-quiz (linkStyle))\n * @see correctAnswer\n * @see SurveyModel.getQuizQuestions\n */\n Question.prototype.isAnswerCorrect = function () {\n return this.correctAnswerCount == this.quizQuestionCount;\n };\n Question.prototype.updateValueWithDefaults = function () {\n if (this.isLoadingFromJson || (!this.isDesignMode && this.isDefaultValueEmpty()))\n return;\n if (!this.isDesignMode && !this.isEmpty())\n return;\n if (this.isEmpty() && this.isDefaultValueEmpty())\n return;\n if (this.isClearValueOnHidden && !this.isVisible)\n return;\n if (this.isDesignMode && this.isContentElement && this.isDefaultValueEmpty())\n return;\n this.setDefaultValue();\n };\n Object.defineProperty(Question.prototype, \"isClearValueOnHidden\", {\n get: function () {\n var clearIf = this.getClearIfInvisible();\n if (clearIf === \"none\" || clearIf === \"onComplete\")\n return false;\n return clearIf === \"onHidden\" || clearIf === \"onHiddenContainer\";\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getQuestionFromArray = function (name, index) {\n return null;\n };\n Question.prototype.getDefaultValue = function () {\n return this.defaultValue;\n };\n Question.prototype.isDefaultValueEmpty = function () {\n return !this.defaultValueExpression && this.isValueEmpty(this.defaultValue, !this.allowSpaceAsAnswer);\n };\n Question.prototype.getDefaultRunner = function (runner, expression) {\n if (!runner && !!expression) {\n runner = this.createExpressionRunner(expression);\n }\n if (!!runner) {\n runner.expression = expression;\n }\n return runner;\n };\n Question.prototype.setDefaultValue = function () {\n var _this = this;\n this.setDefaultValueCore(function (val) {\n if (!_this.isTwoValueEquals(_this.value, val)) {\n _this.value = val;\n }\n });\n };\n Question.prototype.setDefaultValueCore = function (func) {\n this.defaultValueRunner = this.getDefaultRunner(this.defaultValueRunner, this.defaultValueExpression);\n this.setValueAndRunExpression(this.defaultValueRunner, this.getUnbindValue(this.defaultValue), function (val) { return func(val); });\n };\n Question.prototype.isValueExpression = function (val) {\n return !!val && typeof val == \"string\" && val.length > 0 && val[0] == \"=\";\n };\n Question.prototype.setValueAndRunExpression = function (runner, defaultValue, setFunc, values, properties) {\n var _this = this;\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n var func = function (val) {\n _this.runExpressionSetValue(val, setFunc);\n };\n if (!this.runDefaultValueExpression(runner, values, properties, func)) {\n func(defaultValue);\n }\n };\n Question.prototype.convertFuncValuetoQuestionValue = function (val) {\n return _helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].convertValToQuestionVal(val);\n };\n Question.prototype.runExpressionSetValue = function (val, setFunc) {\n setFunc(this.convertFuncValuetoQuestionValue(val));\n };\n Question.prototype.runDefaultValueExpression = function (runner, values, properties, setFunc) {\n var _this = this;\n if (values === void 0) { values = null; }\n if (properties === void 0) { properties = null; }\n if (!runner || !this.data)\n return false;\n if (!setFunc) {\n setFunc = function (val) {\n _this.runExpressionSetValue(val, function (val) {\n if (!_this.isTwoValueEquals(_this.value, val)) {\n _this.value = val;\n }\n });\n };\n }\n if (!values)\n values = this.data.getFilteredValues();\n if (!properties)\n properties = this.data.getFilteredProperties();\n if (!!runner && runner.canRun) {\n runner.onRunComplete = function (res) {\n if (res == undefined)\n res = _this.defaultValue;\n _this.isChangingViaDefaultValue = true;\n setFunc(res);\n _this.isChangingViaDefaultValue = false;\n };\n runner.run(values, properties);\n }\n return true;\n };\n Object.defineProperty(Question.prototype, \"comment\", {\n /**\n * A comment to the selected question value. Enable the `showCommentArea` property to allow users to leave comments.\n * @see showCommentArea\n * @see commentText\n */\n get: function () {\n return this.getQuestionComment();\n },\n set: function (newValue) {\n if (!!newValue) {\n var trimmedValue = newValue.toString().trim();\n if (trimmedValue !== newValue) {\n newValue = trimmedValue;\n if (newValue === this.comment) {\n this.setPropertyValueDirectly(\"comment\", newValue);\n }\n }\n }\n if (this.comment == newValue)\n return;\n this.setQuestionComment(newValue);\n this.updateCommentElements();\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getCommentAreaCss = function (isOther) {\n if (isOther === void 0) { isOther = false; }\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(\"form-group\", isOther)\n .append(this.cssClasses.formGroup, !isOther)\n .append(this.cssClasses.commentArea)\n .toString();\n };\n Question.prototype.getQuestionComment = function () {\n return this.questionComment;\n };\n Question.prototype.setQuestionComment = function (newValue) {\n this.setNewComment(newValue);\n };\n /**\n * Returns `true` if the question value is an empty string, array, or object or if it equals `undefined` or `null`.\n */\n Question.prototype.isEmpty = function () {\n return this.isValueEmpty(this.value, !this.allowSpaceAsAnswer);\n };\n Object.defineProperty(Question.prototype, \"isAnswered\", {\n get: function () {\n return this.getPropertyValue(\"isAnswered\");\n },\n set: function (val) {\n this.setPropertyValue(\"isAnswered\", val);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.updateIsAnswered = function () {\n var oldVal = this.isAnswered;\n this.setPropertyValue(\"isAnswered\", this.getIsAnswered());\n if (oldVal !== this.isAnswered) {\n this.updateQuestionCss();\n }\n };\n Question.prototype.getIsAnswered = function () {\n return !this.isEmpty();\n };\n Object.defineProperty(Question.prototype, \"validators\", {\n /**\n * Question validators.\n * @see [Data Validation](https://surveyjs.io/form-library/documentation/data-validation)\n */\n get: function () {\n return this.getPropertyValue(\"validators\");\n },\n set: function (val) {\n this.setPropertyValue(\"validators\", val);\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getValidators = function () {\n return this.validators;\n };\n Question.prototype.getSupportedValidators = function () {\n var res = [];\n var className = this.getType();\n while (!!className) {\n var classValidators = _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].supportedValidators[className];\n if (!!classValidators) {\n for (var i = classValidators.length - 1; i >= 0; i--) {\n res.splice(0, 0, classValidators[i]);\n }\n }\n var classInfo = _jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].findClass(className);\n className = classInfo.parentName;\n }\n return res;\n };\n Question.prototype.addConditionObjectsByContext = function (objects, context) {\n objects.push({\n name: this.getFilteredName(),\n text: this.processedTitle,\n question: this,\n });\n };\n /**\n * Returns an array of questions nested within the current question. Use this method to obtain questions within [Multiple Text](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model), [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model), and [Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model)-like questions.\n * @param visibleOnly A Boolean value that specifies whether to include only visible nested questions.\n * @returns An array of nested questions.\n */\n Question.prototype.getNestedQuestions = function (visibleOnly) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n var res = [];\n this.collectNestedQuestions(res, visibleOnly);\n if (res.length === 1 && res[0] === this)\n return [];\n return res;\n };\n Question.prototype.collectNestedQuestions = function (questions, visibleOnly) {\n if (visibleOnly === void 0) { visibleOnly = false; }\n if (visibleOnly && !this.isVisible)\n return;\n this.collectNestedQuestionsCore(questions, visibleOnly);\n };\n Question.prototype.collectNestedQuestionsCore = function (questions, visibleOnly) {\n questions.push(this);\n };\n Question.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n var json = new _jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"JsonObject\"]().toJsonObject(this);\n json[\"type\"] = this.getType();\n return json;\n };\n Question.prototype.hasErrors = function (fireCallback, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (rec === void 0) { rec = null; }\n var errors = this.checkForErrors(!!rec && rec.isOnValueChanged === true);\n if (fireCallback) {\n if (!!this.survey) {\n this.survey.beforeSettingQuestionErrors(this, errors);\n }\n this.errors = errors;\n if (this.errors !== errors) {\n this.errors.forEach(function (er) { return er.locText.strChanged(); });\n }\n }\n this.updateContainsErrors();\n if (this.isCollapsed && rec && fireCallback && errors.length > 0) {\n this.expand();\n }\n return errors.length > 0;\n };\n /**\n * Validates this question and returns `false` if the validation fails.\n * @param fireCallback *(Optional)* Pass `false` if you do not want to show validation errors in the UI.\n * @see [Data Validation](https://surveyjs.io/form-library/documentation/data-validation)\n */\n Question.prototype.validate = function (fireCallback, rec) {\n if (fireCallback === void 0) { fireCallback = true; }\n if (rec === void 0) { rec = null; }\n if (!!rec && rec.isOnValueChanged) {\n if (!!this.parent) {\n this.parent.validateContainerOnly();\n }\n }\n return !this.hasErrors(fireCallback, rec);\n };\n Object.defineProperty(Question.prototype, \"currentErrorCount\", {\n get: function () {\n return this.errors.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"requiredText\", {\n /**\n * Returns a character or text string that indicates a required question.\n * @see SurveyModel.requiredText\n * @see isRequired\n */\n get: function () {\n return this.survey != null && this.isRequired\n ? this.survey.requiredText\n : \"\";\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.addError = function (error) {\n if (!error)\n return;\n var newError = null;\n if (typeof error === \"string\" || error instanceof String) {\n newError = this.addCustomError(error);\n }\n else {\n newError = error;\n }\n this.errors.push(newError);\n };\n Question.prototype.addCustomError = function (error) {\n return new _error__WEBPACK_IMPORTED_MODULE_3__[\"CustomError\"](error, this.survey);\n };\n Question.prototype.removeError = function (error) {\n var errors = this.errors;\n var index = errors.indexOf(error);\n if (index !== -1)\n errors.splice(index, 1);\n };\n Question.prototype.checkForErrors = function (isOnValueChanged) {\n var qErrors = new Array();\n if (this.isVisible && this.canCollectErrors()) {\n this.collectErrors(qErrors, isOnValueChanged);\n }\n return qErrors;\n };\n Question.prototype.canCollectErrors = function () {\n return !this.isReadOnly || _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].readOnly.enableValidation;\n };\n Question.prototype.collectErrors = function (qErrors, isOnValueChanged) {\n this.onCheckForErrors(qErrors, isOnValueChanged);\n if (qErrors.length > 0 || !this.canRunValidators(isOnValueChanged))\n return;\n var errors = this.runValidators();\n if (errors.length > 0) {\n //validators may change the question value.\n qErrors.length = 0;\n for (var i = 0; i < errors.length; i++) {\n qErrors.push(errors[i]);\n }\n }\n if (this.survey && qErrors.length == 0) {\n var error = this.fireSurveyValidation();\n if (error) {\n qErrors.push(error);\n }\n }\n };\n Question.prototype.canRunValidators = function (isOnValueChanged) {\n return true;\n };\n Question.prototype.fireSurveyValidation = function () {\n if (this.validateValueCallback)\n return this.validateValueCallback();\n return this.survey ? this.survey.validateQuestion(this) : null;\n };\n Question.prototype.onCheckForErrors = function (errors, isOnValueChanged) {\n var _this = this;\n if ((!isOnValueChanged || this.isOldAnswered) && this.hasRequiredError()) {\n var err = new _error__WEBPACK_IMPORTED_MODULE_3__[\"AnswerRequiredError\"](this.requiredErrorText, this);\n err.onUpdateErrorTextCallback = function (err) { err.text = _this.requiredErrorText; };\n errors.push(err);\n }\n if (!this.isEmpty() && this.customWidget) {\n var text = this.customWidget.validate(this);\n if (!!text) {\n errors.push(this.addCustomError(text));\n }\n }\n };\n Question.prototype.hasRequiredError = function () {\n return this.isRequired && this.isEmpty();\n };\n Object.defineProperty(Question.prototype, \"isRunningValidators\", {\n get: function () {\n return this.getIsRunningValidators();\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getIsRunningValidators = function () {\n return this.isRunningValidatorsValue;\n };\n Question.prototype.runValidators = function () {\n var _this = this;\n if (!!this.validatorRunner) {\n this.validatorRunner.onAsyncCompleted = null;\n }\n this.validatorRunner = new _validator__WEBPACK_IMPORTED_MODULE_4__[\"ValidatorRunner\"]();\n this.isRunningValidatorsValue = true;\n this.validatorRunner.onAsyncCompleted = function (errors) {\n _this.doOnAsyncCompleted(errors);\n };\n return this.validatorRunner.run(this);\n };\n Question.prototype.doOnAsyncCompleted = function (errors) {\n for (var i = 0; i < errors.length; i++) {\n this.errors.push(errors[i]);\n }\n this.isRunningValidatorsValue = false;\n this.raiseOnCompletedAsyncValidators();\n };\n Question.prototype.raiseOnCompletedAsyncValidators = function () {\n if (!!this.onCompletedAsyncValidators && !this.isRunningValidators) {\n this.onCompletedAsyncValidators(this.getAllErrors().length > 0);\n this.onCompletedAsyncValidators = null;\n }\n };\n Question.prototype.setNewValue = function (newValue) {\n if (this.isNewValueEqualsToValue(newValue))\n return;\n if (!this.checkIsValueCorrect(newValue))\n return;\n this.isOldAnswered = this.isAnswered;\n this.isSettingQuestionValue = true;\n this.setNewValueInData(newValue);\n this.allowNotifyValueChanged && this.onValueChanged();\n this.isSettingQuestionValue = false;\n if (this.isAnswered !== this.isOldAnswered) {\n this.updateQuestionCss();\n }\n this.isOldAnswered = undefined;\n };\n Question.prototype.checkIsValueCorrect = function (val) {\n var res = this.isValueEmpty(val, !this.allowSpaceAsAnswer) || this.isNewValueCorrect(val);\n if (!res) {\n _console_warnings__WEBPACK_IMPORTED_MODULE_12__[\"ConsoleWarnings\"].inCorrectQuestionValue(this.name, val);\n }\n return res;\n };\n Question.prototype.isNewValueCorrect = function (val) {\n return true;\n };\n Question.prototype.isNewValueEqualsToValue = function (newValue) {\n var val = this.value;\n if (!this.isTwoValueEquals(newValue, val, false, false))\n return false;\n var isObj = newValue === val && !!val && (Array.isArray(val) || typeof val === \"object\");\n return !isObj;\n };\n Question.prototype.isTextValue = function () {\n return false;\n };\n Object.defineProperty(Question.prototype, \"isSurveyInputTextUpdate\", {\n get: function () {\n return !!this.survey ? this.survey.isUpdateValueTextOnTyping : false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"requireStrictCompare\", {\n get: function () { return false; },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getDataLocNotification = function () {\n return this.isInputTextUpdate ? \"text\" : false;\n };\n Object.defineProperty(Question.prototype, \"isInputTextUpdate\", {\n get: function () {\n return this.isSurveyInputTextUpdate && this.isTextValue();\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.setNewValueInData = function (newValue) {\n newValue = this.valueToData(newValue);\n if (!this.isValueChangedInSurvey) {\n this.setValueCore(newValue);\n }\n };\n Question.prototype.getValueCore = function () {\n return this.questionValue;\n };\n Question.prototype.setValueCore = function (newValue) {\n this.setQuestionValue(newValue);\n if (this.data != null && this.canSetValueToSurvey()) {\n newValue = this.valueForSurvey;\n this.data.setValue(this.getValueName(), newValue, this.getDataLocNotification(), this.allowNotifyValueChanged, this.name);\n }\n this.isMouseDown = false;\n };\n Question.prototype.canSetValueToSurvey = function () {\n return true;\n };\n Question.prototype.valueFromData = function (val) { return val; };\n Question.prototype.valueToData = function (val) { return val; };\n Question.prototype.convertToCorrectValue = function (val) { return val; };\n Question.prototype.onValueChanged = function () { };\n Question.prototype.onMouseDown = function () {\n this.isMouseDown = true;\n };\n Question.prototype.setNewComment = function (newValue) {\n if (this.questionComment === newValue)\n return;\n this.questionComment = newValue;\n this.setCommentIntoData(newValue);\n };\n Question.prototype.setCommentIntoData = function (newValue) {\n if (this.data != null) {\n this.data.setComment(this.getValueName(), newValue, this.isSurveyInputTextUpdate ? \"text\" : false);\n }\n };\n Question.prototype.getValidName = function (name) {\n return makeNameValid(name);\n };\n //IQuestion\n Question.prototype.updateValueFromSurvey = function (newValue, clearData) {\n var _this = this;\n if (clearData === void 0) { clearData = false; }\n newValue = this.getUnbindValue(newValue);\n if (!!this.valueFromDataCallback) {\n newValue = this.valueFromDataCallback(newValue);\n }\n if (!this.checkIsValueCorrect(newValue))\n return;\n var isEmpty = this.isValueEmpty(newValue);\n if (!isEmpty && this.defaultValueExpression) {\n this.setDefaultValueCore(function (val) {\n _this.updateValueFromSurveyCore(newValue, _this.isTwoValueEquals(newValue, val));\n });\n }\n else {\n this.updateValueFromSurveyCore(newValue, this.data !== this.getSurvey());\n if (clearData && isEmpty) {\n this.isValueChangedDirectly = false;\n }\n }\n this.updateDependedQuestions();\n this.updateIsAnswered();\n };\n Question.prototype.updateValueFromSurveyCore = function (newValue, viaDefaultVal) {\n this.isChangingViaDefaultValue = viaDefaultVal;\n this.setQuestionValue(this.valueFromData(newValue));\n this.isChangingViaDefaultValue = false;\n };\n Question.prototype.updateCommentFromSurvey = function (newValue) {\n this.questionComment = newValue;\n };\n Question.prototype.onChangeQuestionValue = function (newValue) { };\n Question.prototype.setValueChangedDirectly = function (val) {\n this.isValueChangedDirectly = val;\n if (!!this.setValueChangedDirectlyCallback) {\n this.setValueChangedDirectlyCallback(val);\n }\n };\n Question.prototype.setQuestionValue = function (newValue, updateIsAnswered) {\n if (updateIsAnswered === void 0) { updateIsAnswered = true; }\n newValue = this.convertToCorrectValue(newValue);\n var isEqual = this.isTwoValueEquals(this.questionValue, newValue);\n if (!isEqual && !this.isChangingViaDefaultValue && !this.isParentChangingViaDefaultValue) {\n this.setValueChangedDirectly(true);\n }\n this.questionValue = newValue;\n if (!isEqual) {\n this.onChangeQuestionValue(newValue);\n }\n !isEqual && this.allowNotifyValueChanged &&\n this.fireCallback(this.valueChangedCallback);\n if (updateIsAnswered)\n this.updateIsAnswered();\n };\n Object.defineProperty(Question.prototype, \"isParentChangingViaDefaultValue\", {\n get: function () {\n var _a;\n return ((_a = this.data) === null || _a === void 0 ? void 0 : _a.isChangingViaDefaultValue) === true;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.onSurveyValueChanged = function (newValue) { };\n Question.prototype.setVisibleIndex = function (val) {\n if (!this.isVisible ||\n (!this.hasTitle && !_settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].numbering.includeQuestionsWithHiddenTitle) ||\n (this.hideNumber && !_settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].numbering.includeQuestionsWithHiddenNumber)) {\n val = -1;\n }\n this.setPropertyValue(\"visibleIndex\", val);\n this.setPropertyValue(\"no\", this.calcNo());\n return val < 0 ? 0 : 1;\n };\n Question.prototype.removeElement = function (element) {\n return false;\n };\n Question.prototype.supportGoNextPageAutomatic = function () {\n return false;\n };\n Question.prototype.supportGoNextPageError = function () {\n return true;\n };\n /**\n * Removes values that cannot be assigned to this question, for example, choices unlisted in the `choices` array.\n *\n * Call this method after you assign new question values in code to ensure that they are acceptable.\n *\n * > This method does not remove values that fail validation. Call the `validate()` method to validate newly assigned values.\n *\n * @see validate\n */\n Question.prototype.clearIncorrectValues = function () { };\n Question.prototype.clearOnDeletingContainer = function () { };\n /**\n * Empties the `errors` array.\n * @see errors\n */\n Question.prototype.clearErrors = function () {\n this.errors = [];\n };\n Question.prototype.clearUnusedValues = function () { };\n Question.prototype.onAnyValueChanged = function (name, questionName) { };\n Question.prototype.checkBindings = function (valueName, value) {\n if (this.bindings.isEmpty() || !this.data)\n return;\n var props = this.bindings.getPropertiesByValueName(valueName);\n for (var i = 0; i < props.length; i++) {\n var propName = props[i];\n if (this.isValueEmpty(value) && _helpers__WEBPACK_IMPORTED_MODULE_0__[\"Helpers\"].isNumber(this[propName])) {\n value = 0;\n }\n this[propName] = value;\n }\n };\n Question.prototype.getComponentName = function () {\n return _rendererFactory__WEBPACK_IMPORTED_MODULE_9__[\"RendererFactory\"].Instance.getRendererByQuestion(this);\n };\n Question.prototype.isDefaultRendering = function () {\n return (!!this.customWidget ||\n this.getComponentName() === \"default\");\n };\n //ISurveyErrorOwner\n Question.prototype.getErrorCustomText = function (text, error) {\n if (!!this.survey)\n return this.survey.getSurveyErrorCustomText(this, text, error);\n return text;\n };\n //IValidatorOwner\n Question.prototype.getValidatorTitle = function () {\n return null;\n };\n Object.defineProperty(Question.prototype, \"validatedValue\", {\n get: function () {\n return this.value;\n },\n set: function (val) {\n this.value = val;\n },\n enumerable: false,\n configurable: true\n });\n Question.prototype.getAllValues = function () {\n return !!this.data ? this.data.getAllValues() : null;\n };\n Question.prototype.processPopupVisiblilityChanged = function (popupModel, visible) {\n this.survey.processPopupVisiblityChanged(this, popupModel, visible);\n };\n Question.prototype.onTextKeyDownHandler = function (event) {\n if (event.keyCode === 13) {\n this.survey.questionEditFinishCallback(this, event);\n }\n };\n Question.prototype.transformToMobileView = function () { };\n Question.prototype.transformToDesktopView = function () { };\n Question.prototype.needResponsiveWidth = function () {\n return false;\n };\n //responsiveness methods\n Question.prototype.supportResponsiveness = function () {\n return false;\n };\n Question.prototype.needResponsiveness = function () {\n return this.supportResponsiveness() && this.isDefaultV2Theme && !this.isDesignMode;\n };\n Question.prototype.checkForResponsiveness = function (el) {\n var _this = this;\n if (this.needResponsiveness()) {\n if (this.isCollapsed) {\n var onStateChanged = function () {\n if (_this.isExpanded) {\n _this.initResponsiveness(el);\n _this.unregisterPropertyChangedHandlers([\"state\"], \"for-responsiveness\");\n }\n };\n this.registerPropertyChangedHandlers([\"state\"], onStateChanged, \"for-responsiveness\");\n }\n else {\n this.initResponsiveness(el);\n }\n }\n };\n Question.prototype.getObservedElementSelector = function () {\n return \".sd-scrollable-container\";\n };\n Question.prototype.onMobileChanged = function () {\n this.onMobileChangedCallback && this.onMobileChangedCallback();\n };\n Question.prototype.triggerResponsiveness = function (hard) {\n if (hard === void 0) { hard = true; }\n if (this.triggerResponsivenessCallback) {\n this.triggerResponsivenessCallback(hard);\n }\n };\n Question.prototype.initResponsiveness = function (el) {\n var _this = this;\n this.destroyResizeObserver();\n if (!!el && this.isDefaultRendering()) {\n var scrollableSelector_1 = this.getObservedElementSelector();\n if (!scrollableSelector_1)\n return;\n var defaultRootEl = el.querySelector(scrollableSelector_1);\n if (!defaultRootEl)\n return;\n var isProcessed_1 = false;\n var requiredWidth_1 = undefined;\n this.triggerResponsivenessCallback = function (hard) {\n if (hard) {\n requiredWidth_1 = undefined;\n _this.renderAs = \"default\";\n isProcessed_1 = false;\n }\n var callback = function () {\n var rootEl = el.querySelector(scrollableSelector_1);\n if (!requiredWidth_1 && _this.isDefaultRendering()) {\n requiredWidth_1 = rootEl.scrollWidth;\n }\n if (isProcessed_1 || !Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__[\"isContainerVisible\"])(rootEl)) {\n isProcessed_1 = false;\n }\n else {\n isProcessed_1 = _this.processResponsiveness(requiredWidth_1, Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__[\"getElementWidth\"])(rootEl));\n }\n };\n if (hard) {\n setTimeout(callback, 1);\n }\n else {\n callback();\n }\n };\n this.resizeObserver = new ResizeObserver(function (entries) {\n _global_variables_utils__WEBPACK_IMPORTED_MODULE_14__[\"DomWindowHelper\"].requestAnimationFrame(function () {\n _this.triggerResponsiveness(false);\n });\n });\n this.onMobileChangedCallback = function () {\n setTimeout(function () {\n var rootEl = el.querySelector(scrollableSelector_1);\n _this.processResponsiveness(requiredWidth_1, Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__[\"getElementWidth\"])(rootEl));\n }, 0);\n };\n this.resizeObserver.observe(el);\n }\n };\n Question.prototype.getCompactRenderAs = function () {\n return \"default\";\n };\n Question.prototype.getDesktopRenderAs = function () {\n return \"default\";\n };\n Question.prototype.processResponsiveness = function (requiredWidth, availableWidth) {\n availableWidth = Math.round(availableWidth);\n if (Math.abs(requiredWidth - availableWidth) > 2) {\n var oldRenderAs = this.renderAs;\n if (requiredWidth > availableWidth) {\n this.renderAs = this.getCompactRenderAs();\n }\n else {\n this.renderAs = this.getDesktopRenderAs();\n }\n return oldRenderAs !== this.renderAs;\n }\n return false;\n };\n Question.prototype.destroyResizeObserver = function () {\n if (!!this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = undefined;\n this.onMobileChangedCallback = undefined;\n this.triggerResponsivenessCallback = undefined;\n this.renderAs = this.getDesktopRenderAs();\n }\n };\n Question.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this.resetDependedQuestions();\n this.destroyResizeObserver();\n };\n Question.prototype.resetDependedQuestions = function () {\n for (var i = 0; i < this.dependedQuestions.length; i++) {\n this.dependedQuestions[i].resetDependedQuestion();\n }\n };\n Object.defineProperty(Question.prototype, \"isNewA11yStructure\", {\n //a11y\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaLabel\", {\n get: function () {\n if (this.isNewA11yStructure)\n return null;\n return this.locTitle.renderedHtml;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaRole\", {\n get: function () {\n if (this.isNewA11yStructure)\n return null;\n return \"textbox\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaRequired\", {\n get: function () {\n if (this.isNewA11yStructure)\n return null;\n return this.isRequired ? \"true\" : \"false\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaInvalid\", {\n get: function () {\n if (this.isNewA11yStructure)\n return null;\n return this.hasCssError() ? \"true\" : \"false\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaLabelledBy\", {\n get: function () {\n if (this.isNewA11yStructure)\n return null;\n if (this.hasTitle) {\n return this.ariaTitleId;\n }\n else {\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaDescribedBy\", {\n get: function () {\n if (this.isNewA11yStructure)\n return null;\n if (this.hasTitle) {\n return this.ariaDescriptionId;\n }\n else {\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaExpanded\", {\n get: function () {\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"ariaErrormessage\", {\n get: function () {\n if (this.isNewA11yStructure)\n return null;\n return this.hasCssError() ? this.id + \"_errors\" : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"a11y_input_ariaRole\", {\n //EO a11y\n //new a11y\n get: function () {\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"a11y_input_ariaRequired\", {\n get: function () {\n return this.isRequired ? \"true\" : \"false\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"a11y_input_ariaInvalid\", {\n get: function () {\n return this.hasCssError() ? \"true\" : \"false\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"a11y_input_ariaLabel\", {\n get: function () {\n if (this.hasTitle && !this.parentQuestion) {\n return null;\n }\n else {\n return this.locTitle.renderedHtml;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"a11y_input_ariaLabelledBy\", {\n get: function () {\n if (this.hasTitle && !this.parentQuestion) {\n return this.ariaTitleId;\n }\n else {\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"a11y_input_ariaDescribedBy\", {\n get: function () {\n if (this.hasTitle && !this.parentQuestion) {\n return this.ariaDescriptionId;\n }\n else {\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Question.prototype, \"a11y_input_ariaErrormessage\", {\n get: function () {\n return this.hasCssError() ? this.id + \"_errors\" : null;\n },\n enumerable: false,\n configurable: true\n });\n Question.TextPreprocessorValuesMap = {\n title: \"processedTitle\",\n require: \"requiredText\",\n };\n Question.questionCounter = 100;\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: false })\n ], Question.prototype, \"isMobile\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], Question.prototype, \"forceIsInputReadOnly\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ localizable: true, onSet: function (val, target) { return target.calcRenderedCommentPlaceholder(); } })\n ], Question.prototype, \"commentPlaceholder\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], Question.prototype, \"renderAs\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: false })\n ], Question.prototype, \"inMatrixMode\", void 0);\n return Question;\n}(_survey_element__WEBPACK_IMPORTED_MODULE_2__[\"SurveyElement\"]));\n\nfunction makeNameValid(str) {\n if (!str)\n return str;\n str = str.trim().replace(/[\\{\\}]+/g, \"\");\n while (!!str && str[0] === _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].expressionDisableConversionChar) {\n str = str.substring(1);\n }\n return str;\n}\n_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].addClass(\"question\", [\n { name: \"!name\", onSettingValue: function (obj, val) { return makeNameValid(val); } },\n {\n name: \"state\",\n default: \"default\",\n choices: [\"default\", \"collapsed\", \"expanded\"],\n },\n { name: \"visible:switch\", default: true, overridingProperty: \"visibleIf\" },\n { name: \"useDisplayValuesInDynamicTexts:boolean\", alternativeName: \"useDisplayValuesInTitle\", default: true, layout: \"row\" },\n \"visibleIf:condition\",\n { name: \"width\" },\n { name: \"minWidth\", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].minWidth; } },\n { name: \"maxWidth\", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].maxWidth; } },\n { name: \"startWithNewLine:boolean\", default: true, layout: \"row\" },\n { name: \"indent:number\", default: 0, choices: [0, 1, 2, 3], layout: \"row\" },\n {\n name: \"page\",\n isSerializable: false,\n visibleIf: function (obj) {\n var survey = obj ? obj.survey : null;\n return !survey || !survey.pages || survey.pages.length > 1;\n },\n choices: function (obj) {\n var survey = obj ? obj.survey : null;\n return survey\n ? survey.pages.map(function (p) {\n return { value: p.name, text: p.title };\n })\n : [];\n },\n },\n {\n name: \"title:text\", serializationProperty: \"locTitle\", layout: \"row\", dependsOn: \"name\",\n onPropertyEditorUpdate: function (obj, editor) {\n if (!!obj && !!editor) {\n editor.placeholder = obj.name;\n }\n }\n },\n {\n name: \"titleLocation\",\n default: \"default\",\n choices: [\"default\", \"top\", \"bottom\", \"left\", \"hidden\"],\n layout: \"row\",\n },\n {\n name: \"description:text\",\n serializationProperty: \"locDescription\",\n layout: \"row\",\n },\n {\n name: \"descriptionLocation\",\n default: \"default\",\n choices: [\"default\", \"underInput\", \"underTitle\"],\n },\n {\n name: \"hideNumber:boolean\",\n dependsOn: \"titleLocation\",\n visibleIf: function (obj) {\n if (!obj) {\n return true;\n }\n if (obj.titleLocation === \"hidden\") {\n return false;\n }\n var parent = obj ? obj.parent : null;\n var numberingAllowedByParent = !parent || parent.showQuestionNumbers !== \"off\";\n if (!numberingAllowedByParent) {\n return false;\n }\n var survey = obj ? obj.survey : null;\n return (!survey ||\n survey.showQuestionNumbers !== \"off\" ||\n (!!parent && parent.showQuestionNumbers === \"onpanel\"));\n },\n },\n { name: \"valueName\", onSettingValue: function (obj, val) { return makeNameValid(val); } },\n \"enableIf:condition\",\n \"resetValueIf:condition\",\n \"setValueIf:condition\",\n \"setValueExpression:expression\",\n \"defaultValue:value\",\n {\n name: \"defaultValueExpression:expression\",\n category: \"logic\",\n },\n \"correctAnswer:value\",\n {\n name: \"clearIfInvisible\",\n default: \"default\",\n choices: [\"default\", \"none\", \"onComplete\", \"onHidden\", \"onHiddenContainer\"],\n },\n { name: \"isRequired:switch\", overridingProperty: \"requiredIf\" },\n \"requiredIf:condition\",\n {\n name: \"requiredErrorText:text\",\n serializationProperty: \"locRequiredErrorText\",\n },\n { name: \"errorLocation\", default: \"default\", choices: [\"default\", \"top\", \"bottom\"] },\n { name: \"readOnly:switch\", overridingProperty: \"enableIf\" },\n {\n name: \"validators:validators\",\n baseClassName: \"surveyvalidator\",\n classNamePart: \"validator\",\n },\n {\n name: \"bindings:bindings\",\n serializationProperty: \"bindings\",\n visibleIf: function (obj) {\n return obj.bindings.getNames().length > 0;\n },\n },\n { name: \"renderAs\", default: \"default\", visible: false },\n { name: \"showCommentArea\", visible: false, default: false, alternativeName: \"hasComment\", category: \"general\" },\n {\n name: \"commentText\",\n dependsOn: \"showCommentArea\",\n visibleIf: function (obj) {\n return obj.showCommentArea;\n },\n serializationProperty: \"locCommentText\",\n layout: \"row\",\n },\n {\n name: \"commentPlaceholder\",\n alternativeName: \"commentPlaceHolder\",\n serializationProperty: \"locCommentPlaceholder\",\n dependsOn: \"showCommentArea\",\n visibleIf: function (obj) {\n return obj.hasComment;\n }\n }\n]);\n_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].addAlterNativeClassName(\"question\", \"questionbase\");\n\n\n/***/ }),\n\n/***/ \"./src/questionCustomWidgets.ts\":\n/*!**************************************!*\\\n !*** ./src/questionCustomWidgets.ts ***!\n \\**************************************/\n/*! exports provided: QuestionCustomWidget, CustomWidgetCollection */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionCustomWidget\", function() { return QuestionCustomWidget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomWidgetCollection\", function() { return CustomWidgetCollection; });\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ \"./src/base.ts\");\n\nvar QuestionCustomWidget = /** @class */ (function () {\n function QuestionCustomWidget(name, widgetJson) {\n this.name = name;\n this.widgetJson = widgetJson;\n this.htmlTemplate = widgetJson.htmlTemplate ? widgetJson.htmlTemplate : \"\";\n }\n QuestionCustomWidget.prototype.afterRender = function (question, el) {\n var _this = this;\n if (!this.widgetJson.afterRender)\n return;\n question.localeChangedCallback = function () {\n if (_this.widgetJson.willUnmount) {\n _this.widgetJson.willUnmount(question, el);\n }\n _this.widgetJson.afterRender(question, el);\n };\n this.widgetJson.afterRender(question, el);\n };\n QuestionCustomWidget.prototype.willUnmount = function (question, el) {\n if (this.widgetJson.willUnmount)\n this.widgetJson.willUnmount(question, el);\n };\n QuestionCustomWidget.prototype.getDisplayValue = function (question, value) {\n if (value === void 0) { value = undefined; }\n if (this.widgetJson.getDisplayValue)\n return this.widgetJson.getDisplayValue(question, value);\n return null;\n };\n QuestionCustomWidget.prototype.validate = function (question) {\n if (this.widgetJson.validate)\n return this.widgetJson.validate(question);\n return undefined;\n };\n QuestionCustomWidget.prototype.isFit = function (question) {\n if (this.isLibraryLoaded() && this.widgetJson.isFit)\n return this.widgetJson.isFit(question);\n return false;\n };\n Object.defineProperty(QuestionCustomWidget.prototype, \"canShowInToolbox\", {\n get: function () {\n if (this.widgetJson.showInToolbox === false)\n return false;\n if (CustomWidgetCollection.Instance.getActivatedBy(this.name) != \"customtype\")\n return false;\n return !this.widgetJson.widgetIsLoaded || this.widgetJson.widgetIsLoaded();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCustomWidget.prototype, \"showInToolbox\", {\n get: function () {\n return this.widgetJson.showInToolbox !== false;\n },\n set: function (val) {\n this.widgetJson.showInToolbox = val;\n },\n enumerable: false,\n configurable: true\n });\n QuestionCustomWidget.prototype.init = function () {\n if (this.widgetJson.init) {\n this.widgetJson.init();\n }\n };\n QuestionCustomWidget.prototype.activatedByChanged = function (activatedBy) {\n if (this.isLibraryLoaded() && this.widgetJson.activatedByChanged) {\n this.widgetJson.activatedByChanged(activatedBy);\n }\n };\n QuestionCustomWidget.prototype.isLibraryLoaded = function () {\n if (this.widgetJson.widgetIsLoaded)\n return this.widgetJson.widgetIsLoaded() == true;\n return true;\n };\n Object.defineProperty(QuestionCustomWidget.prototype, \"isDefaultRender\", {\n get: function () {\n return this.widgetJson.isDefaultRender;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCustomWidget.prototype, \"pdfQuestionType\", {\n get: function () {\n return this.widgetJson.pdfQuestionType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCustomWidget.prototype, \"pdfRender\", {\n get: function () {\n return this.widgetJson.pdfRender;\n },\n enumerable: false,\n configurable: true\n });\n return QuestionCustomWidget;\n}());\n\nvar CustomWidgetCollection = /** @class */ (function () {\n function CustomWidgetCollection() {\n this.widgetsValues = [];\n this.widgetsActivatedBy = {};\n this.onCustomWidgetAdded = new _base__WEBPACK_IMPORTED_MODULE_0__[\"Event\"]();\n }\n Object.defineProperty(CustomWidgetCollection.prototype, \"widgets\", {\n get: function () {\n return this.widgetsValues;\n },\n enumerable: false,\n configurable: true\n });\n CustomWidgetCollection.prototype.add = function (widgetJson, activatedBy) {\n if (activatedBy === void 0) { activatedBy = \"property\"; }\n this.addCustomWidget(widgetJson, activatedBy);\n };\n CustomWidgetCollection.prototype.addCustomWidget = function (widgetJson, activatedBy) {\n if (activatedBy === void 0) { activatedBy = \"property\"; }\n var name = widgetJson.name;\n if (!name) {\n name = \"widget_\" + this.widgets.length + 1;\n }\n var customWidget = new QuestionCustomWidget(name, widgetJson);\n this.widgetsValues.push(customWidget);\n customWidget.init();\n this.widgetsActivatedBy[name] = activatedBy;\n customWidget.activatedByChanged(activatedBy);\n this.onCustomWidgetAdded.fire(customWidget, null);\n return customWidget;\n };\n /**\n * Returns the way the custom wiget is activated. It can be activated by a property (\"property\"), question type (\"type\") or by new/custom question type (\"customtype\").\n * @param widgetName the custom widget name\n * @see setActivatedBy\n */\n CustomWidgetCollection.prototype.getActivatedBy = function (widgetName) {\n var res = this.widgetsActivatedBy[widgetName];\n return res ? res : \"property\";\n };\n /**\n * Sets the way the custom wiget is activated. The activation types are: property (\"property\"), question type (\"type\") or new/custom question type (\"customtype\"). A custom wiget may support all or only some of this activation types.\n * @param widgetName\n * @param activatedBy there are three possible variants: \"property\", \"type\" and \"customtype\"\n */\n CustomWidgetCollection.prototype.setActivatedBy = function (widgetName, activatedBy) {\n if (!widgetName || !activatedBy)\n return;\n var widget = this.getCustomWidgetByName(widgetName);\n if (!widget)\n return;\n this.widgetsActivatedBy[widgetName] = activatedBy;\n widget.activatedByChanged(activatedBy);\n };\n CustomWidgetCollection.prototype.clear = function () {\n this.widgetsValues = [];\n };\n CustomWidgetCollection.prototype.getCustomWidgetByName = function (name) {\n for (var i = 0; i < this.widgets.length; i++) {\n if (this.widgets[i].name == name)\n return this.widgets[i];\n }\n return null;\n };\n CustomWidgetCollection.prototype.getCustomWidget = function (question) {\n for (var i = 0; i < this.widgetsValues.length; i++) {\n if (this.widgetsValues[i].isFit(question))\n return this.widgetsValues[i];\n }\n return null;\n };\n CustomWidgetCollection.Instance = new CustomWidgetCollection();\n return CustomWidgetCollection;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/question_baseselect.ts\":\n/*!************************************!*\\\n !*** ./src/question_baseselect.ts ***!\n \\************************************/\n/*! exports provided: QuestionSelectBase, QuestionCheckboxBase */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionSelectBase\", function() { return QuestionSelectBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionCheckboxBase\", function() { return QuestionCheckboxBase; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./survey */ \"./src/survey.ts\");\n/* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question */ \"./src/question.ts\");\n/* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./itemvalue */ \"./src/itemvalue.ts\");\n/* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./surveyStrings */ \"./src/surveyStrings.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./error */ \"./src/error.ts\");\n/* harmony import */ var _choicesRestful__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./choicesRestful */ \"./src/choicesRestful.ts\");\n/* harmony import */ var _conditions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./conditions */ \"./src/conditions.ts\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers */ \"./src/helpers.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/utils */ \"./src/utils/utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A base class for multiple-choice question types ([Checkboxes](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Radio Button Group](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), etc.).\n */\nvar QuestionSelectBase = /** @class */ (function (_super) {\n __extends(QuestionSelectBase, _super);\n function QuestionSelectBase(name) {\n var _this = _super.call(this, name) || this;\n _this.otherItemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"](\"other\");\n _this.isSettingDefaultValue = false;\n _this.isSettingComment = false;\n _this.isRunningChoices = false;\n _this.isFirstLoadChoicesFromUrl = true;\n _this.isUpdatingChoicesDependedQuestions = false;\n _this.headItemsCount = 0;\n _this.footItemsCount = 0;\n _this.prevIsOtherSelected = false;\n _this.noneItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].noneItemValue, \"noneText\", \"noneItemText\");\n _this.refuseItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].refuseItemValue, \"refuseText\", \"refuseItemText\");\n _this.dontKnowItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].dontKnowItemValue, \"dontKnowText\", \"dontKnowItemText\");\n _this.createItemValues(\"choices\");\n _this.registerPropertyChangedHandlers([\"choices\"], function () {\n if (!_this.filterItems()) {\n _this.onVisibleChoicesChanged();\n }\n });\n _this.registerPropertyChangedHandlers([\"choicesFromQuestion\", \"choicesFromQuestionMode\", \"choiceValuesFromQuestion\",\n \"choiceTextsFromQuestion\", \"showNoneItem\", \"showRefuseItem\", \"showDontKnowItem\", \"isUsingRestful\", \"isMessagePanelVisible\"], function () {\n _this.onVisibleChoicesChanged();\n });\n _this.registerPropertyChangedHandlers([\"hideIfChoicesEmpty\"], function () {\n _this.onVisibleChanged();\n });\n _this.createNewArray(\"visibleChoices\");\n _this.setNewRestfulProperty();\n var locOtherText = _this.createLocalizableString(\"otherText\", _this.otherItemValue, true, \"otherItemText\");\n _this.createLocalizableString(\"otherErrorText\", _this, true, \"otherRequiredError\");\n _this.otherItemValue.locOwner = _this;\n _this.otherItemValue.setLocText(locOtherText);\n _this.choicesByUrl.createItemValue = function (value) {\n return _this.createItemValue(value);\n };\n _this.choicesByUrl.beforeSendRequestCallback = function () {\n _this.onBeforeSendRequest();\n };\n _this.choicesByUrl.getResultCallback = function (items) {\n _this.onLoadChoicesFromUrl(items);\n };\n _this.choicesByUrl.updateResultCallback = function (items, serverResult) {\n if (_this.survey) {\n return _this.survey.updateChoicesFromServer(_this, items, serverResult);\n }\n return items;\n };\n return _this;\n }\n Object.defineProperty(QuestionSelectBase.prototype, \"waitingChoicesByURL\", {\n get: function () {\n return !this.isChoicesLoaded && this.hasChoicesUrl;\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.getType = function () {\n return \"selectbase\";\n };\n QuestionSelectBase.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n var q = this.getQuestionWithChoices();\n if (!!q) {\n q.removeDependedQuestion(this);\n }\n };\n QuestionSelectBase.prototype.resetDependedQuestion = function () {\n this.choicesFromQuestion = \"\";\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"otherId\", {\n get: function () {\n return this.id + \"_other\";\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.getCommentElementsId = function () {\n return [this.commentId, this.otherId];\n };\n QuestionSelectBase.prototype.getItemValueType = function () {\n return \"itemvalue\";\n };\n QuestionSelectBase.prototype.createItemValue = function (value, text) {\n var res = _jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].createClass(this.getItemValueType(), { value: value });\n res.locOwner = this;\n if (!!text)\n res.text = text;\n return res;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"isUsingCarryForward\", {\n get: function () {\n return !!this.carryForwardQuestionType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"carryForwardQuestionType\", {\n get: function () {\n return this.getPropertyValue(\"carryForwardQuestionType\");\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.setCarryForwardQuestionType = function (selBaseQuestion, arrayQuestion) {\n var mode = selBaseQuestion ? \"select\" : (arrayQuestion ? \"array\" : undefined);\n this.setPropertyValue(\"carryForwardQuestionType\", mode);\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"isUsingRestful\", {\n get: function () {\n return this.getPropertyValueWithoutDefault(\"isUsingRestful\") || false;\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.updateIsUsingRestful = function () {\n this.setPropertyValueDirectly(\"isUsingRestful\", this.hasChoicesUrl);\n };\n QuestionSelectBase.prototype.supportGoNextPageError = function () {\n return !this.isOtherSelected || !!this.otherValue;\n };\n QuestionSelectBase.prototype.isLayoutTypeSupported = function (layoutType) {\n return true;\n };\n QuestionSelectBase.prototype.localeChanged = function () {\n _super.prototype.localeChanged.call(this);\n if (this.choicesOrder !== \"none\") {\n this.updateVisibleChoices();\n this.onVisibleChoicesChanged();\n }\n };\n QuestionSelectBase.prototype.locStrsChanged = function () {\n _super.prototype.locStrsChanged.call(this);\n if (!!this.choicesFromUrl) {\n _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].locStrsChanged(this.choicesFromUrl);\n _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].locStrsChanged(this.visibleChoices);\n }\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"otherValue\", {\n get: function () {\n if (!this.showCommentArea)\n return this.comment;\n return this.otherValueCore;\n },\n set: function (val) {\n if (!this.showCommentArea) {\n this.comment = val;\n }\n else {\n this.setOtherValueInternally(val);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"otherValueCore\", {\n get: function () {\n return this.getPropertyValue(\"otherValue\");\n },\n set: function (val) {\n this.setPropertyValue(\"otherValue\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"otherItem\", {\n /**\n * Returns the \"Other\" choice item. Use this property to change the item's `value` or `text`.\n * @see showOtherItem\n */\n get: function () {\n return this.otherItemValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"isOtherSelected\", {\n /**\n * Returns `true` if the \"Other\" choice item is selected.\n * @see showOtherItem\n */\n get: function () {\n return this.hasOther && this.getHasOther(this.renderedValue);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"isNoneSelected\", {\n get: function () {\n return this.showNoneItem && this.getIsItemValue(this.renderedValue, this.noneItem);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"showNoneItem\", {\n /**\n * Specifies whether to display the \"None\" choice item.\n *\n * When users select the \"None\" item in multi-select questions, all other items become unselected.\n * @see noneItem\n * @see noneText\n * @see [settings.noneItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#noneItemValue)\n * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)\n */\n get: function () {\n return this.getPropertyValue(\"showNoneItem\");\n },\n set: function (val) {\n this.setPropertyValue(\"showNoneItem\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"hasNone\", {\n get: function () {\n return this.showNoneItem;\n },\n set: function (val) {\n this.showNoneItem = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"noneItem\", {\n /**\n * Returns the \"None\" choice item. Use this property to change the item's `value` or `text`.\n * @see showNoneItem\n */\n get: function () {\n return this.noneItemValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"noneText\", {\n /**\n * Gets or sets a caption for the \"None\" choice item.\n * @see showNoneItem\n */\n get: function () {\n return this.getLocalizableStringText(\"noneText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"noneText\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"locNoneText\", {\n get: function () {\n return this.getLocalizableString(\"noneText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"showRefuseItem\", {\n /**\n * Specifies whether to display the \"Refuse to answer\" choice item.\n *\n * When users select the \"Refuse to answer\" item in multi-select questions, all other items become unselected.\n * @see refuseItem\n * @see refuseItemText\n * @see [settings.refuseItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#refuseItemValue)\n * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)\n */\n get: function () {\n return this.getPropertyValue(\"showRefuseItem\");\n },\n set: function (val) {\n this.setPropertyValue(\"showRefuseItem\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"refuseItem\", {\n /**\n * Returns the \"Refuse to answer\" choice item. Use this property to change the item's `value` or `text`.\n * @see showRefuseItem\n */\n get: function () {\n return this.refuseItemValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"refuseText\", {\n /**\n * Gets or sets a caption for the \"Refuse to answer\" choice item.\n * @see showRefuseItem\n */\n get: function () {\n return this.getLocalizableStringText(\"refuseText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"refuseText\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"locRefuseText\", {\n get: function () {\n return this.getLocalizableString(\"refuseText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"showDontKnowItem\", {\n /**\n * Specifies whether to display the \"Don't know\" choice item.\n *\n * When users select the \"Don't know\" item in multi-select questions, all other items become unselected.\n * @see dontKnowItem\n * @see dontKnowItemText\n * @see [settings.dontKnowItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#dontKnowItemValue)\n * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)\n */\n get: function () {\n return this.getPropertyValue(\"showDontKnowItem\");\n },\n set: function (val) {\n this.setPropertyValue(\"showDontKnowItem\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"dontKnowItem\", {\n /**\n * Returns the \"Don't know\" choice item. Use this property to change the item's `value` or `text`.\n * @see showDontKnowItem\n */\n get: function () {\n return this.dontKnowItemValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"dontKnowText\", {\n /**\n * Gets or sets a caption for the \"Don't know\" choice item.\n * @see showDontKnowItem\n */\n get: function () {\n return this.getLocalizableStringText(\"dontKnowText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"dontKnowText\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"locDontKnowText\", {\n get: function () {\n return this.getLocalizableString(\"dontKnowText\");\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.createDefaultItem = function (defaultValue, name, locName) {\n var item = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"](defaultValue);\n var locStr = this.createLocalizableString(name, item, true, locName);\n item.locOwner = this;\n item.setLocText(locStr);\n return item;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesVisibleIf\", {\n /**\n * A Boolean expression that is evaluated against each choice item. If the expression evaluates to `false`, the choice item becomes hidden.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Use the `{item}` placeholder to reference the current choice item in the expression.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see visibleIf\n * @see choicesEnableIf\n */\n get: function () {\n return this.getPropertyValue(\"choicesVisibleIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"choicesVisibleIf\", val);\n this.filterItems();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesEnableIf\", {\n /**\n * A Boolean expression that is evaluated against each choice item. If the expression evaluates to `false`, the choice item becomes read-only.\n *\n * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.\n *\n * Use the `{item}` placeholder to reference the current choice item in the expression.\n *\n * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).\n * @see enableIf\n * @see choicesVisibleIf\n */\n get: function () {\n return this.getPropertyValue(\"choicesEnableIf\", \"\");\n },\n set: function (val) {\n this.setPropertyValue(\"choicesEnableIf\", val);\n this.filterItems();\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.surveyChoiceItemVisibilityChange = function () {\n this.filterItems();\n };\n QuestionSelectBase.prototype.runCondition = function (values, properties) {\n _super.prototype.runCondition.call(this, values, properties);\n this.runItemsEnableCondition(values, properties);\n this.runItemsCondition(values, properties);\n };\n QuestionSelectBase.prototype.isTextValue = function () {\n return true; //for comments and others\n };\n QuestionSelectBase.prototype.setDefaultValue = function () {\n this.isSettingDefaultValue =\n !this.isValueEmpty(this.defaultValue) &&\n this.hasUnknownValue(this.defaultValue);\n this.prevOtherValue = undefined;\n var prevComment = this.comment;\n _super.prototype.setDefaultValue.call(this);\n this.isSettingDefaultValue = false;\n if (this.comment && this.getStoreOthersAsComment() && prevComment !== this.comment) {\n this.setValueCore(this.setOtherValueIntoValue(this.value));\n this.setCommentIntoData(this.comment);\n }\n };\n QuestionSelectBase.prototype.getIsMultipleValue = function () {\n return false;\n };\n QuestionSelectBase.prototype.convertDefaultValue = function (val) {\n if (val == null || val == undefined)\n return val;\n if (this.getIsMultipleValue()) {\n if (!Array.isArray(val))\n return [val];\n }\n else {\n if (Array.isArray(val) && val.length > 0)\n return val[0];\n }\n return val;\n };\n QuestionSelectBase.prototype.filterItems = function () {\n if (this.isLoadingFromJson ||\n !this.data ||\n this.areInvisibleElementsShowing)\n return false;\n var values = this.getDataFilteredValues();\n var properties = this.getDataFilteredProperties();\n this.runItemsEnableCondition(values, properties);\n return this.runItemsCondition(values, properties);\n };\n QuestionSelectBase.prototype.runItemsCondition = function (values, properties) {\n this.setConditionalChoicesRunner();\n var hasChanges = this.runConditionsForItems(values, properties);\n if (!!this.filteredChoicesValue &&\n this.filteredChoicesValue.length === this.activeChoices.length) {\n this.filteredChoicesValue = undefined;\n }\n if (hasChanges) {\n this.onVisibleChoicesChanged();\n this.clearIncorrectValues();\n }\n return hasChanges;\n };\n QuestionSelectBase.prototype.runItemsEnableCondition = function (values, properties) {\n var _this = this;\n this.setConditionalEnableChoicesRunner();\n var hasChanged = _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].runEnabledConditionsForItems(this.activeChoices, this.conditionChoicesEnableIfRunner, values, properties, function (item, val) {\n return val && _this.onEnableItemCallBack(item);\n });\n if (hasChanged) {\n this.clearDisabledValues();\n }\n this.onAfterRunItemsEnableCondition();\n };\n QuestionSelectBase.prototype.onAfterRunItemsEnableCondition = function () { };\n QuestionSelectBase.prototype.onEnableItemCallBack = function (item) {\n return true;\n };\n QuestionSelectBase.prototype.onSelectedItemValuesChangedHandler = function (newValue) {\n var _a;\n (_a = this.survey) === null || _a === void 0 ? void 0 : _a.loadedChoicesFromServer(this);\n };\n QuestionSelectBase.prototype.getItemIfChoicesNotContainThisValue = function (value, text) {\n if (this.waitingChoicesByURL) {\n return this.createItemValue(value, text);\n }\n else {\n return null;\n }\n };\n QuestionSelectBase.prototype.getSingleSelectedItem = function () {\n var selectedItemValues = this.selectedItemValues;\n if (this.isEmpty())\n return null;\n var itemValue = _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getItemByValue(this.visibleChoices, this.value);\n this.onGetSingleSelectedItem(itemValue);\n if (!itemValue && (!selectedItemValues || this.value != selectedItemValues.id)) {\n this.updateSelectedItemValues();\n }\n return itemValue || selectedItemValues || (this.isOtherSelected ? this.otherItem : this.getItemIfChoicesNotContainThisValue(this.value));\n };\n QuestionSelectBase.prototype.onGetSingleSelectedItem = function (selectedItemByValue) { };\n QuestionSelectBase.prototype.getMultipleSelectedItems = function () {\n return [];\n };\n QuestionSelectBase.prototype.setConditionalChoicesRunner = function () {\n if (this.choicesVisibleIf) {\n if (!this.conditionChoicesVisibleIfRunner) {\n this.conditionChoicesVisibleIfRunner = new _conditions__WEBPACK_IMPORTED_MODULE_7__[\"ConditionRunner\"](this.choicesVisibleIf);\n }\n this.conditionChoicesVisibleIfRunner.expression = this.choicesVisibleIf;\n }\n else {\n this.conditionChoicesVisibleIfRunner = null;\n }\n };\n QuestionSelectBase.prototype.setConditionalEnableChoicesRunner = function () {\n if (this.choicesEnableIf) {\n if (!this.conditionChoicesEnableIfRunner) {\n this.conditionChoicesEnableIfRunner = new _conditions__WEBPACK_IMPORTED_MODULE_7__[\"ConditionRunner\"](this.choicesEnableIf);\n }\n this.conditionChoicesEnableIfRunner.expression = this.choicesEnableIf;\n }\n else {\n this.conditionChoicesEnableIfRunner = null;\n }\n };\n QuestionSelectBase.prototype.canSurveyChangeItemVisibility = function () {\n return !!this.survey && this.survey.canChangeChoiceItemsVisibility();\n };\n QuestionSelectBase.prototype.changeItemVisibility = function () {\n var _this = this;\n return this.canSurveyChangeItemVisibility() ?\n function (item, val) { return _this.survey.getChoiceItemVisibility(_this, item, val); }\n : null;\n };\n QuestionSelectBase.prototype.runConditionsForItems = function (values, properties) {\n this.filteredChoicesValue = [];\n var calcVisibility = this.changeItemVisibility();\n return _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].runConditionsForItems(this.activeChoices, this.getFilteredChoices(), this.areInvisibleElementsShowing\n ? null\n : this.conditionChoicesVisibleIfRunner, values, properties, !this.survey || !this.survey.areInvisibleElementsShowing, function (item, val) {\n return !!calcVisibility ? calcVisibility(item, val) : val;\n });\n };\n QuestionSelectBase.prototype.getHasOther = function (val) {\n return this.getIsItemValue(val, this.otherItem);\n };\n QuestionSelectBase.prototype.getIsItemValue = function (val, item) {\n return val === item.value;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"validatedValue\", {\n get: function () {\n return this.rendredValueToDataCore(this.value);\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.createRestful = function () {\n return new _choicesRestful__WEBPACK_IMPORTED_MODULE_6__[\"ChoicesRestful\"]();\n };\n QuestionSelectBase.prototype.setNewRestfulProperty = function () {\n this.setPropertyValue(\"choicesByUrl\", this.createRestful());\n this.choicesByUrl.owner = this;\n this.choicesByUrl.loadingOwner = this;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"autoOtherMode\", {\n get: function () {\n return this.getPropertyValue(\"autoOtherMode\");\n },\n set: function (val) {\n this.setPropertyValue(\"autoOtherMode\", val);\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.getQuestionComment = function () {\n if (this.showCommentArea)\n return _super.prototype.getQuestionComment.call(this);\n if (!!this.otherValueCore)\n return this.otherValueCore;\n if (this.hasComment || this.getStoreOthersAsComment())\n return _super.prototype.getQuestionComment.call(this);\n return this.otherValueCore;\n };\n QuestionSelectBase.prototype.selectOtherValueFromComment = function (val) {\n this.value = val ? this.otherItem.value : undefined;\n };\n QuestionSelectBase.prototype.setQuestionComment = function (newValue) {\n if (this.showCommentArea) {\n _super.prototype.setQuestionComment.call(this, newValue);\n return;\n }\n this.onUpdateCommentOnAutoOtherMode(newValue);\n if (this.getStoreOthersAsComment())\n _super.prototype.setQuestionComment.call(this, newValue);\n else {\n this.setOtherValueInternally(newValue);\n }\n this.updateChoicesDependedQuestions();\n };\n QuestionSelectBase.prototype.onUpdateCommentOnAutoOtherMode = function (newValue) {\n if (!this.autoOtherMode)\n return;\n this.prevOtherValue = undefined;\n var isSelected = this.isOtherSelected;\n if (!isSelected && !!newValue || isSelected && !newValue) {\n this.selectOtherValueFromComment(!!newValue);\n }\n };\n QuestionSelectBase.prototype.setOtherValueInternally = function (newValue) {\n if (!this.isSettingComment && newValue != this.otherValueCore) {\n this.isSettingComment = true;\n this.otherValueCore = newValue;\n if (this.isOtherSelected && !this.isRenderedValueSetting) {\n this.value = this.rendredValueToData(this.renderedValue);\n }\n this.isSettingComment = false;\n }\n };\n QuestionSelectBase.prototype.clearValue = function () {\n _super.prototype.clearValue.call(this);\n this.prevOtherValue = undefined;\n };\n QuestionSelectBase.prototype.updateCommentFromSurvey = function (newValue) {\n _super.prototype.updateCommentFromSurvey.call(this, newValue);\n this.prevOtherValue = undefined;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"renderedValue\", {\n get: function () {\n return this.getPropertyValue(\"renderedValue\", null);\n },\n set: function (val) {\n this.setPropertyValue(\"renderedValue\", val);\n var val = this.rendredValueToData(val);\n if (!this.isTwoValueEquals(val, this.value)) {\n this.value = val;\n }\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.setQuestionValue = function (newValue, updateIsAnswered, updateComment) {\n if (updateIsAnswered === void 0) { updateIsAnswered = true; }\n if (updateComment === void 0) { updateComment = true; }\n if (this.isLoadingFromJson ||\n this.isTwoValueEquals(this.value, newValue))\n return;\n _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);\n this.setPropertyValue(\"renderedValue\", this.rendredValueFromData(newValue));\n this.updateChoicesDependedQuestions();\n if (this.hasComment || !updateComment)\n return;\n var isOtherSel = this.isOtherSelected;\n if (isOtherSel && !!this.prevOtherValue) {\n var oldOtherValue = this.prevOtherValue;\n this.prevOtherValue = undefined;\n this.otherValue = oldOtherValue;\n }\n if (!isOtherSel && !!this.otherValue) {\n if (this.getStoreOthersAsComment() && !this.autoOtherMode) {\n this.prevOtherValue = this.otherValue;\n }\n this.makeCommentEmpty = true;\n this.otherValueCore = \"\";\n this.setPropertyValue(\"comment\", \"\");\n }\n };\n QuestionSelectBase.prototype.setValueCore = function (newValue) {\n _super.prototype.setValueCore.call(this, newValue);\n if (this.makeCommentEmpty) {\n this.setCommentIntoData(\"\");\n this.makeCommentEmpty = false;\n }\n };\n QuestionSelectBase.prototype.setNewValue = function (newValue) {\n newValue = this.valueFromData(newValue);\n if ((!this.choicesByUrl.isRunning &&\n !this.choicesByUrl.isWaitingForParameters) ||\n !this.isValueEmpty(newValue)) {\n this.cachedValueForUrlRequests = newValue;\n }\n _super.prototype.setNewValue.call(this, newValue);\n };\n QuestionSelectBase.prototype.valueFromData = function (val) {\n var choiceitem = _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getItemByValue(this.activeChoices, val);\n if (!!choiceitem) {\n return choiceitem.value;\n }\n return _super.prototype.valueFromData.call(this, val);\n };\n QuestionSelectBase.prototype.rendredValueFromData = function (val) {\n if (this.getStoreOthersAsComment())\n return val;\n return this.renderedValueFromDataCore(val);\n };\n QuestionSelectBase.prototype.rendredValueToData = function (val) {\n if (this.getStoreOthersAsComment())\n return val;\n return this.rendredValueToDataCore(val);\n };\n QuestionSelectBase.prototype.renderedValueFromDataCore = function (val) {\n if (!this.hasUnknownValue(val, true, false))\n return this.valueFromData(val);\n this.otherValue = val;\n return this.otherItem.value;\n };\n QuestionSelectBase.prototype.rendredValueToDataCore = function (val) {\n if (val == this.otherItem.value && this.needConvertRenderedOtherToDataValue()) {\n val = this.otherValue;\n }\n return val;\n };\n QuestionSelectBase.prototype.needConvertRenderedOtherToDataValue = function () {\n var val = this.otherValue;\n if (!val)\n return false;\n val = val.trim();\n if (!val)\n return false;\n return this.hasUnknownValue(val, true, false);\n };\n QuestionSelectBase.prototype.getIsQuestionReady = function () {\n return _super.prototype.getIsQuestionReady.call(this) && !this.waitingChoicesByURL && !this.waitingGetChoiceDisplayValueResponse;\n };\n QuestionSelectBase.prototype.updateSelectedItemValues = function () {\n var _this = this;\n if (this.waitingGetChoiceDisplayValueResponse || !this.survey || this.isEmpty())\n return;\n var value = this.value;\n var valueArray = Array.isArray(value) ? value : [value];\n var hasItemWithoutValues = valueArray.some(function (val) { return !_itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getItemByValue(_this.choices, val); });\n if (hasItemWithoutValues && (this.choicesLazyLoadEnabled || this.hasChoicesUrl)) {\n this.waitingGetChoiceDisplayValueResponse = true;\n this.updateIsReady();\n this.survey.getChoiceDisplayValue({\n question: this,\n values: valueArray,\n setItems: function (displayValues) {\n var customValues = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n customValues[_i - 1] = arguments[_i];\n }\n _this.waitingGetChoiceDisplayValueResponse = false;\n if (!displayValues || !displayValues.length) {\n _this.updateIsReady();\n return;\n }\n var items = displayValues.map(function (displayValue, index) { return _this.createItemValue(valueArray[index], displayValue); });\n _this.setCustomValuesIntoItems(items, customValues);\n if (Array.isArray(value)) {\n _this.selectedItemValues = items;\n }\n else {\n _this.selectedItemValues = items[0];\n }\n _this.updateIsReady();\n }\n });\n }\n };\n QuestionSelectBase.prototype.setCustomValuesIntoItems = function (items, customValues) {\n if (!Array.isArray(customValues) || customValues.length === 0)\n return;\n customValues.forEach(function (customValue) {\n var vals = customValue.values;\n var propName = customValue.propertyName;\n if (Array.isArray(vals)) {\n for (var i = 0; i < items.length && i < vals.length; i++) {\n items[i][propName] = vals[i];\n }\n }\n });\n };\n QuestionSelectBase.prototype.hasUnknownValue = function (val, includeOther, isFilteredChoices, checkEmptyValue) {\n if (includeOther === void 0) { includeOther = false; }\n if (isFilteredChoices === void 0) { isFilteredChoices = true; }\n if (checkEmptyValue === void 0) { checkEmptyValue = false; }\n if (!Array.isArray(val))\n return this.hasUnknownValueItem(val, includeOther, isFilteredChoices, checkEmptyValue);\n for (var i = 0; i < val.length; i++) {\n if (this.hasUnknownValueItem(val, includeOther, isFilteredChoices, checkEmptyValue))\n return true;\n }\n return false;\n };\n QuestionSelectBase.prototype.hasUnknownValueItem = function (val, includeOther, isFilteredChoices, checkEmptyValue) {\n if (includeOther === void 0) { includeOther = false; }\n if (isFilteredChoices === void 0) { isFilteredChoices = true; }\n if (checkEmptyValue === void 0) { checkEmptyValue = false; }\n if (!checkEmptyValue && this.isValueEmpty(val))\n return false;\n if (includeOther && val == this.otherItem.value)\n return false;\n if (this.showNoneItem && val == this.noneItem.value)\n return false;\n if (this.showRefuseItem && val == this.refuseItem.value)\n return false;\n if (this.showDontKnowItem && val == this.dontKnowItem.value)\n return false;\n var choices = isFilteredChoices\n ? this.getFilteredChoices()\n : this.activeChoices;\n return _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getItemByValue(choices, val) == null;\n };\n QuestionSelectBase.prototype.isValueDisabled = function (val) {\n var itemValue = _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getItemByValue(this.getFilteredChoices(), val);\n return !!itemValue && !itemValue.isEnabled;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesByUrl\", {\n /**\n * Configures access to a RESTful service that returns choice items. Refer to the [`ChoicesRestful`](https://surveyjs.io/form-library/documentation/choicesrestful) class description for more information. You can also specify additional application-wide settings using the [`settings.web`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) object.\n *\n * [View Demo](https://surveyjs.io/form-library/examples/dropdown-menu-load-data-from-restful-service/ (linkStyle))\n * @see choices\n * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)\n */\n get: function () {\n return this.getPropertyValue(\"choicesByUrl\");\n },\n set: function (val) {\n if (!val)\n return;\n this.setNewRestfulProperty();\n this.choicesByUrl.fromJSON(val.toJSON());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"choices\", {\n /**\n * Gets or sets choice items. This property accepts an array of objects with the following structure:\n *\n * ```js\n * {\n * \"value\": any, // A unique value to be saved in the survey results.\n * \"text\": String, // A display text. This property supports Markdown. When `text` is undefined, `value` is used.\n * \"imageLink\": String // A link to the image or video that represents this choice value. Applies only to Image Picker questions.\n * \"customProperty\": any // Any property that you find useful.\n * }\n * ```\n *\n * To enable Markdown support for the `text` property, implement Markdown-to-HTML conversion in the [onTextMarkdown](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).\n *\n * If you add custom properties, refer to the following help topic to learn how to serialize them into JSON: [Add Custom Properties to Property Grid](https://surveyjs.io/survey-creator/documentation/property-grid#add-custom-properties-to-the-property-grid).\n *\n * If you need to specify only the `value` property, you can set the `choices` property to an array of primitive values, for example, `[ \"item1\", \"item2\", \"item3\" ]`. These values are both saved in survey results and used as display text.\n * @see choicesByUrl\n * @see choicesFromQuestion\n * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)\n */\n get: function () {\n return this.getPropertyValue(\"choices\");\n },\n set: function (newValue) {\n this.setPropertyValue(\"choices\", newValue);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesFromQuestion\", {\n /**\n * Copies choice items from a specified question. Accepts a question name.\n *\n * If you specify this property, the `choices`, `choicesVisibleIf`, `choicesEnableIf`, and `choicesOrder` properties do not apply because their values are copied.\n *\n * In addition, you can specify the `choicesFromQuestionMode` property if you do not want to copy all choice items.\n * @see choicesFromQuestionMode\n * @see choices\n */\n get: function () {\n return this.getPropertyValue(\"choicesFromQuestion\");\n },\n set: function (val) {\n var question = this.getQuestionWithChoices();\n this.isLockVisibleChoices = !!question && question.name === val;\n if (!!question && question.name !== val) {\n question.removeDependedQuestion(this);\n }\n this.setPropertyValue(\"choicesFromQuestion\", val);\n this.isLockVisibleChoices = false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesFromQuestionMode\", {\n /**\n * Specifies which choice items to copy from another question. Applies only when the `choicesFromQuestion` property is specified.\n *\n * Possible values:\n *\n * - `\"all\"` (default) - Copies all choice items.\n * - `\"selected\"` - Copies only selected choice items.\n * - `\"unselected\"` - Copies only unselected choice items.\n *\n * Use the `visibleChoices` property to access copied choice items.\n * @see choicesFromQuestion\n * @see visibleChoices\n */\n get: function () {\n return this.getPropertyValue(\"choicesFromQuestionMode\");\n },\n set: function (val) {\n this.setPropertyValue(\"choicesFromQuestionMode\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"choiceValuesFromQuestion\", {\n /**\n * Specifies which matrix column or dynamic panel question supplies choice values. Use this property to construct choice items based on cell values in Dynamic Matrix and question values in Dynamic Panel.\n *\n * Each choice item consists of a value saved in survey results and a text displayed in the UI. To construct a choice item, assign the `name` of a Dynamic Matrix or Dynamic Panel to the [`choicesFromQuestion`](#choicesFromQuestion) property and specify which dynamic panel question or matrix column supplies values and which provides texts. Use the `choiceValuesFromQuestion` and [`choiceTextsFromQuestion`](#choiceTextsFromQuestion) properties for this purpose. If a choice text is empty, a choice value is used as a display text and saved in survey results.\n */\n get: function () {\n return this.getPropertyValue(\"choiceValuesFromQuestion\");\n },\n set: function (val) {\n this.setPropertyValue(\"choiceValuesFromQuestion\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"choiceTextsFromQuestion\", {\n /**\n * Specifies which matrix column or dynamic panel question supplies choice texts. Use this property to construct choice items based on cell values in Dynamic Matrix and question values in Dynamic Panel.\n *\n * Each choice item consists of a value saved in survey results and a text displayed in the UI. To construct a choice item, assign the `name` of a Dynamic Matrix or Dynamic Panel to the [`choicesFromQuestion`](#choicesFromQuestion) property and specify which dynamic panel question or matrix column supplies values and which provides texts. Use the [`choiceValuesFromQuestion`](#choiceValuesFromQuestion) and `choiceTextsFromQuestion` properties for this purpose. If a choice text is empty, a choice value is used as a display text and saved in survey results.\n */\n get: function () {\n return this.getPropertyValue(\"choiceTextsFromQuestion\");\n },\n set: function (val) {\n this.setPropertyValue(\"choiceTextsFromQuestion\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"hideIfChoicesEmpty\", {\n /**\n * Specifies whether to hide the question if no choice items are visible.\n *\n * This property is useful if you show or hide choice items at runtime based on a [condition](https://surveyjs.io/form-library/documentation/questionselectbase#choicesVisibleIf).\n */\n get: function () {\n return this.getPropertyValue(\"hideIfChoicesEmpty\");\n },\n set: function (val) {\n this.setPropertyValue(\"hideIfChoicesEmpty\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"keepIncorrectValues\", {\n /**\n * Specifies whether to keep values that cannot be assigned to this question, for example, choices unlisted in the `choices` array.\n *\n * > This property cannot be specified in the survey JSON schema. Use dot notation to specify it.\n * @see clearIncorrectValues\n */\n get: function () {\n return this.getPropertyValue(\"keepIncorrectValues\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"keepIncorrectValues\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"storeOthersAsComment\", {\n get: function () {\n return this.getPropertyValue(\"storeOthersAsComment\");\n },\n set: function (val) {\n this.setPropertyValue(\"storeOthersAsComment\", val);\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.hasOtherChanged = function () {\n this.onVisibleChoicesChanged();\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"choicesOrder\", {\n /**\n * Specifies the sort order of choice items.\n *\n * Possible values:\n *\n * - `\"none\"` (default) - Preserves the original order of choice items.\n * - `\"asc\"`- Sorts choice items in ascending order.\n * - `\"desc\"`- Sorts choice items in ascending order.\n * - `\"random\"` - Displays choice items in random order.\n * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)\n */\n get: function () {\n return this.getPropertyValue(\"choicesOrder\");\n },\n set: function (val) {\n val = val.toLowerCase();\n if (val == this.choicesOrder)\n return;\n this.setPropertyValue(\"choicesOrder\", val);\n this.onVisibleChoicesChanged();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"otherText\", {\n /**\n * Gets or sets a caption for the \"Other\" choice item.\n * @see showOtherItem\n */\n get: function () {\n return this.getLocalizableStringText(\"otherText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"otherText\", val);\n this.onVisibleChoicesChanged();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"locOtherText\", {\n get: function () {\n return this.getLocalizableString(\"otherText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"otherPlaceHolder\", {\n get: function () {\n return this.otherPlaceholder;\n },\n set: function (newValue) {\n this.otherPlaceholder = newValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"otherErrorText\", {\n /**\n * Gets or sets an error message displayed when users select the \"Other\" choice item but leave the comment area empty.\n * @see showOtherItem\n */\n get: function () {\n return this.getLocalizableStringText(\"otherErrorText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"otherErrorText\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"locOtherErrorText\", {\n get: function () {\n return this.getLocalizableString(\"otherErrorText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"visibleChoices\", {\n /**\n * An array of visible choice items. Includes the \"Select All\", \"Other\", and \"None\" choice items if they are visible. Items are sorted according to the `choicesOrder` value.\n * @see showNoneItem\n * @see showOtherItem\n * @see choicesOrder\n * @see choices\n * @see enabledChoices\n */\n get: function () {\n return this.getPropertyValue(\"visibleChoices\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"enabledChoices\", {\n /**\n * An array of choice items with which users can interact. Includes the \"Select All\", \"Other\", and \"None\" choice items if they are not disabled. Items are sorted according to the `choicesOrder` value.\n * @see showNoneItem\n * @see showOtherItem\n * @see choicesOrder\n * @see choices\n * @see visibleChoices\n */\n get: function () {\n var res = [];\n var items = this.visibleChoices;\n for (var i = 0; i < items.length; i++) {\n if (items[i].isEnabled)\n res.push(items[i]);\n }\n return res;\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.updateVisibleChoices = function () {\n if (this.isLoadingFromJson || this.isDisposed)\n return;\n var newValue = new Array();\n var calcValue = this.calcVisibleChoices();\n if (!calcValue)\n calcValue = [];\n for (var i = 0; i < calcValue.length; i++) {\n newValue.push(calcValue[i]);\n }\n var oldValue = this.visibleChoices;\n if (!this.isTwoValueEquals(oldValue, newValue) || this.choicesLazyLoadEnabled) {\n this.setArrayPropertyDirectly(\"visibleChoices\", newValue);\n }\n };\n QuestionSelectBase.prototype.calcVisibleChoices = function () {\n if (this.canUseFilteredChoices())\n return this.getFilteredChoices();\n var res = this.sortVisibleChoices(this.getFilteredChoices().slice());\n this.addToVisibleChoices(res, this.isAddDefaultItems);\n return res;\n };\n QuestionSelectBase.prototype.canUseFilteredChoices = function () {\n return (!this.isAddDefaultItems &&\n !this.showNoneItem &&\n !this.showRefuseItem &&\n !this.showDontKnowItem &&\n !this.hasOther &&\n this.choicesOrder == \"none\");\n };\n QuestionSelectBase.prototype.setCanShowOptionItemCallback = function (func) {\n this.canShowOptionItemCallback = func;\n if (!!func) {\n this.onVisibleChoicesChanged();\n }\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"newItem\", {\n get: function () { return this.newItemValue; },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.addToVisibleChoices = function (items, isAddAll) {\n this.headItemsCount = 0;\n this.footItemsCount = 0;\n if (!this.isEmptyActiveChoicesInDesign) {\n this.addNewItemToVisibleChoices(items, isAddAll);\n }\n var dict = new Array();\n this.addNonChoicesItems(dict, isAddAll);\n dict.sort(function (a, b) {\n if (a.index === b.index)\n return 0;\n return a.index < b.index ? -1 : 1;\n });\n for (var i = 0; i < dict.length; i++) {\n var rec = dict[i];\n if (rec.index < 0) {\n items.splice(i, 0, rec.item);\n this.headItemsCount++;\n }\n else {\n items.push(rec.item);\n this.footItemsCount++;\n }\n }\n };\n QuestionSelectBase.prototype.addNewItemToVisibleChoices = function (items, isAddAll) {\n if (!isAddAll)\n return;\n if (!this.newItemValue) {\n this.newItemValue = this.createItemValue(\"newitem\"); //TODO\n this.newItemValue.isGhost = true;\n }\n if (!this.isUsingCarryForward && this.canShowOptionItem(this.newItemValue, isAddAll, false)) {\n this.footItemsCount = 1;\n items.push(this.newItemValue);\n }\n };\n QuestionSelectBase.prototype.addNonChoicesItems = function (dict, isAddAll) {\n if (this.supportNone()) {\n this.addNonChoiceItem(dict, this.noneItem, isAddAll, this.showNoneItem, _settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].specialChoicesOrder.noneItem);\n }\n if (this.supportRefuse()) {\n this.addNonChoiceItem(dict, this.refuseItem, isAddAll, this.showRefuseItem, _settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].specialChoicesOrder.refuseItem);\n }\n if (this.supportDontKnow()) {\n this.addNonChoiceItem(dict, this.dontKnowItem, isAddAll, this.showDontKnowItem, _settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].specialChoicesOrder.dontKnowItem);\n }\n if (this.supportOther()) {\n this.addNonChoiceItem(dict, this.otherItem, isAddAll, this.hasOther, _settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].specialChoicesOrder.otherItem);\n }\n };\n QuestionSelectBase.prototype.addNonChoiceItem = function (dict, item, isAddAll, showItem, order) {\n if (this.canShowOptionItem(item, isAddAll, showItem)) {\n order.forEach(function (val) { return dict.push({ index: val, item: item }); });\n }\n };\n QuestionSelectBase.prototype.canShowOptionItem = function (item, isAddAll, hasItem) {\n var res = (isAddAll && (!!this.canShowOptionItemCallback ? this.canShowOptionItemCallback(item) : true)) || hasItem;\n if (this.canSurveyChangeItemVisibility()) {\n var calc = this.changeItemVisibility();\n return calc(item, res);\n }\n return res;\n };\n QuestionSelectBase.prototype.isItemInList = function (item) {\n if (item === this.otherItem)\n return this.hasOther;\n if (item === this.noneItem)\n return this.showNoneItem;\n if (item === this.refuseItem)\n return this.showRefuseItem;\n if (item === this.dontKnowItem)\n return this.showDontKnowItem;\n if (item === this.newItemValue)\n return false;\n return true;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"isAddDefaultItems\", {\n get: function () {\n return _settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].showDefaultItemsInCreatorV2 && this.isDesignModeV2 &&\n !this.customWidget && !this.isContentElement;\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.getPlainData = function (options) {\n var _this = this;\n if (options === void 0) { options = {\n includeEmpty: true,\n includeQuestionTypes: false,\n }; }\n var questionPlainData = _super.prototype.getPlainData.call(this, options);\n if (!!questionPlainData) {\n var values = Array.isArray(this.value) ? this.value : [this.value];\n questionPlainData.isNode = true;\n questionPlainData.data = (questionPlainData.data || []).concat(values.map(function (dataValue, index) {\n var choice = _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getItemByValue(_this.visibleChoices, dataValue);\n var choiceDataItem = {\n name: index,\n title: \"Choice\",\n value: dataValue,\n displayValue: _this.getChoicesDisplayValue(_this.visibleChoices, dataValue),\n getString: function (val) {\n return typeof val === \"object\" ? JSON.stringify(val) : val;\n },\n isNode: false,\n };\n if (!!choice) {\n (options.calculations || []).forEach(function (calculation) {\n choiceDataItem[calculation.propertyName] =\n choice[calculation.propertyName];\n });\n }\n if (_this.isOtherSelected && _this.otherItemValue === choice) {\n choiceDataItem.isOther = true;\n choiceDataItem.displayValue = _this.otherValue;\n }\n return choiceDataItem;\n }));\n }\n return questionPlainData;\n };\n QuestionSelectBase.prototype.getDisplayValueCore = function (keysAsText, value) {\n return this.getChoicesDisplayValue(this.visibleChoices, value);\n };\n QuestionSelectBase.prototype.getDisplayValueEmpty = function () {\n return _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getTextOrHtmlByValue(this.visibleChoices, undefined);\n };\n QuestionSelectBase.prototype.getChoicesDisplayValue = function (items, val) {\n if (val == this.otherItemValue.value)\n return this.otherValue ? this.otherValue : this.locOtherText.textOrHtml;\n var selItem = this.getSingleSelectedItem();\n if (!!selItem && this.isTwoValueEquals(selItem.value, val))\n return selItem.locText.textOrHtml;\n var str = _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getTextOrHtmlByValue(items, val);\n return str == \"\" && val ? val : str;\n };\n QuestionSelectBase.prototype.getDisplayArrayValue = function (keysAsText, value, onGetValueCallback) {\n var _this = this;\n var items = this.visibleChoices;\n var strs = [];\n var vals = [];\n for (var i = 0; i < value.length; i++) {\n vals.push(!onGetValueCallback ? value[i] : onGetValueCallback(i));\n }\n if (_helpers__WEBPACK_IMPORTED_MODULE_8__[\"Helpers\"].isTwoValueEquals(this.value, vals)) {\n this.getMultipleSelectedItems().forEach(function (item, index) { return strs.push(_this.getItemDisplayValue(item, vals[index])); });\n }\n if (strs.length === 0) {\n for (var i = 0; i < vals.length; i++) {\n var valStr = this.getChoicesDisplayValue(items, vals[i]);\n if (valStr) {\n strs.push(valStr);\n }\n }\n }\n return strs.join(\", \");\n };\n QuestionSelectBase.prototype.getItemDisplayValue = function (item, val) {\n if (item === this.otherItem) {\n if (this.hasOther && this.showCommentArea && !!val) {\n return val;\n }\n if (this.comment) {\n return this.comment;\n }\n }\n return item.locText.textOrHtml;\n };\n QuestionSelectBase.prototype.getFilteredChoices = function () {\n return this.filteredChoicesValue\n ? this.filteredChoicesValue\n : this.activeChoices;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"activeChoices\", {\n get: function () {\n var question = this.getCarryForwardQuestion();\n if (this.carryForwardQuestionType === \"select\") {\n question.addDependedQuestion(this);\n return this.getChoicesFromSelectQuestion(question);\n }\n if (this.carryForwardQuestionType === \"array\") {\n question.addDependedQuestion(this);\n return this.getChoicesFromArrayQuestion(question);\n }\n if (this.isEmptyActiveChoicesInDesign)\n return [];\n return this.choicesFromUrl ? this.choicesFromUrl : this.getChoices();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"isMessagePanelVisible\", {\n get: function () {\n return this.getPropertyValue(\"isMessagePanelVisible\", false);\n },\n set: function (val) {\n this.setPropertyValue(\"isMessagePanelVisible\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"isEmptyActiveChoicesInDesign\", {\n get: function () {\n return this.isDesignModeV2 && (this.hasChoicesUrl || this.isMessagePanelVisible);\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.getCarryForwardQuestion = function (data) {\n var question = this.findCarryForwardQuestion(data);\n var selBaseQuestion = this.getQuestionWithChoicesCore(question);\n var arrayQuestion = !selBaseQuestion ? this.getQuestionWithArrayValue(question) : null;\n this.setCarryForwardQuestionType(!!selBaseQuestion, !!arrayQuestion);\n return !!selBaseQuestion || !!arrayQuestion ? question : null;\n };\n QuestionSelectBase.prototype.getIsReadyDependsOn = function () {\n var res = _super.prototype.getIsReadyDependsOn.call(this);\n if (this.carryForwardQuestion) {\n res.push(this.carryForwardQuestion);\n }\n return res;\n };\n QuestionSelectBase.prototype.getQuestionWithChoices = function () {\n return this.getQuestionWithChoicesCore(this.findCarryForwardQuestion());\n };\n QuestionSelectBase.prototype.findCarryForwardQuestion = function (data) {\n if (!data)\n data = this.data;\n this.carryForwardQuestion = null;\n if (this.choicesFromQuestion && data) {\n this.carryForwardQuestion = data.findQuestionByName(this.choicesFromQuestion);\n }\n return this.carryForwardQuestion;\n };\n QuestionSelectBase.prototype.getQuestionWithChoicesCore = function (question) {\n if (!!question && !!question.visibleChoices && (_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].isDescendantOf(question.getType(), \"selectbase\")) && question !== this)\n return question;\n return null;\n };\n QuestionSelectBase.prototype.getQuestionWithArrayValue = function (question) {\n return !!question && question.isValueArray ? question : null;\n };\n QuestionSelectBase.prototype.getChoicesFromArrayQuestion = function (question) {\n if (this.isDesignMode)\n return [];\n var val = question.value;\n if (!Array.isArray(val))\n return [];\n var res = [];\n for (var i = 0; i < val.length; i++) {\n var obj = val[i];\n if (!_helpers__WEBPACK_IMPORTED_MODULE_8__[\"Helpers\"].isValueObject(obj))\n continue;\n var key = this.getValueKeyName(obj);\n if (!!key && !this.isValueEmpty(obj[key])) {\n var text = !!this.choiceTextsFromQuestion ? obj[this.choiceTextsFromQuestion] : undefined;\n res.push(this.createItemValue(obj[key], text));\n }\n }\n return res;\n };\n QuestionSelectBase.prototype.getValueKeyName = function (obj) {\n if (this.choiceValuesFromQuestion)\n return this.choiceValuesFromQuestion;\n var keys = Object.keys(obj);\n return keys.length > 0 ? keys[0] : undefined;\n };\n QuestionSelectBase.prototype.getChoicesFromSelectQuestion = function (question) {\n if (this.isDesignMode)\n return [];\n var res = [];\n var isSelected = this.choicesFromQuestionMode == \"selected\"\n ? true\n : this.choicesFromQuestionMode == \"unselected\"\n ? false\n : undefined;\n var choices = question.visibleChoices;\n for (var i = 0; i < choices.length; i++) {\n if (question.isBuiltInChoice(choices[i]))\n continue;\n if (isSelected === undefined) {\n res.push(this.copyChoiceItem(choices[i]));\n continue;\n }\n var itemsSelected = question.isItemSelected(choices[i]);\n if ((itemsSelected && isSelected) || (!itemsSelected && !isSelected)) {\n res.push(this.copyChoiceItem(choices[i]));\n }\n }\n if (this.choicesFromQuestionMode === \"selected\" && !this.showOtherItem && question.isOtherSelected && !!question.comment) {\n res.push(this.createItemValue(question.otherItem.value, question.comment));\n }\n return res;\n };\n QuestionSelectBase.prototype.copyChoiceItem = function (item) {\n var res = this.createItemValue(item.value);\n res.setData(item);\n return res;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"hasActiveChoices\", {\n get: function () {\n var choices = this.visibleChoices;\n if (!choices || choices.length == 0) {\n this.onVisibleChoicesChanged();\n choices = this.visibleChoices;\n }\n for (var i = 0; i < choices.length; i++) {\n if (!this.isBuiltInChoice(choices[i]))\n return true;\n }\n return false;\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.isBuiltInChoice = function (item) {\n return this.isNoneItem(item) ||\n item === this.otherItem ||\n item === this.newItemValue;\n };\n QuestionSelectBase.prototype.isNoneItem = function (item) {\n return this.getNoneItems().indexOf(item) > -1;\n };\n QuestionSelectBase.prototype.getNoneItems = function () {\n return [this.noneItem, this.refuseItem, this.dontKnowItem];\n };\n QuestionSelectBase.prototype.getChoices = function () {\n return this.choices;\n };\n QuestionSelectBase.prototype.supportOther = function () {\n return this.isSupportProperty(\"showOtherItem\");\n };\n QuestionSelectBase.prototype.supportNone = function () {\n return this.isSupportProperty(\"showNoneItem\");\n };\n QuestionSelectBase.prototype.supportRefuse = function () {\n return this.isSupportProperty(\"showRefuseItem\");\n };\n QuestionSelectBase.prototype.supportDontKnow = function () {\n return this.isSupportProperty(\"showDontKnowItem\");\n };\n QuestionSelectBase.prototype.isSupportProperty = function (propName) {\n return (!this.isDesignMode ||\n this.getPropertyByName(propName).visible);\n };\n QuestionSelectBase.prototype.onCheckForErrors = function (errors, isOnValueChanged) {\n var _this = this;\n _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);\n if (!this.hasOther || !this.isOtherSelected || this.otherValue)\n return;\n var otherEmptyError = new _error__WEBPACK_IMPORTED_MODULE_5__[\"OtherEmptyError\"](this.otherErrorText, this);\n otherEmptyError.onUpdateErrorTextCallback = function (err) { err.text = _this.otherErrorText; };\n errors.push(otherEmptyError);\n };\n QuestionSelectBase.prototype.setSurveyImpl = function (value, isLight) {\n this.isRunningChoices = true;\n _super.prototype.setSurveyImpl.call(this, value, isLight);\n this.isRunningChoices = false;\n this.runChoicesByUrl();\n if (this.isAddDefaultItems) {\n this.updateVisibleChoices();\n }\n };\n QuestionSelectBase.prototype.setSurveyCore = function (value) {\n _super.prototype.setSurveyCore.call(this, value);\n if (!!value && !!this.choicesFromQuestion) {\n this.onVisibleChoicesChanged();\n }\n };\n QuestionSelectBase.prototype.getStoreOthersAsComment = function () {\n if (this.isSettingDefaultValue)\n return false;\n if (this.showCommentArea)\n return false;\n return (this.storeOthersAsComment === true ||\n (this.storeOthersAsComment == \"default\" &&\n (this.survey != null ? this.survey.storeOthersAsComment : true)) ||\n (this.hasChoicesUrl && !this.choicesFromUrl));\n };\n QuestionSelectBase.prototype.onSurveyLoad = function () {\n this.runChoicesByUrl();\n this.onVisibleChoicesChanged();\n _super.prototype.onSurveyLoad.call(this);\n };\n QuestionSelectBase.prototype.onAnyValueChanged = function (name, questionName) {\n _super.prototype.onAnyValueChanged.call(this, name, questionName);\n if (name != this.getValueName()) {\n this.runChoicesByUrl();\n }\n var chQuestion = this.choicesFromQuestion;\n if (!!name && chQuestion && (name === chQuestion || questionName === chQuestion)) {\n this.onVisibleChoicesChanged();\n }\n };\n QuestionSelectBase.prototype.updateValueFromSurvey = function (newValue, clearData) {\n var newComment = \"\";\n if (this.hasOther &&\n !this.isRunningChoices &&\n !this.choicesByUrl.isRunning &&\n this.getStoreOthersAsComment()) {\n if (this.hasUnknownValue(newValue) && !this.getHasOther(newValue)) {\n newComment = this.getCommentFromValue(newValue);\n newValue = this.setOtherValueIntoValue(newValue);\n }\n else {\n if (this.data) {\n newComment = this.data.getComment(this.getValueName());\n }\n }\n }\n _super.prototype.updateValueFromSurvey.call(this, newValue, clearData);\n if ((this.isRunningChoices || this.choicesByUrl.isRunning) && !this.isEmpty()) {\n this.cachedValueForUrlRequests = this.value;\n }\n if (!!newComment) {\n this.setNewComment(newComment);\n }\n };\n QuestionSelectBase.prototype.getCommentFromValue = function (newValue) {\n return newValue;\n };\n QuestionSelectBase.prototype.setOtherValueIntoValue = function (newValue) {\n return this.otherItem.value;\n };\n QuestionSelectBase.prototype.onOtherValueInput = function (event) {\n if (this.isInputTextUpdate) {\n if (event.target) {\n this.otherValue = event.target.value;\n }\n }\n else {\n this.updateCommentElements();\n }\n };\n QuestionSelectBase.prototype.onOtherValueChange = function (event) {\n this.otherValue = event.target.value;\n if (this.otherValue !== event.target.value) {\n event.target.value = this.otherValue;\n }\n };\n QuestionSelectBase.prototype.runChoicesByUrl = function () {\n this.updateIsUsingRestful();\n if (!this.choicesByUrl || this.isLoadingFromJson || this.isRunningChoices || this.isDesignModeV2)\n return;\n var processor = this.surveyImpl\n ? this.surveyImpl.getTextProcessor()\n : this.textProcessor;\n if (!processor)\n processor = this.survey;\n if (!processor)\n return;\n this.updateIsReady();\n this.isRunningChoices = true;\n this.choicesByUrl.run(processor);\n this.isRunningChoices = false;\n };\n QuestionSelectBase.prototype.onBeforeSendRequest = function () {\n if (_settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].web.disableQuestionWhileLoadingChoices === true && !this.isReadOnly) {\n this.enableOnLoadingChoices = true;\n this.readOnly = true;\n }\n };\n QuestionSelectBase.prototype.onLoadChoicesFromUrl = function (array) {\n if (this.enableOnLoadingChoices) {\n this.readOnly = false;\n }\n var errors = [];\n if (!this.isReadOnly) {\n if (this.choicesByUrl && this.choicesByUrl.error) {\n errors.push(this.choicesByUrl.error);\n }\n }\n var newChoices = null;\n var checkCachedValuesOnExisting = true;\n if (this.isFirstLoadChoicesFromUrl &&\n !this.cachedValueForUrlRequests &&\n this.defaultValue) {\n this.cachedValueForUrlRequests = this.defaultValue;\n checkCachedValuesOnExisting = false;\n }\n if (this.isValueEmpty(this.cachedValueForUrlRequests)) {\n this.cachedValueForUrlRequests = this.value;\n }\n var cachedValues = this.createCachedValueForUrlRequests(this.cachedValueForUrlRequests, checkCachedValuesOnExisting);\n if (array && (array.length > 0 || this.choicesByUrl.allowEmptyResponse)) {\n newChoices = new Array();\n _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].setData(newChoices, array);\n }\n if (!!newChoices) {\n for (var i = 0; i < newChoices.length; i++) {\n newChoices[i].locOwner = this;\n }\n }\n this.setChoicesFromUrl(newChoices, errors, cachedValues);\n };\n QuestionSelectBase.prototype.canAvoidSettChoicesFromUrl = function (newChoices) {\n if (this.isFirstLoadChoicesFromUrl)\n return false;\n var chocesAreEmpty = !newChoices || Array.isArray(newChoices) && newChoices.length === 0;\n if (chocesAreEmpty && !this.isEmpty())\n return false;\n return _helpers__WEBPACK_IMPORTED_MODULE_8__[\"Helpers\"].isTwoValueEquals(this.choicesFromUrl, newChoices);\n };\n QuestionSelectBase.prototype.setChoicesFromUrl = function (newChoices, errors, cachedValues) {\n if (this.canAvoidSettChoicesFromUrl(newChoices))\n return;\n this.isFirstLoadChoicesFromUrl = false;\n this.choicesFromUrl = newChoices;\n this.filterItems();\n this.onVisibleChoicesChanged();\n if (newChoices) {\n var newValue = this.updateCachedValueForUrlRequests(cachedValues, newChoices);\n if (!!newValue && !this.isReadOnly) {\n var hasChanged = !this.isTwoValueEquals(this.value, newValue.value);\n try {\n if (!this.isValueEmpty(newValue.value)) {\n this.allowNotifyValueChanged = false;\n this.setQuestionValue(undefined, true, false);\n }\n this.allowNotifyValueChanged = hasChanged;\n if (hasChanged) {\n this.value = newValue.value;\n }\n else {\n this.setQuestionValue(newValue.value);\n }\n }\n finally {\n this.allowNotifyValueChanged = true;\n }\n }\n }\n if (!this.isReadOnly && !newChoices && !this.isFirstLoadChoicesFromUrl) {\n this.value = null;\n }\n this.errors = errors;\n this.choicesLoaded();\n };\n QuestionSelectBase.prototype.createCachedValueForUrlRequests = function (val, checkOnExisting) {\n if (this.isValueEmpty(val))\n return null;\n if (Array.isArray(val)) {\n var res = [];\n for (var i = 0; i < val.length; i++) {\n res.push(this.createCachedValueForUrlRequests(val[i], true));\n }\n return res;\n }\n var isExists = checkOnExisting ? !this.hasUnknownValue(val) : true;\n return { value: val, isExists: isExists };\n };\n QuestionSelectBase.prototype.updateCachedValueForUrlRequests = function (val, newChoices) {\n if (this.isValueEmpty(val))\n return null;\n if (Array.isArray(val)) {\n var res = [];\n for (var i = 0; i < val.length; i++) {\n var updatedValue = this.updateCachedValueForUrlRequests(val[i], newChoices);\n if (updatedValue && !this.isValueEmpty(updatedValue.value)) {\n var newValue = updatedValue.value;\n var item = _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getItemByValue(newChoices, updatedValue.value);\n if (!!item) {\n newValue = item.value;\n }\n res.push(newValue);\n }\n }\n return { value: res };\n }\n var value = val.isExists && this.hasUnknownValue(val.value) ? null : val.value;\n var item = _itemvalue__WEBPACK_IMPORTED_MODULE_3__[\"ItemValue\"].getItemByValue(newChoices, value);\n if (!!item) {\n value = item.value;\n }\n return { value: value };\n };\n QuestionSelectBase.prototype.updateChoicesDependedQuestions = function () {\n if (this.isLoadingFromJson || this.isUpdatingChoicesDependedQuestions ||\n !this.allowNotifyValueChanged || this.choicesByUrl.isRunning)\n return;\n this.isUpdatingChoicesDependedQuestions = true;\n this.updateDependedQuestions();\n this.isUpdatingChoicesDependedQuestions = false;\n };\n QuestionSelectBase.prototype.updateDependedQuestion = function () {\n this.onVisibleChoicesChanged();\n this.clearIncorrectValues();\n };\n QuestionSelectBase.prototype.onSurveyValueChanged = function (newValue) {\n _super.prototype.onSurveyValueChanged.call(this, newValue);\n this.updateChoicesDependedQuestions();\n };\n QuestionSelectBase.prototype.onVisibleChoicesChanged = function () {\n if (this.isLoadingFromJson || this.isLockVisibleChoices)\n return;\n this.updateVisibleChoices();\n this.onVisibleChanged();\n if (!!this.visibleChoicesChangedCallback) {\n this.visibleChoicesChangedCallback();\n }\n this.updateChoicesDependedQuestions();\n };\n QuestionSelectBase.prototype.isVisibleCore = function () {\n var superVal = _super.prototype.isVisibleCore.call(this);\n if (!this.hideIfChoicesEmpty || !superVal)\n return superVal;\n var choices = this.isUsingCarryForward ? this.visibleChoices : this.getFilteredChoices();\n return !choices || choices.length > 0;\n };\n QuestionSelectBase.prototype.sortVisibleChoices = function (array) {\n if (this.isDesignMode)\n return array;\n var order = this.choicesOrder.toLowerCase();\n if (order == \"asc\")\n return this.sortArray(array, 1);\n if (order == \"desc\")\n return this.sortArray(array, -1);\n if (order == \"random\")\n return this.randomizeArray(array);\n return array;\n };\n QuestionSelectBase.prototype.sortArray = function (array, mult) {\n return array.sort(function (a, b) {\n return _helpers__WEBPACK_IMPORTED_MODULE_8__[\"Helpers\"].compareStrings(a.calculatedText, b.calculatedText) * mult;\n });\n };\n QuestionSelectBase.prototype.randomizeArray = function (array) {\n return _helpers__WEBPACK_IMPORTED_MODULE_8__[\"Helpers\"].randomizeArray(array);\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"hasChoicesUrl\", {\n get: function () {\n return this.choicesByUrl && !!this.choicesByUrl.url;\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.clearIncorrectValues = function () {\n if (!this.hasValueToClearIncorrectValues() || !this.canClearIncorrectValues())\n return;\n if (this.clearIncorrectValuesCallback) {\n this.clearIncorrectValuesCallback();\n }\n else {\n this.clearIncorrectValuesCore();\n }\n };\n QuestionSelectBase.prototype.canClearIncorrectValues = function () {\n if (this.carryForwardQuestion && !this.carryForwardQuestion.isReady)\n return false;\n if (!!this.survey && this.survey.questionsByValueName(this.getValueName()).length > 1)\n return false;\n if (this.hasChoicesUrl && (!this.choicesFromUrl || this.choicesFromUrl.length == 0))\n return false;\n return true;\n };\n QuestionSelectBase.prototype.hasValueToClearIncorrectValues = function () {\n if (!!this.survey && this.survey.keepIncorrectValues)\n return false;\n return !this.keepIncorrectValues && !this.isEmpty();\n };\n QuestionSelectBase.prototype.clearValueIfInvisibleCore = function (reason) {\n _super.prototype.clearValueIfInvisibleCore.call(this, reason);\n this.clearIncorrectValues();\n };\n /**\n * Returns `true` if a passed choice item is selected.\n *\n * To obtain a choice item to check, use the `noneItem` or `otherItem` property or the `choices` array.\n * @param item A choice item.\n * @see noneItem\n * @see otherItem\n * @see choices\n */\n QuestionSelectBase.prototype.isItemSelected = function (item) {\n if (item === this.otherItem)\n return this.isOtherSelected;\n return this.isItemSelectedCore(item);\n };\n QuestionSelectBase.prototype.isItemSelectedCore = function (item) {\n return item.value === this.value;\n };\n QuestionSelectBase.prototype.clearDisabledValues = function () {\n if (!this.survey || !this.survey.clearValueOnDisableItems)\n return;\n this.clearDisabledValuesCore();\n };\n QuestionSelectBase.prototype.clearIncorrectValuesCore = function () {\n var val = this.value;\n if (this.canClearValueAnUnknown(val)) {\n this.clearValue();\n }\n };\n QuestionSelectBase.prototype.canClearValueAnUnknown = function (val) {\n if (!this.getStoreOthersAsComment() && this.isOtherSelected)\n return false;\n return this.hasUnknownValue(val, true, true, true);\n };\n QuestionSelectBase.prototype.clearDisabledValuesCore = function () {\n if (this.isValueDisabled(this.value)) {\n this.clearValue();\n }\n };\n QuestionSelectBase.prototype.clearUnusedValues = function () {\n _super.prototype.clearUnusedValues.call(this);\n if (!this.isOtherSelected) {\n this.otherValue = \"\";\n }\n if (!this.showCommentArea && (!this.getStoreOthersAsComment() && !this.isOtherSelected)) {\n this.comment = \"\";\n }\n };\n QuestionSelectBase.prototype.getColumnClass = function () {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(this.cssClasses.column)\n .append(\"sv-q-column-\" + this.colCount, this.hasColumns)\n .toString();\n };\n QuestionSelectBase.prototype.getItemIndex = function (item) {\n return this.visibleChoices.indexOf(item);\n };\n QuestionSelectBase.prototype.getItemClass = function (item) {\n var options = { item: item };\n var res = this.getItemClassCore(item, options);\n options.css = res;\n if (!!this.survey) {\n this.survey.updateChoiceItemCss(this, options);\n }\n return options.css;\n };\n QuestionSelectBase.prototype.getCurrentColCount = function () {\n return this.colCount;\n };\n QuestionSelectBase.prototype.getItemClassCore = function (item, options) {\n var builder = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(this.cssClasses.item)\n .append(this.cssClasses.itemInline, !this.hasColumns && this.colCount === 0)\n .append(\"sv-q-col-\" + this.getCurrentColCount(), !this.hasColumns && this.colCount !== 0)\n .append(this.cssClasses.itemOnError, this.hasCssError());\n var readOnlyStyles = this.getIsDisableAndReadOnlyStyles(!item.isEnabled);\n var isReadOnly = readOnlyStyles[0];\n var isDisabled = readOnlyStyles[1];\n var isChecked = this.isItemSelected(item) ||\n (this.isOtherSelected && this.otherItem.value === item.value);\n var allowHover = !isDisabled && !isChecked && !(!!this.survey && this.survey.isDesignMode);\n var isNone = item === this.noneItem;\n options.isDisabled = isDisabled || isReadOnly;\n options.isChecked = isChecked;\n options.isNone = isNone;\n return builder\n .append(this.cssClasses.itemDisabled, isDisabled)\n .append(this.cssClasses.itemReadOnly, isReadOnly)\n .append(this.cssClasses.itemPreview, this.isPreviewStyle)\n .append(this.cssClasses.itemChecked, isChecked)\n .append(this.cssClasses.itemHover, allowHover)\n .append(this.cssClasses.itemNone, isNone)\n .toString();\n };\n QuestionSelectBase.prototype.getLabelClass = function (item) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(this.cssClasses.label)\n .append(this.cssClasses.labelChecked, this.isItemSelected(item))\n .toString();\n };\n QuestionSelectBase.prototype.getControlLabelClass = function (item) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(this.cssClasses.controlLabel)\n .append(this.cssClasses.controlLabelChecked, this.isItemSelected(item))\n .toString() || undefined;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"headItems\", {\n get: function () {\n var count = (this.separateSpecialChoices || this.isDesignMode) ? this.headItemsCount : 0;\n var res = [];\n for (var i = 0; i < count; i++)\n res.push(this.visibleChoices[i]);\n return res;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"footItems\", {\n get: function () {\n var count = (this.separateSpecialChoices || this.isDesignMode) ? this.footItemsCount : 0;\n var res = [];\n var items = this.visibleChoices;\n for (var i = 0; i < count; i++)\n res.push(items[items.length - count + i]);\n return res;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"dataChoices\", {\n get: function () {\n var _this = this;\n return this.visibleChoices.filter(function (item) { return !_this.isBuiltInChoice(item); });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"bodyItems\", {\n get: function () {\n return (this.hasHeadItems || this.hasFootItems) ? this.dataChoices : this.visibleChoices;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"hasHeadItems\", {\n get: function () {\n return this.headItems.length > 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"hasFootItems\", {\n get: function () {\n return this.footItems.length > 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"columns\", {\n get: function () {\n var columns = [];\n var colCount = this.getCurrentColCount();\n if (this.hasColumns && this.visibleChoices.length > 0) {\n var choicesToBuildColumns = (!this.separateSpecialChoices && !this.isDesignMode) ?\n this.visibleChoices : this.dataChoices;\n if (_settings__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].showItemsInOrder == \"column\") {\n var prevIndex = 0;\n var leftElementsCount = choicesToBuildColumns.length % colCount;\n for (var i = 0; i < colCount; i++) {\n var column = [];\n for (var j = prevIndex; j < prevIndex + Math.floor(choicesToBuildColumns.length / colCount); j++) {\n column.push(choicesToBuildColumns[j]);\n }\n if (leftElementsCount > 0) {\n leftElementsCount--;\n column.push(choicesToBuildColumns[j]);\n j++;\n }\n prevIndex = j;\n columns.push(column);\n }\n }\n else {\n for (var i = 0; i < colCount; i++) {\n var column = [];\n for (var j = i; j < choicesToBuildColumns.length; j += colCount) {\n column.push(choicesToBuildColumns[j]);\n }\n columns.push(column);\n }\n }\n }\n return columns;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"hasColumns\", {\n get: function () {\n return !this.isMobile &&\n (this.getCurrentColCount() > 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"rowLayout\", {\n get: function () {\n return this.getCurrentColCount() == 0 && !(this.hasFootItems || this.hasHeadItems);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionSelectBase.prototype, \"blockedRow\", {\n get: function () {\n return this.getCurrentColCount() == 0 && (this.hasFootItems || this.hasHeadItems);\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.choicesLoaded = function () {\n this.isChoicesLoaded = true;\n this.updateIsReady();\n if (this.survey) {\n this.survey.loadedChoicesFromServer(this);\n }\n if (this.loadedChoicesFromServerCallback) {\n this.loadedChoicesFromServerCallback();\n }\n };\n QuestionSelectBase.prototype.getItemValueWrapperComponentName = function (item) {\n var survey = this.survey;\n if (survey) {\n return survey.getItemValueWrapperComponentName(item, this);\n }\n return _survey__WEBPACK_IMPORTED_MODULE_1__[\"SurveyModel\"].TemplateRendererComponentName;\n };\n QuestionSelectBase.prototype.getItemValueWrapperComponentData = function (item) {\n var survey = this.survey;\n if (survey) {\n return survey.getItemValueWrapperComponentData(item, this);\n }\n return item;\n };\n QuestionSelectBase.prototype.ariaItemChecked = function (item) {\n return this.renderedValue === item.value ? \"true\" : \"false\";\n };\n QuestionSelectBase.prototype.isOtherItem = function (item) {\n return this.hasOther && item.value == this.otherItem.value;\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"itemSvgIcon\", {\n get: function () {\n if (this.isPreviewStyle && this.cssClasses.itemPreviewSvgIconId) {\n return this.cssClasses.itemPreviewSvgIconId;\n }\n return this.cssClasses.itemSvgIconId;\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.getSelectBaseRootCss = function () {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__[\"CssClassBuilder\"]()\n .append(this.getQuestionRootCss())\n .append(this.cssClasses.rootRow, this.rowLayout)\n .toString();\n };\n QuestionSelectBase.prototype.allowMobileInDesignMode = function () {\n return true;\n };\n QuestionSelectBase.prototype.getAriaItemLabel = function (item) {\n return item.locText.renderedHtml;\n };\n QuestionSelectBase.prototype.getItemId = function (item) {\n return this.inputId + \"_\" + this.getItemIndex(item);\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"questionName\", {\n get: function () {\n return this.name + \"_\" + this.id;\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.getItemEnabled = function (item) {\n return !this.isInputReadOnly && item.isEnabled;\n };\n QuestionSelectBase.prototype.afterRender = function (el) {\n _super.prototype.afterRender.call(this, el);\n this.rootElement = el;\n };\n QuestionSelectBase.prototype.beforeDestroyQuestionElement = function (el) {\n _super.prototype.beforeDestroyQuestionElement.call(this, el);\n this.rootElement = undefined;\n };\n QuestionSelectBase.prototype.focusOtherComment = function () {\n var _this = this;\n if (!!this.rootElement) {\n setTimeout(function () {\n var commentEl = _this.rootElement.querySelector(\"textarea\");\n if (!!commentEl) {\n commentEl.focus();\n }\n }, 10);\n }\n };\n QuestionSelectBase.prototype.onValueChanged = function () {\n _super.prototype.onValueChanged.call(this);\n if (!this.isDesignMode && !this.prevIsOtherSelected && this.isOtherSelected) {\n this.focusOtherComment();\n }\n this.prevIsOtherSelected = this.isOtherSelected;\n };\n QuestionSelectBase.prototype.getDefaultItemComponent = function () {\n return \"\";\n };\n Object.defineProperty(QuestionSelectBase.prototype, \"itemComponent\", {\n /**\n * The name of a component used to render items.\n */\n get: function () {\n return this.getPropertyValue(\"itemComponent\", this.getDefaultItemComponent());\n },\n set: function (value) {\n this.setPropertyValue(\"itemComponent\", value);\n },\n enumerable: false,\n configurable: true\n });\n QuestionSelectBase.prototype.updateCssClasses = function (res, css) {\n _super.prototype.updateCssClasses.call(this, res, css);\n if (!!this.dropdownListModel) {\n var listCssClasses = {};\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__[\"mergeValues\"])(css.list, listCssClasses);\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__[\"mergeValues\"])(res.list, listCssClasses);\n res[\"list\"] = listCssClasses;\n }\n };\n QuestionSelectBase.prototype.calcCssClasses = function (css) {\n var classes = _super.prototype.calcCssClasses.call(this, css);\n if (this.dropdownListModel) {\n this.dropdownListModel.updateCssClasses(classes.popup, classes.list);\n }\n return classes;\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ onSet: function (newVal, target) {\n target.onSelectedItemValuesChangedHandler(newVal);\n } })\n ], QuestionSelectBase.prototype, \"selectedItemValues\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], QuestionSelectBase.prototype, \"separateSpecialChoices\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])({ localizable: true })\n ], QuestionSelectBase.prototype, \"otherPlaceholder\", void 0);\n return QuestionSelectBase;\n}(_question__WEBPACK_IMPORTED_MODULE_2__[\"Question\"]));\n\n/**\n * A base class for multiple-selection question types that can display choice items in multiple columns ([Checkbox](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Radiogroup](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), [Image Picker](https://surveyjs.io/form-library/documentation/questionimagepickermodel)).\n */\nvar QuestionCheckboxBase = /** @class */ (function (_super) {\n __extends(QuestionCheckboxBase, _super);\n function QuestionCheckboxBase(name) {\n return _super.call(this, name) || this;\n }\n Object.defineProperty(QuestionCheckboxBase.prototype, \"colCount\", {\n /**\n * Gets or sets the number of columns used to arrange choice items.\n *\n * Set this property to 0 if you want to display all items in one line. The default value depends on the available width.\n * @see separateSpecialChoices\n */\n get: function () {\n return this.getPropertyValue(\"colCount\", this.isFlowLayout ? 0 : undefined);\n },\n set: function (value) {\n if (value < 0 || value > 5 || this.isFlowLayout)\n return;\n this.setPropertyValue(\"colCount\", value);\n this.fireCallback(this.colCountChangedCallback);\n },\n enumerable: false,\n configurable: true\n });\n QuestionCheckboxBase.prototype.onParentChanged = function () {\n _super.prototype.onParentChanged.call(this);\n if (this.isFlowLayout) {\n this.setPropertyValue(\"colCount\", null);\n }\n };\n QuestionCheckboxBase.prototype.onParentQuestionChanged = function () {\n this.onVisibleChoicesChanged();\n };\n QuestionCheckboxBase.prototype.getSearchableItemValueKeys = function (keys) {\n keys.push(\"choices\");\n };\n return QuestionCheckboxBase;\n}(QuestionSelectBase));\n\nfunction checkCopyPropVisibility(obj, mode) {\n var _a;\n if (!obj)\n return false;\n if (!!obj.templateQuestion) {\n var data = (_a = obj.colOwner) === null || _a === void 0 ? void 0 : _a.data;\n obj = obj.templateQuestion;\n if (!obj.getCarryForwardQuestion(data))\n return false;\n }\n return obj.carryForwardQuestionType === mode;\n}\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"selectbase\", [\n { name: \"showCommentArea:switch\", layout: \"row\", visible: true, category: \"general\" },\n \"choicesFromQuestion:question_carryforward\",\n {\n name: \"choices:itemvalue[]\", uniqueProperty: \"value\",\n baseValue: function () {\n return _surveyStrings__WEBPACK_IMPORTED_MODULE_4__[\"surveyLocalization\"].getString(\"choices_Item\");\n },\n dependsOn: \"choicesFromQuestion\",\n visibleIf: function (obj) {\n return !obj.choicesFromQuestion;\n },\n },\n {\n name: \"choicesFromQuestionMode\",\n default: \"all\",\n choices: [\"all\", \"selected\", \"unselected\"],\n dependsOn: \"choicesFromQuestion\",\n visibleIf: function (obj) {\n return checkCopyPropVisibility(obj, \"select\");\n },\n },\n {\n name: \"choiceValuesFromQuestion\",\n dependsOn: \"choicesFromQuestion\",\n visibleIf: function (obj) {\n return checkCopyPropVisibility(obj, \"array\");\n },\n },\n {\n name: \"choiceTextsFromQuestion\",\n dependsOn: \"choicesFromQuestion\",\n visibleIf: function (obj) {\n return checkCopyPropVisibility(obj, \"array\");\n },\n },\n {\n name: \"choicesOrder\",\n default: \"none\",\n choices: [\"none\", \"asc\", \"desc\", \"random\"],\n dependsOn: \"choicesFromQuestion\",\n visibleIf: function (obj) {\n return !obj.choicesFromQuestion;\n },\n },\n {\n name: \"choicesByUrl:restfull\",\n className: \"choicesByUrl\",\n onGetValue: function (obj) {\n return obj.choicesByUrl.getData();\n },\n onSetValue: function (obj, value) {\n obj.choicesByUrl.setData(value);\n },\n },\n \"hideIfChoicesEmpty:boolean\",\n \"choicesVisibleIf:condition\",\n {\n name: \"choicesEnableIf:condition\",\n dependsOn: \"choicesFromQuestion\",\n visibleIf: function (obj) {\n return !obj.choicesFromQuestion;\n },\n },\n { name: \"separateSpecialChoices:boolean\", visible: false },\n { name: \"showOtherItem:boolean\", alternativeName: \"hasOther\" },\n { name: \"showNoneItem:boolean\", alternativeName: \"hasNone\" },\n { name: \"showRefuseItem:boolean\", visible: false, version: \"1.9.128\" },\n { name: \"showDontKnowItem:boolean\", visible: false, version: \"1.9.128\" },\n {\n name: \"otherPlaceholder\",\n alternativeName: \"otherPlaceHolder\",\n serializationProperty: \"locOtherPlaceholder\",\n dependsOn: \"showOtherItem\",\n visibleIf: function (obj) {\n return obj.hasOther;\n },\n },\n {\n name: \"noneText\",\n serializationProperty: \"locNoneText\",\n dependsOn: \"showNoneItem\",\n visibleIf: function (obj) {\n return obj.showNoneItem;\n },\n },\n {\n name: \"refuseText\",\n serializationProperty: \"locRefuseText\",\n dependsOn: \"showRefuseItem\",\n visibleIf: function (obj) {\n return obj.showRefuseItem;\n },\n },\n {\n name: \"dontKnowText\",\n serializationProperty: \"locDontKnowText\",\n dependsOn: \"showDontKnowItem\",\n visibleIf: function (obj) {\n return obj.showDontKnowItem;\n },\n },\n {\n name: \"otherText\",\n serializationProperty: \"locOtherText\",\n dependsOn: \"showOtherItem\",\n visibleIf: function (obj) {\n return obj.hasOther;\n },\n },\n {\n name: \"otherErrorText\",\n serializationProperty: \"locOtherErrorText\",\n dependsOn: \"showOtherItem\",\n visibleIf: function (obj) {\n return obj.hasOther;\n },\n },\n {\n name: \"storeOthersAsComment\",\n default: \"default\",\n choices: [\"default\", true, false],\n visible: false,\n },\n // { name: \"itemComponent\", visible: false }\n], null, \"question\");\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"checkboxbase\", [\n {\n name: \"colCount:number\",\n default: 1,\n choices: [0, 1, 2, 3, 4, 5],\n layout: \"row\",\n }\n], null, \"selectbase\");\n\n\n/***/ }),\n\n/***/ \"./src/question_boolean.ts\":\n/*!*********************************!*\\\n !*** ./src/question_boolean.ts ***!\n \\*********************************/\n/*! exports provided: QuestionBooleanModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionBooleanModel\", function() { return QuestionBooleanModel; });\n/* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./questionfactory */ \"./src/questionfactory.ts\");\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question */ \"./src/question.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./global_variables_utils */ \"./src/global_variables_utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n/**\n * A class that describes the Yes/No (Boolean) question type.\n *\n * [View Demo](https://surveyjs.io/form-library/examples/questiontype-boolean/ (linkStyle))\n */\nvar QuestionBooleanModel = /** @class */ (function (_super) {\n __extends(QuestionBooleanModel, _super);\n function QuestionBooleanModel(name) {\n var _this = _super.call(this, name) || this;\n _this.createLocalizableString(\"labelFalse\", _this, true, \"booleanUncheckedLabel\");\n _this.createLocalizableString(\"labelTrue\", _this, true, \"booleanCheckedLabel\");\n return _this;\n }\n QuestionBooleanModel.prototype.getType = function () {\n return \"boolean\";\n };\n QuestionBooleanModel.prototype.isLayoutTypeSupported = function (layoutType) {\n return true;\n };\n QuestionBooleanModel.prototype.supportGoNextPageAutomatic = function () {\n return this.renderAs !== \"checkbox\";\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"isIndeterminate\", {\n get: function () {\n return this.isEmpty();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"hasTitle\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"booleanValue\", {\n /**\n * Gets or sets the question value as a Boolean value.\n *\n * If you set the `valueTrue` and `valueFalse` properties, the `value` property contains their values instead of Boolean values. This may be inconvenient when you operate the question value in code. To access the standard Boolean values, use the `booleanValue` property.\n * @see valueTrue\n * @see valueFalse\n */\n get: function () {\n if (this.isEmpty())\n return null;\n return this.value == this.getValueTrue();\n },\n set: function (val) {\n if (this.isReadOnly || this.isDesignMode) {\n return;\n }\n this.setBooleanValue(val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"checkedValue\", {\n get: function () { return this.booleanValue; },\n set: function (val) { this.booleanValue = val; },\n enumerable: false,\n configurable: true\n });\n QuestionBooleanModel.prototype.setBooleanValue = function (val) {\n if (this.isValueEmpty(val)) {\n this.value = undefined;\n this.booleanValueRendered = undefined;\n }\n else {\n this.value = val == true ? this.getValueTrue() : this.getValueFalse();\n this.booleanValueRendered = val;\n }\n this.updateThumbMargin();\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"defaultValue\", {\n get: function () {\n return this.getPropertyValue(\"defaultValue\");\n },\n set: function (val) {\n if (val === true)\n val = \"true\";\n if (val === false)\n val = \"false\";\n this.setPropertyValue(\"defaultValue\", val);\n this.updateValueWithDefaults();\n },\n enumerable: false,\n configurable: true\n });\n QuestionBooleanModel.prototype.getDefaultValue = function () {\n var val = this.defaultValue;\n if (val === \"indeterminate\" || val === undefined || val === null)\n return undefined;\n return val == \"true\" ? this.getValueTrue() : this.getValueFalse();\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"locTitle\", {\n get: function () {\n var original = this.getLocalizableString(\"title\");\n if (!this.isValueEmpty(this.locLabel.text) && (this.isValueEmpty(original.text) || this.isLabelRendered && !this.showTitle))\n return this.locLabel;\n return original;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"labelRenderedAriaID\", {\n get: function () {\n return this.isLabelRendered ? this.ariaTitleId : null;\n },\n enumerable: false,\n configurable: true\n });\n QuestionBooleanModel.prototype.updateThumbMargin = function () {\n var _this = this;\n if (!this.isIndeterminate && this.leftAnswerElement) {\n if (!this.swapOrder && this.value === this.getValueTrue() || this.swapOrder && this.value === this.getValueFalse()) {\n var el_1 = this.leftAnswerElement;\n setTimeout(function () {\n _this.thumbMargin = el_1.clientWidth + (_this.swapOrder ? 4 : 2) + \"px\";\n }, 50);\n }\n }\n this.thumbMargin = undefined;\n };\n QuestionBooleanModel.prototype.afterRender = function (el) {\n _super.prototype.afterRender.call(this, el);\n this.leftAnswerElement = el.querySelectorAll(\".\" + this.cssClasses.sliderGhost)[0];\n this.updateThumbMargin();\n };\n QuestionBooleanModel.prototype.beforeDestroyQuestionElement = function (el) {\n _super.prototype.beforeDestroyQuestionElement.call(this, el);\n this.leftAnswerElement = undefined;\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"isLabelRendered\", {\n get: function () {\n return this.titleLocation === \"hidden\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"canRenderLabelDescription\", {\n get: function () {\n return this.isLabelRendered && this.hasDescription && (this.hasDescriptionUnderTitle || this.hasDescriptionUnderInput);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"labelTrue\", {\n /**\n * Gets or sets a text label that corresponds to a positive answer.\n *\n * Default value: \"Yes\"\n * @see valueTrue\n * @see valueFalse\n */\n get: function () {\n return this.getLocalizableStringText(\"labelTrue\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"labelTrue\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"locLabelTrue\", {\n get: function () {\n return this.getLocalizableString(\"labelTrue\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"isDeterminated\", {\n get: function () {\n return this.booleanValue !== null && this.booleanValue !== undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"locLabelLeft\", {\n get: function () {\n return this.swapOrder ? this.getLocalizableString(\"labelTrue\") : this.getLocalizableString(\"labelFalse\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"locLabelRight\", {\n get: function () {\n return this.swapOrder ? this.getLocalizableString(\"labelFalse\") : this.getLocalizableString(\"labelTrue\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"labelFalse\", {\n /**\n * Gets or sets a text label that corresponds to a negative answer.\n *\n * Default value: \"No\"\n * @see valueTrue\n * @see valueFalse\n */\n get: function () {\n return this.getLocalizableStringText(\"labelFalse\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"labelFalse\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"locLabelFalse\", {\n get: function () {\n return this.getLocalizableString(\"labelFalse\");\n },\n enumerable: false,\n configurable: true\n });\n QuestionBooleanModel.prototype.getValueTrue = function () {\n return this.valueTrue !== undefined ? this.valueTrue : true;\n };\n QuestionBooleanModel.prototype.getValueFalse = function () {\n return this.valueFalse !== undefined ? this.valueFalse : false;\n };\n QuestionBooleanModel.prototype.setDefaultValue = function () {\n if (this.isDefaultValueSet(\"true\", this.valueTrue))\n this.setBooleanValue(true);\n if (this.isDefaultValueSet(\"false\", this.valueFalse))\n this.setBooleanValue(false);\n var val = this.defaultValue;\n if (val === \"indeterminate\" || val === null || val === undefined)\n this.setBooleanValue(undefined);\n };\n QuestionBooleanModel.prototype.isDefaultValueSet = function (defaultValueCheck, valueTrueOrFalse) {\n return this.defaultValue == defaultValueCheck || (valueTrueOrFalse !== undefined && this.defaultValue === valueTrueOrFalse);\n };\n QuestionBooleanModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n if (value == this.getValueTrue())\n return this.locLabelTrue.textOrHtml;\n return this.locLabelFalse.textOrHtml;\n };\n QuestionBooleanModel.prototype.getItemCssValue = function (css) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__[\"CssClassBuilder\"]()\n .append(css.item)\n .append(css.itemOnError, this.hasCssError())\n .append(css.itemDisabled, this.isDisabledStyle)\n .append(css.itemReadOnly, this.isReadOnlyStyle)\n .append(css.itemPreview, this.isPreviewStyle)\n .append(css.itemHover, !this.isDesignMode)\n .append(css.itemChecked, !!this.booleanValue)\n .append(css.itemExchanged, !!this.swapOrder)\n .append(css.itemIndeterminate, !this.isDeterminated)\n .toString();\n };\n QuestionBooleanModel.prototype.getItemCss = function () {\n return this.getItemCssValue(this.cssClasses);\n };\n QuestionBooleanModel.prototype.getCheckboxItemCss = function () {\n return this.getItemCssValue({\n item: this.cssClasses.checkboxItem,\n itemOnError: this.cssClasses.checkboxItemOnError,\n itemDisabled: this.cssClasses.checkboxItemDisabled,\n itemDisable: this.cssClasses.checkboxItemDisabled,\n itemReadOnly: this.cssClasses.checkboxItemReadOnly,\n itemPreview: this.cssClasses.checkboxItemPreview,\n itemChecked: this.cssClasses.checkboxItemChecked,\n itemIndeterminate: this.cssClasses.checkboxItemIndeterminate\n });\n };\n QuestionBooleanModel.prototype.getLabelCss = function (checked) {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__[\"CssClassBuilder\"]()\n .append(this.cssClasses.label)\n .append(this.cssClasses.disabledLabel, this.booleanValue === !checked || this.isDisabledStyle)\n .append(this.cssClasses.labelReadOnly, this.isReadOnlyStyle)\n .append(this.cssClasses.labelPreview, this.isPreviewStyle)\n .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === !this.swapOrder)\n .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === this.swapOrder)\n .toString();\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"svgIcon\", {\n get: function () {\n if (this.booleanValue && this.cssClasses.svgIconCheckedId)\n return this.cssClasses.svgIconCheckedId;\n if (!this.isDeterminated && this.cssClasses.svgIconIndId)\n return this.cssClasses.svgIconIndId;\n if (!this.booleanValue && this.cssClasses.svgIconUncheckedId)\n return this.cssClasses.svgIconUncheckedId;\n return this.cssClasses.svgIconId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"itemSvgIcon\", {\n get: function () {\n if (this.isPreviewStyle && this.cssClasses.itemPreviewSvgIconId) {\n return this.cssClasses.itemPreviewSvgIconId;\n }\n return this.cssClasses.itemSvgIconId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"allowClick\", {\n get: function () {\n return this.isIndeterminate && !this.isInputReadOnly;\n },\n enumerable: false,\n configurable: true\n });\n QuestionBooleanModel.prototype.getCheckedLabel = function () {\n if (this.booleanValue === true) {\n return this.locLabelTrue;\n }\n else if (this.booleanValue === false) {\n return this.locLabelFalse;\n }\n };\n QuestionBooleanModel.prototype.setQuestionValue = function (newValue, updateIsAnswered) {\n if (updateIsAnswered === void 0) { updateIsAnswered = true; }\n if (newValue === \"true\" && this.valueTrue !== \"true\")\n newValue = true;\n if (newValue === \"false\" && this.valueFalse !== \"false\")\n newValue = false;\n if (newValue === \"indeterminate\" || newValue === null)\n newValue = undefined;\n _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);\n };\n /* #region web-based methods */\n QuestionBooleanModel.prototype.onLabelClick = function (event, value) {\n if (this.allowClick) {\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__[\"preventDefaults\"])(event);\n this.booleanValue = value;\n }\n return true;\n };\n QuestionBooleanModel.prototype.calculateBooleanValueByEvent = function (event, isRightClick) {\n var isRtl = false;\n if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_5__[\"DomDocumentHelper\"].isAvailable()) {\n isRtl = _global_variables_utils__WEBPACK_IMPORTED_MODULE_5__[\"DomDocumentHelper\"].getComputedStyle(event.target).direction == \"rtl\";\n }\n this.booleanValue = isRtl ? !isRightClick : isRightClick;\n };\n QuestionBooleanModel.prototype.onSwitchClickModel = function (event) {\n if (this.allowClick) {\n Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__[\"preventDefaults\"])(event);\n var isRightClick = event.offsetX / event.target.offsetWidth > 0.5;\n this.calculateBooleanValueByEvent(event, isRightClick);\n return;\n }\n return true;\n };\n QuestionBooleanModel.prototype.onKeyDownCore = function (event) {\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowRight\") {\n event.stopPropagation();\n this.calculateBooleanValueByEvent(event, event.key === \"ArrowRight\");\n }\n return true;\n };\n /* #endregion */\n QuestionBooleanModel.prototype.getRadioItemClass = function (css, value) {\n var className = undefined;\n if (css.radioItem) {\n className = css.radioItem;\n }\n if (css.radioItemChecked && value === this.booleanValue) {\n className = (className ? className + \" \" : \"\") + css.radioItemChecked;\n }\n if (this.isDisabledStyle) {\n className += \" \" + css.radioItemDisabled;\n }\n if (this.isReadOnlyStyle) {\n className += \" \" + css.radioItemReadOnly;\n }\n if (this.isPreviewStyle) {\n className += \" \" + css.radioItemPreview;\n }\n return className;\n };\n QuestionBooleanModel.prototype.supportResponsiveness = function () {\n return true;\n };\n QuestionBooleanModel.prototype.getCompactRenderAs = function () {\n return \"radio\";\n };\n QuestionBooleanModel.prototype.createActionContainer = function (allowAdaptiveActions) {\n return _super.prototype.createActionContainer.call(this, this.renderAs !== \"checkbox\");\n };\n Object.defineProperty(QuestionBooleanModel.prototype, \"isNewA11yStructure\", {\n //a11y\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionBooleanModel.prototype, \"a11y_input_ariaRole\", {\n get: function () {\n return \"switch\";\n },\n enumerable: false,\n configurable: true\n });\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], QuestionBooleanModel.prototype, \"booleanValueRendered\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], QuestionBooleanModel.prototype, \"leftAnswerElement\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], QuestionBooleanModel.prototype, \"thumbMargin\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], QuestionBooleanModel.prototype, \"showTitle\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ localizable: true })\n ], QuestionBooleanModel.prototype, \"label\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])({ defaultValue: false })\n ], QuestionBooleanModel.prototype, \"swapOrder\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], QuestionBooleanModel.prototype, \"valueTrue\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"property\"])()\n ], QuestionBooleanModel.prototype, \"valueFalse\", void 0);\n return QuestionBooleanModel;\n}(_question__WEBPACK_IMPORTED_MODULE_2__[\"Question\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_1__[\"Serializer\"].addClass(\"boolean\", [\n { name: \"showCommentArea:switch\", layout: \"row\", visible: true, category: \"general\" },\n { name: \"label:text\", serializationProperty: \"locLabel\", isSerializable: false, visible: false },\n {\n name: \"labelTrue:text\",\n serializationProperty: \"locLabelTrue\",\n },\n {\n name: \"labelFalse:text\",\n serializationProperty: \"locLabelFalse\",\n },\n \"valueTrue\",\n \"valueFalse\",\n { name: \"swapOrder:boolean\", category: \"general\" },\n { name: \"renderAs\", default: \"default\", visible: false },\n], function () {\n return new QuestionBooleanModel(\"\");\n}, \"question\");\n_questionfactory__WEBPACK_IMPORTED_MODULE_0__[\"QuestionFactory\"].Instance.registerQuestion(\"boolean\", function (name) {\n return new QuestionBooleanModel(name);\n});\n\n\n/***/ }),\n\n/***/ \"./src/question_buttongroup.ts\":\n/*!*************************************!*\\\n !*** ./src/question_buttongroup.ts ***!\n \\*************************************/\n/*! exports provided: ButtonGroupItemValue, QuestionButtonGroupModel, ButtonGroupItemModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ButtonGroupItemValue\", function() { return ButtonGroupItemValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionButtonGroupModel\", function() { return QuestionButtonGroupModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ButtonGroupItemModel\", function() { return ButtonGroupItemModel; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./itemvalue */ \"./src/itemvalue.ts\");\n/* harmony import */ var _question_baseselect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question_baseselect */ \"./src/question_baseselect.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\nvar ButtonGroupItemValue = /** @class */ (function (_super) {\n __extends(ButtonGroupItemValue, _super);\n function ButtonGroupItemValue(value, text, typeName) {\n if (text === void 0) { text = null; }\n if (typeName === void 0) { typeName = \"buttongroupitemvalue\"; }\n var _this = _super.call(this, value, text, typeName) || this;\n _this.typeName = typeName;\n return _this;\n }\n ButtonGroupItemValue.prototype.getType = function () {\n return !!this.typeName ? this.typeName : \"buttongroupitemvalue\";\n };\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], ButtonGroupItemValue.prototype, \"iconName\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], ButtonGroupItemValue.prototype, \"iconSize\", void 0);\n __decorate([\n Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"property\"])()\n ], ButtonGroupItemValue.prototype, \"showCaption\", void 0);\n return ButtonGroupItemValue;\n}(_itemvalue__WEBPACK_IMPORTED_MODULE_1__[\"ItemValue\"]));\n\n/**\n * A Model for a button group question.\n */\nvar QuestionButtonGroupModel = /** @class */ (function (_super) {\n __extends(QuestionButtonGroupModel, _super);\n function QuestionButtonGroupModel(name) {\n return _super.call(this, name) || this;\n }\n QuestionButtonGroupModel.prototype.getType = function () {\n return \"buttongroup\";\n };\n QuestionButtonGroupModel.prototype.getItemValueType = function () {\n return \"buttongroupitemvalue\";\n };\n QuestionButtonGroupModel.prototype.supportOther = function () {\n return false;\n };\n return QuestionButtonGroupModel;\n}(_question_baseselect__WEBPACK_IMPORTED_MODULE_2__[\"QuestionCheckboxBase\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"buttongroup\", [\n {\n name: \"choices:buttongroupitemvalue[]\",\n },\n], function () {\n return new QuestionButtonGroupModel(\"\");\n}, \"checkboxbase\");\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"buttongroupitemvalue\", [\n { name: \"showCaption:boolean\", default: true },\n { name: \"iconName:text\" },\n { name: \"iconSize:number\" },\n], function (value) { return new ButtonGroupItemValue(value); }, \"itemvalue\");\n// QuestionFactory.Instance.registerQuestion(\"buttongroup\", name => {\n// var q = new QuestionButtonGroupModel(name);\n// q.choices = QuestionFactory.DefaultChoices;\n// return q;\n// });\nvar ButtonGroupItemModel = /** @class */ (function () {\n function ButtonGroupItemModel(question, item, index) {\n this.question = question;\n this.item = item;\n this.index = index;\n }\n Object.defineProperty(ButtonGroupItemModel.prototype, \"value\", {\n get: function () {\n return this.item.value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"iconName\", {\n get: function () {\n return this.item.iconName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"iconSize\", {\n get: function () {\n return this.item.iconSize || 24;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"caption\", {\n get: function () {\n return this.item.locText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"showCaption\", {\n get: function () {\n return this.item.showCaption || this.item.showCaption === undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"isRequired\", {\n get: function () {\n return this.question.isRequired;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"selected\", {\n get: function () {\n return this.question.isItemSelected(this.item);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"readOnly\", {\n get: function () {\n return this.question.isInputReadOnly || !this.item.isEnabled;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"name\", {\n get: function () {\n return this.question.name + \"_\" + this.question.id;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"id\", {\n get: function () {\n return this.question.inputId + \"_\" + this.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"hasErrors\", {\n get: function () {\n return this.question.errors.length > 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"describedBy\", {\n get: function () {\n return this.question.errors.length > 0\n ? this.question.id + \"_errors\"\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"labelClass\", {\n get: function () {\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__[\"CssClassBuilder\"]()\n .append(this.question.cssClasses.item)\n .append(this.question.cssClasses.itemSelected, this.selected)\n .append(this.question.cssClasses.itemHover, !this.readOnly && !this.selected)\n .append(this.question.cssClasses.itemDisabled, this.question.isReadOnly || !this.item.isEnabled)\n .toString();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroupItemModel.prototype, \"css\", {\n get: function () {\n return {\n label: this.labelClass,\n icon: this.question.cssClasses.itemIcon,\n control: this.question.cssClasses.itemControl,\n caption: this.question.cssClasses.itemCaption,\n decorator: this.question.cssClasses.itemDecorator,\n };\n },\n enumerable: false,\n configurable: true\n });\n ButtonGroupItemModel.prototype.onChange = function () {\n this.question.renderedValue = this.item.value;\n };\n return ButtonGroupItemModel;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/question_checkbox.ts\":\n/*!**********************************!*\\\n !*** ./src/question_checkbox.ts ***!\n \\**********************************/\n/*! exports provided: QuestionCheckboxModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionCheckboxModel\", function() { return QuestionCheckboxModel; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./questionfactory */ \"./src/questionfactory.ts\");\n/* harmony import */ var _question_baseselect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question_baseselect */ \"./src/question_baseselect.ts\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers */ \"./src/helpers.ts\");\n/* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./itemvalue */ \"./src/itemvalue.ts\");\n/* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/cssClassBuilder */ \"./src/utils/cssClassBuilder.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./error */ \"./src/error.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\n\n\n\n/**\n * A class that describes the Checkboxes question type.\n *\n * [View Demo](https://surveyjs.io/form-library/examples/questiontype-checkbox/ (linkStyle))\n */\nvar QuestionCheckboxModel = /** @class */ (function (_super) {\n __extends(QuestionCheckboxModel, _super);\n function QuestionCheckboxModel(name) {\n var _this = _super.call(this, name) || this;\n _this.invisibleOldValues = {};\n _this.isChangingValueOnClearIncorrect = false;\n _this.selectAllItemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_4__[\"ItemValue\"](\"\");\n _this.selectAllItemValue.id = \"selectall\";\n var selectAllItemText = _this.createLocalizableString(\"selectAllText\", _this.selectAllItem, true, \"selectAllItemText\");\n _this.selectAllItem.locOwner = _this;\n _this.selectAllItem.setLocText(selectAllItemText);\n _this.registerPropertyChangedHandlers([\"showSelectAllItem\", \"selectAllText\"], function () {\n _this.onVisibleChoicesChanged();\n });\n return _this;\n }\n QuestionCheckboxModel.prototype.getDefaultItemComponent = function () {\n return \"survey-checkbox-item\";\n };\n QuestionCheckboxModel.prototype.getType = function () {\n return \"checkbox\";\n };\n QuestionCheckboxModel.prototype.onCreating = function () {\n _super.prototype.onCreating.call(this);\n this.createNewArray(\"renderedValue\");\n this.createNewArray(\"value\");\n };\n QuestionCheckboxModel.prototype.getFirstInputElementId = function () {\n return this.inputId + \"_0\";\n };\n Object.defineProperty(QuestionCheckboxModel.prototype, \"valuePropertyName\", {\n /**\n * Specifies a property name used to store selected values.\n *\n * Set this property if you want to store selected values in an array of objects instead of an array of primitive values. For example, if you set `valuePropertyName` to `\"car\"`, the `value` property will contain an array of objects `[{ car: \"Ford\" }, { car: \"Tesla\" }]`, not an array of string values `[ \"Ford\", \"Tesla\" ]`.\n */\n get: function () {\n return this.getPropertyValue(\"valuePropertyName\");\n },\n set: function (val) {\n this.setPropertyValue(\"valuePropertyName\", val);\n },\n enumerable: false,\n configurable: true\n });\n QuestionCheckboxModel.prototype.getQuestionFromArray = function (name, index) {\n if (!!name && name === this.valuePropertyName) {\n var v = this.value;\n if (Array.isArray(v) && index < v.length)\n return this;\n }\n return null;\n };\n Object.defineProperty(QuestionCheckboxModel.prototype, \"selectAllItem\", {\n /**\n * Returns the \"Select All\" choice item. Use this property to change the item's `value` or `text`.\n * @see showSelectAllItem\n */\n get: function () {\n return this.selectAllItemValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"selectAllText\", {\n /**\n * Gets or sets a caption for the \"Select All\" choice item.\n * @see showSelectAllItem\n */\n get: function () {\n return this.getLocalizableStringText(\"selectAllText\");\n },\n set: function (val) {\n this.setLocalizableStringText(\"selectAllText\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"locSelectAllText\", {\n get: function () {\n return this.getLocalizableString(\"selectAllText\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"showSelectAllItem\", {\n /**\n * Enable this property to display a \"Select All\" item. When users select it, all other choice items, except \"Other\" and \"None\", also become selected.\n * @see selectAll\n * @see isAllSelected\n * @see separateSpecialChoices\n */\n get: function () {\n return this.getPropertyValue(\"showSelectAllItem\");\n },\n set: function (val) {\n this.setPropertyValue(\"showSelectAllItem\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"hasSelectAll\", {\n get: function () {\n return this.showSelectAllItem;\n },\n set: function (val) {\n this.showSelectAllItem = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"isAllSelected\", {\n /**\n * Returns `true` if all choice items, except \"Other\" and \"None\", are selected.\n * @see showSelectAllItem\n */\n get: function () {\n var noneItems = this.getNoneItems();\n for (var i = 0; i < noneItems.length; i++) {\n if (this.isItemSelected(noneItems[i]))\n return false;\n }\n var items = this.getVisibleEnableItems();\n if (items.length === 0)\n return false;\n var val = this.value;\n if (!val || !Array.isArray(val) || val.length === 0)\n return false;\n if (val.length < items.length)\n return false;\n var rVal = [];\n for (var i = 0; i < val.length; i++) {\n rVal.push(this.getRealValue(val[i]));\n }\n for (var i = 0; i < items.length; i++) {\n if (rVal.indexOf(items[i].value) < 0)\n return false;\n }\n return true;\n },\n set: function (val) {\n if (val) {\n this.selectAll();\n }\n else {\n this.clearValue();\n }\n },\n enumerable: false,\n configurable: true\n });\n QuestionCheckboxModel.prototype.toggleSelectAll = function () {\n this.isAllSelected = !this.isAllSelected;\n };\n /**\n * Selects all choice items, except \"Other\" and \"None\".\n *\n * To clear selection, call the `clearValue()` method.\n * @see clearValue\n */\n QuestionCheckboxModel.prototype.selectAll = function () {\n var val = [];\n var items = this.getVisibleEnableItems();\n for (var i = 0; i < items.length; i++) {\n val.push(items[i].value);\n }\n this.renderedValue = val;\n };\n QuestionCheckboxModel.prototype.clickItemHandler = function (item, checked) {\n if (item === this.selectAllItem) {\n if (checked === true || checked === false) {\n this.isAllSelected = checked;\n }\n else {\n this.toggleSelectAll();\n }\n }\n else {\n if (this.isNoneItem(item)) {\n this.renderedValue = [item.value];\n }\n else {\n var newValue = [].concat(this.renderedValue || []);\n var index = newValue.indexOf(item.value);\n if (checked) {\n if (index < 0) {\n newValue.push(item.value);\n }\n }\n else {\n if (index > -1) {\n newValue.splice(index, 1);\n }\n }\n this.renderedValue = newValue;\n }\n }\n };\n QuestionCheckboxModel.prototype.isItemSelectedCore = function (item) {\n if (item === this.selectAllItem)\n return this.isAllSelected;\n var val = this.renderedValue;\n if (!val || !Array.isArray(val))\n return false;\n for (var i = 0; i < val.length; i++) {\n if (this.isTwoValueEquals(val[i], item.value))\n return true;\n }\n return false;\n };\n QuestionCheckboxModel.prototype.getRealValue = function (val) {\n if (!val)\n return val;\n return !this.valuePropertyName ? val : val[this.valuePropertyName];\n };\n Object.defineProperty(QuestionCheckboxModel.prototype, \"isValueArray\", {\n get: function () { return true; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"maxSelectedChoices\", {\n /**\n * Specifies the maximum number of selected choices.\n *\n * Default value: 0 (unlimited)\n *\n * > This property only limits the number of choice items that can be selected by users. You can select any number of choice items in code, regardless of the `maxSelectedChoices` value.\n * @see minSelectedChoices\n */\n get: function () {\n return this.getPropertyValue(\"maxSelectedChoices\");\n },\n set: function (val) {\n if (val < 0)\n val = 0;\n this.setPropertyValue(\"maxSelectedChoices\", val);\n this.filterItems();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"minSelectedChoices\", {\n /**\n * Specifies the minimum number of selected choices.\n *\n * Default value: 0 (unlimited)\n *\n * > This property only limits the number of choice items that can be selected by users. You can select any number of choice items in code, regardless of the `minSelectedChoices` value.\n * @see maxSelectedChoices\n */\n get: function () {\n return this.getPropertyValue(\"minSelectedChoices\");\n },\n set: function (val) {\n if (val < 0)\n val = 0;\n this.setPropertyValue(\"minSelectedChoices\", val);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"selectedChoices\", {\n /**\n * An array of selected choice items. Includes the \"Other\" and \"None\" choice items if they are selected, but not \"Select All\". Items are sorted in the order they were selected.\n * @see visibleChoices\n * @see enabledChoices\n */\n get: function () {\n var val = this.renderedValue;\n var visChoices = this.visibleChoices;\n var selectedItemValues = this.selectedItemValues;\n if (this.isEmpty())\n return [];\n var allChoices = !!this.defaultSelectedItemValues ? [].concat(this.defaultSelectedItemValues, visChoices) : visChoices;\n var itemValues = val.map(function (item) { return _itemvalue__WEBPACK_IMPORTED_MODULE_4__[\"ItemValue\"].getItemByValue(allChoices, item); }).filter(function (item) { return !!item; });\n if (!itemValues.length && !selectedItemValues) {\n this.updateSelectedItemValues();\n }\n return this.validateItemValues(itemValues);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"selectedItems\", {\n get: function () { return this.selectedChoices; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"hasFilteredValue\", {\n get: function () { return !!this.valuePropertyName; },\n enumerable: false,\n configurable: true\n });\n QuestionCheckboxModel.prototype.getFilteredName = function () {\n var res = _super.prototype.getFilteredName.call(this);\n if (this.hasFilteredValue) {\n res += \"-unwrapped\";\n }\n return res;\n };\n QuestionCheckboxModel.prototype.getFilteredValue = function () {\n if (this.hasFilteredValue)\n return this.renderedValue;\n return _super.prototype.getFilteredValue.call(this);\n };\n QuestionCheckboxModel.prototype.getMultipleSelectedItems = function () {\n return this.selectedChoices;\n };\n QuestionCheckboxModel.prototype.validateItemValues = function (itemValues) {\n var _this = this;\n if (!!itemValues.length)\n return itemValues;\n var selectedItemValues = this.selectedItemValues;\n if (!!selectedItemValues && !!selectedItemValues.length) {\n this.defaultSelectedItemValues = [].concat(selectedItemValues);\n return selectedItemValues;\n }\n var val = this.renderedValue;\n return val.map(function (item) { return _this.createItemValue(item); });\n };\n QuestionCheckboxModel.prototype.getAnswerCorrectIgnoreOrder = function () { return true; };\n QuestionCheckboxModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {\n _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);\n if (isOnValueChanged)\n return;\n if (this.minSelectedChoices > 0 && this.checkMinSelectedChoicesUnreached()) {\n var minError = new _error__WEBPACK_IMPORTED_MODULE_6__[\"CustomError\"](this.getLocalizationFormatString(\"minSelectError\", this.minSelectedChoices), this);\n errors.push(minError);\n }\n };\n QuestionCheckboxModel.prototype.onVisibleChoicesChanged = function () {\n _super.prototype.onVisibleChoicesChanged.call(this);\n this.updateSelectAllItemProps();\n };\n QuestionCheckboxModel.prototype.onEnableItemCallBack = function (item) {\n if (!this.shouldCheckMaxSelectedChoices())\n return true;\n return this.isItemSelected(item);\n };\n QuestionCheckboxModel.prototype.onAfterRunItemsEnableCondition = function () {\n this.updateSelectAllItemProps();\n if (this.maxSelectedChoices < 1) {\n this.otherItem.setIsEnabled(true);\n return;\n }\n if (this.hasOther) {\n this.otherItem.setIsEnabled(!this.shouldCheckMaxSelectedChoices() || this.isOtherSelected);\n }\n };\n QuestionCheckboxModel.prototype.updateSelectAllItemProps = function () {\n if (!this.hasSelectAll)\n return;\n this.selectAllItem.setIsEnabled(this.getSelectAllEnabled());\n };\n QuestionCheckboxModel.prototype.getSelectAllEnabled = function () {\n if (!this.hasSelectAll)\n return true;\n var items = this.activeChoices;\n var visCount = this.getVisibleEnableItems().length;\n var max = this.maxSelectedChoices;\n if (max > 0 && max < visCount)\n return false;\n return visCount > 0;\n };\n QuestionCheckboxModel.prototype.getVisibleEnableItems = function () {\n var res = new Array();\n var items = this.activeChoices;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (item.isEnabled && item.isVisible) {\n res.push(item);\n }\n }\n return res;\n };\n QuestionCheckboxModel.prototype.shouldCheckMaxSelectedChoices = function () {\n if (this.maxSelectedChoices < 1)\n return false;\n var val = this.value;\n var len = !Array.isArray(val) ? 0 : val.length;\n return len >= this.maxSelectedChoices;\n };\n QuestionCheckboxModel.prototype.checkMinSelectedChoicesUnreached = function () {\n if (this.minSelectedChoices < 1)\n return false;\n var val = this.value;\n var len = !Array.isArray(val) ? 0 : val.length;\n return len < this.minSelectedChoices;\n };\n QuestionCheckboxModel.prototype.getItemClassCore = function (item, options) {\n var __dummy_value = this.value; //trigger dependencies from koValue for knockout\n options.isSelectAllItem = item === this.selectAllItem;\n return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__[\"CssClassBuilder\"]()\n .append(_super.prototype.getItemClassCore.call(this, item, options))\n .append(this.cssClasses.itemSelectAll, options.isSelectAllItem)\n .toString();\n };\n QuestionCheckboxModel.prototype.updateValueFromSurvey = function (newValue, clearData) {\n _super.prototype.updateValueFromSurvey.call(this, newValue, clearData);\n this.invisibleOldValues = {};\n };\n QuestionCheckboxModel.prototype.setDefaultValue = function () {\n _super.prototype.setDefaultValue.call(this);\n var val = this.defaultValue;\n if (Array.isArray(val)) {\n for (var i = 0; i < val.length; i++) {\n var rVal = this.getRealValue(val[i]);\n if (this.canClearValueAnUnknown(rVal)) {\n this.addIntoInvisibleOldValues(rVal);\n }\n }\n }\n };\n QuestionCheckboxModel.prototype.addIntoInvisibleOldValues = function (val) {\n this.invisibleOldValues[val] = val;\n };\n QuestionCheckboxModel.prototype.hasValueToClearIncorrectValues = function () {\n return _super.prototype.hasValueToClearIncorrectValues.call(this) || !_helpers__WEBPACK_IMPORTED_MODULE_3__[\"Helpers\"].isValueEmpty(this.invisibleOldValues);\n };\n QuestionCheckboxModel.prototype.setNewValue = function (newValue) {\n if (!this.isChangingValueOnClearIncorrect) {\n this.invisibleOldValues = {};\n }\n newValue = this.valueFromData(newValue);\n var value = this.value;\n if (!newValue)\n newValue = [];\n if (!value)\n value = [];\n if (this.isTwoValueEquals(value, newValue))\n return;\n this.removeNoneItemsValues(value, newValue);\n _super.prototype.setNewValue.call(this, newValue);\n };\n QuestionCheckboxModel.prototype.getIsMultipleValue = function () {\n return true;\n };\n QuestionCheckboxModel.prototype.getCommentFromValue = function (newValue) {\n var ind = this.getFirstUnknownIndex(newValue);\n if (ind < 0)\n return \"\";\n return newValue[ind];\n };\n QuestionCheckboxModel.prototype.setOtherValueIntoValue = function (newValue) {\n var ind = this.getFirstUnknownIndex(newValue);\n if (ind < 0)\n return newValue;\n newValue.splice(ind, 1, this.otherItem.value);\n return newValue;\n };\n QuestionCheckboxModel.prototype.getFirstUnknownIndex = function (newValue) {\n if (!Array.isArray(newValue))\n return -1;\n for (var i = 0; i < newValue.length; i++) {\n if (this.hasUnknownValueItem(newValue[i], false, false))\n return i;\n }\n return -1;\n };\n QuestionCheckboxModel.prototype.removeNoneItemsValues = function (value, newValue) {\n var noneValues = [];\n if (this.showNoneItem)\n noneValues.push(this.noneItem.value);\n if (this.showRefuseItem)\n noneValues.push(this.refuseItem.value);\n if (this.showDontKnowItem)\n noneValues.push(this.dontKnowItem.value);\n if (noneValues.length > 0) {\n var prevNone = this.noneIndexInArray(value, noneValues);\n var newNone = this.noneIndexInArray(newValue, noneValues);\n if (prevNone.index > -1) {\n if (prevNone.val === newNone.val) {\n if (newValue.length > 0) {\n newValue.splice(newNone.index, 1);\n }\n }\n else {\n var prevNewNone = this.noneIndexInArray(newValue, [prevNone.val]);\n if (prevNewNone.index > -1 && prevNewNone.index < newValue.length - 1) {\n newValue.splice(prevNewNone.index, 1);\n }\n }\n }\n else {\n if (newNone.index > -1 && newValue.length > 1) {\n var itemVal = this.convertValueToObject([newNone.val])[0];\n newValue.splice(0, newValue.length, itemVal);\n }\n }\n }\n };\n QuestionCheckboxModel.prototype.noneIndexInArray = function (val, noneValues) {\n if (!Array.isArray(val))\n return { index: -1, val: undefined };\n for (var i = val.length - 1; i >= 0; i--) {\n var index = noneValues.indexOf(this.getRealValue(val[i]));\n if (index > -1)\n return { index: i, val: noneValues[index] };\n }\n return { index: -1, val: undefined };\n };\n QuestionCheckboxModel.prototype.canUseFilteredChoices = function () {\n return !this.hasSelectAll && _super.prototype.canUseFilteredChoices.call(this);\n };\n QuestionCheckboxModel.prototype.supportSelectAll = function () {\n return this.isSupportProperty(\"showSelectAllItem\");\n };\n QuestionCheckboxModel.prototype.addNonChoicesItems = function (dict, isAddAll) {\n _super.prototype.addNonChoicesItems.call(this, dict, isAddAll);\n if (this.supportSelectAll()) {\n this.addNonChoiceItem(dict, this.selectAllItem, isAddAll, this.hasSelectAll, _settings__WEBPACK_IMPORTED_MODULE_7__[\"settings\"].specialChoicesOrder.selectAllItem);\n }\n };\n QuestionCheckboxModel.prototype.isBuiltInChoice = function (item) {\n return item === this.selectAllItem || _super.prototype.isBuiltInChoice.call(this, item);\n };\n QuestionCheckboxModel.prototype.isItemInList = function (item) {\n if (item == this.selectAllItem)\n return this.hasSelectAll;\n return _super.prototype.isItemInList.call(this, item);\n };\n QuestionCheckboxModel.prototype.getDisplayValueEmpty = function () {\n var _this = this;\n return _itemvalue__WEBPACK_IMPORTED_MODULE_4__[\"ItemValue\"].getTextOrHtmlByValue(this.visibleChoices.filter(function (choice) { return choice != _this.selectAllItemValue; }), undefined);\n };\n QuestionCheckboxModel.prototype.getDisplayValueCore = function (keysAsText, value) {\n if (!Array.isArray(value))\n return _super.prototype.getDisplayValueCore.call(this, keysAsText, value);\n var valuePropName = this.valuePropertyName;\n var onGetValueCallback = function (index) {\n var val = value[index];\n if (!!valuePropName && !!val[valuePropName]) {\n val = val[valuePropName];\n }\n return val;\n };\n return this.getDisplayArrayValue(keysAsText, value, onGetValueCallback);\n };\n QuestionCheckboxModel.prototype.clearIncorrectValuesCore = function () {\n this.clearIncorrectAndDisabledValues(false);\n };\n QuestionCheckboxModel.prototype.clearDisabledValuesCore = function () {\n this.clearIncorrectAndDisabledValues(true);\n };\n QuestionCheckboxModel.prototype.clearIncorrectAndDisabledValues = function (clearDisabled) {\n var val = this.value;\n var hasChanged = false;\n var restoredValues = this.restoreValuesFromInvisible();\n if (!val && restoredValues.length == 0)\n return;\n if (!Array.isArray(val) || val.length == 0) {\n this.isChangingValueOnClearIncorrect = true;\n if (!clearDisabled) {\n if (this.hasComment) {\n this.value = null;\n }\n else {\n this.clearValue();\n }\n }\n this.isChangingValueOnClearIncorrect = false;\n if (restoredValues.length == 0)\n return;\n val = [];\n }\n var newValue = [];\n for (var i = 0; i < val.length; i++) {\n var rItemVal = this.getRealValue(val[i]);\n var isUnkown = this.canClearValueAnUnknown(rItemVal);\n if ((!clearDisabled && !isUnkown) ||\n (clearDisabled && !this.isValueDisabled(rItemVal))) {\n newValue.push(val[i]);\n }\n else {\n hasChanged = true;\n if (isUnkown) {\n this.addIntoInvisibleOldValues(val[i]);\n }\n }\n }\n for (var i = 0; i < restoredValues.length; i++) {\n newValue.push(restoredValues[i]);\n hasChanged = true;\n }\n if (!hasChanged)\n return;\n this.isChangingValueOnClearIncorrect = true;\n if (newValue.length == 0) {\n this.clearValue();\n }\n else {\n this.value = newValue;\n }\n this.isChangingValueOnClearIncorrect = false;\n };\n QuestionCheckboxModel.prototype.restoreValuesFromInvisible = function () {\n var res = [];\n var visItems = this.visibleChoices;\n for (var i = 0; i < visItems.length; i++) {\n var item = visItems[i];\n if (item === this.selectAllItem)\n continue;\n var val = visItems[i].value;\n if (_helpers__WEBPACK_IMPORTED_MODULE_3__[\"Helpers\"].isTwoValueEquals(val, this.invisibleOldValues[val])) {\n if (!this.isItemSelected(item)) {\n res.push(val);\n }\n delete this.invisibleOldValues[val];\n }\n }\n return res;\n };\n QuestionCheckboxModel.prototype.getConditionJson = function (operator, path) {\n if (operator === void 0) { operator = null; }\n if (path === void 0) { path = null; }\n var json = _super.prototype.getConditionJson.call(this, operator, path);\n if (operator == \"contains\" || operator == \"notcontains\") {\n json[\"type\"] = \"radiogroup\";\n }\n json[\"maxSelectedChoices\"] = 0;\n json[\"minSelectedChoices\"] = 0;\n return json;\n };\n QuestionCheckboxModel.prototype.isAnswerCorrect = function () {\n return _helpers__WEBPACK_IMPORTED_MODULE_3__[\"Helpers\"].isArrayContainsEqual(this.value, this.correctAnswer);\n };\n QuestionCheckboxModel.prototype.setDefaultValueWithOthers = function () {\n this.value = this.renderedValueFromDataCore(this.defaultValue);\n };\n QuestionCheckboxModel.prototype.getIsItemValue = function (val, item) {\n if (!val || !Array.isArray(val))\n return false;\n return val.indexOf(item.value) >= 0;\n };\n QuestionCheckboxModel.prototype.valueFromData = function (val) {\n if (!val)\n return val;\n if (!Array.isArray(val))\n return [_super.prototype.valueFromData.call(this, val)];\n var value = [];\n for (var i = 0; i < val.length; i++) {\n var choiceitem = _itemvalue__WEBPACK_IMPORTED_MODULE_4__[\"ItemValue\"].getItemByValue(this.activeChoices, val[i]);\n if (!!choiceitem) {\n value.push(choiceitem.value);\n }\n else {\n value.push(val[i]);\n }\n }\n return value;\n };\n QuestionCheckboxModel.prototype.rendredValueFromData = function (val) {\n val = this.convertValueFromObject(val);\n return _super.prototype.rendredValueFromData.call(this, val);\n };\n QuestionCheckboxModel.prototype.rendredValueToData = function (val) {\n val = _super.prototype.rendredValueToData.call(this, val);\n return this.convertValueToObject(val);\n };\n QuestionCheckboxModel.prototype.convertValueFromObject = function (val) {\n if (!this.valuePropertyName)\n return val;\n return _helpers__WEBPACK_IMPORTED_MODULE_3__[\"Helpers\"].convertArrayObjectToValue(val, this.valuePropertyName);\n };\n QuestionCheckboxModel.prototype.convertValueToObject = function (val) {\n if (!this.valuePropertyName)\n return val;\n var dest = undefined;\n if (!!this.survey && this.survey.questionsByValueName(this.getValueName()).length > 1) {\n dest = this.data.getValue(this.getValueName());\n }\n return _helpers__WEBPACK_IMPORTED_MODULE_3__[\"Helpers\"].convertArrayValueToObject(val, this.valuePropertyName, dest);\n };\n QuestionCheckboxModel.prototype.renderedValueFromDataCore = function (val) {\n if (!val || !Array.isArray(val))\n val = [];\n if (!this.hasActiveChoices)\n return val;\n for (var i = 0; i < val.length; i++) {\n if (val[i] == this.otherItem.value)\n return val;\n if (this.hasUnknownValueItem(val[i], true, false)) {\n this.otherValue = val[i];\n var newVal = val.slice();\n newVal[i] = this.otherItem.value;\n return newVal;\n }\n }\n return val;\n };\n QuestionCheckboxModel.prototype.rendredValueToDataCore = function (val) {\n if (!val || !val.length)\n return val;\n for (var i = 0; i < val.length; i++) {\n if (val[i] == this.otherItem.value) {\n if (this.needConvertRenderedOtherToDataValue()) {\n var newVal = val.slice();\n newVal[i] = this.otherValue;\n return newVal;\n }\n }\n }\n return val;\n };\n QuestionCheckboxModel.prototype.selectOtherValueFromComment = function (val) {\n var newVal = [];\n var rendVal = this.renderedValue;\n if (Array.isArray(rendVal)) {\n for (var i = 0; i < rendVal.length; i++) {\n if (rendVal[i] !== this.otherItem.value) {\n newVal.push(rendVal[i]);\n }\n }\n }\n if (val) {\n newVal.push(this.otherItem.value);\n }\n this.value = newVal;\n };\n Object.defineProperty(QuestionCheckboxModel.prototype, \"checkBoxSvgPath\", {\n get: function () {\n return \"M5,13l2-2l3,3l7-7l2,2l-9,9L5,13z\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"isNewA11yStructure\", {\n //a11y\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(QuestionCheckboxModel.prototype, \"a11y_input_ariaRole\", {\n get: function () {\n return \"listbox\";\n },\n enumerable: false,\n configurable: true\n });\n return QuestionCheckboxModel;\n}(_question_baseselect__WEBPACK_IMPORTED_MODULE_2__[\"QuestionCheckboxBase\"]));\n\n_jsonobject__WEBPACK_IMPORTED_MODULE_0__[\"Serializer\"].addClass(\"checkbox\", [\n { name: \"showSelectAllItem:boolean\", alternativeName: \"hasSelectAll\" },\n { name: \"separateSpecialChoices\", visible: true },\n { name: \"maxSelectedChoices:number\", default: 0, onSettingValue: function (obj, val) {\n if (val <= 0)\n return 0;\n var min = obj.minSelectedChoices;\n return min > 0 && val < min ? min : val;\n }\n },\n { name: \"minSelectedChoices:number\", default: 0, onSettingValue: function (obj, val) {\n if (val <= 0)\n return 0;\n var max = obj.maxSelectedChoices;\n return max > 0 && val > max ? max : val;\n }\n },\n {\n name: \"selectAllText\",\n serializationProperty: \"locSelectAllText\",\n dependsOn: \"showSelectAllItem\",\n visibleIf: function (obj) {\n return obj.hasSelectAll;\n }\n },\n {\n name: \"valuePropertyName\",\n category: \"data\"\n },\n { name: \"itemComponent\", visible: false, default: \"survey-checkbox-item\" }\n], function () {\n return new QuestionCheckboxModel(\"\");\n}, \"checkboxbase\");\n_questionfactory__WEBPACK_IMPORTED_MODULE_1__[\"QuestionFactory\"].Instance.registerQuestion(\"checkbox\", function (name) {\n var q = new QuestionCheckboxModel(name);\n q.choices = _questionfactory__WEBPACK_IMPORTED_MODULE_1__[\"QuestionFactory\"].DefaultChoices;\n return q;\n});\n\n\n/***/ }),\n\n/***/ \"./src/question_comment.ts\":\n/*!*********************************!*\\\n !*** ./src/question_comment.ts ***!\n \\*********************************/\n/*! exports provided: QuestionCommentModel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionCommentModel\", function() { return QuestionCommentModel; });\n/* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ \"./src/jsonobject.ts\");\n/* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./questionfactory */ \"./src/questionfactory.ts\");\n/* harmony import */ var _question_textbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question_textbase */ \"./src/question_textbase.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ \"./src/settings.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\n/**\n * A class that describes the Long Text question type.\n *\n * [View Demo](https://surveyjs.io/form-library/examples/questiontype-comment/ (linkStyle))\n */\nvar QuestionCommentModel = /** @class */ (function (_super) {\n __extends(QuestionCommentModel, _super);\n function QuestionCommentModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(QuestionCommentModel.prototype, \"rows\", {\n /**\n * Specifies the visible height of the comment area, measured in lines.\n *\n * The value of this property is passed on to the `rows` attribute of the underlying `